Mailing List Archive

Source Filters 1.07
After a long pause, here is another drop of the Source Filters.

Changes since 1.06:

* the C function, filter_read now returns the following status:

< 0 Error
= 0 EOF
> 0 OK

* exec now uses the non-blocking IO constants from Configure. Thanks
to Raphael for writing the dist module and to Andy for including it
in Configure.

* The decrypt filter has been enhanced to detect when it is
executing as a dynamically linked module and if DEBUGGING is
enabled. Thanks to Tim for providing the dynamic module test.

* Tim provided a pile of bug fixes for decrypt.xs

* Filter::call has been renamed Filter::Util::Call and the logic for
installing it has been changed.

* Similarly, Filter::exec, Filter::sh and Filter::cpp now use
Filter::Util::Exec to do their thing.

* The workings of the filter method in Filter::Util::Call has been
changed.


Before I discuss the changes to Filter::call, could I ask for feedback
on the success (or otherwise) of running the test harness for the
filters. This will be a good test of both the filters and, more
inportantly, the new non-blocking IO constants defined in Configure.

See README for details on building the filters (you will need
5.002bf).

I have built and tested the filters on SunOS 4.1.3 and Sunos 2.3


Changes to Filter::call
-----------------------

As all the major changes are in the Filter::call module, I'll start by
showing you a before and after example.

Here is a substitution filter written the old way:

package Subst ;

use Carp ;

sub filter
{
my ($self, $buffer) = @_ ;
my ($status) ;
my ($from) = $self->[0] ;
my ($to) = $self->[1] ;

$buffer=~ s/$from/$to/
if ($status = filter_read($buffer)) > 0 ;
$status ;
}

sub new
{
my ($self, @args) = @_ ;
croak("usage: use Filter::call qw(Subst from to)")
unless @args == 2 ;
bless [ @args ] ;
}

1 ;

This would be used in a script like this:

use Filter::call qw(Subst JIM JOE) ;
print "Where is JIM?\n" ;

So when you run the script above it will print

Where is JOE?

The reworked filter now looks like this:

package Subst ;

use Filter::Util::Call ;
use Carp ;

sub filter
{
my ($self) = @_ ;
my ($status) ;
my ($from) = $self->[0] ;
my ($to) = $self->[1] ;

s/$from/$to/
if ($status = filter_read()) > 0 ;
$status ;
}

sub import
{
my ($self, @args) = @_ ;
croak("usage: use Subst qw(from to)")
unless @args == 2 ;
filter_add([ @args ]) ;
}

1 ;

and is used like this:

use Subst qw(JIM JOE) ;
print "Where is JIM?\n" ;



The first big change is the restructuring of Filter::call into
Filter::Util::Call.

The reason for this change was to allow the user interface to a filter
to be simplified. In the last version of the filters, a Filter::call
filter (say Subst) was invoked like this

use Filter::call qw(Subst FRED JOE) ;

This was a bit messy. It is not immediately obvious that the list after
the Filter::call consisted of the package name of the filter to call
followed by the optional parameters it might require.

So after some discussion on p5p, I have restructured Filter::call to
allow a user defined filter to be invoked like this

use Subst qw(FRED JOE) ;

As Filter::call is no longer invoked directly by a filter user, I
renamed it Filter::Util::Call.

To facilitate this change the 'new' method has been dropped and
'import' is used instead. It is now the responsibility of import to
explicitly install itself as a filter using filter_add.

The second major change to Filter::Util::Call is the reworking of the
interfaces in the filter method. The second parameter (the output
buffer) has been dropped and $_ is implicitly used instead. Secondly,
filter_read will now append to $_ rather than the buffer parameter.

See Call.pm for more details and examples.


Paul


begin 664 Filter-1.07.tar.gz
M'XL("#ACS# " T9I;'1E<BTQ+C W+G1A<@#L7?M?V\:R[Z_67S$EY-A.#5A^
MP"FOEH!)W/*ZX*3M27)<8:^QBBTYDHSAIMR__<[,[NIE&0A)2'L._A"P]CDS
M^]V9V=E=9=<>!,);,!?+*TO??*$/ *S4ZT!_87F%_RXOE^6S_)0QI;Q<+2^;
M-2P 4%^NF]_ -X^?+_[9C8U_L/17&?]ETZP]CO_#C[_?7PR^R/@OUVHSQ]\T
MRR:-?WVEO%RN5)>YU'+]<?P?XN.)]V/;$S W#NS!'*P9QGS3Z< &\)\U> +G
M0HQ@80)]:S2Z,N:/A#>@;/Y+Q?V.9X\"3%I?SS<.=_.4./8%2&2MKOI]>%\(
M/,B_V5IHO'O37-A_E\<':T&\>V,O#-_EBU@CN\+!PK^XK+/PO[(8=K>%/57P
MZ]%Q\Z %<_0XO_7V@$E7:2\;>WN'\--A0R;+U/7UQN$^/NUO'?\&+[=VP-@R
M]IJMUE[#V-O:?VY@;M1F8>O%5O.@&&L;.</.>_9 .-908$:>YHKP ^)WXMF!
M0/)%(2Q1 B48)GM>7(Y$)Q#=MCL.1N-06OM4VR*.C)=B,'#A#U<80\N[@I=6
M%PS+&-A!,!#&P!J>8KF"]<*RG2*7)WJ->:K[NQP+'K"(PLKF/\S?L74P1I[M
M!#!G+BY6WCK$BWM>,$M0F/\!-C?AG]C<!I2+,KV"=%L@WD.:8F9C[ QLYSS6
M":8]3J'_(/W?%1WO:A1\9B-PB_ZOU"MUUO^5FKE<*]?0(I3+U4?]_R ?8\H
MD"K>GG3QVWQ?>*3JSD30X81/M VL[;0Z(MUI.V<E"+^@3D+U4Y4Z*B1K<6DT
M0*67HHSHB1$FVR05W\(GWQVB%G6Q-K6-.M01/NK+5MBW!</Q(+ 7*,< /\#4
M,VY3]FWT7&]H!7#2VCE\U6JW#H]@PVCFAV"!R@G<D;&8*H=E?ES7'V..RCMN
M,$?EI(%@*[(_PQA(XS13*$:K;_N /RP,S+X,LMG,9HT&<IH#1:*B*F;;YD(]
MX <LD-L,G#)!JMJ2</AO9"A^3QC)/#.1+T%>C<<T<SP08,*:-/MWL',Q,U>?
M-G,?8^6>0( &.'"A8P6=/@C/<SW\[J-T,8^^(&$+H#@^'9^="6^:PH5N!I'8
M=Y7[WO@_6-)UH6O[UNE =)=4]]Q%!;L8.^>..W% R=-VG>R18/BDW2@U&)C*
M#D4?'0H+I#\![$_<U8,@JFLAU:?83D2/@E."\BI2CD/H6>"[8Z\CH,<4 98.
M^@)\:IOA>0]>()X:" %Y%./%DC,>#/(W<PIW814YK8><!JX+0\NY4O3[2[-\
M()6D8(T)?UO[W[$&@\^_ KS9_ILKE7J-[7\=EX!5S !8J5;+C_;_;V__DT9%
M@DM:E/FAVQWC] 3*V+]JB41R)99<B:578^G56'HMEEZ+I==CZ75.1Q.)VEYV
M*[]S\NG [9S+5/XZES0HE;)R#)X -94P"4^F/E3,<;76ZXV=#FM*M&R*Z8PZ
MJ08BS3@W_T'6NEX<#>=BZG%D=<ZM,P%A?GK=_0K'<W5U&X7.JT!_? KV<.1Z
M 7Q0M+6M;K> AL?WX<V[(EP;AJE\E*2R7&@N*IM&,/$3?<Y!7'G&[>VW:7M+
M.O7?VY:3#P!E;*%#Y)[^@=87AB+HNUV8DU3-P85M@69/@X.5+TC)>J*'P'30
MLHPL#\%%8D;I1DS=)N!/E3/<1] D8/AD"5<S)/PD8:#_/?:1WM58UV\+*+&W
M14"W+\[EDAJ=6-4#%\'MN..S/EC>V7@HG, G$Y_!Z^IJU($:'$,BWUFX<7YP
M*?0-4$8#[1L8'S\V);VFF#U().>9 W6G^4"%U#PV/H!!YFIXA0/@BT&/PC _
MMJFC,#6P@K'/7@*EV3THZ$0LJ_KPA(58*,(FC=T'(^<O;3W?7MII["Z=<:UK
M_JVKK1F)63G;8TJ(@[G6*E:M.FY0ZTK1-<$: F=*;:>2:9D! Q&0"P1(J\R<
MOR)EB8](^5QB!;:+3UN#4=\ZQ3HVG(QP8.A+8?ZJ*,-H4XYG"/_(7J1<LBPO
M?EE[\>%<C3@P$E0CC=DD80;^%"5%!%YI'I3#9V1 -P.5E3O#LG*=\FM3JH/(
MN LN(09,X\/=80EWQZ7>F?&7?OWM7TM'_W,\$YZ0B<]0.M4[2Z?Z=Y3.KH?K
MMI]<<5_QU&ZS-[7(X(1>3>2<T!*^)P2N/\YH:=3]-C%UB3A XFC:TB0 '$?
M\4P4.L%5U)4[AI;;M:YDCJET1@:]]3L/9_WO.)PL!/P]=-&$3>XPJ'=5R>2Z
M!!/M%4JC&E#8@RJE]'7LJ1(/A<U''FNL2"V$UPR%'0YX7&=CXK3:9KP,['.!
M]6[2X#!MCB1I69S'2*VF2=6!'\MQ@SXYR]A6&J":N%_8;&%AHO*'&!T?8TI6
MLDW)/Z=-27IB&;,FDQ%-((D:8Q97$0O8S ]3)@K;NW4$I,'"DMIF(:S&/A%)
MH16%H([K4 SMIG7& UNRA/,47(T$35R_;_>"V-S]448K_7!28PYG1HH!M&;0
M95%#&)^@(G32R*)1<#Y2;>1P$@NKTP=='WF0?1K1T88/J%5TOK2C2I]<&S?:
M"KB[9DGHB_>3 F$-?M[;+Z9U">41>@_V#XMWT!K4!I7-U!Z8AUD?Z?K!36N?
M[!G[??:,-<M34S;! 4J:YJ?ZETT59LC))'_4E'HB(^@<HI21]:\\>S[7Y(E9
M5>-3S>H3H+F U3T_D,'<N\^:3M\=84,Y7 4Z75PO3F186*#:ZDJI%^P )C8*
MPQJ-A-.-IM.,MA6E7VA&J0;4/.FZ%,#HC"EL 8;M0-\:].+V"@P]%9AZHRNZ
M6-^X%_C-&1L89F4*_0FZ%%F2 DD (_LYQ[FF09W",\? [H!F6>YK8'G:$$#Q
MBQB".,XJ*/ZT^S<O^T]L<2JD]/E$QW \5/KSDDZ-X.#DX1*J4;%?^BY,+ JT
MV,$/;YWY2UE<FO>;$*N[#M6\C&*NW0-FU1DPJTW!+&3*2-!M8(OR1T.-*++E
MCL^L&,^7!UX4]/B"^O0S0Y!\Q&(\/'.OA<Q.\WB)F_J,:Y@ID&D$"[ \'FWL
M-4+OQT%P1I#'G([R1-W)4(\.WBB1=,4@I=S@RX(,$MBZ'5KS'7?L!!$6C!G
M>BL+?AJJ# F'EXWCQE*+?Y^%*"%(W80H'<A<6(!Y[DGU$0D:32\VHC+7-Z(J
MMT= [HJT0K681)M!7 "%^F2\CQYE6D"+=SASR6]3:['[HG'&.M&<7B@:K10]
MK1L)2J.5Q-T6EU8GR-:/?Q7LSO(E/P,Z9VLV*9C"<I:"FT+TM6KN\T'OX6$W
M8[%3*=\.N[N@;O;9A>062T9Z959&=59&;59&/96A-V7C)2.<8[*XM(/'HZ8/
M<?XC$.(+7 "X[?QGN5H&J*^L5.O+U2K?_U@QZ]7'\Q\/>OY_<>G>-P XOKE!
M1SH%'XGGU0X^F"K1U D5E<!G.K"B.PY,7CG-X8)Y+F6M^'37)K>#BRI0)_"Q
M2N66*ERGDJQ33=Y/8)UL1FLP>IRWU"$/7C18WBAY"O4/5\1.A>@#F[P<,OJH
M9*TKM;')VHH=H;#W6F)Y^%(%@6EIY(B)G^F#H\(GZ<@_%?F'/:'8,4HD*7:(
M$I^0@7RR#(M"UJ[=<)+RAE.4=[HM$)HEEJM!MQ@R)*-./_(0+DJ.J#)9^I!8
MLQ@[E<"BFU6RPB4-=F+7)54&A5M=]!EQ,6'2WI$8X%A*KZ'31^L#Y5J-&F9P
M2I?D-H%0F<2QP([E.&X [D@X,K*?9XBN\B&(ZZ21!9=.=R)^MF4E3PS="R'S
M5F%>[=;I\X,TGC-J8-94><G%C!XH+[-&Y88:E:C&8_SWOR/^FSK_.1H]O/TW
M*Z8I[7^U;IIT%A3M?^WQ_L<#G__\! <@XPI@'-V(*CJEUA4]FE*[QXT=M!'Z
M\:?#!LXY"T;46,<=TIFS$EU+ NH(F\N2(7!-;_CVW]9=CO&2<^3V^3&$[N'
M_7 G *J2O&GWDZN..3TA(Q'E)O9H=0FG:_>4.4>:VB&_>9HP\BEU#S JEK@H
M$;/>1&/&'0AB4O)/%QA3UR!NNT88W1-)-&.$+,\Z]!_C*L,5J'S:A0IM?6*=
M1$:/Q4 C^CC^7V/\D_I?7(K.0Y__I_O?97W_NX(?TO^5E<?UWW_(_6_"%+R?
MY ,/HAO@$+O_G;(6\?)T 1SD]>_'V]]?^_9WYO7OQ_7?WWO]E]#_0GR1-\#<
MX_TOM<KRH_Y_\/@OCC_%\"[]AXW_5I:K\OX_#G^MS/'?Y=JC_7^0S](S,. 9
M&5^ITE=!(H 2Z=_6.$ =CD.R"D?6> #[EO=^3&$$RMRA2US F95RT(>?QKB@
M,[__ODZ9KX7GT[TWS$1T80K^+)%'[G0&XR[JG\:OK<;QP6)_+I9&JX!DRJ\G
MKYY3BD';>G8'FM6*H6(:2&G![EZ6X'3<:_L7)1A:E\B&/"Y&5@\SI9(_>8T$
MR5)*[5.V++ZF=BRQ8>!'>MAM[C6P"G:$UJ% 3\^*<'+1?$W?D>SVSE9KBSHO
M)O<QH8!-T%)%ECIN;.U0J>_,*2*+L+Y1AOB>)@Z%O#B%/\+MD;1RO<[ ]44!
MZ=!G1%(;\)$HBFMA,\H(X'#V/'>H;S"A #OGU*INQA/!V',BIM7Y.6Q OJ\@
M<#E&C6WGN]+4J<H]SB^<7!R]_K4@^2J6J!U^7X$BUHAU<7*Q_>I8EV0KN7^X
M\PI%O!&/W>>.MK9_WGJ12C6,"]?N&C(65I !-.Z$ 5L,QS>G3C]OP,%ANWG0
M;"FS;WF8IXMSVO;A3F/5R&$EP#'V W0KAEC-$9.3U_9%@;VA7 P!:W1FD9JA
M ]:\TS%AAS,7BZU%XU!2+2*?.11EIR]0ZG3<7Q[&XV$EJ#R+W$GT)S?S?#:2
MR/ON.XAY6#D-K9GE,^KD-*'6G&[BVLA=RXX+$M4]\F *D<=*58KL#AZ\VMLK
M@JS6\5SKO# 7WV%9@&D7Z*F?7X6G_EP)J^5R4:,G* K"= %_.Z[TV$@JOH7X
M3(&K;SE=B;$<S;2V+X*"%"6ZJ\W718VKQ_COEXK_HOW?M\X%C<;BT=Z#^7]F
M3>[_UNO+E16S0N__J3WN_S[,AU#8N P(@/[J*HT^_?-HN?<+05SCH6#D#K;V
M&W+ -C8A'],(^9*1>]TX/FD>'JA,A%,%4U$%/MK_O[;]S_+_1\.'C?_A8H_]
M_^7ERG)]9?G1_W_ CS9-<0,?BZ7O7#G6GFMU22/\V#RA>-O[22%*Q1D^KZ?^
M!LUS"LX9IZX;H#VR1NEFS36CW6X<[+3;AK'1%U;7!-(JAI'T+^AWXMU!8>F3
MWPX.CTZ:)]*[G#K[H1V/O)HLTX=#;B^1**+[W6F<;!\WCUK(IR%C[&I2==R1
M+7P@R\UW[GC"D6/#[H/5HS+TN+V./6VJ$_%&9^QY C50Q&3H;?-W?R0Z=L\6
M73B]XM3P11?&]KJF;W/1,)Y?05?T<&$6\&6:25^$1^ZE,TAOU?)0@U]B6Q,;
MUV@6^8Y<1@4C^0(JW[8Y%2"&H\ 6^F(/:C0;&QY0W.T*Q*7M!SYVVNREZV=W
MA;+,@[[*@XV3OTAMNYZZF((.RV)2G/@-Y=3#A::%0E6OUZ)+#I:MN.N*"S%
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
M0*@L"OKD(C'/J9;Z84]\)_I!"G0TN@CM*[>3#*[0DR!.7NO'.=G6J',$<OK
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
M+X6F?/7N$T,'_Z,#XQ8X5DX6/F\!SGW^%T46)*=&;Q1W!N)[@UX[ 'QO5&1
M[N2 ALW0%:E.%0K4;Y3X\ UP&L),5G3L.Y84P>^F2JJ0R7RGN.A]O5+1VX*5
M&VAEJ_YZ8U57CYOU-S<:JVBBP'2WU30$;O2J'[ZIUFIF1)7V=H965"LM,("K
M0OCQ*6PV&K/PQ[(ZA7\0B,SZ R&B@%*Y3<"8I+_\R/F_T0\^A .8'?W_UE>
M:DWT/_?N_T/[CW^\1]W?S?Q_:V%YP=C_6BVN_SWQ__HX^C\WS%/IUY;JC09F
ML5&_/[V*@]TDZ&*B6/6L_0;E8DH=^^7.T190OE]?5]5#ZPL@]E^VOS_8/SSF
M)I;SJN40;/MQV_\^"=\$'0J''J.8M(R6:3:,.GA3/'STRW>B<K&<T*W^JH]J
MCF-V]+>0TU&[+NE8I8:?4Y-K(D^58K,PTBHE0;>T9Z2@.@TQ MY2<W+_FR9
M]J$J>DP 445H6 ]%=SST#;< ?\=5(_M)?&8'+M'T*=ATC+L\KZ]0[Y*_4VN>
MLT).G6I1%'#/NI\!^I_$9WQ_H0+-%_4/L!SBP*+=O"EWBPX\XJ0M]@A>,1@U
M'Q?,MMZ:97!.3O^]X%C/VB0#^(CJLP5]7/H53'$8 @<=QIUPE@M617BQANQQ
MCQU"?S_1W[)%T)Z?ZR%Z41REY\ H\U"DR>J+RWQ>F>5OUTL4S7CN5E=A1OT3
M5C-)]CQ:T:Q?18X-3A 6:G-_8Y"<)DD&2!\,QASGYDTJ::OYG'\0#OO^$:O:
MGKG*Z:*N6:H##(;)9=0%Y"/U+.("K1IA_AJKPP$"<\G7G76GYW33 YC@B&BD
MAK?%P3?]#+9%%*[)\ )!&O D97 UGM=+^OWD-:D584LN .\ *J,.X% H>E-%
M]EY<<>>VB]#XJ'?*3&$<'%RUGLJ$R(:.$2I)W5P]7BY1$.4!TQH[*VC/BG@O
M#E$(EBG)EE@:9YB+U1[3K# 9(IK'"9\)HQO6^G4&?7":7,+*!_V@8^(T@*S!
M-B"R\SYYKMY6P5KM 08E[&!P22>;Y<S@K\)^F,'AD4'2<^2 :2BF*EC1]4K+
M.K#-"JL$H3=GX7R?AE@R!V-6AM 8!J03A4?;WX)MA9=8J]$W]A(:FKOAJ!M"
M+)0Y8!Y1[XHB,*!+*L3#/A6([9T@QOJ7K%"GLCZ=43_0$,+*.E&:I8RVV^LP
MD4U4?V>D3O>0[&6O <PA#-5-41%\$<)\M]<9V3:),&ZO\QPWZWX;PVIY+[!L
M=-3O>V0>@*ND&Z6=$=I"E'*\Y3]9+\?J33R^>)[4@5' !/#"G1[R]4U&E>WU
MDL]7"^D;:O8#QK7\$[ESG><4 V1-5\A?329HP, PNT:I2S3JAC?6-L.7!RM
M^SMHJ?"(7,*7<#<-0[HM855$/TAV@BT%ZH^9)] ^Q=8N&STW.?:(L-DVH%6/
M8--WUS%N&H$WKR:*1H&+!(#8#;,@ZB/*>7H9-=B:'3'H!/W7P54J1JH,2UVE
M=/58=U4PRI(+K%M(%I1!H Q==*KF&.5*S'6(0PH60O$ &"Q$*HL6'2>/JI<J
M_-E>GU*+GMI$!$=L-@G[22E@)C>K++YX ().)QP@D^$G SF3_0B7T_.,+Q2I
M* "R^,%IJ/<1EV5Y3*E%J$U\E@P]F?1JD7@@)PE<D=\A%HQ6 M 8]3,*EJ+-
M_/($#M%P&&!DU:4R61K,OPSZHS"5KH&Z8D[*C4W?@$*_:/*+P#QI\9-3\V2!
MGW2FT/R%4? ^= &W$6QB?#8K,]*HHK0UQ S"H>M'G0@15%@(OM1XG:=7I+?!
M&2MJ@.<.]^G)NGT.U=&6OF?=YD 9X3XD=))!TOR1X>L6$-%LG3"<QK!HL4VX
MJU%J?K>/:)H!!#P,9*/T)S'>WX'15IEO% KNK!/C$W8WL?1E8F.P1[3(7KE_
M%(;6Y%-?*O&*UI).1S?I\)6,*0D4\A,Q9C-HV=PL<L0]6^1(Z+!%CEZ3M1;'
MO0@ Y\0@330U&;IF5*]+G"52 %;.$8O,MDWK7&VOTVV_*9"5=# I'FH-,3FY
M0:JH @#+@8Y_.B([;0PWL<#4@)3;3:>>I@X*E(H\*)!BH.G0Q]A/# =5%$V@
MY^F9 LB G S])?@'&D$!=(]. &A;?;Q!S\YQ37 ,575DC8/!8("V=P?UU6K-
M-#QA,]CRC+9H:3SB56%1[Q%9=F%FQ(ND=61N@5[UKV:9S)NM0YI)5\(LZN,Q
M 097V(-O>9:"C!Y?,%V]C[SG=$9L HXH%,BT6?V& BCL/Z$C[/H@ <##A/8
MT6;]TR0[-UN%]Z)[QUM7I4P%@00-@OA*<5*L("3O@)0E0]E807U:!X$@1C"7
M@8"%%EB=05@%8$MQ[%EAM?PQ/)9)\ %20S&JRM8HAI'A>89PA-U*Z74O<KPG
MZA;&,"\J9TT84R+/UEHELZ-X>\ X@,;%<PD ]3+KP#IPM@%L^)Y,52NF@X85
M$.'RXLM!<65R26!9<0ZM]EB=C+]*TCD4W?W];\RB"N,_*=EG6G$:YKBP4=&M
M!;8Y.25L ^[.V'#D$YK@!0TDSX.G;FA).&;&3*Y3CAX+,? 0=CB:17%$>%GZ>
MIOKE?D*C"#6HNU=+'KHBIP$WB[.147:G7"R)C-!*LB5F3\8CQ(-G/NEM0_Q2F
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
M2*\$E1I_3;G5>7V2!.![>>\_MM%*GJE;%#M40;5O<=XPB]<<5,HFQIEY?.H
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
M$H 0;ZU/U,P(US0WUK^;K10T1WDND/X**^WJN[@G6WB\PZ!S7Z"RFR.U]#;
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
MX<8A<HUP:@''*4S#X:5R-#?2*4@19\. J9[PQ!=)WK9ZV 8KNEL!W!*(RSZ
M>PI,"@7XQ]UYD03L'RE%" W03V5H&!F ST6*)YK,Q%&&M8!(CH'_[/PC<^8'
MWM#D], 4QX,I/5).,&$G9W!W DC&,Y!]."4#!VFC H,#W4'FZ":=D1%V$;BD
MIA%V"LT51&.@&Z"SE*KX:.>X?63/CN;W),1D6!I(ISH5@SL=:D#:.R!3Y)M"
M3&."*B 0C#RMOT _'4YH<)5FX<6JHM8$-+IK3IL^&2'\'J4S#3-*^N(]>;FS
M^Q3%R^.OVCY[7>1F:R:]E::C"TFCP;,!2<P7?1*JA>AR2^$^2V=Y24H691DT
M]=)SBI^G5 O] %-;@-R+&6X0RP B@#I=R>HAGW#\%5PQIZSGS'3@/=5W!4S%
M.K9)3V5HT(6!B9K;UAG",DRZH?Y!=P+A2NCZE-,EDXXZJ.+BI (\,LFS\(WQ
M,#<[P7#'TI&5HU&\?^0OUIOU!;\*O_C;RE-C""+C4=(/AC#WEGF[K=]Z.WM'
MQUN[NUMYE)Z357%L&>\Z/)KH?SY-_8]]_Z/1[P/=,=?:_YL2_[^\B 7 6O2Z
M-<G_>R\_6,X.C9V8 $#LBUP57A(".,7LI%PKIB#!Y]/3RCO%)"%<UU].89H[
MU,Z5YB+$%FX^0C$FKS_;5%;4M[X,YM<W,#/'NY*L?:H%AS3!8O $A<YJS&)F
M_2^YN5ORU,Q^\S?/7F6,K.H1]")84_&L,'V9</+*FBG?]K/^(V!C1OU,3]-.
M_9>\\J4=#J\*V_(';H$_FK33&A-*FJ8P@T<[<4=MI5G#SMXVS!_@CV\!^%-S
M.P#_*?1">D07M7RA?JD^:N]]^W9:B1C3[_#F1ID%_II&*CM-TEISS9O<_Y_6
M_3^A@).?R<\_[\_$_C^Q_T_L_Q/[_\3^/['_3^S_$_O_Q/X_L?]/[/\3^__$
M_C^Q_T_L_Q/[_\3^/['_3^S_$_O_Q/X_L?]/[/\3^__$_C^Q_T_L_Q/[_^3G
-/\;/_P>C/:^E * ! +'_

end