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

Reply via email to