[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Deprecate AC_LIBTOOL_WIN32_DLL?
From: |
Charles Wilson |
Subject: |
Re: Deprecate AC_LIBTOOL_WIN32_DLL? |
Date: |
Sat, 26 Oct 2002 14:19:42 -0400 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.4) Gecko/20011019 Netscape6/6.2 |
Earnie Boyd wrote:
Is it still true that global variables exported from a dll must have a
dllimport directive for applications? AC_LIBTOOL_WIN32_DLL would
perhaps indicate a package has addressed this issue (by whatever
means) and is therefore dll safe.
While this is required by MSVC, to my knowledge, it is not required by
Cygwin or MinGW anymore since binutils takes care of it automatically.
AFAIK, only cygwin has completely seamless support. Complex array
exports - like long long variables - won't reference properly without a
runtime fixup by the loader. Mind you, as I'm not on the mingw lists, I
may be out of date.
Then provide examples to support your claim.
See attached example. It doesn't work on any officially released version
of binutils on cygwin. From what I understand, the necessary patches
from Egor to support this sort of thing (imported long long variables,
imported structs, etc) involve two pieces (chicken-and-egg):
1) some patches to binutils -- which have not yet been accepted by cgf
(or, at least, even if cgf has accepted them, he hasn't released an
official binutils package that includes the patches)
2) runtime support -- e.g. patches to cygwin1.dll.
cgf hasn't accepted the #1 patches, because they require the #2 patches
to work properly (although Egor went to some pains to insure that
"premature" iclusion of the binutils patches wouldn't *adversely* affect
systems in which runtime support (e.g. #2 patches) were not present)
I had expected the #2 patches to be present in cygwin-1.3.13/14 -- but
AFAIK they have not been added. I think we're still waiting for the
Russian mail system to handle Egor's copyright assignment.
Now, on the mingw side, you guys would need the #1 patches, plus your
own version of the runtime support (in mingwex.dll?) Obviously you
can't use cygwin1.dll...
I've included the most recent copy in my possession of Egor's proposed
patches and his example. However, I haven't been paying a whole lot of
attention -- Egor's patches may have evolved beyond this.
I've BCC'ed cgf and Egor -- hopefully they will chime in to confirm my
statements -- or correct them :-)
--Chuck
begin 664 long_long_example.tar.bz2
M0EIH.3%!6293615A,O``$>address@hidden/___^H``(``A`"`"&`,
M??;MKJV7%#G7=<=""1"A0`!%5!0NQIT-`IHT`35/]5/TQ(AZFQ0]1ZAH`-``
M````,@T$`T2:9"GE`-`!D```````>H&@'&ADTTR:`!@@#09-``,address@hidden:
M")(IB)A$]$U`PU'J-,1L4T9#330-&address@hidden,address@hidden(`T&30`#)H``
M`9,@&@D1$",address@hidden,C$'J9#0](VIZ1H`T#1H'X@>!\/-]ENC_W37U:
MWC("FB0B)-`*!U./#&U>>GD!4"@%%YYB'-D.9G?<@.0#0(:1:@#!'*0&DP*N
M3QS\9I_+40HV(address@hidden>M)M#4:Z=?6:Q(P:#)0_5B&UZQD/]&\6
MHB"8Z#AMF6#Q%4D$#S:J&%E>[=?-,S3P:/5*KT551Y,]GTP?>==9]<C&##$2
MZ(L,*:I)%=8:WVPUQ/<'J"?-R%C9^;XJ5KAUIA+%]5-&.VN2+D0RX7D`T"_"
M,ZN[>S;&@T<5MW*50_N!$#5)%208IK'A&@Z.A*D;O0,0`T#1<C&[E\F"Q9F0
M6R?W:'XD5'QT43%S!G,+C!",F+B(F[RL1LB:address@hidden,_NE[OM"IA%C1N%M2[M8
ML`L`.=)K2C76H%/8:S;(MZTFD)JME"(5074B$PP0;address@hidden>RBINV^O]%+OY^NT
address@hidden@RH,[+#F^MVDMPV]P*8<YVV]39H7,<address@hidden'?N.SO:H3F*,LPR3*(D:
address@hidden;C=^K.\Z[[PU68L>`5372^K-:-+J+(\#7*M;address@hidden<Q&9
M2,@,\"0$ED)%*KFJSYKFA1J,(@)=6^#WG:<address@hidden/TV*8!85A*,SM:7*
MM#7&KN>!%EV\J;)YGA\&9ED;(+XCKL`%TI27`$)HB`*0M5,-N%9UT(L]PQ6N
M$+CW:-)G@&6Y.\[:=M>.^5G'G"TF"!`WE`&*E5'@!T3-M#[\K:(TSYJ8W9*W
M($(address@hidden&-,&0,S<YUR-(\L74H=*9(address@hidden()&JU;4683W&PJIJ
ME7$`:+8&address@hidden'address@hidden>@2.JDGTE.=YXKJPQW-;ZF^%O`(;*$2E<4B$.
M7ADG^01HA:%HP.^V&03AC>(2!M(`G;U[LLS<Z$D`1ZTD#.]D#0;4G'N^Z<F/
M#[9'2[^S'?7X6.=.;<G-9J57*<TN]T?"$,;<&NM*&8<&G7O298(Q\LB+.0&<
address@hidden&0&AY\WI87&65R`AO9-5!=#5/Q7W.`!.Y&+T,X;&96X,71%I/'1OV3_&T
M$(ALF34)"F!(!`T"":S`9$FTTQXOW9HL@;`_8MHRA\1R2ATBN4)`2M3S$OC,
MT'W'H][D4B"BM:7!90?:#80L[]5THAD)>'J`]/H$6"3!#/B`7Q`2`5Y2E(!G
M]&Y^ZKA86`0W!#^4P/SU`I5*<E`'0)I+5;4QBY(C:9FU?G8KZ2I<QAD/(YV]
M(G&AQ7QQW,4P),&93!!HBE0+K(`C$CV75L,*TN+2I90J-S4NFZ8MI,U)4NTA
M-T*H*-41(address@hidden"M=BP6;address@hidden;OYAV4L^=7H/U"F9&.P%-6^KX0Q[
ML;D5N%:8Y>$H`UC&TJ,3V+SV^[_/<=+V8&I(B??"0.WU0[SJN9!OG<[`AXDS
M'73JB0S/6#%Y.N_Q4*95/D"JDSU1=W!NB?A"[FA(address@hidden)R6\>42>(</V=`
M&IU9ODKR6A1*IM*QT>5TCSF`W?B9&1#-VMNU=E\(?,)+JF'?$,V\;\76B.`+
M-*<G?T&";_C`L::&@9H3X+S<0X!L7$##=[P=6=RJ?-?_8'T2*7#%#;$U)EF\
M]JN$J2=N*I3MAQH4[I]EU*&P,`-(8YOG'E.>$ARO7&"'address@hidden@./,!O]!#M
address@hidden/(W9(QA"CZ,address@hidden/CF/9!I[$LV')B)4;*\OW&DDQ]*
MTW;@/8O?;3P!'PY:)`)address@hidden/,O(*%^,address@hidden@"U)*K"address@hidden
M*PNML$E=_GH^FU>7QXSZ'!V:1C!B/,&=.7%YJDQ')<,&/N`T%JV&M]41O.O'
M-`*#!+E?-"S]R8QQ!B%)07E^WRY91>(/RG!OT;address@hidden@S$5%P>F>RQM9
M"4FO*T[[7,YAG"V\WD):J4TV2C.B1"#YW4IO504)(AZ\PP/$"ZMKLLIIHM8.
M*V2#H\"(D*M$CF%8R7#0AKKBPT`7A6_JHMV%5]#AK""+L)>M<:@#3IDL]6BL
M$-2X0C(,9-KMS,E-4R2`R`>:9F[>S(#?>PWL)F'L0;N1GDV!X\^_Q[(address@hidden<
M:XVH1+%W>'<%JL7,BR*8O>[[0;0-6+"address@hidden
M"%AAK[J"1>T&DN@;(KE3'15"/K***8L-+8PLOB!+X!JJP5R-PR_TO:]6WV].
M*-W!FYFFL`0=ZQW'AY\0P#;V6F9HIKY:M3J$"N*9VC6_3=TD4OT$)XJI#!7I
M%Z,=`[K:\0+DM]V)=>',?=W$'!H]76JBF/$KO$(INKZ;!-T8GZ!>`%5TUMBR
M@/address@hidden"]5_;[]/)address@hidden)0EI++MQM.ID)6+C1T.;
M5^J$CXFAL`Z1M`X9$/RE$L;ZPNBTAD/O!:Q)=Z[V=6TLZ9H%F?<<W)U&MEIX
M2'address@hidden&K#L#%QQ`DFQ1DUVS`7=&I*;D])R]4^6SCA,P\P.ZFOAFMXA&%RN!8,
M1T5HA'R<K6)C;9Y>U';JBF9P9?S,;RWLQY+8F1M00"&TUH&($0(!@"X]]T]?
M:CG0Z63,50B'":ADZ4&05UGM6O=<H<YOG9B%9RYGFK.U(6M2#.]2B])1+>LB
M6*VE;R/=!.>BZ3V`@'38'&1$A%3/'8Z-B!N[5BF`E'7DEU[80F=-BBYK!&%(
M4^>9J#"*P:9T%!!"Y8"SDTC<R;%XW),:;7OFJS>]6\HB36D4@(;',2A0Y2+`
M4DM;(HRM6!+=QLM19H(address@hidden))CGJUPG6AD7PC"32$3$T?Y#S]J,PAB.]F
M3;address@hidden)J0-XDEJ,T0+RDN#QZ`\*`7),N+3NA9'address@hidden)2Q-D
M_C`DR2`/@K4H[5<]EX*"OMN+8LW&;,D"address@hidden'7W(^M[T+>C7C1&@U5Z,S?
MOPJ?ZDCJLP##L-BH]T02QL^P,0P=M[05.S#Y>$XM"C?$5MSW14HH*B-0*ED(
M<0R`LGVCIV\`N+;AB2MAD-WG'BA$RC7P'"address@hidden(address@hidden:5U+$HBJ
address@hidden"P#0XWVFNSC2ZWA,address@hidden&ADZWZ,"M;:$5>[32<4'address@hidden
M])721+234Q0]"+G!"]Z,@*!ZBV+8*.*IKQV;:TL`\SG30R5TW#=3A70CW0-+
MSN"FZUSBBY!&`G$TA(/B$@;Z,<6WTK,1!`&address@hidden"2E%<1,6*ML*K?%
MX"J(14+TEYF)%_G@"*9&X#4"P;11]5:address@hidden&$9H6258,;+,PM,;4P)BWS
MP-U?[4=F%D=(address@hidden)<;['SM4TY0/address@hidden/\#X=1,PPD9]_Y?
MI`VW\F]J%!:!>"#MCQ8)<;+.OD.H*G3JFP+"+6I:W]_:\7!_>!(QH,#``:9@
MH&;3:N:MU@(B[L&`%Z87,84\BD>:J63%G\WCJ2*A:CJ1*8&("/_B[DBG"A("
$K"9>````
`
end
begin 664 egor-patches-example.tar.bz2
M0EIH.3%!629369VR4V0`%%W_G/SZ`B!________?_O____XA``"```"`"&`9
M/OGW3W*O=TN;WM[I[3;`:[KMUZ=W;U1LZCK7EM>ENWBVYXW5CW=-V!0(V-[M
MTBLM!!4=.YJDGEJE5<]D"2(*:,4GI/:"I[)IA%/4VF2>2/$])A-(T:address@hidden
M-!D`2A"8C30(3`D9(1O5/3T*,FAZF`]0U&3U,(,$'H3T:)APT`T`!H#0&@``
M`::--`&0``#1ID&$A(0A,FFDTQ%,RF/13]4-ZFHPTT3U-'J-'I#0!A`T!Z0`
MBBA-&FIY)J3]&C*GZ0]*>address@hidden>HTT!^J>H``#(/02)address@hidden(F`)IB
M2>J>1!ID8C,C*`!HR`-`&GW(=5G3TQMZ8^JG7QKY48<3$84)"46,8*A2*T&S
MW^?LW[8>U+%CW207H+D$1=9PW?>Y2]J1'*\Q0,:!B!L$VAI)&,)address@hidden:8W
M`77]8IGP_K.W2,-)[P^Y("RZ!GV#HZ?GW)2'WN/%X-"CG+B=%0>NGNY6Y#\*
M2]7)7&&9?:-G+WZZN<^,ZO%>LLO?6[C,N$T^.J.+R0ILU&VJ/IC:;N,[UI3X
MI%AC>&1\LM[YI\G3Z,],B'.XP[EM-]BKR:address@hidden:J<TFSVW.[),J*F#=
MO5?7RUY'(L_HLT=HN9AP-Q!4W-,=VR<E)@FP'KW'address@hidden@YM8
M8G09DJX\2I9$#0P&address@hidden)@4/address@hidden'ROH,-N<,ZI3J\E[0'I7ML#+
M)FN+7S)TBC]>V[02=`Y^Z=:U)/V5N[]6"SIE2.ET;E*D^6_KB\\2)E$3CPX\
M!W&$U47%<)^5$?TP-21'U-$"%5*M##OYYSQS:)UV2552MMDD`%*$(@FJAER$
M)!ID[(.*21=R*,3)address@hidden;HD4&address@hidden)0&6A_,%9]1CN&"]W+
M0S8V"+,:\U%*K.-JB2HC51&J&#:':%,I@,M5-M2CG\)RAX!KU!D%BJ-*^3WM
MS+SA,N"\N@@9AR/SPK-/Y)>F_T:;<!/YMYIW%X9EI(\,B'7T#-]9:C.U3>7F
M`*,I8#(:4/V**.)A=0<W^-7_DHH71?&,J&address@hidden(<$Y"XRKL*'PU=!3_9<*Y
M-(J;8,,^!:S\GDZ>_^W4<2;K:\W6R3[.$P6>K4^,UXP:+V2M55\GAX.6/8G%
MYM#%M'%Q'86A'MMKV+[^;>.M7U^O3X5W5G6OVN0-W/3':address@hidden:-/N
MWX>((4ED*#P$*/2$/VI-&%83J;#SS,EQ^)RZYG`H>(1'*\E'1=(<BDKRAABH
MG1"address@hidden&V[Q=YMW30R[&@QAQA'3+CO;-M??X9PNK#0[B2T
M245[>M,6S=79J1'X(P&QL;Y?/ZFC')7;UZX$XE.:7[O8W(KOIYYK3,H4*$O3
M?"#*A_EAH!W%Y-0EJMW7EMNMSW%XZ[E$7-Y4LB#DR9<K)$TZW1R8P1&2.7MX
M[+_O:]587^/SD2)75!BK8J,.6EJ/-BOBBZ/?2+S3]SF<R><0PL[FTCWBG]WD
ML!4UF)address@hidden>address@hidden)3*-+85WS_!;U=2I&/5SEQ
M,OJQ"8=GNUX;(#JL'9VYU/2J+-NNJB,BXL,%*F6`O%\>^;>L9C+M:<VU"._&
address@hidden<QR!UF]B_S][G,AW.=*+D#>address@hidden&&GB0YXW(<VWM;
M=KW];address@hidden,ID[0S-`,W%HIW2UV=(VBB\9T[5A,C%&X+W7/%B
MQX>YCBE$19BBF$.&?&DM5.58EU'*R9*>Q%YQV<(RV<[+USUCK"F!#)KTAKZ>
M2JJJFB-:DE+Y4=0GJOV5D6"BFZ5FR+87X%HKX%:[5EH-M)-,K:address@hidden(F"O
MO.H9P8*/LT7T<JUTP%-")M)$<6?/9D)-^J7/GCHT%S3].&9?3L$\2AQX;C7P
address@hidden,/address@hidden,address@hidden>Y':G&QW(F,+1%%T!F!4Q`_]#U
M1E)L;&U0SJ"A'E#X>,W'I#+G2GB'MP]%;H[99B4#!X,^>_)#,H&G";&C7%-(
MWF2MC&,9%#%\H#WS771WVX4F-B%<>]H(FAFR`9-6:$QB1]'CV>>&&$OKY?QS
MOVS\//4;W'26,9??SQ,[>,YV:OBRRBI;104/address@hidden>7JOL;
M."F4J"G>address@hidden/W7/2YH^U_"!U&\S';QQ)SZC$6+YBD1HF,H/614J*JZ9.WBS
M5T;3_,:1E$VX#86!QV3P3M[?D\?$8$6(address@hidden,K;A'))!),X)=
M[*QBP.9L4-%,)NF<7$#PC7NZ>,D#ZC1N3'?3IM..VYVBK.BD-8[C&N&:1,@J
M?CE5L[X.ZI22L2*Q>P=WGOQN7'address@hidden(#K!^\UZYB>S[[
MS8T'\WB?"#W6/\3,]FCUD6>=]]>"O#,ZN%Z-E''W2%87D(65E.T>U*00,,"[
M#80)*O0;C@,address@hidden)address@hidden;!,address@hidden
M2R0$"49-*MA7;2TI978]<SN<S32.NNA=S+2*\?V?N=J$9&K+AUUJ.4]9FSDC
M<<;;8^&-+I=E"@6)/NEAML<#CHIAIZZ:+C$<K"*>]ZHRY$S,3*WB^"\-"/D8
MJ5S4)address@hidden"?U,R$/4E4#Q$O1!YN+V(\?)OI((L!`P]*ESL)?"L`!Y"7VTAL
M0H$*0#^Z`*\=2%9"&S]CZ6/DQH5(7VP2U,UQI3X86_B;N(address@hidden&B':-@>
MB\?!H+8(:SQ^FM>>&+BS\W-[.P?;-6?9)))))))(S8^GB@"R1-JW/B)`5KU3
MYOG9'RRZ7OE$MO_3.<YH')5-MMR;!6UE#YE<Y;\W@,R+-*PEL2K17SWZ153X
M"2VF<Q$_D-2JC]ESS.D+'WY"/9L->#3E)5<FKVHZDU7G=37?OPJ_<@:3WK=E
ME4X*F^L(:address@hidden">9$!2I:]:6VH)S<%-*099,K4XHUIPWY
MR9>[F65:78987V'DL+XO:)3I2QL:"ZNS9,!Y:JSJ]2C[X63O&6ZP4</)3NF^
MZ]+(PA(0&)O1!JXLB58T6=V-*I,9)%D%L(((I6A<12PBFYJF2Y6XWE!;L<6$
address@hidden@V`ZEML)-<-2<.]*>#S=1VH5%I+5P,</,X<'3ZI<-#]$A5EY68,;@
M6"L>4I-"71QV=G<Y;M4N6_B[UQNRT&BE-K5#C/6Y[$>U.XSI[F&4543HQ480
M<BH2H-N?[DJ0K6+QX$14,;address@hidden,P-?!M+E6:NS<S+P\JO;P&FGG6]"/O'T,X
M#,S`%C);4S#1S"DCJ2H0C.LGH-_PID(address@hidden"`+:F^HX>6OR"TC]!6X^
M`&QMOH!_>0PKX$/O.0#`%VHI,`4'/C\%!WD>@D_$_H577="B'XREY0RZ'!Q_
M(;C:EI&:`%^H<+HM24NLZBV&\413$6U4CG,(0^T>>SP?Y+!3MC#IESCH&"Y4
MWSO!>#)4B26XI#(:address@hidden)^2$12N5GIB&T3-@:EDZ<UC$48E'9!=+D<C\\F
M#>F_(V9H(2/O8$,4(`;?'M50N029`R0-ND'(&X.9&!+:%A`[OC*F7>+`><A.
M%#O0C,&-*`U?V/BI`9AF0'M+2=ZHA%#HN1VSH"address@hidden"J&TVG
MUHY'`##K-2$0='7>@address@hidden<T]HK(1M25CGR4`7!Q+4F`!HD25;]QD-_%J
MW=Q9WEU#C+F$V(4)address@hidden,address@hidden:Y=H-_H#)`#I-#)H1LS25`F>(;:D[`
M8J]P8G8A&8MX7)5+2$7:!1G;)address@hidden,ON;T/#I/'W!A](W
MMN-R=?A\MS5\YY.MO`X_RD,R*0^#0'`16OU.&0Z2074CZB",('@"%!V,\5^\
M6+5ZT<address@hidden'@S0O`,"D:P(0S,ABSKW,MC=I*<V\>_7_"$DZC[7JOS3\
M7R=)K-O6C\Z(?$6"X=8RPEU+ZU]37JPL%!:V;6$A#604+R8D?36INND8(7"0
M$#I!!P3,,+1P7HADQC6TE<7^&K+!`5S/0+A(S-(P1-(:C2(PFMH0-N&DP;2!
M$,0M$,)D7V'?OYM86D;address@hidden'SGBY<Y@@2B)GO3YM"W,&address@hidden:%
M0>D,:0?,0_:6-1#V^?H8-H;;;3;;J28.V;#7O"WC;Y._N5C^K$V1A]#)1%H=
M&]L4$/W/W[!>6I`C*7TE7L:ZQRNG"!FQ2B^L6'AY:\T%.4-^.A^<LMQ-H($+
MR"1YR.:ND!!.H*HH[/`6Y25DL3/FN,$,"I(/'+*&address@hidden(4)"(S,6
MTE21Q6A+F38V>address@hidden>[:LF_>''E5XZ=P5*!WV<C(O2DJ).1]:address@hidden,\&
MHYD7%1D0$0B:RA4H"HE._BY0K1""-`M5I5D3Y[Z8Y4F+PKF8VN&Q*%,=4<XP
M+#,6B#6)address@hidden:8;YPE[U4ND-GXVK,'@MX;Y327&];5[PW$5DC22.N?-Q4;.&
MC(W#2"/address@hidden""@U@/<WQ(Z3W$0-H!Y<Q>O5,-/<H42J2)address@hidden
M$<0,T<FD;6#&;BBN2WH-^!8;JG[CO`+]8R"E)-CU$((31*.;\,AS58K0C,H2
MG:V^XFBB+QLP8L;address@hidden,&address@hidden@T*Q=XP534(LKA1L!I(L,6LR,address@hidden;<I
MBD$0_O%6TDK(U(:N-:M$064C8_('_0,EI0C_8E8&:DC%,74<DIEIFWMSVL&Z
address@hidden,'8;$,address@hidden;428A#+UH0U6D(,/;JFGWOE%/*=Y4]!A\BUAG1,L
M-V5R6))MMON,3&TBWR5:%PYTU2B\^:1H/A<4SA3P)Z"9]%V=)RM2L3KC6ELC
MQP+KVD5!H3%>9`$"A)B4K*S;H7:8I<#CSPSCBXRDS($M&<8<;$TJ,(%!H.!`
ML'#%&!&PV"@"YR4EKQ)\'^S#*`->>MLFA:N".TS=2B&address@hidden>M>address@hidden
MIV\?_\_/BZNS<H4?K$7*!YT("/;[?QN#><R/%_CFA=VA?.ZGHE[-)RO#)!Q#
address@hidden(;-(address@hidden;!J]#$TSV"_2'WH+SS/$+M=I>7D3B.]*"1J05,F)%XNG=
MK];WL>address@hidden<1&)C:#,4W+,19)(]QZTJ2L\%`C`90>L4,C#YLW
M"I9)P&+&6^R9I!E+BR%U>;<&0DE)@@P4K-)$$)L99V\W"4YBUK>R)"(:*D&B
M!X(,H][MWWHR2\8;RPAB"MC$^)824R:-S;0%1]TR$-AB1"T%M0-M),>address@hidden
MGD7RJE16C`U#":F&8&#S&U!<S,FTK_&MB#G]0C;4`<&,;6<*_"H(7>,JT0'<
M,_(X*PE)A\&%B](address@hidden'ZD<1<C:L&`XF5O2[T>RUGE[X)N8PA(NS`
MRRD:&DO#;R$T'2:026IP=28,"4(%"R5\$\K*&4!N1ZZUGC5\4(]TU,YPB(Q)
MXX9_:2<2>D?.``S/'CGK/.!<address@hidden">.0CI6$"(0I309&&R%K0K0I6ZFZJ
MLOS.PI)`KU>_G4:[TTA<3CUA"0.X,(F(address@hidden)312BV"?8(9TC))NT,D`?UB
M82!':(<;&Q#%N.]F6X'IC!MBZO8!TBIH/@!P;(address@hidden":6>address@hidden(M=3T9
M!<address@hidden,^D*(_A?>,[V%,[KE)A)R:0-H&+-!@)@@.9\+[S87BJKE"#/>I-
M*`*+OZ8+%6'3(/62:?07I1;O-AH/+,T[101\T`ZCCZ)S/03)ZC2):L=:30.&
address@hidden:B$-E!=W,@Y.2LP>E",BDDB8!IB:+)%AEFV-H>J)5H.CUIBB.X
ML%J)41`^E(address@hidden,)#/7S0$K;!]1P/8..K7,@B."+6,address@hidden@-JVE
M!&0N,@!9'VTG`*1(K((AA\1U)4CD+[<6$DV`-Y*$2/address@hidden:'>[9M)?:address@hidden
M%DF!#&8(8,8FF-,:38,)!A`"DA*2D&H:address@hidden/H9*?Q""6UKK1
M[.,&6,S$6$T*J`<EFP53(LBR*H+(%);CF9'BD"--3BO`#AH'W-&##[#+`\4C
MT]A&IF],U!6H(+ZNC"1>#D8<6L:`TE!-!$XVAV`>DH0II*.8C++W6-S.XG6V
MZ&-3']C#['address@hidden:/G?:SB"1>TJF1&\,;_<1YHU8:>+/F]_UXKO-/(MBPF
M6N582;+/'@YY.!OQ!4G)"11!,(VF5N]3VK&address@hidden/address@hidden)F$:O5R
MMN$NCLM"DE3$)M$MU\%+^QH4]\BV]`,H#@@;0S-`M&8F&^#Q1U48>J+"II-2
M"$,2;$5<Y+)address@hidden,address@hidden;::>V*]A""Q@&9P%E0F6)14D:2
M\7W?-)&"UV-M,address@hidden,BA#NL%8-\&)@address@hidden)PE4,!LP5S,address@hidden&8$C
MK1MYI2$4*)L0LMZ54!"/$UT&V>address@hidden,KE1JR`;&,!:<GO<-MO:X&Z
MA561M`67+0=LW@>Z\D>1AS"3U@,8F;)VG5.(,S)&WFAY]O9Q]3VD^SUF9:]]
M7;C*<9,J+$[=MA'P,673=9TDW'GJ#UMD5L&KG,=/.<$(#8`[\=I+1<1K#M^!
M$RIQQ'address@hidden"19.I<L$Z)(+4.\64)<S'N+(D!Y0'S]\HLP.^DD3TZAS
MY)/address@hidden(HY93DI"TU@;O`S<)(address@hidden&-M+SF66+!WF(R:9H#BVN
M"8,8,S-QMK$9-X3,5)$X8-YR!G:address@hidden&address@hidden:6SG)MFMF!G7B)LS
M+$10W))BW(:)!<F->5E1)E(0*"@P#!$PB!(@5C$!;Q8E]!77)$DOB/4238E,
MP$,T(U39"DRQ2.D4,);1(N`N86ED*@&F1P8;V(QTP!-K.2F)9Z[\`%9I`;*5
MP(9K+$I*$2D>6,@0V+"%N:-05FLF+;1%YI&address@hidden""H,JE?DRRKK'CX?5
M+BG&<'"MU`'HE@&-5*#^?,address@hidden;Q*QQ)!49+VN?+-)*6J+G4=UP)H2
MH._U(1PR9#6%T0.CTI:Y46Q1D/address@hidden)92.08*#."6-27RM",6BJ"J\=
MJF!1&V+$KU\?"$J2A"@30!W)"V!GU$8$MLR"<HONII60`>LT6T6B):C<%8)^
MZS,6+IAQ#&Z2PL(_YM0,UBG_A$N#'+[[GEF2:EFIJGYF)0Q'DU<QYO.=$O$%
address@hidden/_%W)%.%"0G;)39```
`
end