W'uф}/uVf Uz;s& tBooO>66W gw}xm3CM.i}ѻ{{L; g\mNR"U\F|\֝8i;m/UR>0nDӏMc7/7X+lS(>wq)QC;xJkp*m*˩t*z=Tf{p*_MҩPPwy RU3={ \lR%|l̇ σ+}p- T۠gb(Uz`Q#Qt笜{ۈ our;5̽ B2>WmxP-P2FQ$fO>i/23(]eVhh *X/3_fyve>`֮^=hd@}Ƈi }B.$@@S{XG݀Z׳V>}==9d>ޚ[6| Ov ZLY8ThɀM2)H⠯}/!:sa狖;aT" %riU.x^7VΩXjZ>ր4k];*ɇ!!Xhh4E3B֠4hhiL#)Dsu[=^q fvL8!m-iJ(ރ3绹 IHE]D{Am91юƳoc _6%́ .hL&SkZ5B2*fDH=غByu֬2zZFhlinJ}i׶aCU\wZI{P.lʁq]P}Z Ы ;X5@hj7]@VK4.OEY; Pg׀zn|Pݻ>}!ޏeT6`o]GHNU=FA-U+ݫ뻭bBSXh-q4=U7] RMk (7Ӡ e"|:|{Ϫ%U1@ (R[`P_gyr =̓ 1gLMqЖ qsv oXy8-P&ABdx;i ۀƣѡ4Jئ&wJlAhYl@ԪH>^7yƀvT{+D D@ж lRH2az_rR!EP/L0HVo Niک{a#ا`ﻁƱ\|p C QiB-E1 F@ wޞQ, ֣hѶ=JQ$z(x m58z=UeR4P`ҀPemQ"@ P(@H(P UwmQ@ T( @ UT( @-`)*P@PU  $B@PP@( @( E R޷Q*(@ ((P  U@(((  (E) @( H((J P*T@ Q JEB *E "4#L!@@H#@d2 4H  h`Mibdz'hɉ40ddCL4M hM@Ё@2MbbmMChi ԛhG4& xdzF2<Fi$B4' zFF14 L`mISMmS4$QTjzOT 1DM #A &!`14`F 2sMqXז^C,(s[EBT"N29oXͲV1AI(AJR(|*ss;z|MұW9T~Rf%qzOݹ₿bSkuyW+.{ XwwGH9!AOO( ]R~Q˔@z~~^,!2)&h99KGΔ[UO=p{`8vIz:OT|)ѠhZ 4N'G5߭oLごwN.$% }х tz8?쟡G5P|DژyfP c}zAHR)$u;QT ~2tY^g^I"$r,;J0$3L#f6JKSl BH@&x-$3 BMjߊ?Oaڈ-N=zZ"Ba3.zcA  ~ET.Qv,lUM$ZsXo}?,) kseJi%H-JD)s߀QH5C-;LpIH&JCϜvTO8sXJylC7 UϚf[޷K?4AmHzh|S5/AvCg~%S"Mb^NQ+K4zj oRQZBaDV%VS2"ՙyTVZY)RlR&jB-їiA(`ɀ!2@)@U sPLHHD).!u'kWLVip7k/[]zBzTHy$5]V׬+a"sKsb3"H Ez yA7.(+ Vdd頋7yNB W@ 0u?ސsѺ̷LA7Gת=3;:TIs)Zdam3aM7 /I Klir<0aJ4 =z?ʄi(6oĵGLc&]4i l\Iyϸ60&9)ǒF]K6q}U2# a1ΒML1 iG;Ǜ2\$zoy-KHLEt[_!vs,(ާ$}~%ЦK곶ڕ?\:GG|3Ѵy]GH m"Zjo0n2c7fs.yZ䤰pU6C4qOcRHj4$p0D&cK]ƶ!/N?f]R;RIp Ɛ'JkHHͱz%ܟ\|{ʕd&.E5q>m>#1Yl N,~ `4cZ2?MƿloN{$^WGԚ<.3 < F6[h((-9Φ #0S׉3[d ypR=Li1sJx6sRtFXAI|4o/'% OkT,էz=>9%=,\%yNKxp7c?9O8}ҏԵHI f:_?즰ES$NKDj&i$#HE$G.9 #"sbdpdI`6 FqPcqc@ ܠlD$ ls `AAa?lfI2DI $lXpqʒ(cń,y,B0G!BzI碬dVDYOSI("%4?ԩBG`2I 2He!@9! dsBO9 BOY ObGv*_U}vYh [}!\9,D ީXؓ .ĄJsHg!N+ }G{D =T>9U<]ټAf02(% F@$P:t"eDA"!'+Y@J?$?x}C@'7|,i A8;}I@kg ȃ!! 9#`sQ1*x$p:PS &  )'P~?Wy+\`\NH6y7@S.ǧ{+7]v!W2bc?՞sz;@!!6yh=GV\C[r! ~9yvxV f$V'1+:ܹH)Ï`=H$QA"D)g-Y#ek,Bm8M7ܹ2 &@$ <ܹ0( 0(Ba)LOu} \Yh0 t{P.© HO0DP?U<ˌ֖umqlʉg: uCCMoG{DV HJFBΉGЭw = N̐a4·Ҽs\I}0/ymL>fݙA@H8#=f'2 J-(!1yv`>+Ѽ{ͩ}^S}I٥n*:} ֹPF?Ob[Z}3MsAn!r⢔Y珦`?uEŮEilo<:Tۓ3g;-dVO_}6~R}۩ch՘f:}R( F"S)\ bS$"QdpxW 5%D@TKmO+W낱4`{Vr nGͪv{V <Ǝ.ז=2bKQaǴ$]zD{'K%@uX>`22Qݽ0-i!mcYb!c}b_y Qӿ//t9^6y!m ]zlN^ ,,?>ns˷zAЂKg}aRbkT G(z4lE"D(3}A+Z9{T&: $c # !90q ]6zKN+SycG#F609n"!P1l] c96Wt~%泘7Tk4~0 d4NW Hx&&|c780{|d p(`"ٚp=vr8 C@$CQLHJȠA`>JI4&0@)$ nI401]=cbxIcqqϪ&5by_v6#FcgKsSrHu=DžMei6M6ca]$e' HHOud?'?tGqr 97]YBA4V;w}Wbm-SU}kAA(*^Y#-L\<(Ǵ+ /VFtYv=ס:ML-O2Gi!lt?eJH~i&< yI2cJfC}I5m Hb@T_b?IyBt>Is@v_&B9!#괄^g2bY܍GمyyO2ԦHHcA;͑T:2a@p&`oph/1PYdXprB&Zh0+U8q<+gp.)A.PΧ}< "<CqnPw/'jVR ]ٛ[> ^*6˴Q䏊H_'7Q2ĤUK${''#h;09{vD%(бBEvp9=CWI:(/3db6Xܭ ˾x~olq ~W<268.c]Df7m T*;\MlmYc ق\]UQ5PE±4M?fov|!#;L st~V;-Ndg,R-8b4ω"p&;;_vguˮ|j$( s8ą~ j!zh|4 r̠LeЇktU -iyN `=l܈ĎfY `l@,-_بͳ{)Aߓ[ *x2_ϴO`%G 42ݿ"ailOO`BG܅f;CpXv`K@@S \<MܬRbĪoPos47pA) Gs?IT $8*\P|AJxsB"BΧYYd6mTf9nmF$wl̨xuzw#ʄ(;G,/ 6LIj1?J0P`ENj VhyȨps%nBƹ-цO0 xi3wnZ l2v빨IS724";˒dZ qەxu(P BEmP@pPQ |@ 9}sg7rR;}#ZNfB xx~Y[`q1E kI:BAAlzc#r8`(IM fp|P130^:jXG>"TQ%*Vs9&A>rAe\Q]> I!D'O|o%{9;r $T&G e WO#*[ i+oA!Q]n ,FL|"An<; ^9ώ_q%e -ǃg|kߧה. }FU=}+Ʒ?Ɩ#ĺw3ZdnBdPx^1HLelrH4 9>c]#.5+{MegiW~y+g6k(fHC>Ej*&x]aK~!r^\"UH.JQ+7OK 9kJG{KOs}&*qn?} Q9/~e:T]#`/rT ]#?'ihd(dm@:&A(ݜUP~L%wd4oZy@B6( =BpFsCneaI NXI7'Ao!. 2b \[*>[Z# K+r瑧ԒZakx*S׿(|w<|NN8>\x3'WQf Bi/AKLG=B[eG*:"'ӞxR{^r{|p/ _?e8#~(ڭJ]кmmRj/njrRX~!\avUw!Y R>=;"٭N..FGy Z<ĢO\TN2H*vhFRlށ`0s0,#'pL3R $)2d}YS}.xg8sUB| et@j%"= /GWdBA>)mca!e"2GFN!Ws4.i?3f@̶ӜFjB$+kݞd^;!aʋqyF1eVP9A)7,}P0bW߾CS>DP:JkpPZP Wn^Dq DL X2dM SZCH ðVX*zܪ6qno_ b}USA) &?{G}ކI Bqs]Q<=5$ a'0nrd+G.cWޏ Kڟbh1G=v8coN}oqŴޛY@ _P/EE*H.0yc'!AƄĐL ` ?YڜØ^31B'arV24VZ#v,'8o7 ]PomOȽoxg'lj)\I'G"( 2_VԸ1Yv,*6jnG̋&5 q.C_90ȊCă-pe;.kmhYζݕ&x Gkj^uy[-ZhRtl4ƮL[9/c)vsʲdi~Y<$l i#=jSGwGb#WOU`)$yrd'7OJO/4sn^gtѴx %撲㳼Z-!2Xk"@?o$eT^qc;lOP?s>094;4>4+O'MUDay^:A;[; jޮ2!A+pk"@q&]ЦX΄t+3aXae0,w8`">QJg\ ܑdKh݊ uqlBD [q;[O1'F١?{|Q[clUDcgBv!~H~!J,z^9(7O^T4=_-Zd={u[ NI%^3"De`&.Lҟ/!7m3Pc,S=%o7\SUtgb4v A$|yǩNj"JlW=tpW Z&#~%@خu԰HN}(HXm;IBi!}&@s2UԇFGK|t:3J@Җ ~Uk$?Ih-PhL\ pN L J:ˬӇ'O[C3)&Χct 0?#*hDžCYii@D<8Rv(thM4MnbT|oNeCOD`ogر&!T5p͵ɒJq>oYwjcڲ_#,`oL9K|L.K 4DO"ߺA|ő%-`%)gBvFeZ@!7FҀTQQa)rKߗ`2YWr%xU<uxγ%VjɟOvT#b1DUE8ݹH zK.ݛv|節K$~j>;CP B'vlY!SسCץ(Ŭ"+&}QLd+i v2a  nFL >@4IX\6KKŰQ ~637-/mҌݒ7HGI3t.eZnc U  _s!]I$P e0u GTuxqxV?lnkY{m~;)\ʼn*yÄ@zY!d hED~ dz:r䬳7>:aIU=k +@=~6EΫ/V3i)GD)8T.J,ֺT?ؑ.P$!.ʯT#4g+b8hǾ{O۲Hjzk96jFÅSgok1apxރpguqOpէ4k~,V*1L"SDNu^VMUurpխDs k#;T1/׊8ڍw>&=~SYTjSϊ8zZi~KZ5A#l0ࠃ. }ru>oou5N:v"hnng?mmv҇<}ՋÈ5e9N^Ĥ2~}H &ka]ڝ*}]߶l+oj/vp/?(\q+!@ful|Il帐s+d nt#S\ Qz+G[2ԧpǝzXoWEGcL=F*'M"d#ڀ?DBŻT@o_IHèee&qL%Z\dvG@1g|P3({'x%ͪq ^D&gly-c)~\H2NALk )gxJUz1|>,*Vֈ>:Zk'3N?A0̓Cc[nelҨ E 'x\7{a1:3woW[XIBeh}%ظÛ8GS\[Owt:'u[zߵ'\3w4#64#܃( n}ќ4߾V2!'18oDf`] ljA1@`5FvkùsPW?{iQ?-٨O$g1{c6l< HAD 9lR9{4*G /r"oU=o!H@ &Bkhk >QUoIhRAy+5GhE=-}I`v 4"Lϐ|HGWrnf|RsⱵɸ`?A?~|’^=>KB{hAx?~ì>)AF6khs<)M~ Zp,Mon4 @pZN4Ö]"~qw-@mXDŽ t>vN9ݓO;cz,#s (z*)%=D"X؈'#I@kT#\C26z@M ctd  @lA4{1 dF/>oaR# h3R Cҹ:5 ^wJ2]Bnh}e3ٶ_}ʍyH.n3_Ss!Pʹ+kΐ&)wd10 ]q?(: -~iԉ70tBN!y -I. 9r>qK~J(&S{59@y3'脇Gf".hϬpbRBBaSLO*EOaC?~jNڷٙ`Lyccn+G'D*VQ%Z+PYM\, U"-p-DȎ-seMo9׬gvgjC*j sLO}y|>>Dτdiڝtq0x3RtKbLi ؘ2"`cAPEDbDd`""PU@Q("44bc`v-a1;K.{66E"4=PCRh58C cHkNUR>ǁ?S;v3 E$!JLj7}7(ށȎV (͢9x LbJ9+ϏxXNS` h,{7OH,_vVO@b0j[9r$mpLPO;6xf5L014t2;'@y$$\4)dR?ODDb" F$AI!(mȒtw'Hm6砋]eG "bDhLh [ICLY|l#yBIT߷C}j[3b&q6n;&> Dq eTA'EH!( _Q I/=%кrmrS =n:"[g90ڟHg8p%7;(>]8`GöhDz%|_ ^9vA.$3yT<FGaAj=?4C4&@6azhy b@eH)ߔ=Ͼ" `CA*` ~q`hA0!BQ $qc>RQ M0?0II4>yC2 Dj@@"G 2F05R܌El0KKzAge $o~뭗 7JvӺяzLYIc(vș6wpG4Sǥtn>cCȂnuIf)Uَ@-eJש1G$5G.a<ѐm7Oތ穒C;s 0==3 m#j*hrAS\_!%N<g==k U@ #ljHlh)H/sL+\֜EJ-|'3D[z}j8,u.Rucpv}Pr!d)Kk[I2 f|u&m>kdÈN˛ϥJpR?nj)I o1I$O?{kz RE$#wW/'wv8Mvc4"4lWMJ{hU|oooaUڶֻAlɝ-./V_?1VŦb}iƫūKJBUPwT6Xݳ.1Nlwgd. DJ*Z#m縈JIpL4zZ2&~sNs}'q2I Fwce^hiix2KE^9 MΔǞ'%B,Rӭ'xk.#SV&zTtYœ`v{qZVE84q%c0,J1@08cgre\)W) p@x7v%6K-Xo/:gw0IP$FM=Q΋H6k1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c?Q_(9_XM7}x>{/Z&f@>Ibt,qQ Ryi37J3|4(}D6+Zo¾[M;dXhcZ" ZB#&NCv7;XƘ\}3U&Z{a ƓV3ixZtޡ1OMWfBmJ Tӎ7 ;cBPG&]G,6ԢLSZSfY;9$7曩Vޢ2@Dj = J:P8Qҳt[ NGқY2< [ɣCC抨j[O\heZ8LEj46Fm(kiI%qŻp|ONn?MM7*!Z} vf"`2 wfjm]}~ԏY0TO1ΒQ_jۃi[>| &IoL,E""ŞL|ԧm⼽Xy1tST@R x#1J/h= K l}ZsQԎ\E97+ݰ]pDȖ4I\[iގL1M;ЃI 2fcWb䶙mklON˶t\jw4ݯ ܞVZ<9Lt}rŌOɤܘg:s_K[ [@cb:=l#a-)@gqdz,hPgwt ӪXfNz~cgwvEpصLkbOa~ߗ{4WVkYL2fZґ4sB֧zx@aQ`,5rQtH4D;R}#bwQKSArz@d* ?EXAƶk-$a2*Kw|&nЏGOߏQ=m*tG/Eidu_y>\__kLN[*}rG]YcHU3se⻐!t茳m5H_5gz9*7i3aj!ƖvX:x_~y|Wi'㤧 $37( њz]&>C00⡍̂WAͿjqcV# 7ºj3$c 7-jP9چ q8|t:i$DDӆ3spɁ!~L2Lbf}h}B 0,6ʄ cMZw!ιm#ϝ/5 0Tm.;2CqL+N˄fe$هC1 !`+6<릿I7[zvA=HK|]"'j.rx~ݾEnB!@ %l67gv9i19a"Sd Ṩ%ּ3cݫVwg˳ύvyO_TRwusVxv^Qag.~2I29Qou#ݑFִib7.uj?$ pl-LAH;o߇ԏc~| o3̒csʠhpLU3FL,SBQX--_:1B3K*1(a:=w9_ ih0~2ϝvmƨBH܂@`j(- ^+sRc裫fY2hBSFG}؍*3:! yLJ}Qo87/{{*Ik՝D2<PT;[*1;Jn^}o{ġM) iF(ͩ;Z|Fw?aQ,{Ϳbx3dcul҈%#!N(O6dd;IJ$jZ3RSB-1&DRNXIftB3>~6})x.%?/*'cB:N=2O Rtu}L4xv}VqrEFJEFNuvwξw|da 0wԯ+.σ *t '(ۤќÅ$&m2!pMC26÷S2I$" # IWxjҌʨ/rm| Dlvd&+ Tq=&@v|~;{\S^g@x鯏dZwg^BmK9[^i}B&ڷ~8}0w\W\d₂T._bb MBkcQߠ\ºAQ&,Mr9¬`L@ѹ;q.n|+Z砒J7#%tP,& V̇na# 1!dttx- hyE]mm.;׹+AxM2i 7˿g~xp)Kɂ)`1G&NE%:t(B! %}X$sﷳRǝ] rhxqLʲ!L~v@e v9"ˆ>M׉ֺ@;Ttkg^.˫ v{gQssC=/39I_g]aMeKs'^wP9~j<-DX#Pqt].֒RŽ!+JhR҄CXpB,WjH/3.%&@Ȁx],6R!WdC Ŋ "0{qp4XXSh3-N("Azu#ݍe2SV Dž~gos}l\to/G55jd~[m/VW~Y7 @{۫.$>uW9u ՜ ˶:gdVx?9iBC$Re9rr/z]\R'.>]ɲFIPM<liZȒMT;p.&wmrLo-J t) 2UIAFDH@==z8&yxx "e2BG`3KW)lwS_3s;9m,ϚۅlS9flP d/]-Jv JSL 08Cd`VBtqȽs5݆&Yb !`qڙ^y$]ƪR Ce,Fajx6A:-rhznFPޗI @C[Z(ZfTZb-X&dЖ%-C!MWaj]%8Z&vʉE)Ϯ;NLҜ9mCiJuu4u<^I,>9BL!|fw~g9m97T)u!^~Óo9_ Vda?\0I'8BySyܻW\UX,9oc$L Nd@7I., )rħlެ~Z]X+CNT{[W*r0-ִ̥&/.twtՊ*p("\Ј)"6<*p͚h,ݸAgqbt&]s ;7rIt^љÎkM,Q4I1$6$!#dv}"Rv_O8͞4̰5'&*#Y15 3vX2PmvI"t@fdRBZV [ sn-DeFb3Nf~9y $B:7&)MkҤ5ڗF>VlS>x_tJL'jǏ[?ݞcFT΃LfDBȴWلwrh:B g}`3P9ՄI>dOi^F4(Jcb4EM٢2qs#wL;3vv4,cY峓zrMRVx3 ppo֜]Em }d:ogL6&)+i 5C/ŧ3׾/v aϓ u1,307 CISV!ixA#1jCPl1RjT00DqgtkءxU6mdn=#jji5\&ҒJѦ9Z{ܔV Ozbm% "d[)W5>*ezNϡCީZ^ӷ +һHIH_u7eտ~Qh _ghBN IU_p1өrJEhc`#"^g0:b70lڠk;#mHoMXAe@rwNAFsx21Th,jq"+ *ɭ{_rwϓ׃濧q8XUj2jvٻ-k^"/kW(V|EJ~w}KYPwwPOZk}[gu;D? ?>cdzymp;uqUk+kJ[(^՘֑&/1jͱxOgLf*V2El63tK b_J l *]4$YN*S2ľW{DT"3,)GLg[o\irwޓx3+^/EybĬZ9xMa*Eա7<07ojOnbocj]YFCY6~-+g6HX*8NsZ`_E!<0JFĜSl ڶ#$e5P2%?uYe)f?ؓ`MdXfg 6ic`3P9cs,Be<ۦiY[xaƜjG_InttfHdtogR6~?]QDBҭA8b-k_=5\HI?jO{9({oS$ǸqwAELMy- 0 n ݍumk[>N7:$֪LK3aXp<)6Fk8aE2PU:V/=ީLxi@}p{fB`_yotWHjuiwըc j}^ʿjx<{R_suSjUֱfȻq!.V'y}M .;E[AUo<v]- B^Cr0%;c-`3xW:dljmŃEo*v2Tˮ1hŴNZ'zY0}%x}L}>z,nFH vpH!sUɹ̽%c')mtXtFW̌}"5Ͱmt0ɩM/!7Tk b>ZנǾ 7s<#oLt~_xμ40,)H9HCɁ38%fl d:% q]Ll~?-ml%3Z5N6=+_ &'|k'BϘRS+%|)|AU0 jⰼ8fh) 7;j,0eYFt*+88; m}^oT{7y}@b8%UϨ *^k>Yw“ ;El =I:j @cy6ڲ#n9 Y2NhX9ܬ\?^V$Jұ5>5sɮXISKWW9 근&K.澙ߍi5w p$wG0^h{4:j_ QMRk?(?qrcMS#`LK`kYݗ#͉b :|gOԡtl(U^WbW0f=fmYv7 eT%r3M:-nZ6&?OX+hn+PGwel+k V>0-:C-اJnz"EtSE4x{-2*۽qAmMYުUtnBӰ x-*K #kog-yT((e@nى}'45ʢT (}4( mOU e s|2_W!C3 [ujVzI ?WSuyic&=+3RGh`:4Av![z Ymz Qv%3R{uI 7a7:|E$=t{b9- /]ŲV=zoʓ\7cZZ/)7bk5T7uD*dbèG1\ؚ y}4&(=5ttK}vJ鉬Ye fݫYv \C*.O/L)yՙfnaD}#J3L.?r*]w*Q"jEեjLn_NZ i $*Y\ʎ2ކnuf7^{?C Ղ2/1Ґ٨4y4['ə6eoo{]NiO\/[9IP1b@\ GGN $̓7%o:.K$0y'nt6_Լ#]xkHg\]< euB\S!}#+Ƣ>:;/CaQX*D>S+pQsL[c̛7. I C5ErG͚pu7C33콇{g5Kfv9ӌ`ɴGKy;L*ƖPʨk N-PDkŜ>bM /XCm&1I^n"ul-|Ihmb% jEWzqzTv8eXF,,uUޛwE9 kow[9+r alV~B%WLcQ Ҡ%̣a3ţ0G'/\mF{B֬2_I%`R&3yU-/kLT&RiMD\SOWh/n5:*x2y8R%Q޵`E.<·=QX?$1s#++)Sz~H\w SLHZ/g%/c5`ZOZY$Έf|0d W{IBC G]*DP \!IfQgX*Lݢ QLl`0bgܞShϪĩֽ03q|}ZJU1[4}L:ʅ>[@m8|"*^՜9KJW.v!G0yuכ9nuizk9A[ΉF_v5#t5zo߫MZ?lz#SUD@2(,4PE:bUA5czյ {)"$!*<7vu}۵jn*@pj ҥ$Tȣ)f^c6u+Ҽbrtlf밲9md;YײMlekK=笀iλL vWp [wچ?,zMeC6Ba1쮙]K:4Q&( ⸝qaU\,hL+tڣT ƹPRXpraB{PAK\nx831cbh_5~{[)pXGD_]L>GSa|ԛ6^7RŽߒW,sѽ;MX;h8,T !ݤ/datrR@bL4q2Ko s~Q];^{wR dy^z|X` -[}Y7g)KEUP,X!hu´]j}k #@J9CVئe b͋p/0c@Bݜ](r⒳Ӟl8AIL_ir+ŵ{׏fk.Ҧ(QN Ǿs6.;/n]Ը@YȢ3ȑ?&vGƌKjΖFf8T'_"gj ab3}Qhe5qX _ȏwn%4?BtnG\)8  v,drF߾S78wg9C@\c'$5UT¾&!.*u2B3Dp-,g:&NTDy<9.| %8cq u/#tᥚ!WnxpqqEds$r~SQxdijQh-pJE{y)zf-t띷UAs6 6:2.lB8 CW5.)әW0BdHb׶#|gԛRwKҜq=L aw @ dzq|5dwՈ4Ͻ|cA{OS)l2@iS ~Rҁh[C86 e?$}sf[=A*`\F+y.}XY~+HM%$xj<,v.DC!?.qЋ9ִ\675 EԽ._gݳ8-~Ш~M2Zʊ-M7W:m:dtSVn)T=7T%Yf:ȶ,չ'T*ɦAm2x{|V(4.#% Z!0.}^:$g el}u{mbo~{w_[p  @3=b*8JO%:px2N²bj(ɣ 寤 1 > mV]``rq;WZwu3-T7d%i9CD٤hH+t5>PIkI`|0pO aIGag:FŁZ?(Z f-}fqb_AJ:_\}9z)@Q}Y& =: _%Y :+KQ2 ZZ w gRltudF$\l,=7]R2Q)kdJ誖Yc0؟kЩȬxt Nf*Mv14lO$m(cR > (jOSyx5`N uGhC@<GK651>PL!4 h/״cˤǪGrg{M#ۡ|WS >\]9 |實r=Dq5p]\O曶&L-D@d+I4˴/'Ī )qV`(uK nF2"4PeEY3܂/>8/QAhuܟhn8!c[hMx8kPQ?ŏ\|e/i> ~Q&KK:; ,?0kolh=+Xn8 9%Bﯱ<8LY#<#@m: Gf+j5-)[ R6ٵLaN8|TbRNb}(5zmGq]+8/Z ~`ɯRE)4?=VQ ̎&TңW[;%,v.~U*7_ƙ.fDGgWt˿͒83:fI| DCjY wc15!;L-; PceZpc\1<=ݴθ`I1/F)c蒥Pfr*nモNZ3LUզӼi5--K aUa?h;șZO߷@qBFYOBbvA|O `@+zk~_|%oh4CÅ}/)doΗ}d&+/ (%{ch/5*̩<7 jW39V4't`O!D(z"x8xH/sOZMI>RJx.R8c5)"Bam"~O_-ఇ20z吀*"s?[Z"qv2C_M.-b=ait frkG1^y$%P i:#"B-x(uclۂ8o6yX,M7/ Āػczr=@ĝ7^(Qgv"o2th0W׻~>f05(5x7LlAx/χ/V'oUK2ms&$_[<8(՜7 q >&w[v %^ĒNC&ˆ6I"$GfqXҟ"_ (R&ɦ"Υ7SÍX٢ \4,t7#nA(E1eh>$HM'x}&>qMp$L _Z Wu! M% q:<'U.s;ͨ^G細I%C*Dygz:"wŤޘ{25ɕA'w,{hYĖK9}@5Y/,&QvwgVB^xaGď)^O{ "4ȭz]#gCz't砓;l[ah(Iֵ}yDnn{Ω|Ov2?stW͙T$ϑ0Gf}ݡPRYO#/ -H}ѓ;7K$ @'sjmJf/#%PWWς?|NJ4?5!'!/u֧x [j N&zEF1ZCOLTZ;!Y¿j" 'DQY:vcACg<<m9h&W7R'vjR?'^aOyϞ0͌ H3# 2G8?9>'nU*8C*S- 4P[LĠY.Nؠ1хY:q! {'P,U^\ @P0GhėwCOB@"I'LBOI'BHrIQ Yh-HM9LЁUYk~MbC0  c G{м$<\t!bP`܁7}oKծsy8#'§LXc)oDRG9}7Ni; zJyե:?HG7B 6휰㻹9gٌF!$'} -ONX\qñZkU:+{sN3oȄTխ4yb IScgm{GFij*>,qcuBGޝ|`zKI}c|Ga&bd5gKsA P:3_ Ժ d|}?CyC{[ R{DQWxq}[3?ma4fHERg F= G 6=;sj/"eoʹ QȨX+LcrjmųU4gpD@#v)%{o3٬ACcCRc4 ۓ!/M@1/I44 D"@/yFѠfɠCP.?Ox-}TQӝQvqb 4/q1YO gΜah2c$ /|煽ZB`l@$쐟2I" xNf4,hP@b*˱.餓iKJ-$^=f#dHMG, $(I! P$H@'Rz'@ON0̛2;RhO$`5& NፙHPʐY$vgeog*N;CxO '`` ` 6:B4T bfKR= c1,9TcA&';cIC,!Y?lS@ p0C!9߈Xǎ6Dor<"4VeN:  Ϛb@Lk A6<~Z]+*a ٶ;qfńKOhJmPi,5OE_OFV6"!j,?5wކc6a1 k0v/PDzbJ$}w՝xɼ''%f8`_E\ޑ#ۨF*fKQ,h_^. ɗ8uEb%( Ncw}bwPL JuKc$),0E$VfZSU7ٸ &m\\ؠ N*l駸'UI VUGpfn!abzv *J, ;w!D.Bq'V{~|B!@N`Mw> "Ч{\ڟ9AYR%Xw60 jHd*,H&ӫ 8fXYKi&&AQ^8u"-?#֙=y ,G50ZbI`idŇ~JIЈyw1<2 D#tsFƼ)ɔ\ߋr2si5yU=DeVdTOu=֯hMQ3|d/ VCz} :q47q)ɥ|/D_r0D)VG3K޹=Yj5ĮqPs=,RXHDx͐-[b=7fמ#x0(Z#uLJAcfsS\/|t[FFnVDPo4l%"@Txxkaf+Dyfi3u43g'iy+Pp]TןȌJ ]yx]`AYeE7?V$airi_9w'(LSWΪY+.Ee0q3$Je.r'E_93!" C{hC_X%PNh}a1/sBk d|Pc.R/LkI>A)F7>Zu1t)ߏl MV`W>,Ծ$xh^lhkzg@J>_1m0&cR=a9> G^;ija^w;_= -y_$_=Yڢ+kiĢാ_[s͗Ѿh^Ntz>@TD:F7w.[/q q r mT_P[ڢ|Mr Sb79jimjqE~cvMh![F7p5 K* g_#u7;SwQ+0 ୉#ru:E{$?KͨDfR5N=ԜၪBz4N[yq BZ "miB5k)"Z!i^۟c<  .GiR:/ˆ623O7>F|Nqy ف"E6&Ff 8!<*YrR^?/v*jT=0d]a+SkuYU\;P"f|6{?m%M2_fTdS*AVxbje[htf_+N% P:ݓǠ=w9%09E;$3OkӄWߘPq{m7E\# F L@85=D <_[Sp$p"^A@&P/ ¨d< ޒJyXzjvƻyXe{V,/( y 5u*v 5/LӪ|5%cqFȨ =(^_QxzDZ;VȻ|%m pYJxcRο5{-BaG9+ؓU>Ø.&i<(h^MD߃~yeVd ˮ_Z~߻~_]F%ݙ +0FLĠrp3#{Nq4Tcg ְA T F/H]zBj!*lpi}?|㽊1#.P{SAp0)MA1S&z:jw'Vq)vz]XBH|*?:Αɐ`oL7C7Ր^=FXᅳC_ {9#y>ybT^H}e'm `u *f;?G6˥9LiYQdq=MIOhoKXWKGqZAb`H$ps0)1u-^VAZ~Y@IO|Fɩ A|8'\𞓥|$L1>,t`\\d$~[A xPA}s @(2 xRj/\^?`1(wqaN 8*˽iE._‚\";0D PO'v%pF+g=x?yް[Njt͗ {pHoϧI,$Ep.O}>VR _p%!4@_2GO@'hFY{"}rS\; _لgVoX ]Wk;Hk{JE{Ȍ{8';Nxn:8$5)"O4I}39ҫk;BWLVפOO9FARrD.sxVYGTk0j΋8K7VZYv -cO]n;!ebE xAN6_*#@JCSp9tHf*CJ5#A[vbKZ j#3K"bn[LQ*CD0y)m#+7\Ze_oJvH?RQy-Jhb؀z"󾿉d|pԁlEGƾ 8`rJ#\3ܛu3g.g_W؈ (& f F݄Or"gZ?sfh~m oL*@6)CiX\FQź'|sq69'ᔧ}X&Fvf2 S>6S 5Tw*tl*@~x>"ע {;eV !dphoHoOYSѣ%|OVV{Ş2vf1Rڻ+8`")3}5eo@AfTxor6YE'cy6w ‡egr˘D"Dz/-#m?ט;6їES_cFLf&=̫JJI11bWR \x/[m@Y]m't5Rg:3-P$Xp;?D=gVQpF[L4#R! 좩H`$$s ~lp&3aWA魥R~K[RG')VpP蔩uPbQ.6AUdi#(uL1=pB@Vp_RMX%G9aQys3&H$JYP0 -%{/ר;=$5ߋ2s* ٰp.;J{6j5"vhʆ$[[_"zAYk=ґ\_C2~*'Hz3wc.%6^7&Zr˂DE9y~7k-0Ȣ+O|dϢBtj*O˜{.y 夀!WTp3heDM3hLQ|*jFJ/E⅓c*87EF,\%o`(!]ġ5ҕyzjۋV3PE(A4q?8Y8&_x~կPkhL/CZXIH0 _f=6^-յ3۝r"*c;׫iYj7( ~ c",`THͯZ3|x^(,,‡x;.q-G_ٜJy5 :/ 8hQB@0_7G[ 85K~d !Q - NAca(,N^"ݨXk=0(ζ+`M6yyO=ݥNcI`u+=M|T2 τ/|SW?NH"ēcU-!m9!<Ə&=l 2 x=IZ sV҇|t8u `$X@PNGd1Ѱ͇a\e6w:c¦L |@rL dBi^lջQ= "FO\!A+ɢ'b?cP$BlLlUyYdjrFb/]1bAӵqVO; {gn<_ Nj_Hrˀ!i.g*dLQw%6p|OTG*:Qc4 !Qlyq\mu3訛.4 ny8>`ޤ}@ YMԠ*1s.?%D ߢ96ŀB|wHmxƦci aHq#3`Ji1J߼CtyK=2lΙXzDg2:Ex6gM^modppR&PCho"}PFJ@h[V|&.^lE2_dvF,KSJw9*@(Ӱ J]Xrn\7egʤ/?dlfVfA{f&7Ow"E76Wy,z oԑwuA |4*abqQ%RT6 ̶crW O*Έ 1LԜɆi5K3vq oXj 9wC`Ў|RN\|=35]4h>L*Ժ]_HXh',&;A,[u>=.Eב6fG0mo1cՎ   D΀l680簰&_' AE7a2x%ʎvH `z]zYDT`_mPK4Y`@ߛㄉ-$vD, a`3fB=o ޟ??Y5xET"&B f[&-ϛ>6ֆi'54xjp_ㅊz q(2h ׄQɚ `y H_q]*<}y!Hq>Ns09__Z~sa)oi\%MAlYm-϶$sݚ-*U3  E+IŻd,0GONKX]i+E-/joQqJ @B}#ۀ]̽ o;fB^t*-?sm˓nK&(`kd_"9rԣԛ?8=IDva=9r|bzK}L4>h ߽Ggx [|!;)eqcٓ?+߄=IXDV+l(r@oDr  JPJwPil߆J޹wd7Zfq 2MMM ! ?Rs_9S^@H Eu :rr"syKyZXfI aÙ@ogPy#sG0@6% ~w"t@YChlL=f{iMRBk2摾DL' ]ګ Q9"&s iyG] ݍp͂EkʣLǥB.baً/]9Kȸ),#%j)WCk٧f;/Q| k<074R̠V^W,9*l(k /T-M[aXaXf;mCFh^ormc{)&@2#h=A]SD.kpr7S_uq26#x Vf̨ e/w iH¥ ڟarqC x\@J)} OkJg]?zR[$Du )R1X O鋐֘b}'d- 쾣 ыa|ܠy?~˰+69½ThO܄TɇM#C3 hg~K"8;ƈg5dD /ƅ{WaEڛKmn rqd(GEqyA$a=RTM(h 1;-r ={hwpL\VY3XF=bKgA1J¥effɴ%7B Yn.>b#:yKQP;zW cca?(O|F;j@ @z芙QHE˾8l/̗+A}MC#mn8 C9Wo?݇5Bu+fyw"R1=.&g+a>s t'Tvppk(R#,E;ʐJ-eP& Qv4XUIx2<lu馮\Nb7/))#~oI-沿xdYyn?Rn OwA}N/1E {JE\`Yv\ʮJo^s蛱xn,쫻Wfʼw )޳l '%6  ~0e iVXp^RډR[ObT/Lȩa R c`}%+?CP9 GyS~[zQjUQ 1mb/En(ɉ4) @d2oXb7QQ-qGPg`15og%~1PFA"Q.:feu)f-Fe?/r;N4Y+Ȱ֝\^2᷈r^1Ms hb,1 #]Vb4DxwZH&%埀;/tk0KKW)m)4KZ2ȲOvN6+R ]~6|A?8i|9@"9AQ>CsWxn.,/ЍIܸK~Ϗi+3c)H௕E>tߜH v@es5CY5S}XK? 0ѹ}y޹2`e@N[lNDni lK&e`N'A*#Ձ(DZT|BMi1yy{uSg1+St4߬r|/"'|eqb;6$ BߗڦSb]`H@ܔ:" r ҃(O"hcUT| ;>KӼR03e>tdu g,4&[,|>k?BȱV>O4u?}ZƗ4 H1 z1 6#1-逎ȹ ĉ `!z @A D3nN R Ƌ.|\˗OT:BzS:s S7r~{ebB2"]K#93C*}2 $$,'g7= >pP?$1R_{6# >,b3l! 3{nd'2%I8DžnD BEKݨEA:5~L;\OI$2oy{#t?V'R\eRFx 4 Y,,%LUx8h4&X5sXvadp By8pesўҁZKU*w"5x ~.=I4>&>Qmlǧګ! ^#4Q'59=1Ggpsypf_6&57ɾvP1suN25,i\d0ḮS ёɒbßc!u\p1*nHHx)L{ Lu?{ې)42=τNLm půLUּ +dץK @0XQhQ͗6 ED SB+uECV*CpxayH@7Ã(JIF3[~eCN50c^sglbr@fPx~##"A #t1@ʣÀ) <_/.⃋q\d3e7rЃ2 dQcGrd/zU01sꂒIlQ4kJPeضxWbjߥ"2[K6s1 aAy YbISBhrDvˎZv0& D:Χ1ю Fr=\e=sO{>ʊaR|;bNA3T@MTY?$ [{x1CV[P6t XDO.sh!bo<ԃ9~)<˽Bm#G^s!zKw7L5a> l'@r81 B~r4GS*XxjfWjlB({6~H;KM{d}|[ $*"[GI=Ao/rk,V VCa;muJUѯO)i`2"%h$=uDuzZ|ƲJ$|@t$E>B]|綯V+^YCjz`3V<~saHs !'oV'ScRd(MU'Q;HYڼԐL9呫YjɆIG/񪤬 .[/Φf??^RypZ^tB,H}Y޼d Or*VW\t8^?akZJ{&G`[1WP⪿lÚӂhReX?^UM}Ƨd=_Ko F-ݟM8ba, IClFrϿ5 uLY3L<zSWWJ}he$JW;rj>*iMi7;KkD ԌEL} P]4'-E@iDtD"1Lyg 2š>5SA*D1gz}7t*/vxGgB >`\.O ƺQb)%7^RS.SM} uYc\ bq|OX(Wo1 GyK]GklTfy(^\XkG̤ڼ|ișrO,$G6߬=IP`,3b~ e;%(yE(pC&c۸ CR߻0^t O]^kw9JC03д!܈VFDDC􎢪 Vw&R ̌S@68XYR4яͧv;Nl~W=SGӔ#cg ^LGNSzy1`a=45LaAWӽ^?1*Qo"?qАxZ.㫋V)tfF.nYhͮƌ ~ \ F=cCZlQl)r>_./CJ9hQ GY, U=ú=G6vN^+!;-SP(7U?Ԓ WfOVq6qp "#Br+Ĝƈ/#{mLPx/s#f۸Q)6nHg{SѸ mCHHVe>p&3擨Q7c]蜇:'+Qm4&蹆}: aP+2E2 +)%M쬧W㙉%A8 QŻ'|$ZXC*=К0Jwڴ+ qlіeR+p|^:8(t"įY3_ᬉuiy?zH7hѤ!d R ħ=pFLC-1zsu\}x+lU@ޤG(CctױW]KH $:$c Bm D kL_i  AhA ,oa]|Op.yG|7,H6I~Y:& iXL<fgegߨzLOWZ0Kl`o8O?AT"`i $0~_H*ZVk"jsi0QicVG:{+ !A&(:m7C 4'i"w8rud]pYÌ]Ohh0UnQȅ%I aE&÷>B~+$Yy(MEPSB^(tDDE&3d!,̈́`DdUB,nv XE"(1,%M , tSI Ddַ7 3;) IP_Ku [O{ji7@ah@i4vx/Oq[lN<3p`'vQ0zf W^a YCǒy/Q= Ý}|r@ "/#-v8bnd=?wT`fnv?e d=AHd+$ BMv(@XvLI榄07CI |W =~ݦ.;{:uQ%]e~h3)_2KxIc󨙔}!{߹f]WcadDLڄ$Y "CN3e(9N 4YفC Ǡ` 8ݏI1'tDd6aa uf?㬍ٳgfmmٙdC03{s]u)n E4s 36~čf s<\RHï =J Qi2)}= ̞ 3T0}wkYCrP] |(҃3S%K3hT3절sFU,8l +t3}5)Lœ>8l;@BH !-$|αX"375i.C`B>Tfm?gi:,n ~ޭڈhԧ4!bNzѨ.h35;z HFIJUDc&͹  3դ1 ,lȁ`W-mD?+<&Q2̀L}f$&&kG:UUU7ƀ0PICMB wX=T:g!5׺t3SpHLպ =K'MCۥ6L1;O1r[voB""b(]hrc5J0}'ZǛʓ@DSPC lbww9Jlx,xX, `X,U ˵ rHJ]~WOh gC(mvkAdjј=tdVV2L_6)(Ip1;Х)LRTj41yXo~O|#7&r-Q7iouN@׫Pr” {;,6ak L=n1+`R*\GDr{NM.:T[%*tN}UiՃ|;BM 0pL#LwfzO&iU,$zSd|,;I*w3 HyiLC$ T%gU&-C :ژ|[FR΃X{!0;gzΆ9Zaju_ $,,H=;㈸0l"[YS*)hR*doBd+Ӑ(1ub‰CkNXAyIUp`x5HkX_EFCqry eEb( Dߛx[&O /n41ler:͹hDy2#DXTURȆb~tj@@XD{Z}36-]S}28_g?S5<ѽF ZbWy,غHAFC{fc 2$GudjH^dcd23|gĚ C ٔ?~Sb$4nP7uȈz˪E aQHV@R@!>! d'Hl.АCHhi0Y&}l1ۆg`BR/t mI÷f yl :.r C™uN:9! F4shM8_&s+Y9![gH ѻ4AQ)V'PmuF @W;ā݇2FQ0KM`(MY$A,uǏ{3ɢ;!缒-ނT frtbV͢ )LmʘhEY $؞n{$~}4ͽ[FΙZ~O=4pEe00\Ҍqƪuq#,wv-W2)0nG{\6a/Geb4McjS^*9L]YNiKҎ=nv&=v:j.|nb8}D 5Wjjᑨ r) T$9D,3x?8r foTY ez>I}B"-T RlmAtkC/ hɨExxy,7|`RJN2t:}0X)*k 3w"[yuC4^:Oc[cz9ڛ"MRN.|~<6ٍ6Ft; 6kX}`!q'};v;In$g~1Xx0ǘ3U}#ݝYF5Z> aDҚnڌ|9_[0UE \iG/}*@(t =;q SE@ ?c~k51 8L*!+ci Âi$\!T+u nJ qF6\jO蟧8po}fx_Kw~q3VVw9CA1Y@Mc1Ϻv,cf@uΘf,fISǽGn38nadq$ O (/a:@'!בT*gwpl*+äL!#;֢2r^۹ǣnR+nE s/ai#~A+˸ϧKJ4pyT1.wd'gwPG7~p>ۻ!PByhR9{zE\t&MQwT2߹_~2Cb}\u['BGXo|Ƕbܘxׯ~FY8GV(/wY;qE8(Or*EPV׋WWT 1t,!QIѨ$! TrlQ {ћGAK=p1S˸P>Xh$kH0 l_ q*e=W}K.7#3tEy8i6% TH 1dn3AbN;B--fj;]5˅&HycA7{fKYU!Wՠfe +D`8f߫c2'l:v&۝電 R^CddQAM*1M7vKVp3RՉ-as&-@`1=eFR82ysI8!ӹ2Ns?>Hޟ Д屃t%G\J31<[+lmMtMzQJFk4Y]dziU"pa$ʀ$RHd^iT` ږq2kՀq}7OZHʈYlOBD:Q`]|-HsYНO\ǏUHe_Ec1i%PRxk~cSڅ=!]PPĬQA;dzZ|;o܆zd$X4DR=W+5iV(s}#gw}$qJ҃3Zf=f&HDoHsVnj\C男b9=֭K(.U#R7E.DP%|CmC #F* Y1a ѫ>#O4Ltz}깑B.5bjOFR9% 0#3^NS5߄B>oDXnM㹽lP$0'PTrCFZ)R)PMKd4&Xd^T { hS!֞|4K"XqќvtNMؖ>b5jXUC<M+?\ u x"La,`X{9#$ʷ"3,9#%ɡ@K|2p ~4PJ+1#%04-39tt%,bc"!HK3:a@\wv 1޶ay8=o +|󲐲"bC-Ҁ0 иT';-2~\Ry<㺯]-,6lxB婺=޲H28GB%@Ɓ/0lRrHB#FZ܆OFq=ypϞ `Y hy P/(8zX{ D_?˿/ڧQ:GZByr 71/ǻѧd׊+ϋ+SR!ˎgSbaZ _$ms68~[k&u&֛)̩jFCbp;F-_&7ۛ ٞNst׹˥Ot$)F hiR  =lFEo1 806xr-jڣP Lujc@q9331xW<_.4XY`軆"(9~Qd)gǝz@ٿ1A}7f4prQut}=mhKo^m fdW3o=pӮtɠ}D!:jc&B|R$%GK=GIy5bܰ":V^V $Pώ_M66vmުUF'40 ^Pt]`= "}":z:;ԑ1Okե(sՓ?4k>BO# ȕ"S8 ٗ:: [N8;P2d}&QaL]Oclht_JgWGGpY5Op[]ݚḋy \=kc-p/K$2El$v(]ҺJw]Gn>YXJsLwCHɆNz>6M] zhdxi]ݿҠx xJ77mC-m)Z}Σ\s5߷7T*P!ZBPJmdفBb4vbHтz̓ D6U~3DŽ6 `TX&ZRV!ŬU 2 ` $(IFHyp6N'!Ft 0v124N,QQ(cXD~' ;=@d{Q+qo}HH0 ^5kU6 ACF * {*K'q 9 qńm43)`| ҰYhA@FP@A鳲4 6@fB!!@A Aj$ 0vј;=<`ɸ4Q^" %R!lZ+H`tXHja qxUQ2POZ4Ԃ"奥sh,] 22>]b*3ێI*=]ȝဢ,q4.eu/:wNa/%-5aס5EJVb0.0ۦ sF#3cHsܿ3vz<X$mMF`# ݱ?-֛BI˓3 :)hc.=[Rz7]n|v[$ZZ=)2f?>y5٬޿F0 "Y vQh>EeI|&,;Yzt[Zw^@>_Nq9UOF$i7wW񛇯LB ِsWڧR[FLk;-ΐ۹81:U(ɋOm N]=`a?_~y]E!Cv[jN6vQ}^0J7ɾyo[{WFƣ ܡ4MLNkQ',Q_b ۝GK'%rnɤ;\ 2:xƔꉝ|,.vM7?sfj [oĵtw]t3BJt)g$~{0qv{y}>WZ c;Ek^3ٶh=օo|X %4Y<~o_qw;csM, h!c¿^4gҝ-qix'lG?ݞ&1Q௻iz;sYs Vئ6>aj) 7of zd/c< .S→9O>Tr1^u\7kFNԇY52:hP5\ wSf m2_G f)bX vc^I9 rno}6U&fp|83D,r[BxYY8XȃtJ4x6xoFqj;K+'+{&8o{I4Jh2DRV3W*Cy'(-_bTdTʣ"$cVuom+*vEKJtĦ!XL{mK)N=tSM. A3rfꢦs1;M 7}^Wob6 MVi?%įDȷ4;6> k=leNW|hcϪͱx#v g-f?S"*[ <v׾CG J?U|fSl!],#┹fwd?u߶>c(/w99j';\' & x[T%r筋 h2O<is;e*9su\K0nܼ=x\  M|R؎<kxF6+~9zhHjuQ'fޏTL磐n΃ѻ~h籹u 6zr+I~n~hNy;=ΨoPA't92I;Z WQEqޓ(AW0:_6.gI˦HӧnVp׌ .nɒK(A 36ZpP fc&?i9un(ߨw7WL7w4^?݈ _!c U ad'[c42Q@J skBjkă8L/!ULh%MhBXk⫃y/c[)eE>CK򸢣N햔S16{?_pn;r)[^<^>yMW [zn}uNxsCKS.?ߦEnhN:o /m3>_-خצD'pjbহ=ԖD罖\sZi{'~[{Yx2S, >'<1op9nGMr c6oL ˆHzr3y uRH4tRBBd-wg97UtŢ8+^ń_" y]oSIu!O^[QBI%hDG໐6 4aAg=Ѣ7T4ꑰIo!6+ f&gAmHVR" etڶzh2]#,mAYo ~F.@^@Bաw-ѤSf&_^yGN231?Esu%[\4*c6 |*/*Rm-$gN^pɃ&` jݠ И2bVl1&CpC`'#aq >CpطP ˀ( e@C ~Dƍ<8g4UTTSnvE^NE%E$,I|Żc'Ȑ tE"¤XPGx*COI|p{R@cfz5%6t+%'<>̙Rzhz!@98|2 )90pE\@4 %+ͥ+eAiyAh['A;s#z;zίǟH(,W_JrʩUQxw؟o c}uB킫IOBCZm\5H٫ 3׸;J+C :7Bn}<ݬTAH@K 2Ͷ[ Kn[/r""k¦ww& )|\HVw Uf`nL3c 3o , oW, rqmo8078wƦjv&}yon{*PN Wũ˄-`ݤH1u)I}5>?uoc!s(`!;+v!6`cp0ys|mkȕk8D'&TܡA$#81! 2SѠh2=m  SA7V4p5 h5I?lxCVH3Hmѿm]:`vm+e8K|:Cŭ4*Om wCM'x*m -̀S49k8A D x{#9 œcaaV1eB J"XWHx%#oՒJٛ,mV$!DAt@Psw`` * V*EZ/|;}B ! dQl2M2``eOh̊5,./Ϲ>=Bc_t E*8UiH @peCSs؎h<'n~6a<Y"Bzy8a/׋nNkI*C=`3M M=Fh)C~Zֵ-bbU 7izPcv%ǷBmw3 lМ㻭z4t+m3*x鷷e.j[yp=K0>fas@N, z&v H2nP(VJP  u/%(q,LъR9ث0iwq8$k|J%nRoִo&:Ct7dG wVz<X6yN g֬keXxUjkm7RToְswMz JbH;ݘ[غ,S$^'\ 2(J %qbqB߆8O LIMσT_ U(JV:4gJߛbsGO2+A x_2R)9S7EKe2ý=_,nS61nh"&CBXY~ymEOTr@5Up<d,izcK/h} ̏zǢ#fx]gkj z{4-!#XN4N6ݯ;uЇeoJt;~js4:cޙ낽ZX1.OKN&j]!=~*__C/|f%@eS:iRu``%#mUꈣ;76qX^In$f GBDw@ꕫRmڃu&|M8ك?:YRf XW3U2-\knkЬ=uD!ֵ(U&eKQ-q넋^4=sutף>/7_ 3ms}zxqo~(tw9C(=o*j6箼 & z2ӕ `ԃzz.\rXkbHbjN#Rش=t$X!h%M2P%Qmtrz(!+P1D<^*D% Byx$`"i3$`ri2Q&*x!AD(b!:dLYll".jgWWwkѯ)5()7>_OFˢvU6Ѷ:)j Ҝg;t!7 y2t׸slYUZ$tI\s{:'<|$tG\&oaLR!߲Y|/.S O<^4*;oidaOvÌ󝨟hL 1 ѻ˖ o.5ă>)γ0&nLpF!}PAP2dT!hi>o{/b\,{]*@vn>5DJgγR@ "20jH m `cIXʑ#J0[/T}|vNawSONM!)LL#mȧ5g0Keݛ7&˧vc؈7QL#ڌ=P١G*|4PCQ#M1/ ) !N{b -kvc0; e=$R<͆$A)[uD]+d$b[% qBL1fJrZ{mP\UP-K N5^~7ʯwuNn^-r6 N]&o[ע4`ṃ7,:ھ2MiV,SJc8/z;4zQd:糐 эB뵠Y@j7*oGE)cCgD-27ŅU<5U]wM$>#7ZUŎTsF5\3s=Qf,LN╃81 KO[#Z5V<ƀ6N42<%H]/)dՉi5cP)zQE[ .;$Sь pK0s»yɮ޿ iػ4sx+gkߵ}OϳW)9-#F^Tۊsu|1 D$ݐr(ߙ2.ҺD`*ɹdlɖ]kfnJ2L(x-`/p!a3f[ˆ,zWG)|֭}0sңotޔݔoJ wް ; ,%tT>ւ F<|^nmL}*MӝJ΅Cvn<#T\Z;VL4[zNv(uJaIi9/nN\JwR}1ӹ #qVF=wh3GqQ)&o">oulMuy30rG.Q_KqΝS|0/ keaȕYv P&- zF \ŵ+*ޮ#DTOUxnU&|\y ע<=s+#b%|Ğij6*j xO)YdՒ8.EV F;ǫ[AE Cn\kn1Sb3>Dr[(EU$R%@rZ9⡌UO,Zlۋ%uT5ߘl:Iv%tijմia@*[ e6u Ucdmӌh 1<ʪ NԻq:,6+N#l֛ymԘHq7}`;B~Hr_JѶٓpB)%Q5rBԝ+p6jue☙Ng\J7`]aWm";v9ݙiXH/]V>y`ԶQ0;{F%k( ծnT"ABۨ'G!6)LMV-f.G)~&>) D"/ ҰQzzqΜ5S%Fdjf@KuԃS2ްCQѬ=8k?RSΤO6ztӯ C KE Lwk֮WZ*u`+һHbX#~-9kc["Aդ΅9<'~e,ġ5 jFYhgnI]\ZMϞ׷48!߽y>Ĩ  ]0 8jS&FA&ɑp>%~U(j]Q+)r:+2>5mUf*dީͺ\4<% |,Pǁ 8'ڼb E~qfcYj-T^:וֹ^k՗' DDh-CU@N 1WQ\lCՍbx#m1"G_9iп%M2KB!U+.W-xOòVJcMyX~ 7p^u=7xx 8p?ZMzۻ[5mmccmz5s>E=߽1#%:Ԥ66vDO}ϗ~*iS>.g8b{.~̩}slF Yw.ȹL͆'74a&"CMH $ih1B$UX4f}ܳ@]~:x"rj[᚞̪ko6(c7/&x̌2 ;rWUNT*qlyAkvQKh;sev4V+s]:ftgH@1v[ֱ|R宫D(bxʭ Lɝ zB+bNڸkv"R4@ D74Ef ?n(w'L]G+A5Dx gg݇f1A TA$3P<~X2D 2M##}!FG;ݚUP.V,1 S9KB8YY ~w!z0qǩS-_byi"M8y0!o*|6jeW=99@6T͂ɧ~E~~|pCSQbUw$q./@N`k]0 ҨG-Fź .2$|諺VgXb Hw59%[P0&[is4dN38,zLx.4x^ܠgEil(jh1բOHiY@únr,H _oCKqN:^qA$/MF)AU)H.T9Vj`[CN;uȰZx tuyBwJ6)nwˣ+!PzW DVm4sLRd4ON0RBۍv>y,aclzi>/Wf̦k ۤ"άD*Fs닰=^\]D,L>oRw Cv;0bͼɉJ 6Uzp^Ȳh4L8fjUǭ`\Dy03}ѻ,aźn^ܫO~wS/V_tmϾ_&O@1~ݙ^D[S\*Km  -F=٫W 0 "B1JF*?xl P>[-Mē7΢ND 2(۔}wgSXH#Q\EJ:2}o}qᵽyh<~]wεmkEfk`y[>u1JP6:N'Rڕ${b si욾)k[xmlb—&r'.QM?*)F"iұ.Srz&wݹ-q;WO?l_~3w U#.be Hި)s4мOT}B:K SFc3Bw>*f 2ƥN-ks_=t㽐'Ƨ@̳{Ktn)طct ;sjlw K B 욌 )^VyaYܻB9q Q\)4Uig_˶Kx{k:^ȥa{:7N1=׌Zs-3kNԚ[Φ>ii%&t4|UbyxLCeY9,ӝYxi:)jtsͻ|^觅` GЭ,D!B N v"FgsԖ[MVMO]!Nm*n߹۸P0rFM[JBYqW7[qqߚ<3Z-yj\RJst&+Ҋ{fu;]35hUQ-8i1@*ds'JʫO[Ό&yEjsmM˚w.&Jtz&b8sҲU.|qԫ1P|q^)0,<,hx-J&ZvP|4B[y68`uX+T.wx;^޼S5Zݍ}L\$~RZ(yK]k G4:Zy SJEi"gޏWŖY,>7kJRWܛs\ޮ}7>  c voٞu٭k< i<5lT,E/_ **iR6j~߻>M R VLz1E|v8Q(_(x1ddN=?iԉ X89=#|pfU" NrT8M̌4#֥lywJ [,Eqά ato  T*9"HvE+bII+׵iRmZV 5nu<8Ėh3c 7 5.m;ж Kq~'F&zIq,~3ʯ6sgCSϝzUٱ"B4額f!(V9^?Lw1Vpp=m_;o=8p &.WfǪNish$r9oj&X Em׷98G4'lTk.c9 fIe#ĩDymܢ`7UJNֽbn s%IKrmӗ{>{G:G>0GF*D|" |)gٖگ;H'9(;m:tFmNѰtBtdggz6yon)U#z{+ y=U3b喫#G/dUi?ۢq?f<_.Eh:kr,N8';ä3gw*\5֡c6{~8עL4H$[󢶧ĸG(NaDA2! =M5xaOrjxo;a#e`݅0+5#aMN%nf%Syii<J㝘3EFxDE2h …C.q[|XmIJJt~G,g ہ=xѻ% )/`m1#xv `pB./XJ/M8>]7)38vQuk.CC#O۳(.S,^ln=,p2'¿6<7/6YV7#|!n)X5I _4gU ̏?IٸWלJ :IQc[4c5bZ8p5o2V8:kV*[mP`WssOm< }&J A>y?aKV|'aIܶ7<:p[l!"ٽ}pb*Ё(+jF*WѥIl%ІjUM182j~|N0۟ 4^+\!"x^uʫ(Ly !WMRWԶ!S&!I-(vjxn1]_s9WLjz Ip;ms֚ +?QoXseb,QZ7c69@mz vW3;Y/HbI<~ڱeU`7"ux&]<ϋt\|;zT|3ľE8P\vHdȚJd$e,]g.@~D"ۖ-u3qV:vz.N3MLv6XJ*X=ݏSuX7{MpF _Wɳ&V̳PKxz~xx{=e(SJ!{k[^,f]Iv x`=^)]t{Ezcwl?Ŧ4jgK[]{تwV-zŹw꯳Qy!3%rL x]rx"Q(_PkvyVv< (G讎K&[k'| r Sx C#N5Yh-Z"W{ W$dkmɽM.W5!]`?n)]4qޏ`:&IUl JKN"y{uxN)#F2@yf"pClc2픾ggM KErJ yu7Gޚ2hm7jBZx#>VN8]EwKʑ]y[\csEO K:/s6겫+M*ʞW55w5nԭZ+*Z#N[wXr*SqQ}8{.*C"8Оc(8ٸg<yvZ#·E kqJgGs|KBkh1 ۓku/rWd GIŰ-29׊e0KE2Q}1zUUGl+,KS,5-\w!YijQ}χ(H93W`M,z@BSK,. $jq{YI-I<.uxLrnfR4w3ޠާZeG'& )/E^Hu&wg#B2L:;=mm (T[;iv+9C:|qޗʱSϔ⮞bEkwO'=b\Zn:kmk\}tZV-%(J9Ute_KutezAjP`)0@Æ ])@sd!0%$.w qf1v7h+ [->XM a؜=XZ!l:HNMuO§)JtctOiEWXq) Ԧ rQm bo DN {#9:_|v=tj |Q3"/zo9BKMhgn$vGƯ]&[n匞֯+<ŪƟyC1 !C<˞ϵzɮz`R< Wt_%.#E  l劥HTdew~~gKcz?$n\ڻ}9."\2yVUHr= y uDb,{x2N&}$완 F!̫yRD oanW{BQ,2:=]wG4!!lrìy29<<\`L @XRDhׅM "& ƕo8b)|> -O*E͢*ӝNtҮ-SIDmIN7V״Ix^^&FKqyM?LkO?ѯ3f}>F,%!ȴK ؘ$==̛]ǧɧ!Żp!zS͒C:{ϱ˲ZP :D1wN)wpT,*8€1dYfhfS6todbH|v_Sʽ`/hW>|k>!ȖtbijUUUN)'gnic!e qBva ond 3agmƭ`# 3ʺ-RlSqs,{'>C3vSCS>V9' CmuDl{bC2sz 6s7x.` 9H7\Az~=eQYIʼnIz}VҲqa}2:=J؈ϼbY|ݶ Zrl,GOp7D 6L[(.C{o,rZϝnp$,DFd}<ۺwL^ۈ7M|t Y *þU#np>ݑ"rH8U5wIVq Nխ-nq W tp <2d@؞ՍL"KDby6L;J?JXҝ#$R;& R ݟ'r퓞LɎ +"!+kVO8*B0ԎwvdTB6C3`ÙӤݥVHskWBႌ ́& ;q;Vwy3kuy-))\W+8Ѭkg6z-^LzgnAW2 Q^aZa><+`DSF `"gI+҈G%_ A|b!ؔD|༠KAAء_~LU"|e.m CdF{X0`0 x2CX zĹ1?toۋ劧O%4SQ\ڻ]TmbN:~h[Po_7Fju5Q2)/L~x]_@sJ<-eoKߟ)Zg|އ~;rZ۳0S`.;~O~6cnLMd.:ߩ9ibޡ0@BL&dnO4\Љ~J ="m-L*5IEm}ʲ<;ŵgRtk9sçVE/J9QJ yHdPo-JޭX$x[#$܍߸|>>lK ˜ݞZV9gʛerKlb`zʀ 8[HI7aZ &yqWNYU,e7% |21CYx"8Z8tȻiW^%}m|^U\vN+ZߟNyf7MwӌdeIX4"wĜ( y^"r[L`,[X4B1>[Ȳ5nb"C:\ޡ"+ͣ','p- 7ktO=m z&bcljd gtFپWWIKAkg8>)`OFVWC},` Sj^%LN^Q^Y*>I/sk+JNg խГ>+LBN{)\S&e`h.VnWqk_KyW5'[8*-rZ kL4l*G0rLۻ(ԝ+{'um"MuG:=7ZϺKu_M7k@kթt5D-^xR -i7N3NjDV#|d\w'``[lNe1E{wQдn.eR68FbszMR P6E$5a;_u-h3 e=b9f$@FvR3vO[kS(uzmŇfzr7tCLY< z55r; UޫWgďm4Ԥ$jmUCw_[Q"==JycmezNtHf}qc~\^ҦS$cR{5ɍv#$cX-۸p#&_kzj -) iWף- .׿dpg._GIgbWRb^O V\Z2^w?G'H>*VM2j+gV-R+u4I`SѦIU$ ЕGck+k_TEb ώ|褑4R LU!ʴOkZg߱N7br;vMU'Lr[^$ ޵HdOOZUTm洭t\rw"rO Pz^gzJl-Vu3b81ˈ.37߸ŀ`ά_1rM|B}#z_;y%{8g|CFĪam?0ZH|@HzÃ9/q$b/;bDD(,V*qZ;C© L `]mSsγ4R0u(Ntۏ"mo:naOmShlՄ7KKW|>E\'5vm7G}9uG[4=ف򏞧\7;q7w/gT3I5`IfyFT1ah앰P\%F =t3Z/UYrr!!.LzW>DBǧ^棧؇>[(#nqiǞa 0Ȏin{hB z>r5(z#:&v]_z/:~~3,*b9v6ߞgN:"p! jf]H_YNaTgza|?> zJq/yz-IPߟO|W?`xS;O+>vMw0R[>*n7.XetN'=HlzndiGbE[54 Ch|_4k kۓ|cM7^Gi}2/E&ͽ7@4ďHV^lU\+AR?]lIOYûOt2y8smGt\9'HP7ж" Quafs.LH[9ҸhSKk!šh*ȅ4אAQM|]vԵ:-mD "+¥zo鞜Jl|BIQ.TΑa]7pZ]4Ikisot&~ .VwI[*\-71^^ׄgԒnpM;o\yz׼t-ΖRS@xF_}OP+y; "3=Gu:jzg]ݾ}rXrm4(-i[7Eqi<& D0BI#pL曋¥J'&K'm̅D29Ѿlr]ٮIRK1  ųS-?ƻJT`!d,}ao ʙ{^Žik#CO 54p04ӒѡŻlQ9c+@z Ieb YR(DH(R/^2 }ۉ /YSw ~a_l^{ɢ*K}N1Y 0k.01BYRFN1 p4 +Y6}F,rgdzB4c,ݿJ"G h,sݛD ^Ijc_yuF.̽7]@>$a"уibȟ4N|"NUP*GNB0QɇRK :f֌:Ѡ ח6)F]WOdk!^%k<'/Ӌ2:#6B/^,&: ֖ y\w>RYá,{c̾܍PMƘ\)A R S 8Gy4|gڬcՂb.B\PRF ? 6##}HDoyZ}es[`Z :a[e˂T%;ܜB(\.`|S*/Kw?l<ګhx'WEV4 m!bnNPؔd!:&(q,C XϞ#?٪1uXc\UrpPaq}J!zXDHw($HL&%M -I.i+sM$ 1/%eN9%3K u%Vh]xppv楅ˉ {r x{4izс&l9}=*/łY-V FE#^UB'yPޓ!@+zE.5je0 .U>NʼCƦk)EQn°(0nAяo}0"h34P]]_ű&I 3SFxh&Zۈ.o N/5g9/4It AhHBE, w!X}3Jf|rAQ&hå)Nb^3PS> `I Yφ:t(b(ň(gFN(wfv8>$*JWJ-.J=ag#VJ}wA,ZQdr-KPpuw!ATRt$#"f3Y<)6_.<N%xzwM)B4ؼJp2) E3dM.TXiJV G+tg>=o3=0o#dz&Y>A*Lդ/vϥ8FX}|g4D񏒥_we[`[jjiUMηքӑF,*-SLK(a=5)w9s\WeH]X}D0Ʊω3}ƨ Ǻqu?72 o6TхM8CI^I{^6d LZDaMgɒD;NkyYkT5ݗoR cͰ7?'~`o5:aZִ nkt&=V6]W6P̵5ڸ^m39wš4Laf6:*?]oB8-^jJI:~HODوB:?2z7_*D"( sz׭%/M7<9ˬnVsLlcL0B=c |v฿BU*R8yi xwj?#K)@+ч&|oVM:o(6M t) UiMXg5k8ϪD^ [=|1A}^J S>?nJ) uݯ)۞2DhaZ 0i~Noe1[u,+FLn4ŗudFNwkB:+OGثθҵHa;b99΢2}ِvf._{7F1xze-5|y$ENWkGYۍkl¹97n_j[St@PiNg(=\|·u,e6:)_9H@PlH#HmQa:PFWuИ58Ge2mVo0ҍ```$-oDNq \s :MɴBzS׾MH1]CӥNe5+73a6?1k Q`Pk5Ca6r:s}}+t$ 5BnP ( AуVٷ{^qahiL2b K7Q.2y>R/I?ve=&-:HX˭o8POWgHS57V8L|= Ow{W%jT8^R= ,2p;byfL`rSum?IA(ҙ~Vvz5aܕ00F AO\Uq 鹇4U(%^H }+9A ѵ0ڳPGL_7(l4+tܸ@U&hLMVE  ^+v%֗0IRYqLl=R7ZMbO ߖMTsӻ|׮)y9!'5 mBtlr8C`}M*Xv߸żbX҅QMuQ^'? RrY:[n8 6Cteau(ekܥn$416q" |UhPP141:x˒+"W: ~S)A{ۗ!!giԔ0PX1 --)ˑ7rp(*\5syŜgRaL& v|X!j,ɤCP9LtPl M8>Q@ A2E8Y4!)T* 6X ,5AU DՔaSPR(D-,"-jĊF1 U(LQV-@wa!QH?˪Y:IڛFl'%Uz" υ8rDF;Ν,0 BYɆ;᱀T{\n5Q=yo8 OKCӵγ05 LjaOWQ=srA23L ,IRV~Bj䵿3a2jU"bjgyrO=.}0tY(0T)RhHg$i )(&]w>dgW s) y Xhd&$!) HMCTiW]| y3{|hwOF~#/T?9mJAs"Ӊ 4lƒj͉=I07?~O6,=d=ǚol\^p{G|tSƯo]눈xP) wAJ&T;|+=&'?iCdLM4<ؤPh;8ȝto79>aԦSdT !*f]J!xd7?LBsJMt+a͟3k@z06%d]Ro:.BBF"Q?W_54v)(_m` J!a2i1+Q/Y%6Kb\V-dLy2SALXt>͏g[92s.b=([۴oO8.`6Yi$Zcl= 6_{ ,Yq[KLPƝGG9Gv[C32 ! 66k mO[ސ!80vf4|~wv+DDzH._7^NaS:C w`ks <=ٙhI66ƞ?IIKˈUk5;I>6ǚ(z"%oCop=ko֙ǴjVQ7u \8D336kT il ^ًC\D~Gk3񦑪:oEHE.H0Dsm%x R;~,nFT4t`:RY~3mȘ9ܻqà7$=a",.K%UjsTrH#kEI h-$4V\͓N‚5@@]4tbmIPk /s(b\q$`~aO'ĻlvwEGA vB7(,ҒǏߍkM Rx2刂_*NmPeQ>Q $>'H79-dΠƈ./"NZ򗯀=Jg(soz+uΚ5huKm3Csoc 6x^}bTs\]AX!jsz 0 bk%N { FP%0 q2zL,% 2e6 .$U#Nf;߲E5Q' vNIÝj?T%x"X -ҵ8سQ yxDu㞱}\qhɚ4ڑ5Uq]SsDwlzTW_)y?`%֚)Aܻjɢl'EL)H1 ӔWUV[B0P&-=6r(O߂;akrs36sA8U'! @2ț2k6=. 1S#m2p+LmLd+rswgcsMug:R WȆ7f{OKcHrT/0Ta1iPޡAGHyR3L7d $R P5.lΩM`<]6HlP/1a-.2Ýr}d峒qO@|^f)M⽆|xH \oF#UtXL@rjygS)A-/V{#~"cWGqoiGx2Z^<<@e1zrR,.| _ǿ y2&>!Nz(Fp(g>xຯ*6T!v+3=(QBwTP(؇FDzcx%H4Pk{l`tNzDoP1` e;_ٽhgvq)1XZʇ1묲Nj.\R?EA: 2tD]ጏe Zz7a:1,s]ܚOm;bʾ+?oE`w|5 8ב"_ġB-V<ȟ9#^2y}e*W#j \K;+>i~=Kt)SDSmv}K?߶9,M( ԏXC4H>.R^ /`:]X<A9jc g?q(ٖ;U+܁ *6z.L.p]U% t82iClo:}ޓb~*ƣ%$,28ilH ˡXv$0FN $m^D vGo 1.LMmw{.X|\TL~F|\Wm2bmȣ9'n-V6c_,zE~8%IE)kb@YVd57as=$Vm_M+6+GdC$Q2*:kL*CrP AƿJFc,,Gch)OBVQ(&D,sB C^{8xDi_ 7_n1SDAUo<t9Uee*Dl*Y'IZAܧn΂)9ޛURM4|c83mƤPU"IJC?92DUbG&Qx@C80X0.e@; ArXr*=C ?+W:&5 jGaA"s[󹥉^z vO¼d u%1h/U7MUW2kaG]e=W `Z@.tIqޕoUE4F?P] kXi^0katᕇԒpWpĂ 5`6j>Y fϛ雌x "S泋)9lM;躪TQ8C7BtQpww+x]~і{1V:B0#oؚ=dZshZ(<񆽔5bڞ[4@K) 4#sVLL.䢀"@R=x'@,쫨vt]쏒2d{wgaIZIՋEܣ x t%E0 z>fg','som :RzKEq1PWFuC{BAլN;ulrg{A.$wS25*/@& οk(WQ0ixEt-=i@SRmNHSzA 2 Al<Ȩ\T"cW& Xxrhoi^p+yp+=[zld6(a+3>^w6`Bc(ȱi|7Xok#U e'Mm}}fHǗb8AЉ}=݉: s@%03a`湷F4i~#sV1ьEW<;ӹ:xO8u;E]}ޒ/KR(,IQV#C)Mg9>CاQP; qXaJ8)%MVVu۞ g 'J]V}@agXFesn|8v |B~]Z(6 JR[XtiknSڅxOJO29>\<2i2=(W"rsG :-j΂,-.KŅNf2dXVH16TGvQ9 ›̘`/$ƆJ#<Hx%tf>z촳>0Xw:JM`aEɤ)5IȮwr%R"5%).yU/O=b`xIG?~ R] Qg&#f1ZmP'kcƉ̥9\*~ih7mxb^Cn_x@GD'W``J@y9 @tAP$`?8gu}+ ?cS!O1חw FyI؋1H%"!tw"Y$~תy?btQ~b0T_R.c!3̊j: EcitJJؾME fՀ21MOiZ ^zNxE}nOo=5w;-n7؅!~HB ?Gw|' 1YƖ>1to)'DsLū>Ylŝ3#_;‰~4>(^k$%%BQ'_ e,GfRhUz>R(j$g wiprķC/ {i ϵL02|k܈Eq6Me$g@ svOdfkئ4dw_Y8ދa/(7ccccgʈAJ+o{lyq/+χV~T&z")P&Fo_XvkDtYxD]!+|ٚ;19(Ns: $ki$ BA?&R0z* ejӓ]THwZ)SJU=C 1%Akf4}CP`61 ? W3[?0=wA}r:$z6<ڕ,MZ%*~:АIXhx(EӵjMvP}zxLŭZ̀~g$~ E `]{=S%Fw(2 'եU?hPIB\i9Aű%ClKH7)q$W*2s5-x(ưުoX͘+sBXU`q73y22}`/ZIZY$,-\y<F-"L?^S(^b.#T!.ۻl 'jL >Ff$l~b"f1f/)Y~۠84U0&U~|g YaqP$v1{4>R%i]4ޡln k'eH1OG.v:֮3-B`/p$%hҴ: ^Gt``ZM<W9]@G8٭3u+S 64LML+5Nc L_4x`mOEgM8=<򣲅W^N{oxOxeol$K2ju6to'yl9SVlvi G`$īF puDuFmbw"e>֐m {Xa=r䃑یߎA~ߑ C "d=Az6m~ekEM0W3ڎе`W1OV/JRh>TV(3n(483A1@;!Nd'Q`T.EP=cǙ;VReXf xuQB+ tH0KȡmQYo娿=Y<q.%sS8Lc%O YQhc@xcӇ @ Q/a~7KN:22OI[h{zKx=wιi{q񯵞&חX]c05yְEN@ˡMl&˱0ǻȑٰ680Mȷ~f\jLqOym? qn.m·a^2ӻL΁,ႜnD;|M]r4[]emuɏgo_{"J;oS+8 av1  )CCņݏGBNlE;D n ݅0 M}x} ;|uW)a|V:s hT 6nŒC}lZ2[Hdm՗?4̎^+ҘXfA&0Shh\ޑӹ /b#Dы=X!-FgKŽ@b7(߈8+Ypz=<+e Loe3X pTs(~qãڨdqG!f@E9Fe<Ҍn2 vYSMk]#o"-Rҟ(\a47÷;8w"2l^>"%qͼm]\Ukv=/Ч`i2b#=Ȥoa!,0IddC D{Z=;~%iksEV[y TU(D4|XE,;rشӆ63[2xݵ5Rd}-3T͋-#V;Uxx9ܬ\WjlyXnM* 8[EzpH4 BakÒ?C)E>ٸ@DMi4}5ϝ<&{ztX5V&-ghd**]˹e  St 4}k[I7ɱpnԓ9`3onIE1҈L7FȺa0(aTcH3V?q#c6Qkı̎ (1R5_V;G]"EAN,Rr2oW66<$7 XX7JA:dXzBraB2rGgfӞI{`^ee|(wjj9]压N7js G:6\ B _!Ů9v.z~/s{SÝC5|}I`q%2Td{">H΍j!6:{OZ:7@ 1q6155CwP.AFdm Nő~M]=t, dVh`/tr F+e>ߎܖ0(TO3ěn[^nm'N,}Uǻw%:ND<# )C`su3AJ^zӆ 2hN~szA[Tz֍4(@0cU M{S3$EvM~>`l+T;5p8Zqjyliu GG-,`(crtdóT`mA;zQnRNFR?'nrss"(6#X0Ē(簓$XAVI 7J,E)Ք7s@jƴ RO VE7Y sNW6EDTkƝInD0Hi[T}_ ƾ0/>#v# gqr wgLͰ\~ud3| /ȸܖsx pua>A=l=}@602fŽ,,homq9ymR^JS+S.(dU$ ÓvkhЈ~1Ffߘ꽡?͸H`QiC Ƒ :3,'p( .7yD^q`Cr8L~)yGz{atFPكԣla؉u62äO&JҧGоx3d/9s9u݉Զ-G|IeYes9s9s9s9s9s9skZֵkZֵkZֵkZֵkZ֨@",s}߶}fyL$x:ԓ zVZߏ~7~v|"y8GNחaXq@%m9`R4Gɝ#ݔY;s'QQz5ų1%1H|."as_P.֦{ꭞuJTC&2@LdviU9AjbHس i72`'XwZsfSXt[fWo:e0Msn (͌x7S5rhL7*2:B=+d'WH,*3yXSj+% 8HRs6l$[p{@V$+xuuQz2 HnJf6۽  3'&)h}{EP]?|֯w[c#? }<[A\IDPCd.8=ܵ/M~C20QٶA?;޶AAۙ+ҹp8=~.ԅn+`Ŀw>?."D{)Z ?oSY9:y7m!V>fe~lh(PBoȮ0^3/T29!Tax8ЁvDcx?b9EoH9{]y2̘?w4"!Fz<(Iu-6<9Fz7#r\QY~ > RByJ)e9eUg1/\u%!>I0z*hľ| x1EleS뿬`.ݲAt!A283i苡@14.~uNg?xJĝB8>RD![MCNy^To Ye(Qm};5&1 (TDž5a!uJڻRT!5!5GU?FQ2u]ƕbJ odȣ"83SBPCoRHύ؁c1 AHS9 bZV(иnxXgG+YuȈZ+AUQԨYJZ)VIF@*N$waq`OUS괦 'dHQk>6}6 qV2Xu5BҦc^5O("6ƊIJJk3/HmrX@Hj5 d>uտbdM XH  W(7 f"(I2%D"_{RHgg.:m8 Ikts I{6sCfb3a9 s !J!a*B "xvznA屏|0@21Ƣ;1=uU:kZ0! H]3㥕V>dU֫u3bI/󖋄ijyn -Fè[t||AZ O3kbd zA S=e{=B~Fm= {FW_}gVwv;hN؎J GoRȦe؝(0% 1ʞ<]UPМmp+aZ!+GuC'0*(lV@R Л|M_WKgbOrla C/"N} "[jƪLθdQl' *\Ƞ4n(S7g,hr0M%sd;+UyeAA@((0LH֕O&.EZt/ i}BM IvJP4k!$ 40S.0=_O+?MQS sX{#/S.ɰI+OӢAB0b2, Bb9oݺ/W{hzgaA3au-IL5 ]*O >GigSkra*h%yJL+R[>?apjP͔8&RLmZqQY';I/C35^n]e0a1Ayկ(/AD`.(L/rhLԪZY"XGU#3Hq=bi 8&0.y LGU9 /ޮnd ȧYB]T|ǃDץŎFho{bVE9_<^ZBŏ>Uwo_?W Ѣu cd =SRl)cۚ:އl; 2VRJ%uy{ϮfAH|?}j7h۶Z?5$V( JUו! Za1&xZ;?~Z-@7_4ۄq7(\HAsA-&YaOB=LnD\gotB:qH*'y0."װ[ 9ڂ_W ٞohx)%a^!u9.xWx%@cSͩx v5,ԙD@p(qmrA%2IRYfhf1Y-$ PU-1_QRZDEG 6ehƥt9C*2D`? cZqt{)a(*dđb 5<;GHny,@S'SľW{)QZckJ]Rh|g-9'( YX tǕ@}A}H%fuGG-@p萡Rb1l)z:WŞh jO2h#3(ЊU>7Iv,ե.<ɋŚ(msK3x ~b tGW2BU ?rr5d_=RscyhM3h.cP1Mwbsb=%elҋ+ $Ȓ3*@T* ?D#_wW8JbݿiW:m8dN d Ɯp>?5Q0J˧(K]ԥU̩BmD"[ed[?<|h#~%;Zi ֑aC3 XLut( ?ޗlJt']xy֧io*FQџYc[Agd!|A)ږo{PpCκQ2#Eסah”+GI0b (\ q (@[-kqx$45U,}{J'a]WyFLZ*ujb.Zپ~Gpފ'߫8P,= aLeNf:(62Ky(_7/ߣTwx0݁ԐSeOkxݾq5':̖}`3l؝, ;}c.x[MUFIAy)?z4FSBa`M0HM0p~ӛ*{VT Ld֧`R?p:Mf;>3=[ė{E<,a˪uxM|eI z==c=HfdddX1zOVbS0)u^9Vǒ7Kdt5On?<;GMڇ]ZdE`(,N$b0gwr&;ֻg:}*Q<>OIu;ej;L\YyDyg@ö \v]wmlFXNHUѧW^u5v{&'3MiHE=+g(+'ϳPtݶOt^su;We=^*2{wfԾ,~g&o}9Rԓ,A0G¼A9^[^.OlYk=2*V# Y{0YS 9|Rz=+SVx^2liµk4+ZZ!i7>'u :K쭔F#ZƖ4) XV`@QnJ~k%L`s|`:v[I|W|oD컣낫d*cF\E 0UB74n͵KO$ba[(s }_51t f77^}\ftv,e(,6atmC{9;痐⛌荗92'A$tC&]NMڔ=Q"t]`X܄adot R lIʊ ArJupFd8|6a)iC$6n#(]klO`b][nR`sa6GЁPlW Yq;<}^o[Mrz^}p7_0=zE"!ӥX.Tkn`AF&HB؏e ez6J?!DYxI)C~1@mIbF~ *W-LY0(d!x f~t6"u0[Ѐ=CX\:uYDJj3M]i)!c]ŇѰwv}o=n;G 3qĉ?f-mSs0DWS񟀍d7geXO0 ^*&=h9Qʤf͛$=-ڭfަےH]hs6 !- % +^12(emNZ6ؐ¢"v9U8}' HMȇuUq#jd3=[6a VD3{u}E;*'}f:*hY/Y(0#ČL5fiI* I&46 0JRgP&j!6YE) -k8_=űmˋ%K %rYy/Afm9O9mfq6+G(Θ;%!Lc(,KFX|6 2˷ÑSK20X] &}>N,;̃'NʧGTכܾS첦-1MO@nX2ĭ..;;k#3?>oEyO+DT!8QKφPC?+vdgcUzN-X6flaMl{#n_3 MsyA R;i}(`!p[-?{Eʮ;C1$ #h!Ê'Į~L款wD#}9BpV~g6dYRdm~K-\h|6=*x`eI ˅M?'vuQ^&6jz>kai1`|4Iv8]Ȟ?(q`50~چX_Gcx:,UAipO߆A8,~qX(ސ2d:'!=0xPP{vϒw.U BK5$%Չ#: '^b?tgy|Ot*&<"^5Z*V2P=NN~055bz0ެWndDWvb.x'Q\a%X_B˰kXɛ45hⷐIc ődde&^*'ġ-TY#男x,(tCUqL8=( u;FN;OH= ^B y m|A.9{tXDS`6Do<WD!lg|&~: v-2hltн ME+%g] OtUO=f7w^}]3r-g!5I4呒LDۡ,n\j*1 Z=3FH ;KT¶X4dA#*bdnJT0h\0DQޔaQH/׉ u:]"-FRV1ie8;lZ_2#Z4\Ͷ7cCc2y J󹁦q?ٟCil{TxH FdW0)`$a\G8= fc.~UӟUyds g3tzp/ a~@1}k̓!1we?|-A77XAf_c3zMu^4#8wb,A"j؊F P  m,JcP^T>B RUb)/+QV[aY !H!鞉LҤR+ ;"IH&%zU~[H" 놱naHIZ HQTHBHT|Z?(A-$B}LNETضhBPKׯ.7H7HDdqfnqSiԉ(ܡ'SlTi UyL "h@_gLąp Ζs"Q y5YmK4iBd4bn"x+:0TL8Sf։IJ̝>Ʋ1+)aRe twXCD5\TjFBG-;T?\%L'NVDKp߿^NK]uUc-Ig(BG*z̎P/ڂ xND :Wx%Н^;@B@BNs W,$-a{N#810@i=١_[ĉ$2 $5FJH2L!HC!À64QDOkxM͋ @bg 1AbN4恄ߞHr # 0L$~iPۯ v|a9&ɀDNgݤDD~Jjͤ,q;g~3qd78-[2$&"1 `![TsWҘOLB*ȯf$5ζVHsƙq]gzv |`ys4_ވsx6[QPF:"Wb&[_ wtIZ\' ݕ C Z}n|>FMRKA a,wV"? w r30CJhA`2!Zj`̿ 0 A~>Kq0nq8,Ev"4&ʰ|?}X@E$F !h<p0z0aI^x'xoN['5mLrm" i(s;ؗ[g\zED"] Xv{ޱ=黪ϡP%SjaaE'})Kb,DqRM?kdt?uӇ0h:#r[:qe7Q]6JF}OZf?#(ǣoN?yt4iUJ c2Ӆ mj E>65h AÕx{|GtG&ܤQww#ngRYb`C>7yst0I=?RjrelJǜѴ$O)y1uJH/;TӦGʉd+?8~.NñQÃڄ&7✭?5޲u0n_bb D.C ,ch υ{^_?SJw ƝQW־(724BRJXݡ-32]]do~V.I~TJi&m. j  kW3ho܉AR&tɥ=$ x ՃN.t. |xHAw_P>%Ҿ@8H:;Mɽ2hݩ*lXGib)ؿh u R+U0Q]+փ[ۏQci~g_ 6cyDWg;o~E=Qဓ2 ƥXF@:& LgMMM@-{3`nMZ"0T!J#lFn&➏(V uBڢ0_4!};hF 1X4s8>\SR L0&b`?0YX8Q#~e}mLFvo#PTrQ:b,֦ν٘";W ~{ӵuEUn}JFr9ks[-F|TH]x'~0H}Jі;}6\#Bc}j9(ߓ턮;ۊM{'yALf7QPt(U*s+֊&j߹uX$* ִ'6X<C^3WU{mj&fjltuU '*`0B2g]i0#fN^vWu-R^"DloхQ /Lh\^ ye*U;gd}cVʿbdM$% hl*u^}2ty.Iws;/*RE\cΑ-TWx#ou>JBHbHsͪR_aq_VA$@lvH,]~M[XȩNz6 D!͖f5YEy>%OͿ3xjhV'jfx""xC*In`мvᨀz)nݣ:ݢd + 2L޸*09[tz<GHk^ a ہ1s z8i>qMW,{Ҁ 1D4Oi*lgfa<ХB vw>v^|湥0ۮwxt"!%iHmǛlKp&k\#1>SϭITj7c:"j*W?v̹.s3J9oS,Mƌ!$&6A ] ]>?ˀ.WL6CK8!.^wl=ʉ\㋗#Lo(q¥)*UIHIftLSZwqkU!VQ-cFB_c黡FYF +T:`r!{ts _24'3}>vq_mR-}brt Q]` >>?EݔOΓYfa 5&w~Kh,)qjO)>t.8{]= nK]ML1/]7ځ qJ5XI]~ nO7 f}Eٝ#h]v QKZuJ?!pN:0~ UbbbGJQ}sQ N )!$ֵ434^eŹb@6oƝbN: =%/=I j?2wc.Cs. ,:/ IR7݌ DK`ɨ z2&UV2bɠ;6c-*͆xk ЯqO/ su/I/Xn@{m?YBy7>c ! RUQ馣9FQI\o"H+LNEH &qqF\͑ 1,Ř掫\4,(5D2B!O|S{Q kc]Lb/(/\KumXgxQ/F.ß\"Lag02Vy f`gxK ]^wtG/oK)Qz-&C=1Y6x,1IGbP:7p3͛͸­j MnbZY{~ tj EMu%'{6}&?rպEX2d_JLo<:OVI, 4bI W2qc)jz֢6=Kz5/B8 >h{|Cjֿ|! N`\>kȓa8HFJKRԊrTzAiȚ&Cru$ hV٥m?EYqB\ds㓀ᒢ"o-WeG{a<p}-kbesՏBXWqFHi5̃k+J*KL}> :IDc2OZ$CsIC/=tZCu E<x$u*mYm+/9UT),wKw乎*X$ː4 )4 BFxhHMD0 Kki ;"!d 忬g?:֡Rƨf [+8C K;_xEcFxGu Pl`Њ(|t5&Lj}VfK2:g)*$a*W$ڰJO{8TrcHet@5-hά;^S-ÏU@tusC'!/AAA6qBgHq||Rln+W! >WأIm7[,_˩!Ksgz[$RpѦLf-f$2e0`ځ Im[j?ḙ-E%k M665.7x]l,Ȅ!s)"S-D˙өR L&8CrVee0/f>͍vfkAe*C% ')|  `z)SMOD$Ssq/ЯokefRl"le)AA 7T: ^[Q`M,3VٔLbfCbuqZ=7-̀@la>G uN`o0Ca އxf[q #A01.r76bl3o`r@  =T'Tҩ`h'\ .^xkXHIնF *RbtjaѮ!H#&F]9L, &d Sm0Ұ-ERN`Y'φ`0La~HĎ=y~fb=pcN0Ca 5FCf Ǡd2ءGF,x.nm=B҂ ("w5ӻv`"AzPsT}/tw9:Vhkq3?wI!rfA~U?d ̍ZT8[wM{';ȵI&@K)q:`Wn#*S i0FDvW^'BBd*"*K;w|~0`P4 kgHs A'>0q J~gGVg!=`盇HruH\Y,%ɼy<嘐37G"j.lht'YEQ{i [O:4/~ﭞ~lk܎+Q^& Ma4 i$")AʼnK _Z1/@<8HB7/Zgb)HF qq-Q)Bi6}~K|/ITa9NFGA{LEp7J@`]w4sZsT',77/cۢXJ4Z꠵Ӵznmi2>uf,`]z$_PD=vR,2?Rߤ*2,A$8BHo[{&=M{H ?p\&J.sj- #/lL8ɸZ0swZ~ΧjsEO$$&\;?*soMuEDL-/ \0 m}oԓ[K)$&VyC#eq6EviW:Bȷ=OJ!MY64fFrZnv[O((.A<|2G\e:nsCCǘ>^A +Q#m Z_딱^c3ALȆKXPoό>7w8w"%7.ΰ4 @h (x8[ |\$NU$$q<{"yBCBD7\4r>{H{-jim2%`c=,17'B S&)^˗ +ya{$  nL]J..R ߉W%5[7ZuDZ* e(x?=PTTɵY[( ߑSdamY.jPv+r{i%Yw'Y/\Ql"ӝMk%zCp4Zslji@b6`:C~ 3lS/>!ٴ_<3/uTV\પuQgf(CI<@ߛìPs`MI9}ʣ$k,ߺ@R 7?N z9J!mej3.,~ZhaTx׹8M|{Me~^z2F RpǴ^`Ɨ uE{w oMΓc|Ks}7ğ;P+KKmG΁)4uOhoˀO=:z0]}%h+`EdYB5Mb1|[2S"`Qu":Lf@^Eқ2b;>HϧgztE4T3""6*'?XϸxKhRH:慻I&4$xgBhH: 2uca [T62%E<HsA|/]`oM;RFǞe@ X&N\űu M%G)Ϊ)pqa*(OD`woO5|c{3qLФ[DsTj{]I^"""8k|Y2~:Uo8P||Sq #\nbjhx&#+eWzZQw񫰺(C< r5sS~?n,p^ΜˌtFT Xb|o])=gd>&㨬MvKx+%)/Ū!) ~B` ĝ0SfeZzmH.doMUHvf2[ ɩ:XNT|^-I̥ ʫh6v dekV!aE훸gqEq|>+G ӗT81L3~-d BZkLb,A S23;{jHcO|:M7 Ǵ(uR\|xrlx\G?B"s.]:TIQ;ҭUW)Pq=- .[+cyѧ{_F7S`> YaTdΦGK!8Q)a x(0lŚGiG{%Dp6H(x( %<~-F-5UPHMTiZI!\}Vg{]ϮyQjdWJU*܎њ-ur럇A>p-"εc@81)Fc) Q~,Q`]`_@-%{jHFqDFdj2e5Se 6jg%9y(?sqW6`uZV]Ibi!M I;&@m$!~,__w#7.gNQ N7Bػ8dp yXp s&FhvEJ Xi/ؕ'J(֗loqZעt $fcfJN˩:KX3 (Gb8+Z^[Jw24Ld|Fs혁.'2i7&9XrVڃsJx_7xVws=M ״E PDC!@5 3=s~>%ny[¸~=t}7Gd"C*Pt {n?{EL}^J:{0Doīmp4<DTإ~)Dp2gO/cpv 03]:,WA26 G/K59tfX^$al=4D@|pD<*N Ak F5E\rIZ4+ An-; 5y^eH55 RhAd0A CI yĸNss^Ưր67P@Mhi<߽PHr}?^B q.C3Q\[/I>-# G 9?Azk 2ŻvYuQ6"ͨ-BؑT{(F|Pb:f~Qt?/R9G>/U o|`S#KKW:^$„ߏE.IwYgkX=xQb~H_䎫^|KZ0xWW셣B -(ut61'Lö#O24&b 5١"?B5_ЌYsx)Lld[}9qV6[P4pdL؍n(n,{@ڙ׶)_<m n3,cjavys{Z)%!SOhuOF64#_@b<0>UݗuvA,X(1^VJԧ4h= J7,}Σf,w?g͗=cI*î7a+Yh*hL|]JfS1N)}hV!/?>ۥY u(!LtFaF s:l?L_;W`;igbQ.ΡC &'m ɀ(>W3E_}6~7ꂸ` }E*ZMgfFna\6( 7ii_wТdx\o҅B >u<3Ph ]e} ݛږO'p+z$d)B*<.Ǔ+3R]Zԩ'vw7 e5DDOz]QIE(c%Gk90n+ l)z4Jf̩/ga'P6+G%+Z"`0`!3Gʦnū&kWry¶məc@s3ne\{YXsg(etAh.̖ ц~wW-K){Ff¸#Jg2i/ʯiJP=Y8\&en wuDJJ'0wX2e9 &زΩX /Vsd03;$CY$8^3Z0\sE沺`~Knxn! c4Gr`)ڐVJ# ѶF,Ķ=iX7uY;ҍE9 anLy$.层LL ʹO}S3\,~]v8v?{;^aA8~)pR>o;;r7D\F52oСq%T4\з5E ;uiTi*zl3s4WؖgN8~]t|OzC8*2bFJyF2 !=֟n`:p ]|$dIٍBF/(^̀zq&R/W dyZX )&Oc<4o&;q6ctޑlzkswl'^j>v8:&:CD`o@;7#jH05G&r@!8"8Y`ĬjYKR܌a}YLS%,bOY?Y9cv.Tc[eՐǁ1rSIaE"SbX%Ga}@x?uߎuY[Sagyٷx[v[% f!m(wF*$K#Q{]vi{냓1^{H4G+D?]/=\RaDxYe'eU .oLp0@◔RahZ!Nn?<_0bdʞ"$3\T`Vx&?53T&ÎG 0n%G }xtU  WlV;iIj҂2F 0k4lk0QqQ0F30w[ƕ#kOH@Yo9FYW-"k)Vcت@*{9\ r^́PQI憹OAe9(Ue/iF[3b4vH`m҈q! :wIދx~X<4H;,>P @Zp/ ؃L$ *h/i?Yr4Q:DǠb[Lg)>jfg,Qډʭ[w)Ru6  :zMܷ\f]fA34iuƇƆ(}$I3xN&d#& 75?gx.ܿS~U4SGi^b!_҈b :-a 붅V10s|,#m2'Bl@\\pOΕx|Ed~'L'wܙ)df\^A wYs^PhO1%4hE&BQ)r(|~][;BJ*JK$+k҆# xI}-cOj$틤%9( &s;/@|cm9NIùI4jaLm@o/8@<~ TMVS ;"JԥDƢ-JSO d9z!cWKBL۠w|@#,ja8eL7~3jbe{0GMe]._HHHZ6#Z5 L4 3flo3X3]]O65~lzJ΍DW_}LQ<=Deo[{'-odߊ` 3jeb&B[mϝ^'mRNAmsV 2cp d MGG5-e [V 4z>\oC- (2i:k+JW䉗ZM4 !^8ЩRpc;1wՆɀ赋k,9[6dy7_zcaQ@{GCR((TJy"aX cYvJpjߝ[/?зQI3@<ޫHZƪiڂo$~Wƅ"yQMpA.%2,XERK{A(UO{ ̀\ń=':mr(8-n533NO04o|7RwíaJܦEkWwD9Nph^WWdóN@ܣk/Wa5Nh*̴Z$V/j6$hղH к" (f,r'{9 )+j<#rX]Vܶ-<Na+/R tOsuܥNYTV_GuzD:^GŜ נ@T`H<9S¨$$_s%z+Y+i\:1ŔU:NQj-BRkU`[=Kg[DPx8 e`iSdA %!ShUy7B.v*I4HU>)u3"kn }u*0- pluloP(:õw؇!NfFݼ )07Lo'>,@Fb%bB6E⽸HwӮ[o/4 زvRf&)}/_Rޏ˩*TsVcu l{.S?X)Ndѽ/OVz'}4X1l9tISa")N߸x XzH f>{HıqOW .(:ϫ6=s0;FVzU]Ϸvf&ܮz!bV1"lm0;}?mx_3oWW\(-Vű9h0Ҝ(8Sg`3yW XXϧV\>K,hz}Oa 1E~u 7;* 'FYo5:-5" p`w=?A7e!_V eGO ޏ:S=t(uNUL!UƯjT rIq@ s{mz|lmY iCÚ'āQoRJ`LI2TWK9WyoȪ̂-W;j[ l~qνX%t@o9Axnqo3Fuҳ{=s{(X+zs/o1>)77MetÙ#]dzSkI tR)K{;W9AmXt<ũuJ֥G8T 47_[wS8䀆DFA:EdU0Ȕ4k]x63-\X({M?+)R>Xv0YMÛw}V9]Eߐܻg0k@ݷDt\JAc3TtF90?EC O ϢD o(f F`L_;f͠_3Teu lXfm&Bd$ޒ0UXٞҳ4B´j!Z@xh$%4.+ k(Ap]=%_W\lWLe(^XlJCָ`Ÿ`͖vo wc"F6op\w"TWi͚uZZ{T*ճ24Э}^׬ TYszbѐh-CHhzi1NiBsh e x%\<=^Ţ'6Njq)kěޥHJps*֞641!=")(#R.p&x+)4z+7\B*zVE80Qd[:ܟ@ c_7ȯ@yRBĆ-mi!ZHKZ3MN1-3E@)JA λ8< xQ^N=:~}Y>}(KAnv;8,. q!!_ˋ5UWpO|y򘐑^t=>ڈ4A F ~;7vADU8`%r$fspPk (|T8AySElKJߣ_YEݍEOծ6q~_[s%׼hY•^8L`!¼k~ad}/V?=ۍ U|Yx﹀lV1|5w͜yZ~fk~M 켩U 2?7Y:1\-|ꄝ.m9ՅuVogd&ޑ9 OY}VI:/ByW-BImBhP0~z;&Jh;"ff"O-*( }#}6?Y CM3OkGzdApc l>H&s&ּggǑw6ϯ$6Z~mz_);)+I3Xj6&/Zr|br/oшë6{ޗiR?Eb8CN7-p}LXW;H\qamSzDBcJ CYRVrF"E ̧K t}I;$xwh0,HsVɞڵ'j#MW/ooHM2Y5aVOWŽx)+Z8@;jdAu1Q#Pʩ:JWU48Exӄ;Ş?Vjw7N^L G&R{ bD#|(q7:Π=ejP`:FOz?h>4283֦.k.vf1w=O_%9Ax _e?$\| UFGm#:ݏ&xB'*AY+Y'Bq}vQ)cZ)3md kƲ|P˰>p'UVU\ٷ%8&4&Lcex)1B6kOm:aH@@o3+jh: %]=CqnrhۑaUV`9 _;֫ Le7kMfl&u'&r6vr{ .*FH̢)ӄUfb]:b!at\[)dK)C9)qVhry 2cqG,lˉ"`?@~_J ĹB),2Xx ~^%y!Nwqd/{le=qՍ ;14 ir>:,V|*z_x.)ǩ\g1+8#)ס>*xLhe֧QNrgŒŦIcBfd66"U|OQt3&$x/G Cgs\|uOŒYR+O;@8K2rG'XyX JrUbqoks1*wlidV#>AR>4ۢӡ}5#u9JËI6V'`ু6sp4A2ik'VN??<`\T&1P2ޝBrX+ S-Ď(>lL2L^ P4h :AP&fglb'E֩㠞qs׃0&|_yEzc>> +PU"q{uP҈d&?XR)p >Q`s'^5&| 4ᇑ l+-NGi5i\+FAs g!v0MфeD<^\G*>CPق#(#%ZoDچm_QPJWXo+0 ]T=~ˏNUK(Y2(wE?-]SK πS* f$K+IFȱwyA6IX~~J-D)JRR=Phy"i{.hUףzgq0~CI񦔶ǵ,M.jZs}V⟞''L68?^ FFF#?TeߊdKfſ#iU?1zW9+)&?%㮛=Bx< -Gbk|O?nq IJJa~! kh0yÛ@Dc2ĭ#X;VزņMc*XC\P͗DͭUΌ=2wd83@ڧiCJ6*zpnmWdN kmQIb$B7UOv>f'[KW,-3Xg X3 򂌀,C=Қ~wcP5v$gTZHյ/h>-6e8s}>|ÿYϏ:C\c5ؾ[Mq,t{ko G)BQ+džx@IwƊlUd9έd uYF(Pa~zb旣!ɺO\"lK4g4yܝ1# =w@s-|/':D19A[QS"dt4+II'8z1<4u5()DojByu #׮sMt_)A4T*< FB*Y{rиgpؖh ΋"S}cZ8?;Nd=q 1fY"|t'A'npS(\СH2l?xRI-^_hŪYvUY5]\Vq"BKuESG5Pid+C)ItJ6=zk8u<1@\|]E%rEnY ?uWY`I&+D~3.+|׉.s1I/;PNG#BCnQg` đeP% OCYeuZn9!8/[lOpُZ#`kwEt?wk}r]XfX < %-V;:"Cآ~hGQ!!pΕ1HԱ)қM庹8`h-uE$ ;?8wSYՅz5(Nˏ{Dr|3 2Rm师/55yMcy8Zy@[}YӑZ̻ؐfۖ? F(xzk-J>C)[.\j#|o F9ojà"sܸl"j?|O;<~_F6 ,?Sy$/;z],$eQJ1NqGڛ@4}~g: Ot\;.ۏ}Ok뵳ʔ4*z򣊅,]گ*Ah'Uó!ƥ$p@! |kgOPbYƲ4F/zE}ƽ.(D7Gd}^o] 9ϙ&iH?uA;>t`Z5R`I'4qi{)JR]|c]v?&C\{I?oו1' FAB2IN J(DԲE|EzP~tSMZ?[e;V"9+*+f/ D57e9lzC K}9Bd) 0'g•:Ve*N(P"WS~">c]_c]+bْ ٸ枟ZirȦ&]d6l^tt9xarlm~Ix}-Mr7}ޓ=՞3b]Wb x/B g niӳn>e3=ߺ=^I!BA B'{?!X0;wVgECjgAA4 !k2'>qU=mGix\LGoUc(X:!tp|gu\xF_/rc "NתvuU NRILu'LKcZ:?uDZ&cEAP`0:Q&?܅Eep%D`&iG|~:֛|?QTX yJ[ o< :}<vVNIvTk/EJgN52,9ZᆖPS;=͓;|Рz7 *ʈ8nчwy,Iz[^ؿxx*ґ "bLǤԠn]D3&\`^SFo9MF0JPe hoJGI{MR[MZ91 ߏg|xޚ@ZL#*UtL&STxgqPd%IgE+UдMֻ*X^3作pQ}Kyšܳقo,>̔h1.q_kri@ymN8꾷ƁC)܅֑ %U&Ͱ8hYbbqSp ERI!է7{>xt͌Jv4]H3ܖ̧i2KNOwzmkw JR)4(~2C_UtOAqP僯fo-RmZԩ y4Դs//~a|}I3BsoeVCMCvx_K{5y M'ny|O:D@]\? SPw?f_3ڬC=e1Dɟ +.J"_V hߊK%R-{;Z"Z i#1,ʒo*Ѧxq4O*/.%1NLu[kMޭ d5>2 ~,Mb,Z]NdYKӋ7*ŎO"KU䫊^|ePY+dU62H\: Vq Ψ-]>?*<˫LjfuhQvbhدljlpm:#wƿPL>?7@ 1oN2AjU($NV%]C)n*`Aĥ:a?waݟ}|ޢx8ڃ]M?Rcb/9'u$wz'L=Vc߉'+Y†Y9~բ bD; 5Ro"E-f+_)YOH3:NM< P ^8d(e_ dh,lpqk kgX>/^b3|49̔zE Īve ٞ;V|ͬnhbO#)ȼ!~5JIkVRJv<YsBaI!)Bv14V1ܒp`@1d  %dLiAF3}Q9{^ yT[ d=OL ø.%.h `WHa=[(ty ~ʐ(\ZMC Au\f]/^;Q:z}`9.K%S¾6e=GS r 7ʶѠ-@Џv8hJVjX"ݠX:hc O~B@Xǰ䩳j~ؤip,{&ur&ḓJT@4zjpu;ROIdC>4"E' TwIY V@^`҆ZCT4s վU2*м|8uސ߄`WCӮ~iezާ;GX/=Sz> Ľ tmή"c]8 âQ>F&(uyFVR},YBg1DɆ|O a%ʊW}6HDZ!6;n^4~gʓa˒Rͦ?1-0"X ̎q?FB :. 4*# 8``&./7&۞Ň7D =T/c\'ݩӟ/ΚGa¡ ͻnCE_V "t: 0vWJ4>@Dc˄e+F6POB=mlSif=!8lP1V1z#E{ZQjOz)ȯ $r,#7];(أ> 48NT1fa z{O!Rml9AKxiN7=d,됽OGߔ|5ˍ+%}5 @tkpuO=lFK(\໤]-O^}yWMo H fG .{ܬlB^0h"io}R)L}D},-- r=yo-uN<S g6'wZiz7k6 {%A F'AĔl2+ST2SޥsދY]a–zd 3kp9KX[Yfao hbze~g|xXQ ޖ#xnي+<*q{iU|&l%Pz}{sP`x9E1/rNG6 k?g?%̓LJ`gR.J]8/S&Ӈy>gjpmO?CJ)],Tϰ/u`)R2'}L!(^kuxgKe `x$!|<ٕDƹ A2hLDahgk@G7LK kvr] ?٥,3.GBcTTxR*r/-V+MʳB &uCKxH=Am$8laS'(ѡ0_%rJٝƀ~j&&'L]SKAɠaczQp2571sBHT^K91VѯkPE'8#WlT¡& %Ttp8Ut'֎8bj,f Ò22W-{U&:mA-"q!rkA[!y-9]rl dָb XS)9AHPW%papD ޲ h<ڬdE]\X!r5A= ^Ff^w1APƱo%?.iLa !5? \~kE\q&+$X{Jν<~ҥKT 9n2"UaшO"$iO4ŹևV0Һ$+7v>hn ڥU]w.z'v|UZH,(zd} I02I8~"tH9ӦsX YbIpᾛtBfI&I'~QX~w6kHCэ.*}5:ӰXS~F=~)D;eSCi*7I0H=%,0ft4b &}у4aSYy2[ȏ<0iP#XdKǦ K>-9jI U܁wE 8O4uShj4ޒW ]qR @vC9N@ ;FޭLxv*dE .x*uOESmlo![\E}l`6\ M/Jwϰ>gr׋ۡm՚r7|`,k (Gw+AAN@up nф 4?lE 3Lk q2Pц)AQfL)HP|H"ۛBt OU嘍 [ :Q1gg#xR`͉. 1OprM@n抔)JWOaߴc_$zQ}.ϩy/)=Mk^xj>emzbbTk4 nGt3Pgj(a#ex*c?aǯ<1 e &4pWR 6FPp!N>M/Pbi u #| $&l40A QO֎ͯyaym{YP3 0m>=]mS\')R[n/n2Z\Zփiu\RBt>,>I|p͛uό/J+5X$iJ"AVG(Mq;x1ƙ{-Ϳu'7u(pssm|&UqM:W3zfkH>@À-Mq{`R#' ݩ@D @.hUbj {tL+3hnW\" F% ?rMOFmL¥u>ajnP4 Qw`7m-YIj03cOV]?HWwL!\kǛL\yw)*$fY#Uŕs2ط57zj!15YE:D2Ay#= +Nm 2ߌ=_,.V{ܞ6n=}BY$4|vo%k:Kx6KG#ᡪ'f@Иr^XAع4z׻~$rܯ6S7vL~T'?"z-h#/*b~*(G*rWz=}RARƑ+'U60M&Q\]^8K%Eˀ}[Fhi'H9oW+l[:4ɰ*"0һr% u4 Ƥ_9_z|@5 4u2cvW ɌuV\Pu 'Ҙ~sUqh0p)PE|{{`ⷛfPY(,Ιַo Np;+ٳ0%;"| GC41:8M鋤$BqEq:dewWJFfd=L% Ur )mC h#џ3\'TgL0%Him n SUc  qI$s=_Zۭ,pxvP~#bI,_;\n@^``O|#5bI~]LOa=_ k{p[fxTEA"@+9AAaNzuْ/eʬ~̦1Fe^'yރx:U@|?4qTM2p’I>QG/&pD|jT9X Iu{y\rɚq2=qޖMAT&‚y H'TuI!bN Y.$v(_U`pҞC.o˳BݝMwn5Y?}F IOjeAMPb\6~-EPxx2rVWN_evēͺAI=l cyl}.]Xފ2R 1 'g;;x*?÷Z9|xb-i%cy G<a8{fZWzEf&^~[ni"w$b`Tm̢ ߵ;neKQP18b"K%0>|# :2'Etk].}ZADN2[-wq~>G^S7iE\ZեޖŬ֖V┵0kffWUX^m%j&xZ(&VG"z}eڻQ-qCN1N*9nY[k`3=nfG;}dq<[>(hnk |li]s72f1֙>25]w֥D+ƿ[b\-Նٗ vhA.eL!"UiP3$:Sc_nʛvP褯,F/(HJ%,34q\@\q+ʛߞEPZz!' YnFK~K\P> 6]4YUUW l:d"^PoUS~sk]~h(9>{UMQ;{A4փ^uB_r "-Jck}h HM2Z ¬ Z~8X~9zs={%%tTΛk:;x# QB;/o'ފ'!*Ժ4{O @PX2x4bɣ S4-8?;@j~E#nW#x&vGjJ˒ۛ 񿫲doԫO6cs^FreC}46AymYA 4Q5MHXu:釬9Kų,A\;xn_c*oOs>KpWOGW<` w+t$i$>M@1œ&)< k/,)IѱG;XҰʋ]:ܥatl6cG;{T~:1g}_ٯC(}=$im%gKZ*E)3d*ޓDs+CuT5BB/zxԺ7<<@Yg0ęP@!aHovE q?ztUvfɖ)N#C!mʈNIE/gYDwE S.24t8DM6tcr~lVs79{?/9Y3`!{C$ps%69ֵB0kc{[N<)+Ԡ2P?f{ۢ(}bW] (Dٲ>o Ŷޥz .Lr;02<Ľis dTz~}CaPtMl]˪jp530.xL$4DXl- Q;'(q*"r(՟ڶ N طd8ƒjFqofדI=f*ME T ¶YiW>5kOyRt UW\d(| ‰ m;xe \a28;OXG+aJ9 UY+k={p&a/R^9G5$(a2$}Uѿ>7{2o]ݝJGyW 3$W{f̢?ܴoxnQO [z.Y ۽x3Ϧ cRt.ؕp FN!R*w9O|x2[`ˣ=g+!!?tݖboP6Lԏ)MTzuܼh*q\!S:sD +4G% NZcba,ɐ9 FU1XxtYG?A8fݹeAl~vc%ey ۢ\/'MDWhqPmv2Z>$1 b&Y9ؿ > \=D#5"} 58-Zf3& 3@d)7XÛRڜd e>oբ!M;!ӣT}Rɪ'kumO,&,ZrND ӣy [G6pGBv-4y68QQAb cT,F7w-}0C9#Zr,P g6t+l8,Zik..i&ČvHe|y{9В]cfg'cݖ+*I"Ƕc8p1N <(Z;OAцq~ UTm?MsO>JA;8`Y 8.K1Z9Y<<\jTOl[f9MCrchD'ڗ +U6љ1!Fj~'"퉏'5?3Gu'vJD"kZP*`U`[.cN4naZC-(SN.w0, 0nV'2.vOqd  'h|LB1p6 %`stF$E6ZRgbVz4xn8jm0)_">36RVtd Ot6/O01XJ–3e(IC0i=lS.Ջ5-#YMH쯗RZv]{˚+yyQ~;{dW{D ?Y>ФSĄ{>Mr `.~0Q3̜2C[ :XZg~ǿ缦knfDm` |cՊƂt/j0;-f`a̤/6W00ЬVcqAM,+Iq‡5FPo2Y%Zj#$=ZVcw.iRDĢx&L_za&Ä> ~Hm*Gew#WHbw? ܭ-3Q `@uML֏:yWTdv,~@uU%[UۡI(awa747';ʖ3۱Z=>:[$]tV9|wŦ-IƘЛCcm$ēi mI軅Yh_Z@aH/ AA ?!q[%q̟g*57ʜL;%>Ƶ AV h3H:,$$?4; ҊϧYZr?kIÚ(.*ȩepW<0i[[LxF}~i7GLoy,˪]'xҎOo9!@-i&I{bM/RӎVOE~mz5(Hp’/l`2ٺ`qW| 6,Iސ\ !M3wfy}ۨ’i&4#=&s=Ʈ| /BU nWH-qpgWp0ԬDurȂb{)QnlӼX -q2.H1ʼnӫSՁG$.ѧ\a~GbZ~5nDefЭkz S7%@Tؕ'}oC2'o)2:桤R[&f>M\*`ߐmnU7S9n1u2ՐZXCz kuΚ yD8ǎBɀ USOJw\ Xvu Kx8e"#&k̢( ף[h \¤)J \B7~&[&Ɓp%T [ y xD8, R ޅ-2O{U 58wwŃ>Ml!ḝD_P&Z4ڣI4{YFL{WzG`GSf4m**)0߅^bZ:{Id>T"j9Jgȡx~6zM_q#PT\#<2RG:X;=s 0>y|@sxLEM96A]"vL#AF\;vL*_[p<1p*x |y@@)m,@V~">Vڳ0oc#Qun+O54h7FCԒhinI\2 5f ão,'tÓD$rtL  ǭB~~s]|봑^Ւn%\޼HlÝ   Nu$j5A){$7Iw]|l3 Nqjh0Uw ҶMċ$hn2G?`QEblPNlۍ;\i "# Pn~k $&LX% ܐN/y# !3|ِtp@0&l@vn2]d8NMjD6@M$<+2jvid ׺+˖[^eevW ʲsvjH (&:Ī'd{iޛ 餧 !BF|C'zg> 6܄\S@s=aYr)>a"+q|?4:H9f xpar7 p@=Rϋf/h,lKuhbx0CP`83h"PMF'TӡcWi.E` ḻ2OK yȘyg+5KF҈yJ&ÆvQkעC,a9N)T$`D@"Hdk<>tnDŽq@0/9|T N>yU$2Jt%Z@CJl?2ġ j vضB|uOp'(Gn'l_tC]!{D^߫@%]yn1vgo;)!t sGpؒQ aFe "FXL]u'SFߦV$+4]6_[c_YMc&IlYSM-xL{Vy7jMe`fO V6uFG;q2ma}ͯb.tsC ʓo!G1*`)vm.'W6qڞss&{[K@tlBLUَʷzlXI mV(k4 `q5S\+O(s8'|ܓ@/7TJ>!0F,0^n (I|pjI/qgJNcb$< 6iu. ?HMڄOƛ?@Ҍ `Aߔx^)^dqQ,Z6Ѩ63BEE.d=~ w I>8lȄЬLyFmt9fzA4AM8dJ!V[IJ!keݗJȬ/fz sY4v#Ix4>jd,h7 nVكa |oH r1 ΐ 'I*!,~9 68?MLjx=t(n@񔩲Ʀ} k~u##wӹ055+i^c3{kE]gZ_{(m*24a4Y[،֩I(?t\# guyXSw#"C"Þ f'Q74~ ]y(]vUA0za~&xF  W`$,-b]?A?~%QtlWQ CD_}w8GkJ?4GkUd 9gHtUM~iU;hWTq2?jv6dolX\Vc{[H}i;-`U3Afu!F.ÒNBUs 21?Vo7ڭMXpfoԦ,2r[ZlQvЅ^bt؁@oa( K{K燐Yq(Pt<u/s'KhbN2rՎ-^iz8YyȗEe%zL[f:CQ4w8ӕ].BO?=|Mj0%AV)!}Ta""IrHbKX!.AŔ%9rb8!l6ޙLmϻy`m!O!ͷ ڔYڱoz=D3'%'))<;Bg]vD7>(g7=E.C-NQp4*ѳh (Ucÿ:Ela[]g^n$PaEAP<;FmV=$d0]@>:P܈lA8$ Qvw w2O&Mv?I6+Om)}yǺeI=Yb-;VˣY`7&bQ$A]=1y-1Zv I8iit Tll#l}?[GL^q "Г}KhVIŌ)($2¨N& "^%D91򵋭di\+rpZ#D@t9 FEv"+3BK9Fyoݯy^~R?`N_;){\נ d)CՔ6BZa%y!*?Tw].5 trigger_error($user->lang['ATTACHED_IMAGE_NOT_IMAGE']); } // Do we have to create a thumbnail? $filedata['thumbnail'] = ($cat_id == ATTACHMENT_CATEGORY_IMAGE && $config['img_create_thumbnail']) ? 1 : 0; // Check Image Size, if it is an image if (!$auth->acl_get('a_') && !$auth->acl_get('m_', $forum_id) && $cat_id == ATTACHMENT_CATEGORY_IMAGE) { $file->upload->set_allowed_dimensions(0, 0, $config['img_max_width'], $config['img_max_height']); } // Admins and mods are allowed to exceed the allowed filesize if (!$auth->acl_get('a_') && !$auth->acl_get('m_', $forum_id)) { if (!empty($extensions[$file->get('extension')]['max_filesize'])) { $allowed_filesize = $extensions[$file->get('extension')]['max_filesize']; } else { $allowed_filesize = ($is_message) ? $config['max_filesize_pm'] : $config['max_filesize']; } $file->upload->set_max_filesize($allowed_filesize); } $file->clean_filename('unique', $user->data['user_id'] . '_'); // Are we uploading an image *and* this image being within the image category? Only then perform additional image checks. $no_image = ($cat_id == ATTACHMENT_CATEGORY_IMAGE) ? false : true; $file->move_file($config['upload_path'], false, $no_image); if (sizeof($file->error)) { $file->remove(); $filedata['error'] = array_merge($filedata['error'], $file->error); $filedata['post_attach'] = false; return $filedata; } $filedata['filesize'] = $file->get('filesize'); $filedata['mimetype'] = $file->get('mimetype'); $filedata['extension'] = $file->get('extension'); $filedata['physical_filename'] = $file->get('realname'); $filedata['real_filename'] = $file->get('uploadname'); $filedata['filetime'] = time(); // Check our complete quota if ($config['attachment_quota']) { if ($config['upload_dir_size'] + $file->get('filesize') > $config['attachment_quota']) { $filedata['error'][] = $user->lang['ATTACH_QUOTA_REACHED']; $filedata['post_attach'] = false; $file->remove(); return $filedata; } } // Check free disk space if ($free_space = @disk_free_space($phpbb_root_path . $config['upload_path'])) { if ($free_space <= $file->get('filesize')) { $filedata['error'][] = $user->lang['ATTACH_QUOTA_REACHED']; $filedata['post_attach'] = false; $file->remove(); return $filedata; } } // Create Thumbnail if ($filedata['thumbnail']) { $source = $file->get('destination_file'); $destination = $file->get('destination_path') . '/thumb_' . $file->get('realname'); if (!create_thumbnail($source, $destination, $file->get('mimetype'))) { $filedata['thumbnail'] = 0; } } return $filedata; } /** * Calculate the needed size for Thumbnail */ function get_img_size_format($width, $height) { global $config; // Maximum Width the Image can take $max_width = ($config['img_max_thumb_width']) ? $config['img_max_thumb_width'] : 400; if ($width > $height) { return array( round($width * ($max_width / $width)), round($height * ($max_width / $width)) ); } else { return array( round($width * ($max_width / $height)), round($height * ($max_width / $height)) ); } } /** * Return supported image types */ function get_supported_image_types($type = false) { if (@extension_loaded('gd')) { $format = imagetypes(); $new_type = 0; if ($type !== false) { // Type is one of the IMAGETYPE constants - it is fetched from getimagesize() switch ($type) { // GIF case IMAGETYPE_GIF: $new_type = ($format & IMG_GIF) ? IMG_GIF : false; break; // JPG, JPC, JP2 case IMAGETYPE_JPEG: case IMAGETYPE_JPC: case IMAGETYPE_JPEG2000: case IMAGETYPE_JP2: case IMAGETYPE_JPX: case IMAGETYPE_JB2: $new_type = ($format & IMG_JPG) ? IMG_JPG : false; break; // PNG case IMAGETYPE_PNG: $new_type = ($format & IMG_PNG) ? IMG_PNG : false; break; // WBMP case IMAGETYPE_WBMP: $new_type = ($format & IMG_WBMP) ? IMG_WBMP : false; break; } } else { $new_type = array(); $go_through_types = array(IMG_GIF, IMG_JPG, IMG_PNG, IMG_WBMP); foreach ($go_through_types as $check_type) { if ($format & $check_type) { $new_type[] = $check_type; } } } return array( 'gd' => ($new_type) ? true : false, 'format' => $new_type, 'version' => (function_exists('imagecreatetruecolor')) ? 2 : 1 ); } return array('gd' => false); } /** * Create Thumbnail */ function create_thumbnail($source, $destination, $mimetype) { global $config; $min_filesize = (int) $config['img_min_thumb_filesize']; $img_filesize = (file_exists($source)) ? @filesize($source) : false; if (!$img_filesize || $img_filesize <= $min_filesize) { return false; } $dimension = @getimagesize($source); if ($dimension === false) { return false; } list($width, $height, $type, ) = $dimension; if (empty($width) || empty($height)) { return false; } list($new_width, $new_height) = get_img_size_format($width, $height); // Do not create a thumbnail if the resulting width/height is bigger than the original one if ($new_width >= $width && $new_height >= $height) { return false; } $used_imagick = false; // Only use imagemagick if defined and the passthru function not disabled if ($config['img_imagick'] && function_exists('passthru')) { if (substr($config['img_imagick'], -1) !== '/') { $config['img_imagick'] .= '/'; } @passthru(escapeshellcmd($config['img_imagick']) . 'convert' . ((defined('PHP_OS') && preg_match('#^win#i', PHP_OS)) ? '.exe' : '') . ' -quality 85 -geometry ' . $new_width . 'x' . $new_height . ' "' . str_replace('\\', '/', $source) . '" "' . str_replace('\\', '/', $destination) . '"'); if (file_exists($destination)) { $used_imagick = true; } } if (!$used_imagick) { $type = get_supported_image_types($type); if ($type['gd']) { // If the type is not supported, we are not able to create a thumbnail if ($type['format'] === false) { return false; } switch ($type['format']) { case IMG_GIF: $image = @imagecreatefromgif($source); break; case IMG_JPG: @ini_set('gd.jpeg_ignore_warning', 1); $image = @imagecreatefromjpeg($source); break; case IMG_PNG: $image = @imagecreatefrompng($source); break; case IMG_WBMP: $image = @imagecreatefromwbmp($source); break; } if (empty($image)) { return false; } if ($type['version'] == 1) { $new_image = imagecreate($new_width, $new_height); if ($new_image === false) { return false; } imagecopyresized($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); } else { $new_image = imagecreatetruecolor($new_width, $new_height); if ($new_image === false) { return false; } // Preserve alpha transparency (png for example) @imagealphablending($new_image, false); @imagesavealpha($new_image, true); imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); } // If we are in safe mode create the destination file prior to using the gd functions to circumvent a PHP bug if (@ini_get('safe_mode') || @strtolower(ini_get('safe_mode')) == 'on') { @touch($destination); } switch ($type['format']) { case IMG_GIF: imagegif($new_image, $destination); break; case IMG_JPG: imagejpeg($new_image, $destination, 90); break; case IMG_PNG: imagepng($new_image, $destination); break; case IMG_WBMP: imagewbmp($new_image, $destination); break; } imagedestroy($new_image); } else { return false; } } if (!file_exists($destination)) { return false; } phpbb_chmod($destination, CHMOD_READ | CHMOD_WRITE); return true; } /** * Assign Inline attachments (build option fields) */ function posting_gen_inline_attachments(&$attachment_data) { global $template; if (sizeof($attachment_data)) { $s_inline_attachment_options = ''; foreach ($attachment_data as $i => $attachment) { $s_inline_attachment_options .= '<option value="' . $i . '">' . utf8_basename($attachment['real_filename']) . '</option>'; } $template->assign_var('S_INLINE_ATTACHMENT_OPTIONS', $s_inline_attachment_options); return true; } return false; } /** * Generate inline attachment entry */ function posting_gen_attachment_entry($attachment_data, &$filename_data, $show_attach_box = true) { global $template, $config, $phpbb_root_path, $phpEx, $user; // Some default template variables $template->assign_vars(array( 'S_SHOW_ATTACH_BOX' => $show_attach_box, 'S_HAS_ATTACHMENTS' => sizeof($attachment_data), 'FILESIZE' => $config['max_filesize'], 'FILE_COMMENT' => (isset($filename_data['filecomment'])) ? $filename_data['filecomment'] : '', )); if (sizeof($attachment_data)) { // We display the posted attachments within the desired order. ($config['display_order']) ? krsort($attachment_data) : ksort($attachment_data); foreach ($attachment_data as $count => $attach_row) { $hidden = ''; $attach_row['real_filename'] = utf8_basename($attach_row['real_filename']); foreach ($attach_row as $key => $value) { $hidden .= '<input type="hidden" name="attachment_data[' . $count . '][' . $key . ']" value="' . $value . '" />'; } $download_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'mode=view&amp;id=' . (int) $attach_row['attach_id'], true, ($attach_row['is_orphan']) ? $user->session_id : false); $template->assign_block_vars('attach_row', array( 'FILENAME' => utf8_basename($attach_row['real_filename']), 'A_FILENAME' => addslashes(utf8_basename($attach_row['real_filename'])), 'FILE_COMMENT' => $attach_row['attach_comment'], 'ATTACH_ID' => $attach_row['attach_id'], 'S_IS_ORPHAN' => $attach_row['is_orphan'], 'ASSOC_INDEX' => $count, 'U_VIEW_ATTACHMENT' => $download_link, 'S_HIDDEN' => $hidden) ); } } return sizeof($attachment_data); } // // General Post functions // /** * Load Drafts */ function load_drafts($topic_id = 0, $forum_id = 0, $id = 0, $pm_action = '', $msg_id = 0) { global $user, $db, $template, $auth; global $phpbb_root_path, $phpEx; $topic_ids = $forum_ids = $draft_rows = array(); // Load those drafts not connected to forums/topics // If forum_id == 0 AND topic_id == 0 then this is a PM draft if (!$topic_id && !$forum_id) { $sql_and = ' AND d.forum_id = 0 AND d.topic_id = 0'; } else { $sql_and = ''; $sql_and .= ($forum_id) ? ' AND d.forum_id = ' . (int) $forum_id : ''; $sql_and .= ($topic_id) ? ' AND d.topic_id = ' . (int) $topic_id : ''; } $sql = 'SELECT d.*, f.forum_id, f.forum_name FROM ' . DRAFTS_TABLE . ' d LEFT JOIN ' . FORUMS_TABLE . ' f ON (f.forum_id = d.forum_id) WHERE d.user_id = ' . $user->data['user_id'] . " $sql_and ORDER BY d.save_time DESC"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if ($row['topic_id']) { $topic_ids[] = (int) $row['topic_id']; } $draft_rows[] = $row; } $db->sql_freeresult($result); if (!sizeof($draft_rows)) { return; } $topic_rows = array(); if (sizeof($topic_ids)) { $sql = 'SELECT topic_id, forum_id, topic_title FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', array_unique($topic_ids)); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $topic_rows[$row['topic_id']] = $row; } $db->sql_freeresult($result); } unset($topic_ids); $template->assign_var('S_SHOW_DRAFTS', true); foreach ($draft_rows as $draft) { $link_topic = $link_forum = $link_pm = false; $insert_url = $view_url = $title = ''; if (isset($topic_rows[$draft['topic_id']]) && ( ($topic_rows[$draft['topic_id']]['forum_id'] && $auth->acl_get('f_read', $topic_rows[$draft['topic_id']]['forum_id'])) || (!$topic_rows[$draft['topic_id']]['forum_id'] && $auth->acl_getf_global('f_read')) )) { $topic_forum_id = ($topic_rows[$draft['topic_id']]['forum_id']) ? $topic_rows[$draft['topic_id']]['forum_id'] : $forum_id; $link_topic = true; $view_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $topic_forum_id . '&amp;t=' . $draft['topic_id']); $title = $topic_rows[$draft['topic_id']]['topic_title']; $insert_url = append_sid("{$phpbb_root_path}posting.$phpEx", 'f=' . $topic_forum_id . '&amp;t=' . $draft['topic_id'] . '&amp;mode=reply&amp;d=' . $draft['draft_id']); } else if ($draft['forum_id'] && $auth->acl_get('f_read', $draft['forum_id'])) { $link_forum = true; $view_url = append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $draft['forum_id']); $title = $draft['forum_name']; $insert_url = append_sid("{$phpbb_root_path}posting.$phpEx", 'f=' . $draft['forum_id'] . '&amp;mode=post&amp;d=' . $draft['draft_id']); } else { // Either display as PM draft if forum_id and topic_id are empty or if access to the forums has been denied afterwards... $link_pm = true; $insert_url = append_sid("{$phpbb_root_path}ucp.$phpEx", "i=$id&amp;mode=compose&amp;d={$draft['draft_id']}" . (($pm_action) ? "&amp;action=$pm_action" : '') . (($msg_id) ? "&amp;p=$msg_id" : '')); } $template->assign_block_vars('draftrow', array( 'DRAFT_ID' => $draft['draft_id'], 'DATE' => $user->format_date($draft['save_time']), 'DRAFT_SUBJECT' => $draft['draft_subject'], 'TITLE' => $title, 'U_VIEW' => $view_url, 'U_INSERT' => $insert_url, 'S_LINK_PM' => $link_pm, 'S_LINK_TOPIC' => $link_topic, 'S_LINK_FORUM' => $link_forum) ); } } /** * Topic Review */ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id = 0, $show_quote_button = true) { global $user, $auth, $db, $template, $bbcode, $cache; global $config, $phpbb_root_path, $phpEx; // Go ahead and pull all data for this topic $sql = 'SELECT p.post_id FROM ' . POSTS_TABLE . ' p' . " WHERE p.topic_id = $topic_id " . ((!$auth->acl_get('m_approve', $forum_id)) ? 'AND p.post_approved = 1' : '') . ' ' . (($mode == 'post_review') ? " AND p.post_id > $cur_post_id" : '') . ' ' . (($mode == 'post_review_edit') ? " AND p.post_id = $cur_post_id" : '') . ' ORDER BY p.post_time '; $sql .= ($mode == 'post_review') ? 'ASC' : 'DESC'; $result = $db->sql_query_limit($sql, $config['posts_per_page']); $post_list = array(); while ($row = $db->sql_fetchrow($result)) { $post_list[] = $row['post_id']; } $db->sql_freeresult($result); if (!sizeof($post_list)) { return false; } // Handle 'post_review_edit' like 'post_review' from now on if ($mode == 'post_review_edit') { $mode = 'post_review'; } $sql = $db->sql_build_query('SELECT', array( 'SELECT' => 'u.username, u.user_id, u.user_colour, p.*, z.friend, z.foe', 'FROM' => array( USERS_TABLE => 'u', POSTS_TABLE => 'p', ), 'LEFT_JOIN' => array( array( 'FROM' => array(ZEBRA_TABLE => 'z'), 'ON' => 'z.user_id = ' . $user->data['user_id'] . ' AND z.zebra_id = p.poster_id' ) ), 'WHERE' => $db->sql_in_set('p.post_id', $post_list) . ' AND u.user_id = p.poster_id' )); $result = $db->sql_query($sql); $bbcode_bitfield = ''; $rowset = array(); $has_attachments = false; while ($row = $db->sql_fetchrow($result)) { $rowset[$row['post_id']] = $row; $bbcode_bitfield = $bbcode_bitfield | base64_decode($row['bbcode_bitfield']); if ($row['post_attachment']) { $has_attachments = true; } } $db->sql_freeresult($result); // Instantiate BBCode class if (!isset($bbcode) && $bbcode_bitfield !== '') { include_once($phpbb_root_path . 'includes/bbcode.' . $phpEx); $bbcode = new bbcode(base64_encode($bbcode_bitfield)); } // Grab extensions $extensions = $attachments = array(); if ($has_attachments && $auth->acl_get('u_download') && $auth->acl_get('f_download', $forum_id)) { $extensions = $cache->obtain_attach_extensions($forum_id); // Get attachments... $sql = 'SELECT * FROM ' . ATTACHMENTS_TABLE . ' WHERE ' . $db->sql_in_set('post_msg_id', $post_list) . ' AND in_message = 0 ORDER BY filetime DESC, post_msg_id ASC'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $attachments[$row['post_msg_id']][] = $row; } $db->sql_freeresult($result); } for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i) { // A non-existing rowset only happens if there was no user present for the entered poster_id // This could be a broken posts table. if (!isset($rowset[$post_list[$i]])) { continue; } $row = $rowset[$post_list[$i]]; $poster_id = $row['user_id']; $post_subject = $row['post_subject']; $message = censor_text($row['post_text']); $decoded_message = false; if ($show_quote_button && $auth->acl_get('f_reply', $forum_id)) { $decoded_message = $message; decode_message($decoded_message, $row['bbcode_uid']); $decoded_message = bbcode_nl2br($decoded_message); } if ($row['bbcode_bitfield']) { $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']); } $message = bbcode_nl2br($message); $message = smiley_text($message, !$row['enable_smilies']); if (!empty($attachments[$row['post_id']])) { $update_count = array(); parse_attachments($forum_id, $message, $attachments[$row['post_id']], $update_count); } $post_subject = censor_text($post_subject); $post_anchor = ($mode == 'post_review') ? 'ppr' . $row['post_id'] : 'pr' . $row['post_id']; $u_show_post = append_sid($phpbb_root_path . 'viewtopic.' . $phpEx, "f=$forum_id&amp;t=$topic_id&amp;p={$row['post_id']}&amp;view=show#p{$row['post_id']}"); $template->assign_block_vars($mode . '_row', array( 'POST_AUTHOR_FULL' => get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), 'POST_AUTHOR_COLOUR' => get_username_string('colour', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), 'POST_AUTHOR' => get_username_string('username', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), 'U_POST_AUTHOR' => get_username_string('profile', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), 'S_HAS_ATTACHMENTS' => (!empty($attachments[$row['post_id']])) ? true : false, 'S_FRIEND' => ($row['friend']) ? true : false, 'S_IGNORE_POST' => ($row['foe']) ? true : false, 'L_IGNORE_POST' => ($row['foe']) ? sprintf($user->lang['POST_BY_FOE'], get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), "<a href=\"{$u_show_post}\" onclick=\"dE('{$post_anchor}', 1); return false;\">", '</a>') : '', 'POST_SUBJECT' => $post_subject, 'MINI_POST_IMG' => $user->img('icon_post_target', $user->lang['POST']), 'POST_DATE' => $user->format_date($row['post_time']), 'MESSAGE' => $message, 'DECODED_MESSAGE' => $decoded_message, 'POST_ID' => $row['post_id'], 'U_MINI_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'p=' . $row['post_id']) . '#p' . $row['post_id'], 'U_MCP_DETAILS' => ($auth->acl_get('m_info', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&amp;mode=post_details&amp;f=' . $forum_id . '&amp;p=' . $row['post_id'], true, $user->session_id) : '', 'POSTER_QUOTE' => ($show_quote_button && $auth->acl_get('f_reply', $forum_id)) ? addslashes(get_username_string('username', $poster_id, $row['username'], $row['user_colour'], $row['post_username'])) : '') ); // Display not already displayed Attachments for this post, we already parsed them. ;) if (!empty($attachments[$row['post_id']])) { foreach ($attachments[$row['post_id']] as $attachment) { $template->assign_block_vars($mode . '_row.attachment', array( 'DISPLAY_ATTACHMENT' => $attachment) ); } } unset($rowset[$post_list[$i]]); } if ($mode == 'topic_review') { $template->assign_var('QUOTE_IMG', $user->img('icon_post_quote', $user->lang['REPLY_WITH_QUOTE'])); } return true; } /** * User Notification */ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id, $topic_id, $post_id) { global $db, $user, $config, $phpbb_root_path, $phpEx, $auth; $topic_notification = ($mode == 'reply' || $mode == 'quote') ? true : false; $forum_notification = ($mode == 'post') ? true : false; if (!$topic_notification && !$forum_notification) { trigger_error('NO_MODE'); } if (($topic_notification && !$config['allow_topic_notify']) || ($forum_notification && !$config['allow_forum_notify'])) { return; } $topic_title = ($topic_notification) ? $topic_title : $subject; $topic_title = censor_text($topic_title); // Get banned User ID's $sql = 'SELECT ban_userid FROM ' . BANLIST_TABLE . ' WHERE ban_userid <> 0 AND ban_exclude <> 1'; $result = $db->sql_query($sql); $sql_ignore_users = ANONYMOUS . ', ' . $user->data['user_id']; while ($row = $db->sql_fetchrow($result)) { $sql_ignore_users .= ', ' . (int) $row['ban_userid']; } $db->sql_freeresult($result); $notify_rows = array(); // -- get forum_userids || topic_userids $sql = 'SELECT u.user_id, u.username, u.user_email, u.user_lang, u.user_notify_type, u.user_jabber FROM ' . (($topic_notification) ? TOPICS_WATCH_TABLE : FORUMS_WATCH_TABLE) . ' w, ' . USERS_TABLE . ' u WHERE w.' . (($topic_notification) ? 'topic_id' : 'forum_id') . ' = ' . (($topic_notification) ? $topic_id : $forum_id) . " AND w.user_id NOT IN ($sql_ignore_users) AND w.notify_status = " . NOTIFY_YES . ' AND u.user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ') AND u.user_id = w.user_id'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $notify_rows[$row['user_id']] = array( 'user_id' => $row['user_id'], 'username' => $row['username'], 'user_email' => $row['user_email'], 'user_jabber' => $row['user_jabber'], 'user_lang' => $row['user_lang'], 'notify_type' => ($topic_notification) ? 'topic' : 'forum', 'template' => ($topic_notification) ? 'topic_notify' : 'newtopic_notify', 'method' => $row['user_notify_type'], 'allowed' => false ); } $db->sql_freeresult($result); // forum notification is sent to those not already receiving topic notifications if ($topic_notification) { if (sizeof($notify_rows)) { $sql_ignore_users .= ', ' . implode(', ', array_keys($notify_rows)); } $sql = 'SELECT u.user_id, u.username, u.user_email, u.user_lang, u.user_notify_type, u.user_jabber FROM ' . FORUMS_WATCH_TABLE . ' fw, ' . USERS_TABLE . " u WHERE fw.forum_id = $forum_id AND fw.user_id NOT IN ($sql_ignore_users) AND fw.notify_status = " . NOTIFY_YES . ' AND u.user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ') AND u.user_id = fw.user_id'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $notify_rows[$row['user_id']] = array( 'user_id' => $row['user_id'], 'username' => $row['username'], 'user_email' => $row['user_email'], 'user_jabber' => $row['user_jabber'], 'user_lang' => $row['user_lang'], 'notify_type' => 'forum', 'template' => 'forum_notify', 'method' => $row['user_notify_type'], 'allowed' => false ); } $db->sql_freeresult($result); } if (!sizeof($notify_rows)) { return; } // Make sure users are allowed to read the forum foreach ($auth->acl_get_list(array_keys($notify_rows), 'f_read', $forum_id) as $forum_id => $forum_ary) { foreach ($forum_ary as $auth_option => $user_ary) { foreach ($user_ary as $user_id) { $notify_rows[$user_id]['allowed'] = true; } } } // Now, we have to do a little step before really sending, we need to distinguish our users a little bit. ;) $msg_users = $delete_ids = $update_notification = array(); foreach ($notify_rows as $user_id => $row) { if (!$row['allowed'] || !trim($row['user_email'])) { $delete_ids[$row['notify_type']][] = $row['user_id']; } else { $msg_users[] = $row; $update_notification[$row['notify_type']][] = $row['user_id']; } } unset($notify_rows); // Now, we are able to really send out notifications if (sizeof($msg_users)) { include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx); $messenger = new messenger(); $msg_list_ary = array(); foreach ($msg_users as $row) { $pos = (!isset($msg_list_ary[$row['template']])) ? 0 : sizeof($msg_list_ary[$row['template']]); $msg_list_ary[$row['template']][$pos]['method'] = $row['method']; $msg_list_ary[$row['template']][$pos]['email'] = $row['user_email']; $msg_list_ary[$row['template']][$pos]['jabber'] = $row['user_jabber']; $msg_list_ary[$row['template']][$pos]['name'] = $row['username']; $msg_list_ary[$row['template']][$pos]['lang'] = $row['user_lang']; $msg_list_ary[$row['template']][$pos]['user_id']= $row['user_id']; } unset($msg_users); foreach ($msg_list_ary as $email_template => $email_list) { foreach ($email_list as $addr) { $messenger->template($email_template, $addr['lang']); $messenger->to($addr['email'], $addr['name']); $messenger->im($addr['jabber'], $addr['name']); $messenger->assign_vars(array( 'USERNAME' => htmlspecialchars_decode($addr['name']), 'TOPIC_TITLE' => htmlspecialchars_decode($topic_title), 'FORUM_NAME' => htmlspecialchars_decode($forum_name), 'U_FORUM' => generate_board_url() . "/viewforum.$phpEx?f=$forum_id", 'U_TOPIC' => generate_board_url() . "/viewtopic.$phpEx?f=$forum_id&t=$topic_id", 'U_NEWEST_POST' => generate_board_url() . "/viewtopic.$phpEx?f=$forum_id&t=$topic_id&p=$post_id&e=$post_id", 'U_STOP_WATCHING_TOPIC' => generate_board_url() . "/viewtopic.$phpEx?uid={$addr['user_id']}&f=$forum_id&t=$topic_id&unwatch=topic", 'U_STOP_WATCHING_FORUM' => generate_board_url() . "/viewforum.$phpEx?uid={$addr['user_id']}&f=$forum_id&unwatch=forum", )); $messenger->send($addr['method']); } } unset($msg_list_ary); $messenger->save_queue(); } // Handle the DB updates $db->sql_transaction('begin'); if (!empty($update_notification['topic'])) { $sql = 'UPDATE ' . TOPICS_WATCH_TABLE . ' SET notify_status = ' . NOTIFY_NO . " WHERE topic_id = $topic_id AND " . $db->sql_in_set('user_id', $update_notification['topic']); $db->sql_query($sql); } if (!empty($update_notification['forum'])) { $sql = 'UPDATE ' . FORUMS_WATCH_TABLE . ' SET notify_status = ' . NOTIFY_NO . " WHERE forum_id = $forum_id AND " . $db->sql_in_set('user_id', $update_notification['forum']); $db->sql_query($sql); } // Now delete the user_ids not authorised to receive notifications on this topic/forum if (!empty($delete_ids['topic'])) { $sql = 'DELETE FROM ' . TOPICS_WATCH_TABLE . " WHERE topic_id = $topic_id AND " . $db->sql_in_set('user_id', $delete_ids['topic']); $db->sql_query($sql); } if (!empty($delete_ids['forum'])) { $sql = 'DELETE FROM ' . FORUMS_WATCH_TABLE . " WHERE forum_id = $forum_id AND " . $db->sql_in_set('user_id', $delete_ids['forum']); $db->sql_query($sql); } $db->sql_transaction('commit'); } // // Post handling functions // /** * Delete Post */ function delete_post($forum_id, $topic_id, $post_id, &$data) { global $db, $user, $auth; global $config, $phpEx, $phpbb_root_path; // Specify our post mode $post_mode = 'delete'; if (($data['topic_first_post_id'] === $data['topic_last_post_id']) && $data['topic_replies_real'] == 0) { $post_mode = 'delete_topic'; } else if ($data['topic_first_post_id'] == $post_id) { $post_mode = 'delete_first_post'; } else if ($data['topic_last_post_id'] == $post_id) { $post_mode = 'delete_last_post'; } $sql_data = array(); $next_post_id = false; include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx); $db->sql_transaction('begin'); // we must make sure to update forums that contain the shadow'd topic if ($post_mode == 'delete_topic') { $shadow_forum_ids = array(); $sql = 'SELECT forum_id FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('topic_moved_id', $topic_id); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if (!isset($shadow_forum_ids[(int) $row['forum_id']])) { $shadow_forum_ids[(int) $row['forum_id']] = 1; } else { $shadow_forum_ids[(int) $row['forum_id']]++; } } $db->sql_freeresult($result); } if (!delete_posts('post_id', array($post_id), false, false)) { // Try to delete topic, we may had an previous error causing inconsistency if ($post_mode == 'delete_topic') { delete_topics('topic_id', array($topic_id), false); } trigger_error('ALREADY_DELETED'); } $db->sql_transaction('commit'); // Collect the necessary information for updating the tables $sql_data[FORUMS_TABLE] = ''; switch ($post_mode) { case 'delete_topic': foreach ($shadow_forum_ids as $updated_forum => $topic_count) { // counting is fun! we only have to do sizeof($forum_ids) number of queries, // even if the topic is moved back to where its shadow lives (we count how many times it is in a forum) $db->sql_query('UPDATE ' . FORUMS_TABLE . ' SET forum_topics_real = forum_topics_real - ' . $topic_count . ', forum_topics = forum_topics - ' . $topic_count . ' WHERE forum_id = ' . $updated_forum); update_post_information('forum', $updated_forum); } delete_topics('topic_id', array($topic_id), false); $sql_data[FORUMS_TABLE] .= 'forum_topics_real = forum_topics_real - 1'; $sql_data[FORUMS_TABLE] .= ($data['topic_approved']) ? ', forum_posts = forum_posts - 1, forum_topics = forum_topics - 1' : ''; $update_sql = update_post_information('forum', $forum_id, true); if (sizeof($update_sql)) { $sql_data[FORUMS_TABLE] .= ($sql_data[FORUMS_TABLE]) ? ', ' : ''; $sql_data[FORUMS_TABLE] .= implode(', ', $update_sql[$forum_id]); } break; case 'delete_first_post': $sql = 'SELECT p.post_id, p.poster_id, p.post_time, p.post_username, u.username, u.user_colour FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . " u WHERE p.topic_id = $topic_id AND p.poster_id = u.user_id ORDER BY p.post_time ASC"; $result = $db->sql_query_limit($sql, 1); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); $sql_data[FORUMS_TABLE] = ($data['post_approved']) ? 'forum_posts = forum_posts - 1' : ''; $sql_data[TOPICS_TABLE] = 'topic_poster = ' . intval($row['poster_id']) . ', topic_first_post_id = ' . intval($row['post_id']) . ", topic_first_poster_colour = '" . $db->sql_escape($row['user_colour']) . "', topic_first_poster_name = '" . (($row['poster_id'] == ANONYMOUS) ? $db->sql_escape($row['post_username']) : $db->sql_escape($row['username'])) . "', topic_time = " . (int) $row['post_time']; // Decrementing topic_replies here is fine because this case only happens if there is more than one post within the topic - basically removing one "reply" $sql_data[TOPICS_TABLE] .= ', topic_replies_real = topic_replies_real - 1' . (($data['post_approved']) ? ', topic_replies = topic_replies - 1' : ''); $next_post_id = (int) $row['post_id']; break; case 'delete_last_post': $sql_data[FORUMS_TABLE] = ($data['post_approved']) ? 'forum_posts = forum_posts - 1' : ''; $update_sql = update_post_information('forum', $forum_id, true); if (sizeof($update_sql)) { $sql_data[FORUMS_TABLE] .= ($sql_data[FORUMS_TABLE]) ? ', ' : ''; $sql_data[FORUMS_TABLE] .= implode(', ', $update_sql[$forum_id]); } $sql_data[TOPICS_TABLE] = 'topic_bumped = 0, topic_bumper = 0, topic_replies_real = topic_replies_real - 1' . (($data['post_approved']) ? ', topic_replies = topic_replies - 1' : ''); $update_sql = update_post_information('topic', $topic_id, true); if (sizeof($update_sql)) { $sql_data[TOPICS_TABLE] .= ', ' . implode(', ', $update_sql[$topic_id]); $next_post_id = (int) str_replace('topic_last_post_id = ', '', $update_sql[$topic_id][0]); } else { $sql = 'SELECT MAX(post_id) as last_post_id FROM ' . POSTS_TABLE . " WHERE topic_id = $topic_id " . ((!$auth->acl_get('m_approve', $forum_id)) ? 'AND post_approved = 1' : ''); $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); $next_post_id = (int) $row['last_post_id']; } break; case 'delete': $sql = 'SELECT post_id FROM ' . POSTS_TABLE . " WHERE topic_id = $topic_id " . ((!$auth->acl_get('m_approve', $forum_id)) ? 'AND post_approved = 1' : '') . ' AND post_time > ' . $data['post_time'] . ' ORDER BY post_time ASC'; $result = $db->sql_query_limit($sql, 1); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); $sql_data[FORUMS_TABLE] = ($data['post_approved']) ? 'forum_posts = forum_posts - 1' : ''; $sql_data[TOPICS_TABLE] = 'topic_replies_real = topic_replies_real - 1' . (($data['post_approved']) ? ', topic_replies = topic_replies - 1' : ''); $next_post_id = (int) $row['post_id']; break; } if (($post_mode == 'delete') || ($post_mode == 'delete_last_post') || ($post_mode == 'delete_first_post')) { $sql = 'SELECT 1 AS has_attachments FROM ' . ATTACHMENTS_TABLE . ' WHERE topic_id = ' . $topic_id; $result = $db->sql_query_limit($sql, 1); $has_attachments = (int) $db->sql_fetchfield('has_attachments'); $db->sql_freeresult($result); if (!$has_attachments) { $sql_data[TOPICS_TABLE] .= ', topic_attachment = 0'; } } // $sql_data[USERS_TABLE] = ($data['post_postcount']) ? 'user_posts = user_posts - 1' : ''; $db->sql_transaction('begin'); $where_sql = array( FORUMS_TABLE => "forum_id = $forum_id", TOPICS_TABLE => "topic_id = $topic_id", USERS_TABLE => 'user_id = ' . $data['poster_id'] ); foreach ($sql_data as $table => $update_sql) { if ($update_sql) { $db->sql_query("UPDATE $table SET $update_sql WHERE " . $where_sql[$table]); } } // Adjust posted info for this user by looking for a post by him/her within this topic... if ($post_mode != 'delete_topic' && $config['load_db_track'] && $data['poster_id'] != ANONYMOUS) { $sql = 'SELECT poster_id FROM ' . POSTS_TABLE . ' WHERE topic_id = ' . $topic_id . ' AND poster_id = ' . $data['poster_id']; $result = $db->sql_query_limit($sql, 1); $poster_id = (int) $db->sql_fetchfield('poster_id'); $db->sql_freeresult($result); // The user is not having any more posts within this topic if (!$poster_id) { $sql = 'DELETE FROM ' . TOPICS_POSTED_TABLE . ' WHERE topic_id = ' . $topic_id . ' AND user_id = ' . $data['poster_id']; $db->sql_query($sql); } } $db->sql_transaction('commit'); if ($data['post_reported'] && ($post_mode != 'delete_topic')) { sync('topic_reported', 'topic_id', array($topic_id)); } return $next_post_id; } /** * Submit Post * @todo Split up and create lightweight, simple API for this. */ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $update_message = true, $update_search_index = true) { global $db, $auth, $user, $config, $phpEx, $template, $phpbb_root_path; // We do not handle erasing posts here if ($mode == 'delete') { return false; } $current_time = time(); if ($mode == 'post') { $post_mode = 'post'; $update_message = true; } else if ($mode != 'edit') { $post_mode = 'reply'; $update_message = true; } else if ($mode == 'edit') { $post_mode = ($data['topic_replies_real'] == 0) ? 'edit_topic' : (($data['topic_first_post_id'] == $data['post_id']) ? 'edit_first_post' : (($data['topic_last_post_id'] == $data['post_id']) ? 'edit_last_post' : 'edit')); } // First of all make sure the subject and topic title are having the correct length. // To achieve this without cutting off between special chars we convert to an array and then count the elements. $subject = truncate_string($subject); $data['topic_title'] = truncate_string($data['topic_title']); // Collect some basic information about which tables and which rows to update/insert $sql_data = $topic_row = array(); $poster_id = ($mode == 'edit') ? $data['poster_id'] : (int) $user->data['user_id']; // Retrieve some additional information if not present if ($mode == 'edit' && (!isset($data['post_approved']) || !isset($data['topic_approved']) || $data['post_approved'] === false || $data['topic_approved'] === false)) { $sql = 'SELECT p.post_approved, t.topic_type, t.topic_replies, t.topic_replies_real, t.topic_approved FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . ' p WHERE t.topic_id = p.topic_id AND p.post_id = ' . $data['post_id']; $result = $db->sql_query($sql); $topic_row = $db->sql_fetchrow($result); $db->sql_freeresult($result); $data['topic_approved'] = $topic_row['topic_approved']; $data['post_approved'] = $topic_row['post_approved']; } // This variable indicates if the user is able to post or put into the queue - it is used later for all code decisions regarding approval // The variable name should be $post_approved, because it indicates if the post is approved or not $post_approval = 1; // Check the permissions for post approval. Moderators are not affected. if (!$auth->acl_get('f_noapprove', $data['forum_id']) && !$auth->acl_get('m_approve', $data['forum_id'])) { // Post not approved, but in queue $post_approval = 0; } // Mods are able to force approved/unapproved posts. True means the post is approved, false the post is unapproved if (isset($data['force_approved_state'])) { $post_approval = ($data['force_approved_state']) ? 1 : 0; } // Start the transaction here $db->sql_transaction('begin'); // Collect Information switch ($post_mode) { case 'post': case 'reply': $sql_data[POSTS_TABLE]['sql'] = array( 'forum_id' => $data['forum_id'], 'poster_id' => (int) $user->data['user_id'], 'icon_id' => $data['icon_id'], 'poster_ip' => $user->ip, 'post_time' => $current_time, 'post_approved' => $post_approval, 'enable_bbcode' => $data['enable_bbcode'], 'enable_smilies' => $data['enable_smilies'], 'enable_magic_url' => $data['enable_urls'], 'enable_sig' => $data['enable_sig'], 'post_username' => (!$user->data['is_registered']) ? $username : '', 'post_subject' => $subject, 'post_text' => $data['message'], 'post_checksum' => $data['message_md5'], 'post_attachment' => (!empty($data['attachment_data'])) ? 1 : 0, 'bbcode_bitfield' => $data['bbcode_bitfield'], 'bbcode_uid' => $data['bbcode_uid'], 'post_postcount' => ($auth->acl_get('f_postcount', $data['forum_id'])) ? 1 : 0, 'post_edit_locked' => $data['post_edit_locked'] ); break; case 'edit_first_post': case 'edit': case 'edit_last_post': case 'edit_topic': // If edit reason is given always display edit info // If editing last post then display no edit info // If m_edit permission then display no edit info // If normal edit display edit info // Display edit info if edit reason given or user is editing his post, which is not the last within the topic. if ($data['post_edit_reason'] || (!$auth->acl_get('m_edit', $data['forum_id']) && ($post_mode == 'edit' || $post_mode == 'edit_first_post'))) { $data['post_edit_reason'] = truncate_string($data['post_edit_reason'], 255, 255, false); $sql_data[POSTS_TABLE]['sql'] = array( 'post_edit_time' => $current_time, 'post_edit_reason' => $data['post_edit_reason'], 'post_edit_user' => (int) $data['post_edit_user'], ); $sql_data[POSTS_TABLE]['stat'][] = 'post_edit_count = post_edit_count + 1'; } else if (!$data['post_edit_reason'] && $mode == 'edit' && $auth->acl_get('m_edit', $data['forum_id'])) { $sql_data[POSTS_TABLE]['sql'] = array( 'post_edit_reason' => '', ); } // If the person editing this post is different to the one having posted then we will add a log entry stating the edit // Could be simplified by only adding to the log if the edit is not tracked - but this may confuse admins/mods if ($user->data['user_id'] != $poster_id) { $log_subject = ($subject) ? $subject : $data['topic_title']; add_log('mod', $data['forum_id'], $data['topic_id'], 'LOG_POST_EDITED', $log_subject, (!empty($username)) ? $username : $user->lang['GUEST']); } if (!isset($sql_data[POSTS_TABLE]['sql'])) { $sql_data[POSTS_TABLE]['sql'] = array(); } $sql_data[POSTS_TABLE]['sql'] = array_merge($sql_data[POSTS_TABLE]['sql'], array( 'forum_id' => $data['forum_id'], 'poster_id' => $data['poster_id'], 'icon_id' => $data['icon_id'], 'post_approved' => (!$post_approval) ? 0 : $data['post_approved'], 'enable_bbcode' => $data['enable_bbcode'], 'enable_smilies' => $data['enable_smilies'], 'enable_magic_url' => $data['enable_urls'], 'enable_sig' => $data['enable_sig'], 'post_username' => ($username && $data['poster_id'] == ANONYMOUS) ? $username : '', 'post_subject' => $subject, 'post_checksum' => $data['message_md5'], 'post_attachment' => (!empty($data['attachment_data'])) ? 1 : 0, 'bbcode_bitfield' => $data['bbcode_bitfield'], 'bbcode_uid' => $data['bbcode_uid'], 'post_edit_locked' => $data['post_edit_locked']) ); if ($update_message) { $sql_data[POSTS_TABLE]['sql']['post_text'] = $data['message']; } break; } $post_approved = $sql_data[POSTS_TABLE]['sql']['post_approved']; $topic_row = array(); // And the topic ladies and gentlemen switch ($post_mode) { case 'post': $sql_data[TOPICS_TABLE]['sql'] = array( 'topic_poster' => (int) $user->data['user_id'], 'topic_time' => $current_time, 'topic_last_view_time' => $current_time, 'forum_id' => $data['forum_id'], 'icon_id' => $data['icon_id'], 'topic_approved' => $post_approval, 'topic_title' => $subject, 'topic_first_poster_name' => (!$user->data['is_registered'] && $username) ? $username : (($user->data['user_id'] != ANONYMOUS) ? $user->data['username'] : ''), 'topic_first_poster_colour' => $user->data['user_colour'], 'topic_type' => $topic_type, 'topic_time_limit' => ($topic_type == POST_STICKY || $topic_type == POST_ANNOUNCE) ? ($data['topic_time_limit'] * 86400) : 0, 'topic_attachment' => (!empty($data['attachment_data'])) ? 1 : 0, ); if (isset($poll['poll_options']) && !empty($poll['poll_options'])) { $poll_start = ($poll['poll_start']) ? $poll['poll_start'] : $current_time; $poll_length = $poll['poll_length'] * 86400; if ($poll_length < 0) { $poll_start = $poll_start + $poll_length; if ($poll_start < 0) { $poll_start = 0; } $poll_length = 1; } $sql_data[TOPICS_TABLE]['sql'] = array_merge($sql_data[TOPICS_TABLE]['sql'], array( 'poll_title' => $poll['poll_title'], 'poll_start' => $poll_start, 'poll_max_options' => $poll['poll_max_options'], 'poll_length' => $poll_length, 'poll_vote_change' => $poll['poll_vote_change']) ); } $sql_data[USERS_TABLE]['stat'][] = "user_lastpost_time = $current_time" . (($auth->acl_get('f_postcount', $data['forum_id']) && $post_approval) ? ', user_posts = user_posts + 1' : ''); if ($post_approval) { $sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts + 1'; } $sql_data[FORUMS_TABLE]['stat'][] = 'forum_topics_real = forum_topics_real + 1' . (($post_approval) ? ', forum_topics = forum_topics + 1' : ''); break; case 'reply': $sql_data[TOPICS_TABLE]['stat'][] = 'topic_last_view_time = ' . $current_time . ', topic_replies_real = topic_replies_real + 1, topic_bumped = 0, topic_bumper = 0' . (($post_approval) ? ', topic_replies = topic_replies + 1' : '') . ((!empty($data['attachment_data']) || (isset($data['topic_attachment']) && $data['topic_attachment'])) ? ', topic_attachment = 1' : ''); $sql_data[USERS_TABLE]['stat'][] = "user_lastpost_time = $current_time" . (($auth->acl_get('f_postcount', $data['forum_id']) && $post_approval) ? ', user_posts = user_posts + 1' : ''); if ($post_approval) { $sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts + 1'; } break; case 'edit_topic': case 'edit_first_post': if (isset($poll['poll_options']) && !empty($poll['poll_options'])) { $poll_start = ($poll['poll_start']) ? $poll['poll_start'] : $current_time; $poll_length = $poll['poll_length'] * 86400; if ($poll_length < 0) { $poll_start = $poll_start + $poll_length; if ($poll_start < 0) { $poll_start = 0; } $poll_length = 1; } } $sql_data[TOPICS_TABLE]['sql'] = array( 'forum_id' => $data['forum_id'], 'icon_id' => $data['icon_id'], 'topic_approved' => (!$post_approval) ? 0 : $data['topic_approved'], 'topic_title' => $subject, 'topic_first_poster_name' => $username, 'topic_type' => $topic_type, 'topic_time_limit' => ($topic_type == POST_STICKY || $topic_type == POST_ANNOUNCE) ? ($data['topic_time_limit'] * 86400) : 0, 'poll_title' => (isset($poll['poll_options'])) ? $poll['poll_title'] : '', 'poll_start' => (isset($poll['poll_options'])) ? $poll_start : 0, 'poll_max_options' => (isset($poll['poll_options'])) ? $poll['poll_max_options'] : 1, 'poll_length' => (isset($poll['poll_options'])) ? $poll_length : 0, 'poll_vote_change' => (isset($poll['poll_vote_change'])) ? $poll['poll_vote_change'] : 0, 'topic_last_view_time' => $current_time, 'topic_attachment' => (!empty($data['attachment_data'])) ? 1 : (isset($data['topic_attachment']) ? $data['topic_attachment'] : 0), ); // Correctly set back the topic replies and forum posts... only if the topic was approved before and now gets disapproved if (!$post_approval && $data['topic_approved']) { // Do we need to grab some topic informations? if (!sizeof($topic_row)) { $sql = 'SELECT topic_type, topic_replies, topic_replies_real, topic_approved FROM ' . TOPICS_TABLE . ' WHERE topic_id = ' . $data['topic_id']; $result = $db->sql_query($sql); $topic_row = $db->sql_fetchrow($result); $db->sql_freeresult($result); } // If this is the only post remaining we do not need to decrement topic_replies. // Also do not decrement if first post - then the topic_replies will not be adjusted if approving the topic again. // If this is an edited topic or the first post the topic gets completely disapproved later on... $sql_data[FORUMS_TABLE]['stat'][] = 'forum_topics = forum_topics - 1'; $sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts - ' . ($topic_row['topic_replies'] + 1); set_config_count('num_topics', -1, true); set_config_count('num_posts', ($topic_row['topic_replies'] + 1) * (-1), true); // Only decrement this post, since this is the one non-approved now if ($auth->acl_get('f_postcount', $data['forum_id'])) { $sql_data[USERS_TABLE]['stat'][] = 'user_posts = user_posts - 1'; } } break; case 'edit': case 'edit_last_post': // Correctly set back the topic replies and forum posts... but only if the post was approved before. if (!$post_approval && $data['post_approved']) { $sql_data[TOPICS_TABLE]['stat'][] = 'topic_replies = topic_replies - 1, topic_last_view_time = ' . $current_time; $sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts - 1'; set_config_count('num_posts', -1, true); if ($auth->acl_get('f_postcount', $data['forum_id'])) { $sql_data[USERS_TABLE]['stat'][] = 'user_posts = user_posts - 1'; } } break; } // Submit new topic if ($post_mode == 'post') { $sql = 'INSERT INTO ' . TOPICS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_data[TOPICS_TABLE]['sql']); $db->sql_query($sql); $data['topic_id'] = $db->sql_nextid(); $sql_data[POSTS_TABLE]['sql'] = array_merge($sql_data[POSTS_TABLE]['sql'], array( 'topic_id' => $data['topic_id']) ); unset($sql_data[TOPICS_TABLE]['sql']); } // Submit new post if ($post_mode == 'post' || $post_mode == 'reply') { if ($post_mode == 'reply') { $sql_data[POSTS_TABLE]['sql'] = array_merge($sql_data[POSTS_TABLE]['sql'], array( 'topic_id' => $data['topic_id']) ); } $sql = 'INSERT INTO ' . POSTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_data[POSTS_TABLE]['sql']); $db->sql_query($sql); $data['post_id'] = $db->sql_nextid(); if ($post_mode == 'post') { $sql_data[TOPICS_TABLE]['sql'] = array( 'topic_first_post_id' => $data['post_id'], 'topic_last_post_id' => $data['post_id'], 'topic_last_post_time' => $current_time, 'topic_last_poster_id' => (int) $user->data['user_id'], 'topic_last_poster_name' => (!$user->data['is_registered'] && $username) ? $username : (($user->data['user_id'] != ANONYMOUS) ? $user->data['username'] : ''), 'topic_last_poster_colour' => $user->data['user_colour'], 'topic_last_post_subject' => (string) $subject, ); } unset($sql_data[POSTS_TABLE]['sql']); } // Update the topics table if (isset($sql_data[TOPICS_TABLE]['sql'])) { $sql = 'UPDATE ' . TOPICS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_data[TOPICS_TABLE]['sql']) . ' WHERE topic_id = ' . $data['topic_id']; $db->sql_query($sql); } // Update the posts table if (isset($sql_data[POSTS_TABLE]['sql'])) { $sql = 'UPDATE ' . POSTS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_data[POSTS_TABLE]['sql']) . ' WHERE post_id = ' . $data['post_id']; $db->sql_query($sql); } // Update Poll Tables if (isset($poll['poll_options']) && !empty($poll['poll_options'])) { $cur_poll_options = array(); if ($poll['poll_start'] && $mode == 'edit') { $sql = 'SELECT * FROM ' . POLL_OPTIONS_TABLE . ' WHERE topic_id = ' . $data['topic_id'] . ' ORDER BY poll_option_id'; $result = $db->sql_query($sql); $cur_poll_options = array(); while ($row = $db->sql_fetchrow($result)) { $cur_poll_options[] = $row; } $db->sql_freeresult($result); } $sql_insert_ary = array(); for ($i = 0, $size = sizeof($poll['poll_options']); $i < $size; $i++) { if (strlen(trim($poll['poll_options'][$i]))) { if (empty($cur_poll_options[$i])) { // If we add options we need to put them to the end to be able to preserve votes... $sql_insert_ary[] = array( 'poll_option_id' => (int) sizeof($cur_poll_options) + 1 + sizeof($sql_insert_ary), 'topic_id' => (int) $data['topic_id'], 'poll_option_text' => (string) $poll['poll_options'][$i] ); } else if ($poll['poll_options'][$i] != $cur_poll_options[$i]) { $sql = 'UPDATE ' . POLL_OPTIONS_TABLE . " SET poll_option_text = '" . $db->sql_escape($poll['poll_options'][$i]) . "' WHERE poll_option_id = " . $cur_poll_options[$i]['poll_option_id'] . ' AND topic_id = ' . $data['topic_id']; $db->sql_query($sql); } } } $db->sql_multi_insert(POLL_OPTIONS_TABLE, $sql_insert_ary); if (sizeof($poll['poll_options']) < sizeof($cur_poll_options)) { $sql = 'DELETE FROM ' . POLL_OPTIONS_TABLE . ' WHERE poll_option_id > ' . sizeof($poll['poll_options']) . ' AND topic_id = ' . $data['topic_id']; $db->sql_query($sql); } // If edited, we would need to reset votes (since options can be re-ordered above, you can't be sure if the change is for changing the text or adding an option if ($mode == 'edit' && sizeof($poll['poll_options']) != sizeof($cur_poll_options)) { $db->sql_query('DELETE FROM ' . POLL_VOTES_TABLE . ' WHERE topic_id = ' . $data['topic_id']); $db->sql_query('UPDATE ' . POLL_OPTIONS_TABLE . ' SET poll_option_total = 0 WHERE topic_id = ' . $data['topic_id']); } } // Submit Attachments if (!empty($data['attachment_data']) && $data['post_id'] && in_array($mode, array('post', 'reply', 'quote', 'edit'))) { $space_taken = $files_added = 0; $orphan_rows = array(); foreach ($data['attachment_data'] as $pos => $attach_row) { $orphan_rows[(int) $attach_row['attach_id']] = array(); } if (sizeof($orphan_rows)) { $sql = 'SELECT attach_id, filesize, physical_filename FROM ' . ATTACHMENTS_TABLE . ' WHERE ' . $db->sql_in_set('attach_id', array_keys($orphan_rows)) . ' AND is_orphan = 1 AND poster_id = ' . $user->data['user_id']; $result = $db->sql_query($sql); $orphan_rows = array(); while ($row = $db->sql_fetchrow($result)) { $orphan_rows[$row['attach_id']] = $row; } $db->sql_freeresult($result); } foreach ($data['attachment_data'] as $pos => $attach_row) { if ($attach_row['is_orphan'] && !isset($orphan_rows[$attach_row['attach_id']])) { continue; } if (!$attach_row['is_orphan']) { // update entry in db if attachment already stored in db and filespace $sql = 'UPDATE ' . ATTACHMENTS_TABLE . " SET attach_comment = '" . $db->sql_escape($attach_row['attach_comment']) . "' WHERE attach_id = " . (int) $attach_row['attach_id'] . ' AND is_orphan = 0'; $db->sql_query($sql); } else { // insert attachment into db if (!@file_exists($phpbb_root_path . $config['upload_path'] . '/' . utf8_basename($orphan_rows[$attach_row['attach_id']]['physical_filename']))) { continue; } $space_taken += $orphan_rows[$attach_row['attach_id']]['filesize']; $files_added++; $attach_sql = array( 'post_msg_id' => $data['post_id'], 'topic_id' => $data['topic_id'], 'is_orphan' => 0, 'poster_id' => $poster_id, 'attach_comment' => $attach_row['attach_comment'], ); $sql = 'UPDATE ' . ATTACHMENTS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $attach_sql) . ' WHERE attach_id = ' . $attach_row['attach_id'] . ' AND is_orphan = 1 AND poster_id = ' . $user->data['user_id']; $db->sql_query($sql); } } if ($space_taken && $files_added) { set_config_count('upload_dir_size', $space_taken, true); set_config_count('num_files', $files_added, true); } } // we need to update the last forum information // only applicable if the topic is approved if ($post_approved || !$data['post_approved']) { // the last post makes us update the forum table. This can happen if... // We make a new topic // We reply to a topic // We edit the last post in a topic and this post is the latest in the forum (maybe) // We edit the only post in the topic // We edit the first post in the topic and all the other posts are not approved if (($post_mode == 'post' || $post_mode == 'reply') && $post_approved) { $sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_post_id = ' . $data['post_id']; $sql_data[FORUMS_TABLE]['stat'][] = "forum_last_post_subject = '" . $db->sql_escape($subject) . "'"; $sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_post_time = ' . $current_time; $sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_poster_id = ' . (int) $user->data['user_id']; $sql_data[FORUMS_TABLE]['stat'][] = "forum_last_poster_name = '" . $db->sql_escape((!$user->data['is_registered'] && $username) ? $username : (($user->data['user_id'] != ANONYMOUS) ? $user->data['username'] : '')) . "'"; $sql_data[FORUMS_TABLE]['stat'][] = "forum_last_poster_colour = '" . $db->sql_escape($user->data['user_colour']) . "'"; } else if ($post_mode == 'edit_last_post' || $post_mode == 'edit_topic' || ($post_mode == 'edit_first_post' && !$data['topic_replies'])) { // this does not _necessarily_ mean that we must update the info again, // it just means that we might have to $sql = 'SELECT forum_last_post_id, forum_last_post_subject FROM ' . FORUMS_TABLE . ' WHERE forum_id = ' . (int) $data['forum_id']; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); // this post is the latest post in the forum, better update if ($row['forum_last_post_id'] == $data['post_id']) { // If post approved and subject changed, or poster is anonymous, we need to update the forum_last* rows if ($post_approved && ($row['forum_last_post_subject'] !== $subject || $data['poster_id'] == ANONYMOUS)) { // the post's subject changed if ($row['forum_last_post_subject'] !== $subject) { $sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_post_subject = \'' . $db->sql_escape($subject) . '\''; } // Update the user name if poster is anonymous... just in case an admin changed it if ($data['poster_id'] == ANONYMOUS) { $sql_data[FORUMS_TABLE]['stat'][] = "forum_last_poster_name = '" . $db->sql_escape($username) . "'"; } } else if ($data['post_approved'] !== $post_approved) { // we need a fresh change of socks, everything has become invalidated $sql = 'SELECT MAX(topic_last_post_id) as last_post_id FROM ' . TOPICS_TABLE . ' WHERE forum_id = ' . (int) $data['forum_id'] . ' AND topic_approved = 1'; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); // any posts left in this forum? if (!empty($row['last_post_id'])) { $sql = 'SELECT p.post_id, p.post_subject, p.post_time, p.poster_id, p.post_username, u.user_id, u.username, u.user_colour FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . ' u WHERE p.poster_id = u.user_id AND p.post_id = ' . (int) $row['last_post_id']; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); // salvation, a post is found! jam it into the forums table $sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_post_id = ' . (int) $row['post_id']; $sql_data[FORUMS_TABLE]['stat'][] = "forum_last_post_subject = '" . $db->sql_escape($row['post_subject']) . "'"; $sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_post_time = ' . (int) $row['post_time']; $sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_poster_id = ' . (int) $row['poster_id']; $sql_data[FORUMS_TABLE]['stat'][] = "forum_last_poster_name = '" . $db->sql_escape(($row['poster_id'] == ANONYMOUS) ? $row['post_username'] : $row['username']) . "'"; $sql_data[FORUMS_TABLE]['stat'][] = "forum_last_poster_colour = '" . $db->sql_escape($row['user_colour']) . "'"; } else { // just our luck, the last topic in the forum has just been turned unapproved... $sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_post_id = 0'; $sql_data[FORUMS_TABLE]['stat'][] = "forum_last_post_subject = ''"; $sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_post_time = 0'; $sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_poster_id = 0'; $sql_data[FORUMS_TABLE]['stat'][] = "forum_last_poster_name = ''"; $sql_data[FORUMS_TABLE]['stat'][] = "forum_last_poster_colour = ''"; } } } } } // topic sync time! // simply, we update if it is a reply or the last post is edited if ($post_approved) { // reply requires the whole thing if ($post_mode == 'reply') { $sql_data[TOPICS_TABLE]['stat'][] = 'topic_last_post_id = ' . (int) $data['post_id']; $sql_data[TOPICS_TABLE]['stat'][] = 'topic_last_poster_id = ' . (int) $user->data['user_id']; $sql_data[TOPICS_TABLE]['stat'][] = "topic_last_poster_name = '" . $db->sql_escape((!$user->data['is_registered'] && $username) ? $username : (($user->data['user_id'] != ANONYMOUS) ? $user->data['username'] : '')) . "'"; $sql_data[TOPICS_TABLE]['stat'][] = "topic_last_poster_colour = '" . (($user->data['user_id'] != ANONYMOUS) ? $db->sql_escape($user->data['user_colour']) : '') . "'"; $sql_data[TOPICS_TABLE]['stat'][] = "topic_last_post_subject = '" . $db->sql_escape($subject) . "'"; $sql_data[TOPICS_TABLE]['stat'][] = 'topic_last_post_time = ' . (int) $current_time; } else if ($post_mode == 'edit_last_post' || $post_mode == 'edit_topic' || ($post_mode == 'edit_first_post' && !$data['topic_replies'])) { // only the subject can be changed from edit $sql_data[TOPICS_TABLE]['stat'][] = "topic_last_post_subject = '" . $db->sql_escape($subject) . "'"; // Maybe not only the subject, but also changing anonymous usernames. ;) if ($data['poster_id'] == ANONYMOUS) { $sql_data[TOPICS_TABLE]['stat'][] = "topic_last_poster_name = '" . $db->sql_escape($username) . "'"; } } } else if (!$data['post_approved'] && ($post_mode == 'edit_last_post' || $post_mode == 'edit_topic' || ($post_mode == 'edit_first_post' && !$data['topic_replies']))) { // like having the rug pulled from under us $sql = 'SELECT MAX(post_id) as last_post_id FROM ' . POSTS_TABLE . ' WHERE topic_id = ' . (int) $data['topic_id'] . ' AND post_approved = 1'; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); // any posts left in this forum? if (!empty($row['last_post_id'])) { $sql = 'SELECT p.post_id, p.post_subject, p.post_time, p.poster_id, p.post_username, u.user_id, u.username, u.user_colour FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . ' u WHERE p.poster_id = u.user_id AND p.post_id = ' . (int) $row['last_post_id']; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); // salvation, a post is found! jam it into the topics table $sql_data[TOPICS_TABLE]['stat'][] = 'topic_last_post_id = ' . (int) $row['post_id']; $sql_data[TOPICS_TABLE]['stat'][] = "topic_last_post_subject = '" . $db->sql_escape($row['post_subject']) . "'"; $sql_data[TOPICS_TABLE]['stat'][] = 'topic_last_post_time = ' . (int) $row['post_time']; $sql_data[TOPICS_TABLE]['stat'][] = 'topic_last_poster_id = ' . (int) $row['poster_id']; $sql_data[TOPICS_TABLE]['stat'][] = "topic_last_poster_name = '" . $db->sql_escape(($row['poster_id'] == ANONYMOUS) ? $row['post_username'] : $row['username']) . "'"; $sql_data[TOPICS_TABLE]['stat'][] = "topic_last_poster_colour = '" . $db->sql_escape($row['user_colour']) . "'"; } } // Update total post count, do not consider moderated posts/topics if ($post_approval) { if ($post_mode == 'post') { set_config_count('num_topics', 1, true); set_config_count('num_posts', 1, true); } if ($post_mode == 'reply') { set_config_count('num_posts', 1, true); } } // Update forum stats $where_sql = array(POSTS_TABLE => 'post_id = ' . $data['post_id'], TOPICS_TABLE => 'topic_id = ' . $data['topic_id'], FORUMS_TABLE => 'forum_id = ' . $data['forum_id'], USERS_TABLE => 'user_id = ' . $poster_id); foreach ($sql_data as $table => $update_ary) { if (isset($update_ary['stat']) && implode('', $update_ary['stat'])) { $sql = "UPDATE $table SET " . implode(', ', $update_ary['stat']) . ' WHERE ' . $where_sql[$table]; $db->sql_query($sql); } } // Delete topic shadows (if any exist). We do not need a shadow topic for an global announcement if ($topic_type == POST_GLOBAL) { $sql = 'DELETE FROM ' . TOPICS_TABLE . ' WHERE topic_moved_id = ' . $data['topic_id']; $db->sql_query($sql); } // Committing the transaction before updating search index $db->sql_transaction('commit'); // Delete draft if post was loaded... $draft_id = request_var('draft_loaded', 0); if ($draft_id) { $sql = 'DELETE FROM ' . DRAFTS_TABLE . " WHERE draft_id = $draft_id AND user_id = {$user->data['user_id']}"; $db->sql_query($sql); } // Index message contents if ($update_search_index && $data['enable_indexing']) { // Select the search method and do some additional checks to ensure it can actually be utilised $search_type = basename($config['search_type']); if (!file_exists($phpbb_root_path . 'includes/search/' . $search_type . '.' . $phpEx)) { trigger_error('NO_SUCH_SEARCH_MODULE'); } if (!class_exists($search_type)) { include("{$phpbb_root_path}includes/search/$search_type.$phpEx"); } $error = false; $search = new $search_type($error); if ($error) { trigger_error($error); } $search->index($mode, $data['post_id'], $data['message'], $subject, $poster_id, $data['forum_id']); } // Topic Notification, do not change if moderator is changing other users posts... if ($user->data['user_id'] == $poster_id) { if (!$data['notify_set'] && $data['notify']) { $sql = 'INSERT INTO ' . TOPICS_WATCH_TABLE . ' (user_id, topic_id) VALUES (' . $user->data['user_id'] . ', ' . $data['topic_id'] . ')'; $db->sql_query($sql); } else if (($config['email_enable'] || $config['jab_enable']) && $data['notify_set'] && !$data['notify']) { $sql = 'DELETE FROM ' . TOPICS_WATCH_TABLE . ' WHERE user_id = ' . $user->data['user_id'] . ' AND topic_id = ' . $data['topic_id']; $db->sql_query($sql); } } if ($mode == 'post' || $mode == 'reply' || $mode == 'quote') { // Mark this topic as posted to markread('post', $data['forum_id'], $data['topic_id']); } // Mark this topic as read // We do not use post_time here, this is intended (post_time can have a date in the past if editing a message) markread('topic', $data['forum_id'], $data['topic_id'], time()); // if ($config['load_db_lastread'] && $user->data['is_registered']) { $sql = 'SELECT mark_time FROM ' . FORUMS_TRACK_TABLE . ' WHERE user_id = ' . $user->data['user_id'] . ' AND forum_id = ' . $data['forum_id']; $result = $db->sql_query($sql); $f_mark_time = (int) $db->sql_fetchfield('mark_time'); $db->sql_freeresult($result); } else if ($config['load_anon_lastread'] || $user->data['is_registered']) { $f_mark_time = false; } if (($config['load_db_lastread'] && $user->data['is_registered']) || $config['load_anon_lastread'] || $user->data['is_registered']) { // Update forum info $sql = 'SELECT forum_last_post_time FROM ' . FORUMS_TABLE . ' WHERE forum_id = ' . $data['forum_id']; $result = $db->sql_query($sql); $forum_last_post_time = (int) $db->sql_fetchfield('forum_last_post_time'); $db->sql_freeresult($result); update_forum_tracking_info($data['forum_id'], $forum_last_post_time, $f_mark_time, false); } // Send Notifications if (($mode == 'reply' || $mode == 'quote' || $mode == 'post') && $post_approval) { user_notification($mode, $subject, $data['topic_title'], $data['forum_name'], $data['forum_id'], $data['topic_id'], $data['post_id']); } $params = $add_anchor = ''; if ($post_approval) { $params .= '&amp;t=' . $data['topic_id']; if ($mode != 'post') { $params .= '&amp;p=' . $data['post_id']; $add_anchor = '#p' . $data['post_id']; } } else if ($mode != 'post' && $post_mode != 'edit_first_post' && $post_mode != 'edit_topic') { $params .= '&amp;t=' . $data['topic_id']; } $url = (!$params) ? "{$phpbb_root_path}viewforum.$phpEx" : "{$phpbb_root_path}viewtopic.$phpEx"; $url = append_sid($url, 'f=' . $data['forum_id'] . $params) . $add_anchor; return $url; } /** * Handle topic bumping * @param int $forum_id The ID of the forum the topic is being bumped belongs to * @param int $topic_id The ID of the topic is being bumping * @param array $post_data Passes some topic parameters: * - 'topic_title' * - 'topic_last_post_id' * - 'topic_last_poster_id' * - 'topic_last_post_subject' * - 'topic_last_poster_name' * - 'topic_last_poster_colour' * @param int $bump_time The time at which topic was bumped, usually it is a current time as obtained via time(). * @return string An URL to the bumped topic, example: ./viewtopic.php?forum_id=1&amptopic_id=2&ampp=3#p3 */ function phpbb_bump_topic($forum_id, $topic_id, $post_data, $bump_time = false) { global $config, $db, $user, $phpEx, $phpbb_root_path; if ($bump_time === false) { $bump_time = time(); } // Begin bumping $db->sql_transaction('begin'); // Update the topic's last post post_time $sql = 'UPDATE ' . POSTS_TABLE . " SET post_time = $bump_time WHERE post_id = {$post_data['topic_last_post_id']} AND topic_id = $topic_id"; $db->sql_query($sql); // Sync the topic's last post time, the rest of the topic's last post data isn't changed $sql = 'UPDATE ' . TOPICS_TABLE . " SET topic_last_post_time = $bump_time, topic_bumped = 1, topic_bumper = " . $user->data['user_id'] . " WHERE topic_id = $topic_id"; $db->sql_query($sql); // Update the forum's last post info $sql = 'UPDATE ' . FORUMS_TABLE . " SET forum_last_post_id = " . $post_data['topic_last_post_id'] . ", forum_last_poster_id = " . $post_data['topic_last_poster_id'] . ", forum_last_post_subject = '" . $db->sql_escape($post_data['topic_last_post_subject']) . "', forum_last_post_time = $bump_time, forum_last_poster_name = '" . $db->sql_escape($post_data['topic_last_poster_name']) . "', forum_last_poster_colour = '" . $db->sql_escape($post_data['topic_last_poster_colour']) . "' WHERE forum_id = $forum_id"; $db->sql_query($sql); // Update bumper's time of the last posting to prevent flood $sql = 'UPDATE ' . USERS_TABLE . " SET user_lastpost_time = $bump_time WHERE user_id = " . $user->data['user_id']; $db->sql_query($sql); $db->sql_transaction('commit'); // Mark this topic as posted to markread('post', $forum_id, $topic_id, $bump_time); // Mark this topic as read markread('topic', $forum_id, $topic_id, $bump_time); // Update forum tracking info if ($config['load_db_lastread'] && $user->data['is_registered']) { $sql = 'SELECT mark_time FROM ' . FORUMS_TRACK_TABLE . ' WHERE user_id = ' . $user->data['user_id'] . ' AND forum_id = ' . $forum_id; $result = $db->sql_query($sql); $f_mark_time = (int) $db->sql_fetchfield('mark_time'); $db->sql_freeresult($result); } else if ($config['load_anon_lastread'] || $user->data['is_registered']) { $f_mark_time = false; } if (($config['load_db_lastread'] && $user->data['is_registered']) || $config['load_anon_lastread'] || $user->data['is_registered']) { // Update forum info $sql = 'SELECT forum_last_post_time FROM ' . FORUMS_TABLE . ' WHERE forum_id = ' . $forum_id; $result = $db->sql_query($sql); $forum_last_post_time = (int) $db->sql_fetchfield('forum_last_post_time'); $db->sql_freeresult($result); update_forum_tracking_info($forum_id, $forum_last_post_time, $f_mark_time, false); } add_log('mod', $forum_id, $topic_id, 'LOG_BUMP_TOPIC', $post_data['topic_title']); $url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;p={$post_data['topic_last_post_id']}") . "#p{$post_data['topic_last_post_id']}"; return $url; } j\٠!<]ɪ Ppό2"Go|ѾK{d,py]#(# Wa4oտ̲!t&Z`<-HT1[YB[K9k%5 ^+eƠƂ !ooFhBXBOc)yҩ,A:i_+\7g!SE[_k 5xu%5A" SS Mg\\GQX|EoYVF3 @NGdc+=lQճ&| SX>Cѭn g8¯Jb`n.b^UO(!$-Hf:@+_Yw)qs^Cʇн ԲW2<= kwq-l`8tb91P<7DNQ#9o>YϫoygÞ8?èq oɖKAlMrᦝS1' @>g$:ʆ2uHzQ;KhyL?P,IN[йf\y(Zp,Vʁcqy~Hۧ!]Ig`ѥly䑓LGYݔ{ٗ1_og"eY^x$s{}V u/ø0?({5z$?e̾;>+TIIC:+8'3+DN`m}DKN 3g5tVJ 7UD#<ԆצaK-hiq'p%9z˸FEzwOp'0;e"kg&XxC #)u8M $,NJؤN߽XYH,GBNPD ۄ22.& ٥U^eHD YVr?॔Kdn\(C[^U{H'q ݏ%ÅwHL~ & 9=!wo܏v~ xSQ90 XYǦ}{̈P!^LgXK[3~9 6j7-qGfu ưF;;?O62񠺨’&IY C^{I^چlzmum{#<jnׇ5-FUtAgڗQ"O%MS\Ҹ@ !Ɔ+o>"~;3Y>A-Qv_0RiӐ)/t(y ܩʸ>-%v1%IgxI/ˀS9mz& .@z2=(O"7Tٰ| (LP?C M|õ2V ZI ߯7;OZ9a[jR6̭mENr糜knps}Au+#W HB!0u'(m=> As +Q5٪3LJY0d\VjPM#M +LJ'gѵS&|#3eRN}1$;R؟-k%؉sVt!I. (o\pn4|{緻i"I["i%NLhþ:di̕p$q/=~A!Y,)p4~J ͢pŢ _iBQ$v́KT@)7EX[DI~ !^OYFv ͼ6OOzɉ7Y\G(a@7b2fHh zPF ,3CW_645SPB(?AqSbyƲakSD錄lwޕWCvgź.!K^ ӰCb9?8u ţ4-jit@@IqE 1BS-}F_i3ZKk*s+,hs6/[<D9a׸fe- Eu9aQ) @/6oV٦5S!۝P~A@p=>4LbΙ@/?of7tɕ)&OGJ'/;Fqp B.d]?@E&4̗T &HrzǕQϖE!,rq/)X֠0gdCx)KXe"1ymsȾ ,uհݳ)ev!׈o*;? M^JwgWǗ2ġ!!ު7ӃJb:ۻ AEew;\fJ/3K; (53vs jL1JXuԈn-fq:/$tGTTTՑNjxcflg u+![z0^[GS۶1&mRdV2=G, k eˉe)(FClgX Z c>Äs!dOv_hw"v$jV(9wDFu\= n3z_FLn91 rMm'>VxvtbmI~d5*e7yo-8\U^~덳T+F.lg)K1hV#)/*xk)h` MU`  6?{MW\4y6qDX {kA0lU.%8"t|L&xMfCc5ԆMgpnH f o{h٢g.?O{gyom,_ҖV}8WƖ~o딚{¬HjUZnm#PH#۫{Ecp+^x喟`]E<8Jt0_aT#ΣtIְD|iגħ>8%2+NfxnQf$ ]Xk׷,Ӟ$}B!ܗ?3c^λ߭+}Vxk4:Loq%M=JK#xn׬ȡE:\,rSm3T(Mq_Sp<2 pcGuT0wlmId/ {SW yLVXM5u~?vF(@/pQaDKkߐy2M8_3pYvP tk4k.nCs%Lhl:=8Κ}#$S[Sp{M2psRxe2>ǒݧ"* 2[nr$0u3ŹIݠc u{gycZcnO,wҥ-wzMkG!m);ߠ%5쓪9,MTi2Fg3ۋz~I`Ux .' 0Kp+z+)Ϸsm5,0o{[UVdSޜ9!TSe%u/ݏO'VڶO1gĥR+O}x0L!4D4DPv]$  HglnnzăQgC@~gxG%p\2 Gw|M?fMGeF.XY5kDp gD`p9 `+^k_׈(%klo68z*h_]I= eyZzrRpu&1 " %P'|X %Eg݇ޒe5TRIWW<}ހ>Oox>}}vމ\)@ wwwfgZԗ{7vdv}/n>zv*sZW7wQm%{u׶Ko{LTm޼Q8G5k}^6 lOק-s vv>yӾ{e˳{:,Wyx x{Mn|yk^}v˺cݾ4iZK> HQ @w.;^ ٪t/Os6Zq{KFusflnV_=O_,;B ݎrCT{y uçWFۨ(hFj}Av}|(_U67;ʌQ}蔸 {vr^w{纷{^_/2_0 TyOsnwKۭ}7۽lp9*vs=ǯs;コ}}㋫ou7unoHuP˦@B9@i#i9>@<y}JU`3T${>Ug}y5J(}TJ{{ aHS^_}{.o_޴su mzYX>y6NT{o -z:ݝz3[ݺ^<ҷ5)}wznVW[ץkqO/^jK6hug@M/JS|zy_+w6̴]lů}t{ܽxw|}۽wg9}=;fkm϶K[-ﶸ{n6gl}C^o[^[t}Z޹O}}v흽L>Ng{U*ۭKݝ{x}v<öfxVyvްQWwo/]KY*޼Yto}2V^nvw-]g{7_=뾷E5yN}.aگw+]NvyXw}Ͼ޻dvUƳY3o{|#Dllβ޾{ow4_]y;j[מ 7_67{y'|fwZэpksr_w+ocQ{ގZ3oV÷yi[u;ovu:ղws^,wkw_{vbmiO4{w|s{}ѪݺiTx>kͽm =}^U>{/}[>{mh|30 %{m@=={kg;7\ww Qp=Zu9.Uq>]@}>}__@= pݚRmY_5}>z*:h[kN;}Y[ڀP;kYh|-3 6mnw0ѧ=:ͥ-y׹AܵWQi*[ Me|/]-UwwW>.vۺ^]vzـA*6]r>m7+ת^hʇA(Jk-7ZTB:>Q=}[½{9}}7_N>k޷=#>۶۽}}N{ҷ3؂*2Umvݛ6rk({;jw$Sgr:3Ѧ{}XR^aûݏ=׽D}ٲ'z%oyf qwhnp@d]we{׭A{}ۭ;{T7>=۾M%>z{0J &d@4M ~#SAFim4fI4ѵ?SPba z4e7%4! A4ɡ1O"z&$O&e= M@   #@"bdS4 SGm'i(zzS?*hڏD22d4 @ИS2jd*~b4 D4h 1 e=yLeOM4G&SMz  2MHAM4h)24MU?jeL44 4wem80q̼*#pR`9j=vOpwƒs%bSSуm1.j5hPOnouߺ6,Z$%$HUEI#{jeJh(`: ) W;hwk ʨ(js(H&% *aHKxFA AUU4QDESMǽ҅&J" (&d*b!jb&iEB >"rPTSO@']bTT;ۀ."Xb`6OH7Xw|"PvM:"ZTdpNK@lZ4Db1T"*"X_5<ɬATV*acu5N1uvq֬L|Ҿ/$F.D/BRt=⨜P1q -q*"^pA ])S;aMy[V$L[.0*_IiqX]X6y05$bV*+" 1W6Q E))IK-C;'ȣ>Nu7X9lnd:%ҫ|DcJuNc{Ba-*UANhD @߅4ʹ})E+%vWX|mmuST4f20Ti!,*"ZE8y²yV&]aݝ¸f^ɪDg/|fǛ=+ʩxYwfqK8aNxCjUY>o19!Iw9y3zf\z'.I$y/Rkh[%z0xd˺g>^r1[1hT)T^1 j"fތZjҔ񇊬Cgjw:u](8I볣ʹk*P$0R oih94%P|d|8N "HL @4!C$i3Iɸ Q: S@LB̉HB W$ C2+`! P<.Ğd$>;@+<NB{$)ʼnH(bdF!R XiVC2BJ`N s( $ e`X0AB % qP_7!&s9?H|0؃Ȱ%X(Pe %Z+E EDI ; 9C7ugDdj^ض 7d? ,O jV'V= :&8;Ta?2A ‰TF qO>w=nM7i"QbBҔ=D҉25 v՘;C/]ןaW+u3,Op\^n ET5e-csWOyiGQ*nf|jJsO?o$h5gi&"(L)ffy94XB_ ,åZQAX|)d˜o%Fhf^6 Hv6™u< SGux,_ngETc*C>)&P8d(IX6kne_xWOd9ֵUEUTztSM¢z {Zk-i4lDADaәnv1jGjaH?)a9a(D{jFYkӌ)MRI0¡#Db U.{zɒN<k#0]s杌O;&QjOxyJJxicJ,N;Q^߾ub Q92kXnb֡pBEbWg=oJ1\mq s*fB)i!U*wx$IF4wqh9s8݇">>ME4t!C]-;C<_RS^aF-&IZˍE(Xt[ ʮȌ (짆9j3`J+~ !"UGuJ\J'yGmjWCڌԷ[:Ǧ9_(=McE#Q l&tJF w<꜁0(+K+z;+;q>c 0,hi̓= U]k=VNZӺS*NW}9W Lr?31-Fv$F.xP>0WƗgcihQ:(kڭٚ׽-dnT\'s^VˉY'Zq뚹 s!$ULqΞpw,I;í|׶岞u[ḘuFfo)TBYDYi h~ Nc5 Ǫ]K3l+LJ znHhm7c<B烈}6|y59fJ{=!=;=Bn怇5. ̞eO\cpuKpJ%]d9<O>s; .=[8!]uV.ͧ|9k(۶v 慻kuSΪ M˅*|kDd-ڪz*f G#vJSS-T4y :nnߍx`&|;R׌8ao&)M𳆝xزψ1BδB3'qPgIH?8<:tӦ7욫$PEH@6fq{'/!Z0Fir gI }OD2 G@ u?U?o&ƀ  } d&I@;ˑH,>}%CB'.Tó"YG7,@={LQ~9#.D?7yG>\.FO+@؁Q Ӿp`Ox$Ϭz=Oj |U`UVvU(6mIJطyI^[$kZ<g/ +75] H| O.Т0)= %5u{ȫ1ٮQDJ6daHBH`uAߌR^Ͻ 8nP,I$(z~eIjҩCCU yE%'g O?&!.lKj/\(=[1Uj8UlʏwӘ{zO<%bT7p"^eDdN 䥪Es<#epcZk<ޘ]:=4l6qEHAjl(EUO'NIK0.#켌k{%di4 ?0[|:Ύݵ9@j8mւ,SҵiQM%Z+ Y-pHX z'2yݏ}cY W~oq_\rvs^tx= % xC^jNK3M,PqxU:U.sz۞gׇd߷nR ¹"x˳T|,Kr=fXH0#ciSEѯLU5je=;g+b%DG:X/B3$5ٳ܂<9Hpr'sÙj!U8Dr,vs*|q%=j3!Ƥ}W|SnV1õ[n[8nݽk0cGI*1\6Q+un;pcshɆ4Vgh6ݺFL; 6 68{W=ȤB7{vx#8R1{,iGV9r!,&JMA!"ՖȄwlKwYwv8 wgv|(EXl6wM]NS# WV &uڟ| 85i7<ì'FdJc0铆Y$1>5_`4ZnMvxQ(:H^ѵY:D521𱣖s7+{vj4&nN ÚnC(&ʏ! Q;Mƹ%` q^Swu8=id}=`ey˙A! Ba18T2ԑy*kSa6Q ⦊ . *HكB1>rz 9ےLY[ m0{^|pP%!9Gs_QMvu(HS CzZx 3 [ug\ofCre߷ŝ/^WRt.75ִ.Rq+{ FEFĥ,EJDPAG*2;ơX0h cgo< z蕿ŒZVil'PRA|ҊvJU+G5@NH3/t ZnYMh~7GWQ ז§V."kۦ\XLmu|ۮ&䴧jy[)<#Rν]/d` Eb rfmD-S%˺D:6”mn^qO]N3e>+ȷ/5?!]v 6hzMTdEX-aNI  +zɓibԫբ~JU>֠C]统^ Q-B [x|k'>]u2y#!m̶(Ig߭C?SoK ' *EBC5F<{T4QڧÑ;W"εrrT5tõ|J늧b˩/_˪O2T/؉t-=piB˥ $si)NJ%vЩBU ֤Ժ9(%D" _*ؼ= 6+z+E$th>M+څhxQ1},P6&(0̑%`GQ~"abm`)x[v=pR=rH_*KlP{H)~rMWI3籄(.̇8,Tv,ܮ=(ՊFo\9՗To, o<<Z@ڨblb|cҹX*m@/z7y{j浍+>XFSzuQup-o sH)%wM'S!Q4ZbT7v31E8Q2Cd^U;O=ӮfiDEC^/eE7q#f sQpçk Yv.SIɤ"khkH4D չpZBM$bS`fqɩw|JRpg/gtRR)INo *~BV)L+4CbދY*eߓߓNICpB'(xvdl#? ntlhym$)3Ͳ 7dfTn%&5(V%8RkP 02 H y&swL@д2JݻqWoo;6lڵV0`3/s\yѶ崣X.Qr.Sd(1 sr/9~2Ba% B0TE"=o1;^Me"2.2<@.INjl̢Hzۂ92T#::z9ZUŘ,E*)"BI752i^\~{K4 H.tSîk͠)Tv$&:8{Jk巰֬Q} H)((((()QESbJʡ+sPAU%̕~VJS,G_׻Oխ$Y8*QGaZXkZ*dQqAk0˟b-͏ ^H598hQ9%G$)E ѡhEUf;_fx\A>*pժcf|slקKas~U~5 .׉gKT/6׏ÀaZX9õfY+, ՙ<PoM#xpNwsh`_h4JҝJhmϓ^[Z6ŨzCFƭ4ǔRq$>OO~Q$.qmZNaɓIl<|hAoRG]/8bIT:Q[0?%@|_z^mҚ r=3*wNdaJJT!Nɗ^|~{;ra04vT\DQ"jލA3ӷ]wZ6=Ƚ+%wR蔪BT08T:Z\"(PimDD;b*|#ܼ۱;"f"50LeyQ"iUAORAB9f;64\[T[x^a _-^gLC4C;Mpdu=4REV&nEhSoM<O\CN%xZ2fch}2M4)|)z>vM;]GZd=g?Cä!b$  pn\2"Lݰs%Xw4.EXT-N5Je pJ1h88lv*퓤 X# ihf1U DAyB+@DFRPQkљr׷fZքLٍH#*S,1s'Yňΐzվ@y˽ _(A˳f_&7=y7MRӣ/esQ $|1_PZӚ\)_d;d9?k{l[Okkec@^>l~N<5)t&3:uDT##Z>Xxُ.?ԧ):cR@6X%媒{|,S!y .$6C&Vsm23( eI7-d{jE쒬(w7ӚbH 3Tlx,3c5>}x I7kT\vQ9Ep(#< |t>YK}F,~86Sb0k9)f|"h8S !;OqD(q|'ǣ'ִ 4(Ehu;ei/wo~~ԯ3|뜺FCl`guآ^G 7ܪ";_bUd SE@ rA)k^"0HUM[F,u7~8xκ?sJιY29CdPb4|۸ߴbMU⮆ a --T"._^k91 9s K'C]e)\'NNJOG0Ww3xz||r}hhX7sytO5PWۊFmtg&tfB߮.ntmjpHd?J#L<{?xo86э(f*50r"0y6#R$[K_%q^]@8kI=jo;FΎZDCwNy7D_̫^o<)]Ϧ:6;ZaG3þEVre_q㟋_=FhbZ6)OzDMjڇVl/6:?ӕךD{C\SSw9ܯjz|/SS 95='H;TOZƖԹL@ɘZGQwA;2L|7s̉d$mR˝h¯tn Iÿhfi\S<=s [m}m˩ZKT8VYD@Qn)HHk8s.fsk@Ӣg1' Q1B =|Mw(6?FR(826'"ACXnMzHII!cC EA91QcDV#!T`,q4ugj@tPvM p?_:c歎N[_g:.hli9ҋ:d+Q\#Jur.v8͍XC`u3E mm󎛭8UQEű 6C }u=$).H@fu`'WKWDmxXxUHQ *bo0%r?4 hN}1ˁmo)oUKhGezZ_?*Pi~#] rkcj:ZoԴ}w E;7x{>\KHzœMik[>uGI'L9onC&I[7>Y9>:+T͎bS'O OZhpA j="xXjEd?F\5J'=K.w,6cKFw` ^q.e@8d0/O+앯墅_ˏI; >$UJTzkj'A#rElF?(^.;;<4YMRأuGfgU(W7O2%o4l<+Iw{U\  F:3ݹyzoc_nEzes†`a*FblO}I %iͱrctA=+G5L`qUv90lh|CV~oYg֖oRN;9V٧ʚsBTx9LFy4 SM=CĺBCR_?+Y` |Zأ]^tҿ.Wob™LhLXӦNM:hhL pSǧ@4!@9N)oowBWTS{Q}Z%_=8n2L2(Mt` Q^k /%#\u*Y]u/\Ȫn3QR1G,5\)1"2bPG=M6lكFT,} =_kTG3ӎ(;sCe3 0Ɂ) "_5U]ƱudV)Qc! $ys~/EsFPx 7ˢgMBu=QOSݷ;\v%$ՈQu!H׹Y|QooǝR{TJd's-V.5P6|P\n\1=?nv\6Oq uj)!QUHCCXn]FU/K?j|qg'n~;;<=A行""Oβt}7re0~~ aZrgfYIʺ๕Ir[AMC:" |wyͥ  `0 0 hY*}*cB*:Nn*M<^@!) HmLE[U 뉔+$gZ;8ճ=zyiF5sSvuK4['ssO&ʘ/oXx1YmQU8 ḁ^g*5PCuquqYKqy0ܬ[xK;eV.g7sjX/FY/J+ʹ|7f#3+{XPbs77UXz\/ҸV1V|BRju3XW[YГ,~ DE£bR82ʖÍ菙Eej*QTP=OOLpr^?#/nd Hr>?Ow0^$Y/]^-ZQ" Wi*4ũX6v@#$ahM/ֵnjl7<m7﷗R3}QY"L} ) ~tkjsR㗂{m}᧌?{gv2fE$Z 2zFLe a 8abZbGZ9=A} vߩ^W r%DѪlҀhDw3{-|3>r,DDM/G2~jg| ~<Ӄ6kʷU6fJha%JlD˓+a)l$D)h]sws^Vnqz1?G@N@QN4}?AV{޴.Z!2:XI,$sY~YYMMwko™GrJ ~a"ﵜ9y梕}?G&Sc7J'H!h% HЊshq#{Ϯ&z8!^q @u Q.f-jMhC;9=).`M2QB<:9(R7 2{u> 9#pw~иsXqnhyKp(sٷó]JZ$#jOUL/o5՜TL>@X㛨xe/3ooו9Eh֛ݴUWNѲFS0ozrI#LlâkjmG! {^ =5+Vv[K|$񐓥1X䆝Inÿm\(gdb}q4" 6ݝ'%5L g7Cᢛ{lvm/8u|/mbw0֒1?@)X\0]-aG֠CX$dmHgC ^2;Rb ^6$l4QhF yT&$߳!'ܐjq}r mB)kD{N8$0&#?5Z~ kt@I6q?[rؕ*OM1SFuen0 ؼ bobzV,<7@z_ *txiŗGyjkᩮܾ5C{Պ|6yAOhT4QNteTt,**Tߗ~!C"Ō݇ft2zjDDH1c 5TU_ThFkH]Nf}x7 Xߗj9ۇD" iHPQ>juL8Ʃ'd0`VhA"2fyXRjPsnڤ:?D((Ŷw*)* X!Sؤ*B)5lDPDEUTTAU&ZCL\(F*bU1DD}I5]VoyiҒp+:ݰnܾ>m&TX-?Fܲɪކ)U@E^SK+[Vw&id+=?i"^gcD(Ͳ+F?ֹ:z䥬JQMEOIxUEE3 YX~O-ɘIJQ{۽^ou,\7"Bbuj{be D'(N)8ƒ3NX;[+胴rnhhs8>Vs3l#LjKKTʔU%TM}:=9ATwؖuڢ:=}wk;h#~YuV~aESb0ӀtQ~@}Q@.dJEhiM0RalRQ?R(n(CZ66|5-k E4hƊoF`LQ~ oi,e~Mdȗ?oW\)*{1A]@Q3mJT xQa"}PdHh0)D2@BM(IHIg00A$#cu}_}ιyicwaؤ#AU:J}_篕~}=y`#.lq9]:mP]; ײOi۴JeY$$adr./tT? H(%* ?uoIi)hò?F՟6/'[IJ`5 1b*[VeʍS5 U#5EʱPdHs/7?aJ5V~'|roJsUkUUTxC1ֆ9K}PQ^S/>?ȡ,nϼf$ԠTD}rPLJC|ptx?lJM;Uiqd"fA)Zi!b[KJAe!aCDk@Q'z"^:xb@頨 LZ"hq@TWa(\"h)AC?KeFl=c(s/5dKDȝ,dTپI,*gqIGFQ&pv;?Upo:<ߝk;c~|{ l7ms:d/,WQEESI/'ϙ#1QUÇG''~_zgsD}\+~ k^>bJ&r1H*1IDPP"Н.P0ĵM -2I??~r5"oYkeD.`ьd ` k?7;/iz]g2u)3x(<~ue^zZ ȇFTP͠P<|H1rO&_/2;-ߕю]k6-g mK-lN6"k3ͧoFxmţ.DUAU7Qv8uo 9ht#eOQaULvIi ^Z2<<pEg:ynAEC4u:t*!QF-wm*cݗCنR%uֱMUkreAvo)jt/|絛⅜~Q~¢utwaD\5x,yH.LC:3>K7pE*MD.yZE,NEI.E0 a$ C`\1Q~߼~(2 E|kq Ox!6ڡJ?OerstJtq\χFߞ_?4&ea3*67y*q"@755? =MdB: 9*!|bC2ֶ7g dϷ 0@Bz% SVOG_xLbj77btH8bWs#^ }pMJ%+>l^ڤ[`d$3vtW-~4-[X@9`qȠq`?^E$*:DWѱ@US`_Ptwu BA{|;#˗J&*|H%/h2zXI -Xz"}>8p)RK.C}vԐ2BD?{PffŲ0\b8ڕ?(jɔ4gm՞=MՌ{m@)|ߵxkƿZg1\:ETB&5{ڜC}W᥼>Q5Y]";i)kr55m\]v Hz`|[uD|ӏ윝>dP@>+-g| cQ4?NoKuCEDC7W*SN68i)\sa o eT,@l>{=}\Uic4#ޗ̥^!^V4fȯ&DEMؽ .r=B ^ڥ1_塪UY/Bl;;ЭV%S,m`lUu'@(J8~L1XqݧhRumw7$WMT(IЇJ1}:A#= @sN'+?g#gmCS ?oһh]8{$: .b_7*(c{4ALhF~of,;Q u#JQ>g5~z;vf$ X|˻i/~i'N`~#*HYcmT 8yRqgw-9sٖMaQ@HB?[U1mW2 /Chz#L2dngUe_i/9 c9Ƃk FUc>9FD_R)mP0ˆDKUhsIJ[mbІ{+QCQ)RFcMU'r0yYk7ǫze|ָ9õYs%;a }7"x@H 2-'5JU&6ʭhJ`kTM~.7 ׎~EC8*)5.UTALچn(zפ>vbjI^!b}F<62O]sMorn ooƙfݗ)e2@$,C*]4Fz f$ѿ/( S@ J%% J%"P~݁X\@v" )I%z&)98DZPC(yz%?~7Ӝs@Q9PR²w=+ΘM)Jلt>w WȘ>1Q#D%'`RUs}fq;S4lĎX|5Ƕa+?'liHIQnrps?\H%(xNQ2<0`yFc)֛J WNQiMp'B:ӌkTQFo*7LG5BzF KS\rܰ痂pWhN/uŕYp޶( IQ+_*(5x.zتsJ'ynj}[ӫ"áW-q%n|^6]'#g'߅T4@ gJ?K$ $8ڭo"$\xVa@\tC}!q:s~ Jm7K?s3V齐&S<[?Þ> (T#4(ݧTڜNl.NQfǔ,>VTu)+ߗȭnO5‰ZgnW/ZZ^޾ ZephR EHHTI2vTE,~<$UcfPL_E84xpraDXL&c\i[Ubw\IUC R'OH]!%SLfTHN1[V[OS[!> [vB9 rҔd9|xhDal|9ubU?:Dže ê.x3|ڒɐil}#%fsyF4-<UNco? x{]=kƦdTFA>*w0WíJ~fnO[f>;s)TKg9Գ~%= ޚ0KMu5$c&uP Nj24# iSswMvY;]u8f댙ygb*Xl&$lBs4;he5ֿS>+*wUe$:#g{WҫzF*S,Mf퐘#lj/sUprK#J㭷 ߅!t\WiqDfTJuD6^|? %UWCܪ`V5YTi2{ZoF~Bs^ P)F@QF;aw.?wK~:LbN ·\v-I6>ZbrYA H؏gJ*]㩩_EGDG=V>Q}WԶA75ڑ%mZZ;,\>IZ4نљD~3K4jI@Ed:raDjHYKC 1hkI4wXb0!dL"L@Mjr.QZ?_<0[CѴuJ w-V'gT'Bh -05A)쎂>`BrQ:%&&tq`M> (ߋ6Ea(L4 %g w t^?|.-D'!9wU B잳1c7Z׶.o,rbesHATF lfv@{h;B=h:LgRzW*z@k;vɉ'HUETH@\LfϤ#i\920ɽ'}=^sJ+x aO.`T?BT/}8GDJS Cc|]##i007 !9*}Y}%R)sO*T!ZAv8LuW}*1Rs9áWj6c>  ^a+O{SzUq**34W0>RHB_7ċř~'[ڡT/ O5ec/YH]nb9Ɔ <˩-/ Q6uahZ'Hc`M~ak9#K~[O9z|Z߶qoƁ}^:A.<"+$t<ʆm[fu?NNnqJ\8/~~% z4Nׯڈ;6'M9Ow<cA*Sr򕕁鸊{t4(ky H=2'DƃPxH>T䔬' ̍'VSb\G[`,Tc4ODBYdeⱊEGf^IZ6څ$ꂆP$~ΚKgh?\) Q8O5ܷRP.MIOt@ROEIM43^h c}Y{l>t׎㙽JU2kyqrmljmwoi[dshGsgj"]`0RH>-q&_袪>)!hmRW$Ȼ7ggq~&"pK2.~Dh) 2{]<=C  0ꪇY unQkJΞeҊ([@1d޿>Q5>tݣ/ f좊:(((`Cĝ]$Xd0y#!62s{dӜ`Ek]Q~T3*2 ;-ͽ~? ȝ"/&[9{_/(: wmeG_=tӧ>,)Uw%U;ɔ j`GmES"Zdiƾs *UUhC1XY"OUky̮- @T/qVVHiF695~9-3)vpGs{ I=']lH2&|/jj.M-.>(:zsyV6:(GJjx5uWC@ܔC+&t#kٻ\p#<6N6Ζ,U/͂yU-ȪU"MJ@i9/" ;'}N {>x^O+lMlDF̘fCR.#qr*³O4PmtuNL.XNpcUy!i+~:3uM_wquy4?5ٴ]/*jnoi[nGv̭կDgӇ.eouTiкusOF}0m<2͖m|Q.C߫OA$:9s>+Pt>gU %zl+vycOrV'MqrFy]4$ y?5y7̙d~LDŽڷDnR\K-.Pf~ˠ[T' u@`${A%sȐJwz vi{ )7*bSh$G;7N#ťq_{_7L^s (71i?"w2?䃍%E|2yق;Pe@ [ ƒE4H(jQȹ!͈1P耤TC#@ hL( h'܄d9G6L30ʸ6"UT#{m=]hao8DCxOH#zO`b~a?zzO}Ca^I9GU=~SOoe< @S@j({s~M?n1;J;#7U\=¼G}kwy][.0/9PP:$0f^}0oXQg hs{h?"9eQ >)>lUUUUxA~d'- #\ET(P>3} c`j(?[mH`J7 $zSszؐ>Xzb" ȻK7A=PZ&]Rta!ꇽf@dV0#ϯdP,TCA,P@ -;?3W~M! I!$'I>|R y!)o"eޠ3@VIǰ3iI5< |?UHÉpc4FTI[4"$t8KU:6v~ ߣ6w {| wUVmW>s}҇@"TFxDt3T>~$@sR@lB /Ӏ {}~^QgI  k!GU.FcVZO"!PA:U,]ZjStȨU`mT"?k r_?m7F8s%_GY*¸}26|(pwmlY S("DH^^.gs˥ u5ł'*\N?pm> [Y>d۠&K=Q30P>/Uj !$I$tVLB$|$XFड ?^E7҅ۇ6f V~|DGaPP؊SB`? H\ģy ~]ID(xd"0``3a ܋p*gȞ=/eU4DM}PHBPh|0| 8AB[ {C0)t.@ Q pg }|٧UVqkPC E /*9O(^)dB~([Fvx@I/tKv@,/[GaL"*?"zDjښo^Y %5Mz:Ha0OG69~9:$n+$LgZI?4* $Mr"DZ.I(}-Nt_Nz3W!DMӵlJ\ 2qLaQ? s21d>JHM06{'~0)P!- ܵvq@a@ Gzr=)[`؊, [9ݲUP(((((((0AAAA Cܖ!<ݟc/3V={IP4'(,%bk K`5xO 0?wm_ug{#u \|P7!OhRO{_KPx]B.\+~3|ol4]~fl>$k!{ʪF <( ( |`O_>( dpCH(*يN}XP7@:yyL[]p4m, NqZCI}"O jijK.ڨc Z2PF/7LbKlѡ<@Dr5)Oуu IcLAI 0M'?n3}E Ϊ'L0>;O}G#m\BrhT<T?ŸDA2"N` `|C6M̙'rxfUϥu_0 HQ:Uw~ ^~V T)Iw?KA&X- !1S !y0[8{{WVUT"?Qw~Ui@4@P A   @( 򊪢m[mRs@nJ '[UUDUTDUEQT)җE"mUUUUUUUUUUUlj$>Dy#EK7kW=q^۬o3ȩ$c;4Ex'$.(EB.N@rZ\OS0"R !P)Br/|1O(Sԛ(gd;:~sQܹ0?wퟹ@A$j(X*a䫂g9IdtF-O5~dWUd톌FxB-&,qmnzF\}}`֘qh;̿p>1 54nvߛ/  Pg5y4DہYoXR7PoN17Oځ I[LEh( JaA ౫`ƱFnD;2ObHI$! VF14bI'$S mc:,6eb"¥r\S44UT,B vӗ~W%DՌWNHTvwF^/6Xl򓰹yThUAڇhh6EˍkvҦ6yto禠Nl' kcʏMj69-%MjS4y{{ߠv=_L-Ԑ  t-zٱGneoDӇ!)6Jy~-1rrL(2&vdݯϴ=E;wz#RZ8 {8~gtwԭ0ZdP=@h["+)9W[Դβ>M)Nw`]Lg#睑(+5_W]݊A6.eW@9]꫾|"j}*(}DHO98 "jLimQv6}9=rkCMM@tQ˘J dI 8AZD:ؒ լH)蜟_:ah#7StƺvfQQȤBǂS6>V43ns6l J |B>,@#^@;&U5l)jJ*FfB[TvNI6v2AmhZZE]B&)nkenڡק;[2Sl,v2QßM9q8o8=Wyd)2=*vYmP,Ez'G-)R0S .o/p0kEx;K>#Z CN1H<8qeˍgmW氄)2!&q\}ZⰅ:?GT(N=LknAzQlmLJû2h@Q h%|Cu<f{LiBù2R`+ĪPj8iT pF;n)?Bn9[9}iiAg(1:L]Ջ]-2'@2UUfx1JV}Th0OLL7o)&0Ʀ?ߔex[RUҍQFZ n4bw__cY']3tq)y`%Bd_ͣz"J/ rYPS{5WbS  -LvarNKvN m$$ߩuÊ1Uϛr@Z3ԗ[cIDEĄ\@@1BB35i}c,UF}}v!W3ҧt~4P8'W,3Q=x@ڔi[U+ ؇G4t]2^`0PXZCa,){oCyq\J꠹RFoW=&XO3j)䤪%+LbF=qR(MS .9̔4{E{OCt%s<}W%gQjQ*ͭ\[Au+4S.;# /21Brv fbEjglFDUAWʸ.IK<ϙժ誔=K;MOcҹ]1 cn˿ov cMLLڑV/[$SPv…xcH.`?8p<{98~#䷃?6(EftKL#FT{+"E3 D0c?] bq˲ ˜T&J̉J@vsm'h3v'HyCA4uq!yQGÂ"*MFD-H *d̰{R8zPkx.-\$D~4ju,@?~em ] _B"e'c8Ժ~}\.g`n~TԯeJYu \xӎ8׻Q3މ?* s~K#?֗U SkZ? t&P Ң"2$:.rB EaNkd[U}rfuX@9M 2%\VCf t^Ȕnt:O}v Q f!DfǾ*`vg2Jsԧ=3=hMNOa҂ʩ Կ(l<~.̭}^XO?Nh(w<&fzvcIA 沉m4ݖXF|ۇ|/"=<I|nCi&vsB݋UtrTjÕ*cfc*SSM(8`JwrZXfkH<ߘ HpvU jΧ?I'01%k~Z)ufU7yPW<4?JQCnKQȁ!fx:GHBш@`w>4fЃAj{i49'gf8)Kd7.헦p(Snrɠ2E$aG;pk QA.@h \9xL)iǃK(v\Fcޑ}i#ZN[JKzVf \"lj.9?fqzAq3MqETf&kUQb+oߦ\?~; y 3lK`k䪉g[+vro*8`L&mG%\hӕ) ྏ |F~5(זʲH #.wS-X$//y8ƈiZ\Gč u"%;CxTAx}t͹i*8d(͙PTy/KaB_zec(#dFJ nDmY )k w gPEP "ƻLG3XG#9؃r&"wo\l7}BC]Ķ; AF?7}6/=u,gFX3EA(}+:EXUB'{jkvDj),poTrO My0w@$}gW<b󋿶6) dvqiϦ8?'7Z`jE8<~ :i5{_8-j\u*qߤ`BQ#]^GD-l,RR^Lbi Xusj6K戈EFGB}x[#7>bz5%/L vxQ/6@28 +4;-e1l oMClތi<2ESrb1Z$$2䊖ֲK#Yg-uK'G & pю͗'41R . ]=cfHh5AH$DK.iUTRz !"H8=[`2!gh$H)1*cJH>,J|>xC.TZmdw? g[b_ 8*osUUXTXlxBhWJ<mij{iaoyҴՖ(!ٳpרW@1R`-#Q*sUgG8] VL$ }<%7J3,tq-j>?WͦY,ƹnP Foڛ=ͻ[sI?kLOw:zfFB#1s>O1"X Wiv9Qޓޞ业PEVkYjJ ^}Vw̙=1M~Ia =^&*]^OT$/5YI7덳3q6`@$MFY t+- Ȣ(`ݷW :KS_G#yd@AEA\CǍ 5eY96JܘV+85gj! ف݄GM?F^^,pdgkrhcԱ7=뷗r)[xv#)1ǩ>W}?O%urkc]لy0e2mPk] vP% Pf>V/}Thۍw{!2+oi`I4 t uNJnّKʹR`;ns󔽞~ .P BDxݲ͘{/>Q ʇ@76X8F& F2IM7PaTa0`ʝ"x4לd+T mm447SԦ$u$;rxLf\TLU {L'Sѳ (P,P-v9.Fv[[kcSκVXqR18H;` ;Ycӽ>KֳGGukR{[!_I[_VD"uylѪ˕jM\͎|U;qԧv!3׎oWsNR;Y_C޼S藍+X6e2kfPObU|iUs)4nϦP GI’>|~.L^6jiߍTYa@a%Dge%yg imkʰX`4T,e2ɣI+ EU鵼F4`-5d.6$rѭ\HS4~_Q9~%l-: I# D9۷+)㷢v% g6`b{[c3ߢנ}zyA6o,Sח.4]z;#`#!it[!%SKW1)ٽa&c}@D`a,’K{_ivQm9B.Ͳc ljoIH|J ]*+汾=:DmnRroEMxZ # _>w+. LϺ}(*;l6сm) 33aGM; +P9IoY(&$L/1|S+cv{wE{b@(ls= ^15KU@W BgMXWm Ir6_?_MfN !Gd^\&AP`#<:t~7`(jxntI(6n]c܉Pn2J 3ܙBSʍ'ai5,^'\؃;El|Im*c;̛Iqg(h~h6ynI&QJ#R;hpNwogXi{-d/;:c$>D(MdFnS`?i%iF(qޚ@R$G/KW#-xő}5+cL( V!:Sɘ +'O0 xdO4սSY 'se0*qZXk*Ks0A8JZ#j }NNS`q0seV'"56Sc>qu~n^z9,q XvNxXꈥx͢ޞsrx猐seϑ`йS+]%IBnē5r6|f"2^Xn{QT~:Y\FA<K;9aAV%}ںɾϫ0 Js,_rgKD߮doJ*,y=7)Ǽzpf_aҞrZ`zUFt u,Q3rSeYb€cEohW(Jhk!E1mnsT7Hw';6r~Jl"~D9ML@0琕5h޴!I2 xTz=hHUD@Z8Gǒm}&Xފʑƿ^]1< (Œ:&Cݐp_Tq~E:8(\&[fgݝC.Bk'1uJ٧ȉR(:-NTwm*0# 7䱴~zʹ]TSU:7B d Jl)?qB s'p s>>upq%T ` ƕ U^qg50e+G{~O^ifuAPatic n?95CfQgUw~W _Lz#7z=L4k;~?o˽d 3UgT29;Yf|+`\*kadns2l&_Z"OVWn~`VJ2tD؅ca"Ԣ!XlcԸIThH%»%k䮊)W4鶢XT|bԒ$ ]JBg0 3A]k>z2zb=[U(}/ћ)]G /M!ۭ5Z0Ni25i;$5M{ZgG{0ˈ~RƷ3٦-RS"Ң&c7OG3_.'N bwyhw mX}ZbM40)(=F}u1\? >r%֮J#(? ='L(J߈]s~|uݥl봗 S=LtUeÆEe>u4[](v#5gXf# ܡ=Q3CR4= -+v m5ڍxifLwRx^jۚ޳٠m*{-CEzހv9.:&e_#c:!NLO\Sw$x~P!@oD̉ovS[QQ^GWO:-cf,xsv5Ɔ=zTI> H&0.UYm =]GlhJ2%hkp%q,g9>u6W؆lIlcF8T%d=nJ/X|4F#%i ANI\Q  J⨨Ɠ(3Jq/{0hBi?Oy4G{jN;f|gowAΟ¤>Ę$ "\Tj. 3,ξ{7\]@њ9N' ֓[< X"ca*̀B`M<5d i[ *0rUuS4PGxgXlf3YJ֧Y_<_%Tj_Y(n7E |gQ-lp6֡ ȤK">hv vK47!7aZbP_wCZ.M5-UnrC Lr#]/>\bq/&[fz_]rs\5URlE|ͮ&¢^%cr<5 h%,/p)#!$&$JCHH(!9z[?g@r5 ~N:W mʡ(L ح6Lj)7YC<<%A3M!YERW(63&ds9S!@Xm@0 q]mV+"IjP^ sI'u-TFG| Eh;("v<ʍQUdRl`13X$1OQTA=fHW1bF$‰ 11Hoed2)-ĘTm+$|&bX4RNpW)5d# @! pyWZeEK!EF:Hv>a~NRVZm<[窼zO31#l_^3hm x&⵨Zֵ(bͨ@)]FA>.A1aa˦j:1 )Rcb=.j&"9q/߂ UD3rpcCW ݱ9f[PptZ6umr&}4U*LynuپT=AA1F˿]? o$TY¸}cPE6TB=أd/k0_.$PcD4}HκifCWm wZ ;h:o9Li.7gTQu\~UX @&Z7ΜRt>pwX7l$f_滮12310GgȎn80"uN3z쒢)ƈݗVߌ[ZjC?ϧ4oZvy7TzIfE.Iƪ5o';]h}uuo&n55ۧHGnuNcV>2˺c*fF.1fZi>9~)̝I}M2Kܔc(:Nu!cE }Ssg^H*Il,]?;;Ķ=wo?0wͶrǠ o9ߴ8i}a_Ud(x?޺du;n[~k]m5g^|s5,ױIڙ'V(ۋY Āf]׭g }W F5+~谮V_<ӧHdzB_Ը";\DLIں7wm~\E+ǛrqU3$10$?molVCQ\U_-&}lY"UM IIDF B9lB,Y:@}s"#Bm̲?4vD:VOɥé>`"lBwETUgb.o.ZK{5F>Sc4:btxV7KyeQ8\ D޿oNӋ@ݑNBKH]=3w%vnvh&Rca˻XLl.5*6CR:؛f:qP H 4P 9~<;'>ƿV<8{vv+:ògI|#k=M) kBynaʵt}qF,9 %ZHa5ЧP0\t4M‘lwƳmB}ylyZXNKNUQd,]ش2}8 녪;cݼkT~n=_C/*mA4LA4W &Xo-q*K]EŏD-m?սܐ1Z f]gN7+4-}|{+N3h,QGΦc'$ʎN\VnJ` KuVӤ HOѧɤЈi3% 0)D5%AlJ 8* + l7BOAf# Ic*9+Nu ɪ y"xX{b8odםmt8I~ |բluaHy&LeOUVV91t9TA`h1!6_ٗ/ύ f'S kbh;_e7>#H8ex;.[dL:qP}8g۪W%d;%}5U4ҫ|uGFY N]p(K-y>U2802l.O O;& f8:F O"[~< I"`e߼>sKTꙵtYhϤCQj'qc\-}+ߪ9>$ѕϟn"TCh1#6*-s=[~w6X,fXͽqxx|Pƍ#Ƥuw*G~uCÙ\?խj-wǛ 4<oi3;*RuΘ:kb7.VX $CSТ@o3z?=\HA9!﬉Ԣ_:!VU(nUJq-h !SZmNREZĚ`B QIۘpLE<{8J[(Yߣz۱ύ˪?i$`j0$;[1hf"- 򧋦nF#oopCuvMDSx:,_<&a?>ͯ1$vP ZZV V` @P0XJQ E&P9((DO2TB JJ jZfJ@jf&h)&`IZJBP""%hF!((HahI"&J@(M B% H%U L% BEDDBI4BAA0DREI T5ESBAAFA UPȊ^LɂBlֳSacDef!=}߮WEATQ  Zgud7(cCd;%$E1DִDRX#;94K@b+.n4#bHn!M6C[M Pp$!-$o6Ct=TMJ[X͍F0QI$ZpBgAq bHY60cEC 7!J*s5໡ c!)0ÊSxV H̑_u PV E'Gfz %I88ƛǕ1قc®g id TOoۻV??sSycN(-u 䘢dlDas(>NoւXVJ@*S?sE:سURQ4PƚivnG,L6H칄@\Ұ ˖ZW3,oW.670Gb?_ׯ~~p~/' =B@ޤ #.r&Ё̌Ȯ"89'=/STw%>NO>S緧_GO<}YxǏoTtD_ßa:RzB8zyԠq'pO8lJ!s"3QC6̴!S̉2?uPS7~O}VۼEKLbeك!_$wK#)_Ac:sqSz_ CJ0A??"&*`Օ0Ҡc?M *7$HQɔI|' u‚d9֔+33hq܆YN-4  eFHy^}'9m]ԭozA33g9fJZ;3[ϐK I6|ADUXRMDTSp܎lpQrYx!`L *x5av1Ѵ6CSvڙJv23?9Ia"gв7ʧJiM=Q~JXE&GZz11AH!(cq.e ds!GRյhbHaɈqOTklϖ/ UׁY5 ai0,S,f̐ K}A|ʲDXO>++ttU4/b6HSU噚&(6 _66L+'NF*Lw ފ+HHa.9c*)~ *Ր̌qo(`)QPq@Dk(>&?} b:1ޗXMR`|A#Ӿވ Ad r",5a”Z>^Oe[ZByE켲3v"DMy8MUE ? 4!#G:(|F?@AuB,gܢ<gu(cHĖ%@3%ϦpOT*Ϟ܇P}{n cj\sg-[SR+7/\<&xdx$xXd!))U3.%0NV jUC;M I#5d= w˙v"BQ[BNS+.p|L]VF3!ZP4M 4wzOz5X*Y:$Bӹ.d<O3;mI$>\Hd;d^@FUU1$۾2嶍Ld+RF܈|]ILA|M$Ƽd生⪽ y!K=f RRHЯz@*Aj4$ftFIEd7q"B 4hֵ&}[ `0ە :檫Y{W>nCEf좿!urAm ACJ ,xUSD,Bݛcot,PV`Ξ*:n>Ibَўe}>Iv$/K=~C%h s#' 1AY&;n.CZ5 0 *>@m 8`aT5П;;YtUIz|R-W y.cf©MoMCG}Zz5BtdNMƟ!OD%}+U49yŔb91X܄_ܡGqj6C O^>l|`Sßa~!v0VQ} }J h[ԫz*'! L:G_k=YϽ-k1IaB/&R(rp'%#Co3ӳy ˬgt^)__fx?ŖMlZ3(^gpoɔJ%~PY*Lu 8@R<RDޥ1~H?GG^V^ۻ9mLcK|T`6j q 6R=?BjS`P1/+y?=b^=OQʾ6 ]^= JJ=@w!UXK4a-W/#+ x\X(pđ?#?a+E ^' ieľ0krs#.9#OաI>u0LV )VW˂Ft$rZWYHq%\533㼉64a2 *E AHM GEz uP*Ȃyz~ Űo3/J;Ҭ̴'~K59fRSc_q‡  Es[,$i:T̽d cE0`[o_0ںl]hi4Fz YD!4|Xf)7Fj4c>濲!w G*rhҜ$~NX4y79zTE0׻=6sՂntSNC>>M^KO0?tO,NٹOc=OVh t2Df0٧ٷjz͢k1_ qbD81J,(.oAV7c^.VS#ȿ&VLPNJTg!O.zeU^J'[n_ozN jI?%d)c?\d޼`1EOXA?H3za46BgnԥB,UGk;vBl/W# -W+-0EbH@i/.Lr~m3p=^_d#凪{g}}ya].uYu뇶 3|mB"tDajf֌y`T-DY74f` ;<6j7J֚S̻ou^}$.ofYӅC)7GoW] 2ۏ@UCy /eˋrZxbRV'qu^SM4M4I\Ɂ$& jx;*.hJ0T-dV丢ߜ"h`HWI2s ppJdjPX0~xx@~0ܙJLcwB'^f0 TԚL i/w ίqZ2\ka^@<~^eMksz4Z23vtfLCkt'a=?կ~,-61i% LPP^7 Jm]obqdw %b|_LR.n/%"mZiFNG bxXy0BMQe엯:(<-𵚹bz}?=ǐ<݆ʡkwHg5sVn5jH":vBnϠ=vD/eWҚVu>Z=M[:;(A\Y⥘zŐ+?<2J!IZ`ԜnJ&Νug>RRBNB^ioH}_Q}/CWƈ(u+j&*m+ת5>Qcj4N7ŷ3^So%*tsc^Gxyxq9worw癖^Wit hW1Ty]Y'}FƵ4y>7Ä\Y{to\pT2Gwmw| _9Ik7x1| |9 gdz~hJ58y~\9iOI}'Ms*+Yx3RS\=h=ԣ])IzBS2xxVajφx:򎴚aA+LOi@=b:/ urH"!8R]ϧU&]f%u$=>ttCӄ˚FŒ'mچh 4iŨ[5]!v08%ӎ_Vչ9й[c[T}<zF5X mۻ[EbɁ^Wˣ*o<J +cY(^ߘ.̯]۟7E~+&> jnTRhydT\֑J)z54e[Ol`[vKY!7 *[떺sUMbsQNM+3^x8_XVJ Ut;ҹTE=Bdl)%]{Am*UF5KRP~g5X4BX.zt^ 8' `LOa=e]Ƽ87*& <}X.辚ťk]v=>" $3xJ1o9gg|]g C.Q) νpHAjMH`fU D0 L*Lڥ*" sf,QYJ<|ZtmdŚ(ٮ\˳)dVYRweG*ƺψ:5խ]~94vE`HGv[v3?T|Mfi/7~5QUH5Qk:S} cQTq ZSRBz\eo.u˹9'IE4iϦ[j=6A5#t+'7*[+J|7\nXAU+@G$"9ϡNCDPf`y@<$I8zѳMC1Qռ,SZ/{Jp@J#cE@ʆ"h9KzdPZn5r3 VCyp‚O@5ZCjSGW_ǧO֚jEEVWTPUeJX<ld?{z=_jUqzgWD3˂p]gDa=)Νm`ܜP8(4QJVDj |j* }?fd׀==d"WO`#I-`GRo*X5xtؙz d/q,`<_G")27HN8QlJmh$ <1%k}Šj̴\,;|>&h7+Ã0t;=ⶳVZZP4(yn_+U +J^mp{P/98Vf%cC}KҁP[=xYMca30]X>EՎTƴ) Ģ\Vgl~E-+yNB YFa<S W6qObDZJ ::,wp߆F!<*Sv4 )= ұx* Qmt&w668nnq /ɔ ph"zdTsET.tZVU,46vÔmr| C.[e`T(b坵gաU7FƇt0V\)WeFY#_̢F6/z2#{xAYƚ']HE h. +Nc!G=ȇ_9Ql*i`gⱳތR ׳JOC(i@bJ&Z"BO̢Rpi|. )i*!iJ RebI XV (Hb ibe!QPD$$@_6ܴH_|p:"TJ !Iy*i)XDY&jaO.|($kZbZZ aBjI`hPb&!EhZiQKHTH M B 4@4ą- )G3ViD6RFb)&h"^;pzh`&P%"))"%B() h%f*&&H* J*R%iF!j)Hvp8jKC1!b@nIA8IS,KbC0pCsGDAkKU3FSGf D\bwf T%1G@`4B4l$Pz%=pOw1Ɖ.ԁq4#DHN@4#~==<.>d)|mOh !G颕"OBQKa EY$A ilyZ G$ Gs2%.GϬ'*Db*`4*1z`:7܆F 8ZX4$KuJ3 Zi;Z {ä9YbxM*d%uΕ6]%4R& 6"$"bI"E2MۉARs'Si6^F??{Fci x`H'x3O S?524ltC}2pZp_FP= S?:qxƾB4a~BC']HJBPy!hVO)A><`h@(ja(?ɄPRIbDi$~,BāH(~|TyH'D(iDEXa!"0PYzUTuh8l/(%CBv$,""3Q(?~Baa좤D! ubJ}f@@^vȏP~y$4RZFBz@4&J^i||=\"/gp6kzguzmDK m v>cs"9,޹JCY@Ш{/g碼?Ґ1`fD1c'm閼*mi0;qy# r.إɅT7%)MOV q@'HQ[^)Ն1s xjn 9 -CQaOԓ{>|aySrHqɓ2аP1,%!(F!a nKc# 9(:mA݃I18Iqa°ÈNRjv9増AM,0x50!?b^$~=%{;chFOA~2gIQ^bBe$Xd >$d2|4TNT>_lO}0O XbhdTifAVIQe|Mz3>U>t5쩹7Z5.iXo#+/qfiN}DC0"8Ȃ֕'Nh ](ٳU}!V"S:b{.SM,)aw-܏q.28^8)gۨP({MY>nx}]oU~EeeUj?{x7grc Sz9d?w~hxgn} X)0e3OZ6Wd-o۸;_‡;zIHY$<s~VE"\f;>(W%', صbƱ|=ZfMbfiU se>uTJ$p }̩syNsǢ[dT膕U &T.)T i-f<ʶXc׍[Kf.}^Nsmnj|o^j! 4hA9bXpúP](rܪ"* *"jʶgymwC[Vv|~\>^e %~Ҁ9D{(: 'gM[L 8yl}{| :պJЪ'?O:srX`PJ_}7=< Ͽ|!+cwX|粟U0PPTѣĂ շ4b !~.tY}_iБdR X^P\PS83 8A>?.O~dl-[#dFl%zEh?kR{~32Zs|mʋ DhDOPT_~:A9Ve_6A:;̾AC#wm%J[2I{N@u.4XXħQ{Prtx8˪YMYח@MDp qZڹu*:M9ɛKFtEd axi|Emf3W/+kw)+Uh)* srRKGVUސ79_h ζUxk~nH\BL3ۖ{6bM !o3(ɓ/MoRdΰ-Vi7!@QHBkg2[v@^ZbW#: &\S6CS*G < .)zD飩hqK7u:)B*$H; 겢E20k/d~ )vE8%E$>"U V¼ u?g៳ FT墊ig0s#"ëTo2[yEUXլ8eQG^<&LM䧜ceqe)f}Y8QQhXts2bt#>}U{>q W \$ m#2'hUq HF)x6"qI_MRydY#IؐP1z;˵{_;;6t`:oD`C S@D8g(,Hl&H09ؑ>y2mp}o,qW5 Q(=ړ, Kl e ĊoH=KFJg6 1jtEc c@vMUI*c, ^_Wwt?G=:tEt !bTˑXs:-v>xJ[)3yVz;Z);2u3w/UTQCx*}c:^ZxBSWC<_Y&f2ѪTsӊ9$m#Wq&H AgfZr5_KHoFD4DU(SB$ B{#¿y;t+vFZ*np(?_7n㇈_VIt X{30I[zS) -0_SQbXŒS ~/՞$x\x7KӒs2ۺ17j8AO$aBt[&ۭj2ᾪJZOzgq|N( ÖDzeKUOLlP!A1Yգ}&SH P  *b){o[5\[΄ FRe{c${r-*7\+ozߚ63F!-ZٚWhBS:hٕWLaK3&a]<5~7•44p} UN|>O;3G{4/)ӌ)-˱U}fk*|";/ӗ|̇˭u~9RFhF1N% EUq 7;{sj$rVpAY~Y\k(me90Y4QIImYpƆ(YgwwYmU1e"]T66 TkvyΪ^mTYy6x؉UЕ 䪋9% x"J)ɖPC9ʅ6mrnV=>&>鶩H&l;$I_k@~9'6'>Ȼ<]Q;uE"Ds!1 "w5 aH* o?iM, yYN"Xk(\s ֩[6CX(`?Idi=gƬz$ Q@gkۨؿеX…9UEը((\9PM3ʹUI'VnչE1`wߟ.s$gyN7(ܡ䓧ؤHN7*N_j DgEKlSA4Y=/zk5Sw?ǫ9~93Z]:fGb]zz!(vߤ9\q]BǛtֹN|gn!-^cu2RzUVd'*먁/YGOr2)s!U"(m_:@WܴՄQ)Fn3 ]D557* j0ЮD4_=gBm~ k zC6}ݢb3iQ"0 J˷8:o}/Ue2r \ xQc_^{{(ӆ-vxU7rN6g!hKS6ںÞ2ﶻ4>9HT *IBġHXaa;M綝㦢'8LovԐӘ;dTvxM/O)4qL$N\+! Ny`-%.ZtTvÎuiv{ pcj Vڴw! / V1:&V1C $ӝe|8n7Mv끱ތ8Y+GQ2*mYO`7T fP+Vq;z Nth~[|Ka9n! 'TZeG&10 +gԔ _ tÄH 3*Ɍ>t=R(Y݉ &cNOUxܫ%7"aXd5QV1m,G}nݼ_û_F0Qϸ 5Nvt<bC I{_EQ`E"*X)O33s*A! (2@LCM . 𧳫P__o*$adNS?9@"췪'CovAE JI PR;HIriXqQ11*A N:~EQDRbG$ƏQ:z΂h#9Jw-kI!-qub{Uɡ)@]"(o$qtyUUUs?M]vM(nj ea:g "uЁkecEiM!bDÈ8'@D`X&H\> !%xH]JRDV6kHS^QN<$rZ4j@'VBG [< BNp9Hfe5 se?W6PPi6" 4Gl) &;{Ng,A\M` .Ig1ӐG3=yMθ16 64:M0FԞYiB;y:#`2@vȃ:H"Fm,r`jWSYHDϳy-'EUPY$$mmH\뼣[i{~񳙻⢌D`&@7h9#|^_c3珧ݍOLTH:d>%E3t=W~.{C<$y<`I^bGO؉^3*Ql8; W3$<#+ +tQDx n%v׿窲yK]f;^Q:`GKOabK}xvY E`$կnc&NghjIi`3Ǻ3b9AQqFtr`GMRYh99 V2&lWp&Y*q2O_:U}|+PuXchCWN~ cTn\y[Q}U3S3obJh))}`gL m<״c8]Zϗj0," $OJlZU}{@t53 L v9kbՇq%Em5t4[LÏ夞_=sքC89rn,QTe$9/]9*`+~t7?it}y_\ĬlT`)&3"ӝ<ϖ6̑( I#xET,-I$ K)1!(5M]VzjƦC0Ʀc+g9q_]qMne渹hcqNHq4`:EtU$ETPL[ýExbO%Y[}TZPB8L8AS2@r.MF*aoD6h̯^9&ܹe in0?u'ړ-w\#P=Sjj&+s3'D usGGX~/eS'MgJP#dhfTU1#J"8}7 s:]/ux|g9q9O3Ppr=cH_5\^ g/^ o8Q'| ŶG%=X+ 7BGY]:S-}Kf$xD#O{};yB=W6Eⱗ?9fsxrS?x|tW7T񔦞F..)w~t GJHP,!/y(-9U9+˦C-z㽯o=m**>#C ?>M˵n1S2#dn BR#C 9[m:q ! m~ưìFԾ&҃ӕeis,rX|ht) MdL2.R .ؼEp-ѓI\8UW,*y &Jgx"B 8xpSFb]pS3 fȗ!(H皃-Blq2(ctD8{w>lEb7 Lεi>X``?;PSqT?%M!1ᶇ&ˠBKТn9Re2La C@^ _V)N=vLTk.w'jϯlYA[}C 00>\T$9~DJRtl[jw pbahZ?&kt@=&('*ZB<4VQɣ#Q wa!ɍ4lA;ve!|Zz?wy9hlZnD$SC*cHBl5@}=Ŵ.%zRk?o_'.1fIn󃣱C| fEerJv|ć}O; 9BpR ^,@*mND@옧vĻIBLfj01\z5 HB( 'RK<čv]m~0'\9Q 2.Unj68jE4{,phXCmJ蜛M O9W 0ۗmIwS~؁ /2 MrG4 ʈU {;ThGi8u'͚3?$O1:`qJ3/.+ zrwoEȝ&mdgzٚKh E3py۴rtJUiZteܒp+H&rNs'dDcOnQPv鲕C&9|%D4܃-U4KE=NhM0>+].`Agō='GDžO?x1m|h 8uE{}).u%ez75tr(XJu3R&zw0=*4nX(z{z+ [X;yNR&947k4 |iLҟ/\'`6sN:X5?wj )F꒦Kҝ3qL2⠲ىL.?U>ɘ*|dQQTe=U知+Ã\d>6šbE̼Ֆw%<*l\\a/]Hzgn2rAy& *ql[(~DзSq3/}5qK4IxTe+Ggؚ™fp&fi%f|8a%ʢ!x?l&$)o9hY-pDq> \,--X}}ui]OmBR=L?ma>77-G*:<1y(ٗd7L&4ژw)HYP㳳b"aC+< [D|l%c[Ħw(̓<}MFNnTe-&zNh}N$͠QP=^ml @((9Q*ՏO:5 Ӝa!g'+(p&x]@sެBѪpJr+4W-nf<j[{͏NypeKQi4d8rn,?Ű͆W?!&ySRy:Ԋ7_{PZ@̇+IS?D.<6) +rUk ~?_מ_jՠ"p{\Z|nS/a}G4 `;Y2~p)sUU6nL@Rɗ'=ټÃЁ}cid+*M~ I-PՎL2rdˡkPU2ʑQy [CM(*Ts*zh28;od.B ] +xUݙZH~˽c8F&L%5EQdo]*U)6dIWY'u//J%[+>n=' kgʛ`,5g69.A҉ʦ'!2c#* I ca Jkyf\WHI Bӻnj8z]5wve+I"pOCnOKro %|/q[>6ɮㆇZ鮳@Pfëݶ= _@= 8}Zm2䜹a)tR}iJ&F6E ƙ{eu1Y5귧?s(KCv  *("2j*b!IN sqBDd]7JPc!IQ'wmQabYAM۬p"ó ܼɴ]gst=WGc/i! \]u\&tL;tx,f#7xA+U:tkrױEJQ*ӧ1Ӛ.A:ⵯQrU0;,䱪8@2rcD4U{Y=ZNK.udO@>6{.fc|oyA. +8f沺Fh++oxR^b%}HzwED .??޲ﱛ%wDj@; #ݸߕ:g| 5eiQDQnz;`̦tD], gb5*Hߠhi?Qbȭ'r(;v$VJu1pfu=)'GQG9sD+Cr*$  TDzQ"F%EdI%[wPwDQ+GYɌ}9'qy1'jY32-gvs?HHʞ*R)Xx*}ilːv\mfZa,D* ŐUX\]fLq\}6JʥlKl[; !g٢ X$)+o nὯI_o1:'c&8 C"Wu)| \NmcM¨nI]Pw~ Ir⍧aDwILEb/%P?lU&!b^WK1Q CxQgnnO/=Ou]D38;و-[0=4ڏ.h$-_r7񦍬EgDΪ9hdn]Z|w5mym.>>y4aϼ-$+zG%¥o!L}G@ț!5Lªo 5@ZCL 2mA߃fá?Jj 7HK~27ALtp^z0I2isa&9)UtO{FbJ*߸cEV+54C*97oļ4% Z5U`? ɵhbdվ0VwVgL")ϙmRh4EM:H dF1wvwja+ luO \Rim2O#TVڲ7qo*($cŖvqR6[EvܻhMP Z;eaWc}ތUAE8B`%ҡoQ ^鼲Q֭+%33봽 m)bNx}~wkЖ󷿣-yn+Z, Mv>E/7f͛"ls0BzyYl00pfH) VDb\VEw;-UiIB1aĖ9Rge7%"?4\R"\eG+tFsl5|R!CB!B͜rֵվOИrj&`†.A4*dp)F{Q+( <Њr&fZhiE3<`aP*9l2*^P1{ kOE;”b*"peDeRZa 6Dpd;3L:LusT{  bZ٣K3,"4[@s2Qq;9<:y :urwgЈ+:/vJ,oB=1?Zkff v*S%ҜtHGϝ+HgTq qa4Ia;]F7MHؙ~SR*8G9) T6` [X?@ZGYL4+f 8C*I]b5>>*1//OWxQW(ěxw2SUkTl M`VbKO:lɗZ99O<7^y 917n2ש5w+yưt5cqD\f<;UrJx='9.oޝg{3hIie0 #!{CC8jpqj :@i[6i+Xpz;ĺE:G5V8[-FiRmڈG>fރ ҡwLCƺWdȮԢT4by 8!᯴_h,.cRI$|e5"&TWz_DfSny3VWXjVMk^ ѵ9؎lۉCEM>?pRY=y]c5 4Ov8%tz/JDVs=3hD?^l<}YT:] iz K=T}aWX*bFmk[C[=]bx"ԉ~\~bz9UT[{|5׺zn5x{OB+G~UΏ6{I-QH|.My1h±/%(O?|MGS/(~X)`JFI@ CA[úk8;T( ӗD`fPSĀ+Deϑ}P@@,l+%<#Y AUVǜrWI i?&FXx%Fd9U*> P8WKEPq!Ds߹9 ZP"=Z M\*UAYz捝{?\CȑǪ+Y;ܟw]dT1(8;૧nMR} ! @ã^ILZ&ax' j4o=z^%sϹjv07<!AUpR6}\I1v{[ W-A]{~oXfpd73DK.C&~%q4 nP31R5G( (meCqc_1^)u$Y2xUEbS/JuTA\'>߷_~<ߤCEǟhNJL,c;^#PeRblk %qx"\#S<䷮>Drgܵ+F8Ƶ6VZ_E T>7x8o16MWVxrkVX%/(x\ݞ"c&z}/ϣ&i?G֨hwptMabtLa5:y9Nkd6Zw{K∪i>ʧOhvX90װ[f컀)-h#S*w*eTP;YT)9v6Vjq[o[+=V }<&"VSn Ӆ3J(  kePHH\S*vwIWhAc|M6x|&bgp}!yיr3^|x`}zfteDg뷧 }'*/.] &/'f `xхӆ Z[#I^g%DFG;8dx7Ѱŝ]@T\.y֗hJ- )rRWE'b;-Yo r'$K$D"H}y2(=TA`q3םZ-rwZ:MasWD5f "0zljaħqM˟F[UO(1ש2{,ʜ3ъP)T*x 1/5ڣvV$ufe\EbW= 2bwQElOim" vDڲ\u<膤1:+3KY#dJB#sy5u%5]MO82E*33=C´;}[}3< B~NE"w ]>1QXfXA=^ {W4JOEh^2H)U3%#&2U#Oy~orwFboSa~yF,Nt}ޜ?qX?VqT$^".q5w^v?A#8x Z=_a0Ty_Gf\) B?"28v϶l!12wwiya6ٞi@ЙQ9gf:\}okK3k:-xSx $041tA ) u6#C>!!\l$ gjj=g]@愤5h@JQc^:=[C8&2%v61甞j; BQ Igwb6⎘`V:f*+k1oxحbbBpjj [K4홧~!n}ێ߭vI/{ ʍl7dݙθV"HQad0ǽZ$j'rH "G)2(ł'[*8H5bYbȭD9iiao]}B=g2YL;!+i>'Qx+ޞt?x7Z4ĺP ?o /iFL̜WmT6D&gor!e֍~ɒ¹v.,Qڒ"rbH&!h59rQEr]_fmJm-RGi ziΎ?O{.Ye{ݔ~E1]iuCZc ծ DE3S@v/%Z|P66 TQ{^nHfj)TABLCT OC4]_O^YwQ&fBW5XHܬ+*0&.q, EڜPZQhK>ÛV; J"αC)br U¢#¨jZhɱ*g"昅(shbܑ)x!=4ճT(Ɔ>S]5]81UsBZ΋ռjo9-?b#&^,/–^^n*|SV`#ٸ?:x(lyL;c0??6g@S'I?Y_b B~veUAsWL()@FK݉Hw#7dGzڸ_4Ss醔y3[;.woG)KU!͙3U[k[c\IN@@)UPN 'M>Or{]{G gȆo񯥛 -{%.SpGAs8UZZ#yJ\Wُ|zp'ۋ{?n=b|LFJu_XhjZ,aa6c]tBjjj/mB=o{m[,ҿӜߵC&xQX=U-IO2:|Dj?7֚}mUӊ觑ɨ_Df8yO#i>v! 9"S!X{bX2μ}AH='4R9F)T3iGֆ`$4k怖Z.e̱}3OY a$')DAuJvhPTBt+u n1'(^50~zZU+"ږ\u7nD3ϳ X#7Q5r>rBXL{^W,G4 XuƜ|zC 9OD89f7xjQމG\>W4AΏӞ8&L;&.E؁|~jb V|8 ;qwNݞ3qW10EeyF \ ;c= PWo6(RͤrA]p:c(G/IO?T_ ߯PAKDB&vwD:߹/c: g3 VyOcL."V5:oChWqAƟa"{J'2283#vFneޮmwqKg~q/2[4ث,01'le,T5:$l/A(=t7O,(\ £CfiDb$vqGH K?QvEgAVGH#GĎsC2G؆(m:Fm}v_̬+#M\b )X Wԣ 7_tM6 wԚt0jE%|j^EuB~ 6y,ZrYq ԜϟdkT-BJg|bd{ =ʢʕ'Z~>Nˇ/o멫\gboDy?# U쪓4W2AI&gHwAʋz*j.~=~D/Ec& %fז6/!|2zUDvWz_j[Ga8}xZ[qw:wY`v" ylP>_ȀTۦ)ECUD^Q㘟 E T]۫fģخ%t!h 8RwU${)v. q'ltצmDj ~Y*f]} O7P_srচi((h2+r 1cM4Mw,QiӮn]ٍ)2 *WSÑZT5Y*9Vk+܄7PNXSMmEnScu6SPc7XeWzTis]F9g+%v!*-vRQFJ-w1>&wJ9hK&sѴW}:T* !IE?eQj/*"s% DQ?7|eSp㟄Mz$KNY[md٦mեo(%"V-Ow3EoY~BX1,6?/1&Ffaj}dDdWdr]"Ev?&]n0EVػ>KۂMҔm_NgT@Dw T$`\۹ψ㊒ݲx䰗%<OV<('ysǓKmd:- Qz6Uq.DSoh5aY>YRoe+RL^$*ք$to2S4IMPB\PC'Fw~"8_`_w]zuێ'өvKOU~ ,Vb8whkhjVs#ݬ_ݟgFQEaV܊F9>-.9c_QY̶ɣӰ!7TTHΨrËI¥؞ԫW,jʊfKNweΓSۯ(4ǧ_;U^/n\ ̜mm ˵Guު]{MuyL7J}ԗQ@EKO^&v6nui)Ӡde :ǀEf3rMEnK*3: !!>?Q̹a6O![nZYģ#ln9%p7_Άp(eqa _Mo_Ġa5T[xcrUeg[ ZoP5J9=vof$,t޸o׮r` U5.Ҿ~0χ b X܍#Zq.z/k17k5\ɧl˓v?N_zM4JILfx<>>I>3:Od_P<`" ƉX??2ʫIrUe_S\yE9>vaGZ)k۴Lڴ\1O-bpc^5:ZJy(&T'\6ScJ(2^I.b .Mw{RD[qT%TʉkY৵eE"!|J*fytXgpu|||wՃޯKU츊,& 7ڸd62|~kH˹\O-: ׷S KPw}BuuVu \-vaץKD#9 sbDl)2:=M()gH4t_da$ k{dh|]˦֪J(q(%L)Dai;{{_MOLi&M3zFj1PRWA S6-xl1mplkTEpr,1QcƑF3dYپeqIzy#ϷFX=voy' u,wucMM|Z[Zj'9hJl' PlӦ[\o"$K m'j{G$}I94_:_(qWX=cž,EDg~a`PP3CEtAtj}2o3kY$7hƒMn+/nc){/č5=ӧSW_׃*e!.U8ͩ^vハViSL)JR\WMljYR)oEEM rFu2R39ꔑ c5/x0]&5(׌e *dMZVUzVYf"I2D ]=`y(`͋]WVrg(ynˆ9RH+)lb'$jEkV[7mW- J%4)Ш{T ϸFk ͪ(Z%:;:úl^S3KٷI{^*{vjVcw+pqy)j\SWWvPT~F)zUו$|҆cUuRsm$e,z>7']>Kk(TQf[SNK(KVVbo1֣CUW#vU (w}wzq ]珈@5|Uꗜ>?xڙFUmt V| ˵N6:(Tdugaϵm1hBUUttIl?eL,qd.mEM )S$( -5&fzqSإf@Ȏb279kI5xQ >81G-~J鹮()(b^|^IM 'Pƈ(g8ޫo? sGVC;j{3^tS+fV9ڊ6B;U5th.κѮuF>^t]zpskD>k9|JbqSUFM{&1i:PeQ#-eއ:"klxBYLJ!&KmQ/bcR7Tq\Gۂ+sˌ* : |eS٪! TpFp\Y|yO{Ϡm2 alϿ Rhӟ7073Ps`X(5Y7X汫 ֲI)R}tUnzi+MG w#YO˳{ᑴBsL5raʅkG:WQᴽFnaKFVWʪMcn1eQL2IM2F2YKyED?57` X7!4BmkWM̐?5N;3hm n*@ ""Wvj f6>;IdqSdߠOfԫ 3**֦2y}<[;-W.*qiUR.o{;F4#cb4D^(4Ti@afE)IYQ! q^ɷ v񪪪SQUUQUUUQb߳e25Q7E4 B&qRS66TBe~҂6RlT}"X3C*Ñ{ W7! l8ٌP}H>Sޒ*Zє˃nX.GS uRo6 Lw8{h [ƆSgVΉO4 :ttGwX Bd"R2U:!Ff%ƞ9i#zr4c t^fiZ!@`i, U Kv{kӥci#QTЫ|$6q|sGM.HǀFVP / @ ܵ7"%Hx(~}$\C[4HC4E!&wʟ7^4;hY2 7Z4X>z-Tf5$ -aX晈Nb3A "Meމ Gh/g\d˷M4/q)#ƌp XƟWq' e!@ۧro}IA#?DR/,hY&UQ1uH)P lRc0lK`IuGUMs;RU|B:S%gsZnY]r<@ &۱E |\ddG Usx}"' Aˆk6Zgo5yV7LxmuEh375 TU*B`%b nJs #9FD'(.8YlΉđe€9φ1f,Q)!ZJ %hLG3!UVch 7aR0̐^ A&NPg?}ܱ+BJ7w3cD0O,)"x[=m`uJW<>Vr%B 4XLp>b Ahz-1 }FByo1h1.كs'qHXuaJ *%!}Y@&nׂÅ\sp] "e: mEM hcQnږ-X1cQ5X\C bbU_IרzASJ!(pq4nHyM 4/uuÈ m0K:e- \<o*9 =8!0"p!6@a 3{w/a ydlkeVU;@k`_ `qn/‡hbh3Qlaka+O>Z28} C &WZ3whT[ր=8Qt42" @otf(jBLd:AU:*2TKOwsՀi P1q}4c$ZB4_+CP( R `A(`L@wp=ʽ=K 1ABq+ր8zO.^PaG!t1i=tzq0>P[tR+^: t`$" #PFj@tHn1[xHs! ]ʇl Ŷfb Ǒ1[9reB\ga!LBش#I;>osҝ];J! @ 1W3JdSq eŇ" +b;KF;̹raf͎^|HwwsƳ">` ǚP =_JF2R3AꦡMK?ݗmfdClt3пV~aCq[aޓsl0P138CỳU42ɹ4vZΠ_*p I2UUUUUUUUW0!\$ l S NxN`(X o(6 sDpC zY$BqhHf ^ ,fo$`:_G;9u@[8%KhvP#Νzrq5 G~I\@ deQJ8K剤>EӞ%3Ҟl) .X}$M~,3 9YU CTWypU #T\{ZvMFSPny,"f$<zoHA)!YO {=Qa1Idmt7/Ȱ7+a1B{ $h,D h:vEf-9 Vu11ۛJ*XI#"KXԼr5 `DhA/a Mkm`#xd{ AhQ,KhiwqQ:xE@vC4 @C9D-2[,,p+a)5Q { g6SH y*2>]kAESsMD{UY !PhB`v[5%l[˶ 1$axu53m3Bh'YhfhyR (/!.+ 3d]ț幻æ´a"O؇*0Æ. Śh8M ]q]+?ftmzp L {oX]]]Db7ixэZ|EnyCBzfWg F~tc߿@CuYho^c#SS9B rz%M< 3[ԾtNrҘd6Ջ3d{-v^3DlΛ8/}ܦqC/7Β8nk=79<n:3x^rC7VxxρM"D-⺌i^KhsCz70|NrM3P'a0ugXА5< EQEQap1 t!+3B"VBΕ^usSG*fX*lhHgn6žS6(_5 |fVZqyX=CmכK@ Eh$C $ ʱy(dhxtDc@ןT_oT&{rz&NpC d¢H< hyAHa>gP8!|% 2McƄnc&6d&T R361fl{˾k%f/f%V?2G`ZHyH2vKHF| u/rH"hu&F=hPw@u E%GX(t{sM]h.12Fd{Ўm&4W[K0&9=:*-Y,9eA1@usb ëx\"h`sjb_(l!R %/Lhj2"CD!~ ~\gӲ(S,)n$Ҫ  %8b5z'`݄S 1Z{sͱ1<=lt` DMUBwkVNr"PV6˄c2\0Lb4, mX<2"Ijm)U%ºNW Рf7,`FP` d]֝GA"Ȉ44=l >^\pW=Pq/,P aJSM;IYǤnQ2ǙrojRvfp9E#-eK;j[\G1/LcCJP%HIKxc0`QH6HpxͬV"kZC4 x:ĖfF5PP\8eoU'c 4U3 ɭL;Oqm-9bdn ̙h No}i0^/"H4iRl%5E#Bm=5>+C<,?L!Q_|=FE<$ye(\($v̾eeVU"bƟ̗6p* y9J)eH [[ĠV[)_h4_,{G;ԧB w? {p ^tZO[ݘtD}(sF&fffj("#i_iߺzvwdc)!AFI {/ruV hׄf$(ZP~, b'4@=UNn뺆dAlXHF;^#0A&Cp  3&IBpsG P+} iOkHaP,>ꪪ=MkQ3/ ʥIìAIHh~@  נ22 7Ox,2P$,ZN]-\ e~pV/2>pUeyua*4-hE*.g&Nmb-r< IH7}@w'~ ;I1NP )0w$7Th  <8P gˎVR˓0<-dU>alM,“c?j8Ρ\ch4ݢ?d@ pk]1\ / k9k44%> FB& &j>xͺ akYjikfoLNMjЖL, 0+%h c/ ;꒞ub.Y34Bix?-"(z:&t_ CMRaW)&IKô5hGXJ@k w0D̼xPX h^65Мܭ ʹ hyY[CG4"P@JP lM8 ᵠҭ:>&qq$WE(FDG% oe2Hn=|2Ã,{r"Ĩ&=^ -9'Q_d4QP_=9;N`a ͐tC(oz `7JCe htGJuaq#!P7,GUF3D84*Fm1 Z);B0 உ\`H!`)#0կ>AqER :vGwr1&&X"h\b0łMAUU Ɨq b\ʁzv0\CK3a;'IHÌ]aĆRN4b"K:f2[FA4b#HiPM0eJj!|2,L\ |Q>RB>=STÇ &u} zI|a$n: ofjM`T6Jp4 Є=`5h=e<&!(I4 SiTl6{`aDznPM._YQ^rx><>tx:;$h@xB$8 B8Fڸ!Co@K@aP;"2153DJDr%S[ט>ȟ\KofвֱxJPuhg$ :%y @tax#S6> kd:D()TBh^e*ir?~7rN ]DĐ${4 ,y&PA n+B Xntu@*A/aUԪ[ iʭff'ZB)J#+4 24@Bh#"B (^`?4FN9NAq N*Fjil>ocBHHߜ1&0*2 } m$ BZ P$Ïsze(BP.s{jmoz>0{oGBej_g -3LZ @ V'ZpgFꞡ=6Q4 NH)PwZhHb+xE$@M@0A ,F|^YPH҉JK0!#;`! c+ߠc-;ph.k99dnH p1:&QB!cy۰2y[ݱ l ^6U3D7Xw_A ! "X8sw h! TD7sY P4זf|tWˀ=Krt1|nlO5ܑ &v0tu>JpH.I xL 4gTk gX?qR)>x"" b`HA BoWCa}DBnA% "# F7}Z~l^ |V\S$(>XFqVܘ0R r΄An1,Dvp 3 L!~2fxL1=f)!Ӆ;/|G֓Nm#H!^AAڣ,x5FϼF_UQJjf}_րdEMc(@$ua,7SlQ{R6mp4leH% r;; Pv`MNOx4Cfs.Z !{Ht0K"p]K_;z7 r+0ONcJgť XQ2c=]&DЫSlԃQvO `̐m‡4$գdib,od!_A5nqNx`$4*=Wt|/FbNXnOu&P5]nվ(ȯV=*ع{fhu`C΂/0/q2/0P9àKi#>n>v7%HO>BOb  ;)9Hyw,0/5CЫj#>t#eZ l~po'fSV[\vA[@F6wuLq<:J6G1xQ=y(6Sa"CQl>ɜd;Ƃh hQ~QC)غV+⌞l<^@pæ1 &V&2D8tC45rK'Xu( zB"1?1 =Ҡ{)PdDx1Xk39>yuAP-!#<=b-F[ZĴH?I.yiK>HڭK[ӣֈ`).0emKlDNl vK7k:c,V sCny:`Fh"ep]r$4\1CD*iU"kqaqn~D)hXBHr*}!KBF}j/B dQ뿼h-(j O%XADp3yzAiۼ:=.Y߀s06bI,&wA$YO3T,ǼYΫ=FvHd9^t ;(HxP[g80YJ]l!};eBXt*DSΞ6Q1dRҎą ۉdD`|WB.bD<4SMGWpc1!1AB(Q7P]!&&") .c\ L(_mѺ綾/`Zc A pFs`w;$yоa' P]At:J.S81IZ %Nج20K.\?_ϥG|lp0DJy2%p80,kioCE3ZmЅuSkb~_w Ϡ!>K`N &zR b u؃ېH4 l驹倿+@ojE@ I imv1XgkR 6P !l,3<ʄB餢L _H{q-~9A"E<#L@ q{}_mIYOazFq5VXY)44 RhULJ c]>F lE*Jʹ LH_2裳~ iafqw2t-88b 鸿&v UIEa"<։H(IJP!pI8J!? "!BXO 0J)* > {Jsn| M4qn:$%lҡ lL܀#aٍ&$kjގGs䋠֒ٛ3 'E ~vhc< LqyFW`=vC$܂k՜X-Zh˹`[XXهHS@ n;͒eatc/ԑl]J!{(T!8 yǧal a!]vYCIm\4 jM4<7R$;#J Q4# Qs=4f\F,TJ(T :` 汄CvxN\5Y3S7@V܆mܑ yh#KܷX3R]JG ? ou6{Htx;j:M Aآ &nf+?Hsi"c=Z(AM!V΍^ ,|ߧ\mg⭘/nvp#ꡞdL"wZ&U1u˱⛶!^tDV-d(' 48[ Ьu?Tʪ ,9|v36ܙG-z 4:p`s+դh*<=D]NQ hI9ƀr2 1e U0+ ^CѡO[*ABJE*DӧwXE}BDq,R&8Jm( ~#&S&f@Bhj%رQI9. CQ1bвvwu=C@( 9oBnu=:a,o8ҿ(808!#Y6.ǝ0[)Gv;:"u1 CcoTھ5=BXB*[p` TI 5%gZ1b1hţiBFàbŋdGG[ `K95ټ9@&6-&ꣲD1@]c&D·Qnz!c 0LPQD"""&`6Ő0veqEYAS,-:ӲQ:<꫕RyQ]0|PgUqhbLf2QqtT>-׺NE" 2BA>뾚D-; B9A@|RެwG>C>ۻTѪr@A"LUgec'#$AuiG CAY6L /Џɼ& H=d@2k-8>E*.4*-&4kP/ ~! P3CEPcކ> fhnc6jIhALQ)J(g (4Gv`6Je 4i@o0guzi9 tKQqEm9zNUx3=jl3=E:+_[AGeqϫޜmHߩITpЬj# tIh) ~l y]l@7rE   EcSP7 0hT / $sJo;zUI- J6ْܼ:OxhғY~hĚzhb33=qiᑐllIc)-2" GQ~Q* ]$0m{d\Pn0u LӖ!E!B[َڮvy{ٯjȄ{ӅLZ(7Աk6cU@yoM@1=`׬?3 9q$Z=t_HJ.5+s݋eW{q[e$MD σ(Aք R_d OqgMhB;Ep޾f/vLc✄ AAC !D6, `Dd'@`Ɨ 㲻\yio˧uU<|,\=} o(XC @'`nE5"5aրz(.h=TU9*!Z&D11 "s'ЁAle)[Ky eZ.ѽM9bZ U>| lxImt2e-K{y0qҷZIJ kbALL9ڜW3P'fɾ0ET& &0 \ SvbA-z~z7ÿ`@?\d$mcرđ@@=$7tpC]5( Hak@Eힳ:PnCuȰBu\z&_y0914o?!fCŜo ?c uh1c Gpa1 d7Y*5 _R &y:b0)sfR scmu1mMw5Bqd:'4:–3n 6ѝc0Z2S!8s .!e3r:Hucl`fKm@p_C|9zpv fNψ jD$ȗEyPbIq5%fMO3FBD=E 0cm Q)rM  "ruEPЊB#+& T=Cd^ -SiVynVj'GBX.|-W*x;лO'"]ixyOg^7}P[gg^Fg[r^x蹥 ,`F_1u9%Tmvb$ouu5 0İH(^8%\Ӭ4Kkn&cTO)CWAv/LO9mSޖjVxLd@a)ZK 0ZjZD/k*E i-!Ce<)΅pxT7GMCЇQкPEBt/ {&&_lsϳ 2J?i y8>hpl ߙ%δrxgg 3Ǖc@_ ~1 ׯ9diNꃱ1"lRUIKpc:c@!L{H;$PawD3c8J (1vȽHyg&}̨ؐXL_;gT{xJcܾЗ\o3pLzZnAQzD9PDۛiKg"6qBU VdtK!ѣ׋D Л`^V DQjf閞> Aq7$̊5;}Se$8yjlW5˱4"* DDE&" ѓDEQTDD(71"O(b 4`c|b@)63W \W2R 5` Gcx ٶ0 j=6Z!,=ܘ>_9ц@Q4(TB,5MU4J9r})q%zINv {4 @`xHnf97q@&#JGtУаkbF؜\hlI6I GS!ځr>*Pkȃ|$ <HLS]O ]껁4-P 2i5nHv3ɹN̋5h#¤cSmEkdR1DewkPj!/o@遗7'os@s2*ÜD:J=wO9DFG.-UReСp &;$_&$Nj.F.R漣0F0hLRR0ьPP%ymrxo%Ӱ.fܫ`C8Dm`$;dc׌+});;L9H|i(,rzpRu2PK2>LfJ}e羊Jl"f `'] gғe1-rw[:ѳgdۍ%DD* c8zwfK Ixmfw7Υi:1 ?{ /C}FP=CL .C[PF!Bv9!j#&g: K͜!Hޤx}xt 6#JvmQMg xΚW=fŏP{ݘ]uŶiAUA]yɹөߐ"WQ10]<h!P& ^@ Xvleoy/diXr^qI,~ núFQ۱r8Rz<;}q/[&GBBxOrM!@*ILC36zb-x)f`N6z8FfuO]5vLwI-5pd+Lg"8Xp8< dYx+C0B qߘ! 4XVnlT $ L cv.,LPh9qXDR\(1DL%Ǖ]Nm (UTb ǀ0~Y_‹Ey?*=UT#P9ȇ4#$H6XTzlt`C]"yaq&y2Ra5FF初A))[*X@1Pe!RP63иl<}b ;sI&{;c AK]_Y"X=``,fc&V7dLݴ˳5؄.A%)׮spBZo1\CD8z;Pd:1;ٓK]f,IzQX)PnڮaP@HybB0gnIFp*@ߩyc\qĉVn1H1Dq3&L)"yCp@ ܀7cfB&YIVw1Xo㿥4u3սǗAl0.9c}IFne9fQs P5;lç6NpNES8qJ:^,O>n÷pho]6Q Vܢiq0f&As yf89:ngI#8rsCL#jHT~Ϙaf6g(Hgf $v婳kv/R0yfGTs۾hiw"Ȏ5PDLή-& sFM{ Oૠ,$AiHWHP$B:AH 3rvvw=y;J!'Y44PgʅBȍ2V|ĴҾK2H=HqB'>!)N3 A+L**o7ycyj쨉 eHJ H#ڈ"攥  ‘GǷge„#=h:|`@LqZ,a̹s!6 2l͠_`Ry 9x`2͆R*Gb#{RdOEH(0Cͯ䂧?/J|\qq}XnNQ\2C>4'pRWԄDcQ&xT2А VX@@3Q J$<;ܽsN2&4u9][m(C=H z"=:{$hrߵ16 3JO=2Vf.v閍&nq. f-Fm ^#ٴirɂ.K4Ǿ"@=4cj䖱b5j#:AAF:{Y1$MqZ@AƉ` .Zk/5_(H 03-qS`H/x c.,U,v-L``@az g@̞P{hnr z]ĵ`}ґ &\>‰((D!97q oc ` A[~I鏙x)xH&ˤ Q;P[K)|c)J|8G(SU|>af+gk;v} ;D_^3} 2%sw?)/WΝpNiES4q~*HKV:[͹D@=DUe!]͏K/^H/| A.IZNP tĐ%Pa 6wDЄt PL)ѐǦ.{8l-)H!b8YiZtpr*bAv-MV *3IX({*E2%8 ~2 ])jDZM u)!/;iMǧ,cc!9Ք*3|DY&l&$` m Ykm0AfGYġQ".@(s}ꇃ'`%P`݁E@f6%QD8-^^PA4Ac{K f@l$;Y'BQX $&S6DӖ >O~E7㠊As1ȩɒo}IK'Y'Kf **&Q\<5L̚@99{gx:3ϺqkeoѓE9qTEGgH{Ο*󇛓+:Oe+!7]ߊȞWS&3\dzb.:@ ^du2-,_J%(7A&4PэE[b/OdtP_1]"3gG7]}i;Dֆ}a8nZdC$'vB*?1W 0A;pK]p#p TБG[Aa_,j`0GKqPob~饱oB~~aj^a AU┤!-l|?]k^K׃=uz)\_U%ڈG_c-c{P=OW>d}oZ'y xN*H3[Y w#E%'|FU9GwE߭Kΰyw5pקli|uk)|?s~yarOtLӯ˺1.cߒ RFh蜩c:T2<ѽ%(W*Wmt z Z N~BRbUX w(<+'hv#44r ~~.*SOMOW_SlPӯu%_7?zo%(-Vo0F @`8v᪫OmqhqeKMu5DD9 Nw9h-&Q!eҴ8s~Ԁ萌E@$XuNHtVAi!?z!$UR:3DT2.h s֨IJ*#W71 vw6`́p #nGŽkdrˉna4˝Kۖ~bwyTEUUy]xկ, ѠjMf̚A}6h1Z\ *Utv^&GM/id -3f*M#M_RBlRa}8녋bRH _yx[mh𰢊(:(`a84AUj~`f|ɥUnZ//\rzs^Z2g>op2mJuN v=dz>r154d|7ga|F4p ё4s fٖT G-bId.9y*%B) : f!;d1Of]FšQ0iٟ3I:'{;D]!rpV8oN&L2|`3ƌ_Q~g)dwi.i'j"wfqۻpy#ZW4ͷC5qQ3TG=-Ϸ/#lhnTƼC"=d>$ղpRUS5reȤ s;w<q6&ځB {u IpvaQGK=iy0jg\X qFjsz^=RJ4]xN@ש c6ޚ@ZCS6薖3SR.3rKLަ G4m2 ^ >+SøL Q졂8+hDA1A+NjTvSG3ny+b7j\91#B:Hz\Fffa$v W g"Y 5BC'xʡ<֚Tcr`NlGqGQ*Ql2/<-3lZav[7tȂDVCTMkD`,`bUZ mvy ]Dj0 رTb'7K*[o5][~q:v7z{?Ƽzr {sIu g>JuYfNe.Sk+jʕ5yXɞᢞ8늷eYvLPI=sD%&leOXGVS|lM\e54\tߟ}>)JiV9"4B=|q /)Hreʪ֫bd說km3333-!$> y3ӧ%UӕMcj2A=*~7-wXb2 $+۟a3IョN2X3Ǔ~q/gBvkF9׮.~'jn7>Vtuyt];K謺\B2wH0 0K pB  mp'`Y8,? G4Ҭ20 n@2!9|fd$qh )}0>18ȉ!Ud$lj hI ~D.6fHdBȴgإ\v~tnHIyyA}z_UUU[ I}W럁[>K%_&{ e! !@m}>'n9 - m m z\YAYYQ/4<02pzMGA'z9Uz)_3]2,CҼMf:ehmGi!!|בA67\ms sMJjL+5!ĬPHSfmhl3Qedt"& ZXm!zWD{F0e"X$(-H>Ugݵ ^QPsk8z5(ac/Y*Izd Pt{̭N N7?$-5f[R9#CYB*$C4{L61tk:vđ{~^J*ifőry)& k߀,v3Q/_N[w*/X %b)=C ?>OJbIe_غ 4,SC0u~^[_n-CpB% `R$KcpXG"$ 0 RR#E-4(ҴAL%?ճ\ EbdMQ^9a/.Du2" c%By &kf*{C3.% FHtyWLVF?m؏tX‚" (ĩ7 QuJEbo֋pEQοBnfmf  tQMQDQEQBiT(((ؙģ|Q 8BbˍS1*  XQS8`UY0sǟzxLA9"n4.A+БBtus.bF3\IM!@lxvTJƹm:4h ( "h`H6#`%P4M屼/h{0Dx=FgCc !"0zS:f#QNQh;[X(jD(S30(cjͲ6̄|_rKEr^F.P'gJh]bz&s994 4X(2@ dӬ io y#[TK#)wj |&bf{D]ԥxn$m N^P";mN?yDƣV3 fZP2$""E5aЕq9cmĜfX#{eu(aY}h$6c2P9۷2dyUZ:(NS`{3-F KNA{1.C.ZNӅ^}An$s+Vǎu\X3ӧ1 *-@bF-svq"VLPM6v7'{wGk[+# 2R10%YRIk%)[1:԰ޠǯIDG:|7~!^EXȡx9"sMŗʄ;Q9B XQ\Rh*P oEFrh^?k} aB{} ^P(:dlu_qo3 w9zePY}IaZO>t x4k7pu\\:D!_;[mhwBMfj5?B;A9y*p!YZZjUUw~gfxʒӡ!SS.J_s bL Qꐻ\vd)M|֟L(܌Z³xׁkG38$gzcfV49f{?xh""" vwÒCmzO'^otus(qQAEpfn^+xDTs-:!2#"a=~Q*p7ˬp-XMn[P[ԑ&{ܲ|H׿fdK'*4yCfAz$t]oelXunZ}]I]}{by Rx6r<3)_a-n 95ja~X3~ ,=Dlr $ӎ!ꋫλ4DGm$!RDlL׌(ge7)9QboT=|igKGsx<ѭBvk`ܻقm~M^[ ADD2 σ?2y쵹9\' lSJ*P=4myhِآB!an]:O Dy{ kZT%A` y]gY=7zWf+<^|҆Ϋ~ -4L 5҇Q}[Ǣ5Cyf!+J1Z{ɍ?v-0ԙ^=k|1OYtV9VMffvP8 ~vmfGUi)=r8uEQ&|,dVv^:a܂쁤J@y)Ǿ"UųHJlAV:#o:6m==[+M$qjo , h\($i[˜Ċ#lE,^g@U>%;W# z̒Nz]%u2L" tcÔfue9ulkd,oȮ*V3>I#~)G =0\eety uȔfSdh0{<޿v ?٣8sQ @s:2[hS?֚*op1$)ҩTԾ]z{zOf؜>\?">Ruײ*g3G\!GW&)cc }(b$p  哌.aq@i<~qJ/3;ne*/ +a,Du*Z2kDQp#dZi; hЛ}XT {5 Y?`'h27 ^L%:u=#fqCp0i*.kp:;t`Fq8r>WR|a?jj4C(]y A/H}Qxy]:B&<aRe&quSXU)J>Q[kV)$ϥ%S$R8\S$>D7@x 'Ӂ;vnG̓G "a F p{g<ێB:".m="Hq? 'G*('2'H@5$`QYi4*@&!6Z5u E.hOX4%xb^$"uR)|q\{j #5fٯde v!LE,RmN]5Hl(dtƑ(RN!{s{՘zMu|ΰ0Pl^R6 @ F@ .ԴAmKQ[f'O!OD. a=`Dj2HAF(5m?==^ lؕ:@ HsƓ/pp b%fX%+L݉aRyP92IdF.*n "PO9B|m/E܉`}+Į ݪ}P"9씂<"Ҽf{ؐ=E%qCY i~ xN "fC>$:NQ " FP !)C?u| Z"- bah+IqtE2; L zv go5*F0A 59w=Hm;k4AgJ@f\V} j{Ids o&Ȅ0T*b]gyRHJ!*_ΉGd%6LS$Q& ca f)}иXϊYPE^CE27^t˅gYanA6PAaTs N,+0>n!:B,N唲ӏ@PD . ONGIy,aMY<^p_@vB T ŕ Dl#SA.84g~ME{ !;4~\  4nz#`'P? ?a 1/d ݧ巙/< |HD)F ,L@eSy W:G%&31lyi''@9fHpNR 5 T<CW#w$tw*+Z*? C0쭿'UUUUD.GNT:ޠFdAݸJN͒bH$@]e-.Nw5bݪ'>d2D" 8b~tP`1k3 (1sh0Ƞ3qMHƙL$20zd|#I41 rC"Qn2r$ X2 9@'f{' 2 HjP[L0}+D;PDs /i9z"y'\d(daB-^\ 7cUnX,aL]ihFe_7s1j/7SY03^Hen1\gEb&8b tΊ 8u:;:3̕rZS[!MPDIzU k\NL3 `DD- DTORGS֞A1t `kj†S13m8g{a7w Ι p\}RA ޖ)Z]V] fF^"N0 7EvyQ&l;z v_g.^$c_'?K9::Űۜki֒oDi"-z|~b*Ш4큫Y`bHujclmrJ]~^B 8lg'/`ʫVQJtJ}^#Agr  `47t2!/_^b@ 6:L/b|$hM_Sqz]@I%ꟁ;Goγ7V~6mek<Ҏ 5Du,;=${/-FV'XrX[}@yH^{5$k~؁3Bovc>%$7 ~J~4q7D$~`>U=0T@DP^> nP2'>İte$T;{ʊ[Ǒ Ƕ$,W*9=aSi &xpa`PP I^PBeiĸP2/=5Hzq'ύ9P<?w=>~ad/õ`𤏗yH}//$y aQܲ(\&7Q:9_J1E E ((@,T?O%C7A;9葈)7n-N Hu$΋U1/1SUvCvX#>r;-(B ؿ*o6F*ͫ`/%m=~cz?sx|zCugM/hXvTX_LL%D]9ZQf_TTim`4:%ѹ]j&1fd#MG|{hM¼?C:JyF2W/ppe &\ȋ#$Ow\C5/%>A]#Ҳv؃ Acp8cqHr%($  ꂁ-{m[Տ&_*yOЁܿ3L)2D`l^fcC^N9(AOQ`qKWi𧦮>uh"ܛ#vUӽ89+~[|*ֆI|5QzږPF놽^pi6o- e٩Jao":'=BG"ZLNhEYh*Z"is{tr#0բ:/bmv9:~" |~,ăE;sLY' jqCv ;q0I {O͟&X-uM2C|X)kO@{@bP@ӾF!3o3 *\ނ0QdR1!/9n"N7R nrз9!\SH􁢪*H URUV`-Epwj4PP7 v$"@N8ZE= $e0Lgtbr>}um<y9ή흳v;glUmTUUQTDG-Ĩ&@DbX;Aae#:-'Ah>A2Z``F1X's*C)U0S^儙$aM+~8bՐr>YrW\!! F$.\$S.ޜSPߞUlh",0Z&vuI`D68jM&VBf IW&F lm!Ac% A@y6 cm~ʴˢ1(<$FH;<3]{W__}u0z<B!'CѻKM;BYl$Uꕠ9n7PACĒ4UIA#\ÿ>d }H5!и?w gu wDk-+` _9˜#:RP+E tp:ݬcj uk.;aTKh>-`0&I4vA9zHI$$PjߑaD! i &P.LG?^W"E)Jbdt %eKT芍lO[u,p ۉzad(:DJ1% CA U,R2R% LD ϓ%K;JL cPe6_ߥcʮN`lDQE P! bD`;. `(MO~]zQ&csUT:dCh (;_"9C7+9{[yUx?YA>a?}-h{"*lI$ 辱*C ?95m-%.km{P#GFQ: (6u]aǓ^O.p;c"2(RpEC;cy'!;୉oγז g݀8AoMo,˳TwPD @ `<"Jl;r0MxLn"33z9By!f Zsd"Ĉ h!)ؠ-,DAAAGQZd?0$K Oq1uEU誀N lF=#A-E1S K}cӮb '4&8ě <ض_.y*)֟==DO\U ::=%010E+Qauy<x,#,Fwe]zūNTIm}@OVĽrIiG +9Nˎ e J̤\9ja3y(Vi)6Rn <Uo;-HRPs,|lBS@b/i z3<Jh-֋itC"h"jvdT ~~; Tw1O:dd$6˿)g$ܣ|4& $ D*($ 9itvkEUueQF5EUTQpc01 vЉ>ٓ 7ud6gmy1ЄJ6i;_ڔ4LbA6°ɐEŸj޸ÿDqg1>uʠl#Bٖ=W}7궫Q2h[Ȅ2Sq'u@?&(6RNi#>olQ,%/JhiB0UP>!^%p%52Y30cAȸi@{2&?Lo"648q^ɳ0skGJ>ҒBOò(EU0]c ilX;0J:n58Ɯh!{E) $;r=0aTnc:f`Y[*eLoO{c.V31VF!nZlHhah]bǦ[I-44L[1T̴Ңŀ0F5S'ޗz^IZ^8kM[ " {.&<.Px;B@ 2:1]?S*\ xY:I0pobUDx`ܕn)*0&1p#X+,BiX[oK|2 Fm]鋭۸OY@RRD&6ձcZ"L"r9!b>l_9ީZi Z^SCY80eQ6d4 Ѥ pAl`C21(K-BFATI]f.QCDH V#KFx@b9ի 3s&ܘ̯2dq+gmb0>)4)e5\"1{[᪐@e/o7=0TTAQ&vCxTNHE+J<)C04= Oa>vR a4s4,=$2hZ&AW?28KfΞ0ߎB,(eɢH>GDB7dqglvROW2?q#7ts&0+#ֈd8bg-dE] ]<#m|x-Or|=l86EO @)T@w p,A]8H[BI);Q,2>1o5f s-w̖腐3lj3'Z3OơW L>0DjV&k0ZaS1 .iأ1繉U ^t#$`(I|7.h*]`>Ak9,">o.,2z};*r( ӬM^Q;[NI%LZox!tgd̉@UQf $3jڿ// &7c.9p/.stRZ}Zq6 άK_!RKxisƗvg0+)Q7gz= iUۋϲgq9v U@a@ 2eS3+9Φ )#`_@gx9f1&/eoS hsa!]B"6D>Jpee~W"tlN@Xi7;lr4q4%A@o`UWV"8 ՔM%ͬvh?30>jjJc>ڛErTj-PDR bTT"P`)fFOUB{ +Pb9 &"$9.f(5տ =X>"TCP q^:OB!2n#!1ߓ *w<_d*j8R:c7)aj섥4C2;hъObb  h* l%tV&lR*՚cn2+ >7-? A@4T 9BApD T BK$ @)BC 2"@**B(A@A,BĐ@5"@ PDDDDDEQD$ID $@GE"@"BHJ"X!W^"т"tHh*=ȡ3oMIʻ0Є,9DE5Hwu < IJI~);}mjpF T&^wOrd[ⴽ{*$42;1FpeDyY2r4M1Gd6]0]%Ă <נU 5;V#^q`@:z "$ &bӚ~)a BpdB$O#[! D>(l KD33 GTou^4]OsyMgߵ_q&beee[0m ,ih\NFL>}2No{9Lc5| /(B93@=46@ Z#cBx9u ~o^?g_<!$ I*QU}y)Hs 4QIRPK*)D$(L$ r?'.7KX}__YC_h_'gIu??cO s7=_OO ? KcD?pWogO?k_Go~?OG7b_?ȗjþ'?~i;7~~o?ԏ1?8~o#O\o?OV~zOW^??/s?ڸW_O?]_o[}#/O _8ߓo_?wwފOޏ}G_o3?__a_o߯S_K_?/?[OG6ߓ_NvI!JTXC X8IwX?rN ߣF02m %gUci ;3({R7W%{!Up:rZH~Uz]th*6FsslG7kuޠƟi# NKuX4VEMτoZ3(;Nڹb pD^=7B@p?Du[|%&&L^bh>e&"5ygjbRSLSQAIy7E}th[Yk ^( */Jt)hbmk֔ge]lO[zjaH2zܧ'C,]9Bzye cdK%{v}Cz: u3G yz,0ԥYo.V/n}KˡghhE {hڇbz"k;X on7R|x[+9 ڴͺx66W iJpF#JXRgd F,9$J:d;'YF~U#JO닩uQ` 9y}3k>vx㷝RyQ[ 3#1}>Xo\q߷'o'Oծ[ǴF(<[n}y/a5i`ETCCCwM1QR&Pv$HrWB ~Q4 B&=rAzI$nI #N^ ΅(ri{!a(/\dD;ȩK)32 e5 Aq}"D=/L"RQE;ËlĻ$,P!yz Md M9U('R=)QJa,yI/.(WyA(:DƁ(z oʎpzAN=,\iEjNO4pe$&f{}v<3+[p8ll E$9$rrm9Đ賔s|vAUd4zCW; i/@ ;̧j-Z $C? ɛ+]2 @}Gn?la1ISVƩ ؽs%whS] J,+coxѕ{< 8ucEcz |9A$G I@cKJ7;;6;gEV@tp{u=I :n ]0baƒrg+ ]T^lWq~ќ2]SKi;[]NUk;3գOnw5f|,h8 '~`:KI2تA%pA}!?sw˓}#Yn`6~4g'z;C{Gc]9YSpѲ5hX*Vlо A &McXv;o`hhrv"s}ƱTE jıdkVE`j̑Vdpŀf[Dŵ [Cd>ߥ"1 g4%b;@8f;%g!GvtJ2-3E݄57uّ:vX4c3I^ nG;kv!òsT5Y97%s5 F걌2gUDHqĒHИkDJ]>ZYlWg5bC +TD'MIʧo85m (tisЇ!)Ar(:01$נw9s6~E?pSEVgw5M3VRYN~LM8|?q@2y[ƙou\tX tsAkiVj&%2Qx֧9<"uxA`k:Ur@p roεB3'g\E=2q .\56ha2dHVG,~(\=YKMQF;1:B/ӵ hys>ؠHMvugu{=ÅoVXtУy}N}- bI,i 4KkL3P<4+:Nob{X.r! =I* )}N3SvL$mvyŸ'"YI Obr{L[]s g kEeHB=_:y΁m"GChf*]oק3ԓSRI-eFL۳"X,*:NV ǪϮ5:_\E H q9/(2zET3;[NB ?颕0S|2`11FŚ'~iN*RC=:f _30e+z8xMp 2=QcvuM"\]ՁL?#!E9R-و=hI#Z!NO?a-M9M&O 60"_Rfy 7 b8l.1h+LjgX\e<> Y~  i6rD^33đDgpr&b 4 I.E)Lj=^-JB@:y*7:ؔrS}9z%,xuXIL4ވ%Q ~}[|\ᒄ^U"+V`celx$O@P!PD/<r* '0)ǶE̐HAz)-M< yE 4 %4CIEߠ'Zf*;^€b3Q%G)>NB$d P&RU( ObaTn}^rvAhɯ/IyvOBJ`,Bъ/Ul/AGJȖzUX̑߷i[hmuHnjUU"\@@!Q8z -~H۔ ӿc کZ?Yt.0.\F EUY(XyߞAM({x%g2/ c@M֊b iczha ) ~R47A1*C <DGC,mDmg3xf\0$c#@D|q\W}]CBf!"բ6a;*Qt]:Q*O WG}dY\dI(I*\ah2 $ı{Q4K&a o5=𪖣'V3ޡީa7Ld9h 1>2>%Y1"ý6hq64 (OE8S:>j7zY=ݬfr"iY*12 P锥ʱnJ#d,n0E^^ ,\ bt5sߌvTc2X軺fvޥd !{֠*ג5'"x庛]zn7&SkGsݮ@@e7}<LUʠ#$ {R(9WsBp~1hߐ;duME0Dۇ4Eo.3Ekv\gXST\{,^l)uoXL8߾'y]VRHP#|5 a3F] )~!>äժ~eᓠʭƨ: 9:u.< UjlOn wd:'Si;{zjs^WQωd5 9q2b ԱcAl*a ̇0Z+kkR[qtm3Q{p9푫?w= 6DBm\N;"-h"[ $t(xHN0C#"_eB@\i5(t \ff4pn;qMPBi9O!|8xJ Dv^jD_}SdM#&;fyN|#I)ooU>'Lo<⧡Go"W=,W.kSswΖSrT$:#(aY&vk1Xj#!LIJg5ҡB @Pek3,K%I=az\QWXKeڲ AHBd8 }? $?"8@ DTR,P!Մ 'U>${q}>%X7p:1Wmbc#'@*)S4)A7L'ۓx[_ 0t)93HP8w= 5zҼ)ccJ^%Jv4r}[ @ETSCāaE<%ДYR8ך0UUvw5r*cp!%:(5̙ϰ}z {]#J& i$.wDDp%CSA _(U y)|#$)) C DPD k/IyO N^(*W؄ʨR* <}$pih% h$ aaqRlaڤE:TAՃA H90};~fTP4Ax"z ˦|[@ )Ory_{ n@U:06á/w=ѳ-cAFPVՑ[bLlBhM@F a/ |Q#^@kjftsoMG4Wtux5`IԻ&4m ]MWz8g9 ty`rM8*1q0RTb5Kli![mqݨ3VMεinQ0a8$k@ :tg` !T;/,˾;`lh&$evz^pp1B]9C9c YZ .+aJ1`SA0"-Dz F^u~O S򨨈UUU <Ng%DKˌ!*p/soPU˥c׽J΄aNQLv:a."iB|,s^}#FwΙ$\JbNf޲vgl;7r.m_7L?g@PG㿄8jvq@I $t2!h{FU{)뀡x"Pz4{w(H h{{C~ߦ.3>IPQWџ @Y!>>ܧ(4:Jt=";gCgx_[H_뮙I:3iʨ7#+HZ!iprK7⶯X-6HGy] %+=7QsF@X- 0$$ ٔ^9JT@ 'zi@Z(dF,fAc@RS m-'^S SJi d \4/M֤N%cXRۙz$(a54 T EP-&6 &hgűV4N șgh]H"$u4ݒ:'8A+@^?c>pV/snRJTŻ 4~CR Z xX#̈d*¾n5ƲqUEHIln_w'eƽ:ir:׎]hjq ׻2PauueDgn4=0UqyE& pRÂvjiTȢe\V kA&6HT>p! o_dApD-\ @'^Nksmewj59Lՙ]zG*~|*u5p0jO!o(iqǁ[?MYuR9cr1`0Tw}(afƌW] ƻ( En(5M9yOy;1^nԱ>IAo  4&;CE:#/dt*jƍD/=@KEDHL}B"DB7hb hl H[;@&@FΞ#=D攀 H!Bwب_#_@ip|W8 z%{a9YŊ q0#u bTHrJ>BtAPE>7-G ?{/N'Po`z}auIJbYΧ%?u~rꊍy,a\,1<O8z_bȈ?4b^{dAfm)< Kᇴ)FSޤ/RT&$ 2Hv: LzQ^E=|x_ w>~#Hkd ҹ|CELć&w dx&gM)ݲalcyW|!}-|`u4AILB"ߌ3^ 2xDմՉdϿLKت*JAP (M P GGsF? QһQ!-ICXesA\/qA{$@&g(Gt)\1;XwbgmPYPW,^AOK/lTZvzq-ϳd/đ|navAx]I(RVj'Nw-GL~d83iegGTwƲ ꀾvN^MX6^j(@QC||Ƥp`yXhag)gd J_ݦ'aZB_ZЎ*AMc}7wx=)'CXT46=uQU# .^C:&aՕB>b=LW̅N'X#TH,k O2N)@ .r 1}sc2%LLPck^h$! $Zq "A* R N8ぐHДΪjDqCHA8/J1 l6 0. + (2cD(%էd; pC ~`PR4t|6H13 cLlh3{6i& k찌mUd!I! ,ʆIb-i'#˲1!陼Ѭ.bkFP!6Ũ܀ Yf`x>i#YB% ] %^JQs* $@IT dP;l1PpP:&p^&B')iaPU@)8wAa43yHJ^8i6xL06(8!2R@ -= %s: Sh& .F֩x q 4oyIB`FcQsFNø8l *9FbF0~v#ԍ6@mSˆ)L4}~ŖA2IPzq E4繅;E(e+FgpHI5n>em-eX{!vF39 RHF8bFۮ6ۉ;$3 `]b [m Dz B7udp82$gI'$z#GTϯQ%HG#@"plK[ꇙrjF#i)'cm$"رmM 鴝RfZZġPbvڨqM自Ӫwy4D*[{fߢf$?rcc**f+YნuP`i%(ǩ{>0B(k!>]"!&G,=6d% F"g(#{v*r.1bFG,#f!j9udKvRLVd4 aܦeI(U9#Ƃ11‚EmI#j OS%/$`HBlY-8AE7ຘPPѰ-t/.a|5 ieklk('od^aB8#Hc.4RCZB2*!R 08L-k H71G6;Kk(QMb(\r81a9=,vٕj .mTP0&"ۨY [0֢Nnߺlq>+Ǝ9;AF&D0=A؇S 9E:Bh0UhSCh)SZ.Tsgc$MM81K diD16ƫ脄 0_M'xZWkuS8"٦5eL%ORT,XSP rk`"0a 2ϐ̢*&'ۇ؏wk ) H`I"p ~uT j',_$յ~BPg |SnE LGi?S.[u*}57ЇAd" c"BJđ 4TKE)QB(%% P1D C2PP PčL%4S E$T R RD1P"PRЕ|>W00hCw>ASWI}\Z[ [% #Pe\m ѱ&aeޝn]z܂1~nꈏ N j,V("69듙/Ce$"F ~"mf<3GxvfGM~ܮޫ gTbJU*L%S~ DMQ_g_*xIcC%[镮BVW/HBʄ7$m jp]mfF'+' `O3@/w}(,4N21[H)hƈU@M D$҉ٴ ';"7$9-G8/$$I}o0YP$ xaTXݴR 6;]>oXIe-7o pk^3_vw9TCֹE Uad!uHܾG6 \m-Ur/% {aq9Lҹg 67bY$AD&)(%u''. Cߣ6Άt~8)9z0lb8@O<0EʜG)H%66)`*|Eo w ȸ&jJDUV DQZ};_fAQ__M 14xN+ZlИH7xKCAw@UqDzlBHDs-3> Oo΃RpMw1O?']5* ᢓ̋&Z7h EV {3O$2`eEw:}(]+ +-.P,SyI"̑۩5 E`8;* u @A Qq?dDZo`bT&Du:Bmn&aĜي–X[JCCa; Ў^58Ec&Z7cѓg$i5僚qf(BIX9{O MKx ԺC0L5%$ %P"+*{CW6U[(lgҙ|jhE1YJˈBݨ$>BJ"~&C=P %i\'L(* k N0Th{^`qswlZXhPY6UUUUUk~ =-B.3Ji/_t?n ,YsOX]< "~Ȓts sy̽P<}r!HOa"!ft(HPHE b`t G{a" ɀb9 m=X2*Q,JF؊>@~RO>0 2':h\Els@s`!z#D|ʖbh;&c IEe#d"\K׮L1,t,毮 깓s=t),>*H@׳\l@! () DG" pIZNk ~n>|&;H≒!_iň$AX 2ŔZ@竰!a'O! PH6 ?ġݕ  ΰ,IG҆Zn#2ȺeWCSl{dK{;ZJr0}*mhkԃc>"R F/Pk<k+w4.H,ηAKIk 9PK"xyP]S?7뙞W8- B'il;Ȇ'Y>, =WW +s PWMF0APΨ-`TT7@@K) (:;A%I`H0@CQCJSGD6 ⡌!TıЎ;^* Ry98\@婩zfWDXR{I9]M)Np֧୘81/OEaO((´O̱,8m؝zF| CI1dA9i8ޖ$<lqz ^;k[#l+:5;Oם_/8*ef]#WovO;Y5k+I 0+; 3_cQʍ5m4MSs}Ł碲$zCk!mwk`As#p ^۰w7-I-5pjYEK{ȗC]^H+^qxβ1}K˓mJOVSz 킏 (0}, ! 6Bm#@ $imzV$56 @Mn:(?dZ!$7%c X)gqsq׌?I!#nklt ֠,8/" mIOJ%/JNr1ٹF4^HQ`L҆!sx$hi=r1Bf@h%${LϋY;],+! ┄RD:51 [BiTJXQ ƣ{N2DH-GE4nqv̝72 USUS*B#`qYwfꋬw2T7NC] (ȚCC+4tFq7 #f]JHm6iw!(JV61(JKX|xq#I8tp&7ʆ!H*`2p$LmD G mt\(@kmA]\4?=2x G!{7ڠzmү޿Ûwa3'\#?=XU>C!T !bX>'Ad)KIS7.A0A;:v:?GmB̴#w 4y 噢i]U0DQZ2ۻHb)&p ߜ "%&`)87i=wOtS~xEb<}YMOI j*7r[$e䁐"i"y+g4nE@LR eh(&4#@*w0n4E&T @āB !@_^4fg S0TRQJA B IT"DHR<:zڑ+Tٶ |`,b"`GK l2Tx,` 3@'!hPy%.x$FA=/E*Hjk6 }m~^dk-OF%aGu5 djߨVC\@o}bK@xTDQ@PD@3(BEڪ (H~́HYPD#Cvڈ*HX%JAf1q"4^"} ְ=G!-U>ȅe+[|37Xv5^@,Y(b$̝,DfǃN:&(,k7ݢ9Y&< [/s &NwH +תc21  i:;u~-}--i`W1"ex1c_Ic?(' 4̈́r6qD`43G:Ѐ\i%Di{ TM(B7C.XcE iC& 0v4C8ȳ-AP-f$|2 ^{!POLRSpI`9Ļm"bjճ)3,zv]{14q>lzKWfg 7v|d)q]"|q\ge1h9`ƍ"pqIi4F= fCC"B2W?44/?Ռؒ^w`־J^aKM^jLˤ̓#C.ٿTz=>ӵ/IͰ,, ӵ= '톫 (4ҫQQUzW3_ťl|}4·z-ƻoXbx׼8w;1rgCRI3/F]}xOYڃ /^)U+LYM c)rHUoʌts=+ӕGL$JQf{V)1NdCLRL玻BX " xX`{A^G_gIS‘M1ᡍËc`fN@s~_|!5 f=y_p L@27PYl Nyw@ 7KСd@@T2Go}{:|g,hj#! Ǯ+/nސ0A.N:+%.{g2A|oQfn_!moEUz%v5#rʄc{Wxd\4R%! 3 q2:mڨq8 `J.nsk0chISa>gN_{U+pϓ8ށi ~j^LZI` ,OݗdZ;BF4qx3[m /hMU!T=CW׉4x IV7APsnۆa6 1d6H)Ӛ|ZCiWe6/qZ5)ZE42,1wQT\Ӡg_$v3m,f0`~G'W =yYҡ&xbzbZU0_0 :yրĂ( ? ,,r7\p&aeLцڛChʯMmI+pvlA1RDPGs"!7qC3%Z& oza'\b[r uw}6sĨitw16GɤCߏW8>pRԃt,*Tb&WFL 6BT#O>K ߟn(1è`^ۨ;kj4uPu1 F^.|k}Ty)b0)R?7~YahfT2@ LF|ЏDDJ޲RF4;]!H; ? v ۣ'i >v2ĚhCQJbs)E%JƆؐ{[ 9hǧ]tD T!5KXb6PĿ`(?:?ڧ+)M w>tL[ pgʩB m^a>A5$+71 mQ;dqCǂo* F@4ATbm1ZO:96&6j:j DGq/>!QlJVE/<{[F{a!db͔v%LjN, (6< G0S";p7Ow*'İ؀'iG殒{$NގϏ9zŶэpb1kPWxBdwl-*|ySGg\4nGLВi"w_V᬴9s+`(V]LQBRzL_@@)6{w" X֖CY4 Ft勡v>pA/|K׉26|51ʊ^q41,IB66* tG#BP=D|4h\+ʢ I@߼CMӃ׌MvJ]L?O(R L@~F=v0I$'7!̩[.L֒3-;'[ŶZ OI`[PJJEP";lO=ʎ<ܽT}_b5t&3 ]ZDdE X<_TELT< 'aǞ)|&@Q>avw҅^eaOb+n<QHQE( )M%Qw*?6íp1i3Y "J'b;f<%4a mM46 [E-B&ޕcmEw!`(Un,^: +5il`E {xg]hoж{*DmėN%O:GS˹)P `:~~w1քГmg]1&l Z+nr24MbSFH1?2uzHF# u 530l9lqJ̸ʗ&䔣wPS-hM; 8l\DDoust(W h/ t/ĈYW%Y= ٖaHMqJVUF<$zxL,dSzyRc!?nDa!畕(y$N;.T,bbPc, +,Cq >Q`lsZ " )ȋ2̀Łt'{H^lYvd^-rpz\L_|)4HL4 jm5P'JΏ%Se05X+M= & @JiQ0W'%vQSck2` qru9DKqД* X06XCyMiMPSLy+4ee|FYYhƌ6dֵc -$cCclD 栬 *B@ : b lDd^`T[÷A:SGA% gjfljDh:Hݝ5T˦[ O ,*N<1z .7a7F42&&p? hK발ejRj`f#HF6 eDhhheISnm2, un LĜF5V#F(ZP6DaEƟ(jaK4}iUal KvR(V䆐E K ~ϩ(T@0 j,>"4|/NVgeB*iRdKg]XtF 'b+b n ߢ;S,Xa#8OŇ\2H# @V[md2J`+I!p nco,h<_hi3 rM,FU~Zɍ 8$cӳF VBH+[=(V-B0v?V'>rpexuW11ؙ_2mvEگ0q 4&7>c=f;n 7VF]4dSP՞ʢn VDҏκd|1]SpcdJvϫٳG .^/.?)LIC,8QUh$oTr.x֮Ui3 Bi~-"t}U2NUp,Q2[gEH̥@kZu'^78"l8EѰ9i!rpm@J%#,!GS(%nXsy* 2(rL"x 35 ¢ R`Х@)]l8a:l6ҿ1}|rgK(%[p(RrPYL e@"HCQ\WS7#?/&@,(<e%g]bU CIjQ7 @)wDr,I6ôub 0>և`晷)+4W)3CRbԟFqE`6n3g݁0@  y@@UrG `K t aw caD&`A в%e24bvFEcn XȂpv}`O*!+2`ArO7PEQA4VF֓1ʨr\ a?mǦF, ek[ fw6͜bhҴ8076ʖK6llҴ᳇i"UM4p[1CAL<*Z:tr (q$p`(B%֫+ HuZnVCdۜNj" @'8()%O.QA=  IX"v'\fB c0ʁ &#9ChG950M(@Y8XS f$ Px`AM!IJH@=5 84X R!J#r IC% РDR!*`V:%1#WmK;58II!J171JQJ !u"H-D r9:&:& ns8~ul!t2,JHaN\Mۗ:0SsJP" H"׌GÁZ\΢y|A-5;e0 bь;ױ)@!oOChMt*+Z8b ãU1jI7N[@N6~XQt[e5gnyAho];8~-*%*5xnWV.ԍGj~2[ۧ˴C +nⳁ7{YbN[*ĈEEAׯ+kf`V9蚣wTzcAqvpԡ@)e8QUZ~2vzaqEs=ڲ &(tlCi۬;<~9X>+800y FRC8@x f(F)*HDD!JL+2C1&SP!TrT H"Bn 7+m@|E?9"[AicNx]EMkQז$T0L?݀T1(Jij"H*H 1.@B$b=J SA@wԽh}1|hz:E"'ذPEA(7txEQ(xyovrzT8Q)[Q(.U}X>a'6ʛdb\!"%n}Řq[ NaF@E"<@"y\ԬX#戀QfԨZ"zMwLϺ-;aKBu!i-Nվ$I+!<7!5*m!2EDf($-"{W߆dUm;;peɏ'"lr|4rCdI݀z43?Xg@@bR )8- J9Jh5I)^|QM2ZC@I"U  yRC)&SJ= 4 ^^փ'f) FH$C3 4x7igs 䂇 Gd4/EgL2@G?3#a|*:sx{ƇjfIh`S > tI` lj$@'H HI8 'O I E6 LBR'ϙ)DEJazx %uǮLbU) ,^;O(<~`Op@7hHJCL@=Qcv8+! bӼ}$>b]]iqm!;q\]FyUPtD6EۦrKP}\%OؽӜ(L@˂aݧNw[;ϒ%a;X{d>ܦ%BT08O/lB-дw0$W!@B}g|)L b1_2_ %Bn K;lpaGxKBN 6)(;Hx zWv l'T- 7[Fqtj$I'ڴ@ b}XwǸ6z 7[48('JKFo%nNҎR<@K=g88; k|# q@Bv$s{N*JvbUdX/*`2@PRJ(^R+mRmOTymZY&mjrZFfN;r}Ab(h~)I@"W`)s,OEh_4D;}x)>w f9H` ! ICLHB% U%cZcFà:7PÊHzD!  R!qKH3pgz|-oQ!`\4,qNۡrvFx^q'2dFуP @#a(7\pPvD LlΤmhK*+y(}4A&ZoB]ӳ 9 (${hNJ<Z֞mM U "~R[4[-~8L>diPd ?&@>!%!N,/O' (z`U@>Q)*ה XB\ ځScsdQ6 ٞH>_;Leo?'&8Omq2r5 !*[_O>NV1!_wm39hҤJ xgS9'ևьAXoPoT^d4>ZS[Gjz y2y= uI8M#:1ž`MH %Y:PL LlCo"?ÞGYZE-1>tC%A4js14yͮ1@ \*`@4Q@ M]P0*vZ={1DI E;6ѩKfbd LKO(~^QE鷅1l!N->*ų`38X6ȑE+#n;  vJr<Be8#OA(ۖ۠hpmPaXs$/ N) __9ՌPF'"IJ>KEO>|d{|N5P}އ?^EB_BDFGQxo>i݋-*^X xLh9)Pe:=YY:x e)܎z ŌhZ'=>tժ*hq;0ZuQ@$Alʭ!x(d8 o~<{:KPCy50Рhx"wc|M 蕅MJGǷb m8ьld徎NNu*t8%AվU}OuM#!<7j;ANq%3dԵ>!LF'A^BNOrK5ֻS{1Q"EÆm4`uġJ͋j0)vV*QHMx#m&X*bts!}䈁FXr i;p\q$P>drj~ YcS8s7ߜyCݴcc{W%Rq)$M͒ J Nd-JNY⡈}o($NWM2$ fFq:#,&Fej ,Z"0õxdQk#[x)4Z-E0@sid lxE`HY*dV؜v5yI!3XvZupp#-ߐo 3g](27eXrYЂ~ R w,a72]al`J F1gڵ_J21d8^ *wE?G4L`B Ɉچ.df@Bu!~ԄpcAc^FQN:"" I)H"z;==zxc'$, ok뇺aV~{駓H cieƽLI Ϝk]f9E H=ۇRusq.ԖºJn4 t& d=jW `بP{d7u:#+J!@=#V @(<8w<ÝpyC hCDD!:0 փ 4bE9.u0v2I؉ 432TDH$d8cKB ň leia3n*'Kfg=` R(FOn$K"[ZؚCs.Z3 qDPZ6Gb) lTkIiO1DU %C" @܈nuI3I(<㝳rLǂ5 Y*vYg!@!)3< Φʘ \Kp n?Xƀ; Fi<XqB:Z3$Bu"G[@Q :+s!:Z2#FKZ:w %.;AZ#:#P2E]tOp((eb.-02ʌwaA/XU s>Y)Qe6#Qz$q!A=CaF-8&Z?&+vtƶ fȨIia 0쌢@ʢڊ) !Y@N8 .lcU,qf:qLkg }@F!ii|@(Rffg[R'~pQ-aMPp!wV% b L:t`vpGAgyi{) X8p}*,qh*i9'cRcZij$]7\ 3PJer꽥[[Eڜ/ŕ}"F2X0KQ}Q2A{JDjl-#o eBI 0:QU^*RR饉tP.ǡG Er$i="j\Y (JOgM=ÍqOuoO|\E乒 (B ;dB p ~)7| >ffV<(:ЕC)H9\JPN\R$` c`$]#Ta d"8cIyf4]ku„ pEZ-wQs~c65QAMB>r{dȾAAD})Z p^O_SWd[ %9XK[\8w;–Sv쥋mF0Xh8`aX3Ah F߶``@rhB /V8n&HL&BVXBU74Ұ+(CM*[ZVU%0hB7 i( -ˁJs8tkpÉ'8p; rJPQ2:2y4@ƚaAԟjmXdRAL5O \0bFZ'hY].)QiE!pG“tQ`mŰn oĨƉ"K^QLBONqWp1`ͩz҈}Ol b&HtJV8ZxN scOȠ>UlS2:k!XE<7sar *cP7 mUw z35:_2""B(Z RT[«Rw<`$B6DJ"$9'@| 8a،HY1 As }D* QCsݻߑM( cM4 P&y@;`$?4p蚉5d/b}C3u#Lēq Q8CHBI  ;2{|:c!мVYKws /$Ɂe"BJQB)R9$) !Dc4pG! ՜rF9`DF-JW5W(F&ΏT"4QQAԠw ZZDL$NtT(M$;^oXzwrAi! n~)O**dj(`#H@'c\@ $D)}l w0HaUǤ~[Y{,'C^qG[@v(?8+&HfjomsUllmo>J"ܑ\gA~BUV88s>`w}aչ<\=4d$B5B;NܠCQ$ TNC=Y+B : G胕𕾬ttb" *B HLd6HV3aHAkmE@=Qn+n9A#m[]~&(ϗ:HhjҮ@@ h*(DQ2ӎ;w^#2w{v ɭڔ>&]ax@‘$'Ӑ\ڻFQ1(d v,:IKxۻYߒ.U[XU 3H*^2qo;_MNui#Bϝvo~=Z`<2,^F5ۚX>P0z k^pKPpaw!rH% ث2/CVEΠ1AT)"Df[\NDDzd:ijG9YC%$<:6k$N71N~'m ,3`L2* 3T@ƌ]1 zEɑK䴞WpFsPU2kh@fSIQ^a`iwjHWul8MEߒ;@ˁ~mF٥w-3a:n_ucX`B)w@PQRnw<ᩨ)B낉+3ܒ"O#n{ 3Uu|abO27RB@N@6!s^6בw2@I3;q X|$`6gInx}#qJ8u:=DJAiLE𰲳"GG!5b4Az].׍ܵV$>=^fcE6PMc=΢bdb~qz0啍$f .@r{w7. DAM%TSPQ@mDL B)"iihj&bj!``e(%`΄%fdD"C+1D=+-QWQ咚IY#h9H!p93pږ!{gE}c=o1GI&5[|+NJ}iY ڞZ{3ώLJґ+c}a\%m)u"~y[vO2C@]QP[xS01{fjUNlъqBԛ*r0 .X|MwG*<{nUkr.i zc=C^Fu69t'uX;osMa )btl9v ф IPP`KCqU&p1dl ,$)@mHV(}t$D63&9]{1CE5*e>[i,h4Bi4528e0)jC2|s1\8A'y>?QkdqZ h֍n#u \ &|aI9_qJ;HĽA7/oon GW•ʈ{*{DSʥ%QQrrE#b1_+܌E02t7ij 6CD԰1lK,3k>6i#KFdpqaSBһOx4^`-3<;P4]3C@uci6`Dő$AW-7`w١{i BRg{gV| l؞gfyKZ{}QBɈP5ΔI8 gM 9gN8vvHcK!u:7q Fy飱ǢI0q[h'N^F/d:2NTޫ}q1G]‰@Q^jZ( aOSXA^"6#)^ kuBBI$$<ڰb#2eBVΑleQ;S'`sȷhME 4"A?3N;)fclY_2d$J~]k:dEe yQP .{UC(πI5w)[2 B tJiv#Hv٬ 3 (S"UB-Jܕz ~ˈ 2w}̵BH.J:|zx!̦>DT|E!~XSu2H1rӍ&/:2&Ʉ'"6P%V Cyx!,Juɹq"/5$"7a=)}?P‹`ĠyEi(V '3D,A" T"R"QB*!EЩc&~mb}anb'ALa f8ґQ֟\a7{ό=ڔ(*D &X*C"0樖*AY#R݊r <.tG̭ |WINu:CZоu>XHud#|C@sߟ$U>8D +߂u VmplQ3$~df~ @z&wv=ˠc ksm\w"= q mx[^ϟ`@TZb'BPrJżޟY爾ȧ?52)")-Hf@Қ%6ud60TSKrarsk10"G=4׸@S4BF(!yCl8C1GGDL6:n Z61ImN2Ӥ6(:MKL39&͚H@mmO(̯1@FH=q|JDE4tL*OW@v•]p\֖ C8XقP-Dh-6լbD.31`& %Hlx<~y,?k8(fcI#cp`V)JgeaA@ץuTXchR3@Ȩ&Na,~Sb [Y8n ,qƔà"&dĈcı.=rzryQ D,z30Cc"bSm>jB3$>{x'VUT`_qӘbN^:;T32;2Sf$!@ Aiʄ|Y٩fj; `qEX ":,G4)JoӶ6MGkU[Kr">n1lu4iM!BĴz*}zG, :ݾ5iV+ZAp>zFC>={kC#mq $+86c6 [U!Z!?7~UV9N[¬+ub.+CbZ50S1IT04hfEX(Nˠ'I1;LDFoTmxBIcTkVF+ ,ZB\ ZhW{r.vC"wIÑ(@$@`of^Hyum5d͎pW`5MĈg]Jt"B|f.AU /Osq$ũCCKuJ? lfBؿIi,ȧo%mwg''a,%"sBe_B5qE< $lAPr@>C2@I]> ֭gɎoN05<ø0姰 @} %H(coWAs_f!ު * *-e*@ "EQ+vXT ٥"M;D#ɥFAH\ $S%oT.s>4"b1"jm#tOKӷ1 ? )N孉}콣YX(ňr+Vv;diyc ERAuA,͐:t+QЂ^}e`ጹ9D >ލë4M0LI# Ҙ0\1pԤ892I2ZFuo}5#6ؖ3TY1P0m2$}]Ϋ <u6UN"⡶Pa,3dΜaaUҸ4bWG m)H5P Ť2ҋDf9x  :3!bc d".xpSk?S ˎ 4B!E..E^P^1Ps$AQ͝95{217Sv8ԁ!qѡ!3Uvuݹ>ε8OgKp8,6" [Nw*2 Bh1`(H G Mz>%v˃uvӥ6dSR\1+{]2[bXp 3 A69MD!R?:iTm h6v*ÊhEb wx~Sv^!L*@s>\ E ùIIv6GLэH)rP튠b(D娚D (=2b3&,ႈ˒BT`̐#ì pC& S,/ W -x3E@ ƘA6! )_&iCa3@hO-udNAgmфb%c`- wE4jlhY[j,H;GW4g݊-䢥k-)qC*] (QHP@B0BSml8\B3|q¦mDP5$eд0{.)Zdpې&f6mx`۹iZ? eq4SZ;I4Ć#69kq;tBdvM醮,3 h1F§KN8m@&xP@8˱hgզc,E ڄ6``To1U#r C $B<| NW<θ 7nS ۔@3xus ?fC2T%wLe qfͱC|[.y-pp"r b"aq,1w;Wv XOΞ[7܁Y: HNf,h2tkR5%'|Kw1QZALpDSUfXaa T "_Q%bcI&a.B)O.p@`3XR*5a7l@'n #E-@ Jıd\'@*׃@FmulDEݪiunXjp@< L/H$d 8+ *\0Jhb@fcI"Ѣ4p `T\! 9 v]"+Sx; X'44PE/:5 zC8C4˴Ò0qw:b1.Z1H75 dOL%p/c$7 |X^0zMc82GU%N;iC<#Z'3  ɓRqӷcjbY`g1U!| U; cp 1PK^q'U.G4DA;[` <|λtM521pr5Bi1oM6|Ey_xSA31,HA{9CaB]=2qdz7r=1wAsޢc6dZv:cjfWQL" R4\ )oM^Gim*ҧݴa[4Pd)/ -ldP>qw00׶&L+~7wU-\0or,c;!o{-Ipu)xtw`G:k-<'3luF:[DdU[Aq {zLa3>_u>6|m\bT Ĉ k<:viTl& cmA#[FmFbs`A1%"XjCۂ}`iqT> 0dQS8^L$崸WadK v].:3)Ě"<`hCHMT[u`5=&^@!b4 dHw͵a66-*Td A,DRs02Q膼#Bpv5 e])t8BjwKxZSEE71yAdʇ6a=E@=S(BILθ"ory(_F׌iUQPb`(ȇ~,Ck5 NP[zi&F!He}d7skF"*ۖ}ϯECЀnXضJ! iq1f"A^E+a6zۯ:9/n||7'/~M7Xd?]'T:/; cʛC$ҋss׆=Fhv՗} |XT! >l}TQWr! !$^5 $1C2#%('âYP dYI B1/j̞jfX";(ɲ P!Ml)ch`C更'x Țۅ O 0m}'7tm wӍ+K >8-1HQ|pG:Na8M%QxJ$;>({"O<* /iGMx*#?I~g1@.EձIuh?7B1u+3l\ώYMTUEDW?5,C DH%#h%P%F(w+c)"Y)A55a?tg̔4}Qfzۭ >-̸ \:@@HF] \h|ՙ-帐4O0 mA"]$ȘWdQ (c T84x/iL]b8P )qLྛ@o~= @A]HY6.qvSE<В@Ze&F"f HUQHH?LmvbŜEm~~#82 mc,lD y`yk`˱nhES{CT׮d7rR,$ ii`s "O@:  H( k$_dJ/MiKPL}ͼlKd)OBw 4/ IƽNSJ!hk^mB-+堢L`W ?Ƙ~̨iQD;JRT Ho AڏnHH'(>42j丷":ODDi.^‡ol1|!O`>~49=L`å|3et,QOԃzZH s > \Z/M9VdIh̻v&o< (tRw'IJ#`ht748xPy=8RD%O.F"HBΤ4j2yzp 9@"y3EDEUUUUUUUUQUUULJ %t讅B |A Erl@LSDq!Qc`47XIHg !Ư$Y](#(hhlqpja -SZt^^' l FC @ JW< y("x_My'8t c@\`3XI3̀b%=thNs,A77D*oT8ANN֔=SeJ~n[ɃF1[m\?zcx> 2޺*F-Vj$x] 8/r< {!*jiXqwq8g7VXFf(痆l3|gړBlku:KR .xGΫKR"( EEb!țpL=TNV=eLN%BHb]sؤ/t}TA_\n@E27rȿ~Oi&?p48|u@R[`W0tpL(o"bTѭƆi.lZP7b(""8G +hď7D;`-;PwT'*,eX>x[(D6>ݐ 2FH10 2v"iYd6Ǝ5mHp@lJbءCP?:l:7`)>zB8+0A,-Dd= r&V6"wk#toŸ>rRQESQA@h3IKCUEzzGs8{H!I|jK{fh" HNݜHƾQL=I#aGuUuL3T1 "'.cq*4\$N!LfI?ej)"ia2$G)\RAQ"-ׅ<:%5HDp6G IH4Sm;͂D>[8E9>lz3 zaE2 m% 4QhЛҢ*.GY?z<#mbg ,\6 0dM#~A$<Ž)f^.BП-Q={("!JʀH )i V2os(u"APR+rq. 6(N#d TkHs4|,O?b8;ↀOtCsOw~Ĉcs.Z-:JdT- s"Cbw .J바@{C|$DN* A;y> i \?MR#ֽ*bg<+0 {aE"*"!OQPF - ns@&dJ[PߐvbcPQ/T9zckp`5:̓n6<#&H(~5Qigp 6ǚ|<(! !&,RLEY 7!Ur4u !4Z{gUAs i엇gS88n9:@MZ_Fa!13 zzThT9MNNl%m3øaq$ϣqTeY\`vhfrۑԮ,y5.0b{?h4sꣀYM?ݛ4/h@ZzD5`;1 y9T@]aڐBs(!TG7QQFie 7IRɦC /M8S`Xl,8@?ǰKREՊKߠwg7&vk gD9q6T1F)fY]Dq ]C{EY..#&4q:Ɵz`06St d&fPQOL;1 zeChnTe_Edu )5^r7mnɫ5ݡ:+WhAө w2Ln>[ށ$&%