Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!hp-pcd!hplsla!davidr From: davidr@hplsla.HP.COM (David M. Reed) Newsgroups: comp.lang.pascal Subject: Re: Looking for a PD Pascal Pretty-Print Program Message-ID: <6490008@hplsla.HP.COM> Date: 25 Jul 90 00:56:50 GMT References: <1990Jul24.030149.27388@hoss.unl.edu> Organization: HP Lake Stevens, WA Lines: 866 One thing this program lacks that I would like, but have not taken the time to add, is to "fix" indentation. (This program only adjusts the CASE of words and the space between words to make it easier to read.) #---------------------------------- cut here ---------------------------------- # This is a shell archive. Remove anything before this line, # then unpack it by saving it in a file and typing "sh file". # # Wrapped by David Reed on Wed Jun 20 11:25:01 1990 # # This archive contains: # pformat.doc pformat.pas # # Error checking via wc(1) will be performed. # Error checking via sum(1) will be performed. LANG=""; export LANG PATH=/bin:/usr/bin:$PATH; export PATH if sum -r /dev/null 2>&1 then sumopt='-r' else sumopt='' fi echo x - pformat.doc cat >pformat.doc <<'@EOF' p F O R M A T ~~~~~~~~~~~~~ rel 1.01 16 November 1984 ________________________________________________________________ Author: Andy Decepida PC1171 ---------------------------------------------------------------- Function : pFORMAT reads in an ASCII text file, assumed to contain a syntactically correct Turbo Pascal program (source), and generates a copy with alterations in the case of the letters that comprise both the contained reserved words and non- reserved words as per the user's choice. pFORMAT will NOT (as of this release) indent logical and physical blocks in a proper hierarchy. Added by David M. Reed: pFORMAT will add white space to make the text more readable (like written English). Example: junk:=SIN(last)*first-(first/last); becomes junk := SIN (last) * first - (first / last); I also added ability to specify the input and output filenames on the command line as parameters. NOTE: pFORMAT will not change text within quotes or comments. The user is proffered several choices for the formatting of the output file. These are outlined below. Options available for PASCAL reserved words (including Turbo Intrinsics and extensions: o UPPER-CASE/Capitalize all reserved words; o LOWER-CASE all reserved words; or, o Keep the reserved words in an AS-IS (read from the original file) state. Options available for Turbo Pascal intrinsics and extensions to Pascal: o UPPER-CASE/Capitalize all intrinsics & extensions; o LOWER-CASE all intrinsics and extensions; o Keep the intrinsics and extensions in an AS-IS state; or, o Use the BORLAND manual type setting of the intrinsics and extensions (e.g., "TextColor" instead or "textcolor" or "TEXTCOLOR"). Options available for user-defined identifiers (excluding text enclosed in the string delimiter [the apostrophe] and text enclosed in comment delimiters [either the opening/closing brace or the parentheses-asterisk combination]): o UPPER-CASE; o LOWER-CASE; or o AS-IS. REMARKS: This is a slow program, don't expect too much from it in terms of speed. However, for what it will do for you it is suitable. pFORMAT was originally written by the author in UCSD Pascal for the IBM implementation of the p-SYSTEM. For those of you who know what that means, this is an improvement in speed as it is. When & if the author manages to familiarize himself with BLOCKREAD & BLOCKWRITE, we'll talk more speed then. pFORMAT can handle strings and comments properly (that is, the program will leave them as is!). Single- and multi-line comments are both accomodated. Hint, hint...if you wish a portion of your code to be untouched by pFORMAT (say you want to visually isolate/highlight some lines) comment them out prior to submission to this program. "pFORMAT" stands for p(retty)-FORMAT(ter. Finally, pFORMAT is being released by the author to the public domain via PCCanada and other BBS's. It is requested by the author that the ethics that have applied to other public domain programs/utilities be applied to pFORMAT. Failing that, be guided by your conscience. andy j s decepida 16 Nov 1984 @EOF set `sum $sumopt /dev/null 2>&1 if [ -f /tmp/uud$$ ] then rm -f /tmp/uud$$ unpacker=uudecode else echo Compiling unpacker for non-ascii files pwd=`pwd`; cd /tmp cat >unpack$$.c <<-'EOF' #include #define DEC(c) (((c) - ' ') & 077) main() { int n; char dest[128], a,b,c,d; scanf("begin %o ", &n); gets(dest); if (freopen(dest, "w", stdout) == NULL) { perror(dest); exit(1); } while ((n=getchar()) != EOF && (n=DEC(n))!=0) { while (n>0) { a = DEC(getchar()); b = DEC(getchar()); c = DEC(getchar()); d = DEC(getchar()); if (n-- > 0) putchar(a << 2 | b >> 4); if (n-- > 0) putchar(b << 4 | c >> 2); if (n-- > 0) putchar(c << 6 | d); } n=getchar(); } exit(0); } EOF cc -o unpack$$ unpack$$.c rm unpack$$.c cd $pwd unpacker=/tmp/unpack$$ fi echo x - pformat.pas '[non-ascii]' $unpacker <<'@eof' begin 644 pformat.pas M4%)/1U)!32!P9F]R;6%T("A)3E!55"P@3U544%54*3L*"GLD0RU]"@I["B @ M05542$]2.B @86YD>2!J(',@9&5C97!I9&$*(" @(" @(" @(" Q-B!.;W8@ M,3DX- H*("!$15-#4DE05$E/3CH@4F5A9',@:6X@82 N4$%3('1E>'0@9FEL M92!A;F0L(&1E<&5N9&EN9R!O;B!T:&4@=7-E6QE+"!A;F0@=7-E<@H@(" @(" @(" @(" @ M(" @("!D96-L87)A=&EO;G,@:6X@;&]W97(M8V%S92X@($%D9&5D('!A5]O=71P=70@.B!415A4 M.PH*("!T;VME;B @(" @(" @(#H@05)205D@6S$N+F%RF5=($]& M(%-44DE.1R!;,C!=.PH*("!R97-?8V%S92P*("!N;VY?7!ERHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ?0H*("!04D]#14154D4@:6YI=%]A M3L*("!["B @("!I;FET:6%L:7IE('1H92!R97-E2!I="!I6]U+"!A7!E('-E='1I;F<@ M6YC: H@(" @=VET:"!T M:&4@0T%312!S96QE8W1O2!T;R!F:6YD(&$@8V]R2!B96EN9R!P M7T*(" @('1O:V5N(%L@(#%=(#H]("=!0E-/3%54 M12<["B @("!T;VME;B!;(" R72 Z/2 G05)#5$%.)SL*(" @('1O:V5N(%L@ M(#-=(#H]("=!4U-)1TXG.PH@(" @=&]K96X@6R @-%T@.CT@)T%56$E.4%12 M)SL*(" @('1O:V5N(%L@(#5=(#H]("=!55A/55105%(G.PH@(" @=&]K96X@ M6R @-ET@.CT@)T),3T-+4D5!1"<["B @("!T;VME;B!;(" W72 Z/2 G0DQ/ M0TM74DE412<["B @("!T;VME;B!;(" X72 Z/2 G0D]/3$5!3B<["B @("!T M;VME;B!;(" Y72 Z/2 G0E5&3$5.)SL*(" @('1O:V5N(%L@,3!=(#H]("=# M3%)%3TPG.PH@(" @=&]K96X@6R Q,5T@.CT@)T-,4E-#4B<["B @("!T;VME M;B!;(#$R72 Z/2 G0T].0T%4)SL*(" @('1O:V5N(%L@,3-=(#H]("=#3TY) M3E!44B<["B @("!T;VME;B!;(#$T72 Z/2 G0T].3U544%12)SL*(" @('1O M:V5N(%L@,35=(#H]("=#3TY35%!44B<["B @("!T;VME;B!;(#$V72 Z/2 G M0U)415A)5"<["B @("!T;VME;B!;(#$W72 Z/2 G0U)424Y)5"<["B @("!T M;VME;B!;(#$X72 Z/2 G1$5,151%)SL*(" @('1O:V5N(%L@,3E=(#H]("=$ M14Q,24Y%)SL*(" @('1O:V5N(%L@,C!=(#H]("=$3U=.5$\G.PH@(" @=&]K M96X@6R R,5T@.CT@)T5814-55$4G.PH@(" @=&]K96X@6R R,ET@.CT@)T58 M5$523D%,)SL*(" @('1O:V5N(%L@,C-=(#H]("=&24Q%4$]3)SL*(" @('1O M:V5N(%L@,C1=(#H]("=&24Q%4TE:12<["B @("!T;VME;B!;(#(U72 Z/2 G M1DE,3$-(05(G.PH@(" @=&]K96X@6R R-ET@.CT@)T9/4E=!4D0G.PH@(" @ M=&]K96X@6R R-UT@.CT@)T92145-14TG.PH@(" @=&]K96X@6R R.%T@.CT@ M)T953D-424].)SL*(" @('1O:V5N(%L@,CE=(#H]("='151-14TG.PH@(" @ M=&]K96X@6R S,%T@.CT@)T=/5$]862<["B @("!T;VME;B!;(#,Q72 Z/2 G M1U)!4$A"04-+1U)/54Y$)SL*(" @('1O:V5N(%L@,S)=(#H]("='4D%02$-/ M3$]234]$12<["B @("!T;VME;B!;(#,S72 Z/2 G1U)!4$A-3T1%)SL*(" @ M('1O:V5N(%L@,S1=(#H]("='4D%02%=)3D1/5R<["B @("!T;VME;B!;(#,U M72 Z/2 G2$5!4%-44B<["B @("!T;VME;B!;(#,V72 Z/2 G2$E215-#3TQ/ M4B<["B @("!T;VME;B!;(#,W72 Z/2 G24Y,24Y%)SL*(" @('1O:V5N(%L@ M,SA=(#H]("=)3E-%4E0G.PH@(" @=&]K96X@6R S.5T@.CT@)TE.4TQ)3D4G M.PH@(" @=&]K96X@6R T,%T@.CT@)TE.5$5'15(G.PH@(" @=&]K96X@6R T M,5T@.CT@)TE/4D5354Q4)SL*(" @('1O:V5N(%L@-#)=(#H]("=+15E04D53 M4T5$)SL*(" @('1O:V5N(%L@-#-=(#H]("=,14Y'5$@G.PH@(" @=&]K96X@ M6R T-%T@.CT@)TQ/3D=&24Q%4$]3)SL*(" @('1O:V5N(%L@-#5=(#H]("=, M3TY'1DE,15-)6D4G.PH@(" @=&]K96X@6R T-ET@.CT@)TQ/3D=3145+)SL* M(" @('1O:V5N(%L@-#==(#H]("=,3U=6241%3R<["B @("!T;VME;B!;(#0X M72 Z/2 G3%-43U544%12)SL*(" @('1O:V5N(%L@-#E=(#H]("=-05A!5D%) M3"<["B @("!T;VME;B!;(#4P72 Z/2 G34%824Y4)SL*(" @('1O:V5N(%L@ M-3%=(#H]("=-14U!5D%)3"<["B @("!T;VME;B!;(#4R72 Z/2 G3D]2359) M1$5/)SL*(" @('1O:V5N(%L@-3-=(#H]("=.3U-/54Y$)SL*(" @('1O:V5N M(%L@-31=(#H]("=/5510550G.PH@(" @=&]K96X@6R U-5T@.CT@)U!!0TM% M1"<["B @("!T;VME;B!;(#4V72 Z/2 G4$%,151412<["B @("!T;VME;B!; M(#4W72 Z/2 G4%)/0T5$55)%)SL*(" @('1O:V5N(%L@-3A=(#H]("=04D]' M4D%-)SL*(" @('1O:V5N(%L@-3E=(#H]("=204Y$3TU)6D4G.PH@(" @=&]K M96X@6R V,%T@.CT@)U)!3D1/32<["B @("!T;VME;B!;(#8Q72 Z/2 G4D5! M1$Q.)SL*(" @('1O:V5N(%L@-C)=(#H]("=214-/4D0G.PH@(" @=&]K96X@ M6R V,UT@.CT@)U)%3$5!4T4G.PH@(" @=&]K96X@6R V-%T@.CT@)U)%3D%- M12<["B @("!T;VME;B!;(#8U72 Z/2 G4D5014%4)SL*(" @('1O:V5N(%L@ M-C9=(#H]("=215=2251%)SL*(" @('1O:V5N(%L@-C==(#H]("=325I%3T8G M.PH@(" @=&]K96X@6R V.%T@.CT@)U-44DE.1R<["B @("!T;VME;B!;(#8Y M72 Z/2 G5$585$)!0TM'4D]53D0G.PH@(" @=&]K96X@6R W,%T@.CT@)U1% M6%1#3TQ/4B<["B @("!T;VME;B!;(#7T*"GLJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*GT*"B @4%)/0T5$55)% M('-E=%]C=7)S;W(@*'-I>F4@.B!C=7)S;W)?PH@(" @8W5R M"P@8G@L(&-X+"!D>"P@ M8G L('-I+"!D:2P@97,L(&9L86=S(#H@24Y414=%4CL*(" @($5.1#L@>V]F M(%)E9U]086-K?0H*("!605(*(" @(')E8U]P86-K(" @(#H@(')E9U]P86-K M.PH*("!"14=)3@H@(" @7!E('-E" Z/2 D,C P,#L*(" @($5.1#L@>T-!4T4@4VEZ92!/1GT*"B @("!);G1R M("@D,3 L(')E8U]P86-K*2 @(" @('MC86QL('9I9&5O($DO3R!23TT@8V%L M;'T*("!%3D0["@I[*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BI] M"@H@($953D-424].(&ES7W-P96-I86Q?8VAAPH@(" @5%)512!I9B!#:"!IPH@(" @ M2 Z($-(05(["@H@($)% M1TE."B @("!74DE412 H)R!;>2]N72#^("7-?>65S(#H]("AG971?8VAAT5V86QU871E7U5S97)?0VAO:6-E?0H@(" @5U))5$5,3CL*(" @ M(%=2251%("@G(%EO=2!C:&]S92 G*3L*(" @(%1E>'1#;VQO'1"86-K1W)O=6YD("@W*3L*(" @($-!4T4@8V1?8VAA7!E('-E='1I;F7-?>65S.PH*(" @ M(" @5U))5$5,3CL*(" @(" @4D5014%4"B @(" @(" @5U))5$5,3CL*(" @ M(" @("!74DE414Q..PH@(" @(" @(%=2251%3$X@*"<@_B!4=7)B;R!087-C M86P@17AT96YS:6]NT-H86YG95]$969A=6QTPH@(" @%T@*2 I(#P@;&5N(%1(14X*(" @(" @;F5X M=" Z/2!#3U!9("AW;W)K7W1E;7!L871E+ H@(" @(" @(" @(" @(" @(" H M=&]K96Y?;&]C;B K("A,14Y'5$@@*'1O:V5N(%MI;F1X72 I("D@*2P@,2D* M(" @($5,4T4@;F5X=" Z/2 G+B<["@H@(" @248@=&]K96Y?;&]C;B ^(#$@ M5$A%3B!"14=)3@H@(" @("!P7=OTUARHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ?0H*(%!23T-%1%5212!D;U]T M=7)B;U]E>'1E;G-I;VX@*%9!4B!E>'1E;G-I;VX@.B!G;&]B86Q?T1O7U1U'1E;G-I;VX@.CT@)T%B'1E;G-I;VX@.CT@)T-O;D]U=%!T'1E;G-I;VX@.CT@)T-O;G-T4'1R)SL*(" @(" Q-B Z(&5X=&5N M'1E;G-I;VX@.CT@)T-R M=$EN:70G.PH@(" @(#$Y(#H@97AT96YS:6]N(#H]("=$96Q,:6YE)SL*(" @ M(" R,2 Z(&5X=&5N'1E M;G-I;VX@.CT@)T9I;&50;W,G.PH@(" @(#(T(#H@97AT96YS:6]N(#H]("=& M:6QE4VEZ92<["B @(" @,C4@.B!E>'1E;G-I;VX@.CT@)T9I;&Q#:&%R)SL* M(" @(" R-R Z(&5X=&5N'1E;G-I;VX@.CT@)T=E=$UE;2<["B @(" @,S @.B!E>'1E;G-I;VX@.CT@ M)T=O=&]862<["B @(" @,S$@.B!E>'1E;G-I;VX@.CT@)T=R87!H0F%C:T=R M;W5N9"<["B @(" @,S(@.B!E>'1E;G-I;VX@.CT@)T=R87!H0V]L;W)-;V1E M)SL*(" @(" S,R Z(&5X=&5N'1E;G-I;VX@.CT@)TEN3&EN92<[ M"B @(" @,SD@.B!E>'1E;G-I;VX@.CT@)TEN'1E;G-I;VX@ M.CT@)TME>5!R97-S960G.PH@(" @(#0T(#H@97AT96YS:6]N(#H]("=,;VYG M1FEL95!O'1E;G-I;VX@.CT@)TQO;F=&:6QE4VEZ M92<["B @(" @-#8@.B!E>'1E;G-I;VX@.CT@)TQO;F=3965K)SL*(" @(" T M-R Z(&5X=&5N'1E;G-I;VX@.CT@)TYO'1E;G-I;VX@.CT@)TYO4V]U;F0G.PH@(" @(#4V(#H@ M97AT96YS:6]N(#H]("=086QE='1E)SL*(" @(" U.2 Z(&5X=&5N'1E;G-I;VX@.CT@)U5P0V%S92<[ M"B @(" @-S,@.B!E>'1E;G-I;VX@.CT@)U5S2<["B @(" @.#4@.B!E>'1E;G-I;VX@.CT@)T5R87-E)SL*(" @ M(" X-R Z(&5X=&5N'1E;G-I;VX@.CT@)TU31&]S M)SL*(" @(" Y,B Z(&5X=&5N'1E;G-I;VX@.CT@ M)T%D9'(G.PH@(" @,3 Q(#H@97AT96YS:6]N(#H]("=">71E)SL*(" @(#$P M-2 Z(&5X=&5N'1E;G-I;VX@ M.CT@)T1R87'1E;G-I M;VX@.CT@)TAA;'0G.PH@(" @,3$T(#H@97AT96YS:6]N(#H]("=);G1R)SL* M(" @(#$Q-B Z(&5X=&5N'1E M;G-I;VX@.CT@)TUO=F4G.PH@(" @,3$X(#H@97AT96YS:6]N(#H]("=0;&]T M)SL*(" @(#$Q.2 Z(&5X=&5N'1E;G-I;VX@.CT@)U-E96LG.PH@(" @,3(T(#H@97AT96YS:6]N(#H]("=3 M<7)T)SL*(" @(#$R-2 Z(&5X=&5N'1E;G-I;VX@.CT@)U-W87 G.PH@(" @,3,T(#H@97AT96YS:6]N(#H] M("=!=7@G.PH@(" @,3,V(#H@97AT96YS:6]N(#H]("=#;VXG.PH@(" @,30T M(#H@97AT96YS:6]N(#H]("=+8F0G.PH@(" @,30U(#H@97AT96YS:6]N(#H] M("=,'1E;G-I;VX@.CT@ M)TQO)SL*(" @(#$W-B Z(&5X=&5NT-!4T4@26YD>"!/1GT*($5.1#L@('M$;U]4 M=7)B;U]%>'1E;G-I;VY]"@I[*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BI]"@H@("!04D]#14154D4@9&]?%T["B @(" @1$5,151%("AI M;U]T96UP;&%T92P@=&]K96Y?;&]C;BP@3$5.1U1(("AT;VME;B!;:6YD>%T@ M*2 I.PH@(" @($E&(')E'1E;G-I;VX@*'1E;7 I.PH@(" @($E.4T525" H=&5M<"P@:6]?=&5M M<&QA=&4L('1O:V5N7VQO8VXI.PH*(" @14Y$.PH*>RHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ?0H*(" @4%)/0T5$55)%('1A8FQEW!A='1E%T@*3L*(" @(" @ M(" @=&%B;&5S96%R8V@@(" @(" @(" @("![" Z/2!I;F1X("L@,3L@ M>VYO('!A='1E5]S:7IE*2!!3D0@*'1O:V5N7VQO8VX@/2 P*2 I.PH*(" @14Y$.PH*>RHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ?0H*(" @4%)/0T5$55)% M(&9I;F1?=&]K96Y?;6%T8V@["@H@("!"14=)3B![1FEN9%]4;VME;E]-871C M:'T*(" @("!215!%050@(" @("![97AH875S="!A;&P@:V5Y=V]R9"!O8V-U M5!R97-S960@5$A%3B!"14=)3@H@(" @(" @(" @(%1E>'1#;VQOV1O('-TRW-T MR!)1B!I;G-ER!04D]#14154D4@RHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ?0H*("!04D]#14154D4@<&%R M%]C;VUM96YT7W-TRHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ?0H*("!04D]#14154D4@=F5R:69Y7V1E9F%U M;'1?'1#;VQO'1"86-K1W)O=6YD("@Q M*3L*(" @(%=2251%3$X@*"=/=71P=70@1FEL92 G+&]U=%]F:6QE7VYA;64L M)R2]R97-E6QE(&%N9"7!R97-S/R'1#;VQO'1" M86-K1W)O=6YD("@W*3L*(" @(%=2251%3$X@* H@("<@(" @(" @(" @(" @ M(" @("!4=7)B;R!&;W)M870@6S$N,#%=("T@0&YD>6IS9&5C97!I9$ @,3DX M-"!.;W8@,38@(" @(" @(" @(" @("<*(" @(" @(" @(" @*3L*("!%3D0[ M"@I[*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BI]"@H@(%!23T-% M1%5212!G971?:6YP=71?;F%M93L*"B @0D5'24X@>T=E=%]);G!U=%].86UE M?0H@(" @4D5014%4"B @(" @(%=2251%3$X["B @(" @(%=2251%(" H)TYA M;64@;V8@5'5R8F]005-#04P@'0@9FEL92 @KR G*3L*(" @ M(" @248@*'!A5]O=71P M=70I('LD22M].PH*(" @(" @;VL@.CT@*$E/4F5S=6QT(#T@,"D["@H@(" @ M("!)1B!.3U0@;VL@5$A%3B!"14=)3@H@(" @(" @(%-O=6YD("@V,#DY*3L* M(" @(" @("!$96QA>2 H-# P*3L*(" @(" @("!$96QA>2 H-# P*3L*(" @ M(" @("!3;W5N9" H-C P*3L*(" @(" @("!.;U-O=6YD.PH@(" @(" @(%=2 M251%("@G56YA8FQE('1O(&]P96X@9FEL93H@)RD["B @(" @(" @3F]R;59I M9&5O.PH@(" @(" @(%=2251%("AO=71?9FEL95]N86UE*3L*(" @(" @("!) M1B H<&%R86UC;W5N=" ^(#$I(%1(14X@=7-E3L*"B @4D5014%4"B @("!7:6YD;W<@*#$L(#$L(#@P+" R-2D[ M"B @("!';W1O6%D@*#$L(#$I.PH@(" @0VQR4V-R.PH@(" @5]D969A=6QT7W-E='1I;F=S.PH@(" @5VEN9&]W("@Q M+" Q+" X,"P@,C0I.PH@(" @1V]T;UA9("@Q+" Q*3L*(" @(&)A;FYE'1" M86-K1W)O=6YD("@Q,"D["B @("!P'1?9FEL92P@ M:6]?=&5M<&QA=&4I.PH@(" @("!)1B H:6]?=&5M<&QA=&4@/#X@)R2 H,3 P,"D["B @("!74DE412 H8F5L M;"P@)U%U:70@<$9/4DU!5"