#include "Python.h" #include /* snprintf() wrappers. If the platform has vsnprintf, we use it, else we emulate it in a half-hearted way. Even if the platform has it, we wrap it because platforms differ in what vsnprintf does in case the buffer is too small: C99 behavior is to return the number of characters that would have been written had the buffer not been too small, and to set the last byte of the buffer to \0. At least MS _vsnprintf returns a negative value instead, and fills the entire buffer with non-\0 data. The wrappers ensure that str[size-1] is always \0 upon return. PyOS_snprintf and PyOS_vsnprintf never write more than size bytes (including the trailing '\0') into str. If the platform doesn't have vsnprintf, and the buffer size needed to avoid truncation exceeds size by more than 512, Python aborts with a Py_FatalError. Return value (rv): When 0 <= rv < size, the output conversion was unexceptional, and rv characters were written to str (excluding a trailing \0 byte at str[rv]). When rv >= size, output conversion was truncated, and a buffer of size rv+1 would have been needed to avoid truncation. str[size-1] is \0 in this case. When rv < 0, "something bad happened". str[size-1] is \0 in this case too, but the rest of str is unreliable. It could be that an error in format codes was detected by libc, or on platforms with a non-C99 vsnprintf simply that the buffer wasn't big enough to avoid truncation, or on platforms without any vsnprintf that PyMem_Malloc couldn't obtain space for a temp buffer. CAUTION: Unlike C99, str != NULL and size > 0 are required. */ int PyOS_snprintf(char *str, size_t size, const char *format, ...) { int rc; va_list va; va_start(va, format); rc = PyOS_vsnprintf(str, size, format, va); va_end(va); return rc; } int PyOS_vsnprintf(char *str, size_t size, const char *format, va_list va) { int len; /* # bytes written, excluding \0 */ #ifndef HAVE_SNPRINTF char *buffer; #endif assert(str != NULL); assert(size > 0); assert(format != NULL); #ifdef HAVE_SNPRINTF len = vsnprintf(str, size, format, va); #else /* Emulate it. */ buffer = PyMem_MALLOC(size + 512); if (buffer == NULL) { len = -666; goto Done; } len = vsprintf(buffer, format, va); if (len < 0) /* ignore the error */; else if ((size_t)len >= size + 512) Py_FatalError("Buffer overflow in PyOS_snprintf/PyOS_vsnprintf"); else { const size_t to_copy = (size_t)len < size ? (size_t)len : size - 1; assert(to_copy < size); memcpy(str, buffer, to_copy); str[to_copy] = '\0'; } PyMem_FREE(buffer); Done: #endif str[size-1] = '\0'; return len; } xePUP-%!TEKJHP!KL@M 5HQHR)O@X(UA{E">;W?Lcn*UE=eAVAȀ5ba Cn\SSPt>[O4Ppx 9ZCW^~>IG2!GY-)G/**U}ՍN3UuZJpt+O% 4/,rfu9uvsXR`{Eu֦KЁzTrb"E9u,2 e_uRsPfhIePCXU * jHpke'Qefk}jE!EDЇsWW5𤽓kĈWBH#kŧ{L,Q۬Gpq0PK5AM(E2/{3|VQLONjH ϴyOQua"c ?ݑ0Ro'o㹿"5U Aif^^zOպ*ǖm6=ײ(WG^ֈȑjD6)uMXĐyJ/3n}_1Rp)ո׬zZ`2%=' gU.A3kTNDn4w vID_R:.jvc*шY‡s'iW(}|WMHN lbB H(ի2Et9|G5}OZ=ܸ#Y*3 В4C '2n|AmuS#y4h qJp[^ј|,W%GKH&VOHpK};Zew/M1싻߲=4͠OoqXs??4*f,,|Q:9xrgu+h}Ϯ˯03\6e62dcvոYm:F/u9aΤ0('uz}h@Pd}xjۭu*nظ"^ݏ5ǦƶȬEhXb zv*bwG](>sdH}&[7fITQȉS(E\Ǣ%V2B܌aEXBax]xdeSGr][ڋ л$#OFT^փ2\q']F-+ BZɪ\uv׀ף@C0cU6ғxl'ZGr3*:P)Piq: O itk+;IF2mK#C\g xwg) YuєG2x&+ҕҕB "#?<)а3g&zvTQD-6b)c[}PtG'n2 baÜa7dWT\#ás1Tb\J;Kol0\;Y!y`Ѩ=V͗bK[P w)L^'q3m ~lgl<,b7ShrݓIbJ#7Q4 Aiz: 'hکNȌX#ݱISr)"j&%3}q=Qϧ`-ڜ|-Cʻrfx^kd84:'uKձ]u^_7kzZG2Ptz9Fq&GFqY"fWi߾5uaQXާخE)upAq@SG +yyٹi?.ƛ`)ѫ]--R$DPEVNvibhç~42hl4IN1,:aۼp1q 3wï_USڷeΔ}bpWFJa^%@j*uWqS*tc?9M>N'5ֱA(Q3Nq;2Fb̡.h[NE#<fA'Тx^V3U ca.2H$"ŔL_;wDBG*b3bkL߲Xe:DY1-L$"6%g7t)kKdb\Ùб.(SK^1m1atȆ`,)3fQ~WNf;f:qˌMec;3;NQɏ[ #Ek'չ+[h!-gMFm [_nzq6XdXu1|J{^ T-.Ӭ 9#q/ɘg3d7m~=ww_"F9< #̓LCLWw ur==:~{o`(6>  AU'Eˍ;֜\") ȌBc6kA+z?Ov@اQ$.VVuUIRKyen[N0_'^L]{AeϔCRC~N6QmFᣥ ym[M1,o bњk"H3\æuQJ^m_ߴ")@*B'3uCFɻU3yCת3`3OvPs"E+›! O!\g*Yݡ {^e1 r{xg߆!6D+*Ts".(,ᅥFBbU|*6Ɇŀ-"q5);)N o&!ESɮG2 8SzS "AsyGlYH/27TUUgmgWUJ0dQ?$E*8X/ZSm>IRCeVϴn.kZD'~,%y خy1lBTkSaǎCZ0rSMY2u|ۍ%ihRg*2\(ø#a^Ŏ<%ץgm6{oG =W |:pWe +i> a>F;#a=2KJMWT0g%3\Uƪ&(k%ӿ2ɠ؝8@E;sQW"Hq1̤2XSK4+i†#8,tw#Hrk@ \^D`c0P[*(٩Mۻ{_>W>.:nʇ%Քf%1.p`߲.GUڰ1q"ʬG5ػϓV6=/yaHU(>XQpȤ%_W L8ƴ>HS7;yᒤGXNU}ye]e톝|*H6C>n~>zra-x݇ yHh ?za>?QTkS+: 8Zcx1CWCs]~Ͼ뇸miӼu<(6`13dGzF>zUq;|5?DOU?t.^ DǑRN:5N!y1ʝs\v+'qVJ써XW{ʸݜ&tvvO;Պ:zһO93oOn*4Sf&2 m{>=YيҸ/robdN&!̭tӒXaԃi nX۔NX<~̜@)Zh1R3YB0lֽi\n@:Q&ZBdm- S/B kSVtH} Om}*2Qm~o\w?Y; Lr_,td wR^6Dȓ[D4qzOX@wESr^kg 7|y.:JAzSbL~x]&0x|#)_+Kֹ^g$Hq9dzB:g <#ܜa-:ƈj9,kuT)J-eWe^4w_<'.hp6fyQq+1iOk$*ZP}8Qx"@M?GRd/ǭ_4ACo=-JNTu tk+қc735&xp(BX39T/7p Y)ƈ9% gVyUFzZ9|% X;^`xi,hov{k8 8* }"z #X[Nsi%[v[KN< b%aCGjz3Mur&?3r𾢄#[P&MԀa~Nb+sw@c_צxwwvB(m@Od7FmRƮW;X0iOu}Wf:&3rR(h8V)ۙA"%!=ށDu^ЯqGbv Ӕt϶KTwlz6G䞞n8}6yHH qPC(m;ٕ2lf[|FVӷN8iof+;3.uLuF8\OjaW*0ESd ۗ 4za!PUh RB@9"ХPA;ł3I%Ѐo`t?=k\xy|~+}8gmonۺc3_'gv4"GzJF9j@y+RtZ$aVւe 8kE5v/-im릧vwL4:d71D ?vQoޢ3 LH%|mӓ$2my~qnGhj&Q½鯳=2\u+joYɰ :SW"W*4L -#aTF۸i_.?ư>KiHzhHoK=忭*v.9o夺R@/>l]?.~.]W77pcmhg$uaW>OUDF(Brh)cIyۼĦO$=OwR lR\]}]u9_w~;ݱN*0W)on4V+\6};<;;~;}{O],Sk.\}TT@RM@S k(f" QQEDOa*dh"5{ynwD3:ι :3<  0>jJ޲K ]g^?7s Lϔ *\B.faJ.Q1;TúɤZbQXD^KSWEiaeWI+?l? 6}|qIP~3DMD>\[ǖ[;<;ˍHH( A-r.#qDd~)S >G[!3ڞB<}{B|jngU9W$li" A` k8b5cճ~jDحT`5SMHN|]/!I Ĕ;z•<)/2Z1L{2{ʖQ''+,^֖Lu^^ذuex)†qSZ(/~#Fեgtjxi7LvDd[q4y-ߵ=;7)7HD+oK7Y_vŦ#FDcbJv]|NJս&ǚcv`=A[{{ehf|RTԫ܂YH(a1 ndS,,㔳)26Jک]M%%':hIoLZ Zg1fZѽ`c~o:M%zMa(8,>z)bA϶:b<םacN20ᤵPG0*\ze%B6:E#Y7񦔍 ԠۧWQ"jFW@6qή 9k9@Ĵp\ydiT+b">+Sg~V_qܙ 櫿C&JuyȱZ=wv,y8){}CInka[r:)r妖rh$8t^|. G߽CU]Qx*>Hksф?Go>u*kK4'^rO j(5i0<ȠkOCƈ#(,$^|VnD<ᒢ5ZH$NXW+y:߬ڽ L5{!4w7oX! ii~t_;C:By A@;FqAA79DAUD??l9\;_]oO >Z T8.+̛  LC u%WR:lp5 Z`PR:5xDNF4 `5禭Q51=RoN h۠#aESkAq9L2bR33c+3OysӦ8qTP+ZCq_2ǝ4l+WuGꟽAsȸf{qZph#=iZa;_ھP+_}֭akh$9o7zύC[hY~uVч˔c뾩*e f) 2ɿ\ră|fno=ye׊ :Z"h<4NV/Efwk G +pp3QO 6 F&ߗbt&ZÃ;iS6>P@ =NE?ev{jgb?JV` !T pqCHmg)joBB^[x\6nr6Z섏sS]ݻ9~e+Ab0;JBبp--c.ぺ 礚ԥl؆xk:߮*ي5qu yl,a}_wW3;Y},UBtW$\uX7"R)Lm۩|9ءzVY--:4Ir?ы*+E:'}_?pn_s)cqSLE#ٔn)aK}4A3 ZdM~ҙ DԌl$ޙ&9-64l!e$;nLB@`Lp""Xxw N7l OI#`Ԑ ݁PYbsa2"$7e "FPRd*# cln,(!/y TTQ~3ɇ|w<-xWHq`X!@@^L @"lˣCgwu} jOmtָn]C"H$$ 0,!H4pu(#n)$2`"ZBA eqË@F 2kJWɷRN36hػ}ȦP,cQ@5e,:[ AzEVqа$"lFLI"N4G ӯ\fx}w5[;=nzatؤAb UF* (XNj9 7LA?2CBIݩXOP ɾByJbY| C 4 `LXfЙ=Ȟ}dqOP0 }~O#$0DT à/ӧ:`GE N>i<%|=&E)x1&ETJ($%IMWvgHܚrPY UC\x{$ǺQЧvCML (o䄨RR (-Ӑލx*L*)4AZo:\G@0. sy.˝3V96Ͷ.qh01[kpl0I}0?/UeK7*H1sz N\QӼEVf~_?_z 6ֲYEF-fA_VDJBSh"MOJg%y΀a2,cm?augwU8: 5\S(##N%L|}L-;Lr7FeH U ݡkm:4ьB1$\dˇ0aŕo LFGE5V6(҇ff_-8kf`q$Zgs{?N!cO\/뫱l|FPK(3u[gvfq@ǗȾvPbʝ,sʠCs- ^fd86%fg"?X*}:=gSkJD 1ֲ% +ܸ`ٴ+;c׻UNF?T"N3IFBB,TͶ9ܕvC jf T l!_aG]Jtv0P =ڐ}&.G$kJW;y;Knh2m-s@ mKlVB sޟ^8=o |^ O]Ǯp;r)#:}jw5&qPJNϺ{Hv+z |=ԲEZݘ , .ZfHlH`$:ÑthX2ps=%0P{w)T90DT -%akngW]3:1]ÆŦCI,-ɕgν8w\ *=? pI ) 1!ZY;VD&f8wvf-ԱvQ*E:seHO\AbAMjC ɗ1Tu-<J$fb%1.+;^7Iز=vxS 6-kE=TDMr㍎ýxd\̬942Yْ̪_ZS@Q), 3 _55(K]-s^:rx77ZH8HABn!f_.)YU.熈,f]Li Bb`dQe#6zRKd=)bG-޿O5_]xb'$XB I&*DJDE)?1_~ΫރSl|g'kxȢNd'.EճT߻l"DƈLj_ԫ!_Ůdd DA<7 Vzm",~)FyeS+J;0وT@>IA58QeMm?׆W˳B.=!@s'AsѼM\}yB d}c2KQh=3edR-I"0^$,pvMD+Vz D3*CByZBI^Q!iOt<*uUn]*V2ER0AӂƎi Oq7M X%'ޓISTE/{0 C)M?~BAB'@RL<,jC$9*78bWD@TDJa^OoQ{/ErUЬE'(mΙr !}GG>Pk?,C|sc>8%MuŌ@tpr( Ѣ@n } |ISp!x@Q8zz$@CftcV$P!KX1rzZ?q K Ť/#@~q8 W_/PBR9}W枾ø~>_Jc9j:#\'΃2PO ?X(ј E>`H",plG)0TI:pb#ERF8B3 Lr>/5ABSroOH7+Ovg\ (qC8[-0Tg{:~Sʮz4;hkydmrT?<ݏ9ʗȇJs3,yy_g~&}=iFPQV~`> =4>hEd`!=t{j ^x%!q%3eyo 7 B8@xй))-yY/%řz,Cx>%>{;Nfs]2r2>7إWȽP~Wj/դ3@Sş!B_^6'>?q d;v^,yyj|}iէu]T ɿoʴK(ʥAQGi8'A0o"9g/ PwLmG0YI;L>Gj' ?AT`|1i8%~FJ}h4yp;>FIc`IUF}OZѯ_\(: vKQZhR8bJe%B$}E|7RSO_gqo?ПOhH#BGgbxִ%o¢ڌ9{B"&l}+@s73@G 90oOa=#w/xEj=^ Gj<;!\SY"jmǓ ؾ$l!q~M>s~:OB V'dQE6%$r{xο9n>6Q잗9 a=C oEJ% JOU{ _HjұHFqծӫMukd5}[q!>B] [{iR2SKr}VlF ZCJ6c -0BCʞ:D#T}qpXR#X$HH I E$DW#[_>hhdU!=F_C!ydSkOg-:ްD oŐ?M~l;2;i70gWd4KB! 9Sxm+}フY?=Lc ~/וu+ZM!>͑o;o|{[C{n~RmN[_rjתkx iVn~p q!Je<8~8S@uPԐv ?/t&#@ -&(*"h̚(i 4c?_C̽VHTO 2$meu e+Pz9?p &L>lfqPCu`yr;AMt1%B?ntF >OPWix2O\.Lt-u$}0>IqO:i*06FKeNyoLbkcnlt.Mirҁ'0B$P6[Z cxTfN3D,ՔM5UZz=-C~SuP"D8yH~#w!Q̤8uN*dkYœ* Ji%fq )6!ԔM55k4Dl9f;1 DÔO`_>ܫ->Y5Lrj,r!wiu'?_5E$":H]/RXv)8 8fv?>Y*~>oiTIh(j%*XDzvDn3^Xr|X^-T.n.2ad] P^4)2tW^M~`%%Bd/9GӦi@w: %@~ r(eB'..qNm;)ӄ* "$E !+K2fRR¢-*bT 4vѦAoX5Mb6 de#*l>\ӆ)CLff@ ]m Hoܦ HGSdy(fH," AQ!Կu(~͂H~,"+T@Pj(nd^6O/6GDXykom߂uY,MUX`vfrLloF^^{nuùs!Ct(a&1{\ʶShZT!q%i8f`*m::@$d*w)|/ZTFAPchzXQ9{'Xd`4U [@OD\"D3)U\g˙1P̊USJE2A5N<-jvdb){<)Ԩe?ndt=,w@D9>OvY:|eY@;z]G8%80R?BmVـDm+2vkb%e`=T\1C!_`ɓ ( F42s,Nv:뛷DR9K9Ip)D# ^D.ԩ3b) F8D^cb,$pB:ez߇;keI"\1,߃C$Fgq~.DW]mTm >GCř9iN8$y9.ۙ,V-Sc:ts6|9dX}$Ӟ\3bIdyR(f`yu?Zod3qA9=eם@(s9)7VLgT{V(+k]l"bxHMFEJ!V{ALCp}k1Gw4C;4op=)B7 r}LLAMUyĨW$lvnbj'E3 `t0 H RyXHAx;ٜ Y 1"d  A#1&I0ۍ?onj{dxKX0!g e=5a=.\W4Pq1 2Cҵjpj(j&^e}"iGh)(Ph_{:>lSL-`*`x}>$7886ۖMn[?jpݛV?؆b lH!6ZwDZjR cW"qAf%bXA WpTHFA d.B#KF2Cx өBe`&\uJEQdXTFe"5ytaXa}tO w2~M9䫺LP)%>lJ 0c1ZHljBdCy1à ߩ-۷^DNLLd[!Jf qhku*!2l0#(QX@aJNAMaܾxGsExc񍢘G#9rh 0?BG 1Q=sj B{93Aypf$zN[gh3`,d :Y >Hh[`>g푁d#˘ʔmdqʛu/9#\vz<qPhVV jemP  ɀk6ڲRf`zTAbM#FDdĸUGA,BI$#S( 1%" $CR$ 4JҌBD,Y;範 = z_9Xo@{BTx@<~}@m5y]٥aGL4CVQ garnJD4}}*f?SEFBŲB{ 2^5=cN6zU4@QdDkGHpaĸBgi% Zh,EQAI!GC̚6d ʆQE+?IBؤj`ud+Ϛ))8=T*h9 0CC䃎QUBB@# eQ cUYeșYQ 0 1 BC`pޢQ(h"%FUC`kO ai0&J`CzI!] ެ#uro-QR?uS -St{Lu*`FNR3J iNR#Mpi08Dq>IL:EWL&QD* VL5Va6f6Iݐ4.]kߪ:&jr턅Cl|Y'F!ԔE 1]jO"̓<$9%Cma [ Lٵ, Ao~Ʌ!)T}  =^ZrOhJ3HP/:rCy$/ Lv*HDCu ׄ*&w';+?ۏv2$=z,Ѻ/0;S`"GCR~vE|*͢FQEۧn7bo<# b*%IH9fέAuʙC@Eݒi>h"(.ĮOF{ߣOwoT8k}! upQ~(9\LAζ;Ӊ!Q YqxxR7=| E.=d;#=N+'{ }TnKչ*@q&t3Oګpr hLVk Z'bl-v/\qw$C1`C/Dy"HhLCTȑ h7- '?c@N#'̍HM[P:k 8(´`"b@@ )(7fHbQnmEUڱʝ-'6nvHWo`;#%܂,}0^>xP<х%5¯p磴k~kG;c ufg2n`ۄ >2It;o~9~kP9obCQ:v$7C^ }=o] sNBŲec!N5LVc? MC`- %ӽ/Ƞ{ lo7&>>yy١C< J塚06_5JV>^w%_; nd$kBfQvb.ZLO}|^ޡ3rfy`&6}E>̜>Npc>; b|6x fzDW\B9'ڍ+4^%U(/(gT7:\ aE@ુZ[3 OoZCJau#"9@@4<#o㩏^i8wx}\8<PP Hrt$?À㭗߭Rn%o 47! #|N3ʛ o`!N#~@=#[7:UwךuTv^<%֋뺝I]3р܂2ITUR5e9Y*#ňӘԒCtP "7OQ0˛9g~NĠXz,`C@EdMb!Mzbe Vڄř%biQ](KH|;I9}~}g '$cRA 4k9+S/f$"c,& 8^hlmY2m]CsgNucIqnRG*U0ָڹ;wϋf-$E,ެď<vjfUH `84D ipZVH*_ y Ārß0Z@f PG9kzvp[ZN1Í?d؎ R\I! S`M!VDK0:kJW/ g y`c38x5 @v! G-)7^4GW6ŒA~FQԓFBlXT2q/|@2Rz+(B`trޜ}kMyw& GoQHzPT ̌}Z0GHiӑwqMQfkہ8ɠQ?&h:zW _(^4F> oֵEhHcHE97TGxr$J_D.ʠ1nnl r@Fm`6q!F !;f1K]vCk[:,AFZu+BuNOgڸ]'-(.(+:j"GH"=F?p,v)YLv<ȄjCǽ<Tv5m:Ak}kZ$ő ;~:ؙJߤ9b=ֶbcΡuE<oha^\E!BmU -"4RvT&] Pv ][`ѻc 8VVN9һi :F\4uļR 4 ]>>өؘ)y^${ ` @+ N&`t!/uM)y9oW1ڤ\Z@+ ;x ӃoD70 iQѐH\qQ UT($|IC2-*~{SNT֫uHk_o¢k`if]C ±Q&2LɾMk<,C~`rxht'IsSŇOV 8r֟TL8A+Z&T5TL(QX(_? }seF'd{ T?9 ͑e;%X0M/2B%ء2&ٷI Lݖ%&Ĕxfffx S<3Bet607b:.j3i$4ۤin9pf0`p` XCI)YwG<}z)wxH=F[VD8D@Y>8FO(X#O/y(5]dApp#{}'rfd@V 0}VŶ$[ZWҗREr=&=Cɖ;4$=|gԏTȊng  Ys^J vÂ{0W-x"x;ܵ owĴ#x$gx䇹 vRiߪ訡&O|gM6Ol}W+ZέlOQHޑm 6#ZHw^˪ov֎qF& ֵo sQ9-oE&RL8iNM[ULY_feuFo~v;Z@#S&yǜ7w`hoo]Gq븸ߞz=ϚFR-zy ̨5F}\3艞ˈ2䕯 S8yWQT?ڌԓ:/RCo8~xK'a6mO^qOm`>];PEDAAAIJRβqi'xOy@x22 o"8N=MKJ]'HYPH]z=|[4ٸ';$';q! <h h!LjB ;JrJ 0\ /@]@Sr-Ud1jSɋ1HL?Cr8 @P_ۉcZzcf`Ђ%Hʜ]b(|: hH o!Ǚ(@ҁYy*"xsL؊j!?.0#vP_2g0Є.Jh: MTDY2,q0 'te@F~; B )H-"!HwW>6QI.J%Ipo4jSDEbb6&JJ{%",Jq6ItPd;})IM>.=6bP`C# i<58AR &dQDQ@Q# G$LIu)"ƈ(6UTqAD:H}"/ }&B*c\q`0MtGm"ӛL)>b^'7-bv=m$Gөr("(좐YSTLPX`~T$>YjS\FMB,$"ߢ<moE-a:O 6M:쌗3j;p;7P0lG>alk6~ e16n~y1)h& @IۗDvԪA{\µ_]]ZLV*0ZW Bm IbFȗFm D* G60YSQP6LdJAAh;dRXIV,m tĂڈQyÄr@L@A5[a"ɅbD2J8kљ:N)f%$)Jq6M1 00I190\#IHR@Ap|7L AmyJ4P,BЍ"DR"h(iihwHjJj ZV_5JU DEp4eKJe K3sq;3wHstfUs@5|$) r&P W}MEQUUE&eXAL!ŗʼnbnXC˃4ASܦ{\**w:s<`%-sǿ(&T OQhIB SfkXC8z1 e$1czbhv'4d,L9EW~NѾa9Eo&LӍtzs;3Z횜8s"0)kwNY)U֟XNQNNj=(ʿ$A. v-adP7bZ ~Dnpi|4x!m7'ݛG)~o:/$.y35.7,8r#9f*d!}:q7!<52 钋 21d %20S&`q\DR݂ ŎC@&%u%)Lɱx,1Fcn{g2i>MP ALHTCxX})%JSZ>,THe\I{Ks!i,  5"×+;_ 9BBx:E2!S+hBV@ءR1+ 51@I- ;; U<rPy'cFs&|> RC'.H~FS(:();p{gw96 ^Ȫ+ 靇) ՖbOD͍j>LܩAV6AfC\S+l?IyNI/N}ׯ:Uz ~uq- =ڵ;Лʉ5 uZDCoS;Z<_t CER㬸m#%u:_>~?3x-Y^EBw yOtfWVU/שmC+_Ha*\ʕL ۗXyao>Cކ4DsucɆJ&1}2377l  \M 2ZOy&O-/Hvi6aPTcJE[ `}!O, =^a1w$'9ve_>Jb7'< ?;NOL6IFL74S!Tb~̝X u3Ij.v= ֚UT)hLW':wCd9pka 6-+|,,u_QNtDZDc˃(ei ۾qy#ƃcq˅wAlvjNVJ|. _!)~I ʂ@AmD-9D]j))i*짲Ê/ܨ Qrxh悙mP@X!($$%@_EbXBCP$a~j4up“Ou!v rW2db)n|9%'S;Ïw \>gk9 Hgd2 饀QyDNTFBdĄD̔>vl]3)\Hv3ĂHg׿15lw좏Yl7-Kߛ#\_.m f冟4390*bi'ր! M!TBBZG@\S)G\o7DzʐN odd$$`b8&se:p2ތ+ '/ K&7}؞3p*$!L9 Œ s0LBd%ZKFH 5.Z"HةbecY8{ ΗCY!C^tf r tNC- n c밹bCSxyNcNڑLPcNHr|q}qx6ߞam{,*r(1[[m^SzL2KFіI0[U(#nO.ގ䐗 QGDC?=C_IV! f:h< C$lfbPz4'ZR[࿏jWHKlGzS\RYa&pB8e;$c[0O<q ($ ^YѦ1G4QIFJ}ԢqP57z,7? [V(*2&p4Ն-DR{>#Q}3R&íldTx` Om M l&?Pf C8Qwp<,uG1viy( ÿZ"& ss\T/yG4>r$p)0zBX$aCI >G"ᐚ5fa6?{槧/ץf ˵ęrW# %|t$ǵ4AVA)æ$#oTST1%eIkEA2D2 #DF"&FVEmX%JPy&.brCMNM|@,@ս Psc1 ~vK$;yb%(Hyb:/* ,@aI$L3OtXU4*^JJ VR *zw"4{eQQZEJ!X"\f2H+DVAUdTQ{qs@PW"' A8 KP0SLRM9cChnFjlw;0̬+j uA~fy0mAi꽋 C9J,-M*dD~[f RBha/6 bi:;;#D?0=ju2Ôv b \%`hhҘ5sLGbKGeTodQE22v[/y D y\.DCxsoےUm"$KI Ď1dXe'4ɌYN5山".$¸r@fY$KAՖTcه2TErTRdL63ya1A!E1Ȃ7ɍ6e{V5 ,D#-m,Hh^!T"L*I[&t^XmR EBHbٓE&E3pcDLN%*ScqS,P^i,f^Dn13:0!+I4bڛT Aoc%AKo[8l9 !;6Rm({c7vIǘRjzlcM[IrPL4LӤ]u@\.*tV H&f" oloۻ]0&D7LʔPP7(h1FE!h*Kmݝ!LܵAmFEBvX…<ԲR,I<0xS3M y{[>\*'YZ$f6/EZKSM0Fmj"f@lk0Dh7*P 2 jHTND%d>lB@q($(J%̉D!5 |#|fB!)þML@#97*QF**&"*b W׌L|dv8,bA%5jIe]_p Gof04Rb˴{GҐAEDW-oN"RPB) )@@PRDG`f1HЗ X*%qIfwyeX]w95u' I* m(@d&H&% "q2XvA;^vN=%;?ݹ){vŐY/*jwPeN"Ci9>#00VTI4QB)#7|Zq7!22ұ2@3q% /$rELR! ە*-H1Eq8!6`p1q-A({Tv22 ZR!\BlKh%b|9CK1aP\N‘ymDgf%>Mi S;c5f {J^oJ@JoIM:]2ؤ4a4G +Wi8o/G+ P( IKa u`q' mw64ݐa4BxN d'_ߡa|XS9Nόp-b.Hqu4Sg0H}OJ:{:c`ΩCs,ksZxI:!A׏6]J:_YT b3Naz$$A HRR/'`Y(  )=ǢaZJI& RVE_NE&lP̠"Ď hg|T% $0(&#P19s9\Vh"aT!脩,Y;ܢܿP0@?>_Mc:S56hw!g Ld1ofc'q>8bpu`2g ["vT+Iݰ=raݥX)X+*IM1CvhʅT4EÕ/~4q}pC5&NX ]Zkn.=FĺdAB sYQvOpz J\j)3i4:ǞhZHT߶Dwp9Ez6Ͷ~aywՏ_x "Dy4!zwU-KIJPTN=O;4_-1RaQ vmq%:=D"U3lG0^ߗސCVye$<$BgA1g_tm(0K:N>)|rYbn,߻n }5fǦ0{yQE=C(AŠ>s_$_ZJ(+iZ!oa (;sO lGV9_xE~Jo~(<,W/* eO4E}v[$O/ܶ7}`͒]&dR"\6 d @T@v(ł'㗤H$9fH..ũgI\rHaѸ(0mNȋ]5 f;N̊ed׌~$4I`=ݺϾ9,#kC {?/2VΛ]vf1֕(ܗCBGzo""Bh#4#l>L%*zCП/q؅s21zs4UgdC,8 vBtR=w/}7Аf/KFeF,:zx͐6з&dLʚD',YvfqI`mS_O;ټe*fҙ`lg_e7C'ŕhWkOe_2Iv!wQ)6=`oLcLR2ݷ-9>frwêneMp{= 7DaW SI˺.y+t{p|x4/{OX seNLIET"R,%PEE:J_B3Zl$H0EZ!X 50TAX+V{#V"FX2[TR-.n\mkb,;X,kvڑ!͆88"u TF hPV `Q`T+XDU22FtӜg;+Ӗ)/iD Cnjʎk*<엿FtlEp>c{眤jS'Sp$ {.sW'vR@x6ɯXǨpGB]lQ#M ܓ#8n W2MrU?g h$(\)Ye^nLu&ZĶTG+cfHXA M6"aU?td{Po0$T|Rܖ,1LK@P)ePEL4(W␟/LKnՉOH @zq$Lӣo pCI]e6T(Ԑy i%}k>;C$QDOEip,>/Mbm3Oyл=  ;}::L -1W ϦWPv?_[;y1CGwQJ( 3Ҿ[b >%ꪸFW m,0(}$D {;c2[2\u.JdrÙ\ M:w/xNp!P\bqiTq" ,+$P1IS$S:Ր!DUKTtE~U04s[ D&S$Iy3/& 6{.npC8# =Ju n"T0t~9iUcũYc#QpvbDۇbLi 1$I(ac1$J x\Mft# h I@sO;XIݢfz|Fܴlr єR*.L( U% c!|g]o?˯OU8>+2RA6?1 sQЛ7[9kxϣ7T$Ѕe2"9=L f/)vJ B; #KusYMgt!ޥ죶'2 "y([f^5Sinx\"ax)庌4vS%M%V\*B[.^@x"mA.EA „Z&r'v.(:=({-=psnlol8*TvB !$[d{}$n!=8h 뿽WCqdg`,] 9@PB jt|Vˮ) _IНU@( s2 ʫӛ"Y$c*8n&pk RI Ќ Ci7U/hXbPi_yrQVYl!%!}p%^uzM=U&GҲ{FPb$y)|?%4KA]|,QX r=C+PumDuU$W+ZfxM~E5N0H1_-geWU>3Jz2$fք;c8RI9tD!D5HeuY82l 6vv%G$l6)lMn *I%Ҋ&`'+qXmW"eFþtg7P[ 7H7tkxs}c㊦1uծ¢S諷J͵۷P N=Hl p4)J HS i0#ӻg;3º bA`VcR1<:e_,3pM}#F!i'a:䤲߿ļ,Bu~ӅIa͑'W|̵}'[[z9|wzF0]5r߄/ ,Hxb*ݸϙ.OD[T`.o<˅ K#RjЬoY>{N~ zd gN^U:B%)Zj [h:˰$Ŷ][bkM-YJ@1YyoD(Ī&byo sP__NueWyI^ݷd[ cQZf6JLGCQqC`, 0r8GO}mdz64q=Rd`))rbu53\\v%` 90{^tܖd(DgW\lH)BU] MeNDfx`7jV!rT8U4/|<݆tC&;6ҕ|$[MD0 hJ9i{1r]ص!/T 3P)E>h2DBO^Oq`^Ixצ|Wr @NFDE0"swb^rd& iu jzpO w:DAP6LלQj#Ru$c@J~D"Oqǥii ͋:i鉐b]I TiBHI6>*yUrH5#9HNΔN‹uU"*5pEX;PeRS"ULf8¤ms- !y2TsK->:IA}%qvTET˰Bdk#)7"0CD"69^Zc0p0 9Ipz]-=E t6o}ÿc% ]}Hx"Jy. $OԈak9ZpI]]VqמΔ6ZaN)Q`E5RA@]VB I{LN -@h))( Uqk0vN`m%rLlA6a(ff¤!u†"* R‰a%h!hZ 2(ib&A@"67ْ7 Z5ı'YC[ʧ {mEċt9VC],h)\0ۘ`0;JwH&T^ڷ*Mye3ȷ y $q@" 8aiJ6בV%AL D{UF2%h e ,'z_ Ic<%ؠ:< `A)K%)JRs"KJ 9#scoz9!g-4j{6x!ᩩąԇVoe6~.1&*HrԾ& swՃ1֘HH ԃrk;4wP:)QFrQT¨TXr7FD!Y@yx atq[TO$RR>8__>'85X0Qܠ-POQCc[E;睎uޫw>ugu=6q݆ܩ, ,*PSEO7dBPbFd|/m,8S%$Nj=:ktCs346]P^;NPK=|ou6r{C1m@I ˒׎ov8K1b 󲈥d(w/DMXTBSG ':p0sLCIBMϢ|: jUdt>⑽/8m9g'/P +Մ(o@r@eX gLCv>L/5ϻe.p!:)