In article <516eabdf.5090...@lyx.org>, Jean-Marc Lasgouttes <lasgout...@lyx.org> wrote:
> 17/04/2013 00:05, pdv: > > I do now all the width-calculations in one function. > > In that function the widths are cached in a map<docstring,int>. > > I then obtain again a substantial speed increase. > > For testing I defined a static map, but I assume that eventually the map > > should be stored in a suitable object so that the map doesn't grow out > > of proportion. > > You need to keep one map for each FontInfo instance (like what is done > for singleWidth). I agree that may use a lot of memory. This is > something that can be measured using the massif tool of valgrind. > > > So far I can handle all basic content properly. I haven't paid much > > attention to inlinecompletion (at one point it posed no problem, but I > > have to check that again), but I just discovered an issue with the > > Labeling style ... > > Great. If you want to do basic timing before/after, have a look at > support/pmprof.h. > > Can we see the patch? > > JMarc Of course, but I wanted a fully functional patch before posting. As far as I have tested the functionality should be largely OK now (at least the User's Guide and some of my documents are displayed and handled correctly). There might still be problems with the coding style ... Hereafter I've listed some comments which might be helpful or answer suggestions you've made earlier. (btw I couldn't find support/pmprof.h) If you have comments, questions ... I'm looking forward to hearing from you. Regards, P. De Visschere - there are 4 functions where the textwidth must be calculated: in GuiPainter::text() and in 3 functions in the TextMetrics class, in order of complexity: (1) cursorX(): find the position in pixels, given the cursor position in characters, (2) rowBreakPoint(): find the next breakpoint of a row, this will always break between words, (3) getColumnNearX(): actually the reverse operation of (1); more complex than (2) since the position can also be located within a word. For the time being these 3 functions are still independent, although they are somewhat similar and maybe some more streamlining is possible here. I'm also aware that the code for getColumnNearX() is rather complex. The widths are calculated in a single TextMetrics::textWidth() function which accepts a parameter to cache the result or not (e.g. widths of partial words needed when positioning the cursor within a word are not cached). The widths calculated are cached in a std::map<docstring, int>. I've also tried QHash but since docstring has no qhash function all strings must then be converted to QStrings and there is no speed gain. I use only one map, the fonts are coded as a string of 4 characters (family, series, shape, size) which is then used as a prefix for the key. I have not tried alternatives like using a map for each used font. The map itself is stored in the BufferView class; In this way there is one map for each document; when storing the map in the TextMetrics class, multiple maps are generated. I have only tested this with simple documents (no child documents ). When typing it's unavoidable to generate all partials of a word; these are removed again from the map so that only the final word remains; However nothing is done to remedy the reverse: when deleting a word character by character all partials will end-up in the map; The old code is still in place and the old painting character by character can be restored by changing 2 appropriate macro definitions. begin 644 LyXscrollpatch20130421.diff M9&EF9B`M+6=I="!A+W-R8R]"=69F97)6:65W+F-P<"!B+W-R8R]"=69F97)6 M:65W+F-P<`II;F1E>"`S86$R,#%B+BYF,S0X,F%D(#$P,#8T-`HM+2T@82]S M<F,O0G5F9F5R5FEE=RYC<'`**RLK(&(O<W)C+T)U9F9E<E9I97<N8W!P"D!` M("TY-C4L-R`K.38U+#$U($!`('9O:60@0G5F9F5R5FEE=SHZ=7!D871E1&]C M=6UE;G1#;&%S<RA$;V-U;65N=$-L87-S0V]N<W10='(@;VQD9&,I"B`*(`EB M=69F97)?+F5R<F]R<R@B0VQA<W,@4W=I=&-H(BD["B!]"BT**PD**R\J*B!N M;W)M86QL>2!D969I;F5D(&EN;&EN90HK("H)=&AI<R!O;F4@:7,@9F]R(&1E M8G5G9VEN9PHK("HO"BMV;VED($)U9F9E<E9I97<Z.G-E=%1E>'17:61T:"AD M;V-S=')I;F<@8V]N<W0@)B!K97DL(&EN="!W*2!["BL)=&5X=%]W:61T:%]; M:V5Y72`]('<["BL)+R]L>7AE<G(@/#P@(FUA<'-I>F4@/2`B(#P\('1E>'1? M=VED=&A?+G-I>F4H*2`\/"`B+"!K97D@/2`B(#P\(&ME>2`\/"!E;F1L.PHK M?0HK("\O"B`*("\J*B!2971U<FX@=&AE(&-H86YG92!S=&%T=7,@870@8W5R M<V]R('!O<VET:6]N+"!T86MI;F<@:6X@86-C;W5N="!T:&4*("`J('-T871U M<R!A="!E86-H(&QE=F5L(&]F('1H92!D;V-U;65N="!I=&5R871O<B`H82!T M86)L92!I;B!A(&1E;&5T960*9&EF9B`M+6=I="!A+W-R8R]"=69F97)6:65W M+F@@8B]S<F,O0G5F9F5R5FEE=RYH"FEN9&5X(&$U.&0R-3$N+C(Y,3(T864@ M,3`P-C0T"BTM+2!A+W-R8R]"=69F97)6:65W+F@**RLK(&(O<W)C+T)U9F9E M<E9I97<N:`I`0"`M,C$L-B`K,C$L-R!`0`H@(VEN8VQU9&4@(G-U<'!O<G0O M<VAA<F5D7W!T<BYH(@H@(VEN8VQU9&4@(G-U<'!O<G0O<W1R9G=D+F@B"B`C M:6YC;'5D92`B<W5P<&]R="]T>7!E<RYH(@HK(VEN8VQU9&4@/&UA<#X@+R\@ M<&1V"B`*(&YA;65S<&%C92!L>7@@>PH@"D!`("TS,C`L-B`K,S(Q+#$R($!` M('!U8FQI8SH*(`EB;V]L(&-L:6-K86)L94EN<V5T*"D@8V]N<W0["B`)+R\O M"B`)=F]I9"!M86ME1&]C=6UE;G1#;&%S<r...@i.phk"0HK"2\O+R!F=6YC=&EO M;G,@=7-E9"!B>2!497AT365T<FEC<SHZ=&5X=%=I9'1H*"D**PDO+R\@9F]R M(&%C8V5S<VEN9R!T:&4@;6%P('=I=&@@=V]R9'=I9'1H<PHK"6EN="!G9714 M97AT5VED=&@H9&]C<W1R:6YG(&-O;G-T("8@:V5Y*2![(')E='5R;B!T97AT M7W=I9'1H7UMK97E=.R!]"BL)=F]I9"!S971497AT5VED=&@H9&]C<W1R:6YG M(&-O;G-T("8@:V5Y+"!I;G0@=RD[("\O('L@=&5X=%]W:61T:%];:V5Y72`] M('<[('T**PEV;VED(&5R87-E5&5X=%=I9'1H*&1O8W-T<FEN9R!C;VYS="`F M(&ME>2D@>R!T97AT7W=I9'1H7RYE<F%S92AK97DI.R!]"B`*('!R:79A=&4Z M"B`)+R\O(&YO;F-O<'EA8FQE"D!`("TS-C$L-B`K,S8X+#D@0$`@<')I=F%T M93H*(`H@"7-T<G5C="!0<FEV871E.PH@"5!R:79A=&4@*B!C;VYS="!D.PHK M"0HK"2\O+R!M87`@=VET:"!W;W)D=VED=&AS('5S960@8GD@5&5X=$UE=')I M8W,Z.G1E>'17:61T:"@I"BL);75T86)L92!S=&0Z.FUA<#QD;V-S=')I;F<L M(&EN=#X@=&5X=%]W:61T:%\["B!].PH@"B`O+R\@<V]M92!S<&%C92!F;W(@ M9')A=VEN9R!T:&4@)VYE<W1E9"<@;6%R:V5R<R`H:6X@<&EX96PI"F1I9F8@ M+2UG:70@82]S<F,O5&5X=$UE=')I8W,N8W!P(&(O<W)C+U1E>'1-971R:6-S M+F-P<`II;F1E>"`X8C!F,V$Y+BYF,S5D,C`U(#$P,#8T-`HM+2T@82]S<F,O M5&5X=$UE=')I8W,N8W!P"BLK*R!B+W-R8R]497AT365T<FEC<RYC<'`*0$`@ M+30X+#8@*S0X+#$P($!`"B`*("-I;F-L=61E(")F<F]N=&5N9',O1F]N=$UE M=')I8W,N:"(*("-I;F-L=61E(")F<F]N=&5N9',O4&%I;G1E<BYH(@HK(VEN M8VQU9&4@(F9R;VYT96YD<R]Q=#0O1W5I1F]N=$QO861E<BYH(B`O+W!D=@HK M(VEN8VQU9&4@/%%T1W5I+U%&;VYT365T<FEC<SX@+R]P9'8**R-I;F-L=61E M(")S=7!P;W)T+W%S=')I;F=?:&5L<&5R<RYH(B`O+W!D=@HK(VEN8VQU9&4@ M(G-U<'!O<G0O=&5X='5T:6QS+F@B"B`*("-I;F-L=61E(")S=7!P;W)T+V1E M8G5G+F@B"B`C:6YC;'5D92`B<W5P<&]R="]D;V-S=')I;F=?;&ES="YH(@I` M0"`M,S8Q+#<@*S,V-2PV($!`(&)O;VP@5&5X=$UE=')I8W,Z.FES4E1,0F]U M;F1A<GDH<&ET7W1Y<&4@<&ET+"!P;W-?='EP92!P;W,L"B`)<F5T=7)N(&QE M9G0@(3T@<FEG:'0["B!]"B`*+0H@8F]O;"!497AT365T<FEC<SHZ<F5D;U!A M<F%G<F%P:"AP:71?='EP92!C;VYS="!P:70I"B!["B`)4&%R86=R87!H("8@ M<&%R(#T@=&5X=%\M/F=E=%!A<BAP:70I.PI`0"`M-#8Q+#<@*S0V-"PQ,R!` M0"!B;V]L(%1E>'1-971R:6-S.CIR961O4&%R86=R87!H*'!I=%]T>7!E(&-O M;G-T('!I="D*(`EI;G0@=VED=&@@/2!M87A?=VED=&A?("T@<FEG:'1?;6%R M9VEN.R`O+R`M(&QE9G1-87)G:6XH;6%X7W=I9'1H7RP@<&ET+"!R;W<I.PH@ M"61O('L*(`D)1&EM96YS:6]N(&1I;3L*+0D)<&]S7W1Y<&4@96YD(#T@<F]W M0G)E86M0;VEN="AW:61T:"P@<&ET+"!F:7)S="D["BL)"2\O('!D=CH@<VEN M8V4@=&AE(')O=R!W:61T:"!I<R!A;')E861Y(&-A;&-U;&%T960@:6X@<F]W M0G)E86M0;VEN="@I"BL)"2\O('1H92!C86QL('1O(')O=U=I9'1H*"D@8V%N M(&)E(&%V;VED960N"BL)"2\O(')O=T)R96%K4&]I;G0@:&%S(&)E96X@;6]D M:69I960@=&\@<F5T=7)N('1H90HK"0DO+R!P;W-I=&EO;B!O9B!T:&4@8G)E M86MP;VEN="!A<R!W96QL(&%S('1H92!W:61T:"!O9B!T:&4@<F]W"BL)"2\O M<&]S7W1Y<&4@96YD(#T@<F]W0G)E86M0;VEN="AW:61T:"P@<&ET+"!F:7)S M="D["BL)"7-T<G5C="!R;W=?8G!?='EP92!R;W=?8G`@/2!R;W="<F5A:U!O M:6YT*'=I9'1H+"!P:70L(&9I<G-T*3L**PD)<&]S7W1Y<&4@96YD(#T@<F]W M7V)P+G!O:6YT.PH@"0EI9B`H<F]W7VEN9&5X('Q\(&5N9"`\('!A<BYS:7IE M*"DI"B`)"0DO+R!)9B!T:&5R92!I<R!M;W)E('1H86X@;VYE(')O=RP@97AP M86YD('1H92!T97AT('1O"B`)"0DO+R!T:&4@9G5L;"!A;&QO=V%B;&4@=VED M=&@N(%1H:7,@<V5T=&EN9R!H97)E(&ES(&YE961E9`I`0"`M-#8Y+#<@*S0W M."PX($!`(&)O;VP@5&5X=$UE=')I8W,Z.G)E9&]087)A9W)A<&@H<&ET7W1Y M<&4@8V]N<W0@<&ET*0H@"0D)9&EM7RYW:60@/2!M87A?=VED=&A?.PH@"B`) M"61I;2`](')O=TAE:6=H="AP:70L(&9I<G-T+"!E;F0I.PHM"0ED:6TN=VED M(#T@<F]W5VED=&@H<FEG:'1?;6%R9VEN+"!P:70L(&9I<G-T+"!E;F0I.PHK M"0DO+V1I;2YW:60@/2!R;W=7:61T:"AR:6=H=%]M87)G:6XL('!I="P@9FER M<W0L(&5N9"D["BL)"61I;2YW:60@/2!R;W=?8G`N=VED=&@@*R!R:6=H=%]M M87)G:6X[("\O("AP9'8I"B`)"6EF("AR;W=?:6YD97@@/3T@<&TN<F]W<R@I M+G-I>F4H*2D*(`D)"7!M+G)O=W,H*2YP=7-H7V)A8VLH4F]W*"DI.PH@"0E2 M;W<@)B!R;W<@/2!P;2YR;W=S*"E;<F]W7VEN9&5X73L*0$`@+30Y,RPV("LU M,#,L."!`0"!B;V]L(%1E>'1-971R:6-S.CIR961O4&%R86=R87!H*'!I=%]T M>7!E(&-O;G-T('!I="D*(`DO+R!U;F1E<B!I=`H@"6EF("AF:7)S="`^(#`@ M)B8@<&%R+FES3F5W;&EN92AF:7)S="`M(#$I*2!["B`)"41I;65N<VEO;B!D M:6T@/2!R;W=(96EG:'0H<&ET+"!F:7)S="P@9FER<W0I.PHK"0DO+R!R;W=7 M:61T:"@I(&EN(&=E;F5R86P@9&]E<R!N;W0@<F5T=7)N('1H92!C;W)R96-T M('=I9'1H"BL)"2\O(&AE<F4@:70@9&]E<VXG="!M871T97(*(`D)9&EM+G=I M9"`](')O=U=I9'1H*')I9VAT7VUA<F=I;BP@<&ET+"!F:7)S="P@9FER<W0I M.PH@"0EI9B`H<F]W7VEN9&5X(#T]('!M+G)O=W,H*2YS:7IE*"DI"B`)"0EP M;2YR;W=S*"DN<'5S:%]B86-K*%)O=R@I*3L*0$`@+3<Y."PQ-2`K.#$P+#<Y M($!`('!R:79A=&4Z"B!].PH@"B!]("\O(&%N;VX@;F%M97-P86-E"BL)"BLO M+R!7:71H('1H:7,@=F%R:6%B;&4@=&AE(&UE=&AO9"!F;W(@8V%L8W5L871I M;F<@=&AE(&-U<G-O<B!P;W-I=&EO;@HK+R\@8V%N(&)E('-E;&5C=&5D+B!) M="=S(&%L<V\@=7-E9"!I;B!G971#;VQU;6Y.96%R6"@I(&%N9"!C=7)S;W)8 M*"DN"BLO+R!4:&5R92!I<R!A('-I;6EL87(@8VAA;F=E('1O(&UA:V4@:6X@ M4F]W4&%I;G1E<CHZ<&%I;G1#:&%R<R@I"BL)"BLC9&5F:6YE(&-A;&-U;&%T M95]Q=%]C:&%R7W=I9'1H<R`Q"BLC:68@8V%L8W5L871E7W%T7V-H87)?=VED M=&AS"BL)"BLO*BH**R`J($-A;&-U;&%T:6YG('1H92!T97AT('=I9'1H('5S M:6YG('1H92!1="!F=6YC=&EO;G,N"BL@*B!4:&4@=VED=&AS(&%R92!C86-H M960@:6X@82!M87`@:68@8V%C:&4@/2!T<G5E+@HK("H@1'5R:6YG('1Y<&EN M9RP@;VYL>2!C;VUP;&5T92!W;W)D<R!A<F4@:V5P="!I;B!T:&4@;6%P+@HK M("H@5VAE;B!D96QE=&EN9R!A('=O<F0@*'=I=&@@8F%C:W-P86-E*2!P87)T M:6%L('=O<F1S('=I;&P**R`J('-T:6QL(&5N9"!U<"!I;B!T:&4@;6%P+@HK M("HJ+PHK:6YT(%1E>'1-971R:6-S.CIT97AT5VED=&@H9&]C<W1R:6YG(',L M($9O;G1);F9O(&-O;G-T("8@9F]N="P@8F]O;"!C86-H92D@8V]N<W0**WL* M*PEI;G0@=VED=&@@/2`P.PHK"6EF("AS(#T]("(B*0HK"0ER971U<FX@=VED M=&@["BL)"BL):68@*"%C86-H92D@>PHK"0E11F]N=$UE=')I8W,@<69M(#T@ M449O;G1-971R:6-S*&9R;VYT96YD.CIG971&;VYT*&9O;G0I*3L**PD)45-T M<FEN9R!Q<R`]('1O<7-T<BAS*3L**PD)<F5T=7)N('%F;2YW:61T:"AQ<RPM M,2D["BL)?0HK"0HK"7-T871I8R!D;V-S=')I;F<@;&%S=%]K97D["BL)<W1A M=&EC(&EN="!L87-T7W-I>F4@/2`P.PHK"0HK"7=C:&%R7W0@9FED6S1=.PHK M"69I9%LP72`](&9O;G0N9F%M:6QY*"D@*R`P>#`P-C$["BL)9FED6S%=(#T@ M9F]N="YS97)I97,H*2`K(#!X,#`V,3L**PEF:61;,ET@/2!F;VYT+G)E86Q3 M:&%P92@I("L@,'@P,#8Q.PHK"69I9%LS72`](&9O;G0N<VEZ92@I("L@,'@P M,#8Q.PHK"61O8W-T<FEN9R!K97D@/2!D;V-S=')I;F<H)F9I9%LP72PT*2`K M(',["BL)"BL)=VED=&@@/2!B=E\M/F=E=%1E>'17:61T:"AK97DI.PHK"6EF M("AW:61T:"`]/2`P*2!["BL)"5%&;VYT365T<FEC<R!Q9FT@/2!11F]N=$UE M=')I8W,H9G)O;G1E;F0Z.F=E=$9O;G0H9F]N="DI.PHK"0E14W1R:6YG('%S M(#T@=&]Q<W1R*',I.PHK"0EW:61T:"`]('%F;2YW:61T:"AQ<RPM,2D["BL) M"6)V7RT^<V5T5&5X=%=I9'1H*&ME>2P@=VED=&@I.PHK"0D**PD)+R\@8VQE M86XM=7`@:68@=&AI<R!I<R!A(&=R;W=I;F<@=V]R9`HK"0EI;G0@<VEZ92`] M(',N<ve...@i.phk"0EI9B`H<VEZ92`^(#$@)B8@<VEZ92`]/2!L87-T7W-I M>F4@*R`Q"BL)"0DF)B!K97DN<W5B<W1R*#`L<VEZ92LS*2`]/2!L87-T7VME M>2D@>PHK"0D)8G9?+3YE<F%S951E>'17:61T:"AL87-T7VME>2D["BL)"7T* M(`HM<&]S7W1Y<&4@5&5X=$UE=')I8W,Z.G)O=T)R96%K4&]I;G0H:6YT('=I M9'1H+"!P:71?='EP92!C;VYS="!P:70L"BL)"2\O(')E;65M8F5R('1H92!L M87-T('=O<F0@<W1O<F5D"BL)"6QA<W1?:V5Y(#T@:V5Y.PHK"0EL87-T7W-I M>F4@/2!S:7IE.PHK"7T**PER971U<FX@=VED=&@["BM]"BL)"BLC96YD:68* M*PHK<F]W7V)P7W1Y<&4@5&5X=$UE=')I8W,Z.G)O=T)R96%K4&]I;G0H:6YT M('=I9'1H+"!P:71?='EP92!C;VYS="!P:70L"B`)"7!O<U]T>7!E('!O<RD@ M8V]N<W0*('L*(`E087)A9W)A<&A-971R:6-S(&-O;G-T("8@<&T@/2!P87)? M;65T<FEC<U];<&ET73L*(`E087)A9W)A<&@@8V]N<W0@)B!P87(@/2!T97AT M7RT^9V5T4&%R*'!I="D["B`)<&]S7W1Y<&4@8V]N<W0@96YD(#T@<&%R+G-I M>F4H*3L**PEI;G0@<F]W=VED=&@@/2`P.R`O+R`H<&1V*0HK"7-T<G5C="!R M;W=?8G!?='EP92!R;W=?8G`["BL)<F]W7V)P+G!O:6YT(#t...@96yd.phk"7)O M=U]B<"YW:61T:"`](')O=W=I9'1H.PH@"6EF("AP;W,@/3T@96YD('Q\('=I M9'1H(#P@,"D*+0D)<F5T=7)N(&5N9#L**PD)+R]R971U<f...@96yd.phk"0ER M971U<FX@<F]W7V)P.PH@"B`)3&%Y;W5T(&-O;G-T("8@;&%Y;W5T(#T@<&%R M+FQA>6]U="@I.PH@"D!`("TX-3(L-R`K.3(X+#$S($!`('!O<U]T>7!E(%1E M>'1-971R:6-S.CIR;W="<F5A:U!O:6YT*&EN="!W:61T:"P@<&ET7W1Y<&4@ M8V]N<W0@<&ET+`H@"5!A<F%G<F%P:$QI<W0@8V]N<W0@)B!P87)S7R`]('1E M>'1?+3YP87)A9W)A<&AS*"D["B`)8F]O;"!C;VYS="!D<F%W7W!A<E]E;F1? M;6%R:V5R(#T@;'EX<F,N<&%R86=R87!H7VUA<FME<G,*(`D))B8@<VEZ95]T M>7!E*'!I="`K(#$I(#P@<&%R<U\N<ve...@i.phm"0D)"0HK"0HK(VEF(&-A M;&-U;&%T95]Q=%]C:&%R7W=I9'1H<PHK"2\O('9A<FEA8FQE<R!N965D960@ M9F]R(&-A;&-U;&%T:6YG('1H92!W:61T:"`H<&1V*0HK"7=C:&%R7W0@<W1R M6V5N9%T["BL):6YT(&YO8R`](#`["BLC96YD:68**PH@"69O<B`H(#L@:2`\ M(&5N9#L@*RMI+"`K*V9I*2!["B`)"6EN="!T:&ES=VED=&@@/2!P;2YS:6YG M;&57:61T:"AI+"`J9FDI.PH@"0D*0$`@+3@W."PQ."`K.38P+#(W($!`('!O M<U]T>7!E(%1E>'1-971R:6-S.CIR;W="<F5A:U!O:6YT*&EN="!W:61T:"P@ M<&ET7W1Y<&4@8V]N<W0@<&ET+`H@"0D)861D(#T@;6%X*&%D9"P@;&%B96Q? M96YD("T@>"D["B`)"0ET:&ES=VED=&@@*s...@861d.ph@"0E]"BT**PD)"BL) M"2\O('=E(&%L=V%Y<R!A9&0@=&AE('-I;F=L92!W:61T:"!O9B!T:&4@8VAA M<F%C=&5R('1O('@**PD)+R\@=&AA="=S(&YE961E9"!T;R!A=F]I9"!F86QL M:6YG(&]F9B!T:&4@<FEG:'0**PD)+R\@:70@=VEL;"!B92!C;W)R96-T960@ M9F]R(&-O;7!L971E('=O<F1S"B`)"7@@*ST@=&AI<W=I9'1H.PHM"0EC:'5N M:W=I9'1H("L]('1H:7-W:61T:#L*+0HK"0D**R-I9B!C86QC=6QA=&5?<71? M8VAA<E]W:61T:',**PD)+R\@;VYL>2!R96%L(&-H87)A8W1E<G,@87)E(&%D M9&5D('1O('1H92!W;W)D=VED=&@**PD):68@*"%P87(N9V5T26YS970H:2D@ M)B8@(7!A<BYI<TQI;F5397!A<F%T;W(H:2D@)B8@(69I+3YI<U)I9VAT5&], M969T*"D**PD)"0DF)B`H(6)O9'E?<&]S('Q\(&D@(3T@8F]D>5]P;W,I("8F M(&EN;&EN94-O;7!L971I;VY,4&]S("$](&DI"BLC96YD:68**PD)"0EC:'5N M:W=I9'1H("L]('1H:7-W:61T:#L*(`D)+R\@8G)E86L@8F5F;W)E(&$@8VAA M<F%C=&5R('1H870@=VEL;"!F86QL(&]F9@H@"0DO+R!T:&4@<FEG:'0@;V8@ M=&AE(')O=PH@"0EI9B`H>"`^/2!W:61T:"D@>PH@"0D)+R\@:68@;F\@8G)E M86L@8F5F;W)E+"!B<F5A:R!H97)E"B`)"0EI9B`H<&]I;G0@/3T@96YD('Q\ M(&-H=6YK=VED=&@@/CT@=VED=&@@+2!L969T*2!["BT)"0D):68@*&D@/B!P M;W,I"BL)"0D):68@*&D@/B!P;W,I('L*(`D)"0D)<&]I;G0@/2!I.PHM"0D) M"65L<V4**PD)"0D)<F]W=VED=&@@/2!X("T@=&AI<W=I9'1H.PHK"0D)"7T@ M96QS90H@"0D)"0EP;VEN="`](&D@*R`Q.PH@"0D)?0H@"0D)+R\@97AI="!O M;B!L87-T(')E9VES=&5R960@8G)E86MP;VEN=#H*0$`@+3DP-2PS-R`K.3DV M+#<T($!`('!O<U]T>7!E(%1E>'1-971R:6-S.CIR;W="<F5A:U!O:6YT*&EN M="!W:61T:"P@<&ET7W1Y<&4@8V]N<W0@<&ET+`H@"0EI9B`H:2`K(#$@/"!E M;F0I('L*(`D)"6EF("@H:6YS970@/2!P87(N9V5T26YS970H:2`K(#$I*2`F M)B!I;G-E="T^9&ES<&QA>2@I*2!["B`)"0D)<&]I;G0@/2!I("L@,3L**PD) M"0ER;W=W:61T:"`]('@["B`)"0D)8G)E86L["B`)"0E]"B`)"0DO+R`N+BYA M;F0@869T97(N"B`)"0EI9B`H*&EN<V5T(#T@<&%R+F=E=$EN<V5T*&DI*2`F M)B!I;G-E="T^9&ES<&QA>2@I*2!["B`)"0D)<&]I;G0@/2!I("L@,3L**PD) M"0ER;W=W:61T:"`]('@["B`)"0D)8G)E86L["B`)"0E]"B`)"7T*+0HM"0EI M;G-E="`]('!A<BYG971);G-E="AI*3L*+0D):68@*"%I;G-E="!\?"!I;G-E M="T^:7-#:&%R*"DI('L*+0D)"2\O('-O;64@:6YS971S(&%R92!L:6YE('-E M<&%R871O<G,@=&]O"BT)"0EI9B`H<&%R+FES3&EN95-E<&%R871O<BAI*2D@ M>PHM"0D)"2\O(')E9VES=&5R(&)R96%K<&]I;G0Z"BT)"0D)<&]I;G0@/2!I M("L@,3L**PD)"BLC:68@8V%L8W5L871E7W%T7V-H87)?=VED=&AS"BL)"6EF M("@A9FDM/FES4FEG:'14;TQE9G0H*2`F)B`H(6)O9'E?<&]S('Q\(&D@(3T@ M8F]D>5]P;W,I*2!["BL)"0DO+R!B=69F97(@=&AE(&-H87)A8W1E<@HK"0D) M:68@*"%P87(N9V5T26YS970H:2D@)B8@(7!A<BYI<TQI;F5397!A<F%T;W(H M:2DI('L**PD)"0ES=');;F]C73UP87(N9V5T0VAA<BAI*3L**PD)"0DK*VYO M8SL**PD)"7T**PD)"2\O(&-H96-K(&EF('1H92!N97AT(&-H87)A8W1E<B!I M<R!A;B!I;G-E="!O<B!S<&%C90HK"0D)+R\@:6X@=&AA="!C87-E('=E(&-A M;B!P<F]C97-S('1H:7,@=V]R9"!A;F0@861D(&ET)W,@=VED=&@**PD)"2\O M(&%N9"!S970@82!N97<@8G)E86MP;VEN=`HK"0D):68@*'!A<BYG971);G-E M="AI*S$I('Q\('!A<BYI<TQI;F5397!A<F%T;W(H:2LQ*2!\?"!I(#T]('!A M<BYF;VYT4W!A;BAI*2YL87-T*2!["BL)"0D)>"`K/2!T97AT5VED=&@H9&]C M<W1R:6YG*'-T<BQN;V,I+"!F:2T^9F]N=$EN9F\H*2P@=')U92D@+2!C:'5N M:W=I9'1H.PHK"0D)"6YO8R`](#`["B`)"0D)8VAU;FMW:61T:"`](#`["BL) M"0D)+R\@9&]N)W0@8G)E86L@9F]R(&]N;'D@82!C:&%N9V4@;V8@9F]N=`HK M"0D)"6EF("AP87(N9V5T26YS970H:2LQ*2!\?"!P87(N:7-,:6YE4V5P87)A M=&]R*&DK,2DI('L**PD)"0D):68@*'!A<BYG971);G-E="AI*S$I*0HK"0D) M"0D)<&]I;G0@/2!I("L@,3L**PD)"0D)96QS90HK"0D)"0D)<&]I;G0@/2!I M("L@,CL**PD)"0D)<F]W=VED=&@@/2!X.PHK"0D)"7T*(`D)"7T**PD)?2!E M;'-E('L**R-E;F1I9@HK"0D):6YS970@/2!P87(N9V5T26YS970H:2D["BL) M"0EI9B`H(6EN<V5T('Q\(&EN<V5T+3YI<T-H87(H*2D@>PHK"0D)"2\O('-O M;64@:6YS971S(&%R92!L:6YE('-E<&%R871O<G,@=&]O"BL)"0D):68@*'!A M<BYI<TQI;F5397!A<F%T;W(H:2DI('L**PD)"0D)+R\@<F5G:7-T97(@8G)E M86MP;VEN=#H**PD)"0D)<&]I;G0@/2!I("L@,3L**PD)"0D)8VAU;FMW:61T M:"`](#`["BL)"0D)"7)O=W=I9'1H(#T@>"`M('1H:7-W:61T:#L**PD)"0E] M"BL)"0E]"BLC:68@8V%L8W5L871E7W%T7V-H87)?=VED=&AS"B`)"7T**R-E M;F1I9@H@"7T*(`H@"2\O(&UA>6)E(&9O=6YD(&]N92P@8G5T('1H92!P87(@ M:7,@<VAO<G0@96YO=6=H+@HM"6EF("AI(#T](&5N9"`F)B!X(#P@=VED=&@I M"BL):68@*&D@/3T@96YD("8F('@@/"!W:61T:"D@>PH@"0EP;VEN="`](&5N M9#L**PD)<F]W=VED=&@@/2!X.PHK"7T**PH@"B`)+R\@;6%N=6%L(&QA8F5L M<R!C86YN;W0@8F4@8G)O:V5N(&EN($QA5&58+B!"=70@=V4*(`DO+R!W86YT M('1O(&UA:V4@;W5R(&]N+7-C<F5E;B!R96YD97)I;F<@;V8@9F]O=&YO=&5S M"B`)+R\@971C+B!S=&EL;"!B<F5A:PH@"6EF("AB;V1Y7W!O<R`F)B!P;VEN M="`\(&)O9'E?<&]S*0H@"0EP;VEN="`](&)O9'E?<&]S.PHM"BT)<F5T=7)N M('!O:6YT.PHK"0HK"7)O=U]B<"YP;VEN="`]('!O:6YT.PHK"7)O=U]B<"YW M:61T:"`](')O=W=I9'1H.PHK"2\O<F5T=7)N('!O:6YT.PHK"7)E='5R;B!R M;W=?8G`["B!]"B`*(`I`0"`M,3(P-BPV("LQ,S,T+#<@0$`@<&]S7W1Y<&4@ M5&5X=$UE=')I8W,Z.F=E=$-O;'5M;DYE87)8*'!I=%]T>7!E(&-O;G-T('!I M="P*(`EI;G0@8V]N<W0@>&\@/2!O<FEG:6Y?+GA?.PH@"7@@+3T@>&\["B`) M4&%R86=R87!H(&-O;G-T("8@<&%R(#T@=&5X=%\M/F=E=%!A<BAP:70I.PHK M"5!A<F%G<F%P:$UE=')I8W,@8V]N<W0@)B!P;2`]('!A<E]M971R:6-S7UMP M:71=.R`O+R!P9'8Z('-I;6EL87(@87,@:6X@8W5R<V]R6`H@"4)I9&D@8FED M:3L*(`EB:61I+F-O;7!U=&5486)L97,H<&%R+"!B=69F97(L(')O=RD["B`* M0$`@+3$R-#4L,3`@*S$S-S0L,C$@0$`@<&]S7W1Y<&4@5&5X=$UE=')I8W,Z M.F=E=$-O;'5M;DYE87)8*'!I=%]T>7!E(&-O;G-T('!I="P*(`DO+R!I;B!F M<F5E<W!A8VEN9R!P87)A9W)A<&AS+"!T:&ES(&9I<G-T(&-H87)A8W1E<B!I M<R!P86EN=&5D+@H@"6EF("@A<&%R+FES1G)E95-P86-I;F<H*2`F)B!P87(N M:7-397!A<F%T;W(H8FED:2YV:7,R;&]G*'9C*2DI"B`)"2LK=F,["BL)"BLC M:68@8V%L8W5L871E7W%T7V-H87)?=VED=&AS"BL)+R\@=F%R:6%B;&5S(&YE M961E9"!F;W(@8V%L8W5L871I;F<@=&AE('=I9'1H("AP9'8I"BL)=V-H87)? M="!S=');96YD73L**PEI;G0@;F]C(#T@,#L**PEI;G0@;&%S=%]N;V,@/2`P M.PHK"49O;G13<&%N(&9O;G1?<W!A;CL**PE&;VYT(&9O;G0["BLC96YD:68* M(`H@"7=H:6QE("AV8R`\(&5N9"`F)B!T;7!X(#P]('@I('L*(`D)8R`](&)I M9&DN=FES,FQO9RAV8RD["BLC:68@(6-A;&-U;&%T95]Q=%]C:&%R7W=I9'1H M<PH@"0EL87-T7W1M<'@@/2!T;7!X.PHK"B`)"6EF("AB;V1Y7W!O<R`^(#`@ M)B8@8R`]/2!B;V1Y7W!O<R`M(#$I('L*(`D)"49O;G1-971R:6-S(&-O;G-T M("8@9FT@/2!T:&5&;VYT365T<FEC<R@*(`D)"0ET97AT7RT^;&%B96Q&;VYT M*'!A<BDI.PI`0"`M,3(V,"PY("LQ-#`P+#DR($!`('!O<U]T>7!E(%1E>'1- M971R:6-S.CIG971#;VQU;6Y.96%R6"AP:71?='EP92!C;VYS="!P:70L"B`) M"71M<'@@*ST@<VEN9VQE5VED=&@H<&ET+"!C*3L*(`D):68@*'!A<BYI<U-E M<&%R871O<BAC*2`F)B!C(#X](&)O9'E?<&]S*0H@"0D)"71M<'@@*ST@<F]W M+G-E<&%R871O<CL**R-E;'-E"BL)"2\O($-A;&-U;&%T92!R96%L(%%T4W1R M:6YG('=I9'1H<PHK"0DO+R!T;7!X(&ES(&]N;'D@=7!D871E9"!A="!W;W)D M(&)O=6YD87)I97,@;W(@9F]N='-P86X@8F]U;F1A<FEE<RX**PD)+R\@=V4@ M9&5F:6YE(#(@8F]O;&5A;G,@=VAI8V@@8V%N(&)E('5S960@='=I8V4**PD) M8F]O;"!N97=&;VYT(#T@*&,@/"!F;VYT7W-P86XN9FER<W0@?'P@8R`^(&9O M;G1?<W!A;BYL87-T*3L**PD)8F]O;"!I;G-E=$]R4W!A8V4@/2`H<&%R+FES M26YS970H8RD@?'P@(6ES4')I;G1A8FQE3F]N<W!A8V4H<&%R+F=E=$-H87(H M8RDI*3L**PD)"BL)"6EF("@H;F5W1F]N="!\?"!I;G-E=$]R4W!A8V4I("8F M(&YO8R$],"D@>PHK"0D)+R\@9FQU<V@@=&AE(&)U9F9E<B!A9G1E<B!A('=O M<F0@;W(@8VAA;F=E(&]F(&9O;G0@*'!D=BD**PD)"6QA<W1?=&UP>"`]('1M M<'@["BL)"0ET;7!X("L]('1E>'17:61T:"AD;V-S=')I;F<H<W1R+&YO8RDL M(&9O;G0N9F]N=$EN9F\H*2P@=')U92D["BL)"0EL87-T7VYO8R`](&YO8SL* M*PD)"6YO8STP.PHK"0D**PD)"6EF("AT;7!X(#X@>"D@+R\@;F\@;F5E9"!T M;R!C;VYT:6YU90HK"0D)"6)R96%K.PHK"0E]"BL)"0HK"0EI9B`H;F5W1F]N M="D@>PHK"0D)9F]N=%]S<&%N(#T@<&%R+F9O;G13<&%N*&,I.PHK"0D)9F]N M="`](&1I<W!L87E&;VYT*'!I="P@8RD["BL)"7T**PD)"BL)"6EF*&EN<V5T M3W)3<&%C92D@>PHK"0D)+R\@861D('=I9'1H(&]F(&EN<V5T(&]R('-P86-E M+W-E<&%R871O<B`H<&1V*0HK"0D);&%S=%]T;7!X(#T@=&UP>#L**PD)"6QA M<W1?;F]C(#T@,#L**PD)"2\O($QA8F5L:6YG('-T>6QE("XN+@HK"0D):68@ M*&)O9'E?<&]S(#X@,"`F)B!C(#T](&)O9'E?<&]S("T@,2D@>PHK"0D)"49O M;G1-971R:6-S(&-O;G-T("8@9FT@/2!T:&5&;VYT365T<FEC<RAT97AT7RT^ M;&%B96Q&;VYT*'!A<BDI.PHK"0D)"71M<'@@*ST@<F]W+FQA8F5L7VAF:6QL M("L@9FTN=VED=&@H;&%Y;W5T+FQA8F5L<V5P*3L**R\O"0D)"6EF("AP87(N M:7-,:6YE4V5P87)A=&]R*&)O9'E?<&]S("T@,2DI"BLO+PD)"0D)=&UP>"`M M/2!S:6YG;&57:61T:"AP:70L(&)O9'E?<&]S("T@,2D["BL)"0E](&5L<V4@ M>PHK"0D)"71M<'@@*ST@<&TN<VEN9VQE5VED=&@H8RP@9F]N="D["BL)"0D) M:68@*'!A<BYI<U-E<&%R871O<BAC*2`F)B!C(#X](&)O9'E?<&]S*0HK"0D) M"0D)"0ET;7!X("L](')O=RYS97!A<F%T;W(["BL)"0E]"BL)"7T@96QS92![ M"BL)"0DO+R!W92!C;VQL96-T('1H92!C:&%R86-T97)S(&5X8V5P="!F;W(@ M4E1,("AP9'8I"BL)"0EI9B`H9F]N="YI<U)I9VAT5&],969T*"DI('L**PD) M"0EL87-T7W1M<'@@/2!T;7!X.PHK"0D)"71M<'@@*ST@<&TN<VEN9VQE5VED M=&@H8RP@9F]N="D["BL)"0E](&5L<V4@>PHK"0D)"7-T<EMN;V-=/7!A<BYG M971#:&%R*&,I.PHK"0D)"2LK;F]C.PHK"0D)?0HK"0E]"BLC96YD:68*(`D) M*RMV8SL*(`E]"BT**PD**R-I9B!C86QC=6QA=&5?<71?8VAA<E]W:61T:',* M*PDO+R!792!M=7-T('-T:6QL(&9L=7-H('1H92`H<&%R=&EA;"D@=V]R9"!A M="!T:&4@96YD(&]F('1H92!L:6YE("AP9'8I"BL):68@*&YO8R$],"D@>PHK M"0EL87-T7W1M<'@@/2!T;7!X.PHK"0ET;7!X("L]('1E>'17:61T:"AD;V-S M=')I;F<H<W1R+&YO8RDL(&9O;G0N9F]N=$EN9F\H*2P@=')U92D["BL)"6QA M<W1?;F]C(#T@;F]C.PHK"7T**PDO+R!792!F:6YD('1H92!P;W-I=&EO;B!W M:71H:6X@=&AE(&-U<G)E;G0@=V]R9"`H<&1V*0HK"6EF("@@>#P]=&UP>"`F M)B!V8R$]<F]W+G!O<R@I("8F("$H<&%R+FES26YS970H8FED:2YV:7,R;&]G M*'9C+3$I*2D@*2!["BL)"2\O(%=E(&UA:V4@82!G=65S<R!O9B!T:&4@<&]S M:71I;VX@*'!D=BD**PD):6YT(&1V8R`](&EN="AD;W5B;&4H;&%S=%]N;V,I M*BAT;7!X("T@>"DO*'1M<'@@+2!L87-T7W1M<'@I*3L**PD):68@*&1V8SX] M,"`F)B!D=F,@/#T@;&%S=%]N;V,I('L@+R\@<VAO=6QD(&%L=V%Y<R!B92!4 M4E5%"BL)"0DM+79C.PHK"0D):68@*&QA<W1?;F]C(3TP*2![("\O(&EF(&QA M<W1?;F]C/3TP('=E(&%R92!N;W0@=VET:&EN(&$@=V]R9`HK"0D)"79C("T] M(&1V8SL**PD)"0EN;V,@/2!L87-T7VYO8R`M(&1V8SL@+R\@8W5R<F5N="!N M=6UB97(@;V8@8VAA<F%C=&5R<R!O9B!W;W)D"BL)"0D)+R\@5V4@;75S="!C M:&5C:R!O=7(@9W5E<W,@*'!D=BD**PD)"0ED;W5B;&4@<F5F>"`](&QA<W1? M=&UP>#L@+R\@8F5G:6YN:6YG(&]F('=O<F0**PD)"0ET;7!X(#T@<F5F>"`K M('1E>'17:61T:"AD;V-S=')I;F<H<W1R+&YO8RDL9F]N="YF;VYT26YF;R@I M+&9A;'-E*3L**PD)"0EW:&EL92`H=&UP>"`^('@@)B8@;F]C/C`I('L@+R]S M=&5P(&9U<G1H97(@=&\@=&AE(&QE9G0**PD)"0D)+2UV8SL**PD)"0D)=&UP M>"`](')E9G@@*R!T97AT5VED=&@H9&]C<W1R:6YG*'-T<BPM+6YO8RDL9F]N M="YF;VYT26YF;R@I+&9A;'-E*3L**PD)"0E]"BL)"0D)=VAI;&4@*'1M<'@@ M/#T@>"`F)B!N;V,\;&%S=%]N;V,I('L@+R]S=&5P("AB86-K*2!T;R!T:&4@ M<FEG:'0**PD)"0D)*RMV8SL**PD)"0D);&%S=%]T;7!X(#T@=&UP>#L**PD) M"0D)=&UP>"`](')E9G@@*R!T97AT5VED=&@H9&]C<W1R:6YG*'-T<BPK*VYO M8RDL9F]N="YF;VYT26YF;R@I+&9A;'-E*3L**PD)"0E]"BL)"0E]"BL)"0EC M(#T@8FED:2YV:7,R;&]G*'9C*RLI.PHK"0E]"BL)?0HK(V5N9&EF"BL)"B`) M:68@*"AT;7!X("L@;&%S=%]T;7!X*2`O(#(@/B!X*2!["B`)"71M<'@@/2!L M87-T7W1M<'@["B`)"6QE9G1?<VED92`]('1R=64["D!`("TQ-S$T+#$R("LQ M.3,W+#$Y($!`(&EN="!497AT365T<FEC<SHZ8W5R<V]R6"A#=7)S;W)3;&EC M92!C;VYS="`F('-L+`H@"0EI9B`H9F]N="YI<U)I9VAT5&],969T*"D@)B8@ M8V]M<&QE=&EO;BYL96YG=&@H*2`^(#`I"B`)"0EX("L]('1H949O;G1-971R M:6-S*&9O;G0N9F]N=$EN9F\H*2DN=VED=&@H8V]M<&QE=&EO;BD["B`)?0HK M"0HK"2\O(%9A<FEA8FQE<R!N965D960@9F]R(&-A;&-U;&%T:6YG('1H92!W M:61T:"`H<&1V*0HK"7=C:&%R7W0@<W1R6V-U<G-O<E]V<&]S73L**PEI;G0@ M;F]C(#T@,#L*(`H@"69O<B`H<&]S7W1Y<&4@=G!O<R`](')O=U]P;W,[('9P M;W,@/"!C=7)S;W)?=G!O<SL@*RMV<&]S*2!["B`)"2\O(%-K:7`@=&AE('-E M<&%R871O<B!W:&EC:"!I<R!A="!T:&4@;&]G:6-A;"!E;F0@;V8@=&AE(')O M=PH@"0EI9B`H=G!O<R`]/2!S:VEP<&5D7W-E<%]V<&]S*0H@"0D)8V]N=&EN M=64["B`)"7!O<U]T>7!E('!O<R`](&)I9&DN=FES,FQO9RAV<&]S*3L**PHK M(VEF("%C86QC=6QA=&5?<71?8VAA<E]W:61T:',**PD)"B`)"6EF("AB;V1Y M7W!O<R`^(#`@)B8@<&]S(#T](&)O9'E?<&]S("T@,2D@>PH@"0D)1F]N=$UE M=')I8W,@8V]N<W0@)B!L86)E;&9M(#T@=&AE1F]N=$UE=')I8W,H"B`)"0D) M=&5X=%\M/FQA8F5L1F]N="AP87(I*3L*0$`@+3$W,S4L-R`K,3DV-2PT.2!` M0"!I;G0@5&5X=$UE=')I8W,Z.F-U<G-O<E@H0W5R<V]R4VQI8V4@8V]N<W0@ M)B!S;"P*(`D)?0H@"B`)"7@@*ST@<&TN<VEN9VQE5VED=&@H<&]S+"!F;VYT M*3L**PD):68@*'!A<BYI<U-E<&%R871O<BAP;W,I("8F('!O<R`^/2!B;V1Y M7W!O<RD**PD)"7@@*ST@<F]W+G-E<&%R871O<CL**R-E;'-E"BL)"0HK"0DO M+R!W92!D969I;F4@='=O(&)O;VQE86YS('1O(')E=7-E"BL)"6)O;VP@;F5W M1F]N="`]("AP;W,@/"!F;VYT7W-P86XN9FER<W0@?'P@<&]S(#X@9F]N=%]S M<&%N+FQA<W0I.PHK"0EB;V]L(&EN<V5T3W)3<&%C92`]("AP87(N:7-);G-E M="AP;W,I('Q\("%I<U!R:6YT86)L94YO;G-P86-E*'!A<BYG971#:&%R*'!O M<RDI*3L**PD)"BL)"6EF("@H;F5W1F]N="!\?"!I;G-E=$]R4W!A8V4I("8F M(&YO8R$],"D@>PHK"0D)+R\@9FQU<V@@8VAA<F%C=&5R(&)U9F9E<B!I9B!N M;W0@96UP='D@*'!D=BD**PD)"7@@*ST@=&5X=%=I9'1H*&1O8W-T<FEN9RAS M='(L;F]C*2P@9F]N="YF;VYT26YF;R@I+"!T<G5E*3L**PD)"6YO8STP.PHK M"0E]"BL)"0HK"0EI9B`H;F5W1F]N="D@>PHK"0D)+R\@9V5T(&YE=R!F;VYT M"BL)"0EF;VYT7W-P86X@/2!P87(N9F]N=%-P86XH<&]S*3L**PD)"69O;G0@ M/2!D:7-P;&%Y1F]N="AP:70L('!O<RD["BL)"7T**PHK"0EI9BAI;G-E=$]R M4W!A8V4I('L**PD)"2\O(&%D9"!W:61T:"!O9B!I;G-E="!O<B!S<&%C92`H M<&1V*0HK"0D):68@*&)O9'E?<&]S(#X@,"`F)B!P;W,@/3T@8F]D>5]P;W,@ M+2`Q*2!["BL)"0D)1F]N=$UE=')I8W,@8V]N<W0@)B!L86)E;&9M(#T@=&AE M1F]N=$UE=')I8W,H=&5X=%\M/FQA8F5L1F]N="AP87(I*3L**PD)"0EX("L] M(')O=RYL86)E;%]H9FEL;"`K(&QA8F5L9FTN=VED=&@H<&%R+FQA>6]U="@I M+FQA8F5L<V5P*3L**R\O"0D)"6EF("AP87(N:7-,:6YE4V5P87)A=&]R*&)O M9'E?<&]S("T@,2DI"BLO+PD)"0D)>"`M/2!S:6YG;&57:61T:"AP:70L(&)O M9'E?<&]S("T@,2D["BL)"0E](&5L<V4@>PHK"0D)"7@@*ST@<&TN<VEN9VQE M5VED=&@H<&]S+"!F;VYT*3L**PD)"0EI9B`H<&%R+FES4V5P87)A=&]R*'!O M<RD@)B8@<&]S(#X](&)O9'E?<&]S*0HK"0D)"0EX("L](')O=RYS97!A<F%T M;W(["BL)"0E]"BL)"7T@96QS92!["BL)"0DO+R!W92!C;VQL96-T('1H92!C M:&%R86-T97)S(&5X8V5P="!F;W(@4E1,("AP9'8I"BL)"0EI9B`H9F]N="YI M<U)I9VAT5&],969T*"DI"BL)"0D)>"`K/2!P;2YS:6YG;&57:61T:"AP;W,L M(&9O;G0I.PHK"0D)96QS92!["BL)"0D)<W1R6VYO8UT]<&%R+F=E=$-H87(H M<&]S*3L**PD)"0EN;V,K*SL**PD)"7T**PD)?0H@"BLC96YD:68*(`D)+R\@ M26YL:6YE(&-O;7!L971I;VX@4E1,(&-A<V4Z"B`)"2\O(")A7U]\8B(L(%]? M(&]F(&(@/3X@;F]N+6)O=6YD87)Y(&$M<&]S(&ES(')I9VAT(&]F(%]?"B`) M"6EF("AV<&]S("L@,2`]/2!I;FQI;F5#;VUP;&5T:6]N5E!O<PI`0"`M,3<U M-BPX("LR,#(X+#@@0$`@:6YT(%1E>'1-971R:6-S.CIC=7)S;W)8*$-U<G-O M<E-L:6-E(&-O;G-T("8@<VPL"B`)"0D)>"`K/2!T:&5&;VYT365T<FEC<RAF M;VYT+F9O;G1);F9O*"DI+G=I9'1H*&-O;7!L971I;VXI.PH@"0E]"B`*+0D) M:68@*'!A<BYI<U-E<&%R871O<BAP;W,I("8F('!O<R`^/2!B;V1Y7W!O<RD* M+0D)"7@@*ST@<F]W+G-E<&%R871O<CL**R\O"0EI9B`H<&%R+FES4V5P87)A M=&]R*'!O<RD@)B8@<&]S(#X](&)O9'E?<&]S*0HK+R\)"0EX("L](')O=RYS M97!A<F%T;W(["B`)?0H@"B`)+R\@<V5E(&-O<G)E8W1I;VX@86)O=F4*0$`@ M+3$W-C@L-B`K,C`T,"PQ-"!`0"!I;G0@5&5X=$UE=')I8W,Z.F-U<G-O<E@H M0W5R<V]R4VQI8V4@8V]N<W0@)B!S;"P*(`D)"7@@*ST@<VEN9VQE5VED=&@H M<&ET+"!P<&]S*3L*(`E]"B`**R-I9B!C86QC=6QA=&5?<71?8VAA<E]W:61T M:',**PEI9B`H;F]C(3TP*2!["BL)"2\O(&9L=7-H(&-H87)A8W1E<B!B=69F M97(@:68@;F]T(&5M<'1Y("AP9'8I"BL)"7@@*ST@=&5X=%=I9'1H*&1O8W-T M<FEN9RAS='(L;F]C*2P@9F]N="YF;VYT26YF;R@I+"!F86QS92D["BL)?0HK M(V5N9&EF"BLC=6YD968@8V%L8W5L871E7W%T7V-H87)?=VED=&AS"BL)"B`) M<F5T=7)N(&EN="AX*3L*('T*(`ID:69F("TM9VET(&$O<W)C+U1E>'1-971R M:6-S+F@@8B]S<F,O5&5X=$UE=')I8W,N:`II;F1E>"`V-F0S,3!F+BYE-CDT M9F9D(#$P,#8T-`HM+2T@82]S<F,O5&5X=$UE=')I8W,N:`HK*RL@8B]S<F,O M5&5X=$UE=')I8W,N:`I`0"`M,C<L-B`K,C<L,3(@0$`@8VQA<W,@0W5R<V]R M4VQI8V4["B!C;&%S<R!$;V-)=&5R871O<CL*(&-L87-S($UE=')I8W-);F9O M.PH@8VQA<W,@5&5X=#L**PD**PDO+R!W92!D969I;F4@82!S=')U8W1U<F4@ M9F]R(&1E9FEN:6YG(&$@<F]W(&)R96%K<&]I;G0@*'!D=BD**PES=')U8W0@ M<F]W7V)P7W1Y<&4@>PHK"0EP;W-?='EP92!P;VEN=#L)+R\@8G)E86MP;VEN M=`HK"0EI;G0@=VED=&@["2\O('=I9'1H(&]F('1H92!R;W<@8G)O:V5N"BL) M?3L*(`H@+R\O($$@;6%P(&9R;VT@82!497AT('1O('1H92!M87`@;V8@<&%R M86=R87!H<R!M971R:6-S"B!C;&%S<R!497AT365T<FEC<PI`0"`M,3(X+#8@ M*S$S-"PQ,R!`0"!P=6)L:6,Z"B`)"7!O<U]T>7!E(&-O;G-T(&9I<G-T+`H@ M"0EP;W-?='EP92!C;VYS="!E;F0L"B`)"6)O;VP@=&]P0F]T=&]M4W!A8V4@ M/2!T<G5E*2!C;VYS=#L**PD**PDO+R\@<F5T=7)N<R!T:&4@<F5A;"!W:61T M:"!O9B!A('-T<FEN9R!I;B!P:7AE;`HK"2\O+R!C86-H92!I;G-T<G5C=',@ M=VAE=&AE<B!O<B!N;W0@=&\@<W1O<F4@=&AE('=I9'1H"BL):6YT('1E>'17 M:61T:"@**PD)9&]C<W1R:6YG(',L"BL)"49O;G1);F9O(&-O;G-T("8@9F]N M="P**PD)8F]O;"!C86-H92D@8V]N<W0["B`*('!R:79A=&4Z"B`)+R\O"D!` M("TQ-#$L-R`K,34T+#<@0$`@<')I=F%T93H*(`H@"2\O+R!S971S(')O=RYE M;F0@=&\@=&AE('!O<R!V86QU92`J869T97(J('=H:6-H(&$@<F]W('-H;W5L M9"!B<F5A:RX*(`DO+R\@9F]R(&5X86UP;&4L('1H92!P;W,@869T97(@=VAI M8V@@:7-.97=,:6YE*'!O<RD@/3T@=')U90HM"7!O<U]T>7!E(')O=T)R96%K M4&]I;G0H"BL)<F]W7V)P7W1Y<&4@<F]W0G)E86M0;VEN="@*(`D):6YT('=I M9'1H+`H@"0EP:71?='EP92!C;VYS="!P:70L"B`)"7!O<U]T>7!E(&9I<G-T M"D!`("TQ-30L-R`K,38W+#<@0$`@<')I=F%T93H*(`D)<&]S7W1Y<&4@8V]N M<W0@9FER<W0L"B`)"7!O<U]T>7!E(&-O;G-T(&5N9`H@"0DI(&-O;G-T.PHM M"BL)"B`O+R!496UP;W)A<GD@<'5B;&EC.@H@<'5B;&EC.@H@"2\O+R!R971U M<FYS('1H92!C;VQU;6X@;F5A<B!T:&4@<W!E8VEF:65D('@M8V]O<F1I;F%T M92!O9B!T:&4@<F]W+@ID:69F("TM9VET(&$O<W)C+W)O=W!A:6YT97(N8W!P M(&(O<W)C+W)O=W!A:6YT97(N8W!P"FEN9&5X(#0X93ED93,N+C4Q.#(Q,F0@ M,3`P-C0T"BTM+2!A+W-R8R]R;W=P86EN=&5R+F-P<`HK*RL@8B]S<F,O<F]W M<&%I;G1E<BYC<'`*0$`@+3(W,BPQ,R`K,C<R+#(W($!`('9O:60@4F]W4&%I M;G1E<CHZ<&%I;G1#:&%R<RAP;W-?='EP92`F('9P;W,L($9O;G1);F9O(&-O M;G-T("8@9F]N="P*(`D)+R\@36%Y8F4@82!M;W)E(&=E;F5R86P@9FEX('=O M=6QD(&)E(&1R87<@8VAA<F%C=&5R(&)Y(&-H87)A8W1E<@H@"0DO+R!F;W(@ M<V]M92!P<F5D969I;F5D(&9O;G1S(&]N('-O;64@<&QA=&9O<FTN($EN(&%R M86)I8R!A;F0*(`D)+R\@2&5B<F5W('=E(&%L<F5A9'D@9&\@<&%I;G0@=&AI M<R!W87DN"BL**R\O(%=I=&@@=&AI<R!V87)I86)L92!T:&4@;65T:&]D(&9O M<B!C86QC=6QA=&EN9R!T:&4@8W5R<V]R('!O<VET:6]N"BLO+R!C86X@8F4@ M<V5L96-T960N(`HK+R\@5&AE<F4@:7,@82!S:6UI;&%R(&-H86YG92!T;R!M M86ME(&EN(%1E>'1-971R:6-S+F-P<`HK"BLC9&5F:6YE(&-A;&-U;&%T95]Q M=%]C:&%R7W=I9'1H<R`Q"BLC:68@(6-A;&-U;&%T95]Q=%]C:&%R7W=I9'1H M<PHK"0DO+R!4;R!A=F]I9"!S;&]W('-C<F]L;&EN9R!W92!A=F]I9"!T:&ES M(&%N9`HK"0DO+R!W92!C86QC=6QA=&4@=&AE(')E86P@8VAA<F%C=&5R('=I M9'1H<R!I;@HK"0DO+R!497AT365T<FEC<SHZ8W5R<V]R6"@I(&%N9"!497AT M365T<FEC<SHZ9V5T0V]L=6UN3F5A<E@H*2`H<&1V*0H@"0EI9B`H<')E=E]C M:&%R(#T]("=F)R!\?"!L>7AR8RYF;W)C95]P86EN=%]S:6YG;&5?8VAA<BD* M(`D)"6)R96%K.PHK(V5N9&EF"B`*(`D)<&]S(#T@8FED:5\N=FES,FQO9RAV M<&]S*3L*(`D):68@*'!O<R`\(&9O;G1?<W!A;BYF:7)S="!\?"!P;W,@/B!F M;VYT7W-P86XN;&%S="D*(`D)"6)R96%K.PH@"BLC:68@(6-A;&-U;&%T95]Q M=%]C:&%R7W=I9'1H<PHK"0DO+R!4:&ES(&)R96%K<R!W;W)D<R!F;W(@<&%I M;G1I;F<@86YD(&-A=7-E<R!J:71T97(@9'5R:6YG('-E;&5C=&EN9R!B>2!D M<F%G9VEN9RX**PD)+R\@22!A;'-O(&1O;B=T('-E92!W:'D@=&AE(&9O;&QO M=VEN9R`R(&)R96%K<R!A<F4@;F5E9&5D("AP9'8I"B`)"6)O;VP@8V]N<W0@ M;F5W7W-E;&5C=&EO;B`]('!O<R`^/2!R;W=?+G-E;%]B96<@)B8@<&]S(#P@ M<F]W7RYS96Q?96YD.PH@"0EI9B`H;F5W7W-E;&5C=&EO;B`A/2!S96QE8W1I M;VXI"B`)"0DO+R!396QE8W1I;VX@96YD<R!O<B!S=&%R=',@:&5R92X*0$`@ M+3(Y-"PV("LS,#@L-R!`0"!V;VED(%)O=U!A:6YT97(Z.G!A:6YT0VAA<G,H M<&]S7W1Y<&4@)B!V<&]S+"!&;VYT26YF;R!C;VYS="`F(&9O;G0L"B`)"6EF M("@A8VAA;F=E7W)U;FYI;F<N:7-3:6UI;&%R5&\H8VAA;F=E*2D*(`D)"2\O M(%1R86-K(&-H86YG92!T>7!E(&]R(&%U=&AO<B!H87,@8VAA;F=E9"X*(`D) M"6)R96%K.PHK(V5N9&EF"B`*(`D)8VAA<E]T>7!E(&,@/2!P87)?+F=E=$-H M87(H<&]S*3L*(`I`0"`M,S4Q+#<@*S,V-BPQ-R!`0"!V;VED(%)O=U!A:6YT M97(Z.G!A:6YT0VAA<G,H<&]S7W1Y<&4@)B!V<&]S+"!&;VYT26YF;R!C;VYS M="`F(&9O;G0L"B`)"7,N<F5P;&%C92@P+#$L9G)O;5]A<V-I:2@B("`@("(I M*3L*(`H@"6EF("@A<V5L96-T:6]N("8F("%C:&%N9V5?<G5N;FEN9RYC:&%N M9V5D*"DI('L**R-I9B`A8V%L8W5L871E7W%T7V-H87)?=VED=&AS"B`)"7A? M("L]('!I7RYP86EN+G1E>'0H:6YT*'A?*2P@>6]?+"!S+"!F;VYT*3L**R-E M;'-E"BL)"2\O('=E(&1O;B=T('5S92!T:&4@=VED=&@@<F5T=7)N960@8GD@ M1W5I4&%I;G1E<CHZ=&5X=`HK"0DO+R!E>&-E<'0@9F]R('-I;F=L92!C:&%R M86-T97)S"BL)"6EN="!W(#T@<&E?+G!A:6XN=&5X="AI;G0H>%\I+"!Y;U\L M(',L(&9O;G0I.PHK"0EI9B`H<RYS:7IE*"D@/3T@,2D**PD)"7A?("L]('<[ M"BL)"65L<V4**PD)"7A?("L]('1E>'1?;65T<FEC<U\N=&5X=%=I9'1H*',L M(&9O;G0L('1R=64I.PHK(V5N9&EF"B`)"7)E='5R;CL*(`E]"B`*0$`@+3,V M,2PW("LS.#8L,3<@0$`@=F]I9"!2;W=086EN=&5R.CIP86EN=$-H87)S*'!O M<U]T>7!E("8@=G!O<RP@1F]N=$EN9F\@8V]N<W0@)B!F;VYT+`H@"65L<V4@ M:68@*'-E;&5C=&EO;BD*(`D)8V]P>2YS971086EN=$-O;&]R*$-O;&]R7W-E M;&5C=&EO;G1E>'0I.PH@"BLC:68@(6-A;&-U;&%T95]Q=%]C:&%R7W=I9'1H M<PH@"7A?("L]('!I7RYP86EN+G1E>'0H:6YT*'A?*2P@>6]?+"!S+"!C;W!Y M*3L**R-E;'-E"BL)+R\@=V4@9&]N)W0@=7-E('1H92!W:61T:"!R971U<FYE M9"!B>2!'=6E086EN=&5R.CIT97AT*"D**PDO+R!E>&-E<'0@9F]R('-I;F=L M92!C:&%R86-T97)S"BL):6YT('<@/2!P:5\N<&%I;BYT97AT*&EN="AX7RDL M('EO7RP@<RP@8V]P>2D["BL):68@*',N<VEZ92@I(#T](#$I"BL)"7A?("L] M('<["BL)96QS90HK"0EX7R`K/2!T97AT7VUE=')I8W-?+G1E>'17:61T:"AS >+"!F;VYT+"!T<G5E*3L**R-E;F1I9@H@?0H@"B`* ` end