## digitalmars.D.learn - Demangle for Tango

• Tower Ty (2/2) Apr 13 2008 Is there a demangle program for Tango similar to the one in Phobos ?
• Jarrett Billingsley (254/256) Apr 13 2008 Here you go. The only difference is that floating-point template argume...
Tower Ty <tytower hotmail.com> writes:
```Is there a demangle program for Tango similar to the one in Phobos ?

If not can I copy and use the Phobos one to any degree?
```
Apr 13 2008
"Jarrett Billingsley" <kb3ctd2 yahoo.com> writes:
```"Tower Ty" <tytower hotmail.com> wrote in message
news:ftu3j8\$6q4\$1 digitalmars.com...
Is there a demangle program for Tango similar to the one in Phobos ?

If not can I copy and use the Phobos one to any degree?

Here you go.  The only difference is that floating-point template arguments
will be demangled with 6 digits of precision instead of a variable number.

begin 666 demangle.d
M+R\ 5W)I='1E;B!I;B!T:&4 1"!P<F]G<F%M;6EN9R!L86YG=6%G92X-" T*
M+RH-"B J(%!L86-E9"!I;G1O('1H92!0=6)L:6, 1&]M86EN+ T*("HO#0H-
M"B\J*BHJ#0H *B!\$96UA;F=L92!\$(&UA;F=L960 ;F%M97,N#0H *B!-86-R
M;W,Z#0H * D)5TE+22 ](%!H;V)O<R]3=&1\$96UA;F=L90T*("HO#0H-"B\J
M(\$%U=&AO<G,Z#0H * D)5V%L=&5R(\$)R:6=H="P 1&EG:71A;"!-87)S+"!W
M=W<N9&EG:71A;&UA<G,N8V]M#0H * D)5&AO;6%S(\$MU96AN90T*("H)"49R
M:71S('9A;B!";VUM96P-"B J"0E*87)R971T(\$)I;&QI;F=S;&5Y#0H *B\-
M" T*;6]D=6QE(&1E;6%N9VQE.PT*#0HO+V1E8G5G/61E;6%N9VQE.PD)"0DO
M+R!U;F-O;6UE;G0 =&\ ='5R;B!O;B!D96)U9V=I;F< <')I;G1F)W,-" T*
M+R\ <')I=F%T92!I;7!O<G0 <W1D+F-T>7!E.PT*+R\ <')I=F%T92!I;7!O
M<G0 <W1D+G-T<FEN9SL-"B\O('!R:79A=&4 :6UP;W)T('-T9"YU=&8[#0HO
M+R -"B\O('!R:79A=&4 :6UP;W)T('-T9"YS=&1I;SL-" T*:6UP;W)T('1A
M;F=O+G-T9&,N8W1Y<&4[#0II;7!O<G0 =&%N9V\N=&5X="YC;VYV97)T+D9O
M<FUA=#L-" T*<')I=F%T92!C;&%S<R!-86YG;&5%>&-E<'1I;VX .B!%>&-E
M<'1I;VX-"GL-" ET:&ES*"D-" E[#0H)"7-U<&5R*")-86YG;&5%>&-E<'1I
M;VXB*3L-" E]#0I]#0H-"B\J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M* T*("H 1&5M86YG;&4 1"!M86YG;&5D(&YA;65S+ T*("H-"B J(\$EF(&ET
M(&ES(&YO="!A(\$0 ;6%N9VQE9"!N86UE+"!I="!R971U<FYS(&ET<R!A<F=U
M;65N="!N86UE+ T*("H 17AA;7!L93H-"B J"0E4:&ES('!R;V=R86T <F5A
M9', <W1A;F1A<F0 :6X 86YD('=R:71E<R!I="!T;R!S=&%N9&%R9"!O=70L
M#0H * D)<')E='1Y+7!R:6YT:6YG(&%N>2!F;W5N9"!\$(&UA;F=L960 ;F%M
M97,N#0HM+2TM+2TM+2TM+2TM+2TM+2TM#0II;7!O<G0 <W1D+G-T9&EO.PT*
M:6UP;W)T('-T9"YC='EP93L-"FEM<&]R="!S=&0N9&5M86YG;&4[#0H-"FEN
M="!M86EN*"D-"GL)8VAA<EM=(&)U9F9E<CL-" EB;V]L(&EN=V]R9#L-" EI
M;G0 8SL-" T*"7=H:6QE(" H8R ](&9G971C*'-T9&EN*2D (3T 14]&*0T*
M"7L-" D):68 *&EN=V]R9"D-" D)>PT*"0D):68 *&, /3T )U\G('Q\(&ES
M86QN=6TH8RDI#0H)"0D)8G5F9F5R('X](&-A<W0H8VAA<BD 8SL-" D)"65L
M<V4-" D)"7L-" D)"0EI;G=O<F0 /2!F86QS93L-" D)"0EW<FET968H9&5M
M86YG;&4H8G5F9F5R*2P 8V%S="AC:&%R*2!C*3L-" D)"7T-" D)?0T*"0EE
M;'-E#0H)"7L):68 *&, /3T )U\G('Q\(&ES86QP:&\$H8RDI#0H)"0E["6EN
M=V]R9" ]('1R=64[#0H)"0D)8G5F9F5R+FQE;F=T:" ](# [#0H)"0D)8G5F
M9F5R('X](&-A<W0H8VAA<BD 8SL-" D)"7T-" D)"65L<V4-" D)"0EW<FET
M968H8V%S="AC:&%R*2!C*3L-" D)?0T*"7T-" EI9B H:6YW;W)D*0T*"0EW
M<FET968H9&5M86YG;&4H8G5F9F5R*2D[#0H)<F5T=7)N(# [#0I]#0HM+2TM
M+2TM+2TM+2TM+2TM+2TM#0H *B\-" T*8VAA<EM=(&1E;6%N9VQE*&-H87);
M72!N86UE*0T*>PT*"7-I>F5?="!N:2 ](#([#0H)8VAA<EM=(&1E;&5G871E
M*"D 9G!A<G-E5&5M<&QA=&5);G-T86YC94YA;64[#0H-" ES=&%T:6, =F]I
M9"!E<G)O<B I#0H)>PT*"0DO+W=R:71E9FQN*")E<G)O<B I(BD[#0H)"71H
M<F]W(&YE=R!-86YG;&5%>&-E<'1I;VXH*3L-" E]#0H-" ES=&%T:6, =6)Y
M=&4 87-C:6DR:&5X*&-H87( 8RD-" E[#0H)"6EF(" A:7-X9&EG:70H8RDI
M#0H)"0EE<G)O<B I.PT*"0ER971U<FX 8V%S="AU8GET92D-" D)"2  *" H
M8R ^/2 G82<I(#\ 8R M("=A)R K(#\$P(#H-" D)"0DH8R ^/2 G02<I(#\
M8R M("=!)R K(#\$P(#H-" D)"0D)"0D 8R M("<P)PT*"0D)(" I.PT*"7T-
M" T*"7-I>F5?="!P87)S94YU;6)E<B I#0H)>PT*"0DO+W=R:71E9FQN*")P
M87)S94YU;6)E<B I("5D(BP ;FDI.PT*"0ES:7IE7W0 <F5S=6QT.PT*#0H)
M"7=H:6QE("AN:2 \(&YA;64N;&5N9W1H("8F(&ES9&EG:70H;F%M95MN:5TI
M*0T*"0E["6EN="!I(#T ;F%M95MN:5T +2 G,"<[#0H)"0EI9B H<F5S=6QT
M(#X *'-I>F5?="YM87  +2!I*2 O(#\$P*0T*"0D)"65R<F]R*"D[#0H)"0ER
M97-U;'0 /2!R97-U;'0 *B Q," K(&D[#0H)"0EN:2LK.PT*"0E]#0H)"7)E
M='5R;B!R97-U;'0[#0H)?0T*#0H)8VAA<EM=('!A<G-E4WEM8F]L3F%M92 I
M#0H)>PT*"0DO+W=R:71E9FQN*")P87)S95-Y;6)O;\$YA;64H*2 E9"(L(&YI
M*3L-" D)<VEZ95]T(&D /2!P87)S94YU;6)E<B I.PT*"0EI9B H;FD *R!I
M(#X ;F%M92YL96YG=& I#0H)"0EE<G)O<B I.PT*"0EC:&%R6UT <F5S=6QT
M.PT*"0EI9B H:2 ^/2 U("8F#0H)"0EN86UE6VYI72 ]/2 G7R< )B8-" D)
M"6YA;65;;FD *R Q72 ]/2 G7R< )B8-" D)"6YA;65;;FD *R R72 ]/2 G
M5"<I#0H)"7L-" D)"7-I>F5?="!N:7-A=F4 /2!N:3L-" D)"6)O;VP 97)R
M.PT*"0D);FD *ST ,SL-" D)"71R>0T*"0D)>PT*"0D)"7)E<W5L=" ](&9P
M87)S951E;7!L871E26YS=&%N8V5.86UE*"D[#0H)"0D):68 *&YI("\$](&YI
M<V%V92 K(&DI#0H)"0D)"65R<B ]('1R=64[#0H)"0E]#0H)"0EC871C:" H
M36%N9VQE17AC97!T:6]N(&UE*0T*"0D)>PT*"0D)"65R<B ]('1R=64[#0H)
M"0E]#0H)"0EN:2 ](&YI<V%V93L-" D)"6EF("AE<G(I#0H)"0D)9V]T;R!,
M,3L-" D)"6=O=&\ 3#([#0H)"7T-" D (\$PQ. T*"0ER97-U;'0 /2!N86UE
M6VYI("XN(&YI("L :5T[#0H)("!,,CH-" D);FD *ST :3L-" D)<F5T=7)N
M(')E<W5L=#L-" E]#0H-" EC:&%R6UT <&%R<V51=6%L:69I961.86UE*"D-
M" E[#0H)"2\O=W)I=&5F;&XH(G!A<G-E475A;&EF:65D3F%M92 I("5D(BP
M;FDI.PT*"0EC:&%R6UT <F5S=6QT.PT*#0H)"7=H:6QE("AN:2 \(&YA;64N
M;&5N9W1H("8F(&ES9&EG:70H;F%M95MN:5TI*0T*"0E[#0H)"0EI9B H<F5S
M=6QT+FQE;F=T:"D-" D)"0ER97-U;'0 ?CT (BXB.PT*"0D)<F5S=6QT('X]
M('!A<G-E4WEM8F]L3F%M92 I.PT*"0E]#0H)"7)E='5R;B!R97-U;'0[#0H)
M?0T*#0H)8VAA<EM=('!A<G-E5'EP92AC:&%R6UT :61E;G1I9FEE<B ](&YU
M;&PI#0H)>PT*"0DO+W=R:71E9FQN*")P87)S951Y<&4H*2 E9"(L(&YI*3L-
M" D):6YT(&ES9&5L96=A=&4 /2 P.PT*"0EB;V]L(&AA<W1H:7-P='( /2!F
M86QS93L +R\O(\$9O<B!F=6YC=&EO;B]D96QE9V%T92!T>7!E<SH 97AP96-T
M<R!A("=T:&ES)R!P;VEN=&5R(&%S(&QA<W0 87)G=6UE;G0-" D (\$QA9V%I
M;CH-" D):68 *&YI(#X](&YA;64N;&5N9W1H*0T*"0D)97)R;W(H*3L-" D)
M8VAA<EM=(' [#0H)"7-W:71C:" H;F%M95MN:2LK72D-" D)>PT*"0D)8V%S
M92 G=B<Z"7  /2 B=F]I9"([( EG;W1O(\$PQ.PT*"0D)8V%S92 G8B<Z"7
M/2 B8F]O;"([( EG;W1O(\$PQ.PT*"0D)8V%S92 G9R<Z"7  /2 B8GET92([
M( EG;W1O(\$PQ.PT*"0D)8V%S92 G:"<Z"7  /2 B=6)Y=&4B.PEG;W1O(\$PQ
M.PT*"0D)8V%S92 G<R<Z"7  /2 B<VAO<G0B.PEG;W1O(\$PQ.PT*"0D)8V%S
M92 G="<Z"7  /2 B=7-H;W)T(CL)9V]T;R!,,3L-" D)"6-A<V4 )VDG. EP
M(#T (FEN="(["0EG;W1O(\$PQ.PT*"0D)8V%S92 G:R<Z"7  /2 B=6EN="([
M( EG;W1O(\$PQ.PT*"0D)8V%S92 G;"<Z"7  /2 B;&]N9R([( EG;W1O(\$PQ
M.PT*"0D)8V%S92 G;2<Z"7  /2 B=6QO;F<B.PEG;W1O(\$PQ.PT*"0D)8V%S
M92 G9B<Z"7  /2 B9FQO870B.PEG;W1O(\$PQ.PT*"0D)8V%S92 G9"<Z"7
M/2 B9&]U8FQE(CL)9V]T;R!,,3L-" D)"6-A<V4 )V4G. EP(#T (G)E86PB
M.R )9V]T;R!,,3L-" D)"6-A<V4 )V\G. EP(#T (FEF;&]A="(["6=O=&\
M3#\$[#0H)"0EC87-E("=P)SH)<" ](")I9&]U8FQE(CL)9V]T;R!,,3L-" D)
M"6-A<V4 )VHG. EP(#T (FER96%L(CL)9V]T;R!,,3L-" D)"6-A<V4 )W\$G
M. EP(#T (F-F;&]A="(["6=O=&\ 3#\$[#0H)"0EC87-E("=R)SH)<" ](")C
M9&]U8FQE(CL)9V]T;R!,,3L-" D)"6-A<V4 )V,G. EP(#T (F-R96%L(CL)
M9V]T;R!,,3L-" D)"6-A<V4 )V\$G. EP(#T (F-H87(B.R )9V]T;R!,,3L-
M" D)"6-A<V4 )W4G. EP(#T (G=C:&%R(CL)9V]T;R!,,3L-" D)"6-A<V4
M)W<G. EP(#T (F1C:&%R(CL)9V]T;R!,,3L-" T*"0D)8V%S92 G02<Z"0D)
M"0D)"2\O(&1Y;F%M:6, 87)R87D-" D)"0EP(#T <&%R<V54>7!E*"D ?B B
M6UTB.PT*"0D)"6=O=&\ 3#\$[#0H-" D)"6-A<V4 )U G. D)"0D)"0DO+R!P
M;VEN=&5R#0H)"0D)<" ]('!A<G-E5'EP92 I('X (BHB.PT*"0D)"6=O=&\
M3#\$[#0H-" D)"6-A<V4 )T<G. D)"0D)"0DO+R!S=&%T:6, 87)R87D-" D)
M"7L)<VEZ95]T(&YS(#T ;FD[#0H)"0D)<&%R<V5.=6UB97(H*3L-" D)"0ES
M:7IE7W0 ;F4 /2!N:3L-" D)"0EP(#T <&%R<V54>7!E*"D ?B B6R( ?B!N
M86UE6VYS("XN(&YE72!^(")=(CL-" D)"0EG;W1O(\$PQ.PT*"0D)?0T*#0H)
M"0EC87-E("=()SH)"0D)"0D)+R\ 87-S;V-I871I=F4 87)R87D-" D)"0EP
M(#T <&%R<V54>7!E*"D[#0H)"0D)<" ]('!A<G-E5'EP92 I('X (ELB('X
M<"!^(")=(CL-" D)"0EG;W1O(\$PQ.PT*#0H)"0EC87-E("=\$)SH)"0D)"0D)
M+R\ 9&5L96=A=&4-" D)"0EI<V1E;&5G871E(#T ,3L-" D)"0EG;W1O(\$QA
M9V%I;CL-" T*"0D)8V%S92 G32<Z#0H)"0D):&%S=&AI<W!T<B ]('1R=64[
M#0H)"0D)9V]T;R!,86=A:6X[#0H-" D)"6-A<V4 )T8G. D)"0D)"0DO+R!\$
M(&9U;F-T:6]N#0H)"0EC87-E("=5)SH)"0D)"0D)+R\ 0R!F=6YC=&EO; T*
M"0D)8V%S92 G5R<Z"0D)"0D)"2\O(%=I;F1O=W, 9G5N8W1I;VX-" D)"6-A
M<V4 )U8G. D)"0D)"0DO+R!087-C86P 9G5N8W1I;VX-" D)"6-A<V4 )U(G
M. D)"0D)"0DO+R!#*RL 9G5N8W1I;VX-" D)"7L)8VAA<B!M8R ](&YA;65;
M;FD +2 Q73L-" D)"0EC:&%R6UT 87)G<SL-" T*"0D)"7=H:6QE(" Q*0T*
M"0D)"7L-" D)"0D):68 *&YI(#X](&YA;64N;&5N9W1H*0T*"0D)"0D)97)R
M;W(H*3L-" D)"0D)8VAA<B!C(#T ;F%M95MN:5T[#0H)"0D)"6EF("AC(#T]
M("=:)RD-" D)"0D)"6)R96%K.PT*"0D)"0EI9B H8R ]/2 G6"<I#0H)"0D)
M"7L-" D)"0D)"6EF(" A87)G<RYL96YG=& I(&5R<F]R*"D[#0H)"0D)"0EA
M<F=S('X]("( +BXN(CL-" D)"0D)"6)R96%K.PT*"0D)"0E]#0H)"0D)"6EF
M("AA<F=S+FQE;F=T:"D-" D)"0D)"6%R9W, ?CT (BP (CL-" D)"0D)<W=I
M=&-H("AC*0T*"0D)"0E[#0H)"0D)"0EC87-E("=*)SH-" D)"0D)"0EA<F=S
M('X](")O=70 (CL-" D)"0D)"0EN:2LK.PT*"0D)"0D)"6=O=&\ 9&5F875L
M=#L-" T*"0D)"0D)8V%S92 G2R<Z#0H)"0D)"0D)87)G<R!^/2 B:6YO=70
M(CL-" D)"0D)"0EN:2LK.PT*"0D)"0D)"6=O=&\ 9&5F875L=#L-" T*"0D)
M"0D)8V%S92 G3"<Z#0H)"0D)"0D)87)G<R!^/2 B;&%Z>2 B.PT*"0D)"0D)
M"6YI*RL[#0H)"0D)"0D)9V]T;R!D969A=6QT.PT*#0H)"0D)"0ED969A=6QT
M. T*"0D)"0D)"6%R9W, ?CT <&%R<V54>7!E*"D[#0H)"0D)"0D)8V]N=&EN
M=64[#0H-" D)"0D)"6-A<V4 )UDG. T*"0D)"0D)"6%R9W, ?CT (BXN+B([
M#0H)"0D)"0D)8G)E86L[#0H)"0D)"7T-" D)"0D)8G)E86L[#0H)"0D)?0T*
M"0D)"6YI*RL[#0H)"0D):68 *"%I<V1E;&5G871E("8F(&ED96YT:69I97(N
M;&5N9W1H*0T*"0D)"7L-" D)"0D)<W=I=&-H("AM8RD-" D)"0D)>PT*"0D)
M"0D)8V%S92 G1B<Z('  /2!N=6QL.R )"0D ("!B<F5A:SL +R\ 1"!F=6YC
M=&EO; T*"0D)"0D)8V%S92 G52<Z('  /2 B97AT97)N("A#*2 B.PD ("!B
M<F5A:SL +R\ 0R!F=6YC=&EO; T*"0D)"0D)8V%S92 G5R<Z('  /2 B97AT
M97)N("A7:6YD;W=S*2 B.R!B<F5A:SL +R\ 5VEN9&]W<R!F=6YC=&EO; T*
M"0D)"0D)8V%S92 G5B<Z('  /2 B97AT97)N("A087-C86PI("([("!B<F5A
M:SL +R\ 4&%S8V%L(&9U;F-T:6]N#0H)"0D)"0ED969A=6QT.B  87-S97)T
M*# I.PT*"0D)"0E]#0H)"0D)"7  ?CT <&%R<V54>7!E*"D ?B B("( ?B!I
M9&5N=&EF:65R('X (B B('X 87)G<R!^("(I(CL-" D)"0D)<F5T=7)N(' [
M#0H)"0D)?0T*"0D)"7  /2!P87)S951Y<&4H*2!^#0H)"0D)"2AI<V1E;&5G
M871E(#\ (B!D96QE9V%T92 B(#H (B!F=6YC=&EO;B B*2!^#0H)"0D)"6%R
M9W, ? T*"0D)"0DB*2([#0H)"0D):7-D96QE9V%T92 ](# [#0H)"0D)9V]T
M;R!,,3L-" D)"7T-" T*"0D)8V%S92 G0R<Z"7  /2 B8VQA<W, (CL)9V]T
M;R!,,CL-" D)"6-A<V4 )U,G. EP(#T (G-T<G5C=" B.PEG;W1O(\$PR.PT*
M"0D)8V%S92 G12<Z"7  /2 B96YU;2 B.PEG;W1O(\$PR.PT*"0D)8V%S92 G
M5"<Z"7  /2 B='EP961E9B B.R!G;W1O(\$PR.PT*#0H)"0E,,CH <"!^/2!P
M87)S95%U86QI9FEE9\$YA;64H*3L-" D)"0EG;W1O(\$PQ.PT*#0H)"0E,,3H-
M" D)"0EI9B H:7-D96QE9V%T92D-" D)"0D)97)R;W(H*3L)"0DO+R G1"<
M;75S="!B92!F;VQL;W=E9"!B>2!F=6YC=&EO; T*"0D)"6EF("AI9&5N=&EF
M:65R+FQE;F=T:"D-" D)"0D)<"!^/2 B("( ?B!I9&5N=&EF:65R.PT*"0D)
M"7)E='5R;B!P.PT*#0H)"0ED969A=6QT. T*"0D)"7-I>F5?="!I(#T ;FD
M+2 Q.PT*"0D)"6YI(#T ;F%M92YL96YG=& [#0H)"0D)<" ](&YA;65;:2 N
M+B!L96YG=&A=.PT*"0D)"6=O=&\ 3#\$[#0H)"7T-" D)87-S97)T*# I.PT*
M"7T-" T*"6-H87);72!P87)S951E;7!L871E26YS=&%N8V5.86UE*"D-" E[
M#0H)"6%U=&\ <F5S=6QT(#T <&%R<V53>6UB;VQ.86UE*"D ?B B(2 B.PT*
M"0EI;G0 ;F%R9W,[#0H-" D)=VAI;&4 *#\$I#0H)"7L)<VEZ95]T(&D[#0H-
M" D)"6EF("AN:2 ^/2!N86UE+FQE;F=T:"D-" D)"0EE<G)O<B I.PT*"0D)
M:68 *&YA<F=S("8F(&YA;65;;FE=("\$]("=:)RD-" D)"0ER97-U;'0 ?CT
M(BP (CL-" D)"6YA<F=S*RL[#0H)"0ES=VET8V  *&YA;65;;FDK*UTI#0H)
M"0E[#0H)"0D)8V%S92 G5"<Z#0H)"0D)"7)E<W5L="!^/2!P87)S951Y<&4H
M*3L-" D)"0D)8V]N=&EN=64[#0H-" D)"0EC87-E("=6)SH-" T*"0D)"0EV
M;VED(&=E=%)E86PH*0T*"0D)"0E["7)E86P <CL-" D)"0D)"75B>71E("IP
M(#T 8V%S="AU8GET92 J*29R.PT*#0H)"0D)"0EI9B H;FD *R Q," J(#(
M/B!N86UE+FQE;F=T:"D-" D)"0D)"0EE<G)O<B I.PT*"0D)"0D)9F]R("AI
M(#T ,#L :2 \(#\$P.R!I*RLI#0H)"0D)"0E["75B>71E(&([#0H-" D)"0D)
M"0EB(#T 8V%S="AU8GET92D-" D)"0D)"0D)* T*"0D)"0D)"0D *&%S8VEI
M,FAE>"AN86UE6VYI("L :2 J(#)=*2 \/" T*2 K#0H)"0D)"0D)"2  87-C
M:6DR:&5X*&YA;65;;FD *R!I("H ,B K(#%=*0T*"0D)"0D)"0DI.PT*"0D)
M"0D)"7!;:5T /2!B.PT*"0D)"0D)?0T*"0D)"0D)<F5S=6QT('X](\$9O<FUA
M=" B>SIF-GTB+"!R*3L-" D)"0D)"6YI("L](#\$P("H ,CL-" D)"0D)?0T*
M#0H)"0D)"7)E<W5L="!^/2!P87)S951Y<&4H*2!^("( (CL-" D)"0D):68
M*&YI(#X](&YA;64N;&5N9W1H*0T*"0D)"0D)97)R;W(H*3L-" D)"0D)<W=I
M=&-H("AN86UE6VYI*RM=*0T*"0D)"0E[#0H)"0D)"0EC87-E("<P)SH 8V%S
M92 G,2<Z(&-A<V4 )S(G.B!C87-E("<S)SH 8V%S92 G-"<Z#0H)"0D)"0EC
M87-E("<U)SH 8V%S92 G-B<Z(&-A<V4 )S<G.B!C87-E("<X)SH 8V%S92 G
M.2<Z#0H)"0D)"0D):2 ](&YI("T ,3L-" D)"0D)"0EW:&EL92 H;FD /"!N
M86UE+FQE;F=T:" F)B!I<V1I9VET*&YA;65;;FE=*2D-" D)"0D)"0D);FDK
M*SL-" D)"0D)"0ER97-U;'0 ?CT ;F%M95MI("XN(&YI73L-" D)"0D)"0EB
M<F5A:SL-" T*"0D)"0D)8V%S92 G3B<Z#0H)"0D)"0D):2 ](&YI.PT*"0D)
M"0D)"7=H:6QE("AN:2 \(&YA;64N;&5N9W1H("8F(&ES9&EG:70H;F%M95MN
M:5TI*0T*"0D)"0D)"0EN:2LK.PT*"0D)"0D)"6EF("AI(#T](&YI*0T*"0D)
M"0D)"0EE<G)O<B I.PT*"0D)"0D)"7)E<W5L="!^/2 B+2( ?B!N86UE6VD
M+BX ;FE=.PT*"0D)"0D)"6)R96%K.PT*#0H)"0D)"0EC87-E("=N)SH-" D)
M"0D)"0ER97-U;'0 ?CT (FYU;&PB.PT*"0D)"0D)"6)R96%K.PT*#0H)"0D)
M"0EC87-E("=E)SH-" D)"0D)"0EG971296%L*"D[#0H)"0D)"0D)8G)E86L[
M#0H-" D)"0D)"6-A<V4 )V,G. T*"0D)"0D)"6=E=%)E86PH*3L-" D)"0D)
M"0ER97-U;'0 ?CT )RLG.PT*"0D)"0D)"6=E=%)E86PH*3L-" D)"0D)"0ER
M97-U;'0 ?CT )VDG.PT*"0D)"0D)"6)R96%K.PT*#0H)"0D)"0EC87-E("=A
M)SH-" D)"0D)"6-A<V4 )W<G. T*"0D)"0D)8V%S92 G9"<Z#0H)"0D)"0E[
M"6-H87( ;2 ](&YA;65;;FD +2 Q73L-" D)"0D)"0EI9B H;2 ]/2 G82<I
M#0H)"0D)"0D)"6T /2 G8R<[#0H)"0D)"0D)<VEZ95]T(&X /2!P87)S94YU
M;6)E<B I.PT*"0D)"0D)"6EF("AN:2 ^/2!N86UE+FQE;F=T:"!\?"!N86UE
M6VYI*RM=("\$]("=?)R!\? T*"0D)"0D)"0EN:2 K(&X *B R(#X ;F%M92YL
M96YG=& I#0H)"0D)"0D)"65R<F]R*"D[#0H)"0D)"0D)<F5S=6QT('X]("<B
M)SL-" D)"0D)"0EF;W( *&D /2 P.R!I(#P ;CL :2LK*0T*"0D)"0D)"7L)
M8VAA<B!C.PT*#0H)"0D)"0D)"6, /2 H87-C:6DR:&5X*&YA;65;;FD *R!I
M("H ,ETI(#P\(#0I("L-" D)"0D)"0D)"2!A<V-I:3)H97 H;F%M95MN:2 K
M(&D *B R("L ,5TI.PT*"0D)"0D)"0ER97-U;'0 ?CT 8SL-" D)"0D)"0E]
M#0H)"0D)"0D);FD *ST ;B J(#([#0H)"0D)"0D)<F5S=6QT('X]("<B)SL-
M" D)"0D)"0ER97-U;'0 ?CT ;3L-" D)"0D)"0EB<F5A:SL-" D)"0D)"7T-
M" T*"0D)"0D)9&5F875L=#H-" D)"0D)"0EE<G)O<B I.PT*"0D)"0D)"6)R
M96%K.PT*"0D)"0E]#0H)"0D)"6-O;G1I;G5E.PT*#0H)"0D)8V%S92 G4R<Z
M#0H)"0D)"7)E<W5L="!^/2!P87)S95-Y;6)O;\$YA;64H*3L-" D)"0D)8V]N
M=&EN=64[#0H-" D)"0EC87-E("=:)SH-" D)"0D)8G)E86L[#0H-" D)"0ED
M969A=6QT. T*"0D)"0EE<G)O<B I.PT*"0D)?0T*"0D)8G)E86L[#0H)"7T-
M" D)<F5S=6QT('X]("(I(CL-" D)<F5T=7)N(')E<W5L=#L-" E]#0H-" EI
M9B H;F%M92YL96YG=&  /" S('Q\#0H)"6YA;65;,%T (3T )U\G('Q\#0H)
M"6YA;65;,5T (3T )T0G('Q\#0H)"2%I<V1I9VET*&YA;65;,ETI*0T*"7L-
M" D)9V]T;R!,;F]T.PT*"7T-" T*"69P87)S951E;7!L871E26YS=&%N8V5.
M86UE(#T )G!A<G-E5&5M<&QA=&5);G-T86YC94YA;64[#0H-" ET<GD-" E[
M#0H)"6%U=&\ <F5S=6QT(#T <&%R<V51=6%L:69I961.86UE*"D[#0H)"7)E
M<W5L=" ]('!A<G-E5'EP92AR97-U;'0I.PT*"0EW:&EL92AN:2 \(&YA;64N
M;&5N9W1H*7L-" D)"0ER97-U;'0 ?CT (B N("( ?B!P87)S951Y<&4H<&%R
M<V51=6%L:69I961.86UE*"DI.PT*"0E]#0H-" D):68 *&YI("\$](&YA;64N
M;&5N9W1H*0T*"0D)9V]T;R!,;F]T.PT*"0ER971U<FX <F5S=6QT.PT*"7T-
M" EC871C:" H36%N9VQE17AC97!T:6]N(&4I#0H)>PT*"7T-" T*3&YO=#H-
M" DO+R!.;W0 82!R96-O9VYI>F5D(\$0 ;6%N9VQE9"!N86UE.R!S;R!R971U
M<FX ;W)I9VEN86P-" ER971U<FX ;F%M93L-"GT-" T*#0IU;FET=&5S= T*
M>PT*"7-T871I8R!C:&%R6UU;,EU;72!T86)L92 ]#0H)6PT*"0E;(")P<FEN
M=&8B+" )(G!R:6YT9B( 72P-" D)6R B7V9O;R(L"0DB7V9O;R( 72P-" D)
M6R B7T0X."(L"0DB7T0X."( 72P-" D)6R B7T0T=&5S=#-F;V]!82(L(")C
M:&%R6UT =&5S="YF;V\B72P-" D)6R B7T0X9&5M86YG;&4X9&5M86YG;&5&
M06%:06\$B+" B8VAA<EM=(&1E;6%N9VQE+F1E;6%N9VQE*&-H87);72DB(%TL
M#0H)"5L (E]\$-F]B:F5C=#9/8FIE8W0X;W!%<75A;'-&0S9/8FIE8W1::2(L
M(")I;G0 ;V)J96-T+D]B:F5C="YO<\$5Q=6%L<RAC;&%S<R!/8FIE8W0I(B!=
M+ T*"0E;(")?1#1T97-T,F1G1\$9I660B+" B9&]U8FQE(&1E;&5G871E*&EN
M="P +BXN*2!T97-T+F1G(B!=+ T*"0E;(")?1#1T97-T-3A?7U0Y9F%C=&]R
M:6%L5F1E-C<V-C8V-C8V-C8V-C8X-C Q-#!61S5A835?-C V-39C-F,V9E90
M=FY:.69A8W1O<FEA;&8B+" B9FQO870 =&5S="YF86-T;W)I86PA*&1O=6)L
M92 T+C(P,# P,"P 8VAA<ELU72!<(FAE;&QO7")C+"!V;VED*B!N=6QL*2YF
M86-T;W)I86PB(%TL#0H)"5L (E]\$-'1E<W0Q,#%?7U0Y9F%C=&]R:6%L5F1E
M-C<V-C8V-C8V-C8V-C8X-C Q-#!6<F,Y83DY.3DY.3DY.3DY.60Y,#\$T,# P
M,# P,# P,# P,# P8S P,#0P5D<U86\$U7S8X-C4V8S9C-F964'9N6CEF86-T
M,# L(&-D;W5B;&4 -BXX,# P,# K,RXP,# P,#!I+"!C:&%R6S5=(%PB:&5L
M;&]<(F,L('9O:60J(&YU;&PI+F9A8W1O<FEA;"( 72P-" D)6R B7T0T=&5S
M=#,T7U]4,V)A<E9',W5W,U\V,38R-C-61S-W9#-?-C0V-38V6C%X:2(L(")I
M;G0 =&5S="YB87(A*'=C:&%R6S-=(%PB86)C7")W+"!D8VAA<ELS72!<(F1E
M9EPB9"DN>"( 72P-" D)6R B7T0X9&5M86YG;&4T=&5S=\$9,0S9/8FIE8W1,
M1\$9,:5II6FDB+" B:6YT(&1E;6%N9VQE+G1E<W0H;&%Z>2!C;&%S<R!/8FIE
M8W0L(&QA>GD :6YT(&1E;&5G871E*&QA>GD :6YT*2DB72P-" D)6R B7T0X
M9&5M86YG;&4T=&5S=\$9!:5AI(BP (FEN="!D96UA;F=L92YT97-T*&EN=%M=
M("XN+BDB72P-" D)6R B7T0X9&5M86YG;&4T=&5S=\$9,06E8:2(L(")I;G0
M9&5M86YG;&4N=&5S="AL87IY(&EN=%M=("XN+BDB72 -" E=.PT*#0H)9F]R
M96%C:" H:2P ;F%M93L =&%B;&4I#0H)>PT*"0EC:&%R6UT <B ](&1E;6%N
M9VQE*&YA;65;,%TI.PT*"0EA<W-E<G0H<B ]/2!N86UE6S%=+ T*"0D)(G1A
M8FQE(&5N=')Y(",B('X 1F]R;6%T*")[?2(L(&DI('X (CH )R( ?B!N86UE
M6S!=('X (B< 9&5M86YG;&5S(&%S("<B('X <B!^("(G(&)U="!I<R!E>'!E
H8W1E9"!T;R!B92 G(B!^(&YA;65;,5T ?B B)R(I.PT*#0H)?0T*?0``
`
end
```
Apr 13 2008