Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!zaphod.mps.ohio-state.edu!samsung!munnari.oz.au!metro!natmlab.dap.csiro.au!ditsydh.syd.dit.CSIRO.AU!evans From: evans@syd.dit.CSIRO.AU (Bruce.Evans) Newsgroups: comp.os.minix Subject: Software floating point for 386 Minix with GCC (and 286 Minix?) Keywords: Minix 386 GCC Floating Point FP 387 Message-ID: <1990Sep25.055949.15631@syd.dit.CSIRO.AU> Date: 25 Sep 90 05:59:49 GMT References: <12653@sdcc6.ucsd.edu> <3433@skye.ed.ac.uk> Organization: CSIRO Division of Info Tech, Sydney, Australia Lines: 906 In article <3433@skye.ed.ac.uk> richard@aiai.UUCP (Richard Tobin) writes: >Unfortunately, the gcc machine description for the 386 uses floating- >point instructions even if -msoft-float is used, so it's not enough >to find the usual floating-point routines. I suspect it wouldn't be >hard to change the machine description to fix this (it may be just >that it expects to receive floating function return values in an fp >register). -msoft-float doesn't actually work in gcc 1.37 for the 386. Partial fixes are enclosed. The main thing wrong was indeed returning soft floating point values in a hard FP register! There are a few other things wrong. I fixed one of them by editing one of the files built by gcc (this should really be done in the md file). This works well enough to compile gcc and other gnu utilities that use FP (e.g. awk). The movdf and movsf descriptions still get used occasionally. I have only this when optimization produces pessimal code by copying things through the FP registers. Files: gcc-config.dif. Apply this patch to gcc-1.37/config/tm-i386gas.h. The patch should work for all 386 versions of tm.h. gcc-out.dif. Build gcc-1.37/insn-output.c, then apply the patch. Sorry abou the kludge. >Of course, this shouldn't crash the machine. The reason it does is >that Minix doesn't set the EM bit to indicate that 387 instructions >should be trapped. If it did, you would just get a core dump. This >is easily fixed - perhaps someone more familiar with the kernel code >could decide just where it should be done. I've know about this for a while but only just fixed it. For some reason, FP instructions are treated as no-ops on one 286 system but hang my 386 system. Neither system has an FPU. Could some hardware person please explain this. >The 387 programmer's >reference provides a routine for detecting whether a 387 is present. I've got it hard-coded to no FPU. There are bits in the CMOS RAM to tell about FPUs. The setting of these bits is said to often be wrong, probably due to the use of 8088+epsilon BIOS's. The BIOS should be responsible for setting the EM bit. Not setting it makes it easier to crash DOS too. There's a lot more to supporting multi-user FP than setting the EM bit so it's safest to set the EM bit and use software FP even if you have an FPU. >More ambitiously, has anyone written 387 emulation routines for >Minix so that programs can just pretend the 387 is present? Emulation is difficult and slow, so I use library routines. The ones enclosed are straightforward translations of Peter Housel's 8086 routines, with a few rounding bugs fixed. The packaging is very rough - not even a makefile. Sorry. Just run bcc -c *.s, and for use with gnu ld, translate the objects using my gld. (There is a bug in the released gld. I don't think it affects these objects.) The .s files contain untested support for being run through cpp so they can still generate 8086 code (same as the original + fixes). C routines from Peter's original posting are not enclosed (things like pow and sqrt, and stdio support. Use estdio for the latter). The outputs from "ar t gnulib" and "ar t libm.a" are enclosed, to show where everything goes. Most of the standard math routines in my libm.a are from the "pml" library posted ages ago for gcc under ST-minix. #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'gcc-config.dif' <<'END_OF_FILE' X*** tm-i386gas.h~ Thu Sep 28 02:55:07 1989 X--- tm-i386gas.h Sat May 19 21:49:49 1990 X*************** X*** 99,99 **** X--- 99,135 ---- X fprintf (FILE, "\t.file\t\"%s\"\n", dump_base_name); X+ X+ /*--------------*/ X+ /* Local stuff. */ X+ /*--------------*/ X+ X+ #define CC1_SPEC \ X+ "-fcombine-regs\ X+ -fstrength-reduce\ X+ -msoft-float" X+ X+ /*------------*/ X+ /* Bug fixes. */ X+ /*------------*/ X+ X+ /* Fix -msoft-float. There is also something to be fixed in i386.md. It is X+ zapped in insn-output.c for the moment. */ X+ X+ #undef VALUE_REGNO X+ #define VALUE_REGNO(MODE) \ X+ (((MODE)==SFmode || (MODE)==DFmode) && TARGET_80387 ? FIRST_FLOAT_REG : 0) X+ #undef FUNCTION_VALUE_REGNO_P X+ #define FUNCTION_VALUE_REGNO_P(N) \ X+ ((N) == 0 || TARGET_80387 && (N)== FIRST_FLOAT_REG) X+ X+ /* When using gas, .align N aligns to a 2**N-byte boundary. Fix up previous X+ wrong comment and redefinition. */ X+ X+ #undef ASM_OUTPUT_ALIGN X+ #define ASM_OUTPUT_ALIGN(FILE,LOG) \ X+ if ((LOG)!=0) fprintf ((FILE), "\t.align %d\n", (LOG)) X+ X+ /* Align labels, etc. at 4-byte boundaries. */ X+ X+ #undef ASM_OUTPUT_ALIGN_CODE X+ #define ASM_OUTPUT_ALIGN_CODE(FILE) \ X+ fprintf ((FILE), "\t.align 2\n"); END_OF_FILE if test 1211 -ne `wc -c <'gcc-config.dif'`; then echo shar: \"'gcc-config.dif'\" unpacked with wrong size! fi # end of 'gcc-config.dif' fi if test -f 'gcc-out.dif' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'gcc-out.dif'\" else echo shar: Extracting \"'gcc-out.dif'\" \(446 characters\) sed "s/^X//" >'gcc-out.dif' <<'END_OF_FILE' X*** insn-output.c~ Thu Apr 19 02:24:32 1990 X--- insn-output.c Fri Feb 16 22:56:29 1990 X*************** X*** 1156,1158 **** X X! if (FP_REG_P (operands[0])) X { X--- 1156,1159 ---- X X! if (GET_MODE (operands[0]) == DFmode X! || GET_MODE (operands[0]) == SFmode) X { X*************** X*** 1160,1161 **** X--- 1161,1164 ---- X /* pop if reg dead */ X+ if (!FP_REG_P (operands[0])) X+ abort (); X if (top_dead_p (insn)) END_OF_FILE if test 446 -ne `wc -c <'gcc-out.dif'`; then echo shar: \"'gcc-out.dif'\" unpacked with wrong size! fi # end of 'gcc-out.dif' fi if test -f 'gnulib.t' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'gnulib.t'\" else echo shar: Extracting \"'gnulib.t'\" \(395 characters\) sed "s/^X//" >'gnulib.t' <<'END_OF_FILE' X__.SYMDEF Xdivsi3.o X_adddi3.o X_anddi3.o X_ashldi3.o X_ashrdi3.o X_bdiv.o X_cmpdi2.o X_divdi3.o X_fixdfdi.o X_fixunsdfdi.o X_floatdidf.o X_iordi3.o X_lshldi3.o X_lshrdi3.o X_moddi3.o X_muldi3.o X_negdi2.o X_one_cmpldi2.o X_subdi3.o X_ucmpdi2.o X_udivdi3.o X_umoddi3.o X_varargs.o X_xordi3.o X_mult.o X_poly.o Xaddsub.o Xcff.o Xcfi.o Xcfu.o Xcif.o Xcmf8.o Xdvf8.o Xlib.o Xloi.o Xmlf8.o Xnorm4.o Xnorm8.o Xret8.o Xreturn.o Xsti.o Xzrf8.o END_OF_FILE if test 395 -ne `wc -c <'gnulib.t'`; then echo shar: \"'gnulib.t'\" unpacked with wrong size! fi # end of 'gnulib.t' fi if test -f 'klib386.dif' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'klib386.dif'\" else echo shar: Extracting \"'klib386.dif'\" \(439 characters\) sed "s/^X//" >'klib386.dif' <<'END_OF_FILE' X*** klib386.x~ Mon Aug 6 00:44:58 1990 X--- klib386.x Tue Sep 25 14:29:49 1990 X*************** X*** 43,44 **** X--- 43,47 ---- X X+ /* Floating point non-support. */ X+ #define CR0_EM 0x00000004 X+ X /* Paging constants. */ X*************** X*** 302,303 **** X--- 305,312 ---- X X+ #if !FLOATING_POINT_SUPPORTED /* force all FP instructions to trap */ X+ smsw ax X+ or ax,#CR0_EM X+ lmsw ax X+ #endif X+ X #if UNPORTABLE_SHADOW_MEMORY_CONTROL END_OF_FILE if test 439 -ne `wc -c <'klib386.dif'`; then echo shar: \"'klib386.dif'\" unpacked with wrong size! fi # end of 'klib386.dif' fi if test -f 'libm.a.t' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'libm.a.t'\" else echo shar: Extracting \"'libm.a.t'\" \(540 characters\) sed "s/^X//" >'libm.a.t' <<'END_OF_FILE' X__.SYMDEF X_f_vprintf.o X_f_vfprintf.o X_f_sscanf.o X_f_sprintf.o X_f_scanf.o X_f_printf.o X_f_fscanf.o X_f_fprintf.o Xatan2.o Xexp.o Xlog.o Xsqrt.o Xpow.o Xatan.o Xmatherr.o Xpoly.o Xsign.o X_f_cvt.o X_f_guard.o X_f_pow10.o X_f_tvc.o X_f_vsprintf.o Xacos.o Xacosh.o Xasin.o Xasinh.o Xatanh.o Xcabs.o Xcacos.o Xcadd.o Xcasin.o Xcatan.o Xccos.o Xccosh.o Xcdiv.o Xcexp.o Xclog.o Xcmult.o Xcos.o Xcosh.o Xcrcp.o Xcsin.o Xcsinh.o Xcsqrt.o Xcsubt.o Xctan.o Xctanh.o Xdabs.o Xlog10.o Xmax.o Xmin.o Xmod.o Xsin.o Xsinh.o Xtan.o Xtanh.o Xatof.o Xceil.o Xfloor.o Xfrexp.o Xldexp.o Xmodf.o Xstrtod.o Xstrtod_aux.o END_OF_FILE if test 540 -ne `wc -c <'libm.a.t'`; then echo shar: \"'libm.a.t'\" unpacked with wrong size! fi # end of 'libm.a.t' fi if test -f 'fp386.uue' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'fp386.uue'\" else echo shar: Extracting \"'fp386.uue'\" \(35739 characters\) sed "s/^X//" >'fp386.uue' <<'END_OF_FILE' Xtable X !"#$%&'()*+,-./0123456789:;<=>? X@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ Xbegin 644 fp386.tar.Z XM'YV-8B"3!DS:=R4 7%0C!D<+%P$/*N #XBV(,RP>1.&x XM3M@S(."\"4L'1$ R+PB*H2,GS)B^("w XM!!+%<\JP 9'CA8P8+W"@A8$ZQHW4.5C F/$B1FD[=.9'H9,A7_UZ$u XM2!(09-)0!\M^ROLY\KNO=RX$"@@Q<,QG71%3^#='@/K1-Y80140!@AIE"/B=t XM$$<4\> 9$29H'8547"CA@DY8J(98"B3A!!%2%'&$?5H4D4!H="0@@P(I4A$$s XMBBRZ"*.,'X)PQ1-2$ &<:*'U^%QT982AGH+790="&=L9&=Z3XQEYWI/I6?E>r XM&?$9:=^3^!G9WY, >NE?&0?VR*"#8I01AYH5_H<[.819::I'!EK-E1*N9&V2Y,5D;."A0UEDZ*) n XM'$.AD0"!203;:AAVC"5'&6>D091F(-AA5!IAB,$&FNJR.X>[[26A;AMOV/&Nm XM>RP0"(6\\*4!0@\^]*ON7P\GP<((5JB+QV1B)' #"@FGP((*,<@ K%MBG5'7l XM6*&-\<:E?LEQ1AUME.&&M,$*&U<8;(Q&!QJ)U7$&&B#0\89?VI:;@!IMP.$Lk XM:YEFBV[![;YK'\5ST&LOOOIF=I2_<@ L,,'K=IWPP@UW''&!&PLD-\@4QW=Qj XMQKBZ@+4."3#L,+QS0U$W&5Y[/(*N0N.W][+-"I[ =BS8@+)]*0C=+6&&]56'i XM"]T&&'C#)9.!!@MBN*MYM(4=MNQ!:9SAAKH'RS$Y'BO'0#O2M^>^N^V4L_Q[h XM[\(G$,:EO8\@ PPTW"#T&FD4#0)^LO^7!IYP.SQ>Y2B[E[E;F[?>EQV@XR&Zg XMX*6SP<(8JH//>N?]PB[[\-L77WL"]>O^(N_YTX][\<=#W/:4QSSGN05ZTJ,>f XMN,1PO1!< 0PP ,,e XMC*"NS!"E=]NA&/O*4*RX3 8$>M#,TS HEI^!H 4@$!<(!A:0NX! !#$0@;K4d XMH(>KF8%B9KBA5\0E!Q"R(0TY)$,0>=8F.3@F 9,Q'NY0B >0".U>1)G,6-)0c XMM2MR:8A)BH\;\()$)?K-#("3G.4DR (E.=!A$-RC]\Y8!@L^R7P9]"$'W^!!b XM\H'P9_HBH?%,.,84KK"%:(K1]L8C0S30$%91/$H.$W-(O?2P+T 4(A'E2,V)$W71>5)!LU@:F,(V!9\#0u XM48Y6EWX9IY_BDA:%7.2"&WQ4@<))PQA"^(,_IO-T(S!CX] P4;4.S R>@T/3t XMG@82Z_%SLB!H@SPUF\,AOF&$YI*!&,)Z,#8D %)$ $,+E=-WR5 #NH\+9!2s XM*P/6JJQXL#4M:D% ]NZ-K>RC=0>,>=:KXSA=GFC804U6,I$2LNX7IT:+ N:r XMMPQ.C[&0-2+1G(:AHVE&7<8][!+= $O1@LTNTALLN"0*V0^&,+-J--<,1CN\q XMW5+SMC%8;&,=^=ZT+:TOWJ5@)I45X#N$0::PM=UN>YNRW G-:4.TSO66)=D[p XM7(]IGWNDM!(<7-IVK[6X'8."9ZO:#^-770E.YSKSJ]_V\N6>BLGG'"W[Q1$=o XM-Y:R5!?)\+=BBH%P#6,A(E&F%SO+'I$H@EU#'NP(S6@F +I+%=I(JOE1,L0R_MP?N]6%4^>O#4^&3E0$='2!QM]J4T4X,)6LTAIW]Q5U H;;6DK;V%E^I5@50. #0/O<#6D?!9:S&9&P1BSDL8_U:*??W8X%;LVKQTNL03K=MS=2KJU*/QUj XMC'9[:L-Z^G7(7R]T+ A4XK.7L&HW#&*e XM%5.- L[7OL[VKX -[(MZL1J\]J[X\,@0#^*\%QWJ( =P_06-7^28Q#X&+$)Vd XM/2X='#/-B+4&KAWL78ZO^4D#+'G*6UX@F/_/JY8X<*&7:RNXS[WN=\_[WOO^c XM]\ /RAAF=9#@&[\G'LG(1CIBDY PGR0F.U'3@DC2,03!N 1E',QF5<1EF P*_$1S#\17&@1S*X2C. 1W2(2;:L20#,B55HH+7<2590H,)4S%>5,@(^@RF_(01)$ 130 .[DD(W8 3EI#NFB(K TBDIu XM- -&X(I I#OJ\BR;LXMG,!<"XRSUYQMNX70:%%/P@0<], >* 5LTHTMW-AX]t XMD'1TT!GXD4.^X0+U%U9C,%;I\3&$,C5B@3^S4B[U1P/<.%8#%(Y61HYF0 -?s XM8(ZS H_H$1 8X1P;O10,M( 9YD!D!J'^8Q8_^")#Y5Q8)S+ A#M1%H%9-XH@, /=MW/*8D]L8S#N0FE$&5U'602Ip XMYQ8VUWJ51Y,O)7O%8GH(8Q]$9Q^% QS"<2DF>!S)(36:AY4C("J3V"(MT'VGo XMHH69:)8S(HKYE"G81#DTL +RMCJMB$DO1#DQ)#0S5$.U9$^BR5RI]#3,-&/.)%U7(TM0)$6Wl XM5$6YE$5;U 9=]$NVLYKZ]IEI=$QL! =NI$6[V4I,YF22TYF<-AT31SDC$(M3k XM<)'@R8\SL&_]-F0,% 9S<&>&83,XMT$WQ%[24F\R]V8M"2]^ETF %R8"9S5!j XM-RZ=!S.X=$6=%4 "-GF5]QLC&5:)=SMOT9_.0AAP$#UA\1OUAP/I:#7?. (Ai XM.8XCB59%B3]CQ([C>*'QN)#E^ 7U^) @<)$%B78;.3 #B9$&h XM*8#2DI1666DW13F@SJ.&3[P(YC[ SS_HS_W$SQFRCMH>IAEFIK)LSS-\SPC668+U$";f XMR0+:*4&>%YJ5N4&A1V@B)$D!1%:6Q$()X$(Q IMXT$F?]',XI$.W*6@H59U'e XMY$J^>4?!>113-*"ZI$6\A)R^I&/+64EEU$[.:4QKE$S+%$?-Y$IW)$T.DZ>Ed XMUBP P7@F)^&-!=6=Q0^26-4Z9(4TY0R^927%Y5B,'L0^I]51"@LBJ$=y XMJ8YC)#5"$"()\*%E%Z(R,Z(J264)&2/YB8^7$D(* ']>^[5@&[9BBWO#EP;%x XM-[;'EWP:$7T?X7PG41+/UWP^67V\]1(R4 ,S4$ ;T;9Y&P/AA[;N5WY'P1'Kw XMIWY+D7Z F[B*>WSRQR3:"!9P@7\\:D0%Z$, R!?XPB\(J(#XX70.V!R.$8&1v XM08&6@1G\DH&?,10ZX6S!89B*(=DN+MRB(:^*X=L.(-R>"5<0KQ;TB7'BX?)2R;+.R!_s XMZ+Q&"+V$*+URDHA,\H1V@B=1^(C::X6:*"B$ J4-S"CD&RF?&(JC*!RE>(JIr XMN(JLB8L?H0"YRL&VZ,&Z&*&]."W[(8R0*X+%""['"+#IL8S-V!1$ED/1J(S4q XM:(VZE(UERZ!N\S6-(S:!5S;\@C9J,S!7Z3$20[M$>H)?"75B29;<>Y9/"KY;p XM6 12ZI94*E8:FJ+C-5!E*X]I@(Y5BJ?::J]@BI=;I6CWYI=9&J:Q$W"E13PLo XMUBK81:P9=&?>!2YD\ 9W "Y2TV4"XZ6*63*I0\CT>L9Z^IF&U*>DZ4')BIJ3n XMI)JDVIJ'FDDPM*BRB:^@=$.VZFYV*/*M):S6VJL&JZ!:S"2M]ND2F-4JJV#B$(5ATl XMP 8 RT&=PX!MAE*8*U=Y811TH&8G&LRHR*XR4'8\5Y%/ U>8!1;Q9'D]*0/]k XM.&'7K!EJQB&'^@9O %<;"ZV T\UC-)[:.LS7-5%O1#1&0V8&!L-^#"YUMLT;j XM=64=*P;U1:V]#&+Y9<>-U<=_C%G'VH!%!'F52P=C]UHB)J[6RC)OC&QF(-"Vi XM4AP!QI,H($3Q.D>)%A;'%25#BZZA90;1JL\?P\\RX,]]?'8@@ 9"K*]W3&%Jh XMI@8#XRPS@'=SG*TC/='_W%YU(%D0EM$4M-'\QQ*];D>!PE TX@I =Wf XM #S7)6:L-V"R(GH'^ :^YJ+'D:%/MK3JTK0N K4E*;4H6;4L66ERe XM.:Z8\\9J?#ZDPY=>^I=WV79QS*:N=:9M.J9T[-H A#S>":<&])AS*IG[]$?9d XM)*O5M*?U$JE^6IJ1+*B4]#&%ZIJ)BCNQ2LQ3D\R:b XM$:#3T\R' XL )X.ZP!+3T%=F :>=$)?=08TM)QF'9ZM7Z@^40_=3J(M.W0WOGBJZCA+1K-JHMYV-A &2.?0=OW=:,-6-Sx XM76EUS4>=%C=9;M=T#M'@>N<.@^-Y'<8YK;0?,R/B",9@@0,P*MF*+@,.23$Tw XMFI$4B5GL7*/^Q.'?=7)6VK#C#4&N1EX@#E<4XS3E7&05[LY@A^$Q8 ,:?NF9v XM*P=J=FIF7'&_3-[( 4U"TP(^>0,V@)EIM:Q+1Q0 6P9V$#U$2$/T=-A%(HZPu XMU&1XAZCWEE@N,^J,U4]"7;"8<8$&J^LRP.N8::!YM<[>_DJA+N)#.P-+_4S0t XMY+&(FM84$U*>) <6%AIWQML3!B,_ (H8+9ET!FD/N$_D&AJ$&>D;L^73!3Ws XM!F;"5@9O!&'#EAE'[09QAF7ISF[XXE44[[$-&K*GNI_R\;&*EQU@(\1PD!AGr XM4!@>Y)X_D^GTB=H*[Q8^AV3I=3-%$1;]Q(R41\/7F"%;21Q.?*2"HP>+.K]Nq XMQAT7C'=A";/"2S'=14%IH$6-C?/.V"]$4P<1TC:GEY-Y<5(J2_5L8/5?U]]"p XMFY0BKWJ]^BH'.I,_"UJOI9!A#*./+C21OJ,""6$1"9 &7NOK^,5/6S2)7'%Fo XM[^K8_&)#/'A?)#G;P[#O-M\#E&]-ENNGT3PT@ /;-_EWA>'!3@?#7NR1J75Cn XMD.R#M>PC DMSQMQI/5Y-5/#F#NVH+>W\'=?6'A#_D>W\LNTRX 4SD6P@U1>Wm XM/Q/DKOIG(.;.@@,%Q^Z8O$EJ3:#j XMCAX44WKG@>G!JZ>G+*0>#?,77^_J':5OPI2X7L\"%R 0[#D=5S&5L%Y1VB9Di XM[R4%OJ!50[K>VOLBDD 1SEJL9.$^P:RVN+<@%NZ 73 C#YW,@A"^8>]36\AD)g XME25NP:V3@!+074BH6Y&O!F@$[".W6,/?(H.\1W"=G\/%?JQ"X<*#@# 02H3&f XM91T>%[.X/VZ!(E&N(O2.;RY"YP(9,<-S]21'D#(<#; Kz XMH4*7I:3B8:F@8FG)BJTE+-:6+&"MVU J"M'5 7E4!\@8:-MT: PPB90UUF6Zy XME!MS'ZN-3NT.TX*FP$91FVI?9R**'CYVT&;47AIDJ0, 'K*LF,@^CG"[(-2-x XMN2P22!9"E)6;6DV6K-TI*D9%FSP9I )EDPJ762=RAZEHB7!29=_-4[4RY63Kw XM8MG?@4ZJZI:-LKGXJBJ-XK-S\DVG?:=^:-]J"'Y#:@E F9V7M/'?HIGXH&;Jv XMPYJM/&R&X.2 0BMQ^TR8.;AP5I+&V60I=13N:5@X7+.L?%*K,W >C@J4N^#Wu XM508=, N-WZR?J3@M@M):G$&#<s XM)C1^FF$3:L.-J#66J7;4DAJ686IHH%NEEGIU'(<5A<%H0$ZC#;FLQFQ FG[Dr XM+1'MQ#P9&A+FAA99,VN*R=T)#;;6YM[E4QRDYO3)2-4QDV7F+3NGMNKFJ=>?>@.2'K'4F;I/=MS:)S"+C?IN,S@S m XM2;/#@!GO3(';C/RB,WY&Q9BK1B.$FS#_SIR=NG2&X5SC/A%\\.RR?3C@-^+2l XMHXE#<>5IQV4&WLCB")J+ZW$@(,8)1Q)IX^X'H.N/LE(Y D@LZ1RAX\^0CB$Mk XM6RTYJ :FGEQVG!52CCM2N>\(TXZ;"VL") 61NOYVUFY3Fj XM)N2:@W-CP&4^(W3*i XM@^^1R$4W,!V=/7(+F:"0@!31Z;^D"1HP,f XM*#2:7MJ >OUJAHV%%"@"NX;6XUD("@56O;&P DE/SL(.,K $GKT:> *A$MO+e XM@0,S1D&ZAAF0ZHK=HYMYC_%YL4/7]XZ*IIMU]LKF&+A+=T_(AN$#5D!QVIC)d XMA&9@2;V +.'T_Q&%3!JLL0",373)@BPFAPPZFE-KV?U*=&P/:T@N01"R(D0<@^VZ?[_ F?SPR00:H!*Z#QS$/G(0;_E/D 3:, =I)]600\2+CYHN*0" GV@73 AC@5MA,$0y XM8=WBDBZQ7\w XM$ECV@H=,2AXFP_ 5P7@$#?I"S_!\V:%IZ(+(A#6D$CD42] O+.$-ZP,X+*/\v XM@0\14>?0O]8H"!A$Z- 0/2(E6L""X0'#7I (BFXO>?C 9"(?O8<53!_"I?'Du XM#TE80 Q/ ]&0&L03)D&%406%"\;H9R"C&(8Z)2)%S&$2D8<)!^KY+C+G1VR;t XM-_ FCA%#UX[BI]$2#HZN)5&:=N?IDE\Q4WZ-S=7,N&?U4<2%&WB<5Z^K:+VBs XMP.8"!C/Z>@"):W*IT\$RIIW%8FW50R[H&LR"2[^*QO.:V^1$[3V^&3]E0(NJr XMIG#O8(* 2I>1!N?=M'04*4*V4O2YLV1?,5$685)27)A'E1B&4O*TG7]Q;(1-q XMMWGXX@:#FTNKK@7HJF))(/L"K_(+D(5?,(PA0STZ0R %G>K*S9"D@X48JMR,p XM 33C9F@)G5-J!JPIAM*FW!3O/4S,DC U4D% 8GJ3\_ ]'6F2IM9U\&SB%"?!o XM0&A:3K7(.6ULZ=3"' UV^@;<:=9;J3IYL3W*\RGP*+L\(n XM5LN@_S0,!-2C,%"1J4'-APB58AD5O^-0\0)$]8&VQT()!Y]XHG#B2"T:(&I@m XMF%029;5@IE'B.UG"3%:VHIDTIJ]P4&G>Ok XMITB\.-;PGD9FO: [%9[JIV/B/%D6]/R).TTTNL9]>E0985T910!0JB[4EV95j XM58N^,SMZ 3^H3*EH.OP"&S!69 !@P0"!5WO&!46%1V8NLHI4ODE2>>1)+5%Gi XM[O0]UN1G3UH 6) >+[4XA$GT&5IEYGDKK2U+J.+&!N<:BRHQ::T&**DNU;B0h XM!KQ(7[A9.R>V?IG96E7%24C8=\4AM\Z3>G%G>BO1 *["E;CZIZPJ/=D )VTJg XM%.,'*%@?B#V%H!:$H! VPDK8]].-SL+\G+ 2P7X^'_PY$M8@&_1)-N -NH0Xf XMZ!)>@MSB/@<4P_($!9H4&"A6^(,J-L:.'PE*?]H 6["@BI ,4*;437$S.B#;(+A%$NV(H[IJA+8AWV=#?A4-A83*2A3U4B-;"d XM]74+A9"!<*-'B!?*T0MQ1-]H,+Q>3G0*N<1ZR SIX3&THIVH?&71,GLDGL0Jc XMU$/5\(:"42L[OV0A'=I!^$L<0@DW*C' !)@%8'%4"^=FLW$@Q;AMNN>TXY];DIEN1NVT@FLK%M^8V6[UZ?>5?)R7M/Z-A62C+V]N!?#D@$[8&''8.YE"!H6#;JMq XM#JL_,<+VH5LC-L32 !AP VH W0(),X#7I=C?ZQ!8+(SU@RZ6^FK?K4!CNP+Op XM+1$Z1+/N\(E&6@;&9GF$n XMFZU$;2G.!@GS16>YJ)3UHGJV#?'9;:B'BM>?O5]H HW^H''H90WM @Y@8U8=m XM&B)&U X%D9Z M)RV$E%:*EJ!.='\\428UB9RS^X#*CAM%:NTBB+4(HN^T-C*l XMK[Z8#*NV4[3:&?5JE["R<,)3I%*$,%J$!T98031ANM99_*)ZUFMW+UOPOL+6k XM1T'>^SNI.X_4B@Cc XMDD\D>6)25T@58!I*2%$F!?(H&25HREVG*]&!&!(C;U@, .24[8)>NE,9>9'Yb XMDWGR4&CR9;P92"729.-\:6DTL:KYQH@QDJNZ'I,5N.=.4C%HEB5,#=P8ZE)VBL-@D0/("$:P)X'0CAF-)M8N8[D3DPKV?PPB"5$A90%WET.)['3 N77,![5KR5.;@1LW4Yu XM,%P';<59SCCCI)QMO*+17*KI=.HC#* !;$*QB :M^KQBB7&TBJV<,>I ?^71t XM(" S%TB:@@9LBK%U#_F)F=VPBP.s XM-7J'&TL&NRX@!T2KC8>D(R]I-9PB$0X?GOOTHS:>R=*<\E3M=5ZIR:6_HL88r XMMB:KIX)7Z+D#HNI\I1BVZ407YO)(8"6/'@ <:$U114C8F3[][GG\GF;##8A/q XM/%$$C(![L ):8%<8IO)[J,MGI;[46J J#Q:PZ@*RX/8]U;_WI F$"ZM]@Z]'p XMX+ >P<.BP>4! UC"_^0^I\'Y-A_MLQ-4"ZJNOJYB<+58!_IBL^^O/M8_ 84Io XMB 3P!9KU7] 6,V 7635"T:R_P+,V S- "I8A/$69#D2BD1Q$#P=T:SCPK>-&n XM&F(!+6-4 1%97H"4 5:TM\( 90# *:1=1BVHM&*"UM Z0O$4!m XM\.N" *VUMM4M;/PAKVE%03 #]AI?8P]EW1R8l XM=;-N*P0+6_]K+$FM/W9++M@)^V![ZX3]C<3UPP;7#;NVO&QSO3TD]L,>U:;%k XM#(!LC'VOHZ<"L-AF(6.'%2P )%S2QR !MZ[)X+H=\-C:2"%A+M#VSF#'T4#Xj XM?/*/C1#TFF?G@; "!:K %$ "G=1P)("N_;4[AKH@VV";V#:!)[ IBHZ%#A9,i XMFX,P/! P!)C 4;YC7V1MM^TC+0.9-NS+-6%!4MX0!(0?]H4/63J:98ZHBR!Ph XM(A+'T6Y%MRAR&X$$P+3CPQSXS5I$,C&CIMT9GS"X2"OXP6DO[L8==4@ Y);!A8(&*$!W6!!9KW\W;="F-V6^]W$;S1I@(Xe XMWD<@K#!N(N"X1P ):#*HFW)7C,MM%+0(?AO?=^-\0Q/4K2Z*MI*2WR!!::MOd XMO+C#$H#]AACF&YKD[R;3++ZV%##:(\ UHH 8P)-C0*(QX-#[8RAP!@XN,X>Zc XMT-MA6WKW[;QP+SIC6WL:/-:#TZE^@@(,C ]A+$L#V0Q7=3$%JD#N#@\L@&HRb XM[::'* RZF=P(($<\[]3#MU/+6!H+R,U".K+&) 7@W9I+&a XMT@BA"F!0M6LR KE5-^M. #!\!*" C$!X';BV(MXN@@H\@2] !(Q@$<@O3!ORz XM]+'$/3/ZB4PAV@>\/\3P"YT X+<<#^"W3GWO*^/0KW9XSJ 9_._J*0$GD*G%y XM^!=HX4* "DB!(# $9"/3)A+VPMA$.9"X@M/*N+'B$Z-N2W!#%[O#^!B_$43@x XM"]3NKYT$C 58.%(($AD<+3) NHV*E?EK+SHN'+=GGOO.DX$w XMAH#C?ANZVX5W4ET^O!4 T_[2?>$\+/ &G@)T@'W0 =!!!_0'::X=3HI8X!)Xv XMA5/I ::#EA6 $P 232 (,(%2$58P. P_#Z.;?&?Q\UW%$P 5(!"R\7Y#$UI-u XMP&%WIO[F4B"0UH!ERX RU0?7/.ZE4 Ap XM'^,KO:;#=/5]A]**;4(!K%=2)(89@VN2P,H;#4W@>)"4!R[, ;CO^^$J(@&\o XM;K2-Q3?XR;O@;+NSQW#(>\PA)BUG N3[I@3O6?ZU47LN%]XPB[4C =>^AX1Wn XM]);M3&"8MW(F<+:?0";?X,"9A0OSB0!Y9^_PO(XS 9Z;WOD?7#G/0T'92<5#@UF(G<^XW9G:k XMH:=W ^\&+*5WS#G//;J3=_%-!%)[\%:W-\*7*ZF(BLA7>7\0[KD[E@]O=Y[?j XMY3D,H.?01+YGZG]N!90[05??)QJ$ *S!HKIBA0+*/W<@!/P&ARZ^&_=Y.-K)i XM86DC23A6/>)ZZ1TP!@J9U^\#_N.%N#]1)[T&+![COB!3F89@W[A\%!7R[V1[;g XM=GX/J8L:\1NBNXMG[G&/:0NLDQW4A)AF2 Q,]:7HFK$0[R($X][= 1T&A)4.f XMS^6%%VAOV]T;G>/Y.9^]ZWSKWNQY_L.#=T/Q&UC\G[\"CXYI_V9D="K;"GJRe XM%[$##="!%B"?W@CS]">OO'SK#RDP! [XD5B\X+W75_==+^Q9N;HU$;[_>T$'.)PYY#\P]?=C>\Z1> 9#TCV[20SJ(Q^+[/8$;b XM.@.>VN4X*Y?ML!R^RW+>_M1M.F&?X\AU1J[?S]O!TG*%/C*6^SV^Za XM-Z?I2<"EP_1)/]M3N[&]\!. K/?@N\+T\!7?@6EZWz XM$Y!_K\EK_I?'^;#[N"?W:L_<;_<5Y_A-_3=@=(H^Z85Y;=]#Z;U60,7M#BTGy XM[^#!Y !_DX/Q8)[(,SH5\.@KHM^?\JUC_+-/]G7[PL_UEQ^S7^\1__;U?-P/\32?P]_]B)_W1[]8JOC;v XM^^GS_=!^SNDXX(_> 5SP'WUP;OB+P(Q(Z9_<"4!Z*2#IC?Y(U_U7(-)O=&J_u XMW%&][W?G8YSX$_2-[N>)OO&'W5>\^1?_WZ"S6[+6YMI>.VV+>LY>[[/_O$\ t XM&-QU;W"Y/1:N1"T!V7:AEDUI!I2W0[O;=O)_&X0$[F@VN&]&X?R1'V(Q!;_[/SN_r XM1>H[=* /)!H_#KRY^C 7_C7\<8=^&^1^@X=*" /)!J_COPY.O 7_KQ+.'O<[^_M?G5^]^* W^?o XM>YQ.W+1?#X_>R@_7R/%:FVJ-.*Z!%SJ@SAJHA*$#6#D(N!)IA?P;1L+ N]=_6!@&0!U0 +$"# KJPHU,A6 54m XMH( \X)-T0!X8KN*D"\N /'"S3D47E@%Y("2<"A62!V[6"E A>>"2CVWO[\,Yl XMNZ@/_S#\2%SP*K#ERUX:AP%Y(**&?X,OPT& "LD#,, %H'"F@6L\O\7?_+Hj XMN[ ,R ,PP 70+.)I-L>V]U]ZZKL+RX \ -< IG&JZW!8;_[OVCFD 5V/)Ei XM.HW[I#P0^<&_^^?;Z;T+RX \X)-< IG&KCF#B'VL/!0=$H9@ -]8=4KDSF0h XM:"S^]8;A1R*]=V$9D =\D@N@61?.0M\9%7+ACL0%KP);ODRG<1B0!R+_XJ[Pg XMJQPZI'<5D@=@@ M X4SC5*B0/."37 #-HO?0(;UW81F0!V" "T#A,YJ7:_A,f XMO\&[L S( S# !:!PIG$J5$@>\$DN (7/:%ZNX4\_O9?A(* +RX \ -< ,U:e XMW!5^E6 7G )[D FK6X>SG%c XME_UUU\]&?LKK#S@;D6P-L /6I 3B!#K8M&U #;L#T_=76UUA7A>N+K)%Ua XM1:"Q7T!N;Y5#.HLH3A>&EKGHA=:NG_=DMR@-[:+MRPZ]0@!\97?H %;!=R@T%7C<7%$Y"\E3y XM(9*XLP,BSU+9/0N Q:B?)<#?,-!R61:<@%WP\SJ'A4C1#K!U>$I-HL$74CT/_QZI&"A(w XM=2K431*ZG=.N #>+,OK#ND91G$>&4!F -3QIWM,HGAU)7KN N2 ?,/%9:@%3v XM( BT>$G;(E!&?]C$29%KE@\BB=I <2#FG?V.%*.H1HRB&C&*:L0H2DHB#U<\u XMB77;E3RXLUC6G:46, 6"0(N7M"T"9?2'"7*+XW$NGL=,=DHNMFS+&;LUNN]U%;0[>]&2*-LC0>)8E9&J\W@:E0W889ZD%3($@s XMT.(E;8M &?VA07.3]9=:!2(C"TV^JEF0RQ; CZ9 $&CQDK9%H(S^,$%>:3]^r XM WN2!;0 5C<%@D"+E[0M F7TAT1#+O5I"Y@"0:#%2]H6@3+Z@\ #=;0T0N[Cq XMWDQ3[XPC,^P9,N$2'?C.:5> FUT!XGH/39!9=LQ2HNUBFH)C#BPJ"[T^H"8Ip XMJC0H(SNH# O=AW/R,?W)_:26=#UA&EUE*U6EEK4UHN)L9Y%5*3:IECRXJ^?Ao XMWR-5_RXTA_:!(L;V(FMDC:R1-;)N" 0K=+#JW^NJFX_^E-4=-B/<@)808IOOn XM\K !-> -@@0;4 -Z]4Y U@K!^AKKJG!]D36RK@BF$/_*T"U*0[MH^[)#KQ m XM7]D=.H!5\!T*AUSV/Q#:(;J Q:RB);,/N(E&8#4;1:OH%+UB&%@!3($@T.(El XM;04>-U=4SD+R5(@D[NR R+-4=L\"8#'J9PGP-PRT7)8%)V 7_+S.82%2M -Lk XM'=[11UL,N9<.OD0\^,T2BBD0!%J\I.W!EQ84"5) +J9Z'?X]4#!2D.A7J)@G=SFE7@)M%&?UA@A EWDDV4UV *9Y^i XM66K@;&&3M++6 *!($6+VE;!,KH#YLX*7+-\N&)"W$HAA]<$^#0MC3Eh XMB-.4(TY3CEA_3,E1.HEUVY4\N+-8UIVE%C %@D"+E[0M F7TAPERB^-Q+I['g XM7-,%;%=?3";S,29;BQ%73=)4X@91=),RQF[-;KO=16T.WO1DBC;(T'B6)61Jf XMO-X&I4-V&&>I!4R!(-#B)6V+0!G]H4&[+,K!:5> FUT!XGH/31"?C&OPFV*,e XMJ)#14/N=E<+M$7TYR4>: <V/ A").W( QR?Ed XMQ21; 36D$M3SJB/):Z)%+B@&_\9&M3&?R6L7('EP5\_#OT>J_EUH#NT#14R^c XM#NB,NT+LBAFPS!)AZ.$!AUY%.*9/ CB+b XM"SK-WV[Q<-NN%)M4ZP$YT"(XVXBX@+F0!NX,J"P,!P--P(<976E:y XM *N; D&@Q4O:%H$R^H/)D1PM@!]-@2#0XB5MBT 9_<'DR#HJ;@0JM;G$ VR$x XM9_ ?W=K]I+QSV:;,PP:DIGL3=#4@@"$ST); D)G2NX=_!@OXSL;C9QY3QR:9w XM&AL2J (5X@M8 7&.3MK':V=Q;06V,Y:(*#LXYF&]LH\G/GW7t XM*_MXXM-WO;*Y23UX\([1PF?RNR576F\*L0&r XM21U)7C\NO(.S/;:U%@C^VF4!(IYK W)6GSV>98A&6S:(/4UQM@K#.PVJ#+6Dq XM-.2S.?8XJM8>25L8.K4 L$OV%_!(VL*I'Z4TE+/FDLM>V<=S+KGLE7T\&59Op XM>=A'B6'UEH.4KX5&:O[$KC52$Vn XM2.I(\OIQX1V<[;&_@$?2%H:.8P BGFL#6E(:\MD<>QQ5Z_+KKYW%M!;8S;K\m XMHNSCF89RUEQRV2O[>,XEE[VRCR?#ZBT/^R@QK-[RL 7#!-P>(IABDVHS+#4:l XM5!EJ27T69J8AG\VQQU&U+K]S0&0[BVDML)MU^9T#V'HCNHLTE+/FDLM>V97&k XMJT)LD-21Y/7CPCM'"9_*[)5=:;PJQ 9)'4E>/RZ\@[,]]A%044>V[+!$U9H)7HHY,!PJZD9T%VDH9WVKB2TYO"K$!DD=25X_+KS3h XMH,I02^JS,#,-^6R./8ZJ-5C ]J"/ZD%@%VROP!8P /: C]L1'>1AG+67'+9g XM*_MXSB67O;(KS8U,V-,49ZNPC]>@RE!+2D,^FV./HVH-%O" (]06_$DM .R2f XM_07 AYPA-H"/VQ$=Y&&]LBO-C4S8TQ1GJS!F 3/+4$M*e XM0SZ;8X^C:MVLGA[>40L NV1_@6;U]/!(SDI#.>M;36S)X54A-DCJ2/*:@N*=d XM!E6&6E*?A9EIR&=S['%4K4&VOW86TUI@F^R0G:US5AK*6?CT7:_LXXE/W_7*c XM/I[X]%VO[..)3]_URN8F):-=BV"*3:K;P-V1&@VJ#+6D/@LSTY#/YMCCJ%J#b XM[#D@LIW%M!;8)CL,8>N-Z"[24,Z:2RY[95<:KPJQ05)'DM>/"^\<)7PJLU=Va XMI?&J$!LD=21Y_;CP#L[VV%\ 9/MKEP6(>*X-R%E]]GB6(1IMV2#V-,79*@SOz XM-*@RU)+2D,_FV..H6L<,;6'HU$* M$35.F9H"Z<.KE4VN6;9N,-EKVR(O3W*y XMD,-JUWW6-\4=.? %8H:V,'1HC>B1D>M.P...'/@",4-;./4QP-;#$Pu XM!T2VLYC6 KM9"X8Y@*TWHKM(0SEK+KGLE5UIO"K$!DD=25X_+KQSE/"IS%[9t XME<:K0FR0U)'D]>/".SC;8W^!?BVR718@XKDV(&?UV>-9AFBT98/8TQ1GJS"\s XMTZ#*4$M*0SZ;8X^C:DT8<,X8T!9SH**.;-EAB:HU8< Y8T!;S(&*NA'=11K*r XM67/)9:_LXSF77/;*KC0W,F%/4YRMPO!.@RI#+2D-^6R.K1"SH+/(:):H5->%q XMC>@NRE!SWM9E"+QTOPD(0@NRE!Sp XMWM9E"+QTOPD(0#R%;'7QR6Do XMA+M5!V7 ]/W5UM=85X7KBZR1=44PA?A7AFY1&MI%VY<=>H4 ^,KNT &L@N]0n XM..2R_X'0#M$%+&85+9E]P$TT JO9*%I%I^@5P\#-D .G0B1Q9P=$GJ6R>Q8 m XMBU$_2X"_8:#ELBPX ;O@YW4."Y&B'6#K\(X^VF+(O73P)>+!;]8',PD@#(H$l XMZ<;R02Y@+LB'7(L]7,!<2 /I(O%"5B[6+X+V1-;(F@VW@[N 5DU]777ST9^R^E73 !NPh XM$JQ/',0)/6U7=[OI^ZNMK[&N"M<762/KBM!]V\#= ;]O(1&*7[R00=%_&I!.g XM .MJJU_),&1-* 9RORJ4-Z"&)?M":]?/>[);E(9VT?9EAUXA +ZR.W0 J^ [f XM% ZY['\@M$-T 8M914MF'W 3CI[)X%e XMP&+4SQ+@;QAHN2P+3L N^'F=PT*D: ?8.KRCC[884"? *RY=G1GKIV6QW_*x XM!6Q77TPF\_'QD\G#N%'UXQV2BZV;,L9N UEBH3F##(UG64*FQNMM4%YCAY&@w XM]=PVSLL5.2]CY+Q,C@UU.)N0.ST-2*<\H$\ UER+K47E),H+K,I2&:>^P*NLQ J$5GX1-]S$U%%Z;C=3RCN7W_"NQL(2X"5'X\Y,@4(2%O8P97PH08 -G(')s XM<&':P'HZ6)32Z= +-,9B,89F P7QH,T@=\ 5R3]W]3/H\TMP)4),X_1?QJ8r XMQJ:=E:I4<@=7ZIA&6CM] ?VG >D$L$3RNXP;VT/K%?$+-QZ*%9>0"ID%-"$Cq XMX'KX6C)JGKN2(T1;'&8&> B?DD>MZ6'D#3<1L.J7S(1K(#KU;_[.GHK^T\ Tp XM/@IPI8$$CI:<^,3/ 0_B4/&K-$G?J=_94])\&IO%1@"L-)'"T9'&U=/F n XMRQ(Y*6/?:!%< U?NG6HT"@[:W +6B0-!GAN>N7"K'F#!E08";P&KANS,2V58m XM !["I^11:Y:X4[^SIZ+_-#"-CP)<:2"!HR7;9K?,!UP6RDD9^T:+X!JX#*A)G'Z#\-3&/3SDI5*KF#*^&L/=X,MI-9j XM=GH:D$X 2R2_R[BQ/;1>$;]PXZ%8<0FID%E $S("KH>O):-F!6TW((C&$=%Xi XMYL+!E7NG&HV"3H6W@!6;:)SXQLP #^%3\J@U/8R\X28"5OV2F7 -1*?^S=_9h XM4]%_&IC&1P&N-)# T9)3+H&V&R(G9>P;+8)KX,J]4XU&X=L UHD#09X;GKEPg XMJQY@P94& F\!JX;LS$ME6 >PJ?D46N6N%._LZ>B_S0PC8\"7&D@@:,EBRL%f XM;3=03LK8-UH$U\"5>Z<:C<*W :P3!X(\-SQSX58]P((K#03> E9L,IJ7RK e XM/(1/R:/6+'&G?F=/1?]I8!H?!;C20 )'2[;->9EC0!!QG3+VC1;!-7#EWJE&d XMH_!M .O$@2#/#<] A?$J^TH"$SIP>F!G@c XM6?4:A0^T@!:@ ."*P:S.@-@MP)4),X_1?QJ8QJ:=E:I4<@=7A!7,NQEL)[/Lb XM]#0@G0"62'Z7<6-[:+TB?N'&0['B$E(ALX F9 1<#U]+1LT*VFZ(G)2Q;[0(a XMKH$K]TXU&@6="F\!JX;LS$ME6 >PJ?D46MZ&'G#302L^B4SX1J(3OV;O[.Gz XMHO\T,(V/ EQI((&C):=< FTW4$[*V#=:!-? E7NG&HW"MP&L$P>"/#<\<^%6y XM/<""*PT$W@)6;#*:E\JP #R$3\FCUBQQIWYG3T7_:6 :'P6XTD "1TL65PK:x XM;D 0<9TR]HT6P35PY=ZI1J/P;0#KQ($@SPW/7+A5#[#@2@.!MX 5FXCK!K-4w XMA@7@(7Q*'K5FB3OU.WLJ^D\#T_@HP)4&$CA:LFW.RQP#@H $A4.?M0BN@2OWv XM3C4:A6\#6"<.!'EN>.;"K7J !5<:"+P%K-@$)'3FI3(L _A4_*5)ETWF/3 u XMS #/JMR-5X&Q&X!KDR8>8S^T\ T-NVL5*62NS;0Q\91>[P9t XM;">S[/0T()T EDA^EW%C>VB](G[AQD.QXA)2(;. )F0$7 ]?2T;-"MINH)R4s XML6^T"*Z!*_=.-1H%G0IO 2LV&AAYPTT$K/HE,^$:B$[]r XMF[^SIZ+_-#"-CP)<:2"!HR6G7 )M-R"(N$X9^T:+X!JX!:7P4X$H#p XM"1PM65PI:+L!04""PJ'/6@37P)5[IQJ-PK@_#4SCHP!7&DC@:,FV.2]S# B2KE/&n XMOM$BN :NW#O5:!2^#6"=.!#DN>&9"[?J 19<:2#P%K!BDW3=8);*L \A$_)m XM5QKLTYG3 S,#/*L>8 &1KPW=4?L;M1 M(KRWA1;0 EI "U ;:"/B07'>QMCl XM[S'!;PTJ/<3>^=?:0HMDEG7I.F5,R)V>!J03P$(!\@FKO*?H,2:5F[V>%;',k XMNN :$9"0N80(X#^ZE0&A/J6&'P]DB%:0P(7;A.?8?"!!C43;:J(Y/,?F RFNj XM07-L/I @(3S'Y@.9KD&S_@!KR<^X+!,6K&9]+$2M*.Z9&Q"__*LH@ /OY3 !;-:@&4@E_ ""V#h XM1Z"8XM#11*810AT +GK1\>-HJF4&'X*B?M+8E+Q0*=)X?PT+&"7MJ)ITJGO2g XM4?H-K/\JC:6O=,/(TDF/YXI>.ZWDP_28!EEE6OZU8"\W3IK7DV\W0T]JDKJV41:@#U&PRU4T=KX[32Z.<#[3 M,GAe XM97;97C+H0VFH$74868NK8\K;UT6-.](#V,"2$/7.$'B@=%6'EIA^L,B:86@+d XM5DU]777ST9^R>B30 !M@5JR/#: ^(58F#%#F$1.F[Z^VOL:Z*EQ?9(VL*X(Ic XMQ+\R=(O2T"[:ONS0*P3 5W:'#F 5?(?"(9?]#X1VB"Y@,:MHR>P#;J(16,U&b XMT2HZ1:\8!E8 4R (M'A)6X''S165LY \%2*).SL@\BR5W;, 6(SZ60+\#0,Ma XMEV7!"=@%/Z]S6(@4[0!;AW?TT19#[J6#+Q$/?K.$8@H$@18O:7OPI05%@K3/z XM[PI.NP+VI2E'G*8<<9IRQ/IC2H[22:S;w XMKN3!G<6<4H.%I%GJ4:"(+T4!7!.KU)J/X#>2,M]-?K/,-@'E #,X-24VL5;Vv XMLEZR97R)3?BE?",BNMW;]H<)TO4T2'O=FF/3+_2324FEE\YHT)1^66K@;&:0^O4H34'E!LYV%G/AXYE$A?^C$)]EH]BD&LF8*'GM O2 '-@6AO>O?:9Y:IN \J2Dr XMTDMG-&C*C=6Q%&\5&%?]88+90F9&J\Wq XM2R4YJL"XZ@\-.KI"W!)X,#"<;9J45'KIC 9-696E,DY]@=Q5RTAF7TEBJL"Xp XMZ@_XQ3\.3DV9+4E,%5!R**,_*,CIF%JJ@"+K#PIR.J:6*K "&DU_.#'9DL18o XM@7'5'_"+?T3A;X5CJL:SO'1&@Z;,EB3&"B@YE-$?%.1T3"U60)'U!P4Y'5.+n XM%5@!C:8_G)B]BJ+0BGA<+E_2,&0SSTC<]BIR*3OB<;E8)DU)W!!E3H:5[3&#m XMU$>"\M<.",.3+/)I_W.I==).9!,1.0J">EX=S_0P\H:;9$KR]36^YJS=4@7&l XM57_('*KG8#BVP:DI<]9NJ0)*#F7TAT1SE'9+%5!D_2'1'*7=4@560*/I#YJ)k XM8I-JVY.?^'=G"3"#4U/6885?.6>96V^O-.29 :RCX<291H#I:)D.\5DVBDVJj XMD4RS:%#I(6^@K W!K*99SSB.&.]H];%*(NZN-#0O %N#&0SSTC<.I*\)EKDi XM@F+P[\XR*;.99_2!8CH_S=-)F5]U\]*>L'@G-PP;8@)80h XM8ILO];D!N:]M*=_I^ZNMK[&N"M<762/KBM!])^H+K5T_[\EN41K:1=N7'7J%g XM /C*[M !K(+O4#CDLO^!T [1!2QF%2V9?