Date: Tue, 02 Aug 1994 11:04:54 EDT To: macgifts@mac.archive.umich.edu From: Benjamin Denckla Subject: Macintosh AIFF-based DSP Framework in Think C Macintosh AIFF-based DSP Framework in Think C available via ftp at "ftp.cs.jhu.edu" in pub/dsp This archive contains code written in Think C 5.0 which provides a framework in which user-written C functions which process the data in AIFF files are called. The framework contains main() and deals with all aspects of AIFF file handling, allowing the user to concentrate solely the development of his/her DSP algorithm. The framework calls three user-written functions in the course of its execution. First it calls the user-written initialization function init_process(), which would typically be used for tasks such as the setup of lookup tables. Then it repeatedly calls the user-written processing function process_samdat(), each time placing a new block of data in the buffer. When the data file has been exhausted, it calls the user-written termination function term_process(), which would typically be used for tasks such as freeing memory which the user had allocated in init_process(). Though the framework is designed for the processing of AIFF files where an AIFF file is taken as input and an AIFF file is made as output, through the setting of user-defined variables, the framework can be made to take no input or make no output. If the variable take_input is set to zero, the framework will not make an attempt to open an input file. This mode is useful for tasks such as the generation of AIFF files by algorithmic means. If the variable make_output is set to zero, the framework will not make an attempt to open an output file. This mode is useful for tasks such as the analysis of AIFF files, where the analysis output goes to the screen or to a non-AIFF file. The code uses a few Think C extensions to C, but I suspect that it could be ported to other compilers or even other platforms without great difficulty. The comment at the beginning of "aiff.h" contains some information about portability. Linkage is specified in the comment at the beginning of "aiff.c". Much more could be written about how to use the framework but time constraints compel me to merely direct the reader to the included examples of processing functions and to the source code for the framework itself. Files included in the archive (by type): framework files: aiff.h, aiff.c, interface.h, interface.c example processing functions: ringmod.c, sinegen.c, analyze.c, zerocross.c, chebyshev.c files used by ringmod.c and sinegen.c: sintab.h, sintab.c this documentation file: AIFF_DSP_v15.README This project was funded in part by the Ford Foundation's project to provide grants for undergraduate research at Harvard University. Ben Denckla bdenckla@husc.harvard.edu Tuesday, August 2, 1994 ------------------------------------------------------------- (This file must be converted with BinHex 4.0) :%%&*4NCI4&03AhBa05jcDA3!8dP84&0*9#%!N!4+@!!!!8D1-P0*9#%!!J!!5PK b6'&e!X)!N!-@!%dJ)!K"58C'Ad468#"`FQPfBA4PE@&dDB"J!!d!N!-`!*!$[4d !N!-f!"N"G3*,!*!$#`#3"N)(!*!(KJ!!!J$rN!3"!+T%0!kUBp-d!*!'HaF!N!C "J3#3#R[p$3d'B@PQCLjM!*!CKFm!N"%@!!!2"!#3!aErN!4849K8690A4!%!U(0 c4kTKVh8!!!()!!!IH`!!!3%!!!d0*bapXJ#3"Le6%3!)('aa#'*hqml*`ELD0A' 06jp!)[hlqe+)a`R6NRU'r-%HL3L8mjJ"%Qlib'@p)jQCE3(+E1@dINK5`A!rNKP *dEAN#+[Zi&EC*)i1-GDf0#)`cqUI+F9Q@fL[UF6pl6bVAcV&JNMD*#j1laESPY` kj)`S*bDelT6308&V2aSdXidcL!)Hf"#Je"2`)P52F``CrBJ[K@IiqJZ5!F9R1Ee 6!A,ebqSIjCRB#4%Ghaq#ic'H!h*"M(&jFrSj)bRF8Dh,!YpH3`S8G"6UD(aLU(X h4bYSe6%3FRK*8LLKPF-VNpSNDcf3!+[rR0ZT''Zd#UhaNie@$lia3f+H-eV3dBj D$%jAmRL#$'#f-X*1I*I*[$EPC[5k(9RCHI,S9Mp#2l+2E'D%%RbH8Gd8RpI'fp% "2fm6p+-9U1ZbkcPYHpE&1l,*B*2**UMCDhJ+i$RU5GmE(lcChb(mJL51Kk(hpZ6 iprZ[chCSR"F4A4C"9Y,Hk9Y[p1lXGmFRf24+CE5RX[!U$EcAaiH(qdGBGUNb934 TmVf++-`M4A&Hd1KJ20kB""Sc3,#,`D`-NNc6$2rj2Hr0`G&hSfq"2XP+9F4"U)E KJ!k$m+`)jRT!Tk1Mr3'0MNi2"K4N%388*kQLQk5FHXbBr-UTSZkmb-(8E+D+M8U VJUk$)JNQUG+b0kkbX%cb6(FT6A3*1T,-d$dGH[dRR[F`bF+d!QYG-p9Y*aTZ&Q- [G"NPqA$kfp9)QNcZCiSNZec03!Bk6i&R-63,bLNQ31L6*c5VG!Qec"40&)5N4!R NPT8j6B0V4I0#K5U#&&8,K&Fa01pKT1)N8r6UhIMLp1"2j'qpS4F[D'Zlaa!R94a $+"U+(E!FBXK(k@EVmGlHfp'HIpXMRrLrGI,jhmHde5-"8149&QQUjNa(TS*#J60 e$A0ik'%m8f!Q!RpK!%95%P-iVE)V!8b*TMb+"UaGN!#,eb!MD"5)@*cIUb+RHB$ PGk9U'"QIl)-3LS)5"-5&#L+I([YilJd%94k6IGeL4Q2UZG@("dFq"31DB,2["ce k3IkN4rp(r,E$Eld'jqRSF'pdKRhL'32M16dkpcSJdAm32haS*L%-8$LI$PNk)+! 25D8+#`(Il*5P(9882YQGF*0,dX&XMR&`&A4"NJH(6%)fRSQkT%Q`kmf,j$SSe43 83k,ckDjhR5F4pD0GjhV'*i)+*L4!V*ip6jG"QB6%VNjpU'"!rEb+GhPENXfV8J` aVdTqBTCd[A(*3T)P*EfN(mMVr,!f2MijA"[3pV02!d(p2LjQdfLB4"p!Y$cT"1i bH0Vc1Q[Xq9M@F-6E2M!-cJUBh(TH`i$"e6$XQdjidbB[@0#-i@%i$5!YIQ'jQCH E5#IQTB"F'12TkG%HShFBG4E9'-f68!@LJ2*(-@&qQ-FaFJHr6+jdiRhDpC!!N!# fKJh0V"i("*iR5NPXm)%4`Y%5MKpTaGP$kfV'LJqXjMQe`#)ZbbR"VF6Rf12dN!$ SE!SE[!RZ"R3cKBGbUV%qB4I#Sf8Al**KA'Aj$33"QBB`ccpcB*JS#L)fAF-$`Fq #+LdY'l!U98b4UhJ*Nj*R`JH@05+'`cPfM8RhKYl6)GJ"(AqTQ2"*%B4AUJ3-53# 8))#85CbS3L0GA5%aeIE3"@F42+9%BTN'TB"PPV%VM5M+`@@@JcmSqe+C)#Bq"m1 %Yf+XS$lHC[S5p[Z$eiRKLeNCqi5JKEN"GFHMXp%EfMmji@$k5!r2Xqk!ef0PEpI VU0ZNp$IamXNLZ`N+YQd$M4rrLHd2Sj1MJk0['eafRi'cYcmH[cYklC2JbZFUZi$ CfQG15-!N-$'&$2Mqk9I22S#4YcP3XX)K*,EACpX$I!NqdcNGRph0e4[N8bVaS'A Hf+R-QrL"S&h'9CSb+0m!NF!K+bAfB*!!#DL$4aF,5jDlFAm**KQL(T)(3!QN"ck RTCH)l+$4YaLJJ'+#*FbP!F,6+b##i4Fa)(1Xa*!!jPKGcZBA-92eEbQ)F)#J&Jl QZqpJ-Q@USZkZCfN$#jq9d$hPA-bL-8bAq3k8Dk"m88@EK&TC1*k!h")Q#B("QAH [iaBBM6CLBVL0QJaf-(2$DT+rPCaD"Jai"ka4Lq4Yj'ZZ!Lcqcl*$"4)UV5m3Kq" `9p1)m$(L`hBlcI%K3k1!YS%6,$)&Tc)6c5f"a[`I[*4N-kac'A#`ri'hQi+9h+` P'e-jJLp-aFEe5F!B@YijZ$2[,B**(YfCeEI20m[mpTYRR1c0CSPfb252I54YHF- LQ`UcDe9!1@Q15X#3!+Up6K2))5&d&aB'CmAeVp&Fd(03dEHm5+`%EZ[qX)IZH5Q jLbPLZ15ECZ5*9Q%2B5"'&M"VEVJINcV$Rb5PjZ&Tj+BC@+C5[CS5,2956R1m0Dh )$i-dV&,J4DA!SBJE'6K#cfffBG#3!#&,1C4JeXS#j8C$Y(XdUEQ4K"[NpbrZAGX )BZ!A'i&12RX)TfiMC@4RTDidfK[%Q,ERJ'F$Z)Z@,ih,r139@2'69c3!@kqS%a[ %`E&GP8C+0%Rcd24-6LB@QBhhpT%6IZ0Abb'@999UB"-`SPIT635R#&4AmhPHF&d eZ61aeRD3!*DFk4$dJrTjcNNZ,P@D5V4U%!1+ZT+C3GffY4VTdBCaB#FDp+(lqpp G[(jhXJJb$))PFUqilVr%AGk@ra9h3+@kjC3Z%D%ZbFlqH&EhLXmhE@,6ljXT$VZ Fli!8c44%J)JU6fJc*-c@4Q#C0ja,d$RqMMZ*ZXpdC@$!VJ+l4h&L5P9*,dXEB+* fk,aV*-J0Y1r`!qVQEN-('N"M3Hh)1L*AcC&N9ZUiGkbA%Y(3YV(JYC8#`lD@CJ[ +"Hp0-IRCi"U*'HiD9Km0qaS'eS,3XZ%6Q)G&!@VA%[jV)S63lq9Z&0Y2)JQRl-4 15GhcE#c0cYUMiECHXll,XQ-EI*4bQN%HNiTRB!8KTXCBS"1%'F''XTKPR841M-P ,5$"jXBereYIC`N3UX[GpmJ'5A-2Iair0a'pTlDpVKUp1aqC2R#9-%Y4FQG3iU&@ 42H%%"hY@14"'#fX6j3%L1[jFJ'd!T&CpHSjk[`Aa@8ND(4[h1i$9GKVF#'"3((1 !I'l!!!B(EG3939TRBfPS(b24S3pE&F$LZlP'KmL&XZ[%3'X9T1QGS&VXJfVB9K( KBY%SA%hkb[C9R1F#G3%h+5akD(5AT(p"-aGHADJX!Q6ASl6T5jSlF!X0VUD@h8R 002I#0F13!$IA%R8b@aK2Jk[0@R9(k)S'0`$X&R-lDMh!+[J90#(JM69Kk4)q4dd (jdGiZc@iCXkB+5bU&3I'(3MBfhTpB!!PHCfE+EG&#("YU)0j,IFE[TEkXYkldP$ QM0mUb9)S%@#K)U-IM'QF[i468p5)&BNjKVLb)91alcKh@&rIAG9#!J)0VJUZ'+6 G+UAjMR14a9CT!AlCHM3kh&rEDGlj2QMalSFp@XiI(4d$jH+hM+2h+'el[B-6"2a X($m[T5FhJT'D$+rrLH2ir50cQq6CK'YVGIMp&,#VV!&khdH`LpK8aNaPCXS9Yc% Ual"f#eMEr['ic56X+,!#Z)G'MhqA`m`EKfYV0@Im3,$&AZQmA`BDNck#+03YFJ4 #a*BTflM"f'UlP"E@SKAUYhd4SeS80rHGa0+@"H6M&U#Q+0("CD(3RNc3FkiZ'KU cERZK&EcerbHQ0Zh2UPi8,eE8TrYRbra5+aSY!fjGNXc8X-LhblXF0YY&"PJ'#H' Q+@fq824cN!#m+C*5F6Pq`Ckqk-GYDb!,d(j1F+eN-`FrS6M!dMBrm"l,iAf"r(- 2F)Nmb,EPQaaS#`mABkXj5%Idp"p6#!2'%cU"'1'%l6NSlRTSJ5E)p$$8ZCbZL,P LYLQ%ASe1$NGr*2Vk+qj`QL1AHK15,"2!-'cjJ"G6"YN$*"R+dmM-Q5b,YrF''3S P)j+kcX'mFCrB1ZjENbEih'jS,ME-,BHaQCQDSETMTd2IXGE(NC!!C8bQrhEq`Ef ,J$"VK)UkH%'YU`5kS`V*[F+j)Dl,,$diX'YXJIYQ!q0AV&*5#TU04J30kXj#'%i jeVbG)TEP,V%`N!!ieXicX0eU!3c'F9VTD8h",kl"pC8j)kZYTlDTAbf2(Y&6F9V MbiB!k0JJ!%-Qp4J2!m,l1U3f-1iiq%J8)2JT+#ja''TUT6iHVpZE%NXrT',+4EB Ih+,",8*`0%2SJCfDR9b)Q0[,Lh`Z"k&$15VKqj,cZEeT0AH[hmVGUab5i(394bI )'T2!KJ"ARC6"P8)[a2B,3TSc)!6CZM,L0a#+eLBT,fcJaBc,,M1'B#hFBH$V'Ha GTJA"BEFqm,RBQ+%KbU'[pJ64&C%iD+cMMQb"`d)V--'mZ*2EA#XkFcCSi`l21Ar PZY4eTDhJh46UdVBVjEUL54Pe`!$2e&NeU![[f($LGF54Xl@PZ0a9*KFRZ1fVQh6 ANTM3*mJCE02%VJ4@`a"T@9m55j6@kQF#rkj6X8HcRZ)`c695QhfZ'mJ9JI@5QMR 8G(LeV3j+c0R#(Ea1SFS+afUEE)IQ"Y&Hl0CYiBkj"D'(pSD+,rkN6E*lET)d0IQ @$rMXN!$*C6YBLQJf8`&(Aaa4'5KFC!S-Xfc)"hZeGPmkKD+RK+0`(F,A41Sf9(1 j[T(0+8S5Hm(S0M--U*-I(p8S""XI&FBjh1P'HP1j!NCPBHjF!-JjdEC8&mj'RXT frb"M-dL6NJXIK85'qd3q%NY!Lb8IKp5SbP+i2qMXmGD2Y)N[QK2NP)rd'hbhmId +hfIiISh[Fhbr`4F)PcFhXVlqIG``[ipBY*LV5F+'jGKL(TcbVH2r!*!%$3d'B@P QCLjS!*!CZJi!N"''!!!80J#3!aErN!4849K85d&)6!%!U(BMf+TK8-N!!!&F!!! )(!#3!qN!!!2Cl(`9NJ#3"LMi%3!)(-ac#',!PaBAk0Uj3e,V8'2FKSX`6K@%5C` B$-3PG!Zekjb642Vhpk84$hJJP03ce$'KA5F%bRNX(CSFmT(,HNF'PEm()(FTTr@ '#'GaH0CVTbRT4"$TQ2UUBm,#1%`N`CP5C+A),%%cXD$TG*!!RU1Iii6fEGV8k%F bDGL-%fr4+lJcfED-#%[eaF@eaUdlq`-*SIDYfRGU(pS8Y`m'Zb8&'mGjbp%KNV) `G3Ca3#i(!I*![TaqcNJ+EcRr+U$hZ5AL'MX+G655&%TSj@K58T[NN!$$I6'6Cqk mmHa$BjicQKYkRl1p"3Y19r)!""R!C'AN1&NlXRie-FVA)j19VH%MI1@%hAS4YPl N1H'%%dS!HQ"m5PE2L`"ma5Nr3JRk%3YmP8I2Lab,8%k'R##-imPk!(SHm*&hPC@ l8S,4#BUV5l&BISSQ3*p8@6E1aHfApDr4I$Z"KE%Tl+c8(QifYf*fYrePrB@52U+ ''p6*[T!!BVlqr$PD89KLY*G+1bKPBSdE![lTd@TC`%&D*H-#D5DVGH+9dB,VKLr &T*!!9[)3c8ZG3LUp"1GYRIMDSJ1,"4kBJ6F`@bi@SeJk6!14VN9P$A%U5k9hBb( Q3&4ZCp[Paq@RjIBh@'ifGp&Q)RTpCU*662Y3eXj$M03BVYp$V$`XSbL#M5F%NV$ rp1-2N!!9KX$S(94'8ApGPc(DXHKeY3'fZA*!2cj(F,+N2Zkj`kbU#S49AD*9#86 kS+c4*@TrV[$lCVD+rQL`qmF+S4qeP-C8d)"-FS8(T)lF9A0R[BIjm0bLIcf+(ce #DQT@V4p8kUq)(b@h)%F0b-cB8[V1JA12p@,"(CPRP#Sr@9G"cI&i2*QEXP)&@YL JjcB18L8,Xb1[A'iX&D+[pHVE$bb9Jm+`NVdqr`m"AF,hhjd6a1@9%1p5c*4'Z)N @Ll[9I("D$h"aHTfH(S9JF5MlZ$IJEp&V4!!+`'Q$pZU+&@8PHBJTCl3cd&dj6'$ `miF4Ei('M3[4Bb`8bK&1r68mjiGFS,(3JVecR83835TAaNdj81QUTP+N$5d4T`* (3jLD(ZbmH+,YT3j%*%HCSThq!c-S!LSG8Z8T2%'bcp23,XPVfJ40lS3#i*X!j8f (B#Mc5A**mJ5Dc8*M(MbNX5#+4q`0q+mj*ri8eT9k5*R-5C%([Kdk3mKcd@ZAEqI NId*H[cm,5GK0QHaM3qLlMad`C8P505V3p1-ErBDUb6+k-H)pXk*NINBI&Q9FQ'6 IZ2-%6UHKCiblVLUM-R9lR6bAT8@f8eV60RbVcD+'[C!!fC+9$6dBk0RF&qQDU+E eDp4V@4L%8@j-UiTVY['N3pIdV%EEYEAS'$CpM5IfAIaAi'f&&d%iF%V1d%fQ%Vi I6p+%&Q%b('i[VY$FbT!!mMkAG0I4VA(+Iclq3"D&HA!dB1KN4Gj!G)3`8jD@@f` #SaYQ4!V6XGQ3!')a("fia51GJmdKqPSaPY0flVapSFUl`B1KMAT*H%9i3@X""V` U,9c5BqPfF$&YCKmNjE@cr(JFCN6YEBTf9$YUf*h$!@*l%EZf04pSAZla2T`13cU RkFh8RKk2CDP3JXlG0jF'e3lV)kkcJZlbPSM5bYmINdM%381cRDDQjEr6r`-0$3P KEQ&XHATP,Q-!N"DPG3#3%!m%!!!Bm!#3!aErN!4849K85d&)6!%!UP"[JDTKX#J !!!&F!!!'!3!!!4N!!!-aUPFiU`#3"Z#5%3!)(-ac#'+J8FY5a@-H4"ZhU,a*RK( MN[-m9DbU*fI[k)ElMlKPqN0PQm9l#52T3iG4AiS(2""+kKRUQ0#Z%`,P2*CrdT0 ie3e1#2"Y!()kYFRQ&kGAj,(0UeIXF(&kZh4(8$ZNlpQrkV'qdp)(pbrAe"FmP#8 Ir@#lUpLB(4mGY9GkMZ(GENR2dDKPlVkPGcJY[IG6idl+2DCYSjBj,KSHc2EejTk BG&ZZYiS8bA1K*qIcpA-FJ8Y-8YF9MLdi)[r)!L@DS&b[El&GqYe92EPmVrIXR+G be3XpXFiN$XMP)%!Hb*I6caP*iISLNPF"[Vf'&#MS+0645&)SSC@M58PYNN-1pm9 -RVPcbCLRBjicQY[4$PN!N!-+6[(N!3JbJ-R+#1h`hiA[)ia3`U*RNU1CakRFFd$ @MT2Mj1L6P3#XHU@%iFqMiEf9HGbAS"qa`&II-jm-1%%Laj-$d)(Kqc%lQA`jhJ2 mZ1E&[cpNNV,,kF9IadIAHh"L+J',LQX(RkiZfH(IekFA8c6l+$9mNMVp@R"fG(& fGRb1CNHQ+'6U,&M(RE*1T4Eih#`GZ&b#93[-Pl#icpJETG0L+54dZ-Ub*1pX*#2 VK$**2Yj)5Zlb&d@K5ZAXLmDk5ZN&DGJE)61P*A`mR*iGrJ1lJl9LFRlejH,2(AM r,)&`#+245KfYa+GATj16Dj6[`[CrmV2$Umm33ZK$E--`SKL0DE3TBR*q1CfFAiG J-JX4h,)J-a@%kS$ZACqX[d-"pN'05B6[lHd)IT*9-1G9JFJG3*J9KVZS,6D'(%% c5'KjSqlkG#cjillh[%FDA"C#CkidE,dAHl$eSAL%V55fYlV6mak%2Ad+Nf2QH+I h(+J(GA$rKSKb26''XF$aVh+Qp$h#I3$$(T4d4p4V`@#I-6m#+GMF9!j+K4QSQ9C @',hB4+Aklp$ijq"TC5(-FPlJELc,QFPQpYZ59p*5Z)6LI6G+J0,+cHiVNdTV3r! 5*)B&+L-Njca*6CNm#+YJ"(p%m1[ALfJ-`pd)+3d#@98)bK(AfMKS!J'(6'%"$mV PZ'$+`J1YS98rC!GC)"*mBLHVXLd"BkpED!UX5VZ2P5!dUZ8*lbX!N!#+QTJJc4% b0,Mj-,M$KS05PPDkN!!N2AJA[qZee'2i!&1KVIe@SF%V)[e9bjK)idBde`a*`lV 4[*QH!@l-L0$$GlG,((K`ILm!-Y+@&'hUqQf"HGKkE+LAllc!X8Q'4ADVNAbmlHB #6rba2H(mS"&13V-,[K8@V&Gbi"AVHl12'q`DiQD@Pi)lV-d609pQ0*5H[dSZX#C C04X81p'$@'SKI&BRF2F1J)lB!PlUCY%&&H5#alG1h,bLj229R3Y$+@YQd"BhKS* %rY8'@D[(GFr2-B0AFV[VJ5I,Z,9Ci`CKZ06d+b9aLAbYYGAEqNmNJ['irIZikhE *f`RrIS+(R0BX"0q8,jKSqKm!N!-0$3YMD'9LHA0SCABZB`#3&1r&!*!3&$B!!"h f!*!$&[q3"&4&@&4,38K-!3#SIJMYUQ&BeJ!!!9`!!!F9!*!$m3!!!kAGMi2d!*! 'c&34!!JFc(-)BS#%F5B,ic5(EKe@$PGT%KIRE40-5ZTB'@H5M$$*Qj*'q`h06+1 $I#NHm%!SU@HSBd+l6JL8mq"$Kr@U'icE1[F8J&c&R0BEI'PKAfB%0m-4&T'qrPa Nc(3XF"`P+6c$eeq3!!aF&@[+"PNHKq1md5bCNNB%VPaTFeE*'HM+Z,LD0A&84*M -a"@a-e$E`%`R(qZdbJKRMLDhlZchGdjfc$[B`,K"2"*f!RY5D+BcL30b13L3!!I bjI4c4P*iZrPA!Eh2l46Af&'SSj'N8%)V4j15fL5((1k,Q6acjieR&iejcQKZk(e 1V!8!N!-+6[(N!3JbJ2R+#6[aeiI[M$`IZ(lN+&rc5Rjk-V*bHZ3i1AS45J"@cbK H`[$R43!qYPjFMk!IXF!eLThN1'(N'4P`JM5'*qX*V"Pqe#HVLhI,0i"2Q,$YSdl B*cmNlcIV2jH,kcH`NLU#"d@&JE1rhj26QqZhk`h'rF%%R$%4IN`T@D`[,jGA'#D N5,PJ9)("4"dc"A%K3X1PJ%*cm3#,KK&bQ6i+QA'DDT!!-E%&P%qKQ6V@13Yjc&N %L-q86rSM3RlQ)Nb,L%'2mMMfNplK!Z%-hH)0M%D3!&!0*Q%@*5j51&pHApeFENk [cTHZ"aN0P6c!c,5*Z256NjH6P#20#HC%,-C+iI,dRrAQE,R"KS*IfV,U"jRahSF U3FDG5SHD@j6&aE[eqD3-$S*[+*Saf,*8lVV%Ym[&ArFA9`X!&i)EQ-dD#+p-c*R L%Pf*)9Ib36'Y3E&F+M2X[2Vr333Z!!9+'6"K&'HDS&"imC(GFj%A"ZB3$0%GI#m ,8ap-#G'''Kk#6K!@qRXdhJU2KjmNMa#+QhZX*-4'A#K222K-R#U1$m%-S@qDe'% Pqj3iN5aX&@BRpcBJldlbfdE%$pM!jq!C84dHSaEZP[UKc2aGT$R-i(F2RTjHMNl 3A!mmiMK-+4Gk#bU%0&BCf`p3L$N5lVK*F$fiKTfG2XhrC6h`'XbIh+BYa-pSQXV 3KI&q-XB(21m!*iXd%NF'bJaUX-hr*V%5,Q1C9)mPSd1F,f-&[9+)hK"kVj+SqeY H$Df3!1dU9H(S*AV@1fH#+I35prBlY1rl&A!X&EKm2Tk#P@Dm$mSL4phLi1&Ji%' -D0Md8IpS#,L1f(%9AjrGL5ph%-GTS42hN!"%R&Cc&+IE#BIMkq2arMI%,Lfhme# EaZ&9ei1(`q(BUAXC1!aV5rMDcEF1(1FCIdf1a+rcfq#$[F"a`GGZY5iH5M"##HS b(,XrH'dcqM#a*9DqJ*P2TQ"QmfU[`!`'eDjCZX(!4YGJIGINai'(m58,(%0e-QR V+$YSI%#1"RHmrh@e@NlY0!I%HBCGBXI*Y6D@SZ,ekU[dGq*1P%ir%j[T!p@kb*L '*`4k'J8`QpHaSiUYhQM$90CX02*e)adVaYa@eBUXLUc6lMA0)QS`0*8i0GXL6[' MX-a@l)&V*'Xq$%b%1mj%C2qfECIYQDMj#*P$K"IICm*Q0c'[6A4ElhUB8)'b91K @k(C#%,QdUH@jVF@'JDd$E&KR&4l-m-X('@h02`!!$3d,D@jdCA*QB@0P,Q-!N"4 GG`#3%"M`!!!S6!#3!aErN!4849K85d&)6!%!U*8lpkSjSAm!!!&F!!!9#J#3!qN !!!MpV(Z5UJ#3"Y`R%3!)(-ac#')!`ZNa"9%-4JdH4c'0flI,95M(+*LD`a26"%S TeFbI0m)N&Ie*#[@PH*a!,DPRU'0#Zdi)P21BiB6$HNIfDr)k3,%m6ZX04CVide& "9$J(LXRKD9NNad4rZUFJbSRD&#cAFS1F%k'J8f#HJc18+SKb&Fc9d0(F5KA+eE* )VP(CbV'#+(I"A$S)CAI,)VQcM@l(1-XlaqPT@F5ElI3i6Y&6X0UqkQ#FfaR%!EN F"-J$qA,k15-T[0El9p'j3F&m$cJ+G655&%TSj@K58T[NN!$$I6'6CqlF@IcaQ1H -jRDd$4B!$%jAmRL#$'#1hf4KYejm$FqdSJeX8bkKjq9QFX)'kfCVE8CqX`JR!+X "V1H4eE30m&'6,i36p#-@U+i[[klV##Hh#5FSf16hNINQ%dlf5Qi9q(bV4`I"m1V ej5Ra,mfYe$-4bbJ14ZrIIAIC[mEJ81NTcE6),3h'Sq$m`r@VGqpjiBA-D5$cH*' *)1LrHr2QmZheq$3)@Rf9@j(QKQCP(YY8iFXU5H1%4*DT&Fh56*+4QA5cG*-+XNT P%h9,@T8fcD8*@QP1JR+9(eDMKa0Kj*3+VHCD,#1S(!QE["9,1G4UHE#9+V8N-4@ &aEiCKXQ)C3(*XCT+H%cMp4*Qb[JKC&iRDEkJph+'T6Q-TfDDjXU569,MpcSK)UI cJUAmqF%jMDf)&e(3'UZP*$A$,TDiA-VF'TD*l`Cl'em%E$'&M-Y-f26'1@%6`4V P1QMap(*0`PUj,$#N50i@'9,N&6rd0X#I+dS%YZIXMPJJJYJIY'`+%l$d4ZTdY[E #)-H84D&-ZM%J9PSMGjbImI$PbjG$C,(G)9d(J&E#8"(4ibG2$amrI3aI6i2@Ur) f%FXZ$685G4jeD5"ZdLPGP$SAHYT&,+EdAEUNDl%3eT3,!CYqq'$5I1j#m8E%))X b5G"UA9G"rjMDK2SrG1NBZq@8FiG`$8'C1$@a1N8-*r+f5lhRcjj(",I1M5QAdY! IdMc15X2J31BJlC888kRK,S4N#,1BZc4LmPU,`Q"QSS9H"`H2JX![4jVrD+b'29( bl@jQQUVG5,JKBK)'!El5PMSI"dc0YQ0RrFX8A,m"80k@5%bF#(e!4E@61LqqD"L NqQT!EEGfbYqkC"+Pl@F0Xc,,kVf3!"%!h(0TH@S',a&KI%8)h"kJT5LYjfc1ZMf mS%pNDNkF[`Dr%E9lRH$+BYL!0fY!'fX04`LdTM![PhCGK)3rQ'*qTE-8'!#B3MF 64X(9M2`D1MZM`ejh,m&[C[K8%K&h6L-RB@XKM452V"+3!+M,AD35eDAam"SDAUF 'b'-a2K0d`'ZT3rr2,(X[Lf`0MZ(I#fi2PU6@b%QV30$YV"eqbX21#hVdL)jjhCq NGHLVjBDIi('AhRjirEVEk+l%qU%(6KY(VjA1U2f9qac0PCSb2LeB5$fRlc%f3$Z GhE1LlGf*QQ"lqpc1El`SV,d6%l5`)"Dfl6CeD@49h`A&kjKjT&3+6KUR+Eabm@G rUCmS)r266rRr'35Jd4bd+T9(,i+I(%b`m9HBS*,pPbBSE0aR3[mrG*LHbTNSXkf NN!"eKe9VZP2@J'*Vcai8(J9HhZm#J'&8lX(3YfV%SVh!$KK46l$)cZpbd1'Gcr1 rm!!kp#+k4M"&J4K!L,$EN!!51M,#(U-9S(@D@%ZddNc"'fjTS3X5@J,+%@Y`6(' KVcUcSd$XM'!PARR9-"`@lPEl,PhY-03MI%3XP(CFq9&Ua4-jbM-2ZF@!%94""aU @!i([k&-SG#fj3Xp%d[(*%jUX,FS+Yl%ZmADEU(+H3"4Ajc+E8QP+P*Se%j,%5Ua Ta8e@8#Ec16j`jjQ!Q26X+!U1)ckH3,)`h,rKALD"*p6d*6FFCd`ZBfN-#LU2VA5 +C1'$[bAN4L%D-kACL@eGje9+,p#Dcf[rNCkTJ5iZ6SVEVlNSjk3J4+p5)k2JF83 IM038CfQmi'SHpP'fC3EUmQdK0bPU0%Hi8K3&hd3%'[V!FS9Y8SZH#Y`VH1E%FS# Li#6L5`9FZ--k$qqhBf+G5Z6)c6@E(1FC02G3l$$iMFG%,@6,MPI$X8X#qpQi%S3 94,P33("BpfqZUUJQ#JPhKjh*QQ+%QCH2,Y!)2`kZmKR#Tebk@GpI[""(&pr8[I! !QFifLL1Q$-CbTmImA2$pMD6'9JT,Y65S3%frZIIpYbY#*d#[q6JBAEc(N@Uj[J" T&b$fZr%PDNA9EDUa+&@mF35SSh$NDIE#h5K3#(VE(EA,f&&TGU9KYi1c-C@h[12 )UrKC"dc4+NC)[ZaS1XmQCZd(e@,FPFjIMbqE$[C,e@Rkb*GJYEIUUkKY4bTVZcJ plAp0QMB0Ci6Qa'F+r-%J$Mr!K1*L8!M$YdF8%Sih$fepl$$RqiR)FAKLCRbXH!3 h+NVLRM!"HE'Iii@[RNZ#Qd('E+r('XciZZ8JdkcF9b1I@Jaf@3![CZeZS`I9Phe 92MaU2l2@KkR$@`AK"TZPGVhT@bAE$eTqT[2IkH@9r2ZHa86M[8cI5F@cXGA(*bF Ea[+LcjJlf+S!AKjq1RTBS5YS15'!`%#2"!ILc2Y4BkBHV`(TaZqNqV,HQLSq)c6 E'P6HXa)9[GNaG&Bb,2NDpQ9mS(e!@F+p4hjAp`6ZEB(C&pB6dkhEm*+h2F'UIa# cYE2cVepr[Ipqp2hh(*K6RjHRI'*Ye5H%h5E2j@FBVqm0EApNkH`$Jq2"0SaqlI0 UEE('QH*Z[2ZVL'TYlbKSrF4["P!2fjpcmp8C(9GVd#cZ$a8%MPrP1(L,,2faUG) jGdGrmJd)Y%EBF+@rkl&RY&5i,[,4BPIVJ'%3ND%)JYDbh&dMS&BZ*9m4*K)0A@+ h+JLUh&V8`5@1mlJlb"b2!"$3Y5UEPZdmBF%3F5rCMA),fGQc[C5!jAmVTA(AYS$ 3kVQMEeCa1hE2$m*GX-+!Z-lrTq(8i%&*)[6lFG@+A5,a)U&1T%XC6LQ`LDZYYqm Z2!NHID`34Sf(#aQ9"6H@kY$Af)kM%Ham%K&N``6VMNXTa1ZP[b2K5pAD(3q3!$' m!#Kacm#l%*aUS8EPZ-[`5SK&XP"D@$a2qZMcG@V$qh[+Z3V9J"K@2'hZ'B!NY08 SND[lY0%$L-E4Lapqe%UVDa"INjcCHmLY8Q3-UDYM$BmT4*4iq"4*IBBqUA)mjH" QCCJ2KiII8Vm@jc-4%"j'9!ka#VbX!9Q3!$fA3im42NMpdcMRc!lD[aPcI&Tpk08 IMZ"9lbM#X@Q"db$S9MK5lEd'8RB5m5S%VdaqbB0cJlA$Glk$@9a6q*BREh(p"Cl J#&i(i4Dh*923!qr(&Z6&PG%IMj0dMSFhB,PNf'`FEr2`MFV`LU5$*c6J#*mT8CM M4%j4C2m(!*!%$3YTER4PFQCKBf8ZD!#3&#E0!*!3(IB!!#P9!*!$&[q3"&4&@&4 ,38K-!3#SP8)`UN-(MJ#3"q3!N!HC!!"kU`#3"Pm&8E9Bj-l-FJ-Bm[L%#UR3C,B BYB"rr"$fS3bhajI-#"e1HeZMhN@#"a"j3@[N$Q&J5(-)G4eFEHa1(VMR#`'$,q3 *"0e#U8)S*(M)p1%-,KM-#'-N"Jl)4bD-$rPN["b%Z#bFcFT!QXQ9cISXrM!'j1k 'CF$$Z"'3!2*BN!!db6%CFKY0*'Z)B"D,ieI(Pq(QJMMNc[,a!NX!N!-0$3PbD@j RE@pN,Q-ZD!#3&)cK!*!3+%`!!#j,!*!$&[q3"&4&@&4,38K-!3#SIBfaUQ&C2J! !!GB!!!B)!!!"93!!!c%$eCM2!*!'B))4!!JF((3)BXY4J`V0f+e3Ui+SB)e#-c` a&')1cJG2HrT"c0kljL`-YhP&K+9Qm,![a3-H##Ae$(9-D0F*JA)HbcrT5EcU"Z0 'l(ik3-lF6ZY(lU[4%XdBR4BDK@*m1aCZh3mc4mkYQ4X(F+"F@ZFLbAYeJ-#HMPX Dq8DK84!TXY&`m-c`(15*#LB25Um43)9&S@SY#ldpic*dfXQe-NBKcq2GDKCkqdd (RrF)95fKd0X[k9"qKQI3"M1faqGjmZ%DElpdfLNcYRFf*G[[k%bb'A*!FB!B!CY !pEJS3#iC651C&%2KfDj0MY)IaP"dYU-*)!GPBFH6!a$E&QSjRP*RdhDGi4J+G4a G,SKbQ#UXT30b13L3!!IbjI4c4P+i[V[Nl8([F`k0Dq`Se0'ia&$hESk@Ra4+D1A ``U3fb5'(+aNlcVNUIV,41ThNJCMRM0EYD(-Y!!!+6[(N!3JbJ$RP4eMi+m2h*D( (M`iNYqDcP+XpBHZa+(P'1+%%J1+pp3%)aCr&!$kfm[FNk%FXm*@hXJL,2#HFM2J 4T(%m13"p1hb[`ejGA8p2J6kMp+UU49k`ZlHh2dr(#j5pUSf!PH(D`@4qadE[&Up [hj,GTG3`NETi+MNEhmjQdj[&r"5@kMFT$TC'IQK3qcYBT4YE+m(,Ji)ESk6a+3& M0L9hUYEXqZVQcHJR3U#P&*BX(Ap%#*dHBpmUAC50N!#`ap9bQDrhrP3%)p4m%Ce E*dU&SL&M+!I(Rq5$dT['`38-ZP$4[@jF%*`aCKeL+-#ZDq1JdfBkkX+DQ`V9(j% G++hF`mE8KE3f"5r*i"0,e"*55"pjAY49[K9@`6RmQ-(Rchq*KM!icL"M55+05@& [c,@Z(B4!`,%dTB5YFQY`Df9K5j@ckJqj"pPC5"Rb&'ZZi4X%peqFULQG1L!V,8X IcJGKb8UkKaC`QThjaSH[e`28S[A!ZS-2$4HqlfL&@2K(L5ek,#9,3MQ`1#ZT3j) MLZ,pY66F53aap'm%UTAhGideG)`N!J+5e"Vl++494JTBQVU#aNV$RN-ER6692fh %dC(BP!J*L8I(B2CJH5@i5k'XFB%HQf@*%qDYM9`TLlPD*6KXh8i5KX'*,R5N&[4 dZj9`a!ZIQc@h%YqSUVKp3[q[Xq,PL,e2,A3LY1i#""V&-(J1&a,jRRL2GSL50U* Aq!Y*3PU8,%DAXp(m$BS)88Mh`SRh,H9I+EHS#A9#ZjF5jibJ3JFLJ2F")lbif)% %G%i5EL[i"(E,0q$JfGGpJ$+dhpr(0&5Ab'FIcjiBQ4bbj"QfDeUh&$$V1AJk0'S XLCeSMDQXq#mbb'&48epTYEV8Hd`m(1,J(H-+Baqjb!&5R,c[rH,jjF3"EA4"ra+ `l3(#bM2'bVVHR,+qr`k2ip#0ELEj[Ep%`YdfIh6k)6V0ERqCYPEIpI[TV['Y@hl I1FbkNj2S1Ykj[VZHYkid'&m-TY&JIMqkDbmlmF[qhjNR*ehIVQKaZ!-iL3$pmRb &pr)SZSaRGk2mfQ-@AHaF00Mei2,e96lh&qS*rQRp$`d0#A0TEQ9RC@iZBbjS!*! 8*Nd!N"!T93!!-b%!N!-@rj!%9%9B9%Y"5%`"!+KjR'bUB9QC!!!"e!!!"Sd!N!2 T!!!$I@XmdH3!N!Bl84%!#"bmh#'),3l'AijKY+QK$Jq!"i%h-m*S+Q@q&!pi)*6 8-p3aS9dR"-Tj'$2K5EcU"Z1'(TS1N!"cGkIe&fEEj'b+@i`qpcba2VXrH`8c(Fa J[Q2cF[Kj)TQDdb'l4cP5YN-dBr+#eSN(%V0$0N%1+'`@D3"bX+lJ$f-S1X[aRUN !1F+Ee@q`K6k)U1G*Td$lh!`f!FY3YTLAHkIa,+keKEiHb18J3"l)Pp22'8RK-pF HZlb0j`EL'ZZ$BaUA'1VHcG(bNd)*V4aHQ03Q@DqRG,jmcNhaNih@lL4I(r1FdEU JpcRl@J#3!`T1mH3"#$+!qFS)A`Qq5lEfN@H%(c8jZC9j(XXm2m*m-Z&29J+`UUe ++2iXK[HL!hiH36pLJ3#Z+ip&1"P`-Z0NaJQ5q(S%$k`0!!k(B[(Z`rb%m(2'mTV Y1"-I2ehp-Mql1D&&95YDep*k1Vrq+'Dh0cpII3,X$9XkCj[G&9+FA9eFc#m"!jY VkGQ4M&lS3Gic9CSDar9,Yq(-D-1+G-fI'm#Ia)GhPqpREq(H-LXAS&kZi(pi+-3 ,Bl1L88`pDE3HjlfpSJ0"Xa1G1Up-0FjrfNY+kA-SL!i2U@bFTk`UQ9DXUjVTHRB jTfH@VbJ2F@eUcPJK(Gll#+MJ6,a3V%1bEqFhPlFA+@K9ZI%MdU9h[Kl4)`hS6rT 0*!L)H")ZUQS9bDD'5'qC0)MUK'P+hlP-@LLh,[V"aTF[F(0+4be'kk*aH8SKC,Y P'ddT-9LEaVZ8HMIe%mQe02D%M)8'"A5dNQVFkiKIk5%h"EI8S2JU4%M+bcYHYXJ T(BfS$2HUmDhJH#+%mp+EM&aHe4j&U8YS8#VTlPbX0k&5Zf*6R`UfDjq(pQXi&ZI caH,fmLbPqmTJ8GJhVPE5GrG"U)e)YUhUfDCF`42J6TDEJYd*p8E8qlj3q&c*-@S meV8XDE#(4T5aD`SE&)(K"kM'DC12J`a!4)lJ((Y(XhH,"H8X&E`DUbY+C9%3&il *1%,9C92i`GrCJEbmP`AkpLfk,T3XPlCY62!1Rpr#NN80Vdr"!HcZ5i!81mk$FLE `Adp%m[MMDemprR#88MrYiKYJ'p)1&HpS-8aQPEeRp&)APF4A9@2h(+A(V5pGPlN D`pI"P&i0pi&-BN(L,cD#+5jY&VYXV2&'&YMN2pK&(mkUrhcdfVp)4),8JKi@N!$ TU`QU"rha1"EdhcB)%DX9)PKL,60fZlDKDd!YfaG!LK(E1BF1,ipMjepqEU5+MjE G-`3dc&"JEffLBQ()%%dV#XHSHQiiMPL,D0acAIk6"@cE+UU0a8*@0MjP@$f$1qB 5ka6hVUL`8+Y'BapE"e&JGKd55FeVif#T@pZK9b-DXPAip*YF1XCh1m(*Al-FY@( !)45*9p(1P"61,4I(q"d%-AS)1L2"AU6e[IUeMHGh6(am[H#PJ3`1$U"'RjDKGed 3e*r5cHc0aHck2CB)R%k'KGJQY(Yb)*!!8iSq!bUX3aY*b`a9qam0$3KcD@jdB@) ZBlNZD!#3&"90!*!3,NX!!$R$!*!$&[q3"&4&@&4,38K-!3#SHD(RUQ25*!!!!9` !!!X6!*!$k3!!"8P$HBG5!*!'XQm4!!JFc(-)BS""EM`UZAGb9R*hJ(`-BL&IH[j Sl"J'qGT0[188b*dCBC,dmk9J$hJJP03ce$'KA5F%bRNXrk3RmDSEM"Ykj&-!HBX iV6INjV&4k&XiR`pb3qlq1@Xec3epBfXe,3MC#d4QY'0U4SZQX-(ijfBk[P26b@+ Zjk-&Ef&3X!@-Imj4Rh-bq2(2eI+T9c`Yib"9YkV8+3br%bde+`RhM,b8RLmI8p2 95kBlQm3"Z5$'i5,NbqRRM+6`4[1[!RUI@cRI!ij#(BdNK4*D1CU8e#Bjj("Ic15 C1fmmTe2-FdCc1iPh@JY19r)!""R!I'@%(F(hDB0N5ELHND1FRXG16TJbZ5BCF%r ##!$&Rh8!K1(IPH(2U"dr`JMk%3X%-1JkYV)))mm**d01N!$&9h)VJ!i-2qLbqF@ Ef8[#Vj5jjRGKa+lH[IeYG[Eq*Fe9%G1bi,QQmqXVGRVcr[AEGp$k9H4d,[,SFmV CfG[,bpN#BT!!&`3$UD#Pb%A"Y93j2D08UFr9QR8(M$f4HC4@XD!fPdN5VYUl#qm H0pZMie,(8S@VNqmRUB61YjZ-ka8ZN!$KB%"C9@U+9#ES6L5U%(4pZTK4)kB9VIL pS(8K)K%M4,%cBU5-0IBN&SR*mrATQrR9"G%SI2jLq1+AR`q0`a92%e)*V@@MFhf a1,fm)KSq[*M2jkC0d,'0f"Lc2&ZR8X-LBq9+>hlF2[eaGrp%Dh4ibGcqEcQm9 C3,'U6)8+9H9amrT!R3lpa9Vq@59*+640D4Jq2f)YQ3431-EVN!!kfq1qHi&!)A4 9j!54RMmrBPmC3d6V5TI%D96UrTH+alEUZb)M*99RGF[ZP331K2lN,LJJHf'6FE& +Q+d$j('*9e`kqH'YD38L`p%Zr9ZFZ2,J$R@P3%j(4b34TcR(5krABDeD8KSph`h IZDi*++LEfSAd`%SMPik*'BJEKA5Gm63PNDYUZD*-m,`N[H)DI`4J83!'QP)1FYc cY%,`*5A'*@e@!JJ4$fX)L$KNij!!cT8S+9HDBP'+`V5E)Q-194%28J-l%Dp+FjC )&%%8"@+e0Z*D@@CVX)HK%%Q94aD8KLH&!Q`ci[#0A!U(,d4K*1''Dii)MCh3iR6 Ehk5#rmPr&CjmZ+8+6d[r(R3mMES!YLreC0rU+LrP-KFaEH[Y&EhD!A@eI`,%3#) +IJTU*e-bT90431-hh8RAPE*MfS`3!fUIU5U0AEK'KQ[aEiDCb&6af$CpCUhD,q` ecQYb$-',BqHd)8F68+rR*$qCk)%*Z+R*f"Ka9(4AjCi`&+cPB)`h#-Q"FGMCP`P mK,)j0ShPC9PPk!fkGbF3FGl2a4+,k&jX"i$,`6eEA9Zj3LaPU8@aV4aUKH#X`M- +aMEGrUKcC#C'FrQ8aMCeed(F2DXKk(p'c&fH62dTbQ(dR52U`kXA!RP5!d4*5D% bbmLaBC+b6aJ,9,I8frdH$X$Ef!em1K0h#1mf*f[HPkrIX0e'DSXLkPB"q2#"qKe LLU,N%lhDQ4FT1,[[X((K@ibP8TA&LKGCd%%K2a[L#h3@h6+i!$8,mDA#!Rbda+e ,ReIC(56!BmJC(e'U5S(-M419bmLIIJ08im5hHfppZpYNES315&AZ2m6G3b4b9,j Sm)SXX%0-p9r0hLpZ,YqG,Pl03-c'CrZ!fNr$8CVB"rZh0SF9H%$V9BJ",J!Xada R&'AhKpK)JH-N1,*EUhr(5F%)4A9T30aCK(EYTfFAU&%2aK#bq(GU(CpKVfIpE5& d9f9V'U,&6CfUY5%,U-*DVKL1DIDP@eGKDd"9'UYR9cPVfbZIE*0(mEkcEr(iT3* DVA+)U4B*E,!B(2,DrFEfYmLDc,a+V$BjMCVd(-D3!&#r[eIp)Hp,p%2q+f[jpL2 fdAJi41DT@JEHlm"h$N5eCf2Aejfl3pCD&f!I2J+d2qSE1dQHKSF*[IlcS(i`j!3 Z%JXDV*-0IrbBImcE"dhk0C6-$2!JU@2ClD5D5r@UrSFCB2c)H*j16mL[[Z-T65B MC)Z2&!riMjIY0GDE4#KJ2-qT@C`EI(ZbFhZ2ABq&'XRJKZp(B&(N2Jf8RC!!(BB f2lqqXFJ-XG%5$(Ddm%lSMF"(,*qj`ErcJ9hp2`!0$3KcD@jdB@)ZD,NZD!#3&8i !N"!c)3!!2@d!N!-@rj!%9%9B9%Y"5%`"!+KjSSDU3`Hk!!!"A!!!"!d!N!2j!!! #3@EZS)X!N!B4!a%!#"c-F`KLS02B5,Y4RTB`URpZh'PXf-(jZ1M%NmmlUQ,,kRN 2hDG$lX`)Nk5I,iejR$JYU@HSBd+l6JL8mjMK&8rL(4Pke)i!XA&1k`dYf`f"f() ecM[UXRdU11a6*d,X[Y[8p#5I$,f#,CZd22lL[J1#'FGIM$11(iF$j65ESVFSb(Z C``k-HRbEClGjBZIEaN%X6TM[j"#8LD,(aNdFNeUaDmEa&hBiqILcqXG@khMm@3l HJjffarCaQV0"(*!!bd'!2*!!,kHI-j,#p88NV`,ST3r%(HJSe0&)8LLKPD0*5@f 53`lha8bHZA2(TDr%2'Fd0p#*R5`!#NjAmJ!%'8!-6`Q6i#p#$ar"deC'RUeX28C ZlHfbdbqpb)!44Si5!)Srbb08[C8"I%cCH`6pL!@Z+c`p)ia3JNS'3!i!++`$0V+ cdRa4F#JC#pCTXj1cme%2p%`Z,Em*-hCa1Idb1TVhF+*dJSAQdZ*iGX''9r22ddY L(3U*Bb(Mfb9R4p2aH$3K@+bNXB3bHa"V+l5NJ-X%D5PMQbZ*4-4,VVR,$(2#e8Z 9GZB#j,i8d+UdP"V@lM#fNiM8MAkERAdrRjiHi%1$hEa1"cp,RP3V-[NI!F,JKKZ "Ja"q&,`S9%3rZN+rhbJ&V`S0FMim(!pRA`RCE9IiI86"Sh9hraRDE+rJjTDe0Ur LV,(EL!`'&,p&emQijNAKdfD,dPMF#23(L0iKPk$U#3fV`*0%#f0J-i'l6*(P2hI AT9Vr,VFC1%bQG$8Ddek)@[!e90S-jJC4[aqpGrX-JCQS$"E#AYFAS1X(EJ(HjKl %A[K5aY24I()e[Ka16NFq9PS9+lY(Ii+P"58QjV)+eRXSFNNIXJr`&cpBLaJ3(ef 5U(UL9B-I4H$"paSCH'%BEZ1J"fpV9DQd"!Ci8fRl6rDlrMSJlIYlZ+!2RkK0r)P L[YlJdh4CQSc30U'YEiEb&$i%#Da+DhaiFrdEI-&cfD0Ud!cZZ+%lNp"kDZ)$G61 R#PC80r(!@&dhekc5k)cVJNi*IUNm)3+VrY[DEBGVFRXKj'-RAiGG[kmVV$YUQfT 6RMmMdQH'Md59lNLd8m-,@4D1`ri$!!d0#hTPFQpMFQpcFbjM!*!83YF!N"!j``! !3CF!N!-@rj!%9%9B9%Y"5%`"!+T$##ZUB9d@!!!"A!!!"G%!N!1P!!!$&30ISAF !N!ELX4%!#"c-F`KL!1@!(*!!dd%RbZ-`PrNm$U,ZJ0Lm`kMJ+B*RC[T521#"8&, 28-H%GTd3+1I"K`lVRA2r#Dec9`2)FD[6HJ1+!I1aeX)(@Dmp,TI(imQ&[!j(aH0 mcYJFZ@0bSYc)H&)I#h8ikcSF,N+qR(l15!V2-rmUS2Fj&mBeGK6UD#3TP0$+dD5 N0XNKKrYL*XrFEZ2CBf1H-jSEHTqlV`8!N!-+6[(N!3JbJ0NDSBRrT2JZ`Z`)*A4 #MTjjK"PK$JJGN!"MK0P+9J+`HYB"%)SrEb9iEf8V)r6)5Y#2@1#VTcD)(#22b)J 4P$&++&kJX+jE1b%ER(lYl`,q2BK5*k8f*NlBjGA&Phl[CKF'ZNaK8R*PiH6kNKh GhRbqZ-*cad,"L9$*IFjClq,XV(q1ahSkcd9L$D6FFY!+l&4!,Y6%6Q%Xl%,J8D, FG*K568c-`JjMDe)Pq6`9d1)bbq*TDjAB0cD91TiH2NHi-D+dEaPM5q5K$&Y,45D 9J126mf[bZYepMCaqlm0(aL3DYIaHM+5Dc5dF`&B%"EhVZDd#h6h'M19@*T!!Dc@ "U64@Ba@+1m*SE`haaQ0hL9GqDTQ#90+1CPJKBB`2,K,!)r0N"MliBaiRZSJAUC( `lJ"f!JLBjiQbp+(9idTT#r9Yi*!!b9c!3Q*V,%,$JMTSj)0S3E$h'bLCFN9!@rq !LRQ1'['8%VQMFb6,fT`9CG'B3l59ZUID(&fG(Af$6ehQ)6i@4dB`jL8f'h8mGD2 J[kV@H$3T%'EiJX`PREVEk3ka+&iK#L1X6j%)0X+0U'%MXFc,%#$6-k&3iQU1X*' Y#&S,*`f2k"*mHG$G!lP26F6[GT[N8c&@*C9$1'bm"-q#ALiiR"NZKmemb*!!%9& "Ci"l0a'lX*kR2a5L[c9rk'6pY8#YmDTU)+UIjCVES(%F[V*hDLA)mZEJEMhqN!$ 'F8bI!8U)Yr-8[d*$,[!BLJlV)BY33AXV@$fr!$BGGGr1fC)UPZ6D##5Y&q#N2aM FR[IUfSqP`J9`P5D&1#TNY"TFc'(N%,UV&D,![P[94J%HA$R!H+I1$GYY2#Tb)rl X+%@E,DTRD'4iJ6mL'KIMH9ET3"QPQ##!+-&Y5fM6#%+KdK6akV9f`CbEHX5EQ#2 KBc1DD82*b0dBdFl8KjKR8rc"F!!%3dcip0kQGa8qVJ9H5,AVH$A#5%q&#'L"I8I XAUXCm,"-rK2`jM-YpFIcAZMV+j4Ei[pD(Z*4SJkl"U%Kplf%aC4q*IL!#[E"bD* #r`F!!#%K%%&*4NCI4&03)("bDACKG'8!N"3f!"N"G3*,!*!$!3!!2@d!N!F@!*! $KJ!!!J$rN!3"!+T%0!kUBp-d!*!'HaF!N!C"%3#3#V@#!!d638P'4Pp%8e"IGM% e,P*&384043#3$#[C!*!4&J#3#2q3"&G%3Nj08eG%!3#U@pN8UQ28Q3#3"K3!N!F (i3!!Z5m!N!Ca63`!9I,6UhAVEEC0Yf5`!3MGNLfp6GCNZGmNl-MY)faJELDjc8V #,F,)D&-1X(U@-[&['qp&6ED22#16r@5b6c,C6hi66RKfK"-Nl#1EE$,BC,$*lj' %NrhN1(RH%difqFdfHED2l#2l##HEE,S*%kLZTrC*M[FXFT[F*TXJBT-"*j00"T4 XI-$j6PT[2mlH`pahL,&hq3jM!HTp,c&fr'ZqI`5p0lqh-rC-qd+G[0k'9miiAPp `%hZ[@EbqiPi[Z)NAf$[aqMEED(BFIj4f(hq52B6AL,f[iF2K#iJN60'HDkcEp[c ,lGQGZ2Zk,%+9@fd5IQjPHAPa))b-q0+9*rPb+6)jdZ8D9cPr1P(j'Vr3&HY#T@+ 3!%UqVJ52EF'&jA0ipd26[jC8I4P9Fl5`U!BR)e0dZpKXZ#M$4+e,(ZVF#T8E0#, *4k@b9ZB6I2barU0mP+J`i8@Tee8NXC[(1dcikFV)FV(CIi((94jDT3'XA4j+BlK 0*)q%&E5Bk1@a5JP5#5T%QXUSc`&G6K#f$'9ic5p`N8FmNL)&-Q86MU9FQ%+'eR! GEf2L#4DP+KrfD)8HSH2!%drFDS)9bYb@`NTZG#V6XHG'VXY8&aP'#3kNFM,"3T+ I5)FDr#CCRc5d5a%3%V@Pp2KD(@bV!(36[&"ATC'%6)%[Z5($LZC"qV)UMF98#qB 1&*8VUd5UVJYDf#*cFkZeZZBAHVAF4VT+)fl(K5)iBcj`D#)HDj!!,mbDiDE#'Z' "'QQVJNK*Y9j$aj+I'+p%),5mP)@%8#)JZ8Y2c3#TV+@QRPNe)S2NL4`T!0UU62) L*CFE`NYb1H+$9)GV4%"M$B4[8-@a,-(#9@+K0BjDh!DFBNaZ*+)bS+Eh,qeB@@B U[b-F'[UIF'+SR4M-C+E,FEfqGCK%4-jh3T)0-EUR8fFKZKVkM4-l0A!JSiCj!aR 6%fRY'"`jUi4YLSQ4dRiVeN!j#&*j89PRPrXV-J'[a`CG@DcSNA1eA-!,E!h9D5L 5X5)feN@TR#h3ZMhcbdNP$K0mPH$cA0IS3@&@$hL`N!$c5Z`30)$FaP@r$Y`!2m' i,NZpMh5Ni2@jYKi5B!ZS1b[F2Pd3k53c`N&%1rXLXLRBi!dfibUpki"$Q8Y%!I+ &2Bd0aYZqVd+)AH4NM2XF%L1VRZ%$!8LXJIbA4C',G'b`CCG$XMBbLVd0(Z*3Jf0 5,5NrK+-"[)Y(m'@G,lBJkXMM3L)SF"N3[Yf%4,N"Qc8Zk'$hK4kmfr)9F11#'G! KNj)p1h1&@45k*&XNbS'ma'"@!'8*ANU1"!B@h"a5JJA9QFpki)`25`34(UNi9Q' 9fR%G&`(!46E-ZZJJKbV2DaZE%pM@6qDfNk645#!U*f4Hmf*!f)J9-9#T!UaZpf1 J9JbGk)K&&5Y[j$l'r3GZ1!F)PdQE5!FZphRQQdML%5Gk4#+!SZki"1R(j54`CK" 5F4#JL*i9-S8(dFi-NNBqL96T&5B4dQ$"6Vc89AQB9K%SNaXL+mM+`-dE+3e54N* S,!$a0+aPhX5256La4UBaH&efeYJLV%A4R"6QiCN)8(,K6,I,q@5rFk-c0)22La, Kh+N&k5e())Y&+'PSZaNk$$@(rq#[!94L#Lj*@,"!`Y'Tj3c[1R$dR"Z(T6D'QQ% L"f16b28DSAGl&r9!Ai[&LD1&dd$&!)b#L+Sl(S-PSijd@*%he'N6X*UYC+DV1#5 XVTpkV2r8aA0,Pbr@aaM3HSe82+*B@H@eTJT4@L+$Y,@Xb`J2c$TFMfc[K(,V``b m8C!!6C!!F!P%LAj8dAfMP%D51XQ[,SN5U5ALRmLKeG*iVhY#Bi[ELmMRR',[J!5 HV6bcUh+k)I%V&KNGaYi1j4cAUr2)fNM%hPjp@"VV#XT`Z5F4@#5)02#6q@`J0`S )cHcMDE1QP#1k%$8lhCS9Hp&YKHA0[i&lJ4MDYbKF)R"&F*C*QEf*669l*!!34A% N4`C4%KFLL1-ml(S*[E98G!H4Eja0+K2f%kmP8NMhk8UD5)alr&`ea%'#[lr(6jd qrF(ZiA(`kG0rq-b$[`h1iN+i0,P5[[MUalrhiQEmhArH-,prM(hScIXQd32T`Pp @YN0-eX(NeDAc6ebqFR8#mb1Iaq0!!Ha[EIhh&r`Lq(R`A$$(RQ-*A@MTeM[l8p4 EZ2PqbppplhZ&h@Dhrr)@`!1Z[PPfPR9181F%#fk`DDrrS)qkLSV,HZIVU0r!r`& qJhU6XAZrK2TPaJjr&[9cU$p!r5&M-lLacq"b2r-Me"qM[JCdpk-H46f&qLR8%[@ VU0p%KEFd2M2l1rbR!,0($,cQLkM2SQ+2pjr0N!2A0rqiH@[c*MT8GljIqiQ$C65 0Ifjd(Rk@3A[S('SlXfeRTZe-Yjh!G4j'!MM'YRBqaKlBl@mGBNIC&$Za0h4[!aj SrX6qM-EVIkIQ9rk*rim!-L8,qJl$-BkmG,4$@0hr1(b()TArjmNV$2$Urk!FGT0 6f(q8[B-pJ2q)2$McRCQINA1a5rM4q+ZGXeXhYhlIfHSmpHkTkIQT[p(bS"Id(2D E-mqJXcMpr#G[XIFH#S+!V1q4qahbR@q[HqI$F1FFhKpqlH6,dmrl(dCH"QQ%)cM [eeaL$aeE2,0dPAqJIjV2Aj'i@+B,p"qA'Yr824r&mA0Gh!!,S1BRVYjcJpfSZrM Q@5IiCBI6Qrd9li-1[[m$!!*0!!!"!*!$!43!N!-8!*!$-J!RN!!!!!HF!!!1L!! J!!J!N!98!ZB$R!A)"AJ",3%338P'4Pp%8e"IGM%a,R0PBA8#!!)!39"36'&eFh3 K!!)!39"36'&eFh3K!2q3"!#3%3+U@p)H!!"(I!!!!8CB!*!+)&)!!&)L!!!G0!! !$@3!N!83!!3!N!8U!&)!-!#3"B%"!J!)!*!$%!!!%-J!!!MF!*!+)(`!!&*d!!! GC!!!$@3!N!8)!*!($J"1!&3!N!3*mJ%#!!8!N!-4!!!3d!!!#&`!N!33!#X!"3% B!IS!N!B$!*!$!3#3!`%8!*!$&!#3!c)!,8ii%83!N!-F!$)!!&0PG'F!N!-+!!$ rr`#3##Tq: