www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Condition Variables implementation - condvars-0.16.patch

Hi!

I did some work on condition variables in GDC last week and I would
like them to be included and tested "out there".

The patch is pretty simple, but targeted towards GDC. However, the
only existing file it patches is phobos/internal/monitor.c, so it
should fit into DMD quite easily.

A couple of remarks:

The code uses pthreads on POSIX and semaphores and critical sections
on Windows.

There is a test thing implementing the Windows stuff in pthreads so
I could test the algorithm under Linux. I haven't actually tested it under
Windows.

I checked the pthread-w32 implementation of condvars, but I think
they are doing things too complicated. Doing condvars using
semaphores is a standard homework task in parallel programming, so it
should be fairly simple (assuming Win32 semaphores work).

monitor.c has been patched so I could get hold of the synchronized()
mutex.

Documentation should be fairly complete (though not meant for people
not accustomed with Hoar monitors)

You don't need to run signal() from within a synchronized() block.
This differs from Java, but I couldn't find any reason not to allow
this. Anyway, the first thing that happens in signal()/broadcast() is
to lock the mutex, so it would just be a matter of removing those
locks.

Both Windows critical sections and the current pthread mutices are
recursive, so the signal()/broadcast() issue above should allow them
to be run as normal (inside a monitor()).

Many regards,
Tommie Gannert
 - Just a fan
begin 0644 condvars-0.16.patch
M9&EF9B`M3G)U(&=C8RTS+C,N-BUO<FEG+V=C8R]D+W!H;V)O<R]I;G1E<FYA
M;"]M;VYI=&]R+F, 9V-C+3,N,RXV+V=C8R]D+W!H;V)O<R]I;G1E<FYA;"]M
M;VYI=&]R+F,*+2TM(&=C8RTS+C,N-BUO<FEG+V=C8R]D+W!H;V)O<R]I;G1E
M<FYA;"]M;VYI=&]R+F,),C`P-2TQ,BTP,R`P,#HQ



M3BH 7V1?9V5T7V]B:F5C=%]M;VYI=&]R*$]B:F5C="`J:"D**WL**PDO+R!"
M86EL(&]U="!I9B!T:&5R92!I<R!N;R!M;VYI=&]R+ HK"6%S<V5R="AH+3YM
M;VYI=&]R*3L**PD**PER971U<FX *$-2251)0T%,7U-%0U1)3TX *BF :"T^
M;6]N:71O<CL**WT**PH (V5N9&EF"B`*("\J(#T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T ;&EN=7  /3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]

M<F5A9%]M=71E>%]T*B!?9%]G971?;V)J96-T7VUO;FET;W(H3V)J96-T("IH
M*0HK>PHK("` ("\O<')I;G1F*")?9%]G971?;V)J96-T7VUO;FET;W(H)7`I
M+"`E<%QN(BP :"P :"T^;6]N:71O<BD["BL)87-S97)T*& M/FUO;FET;W(I
M.PHK"0HK"7)E='5R;B`H<'1H<F5A9%]M=71E>%]T("HI(& M/FUO;FET;W([
M"BM]"BL*("-E;F1I9 ID:69F("U.<G4 9V-C+3,N,RXV+6]R:6<O9V-C+V0O
M<&AO8F]S+TUA:V5F:6QE+FEN(&=C8RTS+C,N-B]G8V,O9"]P:&]B;W,O36%K
M969I;&4N:6X*+2TM(&=C8RTS+C,N-BUO<FEG+V=C8R]D+W!H;V)O<R]-86ME



M($!`"B`):6YT97)N86PO8V%S="YO('-T9"]P871H+F\ <W1D+W-T<FEN9RYO
M(&EN=&5R;F%L+VUE;7-E="YO('-T9"]M871H+F\ <W1D+VUM9FEL92YO(%P*
M(`ES=&0O;W5T8G5F9F5R+F\ <W1D+V-T>7!E+F\ <W1D+W)E9V5X<"YO('-T
M9"]R86YD;VTN;R!<"B`)<W1D+W-T<F5A;2YO('-T9"]C<W1R96%M+F\ <W1D
M+W-W:71C:&5R<BYO('-T9"]A<G)A>2YO('-T9"]G8RYO(%P*+0EI;G1E<FYA
M;"]Q<V]R="YO('-T9"]T:')E860N;R!I;G1E<FYA;"]O8FHN;R!S=&0O=71F
M+F\ <W1D+W5R:2YO(%P**PEI;G1E<FYA;"]Q<V]R="YO('-T9"]T:')E860N
M;R!S=&0O8V]N9&ET:6]N+F\ :6YT97)N86PO;V)J+F\ <W1D+W5T9BYO('-T
M9"]U<FDN;R!<"B`)8W)C,S(N;R!S=&0O8V]N=BYO(&EN=&5R;F%L+V%R<F%Y
M8V%S="YO(&5R<FYO+F\ 7`H "7-T9"]P<F]C97-S+F\ <W1D+W-Y<V5R<F]R
M+F\ 7`H "7-T9"]S;V-K970N;R!S=&0O<V]C:V5T<W1R96%M+F\ <W1D+V,O
M<W1D87)G+F\ <W1D+W-T9&EO+F\ <W1D+V9O<FUA="YO(%P*9&EF9B`M3G)U
M(&=C8RTS+C,N-BUO<FEG+V=C8R]D+W!H;V)O<R]S=&0O8R]U;FEX+W!T:')E
M861S+F0 9V-C+3,N,RXV+V=C8R]D+W!H;V)O<R]S=&0O8R]U;FEX+W!T:')E
M861S+F0*+2TM(&=C8RTS+C,N-BUO<FEG+V=C8R]D+W!H;V)O<R]S=&0O8R]U
M;FEX+W!T:')E861S+F0),3DW,"TP,2TP,2`P,3HP,#HP




M("`**R` (%1H:7, <')O9W)A;2!I<R!F<F5E('-O9G1W87)E.R!Y;W4 8V%N
M(')E9&ES=')I8G5T92!I="!A;F0O;W( ;6]D:69Y"BL ("!I="!U;F1E<B!T
M:&4 =&5R;7, ;V8 =&AE($=.52!'96YE<F%L(%!U8FQI8R!,:6-E;G-E(&%S
M('!U8FQI<VAE9"!B>0HK("` =&AE($9R964 4V]F='=A<F4 1F]U;F1A=&EO
M;CL 96ET:&5R('9E<G-I;VX ,B!O9B!T:&4 3&EC96YS92P ;W(**R` ("AA
M="!Y;W5R(&]P=&EO;BD 86YY(&QA=&5R('9E<G-I;VXN"BL "BL ("!4:&ES
M('!R;V=R86T :7, 9&ES=')I8G5T960 :6X =&AE(&AO<&4 =&AA="!I="!W
M:6QL(&)E('5S969U;"P**R` (&)U="!7251(3U54($%.62!705)204Y463L 

M2$%.5$%"24Q)5%D ;W( 1DE43D534R!&3U( 02!005)424-53$%2(%!54E!/
M4T4N("!3964 =&AE"BL ("!'3E4 1V5N97)A;"!0=6)L:6, 3&EC96YS92!F
M;W( ;6]R92!D971A:6QS+ HK(`HK("` 66]U('-H;W5L9"!H879E(')E8V5I
M=F5D(&$ 8V]P>2!O9B!T:&4 1TY5($=E;F5R86P 4'5B;&EC($QI8V5N<V4*
M*R` (&%L;VYG('=I=&  =&AI<R!P<F]G<F%M.R!I9B!N;W0L('=R:71E('1O
M('1H92!&<F5E(%-O9G1W87)E"BL ("!&;W5N9&%T:6]N+"!);F,N+"`U.2!4

M-R` 55-!"BLJ+PHK+RH**R` (%1H:7, 9FEL92!I<R!A($0M:69I8V%T:6]N
M(&]F('1H92!03U-)6"!P=&AR96%D<RYH(&AE861E<B!F:6QE+ HK("` "BL 
M("!!=71H;W)S.B!4;VUM:64 1V%N;F5R=`HK("` 1&%T93H ,C`P-2TQ,BTP

M;&4 <W1D+F,N=6YI>"YP=&AR96%D<SL**PHK:6UP;W)T(&=C8RYC;VYF:6=U
M;FEX.PHK"BL**R\O($9R;VT 8FET<R]S8VAE9"YH"BMS=')U8W0 <V-H961?
M<&%R86T**WL**PEI;G0 <V-H961?<')I;W)I='D["BM]"BL**PHK+R\ 1G)O
M;2!B:71S+W1Y<&5S+F **W1Y<&5D968 :6YT(&-L;V-K:61?=#L**PHK"BLO
M+R!&<F]M(&)I=',O:6YI='-P:6XN:`HK8V]N<W0 :6YT($Q47U-024Y,3T-+
M7TE.250 /2`P.PHK8V]N<W0 <'1H<F5A9%]F87-T;&]C:R!,3T-+7TE.251)
M04Q)6D52(#T >R`P+"!?7TQ47U-024Y,3T-+7TE.250 ?3L**PHK"BLO+R!&
M<F]M(&)I=',O<'1H<F5A9'1Y<&5S+F **W-T<G5C="!P=&AR96%D7V9A<W1L
M;V-K"BM["BL):6YT('-T871U<SL**PEI;G0 <W!I;FQO8VL["BM]"BL**PHK
M='EP961E9B!V;VED*B!P=&AR96%D7V1E<V-R.PHK"BL**W-T<G5C="!P=&AR
M96%D7V%T=')?=`HK>PHK"6EN="!D971A8VAS=&%T93L**PEI;G0 <V-H961P
M;VQI8WD["BL)<V-H961?<&%R86T <V-H961P87)A;3L**PEI;G0 :6YH97)I
M='-C:&5D.PHK"6EN="!S8V]P93L**PES:7IE7W0 9W5A<F1S:7IE.PHK"6EN
M="!S=&%C:V%D9')?<V5T.PHK"79O:60J('-T86-K861D<CL**PES:7IE7W0 
M<W1A8VMS:7IE.PHK?0HK"BL**V%L:6%S(&QO;F< <'1H<F5A9%]C;VYD7V%L
M:6=N7W0["BL**PHK<W1R=6-T('!T:')E861?8V]N9%]T"BM["BL)<'1H<F5A
M9%]F87-T;&]C:R!C7VQO8VL["BL)<'1H<F5A9%]D97-C<B!C7W=A:71I;F<[

M9B`M('!T:')E861?9&5S8W(N<VEZ96]F("T <'1H<F5A9%]C;VYD7V%L:6=N
M7W0N<VEZ96]F73L**PEP=&AR96%D7V-O;F1?86QI9VY?="!?7V%L:6=N.PHK
M?0HK"BL**W-T<G5C="!P=&AR96%D7V-O;F1A='1R7W0**WL**PEI;G0 7U]D
M=6UM>3L**WT**PHK"BMT>7!E9&5F('5I;G0 <'1H<F5A9%]K97E?=#L**PHK
M"BMS=')U8W0 <'1H<F5A9%]M=71E>%]T"BM["BL):6YT(&U?<F5S97)V960[
M"BL):6YT(&U?8V]U;G0["BL)<'1H<F5A9%]D97-C<B!M7V]W;F5R.PHK"6EN
M="!M7VMI;F0["BL)<'1H<F5A9%]F87-T;&]C:R!M7VQO8VL["BM]"BL**PHK
M<W1R=6-T('!T:')E861?;75T97AA='1R7W0**WL**PEI;G0 ;75T97AK:6YD
M.PHK?0HK"BL**W1Y<&5D968 :6YT('!T:')E861?;VYC95]T.PHK"BL**W-T
M<G5C="!P=&AR96%D7W)W;&]C:U]T"BM["BL)<'1H<F5A9%]F87-T;&]C:R!R
M=U]L;V-K.PHK"6EN="!R=U]R96%D97)S.PHK"7!T:')E861?9&5S8W( <G=?
M=W)I=&5R.PHK"7!T:')E861?9&5S8W( <G=?<F5A9%]W86ET:6YG.PHK"7!T
M:')E861?9&5S8W( <G=?=W)I=&5?=V%I=&EN9SL**PEI;G0 <G=?:VEN9#L*
M*PEI;G0 <G=?<'-H87)E9#L**WT**PHK"BMS=')U8W0 <'1H<F5A9%]R=VQO
M8VMA='1R7W0**WL**PEI;G0 ;&]C:VMI;F0["BL):6YT('!S:&%R960["BM]
M"BL**PHK+R\O(%1/1$\Z($ES('9O;&%T:6QE('1H92!S86UE(&%S(&EN($,_
M"BMT>7!E9&5F(&EN="!P=&AR96%D7W-P:6YL;V-K7W0["BL**PHK<W1R=6-T
M('!T:')E861?8F%R<FEE<E]T"BM["BL)<'1H<F5A9%]F87-T;&]C:R!B85]L
M;V-K.PHK"6EN="!B85]R97%U:7)E9#L**PEI;G0 8F%?<')E<V5N=#L**PEP
M=&AR96%D7V1E<V-R(&)A7W=A:71I;F<["BM]"BL**PHK<W1R=6-T('!T:')E
M861?8F%R<FEE<F%T=')?=`HK>PHK"6EN="!P<VAA<F5D.PHK?0HK"BL**W1Y
M<&5D968 =6EN="!P=&AR96%D7W0["BL**PHK+R\ 1G)O;2!P=&AR96%D+F *
M*V-O;G-T('!T:')E861?;75T97A?="!05$A214%$7TU55$587TE.251)04Q)
M6D52(#T >R`P+"`P+"!N=6QL+"!05$A214%$7TU55$587U1)345$7TY0+"!,
M3T-+7TE.251)04Q)6D52('T["BMC;VYS="!P=&AR96%D7VUU=&5X7W0 4%1(


M04Q)6D52('T["BMC;VYS="!P=&AR96%D7VUU=&5X7W0 4%1(4D5!1%]%4E)/
M4D-(14-+7TU55$587TE.251)04Q)6D527TY0(#T >R`P+"`P+"!N=6QL+"!0
M5$A214%$7TU55$587T524D]20TA%0TM?3E`L($Q/0TM?24Y)5$E!3$E:15( 
M?3L**V-O;G-T('!T:')E861?;75T97A?="!05$A214%$7T%$05!4259%7TU5
M5$587TE.251)04Q)6D527TY0(#T >R`P+"`P+"!N=6QL+"!05$A214%$7TU5
M5$587T%$05!4259%7TY0+"!,3T-+7TE.251)04Q)6D52('T["BL**V-O;G-T
M('!T:')E861?8V]N9%]T(%!42%)%041?0T].1%])3DE424%,25I%4B`]('L 




M?3L**V-O;G-T('!T:')E861?<G=L;V-K7W0 4%1(4D5!1%]25TQ/0TM?5U))

M24%,25I%4BP ,"P ;G5L;"P ;G5L;"P ;G5L;"P 4%1(4D5!1%]25TQ/0TM?
M4%)%1D527U=2251%4E].3TY214-54E-)5D5?3E`L(%!42%)%041?4%)/0T53
M4U]04DE6051%('T["BL**PHK96YU;0HK>PHK"5!42%)%041?0U)%051%7TI/

M*WL**PE05$A214%$7TE.2$52251?4T-(140L"BL)4%1(4D5!1%]%6%!,24-)


M4%1(4D5!1%]-551%6%]424U%1%].4"P**PE05$A214%$7TU55$587U)%0U52
M4TE615].4"P**PE05$A214%$7TU55$587T524D]20TA%0TM?3E`L"BL)4%1(
M4D5!1%]-551%6%]!1$%05$E615].4`HK?0HK"BL**V5N=6T**WL**PE05$A2
M14%$7U!23T-%4U-?4%))5D%412P**PE05$A214%$7U!23T-%4U-?4TA!4D5$
M"BM]"BL**PHK96YU;0HK>PHK"5!42%)%041?4E=,3T-+7U!2149%4E]214%$
M15)?3E`L"BL)4%1(4D5!1%]25TQ/0TM?4%)%1D527U=2251%4E].4"P**PE0


M4%)%1D527U=2251%4E].4`HK?0HK"BL**V-O;G-T('!T:')E861?;VYC95]T

M;&5A;G5P7V)U9F9E< HK>PHK"79O:60 9G5N8W1I;VXH=F]I9"HI(')O=71I
M;F4["BL)=F]I9"H 87)G.PHK"6EN="!C86YC96QT>7!E.PHK"7!T:')E861?
M8VQE86YU<%]B=69F97( *G!R978["BM]"BL**PHK96YU;0HK>PHK"5!42%)%
M041?0T%.0T5,7T5.04),12P**PE05$A214%$7T-!3D-%3%]$25-!0DQ%"BM]
M"BL**PHK96YU;0HK>PHK"5!42%)%041?0T%.0T5,7T1%1D524D5$+`HK"5!4

M(%!42%)%041?0T%.0T5,140 /2!C87-T*'9O:60J*2 M,2D["BL**PHK97AT

M*B!?7W1H<F5A9'`L"BL)"7!T:')E861?871T<E]T*B!?7V%T='(L"BL)"79O
M:60J(&9U;F-T:6]N*'9O:60J*2!?7W-T87)T7W)O=71I;F4L"BL)"79O:60J
M(%]?87)G*3L**PEP=&AR96%D7W0 <'1H<F5A9%]S96QF*"D["BL):6YT('!T
M:')E861?97%U86PH<'1H<F5A9%]T(%]?=&AR96%D,2P <'1H<F5A9%]T(%]?
M=&AR96%D,BD["BL)=F]I9"!P=&AR96%D7V5X:70H=F]I9"H 7U]R971V86PI
M.PHK"6EN="!P=&AR96%D7VIO:6XH<'1H<F5A9%]T(%]?=& L('9O:60J*B!?
M7W1H<F5A9%]R971U<FXI.PHK"6EN="!P=&AR96%D7V1E=&%C:"AP=&AR96%D
M7W0 7U]T:"D["BL)"BL):6YT('!T:')E861?871T<E]I;FET*'!T:')E861?
M871T<E]T*B!?7V%T='(I.PHK"6EN="!P=&AR96%D7V%T=')?9&5S=')O>2AP
M=&AR96%D7V%T=')?="H 7U]A='1R*3L**PEI;G0 <'1H<F5A9%]A='1R7W-E
M=&1E=&%C:'-T871E*'!T:')E861?871T<E]T("I?7V%T='(L(&EN="!?7V1E
M=&%C:'-T871E*3L**PEI;G0 <'1H<F5A9%]A='1R7V=E=&1E=&%C:'-T871E
M*'!T:')E861?871T<E]T*B!?7V%T='(L(&EN="H 7U]D971A8VAS=&%T92D[
M"BL):6YT('!T:')E861?871T<E]S971S8VAE9'!A<F%M*'!T:')E861?871T
M<E]T*B!?7V%T='(L('-C:&5D7W!A<F%M*B!?7W!A<F%M*3L**PEI;G0 <'1H
M<F5A9%]A='1R7V=E='-C:&5D<&%R86TH<'1H<F5A9%]A='1R7W0J(%]?871T
M<BP <V-H961?<&%R86TJ(%]?<&%R86TI.PHK"6EN="!P=&AR96%D7V%T=')?
M<V5T<V-H961P;VQI8WDH<'1H<F5A9%]A='1R7W0J(%]?871T<BP :6YT(%]?
M<&]L:6-Y*3L**PEI;G0 <'1H<F5A9%]A='1R7V=E='-C:&5D<&]L:6-Y*'!T
M:')E861?871T<E]T*B!?7V%T='(L(&EN="H 7U]P;VQI8WDI.PHK"6EN="!P
M=&AR96%D7V%T=')?<V5T:6YH97)I='-C:&5D*'!T:')E861?871T<E]T*B!?
M7V%T='(L(&EN="!?7VEN:&5R:70I.PHK"6EN="!P=&AR96%D7V%T=')?9V5T
M:6YH97)I='-C:&5D*'!T:')E861?871T<E]T*B!?7V%T='(L(&EN="H 7U]I
M;FAE<FET*3L**PEI;G0 <'1H<F5A9%]A='1R7W-E='-C;W!E*'!T:')E861?
M871T<E]T*B!?7V%T='(L(&EN="!?7W-C;W!E*3L**PEI;G0 <'1H<F5A9%]A
M='1R7V=E='-C;W!E*'!T:')E861?871T<E]T*B!?7V%T='(L(&EN="H 7U]S
M8V]P92D["BL):6YT('!T:')E861?871T<E]S971G=6%R9'-I>F4H<'1H<F5A
M9%]A='1R7W0J(%]?871T<BP <VEZ95]T(%]?9W5A<F1S:7IE*3L**PEI;G0 
M<'1H<F5A9%]A='1R7V=E=&=U87)D<VEZ92AP=&AR96%D7V%T=')?="H 7U]A
M='1R+"!S:7IE7W0J(%]?9W5A<F1S:7IE*3L**PEI;G0 <'1H<F5A9%]A='1R
M7W-E='-T86-K861D<BAP=&AR96%D7V%T=')?="H 7U]A='1R+"!V;VED*B!?
M7W-T86-K861D<BD["BL):6YT('!T:')E861?871T<E]G971S=&%C:V%D9'(H
M<'1H<F5A9%]A='1R7W0J(%]?871T<BP =F]I9"HJ(%]?<W1A8VMA9&1R*3L*
M*PEI;G0 <'1H<F5A9%]A='1R7W-E='-T86-K*'!T:')E861?871T<E]T*B!?
M7V%T='(L('9O:60J(%]?<W1A8VMA9&1R+"!S:7IE7W0 7U]S=&%C:W-I>F4I
M.PHK"6EN="!P=&AR96%D7V%T=')?9V5T<W1A8VLH<'1H<F5A9%]A='1R7W0J
M(%]?871T<BP =F]I9"HJ(%]?<W1A8VMA9&1R+"!S:7IE7W0J(%]?<W1A8VMS
M:7IE*3L**PEI;G0 <'1H<F5A9%]A='1R7W-E='-T86-K<VEZ92AP=&AR96%D
M7V%T=')?="H 7U]A='1R+"!S:7IE7W0 7U]S=&%C:W-I>F4I.PHK"6EN="!P
M=&AR96%D7V%T=')?9V5T<W1A8VMS:7IE*'!T:')E861?871T<E]T*B!?7V%T
M='(L('-I>F5?="H 7U]S=&%C:W-I>F4I.PHK"6EN="!P=&AR96%D7V=E=&%T
M=')?;G`H<'1H<F5A9%]T(%]?=& L('!T:')E861?871T<E]T*B!?7V%T='(I
M.PHK"0HK"6EN="!P=&AR96%D7W-E='-C:&5D<&%R86TH<'1H<F5A9%]T(%]?
M=&%R9V5T7W1H<F5A9"P :6YT(%]?<&]L:6-Y+"!S8VAE9%]P87)A;2H 7U]P
M87)A;2D["BL):6YT('!T:')E861?9V5T<V-H961P87)A;2AP=&AR96%D7W0 
M7U]T87)G971?=&AR96%D+"!I;G0J(%]?<&]L:6-Y+"!S8VAE9%]P87)A;2H 
M7U]P87)A;2D["BL):6YT('!T:')E861?9V5T8V]N8W5R<F5N8WDH*3L**PEI
M;G0 <'1H<F5A9%]S971C;VYC=7)R96YC>2AI;G0 7U]L979E;"D["BL):6YT
M('!T:')E861?>6EE;&0H*3L**PD**PEI;G0 <'1H<F5A9%]M=71E>%]I;FET
M*'!T:')E861?;75T97A?="H 7U]M=71E>"P <'1H<F5A9%]M=71E>&%T=')?
M="H 7U]M=71E>%]A='1R*3L**PEI;G0 <'1H<F5A9%]M=71E>%]D97-T<F]Y
M*'!T:')E861?;75T97A?="`J7U]M=71E>"D["BL):6YT('!T:')E861?;75T
M97A?=')Y;&]C:RAP=&AR96%D7VUU=&5X7W0 *E]?;75T97 I.PHK"6EN="!P
M=&AR96%D7VUU=&5X7VQO8VLH<'1H<F5A9%]M=71E>%]T("I?7VUU=&5X*3L*
M*PEI;G0 <'1H<F5A9%]M=71E>%]T:6UE9&QO8VLH<'1H<F5A9%]M=71E>%]T
M*B!?7VUU=&5X+"!T:6UE<W!E8RH 7U]A8G-T:6UE*3L**PEI;G0 <'1H<F5A
M9%]M=71E>%]U;FQO8VLH<'1H<F5A9%]M=71E>%]T*B!?7VUU=&5X*3L**PD*
M*PEI;G0 <'1H<F5A9%]M=71E>&%T=')?:6YI="AP=&AR96%D7VUU=&5X871T
M<E]T*B!?7V%T='(I.PHK"6EN="!P=&AR96%D7VUU=&5X871T<E]D97-T<F]Y
M*'!T:')E861?;75T97AA='1R7W0J(%]?871T<BD["BL):6YT('!T:')E861?
M;75T97AA='1R7V=E='!S:&%R960H<'1H<F5A9%]M=71E>&%T=')?="H 7U]A
M='1R+"!I;G0J(%]?<'-H87)E9"D["BL):6YT('!T:')E861?;75T97AA='1R
M7W-E='!S:&%R960H<'1H<F5A9%]M=71E>&%T=')?="H 7U]A='1R+"!I;G0 
M7U]P<VAA<F5D*3L**PEI;G0 <'1H<F5A9%]M=71E>&%T=')?<V5T='EP92AP
M=&AR96%D7VUU=&5X871T<E]T*B!?7V%T='(L(&EN="!?7VMI;F0I.PHK"0HK
M"6EN="!P=&AR96%D7V-O;F1?:6YI="AP=&AR96%D7V-O;F1?="H 8V]N9"P 
M<'1H<F5A9%]C;VYD871T<E]T*B!C;VYD7V%T='(I.PHK"6EN="!P=&AR96%D
M7V-O;F1?9&5S=')O>2AP=&AR96%D7V-O;F1?="H 8V]N9"D["BL):6YT('!T
M:')E861?8V]N9%]S:6=N86PH<'1H<F5A9%]C;VYD7W0J(&-O;F0I.PHK"6EN
M="!P=&AR96%D7V-O;F1?8G)O861C87-T*'!T:')E861?8V]N9%]T*B!C;VYD
M*3L**PEI;G0 <'1H<F5A9%]C;VYD7W=A:70 *'!T:')E861?8V]N9%]T*B!?
M7V-O;F0L('!T:')E861?;75T97A?="H 7U]M=71E>"D["BL):6YT('!T:')E
M861?8V]N9%]T:6UE9'=A:70H<'1H<F5A9%]C;VYD7W0J(%]?8V]N9"P <'1H
M<F5A9%]M=71E>%]T*B!?7VUU=&5X+"!T:6UE<W!E8R`J(%]?86)S=&EM92D[
M"BL)"BL):6YT('!T:')E861?8V]N9&%T=')?:6YI="AP=&AR96%D7V-O;F1A
M='1R7W0J(%]?871T<BD["BL):6YT('!T:')E861?8V]N9&%T=')?9&5S=')O
M>2AP=&AR96%D7V-O;F1A='1R7W0J(%]?871T<BD["BL):6YT('!T:')E861?
M8V]N9&%T=')?9V5T<'-H87)E9"AP=&AR96%D7V-O;F1A='1R7W0J(%]?871T
M<BP :6YT*B!?7W!S:&%R960I.PHK"6EN="!P=&AR96%D7V-O;F1A='1R7W-E
M='!S:&%R960H<'1H<F5A9%]C;VYD871T<E]T*B!?7V%T='(L(&EN="!?7W!S
M:&%R960I.PHK"0HK"6EN="!P=&AR96%D7W)W;&]C:U]I;FET*'!T:')E861?
M<G=L;V-K7W0J(%]?<G=L;V-K+"!P=&AR96%D7W)W;&]C:V%T=')?="H 7U]A
M='1R*3L**PEI;G0 <'1H<F5A9%]R=VQO8VM?9&5S=')O>2AP=&AR96%D7W)W
M;&]C:U]T*B!?7W)W;&]C:RD["BL):6YT('!T:')E861?<G=L;V-K7W)D;&]C
M:RAP=&AR96%D7W)W;&]C:U]T*B!?7W)W;&]C:RD["BL):6YT('!T:')E861?
M<G=L;V-K7W1R>7)D;&]C:RAP=&AR96%D7W)W;&]C:U]T*B!?7W)W;&]C:RD[
M"BL):6YT('!T:')E861?<G=L;V-K7W1I;65D<F1L;V-K*'!T:')E861?<G=L
M;V-K7W0J(%]?<G=L;V-K+"!T:6UE<W!E8RH 7U]A8G-T:6UE*3L**PEI;G0 
M<'1H<F5A9%]R=VQO8VM?=W)L;V-K*'!T:')E861?<G=L;V-K7W0 *E]?<G=L
M;V-K*3L**PEI;G0 <'1H<F5A9%]R=VQO8VM?=')Y=W)L;V-K*'!T:')E861?
M<G=L;V-K7W0 *E]?<G=L;V-K*3L**PEI;G0 <'1H<F5A9%]R=VQO8VM?=&EM
M961W<FQO8VLH<'1H<F5A9%]R=VQO8VM?="H 7U]R=VQO8VLL('1I;65S<&5C
M*B!?7V%B<W1I;64I.PHK"6EN="!P=&AR96%D7W)W;&]C:U]U;FQO8VLH<'1H
M<F5A9%]R=VQO8VM?="H 7U]R=VQO8VLI.PHK"0HK"6EN="!P=&AR96%D7W)W
M;&]C:V%T=')?:6YI="AP=&AR96%D7W)W;&]C:V%T=')?="H 7U]A='1R*3L*
M*PEI;G0 <'1H<F5A9%]R=VQO8VMA='1R7V1E<W1R;WDH<'1H<F5A9%]R=VQO
M8VMA='1R7W0J(%]?871T<BD["BL):6YT('!T:')E861?<G=L;V-K871T<E]G
M971P<VAA<F5D*'!T:')E861?<G=L;V-K871T<E]T*B!?7V%T='(L(&EN="H 
M7U]P<VAA<F5D*3L**PEI;G0 <'1H<F5A9%]R=VQO8VMA='1R7W-E='!S:&%R
M960H<'1H<F5A9%]R=VQO8VMA='1R7W0J(%]?871T<BP :6YT(%]?<'-H87)E
M9"D["BL):6YT('!T:')E861?<G=L;V-K871T<E]G971K:6YD7VYP*'!T:')E
M861?<G=L;V-K871T<E]T*B!?7V%T='(L(&EN="H 7U]P<F5F*3L**PEI;G0 
M<'1H<F5A9%]R=VQO8VMA='1R7W-E=&MI;F1?;G`H<'1H<F5A9%]R=VQO8VMA
M='1R7W0J(%]?871T<BP :6YT(%]?<')E9BD["BL)"BL):6YT('!T:')E861?
M<W!I;E]I;FET*'!T:')E861?<W!I;FQO8VM?="H 7U]L;V-K+"!I;G0 7U]P
M<VAA<F5D*3L**PEI;G0 <'1H<F5A9%]S<&EN7V1E<W1R;WDH<'1H<F5A9%]S
M<&EN;&]C:U]T*B!?7VQO8VLI.PHK"6EN="!P=&AR96%D7W-P:6Y?;&]C:RAP
M=&AR96%D7W-P:6YL;V-K7W0J(%]?;&]C:RD["BL):6YT('!T:')E861?<W!I
M;E]T<GEL;V-K*'!T:')E861?<W!I;FQO8VM?="H 7U]L;V-K*3L**PEI;G0 
M<'1H<F5A9%]S<&EN7W5N;&]C:RAP=&AR96%D7W-P:6YL;V-K7W0J(%]?;&]C
M:RD["BL)"BL):6YT('!T:')E861?8F%R<FEE<E]I;FET*'!T:')E861?8F%R
M<FEE<E]T*B!?7V)A<G)I97(L('!T:')E861?8F%R<FEE<F%T=')?="H 7U]A
M='1R+"!U:6YT(%]?8V]U;G0I.PHK"6EN="!P=&AR96%D7V)A<G)I97)?9&5S
M=')O>2AP=&AR96%D7V)A<G)I97)?="H 7U]B87)R:65R*3L**PD**PEI;G0 
M<'1H<F5A9%]B87)R:65R871T<E]I;FET*'!T:')E861?8F%R<FEE<F%T=')?
M="H 7U]A='1R*3L**PEI;G0 <'1H<F5A9%]B87)R:65R871T<E]D97-T<F]Y
M*'!T:')E861?8F%R<FEE<F%T=')?="H 7U]A='1R*3L**PEI;G0 <'1H<F5A
M9%]B87)R:65R871T<E]G971P<VAA<F5D*'!T:')E861?8F%R<FEE<F%T=')?
M="H 7U]A='1R+"!I;G0J(%]?<'-H87)E9"D["BL):6YT('!T:')E861?8F%R
M<FEE<F%T=')?<V5T<'-H87)E9"AP=&AR96%D7V)A<G)I97)A='1R7W0J(%]?
M871T<BP :6YT(%]?<'-H87)E9"D["BL):6YT('!T:')E861?8F%R<FEE<E]W
M86ET*'!T:')E861?8F%R<FEE<E]T*B!?7V)A<G)I97(I.PHK"0HK"6EN="!P
M=&AR96%D7VME>5]C<F5A=&4H<'1H<F5A9%]K97E?="H 7U]K97DL('9O:60 
M9G5N8W1I;VXH=F]I9"HI(%]?9&5S=')?9G5N8W1I;VXI.PHK"6EN="!P=&AR
M96%D7VME>5]D96QE=&4H<'1H<F5A9%]K97E?="!?7VME>2D["BL):6YT('!T
M:')E861?<V5T<W!E8VEF:6,H<'1H<F5A9%]K97E?="!?7VME>2P =F]I9"H 
M7U]P;VEN=&5R*3L**PEV;VED*B!P=&AR96%D7V=E='-P96-I9FEC*'!T:')E
M861?:V5Y7W0 7U]K97DI.PHK"0HK"6EN="!P=&AR96%D7V]N8V4H<'1H<F5A
M9%]O;F-E7W0J(%]?;VYC95]C;VYT<F]L+"!V;VED(&9U;F-T:6]N*"D 7U]I
M;FET7W)O=71I;F4I.PHK"0HK"6EN="!P=&AR96%D7W-E=&-A;F-E;'-T871E
M*&EN="!?7W-T871E+"!I;G0J(%]?;VQD<W1A=&4I.PHK"6EN="!P=&AR96%D
M7W-E=&-A;F-E;'1Y<&4H:6YT(%]?='EP92P :6YT*B!?7V]L9'1Y<&4I.PHK
M"6EN="!P=&AR96%D7V-A;F-E;"AP=&AR96%D7W0 7U]C86YC96QT:')E860I
M.PHK"79O:60 <'1H<F5A9%]T97-T8V%N8V5L*"D["BL)"BL)=F]I9"!?<'1H
M<F5A9%]C;&5A;G5P7W!U<V H<'1H<F5A9%]C;&5A;G5P7V)U9F9E<BH 7U]B
M=69F97(L('9O:60 9G5N8W1I;VXH=F]I9"HI(%]?<F]U=&EN92P =F]I9"H 
M7U]A<F<I.PHK"79O:60 7W!T:')E861?8VQE86YU<%]P;W`H<'1H<F5A9%]C
M;&5A;G5P7V)U9F9E<BH 7U]B=69F97(L(&EN="!?7V5X96-U=&4I.PHK"79O
M:60 7W!T:')E861?8VQE86YU<%]P=7-H7V1E9F5R*'!T:')E861?8VQE86YU
M<%]B=69F97(J(%]?8G5F9F5R+"!V;VED(&9U;F-T:6]N*'9O:60J*2!?7W)O
M=71I;F4L('9O:60J(%]?87)G*3L**PEV;VED(%]P=&AR96%D7V-L96%N=7!?
M<&]P7W)E<W1O<F4H<'1H<F5A9%]C;&5A;G5P7V)U9F9E<BH 7U]B=69F97(L
M(&EN="!?7V5X96-U=&4I.PHK"0HK"6EN="!P=&AR96%D7V=E=&-P=6-L;V-K
M:60H<'1H<F5A9%]T(%]?=&AR96%D7VED+"!C;&]C:VED7W0J(%]?8VQO8VM?
M:60I.PHK"6EN="!P=&AR96%D7V%T9F]R:RAV;VED(&9U;F-T:6]N*"D 7U]P
M<F5P87)E+"!V;VED(&9U;F-T:6]N*"D 7U]P87)E;G0L('9O:60 9G5N8W1I
M;VXH*2!?7V-H:6QD*3L**PEV;VED('!T:')E861?:VEL;%]O=&AE<E]T:')E
M861S7VYP*"D["BL)"BL)"BL)+R\ 1G)O;2!B:71S+W-I9W-E="YH"BL)8V]N
M<W0 =6EN="!324=3151?3E=/4D13(#T ,3`R-"`O(" X("H =6EN="YS:7IE
M;V8I.PHK"0HK"7-T<G5C="!S:6=S971?=`HK"7L**PD)=6EN="!V86Q;4TE'
M4T547TY73U)$4UT["BL)?0HK"0HK"0HK"2\O($9R;VT 8FET<R]S:6=T:')E
M860N:`HK"6EN="!P=&AR96%D7W-I9VUA<VLH:6YT(%]?:&]W+"!S:6=S971?
M="H 7U]N97=M87-K+"!S:6=S971?="H 7U]O;&1M87-K*3L**PEI;G0 <'1H
M<F5A9%]K:6QL*'!T:')E861?="!?7W1H<F5A9&ED+"!I;G0 7U]S:6=N;RD[
M"BM]"F1I9F8 +4YR=2!G8V,M,RXS+C8M;W)I9R]G8V,O9"]P:&]B;W,O<W1D
M+V,O=6YI>"]S96UA<&AO<F4N9"!G8V,M,RXS+C8O9V-C+V0O<&AO8F]S+W-T
M9"]C+W5N:7 O<V5M87!H;W)E+F0*+2TM(&=C8RTS+C,N-BUO<FEG+V=C8R]D


M8F]S+W-T9"]C+W5N:7 O<V5M87!H;W)E+F0),C`P-2TQ,BTP-"`R,3HR-CHQ

M($0 9G)O;G0M96YD(&9O<B!'0T,**R` ($-O<'ER:6=H="`H0RD ,C`P-"!$
M879I9"!&<FEE9&UA; HK("` "BL ("!4:&ES('!R;V=R86T :7, 9G)E92!S
M;V9T=V%R93L >6]U(&-A;B!R961I<W1R:6)U=&4 :70 86YD+V]R(&UO9&EF
M>0HK("` :70 =6YD97( =&AE('1E<FUS(&]F('1H92!'3E4 1V5N97)A;"!0
M=6)L:6, 3&EC96YS92!A<R!P=6)L:7-H960 8GD**R` ('1H92!&<F5E(%-O

M8V5N<V4L(&]R"BL ("`H870 >6]U<B!O<'1I;VXI(&%N>2!L871E<B!V97)S
M:6]N+ HK(`HK("` 5&AI<R!P<F]G<F%M(&ES(&1I<W1R:6)U=&5D(&EN('1H
M92!H;W!E('1H870 :70 =VEL;"!B92!U<V5F=6PL"BL ("!B=70 5TE42$]5
M5"!!3ED 5T%24D%.5%D[('=I=&AO=70 979E;B!T:&4 :6UP;&EE9"!W87)R
M86YT>2!O9 HK("` 34520TA!3E1!0DE,2519(&]R($9)5$Y%4U, 1D]2($$ 

M4'5B;&EC($QI8V5N<V4 9F]R(&UO<F4 9&5T86EL<RX**R`**R` (%EO=2!S
M:&]U;&0 :&%V92!R96-E:79E9"!A(&-O<'D ;V8 =&AE($=.52!'96YE<F%L
M(%!U8FQI8R!,:6-E;G-E"BL ("!A;&]N9R!W:71H('1H:7, <')O9W)A;3L 
M:68 ;F]T+"!W<FET92!T;R!T:&4 1G)E92!3;V9T=V%R90HK("` 1F]U;F1A
M=&EO;BP 26YC+BP -3D 5&5M<&QE(%!L86-E+"!3=6ET92`S,S`L($)O<W1O

M:7, 82!$+6EF:6-A=&EO;B!O9B!T:&4 4$]325  <V5M87!H;W)E+F  :&5A
M9&5R(&9I;&4N"BL ("`**R` ($%U=&AO<G,Z(%1O;6UI92!'86YN97)T"BL 

M,6(**R` ($)U9W,Z(%-O;64 <W1U9F8 8V]L;&ED97, =VET:"!G8V,N8V]N
M9FEG=6YI>"P :&5N8V4 =&AE>2!A<F4 8V]M;65N=&5D(&]U="X**R`J+PHK
M"BL**VUO9'5L92!S=&0N8RYU;FEX+G-E;6%P:&]R93L**PHK<')I=F%T92!I
M;7!O<G0 <W1D+F,N=6YI>"YP=&AR96%D<SL**W!R:79A=&4 :6UP;W)T(&=C
M8RYC;VYF:6=U;FEX.PHK"BL**R\J"BMS=')U8W0 <V5M7W0**WL**PEP=&AR
M96%D7V9A<W1L;V-K('-E;5]L;V-K.PHK"6EN="!S96U?=F%L=64["BL)<'1H
M<F5A9%]D97-C<B!S96U?=V%I=&EN9SL**WT**RHO"BL**PHK8V]N<W0 <V5M
M7W0J(%-%35]&04E,140 /2!N=6QL.PHK8V]N<W0 :6YT(%-%35]604Q515]-
M05  /2!I;G0N;6%X.PHK"BL**V5X=&5R;B`H0RD**WL**R\O"6EN="!S96U?
M:6YI="AS96U?="H 7U]S96TL(&EN="!?7W!S:&%R960L('5I;G0 7U]V86QU
M92D["BLO+PEI;G0 <V5M7V1E<W1R;WDH<V5M7W0J(%]?<V5M*3L**PES96U?
M="H <V5M7V]P96XH8VAA<BH 7U]N86UE+"!I;G0 7U]O9FQA9RP +BXN*3L*
M*PEI;G0 <V5M7V-L;W-E*'-E;5]T*B!?7W-E;2D["BL):6YT('-E;5]U;FQO
M;FLH8VAA<B`J7U]N86UE*3L**R\O"6EN="!S96U?=V%I="AS96U?="H 7U]S
M96TI.PHK"6EN="!S96U?=&EM961W86ET*'-E;5]T*B!?7W-E;2P =&EM97-P
M96,J(%]?86)S=&EM92D["BL):6YT('-E;5]T<GEW86ET*'-E;5]T*B!?7W-E
M;2D["BLO+PEI;G0 <V5M7W!O<W0H<V5M7W0J*3L**PEI;G0 <V5M7V=E='9A
M;'5E*'-E;5]T*B!?7W-E;2P ;W5T(&EN="H 7U]S=F%L*3L**WT*9&EF9B`M
M3G)U(&=C8RTS+C,N-BUO<FEG+V=C8R]D+W!H;V)O<R]S=&0O8V]N9&ET:6]N
M+F0 9V-C+3,N,RXV+V=C8R]D+W!H;V)O<R]S=&0O8V]N9&ET:6]N+F0*+2TM
M(&=C8RTS+C,N-BUO<FEG+V=C8R]D+W!H;V)O<R]S=&0O8V]N9&ET:6]N+F0)
M,3DW,"TP,2TP,2`P,3HP,#HP




M<R!F<F5E('-O9G1W87)E.R!Y;W4 8V%N(')E9&ES=')I8G5T92!I="!A;F0O
M;W( ;6]D:69Y"BL ("!I="!U;F1E<B!T:&4 =&5R;7, ;V8 =&AE($=.52!'
M96YE<F%L(%!U8FQI8R!,:6-E;G-E(&%S('!U8FQI<VAE9"!B>0HK("` =&AE
M($9R964 4V]F='=A<F4 1F]U;F1A=&EO;CL 96ET:&5R('9E<G-I;VX ,B!O
M9B!T:&4 3&EC96YS92P ;W(**R` ("AA="!Y;W5R(&]P=&EO;BD 86YY(&QA
M=&5R('9E<G-I;VXN"BL "BL ("!4:&ES('!R;V=R86T :7, 9&ES=')I8G5T
M960 :6X =&AE(&AO<&4 =&AA="!I="!W:6QL(&)E('5S969U;"P**R` (&)U
M="!7251(3U54($%.62!705)204Y463L =VET:&]U="!E=F5N('1H92!I;7!L

M4R!&3U( 02!005)424-53$%2(%!54E!/4T4N("!3964 =&AE"BL ("!'3E4 
M1V5N97)A;"!0=6)L:6, 3&EC96YS92!F;W( ;6]R92!D971A:6QS+ HK(`HK
M("` 66]U('-H;W5L9"!H879E(')E8V5I=F5D(&$ 8V]P>2!O9B!T:&4 1TY5
M($=E;F5R86P 4'5B;&EC($QI8V5N<V4**R` (&%L;VYG('=I=&  =&AI<R!P
M<F]G<F%M.R!I9B!N;W0L('=R:71E('1O('1H92!&<F5E(%-O9G1W87)E"BL 



M;VX 5F%R:6%B;&5S('1O(&)E('5S960 =VET:`HK("` =&AE('-Y;F-H<F]N
M:7IE9"!B;&]C:W,N"BL ("`**R` ($%U=&AO<G,Z(%1O;6UI92!'86YN97)T

M;F1I=&EO;CL**PHK"BLO*BH**R`J(%1I;64 =6YI="!F;W( =7-E(&EN($-O
M;F1I=&EO;BYW86ET*"DN"BLJ*B\**V5N=6T 5&EM955N:70**WL**PE.04Y/

M"BL)<')I=F%T92!I;7!O<G0 <W1D+G!E<F8["BL)"BL)"BL)+R\ 5&AI<R!V
M97)S:6]N(&ES('5S960 9F]R(&1E8G5G9VEN9R!U;F1E<B!,:6YU>`HK"79E
M<G-I;VX *$1E8G5G0V]N9&ET:6]N5VET:%!T:')E861S*0HK"7L**PD)<')I
M=F%T92!I;7!O<G0 <W1D+F,N=6YI>"YP=&AR96%D<SL**PD)<')I=F%T92!I
M;7!O<G0 <W1D+F,N=6YI>"YS96UA<&AO<F4["BL)"7!R:79A=&4 :6UP;W)T
M('-T9"YC+G-T9&EO.PHK"0EP<FEV871E(&EM<&]R="!S=&0N=&AR96%D.PHK
M"0D**PD)"BL)"65X=&5R;B`H0RD**PD)>PHK"0D)<'1H<F5A9%]M=71E>%]T
M*B!?9%]G971?;V)J96-T7VUO;FET;W(H3V)J96-T(& I.PHK"0E]"BL)"0HK
M"0D**PD)86QI87, <V5M7W0J(%-E;6%P:&]R93L**PD)86QI87, <'1H<F5A
M9%]M=71E>%]T($-2251)0T%,7U-%0U1)3TX["BL)"0HK"0D**PD)8V]N<W0 
M=6EN="!)3D9)3DE412`]('5I;G0N;6%X.PHK"0D**PD)"BL)"5-E;6%P:&]R

M:6YT(&UA>"P =6EN="H ;BD**PD)>PHK"0D)4V5M87!H;W)E(', /2!N97< 

M"BL)"0ER971U<FX <SL**PD)?0HK"0D**PD)"BL)"79O:60 1&5L971E3V)J
M96-T*%-E;6%P:&]R92!S*0HK"0E["BL)"0ES96U?9&5S=')O>2AS*3L**PD)
M"0HK"0D)9&5L971E(',["BL)"7T**PD)"BL)"0HK"0EV;VED($5N=&5R0W)I
M=&EC86Q396-T:6]N*$-2251)0T%,7U-%0U1)3TX *G,I"BL)"7L**PD)"61E
M8G5G('!R:6YT9B B)7`Z($5N=&5R0W)I=&EC86Q396-T:6]N*"5P*5QN(BP 
M5&AR96%D+F=E=%1H:7,H*2P <RD["BL)"0EP=&AR96%D7VUU=&5X7VQO8VLH

M;VY<;B(L(%1H<F5A9"YG9714:&ES*"DL(',I.PHK"0E]"BL)"0HK"0D**PD)

M*0HK"0E["BL)"0ED96)U9R!P<FEN=&8H(B5P.B!,96%V94-R:71I8V%L4V5C
M=&EO;B E<"E<;B(L(%1H<F5A9"YG9714:&ES*"DL(',I.PHK"0D)<'1H<F5A
M9%]M=71E>%]U;FQO8VLH<RD["BL)"0ED96)U9R!P<FEN=&8H(B5P.B!^3&5A

M"0E]"BL)"0HK"0D**PD)=F]I9"!296QE87-E4V5M87!H;W)E*%-E;6%P:&]R
M92!S+"!U:6YT(&XL('5I;G0J(&]L9&XI"BL)"7L**PD)"61E8G5G('!R:6YT
M9B B)7`Z(%)E;&5A<V5396UA<&AO<F4H)7`L("5U*5QN(BP 5&AR96%D+F=E
M=%1H:7,H*2P <RP ;BD["BL)"0EW:&EL92`H;BTM*0HK"0D)"7-E;5]P;W-T
M*',I.PHK"0D)9&5B=6< <')I;G1F*"(E<#H ?E)E;&5A<V5396UA<&AO<F5<
M;B(L(%1H<F5A9"YG9714:&ES*"DL(',L(&XI.PHK"0E]"BL)"0HK"0D**PD)
M=F]I9"!786ET1F]R4VEN9VQE3V)J96-T*%-E;6%P:&]R92!S+"!U:6YT(&XI
M"BL)"7L**PD)"61E8G5G('!R:6YT9B B)7`Z(%=A:71&;W)3:6YG;&5/8FIE
M8W0H)7`L("5U*5QN(BP 5&AR96%D+F=E=%1H:7,H*2P <RP ;BD["BL)"0ES
M96U?=V%I="AS*3L**PD)"61E8G5G('!R:6YT9B B)7`Z('Y786ET1F]R4VEN
M9VQE3V)J96-T7&XB+"!4:')E860N9V5T5&AI<R I+"!S+"!N*3L**PD)?0HK
M"7T**PEE;'-E"BL)>PHK"0EE>'1E<FX *$,I"BL)"7L**PD)"4-2251)0T%,
M7U-%0U1)3TXJ(%]D7V=E=%]O8FIE8W1?;6]N:71O<BA/8FIE8W0 :"D["BL)
M"7T**PD)"BL)"0HK"0DO+R!*=7-T('1O(&UA:V4 =&AE(&-O9&4 8VQE87)E
M< HK"0EA;&EA<R!(04Y$3$4 4V5M87!H;W)E.PHK"7T**PD**PD**PEC;&%S

M86ET:6YG.PHK"0D)=6EN="!N=6U3:6=N86QE9#L**PD)"75I;G0 ;G5M0F%R
M<FEE<CL**PD)"5-E;6%P:&]R92!W86ET97(["BL)"0E396UA<&AO<F4 8F%R
M<FEE<CL**PD)"4]B:F5C="!?;6]N:71O<CL**PD)?0HK"0D**PD)"BL)"71H
M:7,H3V)J96-T(&UO;FET;W(I"BL)"7L**PD)"6YU;5=A:71I;F< /2!N=6U3
M:6=N86QE9"`](&YU;4)A<G)I97( /2`P.PHK"0D)=V%I=&5R(#T 0W)E871E

M<B`]($-R96%T95-E;6%P:&]R92AN=6QL+"`P+"!I;G0N;6%X+"!N=6QL*3L*
M*PD)"5]M;VYI=&]R(#T ;6]N:71O<CL**PD)?0HK"0D**PD)"BL)"7YT:&ES
M*"D**PD)>PHK"0D)1&5L971E3V)J96-T*&)A<G)I97(I.PHK"0D)1&5L971E
M3V)J96-T*'=A:71E<BD["BL)"7T**PD)"BL)"0HK"0EP<FEV871E(&)I="!B
M87)R:6-A9&4H=6EN="!T:6UE;W5T(#T 24Y&24Y)5$4I"BL)"7L**PD)"45N
M=&5R0W)I=&EC86Q396-T:6]N*%]D7V=E=%]O8FIE8W1?;6]N:71O<BA?;6]N
M:71O<BDI.PHK"0D)9&5B=6< <')I;G1F*"(E<#HE<"!B87)R:6-A9&4H;G5M
M4VEG;F%L960Z("5D+"!N=6U"87)R:65R.B`E9"E<;B(L(%1H<F5A9"YG9714
M:&ES*"DL('1H:7,L(&YU;5-I9VYA;&5D+"!N=6U"87)R:65R*3L**PD)"0HK
M"0D):68 *"$M+6YU;5-I9VYA;&5D*0HK"0D)>PHK"0D)"5)E;&5A<V5396UA
M<&AO<F4H8F%R<FEE<BP ;G5M0F%R<FEE<BP ;G5L;"D["BL)"0D);G5M0F%R

M*%]D7V=E=%]O8FIE8W1?;6]N:71O<BA?;6]N:71O<BDI.PHK"0D)"BL)"0ER
M971U<FX 5V%I=$9O<E-I;F=L94]B:F5C="AB87)R:65R+"!T:6UE;W5T*3L*
M*PD)?0HK"0D**PD)"BL)"7!R:79A=&4 =F]I9"!S:6=N86PH=6EN="!N*0HK
M"0E["BL)"0E%;G1E<D-R:71I8V%L4V5C=&EO;BA?9%]G971?;V)J96-T7VUO
M;FET;W(H7VUO;FET;W(I*3L**PD)"61E8G5G('!R:6YT9B B)7`Z)7` <VEG
M;F%L*&XZ("5U+"!N=6U"87)R:65R<SH )60L(&YU;5=A:71I;F<Z("5D*5QN
M(BP 5&AR96%D+F=E=%1H:7,H*2P =&AI<RP ;BP ;G5M0F%R<FEE<BP ;G5M
M5V%I=&EN9RD["BL)"0EI9B`H;G5M5V%I=&EN9R`\(&XI(&X /2!N=6U786ET
M:6YG.PHK"0D);G5M4VEG;F%L960 /2!N=6U"87)R:65R("L](&X["BL)"0E2
M96QE87-E4V5M87!H;W)E*'=A:71E<BP ;BP ;G5L;"D["BL)"0EN=6U786ET
M:6YG("T](&X["BL)"0ED96)U9R!P<FEN=&8H(B5P.B5P('YS:6=N86PH;G5M
M4VEG;F%L960Z("5D+"!N=6U"87)R:65R.B`E9"P ;G5M5V%I=&EN9SH )60I
M7&XB+"!4:')E860N9V5T5&AI<R I+"!T:&ES+"!N=6U3:6=N86QE9"P ;G5M
M0F%R<FEE<BP ;G5M5V%I=&EN9RD["BL)"0E,96%V94-R:71I8V%L4V5C=&EO
M;BA?9%]G971?;V)J96-T7VUO;FET;W(H7VUO;FET;W(I*3L**PD)?0HK"0D*
M*PD)=F]I9"!B<F]A9&-A<W0H*0HK"0E["BL)"0ES:6=N86PH=6EN="YM87 I
M.PHK"0E]"BL)"0HK"0D**PD)3V)J96-T(&UO;FET;W(H*0HK"0E["BL)"0ER
M971U<FX 7VUO;FET;W(["BL)"7T**PD)"BL)"0HK"0EV;VED('-I9VYA;" I
M"BL)"7L**PD)"7-I9VYA;" Q*3L**PD)?0HK"0D**PD)"BL)"6)I="!W86ET
M*&EN="!T:6UE;W5T(#T +3$L(%1I;655;FET('5N:70 /2!4:6UE56YI="Y3
M14-/3D0I"BL)"7L**PD)"5!E<F9O<FUA;F-E0V]U;G1E<B!C;W5N=&5R(#T 
M;F5W(%!E<F9O<FUA;F-E0V]U;G1E<B I.PHK"0D)"BL)"0EC;W5N=&5R+G-T
M87)T*"D["BL)"0D**PD)"6EF("AT:6UE;W5T(#X
M<W=I=&-H("AU;FET*0HK"0D)"7L**PD)"0EC87-E(%1I;655;FET+DY!3D]3


M<G0H=&EM96]U="`\('1I;65O=70N;6%X("\ ,3`P,"D["BL)"0D)"71I;65O
M=70 *CT ,3`P,#L**PD)"0D)8G)E86L["BL)"0D)?0HK"0D)?0HK"0D)"BL)
M"0D**PD)"61E8G5G('!R:6YT9B B)7`Z)7` =V%I="AN=6U3:6=N86QE9#H 
M)60L(&YU;4)A<G)I97(Z("5D+"!N=6U786ET:6YG.B`E9"E<;B(L(%1H<F5A
M9"YG9714:&ES*"DL('1H:7,L(&YU;5-I9VYA;&5D+"!N=6U"87)R:65R+"!N
M=6U786ET:6YG*3L**PD)"2LK;G5M5V%I=&EN9SL**PD)"4QE879E0W)I=&EC
M86Q396-T:6]N*%]D7V=E=%]O8FIE8W1?;6]N:71O<BA?;6]N:71O<BDI.PHK
M"0D)8V]U;G1E<BYS=&]P*"D["BL)"0EI9B`H=&EM96]U="`^/2`P*2!T:6UE
M;W5T("T](&-O=6YT97(N;6EL;&ES96-O;F1S*"D["BL)"0EI9B`H5V%I=$9O
M<E-I;F=L94]B:F5C="AW86ET97(L('1I;65O=70I("$](%=!251?3T)*14-4
M7S`I"BL)"0E["BL)"0D)+R\ 665S+"!T:&ES(&ES(&%N(&%D9&ET:6]N86P 
M=6YT:6UE9"UW86ET:6YG+"!B=70 =V4 ;75S="!D;R!I=`HK"0D)"2\O('1O
M(&5N<W5R92!W92!D;VXG="!B<F5A:R!T:&4 ;6]N:71O<BX**PD)"0E%;G1E
M<D-R:71I8V%L4V5C=&EO;BA?9%]G971?;V)J96-T7VUO;FET;W(H7VUO;FET
M;W(I*3L**PD)"0ER971U<FX 9F%L<V4["BL)"0E]"BL)"0D**PD)"6-O=6YT
M97(N<W1O<" I.PHK"0D):68 *'1I;65O=70 /CT ,"D =&EM96]U="`M/2!C
M;W5N=&5R+FUI;&QI<V5C;VYD<R I.PHK"0D)"BL)"0EB:70 <F5T(#T 8F%R
M<FEC861E*'1I;65O=70I.PHK"0D)"BL)"0E%;G1E<D-R:71I8V%L4V5C=&EO
M;BA?9%]G971?;V)J96-T7VUO;FET;W(H7VUO;FET;W(I*3L**PD)"61E8G5G
M('!R:6YT9B B)7`Z)7` ?G=A:70H;G5M4VEG;F%L960Z("5D+"!N=6U"87)R
M:65R.B`E9"P ;G5M5V%I=&EN9SH )60I7&XB+"!4:')E860N9V5T5&AI<R I
M+"!T:&ES+"!N=6U3:6=N86QE9"P ;G5M0F%R<FEE<BP ;G5M5V%I=&EN9RD[
M"BL)"0D**PD)"7)E='5R;B!R970["BL)"7T**PE]"BM]"BME;'-E('9E<G-I
M;VX *&QI;G5X*0HK>PHK"79E<G-I;VX /2!4:')E861I;F=0=&AR96%D<SL*
M*WT**PHK"BMV97)S:6]N("A4:')E861I;F=0=&AR96%D<RD**WL**PEP<FEV
M871E(&EM<&]R="!S=&0N8RYU;FEX+G!T:')E861S.PHK"0HK"0HK"65X=&5R
M;B`H0RD**PE["BL)"7!T:')E861?;75T97A?="H 7V1?9V5T7V]B:F5C=%]M
M;VYI=&]R*$]B:F5C="!H*3L**PE]"BL)"BL)"BL)+RHJ"BL)("H 02`D*$D 
M0V]N9&ET:6]N('9A<FEA8FQE*2!I<R!A(&1A=&$ <W1R=6-T=7)E('1I9VAT
M;'D 87-S;V-I871E9"!W:71H('1H90HK"2`J(&-O;F-E<'0 ;V8 82`D*$( 
M;6]N:71O<BD *'-Y;F-H<F]N:7IE9"!B;&]C:W,I+B!)="!A;&QO=W, >6]U
M('1O('-E;F0**PD *B!E=F5N=', =&\ ;W1H97( =&AR96%D<RX**PD * HK
M"2`J(%1H92!N;W)M86P =7-E(&]F(&$ 0V]N9&ET:6]N('9A<FEA8FQE(&ES
M('1O(&EN8VQU9&4 :70 :6YS:61E(&$**PD *B!T:6=H="!W:&EL92UL;V]P
M+"!I;G-I9&4 <WEN8VAR;VYI>F5D(&)L;V-K+ HK"2`J("TM+2TM+2TM+2TM
M+2TM+2T**PD *B` ('-Y;F-H<F]N:7IE9"`H<V]M94]B:F5C="D**PD *B` 
M('L**PD *B` (`EW:&EL92`H(7-O;65%>'!R97-S:6]N5&]786ET1F]R*0HK
M"2`J("` "0EC;VYD5F%R+G=A:70H*3L**PD *B` ('T**PD *B`M+2TM+2TM
M+2TM+2TM+2TM"BL)("H 5&AE(&]T:&5R(&5N9"!S:6=N86QS(&$ <W1A=&4 
M8VAA;F=E("AP;W-S:6)L>2P 8G5T(&YO="!N96-C97-S87)I;'DL"BL)("H 
M;6%K:6YG("0H22!S;VUE17AP<F5S<VEO;E1O5V%I=$9O<BD =')U92X**PD 
M*B`M+2TM+2TM+2TM+2TM+2TM"BL)("H ("!C;VYD5F%R+G-I9VYA;" I.PHK
M"2`J("` 8V]N9%9A<BYB<F]A9&-A<W0H*3L**PD *B`M+2TM+2TM+2TM+2TM
M+2TM"BL)("H 5&AE(&9I<G-T('9A<FEA;G0 =VEL;"!O;FQY('=A:V4 =7` 
M;VYE('1H<F5A9"P =VAI;&4 =&AE('-E8V]N9"!W:6QL"BL)("H =V%K92!U
M<"!A;&P =&AR96%D<R!C=7)R96YT;'D =V%I=&EN9RX 3F]T('1H870 82!T
M:')E860 =&AA="!I<PHK"2`J(&YO="!C=7)R96YT;'D 97AE8W5T:6YG(&$ 
M=V%I=" I(&-A;&P =VEL;"!N979E<B!B92!A=V%K96XL(&DN92X**PD *B!C
M;VYD:71I;VX =F%R:6%B;&5S(&1O(&YO="!H879E(")M96UO<GDB+ HK"2`J
M"BL)("H 1F]L;&]W:6YG(&ES(&$ <VEM<&QE('-K96QE=&]N(&EM<&QE;65N
M=&%T:6]N(&]F('1H92!S=&%N9&%R9"!S:6YG;&4**PD *B!C;VYS=6UE<B]S
M:6YG;&4 <')O9'5C97( 86QG;W)I=&AM+ HK"2`J("TM+2TM+2TM+2TM+2TM
M+2T**PD *B` ('5I;G0 <75E=65,96YG=&  /2`P.PHK"2`J("` 3V)J96-T


M96UP='D /2!N97< 0V]N9&ET:6]N*&UO;FET;W(I.PHK"2`J"BL)("H**PD 
M*B` (&EN="!P<F]D=6-E<B I"BL)("H ("!["BL)("H ("`):6YT(&1A=&$ 
M/2`Q.PHK"2`J("` "0HK"2`J("` "7-Y;F-H<F]N:7IE9"`H;6]N:71O<BD*
M*PD *B` (`E["BL)("H ("`)"69O<B`H.SLI"BL)("H ("`)"7L**PD *B` 
M(`D)"7=H:6QE(" J<75E=65,96YG=&  /B`P*3L**PD *B` (`D)"0EE;7!T
M>2YW86ET*"D["BL)("H**PD *B` (`D)"2LK<75E=65,96YG=& ["BL)("H 
M("`)"0EF=6QL+F)R;V%D8V%S=" I.PHK"2`J("` "0E]"BL)("H ("`)?0HK
M"2`J("` ?0HK"2`J("` "BL)("H ("`**PD *B` (&EN="!C;VYS=6UE<B I
M"BL)("H ("!["BL)("H ("`):6YT(&1A=&$["BL)("H ("`)"BL)("H ("`)
M<WEN8VAR;VYI>F5D("AM;VYI=&]R*0HK"2`J("` "7L**PD *B` (`D)9F]R
M(" [.RD**PD *B` (`D)>PHK"2`J("` "0D)=VAI;&4 *"IQ=65U94QE;F=T
M:"`]/2`P*3L**PD *B` (`D)"0EF=6QL+G=A:70H*3L**PD * HK"2`J("` 
M"0D)+2UQ=65U94QE;F=T:#L**PD *B` (`D)"65M<'1Y+F)R;V%D8V%S=" I
M.PHK"2`J("` "0E]"BL)("H ("`)?0HK"2`J("` ?0HK"2`J("` "BL)("H 
M("`**PD *B` ('9O:60 8F]O=" I"BL)("H ("!["BL)("H ("`)5&AR96%D
M('!R;R`](&YE=R!4:')E860H)G!R;V1U8V5R*3L**PD *B` (`E4:')E860 
M8V]N(#T ;F5W(%1H<F5A9" F8V]N<W5M97(I.PHK"2`J("` "0HK"2`J("` 
M"6-O;BYS=&%R=" I.PHK"2`J("` "7!R;RYS=&%R=" I.PHK"2`J("` ?0HK

M*PE["BL)"7!R:79A=&4**PD)>PHK"0D)<'1H<F5A9%]C;VYD7W0 8V]N9#L*
M*PD)"4]B:F5C="!?;6]N:71O<CL**PD)?0HK"0D**PD)"BL)"71H:7,H3V)J
M96-T(&UO;FET;W(I"BL)"7L**PD)"5]M;VYI=&]R(#T ;6]N:71O<CL**PD)
M"7!T:')E861?8V]N9%]I;FET*"9C;VYD+"!N=6QL*3L**PD)?0HK"0D**PD)
M"BL)"7YT:&ES*"D**PD)>PHK"0D)<'1H<F5A9%]C;VYD7V1E<W1R;WDH)F-O
M;F0I.PHK"0E]"BL)"0HK"0D**PD)+RHJ"BL)"2`J($)R;V%D8V%S="!A('-I
M9VYA;"!T;R!A;&P =V%I=&EN9R!T:')E861S+ HK"0D *B!4:&ES('5S97, 

M*"D**PD)>PHK"0D)<'1H<F5A9%]C;VYD7V)R;V%D8V%S=" F8V]N9"D["BL)
M"7T**PD)"BL)"0HK"0DO*BH**PD)("H 4F5T=7)N('1H92!M;VYI=&]R(&]B
M:F5C="!T:&ES(&-O;F1I=&EO;B!V87)I86)L92!R96QI97, ;VXN"BL)"2HJ
M+PHK"0E/8FIE8W0 ;6]N:71O<B I"BL)"7L**PD)"7)E='5R;B!?;6]N:71O
M<CL**PD)?0HK"0D**PD)"BL)"2\J* HK"0D *B!3:6=N86P 97AA8W1L>2!Z
M97)O(&]R(&]N92!W86ET:6YG('1H<F5A9',N"BL)"2`J(%1H:7, =7-E<R!3
M:6=N86PM06YD+4-O;G1I;G5E+ HK"0DJ*B\**PD)=F]I9"!S:6=N86PH*0HK
M"0E["BL)"0EP=&AR96%D7V-O;F1?<VEG;F%L*"9C;VYD*3L**PD)?0HK"0D*
M*PD)"BL)"2\J* HK"0D *B!786ET(&9O<B!A('-I9VYA;"!O<B!A('1I;65O
M=70N(%1O(&-A;&P =&AI<RP =&AE('1H<F5A9"!M=7-T(&)E('1H90HK"0D 
M*B!O=VYE<B!O9B!T:&4 ;6]N:71O<B!F;W( 3V)J96-T('1H:7,N;6]N:71O
M<BX**PD)("H**PD)("H 4&%R86US. HK"0D *B` ('1I;65O=70 /2!-87AI
M;75M('1I;64 =&\ =V%I="!F;W( 82!S:6=N86PN"BL)"2`J("` =6YI="` 
M("`](%1H92!U;FET('5S960 9F]R('1H92!T:6UE;W5T('!A<F%M971E<BX*
M*PD)("H**PD)("H 4F5T=7)N<SH =')U92!I9B!A('-I9VYA;"!W87, <F5C
M96EV960L(&9A;'-E(&]T:&5R=VES92X**PD)*BHO"BL)"6)I="!W86ET*&EN
M="!T:6UE;W5T(#T +3$L(%1I;655;FET('5N:70 /2!4:6UE56YI="Y314-/
M3D0I"BL)"7L**PD)"71I;65V86P ='8["BL)"0ET:6UE<W!E8R!T<SL**PD)
M"0HK"0D)9V5T=&EM96]F9&%Y*"9T=BP ;G5L;"D["BL)"0D**PD)"7-W:71C
M:"`H=6YI="D**PD)"7L**PD)"6-A<V4 5&EM955N:70N3D%.3U-%0T].1#H*
M*PD)"0ET<RYT=E]N<V5C(#T




M<V5C("H ,3`P,#L**PD)"0ET<RYT=E]S96, /2!T=BYT=E]S96, *R!T:6UE
M;W5T.PHK"0D)"6)R96%K.PHK"0D)"BL)"0ED969A=6QT. HK"0D)"71I;65O

M/PHK"0D)"7!T:')E861?8V]N9%]W86ET*"9C;VYD+"!?9%]G971?;V)J96-T
M7VUO;FET;W(H7VUO;FET;W(I*2`Z"BL)"0D)<'1H<F5A9%]C;VYD7W1I;65D
M=V%I=" F8V]N9"P 7V1?9V5T7V]B:F5C=%]M;VYI=&]R*%]M;VYI=&]R*2P 
M)G1S*2D["BL)"7T**PE]"BM]"BL**PHK<')I=F%T92!I;7!O<G0 <W1D+F-O
M;F1I=&EO;CL**W!R:79A=&4 :6UP;W)T('-T9"YT:')E860["BMP<FEV871E
M(&EM<&]R="!S=&0N<W1D:6\["BMP<FEV871E(&EM<&]R="!S=&0N8RYT:6UE
M.PHK"BL**W5N:71T97-T"BM["BL):6YT6S5=('%U975E.PHK"6EN="!H96%D
M(#T
M*"D["BL)0V]N9&ET:6]N(&9U;&P /2!N97< 0V]N9&ET:6]N*&UO;FET;W(I

M"BL)"BL)"BL):6YT('!R;V1U8V5R*"D**PE["BL)"6EN="!D871A(#T ,3L*
M*PD)"BL)"69O<B`H.SLI"BL)"7L**PD)"7-Y;F-H<F]N:7IE9"`H;6]N:71O

M:70H*3L**PD)"0D**PD)"0EW<FET969L;B B4')O9'5C:6YG("5D(BP <75E
M=64N;&5N9W1H("T <VEZ92D["BL)"0D)=VAI;&4 *'-I>F4 /"!Q=65U92YL
M96YG=& I"BL)"0D)>PHK"0D)"0EQ=65U95MH96%D72`](&1A=&$K*SL**PD)
M"0D):&5A9"`]("AH96%D("L ,2D )2!Q=65U92YL96YG=& ["BL)"0D)"2LK
M<VEZ93L**PD)"0E]"BL)"0D)9G5L;"YB<F]A9&-A<W0H*3L**PD)"7T**PD)
M?0HK"7T**PD**PD**PEI;G0 8V]N<W5M97(H*0HK"7L**PD):6YT(&1A=&$[
M"BL)"0HK"0EF;W( *#L[*0HK"0E["BL)"0ES>6YC:')O;FEZ960 *&UO;FET
M;W(I"BL)"0E["BL)"0D)=VAI;&4 *'-I>F4 /"!Q=65U92YL96YG=& I"BL)


M"0D)"0EI;G0 =&%I;"`]("AH96%D("L <75E=64N;&5N9W1H("T <VEZ92D 
M)2!Q=65U92YL96YG=& ["BL)"0D)"0HK"0D)"0ED871A(#T <75E=65;=&%I
M;%T["BL)"0D)"2TM<VEZ93L**PD)"0E]"BL)"0D)96UP='DN8G)O861C87-T
M*"D["BL)"0E]"BL)"7T**PE]"BL)"BL)"BL)5&AR96%D('!R;R`](&YE=R!4
M:')E860H)G!R;V1U8V5R*3L**PE4:')E860 8V]N(#T ;F5W(%1H<F5A9" F
M8V]N<W5M97(I.PHK"0HK"6-O;BYS=&%R=" I.PHK"7!R;RYS=&%R=" I.PHK

`
end
Dec 15 2005