diff --git a/ChangeLog b/ChangeLog index 4538a613..8fd4a493 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-06-05 Enrico Tröger + + * Makefile.am, waf, wscript, scripts/wafinit.sh: + Add alternative build system: Waf. + Use wafinit.sh to create a Makefile and configure files. + + 2008-06-05 Nick Treleaven * src/document.c: diff --git a/Makefile.am b/Makefile.am index 942c228f..0b0f5239 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,6 +22,7 @@ SYS_DATA_FILES = \ EXTRA_DIST = \ autogen.sh \ + wscript \ geany.desktop.in \ geany.pc.in \ geany.spec \ diff --git a/scripts/wafinit.sh b/scripts/wafinit.sh new file mode 100755 index 00000000..bf0328de --- /dev/null +++ b/scripts/wafinit.sh @@ -0,0 +1,53 @@ +#! /bin/sh +# +# This script creates a "configure" script and a Makefile to imitate autotools +# but Waf is actually used to build + +WAF=`which waf` +if [ "x$WAF" = "x" ] +then + WAF="./waf" +fi + + +cat > Makefile << EOF + +.PHONY: build configure + +all: build + +build: + @$WAF build \$@ + +install: + @$WAF install \$@ + +uninstall: + @$WAF uninstall + +clean: + @$WAF clean + +distclean: + @$WAF distclean + @-rm -f Makefile + +htmldoc: + @$WAF --htmldoc + +apidoc: + @$WAF --apidoc + +configure: + @$WAF configure \$@ + +EOF + +cat > configure << EOF +#!/bin/sh + +$WAF configure \$@ + +EOF + +chmod 755 configure diff --git a/waf b/waf new file mode 100755 index 00000000..b4c222d9 --- /dev/null +++ b/waf @@ -0,0 +1,145 @@ +#! /usr/bin/env python +# encoding: utf-8 +# Thomas Nagy, 2005-2008 + +""" +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" + +import os, sys +if sys.hexversion<0x203000f: raise "Waf requires Python >= 2.3" + +if 'PSYCOWAF' in os.environ: + try:import psyco;psyco.full() + except:pass + +VERSION="1.4.2" +REVISION="fd1f2e9d93f8e1634be8fb448b10b939" +INSTALL=sys.platform=='win32' and 'c:/temp' or '/usr/local' +cwd = os.getcwd() +join = os.path.join + +def decode(s): + p1 = len(s) + s += '!!!!!' + w1 = [256**(3-u) for u in xrange(4)] + w2 = [(u, 85**(4-u)) for u in xrange(5)] + tot = [sum([(ord(s[i+m])-33) * n for (m, n) in w2]) for i in xrange(0, p1, 5)] + return ''.join([chr((y/x) & 255) for y in tot for x in w1]) + +def err(m): + print '\033[91mError: %s\033[0m' % m + sys.exit(1) + +def unpack_wafdir(dir): + f = open(sys.argv[0],'rb') + c = "corrupted waf (%d)" + while 1: + line = f.readline() + if not line: err("run waf-light from a folder containing wafadmin") + if line == '#==>\n': + txt = f.readline() + if not txt: err(c % 1) + if f.readline()!='#<==\n': err(c % 2) + break + if not txt: err(c % 3) + try: txt = decode(txt[1:-1].replace('z', '!!!!!')) + except: err(c % 4) + + import shutil, tarfile + try: shutil.rmtree(dir) + except OSError: pass + try: os.makedirs(join(dir, 'wafadmin', 'Tools')) + except OSError: err("Cannot unpack waf lib into %s\nMove waf into a writeable directory" % dir) + + os.chdir(dir) + tmp = 't.tbz2' + t = open(tmp,'wb') + t.write(txt) + t.close() + + t = tarfile.open(tmp) + for x in t: t.extract(x) + t.close() + + os.chmod(join('wafadmin','Tools'), 0755) + + os.unlink(tmp) + os.chdir(cwd) + +def test(dir): + try: os.stat(join(dir, 'wafadmin')); return os.path.abspath(dir) + except OSError: pass + +def find_lib(): + name = sys.argv[0] + base = os.path.dirname(os.path.abspath(name)) + + #devs use $WAFDIR + w=test(os.environ.get('WAFDIR', '')) + if w: return w + + #waf-light + if name.endswith('waf-light'): + w = test(base) + if w: return w + err("waf-light requires wafadmin -> export WAFDIR=/folder") + + dir = "/lib/waf-%s-%s/" % (VERSION, REVISION) + for i in [INSTALL,'/usr','/usr/local','/opt']: + w = test(i+dir) + if w: return w + + #waf-local + s = '.waf-%s-%s' + if sys.platform == 'win32': s = s[1:] + dir = join(base, s % (VERSION, REVISION)) + w = test(dir) + if w: return w + + #unpack + unpack_wafdir(dir) + return dir + +wafdir = find_lib() +if "-vv" in sys.argv: print "wafdir is %s" % wafdir + +w = join(wafdir, 'wafadmin') +t = join(w, 'Tools') +sys.path = [w, t] + sys.path + +import Scripting, Params +Params.g_tooldir = [t] +Params.g_cwd_launch = cwd + +if Params.g_version != VERSION: + err('Version mismatch: waf %s <> wafadmin %s (wafdir %s)' % (VERSION, Params.g_version, wafdir)) +Scripting.prepare() + +#==> +#6<\%_0gSqh;d&AJ":,(3k(!F2[1M2@Cm>*Vnf*Oc(m,u%HlF(MB+;tlMgS<0]JEZ=^B29ZhBdLL^:G*mI(nb40(H/mNp@!t:Ktb?H9tKL?gT=j=1c6[th`f`>\@jh3&hdGSD0pdDTE#(1%LT!;!"]@J>9/-BA1.hnN5U7>!*2;:m*q(cW1p+R%0F4'$/5HU.0M%q.]>DVV,[Pu$7_4"Z["IKTKQ4A]3.o&nZ?(<\3]!-b[G^5W(OG"o$SRbGH0NfnZ.#KXH\s_ZeN)UpKcXPm2p[jmqK%gqAo5)q"F/lg[!/=mpiJ"1]S%^ZUBKJ5QIY6kYBuB$mAdYgD@#_'bVE=+h+Fk:`pKF;Ne%a"5_R1gXgF;fpc.!7WmEKhY5QZ`qo@BChDCmNtjg&cb%f:g3^"B55..apj:ldGJ(DS?#32MAimGYmW17GqffDc>AJ$$#n7qAd!EC\*UTD9Dd'idj*a,fCZCnN1:H9"4j5,AgZsl\F`X,"XfUsfgAC$AgiluSIIDAsjRG]fm.[+SEgKR>27hPQl^c;Bi_A7%e#ui4p@li"^A)F1f^=a2;p0ISpCfUb2r)7ID1-?2i#SutkjOS(qer*C*QsQU\h+oEM0H+'P?3dAeJ!H<27B_GH/A+?GIkKUg3^M[HdQ&@mR80u[Q@cCDA29+ZM,"Bqn'.@;=2ccet'T?Oq(aTG3?JacECSmGhqoahX=fX4njK=:+Ag;gp;I@hRYJ3K(q!Rc>_#>t5:[^f_QqsTt-_!CCD^"M64X6TTJhda/)]=@=140[R`39"_2G367"\)#1ID!)mcldg.3h=#9/f3E[+^$Zr>-1f.EF1pDd[[s[$mXomNhZ66?*Dc_H]p/7mLn#3lDqHWRe&QoX%\X#A_4Hb-!d"rgUhT@Y4^q\2lkO*GMC$:4a2<7k'*$TkFXs4\$sa;VgGanmuLa;,CA7[]?SC.?,T>qZfq7pIBP^kBao9M\Xc;a`GQ;q(e]TP+<-5QCcsBbDTq";#6?R118entlG"5a(LqA!b8MLTE=2Wh8[Rqn:13dnTiFjbh"]!YgeaT>"),S20$-AX-)KLH"%nbGcHq/.Z[rNda!cg?te2.]CR4sH^67^6/S[2JOpI0a9I!/foYhA+<)H>V;5I.f+H6APr%c77W"Dj_&C2+rMks5]%`ANI@j;6j,8`,f)+'Go%#QC+Am.UVTr+'BRNt48'ei6k2F`d)J/M_($=T.1p,K"d:428lj?5A:VcI8:]?0OU,Z0/4GDa/M/)rQ#,1*&XeBqAKsm<'!bK+1sf3c(/9bo9+dggVL`;i.@?E'Z=MApda2GA+>KhDBaof]Bf6TgPY-J2+p9YXQ3M+M;F=taK0j+j@r-`3Qq;fQ)G$_nCi#8LN=&jGA8O`YTL>bQ`$Qn.7Rid[R=NM@'$MWB=qkG&'T#6qW7&OP_NN#s@kpNL/>*(;%k-F;d"cS1fhL:Z"%=p)DZuc1Ef2l/6\M[@7H21VR&j&6qTq41pgqn<>8IHr9.Od)[8:n]l9N#\gR>/gL+Fti#ba+Y>.%:;SK#9F!9pm.N;CYMmc%;-9/5`03VGNPQAM^QS$7N.VS'=tr]%+XLrjKpXPk=Z0!R.r7dm,?3,d'kFS:;C&*8M.2AWKNfB50d`]IM@C>2-;q+9P;Zo-7:TIE8o9g@L01>M84d9l,SHQcYo-6a9Ud=F_c7m;`laWarG>C0K8iNDd^F7]DZKabIs>C5khh@VnqXc#$%[(2:&iZrBMq79,T&P"M.9-qH3ALeBS5.+tFgV)2pS1Qt%]p1h@rVZ>?>jRT>TGW(fb7AZJG)WC^YVP-Q$-;bW@ubfqKcP"MT+N3lQ$Z6CXM8lDKbQII@leCBMI"`284ABZ6]C+:eJ.%80*O\#oUVIhXs#%e/D70[5`FCm7uDG4VN13(,SZ%0hbD/%rbde"gSRY%Ub_!,c_T,c#D7LASa\'IekSXB&$O*BlS$q&tIn8.>RloIk7;;*KHWnX.GS%(Ul2PBF&R"+X($-`-:Fli#k@cQ1]d@;5r&qcD4&@(6&A@e.G3>m>.Hhp,e%C1`gX""`P7-i3TpIKLBHCbJTr3`q+KQEY8A:Cb!95r#jsI[(dc6oUa\8S.mrBkj+Gde+P(O?ZWd_%@WiG)+-\c/=9/.TAW$oJ!h9:]s5Bj9VIDPD,5l<'Pi*eW+*'fmdA"508"VQ3HHe0[c7rOGPmE9K&iVrJi7+2)Q\_WR,7mGmShfdV9Le0-(PNEuW+Ub,&rI/p4YWZfs.';p`d`?[#nKaLA,/W&VR7p]_[lIY[405Uo96eRjCB2+=e,J5WOVKgE)[6L!kr+Jia/F(l9Im#P:4qCDqgIf;1,:eRL-V2]!"f4e-CO!!'oB*C_;>?h`"2N`d2r>rpue]6g*\)`C"o7TQ/`tGJ&\`9ePE^NdFiQ9-,e)]CAZl8'9r:'_sUI6XNgPIah0H'dla@N6FO.YhS43?er@Z(3sP/n1'78cafA>$kM(eAE"ZS:hs2tYH\M;OnD=+e.EODV>]Ru"j'tbqd=\nI<%6(T)IMIY$o!+"JOrLn:[LBNCT*Frc8`^p4L3hmdJa;Y'k>\JMfNcPm8r4i4dMX*sd*0U!,Lgk,Ym3G&lb4Ed>/u;2#M*cfY4q0iB-rAHT,^%S/KF3m$2'RrdT#A7UL"Q7/%67p0C"GFE>sU\K3pBW/]/4G,g:E-kj)oap.4^f^TkCRkemM@,G@EKLLMRWR][1r>g=2]BPqUGn7'icdVeJUMM5lmd(Wm"q+[.tm0p$85LoP1"J.##;KP";c$Tp9Ho7CiT>,+p:@*jc,'@K?aCtufYp`-V3HSYml/MT/T3/:tp4pFHXFG$0D8-hFNuOr/dVL/3IUJsU>Im.-aN!a[D.^1.Q,CXRUc@tKTFlTI2Y$AQ8mVao=g6%R5HR)HjA&KXljk*iRMq92#:q"I37D=s;H\1m4q5CV44/eNP.i4^Ud-@0<@_h9!ib(D,0r_6mHJ*5CPXJg*r:lKV.PAq!SG,i]mG:U$m8eFZ+X0lJ5=HI5-YF]-fD)Li(g"_(@&I#ap1l+E5:eujoIdLnf&BPc3ii56-dr^/o0Q_4$`cW&L=6QifH2_Eh6GhFcV[!+lm72pQH?2;Hc`[4Qqk%r/kFJom7Oj4GYt4c#.)J02ZZBc;Rt,Ut&FS[:pIpFXrZ('+Kkfq;!u4*_\&Nf:H9$,QA\A:o_+K?]QJnVenf/tRE]%#ahFAD>^]S4jLXK[m`R0)1puhH\>HVNiTQ4CU`3ps(QBH;,8u+%LB3K5PJ<BK(^Mu:b?BK;9oEt8ED0V`eC0_*?2/C+&4LT=G]%Xt&JB:+SemcK8[o>c6*3-=kYR$u$.-=,4m.i@4U3BVdU="AJKj/u,O5rmE=Ch&.QmS][E;]KP9BF9dR[$*lOVlM[+JCCef_GE[CeRhO.g>1QbBCWWkAV*eQtX&JSWWul[@dZ`"=>HnYMk)KCF+qkLTV"S.VAeP^M\"K9DdK=cYcg:@kH1Q^Z/2''mSM^m'+Gejo[tWK\Y,BZ1Gmo7S3@N6BsmE/CJ;_^eL[YP%oim-^$558LTo@f>oP;cHpH3neo(5f;W@88sT]hUG#7Tr+5:]i'4@o)(m7Xq?SMgd%WnVEbVFGM>N?YT1TEIB)b-AN=XIG]=[pU)EMA/;GfCVPe5MH=[Z0'%l3H_;07k*?[jj-&.]cj17U3[`u01AHid5p(B8]c!aP]BL*RnK._UQd93Cstf$UEp9^(A=bdQ@b^E;@0mkm"a;.RYFj/f4R5a/?.S>83GZIX?r5#3t&C8k5+h`qdCG#0oC99ZHb)Lp(66k*-Y;t35ie/Z4YLpk[enoHFE+;6`qO)fG]OFYFBkXdaFl\Kfl+peD*AEnU)F."FK(:_L)pEsAN7?6^!=4;jm2,HgV&l]UA0`(;')ja-;D;2,!IhoF<;\)I;L:^pt);S[)t^V)NgI"T)I14GA-PSbSG:.o)UPi&O=!bkaZW5I+Pe4^=bT:U^XW%eNU?b+Nk7hDT5/1=E^0b$KdKd.cQL-lOt"A(Xl7,+lu6\s>0gEYcQkIY;BS[$5WPh%UcKZ"H0eLH?T@rutm#mgdVD$YDNA2\Fj1gfL-'mT.ics:E$%+<*VPJuK?f.t`uAeL/kCITOYg0u>/OQ+69g/VDYAr4\K,bfKYBmV3E>Hiu,KQqT4UJiseg.;nrjY-0S[7\r!8838;'#S:Nc3&],\4=!onofZq>4:mgD+5TmIL7m/D\Q&EgAIpEKrhcpO-E2'Pf%f-[E(Pb@VM&SMlhfhFOJ6]?:<8S.lCaure0q!lP)5X]o`"I2>k+&BlDR?6(^"Dg"#-6J08r[pFP+"sib`((u(eD9i>EmLNJKlVsUMR7oU9=n/K`."(QWY+I`HNE";sVn^-qij_FVo#o7k0bi]ajlYKej[S\T=cE4WNq%?1O,k9Yl1.a/C[S/r8;MH#eokONSaR#-X%2Erll@J?Nqm_9/3Xd+<1aC#Yr!h=EA04-0:YruH`>3)gYD.4"*h7*'GV8QI@Qp"nrW(AZJU+hk5S9U_p?`Idt:^CN9sNh*fd;(eX&.UVq"MCHYGle<[Qk9)YVCln!3fj?2=8#kld-2KNSU+#Xi[7Ia76HbNpi4q!!"RZf\+\YdJ.sANcadn'6@J1Bm5e;@+i-9UA#DkYE)nZ8feV0D&Er&7:n[q2V%k/2r`,uqNJm)tmAM6gFWX,Rq,-EOg!Z,p)^9q@VTCuq\_,R"-H@4a5TlPp.Yq6g!!s=8M=`Kk*.QU<=^FR#rF=`%N#^u+;oE+ZX8W???<2EmW0>sL-/?ZS9UU'si-Uu;A=2j*8pD+W[BrX"`7q=YMf9%:e61+;bSeQo:!YmRT%M3@UE)"PoLd)%>+BIj=MN.g[l*LFG8>ji=[12T=*AsAXC=VH<03>+]h\5,kq9eGBAj=R4gU)0FE<4fqNk&`Fon:4_NUj@eI6W27RD*i"q@M7.la<1bp`?DKG*-8;h7u_E3juWnI3/]/M1XYfX_gNYYo2%N9gu1jG^H_9=6-ghj8\=fUjgQRa?cd!;lRAqnIh-?&kO@Jo$?Xt3[++d`JVgj0%61=(`q9Hr&?h!OkTp\tL1],.ZO1"Bd3\mliq-]$fr!WlHsZiZfA3j(`kI>@)A4fU8X.X;CdMl'_pd)co%SSLnZmT=fKBsY-E`7.O2=_V/oZrI,rcC_6b6nARA>D)0R\Dm;S"B/CM3,gr'a!1g_@W[Ia%UNgrc1YD5o0gPU(Oc4^)l->)k&J]TtN^UU&V_Ld>tq+)ZAI%>Q2+DJ7Q+L?>@I[T5+:/fDdY2XsPaed=4h41fMoLA3[L=nR,O$TgATe!#kUl<:RT/;"&qDrRpbX,6k=^[%RO(hV>EJ>[Q'@q]LH+.e9&1%7]V##6$SRu]QWqFdN7.!\GO\ghHOYhK"/i6!$OfDA?`=2d:!(>FMEPsQ3__ih;O3_H<'kNM,ajQAal22PLFZLR@VHMOtV(p9US.BR9+b,WUub9[n,?g5MB9Vn`,NZZ;YSr3*Cj,BMU1CQg=(Mges]ferfAQ\lYn+iuS8*6q@i&&$'-+m,_1lYWqa^%ika/YG/X*f#(M(h"J_XVjsFNu_8L]>3NlVELM?^`'1LTRhus#416@FL5G&%eIMo3,H"Z9Zb/Q"UZ5Ok=L5L4i@&<&;Z!&pLRgg&t%E1;[h>aJ\9ihNWi5AHClU#gA=e_J@Z43g%"rTM;N=U(r@I+G&XneP@!&dLfE3`&FBI#&-f[TU/2EGl1lKbrO$VCQ2;gbrq!'l,BZcY4.fp0fkjns=!Y2]cSSiC+L8;?Vttspl[S/:LIo"[h""&rG&pN9+2&^kjNFb>3O;C($_t'a,6:e=TTetg@Nr[#JPVqtQ?tT9_m+UL5s:PUe+$HU^/kj5YAIpJ`+4Q.9ftEPZZBn=i@);]f^q2g^4uMq?X7(El)4:%a.@!u>!J`B[Ac>V;'Y*a9QhPc&2T@++UTsXUsVq+(CXm/Qt3uEfefkbo6kaba^i+V\O4*9=d@:aeKUe#U0[nX^Un.HS?-oimbTsGa)eEJ<=&^H&,9=LjK$r5fY\&1_Q;2Q\tf?&&I9r;N45jpn)%1k32#ZAg&FV?Nhre0Td5IWdQkAdAASo7q:a#g37fa&UW1(SleO&(Ki>3KW]S2t26KYZkOVN7gj@8)/BkKRbDi#d&*A+o\FBP(aV@-V=J36`RuhrgpupR9!9oGR[]qpNeqrDS5-i6MN01FbRl[3nfeM$[1Yh'aeEq$CY_q?o^s-+`4dGjYDb-j?etTad5%C,UaqYpVo=uTS0Ngu#h6uCjQa@BJ9`7+6nDi'lcQ'Pp*8^m/[iP6^*1_ehbrISl6a,YENr/"7DR)K`1Q(U>h%RW`i<:0*/OcATp-kkF2TVjPR]hU2'u%A;e;$sXg&5or9N,?PB"5\!j5HoIE4e.E6>G_A\VBOL7,Z[JXDk8ni;IHi#o"1]kM;5]`skC2tg;i:?erGfT5S`Jmm)!^R^ND.!Aqa?W#U!Mn#$=g0m'&JYuaGsW@E^X[4U[XWCik3P)lgBQbU&C;IW*ouXX*?X>U\-11XT)Xq/%M8l*F4=tF(/B5DS#9ikRksF,%;+O$&#udX^V]lMoU#I6l:]91blT2q]ct'N`4?uto1%trBR[ar/ZSG$3ZDln2Uot\WDO!=k_:SCY6q-40A-0PW4_L7hr4R7>EB%dpK.S%2jO_[[Pm]0e@E]k`S\U1N5lOFj1CHVs*RPf@*NW[816CK^@qsT=PQun9[H-pC<*S?a,>?Ygi6YcC+X#Vj,@L/eo09)H.bM*"&IKrrh9g2h,ODL0@?7A`p`sh45O2+]?=<"c>H;8n8-BBU+s8YtQ?>;lPH/LsgE@8B[*p-T=^"3[fkMohC'^//!j"=o,6\?\LaAOT*#(jfiW]fU:S)mRGkt<_H\%FJ_4^o%Af&Ctceh+NXR[`07c_eW-GXI0W)DVfr6C@kqqL%,k'>';'W3*@/FK1iM6+"Q\TS$WEA*7XTKQRS&>IANi>6J8%Fll^?(jn>OCB1^M:J#&3>f\&$rZK2I-`E:`c$0+VM]mE\+a,4HhPHthcN"k>UAVJ,mU(3P#e+aI&3%G*%8^.MdB'&r4I2K^"`3!n[Ssq=O5+am\(tpceWc.\Qq?&oco!J&dN&ghrb(9Zp%*4S:GY)>9[6X"L-c,5X-(Xd^E>bGQIC2[M0]>"?Y68_eLbb?ESd]F;-C9ZTgd_>W$fBb?3JT2&pd<-/&(UT//>OoL70I/YCT6:0)^:#"16#\WGiq)2qOI[?a;c0sC/mAP&1&V7@LHDtQMMdn+'g?BH='9:2^>Qe"=nVnj,cL9,=,jCE3?7:CD7Y@>J^#J\V9lXS0?V`$KLCE!#A?B=!lbLCMjdX.W];5uJ;#l,oaVk>)W=h7j7>@JAD!c`JWM/&mOJeYC[aQUao8(pX_jBmD\)HS1Q=m5i>bR^`"M"CN3@'mSNN3dV@ncgoA9_"&\llK25Sq!WW!I*T9#ma:ft0SP!o9:gli[^9G9qgo^p0mq@UUOS&"u(BCj+]rc@0"*1VIQZ]8]ReK-Qq7\JfBX"PldN:DD^m)sK'D=Z??dpnL]=?/Olb\SR&u+M>qu%]]5N?f.sSI!V^@ck^gmjn$\HFg-2Sk\,mW5d`o%aYAN,T=FX;N-Db4hr:9sT.Z)pl8r"lD]Q$"T^M-Gmm$'19YOju\L3`?,PIJh%Jq-qdUs3JX?&]aj]meD:E$*!a^r&`G\^$Y:-RsE7/h\q92*1H9/#)AN9Y.oIH#=X?@Z(Xq*;KodiQ']am0Xc[m-h?&V-VU9[h)+dsm29))f&J0E)$Z2K8auBW"NG>@I'Ze9V#^G_n48esPqeXi2sY1k.XE)*\VRWWFp^o]WdlL0E![o<'PgP"cN;'MOaa[JN[`7ZFl529#;OFP`.^-n(17i^6mX%oSro]2UKO"jM&@f+_g-HGkp@FbZ1\J&IK0+mNp`]6Bc8mc;bQUY+E2HQ6g/MdH+%1E+%;dMKg\L(Q+T^kDBOCJZ:*)"uk"=1s[3)u!-&P>@9AM1R%prTIEZNr7:5C'p@27coNu@eMAg^E;586jsp/CmVUjIa*g*$Z5XQS&]qYF$>h'`RTN*o_-_-U]:`sucIjBhF@e"M(V4U?isO_p7MBIGS;=oD'nnIfu$b$gGMnY;X[KT&jc(8-l>+2)B+Zr/Sd*Q]d"e0%_$OGDjH[-$TO&N#s\7$#&eSB#j%XY4fZ].Z23`lkk,>s?#A>rg#?F85K(@)(]-<./u=>5m*i)GAW@IYC"]o#L"kc]Tq4iB!-mae9C7mbR2sDD1nb7LDbO2]J@E_hC[sYWs;(1^H=/(a\qfc(!ul*)cqb`Fr]R>q$XcZlH0kkd)Y>)mS_7^YN_o=8b%nqWrC"jm)ejF`LJ%fHU,0CLXpIR6l!h5);]8Mn:$8^UfdG^\qfMHt#+R1gm5gpgl`C$%Kum0>)V&,#;r[briHm_)?FZkH)3M1saO+>n4%&MTGoGVg-Z&_.pe;Ar<;NBO2PAV\LJ;%a0f7.9As&ZXI0unGj?#\BU;biIe@$'6fA1#q=0a*1Z796LIGS%X/h`NW9U"Ur-b1WLl*3'^ZDesQh:(`l.+tqSW`N3bRRs/U6FSt#Msr9>WuD!j(:5llaf*flM:7W4B'rRlfXdY@HUl1>'BmVmIbWu)R,%mnrQZE\+&YQEOripfT&5oR`J!bmIDtqbBj$Rr4S^Sr[tuT,GMT9oGXch:\.Af/$jsb62geIqGcq?-eIY>s)*NmTHnbkJ%TP/eh1OmJ]ja8GorRJLCDuCbHZ`("YhsEWqZ_49'%>0@Jpb1\&84PC29p7<:(Ebk]BtKbT[XfLWj_;gt0!=Dk!F+>+\O$T2&q(2P'*Q@?D-oO(LR^h8;uHQ`[Q7np32-8AY)0_r]s1H+cc9Rhq?]DCeg)tag.Q@@=4>+Oo2dbUunGJ^R5;R_(,Mm;dh`u=5/7LbTM!R,@\"N4QRMq)XS4p,a`]RcR)a+.rjd&%k_t42/rBDW;pBIeGhJOSc6p$QPmpi`e/5<8AHl".h8'gKHhg4Z$4XPMjq#2Q96*)R6^PG2OMos(&Y^$a&FoSU]IK,n!M%rag.X%9UHnHoZUR4%?YNkF:-::TPL^YIRe'6iYPKP:Z*l!K/]Y.O?=GME#Cusn(_M&,^eJb4AcV]iW[Hh,k(X))2rKUigkRh%0YNERScK]fk_m8[BP,j?#\R[%m"Jfnh3E+T#gVNT+AbLP#Rf9J%o&IW=nmC6tY1im$M/)?8c^sqhnL?R`WusnJLkfa3V);7kg%.:4D_6T@-*,A,nZ,8nn^iN-lI=h3C2KB0;VU70&+Vg9B:>UUQBFeTD?VoXlI\?[<.a7+D?F&0u+o^d63-8i)>=EmepQdI9;oHS$U+&_/+(tViDbTG,[`p_IPFj9YlA]tCGXRl(,o(J\G3U(8QF^5Zt[DbATimg'F8`8Gg.aKXr\*t0@B]hDocF<@&U=:#BW-"m][WFC^`nu]'brq9@(&@7^Td+X/MrD?41?0>ar_7FtdsQ5i:V=R15>QoZS;m%6K`L=\G!BB''StlKpg$I$XM;K)nBu9#,[_>9b^p$G%##Qua%*=&lONC2%%_+n*3/=Gon^0"C3`nPA`c2h4N2U,hSBt.WP'<$;.Dph7c9rajbK:p1g.)3`AFQBp%l;he]JB9qRV/`pY$eS/A7B"l+Enp6hm\Zdh/M2",@F^,Qc$`Y1Qm>2;R/S9A1On$e!`UlQO$P=+=qS'^/j$.',9!e+rn5;)S2:IVekLKAd5>UaSS$Ln1VHY\=]LVYGn00*UW9@uWPP0>d+1okp^@0\DX`]gqkHs/bpN63AH<[k)^J0tdPiGa@>o\lEoNct!AX>kh%doI?0C.ftr&W*1CKjr2`qO=m^43r#YP@FiV9!V#(@"SRIu(1"YmeD,FZQbe,WX'YqPCN,S;'TGl']$cd('u]5X^:%Kp*(*)MUs)6B$Il%0cj1Q;#a_N.R0'KhJ"O\1#LFu;L;b*lF@8M8`jrPA60XurpmdG8J$t*rr**WSL=QPthHn2`1KmV#Yg6R`))6pO2^#n.dAbU\I9$)mqn:.JsDq41*Z+K-5LCE/0m<92$E%\iheAH6d%Rfj&f,m8mMcVCNVsS%n*J?&eL+A`_GaDX,t,IqMfjf#]6jb@ULFfr\iWf=&e3a7&*Nc;"#*K7,R&/hrOdh6gP&Z[Ha':G(.%[62dk_sR/&/gcb0T:MK2F;O$O#mm528XYK.\jiRaKR:>6J%eE[%@5XLANHi`*pk^DXd'E_?%.:FgQ#I>nm:Z$ihtJYPbe\80<`l,3g(t]A%S7MO0atsV`m.LGK!Y8]dWiL*N=#2]C5\5QWnX%)r&F%IBMf[P#aZ@H&/Q19%o/4'hJ\"4YGojVCBZ)K?:606_?$DLSjAuglL(Ka7t!#`p:%HJ%IdFlo(#/jK$Q^a#uE'rZ49afg;"goWk2F>P*)k1$e:ml8RR!dlh?16XqnX=6nh<[0Tt:J`_Me-6aa<_U]:+'/EF6dS*1eC<`&!k^IWXhpNX8qn+`[9Dc",=RR93n!r5.0-=dO@WG1=IF@ZqHVZZUed79roe..7D2^P63J-UG>,FR8FBM'XCZL>WQpUHtclBD6V(Yj:!f/gKM$ZV+`=-G[p?VllKYW(6r:"i44E!8VWQHa7dtFc,YHB>chJ"_Ni+iM4S.L8^:_QTrFQ&;][8=KcA8l$a#TYdcV33I,+s%ZXEm1F*WbJ;P1GH>K9\6!54A`W;r6V3*g82B"9D@*)Y'+kKb6B-cD:1G^Ho2C-Z^M%r>+Tqqi!MRZ];R*1'h9.6b=YF`J='M(nIF?%0+4^s4kZQ4MPZbB^&2-&;&KT.5QEYr1k;Ze8"/K@5#JWsU0mTOa+$;$NLgrhOu`g0kDPTa.51?:VZ""ChaUJ)cdbI3Cr>rmXn_s-$#HE#!POMR_=R7ir@I2QuQdtUmY,&tL/7WW/P7iRtqR6+%+)hW2W\/B%;Nr[k%D5i>C')\osZR/co&1eJYI_WSCjAU[=I<%7>b69O@Kl7(8m5iGL_eYhCgN05MND=]r+)*G`cCF,X2F`%HjGL9R(X;]^Ql!?<\sYnq+cbGsdFR]cqH57"h(mL+n`WQarPIg`XL;!JQRnE?njMnEf-0%G[_.1t:GFEC)<9g)4L14u?2O\")(IDk@NEJ&I;&a4NXZ:l%-e"PPlPm04q@nPI:^hn16O4F=^L"JJbGC)/H`:rk+hMcsZi_M]e>8]YlP;d1d)YL6dlf"X7h%!HaHY+#.XQmgkoV(*^hY7:R$52_d)9TjXGe4Z=thGqZAgkFA'6IU+g`%>Gu8-(R;A.ZqA3=o5"lm.ml"=]f5;]4j'sY^;l=\&]>7>Oa)](*Y9j;gi`\jcs0%7iW#336uQI`&(mHTQ)%pt0FJg)8;cK4VrKuff>IrlaS-AcH,&6GNu"l5PVfZ"Ep9Waa"p)K5ChPP;i&lL*A=8uoSdClp"OGnS3-0s918C"DkR&UF`'.-j(CM8]aK7ui47](/Q3khlR!?7K'd\f7?61S3&8j!NDe-%8!2H\)l5HunYd?_&f_KUlLBdq=I6R"BMP-u@[rrH"EHWtAPE>C+N*`).5peRpU1F3]?G=&h_tq%_G743'6)qT.cRC>#s`Er4ZBp:56;Ml\^R'O3,J1>M5AA<`poGeIs,g)6B7ed0:KpS$0]m)1RErXlYo;[A1;n?KGBQAH;"kLk+fH*!5_2.K25[OH)QCY1GVHc&/GtS,)qQ1AL\6682"ThHG%5PIk[CoY%Q6`d5.2j&nNU*>s22BMqWuGe:VQ/)mrIPo4Kd5KR9V5?dd;VcUmc[fDXoW_4(ONOT==H[cO)Ok,r5m1#B?V&0aA<9A!l?O69W"eeM2*XYN$(j>dQ8@*(7$G?8_J,*aSO0nX-b@QB'4[Cf3.4NQ,nX<_rSO7lg#3GfCpF"pi3U#RF"`P"@3P3ZN,m'@SKZVo]Eq+),W!^'R8RWRA`bK>PNX9H?=#U+OPMX?4>S4\Q+0oc<0k61\:bGlqCTC-B,6Y\Q!5>"k--.k7[I1$KjSEHJo*4q/7fkFPm'2If>5Y70O@m&//]923^Wa@LF:0DAdB`!opg*mZ^mPA`"WXj&lo-5/J-.$;T[NQoGjc)W4ZmM&2VEK*%XD;L*5Mh06'`d,j?qBq!:!po7>\!FQZ`"UA6Lk-Gh05:"eB)%o37<@$>b\J(15K>Zh*T2P?2c<,:Gu/Fj-.-`^QJKS#O;ER#aGrOATU#_.RC9Ibe1]Ks(d6C"NI@;Q:LX/KYmn8!n2=;=:fC[9A3Qo6j]qM7)bMUM9jnKo!bIPQgQPM:ZLK.JZN)b(`r/lt"g[b6dna7kR;e\np(i;B'-Zneu*@ko%(.pE*,as:"m(.);sn6(PL[rAb>lD[R=a>%Tf!6j3)oU?LPcG02(s7X!OUVrl7.8g*8Ukr3o2XRU%RI#un,X9rTn%bIZHj+u/-&F2c\hp$]c!$0oEFAq-B8:/qqI$*;s_Z0LJI:K-:J'On;^NHT3Jgn"8j_&ci=_7"QcP\^8Fi,htm^)kHOh$o(f2HhQsW99(V%@'K33rG;3?+m4s\CBq?^?@1*eOlXF4lXT][;NRpY-S)qrp2$,PLePiX/b9mER0R/[nVm/:2*2Yj];%ETk1&Lg:,i*V:KOY66iC82<:C#<>'((_m>![D3f1Qdi.IuQ+U]?enZt)Jt0kB"V=&[/Qp/l3;!%<\>LI=4"uH4W:$GANIo$c<@G"`kC'=du>,,Cai&]oLE*5X(_(SKe6Z;OD:_?\`8LF]ibJWMXTA"e`"iCPdth7.WVR0ph.iMbaV,'ossfu_ekF%Eh?M1.W57)c(uLtha-_F$N0dH6%5h2ia]',1$R92STJ+,eR<`JF003Ub&*K:+YrcUB3M$LalunDS=%TJ`To^gh=c.2l!>!4/Ia(uf$Y,F4Wq6$!PZeI^!@9H]k5G[[pa1_BEam%"B>QtqT9pD&F@.R.])s3@'pIdYeDT/[;GHjd^4>p7G*Za-u`O5<`kij+ipNuHD[O^ll_"`V3UuL2K2jg4C;)21Wpds5l_\s+m[DLn9^%0Qd%\KlAnFMo+epYHYXQs^3--#?IlWI4CpaoBq`@PeZHAuoEg?7Y!q^pa>GaIH5`[e/SDb8fO<_d>)kn<+2.,hbL[o@1HZ"IDL^3eDRT*e4m)deid>t%o,&Zi3]Y?KCH]\W7W!S9KD>rbu&IQ$$_>)9;L:`ZbGHr#^(Gg5n37En]S,gh-[;UZ/ns`[n7!O:^R`mmUPO!R/eDZQ_mK7b&^)@X^?Og,e-6Jrj/+VCmBt&jePE(\iGln#b@XfOQ!X)A0nt8QlNV_ADLuWbaYS7W9D?>QhR9bMT>Q(Y4].nq9s+=?4KV3o"uU1rHY7Y)"Ou9*>`G>?Hm9J,T!UhFZo=STUUdUdQd9YWPS/p_B?EbanUBC*"U\$\h&9q]bmj"arGL_k^?^QVf^T:]]OV7_P^QtI+IQ>5J'$Pp&/+jQ.;r(Is:6rp[[md7Y%o%d[*G9Z;kDGX[Odi2oSB4N2s*q-;$g>b?kM3.TAVq-N\+ac]i&3k\&j+f_fa_Qg(DA^+V8+CW4&;3_heF;^CK(5$?\d'#*R;bB[=Umt8Tm1Oec'P8T>>HG%CKkY&0I>K.=P$ZMA%#)(f!m"b`[3R2hZMGYn#QZ;@6^L]BCFk!lK3ejjF2?gY2?kb`9.8AoHVcj1/<8*'7QLV5LOB!%u`u!Lcros-%>UYJ1!QF1@Fu\0Wj5\:TduMX!2F+BaAp^<>X*?hImbj(!$aioHu"rSu5*]1!_oEqOi4XG<:3it_95nD@"@:CB88b2p2gL4$.[IM1&(+Zq*@.'_5idb!U63E2GXGB#P?Q-diO-L@]tW-1f"KVTXHb]tSNJbAM?_fVc'>O9YL(0(mn#kR_HM>&I?;h!4.4VIsG4<4)>A%OC*h;^ZB1LT(GbdX.NnN(qbX-$r![$UGMQ1dIkl($QUB/O-Y(fY9#F2]?[n6m:53;qmPZo42)Dh7Ae02fIBRoR[Gb435K#sP@dAEZ10mslDP<@N)`.SieuRaZeDf9H$m)lra([)b:\hA,oGK0pfkiB7:A,e'H_X?'fJrqJVpZ8p[`IHoMoraOWUP)kO]X6o2Vn;&3GZXL7-@km_0qWqT)?>$7jWY6V7+C(j`d2sQ@bKo($-H^U;U/*+I!96C$M4Xf=G\]Gur2:M)YamObuG/A9@Aj2'\Mf#u*CVENl0(2Ru``!nb]KaXd2fu]^MVM!^u6]9;MW;2DERX@aZN3T/]H[OPcAe:0m'#;S;0TmETYeS791o4_kWXiOu_]na)12?.WYR4\g,V_96B^TB?c^ik46u2P2%SUD7AeiHY9c:RU(f8H)[\f[\HJfEHn)o7U'lS_U9l?Sp]S`.PKO>Kg8nf[T-NR6%L@>HD)*Eg/0tgHHLKl2q.=)K^DGC7-tulPVg;,[08-B(Lg+\+?s;NY"52:Sot$,E0UKSai_T8If`YA1[hgGnGY+5JYW@em*6l/)F=gZFG@F(1_\F8Yi4+%>l=Bs.34TC(,pT&/:AuI1_WFkFs-t@%pnq1JsZo2=cj,L>[GY?s29!qrnUH#XQb)g2!\')g35"t)'dk'jqf&k+dGD^ODl9uhrfWMlN=+0blnb.4e^9)5l+kNH7D4#[93LXZ!HYpd[0B)J%%>!4*Ad?'&T0GijBaKsKdp92-H]FV%o<.:udG8pt.okkPaKWh3"Y9`^0j.8=gLCJ474m!B4QuO4]q\eUqT#2b$,h^N*:$0NCF1ofZ_*Q4;A*^j]8i=BeB<`F`ZtZR*dlJnbHA^e-_5:ob\"i@?CU>Woja4BmuH,UhXpsU>GmKC_=L('P_on^=/]b[%Z9:GcXA3^[I2+7Og?9<3b4*(<'T5CR24GR1*LL!l_>W4n*Tj&dk.qFjs(,`dr"0Ej(mc.h9]re>+qA7_GkO2g2*IdT`!9J(!;.dG,PZK>$uFpgh3`ZORfL=^*J@UK%3_'*'\eM0j`1Yo7%m6f84Bm\<=Q'E+ZCa:n&?$@fl7Shl$1mR?$nF]Z2@FCPC$2h=Rgt^4/8l[injH)h'8)a2BuEXJ+3#OY)HmILg";9,]`3-n[EGnRl%.teDLRi-Ycc]'_Sg6=h^'3/nAt*?7_>YBAtPs7&c!kZYr_l8#kLWD[HPt>X,2/d,q?^ud4TFhAMP4f]37+\Lj8pocIrW-gLYY+9d@R"l0"]mJpjap^`^Q6e_h?CkfE1)uN=\9*nf*)"u0`t@oe4qbd//e[`(RsDSrrZ%#?8E+dLh(XdLO66^8:Pqdqf+5-E`i-K_343&6^(`QG=>[G,SesbG+kS9f65i>i'@T^748-I65\I]gc!rpX1HBSnVRd+6W_F;d*abh!mcGq(Y?];PEl&rtC#CS=*FI4^C_YUO;U:'!9Tq3,hWue*]1j"Jk%LtkKlB:P;]tGoP#!S:p:1_PJ3S4:F5kY,taW.>kE[(pU*281u]!dpDESMLM-T0:+]2pMGs=31k!cDtpBb_/U7E$\LnG8!e/Z6:)?)panu&='>/ok@h&9)??=RMILQD)f[o=L?ZE:71B2@CTq/g^S]#JU`a$(20PQiDAXT#_Ce_''..OY@3k&UD*!@`I'U%D.cju9-g1p75j&Ju4G_C#PCaU#:'@B5F3\g&E-"m.,]@[d5Eh)s3d0Lk'D`q05L*cRCcuA56TgmHis%S.]]?"pc$kD"&#G^GADF^ZA$b!WqolQXB@SD(;;*2>[,&aLh$?]q8U`7qo+u,T1/_FI1rI4(he/XQ,+t%9(r^jgIE3r"EgiMih"d1&%4EFWiUH;"gB_:XYESP#,D3:6IY*P.?MbehNYnHnMA46%[/E4-N"S>e?%TcUaIf$['*bNa!*_R^-3Z>j7iSul40]q1_MLLiIh<9?GrBt()--Mh-_hB^c?>;7BMDa1dGpoBhT;;=^CI#'Q1:A$J)/Y=3>&>#TJp8Hf6A`3C)ppUQn*Q.RJ`K6A(+0q;8(Je%_$>Gc"#q=KH&/a200MZZljs9T'4W@?#K&E=i\?1-9+[d%aKM92ADfi?Y:n\m3,#85I(ZjT/&EXt5H;)Ko`Gas]T0/IlS3j9-0$+:#(uVYBk3DfomM'HD'WhqX&)9?\6hnk'M@bW"\OG&UB($f1r2H,F/F'_Gr2(*5-VV3sHB=W[/,bgOVV3a\JbmM<4[WjU!LOh$hNG@Z2.^SLLfQ1-+)&#mUU]Iu?=/X<.#;p-V,;'i`mVnO%H`:BQf26[89n##DS!',/%0)='0OOm0!=M4QLqTe!T_u4XUXA+k[B)^lq0&4*f0'CZMS([*Inke]_t1QTN@fVD[/6g,%bObES2pN[0^*n;0^qi7Mu'W@9QW3iGlM]ZiN!U`-GLm/laPU]h+93suo(+4L)MpuM8'Mckrl;e[uq,7+X<+k%clkBA3o8Vsan@b=i9)f-Dn^'7QVg?S1J@4!Zg'nJF\T!8TA=YiU_/C`3R7i-g4V,0^cX:Uq][]R("'ss'7Mpj[86Sor(];#'E&0j:8*S4A99Z'p6P,lR?SQi,s/WDl<\(o_uH9#@INFZLWdCtr+'$5c&?7Q7mp2%7j=*moJph@m2pfNV15$h=-aJT#dj1^/)?4=?hBs]Ab*+:nLA+WhVbsc)fNkPN.f5a'Bq2NJpAT3-EQA2VsLCN3c7nHC!afq=2e>YaX!>,:%l/q-TU7jiq9\p2#PMTO*NLDl.ahDY38JU3Z=pA8P<[O>8f:T=CIbu[8SI/[G%jV\iUlH']bhTs63(C_e8uDR,i>^*7OZThg#pd3I\m5m$OPQnG.>J(9)-qEbH-qXo^8hfD(;#,+8\+=EM%7`P&T)GtJN`Y_#Bc*IeII>KMooU9UWW0K#r(#68EFC,;Nbmq]et(h.r6C;@!'mP5\n&NnPn4r_!o^''4!b@f?YL-4g`r3N4'S+4Q+?l>(rIc;_+fR7trC(*B7c$[bs,6IY6*QnDq(!EMF&"cakgPO!8>W,=G^oofYfgUJWU0s37_[-5JA4>j`pV#hg7g^Yc1.LcbmTPTEnR@_WOBA\bKKEc,`ib>?ckX1*Z:8J'A&h.HI?G.(+Zd"JkZQU@b2RWjk5qfB0k'79tN]SUQ^+%A:a6Ge7>k%2Q8,ST4]^aXjaH$#-'4A6d:0Lpu1#OJB@@kP2?/S?9,S$49[+s")BnKdR9.T:mGQDb$j^4uH,p8L&bjOTBn:*-<'ibD1:WJJQ#JBlnq(tY7`M!-XOgM!a3m%^Q.j,GET]bcjaq#?l^J3tAAYe:lpE0kAM@mhc**Eq:P80\J)PdIk70t,V7crS0?;u>t^5RRr6dXj^Ls3/16PWf$!P-(p],Q+nRmJd;7Oc'ha"-J%"c?qFDN$dtc?pAR$b],Duh,EAbjgTST:&7`&9G2Dc,UCJqoGe/?OU46OC+#`#.W&noi&FiWLo*]6IWj$Z3-4Z]qG[*3mg7?C:JWnrW\f&7dOnus3PL&!"XqJHA_I;u8c5dJr@"IcaW1#;!eRBjiD^i5[grG5ppYY5mc<`TiXN?d4Y)FE20eP@B/Tj0$(cVLam*oaYg=YEQRPIaK-Cm?)Q(?(pR"@a:Pu'C.cOj./kNsl^R'a$f@O>L.J:rp*"&[fXLJOHEnn>=KZne#%:IB(2u.*'0qlUk^i_P:?qIP`in3HgR^E$2@#t5k`j^VZrp+<\2+:r%!4,OP-TaPS?t<`bb$ohB.!Kg1o,-[%aP`._*^tdmX#;Z&CfOLbV_.\+$I*jZd)F>n:Si3ZX+JA&0sW:72u+8P$1lW\opm&8:8nG*j%cZC+hC)T7?RWZ_MiohLRmj]8*nh$P;atf@RQ/K_*J&KbX%5R@^t#L5mJ!KRu`-.ANgF*76<*A(^!L#TQP+mY@0g">X:XiQsr$US,ob[7Lki^Kd>:[WgRGq(Sf(VR/l]3(jk9'_"G^sXR<42HMgLo^;4+,JCpiLYMu(,uI$8>m^W&V;]);>1oQ^dVWOGk(0)g?^R1l.[a!.ZQjX^hsrZSkk,Gi,FM&AR:b1/mtLGR`MN<3H'Ile!JD,\>p+=ihO0(a1:)C"Ra3L5/&S%@'Lff/tct?TK4bE!!LLuB%[1*i^49Eprc-9(O2IU(uZN,7oqTU.A+gF)!OHb.FgMSc_f7h.T)\o%`uudq*WR)ffI]F<26/IicgJ33iJ-n0i#Qt';n"d8]O3,qqjJ:59dJ3PE!.nUGh6Y'9M42&AK-:`OZuQ"(flM_3N6fAXDKT;i)]l1n>L3PAIGQU3nNTb@O&Km(OP^Wd&d9f[4,;`BW)5`GocY6,d>RodlnQm>]u#nWSFTQ:n2+iDX']HN#rM0$hTZU(2bZ\^rFP9HjNp_H50j9VKST8l7Z1'3hC5'^:fe@C:8!kGLFf-r-mMTN>u(Uh$_WLH#?##M43k8r'.UN?5`!l>i07$,fCs8h4f6>3\g.g9RZktde"<8*_j0nDNm6/Eqj?e=g#i5W0%6M"Ee_'L(KH^Rthmn]QPjo3HoKb\'&U1D0'*K41[+X%qUHeK;7;K2KIi"9LM(e=-LnQCU6aJcZ;BVgok1G5f@@Q9WCC?0+Qf1oFoZ7/7n?:G#cE6oU%@.NYf8m-\k3@uWIg4<:[LBraKW+lC%EMI"_hEI6\l('BBr3rF"j$[!^c#I>R3psI1AZXYYd@adYVbtEd=@0(@!@=9\BM$Y/Z3mYES:d`U*XR2u@=Am[l^^^`9aD\C+4/Cb8):kmVT[17(>iCK@-IdhUfeB9^%'1YN8/sdcuc-tYJ*[^;VOSV&RJ-cUY8ARsYJAVRg&OMAQi6EbG08<5?I*S+]]'P&1j9T,YA`QA=7Xm*i:RbnnD%q6#]XACeD]<9=\iO#Rm:6=5R/??rSh1L.3%9XuEq"VZI,8uu)e3js+Z5;'Qd?We!qMa]7K(nJ]EnT.8dIAB]Aj]^$B>o0&m0V_Dgq-mj0-<"*CWq?^;!M0.?;E&l)lQ=P3^I:C6)9Vcgda3.t.#F'J(b\UB2O+iAFf`iE-C"%pfVhth[\Ro=$c_)bl+s'KB9^P9VBj.j@G_O.SOp1:,CGt@mua%]AKsH.fl1UA,.:ARpTra-r2!&MApt2T'3\8XJc]N]Ck):&ftd9h%l1P6)N_c7?!f(*c&KSfraG7s1D/Afu5V;P^WlItp7\dtTh'\kL:^Q_GbA$98.mN9/bR.r?h%nTbQ<W,Z4V6,`R7`M;BN+`\hlf[M]f=.RhEfrEV&0o2N?59#G6K$(P%V!$l$jF1Iin`UL'^e2!%pT'JiG;UWka?o[!q.19u[,j.TSLj,GVQ[&e_S=i,A%FJn9W-S2`.\!#r[-#i5V7E&'Ap5G,MK9*le5=MG:IDBHS:p%LOPCS&S:7=&P;(:dfI&*a%5fT:#ICI*N,b2]`@`LNd,t[5&_7+&m$gl3rB9$oaU#/u)l7YZWqM>"J_?Lu8Dsg)O:G+hPA-GYc8icO(u\LQkCG'>o5]W:;$X=SP7'#O@Qqhp(ZJdFIO?JN.6$g!r\Q5s2Vk9?ZSlS2cZ$;3ro/]+4$&dE0Br^Q3))N2!63h7hd8I`0!L(W#[66QTd^hj?[_OOk`%c.BSd*a^E&e6=6IBeGs];"@%Tg@b)1hM,I-\>mb&L$S*KfR%tk-_PBR;$c37"a,^`cE!rC4J*WF2/hQ"gpWk`+k4X^NA_JBQCP##r*Sm6cF]XVU(H,#,IdF*2ZI!lB8Epq+8ce:QoF:3rQI2potKhq&quqa+[UNCVgM])0Ogl*Q,Y$=o.q(J_B;6Wn5jH*ipO/SZ^0TM?o.H=`r'HefSu,#TR^VL^?HGl_J7EB;P#ZYA?YJ@_i9U`&D"RG@^`[Kt+$A9:1)?7.lO1m.K?4)Ac<1otmJPY#;(,#Ta:)Jq\LCM\'L58?$SVCl5'n=kErpOC9:bfi*#P+%HbT7#>qT&"?'/FKp+T%&APh"@7\4=^>u`GHGst>(P(u2+Uuh4N!C5>0Mbh9#pVq8CenD"6@@1[+T-($NiFe!l;#921>AWdfO56m,?OtS_IP4`W\8&LJNc8;OU2>I3J/H(P+Z:ZQahtLYcTgR\g[AN^?3@ML0<2*SWk(rLI/hK^oBPKiM>JIU*Lp4LquO5*4^PnEG]bb9HsIumI;.(n#lVmmYDYP2Q)'=T.O!jI_2!2W>ua6O@C^I8:Wb#g2W>g1O5N[,Eh?#']`'n'&sM1e[uR_;N&p8?bs,''.:+C4&,kd4\u<)aNHX1m=,=omB$hKGjK)!!kf(ZDnsr'8It'9S*sQ?Cr`;iL>/Y;NiYtOUfd,GS@EM/W.9$aj1_PQoP*5u4MPF"cKn`8IkGT8XLHGh*"-B.C6[pclcokd7$,+s%2m`;A731ibkMrg2p]=np2XV]>]Vj,1BrpirVUH(7K.QU]`3DA=EY3\tO@L:A\c#>0XBFQtKMWp3M_/j>fi#K*5G7%nD;`(kJf-ct6pkGNbU(#^H,7eTIl[3Yl!K=a4-*FfD22[rT>CL/fT3WlD`uQ/ar"He1Y:LihC,*)Ie:+((c;Rsq-AE_qiLCU[I@9dQ.Lmi$$&i9c's'YU:26h'otL3:Os-cUFFLlR@7F3\3W&DhjhKU7Ci2\Jm"&CP6T#^B2Kf=QsPra_+cV?FJ^l67A=Dbj?!lP]/8oU\/%i7KUDXIJU9^AT-=@qCiYgk_41m;DiE-#&oG&2'jiOPqbtfq?/sGX!@rT_mlBC(T[4^HEL^59#1#W*Y=e>!cdEuE9lu7i_CDL3Hf!h2QS>)B_n*(4o/PYo6ic.+)dd`Q_UJ@qu341GauO"mlZ1aF7aTsVAnLMb?7iA!"+fPhmEal:#(ojWA7!9ES@g(B1-uYW:8qkRm1&Sh-Ff&o@BuZUi`-,X!DUq$gmWgM\r]oPTk5h;<7>VIOsNBlh9Q0!\ppX=')hQ90+Ym5Gdh:APl/k4,`=CeeqYr>aFh/]ur*k3F'[\of?=lcom'4dg#)'S6ktNY>1Fs]4iM'_fX6s9OGNS38mD:9Cpt>ehL_'Bu`fokDkNUZsd=8&=.7;'i[A5H2K-h(#*qg0^Mou;W(jig*?F(T7s>#B'>X-`E&Z(2HLn(^uDl!*`1V#rOg>2iju<*oK5ae.XSUkF?ZsFU6LLtKsl%_j'Dg-^%V(n`7Bt%4'^oGNuZkP>^G$D>+^SB(th'(c`++B)0B4ZcoAIW%n;qK@]gs18;X6CI(!,hd],1T)U5RA0$OjBn,Mg#.=GmSX9Xd^*Ao!OC`7$-`^TnhG0.EFN8D\P`Tj,sMq^#:T>n6"M#0ZSD!dV.\:q2)13:^(@D,HQWl`tTBl>Xt9*5b\B\Fg;@e^O(Rm.!..UcSmB_Ce;[]2TGR420&7g.`jCGn.HB:ttnc*kB[I)f(A$Vk4:?s3K*Ok0K7#%ule$m6E&s;imh9f@jT;b&>\qr;5?OU)@DiO@!@\qD$0a)38C)[^J'ch45lqZNCCXfT"U5/5_-ZYmDT,+ZkE=?N7>JY&D_M:&aC`[`]SbGsTUVC+:1+a"P<6R>d07=`TL5;2\q3O\:%&aH*cN;;2Og+R3%WjOJu5cOe^'j3`G%:G1ZFru"R-JH>Zn,RGM=4MT)mq4:\DUuG=!)7<"Gp!$3e8=+^KCEB9RBsLQ;QuQ*bEIu7q(6?qZ:1MrMf2^F0I#\f&;`^eR8^@OYR[/h#'PG&C>;d"GKjseV>%(og"-?t3&,-Hk8@?W//;PTg*MhM/!t)&%/^/3_tUqK9Wo*PLMHTH,jeOpD@JE\+OT9r+/Cis(h)4X''WKq":8Z;AN",$n=L'OTl-iPZ/'EN>L-mTq\dbYqO]-ZA+\s`/XG"Wi88`n4)oNWr:X85-S:NblHcD`:?`n;Vq\*LK>aT_K&ApMiWRVuqi5;spgq12FaO/f3#O0cPPJC)C/p)@4*NH7l,Cg+<_4(Yob?oC71iA^n6RB6:X2=&`@*dskC1G1Yc*,?65FR3RtXVm@uonCEfHk=]uj]N;,]>^3;lj1i4t7mRl/b:1[d_4es.*KM:"PBICGgUNX.B<;/.DW>td=#DW@kah"Z@<=.2m#(G6ASRufdG`:Vqg1a@(Y7$-@QaKliYeQm=]<_Psq.BYV"oWsE82f(R5atjYT*f%>KbBskY'+^_[`DNS;ekVSOZduLLG52?aZkDiLVk,13rbni/9B4c59+0@,O"YquB8Wjs$[-B9KX>@P@2^oU:Xc%3LN?qaSJ:FG0.cYri0Q>!AZ"Z9XR9i$[+/)As0Vd'_8/08F\dJ0K:Ce[JiYl3rOOIX8/CCs(Pp30otulLT[YJa)m8]K%TUEQ1*@k,@elpp\ADoGI':+ri4iUngsEl45i%`*220&eI`>b5luNpSNLW4>C=juMYpA.amrlBN3>"@IOJ_!UP)fXS3aMt/s,&qK*iC)E?hsRp'?PG&pR>)Z1nItHVhN1Xup-KSgjJGZ_TcG)%d9.pihbF4F"/R-SF+N)DjRV=]Ak(Q+1uk@-]u*,;&hSBAS&j!qN7s[E>1*]jjp1gH1em#csQd[\>)9jOk:f4AIYI^A+Zb]0D]nS^sTkWbROlo]8ISCFEEfdPs-C:Q^mVfkus'[imrO]Kr:R;,2KCMh)_QHRi"b!P\nl;'KVh":C]/N/79TfmdtQS_46LD_9`\SQgLXKWE%U!$Uc/.i228#):m+*M#@UV\uS8%51@PkLZ1nB7$=[iN(Rl:SKIH`3&RP]3',SC:jZnY[rf,EF'R_5CeER62&HiP,6c=hZJ1kk`ToH$*tJPI_$%+-f`O+-"u'grq,TbE1.[T,==9_LHmp?5W\IIb:K$=oGk9Bn!XPEE?Ep,?'Y"d,hLaR[QO$e[b)Woe:=88IGbhXHtju).2mQ`l[C52&a`J#0(Ao*f#K5\Q"SMYM7Y6/S:6L9UQ^E[1CBQnCB&C==n<<1lFqADPM+C.\Kg4im\O@kg?Y\D+XF3a_pF>Fr>*4<"n=*H>rO)=Ml;`Ko8ZKWc.65Ic('#c_B[3BgU[go\a2+H#g>aqCeYFhPd[f!RMh0_^E9GBuD6e\S9%4940V8[OIhn"JWa!"T6qSL?1*>mLc6:eZ>qM:@KRNlrg+2mqonsrtEj6'bA%E,dTqC9^P+N%]`A[*s6lB\DZ/[;>bU?)3A\mjKc^/;ui*0FceB^d7-*bg8F=R1sBB@*$.I9@Y$!R&GOr4D^OAALEP?6`tDgibsIST?9n9qh@tWQIrT4?2N#?kOWiZARsbY+qLSHu_5IVO#<*X![3&@aHod/)qD?G>tgL"991.;@1/<@LOC2R[`u;SC-V_;j7U,P\/-1Qm-+CCTeqH!/m+=R9b7UX.DZ'#grBSMiqBFk,PLJKuJ2>fhpnNi>9FLum^C@p*p/9s?EfP:U3gqF,fJA1BS%)E>T4[fY"gJj`tZFS\dN^$M@RkWTmG^&dVbG^L"c(r0/l-q=f"*@Agr5aYJ0;Tt0ASoO26I44N?Tr2Os8AI]Q*bus[F]l=Jm]-^enkOK^58b@G#NJQb-\j*!_lT'u@S(n?DC1ct!ZU-EfcOO;@KAG-;9mf`6UT'ZkG)5)]OhK&Ums[n\4l,>-g5?-2-#tr$lWH>_j.jU&B(k9c[V$k"5F\e!X@&te([brANIenYJo-*?jS)4K\RCDljuC>dN3uDJFoUR#m9ibdB?WMmr]qbF#i)A?Y;oJ+)crp*F&RS+@CPd!CWgmJY<+$b*\ce=9>"bmiQOL]sW=:FVGAL#M_P[3WF\amWD1mGd-?u]1KV%OK4U"d9Wcp*El(5.Qh42WK&?dG:';I.#S3"-GUnOgi;JGp<:!!Ph)97jc2n).2f!8AHWa8!fqN(Xi"aU1qaK-3qk#Y6>iYVajBj5%Da^9eU\AZbg0\53sjU>ld8*ar\Z5KGA]abg^eOba-4N;GKm@q@D"o]@MBJ;->L\Pp8Sq2N"2Hb57OlV.DWmp<(%p86aD+(Nk6peehIJ=V:j#DhiN0(GR*FP"6bQ;720!0PHX7Vm()RS%M%H\Yb:\@j@:%[gIC%f(t`hOrf\]&Y;IiX]^U/DDcGZ]4!gVZqoZnS@=kJT0CTc^IH*%t))REpOE;Us&@kt1?RIOVd`Tp?4q3]TjQq>NIh"qekNcVgnte%me0&ceABBikp26!:7P6Zf%bCCJFUW];]Zi0tUlm2I27OgI?T,)"AWo3=?F<[-oNIP$rEY0OFSamuf$]*3:YeX;,K=(qR\W]Pl2H5"bWJ#$;KdBSYM[UORg:O!AU#WX?<)_V*4O;Ki`\a8KfJf896JT@en$`2`+9^VJ8Q3#$m="CT15,KIHLT?8N3)Vk@_hY.PQNa$ng`k$*#R`+ETebd;@g]L2[7g%Lb/"#m9"%;^Vnmhn0W"W&gCS^qr)9=!,&5Q,^q.bl]u>8o?ZStXdN<`2R,G@bj:=^ElVd6f)U;o`;/3a*cDPuoYeWn`se`1@P,e4h"5ll-i("KZ<8Hi!YU+IH%HUKh)eohhi!.\K"t!A4$"$-hm7VmNjbp*BbIP`W\^gX#\unTVQ-T>@k41PK>e_FL;\p9D)<)Itp/Tq`\;n]M"cD>4]G\A@C!??]-Fr4uYZ4:3?!D-rWRf0c/``Q?8so;@_,I;l/N1*T,q?Tn'9etbHlB1b.?oDi>;iB3JhTd7*I*>X]&n[%:S#c*M(0j4eb^cJ9gteqTN1,C(Q%C#p>:.h$K;Sm`5Lh.28<:,M7>F_p/*$a>.ZfLOf_,#>_^U2u-bbq)(ogm"_A'Dc#mdJb$Tk,YTHakn)+l+@N%8ko=\i%9tt5U"o1ohOhr;+.a&/i54sFaVTCL^Zd>sj%?s]!&m;EKEZh;YgOq-M8/,aDY-5Z%kfC*H`6WfN:utr9D.;H`Eld?Skle?\iQW"67_/L8>.6hDt4[N^'B.*WJA[W#ndhh>8`VY*B!iblHOM^N=0aU6i2'8#ZusJkb,ra#"r'<4XiD%Gu2]S##5ZP':0.k)O489e#1^EVYuS@4H-'2&hp+F*/DGNoB\%_O],b6U#O0W1+#Eo(^L>H"bCUqGp/V2aX!%jQK^E9IR2sf*4jh9c+QM[A3p,`:aXFMM"(XC4132[S`/Vm+lh>\kY^IcXB?,XAhW3EJ,6Vf^,PreRf$7Wk1Em$WcUF<_Baufl/1dGScRU2._Ebc\@02Ycek18"V^5cI#WZ":`kk]H8=Tu_%hM9naH:l#M8g5]^j>F;gm!@Nb,uSn*nZll*"AtJ_4MGelE-XBH7J4%65-.d7iFm7iP1b3#o?\NO6C&^06s#i=DUcdq0]leTPcn71AJL0YF\9V,00oW+\P66pOB8K2f=dSDViHIaC$LK&.0g6!fAG^'P_F,Fl!?EYijNm/6/Hs:fguUL9Zn."H8[f+cPl[q-&;K^bn"MRaT"H#4FQjDnP>u^?c[j6,>ap+Fu>\#n.sd&]X=SS_%E?#?nT.NUGD`--%[LlQX8.d6(r(Y1bA?MXImOYk#@\0Jn?Z5j7890a!BeL.s&*F`9T0nK:8_JXU'nL556$6_!E'ENah;^;$"lVZ;N`*]IOt;M5MNREsLX`m]AmZ27A95N.)+r\fY>IS#JJ@MjWm#$.R%.<8US4ZM[eUZq;$.6[(($r;0)G#)aVW@cWJQ>*@Nd7S(K6%Xkk.RN&87M6YM9lNcSe7bjgGmYnd6#d,M%oWj>h*/k?'76[rB?c;P;=%]^Iq;!)lI'q\WnocB[j&!7D[b@a(c3K6K^gVdc?$.pol?:6#1\&I%i4?,EEV@_TE\(Dp8(0Xm00]#]Qm3'ic5#$E:>NTe`5#[W<'@DW%(+L0MFG'r$JLA-i+jBa%Y\V5lg`5<"OeRoT1QliZBB+D9V>(BiWK_pjWiQC@p`I#\kN2h&Ud*3teDM#*cp5T=EX_9H!u0_,\5YYO!DGI@0VO2PB%fN"$CT;JM4bi-0Tdb/6/=:5D'_kl)%L(Hpb>L-Y_5@T:PBU^VI-UdRmZQL"9*(!SYMq/_kB+=,^gLL8j1qL+h0)+"pD*8:5(P"&GGAP".RLCT+%r4cV]X5SeB!gpkJ+NcG@PS5OL1:!N`[q0_R(Sd=`D7nbJ/o2$UVdV4lL>>S-jYcuUo!Vd#k#oM%/J#oK=:O@7/"?n616;#*"PDk6d[O';4A"RloXb$(LfM2YA76:Nkjk=BfG3X\=GH4"F_C9c&MXSjt==/lGfnURH1giN)rQ'"Z7&-MR#r?=Tu+5E]IZrRnWhi0(I@59*o5uSAi.UkAqIN9;TbZsZ2N!ofnVmjK&p)Y@n\#i[rTm&I#Apm1^a;c/:fJZ@WS5A1Z\F0!EbEq-Jd+kZ*:#L%%+V:Cg+9Z)Y#^.p)#5VJH4pkSF'j0fp#:,UgSCf-gg0dQJZcQJ@(-5<32@4pZ/g)6N#V0IT2K^mg+_G?E^T-.I"-.fd)6c$Z5/\\s?fEG2]FQoZ:oNsb00p^o=(YEAE>NMiEeT1R,FKac2!3&Ch3PU&Tk\;%1ST`\`U8ph*k=ie`nYfnHW!*N_;G.Op9ptlq0SXk3MiA4-g1`M;B$XWA>@?Ia!gYY;+Y_8#oeC;0,A,?!H.Fh7)"BAO/*>M)_o6cW8!cjb..`*c6KlrN0CY@8F-M&8%sA:AJGj'iZdhcpUci!:W(R1I,Zl@0a9U(o[%\ES^&I5Mc5`NnE(mQfW9AP'_<:i>:@[U/YBQ5;$*3]_SqJ.,04pko(dT`oD("sh$1:M`G2PMC,kVlB^F2dnA$ZCKg!>c&[%IuA:m3-4R0E\?qRL%-0pP]f2\fnNQ*7!%++%0dIWK<&6oAf*T,q<90q+c_6J9fp/5ZPuktGl)+spDKQ:(.Z,`E1sKb7\p"9t)?9IA'`B":P:pD\PDmlp-K,T8PMYkZ!oWqm?:,iD[skDtnmgL=:5@b&?nTani:*MYso_jWhl,8WY6l`LMoT[sQ?%<,G"hGHElt.6R]D]sXVM8%24sT/i)J&e[X>$-q5=(?Mep[6G=`\WN"]+o7;K.8aV9@XC]uPn')=C_fCg?T^6d9tJ]D+Rptb(Pj.j7LaVeSl1N?(r1)sG_,quMG_OF&`%M`$(F#d`0"i6MJD/ShJKXMD1kD%;F),qa;_d]mK=Ek*p+C%_FM525*b,Z1b=qBUb^ZLFdI,5NH&K2Y3MqFTi_1P'!7^VXF8hN4@Co]^:'OF6N1U`YU19RBD(Q5,nB@g?2!=#kn[GEjBF60#,.rl0pC`@#WcK2bg!D4NG-FdQ`eKRc+Z]*<"VaVZ>q'B=EAXQ'0Ol4-[k7NfhgGF1bZEu6%eR54HFJ5-Ro_%_3JUQ"g.MOlaZR>`>YSN\D#b`h7MRl4e(LX>'hI)s/]NWrdM0An!A!n/V9B`+&qidlESg4`X:olo@C=dP-;DZcHg(15GjAYg(,r6s5<>H&h^0fsl/LH#38St,)>qPe#l/(^s%C:>[?>5,Fj1kUB*[\f-tSpI,,<\[I-^O*n#SYg^-hVJq?f.8F'6UEZ)eCPokU5Hq$,7.A6epNNZBus86-C5sg=F[(^lq;efB8t9_]5Pl7S*EArf>jm/ZG12hUWTXCma>(2GP>pHe`,t\'fW0o1R68CJrDIo.Z^X%OM#[\-`Xn68tcJIU_2\UjeRd:]!X&j+`l0AKi3,/,uWGdMoQ8TH!aEc46b"5c>./]<[N0t1kW1IN$a]-/jZ)*2RQ0&(!>nZrh_3KUqOqUSDtf;h>Ln`&4qP9Y22HQ:SehJCPds&&EtJtn$b=>;uT7[e*M`nYLrn`(c:D&tgein75<.+/@j&`FJD2n8s0/kdt^98e=A>tK#ftU2U@la-tksO`a8kh\ENB5.V93XnFl96m2PH2lT6M.Wc='Km5Fk\#0*s(pK4%ZrR%AekNWOh-)#4#s)JK39)il#BL"MFL@^eU\7l:aVAb,1i@\7;%5;bu(<";0?m64Q"6rF!D`JFYE2Agb(kd`10"Yps*:*c$.)lN+(Q=]`h>U\]RBt<8-F;>U1j4GkcL@o#0oeX$PU4+@(]l%`7L(QR2--/E0Mq^L`>"e0l9gZSi1'eM[Jg6Wi=#"2GK8&C-j,%:^^mlc;WsDfGspA_4So0!4[30HM/T[279gh.,SZh'I?\r_4r<"@d%nNW/m>bX"f+D\uWUItlf9:>sWuN8&UcY>3[F?>BDm=7BCsa&oT`"&i]6)RTFrE>^9$W>:b_)3m(F`me)Y0!&2e-AU([$W1+NOGjH3a;oIsQq;fQcJ[r=p:0Z8Z*FGaZ1j@)P.KP"EPOs5^QahO1_.pi4:;TMqkk;kLftR[mBMi\=YRORFiuk]E0oF/MfEB(>f-D3;S't+``*r(E"EGS'5.58PG'^nF$k<^>kKJjr[%joeLU*DsLFO;ccaWMIlNRH-ln/G,!W?Ejj*X$@!!PihE)@$6M(K6QO,c0:0o7\P5#N%?Pk4S?9f^:_&_Jh?ai6!LC6_u&M+qu#['Tb/1#tGUKrS4OP98XF^2B:.qI_Age?q41@>5:Ucao=,?[,"<-Zi6$p$;\RZsdD%[m>,[=Ye1t!PdX<6@n]U$XYR@U`p#=ukm?hfm,mNE,Li=2oLFNcMX),fgTiS]=t=%Lh_q[]UKC,/[#9jm-0>G37q(\[9]556%O;aZae*:KXs"[%?'.efQQ="%Zjq,FN:W'6NC-6U3>r%]ORX%O2PV@+k*Z5qTZ:QZGZKlDDZp@gG@cm1+c@6E-dN/OmC0WN`uno]WfJFd,6SKd?'trT/Y"H=>VhS>afHaN_m]Zc2B7Yk7J6V1H*-Ue3t*,_S%o-7Hf#Y[Q<"hJVA&fU$X5bc@\c))hNX7iFfEZ\8b@l5Y2M\X:^!n>8[T"1rtU`P)#7-*F',#fZ`V(g`=QD'<\,U'5,NI2,7aLc-81D3'_GIsO7l$mZ%[5o[iKeYGSEF3DH^l>)'ZC87Tg?q/:"Y^ODmRXkMG:HG.!*+V3$61Qo`N72&(#NX93u0BuN+OR7R]1GrRX$:&9s5K+^XIaFb;#p:`2PgI:]->M%JQW_1ka[RS[X;>[j]Dik^m[U"/K\\4Xh$M_K8Gaba=kN]Lt:t_\:(C;g"NP`?[^*m0+i*Lo5MIb-]$\gT(Q[i&VkSCk>QOBFeP`3!`(h$c.I/@*HFWHUHc`Ll>;d@:mk2W)@iO3ed(L)CgS_o.D2sToA#&#MZMZ`VHFWb'-$CY_BRkV"2A+*pPQ["i.&4.`&^hW[b94AkopU=40-*L?8tDX-TimI)%d$@!4!3-\[1M0Q?48=,=.^i6*)<.Z]S?:^[(7)h"idfu\2Gc>@D[kQ8=Prm1ElpWUe,&ns"M$*aRfrG_YUgUbF,uG-Q$GXB#]'V.H!//4_URT'BPf:AjfD3K*=s"%@_K:jF3mEaQT0m+[gEX]8g__]Js"7+c?pE&JB+p8BB2h./0;JBLKF+#^.mEE./@/#nZc\:m+.:TR7I3SfCX789>=Bcm.]0Fk7)FpE:T'\+&mcO*#MY:VFBBdASdfg='qR$EGUiX9`sa]T@'EKmkCZ[^MB-6P,ncn&ja6lHaCc!!!88Y@W)_`g01+h\+-l^UFZ*\RcE$TJre\qLMu>\urL?.TCap*il_ZD`aeO5kVQrS^M^jaJ(\_L1VW;D"K*\aV1=TJfbMKHmBh(.ta!l@0fMObTp@m()2"gG2^YYkcD.:+dldCRs+<2FX2>?0,75*.NAKo`+W2F$8mla)C$Fc(i))53V3+L1>9m776%DXmWNe:!d-@^b)k,a+gXjmfc`WdQD%%2XC.J6+kqbnUP_l8SU_a;S]:(fZ016+KeC\]K8-J1Pk_hHTij>t`O718$$fO/igo.H>B@L.g`/$+#L421'CFuIl?sK0^PWpKn,'XOXh=;_r#D*)gh>9!MAar*][N/:e``he>MFH_$k\(AK8QX:jDaVZ!`_'sFq,ju%0?Yi;oe;/$gjHX#JOF'HBnZt&BY?)q9c'BgJ-Bg/Rq.Xqu1qC^SV8%:;WT?Nat$HLRdf)RJ\1J5cO%un0,rGs1)]:1s2J^.M7PNrhg7R(L`O3UrP#M$EEt>T@?QuVBN.-s..b[K&8qp,)[9ei:/@C7HQA!de^Q"N;"BLf!;BWoNCCqlsn`#AEdXD),1gfY<=Ad@[:>+4AB0<*#'$Y"Td'$4:Z>uK=HU$BF2UAeg>C#)>?"Ig[9ES3<)ACL>na%H)a*,qK$tp)Z.j3ciNWE/ZD>Ub5$TX6Hs,Oc$jM4?U`pUc\0^>3kBNi>Dbh$E4:L^^#"Ai'*M=LS#@5]]%"WI,H6tV:Z!dZ(U_9u/OqE`Wia(El(W1U5hGBjc-kU'=TRhC!-tGa@O5+.AJ"A3Bj^JorJ>))ENnUD7J"hq>nU#qGgcH_^/.!S4!_C7c]*\<7'Nkp[2R8ALhUD`sl1fea8i_UW:]ukH5mTl?;F-3F0k*HD;s$j55ADBg-5l='#P:P5ish,L`Esr@6f`HQ+ClOn-OSQ7&;.cA.-*6(WaQMn)7S@n*IfP)c-!V;bh$MA+@X>!/#*0tXCEbhNB2iTkQo4qXapEu&?]uuS_sZack,&MX%@p"naVK>l=FVPQ!7\Ju)M`tUJj5Q!)*AT7fI7HU6cP^">``\SBl44ZnLtJNa?oSGJNa("6hKgCLV(I>DM<1@%RLBY&It^?kKFAmnjGkF."jm=226(9BK5-9%26iomM[bin9r^*/&e\0^7'1.W(5gd>NOCRHC+WW/eJ=.OD6[c6A6).#Pu['!D)J&Con>Uk_h`m)nYl@VC5SeRcX?q1cU&TDT6lO\]lO:MR`m;oJ#>V7)(3W8b9T%n*"8S+TgH[O9dkJlLi66Ik'*Eb+%L^5g;sR$oK]%d8mEu,Z;gj(Kj]a%Eb\8\@*5!Ng2Z.4o@j=g,_odDLbV:,p+.FK/-c4jJ^o0EmY!ig6jODK+=S)C^aH';-%uDSr!i-CIR0p*GE>UB!Y^o'rGnk!2%e>eGUQNeK4U5".Zm@8@Eo8c&k,P#!/=BiK2L,7R$-S-7:da_>.]+?W>L_tZJ&$;,Ce%aVR9HO8?Or%@3[Td;pV7tV0@'[mfZH-5c/@NB+/IQ9(ZBEp7BNbcm/_c:STksAA9Hj?nfX_!uOsIO;`kYt>YZt;L(s"eMBZJMbm$"9kWRID7%cVRU.j=\D'=LJ&_**eE@Ncp^#VuW"D#f,&U-*h[-Zra]/jL0U*I0(X"k_bGW:]3L?6;;I4@R-nc6T_,*q?42Bqkj`,r)TRR6>?S"0%%p13Q!hpD3;-Rs][_C3gC>R[Ap6sC)6kdX/`SuPY67`D`_D$K]%rJ'XNDW$hLGrl$Ne:ja4HIm[>V;"AKIu`kCcB9R2=jiP#jq0RN+o@DHPX/$W@JRdD620FTr?DG>:Qs;[@'T1Ld_@I(+=i(![<5ArMGi((tq6Km'">B5-bG>Lp*t::.)Pl0SAYg`;WXdKD0:bU$ans7YrUPC+XfON"#N][O(\s++bUWYc#L[p5mrc?!3;,lJ+o5Euk`dPCMbWfnH,J]"12_'f=YVBYImZm3U?9Il36ZGRkD<0kTEWQdX7O2(ABYH;H_a@7I+lO2(:H[j+e^8Y>dO.B_5,tI75X0(LO]F,5'E\6dSkT[0"2u(0p;?JIC>7ss;O4V%dA(Hhf@SRJCR*Rq+;#lIY^.h#h9[Wq$r,ObAB8X@2m"-QF\1emHq$^t[Iqg*-udr(hDcD3N\f78g4'8(KG3bj.%^[W_ab5p2]j6?.`hX$(LcCril25[]7fek2/\1ZPl\Di@%dR"'mR0VR7nAf+jkd`24W"rVDcSpgC>nX7IffXN>FkTVBA7JlC&gNcU!'aS=L(GJ9,f2r,mWld16]oEKF`$8@Qr+>fhK77!5qh]7hjgH_4"d)).T7,m:Zfgf#&*Wjo1^8Wc3"2*M:k[P6'2cP!]7\`H]l?Sp[>`l%Ue;3Ku82tU)"BTOr:fKX6qe]4.\Zu^#"lG5*]HbGt#1H$CD&<1BF4\0CSg&C:XA/&3nSG%jb0Co`Q]Ep[nI7L\b+(=o0"NJ'kpL@Tsqb2g`=IkE'`R10<9L?4l_Q$]42V'S.5[jmBMsAT=8jIDK\$UlUK?PWr7!Cm>Fr52VKOb8nXpYMb0*((Lf(Q-d\I+8;A3s@O5[$ZW7Y)?#pa:`hj?Rh7G#m1EHU;AK:+2qM*[&6P>d1+0H[Al%g(Z_)/.Q!Le)A**N$RFmdF'0SQ#gFHWc>j\IfZg1n--*+!G9PgH'imo"?INU*7t?csSQegF_6`soTn5f+p#>fof*oRodid73R6@=6jMk3OYA6)X9GeUUNYYLAI+H@S@g6H8C=3qGm57auI43F;@NDo'=tVoMr,1C0(rA))cRU:.^h5sX0)R-AC4Xp=8)U:?9ohj_NtqI-G%VekdIkhEslYhT@\N)(9EOHN=/DH)"20AX@GCR]TA]\>51.'kc%@8AG;D??Ij+X!%&4s.KU.9;a#@%.o[W\n0tR^?i9g2[PE("%hF$e<*fr>N/M6L;58T.n;@Ak-AiVE&:+9m5492g+=STI]8aCTpIG)6.`lN$Y!"dnO#CCb"3&PE`JYBB4+$F-ec1:Ti^PVl1P&W1FIr.A?V$:@=>AAE5h19s&-:KTZIlVbZJ%]*C,ISFg1Tq#2;t5WtV4jrDj(%l*8k%YZY+\`OmLP-9Q+ra%%,a/pJ0]tA3]If!6(B`aAmQ:d=GKIs!r.1nfq65J63""gUmMZ>Rl=Yp6Sp"#95,?nddS)#FjuEQgOOYc@FkFaf8*Z,qrG`KFig\P)-;5(?-bY.qqRHc7`Y+`Zu%rA*>%\T"#ak$AN>aO2WdT>GXX#3'8ulZ+4m`&X4ALI*4XVk,K>?c$;Yi679.iq@2Z]?j2nct:"52L]JcOA/gWhGoH*@0FB-o)Q!kYjL)7#=--9h8l'OO@k>*7!e!pW&)U79F$p9CH;9sO_^&[kC@]q%?T_*(NW(auCi9kJY@\b:T@'6)JQ_*'l;#?mu.jTs?8Oel=`hRIQoK'Y]5+`Vf2o/<[/W)2Qd-)R/E_*tSdA&1Z"OL:_E(lLs-LN,H3*(<-=5VcNeMFOoS'Zmt?03J#20tIa]^L;>!Bu$U4bK4dO-[VEFJ895&[UKj@4#:P^7pdS4fqI%l4(S/AAr$j@V.#*g'9SCA9k&"m82j_p$1$poOHZIIST`6,JL=!>`d$jIXK$[QL0F)"Ao"?,(dn+,`G8$@43$mc6/r1a!)0!o@2.J(q*gi)$jnD0hfV&MPHE+h,M]3@UkFr-aoDX2:/V[[k0Fu,2%KD"")CA432DJN#.hN-o>Q2SO4T^'./gZH\8RVLupQ)-MkKm:dR;-W?VIg8+'1?:6?['j$afZcS894BBf'b?aTS.C2*HF9/W8QeF;TL;?W=2IWW/m-[nA"jTn1'&UP7#ambn3Kb_l5ag'-k)Q#n^D"$HWk]dLJ!;#>`FJS&3W[RdX/2R1esdCR,u+3hbcBDrYuOdi/\jImecSO&[e5$p_\hHMR89h_.m0rc.j+S_NnkrFZkr<*'3L>oJi$o)6HZl>S^1CZT0Q[!I#/8[r!YojW;Kr\btaC-;NL_HOu5W2$EPa-I;)N&:q`$.9Mi68@DfUk(tS6\+6O4C'$a:!892VKT3N,oRpu'M:hD/kC$?STNco66jRZlH^d+/p-"p@fgUT\6Z_^,U4HXT[PD>C5.S.$aN(BJN93:q?b(-a4!r62+LKdDBH#IKLeR!,[_I*A:A.3:k!o#a'gX65iC)F&#p*s)hY5L9Ab8:Ydg*0=[gs_L]e+j0dM;mOAi+`a]bChGID_RVkc4q;+IUGIE:Jam,C3aU)rfU$Zk#uoMQ\*W)5W*3Iu5^P[ks@)$LA(djAo\;b#EoQIT3)VU7V$'J9XoJ=,G3aFGsP+X-0"Y*QLYE@<[sli'BBHoM?M,JgCfeqCi'LeenRp+FFj9D=fKU(\/X\l4_SUe$Sc?%D&i1.QNs"NhDLX8LdslNOqS=dD5Yn+'_`OW_&RsKLo0PB"SQG8._.ln/;`h7Ut^10tis]@/1p1:i?GY,I;@F]Fi(m=#jB9d_7td0I%e/P&e/c*ifbA1tJ&#+oQ6`KF7,CI3olsT";uJIloREeVIR>E$WOY2\$GR@7)Df.T$Jj))24-An<]aR<'ucEm7Re`mq,unOd`'I5s^=9\@3jPd2'gCf2]+dAAB?OXNhc0:oA"4urdm+uK%53_2M@skb*%Y"$>4T#s2L#.)3)PG0S$OibRFT>l4KLmAT@.JN0ZEA9eM?fakoke$'5NLWI['?Ebt+O<=j3$j'2^P6(nGgJP?2_DA[XU/J(!qOTeh7W!V#daGr'Fnj2PV\*&1K6Oe"nP6KNMG/9fnXc=)B3Fla'8)mD]/-Xp*?]C.^5+d1&jXBK/?_LdOJhNC?8q\I.DSWik+6_QNI?%q6mT)1.huPg5DOc;'6Se=:'c%BY^*9,`4-LWm6SK(Hs\^8fH&\Ldh"b-IJTY0_PWNbstgOme7"*SS,K`pNQF?RDI\Z%9elWDI%GK!Dm:EtETjH)4kcF\g$;JrVL/dif45pH/[^q$be\P&MB)pL)05cugO",YCuA::OLG(G9iWi?j$rHG2c,,uIGEo1VO!3q^;IYW`=m8LLa*H1HP`&(OgjEb8e<;V&5(abuZ"MYS<-5mu,6+4mYUqs3.C\aY4Wp`>Fu;1r7c7d8JY\4fP:E:N>P;Bd;0Cj+e"a)_J!bM_QdVAKceZ%/s^Z0G#707b(Q_Y`E1Z_kn=@//`C]77l*Ek#lpn"Nb-e&!""OU"d4f]:j`n/cGS3;o?cp]d>[N<_\G$Hcc+VW&AU8uU6)+W+VBeMHU9GXua:fL#ba1q7$Z!m\jXV0%11+Pbn2%)?Z(8WpD-9kcldW>d@Mce1+8mu-DLs=b)_2R6HF#&lUUcJG7O[J:66S7;^:1c_&!hfj5bTa]M`SQ+PG>;6^#(1m;`W;UdnRNcYOM'U>;2nXgEm;D#ppgA.n5h4`0k\Q&&ORe'/V=K;2)06SOZE'@,k7eXU`nAP>\nUf.r=k8-W!@,HPW1VOVLM>O-^DahD:P64KYW$?.RX@l\__d]4,$W6).;2;T)?)F]&#^3k'3L"STNbaqd&o,Y@rFjFWddRe8Q$XdLCr%\pRZnDi^N?=//G'pFaB,Q^>-Q-6Z$)K(=_n$M6^L@5j75hSoVl.QTpdW_9"-jT6',$i@BSheJ4RSZi''('Z#9>n^WCQKiMEmfAS"fcfR-10'q;=*sV&>(N`\LHq@Gb>[2k(YoOpZa\g[:dTN\1A%EmQnCN+$W"aY2",eSE&-2"UOP7q2oHi!e^.Ah^ECB]9tC">iA+5@ZPfi9mkp4n"EW+AuVp6b7C,d4D&5hB?_%`UGsoY0i4RIWM6'c0-;8%Q3-6_bJ6#I6q0XeFJ1LqM*@7]?'1pI6d3Z:As(4)&4'WG(-D$V^>O*).31G\K%TcpYdOm2u+OJb#__nZt<1dQ^q<"7qGYq7bA=$],@CdU(g'2D$+F_]jC_-r;599r\Ofl7M$;q,`?<65-%;@Y<%9X'8g2p.:r-TI^VVUb;rP@SES2&U+ES@K933ufIZj)R0m66OuEVJYPQ0)4lLAg^.-HLl?VnB3#>$M6Lr1pddf@h*IHmqhgQ;]ZNFNF,&Rh:q("R-=Jie+;/Y3869$E\7E>g>e!qB3gY:1*eHpXXAE=ED4J=:0d*Ea#pfb(E>ds\9)AT@-Fqm\<_@'[P7mCE)q-Mu6gr4M7h*u*9;@d"_lul"6]=sLEBV(%/G3J&J6ZFU[:!noO5sPQLu[`01@^(;j02i$S()l%`(o"Um]M>BpTigmsNWB*Cqtlnn0+Tj,X"(3U`6F#\KX/SMCcW_V",S:XQ)qEjM\UN\6?V[^#9uVcW7%nl6]#3j6nYUG..r>KB`E,M3m\G<&1Sitie4TbQ,.-d0lho0_n>J%g?X^C@$2cBe$]^Upmu)VPC!a,89!C%[hQ,LAJ.oM->%^3#Cb@=j,A^^L@;%V1sXPkRCKY6>T:Yg9Vs6aeHt&?R08`,Xkj+`^_>5@n/Xb>&`578`+``h0:32_Bf>E!9.EB(e*GbVOra"W/ad#?1R_M:oWR[@JX#_R5qE>G"IlAK]l!f22O;.oAoPd)CJf.1&&lVc#lZBrI&X!a,_@_:857#c8I3=:L/ZqWR/E=SeXl-JdN0s%PDl[B&;OD:3)M&2QL)L;l$K:9lH@*0`R)E]3F7=g_D[62]T$mh7ktNjXt8:;+UB0s4;L#IQnIYA(-3Nf%1Xi6i\LBrZbbO*RR;irr;M'0BIBih@`HiPTOWQu-4H/nm"IWb-leEogi,F5qYQtA@F6;,Ylsl+Hd\Me,)A5UC$_+MJWI*qp:-6)p@nSjD[&rPOr[aPYX$>GAG/Ou^=IK1:Pak<&8#H%AMf+4_*NSpfGIOXi9YXgWgNmHOiiHH'K^9YEt^Ts:]QY%S)&DfX`[f7Db*42l!g1p^8WZ)%=*MEeA2QI_DW3dAEM^ZABL*ZTLgK#A>[JI6^+,.7SI6pKpF8aO@K=W'!g7#'kn4]@-CbQHd--'Z"9YgSPFf*/GBVZEO=W=fT=e6b&t6f$UeAGS^J-D%fkNreQrII-NaA4k[Ys%,Ha<`2G(?-MJ`Dr/#^5pZlOfU5SaF7JhQDP.UVZ8!;(=VWNTGI_FZ^%5u:ID#bHq1A24Z1sDbt!`q3@,M5FC$_l0M]<6CN:KK1$rHUMnQWKbu9uQ08`qMSLGB96u:3Lj%T$5b*[4G!.-`=Bb<9p)o-(^_QP^G*mPc0!=0^-sHK@.:`9sgq/X<\)6RV:>[%`&n'R0a^"=Mm]4Ca"Z?3:Ht@EK,k[3>=M`&<]dTI(qt?,\/-VSsYs%!$F*b\tt'3fcPHEL*WO1rsB-K,?]#$R[t`#T+DN5G!C2+<.:I!"_Slp[.3\mYNO!\D$3Ar:%A%=dma?(7D?Tj2cq&a_U>Af"R,^L/\B9&(=4]6W*or,'+.%r0S'`qWSd:Y%#HT+UA)UUPEN@]K*J&hH9\Rr=[//RJJH"WZu$fq^8T=Id46"qY`"lJai[F?$Fc>p%P!J;$\4`Bphm=(FiUaN(G-#o0TomN0J:%FGqG"r3"60urKAmY='CI!q%h>7eg4\r!l^dMj8f1Fd.=N'1F,QR-3^QBSg461e8kbULTNMEu;iE46aBkea_'SV=#Wi'M?!eQ?N/U`Z77K$VA]#^O''"\k2j\WaB2ZZ>VJMBh,2@a&_uho0Lkmi-9G.XKqT&.og'ER(SHYga23AC*NiDK)IZf%e:&g),$,&siR[b"'Fm/M=4XST*/MLhM@e(l`\1O/#t^.RS8QY08opR";HW[bJ)-AU&qVYiY!u.V+c5;0FOV$.%Uc0qMW2odf/I[t]P51/+Q'4h`Z'mVn]+j=Wu#;02,]t+@b1VTmoPBI7+[kZ*8\+XdI_6H4UP^42:T>/D(OrFVXZP?iS\l*uJU=!Nl_(qWfUC!W[:@e\n8gB!;O:[k**dP*)/gEmoS;e(a\?ab;J2<,nE[DqV?^L#_"uD7u%LkcLdc"^c"3PMKi>IgT&.Uf(ZER30**&RT/B+;>1`MN/m3Hg3i-1[.^..4@"ie]".0FM``!7L.%%sI*J_CQ;'l5iQe$T@dR71Q`nP9dR`ju[PPW;F&3%0#;S.Il[8Zn`=7$Sc8/2jGL`a-nLgG=$$q4XA&0-oVr9oT-P.ph2>^qab?1G3)B&L]1?XqlWLQI)NAM3K\SjTemaOccl,P*Ehcf3n#++fKTl)B%b2gh>%e3)D1l4Q5\1h<3(6KGVW2KS;hh&J#cE:K&I%b_bb?S!JeQ&!=BW9Z4f9)`n_H.C06O]T+l3I4h_<>!7NV/fWp[fdEXnA*Co\dhPa?r>0`jgZoqs3QhaMfd:agmP$diS>NHi27oePRShth4%Gs,Gpf3+bu%AhJ!'g6.S-L/Wiqglf1]O).244c2c1d%??E:icdWV)rk'Y5S=H?Pk&g76AV-,fC'Sd("N#ST7N%8TMV;sA"<8b?WDa#;Fg]F0FS$ZDnT[?^3GT#l>(_oCh;Dm9srJg%l-g[3D.Fh*op26!!rP7$6RL4WA]'YIJN(0IKI\3<$),Z[Mcj1dXSZSW^%5!`B!l.\:@Y6"0'Ofp-!C^*!&k.I`j:9#Q/0T;cTEd0V>XUN-[ri`-Yb-rEtC9C55S!uNKP3)E5=aE=ZeFL!XEMe'tFAq4\2*TjBd)N7Z'ckIi$#L!e>I'8AN#]=#A>)$)N]3i@".0u&3lfgJe:O9Y-2>cL"eGPhO@0aYbqnh/8[N1ttGVUf?)X;g\tX-=pl=fr,g*dSdDTR+oSb2U/@mS(G6j9iFI7.:2BoeAurY[q)NT`+ri&X.kah-d'!g4rh-Q6m#RLWqOnk\S$J$[H_:@PI#nmr1BnR2i7lgP#OB;atO(a4]>=^Y:\*;3NTlJ^jip#;[4I1T&0E+0E4o28NuI.;c]k>%S%:,3%S82*U\"k?7>VC]t1b9Wr?,j$=>+tP;iPn4]>W-(1Ifl1BkH&+5!$;je^=Y+>;_;_C5lGB^8g$aP*UpY1MU[SD5jm:-A'<@cr+[kQ'/,7AtcSrCpHTJ_Usf_-&U/`D+eQm.p6_F&G0(U0``I3&>1.<^k$(+8ufI>CLYhg[7OQR9ifjRD0fp)\Q^C_VVB,!^.-\W(p11QbAF"kU;@Nig'4=I=gB4WA'!O3H?JlE0Ke,'aPr&Ij"/R'hPlYW7;/<"=YObf0-984*t"d\[GY#,KLB=oS!b'P.m54dJM4\NT"QPhglC3WrpKoV*c?;i+&00W\B=3?LFD0<`X_]=M@7R6r#4NUrXhB460=%d6g'3@#_CSE5jCEDmenFfJk;!kZ]\3C>\9qa9I`_i%-h21lP4+7WN]2iuDnEh&jQ]':(+UJLD'AH/;9soe`b^-NOl"f$ZoT>*#0`@]XRm$\k4jW&.GPqI2*d`bn*u%@C.]'7:;]87aU7g7DHSj,9>&0AlhMmKLg=/QS.,:kifuFQNDk4MLZ>Cp2'-l^l,/rb_XIKl0CL2:[=m%lc@VSju$U):c>P#T
    Va2DiZ2NksctdM+Kq7K2AEn_#N])7f?YIDF<^BZ%^C#]!D$Y_!mu6B`c=_2eQWQU2%[[Jg\b:eh0r1-=E;d:q_m6!UKsS[5@eXC"me*0!+c?AR1t$bE+a#uanE,+BgL*(OISZj-'m26]&$Y!4BLN^+7BLnm%YFmm#$bN:r5lnP6Xh3'0-U="s!T;%mS*in=I!q-\?D]eMfDW_E@*-5$#giB0Q@A:or0e_h@1pNSAKq=PDEV_&?M1H_W/7LWd'K_-NU1QUG-9e3QmG7N5Y+Qhg*S#144GBM5=$G+gs!#:_'W.]'qbbEgM[HK(]P8U-Jr]L&/(e@F?S,mgdJk.gbLnXB4dW.pA&L?3)T=aa&jMW55hYqjf<,jA[S`#frbJ2(5]9BFH"b7jQUCMH%ZIHpdH+LZ\#sh'*6lJpc3aVU57P(\a>K->\RPS(Sr/B-jpir6\8$?n80q0WLn6:C3QEcCX4h%pk!(2@"'DX40ua[r.0@b'&fs4Db*b,b$jM`_F/8i;(djP!cYEmCSRcac&"AC@4t8:R"rB+/I$?8-NN7>:1g$+@e1BBGYKm'B@J=!]b"h2asU,lmtWP9dFfbASBS:q>3t;]Bpo6h4[;;B&#td(PE!J@37'0$.&jbQdj\%\+YNkW+5_]A91d+3+.(]9O9RV/WTr)k3`7.34=R0#LD3'f$<$@*:,g5O@l$ClJ9L)AN=j*WGu'`>`Ra)DBu/3Ff`OS@?G)L"fIHnbdr`,eG4j7*I&"n#%sZWc7+`r1tX'0P25:0-/I/fUq>qNFB!-PFM$"YG:oos+]N)op#^6t>+0LhH][2dbLh25)L,dI'-ni=M,q_+Km_a2gdO0^^V?jCm5+1ok.uIgIA2sCb:`XkWiE(nWiEgp+C%>khQjF+)8Us%6a,=n?nHp9"UKcZ#V'\6GI-%`Ras'K1G'N7BH\S'@.)d(rh/N>g@"%&ogblfi:k2s#]?f&,ZGr*KT(0l!NoM(TV<$]+(^\<"aq[GWn\.6MCV#XCcNc<0dp1&IUZW<)9BrO@P:T8GLRjPeJ'@al6)Boa..C(Hs(Tq^8B2$U+"^Z(\rio)-LtPE1Z/m(6GOmn7D<3$qUI$Gp2.0a$n"2!Tk>@s,hj/-3],YlMbfbZNp,)_3m!WDQ1/^K.A3]*q!\%VW@4!jB'kel:EQmoi:.5_sLW:$dTXL,"c8,7'GjgkgJgm[mAa6fAlReJMmr!D.)R[M4T+OsRQjjT:/[A/6G#*6]$M]HM=,9]mk%akh43=-1f4`*a:H;\LKOTU&JOkQ2GL6/fKR"2f"DP5Irm:I!OUM7=sr"RdGK","X3PuUgaF]L[NBk,_Rltbb)Rjp-EZ44qA#q80D"k*SH3Q0'6AKY&114[S8C?NJ`U2mZj'^e<[R)Q'0P"DiJOu`jO&tH.pgATpVa<3K/JX,MYQ4HQbdRKE4Vs6!48$]s%S1L7>qN/#%4,nVXX_\fZ?SdJV+c%?:/[4bTLJ0G1'@XNeN"X&A`X--Lu*irJLXCMut$;Pg`O>^bc2M!\K8$@m.ciSts"rIA7T("]X55LAl;`8Y'C1b92:bMj-fo(*M1GtaG4tA\ncr5p7OPMMM^?X7Eb95i,Gn*LXLkkb-m"uF]Uf'P57>.rHrYn!&BbN7R1X_LPPCZ*C^K4!J>+:5:NM^Qnd`odlS\(pGYX^C;!WGD.$OAD#`Ie.`;`5*_r-j%ak2&j:g4dLOeESDQhU"+]$m[*S8jh)WYrW-Ybo2podG(ak]QrpU<>9,(i<=u:HjIh28h=PuaFc]hhi[6"1Fe&[0NAQ#^^sb*@Q%)7jF(WfqRom4"?"G4R$)!2#E1u<#O:j[Gl)8so%ihi()oYJ*J51H[i\hh7XWK%kBrdi@^:EE1h8CeJH-3;go6b[Eg7Q"'"?CKNK4S4!UP9<2@Ec$(Qq/-40rK*q#0t3t?fW(h-i3gHikBR4TF`XF"\UB/pD1iQms$ch(9@2h&Y_MD1$E%M(6r]].4(2*S`@QN@;iPu8kQ1Ih7;"/3`SVL'/AY9WYrq*I>RN.$fT!Mr%@WX9eL$gId;!W(^]OFRLk&PN7gdVVQUj=Cg&7-c&P0RIZ@W&@%b,U7r]#-L96s%#N@p@-r,mdBN9K5EN+lYSIsj9[S8[*\t!0TmS'+gI:/c-CM*jlV&18?A>5;ZSr\<(LHl:P\QVq=^H7VCHBD`Mo2`;a7e64\[".LLbJPL%FFGI9iC)[,R1%69ulR4XDAio??_ZjKt1O5\)$F29o1E4L2/Se'=4Nn;D$lO/N5Dmn34.A2bC%!/*ZmII["B(dJL!]gaQ_*S4%9*G#ph0Vs\_n]UiP0K:Nsi:.+2Q*@]WX8t"@@3'*G)Tmp`ZJ'(H=_4Eu"d$Tt!hh\@5L7IqeIF?Fl@D@F'`sB7O\KB;)M`ZG=<+aW/Yl-E.N!cSTQcloXNMnAPbK1W$C\#bKSH=2C&h^<,V'Em-n,k!J6!%#Z:^I\\Nm+tM`Ooi)cc12[n@Kp(lq+p,f.Jl0\["l-mKkr$BZp#eVMnC@L^O-C-7oL-$%/5@dct$UoH>:CSoX*7ZF@WDJcPC.n*-G(qdoS#tF:NCl!c2?*AqUdQOar&q#7ji0"c&K_0I#!2-'D(8_RX$gGqQBNkrXmaj;FGim8`Ff?kAB!3,RRbN#6.)tY\ACZt3f\9-$Xf@jpB%F.@W[WnYGeZbOp=`-[JA8$&/#E/bhoA.aBd*s.o'rf2:LH7J`!ErK)>JB$-&"sM(8-m&KaLc\AL(qg+[cUZ8jBS['Z.'X#n_e^g*iU9,j?<%#%TR-:B]$(9LZW`eluX/775[,I4$OdoWDM"(:Hem'6t.efa"JX5qCbX4X.loCBF$C$Ag8UH877%:^MqHe<4kQZNW\Xg::CT\[8`Q2/ZID94*ESd3o1:csj.U#SnNuM+Ii^&9.^\$%jM\Q1#7TCH2<6'CWS!m^MC58>><9E;,[fgK0spJ)9i?"?>gB=g;@&Mb5WP'f4#W+ng_C,!lkN&b>R0['%Y.FXJrTR&]j#R#s+3VqqpA");+ZP,j#5>Z=6+!)7ar+FO2V#l.HII08\(:RJRW626Ut6dak$CM!6oegT(.24DW[$)NI+BsUYPU5c:E1/__i,](XIOsQ;KQn.emdo"GLC?\DO_@[c'8XT'j:W_s^BVd@%<1M:(=XuKs9M'Pg6pokM?DCW-.)`M[7dt2)]@j>uh^QHrmkBHd"?BrHbQc0`2lt5lV(r@D,8%o#ijc\S5W.@*=`T?!D#M`&Ommj(14df"/7]/m;A""Wi;&p,kGWk@)),:0i1>c'LWS:3h?jG)1VX\$N/(R=?Z>M6V9cS&/.D0t;Ge0erjbD\0&*uT#Qlg#<;bDG,M=n:"Lbuqo>9:f!?7?Kq\Sq#BSfLgjfY%_(>K($/AB"nHpRNO0Q6W]5D_:!461:=bR<)&j+.-47!#^h7L\kH/f[bi6P`nXp15BTkEJR1+C,drVIGh][`eunT'0Npf&;&QHLM,H%L2T[N'Kf)dDAGd?g16t8%;aR:E/M/QK8B%rM*h-"i-nq][ElRf?;9Lh?#A&(?S_30+1pb5@/!"K.#5IG;'fYP85)T&"!fbs`f=+Nku:1oLu]-2$QX[`WkZ_kgZrfDq8bml/JNZDgaW:p<#/&=>*j"-M!q$OJGmMS9/fTaF&g+)!<'4opMF!NP:A;a"hj#U'kdmbRUDFcDt`Z-L(_@TJ0H0#%S:`6^J8&5K0\G<)\oTXK^KQa\\ssd8/-g[MmdNn="&q7:VT5?8orXR&>nW8N81BHt#!s$,comC\qr2^Kh]s;d+;aV6=:fC8DZm]lcTbB_B#OW,<%gA[Tofk2&IqJ'cjrCSkR+NH2,R=s?KE)K#E])I"NnBmpC;jAUj2/q_GR"7qDGKr@#kUAH3_u.3XkYG%EmXS!MZ?1ai)`%q2E&BZ>[%#n2s]!J>]u6kdbS9gR"jI"oc]V\5p9pu-.:ap"I?nRsi.-lTWg-B5%cd?_Gu-5uA=b--QK++9[UX%%W$8Igc6:2buaJE`jPb-JMj]8t4hs2HBb0&(2nN'>rj(_f<0n"ocdMNNMq"<)FfoLot-tJ`3qSXb`f;)4Z2#[]HoDleXXHulh'W4iUmhV%+udPJhh(1#VcB0,O_4$FNXaJiE8i98NSiTd_hDkSSfI=0+9=P/em]MVl"X^rd$s(AWb[e#^Ogtd@6PX`Yu]4HpIZ1Vqt/RAF+I;OZ8IXQaUpear7l*3bakkA1>ECG?EcoE?h0NUJ?n&H]0jq!=i;edBV$_3"FOSd0Z']2/0-(/$r)-g&8<,]`ss,8_%!(E$g63s!u!B2%ioY>`b;:hSioW]TLfC49uE#/E,9U'I(u^R(P961./5sam/8#s-ZBU'%ts[n[+-OJMRI5C>E_\IX.!QfBhDsA[[&@QYbIP'j+UcNh-!sk;f:Db19:U05HTYH)$Bgu&G6^DWBHM=.8$=b1(M,#FqM*6;muoC'CRc0^jYTLJ]:)REKZ/*+n$'^*aEQ<[cms?iHO4h\'(s1*8MdX5[n7\5"8hWT]:"pP?NQmD'<,"(';@8o;(5Z.g%d>La]QE/f.N!`rcP[)WF^8])u^$?;e4Mo5n5]&;8>_=AdBHZ`ctQ]o4fb6e6/bUgkD.(jU3'(,n^q_d-?;FS/NH3Q=j*n"qr^l@gRZ2_2aV_A7d*>+>t"^?kCMin9kEW"7MbOi8D1ZaW]mUMZj;\@22cCPp,cKa!i:jc;.3@4D2T[7.T?bu$@p3\2$cYWc5UTX`i?mc"/+V',A`$.N;#o"XTOB=4"2i4uuV`C.Q11A!*FPe;159;N]V:]:WjCCK$Qt%,RF'd03?^;p_ZTkRSB:!'0E2;VE4do?&Q":jr5J2(Y1kec!oCZUnB79S$W-#Vn=Vh?#/m[s:KKMfePPHe,<1h/SR]QCpI/`0P!U?C,MbgWh`\no\N)*h%:eW7f+B,'nYUF6HO5eq*PX%bppg2a2DYKBKJS=W$a]F3)m8Z+-U!iR1Kg#D$j[Wd"10P#ZtTI[_l[Ygi*U5q=k1"Iuf.V2?C+PO9kpiMFKl,r0]*W?*2uf!.M%!58"1[oBjGH5/MEXWWMiVib)fd-%%cZK*0E&F$f^@nVM;HFh5B,`?<&h)F^a)?tF0Kj;*q+;,8.*G(5n1ZhiVMJ[c\KEpF_+%XW5b\l(-kQFl(080,5+]#)lq[GXX16,E)pJIVogp*\L*qrR6ANbQc$(E^OE44irJ"0$R5.`Cp=i-7\iYq>&f76)0C>AQOM]^/(+B(;;%+'G7@Glg:On%_50gCJ7X\rn-:d[!h\.?u&_:Bt4a)1WcDc^rL.mdV@E3:%l+9/keB`c"SgdjX;+O`3$9&1)q14N4AWP3^BeVKr%)=+g'5`/mP/klnQp6%T48_@(gh;AG`*N%/S0o*fm!V./E>Q.:lX*p]n"&RMkOTB#$3Mro^AeE[BTX_"5CDMS-,.+UD+@)cZ0rT$_nX]na*$n:+3o[m1?h=8sZ:>*9f*mGW*2"9U*/IiV+YaE*NaEp5!W9_n^TlMjl]:YAa`GSefX5=UA,;(&sXmR"nujn?4#&DUInK_`p]Yf@QGr931oc_>R0D)g-/Y^87DP@3E\K'GEO%;_n_9h03:F@ki*Le7=,m-6dE@bpk>o'ab@ps8*_,jV'&qY"#AK;(&ANYK0K#JQ$sS0/#qU"/mi)Ot=g==$8f"m_U%bnhFWDR2YX>.K&QlT>MN/H@NIC?H6qQ4Ck;!L+7:bR.C2C'P3E!X9L:NJ\:j'RK`4>,pXK*6&;T7"GO#!HfSq#kJ(a0dmd!0gqsQ7kVPr9KoGE8*E@]Vf!Mfn[>_mA++r@,6^/JH\U:8h'X>Lds_FtiJq_aZkHd_c?^GDHaZF@Ro@&(b,Tg)Qm?<&^$%g,[6QJ'/#DPD0X]7!ptmO"XdAGKf84`0(Y[R#,9b"ATZt"^MPI5Cbo\s!]FIYL)%Jm'Q%n0:]<_u/Fh!ju9jL8H:Y8\=Q?#4CL5[hP@mW/:*0ULpnJs1>K4dqGLX:1#ehde1mlmqM?Ch';%ne(R'c61h.0cL[4lIT0M4rrc1D#-uP^tsjo6qGFeY?h&nPrjU?U\ho8g,C_MP-+_#boD@,)sR8\ZT[XV-Prr>AE\.>c^CLJtR8"1'19?3c4NNm!_?DKR04Ur@tr,kEBQ9GM;5!sXgM)dFsAs#T=;GB.`@ui[2g7+2heaQe4]U3;7Rj3\apj;bQUsr4<&s2))jP""iG*#+;ot,5IP$VJeRG9-,1%7DX2[eI$khg,t/7juTiQ1Tc9D+(U&Tim2fJ\0km!CF>Fu@_]^=ke>%H[Q,TPe5)q-Q&Nq8;[^rI']eWS@PnnERa$\Vk\l'$1Rp;15l7!=nHr3GLE70ifuaq.oQ7iQ:p6DVp@uPObQG=TLLHS;iE08lG1h&.RUZHQJcE]a\'OKE;c-ZGRg;Va0pJErslKd!\=%8/.^K'3)2A$5>,q8>70a+9=t7)mh:&\tfaFdG:ap3J+Q"C9]4@&L:=DoL(+>U;7C#4]WfNioQ/t)nWC\oSD0bGZEiu&UJskq<%?_nfk,bX7]5b.X.kiM83THW<^P&9._MmM\6PGqhRpf,i'`RrBP%RIM"R;6;GD?cp'+6S`BS*n6i+7dWs"?oaU.?:?fa\:#pbXI0")NWu0c=f3AVHC8J#0s#=EkaU%AFKh(fAT@c%FIPLDmY)@B1&>e-dHu^e8+_gN.Eo$m>S>]/2GpA!;V3.)RJi(a-%_KDV#M&]#E'YgMU/:m;jaHSShoS'g37*U/_Co+ss578fSGG3QH4b.:Y8DU"S?#`9C>g`V_^"Z!rYd[!UpjoU+BTEZ\k@:U4nLb'6OP?Kl.Br6lUB[k3C.?rL(BaSUXh/t7r0!l@8jf$(CbH-tY)YL_mSIFRJ%r4qeS'<[L?t0:QA"=BG^gr\Nr!pYi8t_PL`8UtEPdlKd!/;FJe4_*?Ck_;pZ\8ar'Y2?:_!.5KKQ.eLA`u^jH8..q)0[F)VeeEM_)ja2;R^UlI^gDW1SCu_iKp[Q)*s16_Dh:FM]n5qd7d3YV?h-8jk6fLFt#-l;Zm6.gqonLY3jL[":^(cecCKH"C[6c;'jYP%$[H?5b]C>@AL;hUF@pO819It&rX05TlQ5\Lp8;2//U@K),5?dS&$,2C!HoJ6V&p\_^ND0"d]JqfUcO9)jMNq?F^%RRF&KN2_e`YcVIB1T?8lcDpO^'7o.k!b1Z9\O;jYmdl=Jdf^mC7P"*Ks@a1a"ANi$h5YQN#3gN0c5psIkGtVE`FCo"tBYfF.fAUm1M!2unM@-V4i?6UbF8=i,kPQWDh'#ff``6.?-)_3?\?PLfk]j_"%6_tD4@WU\3Ejmft-D&[)bc.CQt4Ht(`d[!ZS8dP+-(,V9ih)Cien3]n!,;`G;:?Zf`@GDj:)>`_CJj\l&[1nl9ONB<.`!bG%IgVNi.:#tggBf;$lTS;5d5n_LhB"TaV]CgYID0>YAaOJM;FoBo6;#iFF:7*eZU?cUAHR=j5Q2Ep9@I(`DNo&Ye8+`SK>GRKVQiT0:1A>!E\7[$N#>oD%(>J+@$/iL&AEA9EZ8\"V(XJfr.Cp-kJf8..6TW?,*N#/nde2^L+bc@?*E8Ol>3(mc4=?Ml:l]uYu.`i[qROXbYZ"k,66>oJ"?+>I%LAX#Ca;P-6(s01YGF]9hMkb/QW&9^sBOUo'[Bgi?Mbp"#'X9OmPJb+,8fsL1^DP)sikHUn%C6b%hJ1&,PSblWb=P21^1p_VFNGW$ZRbgVd$md]HU,X!tYb_NH$BW3EQj=*I'TcH@@gO_Z"UMA"1FpCIRN'mX8nCPL^&GC=Bnl-#_`FB"tYWsLqnU-JcYCmKRImEAk?0lc\l*Z`n$n^'h^8Q7'RBI)&fK:[7&6]>,I7ICF(DURAu(_Ll_sH[>\e:Ak^1/B\JD[;ctt(Q)+S!NFXCHRN)FmcQWEN`\(>+@XOA2..[I1i5OQUng^2)V_Htr.!/P.:H!E_D\0NjiijZ,qpHeOTaSK6:i2OD9O,AgAIgLBKV2`m1Yg`6q.:ZJ=_Ec4EdGs!Sm`;@"f@1_CQgf4*6adZs-PTbuX4)DQ69A"X+F#(,5lF/MTUh3UP:HIB'c5n)&^'pdfiKa/3YrW&?OO4lDr$<#>^jA@cJi!f91(3AKT\':6bbd76LojoVMPbYYZXW@_L%YS$R.4*JC*'OM>7:8\Z;+uYqb%g=:4@gL)40]9+<7=M!X_HRbWEAmu5'^aQ->J_[Gqd'bP"-p1/3,*=m-U1Mr&gb(7[K4=]-')4N)ABd;;s'\U&suoOrdE19_E0X-*Hbo3e5V0#6((7%DA!Lm>UWLYkXf^\T\>c&WBAeW/Z%N?]Z7'Jp\L4^P!R-LKI<"dW=,ql9/RX$)*ItUk3sE8DHT_+t+puJ/i)CXJmO&_FR^!$AcnMNT2AV[tQt+&922N_JHW/rG?J_++18EAbnsL.E+G7qdFo80]AhOt]G58`>=Vjf"/S"Uq\mGr^G.-Q"S&K]NOJiYDf^?uY4p*%Zo/'KE=`&=*rp6=s%5'kgR)&L>$3(mn@N_N^C-VCEE$U-"Gpb;UE.6")L$XBfLqbX16(\2MIL15-"L23]j3"Pf8sM$^uYd't53.mR8r'XGS#!g1Qc?pQ`8"eaBmW<&g96UN7FW0p-PZ>_<$aUX%Z"B\Q[?o5)nECPaXK2&6.qS$79=6dJcZf5&9O6l[4aGOs](nVJh%skgY"dio$FtJ@V?=LGM+J;^/&J8$o;n[d'9J:Zt$4FnSVnVUi8n[B)MWdLu5*J?D(d=1[AYi&5n#qf:pN6B=/q;M"LL^!]heC=\W7$UD1mDed7iIc8)19R/bSkZH"nS>Tg\Pq$L8\&L&7ea"+3RH$mg-^ZaT._dN28pF::kGm:$5L0h3!P[=.S2cX-jU?ae1*e[Yt6!<3c[8@7j/7Jp,nW[-HJIY#VFV25XkWaXO3)`\s#uF!g2eV4';ZNASl0Y#e=4q3bI/D<4[;UnoqcGqS]*B!i]+&/L$U!=/8$?Y&(*6?,c!T#8nHOqE1Q*^=cOVU17tC.aI;,>/Xt+h(5jq\R(::Dt:=eH#(5SJ=K(@)0_qZd+@q!;%D<63N,NM^!OiHCn'B*t=jSl^-,0E_.FEKSRN64d@YUN+=iHP<1/D]#jm-0_c[EK]L%ho=Cl<"COeFWm"sm.#SdD+mXoJ@6A?7N%\%.J&lCH+9d2>A#;$VDF!-F(9sdD=hV4N89Ou`,:n?ogjrl@>=LkD,Z5r\1I$o8IGfWp+J5K.:Aijp+$u(%7"54@#,7#"Tf%Lgc@-kgRu-Fq"(8Yn6i*"l&>6PRn>p%m:JH7t;j-JV_=phqK]KhHk%NjX-GI^:WVoL["C3&fhHZnjH_K"oAm&$%si@GbV"j];Ngs62F&=+dQHKJ'"&^Gjj\hmJ\o''Sl>8r2!;(k;HcdiFFYe^odcMVAecY9!VBjY+I6kLHoU$3]Z,6Z1s;6M6oXC6gTH"`51q@K[7iNZip:\["s:0JOt-K53;u&LQ=9WJD2B(:p``qF`pcL>jDW[mRs$Xp]C`*#6J[2*<[bq660p4HF/6Z@oC7DUl'S_e[e0Y/W?l.r9Sj#o45tKkm8&T`JQq/al(5T,$jh.120';+7"qC7.q9.LFGdrN>W)F%qBK#Z5k&&5t-k<8H_;2&o%uFafl&*Bi.i^Rp7;1Vd0)1Bn0FiG9b:rK2%dE$NtVHje/2AA%tC1qqki'!lC&BOqT'RU=pk),^3DpA6S_\C`l!pXR,gIi-rIrkQg!;!PfFLR)9k']+FP=k!_-1)@EZ0a1gW(V_juf42CBd";HYi)OCtqhtU:p:Pb8K$mZMLJ>\^_U^/4M*hhE*58[oX5lk+"!$h^n<>Hj56&5R7PSB`_'@;0%,161:2oO.^W8]n6UP70\Vu(p*EZ6_fM;hcqLi$M\p#="'nW2'COFDdbI0]kj!$=cD1#Wg?+:c"Rq#FLj!QWCK:#?'GomOeO3d"rKt-[#_j*#Qn[nj00(JDDmS/miWFb_Gu#87d$)8*>\*LdMCD'I"t&$7,71%TL+;D$gNcA/Ru0<*.$t2R-sV]i)TFrRLn3C-^r3m]`^*N8!<^LlfD+C2TQW'o3a#)c`*5N55$fQP#&lX,C+X.aEf+CIAc$Dp(eb$RRCQUQ7NW[U-Te`8V'3g1p.?ocGf&\]B#nsmYmJ.#CKghg0qV.AKB)T;j>jP\U)p1VBL[`S-I=/=,&BW7mHWc*]R36!u6.?PSZNl>YjBMj:*OdUTS.<3#8G82P$^Hg;[V.NB,psGGE!]C!*,B^IA_\p#8NkR:0YfO3&VVC-E2#8mAk^kkEpB#Z+?*PHd!D<+0,n7EcbI)a0=205q#OG*%rpLcnc#&l,]rg.n+?2VEVjXIPRdLm;^1g^-"-#YIHY21&D%Q7HbM&GW25'ZhKPC@M(!j3C(ehA"$"Y#N;90q9\>aF_2UA2etr.`GVK-cb(%8$4q_=);&Ob::D[u@f/b>4N,%H[m_,<:cKf"Z:Z:7G'%KTH89$)=,^2XFBX4NnWjP2W.M?MrHi.5ZZ%!.AgEDBJm#e7<)W_ssYD5??oJYE^i&'k:AdpW8NN>@eHF>-T.\mkKkNXU@Ygrr^b4X%([(DS9Cs-kdiPLdr.ek-8Cr_f]_7kPDhu$ATlDVA2[MSIHE^W_nJQQn27Kf$bl[>cBrFrD1^Niq[29f-k.#`M`'E_SDDkKH2Y@KPn(K(3../Jgqm(-`GLe?^^r>>,j4adH:4n#UAR^pNl=cd+j)>GOEdk#IfJS#-*WCM:06_8>..O=Wc!H^CV''#QYCo:^0T/L*MO"'*.$$H12b*RLC[%k=HpoD;'>Og]?V8t:n_,/E!%:6$ZU&30maLVOa];M#g)s"3dCJ)+Pln('93mhcHO9tq#mC;A"$*3CeotM4@nV@[@r'hhBKT*IoZ(G7-mB*+OXs`"B)[&d@oCQE0lqA@aorYb?2Uk2:/RiZF6a-]M*'&m*8&(;/Mcc'B!c8GNiEgdP:ran#6CH@QR1C^DQD:4`-qJs$B+\sKUr:AR>e&#k]+V26T)*i0ECe-NFS`K'HA42%t^RUcG\b\=CJne'`ZM335hk]Kr/;)Ra4hj\9=?"HNdBjD)5^Lc6^a.c]\CIJr[?d*jqNl[G&79&B"=HYYkHLn=*l@uku.Cdf[VVG99X]M">V2.>61DpjCZM5?FKFT2>RF[tu*kJ3sN7t#Kdqi%[4%i\D[aQh-!+]0?*PV"UigcX3CCi8^(\@DdGp+<4olk;C$RL6Gks.QPWCC+DdFX:U'F%T:CqkmiG1T"**\XMe.k/C^GAe9Q5[gFOA#)+Y!IX0.Pm5(28b.C#i$.ctLbN*[_+mOkcsqZ@n1_rg-$a'J+;!bO$4Y8o-dXJ@a"l>5eZJd7X)n#chU?qF@AgplAV"J\bSmgHdoL2n1ZCXkFqQ6g"kn1ueb_tgNj&Vr^iR4[73@O8gA>9"\/Ra*"!LU3VE`9@XtXgshoesL4nbbe$jLbWX96&ZOg9ptq>GA5":(^&1=9GCho_rMqb@6SU8`p=sq-T*n)96YS?9LRXINI!2,"=V&W0d/rC6);"!-5*\:_:%-sZ)L<'_i@PL@@!Z7&gf#0$3h`@%CfVG6'?1*_aMr.Ar'Lh//T*Z_P'm[-tYcgJrmN5Pcj7^+A/_/Q@gf$CQf45)\X'm@g$u*94H1M.8k3kRO86&6hd:m)3(PHa*EVBM.b+hJR%Ya*(()pRAlON^aaX=3s1YaG477i$quBa;C'&F(C+CoKOYE-$"e&fPI"kuEab.7S=?%d3R$SS.&5!73=W,)J=$U=/pM'fM8#@^HS;cC]G:f-A^]YU)E4:#<&*\gBFN-b$t-\46ld_9dt6ogLZ$.?h5JgD(h:0e`*ee]8JN%5FHZ[tmU7>E_W)`Wp^*NN9`WVYF_PatL5%c(Q1KH8ho9H(`V/jdaPX;j$.KG(4/UTSYs@A1K!+SljG!WgaW60]GrFW%M4jTe.!'\9f4jkRMc0,nNcbc$@k7UVeYQ^T(^'KliA%1\B>M%t3N]egSD2__\HK-u="A#\'K\9GSA`-`W]cNf;sY*rNMo^8]OhFo>Jb`^),Tis;&!.j!*F$6$qb_hPgG3+\@632pGf#?2*,3V+J&.0F$#W/V'A32=Ba@sm\YRnA`"GWOW$On5$Pf^ull3POK`&TX_?jd[,CIKD2.4E8,0uuVi1,r6d;'Dd6J4]MXPOMHGrN]q-#j'"C`5JWT;VQb%1CPs*A09(AM;u]B.TA97Wu>QHP&#!*D0:r7+s?d\bkPoKgH_AA.c4KbFq3uc!Qj3%?blTCHdh92R6a_d.:Z(KbR#PRKT]&Q1f!-"mAB-dI'aoZGmEW'=8"97pY[YKgN;4Z!BBjN\)O=GF;q\23?bkle/cAmVdSqF,`4.)OV0'W0agLFOOj%(-S?Npt$"RL"fXrHq,ep#OHPkm7M,SE9NX=%q#bDWu8#)5Js@rP$GS\'At+uE05jf&&cI`"s6qJa`Ka&5Ud5$M/Mo\G]!cZ$irp23ZM6%B9NgsJgXc>cb8j($9X3(CI0(n)eN`ZElU"5n[Xdl+,ArM0##"n86\f9.,'Q4K=>2$E56qo3^QVl^@pIH.n*2]k*c[i@!.Fudhn1&b\"S$b,L$#"Nh$6/kj9.@.?Wc?>5_nqiU/m\CT42-qkUo9!?FO(PKUF]c)%KRi.,[eD8U_p#'0s2u\",-;)&er#bN.HeX#_Ih@!Q2CNVt1dd^)oW:pVFP-!PX2M]".Ig8OsbqodN;2?*_78:82kA\+Y>b?+ld[Og+";cAI'&h+#E@G@k1QX7P'2,ZrW/]fV4KFOs,>Uomoj\8!t'CU]jP:@52])doEZ'1nr7okp4Va_Km4:G4Tbql75g#:>P6+P*Mu-8KWn`'i?0R"V/u[-Y1g'bNS?pCEE_Rj"TiPkdpFTLlu>#[jt_@3\PE=IFhP%?I4H!-&JkcqM"%_>*mu=Y9!qIt0:g&>>gq!3"j!!&u0Y;\];*;g]VG06fsJa^I\(*]')bipB'`mssmq"pgiILB.>#TFj02!5\:7&\O.086,uIjDJorGsWRR:l<0sYg>X]cr0L9ZK;E/Jq1(W-6f8O,p@ff)OX/(*QaB[.[L3+cqOKoi\D/P!s*U[^'kSa?k>d^!EfXh$2dTG:^ajd)M-1qEXi!\Oqlq,^'asTD(0"NI3g6[;6k5S^dM)Sr=ok50i@AR2#1\Ks"a_#^(Iuj%^%/N6+'JEe53OhpRi(\%#Vni.0VRGC^S,72VMS2RZ,4"2,UBY=^]ggjS"!#FtS&8<]6:f/m;9nQ3+'Z6AR*C@9F0BB:C3%Th8V6NJWl3R;/,EbSEmIC+X$?>bG&aR40\@[*39H@^$,'EF@4V(o!-XdNF?70!=%+J>Q0`U'tK3(K=4nNS-l^qrrf0[k5N,4YFR?F4#@N\;g!0K(V-&&-JLZ6(>COL-9BDnq$H$do`*_>Y@eL+'WJb=dYNT58q#/>D7F\ZtDnSPLVQ8Dg^7^Y!],-f)n3YSIDcs<>"jR=a0,dc3fTmo7g@l^%TBqQ6";eG)5Ya\LZ(McI#D@GOdE"n*@e(3YLZf#7V9>+l+I'+Jp;\_R563WBM]q*"$.dUG]IM%H%`Cd*knsEShSq*S=H)iFO@raEJA1D1#:TWJ^gPKd?e&^FS&=ik=RPb4m%/@d"ab&_O]u)5dc0bQ!!N/>N"g'kAmeNj!/,YC--O+-WE>m!.9m%q/7*%K^S%kTotQP&i/j?Ka%6c^%^Cg&&9e"__,SAI*!F7Mf,BBZS?6ThY:*S^C)/**Z=F;9o/;JICSjhgP.&j;@VOo+Kk7r'W8Y?[Sk:fWdE]k75tk?U[aoYHFn1ZI:*Krb,a).!45$Sl:P$'i1]6H4%).@;+0D=@^P#UgF"8LAVJA/E,1o`GE]%q>93sE+TmQU;t5=",dl?"#&5.h!Km.Ms-j,gLY[f;1[\].@[h(CbPC+P2,4;2o1o_g]kQUV%]n<9R"Q6l#^!l1Q`c;2+o504dN-Q]6YU\/pN5d>L\-PFla/fuL3V\#6]+aNoYr%Wd-]UF=>_[l`lVrK)eu:LA:dLFS4==<+iGaEoc=oU5!1:8VQ's3nO0R>[i+KAMbS0g&ZT[BN^_2Kq+aofmn]8u']qA6QJN[%nUYjG,W&N7p395K*dW^]^(@a>Gfe*]g;CoC187W=COVtA2GeIogc!_`)bJe'@2ZY2.<D%f:W:_),j_p3icIo$<56qsRAI#\d-,p,EBc.8O+LuUUA=&C1!-&M'_;KaMeJRc^DV2ldt+2\O3Eg#HdSL_A(84],("+O>nM3\nTU'QqKn<_WLG:.!3Reok`=?laDu]Yt9Rt?r/Fqo?h57cK%9$[#7i4@*L\BWsk=W59ZK[ACWCAWZk\(H6k=uJ\LDX1EV03XCT[g/=2[6=2B-^QTd1Cr+Q=bGZ@H&fDO$G*bJ];C58CZPX0HZEHEuK\fug7g.r^D7+\W*VpgYf@TchRDoL)Z]a:OM!h1;;O2G1AS"V\kXHu![?K"o'Q*HNW?9/8*P=6c_W?#g4XHkZGN@A)G%6>JnZ$kJBp:G9M.#kRBs)IAk@Zk+%[nBkn>KQRgCDRR2GqCb*Fsto_d!t[RU+jdrPsuo?bgHEES@60=,cUhXpEL]6EO?qYBg$Mg3HkDHjc]nFAs;R[%O4NukCpfZB/M%PD>@(C!`_*k%L<#.'M1cJl^W76_O9Qmgi8N'Y!#E$>!H[SA1h3k=_'WD2Clj28oQ"]rBH@d#dG.sd.YOhRLqM<]CAm)QdGa$5u%Mnm\#f+9YXE#U'*hq%g@eu/_'a)$=MAEiuMdlLoe?CTgl8sLU$HMlj`\qr3T@s"%\`Q@Ng,H1!^(r?[up./KT%CsQVSXfDDOOn"8M2EL#=K',IQb;..ZQUU2CD4dHU&C>gM6r4#[EitF4ZX*ro(ja6j#.^GRl_2Ta,@MsU/:cDP!:53X:^E3#\F@l6^)2/A%WN*1dQ6+qCI,^)0,G6q,J)2P]>BB:N%A-ji)gMhCVk9et<-InMpj@G0H@&-am79qh79()7)XP50rh4<8bY,^>9Z:E;F(+g#MCg=R)4f5!)cB32f%G:djK/h1@c*q7("nXN(ZhnAX6Z+N2$V,VA/HbTqd7H!gb4LSX:3EItgq_688q'P(G/D;O*_h>=1aGNTSB@;(Q14X?th0GT5?Oe95osj(R"C_nUC83M%@"DSG?acYh$Ugt!bo'nEF:U,.:c.N%VV.L-Wr.:Et)uqdgVKtcJ1q&Ur.TO.sJ>&Jk\4e6,p`\!eb)];j:i%.igmpo(f/Y`MOu!@N&^I@V%nINpFXRf6Q"49pELQ,paCc>,].f3-:aE=gbrg(p(`IZ]=E)PiSPqAm?qYAM@pea![)NV*Li8frL6u.h9a2u';>$Wu5n[gbSF;o78uFd-We@#e0^@NV7m-l4]9bTY'GSY!`bp[Ef/N^c>F&`o2^dg.l%V2bV9JFCG9Tm\t4<7<6Tt8KAB5aM@j0CuabW8em<,B.J$rjPNX?2B^R-_t2.N1FK*cs"C$^j,MBsC7'eETE9:6V_*S%tpm,#H(:lp1`-mgqtJ#__4:Vo(:0S1oc.D@Bf1@DLRUoJs_)1BTXp=%=B*kI?b;+c38fDVicp`QY[\>L`TYuF>l-=M+SCGCC1tTSbdZmqFF)!.W;d>(`'.jV1+@/Vf#[9@u1e.\2#"KYZ@KI^oN([U^0lVYo,aun.P,BQ/3`E)XEU,ZXJHV*tA4#$HJ"V3b'd,7S82>oI!)L!.mg,$HCn]tZBX#4-;P$/e;0F$M'$sd"`%^0%`V]I#.0*0_Xc/?1J.a@TCFTpkmdGNJ$D]O7b+:PtS5Y2ZN8.8b4pZDH!;QsKH^ltRXgrm%me9h3,/-rG"@PBQ34B!)q5j!RhCN,UL??/FrU7[:jHSX6E36@+,XN%J7>TS9Xjb@41D>*;M+$S*MA`emC:Cf.Xo/CS:^<1?I],pI15Q/YQe^]W*h;q1Eg43$II+#l:_hks7%AD4Z1%J_Zp"jc6sckFkl6`+LrPQk6Q6_sWl'C(eN85%=&Yl./$CEEM^cQf>Qi'>0h#%<7@XEM:B8]#H)4(:gg@N;3-k[15$5E%ha0p*.D`f1I"K,?R4$Go@X'8'NTMs55hNNHD'=DaFGLqW$3"rr"%;q4`7853q:ZSbZk7[A02/Ktd8&5\K5!k5f,+M+B]k#i@(%OU?6"KT"VNH)%3E(p\M,WI6UP>ARed3g$:5qMM8dhmX]M)":i%Y&;4d$AC<@\%fTl,%%\OQag%cVPBkc?dUp$O\b2:09Mh!&4?3Grh2!di$)+T)W9mF;47iC:7#,1c1(]/bc&%&=mBZhA`<9$^S&kPTH?&OaRsnBN#sC@!D,aFt<_I0ZQRO5*mu\6:.SPd6jBo]W2FVh\mG1`J'59=3`7je=JlKXg'O?\a9X5fL`,3:T5C1XqC"Ul&WA*?4oe@P]5IJFg9uAk.'[=Jo\HJN&;6[=GiNQ`8*hAJG;',r,7)@DFHdW>7T(DX#'C8,/7ATK1@aC6i#O8K$>1mr@_nd7E5MV%n7OGBKV8o^`!=KB"Ts^JF/pEuO>8.\ljSms=hDRl>6q)3A1hjrmY8!/_o>to'ZW8Y>>*)'_SX$p3eS.)TqD:QH"4$77QPtn`O+W>=1FGCG/O9Pm1nOe@Gd'f,e\jeK%;]<*=.O(Ki>phE\e2DB(BdXs(>Nu[Jji,NtB#2uG\@L_h;R:)/!JDrNoV94]eED&aZQDS;VBUqosBc]UIU>qJaO^SGPb_/RQL)jgG(m8Qf15B91kYh$g!l1!/L8GlIEcj`4ecHoP028?RA02==iZP?aF,Gp6Ot])L#1-6k(=+8TB:!oQSpTD\Scmt,4JBc>&=prZg'*97/bDepm.q`*VhmhDZ"K+8+po!ialt%WMkg5[md\Jb.)?$dNoG.B`6If@O":,u*ccFZHdWr"HdZ70;8(Kgdd=:+OsRrtS=Zkn+a8r,>k#P8Hcu[;g,j,:1#!5b;URWtA+D7>h?n.aU)@E#1^VN>4"\cNe5LHfQ<_$Z#nWn"%?!l^FTWdk]Nn0&'NnS?;@Wli3I;/]AQQ\b+!Kq="lfk]C4.*.,i4HL80CL4^\\hG.[q1R_bn1R79TO+)9cZa[!lE:_W"C%8K6.6Li./W>cIBZWstPHGaX!0`(4>d/NA)jsD&[%^!j.a*OQHDSL4;8.(k#'/^VEJeJk^brR^LI+F46AH$a3E.K]\!eng4H/[)fHaCMENk.P&n9550Z9;+I8eOEXKCXlLSfhS%SdT(i,3\6):nW9EVqkkYDf=9=F&##/%]D<##tD[64$g.2j$X/4Dli4adrf"E#h](G'##AAA_S=0IZ+?Hh;:8<&bk*O?0+j]43cH<:W\i8=@ht+Q0Z060d'2%?6"'BET?Q)ifKE`72't2)*/797[!Z0.]7!H6!t`IKT/A6IhrsU+`SB$(`V#4(5Zs"d$k>X=/%oKJ^H)?^,\&%NX&,FhnPi9+U2^_HG1be2P%uTM,C!d33,*#TGgY$UWXA>60=4#CEG5E\CE)A.o7mOs5u`+nW"0_kW$H6OG,!X%6.""DE?p]skMa(;lPa43J$V0JYQ%J:o,d#6pN(fWre=YS14s(LYT=>_3"5@,P"[P)A8$b_0T0PS(.)6[Vu?$<8qb0acRq*+0,^E_fe6_K?17d,tE8%>1[J$:>)6O>SWGbXsdDBR0$`clo+@0U-(E68Cl>L%Bk11o)?%BG>?_8.;,!oCUbEocYW,b7a0#.UlP9XA\QYR(Sf0IH'f9#DrbAUXCYBEr^W643@eaAIf*9F2a0b>fjmBC4t,ZFCs4Bl?#?(6"(HQ#`N:,"4[EY;*a[;V1Jj*p./8gQ$)/9Q;mO203fBlhGN:++,ubAJ8Cl+HbVo%aZ^6UQR:/?#p[BXBlX).,@+qU"Uhka_bfN1tjc_OiJgVV.hJ-Y$P/hKVb'D&\6=5".0I\\o@fDCpRclZmHRk9Or6-O0+N@rJ+IL;LF=.\2?*l2'P;c$Cg^H"/s`EanT(K7TfVbQeU)ruVnW>G)uK[qhHj4'LB"&PmPF(h/e>c]k=e"JqqlnkMf@/U"g,8[mVU@72#J>VtU0'pFrc;cPDMKPokXp$Z`SRkSXmJaAh(m>!G]K5J'R\is9Ekn5-?PH(DRTFd9c&s#[@/cF3'?F!b%D)')uD0X.d%c"?V9e!Qm4cTc.Ao7>#8Q9ULY^R\I+@Yb"pq>JX)WI8bUJKXWduiN^Ms4K,$F2]cbkF!7/u6K59_=EV)QO@Q[#+[`%C&:nh>VZ]0&;ma>bQIJ*"A9=(S)&XGrMT:H[5\SM@hCtTEcdUKJAdYp'^utD0*DVM-1X=T@WD6^%ne88:p#^+E<&T-qHpc6U[,-#NUKd"AH%%KN5qn3KA97K]2Hs"3LsP^PHV:"%YJmHa=gbn4_km^oA>be%_k"nRaebco5l$Dke$bAderUKZPt\KOBas+==c!\K0"DEWBEH$hmMc0CsubJ11c'p:2,iS\luq?@0s!!Ua^,F)-Wh+D6(%Sg?u8k1t\,;7,#2_d;l+]?)+f%6$.'B():0JoJ8._!YC"r-h5C,f7=?-92X\f1gOEc5a"l"5oK#,M5IcFHMq>qRlk#D2iF#Q,S9,U4Qqsu!Zb*&Msh(rh;qAh*nZ=rH;B8&,_]1TAqD!S)Mj?0>-nq=3e!LoRES0GF7&ORA^E-%;a@pj"))a!KRfm8QWJqW.1).u`9!6LGD\$[%*g0A;:r8HVXI2lGS;]$:92?J3DGG8`#q5'@NgXjCcE4]%8P:,:rW?r[aN,Va@SK.g'^MgoD1.Uh+/!or)9r3GRt08,g6lo*/N!E0M>u5`+>WM;4E]W"a!('801NehASd!aZ+rU:^CG"go8)s):#4.=\kp0@d01I02dio_)M5/#R7CLLQG>S!CkQk@"aJI,2"HjM.Y1q'&(@QPa9Cf2Pj-+)Va[3)U*f\'mj#5c:R!\j@RKg3OTbe4]X^L5c[#5:JoeH@_<,2/\7=$nW,Uhf$'Y\=ZU\W:g_k>EL+t[T5.G'-d;G`LZ$LnT7BI?okK6lg!FjVTVm>TKMi.G!8;aTkQ\7S]R7R>Y:9gRJf]aABE35X"`Xq^&)N\:$9HWG'-YqLHElW_3&8b!YC?6r!q/i-'P%]=%[1`XI1pC;'#u5mm,s>N\i;e(J:J54a!g^WNGfcFZQ\"51BoWA4EN^%uq5ur.lU.S9@[L]c>3TEOUh4*W3g4/&7#h8g5NT9_]E$"O(QY/].%I!qa<`=YQO:NoC]QSdVc)ZpOWBT/3:6rfn,;V&:PO#_F\-RlWJGh9s+.(sN@o:i^>!Xs2,[KD,)F@,Z%b.)]h@hW/=*o1\NkPmdYL?7]mF8rhq3d56[O?<\^Fe/B?Gasdm*Q.4'?0E1*i'I4HqI@f(r*9pfW4d]t7"ce(_'"mfYC#YI2TnAiUJk&oV3/0=eCe^1]!nJPM\qUH!p"q/,!sb=jcj1O7ju;oG5$[@oO?EZU"n3T,pD*Pf[Su)960CNG-4]egMJ/8J/XXYh%VUU"t&7?#MDVXc27MVI&J)_J\:IS*AQKdG.<5-?*K)J(&5]-i0EL!5blJI:k0f9+$d8@H["jUKjOH-CEFg#JSgrgiUK6V+5K6Z7Tg8C>bhOUCar62/H]7-<]H7\Ods1WGG1LX@GV6?/#+[l"H!=0#f`"Q'A8uUTNXkV7S`2,Cejn5'8EtWlR8MXI5YYk+fhtYn1r'5gGPS,$*qd^!=Dnte0RccH#9du8Q#b8M?a\rWeU9DrpcRt#Ed5,5[\]L=PUo)71@)R[#6(EW-D)9a;;+Zil\t6kXQeW-6C8T"d]_28RZB!^"a&LP:.t2NI%+A68X^7=I`CA?B8-EYegY+a9Q/NJs'>1P)(MO;@4!-87N@rjpDG_&d;g@!iuq\p<$O>KDZs)mpT0P,DOAn4\Q)3@1[NiS2*nVeQWE5Om!b80K*;[W)\C`^!uMO/QnfpaLnLE\>Cb0&.R=a_!o"*!,*7CG!6E,aal4LYTYNg%6:)9#QA\/4gIR[S9mtA@=%uRfPc@$ZK#9]6Ol9JhHTZ<9E1Xf8g%2$p$79nel"%LWi#e_NZW$Kqr2`hTnigWd6ikb1XYl\r%<+D95hbakjs4S+N-AR8Bth3Be%^\=CUNXT\A^(63.CS=;d]8p">?Z5cpePYZ**)hgNpu@9H3iPH_nha#)Lh?`&^[G>mB"1&)/\(q69,V;*B;A&]lIY%*B3PI/\/+COcrk'XLRQE5d8332D1uF\IL?=3^b%S`!HKs1'hFQh^b;FHt!W+:Du0B%Yj[N2P4Hs^Z36ba*;@_9F[jn.M2^/%M"okYmZ(S283//9JS@e^h*l)M#V>dc2A`mJrEk1KVJraC/QT#Ka$,Qp9R.gJ[-.?5_q**q?/F$Y`WGl,(U#Q"8a.(KR"Y&+.La"#+Tc]1dL@$6g*s49(&DaiV=S?+l7AUYW8rj=t/41GR)_.G$ZioB>04-24jFi`:dIXCl8Es<#eWQ^(TLJco,N'*`W-a8%IDQ,G+K+>rB,XZ:d#Y]nq8)pkrAGo0ucY`t$bL^Xm4B:aa)(9t,ZEqe#:ZnL.9fP0;qB8O>@bIoq@ApM(g?l-Xn9mI5hY0h-`WPL2pQ_Fc?fF_=8?E)oh4Hlc7m3F#@3@i&W>d9rfms$"d"s7cQ>q1$Zg^ZtiKr?&*9@r-L!+JT@6O743)=!@%kqs2Z;E-dGr`-M_09"@:K<:4&M),B2,WJ_a?&o`YHg_H7&Ht8B;e6d#e4@0I>I!*fmY@A<3mhbn92\J+i'/G<9F,REKYW0Zj^p0//:E;$eT.PX,(\<\:0a44HSmM\[%OIO1l/6YT"lQS"D`*(KTb6'<=JIn$E5d[P^U4`.)na;(&p!O%]#1Na%,usEBUL&iOjKuVjY3e2d;+Ee?;"9g``(IA2dB/gCB:B#)O=UtD[R!r>3GX:7)F[40ZVsE7m#Y`];m5rYhTcem,ij2+[D,%-tRoW7c?L@%dc3k@4"W0L8@Zh-)?A_\X%,*>JQ"p11]tUnSqJo2EW_B0U5kOOS);""8,ST=%/(:Jh!'m`=eR%W[ejqb2E'QY3q1mQ.S1!L$rQ-hpS)tEkI&/C5s,Z9VMQ4tQhXut6MW$rL0AQ**I+4chLlF>YKH6;+0s>+(#mnK0O:>u/)aqD[s'dNYEcLNdTjhN>oQ/+&S8L +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# $Id$ + +""" +This is a WAF build script (http://code.google.com/p/waf/). +It can be used as an alternative build system to autotools +for Geany. It does not (yet) cover all of the autotools tests and +configure options but all important things are working. +"make dist" should be done with autotools, most other targets and +functions should work better (regarding performance and flexibility) +or at least equally. + +Missing features: --enable-binreloc, make targets: dist, pdf (in doc/) +Known issues: Dependency handling buggy, if src/document.h is changed, + depending source files are not rebuild (maybe Waf bug). + +Requires WAF SVN r3530 (or later) and Python (>= 2.4). +""" + + +import Params, Configure, Common, Runner, misc, Options +import sys, os, subprocess + + +APPNAME = 'geany' +VERSION = '0.15' + +srcdir = '.' +blddir = 'build' + +# enable this once Waf 1.4.3 has been released +#~ Utils.waf_version(mini='1.4.3') + + +def configure(conf): + def conf_get_svn_rev(): + try: + p = subprocess.Popen(['svn', 'info', '--non-interactive'], stdout=subprocess.PIPE, \ + stderr=subprocess.STDOUT, close_fds=False, env={'LANG' : 'C'}) + stdout = p.communicate()[0] + + if p.returncode == 0: + lines = stdout.splitlines(True) + for line in lines: + if line.startswith('Last Changed Rev'): + key, value = line.split(': ', 1) + return value.strip() + return '-1' + except: + return '-1' + + def conf_get_pkg_ver(pkgname): + ret = os.popen('PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --modversion %s' % pkgname).read().strip() + if ret: + return ret + else: + return '(unknown)' + + def conf_check_header(header_name, mand = 0): + headerconf = conf.create_header_configurator() + headerconf.name = header_name + headerconf.mandatory = mand + headerconf.message = header_name + ' is necessary.' + headerconf.run() + + # TODO this only checks in header files, not in libraries (fix this in Waf) + def conf_check_function(func_name, header_files = [''], mand = 1): + functest = conf.create_function_enumerator() + functest.headers = header_files + functest.mandatory = mand + functest.function = func_name + functest.define = 'HAVE_' + func_name.upper() + functest.run() + + def conf_define_from_opt(define_name, opt_name, default_value, quote = 1): + if opt_name: + if isinstance(opt_name, bool): + opt_name = 1 + conf.define(define_name, opt_name, quote) + elif default_value: + conf.define(define_name, default_value, quote) + + conf.check_tool('compiler_cc compiler_cxx intltool') + + conf_check_header('fcntl.h') + conf_check_header('fnmatch.h') + conf_check_header('glob.h') + conf_check_header('regex.h') + conf_check_header('sys/time.h') + conf_check_header('sys/types.h') + conf_check_header('sys/stat.h') + conf_check_header('unistd.h') + conf.define('HAVE_STDLIB', 1) # are there systems without stdlib.h? + conf.define('STDC_HEADERS', 1) # an optimistic guess ;-) + + if Params.g_options.gnu_regex: + conf.define('HAVE_REGCOMP', 1, 0) + conf.define('USE_INCLUDED_REGEX', 1, 0) + else: + conf_check_function('regcomp', ['regex.h']) + conf_check_function('fgetpos', ['stdio.h']) + conf_check_function('ftruncate', ['unistd.h']) + conf_check_function('gethostname', ['unistd.h']) + conf_check_function('mkstemp', ['stdlib.h']) + conf_check_function('strerror', ['string.h']) + conf_check_function('strstr', ['string.h']) + + # first check for GTK 2.10 for GTK printing message + conf.check_pkg('gtk+-2.0', destvar='GTK', vnum='2.10.0') + if conf.env['HAVE_GTK'] == 1: + have_gtk_210 = True + else: + # we don't have GTK >= 2.10, so check for at least 2.6 and fail if not found + conf.check_pkg('gtk+-2.0', destvar='GTK', vnum='2.6.0', mandatory=True) + have_gtk_210 = False + + conf_define_from_opt('LIBDIR', Params.g_options.libdir, conf.env['PREFIX'] + '/lib') + conf_define_from_opt('DOCDIR', Params.g_options.docdir, conf.env['DATADIR'] + '/doc/geany') + conf_define_from_opt('MANDIR', Params.g_options.mandir, conf.env['DATADIR'] + '/man') + + svn_rev = conf_get_svn_rev() + conf.define('ENABLE_NLS', 1) + conf.define('GEANY_LOCALEDIR', 'LOCALEDIR', 0) + conf.define('GEANY_DATADIR', 'DATADIR', 0) + conf.define('GEANY_DOCDIR', 'DOCDIR', 0) + conf.define('GEANY_LIBDIR', 'LIBDIR', 0) + conf.define('GEANY_PREFIX', conf.env['PREFIX'], 1) + conf.define('PACKAGE', APPNAME, 1) + conf.define('VERSION', VERSION, 1) + conf.define('REVISION', svn_rev, 1) + + conf.define('GETTEXT_PACKAGE', APPNAME, 1) + + conf_define_from_opt('HAVE_PLUGINS', not Params.g_options.no_plugins, None, 0) + conf_define_from_opt('HAVE_SOCKET', not Params.g_options.no_socket, None, 0) + conf_define_from_opt('HAVE_VTE', not Params.g_options.no_vte, None, 0) + + conf.write_config_header('config.h') + + Params.pprint('BLUE', 'Summary:') + print_message('Install Geany ' + VERSION + ' in', conf.env['PREFIX']) + print_message('Using GTK version', conf_get_pkg_ver('gtk+-2.0')) + print_message('Build with GTK printing support', have_gtk_210 and 'yes' or 'no') + print_message('Build with plugin support', Params.g_options.no_plugins and 'no' or 'yes') + print_message('Use virtual terminal support', Params.g_options.no_vte and 'no' or 'yes') + if svn_rev != '-1': + print_message('Compiling Subversion revision', svn_rev) + conf.env['CCFLAGS'] += ' -g -DGEANY_DEBUG' + + conf.env['CCFLAGS'] += ' -DHAVE_CONFIG_H' + + +def set_options(opt): + opt.tool_options('compiler_cc') + opt.tool_options('compiler_cxx') + opt.tool_options('intltool') + + # Features + opt.add_option('--disable-plugins', action='store_true', default=False, + help='compile without plugin support [default: No]', dest='no_plugins') + opt.add_option('--disable-socket', action='store_true', default=False, + help='compile without support to detect a running instance [[default: No]', dest='no_socket') + opt.add_option('--disable-vte', action='store_true', default=False, + help='compile without support for an embedded virtual terminal [[default: No]', dest='no_vte') + opt.add_option('--enable-gnu-regex', action='store_true', default=False, + help='compile with included GNU regex library [default: No]', dest='gnu_regex') + # Paths + opt.add_option('--mandir', type='string', default='', + help='man documentation', dest='mandir') + opt.add_option('--docdir', type='string', default='', + help='documentation root', dest='docdir') + opt.add_option('--libdir', type='string', default='', + help='object code libraries', dest='libdir') + # Actions + opt.add_option('--htmldoc', action='store_true', default=False, + help='generate HTML documentation [default: No]', dest='htmldoc') + opt.add_option('--apidoc', action='store_true', default=False, + help='generate API reference documentation [default: No]', dest='apidoc') + + +def build(bld): + def build_update_po(bld): + # the following code was taken from midori's WAF script, thanks + os.chdir('./po') + try: + try: + size_old = os.stat('geany.pot').st_size + except: + size_old = 0 + subprocess.call(['intltool-update', '--pot']) + size_new = os.stat('geany.pot').st_size + if size_new != size_old: + Params.pprint('YELLOW', "Updated pot file.") + try: + intltool_update = subprocess.Popen(['intltool-update', '-r'], stderr=subprocess.PIPE) + intltool_update.wait() + Params.pprint('YELLOW', "Updated translations.") + except: + Params.pprint('RED', "Failed to update translations.") + except: + Params.pprint('RED', "Failed to generate pot file.") + os.chdir('..') + + obj = bld.create_obj('intltool_po') + obj.podir = 'po' + obj.appname = 'geany' + + + def build_plugin(plugin_name, local_inst_var = 'LIBDIR'): + obj = bld.create_obj('cc', 'shlib') + obj.source = 'plugins/' + plugin_name + '.c' + obj.includes = '. plugins/ src/ scintilla/include tagmanager/include' + obj.env['shlib_PATTERN'] = '%s.so' + obj.target = plugin_name + obj.uselib = 'GTK' + obj.inst_var = local_inst_var + obj.inst_dir = '/geany/' + #~ obj.want_libtool = 1 + + # Tagmanager + if not Params.g_options.gnu_regex: + excludes = ['regex.c'] + else: + excludes = '' + obj = bld.create_obj('cc', 'staticlib') + obj.find_sources_in_dirs('tagmanager/', excludes) + obj.name = 'tagmanager' + obj.target = 'tagmanager' + obj.includes = '. tagmanager/ tagmanager/include/' + obj.uselib = 'GTK' + obj.inst_var = 0 # do not install this library + + # Scintilla + obj = bld.create_obj('cpp', 'staticlib') + obj.features.append('cc') + obj.find_sources_in_dirs('scintilla/') + obj.name = 'scintilla' + obj.target = 'scintilla' + obj.includes = 'scintilla/ scintilla/include/' + obj.uselib = 'GTK' + obj.inst_var = 0 # do not install this library + obj.env['CXXFLAGS'] += ' -DNDEBUG -Os -DGTK -DGTK2 -DSCI_LEXER -DG_THREADS_IMPL_NONE' + + # Geany + excludes = ['win32.c', 'gb.c', 'images.c'] + if bld.env()['HAVE_VTE'] != 1: + excludes.append('vte.c') + obj = bld.create_obj('cpp', 'program') + obj.features.append('cc') + obj.find_sources_in_dirs('src/', excludes) + obj.name = 'geany' + obj.target = 'geany' + obj.includes = '. src/ scintilla/include/ tagmanager/include/' + obj.uselib = 'GTK' + obj.uselib_local = 'scintilla tagmanager' + + # Plugins + if bld.env()['HAVE_PLUGINS'] == 1: + build_plugin('autosave') + build_plugin('classbuilder') + build_plugin('demoplugin', 0) + build_plugin('export') + build_plugin('filebrowser') + build_plugin('htmlchars') + build_plugin('vcdiff') + + # little hack'ish: hard link geany.desktop.in.in to geany.desktop.in as intltool_in doesn't + # like a .desktop.in.in but we want to keep it for autotools compatibility + if not os.path.exists('geany.desktop.in'): + os.link('geany.desktop.in.in', 'geany.desktop.in') + + # geany.desktop + obj = bld.create_obj('intltool_in') + obj.source = 'geany.desktop.in' + obj.destvar = 'PREFIX' + obj.subdir = 'share/applications' + obj.flags = '-d' + + build_update_po(bld) + + # geany.pc + obj = bld.create_obj('subst') + obj.source = 'geany.pc.in' + obj.target = 'geany.pc' + obj.dict = { 'VERSION' : VERSION, + 'prefix': bld.env()['PREFIX'], + 'exec_prefix': '${prefix}', + 'libdir': '${exec_prefix}/lib', + 'includedir': '${prefix}/include', + 'datarootdir': '${prefix}/share', + 'datadir': '${datarootdir}', + 'localedir': '${datarootdir}/locale' } + + # geany.1 + obj = bld.create_obj('subst') + obj.source = 'doc/geany.1.in' + obj.target = 'geany.1' + obj.dict = { 'VERSION' : VERSION, + 'GEANY_DATA_DIR': bld.env()['DATADIR'] + '/geany' } + + # geany.spec + obj = bld.create_obj('subst') + obj.source = 'geany.spec.in' + obj.target = 'geany.spec' + obj.inst_var = 0 + obj.dict = { 'VERSION' : VERSION } + + # Doxyfile + obj = bld.create_obj('subst') + obj.source = 'doc/Doxyfile.in' + obj.target = 'Doxyfile' + obj.inst_var = 0 + obj.dict = { 'VERSION' : VERSION } + + ### + # Install files + ### + install_files('DATADIR', 'applications', 'geany.desktop') + install_files('LIBDIR', 'pkgconfig', 'geany.pc') + # Headers + install_files('PREFIX', 'include/geany', ''' + src/dialogs.h src/document.h src/editor.h src/encodings.h src/filetypes.h src/geany.h + src/highlighting.h src/keybindings.h src/msgwindow.h src/plugindata.h src/plugins.h + src/prefs.h src/project.h src/sciwrappers.h src/search.h src/support.h src/templates.h + src/ui_utils.h src/utils.h + plugins/pluginmacros.h ''') + install_files('PREFIX', 'include/geany/scintilla', ''' + scintilla/include/SciLexer.h scintilla/include/Scintilla.h scintilla/include/Scintilla.iface + scintilla/include/ScintillaWidget.h ''') + install_files('PREFIX', 'include/geany/tagmanager', ''' + tagmanager/include/tm_file_entry.h tagmanager/include/tm_project.h tagmanager/include/tm_source_file.h + tagmanager/include/tm_symbol.h tagmanager/include/tm_tag.h tagmanager/include/tm_tagmanager.h + tagmanager/include/tm_work_object.h tagmanager/include/tm_workspace.h ''') + # Docs + install_files('MANDIR', 'man1', 'doc/geany.1') + install_files('DOCDIR', '', 'AUTHORS ChangeLog COPYING README NEWS THANKS TODO') + install_files('DOCDIR', 'html/images', 'doc/images/*.png') + install_as('DOCDIR', 'manual.txt', 'doc/geany.txt') + install_as('DOCDIR', 'html/index.html', 'doc/geany.html') + install_as('DOCDIR', 'ScintillaLicense.txt', 'scintilla/License.txt') + # Data + install_files('DATADIR', 'geany', 'data/filetype*') + install_files('DATADIR', 'geany', 'data/*.tags') + install_files('DATADIR', 'geany', 'data/snippets.conf') + install_as('DATADIR', 'geany/GPL-2', 'COPYING') + # Icons + install_files('DATADIR', 'pixmaps', 'pixmaps/geany.png') + install_files('DATADIR', 'icons/hicolor/16x16/apps', 'icons/16x16/*.png') + + +def shutdown(): + # the following code was taken from midori's WAF script, thanks + if Params.g_commands['install'] or Params.g_commands['uninstall']: + dir = Common.path_install('DATADIR', 'icons/hicolor') + icon_cache_updated = False + if not Params.g_options.destdir: + try: + subprocess.call(['gtk-update-icon-cache', '-q', '-f', '-t', dir]) + Params.pprint('GREEN', 'Updated GTK icon cache.') + icon_cache_updated = True + except: + Params.pprint('YELLOW', 'Failed to update icon cache for ' + dir + '.') + if not icon_cache_updated and not Params.g_options.destdir: + print 'Icon cache not updated. After install, run this:' + print 'gtk-update-icon-cache -q -f -t %s' % dir + + +def init(): + if Params.g_options.apidoc: + # FIXME remove this very ugly hack and find a way to generate the + # Doxyfile in doc/ and not in build/doc/ + if not os.path.exists('doc/Doxyfile'): + os.symlink(os.path.abspath(blddir) + '/default/doc/Doxyfile', 'doc/Doxyfile') + + os.chdir('doc') + ret = launch('doxygen', 'Generating API reference documentation') + sys.exit(ret) + + if Params.g_options.htmldoc: + os.chdir('doc') + ret = launch('rst2html -stg --stylesheet=geany.css geany.txt geany.html', + 'Generating HTML documentation') + sys.exit(ret) + + +# Simple function to execute a command and print its exit status +def launch(command, status): + ret = 0 + Params.pprint('GREEN', status) + try: + ret = subprocess.call(command.split()) + except: + ret = 1 + + if ret != 0: + Params.pprint('RED', status + ' failed') + + return ret + + +def print_message(msg, result, color = 'GREEN'): + Configure.g_maxlen = max(Configure.g_maxlen, len(msg)) + print "%s :" % msg.ljust(Configure.g_maxlen), + Params.pprint(color, result) + Runner.print_log(msg, '\n\n') +