c++ - Bubble sort bechmark
- Javier Gutiérrez (73/73) Mar 31 2002 I have done a simple benchmark using a bubble sort algorithm with difere...
- Jan Knepper (5/22) Mar 31 2002 I think you have a trade-off here.
- Javier Gutiérrez (8/32) Mar 31 2002 Hi Jan,
- Jan Knepper (2/39) Mar 31 2002
- Javier Gutiérrez (11/52) Mar 31 2002 I' am using 8.27.5
- Walter (31/103) Mar 31 2002 I suppose it depends on what code is generated by the other compilers.
- Javier Gutiérrez (2202/2330) Mar 31 2002 Attached are all the executables compressed using zip.
- Javier Gutiérrez (148/275) Mar 31 2002 Above is the one generated by C++ Builder 6, and VC++ .NET.
- John Culver (107/117) Mar 30 2002 Hi,
- Walter (24/144) Apr 01 2002 Hmm. The cpu specs advertise that complex addressing modes don't add ext...
- Javier Gutiérrez (34/161) Mar 31 2002 Watcom code:
I have done a simple benchmark using a bubble sort algorithm with diferent compilers. All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP Pro. Here are my results: COMPILER TIME SIZE COMMAND LINE C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c CoderWarrior 7.2 Pro 4647 36.864 Within the IDE DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj Watcom C++ 11.0c beta 6209 39.424 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c Why is DMC performing relativelly bad in speed terms? Have I set up the compiler switches correctly? Great executable size achieved! - Int.c ---------------------------------------------------------------------- ------------------ #include <stdio.h> #include <stdlib.h> #include <time.h> #define SORT_ITER 10 #define SORT_SIZE 10000 void TestSort (void); void InitSort (int gaiTab[]); void DoSort(int gaiTab[]); void main (void) { TestSort(); } void TestSort (void) { int i; int *aiTab; clock_t clkStart, clkStop; printf("Testing Int -> Bubble sort "); aiTab=(int *) malloc(SORT_SIZE*sizeof(int)); clkStart=clock(); for (i=SORT_ITER; i>=0; i--) { InitSort(aiTab); DoSort(aiTab); } clkStop=clock(); printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK)); free(aiTab); } void InitSort (int paiTab[]) { int iCont; for (iCont=SORT_SIZE; iCont>=0; iCont--) paiTab[iCont]=SORT_SIZE-iCont; } void DoSort (int paiTab[]) { int Swap; int Temp,I; do { Swap = 0; for (I = 0; I<SORT_SIZE; I++) if (paiTab[I] > paiTab[I+1]) { Temp = paiTab[I]; paiTab[I] = paiTab[I+1]; paiTab[I+1] = Temp; Swap = 1; } } while (Swap); }
Mar 31 2002
I think you have a trade-off here. You run full optimization, and that takes time with DMC++... Now do the same test and remove the optimizer switches from the compilers... Jan "Javier Gutiérrez" wrote:I have done a simple benchmark using a bubble sort algorithm with diferent compilers. All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP Pro. Here are my results: COMPILER TIME SIZE COMMAND LINE C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c CoderWarrior 7.2 Pro 4647 36.864 Within the IDE DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj Watcom C++ 11.0c beta 6209 39.424 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c Why is DMC performing relativelly bad in speed terms? Have I set up the compiler switches correctly? Great executable size achieved!
Mar 31 2002
Hi Jan, The times shown are execution times, not compilation times. "Jan Knepper" <jan smartsoft.cc> escribió en el mensaje news:3CA704A5.2AC65F61 smartsoft.cc...I think you have a trade-off here. You run full optimization, and that takes time with DMC++... Now do the same test and remove the optimizer switches from thecompilers...Jan "Javier Gutiérrez" wrote:diferentI have done a simple benchmark using a bubble sort algorithm withPro.compilers. All the tests have been run in and AMD K7 at 1050 Mhz using Windows XPtheHere are my results: COMPILER TIME SIZE COMMAND LINE C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c CoderWarrior 7.2 Pro 4647 36.864 Within the IDE DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj Watcom C++ 11.0c beta 6209 39.424 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c Why is DMC performing relativelly bad in speed terms? Have I set upcompiler switches correctly? Great executable size achieved!
Mar 31 2002
Sorry, Which version of the compiler are you using? "Javier Gutiérrez" wrote:Hi Jan, The times shown are execution times, not compilation times. "Jan Knepper" <jan smartsoft.cc> escribió en el mensaje news:3CA704A5.2AC65F61 smartsoft.cc...I think you have a trade-off here. You run full optimization, and that takes time with DMC++... Now do the same test and remove the optimizer switches from thecompilers...Jan "Javier Gutiérrez" wrote:diferentI have done a simple benchmark using a bubble sort algorithm withPro.compilers. All the tests have been run in and AMD K7 at 1050 Mhz using Windows XPtheHere are my results: COMPILER TIME SIZE COMMAND LINE C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c CoderWarrior 7.2 Pro 4647 36.864 Within the IDE DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj Watcom C++ 11.0c beta 6209 39.424 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c Why is DMC performing relativelly bad in speed terms? Have I set upcompiler switches correctly? Great executable size achieved!
Mar 31 2002
I' am using 8.27.5 "Jan Knepper" <jan smartsoft.cc> escribió en el mensaje news:3CA706FD.A89EDE17 smartsoft.cc...Sorry, Which version of the compiler are you using? "Javier Gutiérrez" wrote:XPHi Jan, The times shown are execution times, not compilation times. "Jan Knepper" <jan smartsoft.cc> escribió en el mensaje news:3CA704A5.2AC65F61 smartsoft.cc...I think you have a trade-off here. You run full optimization, and that takes time with DMC++... Now do the same test and remove the optimizer switches from thecompilers...Jan "Javier Gutiérrez" wrote:diferentI have done a simple benchmark using a bubble sort algorithm withcompilers. All the tests have been run in and AMD K7 at 1050 Mhz using WindowsInt.cPro.Here are my results: COMPILER TIME SIZE COMMAND LINE C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS/DCoderWarrior 7.2 Pro 4647 36.864 Within the IDE DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA/W4"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy/NOLOGO/nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NOInt.obj/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86Int.cWatcom C++ 11.0c beta 6209 39.424 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=ntupWhy is DMC performing relativelly bad in speed terms? Have I setthecompiler switches correctly? Great executable size achieved!
Mar 31 2002
I suppose it depends on what code is generated by the other compilers. Here's what DMC generates for the critical loop: _DoSort: push EBX mov EDX,8[ESP] push ESI push EDI L97: xor EDI,EDI xor EBX,EBX L9B: mov ECX,[EBX*4][EDX] mov EAX,4[EBX*4][EDX] cmp ECX,EAX jle LB4 mov [EBX*4][EDX],EAX mov ESI,ECX mov EDI,1 mov 4[EBX*4][EDX],ESI LB4: inc EBX cmp EBX,02710h jb L9B test EDI,EDI jne L97 pop EDI pop ESI pop EBX ret "Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message news:a86p82$1m3o$1 digitaldaemon.com...I have done a simple benchmark using a bubble sort algorithm with diferent compilers. All the tests have been run in and AMD K7 at 1050 Mhz using Windows XPPro.Here are my results: COMPILER TIME SIZE COMMAND LINE C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c CoderWarrior 7.2 Pro 4647 36.864 Within the IDE DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj Watcom C++ 11.0c beta 6209 39.424 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c Why is DMC performing relativelly bad in speed terms? Have I set upthecompiler switches correctly? Great executable size achieved! -Int.c ---------------------------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <time.h> #define SORT_ITER 10 #define SORT_SIZE 10000 void TestSort (void); void InitSort (int gaiTab[]); void DoSort(int gaiTab[]); void main (void) { TestSort(); } void TestSort (void) { int i; int *aiTab; clock_t clkStart, clkStop; printf("Testing Int -> Bubble sort "); aiTab=(int *) malloc(SORT_SIZE*sizeof(int)); clkStart=clock(); for (i=SORT_ITER; i>=0; i--) { InitSort(aiTab); DoSort(aiTab); } clkStop=clock(); printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK)); free(aiTab); } void InitSort (int paiTab[]) { int iCont; for (iCont=SORT_SIZE; iCont>=0; iCont--) paiTab[iCont]=SORT_SIZE-iCont; } void DoSort (int paiTab[]) { int Swap; int Temp,I; do { Swap = 0; for (I = 0; I<SORT_SIZE; I++) if (paiTab[I] > paiTab[I+1]) { Temp = paiTab[I]; paiTab[I] = paiTab[I+1]; paiTab[I+1] = Temp; Swap = 1; } } while (Swap); }
Mar 31 2002
Attached are all the executables compressed using zip. "Walter" <walter digitalmars.com> escribió en el mensaje news:a87f9l$20q3$1 digitaldaemon.com...I suppose it depends on what code is generated by the other compilers. Here's what DMC generates for the critical loop: _DoSort: push EBX mov EDX,8[ESP] push ESI push EDI L97: xor EDI,EDI xor EBX,EBX L9B: mov ECX,[EBX*4][EDX] mov EAX,4[EBX*4][EDX] cmp ECX,EAX jle LB4 mov [EBX*4][EDX],EAX mov ESI,ECX mov EDI,1 mov 4[EBX*4][EDX],ESI LB4: inc EBX cmp EBX,02710h jb L9B test EDI,EDI jne L97 pop EDI pop ESI pop EBX ret "Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message news:a86p82$1m3o$1 digitaldaemon.com...diferentI have done a simple benchmark using a bubble sort algorithm withInt.c ----------------------------------------------------------------------compilers. All the tests have been run in and AMD K7 at 1050 Mhz using Windows XPPro.Here are my results: COMPILER TIME SIZE COMMAND LINE C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c CoderWarrior 7.2 Pro 4647 36.864 Within the IDE DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj Watcom C++ 11.0c beta 6209 39.424 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c Why is DMC performing relativelly bad in speed terms? Have I set upthecompiler switches correctly? Great executable size achieved! -begin 666 Executables.zip M1=8PVCT,,) A,TD 8B1DHI,8S,,98("!&1 Y/T D"?&1 P B4CBT$T>F\<D M`SHUG7&CJ[ONZKIFHVYT=77W<UU"U A,!!(?2U C"6HP9K7))(J)$D(><\^I M[N&5^%W_^W_W_O>_]YNDN^MQZE35J5.G3E6=*N87.!B681 E/'X_P]0PTL_& M:[AB^]2'UA<5ZXHW%:_AN<+[RXHCPO5,; [#S&.#F8U77[($\'8PN]AAK&(D M_">5;&&8IT.9__)?YI+%"_L\6""NO]R!'Q3YOFEKBPJYPOZR,BIX- V&`VK4 M39^9MW!)KASP/#PCY08:`C?M_HJ*OH"ZH<3H:]>Z:?;BLO5K^FE \WWB!GQ9 MS'___K?^O>^[M =^??Y.[$X>RCB>/$9HSU^45ZI\WL:('T&(\["RQO8LP]1B M7Q._AQ>I%WNA<Q$O:187H;]YCK 6OM6MV\Z+'1 3UT8:ZCL4<2WU'4$LOJCW MN9GO+ECA]= 8X0B4;^D2TO V]G+/<PA%NHQ'!&U:KG+'"&>=TMS&7Z ^PI^] M=Q7B%&8IB8KD*DFG[RNIOOEYSG-*SW1])/E*6*S7$J6^YNQ+4)[H(%K= GN\ M ^F%^2T+T3ROV;\$$I*FZCHNV-GS<66HL:[S$):A=)CSWSW.:]J*X+>Q:_FC M>O;;&,,98ZM+KT^;^C[ KE0+$<WPA6)I?0KC$1*!H4+$81K&682'(PD%,%^W MFKVAJRFYL+[.<WIHW0YQ'V A"G"$0^.3(.=A_3W8`OEY2YWG5.0TD% I_ M0 M CR)"I*H)UW !:L**.Z\6D14 QA$#I(4>"7ZD\;J.DW5Q3[J"A&Z-RCI;.;O M;97!^]!M...:T-](M&$Z3= (05H;LRQS<?;"^;KLN[,G3TZ(U^7QY5,7KWVH M6%>QN8(K?FB:;M*:.%WV^ V;[6L?*.5T]V_6Y6^^O["B>(IN=OF::3JC.25E M:KS!8)BFRRPKTU& "IV]N*+87EE<-(WR.S1^BS!*3 2YX,_6TG99M'09=#G! M2M0TA<KY;P,0)A3H< F0NQ=$&/W=]4HNTO6!X]^]+M%5'J%FW\&DKAD1!W21 M0*0N\5XU97X_%^TNB7"<Z75]Y8+O>TK2Y5H5(?X!E(7N&6H=%UR++"9L5X=] M!\4AV]52B4 ++=' _NR/. ,1P=^"T[NW`YQ0O[XZ-I$O2 NQVI !KXQEF'T( M`+UJ1+5?4]T%15O'3O-'S7H<H UW ![AC]H$;F/K/ _VIJ ?WK9AV'X((PW$ M^\=?06B]J)V [5^R[ZF7D42E2D!3LA<]$F/L^PT-K^]5N=H !,JU[QD)<AX4 M`M%Z`$/$IZ"X).(^"? ^K, =>J2L.WK?=$#AN M?3$'H0H,YE/U.\R''T;C C&N<T <%XZAW]5, O%EWTH(`+8Q4WJ7+O\/&_,. MOI92FKR]\LU^BJ&;=!'K<D A/G0[%'9J$3AKD!,I^^RA8X 0A82J;N4TI,78 M+A9=\?O)6 P2(F9)TDA#FHW=XER,,&&08/5(A= L [P6(Z?444Z1A*U0EP], MF1PF9E!TT1"1+_,X_6&_,)['QOP=CG:SAIGK-;M^B64YY?BR1\B.=%Z&H>\` M#GT0\RB/0G6U5IBI-I_8&"S,G&1L]VS4"5KSL<J1YI.5"O*18%.9N_CS9'6D M;RX!R-71V7%'R>IH9Z_6'NN)49'5:C**J'#DGJL4<E4D7T56J$B!TC?2OS!& M3ENNU#RZ"VN6.<GLU>S:"$[?K5 1\*Q#LF3J`('Y(\VC*Q%J>XPP(]K8ZEG( M7OJ>U)M[*B:!/ZZ'/6+NV1A\ $JJ(+9-T'8WL-PT9Z^?4T')V);9_#EA!F88 M;"0,DF>Y4E :/0>$(ED:;;Y2H4I;H*T,( NT:0LB\1M)"9:?1QKVXD!E; >= M(<+<8 \C7L *I-Y%(#I0I+J="X9&\(60*#K<U7%!0"1/ <[9,*4IZP=DDJ:L M,]+GG/3IP \IZ!&R/B8%5YWB%%+0011-2 76G;3 :"_U*=2HE'JG]?U7 -MX M5*F>1K70. ^X\#H_S MK21;HL4ME_Q^* SZT ')Q"<G0 U;1!-54U O`L6U08CV9 _3]YC;*D*,=5(. MSCI+FB+ %2):H*;FY HE:=9?)XI /W2^_FA#G>-,%U% )9^JFX!]6M;)!OZ, M==ZA^JGSG!8UMEP XL*F1* P=0RF,22[$CT3=<K9I%LK>0,(=EJR:4"5I%< M(LGQG?Z]VZ_\L"V<*GZ=Y=CY<K0P$4 HMJFZ>YO*V:A>6-V]M:?:OTU#H5 3 ME:CK>12++ 9-H%IL\,%7`*MG61!I >3UIQ6W-=3W*$B]1WF-3O9[<)[10R<9 M%Y:H(*9#B M=N*XZ<GI$9==]OO%MR"&G+OW)OR(_.">,.)/H$.<Z7&==DG.HTI7%#J$J,^ M]0ZVO$1'SI(:7)017[[ ]X-X&2_YG $?J0?_*#K$U4S!V>%IR,\'K;S7 +.) M%4K"DKFJIDQ<DV"$;%6C+1(_H&E201.!4,+<B4[O&% P?V?L)J;$-V3-&4:V M")SFUMT-N'&!2.JK2_MFJ< VA[!\;!W;2+.C O!N0278E+1$W;8(&S\*WBH^ MPMQEUUACH6(5"F.K> 9P9I-FR/,8:9,G4/ET`/(*60%E.2N +,>"BC"*AJ-J M*G6-SU!<2OIR=Y9:P=]> TM"XDP#PSCFJ'6#H>^EHSL =&Y2 ;0$Z?,Z`!_ M523GE7!^ICM+?8"!R>)^&Y_FF!.A%12-3(1P5XZ0I21WV01[),D"H<B/ X0E M&MJY(F^6 934%2VDSA36*4DJI%>3=<KJ>CXX;5TD37[G?Y*\+\Q8YVJ3 H;P M4U4(C 3"L50HTY>Z)^4XKDW 1AA;28?K+($0_Z>=N)I OA)"/(OU]Y'I\(AB M& :]"ZGNRR$A[AP_0KJFZZ.J8$ ;`7&6<DWU!BBS&S+M]NJXA=U>!S=.&.UL M4)'1A_-Z(*5V(E% MJ"2\X[.ST"1[?;:-%4B=HH09YV2A BY5Q&N#TQ3O039 MQG+$"=.<[RK)-&')T'H^-+084$$E&2XL& HX?0B 9YZ^3&ZJ(FBJ(L]T?8H8 M/;H;5/Q8QU;]:!T_VKE5KV2V:VI1UI$._Z?^>7JE[RQB]*S4IU37;1^-C.,> MY?\4<.GF9 .+Z:I;=YR%='I,9^A/I_>=!>:(<ERIX!.ZI^MC=3#C^(I<WMT` MW/4]\+9O`22:Q&R?B1 GNI<P%.>D.3F <Y+O*\>5?+X_01TF&"LE&#T P3S] MU<$M,9A&QP:U9AU.E8Z3DXW9HW6B!;I)4S;MS8Z4NWA]/\N!YEO=NDU+/G4_ MK4(1YDB9QL\!-Z)VE\(,^-I=_&T#T:L`?: ,? -6U2"L*M^7;JUG%NOH76 ? MIWGD%UC:WC+[L,K)CMZ-W$14OAV]I=QDR3$;(B8Z>N=Q5LD_ \M&AWMNK..( MSN::&TN#Y\9J?6;')C:)-SDV*1+YN]T/CG-\P,) [GIP'(7/'P<S(M+LRA\G M)W"09MEEDUPX[RQIRHJ%&D8[KDSE0QQS8E6^+,>5.ZB3]24[KDSF1[G7Q8) M=?E<\/WJFJL UC?.<47'CW1OB>UN4O(C79<=1Q2N.;$^E>.* 1_A*AAMD_"] M1?%=`"$+;19"CI%3I.&Q>F,=.3[1'9M5U<Z%FGMPM>"[4"S-HJ4AJ$Q^`?W, MQZT49*(P"F'^*L-T`,QG$ E*-N 0J R%KEH16./!S#XA M9'?;8W5Q1V8;ZR[\Y=*QV:& /L^"P3J*?.N)F>2)C)OKGN.?,\LUES5?X"]Z MJ_Q\:-,,%?+NP7"JSI.C5$$7=T#IW>/)>U5G.)5[$9M9U<KW`#S#Q3>RTXQU M0KDJL_K\]MN-K270U12"1?_ I^& $F2.PM% <(VP(819W/I%(\M AV,=FJH2 M&[A+& YX`M5R+_+/=O1.X]G9;J/CNID;[KIXW>NZ-1 -T+[?('VQXB?<]]SB M;9?KA%GZN)/"ADEQ1X5-4^(N"*6&N%YA>6+<V;B3U:W; ]EC9)9>UFWW2&.W M$EBG2<B?1#X M'<LUNQ;"MS+,4L25=4X'9W?F.);3"6-PQ!TC9%\%542X"X>]NX2<JS!$*3MC MKV*V*D%AS!(R=9[E+%FA:U2&3*4%B!-B]*!&*2]]= F[I2>;!<4(5P5 1A#L MR6&A!XNT,%,OK=2K?'>Z,V/W*SG-0$23?2/V*[B( 4$Z=V84[5^6(GNAYI%A MA9X2S:[?`WQEB>4!S2._H VKJ?H[PA[#Z)F(>BL&YR/JIQBI7?\>A*CC$/4: M3=5)Q/9'!,_55*6BYRGTY-B5E=-]$99L3=5T\'<Z FC;:F$*TM^0[R%I20/I MO+E+\]A^^)*')PTL(2!AN53*&1HG[FUIJ=; W>D+I6S$Q6(SY[)D$3:SH<_C MB0R!)G<IJ%B'<JWGQ[ 7Q1[$ 1Q7V2(&I7)N5ODY96/F:-WNDQ#Q6 /;Y7YX M'&GJ;F2Y)(AD^"B:MX;FS:LF-F+O\:T0%NE(!WM!C-;3/);S9J#X=]"\/ -- MI:%%[(./`WCL<9#B>" %[G[ WJ74A%!Q\=,>:+$&(!(0Q]RV+92TQ;603#V6 M45/]""Y9-(O_ZI6 `U1R;H9BC09:0?]JRE1&2%.E3"56UU$8>UGNI:1->/ J MA8JCC7D0AQWLZ1?HEH1X#K MVD,VQA52?5Y3]0P541CJ=HR'4#U MP&Q(WGSK$I\<C[L0.!9HAI0<BHVB>G 052Z1HT+D6 V,QC53W!89!>55B.X[ M8,ZH<!>PH-OPYX=N($OC'*GOVSUS%T88SW<?!J&\!2>;WSB^^<Z=J79MCMBO MT%3]$1MHLTI8K:INUU3A(K3PL)*< DY3]2 N?Y[75._ ]KE(>H5,K3CN#KE2 M?(1[A=KQGHZ\ZUJA]L5 ?XZNP;41\=HXJ$:AVO&^[FUL/5>AFOTT[CC_EB]- M`I0Y^,8_;$Q<B\?.HA6!":-9K^^!VFA<):*+65U8?2]45B,M':W$I:,_Q> > MZQF SMHKPKO^M$+\! #WH MA9T]_64T=H.><1LM7?X, +(\CGM M/3>:/.'6\_2!%*[2P6A*:8:VVEY!'70 M(CF5Y%<&S1!'?PGRT7J&XE":KV_]1)A*BWN>PY7$G ZZN )HA3JD5XWC+1O3 M68[<42>Y&ZG;V:&I[U &/P\AOGR &^#O? $K_3R4V6?>0[^=3TCI]R#TA#WT MV[E="JN#O'TC]DC?A_;4M+QM"ZR;+2%>*#V'=<Y7D49S"Y?F_ 5(HTDU;P"0 M> )7*M$_7)P($VV8I=%]JR I=ARBG[P$$$Q'TE:H_-EJR5#C)_)P_D+-5-Z5 MEJWBY&9[`9OM\!A 4Z%>0"K4? 3 `T0`_P; W]M'>PBH>IPN0 +SY9%&\)^A MG'C*[P_L`>8)8[&,SBM^/ W*\!F4H42(P UBXBW9V<LX['J'%;>2E16W`1 W MVGE%L7$$H8ED>.+U_1NB`ML&4EP??J<5O7Y>WF40Q^/Z/M"!BR<G!0?NA(OK MB'E O(X1: F6R8A :J>N;N=42/$ICP>V0SUR#N)SN/Y4!V3I0S\2T7<`9%,P MK0GNN4CS6.QC.ZVX27HFWL9(-B('/S/:F /GX'7H,+S>:8'7VWJ(KID"KUI+ M/&Z0HR0F$50PF;KP;?T!WU-5N->NIKOYD^!]\'F /E"'N*XB+BUXWU8BKFC$ MU' $"^3Y'4.YT]F E0+,)_GO:5>3O.(2*)FX'_A:](;+`D**H?) =M;UP=-N MPT"I;1-GQD(A&ZN[>75-,%W_AK[B2Q*B$(GY:(5.'A$\,30UV\5>;*)<`,-\ MEKG-?H&84BCM$NF>.5)P;V+ =":PWM\8* ?&&%NKVRO'>M2_E[;4I,(Y+4%^ M3D5Q-F^]D$9SMZ>0EF,];(M-Q&51BC4M^)_0GRN#Q9W8 MC9Q^%+5,\451Y#Y$[OM2`B>)OY+*2EID>X \3V0U8MB+T?)N:<'0<$&I*)!L M!XB7''?VL/:P2JVS1\%I?='0A2/SUG7[5'GK?O0%Y:W[`3CE8^"4-%KIBO"] M4KY/^X*I+ >B+B C).*LD_]!,H-DCH ;,R.$L=,A,IO0#SGANTN(LKV,XZOE M96E\?92.N31L'X:1E7NN$NJ7:]A,Y<:BO+U(.K'MFM^_KALR>3ZP:QN,ZD*P M6 &%$A<`2ZW[\2:QN)0M&C#VAYO MU4)-(JR""8MI;*_NWJXS=M,:"9:09=FR;!*F8K2S46GV;3U-8\5U)U! TGK* M`E+X94O7^?/7L=1LJ08)]B[$OPSQH+.%RC"DJZ1I^O;K '>/3K9X&:"?45'? M2)J&KI%EPBC6<1RG+E".:#E^&6FN[U1<>-'=[/ RZ,(+JT-)"U+(>\/^ST3( MM/.P;M60_>W2YN?IR/KFX_)FX"VE'T,(9OIL .F4_E9H ?:!&_72&O4IM\K8 M7G6$4^'R<=5YOL>S(<P=[E)!T$C'90.O<FQA-X%F?'&&+<OW-90DAO14PZ . MLWUSK<$8O>L0722QCJ5IG\6TK^*,,'N\ NO/0-$[,2I7VW*7G"]B*[=Z,*I M7VT'NAY'5^(?P873G5H7NK:AZV-TH2%[K7X?N+ 8M5O!13J$%6K1"=V^] W9 M`D5SJS -D<:\&,AC' H>QE.EQY;(]<!,?VB76(23W%Q)2"]7H=JD?$)6:G8> M/H9M'Q(,TC'#V1.B>70<B[:'^NHJ2-,]$VE[T(VT/HK:CT!WN]&%$^?.M]#U M2* E#E:A"V>9!W%$H>8VPLQ))8+VX$YP KIYHI<//^C"N*URP/<0\! &/ O M]L90&=$4*R\>H#FOPXIQH/ ] (445NL,[8YO=ACK2LAJ7>>?J W1FVA3Q,VA M4UER K0)HV&*\ I54>^&49,SX) YV=D3Q$TD;:X(Q ==' !DW%P86 JI5J^Z ML'S8.K]L3X<:?C]2V:2(NNEX!3+NF&3P1Y8O-M896XL$F#B1-IA M*_CE(CS9"O&O:%D>I/ =#NVW9PPY M%:Q=A5COD;&^$TKE,LS#O++5=Q2:B9&Q^ [8KQ?<U!Y% M\K6ZO%"-'"++W3 M-T4P"KDJ\T74,Y G6JI;^3,2(F-=_YR=>$OQ0,PZ)E?8 -/*'Z2!539B3TH; M00]6259UOB"ZM\ %D0+E4'V:>+N]0?P4:IQ ;+WT/8"%]4W&#E MY0F<M!FEAZG:+%WU$4TUXO7LHN95+] B<*.$;*U R4$;*T&9LQ]+,D(*VB,% M/0:?>K^VOD<;UV0\?XCVIBEZND9?IE<13J\&<();[(OUD=!%RO0ZL>T$W=B- MMD"/MKY7&]>"A(;I2KX.MT2J6S75?T<!GJ\U?[(]G+8-M2C25!_'X$710G8T M!&*HN47CL6,>H'W1?"% -YY:ZUQ#FQ1J)5FG-4#SID$F.V8.`-V>ZLL0LG5" M? P*SG$!BHC::Y0G(_8^(579W+"=S9HC9,:8&W:$TK2R$0&H2]AFDUAJ$?ID M U+KKS*U5E-JG3S83X<KPEIUW"<8-Q/B0N(:`L$2<9:IC=U(FK%XE"CNI/F3 M<5W U%WD89WS<$Q KQ1DP1)AEDJP WIJ_GYK)'^+,$LIK%.:.[>J^&$"DZ;8 M%BR-E6WW#E2()9E8_PZUJWSZP5!Z*JOMTB7R1?VW"G+)V'H(!5!<$X1ULSWD MOC"V'D0'Z;ITD6U:Z--07UPCY$M#Y$ \2T8^.J =CD5&L0CQ.2J4A!!J80:& M*C'TX$,H*'O($H:FK"=71+1TC0,M?ML8S^-8,](B>GK]_F"$G,UZYU2W;SUW M"#LAF1_IV4D-:N^-$=?UTL8)/H2=]0`N:0(SMDG"+7(&=%/S1UM9&\G1:MY1 MQE,Z]N%0[LF-!!7H??^0Q1;XY;FC$E_%*26\'*>O.CM8%PV ZP92G.,H2Z.E M"-=QQ]?7$,PD 07FRCO/H8+HGH"AW8=Q__:P0E.-&\=N"NGX4$$ZI$1TW2N7 M4(!9H/V+X;=(=N?'T7"LKL_^6:"E!5Z5TF*!:VDYE])CDFY=U1E-=2X,$!* M:P(61*IBOWDNXB/'W-'&5L<5 _U61XIY8^2#K>'&=G>TC3WI3G&>-3C\AHIO MR AY7(.<(V$23\_7:1TIJ3R;0[YU+V&J6KD81^\4[A9'[U28:/9.YB+0,BG8 M.NX<QF+0[,))F<4LG?<`PJM!U1%!,5:B< R/6M0#K[JUY%U';RH_#B!4-G$$ M!AD Z'HJK\9VM8G7<0!^%QA&C8<#E7%H4*="8=%G?PU U$^M^+2 =860CRZU MDV B. ]'WANP9UHJV< ?<^L.43.NJW/D<K,7'6GS^:!L8S>6DK2!4!0)9MH` MDLF+9 HGIVWBN6L4K5)/6%S/()E*:K21"9+->5B+DIE*Z5KDIKV4]<8BZTVE M<O K-'MO%C\&'():+YAH?$/<A^YHB?$<5Z;P$;6HBMC$)DH%=ZK$G [_%/X! M:!+07&CL/AHTI!,,UM^IS%/1 VZX;^)1CME']T\VAN-2LGJHVK^(G,AU':\_ M8>0H2/E7_%3\#QQ__5&X1R%0JW; VEN%!4IALUH(V?E-$,PX]R72<W7_"O+- M/X"6[#LOMP%TQ:3N3'40?XMD96_R(B?#L+7\'32"]]WAK!\CP=G;:E(AY!W$ M) X/ !D]LW0'Q] #WL96 M6^F'_?V3'OELC%>J0RTUU5= #I-!_S"_QRE) ^\[]VRUXTB0:ZY:B"9CA"BL M#ZT4T4JX9#QY MYX"1TI8K.96 ^O<WOHM2E+2OTR;B_C8]JT2\(C47Q+V*N^D1)KE>=&N??.K< MI(9YOV32CX?#W/=%&+N[#VNY,.B-O:>0IG0CG.XZ-8O1HR1#Q>&D`68!,/"+ M( ]Y ?(6CMOG*R ZK!%:3\5%25OM8C>P'3B;;-0RM3LS0L7A-B+R3?\.>]>- MUO; _Z1!7E3(5:).4!-Q0^">FN$W"0O#YD1I2JOE'1"M*A R/VWHMD7H^-N% M+*VXC7(R-]I=$.%X3^<JB.CVAO(JUPEJ*QIQD_U_:C,(JGD==Q?=>U#DKF/Q MO1Z&(3VH> DDR+W+ B,P"E1])B#Y<H8[TS_;-<-?5<?_ /))/GL(,P:KX3S MX=5UVT(NM34JIF:)O\?6;AZP ITG[4//0\W <E4ZHSZH/I+!X'08-A;K+9ZM M^D1/F9[=W08^VV-UQE;#F1=?)%BZQ?I)+KT>`*9X. ""(*AV(AI!,L)<I7"; MF!8%'+=424+(0B49!V6?XG:483UR\*Q]8DYU.U\/LZ$4AJ\%O\V=XY_OJ6!= M03#LV MNM1ZZ3CJ%^ $'<&SB)U)+'J>G8$!I$.,H01Q'E:%2AL%/X/^HZ!X^DSW,T]B MX5? PD?'S1O Y]!_D'$0\+.QKG/%R 'T=_84;E4Y>[;L"'**NK[R8;T_K:[; M1.^?`+9\G^J^?EXGVQN 0.^2NV.;&!-)5_AHW9S6KK^ T(K!^,-_H2M36M(+ MHNDOMCX ><S(7P9J3V1 O !Z3>C#CO-$U8 L#HSJSR(M1L^%2V8_(5"Q0:" M4 3 AO(K"+#C`T S4B+-X2LR:2"%^$N43MW;M?L=O-KQO /D8+/X$83EKY.( MME2(<>4/H$:P.!_*1?,"^8![*'WH1TGHBP/HJ19,=^D$]2XTC,F5UMO"Q?!1 MLLD9:1L -_(UKX/J)A;_DT["0F%PZKWD]P^<K]+S5^08'4];1 L`^NZ'<2%" M]05PNA&!&)"]6-\Z\1$THFBGEB*2`4J_^4E[P )I`XJ0RY<"]>O;LY2TGX"1 MS5 #J!W5[=RPM&PE%R+<!NE_[,?Q-.+X^R6TN5$SW 1)91*R5>*/UZ6*\*LD MP#H MPN:,HF,)MF(W,(+O-CS4;%>ZL_-(EGHOT 6F;/A6X*TJ<B;-JP;I')(BB5 ' M*5#F&K/R650:^(LRF)RGE!=D$RO,40MCJH](F20=1*5!O!L_)Z'Y3O=Q-"TG M(+W-V"H?!!3#OO+[Y>8GSF^'' /N_(T?-TUN<AY7J9?51*5>B-+"L GSIIV] MA\PT!:VW*1)C:]Q[LG5'_5<*5A37_ !TA>G(5"S*/ 21E*M^O7]/OJS02<65 MN][&CW5]X/C YBK%1FX?1KDJG$(XY 6Q.NH2E'MDWH39%ZV1N=D^&D:ZRZSF M_H>L^U/[!"O>&8*WB]1CIYR*MT,8C\!\GH PHQ_M-GB6LU7=H"2W^2YFNA-( M6U4W?Y;01'$B*$.47U;\0Y[/RH?C]^6^TV=IXZQ3LLUB\C^HM%Q,F "UL=MX MA*(?0WI)S(ALM];FRO=7M?(_.NN5;NT,<'U->IJHX1Z#A^ N>I0:8^N^KK>I M9\B0![A8/L:Y"1>12P1;>(E5"PQ48AW)5(90<GJ-U,82Q; TZCNMD:^A^=P= MZYA27#E9%P1:`%N*NY"EVI>HI$Z$KKH/H9S6Z!MA%0AK*XT>`(M0B/\<G=Q M?J* ]D6(P[M'W(%NA/$R[:>'VA/C=F,H6KTH^6B/DJXK"T_'(*/MH6_*C^K/ M1ROZL36X1"H6#HJF0;B6X^Q50%%Z _A "14VEK2?GB?AB*/II 1C<9802!". M6[UJW.H-E7;(<'^,VNLXK%6OX9[MK=" 92MI^_Q3,F,,;0S&*-98]SQ^J;UA M'SPW!MIW,+S*T.J*JJ+-2A/0?0G9-J3/MK&SF]K74IE?HZ#VD3C U2.!)F A M"HY\W<9LNA?X\K*"&^>\',2-$>^\3F7!".<5!:^N_8-T^4L(7447O\'%IZ-4 M+7H2G.(^"394; 6'+UBZ*Z.+[K$]O\K&/ G/*S_SH746'P&LGGRL<>^PC?.G M7BL68\*P/LK(>Y]X;5NMJJ\3>!*U*" \VY=[_H:\[FQ0P0RHMY3OJ,V%ACRX M:16J$V_0'6:T`L ;T6 _$9^3=J7NH&MUM!02N]FO!KR4X];0R2",:;4BH#IH MG\:UT&5:I=[WRQ+G-F#EV MJI'W:SAA1[ I*=K]05R82VNK/ZJ:S5]<!'41;X.X%<XO [CA+NULB-S SN:" M7+D*[Q[Z V0/[!_'J8C68U/.YG_ -%SJ;"Z.:$FN<C;)59%<-1>=DJLCN1 2 M4;P8#SD"&P?D4ZZYHV),7,>EMJ6Y,FCC\K20594AX <;9;7N%Z35YS$<SZ_ M/S<?EY0/7D59%A.STX>W'TS%UXZN>Y8C.O$D1*$5G&JR4O^D8%/Z.P:=I[C9 M^0KH>DZK\G647"$PJ7P=%:EG44N1;XBZ+7!#U/A:E% UTD6&])(H37^(&/,% M=CTQ6%H6H^.#A,<?]3R./"V=N_X^2#FEECHO2 M0 =[U+$^)3D1]WW?/10P)2 8LIZZ!)6EOBGI"*D_MYZ3IZ2^5?*$=&K+7U = M;60_\BP-;0SA8.;<YNS0S!'QQ%&]3^G*8LU'>1_IJ>]1-LY038.XQAEA'+7S M=\T()ST0(#Z.5C M'<87W+">B$J+]3!=:QG9M]*BDBUCO-(:CWH/KC1LE?8M^;Y('#EN9D]$-]T: M<6%C."1;CO.R1NFFJI[K-.AI*:B:!EWC)QYD`6.-[A!.B\2";[#UC74D" ^[ M$;JBV>FGH%?Y)8- [P;0&C3$^QMK<^W!0"L.T-LOU& ??PL"WZ"!5VG V]*) M&#SZ2<_1[:.8]TEV$,&2J4Y'+IZR6"D;!\M=+E(Z)C,HZS>_AE(><1?I0T $ M?$(9_KCS.LO?(A.&% O-WN1LB6E(`!/6NBDV[,BF$'$6"JQ+)RZU.T\P8AH] M W:IS7D2PJ1OV)'-D8%HW'"3W5Y1T^\)) D[PH^9RXW.-G^T,8S4DY:XUDL7 M'T>3`7(T[HC7?,P>PX\T>S<.CVLCWK C<:V2\ ^N]E\]>M2[9.FRN&YRB?S( MMH\X8A^5`_ _;E2:O97?]8SH'N&?O^GV8R>.M<>UW7KT1_NW+ U1'^L\ULZV MC3A:\9V/?E$_(UVD=_6J>_NYJKJ55X+ VP.3H5ZTA'Y!]/MW]B*1*X-K\2/L M>AOG[CW18J886".CNJ>\!B V2L=?`NN=HE) ]-?AX^VWEU9*RRMH!2=?0 KL M$'B67261>F&DX_1U<XOFD6%8:K4^KH4]1G(8X5:T<PRG=S-VSL>#ZEY64WV" MWIY'#Y\+F<K=)U'_H44K25NL5_/C!1-ZZ'T'4>;K&U5"")J$;0P3*E48R/N$ M,B/&%?7P6]#SES#FC M!,1 MV'1? ,XJHT]T1D.M)'M9N2(N :\RG Q\0)-'.^Q>!W'K9X8EM86%#XR M:O=)W/ N,9_\&=7VSXC&I=LZI7AQ/RXI]N42,%R4FV[ _7![_%&JUW$>Z8]2 MRU\M_2Y:2E<D58()XTD$?1MP6BXHA B$W8<O$E[=#D%!`DVV#U MDP[R8]R',,VX*+X>PC#TQ MXLM0"<5=E)-_#I([\;J?#D.[L=45DTBQB<^&2M9M(#IZQ MZB\K')9;&2Y8C/J3W]^DH!VZ08G[H_Q1.55 O:T"IM: C:%[+UV$&=DI&?Y+ MJ_3T' J&-S'RN ]=L*$GT0?J/_XHG!."[B;I=2NQ!MR7_?M8 ?UL+PP&$_9C MTZOU,!9,)-\DG<AX!G E!CI8HOY2R_B3X[O"6L W,)5(.G'W,U*\=/< O2 Q M5L5-IW'CP3=U+P4)\=V.PW(^JB .:?% :6ZKC!!O[44PVJ&]LDS&/DOJC=V M,/8 /6C:)J[;)^W10\M3QAAS&AD2IHMW-[*XQA;L2,4KP=% $HW3?+A1O-1/ MN^D1?AAHRGB>_\47<%\-[_]<M%0^78)G;*! I?+"?2GJ-'C\*TQT7*;E+ZYN M!]UVV/"YWR_==DCO.D0;X,-TIC]+6*65%[D6J(,O4".3&9%0C&8HAB?G!Q Q M>-V+.6JJ[H<"B%/?A23?D'EZ'6X0`[8-B&VZ?I*Q?7<;!"4^5G=H$[TY/OIU MFR3T,E]\\05"O?*&`9H:D6_$>"#Y MW%=P7M?R49A$Z][".OR(R[^<#W(V*$"-\TQ!&W+&<,383J^S0-6(-)F[MHU) M^ST.%96*O[*D3?/Z%^P5L[<"/%F^3],B]3S5MX2M>G6U'VIS"]IEL[QF)YI= MVHUAQCI7BU-<5N"UK -P>Q\XAE1 R):!(343;C ^TZ?_1)-WZ>*?I/M%ZFNM MSWS[4YL;N%+DJ6 ;E0J<[K=BOM+1 [DV<3JB]>)Y`3QH0EK$_WA.'N,&88_\ M*=Q!*_61C4&,3XDHT/ R%[4A[&%U] PD*LGBZN>D&_S$I> `43L*6EC+\$_C M*!;(A(CBD]+YAJ&5<UI[J%I4!B!14'C/<A:4!\WK7O'19^4[86^5!I?D]AO* MKGD=:$W.BNI R=87E8,6J+/$;2$W)H!XAFIJT8/VI_I68_L;C$"#X ML)M'.%*MG JZ85;5$?XBCJZ!FJAE5(XM+*-YLD[SEDA5,[DQ,_&Z%KRK4%J: M/?>R'O5K]! -3%Y,=(,.)CUM(#H6BMG/W(2O`AG*BNA/\14 :9%W_,1GCH/> M_2A'`M'2W$V[EZJNRDET?J,>T%[2R8%/I.)WOH?V0'>2*U5G-%7_E*X/4HA7 MVI%WP!DD=H'37*^IQC^/!&VHJ78S ;U(<BGNTWJ_` ^*E&' :/(]G0=E*F%2 MXR7)+[2&PI6)!M(A/H?E;3.TBI^ PQ6)?QA'28Z*CV)PLZ%;/(3!G!(-O[X" M&N96; S,]ZMGJ3EU=K<-5W?%U]X"XJ-YQM>RY6G;$)O"?.)U![EOMV3:0RP% M6C!3B=7?TL66_I5!9T\FVI<5[ ARUNF\$CV5E)ZG >G3I8EDJU =3.D)ZOI< M:9LJ&N+;Q$/!5!(.`^='U'[<]SDX)TG;;$K0SW&G7T$G`7*U\!X:F/:WB$$2 M'C4XGP9G-FGP=4+M[[G1_G )3D?(YT;$F5)]OK(`IN5<-%V0 4ELEWA %IG2 M2,]0D[*^]0%2+^W888>6AT?Q% Y13?V2MAB'QN8^41*80\<U'^OQ3*&7`WAR M%.+F7U,K_,%B)P`+LN:H>.D4\- R!6DI:5). WR:3E&"9K%U]/!:G4(T(8XF M(>O^W] Q3UM]GG\36TP[>%B#R M:!J>-46!7H,:JGC 2:3] +8+)-Z'*8 *V'N6DL3H.[D`A^(=9] 9'JJNV[$: M^Y<,/ NOO;PA=-!8 PBH67>)H"%72J!R527R?9H*\5G<Y*E'=Y"X!]PEYGI^ M+A*/3Y++T177`H*\^CQWNQ!+NNC26BZ,<<(LI;,.N_SW( %&/T5GV!-LOMN1 MW$*VPND%JM?QOY/'!=ZYM^>F8P*U?S$W<+:*21[+&'-3Y7C/1K_'$KW[Y,*0 MQQJN+5AXK+/DXHLCCLR867+QA="K],*/XZ1I]TF(Q4W2BR_B5B=$R?WXF<\- MSZ ^_;GN&6]^GL/Z,MTU'%VKVPY3SDG;<0/C55P5&OO&Z_1/3>Q]$Z=Y;P71 M+4$/;BG2%+R7GC^C*TA59_ADUP0,-G1/KLMM_^J$1;_<?=C0: GBPT2T9W,U M9P;PCL.S6D.+%>Y>SH*^F/(>VJH`!E<;S<YU5!H&XUK03 '2H<(2YQU '2;_ M_:WN)C^G)B==R]GZLRJLE&O,/0/LW7&I`_MO*[WK`Z],J&[7/%))M1R&'PGZ M2C"5ZL8Z<DXV/I8*>RMF.(0"J+MR5AA5T,9C'>N9?Y4T+<*9'FG+S5NGVHN; M-;GR]3%X8!R/8 DY5TM(".F1T=/^)[OS%RTK$53DHQ+S4;S4I$1(I39;?BZT M65R[AVJV[^+"R4M8>3^O-';[)I,>\<,!8%E[9&DZ$BKW]\?EM37YN'BDGKP' MH_%G']R-^XM]MA29PFCH[Z#WI$"1%3UT</ H\0_5,6+%+^4[<MK%Z![93 -J M.07O66U&>VRHKN^=&PY4E5 +&7M8B74+LY%:Q _M'R6YST"'%$]\^\7E$W4G M[C?INX>^:^A[#WT_3]\&^OZ8OCOH>PI]4QOA"9_1=PM]GZ'O*OI^ [ZGTS=' MWQ;Z?I6^7?3=1=]/TO=B^BZB[_OH>S=][Z?O3?0]B[X/T[>>OFWT74??\^ [ MA;XWT/=5^FZF[S+Z+J5O!WVOI.^GZ7LY?6^E[W_2=R)]Y]+W^_2-9UG^5_TL M_7_ZDU$_P3#ZQQEF^H"P6R!LRN,W3ZN7_QYL/'QM\.3"LPJ><GCPDNLGX7D5 M2YGWP/,</*_"TPQ/&SQ?P],-C_K7D->O__]5SR7Y.7D)\=.*RLJ8N3EY"W+F MR1Z6R2XMM"_9L*'8GHE_2SF[;'U%\:S"\J*R8D;!9-N+"[GBG,KB< YB V3_ MC+5EQ9F,4O8M+H5/$<,$,].+RXJYXFS[6F[MFL*R_.(UW-KUY4R('"ZE"F5R MXN*<\LJU]O7E#T M!%6;M[8<2J(9$K*,T=(0WFX'=-/7VJ%HZ^V;H=XC!H3+)9Q=Q(P<$!HHZ: ; MP "0B<30&XO*1&$XUFKQY W%S&CJX\O*< NYT 6%#T$1F5LP;%YA!9=CMZ^W M,TPT]:\'PN%?`F686]$_?WT17T;)*Z<:<V/H,H:YK3]4:E^ C,&PA3GSD5IC MT8W5RRPJLF,C,+$8DL\5R>S C$,_9ERPOKP8J6I_J%!J/1W&+(6&H;[QS.QR M:-["LK5;;N"&VYEYQ865-P0S=S#SUA=".]QO+Z0TUS/S^3)N;=9F8+#UR]86 M%2.;,A.8?&RS\HKU9<79G+U,*IF=F8CA`RB\M-"^%O\*>29SYT_$+&,FT1AD MJ\ LHW]E>QJZD5F9N]&%A"HLXXL9`_KR`SXC\Y/(F'AFZ5H[QQ>6R1 3`GZ* M-3' 6\07VS<SC(E95KB6F['>G ],5E:\\/YU0&,FB0D0<?'Z/LHRR<PR: C* M)?_]Y[+_/_=C69997%S!`1_H9I=SNJGINBS^?F!^7<5Z.Z=C)A3I'JJ8)NVQ M5%'\4.&&TO7V8AW^6?N?"9/?%\"7`\R#Q47XEXPW0F]]0+=^8WFQ'?%(8]?T MUSRH6U]9;"\I6[]1!Z]"2I8-V-_#BP M&I[#BG"Z0FET'Y03IH<JED%J8+W_X=28%D;-!XKME->*BOLXC28OA]+CH/J? MZ;/S&.JG#OAEKYXQ>U[.ZMD+9BP<Z,;E?28S:\'"O/F9\W2+<_+FSUZ0N7CV MX>FZ1I2-B?R?>/"WQV#K>V[R<_S?7)O=9INDK$F_(/RQ-_S"U8-_*7T_.6 Y M YMK83>)R\E?_+^VDCG3%_^OIC->88=WB^'=>$ KO/\+ORKVQC9XH'3MN ?+ M'BI?O^%A>P7'5V[<M!G_IA%C6V2CS\^%_[EPD7+[!61VT'^![,:K!OSR#W'C M5R%_!_KQ2G/\IK+2-WB('[_LD'0#T^-UZNA_"KYTW9]J- MES68\'=R["FWT MP9_N)1NCAV<*/(GP6%Z23N(P82P[+$09'!RL" H9'JP/4;&QMXV,B J*TD>I MHZ*B0D*B_"'^*+6_[Q<UX*<>Z(G"V% _&Q4<&A)V^Z !"6(`"^(:R]ZA'J:D MLT>. !_$:_#WV%<IPU=E;XYX__WWU6JO05TK_G'8E*+QPP!/^+X-UG#R^[:P M55F_" .486]\]I$*Q*RJ2IN%?TPV=&M7?>BCCSX:&LKGAD)6H;1 NVSTV3&2 MT3T[$MRZW%A\NU; NR4/W_>MIF_D&D79=G1W(4SX9R9XCQ-3,*2L`-Z1NY?; M_EM+^.^?5A*B>H/3,,IXOW&]<:.QVB 8GS;N-1XR-AH5\:KX)?&%\<_%[XNO MBV^,UR8L2"A+<":0A%\E_"'A3PFO)1Q,R$A<EK _L3-188HPZ4W33-FFA::E MII6F-:8RTQ;3HZ8G3"^8_FSZ#U.-Z6V3U_0OT\>F=E.'Z6O3!=,UDS)I9%)& M4G[2JJ3BI*U)!Y,^3?HJ24SJ3KJ2%)(<D3PR>4SRA.2TY 7)BY,?2'XH>7.R M(_FWR2\GOY[<DGP^N3LY)&5<RITI4:G6U*=27TS]-'5'VA=I*RU_LQ18*ZU_ MM"K3H]+'IR]-+TQ?E[XAG4_?F_YZ^B?IWZ1'9<1F9&>4951E_"V#T>&*.<., MOB!^4_RC\;^-?R7^G?B3\;[X[^.OQ(]-2$Z8E< E/)6P-V%_PC\2CB8<2_ Z MX<>$:8E)B?,3"Q(W)NY(_&7BJXD'$M])_#BQ M[36]!FWPCJG)]('IF.F4Z8SIK.D*M$!X4FR2/BDNZ>ZDQ*14:(V<I-(D+FE+ MTFO0&I_3]KB:I$B^)7ER<GKR].1%R<N2'TQ^)/F7R2\FOYW\??*EY.O)MZ9, MS/>;UYL=YFKS[\U_-[>9>\U'H.V^3]6G34Y+2DM/>S[M2-HO+-667UI^:]EG M><WR#TN]Y3W+2<MWEEY+L%5M'64=8QUOO=MZO_4A:Y759=UMW6-]TOJT]5GK MMQK,ADQ#H6&=P6UXPO"6X9^&!D.SX6N#SS M,8F+$N]-_$7BKQ/W)MJ!T]RTE__5]"%PUB53&/ 4]NH-295)GJ0C2?]*:D_Z M+NG'I-ZD*<G)R9;D_.3"Y%>2OTC^)KDKN0<X2).R.,6>LA%HM"?EURG/IKR8 M\CK0J3:E+N5?*6)*N#G2/-$\P[S&7&[>8W[._*[YC#DUU98Z-W5UZL94=^J> MU'VIT](2TQ:D+4DK2+LO;4O:SK1'TAY+>R[ME;1/TSY/^PYH&0V4M%BF`\V0 M>R9;$ZPVZQSK(NN]UB+KM]8+UEGI\])STQ>G+T]?F7Y?>E%Z:7H92 TN?4_Z MS>I,GYH^,_UH& &]<%K2S*3RI(JDJJ1]T+O.0?_2I.Q.^6U*;XH%>&./^:CY M:_.WYFYS2*HZ=4SJN-2IJ?&I<U+GIY6D5:;M2"-IKZ:]"_7UI2DL&LM42YAU MI=UC\5C^;;E 28">6VLUI*>D6].S*:?>G[X^?7/Z,\"KKZ3_1WI=^H5T!91R M!$M"4H(AX:X$?4)L0G3"R 1U0D "D] ;_P.TAQA_.OZS^./Q+?%'XP_''XJO MB?];_*OQ+\4_'_^[^"?C'XMWQ>^*WQI?&;\A?EU\4?RJ^.7Q>?'S0'[;XE/C M,<- _C;C3^8?, YGZ"QZ2Y&EU'(T0VOMS6B!OO>L]7GK?NNKUC>L;UIKK*H, M``!);G1?5D,N97AE[%AO=!15EJ].5Y(*74D5T-%&HW2&J(P9732B<!JDD>X0 M(!TZ!#H M1I,H`P1<C,*Z88?%:CM'XMB;=* WM?=6=2 X,V<_[8<])^^<JO?J]^Z[[[[[ M[KWOW?*MV\=8&89AX=%UACG"F,7-_._E-#Q%,]\M8 X5_*[TB*7Z=Z6K6S>_ MX&SO>.ZICL>?<?[X\6>??4YR/M'B[)"?=6Y^UNE96>=\YKDG6^XO+)Q2EN7A MN])SON"U7W6./]_]^KU.FU%?[F2Q_J=CG5.,OG_H7&C [W8^8-1O=')0K]K\ MXU8<-RZ3W\LPU18K\_[E7RT8QP88P6*SY$/GC84MF XO$9Z-V=6*YC>;'3-> M,W^7I8-B-=YB]EN\CHL3='+H:8:9S?P?E(VFOO]<N5]JV29!_<\U68'\WQ,, MBA.XW-_QY./2X[#B\;4[QW5PHX VW/>;9,R/2N 5RO(*_1%=E)DLDV6R3);) MVO6'G3;B3Y/VS#L6!$7:G %L"O%GR!P3\K-TC &)I)W-0AQM9\VA+&GGLB!/ MVSD3Y$ [GP6!(6^"/&D7LZ"=MHLF"#SM6=!!V^TF:"?MCBQ80ML=)N [259 M[OT,H[T%+>4X1X>TMY&QIAY%^#T;?.RCIRJBQ.)6$NQ"\1Z&V?E=0/O',5U7 MCK,KY-]KKP!)^8>;HZA0VG/DK.\)<201NYI'/XAI,ZVG5[6>QIF: '] ^P'* M=YQO;FJ<*)'V- A9$;V.!*A4QD6&I?N4A67[W8PU(!=K2> >B38$I"E^;0K+ M?*)-O?%Q05%P>;IKK A?6VT!S6XSI)9G189E2Z5)99'RE(\$Y?)0X(;\G"&_ MLJ.,'=CZ`UTJ8[5?X_[!R%OF>\HX230PE!&Q+T%7^MQ^F!Q 3OL02!L:XG6! M^J/;0F[0\GH4-:UZRAQ^(' $M/T"*+^>]FN]1:A_1W,3C:\'H4\#BQPI5_O\ MIC4B*4RA>BO9 \RK4 <X4LQB8PN_^[*^"P;,34._,IHC\;M/XE\6$X -<-8/ M#F M>/GUN3Q4^EP.WEHJ T[%TR$B7Y ?O"3G!;3.6T&P7\(K64Z] Y2C!<37[Z_5 M-LY 6>,4=D'N5X*7&"3^"1*_"B_%E]'I1VK+"4V$Q<!&X];DR(7*0MR;W ZV M\$(-%&:8H3!NO8Z-Z 9Q9-KJ!D7?;-? C,?1ECBM+F.5NUCX8)2[.*P.VO?C M4%*(#M.=ZX W_H-SQP] M\J'#O!&W9F<1E>7L>5^?O=5_$W74:!$[:Y8Q]<P M+;BL,BA2'T<7BP$J\_5TK'P[KWR4B5T1Z*G-O2R8B[K'X '!B&^(%BT;CEF( M+R-$/H...K7D`3J=K$G10(:L2=,UJ>$/+*21EZ7857:Y<G71%FO;HG5T!>M: MP<F/*5>=[^$OPA=FT(_/)M7J'';D;.F&(YZQ`GD6"% Z(UFB+A^XWK/_R'& M\L8N4$JG3QB+ 18[H?W"7:& P,A%]&-#IV MK1.H&ECX?M?X_EH-&W(7B-2;(7G$,R=#O4,Z)T1&`#V QA:)"N$+*&!A"7S1 M;%:)H>U+&+E V<B.&8BRC=/ES77 "NV\?LZ ]';QYA/+,'):;) X&XH-Y- > MYOIF.)-,[H7H4_45NBLF/Z1ZB!]FP:"#X+ HLT$45[<,0:$YKI ^:'ALE $V MX<G32 VGDT?)3E;/-6:I%!4.0E93LWD"&][,U07H\V)]Q?FDM6] "<3441K? M?P/;I_XUT\XPKJMD36;K$OIQ^:E8 E>7BHN5JK2N= ["::FK^S)0$1'J*[K> M[<X,X:>?[0YIT,"/7)QGF?P)70,6E\Y- T#J2IY4L60QIRZ'!D<6L\J3;WK M-= ['+<($2\TK)^[OA/VNBSHK)G8*+M,&5U$?.DM>6V+&J"FS:RKF9.7**/9 M,'<;NEM:K;88<6X?QKF[S3 W4XD-3.S<O^][H6XE!]P(-EBZBR/;.>H3RT]: M?!DEF&&$UWZ)_AC,0%2)Z>Q*15^D5C^0P:C73!M3:LDUTBA"G,3QC2)IX, * M% /+" [>K 9.KN^JSH= ,AV"B0[!))]]H204G([!Y-3$8*)Z]GGHJ:33Z!/5 M#E".:R6>*V/7SY63$/FDO'%]%]TX5VJ,<R7O3RH;SA70]U8CYF[E "N&75FT MRAER71YS0E]*Y;^EVU&5Y"5#ORO M<_,-M9Y$M1JAN69 0N?VZVJMF:!6KTBLQ./(P!7AAGG; 7Y""%1BMRH7A^K M_CUIAW50URQ?>M:8[91L4^)V5V.&-'(=7T$ME]$ODE-OHIB"%/U(H+GZA3!> M;\D=!L,E(A65JSH$",E.]Q +HCOV><8'/DP-:-::M-*28=0J#WU EIRRG:-R ML0*0#H3ON((KN!M64&#TW MM9R3-X";&18:O)N>0O_)J#OF 2F2QL%9&SH]!)XQ0:Z OD&X%I3:DC\"IS+) M` 2U2$!JN:Q<3:;!VJX;;'!6*& #Q1D6"<YTI< UP78S!3LZ/7BE`)+"&W9; M\!+>R-3W.[-V:]R7SGY3\ C$MTBO9"-32/54C 40(N4A:Q^Z.T / K>G:%&D M5]UN(8_*M[GNP!-8G :\7,9M0<[/WG8!(9SZ&&O8_HD3$- A-[-%90?<B.W0 M%BO.C'Q+^Z'%0WTVN9CVT W0L[I,1*POT7>^[^N^?ENOG!KYC Z-/%GF``I/ MF7WDLK6OH\ %=%NYCGP7T&ZQU%2< 8-T_0<B<R); )*#F41 M0% W<M&8E0..=JO9NF ]BV,/?/H*GIF2 'FA?AKN^Y*1-<"%V\ARX4C7%CN, M1$#JV#V&B:=Q"[#M'OLYMIN 6,^]!$PVC53RO$7VU=6K"R(7, =<Q+R'9Z?L MK-/F?FNDN21?GJY6VMMR2"5'\M:22 >I9).%=!'9R<$UH<D!%\I-NVOXG*G- M`21 AX" H2D^O)AW0QZ^G6.D,GT9N\U&IW;FZ!;A[6B2%XY&X=[UN ,S+"6M MPR&=%]?S,&8%Z%!R.AQD75Y.]_':84R.'M6!3Y!G=GW5U! ?7LJ[87>'Z.=2 MMHYX(582[R#Q0I M6>26>S$%4WPIG7B/$^\)XKT`Z2J$5N+M3QP&&N"F:$[)I6A6Z3Y%XZ295572 M-/ 2(C_/PV0SS27VF TV\8K9L"2"T CYTJ&$9"(YB:<1N78OY.!>D84C ;HS M$5CC!4&MS8X>:;R0\.;A??>"</03O&9Z%I\&BL0<)&A),8E[LCSNO)E'2E + M0[/A3+P/C:[\!0_+]M NRT-RT=*E0! ";2?^'GH65!CX P;>,KH+\2[$GQ3" M(0FLC%-EK2NNK?IO7>^:N13X7X<6`92X(]?<F?13PMY*,!TEW2*H>,=0TFN% MO?WX[R/\+XAK2X0PA4_8M'7P!!2-%R+_!HG\IA%O> XGL[A^B+/*J"[GO /6 M=GM/X S)E8JV3EJK: 72\2HA8K<:V^7N] Y.P?.B,7T4+_V1+X5P:0Y&7I%: M:"VKQ""_%A,/`]3ESG0:_&$(,C0G Q4E>E!=$^Q*NH]6L7 `W#WL'>6$8_C[ MIQ7L\=A!P.8'4SN=8*FYC4#AU^X=-$.A]U,I'_4[E+228 IE 4SR..0WNIPB M/'J?S('V+96P/P'M$SO$NL1'^ M8`[O%'UF*EBN$?XMF8]Z+JJ0F]/CP6=!5 M8:F,> =?7^6OK].> =U08G.4T?FD,8JL=UJMOM.=137_T][7 $5U78N>F3G M$0=G5%!4C!.#S0_&$D<2R( 9` /8BAT<F8$:4")#AA&!#N M;YO>K_?[>IL0FS[;^-JTO36F]<;!,8"I;=3X4A)M0A*:''-,BM'P$Y'SUMKG MFC$4UK(S(6B"CB57"MR%-*X_C;LT%-9SLV'*!&VBTVL2QT?(V:3,]0O-" L6 MM:"#R7O(+KXUAZ)RRT"U+]MS)Y"U$[J'Q,-(H#E M8%1I-JI>U9'"SE%L LR=$X]]``#W.:H,%.:.);!E^K$^FT'U&3,7P=(6-XGC M4.S)\-.I5FKI'5;J(7 "N&YPKX*+`_ ;X#HI<G;D]"96<'%D&*582W=SG-!] M`%.\M%TLG:OPIP-7!3P>]=+.0 :FB0]-28CQ+BP%D>7LBZ6P!*283 0&]%J^ MR\0?IUM'^_9:J:8/(=D#R<+QKI$8 ?;W=T#X$_[])0(]"$((BR.LXV?(D.GA MUM%>P&PZAT*0B,<1+=G+'[?BH?C%'" X[-E7B2<M>G+JP<[S-%7B27-2NA*/ M]GT$H.6>[V9 2W\.!0+'A<IV'V-:\,2GK-$ Q"K4%.S+YM!F<CGC- _E9V6L MTCQ!K>L$+ :Q#F"L\;TCJ5")EY9C3;J%$:A*G%J5'MHR[KM\)!V35]TLF6\V M4ILKN+E0N9X8K" N">5 OSQ,;H) UA3OD\F<0X"&`$P1`+DM$F=/1 $ :M4H MD?+TFDDI#S9TAQ,EO;,NZ&O]RS 1 'GR(W-\EX7!KO=UEN\BR."_`S/AO04_ M'O"X%\'SA CD%W,BF1WB,P VFC24YX<D[3NSL83ETK(-01NP!X(EWR\N B+* M[/+]WJMRDE690JO!"SXK0AV5A2XN '5!]*U(Q[$)T /WJ)W&W>[!_A(]D*$S M\W$KT6- 'B W01MPP'&\A!*F4^2A)B]ZX-N9-9N='5QEY;OTP56_18CE3SXI M2%N#M)_$>AMI0-&:3_I/ OB!ZG,9XP>A?1YN--=B.#U?R<"RLEZ<10`P=.20 M_QHW+,QH'?TN186$C$N0P.E[8M#G<1/:T3JZ'U(BL%:$/=HZ^L]1,#RMD-:W MCGX_"N9'V(.MH\$HV%Z$?:5U](DH&%[^2G-:1[^'L' %UH'WAZ0F7D9^K2Q MZ"4W Y8KW!PI?74VJREPBHOU,/I!-E;3$?M F/LP2/\'&K+;Q8OOPN"/6*Z5 M!;+Q HV+P1)*%1(ETCU.<6 FWFS;6M9DE[$+2L07`=\2!MV3?<!I%^<;B;[7 M&9W!_1J2Z9;'9 K/HD"P,K2]CD?-S 1"K%6Z7"B]0Y+P%(=O9J(K(^O,YW/- M\Z'_+*PJ*+T[[I$".?9KW)4.INTD6XCYN' L/QO*9S/]Y]D5 +; </C,T%ZE MLF[S)O6^WN%TF>6L[$MDKQ4+07QJ698'Q!1&^)+U<9Q1"A/LQ.M;2T\ (Q6 M^$']&LP"&>(Q VVLL.P`WN/"_,-+7=SUH(;%Q9V%4!>TN1"RM^!-Z7GSD"7L MJ[-N$[K96;J7J[.2N5'%^T3(+H7L#H<CK=MQ9L1J=SH< ;S459!'M$CLRA(Q M_+8RZ_-2C>P=#D<)F BD`I;\9V"/LR!B%)O>`O87>"35*( #E6$CWO"');OE MY^80ZP^ N [S]J 92%E9F+^4Y\'&BW>]K= \D'N:($ .H!34$Q.";WR%(]B. M:-+"EBTTQ3-RMS4F7DA %%".6KLPS=+E>Q=F0S O50][0BT:$_!-J6M WO> M-I-7:A&(4RLQ+[H2AN *O \\1*'4]'LI5B AL^P?VI,OZ%"2N[^CB!KJTK K MAKH8;B94TZ/(9;<)/5&BWZO\.TN"=*\P,\ `?GLA76#CPR"C-/VNW'R^$U&" M!T$:1J3QH$+C>87&\[=*8PW2.'7*<W"ME:KJ)*]#X0EJH MX!;ML"1[;&/ -4"['PG:!JM0ZZ;"H$Y4!1(P6(8KM#B<C:>1C;.&^W2 9M-^ MZDF!LH>+ ^M2F=:+F'0O?ODU"MJEM%[AA%\CO",P I6V0U5.`1-RH>4!'C8T M#A/YB[1/S_?K=+URJC]T/W1\:O H).\'WXK^:8"- 3-!Y(XS';'M<1WYFO8" M34>^%LBV%VCY;AW?0XB?FB >7#N)2[ T?+>6[]$BUD\GL/8K.'PWXO ]&DQM M!7\$_!'PQ\ ?"])!\LK9H&XDTALR-OH$N-/ !AX %]L5FT^&]V,-H\-*ZU4( MTG!,UF62,4'D_8] N 7<07 =^;H[SK07Z/B/2>_]C?3>KZ-(8]U4G,FQ^A P MR2BT1V'NC\(#I,DQ^UC'_PVK;-CKA+D\E?88U(&&H!Y<(K 4<*G EH-[*(N, M30KT=0KXR> G Y\(?B+X1O"-X.O!UX// ,^ 3X-/3QT;I8]*X7L+N 9P;5E1 M8Y.O UI'C06)3QV':-B4L</+" MAKCZ=.106>KM&8P1]D+#U_B6&E_*Z:+[? MI8<S0(ZVT&X#WW\]D*\'(72]WL3_0=X,>?AJF K$$DLXU>"0F^$4EU/D?L I MLAW'.<4SV&B\R&$T+K82.D]8`U)A8):P/CEM9*U?#JRG]R2X[ YQ-EI)V/12 MH>&[-&TA=KT"X/ B8,+P-V+_J_F=/#Z^1W>:'Y3-Q_DN^F>41M/*BD+.&.1< MV3; IOX,5!J*G?LS5&U8K?3'8(Z,I:1UA8,YXQ.AZQ.A,36$.J2-<8+$UTVN MQS9D9=2VXR5AM5"DKVX=E:F=*]L9V.6DS& 14^R4,U;Y0=? &+M7$[3I[0!H M:L=M&*4Z2S<;D\4Q;$)/C :R3W(HZ#EY6$OXTFO 2WU`SP, RT4#R;$$%%H MKSLC%9#K2:.P$18DX'S!]60BN9XT3EQ/ZG<R/H,%<'?,6)\&"8LVIB::ST.( MBQ0S6LMB8FV;X!!_2D1./ZRA-&?$5DFQ4D(HMY3/1IM9BET`.N1[RMP^),UR M>"F7>%&= F29.5U>7<7$BLZ+6M%?';+J>3;!+B[ PE<R)H"?CRQ:3[!D5<] M_D4BDEYNU I_TOVIV"[&S%:.$KGY?+<Q0F'0J *U%6&%4!HY*CN 7UVCVJ"^ M.%:;L+(D&OJZ=J*A;_<\78/]VT#ZUW MY&E3`)X&] _8<4Z_KMJE'MC83HQ+-T[D>03S)'A6*X #I1#MQ"\8 =5X%\TN M#A:-%7OUP:+!8J\&)-U'E,38(1LH20L4,U?:%]]2-,<DW0W++ -"M+2DTZ[ MS9-/H[$$.ZMSHP*(<2!$QE-)O<PQ#M!0VJV4>EU_RB4TI3)2781;D)7O4AG, MW B#R8XP&$C_4GYR!_"3A0H_F37)3W;+4D)P][C$!'=?EW3!W<A ]&H9BSMF M\W%B; Y7*X'N`BTU$=D<;E?]*'ZJ=^&1UO< O],!:Y1-31SNUA&CF%0C-Q/D M4\K AJ 1!O]./)!0:WWO3Z!^[%)>I&'O%1-8?2&+XLP1F :-X\ <\DTS^#T; MPRZOU1PJ._8TS+(KS_W<'#KPDP"LM2<A>F _?!U['J+//??<9N70.#EF\M 8 M#XR M)C1;Q6H%_>)GT&92LMT9)$1AHQ)?F*T8?2,<H-=A2YE(=BI9Q3\G3,$9B\;Q MX.V*BO?+!.3$C^ MT3X;%H>Z\KR6=CP=,G;LBT'J[>TAH"*EH.AD5)),F 1$ MI?=:GL9$"AM_5,J#L1O)\2W 1[ZY,S%"I+>ERZ226,*/5/KF\B/?WCDK0J>W MY:))ZH^B\I)RHEPA=L/VJMJNI4Q8:H 8QIC/\^/C,"ZNP.(M9'?OB=FB'NC( M/9\)!;./\:'TA[/Q)L#W4 M#X UUX=0`OX:2K!(ZIC==M;0AC?7AL,YLN'PV8MH=!Y-)ZC?T/4.'2 ?^7GP M7PNA$ATZX8IT=X<3.=-78$(9#G]FZ=F9*)2,='PO'=*9_=BA5DO/CD_S\SMB M6H[ON)J3T[);AJG^=5Q]/4H*8\W&->N[+'2+/B!"\ 6RD; 4&UB,OCD46512 M0A89)G:6R &N^*]C:!HGZ4"64D8:^+[XYA".-4\.%6% O==%&B\%>F(N39P! MW +N8.%_IO^OO67]?^W?K?\KM,> #C0 M#O&,'G<5&E*=#C M>LK%KR4!CSS(]:_+P'OQKK +E.5 BJ(LZX3+_/M+NM[7=>2ETP<U 7+1T(86 M_*"5-!L#S5<#S9<XT.PN(NP 4:1=KF(QDS3,*.ATW:!?MQC:?D',C$!?UJ,] MW6 M:)7QAZ*:7L<[8,R1-N*E K9!NTN)V 6=O"I=N8 %27J!8!O4V*Y:>IJ2 M7A7$)ZG.!*I0_8#MJA2>H",=`5%=_.M,4*:D;$$W!#UE96':Z%LR%QK:W 9V MK>C)^.M. 6Q"?EZ:[1)LNLLP0BFI,Q0M>I+S]P\BYY\\EFK,CCZ3$D[S[RX9 MM)BN"^$O;BZYO23FN>1U&?%_O4P40-1L`CD,F\"OU3,].<F8)LV&"!W,280$ MQ<<08\)TPBE^?1"+6.W5B25_D>53T0\YN(&1]I]EOV$.=8#ZY M;X#DS^K3SD24+VX(IF _H^M"SPC>*[![PK;$QEYY#K+'*W ?(A[1PG!^*\>I M0K[>Q;\J'[22$U3IP8,\N\HI9GR(QTTCXK_ /,73U/,SR+F+/]0<`\C2'"$_ M!9>[71SI NI7IU!E0 ]?K0=5/$S>XO>?+W%Q:).>*'YV'+KN(KY' >4E^X<X MO4/LZD+ <C2O4$Z)E!-1<G)D>!S5/8?X-$Q80?1_5&9HVX^F-,K;VH5.1XGH M?X68ZD 5:.&:=)]3=/Q1/5)B[Q)RQPI!&] *W7:'2V1 /G2()8049-SY,F9, M]LO<:N55[R]ZPQL)L2E3Z80^!3HEX ,D?Z+_(VYQ='[')(&[(L=8"R/'6+.= MHO,T6;8&_R*8!5*FT"/=#PK/>/_.!83*C?EA*L^+Y$YPBLE*;NZ4.52QN7S3 MQ%OLW$(<0)AB)Y0C<!C+,5Z<41%V2C2^<3Y)](?DO75OIF<++E'/``C2Y[,6 MMZ,.E.EPF(?RG9Y'MJEWJ0XYZ2<*-V<"&8 B)4W>=<.R1Q REZSRQ#V+A*)$ MV.S79B:SC-7R!]"W3\HPB]*Z-+;$SG9R&:XUM%U W2AL:#N'PXV:SSC9(0. MZY3W!\HO9)6;.(8H5P&;R>&0N4386$"%*D\U_" 4I%_&[=LN<R8YZ6EREQW ML'</X D;WF(/V1)H]MZL\A1%=;,TIQB>^"4YQTB1N>0;LUY\DERSCFE):QY2 ML&:/?D:XA&2,=-I,!CL-F STF>4:=X?,A<1-I"$CEFOL?1"%7-]1<O78>LD! M`!=RD1EP*KH"`5O($N9H\Y#T MN"-9Y;WL'2[QE:-0F+10R:-,K*GMRBH_A?U[2GP:,?&W`0Z)5_ME.>Q-\;3C MVCT$$?-05L8^7+L9>*2 ES!D];KDI$.1A9N][_,+=Y^Z<#OW11;FAS ONPUM M[U+JPB0':EP__JX!ESPQ?,E.IU)16).<:<J:3%;7)$S\/K]L:,-7LLBK=BD/ M"6%U6&S]ZEX9X,X!HW.*J:.*+3!.Z*3(V-3#F)N'E-G<!UQQO MDEJ<^P"U< MY2TN5EB,,U1HQDT 5LC&)CK$-T"1)"\1$:,92P][&UJ(!HN,,"?U=I>HI=4Q MA9K\)8!#EAA MN8Q)*&6$!CUJ62LL;&HJ>U=PU0Y!_YL`Z#J!0CW?]!N:XN9XR)N">;]A1/SA M67GC;Q I7/4$N6 C/_:R*6P.50G$XJ)U-XT%<4:A6"]LT&<5,UP,J5O84?Q[ MJQ_F5KP:`!T)7U+-I0/;]&6;0(M"T8)(U"#UT7^T`PJ[*(<?O==WF1^9ZUO, MCZ3N3%9DW 1BY4'_<:,?;T0`$,X^BJ=#L M'0V(RZ2EDU(ZJ+8E8]+\+Y+4^5=D?)L?QU+1&:%J)417%"X'5RO:8IRB*Q*M M3\,^P&?*[,J(H>L2<RBMES6N99FUW%R[]ZK$V+V?2CJ[=TA.^O<M)+,^%L^_ M;J(G1&M"BVZXG0_27:1$G4"%ORAWF%B]-:4F6K(QOX%'<U'%S&D8NS6B[))N M30="-2XQ&+DB7\W+&I =92TW#U M)E[I8T$$?> CEW 2K?)T+57I- 7"'CNC1'SQ.O9[TLT;6[YI0G %>77Q089= M(.] Q&TOR')U:[5^^)HY5!:(Q9<4\^D*]27]B%+2XOZ,\L:2\XFK= ]M1!X/ M;..H4C<B!,=CDO ++5[_*5;*C>^BL D"U ^1"=]Y?HJ. Z),?Z#Y M56 CYKG B480!J$!N4ZO1CSP#A:L_"+/2D"R1Z-9>KA9H$Z)NW^+DDYSOV3D MF_MD-A[DT8 &WU8^DM5\ 8USB*6_5= _;*1"T0`.Y4'H2_'I-X SDWE1"+S5 M:-;_B.$OIDLZ%-Q'95:/[V+2.8 B_87_[-X*3CO<1W N\'DT P!N7%&-.[S+ M' HVCU<_!RQ.9'ARA$^UV^+;BV9NQDT4%HM&O8RRC:DW45YMT!:/]U!?'<;Y MAQKDZ]5\\SC%O3ID&V/8D] )>):/IA6:/7HO4RS.03.?LI/A3GSSTG"8+N3[ MN^UZ>]%8J13?XKX.]<5?.L"*HD 0+(I7K#B M<%YP3>#V _L)N.?!A<"]#NX3</HZBDH%MP;<1G!5X/: VP_NQ^">!Q<"]PJX MU\&]"VX('%,/Y8%;":X07 4X+[AO ]L/[FEPOP9W`MQI</W / :'/U8S!]S2 M!J4]RZI,VQM7Q%,;W8UL3=UCIK5UK.G>-::'N4<?K76;&NM]K(G H>5K=Z*5 M>C-1F56Q^ ?3VDCI8JE8K9&VV6PQ^&2DDY_2ITQW9=I+XQCJ ?1TEQT$29,) M;5<-:_?5;W4W-E+4]L:M]3ZW>T55;2WEX^K8FNUND]OGJ_=!E1- D]ZX[AL. MAP+!*.58N[X *DKE?:,H9^WZ2<B&^]-79B;$WVOBZBJQ]6R]J::NAJVIK*WY MMMOD<5<V*/D0[P'$PW_7X*ZKYQ[SF!H;*K>Z3=50=FW]SIJHC)5L37W=9+[[ M;YJOD:WZDGP9F*^!\[E-.VI\+%=9:ZKFZK8BCFEK96TM042\53>EO[F^S V] M]ROB/' #SG:NEJUA/3YW917TT-9M-^+?O%_43/C_%0`](9[\SXS*AH;:FJVD MCTR>RD:3S_TM#F8P%,1ZW*8-ZF2 AK!NW_::.FBS"=I<4V>JK(-:<8W8 3LK M=Z^(M]>Z*QO=V%2V<BM+<D?1OK/1U, U-. J8-V5VTE]ML.<`TH0W$YP5D3Z M/CWKIFUPU\&HU==M=]>Q (VXF3?%K?0]QB%BXP3=E8A;75M?259H0WT-K%', M"I J=Y72AT4U6WWUC?75K,E90UJ7FY8VT0_K:A[U5?IV(UX\SG,5;,,AN#T^ MC,AN8_K<YZZ)C^D6/H7 4[[LT_8%GZD8K5$?S2U^HO/OC?IH;_$3R6N:WB)O MCY&Z$8('.0I_&%]MI;395JK '=F[735U5?4['2QAH O:73[OO&H%_:*M9.< M#XS7[:L#YMH(-7>O,)DV3B9'_GU38V6UNW8WV5!JZC 02':YMW)DGZJLPVVP MXF_2(-.M-RC^2QID^J(&P5.BUF^BYM65-;4HPD2U#N?'IT56:K1H<C\IVVBE M/V3[3S6%()GE X ,;=/ JG'L!A%I^T;8^W,:\VMJW1BB_D:P<FI!*J,>0ZRB M^BJNUET(HUOKAB5X'==;;OWV[0!85U,'H%[$<KI]C3 );+#FKA *>2!_^>IW M4Y=)+!>$-A;*+=4Y%7F55*,D$E.*HT8)[ :W$GV.BA;O`QJ57^145?F(O'^? M;F-DADWH`%]%K%S.YP.)*0+<H7/!='-C"ZD?DW:S54IS*,H]V4),7P\2#K3Q M85U)G8= 5-EV;74WX/2&9)C0%/4>A56W34IP#M8'<EAC#O40TOI\`C5PDQPN MJD;GJJERYWHJ?1OKBU B?G W=-(W-2J7(P(9K/4OINNBJ,^T#C>K-"6W'J0X MX'&(2\9R=X.;^I'2VDKHXP9DI#G4"NTZD!)5`1!:*A'NF0LJ6A/B?L-6A.'+ M9(SMF(4Z3^77<HT>I*DP)>CERU N0NSUA&7 /-86<V[?;KO;1]AUW5:E0I#T M$M+=6+-UFUK#E5$CM)'(\FNK8"U]?MP`?(W,!P>H6R _:-?E%D&$-!YJ7JR= MZ+&-]9%NI&Z/QH(>>DKI`8QACT"^9Z9"`.=7V UL;4G=3M ]*+W.,65^+*=R M:^L;U=E/E9.1J0<-RZUT)[4I,H.ATLC$\ VIB95%^J\\ D$ZB**^;MNPWK8N M_;2JFWZFGUM]<+XT5"FVK'E5BAEC,OAXD-^R5?E7:AO!GPU^*OAH]$2!/Q>\ M<X]:*?Q';C\"?P'.:? 7 K\:_$7 TX\J+\Y= 'F^"_Q3X.-E]%'POPW^(?#Q M9>_NO9$+G9^^K?B=SRI^ZU/]V 64=4\+\0\"?M>!-P^8;C)>K>.*;U7]W]XB M?H[J'P;\5Y\9>&8A]==GQ&<VW9S^GDX2*H8!*7ZSXDT3M?E-[YLK/X__6M]; MODNE7Z:67:O"MV-;*7(E0^:^3ZUKK(K?HM:Y5?7WJNF\FMZFTH$Y2ZR ?JS& M2P,$% `"`` `4V!_+,?%:#E^,P``'&8```H```!);G1?1$TN97AE[7T+6!1' M-.7LFKU)ULVZN1J3O=GLWL3=3;(^- J,`5'B*]D8-9OXBMMD3-:H`11T_G.J M>Q#CWKWYOG__[___^]E^55U==>K4J5-U3IU358/%<Q]A- S#L S/! (,<P/2 M0R!8F/_^>01"2?F/Q26UY74)94NJS<D)"0G&H7>;C[X=\<&H[9H9'XQBK(4, M,T.CO:7>*>8G]5&:<"M3`!\)2EY' II>QBBM\_ *82AM^(0RD4IB&R56S<.' M5N'L6? 1Y 6^(V^% ^Q''L OF66</36OGT>Q$&;>AJ_I =KRI36/J6UM4-^/ MWM[N`XO+'Q4?5WC<W_>*V^!:F#O M^G&LF8?E94L6E^=7+JJ=55,L+A663%HI(%Q!^=)RH1QQ(I"]7)BRJ'KQTO+\ M&K%:8)0<++36+*D6RFLI14MK'KW9;%GM$J5Z?XE*`%(P8U&=4%A;6U.K?N=; MIU97U"CIAPJ+\ZUJ?IZ2HKCR:ZKK:A1J:!\6*P1A>?[2FKKR_L_)2ZH7TQPU M/7E);9T0[ A#F;;DB?)9-04U=06+!/JA0LXL7]$/6"(L+:U>#IG8_J(EPN2: M6CMP;6GY0X]6E3^&+,BO+8?J]O(G%BVKK*E5L)<`UQ;5W<Q4^U%<LUA<2KDQ M<]$3"F0_KV?5! = Y8586UM>+<RJ!/2+IRZF- /G"JN?7%);4_T$%"GC5Z=R MFL?*Z^H&TJYP-R\X7C5// $9,Y94TZQB`%[T>/FDFA5YS/3"DIF%,\S)#Q3, MF,&4V M+U.3_+W)UY_F?^%AE- AF^ZQV1Z6PS,+(,6! 5%HV,8P\`E)2JUP- MKUUHH4 %1MZUEW/(2: [Y<D03X=OS\F5%^2I`)188.2LE1L0R<%0A+!"IFNO M.8&XL?B]F7Y'096I&#W"0?1A**V0VE1G 5C[8XPU$,L[;P0"KKV\54X%3D)3 MKIZ $ 4E%E>/1M#Y M<VG=^.T:2CVMX(,6>++4R&=C+_4>$6*UB(+A ,$3$(RL[,D%I=/1`<-C:L=J MIB["DY!L+]BS0E[V3Y373Y77!N7UG/+ZF?+Z-^6EQ9<C>P2^*K)?Q-="O[!C M'33G'[O#A:]1.Y[!U_ =]?B*V>'&EVY'([ZT.SS(KQ&L8&%VPQ S;5I,XN-/ M(B-TF!U%LW7![&%D!(?9+,WF MDAII.>D\(8UPU.' S#PN&$+G$$/ 3^^L/H M"R8(YVD7AI-H3 <&NVAA'XG#EVLB(YX'),]0<!PCG2,0AY\X#U/E<S )L[$- M.CIQ?"A_*&$[D=Z+%0&V]&UH4H HD7LCU G.D6 >>&25KT(=J; O"*JCH"L` M&&VJ0_Y+%L-L?1 %^:^8NHKJZP-(/7.J8NM^^&B6^8JMK9C[&T!88=%[4!=6 M]!SIJ=BZ'3#LJ M:N/(J[I!1.]J8\]^(Q7U0?F75)8#J;2#YS-!;GV5AS"]'[([0/?HMAB ;R0: M`: :&H$I9T8VZGUQL%T>!7VT`.\T/F=FMO!W4X!<=F8RPI BAQP6+&IUYC#B MU][8]U! 2/1>4)8E-OF75'MQTON>)KW[1=3H#QMC060":Z+;"GY%12 _HW?5 M&6:FP6:]O8(PSB%70?\L^9I6`(4V?AUL4!J/Q*&&HNH)E*O/\Y4PBE(UA,SX M%6.3-T C^4JUKTOE==>I8" Z30?Z$?77%N11&:%<=:9GBX,=\C7=35X`F^ * M1CX#O MK7 O,$X'/=1)<5 *0T 1I]CEYZE&9J560!2Y\*:RH5CL4LJ.(GG1+4UWD!%8 MU,;NHFMCWW54U_/F8+_J+_! --%NHPH%Q$WOG X96W"Y(]&X])&4>F?.:+T[ M!;*K[G?()<I:`FW'5.4ZY/S I]X]!"!P84\?*:0TQHYT7ILH1#JO/2QHG=<> M%$.]3VOTNW4C;7(SSZAC&9[OS!K)J"^QPQ,0]&4.6.;B2^3-%*VNM2 K%I?B MG912&O6[]1G']6[*F*L)0KCK:H00X \M\O^E`>85!-YTTID[6M2V%AAUFL99 MOTAL.=*#Q*Z)F D&7FL8L[8;,<'JI6UP!/RU3L'(:_P_<H*1PHAEB*(1& >X M0Z6XW<M08<S#M:^RHP[U/Q=<3.AZ6'^!!3[ $!*W,5:#MO77"H"6HU\=/?W3 M&R35W,E4, S^06#ZZ M0$%]T#C8>2UA+>\^*NCR&H<Y>Q/6LC"L5^:19A_8.4*_Z8$I;*M*4\F"[,L? M!U& ,> M,BR<JR(Y96[R7ZK89+7*3\$<^:F%GUWQ*Y]<C99^$^^3RR&A78^K MTZYR74A"(1",%DH%F([ ':W5(EDPTU-L#KF5:F.=%6:Y`6PW: /RKJQW*'XQ MT:ND`%AG`_^'.FH]0 15V.%2/"TEX?#Q M:)AT"PWL_PX-X"+=I*)O`!4='66V+0R855%->L_=P*(]:)GMV P4)1YZ_"QO M;NJ[_,8.ZN-&(]B<A=2OE;ZP(?'SN5+RA"[PX7Q<F*4+U& %=XE%QU ,4[PJ M6++0H>.DR.UXJN%3ZY8"N:*.^O9^+B!R\GX3PPS$`W/ =8&'485V+#HPS:L" MIUT<Y5K-,P*'A1;>'X93R<);26&/5;Z7^L50=!%:\__'XI_20R(8 84+5+O? MNGT[\,!NE:='42\W%CMGVX69)?;*L5-A<K='TWT( UW^#SI\AB[M7BBV"!%V M>8[J2 "'%+\*K5CI8!L]4D+_%Y=W:3)'%G"20P?*:HYT D0O!474?":D1*X= M#E MPX,NUMOE]8J%X=H;"Q1 J\,D!"DP&JTR+M14VRN%WMH^"1:3C)&U4>A^M2BY M)"=S):M_%D^3T!XG.0\U_SVTJ/EOH9F]M8-I3HLTLK\!1*[TR!X FN8OH4<; M9,EP6X^&!'MD$![#D2"K`-$,HU$:3B8XO)-8FQ7+Y%TPC<L /T$N5*8'$*[K MRD,-N!M 5P>V``9VP3SDK")G(-O1^/9:^TKD/P%349E/CV<89_:J=: D8JN8 M&UI,5O$[G/"2&\%X:=.B_^E4?5<55(A4`+X"`%_E,C,D[XU7MH90]S<T4F4; M5:4)Q&'ZMGSFUOSUC<%U%%/JU I].FOB&4J_=E]=$&:?LL1TO!V*'CSN3;C/ MB$4DQ-7"NIN$>/<YX>[?P +!"$9)XVIF?X.6EW *>^YKT-!7TM$&38--HV;! M\^;U]:>N]Z=NJ*E&BO /-\&5<6D$.7 ]5,P O*N)3=\OC 9KXP?I!X61[BXA MIOE+'K+N BP.LF+<7>(GX-.X9!9"*(00WQ1?(V\!F&[W47$[^CO_Y3Z&^2HU MV$BA3MU4`'UFE3WHI/VCO8R&(/B O0RK'>>O53ZG;*M88+J"3=_R]4T')$8= M%)VMQ"Z_I\YY'VHP%&ZM<S4L,Z ]FE#RA%S347* ,48Z/"8`H%W.E3!Q62'6 M/N\J?1^E=>P`6N.#M.(I2>/DT)D-1:$/W:3VJUNH7:A0FPX(GSU)!KF^9B4] M[M]\SQ308D5:9T(K#X4^-. -+Y7BZY=?ZU/A8.Y5ONT"5^9YG+B!N LQBCI0 MI474O,B3:$S4G\:"S(/"(+DA .Z;>().MLI? \ZK?!VC?2XT1V5H;3/6('$? M05QY"J)77H-R*>X-A'H3HE;M66B1D6=2)YW;OF&=L -)99]3"-^*1*%=$JYV M$]DWM>_2F]U'$J^2(V0?Z2:KN:GD\TMO/D3VPZA>?FT'#O,]^R^_2ETID'93 M4R-J)RJ38UAES]MJQ:'1OP7VIR+Z;5]2T8>%BS6*8=!!( 0U`/A_E'YYHD91 M`:P1G4I43& *F4Z:CFZAGDK*!D^7,"QCID&,(MDT)_[G_B63ZJ^A-U-[4GF+ M$40W'I=BZ6F#E,]*=9PT/7XA\:G;UD%^N2X8 <B1X60U3\T;4LQYQ4!#CBL0 M*89[VE>&3N\^/I,TFX]V=Y-]SI8DY[6,-:'.EO"&H5%-XOF9K6'C0R^3#Q(/ MOEW^E>+Z-.;KC/=FA8C)&76<,)Z8R70N\1MA*+'S#EN MJ>/:\NGU(,GL#Y7JV*Y\7<)N%$$QQ-1EE]M55ZP59[Y]UT:TB^44)1- 76CO M9 RGGW9Y$^;[$B!=WXM;^K4?S?-59<ES?J :&+B^P<IE'X]H'+^H/X.>2%EH M2W./UM44"4N9?!AL?5+:E\&^ $ZF&'DQP+Z WJ4_JW\]% =+2FE_64*)/.02 MG<SR!J7^=R""(TGGB XHH 3850(<H2UE00JN4$=!-P:/;*3"'M?J'LVPINY/ M28.G-83 ^D273Y OX!CJL-QJPR48_$!U+YC*70&U4.-!<'58'%_B!8%P5%[) M`O,MEXHICV*T,L1T$J0&5NU6]F[L-8B'515<0W<S7FH3AB,B,LSE`PN>V/M( MT G<"FZ^=K>D.("&KO<YX3[]'B!5:D&"U2)$GE._V*C#RW[PIE=]_..ZWN>% M :]<_(K!+Q:^LO%+NST+7EBK= >>)),+]1=PHXV4\L R;^&F-L\RD(.-="IT M2,6'VSQ"`*EG&/WNX8%"\*/T;CWZ>KUCA*?T[UXFV8:U%J:K8+G&*:218MZ9 MP>C=7T< 1A 2.M EUD IIQQVZMVGH"A <1*1U^\>"2A1]1RH/XV 9;8!H._< MJR=)^*&KYW[A?MSBF _U_47U!ZE__G[]09QU_O?J#Z M,-&ETE RK<_3+A5O6!FAM-4]?T,_/?X);84;Z+TC>>^PX";Z/:1X S=6`IJ\ ML^R'I=(-"FEV>4L01/QK6R'=WG3U/J#W8*K^H%,9!06OJ_=^\;[O4K!1+^%6 M4_WYM< 2%4%G&&YZRD7]C<\DQ1L'-KXQV+CQ9N/^^^H/\ .YYNI=*L;5G_^[ MPNKZ R T"B'(SZ7"85=/)3)PAE#LZIDIS''U3!8J73U5PG)7SU-Z-Q[YNGH$ MG4N4/"#Q MU[N;:&*QWOU "":6Z-WWTL2C>O?3-%&C=Z^B"5'O?H8FENG=_TX3LZ$)FEBA M=^^AB0J]>SW>P.B9K'>[:*)<[WZ*) KU[A_3Q.-Z=R5-%.G="VEBD=[MH(D\ MO;N8)JKU[O.0Z'P=C+SN5APU\;[N5N2PF.4MCE68;7/(7_2B9245?BKF^E,4 M0"$&`*!HOUIT2BSU3U/J"HG>TECPXM_JKQ5!HM-!I*3B3TGIIR7R'[Y!-TO& MP[ '`529+U!A33^N"!(W#BN4GB M3R:E:J<5V6B<U <5&XHW017_?+7M8?VB4T&P_%R%5'P.*/5GJ=V_BQ3'H HM MCFVT]7F+-S64;H*>^T>08K6K2F$%P5*H77I.*CYU:\>4C4, <CV8*COQ6!JX M+95>!(:O!E=4\JQ"XZ;4*16ZI=(&S]&U]ZP"X:L;04J=A)9UG^C^Q'6"42[9 M4"!_B"D K?Z(%'\$2,9> ^IMG7^!TATAM*F+_A_L1!T%C7 ^%O1[\E&A<SLB ME4(8)7+0^4%(B4V^WH.#AQ [7Z2>`PJ?,A"B046Q$3 !W!6X'=&T_D9%[T'? M )Z=?']WR,?. R% 0OVF'Z=:,5:97,]!_AA<($Q'I<+UW:V('31 X7K3T:A" M=U1I0T2+$ M5`*L0OF<*78/V%,)+H4>(<O4N`Y:>WP,<\98>(//7F]JCYKNC MBANDTBL1QT$L48H_)H57ZL] NV"N2"]4HA7]'L:,$$^*KWA+?9G[Q2&TU3]. MS0>*KRC];A 6T:+W./! 3$\*-X+>Y=4N<P$TN:[XPR%J+3R0Y"WNV(EK<>*^ MW(H/D](-T*ZW6"ZQD=(.$ )\;RQQV -Q&^C&5[S4YEHM!\0"4GI8<U0J/0R5 M;%XOF KR`1XE&W(V0%O>4MF&]:V(`"R(`3 2%!S"G[M;$Z <N0IC=7X68HX4 M=Z#X M602EXAG/R37IFE]AS>Y6>B/H_NF>DRO&0"5J-I4HJ,20WR<,K!\*H/Z/_TOT MYY >N '3 7A26G^\Z:3&?-E_4_H?F_QJ0H2.\=;W ="?(Y7KFVTN7HT^O6_ MH>LDH"QI+.Y3<>Y$CR6S!18:'/Y B' W*=;9H-7BZ[=""-6*&96?.5]>]9)_ M6&URQS>JFS];T"I7,6PVJXPW=H'B.;X-03HX>0'0(>NI!NZ3CUSJIP`W!6CC M.-K8\%UDL/Y=;)DVS&5%"YU9PX4?^%PK`<]9F]PY)&B![?4I3=+8.57'M^51 M7Q/W=1QETGYP9-'%YZ5)7!LJ=J9M$BUW/<6Q=1R]W";5<J06KYQ$DU;]6SYI M7W\5C:_E0S3MD((INYP[4L$?J=#Y M$3XOL$O'X.+4?=G+6KPLWCED-)^HYPPV/*V3#H M.9M!72\^PUR70.;QF9^(WSK((?D>Y"7NWT2IIQP<('.0`_* 4#P2$4(">A Y MK3=?!^MYD^JW`5T7T,.2#D M3I0J'3C;">1 F?QORL&>H;^^>HC%*SXI\A:;K[^!IGI=^&Y\^6%"[]*J`Z)I MEQ49.P`T\IZ ,!&"UKN<<G3G%G"8R$')P0%?2N25*->AY*!\BE%'+0H^?MK_ MA&Q =#AU1ZB *GJ +*61UK);%ZJU4ES>:F,)R#M5EU_^U1^4'R$**FE? 67 MI_+;)S7+]RN8=$ 41X9K1BK8EK%TBN%-;PH;O$],-*'-])P7^IJG<Q [7R9- MTI&G=:2.EY;S]("#ZB&== !/4N4/ 1<[L%&ZTRI-Y\ !G!\..8RBQD-5*H]$ MDX ;H <HK3W&Y8."][74_0\\1XZ15ZN<W8UC Y<D 8WQ$B?-9J5E7!GT9N,- M-_O::!(OD>KW:/$&J5?GV0!?F?1>\/+P>>KV_ AZ91AZZ?*QIB:)?DHQ\^B^ M[' :F11K891;3QT=E<OP'C&=;;]2;K //4KE% JKKLNCU#OP]+[W23 ."HSQ MF4YZ4U[H !+O. I AC;JAI.AML89PT.4E\:F()P*_=D92M'QF _U>XH9;^S4 MS _7?H [<N3SYK/:K?2 [H][`0WEO9< A5*J&[*EZ%6K+>H%><[G:DXHRE2Z MLGYB_^UXCAZWT+O_>$QMS!R!"(4:4(\Z5^]U(=O5>T.8Y)]V2S^'0C\E"FAJ M:M-B4W05UZY24_17%W I/Q!WF-Y9\0\)Q'4H*0ZXQD%+G%W^^0W52!&H$.*E M&1HKE W.I3+YJ^-HIO??>!V*4S\0MQ>/M$!R&["J:[VJ4DSMY(^8;HS,/"C& MP!<M:9RFD:;S=,O6U1)2?^W4:MP^=]V(6:5WW3"NC=Q.7=-\WC^Z_L:?(;EJ M2/V-_?!>&[F'.K%/\WYN)[8KV7D%H[+]VV&5K<?I&L8:119O 9%8(]7?D_BV M=>O5']_,5O3K;?:IP4[F<Z[>K+IYI)B/:A>L7:X+0%BL6 G6LJLW5.^* -I; MD-BH)G&LK02DMU"VVDH"*;\:NP:8^1, >^Z<J"9A."F4X74W-8IM)?; 81 [ M_U?F)O]7E8A#GH7 M"A"O=U= G;Z1X7ALMBV2W V[]*88.LE_=:'K&BAXZ$1G/MV*`%>8#RV]6.MR MM;#Z=6AYN,[TE93 Z 4V4E23 K<WKEX!G=E6N QJ;2'B#K T%IX 2''R(UM MD8 [52KN(X<2#Y)KH4<R2WN6)SI77] (XT S/9 C^URG0R^_>F]%6U$ .K*( M$_>)(V K .HIEN!MI( M^?.\7]./H?\T)XB<F2J$$E[P%9,\_>07E+()Q;V M!Y%RN>[G0 0HEGB;_!I53K&FHW;)'B\OQ_MX"? [HT+ :Y<_I"WS2"$`^:JZ ME$5J*W*\ZEOU8QQ^J,O7UB3X\/F4\P?6TTY8+\*NT+JN9JV*KHJ0Q3Z5A[[6 M3:&N4WVB=COUR%J[/]&<JALK-4N7/?'#ZOVX.5'WK6>8U'G?Z<1(3;*T5[-/ M^IOF/)W7:%8O6#C/YVD7.;#UAW2?]6V ]]#GND\_UWTV](AO`]E'6KK/*A\. MKK&S\5!C;_))R. V%!XY>^3(CZ^2;V".[R>?F)LJ?K$A\QL]_KR<T:^C%T!Z M1-I6GE4_`"8V"/,XPBAIGSSWYD=_O<PCXJ 2\]%,GQ"V/'3:7-^DN<HX :5Q M, /,$6%NQH "$"AQ>$7]*J,AP"RWHN<"%HNA0:/<=T[WHGV:&DLO)3I(-/W1 M4T4&./06L%?R&+''IYP=/FPTU/?BAF!MJ7(+"'!-(A]ZP7)J_I)KF$4O[$>W M%A ',8ZJ$!*-ZZ47O"X !)I_59FX RO0QE<\0.5*0M#V]%%K)4.+'5D3706J M8A']N2;GUT.GUEJ8"L+.H56"U]O5<VB2KWO=)42_3N]<?G&*Z K0,*IZ.3U/ M+N?I7::C40<E4&*S\&=M*TXK2DTYQYSC0RN8`W7) 5N7CS\ B+;*FP&S\S%= MJ=.INZPQ]>C'HF ;E*,^:1EZ]89&F\YY)MEY+43OP3OY_960V4(.S"/,`-[9 M0 KV$,<HOQTU$!NH;EX;W"R*V&513&FNDIYRX:\'JQAE;R!9^6TK0.56::I8 M8AM"<;\C$*908Y FV5BE&SA+Z<$\\H3>DP`(J [4':S 5.Q0IAB/D]$IA!NO MZS12OJX1Q]WDO*K1>] _IP,K6H&W"BOP:H7*Y<%*=^RR53$[_??3!>U::) K MVMW(%<H1!\*-O:YR0GP?9DV!H)6_QJ&OX\C3!I+/2^8RAU4^A/LR^2S^/*P] MLWEM8L9T5AP"W>")7=?5XA0B879][J<70-3;'\%]2A1+:9_B]SBJV$K4[>AB M6-'7VA1C"=X%CE(<8&6)TAKKJ9"#P&*J?B6+6_.K2M3ZE1RO_,:YO[Y.'%&) M&V7TJA%?$HC;'&-A!F)$U38"<4G#I3A\J_L,2 /4*[>QDO <MP6_`Q96,<VY M%[3',Q5[/$FU?,4LL,<5V[!G &UX0J/:ACI2V$-M-;"WNQ6C[MSEH%%WGEXS M%.8M)/L3#VV+-G==>E/O&0WYF=?T+C32G+F1HI]T2ZO[`F X4R $P5M&F=?J M4)"J8YVX$:]T]]M+:G<[\:Z D,CSII&SXMN[^]F1N5<,_057D;GVD"D,*85 M['CZ&XQ $' +H[:ZT1^NMNNZP0 FZA0`R;<8]T'28\C!Q$-"M$J%WMV(^S-M M.QIOH_';--Y.XS_3N(G&>VF\C\8=-#Y,XX]H_ F-/Z7Q*1J?H[%,XPLTODCC M*S3NH7$?C?$79($Q+(TY&NMHS-,XEL8&&L?3.('&1AJ/I3'N[-QY[CS_NF=6 M>9VPI/KQA*G50L+XG(1)XJ./+BU/J*NI%1*8,8L3GJA[())Y$O0#ZHD?C;(P MRT?]HQG(]?]MN)M/2'1D_U\42BC'OYL4'<E$1\ZL$1+*JVO$QRL3GBA_HJ9V MT0TYB\L7?Q?W,NL=C_(VFVMH2$AH"&O01H=%A.LX780N,CR*TPV-'JH/X:,' M#QD2,BHZ-20O.C_$.K DVAY=-G1.U-+H)Q*6Q==&/#G4&5D?N2["-=0=_=Q] M>8VM_W?V5!]G6<,Y^Y3\1]:M7%>_[J5U#ZV;O8[=<H/;<D/);]YZ8NOIK=>V M;MNZ8RM;?X/+F\LM>HJKO_'=?$!%JQQZY=PKG:_<>.6+5^17+%OSM[[URO97 M6/>'[">?L:>N<J8U4)6QG5APXL<GUIQ8>*+JQ',G-IVPG)AZXM50AAG,*C[. MRM_:7P7?B*=!+=\(;YOZI_WQM4DM_YU:_F=X8[[;;&'>-EH8&=:4WSDLS$>. M-&='3FS.?3DY.=:<E)R7LM_(WI7=D?W7[,[LWNR_9Z_+?BX[)OM0UCM9;V6] MGK4FJR%K9^;AS*\S7\Z<DIF5F9+YP\S1F0<GMDQ\9^);$Z]D?)UQ/*,MXS<9 M*6U<VNBT^+3H-$W:^=13J>VIOM3?I_XV]874GZ8VICI3GTY=DOI8ZI34M-3Q MJ0FI0U-[4LZE'$[9F?*[E%^G-*3\.&5^RHOFS>:3YB_-U\RA*=$I,2F)*4DI MA\WMYF;S.^;?F25SL7F2.<V<:+[;'&O^+"G4%&<:8SJ>5&PJ,N69$DR\*3[I MI5RP=!B9,NTO.8MR:G)6Y[AS"K(_R&K*^A/TN3+KD:S)63E9J5GW9R5D7<]\ M_Y;^B_27TU]-_T/ZFO2O)ER:$)$^-)U/OSKABPGO35 WP31A\(2/TAY.FYTV M8FXU'S:_:=YI?M'\BMECKC4_92XREYCGF"O-B\UWF?<F"\FOF'), TU'DW8F M_3'IY:212=-S\9 SB_93SCV>^V%N1^[[N<VY[^;^+/>7N9MSW\K];:XPT3;Q M[&/9]^0DYJ3G3,D9E',E^^WLK1,W3)PW,6?BO1,'3Y0S3F3\*6-)ABUC2L;H ME,R4^U).FSO,V\W^Y+O-9Y.WFII-'::/3)^9LI)KDI]/?C7YC>1MR6.3>TW? MP'C>;RHQ+3'5F.I-CYEF0Z\C31>3FI/>32I-FI)D2HI*:LO%_]1D*5"?F12? M:;WI&9/3])1),%6;*DV/FAXV.4Q6TS13`?#W'M/])JVI*^DO22U)OTA:FS0_ M:4;2Z&3\?SR4_W/$D"MDC<M*SS)D[3-O3GHU*3X7CV7QAQX/)R]+7II<F;PX M`*1A?RSE7B^6]4<```"0```*````26YT7T-7+F5X9>V]"UQ31_8X?A,N$C$0 M5%!4U*BA B(FX95 R TO!46)(B"*#Q00E-="KM(6*_:"Y7J;7=MMM]UNN]7: M&+=#DOZ/<?.*2ZJ5E545*ZKRRY3+\\O+*RS*987**K9<65*N3,[(5)95%!2& M A;W[H3X*"EJ:7A50;XEGZ(2*%??H<_4LK[U !NF\,*:Y9A^M'M L%Z!FWHB M0Q>;GJ4H>_ 4\L+OLQ^%"< WO^L-=:W)2NH]OXD4Y1AHK2>"P=MVX'OH`9[^ MW8R&0VO/;](<TM <WJYBJXD2:C?00M &_8V'Y+QA`U^Z 7X/IZPI'MO5GF X MQ/XCK6'_VI<O7MQDKP14H8?-Q4%(C <A1Y9M'RF2(H2IA%H5+5A4,B%/)>?V MF DA4HY)"$[BF%!7"Y$E"-^DC `$+W'XUAE4E$4&]:0.J>9LPUG+,!. <[SI M3C=]Y:Z'L[DFY(J$<&42:T"B%%Q3ES"XX1" E:_U)$PCU(0[O+KQUZKDUH4' MC> =$0Z9"SPI]X#R4G8 MHMX'05VCV5%M' C _S8`=:0]HE(T_ A)1(?:K.WK[GQ6AGD^J.'2`>95 /DN MEEVE%?5ODH1$T; -F[R [ />NIH U1OSH,EU:(+:MNXZ-%E+$A)VD&-US_B( MZ4*ZRL0GJY20EY*FN0S9? V'X,4?NA*$,"!'SG^)$V>?A&*G-!QE0X$ F']( MEW^%912W)X1O)90X%'T':9-B.P#B[/.Y3N6:2*>J80_,[H9#NU M`13(:] 17'..8[ACR&T2`OJ4:XZ9EM9PMG$$NYUSRMC!(N'>=7JUQ3-MVCZ) M&C*2I>QD&/P "KBA!$[(6.R8'V6AG: >.*<?*Q>;>7*E*ID4:IE"6SV 7CR9 M].,T-F" V'V_OA3P-H(C#I1J[<\(:( (:!"R-ZU1D :%!+-E."2G !:ZG7]( MB(0=`:63'6,< V_K(.F_GY2EH5S)MW:3T6O\L_C3( *:RUQ[)'>J<V/*<&&1 M$L8S:&/*"$5%BHS(0$H0=#IP8TJ L-8/QQJ)RX"$3/&0K07'`'L"LT&Q#OBS MSXL:E")G)X(4H&8.ZI&"`&OA);X3T"]J[K5^]1[_:AC_U,=!9ZV5XV0-\18G M%% _Z%$D")B0A?*E!J&#R #R M)L4ZF&?66DQ85'XPK(0:Q;I:5>!#OK?ZC/RW)JN6PN#G4>8BJ+=,S'"R<B<K M,]N=8 -!QUG0DX8T1<,3N)Y.AU4W&!4O=X(:V&1AH(/J!.NTZVP`W[)S*:QC M+[WHF'MK_8/,8C$SWC'T]LDM\ >;=['#H&8EUG3X]Y8_R+5 KJ("B%=40 <5 M%= G107VT,5.PVQ%P],NVH:+M)VD!NZV)/70- + U(AD9#ODO M+7V/WHL^8"G:!ND2&*00#L M;)O?.V0K=JG7_]"QCJ*:;M**7?L\)5U.I]D^]ZK3R>T)1(+S^29V`*BT2 <J M2Z.$[_ ]=URB.1!Z`!6!5/'\;NZD9-P!5C(=IJ1*\>AJ)_0-:2/SW #S'/H5 M#D%#NDOT>PTHF#OG'Q3,QU4".:[8106C$V?Q)HO%5)1_:*^[Q_J ZUD?[C;( M_= /:/]F-AS*09] [9 E12U)X*CN2Z(E^Y(\U0N;-VU,HA7;6_4?U0Y;`LO? MG?BM#WI*OIJ>L5%1UW2 [JHG&ZW8;K/.])2TNJJDZCM7>];IU);+^DYVB&+G M="<PTF'NL:]VD!$S05/%\S8LBNHK_R)DJJGNZD"Q`DO7[V<'SG#XN,:O2=VH M$D7%V<6*BLL+%15.G& &F"H%HA);2918L?,M%>X'N"*S73L!$&R?IS);2U5S M$[HXVW7%]H.*[<^ ,[+^>^1YPU'+H%NZM.B6!EWH1CYZ0^IR`VELCUH=[5:_ MW4V_(JO1'!*G7-:]B/:_I61_U2-_M_3K(K?X?PG]C7>G_]%[T8^C:1(^(% R M4HLD,&) A2FV-W/V%*YSO.*1W1[HA35\\CC2`W7U'0_YH$QEF^T&T*VYN: ] MC$5<9U>MEV*73=]1BU:O#FP M9EPYT]0VEN]HNB:5'.0OK-KOW71N;& KK6[T(G6 &$K^F=1PF?V8NRZMW0?K MM(D<^).:T6 #FXJ]LA'MENV[%=L_2I6TH:H1^9.:MG$$5&D<R_Y,6$,6`& E M6E3A0%,"T";*9P`:9&U7)'WM5RB+!"?U2\A&&ZWM*TBTM4AZA$BQ'12 8M<\ ME9%O)52ME6IL<4#E0_=-QB%I0C;/,=LCKSF=. :IBEUYJFFYN:&'774)XZ<! MP)^,_H+^&/S6'G$$];.^9J1 N?[+VBN:LXZ1[M;'C(TC4AK'ZO>N'4E&"JJV M?Z'1J_9GM^LS=J+7^#EB8 MT/, -KABW7I(XPXSQ#JGQ+50P?Q2BW8UH-E7KUH,%91DP2*+55NZ%_!O93"8 M;#I[UE `WTGE`C!U+KN2V^\4 '"-[<(;.V["ZAG:"DI)W6!3U*N D1F;H V> M!=3+(;?!%W))Y[A6YVTBU6U_]+?_!M,6!#E2A&_1W Z;'7L/N-84?ZM%E9Z- M: DF!BKJRTB.5%%/D_H2RQ+X(74ODBJT9399;!L\2+&BOHLBV8KZWW:W/$-R M/!3U)R QY1$< /IA`V!6!\+/'?X_J!5SW34/RQC<"!O!I?C+A$7^7'.GD$0+ M/G98X6MO_ G-\2"'JI^:.E+KN;/$:.?W-5Q6U*NATV GZD(OMKWDX5K?P,4S MUUWW8(<3"K/\<1=6"D9<S_[9=9H=1;HURY]KZA02:$%#NF6!; WA;7=T[#IV M[)WNKES'CFWO>:/9J??LV)ES8L=""7UW[=VN]EZ]FROMZ5V+]-;^9:W*[,E2 M>TC<+)Y-66* R/G\%?Z(QJ;_[,(;K$<&?[5AOZ(^#VJ$GN<_;LO$A?%._0F: MB+^BL;V/6NC"&Z$?MTV6]#D_0 MR"G"=!&\_"BENO._[T[NXSV:;H[EJ^FV-N1CM_P2T"BZ7<B.C9+W)>*&:5[; MG>*_4]2_)PISNI25[U"33332? >":A07AXW3*,-DB]PPQ2(S*!4-#V.+#TB) MFJU9*<GN3>S$>Q'KLA^GS73$6T7P*R7FWA""[Z782?OI<;6J>;4? J4=E=F' M /ONU;QG_J93[%+'_'[6'U 7E^"Z:!7CVV <=P\DO$VD[UT)N/FX\U6GHQ0- M\ N<I/TBI_OV"M^V1"=>77"_/Y"LDF4+T(4LH50ES\H&!MEE(U!/^.GWL31O MO>=/Z#G M+$0O0_1*1.^'Z /MSXP&A\26FUO;W_PC\/JS7W;*CL D],UV!KQE(QI5;4U7 MA86V*GPYF\?ON9,>D --G5(KW8"5):UF% ES5O'Q,!-E5U[&Y<</6O-[G0$[ MH#UO[[=#S M`?-(SDNMJ_RLT^PKJ954ICG+? B7K-EV;H\_/U,&Y=SQSBS)X4Q8N%H()/M! M^,G-7=2WDYD`6B9DRK.YDYTYDJ]!2(D),Z3A$*O2V%J2R $X<8GZL5^E_%> M2=_*[ZN.<;-^">OD A=6V%<MY??IOV)]-3:^6M9S/JYOK?H&>-MIKAHX)\=> MDI/1PAPYO$H^`E[J1[*>9+ ,1 M*XIJ22!L=?CS-B$)N<\GR 0R:'R"O&\' M4;1 I&FN58(X^$2:]Q8/.#PX;SQ)\:<LHSAO0#L8T#J&W7X_P)H\N(N7-=_C M6P%D8P8(A R)3D0)Z4U19 [>H(#A\R,2/DSPXX<*'OQ\6E#P,VF0[D!^K,.+ M&*B>Y-;58[. L^MOXGVZ:L^=&&7;$V"9Y/?F-IQE1Y(ETJW]EIUE'W'=Z42^ MY>9FP?H& L+;44TU]])_6=;5"NPC<O2F&3"8D3$>8*$,S,ZTUSAQAZW!QN]E MD6L(GK/)W$F"2%\.T(<< +'P!P)Q-KF(%'DF3 4N^ -<HDE[K^_=]%FN]= W MU3&I%WTI,JY3MGH >$9Z#U"A'DCP5+;5!6L3DG6W*Q)HO\ :T)DMS*?-W/<W M,^T?`29KDE^N0.7RNS67-?NYDU)6DM"PWQ(`$Q-T'"A>KLFN;P5/1T(V*RUX MC4*>:;9_= ,YD6GW" 3E*"*%^2E'&?+'\VV8Z6 E!?*A_!R:GP6:2J"?JP0? M1',(Q3>2I,D.XS[ZRF7 E8K?JSDTJ^&L8 -N$_![K?.OS.)NR%8ON-5_:Y 1 M5' %S?\D^?F7);C=LMLS]5^[DE5O\GMGZ<]4C[JU_[TW<98UR* _`S66T/QW M5>=X1<MTVL4Z%<RVE 1R0: ?+K^+9W<Y&AOT1G;QM25WU*B+EQTP410[I% . M5%7Y=]K'KA&TXA)DH^<J_K*7L_FCZZ:R2VZ(?K <G.*)L!+1_JM'`)6TBR*" MCK.U(S*\8 4XJO\*52/BPE35X2YI`$E0_,6B M ?EPJE7=Z%0',;+N>RWGB8 M)$JW-;M+<U:0XO&7)*7AK,7;.KM+D C%,IA+TSJ%$.YT)[>WDUM'4ZPGOX;F M P#PYA58P\NEW*'*`%%9 9>QCYQ98,]Q76C8SP9J;.[U-W?UL]4>4,A=3<:Q MY$Y*P"J7F,C23(1_,,S/9)4.U'OW%-"?4VP(A0F-Q[Y;4-)N?K9ZS-T16A]2 MHMT>F)-IWPX^%8AF+O?#S5R8:RLN]?03Z>L'L;C^$\;\#E5 M;K-O%;Y9`,&08Q_J0QQCA6\/M[?<N,MP\9WB^MEPR!(/BW=?PP(XP)]''GA M5T7O)'!.IOT`Z989K"7N^$VS??U%U]&C[FXB<0_]#OYYQV'BGQ/OG$;1"T+1 MDZ/H^4-WB&.-QP0*7[/]]:MXE60%*$F%+]A+_#Z7W]SQK_K-/?AWNM 3P<]V M?2;/XB\2:W'PHMOM+[-03-MC8$V,FYS+V]F.;/LDP'[+2[;'$6+>QIGK#HE] M(;2]"X^S^--9.Z"QTVPN/C[71!4XHS"[ \F"P%HGE/'B^<_!:9!E3\85?9' M`P#FQ"&X)6-1%)LRH.#W<K)!8Y&M=-K/RK'2]%%0:?P8BMKB]RWN*\C %_A6 M/SMX5/'A?L7KUQ6O'_C\S,&6*Q?)+D:3XB^=5PI4_I)KH<U\*T#W&W&0.PS6 MPA)L_(OPCP?\WH#N0 M,/>]OQ.ZN\GNF;K*YBT$+(4*DMU')PD!>9!:M=];\M'12=_NY^+G$PLQX-O] MCJ%WV _?7KW[!";GHUR[V H.]2)_Q;K"UJ*6E/9U'HIU90<4Z]8>5ZQC#PL) MDH/< 8^:TL'I*$N >%4IMF__=N"&AB/X]LJR'?C]C<-GTPX/<M]Y!]H8?%,J M4JSP;?$D`P?X_G!D[;DC9>W'4N1'3ARQ';ET9/^Q(T?:O]U_.+ `R. /?S=? MJMAEDMKEN-GL60QYAX_\X;OC?UPM_\:GDM0H<J9*N79?ON,[BXI^=Z!+?Z1M MG">G&_]I.T,7K3^I4!2M_TBM+N+].)MTQ?=2QPENC^^1LG- XY!^:-Q2^ +. M#Z MU>L&P%=W IE1M[^NJ,DQH-&[\< ,>.]Y]<ZCZ1F-(UW8[SI_B<,$-C:H;XW3 MC9V,]JGF*'2NYP*_!=RZWKX1W^*84\0Q%(M>>M ^.I!RI/6ZW]O)M4B+!)DU MZ[%?R D`+&39]UC?(]&4!7%3S\']\DARFF&DR$G*?W "(-KO.CQ=74EENCW M>)<6#SA8[Y7.3/MK--EBMJC,Z'C.:[AL&5'WH _%#BT"NZZHR>Y5Q!WW4KQS M`$SM"?V9HKI;]BMW3<IZVB\/%Z^#D>]JDCQM=EIS5B5Y%U]!MM%E97TW)M$V M+OW4E5+HJGWW"-=IM67,W>D$D)FJ3KFD,4EFMPZ#WA M%; :$N:CYX/ ND$TX&Y-.EY8(S7K?T;)G1DB9"KU!]E!XIVX^N-DEU 5>C"T ME4\*ZSX?2 K3G-5WX*6=U31O447>ZC2K(E>&+:-1',PKO7/LO\$=^+W8J;,6 M+U-H)[82ZT2+( .V=TB.V3Y1/&E7 S29/)(AU*I,DRWDCI]:DAF"'[ `D-"D MJV#XN:KD]A(2KU[--(> G1GO #C352KR%0D*L-N9HNLS75WZ';>EH0K_E68_ MU^E7.R+T*G?"PT*'MEY\D6_BCGLTM4DOO 2B!)8`Y/32YZB?-(<:;#EL ,:V MY,[OG_ 6<D(!-I2U5N&\<>&-+M;#FB MY3W[<T7 AQ8UG8%9>1)FY6X T2O3_LAH-'"/" O-=??[4991<^Q1Z(LY(N[4 M=5$N<RC=KJ\-^]=ZBS7HQD1/OM7A+:Z1'ERK$RE:*;$?06ZW>-J/B984Y*Q M416IS>YV'6_;,U'X%A\^W#VPW>ZC8BPZ[+FDY)Y.G2B"Z"'%(^IN! 05N<,' MU=BQ??"XDF0D?>T)8\3)8[;'(+W]H+F'?_Q+NM<7[:O>T"I>#BX9J!YG`"9: MK#E F-+BL1)>KH?Q;R%C"KG_'GL(?= GO +HADW "K >6(9=WO,+N_S+^.\, M:/TE\(C\=,!4<+J3'XL2*KLN4C 5%:<4%9<5%6?[?-\'B#X!1%RG<RN"N<O^ ME-OSP[O=TFB^)WTLTD?H`NK.`G5W[']MP;:$O0>02A\1U"_G<F:V0-H`'7/Z MQ"A9C%+%MNGBFUF,YHF9\XF<S,QSMB0%B 5!8J04(Y58+41\"Q,CM9 9*;;5 MDYPA6 :11J)]JK$UWVO_T7SDWOMS9%RX3LIRNWUD%M3V'0XTC'+Y#O:\PC>K MQ1/KXG/7-=5ES]\2/R+Z<]QL0*+X$9N+WV<Q-5P&-0=*SYX$_28,SB72CY7P M=2=,U9<.D^AM.XE>/XY'V)FTL-:/.UD$EGHH>/=D$); Y%T(4W<1T2S..^VG M]7'+J\N. POQVT \T19^ W] 9X[9VM )((O5T >SO>:HTREF$%^I&/^H2G$Q M%G7WSR4E(G$5(G$5(G$5A#B ME!3CWZ_)= 8<AQ%$S]! =J6=`:?$=2V.&^04]4X_8[>5AN75_?T-G%ANV[BL MK1W*+^YZ".OZ^P*$<LUEUP)$N *P[#O!)1 "G? A5)![/.('ZYJSN]!&</=] MF&^.,\ .74OA6 *Y&P-JSP%79/;3/\) =U*Y6^TP.2T XBLO.P/:\89=*1H0 M66;[UINN"P.CMV =3N9TC'5W_PH_/X['&KR7X(/QO 1:0IKL,WE2 .J!;E3M MB&HVH/K9A6H>H (O7=>-:LB6=A<J_^[[FP3^:,SF/80I&.]+`?CMM^"/[(;? MT0W_D M^+<('=^[PC1[X'6[A^V V+Q$",-Z7"/ [7/!QBZ\3K$,/HFXZ4 DT M\WDJI6-D]_WE_4[^NUZWCTV2YKJX>(N=/^88[KJ?S/_4IWQOW5J*8G\,/:;P M3<FRY_W HEX%<F+Q`=9GFNU_OD"V25H\VP$U%FS!A.#G"+YC?B/\KS2V:;T0 M[*Z+!?C3K)%O$P5HOWK:Z=0<VMIUS 4G5PATJ+K[OP6S^>\03- FC2VQ;T<H M-'<O'7.9NYAH\22OU%WL8'L]*&/-Y0]Q5N 17D GD#R-VQO(W213P%[_ ]/Y MW2&2\>T:&]Z/WHH5B'J^A;./_A41\*=AA,$6&XW58;VI)!\QO51_$Y>7#Y\E M0#S'XFL?Z^I%UIN$+*K)1 [$R'F7DXP3K L<6 >N"C0N\A4BHRI$ME401L'Z MAVSK=X&"\<=Q) -T^I8$ -HG6K_PDY5 $JT]I5A7]H5B'?N-/?VD2Q\ K>PX M^P<W$ =4J"C\1%'!?J.H*/OBUM\5P.^+G0&R)E1+&AO112X^*7QA"IOM-TZX M#KZWHNRR6GOI7>"Y6]^2%#L]S,4A.*R/V5W"YVC[FZ3;/K/'$>6JJ'\9LHBT MBLQN2>D DF[8)+)3<[FM6.+F^QFPJ/(4.VTN%.$N%):0I(V#ZO=;_!4[FUQ% M0[NQG][G14UO"Y:(]-7%C6<7)I&+9&U>B. V_\4PG VJ>U RGAVVSVO\=*Y9 MI/JVWQ+Y&HJ,&G]]=*_A^93I-;RO#C M6(4P76G-"0,KIHH<KUBGAPD9Z4*.<HY9\)IK=N8DB]\"> H98?P W)[#O_-P M4G9 W0,^E&7T2HG],A 4+28:74RN5;Q]X*) XPQ9W0DO-G"1D!CD[N]/"54A MI4[OS4I,4*/ZPIW'5> ?RH[\\OLI/D2U_0L74\CXXR9I-NZ29N$V*1[CX1>= M`_!<QC(&V//5^3O8TVT?N<XRV!C<U/^IVY ,72GIM?%N?ZK_]MQ-">N3J;EL MSX1Y)TE6!>8*JPP-9RW3A:1T:[K*WRQX9,\Q.[]$*;%9-'WA,F[ WJ;?D+[. MQB39OB0Y,LF?3PIRM19O&?\KYV?S5&KR_0PQRIMONJ['_ <?SY#S6;S!OB,9 M5A^W^\-Z&2MI3N1L,N[:A-H+=^XF9(L;E"'KKU'=WUW?9DBN'2303Z*_`2LV M-]39Z.*;YX*=V72/&TGN_#LU*)'D]<Z>+H (II,> '2F=O^1)E7/'VF"+OE_ MZVH\P7/!0\,<^RQ1:JQDN +#LC/)=;D`OR:RQZ*B^+T6\0Z=RGX"$.7"5%!V M[2%_T8",%F ""E65%+O7[_9 BUA1_."A5_<([KMM*+C?/UB/?T)!XOX08ZT" MHBPLK'2_TAP%:3=I+O-7'?=MVB Q^+ C\8AAAO[+ZL%U]TN\V4$)23TV3 (8 M*]/XG_$V0-7G0&>R'M"QH0A.LGJ\(/[1$U5=K<3IPPX%D9*L= +V9/LILELE MX.(HB[_:YAAR^_Q[4ZK8;KN+D4' X[TS\HV7?"X`W2]V+<ZC: #OH8'&O =Q M\!;V^_V>/-ONCS<K.IVYK.]B5^6>\V5#MGWU- M!?^$LH[<Q=U?W_2]?T6._^YQ/ ,#U._>?I X,0*!-\/<V0=O2H _=SE/(.MW MXK]S?$5D][ _ 7YVF%T#KMT M/*J\B2$ EX(I(&;AEW6B(=!]'<,?$HN)L8!"U7/^W8=_7*>$E6?:BRZ3:SP. MCTV:RVCX7+[D,GP&`UEHH2QVP2:W/PA,OCH(O^<DN;V_'^OY/IF[+G&G?FL] M$++*_F][HXR8T'_R)KOW%\%3SLUT_A.,\'M^]-QG?\6G`W?03 M9?MD"*^.] M4MXJI,I /IEIL3ZL5:?!2^L$+^TX>&E !9?9W6X`<?$UP!X3N&FL/TZ V^5G M"Q8[/?'7*B<?'0LI,JL\;7U3[9=XZ1<X,X)\6RG7V-PA`,!VW7&0EG;W7<3R MVM).VMM)^P[2OA/K=V'[2Z0]]3HN#J MW,/RQW>(`[$<XB"(3;DF2HGY"TR4"N+-BTQ4",8K3508UH-8C?56F:A(S(=8 MA_4A-F YQ":(G?W_"8__/O\'GWF%U9:2\A7*M'*+<HI1F< N6U9:J*RNJ+(H M^<;3."5M-AK#U)22<O*_C. K)J?,3IA-\LOSRS'&5U>RSU,SU$3-\K\5WH/W M" BOW9;_[X0S0^Y=IQN_MZO^[?C=P9CFRC_?B\8I;G!B.FFPB2IPA3F]TNZ" MP15']\J;#R$FP$0E_ O!_Q?F80CM)U_=*XWXEPP''?$O!/]?F(=A9C_Y6;W2 MB%\V#O37 MD,(+2'C':6!UR0.%2Y3QRN"",&59?LT2?">OWM3 29-2YL[-F#MIDC*QM&+Y M*B4IJV:K*TN6EU2PU:7W*TOSJU84DLH(*Y-=)E:$&9QO4097]H'14UJ47U): M` (JJ HK0>] WNW$DV<L%4<MH&JHIZBWJ2^HB]1 B5HR6U(FP1(#M9"ZGWJ: MVDY]25VBAD TD Q)N223+2_(OY^B9E6(\3RVL!H3.84%Y6(*\HK9*E>2FE95 M0E*9^1:VRI7WS1,FZA2$= B7(%!/PKH(P1_"C/QR-K_J?FI:X;(JDH!G5G[5 M7;&Z.XM*+ES>DS8`OF0(9 CS(2R%4 "A%((%0BV$1 B;(#P+H::F1BD&^!=+ MWGEHERO?%;]I^'?78[)G(''&I7 ^9#C<^J'AL'^7P7 I*+[UA;CX]F$+XC?, MJ8E_)U2(_]#WF?C8PR_'/['AG?BI(_?%K_SM%_$O7C 9'Z<['[^QP!E_Z?T! M<XPS_IACC/1?;-RYKL XZ,1*8YSN5\;RAC7&YM:UQBF2AXT31S08EX8U&D_' M.8U/3I(P-Q9+F8N/>3 /--/,4Q<]F?3Q7LQS&3+&^N! 9NR?O)GLSP8QT5?D M3--H7^9ZHH+YL<B/>80?S'S[ZA#F_ MRJ]&,CL;1S%>SP<QX]\:S0QM'<-\\_589EV[DG%VC6,6RR<PSX]4,<T3 YE/ M(^YCFHP3F3^FAC E<T*9";F3F,^63&;*"\,8Z<HIS&_*PIF RJG,T[]2,X%5 M&H8_ZA'V2'1$V++?5H<=W_!26-G5XV$?GPR<,O[CC"E?15FGO->^:\K$,FGX MIF1-^!/G*L,[WML:GM'X;?AU_?"I3?RLJ36O"U-_]=6'4W=))6IJ_E3UF#GE MZIL7MZBOCOY&W?)D .;%V3,U>:$;->=;WM<(.J=F?^44;?M[J[1=FLW:!>\= M/S,MZKTICT0IWGLGZLS;5Z-"_Q8:[?EB4?3C'SP;?6' E]$Y>_QB]+N38T9O M;XBQOO]VC(*Z$O/BUQ-U(1,*=(J!?] ->.>0;IA6H5__?*+^R<1Z_9.[_Z[_ M<,XE?;SLOECFE?S8:0M^'_M(V8'8B!=]XG8\;(KS__SAN!&?_37NVU?/QYV. MZ.64JB]/I> >'C7M[PLSI]W<\IMIS\0T3SO_"CU]<$;D]-?]V.DW^3]-?R;W MY/2QAT:DKO2;DWIJR*]3)X]H2IVK]TCS7:!->W]%59KQ_1?37CGU7=K;]P7. M6/_Q[!EC&Q^=\4=JUXR_?R*96;M2/3-\7\7,^O,OS!16'YO9L6Y8^NE'T].W M2H3TTV<_2)<54+-FU(7/^FERV:RFL"VSPA5'9S4=\Y_]R+P9LPO6\;//'7]O M]F,W;\Q>^8>PC/:G5V:TE3Z?L>Z-PQE!IJ'F>>-3S=F21O.K1W:8/S-<-W_Z M_J0Y WV*YYS]ZW-S5LW[YYR?_S1X;MSEE+EECVR8._#P]KGO/-PYM^A$2";R M=R6SK;"8>6MW$?-T<"&C__5RIJ8KG]%5+F7RVA8S^U<L8I8Y%C*^E 7,WR2Y M3/03.<SZR=G, RWS&)_B3&:<SUQF\W8SPQ9D,!N'S6;^\4DZ$_+(3*8Q90;S MFODV=BJ3D![.3%XZA7E\=1BS\C>3F==>G<3,: UE&'L(L]X[A/&<.I'9DW4? M\_9#P<QGKZ 8[Z\F,(L'3&":8\8SFE7CF"V;E8SWX;%,T>"QS.OI8Y C_&CF M1&L0TS0PB*E,'\78-XUD)GPU ADY= 336AS(W/?6<"9<,ISY.F,8$[PY !EX M9 "S<>8`)F:7)R.+]&2NO4(SLG$TH_Z]!U,QQ(.Q/2IEQLFDS*_K)0PME3!U M=;A^4DSOM>XB'<5TAUMK:UUWWBXQG^3M<M7?U1VZ\S#NKBOF=\/OO5;7]=1_ M];/2Z- 3+T6R)U]]-ZEPQ(ZSQ]<;CD5-B/NA[;F=/RYZZ4-L=U21QDBZ'RD^ MDCL>6M;W4?<\KHS-Y*ES\XCE2\EC<O- Z?_];3J)U(/V'. E&^ ]2.[CJ_ ; M/&2H?\"PX8$C1HX*&CUFK'+<^ FJX/LFAH1.FAPV)7RJ6J.-B(R*CM'I8^,, M\4;&E+]L>4%AT8KBDI6K2LO**RI_555M85>OJ;G_ 85YBQ8O6=I_^8.U:Q]: M5[?^8:Z^8<,CC?Q&X5'KKW^SZ;''?_O$D[][ZNG?/_.'9Y_[X_.;M[RP]<67 M_O3GEU]Y];5MK[_QES?_^K>_O_7V]G=VO/O>^Q]\N'.7K6EW\YZ]^UI:]W_T M\2?_^/2S`P</??[%E__\ZO"1KX]^<^S;[XZ?./G]J=,__&AO.^-H/WONIX[S M%RY>^OGRE<ZKUZYWW;CI_(_[GY"8E)PR;7IJVHR9Z;-F9YCGS,V<EY6=,S]W M =C__LO__]'__\!>Q4)G]^S;+.TVJEL]NU/79*Z4Z5FY*V5N5KA2JDM#Q%3= M[YX>)J:4'^P<(:9"5IT+$E-7I4\J2<KT3M)[$TC*[Z4O[/>1U*0?ZQ^;A*FZ M:(34LFU['36O)YBHN >&OW/?5X>3P5G;5JZMV?!(JHEZ*\>;&5;\RDP3M>7L M)Y^.VOWY;-/F>G]3_IS<^KFFUI=&;'KWI8J7LDRQ"N6EB;_Y^-/YIOJ!3W36 MZ)GU>:;3 ]Z-_LKK-UN6F+Z=O8+^Q_X+^Y>9?C=^?8JIMJ*KT/3'MRLGO_SZ MWN=*3%_^Z3-GVMB:W9^;MOK_8>^PU_[^4WS"\4?;ZO9/?^^W+R>\-OR'=9.W M0^\GK?[^DPNA4^O7WY?\N?>FH]3$%Y_?E-PS6NO0Q]G\ HDZOA49TYA ;3[< MD!.Y.LDU)B8FT40MAK 6PK.N0'SCJA5L66&Y15E:4FU16BHJE*45Y2M / NK MRDJJJTLJRI4%A>4EA>BTS2VLKF"KEA<JP8NNK*C*!X_[?B5;GK\ZOZ0T?UDI M\;D3\PN4126EA="J>GE52:6EH K\ZM4ET&H96WT_^-O*Y<4EI07XOU8O+ZRN M*ZR!#E03_/D%!54`6LPG7<(M$U<]<T5UB06[E5)5!;3E`!Z *+\J?[FEL$I9 MQZ>BJC=96$8HAMH6R"2\3ZDI7*XLJJ JR^_I#M M*H/<6>X'/N=7 OA45I4 MI**Y992)+.GHRYYPP;+*\J+2E:P501X7QY5HH1; M$&UB5<4J8&IE264ARB);:NDM-2B?^053*LI!V GG>GB>6;*B' 2SFS546FEI MX0K(J"XL7$7UXK=+U*FL\E7E%6O*>QHD55545T\1J29CC^?'KCI$.I4AP06A MW?K:=CP Q40- ' U69R[JKM8&;+/363SA\1NGKHBT!40E"O$<KP1A.!"[ ;S MD OFH5\&LP- XGW#NUE#LH,NF =_&<SD5TS_1\RE/\)2< 3"H9DFU^XG106Y MXC&WQ>[R7CYBHHHAS%L`NC-S'F5.GM>S[X8Q*N)9.<J<DO((K7(N6VXI*2.R ME53! C)$>5Q1"&)77 6RAC,,Q(C\1^]9Y<7YY06X;5Q8L[RP$J4W5AFLUM5X M)UBZ%5VLLN<A)>0>0D^[E.YVA)YQU9:"V-AE^05+>N"-&]>3WRNOGWIW9KOR M1\;!Z?QI7?=^7E^1[% GECO_Y?K!P'UQ3U7<Q\T+#X= 4>%YLS+QZ^EP2UDE MYEN6F: :".N6B3SYU/6WVY(R9F6:4Y*HY64%X84UA=3RBC)0\P7A$%/*J<LI MI5*L%^["K-MFH SW".O$IT\ZJ=N<6R6>!?\G]N$M/MWM^?? I\V>EC8[;5ZN MZXPRY,YVKMW<_Y?O`$PU49L9$V5*`MVV",:B%-*E)NJ_S__\QV"[E;ZVFZ+> M)."9!"$10AX$"X0-$'X'X06D`<(^"(< '(?0OMNU-C?_W\5;0:6 ]9U4!08[ M+(B9A<O%A>);27IA_NK"._(?!8NUQ&)V65O/2J:75BS++TU LY3:ZGJ;5E4( MZ^X&R?1"R[R2Y:M ^47;_8!T7FFU6)$ZB&E2[1"FH&)V?BE;2$W!-NGYU1;1 M<: ^Q]+,[M*!6)K$5E6!)=M-02F5S%:6EJ!-G$H68VJO)*T<B ;/X8$[R"]& M")F6`E=5: 2^IY2O+JFJ*$?[.--2!8Y)-=5$(7%W%B10"\#R+07S_7;(6\&C M5Y3 %"4KT<.X"C$/+" 2#L7V?%2M)9)`97GHD?$,3-E[NR4] AM> &X3U2S MZCUB9\0NC[7&;HUM-;89KQD]F0 FF5G._)'Y"]/,7,05$^P!/""EU1/4I>H= MNDNZY_1;XR5&;V.,<89QBW$<,Y&9`JUT3#R3Q*0R6!GMD''14Z+'QTR*B8HQ M!M[P:\,3AFL&*MXS?E!\8/RX^(GQNOB&^,G&!XTO&4\9VXTIS'IF([.)V<.< M8BXPE%D\U$Y0SU";U?/5B]75Z ?4CZI]-:,U*DVSYGN-7>.O':--TB[7/J1M MU#ZI?4;[ G9QQ/T1#T=\%"&-G!&9';DH<F7DALBFR-"HE*BE4:51]5%_BGHC MZIVHCZ.^BOHI:D"T;_3PZ,G1,=$9T471Y=%KHKEH:W1;],UH:8Q7S(R8C)C\ MX_1)>K/^+_K/]-.!#T6Q%;%L[".QS;&?Q5Z-5<6EQ6V(>R/NK; ]<6UQM&%! M_)+X O _Q9^(_S'^;/S%^,[X&_$>1IE1R Q OL<Q6$I1M1!YJ$>IDS3+-8]H M6C03M97:Q[37M,]'M$3((GTB5T3^.?)OD4<C?XQLCTR/>C9J6O3,Z W1MABO M6+_8X;$38L-!OG;%?A_K$3<T+C$N/VY%W -QI^,D!B^#CV M6J<VJ$WJ9'6J.AW&9QZ,4)YZJ;I 70S26JFVJ&O4M>HZ=;V:VD11^'],;U:_ MJ'Y9O4W]IOHM]0[U!VJ;>H^Z5?V)^H#Z"_5A]3?JX^I3:KNZ7=VAOJ3N5'>I M*0VMD6GD&C^-OR90$Z11PJB':,(T:DVD1J<Q:$P E:F:=(U9,T\S7Y.G6:HI MT!1K2C65&HNF1E.KJ=/4:QHUCVHV:9[0/*UY5K-9\Z+F9<TVS9N:MS0[-!]H M;)H]FE;-)YH#FB\TAV%^'M><`HEJUW1H+FDZ-5T:2DMK95JYUD_KKPW4!FF5 M6I4V1!NF56LCM3JM06O2)FM3M>E:LW:>=KXV3[M46Z MUI;""%FT-=I:;9VV MQV%NV;7MV [M)6VGMDM+1= 1L AYA%^$?T1 1%"$,D(5$1(1%J&.B(S011 B M3!')$:D1Z1'FB'DP%_,BED84P&Q41JFB0J+"HM11D5&ZJ)>CMD6]&?56U(ZH M#Z)L47NB6J,^B3H0]474_)B\&&HS1:'#DA MNDI=H^Y1W2;=T[H/='MTW^B.ZTZ!E/OI`_5J?:1>IS?IG]8_J]^L/ZS_1G\J MMCVV,[8KMC.N*XXRF S)AE1#NL M7%15VOB=#V"$P1D%%95L5"P4K8'A>_ 8P%'\&!T8`4W)4,"1$ CN-2U1Z$)Y MN4ZY?>RVJ^WF6KOMUNY6VQ:56P &FF5HK5&:FEE=&BI2&E GY_\\Y]X9!K.V M?=_?^_O_W]^_ 7/ON><\YSG/><YSGO.<CWNNY18K):<H2DEI*(^'HEHI\6>B M87C(D *UDGM6Y [QRPD+R$]!!8L>O0R9*85)"77273N,BM+**(O$Q$>5/T* MH^TFNK+.5[ S(F^H]FO U9:6T"427+\$=^![<-:;UOO!(9>1MLYKX"OS P.> M$GQO?0_.=%-M667U6 D.>$JJZ\CW\Z5^_OW\^__HY]26KTG-B8G)7;ITT<[> MAQRB+6PZ9DC5!;=> 1#A?8_'0^+R*E3"=D!J%9Z':T ;$]SZ'0*\" !6JR<! MWXU07^N1228 2X /`"_?(SP!"?FAUU #V82;X;K")BS&VY)F5_V70C-$QW19 M[:V8_%E(SAY0V80 3+SZUI6 NX#O MKXL[`,96:' 9CO%F%;]<R:N,']0'<Q%<KO(U[+*RV39EXR5,MN7C9A=S_-:5 MS[[C)J21&X>>X ZDFSW0T]H-Y0+V..K=?+%*>'\\136?8&RO(EG.Q6PZ`E.T MRD-2.8T.<\\KX<^9*&L%1?YD]F5A*&0O1T- >9=94%'<!(]Y -/ I<CN' M, MB[[!!#W0,JJ.+DU-75-2NKJDDO0E?P9"AOOYX1\IY\G6`:R_(< 0J.Q34:04 MO$7%C?&8AUJ1>N2-G+><+.5",1G6E$353DI-84E\F>EF4?[4UA%JYUYMC!&G M(M3FBM26;5I;5D.OKZ[Z'H5[M'_'2D%?!/%1OCI<=L57AUA?)B!5T$,Y' 4] M7CX!=^"?<(L;UP8R0&J:"T4O;SY9NI?PZE.O/)ULW8WI=Z)T;AB25\CM"" L M!&>PUP_YCD,?_Z&B9]'"P6/3/X2BHW5D`[VW_GZ*X *;VQBEH<T9Q%W?*A,% M3-0!_"6^IT)I1ZNCB%=8!2- \_V<H=FE>:2-/2,C AW'EJ:B[],)TC0Y&(3 M0 `><&OX=_FNF/>%*13J5.>XQ Z,;OP*K]!\#P M.KC90P>R]5J*%'F%_6.$?6L'%*P'&C*&F>U?0)A-Z-B!O+$KGL>'%_$AR#Z% M//P)P0NTG)S-H.A0-A,:/&_1LBDBS !O>8H[ $ZO7'K&+8.T*XC,BL]6OV>U M%9I3OF?<< B#BI?D6= '^ 8&-<5 ,!;KC-170&(IF\*^A!X[G3TK0*?<BKZ M%C]O(NT(LMB;^[S41BIDPE]1LUV=+X3_<CA\F7_X5C'\>W3MW G_.[L"3%(^ M'3O9=/13=*!G')+1 77RBAK5X7B^7=&F"&C"M&T#G$G)F51LN](XK 8+<W8/ MW S'_$ ,ASBKDLM5=0S768&*;S>X&CTH*W4J]J"G]T- W6528>:<5<TE8T58 ME=!5A&X!+-SV'1BQ<R?R8!R&-!^C5=P]^.P,V-L``7LQU/'HPT0:.05[QJWH M83N4;#I203&S^ 0D3.%B.Q7L9VY'CG(O1O"=PZ!")'"'[53R77,0"RNH8SH= M5AD7QIYU=\T-4Z+:-08 ECH-WZTXIAA'"M ^X SDQSV,R!8JN45*SJ;BX;I" M>&),;OZ;F/.\%O)FOU ;SV\D7$*8F7H2RK_)[E=R:BUYZ)JK)>3Q*O9CMS&4 M=GHTH!X^PW*SZ8^22 D6OH,AU%Y\\-93&)$?15O [T T9B"PHI^_CM3X"4V3 M&N2#SU'RW3%AQO,:]FLL<NAN3* QAB*:.B4_`:O#CIF2F(4*C>*X+U(#D:$8 MN6#PZ M?YQ7Q'0K.H0#E[!MTY/YXS%A,I*TT"8HH/."=F9HZWT<"Z!X!>4> '\E`D]O M;$J%,>9*D4WXHUMBDW,^2FCV,(/60',F&(6;12:$HO\^\"/ 1%DZ05PPE%_$ MJ7 HI8%?QJK!$_,N:("YX#TNO#SD\<Q,D#C!`P^$UR&$!U6S^"%US&%4.R'X M>:L;=$#C)93+VF!04L)B0%7<8170ZELAZ3,"K&GZ%FN^S<VK7/OEM ':)R3^ MWZ)"_PH5GP\X1"W&+ 85Z*__-/Q1?QT]2M+1^4K^%B6W7(FJ#JXY M-0TZ#W0J9+E%I90S-_Y831N/; RR"A^AP2CINCP;*'7H=\SNQ X%FD&?H.IR MF-W\NP+G(M(<RIK=2M:I!&'C5KA!%%=*/"0L1!NCN".=,'N45?B3.&09R>M" M8NLP*%^OHTJXHJX+>I7TR8&.6Q7L)VZO$E5!5W\WZ)85QNNDKN"PXA!T-=X> M&;AO;*=OX-M9W161>:5:Y7?^=0*B#M72NYQHC!W(M_;&2]NQ%E;S^]DVE0\5 MU%R;RFA2TD.0'#IE)=_N3-N#G MN^Q72H[TET>(:#E6R+A)CA5*+C)8DI-,Q2$%Z>;8_0,\1(!T`)9;L!\'+!)M MHP`_-^Y:DALAWDD`9(OR* ("%<[)SHF.0E.^\!6TG!50R:,*!0,.9)QRJ9O< MR_IW^? HD)Y_W%*,1CF165!N%C3&8(0^K.+8BR!6+XMBQ>Y78!5,`MDR'F9 M_ZIZ/T6NZMG/9&AU\\GLYVZV2ZDX;3RLN>\ VEZ>9A=7[Z87((S;2(RNVD"^ MSLO>1./04(=T=WC3W2:E0ZDJ4O(=BLZ8=U$O[SX/_0<HED[N5K>?'B?URZ"U M"=4>8A.F8G+H)VD8$8$ WH,9.=?Q-C\UKX;L CUB;V0!_W'1! 'M!=DYC0Z; M!FF<[3 VZO"._6;/,)&QO+ AE&"QVM^+DD)62B'"QVHRF);*BF/N?5"M0F3 M6U_Z[^:+>G!DC%-B!Q1H+="323EM`JYN0!E=9K6,#K()]_1A)?L*3&:R) QG M5IK BO9-<&&V9"KI25' ";) ' +'4[,?$3%`VX<JH)%A4W(HN6/'NT]VNN^ M\"3:"(H+3ZR^U0]& C!>J9U*S_G.08_V.+9H/ 2.?Q/3L5\IV*\5%YYT.T>[ M\=F'! A"3(3?12UF4,9:0-AR9K ==(>'+B[G AR+)[C+N?ER/FC_%PHZAPOB MYBL7TGINOHJ;KUY(W\C-UW+SPQ?24[CY$=S\R(7T.&Z^CIL?M9!6<_.CN?FS M'=OT"YF#G(S+<F-VQ1V<3+RS9Q5TR/: *V_2`>7<W D>,52D!: H!_T#Y7)? MF>*\#D!=)K>''N,R?>>AU2[3%0\=E!OE=KZ<FYO++XY2YL;LE_*T0:8OXUQV M="W9\NTY<O"-;\E60.^P/4<!(WMX#ES '.U4H "L])81ZTX+L '5QWJ46^); MZ)!"& /L()I6S7<0!4[H(_/D3F4VVR8O9Y,IQH5:4K(#H3?XD,SE]! .X1QM M-]]I_&#CF M*T>Y=R;.E.9H47'FC(5FE!.)K:!TW1ZP.!2EZ[ IT!X[2M?M!>T\:U9V3LXF M>RQ_P)/P!+0[6U%A =7#A'L8K8=1>QB5D',[MNOPXEM7KV0/*#M\\P!\O=HU M7REC)MB-T$CM<2^8*/MDN BNA>(<OEGE,I'X-(Q?AO'I&']<BB]0N;+52HC/ MNAVATA'*F3L,E4VD*E+X6NYEV 1[`8(_CN ;$7R?"$X$+U+H] 'B`.E^[(21 MIK$$CUKXHQ^>E8CG<\3S-.*A<R4)4Q,)P^1+(;GA&, (V&2B6*EY8[-'TX0S ME"A:FF87Z6JB?K"V^]!H-$<KZI2<68 D2K _$[EZH0 ($B9ZJ6$R7?/52DW3 M:!D[&*&_(D1%4'0:,A$XW(U%=6-1SV-1N?FDJ+A4`OF(-\P+<G%_)^5"7\_6 M+L*G\\3JF"+-W*_G)R *E5 71!)5,'[F9;B4PVAMPE'*6ZM0?6[25+ )SB17 M`26:E^X.5%P6R9M GX)H+R+:+Q%MOI?"6P,5I\K9K03F>H31HB)0HB*X28)Y M+4CS6EC.?&,WP3L*1+QO>.G$6_MFK5B\84*=< $:E)J72%U#W4Q_Q[5?2]L; MAO)+E*!5Q=J,MPD-0,X*:Z&P">]\]_(656HP,[[I$#VV MTR'FG.9A7/>3ZH<]<*#UX(MD.1QR% ZC+(-%S1=KF7B'^>15"]]_C\.!&5?P MS0>X+.4K)S'(TLV-X<W=?,%!G S N+>X+- GW:"Z%FKYXFZG`BZ\N8>+;$:, MA'L;%4H)4*K&FF("T&Z\3=1^#AC?%*+>:[KDU7LD. NBQWJC(<^RD='37EGP M=06 9U<\+DD->(/0\P4$>8><$2^1]B'\=<#C>05AC>,P%3U1FGH 3^C'Y4EA MQRT4)=R>0_G-+4AB(^2=!&H>QT'\=ZV8 9%DA:NN>!?FD!D1^ULOD>U,[ VX M$4A>15%[^S]$^O JDORA6'8O?6Z)OM% G_#E"5\>_#B2,%4.W78"TE AJU * M\CT8X.D62K.]5 Z)M2+N.8 6/ 9<J*- *%_ [9PK^&*W?3?9C30'<FAL(QMC M";29>K(<:_SLTI>CB>5')IX5Z4<N?3V:#H(;!(^&SN9=82<D%W9#OHW&[RBJ MC0EGT[6MN$0>8 ^'NW ,_"O8]"&L"CH"+.%\&-=YQN$S:5C$EJD`H;H*8& $ M;E ,-.YG1O&4%,%>]- 74V2TDA_EO,!3G,SI["V\G<S1?,+W>LY '590^79C M,I8I_79QOTD!Q(1)]8RR8;SNY#X351M MHZYR!E?(A'H"&M,8]= 92.T!,[L(9Z+45A\M#U2 56]B`H1_`"S?.3P'T'A M"."E71-FE3& $!!:<4FX$;'V?D61/2O9["5Y'4KO*?*L<BD?^1 `5;2V0EZ! M\U]Y0I)'[$5 F*ULQD 3,QY2XN(GQ%XD=K2ZEZSH#I M+8'STH*94+#V.Q6A.9V*X!RG8KLBQ_$(1O.'8]YLO.B!DM>/XCMCNHQF;>V1 MX2A',_KRR*X3X7XQ*X<#PV(^,';0XUD8]0:P;WJ<,-P8BBEP*[KY=N=XF7E( MPJ6Y9R,::.:A&+-[N,,5+2=%)V[X\.ZC,GCX!&31J[.A23K!_!JKH$=C5TNK M; )NMUPQG^V(X#O93EP0/D/FI8E1.LS<$*C=-W%C(S2'" I'#KQ%FP>#PWQ> MV8SU914FK\?]2BHA*) T&K [A]N2UDI D:EIQ#A4%TMR+\H0&?BH 3 E'8S+ MX$([:*X5Y8UKQU[P`,MM:L>B<+*<"P,[.9W1[-F8VA5P\K")VF+!I2!F8I'0 M<(),(F'+*F<7C57"Z.6 QSF.,W PUKP;; "MC G &)6TKNO7$Q:*8XI10IVX M;:L\=>4$FJ1?A6S:, TH4S%!#ENX,8P9`P;0(I4C)]RH`*/"IN3"T+;DZ]2* M#U MS_R3:"Z_]>P GMH;W4HV%7H'(<5D$%*OPB+3B: [R1305!L,8:Q"ICA18R*= MPF,X.K>XYY,1[VD89^-J7.]]9/L#SK+,-W;6YJ 1]Z;B2/.A+=<U'P/S^DU/ MB)5Q,QA",VV"_ OO$DXD3C_VBJ(*CR S+7.-'F>05'-^\Y%MKZ "<XYB4RE: M#T8UM^%BNB.\&1_H4,Q:E4LV*C,7H)&-E7KC-8[P!K+&Z%S.!>)$AIOM5':9 MAQ"ET>S>>M-S,M!8_%A7IXI6-!S2N3H;&+ WN#IU^&S:/GH>*$S6/*0$Z&W' M]I^16^U(9Z&P^W-IM\FM8B<-E<8>>('09A6:2W'CHE2(0([T.ET!42"]RS-P M<QVW+$KI6!P%*D96BJ/FN5&I/!V5AA-$^!H,/YX+C\*-;.HHAYIC]RN-!S7- M.'/4-3=*B;V3X<3KI 214?5I+>/G&=I<[3HZ()0"<][5;D*?#GT-=% H;MUT M0D #H-7DL!\K0 YR&K9+"6FW'. CHQQ*TJLYP;S(X7!=0.HC^R'S_1_+\PI) MG$VGW\:ZG] X&NGS/HZ&1Q 0. ,;;_"<]GAR<&K^LGQK)WM L:06O#I 2V3Z M+"C^5G$KY]X=)TV4YK6=S_X3=S<XPP>!X4^\#H+X<5<`1N%"Q-XMH'B)J-F$ MD-%\U=:L0D?!E7Q>DR?\XE/"&]F=*EF2:SZHHNL:+ ?3`0V70YFP(F'^)5$) M:(BJK^&+U [+E<$/N2)581X/VBY4I,%1Z)$5><F8Y",#TK==]$NO1QJ<LT ) MZ=6+#C MS+9'L$.*+<Y6'%HZ;+<ZP_F#G7(/`)A$B(4R`)',AW.:UW+&2R:6C G$CMWS MG1U'KMA_T4%D=A 4Z[%\'(U^2OBF=>1$:%[+A60.,=DH""AOO,V;TF&+<&5C M1D"9+S A]0K'H ^"R!3`1)"5Q .`1"W4 V)K"IO^T$[FK0:]FXK1>MY6RFH MXU%\L''1JCNAD[#RMN7Y_")KGLUC6R8.9H*Z<FZ3B9MQ<ZP^^]J&<Q1W6ZU; M8.C])&D[.:6D<]8:;:LVJ %%BUFU71GBR;%Z<E:)<QN%+P>1K<^XU9MM"^*/ MLV<U[*7 ^J"&=OUVK3. H3UINW;_5\H%N<V'ZC\6U]L:#YRYA-O:Q$$>UVP" MZ>":T\A5?QDG^U3<(_'HL: Y1S+*#BX6!#C,$=CI<<US(:AERKRF$YJF_: 6 M&R[/8%0M4_"6/ \EVM7P"] 12CJB(8.BPQR/8';Y-F&BN+8,*1W-&&2U"8'2 M:9OF 03P\X<;]I\Q'&LY:CC4TE(+TLU>G'3G,4^40V\V4?O [087.L]$/0/W M(KAO`/<:N,/ 3H'KA_!=\Z&O`U</[EYP7^1"Q[C01,U98**>`C<-W&/ >A>; MJ%S+L#L. MOB 2QF/\0C=GZ:Z?SM9W4_6AO+E[L >&*9"Q,Q!G]0K<I'WVXA(K.Z34-./> MXE8< DX4 A1O0O??N]*+_7>(W3+D'SO4FTZHUXI%T^-<P3LX_T6>V<^_[KU. M[G%[`=X `+$$2:(7B9P N>*%V4- DC7-CX)G'L3X4M\'`5WF RJRNQ\\^!*8 M,Q0\6J+O>K<7?(*R:CCD'"7%/B<;[$(BZ0BH'A5OCN2M(,<]O-7-%9SLQ5WY M UV8F)Y%JL\<V72(Q+U'PP#TO5]SYAZ <]X.?F ,XL.M !$HIF_RI2B').5< MH9C1N ++A/ %N';HG,*^HVPQ?V*%H=Y!&+\)>1[FI(?I$>XB;^U$(*QF!Z[; M?Z&<B$R,Y0!GZ>]-PR5 D7J'(Q?'MU "`4:B E4($'NSSF8K1("<7'8\ B 0 MW_M+&>$NI&84( 82HY,(*DND"%?.9P'KFHFWJWDAXJ"ZS.?$A4FAR]Q&FA=V M12.2M62!*MI.DG42?B$T:"5O`NZ:64^72B'2+V7#U L4$]UE%DI!63FOE[(Q MSLH<#BQROHV#ND M'.Q"G/3-.$K<.I.(R:&31$S:0!0:4N8P"H^EC3>[C>:VK:/X`G=,`?0'_6(< M'4A$)Q*JOR%Y#AV M_TRS6VP;M):444>K2.EBF% I)01[S$*+S"J<&91RA8;C=H[QDJ,7NL0(0,J: M^W&\?XX(2PU PK:]CRMX ;>T<99GG#F\>1]KWB<OY[7Y#LN?\X2G`J2:>9:M M\] D+I,6QUM>`(%BZ]LH.H,WMT&IG!'?HU\GD5G0QD+;A_'_1U (!P+E`4_E M4BR.!=V(_5SO[P9]?9O8CDCW) "KS +_"+%4M+UW`9"D%\="7N4\,6'*.5GO M;8-HQ B\ T &]UKA62+**CSDDK+K\YC[6JBF-N:<1(N QZA_HCE$K1"-^4 1 MJ32OAB_HBO,R8\CD&=AI;^!.I7EL1X213*W5?NZ=;,&YXL N,E?,7M)N4X,F M^&(TK5E(ASMCV2^L=.1">JKS1CX7[4L8QILB>!B'\]8(/EL%=PQ6B\$F+;Y4 MY[73[3A&)1.Q ^).2FENK;%>A2^8:!X4IV5)F)WRPAX>`5NA(X$O^ (Q3$G" M;_ P#Z"GNQH'!J7[<\'+`Q$V>$1^.C'P6TH*)#P0PS[V"R,\$(/?I/S3R\7 M?_C#ON M>[&:S.BD\>,(DKM 6#P1XI!W]5K-Z[A[3&DAB#J<$V! Z["H\BMD>14RX4_Y MA+PKTSND.3;O/&.!6IQ:'(7C5"6T>4(D6. J5Z,X.IC-7I)OF4P&G23;"KFU M8A0OMPK-^>0=6G$:BYB=.-GL`Y,A6'"><.L(,'']:N=.O_5>). $Y"V^%8)G MH308*88LXY9WD=&7^!K$<*''D U2AUI"RCG1RG;6P[ BS'6/2'$6>T6^90;" MPORB"D\A%!]ZB?NMY(WD-N (.W)[?X?'/WRZ%!>;[A+G=QQ2NDZGQE^,9"83 M_R;;#KT?].K)%/-)3">'NZZTUB*P( B'<14?*V>VE(/(8A/?X4QSIOH58%2A MH\.(+S2FX^C09 7;39EPK6W_RN%YUP$<C'/F`<,)LC][F--;9.*6;4V3^'ZB MC]0<Y'429%K>F +53QB$^_+$=M<2O%T=`5[6K)83>Q#K`0\ZPF2UA^ !T3D* M!O)Q`4R;)Q8556V%!U=H1/F 0N>*A3Y!PW! &)(S0C$LAS -U3-2_SJIQM? M`0:J- %>A^42'CH !Q4A$LV3^244N6^7X*X5MR1Q $=,_2"I73>^+*G=B.3B MG*S!!30YPB,<YDM&QET_KD6U/;CI$(/O6Y29YF7G0. 6)Q82B[4=0I?ZL4A- M2JTXR"NCB.?HBA7M*JI 7%];%17.+XZ*"#G M_1#G!4(.P=,' R?8#RAV4,;WOHS6(Z0TN(Z>.7KLZ/&C[QN_JPVY4VF\4!L0 M &K%]PH0)!7 )U'/=_+O_V )'H2<SU^C" ;(]^:?4 3$/A);PT7=EC$-%TU; MP* WM'7PW>^>A9OFR?9WSW3XX +W7[J>;^_ VW_][E"'YB_=[U[JN#I=N^'8 MNP*)^T+<DC% (QWNOCZ/IS[DQ)PSRTU4+YHUC9?FAE'45G6KZZ").A'=BR8) M='<`TH< -V*C;&\^5J_DVP=[^(/LQT'[AQ1/R1QJCH^TF" -5SP`OKG$-U0. MWESPEG/%;EIS8LY.1+IAX-2A$_4#NXX.X9 ->]FG9!BY>V0D!&I?_ .&S;PZ M]-EKAKYRS= #UPP]<LW0GFN&GKU6:&L?X8\O%% 2` \]Z4/ )J<"O"NE(S^N MP#W]:$A[.>B;#S:X";QG! 71GAE*<E61JQJN=BU<A%E3\ 0-NQ']4T3_)O2/ M2^5=YBL9IA,;7%)A4:'PRZ)4Y8UWJ3),=.")6:>3=W7PP9Q*? 7/"W,B^H-/ M</?SA,[ .?.0605J:(W'0!FK!C_D"M2.XGU\UZ]!UY$HH<SM\6Q7^(7D" _ M<,JL`ECV$L4<8X<HYFWGA$4MBK3 >A7;IM\>.,^IDL.XS04^1\$^XX?,V<Y MT/U::0#EI?F<^-H 6&;!Y2]O-96_6I'I5)6_?"6G_-6WC6"HE/-6%7^IO/%S MJJ&<JP?/6<^V<C!VMS&:$QO4'Q6?V_61^5POFA_EQC?KQO#F",[<SYLCH0OM M(*0K`-=MIB$U;/TE4'Z Y8,S3 W<G,'#J;R<\;ZT0-Z[(6]40G5NL4!5;LMM MA2+'47 2.'*6O..CEG(4;8^*$F!3L/?4$TF.PWWG0[')2D:#BQT1G MX5 (F.J#WW#SE'P W +Y]EN],D3D1P0,'/Q885:C( ?RER 9/';A$Z1J][T_ MYF4L&FD5HX5;^\$J:+ \G]8V7%['C'&.6FH<K%6"::EMV.;1T]^T:%.+/(QL MG,>,Y>N'!D\W>[9.!;'HXLQJ9P2$-'NV!8D[H8(;Z ?-C'*^!XQS<Z3547 P M^;\.'HVYR!^];W!_KYSO\KU&1]Z';[QRQ3]]A9B^^B>EWT:,4$BG1/$#BN?1 M,7"=KVE^#G7,E>\T.Y[R*AMII[<"),K8KWE )P&(UCR VT&:7=LF="KT.2T% MKNUA.<TN>A0^S8-F.&CP.,P'G:,A> D3),;/-[5HFXXQ?8KZ(6.]NCX2='O, M._Q%Q6!1A=XF]':1-57%Z27T%&?D$GHBJC8FS(9V?TM!>+Z $C=M\#U &C)* MS BDGZP10TXM6A/D`-<F,)=:+*[M(3G "_:&,2Z";:J(S1*>)[PBO8'6XU03 M'1K88L9V!3DUG-4UO&E&PC>K!D\A YR06TQ.XQ4\66Y+T.M*LN.-O5(*? 69 M5B6[WSJ51LJA-(+1Z:&G\IU$E'\]>'%10[M>>MH>MA0"N,YF#W-Z1)M%1H. MG2&L4PY&%<K_N'+V[BMZ^JMR7EMNM%UA%! EO7<GM8'=8AN(_!)GTJD5T+<. M6I3EK7"SVH0A(ABJ7K+"(PJ]!/C*= +XRH-PR[<)[TB [WNE6U7>I9A#L1UR MNYT3Q- E3, PZ'Q\HQ&8#R;DQY+H3QDI^E\=$$7? \*O<TY90D\NQ]>:F' B M>=THY86-X]>^QC&&1-+!Y;P9<"A$'H27LV=UY>R;9JFTF]6#I[RL=B)I,>C[ M7_Q:7YL!NPK?]H.>EIQ\>+++[,9M/EWFH3!LO.9!<"Y9I_E;N ^ NP!F5-]K MP'1/EUD0EY).< 5GRKF"<YSE+6 O?;U2G]'A,?=A%7D*U"OX'A.CA 2XG:;W M`%^1)5OH4\.M(M:&>I>,B6BH_Y:BQ[*7%VB:&G ][?(23=.G<J3>16E>,W<8 M>YC(QGI2+DWSWXCP;E7RQW%JBBMP.Y] +^LU.\A+<Y=3- ^0K:E./8COMMF\ M^:WF$^5<!!U,MNWT$K/AB,>+K*D<"V1Q]]Z*X5=&;=/R08HVA[)!T<$%]>)" MS5?VCH+G5\M(H[NB:<+.2<J747",V^!A+Y=!-5\V,[=TF??)R.;$B$VK1O"' MK=]'T>. W[L\AS/O0\8.R)P]P&/Z72CTEJE0X&V1_/N*8X[P!Q4?LAW=_.7& MRV28]W>H:IGS+XC*YBG0DE69O 8R9S!XVE5\`4RU,< ^;^7W/HDCE_H+%&V& MB+<`X[8&\ 5#H)6/\V8WR&=,>YYB2&B^`.)UHO[D+F <":!DE7R7$]Q CU7( M^(9$=4-4_> 3&TZ>V-!]ZB*".M72TR%\(BMLHR#D S/XR!= C]LG"R;O*PH< M>1<<R)'QYC-<EA(:^#DH JHW3'H75,"&OV4TZH-AOOB7P/F[$7*/==(%$LFT MN;=?\2T8^?95V I];_4]I:1G>!).XL SH0>NY;Q-E>^I4WH,%3+A%)Y6<B#B MQ0_^YQ3<2^;V_R<57.:%GQ7<?T'!/?'5#RJXXK[_Q0KNR(\IN /_TPKN[(\I M_2)804ZK64$)& -\$<[9?('J`SE.13JG0N5_)"/>\3 S`1P9(!P9DCCB=I ' MS.F](B//,GC&T4SO5V21N6,&1O*6_ !9F\>SOEMK`77<;3C6DA>D. ;$X4#L M34?X44=XGB/\%YK7,0P"%>W\P?T7M7]"/V?IHQ4H)O5J&(6-YNO[8M"GV8%; MHEA/V-: U\/(&T\Q3!\,8'+Y4]#VE MUJ6:UPNN< 4])\P]/GQ+G2F.I9X\H?(:Z3=. ?:XE"0-'YF49#T?"W8'.15T M((]4$_L%;A()AX:L>-_ XC^$1M"IH!;!N&$B;^[7O*AO_ RYR+IDS2Y-<R(D M^>*^F&+UL B KNDDKXS&%(3'?-A\8NMX% K+R3QA]$O2RV G.Y41`-?GFSS] M.=EL(4KZT4N;%>PQB A\A%? __2"5^"]QS'U7;5>(![O">80,TJ8J,?W09V3 MV"O?P=,[-Y,G-7O%S02)&Z[T4*U0FCYKH3!!3W94A-G[H4L1IN(AS+C6W$$V M?[RR\Z2)ZI13INQT&1[Z,P"\:/H=F>3IDVGN?01G22SGG5/(.0N.G;C;P!G0 M10^^-RB-,?; ,WB$_3?A*S:'KHQXGSA]>(^05:C_4/Q4 /2^HT5-7GZ&`D6X M6'$_Q8R&35"64:;F0TP,W^V\$>/V?Z+2O% C"SEE/,S(^6Z3,QA#Q8>6"%/3 M">:??+OO73CQ_4$5:%.'6<N9W<Y(Z".>Q_<9ZM4Q0TO!>)N(1S[>\'?QM2>S M:7'4V#P MFH/*:.P<\9WUXHY67%7RKJ&HR7Y=?,6W747MW)D']J R2O =`.\7M)J7NO&5 MNZ!6?"'LE [^O7R[:B/0_M?9Y#TL`&+3HG "%>.=`:UXKO4MXOLAY!R ]";( MB1(_,-+\.K:+] 8,T30_3PV_8;:6%-;1C$FL8)]5`?:*58Y'\#E?^*6XTD;V MI9?GQ^32DYQ1(B 9(DT3_=(;"<1/YDR#AV$:#R FLA/5WHI$W$ H5 AXXM&* MCHKQPK 0; RG\?,ZXEKR\#M ME DETK-W[1 4EY8;]^A;.$+9N_LMW_JA>(PEC'JD[:(_%":M/PJ'<?VQ[S!Y M3Q;,%RZT'_Q[!PZ+"-&L8=/[3B$GMN!<R=ZV4QA]"E/M RL?^CCDG2<D_HV< M-\A==P`"[;/O,E%[,!4,H<=A%N+;P^&$">O$;9R>4,3BU.*)<B(NCH3LP<O> MP(/)*DS:+1W0"% WO(7O$[K)^;F%_!7VD$=:2;QPWR!_E._:WROWK27>"L/Z M4WL(Y\81+D;N] 2 9[7O *4!G(PJ=CN8(=!OG$)\)5$<<3OE' 4?TB)+T]&N M+=A6*#PMUB^!%\GY8IC.R8286;0R+9,)(.M>D&*S7XIA.I_AQX-QX EL]M!A M9(\>V&<>(O'("37R94#B"Q_2D$+1H4 D*"X->:?%>ZP8*JX]8O%HC56XXS?B M*X_C#OK+"+X_6*#B50TIJQ M/Y/7MXP&<^ #KP M>5DY.Z2CS\-U%-W'AY6SP,9HB!L!,(T.* =!_%**GX+Q$T< ""$("-3G6/O[ MG 8F*-K8-KE5L/Y:E("W) DX 1) HP1,P;>">P^+$D R5)3SU/<H`D'XNT\0 M\I$>9C:2 ++0X:U9,:%$Z6<2I3,03.<E<Q9N&!WR$XM[1R8>48Q'^?'E^)(* M&R ?*1^[KRT?Y2P(B$8L`XLB,O,J$=FYYRV?C% >E63D+3\9\8H(8%K%`/V; MY=,8-1]<WB6;1K&4$C\$)HI)H 1S$\*L8FXD,*L(3+1S(D9NEE.T%L6BG!^% M^7:*ST+CKR1;>,][I[SG[6S L#W=ON?B7Y'RHAY^C^CA;JG<Y)QY-AT?*::. M42\K$D[]4BH*H> $V>=['/=1\N,P:;Y-V/T'TMDY=8BNFW035F'7'\4I<]F2 M>6R'DE> ]PO'K<H*)7==#X#DV(0O?R'-+(,12+"23XY(Y$<C+LR15T;Q C.8 M*Z;8-Y3SYBM.VP23C\)>9ZPW3X0;<D9:A6EBQG0 K^""G,HE;!>>:N\CXI0? M)\-(T<+%G3_<.(P03]2'L<G?KI#OC*CM'R._]KNP7DC2O<(I\? P&)*9WB8G M8QB#Q3,TV*' +1?(_GYQGK&?G+YJP,.8<<-7`<YI<)8AGDK?"6;VMDSQJ-#T M`'RX3M/T#CS,`7N_0=.$*PBYXJ<X>O&SA7.N`QA-$^I[5KB#CNOM!5] M<>3 M0W$7VNMHHO7^QB^T&4/Q?2:R2\T;BB:NN ?B#F\0;I=Y?0$&W0I/V[S 3BL\ MX=<'7B4KX]GPA"?#B9_BBX>G\;ZG&^!I N\I`IXB?$_2J9+DO-3XQR* Y^P5 M&7D#Y Y\64+<WE!N.,9>EG'A))X.9B\K<-%!SB0+S'&P;3.OQ\\+X>;'/&'3 M<?&--W._%??,\>K'L![S/,?Q!* #ZL'WIV[2.<,<!?VXW=P728;\0R/6Z,FI MGCF6`Y(\ ^WL9[^2UR;!A8[#B]P9).P8 +%,%)C:D[_%C>>3\)05DLQPK.4A M.]PKJ/Q"3[?OE$#O MJG8JR+0 .4&6F<R?-A:[ZV[F.U-S9(S"8Y.S'8$04OL5V"[%;K;CDO'RG6/\ M$1"(*LF8M.4+<K*)S\; S93SM.P9V5X<L ISWP-TA;I\?DEDGE#WOC .G1=M MY^FM?.'L?&&%N,+'+S'E\?/2("P9<HO/(VOT[ &M,-%;HE1^0M?<7RFQ1BNH MTBT*,"0O B'Y;8-Q&A/P_+0<9\#S.A+1U$:K4KO!`!W%?(.1RAQOL!+2? MI MOA'PG$JKC8Q6GHP$KZ<0\H<N2'\>17HJ/PXU- P;<&22MP?'*B*(VBJ$GA</ MWB05SA[8MTRX&S"XYD;-EM%!.(VBAZ8=3"R;N1W"ZY%DX.EM`R]&BLW<^_R, M_[.T0_6W)$R%840C>._XW4%A*D3&!&R!>NX0OB9'U*"7LB\^0LZ([)F,*N44 M7/?B\8'2:8)X1B3QX"A8/#K/>W*B38A]0.QU$QHO8V]ZYVCA5<[C<36 PI?1 M`<)ST!Z%IR"(W4Z"A-W YQM0*T/C7CE\!F,3A!L?Q7!&(]S)><^%O ( -N'$ M1/01.\?5T0!Q 1CW',8]BG%NIQC7I:5+V4^"%M&AB^B)B^AIK%-.1SMO+H(2 M$.-63= !S0<?>UNP2WO'<(SOA"?G- G*N;&U]0BQ43;88S&;+LSF-<SF$3$; MYS)O'N&+Z C,(](YM:A0&HXD%18A%CW_OHCW1A+CU+URY(AT#FPQ8OT(L;Z' M/*:<9R+H(+'SEQM.N,Q:.1W8>!AE<0^1X60Y,QV/</_+$\2&*Q(/6++B0>H5 M,* 2'A%W= ]V8A* ]"VD]#ND]!PI_Q?B).QG04OHT"7T^"5T)/9D4YW1- ^C M\I#U M]&6$BT.X20 W5B)AN (F805,<<X 6:BQ88 ^[+7-DL<7\DK*.U(E3,/CW',1 M;R;B?:67X/7.*[2U/O&V>/#KN-]"$X4F^4VSM]G*A4_!WWR"AH9B"U2\2W:( M+HPGL%&<-9D<V1S.9>E(5 2W, JB.DUF!.W,GBLK!.$!&'9_?IX0]1O",4FP M9'2(>,PJ'HE;;A,6_9[80[PEWG-'!&^.]]2$\P7QGEHM"5&3$!4)46)(+.33 MQY-DA>_&D44L<NBJU+'Q;['[E7D%A47Y-NLRSQTZZ*'O<'ONB 2^>.X(]]RA MLP>>Y2WJYD/,^"[SLS>00<4+<F(7.BS/<N8V=H%2WGHW+E?=+7W)^JAP^$] M!-3#UC_XZN%1<3VP=!TWWO^0<'+^)BGU3:Z<27(ZBL\)YQ.PKARV?,U+N;/S MDUSSU'(Z7//2O-E6S\;H0D^=21 M8NO,,5.^.<A^_,9'\1!7/\ Q_<*A1H!H M)?8!H(\.Q#X,T6]%],M$],(3C=X*%'Z-WC .WWV ^!P0*G?I.CZ1?/AY CT1 MD^_"Y(]B\G%B<F-=-"BP)(Q[!>-^CW$7STGKHGC8B.8EJY;/P \\E//AVG(N M3VL3UQUL'EOD"E]?H/$PR I91:#PV$4Q<?$07S_ ,_T 9F;0-6X^7\UOH/BS M9\_*'(ORQ9$]U(J,+PCG Q6 NA:9H.*4? 8P]"D]'4S,&O(]A*>TM,Z5HY;1 M\ PDN>$30K*$P6EZ2 L5AP=YV5<CS!*$627"( *(? 0C&S&R'",S/Y'*/(3[ MIX9 SL*%G,>DV1GF1OP`2$$_AGJ8(>&6/008QVN6(:.EGPZ2,BYRF(>L6)P= M#Q.(W '\\DY.!)3C]RA:-J71% [4X[G(]J<Q\^V8>?M9`DTR/;+;F^E$;W;. MQ[W92=E FX !+9X^NEF-`OX.HGL#T3V/Z.K.>L]&]F#OI/+40O,>0K+"77Y< MUCI7%$GA'STDVE2YP.&)13!PRL/0KH?\Z\098[P;.3^(F7V"F;V%F06*F7DQ M/21B(F^;1T$-*N I5[= *-'BRU(+GDN-D&ERPAUG'L!1*7;"^%U1\,>033#B M)Y&TO;AFA]\L<). -/PV%(]V=;B\G-N,+SVP7\AJ(]DO%)I[+J,%95NH:<(I M_MZW\2*(;ZVC^,Z5*_=&0RLL[\H:*Z-LT#N\C*KU5:)?+4.O8IQ0_P0.AXM7 M=!!O[C?J 7$O P5B#SP*C/L"&??V&;&6Q ,P-Z90^ M.7A=Z"B-7..<3`MU\ M.)1-R2MEY#M MC3(6JS7-AX=W``*K)85_GSA\]0UY\ C'.C&,5Y#N<^6(CW:P'2KG+#Y'B<?) M\AW.&Z#I;E1#I:H\&Y7">;*-.5SZN&(PVQ'.&BGFJ&_.1-P'A?V6-5+\$A&_ M606F=,Q\):EQ-;]0S>&A4*K&9-_Q]9/ 0!1R#I 3#EW9RD"ZAO16PMO2<K1% MU9B"?3ZSA+\>RIKKG(''TK ]-6J/`9CHJ47U"[VZL,Q+'1.%GU$'RHZ#BI\B M'L2H%?LUX<KO/![Q`V'BL&TW47IJ_"(6?O!X.SY>T+RD3(*FR';*0>22N((^ M\/&6/O9B .8^HQPG(1VN1TS4PD=-U-9?F:CCX$;_4GQ&1S9V-7Y!#N0/Z)V% M*-5)G.4<VZDD>R?/"?P5Z058`0\5TS3A,.M:!EZ,5/HO1]>&$*Z18_3'D6^7 M8\[ \4UZ$9]0)![[9$/_8K=T)I.ZG,=MQ58M6]^G8"9XF $H`RD)B) 6"^* M^2?=-?S5AE!2 A0YDTW2I)$*4PJ/_0I(ZL'3Q[U&J%LR0MVB$5IZGABAA14! M%0JA6MPUW^IKL:3M\IU\,;2^`>&SKSV>WK=$0TGDC*;IGZ3T:-OSN,OE)&H9 M7'8X)&]NJX\0I15KRP+\,0_!H$ +(_*ET#B MQ9,-B[SMV1,"[?D);,];L#WO. M=WH\T,G*H8>8C&]2OXOXGD9\>2(^]NYH[#XB,7(0(S_$R/B3?B8B7L.A$43P M8 O611?B(%3H[A<-2Y5D:([;+3Y'4L+-+J\-"N'?[?(9H!, _"J;WKM6'H%F M4+W*.0<TDZ*+?&U-SE-\F"L;^AT8:D213X.A&0[J<RSIS"(-+ORX>7%XW>'A MJ?ULNSI?5 C"VX0672\>A!33PYK[U<[?D<_!96D59C0N\ P>Z&7C<%,=2ZP, MDFD&9MJ%F?X5,QWOEVF1F.D2*5,*,D44?IDN%S/%XFB:,B%G+WVHQD%3]$MP M`'Y)\C 6<Q864PT7H;)'^M"22I+GMS"^$N-C,7ZQ%&]38W>\4L7?K6OV`-B_ M$&P+ M4AV(P>2>RU>)I0U^ &-V?6 +%0PR\%K![XW7DA=P)]E.8^&E,S&)B MUD<PZP52UCEJ]HR5';+2^$)U+GLW='?HRR"%#N%M*L5Q_D-^,GXX2QM3-Q2S MFOZ\%BQH5Q:I^"T(]#H";4$ VT /DM':( N*T!&IV)O)H/\Y=![B1D1'"V( M;(7[OI.&:OT\4(#Y M[\8/4I[%%2<%9^[CZY2#G6 MWT'DSR'R]>])M=3'6R%!WV#G M^1" DY! ]#L M ]G]0_Q^$"T,&*I0V17'R7[%9N^G5*2D^"$^G,V?,4!E49X90^3J)E=*AE<E MN:K(54VN6G(-)]<(<HTD5QVY1I%K-+G.)E<]N<:3:S*YII&KB5SGDFLNN2XF M5RNY+B/7Y>2ZBEQO(]=2<K63:R6YUI K3:Z;R'4+N3:0:Q.Y;B?7'>2ZDUP? M)M?=Y/HXN3X!UW__RZZNK2RI*M7EQ,3HYNARJFLVUZY?9Z=U<7I]G,X765U; M,5$'P"W?:J+P\T 4-7381+7AQJHW3=> ;5E9';V^:IUN016MFY.ARV;6K*DL MYAS _#ELF M1E%KH"JJ2C=LH.RUI>MK5Z^Y:6VJ;G%U2>GB]6MJ2VHWZZ:FZS9L**VLU'D! M=>4EZRO+2H<3FK(EG\FVN6Y^&6TIVQ!UQQVUZT=&S*LM*Y-B:C:.C,HO*ZFL MK%[KBUWOI3O2KYQ1$TQ4&KAEX. )6 :3^%U*7!C!BU;ZOJ2.^M[7*[<_;_(Y M[^^]*(D/P"?\TBG^SOP`SQY_?B3/_._>M/AKFB'6KQ<W_CJEL*B_FZ ,_- Z MN*J_B_%5U;JJD UEI;JR36O+:K 5Z&A[;?6=5=2:DA\())SZ?I2YMK:ZEJJ] MD8]Q5\5>.U'<M8(7V%;;EN47Y$2O*:DK0P!+2=WM,Z\)`:79>$T(;T1.94E= MW4UTS=IYE27KZG0WZ'+FK<[-LJW.SK*9;?X)HJ.9JKKUZZJ VZM7EY?4ZF;- MW$B70+NWTK4S5\Z)+=:EI^OT_BE\'*&K:Y9MK $X; QZW0TWZ'ST^:*N222] M%?3[9%Z%QE?*'T7CR^R_Q_:2TM(1&')*JFZD=26E%4P=K5N+U:U#D MPV6TT25K;]<MW5A66UY9?>=4*BKUA]*/DE\[/% N:O2K?W*Y^%WAGW\__W[^ M_?S[G_W%X>4VT$22^U_],XGC*2I,+E<&!*I4JO!Q86&CY0'CY5-FSH[&'[D% M!,R<,&&T_T\S>[I\MF86Q(5-CI3+`S3R"=&SPF9)L=-'!P1,F#XC M1/_X`)T\+%(9.%H*EX.[(2(B,"S !PJ L6%^OP`"-2O,#T3\38\(N]9/[H?( MFR -N,G 9H)+!;<$W&W -H';#N[WX/X![AUP_> ".TQ4.+ H< 9P\>!BH1QD MY `6V(*JC265ZTMUY4S56C*RJ&(VK"FKI994Z^J8M79=.0SZ= `) \2RM71U MPQB&H)+0PZ /<.E*:LNJ2G1T;4F='8"6`-*RJFIFG5VW <3[J!,?=6M $'2[ MY5^[CB'T9=6NTU6N!\.4!K:M6;^.,F\J6RM1JRLCH[F<VNJZNCDB.H"MNOV: M+(9\UMK75Y;J:FJKL6PDLY(:>*JI75]"E^D6W+P4R L6;G4EII-F6S [AACB M8G6LK](Q=674//0C295 *2E$74T)9E]63NM(+9+"+:BL+%M74JFK*RN[G8+A M>^F<ZJK*S2*FNLUUP*]A6I'R.BJ[MOIVH+EF?4T994'!\7$BOZR.J:3],B4T ME%36`MK-,-(%)H$ `2O6([&E$(J53RWU%H6(8 T*&M13J:_R)'8`,VA )T/J M?25RD<HF(BDEK"V[ P')*!U.MH:I$V6DQ$]F%M2->*3F>KVD3"ATFZF"JMNK M8(0O$9BJHX(I*KJ*J:R<"7>JBF*H2OB;B2II_'C9^ GCX2>GQBN4XT<%>'_C MO0!N'[ WP!T&=Q3<O\!]".XTN,_ ]8,;`B<[:**"P8T&-Q;<>'"3P$T!-PW< MA[J92J5FY*;.L*3.L%$S-MP\H_3F&9NI&5FS=3.R=3-*X;:"RK)05 MEJ:XJ M+=E,+6/*ZO!>5%9:)?J6V9E:XIE7NQYOMA*:J24>AJ2 A) *4R L B$,1E,+ M2ZJ8$E!$\\K6U!*/I:1VK9W* IZD$OR;J85,51E<*C=36<PZI Y2E8%B)1WY M`[R^2RK)9]JMEGS6#HWDBQJ0IL(;?OGH>-&GV_?:1-&G?/W0Y/OC3;_]1TW, M4W]YX['UIG_]X1W/ NLWM;]K.K.CM^'0_%<>>BKK_E,7'[OLW/KGO)RN7XS^ M$X6N5'+ PRJZ7)>J*Z^L+B&K#S75$")U^75$XV-7"=52M[:DZJ=!PJ\&<8/; M(KG_J7SBB-G;L$TL8/^VX9)Z/-NV><CO:^GN\>!9:6T^F.$VX4W7+ZYQ] ]M M;9E19\G.L>E$PPL9O+YJ/;T>3,.[D,M98+[5$ -%7&.!WGZV:%3!':H"[M0, M).-&6HXSX+ V:TT5UG\E&E#K:DLV ,$#IE65;XT.?\LWF7SNZO4W,C_J-1M! ME( 5&S; 6A^AWVOUZ3820^<G0/KF7$="UH 17#XBQ4 M^XU%Q-'*?]Z_BK.FN'X3 ML7Q%4N"K<RX-N9^-HY,<G&[0BY5M_C_],[_OT\ M;=/;(^>B6^__]VE:KTHS]=>F'RU3RJ__/4[U$1&G"OQ] %\%_JOGGZ-1=G#M MC2[]K^"*WE!>]1\G6KN6KLT25T;$]2_(V?\9I!87:[R/A&&^5<+%,(;RQFRJ M]/E*:\DRTJ92<WX^CG.0C.'HTKJUWX^&48BXP',52"YHM"P1Q%Y*7Q,$1KRX M"V!D90Q'2QQ99EF]P+;:NBQ_)%,V7!7[??26?PLA+F8AVN&P[)(Z'\]$PN=D M510? ZZUSEM.HTB,6.65,A(;&MR]I8F>NRRG<!ZVV\*LQ5O$AWSS,GB8>8U4 M_UDA_2'FK_'U(+-F9>?D;++C+'--./3JNBWDJL?=,;IM-V$_KR4KR+N3X!JP M*1NNRH$,N 9'W(97O1VOB]?B5;L!KK)(&J]/W E710U:<?)^M#D5K0V()_H^ MO,;C5;</\Z(VX4XAW0[,438]!OU_)OF^D$0 <S#M$,$3O0W]R=M,/T_M_/S[ M^???_YTQ4;O!\<_^W*+^?_RE^8U&GY')*#P M<'W W.!&RV54%+ T< O!+0=7#FX+N)W =H/[*[ V<,? G04W`$ZID%%:<#IP MB>"RP2T!=RLX&MR]X!X$]V=P^\ =`?<AN'/ SN,'Y)4R*A+<;'"IX*S 5BE% MNBO OA%<D_3\OY7N1?YS0P5U9;62E\R +"ZIH\7MI;A:O&D]F3G"62,2FY5C ME69*"LMJ<:'7O"E+?,X1YUT6KZ\J\X:(BZ;+[+BTMZ#T!V=8Q'!<!B0V-T7E MLI(:*<1&E]323,V"JO+J+&](J2]K\1E)1CJ+I)!EZ]?>+MK.4JFMF%SB)0[J MEJW?(*:NK%Y34BDN $-&-$/HP-RS<$))\N.^:0SWVY--2F-A*NGUV9OILF75 M1>M+RW+L)5A!^27KZ\I\0SV$RZ<K"\ $O??8:U4U557EN70M9720% ,1^Y9 M<?J7!&"(&.TKR;+*.B]9Z)?(`A]6?4DE(SW9AI\*JNP$1:F/'LA$PE^X'OA: M6H'(S-S%H#Y(X_GY][_M!_6Z&*IUM#Y,/UF?K5^B+]&OTS?I7]&_H3^M_U9_ M)&H3)R3F)!8EEB;>D?B7Q'\F'DW\(O&KQ('$H<0KB?(D59(Z:6S2E*2$)$O2 M^J2[DNY->B#IR:27DEY+.I T.EF7')N<F+PDN2AY7?)CR7]*?B$Y*V5U2EW* MCI0C*9^D]*>X4JZDC$V].34I-2=U0>JRU-M2-Z9N3>52'TC]3>H?4M],O9": M;,PTWFHL-]8:-QFW&Q\V[C*>,FK2[&F/I>U->SKM[VG=:1/3B]*/I9].'YMQ M7496AB5C><9]&8Z,1S(>RS!F+LZ\)7-GYJ.93V:V9[Z9^47F^<R+F5<RR98+ M" _MG:'7Z]?KZ_3WZW^M;]>'Q+X5^V'LI[$9<0OC;HN3Q8?%)\5;XPOC5\:7 MHU*C4F>FSC:F&O<:GS(>,AXQ?FT<,$Y)FYY6GG9[6EYZ8?JWZ9?2&S*:,UHR M= *=O\EX/./)C+]D[,OX5\9G&<Z,\9F3,V,S$S.W9SHRG\E\3ERMU5- [U'4 MM_I[8G\;^TSLB['ML<[8_M (H'1YW.UQN^->BML7UQ?7;'C(\"C4[I3XQ/B- MPH&$?R5D0CG^E/ <U/';B:> CCV)JJ3BI(8D+NG!I%\F_3;I]TE/)3V3](^D M^7KFD<S>S&\SO?LHMZ-^TZOT$_71(.M5^KOT]^AY_<>QG\=>B+T4*XO3Q%T7 M-RWNYKCTN.RXTKCU<7?%M<:]$>>.2S3\(5Z7,#M!GQ"?D)R0EF!*F)N0F[ X MP0JUMAS*?%M":8(=ZJ\F 4[8E+ EH2&A*6%[PHZ$G0D/)SR:\';*5RF-Z;]) M4[)3<E.6I"Q+69%2EG)'2GW*+U*>-AY)>R\M,",T8Q[(,B7MB[62_*?HHX / M/PXD_BN0%2HA.&$"R$H"<* QX?X$66)ZXNV)]8DMB8%)-R6E)9F3EB85)*T& MF6A-ZDCJ3KJ8%) \)ODZ://KDVN3ZY/O3?YE\N[DT)1P4L;;H(QU*=M2FE): MZMK4RM0'4P^ -G WM="XUN Q)J3EIM%IN].6IY>E7Y^Q`B1I5P:5.2IS8N;, M^G?UI_0;8N^(96(WQ];'-L8VQ^;'U<;='_>'N(ZX0(/&$&:89)AA,!H6&PH- M6PW_`&[MCW\S_E_QY^*-"14 /_4 -[],"$Z<DMB<N"/QP<3IP)N$I,*D6Y+: MD[N23R5_DIP$+61ARGS0D"&ICI1=*8^GF%,70ID>3WTR]6#JV]!F=,89QOXT MHW%26FE:=9HBW9Q>D?%-QK=I;,;VC!LS9V?>F\EGO $:3)WY<>9G6):=%(7G M/TI^+:4C94SJ^-2EH)L/I!Y*769<8;S/N,-8E5:7=G_:0VG_2'LE[7S:8-KX M],GIOTC_9?K'Z9^EFS+,&6LRUH$6WI%Q.*,[(RTS*_-QT,#BGA.*HDD=3-3? MH.&(X3W#AP:**'J4]WA]LCY-;](OUEOUR_2K]+?I2_5V?27PC]9OTF\%S7*O M'HY[/.ZIN&?B7HA[*TZ(&X ;`LI5!K5!"Y1'&"*!ML<-W8DG$\\D]B5225%) MGQF?F9R9EFG*G)N9"WV9-7-9YO+,59FW 7S;,RLS:S+IS$T YPV93=!;[("> M[F'HZW8#M\5]%.2?&D 82G G4(G*1%6B&GKS\,2(Q,A$76)4XNQ$?6)\8G)B M6J(I<6[B\L15B;=!+V]/K$RL2:03-R5N26Q(;$K<#E*],_'AQ$<3=R<^GOA$ MXE.)SR0^F_A"8FOBOL2VQ .)!Q/?2NQ.?"^QAY3T7*(`I56"7:!-"D^*2(I, MHE*4*:H4=8H]I3*E)H5.69ZZ*O6D\0ST$H*QS] /?>.CT)9WI+>E#Z2'9SR; M'DW\+=#X9Z#PQ43<]R*]QJI70B_RLPGY\^_GW\^_GW\__W[^_?S[W_7[/U!+ M``` `,"!R%<``$EN=%]60RYE>&502P$"% `4``(`" !38'\LQ\5H.7XS```< M9 ``" ```````````" `P(&(E ``26YT7T1-+F5X95!+`0(4`!0`` `(`*1A------------------ #include <stdio.h> #include <stdlib.h> #include <time.h> #define SORT_ITER 10 #define SORT_SIZE 10000 void TestSort (void); void InitSort (int gaiTab[]); void DoSort(int gaiTab[]); void main (void) { TestSort(); } void TestSort (void) { int i; int *aiTab; clock_t clkStart, clkStop; printf("Testing Int -> Bubble sort "); aiTab=(int *) malloc(SORT_SIZE*sizeof(int)); clkStart=clock(); for (i=SORT_ITER; i>=0; i--) { InitSort(aiTab); DoSort(aiTab); } clkStop=clock(); printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK)); free(aiTab); } void InitSort (int paiTab[]) { int iCont; for (iCont=SORT_SIZE; iCont>=0; iCont--) paiTab[iCont]=SORT_SIZE-iCont; } void DoSort (int paiTab[]) { int Swap; int Temp,I; do { Swap = 0; for (I = 0; I<SORT_SIZE; I++) if (paiTab[I] > paiTab[I+1]) { Temp = paiTab[I]; paiTab[I] = paiTab[I+1]; paiTab[I+1] = Temp; Swap = 1; } } while (Swap); }=%]"0RYE>&502P4&``````4`!0`8`0``FH !````` end
Mar 31 2002
Above is the one generated by C++ Builder 6, and VC++ .NET. The only think I see is the offset calculation, Borland adds 4 to the offset, while DMC adds 1, and mul it in the Mov. As far as I know, it should result in the same speed... But in fact Borland code is faster, 6168 ms against 7390 ms for DMC. As VC++ .NET, it seems the loop has been unrolled... Maybe this is the great advantage from 3374 ms... Why DMC have not unrolled it? C++ Builder 6 -------------------------------------------------------------------------- _DoSort proc near 14: push ebp mov ebp,esp push ebx push esi 15: xor esi,esi xor edx,edx mov eax,dword ptr [ebp+8] 16: mov ebx,dword ptr [eax+4] mov ecx,dword ptr [eax] cmp ebx,ecx jge short 18 mov dword ptr [eax],ebx mov dword ptr [eax+4],ecx mov esi,1 18: inc edx add eax,4 cmp edx,10000 jl short 16 test esi,esi jne short 15 21: pop esi pop ebx pop ebp ret _DoSort endp VC++ .NET ---------------------------------------------------------------------------- ------------ DoSort 4 PROC NEAR ; COMDAT push ebx push esi push edi lea ebx, DWORD PTR [ecx+8] $L1304: xor ecx, ecx mov eax, ebx mov edi, 1000 ; 000003e8H $L1307: mov edx, DWORD PTR [eax-4] mov esi, DWORD PTR [eax-8] cmp esi, edx jle SHORT $L1308 mov DWORD PTR [eax-8], edx mov DWORD PTR [eax-4], esi mov ecx, 1 $L1308: mov edx, DWORD PTR [eax] mov esi, DWORD PTR [eax-4] cmp esi, edx jle SHORT $L1332 mov DWORD PTR [eax-4], edx mov DWORD PTR [eax], esi mov ecx, 1 $L1332: mov edx, DWORD PTR [eax+4] mov esi, DWORD PTR [eax] cmp esi, edx jle SHORT $L1333 mov DWORD PTR [eax], edx mov DWORD PTR [eax+4], esi mov ecx, 1 $L1333: mov edx, DWORD PTR [eax+8] mov esi, DWORD PTR [eax+4] cmp esi, edx jle SHORT $L1334 mov DWORD PTR [eax+4], edx mov DWORD PTR [eax+8], esi mov ecx, 1 $L1334: mov edx, DWORD PTR [eax+12] mov esi, DWORD PTR [eax+8] cmp esi, edx jle SHORT $L1335 mov DWORD PTR [eax+8], edx mov DWORD PTR [eax+12], esi mov ecx, 1 $L1335: mov edx, DWORD PTR [eax+16] mov esi, DWORD PTR [eax+12] cmp esi, edx jle SHORT $L1336 mov DWORD PTR [eax+12], edx mov DWORD PTR [eax+16], esi mov ecx, 1 $L1336: mov edx, DWORD PTR [eax+20] mov esi, DWORD PTR [eax+16] cmp esi, edx jle SHORT $L1337 mov DWORD PTR [eax+16], edx mov DWORD PTR [eax+20], esi mov ecx, 1 $L1337: mov edx, DWORD PTR [eax+24] mov esi, DWORD PTR [eax+20] cmp esi, edx jle SHORT $L1338 mov DWORD PTR [eax+20], edx mov DWORD PTR [eax+24], esi mov ecx, 1 $L1338: mov edx, DWORD PTR [eax+28] mov esi, DWORD PTR [eax+24] cmp esi, edx jle SHORT $L1339 mov DWORD PTR [eax+24], edx mov DWORD PTR [eax+28], esi mov ecx, 1 $L1339: mov edx, DWORD PTR [eax+32] mov esi, DWORD PTR [eax+28] cmp esi, edx jle SHORT $L1340 mov DWORD PTR [eax+28], edx mov DWORD PTR [eax+32], esi mov ecx, 1 $L1340: add eax, 40 ; 00000028H dec edi jne $L1307 test ecx, ecx jne $L1304 pop edi pop esi pop ebx ret 0 DoSort 4 ENDP "Walter" <walter digitalmars.com> escribió en el mensaje news:a87f9l$20q3$1 digitaldaemon.com...I suppose it depends on what code is generated by the other compilers. Here's what DMC generates for the critical loop: _DoSort: push EBX mov EDX,8[ESP] push ESI push EDI L97: xor EDI,EDI xor EBX,EBX L9B: mov ECX,[EBX*4][EDX] mov EAX,4[EBX*4][EDX] cmp ECX,EAX jle LB4 mov [EBX*4][EDX],EAX mov ESI,ECX mov EDI,1 mov 4[EBX*4][EDX],ESI LB4: inc EBX cmp EBX,02710h jb L9B test EDI,EDI jne L97 pop EDI pop ESI pop EBX ret "Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message news:a86p82$1m3o$1 digitaldaemon.com...diferentI have done a simple benchmark using a bubble sort algorithm withInt.c ----------------------------------------------------------------------compilers. All the tests have been run in and AMD K7 at 1050 Mhz using Windows XPPro.Here are my results: COMPILER TIME SIZE COMMAND LINE C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c CoderWarrior 7.2 Pro 4647 36.864 Within the IDE DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj Watcom C++ 11.0c beta 6209 39.424 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c Why is DMC performing relativelly bad in speed terms? Have I set upthecompiler switches correctly? Great executable size achieved! ------------------- #include <stdio.h> #include <stdlib.h> #include <time.h> #define SORT_ITER 10 #define SORT_SIZE 10000 void TestSort (void); void InitSort (int gaiTab[]); void DoSort(int gaiTab[]); void main (void) { TestSort(); } void TestSort (void) { int i; int *aiTab; clock_t clkStart, clkStop; printf("Testing Int -> Bubble sort "); aiTab=(int *) malloc(SORT_SIZE*sizeof(int)); clkStart=clock(); for (i=SORT_ITER; i>=0; i--) { InitSort(aiTab); DoSort(aiTab); } clkStop=clock(); printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK)); free(aiTab); } void InitSort (int paiTab[]) { int iCont; for (iCont=SORT_SIZE; iCont>=0; iCont--) paiTab[iCont]=SORT_SIZE-iCont; } void DoSort (int paiTab[]) { int Swap; int Temp,I; do { Swap = 0; for (I = 0; I<SORT_SIZE; I++) if (paiTab[I] > paiTab[I+1]) { Temp = paiTab[I]; paiTab[I] = paiTab[I+1]; paiTab[I+1] = Temp; Swap = 1; } } while (Swap); }
Mar 31 2002
Hi, From my testing I doubt the speed difference is in the code generated in DoSort() : When I compiled with the following 2 fixes: in DoSort() loop should be : for (I = 0; I<(SORT_SIZE-1); I++) // I=0..I<SORT_SIZE produces incorrect results and reads and writes unallocated memory which could introduce unknown delays and in TestSort() loop should be : for (i=SORT_ITER; i>0; i--) // strictly should be i>0 to generate SORT_ITER loops rather than SORT_ITER+1 I get the following results for my system : Athlon 1.33 / Win98 SE (yuk!) / DMC 8.25 With the code as is (fixed) I get approx. 5500ms () If I manually unroll the i loop in TestSort() the appropriate 10 time I consistently get execution times of only 4000ms !!! Note that DoSort() and InitSort() have 100% identical code in this case (according to obj2asm). So the unrolled code is noticably more efficient, so it looks like the identical and apparently efficent code in DoSort() is being stuffed up by something else. Perhaps my Athlons instruction translation techniques are doing something very different due to the context (remember it's NOT really an x86 processor - it is really a risc86 faking it), perhaps it's caches are messed up by the CS or SP alignment ?? It certainly doesn't look like the low speed is the compiler generating poor code, as the same code generates 2 very different speeds in only subtly different contexts. Unfortunately, these days if you do a one task computational benchmark you are more likely to discover some subtle feature of your processor, not of your compiler. JohnC PS To clarify things : I love AMD products (well processors and chipsets) ======= int.c (revised, and with brutal UNROLL option - see #define UNROLL ... #include <stdio.h> #include <stdlib.h> #include <time.h> #define SORT_ITER 10 #define SORT_SIZE 10000 void TestSort (void); void InitSort (int gaiTab[]); void DoSort(int gaiTab[]); // #define UNROLL 1 void main (void) { TestSort(); } void TestSort (void) { int i; int *aiTab; clock_t clkStart, clkStop; printf("Testing Int -> Bubble sort "); aiTab=(int *) malloc(SORT_SIZE*sizeof(int)); clkStart=clock(); #ifndef UNROLL for (i=SORT_ITER; i>0; i--) // strictly should be i>0 #endif { InitSort(aiTab); DoSort(aiTab); #ifdef UNROLL InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); #endif } clkStop=clock(); printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK)); free(aiTab); } void InitSort (int paiTab[]) { int iCont; for (iCont=SORT_SIZE; iCont>=0; iCont--) paiTab[iCont]=SORT_SIZE-iCont; } void DoSort (int paiTab[]) { int Swap; int Temp,I; do { Swap = 0; for (I = 0; I<(SORT_SIZE-1); I++) // I=0..I<SORT_SIZE produces incorrect results and reads and writes unallocated memory if (paiTab[I] > paiTab[I+1]) { Temp = paiTab[I]; paiTab[I] = paiTab[I+1]; paiTab[I+1] = Temp; Swap = 1; } } while (Swap); } ======= "Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message news:a882ek$2atl$1 digitaldaemon.com...Above is the one generated by C++ Builder 6, and VC++ .NET. The only think I see is the offset calculation, Borland adds 4 to the offset, while DMC adds 1, and mul it in the Mov. As far as I know, it should result in the same speed... But in fact Borland code is faster, 6168 ms against 7390 ms for DMC. As VC++ .NET, it seems the loop has been unrolled... Maybe this is the great advantage from 3374 ms... Why DMC have not unrolled it? C++ Builder 6 --------------------------------------------------------------------------
Mar 30 2002
Hmm. The cpu specs advertise that complex addressing modes don't add extra time. Perhaps this is not true. -Walter "John Culver" <jculver btinternet.spamless.com> wrote in message news:a8844q$2c0c$1 digitaldaemon.com...Hi, From my testing I doubt the speed difference is in the code generatedin DoSort() :When I compiled with the following 2 fixes: in DoSort() loop should be : for (I = 0; I<(SORT_SIZE-1); I++) // I=0..I<SORT_SIZE producesincorrectresults and reads and writes unallocated memory which could introduceunknown delaysand in TestSort() loop should be : for (i=SORT_ITER; i>0; i--) // strictly should be i>0 to generateSORT_ITERloops rather than SORT_ITER+1 I get the following results for my system : Athlon 1.33 / Win98 SE (yuk!)/ DMC 8.25With the code as is (fixed) I get approx. 5500ms () If I manually unroll the i loop in TestSort() the appropriate 10 time Iconsistentlyget execution times of only 4000ms !!! Note that DoSort() and InitSort() have 100% identical code in this case(according toobj2asm). So the unrolled code is noticably more efficient, so it looks like theidentical andapparently efficent code in DoSort() is being stuffed up by somethingelse. Perhaps myAthlons instruction translation techniques are doing something verydifferent due tothe context (remember it's NOT really an x86 processor - it is really arisc86 fakingit), perhaps it's caches are messed up by the CS or SP alignment ?? Itcertainlydoesn't look like the low speed is the compiler generating poor code, asthe same codegenerates 2 very different speeds in only subtly different contexts. Unfortunately, these days if you do a one task computational benchmark youare morelikely to discover some subtle feature of your processor, not of yourcompiler.JohnC PS To clarify things : I love AMD products (well processors and chipsets) ======= int.c (revised, and with brutal UNROLL option - see #define UNROLL...#include <stdio.h> #include <stdlib.h> #include <time.h> #define SORT_ITER 10 #define SORT_SIZE 10000 void TestSort (void); void InitSort (int gaiTab[]); void DoSort(int gaiTab[]); // #define UNROLL 1 void main (void) { TestSort(); } void TestSort (void) { int i; int *aiTab; clock_t clkStart, clkStop; printf("Testing Int -> Bubble sort "); aiTab=(int *) malloc(SORT_SIZE*sizeof(int)); clkStart=clock(); #ifndef UNROLL for (i=SORT_ITER; i>0; i--) // strictly should be i>0 #endif { InitSort(aiTab); DoSort(aiTab); #ifdef UNROLL InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); #endif } clkStop=clock(); printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK)); free(aiTab); } void InitSort (int paiTab[]) { int iCont; for (iCont=SORT_SIZE; iCont>=0; iCont--) paiTab[iCont]=SORT_SIZE-iCont; } void DoSort (int paiTab[]) { int Swap; int Temp,I; do { Swap = 0; for (I = 0; I<(SORT_SIZE-1); I++) // I=0..I<SORT_SIZE producesincorrect resultsand reads and writes unallocated memory if (paiTab[I] > paiTab[I+1]) { Temp = paiTab[I]; paiTab[I] = paiTab[I+1]; paiTab[I+1] = Temp; Swap = 1; } } while (Swap); } ======= "Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message news:a882ek$2atl$1 digitaldaemon.com...theAbove is the one generated by C++ Builder 6, and VC++ .NET. The only think I see is the offset calculation, Borland adds 4 toshouldoffset, while DMC adds 1, and mul it in the Mov. As far as I know, ittheresult in the same speed... But in fact Borland code is faster, 6168 ms against 7390 ms for DMC. As VC++ .NET, it seems the loop has been unrolled... Maybe this isgreat advantage from 3374 ms... Why DMC have not unrolled it? C++ Builder 6--------------------------------------------------------------------------
Apr 01 2002
Watcom code: It seems very similar to Borland one... DoSort_: push ebx push ecx push edx push esi push ebp mov esi,eax mov ebp,00000001H lea ebx,9c40H[esi] L$3: mov eax,esi xor ecx,ecx L$4: mov edx,dword ptr [eax] cmp edx,dword ptr 4H[eax] jg L$6 L$5: add eax,00000004H cmp eax,ebx jne L$4 test ecx,ecx jne L$3 pop ebp pop esi pop edx pop ecx pop ebx ret "Walter" <walter digitalmars.com> escribió en el mensaje news:a87f9l$20q3$1 digitaldaemon.com...I suppose it depends on what code is generated by the other compilers. Here's what DMC generates for the critical loop: _DoSort: push EBX mov EDX,8[ESP] push ESI push EDI L97: xor EDI,EDI xor EBX,EBX L9B: mov ECX,[EBX*4][EDX] mov EAX,4[EBX*4][EDX] cmp ECX,EAX jle LB4 mov [EBX*4][EDX],EAX mov ESI,ECX mov EDI,1 mov 4[EBX*4][EDX],ESI LB4: inc EBX cmp EBX,02710h jb L9B test EDI,EDI jne L97 pop EDI pop ESI pop EBX ret "Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message news:a86p82$1m3o$1 digitaldaemon.com...diferentI have done a simple benchmark using a bubble sort algorithm withInt.c ----------------------------------------------------------------------compilers. All the tests have been run in and AMD K7 at 1050 Mhz using Windows XPPro.Here are my results: COMPILER TIME SIZE COMMAND LINE C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c CoderWarrior 7.2 Pro 4647 36.864 Within the IDE DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4 /nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj Watcom C++ 11.0c beta 6209 39.424 WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c Why is DMC performing relativelly bad in speed terms? Have I set upthecompiler switches correctly? Great executable size achieved! ------------------- #include <stdio.h> #include <stdlib.h> #include <time.h> #define SORT_ITER 10 #define SORT_SIZE 10000 void TestSort (void); void InitSort (int gaiTab[]); void DoSort(int gaiTab[]); void main (void) { TestSort(); } void TestSort (void) { int i; int *aiTab; clock_t clkStart, clkStop; printf("Testing Int -> Bubble sort "); aiTab=(int *) malloc(SORT_SIZE*sizeof(int)); clkStart=clock(); for (i=SORT_ITER; i>=0; i--) { InitSort(aiTab); DoSort(aiTab); } clkStop=clock(); printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK)); free(aiTab); } void InitSort (int paiTab[]) { int iCont; for (iCont=SORT_SIZE; iCont>=0; iCont--) paiTab[iCont]=SORT_SIZE-iCont; } void DoSort (int paiTab[]) { int Swap; int Temp,I; do { Swap = 0; for (I = 0; I<SORT_SIZE; I++) if (paiTab[I] > paiTab[I+1]) { Temp = paiTab[I]; paiTab[I] = paiTab[I+1]; paiTab[I+1] = Temp; Swap = 1; } } while (Swap); }
Mar 31 2002