I would like to build a remailer too, and I wanted to try and
understand how Hal's remailer works first. Also, do you know if
there is code available for any other remailers in shell script
or C?
Thanks a lot,
Avi Rubin
-----------
Chael Hall wrote a remailer in C. He should be willing to share his
code. Ask on the list.
Eric
The code that is included here was not intended for release yet.
There are several bugs and oversights. I have been going through a
complete redesign of Send-Mail (SM), but haven't coded any of it yet.
What is here is the old source patched to do most of what I want it to
do. You can see that there is support for a file processor and indeed
PGP works okay with it, but I don't *like* the way they work together,
so I do not recommend using the processor feature. In the redesigned
version, the remailer operator can setup as many file processors as
he/she wants. A file can be processes several times before it gets
sent.
Most of the important stuff that would differ can be set in the
.send-mailrc file (which should be in the user's home directory, it
can be linked to another place) or is defined at the beginning. Let
me know what you think; I am open to suggestions.
Chael Hall
begin 600 send-mail.tar.Z
M'YV0<\JX(=.B39@T;%X 6,BPH<.'$"-*G$BQ8D48-<@ %C(<<8-T)ZY AC
MQHV1)%-R! "CQ@R7,5RZG,$R1LP9-@" J&&QI\^?0(-"!$&4:$< ;M[<05-&
M3AFA#\_4*3.'#M2K#$'$T-D1!-:O8,.*'5LQX,""!Q,V";.FC!F$3\G*!1N#
MHXV5+&& %)F7HTF4*E_2;"DXIHP;+FO&>"F#Z]S'D"&:#$FY &/.FC<&!(-BD<5,&Q!LX=-*\<3,'A)DWJV_@&G'!]&/?&
M@D *)" :16XX![P/3A%'_N-P489S>EPH!QM&&<&"&$46 <=H^'6F@H%[A<@
M6@2^\=^- [+APA@*@";DD$06:219/*;U@E-AD-%&&2Z0\<881V)6%PQW'?41
M98#]U5=*,.8I49P@9/%&
M'2#<@=!]<,CQAAAAB)$?"&B$84=K=$PX1J-NG %I=W"$P1T(D0+(QI1AW(?"
M:B"X<)L<=X0A!QDIL#B0 IT&V",(H[I1:I((R3%&"BX0Y2>@8S1GVVKH<5=&
MBNJ!4,<-:L:R\*8K+;W5@J"" :U)<)XMG*71FUDI.'4
M&)'*D8<+"B0!HZ#VC<8D'9>VAFYK(O3GPL$@2"$0N9=JRNF$(5^((QL'-X=>
M'G^>X!2+]O%7!AV]@I#$BC0#VNBCKJY7Z*$CME&;=7%,5=5TNQP50HT2893&^-EG$?$M?OI^?]^.>O__YXXIJ0_S_BWU6NE*61[.4D7_*2
M2EJBIHX0!B8UD($-9+ 5O8!$!C2QDP"%-)G*6&:#0*E35T!(PLXD9S4BJ@,9
M6L.#JC3L#2Y @P].Z(84KM!<$,L#'* D0QK:D(71FL,+8O.D&,XP.2O\5FO$
M4(8SK(8I32*<"'2@ RZX@61\RB((7J "$ BAB:MQ0[-8)3&
M9M6&*&U\HQ)7]A;YD2$& W-*TZA"AQ8XI4?-:D&D=""";O'QE*CDHQ^A@#6#
M2 P$GTR+%(]WL$JR 3U9C.0(DAA'2J;!DC(8&!Y:T)S9B%)'6-RC'Z5'FH&H
M:CVQA$MN1$#+85F23[KD)70N9,:F8%($5DQF*K?815:FP97K<=D;S-"";J*1
M#FIT%C;=N$LX;G,@[@SF%*MXQ7$299EE:"89G@D"=;+3G0""YQB+DDU[MF8-
M@WH.R%K0@C2<(2E.H6@X5=E%*B@21F$P \=RH[#:2'0\M;$H1MO&4'IJLS6Z
M&I@+_*T%2$'6Z6ASB '5\>RF%(C0A"$E@ E$BO-^L^C$,$&-1;-8AQJJI"L!:8]PX^=$(UJD*;L889#J(%01V")73V.C&/1!W
M-(V2PY7C--#S;B$&=^G"#HI\7")H*@Q0EC*1R1S).*7QQS!J\I"WS%#6+'+,
M9"Z*'YGPG96!P,XPZC*:H\R&J;@F-TZH0MT4VX<=A"C+=":*@$E URAW*8PVSRU3"!A=?#BMTCV<2@AH#2P=*8UO1WNSB%.K#:U8,\
MM:6TVF8M1DI=98"UF(OLQR H=<.QFIZN(34A*N]G0&Y @:K., ;Q3-L.[MGC
MN_@T[3$X>H^34E5:57!M1RO RG$R0HJ+$.D=ARH-59,UF8^,KRAC+5$\162/
MRFH'$ @ZU6QVKM7B.18&^" &X(N&^"Y7+8,!C[A+AJAWJI"N'44
MSO"^OO+A\FVW"CB.YSP?UZ,+;_@K/Y;F>RMJS7OL-5'>#.2%T6'.,5<<0HN3
MZ+I17)E=Y'-5!HE0B8)O0JLI*VE#'G.GF&%9K>&YHIGP\YL&W>:#!*O[R'OA
M9*.F4SMV8\SE?"PX5-V??D1YQPG:Y,"]X5TZ1K#8V4CVAF&RJ6IY![ ."UL A",&HM* Z-\(NZ;$7
M+&GLLW,O?'-E=\1$D:R16[ZII,(HJ8?NY,5\0K,\A0)D+,1$G+]3=\!91<8?
MV<9#_%%H#,0\7'8RX,8?5<=[O'!H_+Z\VK,2O* A4,&<6F0N"L L2Z.,:0<@
M3!#N5,)PO*,HK%4J_)$M7',PO$,[-L/78\.WE\.8N\.?O*]0?$I+3,1GBL9\
MRL:!# ="W,0L^,1H+,593,66:,7&-<7M",A"UL61"\9:)<:H1,?% NS,W$K%6$G$7GS">'?*2-
MK,$!+ ).!W66[,NHA,Q9M,DLK,/<',.A+'\U/ 8WG+)FT,FH?',Q[,,I/,O5
M#"/%$<\! '%5RG$4V_9TX?J^[&]E@Y :MPBXP
MX-CYO=W]+95?Q(/4I> ,GH7^J8,5OM,2;KP.?B$77JT]N^'[W>%A" )%,! A
MON!7U."M?=NL0IO@&M\?F-WT/1ME<-_8C> BL!;2=.,CKI[X+>3[;3)D79/'
MUCA,GN,Y2=9@M9XC\%LK0@357077+9P+IRXHD']I*9ZEIQL;8S@\%2L1HS6X
M2"I.^W#%L;"[B^;Z2J-W,-YQLJ!V3M,@4+XP+@)%( >&DAMCL#%)B(LAQ8L^VH=P!<>:,2-E%47G/L09GWH"V_N)0;NB(;AU,4FK.4NPL
M)^DCGNPG ^&&C >:SNG'O=($1[%-\F>>%G_ ?E:YJ$6\3;*1#&SNBL,#/?"7
M3MPX ^V=;N]Y-P7G%9(YV22-WI0>P[D)56I.&_"^'<"E/-##':$;OR-P!C%IJWHQ04(_R&LPG
MA8X+NHO:T\O&P>D]J\4LMJ@<_]L?C]6M(O+N2@>E]O,3"P(CZRKE2CA%GXS-
M&RNY!^/ N!E:=WIEZ47$\S*Y%P44U"
M3\@*&].E X5%P?DILN;4K/I@RWJ%'# /8D%:V *8BBPA"$)@6[!!79@)^2!4
M(X/44%><0:$F"+^58.J$V(\11<$#H,@.J9_U*X3BT!^R0W?8RO#8
M@4@ ( (B>CH[5QUF( L<@?"L% (Z7-0#L9DB9$+C;@B:.Q54\112(K% 2Q!?
ML#OW]P1-H/:S=LSM$[8;;O<=L)W%&X<1; I60108KOS(%< :' -GW >$4A4*
MR>8J#0.#BAR,3J$HFD/F&WR"*0%*O;L'^D;>!8P36BP$#+@S, =H4P9L;?\H
M&9(]^;?RSIY-5$BMXO[IBK;7_D1 _W. 2@\ :A%JM_T6X.>#B^#O*A:R=G/X
M$E^%6WQP3R,]ODT4^915;:!\2C$]?(HQD/E45,^JBR*- 8(\O @!]>(I:7V3
MI=[MD;)'_\[B ;1][4AM43OHQ_O6$14+?@%L^)FNHU?SCA\L'"?+3[^@-8]&
M*Z!?<7B-NPT<%D"9N-NDHMWS?E51/%A&1L7Y"&%;%(X)D2?&OYK5&;,?:#PC
M8M'P>2FV!P=^&S>A8IPN+GJVGO6E$%]U#L1V]0.WHV&*C[VA^/:W=T$7=
MN !YX_3SC9Z/*E)&JYCM-*,W'(0'T1,F1PQXI$* CP)OT?$++D.AIE[8"Z5Y
M+Z4P%&[# KB7PE,V[!Z!<" 6Q_P8#F^B%6Q/\+$ WD6W]@#IH\4S7)S1+&:_
M &D;V&-D=(]9!#*>K W9>CHDGR,&=(NRD<.J?"&XV8DBV:OY=%(59;)LHI!)%GZT4*B
M,179_:1D<#2 -=)TI;,).".=Y'WTAH*I3.Y'\G:D$F%1L%.0S8'!K-GP"SF?
M=7A/4DNJB:"M%;M%YF
M&DI+AWN$VA6Z+2 %1-,6+ W_0<%%EC6H*U' J1 #G6B%6+AVUUYPPYP$-MJ.
M*-1!"76U2A,Z:S<,4:%],SJ@'%G43VM6=;#%R<530NUD(78"4!LJCKBK!880
MDB4?F83@LOB(RX$Q#;,9NFP^,H/_K0QDZL
M03BV1!MH+D/7N*.5MI(+@@!=J09S)8YSBRRB6)ZL;%DO 82T4#@H %_&$7,)
MKGY<>C25INE@-H&$B2L79FUHF"838C9(X=@+[0"];#<A4DJ>I<85*WO6LB1=
MP6FWS8%@X08&VEFB40H.8E+,GI7BM@.=E%9NR\61+['&"#5FP*Q-::%@7L%[
M"2\!9AF@4>U2J_A+XB,OAZ;6!(1.\VJRRWTI->UE& R; K,&0B NUUBF&YBS
M;NI+9!:GCL(K'^:QK)-=;B E[.XH@8)!%L0.8)
MGRP3)ZC6\M(VYH5/,(G@"0_/S> AGD7!9-$>T'-[2 _NHIZBYW@:ON3YY^"?
MO9R%+.L&,B[:!+4^$@Q(76Z-]AC*9IFUPB>@!$Z"GMK03"D!^6N]Y=1'SB*LPYQ>S;&T2> I/D)E%EE5+2Y\T
MR@QP0=B&I@C1K4P1JZ]?,L*5J2?-Y65+;6C4EUB2[%@/EZA6P6QY-%+8$C(P
M'NNA;)N:Y:D.YC:B^=/.Z.RI7Y70U70VIHD%=Y.K6:1QPF,V+1QJAY1:J "B
MR:A\F5%'ED=%@!K%E6QT,&ZBZ+52CB(<[27H*$Z@1]HX1$&:])R3@Y2/>BP_
M^D?QZ"/5H[>DD'HLQQ;KCJ;8K&CM!@_&H>^T$[5HB:20N[$^>E$0 *ZL:(9S
M-,T+*-F6DE%Y/B"G%(&NBL2YCS0W/,5-R-QQ#R[86$_/E):VP/*R4X0G3H3-
MXX-IO&=S2F!H4YPZH9>I(*E@/CT8I7!KQLMU"89(YQ_ZFVT@[+P6D'L^G;
MV:8#RU*$P#? 5\@%LBRGKD<%'(V*V@: C;FQ4X5.>J &6T@K2*J,&R/2(]B%
MIV[X6L8=\[E.6,,AP0@4T!ZT0@[( 7TL!MS4&9 >UH,.#0/R P5=#Y:*89!<
M$,@84L"BH 'I9#+H#QFP(D2UT$74,N P0< 6: '2YH&)IJNZ(OQ4"_@8H@EB
M;M00Q$]#)I*[JEB(,K4 8".:+L\_"2JCCLN<%Z(
M0G>;#><-!OF7 BDQ_X-$20%Z%'&G3?U(A7NRHE5!P?7AB1VG7 K;B!P5W&'
MY+YKC2,#XE7')5<6]SF5J6K5;R*@OK&&RXI?;2$)(PK3%6(ZN2.'6:6<5Z%R
M>RB\ 5B[Z3_LBG,A$%*"2I00BT! \,*6X LI08&HA+I VC 8"@3AN$NT(":
M( -D W("1IDPEZN)!^(**S0Q;P4YPAA=+8\$"GZ "W8'ES)0'RP9B"JD@
M'V/@J#RA0.,P7 UN6 \\,SVT!J@36)#K;'@+4N%F3($FT#.*0"H24,V$652%
M)R,LAE8P,EK6)D9\"C<09M&5$&(!BR_M,(R8B8YC%16$ID0)6=(<P >.AKNH7%F(HUJ(F],L>@:.A3XU3% (
M##J[KIK"C D#ZX&)* FBS!N!8_5%3VCO@5%1#0^\*R: 1#IJM*B!Z8@^9Y1
M&5 2235P8@\RZ961+;P-V^ ZP 8 &OE 46^K'=8<?JB[004SY&J^!V[D,!
MB >X-W*P%5!*:@VH*A:\4 J:!8M8EH=X]3)VC5K:*)14SR=%$,!B%0GD1;^
M UR9 W*%KCC8@= C/%UD@48IQ=7J._BS(LC'6#U$2,<-E(>V<+I B<"0/&"2
M*E ,BQ$H]BSVNAXLY?M0(Z@C!T*1'@HK?L;:@A_R\7"B$5-\M68!1LA9["4X
M!52 \FO.9%4@C/57<#,&GZ6XC$@\N),T2Z) S)Q4LOF"9Q"%<3LK)E^,2#FL
M(7G&'_+1!)" _$$(*T-30A2>H0"JTABIG.<EY**'*B!&\,#/)12&*$5,OHXV
M(6",AH$-^ 9*[ ?_^E[.;;I- W4%$+E;'!N-**W1@K:5T]/@))J;(?:#R7@Z
M >$_,%LB=T1N++RU)K<$VG+:3G'1<I*_=1::Q&E(ITZ!9C1,2$(O?T6D\0>$
M*AZL@[T8$4'Q[SY<]]$SFD!T2@-3PW*!7!PT2,C'VX4Z"L#LVEGYLQZF1)#-
M#0&J V&,^\!GJ<I*(0,]XPH@!#(0+%;%8;P9%V:4*2W8JP#4H/SAM^3#2EV8
M64%X)5'B1;T@Q;NY (:U,TS%-NJA>(!<9%XT*P(^;]SU>FY@^0J$YOL6#L;J
MS4EP=P@1WZJ;,79NCM642:M9)(XJ%Q#"F[N-1-J7-?",MP $.$95^!&E8<LT
M!RS ?[$ $("_S'?^I@']ZP;Z+Q8H 0!X^PI@(% %DL 0L )4M@$/ 1=0!(A
M%1B[W4&1P!A&HE $1L:$LPC#+#"+V/ H9EB_@+EBR<"@!V +4\K )ID69$ !
M2%ZWVFEQPPKBNVX!ZCS=HSLA2.WD;1SAUL BE?6B5/Z#,Y0FYJ(E396J0@?J
M+N2XNQ9WT++?+<926/# >*.D!.^BA_@S6?]$965$CF-<35EHRT3&"*?%2>9C
M4Z 9*Y5ZGZZ%4*FT#GN X9++!M!LLHBUT<E=8=K"L1ZNERM]%M%(._U@M$$4
M?&_!R+8MB3_L85'S)!2&P-@>K<?5(:*$T1WZ760,"$M$?BB%OR%:RD"V8+4*
MP!86-6.S.,A5;CC"484(EV(_C*ZD;259P92X-0A;#)$K%,3'0+/&(A9SV];0
M9*HP)8Y&@Y0.PUQ.BT@Z4!>N/.BA1P3A[T2*WPLJ=BI*F*I8%0Q<=H5EG24<
M4;@UB)>M41N$<%QKQN%6%-<85>R,WV 2?H-+>!IO&;(;;ZD1#>[%L)@::<$U
MJH4'R3'^PA9O#BB VL$$3,?&=</T1X,5.$[\1SB'M_7$ N,,UX8T#'[6L#F6
M&8D#(->8R-B!EDUMR+@]E1I98H'<*KYOVRDI"H#6XJ3@^YT&L:.]N\'8[R&Z
MH25OO3$YUL(*8#8LBJ]A*\9P-#IV?>4(IKO#*)%5:L\XJJ*&7(W:1B&T5@2:
M<@A" <8*W^+Q<#$,;N*%Q=,BWYE?8/Q+;LDR'F#DV B;
MXZ>"CJ5Q$Z;&[9A\O&.;XXOE,1:N)5UY"Z^(>YR,P? ^=@+]6+92HY9$D&WR
M0D;(SD(A?Q@U['=181MNMP$Y#@?&>N4E%TL8PJ' A#$;O4D
M<^5KHI*QQ@IIR3"M&==CF;P>:')!#KU+ ]1HBC&"DQSR /O)5%HN2X'&X_W&IH 2>5
MKIF+9NN$BP([1KO0H@,["T0B<0MR:N!%:^#H*%D>Q((:1TD<+_J8.S DA_1:
M60YETLRU82DOC="Y'LY)QTFZM!G-4";4K&3-L''>;W+M8*1+ ?4:QA*OV \R
MK@5 O+\VG>DN6AX/UKC2_F9YNXT'3&UPSG$M.I^!<+N@$9N&EKO4^4&+7FQ,
MH=7NA:YPT%FQ58IP^UY3=&M;; V:-53G0@R%*;1V/EW=>0Q/SO!LA2(%%@H0
MYWG7<(Q% BNJ+FQU< 09S6!H%^V?Q@BM;11_62 LVK<((Y*" FC1&IHR1Z.
M()*$HK\Y,W\8Z18A =4IR(-0."5LY9/&',9S,%YBD6:& ]3UQ,@:2)PKAB
M#9^8<"AI%*T LC2MQ2BN@L:=!3]]:H=&)I;27!IF=8>EH"E?+6T%,6RZ-;AI
MXZR>_P1[MK=U^MUNYKR;FU6*C%C!1EF?SKAH=&'*<$(&+.$V04.\UP"B'?0Z
MAL(1^NQF8P!AH@4U0=#0'-I',^DMQ-EBM+,5T;%Z],[J"EV9L;2*WM#N]JC>
M!Z/S+%2&E!#*&0CQ#IIWLX*#->'8.$2943B*5TOY1D#,D+=O 4QAF18$,0C'
M]^6SGMHIP%X:+8MIBBV&"S)X#_-9-!,MVH#Y4 T*HMOY&6&Q@>M J$@DUNQC
M_ VAQ9.-W]!",X'64+_69@)EC\IJ'C4LAXD$"QU,/O"PJDLXW6$>H]*A=T9T
M$FVR"99LS-IFJR S*W&*NVES;2;MM-^VE [:DOMJ4VU
MJ[;5OMI8.VMK[:WMM =&T+R;UC6*73E@OZ8V]*=K
M>UT"U+)Y3\]FW'Z:7E..OFV%RC7EMKG@EWL*;-YML9DZG\0XC&YN,\Q=M^$E
M-QG*KG28(VYHYLWM0=W@IM9$J'Q[H!).@F@XRP#B1 &*<\PP3JH<*!YGY)R<
M<%H;(]1I:LXV6O7IG,^JTY7.T%D3"[<=G-VBTW:OSM9ICM4BMC2F_,K%L\!1Z$H7YB3U+D%D;
M0=73*U;O\6!/]>$397R&JWSFR0/*M0#3!^6@Z[-K^4GV7;80I?,:H6J+;050
M1PFWYO?^II0$U%*>$O:=*3=E$8U5;))-T2=5*#TE:!:AH*;)@N),R91!%Y-(A/4<%819DI
M%I58>8>+CIG[(PRO=VB$KHL25=K2\VU*UZBKU%]K[HV>/^X5N+$@'46F6;R'
M.U(IBDOCLBY]E=NQEV[Q0+I.XK(PA>.']'MB)T5:1U=C(R6EOS1D1%)(F$HI
M:0*SI! #DV[.@I+69+@4VG7+$Y1B<6?G2]GXP#BE_B&5*B=6.KTP^1CO6;/4
MIUFU.?Y+!:D;_^)V[;1E%4!:RNLX,$'EL:UG%=,1B,:UB'W-(E:4WCG3G8T0
M8>0TK:;,M+@ZU$X4)SR@@YNHR966LU-]I;;BZ3E-YMIGG;:V=OI.GZYP1UF;O$\82YP^9Z&N80U2K=VXYZ
MZ: W0YGG'G4_@-1Q-VY! $E% 2;U6"\GE1I<#5>A>ZEY(*8N55I14W4J3D5^
M.S4C_]2@2C_L W_=;LJZ9"A5IDH5)O)3=0,7?;]-U:IZ5;,J#;6J7[46R8&O
M"A?"JH[CJ&6UI9Y5N2:J<<-:11EME?V.5CH@5TMAH;.K8RF\]72#OE?[:DTR
M;^"-5@S6]5)8GT]!?W**5;OY5<>JTC&09'T1E+4N6[R0GEDWJTT"*9[5'(/6
MJJO3VTYI[3 2XZD36/S*6HF":T4S[MG!Z>5'G8!L*V[5K;Q5;.X,X$I4AZLP
M/Z[)%<!Y14:I ;DB"!]W 5:^^K=T:EY1*'D]<4ES6_*10O==,71\K>F5Z<1%
MN+&MXM IBXOLW;6]RO7W>MDI$WTE?'?P8P)!_*I?BUQJE>F8E>M>]K9]7[>;
M-T:P826^-E@ $F&E=H75$FH"PY($#0LF,(*')1.%(8*(6!)K8E%LF^#:$X'%
MMMBI+4+N!'1?VG;7S;7K3ZL@K/#I';+^ILA"C"-++VP%G]V[!H)A6Y2CTAJF
M;)6]LB/-&N=_;-\5=6N@M>?:
M0OM9UM!DU7*A-12'-BC.\T6KDT\RI$V_D]9:AQK2JV0WK7$F%;/X98!:HB!J
M9S,UHK6M6%V]8GG5:BVSQ9ZUIW94V-I DVM%T:Y]5TK!UW9:\A'B>T2QA0O'
M-G0FVV5+G0_&EDZUKYC:VHKNC&VIT8O7T@LY"(';_<!V$8*YC2MS!>RN6W*+
M$$2TO 4VG9=.4]0TU"G(@WF /KE!\@+%^XH5;5APN#>X4
MW1GEKFF+.R$T+4;^QP/ZI'S1]LKKT@&GNN&(X70S184P^@*##&M=$$ TTT#3G=63/BI&Y2M+N(\
M+R\G'.^D*X]NLWS8I?3 FFA):.RLC6MUE?<1;C<'7]^Y*Z,?M'R^RGZF[T*5
M,1)X.8EX+KQ-00,=7S1K.8]%XU5TI2'S1MZTP)K9;^6]O)GW.#<'SFM^6X/U
M?;7VG<.;WJ/2652O57:]GSKVSM[:2P9N;VO(O9&V;5 ,0\P6$+$Y'KYNI?BN
M!X;+(I+O;(B_W/?YWO#HNW!&!/4]]_\A AW)?'2*M
M^G6K5(%;<!OE&X"=;_WE)/BW#1!@ _Q_2;X"=KXKO_\B8)<_\>FO!(; +D "
M4V +C(%;@P:.,8W$ S?YI",01G!>-\%#A\^F8*80CTGR"^;-\1I;<* I3"IL
ML"V:$'U7\I;I;)V9@SU9"\MWJ->1Y0&6CL_RJRZ[\G8MP^ =G['?\FB>RUC=
M"VMUA12&5X1?[L^GFJ6@X7+U6MFPFMW(BMDBTV$[O!Y>O!Y>#\:B#]\,3SZ9
M,;.W+\03XA#OY3>HB-<#(]X9YLI90&*PD3PGL4:>/Q-Y17IN)9NT"#*>CGRA
MN&6^9$#]C%>Z:&;%2)Y=L?WM/FQKL8#!Q4Q!%]-:>,SV-S5Z2/3$V#H8X[B/
MC)_N,B9KS5@LB_UHS(1GM*9.*1J>U]-J;GR'OCXXWKJJ/_F'?50X]G=2V7?^
MUWE6JWW>//NO,#U.R7!_\LC]Q7R7\_(_WLCFB5?8:;MOD/^R?];["YGONV;#
M_"K0#.#WTH(?1N:8:0V@GTH5_PEC'QF\%9*=6B/98U:2968TFN_G&IP5GAEY
MX7F%9K?9(!63T6>!0N[GG=UDJIE.5IGY?P7@60&;!66CA8D'7!QE&.#BH)3%
M9=#6;L920&78F"XVE=U:P-^'=[E4+%M9?,:U?_Z8+L:7S7\?H/V7]UD/^1]AYO=9#T^7S@"'
M 8!SF "(^#F O4YD-G1,9B*9JW69/8"/W_,WFE& +!DU8IN58BD9!VB:35G\
M&4ZVFG$@/-D56)/$9BE@LY:?57]>Q4LFG^EFH +Y1P/^9C9@<$:ZY8"^6%8F
MEP%B/J ET9RA:!^:KW8$HGW42-"WG5D'.1KGL*.)9W!->>;:. L6F: EI[5G
M^,)[%@%F@IS:?+8HV&>X 7XVP>AG#@Y_9JH%9O^9B7*IW%S.QTE1H$T'!UJ?
MYIDH:!$/'="J%7MG'_2GZ\EJ)1KUMZ3A:E1>,[BKF6?2&;'WJT6#$-HT**Q5
M@Q8:>,6#;(.K((LVJ!UKS^ W:'>!@DB7<\*=02.TB(X&GHEG5PBI$:1!"A]%
MD08+\A2RH,\0JEV# MV3AH9Y;K9"HD9(5&D&@K'VH@D,M-:6MC,H9O\&XY>=
MC6DGQ=;G\Z$&ZT2:%G!%:JH@H!6G66ISFJ26J=UIGICYLZ>=@\K@0^@L_&G"
MGZW@$#9I$&&AMJTI68C:1$B-,&HC@@R&B]16B=ZD)A*^@I@:.@6?X6;Z6+I6
MA85JL16IMFO]@E=9JK8,KFIP0#OX"4J#7]8X& K6:C,AKY:KO0;H((SF#5Z%
MX6!62*)MA=1?5\@-(FM;1D;'K/E@S]J%08!(:VL6,9?N86LJ@Z$6D8D WEIE
M1CZ$:T,'X;&!F6M6F5*XKKU;M!\MUF.]:STAR 9ST6N3R+V6!N1K?4;QQ2)
M#/[:?3"D14YPP< &;:$9!ML*@; 9" H;?M1A;""#
MV[=RG12.X<0VLI4[&][)QNTA0?F8RN8ML&PODD*"$Z%)$Q#0MB();4V!BQ1P
M@4A04G.4LTUR*QLTU1[Y; "/<=@E-4!,4EY4M"UR%-!R@P)<=^!A>"@>CH?D
*87EH'IZ'Z.%U!QLT
end