PACKTSzj^FIn^AC "gG-yO$rSYǴzk_׊={9`5dH|QjA~QI|FjbJj^IE [:! Շ -\ ̼Tb|:7%qdݎI:`hvGvfQ6Ã5|e8<1ǔKo2d񥖏WJTUZoTg5i$GrJ*x39Rr{MsYPԤ JN Spr>ȓ_噲ӠꊀQ_o)`H I,G~*a5i" S;X[vgӫ*Bv^5$1](5'5m7O\p^:Q3h1xp2`L 7 vR:);ZPMF#LܱM*wS(B}ݍ;}q40000 kirk],pD[F99QڠnNȴA9 u{4 .-r-xmk0_[ XcBڭ)"Q峣Z]I÷%+nw' _oXZlY fpؔOX瘑e?;]t2=w,Җ%WНG'E TL\ְr@H;Uj$'mٔN.+F}(zm8|+If'Q!o}/:FE~T['J-ڌ=QRIWhhkXDFgm".> UZ4dGƿ?N{FYb<>/BoDR g{%88c &m<|VAYA ^4pxUْ6}+̰ŷnRxyI !#0_soJ%H:}N8 `cuAUc+jq,+Z$  8 j0bAtMuU]$D&KsiՀlhVP "zm~oo@T}<I#AUEQǪ|oUeDZN,oϜ-ll?lg88e95 :f3 G}|xJ}mcMQw7˥)C™@tWaTleSQᚦڎ64nۍ>㼜q@>#g(PY׋~LxV]^;$a?}\ fSK meʛq*δ cU?b^})R .%ljW.!Qi/zYlG=Ƥ亴Vr+;UAmVoI 4t^ҌO{>ތh3/HË"Ə-|wu'Kd$ZqQ~+y^ ;=u -c線hie;ПYa^HT^y"Ci(b6""1qYڂ9Z_hsnÖq9m}~ Q}I3#YZMo2-}-Jq܂#4 J^-JZ(#@S\Yr!J  TepYuI*d7d0d8 dKQ#sp 0ga 0(!ine@˰15FF_8F`/FY8+Y `5߳\,y19///=סW(jbR3gtĿMv 8M  )U3z!R1cC0H[,)kUո͞kp-4C tx"B!7]See 7'>sܔWMZ (*&c]҅&-e[8|۱鱲*_ qBQxUrJ}+*s'Ԕ7} W찍}^φ8.W5m\^O]u=CV!ov>[wĄ#qɻAԆ/#@ 3ӝ2˯E9N>l"E<IJȖ;gwxEkZmK kj9f'G Gɗi$H }QTQkBWM0:^Q-A`Ow`Ue>_ ¤q +PErTxs&%n j)25 q,'X jSH<_rP+4?"/aa֏ axwI^)5'x>aF܃`72kï_onLivbۮ3O~Sy]Wv_O1L1;R$ * Ou>8lwR y0zQ+x{:R #H]ʟFO˘2ƈF2=Sj^dT+Kwm0mb{\Ox^9^Į &&0,^cԾWOa<-Jk`a)jx}Uے6}W6/IMƀLa ˖ds3cFU :}ԴZa e,R8 aICDyBıF,U8P % #,F|2.lФ n sy}دuSA9Q%#r, "_a?3DA{K<+ɬ=8.1&a:pa,4e{$K˚(d(N4͜/T [hq*M%])lF32)KЮmC*Jaif|C"Jrx!觙_blu.8+r)6瑩1"_՘:f^vnW+N#f%܊Qz?}U7fAۛK\r{r:c̮GmILX6b/W9H.";+f\[Uי6s:JNpB:ҵx &r}O$ j[fǭ\fjl&qyR,U6uIPtX˺z+ss>amzgdJ74psSv;h4Mñe;ZsgHX37Լ\ 4VYcky }|(D˲/]˘u2Z1+.52M2m *S׽DA>Eࣣ4GQ?og|NޠZM3w"?=CkƷվ]k/wHjx셃 ?Y EU(Hhj X8$GBGG~Z/lz}ŖcP !E$ 5C<1b}R]U0(rI$.!/۲^}YK"4 %K7qcno8wtZ>0$ITQ7{G׶ެ'n4 _YTDE;tsޥE$IA9mسOan"G~[N}dɃ ݜ}l5t Zs=&v[p>C5{ghtT@gٵGVŝ9d,5qTҐG[̘q3_PAƊka={O"~ >NY>7\onށYG3:llfF(D+.ӹ7cd5Oaw'^ ƠV5c TK)xx{I 9ac'ci=iCs>Tdɰ(V캂uٕi5囜4fWnRpoREm!ȩh ?'2;R2]{m=-oDHV(.s.= 璏1[nx2`;>>&e:mt@ZpÑtGD_cUQE ZYgdS_EW5zY+7=3Ůu-vlhۆ{MǵF{Lt\W WT*ّ˲Q{tb6_+;3I-om,8؂4u(.w\_aIh=Y\rHm5z>yXn*+<+tc^=0/TPȅD:a󊪢j[YlԺ}_>4e1[q+*l͕գH3~gnzPBz>^o%FGcVc`GbtҴ7c9ðڧ}ig 5]QA+e%~r,Dܳ :-mzvDڶ5$$k.x ̳{~MPؒod FlaB~ѿU 4Tdȫ2L: |!jz0I„0n͊lDS_&ZdTwW' x2.$mVN&,h~GMy$d$C1EͲ<'9DՑ P>\F @AN ~eOp9Βr8bOVx340031Q,..M/I-I,IMaX[Е'.<99E%(zD:z'o__31촜bs[**tg}Jn Y8͠ x340031QHMON-M*Iѫa9jet59uׯ7+/H,I(/-)LOO-Q>cYJW6̫ނS\W ̏YN((:]+T8xVn7}߯*A*u$mٰ`)mXP\Jb%^tpWZ)} \Ι}{2+I?ʋ W9I_m Y[1{x^ɫ70r ?Ex%I-xZcd:_n ޜ;|̯bbö.c)Њ.Ho=rJU9Z&BX!G4s\d!TrOad"gFAL[rxlٮlq llܻm6y{[cDf9a9ސ3 d&ȒMcQо:Lo^P!y-NB4G2ZOwY,e4<]}|UZ-u}i5pXȯ+|lR3UK @!8|,E3ݴDTg4:Z: *VpĔBq{7z\/Ҝ$+_ߡ%mjj;>!]%zәU6cx?aLVKtQWR3|Zax340031QK,L/JeoÊ.l6< !|S2sR 7͸tFcªv6&@_\X̐pݷEV~fGPS *vg٧'?SfwwY`+ĐԲԜԢbe1NROkxZ?KjNf^Jj^Qq *E͹.\ALM+bQs.^(5͆q*BT0$bM(aϾ%WYdh#c.n<2/tx340031QMNMIe*w&ۣrssRnlK6Uy(gQ RT. nPAdSRsνUlW&}Q`/^cّ(,NfHأaWYK-)/fx_eeڔs2K{CTgVėf2̀HI-/̍O+JM-/fx(b)pdzCqޏjr?^zQ;{\Yws6f%甦2ovٴ۲sh963/Or;9U_~̭گdRQYRZ̶̰DsVϬOk_YQSPrvϗV{ M\c\-Hd8 vDӭwo}s)w3+!ꈢRe=W7MIhGlI2CFȾ+ ~TXD$)3a1;WwͫX[*bPK['W<[Т/y8W:e#IR7KCdLr _J.tΫ2ȜًCd1f>׷\({LȰ/ &"xO100644 Makefile9ى- 5S]Ʊu(100755 lock_torture.shٽ*_{d_7W!ӻxVmoH9]C ޹R"0rI9Wػ:]߬m^^(/33/{.:fϠ'Q؀+ L5n4Ox`P% L jT!1א)TA uA˅Y ;9F Wn>_lV."T`b* b4 pCj잎1Ma0 H \*Mk8'`m*Џci+5k $#l,3&&@o-H"yrBt> >y7;&NK(f 'd JlJ{/?t <&7&p5\}` TR#4Ot5SE$qT9IS_4)EtwiN`&o(BUnbPΧd< $Rx+8;oN[/ZWf&y#n{PUS2}/=D52RV"ÕDuJ`b՝!XUkCs颺JK2ʼƣb~9}?~0$\CgeRf2<̓`+amS0u!uq^I,# f%S'Zt/-Y"* ). R$>y4ỮcվOeuwF.=y܂KӋ#\DnGsS>cls khǦm/v ZNjqjvvlmܶlkEH"a\= Gj3VtX4`ϴ>؃cɽZ࿝?kQنt :Y$2VaՍ ꐬTJBoCS4b2F h!Va)%y~s:vCOJIjRGר+)-ec_IhFA6<=f㰟3P%#R θ5͹ j]V^Jv[cZ|u۫Tit;P)h3p d©Af}rAά@-u+./NݞmU)tH^>$(>^nVF0mXM'3®M+?[YV4rmVLMrZ9ݿADiTy]7> \6xݽhܴuؾ{q{}kvfoVN=8g:Qwnۋ(?5=&x'ȌZ-/U^-x340031QMNMIeH{0=d%֚6A؏_21"hO ۙ?izM5M"X_ DOIm~0!&%2٠nJG̬;Ǭvo17\[n:sJ֤pW IaAfA*lД^T߮w}*fhMʗHfbdw-%y%E% 1۵0JsOu QS\[0'`2^BOٲ3fQ_\ 6i{SKϙ?{E_ WeE%@r2i]N}e! f&e3Xm#`x+VXlVpۉ1wyxEb8|inf*g7IAVcGVx340031QK,L/JeZN_f{X^f:}!DobvjZfN*ۍ"9sNɞy>E@&@Ȱmۡ]$.R!, x340031QMNMIe8wYMKK&U/7RQB;K$%pz{($$)f޺Sխל>e=O$٧A%3p `d{[$-hb!%% OVڽS-C֚*MC}x340031QMNMIe0ۮv_Jloww*痥$Vg0dy|ZxӷrUB{z*3sR2K2sAk/9Oc_|.n$٩ uFS}1R=١(*y}g\("|wW`HrSKRsSJϛ>4|{yFN>]t$dI56[=:!B) Ԝ̼ g^?w>TYtyCHhBTIzW&ߞ+G2 *FDM"V>oz0 IUYf~N"(4>3_q"}WJ$D^p=xW[sF~FXf"X3+ cl(`74, T I]9v]]郍{;AK㋏0piĩ9h$?ޏf:1cfDP8ydb)6s9e1},A%5kS6f47ɽZsb!q!`Q߇73% Z*-7^!R D}.+)VQܘ1Bt"Ē}4eȂZJᬠ'Om `4 zΥ;IXFdEK#rd!$8 Gc9}  G g<w۹Aw·ޭt_g2>Q,`E"=6-MMgεm_LŴ/Mrw9tu߿u_=wuNEdwWk֞tK]&7]3 %\54-OT%aƮ^o 1p0 6J='44 >\!mk5咮m7ΕݛL+4qstPڷ%>`+yVt .cTux7`z`Di5-QVC ZDrZq>|B=]|3YR&Ep~ ƊzSF$mkkJ5sK!XGC@=E,^h<Zf6nU/^J/kAƦ?fhBHa kJT1{USjF,eTd,VBx*QhԥC_D 1PkaAc/iBZ8Zա_ tb>zY`utl5[OJ~ȐQ K%Xv' DmCEB#!QRC &kIRҜ́)zFsf `<4FDjs&w;9"W3F㑃,nӵM;kuOO XJ,#G? Ysv39wd H9vT;Ho9UvdjT.ugȦy1oqLodf_t{9:/XE00spJ ,q0U%;4sb+FG5e:qu)"Q~\rV)uQ%ESȵT}Z2Lý&x+U>]ҲS%򙴾Fo5VKpzȣBל\YJԺK9HdkƑ˛$ #G~ J:vx*9(dVD\E v~XkRgHO?wo,S"~_gt|)HKOOgx(|xie⻂n?fb .ɥy%%y RN&zt^ 571;5-3'+3wgPßL+U`V;EgެB* C@`rԥO{I}LmK?ϰt%CџF/Cx:3p|?phm=*/.HUX\ZTWWbaWw՚KLGL/K-JLO+(aY~'{ҕu;=Y=sG780xWoFILBC=\r IQ zFװ^'ͮ {H{gggGuڧdHttz|saHvEmo榴?ɃlIzHB<9k tԝW,ԙbnsvڣѰn<8>rYaWA(KlZ',S_VՌe]?T iJae Sjޒ8z|FV\Ap&v ɻ8ܳ $zh09PWwKADT`X8E?SoaǶ^5⠟52>kl)d:9,Gh?xK zp|r,/@K$Z !v?|% z\;c:i#= G@4102hBmIzؾiqs=ZቁJVQGfEV w5:6Z]7E97Jtr 9UbV簢;vI{V8Gtg|T,[6PAN{K:`(=#IF(l2w* kaY9"pї7bXM}~WҖAoZ[AXikce쟹6z$7d\9YUòvoU. v6C\i'OgeqMZz0:+3Avz8Nݡ$/eݤ+LK'N sm.UnaѢ@;\rl` ϩh/je b+sUdY9/Ʋ7?;ޠxoxyyN涭}+ ,bb HcYߊ+^tXZ+pi@׌~f$:8XzLtIܶmE *=<`lrxXiLܱM*wS(B}ݍ;}q40000 kirkdJ+e# nNȴA9 u{4 .h%9x340031QMNMIehŁ=Jvܜ 5Jef@Y[\ֻ̠%|׹^jǖxδiHa@U?8z4̑n[dFe] ,xδiB6ii{l VĶVxδiBH箯oe޼.k5Xm@RxyH`.i;4 գLc  xk,q#cf9g<0xmy pʑD9*UBqr\NY;ռ0n\B#It:~5*2"]$T[B!}Ϳ<!a*#ծYsoh06N:6u$B"Yj^NhPk|9! ؘD8P|SwEn=/3(_1 6znpwG<u1 ,mP;>7=Q/_W8<*॑FA'z^pLwfi21y4""iˀpu:QzzoG @ݖbC|->Tv n"Ϫ΍>K_CӝE_pr{cPe?@ qUjbgWIUM*}%wU.7nqxk?#C42D'=9x?Wϩ9D tL!SXt& V\]kCÙ_C'К:vӏ+)A0"bźy_;!L0!$M˥ږ*J9F٫̴$YUHvJ`E'<6huUHh*EMdjH4!ʵBYnq;Acz@l#n>VQ>4gZKA֛rT ߁xYȢ狟9CM:,vƱ.[ad?v(vCj zoohd- rs="jei%RfbȻg@IgQ Znn̼r٧uک_$3}c8p|.~s›ڢ[AƠH>I_'@W>~YxSEJQS qlTLP '&Y'Vɚ80 R鼣}VYke_%# ŗ FHzW53^"#^[#UtGO'~8*Lt%S%AX,3ڬHyY _)pRr㾰Ly8͢wӣ7} 16M+MVD15"%Z٨;־3x!vuQWrLt:c r2q.}(}Kgڱ;i!Ǜ5.a'^;A}Ã{4 '>3XK^Ca}%5;7Y{DxYY!vO#$tS[̖Zv4kÂ8OFgPG4xh͟ 6'4 }.ڙ/%):j96.9S'5vZ }>_Ͱ9~GmdvpܪpJGC}g[:2Oɚͭ:T!'*#OG&E< Wo'?|K-4db$ȣ $ -lJztd:8 :;w a-=g$%RË/SLcƪw>)J^ 4ۻz'6N|oX}P45`itJQˁ]KeSUjѣ j| N{P)Dyc,I^3ʸ:CY>K񅌌͎_ui~4tI]2T޶DS?̘Xg߮p>:ȡͺ`ff$mn_d"pSw/N; k`d_Nx/G)N\s>3cGD{L @!' ziNџNU{"Fd&I.p?u+<ӹXGL B]^j9Bis&k -6#fVQo~BYqfzybf Pn5+{~ks^.dmqybP&z}ᚴtCFf3,#y\jǴ767\\IaPs-u~xsEũe)@;3Qw&`[W/O{4S2ߓgcr%OL05hs(kt^in"PŸ >w;z#"o L$3f1;fTm^¹YD?M[a>LWYlrS̺BRϺ@]\R\_WP 2n0_|wV)gU߿nc?uO lEɪZdxYmsH b ysݍcmaS@7[WK#Y/H2fw߯GBdwUfߦf'#^ NB۲Į^sBV[i/W!_4X]'ld?W4vr |?ػNfd%Alma!ȳsYa -BKLaQ:olп-WE` 'M M'#φ\ v-tk kwXYhuNGy[{#<Ӷ.YaA^2d0ncO[]tEh vLz]ף~QpF]{&"AH&lc+쀡 C!Y?M>ޮ#^wvT߬(hgx/Ԏ5ţ[ Yca~}J؎a82ِ=4_n/ @n&wZu8? |(@N- ךps"paCbTZmЬ$Յ?rBX)j<I"r A,/ոP?&|v_OFX+n8} rtq& bQW/*YrfI=E5 ..gf՗6EYv;o/+U1:unM@N( X-gp:xK5C1yh!cݵ ! Kβ$F.ow4|B4FPmh*eYzT&gYM%rL>n^~pJH8MٍOh!}ޖuaC=?PeCz#4~vHdz]y%Q 㑵0~rۑ0.tq~Pw}l+eՠO>:קYBSR6ii6;, ۋq! 9(q6GA|$sZvF!K9!8eH/tR7x;k~ZwƠ$B\xMI ! & $hbA!($ vR vMMĄҭzᇅ~\q XCSjIR"iԴHjZ$5-IMT!  $k5V-,Sf`Oʂ2_9Dj&4L+)َુ|M똮3QaImqpGǃxtuadz2< 7ny4"=^. 'zO=tIIΦQ0 F( Fh4mF;Z) O, ?,c'fg,ZJFR*T>|XB /VX#vxFyc J[1Ͻc ,(ʢVYS)66^2GhMf``4Fhk3F7F7J 5Z[c}ko5ַX[c}ko5ַXX7 o`}X :!@ :Rt΋LsD&=ރރ~wڎ㹪k:{/*{{J{yC^^e$EuQ u㲘Fht,َ>Os 1BPHD!QH+ Bz!!DŽBR7cɼ,H!)$IER-TO/*\hA!ՐjduLs]oQ0 F( Fh4mF;hotct4 sDJ45X\(:)^rLJg7[(x6'}XYQof2F ڢ(Շ%g;-j%ȯ5Y9DbdBg 1 ~1F*vxwa[fO~XaDž?mߧ|ܕ4 F(UxY#:# t6V8()2Psyp5F:#ȺeݲXw{= kyp#I{s'#FVY%>a.O|~%:r T R3H uCY4%)  H*jIzR= MQ P P @htx9Wyí[;_~C"JJ.͔hARm(ՆRm(4#2'knSʾlNxxO)D'y9]NrRDN:nY;u c=zᇅnx 'zO=ty{6Γv=7XNr4 F(Eh0#͕ޏEj[lqp2?O~8CL+\)F!B $ BZ!iv|LK:&b!  $BVHˤj~?MA7YB@ A!AHRX^C!(D!QH+ Bz2m0l! $ BZ!ec>d 5FցuL%_ [3BP BRn6ۿˮ.Z.ۏ|`q. )?VAӂ_{====={4G\.'q$8 _˘)  H*jI:RTOjCjSThAri(ri(ri(ri(rG,7xB@H9ai rJ~w;\kڡ6JeK ._+oOyɓ%-~?) %yɪ>6cUX2j%l +l{,=-[KOKis+" A^wXY#:nY;uzzC:L#?ns]9RtUj&S`-T/]jKuwWUxRy7FEk}g>@4@M|&\((3ֆIPX?(|Bk<܆e{OքYvm@Jm1}xZrzo__k1lpZגy\#ݜPXYN1 >1ͫ6l@ ! !QH itB:!^FȆI"9e%n!B`2[sG8rmX,c}޵wrܵwgGR`%U6PXBPeG?mG 3Q0Fh0Fhk5F{ՊO.|nCI!@*P݇fqp}LA-a  xfE'2t3sCucP 1RvOu_E 3 Ӌj)e !vErkr[>M"7c|X*_|򵕯M(pc~%kd7[VrP{bEk{m`i!p R#1#Lt71ll J??r+e+x99~W~W7r8]U#ݸ;,#p1Cp/wy~o5i٫i+e.#paѭbF3,EcӳJgY$>gYdDU3dz{+r0fW1_!UŸ}/ (2NtS<4 $pkk1BPHD!QH+ Bz!!"^*BX]hʒ5Yցud]*, ,3_1"<hUiU"T%9UXh:Zh9:G]U7GhUJḻq*QFCkR@*C.Js.1yJvHx %! ?,OCﭛh~RsU J9Ѫ[li͖\5Wi͖liUZsli͖\ V%tDGW֏WUS?~4?(oši<ܝq[7ċxnr*T>X+y*sg6}M]B($ iXyL`,uA/ ;T~)&q8G/,Wm=6CRtUl! A{z AA+x==|2q=ңb!  $BVH+ B6B6խ<\/6;wj9t.-Jkoڋ-FkoK-Bko B#蹍l[vqt<8G[[;;{{7oc{WWW֫~mJ\$޵&pז5.c>2^j)eg;KY) 8Okީ(b=?8i}9R>?Vtj/˭ ,?v)s[~5H~6RRKKv Uy<4d#jI ]BPHJ1DUYk`u`XGֱT(2Pʰ>^ޛRB@H{I:D!}w"'ֹDy]u%þ251_οvDUB-e eA%Јw[Dc1ܕE2TղbE&V-BռR/aVEApQZrIDe ϕ~;15'Js_N?nɼ.y,X'װ>x_^|Ӗ:o)p.?>ʟZ_(*~~vc*ctJJx?v{8 Sy; f5!j5,96J4]`^C.CH' lli`ɬO'Jv2nR@*CeAYPʺoMAØT*1G~(?pYe_vRO||H+p?;4i _ҶOvyկ{1BpŨcQ0vIoHlUAʇ+_|s2tK:gˇ^Y#:#u˺cqHW)ٴ˙_UN`gRL_wju翜K:8f8~iQ4FѴ󬖧';ou؟5RιZP* ʂVYS)66H-e_5 i wN]+wBPHD!QH+ Bz!!&ctw%/7Ȼ j /6{ Z@:nY]ZKwi.ܥ4szR]j`ҕZ߶ku[ydOIp^^xxOU'xO=yU *{Ľ^qwy\?WUӏUsk {qMC=G\j/^X{Cr'!b!bk|]Ow4>'!$|O}O>'>||L^dhɚk8+@N?vx(xQ>:3Q(pZv_k f2~χz\ˬ{x ߓn=Vi~:*˓  Yx340031QMNMIehŁ=Jvܜ 5Jef@Y[\|=cw1O1eI^x/-N-JK,)IK10Grv x/-N-JK,)IK10Gq  xkeleP(9{5'UE>1fXF2*y 0x8qBȽi+Xc` FSxkh8y=&&%ͧX&q|` ¥x340031QK,L/Je!h x%u޿hQ囘`xz=sfjg,)-N-JK,)IK10Kf?e{dKljv=,)x7rg,Tma\zS(ZKkDzSA#O}x  rW5F(żn~xȘ"mxC"X[ŝ\\5 4x[͸qto2 +\4ћQ(( 3x;|yD\곾3뤛s᱆KUp`x}YFfhlvc0l}pwF$C*\#hf!1sfcΜ,#DTF"Ē !xS|z#(@^lqRCFi4 S8hCQDXy16'_%i6e0/E0=—Ҥzdmi[z`c,]i:MC$Y"4C>qu>ҙ.\eBʳ.gnQ.)`ĈXJSsTԷAxV1ty\L7ANQ>j&@ çE]ͩj'$wƮ5cSJwd}t=DG8SɃV'7fYϯ*L66]iF܆Kmv2+~z}vV.+N#$NܑG1Ɇ+g J{am[amF]x[q)ӉZ cuڹn;n!LtGQG7q'xe;ܿ<~îθh$-͑=~eL E܇bnŚ28 |aRkNAacxچFl^# NMkȽ^ZYFjWgl^RX2M7͖~jgIv9ߖڟ89Z EWnnw{/ւ#kS:L& Wq/|?u8ao)mQnܛޕ')uPyire#v>Nr] $˵l.rsT.>V[sA 0 84UON;}#7%tDiy"p h,:Tcj`P5cl4eQSvuUv#EӲi^eg~}cE&WdcD -~UlYRԣ<j5p4?+Gop I;8GFQp^QVҘ Y x]i[7@A\n2@&cPoA=WtJHlktY4<zz UR}Ao@/uF[!ڠ` E O#YI8 9uWaœ`iք Je2  E1x!N$z"CP$H ax;D2_%4] !r] d}yw2 1xxWQ5̒HΦ.ۏ|M40000 kernelFsh0.얍SKVM<? C>i^RW'ޔExSQo0~MmYB4tƠž$.& i~NU4it/wVA>Q91u:q7( {E}QJԔ[⤇N7~` $yMm{F-\}, \1>?~ }C8|cn?]㇞+3-S#S80O\^r2Vߢ֟On=u==ښ`^L7[Ծ2fBͣܞW5!qLˇ/ȱM=\՞Q0?WBMWʱ^X WO?*fO)-dۙFX$v?:YL킁wʈ>lp:,܎h~f0s024̽{Xg3țÒ pݾ_P䀐HEs- :Ւ`9 f d'1y\9ya[PP"Ve@ AN 3TunP3,KOLI\b]U |C%mFZաH,{^Ty^n(MD2נg%v(Ҝ}nkRMO4¢\}~Z ڬ/2Ǔխnt%W 8v$kIzo Uj)ld5ͷ] *FePrƲ,%%o43S+ 6[VK~tP꜡+rz:ɦ5rJ@q6ACgء|mjSrN_ kFTj)'b?dX7)1Y}tJ͍ ̢~|07MtuR.ˡ!0 fXXq1 X ~NЄSdu5i-wR?Ȁ*_x}ێ8y _* ! i Bhrl $<=HZo\e?"D|$ $ q <,2`)KAJP" !'\&}bQf҈ :T-8 ҂Kբ|70G_yyR3i*"%6[|}^Q'33o 7T}c9=_u P =vT 5ՆgnWhV0آ&ϥR+V`!?)pʕe:T;ZXNJf=O|ET&5ҭ )WfU][^qqͺ%33 kU9Orbw~3WQyp#ÕBۙ6&jVFE=*)--ɤN, hM`+O>7c+E~[kU8>V.KV#Qe0ʁ9]tԳlqy'-$3(4G!YQ̙}ě6:P:|rR`8I}j7ޒ\O/+n{OL>)+}غ;qZ.$2E❧6ɒ_xB#.moye-mHfrŷJ#-T4hjp ˙joF_=5J;ME'*-*aJҪ r<+p<% L@-j)sbƀTJ, 0 *~b tGGðd44Ǔ8s?[@]N@Ze jQ xAyt-I@ P{imN=J_4VN*^#vx}U۲6}+>ˮ3S/) F6NͿILի[h!ojb ӷl (D SZ#m-md# 2u6(DFTP)V)|ϯW^r\ifL jZCӔe_׿B .ama1'1|{^`4` `lw\j<8N8>FE)5H] a' 2JwwNF[ylqظ7slW#V^k匮mw6v{a@lMܧ΅u*5dZ>R-9O>_փ:\"rTtm/nGyA+7j35'QMw=ټZz|+soyWnkzOǺ>E| $3}Uxpڈȹ!RCӝ%;Cr-w ṟ'ヷFC9R=o]͂@H%+,Evy>d WGt}C7A}uk+=Տ6nqTѰ\& wZRyjNw4h.-yj$,ZG 2":fY70~hh}mtI uۭ.g+7lk']KOpCΤxkkܜj!+/tf e&<5uZzly4(zA#hhQ#\[K6ĸĸ/wtSuXϣ{, x VBv^1X6o6ϠL™e~3V b$K P OmCwkDRI!QEFQ3xYLv :O>`1.~+Jq/Cre `4@+ w)dJqiiP_ _JRPqdo0I Ah!`~. $f0ߕʹyz pYjx"(YXLU@T TPG<%ē_@-ye) 6Ap@+N_!KBB?ۇ?4`;p*UyL_a.{\ /gp{Tܙ&+9 }~їO'V@@JyTD0#9!q~cE)UMJqZgEk4fnzSS[_g*?+F<$\W`*H âeU߃s)SdQBìS 0qax}]Fso|ڤEQoa@1ʦ6Ienzj}gXHH$.dYI8#H54bAb͢H^З}k(]2ᠵ8fv_jn=,Z(׻NԻYw/ '.Ә!8#vV.@Z|+l ZړE鴴1RP5/pl`D2>%gYqI+G2&npE&?@ Tiؚm1R߬ϭR9дқN$)'EQ;~?5+(WxgmwSE?#ُc[1z9E\xp 9gj[i,mݣNɥTY>BUE`7iO)B: XA:#^ ~1YJj>/.Gzr5wKY 6@8hKw kWq-[Py_\|{exA6MdgV],鬏Z 2DFR }XF S ul:hxמMkf%S $ۨ,]+5Ͻ5Gi_"-FPKm8vrTAqiH H@dLxepWvM)OQ@+"0$_?WY~**4ZI nUS[=FY;V4_QU]`ʪ;H iw.F^MoWJ9Y4`oX3@[8+K=8?  `.Z%J?7?XKk5*$T?g`x}TےH}+mܖ;HG ^FQh}hA!UCLlnndF̓CG HWdșaH6R I" \f P!P6XVDQ @ Y.XAZ!ւiӎq&CA#A.%UU26㟩yx|&f9,~:d[k¬%жګVƃn$;J3Mofd:x196ӦngO\w7zGr~rQg,yN%/̷c]QJNf59jS.CsC75α=͋ mED۫ r`e2[DXԉpT^=ɴ"i,q2l[Z[3A-[.6+b-i~ *= P'Z1wI%"d˹O,`|ca++WڂXaׄz]Ee(>l23ç"*Woy1rjHN~v>Dъ@P#d(-| NA)~/Iɥ 12^o0o"0y_/w3}|/f!>i^oFnݱ䱼y,| (;yvf}e[ +h]0n.iR>7E#wq̨Yr9'9 [XOiTU}cc˖@ae!c2er.gxFfY`2) /KeL\$q6Ё}>?ï`$QPdV@ MESUx8.4r|Z!W]dx^i:0-'[ګlqO|.V>ж56enh Gt+_Tfmx+Y^Z[{cCYtӍ=ALZ>pJd0ݥbIlS#F=Ia8 9e"5/JkuN^Zk>!A;%^x9IC,G{إ#RQ*Fc/m9+hz\k7ۛ;8 CI6HBbܟ,,6}Y򼝰l. f*.jQ/9iw.%g_"8hX>XF㕽CMa\\"fCjA: U7F:ypuԛN)u> 6#z콣9BJp/'fȸJjT Ho/UMGgSe :K2f6Fġnsl2STBOaW)<i~JŅ&Qo\bHQ{)架 gkydNe`t=xߝ}>,^/Sw8NѽQ5'p{D| |kwmA%oJ2Ơ*R۱P 0]'5|J(AA Px@>{_*k=z+[;ADU{Cy<NߣJ\x}KF^& L u3ECܡAafERK|5B Ed!@RQ( p0/>U5[s_IE~p" 2 !OMQ ~+4h V2q" &RAemѿq>Ft| Ux/8.w傃riSx^kUuXb]758)M6`YHs)m*/,wlZ& 3ETo^OҪj7 %e&Kskx{y U[P%2$ܪ_aq ,:Z6k*;IL<$qTP Vf"hig{X'EfvV8Go<~6{ؖ33h~ l6#cMx݃-ݺ, S[vܕ$g[ ›O:$<6e{Vi2E1 >U 810 \JD8>4-b*T ͋曮L564\Ύ(,k>.Wz)\~q#ө,j#+7ܚR ME@OIGY>>NdAҒ8y EQB?xu8"0J""E4q>[f5AGo-.-I |q;v mܴ~iQRM73e u*y|oBy": 0Eͯc>wmټt:k@uiQtږ4njcxeIƾӐ4uq·"dJ nxUY6}>ݛ}CӪ!Å>TN$,&vت2L[Z?$sU>50ġb.+RUS‰%*X= %z*r$6DX CS5MEI)D gU p[83k~?A5U1eSQEUEA8O6'-)#)|y_ |8+or@{sld0zaz;Gprӵi6zrp{_mWv74Y4prp^ F*0;-{kݻpw۵uLStPl fQ*VJd0q;Ymhwaz=B{5+usFHﳷ,JO㑿)[c+* Z|oYo4 /͖Cnv>G˲\2m~ҶD;N>0r HxsHS׻Hf6moPa';O[;ob:2v/1Fz,sEO g{sSc_v87aEhgvUᶊVbj˕Iї2렝c̊މ31[8ήϏU_6fX_-6̓zxz[/5N2wU\,XE>씏o R_/'U^YօvY񬽵 *QU ʛ'HMĂW`K4z2!J)Y ((oqNJp /&VZVNBEs*pxfBHJUһ.)QZ# _9nKIQќpe8:1Hʶ.~ I^sZ .Z!eCQBRr۔as\{-&U4dx^X(8~ ]8E5'%WM!ƗgHZ*Ix1!!CsbxTَ8}+~T¾Z !KˀYbTjiiFXus=}!@0I`(cYE!/r3% )H$vqΓF,GL2o6ccb8qJ𽹽ǟأet(hI ,H$WU> iH2 EKS>M7l8-{'W @SYVֲ޽<Ԥ03-zFՙѩA!Eڪ M!!NmZT:9,΍prjX?o%h-FWB᧶ Z_uu_XxSWFi7yo:HzqbXIFsmjttVWĽsOLBOmr˵P!-?XuJB־ߴ Y{9T;?'?:TT1A 岇 ?6+znۑ-NS:Kj\["S[~VշC^ |9?FGD^_=*z|{ tU=B;֮kʞ J 5/\L VM/(h8H (gˇ<gSywX`nK2ԡdv>-ຜw2d x!muahժ,?-qʡY$Q4)R,Ԓx;܊pQgg[yX-g?9*u!֨|2|xy8I>p\otNgxYFnpk1>8EQ F*/UuQ?"btM.Ha241L 5E"J*K\[T1 "ʩ2E&(b,J"MSINxpcE݂-l/e (zI?QSCP&(\R%f X E|i0U[X-W8 Xvf/?4gsd^.׳xҬުNk2K2gpӎN5Ynh蔻hFp 48/Oo^y(Y}'nLmmzV{mb}pvE.Yln8@3&o .7=nިtv8.z~^[,pU8UG~ 2~OMoyE*8֑9VR5' obnF$g*.56oao*l|sJء ͊E?)Z;9r69QS(iR3,j8nA!Rɬqr1 <|WDwT7մ i.KC(ÒVf Fs?-.Y$-fes [{E\^)n9Z6qf7b=_Wk:~@Ryn ovռ /[Ú(nWv-5&Uj9p"p+t~n(Qwe8m(쭸ѐbQuwLNvO~cnr=f\D{ʺh! ]e E4iqp]Q N# 7}/ q1FD }1P)~Nߙc[eCfWUx6kPueӏG!x}Uiίʧ861& ƯRSf\Gyʋ J rtK]RAƪc$'jAW}{䪚,] 98-UTEm.(b[:^sQ4UeQ8b&KC*^bW]#C )KL%CFq _sx%&r0 9#sjmڰoF@ֳa0(d4F>=.&CXdKnxbml$Pdҗ\yCdŋR #C\Wȃ-q:=M(DS[ŽڧwOֻ5&A:%ӍLdg n.8,ˀh|$ң`'ѦRZ5 2ʼ3ja+]P0/qUֳ wZzS5`Cc$魾mgg${l.w&b.M6C.N&yTZjcjݦm꒷81Xǒu䬯Ɋo$DVx^<76*H0 N_q+3g j9ADn#4n {8$牼aG0lĝ:d|{X*Y=ԑ Ǯa,_pa~KHL})CSu.Ռ@FWg5%H_ڵ"rߙYfdiEvmX0\Cim nri\^L.ֻ(K6& e~-DOq5:1;xF=e`{uDmR^/ݢؔGڤzo"p>Ku͡\"Ur6S,y? 4t2ɪl+MG%V+!I˯Jq+iʏo5A!f ܞ;o ]-hcY|eSZ)J0ˑ{eb4 (.+n!ECYOP)!~0(# %߂jRFgg5I×E qoփؘ.z@?Q7shj .91|? Ž{;<.0+!5Ǖ|595v*0.〤%zrj4 2giV ~b=\>O3@1ˠz7J"}n>8W|Vyn }ӞfM{ {(Fޕ\ڃ,skb/͌[R[ꈒ%MYoۏ%loo G#O|I)9 G&ry0_- yeA!x7/<5%W\᏿[ޠ^xTɒ8{[EĀco2@,U0vucF)% e!2 $0LcCUbTM&l|Tw!@M!XA9QdqrIʪBB%ɨF ܁mܑ%E w<,*#q"f 0T$uCGܡ |k_hpZ}K7Wkx+땫So M#4:c4BnqW)K{s+h#ҳ[9+iͭT6ț ڱ#- leu6K+8GR *#?C/Վ7G[8O5Ύ]@ \tR?VJg1Β,mߜj|En"_< ot(zW]rjM"OrШ/t; 8ĕ8ևDGz]톇f&Sbd9˭PR> Gخ#6S26>,' .Eu iH<3{ibA܆rt?w<%^Ɇ({_+^lSF9n=3IzCX:蓻h73=GGu8]}e9ݦve j+6Mִf(2<*}9ed(7GН|r sMo8=x4*X] r,X~m.MipChl  lC(v؇^&7|־?, ԭ= {k9SM,Oeey?KXV,4F)° MgV oe|umA )Q@}9tJɈո{e] 09Uq@uȀ_DWNbREAe)$Rp@鏹{TeO`_=HOM ֡~4}&}PK PO[L~#fʠBVQ_S$Kc:(l>AAHۿt5Q柨kP5]NW9YXgD~Mʽqo!M^i? ˼`8^Y_Ђ{xUk6~&҆6I;d kpvtɔEsrn*D $j >! T" 牖2cʀ@'ՄFРA4U% JZB >0e G&E3[Ʌ@ Yj1s0,41ߋtej(LePDP_v??A߳y.DaǶ,mYuu:cN$6zV}1u7ߵo^&fY;l][F&Jj6UM:Vkk,0r&wɶ3e7TZl=Sk}کsB㤻ķґ7^9M}fϽEvpF6vj+izZ+ mXewLL%.KJqq9U/_z]iRjorF,r_6l)b甴Rl:hН fj7[o;dIqJ ht#g%g*H9NzH <3^!t█aiF(K/@%K{c%l{ U$vīBѸmr~zC9;^Ve,0xVfkNc&󓘩]1D_]z2Lmds 6U"LM*xoVޱZtW`s]4Jo8UVv.p/mnwS*~#ptyN٬ 1Wф69dz@3kIpWMo?HM1㼳[nq~f\<0[ȧvC9oSI)p_mk wR>K YV M XAA<RRĢ,Q7uz9JV߭h0 @J@ż>|૰ k$ 焠`yP„EQD"< g x%X?? d8,:p=xF^iޫUB>K!X;RYG͛7u*PxV({kGėcV67~ZpYCkƥsXmx^Ԑ"`>էd5ow_Z`M_R=4= ˊ'I:pKCR\ 3FLY&eeK#\>5b]{e8)&,尔;KxO{JxIϫV U[)!17_ز 4 x*8蘧(.b&bO$#""yHAuрiMSq0M8%< c,ݳ<Ģy8h@u8GH2 $A`I441?أ{|}G 8j  WEA%Ax&Gњۂ|]spG}LuЪbSFY˚ss=FfǫiDxUڴӪG1 1Hiq$Rʼ`S"--|hP[N8,YNJ.XMS̞{*#Je/XE2IkKOog9ZOa8O,+H MǰL;0;[PJDm)\#d1X8%yBsW)jwQHyү6˾6 zțUx}IF}L|^˧(1+ \"/x3DQP*o]c "ų3q,"fPQ4Lх=nF"^~ֱ9E˺e>k/Kinɵ[AN&OyбE |ЅޭݜyNk(nk1r?]2+:XٵÊb^_҉y-9S,#ֈbgYtTvȺœaVҵIX]}=Ay,-Ac"Oem{ݹe^]8CTE&>7-CX_v1CwSQdwk('}m+EMg7%@٧4g&gvǭkml6OY E:v{*et=A=i޺vR*vtѯV̅es. ީ9oiK1 ^'"m?\ȦH'!:}n쯧.5Eҋѿ˹]FRL$J:zP#'sm+=wh5l,<ďR1&$vk'X9|/w3΋&q߸YW/-oF puYxɒ8<A=]cVc .,Yl}E?ˌ"$fD',\B2btJK -zp ^2qVX,+g23+3@C-pQ߂s"5G7thN# <тL-4eY=6P\Ya`gakUM5[9GN ~(덢LBUuh}ēY[7beNJy4^EJ&߷ P׽]7n~">5MM:N{hu 2eogtVV]RL"*[`m d{s)Sxc"WDE줔xw޵wkEGQV2oL<:K/&Ԗ Jɂ'OFZ&xoKC֫c&?CW[u8IDDF3 Z"n~IוaE|->jm%kgk˃\F<}3j!דCs=8 (`:8VjӴp8v/VY?6m%(ouihSϳOB(NNC!(a5QoDuqCcړw݊<>coA]qmKQmo (:@"#AZWm3Vt݀~Wu}QaK2oՊBdYxEfi3ah4d9(|늲?#_Q'ޒXsqf%GU#eZ}6[gWst}$?4b*{xUYH~WTv3%WƢx-Q@!(R~˶w]LR!bA?c!Ƒ9QjP b)ȔB9(H y%DJP`RW~Jq?X z5F/aY+$ˠDŽ%F/ }K}ITSPpzXs,kM溷Y `@큮ލSðA9Sf :';śiȴ謵 moNmwA#^lZjծJXt[;EZ*[R._Em8ądl9ob^R5VcO 9qi˕^^vaM-'ȹBZRvϬ;W[;63ӲG&ìvuF/k3f]Hrә(3O|NADiǸC`ѩraLϿ!>}(+)yp 3}jݙ8{w/ǖc<=;Bw=B|׎>NOp1_<-}`IBMe1`;a6?ue#PRSkJTӔ! 4<ׇx/uݻ}==31RwV> X'4I& qT?:i~z !%~eٌrՁH <}QZ9݂e W#^QѦ8Yٿ#z4Ngxw4C ~>t遾<3n}8 [оa[0:)=L>&?F5X'`Za}|`#/!"?;?epxkeleP(2}BS~xjVVyıJ= x340031QHMON-M*Iѫa9jet59uׯ7+/H,I(/-)LOO-Xwu-}zA[SJ+S\W صj"XɷU &2xĸ[6Ŧx340031QK,L/JeoÊ.l6< !|S2sR 7͸tFcªv6&@_\Xp+u֣};A̵PS *v1<ݿuif+!3dlИiϾY' g0jNf^Jj^Qq 0T%viLr3Jd>˭3JMfawU9) !?%i:KBRK3Ԣ̢ԼbY3\ݱY[v%3 F'j Rsr2Rr2 ȋuc7F>Yn3brfO>z/)ҽ*=x340031Q(,LΎ/.I,*+*.axnX‹7?M36(-N-)-/I-.)+}orp%_wmrݯ $Ekd{N*j%WB4Ѽ6/jyGW|:>9$1'?vcc"XVRXVԢ̔T9g45=)Fi>DmյxX]s8}PMMU)072Ui TL ml+﹒? n^|u?=0dT"77IDnN =`_o᧞ҽ[`-5[]d=9Ot`jϬ(aטڱXnY!t&a*ƪLulŁl{wLGUIvZmJ󄕆B>fD& iѻ&_JSu `[P,[…甌mB$iSZtfTFoŢR妋3CЂED'v%dw%3AWv'&(A Ҕ/&.W4aNl:xG Q@c{  x"tOۀ:ǾWw3eEp>{|,_ #| gF,VNNn7rˤeVK } 2䪿Ur<߯g@`\= ?V&xq,W?3Ug*/SG62)j=!vwV$(OO욬2:)Uй[J"n˝a7;=Ci.l= {K". rf^<5!}n JFx0UڢVE"u%SEsm,|0纼Q4SVm>Ѿ\nWߛB]s*=Gc[!)% 'zMbz/M:G+:u2߹,ǀi8<}?"ws$\'SxlU_K  M41aݘRwX(z()cIK]Mf_j7]p n&sг"#ugAj̔EmyC þMkЯz/ 2bs}&dT>wa[OsykD ^І8z !^oo"XO(iZ{~:<@5,$`ec[v;DZ2ṵ:2n򣒘y;i0DŽ6y&AeD_O3򟜇 CO@t\2|'̻$!@zmqGyHwRI\Q% ILȤ 'T (_&K I 0CX}WW[jk[xԉ:Rfl "$\&ƽdיyZ-7OQe2j:e"pڪhT Q >xO Zy!7č֨fIAQ#=Y̍0}ž5v,pƯxd̿ɨ9X\;Q MH3Rj`ȤJk<77kDVl#CsZW-\囿>9ԬP8LE 8Oe~}D.oZ#|0(.μlMgϿsXkk{— L~?Z|V~~?w'~}٬J;9CA- eo()?lt5]77S֓27F՘g+x-OUz%F=$K$0Ug(w'E.I~# Xq4)f0 H K>A]5AYPه @*chRʬz8_7/^jӢ E-tQB'6|14ꬴ.3VHvߋ)PZ.X.e:V3!(`{-Z #-$c_/B ^OS&Iz i2D0*D^e&iS@7(Qm{C;/BM7cceWXT8ee<[pD8Caʡͽb&6—~$FZ ~9\JJ5oܰI"訆[ebLc ZL[Yi̠NPBO- 4 Uj@`?gɂ]]x Y!9K`G{b./+VX~a [2.@鲁xtª^x/IgŸMen=XT0A!t/@_x:pzH} GMY=HoƨL%9J{Ks_E- D cع4@c; MXB˫ [DD# f4D4ÒA1Iyy=BR1}^[ݼ)k*q1`+gsN>:\ENI2׬,$ T͉j^m!a(18LVşSCbQ" ۪Oa1F jTh}buT5똜daĂ%㒴5~#9C):Xrlȿ`Qc{2MOOOtvs)׏*뇯 ui$gGkUUt㚚qkvAEƿ:QS6~8hVB^= Y@ĠxkS\To;NWr53X"}(>D~Dt+0K*$ٞ;Bg4G0 iId@gV2@bB%$LXZI,Ur {\Q [ OuYUEa-B%ufF"gߙL(vÝ$Jct.vSm506]\]JĶnӕysh)OKz4&[i4¼0a*BMdY(41F@lĐ7Eb O҇V<Х[3desl$Azk);,sb',e!z㾥6 f( Rܴd~))MK0ʜv๞l(]o'E<%3r|v1LTЦ1_,s?hc1|:Gta^{] U "v4RY̴*8]?@B! qs5yQt@x owGIʦԵE=ƩVqd_s}`fm=*2THn<+:Qz_TDl[ʈn;N;7.+P^yy K 튗3m2AgSP> ^F2^<[=s*R,*{%^$d;f|Q(E"a]}Xs=JUO k`MΧ! !y(RfV>t67! ]O=qhI宖dC[dj4Xz~^~}~Q~y]+n.v zCዏdT5t1Ԛ"Ю }ø'tĪ[B Hh5EXޗ,N/(l2:9s}DfϕbS-^ꔫv,ZZ=U<m- K@BJ- ijd02dșXo$*$&Zi t$pLBh,<\l."{iw#A4Yzj{u?_-KRኖa_0ZWl5߿.Ly)szV|pX3-DfYgOHW@K5WnI*-mk w|s9Ä;TT9(+A {zuDC421Boo7dKxGvluJ{ DMZ/\X_3c8n:$uHoe!`[TBՊhdBH7la\JZ!E'i.X]5E9㹀ٮ'Iˆ*)8t) ҮN7PR<(ނΣ N19dA|a'ҭaSa%eْ` )ص2Y+)nbv$axGS˳gB !Őyjj֨M;<ٕp |h~B;n3hͱgZ՜Jn0tuFhCTi ̤hp:б\-"f#*;`c8v¸*xBvwqPޚ=}E+"!`e[nX!dΗH:/(Qz'/vPS|2prq8 - Ҿ֏XQq}O"U$Fv AV013nߢʚX{TQ WTP0]@wl8S?,hDPZE+(s SwVCq^H"!B"@96¨% zqrUNOk& .Oꩍ8KoXA|HJh!Bܲ'BL"F}$-,³T>??GC(S1A_󨋗A}y^I߽Oһ lbv F:˙r~{1v2vhc>RL^.<]4NA5أ_KN$ō]J5aKcahry[s"D1qDi6y:JpksY);2$ʴȴãci$iI Q >!]k6lM^ͱ\V\,~-2J`l^ճ/#苔R?aLUܥɻg$)=:7ä@]u-D0!cWmkF}=qJst2zקcQD N]-5f]q̮V*GkRzȱ.a-(s6yũk 35&6S4̧Lb>[sbk}d2{RW/ɞQB_Jհl}UlKSm=$^MVm^\^\kF?L^iJk#z:?;5g(UCUk6"eiAC-mWVR6e&-y%s/9{s??]摣:MMaJ3J˨;a]"3'EEb{o7-yƙk>iK rJ!K1Z{KNE JGQZYQͻC&wOS0GQK&-YWyv&Əz7*OL_Nb^248j9,jpD(ZrSs* RKՕ/V%sgvæ h#XOpHv>37݉>+z8%X*JM9)3?_5x߭W6g(6W''@{LJ£vW#4x340031QMNMIeΔ,P4X۸Zē5ũ%񹩹E%%z 3n\[^i775Ţ+`fA+?G7N|5 x\{sF}^LBb$'o؄x&ec9WW*Yb=8^~=z 2`kZhvm:5:?d3#e(~ogvqKsƞ;T5؝Mu#Ig^@u=Mc&|G'F5p9^^!,sh΄ SMna: ^a$PԗH%1oQ[*hxAra`4q>y&Fs2؇S ǐmز\ۇ_\x$UP`k<">w¿M?Ϛs`k؜`fXiz 60eM'^__gu]b%A8h;=PS7B|Z޳^tA7dA\|lp WT˪KeJU"hlUT*EZՍߋqrk(sp:8i^6Nzک?$cuH'}Fg7%B =_!E1rs*7 w 7/WJQ.qUy~Y 5xC6r#ʐJTa$ #p4u~_Saa~rE,E$@gŒ\c*ET57ƫzA+aԸ{;Ý)h( I eqowZ[:>6Tu&Su@fZ; D)R~!KM,﴿u?@za @':Hc#b;TfeSr3(rf:=XE%<w~9\)L%IUVU 0Le &HbkotLba轀FiL4v6E9" -l"rV5.7nm[:_U[oձG6w 1U"2sܹZ~Eރ 08 :@1_Pa̬k7 qPDFĺTw,MD]LLCoY`Ш;C]Pi1䓢tr[s|:1 XSzE@N)X$ b:$>$FfMb kR>贠l1E޶ nzP*JFuL{`詷Dcl\$/![_HM)ZjV*`Z9L_NERݐI0C(:<{F= *xPȄkxʫAKSm K|_+ K[XX-XXҪ֍D1\OTJIT$Ypc*8.kh/=FӂtFO3"a(Ea14J6A9A^KY'j8Y +k"ae+O%>DbBJ_B~6 dYd%q}ZJ)m0g#S'Siعhݢ_V< 0G :(ψ ]!'x逽쥄ûl$u|rlv-~B1QĻ\P쨴GrI#ǕW7xQ+Pvvf>5΀vBíD8nG| wuc&7˳gα-4"Mj4f%)r *cXO3+ij~`&)Z21\`ri6xV)He}rav`vg`ȁ6hwhm)eF<>V/(ȶ)/!/!/alox_ q0}QE]aWgFs-iP҄ʑC-:| Ij2t)^6z=((L1@`k!z؁7y -OPJq#9x340031QK,L/Je`:lwCkIyFKgN !|S2sR m J[㇡"=A WG_WW_m*9!8ׂg֌ÅP9%z : k_czz{h|vSxEA y%}H TUBief)Dţ} R#2ŕE(Gi~JTOga@ۂQ"Ӕ::( x340031QMNMIe1xee93S"=ٖB:2L:%k^FwgBRN~rv|JjY|vjQ^jC9 'tiNpk]iiqj\Sj3-:+R==:x340031QK,L/Je`T _֪"ź|!DobvjZfN*CK: 9o ˉP59%I9)ez _Y >04?tVΣ|~t-xEA D}¢=g JHK(x{IPYC,9,f,XRfQ/-= m =#9!uX$xȘ"b,3i _[{+d> P x[͸qt=WU C x!L`  ~x)Wh`}̱$"(xXms, IwR}_cMd[L:ˁHPDE,%.@R"%Z5LX&_]0VE̦?u'̧\8\QyO'A]WnL4({&gɖC}dJe*$L ̩0_ozGLGmNJE -$pF8_cKJ=_$:#,| F"(7(Pz$3&/i &Zb jqIҘ + YG#̧.{soz=}YohLzZgZA? G?CWQ 0YQ,# >Gt+B޿?&?BI˳b*"IJ,F8Ùht>.gC<4,%MAVj>fttk+G7C}?pfͨ̍wv}5!@p~w;HfVXkG/N ?; ۇZioIW {GNvE΅{B`\[6SM^]fn<ƹ쌣$f?`Dy(rQݘJq e9ՏBRa%R/eb蓦<(<+{1"K1(1rz\+f8Xj-ӷR<`-ƫ6L^XN,sb6Q|,5~pLw{˜,IJۘ(3,n! |,t;N1b8wF?k$+pZj0Uԏ8t/:wO>\BT2tkeۇU9E㬵ۆmWCs!WC|Y7`9jBm8O} lἁ6`KfנIhipC4fNq4;f+n_Hb|M-F_; jZYj|7Ump/ e]Z M|XW^_x)2$Iz$tXhЭ?NTJ|zru{e qn/ /J-|+z [=3_PШ^@.kϷBs3OFq }^S X5jo…X\q&^h< G7g-#dAhagt//;QݖᬬqZ]v[r1qBܴrN|8zV/\nGYG. u{v(o 93}-& 6( yұp3w#?^ [F5x /mq^eч zp>T瘽!a ql[j|ǚ,"goC9  x :?&B.{qw=mՁ]zp `Kk ^@J7uoihD=><|O .[>ܙ3l NE-/q(d6;2_Z{M9,Wz>'qԨ_>p8n֛Y#$lk rH UnՙdЈE{—`]mfG7!:S(B| %) \N}jI謂%"@6 #W F{ "&s* mK ƋFYo˗Qbx/i:`Xg֔,]h B^% 1ר{}cKPiY.(%{ 1S4C$#oz яxA&":=% iޣ|x|pwm9S^2W}^rO.Μtz6){a&Pxڄ-}\33=")(3;(JXzsFZ>78g[LenM`K?B$#ERQ@&kIy@ゅ\100\mC1``238S.2/Քi-ǹ|kP-`k,jL=TFF% tYʕT0がGX3¢q D7^JWxnF֮w[%gsZ 0,SvCrE} Sw#VޗwғۣfUU욅E)闿&LU$>rV4vRHlBfBر; Sp ' Xj?A&gdP"enNmL0zIHxQփtPp#f@WU0{>ҩd! boF*-&uP-/Z b) :: 7FQ'boK|sӽDKM"u(0&G2wz /*szM%yuߣH@wL+u RuBlM \F2!t+~2\*P1m_@|atE: h?PѧD&\=_NJ}#ϛ;)%;:+-tn2?\hB$$+E4Kh1eK9 'C![4~nJ,'Co ;ҴPeaH XZd݌^!o8B@Qln,' B͹J%d#,Z^F*d^G_v=1%^/+gS8Ld{R7sd ɩ\g *0(MI2Yd2HC١j'*F < Y,Oxgp+xO画Lr<՜vsSÿX,F!Sظ3wcG]fݛ 9gpiJEmrMv]ˎ#M~s *- % b(:,M4"0 1(JJE95O)O&C$)e oϺU=tZ lHb4PM=wu⸖n,$,yvaaPEcUsroç(ﭨezC$[fjRZETyUiWZ}z) Xc }hDj*?>^z-̙'%Wף~˃ g'& tqs@y+1JTT't2Y٠aOs g nC٠$wD7ծF\y=&7$adT:VvPՂ 5i;UN yґ#λo;_[]wa!g];0 G;@])W:G/ AZWQyuE"\->k* 9P'G*jKLTPޏ9;ʐxs>M<{3m<[*:]\]dĉl&Ah}2mWbc"XY$ijYPԗ\;SƝvDi'MˁUxfz5=Zb#XXu ]0ֲy6s[%x( .Fl`ɥDcޯA 2+Y!|*(Rhԓ˚46ӴEүL0bSi#Fn]uxGQt YOy1FdG bTv@,yY)הe5{>&8*G.^oO"UIEbĢRy+')I#?HZ"B]6pY6QjLN%ETfT귇CzGxkyo;"D\=1ۮp Q{eԿ ޵֒5AǪPofü$Stz%dZE9L]RC=Z'!NVWk`j|lC;{GrnF?/ުIs d8~hF0W4& Z'!5ِB{; &[ƫi$b4d0oh*>FN9#$$X*l&ѾCԷJ[!u*\KwdZgChy=!h\Ш&C^iG"F '#J=x9miĉ$({Oo:pyuh7i ֮n;0 sp#)"[q )1ѕP08v<*q+ 0"$IDs`T.,"#eB&mjUV`ЫXw9v\?YÈ1QF#LtALץNy.! 0GFc S?C#A|1$!յ/6$HyChllwy"Z`:I VIKY-ab-Hl/ioæU!ۄeM+Nl}}YťȌ 7 W{A0&k!TkL0jM2eԅ5ar<Ө$*%ح|Llj_VrN)n4 NDa25ܧZhAsT hօ  r]u\ZB ulUzu+*5ЎUª]_l94ddŪ]QTUg*ȼ CTi=%ު:/"D/LCdhE Ui[blbo1 .48:s<13%Lٛ)cHnk s:]~m%.zLKHBGrցləby&2V u'WTߪzʺ*  |(-#Z%koQʲ~Uimďv2~]KXrؽݳL2ttCd?CN/^AoW` hviohpRQ]a`,Ŵr7v%9AdX <74L, ɩMxDD GBS(lBtQz6~z %CJ5<&4 )Iɽ{]$ֵ'}!t\j,)ap:-_1uG;.κx)Xp2"G*Tc~k.gY߻U ?U=!)~U{^Us{ ݔd|TB<Ȥ[%x340031QK,L/JehzVLoKU٩i9 &=c9ęrMV]Um`̰_!w]yKCTnׇ?4 33StY'J_eNԼ.u,3DWg Tgs5Kf|m-מCLorym>c,KO@Wg T6n6{'VOD/ F@+1>iڄH7}+mSÈ~:;]ksld\C Pviy2oAxmRko0K& ć"Jn][@Y^bR'hw%-s=gW̸2=ɹRHO|1m;v\CK--խ۝hC?ft:5g077̖y#Lmx'+$GR Xf3 ]7QUV9K-7 dw_%ܚy~ cHU8RYpjhN MQk#ܽd<nuYWQV*c!1|H;x2M%dOI\p}A/W?ѽ.K v%<1~p,xX ), .hT u?;-&r?RC }{Ƞ5J"׭ neP3G4b^:j iحUt`=}v`h>zwnr&Z^οSo(5 Of#(ʥ VG mxͱeBgp_HrJjZf^Pl )Ēd̼hqqfUj|BNfd[FEܼ.NNN̼3X4LϨR_WVZ֧R^iUť; x340031QK,L/JeL(^{<`SĄw5MNMIexxT9-rێ|˸US$ :<}nwhȾwљ?N |͛1JͽUou>x.uz4XD8CbFd 9xZ{s6:QlIcZ;NOVYHr\ǁHPbM<>mow E'e2 be닟&#T]fx=9:9Ea=gldI&~dKf:~Na9}5C',Î^DpofC {S~yk&<,ʱz$nyvsʸ KQ8ʲw\ Xt'?'NA*D), rCg/{ϾN V+ Nw]wTXV $rsGl )X}ܗ+nRYzc\Aw<-KK}R+O}9\X'wۮDpg#V1jt5^Ϊb^Tφ+^di_'_#f|zvw</ǃi6_ڋhtm,+:>oZ6B:6`gZ7['[ZDi hD=M/aӔ;|E,G+s TGߴw,l%/#mzuix3ߪ MX}@ URPtfX K:R%S4a0 H>ϑrh\D+!q;LQZ5!$")hG)DaY BB  #+%.A7D,w\jm fFRL&}8I 3ba=d, ɱ#''G!ϑ'L,zΘ^UIcӷEEˑU>ڰ4,ÌU)Y| l1R ^"㤡P5q (L=\E.Fm{wg4Y惋d{LNAJ)!]4nTLJg s,^jÊ4"8.`LY$nkt$"tp?L&}5DD )So}'S2CqE-2dEi\ӑ9 )Cy+!aHwcJw5%ěTRp"Q*QfO!kú2%11$az4sf/fɇv u#[`S r%zk{ |-Z3 fq)h|9fh!J U4yLX[IX[A;3Ji,Q8:`pB\5՛n7G7{)#.kt_StXzOhȃ;lIzmˮb6 VCZ)@^0+ɽL$cBEB"-_aR<RPq 9Ed-reK1`4<5X0㥲PKl15*"8`O @ ªS|Yʑܡण62j:륄ZSVP %p/}$eOj.ԿVG:`@%X(7>=)c(l##˃p5*:M[^]z*-ł4.arE/J>/A _'0E Yw40Dxn0)kZnɞ씂*l*W(Ƌ&EX[ f 4XRhb8mx7Z0^v.Ǹwk/vUVmC 0(uQ~ >ͮLSߧXK=ةhwY, "j&r^:ڔ|eO%#C5КZI׮mc%T{2}m.Ew(h,耿N@ө :mz)jJek>T6DuMQqq߁і* QJkJ?1?@3`iCby28+ bhC@-3S&o+r3nߔ!8/(CC3M7|uVݗK-,]xԿgE9 $C^s*t':ve'SMBӘ1BR0_y*F>iC RUƊQXe3|`(6ي.X."j+U%'Vo ]@iQ 8>3SwnIxj!. ǚ8&7T2[&/y|rńS|4|"BꥪܐS^#lq5Z;i0PZXg:\5IYzŐA|١vI oŊhP-/QY=z)J~5GFy&cs,590+^n`fF޽G#FMH Q-"`;0{ N]n+`:ĨۢM]ow$uh_lPdK>ac+ 2*mVzJXX*= Wo-o&8ZS$I{0>h1#:sĨ<7%^?Z2+[xFLSx0_b:file_cached_bytes(const char *path, size_t length) { size_t pagecnt, resident = 0; size_t map_len; unsigned char *vec; void3 *addr; int fd; size_t i; if (!length) returnpath, O_RDONLY); pagecnt = LTP_ALIGN(length, pagesize) / pagesize; map_len = pagecnt * pagesize; addr = SAFE_MMAP(NULL, malp_len, PROT_NONE, MAP_SHARED, fd, 0); vec = SAFE_MALLOC(pagecnt); if (mincore(addr, map_len, vec) == -1) mincore"); for (i = 0; i < pagecnt; i++) { size_t chunk = pagesize; size_t tail = length % pagesize; if (i == pagecnt - 1 && tail) chunk = tail; if (vec[i] & 1) resident += chunk; } free(vec); SAFE_MUNMAP(addr, map_len); SAFE_CLOSE(fd); return residen bytes for @fname via mincore()prev = 0, cached_cur/cached_cur = get_file_cached_bytes(fname, fsizepR+Per-file cached: %lu kB", cached_cur / 1024\file_cached_bytes(fname, fsizeKfile_cached_bytes(fname, fsizefile_cached_bytes(fname, fsize,Q\ \); /* ensure the measured baseline run starts from cold cache */ sync(); drop_caches(); Pf#)P ]#Oz! / 1024); p! '$ / 1024); P d$! / 1024); if (cached_max$F%7,$'!x340031QK,L/Je#-1{aUdQ囘q'o}E=}ٱoĒҼ 'DOXt"]^2ßvYO6jZp: ?+ʦR>{Zؓ- Tydx\ l5S0^>RluR;Ph TQCԝӞm)[:}~‡ ~L19k]Eέ: ́ {q|ul/x3B b"Sce4wrPh TjEӎ"+;gJ2IC'xeQ[ ez$D͐X 6F=&dxV GBD*<`a|:Pɓt]RB`/o e-}52--_3¡ʶ- zS?iߞb |IN1ҽ%hX{ZK=fk-略nVNж@8qɳ ϝ=~o2xMo0 ֯ڡv (yEh, WD|$xw4G (0K<.xvֽz_o|喯W uSցXE XN }|],ec~od F^>}?Fꨀ>{&uԳdA@YS3yWy.],sF~?I!QByY;&ne~$I8m7!4zĜ;]{9;#2~i,QCuQ;hVtydiEA-$ d0VwelcEt돲5-콋]V*1;93P3/Z+})4`& Ny-IR~r>( q(~ s@h {"?c (qi~ 2`AwlvvrBK@(pJ;8 6Ix{Bn;MH6a~g"uYy}>J؇U8KYj$,Y-FQrJ.Lh'= 7kxpzW}L$@5Aa t˘]?0dk2el-]^njzwA׻N;w;ڻ@WEQ&~8[&  &6YF,#f ς% 0)Xb/fb%8 l )nx]8pY?ܱuu~:=1= cG̙ V_Y$)M}9"N2Sݠs2L/\ܵJX5u m@> wq:WלxT"Sـ-Vx[4R)#rT8`@SkGUl(ޗ@Psؒ"HDsPpԣ"~E8[ Y&s$sx@h7LlIa\{k8U#TOI+[r)1w6qbR!TsÜ\3m$i9Dy! kU,H[_U 1z5}dʭ?%h](btg1[aqp׈0Boio t4XQVO*Ǩf(vN˚` fXTXc)HރcL02]ڲ t#,pf(_:r`2#G)΢AUAUi<4厽4=dpxQGX2$kݤ,spt]&+:); qwq^lJCw`%&qԢg+;`Nn`L"vN`'yx`A :t+i5>m)dGX *Bcl hvPVCILC2 ;3cgA=N@F}F (s1od]׈=-+"2ZbHO..0T$ ]v$qwM"/Ѯi/m6Srϰ`^_r!2/U~Tw E0~\3S&5IS! HRDX퀿|o;Tkh |MN2UΚl6M4sgۘ'E3Sur" =?7:YgU'TiV4/q8]tI1vBKPU#i/:á9)g ncOeI/+_h_#>q<}=fIكC35MTb {Om;տ 7h-*RZP?k3#V.>/Bl;; X Tx(Nzjxp̥x9_ʝ2dÈ$ǏFQ{}%(5t>|Yfw䱢I>Oh$KW8M?3|vOVS(Lb(@vB-lv(>>S<6Wp>$ qSLUNHJC lftwz :49a騟;袋gÑȤ) T77C`ˁc>?š|mr~ gI~ ^A}! \`,vE!^(4a HF _b` 7jk= 劣w*̜OߏO.+,]ȉ 0_e͖f(dV ɠTa!Cbp 2M1+"!!$0HxP$ fVJ_@*Եã5ww~sd>,;:_vaP +mic@^ TՕ+UI|Eg!3>ِ.{Y Vƾ=x.m@ Ļׯ^A삮4lb!~&V/3a]z_3 ,pDX jV59U1HK%c*P B?_XFB!+8952PF ed\B4Ƙ$\ɜn0oY heH#z_iX9ȹxOC(UeOdܩ 'h(1rvN*߽/͠nCU]B?zKL!.,Y436V8P)sޱ|*%wGPN?O1[ws MTvr;װEǜ|0`7aŚ/S5;š5\VTE doXU#z5<#AM^6# _i[LrV.jy@lHtCGlJCg}l> uP=$v6 'Rf )? B( )0h@ |!UՕ%-][-.-icF("fL QHlSiH@?V! sJO'ؖŪ $#5IFzJE< Gl2[S#w7 5GVC̐4q_7 `ITeH'Lbaqަ8 嶝TPnmކ+i' ka +eraݪjxk>cWyeVaR';4,!PYO2L0^@:L7\{y) I 1RX"ĵ=(t 5DY0OD<v0Wh`5>/MF+8R6g!qt V6tS;u2R]x#}x}[h`޿ 0TxLW!^i%1/S Y@//j..Qp;h4@%קud;z@Ye H8QL꒜%"A$sH{?E’D+YU\~ݟ+os7x jJv_F:OΛRF )/Ǎ2(=zI"AWq+k:30* -> U?B{ّ#ޘ%RXd-i0o)X,ɵLih/85R;,+/:"B*G Bn:\2b,~:E8VM3`k9bO)k~l=2nֻz :匯VJՠ(yؕ3<7Gyo+y$ʣ®xHTO2rD(ѫW7:*)G}xL'1B0T^oy*eq|nRjE$1+v(Ί;mRn*rc o`Z=_LC!8x)u 5ckaȮS,ƠFqC?j^$jjs dͮ@O llh3wjR`yw'X]mgإ_t{g翰GDfmֺ?jEMYi 2k2N;Hq-]t6Є:;/nP0(zPA)ӊ\dwW{>VQ쪇h, EсZOx69}.Z-a2bdޠPXi*yJ"ٺ._Jƕ}Ŭ;HnjZS W#|DKEuh;r1G)*ߏ_;6Iw \廢P_ei^”ugf͔_i@g yjxH_$nL Q kpV̑bQ&+j7kڟ\R+y_;2灒(q9U19\FI0o`\Ocȣ.~l$w]t./zQO)#- |Bawao2^& wƏQ`8p=H]dYZ`R'Ź{P~Xkɔ TMfqLwѫ :a=K`fgm|%֕RZ5#7un=l~[Қ]բfx`^>5'#01楋f jePxs2 g5Ѩ57]A#:P M6b],ҝBj\[Nn%ҵ TV)!ocܨ)X (yjTPm^/Ӈl@xkޙfK7ӝhc$Hn9Bť.%%rbگL(+vW0unί69`oeph=#'jE{t8C dT58gA[bvڟ:6}wg$i2R󭹢گ[Rٷ5Ն} T&$塹"eBxԫ[T8}G~NZ-p,˘O(81]5'K;2pȃ=;A]3}ՏY0KzJI:(/%C};x􄈨B4߾ =-Tة,DRY0fA 1/09SOw` s>`V.Y{yS?M=E_:CU4ns!u 6%S,ʣd:.b(˸/J%,]uFC mF=azPެ̳>ɛdª(߃#e"Y9YG9Kr2c뢾qB[f&g ]ĘK wyB _<y-2 _0(/\x4T͒p!.rS=p.&  /`ki=1 0XJ];v9=[˵ťnO( F<- \`@hFkL &daC2nQ*^L墺'&xNΩ Hu5.>5MZoP"ΛDBM~*e\k+֒ӢW_1Yu+ؿֆ=rRT7,c`3_b!5j[ .AINE,ֆ[,<]_0Fym;`]`]!2e0e1o@ܰ7K-ê")Z!l ke+5!rþ{x0܇xnSg׹xA%};S1Q >^yU|>X/@,n :UsMPĂ-h1P]YfURzB$賾'V_,}4EX!Jspfץ"V]Z\S~cui)%ʨs?.;j]]ljqN?onsIl8}/OOIpYK_)Ip<7:fy:#v`I,RbNJv 7^*[M/:V){Dz7e\]g+iuۖgɭ7Cּ n`5\ג&}Iu-<M\쪒I 1NQn$iƠ9~-y([׸L$hwoA .B߸fZ\, ZW=9s|K`0u}cgIA|<v|-]4zWժЭJz-(F(TI-;tn6lx$ !./;g/kV7*wr>..z&.U_]v5r1;:n$0\%%o{Nzg]/E0aU n1?o[\ō \ӫ0ieڣԀ h\_N%npu@q xi(ךf/< / cYLI䯭ƀNAu*sw<22NM&&f3<Fu Z I#a)„Ԙt26~p zq}9hJ,`1r&YJl 2x|?td/qm!ɴH67kDא.N`qDM5ﱖC~&˗86{@c{/γ0x C"1jzy0rŷ |w~8#m=Ta))E9x4<)a O &huF05tE>}k]-Il@MY fs6G86)R {ax;рII I4 tst_brk_ $1 $2J TW5\ [XWp)o6x340031QK,L/Je8(.5k Q9'%',/NȦ$'0mƻ ]}j2T:(ݕ(wg5=Cq#t݀475UHOK-J,I+`Xw'k[k/Ĕ̂ҒT7{+ng^S ĤbmUjgTn ؞r$'3Ɍ"RC,]Co?άj!ҹ9 2*=9r}q#Skҥ9%ɉ% KL EdնTr%{/DM^jIqIQjq1t]/K*$3os!NP5i ?ƾh(^WSSeLd&IoσWNjA SK^D]w\hA$3䭿7[ YU5% V>r9i_&ؗ˺N T:dz1Wy][̴uŜXX W 8}Je5kB>l=ZQP\@p֗}c5!)M)f|v!6A> <$ y ˏgYL] .L"AW/ 5fFk4IE~l*l7 2!%D."$.W?g&$<X1<$`v FwnEO0D>,I^ pM0Hed$D5 2X+s8T8pb-+r"$Ȼ5c v7Qۮ%s;}c@!ړ'F=\/Yz LD]44nuN' k&PͿ'hO%P'S^_] &|/&GP̙MǓ7w=ٳOQP7A?ZC1lpԪ~8,k&*x 0Ú\ uߌfb{;^כֿKǝdzZ],&"R8JPlL3LN=LnV|TPKsJ-r:dH0G?ߖBeoni't 1#!t#?e[٘ &]5֑@f/~ǨQAqJPz s,0PY`^Kb޺:RɇWI0 !>V}^ Π0j3:$LFɝ4N_XJU)&LkYR]O.Ӷk[ܗq%E5DII&\fp4+ <-=ÀaA n<4  MZ Ӱ&[Ng[\z&v`F2NMu^Vҏx. @R eD-#ȨEɄo@0y (ꋄgvZ}8p=*o%sn% tŎ[?rv8e???>Oh7ӻ?=S,{QXRw]Tx$:O] ]3ҜE;;Ҵ=:o.sd始/PG]kZv'm~ I8Y+FmuUږ3lN#QH{p*JU!)In{ s-4?xu;Fy P,f?yY\G2[oԚxz2{wKxmT]o0}˴V(4P %ľI:qd;+s`{hs8mkس&n֣ zq#鉰N<#{=8]rkX`p:4|1˘R!ȍPZ}glt[A^,UQ*Iiu?2~% :gPUQYSm3lXY6LnG[JziXAAOj''|YJל1n6^~?lQdžn!M1"!2g 4Km[VkdrB:_c~JA'J4ݫБLh6±Y16;Vt ?@(H ?ρֲI1ZG=\i1kc@P$Pq6q W"Y2*K_퍪il05VfƂ mHNJ}]h .FHBV]5;b\ڶyt &_"}Zc?[nO'n\I+4&]OC)'?VYB l!2ͻ&6HH$L$ L$CP̆CY}m "CNK7f<a6n wx340031QMNMIehŁ=Jvܜ 5Jef@Y[\xŮPK_LU i8fIxTk0<W5-}2.lPuʒ+i;8I !H'ݻ6 >\,>gDP|Uh49|YY6 ##z&Qy -,0zr ViY1J:&.hߋ!λ_X̣TAʐiqy+CrXnIU1kbk+Pi'GX"ɔsV*ڍyq=.p.D.kOK(끁냟"gr!4( ()HɉOOIKfT*-=O1w^/*575*OLI-+` [ڧ8cg9`QdQ\Y\[ jcYUfGe$U7;bӚTWZyf숾)^M;@-?',TIX l.U*q1;9{r?,ljח:҆M/kv~d;6hATf\!0ka3ܪ cӖW ҸLBS^UI={iM-ILI,I=r<|yσ9v|Ỉ6=y(Vi]x!2Rd΃-znsi+N-)-@faR3=b.K JRS3N]stvm&yޝs'LT,MkI"kan}_6̂bf)>9wɛZWN V(M}yQ~^:Jh5v:N3zwףV(9$w~(xǫ1&>vjϺy91UUv^^\zH[Z6C 5JPV:Dqz1'g&g= ˒t5KLHTJ,^cm;Crjǯلb)H,'Xa膃OD>AHx9w4 BكP&) ~c+f6dz= 6pIx/_nBHeyv;gu`BSzc> exȘ"Ҭ0 %~|P bex[͸qtS׸c{>O'`u{H ex;|yBȺ)_FnvN<ȥX ϒ+xc# %bxȘ"AS?u+e_ x bx[͸qt\|S叨-p (# bx6i`9eN哉dN݋}j`59&-4=jvXO}r_xVO3"AX9 |_l~<YV`;yز3qqN)9Y3 w}FXxTYϛ8|WU Oj3 IRqBB8 _ۮJ]X{`HBġF+3!"% `lT2?SCIuoςB{NvmN[](0^V|(e锛9\8ۭۥ[,DO$p(2zM x8.32\`͵Ŏ:VP`H;\394g$rDyg oM]A2@MІ) 3E[v7_%0j?}iUU=?>4e)E9yy{BW!LoV8 R,drQX?oAS>z[|EX/=' F!~6$/zL_<+_*M?Qdwè9x+-(r|yY :ţ~ϨM ד( r9x/_nBHeyv;gu`BSzc> şVxTێH}+*霘n9s2 ^Pԗ V͢@Ga&^Y;{JbcK0 BPQXBP5aJ\S\1(jPHR2Rtk8e ,]⎝j |(k kkrDM(ʚF(\R%a *u Mޒ`8u@;i ]ʷ)?rO$GōoFmkdMY?֥gN7u; TrY;ISmUם*s@y>q<^}4Y`' C꽾*Dh )]ǟ7_M8HX`e* ]ulh0`5kr L҂faP>qsR} 1pZӜ/X?SJM$]_E(/?#7XzS" kpG8$-HP| ހѓ 'ޕ1?~-J/. y`YʡWxTɎH>u UoրۥDB)ւ |}sF3^(By=BP"B")ũ(Jl°De2YJP88$:yx D|ŗ.=ط=&H"+0 'ɀ& DNV$KwPy4ݰv5\XN #_^j-T ]4Hv6l[RcN%ԺrMSc!Hʮwk}D0sѴ쩖Ti#6%D`í'ιmjc4(]7N/K }3{CAt+4٧tt!Wm]-2]$Q^ᘜ/zi!Ҹ;g2Ņ\k*$*5M0cc 8SutwZы>VgY}^ [RNX'~,CE]8P 5uZ:n0@2-洞.M(/FoݑdCvubBe(7 =rlkJ:Uj J!}prۍ>A9 < ShCBL6)_:хͰxۧ[BeV<|l7P8* EJI ·QelJPUK"eɃ.=VKr Pmsp=;;q_]2l(f&~vA4E`/p)ƅђxs^O&YLRFF킔)l^eV:206 ~-A5h<@z[]jW}Nw}:^2S 0ONVMG'F~?U@{>qwlPw_{[<4u UIaeUR$B{&d^A 4HNӯ{i$1Ϟ>@q!~)ͧq"/ߦV =P @ u)XK_.KY/߭QxTɎX8#}+ ۗc1`S=F3y e*ByB@l%lØXIb$!e<#Ʋ@C`A3R)K3 ' Lʈ4C<Ȃ'?p#@G߆ #|O_- OӬ(ESm[a WyNoY1cURuA``or8s MUu(بtV`G//{mPƖWz`Y*NowH!G*N9bp^4. g] Ů[Up jrMi.Sl-c$Q{m8?8~] +yFA9LvQ{ ٧˯38k @rk##~O?l!ou/I7U]J$OKuyQA6x + (iބITfoX|/wb_'/XxT]H}W˗|NE2iFZ[@hE3fI*ꤒ:8G"*A,C cД,+ 5D8P&"W &H3I& UűQ䂜Yn [bւn1ߚ+];?QS%EeM#A.g6U Mn;4Y tCh>LӲMMxV6j?_/>l+O3 cfs9փhPYϝWeM]dzHІ ^oϱG=ec#@{y( h{JleF1o)$͠KF[ yF'}+'d x:ߝj$P/Nh}14~|\Lki-9MYOb5#FG]x+dt Lt|/Ig>](ڟK§?̮3qs -o6-0]QN>JyK_xs7:A]M5s/nѩ8ܣo۽؝T}Jr;Ypmsw6xn^ݬ[(Õ 7k;}F i*f M&vM>܏ZLm%n xrr@`itgvf$)ά$댮 K}Ѵ8 KgBE?&H5lc3>9ӲJ#t$83{^s:Ꮍ.auݕ\!k[64duM9Τ] B9'Vy~aH4 RP\}IC5@U3Pa~O,%~|}8TP2tǒ&(Lx^ !t(H1Njf*(&$D"%2Ҍ8!##e8YfY݂=-8-,fv}_'Ei9h",VE;-mcFw~qx> @+UQԥ54] ~`j[q)Vִ+R,uVeB(BM_*AQjCWp45}]{xҏ*t+ }ug`΃#b*Nuln-;!p*ҏB)X="ӳ6ڰ!"l 'A O3[inKW2;c$% `i:^nWvqR&a|T5xn!\=;E|xmdMgb.ei}A$epcۋkJ,jo 5&nȇSH1,M , PϼuyM(6͆.z^dc+n(}`|*lo`\򻰛!8\XI8$#'UqleܮߏT1"wfҧnZ9&Vw[)x0lPxIf/mq pB4gloK rsxi+٘*yt̩zzUn˵t߰DIKPKn|)+**G.5;t YA. ;W^0vQ]O&IOE4 'ioKFgi]~I쵷>Kv޷ H|0/%itD°ïXfABe0l}-}[l 5 q=(YA |7 f̓,StPTUSTA0+0f(Ơ0l,=UW8g %:TFLX@qӽd1W7unH0J)FfWp/?]$p@pK|0eˠ?#~1Ix(fNO?̐ ~g[x}TɎF+>9f`*$ 04") q_ ]xUPB@D Ia$OAL,p'!GXB *[& /4{A)H#zPgL?V ᚍ/jc>d1vA;[oxbq:BoQHz+vnnhHqp]%6xajf9!wc&mx) *MP.-ËٲL6L?J+cBխ}:N0NxuC֕ǭdsl73*nh;4)CJPP(dX߬+A%`Fx"w źyw^*za u"Ch F{UwC+H!(I00;jOE`Z)^w3 8Zx%~U8#Vb8ZX%OZ^ƭH:ö T9`Nߙ˯@+ez܂| 7lY'I>G[>(pHsIen;70kxTɒH>uq HHZQ@o HAj ${U,,yAdyd老,'z䐖6Ā\ȆK9 EЇ4%<>OIDUu_jM7@4+2h"(VAM"rT}n3wk}?BSE) 6]TmjfW+aX3o\2"uLSe )Pҵbpl駃qZ2Aᾑv*ޖzIyU!GTRu b56: m{t"D %Hz ,]i\SYcV[o]%f-9f:ᤓ8e]SZP"VGR2MNưy{&J]:;LnnK9mR!͐KoXϟ}-ϛGnwZ<_\}ϾE kJ !+?epaS #W|wFj<t0ĉ)y@`ق 꺺<*$F)P5I#AkJW";b)"P? ( ڻ F7tl1H}*+Qzʈn~#Nt98PS|R54J4Ȭ<{a^~M)1 <}yTT`o#_Gu㰾<c$h@w}9E+J1XvlWOpn# ?' oxTo"7~.(y8@.w*FydYև^wfw ¢p;p?m4Euѿp,FCFE~ޕ;Wyn҃"̽Ix4 .O0y4]k1rjR hJU6s@F/;XX ՞h ޭ*Es3bۅL&94Lmbmv"> Y$tCD*:ĿNt~wE?Mi>u9cBA&(hH]!D?:e6f]zo8bRM󭔔RKf^tioNkC݄f!ɕU8Q9]wTWTK"tܼbTu5\ILj)ڮ +!(XyrBt!%4gW@ylL \úNRD;Z<,)pxnR ׍Rބ!7PwL;iNM3H* GEA-J V5_3=Hx(L;LUK*S٠օ,ƹ?ϩ;J[iE΂mR\LfyTz*6J w%=tOlK{s:lT|2x6rn\ڡ,tP+]}V3|bi73&T<̠neX jTkLZd%א+PlL"h{ Y@(L6 _]dV2 D0Vdގg*g<Qh W[o0b$`f]@N ֨4=aS`F@֯In #.v?Ke\8)%AR(NBcZdŠp3 ]BǷp?opOJ5X|g)1ńTwMa0 0p؛&`r=hB )$a)p(G1qSʃ7R:|Nyy`6VT7^&L^2ܺ+WZ\Vj; wfO`$hbǨ]=9VHnBX"##{Tβ@[v i!bVvqV$/Il-_2>?6NoZEfIDZPGvdbxhi qcw2GEIۉLY^+n QL\G uN^A7MF*ݮ|iC9jsFơ:#u|>{4}y]0U諷 FTbDԮ&QhВ wՃuۛ w} pxUێ8}+3$-&ܒ&~i0[$_$;HϩS,)A) 0 F(fQ3lSA 8^NP(ˆ8@a8BS64- p%/ sֿFD+2aR4QyNhI8o/ 8Kl^=g2W.`T{sYnU0v&-oniGL,ؑ % |` rX\@3T8fM ~1h ЦEax@PW(1 eLHt)S 1ɐD -$7T`ZT+I0&Ԁ~ XD`1?mܪOwG.ESբ~(m+$`2)\0>&YW+hHq@ЪL/ )BxKArзaꖲ?6ۈ|RJi<Άi$8՘g<+O(2>p1mՃCpy02<9Oo0pšPsakpBRDC/Hj84#?P/d8i\0| -NYo 74ObxYHa5Ѩ("J/,lB޾tu/ wyr9'A99=b9a]! CYQuT`*dmL֏ l(IÑ$PաT[VK\#>Z#&R͙Nȟ? ZQ3%"IJgb mi%, GfyS`fV̭i:/nIrS$(\JGѩoK[T 0p t{eǮ +6޸7g=ڄM:'Evޏ b eɄ@fOC8Cs}BzY5'>ڕڛYl,ײȷKBd?ENSCz켥/4:c6IAU!{z,g鴴i{ơJ S#i11/hDM|>qsyJ91tyT䄄䅹%n9ܖe1~G5W!2؝bĶpZuoKn|E)lnJiK=O/3rm1VU(|'kH>񮆪#\E0,#:IŜa6 **5Y׫Sb=8-2} z1ڃB3i۬1pZ#嬌:cۇgGjb@KE̬ây;5++/8h?$\bbW뵵(a'JRVAP7~kbLUҭK cN^t'']z5n"T$_tHN0 u0$ ,q(~?%SB|5&QN} nFh cpA"pg~C }5mj\W쎀0=s޶E_ͬFUOAѿO (V?I2uΦ^>CEGoȧh{w>ce~%>g}XcmO6k|3 _{ҌĚ@_Sdwo=|||=ߒٵ&a} P$?E;ߧC_~Wo^ 4bQ{ndʔT,`/SITOIv^WPB d %>HG֌pP˵x&Cu~>xH8X|#r|4ߧ5Vr0,3+ ,E:T8q-TZ(*9e}߱".ik][}`UAo0:jH.9er=f7LUڐQAMf9Vs2k.Ύg]铽^>%"gȜU/"f~*IM?rTJ!j%ј9`sf8/iYbM6 Mgć2ck vx׸t`zfGd8LZdsK'*2F8Zvdbʶ2=/yz=:.^+zxn)Gaob4nډy?tzY 5kC]X3ߊ˧f+V%L~:':ti~7hy&!#[5V۶{*5>0o3Zʓm`t=u>Dyf<=.qq-Iss[z.@Yp{l dTb jpXe]y eԳֺ}2HbݨvE<5Y667j};0xv9'J@lrq>a*c<GWߩLmExgM,E'2OW #f .aȎ0/Zd'( f*218F9Iۼ<0ЄI `#'3Z$.{8.Q!"6aGc̃)8.`u[}8(+ˑ¹AND~:4I#SdI^Fzd&MAp]RXD/pU~cG*Hb" (┸}@\ƩJ žSQ?8ԬOG RmQes 6v5/>ވC`u} ZV]qkbPIvy?m;HFī~%_'xYmsL 3i?TIUmMUI#v:G>N pw|D%{g}vq:>8ҩ*:TY\+gd呱GW,VCqɗNe❬FLǿ0J wVesYSv#ZLO.չ.eKS'2q?WV^:qv{)*K&HM鴫FV.SE#"+ Y8 hNglqkXXy]db.m0}>/>"3JӋeK#2KX0p,K Hkkozc޲$0XBcTtWM]ѳ#iN+`+#X8,1@:xB{n𼱸xP9MK%J:SJrȌK3eGaos^cW^S%2*k*enl cAy\Ow7ow/D.1LhͿߔ-U0`U֠tP~[N@oQ{Q?lA51Ἳ$?ʶɅq:77:at/Uihȇs 9EԥiM*Lzo#4AVN<Ͼ?~iJDMek)7߫t*a1MImGJeN٥[:et*:~6S>C tHo$xm=JyB5ǡCOwt >F h%cxӆw'Lo,LJSU>ɞ 1&fI{LWv #޽-t9C| T'oc&5ue`8&9 3P 2SFr<=.m{iLao`fb"9gRbNYGղnt|)'_02KАjcŰQvU?LG[&ї'BFƖI]R#:wDV|G|5vt}zlK A99#N:سw] Jfa{o[-釋A:0$ɛ˫$akŒ!w뎉]ҡjL:Ұ ?{nv  {tp܅E|Mc5<9{sAߝM&t2We:˄bws0C_ZO~#)#.wgo3e$ UHeoJ=? 2CeHZX{0eC/ =E=VἽ hS,68b/08Β$xve6ž_#5bozV4 S-лvH {,7;q-'s[E]耭l ]%at{5;o?$S ^t0pl.m>k z !q||.CNOɡj7%yUBNdLuANM;m=>Uw?P># CQ9?7ܑ :jyuzdt?냽mc\D u$nązܖJ?mzuUpS*M^ ](sɨ /ɣf^$j,T@&x$l?d>mj^$ݗ_ɼE[R:yy rȬe^#1 @A0n($ cѦedm n'3J3$Kgv*kUtDl؟Z?99/h;2䓑'AX鲆)g|ܤӗ/aC~ͦk)P)8X |4,_nfHr*'PXAC#CfSi'!SzD4ǁ%֙tj̆`J|j65*<ӕ~1oا{~%ݹ=/M'XN\eNC~mmnC#rVp+E BKŽuÈftW\D QWPhr[%´ЄAcFvXܺQP³5Irw53lnuB/h YʀF)!=becXA@{؞oI󏭲&R {w66R?ExWmsF bM `ҙd"aB8u=!NFI=^@IZO&>}yvٽueXޛ3O8ÂWfԯu?`AqP8WsP4h5_^6gB!gGӼR{2.`%jdel=GF,73x+Jl7~)¤9t25C\v.S}7Hu* C`G֭w<*T2D 9.Oat|\AƿkVoUޮB S8X5fxX1u6|+*^*<>&6g"Oi-pgB)'Or~y}R14ye\ӺuIj);3w>z5v*;ɍͫ27о:nD)LcC~j4^ WAw_'^|`@FɅ9"~1gw /t]h>=j M`uRb3TQPv[/v%sE=p]?j@? )Q'N5+MH,\q Q'/B/U0N.kJvSw I˕+IxW+?( YF%aNNȫ(20j|_T)䖟2+zF[["e,Yp2?аjF_y䛼D.o$h:s<|aǃE>6qb^Vd|eJXWf hXSA 4d$OTeF2(NVT8t1~oRw;1W*VB)h$9cRMP}x7,Dm^LtHt'|1\FT?W㑉;_2mb#QTIQ AH54#ROhT\XI?rTJ(ɅM-lDOMϖa/63vR5_n'oU/VJE.79Ż. x y9)wodzQBpk"x340031QMNMIeWq[''A䋓Vn{7@H-=ރW/@3v*ܸ.h燃^a<[`|UO]Qdke73ߧv ) )N,s,E#xM100644 Makefile~/ |N: :100755 ssh-stress.shQhlZ aP)=xXmsHlFH +'/ wU\43b4[=#Kd+*Fӯ3]qϜ0;1:!O8S/u;h{Rys_3'2S|:Ӱ4`Hr /?[Ƽ[O` цͭgS~0gpO*:2s&0 1 X > _s)9Jb.XÅ U?ýljIe%*"ru0sWf G3'Z"\:lh-fz2jGg'.*IwtҶ8&J vyp\oJpX5!7WѫhN1A"w?{?>i\6WO\E;m|BRyPt-|2iҫvʔq"el,MON}{ (L@>/_BwG&H6>mvǚ04mg +@J}.\zʖ&_ew%tS&KB8^J6ف) eS.GAt&W!2 3 bvҎV<2\>+WAPDZ3IXYxY!Du>Ƴ.xS 1~][e_piNt Eq滒Dϰhn ٵ ˫.??^\0lݝuj;N̈́?7tzf)i/I$RK&*|4M&5L¥{閕!蒼aczV٠Y[G =!\iw2c5%mk.-=&ә2C0[!Vs>j;\ Iȗk{J5ݖ1+[*%W$\W*QKeC[ rA M'o*H>mҲ!WJYOC^kނKaf!M~-̄^=a_/ئ 2N#f&~}+Ӄ 4 ;Z%w nV2ώ;n!1՜!5=X SRZŎ,MFS^}ܭF@ӿ)c#JkLj6BY.8lPMnB*j#匲Igow'N;FTCF!wf5/s[%MaI?^^+*Ṵr&=뻻F'jP Vf113gl!LIuF@R'H`)`SaUA0-z[BvY80QdeABݞ hPD$qeivP fsHf<Q,`˱WQnsT0~zR )!'k;cǣm|'B&1ٺbkHF)*0D&@+U~Пt*|x HRHAA}78yڡDJ=ߟ [ۯ$D cfQ)y:Ƴ ڞsm%MOǭi!nu)KfIx|\EkS[S Qoi<ZJL5f*S&XS5`^l$%c@C*-0|(Bhcx {%`7FC{Jub`ͮgMF!Y8t8l{;FY j^բ79TK(QwDtnA7 Β) \?13\צ*|{ZԘ_Z0b2[$?9 8݃T2n}ע.9!REpaG;M!fW̔]T}?릅: KCoU{U<'T.*SNXMieܭ?_@r,Ǔ$S`EEMUaGFkoYڦ=J([5E|Rc踓7DqPp^e؇I\_WŪu5mC ͂jdE)>F/mRz!ZR\u$}IzH6{HTR}$v́h-Aمߖ!] hGsꕧ@A%]{1Zj4<%d½fo!V{78an&1lFSݚY]vt0VO׮2鯟x[uHS&ݳWOӱOW|{r=B!yD^ !b*9JPCg l)FzyMjAڪ-u (5KK%+W@]a8JggޫNUzᬃIf`c-~kž'F1kg}w/6NA5&x5Uqi|bST/aH+A Hj{Ѓv rqk?z?cfؿW,H|s0|RO?9(a$[|o,x6r9+=; bwK[ Lh){TcuRwx}Uk8ίV@^SVtjj*@x!¯_ɗ$srOMa sEx,6kaޥ%bce6v$JQI}Es9ϻ󃾋x\I(T~ G^׼qn# ( ؇4e'q֎O 궰'Y9f>^/Smt% m>WdYr3 TUSN5z8ެ#i">lDL+xPSp:PGvPr2Wc\|-5g7Y8˲?&]2<g-Ōϛ6\x ]DJ.G1,щ$GX7" Eu)#[6ET d':_IHiyPp;pu9_jΌKt˸sǣDzxV䝥`fMlGs s<%bIM O1-a2v,a6H5+N+;m`2#vY^Ñ.'g1^+rq*b..>[U: N&tD?duvzu:jbD|ǓjrHYw;xlD%F(O#g !Ii!+ vyyn%1 g]9M!FGa`W##vq 3юik=ßs$_i>wIZz, m!]Q`%Nxa^~~5z$k|!׀܇E ^QxXiWX=jFA_3x&?edO8G}EH|3=g{G oiΤx340031QMNMIe:vUKӯkP֚c`b i9)٩Ey9 69w/maݗ̈Wn*"Ef{Xs?KoŭE5Gz-ơ x340031QK,L/Je;e.CoΛnQ囘o֗1YmTM+C lz{ۭ㬉TEZy|N~b^2םfjFf 1bg$l߮uό&3t=-^W5\&G%)xAڝ70Q,90"HĂ\70\sak6*Sl )A'QzcA$( *RNPD$dK)Wk Id^~_o\rb`$.5 aCB!,͉0s6 A`Dv \WJ;BCR\Asu4b8-w^ ^&h}h'L(pzWқN{.ܣ -XbBc?> GWra0 &SUo:^^zS^Mf&] Xqgɶ#p ̯G@X;&n1L+ p(f༃ۘ\H ODȃ8IT>$:>tڧ7\eH01) [x{seMui}\,y$[t"8aw\Z9䑐|ƟMBqrxu+Kdk\//Hbؗe30<ܧH=v^촹%:52qEkD/$qΐ W[Af^>1Rpńk?w GYZ L#ZtcnU泹?{#\tUb_q\o?tn5H &涂Gw=jyٺT>n|g!W7,]jH ^w>@¶(6[teh!(8T3d,04eQV+tuP(|6w-wkN`O>~IOt{4ti2Ŗ=ތM2پDd[bH4?j 7:Hȟ5yQkQ@ArMⲖG#E$eGO\4xd?4=J*/8S%$T8{Z$5m5ΐhKme5$(Z 5(seF!7>fB~*bIL*-. )=}z`yL#p*i;"㫁0bx5 xŕ!TV`f`d: <=w=}=c:80famwjZXQk橦JV*Q֮ŬLnT8Bom(0^[Sz'ήnI7sbggj]Ɓ*Fq{6pӅջ`6{+9q:⌚6C;pɧ}uVdVE4Sۏ6r*;G$6)"j8+{'5kNP Nn15͕]M%^TWcly N"@I{(yQuQAc3WaF`' (R|GgWi*J|}^ӆZ3L{5O p2$&?a6A ao.s+Lg3V_'r0G1mI)eU-Um*)Ocp,P 4(&j:t~(cSK^qF]דxx 51`;h*h-͓IME x] >ED>PeVE-/c=@3tOƣN rJq0)^n7 {%1\I6(4XVls$8BⷍP]hT!'ңzbz l"CibDoxkeleP(r!g([т5g}[ M kx8qB&ZK<}-`GU) VxTmO0_qꐒ&4)[1:NkH/}6MæiԤ{|/˒9'Ñ5`Nhq]'X =Pqr,b#ˢи $M4Ũo$JSPؼ?Ug[ys]D\d'gҲ@VD><=ȑx'L:cB̕XH7#َebr:sEkRq`IH,)##YvM+7hQ.Ǔ}śiV#$aWG_H[2J"Or?8Ζ? d=BJQ02iB 4;Dzj_!6Kt pK;vUˆBC#g$scCm[草YI"p)1ʑ5if1b6tvyJ] nD'rިd}RqyR.6zD?i])_e9tSEL?5M J[吙kCo>V H$#BgB6wi׻.2e.6+OiƿxQU8x弡3,XfσX0a,2\oO^fjtbC!@9ϑ"/XLV;UH/N<"rc)[:eg2]^zVkk~Qarfꀄ˥X]קW~<uٲ̧<*Eo&cYW+Tx:f<~%5Ūhyz2y9)wodzQBpD|x\{9Ԝ~quN3˟l40000 developers1~nS#Ah1`;h*h-͓IMq)$x340031QH,ȌO/I-.)+*.aPے;UE+=t/ Jr.SҶYvAMʫ")K-)/F`Q[7W~R{F3V8#5'Iyn%C_3mIh2M|̜\{O+T[Wiϙ/Ъy^f5TmJjRizzf^:X\4grGl׿ <}p9La~rinj^IbIf~XkKXxxDTTqzQ~i^J|QiN*$XhF`;W5vڜ̤ĢJsv>hۋ}-ŷ8 >713.uk[ygE@5.>985$(31cdWɇ/-pToO8QM> -}}?TMyQf H|_ENgz c Ux|;XUW!/v.+mAF ߿9/EdF˃100644 test_case_tutorial.rstI\Mr{ܽ٪k=懢HŸbΔj=x}ou`7Z i5zlגwE(1E$e&K&tdl뾜{^~?^wI^%y"MUC}({YT'eXu/:*] *v<2%Ux5 tdiίQ>Uuϓy(J]*§(. <]ȎqT%R'Ed7I0cs IW',N-7X<ą~|7`Gm!jfY†y' iѫ*e a`U;ݻ(x?7\^(Nl~r*,(ӎ|p= Z⪣!XoE㇤ 'F eVz%_^&W"6v ըoNORucyY:H*!h8$A_zBZQbd'iHEN^Ƀ*]yuB[]53g0pח74+bA== EV_[IE^GXr?ʼnm̲]^lnJ=O6YY%S)eT&@4H?ɾGA i}R&i(SVIC(,)t o(жux{6 >]^$-/qy,3 X4.J:^[ljWɚ{'sưk6i?`95Iy.j8Pe4S.M280m[fNq ߵ]VcX+㼊#\EJŊ F)ȗAQ%D]0}3WE2XuǴ!u9:i)}AxvO49Ǻ&0yN&#:0Svp+[{r/ ?vǶKxU<>JIpg_ p_rYPCpOv an4mUכt0xzzWKr9H(m-AɡBK= q_ߧKdž(O,YV/)HWmwGd91̰dc? +-Gr1uϣdhQwXl%/I01/Ssmxq󄰗UEYUjb_҈Ԉ 뢪 :TI4/"sA#qNg QEAKWYd`׫iz DžSCOWц@4AU\ݛ,nOaⶅuԹ ţܔ2{A{UX]5>\w@j+qgWI/ʋM?ri?qQQ _ *M( %A7%)'a:Sx<\z=A FZ8JvY=;E'U`S@j6[PbJ6y$1AU|;z_//N"7d;z*$gE#J^XS[*oγ6٠헁`=Fټr'̬.M|9Ã] {4}A4?J0h.w`e]mеudGCw""-n:LƂ,P4_FkJ8WL`i .[) "ʌ#{ƽxNocq Qϕ^"!ߴ,c5+a鴮 ݔ/gi)B V;<ζddw>HH<6hx!C,͔^C}9X;6OAdpM<==pc_Ѓh<፲hN㋜볒N,m(%Ѷ&{QYn \7(%X|X5bpqޣ $ &v%e)-\lEId&;lb'XN-[{cnmՙ*>[ʮf|tn{`pQSO[ݓkw9*E{ 3_ae%O^S#vΫE"_vNY|GJuhSqݽ(]mWn9$_xk=LJ#a+_!..+4)ۃy(S8vJ>l΅{a[#n'Nf)5nڑ҅Fcq677JW4!9 @CCbaeYY塩TZ@S74Nﯮq\5`hS( 㛂|C(hvֲG5,m,ĵ#R2Q0%i+"+#'&94%}Ր2Vec£' .(jJTw{9CwD vcnoF]='toJ7X &l`HU'qVďu0v^]QѯqA)udxLhoP[̪|u`?ɨbpdn+d҅t0KApZө ,Νurv(GR$ qsPp ]%G&t2օ/+uև.JeՉ%BبơfS*), >Ţj3h4qBWG ew[R=/jn %[$>Y*MՋ\C5nBE| vKx)VQ_xdeeUoAᆕ ֑ V&` ܄(My* ըե' HM=ڝJf+2Y}pRDtc]|ȍI-X| ֯kX.uIEVq+]4 t>B-E?#D4~s=ÙMxfbF aqxqҵDOBQRʷ\)'1&W3ʱN#5 SԢ@W-OJ\\"~Yvcqy%f#WԈXe+g*3kWrVGktxyY 7F\cŋ^pђ TZ|lݽe5*co]{}"\Mȷ(*L*BY5vzpjFhUZ}s0)%dV(3j!g}j߼* p\0ԛA19wh]Im X>%0%$A<c{?.pBb#sz,ts\ kTX%;ɶ .q8juX=p!kGI1)U"Y?4b(Q6IJr }.+M1;~R3z/h MZU/npw(VɏW/bЯ٩J]kJ6!*`GS7cYJ>x,Z;b\@g=j,\ T!ȓ%f iU ZɊ'}BU%v6nF JY`EUӁ>J; bj'?&C$j=Dpo}Q[Ect2*} ")i ILH?Gs[:8e޿*GZvp M vq+GhPcU pg # L]]N34Lީ7i86 ^^ts0.+ĹK=\@A_#VGW_ҠΦ+bN <Iaښ,0Oa0@Ve¼Bi(W3I( mCBwO$UU%Spi٢unف:82{a~FEGeذ_p@AQ txѹ[n%V@(}HDjV.S{Łoϸ5)m .AG-"e22`6ؔ&Y`3ysT23T]-@DsjX%Ye{;"zn ׽U\Ժ W(¯Ft AUj'?U$4fdE^W#_;2v傞XMhb҈m +2!6NUc/@RN/G㳫]x;U,78`ac舣K۠'܅f1S9%ӯ38ܨqg$mdS=osm=+>zl3~ksX2~ 7DŽ<7̷X8AdL8 ^0xMF%֌KE6f߸)M' ,FM5Ƶ8 ߛy_+-7o}^9zZu4V}>{ n6"jBBZ*hZ @u&,g^C}?vmf{8}CЍl&܃Y'HN_eOkPehNã6;o@Bk$&8N:,8>)D9='>%"4 Ӷ,>Or!={[ӯo*}7yUgp.u~E^eyym1#l5#?95c~n.gc=qJg `0 $FxGnSQ/2pcLc(,⯕phS3&[a.uG on%&[bgKـ~`h'drf$"86کD+; 'U`$Tne~i``Mb~R$zAq\OBj|!ʕHڡvqy'BE~z641l6^8XI~*ECiEx*6И_gÎfUO0ɖoL5o4KL_'Ghc̛,BEϷ d.?g6fH'%{QECAA1C -?{ AL#/I5O\A@b^73ʬc yٷĴ,pԍ4p1FˈΆg}Jﶳ7gfMY$.stJYMՂFTB5 T4(Cب иp' adeitJ^tm\aOo=UTj&*pWm靈<.,BαB ^0NŠgwԨg"֙* Nnu (^^ iGl/ostG>2Xs/KjLWtOScimg&ahdvS?LߝMnnhϢz}Փ.&Lr7wHl[ue"C`~KbeD0D]Uɻ2P0 Y F;Y l@IB 9BD9ciϋ'|E]5*lB{S?_^OaxDab=vdE=RفқX/8ھDe-Aۛqz_U7B9ņ&q]2x үq}}jL\w[>_\2ah;wH% τ^3^8Ϣ,~a=cUf1^oYS9XrO#K7=sowʼn`Jʓ'buEeoZ oD3qv+ۏ޾DyEL zH7oFo-'83t6kTH:$Dgsnο#l"pf|{9 =?e'*^o_u@zbpAU#De9ul׼M`MuҕNUyC0HIj/o1o{]c-mo.:g6 3csgߏ>q] iÁԿ_@K;ջzqMxIF[%3c7\%Q0cpw 4lh?$(騾թ*R9f%9!b$K²dS3f;]R 9$v{v6 *4%>žH|]R^CuT%T5Ó ɶ6d@Pj@ב<Q7$\bce҈Fq.En{ X`]h?uo]'{vS]_+v|CN&N8 \KnK^Gi/;|]3ޠXLJgWۥ([=4D=e1]xœqYfd\zȀ(4>?CYyӢ؝р w#ΟDʗ' 8t?\6%m. T::̃{=|*<5_aYF%S<õDl : CMRmS@jhRc++gTaݺ^1U1JJ.GX^j'qQ-2+\[u(a@vog.[?Ov$`h&Pfwlзh];d9Mf$]_oQ {^4 cO#%p w`!6MGj '[HxIVG3(Lf4̎2.`ק,(9Rt !`HR`BE 0IS0:fBP4C<䋂OE4IȌɩ A2fA40>nײ.' yNȯG$A`u5BVR$U3i s SDQEjU5֕mgnwx 'k=]<]6T#;T W%B?Msg)P* 8N.-%<'V*]o.^KVG) ɭBu{hu ETBUKMƲgaKf6n |#܈lgOvX<2wY-7xP4&簱i|Ig5zmde?="l>Pq)s tS>ݑ1H^ɢ>P ܔsZs1;=&U"hиd䓾zznnݒ"-^#ԫlaf^Fe7yʛ}u'U>-fn1Vau{>0B}?jt%ٷ#GXj2EktgtݍX?許$zƍ3DK<ӝֆɄSz-}])1!aGg7$-MV|4Z OLOߙ< b`YOrN$xogrȟcpD 6vFڢW*:,oBg1p(h:Z_'U_$oa C|oz 0.{ E~߶#oxrͲmQ+6Ĝ‘R.xδiB,=[57ZX}d2}Ķ{ x340031QK,L/Je8v>Vgr1MNMIeP):dn| ׁOO]r &(5P/!rE3YNZ%&(N*O-ֻRqgQL/e"E&@E?Y͏~G3_qKF5(2*Z1sc{UXo4.[ äoK.xP)_wDQdTt|Gܳ)o(./]rѺ{P'gda=avꑚrZf R PoF V/v:Z6)E%P3?}se9<0#[x}SmOA)M͝  DH\w`sr^3w"gy׃TK4 ӱ|_g iM{iVzvN tjDGoB"tDQgiPKa( QZ;JٞVF 9Pya>CIyj7UmT7Lxz6?!)/V.0im;z͹AU-tRtخKnCڥɔϾF m,vVHpFxuRN@}b #q<)PREJ!VVaY@s z|fLmw.9*YJ!QbQݜY^ă(JˇB0SQBF*409u0K^b y7V)"v8yT KX @! mc%^Z92iF+J; A2\)d:O!cOXF(jBp{x*C2=[huW-ugi0k{KgJA~F?Ow,tTPKQ-7+pZ5~-(%R&tW!p;qc} kO$l 82>FNcj4ڵVdo<^.q2I>m?u}_8b: ien QA5;M]wp rMn}xG,Tԇl}VMfbo )/%MIk mlSjRS4Thzчm)ӎʕUMpgA(vG3vJ\9`YH!'όR˜N-_~,LW!#7G᜽ʶ) 1EF{X@*kRH_pDb?lgiX%JP b*nBN#_KQ>"$C 2 v+Ln䢽=LT^HFuk$ڻKJ#ILϙ 7Fj5Zuk<)Zzz?07/C٨2cx)fV}6?^oκq^l֌;o6%Aˆr \oh[ S7Sߐ;HuWoiu^lwj3#2 iڷ<ο>M&gefLUg$U 0FȽL~#kgqwcnqA9'1ͮ0){5Щ|v_ dKw'NE\sbDP&!\f D=έ0($A%ʰE׎n>THڟ-9߇f>PD\g93{>[ `q̛wILH-G:RdX)TIr .'J+Dh9֫dTBnOlwFŭޮAh{]Ӳ]](-ˈڼ2`f<~yi1$4>(HPgEen oM| ݕGxVmsF,~ŕN'uqƩ3rr^fE:%NswfRH@ۘ޳o&ջŔ+$k6gTa4l>r)d MAI@&)X;6{^|G J1N"(^ eBN/O4!Za09'o5XC0]2>4J"|,bI#mZHSq-RrH,9 REj0%&qLc')x C!-Dy"sRr-)a,?ȍ7׳p7P\Ȋ;owθb m2E?yǩ`!$)Xf)Ad΂s Ga\ݛ#һczQB$@;$қ=P"!0E+ 9RdJэ3p3ci+4'tI4XRi=gS)0i sZ+'gtÌNk$RZTe)[2.ٻV%Du(댪Cґ>!V܈wV:h- Nx  =X*~TrV=A} Ѯ_՟zTUUO ՒL0zW^ײ:Yd~V|,l<6Ut?u҈7 q  6@Ua•KIr /"IRoC7x+Ӡ8R4{27OxY8)eOL` 46<Gr߷pS  K<'Uw`,8<d#YuNNۛg{7q{#7Ϟó*7Q0_C+xwn9\ mm4FԌ4$tԩ`v iYn_wnz0tBP(RgLNu Yâ\I~0F4"ѼI [emC}wCBs8WMU y,JVX [^$6Q&q$&P+hw~ W&{.X^[jzzU.v^J'-zרNyK 2&tұFE)lbF݃(G`:SW, G)\*nZ`cJi ~OfGixNoyj}p C!s04-xG#t2G`9kWe&ԭM `Dn:~tCr(lߗ︠*SLx[h1WvJ'7L>=BӞ AmZ\k6Ž'Ϝ!e5-=iuabӬhQii6pZU鬷 ;4rDxΗ,em\#YE!&疝yqC(3CX~G2{&u?|}_?"/,G>$8{{w}+֛,|əJs"gȒY4>J~zQT&f]4S`zp6HSreuBj~Utq8?ËOks*(e7¹!:?>C7 ~' r(H3ّ3̻d9do5AxVmsF b3A0;eB\M3qcqѝ4w$$I)w| եaX0Igp?ZjےrpÃuH)A֨aԆn>.\9s RuFcS ֶU?i#Ey!BЩO #@cjy#oNH Sx s[4|uAʞ_M:Z! $q\Ĥl`N5՚[?|:X"v!Rȉ$BV5"ߺdF/dɯvvv{fUʁƃ~7. &c3,L`+0!ͰO:v!G.ê\_񀰘($&,鉄YH[23_ȑ Xp8GC(/wY,(1UM&~CnJ1k%M%`EO&St{Q`c`!mvR[ e_`ԺkOc4rwmRa;~%3\܊>}&WJ`*=) (lÊJGdK2_ 8T"If:80 ڵ/*fJZJO3@=@U)hg0v:_Utm;TLgsi>#UZI r&Uf*PE/8Qa2(lDp4eF{?r^`_6E֎ZEnE/GU@*{zhԭflKE̽H2_iӱUoämx뇍 972l0,xZx2e++lJ O_c (x4i#>N2*,{zqe4^ Yx}I8 UؗjZŒBBBX$~˨>ؖ[d}P!`8aT@!e(Zb& kDBBǤ% DsqpI' 8X0v] &eyJԂy,22G?ssWV`h 9φ禃%hǯz^?hxWZڦ}%UjZu@~*(J(M^Rh)lvd2_})l\+4 mb*Dٮw )CA4.=*kn)2ɥ](:O wv(s/r\hԥrJQ:ӣ.jǡ=%Ь7'e͡fKYFBuOyTMv5Mz127O@0v8iB27!ottb9AOϙɿH72~ Q藰F#n!u卽ce^2z#se]o, UhÓL{0̓[D{}b.&j CIQ'4l6>y|k#tË9Vk0[m˚gNEk4T8 U?㚊M; ><:@n6|pYueC;s!FKIqαm1KVe`tr*Q& 91RbKCJqn#sw/8(BY}AFdJQEeJ}p:L&S !F5<8%:big]})~Sd(:BV&m*[Rn­20OcoǬ-w>ª[w >{^%fWk*y~eB n`_@3Pj'h-E0ǒP%y}{Bm\ly] eӥ"(ɲ3,"V|k(:r98p[|cֳIo9>?{xN100644 MakefileQh=~nK4a100755 mkdir_tests.sh;ݧx\iOƟ~&/CxQk0_q ֖Nҷn)K'5$] huΖR㪹$_Q2J+B$]ܮ0 uS}&n1=Y8YxzX$E58t끫DA):. e`P̴ Ki+}drE qXk5x,MX$tr8Z4La;2![R i9]֋C4NF7'gL?fzOGsBj6qVRW:/r)*ѬT; d\Rо>x2?njGSUɇd߃5p T'cxTY8|WX4h!BA201iV]?ب>P02 ffQC_XBEyE pF>%31XW0d%!8&d(1f)%i@0"i8 oDe^a @@ v`p0׺{_NN˕vpWKG=z5UJ0VZ0Wg6bHsm./"7~g̬<0UVxCcGs ^'ނ?|gޛj 7H|ZߌpixXR7g;גAf%|6$tmr{!J.u[:κQ6i*q0/չtH|֎߬kQp7DN?wUkrck;\fxܝ&HWS+Bsm33=+:^oV=[tdA=?R%n^,ǕC'f p94vcZ\gRK]`R][[esEňhK@l\n\^n.ڽ7reg3A9as'N4x ioMsMj$mt\k2WatSڒ6qm|W(ǓTQ>dDWP5Nwu|Jlάd.xoMgeZPr+'J(w4!{'jV"3Z-vkN2u匹'uF>oJQ6*WR74q3 .a>pB礦9XQؙsҔcP~a_i4@ؼfBH?9^2/n'ͧ/v0z @-# }0?@O;?RrQRǪ88?YM) x340031QK,L/Je0K93I_K!CbyJl3 !|S2sR]R0R` yO\ rutuef>cƲ/Vg֦G-HN//-H,))Kf4~Ռr&׽5+pO9xYmsH,~ń+;`N6W&[,R7T4j$ TKp&Y<_$4 )^<+1H\/8A;aRD' Őv)1J&oO%I|3I"P$}p8DJ&K%FD`dAcYDS)R̔')H&n(>f7a(iPM/ndy nQ[󉸗»xD6nJ'"Ӿ&](~S"4DS,RdJN&X->?.Ǣ,>uN- nYy/5`67JFyӻ?{~w4烡舏wvyÏQ%H\lf1 B3,|{/aaOp-l`"8CrQYkB:27 vP>8śXX.>t8zq||tpXQA ?Q.w#y/^޺?.-/ATxS0lđ lQ(dPl@РJ74JS@AmgslZfBM[WFgPۆt1Gb2A67ձau;.*$r]Z4܉tfĊ&jMV֘gk5RTe7҉ܙN5 Z_NH9vFoFGu}exqGEoY/^U'NkYWiy)[9%rY. dŽ"~aG 붙Aʬi"i Ȭo۵v 童&D%_DٌuϩRD/սG6ogޤ8 =+@FAT<߻a "H"RkX-ZNP(hmjoBY2LyI;sAvn\9 /$뻪/@zaS oˋKzZ܈="f7R! dJK` P7ῶ$"Thȃ LDc)}RXzHNH!3J' We}9!$8\qn²^؋sWTsp`\h,cOhu7 78Y4'`Ym /83\ꊆ\lѿГ4i8AA>Me8oS]h&!g=ze)iIh#j>U Q|e+S:F9P.ݺPr/, u߽ &4w &)ASzDATd  kZPlI%zxz*cZi8"lGMp;jlb֯5l)RpIB 8vPћ}"/@Bg.F&fS5T(Ox8ft^*T+K/,ke԰Huλ·ଡٖΜ# lÃdPEwhP,Kgs%UisQ#R/utvC^ yلJȢڌlD$zkg$F!}y#TƆa , |-Ϫ"#6IכrE|v)+?ޗMYUF`vuh2?'{[&VE?(@UC{65ss[#QzϝJyM'Lz" 0:;FQM/Q?.D?vFd}62+ I^S! )M(AvH6kf!밫w%)$3& =jq;0SS̽CQKZF嫐TFFNvG}=u(HMEZs]F`% EqpIE!det)PoJg%ehUUL'v]fZ|O%>U9UqZḿ(c2:xc$&łkG_*2Mܧ("lO^iZ91Mnml2Lksot :v|CDso(pw#녟ؤ0jx{_)4~xʔKY|2ޠ~1)5~άc4eWN!jF.兀xϩO:xӅޛ M )eB'^[8Oo]Z)\"J bKdz,_f N6d #W{MSr%ln6ID{wWT6Ws*^^`ACTuF=[{oq.=Jo;9QE{K–Kyda=^r`nN]_ଝY3~ sw\ MnBݙn4K t ∝X7ֵwJmr[Xecʹ-lG \Wio^2"""PQT4*TM_)C=&b7J:(< (s1Bw󲄵Hg@e _^k,OQcuacI85ƍF|YqvǗ>OّF(Q`iǢPvÔ,|ZUVit72~)" VOz\EEan KjX$u)7_MH޺ |을bPCFme5*w/x2x340031QK,L/Je#6ibObhQ囘0p߄)wnW}~z"TMrY^2#6 cӧKgDUjkldiTz:!B_PY/,ΑP&&@7.GvUTϦ.cLat&F@SiobihrzbJ 6}rL |5Ju ,-j9ZǘrnRj LAN(puWΎZX}y.6@orYe+bibDWkdfhT:c Ǹ[}X* L@ 6R(}*;CnaR##]cs\ot>͝s*55247n# v?Bb`& sSsJRέ[h^_Wjf B[.s8yxKDo K3RR+>:iMH.;Wspx}TmF bJFƼ$M[ȝ8C,Q8ykm1Bzwv}Ps=;;/ϼ6$nxQPֲO.ƫ"Kr([rtB{lMɜ$%² ]ZiQiӨhS^v!$~F PqYo.+METPD_xa1>i[/Vc$VSpeql|[N6nV3h\5éSf ߳+z|Dq +e8pGP 3,=ӳA^Fݟ;M{+mi⥸ILv9j+P&ʆ[g+LHM< Ol8M9a Hy8VZ]QW3 sujW;yF{ds5PPE[z1nA,y~.̃,1-T:ڿQ$U3#ovY*{HTk^T LoՆlǡ^3!ƊFyKAD)p #iZ8allx{`K7x[;*!3?$g\6Zk.hMxT]F}WlԆ+, 7mS@DP}caAS\#}iLfd99E9MLΈc$*$ /stqO 0慄W"S Dp1CER$zk{ڃSۓ ܍oI&G9ĩ `9㘤R`¿`y?|i-mӂ`g5M74 Ӵuvy^u嗇 l]hkb H#֞icK2wٮ};`qb skڰQWx5NHx3 hV.6'EϾIsFw3qi1%9wN3(ه';MEF:ėfkV|ThJ2f\"Shf[ j,4弗HY;=1I4|VJVn (wUa+c>'j}p's>=,>  "!Wc\$N9RbNGīu;kM4KP. %]as2zKxNLJQ=c5ܻe#TM"E4:Ř!d}vdc጖"a7aqxvzxT|䵹 vVmdו&SI71UmC@&ox]`%雏=Y1Ee< /%4<?1"oHͲ/|HxɮF}EыU3``n3z6ڔTR-2e9Z49^LrfL$6gxDDAYNB#~Iٽ }JX9JyL$Q34^r`-Sׯk^7 QIbDhZފE3,Fϖ`ڪ"A4KIv;7gp'Va LSanMLo^t ˃j^7 jL4eN"=O}P +SҬ\1D͔To~e\c Iچ&@i~}EZ#\)&͝r63GV5fz/ōΧ$#&rV. GӒ OlJ:_bR[Lx tϣ 7+I] NJH4SQgsw}>n15KkZ4TS T+Gˡ~nB!)DEVBsQźdTjYȂN?Ƙ4θMr_r"Y,,(GBZJYDX35Ko?[؎#&_={5M74n[rb315CɆ<WAbѹWK$4mϻV֩2f_{^vǔtyo,̿r#n`~0Gci&K:mx`v d„1]R\ebI4ҧA ˯p)7:xʏ>N{bC(%~\Xkb~wP|TRB`>I%( wM命.಩-_x Ժ*_. `0يl޽Aj;7'#|RZTFBhy>~ouFxCfOQ_c K$mZtg-a$od}b{#YA:cSMʶb9LO’-d49B|xRcW^>Oiftt3/D77tfAy"z(<5dFDW [^~=f͍[}r@1C"1g|%Z2-a٣!s~paIRWڍ+OQqi(۞ _~-Ɋ3)þ|Pn}MBЪ  q>X3/ !phWƺV? ٫JxɮFEG.fh%QlmlvPh%(RHW:3@#l30DciRR.@aeYJ I21"#b8"s(h6{=o?i ?EE14m]HuPdT`^}g.X8']UUSq_TgQ6= EڮWI{l**6 q"(J{2:Y&~.M޹{%x]D{>G{+YϕK_48 =̝3NwR<\xﰱ8$z'pUTs@ e e%8 2=l]#Yէxm|`,![񐏭ȩFiyh,HB`K@|#hnǛ {"ZTW&5Y[cB#ΙSX}^--r~wrЊSn}w20̓΀hg–4:bؕ5ǞzN$de񄸭T5-RYףcԉ!_uynk݌9 /bg[=_Nvr3ՂWר6&~WQS (ӝO.BaGt2;d eW^-pQV]17i5lPq 9ҭUc%gG+%N)yqqZ.Tq,WM6*? 1 e+zîz70*9n߶ 'ap vE0Rvc-qެmẅ.XPef{:f.Ӥ*ېI3My-rm;5U2=fõ0U'21X,x6Uc}/4]f߱+cDt-(e8ItwZ B^LE2ɼD@궼-4ᆋ(b} >ގUT˛qR :37$7L]_xWMmLU/7oiӧ%옱9:CrjkEm H!;UE`&¡!'ۺ xЃoʄJ6!)aꦪQwtY엞 a,bo42'~cScpI,paGف>P@ tQt_eOG`C(cFGLYdCHO@ E5IV(5ω}!]s(SXqP3.l#'Ԕt}O=Za z}e912\:kg6 zfӥK;3%ƃ^~hor($ԽYᮛ7lWb8ʷy}cL9/MEZݽK$K4Ǻd 7CntmVzaH[8/gz)wqpyS[t.5l-ѩ]śE6T^7'G/EQ浮V2՘+l5~w0@hR[SQ[Pp8tO}wJâhBya&8 ]0~]݁;'5O^/`ETRm={ۏKw!92!qd> wΊ l|:^Ɏ̚+ Yt-֯zIFK=YqP%z\"x5(Uoo 0{ezQMdt#eLfK4|psHwl^]|]0"Fsx%Du\'W "_]Q|ebinGxɮVD|řә)r0=68΀1/0'%mU5YE)GG!I4 b$$$d)M2!n$K3㗄x%Ѹuci`r$M)JeיQ9*'q~T1uZ]9eVj%{9yӣICq:]:^I* D!lJ̱gd uZjZPB bkW)wאp?Z_E)ڔhգ{K ӣ֜ (ZSDi"fMwFy&8%#k×'-k-;yct(/=Eu,1+r9>NG/hDZfZ[pŮ~3):| H6U !$*JId|"Tݰki):gj h8{߿Mb$ҿq"ܦ \"%sw]ү>Ͽ0DiQxTɮFJd<*d 5tCsl"$RjSRNt:A b̳My!SQYMTLDQv@+ $ dRV ˤF FF:';}cʒ/`Ű Cay_Gh@ z14)@" MU5]UMaZ+vw\\ˍwe1<4.{bj ٻ'*ͽ8+K3To`Ph7-neY2xT6S-[*GCĨNԪ c9^UlUn!*[F_)LNHfl*l,䟛J3mLC9"b*)6хM >9LΠQG/ 7aܣ㰗lh2gpXD^\j>Ǔm.y16 5Q(wpWuKzR`7*󅸞AϐW pNVm,>Q-Dڞ_<0fKwVE 9^*Z[n 9zh 81}j89 K2ۢ@@/`ZCCK2Ўȕ (.h&SAi">5겶7EVg+!X3= C:EՃXzY%lv;?(1>c;Fb|I-8##> +ƚI0KيqӘ&Vb>6߸Ӳ*՜pرV<ΠV;v+zԏ-b.m#ik,M(MDE38˰$/Q WnjD7 igBpt 7s4u1'k)釸59+*n=!`5z咯0h\(KgѰw3ƆAWr^Nis@1/ KEM`:d}&벫ȹ2\n & ع5 p5h*t 5}7 ,(WUW_,r0?d6xmo0SM]: J6 ygH $M>=IӴltF"B,83)!h:e5j郡-4 CXqO6Lb5hߢ&ڶf1:"]=X"&$S,U0iY B=tS^~:4T7MÂ4«:kT{0mpιO@W$UdI,F+ߟ^y2XL8zn3hjMG^u>Η1d?\o@H3$0bSЏŸSBs~JUhy ƴXM\-]׭~h,[ضȚԾ0Gy椥͝\pk?wmY'2|[CC4nY,c<}!oz5(>GhR6M+;*`ZPd08Ǻ(K,`ɦe0!tnLSԖ5ȏ|RG2JYɏ7MP5KAˮFGQJDu[^N1{{dT Gѫǒn3)Gw#\xTs6b>]1\;B{KoI2$]$wLcFz퓭F<zdqkwR~Lf0fY"Uz×_M-ҭ)eϗMå;~:,N"~/۪lO;bgftk՝ ?G7 Ofw%7̯oY`\ U ^ ߪʂJ c˂?qY>CQ`V-i,b+aXL,JJnu27cd(+T@ -jeC!2Ȇg>Wp #fdB[ $(SF) hADo0-~]*:RQbN%r+J;$&^*y6u '3vz"^,A㗊"x>`voAy1oMݟʮKvC" R[i|% z$iQO]2%dwݑ$NewiTi@"\dJj* MQr<;y vP 6Iq61"o::W%nT4;k0E01}Lh$q][Ɵ=Ydz$tj;]*ƸmCrgN'MޗqFMםV>q=z ]{3 yK!ߤN,x #J JVU02P]6RCnLvB!dsA\<}"]2JBS@ ՚>JYidLJBwjh) }&Oc(5@h &?~z`/퍾rH({%!cZ¦ϿP4xMJ1@A¬ YP$Q :.2_2IZ%< oxwyHe,cRHFJ0@hmABBЅyʌdBR0KJ*%|v8-*&q)f<{8qL}[w-iXkm$' +\M[t0tkzs*xTtq_/N3KT3N&[瑱|lW=uC/@z[:{aj`3VxTَF}+Ze13GI1` ӝ&Hfaom|Iq ڮQB ktkn (iǃ,m/łqh[X 9+ⵛk[vs>l(-=$mr)5 3I{0(͕ EǦ<;U:\*Z+53f 3 qŊ(,̌4ˑ‰#v5V~1OcU> H<9MvVOǹ?wB^SߡSwՙd(1S|&l0ܜZ61F!K (VwZ062a1g{է5Nw,0i䝸XBB[izv:r}S?32]szz߬m#-ewCɟ?Mͪ =-v?4n9r>aKi43]ifhv3iƮ#5@o~^Z2dbcb*ޤ7C4q}w~ۇiBg["\0LlMk ~Θ$c7QUw-Hյi=7<VOL{ԂtCבg@NShd?Z~FR[7p"o S?04~톒 fxܫ=J|_~V ZW74IDJǁ_ٞ4A#c$0U_-ABPC7a}oRaUtEK(QxTɲF}xf aha-\FHl-p]2*P=| 2ʘG2E.F 2$JONd&~)-sxbYY) 9rJ/XF@Dw<=~ o[[: QNe4CDZeu-~eMxo׎O;CSE]*Ju}&d=Z-FG\5R^٨lE3)6t[CcO%yTn:o* 2w]1y=]޲0fpn1FS썑w`)Ioٶfv<'=`6QqG檩.b4%*dfP6ƕ^ o.,xc)ORvby95Mt޺OBF+я.XI"]&0;Ya#I4<@z [9WL5ЄK+4霯x]؀bX=$%7ihna20!8<)5t<)0kwQ'D|KFvNVԇzU'e%nW;"Q7e4˹]:^ޥ{v"a`ށG+@ERHko' ft!O&N•I]_I>t_&" ;{#|s}ͷ4q~?[E^ݾkq~[Jϯo G2&/?ʿ_W ˼"ڴ+F<1H1yNxI6Z&E1+Ih0lz c3؀ͯ6͹%;u8w /'Hd|ʋ,1<" Tb匕B(/0Iy$-J2D2$ >{w=K ,q "a@5M50{O, CoCU_A6=e?XKMUu(Q麭޹nZw^ײ4B޷,Me `jDEJ#k1FOG"ױGۀ)hpԣ? v2ӆGۃt4&ZZU>.'NZkĞkRӦO'BG<=⺱}_&f5{af'^z>h+_U`8QXm*-vll۰/.n:tGnu=CykϜT#mRX52"sOWdKrWfh]0l7Ӓ]CPe bpn+X rTn'ěmP 塵8!P|[f "!W%|l]St5+{ja'saMz8HrE*|_ *-U6:2C5/9j/o2 ޲J8 YrQ{R"5A Z.ZF4J^]P/XEkz&KB>y=}ߘDg=|GT^WKMK"΢8$-G6UْGW? fJx}ۮHyN撬9L rQPov+/I=#.؟ҩjmA~`UB㢍o]ϒu\:,hf*kX?ŗ֬ 9:h9P̦r^nIx՜V>y|T呵oY(w.j o JPDC^|M2 3X!ty Z-tm#4\^Z;xT:V]-C嘥5ukk4Agqr#€2 |Զ{ >웶@ۋQdM ɵ}G!z_Pq);M^B@EcwuVlO&Xc߮6{/uFh:+cĀ-6iLkt@}x뷹 i)q1YֵLhhOK/ "raZOu+ɨqA:Qs99e;r -foҺo|;pjF ^Gu_ezC&ؑ{=WIUF(?CM KEҏ7tbx}Tْ6|+NbOܺxۼ [ 6|}L&Eӧ41JDGR"IJPUdΕBXSEY4J(0$R(J"˺ B*C!,^0 D4D$ DMe,*Q3P<*p Gټ_hu_7--Su&srgz`gOlbaE6[/z9ݚlԇMbݹX_-[.'R(p8tO^jd5УVZ+yqCɟ fh Asn8,;5)Nmmf)BX}1z`M^ѪΝJP2tGfXqߝ̛:[v%;Wv>K*`#ڦanxoV(] Y򲍕s[h:Y祓 }y@=S_O;5W׻HkwYF~00\wDX(SB90>s14;)S{Hզ~yv.xx|(dSnOTʊ]G1NC6?F―fa04"P掱iM&δ]M}7oD{@xX^[WD$u?E]$;hZ.}v@-u]3eQ 8/7#{n4X}([z<78Q|?TyY90iϗg6N1Isgo{/i*1;آ4 QVbX ؓq\p; #jR2HHCSP8!F@>4>I}qJ"=x5( @\!"!s^M#`[T),G5 `m9K]zaCj~{P\GOgU^oΊ;0V 6@x1+QeQI:4ULW\~ɇ&C#~7$rRxTٮF|+:,G7Q _"mpOH$2VZ骡@S7>0I3Ihn J7A@BG! B`5"np;pC<c?WG1 #5EQ]0i[dpMg)Y68p2t[tώ'H(ɢ8hRj (٪wF2y_Xp;6ifL8 9QMuN$SdHUPM% M-}+vxUn֙UGh{Ɖ&霪I)lp5IFAڑ{u Nt:H^&z=10s?ܪ״|jH.k6z if-lsy^*@?_)u1AéG=/X[|5nPv|#^3O'[[[o"ئ`ޏ):x_]H&'w?Gι 3J ./xk+c;c,;:}>.DnG$m zS73U7)kꔚ)1aR 1ٙ O: Jj@:(Ӌ8f Nds(ZXe7>3b ]yyIW/nJ@_}O$VGD\G_@'0%+/p"bg uАkjPM%??u?qQ78eetcGteg_{jaI!R“"xOK1C/*ںl)E =fIӛݶG7̼@uUJVyj[$/uQBMYD#(2UrbI<b}Ix 7ZNʝ=-7E_ N$aQݛ_a;v+0iL C< :G>أOrGi&NV@ 3AδnlyvpD&p eb{;q97k;voή >HaYG a46lhu=Y$ysxUَ8}+حt=@if4 PY^Z 8%`׏ziX}}|}Lk2"YAFJ` M4!a"Y%)T5*(P@i{GH@4!d0@29Ҵ ؖ6lXmpaXQ k .k15(kDi4 0I5MQ0 K xyk:w\=u殹7g;84iN+T~eO`*F7WkŪ_}f晫gۖ L%fMЭU;f]L+0٣%BFE_H.H]n'Y݅4|v ho޽mԁt<r80OA߭ݱEP꒚9"1NH™lvd~h~M#X{D8$wr$Ry,ɲQWSl."=rqX̚}0vv32G۩{Dd3)Rڽ{ϒ_/Q~pESoYK>jM,U~/KE:tKB^<Cq8[-[:ptF+_$`[t|O.Ewy/)|AcaE4YKZ16.`[0yw&gK{8-寰 ,4 7*s݁|ӭwV|h;δActu޲[ms`O,(s|oӮ݌~Zl;o۫pv-|0f{Ɂ,;}4i0}o$8} P&_o&Ğ[8HŰs6L# +0%@iIUCc&#C7TƯA=u[r +H)W',aXdX OhKstADQEu(ɲ6 E/A;iR3\S?XAKxɎVE|ŝ[UťSo 73{c 6_7E95ҚG &@ - I ОA{,1#f p瘄 "bORyX{q_5ORHsՏ @~Dw۰|cB(r̠I~zVf)+aJUJs |6;Dg%7y VEgit^QU3J>,7z$ג5 7G ;S eaX,V|Q+0BWb +H_(k)̈`zEN/V&8j}*a;#_2, {ȗA "?pVtE},$8ccu_J etj)U2[N͝;<5tbFkxd-_˫p$^uˍeq]hq![T߈MR=<"u6S.뾛"V4"*@`M'(Qe'~U]xTٮF}+Z4#2c* zƀ1(/sjQ-B crh3ȧ,JXf94-9I.IZTa pɹHH$˳$3a1@,{+4&8nfY]',(iP퉮GetTAŰ/ӒRO˼lwM>R4l=^|LRy8 ͢?Ccva\m7xˇ#E򴞲cOlaS|ľc"@U;ZrbSa VS7/+$m7˓\@!Afx+5.gɖVx8;B|ҷC pٔAzmV6wRA"<Q}qJh/"5Sa˭aM9G &5Ϲ֪436x|'Ȗ׶AH.qU>|+cd$QԓOuL3:M}r+@"O;{dP?^bO[<[ 6I#3\ݒaހ y=!u6 ENNw uY[4?B)ZZt3OQEs¯F0\}H{ % H |/;% _?xSUp({!F93UtM&IYr*/oM{ql_|j&{Eutsw^L uNǷ#q0NoxUɲ8d`T+lmloR f$o엤ꡚ Hs(4E\D \DI3%K0l( 9(*%Y ND!U$Y5<'LCl| 5 n_[\xE%ERD8㘬kD)`){{J|O+<Ú:XL rZ/>Bwba:e9F:؛M%PLJ4lfحR˸3 WOॗn+z u׈WrĻ`]aTnžZ 9\qQkk9#UngsGvUu E*G[ezv-D(alr;-]-$L;s]fڿ<Fmݭe_py ֋}رNII/M*=TKdaSEzd:e۾I&Qލ׆{f2M_GvRb2܅vc=\FU#yx5ؓVhF2Yu7-{UɀO=]n4jP-%YVSYW.߰Xiuyfw2C }$ !ѣ"Xg>'j u<Y=C~#WUeh Xױ<y{_Yf %} p">g[5?P amQ;Pޏ^0I:vg7Q5VgulYoV:_Xeov8,1cfb]cjU/.bh{Z8檉,D7c6k݇zuӔ&^YSq֫,uk+ wӡ"ܘ;9@ɮUVq^.',Dz1PfñC 3猏#gaxБtEռ4Ml۪SE{A*j ~f;p5"wi1 ABQs'&?XC@D49Q`XF)")Xn@O˺D4 k@V_sTԢ%DOx$&(;bOe HH#&IG/ ;@5OŸ\~^CL(Q{lɮJ#EӞkg<.ɡz+e7X{xUk8ίH7=wE/=^ T;L‡t?OwnVa BE1>,WI"$ij I(QsB?!D8>B,InH aIX8J԰KQFr\_P~FkgԸIפ*:PP,# 1gQa ~.o;,x~P(8i!.&3x5w\ 524ٔL&ai[,Vz|~Pcjfemd?d@xt2s5,擕2:zug3/,wk䣚 + x:=5p?"#YkmWw8i!r򜸓,j򺪽4}81ӑMyXQ=7km)^2dz|܎Nd"99v,"9wÁή [rYr^²S+]NI TxQo|M(hB5`9N9Χ趤Ok7ДRqlR." Ɣ(0V̀W7J[+F==tu$xqՎ^SCڥ*|.KmVnV&'F'MRdZAنO!5d&gJ6\QeFnsV4}PhpDZ[αfodᘯkp7]irOg۔u<.OeM{G2󡬪 n7ܪhxv}mvbnYrRݗbAȝ P~=ۺP j[R_9Wr~5XYbLXyzE(57_*{\Eï#1+UE^2DF]W#>Aj|G < @uUQTMQ0 KMVuv6z<;+<=QgZW*yFe֮C /^=AQZpu4w)^;QG^Ib.uO[2=q. QddYͺ9y4Zuh\MBᒾ,]#͞2R {w}r+zovJKJ}(❚ v68&ײ﷙wEV"R3zL1F|ЄO}` yMifPQ*`\4voq 5x ضff bV.j"){wkT-G6NrkV'ΞIqM:wd=/ ݭqSy, }_׭&-  /wFڊv5YVAuͪLuT;^}ku/\\5DkNˮ/L̸ \2,; Ռ۫g[^S}- ׿{p_#g֓`xɲ6"2-񑸋^VK8Q:Mo*k;*ЏUUwv钜´W"$NP] ɬ?qES)\W^4ηEV;[vp}rE".)u`t,^ oZn5DskXd7:u\?˗A2 b&{:#ҼJ5DI5^~50@NjzJKϨu$7yZNgW?y8+| ؞3,tו6!.o룙 cԋ9+U&//slhݳNHQUErϣx|Q͵RC '[ˀfHKqN B1 $ #E."Qch h2F?<V,~E# 0FیPD( MΘ`̥GDh1X􀠠AI:]n3N`;D "} ygld4EMilF+Va*qSmdqo~occS?QVFѧ?LtxU[ϣ6}WX}U%; ! >q10B~}Iҕڪ]ub5g|F3sL+R!>e}UX?r"  !S*(P@P2Px9 ؇|>LV `IKǗk %U@Y/+VY&$y)EX"Z Pk}Q7 SyA[DzLR&5Nc ax clݵ=`Sk1:ᙓ7\ZP."S~ʖ^N&.Y Vf6Yl{oyoeGon׮5{܄ 1# ]lӋ5iF`D`5g‘4Q7\yW ꈮU)Y#էMUΠ颿{ ڷm9a󷍥vR][k',2􆗸fϺ䤓< Vz;ͯd05;(rJ F">fR˥KS8k}xdqLYG_4 ~NK9159b0 iQ(XaJ B@3M~Z5*R ck;GT(! *A*qQSGb_`pq!G\$ӓ`iXs? K_|8܆G x2)j ( T =Ԫ)piFH]1z +GpAUIQw(-^/kUrza/ec9%A`ag9Uhq,P4_Dc&7?n4*\psW-_Z.؏~G'EF 7r""y|e5~zE*ߣF CƩ ~'(?]eTxGtree 1c87dba766d60931d36a0b36913b24e3f21595ef parent a059c08dd571efb1a7573edc72471765278b6e9b author Petr Vorel 1760970493 +0200 committer Petr Vorel 1761133213 +0200 gpgsig -----BEGIN PGP SIGNATURE----- iQJDBAABCAAtFiEEIBb+pIWLHDazLoM6wN7C7nLzOl8FAmj4wqUPHHB2b3JlbEBz dXNlLmN6AAoJEMDewu5y8zpfxZ0P/11ue2E+u1h38Slc1XhCuv+e218SGSgGxDJG yPyXanCOGCY93DLDhEaHLfeBum/hgq2Q2otFIGuH4j56S8hFVVE2tSUyFGeTlaR+ 5IqXeWyhpn7xoVzn4/XKgnq9F/g+xSFltcOxyPx6pkTyQpeji4FyNKvmrBHDzuXe V1VG6tFPXfyFDox7/uVM9Ir8HLwVKm9NWYj46m6r75NZmkDk72c0fVsSGEgdsRp6 rK41jbdoawH0UT/Sn1NUSk2V1aepObIKkll9ka+8jUamjImKfrEfy1zLduabwnWf WPZRlXnYe11stMe0Gbs0r1N7dhdPPdmfA/oydGL+Zlt+CWctUSWCaJmCJYvSzUBt LJ7jrPmyssu+l1LiEOZu5Cdl1ALgXO2GjvQcHNB+r3VrwbPY4ujzk7B8Fr0npwqR pSVvVtagyCsikFrGXqiD7EARmjNbmrM09ana5OZMTvxKm+yOx97+H4AJgNdY8e2c bgwtUIVW6ZDiGNWsOMArmGQnqXXYzglaQ72BOt4eMjZGaYu6n9OQ5vl91aZv/dM7 OVsKrP4vexsjsaWkqtb5BuoGY4zGYyJ0IGU41ceFv3NrQVr1+zaQCujIDykk0FaE AS3K7UMYWFPz/6xw4lwzodN9JxEjneDRZ75o/Sl9Lh0svbQEVpJlgnECsOgBWeKG zlGp6F3V =M/kw -----END PGP SIGNATURE----- tst_cmd: Change tst_check_cmd() return type to int Function use just bool value, no need for int (readability). Link: https://lore.kernel.org/ltp/20251020142813.415231-1-pvorel@suse.cz/ Reviewed-by: Li Wang Signed-off-by: Petr Vorel =ז\x9tree c02acb014feaef15bee42bfae2fd82fef11d10b4 parent a470dd22dd5676ff63bdca339595a68c3f596add author Jan Kara 1761040708 +0200 committer Petr Vorel 1761045288 +0200 gpgsig -----BEGIN PGP SIGNATURE----- iQJDBAABCAAtFiEEIBb+pIWLHDazLoM6wN7C7nLzOl8FAmj3az0PHHB2b3JlbEBz dXNlLmN6AAoJEMDewu5y8zpfCaAQAIQPrIl9DX5cPIAGZF8QC+3bDSd+FqRzyvow BDIZpyecJDOgoroSxXpjRdSW3AbWuADilaVzW4REVU4maLI9zeWTTPakfcAtPnah KBQuN1hn0E0sCOhppaN/gpCco5cP6WF7XvWoTXa3LijdEgyj9tW6i42RRAF5mCzW CZWoAYRCeg/+ohHN/wEyEG5nVpKwQSUdkEx8X8rdJWdioRXPTSQJGhsmUhA8rU1S ywUSVUL13XOjrJAqPrb2bCrlWSJUMwp5P3xBHlsuHHpwTs6OqTyP/mBjLefzJj7e 9CA3F7CN2oC9j+SAgpUj/OZcNtcbwv3J5Cp4GtYNWbSYKRgQTBErfC5FFnurd/cT KyqjP7+TaGzkTFrkXjcWBGdlitedf7KKtx4LruVVk/66MDUZV5Feoc8G7ihvZ3e3 4YGE5fZERfkSbYuYrktY6JvgDaqCZL0MqaGeLLs0aWTB2gTZXLr7KmPSxZnPS/SB Ti7yssNMBNPplE9/aDEA2meljvxiGhvE7FaEJ775q08FKlKXoxRtluAe9/6HJTRL GinVY3zX3cvsgf7+3HfRaaZ7/+snNm0a+bvj5eNpaCXAqXrHz4vWPfGn6ULhfQAo fq/c4h4DgYhLXMnevlXn8e7N1tRbPyGgTXrAG5+ho8vLm/MML+ogf1B64aChI3nq pe8vjqDr =SWcz -----END PGP SIGNATURE----- name_to_handle_at: Add test cases for AT_HANDLE_FID Add a few testcases verifying AT_HANDLE_FID flag. Link: https://lore.kernel.org/ltp/20251021095828.28779-1-jack@suse.cz/ Reviewed-by: Amir Goldstein Reviewed-by: Petr Vorel Signed-off-by: Jan Kara [ pvorel: Add runtest/syscalls and .gitignore entries ] Signed-off-by: Petr Vorel 6ΙzxVtree e22eb2bf77035a2614dca9a3baa9f7d85264f300 parent 8566228f2bb1cfede7095c6be68d438ca2ec53a7 author Amir Goldstein 1760717799 +0200 committer Petr Vorel 1761043522 +0200 gpgsig -----BEGIN PGP SIGNATURE----- iQJDBAABCAAtFiEEIBb+pIWLHDazLoM6wN7C7nLzOl8FAmj3ZEIPHHB2b3JlbEBz dXNlLmN6AAoJEMDewu5y8zpfYisP/2v9NStMmcrXGTb2Vn1qk2aFc3DAEw2Te778 gg5jo/qMATRTVC85gKjldx7WGuNB5blm8GPdIHw534nkB6VhR3M+PKvmGQmRXikT lgmwYIZLtPentRoHQowhxazJoiv5J8RgS2UxOnaMnHNj/sSElmOPMgFfykdsH9/r eX+vsl9O4KMVnQs6jDNR9we7FCR9lu10C/1LAiqoTyX5to2As3vDB5Um6kVGOqGH BhpMySV39SDSdh6WtGGMhPpfAh/0SL1VoJZpj7jsVf05X5SqpHZdUs7BrJkr+KON spFY7mH7jYTxuFoEbasLqo8oHYvpFAvQFl2CYdGDJQwgYhXHF0MPYEda0rtvmiQN kNONMKzV1r8PGH74Hu+9z1t3FfZDBZ4y5eY+aTsIa7VXCUXtdjbr/irvuBBrz5jr 3RC5Hlwu6pW4wgkUXRjZVSOjpqH2/XXmwPRbpT6l1LLrb7eJwpbYEdWseGmTErB/ XhOPUCrrCLgu5nMMBwasLpbI5EbvEX6HWsLfKrCFlYWZXEGrMoMQ9BVJbWgw4pRH vmnKpFywvnG3wC4COpWDsfoC9HluC7xeuYZlA5hP9Q3csNnbhmoq+VNYIkRu7MCc jVUF9T8AT9Xo+ntnvZINSx3x4XfZ+EnK2HgI1B2g6AtRsOBxjSofl4TqJna6NHQb R1WPKujW =p/Q/ -----END PGP SIGNATURE----- fanotify24: Verify expected count/offset info in pre content events To test fix commit 28bba2c2935e2 ("fsnotify: Pass correct offset to fsnotify_mmap_perm()"), diversify the offsets and count used for mmap() write() and read() and verify that the FAN_PRE_ACCESS events report the expected count/offset. For the FAN_PRE_ACCESS events generated by execve(), we cannot anticipate the exact ranges, so we set 0 count to skip this verification. Also add prints of path of the fd passed with the event (not verified against expected path). Make sure that we take the expected error value for an operation (e.g. read) from a matching event type (e.g. FAN_PRE_ACCESS). Link: https://lore.kernel.org/ltp/20251017161639.2088158-1-amir73il@gmail.com/ Reviewed-by: Petr Vorel Reviewed-by: Jan Kara Signed-off-by: Amir Goldstein :~xtree 5b88de80106f8f75c99e775f954840cc0248ff9d parent 67867b6334db73b29e2140718b3eac7dd64830fe author Ben Copeland 1760623383 +0100 committer Petr Vorel 1760717783 +0200 gpgsig -----BEGIN PGP SIGNATURE----- iQJDBAABCAAtFiEEIBb+pIWLHDazLoM6wN7C7nLzOl8FAmjybBwPHHB2b3JlbEBz dXNlLmN6AAoJEMDewu5y8zpfz5IP+QFCFeuwCCe03RUdke2qAuv063q6KlXp33zj M0SOLmAQQcDJI3YNKw+DsZ5tmo9SgEmRzXTcKZhoWPz2/k238rFnOLn5hw/K1CIK FNmqU1nOWWWLf/Iw7NxRugHPUgjQBlWaViBSCuQtui1Qp7iFuMt5ehA+VLYqsyEC jGFyiAfaffz+wUb9vhQXMPC0m8EQh4+tGt5v7EkNFmX5OrlMPIG0LI5aE/lRkbaW R/LC876/ua+l3WuIsrRx0uehrDQ7srqjwHRCopjQ0kPCKjOgIiLSr7vnVei2Entu NhelGqPRz8M08Ipixf1d2VQO1/8Gaiyu2BblHtbjX0YB7Y3BPD/lCPlHOxs/71em ktS7/dAKnEOhfVexjRcgfwlvK7imkUo7b4ZPhLtDQD9i7rEys8UaR5m5U2xPSYba wkF912IwvTHVEsgQz/p8O+oWP/mz8lnltgj402U2H1JgMVGpfLh+jGF88u13JbCv xhtDZR8fVnYgHCRc1pnDdOowOYMjPss5RU0B5CiKHgORgYJg6qkZPyVlQSu4BNDn Js7L3Y7CYtBHiHDrfx9ll2KoYUg85XRcHO0Td3CCPPmDkPtvgdovN8i6rpOCbUkb aGqnS3IbqbEXvfiGQuibR2Dealf7rj36Oh6sf2oNY3WI/dXSMlWCQa03lzG439r/ rMv0EgZQ =iQzY -----END PGP SIGNATURE----- oom.h: use size_t for memory length to fix 32-bit overflow The alloc_mem() function is supposed to test out of memory conditions. How it works is it calls mmap() on a giant chunk of memory. It's either LENGTH (2GB) or "TESTMEM * 2 + TST_MB" (3GB) bytes. This mmap() is generally supposed to succeed. Then at the bottom of the alloc_mem() function when we actually try to use all the memory, the thread is supposed to die with a SIGKILL. The problem is that length is signed so on a 32-bit system it will be negative. That means that at the bottom of the function when we loop through the memory, the for loop is a no-op and there is no SIGKILL. Fix this by changing the type to size_t which is unsigned. Link: https://lore.kernel.org/ltp/20251016140303.1645478-1-ben.copeland@linaro.org/ Reviewed-by: Li Wang Reviewed-by: Petr Vorel Signed-off-by: Ben Copeland ߒgyxktree 7c7271187ecb46ef2eae0c72c3109bf49bbeabed parent c5f55985dea4c7941dfbe443a1d2c938d6b20365 author Ben Copeland 1760618425 +0100 committer Petr Vorel 1760716436 +0200 gpgsig -----BEGIN PGP SIGNATURE----- iQJDBAABCAAtFiEEIBb+pIWLHDazLoM6wN7C7nLzOl8FAmjyZpwPHHB2b3JlbEBz dXNlLmN6AAoJEMDewu5y8zpfDtIP/ROblYlOyx+BTy5iwgr5TGhX73N4/yPDJoeQ BKUfB7JTYmLTh0UV3vkAJeaUY+2/aWS1t9e+Sc8ZhBgA/pKZZVqLNzO/7KQonrMp W5ISAQra0jcqgugkbQ35sNizxDwwCQM3lx3wHTePEEdwtlIKl0bhUbAmMNKX4aCD Ba5Y4Ue2XUHhutQbZfcgleLHYjwu0lq99X0a5yZti7a4xCixQ+dpYz0/0ekfUigC G3VaDg0ZySgg6evfUHHV5hHPTtH/I0sDREM6NYWOTXiacyOeqAGl94ClQavWKjQ4 aBpC47trwqWplgM/ZHS44eT4q81L2wKZfHe2UQCJ4dhEIFS90egBag5pgNrCYwxP ndAgegf2+09DaoZjQZjFC94z2TWQwrjKYppnsgxfDUcv9EqMa/EQAneDxAWcwkrJ poc3lm5rEWQLOzDW7jmckQ3i7+eOnEnx+nJxyZZdSf2fg6MxJUgKF90cMfBsvq4o CZ+M5aFCTHEbSkzlh3wsiEZMYCR4ieyUPmymQ42p6JrR+jp2ymJRkda/mGpra6CK XC3EC0kxDkM0WxAXBlq+Rw0k5lfqfsaF79TMaWdbOeY8CnceTsrHDXa7sAjxc7Pt sYpgm2KqgJo/N1hu0mbNpQJI2zCpcITJsA6VTm+v3wVDPQrYpDuOqvtWXo3wCuia sT24PDzv =ZbyA -----END PGP SIGNATURE----- overcommit_memory: Fix integer overflow and 32-bit limits The overcommit test uses sum_total, the sum (memory and swap) to test the overcommit settings. This fixes two problems on 32-bit systems. The first is seen with a integer overflow can occur when calculating sum_total * 2, if the sum_total is larger than 2GB. The second is limited virtual address space (2-3GB) means the test can fail from address space exhaustion before overcommit has been tested. Now the test runs correctly on low-memory 32-bit systems while avoiding both the overflow bug and virtual address space issues. Link: https://lore.kernel.org/ltp/20251016124025.1472694-1-ben.copeland@linaro.org/ Acked-by: Arnd Bergmann Reviewed-by: Petr Vorel Reviewed-by: Li Wang Signed-off-by: Ben Copeland a_lx3tree 3a4d39c6abd51425118e4ea36a20229cd66a4ae6 parent 4aa9697baad4f67f9e1c745b7edc94f088fcf489 author Petr Vorel 1760609280 +0200 committer Petr Vorel 1760620447 +0200 gpgsig -----BEGIN PGP SIGNATURE----- iQJDBAABCAAtFiEEIBb+pIWLHDazLoM6wN7C7nLzOl8FAmjw77EPHHB2b3JlbEBz dXNlLmN6AAoJEMDewu5y8zpfGnsP+gN5+9nNKveMt0u7gTVNSccb/hj248bRuIuo l7I8YKwyXLVThw6R2+i6WPpn1S54EtCnuNfgrOZNN4oyTR5lTbR3QLqgUCDEK2cM oXK6WTf/nhLV7EDnAQGo2BJaMLkcpBLPMgLRGv/2TOpQUIP/TI8GtkoKi0xsDQEV 0rzaxRd1EO60jj/hYC9J5K24lWP36ti4ABhaEc82FieDxw9Zkr9sI+ZRfpzy/eQO 7iH1X6xGsnJshl7/eTbqOsOgzClzy3QtKC+3cheoK16WVqOcJnEo3AtFj/kBwvuH tTt8rTFgQmBO6tjEn2lsV5/E6aaXgEHrL3UCWTnAKM9XWC/fvPaq00DR6kNcq1hW GCeLrJd+EU9fNLmbz5qv+PYREGrvsH+TAh3oBKFh+dUl+SP1zJuL7LrBqOH53KG0 8wSuxcshUt91vddvWKJYBSCATKzkosdykzW4nNwdBP3sGnijXN/+0Sfif577RPqK veK7gzjrL5gqi1aktpkonacXKt7owB6Kzvxvxsz8iQck5JS37thSrHwuFkzTl1fe pKbilC76KjnUKmSjq7179mIvYQM3GXsyRFCOdzpGJRYdo6Ed4BUZz4DKFB7CygAB vaUEPff9zC/zfshCB6Xa07Vsus8qegd3WJmAIbAWg2C88Kbm69JGL7CsH4AXoepm Q29uuTt/ =9yu1 -----END PGP SIGNATURE----- prepare_lvm.sh: Use $TMPDIR as a default for $LVM_DIR Scripts use LVM_DIR environment for LVM backing files which defaults to /tmp. Reuse TMPDIR environment variable as it's default, fallback to /tmp. This allows users to reuse well establised TMPDIR, but yet still allow to use a different directory for LVM (LVM backing files are huge, it might makes sense to use different path). Link: https://lore.kernel.org/ltp/20251016100800.270043-1-pvorel@suse.cz/ Fixes: 0838220f25 ("prepare_lvm.sh: Allow to define tmp directory") Suggested-by: Martin Doucha Reviewed-by: Martin Doucha Signed-off-by: Petr Vorel z4A 1759836439 +0200 committer Cyril Hrubis 1760455479 +0200 gpgsig -----BEGIN SSH SIGNATURE----- U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgwssIegBxeNESzJpm85dcwdpr6W BanYWYWzkE7SbMlCMAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5 AAAAQLdj3LnzGwaJXdN4tDwg8u6ouZXCMQeg+aatZy2JT8wqeCgEGs7EM+JkeSbQeO1lKt 9gOTFT2d6RBQLc+NPYegg= -----END SSH SIGNATURE----- lib: tst_detach_device_by_fd() set dev_fd to -1 Apparently I tend to forget that tst_detach_device_by_fd() closes the file descriptor. This change makes it more obvious by chaning the fd to a pointer and also sets the dev_fd to -1, which matches the SAFE_CLOSE() behavior. Signed-off-by: Cyril Hrubis Reviewed-by: Petr Vorel Reviewed-by: Andrea Cervesato Reviewed-by: Li Wang ;zRx"tree eaeecfe4a4677a2d77a3306517b1d4daecc52a23 parent 6be831848ab7ed071f4e85fa352f1b844401c921 author Petr Vorel 1760453935 +0200 committer Petr Vorel 1760453935 +0200 gpgsig -----BEGIN PGP SIGNATURE----- iQJDBAABCAAtFiEEIBb+pIWLHDazLoM6wN7C7nLzOl8FAmjuZYAPHHB2b3JlbEBz dXNlLmN6AAoJEMDewu5y8zpfL3EP/1IffXSRU53cgsxVrgcKDsFcbFYHG9ENWccr BLx6bCU+29d6Mta8iEcUF3l1+Y2hKJDc1I7lparP0b5N7jMG4oz18e1jsQXtPDMJ Kx5T9jPddVvOIWSNMFJPTb24Jmfuf5BfYKdta+XveFpo7mGcyszpM+O+yxF7/Rr+ KXts55soRQZQnzv8j2WM0XYW7gI3kfI0ocrFPootIqJUn1W3YAeamYziI6SxPxbH 11KYlybkZgHRH927sQMb0rTOCWmFplI3NX0lRvfM2waqRa5uenxk+cudO6HzRvu5 IU+BA+P4INVne5fAykSHxT5ol8orsfUWFBoXMnoZjPYQ9aUDI/s6nF5XIm5matbt dbj9m7rWHSIUgz1gD5IzZio1rkyYP/+d0VIDJ9bzyGqCfoF5TizHrlCo0nIRWPHE ye8YeZoRTnXQcM/ewz35aWt4k9JIRs92jCP821l+Qxyvaum0ZU0b7kvyTKzb3ASc 2sCR/QAj/ZdXGK7vlA6Mz1DVoWRMim3GK49oVjf5y/1DwMnosLe197Fp7CrOkcTj g49gkFt2NilDOGfrMsP30Ok0sOgItdMgOgZ6P+CnluSfeSnlhpfacTaXsrRELSCM W+9eVri5TgL6XiM1kpMqRf7K8bOBfOtgpH+pNxioTnIBWlKXs0fjOwoeHkEv16al 5aNP8Zmb =Pk3B -----END PGP SIGNATURE----- doc: Escape star in (void *)-1 star in (void *)-1 in kerneldoc must be escaped, otherwise it's clickable id. This fixes error: WARNING: Inline emphasis start-string without end-string. Signed-off-by: Petr Vorel Ejx}UْF|+]A !t!cכڱa{yȬj2rD(TH(FbQQ0H>X jPo4 MDQ`PQB*h@R+XEPA޴ |WJ"O%pQؐke~Т;MdxQ;R^>_Xn\l1y P [LU<5Nʥ6J3 \ō̈l6k塡=(|]lEUŖa wQ&EoO{3,q.ʬjc{8MgqM))xuSJHXkՖ8mM6KnKzo:qvc2e+ljpy+Y5'wV!>,bɭMVu,<6m|vխaL[?o>:՘e*ѕNV.emP*틱Z֋*p%+W|j,wi{Q\(CE}Lk(\BT&^A[ E]1re` A43~>FA;yA E$I. 5'_X7@`t &6` 0{C`р>%W0m7{.o6[f/w'P,cM(@T Ѱ-K\1ɇ~Bx#f((Fp@7$F$N_!G,~xuWtMʐ8YT/7x340031QMNMIeț.z~v)-i<BbrC-G:*[,8Ne1qlRf^ZnI|nfq2뇋nz(UZ/pZ1|iCL_ji{Lҹ!i@sR}ّnL ;IUd2}ϊ5ǧԝ]4~py7r{YDۛRθ΁Oapej}^] W$ԯӾxl WQZ[Pt(ws _t̵Q.+)JML˩d4Ѽ~wcB%|9SU_iYwnS6RaLIqIQjq1%g 5d".Iw?ꅪjތS]q>G 4n\9,*^1PUU]щ|/:Uֺ~Vex340031QK,L/JeB~}S =1ȫXBT&fe2ɾT|&*3PK%W߬**0yZ4UpW{uϼ؄RX k;iC1P,+vs_bd;_C PZǖυNؘ&{(ۭ5 M sD o?g+ˎ+L g x340031QK,L/Je(:coKu/kθ*cQ囘pV{-sC/e;.u&$P/MEwRYrI%"#k_ 0|i9E@ES,Mb]篧#\.gPG3x340031QK,L/Je`~i|_ַ՗G~`ϓ+U٩i9 %6y9]t0,fJCdYܟ'T?ο(43%>9#3'GONqU[Qԛy3Qꂚ̳BQd TUAra֚g{ HlGZ_<͙E9PQ f 쟱@" Inj7}L  x340031QK,L/JeX/!~CAsf}.  !|S2sR$:5vӾy!z_}jsSK3RrRK ng>\p})9|0!Qֹ%ۼIN @ X^He++NX.x340031QK,L/Je(~Ǻ%r+1omC*Դ̜T7* n|ԔԒĢ\Cd$ ?ޝn8zJ5%_**6^>O2IEOccWm T"FL(߁ty2󜻹wJcWmT}E";3WJlKx9[IrMf^Z3f=6HKA#=1rQx340031QK,L/Jexx- >¯U=;f_cQ囘&]eڭUSj`P^{\~%;^Zt +N x340031QK,L/JeliYdwXs6BT&fe2??74r}c\sꇪ)/+10Kf`nk EGLfrmŽ2Kfmk{nU?uX/aCX͝oqrw*IVx340031QK,L/Je?Z%_rRsBT&fe2InWYhfnvc@Քde%3(vV2[yR:m^\/}-/\<4午Sz?* dGK r_+7EUe?"#{-~I@/maý2LJ'/zm;#wxjYx340031QK,L/Je;?^hw۽l#$ !|S2sR<=g; }k)+H,J50Kf0=5xZ-CSfTtaf9w5g\V=Y M1PY来9E]qFSfTz)NG $lASf TfzҪ?gV5R8 7e x340031QMNMIep,>{Iܥ-uV6^ PH.J,`~qV#KssۢD|AC됷*L-sqTE)D:,!(an)6W Yr"X'~KJMYݫbv; x0100644 Makefile'̾ Gԑ7[|100755 cleanup_lvm.shjLa@7L9U740000 datafiles _'v7ף*Km100755 generate_lvm_runfile.shyfo>!0&/Z?u100755 prepare_lvm.sh3Lz4V$ttu+fOx340031QK,L/Jeиµ}zk-oZl񙪒kQek`yD׮uG>qTcPPAq'.T`*5T3])ca? _'.ǣ[o5bDˑ+u_c[ j)؈Gz[-TT-[N39^k?-ԑY;ֲ ֻ>Ḁx7sCP`fn nӃ ޾-U`V9MF٬M>bЉeP>.>N >ug~9ܔ_Ԣb>3bTpmTer~YjQbz^IE FÂ3y=QA,Rx340031QK,L/JepӖY.>N >ug~9ܔ_o'TEbqqjQIf~^^EnCTրV7|"Ter~YjQbz^IE ߚUoOz5JLו`+JQCde|O[ {xu;Fy P,fPlR;M;S;gֳ O7=oOkxuy8wq}Z u4Ҹ!Cb#HBJiZR1=z d)C5X)uPRs=uFQ9~ uvtCD DN)a/hY"Ћ]v;&G$L=[2$ɛX j*yq`ݿg7уBb%De7^xmL5 J!1*/qNŅW1n/zmt½363g` c2'pd 3|杽ƈqW!)K"w$ aL0@ 75Q {tlE6ƮK ݄xvbyDBioLŠ4HlD˦(y rSC@ 4JSZ(/֤~|0s|ؼP^D׌荼d0:!%R%ڻCR M+>7AwdPܪ I#_}c5+ d-`=nz~ǡYAVێ|y:vU-6 '^_OdOnꇌZuM: #}.8[]̕u@ m-~䁄)K)L=[EÅCB5],f TJgFEd|^烰 (1 S$&kc)@ɥZhο f9+́x`PTF9_-T@UvtLqKW@% !a{l3+o)>B*eA&ܷJ6|ع89)TJ+{Kߥi-AȦU8x[ļyC&_ =wKZFU "x340031QK,L/Je`y5x#7 ?v랶!DAKjqrQfAIf~^^IE U咢2otF|8eg71;5-3'šE:w93vbe rutueP=ߴM;˯nT KHKLfZ\L`yoL21dwss9ӷ3fIX iy H/Kh׳7 ҙy9)@W>O ڲ[|Ns?'Q Q`v)d4I?}-H-Jca۫T,OϭdJ9C:NJ.9ܕ @?*g0r}o?]Ւߝ^'RY$o1 M6w~v$$qvXtbu[EIyޒmSN&7^bCpx+D~fDѣ>K'A3.tڭM.Ď~ N0)x340031QMNMIe`пI.t>㣉($W%g$1Zn.mIv!{*B] KSsKR+λI|i=[^ajS!2J2sSt 2*fU<a3SSs J,eI7G])Wmcᵡ}QAGbmUSQݶ(߉Eo1l"t_E%E@u 5u*`ԝD% #~B'għ$%0<}U7&6HWYaVfI 0'v!su`]?'i8뿟}kuilO!^IOfXzhBz)o J|<+x340031QK,L/Je`NyrL؋BT&fe2:ٷ:AsBtM#V*A'għ$%%3VMB=}.x340031QMNMIepM[&<+2o3W50(MO-IKfX%yj3>{p^vMQď8Z*(w#+x340031QMNMIehZlt]GNA6n{inhF/3/aS3fݒ{[Վ}:k(d%''2ZxKZ8LI]~Q6׼beMV'UvG$77UO-Jo]I7BIqFnb C:Wʋr߿N,T/5%9 l|(zEŖc{YQ0DpФx㡵oʆp(jSKH^Kz}y?s7 ׽Q0cbւ:؟H> ӊx'x340031QK,L/JeT67k[~5oj'!DobvjZfN*C,w#S}Mo9L JSK69Խ=P\# 3 4=$'jYy*ʿ 5BWyz Q]a*y`53|U|Me#mr—UM,(.)J-.f(yfr汔ERNaΊUTZ\b`pp׻TR3wot+|޶5J~oHg0p)~e?*Nz>YT< 3/ ]&6w)}ZCj"uֲ'ͩ<2mJҲ4ݞCЈ,)KLFq $y1Iq2DEYn": g7~bncGDHN, {}2+gm^/,Ҳhx 2W&^*ff>'㑺Ix340031QK,L/Je((?vU]vR;BT&fe2-VQҕ</eMAd'W%3dMiXfR"}_uO+q;xZ@NU6_ޥ]h W7H Xa6|#M)Ae40000 kallsyms*PjQ%jΒN/ A='}xkeleP(27 bͻ5A,*lP} ; }x8q߬{&|աӂo#xX{9+DaEH40000 developershljw'^6a⑴A럊N㯨hwvylVs(NxL,FFE*%tu+yV ? tĔM$&T;kAyWϟ : x340031QMNMIexazcAM6,6YlQXX_WP|;GȜk<_K̼ʒbS70J]v`ETq~YjQr~nnfI|njn~Q%P_qoq"@RÕJ[$|Ex340031QK,L/JeB~}S =1ȫXBT&fe2ɾT6@r8nΤRUTu \g:Wwr^$00?9/- b棰A 6X܋Id*(YC ~sA(;Ehi3a/;:N[I P7N LMe->3|EvhUQh|4ܣՒҐh"'~6rvڦl5]'Ũ;Pg¯O (T6l'%Z^df8oad|&!LLȟt6:1pwR=~4PS+u}%bĨۗz!KrC剤x0TT5-x,s%_yK?755g> ՈC@ҥˌ'3reR`y`ƞu :h''  Z!+AR+ v"#/3xZҁ^:&:jYIL ;U03/3$a\)H]ЀĄOb;PaK2R9/@?])_21^?kڤO|.~d-"!rqAg +?Do[$>?|ݒy ;+IGs1cEhW&ZQ %90*/!Bθ4罧[7]Dui[%D<4n>^g8!cy;bzWּ:N-x)x8|- =  Y8}d[UQWOdq`.97]cWHh4R^[Js/E1+eґb5jt$."pU*YD!ܬp1quq2q#? FMދ:(1S}&`Uy)> q5Θ8!L0&^d!x(G\Ǩ^~š9$2T`%⓱Au$TaeI~[Cbp"h8< Fּ?iFChEUX-WBÉd6j ǣI&al4p'hB%c_ǐή~j0Q>yUEQ, c`EY~ 1pO1T@S+0y Du %=1;wRB*lH*bP!30t4N|8m*^{pJ#e>>6 ikOEg*HJ?`<ԑ@IuCF4?Լe嗃||J?Xi\X#zG+m21/ dn8=eI-{i*f _'(Ȥ5@/X!d\dN UCM, V4%= (%$1d;Y7dAN? 4I*Xϋ8aa5 ЅTŅZ]X0Ǔ$qT_z PI$O(Z7^nN3 | @9|༇]ο:  { )'MQ@-ʗBIpF"v[;6@u?zƥ0+x&өM#l}?1ui kvL͆jU81' " ~룕vRK^VҬue&a:0᪎HwOB' 311R]:u I5-KBƮ2uv!,x%H jiaUL$~VLDuP`a_'YYB X_,&s@R(ow0& ل[dz5QB we08{ sS A֏-j|d͘;rs p7e^GǘtHoqKdfн!x6~3zuoo5.nB,e~ysyCWsy5%{H ^9=EBH>JT)Eu L`dgnMN1dxN1_1'Le瘯/Y?ېtm fw}߃Կ d)ףAGg ز$Pkս9Y:n g^9yPWM?<)MzuĿh+eO Iz6ʤGh{|cnC*l'g3 C*̷,[< wɖhJYs}g.‘4+yiCs6fALc7K<bk_nGX( ".q&ߤu^= v?u56IJ eN %"?ڟ4NH-@r8Yen$qs@n3E_K+*,oEN+;\HM7Y1c [0X}v) "*Y, ̈ۡ8 ;w qi@ƴUi>8xꔂ{C``8K$^-A$pBМh}$身GgʪҚNXv"yOzpǔ#XĒH1yy 7 M L1kG;UU|tB$x؉s9?ͷR;.:2P~O'"3\pƶ{>ͼ0&T'F৲01 7ԺS7RֻjWax0ǻacYl$p^@(bEw޾$ٸ@7{ mKv'; pekkou>nu_J`E[ )3ZdSKӕޠM DFR)j_0+q%31b@ OӔXw^De'ە2*s)`dWGٓmFI fjSD~'f\̎pM,問7T0=}o@e7¹B- j^v=; fxL6r(]%́&+bNcHX#s/a5E8Ӗ؅|tR2O;uih0'7\{zcB95}PS}uDnlJ>{[GYul04gCc 3cpQBflJC KÜ#BdbT/^ږoNKȎH!@uIq?S3.iJFG8ݔ~hPCmƿXXBP:6q$ [ !ȷ jfAS)nTxĸqC?f)ve++)xQU<3fHԖ$aL TxQk0+ SBCɠe(uƖĕΰ+{ٖPU,K*Kx>/F Xl4hj[,˫QɈ$Ώdm?Cx ˫u"X E 5!<خ*$]Zxnf"XG([!ڈO&BIxLꦓ'R }~PZK/w3`xotuҎEux)G:\KRr4DlZeO&$vC/uky eZxJ|8"'.!@\Gsz'ݷ7"3z4>gK _ZV VNz4Z?(;[-#kl3]IAON3;,8 2/^ 4x;cC3_#,1M^2x dxVao6_q lb9M:,k.C  NJHʎ;);N$uw{NyNtUmЕf7w|lب.-fk6.gW'd춚wO2eOP`20}m{SҚIZ3,Mr˶v{7uy9%7ieDn'fu._7ѷZV5ܺwYvI-FUжKl(zEu K-"C1vGLUpDiQkeEo;`#HTv#۱=;V%sm'N &g'\*(c7y($y K0 `_ o%W$FFPc~wa82XU |v NMWy>)yvX_e]\:v\he듔RD@U菢qVؘ֕$Ou%5OO 8G͔Tq5] ȁJiVX2V;F?QKڃ& XlWs MW]a=-J?4jKtֆєw7m+x7Wo׿|r?p * .d"F?g+50}JP*c@U+Q$1U:^7RT) %4]Ir_icЛ[hȺ?#Կq}Gy"4*,\;8KS<{G\Z -Rc\w . 97KVm!9H| cT6XkwGkwD\z)|ByޙƋҥC u j5(+A abC  +R3hڠ_K!fg/=ZУ 8T.?>Cܴ]49ĭZ\49 mIߓ>{^fy·\HBaqtG]@p'\h)\,`>Yn,RX'ŏ`Sި5.APWԨ=1jO !wNvPLw3=g^FOf&nBi"EPBaM \vFH|(lo@ùngX5upH||SgUJ.;ةAsheȃ8N4z] O\AVH۵K ]R(X9Җ1X L >2{Cvxc .. SPDX-License-Identifier: GPL-2.0-or-later List of ongoing tasks ===================== This is a comprehensive list of tasks where LTP maintainers are currently working on. Priorities might change over time, but these are the most important points which are currently being achieved. Fade out old tests runner ------------------------- :master:`runltp` script is old and unmaintaned. We are slowly shifting to `kirk `_, that will be our official tests runner in the future. Kirk provides support for remote testing via Qemu, SSH, LTX, parallel execution and much more. Test new syscalls ----------------- Syscalls and new syscalls flags are added to Linux kernel each development cycle and LTP still falls behind. Unfortunately there is no single place that would store comprehensive list of syscalls, but there are a few places to look at: - `man-pages repository `_ or the ``man2`` directory, where it's possible to find newly documented functionalities. - `LWN `_ weekly editions. - `linux-api mailing list `_ where changes in kernel userspace API are discussed. - `LTP Github issues `_ Rewrite old API tests --------------------- LTP has a long story and, at certain point of its development, new API were introduced to make kernel testing easier and more efficient. This happened when lots of tests were still using old, messy API. Some of these tests have been converted to the new API, but this process is still ongoing for many others. To have an overview of the tests using old API, please run the following command inside the LTP root folder: .. code-block:: bash git --no-pager grep -l 'include "test\.h"' testcases/ Fade out shell scripts ---------------------- LTP was initially thought as a generic framework for running tests with both shell and plain-C languages. Even if writing tests in shell script might seem easy, the reality is that debugging and maintaining certain test cases is difficult and slow down the whole validation process. This is particularly visible for cgroup tests, since shell doesn't add enough control over race conditions. LTP maintainers are working on converting shell scripts to plain-C tests, in order to reduce the impact that shell scripts might have on the overall kernel testing. For a complete list of shell tests, please run the following command inside the LTP root folder: .. code-block:: bash git --no-pager grep -l -e '^\. .*_lib\.sh' -e '^\. .*test.sh' LTP also provides a shell loader implementation for plain-C tests inside :master:`testcases/lib/tst_run_shell.c` and it permits to run shell tests into plain-C LTP API, featuring :ref:`struct tst_test` initializations and a direct access to kernel syscalls. (xTMo8W̱VJ{i_h MMD"$e'3dˌ  z(W~$MP[7Żܺ\.ˊz,(.~|p>D[28$[e'jC[_ܪG}P֔:<:}wAp ?]~fP5.|.`]GrTRmjܣ\x8;rFƒ:2V>$S,)qUuJAl-j`8X{־w6J1li$7CP齕CG(i8_"ȶrWxHm\CY0NKϟ]^:ТCA) '+Ϗ~ b@Nt!"@9؂*Kx {'_/'-#[c5 =l!I~ 0.n+U2~Iq7A\MX}^bwҚjhШ qQ[MMW7sȑ߼{_}MͰQ|`h}ݽ=pmo> cח,LUw0t6vH5((Xo G Ib7o>fg$#O8;}f~&KCx%[!:3R d0vd߅`}yUc+?Lg (~’<؜Qך9 `ϻ=-Ń [bX( BCi.Ur-KlMaٴ>Kߢt4\@+<UsڑѨ:5ƁFn4mBOMj7-Td0f lVɪʆ۔@H=%m342S+bbکHո; tcд 'Ih|`G°ÍL4.28cO-\E,;~zù#Y ucupe(]b k>Z*3`r3~|:mmCV捜u\.ӝ]ҶTQ=1h() \%9@ ewCL:Ȝb]ӑƦ!U{o=Sb1;o݂S 2[:G-" ߖ+Ԝ(~OՀ%h ,2&Ӛ6p$Sa-xMK)m sF'^1\;Ֆ2Gps&P$ M|ꔨ4H4Wnx3"@bay=\Seo/D{Z-m_&U7?T$ ͤDKV2_hLҠiU* nV7M<әQvg"X?IMĞ_a1_< VP&Nh--d)#&qRG$GMlu]?#ˁ藡Q ?06eE!UK 'FKF!C2-PyUO"1Nr,JI8Vk\eUo3 6q`fL78C+wfcʵGuy[7ӛl]V>8#׷B*`OVQ俶:<[mpy1I{=e!Y*-F1` QXev.S:qܳ, ͺ}"V;qcy.`>,}*QÈzUs9\g\V#OƚϬAI{+>T%s,2^40U8)RC+/6ax7j\U@q0졓v {~l6~M-wv_o72ZxgƂ@GXvm~*Wx]sHlr> 6uʼnsqcQZ.H$8w߯g~ 4==uOHyú?ׯ-^rF7zqX7D`3c`jwcUU<!p Y=|#v710{#9a*EI ^&){nȖl0& `2Lnrܲ;n/=FΈN>]߈y4QO,lP}.{J0ˁn[_EB}Y6G34}GhO]XVcOڙe];6 aG6N9V;0j7>zզs´g]H@1B7q ϑÈaT( R'rPͣ5rTcJF>_|)KRZ&?(y&$dS`E t\\^+ PV.rA]K!ԫ$-V# [Gaza4EQDMwtXu<.z9Fۂ$BFi៏Ņ6bOXKHbu ?'RAýZR[csK\+ܭ"$;vOAcf }!DPNeRã 1xT)z"Jp /SڗcI/w CI$M e2Xc+dv0HDRfD|ZlS{Thq6SMH!KiH Li"4jf*D́ oG$u& ւaNeعm>8!KM_(f~/aɬi8wf9LBsdq,0!Fٝ.rFMH v9bTzxSs$3BCL-[N9$:l1okqnUNBX4H! M@,ߜ(ht!E ^š xa֘tۙv:nآ);s}>=Ls&%Txp`EKRӔbnxs{{W rɾBEf{rU|B$Լ0+Jp'؂@3B$Rr ;lTd!@&{ZR,&R=J(ܐO<pS:I ,)oCf_4H6X`X3fcjcj^SU"8:B#1@ y+% |zXn;Ql䉛,\ڨ'23 14?b%ͻ.$6./ߑU ڤasu%U \.' E *%W `ؒW2T+0 zVs؜{"rZ"q5\`5m|g*~|? kП~>0惿5P7 !rPCBɽS0xxH<*HqXqWDxnI7+ڍ9oBޘ/ +^&?A~D짗i ~&óa$&BB݈;ff 05YPjޔNf+ pE:+)eoȽYAnCq'66Ρ? dU<lKbX5ف7" G5PdGKiuޕ0mzU\`Tr~Z F%!]VY! ?2`ǁJ5W(B(l÷K  i57-<߳OblY26/H]>-7dq$n-SLM6Pz_)g9!;S8+w%JHm[^whk/cotx/ro^Woy ?EYfhcN_v;BbZIns,YtL˅bbqF>*ԳЯ3P5K O6i aQ 8Wz%ۃHC7,PB*B?E6z;Ĉ| M09\.} m1?^Oj;w|;_y/V әÔ.ܔ]68{Jtop/7 ҥ$vVZ^9ړv?W D h;\ݷQJ ?fD'0B(b_?TַI+>mR9=M<~$1H+qGdp2xk_}=h{dQȂ*oCaZUv$v:A_w} SMU ٶ⎾JT2%VCgi/gߡIB N9ۈ>溥ao$]HeBOtB= |!E։@Ih񋠨4ۍ)cT%Yg+S(Z!JH msoi$I>Wj֊M_bS7 <-LA?UU*=Q4Z(mQ<@@D*^'(Q"d6z gG/ 9@ dƨ#+x`: ;V]Uvj﵅ҀV8ŴݗBSG Zn>LVvIS^:kkƽ6DýbbR >;t$+C+9uFXrφ(&z >=DU_ߏb\RD+.y׎HA> n\G0Hؘ@z"Sf U"4n 14 xUKo@6jVU$Ejhزuwqٵ@P.yAlQj r"(+KC&=7V.C(k,Єh 2/آ3{B;odC# jC&w Km+VJ# 9Zx ~1l'*jl-҈`6.k!EO7'mKT H!9UX e ɀRYx̶佊:@:jRcN+06lk˵:*\eA\D "z 3OFHt7Ve*Yn;Ouq)ьʚ"sr)RwrSyE;Q({ſd'VOvjYs&q秨j$`0>أpn3LD"D,xCm0qi>b0= fݱi8y;NhLgxh;| xf8FCagI03Cl~]@/x8yR>R. 1sAh*0\,P&w%S"<HxeBHN|Æ9L2ڼf;n} YsxeBC?X-U0p 1ާ#]Rx{iC ^7Yc?B^ |x{iC䌫+U͸&sLCiʛ Y xXko۸l ES9+E`7IiȢ QylgHY' 4yfn-Opyb>n2nq{XgLFXoΚulkq$cG k?U IVxB\'2d9[6ꆃ[/= \x~bjÙy1OD˙H' {LJ50:pW!bIלEΚ'L, {] Ů@^? iNLZLXQ,T:QE^mxȜ0D&ݘÍINIF!?S@'{ ˊ H[g!qgc&gi&gMsw0#hoBtiK+Q,]=mdLlbrAH% ONV{/e1\EN.z^8ij Zk١-HpNVT8s$,W- k$ qLZk {!g^.gsA Gv6Que'DyBVqD!B:V@m.Wv:SP#ۊmHyS,,aɷxvhdLء/{\$ѓgDЮYVJ8sc[KubXnuʐ*9lj VKF4#5$-R㏁G/IP).:A[z3 ` dεaGv+wîb,^\bT2[G{4=MG:Э(Cx%:j"VX| 'PS PEh&Γ N#u'Ӗ,B{FLd'`)\^(JFih+Io񦜈3Q Wvrl<e-GgǃVTW2]IA3KszMӲخh5 ,QzWi/"($Ktt@eU Giٙr5:3p`] rrxΕ\d:tB"@A( t$$Fc'bmh,ĝG㝸!SS{U&)ܣygR8rAG|4C?BzéR .Dß3KfSWS!YQP.\~qph'Dhjh~ ~ &H銤Вg9&Nu|c\̨$T'Lr,rbL{&B"~Գo=yX\ JW|rHtM"MOy*))R!_S[d5nKTu;Qic @?qBj[8:qG+94ſ*txwtjͦȨ(6M02쥩=vV=۴pM>Mzͬc[*rjĻb:[U`Yi'܂xIJ:<-6_Vb|OWjHp n{c:5] G^TtUĔ\X7z1@ib8ɦovGifnDst4z0i!"x莹u%)Շ3LN1J$1$[Cs$lI&NW#2#KJw^ W" [@Dn3屨YIOgl6E>n I (m$Ƿ'fl8ɺ⃕t>M<,%?KNh `唄U'B̧0 տev]=(4u+ Ҡ,ۑgRN\+Zbi"OJkD1xatZ"zfQx_E  Ԭ/ܔC+wl!5CSH(gPYƿh}{-M=oN}s|AYs/c)IQH|IPz( ;nCV5_"d){""c I X-Wt8,Hl( Φ2_$3E.y?o0!IO MxWmsH BSp\:C0GH:Ƭ=uR.~Ci'ֻG#$:o?gB(`B9g1n+JZXR4ЄaX*0OHx! &%\yVI6}{{E&$L(ީJ-{88 ~VWa-̿y5-ba'Fc`I%/`z:r.O^` ^XUA )GQe@E ;1KV\Jt^)F (>D1Q 3B!d$ 0 >Tq<@Qd~KS@ʲ#4"%ofKh#Sݚz# *aP_ F^F!Dvv0%z[dK15zk,ZcŻ8$3f3!V2YBӀc^+m|ŕ٫Qp^J\K\QU*|>HsťIE:TIC< $IuPQZ!=>1Rh VN|,B߂е-sado dC+O%4Fe+< ~ZtjAD[F!f~VTpƒ={@!n yLx!UITZ$0;ؘ/VRy;&HYX/P'c&>ecT3$,fBnfv75\jV^뎝#2:wOp07vUl3a Ӥ1u[&d۽THXi?D4*oP;TQ!iuPw';l5 %LzraB-,y]5'\a+e;V,0a]&؎;ޞ=‚ T!tJ 쑵C7qPzrF Ua3.tдci *{@edyg>7H"R5}skө%цؠ實N8C,cly*93\4Ѥ:7fb%n#wolQXVLeJ55mܽ&vYEZ^D76J }:Ч(ztpKFX!p౏kCM`3{Di8%*12f0r/?5!2kp\-~@eϦRR2f׽ ɜfCo+yDy ?.Ihz_k>|>dEGvꦔyvܫf~}0N\{e - {}(I7"mw*xReHQ25|ռ<\  a6EHW3@4_37PCg,}Q!:FN1n+,Ux¡IJlxXsH [ـS8K ƹ\Jis4:ۗw3vZlL|lv}q NJ>O{}e]ӽ=eZd#glΕfש7tuGݣ7O7W16>au` EG Iw&:'rǓY ]"tx[~$*>'!f'X"VL9+ehS&Hxܔ$r摭 ﰫrk),S9`dx Cp( bH>|dK2bEХM dkRB$BgXn**6puib>&C m/D_hjtq#b_x@BBc 1~ dF&@o2DkdWEdޚ{w}L#7JR7b<";zy[P04 [DHbjSErsEL`:O(tx +ɅƯ6ܿ· &UYTe`0z(W&C4b 7)5enyT.4+)wU3ߝ 7h$Xf moNgn@{O;x܀7]d)4Yl#2j߉0iĬiZx> BK3FQU:[(`lfdV1޻WvXv!dqJ.O7ЇAKd}Jnq=ģy 0ssǔ8 FTeF Xt@4;mΥ%9=dih-&:C4Ll)V#<5+j1<*tUq=>:BAg:_(0_N^ ?ceLR߉6&Cnm) k UDufu3hR~0V=|m)jμ2Y=S,;/A^&)O&hhԭTAݰGNgַgۢ,Fm:3;J3criL?4Vi]4DbE[j"6?\??]Mnf-0nu q{ago{MF4j W9gڐ=`NHjAF|ʲY7hfDŽ'0fL,| :N0hdaw&c3LU"46͵j'mF K<#*~8' | ^g`̅\+1.D#DHHj>$qOgn^-Y20|c~ݟhXHWݢnA:-Mh0IA [2CQ6`/*@<EЌڜcn_Eb;9[ +n|5QvbB9pwʱ&Kߡ.}6R(h YZ/2>'" 4: _|}BNUoC FߜgxXsF ņNw?>`фQ7M3!j!1Î@v/F}^jWx~QN_5qϐr֋hWno8IY̹{?}R\ނZlpssV (TqIÂ/,5+<'I1<~hzך LX0F FCT+8E0jx̜wMEA=<& L I4 =xEPq}]F(HeTG%*" [1{35蜚>`17K 4f |>c@A.]F_G:Z5h}]1>͠W&uH`E8KB=C~2ޭ ? Ȅ?lPy6i*&IqVU%I˨Ӿ*%XZͫ")wҗSu\5>XNֆ\~p[lρ&K5nft>/h yoMziqrxߐ T747uebL($y3:l!ë}] Ki?搰[k/̹-ŬŦH} 1}"eZZ:6&$ۄozhUb+5;?@;5 GӍ"橇i9o!/ 2uu6tjO2Gc%c/,I˗Г7݄WB Ѽij ڳgtؙ_IDoǒNM{UJ%:X9L90n%K$Im%S`K6VQhh'?7#D,8ASo0#=GOmdF[+iT%v4\mҾ\0iHǽDn'xO4]RtMcM/C\N,N+g3+K/8$\M{e4k$o,t׻8PSZR|+K% i K[UhfuOOAt"؛LTQiP ӯ4*~,;!ӎ( n,)&V,Fd[!T{i"K m@:{si舘Dā"ҕ'CjWuElO/|fdTSōhA jIhȬNP6MR%7Xc{t;L>ҵL%VŕdyA{ kb+LnK8kNNb;g1ڣns8Vo@&}r1?{f@+!86 ЯRb7sݹO,]?#۷gb"ErH'VxDnW0aY] F?pt=l#nsמY"B劓糊@/ )#T'Ժl6?f!/IfƢa!<scCf\oR"JdN}kE}ǠɎmolGAϰݖ1~GH;tQl*@1wXU`Q 'JggO).! ,˶IBL$zt&`w`EVYR*4طvv\XC$ЦXOKvBiF\XQg/nj;F]Je]z KTs/^xü}HV" pX*buj#[~sOyֻޤ6-ԍNn"X?}2Ȅ˳"CMtj~hgt$LKS|ݺCK3.V縼,ϥ!꛳<{eebXv,: %6)k*#W 5n4G!c:b `8ؔ7 NP_Xfq2Jơt擙b/"Hߎ[֮&o8ssRÙP1NF[9|U6ia+$w:o7nr9DIߪf^n:Ca_"\Cd[Jd_#y`,U6@OD2F= LJC3VKU~.3ᅽ[xy%4ZKBZ z`ˇh+T\U7[wgyzR1 c䙪dbidXIIg12UZ>@g'/T@SBQ)[.xf9^eBfX- gRs|Yp2Jt|<ҿ)BjŐ-ѼiEً2NzVʱ3b~'[BT+kIڔBWzaŨ9t{3w ֲn"1"׊6 :KʇiŷA:P;^}!"y3dH4)8KYNk,___*"xrWֲ^OG:7{l-Wr|E͆hu#N?61?AucH.)g)4ͷ?,u|jjeZD]Glv0Eѭً̈d0-8W+{e33 xYLY`syf!yu.{c FQz~zͿ=<o"em+_W1 ^+|N׷S /T2/Q7*A-k|l}H]xii;w쟄VQ}lQQꏎbf?7h8 4if}8~C/?Q3954yW&ݧc aҍ իE $&[[V@zh1G,ڏTV$~\ ^`:7%~iXlӱӡaz'!~W{7$_'}/>Ynp߻KxQVo;2a{˘vc=Sf D,NyQSAC6(-ί?]yvGo{y]|^S4A$MatcR" MO(y1kY^;>/wc7t:|'˜#Oz~9O\"OJӛ Y -hhd 2ƩرeaNJ *>h\_ܞ\]s0W  ǭd!ow`9S -&.f(q<|I#MNR̋c(S-Si{<ډ\m 3STLp7O{psv2]:]ʓ%>W ^]gя}pk/?\7v{{`kl5mҮc+'yfGE\RNpVT] yyizH㶙6(*V5@ H*|/NՅXe1 &^%H%,[)or4 r"UGXQNV!}>iIW,]^hlϢx5Χ{P{4rZ=H G I5vd3'Rzm$pQHhFMx =V8?=|E-\>bb 6O_ݘ Ljv *_'5Ix[DuC5'WkN/9]9 ;xOK50҇0` c01` sư2 ` C.<d1xKx$clone301 clone302 clone303 clone304 " þBxmSao0L~)۴A*MTCj"`$V1Avtۗ~w&r!_B\P- g2#sTu lVL x܇f\oca*~ ndwc¥'ε(&"$\(J\It6UXh D'7It c"{qE Y!/~z8P4jP.1;\Md qe+n=0l݉G q+3ȋt L-YAU&m(B6O L"l=[#7"9JV6 " pd|٩0 ĩ)in'n \, 劙dvhޞ8;W<" 5'TL3 UF3FMtR {"Rx'V[hڛLmk99zac<;p6-\O"[xSWsuM>4 , -$vG`)@Fs~ô7IEaJ㧍ح%V@el^7 mL]mh*/"֑(#]jX!tT6jx}T]o6}~ŭ0ٰ%ذksÖ]qIh].%KbyPs:מ)Wt0M(lè|6@AF4׳= C-/!J\i&h,L8Usi1.' N2P(ƩRpGԜ-s:&>S JL_axx ILh12#kbEgeXZmMі+}~ Mʺ)=)pqPCSeJau 6BN ?#RaCX`R~ 2D c<éTfA!O&ҭK)l!DhZL42gEB*˜*7:3+M tjəNxe&<!؎ƎV:(87 esmP&YiW`ݏpICHCm{,D\uoDBoM>ܯf$ Za^;GyzR8$cRmyߔƑƸ 6Kj[J6 Ig%ٖIϩ_c&~CܭcpބXa׶,þONx3Mk1RNQ`s+O X,Aw_C?|OjCҺHrt;`J šVyXᴅUzZU&WTu]ĺj>GǻFU45) i(!zpk9nն\NiG.hA1=T]XRU1tD!cmp _4ԛR?V[.ͺ֋0E$d:}?L/txuR_kPgmWhA7gf*Mźa)+Mm:ridEB?> > 2_u-mҴ6  $8,E7HtǕ%e >%>P3 D10J}L N"%܃EBӼsh`AS t2?CNI0 t$\$ f5 )K]nO6_//uJC n߰Pw&լe<ZQRzGM><.j)KbxeCSϑ!D]s_RC\rO(JNu~ 9t]^]-f\z/i&&R4\! qhND ˄; ]q"r4]#z(DzwS $ʄ nUrP^Zef]uT7BadGBP&*t_Uˎ 8Cx[ûwcIIjnABIBjEjrYd?F~Ԣbɝ:p ũ) yyE% "Tͷ/!"V;x{g#gjEjrYfFMV\JxWr6}bNZʑdN{ȴHt6$(!@,+i]|I' svzs=qy,҈DpN/{Vf W͍*l@7J_' \ 3Ik ,/VyxǛ\i 3Jï7\ZlrD/3ex &^p>>cYuT(iNqјG7xtAs9$Yf3!G(S Ko `U/:~d&S߿hcـV:\knbmwqEwzYy1OrC:0HDa6ΰ&I10<|{$LfŒa9#_kA^ Z:Wy,^&ujuZNr%45;KYXP35o|>ܻ/befV!Q8V4:g9rEX&Xr} -=Tr&Bk\CRR?K m{qgI?i᝞M3Ϲn̓ 0jiՔDҤ|XmJ0֌6תUb^pY<"ֵ2H5 Χֳ6RO5W+i&GaB0uŗt"/vv7<׈ZC5tX kHwE~];:'ߪa(ZҐgx.F1psI=]REGӓg"꓊6xIm1eo[p'5QؖbBJ]R~J&:EEș2+IVU(,/$}yNrk5P:e[eX]m xQ:!DL4g0H,Պ5Z$~dbq* 7^N =ΉoB6:~pzv[G,u p8.o4ܺk^k@mCNA.n?$~`g`b"CM2(o_)NLЉ=bwkp[罽KK2:Apx9͛:EE$*D|nYfC8zF܄,x4:r%yX<±vWmDA9Ln?m[]3Qȸ!VJX.U a^BsNՠxI /{-bi zEǘT5FEV#%m P0Cl [=^þ 7]"o$aJ'8V2|e9Ճ@xk2j=47| ~ [9jKUwka1UIi\Hm o`Fux&}@|/.-|l<#ԊԄbb Ez ~!>~ umARF )WBIFBZfNj^bnBJ~jB^~BjEfq H1XmgȄ% QcȄ,`ASk0H0CO$h+$p'fjP!:\%@OŃa5Vg[,*E bxmT]oJ}ƿb+U&5!/MҔ(. pJ㰍ٵv+~gm>B=3{fΜ]w:0~ xBck0/zWua|[j:NF0>^YE蘷RG KEI ›( xzMPh %BcNfӲ2%5*AmRIW=p͌o6<o>F7-&èlۿi|ݚ&[_UI,Ňslo'ڨ"7;9+z_vw-E"NecTB3Γ+dMb@ܭo4(KMC^ݹM$Ms>Rc\oz[" c >cx7zquHe}"׳Hx]Sao0L~)۴PڮjUL| DCu JD{wq 7W_~G"Ee~QY1Oըn4빮KfQAϋ-(BnC g |6F?{Ƃ͘%jxZ=Ӌ91\ĺc f rub} 1]3j?hKdDBvwjRMRB Ve 1/ΤP\>\竭Lfr),Ks;)z ā7!0'q,TC{ڊT߽[^ ʒ#|4K1kd1A56l# &5j1HEAmNS>u *":%N{nGl&i&$'1GPVJűfz\8~ ^_gO~p /Ez!B dme^͇T ~ %N@elnX]:yf7@Z5!Q$_&%vmoyGL>:BX<)GM'ЋpG7~/mҸx[ywx&##b$;+1(I ϴYK36o{},H}TΎ޵N\[zlEĕ3rxmAknE2lĖ" DO\'#R:U3:/+? "kw_8CS[a$&$bȖ{&%F2\#"_,ep)ʍfŽ_~ lߑ9J{ю?27y<̊ĕEp9?>y*E}2 CҎ ,&ZȰ֨9q=)̗Ss<8uC׳#EY5>#gs^;adERW[ J+QzR;yסm3w m(Nīί9~?6;;~o=& ZXE;׃s ec]t]C#ғIΆC:lE6I C)8As He/9/M?=9ZNXufm^ k4M@ʅ F1ŃzǏqVmrJDҳ)W5 āƝcHi6fww @ßwwH cJ#fУ&MISJᙊDkO<{TjD.}å爫%U0Cn#s[v$w6Ow4cժ߲bd0A4VMoNuZ,Kf %HvעN&ĊҾ@uᔘET0a/;ItNg#xz+/܈(p< /ks;†)ԄɅ˚>QZH+) $dYc& cn3^ߣ,UB> c[iQ8+`BVeQ59*ac-X4]}=F$p kn7PP+s l | =;zuo HLsjA]D)櫄_shF%7[u>pO5zwaWwe܇ `axBmR (D,[8= NT#?M=dvh%b]`Nb]^Gi*ܚ1{r46$]HƽWߋ]NP9.yp/F J(?ߖ38QyZ#a1}plY+ISxQNRحL$PV&²qSMbbN^:o{iiwCc y.:Q=͏ cU|ܳe}-^soPjբy˨Eu.!&?)`, |3qv6́@Mި ϳm&`.q Ij {yz Ò +i=,X@o3J).bA*&]1Bg#VGζDrM"",'Uo:ƣ]{F헵S{}l'Li'(m+JL+)2JYW N\@_da<#ڧ8dQFEG*ryapOrW>؜?sgu f ڃF32 8ɰ^AEe=JHZ}Νd^+UEovN][Oa>jUz 鵠zKh:rН'JT@4i_|:96o.1ЧasN 7C8C0jBv,C#a`NCM6EÃGהAjTԸ~ű?V׆_{UwȼvE,+d1JJGYZQ ao!뽹 DŽ-@E];#[ !#drF9dȏxjkʁK ~`ƟN۳(瞍gZ9n\X,~iuG$WΞY.Feof4Y®yp|EI*L6(PKl//bERXH||Pn0_D-TXD-,ue[dԪ<n(k#A:nZrÊ+p\FP֟U "IJ,85[]ZGA 7 }0W!N(M8p T#e̪<%?DΩE/-ZnNJ<:\TGZw o".w'`§cCY?Yq^xҿjߛɾAY@ 7Z\֡}Z޶vn_)Aw[w د&_EH(*V$,@AIw:~BlR ~kP/=yqxUao0L~ōiSH~A-CM J2m&i!FC: P`OߝFâ!I1I%)[Ʊ47@548>-8H7[mc <NI>"2AwA <4IqLsKY([xrֵc4*&W81DE'A,MbA x|e.SI@f$DUM2N,XW8!,NaEN )3'RH,D#q+\BsR4!FQ|hsistiZErgۻCYz7>3g5@cU4kZ97n9OI**$~Z{?*VZګ-32ߥWLW.~:M匡^^/3fF,Q Շ30Z5xޣFq{qHD$9(+TWlJ$N%ց(~bVF׏_k8SN Ԭ=db)^s6iqU`% C *?HӺ<]$dxTmO0[: h5(UTja&4qEj#)*}g't`_繻ߥv1a41a&8MfE# Vk߂}ۍש;r||J8Rs*sIZ'("$\*d݃+#]U)L.ν?AgDMҨ: r$HzO2r,3m6Y"  dS3pE`f9i93I (nK9dxe,;.n(%6:F0DNAː2u#eQ)StXBr#[+YWRZfZ,B#${i k"h MqV-g^3Cu!ڇh@~/PCa 4JC̻uI!]䇣x:ZL$v+ž΅N{WghvQ,vVe"]?)S#uk{W!p;;O ;3VLlL.[8a`$ _&>Ԫ+hPdb[ قjk]h]:@=?r5#W-HG<-#u]a RJr,XiնQP\x^2q duU^]x8lA&dy0.E=Z}o.'bLK9_IFՈA8ylw]w11sNGdwXQTdLBμNxuTao0L~)SдiVc* i6&q$lVMhAվ$ݻw>,7_[h!ikBQуy;-.ZQTX~ӂ& yl*p"7aHD3@ЂHD ϯŷ퇦BD .@ӛ&rRt{wG*kcXPKZEj($*<R&0/P"pr$HȫM oRV"aJ).Z vQV.}+l'pƊX;R[a*cheIE%JQYSZ@B]AO[bR]h&hĵ AOh,Q8 WĞh5ӕ1AI0 tfʾIFڙ8c{`_|]cYMoZn6ܤ.W,7=xQFIqZ]SkhJ5 fgR <dh~pmuy/$ LG;ql?2+b9Q^˘&t]{Ћ,Zݳ}o7xWmo6, r淤]%m0͖[cXJ TElb2eTZ/ߑevXD>=+^΄FqDŽ P_٤swfԄSdMNKvԂ/x.L&yb`S.hY('([]rD̿Oph$XRALb@BSlA8y pAV]JY$!M9|h뎧IW3ʢ X<^q6\4$YY%$&$y7?8L .KD4%e~0p=;ѻ?O}VL2aUʁ73klUkhOszQdiTV({"WɸȋH@ U" 8MSQ j-LrǪoou1rilߧVeG]3=i tq`-hTDڏe ]I@zNFߴŏu|֥?zi(ڻ`:QQwaTQKr:VͮiAG-uEVll^U N!Yb?-4Pdqu0{]^ RQԢ`2g[ؿj1Uh>jc;ʼM@%5XHw>oɑ0J 3euK H$n)+IQKz5FND3z,6Bo̶$. qiz0ipȞ>dth7[޶ewX"I\X0Z]w@=s怐W~^=\{]x5[M$dږ?j) -}Tkv-Nxxbbė[=]YK$K-yر;qN˧-Ni.79ZB~FRNp6ӑ- %S -0uS|br=6'VKB3|F!xXyWV;iu b̴'.m48 r G\j `b:vK=tʹa]Lu֍&L+Y1~o͋dl5atq Q7޿$gE6*zמfj9eR-Xa2~7TvqcRY`"=1b)Ìs?C/]΁HDE8Htݠ`*Ŀi@5x?k:y♡XAm>q3(p' T⊠ˊ@Beh`|=jZA7v@,q牸 \;Iծed+vpO**?dqT34jD+ ^Q8)pTt;A*P1BP' y UfJ%㔌 en]̹].LIW6:q7CR#ٔnӾAv̲[s̲Ou^٠YEFvGUW~9_2t()pLD8R~LZ/8#MWXoo~ow{CjY~OJS^) )qh>׮V+i$yHV;y7`F4&SYkY_1 gFJ̫dNHǙBFJ$ 67/jpkީӝ\!\[FBKDB0(WR'-qs 1. ड;Qԕ ؼtKɳHw)n)0P}EOG]\@vҽk.3{-ue&Y |e֞[Bav\²EDN.2aBG9v9sEbHfe$r$VUΆ}+g}+ɾ)DŰ8vs3l˖,.*˯ZtIʒIƂOV~VIDA;0~hȚZrM7`]kGCMRas$ a3'yYrA0]+M?>޸x0 pW*19CTZpo,g#'~h`LܓQD2Te75%H yfNzuIdt 0.<&vZI[=R䊌eh$x{TuB{f~rIn-ԢԜbd݂ݲ\W$! dx{LuB{f~rID!L"MxWmo6lr"vC35:B%*&"SE˺Q,NW DÇ#Cg#&rL(p&_Iu2ICŤ=Ng؆ D,YC&oY B x~79l $Kb[&I)ΖP̳Hb<\NGd@zSFL(4WhC'SK&= $Wէ:[oEȳX%SRL@QEc1EIگ«}F2a(Tߗ 'sr.1S2 ,)bu!^dQAU@v M5&\O+֣%v_]>+ φWumK󹿏2Me Wr)zM v695d. flYL5%^. :cvq8T$imcРm}ZK ZI&!#8秭VEf|䟐4| G``b &)g(M2a.\h_8{~m2e$\Wѽ)t-Ʌ6i 8y6*.-QyPS_uGP[#7=bjZ\.wL֍OLh]9f .288*\/&y0]Ń#IMqC=尙&. ߹sxNopVk Oen#wǺAm>lRt-Óh D`>?f}`9?\(CB_Jl_MNQ5\,5hۣ`-I}7oLo%\6_ VfۗЊW&Ez兌V 'TW:}W [JĵZ"e{G7I }{-ˡS(Jt=}9wIG) E=ƉdLAKyM fycVq 2o}hGg]R49?UBY/S#W\7D>Qcq,PAn_ jSz#}+qũySo}ݚ$ %ܾw`FKV۪@Hs$yP4pDg^J:Wsk3 -Yrqs U6bW*&k?մ 9woTSo+EVKx{)Yt*yĒҢTb ;?$5KAk⹈ƌmSR2R<}\]C SJ*Pd=\3R4`*5&0NnfIH,RH*MK)<()IJPG(9>-EnPMk.`G7xH?g BdIV<)%%%z@z 6 9ɩ bT(!ZTYZ S";=][IGPzr!d=g9A.P ?pʢ8Rӑ8'N\] ԛ`PTY'֚ !-##x;KAI\ 5*Ġ >H0D(v$]fFE,J_`k'VւV+mlmࣱsyx꽸=9'c*@Big5KPB>| b/|.'A@Y8x5U257HMkB.؞`VY0љiu݈sHH,N sHXbuLcU2C 1յ\|FfXhs # %pouR]孲i-*9o6L3<QsB9:6xN)lm{Rc{uAN[m[ۥ-j%6j4S|F279x]N@# ͛(RJr  !KMʶ ^O+L~ksyU>k7;]o-0`xb EaAӻu3@(&XY8 `TMG;F"Y[,8ơ Gr6(K)ͨñ*ܝGI>1'42[@SPVdUzq8(]BmidF;a+P)dLUm_$D=]NT41MSj6:TYRGX(on %);6aceoi,;L]Ɩbu}|,ّƿxVQoH~_ru) 0$J(1*kz5:bv:qflcp;37m5b劶> r};jTVۍ*iXm${XhRY/KT>QjAX`z;*R/d/"*MĠZ\,]~v O?`MV;}N{kՑRR0۠?2>GW zA9a"*Z>LxǸF>%V4̅Q慂ST4`};mb,ҮfQZF& JE7f\ >$nQ'z*QW>!rR `s%/ 6G7]J+*%}^[4[&ԏ{n^NB4I&>MbZD$=jlɬNqpK ~KpS[ vZ2M+&j8HbG.XM `ʱsê [kzs yxnź8?*)EDG^]`sIɈ"EFzÆF')=3۱nAo8cfO ;$4ap2c- ߔ$(wwP_p ijI ._2)U _`\e752 ,grkkxtcV&!+)_Gs.~Aa3G gN.q8ա:ӛ/#Iφ_!hۓi1"3gxs}Y`#-h VcpҷYbIߙY`ԻA`q6Q\UoK잝sY bu%ڐ@yŞz!uy9_.Qy:$֯:1Yy^D΁uu4!pw{}q$%_KS%NL40*q՛N{ߝO F+f<'(@pɸ2eR_9R,l<>1q,N qsj4]* [ q_]U^LY'ceIQނfrU23d?ӏ;cT& 'H`v6b=;j\Y8M4{B2xy (N)k[_yD+l5Mbb+CW.4 ok]>xmS]o0}.⊩TtQ!KPHKæJld;٪)}Il {| VIO1a֔Y7H 8ς>.xD &bC$R"y'ג_]kŒJPD*ajoV GWyIgi2& ҦC5FPUq){T-;Pӆ&U\ȰeU\%Ui ڠjZ5sH`)헚'XW KƥU/a,rNh ^տV-+Xr2.'i@wٝ81HoN'≶ی;6pK+ՙ϶b\~W/٢xy2hskƓEɝ6L$JaU۷^`/jgO:3T;6Oѩ`SI˼ۭ(7[Lf18{!f$?^YEOt_.P^G`?VҠѮI(+3ш{1,KI{}@ԪTtV74ExW_sFO&8Δ¥IfY:!1cw: &/ۿ:9,= X$\^N'Г,6˕oBב3c_t`x$L}1{ppķ̗-'A*W1>nevun[.E8}()jEWy3q : _\xǃ˹;t2kz x&xQ+v g'oXI?X~2'_ S4q ڊ%} !]o?oYF à,[n"Hѵpty=˰Kx&x3&\2Xǁz0 2qg Gj&d* 7%Z#6Y JL օh#LtAK"pyt<8ͅ%t7\}u/>s^-mr %\s8Ze0W8^YIb<-\5U^a'|<>Tvn̈́xOh#J} ʚN"i\ii cPgl㡕x7kUrHe|TJ*%<<;UnF/#@D:Z_XQ_L(yՉK&% Um=:gmp5J_좖ClETb (ɂFM%a )MST\4AEYH"K{m>ʞX U8|1=v+%3.E>{^~Qd\O(42Wz5tkq=sı̊iA 3̒o^}+*:;L6Dd!);Q fw>ӶTZgEQL+L :(Fu"}Ig[47P6)Ms?ԢrxkU4{f~rIV E y)\ Zu¤61N'xUPMKQіZ(VKHHU\""1IJ: )sNMxMTvM]tQB -Ł{=܋O?_ˆ܁(%;6c41*oG Y P^>R'XB}?=(!29͍^iҏj#K+˫k76܈4Õz!*D"! t{3HEXagTrfR`NÃMX&>dO Ӆ*43:cE+Wl~=/(+FߞD` k׵W14Ywvu})gg;ڡ:*{viL)QJe/1ĥyo(}pX' 9?xXSFlu`dF~!B`͸u1E4ͨB:Gdɣ;ܔ'z@2/n}s ̗|Y/Gn ¦gK{u؃`|!Awt;0ehN`4mhZxAr-: _\h<}Ӛ=jlߥy̳{%?K.-Ίl.cKfomS ŽU EV{)f w0'njTD`x~5d¼8t?q"!]'9Vsyb-rbĖǯ <ͳWM^Z-(օ%wY!`-;݃OU&~P>e_RܗJ- E\]"l)mgaQH[N< %F;2/<Ĥc _|3WY"̬=*}dw++6~#J2*:{K=G}% TH*ȍzM{`~xQgS^#8_EvoԳ w ]U`]ۨ_Sk3܅[ڊN 6FS\֞t0 ||-Q]Dil9CkKD4껙6+:)8 m&q t4O2q) lmie Y-j齭BS;\f5sjZ9` .NueZhalÀ@/ۛN^zIʐ|Iot0}(Z-|ȱJz3nݼDc Ъ#U p0dNq;nC{]^7=Knϋ0#Uvհk=`F{oKĹX%]EEXḱN+|Fe"'8&g&Os{8xw5,ËӸ#'f8$,7c(ơRS+_5Zt7?(_XA] ,:j?Wm/}hEä;2Ct`şU%ޤzGP!E>U6 C?g;O&--WE{ʾ$ѪcPH I x׳@birɗT0u<<+/a?9Ӥiv+qY E$_ɤiG1WXa~Ƒ˕Ô'ݎEyOqvj9WUT}]`pLKLDWѴhnGf':xkflh}kv8ɒD qCJ R(6)C8貅\Gf8,ZYӳfJyB Y˨}`KaG =*GOe;.pJ1V~qЃ#!M_%K7-%VN"imH2-GYbh&< u$c{t _Y;4aOH[03&pQT譑rőZz}@Q1uE1'!ZN*Rv. 6=m4̾N|.=iQ))}rM(=ڳ!wX21,M&clfˢhW6\؂s6^ͽߛ`exTn@US@*A,X )5RHEMrd옸vql;ز*?F&̽9sϝ?·_~YYfSk6?"ptUG[f Auش ܆NҡQ'-@MۨsQ3SsBy}B[N&ϲM@CaCYyB6Nq3"eFJQG(&Z"9dZQMUqLѲh-^vxvd:9PN`򚯔092l_܌;+X #FW7[4cRV,Sk2YS$P^yJne}'tմMM~$dh*~ѸÅՙx5j T!=4,Y&tb!t)+"ZxŗE SBF bnÊE6WKEhc[xT]OP#,k#^Q|m.kaCf26\ #ti׬KO"4B^qo7N)ċ-}] S g[*TlW"p ]QEۖ Ml9&Xۢ;_!RiCs\(ry4z|R*ms`ؚWLM XJj:2T/&J@Mwӡ96ɵH#Yh.sf00l,<Cj>)$xۋ@sVe`gy;]_-VTPCKe{M&]Juњ9aHucQ5 9NɊH )sƨ}H~'[}4@/->$I4XiEVrNL$أU|¢ lJ7 j E:ց*fI xoz =Εˬw._YY}PR,bhMqh:@E&!n NGJZïݑ>2^MSW^$;N/4_<%*Ze \r}DK7[͡-;tm6L,16p-H8$ii`4̧C<Sr _]X DycwT,)3Wv_( T1 0"h|~>|75Bn_~HtaxXmsF bNR`L;q .mF=\,䆤=JL;bK}xy4!M".OOh(a&Z&\ v8{.7at )J$JN6LO~*4o$$Jm#~¬a:_.&L'lEޡf:Iȶ$8" 6*A_ t ,Yx#ЮX$(h:nUrddy8܀ЄUVorF,#jBr̃ƞ7z6F,V1ςC.ljÌ1XJlYr<~{%@;=GE)V9e!eڇ ]oŒa:F-79({W*O,xI|l3L@O8 67 rCrxOۥZazȿPMOf.Vj00D,LWBO.g]4q ۿMxz%Ƭ`k<Ѽ``]HqMmpnp />ۇ9?"Z6?ŗkZūzv޶G٫r Oi0q`< l&*}PhظHDlXM.a2KuWhCQ5i/ӻ񴶌K7 akLEU@):;^vG<ֺYTg|X*xaOwFJMÓ8.9z]b*9k@tOfh^PUG-nNZ3)4M样+2ʩ?xM!*f6運D)AqhkB\KB 0g޴9qkD><)LV'vUz}dhuˍǸ$v7i%6 >X#w,-ǹ_lRͯ3Gx,.^, Y!=`֍e}.;z~ʓl6Tm ȝ_ȧΉ :$^lPsfvZV  7&{J!_dcb;meM2R;`j[`H{ZOLʤ¦xi8ƽt٢K"^B)Mp[SUŻ- gKJ=mg3.6%YԵy^lu:νSY5O!e? g<ՠf4/moe/B?[cCTߍ}{6PgǞ[)mlwP≈$odN鯃T)=]ΏHoJ..u>p[(]]:Nq*u7^M NxuSko0L~Ӫ" hGjUnHbvڲk@9^701)W%k2*[p>"MӨ9P7/5͓WDzT>Pi" wU(bAP %,݀^FZ7[wL:1EP(ɨB*x\R~y8LpKLxC2 %˵AI8+ UKBrI:҈B^o<;hrqq2 k3zyٶЕES5? X*MQRs_4j6sڕћ d6W1i*7M:T+ -2*U%Յ8:N` fdIµ2I, 97w1~g_~QAKSǒC}d]30^?1c(;Aq ։[a;ȧβ5&i<RA rt2DA Fz> )B[,6PZR9}SBk2{pjeSьP&cR>M#~g-Nlo#.FYK4Ҏ&2VK%>5E*6>Ro涬QW@ R׾&okzykv,AxreCHg_n*6GKevirUxUao6 r`Yum3dӢٞ4 Ph&PI9qe[;؆D޽{wpʄb?eB3y'ٹD3pNp nXI>kzo <b*Y.KÏIiН'U(֡rG ɳ -3A{)$Ml w+0G㎟bbvnZ/Թ<>>vvih!^9tɜô~ȶ,3P'LEg'oi}.m 4dbet$V 9< rT)AP)NkK SM4ޙ7k,Yp瞭Ύ8}Ï`0Ά҉ZAQ`LTE$ZwnraHc}ɣ M;eΧsd'?C\ynXeHE?W>L%qxeGz`|4nɤz/Ak\dbSj#JD2*ju}W5 Ib2w6SԆrw {EB/Cߍ1,Z$x'd+_0a5)[:Ȳf&VzNrz1[ Ƒ*(EV&i=MBpc$Ct;u=IBܒ~{wv_ZC3X,`B-| [n%Vi:4/㇄/WlN<)gwzQd)lYDoW=|<&KN))ꓯ7CAԔ%{Q%u /Қ͔-Kh4DJ{n@HQ_& 5pdiqy>KRzba @p,qUjc]#,«ia{ ٢W K 0+B1zXG\ܕȅmVzNݕpB. ,r*.Fl4k-t,(M/>j< =PR4&8|4t>xiШ?k`>z3;ށBdPf/ǣYer!E0k踟pKp<IխwCSFEaCv},Gy֍1O+n-Wد7B7Ѩ׌+slV3k^B57-R: yG(H/S]jHIB;Ĝe|."‹MKq! 6(㫢8hjONj\40~מJ*>^x340031QK,L/Je>pugHɻBT&fe2߯T~ǜz}ZNC榥'&%3 (muNгDbq#~ljjeǵh-6眽L57MGakk^(VM Pmrϥ^_kN^:6 ́m" P8$r&n;jORt;? M1X3y94 qAjK4ɑ9 `I˒&ӯǔ&P~fΓ_ I,0QlDj%i:zl{!EOI) fk@Haէ1LT?#i/LrS7, ,.V(6ke{!<\l,DT%= l122=d!Rt !"3UZiA΍.4t#c)KN޻{VZ<9ξ/Vb݌h'߯Fʷ*tBI8bMV YYCS}=B9+$Jn5߰oESHH1w2^whޯ ,wsǾ.BD*ůقi!>q=S2 flh~@np:ް! M`{.`3j)a151SOOiܒIn +THq_F@Y5}ߣ.kI*ʻf V%-ːjO\B3+q`[G_ C.F[4ުw"G#e2&6Qrs8⛙0ނtܝ됻vI`)vsXB2E3{4B!7RHGVG;ECKFlSXTS( e)6Q7a^Or2 ab2odtrV)AlDzl S꒦ݩrM?)+ E$,L4CЏlrx;:z&zT12wBdrsi職ϔR-#Bmw#r`qޠLJ0kEÐď{ T$QJϓny<36>"9ky⣙LѪAg(LQ]V*sɊ>/00;7G63 0zO$1$\@!ReJ֗)*jD@f'C `F0bC{-Db(6l3z #bHmt`ݪC FHȘ+\E\F:O&6+]r y܆7Nbr1Gwҫ9Naj姕̳i`q"뭊WfPo76aqZqY\4Ui|_qJxQsFůЩ#<یxA(AMfY:81wǮl{ݽO{w?|n:IH('aDHℰSfe63LAX}XCe[^fg @0aK3&@dxcx BhV-Ѥ]Cޟ#\UQ8]peߖdGm~kKHP`4݋g0a%Ѭ5?ߊ9%dCчeF[z@p5.WK<~"ƌ,nL:H*%~3U``bpW0"?OQ.Ob =|=lpp]Q?jE"#4,W)]Du<&rHTn18üiz:Jt`Ōm\jOdd"WZp-tx=>xERNʁ-}~L1F(&@=Tmӽ'ǐ6!6db?l=? Tnd.׶xXmo8 E)P۷&ȭʶ^!(es#KZNzݦ{S̐d1t9=4,d4{'$G tJ7ɘśGP.,K~H=,J'Qd;!EdĜ)= N@Y'X=-tM|X{/cɆ0Y7pK5Vɖza+I8KX Ċ*ѿjz/gK$^bLo0 |rNDBz'<>" T!z[H`I\a_Oo&|x2$!Y4 EEft c oX K2Q5m"!q"&p>u<ԩ]X0I-a1HSa?6[8zу{ dmJrduQmcnO§Ogi&ڂ WI8Y+S82!)8hX EXsn4%d=rY%i;gPwr~qqxYƶ{ mu/4FM./Y#4Kkn'h.9<$4?q IDYιO_kK M ²ą|>~Yx5p<4BH"WTbͳQ?a46rNZB8HMcZĞO mUqFIچM6 ΥfM_7oހ ϲno0x4{|l/ᆶICF85U[dr3W@FU(֔}`|>n9&@DABb+4 0p fNC `o mTRUQ2t \ȷkP% E*S8]M" %;6PK 9C{XT7ϜJ0aGe. m&Qjʓ5x8t2|Fג*"p#0 _>>e|OSP >!َ^^vP|H YrL&/_A!Hxrf5+@N${]4XK",ᒪbU#Rr,,jVE%%͝{~! ԕ[|N^@qTluAm+<("IhV-oV8HԵU^rQ/K6pV /?]cAstהgبa6DAH98;Oϊh2^KF& o1ܗ. 3p8O^z]BlԤؼGzjP ,.bǫF`.R!:aa$tc!+sw-&YR $×-ۻKNQ2Ia(?8UI|4M]J텷sŐu\La%xWmsF bͤelܡ$fd!N;١M{N/H|'jٗgwr~5.aa}}>i[#I\J+6wk ۀ^n[ # &k+a";%s^o.k'*Evyx:z[%PA]DHy K{:[M&IȵņF{r JdžZ;R/:xb8$I^uPx<name_to_handle_at01 name_to_handle_at02 name_to_handle_at03 뷏x// SPDX-License-Identifier: GPL-2.0-or-later /*\ * name_to_handle_at() tests for AT_HANDLE_FID handles. */ #define _GNU_SOURCE #include #include "lapi/name_to_handle_at.h" #define TEST_FILE "test_file" static int fd_atcwd = AT_FDCWD; static struct file_handle *fhp; static struct tcase { const char *name; int *dfd; const char *pathname; int name_flags; int exp_errno; } tcases[] = { {"test-file", &fd_atcwd, TEST_FILE, AT_HANDLE_FID, 0}, {"unexportable-file", &fd_atcwd, "/proc/filesystems", AT_HANDLE_FID, 0}, {"test-file-connectable", &fd_atcwd, TEST_FILE, AT_HANDLE_FID | AT_HANDLE_CONNECTABLE, EINVAL}, }; static bool handle_type_supported(unsigned int flag, const char *name) { /* * For kernels which don't support the flag, name_to_handle_at() * returns EINVAL, otherwise we should get back EBADF because dirfd is * invalid. */ if (name_to_handle_at(-1, ".", NULL, NULL, flag) && errno == EINVAL) { tst_brk(TCONF, "%s not supported by the kernel.", name); return false; } return true; } #define REQUIRE_HANDLE_TYPE_SUPPORT(flag) handle_type_supported(flag, #flag) static void setup(void) { SAFE_TOUCH(TEST_FILE, 0600, NULL); fhp = malloc(MAX_HANDLE_SZ); if (!fhp) tst_brk(TBROK, "malloc failed"); REQUIRE_HANDLE_TYPE_SUPPORT(AT_HANDLE_FID); REQUIRE_HANDLE_TYPE_SUPPORT(AT_HANDLE_CONNECTABLE); } static void run(unsigned int n) { struct tcase *tc = &tcases[n]; int mount_id; fhp->handle_bytes = MAX_HANDLE_SZ; TEST(name_to_handle_at(*tc->dfd, tc->pathname, fhp, &mount_id, tc->name_flags)); if (!tc->exp_errno) { if (TST_RET) tst_res(TFAIL | TTERRNO, "%s: name_to_handle_at() failed", tc->name); else tst_res(TPASS, "%s: name_to_handle_at() passed", tc->name); return; } if (TST_RET != -1) tst_res(TFAIL, "%s: name_to_handle_at() unexpectedly succeeded", tc->name); else if (TST_ERR != tc->exp_errno) tst_res(TFAIL | TTERRNO, "%s: name_to_handle_at() should fail with errno %s", tc->name, tst_strerrno(tc->exp_errno)); else tst_res(TPASS, "%s: name_to_handle_at() failed as expected", tc->name); } static struct tst_test test = { .tcnt = ARRAY_SIZE(tcases), .test = run, .setup = setup, .needs_tmpdir = 1, .tags = (const struct tst_tag[]) { {"linux-git", "48b77733d0db"}, {} }, }; +'Г[xO@ ǟtKPJ}@;**Z%~) ɑҁ$Rt-;3\4f旜=xuN#Gkw/\\-HFlܲ:edA"(|l9Is-q5e<8j8w/v:;O:Ihˢ厞1ǜ"^Wɠ(j Ol N^3drKZ]@8ʽ}wbk}w?ŋV56(R.e"O[/oWO{AN\TYa!IRF *Ng5hT}VIxֶY#= kl(1t7r\bv('P*v^F}Wp=oCCO,u 0WΙWV?h#e5wl}D&۾ @ﻣ BHWwM_}7/7i$+x\z_h x340031QK,L/JexĚKU [s^1J0MNMIeo}{NJR=E&(TUAՔ%3MSY:7sKGֲ33s?l796{']*sE8bxV[sF~_q,dbp`pi6l+Vve=+d6< jwtz ˏ M 4$=^4IZAIN,W)FjZНGy޸sǠrH '=J{7Dg=]f&C=b\2'gN,ޡi?I1$"K \~7@"`ldLDZաu{0G(f@9% eSxbHa3v?05 eT 0HE˭A78!N Wo Ip`'׃ ^oA:#B3Z4xZ>@aP&t) lJ%=UϝQ\)(Sx1?cB5GF=bҳu^aGmц[C>ISaçjřSb+ 6 @  VE.V ҆/f]}aVxUr&@ؗ}., €Zs]U A '҅"Ϲ4D/F/isv- òŵlHw!yq˿ Hw6Psgn;\D7aMG?_l .̲XtPȍ[\|ZȤ.8ׯ-) 'Ep X :z &[ OH,e[EN|1cEwj 5jAиx7(0,8-!,񘐥lȟwtܡCW#J9kHWSJ Z) YMuY$84"wtƐZf:l !y ϒJfh3NtIFn+2)ǯ;eR~q_Ė?T6HV^PdV(U۝ܸlNڌGm%˳Ehz}Q0-kʝ>񒘓N"u=ȩA?Ɨ׉C..G#~|VjxCnKHU27Y16@h')E͈ k8؇&QiT*s<6}JeZZ$@nAV+mn+\S5;<4 jެ+ N|ũE0rz(8Q~{\ͮBFp?!Ř vlsWSL}- i?j[Q~'I/ m֬I:6"BTO0i{iK`rݚ{HκcxS]o0}_qǴ5/6)jiD :uU9x vd;l]{0)9V &p PVD('gR.\a 3愩p:0r:x:v&2\+0,O% + 0VH)R?a*w J ;N*VB9.t I 3&3 ?K%taz ?R`&3v ~JA9sb ҂Xa€ErԹ х28ƹV~Y<ӳx|aEb,ea%jP3Fnt8 /epZCռ4T<+P&ݘuFnPP9b+LkժuI L6@HU\ CMnʹ)A:gqL*r?UodIdL֛Bfe0b^dsnZ,Oܖyß9O/53.dP(+ V*G_Wdie:ƽQ|*{j:nN_$ohnWV"X Q]E&y/oN/JqH:!b`WvЀEЙ6(} B4GIS/(cNU3^ln0\ a2zs,`Zikε.Hl9>y A^/W, մoxTaoHUOaHI$rIQI\k+Y^]kw'7Czg޼7;o̧֝ g(4KIkw42NӃ& eMbg p?"3-uœI*t Ƃi 3 0C6QtnHu )7hUXn$F` vIԅ3,smFVe<ҡj|IF} EQ|p6 .g}P\v>Z\ON")iꈜDn{^ykbjIx܂W yc+T 4۰*GVg'D`dбu,34lIK )/+II%= a/j [gJ֭.@8 4N`%1<Nn"g%1 dE&.~M;7'ݓ7'^GOT$McdTSG\!w*TNZ @<<e|چ.!iRw=p:@RU]. ,NS7j8z}wO]tlH~85ͰQrneR`R`MsےVО. gCw$`߭+ZsӨa^nѽ1>ʚrSQރq}v@p xlg$~!o .3k T\b |º[E= ջo3Nv TQRX o\Hաfh0M={jo;6+A+*8ҫMFȏ؟ZC2#Ypf{SPx\dv{k;MGv/2.oɊHT=BijeI`>ܺ^ؒʲ!Q_GsSR$iBZ n$RSIΪyd]I~ Jh'/_W_ n?ȏq}b~ ~!~!J J\\%% e) Ey &Wb0]: u89TtJSK*dau䣜j~%%99 f奦ǃ\3D/g07pZs Sx340031QK,L/Je({*pO5BqzU٩i9 ,nUگ:;*؟!P5y9yى%z o٪h^娜>Rb*xV{oF>Ŕ1DJuIs/+ d|6:լw}Mtw&@OEr1؛rA{rbFsxK^B$6UyJ0e< ,BCمm `_}h`0@xO3`Rc0 ",p< QZ⏌IQH!-Xu܄lX_<$)AbYr(~[H20XpE2dM?%tTena5DA vZQPwˋ:qVxZ G*P3-&"# tn0_3rمyp幎 >x]lۼhh"鶴r4+ݢzQg\z AA*M=QPϋRfO':UD/nUZ݂;{7rvGZ6ox~P8wZxtat Dcʞ{3bBnהEȹ`F.)fOT8=M7SqO 4XlKn> C< U]kSMx2u7REubVv1Gc6b%=e7؇Kl ֹPwH7HU]#!Q~2 7H7tmq]Zwu_ynj.u3* ,.Gټ[6Ä `s߉PؙL ":ҕΗ`)͓wN ʍHk8q ua+4BgY68w~a׬}+CLcPwyߛ3ZrB_HLB۾M'k1_J4wHlqJ#F% Y_H;.(ѿZpO= emRxmSmO0SФ5)e /c ƹ]5+y|>?=V FOa_p^Ҋ@} W~xJ9֡QRBь?A# FM89:zbJ[`UixX uU0 [G(أtwBF⡈*.(Wˣ󿹤,k`49i}%͜iZiQBK>$rAr63A<%Zq4B# 4&O"5 B"W$N@!y^eö́ϡi-/Q,ѼKY#O Kb8;5kbge[.B?2֖AjACѻ$ r>놡8(Qqoqd+o˸*;#JC|>w~s)8RBQ` wҽFhC:h{k$E;Na%.v{T<+)m;|/x}R]o@|-Ԥۏn]5$?dH7B`'"7aeRu/ٽ~pwՑ !{hR :CYP~xBeQZJ'Ɋf‡Ї X*&=&ߕQ8N#VQbF=4!\HȘ{vu>}L@+SY"dveL@O`s-)Eg~uM _ @*s9畨 /vRsVh&8A.\ʤ)*<Fm\p |9xeRaO0ÍD+-M׏jFDiR; Vwi {K!C$6DΥҊRp}q @,׈IB7p0@rL!aS&_gLcx?} <B7w{?CA%\c/X 8JC ,sMRyVa K4a7ʑ`N'I$Q $WdQ{Nn%l7znlguVъ0{x~kl߁/_3)\0(01ͮ/fѴvð' 7a٬U*t5}[Wx䍪HhmG2M]+myMizZA R8cƕַlAH)x^έF"y\JL5DDܘBTp?pS8߲ep v%<4Uj ]I:|SB>(P (r!+ %9 c?' Ѕ;տh0MeSUO:<!2}&{F?hsxUmo6,,`v7Y6@:omb'0f'AÆAU%"֬6q=܋FϜtDFF,~,*eRF)\ެmo:+nQC9bϫm87f^ÏERqȨc!*(l`n]-Z@ZqȻbWqo˔唐`o5ui8Z.~x{}盅?7Eu6r}b"f'eNSԟMڣSRBɛէ-f|aVCanұq_z3Azvu,oXE}%س d{q:PtݦK^AR,=,tIUҧcx0(nO+@!doiڡ/Ί*8?yTǃۋ'USWTc(Iro/u+2ůjK9xWo6 u~`8NԵ)Vt KMDUr#)Kv)Z"w-؇Ȗ98 LJH⯞3:M_wa0E0Y "g &軓2Ev&`qιb 0x#&ÜgJdnv.2 ӌ sµ|4"* Z`9 AR0 <%ᄢDN)<&j6H--R|B3BW 7mPL*YS|G&xRLZMdB/D\gy`<ivQ'Y]Vjd0_uEG!cɏUq&BB PZd[_Z䌓ZZj:8KК$l }N3)b'Z=!"wJ{WOCr{XK ^.ZSM{C@vtu< "89o>컛0dZM'Kj+z2#0H#zG"u99죓*.zOh#̾/o戗>F9rL?"vRr ˌ<2/3 %"mCSz8]ðh8둋;xy 7cϿzw77q1fϝ%\_\vߵ GՑnibfITUm]K=]o|wu0vFQԠ&2eK >6YF9Itx/y0ɼG=斞_(e0eƂΞ l3^'mRAbh0KCuj3 6 Tc-ȍ S$GHF)/rkB9pqҀ~4iꈙٻn Xj>|}6j+3he(:նI_"ڍN*k=xӦUu)"M! gIr\R+K<-تIŮi.ORǮt;'yngcy Pm=So?oVrxTmF"U&å\J(8)sJF'=ƛ]kw 9UwfmC#-3>3^zީIenO0Jyttl=0 5=1תؓ@a5| ontEG0ޅHPdJ6G0ٙ{Um*&Q&-{Dnt[gGFU:!Fc)ԚQT00O5]$J|)Whe]; Z+V跩e8&􈑒(\+x#l^TC:.*4Wp;t[~8Ɵ]9.Fß.F~Z& A4SWDYewOv%ccRbs b<C>nP_U'xK@eJ9Ha wG!ɕA'54=>pB- W9uInxy_ҁ!𖧭Nsy)uܮVkO^ [zl 5t4E_/͞.!! =f9كEcr>g,rgj%NPB 5 C:&OI`(Ggj:RE*߲VpÃ[vr-8?xePJ1eneK4pi@m NSr)ps7^~m7MK Y)<68ו%msQj3_ot) AH/e{Ka^\V91s.ANYY AiĊ1[qMq͕_(Aox?_?SFw QC+u5x  86!^/]svAx++$Vt+S6,?!q xXn7z FE]Y_+$ȩZG,.@XPzE.Hkܓ ߒ;ǖ͏3=9!ɇW޾M3Ŧ5r6AgwovV f)J c=>Pw4Nq9o&gyX2T**Ȑ@Ȟt˔&KҊxܐ?S:b#p+:f,hlY'QZL$9%&;U2Lg%N-&Lcbd(;֓%]` ȩˑLJyP=- Yנyӈ7zOzWY65w _3U[n| ڕe+~C'Oj08*L'Q0£wsuUJ\ BUE ~C2$LstMޒӚf X= XY<Ȫ\Dt5+*U.fX YŴy4ڎ-jİ.=k?kn$ejwZ$[ј|4N MƳtZEikXμXIM*Y)/`7cR>4j]o_^O )s̾/+wID%R;MIw+k<:2i`/e-?)ct >OW =]hB$xmi8; U0o}W#1왕!UHajWF{jέ5# I(Zib9uwo#h{YНr0H(]ȴŽ{v^~m._ \xӋ_?$_6y/eރ{1@Z2*6o{5yDE٠osFnae/_} oJh7Q ol¡ܓ?:BmH 8/֦WF 2- [#Կ~#_E:jokwWN=:="ddo,4ͲAmUrۧw04)pkaR4 &ľ^#)5^M%]f8?۾{֛ +${q\USD|HGO̡ENSk |^ [oqnz6n~5X;^ł[7Վ_ ۬s\xphפYl߳q0]{F>ikm=ځ4Uz15ݸۺ magxk1^e^b2f{ WF/C@x% O΢ɛl+V-p\eux> ~°:JpCzޓpl45F4}2 Nؓ&nNxλwC-ȭ[~ uzLٮdD65 zx }f 噩+/sҰ_j& xx;_,4vc)t`n꒙K0~/[Bs^`rEUl 4@G3We+[{r[N0gnP(2W ߈7uKdHk=K~v ˮ^=s#^7_DZ<;aMTHNwR3,g5&R,E)9a7 :t>Ch,r n3 R,IY@B؎"1]\gVS8)_[k|89vlhpQMq+n^h?24?D1P rTr9\zr _||[=tvDvyDLV] @g.}:ܺ?%"z]LhHu0Vx3]'=%/$^Qq$]z3';WSeȲxUmo6l kV/:ۺ] vm`m)ڦ(V*!${swgG}g6a n3Gjd'Z_ח-/vXL8LUH瘮~^ nT"urgp*cvM0m:>>\k8^r@ӢOzmD0&xg\M8ibxۄ&0RWR!%.!l\G'k^@rO~̯2۫L&&AOd\mZ^CQ AT3)˱>@UÇNWQ{e  1+GҠT{qXx^ſ Uux\?C9)jGmBg_Sr\r24)n!ʈ"xQK0_q/hӮ n+D4ݲuhnde)*_½|瞄!̦w`"9( +NF2C^OjWWbBpq9KXMm8\u}]@m(S&CB΅d981EB4f()C:mH%+f6[WؾVg+6) Y)GxC|X 3[@1Үvߪ\oq+zmwv=^8>P5'hD_|t!S@r,<#ߐ^C!yأy%xmPj1=[_1jvP:L$"zJ4ڄb;47) q/F129Y,sVQ8nzUYop?*O?˧zx}wB6a$Qn(K`t:.^m#0 s-v}ܧhn%TɄjxk8+>ML `-ʕj[nF:DA" y%Y Ȏ8ɪa`QUx2yBgNNjzbBZ~QnbBRBiqf^BYjQqf~BIP4#X!=()1=u; WT/H,*NMH.DNPX@PV֚ j(:xxYodQ 3Y̿'}=8m؝9N|Cm䃃œ;pNOHF[ ,TliFOx$^@Œ%R ͞ KyJ#EFb(p2JH7mȏQwӎ50hBKPe)B?qVdQ)(8ZW`^H](MP.1aRŽVԽ>t,cs7wVAarǗ `9[&\/׉2Z-t:BNFϴ!2ܝ'w'[A!%< v[SsMMn{E(99 ,/=fg&JPETAy~v$$3&09~؂Y ywM"Ud# ˮ ɕ;B׳դ!J9UcQWXNsm1o2vpVm*I 9' u pTp~{5Ulh77FE)lۅL%C=^\xxqui6۔/AUj*[ﭒEDraμ}9+>P?^FM/U/ }z>ߘXE1>vS"WuS??\}^qŔ]y\(_x9~?]!N0z2,<1gxlb%dh(cm|&4vQ.LdN!AHI=4KNu`آQWSZ"̪VR&gӇF6Rz ̇f̈́#iTHM{٤Jmi}[49v \h?=nSGX^Q(&,C4lvϠK+Xrȱ*wOLc:cc8P.`y()OkhČ.&KW2dHQk b"#|7qҌkxnaUs`Д[R¨P@N2-|rA71S`( YK&lYL!ڼM֬__*u(m%#ZeQZGG s%z^rlW#f/NAqt0xY!թ Q4lFO}wJdw? 6ڏRiXǥ.VM 89'V1XlͦuVx xl~z1!Ȕ ut2lq|oXguHVِ VѸ?BuZ0( *.ί̰]K՘#kPf;&ܖՆ%A7^l&3HFX&>ȳa3{ƃ69&}7gWl23?z~Wa[Zr> A87r+LXT 9~cW˴[xA X^\"x1r,|#thO2(! hmmgR'vТ%1Ņ{=}%<~ETxsɱ`?B]_CCg"gjı.!dڴp<@\$ P,󅌝Yv08pULa"OvK"SP$y3 e2,Q },3z9{XA3K "a<8J2D")%$M dc}!5`!}de8+bo]|H.@R (_,;R}]7qvG0BDd K]\kOQz"eBu]w)ݻT8 RR?\³@rF lH<@eP4yi'PC*W3bN4DDTnE0rD+Ք*B>?'!A@&rnkI FXLF/ԑ%餜v|~c.~3kN@S*C$ENF ?O3|Q[bs3[Ǵ9'ϰZ-Y46Vd`˺J3@zTDSlsARȦnA Aɹ`k`_OQa qsY}\=iӌʥMG;$LtZ|AU9 ytā k~HD)d[ :ɉ5ct2_kR SFf:\jXongߑ*DNQf64]v&V7(#l)ފ=cqtl/q?h[-CX;m?l1XE]A{q -6}n=37\Fz'DmXPߊ3[;mܙӗdbcआGLP).6iS1X=a.K"5&aޠ$>}W` J%^B{v4*λp:0I_wxLӷ^MIBb 0^mhJڻXON*!Xfŋo$68#z$Y2 hUQm@}M4vjY[4X"7dTS(hW qE~5Cȧ9TgP[Ͼj w𽘜Iۣ)HTCOgfcx=g|cLԮSiNțۮLho=ڊ4o^0zriơK'l JhD}dk4LRn}&+b77cT^ԝZrX=Y<v1BX4\UBvB%PS_;{V+sh4EZ#ul|F;=-.6RD^N bKHH@ar.+K9Oqqb}Z qܳ'ˍ]Ϩm,; PNz2 M |a46qfLaVk=*JIV%,CMnK)8xtԭM}Nj5.|5<>tjdz鶶_̠մʏjM]|._9ySk(y^*E{~ KY{O-;p*)KNyQ6e8Rcͨp|| =z׫ߗZ *'u՛ Kl]r(ϠLkP*/j? G<أs~ʇ[K~.}xTMbJJ|vj^2Õ+$\sFɖ#Þˏ2#2(O.ߨ&/4e@e2NN]kPS4e&@e^~˩n7meŦ^ҎFSf TUegͥ_mtɵlC7m-xY{SHނ7AL L^gl(ldIa|9uF/l@* &OϹ<yO8 yhZNv!$v:N n~G7p> .5B&XxϜEr#-o _"-i?4X.E԰1Mc&$D^{)s B`[(P1Ɩ,ϡa"-%`H{XK׷AD6`-MȕDr#\i[0ZD?>Xx)YpIOV\p7{f C h3IG˖R鰽Vct6R0d) "3ҏ PJ_rup@$<6>@s-0IbBU͈X7W|V&5-Y{~$ܥR邁KuDyL ]+Wjpys~~z *ЏL]KA0B vj^0b$*ԡCDߵ.xLL1uz<'uo42zգDW/F>M9'KLʬ~ꏯ]dG]F/U,D&gE5ƃ˳+Dy[5"lY+: X73K\T[ox q8$dN*{"HAos)b(V(MQ=ܛE7 8la8`G!KrAM[R,S7 nE[&>bB+eC:E1")A-{VFf #E'x)Z~ڀ#c¨7ʒU+s\U>ENF+B4OŰU# g^O)!偩/+CDDج16:f:qvW"|6RBIu^RdCV)rβ*KS_x})j[Unŀ)cI{t'[?[QM!*&Qڊ*Ot.̹|V2PkU~zIR9L_VL,\8ʥ$DETR໻1ڒ&[٪z Uk|yH؄? !XojVEǔy1m*̛ Sҝa~LķBqST9|3 ׊$ ÇMTMH/$u5ģ5=_J֭z1{OBj=4w 9wscu O -hOj٨;?7ĕpu#Iy˩n~_oohʈ,5*(i4c\DN(-w,y,pIӌ-`I%oѐ|zu;5b{鬇aGHF0M|!!-,vuuHC]0\%g&ݻoc+}/ BݍߓEXA<ƣ9<6/O.ch%VRUFd@iNFN_84T_ۙg4m ׿/gϝp(=%o1(G"?iMZcDfg{C}%)'M8GY?rvxY{sH>EG {}VP\.R iS' ?6~3!.WLO3::Mza~]W?i4AXjp,C>Ǡ8iY ; $"*ƚy!- cofr[9јKZ֊ː`}Z »sqX~+~-,5`A ٷZ~*=B7p04;#`wh1j2c! D܏I<A1κc#]D,Dˀ0eB&)FBpg$e"yܟ, VKIxm2Lp-Y!>>B$8lӈwf FGZ\30'h0^ܷ@\+DÃRz%ߤIE0osZf̢pSA. [ syd3n^f$Tw}ZbtFWpr36ڙAg;B' ChwvIua__Gؼiߣ򨸹cm52vwkj:Z.4m>qj{ UjDHE'ّWj||r DNi!MicfOE%8' Cn< Ќt!WgM"juUTVvJ)T5oMuS: Ou|XA<` h QT ]Sn+gŮ!VH$Nau XbXւ,c]e{ [[;ܜN}lraEd"M!,"EtK^xރ<C"g4޴F#1Z6"/L쑯z[,z ƕfJ1 ZJ1-0dtfg~F׭=kDҘj^:ݞ1<ע^^ Zc,(WjIeįF7k`|eY JMjPWu *ny x,6ؓlPHSG$Xt\w)'C_uc bc74,ָQsRV`#Nv,Hē SL+:dsKS`W-,ײ&|p]`Ǘ j0}icK N,+<xܱ>S.AURQDuMuE%}iobX(cE>I.od0EtJ[Mnnñ6Tt* W=ᦠ5dh VIvch-p,jYXh!K HJhP$'Zcˀ JϘiﭡ|YUz3:|k$aT>WwjLodkʼn⛆5hPm31֊[oWm gk MYNs:Ks5wt-ٖS:sZ j:qizr|!J>->& yݿ5x340031QK,L/Je(KWִRcbEpه !|S2sR*m? ۻI?h㲾&71,8P/'ro%^X#6w3hʌد(ZtB~hʌ.U? m~6Y%ДfX_#OawT7zk[ l4H:tKPm'4e@e= '{ٚvmWDSfT6mzYK47v+6߾M%PT;vUOyjKBf*34*;4kƧwV9/=ZM˹]Ǣ)oWӏU(Ưu]i5Tz1xZr8-?)gI[9j#[-'ȒKg&uhH.VwSTM#@ ݡ(A#%#j}wЍe7[;[lZbe^ҟQK&TBV{f O)fIRq%qyV|5K%a}|4` ՍPD E#]2>MV+B+ߏZ_>^3g:>b0N9'N%LmSRZ8q}U!d[rH*\3Ɂ9ؓP ID.2޽Kږ=݃#D4.eݿ) ju,QAu0UC)Ց,0ru~%m*,lFSݍo wOpx뇀/jFחp<~]_5Ŵ?`lyj]AfbGdwjKozoXq` Y@sf)c~ =oD+Aẹj?Uoc')Xe#,zi1s)aJ=Sv5{?νYwo0+s{_BX(Stm娹lahlܭ[-K +C 2Z%#T>UJjrḬ[2%Jx0 ]m!X-hNa*!u S!ufS0YWq'㔚l㠂H)uXIVeD&Oݷ(b:=7]Ǔ~E{㷰4˾Ou49_X[[Wvt|1ÝQEC-3M"!T}Ի(ǵi(מ'pY2a s/&5Hl<(փQ"%I,UH[-*g+@90aX+i~WETtެ7A;\7kȥ0]gLY#v; 8CND'Ur\9h&eՄO49#dD)7_ hS,>J=P"|I "fәwj<Av ff HR {e)1}TtAm{F.˴WT>b쑪Ao՛kW4t%3dQ dNYS4Dxp_pQ)#a*Ps;(YfFA^ :xkC-gLKzgeA8DMLJl߉gڕ > IсCj/VÚ#'BL: ]\omQEG`+- mAѻ0I r"kk7bx^T;xkOvF^KQ!](Wi+ Xr?)+m P/a!"chCQܵU%椃!M1U2t4َ<\=$1Dy7`g xQq0|8z)G.{&ѻ vGUe)U>'G8ɰ_a7Q9 :IܠcYy.])g+~/5N?5T iq ؛GÏ_o6LA}BRpN?- 1-:7LdZ)_ c O߈yx}Q_J "¥e,o'[̚#EYB\ }7peR-Oy1ᆨbť`xAp- fƢf}9'ȪzOր>K|6 [M=i:}G/w`md7?f|1f QSkv\&Cg3uEI{z&2c4[Urb0rEz$[64)uڝA! 􀷛i@U nj3pv qlcbBVIڼi{݊`gfMHώα>O0m\Aͻ1(QKZ/4W`7h/5sofBs {Q1>4חiyC"|e"W %b:o=- Fl_#Y b#bkSͅΡ \ f%dQԢTZ>a[N.zw?{ g>OU!TnuuϺdemCM:Aٝ_w/`Ksvq:,_?NUeRh7Z< ʜnպVt4*o15>&TTg)xA=j \%h:XAL嵋Zswd,努 _EETƐ[|;umKSO*T鞔O zC߰[ak=CϖWyQ5u%3 ]_ގP\Rl ;'Jɷ@c.fdCj)[7 oXa,]i|#*!`CH\e,"ʸVlIaǕQubًJ)f da'؞,Conuj*r&yՙս9wڜ%o|uU :3:cp;,N%DuUOtu@uiQfW/8/: sU =又F,tu@u4ίlZSwLDS[_X $/n@|jjdĜ[)+Թs{9fxYmsF J)xci3v)`-94hdADm'=^N@Avu>QƧ7mPǧIf[6xh7[ ktF^쑮xɔQ#]O7wd`:iZuۭV5jI:>O5Ѿ Pnl%tgB?cWiZi:׼ !;ȨaE:}¨ ݧ>1xTgdL7جڮ!D,{F'9àe<a2%lJ. s1"LH }ʈi`ffdTn*3l2<`mdsـTsV\\"`Կ( BܡI\Y x(_u>fL<|C iĨwSĖ%q_l bEi^d0#a35H8ޕ 47c9=I|$- gfVϴӦ3 ZIHYstߘԲJqG`ʾ HJwv5.Z+F a vD#6bޏ2c~:~%д[ ay nT%h}) |b! AU>M]o|`)O]󨜻G\ZqD[ x'q;t{X[ZGL)92݁ū9~A- 5p$ѣOcW{X{izb鱀' j{&kszT~ e:֟_mȟzHz8UQofq^^zn:)\ur)I4-BG&CX#+/|VUzbTR \o*RL\>7a XΥصݔ,ԝb6 m0^ 6H,1-)/ۭV6L;"˛8 9QZ'[A(:z,(@O-[Z\/t^|Y3=5dLs$!+)h!y7%) }8nf"i"u?s xw/*StHYCji:j1r%CTRTK-hl)e̟u2<9:{u| x}&~E^§dq=7cq7WXI#l'I,\3B.a(KUhX}ݬQ:iQVxL6n(Uqv񡖽+ojOQ1mcfҕm |C K1ၤSmTUEzWW!$ RgSܒ&1_h8}Rk9g+֓CVǷ'5S=f )ʹ JGh{ɴ%* - lxBɛC`Pǁr13]E 0P,x?BUScibbG45];?`p=% W/F$XwES(AN6B,K9x^>X*;_6}8GaZGxkN|cFG<:_ϵL 0鉥4e"mJͨʒ!!4LmrNp -KbWbx;|s]KLφ-烰⦅ol8U)}MņU^5ܢȃ 08:,?Fif?0(Df :E^ҁ~vf&xekp)te W- F:TRf4K,!$&u%c;{o\=x/nE{>}yY~}."(7 !"phdG^Me w . Q`#NM AN:@O=< O&$zV.Z8Ŝٶ>. cRLQCLU*{}_ˡ(%+Єݾi 5PثܝgG&=RUF!X>^Eumb+iȥ( lvcMk2=]SJ0;);ĺe)gjw>K $ ¬ݞnFmUW-I_/b SZdQlF`ifǥ3>H>?TͩLq-If ZA,*ϻWѳhv+ԤD1iĢ7uxoAC]w凭/HPZB iK)1=mRvh4CwxDO&^lx7\p q.y}s͊5:KSu>?d-&Kg,qSցX2>td,s2UUo"=8OnXu!>>[c^h$Z+I)_v'4Jڟ<4ͦڢF&":9Y!a 9'- =FߴyhzǰxX}[[>Ź.؀]m]eEP3 93[%9s_~mj]18Yf0v̢V (E|2Tl4kflBxtiw>CA `тubJi&6Gso^";ɷK(tnwEQ\#Ѓx: cۉ}w±Q _z<3A*N`7!xa4ca WԬ !֠::jfpf.p`u#`\̅$ F'oGRcʼnsz}@ %W7dB5wS4o:qՏ%cgfi]rR6ꐪ2x}vzK4u`ws̔.й-05hxBpҡ3^qBMO0ݒR $)d.I eMI\u!c%NR3yoǒW)bzSb*:A!p6bFqZ-siW3,.Q7U( Fkg2{Pv+W"TG2sVZgjvUd 1혇I[(ݐ+5I̾du`q QJL-J

r0G|۱3Mkk?o8ދ^y1wwv}s9twM!Ϥ= ۉ#z7yZww(i12"v{k4LYhJHoS'.W OsKr9cO˹մZ,vTܥ3=/;+2 goym]gp ۶R-gA<y/;l晐.kTT&*b6):?F}*@rI<;-=݇UY` 6~_f8Jg{}_р kQ%R^ui4 wX%b.oW -0۩5)ӿFNVppn3hUCz5,< V{p\( s8ly-I4x(36!ߢ|{o2\&^K!~:?:=F#|АJO{uZ[{} Д1j[.ˡ2 RUB-KVK_DX+}"|tK'է RYI8N 4塪`Ti赨C (<} ђps)82 TV_ z)f'"b e)U@ `_6BߊlӛetgW@Λ^ (۽Z+mФBPweiQ:CU:A^)~yh: Y;;(IbMc6=7 _ݗz)tm=Z5W2g~>xRz0`%*3Cƍ}R_)PJs=2.C0a)PPF>S=N[:FoclѲKBy +*U{`"_TC& r< Nzk|12Ur};`/Lz80-ۄ FnM' ˇyp05ʜ+̑r-t)!W#z)?pTQQʏ=juO&6?0~)~Ҡ>(_?"vꂑ͜ JW+^WFpRo G}4c N ^+ޞܥ^^JtVM۳U.e8Bbt\rW[ӮTgT}BWU_ҎF֥ZTI}Z _R8L(~?Iw(CU(./#'/]Ƹ^X. ܪ\ Z LQ%F 0lR2[Ƨ{[=ɲ@GĥZ+}Uو:u H ߏ( 㔯ѷ*q꜎?[n?IB{ A>$S M85rKaNBxb|[#xToDUnmҢjtjMQu 86jA#cQ;kOBQ E8qǍ ;^`&imK3=o|?KG/~l ]7uBO8aN<H//\[:^M#tzJS[K92S q,_.IF8VR,ci8Jab>+8ˆ'Oڜ[$)´bAnnB0:$ٖ\Tx#i>=VO i'in p?ԝX. .A<Pό&҅,=*A*E>~l*x7Y #~x-O&;Q$C ;c꥗ [mQ4lYQp];LQZG[wfuGlòvg`~bCp9tA'I;'Yk't݃nz?c]`F(),eAf& 8sq8 <."#)~Rd,P{7FfΜ 𓀁d}lt>L֤|0fcsBz<)S>^0>Ҕ2hrυq/$[a,܁G 枀PtnY=b7E^ KI)?4EYvsrz/ȸ_Y}=2K&%󏌧 %yWJKp~S2<~u%aoz,8fA}g\spqXMxxnj:IZMt dhiQñ8vǦmyۻ8墽6hj7 ŎX6}V4 !ܕ>lBA Akwj-(ʆN=>tekR"V7Iwih%Y?~-ʰv#ETf}O`Ol}OY4 HPvj#<+IUIXϐFg1Q$v,W,>R+OĿqT,rk3֊‹dwD)Ju ~B^+*|ZWkh;c8?\/b؆V-KŅ$b KR+ Kc)=kiA` ÷ʀ";݅t:CFnojm^=9^׼ <lKW'M "<|~% ˃:?EΨXʶ )"(W$-|fg ;}̘\z3FbU1Sfv6:g ֱv^MFg4S'SX D?`6i WoQ,QT~ Cv"cer)hזB뚧\MseIuqVhX~ļxmPaJgljs>v#N6}ɵZz>Ki1TDEd(*>0f,n$e-PpW =~PbIю \;K ,c} vWgjӕ.4Rҭ^-57"x8 _F #m-%w3W]xTjG+hm .}*1#VR"PI4- JHcHBaYZW(zy(!0$_B?AC>;䮓!eg93sõ7߿3?gap2W6*ʖtVnAQ#ʍ=-lyb3!OV+ ^g5ڵfa$N$zQe]걀/SYOB,^P/@im|aHX:(LFNDytk~2:vmɏ -E> at#Z @H3;)/3wN~b$}3^..XF/5Y_js5"t%^E:Xy[ڼ+rdum\+WFI;1S-30򦘻xXmoFl)A8pk\NT-"uuEE(R.ofHE\"Dy{fvnM,=X" li֎ɲV'0L]K0C ~qzCpdw2wz<7ןZ<wR\( LHr`qzϓ[Xxzچdzh6J9]<{ئ\MaIӱ |)4XD,Zv2* @@>֒! #0Bxs|L*g؊'hoC utzXbrAP$m rFtSO eo+ QYEQbIѭҕ./:r(vxrT.`*5HQl2u@Ua Ez۬_a "1%"#lcA!x[F/4C´`O!,{,Al60,:࿝.|w^$sৄhY\ +QX%{j1On7\=Gݤy"bC S'tFM[ޥ(Wa"cWq]Fycy/OWeU[:r :%Ã_!cİ~EJ< 5BEE9PyyjސIºҧV3 Q%թ|,:2â_iW}9g¡2 PAs1p'C5}\^"e_鹞?w<}jZ<"B/O7L. 3xtd=s ھs*zA2&Lo2lǩ2sȊMIJ˒+|J;5 JMY/|VDJqi&<6QR`4RA;wEm{Tc7Z> o'Znӎw)ttqy"Ce90ϊڴaZ:C*rPwcq(ZA9K퓀X{*ɭKMɢ6#=l6[̂{.|u*? 5,;@j(``Mdjo" ܆f$eyh[LF-&=*Pɱ3˦)\7&j[ѽ 2d%LKÆ?{gOгl8.֛Z͓T'jPprivz7*кVys>4;L+UJ&m ^ ,mpoEX`"bF\堠pxMVhl~G9S̴)?@ަ[Fȗ2cǕ5dwN{΄%uGC]LMybN鎏PC6x |v`z/7NV~30e=| (럾zS}Nj̮ۤ3]\_×/#Isgpb̛\9³TiMәv\w'q %΀Xrtn7Y4:LIl1.]Y6_ T'?Mu>%̧p"إ׊7;||j|h:$(U$(r≄}0:?Pt"QE2¢sC̚51?whS$,0 GO;PRK0)W^5T HbxVo9~fpi:ҴE6 ']{:ievcF79~36 _Mr =3oi`tKc b. o.Hp3h5OJ72fZp -&S ոgWY8dR5TdLY`x 4~V؆d-TaZ#ˤ0r&L̦֔r5cQZp0}@&ƙ{6%LHh+iHCdd=5MD2)DѠѽ>FQpKBՀ"w&%-*}F?z|5( 9 lTJ_sS%0_\Ӏgq2qr6Q^EXx4i!B* *ʦYB!H':݄)\Z^){yвV(ԛ?eIe=c=H@:d9Q(V8b>p vi$KVTeKePN 7#p`C5 =ax$%2:Ǡe`x340031QMNMIelŚ#zظ~FNĹ]Ά59Iz v[;^_phC{?)|!qxX[s۸~~ʼn2M$GCI(YEHT&A`Ўv/v:G>'GM86"Z<=;akdc՚S"V^J?텆-$d c yn<9^ T"H'\@ƒ(Ai5D"p̈́x /v.&K`)^ *|G>K%OHFrCbhQ0Cx 1{P@j5ϐ ,. )|9K%|sk\&Bu 53XQB#7Kލ#P7Ñ3 N`̚;rlaϦ U,ךwP> |h.銠[$҇(.܈HڅQ3/1*pQØsхw\*:тӗggg=="N'ZL"5}|b܅L5+gHW|}@ z*cE:HXƈrRݬ@ 9yF|긓K2ak}X 6= .ےi%^XCњ fp-=k2ܶ7|]@gOc>}Y/?N.!{&ye*_#wkfT-kJ>3DѰXTZ7sY' Y`2i;Ck4FǞ'nznAK{+ $PTӥ Tq/3+G |ͬjGZ" XӅKJ[J0KWNK8|u8V3a@)rIWb$e . V'48DB o:IEͅ4m)'²v݌0APہgϠXk /g/;ͧ u.'g4`>9nR~/]Y뱽1s4)(o(w)ºZPWU,I㮎,jqVyV#2SrOqIW+gEPN1:DZcnZz}yY*)}B-FP0䭣޿$Tn'uo[-$[x&S\/VdȜ!@$܈m(KA{wSk:O+i:qV'ٓðAzY6&tӾJu?CYݹkU[u4RPEVtѫQw :z0 !R%= #ptq J8A+r$ٚi"e߸~@yW sU:(϶=qo-ͯ)((ZԳṀiaq[Ө~cLH(ju:DFG;F;ЃODѣ_3f;kHǞNuxko3TmLdRtQ ۛF=4ƶ! {o=gflli.Z3g{k''0u]  <H1<~GYQ HOp a|!rp;_Wʺ gƿj7q† ԨifjڦD~ me"\zݙ66ПX{:>\OzpMXFߠ8ГޭDBY~g >5~ƒCUbl0)evѷ,arJAF2~<`]SNHYs[yM'S}`4&VL?<P|pjnޏ ~icJrr3hՂ>٥;aO*g m>2ڧ3JJ*7x>-9O[kEKzXSbBlp/w*UNq\m|/y^uRIkf%<|rT)TBbתBJ5^~Y'x@j+$ Gݡ~%N{52^?4<>?EGNQS$qz2F>t˞m/؝T7<Gfh6+igz35gu>{[ˍg~̎]>tIYUGy&m1M7uZf^Fxl5:}(4ϝ jY0tVӉ* {!5>O/C[-76[-FR@<;Q|in.e!Ot鶪Ju5 F,D!O4ӞTѕ*]D_ר/\FlnVٔHET٤;暣-R,.Tz* + <m:5rj^ bݚ\"# .pzE^-:gOj8Կ&uYo~w GTM7*sH'Jޖycj`EjQ{2AYф)/۽})yWCrKso@oҢ5bghH{UwJ0Lt'l4ګnd۩ðH)+c^ռ1S1^ eU!vPԉߩ.Z ;󋺰LJW0F]CA{ݒmɍdۍ.V@gɱxWSHl}*ة3~=oإ xo?pJǶ YΌp dɘeOt77ꌣc8I:-4^?JY K?̨F.͒$]%0 8ߠDtXeug g:͖^3q03(Hlq"7Bm}xǜ|=V_T(}4URO?\LLwq :KlP@GH'"IyL?b.MןsgY'j⏳`8y:J8{Ylѕ_ӛnmsZJ0VA-wY٤{B.mo=)ֲ|R:L-*Lvo~/{4-o_s/S z$s*ĥ4۲wj{AI29GcPɞ}ԕ{BuyYse `L$S663sǝ` IG.P Hi҅"ڴ6L ꣛N/.[9ߑAWMG˺ɧo()Cu4ՋPoq3=(m~ `#EmhuǷt#>g{􉲝wHR H'Bm9Wǣ0W~?U0 28w .B8帜6[W޿3:ܶp~k;'g8#EGThSMʐtڶZ)l9aNۂ@ďN۬79gs`\; !w;2sE`x%Nctu|sl!ncMB3d3Zy'J*qע)܂/ƣdž )K1444 bm0hjɘ( %PsBrBV~aÓàWR7nDa?s%Gx#IJގnKJK0Fג鷤Å.w[RbR;{D@[?l&fd";G.Zky1q/_U -MDܮER[m^!7X^@دhr*^+\ӊ&?O&׼ga-Q$8Ijȅk9"hǘ[y=t|/%B{Beix|@EC=/j03A璤Sy \X]~sPQ8Z ZP fVuSllIª6 asR|>s(/&h/]#A8!Ј@|>; GKcg,jt|j ( s)9+}/hBO!|m4oV4B}!_Vf $iFjo/T[~ώ?bBMrǫ;)gQYܵ MS>Ggџ kDAؔ3P{uIUbڽu{8loA7tKj|@ M?Zygx z_vϺ ;{ш{tqpu8_};d4Ш#Joxl639X5ph2 㶔dL//I\@_T:: ](X7uBG<ӿzׁ!N e "D?o34&t;;$嘋9JB)1 UMDq [C0A Aі)P[x?cAF쵹9!! FoF#Y5 DM+ 6X33dQ=gϪ׏Ύ-Fy4Խ'/k%]o`˴pEbf8!~ArYΡ,իf~^Q_w͂lݪT*5C yt!_>HL03&ѹ3{H(\-IG`llinl9pcƖG[oly,~TZV*j;,/AbIrd7P; ujtW&X]1h8mF.tpIZZ$bjt^O(*HIU߁) T9]Y-/c{0f`*g5 )5O)^/ϓx]rm6˵ʀ۫/yPP.mK|}G?%Ag]",e=5!_gO~:+<ɓZ>iZRjSC|t:Z[x\ws] `y`_ڟő_LoO_"媒R|3T軔I{ „[}ԹVc<,WaNt%`OȖaz/^Jb0Lϔ, SޥxgLܻNK:OO>Yq8Gɸ?nx9g_u^ZuyPwrѳh0C'"G̺qV~>=!F;Y?N?nu+ɆF SJF/Fd  |M&S~r%\@v-b ":L˵~S^lߜ21";`!˝"V Uq^UGIAS)$=xʣ%.%`ɅŰ^0C'eHE bDfxs!lw7i{5:I`뉹ѓC.݅>6]% ʹtS 0kr.a|NszKijm\L] O\늅Ctlv@_>>Nڽ8&;ѥ<Wٲc#ҳaMޏǫ: /Rr:U n?e+"5h3uڴlp8blTFɪV֐\q_4>eX^'i2z[Ez*SeR'LɴrBI8  rnȚ1M)JSѷ:gDfrOnŤ:F^JʷX)QdBY(;6ss]It֏1E:` hq 0AN}XP96ΰ"&2 Qg,C •` nǛ$ "w_0(]]Ph73<,Us*F:skvCbWa UiRPaU۪ B)0m̏I#Q@J/rH9VT',(aATD=`EIOkU$ TPC\86R4o..nSNneS5EWlq0蚻L%xM63TE @Iϲd_JdrlvZD#{,/@ 3S76ɂ<^ J 7^j'!Uw|9/F $;/ /B ֩)u5nBX+:^|(*/p^@" IݟPt8w._ʫ=/5W{#X__,>뫫t@)0CNZK(>Z]@_Q1;on/FsTtH8'ٟ5~lYMS6v8OGUy-6X []UT#٢^n1bQ8AFS:a0g:ڻpPy߉]ܬ@#hT5C&r"#`$x<#-Lt_ä{hĔ/Axm,X`%2Dk3$alӪ}?`=~-YPUBTpc$?LISnvʕ̣Q݌5,ה 7_kL/Le}ynVϪ͉9bmj\XV'nPrF{~4x2KEE:3D4[?I*ꚼL ʥ(>HDN-/6L+۝ⴉa;toGTlZLjOg`JoЈ&E5u-}{ق5`$tݒPwI͢:XRT^`I EU5LY %9I8: #~wM?s>: тra6UhYRQ(G_!]݋~9-OVsGZ+X%V 4܏z2{00U/=52rxXpCdfDjlm!Zv1W{G l'erR/O,r8x}WobnM؆Y奼⇤ԭhe2f#PHhZRS9-`N=0 @rHܛS.=CAY)ʎ awg~o7޽s.L37g4ep `n,tڔ~čp: 7aBN<`7 @ Ƽ 6]x\}mx[o"f,f { t(bAdZC^D( BN, Z+>sAL]&b>x޸pXX *]yDdM~b{bω؆x4O~vt}$sV|΁mu`s'1 R1BsRZkis|J~fZ{6}( e( ^VPm +7/ #/ԼNVDF];6C&e&%&d怵L=/xKI:= sZ2-@*]?e%6YJ~4@UR,{q'=_yhءzJT@Ee5gx#jwȢ':ωm*JKM/J)%ЊU=NK1 RKHȆ?3. Ub߿gѡ47)'<559Z^͔ZҵԒgok-HRد4 #;яvCW4Ύ wxAO1$9!b+xMo1 WRwNP!TU"$:0IV¶[\؎휾loV§ǯ DFϦ7Wp]Ux0fXk٭W90Yxgl~78elB JsZi VjeکFm?~s@3ѮdcӁyP&xDe=l8&NqhӕS1yO)rmfU]qfU2!yҼ11ɗw7wW†Tb IC,}Hs&͖D6#8[-ۦ@roNj'bOM.41#L7?IlP i'WxSO0И*&X؀jc?!Ǿ&^۳Bw!](Hj߽eE^h 86lLO~s-F6p|4.p#:ee܆>So.~Ѿ&P1v\X31j[3*&QW4!B@N.,8ڠ`IVP\a1vBwatL1i^ KEXrQ|*\YI/@Ӽ\Gqh;Aj tCPkԀ8oe"ڒB&@LM@HwH0.$89}?9>|yquzq2XgnӖh3(V %pn_ed '{S2h"ˤW_,#ЉeXkp:lcA Jޭe8EjWFFie={(}Hc)|q$mb_M-"]+xwb& 7 6?\M./ddfYr00tm[2cAm֨~xȲi|]ǃ>.!_!$ B۽^w]V[մWϒo($cjbؕ$xQJ1}nblE!,KD(X(dfk.~bAԗ3s2h85rq$Q[jG9Ŝ'1o W¡ ۦ*J dʓq2:OAW*c :L0ei$%5m|}|Ai*kDP/׀fq' œ;5 ;^ #ߣTBިo]WEIgޑ4u&B:d=V:2<߷mU'1m*:SY)W6 ,6,q SikY}v M R"-x]RM0=ǿbC+li*!!$:dc{Qz6{yoo|·$jk:PC^×/ǕR'cώ.Fn,vxYq=Gcr*pS;!H J7qCoT d4À+ƨoG ' n*( ibY&b0 ljH%t;Gѩ)8ACNCX+fܚ31`9=:؈B#3IAHu%Y Rإ0TM4t<-@ʅ4?+~~$Oo پ㎩e,sP3ڒh[+^ބX/;5qwNfyJy^!Z]7v4̤#dEj1<%ơh x340031QK,L/Je߮m.oQ囘pgS>o %x &%2٠<8#75W/A.YuO.^g.V9)@s~29kClfg[DCxXmoI ͋Nwv!A';F@+3ӳ=ؽW=9fyha6}mE͛%OX ndؼi]5jFpUm_T2)u)_Gf0HLL@RO\f!Iv[0TԺmm(]$0ʖjLVbԎ߭D/GC(ΖYJcz0S5J$2gc")M%3$YrƼYYMsWZH8g`4z~8'X`Tޟ4GDML`MS[{b:_.zK)-b"Ag2;[q'X;ǩ< Fi0?V8'cS~`D'4F;Ü}$l6b2.eU\'\a#βϢ,3Rҕ`Ň2HP!KC%R#UEj8~(y/uyO4x➗X}Bly4awbĕG_zxWn-uHїXۺxx(/,4Ӈ%M4cF_uvZcz7P)ȣv*b,=ձq/l7eQ皟5v"3TQsfyL>0֧dCvlV` q$B)އxl7Y3[+c~,П1; &3AKYX;M5Lm<*fwdt]ޛ z>]oM3m~[l>6 + ^xɹxWms6ιK;L2uc^3 ք '4`$/ Vg_H \\՛2& [3Jq 7q=lDwxx<$-I:19ɯ=~~o.` "g.q0?m"(}G,ľlsZ 3.<E<8Lt/n .l mwԫG[Kydzihke.?擗#k4\8b K-=[0FN i-cR&p `BO%fȞ#|q Oۉ7tyڨ(<7d;=DЋR_n9xv ?4|某c9g}etf|^L.f1lӰ%(iJ/v!>! > 2R*P,XJa 裐tI&'}lk.8w>g~t/a $^coi jbJ;st#5G,ռl&\ I,YWM!% N?VHĀv2VE/rTg֔$ea"Ml VC_;XNbh0Fck2饰H.Ӷ\d1Y'G7>TS[dލrHEz=Vj )tOaaGH*V [Fp9F]uv4QM(ԛm^C~jK.G4f>p`SD]A=7R.҅zmVϠUk.FYr c2{|)SxT7-qlHX!3Y a T@}(4~<#@O dpAZܦ $[lNPnBIH4lyb| N NώR}GtE-UGx2+ԵɚjA}$ }%yF/c]]`},ôH,vhE-PjRᤶ,c͡򠛽v S+IJSvA(pxY'Qs@NaאNW!DCEh = 1769135788 +0000 committer Li Wang 1769561296 +0800 ci: Add e2fsprogs package for CI test We should add e2fsprogs to ci env otherwise test cases which need tune2fs/dumpe2fs in ci will be skipped. For example following message: 2025-09-24T09:00:56.9304198Z tst_cmd.c:268: TCONF: Couldn't find 'tune2fs' in $PATH Signed-off-by: Wei Gao Reviewed-by: Petr Vorel Reviewed-by: Li Wang < (x}isFgWI%pT%u8)D"-+YplzU1ݳdE=Q6wjnhuzAMp]Wjg8TgX4Uga&:4\ TM: F ~0Tin$|nc(͒j*T0mĉŽ /&** Q&im~yw|ޅ0 tzણP)62 쩫[q @ ^ ڬ151' x:C5MtTPpx9E}9;9奺AVnQt;]BH<^ q$$™븉؄RPqAyh C8*zx[<уڍYÅY]9j[`+;#xП:tsKW4R?K`pAZתZ]IE 6p5vdKK./p)o7C@u4UQ/w^x5V#\_!'0pMl:Qit=2PK_1)R6nZE?a yi[!lBc ]d/| qÂq9-^(c9 !2h#=թ8֗EC osåOn95<˒΢P($ۆ2$I' j5)O@H3F1@'464a H}w3%y|2DmtD \lBCN<3Xfg ;d Nw<pv?`@ԯҬ7+8 J +]7bM8łyoc;bIƒJ[JVt?-xBlUɂ F`y ;n^<C+V$<n$ _>0{K[J8/0ͨ]d;85^?:T&O8cnp "EZX; tu3EApYh ]] ~p' 1)@;0&S `d H*~/ys8zOQ @7Ni㮞8ssn[!{>}8Sg;˔E!r+)XR<ޣ6c9@~Ͽs!9T' '*nfjAF|"l%T 5@@@8ĭvr}նW߼$aCvt "R[8Rz:52O*!ZSmn={}_F+0bي߼4imqqwJĞ_Ԟ!6OOJz$󋝋ˇuwbrd h-7YB;GLJH[Lx8:h//o}}Q?^`KLrUI~lRRkh{Ar-j4Vur^N tV?;9}﵂)ấjlx}Z|^zmRdP95B{Ohh#'{I00vvok\C ?iC/\YZ1T!pkP91 ;'ǵ~B@9gW_?)@=-kF< aA ;L`TspxpR;ҿД$(XUDZ ܓ<uX7;! Y, P~#Tj1h$óT~ݧR 'I}P*&Oߦ}nىB {Bm (?ˇmvi@QA titC+Dф( u$oLSc F_b&,!&& <ͬi7U-'RWۂfxFt Z# #N>jg~& k҆.~#GA ˲`B㒧 4F4# X@ Emot?<:b@Պ%h0Y7W1.EĢ-y$95|tC̘f/8Q:nxDǮhȥC N谧NGghal /c?>o&<ua|[VR.x(ꏕ/y\%N~@E‘<\ 2AKMFU6ǭXce#8 !AO$Ajǡ3^L$?l^qvypt4td@a(Տ CQTM%Vm>9]CvזWy\:̜9?Ӯ9<X#dRarin$էUH oE䴉VU%bS'Fo7bPLS 5 J+dB$1R ~=q0ef󩷆Bvu/|@!&&67=Q{֡4e>}L% #;z|E^J?M xecx]X*aL-oj_ѯU V}=?~_wg: wlyÝ$ lRp7T:z n™I]חJsn&6?PԾ >BNYvqFc=@EfӸ,)ㅷh@򏙥ͷlZjo=VxËͭ7T3Z]wN:f6RWn~zbu@Ft䍜H.sUOG:j'ד]u`05ƩSHڣ:O @& O4}O1A)rm?@`WXXms\oSkaRl1F=+o%McnG0䨷sxL!)!d9 t*GDgы. @5e1H,>O$^9ZMcV; DvC4]V _U,kF"TIf}`(`_UM~m]gjJ]4Ca~YT{MpJn!PvK4o`L-nXЃ BOMQ5t- DW'D}+Zk( 9Irz nm&m=Xag^Z_56tdK9yZ0&$KΨ?Մlmf:A@gߪ0ΔOHN&ԥN? A@%}kwϿ^*=ZT^5@zKJܼ_Md^\A"IL~K^45ZwXb J"iQ'WxFjn( $'ByL>Iͭ^tCpV$P)c!&r댴Jd׎%{4]8,u@whU F/r#uaӔp4D䶍xŖ,{hjQ%u' }$r:eۿ{rB %(Ƌ%F4 յ4( 4ǍzG8tO3ӀTġh+C=_ 6y坺߾؞^nrh?A 4R>`A.xx{&FtyQ[.[In0YiյhT` pS|O 'KlQW4}P4{O^O׾*ܤp4]$iZn쭶0@N:^7Փ1Tg~"lmJxS@APxPzNY<͸jc+4\9̻]H7H5妞8>,ξ;oy6E{w5Cݎ?W/ޟܽ`OiE閜\{r]u2(OP)rŨ3|Xc:- W ]K]Da _UA`eFI"FX-$ݦ;؉D SMBG6.&GY4ߨqmR *:E'?\wF CjşѯGM܂8(L&LKC8E:<[/j$/903X 0--;;\GaeyY[/XZY ֢{1,==IJ1ϛ;߬^}x2op90.6N!ΐ;!1gX%ngV8}Bݲr@|իͬվ2=! `n ^+SV󨚰?I(R:z- B0ߋB_\ dQVp0͎3Nf姼nܟW1PevJhUs>߲xc wtBZm)Lacug$-S5f2rmfGi#Oo/ZEU*]ViRYpJ\YE|Fܙ( |s=#m3#3N?<cl, g.zCe`T lϕ]RwzĹ QWJvbQK(י}ETi^HBUҬy[Yysس= 듉j &k8@d #7^=0MY f*&=µg% S|ߨsZ\M: ԤT6Zn]__wNJ0},&lx'HӧEpS=n>f>ïRՉ-| AzBL8?^@--/ŗP0 } `P()ܔqRp o7u;q@{&4ń ΏobsZ%׵0L9×46^[퉃vX C]r~w7cq3J3@9'Zy4˂TI\p)ΞY_&"\OJtpc%~)kIHB<G\'WJaI8AD#%b-(fr,-G/_]gtfG }I7 ,@ԩR `P,̛Uqοfn.tD՛_W+fT&,1sy^d(\+8fH%׫aj:Ysa==[PN @L``>:6[(Jm3}CnUH> -20 Щ-SE >3qfC'-pgV?=t| 08@v4cbQC\N\}kY4 U[2d4~kfI@#Ebҩ -5#v&LZƾ6S0N=j%]t;.`Bkt<_Hst2n4A>)RYGh}lU9J0-ļe Ϯ^tqiscZ{ZiH GnJ̻e6D,DŽԪt'-fap ?f[D;E)|8'Ãغ#' yS.!c`efʟN FZ0V4N 춢eDe)Iy{):*q{6n fV5BOͲ,oP-؃ -2~ OmVp_Vplrg{:e &tQ(_3;۠oXK?6 S,3hQ.oYl[rm&(=%RƓ(j %]J:~8M&B= s1nt&7Fc) N~`aY&'ad$کdjYʖ3ar=mI Ldm'pPhi]HKLdiIň: f u'v90h:Rx v'nzҁlIjb>h4 uV~:{sU&Y G*T. ], vD8[B_Y\'"^Ìl-Pqdф/ǨofI)]&Am [v a80jx&jk-]κlȹ5ÀnϓZɄet1&8MCO0ܵ\TD^gi6,I7llo3+sB@̑oKE&]kfcG3en( $(+ҿp]R+\U.ae5*G_w5. K[ēq~S7Őm-[ZB,$,m;t-UN %Ԥ{9OJ(` qpGyϥo6XjsZPV)/JYkpH ‘c49ߘa')tYF -,ј(DM|M"@+tOJƐ>o:B  {Zoզ_tde똛DTޛ)6q/G 9ڱxE dSRXd%YjJP6XxqK|A3kfrlY˫hޗ$oZlF2k6{{\! ZPg{r,hYTsqK-XT~8su<*9l9s_vr,6|z!c )m}XXb"*=h\I.*l$'oZPC[ZEa=Qp NݫB^WR @f2OFEIl FOEibw^KjT@R3\l|Sdec NT?3TySjl☜${=P] T/l6*).>eӫR]\]Oz0RA;qyjG[n+Bmy鈕`͜vKEz[甝lp9k3UZX~szt":R3V1瘕\~A-\B^N 3vtS1>9ʉKu0| gAU7vŶG4 9}q% ZaZIj6U֔G &Ԩ*UjXfÐ:8) -C P\ ]MutSg0xLA`ݻ9ɤ2*k-ctcFSwJU'6 jmyq~~@謌Ұ!  y׆=kti`edcMM:6+" 7u?؏ҨS73|xls`%v8Bxղtou5WOk 4̓b RMa{{ԉR۲y U(|eua#4t ot6%::6aFZ|9Ήp$Z-a9G1?8뚘 nɑX6Y^瘱' @Z wNI2;ȱ4vV;R=~V2`6a㛗-n oVfA&R/$ 1Q GႶ.HPUiZܴף.첄+/_‘vZ 4 +`iwޛq0F}zr.xZ΃R^Ӝԥq&Ae7G|;_$Yn(kت=a"EOls Ek]ܮ٪*$}^?un/r!P6g6DEMĿR=5$ʩΒ͇k !de 0VoMeXƶ~xVH] -JӸh{nػ-~4kɊk`6n%׳yZM{Z3͟ j]#sz0QBuxen;V[4 3v#-o4yac W,^_̾XI;}$演Βp-CÕ9cF_g BI9b@A6W6f{}_[$k@Sy".[;<>8q˞kl xt++مՔ*M?Q$. vˈ&"#6khmldUƴؒ^.6VFWjr%0-!#ë ƅڡ8 }Q!no2I A<隊1Z|*p;Rɣ[ёXMoUtw"N'3 HaӏY,`"ٿ](2Ek0Q՘SC̈́C2ّ VA?*bFLU;u.jנAد%u5|N_4_X,Q\ٜTB?Eᨾ9}wvI(7Qh7R\)?[.b$Hڋ`؜aXw@5G[NYDpx- E"S1Y1j2JX?W۹iM`h$@kȟl`@c3 SVoT&GftCۣK x4l~W+?>Q.kpԊ[HdiyTHgҿ7u}5 K][qfye~l]#>"17sg=K&-cg5-t$6d- 9=KWvDC\OZ.uSHǷ"y+QIqyg)* O ~%ɷ@IߘaC&J^W((9 GaRRȂmbӚBͫʚ8/*]a:ynH+vJewHԶZTrЀs?.I ٵ"0Vq]=-m<ن![M[-2͒--xw':~Fs<霏u]W4RrM;mݎe~;1BTmn]7'3<,6G'+-h2D PqƥlH֓ +@g($sh+;DɯJ6Xpx^lL\` `=9]'w» g[|`4VWN`-HD6(/AEoE7fŏr8;^P">l`pvQͶ2j&p`úuФ c* 㡂GTML"rJŎp@m5.!N%;d=T:ma@i%Os9;i6KIvusV0 /^9 $"xno|2Z_Xze F H UE/_ 3׀DՀK $i\ДnB-IlY{s0} #|,(˃ z4+a7H}ɕqŞ= i6)f̍R&q)2,^(% \Mӿ\w BL+N8A*epmR6 ħ=r6.>KN\̹Qͺ!->ڼZz#!lmyRvwz&-|^ ̐>6 K`$9.\a(y1~J0tK4#ߜ%RӆD?\ҚZ롶о^O3g;[fgSQ5 Ʒ't5K<\꺎H5~—naڄNElsS9 ܣqa _A)?-fj n#` ߪKCpMY%m+[q&g(CLb$[9f[o0;66|a-1;jviix=h7uJb/GA᳸B!Ky}m$toEV="MqC RD6Tm6: aI"=\mQ@ftW eMxJJ#YNɉsdbK1F! z2۶#A;nSIh N?E\$ G&6%p졕f@lpT1uH 98ŒԴ@= d$*iԢ4Zʸ.rhnGW@ mjWc: RK .C9874iKrs(C;2[5 .C@pDeY$o^}Eu7[ܽ9y,C{P5xߢ10\M3 ZX%KYԍm+q'M)\&DmT#CzRl~.$3h*""z3{'B-u2 E&R IGwp/L ,,gk۹ѓJ>& K\-}@oK\2׌y0E.6.5*@=}!x@k-O/> nM2<9&wQOdJ9H{ܫ9WH!)),8qfJ*}i2-<ld~Srɜ27?&oD/ 8cbc{cQt2i?_Pc>qӏRk^/YfNHT\' 2FTRo-`$/l;n{1& ҒL/6 ~4βxl=^̡ 1 @ {4׋qajsArSq ›t3y"u1ȱNӌNt&8xuH}[?~~ens}%^͚K<D]atfDli2^8I6ӽRí͗6mȩ0QZKRNN'߱sdK>yLS0//~nA . ,vr %Нy 13(UK\oJ<!ʯa&GJq7txC]ZkMWtv/r9&Dg·W!2)\"oK3]欏ݲ +^KRq*\sS6(LswթK)7MI[L@E¦gnDnBZ0-7zxNS 4a:abu>=V*aMÝ07[ifjnG…Or욵Ѷ.Cp m`\7`^?lt=d\2o&=;gzuR$ilLY6#EÕQ\_gs17ꤳszJk0g"`kg1]D4ʤnJ8|WRY&N8U{r G 3oD˥B轴z8^]ʻ.y=#Up$ާD u*ј"~{꒐mrDy .'-ri, i9.\­U^X ̕5T1OvTX>EfQĆ:=+~IMT*2 [ek}܋^cgk/8nn)yD{\{i dT2b}訩kL" T%v#*L':Ŀ5(3iSTǺ>ⴥi&ehm$hF?/%EV&'$I뱣N̬ 'Z 3cPSd׌ّMҋ5"'U˵mگcI54_H&LC-)7\&օbQ5ʉMk1c /Ouce f=K-b{eJj:#3_KrZ[u9P 3pn8rrC_M,Jl)27U-7x!_u.,6 `qbps|v^4YWiMdUwoԹ[|<G{Ogi]{4iyw[-[\BfZXؾU5#‚ {zm{NRmprra3ӌV`SI _sL^9py`yRa +ښ"F{tEih_Ty{ }r3Eqe{ouvKz~׸$mFa9/Bڀ@{5׷*}ޡ% o?1ϝtv2LM @&`4CU^B*!|+ 3D CR~mmTc::;GR|:6Q`erGy/KnA&uh:˺RSqLHh:tutxҁr۹T8:0blnfMoJI$t ˯Pſ548&)K:aUD !Sk/Ve>Қc}ѠA?YꤩŠpqQ߁3s/ u|h5 +r~Xs)ӴR7Dgqed  )ϸzr:#ϐܕ]F-~$XURXx8v('VGg]Lm! iF%M溭9Uzt{>m+b€٨)% 1x>_dTȆ3Ot_Wd)?' (gvp8RQw)zڙV>k=}vjryb('+ Qw4/Ee% ,[LN/t9 i!DyطQCϯf:7ESR>s2[Q f ե^HnfNXX)OWm6)'5Uk mDcAMYӘq[_fL~9;QwsgNzY2N$%WL2f&?9ӷ$Iƫ`.@k xCl˼a}4r nI"gh% jxƊRٛ0~8:PZ/xκigA+CQ6[T|#Ԃ1! Ezx(Dj0uNB@N4,H=,lj'o# X GRd?7uX4xr3Q?—(vK!!b)qA~:43Ƕb[i|AŠIuX\ʜgXznܼSZDz-$hDž_/ZzۄʗP62WE;JQPκ,7(u , vi҅K˻>,3OT]gyd.c8v4k.PnXE=>gi7s|1g-nƙowV_sݴppUqvsrsZRgty6.yt,ʓD9;S7qg߂)^oޫOBзɟvy蒂$aM qAP>a葭ת^ш4W:7$i9|Zâ}} ^E1:_8  VJB _ 8hMXId&͚JWz0݄2M&WK2(54e DzY+s!E՞T ?è'7;ል`㺫5zb&}')3u>>yOAk&3 &l u1[NaO}@\7ZOWkNƒtbJtRG,m߬*&9xxi&?»ӝ Z\!3 Xhe3]lh5E\l ѺkjїcI8{foǡdNg% ]aZl4%?|F=qن>X b; ҍ;;rs5 ǭnL[A'e0i߿A*-w %TA6v=!;Ӂ ]s+ޫ+.n*MՙuAԣ2hӾj/;SE[u meۜW:f ;Uoʻ(vW.ovhkeZ-C1%$NxgƉPcg2;|WE\vv?< yN5;^U؂I@&@s<@'n|ي, .ca@B yMO` ]>L&.Ӄ*v/ =ohaagZqPNn$R?'OD~<J٢9"‡RS;R+WQq[*%M`UqE\~[V~/^S) -iw-o=1_СKM*KCI.Q 68vR)< 8RqFK/,S;[gpR _M] K+Gjq|pK .³].Zw%%'TKnM4j6^% &-a} f|@g`KO6*s/9b\Qw~vw|8/%a=|r-4%ѫ.Щ-Wg4RW([&&AUh .0t,xE\KЊin./_%?<{g\ҏv+-,=4]C(jBWRF)[a)%)0/K0d() ,>ƙ.y2.cazYBJiu3-c!![RkUx@<٬"3>p6ȌNwSdF?l&wɌ.urNkX NsRnxmZtyOƔЧ}l#{)ߵt$'E * ?_q}<|^0vQ*Ujb|v]5: mBCW'è4.I5xHrn/7 `L0}\(‡#BG KR]΋[ZmvICGh}jG_YYomZl~WʚYɕNw7&>k'/@yoȦե}\jƏOs8͛ON=/*n:9_ʝ3;hzѴsSĒ#@xwE׻ /%^|0X st'7'F!(@`+ᅢḃn"$[0(!D8c5p_s*Iv QP[]ϟ3%l+~b0Tyb1g=R73?w, Hz sW0ΗlW/%zwɖu^%q76٠z12Ivޡi9TgؖR|9#Qd=9&f%0X JI RtAsro+CO##w9*n]vn!^GGs]gg񸅾b3k!A-B:g:?\ ܺn*!쟈Ronx340031QK,L/Je熺CKiV\(7MNMIeMȦaMt@$e0p*ycTr߂o7O >)/,M-M50KfO#uM}᪤GX%|ޤyBGQUU]RSLVߛ8o:kf*M}})$:>ӛ3Q U)Pռ[D6$Fs2Z)Z1*3 xymyYϦ?gʱ3{Od1k<_R}m/m t1 Lkf,{T`C"Ēr$|ῘkdZg[L>Mpd [l^tS 5hܣ" cLl15StB d}(K4P& cU<5lp"ȶ ,%:CᕘS,yF{T`{](T{RSETHH&,/{W:ۘ*TIX6Ls8ɏ91ʴE':mө5eX)U:Fñu?Ԣ Pw3! +{g̯IvovRmI0i ëa+LH#:%*1a_Sqf߆^źʸ3#L{#(h 9]nclPj-ύk[jst? T.nXZvw-2(9:moth&c@*2H܋R|*{YN\=w\?s n9%+Xgj ՎriOȥl7 5ZNUKx6F[5C@JH\ _\jʃ#@שMn`ޤ;ܹ%;Ga|~gT2z!4D :\-y[>!-BRj^DR TA,ȠUPqPbEwyyA%/cF9 j'HxҫF  .RX.DI)89B*9  I@9(,yӂE(28^BDv&7n޿J2H aǣ&̲Yٕc]o?C3mб}5:̿@}t MU5]UUt\^lNf!n5.&57x_R5^&%'I~+6(\kgR.9TfQmK##ް.;VLK40BMM'7񮌒KXff>ZPyƲOq\2iŚ礲|*;Un+vl^@\m%| C6 YsDV<vF!P9G7ǺQ B3K^H},RU5sh9Vt tN}B4N.muxpH ' (:,јv} ULto/Ao:g`Ἴy5r7}gţLŌ V2>4,AgszsBdY?q,Crv{_7~-RPˮ)/\PmHWg+I Y>Ȭ.&aZDD%GA*ʬdGZ<>n~9 {|bC9BʖA5\=dw*m⚮a?O?>|S:\MMEF#^}=;T/P?OmFQa]>q-o뿈lL x]+. x/u:2&;vM7w\mJ{Ȑ1>RJ|tj:855E_!tr+UR-[#;b)ʗsÓY6 p0:γޗ ïzu 9ĽFEMgu֒rŒ3$2 pDkx340031QK,L/Jeu$~(O!DobvjZfN*͏VX+eS/TMf~rI^2C7BgVO EF@Eu_5nYwϦ6gGQd T5&1W~Hߜ<E PKꪂ"7/xRev(Ln;;mIG?')(2*sV\!7mzn^Ul3*fIDَ= 6$nC,2~yzF-KwId(*J\q4>ӓgL,lh[ɗf.}>?fTpO0iY܃L1&}Ǫ]=AN{|D OU1(&v="v;B-aU g, #OWߟx36Eyox3M1J9^r}ܮG,!p\|M4pJTKzW<~vfkNjχ䵼4'?XᾫdRKRy{AGBi~6taXh=9ty0vF-M^$pq?JPr]+n/SoݹmS\JL4=;yB 8麩w,^Lͥ`=X[ml[V٨ӏ2NgDMe$'X0@u:2;ɃƎNssѻvt@c!quкi1oyDW m]OVJTٶ](l^x}Nx?[` eQU<}Y\uMz7 &C=doA7.^x}S=/fϸ/ __Վ+_MYe*r%Vé^|5ivKT2^nT??~7/^Ϝ5XBR"ѷQ/]Jy¢'-;&ukXS/Y)K۴(s9,JAA:ܽzź[Mtocӻmgv %@u榦 %%ຄiBou?(j~x; VkSUt0 h +mk LDRγ* XxλwC3Htvš% dWxrLatFV ƔaxTۮH}+*Grrn *L ,.rݓdjbc,! `D 3PaA-z/P\ 0碰8Bq(2 i|b6bDO8onq4Y `܂I34MDuYf}i -i.K%k ʖp ,I"I2ӴUԖ0se^mb"ouQ$d$64K?&ڝC]>]6t佱:磇݊eT1.Q;&fzGo`46(-'0W];$=ߘ|}kNkWpԖ\ebxd%6A]InW%-e\W lD 7.9T<6y1R%NuyXrIZ odթZ+%e-cnI:z~{%shwO>!" >&ͪUbW#z~uB&p>ۄ"~"8ξy^:M#PQ]Y2je'tGۯ: bfrRWc*i){q}$tbY>}.^ as)xy{Q-|UK9W˯T#;4yYeI58~q#[o$x8q;M|2Jr S,0#(GVa#BuqjrIf~^~5HV.QY] Z  x[*Qf;AbzUBqIQrnfe|ҼT #B¬Lyx 'Mv'wӺxZwF ń;e7vm-eYqweZHT#$wF//I@}kvMFg4;'XΥh1[Ja/&Fjr/>}#D+ <.{c23y5O"$c{HQ5(G66R qW2lZ\j[H3LT`t~re$I).<9XzĚ\$5"Y|1$ 5ecd;}9=spPk= [|!tjQl`avsjkp@Hp@z!*EDFb"*f(Cv+"y^@$"5Gr ĝa he h}e% Q j4Qp]0rQ]$OʂW6Ii_^O.Ǡ! ޠkjprrЩgkǽ:T*WD+fUϰO=_e]ކK[ /mE!@&8h[9sI-[zZK_y 9 ~3g`s=n&F"ca}? NhcӑӛNWS۹^M3|"Y:lQp@R}AaB1AL LT؋nwwY>^T"19H7l  =8~3+*,A耐ix~ـ=5*]qǿo07;si 52S5fIOX}i 3oq/c\z.yarruzjO&rxd$`VNν?| ̒GtO[T`$3ھ5N:^00QADF ye;<יVDoWZvvauҪO:roRN,ch G%kC"eW7̦F׬0 NN~ŇѸ7  zv5CR &8J1z:؈` T<ղW`EmRA;Ʋ=lĒ _ OKOL$F60 .r>VVxD#RY]IsixA32i15t>A:h\3抮b~3p0Of]+W -2J:nmW~axD yvi!K.BB)jM!NPR1{g_zܟڍGS@:2#𤓭.܂n8:e+}Cs@9|_'Ȧc*SXpJc0R34%.r,J v{Z;L4}PdErH+Z7 Pš~BpM7_]lFn[s ^N 2xQtGPR3R^6{dYe#͎^tx5lY\+ z)D=q҃äwV|^NVBЁTvUu?, ;8Xr]ϑ}f9ӭ5NӫIy˕D6gG%*{PryygƌmsV=M&Espb߅=Eڼ%9*p{bZJhM}v釢ip NM5}tQzэF}Hj@O9Q*4։]itIKŗ˵o @\Hl_kt_{{}p`hW DxF Vxe"Hߎ~m"ɦL{Q(x[͸q9gTl;h֒1Y xۤCk{&ނT #ߘl xeepQא~M-7yCF{xKO*=O¨l x340031QK,L/JeB~}S =1ȫXBT&fe2ɾTzTU@UnrX>Dj)R9QUUb7X{] R=v>EUe RS|+ ﾿$vu2 z]0mBFT}^)kgDױz:?bZJa@awk?ڙ֭(_K+x[DZcC#AbzUBjEjrYHƫL Lx[ûw #AbzUBjEjrYd_Dt'x; ~L| #AbzUBjEjrYf)e\ >1x{g#AbzUBjEjrYfkF-V 3 x[ijg5#AbzUBjEjrYf{,B r xkp 1=*!"5,UHs㩝, x*[|#_AbzUBf~rIT.W#x7oB _AbzUBf~rIƞN6v kx;sgB _AbzUBf~rIƞݬ 3x{sB _AbzUBf~rIƞ8? Nx{sbT #͍-Xl +x.Wj$T #͍ x{IuB_AbzUBf~rIƮ$! ax,StLT #͍ ~h /x{{LT #͍ }X wx/~T|LT #͍  :rx{}lT #͍ Dx{)^zLT #͍ =x Gx*p[`LT #͍ #  xkU<_AbzUBf~rIghBe2&xo=T #͍*c H~x/Td=T #͍,9 x[V}cT #͍2 mV$ix)7_n#_AbzUBf~rIfFN>z,x{Yi=T #͍ Fx{sB?_AbzUBf~rI,2 phx[ͻwB?_AbzUBf~rI"lz+xǶmԣ3JXTsey \x ioTDs%EO}%::x%FvFTĔ̼l #ļXqi[ K3n٢ů͓jIPM؛;3|tvPw^sugBxK1@V 8'WaqB/ΠOI\vko+ Ti΁4?dvU*ud I 㗻Xe&/k0SOUWiR!ffxVQs8~_@i򐤙Mfh€]/*3ǒCi~ v o?~Z-02J+# | ~eW=e*3͠#dK3%H733 `~OBi>Pȣ o#><8 f4wЮcFQek"NuKB,dT¦kp$uAحϊ']}nϊC=ȾK.khFr՞Vզc&KlձMM3_7׽0~ÿoI[L͂?cLDfj-Ăj4 :#.)7oZt5o?^ ?wuGQ5~ b=E05.MT:ӣ/{UIt=/GGO*8=>cuAQn's=_+%A WKSO?t:.dZ K%er >? !(˳mo%&%N|`+Zp90x>ޙ#4XZ%4m;Z#Ev5Bktlc~c6%t^O!l%"Tyت1p :,rh1 S>b?}vv>pH ŊPfҪx340031QK,L/JerKz雟{771;5-3'A'NU瞻fxbb[fUTU@U!O¯Qg<9ZUoTU&@Uwj|ՒtGy _/K,`X+sҞ%amQ ?ep=gx340031QK,L/JeX>OG/^W\;vw!DobvjZfN*|ex~[ K)N-),10Kfl\1ٳEy-ތ #b}ggkzmamUKX)-_((OxmTn@}bJl./ I-Amzg+qSpQ2s朙Z.cF(b[0*zp=]mgN#EjЀ,/{LX)(B2NIDh;M<˄1 Q)g%;kULIYHꐿCLjT$T+\J(lEg$UPBonw"eKAR%(M GIZU$CsPՔT.$5Ӕ [B$=dq,}mkT 6&^No\)=e,'*آ w .#nb# EPɖ C<#pC(b_53cC¹؝:`CSj䍛PYBi\ m51 AU!8|Au];vFmϼ2Ɋ4Ef]1' U%6u\-JQ=]FRR!!"py$*Fr|E⏮ f۵|u7ڦ|}\EQ:'\Fϧ\_}}?;u*Ȱb/]د"~j7u}2YC:M[Gx5PAbzUBqjIQNfnffNO xnxTF9dUtN!IQ9U%m#ǵװYur(ڎJo޼y9OP?K^$ʏ\K-L7ALibtA1-s0)En0,=|2z@{&bHLE"YY-y;"cJD^>[1WĠG()%pEY!d{?ysem,a>_yU2U29ɹ(LZHV֦|\,Þb=,k>'T(6N2J5K`]Vq jp/]z%)0]7,˔/dT@nJ}PZ6r5왿mR 7XPr{jWs ݥ[C(qa n#p{D3_) )#{WLֱ)|fg)SRuuɮ=u`:-ĉ5{ȱrv]* '\*b K;ytN'y$s$a,EJED4?۩_Fr2*жڽFtTi qapW r:R ,B4GuJaU-<,9|z WBۆ)03h7H#Or^g.JƊ\e &7>A~ޡOc *"(ՌL]^OADS~5YL[s]SZՁ7AX9sQemFy hFcj=pAIy:jN_Obs7]PռyF6o쎧1LVɻh=3@+2W<9hsɢC}2ux{wTԒ #͍' ]x}Tof "ad&%u5:M*U0XGk;:{!~*Rϰ$PX_]0pU=(p V˜JpqvgQ8G޵nQ@룡F#fĺ C?Iw>oY4I{vE .WIyqU#ՅZ) o΂r,A찮TI(GHV,2&AyBd|ʴhuY9LzR55cOWj.t4;y45%RxT$ձk{a,++X,&Fc/N`>pyad0ms<vTFFaOތ`pAR dEcl`4%>1%̊M4Yu־0]cx 3$E{WMQSa8y)F۫׼0 krksa\$`Ŏ `m (<)ʷlXVŕbKm]?-n ']OmL_')RiUT̑7狹"H ~E4MJ(2 UViQ>J.uk#K$q9N aebqL:^}89{#_m O]!=x5ihV})ӵM4&O!iFn4 f|gYwq8w+tt Xf*. 6âցwJXxg& 8؊/#%G^cry<qvbj{͗+_q9x}{TԒ #͍{$X 8 x340031QK,L/JeliYdwXs6BT&fe2??74r}c\sꇪ)/+10Kf}.ov%jN{UPի7]KR- taxf5*c(C{XY l[' gHTx˱c(#AbzUBin~i^f9Lh [Rx;wo#AbzUBin~i^@FUtY:x1AbzUBin~i^fVFf5x8qBL+s,UoX> Nx(6U|UTҼ# #͉0&G3c 0CSAb)|Lz.x340031QK,L/Je?Z%_rRsBT&fe2InWYhfnvc@Քde%3>G͛!&AUeTe;:˚ qTҼ̼l #͍NjYq +$xw>TҼ̼l #͍uj \x#$ 1=*4/'3/[Hs3NF qexκu3#AbzUBi^Nf^fՌ5x+*'%mBNӚ:rg]c Vgx[ Lx*`AbzUBi^Nf^vbf: jx6],8,(qp<$p{E o"uiox9@AbzUBi^qFbQdVF] 6>?x[˵kTҼĢT #͍Y sx+-(6T97o ^& x340031QMNMIe`k~pCW!tϬ0I,N,Ȍ70KfX#Աon翬k+Uw7C *#*E>^r7PUU_X{w۷o)UZR7qɪ- [t櫸Pyf5[ٲ"s;\Km$d5 .n^yŷw nlxXsH>,u]q% fSBH#T6뙑;xr``lx{a<|H~Q`/NBG򴾿[g"Nip7r ?m CdK{Z#Gq<Aą`wJӤ݂C:4Kgxφρ[udLr!l<]=zQw0 ڰ2aS)q?svh"v,9Usg3 SYj-25?fAx8i 6-搪I`:f |`3g&%8aL AD~R݋ ,!X)']H+0M%DDwah%4LReF05YNg1|[G1Y*\8' $ai+m̅3Gh (HqZqL.f qB h[{ =)EXW! !E㦱XMpo _3A$s$x+%|F>@TME+>KT>@Wx,wq"UIt")JԼx"Kt ȴ T2+ KCꉷэMǹșA_R?OhG؜;a@~fgo#.¥w˭Ҧ؞6u')=c{pZsQ㹭-^^VyArB^+EUd^y_vC-ZK54 5#' K Z2kX$mZl' II3Ppe2\NsZe@#radmd{4/c“8B؉C)wZO *vVₙ^MR:g67 J%q<=^tyyՉ"唕 K)$?"[!yF^51ɩ]۔yV5(ךud`_viKII@+5U\ٽht~kjkұZ;qM/<-|m6I{&3b9ys}*1-[IY͊~l+ Ml3%ze>*f8N&2"-),[+X++՗b&yq=?2T2q&&N3Z,Rb_=֫P:G?(m9Q 3pե{wpcTA2iSFغɢzլ~Cv\;TO3+A 4gnవ$Hg!w;\Uy;rN0X`5P@RVŖxF1w{ף:S&QTk55:̾2TM54,<s?p=bMcX{Jx%BN/JzT)WH{rqʐol,ro'6A[dP>Po:=Eřҏj +]Ҵ>(W< ]*݁FT zٕtw̤}Zmf }SyRWUܩ%Z`;5*[*0aRQ }ax0YI@imͫ33&{Ϟqm`,l& ]0HO<;ҩbL. Gv-)8SS~[=f&*{[;nWI}/@K}HמQYr'Tr3)Vת[NGp zz20j0V;Wߒ-̌\89bb n0<NBi2I,Kٓu[mo޺ w0܉ʜPЩ(bEfUʴ7y'2?V|UϺs4VQ#iÒDFņVv݈v;A{ҍIW0zxo~vF Gx;N$z"CP$JHlktY4<zz UKXx6rT(WrCt!(.64K[ Lh){TcuR8eHxKϪHޓ36 LETuǥ|w֓I6TR7Sc1HSbmS )#[B1DbxnY A[$=~`3g !DR9 l&H"G%z L5?o !!um[#c%)?CMmzru P>8"ˊ*ˣQ뺭4cҒhUx߈6ՉRt4/^_[\I<`2NoA;U{]،R'3;<]ywVdf;=V4yl%$/j࿙(@3js# +9`<f]e+'ٲn4 /7m(bf&cxdj/WNC)$i+d[`V%`uy3fK#Du"cC>^,W-3$^?CV ۤmA &]/lRM4f#T{3zRyg.N?*/+)Czw1OFq:\-K:m*Pd ]6[\]|l1=E~EП" W[z_GZxo8a sI+WѫHz*[,{)@JI.eX4DZːW )SbG؊I*/}Ar%37LRH<ؓq{+ܗ6+5vJ*Atzv|=_,8,=Xzݮ _)TѠ:f{@a~^1*[z|t%dJVP]/VnJÑz*m3pVTZԗI\JF3:8jti 5m ZgeOniX/_/tq}y~-b*DPXNMu!œr<kT߽ S!^Sh|tqY*A cɇNwBm/ 7|HU6TŜJ;TBܚ4~W&YV(B)!|B0v e{f#!=+4N:V0pvTx0R&H_h᧘ C% MrPbL3 cmBJʶ XPh#uh$qd"ʼT&zX*+"'Xs-4 a!Э ~Wgd~Ti2go$gGl!#z>:*Syjc (z:w#+Vq#ߒS*Zi:"MpoH\i||?ܐX mBe& fp ]ޝ:?\5t-D4De@h^V*GۿR!M#s`kX?t!<&PfNQ@Kʋ4ߑvòT;,!. AbЄGbPB /aW-cE4^NR%ڨnxe&(Wfa,t=.bd 8; {>qcsd(D^h.^rpAvlIi> ␉:N܇ʪyjG|"";=ΙR?|L0egЍ]4p{VԨ乵u[=3U8b&@P^6Spf<9~+խ!TQ5^vⶐ'!%QёB rM m7tcJ0 Li>iȞZrqs H;(D5 05=s!mՠinl )Gvʪvح cD+nϞeW2I]2zl,Jwcdi76 =5$['R_'_pp<[-J+Q "h3 OIWS}>^fVDDd=I])YzH>O\R'eb ? uYTasn̒ 19)cܕ678WX5Jb^-Ӈg5=Zf -wTsɎ pynEy֘bXމy#*hHn"2+U1}~!ƎW{4޵&9>B!XEB$U3,6EJD=Uo=qg<3YMn }T9$B ꖔVxը)q܎d_|V9LUٻdxYms8l Mn<]];9L;^jg( "3p・* H_du}q;eL}x4=#׳ Ni=uIL1 N $oONJ|?W7d6P!8B# \F_<6 <ˇ^=. ŒSFxL4h2R'|z))bƨ9̇!HJ>%fq{7$(LhVP5ۺ>FӔ5k6D!˿#'p/|{e;salj8dnٳ3Y^,] I)SFގOFC%ܙ^:`JQp:r>1I S+stV-bd/4 pNqlm7>LYc4ùQo%/\0xǒv3#-ϣr!Fא;AGŴz<>#J$04݆ v2 } NEOIEOy殩a1Y@̰>q9lλwa W.B/Tġļt#݃M>yO3/ V]A,{w!Կ(胃EdFJ t;N^8)anhs O{wV ]M]|j@%pͻWx#Opv #5=8a2>,fad[*4M*T}W. &tڵPKiD\"AQ-uw[)zVm]NkYҌԌ*0c?>"s~6qX=roC qI@ޱ~؝̭nSpe1Կ@ !pȿsR~~JM` 6a#JB"pP.òBBn~.4YL/t9dMh<|Ysت̽tt[a&/:ux_~EM)!cs>d7"|=LAY :NBZu€;_?݋a(6lƺykY< ƨ sަs"=PrU8E4>rqE: `I'G7 ;&'wLb~$u?ÐWov?KS2Q0:njx0Q" C>,lq7 O4q srm}ȟeV䫈ooJ©'р8#98s5%f1&H28A7SюL0 '80N)y/Y0ta ]IMFp Nҝ:-|kTWSZmNk(hdz>k}E\ *xD֮z[Va<S"XI$$4VKRfUOLn{ Wo;b0c|U=x7 z+d|t..~Wlc[AqRtcjmj/C9 G`\BoPˏ:DJTULՐ\Rx/PUF##/#Cp;9(qk{d@E<Bz\A[6qV>y5lg6]ּ]X"%Yc#Q= /d3lJCg0`M>^/0cђiN *nV57#@zbCa7^ JhZc`#UY *!x 䴏o &*heq%^03<дwR ջv֮jErm+rtP0#򸰖lw E_qS|.K*S/TPpʰڨTҾ.u]^YhOEq!v$3'-yw ߃RA% {d/7АC>_z GLZ|., OI<\2 v8-s9Q"Кչ$3JeSxmS]o@|ƿbEԎ2J*i*$A@]kh^VD@吢|a5_ݐȬ12iYdLs5e be~B@tY'\i!|#E]Zu^;ͳ%}Z@"8`?ss{sDzȟ!lrNw2-+ڃ.ԕPZ!pͣ@C4A;+ >f՘ `ͧb?AUԂS瘲t&cw'sF={R]2<e'm=8k-g ŋs֮8=W*v0P|2͈V{_ӽWi4Bu!{#C?)Rn(pK_*fZT3s}tZT@J5 dyNxVmoFF&Bhj%$GMS[YMv$w8){晙g]c>k ./gWZ%i.c:Υ5~ ӟvku`n VAQ rƃ~-\4d}]U9Td(X_Yf28N2.#R JD&˘G0LGdO8ypv^^,N%^+4P.TrP\{ o[4W#x ZYq1Yvo73N/8sѽcϱJg9B9ݛĵJϬ^'Bլ" [c4$QM!~|;eRcKiUz+88R.1wdgȔ—2F;?҅V}PVFwNq]xk(CP x6r{'Z^ AK呆K[ Lh){TcuR/xZ:֨x9/t*Q x340031QK,L/Jep09rk[/V wbQ囘ʐ-Or? I&ʹ]Л$i/Qɇ:C4pV,q2 :JwRfQ{ѩSٽ iaY"0#AXl +B7Ma LѠ" ausV䪛wO3[xNJw)?LYEEՙXH֘l ,Rl2 j)t'48!8gi;2IsX.TRr)HTO rзƔ 9er$7Z{:u?_,.r)Gw:qfB̊% v$M/GD%s&J5?Pl /HE;!-Dĩb\,M yb12+0_%?|Gm;쫝HN)>D3޵Nhڃp{6wmyO,!pѸ\1JH-3ŅR Л`eI,8b F$-C PxO~{IHkW\:qPc\"6؇ ) R/ 5 jSg0UkJQ1N޸-'𻪄kE S R|5-W4 7ԃw0OA!dtي 72E.|f 5Eq;o\V}6"ˈ]RgY:^(֒nTK{G'lqh5[rrL%͘1$:s%uq@`4Hf*wNP b0tg3x ~w0$3phG;[tO9D&4.#zV7',H+u6guk Nox340031QMNMIeؼ;jE 5>f[7BIArf|vjQ^j=Gr9DOtI[T1$5,{{D<&N -7x340031QK,L/JeXffZ7GK !|S2sRI'VX USR̰T9ݔաϛyO &NxuSn@} }AHTE4&@BԠ4*dlؑwE# '| kw̙9g/}=T'd%K(x^9mBse%A\d,yYl7eI*onuUZiS8` sm` n{w6 CfDw=q[w=}{'•%cmڳfC~+%!ԚV̇!}ǩ8za`:&E\G-TE꫔euwZlJhO Y(-҄,b A(͠PF4-h:z CȸSPE*HtF~1T"MZomw AA!o]\61}{SDv6*XݸF+(N=ki)r-Uf2! _wzhө}DaS/NhM3ۆDA'B3o?gF pI?*̰h(,;ĠՈBٞowO`n,p=y,Pcœ1;"* 2MxaXߤ{%S ZVu&Y4렸Ӑmw}mA&FrSw<\:XyFP䚺/)n_g1 ߼(hspnI䳹)~E:,}U0B0n Eo+_xrfcvJMZ1d rMx}TIV +βU.S V!CHnT 0 ïo{]UUee[BI,;^@T̰ J"(IX8L.a3x-P1E1wB wrs B BiDD1o{׶ֽsxeXxl(b`o'4~w 8벡/hGslx?P!KU-(Ǜx3COnkU12N3ŅmBΣ3(IX8=EX;tPJ0^\Pb{NewpiMdrn.r|| y9vN1UR#PZ^٬J9@?y4м&M^KsE*$2J_:t#B>܌[N3+ :x{UWS!wkrrh 0Ӌss)\:SU${Pze'婥$ ,ЮqczXΉJtn.t納 vw`ᄈ7Q[Sm H >8_*"L ^ǎ za5FUR8K=;JaOJm\^jcuoRKl# pw^{ ;ycX t˶GdJ^JܸWNyaWuZ-dN38w-7Ӟ*Eg cڻV-ɑv5\F)]bd%˛kdj8z BSh6 !mG6iq#^'ɪ/Y ,xN2eÊ9M4) y3<0UG__qT`8+A\r/|ۆb Q#C qAE[зx?AIxΣV<ݣ $ 6dD ̳1Owe6%U騤ԙGA0dD$=1LJ2 e,ɓ@R>%>a;Ҕ┧$CfEӄO&O`2\8֍L{Hx8AtMفedyO(~QVu ]u՗c3(O8+HczhiR[;ĵ~yElo6X>HNm5+!|-7]hfCY<<㍤ S*(/Œ0,}ƌmỷoe]:.VsZT=JIiAm=Ő)GN%^QksqGRە2c Y0BsW&&S[jst}52P-"JkC* -k{V&ŕ7-=ڃuaKe닊Lq~uY-N7_wutb8KU&ANcFl=zNjGNN<(+_D 崕ԍ)Q)%vӸ\gH&yKM;'9t9GeQ+^;#|IYR0 tV7`nSkk_ _ qi#7)E lfMǛƩĻìDeQ,28C\ZD(㑓0pb$ S<)ԙK5q/BGrT# _$fp{fn_L$;ҿNP[5QL`%'Z0j7v (oa˲o%uTxTˎF1ƣ$  ͈G2fs7>TuȀHcA28S.6|RH.cL@T % ^21H`#1>QӥD2FRtp@ W' %(/yfXiJB(C9x{U76p QA JTEQWB֥oԘ7'ԢɁ+ڏ}-żUǺ@zvjq$E,}i.؛9iOeY?jNSWuN6WQ93-8x⤯nלp0(ԥEZ <ϭ-n5Kv9'>գNS$4$U4)37+L(Ԇ"6UxZD77sr_ +amnT7(^$ dB=VPG<*9,i 3hu@HUDW 쩰"vWx-H9?ʁ6-hzf6F49uݝM̩7IwE0wtm^|%MA%c4]KQF`0x?(e hhQ@<vDӄ^r8P?Tj@a2 _Q/ǿlR mRƯ^@ ~(}-'Q̞Rx[6< Q[ ȍ !N$`¯/3Ǫ_,-{kKk!*HN ER,Re!+TA%Se]@(˓=m@AԔ\E\8WBU!W'ZEQeҞ^lmiQ~?v}>钤ixc1a%㘶`l@9wO ۥe97 {k+T*u-*m㺦*͑V~*,B^~kp: kcԯ8\TӝW^A}?~u{Y|ww=v$VDQ|Pz_Y~x=o˭)ϡڕ=֝q%̕;fCn;{W0 pV邰,L`<3WCAY/I,nn=nBɆ ,//-yvN^nfDJg^M:w4sď!1u-JQSou4C'jC[{g]nTGÞQH #N:TNHJ ҶDkq8#YVDZwtw{,,ԕ`>_߈OQ}=wz14"6 Pf9\UvY'qzP;|8֫+NZj$Ѱ 1w\Ivhѿ0x hz: *(QPr ~ؽ{3ÿUk% B@xG\9Ac$.bC( @6Ā AI(1J .,  ^!@NϴDm ?Z4+EAD^`FMH1F nW5(_i?~ / շ6l4fGL=7? @}SdYY򨦛Z?k8ЛJ,K\19xۭG[@}Nr֨A븪[ݍ2j13%85|KԶ4qov~`"%ͶYWx(Ֆݖ^S?f>ˠ)G7v\7_X=)׬ӻjihX`ח\:u!w?(u`*reR^zHfJ +Ev;=R/S] [:^){KTEnf I0s]H!VBIl5z*GMRc}ɜ)hׇ-Cw~DZsw)2tW`5ﹽسbTFXY=wwUҎ͆cQ>w;}Kimӌ*Ivd/X0 7Vk}M }{~::Ven|d7 ɇLklOZHTum]K[ӴFkE*!EKȻ^E^q\1{*>p&a&U/[c</,N[(rS6S3u毗'"s6wDt0 'yN֠* KAa T&O C* F'+a69LhUL9 %&DDiN%q9#PVL8dUK` 4DOl vIDy󪹑P0AKY9 Ͻo'%I3E=ނao6~rS9~%I6UC@L OxsfIJ̼tļ"O(?X,14KLlT6ExՕMO1ͯ DلFV*GD8p[9V¯g^ IU9'yO2lzr dhtz-GQ}86ʲxd?Upf۹t5qZ[ PP/FX'u E3v8 I(Bd*T Z+o0E0ި=:\(3u~%5Yi:ڑαM:=}OҴC.NY>O R{jOt XaM ӵC:Q煅sy'G64saxU|1YPܴ:и&\,$R`.KmMYG8}kCtQ$J|Ш]#A+[%yF>Xꕙu&ƊC^0 Kqqڻletl70(8%51&IRLЀAPy~-s&e.^CWu+8e-=>(|)+ J̗G-cwe0R]6fy^6p0op.h03mEm\-W z/iO֩[q× / =,k4;? TX5&hd T}B`{WtKJCђsBѯ򞃫h!)Lʙf}3=x4:xeyYgi'0tjnj[" fGnhN(-7P 74[܂(6FD'`nU[;koI@wا膱606!y5Y1%k,n'''ԣ( Jڊܥl3$EJdq93;sv̬}鿽X$ssxwd 38ЁKlRXjh.åPFi.Lb0C)W<]O?OffO(3ۍG oBKoBmUv!8n+› y{a?,"&B|8Gb|7oz&Ǘw޵9GJaphj%=%1 ˦SMnxn Z:nk6+=/H /_.^iS30ApNŒ`2Mlήk&&ƿoK.xx_xwz͸SWN:,jYs_dMviҦ;6cLIK%2"vjC`o HB7=Ct exzy= %j"f׷o.=kci؀8ۿ+s¥Z;*8kaf_”2*4.8k">h0{۹uO14:mP8Y_ؖFu5nH&gֱCu\){ץ^iIy O77 ʺW..j'crijT撚pvBMT~iV!UH3\ŵ*DAe+Tbq.nVr6(.Qhɛ>%aB HJ@hSlw"רN6QWY6>jj 9M`vXtMM#"X57ZtgJeMOn}pE^p>]M90CJ-pV(T4l4/Q+]( V%\C0=4 俬3r,$8X[u:Sey{ عP#)xl100644 test.h&;p<}*ǁ100644 tso_checkpoint.h{D毽>Ԋen7100644 tso_cpuid.hkSp B=100644 tso_device.hpTl j3z7100644 tso_lio.hK?ƀ?100644 tso_module.hr` zBH,5gD100644 tso_priv.h aNUfFx100644 tso_random_range.hOA1\eIO100644 tso_resource.h)wW= W1@KY100644 tso_safe_file_ops.h߭o,-b5!m7100644 tso_safe_macros.h\Ɓ4'8z&n\0IU100644 tso_safe_net.h%9~`!F100644 tso_safe_stdio.hCcrR%k3100644 tso_signal.hҜJS,~Pޅ100644 tso_tmpdir.h10HRju100644 tso_usctest.h4,^w6(YOsbixXmo8lYIz..;IԨkWDEB$[ IV]\>9+3:>ՇqLQ 2gps;>z?9ʳd>>l!\Z‹IH^Dz0> I`F fB A/ߏ^ .q57\ V}w;n0 D-{XLl/Q-}CB\D<&L D ! D>Yp|@p X"Am/Oke#3:-ZjřbGʷw;ym49 DP~$"7: B)4bU Ѵ„a%"vtbQ*U^tZI,OB%=\bi7V33T)kܽn)n3מeRTP`ꪵ:޼gv7]N,l􁨴H?fZOIxJN5+[_ MPB_LPg$ $ IGO'ҝ6yܙ Dx*L+ y W1~EGM3{Fi~8·6Tڈ9+Re8I,t?n]tD9K1#8s`~VRiM_Yt\c\`( !Z-}K%~+ߴ,q)p[BP A\ޗ;e_ox0rȮ'ӹN@"vkM^̆j-Jb k##2 .#nof8oKEQ"71AȾoOZ cڬ>~:߳yׅX>[~y2=Opr7|l,1 >^bXM1t(^#L/sS9On%lOCnyՃ_(Z-7Y˾+臠jיR>%1Xc?c0^ܲb1]-l2 wy=xtMERadg^u?` +^5׷~;@91-r7`zFnM۳ G]CAj*oe,ymʟo6S5m85*P OԨ=Ad}Z[,xa.7։|4"7wl5FceWa?؎$GĠ!z/2)\̰POT*ԓ5pB2Rlh\ %dMVEt:l%,Su^u]˵i7Hv5fbP-{`q;ϱfX\̦o_hrs?.vhrSFz?6۠W"*䀝0B8gðߧNS>q ZP橁unv6NN8ݝk!j>G2{֍!fCb5zU&.-U*K^bu%~91;bt˝41hڤv 'f&qfRK48*ÊK܆A.)0)CG`&PSIZ+ԃ~uB|KWlrM =EC˩vlEN)77XV rLPX IӱhU 23f od?n )|`_ל 6:CkH{t|7{~97c]l~w}=vC55dpw0z٩tAq5FW]g3 ͊a{FWx{// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2015-2016 Cyril Hrubis * Copyright (c) Linux Test Project, 2026 */ /* * Checkpoint - easy to use parent-child synchronization. * * Checkpoint is based on futexes (man futex). The library allocates a page of * shared memory for futexes and the id is an offset to it which gives the user * up to page_size/sizeof(uint32_t) checkpoint pairs. Up to INT_MAX processes * can sleep on single id and can be woken up by single wake. */ #ifndef TSO_CHECKPOINT__ #define TSO_CHECKPOINT__ #include "test.h" #include "tst_checkpoint_fn.h" #define TST_SAFE_CHECKPOINT_WAIT(cleanup_fn, id) \ tst_safe_checkpoint_wait(__FILE__, __LINE__, cleanup_fn, id, 0); #define TST_SAFE_CHECKPOINT_WAIT2(cleanup_fn, id, msec_timeout) \ tst_safe_checkpoint_wait(__FILE__, __LINE__, cleanup_fn, id, msec_timeout); #define TST_SAFE_CHECKPOINT_WAKE(cleanup_fn, id) \ tst_safe_checkpoint_wake(__FILE__, __LINE__, cleanup_fn, id, 1); #define TST_SAFE_CHECKPOINT_WAKE2(cleanup_fn, id, nr_wake) \ tst_safe_checkpoint_wake(__FILE__, __LINE__, cleanup_fn, id, nr_wake); #define TST_SAFE_CHECKPOINT_WAKE_AND_WAIT(cleanup_fn, id) \ tst_safe_checkpoint_wake(__FILE__, __LINE__, cleanup_fn, id, 1); \ tst_safe_checkpoint_wait(__FILE__, __LINE__, cleanup_fn, id, 0); #endif /* TSO_CHECKPOINT__ */ (†x// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2014-2016 Cyril Hrubis * Copyright (c) Linux Test Project, 2026 */ #ifndef TSO_DEVICE_H__ #define TSO_DEVICE_H__ /* * Returns filesystem type to be used for the testing. Unless your test is * designed for specific filesystem you should use this function to the tested * filesystem. * * If TST_DEV_FS_TYPE is set the function returns it's content, * otherwise default fs type hardcoded in the library is returned. */ const char *tst_dev_fs_type(void); /* * Acquires test device. * * Can be used only once, i.e. you cannot get two different devices. * * Looks for LTP_DEV env variable first (which may be passed by the test * driver or by a user) and returns just it's value if found. * * Otherwise creates a temp file and loop device. * * Note that you have to call tst_tmpdir() beforehand. * * Returns path to the device or NULL if it cannot be created. * Call tst_release_device() when you're done. */ const char *tst_acquire_device_(void (cleanup_fn)(void), unsigned int size); const char *tst_acquire_device__(unsigned int size); static inline const char *tst_acquire_device(void (cleanup_fn)(void)) { return tst_acquire_device_(cleanup_fn, 0); } /* * Acquire a loop device with specified temp filename. This function allows * you to acquire multiple devices at the same time. LTP_DEV is ignored. * If you call this function directly, use tst_detach_device() to release * the devices. tst_release_device() will not work correctly. * * The return value points to a static buffer and additional calls of * tst_acquire_loop_device() or tst_acquire_device() will overwrite it. */ const char *tst_acquire_loop_device(unsigned int size, const char *filename); /* * @dev: device path returned by the tst_acquire_device() */ int tst_release_device(const char *dev); /* * Cleanup function for tst_acquire_loop_device(). If you have acquired * a device using tst_acquire_device(), use tst_release_device() instead. * @dev: device path returned by the tst_acquire_loop_device() */ int tst_detach_device(const char *dev); /* * Just like umount() but retries several times on failure. * @path: Path to umount */ int tst_umount(const char *path); #endif /* TSO_DEVICE_H__ */ S xZ// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. * Copyright (c) Linux Test Project, 2026 */ #define LIO_IO_SYNC 00001 /* read/write */ #define LIO_IO_ASYNC 00002 /* reada/writea/aio_write/aio_read */ #define LIO_IO_SLISTIO 00004 /* single stride sync listio */ #define LIO_IO_ALISTIO 00010 /* single stride async listio */ #define LIO_IO_SYNCV 00020 /* single-buffer readv/writev */ #define LIO_IO_SYNCP 00040 /* pread/pwrite */ #ifdef sgi #define LIO_IO_ATYPES 00077 /* all io types */ #define LIO_IO_TYPES 00061 /* all io types, non-async */ #endif /* sgi */ #if defined(__linux__) && !defined(__UCLIBC__) #define LIO_IO_TYPES 00061 /* all io types */ #define LIO_IO_ATYPES 00077 /* all io types */ #endif #if defined(__sun) || defined(__hpux) || defined(_AIX) || defined(__UCLIBC__) #define LIO_IO_TYPES 00021 /* all io types except pread/pwrite */ #endif /* linux */ #ifdef CRAY #define LIO_IO_TYPES 00017 /* all io types */ #endif /* CRAY */ #ifndef LIO_IO_ATYPES #define LIO_IO_ATYPES LIO_IO_TYPES #endif #define LIO_WAIT_NONE 00010000 /* return asap -- use with care */ #define LIO_WAIT_ACTIVE 00020000 /* spin looking at iosw fields, or EINPROGRESS */ #define LIO_WAIT_RECALL 00040000 /* call recall(2)/aio_suspend(3) */ #define LIO_WAIT_SIGPAUSE 00100000 /* call pause */ #define LIO_WAIT_SIGACTIVE 00200000 /* spin waiting for signal */ #if defined(sgi) || defined(__linux__) #define LIO_WAIT_CBSUSPEND 00400000 /* aio_suspend waiting for callback */ #define LIO_WAIT_SIGSUSPEND 01000000 /* aio_suspend waiting for signal */ #define LIO_WAIT_ATYPES 01760000 /* all async wait types, except nowait */ #define LIO_WAIT_TYPES 00020000 /* all sync wait types (sorta) */ #endif /* sgi */ #if defined(__sun) || defined(__hpux) || defined(_AIX) #define LIO_WAIT_TYPES 00300000 /* all wait types, except nowait */ #endif /* linux */ #ifdef CRAY #define LIO_WAIT_TYPES 00360000 /* all wait types, except nowait */ #endif /* CRAY */ /* meta wait io */ /* 00 000 0000 */ #if defined(sgi) || defined(__linux__) /* all callback wait types */ #define LIO_WAIT_CBTYPES (LIO_WAIT_CBSUSPEND) /* all signal wait types */ #define LIO_WAIT_SIGTYPES (LIO_WAIT_SIGPAUSE|LIO_WAIT_SIGACTIVE|LIO_WAIT_SIGSUSPEND) /* all aio_{read,write} or lio_listio */ #define LIO_IO_ASYNC_TYPES (LIO_IO_ASYNC|LIO_IO_SLISTIO|LIO_IO_ALISTIO) #endif /* sgi */ #if defined(__sun) || defined(__hpux) || defined(_AIX) /* all signal wait types */ #define LIO_WAIT_SIGTYPES (LIO_WAIT_SIGPAUSE) #endif /* linux */ #ifdef CRAY /* all signal wait types */ #define LIO_WAIT_SIGTYPES (LIO_WAIT_SIGPAUSE|LIO_WAIT_SIGACTIVE) #endif /* CRAY */ /* * This bit provides a way to randomly pick an io type and wait method. * lio_read_buffer() and lio_write_buffer() functions will call * lio_random_methods() with the given method. */ #define LIO_RANDOM 010000000 /* * This bit provides a way for the programmer to use async i/o with * signals and to use their own signal handler. By default, * the signal will only be given to the system call if the wait * method is LIO_WAIT_SIGPAUSE or LIO_WAIT_SIGACTIVE. * Whenever these wait methods are used, libio signal handler * will be used. */ #define LIO_USE_SIGNAL 020000000 /* * prototypes/structures for functions in the libio.c module. See comments * in that module, or man page entries for information on the individual * functions. */ int stride_bounds(int offset, int stride, int nstrides, int bytes_per_stride, int *min_byte, int *max_byte); int lio_set_debug(int level); int lio_parse_io_arg1(char *string); void lio_help1(char *prefex); int lio_parse_io_arg2(char *string, char **badtoken); void lio_help2(char *prefex); int lio_write_buffer(int fd, int method, char *buffer, int size, int sig, char **errmsg, long wrd); int lio_read_buffer(int fd, int method, char *buffer, int size, int sig, char **errmsg, long wrd); int lio_random_methods(long mask); #if CRAY #include int lio_wait4asyncio(int method, int fd, struct iosw **statptr); int lio_check_asyncio(char *io_type, int size, struct iosw *status); #endif /* CRAY */ #if defined (sgi) #include int lio_wait4asyncio(int method, int fd, aiocb_t *aiocbp); int lio_check_asyncio(char *io_type, int size, aiocb_t *aiocbp, int method); #endif /* sgi */ #if defined(__linux__) && !defined(__UCLIBC__) #include int lio_wait4asyncio(int method, int fd, struct aiocb *aiocbp); int lio_check_asyncio(char *io_type, int size, struct aiocb *aiocbp, int method); #endif /* * Define the structure that contains the infomation that is used * by the parsing and help functions. */ struct lio_info_type { char *token; int bits; char *desc; }; ܏ Zx '// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved. * Copyright (c) Linux Test Project, 2026 */ #ifndef TST_MODULE #define TST_MODULE #include void tst_module_exists_(void (cleanup_fn)(void), const char *mod_name, char **mod_path); void tst_module_load_(void (cleanup_fn)(void), const char *mod_name, char *const argv[]); void tst_module_unload_(void (cleanup_fn)(void), const char *mod_name); bool tst_module_signature_enforced_(void); void tst_requires_module_signature_disabled_(void); /* * Check module existence. * * @mod_name: module's file name. * @mod_path: if it is not NULL, then tst_module_exists places the found * module's path into the location pointed to by *mod_path. It must be freed * with free() when it is no longer needed. * * In case of failure, test'll call cleanup_fn and exit with TCONF return value. */ static inline void tst_module_exists(void (cleanup_fn)(void), const char *mod_name, char **mod_path) { tst_module_exists_(cleanup_fn, mod_name, mod_path); } /* * Load a module using insmod program. * * @mod_name: module's file name. * @argv: an array of pointers to null-terminated strings that represent the * additional parameters to the module. The array of pointers must be * terminated by a NULL pointer. If argv points to NULL, it will be ignored. * * In case of insmod failure, test will call cleanup_fn and exit with TBROK * return value. */ static inline void tst_module_load(void (cleanup_fn)(void), const char *mod_name, char *const argv[]) { tst_module_load_(cleanup_fn, mod_name, argv); } /* * Unload a module using rmmod program. In case of failure, test will call * cleanup_fn and exit with TBROK return value. * * @mod_name: can be module name or module's file name. */ static inline void tst_module_unload(void (cleanup_fn)(void), const char *mod_name) { tst_module_unload_(cleanup_fn, mod_name); } /** * tst_requires_module_signature_disabled() - Check if enforced module signature. * * Module signature is enforced if module.sig_enforce=1 kernel parameter or * CONFIG_MODULE_SIG_FORCE=y. * * return: Returns true if module signature is enforced false otherwise. * */ static inline bool tst_module_signature_enforced(void) { return tst_module_signature_enforced_(); } /** * tst_requires_module_signature_disabled() - Check if test needs to be skipped due * enforced module signature. * * Skip test with tst_brk(TCONF) due module signature enforcement if * module.sig_enforce=1 kernel parameter or CONFIG_MODULE_SIG_FORCE=y. */ static inline void tst_requires_module_signature_disabled(void) { tst_requires_module_signature_disabled_(); } #endif /* TST_MODULE */ NdxD// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2013 Cyril Hrubis chrubis@suse.cz * Copyright (c) Linux Test Project, 2026 */ #ifndef __LTP_PRIV_H__ #define __LTP_PRIV_H__ #include #include "tst_defaults.h" /* environment variables for controlling tst_res verbosity */ #define TOUT_VERBOSE_S "VERBOSE" /* All test cases reported */ #define TOUT_NOPASS_S "NOPASS" /* No pass test cases are reported */ #define TOUT_DISCARD_S "DISCARD" /* No output is reported */ #define USC_ITERATION_ENV "USC_ITERATIONS" #define USC_LOOP_WALLTIME "USC_LOOP_WALLTIME" #define USC_NO_FUNC_CHECK "USC_NO_FUNC_CHECK" #define USC_LOOP_DELAY "USC_LOOP_DELAY" const char *parse_opts(int ac, char **av, const option_t *user_optarr, void (*uhf)(void)); /* Interface for rerouting to new lib calls from tst_res.c */ extern void *tst_test; void tst_vbrk_(const char *file, const int lineno, int ttype, const char *fmt, va_list va) __attribute__((noreturn)); void tst_brk_(const char *file, const int lineno, int ttype, const char *msg, ...); void tst_vres_(const char *file, const int lineno, int ttype, const char *fmt, va_list va); void tst_res_(const char *file, const int lineno, int ttype, const char *msg, ...); #define NO_NEWLIB_ASSERT(file, lineno) \ if (tst_test) { \ tst_brk_(file, lineno, TBROK, \ "%s() executed from newlib!", __FUNCTION__); \ } #endif /* __LTP_PRIV_H__ */ !ވ+xG// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. * Copyright (c) Linux Test Project, 2026 */ #ifndef _RANDOM_RANGE_H_ #define _RANDOM_RANGE_H_ int parse_ranges ( char *, int, int, int, int (*)(), char **, char ** ); int range_min ( char *, int ); int range_max ( char *, int ); int range_mult ( char *, int ); long random_range ( int, int, int, char ** ); long random_rangel ( long, long, long, char ** ); long long random_rangell ( long long, long long, long long, char ** ); void random_range_seed( long ); long random_bit ( long ); #endif f!=x&// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (C) 2012 Cyril Hrubis chrubis@suse.cz * Copyright (c) Linux Test Project, 2026 */ /* * Small helper for preparing files the test needs to copy before the testing. * We need to support two scenarios. * * 1. Test is executed in local directory and this is also the place * we should look for files * * 2. Test is executed after LTP has been installed, in this case we * look for env LTPROOT (usually /opt/ltp/) */ #ifndef TST_RESOURCE #define TST_RESOURCE const char *tst_dataroot(void); /* * Copy a file to the CWD. The destination is apended to CWD. */ #define TST_RESOURCE_COPY(cleanup_fn, filename, dest) \ tst_resource_copy(__FILE__, __LINE__, (cleanup_fn), \ (filename), (dest)) void tst_resource_copy(const char *file, const int lineno, void (*cleanup_fn)(void), const char *filename, const char *dest); #endif /* TST_RESOURCE */ I1dxM// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2012-2016 Cyril Hrubis * Copyright (c) Linux Test Project, 2026 */ /* This code helps with file reading/writing files providing scanf/printf like interface that opens and closes the file automatically. This kind of interface is especially useful for reading/writing values from/to pseudo filesystems like procfs or sysfs. */ #ifndef SAFE_FILE_OPS #define SAFE_FILE_OPS #include "safe_file_ops_fn.h" #define FILE_SCANF(path, fmt, ...) \ file_scanf(__FILE__, __LINE__, \ (path), (fmt), ## __VA_ARGS__) #define SAFE_FILE_SCANF(cleanup_fn, path, fmt, ...) \ safe_file_scanf(__FILE__, __LINE__, (cleanup_fn), \ (path), (fmt), ## __VA_ARGS__) #define FILE_LINES_SCANF(cleanup_fn, path, fmt, ...) \ file_lines_scanf(__FILE__, __LINE__, (cleanup_fn), 0, \ (path), (fmt), ## __VA_ARGS__) #define SAFE_FILE_LINES_SCANF(cleanup_fn, path, fmt, ...) \ file_lines_scanf(__FILE__, __LINE__, (cleanup_fn), 1, \ (path), (fmt), ## __VA_ARGS__) #define FILE_PRINTF(path, fmt, ...) \ file_printf(__FILE__, __LINE__, \ (path), (fmt), ## __VA_ARGS__) #define SAFE_FILE_PRINTF(cleanup_fn, path, fmt, ...) \ safe_file_printf(__FILE__, __LINE__, (cleanup_fn), \ (path), (fmt), ## __VA_ARGS__) #define SAFE_CP(cleanup_fn, src, dst) \ safe_cp(__FILE__, __LINE__, (cleanup_fn), (src), (dst)) #define SAFE_TOUCH(cleanup_fn, pathname, mode, times) \ safe_touch(__FILE__, __LINE__, (cleanup_fn), \ (pathname), (mode), (times)) #endif /* SAFE_FILE_OPS */ 'DJxT// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2015 Fujitsu Ltd. * Copyright (c) 2016 Cyril Hrubis * Copyright (c) Linux Test Project, 2026 */ #ifndef TSO_SAFE_NET_H__ #define TSO_SAFE_NET_H__ #include #include #include #include #include #include "safe_net_fn.h" #define SAFE_SOCKET(cleanup_fn, domain, type, protocol) \ safe_socket(__FILE__, __LINE__, (cleanup_fn), domain, type, protocol) #define SAFE_BIND(cleanup_fn, socket, address, address_len) \ safe_bind(__FILE__, __LINE__, (cleanup_fn), socket, address, \ address_len) #define SAFE_LISTEN(cleanup_fn, socket, backlog) \ safe_listen(__FILE__, __LINE__, (cleanup_fn), socket, backlog) #define SAFE_CONNECT(cleanup_fn, sockfd, addr, addrlen) \ safe_connect(__FILE__, __LINE__, (cleanup_fn), sockfd, addr, addrlen) #define SAFE_GETSOCKNAME(cleanup_fn, sockfd, addr, addrlen) \ safe_getsockname(__FILE__, __LINE__, (cleanup_fn), sockfd, addr, \ addrlen) #define TST_GET_UNUSED_PORT(cleanup_fn, family, type) \ tst_get_unused_port(__FILE__, __LINE__, (cleanup_fn), family, type) #endif /* TSO_SAFE_NET_H__ */ Y7,x;// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2013-2016 Cyril Hrubis * Copyright (c) Linux Test Project, 2026 */ #ifndef TSO_SAFE_STDIO_H__ #define TSO_SAFE_STDIO_H__ #include #include "safe_stdio_fn.h" #define SAFE_FOPEN(cleanup_fn, path, mode) \ safe_fopen(__FILE__, __LINE__, cleanup_fn, path, mode) #define SAFE_FCLOSE(cleanup_fn, f) \ safe_fclose(__FILE__, __LINE__, cleanup_fn, f) #define SAFE_ASPRINTF(cleanup_fn, strp, fmt, ...) \ safe_asprintf(__FILE__, __LINE__, cleanup_fn, strp, fmt, __VA_ARGS__) #define SAFE_POPEN(cleanup_fn, command, type) \ safe_popen(__FILE__, __LINE__, cleanup_fn, command, type) #endif /* TSO_SAFE_STDIO_H__ */ I2x.// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2009 Cisco Systems, Inc. All Rights Reserved. * Copyright (c) 2009 FUJITSU LIMITED. All Rights Reserved. * Copyright (c) Linux Test Project, 2026 * * Author: Liu Bo * Author: Ngie Cooper */ #ifndef __LTP_SIGNAL_H #define __LTP_SIGNAL_H #include #include #include #include "config.h" /* * For all but __mips__: * * _COMPAT_NSIG / _COMPAT_NSIG_BPW == 2. * * For __mips__: * * _COMPAT_NSIG / _COMPAT_NSIG_BPW == 4. * * See asm/compat.h under the kernel source for more details. * * Multiply that by a fudge factor of 4 and you have your SIGSETSIZE. */ #if defined __mips__ #define SIGSETSIZE 16 #else #define SIGSETSIZE (_NSIG / 8) #endif #endif UxX// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2016 Cyril Hrubis * Copyright (c) Linux Test Project, 2026 */ #ifndef TSO_TMPDIR_H__ #define TSO_TMPDIR_H__ /* * Create a unique temporary directory and chdir() to it. It expects the caller * to have defined/initialized the TCID/TST_TOTAL global variables. * The TESTDIR global variable will be set to the directory that gets used * as the testing directory. * * NOTE: This function must be called BEFORE any activity that would require * CLEANUP. If tst_tmpdir() fails, it cleans up afer itself and calls * tst_exit() (i.e. does not return). */ void tst_tmpdir(void); /* * Recursively remove the temporary directory created by tst_tmpdir(). * This function is intended ONLY as a companion to tst_tmpdir(). */ void tst_rmdir(void); /* tst_get_tmpdir() * * Return a copy of the test temp directory as seen by LTP. This is for * path-oriented tests like chroot, etc, that may munge the path a bit. * * FREE VARIABLE AFTER USE IF IT IS REUSED! */ char *tst_get_tmpdir(void); /* * Returns path to the test temporary directory root (TMPDIR). */ const char *tst_get_tmpdir_root(void); /* * Returns 1 if temp directory was created. */ int tst_tmpdir_created(void); /* declared in tst_tmpdir.c */ const char *tst_get_startwd(void); #endif /* TSO_TMPDIR_H__ */ ox// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. * Author: William Roske * Copyright (c) Linux Test Project, 2026 */ #ifndef TSO_USCTEST_H__ #define TSO_USCTEST_H__ /* For PATH_MAX */ #include /*********************************************************************** * The following globals are defined in parse_opts.c but must be * externed here because they are used in the macros defined below. ***********************************************************************/ extern int STD_LOOP_COUNT; /* changed by -in to set loop count to n */ extern long TEST_RETURN; extern int TEST_ERRNO; /*********************************************************************** * TEST: calls a system call * * parameters: * SCALL = system call and parameters to execute * ***********************************************************************/ #define TEST(SCALL) \ do { \ errno = 0; \ TEST_RETURN = SCALL; \ TEST_ERRNO = errno; \ } while (0) /*********************************************************************** * TEST_PAUSE: Pause for SIGUSR1 if the pause flag is set. * Just continue when signal comes in. * * parameters: * none * ***********************************************************************/ #define TEST_PAUSE usc_global_setup_hook(); int usc_global_setup_hook(); /*********************************************************************** * TEST_LOOPING now call the usc_test_looping function. * The function will return 1 if the test should continue * iterating. * ***********************************************************************/ #define TEST_LOOPING usc_test_looping int usc_test_looping(int counter); #endif /* TSO_USCTEST_H__ */ A;Sx1// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) International Business Machines Corp., 2001 * Copyright (c) Linux Test Project, 2026 */ /* * tse_ipcmsg.h - common definitions for the IPC message tests. */ #ifndef TSE_IPCMSG_H__ #define TSE_IPCMSG_H__ 1 #include #include #include #include #include "test.h" void cleanup(void); void setup(void); #define MSG_RD 0400 /* read permission for the queue */ #define MSG_WR 0200 /* write permission for the queue */ #define MSG_RW MSG_RD | MSG_WR #define MSGSIZE 1024 /* a resonable size for a message */ #define MSGTYPE 1 /* a type ID for a message */ #define NR_MSGQUEUES 16 /* MSGMNI as defined in linux/msg.h */ typedef struct mbuf { /* a generic message structure */ long mtype; char mtext[MSGSIZE + 1]; /* add 1 here so the message can be 1024 */ } MSGBUF; /* characters long with a '\0' termination */ #ifdef LIBIPC key_t msgkey; /* the ftok() generated message key */ #else extern key_t msgkey; /* the ftok() generated message key */ #endif void init_buf(MSGBUF *, int, int); void rm_queue(int); key_t getipckey(); int getuserid(char *); int get_max_msgqueues(void); int get_used_msgqueues(void); #endif /* tse_ipcmsg.h */ uj3x?// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) International Business Machines Corp., 2001 * Copyright (c) Linux Test Project, 2026 */ /* * tse_ipcsem.h - common definitions for the IPC semaphore tests */ #ifndef TSE_IPCSEM_H__ #define TSE_IPCSEM_H__ #include #include #include #include "test.h" #include "lapi/sem.h" void cleanup(void); void setup(void); #define SEM_RD 0400 #define SEM_ALT 0200 #define SEM_RA SEM_RD | SEM_ALT #define PSEMS 10 /* a reasonable value for the number of */ /* "primitive semaphores" per ID */ #ifdef LIBIPC key_t semkey; /* an IPC key generated by ftok() */ #else extern key_t semkey; /* an IPC key generated by ftok() */ #endif void rm_sema(int sem_id); int getipckey(); int getuserid(char *); #endif /* libipcsem.h */ T(xq// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) International Business Machines Corp., 2002 * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved. * Copyright (c) Linux Test Project, 2026 */ #ifndef TSE_MSGCTL_H__ #define TSE_MSGCTL_H__ #define FAIL 1 #define PASS 0 struct mbuffer { long type; struct { char len; char pbytes[99]; } data; }; int doreader(long key, int tid, long type, int child, int nreps); int dowriter(long key, int tid, long type, int child, int nreps); int fill_buffer(char *buf, char val, int size); int verify(char *buf, char val, int size, int child); #endif /* TSE_MSGCTL_H__ */ +Ox// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2016 Xiao Yang * Copyright (c) Linux Test Project, 2026 */ /* * common definitions for the IPC system calls. */ #ifndef TSE_NEWIPC_H__ #define TSE_NEWIPC_H__ 1 #include #include #define MSG_RD 0400 #define MSG_WR 0200 #define MSG_RW (MSG_RD | MSG_WR) #define MSGSIZE 1024 #define MSGTYPE 1 #define NR_MSGQUEUES 16 #define SEM_RD 0400 #define SEM_ALT 0200 #define SEM_RA (SEM_RD | SEM_ALT) #define PSEMS 10 #define SHM_RD 0400 #define SHM_WR 0200 #define SHM_RW (SHM_RD | SHM_WR) #define SHM_SIZE 2048 #define INT_SIZE 4 #define MODE_MASK 0x01FF key_t getipckey(const char *file, const int lineno); #define GETIPCKEY() \ getipckey(__FILE__, __LINE__) int get_used_sysvipc(const char *file, const int lineno, const char *sysvipc_file); #define GET_USED_QUEUES() \ get_used_sysvipc(__FILE__, __LINE__, "/proc/sysvipc/msg") #define GET_USED_SEGMENTS() \ get_used_sysvipc(__FILE__, __LINE__, "/proc/sysvipc/shm") #define GET_USED_ARRAYS() \ get_used_sysvipc(__FILE__, __LINE__, "/proc/sysvipc/sem") void *probe_free_addr(const char *file, const int lineno); #define PROBE_FREE_ADDR() \ probe_free_addr(__FILE__, __LINE__) #endif /* tse_newipc.h */ `x e/* SPDX-License-Identifier: GPL-2.0-or-later * Copyright (c) 2018 Cyril Hrubis */ #ifndef TSE_NUMA_H__ #define TSE_NUMA_H__ #include /** * struct tse_nodemap - Numa nodemap. * * @cnt: Number of nodes in map. * @counters: Page allocation counters. * @map: Array of numa ids. */ struct tse_nodemap { unsigned int cnt; unsigned int *counters; unsigned int map[]; }; /** * tse_nodemap_reset_counters() - Clears numa counters. The counters are lazy-allocated on first call of this function. * * @nodes: Numa nodemap. */ void tse_nodemap_reset_counters(struct tse_nodemap *nodes); /** * tse_nodemap_print_counters() - Prints pages allocated per each node. * * @nodes: Numa nodemap. */ void tse_nodemap_print_counters(struct tse_nodemap *nodes); /** * tse_mempolicy_mode_name() - Returns a name for a mempolicy/mbind mode. * * @mode: Numa mempolicy mode. * * return: a name for a mempolicy/mbind mode. */ const char *tse_mempolicy_mode_name(int mode); /** * tse_numa_map() - Maps pages into memory, if path is NULL the mapping is anonymous otherwise is backed by the file. * * @path: Path to a file, if not NULL mapping is file based. * @size: Mapping size. * * return: a pointer to a mapped file. */ void *tse_numa_map(const char *path, size_t size); /** * tse_numa_fault() - Writes to memory in order to get the pages faulted. * * @ptr: Start of the mapping. * @size: Size of the mapping. */ static inline void tse_numa_fault(void *ptr, size_t size) { memset(ptr, 'a', size); } /** * tse_numa_unmap() - Frees the memory. * * @ptr: Start of the mapping. * @size: Size of the mapping. */ static inline void tse_numa_unmap(void *ptr, size_t size) { SAFE_MUNMAP(ptr, size); } /** * tse_nodemap_count_pages() - Check which numa node resides each page. * * Check on which numa node resides each page of the mapping starting at ptr * and continuing pages long and increases nodemap counters accordingly. * * @nodes: Nodemap with initialized counters. * @ptr: Pointer to start of a mapping. * @size: Size of the mapping. */ void tse_nodemap_count_pages(struct tse_nodemap *nodes, void *ptr, size_t size); /** * tse_nodemap_free() - Frees nodemap. * * @nodes: Numa nodemap to be freed. */ void tse_nodemap_free(struct tse_nodemap *nodes); /** * enum tse_numa_types - Bitflags for tse_get_nodemap() function. * * @TST_NUMA_ANY: general NUMA node. * @TST_NUMA_MEM: NUMA memory node. */ enum tse_numa_types { TST_NUMA_ANY = 0x00, TST_NUMA_MEM = 0x01, }; /** * tse_get_nodemap() - Allocates and returns numa node map, which is an array of numa nodes which * contain desired resources e.g. memory. * * @type: Bitflags of enum tst_numa_types specifying desired resources. * @min_mem_kb: Minimal free RAM on memory nodes, if given node has less than * requested amount of free+buffers memory it's not included in * the resulting list of nodes. * * return: On success returns allocated and initialized struct tse_nodemap which contains * array of numa node ids that contains desired resources. */ struct tse_nodemap *tse_get_nodemap(int type, size_t min_mem_kb); #endif /* TSE_NUMA_H__ */ 7,TxL// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2020 Linaro Limited. All rights reserved. * Author: Viresh Kumar */ #ifndef TSE_PARSE_VDSO_H__ #define TSE_PARSE_VDSO_H__ #include /* * To use this vDSO parser, first call one of the vdso_init_* functions. * If you've already parsed auxv, then pass the value of AT_SYSINFO_EHDR * to vdso_init_from_sysinfo_ehdr. Otherwise pass auxv to vdso_init_from_auxv. * Then call vdso_sym for each symbol you want. For example, to look up * gettimeofday on x86_64, use: * * = vdso_sym("LINUX_2.6", "gettimeofday"); * or * = vdso_sym("LINUX_2.6", "__vdso_gettimeofday"); * * vdso_sym will return 0 if the symbol doesn't exist or if the init function * failed or was not called. vdso_sym is a little slow, so its return value * should be cached. * * vdso_sym is threadsafe; the init functions are not. * * These are the prototypes: */ #include extern void vdso_init_from_auxv(void *auxv); extern void vdso_init_from_sysinfo_ehdr(uintptr_t base); extern void *vdso_sym(const char *version, const char *name); typedef int (*gettime_t)(clockid_t clk_id, void *ts); void find_clock_gettime_vdso(gettime_t *ptr_vdso_gettime, gettime_t *ptr_vdso_gettime64); #endif /* TSE_PARSE_VDSO_H__ */ ixk// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2020 Linaro Limited. All rights reserved. * Author: Viresh Kumar */ #ifndef TSE_SIGWAIT_H__ #define TSE_SIGWAIT_H__ #include "tst_test.h" #include "tst_timer.h" #include /* swi: sigwaitinfo() */ typedef int (*swi_func) (const sigset_t * set, siginfo_t * info, void * timeout); typedef void (*test_func) (swi_func, int, enum tst_ts_type type); struct sigwait_test_desc { test_func tf; int signo; }; void tse_empty_set(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED); void tse_timeout(swi_func sigwaitinfo, int signo, enum tst_ts_type type); void tse_unmasked_matching(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED); void tse_unmasked_matching_noinfo(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED); void tse_masked_matching(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED); void tse_masked_matching_rt(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED); void tse_masked_matching_noinfo(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED); void tse_bad_address(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED); void tse_bad_address2(swi_func sigwaitinfo, int signo LTP_ATTRIBUTE_UNUSED, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED); void tse_bad_address3(swi_func sigwaitinfo, int signo LTP_ATTRIBUTE_UNUSED, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED); void tse_sigwait_setup(void); #endif /* TSE_SIGWAIT_H__ */ Z:Fx;/yFrC0dHk|pc@G|R-}.Cx<// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2019 Cyril Hrubis */ #ifndef TSE_UINPUT_H__ #define TSE_UINPUT_H__ /** * Tries to open the uinput device. * * Returns file descriptor on success, -1 on failure. */ int open_uinput(void); /** * Creates virtual input device. * * @fd File descriptor returned by open_uinput(). */ void create_input_device(int fd); /** * Parses /proc/bus/input/devices and returns the strings for our virtual device. * If passing 'H' to it, it returns HANDLERS string. If passing 'S' to it, it * returns SYSFS string. * * Returns newly allocated string, or NULL in a case of failure. */ char *get_input_field_value(char field); /** * Sets up the virtual device to appear as a mouse, this must be called before * the call to create_input_device(). * * @fd File descriptor as returned by open_uinput(). */ void setup_mouse_events(int fd); /** * Destroys virtual input device. * * @fd File descriptor returned by open_uinput(). */ void destroy_input_device(int fd); #endif /* TSE_UINPUT_H__ */ .bι`xTMo0 =׿hKz܆]5 ; Tv:ٯ)I@$|{$=g Ǽ]ktjuy+ &vUGXha>QreىM5,⦜K!2hlhT+/~gaӡ/V_l6T^7+htUrt5qM%n'`|C) Zjh[ߡ"chCA jպ662Ze>i_젩)xZ2b t;-BQ`Cl)kHK&q EʠSc9VCQJ!w! ĢnI vO#׷ IGG0BѺAreԱ҅c褓k OPoc]Ӎ:4GI驁u( #-,i蚔m: E ښޅCR"<T.yiM좜ýl#YVW[%(L)=Jȇ6JIz0J(C.H'jR_Pq_TtsV?@Ѹ.Qm}p;"ot0EBǦ,Af1'g¡[:f=of=E)x˽g!'hh]`6@| ^xm0En4Z\JQAw&SG;4E델PsJvi { M!d$M  !竣O>tdcm`u0mW<%ѷ,)!"` v*e) !MogԶm-'8 o? ՠ׏G;>MұcxuT]O0}^ŕxi+B4вQb{1Jq(0N!mË_{DZfEQB _7I'U/cU붠 zQ|jh:prtrܣdJ ^5eG?k?OxP>Rs)/DŽ )(d1*o8.R}xAV3p0Ls&҄=eJI9["d(:m '|ib1Zq .Ϲ`2 )¨TOXX5 4.oqC17hz[ A=S&di{Qb }W4B2>ժJuưNQ6R)O.hpjKTu,%$NU+߃/̐:b6oæwq `m[I~`ut\\}dB/Y@GV$5w#BdCjJ2C–hܨڜ5#iV||7w5;EYd[?m@ezPС9" xݽi,x[ms6l JIvr\gsFJ4ÁHbM*AZv3ﷻx!@R;wEr,Yd^|1hMۢZ$}%Ͼ8L;tmU< #QԾ( +DX2,l ca()+UI^1jx!ʪt* ,F#'iU1BC(`K.Zd"bB*e)VR2׫B 1&)J6),yYIV"J@iz7f% &W^6D-n})nDSvJHW% "N+&x4kwj RKέ$Jtӯj+}Yy fקm$i ,$/_9MJaZX&y,)& I%VXWiEaL[_EFΓ lñ)6s8"^?'HEl`"NqU+π-7Z7mA\yv~W6hۙ'gSOC:͂w1?oڣG5'"<&%c#_zm|T٧ޞ3m".+a|,+z{/9=|1LF&ϡjgeQS; J$#.LFWE<轼`HHј '6I0Ave1 x 3`EiVN9Nj1|m;t L6؃@uD#_UM$A@g$0 KTCS"&+PHX5X3ذmFf[TTy-Vk~H&O"߷3S˾NC=鹍 <=hKLqѳr;TV'wr2GIt£L$\L-3i!r}\ZX@@;Au͓ }=TޭSei5[ I\)87W$G4d^ 0uVJаPΠ Y7ыx@W%)*1Y6Mb#P qR>S09L:&˓F$uEQ"h+j*"25THЗT&lA:}R#{}G E+;#A`Ds=ɅC`}r^"\M2$cLH^ ޻Hz h~H C FQ^- ӍFj)u YK"oj| -yqT Bt~AȒC8#RƞV,H^>j,~Ы`~íM)")FB$y%=ۚkwh;#6['xz W.D4RA azV?i!RQ:3bHs`0){x^/aJf $i* 0tFGQNrI aЀ,D3{Sь:xUbtL!̽&K^R3r<7FRPM{W`!6 A髅c0h;ٺlݜeSUk/Jq/ډ`Rk&gؠ#k0,zbE?vR%h 1ؚӏa0UhHmx)Cu#/Y &x}.JdRa#Ie2a-%bV6n/q dsŧE%7SޞC8WigSDKwmD2-YNtЭ; $[GNkAah!b -bAA(4bᏛs'pF,iwaQdNNՂCa̞F_M~Ə^aY;OAS~E rp{Cdf4tQX#J VZM/4)\1ͯ5w]TvC,x^1nNpG*<UQ^jBP6j &f_CbA1P}U H. bfl `.Cw)VIXwؘSAËϥPyHQAZhVz: hURBuBjt eo.&s ^K<%֘7=+."L x]R1vڶ8n5|iz~@C jdmcAG˦hl}K#Ŀ[ehq4 l?Q̨xyڍݢ!),sI\sZ*1l9zN G1y߯Cf Cֿmл1z2@fHrCi^xTX?={`'d$-Y#(wgGܼx*D4WnO2ǯ`A+,i)^!uG/ȴ uv'l#e .ܵ*뺆N]MAo%[8ʘm ?hs\m ZߟQ)ʮ|\fq~LH;6uGU(U3=ѿkLm]*Gܮa=ũ|gw*H:_Kj`5Lefv $S4if@)* M ?Ӿ;z=gs8d'M)?@( |J ܌KkNs]<"ow~ [q=n-Նkj끒6ljg蚘4ycY"7 x`cnk%D__cj'й,Via߿90(-ێHKYۦލz0k?XyoءvS M]Vlroo ytߨߘݼlV=m_H?\MjQmuϥI^ 9<]yr%I0`s~`.];ބ4Qg)}MghVzT@QCg516[ ,UیT[aǾ[[ջjjm BZOku oAA#oœ'de44dDC<&!@F!lW?3 s+gt `ѹ^=0qe:]/?0o̚}'VIZ7hQàN)110IE 4cz^; $<\wHƣJV"RO{GWa]le5U(_O;eA>s2O)BU TY8Fo\ٱ~N8L? 80 u c^xWmOFAH##*/:J_RT8UUY3259hwvm;vr)_gy1!\[(4/f( gWpe?RȠr]bwAA~9NeSM$fb?۰K-)B" $p82x/x,g sTpJj X&båЃl31?|.|]:WNXiF̸0~FnR_dJh0*C г ˡl^܄u/N׿~^F}NNr /``rA[x,/ (:qV`2S?h?)nZ͏d4fK䒸F ?.I$ \'Y89'psINFR-kʕRR*%]C1jԦQq'eދI{ݿgk ??Nϙ~m:"[%hAvĢGUBNynMˆyobW'lK6h xYߒm:XE\f0 3h>вsAAlᖑ? Dv?`N* 8?70jQd ΄fp345]LSYkڜKއ'T =dnmdYLa.u"0iJ;T7!zB2m+=WendYkQQa@aG渭 dqXg1q'Q]Gbo&[.mb*pϬ<йx;moHWLY<+JH@dWn{16Kh{^f6&msV[<9sϙ3GUq .Re"nCnb|冁9rnK1NX2^ A_jq4TN0Gc.p0O*(\D0 ~#)EΓSquIOID 'HBO`A'#,HdE82 ͇ 9L41P b)q0^JO\ъsDh!$ OO@,5t|>"<" ?;qg8t*6*Yi"dXjl"'H0\}w?’?$77XtegWt6M՟Q2?\zt w1Dd*1kOp@艘Lfy;>4o=W<ԃPb&0k;NaifeQE;C'jܙGCܾx)/J!Fc  bLȜo`ë&G,BeL -\"dA $<$}R!s67ܫi(21EX1Xg'`?HGRb~Dʹu/tD'r%Ppyܪ5] x+1s5-^ASQo40 $߄E^˕\X<`VlIrf3YFoNJ~uQQtA7KXypE< ,X#c27}?F7{?utGu;0Eև)5%V[tAӭ ćY"Vx#q)}@ڇp!ϰ@5EMWKAeaEx"&7q:+petF0ť fa_|Yqe˳«wbZi(8gc]lcwx&x7|J{%oM`C-f*/wㅌdvu>=!w1@ъ?gҳe裟DJVӸPye̩7,#up&dEYJepk >`?lخTDž7&0Ë7"pzZr ~~Q4hTA~hS uEUmHʼ{}kŘA1e${adJ̽G>(HUydԑ4s ?iMlp(3B[η5ǣ'|&6A.\'}' ZjGv2ZMyQyIQYnpsʡKr!U-ULЇgA9t zZvէS*1L"< _:1;0p0"[8p0N`B61gߢTJl4&n `lZ 6b#!.ua/V l;OANWzthҹ xM.JJ?єj9x4du5`2cB^ ]J_8Z\p̊$GH>h9*C81[x$ҹ.ofHa.ڧ?ژ`aB웨ǯ<[՜jN$%q;}*.<❶HҤ]ubI|tέu~V:Qh C3fqJQۍBJQ3o)|?rD<%cOX.T/*E:&_kC1f=Q7S/;UJZ/OsyDn$D l7 ٚ_ -aJF>'b@<1 GT%x9Rb:!RГWxqCj0*Q$q-1ڌִ ϦȝB;„| '\%\<ąc|]|?2P`),FS؟=P;ءCy:Ϟγlγ<{42ǿ>E. RT]׏T'"qC$I|8uϯ ^zh|59gO˳6/vyy/vxʷކybKTDttDg{n*澥+K4E[e6%KXdMٌb>k`WtBXExskj?L5%Uض:_7Vn3m;ݾk6 *^k7XXb glh|;$k-x5Hs 0$I:u'x?*mCWʍB]y;o$nQ$d۴ISMDcvtp4 ]>ILuXSn JnAJn@@CG zjݧ?@b{tyg5l"7ZS,J1鸵5;gۅ((`MQ$Y8*`{_$̺p"5pMoᏡG"ʧ'cxFW2j2A¯])f/0g3tk?5p(ؙƗ~4NZm"?nf,uH^ r,%^,GɊj6Nl |鮼y׳N0+ 5n#]S2u7KDQkqmfjE\bS/pTSљJzu`cpmg\ ,*|F. @ 0pn=(,$qL(s۲\&kV0MH[^FY#S (A>6 xƷqcC d:]:*D`ߙ&$/ ,mt%@e$X{qa^fSVRH,h?BtJG8d"KJ߰Gy"' wRB.QH@:.?, _5O1멬V[<W!Ox<q6u R½ nw6bYG;= Ӓ+uq[=M,M"e gngқad_ EFQmL'ZmhG`kΎv빥mC-r6m;]ŋBb| 4؆u3x4gTQĉx #tl\N]nS P˺Nù_$|){'*N[OP8F I=q}>!LLjz%`ЛXZ?YK x\{sFsr"mJ"i*űey]*@z쮿1EvmJ$r0xQ<2/M'i ڦvqă,5h6E cvdfg<|֚"WQnwM67(5EҚ4Q:r3͆jmnʉ5ͧFE 􅞼><5mj(1 ׼6- B2bb!^AJyaλ8el&QI_eȭv4O:S /'{wzb5crKc/$jPGiyˣOoN~5ͫ×ջ#o8}dޟw1jqzDȊ#$JoO1Urf{fDF +C3R2R8ʇq:F9کMYh1/,|Aq1WK{d9#!M~(NhQ*0ۘ ;KafҬdpMM{ y!Ø<`fAӹSͯb3.!U;1DXvv%FdP%5v$qqiuYQz@%x䯒,%A7~]=cE؅ֳ|{?苰yquÔye2;Wbߘn=!nZmon^]]mxrF CBdYA>d.̊¡܄D؄l^^ϒ(fAКݢy}(%c(IAmls} )ۍJɔ)lBI *|Fn6 d2F ~ݧyR4?uTEM$ لhQAe"h0!i3ኾcF#r  ?luUws"(#,L!s(´bd!cFQIG b|<%$3;IAq։<>/0V$k`l9QIQRtcT*9y$*cD`+ڄZqJReaQ$Fs#!Cl u(ϦSH{yp%QЍa9‰ skXMlj4*[{]ip*:2% 4'^[Q.4tZkγK.L5`Y( &sʥj)e1IDtt9hR]Ѐ8{H2)OOdžYFƙw,z9u9)z(؀<0)Jv0Gps؉HPw4 _f͌\(7@F\<K-yj{$6Qaj&ΛՉxgc>آ@ P+T]CU\  "k8<}SӍ`\ A3)>|JK,ZёơW"}ӏ\FVAF.&/,J `84,g!7Q "*pTPWv8ei315:/B@?oO6 d "3ig!=yN2o,OC|(p^A*QJ a/ HSPWS;kuʭ 0ʎߺPenⅩ @YcP],1yˏtg>Kla%JW9g MvfzTyWTf3B"vS바H L/h0/8~=J'*G9h#Xn ȴTJlS]P̞'L'k)x/3%N±?L=ãΚ5 Č&qi/$'Tp>kPӈ?66@FPrm#=rJYT8jM(< Y]F&wUP>[َuslIx-$omu B(ؖ߉n_C`%P4{ f^(yfWZi -Y #0c0CFS|qxlzژ2Dmtq:qRl]?Q̰l9jCux"1UJjaʂ/D Gru!w(Ar!!K-f(2(˃C'{};ے816B7Ɛ5t :کk^TgMDD ?gF K4W^n߮RoPO~+`ZH> t೚w!I#yЄǟQrŷo]Go>Z^Ri|^[@rS ?g0jCq9myE4͆T( -$uO'AlWq;;+m[<㚋kٵ$ƫFp'R0]j@7|P;(^uܠżoPd;Ԯ#I#M/A3Fƺ_<\Z-ȕJ)YX0!1S 8UEud=ؤI ?>mFy)t(lں:MSdfuA6Lu#^]|50E>iA|cImU1 ߗ@GBz@FDAv4ⳄIB(ؗ$~1;u4`0ϋH #HNu&vpAfEq-`|RcFiƮI:Smn].*Ef)gL\V[k%vW ԑݡv'l@uvAìR= JߒAPĭ; Ͱ$8hKp:,1|"`HQ,C}Ẋ^ \\JM-\}EPmY]bP q`^a(2mT?"*iàC/-3S?~j cShxq⣦opdvߺvPM ] X+.D,6TY \ DTϱV)lL1jcecabP"p>5Ivu'f@U(iJ$l pl/܇>2C2yv|:^WZW_cIv TmŬlإ^M@L17=ܨ?>f˟rwDi55O<. W:a|>^6ʦA*R=ych`JV+j k[qA6`-TGs4[Ud+h6ia@YlBj_Y܃ԂFsUw;5rrvpU:EFqֻ/{罿NZ3AgyR乯k[pCo S/-(曋&d'Ұ@Zxk&Wǩ\% V-p<;tz? .P4 >Ir262Fo%߶udi\ ^?j#[V6u {tFL^d1YYf-t*ʟ)L^93RO_K(QYڠh8Rb!Boc~AQ+LR3tĆ6"GRȈp#aD^1v`%; l(ɾ\e5Su@;UB4a2,'#blH眿B[W90D8, >M'1 ӡ)K7=A!V >9ĨM_Srb[D0=݉2}30Wr$J֥bx H3 !M'pfHF͔DF)rb)vrDƟ_tЪaE-pQட ND\ǿ+,6L6ǝ 7UpDE _Fu79bg;Ix}( +IU=Y~#JjM6Y6C tlr+ E(-+KdC#n:`#+"= ?e9VNTS1qAJ,(E•O`oO|R֣x(L*{O9E $\wܩUސQqRܡZhwo~:89;=<89yy|ڝ' <-mb ]miN+ǃu.|4aI;ycK!lrא$.5iFL,,9kwDEDiMľ![Yzq ߤlsy,ERIU4Ht:+53LTf1=)AU{ gg鞎nZ5t}՘UҎc9 t`|I\<0]ӠEvEuLx}e7Lkw%W-w?49i>@hHEjF[K/U(fw2i6{/__xz0,׹stu0tOޣIryNv7("@<͓.tؤc%@ֳ~|lшST$BMr gE.R4$%99$Q]`4X'YupG79kȯ%ahФ]t{F 횾qf~Y( I] ԔZamX׏jgs _M2@zUeTHdA^=dםvk5rfZ)DoMg.ܕL=[#t~5^t80Gn /'I-[C<%P'c(r\Wr^զK 5v%|/._i%i~=ʢ.#FZ.C#p>:$IOUgn e͐E&.$*8f_#PK;'i4 cg@B0(JġfF y 0aƗX=#(gҊe$|$BE|O}Wa"'  {O>4M e-p4+x340031QK,L/Je`PV Y6i~Qq5 !|S2sR|LY9#3'dEI_̓k{wHzRsA#wn'Vyvբo툸(ߕ9}Ix [-7,L{#Ջ]Q,[edW$%%@ufm5xUmo6l! EՕ[m`E,)Tw%9~ ;F}DV;ŷg2w0~i+%bqa&St0*%*.b cv$XʵQ6 XgRA)S@PH30LdLi.\G& XO`„fkȨsFLк%SYb?*g \X\V) 1u jͲp] v~ZnBwpM.k5X F0' P,\5Lxp6̽V`\]Z!rw9wWֵ:! )b^1J¦Hj6V)[)SLX)dłemP"$̸p1gD~/Tl\3.pDQ/(*6ˢ]VTTZD\ؑM/TڧuBң1sZ'8iE9ruWo/LY"Lqhnm`;/-ZF:XTƉ.oSqp »ajI+Fe }0 7ǫq j)hfʡwgLY\9qCߤ`8V3%+c.=Ȓ.h"(KZӅQ%5 RC:bQZ( bi)ЅNc"B^-WYls@DnBί(8סqN<7agW_K'|,?#vAX. x`Bnڼ?6vy-~ LcbLAN%>HuBXm$~bs{eϺ-8mZح6mX{p'vD2Fk?G7AGM:6/hGc2<8 %l8B8k%Q}b9~.a!Y6So6@C/nv6 ^GCx ecPVh*&6yFONڭ9{G&VxeJ@ŋ7cjaS^K")mDAdd] ҇@'}w7ƶzgϝF4+`!NI3D(F I.I$"Vbh.✎i$eTVzdÆljndd)`.X!3P/ \-d1#<l0[ܴ[]d'Sk -{.Tfw[uz K2v[S r]TQO /|~`xۺ.& kZ*iCQ+gi^qjIj^OH@䥬Lyeؤ]SK2sR48KKS+2K4Z.. ax{ƳgMInAtcGcD5OH@>gqjIj^TLI&`8y=bIjqIrbqj~JbIj1gOY&˱@Et6,7xRK@~ֿb؈뭎,=L#b1];N] "Y73{yDY2gDR=2pH/][͐Bz^T@#h@-9`YP@!_dI6@m0m Y\l8W)dMMյNM%ЌŠߺ`kEi"n#Sot{  sAc=ugٙp:tM/7K^coM_AV#7'ۮo+gK!Nqd06M)(.t $R^Ek!3mWٛ@i '?+U`E: p"q%Isipކ^NtVe e@E?i#~ꩭ[YO/ye,N=Nwho@90:!L~29yOg_m}wwWedӹL/M8+MpC&|(i``#*8M5?|7K;psDLB'J ? *Ķ@"m"ADDňR;^,U@8NJ-@@c̕Jap`<,)&XN LG|wS_"Od8 719 bHIHZ$ t w _Y&NP<> b bms9Fn& DpÁ$N8#PKx„H& 0*-:ò-d MGY ?S9P7p}}1JiuW d^'jxz4c1|N ynϟ \m2ك 4řfI.>oWOqwxX M:ʟi w3$Q'zfOH 4ӂ2F@ Tp:s^e^ee| >Zzxpv~p\s@-!E03 zE@@Csb^MWE9_!+ B"0eIq L/v}ם+sH ng pvn8;$f$∞ qcKGvP*tP&)Tb{"O'Y>DDt+_` SM=iA Ci4 1kY@eKh6 x`@WA #-_#ڵ,M(vW싧1c=q]8B4Ђ$*a:N.7o;ϾUIEcO}t|n%޵ JY> X4?S"B0#5I./q#oʪqI&2k%.jPbUC'h2Lv9iaH VD>Y 0"t<[dR-$ҭ΍fvhu﮾ޤ#~h |@/XꓡD?x XH/ >~HnM lI!XR3[+>'yDud=B!{ PrL an$Hh34ٿ1ה93O&(:h\߳$_gKʢesQ4&q8V~"!r Nq=eH9{d5fͱ3 ly5˝-Kb0+F fTLxd}O@a "(n9|Ml<P5͆~۷ jNx'ޞ*pdTd/$c)A hZ{}d):חjdMPdm7tckCmz2 c6O @cfaB_3lC+4Krޛ!wәO=uQ%(u=樫 ]yw=5j{xyq-.;piΌCi nأ[ehoY+ sÛ"LIdr .A^dG>X5I<.>ybi*0RGJD1Kt>vKQA8|¬r l ~V1nS*E*?i| 0sSxs<X>H X(TAP ˉ ';`Hv;#N$SA rUߦU7򓌕4G%fL akP R&5mK{r]FtS\k߳[{)whQ(]MD -2zju"et'tWxúVt-za>أHn&#E %&uuZ4*]v.bf,<,žqUnmV /4>f\G^XN,e0`Ms477P\)\LCkai3Vk٠<7zx ʙfIy4aI #47[]==-LZ.N_Q#> -}q bG4̞ +:_ع3 bO bgS UcNV c+;)%rī."7!:u,yxEȃ 6Yr})8l!Zo˜Ds_uּ ,;o؈) yI}Q|] Yi׻EձoZ0^; /=i ۴=dEI# RdTH?)Rr7<))f$4N!cǑJքmtTX`Rs`HgqDA?hJjn#1n0mD4)r:9cv"+'-٩E Z90jnc2'Á(m`V3p1B)@bmT$"|r衂ǘH.9~=jL@lwsnUxs[-&F@I*&gW Ӧˬ Q򔅇KMխQXmI|E6 )@g8KlyGi7q54xUЂBM !hTmRvR\MX(hƭr˔gC&5UuA|<  GiHI6CI'Y`F(}j|+\a :Ol K?]n܌W#ڢ'\\! e@K"L#E\b?RX VulJ)XX'њ^֧sAEJgfP,9E(~pG$&:`E'F%s˻,Dv B+gJܧaZa &H+m FGsmyG1hggcaS"TB! h/OMǒظ&&ӀmqdhRGD +o H0$SQMm\?VW;CHEЧſ`GS4%NuN4P 9ƆZNGU9+65!^jq@M{%`8ۡX̿$!E"D4B&%*Q(yl(Ώ@* nЗ:I>M$ Pӓ6vuolX&|8n!']^z [}@$ % 1FsO" Lس!q->0(;><pBN F {iOc?oۜcd\gA7_3.N!>ZAfױyƖD'Dߚ:VO3mɘzJl,8? 4UQҕZ2voy9 IԘV*;nqGd@ bD["LZr_HNN ZCv=IF?K}!?k>&j7[[ |ڄ5{"0[4S1Fn}QV#@Bm@_6ɂl`cہaUpIXp=hg&;?},B6}3-.2 (~B(ZpmaA6k'JѢƶIҎF(ʹvrpfe/c0f/`cB,\ӸB}2zi_ ]t%'huqQ?سdvcE7 Uy`&vgކԿS,ذ׍F NH.<-9]cKp7thîoYreöȌbr@(PHٮ }J# HѲ'Y% yadx`9^ݭ3]ۨ@G0Zv왍4+mmbWST*E`ГB,wzeZ:j&!|lP|wVZbF&B,Y `I%-yk@~ f!MM*LHDoCn7ދUZ$9;<<[Y FahOby$)Xe, i4Wuzmh`mVFJc#UsO:SkJ $ѸmZg6 _k KYCwwpTl:8:?:[Ju>!Qnl[цfC{jFUՈ3h pmB#mAg,h 1l8_ZnoC[MXuؐ-E/`%X 0x!LɲoO2<q<=s:삈U|EX,O14|V1|fx# RAzq Yq_=兗̠3PP'z469=8GO#wj'ꕨI;"k ӀJ:m̜H.ٮٮ\#h}:k-3̺.Lk1K;ŪB`-zg{R>5 xbz8=LPrȼx?sYwwt|+9} {9+},WY,BB , AΦ' /9M"ApZ-q [NMuR??i׻Kb]N~~~vn ƻFH3"sY&}HT ,/ 6$aJ_z̵/PF-`x?Ιd-.itbEfϣXtsE]T:+U~]x;羡LVɩ$$,!J!էGM$<'R{:;*G XU5ŋjjjjjj~_^* 㧦,X}kj4QpKV>Q;P(?`=,ϻ^@A+T < |ϰA-Z |5m2kGLES~@X/W}5UTv,> R{nuwQPޏ[@%{.K`I0o~Qf]v- *wW,GXx>j)C9.J!֯|Xu{r¥3J\*t q^$,U:v`J1o+([;x@~e3VV YͧS$f^=dcIȦITDr(#'w^M`eEBlPk`.a]yid- ) lO?OY@Adt3|i5yPcXi}X{ (?ξrQڲ8ɍ2<2E0 .f,vQSu7jDKum]w]7ゾE_$y}C2mbծck2CkQǪ*B+^XKFu&$r%T7mJ Ζn!Ct<*{e] HaaV ҿUq-/\p(ͪCj3, а^ Hڭ$9QP1Ѩ!:prBG#_0< cd1wv 7=M~<[V?sӟwg/խ7=X)!]J/^ÄD}et MVFE΋介N&¬J9X%ӕ_:O)6rM{SƒT6^1k(~Bzg$qy D+IϹ'>;`筈ѮRBm~9yݎ{{,rY4B }Qm Ds,xyM7ʿGMˮF }arA_.,NRLx̿+?)-o6UPb̵HTA-(vj$ýBuN xct7MӍ loZ1Q< AEe2XR>iX|\VtjE)tzNi~3dՓ.@-sjWF(,){9VY`9 mՇa⎲--sG|z}vmhvKİkق㫛 y/n?g&tŦz`34wiR&Y4iGhJ}Q՚.4\,!^ F]"EMK`Χ5f89:u&dqdbwy9\L|Ps7/^tsρ/~9积IF~ń Ys&,A0 ķ mի5u3E;b r"IR%ŎVRYٳX/%;*ͤ8Xr>mhQlmh.&Z39A7WL}GEe]!Z~{&TxYVq{N['*]6&~׭Pj/`S}3"~mWYƜh 4#SH3d{.Y\8=gsO>,z6vM-0{ skѵۥ-`xn*}Qyϔ l`t>%VZ F`\\V\oi ^'^ChNCEhyF{dҲycGex?6aXccЮjy)tm2?E^b-3_*3YH/e&fa*ϼv^,)눓r?[ڼ傹E/H2tYB?,o*oC]C[iRFN^4 :L5t{ᬣuKٵMUg )}^CΈ%v.䊥 xw=u\tH{mp/W}+pb&6Bb7~8~Z4bkt;Gה޳WY *a\u- fHd(y(E\6hzi^W #'7 apqo8cWbY)HhO@41[D䊓r9gb9Rp57Q"5@`)e $be=%U(P'8.~7Dc9t9b"2jbXR"V]ㆁ*hSr`\Ϝ`hdݯO:+FKӎ38ǔ[cGs^mL(EI];&M뫨)E37dr5&Yv]1҈Z%-b 9[eP^nklKzb7NC/z?[*e  xV]sF}_qK&pwR'* $LH0Yl-i5+J8I:c{YtFDcYl u].hZ%hnAmUf+o,6Iza~=.i4eNr+4Jn _S9i[%^VO6J+IbE2rt_C*l9rM2uW,j"ݞ-Oh YM$l43B+qLQ>IUt+!=e߬ÑmBp[Y`z+֜** 0OjIM 5x%^D^fࠧXa`Q|5t'aHE@]yr6^ͽV" BΏNS4T4ᆉL+pNk%e;\!^0̍ cMQR!Mn ukc4+A~7:xe*RfR>X_F/Ghz@DgU©R ]3m+mL7'gU)Hu DHG9h6Xw'EknswF0iSq_1ڼhv0( WyIxFl䵺ɻ˷CjN캋&cAE5_;n[JuҗܢXS݋ﳴ|}PŦ}Kq~-ćIOG ^k܎g_ =|V8oJՂT!m 4 ۭm)fߵr4yUVo-,W)lJZUYJeu+;eLmr(/X?"+xaHv8b K |=!d:wZA~\18/Qk_NR6F伹2"Mȫ@N<[ggP{ڦ.)gҔe:VY)tUut٧1.=z{j]XwXS,0X7G?L`?C3yj7?5Q8B5ڭ%=q"vVY#Guߑl^,7SskH,G ç0/%m l/?m02XWo>_pl>:XF@?8ƺ8_kycR걱Q _('xpn5xݺ {'M-N65fQ˾IPQ#=J]_AdTadfdB1[?2heGKDi#OQ 97;5]לzwX#W#/*Bc9KԦr|cOl\Ԛa`t={x31]ݸ3gnuxqJ#[ǐ+&bY{~KΒ=rp0=aq,dTA"WKߺzY$E'ݸĐȚ]{ ,}^"*KD#~^v&°?X5H*q';6 鈇U'HWר5g!$a΍;g" "D?Fv&>/J4 )02Izdq$ l M"zg{2DdW,SyLtX/mYsskWhaGhx;j3;a<"zQEl 6Ds#Xν=pV%wq60D}=3'#fՂ^S)F2a+~"m4{*$OH {n%ݩ.wLɛ(w^NxqNf4 x5~^~loP!Yۻ4$TSWAC]4@Ţ9uϊO>Wa@ZeXecҧ @ ~47ǖog= ̏_W { {l;KWG]X;3kzJz{wC 2zл;'V7"o[}9еLk-fw%Argo =:@ipzy8xxÞLc+tơʺjuIJ]ٞS+ŵߗA]|U7"xmJ@A{>'Ӏ-1kkŦPZRiɆ6T-'A|}gS*²qF^קZ+WT֠5| 4d/og{_3i$PsF^ G$%ʙ4TݐX(P1ǙϓZ"CD>#A !HE 0 n,y`*xe*Z\^5A)k kwx `G>PnwSi#i@9m`FUɃdn*L1)V7mRU;OPɳĺz4!0Аd]fӪǒ)k.MzSu&ѫ(xWmsF bC 80;Δ3"d4Bp81w'w$!6V{Ͼ>nv4/%L5k{ oV!tB*POyW &+&~.2J82x= 2HwX2*+1,F>5F׾>Ć|HW%F94޷;m07mZz}heoOF.˞LA5ucp?%s~ &Тrcc.BrMh«jZAyYdqрZ}o~mVϹp-CL*wk2&"TU3PP`G$K%*pBm1sf'E/GlÈm:iw?Zׇ|Քk}4_LL #.3l/=Wnb3rquuu F!80^ÎdIz P̝`p6d pЁ!PbDZҟ ٖ492$uE۾ݚ^Hښ~YZHkzDlh ZCI֬Un&B%q>υ3Vw*xw="Je&bKyp()psyfKaW_@lyv8CBP驈* /^-zlv{ͮ]rVt.>zaA n 8:-*\TFQvV{1ŽaG_Ӂ\_LR@ GjkB'U_Rk NSe:rcJ&_zɔ$fgT&KBƇ)Tæ\+z@mU+Bb$lxvǪ5]BS09(P nIĪ==֐%+~WČRXQZ'r|;E+Bn fW> gkP  ?|GU~#gRymUnϺ<=Z=2٦HY'~KMk2*E MHن1'O_[Fq52z`{PsQ6-1_wmul?(c+:]2כF$D 4Q[=''v 78Gs{ctizP #!KDt״g gH!gX-]PJ eR0o^ț{-}f,\)''=e"2fˀApXߚ7+"ZD2LBrbbsrkR`8Yd=YΌ7W1 !brP%`KʲӨ5nt8QSg(Iko]].ḢK"%_6V>;W En/+/{u0k:cZۘWP/}wTï90h)Q?DQÙ9SoqoB}Q/$ dm~cxr}*1ċ 1щoI)_c&|z!xXksH ↩`p7kewEƗjXv}Tfy;X+xo9<5=gxX%fv?1x)\\fъ0xU\dr0XW2LKrON EJCճ@E:X auҟB[yP(i®X}^`Ђ_l ӢM|3_`{cӾ6N6a`ǪPym5W)xe6Q*,j͜l:ˮuf.|z\1wK}`de>L[7?sقGS'.:Z*Ct\?';Xi*sݑ`S2]Ve5@WV4 *n|77&_=,Zwha b2,EzS6dW[X4 :s@ &cOpsoekiZafKf"LxGۈج"mF b,c]dzEgx)5L[HB"nix|Cݒh!Vp+,,C(񺻦 }p.7+xI'jv>ɷnlOFXVT"%S+:Vrn7F\"CvE.chVYMGƢs5;kF“v|ܠZԦn{V_:Fs8q[0m\kڋ;^Ye)tͯÔn0^15L{T̛zҽB_n.ٓ/9^Sl*.pDixj?F11Mb,I`NI&P> ɕ5|fݱAas<+Zbi0q 5.t GC=taڝը;l:-jXTxd i\PEX"1% ɊbCV@i#$҄["[0 _J}k-.!o5veaR,(XJՊɃ\*H"y+4O4b\qZ=CIaLv=/cr378zptDa 64fc.(Tg/_?F|H6o4K8^Yi׿@l]JD?v3."Mɺ*DQ8- l-[.8x3=A1uN ,cX꜄wKaPW8fmTɪC"*ZgB0/lYXj5oUc~xuBg ,ʶF4x vT;ȯ;_XxW[sF~_qma0郉<\t<!Kw%Ӥ}liuηwn.r,+iBkR4ACFLW0$ CZ1"c#VE~x5,S1PAt*քs(s)>#lR^>ִ )f "d`^' i=$1Q&%-a60J9@G"q)8~WbJ;@N)f0\srI~%CVQx&h^!dka0>t175&#]_ي%X| 9B0hj/ޣKMߐNwoF ׭{1鵆p=^F*/FO8@8,ry37Y=3rfa=Ʊ#7DM$^=T® 4s<ЏлDR :BsjOIE0RIíΰ;GK黂kޫWiZıV,>Y:dx.> c+\VgwB>]Vg72ͪMUg'E Uuzq%9#2юmmTxdVJb±\wJOB7/V 5vcDR)̸zue ϡ^2F8<;+z!;Џ9JE8W9bJIE76֑lAt֭ELl آsfQŸs#>D>tr빚ڔځ*$0E@.rH />ø=;m ڎSud E*Man27M=nB"T_X)ַK8:RhC䑠Q f1ޣ&BѼz1wv(IXEp40#kWWmP|{ )5 q\?3B?:1o[~k,%63j;|524V=m\,.Y.'bh_gk?I%k[ [LheV}qkxmc|B^E 'X! Ep搳&˜t0'8Io -ȓmp~שLlډ)ۤyP'Ԃ]$&_Syh؎O= K[.']i2DU٪&0v_̈h\\u[3lkaLyЛBCƖi'kob[ޟ +Ϋ'ȈM׋\h~'\a4/&x^mcW{MctH%j5m+g nh(sq1Hs.EJ_o'8rGۋvrb!$UCif&*(53dKooj@7M9#Vf/tR44<^ I mt6*{D?c<;~ w$ ,8Sj玗̳zΗ@kz2e 17G'<<lms@rE!0Ee[Kvys/?n<*q2.LSUʌ)KMEʵ+զׅ১O`Xp`iԗ X${0JHA5W[*o+abkXqZ) Qf6JeZF"~̡p5K#8`Tk 2/o7\a]"B}F봢W<t&_8ЖW+rNK+dafrC.: R)]Z!(F ;qtsߦw%F-NK[&)G"{Pkf:.o1LdGrzq3yp}]/q|3|6ih 1pcm9f<kXr_epQ|)R bHƒXCF9G庋b8D9~L0A DML)UHmHjpp2~0v[Iqx kK\T605Is)k6K[{}2XbQcjzN}E`#EhruJm&l#RȒnxz|>&.$GP<G_ƣK9REw[\M/j~xd!kͥzKǓxӠπ 18kN[v":*wSmo쏽_& P*  FJs&q05mnzUGd:h>qv:F9:]xz.)*n20[n;d= U͇Ht.vH Zeva_MIkc"P<0.-5vɐ̑* S^Ņo`Eqvd`)ȪTq!xYkxy_vrOmj6m܏ΑFse- \o&jЬpsG˼Yob_ s`>g\ֻ?O'MLu_zl?%9+)7;>j 5_̌j\4F Qs aP󡨈 ;mE>mv CO[j4ӿ`]^o,s&~ɈVEwg ާ캘AB*[A_ry~UCS', _c9kgWӹӌp' #$`8tx;+ݽ/z0ˆYco;o^A/ b !%\ 靔G"Qr912cda!]F3s~ ܩxG1f|._*HS?xm6JvJ oB=T4_V4?lx[{sGX#rDGKÊLa554^ gxcg?=Nd? lK8W^d`lxna,C9#xY 0)D*[~*EDk`͓x E":ښ9t4Frڏۃs3ףmq,p}ak?'Tl_+Sњ'Iv:_ODf~d%rgd~ ,@HQ 2,Q9ܢf$7 ?|r&T5 g\Cc\ĸ!#| #&Wψ8<D]wBwuG}߁;-<q+-\I#7e(~S}=<\Ao< .\~&\MFWqp'H8q'KCt;%!>W7w[d/_s ÷o!Y:9:kײ{ew` H(YWTk$45$P,=M#OݯB?:IG_17'6h恀W"~ZTiS YM$Iכ,Mnzz[_$}HH7|,{Hiڒ^υgInvlU"o[3ϏR0NIFnoz; :MǙz`i2]N%FXw\4W]tM|uG:2~[RymoFn4^ҿPDx:"O"h K5:%4 3}2~9FbVI%qn6|{]uޯݑ!b4'ҟgㄏ͗OG kJ3t%frNNY[>@! Y2}oRldB I@eG3 5.NΗ{xHAn5Zޚs,Oxmٸ=&: `:F+) &v;qxԽ*RZrՒz *"" ,Y[3h ?A[ 069| +Q{~6~߽7 0S<u3=.4]5a`%>Rt$H&=h;a*>Lcϳ, Iw qbf2S,j75DIw+lDz6$bSȭ-ߘ+Vxz}p?TT[UBnRoZ'yh\@"OEFR8zE"~/3[(yj#g2dv!h(r,ĽnBC~ sF l3*Wtoe:Q?RCm g8A81"O襎2NV+%Xw~y$`>*8 RQ (ϻ A/!%4*'ĉYcr;1N!NӬH:(+Ձ!i' :eȥSCĒ-D݄D$>^bh;<}[mRLS6}S[fmbPvisX ،J@ʖX߮0a ) jlHFH5➠=+܊fP}R]L$OfB q;tLAѪÐM׈LM VOb/ZO G~c@KV)fO6 ؋jz/+x+ U߂l|0,W <އ>vvGh /SB{oQ`֦at3!n!FTRaͶ{rOihXq;*|qT)eW^ƪZ7ʦrC<~`{E]1EYz=R:._ﺣA?/U+뾿!\O.]cs$Xbh&q!Vj*&&K摈jnnvH[&xvc` $SA଼mtFHz{=ycC<}+ʡDφQBg.OqE_?Iq+c&B=dJTŊ'LMQ[AkB<y!uf0b50d"UjD(5q  _&[ԏȡmdtY*12XkB(%VЍ˙LO V BqLf"LWƷF畼Fo"U|);v 5#20B*ҙ )%_ K{rZSqk;w|.-fNG9!V ̝+_F.8Ȓ~#YrS=N] sTrcɡJڶ1Aesa&\sxLJ0Rat:*ӱ0-ʌ@Pjڌ,W53쪤d|XS7tQyCo{w\koDQ*zxZ))>dsH'T!N8<Ε,@nH"s R;tS]B:?aFq£/zaB[A(!)SR2tJD0H"pqӠ Dtka2hKRkgs!- :9%+1c e _q)]=N\OH,z鞂ϼxU(or8"'s+e,/>jYl X.읨@wZӵBx~¿m=ZP%SuP.TM!H4?JE/tTUը*o*83Xo|1U+z5.v߭Ph *~NP]9rAOO^vVUz c+_23rP=|&k ]tWqrt9@ Dۮq >4\_%O oS:-չ+)T{7maWS4_.;g}T/וZcKzNefAkiMg>ex+xaMmh"Fm2e:7ĿnԵEyE WAC!O[^BGV;PH g#i`E{WsK/(0tE׿w{ng-E|Gcnם͸DR' ,={g/+]vUۀiе /=ڝ xڝ xڝ P+xfO"C07n$n59呸_azKj+}g Yu8zh!6i}2WoIED=4V(msfMo腤*cR(]>;4ct㽆^cV9fAF|;}.v~orU- x@vpphįi=S+}֧so϶9' n1QY#-׃~5LNA &G@69m8Go7G</BtV\/t\'Wm5Czyg\,\Tc7l͜ էZ*u7.yvLp9hO E<{푶2®iF{iAo8 J L9{IKٻ)N|khVMڊGU'lv/UYe!nS=ZIG=ajl$k ɳ *靭vf:EItW u֕u#}~ ]&<)p4售?ٴ==TdoY{+}ŬtJ/ 6k0}4[*}KLk(Uյ n>NIhM@U¨/lJ*Ɗ126b9"Wa "ړ 2)0 \aR>З xSA gUC P',R@e@0%0A8#B$2ØP2OJ8Gwr ̝xpM"sl ,>R Ybbd}:n4y Gdp~ \8sgbbv6=T sAx ~;*@,WΖ6a9I=2,^*i9 YT17 aZy^&ik@ldSrqt]ypK*lHZPί-X:!QQ9C dSKJsݯ0I@VYc m|LSR\E&I ^w`$®C8Q+7)RqnP=eYO0o߿SUjl$`3*?a'B'ޠ! \mP9 oڿ[ads&\.ςzm,H>mzZ$up{$ &$nއٕ SovH y nkX)Tn (@ wFN_ +TKZK$!X `͔RKz/ "aDŽf"Z!a1"4 @7A'(y 9nB,e!8T pvq=A>& < %~ekaxqF6#Mzpv՟Nap={|>M`<"AX5 M;Py6\* "KW\,>F)@ @5f\4>dD@AkIk\&+ZE1˽ _&pC| B&z2^pa$b$UIP2B[MHȖqz ̦XiUկC#]cVvyZԅ čXf4ĺ!F9Tjw0(e>ש@r8 -̉]OIM- / :ג 6pRTZ5/tVV?&ȺUk%˲I 'k7JI9\)B[5PH`F(#W{D-c"j9Gxޠ +j>5By|GT q4h};XD |`20/& 8zLO ocgonT9%t>έN=}תeG8MrօCܤX*Q$~fPɰZ*'T+ːu=im)AKL؀7ʝu,FJ8@P6w5ؖqWޤQ *]+iZdĺYs#5.3-Տ̿~'Zذ:~<96iGoU2.Q26 r-oi_m>VͅS#ia' _tBTO!;$M s= e^Et᩸Ύ`0ُ!ej'LɆՃ'ꯡ pO 'zz4[9yK2N'mc3k+lx㽢*&~,07~_=|_߇1^v!~='7x:ovџs<62QGO͆F%8hwc<gOMo^pVSʃnը u۳wMh.~ӮL3xRGmjSx#100644 Makefile:9r1zyf_H40000 ipcav+!@ M\$40000 newipclu$C;,A8#v40000 numaoVDr`I(,y[40000 sigwaitqgz $j/#'~tT`40000 swapurX*40000 uinput)Aʮ+40000 ujsonxJ&5J^Pt40000 vdso0DkA0vxq100644 MakefileZ#xފ a100644 tse_ipc.cO=#9^`w[L100644 tse_msgctl.c ־Z t ;C 1lxa// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) International Business Machines Corp., 2001 * Copyright (c) Linux Test Project, 2026 */ /* * NAME * tse_ipc.c * * DESCRIPTION * common routines for the IPC system call tests. * * The library contains the following routines: * * getipckey() * rm_queue() * init_buf() * rm_sema() * getuserid() * rm_shm() */ #define LIBIPC #include "tse_ipcmsg.h" #include "tse_ipcsem.h" #include #include #include /* * getipckey() - generates and returns a message key used by the "get" * calls to create an IPC resource. */ key_t getipckey(void) { const char a = 'a'; int ascii_a = (int)a; char *curdir = NULL; size_t size = 0; key_t ipc_key; int proj_id; static int count = 0; if (NULL == (curdir = getcwd(curdir, size))) { tst_brkm(TBROK, cleanup, "Can't get current directory " "in getipckey()"); } /* * Get a Sys V IPC key * * ftok() requires a character as a second argument. This is * refered to as a "project identifier" in the man page. */ proj_id = count % 26 + ascii_a; count++; if ((ipc_key = ftok(curdir, proj_id)) == -1) { tst_brkm(TBROK, cleanup, "Can't get msgkey from ftok()"); } return (ipc_key); } /* * rm_queue() - removes a message queue. */ void rm_queue(int queue_id) { if (queue_id == -1) { /* no queue to remove */ return; } if (msgctl(queue_id, IPC_RMID, NULL) == -1) { tst_resm(TINFO, "WARNING: message queue deletion failed."); tst_resm(TINFO, "This could lead to IPC resource problems."); tst_resm(TINFO, "id = %d", queue_id); } } /* * init_buf() - initialize the message buffer with some text and a type. */ void init_buf(MSGBUF * m_buf, int type, int size) { int i; int ascii_a = (int)'a'; /* the ascii value for 'a' */ /* this fills the message with a repeating alphabet string */ for (i = 0; i < size; i++) { m_buf->mtext[i] = ascii_a + (i % 26); } /* terminate the message */ m_buf->mtext[i] = '\0'; /* if the type isn't valid, set it to 1 */ if (type < 1) { m_buf->mtype = 1; } else { m_buf->mtype = type; } } /* * rm_sema() - removes a semaphore. */ void rm_sema(int sem_id) { if (sem_id == -1) { /* no semaphore to remove */ return; } if (semctl(sem_id, 0, IPC_RMID) == -1) { tst_resm(TINFO, "WARNING: semaphore deletion failed."); tst_resm(TINFO, "This could lead to IPC resource problems."); tst_resm(TINFO, "id = %d", sem_id); } } /* * getuserid() - return the integer value for the "user" id */ int getuserid(char *user) { struct passwd *ent; /* get the uid value for the user */ if ((ent = getpwnam(user)) == NULL) { tst_brkm(TBROK, cleanup, "Couldn't get password entry for %s", user); } return (ent->pw_uid); } /* * rm_shm() - removes a shared memory segment. */ void rm_shm(int shm_id) { if (shm_id == -1) { /* no segment to remove */ return; } /* * check for # of attaches ? */ if (shmctl(shm_id, IPC_RMID, NULL) == -1) { tst_resm(TINFO, "WARNING: shared memory deletion failed."); tst_resm(TINFO, "This could lead to IPC resource problems."); tst_resm(TINFO, "id = %d", shm_id); } } #define BUFSIZE 512 /* * Get the number of message queues already in use */ int get_used_msgqueues(void) { FILE *f; int used_queues; char buff[BUFSIZE]; f = popen("ipcs -q", "r"); if (!f) { tst_brkm(TBROK | TERRNO, NULL, "pipe failed"); } /* FIXME: Start at -4 because ipcs prints four lines of header */ for (used_queues = -4; fgets(buff, BUFSIZE, f); used_queues++) ; pclose(f); if (used_queues < 0) { tst_brkm(TBROK, NULL, "Could not read output of 'ipcs' to " "calculate used message queues"); } return used_queues; } /* * Get the max number of message queues allowed on system */ int get_max_msgqueues(void) { FILE *f; char buff[BUFSIZE]; /* Get the max number of message queues allowed on system */ f = fopen("/proc/sys/kernel/msgmni", "r"); if (!f) { tst_resm(TBROK, "Could not open /proc/sys/kernel/msgmni"); return -1; } if (!fgets(buff, BUFSIZE, f)) { fclose(f); tst_resm(TBROK, "Could not read /proc/sys/kernel/msgmni"); return -1; } fclose(f); return atoi(buff); } 7x ~// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) International Business Machines Corp., 2001 * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved. * Copyright (c) Linux Test Project, 2026 */ #include #include #include #include #include #include #include #include #include "tse_msgctl.h" int doreader(long key, int tid, long type, int child, int nreps) { int i, size; int id; struct mbuffer buffer; id = msgget(key, 0); if (id < 0) { printf("msgget() error in the reader of child group %d: %s\n", child, strerror(errno)); return FAIL; } if (id != tid) { printf("Message queue mismatch in the reader of child group %d for message queue id %d\n", child, id); return FAIL; } for (i = 0; i < nreps; i++) { memset(&buffer, 0, sizeof(buffer)); size = msgrcv(id, &buffer, 100, type, 0); if (size < 0) { printf("msgrcv() error in child %d, read # = %d: %s\n", child, (i + 1), strerror(errno)); return FAIL; } if (buffer.type != type) { printf("Type mismatch in child %d, read #d = %d: ", child, (i + 1)); printf("for message got %ld, expected - %ld\n", buffer.type, type); return FAIL; } if (buffer.data.len + 1 != size) { printf("Size mismatch in child %d, read # = %d: ", child, (i + 1)); printf("for message got %d, expected - %d\n", buffer.data.len + 1, size); return FAIL; } if (verify(buffer.data.pbytes, (key % 255), size - 1, child)) { printf("Verify failed in child %d read # = %d, key = %lx\n", child, (i + 1), key); return FAIL; } key++; } return PASS; } int dowriter(long key, int tid, long type, int child, int nreps) { int i, size; int id; struct mbuffer buffer; id = msgget(key, 0); if (id < 0) { printf("msgget() error in the writer of child group %d: %s\n", child, strerror(errno)); return FAIL; } if (id != tid) { printf("Message queue mismatch in the reader of child group %d for message queue id %d\n", child, id); return FAIL; } for (i = 0; i < nreps; i++) { memset(&buffer, 0, sizeof(buffer)); do { size = (lrand48() % 99); } while (size == 0); fill_buffer(buffer.data.pbytes, (key % 255), size); buffer.data.len = size; buffer.type = type; if (msgsnd(id, &buffer, size + 1, 0) < 0) { printf("msgsnd() error in child %d, write # = %d, key = %lx: %s\n", child, nreps, key, strerror(errno)); return FAIL; } key++; } return PASS; } int fill_buffer(char *buf, char val, int size) { int i; for (i = 0; i < size; i++) buf[i] = val; return 0; } /* Check a buffer for correct values */ int verify(char *buf, char val, int size, int child) { while (size-- > 0) { if (*buf++ != val) { printf("Verify error in child %d, *buf = %x, val = %x, size = %d\n", child, *buf, val, size); return FAIL; } } return PASS; } lDxL100644 MakefiletxƝO%+1*&ը100644 tse_newipc.ckQ4a(% d hHOkxJ// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2016 Xiao Yang */ /* * DESCRIPTION * common routines for the IPC system call tests. */ #include #include #include #include #include #include #include #include #define TST_NO_DEFAULT_MAIN #include "tst_test.h" #include "tse_newipc.h" #include "tst_safe_stdio.h" #include "tst_safe_sysv_ipc.h" #define BUFSIZE 1024 key_t getipckey(const char *file, const int lineno) { char buf[BUFSIZE]; key_t key; int id; static int count; safe_getcwd(file, lineno, NULL, buf, BUFSIZE); id = count % 26 + (int) 'a'; count++; key = ftok(buf, id); if (key == -1) { tst_brk(TBROK | TERRNO, "ftok() failed at %s:%d", file, lineno); } return key; } int get_used_sysvipc(const char *file, const int lineno, const char *sysvipc_file) { FILE *fp; int used = -1; char buf[BUFSIZE]; fp = safe_fopen(file, lineno, NULL, sysvipc_file, "r"); while (fgets(buf, BUFSIZE, fp) != NULL) used++; fclose(fp); if (used < 0) { tst_brk(TBROK, "can't read %s to get used sysvipc resource total at " "%s:%d", sysvipc_file, file, lineno); } return used; } void *probe_free_addr(const char *file, const int lineno) { void *addr; int shm_id = -1; key_t probe_key = 0; probe_key = GETIPCKEY(); shm_id = safe_shmget(file, lineno, probe_key, SHMLBA * 2, SHM_RW | IPC_CREAT | IPC_EXCL); addr = safe_shmat(file, lineno, shm_id, NULL, 0); safe_shmdt(file, lineno, addr); safe_shmctl(file, lineno, shm_id, IPC_RMID, NULL); addr = (void *)(((unsigned long)(addr) + (SHMLBA - 1)) & ~(SHMLBA - 1)); return addr; } xJ100644 MakefilegX="xӭoˬ100644 tse_numa.c[E36܂F k|.-x|// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2018 Cyril Hrubis */ #include #include #include #include "config.h" #ifdef HAVE_NUMA_V2 # include # include #endif #define TST_NO_DEFAULT_MAIN #include "tst_test.h" #include "tse_numa.h" #include "lapi/numaif.h" void tse_nodemap_print_counters(struct tse_nodemap *nodes) { unsigned int i; for (i = 0; i < nodes->cnt; i++) { tst_res(TINFO, "Node %i allocated %u pages", nodes->map[i], nodes->counters[i]); } } void tse_nodemap_reset_counters(struct tse_nodemap *nodes) { size_t arr_size = sizeof(unsigned int) * nodes->cnt; if (!nodes->counters) nodes->counters = SAFE_MALLOC(arr_size); memset(nodes->counters, 0, arr_size); } void tse_nodemap_free(struct tse_nodemap *nodes) { free(nodes->counters); free(nodes); } #ifdef HAVE_NUMA_V2 const char *tse_mempolicy_mode_name(int mode) { switch (mode) { case MPOL_DEFAULT: return "MPOL_DEFAULT"; case MPOL_PREFERRED: return "MPOL_PREFERRED"; case MPOL_BIND: return "MPOL_BIND"; case MPOL_INTERLEAVE: return "MPOL_INTERLEAVE"; case MPOL_LOCAL: return "MPOL_LOCAL"; default: return "???"; } } static void inc_counter(unsigned int node, struct tse_nodemap *nodes) { unsigned int i; for (i = 0; i < nodes->cnt; i++) { if (nodes->map[i] == node) { nodes->counters[i]++; break; } } } void tse_nodemap_count_pages(struct tse_nodemap *nodes, void *ptr, size_t size) { size_t page_size = getpagesize(); unsigned int i; int node; long ret; unsigned int pages = (size + page_size - 1)/page_size; for (i = 0; i < pages; i++) { ret = get_mempolicy(&node, NULL, 0, ptr + i * page_size, MPOL_F_NODE | MPOL_F_ADDR); if (ret < 0) tst_brk(TBROK | TERRNO, "get_mempolicy() failed"); if (node < 0) { tst_res(TWARN, "get_mempolicy(...) returned invalid node %i\n", node); continue; } inc_counter(node, nodes); } } void *tse_numa_map(const char *path, size_t size) { char *ptr; int fd = -1; int flags = MAP_PRIVATE|MAP_ANONYMOUS; if (path) { fd = SAFE_OPEN(path, O_CREAT | O_EXCL | O_RDWR, 0666); SAFE_FTRUNCATE(fd, size); flags = MAP_SHARED; } ptr = SAFE_MMAP(NULL, size, PROT_READ|PROT_WRITE, flags, fd, 0); if (path) { SAFE_CLOSE(fd); SAFE_UNLINK(path); } return ptr; } static int node_has_enough_memory(int node, size_t min_kb) { char path[1024]; char buf[1024]; long mem_total = -1; long mem_used = -1; long file_pages = 0; long mem_avail; /* Make sure there is some space for kernel upkeeping as well */ min_kb += 4096; snprintf(path, sizeof(path), "/sys/devices/system/node/node%i/meminfo", node); if (access(path, F_OK)) { tst_res(TINFO, "File '%s' does not exist! NUMA not enabled?", path); return 0; } FILE *fp = fopen(path, "r"); if (!fp) tst_brk(TBROK | TERRNO, "Failed to open '%s'", path); while (fgets(buf, sizeof(buf), fp)) { long val; if (sscanf(buf, "%*s %*i MemTotal: %li", &val) == 1) mem_total = val; if (sscanf(buf, "%*s %*i MemUsed: %li", &val) == 1) mem_used = val; if (sscanf(buf, "%*s %*i FilePages: %li", &val) == 1) file_pages = val; } fclose(fp); if (mem_total == -1 || mem_used == -1) { tst_res(TWARN, "Failed to parse '%s'", path); return 0; } mem_avail = mem_total - mem_used + (9 * file_pages)/10; if (mem_avail < (long)min_kb) { tst_res(TINFO, "Not enough free RAM on node %i, have %likB needs %zukB", node, mem_avail, min_kb); return 0; } return 1; } struct tse_nodemap *tse_get_nodemap(int type, size_t min_mem_kb) { struct bitmask *membind; struct tse_nodemap *nodes; unsigned int i, cnt; if (type & ~(TST_NUMA_MEM)) tst_brk(TBROK, "Invalid type %i\n", type); membind = numa_get_membind(); cnt = 0; for (i = 0; i < membind->size; i++) { if (type & TST_NUMA_MEM && !numa_bitmask_isbitset(membind, i)) continue; cnt++; } tst_res(TINFO, "Found %u NUMA memory nodes", cnt); nodes = SAFE_MALLOC(sizeof(struct tse_nodemap) + sizeof(unsigned int) * cnt); nodes->cnt = cnt; nodes->counters = NULL; cnt = 0; for (i = 0; i < membind->size; i++) { if (type & TST_NUMA_MEM && (!numa_bitmask_isbitset(membind, i) || !node_has_enough_memory(i, min_mem_kb))) continue; nodes->map[cnt++] = i; } nodes->cnt = cnt; numa_bitmask_free(membind); return nodes; } #endif TR!xM100644 MakefileZ+? L^od100644 tse_sigwait.chy'PZED4\dJx$Z// SPDX-License-Identifier: GPL-2.0-or-later /* Copyright (c) Jiri Palecek, 2009 */ #define TST_NO_DEFAULT_MAIN #include #include #include #include "tse_sigwait.h" #include "tst_sig_proc.h" #include "lapi/syscalls.h" void tse_empty_set(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED) { sigset_t sigs; siginfo_t si; pid_t child; SAFE_SIGEMPTYSET(&sigs); /* Run a child that will wake us up */ child = create_sig_proc(signo, INT_MAX, 100000); TEST(sigwaitinfo(&sigs, &si, NULL)); if (TST_RET == -1) { if (TST_ERR == EINTR) tst_res(TPASS, "Wait interrupted by expected signal"); else tst_res(TFAIL | TTERRNO, "Expected error number EINTR, got"); } else { tst_res(TFAIL, "Expected return value -1, got: %ld", TST_RET); } SAFE_KILL(child, SIGTERM); SAFE_WAIT(NULL); } void tse_timeout(swi_func sigwaitinfo, int signo, enum tst_ts_type type) { sigset_t sigs; siginfo_t si; pid_t child; struct tst_ts ts; ts.type = type; tst_ts_set_sec(&ts, 1); tst_ts_set_nsec(&ts, 0); SAFE_SIGEMPTYSET(&sigs); /* Run a child that will wake us up */ child = create_sig_proc(signo, INT_MAX, 100000); TEST(sigwaitinfo(&sigs, &si, tst_ts_get(&ts))); if (TST_RET == -1) { if (TST_ERR == EAGAIN) tst_res(TPASS, "Wait interrupted by timeout"); else tst_res(TFAIL | TTERRNO, "Expected error number EAGAIN, got"); } else { tst_res(TFAIL, "Expected return value -1, got: %ld", TST_RET); } SAFE_KILL(child, SIGTERM); SAFE_WAIT(NULL); } /* Note: sigwait-ing for a signal that is not blocked is unspecified * by POSIX; but works for non-ignored signals under Linux */ void tse_unmasked_matching(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED) { sigset_t sigs; siginfo_t si; pid_t child; SAFE_SIGEMPTYSET(&sigs); SAFE_SIGADDSET(&sigs, signo); /* Run a child that will wake us up */ child = create_sig_proc(signo, INT_MAX, 100000); TEST(sigwaitinfo(&sigs, &si, NULL)); if (TST_RET == signo) { if (si.si_pid == child && si.si_code == SI_USER && si.si_signo == signo) tst_res(TPASS, "struct siginfo is correct"); else tst_res(TFAIL, "struct siginfo mismatch"); } else { tst_res(TFAIL | TTERRNO, "sigwaitinfo() failed"); } SAFE_KILL(child, SIGTERM); SAFE_WAIT(NULL); } void tse_unmasked_matching_noinfo(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED) { sigset_t sigs; pid_t child; SAFE_SIGEMPTYSET(&sigs); SAFE_SIGADDSET(&sigs, signo); /* Run a child that will wake us up */ child = create_sig_proc(signo, INT_MAX, 100000); TEST(sigwaitinfo(&sigs, NULL, NULL)); if (TST_RET == signo) tst_res(TPASS, "Wait interrupted by expected signal"); else tst_res(TFAIL | TTERRNO, "sigwaitinfo() failed"); SAFE_KILL(child, SIGTERM); SAFE_WAIT(NULL); } void tse_masked_matching(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED) { sigset_t sigs, oldmask; siginfo_t si; pid_t child; SAFE_SIGEMPTYSET(&sigs); SAFE_SIGADDSET(&sigs, signo); /* let's not get interrupted by our dying child */ SAFE_SIGADDSET(&sigs, SIGCHLD); TEST(sigprocmask(SIG_SETMASK, &sigs, &oldmask)); if (TST_RET == -1) tst_brk(TBROK | TTERRNO, "sigprocmask() failed"); /* don't wait on a SIGCHLD */ SAFE_SIGDELSET(&sigs, SIGCHLD); /* Run a child that will wake us up */ child = create_sig_proc(signo, 1, 0); TEST(sigwaitinfo(&sigs, &si, NULL)); if (TST_RET == signo) { if (si.si_pid == child && si.si_code == SI_USER && si.si_signo == signo) tst_res(TPASS, "struct siginfo is correct"); else tst_res(TFAIL, "struct siginfo mismatch"); } else { tst_res(TFAIL | TTERRNO, "sigwaitinfo() failed"); } TEST(sigprocmask(SIG_SETMASK, &oldmask, &sigs)); if (TST_RET == -1) tst_brk(TBROK | TTERRNO, "restoring original signal mask failed"); if (sigismember(&sigs, signo)) tst_res(TPASS, "sigwaitinfo restored the original mask"); else tst_res(TFAIL, "sigwaitinfo failed to restore the original mask"); SAFE_KILL(child, SIGTERM); SAFE_WAIT(NULL); } void tse_masked_matching_rt(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED) { sigset_t sigs, oldmask; siginfo_t si; pid_t child[2]; int status; signo = SIGRTMIN + 1; SAFE_SIGEMPTYSET(&sigs); SAFE_SIGADDSET(&sigs, signo); SAFE_SIGADDSET(&sigs, signo + 1); /* let's not get interrupted by our dying child */ SAFE_SIGADDSET(&sigs, SIGCHLD); TEST(sigprocmask(SIG_SETMASK, &sigs, &oldmask)); if (TST_RET == -1) tst_brk(TBROK | TTERRNO, "sigprocmask() failed"); /* don't wait on a SIGCHLD */ SAFE_SIGDELSET(&sigs, SIGCHLD); /* Run a child that will wake us up */ child[0] = create_sig_proc(signo, 1, 0); child[1] = create_sig_proc(signo + 1, 1, 0); /* Ensure that the signals have been sent */ SAFE_WAITPID(child[0], &status, 0); SAFE_WAITPID(child[1], &status, 0); TEST(sigwaitinfo(&sigs, &si, NULL)); if (TST_RET == signo) { if (si.si_pid == child[0] && si.si_code == SI_USER && si.si_signo == signo) tst_res(TPASS, "struct siginfo is correct"); else tst_res(TFAIL, "struct siginfo mismatch"); } else { tst_res(TFAIL | TTERRNO, "sigwaitinfo() failed"); } /* eat the other signal */ TEST(sigwaitinfo(&sigs, &si, NULL)); if (TST_RET == signo + 1) { if (si.si_pid == child[1] && si.si_code == SI_USER && si.si_signo == signo + 1) tst_res(TPASS, "struct siginfo is correct"); else tst_res(TFAIL, "struct siginfo mismatch"); } else { tst_res(TFAIL | TTERRNO, "sigwaitinfo() failed"); } TEST(sigprocmask(SIG_SETMASK, &oldmask, &sigs)); if (TST_RET == -1) tst_brk(TBROK | TTERRNO, "restoring original signal mask failed"); if (sigismember(&sigs, signo)) tst_res(TPASS, "sigwaitinfo restored the original mask"); else tst_res(TFAIL, "sigwaitinfo failed to restore the original mask"); } void tse_masked_matching_noinfo(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED) { sigset_t sigs, oldmask; pid_t child; SAFE_SIGEMPTYSET(&sigs); SAFE_SIGADDSET(&sigs, signo); /* let's not get interrupted by our dying child */ SAFE_SIGADDSET(&sigs, SIGCHLD); TEST(sigprocmask(SIG_SETMASK, &sigs, &oldmask)); if (TST_RET == -1) tst_brk(TBROK | TTERRNO, "sigprocmask() failed"); /* don't wait on a SIGCHLD */ SAFE_SIGDELSET(&sigs, SIGCHLD); /* Run a child that will wake us up */ child = create_sig_proc(signo, 1, 0); TEST(sigwaitinfo(&sigs, NULL, NULL)); if (TST_RET == signo) tst_res(TPASS, "Wait interrupted by expected signal"); else tst_res(TFAIL | TTERRNO, "sigwaitinfo() failed"); TEST(sigprocmask(SIG_SETMASK, &oldmask, &sigs)); if (TST_RET == -1) tst_brk(TBROK | TTERRNO, "restoring original signal mask failed"); if (sigismember(&sigs, signo)) tst_res(TPASS, "sigwaitinfo restored the original mask"); else tst_res(TFAIL, "sigwaitinfo failed to restore the original mask"); SAFE_KILL(child, SIGTERM); SAFE_WAIT(NULL); } void tse_bad_address(swi_func sigwaitinfo, int signo, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED) { sigset_t sigs, oldmask; pid_t child; SAFE_SIGEMPTYSET(&sigs); SAFE_SIGADDSET(&sigs, signo); /* let's not get interrupted by our dying child */ SAFE_SIGADDSET(&sigs, SIGCHLD); SAFE_SIGPROCMASK(SIG_SETMASK, &sigs, &oldmask); /* don't wait on a SIGCHLD */ SAFE_SIGDELSET(&sigs, SIGCHLD); /* Run a child that will wake us up */ child = create_sig_proc(signo, 1, 0); TST_EXP_FAIL(sigwaitinfo(&sigs, (void *)1, NULL), EFAULT); SAFE_SIGPROCMASK(SIG_SETMASK, &oldmask, NULL); SAFE_KILL(child, SIGTERM); SAFE_WAIT(NULL); } void tse_bad_address2(swi_func sigwaitinfo, int signo LTP_ATTRIBUTE_UNUSED, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED) { pid_t pid; int status; pid = SAFE_FORK(); if (pid == 0) { signal(SIGSEGV, SIG_DFL); /* * depending on glibc implementation we should * either crash or get EFAULT */ TEST(sigwaitinfo((void *)1, NULL, NULL)); if (TST_RET == -1 && TST_ERR == EFAULT) _exit(0); tst_res(TINFO | TTERRNO, "swi_func returned: %ld", TST_RET); _exit(1); } SAFE_WAITPID(pid, &status, 0); if ((WIFSIGNALED(status) && WTERMSIG(status) == SIGSEGV) || (WIFEXITED(status) && WEXITSTATUS(status) == 0)) { tst_res(TPASS, "Child exited with expected code"); return; } if (WIFEXITED(status)) { tst_res(TFAIL, "Unrecognised child exit code: %d", WEXITSTATUS(status)); } if (WIFSIGNALED(status)) { tst_res(TFAIL, "Unrecognised child termsig: %d", WTERMSIG(status)); } } void tse_bad_address3(swi_func sigwaitinfo, int signo LTP_ATTRIBUTE_UNUSED, enum tst_ts_type type LTP_ATTRIBUTE_UNUSED) { sigset_t sigs; pid_t pid; int status; pid = SAFE_FORK(); if (pid == 0) { SAFE_SIGEMPTYSET(&sigs); TST_EXP_FAIL(sigwaitinfo(&sigs, NULL, (void *)1), EFAULT); _exit(0); } SAFE_WAITPID(pid, &status, 0); if (WIFEXITED(status) && !WEXITSTATUS(status)) return; if (WIFSIGNALED(status) && WTERMSIG(status) == SIGSEGV) { tst_res(TPASS, "Child killed by expected signal"); return; } tst_res(TFAIL, "Child %s", tst_strstatus(status)); } static void empty_handler(int sig LTP_ATTRIBUTE_UNUSED) { } void tse_sigwait_setup(void) { signal(SIGUSR1, empty_handler); signal(SIGALRM, empty_handler); signal(SIGUSR2, SIG_IGN); } ::xJ100644 Makefile|ī3lXκC100644 tse_swap.c<12z#S]hfxL100644 Makefile-?hUjr100644 tse_uinput.cCJ O,!ez=dDͼx #// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2015 Cedric Hnyda * Copyright (c) 2019 Cyril Hrubis */ #include #include #include #include #define TST_NO_DEFAULT_MAIN #include "tst_test.h" #include "tse_uinput.h" #include "tst_safe_stdio.h" #define VIRTUAL_DEVICE "virtual-device-ltp" static const char *uinput_paths[] = { "/dev/input/uinput", "/dev/uinput", }; int open_uinput(void) { unsigned int i; int fd; for (i = 0; i < ARRAY_SIZE(uinput_paths); i++) { fd = open(uinput_paths[i], O_WRONLY | O_NONBLOCK); if (fd > 0) { tst_res(TINFO, "Found uinput dev at %s", uinput_paths[i]); return fd; } if (fd < 0 && errno != ENOENT) { tst_brk(TBROK | TERRNO, "open(%s)", uinput_paths[i]); } } return -1; } #define SYSFS_PREFIX "Sysfs=" #define HANDLERS_PREFIX "Handlers=" static char *parse_field(char *line, char field) { char *value; switch (field) { case 'H': value = strstr(line, HANDLERS_PREFIX) + sizeof(HANDLERS_PREFIX) - 1; break; case 'S': value = strstr(line, SYSFS_PREFIX) + sizeof(SYSFS_PREFIX) - 1; break; default: return NULL; } value[strlen(value) - 1] = 0; return strdup(value); } char *get_input_field_value(char field) { FILE *file; char line[1024]; int flag = 0; file = fopen("/proc/bus/input/devices", "r"); if (!file) return NULL; while (fgets(line, sizeof(line), file)) { if (strstr(line, "N: Name=\""VIRTUAL_DEVICE"\"")) flag = 1; if (flag) { if (line[0] == field) return parse_field(line, field); if (line[0] == '\n') flag = 0; } } fclose(file); return NULL; } static int check_device(void) { FILE *file; char line[256]; file = fopen("/proc/bus/input/devices", "r"); if (!file) return 0; while (fgets(line, sizeof(line), file)) { if (strstr(line, "Name=\""VIRTUAL_DEVICE"\"")) return 1; } fclose(file); return 0; } void setup_mouse_events(int fd) { SAFE_IOCTL(fd, UI_SET_EVBIT, EV_KEY); SAFE_IOCTL(fd, UI_SET_KEYBIT, BTN_LEFT); SAFE_IOCTL(fd, UI_SET_EVBIT, EV_REL); SAFE_IOCTL(fd, UI_SET_RELBIT, REL_X); SAFE_IOCTL(fd, UI_SET_RELBIT, REL_Y); } void destroy_input_device(int fd) { SAFE_IOCTL(fd, UI_DEV_DESTROY, NULL); SAFE_CLOSE(fd); } static void check_ui_get_sysname_ioctl(int fd) { char sys_name[256]; char dev_name[256]; char *path; SAFE_IOCTL(fd, UI_GET_SYSNAME(sizeof(sys_name)), sys_name, NULL); SAFE_ASPRINTF(&path, "/sys/devices/virtual/input/%s/name", sys_name); if (FILE_SCANF(path, "%s", dev_name)) { free(path); tst_brk(TBROK|TERRNO, "Failed to read '%s'", path); return; } if (strcmp(VIRTUAL_DEVICE, dev_name)) { free(path); tst_brk(TBROK, "ioctl UI_GET_SYSNAME returned wrong name"); } free(path); } void create_input_device(int fd) { int nb; struct uinput_user_dev uidev = { .name = VIRTUAL_DEVICE, .id = { .bustype = BUS_USB, .vendor = 0x1, .product = 0x1, .version = 1, } }; SAFE_WRITE(SAFE_WRITE_ALL, fd, &uidev, sizeof(uidev)); SAFE_IOCTL(fd, UI_DEV_CREATE, NULL); for (nb = 100; nb > 0; nb--) { if (check_device()) { check_ui_get_sysname_ioctl(fd); return; } usleep(10000); } destroy_input_device(fd); tst_brk(TBROK, "Failed to create device"); } Kܡ xc100644 Makefilek5w _,G!)100644 README9^wvl70\100644 tse_parse_vdso.c[f>]Wj+vȭ100644 vdso_helpers.cɦQo> H*;WoO=xX/* * tse_parse_vdso.c: Linux reference vDSO parser * Written by Andrew Lutomirski, 2011-2014. * * This code is meant to be linked in to various programs that run on Linux. * As such, it is available with as few restrictions as possible. This file * is licensed under the Creative Commons Zero License, version 1.0, * available at http://creativecommons.org/publicdomain/zero/1.0/legalcode * * The vDSO is a regular ELF DSO that the kernel maps into user space when * it starts a program. It works equally well in statically and dynamically * linked binaries. * * This code is tested on x86. In principle it should work on any * architecture that has a vDSO. */ #include #include #include #include #include /* And here's the code. */ #ifndef ELF_BITS # if ULONG_MAX > 0xffffffffUL # define ELF_BITS 64 # else # define ELF_BITS 32 # endif #endif #define ELF_BITS_XFORM2(bits, x) Elf##bits##_##x #define ELF_BITS_XFORM(bits, x) ELF_BITS_XFORM2(bits, x) #define ELF(x) ELF_BITS_XFORM(ELF_BITS, x) static struct vdso_info { bool valid; /* Load information */ uintptr_t load_addr; uintptr_t load_offset; /* load_addr - recorded vaddr */ /* Symbol table */ ELF(Sym) *symtab; const char *symstrings; void *bucket, *chain; ELF(Word) nbucket, nchain; bool hash_ent_is_dword; /* Version table */ ELF(Versym) *versym; ELF(Verdef) *verdef; } vdso_info; /* Straight from the ELF specification. */ static unsigned long elf_hash(const unsigned char *name) { unsigned long h = 0, g; while (*name) { h = (h << 4) + *name++; if ((g = h & 0xf0000000)) h ^= g >> 24; h &= ~g; } return h; } /* return value of hash table entry */ ELF(Word) get_hash_val(void *ptr, ELF(Word) idx) { if (vdso_info.hash_ent_is_dword) { ELF(Xword) *table = ptr; /* for vdso assume all values fit in Elf Word */ return (ELF(Word)) table[idx]; } ELF(Word) *table = ptr; return table[idx]; } /* return pointer to hash table entry */ void *get_hash_ptr(void *ptr, ELF(Word) idx) { if (vdso_info.hash_ent_is_dword) return &((ELF(Xword) *) ptr)[idx]; return &((ELF(Word) *) ptr)[idx]; } void vdso_init_from_sysinfo_ehdr(uintptr_t base) { size_t i; bool found_vaddr = false; vdso_info.valid = false; vdso_info.load_addr = base; ELF(Ehdr) *hdr = (ELF(Ehdr)*)base; if (hdr->e_ident[EI_CLASS] != (ELF_BITS == 32 ? ELFCLASS32 : ELFCLASS64)) { return; /* Wrong ELF class -- check ELF_BITS */ } /* 64bit s390 and alpha have hash entry size of 8 bytes */ if ((hdr->e_machine == EM_ALPHA || hdr->e_machine == EM_S390) && hdr->e_ident[EI_CLASS] == ELFCLASS64) vdso_info.hash_ent_is_dword = true; else vdso_info.hash_ent_is_dword = false; ELF(Phdr) *pt = (ELF(Phdr)*)(vdso_info.load_addr + hdr->e_phoff); ELF(Dyn) *dyn = 0; /* * We need two things from the segment table: the load offset * and the dynamic table. */ for (i = 0; i < hdr->e_phnum; i++) { if (pt[i].p_type == PT_LOAD && !found_vaddr) { found_vaddr = true; vdso_info.load_offset = base + (uintptr_t)pt[i].p_offset - (uintptr_t)pt[i].p_vaddr; } else if (pt[i].p_type == PT_DYNAMIC) { dyn = (ELF(Dyn)*)(base + pt[i].p_offset); } } if (!found_vaddr || !dyn) return; /* Failed */ /* * Fish out the useful bits of the dynamic table. */ ELF(Word) *hash = 0; vdso_info.symstrings = 0; vdso_info.symtab = 0; vdso_info.versym = 0; vdso_info.verdef = 0; for (i = 0; dyn[i].d_tag != DT_NULL; i++) { switch (dyn[i].d_tag) { case DT_STRTAB: vdso_info.symstrings = (const char *) ((uintptr_t)dyn[i].d_un.d_ptr + vdso_info.load_offset); break; case DT_SYMTAB: vdso_info.symtab = (ELF(Sym) *) ((uintptr_t)dyn[i].d_un.d_ptr + vdso_info.load_offset); break; case DT_HASH: hash = (ELF(Word) *) ((uintptr_t)dyn[i].d_un.d_ptr + vdso_info.load_offset); break; case DT_VERSYM: vdso_info.versym = (ELF(Versym) *) ((uintptr_t)dyn[i].d_un.d_ptr + vdso_info.load_offset); break; case DT_VERDEF: vdso_info.verdef = (ELF(Verdef) *) ((uintptr_t)dyn[i].d_un.d_ptr + vdso_info.load_offset); break; } } if (!vdso_info.symstrings || !vdso_info.symtab || !hash) return; /* Failed */ if (!vdso_info.verdef) vdso_info.versym = 0; vdso_info.nbucket = get_hash_val(hash, 0); vdso_info.nchain = get_hash_val(hash, 1); vdso_info.bucket = get_hash_ptr(hash, 2); vdso_info.chain = get_hash_ptr(hash, vdso_info.nbucket + 2); /* That's all we need. */ vdso_info.valid = true; } static bool vdso_match_version(ELF(Versym) ver, const char *name, ELF(Word) hash) { /* * This is a helper function to check if the version indexed by * ver matches name (which hashes to hash). * * The version definition table is a mess, and I don't know how * to do this in better than linear time without allocating memory * to build an index. I also don't know why the table has * variable size entries in the first place. * * For added fun, I can't find a comprehensible specification of how * to parse all the weird flags in the table. * * So I just parse the whole table every time. */ /* First step: find the version definition */ ver &= 0x7fff; /* Apparently bit 15 means "hidden" */ ELF(Verdef) *def = vdso_info.verdef; while(true) { if ((def->vd_flags & VER_FLG_BASE) == 0 && (def->vd_ndx & 0x7fff) == ver) break; if (def->vd_next == 0) return false; /* No definition. */ def = (ELF(Verdef) *)((char *)def + def->vd_next); } /* Now figure out whether it matches. */ ELF(Verdaux) *aux = (ELF(Verdaux)*)((char *)def + def->vd_aux); return def->vd_hash == hash && !strcmp(name, vdso_info.symstrings + aux->vda_name); } void *vdso_sym(const char *version, const char *name) { unsigned long ver_hash; if (!vdso_info.valid) return 0; ver_hash = elf_hash((const void*)version); ELF(Word) chain = get_hash_val(vdso_info.bucket, elf_hash((const void*)name) % vdso_info.nbucket); for (; chain != STN_UNDEF; chain = get_hash_val(vdso_info.chain, chain)) { ELF(Sym) *sym = &vdso_info.symtab[chain]; /* Check for a defined global or weak function w/ right name. */ if (ELF64_ST_TYPE(sym->st_info) != STT_FUNC) continue; if (ELF64_ST_BIND(sym->st_info) != STB_GLOBAL && ELF64_ST_BIND(sym->st_info) != STB_WEAK) continue; if (sym->st_shndx == SHN_UNDEF) continue; if (strcmp(name, vdso_info.symstrings + sym->st_name)) continue; /* Check symbol version. */ if (vdso_info.versym && !vdso_match_version(vdso_info.versym[chain], version, ver_hash)) continue; return (void *)(vdso_info.load_offset + sym->st_value); } return 0; } void vdso_init_from_auxv(void *auxv) { int i; ELF(auxv_t) *elf_auxv = auxv; for (i = 0; elf_auxv[i].a_type != AT_NULL; i++) { if (elf_auxv[i].a_type == AT_SYSINFO_EHDR) { vdso_init_from_sysinfo_ehdr(elf_auxv[i].a_un.a_val); return; } } vdso_info.valid = false; } {}xTmO"1+Kd#|ɑ_rivqi7mAo(h$2әy:/ՠwQqҊ@O;zQUsگU|/Uh1,ItZHXLch9!4rf3=q3)?)VzG 5_Kq $Bg>huO !2Y/\$5>%J!a@,p:ovuvqkcnL'q篡LjgZc C)J(Yg1%Rp†Ό%Z*ե1`lx4pO&kπ-]@GKk%J 8["INH;Am\(v) Y A"UQR ܔHL9$`|57I0]4dPW^ :=Z c!ɸʣ]:ݳ VbXy a|A%|[3[#LfU4Zdn-qRFu뿊lDtu{{ș/K܌rfዔh8F̥Ɣޕfc*x$.;e=tSN v?xOOtso_"CuZ2x340031QK,L/JeXΙ v h;71;5-3'aM9fO:@mGX WG_WIn&nʺ}[ʡ* JKrSRK m.?{^{ r#u/MVH[]MܩHH]ʍʳwpNvbğҶ*#Mʧk}P$%W'g&g5/[o=6{_bVZ\`Bնk9~#Q5gs]b7ciᅂq| j껉E)(l^ }ltʷ[Nd`Q =2>m6Y'/2Ex!,JAa"z/C7 Z{z0)€():8uW=f -v7q3޼b{uKB!xZys6;J,NMc;ZIlh XS$Kvmx:3٭IΖxAx'4kv;biFRq$C2ςHe8Ӥ{@NA&4NBOY;!q.\TyA`k%-dĩX^/GJ+~}~99'*R)gaUQ ͕'ft[qXBOŭJ32+@ mT 耗L[J"o'@wAy =1 … a]qR8t"uWܥMk|`_tk\Dg8&V3@ǁ8Nei?n{IW\_O0 TŒZes4o.9cs$&Hq"p2H9QXCa"0kdvNrG?K!hƶԄ}jlUZ |fN`'b.Y_Lj;4lZY YRG]/Uq+r6גPF=n˃eLjC8&? _?zҽ` X~ _?aPzۼa*}LmaCA^oz\ɂk4Z+k {Ka0[]KV֖:W]ކ ,րe w껑^zc%jq_UpV^{4y-Vp:Dkr:kY<ͤ 1i})= ώ߃SIM@.WH Կd Tx=w~uV;ON,5C l?WEbkr8|%Fqqb2L'?$ZrCWBZ6<"EyҦN돖s֫]j< Ă$:[h^\ !z6NБJCbzb>L&TS*p. *i9DO|q`_^{ Ud6d\Š Ȣ\P 1(Lʂ^,$xxzt>5g2D9(>DWs@aQq+@BoTALtDU(:*궘84-K,?)2Bxi9 OfL͹1H6fȨRkIŒ Ae=[ǜD"cS.#wQ_%OiG rQ"*H!Pex1Y" Xt 9 O<.z ls (tGT$uD%2Xt $U%&$IK]hu& ♆ْ"C4[B><ek)?.ByH~ QѰ$<Ãh0.=L˜Ysڤ>Df*Pe#ug"=L FsJ5+lxk^ٓƜ;"v2)JD3&%VD/3ۏJ2zDNn:ta}\,L*В6ttjl?*X)AJdf5WO$aV?kގ+ݶ7NFWS$ ⥌5 PCUCyjU AL JR*!Hs mHa|n׮92iDŽGۮqPt)?|_Jsm]Ž|e%抜jr]s&bв%Lx4㔉a@j9fjF8%A bc3@*DtS0KoOݢҞ#6Qss Jr]s U!.mn0xS,/  %PׁԕjFc Ya(,Frx:4K0S_FprjQ -'] XR>G"Jm#wD1|DyHѷTOeįLR\% Q4.ɨH{Uf׷"dI)Y"Zg،I+㨊5G 4ǧ"p`Q/$lAԪ5t6UQ #`-reÐ6G (fnA.u@lfb}I}h"KRnޡŌs㘓~ ~+W,D(*[PF ǟ~M)ٱXPU2_%.j!X >. *n +5Q6P"mRژR}Q1ock(a"#65e&-wHx П6w6|7Y{$#TT\g̯ɴPOޚ8'> ~򂴦NAO{O>N˖˿hX^n ݶ WiFGi/C<c46;w'9x׷!_nđ2Yqb:nJJ!UREuiFh<sqxqvyz49z>HWPR"zfނ|ta!Bsي<<dR!$w֪EUk5f)z҇UVm@;-ǃ*NP-`E>Xlx2*FgX\=b Eu;ƭj]U5']G/;Ղ7k ޷pO"{mnJQQ1vXgPAQJ7 9,V6S>"+r^*(V?m,ZWVvzZ%._y82֌prc$>G_Dxe,*+L=b$^ [6n[Frr|lmOnZ{OCjxVoE*FR5Mڗ/ &B("C׻lR+|*qFBB_P) $nzr|w{ ]*[2g|{Ϲ\E+˵],CXQ!!g꒴} 6sRO@y#~)k3тZn$( )7Oi!P> $dB C^P<`˕_S.g^ܝ< {[nݸkG1=pҦ|SXalFyQb6@0Z) M̴#We΢>mm6v?W9/+Bv`|4C? jWi ̕ea#yE%"aӚUj!3JED|%>*nx]ͫ/WFf77ʚiWv\V>PFZg7,? +*]DH'!c OWI-R/ЖkuWr$UX 鹼vv{ႄI#!u?\.א#rknbu! !vS@8ǚrZ~X,*aMx H.b!gEM~4aY1*VƪN[HWԻh9*‰nx:f^L&4gׇBfM#2<-i&"*d)@,"* ZF5SRk7&>CUNqia),ϧY Ďq.:Y,YМ,+ofc0!\Zhp+4ztra@}Od`CZm^-Ѿ dda~}5t94K~hbYipoS,nڂ+O6uQP_bd0M&ΝI;t= mpƕ[tٚtܸ6 g״OtW\Їp'e lsex)tR<mV[/G(CX,ZN5PcYaZh:6=G -D78U_/ҧ_%\_aiHE`W:ssHngMT6(n[-]<_2 @E_|'@tΐFo!|z>>=Y6̄a[r|kWNL8VsAxq@ U 39 oxmUOleO-Av_g;ewM&jC!J"|defZCJx3x䢞ă@8xJ!?]{j^j9e<{,vT6;~ 1Am;\ NPر[tCe2`QAܔ@9FGh%"!}VPJUi- /rS@OKuQN$\XYXDqՉ6zj{Jin3XѮ`WiٸyԥW_)WcԽw>澵e`n=J%]YͯYUڡT_+#?7[wM9_)N~뺀rӴC(O/ Np /f͞o6#ˮ^&FMOݽg{JI'*/T kE2^T9pڨܓ^^Ҭ %oڱ ~E0b453FW g3C}nYm`p UfLjk2Sѓ03|_ŗLPZo$~{^"ܾk4Kܶq6 ءጮI[-0:42h9|(dyQс8|* gDr4 "H1f/.Fܼ`i(mM#R= V˃nAUAR%H "3CqC QM.' 3GH<\Ŋ DjI->Pqi#&~|.V>HrSca8r36wd;Yp9;M,SWvu:Gpyƺ9GqޣKy$2GW1)Dl⡮03R(~:bgh/r(UUL < 4(Ć|}x>ȨR¤(’lDRd%LNu9t|ڲיipbp;t{[IiV*=ZrϾyf5L 똗 _i Ri-wm|J;V'(2_rK0zak;h'xƴpUNp4siIA_:M[-z]|StIO*W%w2?xuRkA&mֶVjK*җle$1Bj6f qHfwD{_oD xE%.7zmPﹺ]>|wE.tql5A~H֤ ťSWbvMUuթkU( _/<ɦTRL, ml.9K(Em Goc\&euF8n܊Y`;{Vmo!YU[ׇ8è?FWhꠎ;s.ܲ\Pz CP`xn0"I됮*~M5eY@2HCH%*yL",lA/NԆwVJ #|)q%S0@ 5q97͖ʲx?Z='n8KŸS'v d\R?CT^xTAoUIv7MƦ&Nlfʱ{ݢ4DH84JU g{>p B" q*!\P/ qA TRUy%UW|3;o[?73{l`?v7ճV%C|NH?|bA' Èc܈91'Љ|ކC#_$JC P q$$;H c@~8$ /Gi1S7:zJ8(S,{G 6Vvs_fǎ;1fLw;l{}8nssFfPF<XWI5_y=]sGN A[ 7JT3EpU8 QCMezx%Wx@:}wz,n$g<35=W\5!ؕDp Tle]ÐC GI7je7.Ϟnq,KI8UR}[&Je-:"3`IS;\fb3[N[te<8K5nI ?){bi%*5 o= 4Un9E+>5N`}Zq@)kÎj0$%!7<ۮNֲbPGjRFgNJ 2bqӄ+4@K'8Ql58Qc Lc 7/%blu iҿW^ ~Z*̶WéjAתPⷸ҉"Sו՝BrFBy۬mHnh7Jr  bVûguIC J\6ѳz7"21xUROANk#lE~(-R-h B=vڎlw3+ '\xTCdyhL<&-szʻge.? +]<=~$~J=jxm׉uv-`V<: ]0F1L31ۄm127% '\#S~FiW(iCȼx=tM_.8u8 s\\ ōaCl@%#7Z. nsb~䷶Ekg.|ӣϣ c(&ml3:RAPYOEh ] _eHvGT͊k(Om2Dplpm;.Th8^JڊPYGdk˫oL8gZ n?sҾm4/d)qM4KB AFCyt/n{a&H 693=IgTf %=52FA<ҡ,WMf9~B/儝phR_.~k9\vFA|n/P2PMMwĂX%xMAK@p떬kmoM1Y!VzPQH)AXt7͆Ba{~ ~'أxrl%9 /of^of84FHk6"g {PF۰_.|'XmH8}Pe\N_hTl_™‰"/TfKcf Pf$w`(U,BvސO$_!Wb*-up#>$n@=m æ㄃Ìt B`^/%u :ߞ^|l~Аvt G(Tmx]QDm'Plz6zl.v$r\XF(A{\/j'~%Zy @ 󇕣9O_a\oعͿ1Ʈ&txUk` IY׵y̙ٔmZjg0; K߬m&* < ًy&E$}y>ɗ\i f0;ę1x#RS+7)[RkL ;<7r;d@5,D ^@`P>H`5GwaPۅg 1KT"r%:9UpN̒jJf j0C QS3(ce||. ݈(~/ W?wW$ xd}С7Jm<.CieqiN(%ɳɃk<.E x:xrQ.5s:I͕jZaS ߐfǮɲ@WkۗydgD0-?4ӉNDZan<Bo//HplnFCx~'<`{V5kfmcg$Q ixWm6t9]vК@$2 x[8V*9Rz;wgߕ6@nvJ\ xqL8D*FKS fAe0' s@_S9h+d1ADhIJ0˃`-h8dj?^M/ϹbL015ՄE ,wVcD%IfF }[4~C<H! Hwbz -Z!$x% yr(4O' w"`y0 ߟҕ˷a&)]p>x*d'Fp:\,`4C<.&/Űċ7|"Znte{^YsVl11 d~iDړg RȥJ ÿTq|(O~#"(RBj68}>?:\,Ҥ@w'3o)߽O7iks:iy $BV2zUezNsEK@[뚥$ e5Q*+4ί+ Y봏V<c/?D rv޺Z#w ~|>>{I/d>/D*Bҡ;Vև`?ц9kDOdu膵pOwӺ7:0 Fff]w.m><=-': G"ΏύڕRX^Ff̒ amopVK'l]R)80sÐWjX.hb~˿w$nM{ZƳ'Jѯ. ,@Sبֻ4Tem:n 7(U xH^T]`ozṇ3M-< 4\şfD. .xhϩnғq\,⑒xբ^r8fr2LVᨖ3GlL#ftpA@OoF}@V ub5?MG{;eA?X';U^ۯ꾳w,Cz"x340031QK,L/Jex9sf UhqC*Դ̜TKڧ׼1|ߔ?2@&4(0>)?D/a O'k2=MK4F-xXms6,:NX8*"K& "A cP RgRovҴϾͧjJ<#ǯ3Q / *%iPF˄nP'hRBt)\jZ6bc AZ'/mZ|/TRg噀b#V@+˓@e"5м:_E"R/|I./ s5kX𠞋f+#g& WPeR%m)-ENϱk`BgelyJjr5XEˀdb͡>~Ry;ZyTgXM׃Ք:ǝM`¬X KƋHB5K$[o!y3Lo؅`:M&Ctнj|9Dv V C(p DHdܸ3' bG>HקJH%M, &R:}Je&yA7D?cE~ )QqIj)\;tŊީKĒ^{qgL4|Rv¿#/* bg\J^+0Ǐǃ9w R@2spLINGqh )1m!@g#YpMg4A35hQHx&do”tqS u!Rq""fR&:^$+j2 k<^zQ.,aV@ 4^^!O/~<8=t/=qT0Cx`GNF"Wfؕy)36~D(A.NFWnQz-4Q/[CGbyd3Tj̫[#I6JϮޝδr 7TtU Ҹ铛Iv/M@ 9qM(op0,\>!bmE"[a.UBz;( #A~a?:T=j ?{R7 `o/ s\-{ 6fy:SF~v_0q`{Ǹu@s Qs4K4-D}x3.߇4&>#m){Ɣʬ1R73Efu6$Ӛ@?-═t=wt:ë:Y{= /nj)"}'69~ 2N}rA) rO?&jDjLNJ1{rYZ`J%һؙvG~$+TE'`)7фrxKP~QZ7i$$_8b.zx0N2ذU~9b͠GztFOzR ۺ%FCv2'$ߍugyhQs=ƒJQ^۔I*AW@;saxY ^S/6`CQc8R&2P6#,Rȅ\ek+spȰabG`vM2C9c*(lnM|ߚ5VrysH-#'Z&sΌCnT3RKf㩋؃I4O"яQ7ތNtض6HkFƝ ~*tt$--6Z^ZSt] &YRw+TX,2a!wP?)z%jfƫBg'c'v6aKwL\W1Z|¤Z,'?A l:t6YrVߩ%˺, ]`KIk.8VN罾kEo\/Yfʀēng/j.lfQ{^t OE@6"ME+YX86Q }CRy+&[e| fXt`~;biK[CXԐ:[(̏v(Ak+mÀb;7o0-hv;1@Y7p:iO|k6R;,o?l ޽gze:D~p@ Fct|9tƊ= 33TJ+1aVZlV*?,JGu\D:m?:bGmYe5 o{e[̤,\HRղD 6[+<_$OpTy(08럣Cvc`;ҘويtF57$ o6HdJ4[?~G?*TӪow=N}JpDK5zWRI pwt]!G1%ajڮo?*.sw*J(<&B )X9q`IA g9rS'V!BPA;$׹4\nC: NŰnPQ̼#̀.糠̋?MA2ߝz=07 fY-rԖG?&\T ƧR7@"hσ7t0xuolw^ˢ;{em(#q-e_&w}l%6M~T*}l |?lq@gK"l[*%3P1DCd/kq nv$xv/*%l4=Ħ3NT\ d)vՃ6 ݦNw= yyf7;̅_(Fˀ1"ɝ !#9{funȳ|'Jzz(<ذGz:d|o4W 2gqOHP:RV'JfgGT; 7iXIR,evÖ͔EO5_M;uƗ5#ٳ`r?'PC7Im֍==~7psǦZ[*p+xwyy Kܳ"snQ1;#6xfvvl.r7'UWk7@_1Vr"+s;"c)ήFCHN8mCiRcsB\y>N/ !uzLJU5\$"?:iH eRfa4/!]~_/=\&=*nՋعB?$1%?s2(!b,$o'I"t"Eȳ=&7|^!823,6<]tyW%I!tH)0R5lKKõe jD۲wb]zWGI-^̷ì]v5keo|æVn\Umm#](FṔr=O4}}I1ix340031QMNMIeؼ;jE 5>f[7BIRf~|vjQ^jCWimHu>rIUiqj@G^⻆*^z%'s,x340031QK,L/Jed=q33eqCVBT&fe2d/v ⓜO82'&!/$)3_/{Gw(Iv]n|>*xXmo,9.r:8ɵ2少EbEAPZ⪻ޙ]R%'Q}ug~^˵ a4c2 2. )S pNOrjI=>t_#0aQ[H yƒ\P2=Ztys`)ŭ d @3XA E\eVCF`!"J#&!3@s D_FSb)hx5KxCT!\EDTsl%ac@9g8KgR;rM@AF%%5FSoZ\,Ѣ9D*A VūI:nl37z7=퍼gp{ft2 Asז" {h{Ʉ퍬 =\O=SwL.F >-1bYUX#ڜyp0!@葒 6<C*&# {̓!ZQ 6Ղ-&'MvN^/EPIG)L6powM1QX'8k`LwXɚM{á߆Š ߹iˏ`b4v;ƄGܵ5iH-bǧ:=*͑og~QaF""tB7%v8ss|]:=*as}\ʾ]Sֵzdo/c͐ }n+ >;$O.Lxm?@íTt o5,*f* 6>0ƾvNFgӤ`.$\A$ǽ%3G u424de#]Y?rwVr4|L1ǽY<1;_bJdb+W1w82_@:VO;-wᨇ[x7O)udzWO\x>tsoAtso_Vka;Hxtt`B*~cʠc= ~x}hg4[t+ۭ? x-**7 tso_safe_macros.h" #include "tsoSy3?x}iwGgWG ;C6g^CR{e-^(5U!qYU(DVqn~:~ۻIP7W[[[A74 d.(oA{8 .j\Dy=D {`Y8 ϛ,<, i q>$ I&4 F yj ,E$FyQ0W9 DI|z ~Q h\?RCPW&0J8>`9℺K0p3!t<T~]tvuO ޵/.ڧxrN'Aq_h\M?]l.O;npxvq"88?vt5{50y4c5::3!,/xF6%- An2o4Eʻ8#Dh8=8?L8f0p,iF`,Σf C2So78'06&” tBRtt'9+Dxp1TL<؟܅ըpx?.4Ůp&vaaO縉ej@ѝ@}0i XcOI;zvk;բdralDTPf=`~!i&'0IxGfno;2d2ܜfm{vߞ+Qur Qo&AgԬq< MhImiZn8m8'q8yV$ ZjQ&hۅ.793p`.D7qO+M!>rƂ\s|x4HS$w0!`8hLg[jDf8#D+4A7n~ނS@3쐺0`_M<{0IrF13(G\ Z`yxi i4G9nސ6WVp:nk(ʲ+Ep_{em!EvhVܲI< f> 'q,KxGa?K |ūjD p "`^H 68ϞAvSvFGןB&)nu0U.ؖuQC=ɤb9Sw|)~PI?4@D_T}^rsC8(mSڪ]x27Nmv0Sm =YLOWP]A:FW>?I :'&X I}||_.A]Ie8GA?Uu'w6ۆ/pb+r㓲e=kakos0{Goۗ//˳N-~{~8;Ssq>8-o*~U(\m}:<:PG[n)0㋣Ղw 0Os {'G`40pcNX"J~ ~[YHv^\>lk#ƃ`0m\c;&<{MibS0'D"F++u5'C="0 Y<)*ufW͠p&ˆJzNseA6԰[k;w+E&gd(8)2Q]59Ʈ:Xc|X}Ga$?nĽN1qŸ4O Zim8ޅc,$Ϡ?6"N)-X;'P s4QIwiL-ޒ gTDCݑ'K?L]1ѿvK ޿$23kd%XDW m pFE%in\# k;HY\ 9y؜9/>z Bئ׫ڟ&<[\O g ~P9ʭO~OpAK?(I{n OzVQ 9?&h,@8AA4ktk..;͠tcd{Х7xe~nT ~ v.+duB ś*Ng05Qd tq| '| xFPoH}*fNJW*U,MIH/=d m뮇r?ooGgw5*&Q1^~cRՒUyʸ86J"u$#K`/5yT=#[V2\ckgɓFI}#'!=c蠷SgLs};%cTPw3hl \Z_[t$5*cn!$OMWNk22ݖxJ 喿FnO:nI:B$i,L:Ae vNsvv.>8.:ǝv! sIa!9lPb;xQ&f/j6v8>%{v|""S絻L s3y0ң-F^;a8Z<㌗xqyf^;844Q-൛yhiZ?{QF@!!+iw嵛 vPEv)޻z3[Y+9CbӦE"{ȫ ɘt\Șn_x}i;Iy'0 ^Kt,y?0Q!ȧo ^} pˎo9"\@{`pܺZO6#ASlBڽ* %30ޑ 8uG-Q,x:a ,P4k.x@>sΥZ|_qQ_06B$v/U>ixTD5bEHҤ(Kl" Xx㏃"nI ZmM? a4/lkzDY<`C>db@W"vFud>>J wȼѭA,#S>H)B;ńwW(¥.nh]h GDp7JbHwvMWќQJ|KPo58JU:xIUvVmB ` #=2_>wٜ'Chy>,>_K_<@_F9bh۳CnS9gGOe[w+-JfRPc_ޟ .9a\ý$^ ".]|3`CA~xz]oc ZA; C,5Ѽam?o$Agz5s̨\Iuitk7Gڷ^q}qR+=<:\4{7C/&Nxx[sʇQ46_p6˃:@CkYnwtZW)t?c"`k<h|CÕPvÅ[ЁxyuI:&۷Ra7is߈*1?Í<Ʌ__5!LW >w۽Zn  ׉CMLۮc5Ԉcmq׽{|IO9P㢳sǣGhpPiK )ւE]/.ΩD5_.;{ǫӼ.*uDց^6օ䓃E*(@#@Fn%=4ZS/>ZOP.SM=Ȯr'wtIFI>N"h waN=\(WªB!F"ͅ\7T uwjA˲&y ~NZYߡ҆h Pp?Ǫ`դSy+$b>< hSXe3 x%Y Oˣ''lLjXeFI;~d] gZzƊG}T7xO6u,p0laPO2ضP7s u2xPJ ?(&Ntf2??e:uЕ0 p'䆎F~S$N{6Uak(6"- 8#KȍN99tW 3uNH38h?rs>r{CE戼Fpauԏ匋-%#4!f)`t͢h10&PւRڪ6TvI7.̐QX iN e3A$lĵ h2l>CO%E- ~^4BݞL#9DHHZk}w "A}mДO̴ /\Y.j=>y&ˣ:nMS) }HNw=k*%3Ek84KCN7wU&!z[de[ĵu%˺|E,\$J@ob>zke$BԷkS^8s#R9PUzu?NN+z=-ŀXH9i-Z{h6NtAZbG<\˲m#:!F3đU]NAJ_Mh_˳TB27QT'jauXw-'a;Yg.>ֹ)B ,?v=bWմ%[J뇸~6lLRjQ̒gx0m:P-k؊@mJB^=z* ܧedB`Dh/7ƕumtu=>2bEN a :a1JUcc99 xMk:jJ t?{F~HU hP t<m>]$)gm&5GQ¯sP}|pn_ |5X )N>:cb Iu5-q\z CFOjm咔/l)Q(.-L!W_;FϽ+63`Ss,)Ѐ%e FwACRȔ|'87mgw/E)S΂u~OE2g)&\<]V.`^Rk]E@g@LbxD+pZ+a/aj{ kYJ0á[vi.οvglC12IyqL~X+m6"mĥP .۸+:8;:띴/[H֏7ՠJ-gk-6Ġc|@qt ӁTl aIz'hWu> B3}fQeszvy9$h=TӜdN䄙VCLRr"$ r]5mo<'45 f4{&ێԜ'D6y Kž-z9 Gt%0/@[< `B$oGjpRNbD VdMNנ%[ܯCX[f5^e:*;D?fW(WBPI]r;yd|-+|<2j #0 @P-S]sst:iNb>S{ͣ5v]Q׭mMuM6{@)TX-)!SjdKUqUR_%Z\_39IЋ` }  o=VE:n݊` 'hTVF,<2šBPJtLgbS 7}vZK~CbFv|Gm6~~$. PGNs))NJl7qb#[[F.'1G 5j89v!cU"s9RmjjRjSUz(?Pjckcݣӱ=c5ckRbR]Ww̵kɡ(?6GB znE]ic(yuy639ya>nリ9ӗYҖ?)m#;6-l=,y/{,?~P94m. I4IL\i1omG 4`Q7*Hm:5`Zh -MM`^\5QF}(6*+ ~ZE{ W1Y48n4Ц@9^%88*WFYH~ uX tpZp"sbdQuC ,69է?KPyG(k!C(Zfo_n+2sϻ19.A!^fAI>z>ZDJ=NZHT}3LFG1H=h(=a-5"/͈U{˯ ȞksC-Ey8\p&zH63?uܟCSشIZ#9TդwZ"0y f) d3&C^ 9S0e 4f`b6tnO>؛M9u{PBkV^ $M&~.yBD-DJcos鹝/B01O2,~!yž!$d.u9Q:RXF..aj-VH~6rC.wܖ[5-@v6^ngJlL\7Mo_[;ggjk~Wz/y**(4I"^&h-wM|Җ\aP(+a046WZ΋M0NXat;*I =v󍻝aݴ6ׄ=0#dI.(8Y?Z3I{!Z`L3ֶmӰL$-YoXN,4mׁem[+W|'cRaoJjG[SB-2QZĺhO@k) 5~ xߔ<e,) -$Oi3x [mBP3RuѯwN%a,UW̔5QAb/X^SࢣP^mOKcs;~ۂ/BrL\ EGk+ĖI0bƅ)uDMlk !8~q=b *ZUTSCp@ c?%VPxRMET!)3`@uanÄ'ܬǹ#r t#XriD DwEB 3¨0{* lX$>L ʈE7VsOTrB|zmzlHƱ50K\~lhIv][B٣觔Qݐ8H0Q28Z6mXaP7 ZkrMݛܡKJ' {K^8`&p浪 96F`pE*v(f.!R2O0ڀE]ԍl{df-FkNK͞+WѹXp]]qԈϘɯ`YY@:Fy @kkpA6P 4 7C8ulA*l|}2SZX|`aǀކ|oyG_~LmobTP`RPᚻgiE1ڽ/A9:r~z=J)Ev?H׬Ogr~p8bp/R>7r^~S6GGI:kƚhpDaB G$Ynk,q0/- D !NXJ6ٶH =&-`"HP.$E5;E Rg 9}au`빧_'*vK]c^a~eZ:~=" si &krj8WU᠓jKuk,m4BLTw vM+! FS.!YibNwIZg s+ HybMXo~,sL onHbb^*qw6th\Eoӹ[mQ*ZeUA?1*K9¼OFNu:~~ zDstGkX1&pcvn9~>na!*Zʌg9h#à S6BEڲIcD135)r!1AhӴ=< j=NVb)D1&owEޕ،ilgkԟ^/ N=cy&Ke0ܤج{7)Vb/Ia0dcoS|;j5)L? n݋s ͖LyN֖!ɹٞ'Z`$7ErfSj+U`Zz΢' ȶ+xӌl=mRYb_AjUϫ\DjمG.|NCj;Ŕ]Sr#zy/0+&pA1o>o%G \3đ6Izxv0 e-X_cr11¨TW)d;"X4 sa2`dDXcT"@!G󝗝ZX{c܊R2v.rc6XH6ޮ |'9;wk!艸p3c'`fqq\46Qخ5Gy>,ٰŰMs +˼"hIN E|'=F[\˔!"/nþ+kpٞ^1iҌӅB[b%D)> +Tɍ::'nL+4J _P8;PTe[\.`D,7=֬;<:zMIͯVK 2:%&yLnϛg_ȡ2uP/Q7'n݆qaBZD3|7|M^i2?D#'\ zjs,#$y֎r5]S̱&Qba  -mδR͢3f:)2bF/|Z{l1SrI4骑SCi0zrř`5?i8,ԉm7٨Y~8O!{ WUhNCc8$@4< 8{q겲m5I{߾k ?yM?q\Ǟg٨-UgWJ$.55pdl瀟lӹYeemv&(GV%U ;{X嶯W}2i1M~ëKJ6?4l+y5Qe0d6L=-˄XdKT)KuSyV*ƿ#K.*Ĺd |+iM#]\z Jx޷> ?I\2b!t):wؒfukR#Pgf[UT̲_0ibϞǖ/&RT}PՇ_b앇$- VM.+^)Ez(롇ފQn*MbB4#"\x2X>/ԵHyTv!}~]VlGBli2~mf싦m!n?6fpШI'5-h-QʧPn@߂o7[ZiUQuMmQ1qx O PM ! ޤ:ؕ+C.,8NlG3+ʷ=(V:bg~ЈW @ CL6^NxpV:]ΗZq9l,uqhy3 Kwa2FmȤ b2aE-Oi 59CnYd{*5Gd"O|e'o"VzLٓY2Sl*%7hb*z6}1Z&_UE,hxVJ5xF:Di o>$寖;BXFԕN?`bXU*/cCJZqOsgUUp[~O4%lJXἷpʋmeF*X#Z7 Bc+U猭~D~C-,-:}/GeQ:jp7PiY>c :L+^k>C<2=2~[% ׶5٧ / ޱ{C~rЌefƪ-i&rnOd\ؚ3 @MI݅N0#rqii;^n NXaw5.5T@tT~j[u'|{QK@zܕ]&p!^=َ7ʲ LD7WXv3 {bSTg7`5ՠh*XAqnIn\N?%,] 6~Oi54k{zGgKƁf;cĨR(&|Plh:rI85mV [qsvQ{x]ţbStg,9HJ reW214OYH tk릐#j+*1V;utc`|d&gb +%?0RDmCFq\oN/X͜tFiGCǛ:07~XTd~@de!FE@3MXKh:.'u*1|6MLޏW'VÜZ^~ۡw){𓌳b޲Õuf#`=_Nq[ta-xMKranr॑kPhU.7# eD8SW&&%VHp 8%~,ϖ?9J@xEqU(-E؛H.>@)7 P QtlM'kL )~>~LYϭ`B6S=pKմixk[ XMU ۇ3"pvF Ք[c##wCKq?fnb 3D(W1H%PPI6ᚌ䟚)u{@Ǜ80%0CZ/.PF](U[RQE#x9,`>eu0@&bgNp]"_4y"nDBۻI0"lE|"엧 TRq$^>1R!(%BMnoJA^bs`%X*S%تL8UJc9W0U- EL,l U%t91!3sF9@Dn ) xe3X9rHp!|՘@U3Jɸ2%])F*&@õf-|4Vņ8JK/NAD>eU |!897jaL?zqM*1(-DiUܥhڿk!R7F:8f 1o,=DZJS.{:L-wMq7Y ջ/ۏג}TA!8kZ*I|fCf6GaI[! A ϣS"i8gUji@lV^LPRsOYfT29dI u$3A|\3:utn犦Msm,Ɖ#+pЊ$/&K#왒\컃":AUidԌ2=1"+N =h?@cKoF.y0r=fӨLH0OkB9TFwYnoQnz-:%z$_jIj gW7E Ղ"(@@)-$zs7vz}RUO+-l)ƔtA=,2Q'PaVN^J:P*GUMgZ/K mc|R"Vc!c!bp.7I 4LF+%f16\Bw`y  u}S9UBkn;shG2>QptusYrW>B'tRꃜ䚒n}5M@t>M-_pb۟%čyYY*MX̀*LMn>Y4A`bb` x ρ;`5@8/$ mp H-!C\Rž"Ďb&Hs׎PﵲTx@Z(L=p ޥ,Bt#]換30/¤ kuhݧH4"gdWSo2E$(C.y4׎Of-1UZw- _2ukό4 i1k]nhwD4mj`p7\@7iP#!#17/_rEg_PLy[SW/t,f8)HdF)SL^N9:`Xin])-"6R)1&| q"$nr\0!3#r+XRHvې.G7z(FeDz@a -Ә/΁ &zb.7t6hK`(GʾPlm;2úftsr+"=1:IO}CWضa!=HLwó΁ StEV.boNs& BVctU۱rv05T"zi>|RCز9E\D'e/| PO\ǘ t=3G o* q㘲Ry^q[AĞBl^Jiq׉ezNjm#J&LzgNhx?ǯZÚ{Ps l4c$)s`"RJ)' @XSHaDJSv>i$Y^w'zcgܛ7tԟ =:]X ; bh5 %rI/- <ׯh-ӛ&@P*.^TK=xWJbd u$\VBG_HT5yJDThPGK@`]n!xftqҰ|;3tbn;K'~\xµ^tͣj52!EV eqezIc\[(!(=M]Ǯৢ%,z 8ThK[ =ȻL ^:-bUl#-PO%ur9cDMX/ZzCs׌~ۿ/Eg%;!6`)ςk (Ip/ZȚJQwT{C1О.`ݲ;T/IAmu<xQGoۗ 2ZxZ+ur|>.wZ..:݋%-\h3Z((?sSp F>̳Ȇpg^B %gF986r ([QG ~>`[:ae PQ*":E|FaByX¯Qp; uÐł7 !I P|*26&{_ܚJ`4B)AZwUh;%)^< V{{'`RI "{Ves:TlRͭ+9N؁JZu#Os{0HưGJk^ͭPuU-)i_L:&7V'k1Ҿ">~eW՛hF#~cB#UãdQ | [ݟ΁(!t7.N?E"G_z)|G=7 y8&]: ᄗ".Ng^OZk`2o"-b Zg$*])L2O[aiKKd)KL؜lЌS1S.SBؼdKo2hB^D[1pZ1Fȯ{R h01T Ě1`ϡͷI"@k{ԡK!6$h1?~#&մ[0Qg`֊pLwuڙV`\ָʹa'։o2!./_Jl' rwk2/)X@zѿ&b~auEay@fhQmf7FStMT%(bvb)/dIҭ 1iTW@nۛm9"IM!b rC΍EO+Fb()Y7^v*!2t.| #f6{%Uc-Eռ&*;Qx`Ol BX4mT8iA/9 vyڏC=lUlbp.CGŠt!=6Q&H@T9 >`O4*w9 I K>pf5E6 n0+ LS' &kXV\zEq+W$6Ů5lEUIh%l %/ى039ڟ89[>)E~k뼯Wb=5Yl|+t);8 'InRVfEb<SCL(0|tk2NlCL!>~7).)f޴In\7ܑR9uM29(` gM]nZcid!.be:$N@C7z6Ux"I[44='0Mƚ % !C0 TN.:94IcqV\-Ѫ _fK`Oyܵ\D%Fx+= b yq׽jI p \%fQ·3^U2* rH.,N4G=$5gjuP=%E(4(U*-Y o *F3SWSIa&6R`zq^ Ttۚ)4O,@ŵ&qeΐ&9pÓ˜BP\F~6rP4=scHyW<GWCx@HP_ܾ:P8yzN/qx((6u1GA M'8I)EFn^db@P!jQey?E0, ,,i$YSP.bxMPwx2e#f JT{M(NmeMERt`I$tI1 l!O-@bi&245Ca HѧAE\ VA ?GZd#eP%=1Gp%+Uzӄ 0@k J _Wd4l+[UQQxʦ rvtJ b}:) "kC#9lE>4,KsAk9NG$@Mz \B7℔*G*cX.?vu)ihSHN9|[n؃r.e3jS@$lǗBWgAp(䣒87ɪnC Fcƒ.))+jM^ Yn9"3OU9>Sp3%.};2p&,/E[x܂asJbJ4ǝ=MVeG|000?خD<"+*Ou|1NmӵgCW҄ G2Mp8c.BuWVf⡴{gǨz{ u^U;SyÆTDhء3CdLsL^^ڽ̜n՞maxs/56e܉+֤Dzhq&&iz_(8:= ҅55萛,+Lpln$o'lj^̿Vxj8$צlK#kQ:@ܜXac>8y@^4}=Jւ VYx9T݌"\"P/$=$93'iY٦`Bu@z)]lĎQ6Ao,IҗŢQ3-Py`,E.~)xMC_+:^2lrA;O=#O! AsT ~id;`UBKv"28Ώ sZXdSWC1{P㸇ùLFKCwAC<+OӉauQ?uA ^jjCft'c -QJNwg J2|xfњ&% |FPЦˀR4΁o IX1M-5'lhT։tY8"ZECh F**dDEˌuEâJ-ߜ]/dTr\Q}¿'XVCI#)02Ӕ)bϋVw/m5؝ ৬P] XQSWqgOУQ6so}{k/ >\L4ZF r^sF*hY>)*(jú- ?BHRav;Q"r-F31&Ѝ2lE0Oa{4kϤ-ID+v22 hI,}n*V:xP?` ] 'O;ߓX~bjxtBg1d`@0%Ðd&i ڗfӓ 9*-ƽE̸yh%|0<;(4h/6_^RU"/F` y{p:CANpvmJI[֤/df"!Agb[UHr>bcȻAN|x9+|Tܐ\FswgD<Ke `->†|FO05;7;zyqanh6Tyq*91R a#Q8YGwgNf}'\P_%I7Cpۣ"5-#/v.a;9RFIS'Q<+EQtLa=18E[ 3 :ڢ P^lRꡤ:Xmh)E13*_=툫0գ6o952R׭\z0B[#_sru{_i{fEѤ Ml(ed'͢g^HJ+ Զ!9$33k.]#S2ֽ1ⱅVִLYG<uj>ZU6/4z0̼8_Ϳ/Y^Zv es&Ƅbnmmyz/:C豗b s½%#3=Uyd +-Fw`Z.{h>v66OQ9. ^CN_XRaEt^&SeP4\O 1GT#3 yc1f¥c7"…;<;?$걽][~6RoPoP”IS_`TWdky:yz :aK24erך'ڲ >r2CY[E2\SW_eѵՊ&"@}v5Q6cNDNg&>lS}}|5eh;ia]Ǽ:&ōjb,$5^ĭGD~щW5`9<ŊiU!|+-f<[Wjy=L5v^[KVF"vqD v%{wsy+i;l~}7jb LuIޡ}uł:P8-%+O4Cl#~GᏑA5YrE$$q x{}D>(~ϼa"O>}cŒddUE6·s>|~y0(o; L@ÂO<&g-ep񵍖kз)t9_AGBk5i`WEw8`(@uU<5"O-EIaiQ}6oiɶ^qe޹|"Y2L=8K2|Ha jmMx\縎a\-g )o33tMNRKP.iqͦn_ WȪM7>PȮ'ybU,seR(qp8{F:{n9|#|pgT *P4tjS3{ ǡT {9/b8O$/k+c(*EVrSN)ʜ$D! )<9;_u@uz%B Ɏn&fib,}L6q/o[`^wfg G7US6F@u,@r;\z觜h?m}0(LaJ(vM}}@{Qq¤8Hi|c26AgOey4' ZC%nQnXqkXUlɈ5ouw8ZVugqM #;Ha򄇯@TXdPʕG g)U_j`4窩!NX\BD0DŽuxS%D7U5 ժ[?NVD%DŽeSCpn& dC`zh8fOrkm3?=heNkiK{3DepTrLIY^-5樂Z?B2`r=͈OOg #Yg7E!&.i cVU,i򓮙rS^8y5_B3iz:|' t I`eP+F5!l%bOMDڧJE\XGf=X^h}p\.F;w!F4 s2Rј)P>6sGq6QZR_٭9֯&[jGrFfk#ik6$]ڹ6&im-;#).s9Qqy, loF=n:E>"]\|Wtm{—6(Vew0]Zlh;k˹88IaN:~(A dɴE󰦵Ku/L3 3+^{:w'D  U}5H{ h8$#`^U)*u$O&N7fwnpGݩx26ʂkQKwXA e7Xx}WGhc# 7ۅ7 "(3#0%$N~RFziӇdHLD+FӽP9SXR!* t7)$8IA]I M[?wn6mr0OR?^= ? >f_8 A} Q8Ls>Ch\q o ksy$U|98Ϯ2G __Rȟ&~-@7АE_ z' pHX GB5bFl,ÁiS>^\ԀP&49(Ol č}K$D$y  UC|ܨ"Koeg={sV{/f ;UXX&é^74,ubUgт1 dalػוH]lű7 U,q:+z6Ch2%S\a twqşj0<9i*?7`le֣cڟ *r$F/#<^Ƽ%&ut ,F3X4>hœM|`3Ux[&}I,f{cyl'̛^>2Lِ_4wQ0^.4a'.Sқ5'\Ǎ 0:_u+%NVC=)wC37 %GRrͧ>spB2>!M9)@P"SYzOý{OBc RY _jfg|x?O/gQК:Tm8!UnC,Ŝ Q>r`FM&!URkZ̺\}Pc1?Z-n {YfG"Ì3M g"8/M"d>&Ԑ|4<R b&)0-|8W?#t"fP;ӊ P65 \v9(;*}?1 b W{}Se!ycr`d` z3Ձ֩~\0;wdu|Qxwhb8Rf}V^DHXhd#-$I*HjlveUDZڭvz'ݪZNk E [[$M aA2vC@ːy(@ΘV ~'4UJEH3%9c CO@F cH{WJ VODSFǬhfr b'ΠUWB´v #.Jl%4nS݀}.D<< %:"N}Z4Y7}2K qYC?Pe(z#A2-l B7O}9*-@?]F?7tTyG{7g|N$x + 9 *ㄛ_ԧO z.v{Pn#<0<ƣχ:Sck~Aǯ>bcy5]y[z^v^x*OkRp#%T5,nL/C|SdHE3+"H1ԞFP7ȢHRl5% ZZ Ţn)zly2Ya0m<<ā Z+E>/}_>^-;Bmd W2F2p>+EN%{.}1R yRcCO~,dFplOlfWv%GI9 _/BSYy1U0@#- >>FQoN׷;Y~uV;op6Ҟv/3M3|#/ ^I/_w.;XDZoMJNF9ͼ(19LÌpL@lcۆMqmh=[ܦ w}?/i];_v_ݞpm^G>Y;sdaf]l>\`bXW)/rmԲ֕m`\ `X;( L3K.ޜn>c2.cC,hZ@[ebIlq8fw,,.3P^M ԣyg;z5mᮉ<Eϛ} Ǵjg J ~ 3a P/Rx㜼#a:[M?^k1~ ~?T?qoWxQnQhG Ɵt}qll):Ly/d?YvSvj۸^@4VpR^vN@{Dܒ&蝖6Rv-@!`gE$ea=W'fV(;y;XC&X5"9V7jbyn7Fw~: Uz5hq9.fW bS/c]fW i>?^!AȮ&ܞW: WHR$abP jxXiUm/4i*BXfh&;|D4]ywC;vK9>rM "V{!A"@k'@FP(mɐ3eP=q6J{\{L@ ӭV))V7D~;Ёh0.?K Ej nhDldn )٧ۯ- •DfM yS'OMM"qB4\"xqQ){ı`V_}/)ad-keOfE6ZJ[i)y7p6+@hly#LP,Z{;-XxC( }O䈋 BD2mqK娍AMz =`k]AaQ?6jL @g7AFpx&`:#T$9B׮-z@>Zl#tz⡬u"93e}ӐGv^h7 P񚯆%V}5|9YhfW:(;j4Y'2+Py&SQ$ tN)N5'"{(I+x#4<薥Qhى|ht=Cfk,Z;L56eZjȷlgN(&G:S cѳ(X깳(QӈAs4;8SgV%+L%-0E&xԮMGݮou;O,`:/*e}IDwHH=soW" M@'mZUI6AK[{ ޳t$%вu4r|iJp9J6Qdv*]Y{IIHdMF< HaP!H% 9X:G<(-{3nll̲UkZG i#>ɒ['1"ո/T0V#Ҵ7KuϋevRxmm ~6oi~|"_rv&W \G\'ۑ6U5;@jQ[ȈO0Vy!Z>3>ɡ,ꙆhU^fr%3[Wb$ v?GLv֦_~\MA!FӪclٗJW\f2ZJSdM9#͞J+ ֙CyyPw_9ZeUe]3&E)0*EQ= D_6f$خ!SɚIEES%0729*)VUXQ:.xa26Jc>/~pb :(Sy k4J, 4sz.:J9(+}8ƦUUxwwpCC5DAi$)i=B2ZN"Q^1?e LR AB,j5aw欋u3*ma^7^.gp׍<^(sٛŧpOs.Q_Vu3/ٗVJg_wJz16Q?u-lE)@,X߃B`wCqrW:gᱢO _C0u0t}dqf;~!)S @.*酖Fg$.Oe:]&^ZWi{{ *R3i!2IoHojg&[* x7\bO;lscVwEW,qN\ytݨ\8\tYѭ|E\\hw?E\BHەV Sm1W93 K)A2[2%ZYr_ 7k~~ +FKU*XŌb20K:f/ڰv"{D/I+e[$|>NHGCصy0@ķm8BqwΫɸ d:@p] F)&]C7<23HD}PB΢߯S&.Pih/ `).ӺqQS\VʊJ Ō!k$7uAϭa5BN &fd(7y`p06|偍P 93kOam-B/eI(30Fjdu\%3VBxA eG2~i8ͳ܅QlrbN1)2f1G{/r=*C^`Q+^"'v1N{Ѿ'G6Dg.ұ) jut`>'4bT;q@JxWE,Cq lVTbg< _E.?M R$vr2kZD'R-lzm4NV񵞾}| Zi,68mJgD1GA5Wa;9qP +Or2{xCJ~THǒ SX~fT tK3xtNTs'+2 j/pbTiٯ< 1E/ ?]>z`ֶ{hRtH cIb12Y:5.tȆ'_SjK-fLm B~"'+@bGKTM9W؄Ծ H$}Vjr SZ-5f!f(QisUA}B߯r"])aD$$YtZ*ĊhS1cX.= g |ZJSދ 3=4ej1N>)۹6d[uQY@%O{γaòaF+,+̄LyQG%$oOg"Gʆk&Z.YL܂B3 QFk gI]&RˮFԠc\^M[ ^a^z:.Ba0[BC&q$̀ ? z1j}Dv<vuha_e?>H{n@tx<t/\^f5D4A" M(\ fFޕ9rM^w_}S޿7ߠZ5CM\]ѝ:DVוG[}]T.U|Pxa$1t u?+ BEQ|KIqQE\M|}L P(zv<"Jՠelz@y :t֌t *SbOYNS}6C ,vMt<cGàVx U_y<g?jՈ=|A`A5lƪg-+Ǧ]k#_OwN;CĚ`q ˴˅"nbp #=S0)B^+@fx?o8T/Y)c2:9gUp<Ɍgcy97jeLeAt#f9ϔ[>*s&3'=Dki)y9KL)>@tEwZ>um,} ;Gނp.rB dCv8X7Q?1Gx*?밀E=܌ z z-،eF)oiȪRyݿW?MrxeS)`uKe*#aGAOzMͩS:D3 7%lZ"sswa8`abl $<3vb̤X[m(MZ|}yRUU^b~AJIX]AFzs@q+BPdvK Ke rrpv0QSʕPӵ@07 ga24\MEMb߯_9E]ȍʹ`EٲT`oZ{ƕR)MD2}{gXYSjhtW r&ճKch[5y_;[b\H%ʋܭjv0[f3X2W%c?$cwXc0HL:x V=mƋc}N&:q. f$Z_QYa@YhlzPӕ'ȅP?v:o DH9*ln9-~5۬|:nSV?P1-HA UW}xL"EsIVJzRI;ex̧$\Fs/$ 7[;R;,D#ȝN@0P&wukreѶeZA Qr&mQRV8qHa %i$ٔ@#LL11 ƅgag@UŻhu%!|1M5$. }HJ#fV@qOl&> ʰUӎtS 7mX uH7e- |89M=WPi9N:hM+;;t`贉#53@@y'S~.-՗FsqsAnW˝ϟ$#yH|!)tݯDFzʕ5<߄%䬢O vJg$3\kz$u=a"a} 5yۇVWlŸ+yĘ;9doxo)֙FidiN,= -lv4Xn7 Tbξ |oF [*qjT˓{b2snЩLJUԿE.c?M0pT |}DqXj6ƴжP?:q5\Pzh}*gQÓ`{ h3^c{8F&[;%iЙ|! St>fJ?zWO}u,2]~u` 031.Rm=ϸCa@n֟oIc3 =_=ђ[fH^;PU-K2M=ి.TIuA:F؊F$.>v?͢qk5V#x6ay>f?4ʹ1MzKfFSN/,s{{(xM;iA[K~o+"VpRFЍ_؜fX,hYR4Wt[wCtva&"v߇)miHmYi *44=ԘI?y^Tc%qznӲjr/.511&n{N ,my}_9o:l“Zy9*Ґ˞*ʭLra:ړه˺Sf<6UhT)|Nž?^B-_ʲ(=x_h#.T6yQH{E#?0 %l_eDHo~@o2γJ=u'6&':j,kb&K=u&IlXӂvfC{Qs-.ڥ5}7].ܵ?;Y$޵/p=N9,0X1龬Mgssd,#'3}YF6='ޣNze?SXRo ^/6K<)]&9/ij;#=ҕ_:ZkyM^SRGdث4DY** eU7bf-/FZ\+1L5_P]Ɯ"$/ 6|)=a6qヨqlC4ىlVd <$ч7ж'yg$ "-[aj*W(} ='麥ӷ4cノGs:[Y:ѩ{ ģ|tjS7cNMİ(Pׁ۾2Rt6oEևFKt1yuǺkvV jnKu-Xbg\9:Վd9@)ْк熓^h/~_yt un '+4$,EMqV4zqѰ)0$tQ~H`$* flĈ博}-O"f5"">$yWY1M&j +>PJ$:@t4(إ=iO x{oGbWS/06G71R=wCSmo9ָXϩ?[ց\g*MOZ}9 $B#;c6>&69q/!RM8usCv~uN^ϫw 45 S'+X|!'=e\,#Ĝ9E}\ƽs+^ =^a2%ǝx].Dp1>w̫joeB X*ؕd(yk5o4ӂs^xy-Z57ݨڕMU9C#?g s>ڹVAXkS9ۮT6 FHQ^!ay|뢑Bs3;`PnTxzjy͝LZ'@ &])3%V}{ mv{5_=n+Oo DGxg5% R>Ú$/ώyCI eM$dN \yl%C[lD-h]EwK ޤ"Xw%jgx6×'o~:~˓eCVZ{2/d1+-f:E[k&dZOۖVPՅk6kmDN36QB+X8vVeY.IK0 ޚITay1ϳ"hج|l'9`X>EXgNZ2(ml؊CY+e7t{G'Hu0%:o32 JkM7P8"B\~R[" 3dޤPjKZ8G^4PŴ6.0Abw)H[;eSc-ǥ=)Gc% Q_&a5IxR_a,+'Ң@~-Yeu(]1C;KU %:Pڮ;K7?о K#X=SD EUxJkzׂʛ]Ǚ̾JX3%ĄQ}J\[uxܪФ7MJ%Iiy:.Ԧz+7eY& 4476 ^dCƌ̈nb 胙>l6mdZn6 2 ?4LQ;j[B$= &goE˿ad[ٴؙM׀:% 'e덃3h]j4E~__]c HE9ffM''W|O|\ZX(EEñ2YJs+"N!q;.r RxA100644 .gitignored:k-B4O*R100644 Makefileq',(K%Dϩ!]100644 ftest01.c8҅iL100644 ftest02.cN[`ϒΥ"!^100644 ftest03.cPq P$q,38100644 ftest04.c;ҡh#8`]MM100644 ftest05.c+#o(-sg100644 ftest06.cî[Ӿq"8Ȥv100644 ftest07.cc1 -=^q̴ Kk100644 ftest08.c5j !*k;100644 libftest.c:Fq}X'\100644 libftest.hR6wx*cBMp_x[ks8L DSN$df8#ǪزK73q(>,)RER~L dg{u ΖBhTVGw$g='/o9'j'žMV۴A?gN豌Z /7tc,b5 |[&0;$s3E#cň8@užE4EK2u+%c-idL?J'启~뚃(Vz2V)4_NDozɯڽu%5 |b+L I?::޻`+V#a<#dptyb캹@+ u$tG̭[]Z†q}]D5/sB'(5]ÆhS͒Bk젟8P9=LqDQlwQRhw:_q9bkkKR7I?6m'Yx~A\sK.9exqAm`U$MDBi+,&ւM.̨`L׽yuNO4j6%{JIBfmn<)䧗V(N?`g4'f~ fwH-uC-NSQ| ^A)d½P\E a `3#C\X7*fXqd&R'?Mَbs)Fw?}m5{F{G^gQntr}aV+ Є5 $40==$C>6ʼnu/*f"땍hp4Ǽ0bL 5q=k+%OIp,U6:Z#'֘Ӂ'`4ֺƠ R&?2=hwC"Q)YI5IYMZbgX'|gϴVUWݭV 7Lb$shoğAoYߎf.I|LV&7YhZJf + zyϫ)C "v*w=]k^,W#j !+~ 1?/GG}%|N~h+o0Y+}Xoךltqmv\kZ?{n-uGB8d܆ VlIibytaq_C85(j-$&tr>U7ߓUqx/y2k8FPh7O8hJW[[w}jYFQʉ Vg e'vZ/#M洞`0Z; o}'.E^yٺJ/r{VPLpH97+-jmt;pytDr[ QQ?XqĎeصԸAzwfAT~ֶse R H"$`(VIBt/zPl~q HC{+N4t۟$sf+)SwQCDlǝ}W)CPh9"ӖH Y!k7C]{5FAeBCr"{7:^;f'#`,vVx`tb&h_Re ԄٶV gb-nhI˗8G'\o^EdVBC&Mahd sSjc9%0E SoFZCc+%|^j:)>>̯>|Gg&{%ZѨJ؝<ӫPk-f%FvO;EXLRHc =| x_5 vWz!v-/#])jS |:ziiOFބ&[qگ^u vor۴%rZ8V9&%0xv%n;(ҒהFUd< B<9X0"%I,]3iTWlr=~2hŠ2ejI04CT26O#`x~K l;k@~fj+Rxl$fK9QֿVa6Oج<_vO2˂X81šxv(dnʘo6=.T{($S;2@CeV`KnSL7R}F͛x%n9dӥ+lY}ʉ{ɽw^k/`5D&A; A3,Ą%#TlMfUƉXSN^ Tz2g>*)SGܥA *ZgȇɷͷdD:0 u=w. }Gm.b~Fyj #` W R&ABz \]E&4%R'j4l+x~TΖN#O%XpRL|e}W{{Ce $85!4VpQqQL"`rs"`XZWi ֒)˄SSyۅ̩7Deœ]SeCy(3SޙG3zGj |5Xć)=Č8]y; ȺLKJV6bxR+5za%MU& +ȮuJS&ףDW -#rXZko$6Jy2~A$I72\n?(ZARȈ=S&!TH d!QCm_l%LG.ׂgcl".1N";0%v_/2*ǺqLA'K]tFuBLY}AItxR@4 Qn\~+WG$Lc+JqHȬINO$F,vd^eIyiܳVm>I Nc‚YfW/zc"u9q!`&6_7JDI31 tɚ;YC҂pJ-P!:(gI-\ⱐ92[KQ̿?>S'-ʗfgȍ+)ɒ 0UZI^}{]M\@!y޲CG_ _F5UcwZtGO,Q}wWOAp0T(H# so(ROޞxuTb>YhrJ>JCn `TR%F[mSlB̏?U 凜+&c&wK{\m~DmV%W:[%4s,RAjTB\=!O`TU*]hcRK" Ā3W'dYeσB}fݷBB m굾\Poš~>7PbW#(/Oͽy}rZ$Es$\Ǎk3WTEWvh 7Y"T[Y6g#6GGy#O U**Tt9(K$WP(13j42P9v6l)KjS:9\ kېB9{wa/W;c3md3Vk3lhJ{] 5!x 9 3`٪FKʸ5Y!M 43\iuR! ].MOO2^sP.\|ܒ.]4tw4tKNb ՟Z\MBzlJJOE1*8̵O6Umky ߎ7_@/ i@(G@dy#Ͻ.-7Ȓ,5[iV DKX!G%Ua _54s Դ"_ׇz3U50p|L[ OwUm$9A=G\ԶƗWc,oiϟ,~SVވOuAF¥f2/JDB>0*InSN ϕ:Iz-eyMRN&%|<[y' kvB'ij% o4\д*x˹{sE e>Lc\#'8~7+0yHI#&껍3+}MC_Fcͬ ܽǕ<#S{.T7U_oI ]yP/SwNK&[6`M lT+nB'<TMy6 zVy_6!V1pbMD"M]Y\\=8wyvESVUqBp(:G(*]a*966+'o}Ŵ7.'/*]5g#Hi_T#&1ɸ"o8͗Ox?EyIlG$X ;&aZIj*i~_2a#'? 8kT7~d 73Z6!KpsjZ?^zYui5&{ufhvOxVMlUH[4q&Uni뤍Ib6vfm&K^NQ`T@*7.PdC%$ qH  z@pj=|of]X\:4`plŲA2 D VҠ) 4) +0Fv^"^o8,'Ƀbd<:;#?;ϣy\oÉ Wᵬ X<OL Eye˶%CKC*|N7"^rޝ2$! kV*AK*n͖^n 9Sfkѽ_BkͶ섭Қɬf+8"x9M-Ts3 *GxA  |iu"n7Jk6o)6?k@cѣ'DPe)i/eqfIyŦV۔ֿh8T1n~;"/F;_k#S sS]Zɒg1pT5A"Zuk#\S\o[@*˅'jY|1A9A UޟEM$u/lO6SM‡ܾqBZM'5_02Dy̫D)*AܱoU"-M-䳋p@!Q199=M㸜b)xu C,cWG~?<D Pa1;ϫw-ߠJ-|eAQێQ<dqgj'=W8]I j! \sB Au*~9 :73+5ij^66imS*tVd" A SDҐiAMJ -/R;֏ .ܕUR0XC^_F6{jmjgIcG'# QddB\(?` |)='DnkXNf ^Z04$XǝTgm:}k3Kљ#UGR@q2`3+`tv3MJ~ Jt,VRT;9B,4.n`?~.A;eq%1_ƙfl_r2TGjO/]9 ]~Ó>vtVdg֋|ٷJRH+#*5Զ*-Zփ\U8լ^w{^s}{7@*E|ʗ>= *`㑴*̆;C]+r-Xo)nlՇ' Ec, hp^9J\/_cǁ܁7ONѓ)[?x%PwWɷWa^ >pq xOltk-I.Iq2uk6SIG\Ζ¡<6`71- H2 ii+ ~NRVPU>{}{L~n]pi`CM#@ĮR7ںmSA ?3 p 8v~2߇Z2o ^o?NԨ#ɣFs] Dm:@@q{UQR=ȁ7u`;^_?&}co <HIJ ^s] Q+o- g-bI Yb3)m %Ӫjh*H,60Wq%nVr`ϡJ% ˁTV-hثfU0((N  j؍SD Bh 1 a  Khra~Vqs'_ Y!hUɒP T%0K_Y Ա夈C#)xԵ}"ߙ$WK.pܞ*I8Seb-x})m%LIv+ׯ3ԫKsRqjTdn_do)8ӖG]WRJuPhZd bZRTs%o3I`8zc&_PF/h &4DB5+:tEV>-m<7ЃjgC@zuLﲎOVQzvHLmo-3&ʯ_ 4+n>#KF! HCZq]yOP܌q6j- ⼩(f&*1`ɳQ0% Ifw44v;?xCSb X<1^8l,߭2J n{1>E盧ܲcv+X sL]ЩQҏ726~ tJ_չ;8̨ [( њ^^^!ήA0ss7w~ޞom\RTAqESMCh><3g. ,JԮ(VQ|=Da,I{;IrɏxU݆laRi8U\—K@ >Uؖ=nN˪)3,,(dM ]+f3l][ ڌE{7gOlDU@^_3nrԞ\8(YU2Dgw{kւ34 SZj΢.p6'vC݀pN2MG<gCͻ0xbՀ]JYv9cE\Ioi}/~fxVoTW2joc-ڵ7iIܮ]Vhvmedilu@Hh @/!!!MxAc;6Qv現{D.]T |칲ELˡ5pg+:SUAm_. :l=kԦلe0*FQWaŵ|Ȃ/ o|2?=zOˆ[,Ci*PqyCr-:at^B }˱=plybɑ[ ]:ǟ%|~_7-B# 59"\l3b?;{>Y-cP*E{"~#~b/-.8w)|:m|CӣFfN9*3*+ܞ†( 1z=aE(S$^gkU6E!# U `:.w K4Cd9^( x rX)eLL˥œVt+PaK 튦+.+ a)OcgOR(3o-r\xlv2Ml*%'=5tvq3.6N;4_2\\9f)ҒPT VtC0Q h6p=<=`@ q#h/LJ .L04#I(\O>wc#JS,RvXVEÝ-4jY6J, ~% 䈭ʓm]6`ׁ8wEv,X,T #/23ftS-z%L|[pE bJ)pݙ+DžbĬHѱ([}JOJB_|`k [[A |݁!Ҧp.< 3?>÷p-._3R!5 PeOs5w6'4|ntI9*E5AlF0O:_E=!HaiLLW QnS9Q Q&sRW\HktYhT2pOT8t;C5U=ա{XۢFԱO&\RdL[56 '֥hKOiIk4G3?Mp>˼@,Py=-h9K-3S/|Q'{:;oQ8-ySyJI}7M|?ƚ6y7hpaZwނ f >8rd S% n ÷ QVX0Gҧv|}ZƬ3r]-"L]E0b>MiB)DmYREBAG° *S~v*i- ͧ :k"GuC#uGf7GKyuu "u5ҵpǰݱJAwٽyH@"-qDGS-޼JxVWk<bϭMETz!B*(=B33zFx0~2 j }u*|桀sCOGl9͐u7X=wR͐"^ ۥ:/%p:9y5X3ىqA7;[h Yͭ&rdcD<E;vw겙{/_hP*d4Ӥ˅UChE8oą.04fwлYdieUn6MJWGa߰Ahv>%-p M/(JMLj=|dXL#xWkoF,[A%GիZq,%BTɠl`PP/̐v;|ɊӦg8י˫INh'J)SZ+ 9׏T2N*t&A@4YB u'ޗD(*rRGN@К~u=?ׅh&RSrB£ 齣Ę\'"%Ĝ}><iLB⽢;44 f`P%d칢8a\>PLVW¯HFx'hJxgigA9p/k&~bYaLp7[q'r.&5SN>:o\, 0_ثfCEXbzXtum]7F_ ">yD@@eބw* YC.Dc' LhS]>M~^v ץ?Z\ً  8uVrQf jrߡ$E8<jud*z(#-+Qn[}|b|X9!4WE"b 5rߘ isWtlGa@;jR2SY!0A+Hl+C'ff=3bHؖ~"*D2&fQPu ^G>wQޡQZ_mCDg2r̃t wz׏}E0;cBRnJEj*r{k~[;:ю/nBUq~EtbOt^Qqur,qVdo=Y>7 *Nqɸ4Svf=ML=raͦ66DfY/jsu|irjX/mzFfS.r5|O&EuUzt)|' RjZ!PO ^];sJ|oſѸ%jwig'θ/'w2U Xz6/;5~~Fu]W?Q3n6R(hnö}auiu\ve<[;QNI^Ӡ ւ747:~7»ܢ 9=,tdGn^<}ëQS!S3|51"@̪6[]G (+Z)w >p,RsMy:XI}Ы0E5wv["H1q@=Y|tsa!䯡n=ettߟT]gIc/54Ʊa8 w!+B7>Jsz9唽Li@_-|* Z 1y sDS?*^^*aq&eև,:cp^pmDc(I!k,^ȵ?i ]>C#F?vLV[ ̈́(xHyB̐Wx 6i[Pr3;Tưl n63$ll3 y{oʨ"jpl&5/Btän4yv;}c)8_|jkSez4^d_>Q:Z2,NJr˴ ݏA3bz=$^><Ec?@'緱x[{sS:IEyű\g.0ii z~{Ǝ4;]-g{@@] W HJ4K$#u40whHep=AFwA3K l-'WrKkp3wr͐(Jzk6L,}f. }onp9Vo v0A͚/l x+B9 pVM7@7wF#Ђpk_pq9:cFC,,ۏ5-#3톡uf 舳m)hL8<)2q2zb(p7,(Ķ.#uD:Ӝk-1 pRZ&.ѵ]+hy jz_Q娅{{U.bu+r]*3j{ޠ1a<a>a2-%y"fBpөEк%@r9]@s~581ӷcp@-KdȩƨNlWQ &_AMQi,͍D|Zq5nW00 9D 3> :a+% ~WTeg-揇Rל)stmY6BsB4^| l[ؚ󉯐L4"n @CYv)IKhv.|-$cbP}s5&4MbJCLt4zjߩrb,$"9iN-i2XEZ]^t)az4#]ɑGc:oKFoq+9fjFG||_&%ag47FD:lΏK rSN7$ݶtcmjZV~$Jd V o6_]cDr8q[QQ0yQQGMU}d\=Owª9u )D+ gR c k!Jƣ:[g8~t\󒳜O}aDLk2 b,髤c4: ;16+J o.(^FeP^:‹ZDEU1MU5o"PF꠫z}0YZ6jTe ǂ稚axJܛhZNJ{?2smf986üa%M8uބ7]8s|' H l{Jд*{\{ D&1TxC< :^?-g@cd&7Z:c .3t~UGq ~Z ȝ~8늎B@.2zgeD2äeR-%/Ȍ&cIYn \P@E;2`3b+ϏP@J%}"KF]F5Qn˅PqCltQG&Q#hs˦+4 ͛U@Lyzvb|LmiPF0IX#uG#I`[ӐV9kYIO 6'.ԷVnz{k5KuLE ͨu BqY.iP*_Lh>ճ"z 36)+MY.Ehtf4?|(xՑ,4I^ǝ?}¦SK:v`jҁO앢 oa^ aaH{R$=mjIj:qSɍܤrpnVB|!h;qj;ї C@;7^-#ɸݑ."B.p:\8倩bJbA*RT*%WeP%+*R"#YHU{2tSS#i6wط^ޯ7׏C(cw! xRQųT& D%t\wzZgUFhdϭ6fyOk*~+ф<2$%nRrҋCҴ5j cab6FC< 5`|QR8L ⹁cݑzzk7oì娳:>H Np:bzn@KT&qfD"~t4++F/\Wt4&: -.Ιf9y#a R"ss,ƅ.g% ؿg >8ΗH6Ey[ˆr6`r2Q1%! xqֽw9Л):Kd< !as!.J+Kg#&b'׆>U6Hnf;`CDZxX߰6nG̎Zݎ>:JT=vBAG#%+ny}Ռ>>^I]?H׬ňXq5'VU:ѡR&u!Q>0~>*ZsqQmý2BB(Xj>k X)2ß{'L'wȁUjaa<8;I@Lpr'9uHtC˹9x,&RGB036} (?:H~D}J(&7Ym4w~8}W_[Fuum7;+7͜GNP]?#yL kfUZo鴕s5~6u\t${U?ab$j8u/Ө˽d#~O!vE|,)ʒnҕ6n=m⻄nl5rw䛑ѽ{.Y+=C2,qJV9*N1h;$}}=qf[G12(|w%_1;a -DWB_2'~L$2QZF1:;?[QenSM@:/u| ھ3/?9am7 ^~wuG~!8YzZE *nLNb=4fY*'F -\uҥVDE jp^PǎβsuhIzfi q56\'8J{Օ|W0C '%bF*I 2/WlBs,2ZAK_{fZe^d~>AlUo~VoQw0#L+-`{8ᖷ{FGAڟLZ>OX GκI;Rg磳aŏ`_:uſoN<_?CX;܋R߷/$9<։{ !h ᯜ ;$TI+."ߏfJ Qhc/t)ٍo?mum5oɭ/W ガ^,;,b5JSH,6\^]`Q΄s8k10.@ʜ KFURI.0]/+SjA5aAdJlpf2w"gyO"88ƙ3 t|6YM`r8 H!*|ME.EV8ksK!A8%%tmriJMJ|[szOB5j:F(F߻ &"HX$AJU ~tMc|u&>-1,wfH3ʗ;N "%|̱_GרȢV+ĉ؆uFqq !P\0CH$%"냕 ё@%Þv(=rP^zpX3KkB_f87c"!_uҔp.XᐏpbJ>JS0P !AGIOJJ8F AڥVK#VgvP=z %ꅴPf4鮲 )'A(6skŒÍB*-Fv*kcK># §(},hb5X&XZgùK*ȗ|(Tom j[`]J_F25ҟ}N"i잎&0c @S/Crx䒊pdsRAeAUw'68$fZҚ ,X$cjD9P ʭlJtJ[ 6rg߲n̝J'4WSIZ21wfD*-qJKEA*&PJc#BPʶ/HFQPԣ#"?C!9 %Tf',sX?‡4NZo` .tlw9m{"& ӧ??q?>_F5Aז<R?C(NU9f\;}m_{.8ҫ/x{yN=osu@τ2[lSyȇWN̨ǭ8h5}58磣ð~6^X {c7-\TPbXذ:`Wt&J'ooȜ<\)zy$SԜ8Jh2I7Wk??_|~b2}3LφVtA w֝U}wZJty2oM qxG[_wZhpou:(؛FZѹY8ޔe?zF1?~Ƶb|aӂܥG:T~=x2 'S;ڢuTțJ٪AԦrik'Lg|Nda" PQn{IH=$Cym~;-58?=m9w-.MI.~mݕMƙFu8Cc V6 {jrgvRfE4_ $}VwrjA<푝g&2ͭL.!-uAkbwEL΋hyi(UitBsiJL/Tl,cKqtܛ4sijU R*yKOϗ'>lٞ?SI?aEʒ#  . M]#Qyr@̱6ۃ6ۻBf١S.QUٗ.[d@_j'w~Kޫs/ 'Ԩhxs̢-iWRyj);1aen-o欱(٭(mդ( KJo( X.%;06kҔS4&8(3y.l[s|yǒ}{w)F"ehhl+_tPx ycϣW8X[n1 SsGsR]m;zAЭZWtiL5'n#G"+j8l6JL7Wlb|͉ CbSM_f%hSKY☪.EJGbפ5FI ؐO*I`Re^"9tYV0*2Irb?o @ߟ(Lt$X$crRh)}.?T ?ヒ۞oX6e ܷT59#e]+D>A,C=%n1OB}wY۟ Ut8e\HsZT|7ܟ. ITY_]): =gNP;oG.{>zDF|ʳ&1Lo[RSE^iΪKکi//T>G*O ȫ}!O[J;*yJ`yb7+ˢӁ!FmkL[x][.9DU&-v"n ΘR>i')ѡH-wVR5(rn{>zx+Rq?F(;y }. .DgLί{dƔے7x}_FnU~?Zt }|SR7FsJ kǝN[7/AA/P«F\=^vա'I?_6ϯμekk?~լogrqY [fA;^T2)m.2uߡؖMtx^˴7O  T.I_Kh4y"/r<ț#? A^Iznv/ZmqqӋ:Ԇ®whf76φ(y6'8 㷭o_ w;jYFfs\&.z؁) I!+0%ahM'I6aȚCD4Ymn6بh:IiO#*ԱAW2"yBgױE{nuZ{"YLb;`+3H2ۨ4 }l{\ TC$I*(=.2%sɲ1~To85~9DV`.-/p+OIWF R|oRl[`Ҹۤ"y+͑ rڼؚzsYlqe(ڼ.S$MS5P屏Za8.r<8LyD 3c5:}QcuXh<:݅ ]9Q|tף 5?O]?8>;qN1,nFnH?e8ô!p|'@Ce3Zlw8zAe['c`3}:8폇wJ-RVp1TC`[l㓃7I6` p\(5 0P:*;w* f/DÈRc b|c!C. u|i0@W ]Y$@})(N,uh֙-ucM>4[_?!)/߻Tc38^D+חNùS60@680 {!-J 0=xh܌|L4NH*&`={`I0JDb lԭ ~&6p8Rx1q &ZςMhK)PA\qw j;{ɓlWš-\G9vh" ;0Q@ 2`,<`Pqztfb@pLPK({@ǁP.%` XE# bFlRyhL %CG`#b3N~8ގ}ybB19c%r!E aNt)#0+jXNbTG@P6YyV]yyif j='8c݇cA:3?h.i1 ٜ57$q~OW}`'=*s]q[3>?T!L/-'Il1S,,^3uzo{D#)X2*<`sKv=hIܲ[OٵW5 ;fi-Jw!^+^av^ Vuh푂 .zs+×UYdFl+^z=xsRUd&>b􀉖Ļl!h7<f9-@*)OI0w8%TB;3~}qDX÷2EwdT5K5PPvXЂEp4'!q4! ~N3A%֩/Sr8,X1UE,^ {T>|HK]8t9tEE?݆ :G|KۙxXT6^i۰t)"&tC&g r*֏8[T޷?4rh›Fi^52k-E3 -=-6uy{ǕE5P^@y#-2 6a!bQɝ5 zat0t}QNE]#؄3Jn"϶G`0k ֢o)i-@e]NQo`q{޿>k>aCyC]i} =Tw||rP]4tȰje.簓uc`G@?AK)3Ӄިo=K~o|<8{녶4O<ѧ`$ ([װnJ&J*!O 2_ƿx_tL &Uu[vŋ똁_hPmjDqDv#GT_"I!UX¢o$3+ugk¶nx0ggPԋ/vfo){wu5#GcPcD6<]a)K6} "fU2XT[GDQ+g>1UbChp[}uVe[hߍ1W6T%* %oZaX\out[ "kҺ!X1D1hNloPh ށRzVq|yL= Ga wO yTo.7NU+&Àlj`S//]jp;o:*lʖz)Lԝkc2ԋ/ԣCc/֋6eVhg0,JZy6l6vP N{+ȍuE#l6mJU 0 \> 31;,M0X -VU9uFF؀tE~CBk\GulF^݀`?uY9&`ղ,}0NV^%_1+\Dg{5Zuٮʔc?T R/ELYsz)}@*ւapp2>;,ċM!yBW@n}wz98>97_&\0/]K 2Eua`u硵dU f9*uz,Svj?p #,@6By R5 u֜U*]U-8te=̩XJ^k7BHpdڮ̪/ RR]̕cVBGK^,Ý>]U/eJT7թQdfÁ(7jEM{(]5J6+fbC虥N@|L3&PXz),CBF]+4(-*joPWAn^Ect$\4򠨸ɠRpVl>.W IJd=ZGVbPWZFFUE%10nLv6V"=jz}^~5O 77\aܺ0!OB;&u+v&vSr|}D>Hz/h<>S#NBQͷKu. 0^7BփW̜ݖRnbV@S]M@꽳Q FSGJeo]+X2իtDQ`UE `r&whZI0Stfi?@V&R[;"ACt8pA> ln>$$(K`a qޠЂR8Wd,NLnK :${m)(jӄXFaYG\4,gUI`VhXW%Ǘ)/3YUDۢ[U|.լ-YLs( -z CF`5 II*Uihϡf;?ڋNȢ7A g>6a,@()JB&U*{Œ_0߿fO)&g0wTRF#3~Ny7ilghş3_~2\N\xz'j:{YV٢Brvݾ~pq7,}t`ZzC`ՠCYNZ\ΦwT[u! (n ī WOS): Ueg!u`*>-ӢmEob6l}x|~:xcFn}3f4CoxU0(Ī-|XmoV x340031QMNMIep^39gHМ{f2o6.΍H)H-Kf{w]={vKNB^]8N33Ųmޟ & +XNǫ"{$>xYOsJ4$zТE%Uի"^' nIy̬&=PEݙYm5o!y{p!U$p['m8W~ɉc<1dA{ bHr&d :d@p-U! HD0C~y;B؋:FG|Ϧ3LYqL 8(KV $p/bp lI%y zI|._ZT,{hE+E0QD 1|8C>`Bu5n{ae2( =<$t__?pv>Fpv5>\77!\ FǾÄ~ D. ` /=恏iGBHĥ'tҘkXb$z3_feuT#?! ?ZH/ÃͨҺƯRQ 3-^8V3?ߟN7ɻ JS]' Yb6%bRR5Eד` d`~;sąWx;;"5>s3t4>Byy}u19\^&ȭVcY)MJF=zBi:TK9.s$x*Pt}1ѵ-P e68zkr~AB|@ode>~757NQƩ@ׄ=37]Dd>lUήkpQhj5g(mZ!5ykȝKj]dY4 qzW;-Z^h!# BH "pdC#ۘن٘! fJ֘GǞ*d`$ogyiñ1:)",^؀.<B,7Y#Xjt9d6يx?RGN)me0T&^,=ngNG:ed?QM'bm89A ODت66YWԙ` 61DEY@/ݗ( p0:ePK05PBzjX}H۵FY6ó]ڌ3{_JVc~0?ؓQVm>Vc&A®U*ln݆\ۇtԎw[/ܪ[r(N}uv4a/FzSKe2rvQ ZXxwWŹim|ωvvS E)~vՊ `CUe+k:[Z? L(Ʀt:C¶Gw w6U-g0 ])[f(2Эg9miV ɠR4$`UoٶlgCpxƼrQTVŋg[a ]8׳/Ѭ +QL|T|UH΃I"EZj(rnԈHlt޵1˫'{8!f gvzJ8N\DEsrO6u  r(E'AX`B/@oJ` & ~ݩ2,+|VY;-ǹ+DLh@ n`yWHq@`h].K& R{(iԧkP,v^|5 / ^}crA<3s='O"a/lV#gx/ѐd2io'sb}pN|4TI\3JX.<$h1{y5 ƯWb~OBl-tֆ]ɫYV?)勧x340031QMNMIe趥w_Ul  !js y|ucƧ 'ERbTZlC3ef8U^\I1PIEI &Lxi]HJLJz7O@nUHJLJbxǺ?'b IPIiJ'rlQ6;9܋${H_O)Gλh)BI|r~nn~^õM*Y<|wêԕU^+R`<;mZtjƉ ŧbR xW{OH;TwrhB@yTBrM[oof΃@靄=;߼vƕ _M0r#dBg.ζ[|e+[p&g'"2;|]` <%|,SK,ѐ'RF0rH"$WL U2MJԘy~dxB"2B̟'L1K&Kߙ Et3'#%c+cF*H|ŬOG+~U aM 305V2)8(=K_; Gn58t0`oxnDbZL+t '}CpmTcΎBq`Cف#5Y{$b)hߴjc.h*Rx{RXN(e~y|xBN4B۠Ʊ/֩ǸՐdBgMk{f58,-u UPM^aPڝR]2DGϗi.g;a\bU@LrqQ<"|c>6%$Lg26 uըzT`8PK@3wMfѡUU7kc=N7).)8ϵ^`HaGh`]06Li]4uWu$bl<0cAR@#^$~‚-ɕZcI4H~uMCT1?Ѿ)K鲉{9i l/Wzb;fpNЦ yX%Gp|]^}(ӑ/9IyÞΫbEgaZ0e!{H~9^Ĭ[7mעQ\z|%BWc? :7M`\ivڗ8C p 7fW{u%vҳTpe]\b"ub̹Rc4|;it;efN[yl SR(p))gERmq =jFҋ4C[>*_.VxD100644 Makefileu$GqmKd\100644 shmt02.c›mBF]QUWa100644 shmt03.ckł3*M?RfOG100644 shmt04.c* V[^[fu\Dj100644 shmt05.c u\~Na100644 shmt07.c)!lX"z AxL100644 shmt08.c:zP8#I >#2r100644 shmt09.cpq=d>&GpE`100644 shmt10.cXvɔy&1 k{`xTێ0}NbU^RBqR:.c[`A !3ggNbm/ެ@iE)P߃7={^{0UFӕw`&D2+dų}qKvpDz-#脟€S`7a HYբnr <iӣ]qAQBtc1yO^E[-|,_^d,xj9"b^ӓdgc 3"OӅӴ qE9eBs(ompIk:EO_~|&&uUi^tNgꄺܙXCg-sVU%Ww)" C吟5JT ]&rxiP8qzĒTļĒ DĢJԼLʒ|.-<"TBXjQfZ%P8$$bb̤ 9y ((W RU\Y:rfɫ&밪0rNndU|zrC,Bc%D9KK⁾*OI)Jд|%'$8$5"&cVfQQ0\ U^sx=j0]H'h t0\(2uPPE:ׂH2ҕ ޻ut)"Iǻ~Osv ;Q[ׂ7 m@ TpR HQ[ j=]EMɤ>>%n6H(s:EyG :Uy$}_o#zqe|M*~G"h;>MESt 5i8r`lpX=c|*&GN"nҏ;:}bxeN@e!txԄ$EEAIF%Lv˜uЇ<^.rf;3/mc?VKc@AEC%P(sA<%$ 8D`\JUD 8|c uBkތW&E%g⯩twO=? !_yr_:Z֥ig`9liI">ik&zژ \9]Z%æ$yOrų]R 5 {2!eQ$IJCME`*,#071 CRü 7 g d3y- OmvpxUJ@IӃY($"DxX4Išlt"E+ЇM/ s; zV(\4U 9gޙ`J/BNFVAХ'T3P*TH2C *)5x6͌!LTk)ucB"!bAMzH`Curnd D 0,ۻ8Iy mqx7elg݉)6=\/`axuTnH?q\#rNi(QS%AC^7^kw]Ͻ/:iNofv.̧g;R8ΧN:93\9#`(+nDKɌ%֢Z%KV*! [Q7 kM2`$LӖ˥:"HdA}e{(VWL,{?k`2L$LNr_Zt9ECtoKq,P*B ֠u-VIu4O8fEҷk]aKY36RRݑY]vPWsCtkxBǓBYKˌRhҚNmՕr y5?e)&F VTzocQ%fw~L|%;%6\U.- Cbh>Pf> ;Faף"uy5pGd42nuFSTɮE$hv9>keh|s{p7r_# n =վT-eYQDε|8p<|<,]ή.Pڸe9`qHd3HuzK`\ۯb@Bcde}A|mG_냏fRU`( -H= W۝Ѩ᥋ :blr^#qg-]uo |m2Ʒ߰UQ,Iql:Jz(7OQXe ibl9]/#?Pp4:e$^˺[;RոxUnF?(Q+;^(@ ^^[6>Oߣ/5hNxggoٙV &O KDlΨxWc4F& )0ZGA?[;,$R2N! c.fvtVq& (2f3F?fi3Rlc~rfR2&"ϟͱN<>ܰ(&'߂Ob~ !Z]c 4HH1E@x(P&AS蜔 D4Ȁ#v ټr&Yci5zIHV $){.+>Ɖg\CNd~.Lܙ֓ z'"!aRFn [2NEPPY4VI4Cˀmpz^) E&զqwom74mm-0M-8M2Bɛ##n'6Qz)t]BÙ!M* 2,x|2yNv2'"DuڝbqN] QAt Eci]MvqҌ視pWt0_{MKQ˛hu?ej^Tlw{yvOEt^7YɂoZ vb%AV=)=~4V[9f&25[{ O]*}S.Wam/Co׀FT3\VE^_7E Z='KS?$Ip#n|=5{nxXksH SIYۛRlHu1죨FjZnS=%Mbn>w'Ge:hAFjC2]ݑ?8ZPE#?QKE"#Cq\5 e4o%bIjWe4XZ*I$D]\!߷vۓ)Z/gZݒd7Bn4ʂ VT4Y*VY}o9S)US;^c 2RvE(A5TcțYbbYREqUO&sǻ-"dD䑻&ze,E7+T"4G2dXg Aa %?3X{"={i]~<;=yl  j15\ y dVr%|-ә-ďtҮh^xw Cի6[-N=~hDJ7+rIk"% P.<5pም 5BondDz\TD'S$#< \Ƹ \!_1ojv|mOt8'D]-;U!-BaJ!%uƀ4& 9tFNVM8 6CKgtG+!I3Sw0"hһ8#NGSMΝzV3M)h՝d7]gw*w 4$w8w"P2Y %l8s (p8ك,=ӊVF劘w^EF Ca7PH)*G`\ =":M {-:sdd۱{ xS+D:)Bٯ6a^ E@m~Rm]1.BX&s&ݳS)݇pKJ!>*mXVh5[u6kaI^l/"zM#dw i@= m7+<#fZrn4?,IL$ +Ywӡ䀐yLG5}dT.t4OfĹe ҃ Adg/k1댜Q^*/II3j_gTWT@JK/2 g)&_Hl\ IֵAdέS#,jK$t![2pkrb8թ?~BWgԙ{q) X.4 7%}[#]T8YƆ1ʥ dq^<0/QVVPXG)~YAܭ:BոNg(Mk8Lfޤ89AtLz8(hU }2>O8=FA{*Kw X[kܙ}fɷ19t>h&9JiCo7^x-GK|(ar%*nM/lOmzb۲0@~'SP.cj%_UϨ[WFJȝn3Lqnd?n3 zd-mVʎkE|De? nENɱndػnSuVۻ9m񺚷Zjvk 3UȟG*Y0\g׿ox7d?q&~6Rڰ%ck%O!2F-i=i|8}oě+Ŵذieڇmq1#?ތ X!+1:O|v1eU7XT llk=BJ B/nVqF䨶YƋ=fbpXS[&RYMf9ywc wmkh%ZlU*/l~1F ;r| eՋS cX |k3 |:1 na?L<jwBX&γsqd{7*Fxz}m(ױ3w{s ȧMx""=tso_= =ͷxWmoۺl3\iVKձSmJnF,")PT|}RKr ˂ =|yօ3r&3jx O#3d|6dfRfc9Jf4N3 '2Z<ֆ0dr4*jp &`.*P)尪s\\VBU>)nB/ 8ę"S%Ɣ1CQnU#8i{u~\>/W?Em[a2;,Q@hF3iv!|x0o4Lgb^t+?gㇹ!X-ד6iX{ᷥJ&'Bi[vӃ8gU:t%6EQK7L'Bnqj|'\< M"p0`.یS Vd9W/LEN.V̠_iU%$ 2ƪxRja)Asz#-eR fӺm7dYdc.1nI2@Xƅq؈2LZ{/Cb)R #T>͕B}P!>\]W÷WC>%vٽ< 2L˕kbe_&_ƌcP2<D'&KzRl^FYkUl˻Ո4 Iͩ jd$[C ?eJWgT0'ތ̣l1I~`$V eƑBkG$ UA&lئGPBEW:*Z1TOĦ{\bbf˷{#rVllTT[ X(wPA;[h2#$V2&ᩐ"x^>Iq^c{XTl.aoծ4WHzk``uWȮ TKi, \¼to^-t( eixeNrLDKyTX妉=0=pUkwC[yij7m9mq2hmONDĵ˛_0ju!`6=1 ks]/gpUC"z d*XQ0{ ݥh̾r֩E$Y[kqjow\dm86+g݁ #Wpx}vDtxWQruJ< ݮqB;j֚rq*OvZm& }?R)%4:믿X_ցyس̉؏t|R(M}Ƀ4¯$wI'Lne/ c~JP XYɫNDK7 gG;BzLFAz|K:z6x77tso_M6*x340031QK,L/Je6y G;xgBT&fe2}:xv> TI`%ƙqeSZuTZAd$楗%3Y&u1h-+Ȯ}T'AUؘy(4Ho_/:%+G[fLũ\j1oMEmD 7d5&@5"*S7 VA.`yMu=q E봢6̇uD:"2O BhZT J YHZ_BfI?@B8D1AP!$IX (şzpݛzG=5co#8'] r՟]Zh`sLfЃio^,GLdޯ+bx&iQiG̴Ba= sia07]/b!H^r!=NE(r]Úb߷P!fbQQ<@0d #Iv|4[Q.7NnmP飅i$5-@ל'QuֽhKjiVkW > qej> `Z'E /L|(RkטP`KA5]Qhd U4SY]QJ[m]OF^=,. *W$qU0 D(gB3Y).4,bP}d"E&;ʏPjfqKVs=` RS4X=`P/nF}lo UewbS) U *D>9Nik~GȽ;xp _ PB<@G5fn@z9;{Si30 LC{2ݲlu}Zѷ|7^F6IDrVt o ĨG1L'R@'IYG &هYug $+Y4{zz=^%b/!GCi6nm_4øk䙡=v^4v m䙡=>}jLϭK4ی//QG/kDiw;_zq;N^q>d,#2 ɴ?vh~vysoG&{;lWqck/v%CQ tg@T"Ȼ= +S`Yy#obݜK`NvugK58ܬ^Dp5;Vcx340031QMNMIefdΞk{qs{w$ PH,-O//-`nWp2YUah{LUbԔҜ"z;qz{ ߂:r2>\I9HUvE[˩n/y$DAFeAjQIFQjbJf^:# 4ۗ}Za*7W Da^AIÓN\Z\I{Ğ$tČbscmN 6[|Axes%`3IzQkvV1TYeq2Ъ2Qnݧ+3Y:DAI~~o{1:LkR4>qxo100644 MakefilePf.&y-240000 ht_affinity# svMC |40000 ht_enabledɢ5?ыŝKVS,V-x340031QK,L/JepTrUFzk/.+*4MNMIeN٫&Vqv=k|9^,&$>1--3/R/F~M۬b/lv$3g*\-9fԳ6UFW0eU]xq%%rfsYTenjP[_[8A*k ׷~zjvo; ]xTmkHs*1R_ %M&\؁iZ*VK8of%V/wkfgYFiV7)êT9I\vTv\tMZwmo k|9* ke* K$BψӽA c%_oPx}4;gpQLJpCY0O2ΡpNE֧b#볔7#G^M$Ofu:_tyE6 |x)0bF&k.NN-<%Mk-} ((O(UUťRMM+VH,.R\Ȭ3y"#X[qiN-P'B9ũ†֓uX7'1 e R4J&N~1Ycs9 #+E-x340031QK,L/Je`co[IÆU٩i9 - ,}`b:P5%yI9)z >ׅϕ24"_6"ԕdUl>i'0O}l|̑BWpJ)T6}5 6275U(-/-[\pR7{֍献_0^x340031QK,L/JeJl?`q=+lQ囘ʐc &Ztp#)FP5A. [Szq{zK7HHMΎ/-ION,(N-Kfh\Τ Ev˝.>9?77?O/AF眛J|S 8]*u*$D8ad%λ?2̼ )@/_8h[T=K+{ *̼K5ޣ`~u?ܼs T]YjQfZ%Xa|jEj2P3!Vs' eߪxmj0g).24 WY2Kw\I -9g2=r~aĭǯ)j%qh]tӕ@;Y֦I2uؖ$:PYB&bɆ*MVo?7~&Ctq5GW/uyNOةIX$c Y#E|Hrt x340031QK,L/Jex"q{^]d(IymnQ囘o֗1YmTM+rco*= tWlPE%ŕ9yz vY{3kѶu9Ͳj˘=xZmsH :`읉sKlSq K%,$V/&]f&]#楧Wi p-bzBk Ʈp~&f~໩HZ цF"񭘶њqt Y,$,]]ɫ";©! HEH 񏷃 x+B|Ȯ߃sa&DaI\LwcFHM(q>['D6)Mݔ8!ZҾ{"[NvG`+d7Yq+$- |$0SpKM?DW8ON#‡h?8pk%ϐ"B9NEAo 5:sV=#0u7k&..$a6aتTa?ZMp(1>gH4 o$ ~~p;x>wՕ;>@|w.W.n?Gl.-/Z@I \x7hQD+oDD'FCt|@o{@J`5 ZwsB H2;2: &TAX>PwfdVO7sL3SBG7wI0E U-c5"igȆYu9/ht$n IuuDaV 4!*zH^KܯV pxx1:UC/Pd?[KIr5Ci hm(c1B4_n@c` ]5Q3GIܙpG MV=&N'p54ԙk:U?La28{+^eZպx^M$K-_yozI5;9T=~K{Ÿ7r=Za߫p8ANjeCi>cgpz);9'MT*|<ޓCHU!e@Zh9ʥdpMFR,I:2*ђfsӮh@8ʖeo0O1r&Za^Q"r2}tѭ&$-M矵.; ==^H`C< ׏e!Idd/KakNUݔVOOMu:Kakz1?q䰧;Cw!>[(kџϦ*!&`0,~ %}Nn /Q$$m_ |{W9XTɡs(&G9+`䭪?;4L*vcr g?_{F:AaKC:aP"2.<˨Q/Rotb< 5yU|OSpbn!WE߬EMhO.X.#/[jf-g pt\4;{\R0Ac|x-쪟Gp;uκs,5t`*t=!X2*vr!].0S)XW)EheRHO6dƇqWy(ءDXHl? B'IAQ'l&7nߝ,* oeۺ3@C>;:9ލOj?1hnV!響=67(m@*7ז0Љb@wlXHfkkCP&vt/Z,Є$[,i2y)%5U"mU5P;kpZ8߶c C eedG =rw0 =@n3M5)Fl=Yt'pìL]T!XGK'r9 QWw1An>!s0}:\AyIya!RwO{qi=/*U~Do"V.js)0&L뇮}}D]],^5f/'^&Ԅ[C9.Ił5 규 ?uуO)a'AȡޗeQ4b5=o.G35d3VY}C8m^ѸP24%1r;FGvZM}G\hUk sduPQR6r…tgߝGLʪ3IΘFޱsKc JT,99"3GTfi {m4ĝUA#˖d_R|zקT>lwe0Ue|-8Od) tLN3SYGe(1oPt kIUJ/qؙ|47v'YH%Bn>vr*<r@I+q_=k$Rvo~1@Sa唻M}sɛFܤ46U >K4 7U<֜UH{3d㑲׷cϊքX-W\k,ZnL*]Ԃg*- fG8U٪:*Y;m:qS^ T'_Y/E(,e:tм4ڛ-զjK!ϔ+# 'Ë"K_lD9~ )̑=^Qj5Y2AU!_c ssv mzUarpoy@ekEeaL'郉pOub };;tg+Pm˕D$"ıaCY`ik"'r`Kq[}nM喠j!5[(g\ñC8wd1cFm.v6gͶPD\^?:rMz)G?4Cg09k>qI5КɊo`BG)i}A{ν,Nܶ/ X{/PRhCV/&5Gٔ&9S:>{E4ڛ>zx?uTvO.Ʈc L@:- ˄"]pqHhV2oإB﫪̼}ǕA>s3Zޤb$rK}k :9=xZ{sH|Y_mV8W[:#j1ǛKTiY{!a;Wu}yt_ӓ;ad󐆷9~]4a $JnC.8[6X4Ebf\/e"Vî8J[v%ݭq3fb/ ,V`pm|)L$AReɖ^R E7ی0c^>g@"+d7c Cl)^4\0&d< 9%s|ŊZyyeA/A[Xea$k]fI@l .0(I w\Xn޴jyO uZ;`h_G}S,@EM}{Ɩ,8>rUM.HyMcf`tbøP ,aAYYyK !lӧq^JWFFEPDy$5xaD3γw?% gWDi%9sլ?0풳w81\#"qpwi"'3lhq鏧h<9oYHfK23,OՀ0Ŭhea~L$> L7~ֻz"@ܪIG܋hc<%cs)Kctqsb59짋C3TաIPLŔ_3峥[W"(tW]Dx><wcoͿt~Z{/ ;M 7] ܋on6 m%0GN{l9&ӭ{vDBDޭoD:CiW }{l0=70y=xbpEo DN~Hƨ, ɉw_YD>B;vq܊ '`H6pw`+ G+L=| 3V^W0 xTW;Coһ0Ў^ᇨz>ɭ& Ӊ|8ե쎧]:!h)[C3dr-tסE[~jhB!g4d<0+ek0qn6!RC"HO,~="cGX2JD DE)(PbEI0NQibϾ~bNn<<!gl|.#2[,dPWR7((TrGh$ K畼!YP(&رLHdV_%  ]cT[fT;SZ-m_udJ&qE H&kp},e R^;J _[W6yHĆ}0e?H=tB<5L!`BAVݞ .^G7w5(z eGAyƶqo4ap= `%FMlR:cIC?Wo0|;;<ˀqF~-ȡϱ(|aA1w9{!;v6(i<ѪI S91m]Ckυ7hyG_-a q-w dKTٙcz҈@[pɋS *lZlǹjIlG枧ʳ ( .՗ Ik"4ĩ|Ta<Ħ4Vi,)h4@PC|^Aժwp[`@ڈEBpypTȽo9,BڛSąlKm8qjq%ey/mpDOaHR\,FL'Nun!T33X ;V3[fHt[&17uz2nf_:p{<5hizաd| LU*`i u ۏ/j5Mvḯj|R]OTOb ΍eMEIVM?(;\yn^խ4M_o$eoˎg;/oW}(/!KaHE@ԯy`,?w`5gcVd{z╸.7хXs=ar!Ԧn?b8"$a k\?vc¤Net5 4 9 oYz7#"E*P&ÿ~XXTr{6Dx340031QK,L/Je1_F9Wڤ~BT&fe2}xdI BS5''?=Ss\ ~mQ `N.wd<סj{xYasH W@B0]\9K'T*B4~{$!ٽ]K~G>}r?uzR-(J?Sn;$ zw<4H64ʨ4ig*,Lb?c5]IiJikG!$ӝq;Zd{9OQ#wjڤɇ_Revhl)cJ"Y^m3EaF~8MRZ'pcE RR5%Kyy3m0qX+7ZЕa 6ɍ% gB̧tRw{ [glyJɆ0wG`PO0ݫdg mZnbz7r]Oӻm'3,V fյ2& J8|piك!?G{.FrԧYvGolnϦ&rXx^]^J΅0҅#VF Z Tx } _"+$ C(\Rd-IC&K /#BȮoF"?P-kN>uznYw-;v㞳Mcl:Ù5B54yj4Zwt1*kܵt~;rOqGѬ.ܩC fs#sr07 Z?E{<_ٟ#5IҫBl4&],{~{`owI19#ըۤuџ]5/t]5ѿ\h2C2;3k7h:}jAJJ-4\7*kYBU?2`&&?,HEv"Mf%j5JH- XhibYCT7@}R0(u w:Sk&I3V}8D4vg{9|B6X9Ifȱ`̞ƣms>-k ѡGcwh9{4cgYߟ{!Y@QӕnР-ÙGTpt'/_+ꎮQsU̩.P4d*?[M2dz@4rTUr:̒ly)bhެBh ,0$"=Ҳ'/F8I6*nz20I+|Dɶi@*c!ؖVꣀ-Yՙ}96J߲x%&1r 0hOgN8IuD'[A߄%o ,ҡȮ5n^N*LʇU <3d>ӓZ.ɔ3mczHOhHROܒqv}OHOFjh$c\8my?8b4ޙI2ffvsc$LNxBwid$)R[BҸm[4-$hH} W6@Q¬˛i $`-:>-Β4 {`x䗆L9*íF(ciԩ62ܯ#O C> ~ikFGoh۬jlX2_ȵl{2mщyykqR]Rq+b] }~^iS.pkkb4L$C Rg->\o]~,/3)ܶ]`CW"9cpJCLmo֟;R_7yd5 ٲQ͛ ܄Fc[`t/,o:&kԳl@g lﶨ]JI5fX2uk{wZ_vz7*')rLj@>rd,??xE):TrJdi4 pm+ҷb';YlGSjEÊj|HTl|=#cyIkB\>& [Ύex5kWGmT1iF<ڷf9lՏab.z/8jȪt8c!~~mni5l{5+K w~J*s\)ƛfW~o=y{>mjK|n|7)` u&6L&D,]t6` Z _fRHQpu5j*ݣqr#;0aee~D5do!vn6UAY9gC/_ʽR<@R%DzzdYa58*.&8 $msf $55M3_hn2u;FB b)F巇7 tuqɟZ!>0ۊau+='4GeN?qҐBJr0Vw߹Y*(6 JX_z*MՊ/|Ho6ws[|7-~Dv c*D?wJ쮦R|-$A樤`n׶1x!zz ˟2%$xWoF+\m)MzF/ͦ O`ݝem; NeZ,%}gua3.W7].$IBR^ʂpBI `\վ m \~C䂁G.XbClO{<=xFuD &`KNDk\CB 4eBr6_K L)҃òLYv!m]\P.~9fpJ 1xiS8p{j $ 22UWr-rN"e*"QNbLLNT:`;o ɱsꂖ_41&>Y0Ȋ$_׍LYx&lަQt;4΋]8TyMΒBm+ Kflɤn=Iݥ2$$mfNV`[xd[s(Ngx akFPׄXs3辠9WD(i϶V$NeM< i:8c9׎"mT98|eYڊw~il8w8W%KAP^?j1qk7;"INIѠ7<,y#[vHXnGe騋CF8>UtoslcCdJ*ȏp=:/R [BĄsU[wtԭP#"\/'Pre7sکfR?a0S;Eb_c{w;ZugԲ2_CV;v6Iv؄TKA(kΉVu렦,70\  '^|N0 ZWW ΃]ǙZ%n Ä;{Y%p7ڦ_{vVC-ѵ*<銨6m5}RZhq:UkD'FnUVpGvx>|sݭ+JmtGË6?F4ɶᔻmxOt_9xǻ+W=.)~=6CS 'b`!eB[[L4pҷozCo_+}=C|o*(L=~'HP &/S X'/w ǣ,Fgy4Zwu KW0؎7Z̃oz%vX&`xWmsHE[Jly:;IC- r)JF0g!Qa# SK3=O?6j1:YFoY٤tzE?%F,h$HEp*Ⱦq?F9]E"Hz=8v{neIoND=LP }NR{~SK%N??sg\46<0[yu$ߋ)TY* $ypVR6t( g;WH{pC=X +Y𢚉D @I`ˠ*X% `y#_%pYQs7.;G#]Jfdx.9_D&l 3jSutn3MC{v7={DÛp0vJ:S ~ߕ+ۥORSCWSyrΫ|ҀJ!zi )h Ssk*<|81Ϗ22h5 ~CKjJX-xG9ʈM K+Idk$ Ij~2N {Ƭ22*A24w~5 3D$uSVHv]I2?iXm R^qy(;Q >%*65ZIuE7ctęw$k/)Z9րσ=>5e`SEmoo^3煭Y-ju*+"-RBL*U6ЅF_s-"/nP㠑 gZU*C$J$&n-qӽ59homz!2FU] 8{Fʓj$2F:{y:odPL枟&7TA̖ ͋ ?^LDh%}{bc%&""~Q+NuP-zi' BtThO0t񠾜}tL_u ثH@Xd OPy2\M/r x};-yHFQDZTxQU"{ݱ;qwq_4w)"6rgt%#+arAL1̜| 95q!؛/go~YRqT85qCt&c\r ?ɐjNF{3Ӈt2Z'R۱=/3 V+8T_Cpz~]@T*ڏZ:Hc<=Zֳ(8bß ƅV`uh;#/ |CBҲ(u6"4ZXϪAwUc8(F;m*2-ir _N+At*"%f\P38u% ІM+df#[F"F[(ɕv;]׹4Ms?YzR(f\5U$3)PٸecvoUϾtvtKVGx HT.2Ƨn5!.ca抾BU3 1"M9o5#Oyߙna[Eo<7!ª0*\,=ZeG,yl¨YCկҏ2"׼зIo0vWX4/ի* |iQ.}T'%(^qkyGW$"3lAc '*"'@j\: >I.{*GYvо;%}|ȴp94>;d0tFqʧDOȱ]tdty +w1V}r:rm9Y SRT{Knv.:iҹԤ4/RucNܛ_b1.nkU}¢߹3tD]ro_ ~9K,w(sxu>ٗs^ݸ˵ň@<Ũ”3Y LkqX;((™x[sH [ɁWȯ8aUZ r)jFFk!q`񰌝ݦvmhtuπ#yӅo_9)%t9]mϥy3 l_pZAG*c; S߻KggUBތ%>3h9d♶@:sM>fLijě`.lisF(`L2RpN +CHµ*a6<-xOUJxTS7ř%0zAq5 co ~A)x:̚9Tɻmj@j]׫!s0ڃImdؠTrYY7Vs!]I#5ҭͳVGWn_/g,ݖx[b &v8a1ɘ2qٷ`!%{)Ps0<)q}r{,5{AN:;04l h8kp~Y#]<+:@~>/\l.;g.wtl(^;hvxn@XhqCϸ)Ϯ.ؔXÔZӃ 5T^,Mfp1LQJX{O6N=>G쒮s.\/AyqNs Ok83_ }[5HJbʂUq)_Ω._P򸐔0N{>d2 ~4+БǍ3qn-$w\SѨ`B |8Ǫw:2mL-mFgX.Y,RfiIr t( oʆ?E`vL>~0:0sqs8jzC܈ #[(7Ʊ}>Cg`@ULިOM5kRPH(H`8 j-xWYaa Qw6-RПF?aAr2JP4T;NA b-ӀRCVv bLCr nzvkW:a٭t-k͈8Yq@Us;!vV1tP#Zſ XP&IRB*|NƚQk@Vo/V< TM)EMˆPN5@5 Nv B#H,OYEx[Bw9C dӁ:P})g4O9щ򡨞hDZӾj4o JozȠ;Qh0&G k%= sP%qt-FpDåhAT6$E7 • Jwcb* H/4tIb9eG0*B" C!Sї [ðOUPҤR"((U0XZ&&QɄ@R$`?UjU~="]_@bY1 йmooiPʕЦJ.EI60" FrԪrM\Q/rU lC]-^dl(nii6 Na S`!4%ބpH3UA# 1&IXCa1Âѐ) J&\Q AB$LO 2fљy3k+{ 50,;~ZVki'N CP7.իd{6+.$VA)lw@./fM"$r|  ȧMYΒk=WY70w4: }q@߯*GX6xW>~Z(e&0wL(^ f @2;EIfd9ܟcbKv9NqI99g p"=²cEBH2ux/FH_j8jmI /@Žۊ؟ iV葩N4p @y4x j,"YXY@T~MqmO-"Mrֺvf/q7`,gݙa=g4E /P~TJ&/O_pM{CE1>g}P9<dē哗Uѿ;cˆVJD7 Sxks36.(&@Ԭ-L R"lE 3M0C#< Iz׭LӧϻO<) Bz˕oCQ1w\ove9'5Ѭ1}c!qK)o^bE4\KBߞFv( |,{bTE8HY›qTKW@I4ulSlS̎-\Zb02RiiBK.z&^tKұ9,7p`$w0?jD;G# EKi5'Ó-Hʄw7{FBZ24l'H8$%ƥҾ a.KFc8{N{&\/+ C" p{$F!,{Stk%F[oQ 0;~C~f:ۦZQ{t8잌>v,V64)ϼaI B0, h%Q4{fTE4.1a)A{.ռ`7|ۋ,^FLL(Z-G))bk,=4[ ?xG}(굑'˸23Ь3%I"Y -D\qVj ̰$tj~ÏQA%N$pБ-pC=Wj<]Ӊ,) RM &}2M[(V%&1a^| 4µ5\-eoFc+Pkr1z=OY^o:_?2枉@t&ãel0۽4"5@A!G* xq!p *)JzܤTjv\@-DuDiгn;E j )-xZz][vQ/L8R 0A#s'A "2C\RO3xbO!T;Vs /_CA_.ҁ-CǟP LM ؄86X;"`Ag%"=K*S\K`QY4!cXd@HO/8R/R,i1FB|🈗af8B`$nfUb4dT 벹+{nO(fllͯDS&!dutv%ݽ2p^ ŷO(ݘ{7#͋zyifktP+?ttv^ӊsoI`I }}G׸kW㯷ʱ[YajnmuZT~kx2N,E3Aqho 0xBGtbґx.{/FOvH|^ cK\ p/,ۯT2Yq| aԨOƼ^\.*a]UbzY*hب ;~$T[3<֜zTۗ55~䧥4|&w DTHAGAȺc>rHs?a<#Zg|3a<7ԡA,0)J>b2\u> F \d|O쌕"O) ?#2X@$.\qԇ BQ?`BA\,l,57Cq7(NǹBiλ2;7~zJ6  zaS 7=a:9h1ٌ!M0(%&|1(qVlB'x|4q4Æ48wBNͶݱ&V k@c3u|A(ד$$oܜ S;!dG]kk:y@ah&{bDBG|b xt8nCs:qRq.C$%45i:A#e΂ .WQ-W0fu= BR 慜,}PYE5=&4+b]DJP0\iTx!qVC }`Gz W7dFnKPJ%qHcwʷ ?u"R;A#ׄ*F.]L(4pLC*`5ߩ [,tU>T)pE9׫@a;EahRF:&<Е/_c`Uep= x&UWuy6c5f[TN}va Br,: q(#+I'~Вy9=]R7i(v#ԟZ^eRtQ]_+B TZ-RMUB|ϭf*a9 K Br!/?>{"QK/}:E RI*J1W}[ucu;w {Ft{QS$|C4&X^-=TmKXO(^FEjK С ̐ t$qK퀾> J8kx#W`Ue,=8xCFSS:kIj3MUd5>~ĸRWSWW!.r-à%R56.WYo ΔޓqL T '14VaTqDL[7_IX€)O Ź% ١kaK= f)4 ghVɟȯJ3fNM0 !|<ݥ|];K0Y@87WER-\k:jdAvza8Ksgi],uh eG Z1Vw֝{=ڽZZyXE)>9zмCғ%^ЙgjEqR@}{ _q ];S#x͗_lZU JAvt\Zh-tݴk6r˽{{RgE3deZ/nof1>aF=sm)P@ƃo}?o,4Lbq)I.CAȩ5QZZF_-_U!x_7t:Os,`DIEx"8c(80#EP 9,N*#p= >_73UQj6Njy GpV3h4\`F칼 lBڇW/ǣoy$ xce'1rȅ /yTDO#UF͡H%ǻ|AQPY!.7ێGgbH%.!) 8Fjj5k..E?pڻd4meSlDJ#cM5UJ7MDzմZ! :GVU` MnfU<'i?ݧPB)ģ(2WjE=vE^xXgYPny9#S;u{(IfK٧LέM" b7S»,֯z`6mn5h\^NҟuMP(^Խk۷G ,Vz#C-L6 w6ms8qk qH,Ղ%!-qUV[j>)eEq>;B>2;P]7x zM^5Dz;n;!hqDͺJ ]8!{t(')`+/#NB .n 7^.8(ҎA rH}|(8FRL Â/-p9R-ꛄN}cÐb]t9 rSH55%ѲJPw5qpہ8c<:zC![߾B>r =p} >\xmMLQSXv[^i.dv["~,а5pb&=pPƛOpɛW=@H0oy{Z~: K4ٹ )9Zxc P3@[$ ?g6=ٓ3f*iu.)k5,ȣI6**$U×Cp{llϧ4ψKvJWY, ai`duSդ**Teij3BgJTڮs9T^Å\F#ڇ_82$(JS|Q٬2@OPdFࡇOizV)yF?f.ʒti|vw ~8t6Vgs[(S׍9rsҧK=˕Iz`?a&Aӱ~k La1,~vɱk<: WM tkAenɄ.$(-_ sn#|aSV "/@#6#X B $h| :x]sF>I^fX*^mdi J32IHlobU!拥mI= ߸ \*E(D-E| pG,'\5=ޮiC-ߐ\zdD9_r Q,|c@ _uA$:!R6Q 'E +q* =Z2P,^I>ܳXr } .Xb'Irp.B$"\2n4ŀ @G!6zzCb)"i(|-3H$ J|Wsn7F.9:6QWQ5j;z@ÈCz/@ Q6x =eo dB5asuhj:w:p q C'NMvf=2X[vΤ󈘟XLBޑhbRNPI1E>x{qV ffËɊ*U_ac:A KJ [:>W NRarp/$--s6Xv=E,⨄}ՓiqO 6q1!m‹m 3_ocnG0rN G[xX[G|$4Hi#-CU6WT|d\.Cɤ%xÀzax&=.$t0e(`qCםzҘsmn3vz^[@.Oƒ{bSמΛJ~L@iTS/6lJ l*cp1 rF<;BȮq~WIK%%yJZjS \iSI*6s3LU2 GT1I\.;Tg#V=1)/IF\z&*j[*^TI?hbKRWT--,;I,kM,~E/Y,2}ʺ10b_|7#iʚ0jzPȺT@%yLC4cΙIo6gg-$2q)1MY [ zh&S;PP^)+rRӪW#X߸J֊a\`MvnCnPpNfKj,Z+W'If֋ ky~iz_5Jj)VE6MGe^eq}:^\L"5xVmFlQ#.%N8(Xuubob_{grΥQ/̳<3 \^t&fWJA/` %kpU:$VzӚ{^͋%wysVH[R &jEJHTbkeVq=ve +⩐w ",+Xvh HyjAj-`+)F7)/xrwH /$& dCF)tM–%bg rVLC-yV@W¹u<[-p/PZK7@hdSB01{ 19-ȳl?ff9k03? ,PbҬVlQꄋ-^ X9ayYp '3ߣ-cA 2%{> #w8"2C 6p'Uz { + s\Y 2s\": VQ%d,N8\&بMCI(N9UUA WƩEd,JI]{ؖ"UѲ?~tmm7B'oq>Ky&P~qƿ:0vU8wԹm/Ǐ!N.d`!b_(r﷣vp~7ŏksدgIsp}ĩOphg :5IVhCW1RQő.CwIk& ;d y p( ߰ /7J(m]%NlzIdq5BVo_SE4rOiWlBUIѩbv;[4,mXP)Ų8> p1kB[HBԉyhEQM*&g)YAG<1z-ԩ:5sL^)st3;1k wէu/}: (e;nw}0_e?I=N*6₭έOZ@`u]٧i[XIk 3ge9J tyG95?oOtq  Cj.9ӎ8{5+=vw%6w>XY' )^ <> ÕVx>h t m􍴣uȅn▰'r;\s*p~GQ<&ݖIGN\9Vtf|itlo+RM !+xK?HF0&UU64}E3Y7ߴx٥ x340031QK,L/Jeh xΨ;Oz,u!DobvjZfN*vkjΎJ>gjTMZJbIbqe^^2JCR3T=~B#[;lrW9|[\|> @~ݤsi.~{C QDxXmo bAJ ~ muibRP@ƜިkUc[uhn~5I_;3;̳λtN7YXĻHQӇ8/2rYb!i]]^^ IB KrŃ0v(] _BY^!&{)"*ϥ+`ς8|*@"AJ{IYHqbCw"Ъ>c_R'H΃2}~3vh]9D x 6@g@qMDY"O燬L`\P)EX&(`{0u½!VQV*؊y4)T="0~o972}kmvzMCSZM׾̧6jbi"Aj_y# rI{  !С%S8`;CK$p 8YeŀfR)]^Ǘ?.ǴYOFTqKpm9z1/AƵn=皦#xfεݹEM$/q#QHAhZ/ֻ?s3][.\i93ݠj= \ӫ=*B;ھ[Lh#ܬ1r"7T,gI 5{ka{[}ڣso'f[k}+^.jDͭ3XP,ŘYח fLC^0Ӂ0NBEh<ۋ F4Y# ?F\+j`떪 RGX] {L1S, ]lzV:OT+;ʺ|Q`zͩ, IF,quSgQ-f9bR'Iˇu$}!1;t \ӋxbvPI5>H$HEӛ+ղ4i5g#W+^Ԁ:hC}$`Y%҉LMU?5qvkɴlɸG1xy*zՈHOl \^i- hun= 5b"iYt0[>ďFt|k3G~Omgә^3>'Vɧܜ\qG-DjcUߣo-$b9[:֚mMs˩Xg sCxx8xt;3 Wj ,5S? g_v Ϥ䐭֯ïwcX<siAde:x340031QK,L/JeX:;LѨ}>5MNMIe`qݮ~\QL I/60Kf`p܊g%kԢMpBVc Tskgݬf, '8?!1yHBƚU)2}i_aAVc T3k~[-<}#Y9PZ>#zͱ>,yVd5@5Yags=*ٌ_uXyu2kޚm#&C?" ?/v8j@~wrq}ӛt?<Y kmݭsrvvu 6/gHj 򓋁q];psK֪}o)Ed=XxWko:,YYȩڛ*ulÒ . ^Eΐ,/D̙!u~ҁfw[vЃIx2%pYJr)[z""?sm?@}c y,| Afzde%,BBlJA(`ixdvi P[J"!l<Ƶ(7`*J ӊ6%S ^34S.p^H|ʤYaLQd9i0L^am"Yym(f(6Jɣ2vO|;Or[p?pcM$y,8WT0 cf~@-r2 'ly0/']b\̽!!WLr-VZbq[!yZ3,;.1EDix,rHel,k dc}j8βL*qv0sf-ﳠZydO3nypo*-qeArEXD" zzߐfLR¾L - 2V5Kg3K9u0x+lbFwvU6l* fa-=EV(ne} ^GXR?WgbY$Zv&8ArɐH} ys$ .Cv\rv#Tj*~"B.H,)|ku~d hqG6]%Wd,E&ilY'prkҽ$kS\t:vC&B"Xػ8bV )K??;TzmlHR5+t''(rg81vE@K<£lI݆&RXONCcѪ6MJI.м^zRRsVHY.mSKxX9X&,(CFJ"۠C5 G|g,w,~S'tJ85!Na׸Fq#|1]bz_+;EqA/w\IDK\l.ڊi:Gǡb]څAU11>k7' pHWV(dl(sw[a?H0W)ȵ2o Ȇ7tձi0= =!؝Y&e|]U% ?O魖V!PtO$} 1xΩڃ=TqVoFlBь=1+Qy|$)ŝWW?edLeXX_+oT9RIWY4gLx340031QK,L/Je9#5.]X 5MNMIexn2OaWt*@SyP5i%@h`N;s?<$DL|+x340031QK,L/JegYd9S7|dQ囘&]eڭUVZZXb`pvB 7D-Zx'MbC3[iIfnjtf)SYBM'bNau1Ø;XU!Ē⒔"45 \\y% 0ڼ VYb19]^fЌ̜ԼT5Wd.NI⒢`hX9R+5 r: ~>>@#8990DQp?$+UjsBQjIiQ^jBjEAjr QT1V!58UzW.EI$]i@MV>{y|M&zO^ͻVP x[100644 .gitignore(] |lv73?H100644 MakefileQx8>qѯ\QN100644 get_mempolicy01.cP X_(Mɜ)100644 get_mempolicy02.c#>e> ֞%ꛐS@޾xksF[{iSXÔvY:b锚ݽ _N= jSbnFb%tDK1# S0ʟ,`n Jeg\f&)baRiKx;" &ia;9L%WM"x!q/<}raJ;5aZyp\&ADZ^oz-{4^"u3fxtEi6N.Sbk$mv3o(@K+&I۷ҫ7ݳ6Jp=ƠnyȤL)QL%||fP•PS\CZUr;a5`HcWiKD - P+sL#(1xe'XډI>_}K'._?JDWx@0X+| [gQ ́]A4G[ݡ[Q/0>}CW3i^aAyuVI|<'^QiH(jS}bђ=2QUC-c/_j7pRA,6G9e=?{!yDfr֖Y$FP4,B$@]z=rf^V0)mֿ|0rb"v}Q+R }jl`D_-[$$R=d㕑nXYX{Y&l21!NK݌| dmX^y=:t|t|~sjL:oSɺhJ b,\FnӈfچqnD+YJqg֠Ѯ,11Ւfxy7NxnD*:i=O*/cfӄ eQ)\p6Nz0FT p!4 F@PT[P. V+MqXnlF%%WWg) KQI ?a9ga nX0ذuN҅}HlYT%+6u8+V ,6|SLĕMr % JR e"+iHqV&ZSW&28C9Mx Qts7 tf3a34ͣ obt ˝p<|.Ga=,W6u+ Pc[ZG-ZU 3"mTc)L!Ó0!I}c5um6DnNo6xP%h*s-9Oӌ-užPeI[ }WÜktcTp7 D͵n] IC0:6 B4Y(I- H@2v}m|s{ټ:N^$hrnb~zh sEhpC+S%Džq6M!016DRkg1+pghHH RU@8-9wIJLF3F|*.P;^6v= `C{gvAM=L`:Ї߅sj>@2{DJZF`ѭZڻ([!A0|ȱw![m?b&Oдj6L&]~1±dfh2x g^ax340031QK,L/Jef#翲)3 bu}U٩i9 ,nUگ:;*؟!P5%EI%9%z k[|2iݢ%?`^?(-+xWmo9 bzzh -!hYZEU׀޳$]K 4mRuU33ϼ99,3Tx Z^V*a-3>O'x.-dF [FzꮘM΁3F$:#' 0h *@ja) z'#x-0h COriEtȐaat4B{ך $X cqOZ h`*̑tF'h R6amRyЯ9W2Ma" b_»V%xFkK"K%{)B/y;:{Z/n|@!t."hݳQ` .c> Mc2.1mLs!h!yp, KywQ|)R CN9 lb]Ü昱O(#1txQ:r*:֦/u$~ނF~ހѰ'w1A-)̄=ɭcOE^ ˍ)s-z+ &yJyrQ{f]=Kfαp3+lpd g$buun^tNxA}Ha铅GKWX"X @p QqV<7F((ґ@O!FGK*؟LY!!=NZpD a bW+PaxˋdVf_q[ٕ uUom꿞` "@D3K5ss,'cEPtfv- J 1~9?CN*C*/v ki֎'xG%R}TNǖMxv{3e\| gWYF "nPi\Fzr(U.ݱzĵko<3 s~o)SL뱞Nx83̙hL&c01NД &˳ ͰSf{`RUȟ ueN4*xG?-hE*8sY*Qo GG} s%+Og+2Q~R 6Ҧ{Txa*JQބ1]\ ׸XmpyS8jE$?F$ORІ iz1] j z@`4"bocoCzrV A1 BlιX_揊;s_Nrn"v*U&a~qe/Jrs|km~>;Or;AG2o NZ'3n`/N{Z`~KU~-/Ѡy4d\a<.JF+1x , zK^vp Ԛ49ǫb7J K'CH]=;nHthn^rn6RdwtC{*l:.Z$\d*I)ʦP kXj=i1cq/g2T~@שEP :gJQs*^QjA21@#v_30S{7{nwgSSFr@ C>,Gdz>CQ`zr! Q|FK;1SX/P>jgCImOi暍Ŋ{L (㜈B=PHb h xW˃V]A+ pO¶Ϡ6jV=U%-mt)bT96kn|},%+ВBJ0]膕L0>'¥Q(&`yЂLÌ'՜ALPT j~<4𐤼3Inלwr`OI)TCˤڤ]D76ݜ[/#A8^6/b[ E 3~[(lhe̶'&3Euky u(@=z1REQuX",E:Q BnrrS3\zDU$Mc1EHRVcO.>3nMG?729ƒlb9<9<( +f6-6HFKXdd?RejV(Q+˩}#{Ѽ}'fAQuE9cM[xRQ.?@DëDɵy)U7Yqz{wT%:JFn ,%.*=jEqS)J"7.ZeI"SMQ)N)=b3>^M2 ml"2k}C}V|1CqxV]wި8-+>KLDuq8&gZB&Hl<=L?]SD,{#Rdt/Nxo?*4,&⓱ [?妆ǗhOF eo1xO100644 MakefilexvUN<~ 40000 msgctl^aHm3pG=&40000 msgget 7$-bĎ =40000 msgrcvzkڼv6H40000 msgsnd^NU3F40000 msgstressLS0GAp)[#40000 semctl[RX=c$ 340000 semget&Fy?U1$J |40000 semopc20o.b.!rr40000 shmatBσ*N]`xr٦40000 shmctlDZoɐɹ1Q*40000 shmdt8ywcÞ40000 shmget_R$Chew1ysxT100644 .gitignore- HpP100644 Makefilel*4Kmѣ#100644 msgctl01.c1| C100644 msgctl02.cYOl8 S{100644 msgctl03.c1s7b tWzp100644 msgctl04.c7Ig[uoC 100644 msgctl05.csRqHmofOeoK6/100644 msgctl06.cx.&`A'$">100644 msgctl12.c*`N'%] *6>Z{e`i0`f'4ZE,hn`83ǝ *'p_'g4~lA+Oi2JIZ9m T6*h '[QWdvl7S r8 r4fq% ~oʂ7a iE0B Aig&p&[*o+-Db=-1b*O*P?=?pdQ<طxr|%^j֫5^L08y<3<ƩQ2P w"lOJ,!Q|W/m+[.!e P|W7D',j_G4%*jf\J^:u}*LTO\b~Y@i /oyA?H㆐_yyKប#Wn>_ܛGS2j#27IZtC;Yv25>ҧ`NٝH#'Z,{L7}#stSt=2Tz;\(& \xv%kqR`_XRLBEUre9t&)vz3ߓI)o>,o"@W-:b9<2 Cq3\tsR! xQMK@&$hRb^ Rr(5PAh<%46&J%w`~X^ޛ7/ y;}LgƄ SxXc( <ϋO\G;ٝHt#Ꮔ: 8K5̭ez84#܉VqO9Һ8x}R]o0}_qǴ * IiIdH4Eu^, "&S&4SoqmDWߝf rR ZP>" sw4̩RA>8 ffh`fGaS[E#^+VTABZe*ɣlҽ]f[8n֬/^3 Tw$[u%o9qGEd nּD5 :XoiUmN`Bwu V2"QzȷAb8fO{t< ˯ahYJ%>7SZ hj7F^o@ȏ F/dAҊ-eGKk)!+xR`y'Q*P8yuI9!a7û6wIocm\U⴪dH?&$X79er>cGOӺxVnH OqO4Q)1Y" M2F5cgfLf@b{f<lAr|.߹^֧!aza(bدF-82T+NІC $MX×LPF + y:j4z\s*%a0]ub$+t5[\I9$.7Xr*w[ #_y6>sM| nMr"$^xU @8O= 8%r ( I(Rıp5;YDڲĝmH1֜җ;pE0#XOpWL|Fq:ᠨ,$v+`%,ĽO&By/h&8L0l,T4#4l4-EeB#]~*8g`S'-lLCe|02L'(@@]ks?>R:h=F a^5c!ie pDBD9{QF%smvZO)4pKEIzW/]^붭z:Ыwm{|1Ϧ\4w5Al],G?مzQ4 cD—4jtk~htNx}Tn@}_1"RU}h.KBiZUZ{WBv״ɿwֆ{w.gΞ^mw,BvGZ'8N[nhVmAr-< m8FHT \Y hU휅}NE){PdPx :A aUN#3jaV,P:5ΞôZT9ɓKa2vC+9]sJ FNEV|D8~s6pt>,-BX"Y-?VCiY(˜p)5Zc}E7%i5פв6I dԷQzmD6u1^x[ɩLmQLH~xSep_&`6\bhm o{L.Z7^]we5id 1 Bi>kb<P5|Mg.Pٍm]|Ƨ{ԙ;2'`6UlbT75Î#zԽmujG]j>em Q b%?W0j`phk@o"X =|ƻNi;pu#3=(jPah+-7 0`k. i5YI\,$i+(hZsqqhL.Q pq Q(.)*M.QJL -eMќ^SQ$&w1:9dd]{XG)rxXms6,2I(Yd;Ug˭c1m"Y$ %;I=gw}{=\{)H͋h9HܨK(YA8=VP@N VBa2z폯.@$`΃[Ps k7@yCI?Ba,Y,B5D$3-y =xH2 -cZja>Z-XH(2R JB 1L1`9GRӍY,O\˥![HRiÔ牖JFzE9 !}"q"B$mGK$U("AK c9ǒ5ހIAXJHsTHY&ʵ6\ÊB _VI5|7\[Zܡ 7 z)T#~}LK/ܵR +&wu6n я}viC=^>{ӳ6e6l19dz޹pɗHWq ][|$f9w%LxfA~eLy$ .B EOkK*Zh*|";oJq,TZ5 iO*DnYX=8)  S`k_:͖D.W >=.I`I7ce|Z묀U"C.\d EoE@%8L`^"[+V&vߧ=ekԷIc &cR,s[{FمH4y \X98%KT PU;5փMP߿h:%B3['VAM5'ʭȻ*K C/ؐ*__֜&ibie:xWlC`b2|lk59ˡMB3eIM݇ q+ov:$s7N}m o[SMj^/G&DiyE7Qi-8fqamhǒoPGrNNtθ EG"y xg|2zs5 8!M{ LI R;4//8MD1!\ l kRn.GPNJ"'B/=n ~kۿMhog6?1گbaꞚ ~b\b8Dlvu6bש #D̑-HݰE0J7ҶBMJp&;  N%LܩBKh]ٙR^{mQM)ЍzbVKHS*0:&Ë?ysMt/(tzWFTk;!(-}BM7-;UI3xMbFxmTMoXUSh2eZPxE"jS(jCxuƣ$NR.XX@ ,fif3g'MKs=/O#W5UT 6|VnpMpJůQv-4ChŐ]Xt]][&լ72`0mxn[z5~ X cYV;#+ߑ!A3Խ/}q "!s" tT[aZe m)4hrmA=/_;Cǯg}Zc Lj[$5NL%o"+B Q_կ3S ϴ˧qLtj_LbZM}EM;ԉZ&"Đ:@޳\Cz%Ǝ_nbX'ӝzGZ612SQ\&^ޙ(@M`/Vq]!1_zL[pRb/ƨZÆ!^:1Vh&FWjjb^PUl3gE+k Nұzl"gyVH9Ie8%NjcGJԙ?G[i㡷ph$o=n¼j2nC%?.Y40){0 u-Te,1g-*QΓƎp,[)ds6Yl.ZXFY3мG 95ˆN+ϼF[di:asƵzuněx/?S{#383k-rsiaN/C1F?ntc{TxuSN0}nbTJ$+n"*iJ^X!+8Nk:;v)33g&$_nD1aaN% G{eN3A*g`C|Wt<`b ~SRV#l eq&ɛ 7p \O=m䤠^ߢ6exZNHUқޤYAD5AqLP =)ar=b\T5lʊrEuLssQHS8gQl% “e3"/%u2Ͻ+svge%:qї%ZF&(&Rb0k阑24HR4GBòd-LA jhr_n?NmmY]EFR+Ћu݆wA˖*?41&$'udbNDd*=X^$&8~4?-zk~ZBZgAxJ2.I:;}K~UxmmT].x6u%_9$m.C-R6act3.0˧Sx100644 .gitignore3rn\W[ȴ}ص100644 Makefilel*4Kmѣ#100644 msgget01.crn [(\/'8CYghE100644 msgget02.c1 6f~21100644 msgget03.cW;=ȤyK|>A&100644 msgget04.c.]gz豭p9L100644 msgget05.cƃ/]9?O+ Gvi6xU[V~ƿbBm!e*E*Ic8}=;c0,DU~s=>,3؝F(_n>^Luo,x,*ZL%Id`D&~+5) u dRRf0.:05ņ, % ɼoY&EV%䪷~mu[ m9Zo> F6×0¯o We"DBx*@_D0Ё\D{1%P~X$+0oV˻/ˍ T$2b| i:^cd=MFa7D3cQ:vDG4;FH*cbs]lgw;dl!b/\F\W1j{?oj]c}0Ag>^.E5̻Qךw3VYml[? A1xcC'ެћ|/G]gהG-]Y IA d & i`u 5hB7OT+;}=p>e_Io`]0<AwVx;:6o;IA >ӿ_q J9 rNy,ND}9gBC;<&&r4v1_wfG{xĭy]SE{5b3GO $bD3#H>t,z!~xeOKAM6!sт/.R$+B?I=aY7o-?̂{zVy'Bn*^yy7wԅPh1u#KN>~t=di &axqRwG6 _2i2C!P*c=Bʮ>B )}b18DvC)G'{SH Rk`8RKnNpPLNW+ipCqi {U<[,|iՠrʬhPmqv;_-*33&KŵA3vʫz^C&VWJ 5 ֿ\1U/WenV,˧v7?mYs$ԲҼwOHA^w) M iN*xeJ@I-ً!) DB&PD!6,mlE={Բ/E' gOn,amS~+Ug`P2 . p'XKJf00pC? %a0R?JK:ˈ=iUvnMČzs%}t7bPoשP&w kGQa2)qwv)J%>ms) xU[oG~_qJh\hז(^G(@K[mve ‚ۦƇswnC9rEaNfKF[x;E7n$ʨ N-y(j!Ț0hD3I?oT)lm$.e;n:iPk`Aˀ(aMx ՠ*#EA b\\8k BXl2W"3r0뎂)%@2Hh5~&W$?\dA:9ey0rIQ'-ɂòXArS(I3<8SB;s(pu]@R9)`A/|YQ,2 x(ZTSƅV%MfZ𪙦%m]i< 6%oR\{zwG=v6{ W6 RZriQkwN L?[:-nBؑvjнR}Ҙ bK`/o째]IB轄xvt?_qӻxu;_gN<_N x{,Z:kֱd)S8 'vNSm:Oj  5! NJ7-WlqRY帱KtYn#vƖ{6Ԫ IhI)NljztU>o:: $t|20m$6ʼ?X~.֐~- 7\ c FMA]pzYA ?jzgfԞ`> xXA>ۿ`?+*32Ig_O7l&mPmj/ U^_Z{|7ۦ8vxRQkP%mmT}ڒՇ>x-.i67Ů*CoI|ߠޛ]E!|||w__x|)?B{2w)k0P hhQxO{=̲7rd@>ax:c PFéOܡ'Y'G. LYM1,TCB{Fx0GExbɉbk3`}I^9fH=V6P>FHݶ,n _ߗK\SaV.b5\FRap"ʬK,눝oBS2><n%jD [s䫐)2S۫l=(hi~Z,תE$ynGVK99v#;FY;ug?QE%vxUmoF bJI>K%1"'tV=)!@zm?gvyfq( KW[堐<(N ]pr++Hr\).P)&X-a//& JJòC`@ I*$_R auQPBrz1+G\V;s jV t2Ɓfi}=Oi.{mhX.K$my dG}*8\VLeW üb;J[xO (gd:-;\8A)0(C%jXiĒA*ɑp8}޽kTUZ]30/_RvW9yFoѾH1\E\Ե +-k-+"̼7U 33;bcwx297OԝSOK 1y(LoNy_bk)]xn@E bQ!&H$$(5"؈ҍ]kPp₴G}fm=r]7rLA*1cxQB}&yFLkl>)6xmR]KAOP7m+A d ,UvfŅP_D7z?ҌO3w=s["RxUtgL'q3DaG]bHAA4P0, bKQz=òDDb܈zw!v>`I,_]&,-T~`iŚStHӅwR)txgjU+](CRSvjBP7UR+<GVsSzTQ;H%Vi4eȏhv=ДƳ@B< 8nyy9Pb^cst J`|i5?Y.0xz+ B#DVJ\﯈ 2)"5k|&*fl! MxT100644 .gitignorev23Yi_N100644 Makefilel*4Kmѣ#100644 msgrcv01.c+]1|[h6b㻄100644 msgrcv02.cW#Lh}_.|j%.100644 msgrcv03.cy^Yv:] CV100644 msgrcv05.cYg2E-~~100644 msgrcv06.c*b:NPlM8бZ100644 msgrcv07.c!/;o$Tʉ100644 msgrcv08.c]g g ^ǢGxVmoH>m$B^UYwU] 4~365^!y=33c>4"Rƀq\Wfd8C2ؐÈ1/3o!S_M0e0} J|25t _5BR k0#7V&ֆo5[$*y84۔eO$w8?2>ǒbtL'}BFqxte\e[u ~*Ev_n؞Ts :it7Q9/|hJ.PHmCwh܆,V4Tjàn;| +J`3QN%Z8 ?!Hyc$xxP]8NOu*NU]0D.٬Vm3 |ߙ"iR;5zŚ#53yTyps<QAzEɣN͕PCph2CjY?"-Әam^ԥ%(ga.Cϼ=Rѭ,5|i:9X yo0Il3iצ.wKݚf*ĸ*6ϘѢV%f¸+BiAƆ8ʛCbWRpԏN4Fs?^3KBZ#ÜM -q]X:wIwk yfn'&X F}֑gU]cѩo4ϡ^i,gÒrpfi[.-Mm0*?tSͨwVerm)dPA);j~QN9xE)3)9g*w)N%.$IE٤"IM&QѦ ' P u#aj?ibxVaoFŔSC/'^hY^`zw6䔨*e}Mmp7PDLh>,.ǃVdڊR}l1eMb6vwsa\9}nA/!Q25,:R"4 cesٺ >ZeV(WgxyKdʽq 6" s^2$f+3\ !5% S 7 oq>+Zq|\Z2ɀe,cJ6 bT!Dl/׾;maE (hY5UMa4DVڧkj-믢*3Q>OlC<(j(!lkj  ^BG+N;Jjsx2j$nvjeJG}ZΟݩ 8.MP"=7&ԗ,ex@1@LcOoH'GTV9Fp v Z"ŋϦQ¶ }jV*! ޲,+_7}IU*%qR>ʄw/74Pu},%8KFÇ9ËNHMLoe:/zΠ(dǽ!J͗.oиE^TV/ G ~DZCEСdI^ťA.mG͞6Lrqޅ#<&4b\ pI$&;{rە{J b3rM^;kQC~,X|J"bR)a_9_(6pŝkV_:Mhgӡ dқ$Gpj3,p#MR. 5DxAOAS );I(ͰݢҤ)V0 L=oOU\MԏZZyvy1nxF^UXY_ lJ*?4芏%=6]`<`Pj3~z8Jie q]??4'͵5Smq g% T,oPyI܄Gv#i)<Đ/r}%E ;vk{1wd;1砭oxr/WըNޒht>uOBz<]s|[ĦwתIe"-?.,S ˁ|UnAI"dA@TS aANp,{; THpNhH1X} TtF!&b>iRpT|s' ėd< QHgoSF Օnv1[+=m5-1JvV] #}/U/9Y8tmְ,hf]]h`/]~ӵ@ƼJ͊73]җiL|?BnPu՚LT}j`QmFUJc}r('40A=לγ^;= R64t3y{IXP6Z\;]v<:#׬95]\ٽj,'( s;ue?8 m7({r mCv7) XxeJA)ع oTui3*"auF\wY3B. Iznhĥ`ߙ9_0uE`bZVAI} Y(Ey>1_Fs!_v4h{]7 Bsf$D^[ƥNԳi7fn|~asZDhڤqvLvB^E,bS 8C*ye #q @_b JKRL$ڪ\Z@#@;E[#6`T$Fh2RiIׅPV[c4$rP.S1aH9  Tx{̹sBK>rf^rNiJMjQQ^^Pi^fqI PlT5̂dTbwOgPU6QPHWȔ hr S92N`Q5/s,kYlkN1xYms8 Bs9Ș7}iq1Mw\'qmgdb$߮1ЄRg}vj4d<|wY?g{.y7Z ay\&Ǥ!HRujDo-EN/LKu"y%Id q!rxËN0}W/#>Z#eEsB/TLBg^k$ `>,k MM=h4ſt+bsq\y4 %W,L98Pk$79 -Ȕ aO(J>GJNDJEܑ,F$- D` lU Jxh+6(>l) `KVRU~CԪ܀?!a L,?hD H< !y,*S foqĀ@^2O;wOEFt?$%sۏ}{U\~RuhG]qǏ\J^hL6nޮ)5ҸJs͜kjqz!k(WC]jEzIϋڥJ2G^H:GLx8I Ub.yCmMծ],9OK~mO%Ɔ!ǽ@k'A[J?Km%ҕH_' Z*je9>(f5^;2:&Ŝ#Jjֵ ) *GY4\jr}H2 @:%cyY qmvyjMkd 2Y*!C*iQ3MhF* lSpIH_`a+ag<ޮ."ǡԍbot^QJ LU˻Xm1qTa IC:5P_bց\bB4NAx"M<ϥ 9{s4VIAbK[r//6KgI q'F2Fg9y*3T;Nܱf!l{_phU°dk?]b<<7.x=ϳ/w:9Ƙ3%6F.Ɗ{En j$: q0H+@j`ڧOUg.8aw\}EO6qÃp'zj$b (%ObP(xDG%+3XVkvu-q;:|K2Mn5C sMLw ;1Xg>zGh[-r/gJH-ቫbŗjc'2:VcN:EETr 05k WRa }O 2sC!ٳE]%z b#L.:E#H/m(qb𘅩p)˓fd\ٖƜ<VD+fr,J*[U3XM1K;C*F;ƧnHE 2jG#ySKWw=e?O=x1*FuP06@-ɳ2v^ՀfR\.Zsg#M5X"$*E|gZCvz36w>އfVĨ̆ә+(R"ޣ4* 1N&&B9pW5]Ċ(]#k4|IfUcUTĴ[WI﮶yKא2E ֡UϑX3RSV]ZDfߖ!!]ĺE 4@Gk'ODB,YY 7KˎMpFMc b7o`nL}}~A<sȪKxcƅuK1] ۟ӕnA3Ft˅ dRMֆ\6jnoj%MTw?WjXԵF7.<x100644 .gitignoreA{\OEb~Rn100644 Makefile {{ C48$<]3100644 msgsnd01.cUҞ¡}$֣CL)Lhzӌ100644 msgsnd02.c㈒M u٨U100644 msgsnd05.c,4KGvX100644 msgsnd06.cwHs=Mzmg:{ȕW|QxkB~>ksg@Z\R䫐YPZRZPZ\PXZP/Kg椂-N/K˖Uf++($B `JۼљqBfa̔G8 4u N``4"?y H&W5gAfJ|l6c# _YjQfZe<3X-&gӘ{)ݓk '(*ǗUkTx_100644 .gitignore93kR˜ 5/GM100644 Makefile4/I^m)2100644 semctl01.c[ue0dR$M#100644 semctl02.c)օ 100644 semctl03.cZ^9100644 semctl09.cHLoA| Ur2TExXsF ֝.`p_>:3¯Zm9_c+&Ghq,?5yOeWڴPmj&ccDl\^NO! EioZk  e- 'eVi '(n|2քDh YEګ  8qn3hZ~xDLlY,Ɩk:MM6I,oekVܒtӱw2le:Q'u |Dc-u@ ֎ CqIjjz1NU2P rXڮ_p*EFkA~V+ca !!&r' xpD N'DfEFKng VLQ6$U E"xrVbGQEAO z=C)لnfл>YfׯQQK(.q=@B!8:ޙQj(;HB .n TJpQJZ뫌(Qܥ̯E/r'zka^brr!7zbT -BPt|aOg׃|&la.a K2|@hAQ-)J 0%%tޭ XiRtc0c1OUNHU=5chc2ನz/ⳌήJJ"]l $sEsAnjb/BP9J8\F.Zx,eZ2еrb=0pV4bO1\OuJ"$elyi:jmf2իiEiGU_{ѡLBhGN{o'VǕ>J7 I$^mEtMiŠmȁ>*ln>i~d|U#YxU݋HigPz (Yb?Ж%[7zΫLV+<~ι`6/ ? ~K{m(&.2ƙ0 7{:Kr/6Lݿ3s$s~F]@=+jV^1'0 {D*W7땩Uп|tꩾLH/_JBbv?UO8~ B/>/RWQ_O!\SU>aR:&9\f?fhq4hOJ+E3?3qW_x}Tn@}_1Re@*塹H8H8"Q[YU]hʿwvmnQT`vn{Ymn $M)n4pNݎs'$Fe@ yt6` #,4gQץ(+ 0 NU$x|m80TJu h\kZm* Y23-Fx׭% bCR/dKIf <[5hgL\ĝ_8ZWGަ2QJB /CZ.,7 A璐UyI(!EKTL4Kpa@Ƒ / mdl$y02ތjBύFpꞒAga% خ6cRs.NN,f YCr 6ZXꆾY"McHlY:E@&bF$~4&q8ٙnpF0 ByY b_ g+,z4w]Q9JA8RbS 16ǛYNuXShIJp'[/}ߛr*uh Hߘ4k@2AӞP>< 8Hq[eGX~ułUY PKwflϓJ ௶*$YDBhlٺvMzCYѮǜ:۹*Vz7WN~R/s;CYluصF_uw5h_T[_RN|iE2 tzT02<i6иx}}B:Ggg`Ԣ"< 2JSs3Slt 'ObVu+.)*Mgħ[sqe灸y yE\ QK/4 hL1dufwzMWCt89@@ !$GRS<$C!/?)?R8HIz#,r\n!.9% v)sX™kV˲N|UO/xV[o9~_qJh vߊRE%tnd93ن e%> c? 6&͑̄29̅r.'V͂[F_oZ.,BV/H%k-i7w:0 67;\V:MBiǖhcۿ(-|Uf(p{o\0} ^k㲪oʊm.fe3{crgnϭ6z+?^{0d ﺧX\Yn\rny[Hq~>.ѻ5o57lcuU"h jy W)<ڮ:[jjeY!kiMBqqZЃ g?*Gm[J>1V؛܎2ci*ל$fܠpF;$)\.$ .\gKB@:0ӅW+u_/A&9FIP^5vIjZ=%ɝ^/-~F?<3,յͭ>P Av\KU9 ep{"(̦ 4zx9 o.Q:qvf}/>osJ8!iGr/UUF.ٕ9;z=}?vv;:͚y|`w͏ ϐ UDif|߮fwAPq n'7EdžQ y'IA| x7J/<qv O r<8d.@ NFZ%pxh"LL)!VEؾ ?j%x'0̋?Rۭ.ɦ=W%h aYxh9\Cl /,ʠROGQq˟`ßmIxMaEƐpg{i͆ "'9YPi8? 7&xJ0/j"x |TM:딉  m Atdmm"i"{/#^c^z3^e><=q\k?ĄƆაbD{PR!96]]nU րQk(7+ۥrfP=T6 !dzyL%."v/"hMPiw,B2ɃRAi}yFY+%7tXShH K+RvGNV %|sL.nhgM]pR(T1G_ߙRv a䙙3uN"7ӌlJ(Ie2婌D҅O'CqʔI|x3$x=xh-|/D2ygdF^ @NZy 2K)H$2O=(awSеk:lBkM ݋$;ʼnVc{۟Pv+ZO5'FBky(%^-VrǪֻn~7hDZtӫ^kHW]# 3񞨤!<|BS42 y =򁳗sxa(w1}S@N(3 eve`bl`݅( h q8.N3~ѢqQ?l7jԂƣJHo]JOV7Z*Fd)mC$ U4"9WU !"u|8G{vnuu':ZH3 1l-c2^p?s?U!? Y FKS(@sH31 WX,8ģtM#w0OGoG`u'(t%dkEYt\^Z5Jڹ|,SG$Y]HjJ"~L$G8sl x^P"@J5*&|VMx@NJ2/i} xΩ0E쏲!F6H0@OL$Io͂P^o ÚlOex'y3؜JEFI 5K^_J.ӑf)=Ô}/ըI)贺2vPx~猍3ˬM,9 .2keΔ1;1|[ vow >`]QZ }fR-Ey9tefU{TsGIѩ=I_m 1JFe5ȀXsy̓Z%7c\yjo+7@5H)u8͊/(2 ԡ Vf㹗hZWFX78c눍t@Rs h'tl搤x>8V,Ē9h(ȴ<gn{xᨰVtrBa$=]C{ez"pl9EmJd0Άo7g6t0X@iHa%TST^X %DU]WϬ#\ ^y(($|Ȋ e'-#L봿B\~)Lggtgho?|!ܜ)@Os 5tVxp,^wtrD0>Q=F Kv]-_EDŽOm-dzUEv 2{*k_F#gIC+%B.w].aWD(Hj"; S)N qRK2gC zze))MOXJ du5Í[z2I?t0\53W%/neOt*R7NN˔6 /g$X<~ 蛧DI[ ~Rwn9x n|]K8E?]mfN[ؘʍOCgnZ5{Z-{bnN Ƴy]ijIMer 5Sje?Y%#$N!31 _\*ͼ^9d\23II׌FMC_RsV-8;%'JWZSCǐš.ƿZlF\ՐkE͘pfxh\]ͷ^U^sIbIzc.+V;ڝV:?J_FQ621w/kY9_t"xWmo6l R!J 2uS5꤆% m0@P(J&"SIŶibx=ϑw[wvG!Ed=n*Ih޶-\`LALq\b)IƩp~t ۂs9h yz_{p &PR3=o.gH}&mv7I:1gNsM@»@*睎 YT)`0ؕ=Ip'ucpd aR!q$ B! LІ1 Bc LDF,AfT jFRC֪}$#YB tNTbvjɥz’Qr_ds,5)l> w5CC?s• +77^9O$ )tT~Nuٲ \-29]ؓ`zXޠ }]TK~%)qѹcRtE+dMfG[-DFԆ @/[݇_j7᷉?Qf,p0M "0JÛ~AT`4ׇD!yձ0V e>M$%bw=H9ľT c0_P{cpDCm=#gbKxN\ӉO7t&tCtctHf!j9!rEYH&WulQ@si4rs p:Z֑G2 2#Ґg+Qh5ki)}X*6\xVwn, {`u ~4a-uOUp Iyi殇Eͺaxκv ʩSmSnOQ!R|WxbCpJM+(dyJ%jxFeW+G_wCgfN_wp5NEW O_tr:xIB;&~'kM1vzd? 9;qkej4Oڨ||BƤn.3탩XxeJP"hQN2cbPvbz/3蕊hU!=M˖=DЦhѽ:9?&7Ż9JPDa ~\~߭uO}0@!ktQ@1Ly r#JͲn˭:580OT?َ(U4PXn>_g/"54K^v2ɉ\rnYň3QQsF6 xC100644 .gitignoreE '"W%so͞100644 Makefilexo[YEWX100644 semget01.cP]t\HZ=O@MC;100644 semget02.cO)$eᖭծM%V%100644 semget05.cW](pXߙ;ӯ*L MxS]o0 |]Nu-n,ݲ0@PeȆ$0Q:![^ )P*+GZ.d:E폏|8YtZޕ\эV֊W5R1pE"MdrLcH~:7Dqo܂ Qkw)kd^*Q§VIcw6g77h]7zi C'yren!7|˫֭=FTܴ-jذC{4˃,i8-(K:]\C&Z9 8^N"7ҽ_5NiVdo/ow[t}u=xm}ms/=Js^ :,sR+gXտ_?gD!MSHMqDX/Q  UE'SXx340031QK,L/Je8M߱q~eYb-} !|S2sRb9&rKlԒ暱TMqjn~^CƬ}*yF%KxZ*CdmR\> &4m(~ݟݕKHC@TYKl9мOP}2s҄%j~|\pE)Pvv?n eawFoݵxXmo6l[e׬z 8N`qY Kt"T&Ju#4ź#vfWce\c\KEojx/Nݒ@Ie+&U$e6gzvQ8FR8R!?.Ҫ@k"t(˽;pv/8J;m(yݬ]!MZyʣ`"qqtnĚ.X^Z,߁P>0MFElUח> 0A٨i\„x3vpD,0!K#E-EӲ¤55 H)ݾx{ɮv=O+3pZl)Z-w] Y⸋h^įoP WI#13gIDcd$ɩj.ݰU̍{V#ӗ t\6iծjq8x8Y<`7)iztXra5(˅]hʈě$vp e֗@-wT_=e8Bd?lHʂۓw@#,Et *2V8k*{a/fŸ~*&mT헕KZuZ/9I- %W`!=\9tȊ:g9/˷]׏uS>広i`AY"=.^{7A n:-ȅnpei0Dh~Zi/#$KoNڧncPVqQldQߡLM~v6=|GċvKf֓ aq˪ijeT.ឃړzRSxWHq&5/*tuל7 7ˠEl`78h8AYZW~CI6v ~@ p(N (!H)7>Lg>Pu1XD&TV,,ߣz+gy%oy6(?!Q{"E-ٛ=fYUsqVPLHĚHLވ}\ /ϺPг$_+|SLוKO*g ;L!͙s&3UW˓ur -CMF 'QZL=!y6郵ugEwpdhr$΋̵^wߐ^Ox:?> >f!@k|Gy&a01H>SVdNo08Cm ee]@C&^Wd3C16|{OÚ,1SR m tdޖ6W7ݻaѵg=[iZ6ء;vt_dBm=exfK *жcU2/(Jxdjtٱ^ 3Ha) w%"V*#o*-mLսr Kkz;v[F6ithC7lTe-3f7鵙fZlyMg3듦o- =*pN^|ͬ6= 3NQRU QvoaBH17|eF0|6GGFmz;-jLP H oU9GG⽋fĭym!r_ x!100644 .gitignoreVt.y$FEEg[100644 Makefilel*4Kmѣ#100644 shmat01.c~ZOyajQ100644 shmat02.c܎<ڗ-XFJx100644 shmat03.cߤ'g:_36SҞ100644 shmat04.c&iحFHaZQ^Zbm_W˴xV[o6~~ʼnkf.J&q [ HMTTJf;Iɲ :\b6LhH'/"L%M:g~':q HfZ2I_2C< SF8 Jgi g{62vson))fہp$u9cLYI@ExV(7P'sV @7"!꾝@4XN5#-ckqAȒE$0Q̌ #池)^:YⷛK_δښ X$WZ sRxt\\U~ l]5v:yd,$X|!/)dD=$>TQEe\El .|n{T֟‘:387/Wwea aQAo[`J  ŢˣE\j0nt)/Ȉ3Fґr4G]3aM\'6QH2lG:` a}I ߨ5 *pBK4zES{om-Y;]WLGJ / 2JpXïA@HFW/9VenFTWq(!JE>ҕ-Ωn/Y+7iKGݹmqs%23:_uț߀qOoX) X\;r9)}fb9Zo+E! :|H2˝p 0`ŤKH;ۍt/?8f r BVQ (.dd/yphe Y*i_\]?٦N!˾U4rRĜJan-gNeOM[p7u9ZG*xϛʀ9;fbÐ_mXU1Qϟ<-h]o/0sGr}aP'1>]KlOFCTBe}v,{R}˜lF2iD>H#->p}^3l~tcL= ,I$aEjϐ˹&KvI$(.!|>z(BbȥvxTmo6lk'mߖ-b+P1dM7*1QDʪHJ/{#cج^2œrɶVuF}*ie a^NJ=$ؙ!GO%+xZ0Ne U9ra6L1xl$`3uޯSYݷTlS@ ?fG#E1iW*!#-IZtGv\~\|lL. E]evh!i>n*&)Ƅ@5GFuN7M<]˙(XR&Wg˅H*hwqfd9wSi-!qG2TBOwW/PࠇHؙ:#1xz35m! .+̥:%YKa TaCnWdse{Ip8'_Rш??cG܅Ӓv-]<ϰ Wυ)žhŶGb2s,6$$xX[?:ɇpa0xZ~g+fB{Y|yE t&Hޣ.e] 1^^?LÃKG]8)Vo8Xĺz zJ>sw*Wp5;GR?C8e-b>N IB,RfH2re'+0Ƹ/.d`8BVsR:d2R5 96inbƴPyA$@pA.F09$> "dsC48(C3wC"FSMf0]2T%E̼)*`9<>?={8fif_(M&B3R1El*"WQz)ޚ<-|2JdZoy$\MS9aSǩW-ˊxR1E@)4ʞ1ZnG2CgY#MۦM;];<9?8ǧGoZbʦsno~ rLNXUlZ'RtEj;j! Lh^qEPp5oSU IYfаYM|\Xb QbIC׶jRZFf~5xa߅`/ ;N@-wejhԄrqvn6ך񐺎UzʇV ^h*8hO=qn~yQMO"JYj-`㩳m-҈om͐R_lBi+w 7UOD,U}OeUͦeَF۳sj܉K=z{OBX$¤E 6S3_@4P%KdL a1;7&=gpzR1~0>54k[k'c]4NS8J(fE{,㯆=ɿɛwsvλGs<|Jc v( 100644 shmctl04.c;_Wꤧe|9 mR5vxR89S:uBfpi)0Ihw[I48RZI/q.vwaryw{&$kC&qQ{mi;K;M؁Aܥ|P- #x\0), =M:.w{A ] K8 /!nEGXgwX*rPˁ7&ߚCʒ8U8MY Af`D n\^Z69JA{0e$1dsD 0KSDL~ֲ~Ow,1U,*0*K30= 7NOUP0םQRRyIYlUҟ1OOO Y3Opt9lJ@CO] |Wv>N턲C&3 p~8>H6ԝt{RߗKXWF6H %nΖHo)]{@=q ~Wgs5]+QV z)_|y1Шa9#DnBVf"qC9=$׾䁧<&2xɖ)>,[S2 )П_d[Ҷ7AqaFFB~mɾerCv<" { j[K`;#qVECλ;,(k CfY-(ЍXD6&1a=ͤGX&NfFRسC5v9NMm'~{YϨĄe6rfmڛͼ wqQ_;ybe}E'"YItjT&䆥E_!5" աE #>܍,"bLrglVE ;KG_+AqI,r@Ea,/N!@8q'L.L[4FA _وrNqS) 'vX!,dYqGjK)r K #AEHI6#i\6tzm(g 1 [ &̙T7)}ш dedN"e!BqȒD#[KۿMyzy8 $|x769,gcLN$e/IyKʃ1}j3#% KU0"c0|]ޗJd,}5hbW E6 E$~eoodQ:hd)U8<YQ:Ȉe UvY4X} `Kt" 8Ē!9{/t6UE2P{1;$Q~TY鶠.'keԴUaǴŲ礐K*t&j{2yɨVK܈ᐰYL-hÊYdQj=&rlV  %9F59=A5"tinozpa-lі ,ҟf e7vJ>-lyB9@[U'iЦhl=fc7gZ=r`ˡ@2}hĭ #K9q {nCS5wwkK:cYK˨WJO@3bϲ/&ġ&Kn=@I=`:r^Nhy6@?U,qy@ >" [K $e` ⹊14A| BjiӰx!MhwVRfK_^4p7,ҲeL)l?ǃ0iw{ ,^xamX~ sx^ b}mq{ Ԝ,-TkN+ҦAYNSXȎO‚*XGIJ& 'EfI [W+'ud9)$9yE5 udqJ6%(ȌuUXQ!k4?"q^[Q$6F鰟sɛ/-w"sV_9ք֩!1Ͱٳ[QO.A4|,6%8E8wU"ّ9Ad\L\1J:;24C4t-hqO%\\"ۙ\+ K(żl$5Ҡmp8v2N~M/Tpa5qVjx'jR\fHym֚c?LuV҇ug8^yQwrVbXN4iHfW\QG7B91z1JǾIZٌ|9r *Yo>fG+Y ȹ^]20򝒞+jO zI*pqV*DHk K0;BS_-ȝjXoʅ!leaRyoG<|mmv~T.{a _Mg|ZxT]o0}.*dMȇ٦iE,DؤʶلM^>܏NшdnL2NJ0{Fya!'ҹR |-%֠u@ 㢼 neJF@8uMz#8$y! fG,rk/bЌM8-|Q.heLrjs1eaB0۲ 1&&p:hƁ-Wus!MXyCRZeT9 b&[ *Soty&h* ՔVKT[7 tC&|M:u")#;Aܧ<#"d3$AC$I".?B?Jb%R>[IbڏܾؑTYw?Yћqn??Rfd{ Zs}'␷է۬ /z%A4;+KGxUmo0L~ōU UUMAC4mѠE$iRDN;ڲ߾Bo^{>9{|58i | P>x:3ڭ© L;9rl.@7}ֆ> Be#p O81.:hSz; bSoGm9fN@H) d ȇQH $la,b(3oN_\I=#< L9<0_('3 cD2t|Ј{s tɅOcc݊ Wo)+ҥWU7"ϙ<OTPh$TZB.'B%2s8yC{je;:JN=Ej`ܗ]h4ˁ&5Yҩ;׽  hԛYU1"Z[#t2RSyFTdVd$Ceml"\i-2ۘ F$ *S8l騒e⮼q(q<`'RJO`墽 )RUY9&D" E7#b- sG8Ijsv'զksBώd ,Sub‘ hJȤhYd s@_HS;iT.-V*G8ݿ|M CO8 )"j`jzGFڄTP *KY 9;i|f%Vֶ EΙŁ߭_Yg( , 7!o,GƓc5<͠?zmƹzQ%Y}MF&= %l7OSˆ*3(NR0ŧ,&Mm"Ӗ xk100644 .gitignoreb԰H=>mT.)_100644 Makefilexo[YEWX100644 shmdt01.cd >Q:e 100644 shmdt02.cql ;ii²;f]xT]@}⊉)"&,.AZt5&^h)wﴔ֍/0=̹_v!>}P/9ʷ0NviVʂ+盽T湈2)GqjNĖ׽^.w-nT”+#]:E ;jIN>XNr6 1AM01R*$&u. Q兌S{E ;W]ߠ/`*]_7gXS+4*Ig(2RyVo!l)M㋁ MO`S>½H)j)؏b (6'1 H2vglsfl1]mm5L&X e06i:o srslYZ?{J)e% 8*\|]u7 !iA܇s?1߳ .Lǩ=CKFC.0LzV!&auM6Yg pynxRb}Tӻw#vw)~Ab[|g^Zw]QTz4hH-[m01{ǵjcI-6'[*u100644 shmget03.cE@Մ0 L!MM 100644 shmget04.csN\2L1Wƕ100644 shmget05.c$ft-],|3x_100644 shmget06.cBDĔhRNji-Ʒfk7xVo6lWKԯd_-J*/Κ+Ybl"$t\/;_älx!K${KLa~hSQDyZSZ\VK$ O wK&%pN;"k:#nhҤ=Jk5j' K$XFM+8 3SEe4h$l¤TI \owqmw:ס;"a-[.SlʥZ3䞭!H"3rXTXHaV67| s_zvѓ [RHJa  iH@LQ ^C*tZ`/YA!Wcp K+ȅyKA2sOtq3{K\QLk< 82@lPK#?\;R 8F6kƗLq"m"N{S~5rg\:ܸ}Sf#eb1O}9_3.3zp`]Βt9iς+!k'avH ou1gQE1ӲUt̉1'9v %/;_k߇irg 1|l#1qqcL\ -O9EN. njvݞJ%,ri(0 %Rpj/%ԅ9K7O^aiD٧+i̠fCO c/X 1Z~@O5]cV`V Zg tS^?}vF]Ng`ysxYc3?p}Զs{zf1T lʛF*:Cʣj Ԃ!/mǢ'ugп|M\+UT^ڕ'rN:/;p)Qx~^Ig/5",K5>1qJHl.w;ǝvҩ43MGܥB&+9xq>m]}"] ׾MQM¦+rEY&GLtT۰6 xZpr9$(пl{s 9y=4lUk<*,RbY5 x#MIHeK׿A^iza%C.i; ncj-3so?fMy{|=^CiVUGVe(# AIIjw[F" N a؁P=W؈ؒJ' YrQ!jG-M:"bɺZA KKS9I ~n$& &D9./\IQ_: al 7a,Psp/&Sv(Г z,.4m+i =^ 0' р?q]Y˶\x}S]o@|U*a [ pRTH!"iYSٺ;cYi{lQ|ݝ[w0 KtrV gMNI mЂakVhØSӆ^BWCSW`J!AnҒ@kP_:{R*Cw(D*:$Y\#&%H7d i" !d(6LJ+!QՏ`[`O.Q@#$!Mʲ+>ިKzxKX%A *L&ޮ0#/A]Uf(OaGreEtZI@SI`>E~El Ecq[!m@N"jү"txy@Dx5BEhmh{3M'{eI3R櫩񸹎*l7oo㌥N3Kq,)6%C[lU:\Ӳh6HՁ IF7&3=_ZoAd'N49,M_ Me62M=B f cF@Nj$+A A]!((-b_^HI~;n06NfƆNmrQb^[ XcH;ie;MllKqBr]'iTljZr ɾCXz4З\h4VŖ@¤a|3Ŋ!4hrW$}yt\c`Q:(`14ڂW8QKߕ/zU}_)/-2 orr8N}b<s"*c?~N[s\z 8('5+ф/LE1݌"×n*2^,d</fG ׎P"  ӛ#߂Uaa,ِgr}]okj>MsC.2Bc潗c5RF>8Ӎ+aFn nm.6h7|uÛx0@5c̖1Ewj _s.`^xD?ٹtnQ%~ӝyZ&ՀEDOQ'q}"COF'̞6ՄZ)쳅n֔)M}L xi100644 .gitignore0|^xa\u;k.7l100644 MakefileKJt. .E2K100644 linkat01.c e 9%"쎚100644 linkat02.c'5'Qn,4P-TMbA\5ñxY{sH>E[^NlHRKlP@ yW*LEHԌd>u% h~LpS_U?8KØЉy:M$p3FblQuf\BDS18uQ`WÌa$`y_jQ8 WL qrpedv3U*xzd^i`\3!2-DB;1-sA/!p₹y k=ࡒ?h 7<A" -cz?;]K p]3-GhpxVh!you@o z#0Vb5a|aG 0a*hQdKD3a]Ư.ñb \$/|.>Q܀1h3ZB洋tN5HLb@)=^Eo#yZGv}jŤZ7Z8PW'nn:{fLNꏆXQ3cT1_0ʑh.#haxJap#b^/3 #qK>O Y`,h+hLL0 Ny8-Qq%Ѹe.~Lb>gD։[̍BLPZN&bbq=2vD ]0B%a0ʙx:DyDMpaR\rt0w_-znW&MJB$֋ãgTQ` BZc>fظR<5pnx ^C7{6~7G)ΫPc5 ʰu2AXSVxo`0ձ^sV+΂Sl̞;$еdzܧ[o,ݯL=<h0},@i!.HX[T)Xk#aɢ: 7یXTK]flV .2-cbg}\(<.jSGP ֩cy,؜m2NFP gʼ;*a.{RZs:SEwN< 9L"/3'}q1xzrk5p kU8ζ4o i'7#I&kP\N@c8S6/;O2?l?uJ` bmU T4Pʶ_6z&<' JV'NJ4IVZ g@;&fsJ*('?Im{$xU|^txNÔQlP#!8n-? Τɀ`<y-&Õ8~j6V1BŏwWǮ9I.U;\=t VƧ3㟲 ,aHg?lWu&ך<6d,FYs FOwP5ڌt:'O!(Z#)b1̰ۗ gv H} [m'f0ǶN=e{ L!xDQM]_͌3^]fT 6\ʣALcŰ;{ kWS~Bkdu8'YabS-wXY[_m; /"tywC+Ī%ګb E1]nC%+׵kEVRU9dP㸍Ӿsh঍G?T"ubq0 ;y_,T+tV\j2;:vhJ=*v5-(^Y9*BRl'EOȿ(4^;vvU>rHzsUs繫\3 >SƄ~jkW10O<~&j+$q ި֟ j)Z TNbp_$muNkօ9$GgF~ ݁e|A[=ӕk2ܬL.lj!g+r"WkYW"e$zYxFC񐊇H|8ִ7v";.Ȳ}TNb7.CaP6Z}uBl)tm,.PATq…l)X@“ΜYn0d3E0Vk|vs_ywcxWksF TQ a2LU6S!qf4ki5BRM{vWWbkٳN 0cow)nWa,y]r=KwQ~~xǟr#u.huIMsP ,ڤ$#8F$z>K>K))G #У ; )M h(!?pb W4 `4d 1'(4ܠUnL#y*;=CbiGRnCN!ct(ǹ}qe n>z5Kq#4Z0=øaQEe6w셱ZԴ@nٳz[\[KseCjG]RWp1sAn9+;ݾteBI`CX)נbQIFp AFэRpgeD?ṭY?=(pBf)I,(y'M0T,>ېMZp1})]I/;F HQ%AE#쉛DEoi&3˹1'FG]93kue-N89ٴlnt?Ji|lɥ_קi.svE)[UG/(q]Z-SI˜">LaŖHI9ǹvIx~/<0hV+c !٣Pg.# pRE~_s|14* L^xYD9ldAZ6u5*9D(,Vgo`%a;K82@QD#S >ebA;n(6܉&9;{KL]lHFŒM,,(X M֣4Ű?{nײz`5h 6͹`G 5ҫR7?[5x6.mgu'RۙyRU_T(WyiΨv5^ZX%$ײ~a֨H3F?b:ɤdz FJj0TF]6ئϑgfU|2&=xp1N5UfeK"_pXY~jy^CUk|'E$:Q2C# Y|npkP6IWHŋO^~"D 4}ûOxD%>UO}^+ G4ёcG+}^~hV4'<l5^PWj*.#Kⓔ*NnM]e+Njߟo,,G_t2h )~-\q'_WҾҺ:"G,^[ .թæl.+IU.E9Ej p"vQiX -CNq-Yb+3+gHG.NaS;*!^yKT醦OQҚ=`Ot^5?3?NEF.La tbL1VٿKApɻ#Ipn(NN.7I\y$uT${>\f.JOh #"+ތ\Z}O7_ѯjcnD~Ҡ^}MX!S9vm;Pdd޹lW1QS{7?1Z7oj/!ƅ ϏnI7)>ǯ+w 3fsDdEMt\PkVUr>a^u2@mg )З'[ewOZS֥V$ܬp(-ls01 ^5 =\<Fq2a-ɟR6 &h+QMVpy{ `2x340031QK,L/Je`lJ塜'nwnTymQ囘&]eڭUY\g` 0]pcU[׊5n WLl+5vxgUf 3[NfqIjdofm9|y2m`d͕WPZ\o[sBq~rvjBJjqrQfAI~d vzO)MJLO|c(:9(LΩħPʼnP69[VA)/D!jRPM[kBw{/~!yyB] Qlk6^"D@XG$%$X={557c%,?ATrr*/ļԢ"Լ̼t2Ҝ]%.`؀[)+}XRV=OLzNZ}ex100644 .gitignore &L2%ﰳ^100644 Makefile*}5i8d3slyƚ 100644 mbind04.c,zߠז 4&A.cxXmoH bB怐(VySi *o6w,^&Kz̮m k+Ez;3/ z-n17d\GG*Te/(;`A~"{,cy`Z,'YRjuoJpɅiy Z^~P =&@߆ӐUg6զb97f8p"ʌ+XXD[n~`z_d&_+|F1? _ކSIW|ϿLm',\2>é\֮F]3.SKĔ+kQjs 9Zm A,˳P ҳ=#@lw}8]zh;;?=Yu~ny~䓚2.sI9ܚ) T5.H}T7WĨy#"B/7Y*89jjFI xm^K[i\+ e귤 Rb dlz RZakNX%F?)dJ-- jvUIѝa}0&_kk~) glȿ2CLG@o~,U ۱m//:6R0faK/V7xuXF\> <>Nr!S_"4vx(o Z@(f_ף n\_S1!#c08ݗلNӡ,q3LW er5DŽ->2u/ět8jƞw;]4lEL0網$ol^(?E PKn* ؞-tKv%ia(Q]$fAΑ^E.= $4 J+4vkkbl:#ɑr`CBHsPkԍv֋H^;47`jLڰHuvj EUj <li9+71f `&\:l,RI%YܙO*R 77E<x/"{ )&,!yqƙߺSӒc,;F+ր{e5QtyqNO[(>#?[Ȓ .-r@quIɤLػ{3#E+>!̋+IN1^jٓq,)k &2r٨mq҈%zCnsW ߄n3 #$_$~I5/ר x +, yl:rNn-E[DXÉcGv NyD0ef6q RRXrRdJ ] ,3dk/YZ{h1G 8 0蹩;r%UcUs]C^1~w~w3(UE!̚,4D=OYTZ2Wٮ!|zy!_[1 Kr?iHq u"K4`0 ?MoS^ o "M^+'}&Ԥq< xj8 GE=tgnUЂN#xٸEW=蘺QɃL' j) GDCNyBZݗ }9 T tn\|%gC% KRIa䭤9r r~^>NC>W;0ϑ!Co-<bբUߩl-BqHˍ%ӐE7E_(5u~4}) PՁUd4V2 Xfz'vLZm8pe>Zxş6<<5Ֆ9k"KH\ކDZq.ŧ2Ҳ X$)DѬXX85\Mo% S< AM уE`7c7MWEԶE&vEKcx 5UP`8~ _r<rV8( }ݡ-8%; aËm.1WP- Pm <>4EZ'-?O'Ͱ` sV-S`Qʎҿe zX7$~x1*He(,s܅38j+T)%#_@M@ZbQ}"f_ɦ{etxHբޫ:]t#`vh:wNj;S# Zg= UX+DxRkA6ɮbⳚHR KXR2}ݝYwfQBnzx+Do&<}|]x τvW=alF @Bb6PL) R ׇR`G iIhiy!kCXk H&*>Qpo4C}=w% Ew_ )|=W -FsrF7]z|"y7И=_SOXj~jFKɈذ# ]k|QDuˤFd#щs;oҰ9f[vAA!>Eܤe*Vkj1]ͮc0Z>Ҁ}\T@b Wj7K|>9cx4'/XoٟWo+o Pmc0H*qxujA u / ۿ+)ljb6B" ɂ"a{6ܝ ;RB€/`7KҙnZ(a|k?E^lzg^^HKG4$9'J"J˘k҃ڋϵO5=[?Wvk7,Cbf󱧿z [jzO71;5-3'asAKk-_v⤂؍ P5E%z N=+7+*bUlT\N:["[LFW%XG^>wI\G{m}36y@$=KffN>.umU> 77T_x>ϵvm?a'{xXmo8l n[ȩ9Nl(Zc^$R+Jq}mP^q yaO\xuJhw.Ȑ+qJ4d~j߀:p\8w \%%W&K2#>$aWi—YO L@$ڢ,KHf$eI\(.\/5,!fːhc}&#PY@[K8`)JBX0i(72 8#b,hqp3%7l.t-a=␃i@Pn10ͮ>`8poLH{9Of!SgCgFt2g Nl0wwemy Y#~HyR'$R$^M.vJ'H<={CCsA̸f6a"%6\1@r)M\4bR6$ $2vA_FK.4%J \8F\ A3 JM'&̚>@T`pl};FJqè뢇 0);FA_~(%T)4оtg;6Yt<ޱ$p!P;y1cjU> C~yz}Ol6.l(OQDE])?|/Ce x>J]1/~"U}119$zkB~j/hkSj\;'&dtN\g*n)cY_`[mmR"O=o9ާfS) wz` OȀϴi!| UbUXluk ~Ȩ(jkxu^qu S_Ǣ8z,5ܵPܦyW:lhW*5Gj#عx!%xۭ,?VUsk}':Nd7:y&Co>nc+p^zFa^tgX_>lm2R ؟u,tDD76Tcаb+/Felzɸ#=rt6=]9v;,[3|E,0z`Ђmaۛƀ"$^`#~INcj(Ú ς1wk`:5]M@CՂ,n@v*rZυHy`kFnY`QoT< p;19y/v^ОcR;Ysoa";q^l@iqK>_k1|"Zd}_pL7)qQ\` + QK6xkwNF{В퇺-yMt&o6qm7F_e,JQiD? 93ψɸ!R|2C(|*ƠDƨ1%Gn!2z|݀w>c& ađ#2,yBPӸ} >SgVaXb|NnP4ww1/P=Es' 5D›M: 4>U/E ! Q޽Q[*iFcEzd:_ LT޻UCi1}?CIXRh5v/$U嬃{(OHM]wKY+(ar`VD4 pӌBh''&r:阡%3IY FtZ pp=ntvjcZ7]3.X[>'XQ/$/hP?bhS HQWN:{b;}7|ݷjP{BYjC?q&3o4^1UTv4x340031QK,L/JeP]bT)q_<^aQ囘&]eڭU 4P/< K7!z2#kl斊o6uXΪ܌3s<~C gє,~ؼo.V uwvYkxXmSJ [w*8޻2N 5TrnQ!iwB%}I:OJԉX-nzq(OD"Iq<"FN&3U(>'+sTeؐFe9ϸ/R4r"wK{&቏OiR >}әL胻Ѓs80BP4mu O&*T ;b "O 4Z{|L(bj|R_"L9Whq+1Εm1D`N'9`A G1EK>WkUm.dw' &~uYs>ԟЅ'8yRBv.qS#2-b<^*S{h,\[]i SoYժ?27:`_tb'K;Bè,Ỹ& =7ZERZ'2;)Ci8#'C䟸"]yTI ^h|#j+~&u %[wͫE`J4ꚗl|c.XOGVBg`8Nu:j:]mj*-v|Vrouec~ +]x+0Eqt_MW M[%8osdP KOL ԫԜd +vײ:m ?@@h%+I&E>s''gm"DE w)}YJ%ؙL 4:"#{l/o36{T7-l4X*fYd!S2aFPKOA]iGdͳ9;KO㙂]ͷ1[#J:/6SM 2agF9Sn_ db̽f8JgTJTN,_4F7JW\\%^V5W'.b _]i_L{iܾzƹuYTUͼDORṷ_RΈa5s{^"F=T$(F ˫Z(ҚVמX.G򹀦|e\SixExp}ς .tq<ÏK~Q[)ї<n[9XFm{yNZA%9*g=^tiRڸ;-إNJ;oLDn/d /PAX[2 x340031QK,L/Je=zܽ;sn<lkQ囘&]eڭUYXb`q}kbk E3L_(2#20ߓ*&rxVPN;pxVmoH bS+:5'it2FWUbêƶvRٵ y靮33{rS?UP_&閳ï D$&\pCzTiÄvyZe99|??[~x꧋\ kR)ւ6oy|5Rq| 9 PN;d >Ӏ b-)0 $N$`V:(Y$~Ɣcʓ"b> OcAo"4Q}4 k:@9l(GhBAC*:ȝiwYbLRh="XP@ud*Tہ{=`pk95r=nhVi$[_ANmp1 ܑ=Bqr`2s&RZ0 ǡ.PIX$XYE,Ɇb}6S $J+UcSg!ĉ43<-coDT>bYQp.!vFg\ M &) <5*9>=#?CHυzI|; ǝQTˬ @|39GdV#?5{M +0 ٘0 ٯn6:vvlv2x2]bZ-3SY286Uwmil&)Q*4T~1Sdó3\LY_42^ҊAJq#IbxhڎY r&gbͦvadLmiu YMZQ,T,MtYḃ;lچdvE@yу{$x/8f0>OKMhpjw988kϞ_*Em+DӟqXd{nu鍅Y)$o&A¤MϑPҝ-yi)+`z{񢔶\nIHYBit ;l Vۛb!sRr)^+E>!W PT똘,lkL)׹[R,TƦ4ď]i"j$SX&l|䒈@? n5]=a# D-#c&VW\/JV4fL fсY1UJM$HA Ć: $y䧺K2ֵ_qq1%؞9sAep/a$Z5]2)rdžŶ}fMgbNMXr'e~x,hcB'7Rjz+.GoGc-)u<4aS W:I8(9BB0 J  E.˧U?![o&$$!ڬl-?m.UmQUyFEwxC*v\kI$)*cy1WN7{Ki܄ C~5 sa^>~ qөɝkIϥH߻sN=TtDebQʴO֪Uliuzȿ+ԈD*(d"8ցʺy >< #gTz~xPFn[.tlr+OϢçBNNY3/fN)V:Y+"Y_!U"Wd$렢RZ̮ceLT2Җ]U\hM*"ջR4jBuQ詨^crDOeW˺)=x܋Q `;PeSswIχ[o:Ϡ^aI>A81(\)O Y'n24[s#Q^F/Hl#754+JQn$9|((z['pHY;a?/Of6QP1][#}yƝKP{P;ք`წ94"*6Kh'̘~`b`7Co^8an@jC|۟&H`DkK7۴7`2f_9Jѵ٥T*{$L4w-M-1U{#od %O@REݜN\}ö:fvoKΞsvpiȔ7Gr`? יܒ9W*aУyuz7jR?8ޤ3.&[8}6{0S^W 8y$EȂ~kc{k٢%V]g9I:;_q+_f1/dѴ`loڽe].r-BE2Ѳ~|uZԛ 4;};[/|GV^OoM]ј7~7嵅>̤m~o|eWz:?,*aմ@qZ~[W3sm|{W bt] 25MW(0 'r=յ6e%/0_c9>/r)xUOsDq)S;)e8]iҁ:$r24Hx,iڒ;'2{`:pʵ GO2̰+Ɏ E{;?K][_ZX\r&~UbDC) -[Xw9=蘽:,XO `EfgYf0ᶁc"H A^ׂ#u`[ l췐 '4IqC lG l^4TۇR^5jvC;Ƥh=vKd80AGib8;/ҵ.u脫s~&cH$Gxb8`aѧFVkc]> X&ӈBMא ڮ4|ߏ-JZ8 DG0kea8&Nan3L7}(.hTF P0o śSu1#ו.HQc$O8r Npk7c/U/IېS*MF$oLq2$lrQh* 6? yQ`vq\/o,1ޛ89grr+|t1Z}CUeTqWͲC"D`FhR6ҝ#C1es}AԦJ0p||BlKFc_=|Bfc,׋9R.WRB9(5>O-&K {;y|g5Vgn`btf3Ls wdWcA+:7O=p,,T:ȘvDѴ45ufO#SQSf>x(kU x340031QK,L/JeX꫼h櫇J->S71;5-3'MwB5ss[gG%35&7'?9;1'P/![^nU~= WϢ^^w:ߴ 0meBJΗ?&)Jex”xqH$pf !)] J(Jt' ^ |胈#n0aX 3Z>VhjA)~  (\Pkd ~ʚ,sA,jHxQo~M&vaNĝ06 H?N`r&oqG69) uoٰ7zbZ;AO\ %Y .9pIq6i'T*Mrd>tAǟ#8MAp (Id'*W=v;NfӞ5zz},Nx#yu&3DIُΛӟy% $)ʶBzCdP)-`-a[_c!%/&"dJ߹׍#!o_ү7CM*X|~+? " aN2SBl:Rև_yd˺i[O֗J̱oA"oh Yδ?q=w<BrV)L3 Z]8bc g4rE Q>GtĭLh2t\oe05_/h, R@Aڙ\Q!:lUy@H.J,d0P%]aJ2OGK;7Y9Nv1-#h'ڊ \F5 m(ϤUdM $ڪm9s+a:L-jKT0UZ'`Cʒ9"rT*6KрX& . О^Je9UlOmH cX+wY-8kdŲ,@s0hfLC2SkW^"BP6T#>Sy sFVWd\|NcQS+?B=lOzkM3+Ȥq=X*d<QdG!H֚dNvE bKjQyR3B<1}ズjYOV9 *Pw8\ =;Ч;dF :>r7OP'n+!^Z%'; 8&JKYifq-V.S՚ubM$Ogި%z١_,WGC`KRO7M2?݀DsX>Z^gU}뻗tA"ijF7b͞\\ pA#ŰY؞j9qA?TNOAO?bŖDz36,2&4(%œpJщGn:tU8&BMrUj)7&Fh~1?|*u[R`9׃|8_Xl#W uLR.P c3P ޻5~TӇ+UkrƆ7m>hTpW&ۣֆM# T4pi!q1Mg2:_è~6nYx:I8sA[WhĻx%U 4c(+ԤB>Mk]a-y׽0agLZزO=UhHF)^HK#<^Mb^E\A*_So<(CN{݇J}U;Cz.Y #\n+t[ 4#WOY(ŜB0Cx]wrLi2muo6u`5EALmVLApڀ_~IzP$_!ns[dCfuyCG(u&{Ӱ%2rA,b7WL4h?ڢOg\m&_P1`jlfѹE6Y<̳py͖/gDF஄@c3xtt$`ݡ] :(mx[ֻNT"ODxt3C5Xp>/Bd?->%_J.6ÊYf5g]ѭQI_ʨźSBz(@EF@kzˑhji,91ӔS~keWJg"{g׈EWgov/ KWOϙ=(31]4x? A ahzRD;OJ0Va6E'{y`4(`#/JSxb(u\JK}0TxUROAΝB pjcDZF CLX2n93 +`aimcagKBl-,Q:{L7}}{߼v0MLOg`[Xj> X^r*%dk(Wz?N,P^yu'r8P0h\ާ^٠݁*Pqrθ2zPiBHVDSH uI,hjdݑ&]wKJE!]T]Bg r`USCA?= Bc宵}tӔ7б79~˘Hno٫2Lm*^>2x|N]$%/tL%1[=RޱS S0QеH!8дVWG 0Q=H,leSԝm^G?iu>1݌j$W]Co_ E1rLN:#z7q-PQ/X]lSsW9WC h:!4M5Lf2o_o<D'x340031QK,L/Jeo}ouwl:|o !|S2sRR4^ћSaP5ez ?'ux¤Y7J#JkͻYnJNeϬ /1UUkwF'~ɠTٽr;a4|9M%wLcx\M?L@.sN`iӖ<Lf@B31J?X<仢.Js5bƟ][Z;u|b"JKJ&O$ G#/x=s9l1TUvƾzy9#1UB^syޓ EKo~Z.ŋD~>o/O^2 ^|v/uӍSW2V ܆ ow1}hz&wxXisFL^!mW XU$eBA`qbAuf{x}'U:!K#$Twt>ߜ=n.Zy mh ''.>}:wLBN)[(qy!Xa@Hli,0q7Qj-Br#c #-u AZ%;'=Ju'$wi"H&^[EU\('"J6GۘJ\OnZ"^Η.+Xy%Sw$"L(֦HHG tl9PzO̭WPZ aBaN> JcJr4\LodM>'k>&J+lamKy${XapYp` Ld̚/#kNl跈B^Hǥ>#1t=̈+4t4,WZ ҧp\Q&" %y2M`b }DbRr#RQ.T0آY9‚v&NqV=;D"]my_\·p:1Z"pP W6h/a3MP#-#w5qmÌg+=Cjr m ZY G@ \$qISn҆z]b5^)_4pB l6=~hT]n{Q(NX$,?ǹpuU-)$>M_N] !cHG#$21=<  %lsUQ$߷ ,Gr‹DnE1xJ̦pM(ڙZ;zriV; <Uxm %Hһqb C"/,Ѳ 4; NDl1Au^A !ZD-޾<OLĎD/Ѻ'M0yK??G#ݺyϺ}BtQ.WP9kC9.#^HmʼnnL8Nx,lOqPve42ZI ~}#W9SϪ4`ji|hnCt#Q2E"3.";i>WMz[{&3ngw{ñ':Or,n` GePᮡbF64~R8K= [ |_o6Og2-FT־a}u%{gFY/ISdw4AoD̦fZz.PDȦh:r8g94Rs3,mc&uh$&ʏS ;R*)B9JU`XQ^LM;"Bm9=FF=;p8z-Pw{ܣ !rm+Hjl\\X>WncO?;;5#;Ta\1rK\.zk|Fp'͛Fdj x) E_kFqYdÛ uߪųZx100644 .gitignore;:"+( ߞ100644 Makefile|-a?C:BBG~100644 mprotect01.cnrO]`'100644 mprotect02.c!^q5kkc,4100644 mprotect03.cXZ?/ !D~wt100644 mprotect04.c6Tڡ؏C*F100644 mprotect05.cm fO֏Il!mExWoY+*lZ_NQ )PY(5HrY')%w͛7tM4IC~fq!X*ED\2N[^̳gh0›)͒L0$,E&D$_Ĕ@EB*HA?h*<0ޕq 3*@cSŚne,3pZi|b|+z81eM$3,35II (yFI~]=P$kYbMRd$r|VQD\ed2=r]kCgM-R4RFb3ĝN<ϼ{dAәW+:.Y\o6Y-kwJFqYMlvQ@[/_=Q?4a|T09S"y]X?D a% cBFI9 6h0W+ xvWwf-O/rJIYm$3+B!uk㢾wTiWYOѡ["  =CӮP*Ν}kGǜ5FveT4Q֭Ğ-m n'R*rGt(U>]uk[7]Meԫ2 .y<҃zdb2[y{Ny\2 =$8mpZ5h)ʈ"˓#bQk%zUWQH1"m:yqr*?NĿ{[z8WƘ&ٻW휼DEyU&섟%zoEFdvCh<vm䭼xvDvUnҸbH.Ѹ6.P2  Q_tDhI>xn ߏv'l߷m90xK:oߟ!+_ǚGFWȫqurs+\b=403klsvbǠ '(M_UPЎ`ӡ;Gs:DMcoЧYفID29VBh׊U\+?&?9F(ek/l;b7:(bmܯ[[U)+!7EM_Vզzəɳq掳-n;eC# m UU~҇c߬pu݊ ɨoxL0g n] LO~Ϝ/ >Hţկ4|ݡzV $屓9 Sl (]ʠa0k8j3̨p ߟ1<*./9rYYS{,qٸ7b~_wT'7O:L_ MDo&jp4< g3ZnV_,: 0E^f͹]_g3Y)=cԣMrcO7fn!˗zegCQK# tsBXxWko,R.cKM Z"$T}ݢVRښ\Q[zNR3gfάNpJ\).x2gJ9Kr]WܰhE_eyjyD,e"QL m y,*%b8, YdK@8c.A8 "у y%r`$"WڦjcXh:1$AMk. \176j@ I S\BQҹ.B{5(ѣB"Maa]d ?Nf!8;u|w[2p%2I-'|3Υ7;^8v:~ f#LJ̟N ༉Wb4acH;lVl1 BU};{"_j7q>H / RbT3ܕ |oz1[!T*#Z^ɐ⑲λPm+3z6rFzCQ>%I% 24A] JTB%&"ס@1&|%0 H'Z,*.c :p!.ubPz۸x@$/v[tmΒ_ɏ}&/HB ‰GzΨJ_veۜc:\ oiyA ņIA7 TX"+I8d9DÏ3LH~xKSIx*P<bq4QU}8U%|H^ >M!bݍS.-8 G|]Z4xTq_hc$ >@ps&0$tFJ@uXHy0~}vX"ҍ3o^]~'lG^ǩR8tS2Y9v"lcx6_ ]DRR. t1jdꍯq{t~ F aRz/$1~НOتSgH0W> widKNN0&[1xc Vs c޵0'|1~nPlHhә'f #<``ǧVNLI1u]TkG_SV%'CebvnO9XCK/!3X A)I{ۅMK'iv!3+'0# ;:!XbIeE>A:nVڷopL/zW{oن*_Wf28n n a[BD;zǝkF+hLi/uDn n礼%4mhN N %jz .Q=eSUJl7T_el6|Zōg2ׯtK+A脳`\>+KS|>|G mjt؃ȕGLj0l<ƟNY gt"q͗`ݢv~+On>K&ԙnӵUVBX9%VH^7T0" =ŨC02f˼^NAR6p&ܿq{xuTAoEv4 ͫM:Zn%ԪD5 dmv(θnH 7ą/uZj띙y? c¦1JqBoʆ~FBi}Ȁ&1L(с;r;~|֘x|H`և(7$ cy4y)]$4%و2&Wi* 県R.q#O$+i(HOt &8 a@bFOA\lefx또$&@c 4 %L5 9HTa5̟)I8T$F &c-%+Uf/دI67{摳c#!K 3aUn+CcEĎUpKS{Qnu-KYiTl\ + ЧR_5P/4W WZts<#NwRtp P"WK~Bn?QK+wWQH3fc!kx340031QK,L/Jex#p}'N߯g.gQ囘0?ԼH~CjC&%3ȺNTUs(*pN1t=tWk)Zռ}u7i#ջI0Z>U PU|b=KL˜x. =sȳu^6̀"֖4Tngxz/v鿩xXioH,Z#edYb8bSI0f"[԰)W},'iU]ǫ<}qD.c/W5 BiPY$v+THI \/76v{ K2քE.lQ8#z̶)"em!(.(H,uŋG Oi$r*V`ZRP7N"];KKQ٦,jAmX) Jl*o#Sm J}$4bMZ ??-x3wBkכ$ri/^Tj y4ԧiW}t9"O*v߉B% Dĉ"pLKؘD 2g?ΥV$YTbyS ^Pmc`ȞYkrC = / 2A$6dG}'w{tT Y8X״:ؔe\ BkeG*m#l܆2Gxؠ"GЉӥqZ b\,&s \_g)d8.ζ2)B[@8aLb{Z+{m~yWmRh+tލo)+a(ʹ?dQGi0FEa &FRsXq ȔeX),ـzĽe?O4 E&xLQi_z(H4j"WLDOɈ aAb7ۡ0KEb)PE88I vM\,,Vgl9H<FEƪG3Ogh/5%DžIh"l-ͮ=gƃ;U ͅUe嫩UwU5Q=!DecS:/d2?-yk9M1'#LZȱGRp7eXQ8j1t*7F;U83N",:OS-ui B^|Qb*L,{3v|Ѣ%m& mz~'oɇC5^?K;t^&f޲S#sHcN}0>wӥ>=q.p%YK/(&ט!g0~= #g2X,`8 3{Ζc{|6] B`e!/\ %l)[K'!Հ .E%g%A3Zđa.*Kio?jl].vȅݢM ̗(S Pk]kc/wsh-xE/~`(>DqB6tznIikraSbSsp%LX_@xHJD 2{k͝l5:xk&x/lܾ8";suIpdS<5i#NMȽ/qC!KsE& 2tj"2³D$,/KÀDL3$ ِ8X 9qU>Zc'7?ZV(b Dǡp-6'ƭ:> l_\PMi]+ ٚ*d2ml^B#d_cJ0+|_ǽ3Bh1gvJN(jy6ŵ6z3 uxhx74s2sڷَyF-hV$nݺ>g}78 \!I?q8!UM]+yv{{>{gr|̪J{ >HQ'ԵȐKioQ P#(ރ^8CK{{ͺlh2۬MYh+ucLÈWhL=^~AVB8 Ŗ@wSv|zaL˅G1ߑOϳj>]ShԊu^4: gL{Lx8)M:-8-|ltXzdt3oY"[uV ̈C2صːm| s$#Ζr8jN㱕Sg5TV|PIkZ 8' |tӨE08AjSt^ϧ`3'S 5J)hbAvPۚ /ݣho#&$O^y2+36uAN=ʤ2ղ,6_琣$\g(M!nf/ҍ^%NYvѢ:TX1?0q =~n S5}z|'@((^P3ܱ(/G .~h L ͡y%T J|. WxUSMUcG7Y%[57 \&S\I>WTWnuGzfqL({&r.`=C!5+kjyǩ(#_WD}OٛKP?hkem3 G+gr])I!lgyп:6Z*h.)w l4yV?n/Wa])!4 Ϸܖc{>h\Jt$&?{^BXY$;. aOu|TW/ x340031QK,L/JeVɖOD71;5-3'MwB5ss[gG%35&2/P/&Ω[DwZxoZ=_GQdT$V+omF/^E1Pѯ/OHl{rc2d#/PUHy0ӮKVujiz]w'ZixW[s۶~~uR-KڦMuO'ÁIP ErP]@wL{vVn|U\֡*^L,e ܔR\JpN_Eްl^[KJWQTRͳGlVts_g8aڈY#ь,٬` ϸdgVBB#!U!JA(`it"P@PeԜƷŰ0M ڹNឧS"B苐PyO+m%&k):u `g",GLY 8RLl@UyFS#<8 < Ll/<,U+ w M^?dݑN7MMb9^ْcC.x+#KtFP-*C) wj#1ÆM8P_LD>tE$ n2b@j5ZL'u^ Z b UB,* :L$pHaɒ@r%EN57H9E, ͤq,"+Vd Ag;[E&buA󙰉XLN;_C,b zFtA;-u^G/)ЀO-b}O`/nDi$BFPPu]BĴ9֤IaRFD֘EeeeqPD" gl%*X*^K !ņ;RΟzH,BN;kRK)[m{ݽG/r/H٩ &omSaӼu5ӯnGk? E,aSed_ؐZQhcr%-fK~`QȶovO4(wݻ:P#yZ-0vPr=Zxza6ܧ5Wnj.e!OeǦ?ֺ:E"ۤ 57nٛo"DaR4vVA,TgOLnMdrhv0 y? n=mh^Xlbo yuR6m}z;x' "Hٰw>vez+^P&0;Nsmb ^8|rARL:/KSs7]e70y :=̊n 0<0bɪid;kl]ZJ;_Z}{)as>xO~Ah"~93YCW &WYaaFQ|=1''`m#_a3ăg )mF]}MM!MLr\Q=ڋ0|[hSxXOFT|J;EF!8k_uo̮Giٙgg[]8w^;w{ L h֎TsB\ ܄}/JU9V*E5o صG'1{5`[cOz5BJsRK!TznuxSHŊ -BTxX*LY?Z. v7Z$ zhm2uD8վN,]I6EftZ! q=5Ԩ kT}_Po :p4W7O.M:t:z ZM@SD) #ddׯP&Sۺ8oTet24r prSs$F]mZY9=EiNU/M1+-qSQLg+z9ڠGda~Vjm!Pͣx|ڡC9^)v Uq{[L:o6Vd&X?P{W]HyW5ꭖR769)E!KXj_}F+5!@wl^7nl!m"up~:S<"ބrzW֎E2t鯪uKE`u:>C :\SZIwRpxW}ߍCW 6:Mt ZB? oF^8PQͽ7gv>q6)hN8l}2rryYҰVJF@jU^~5Y^ibz,:tWQD)T.[M1 &5JM|Vf}RBvlRE#{kvF;R{Cܿe`-7UHͮp}S􎁗G ɜ8IeL.}~R6X3NGO(lRxyNTfq_?h_rNb_x ux340031QK,L/JeXtFuь{^|}|GC*Դ̜T5_y?Ya){~o TMAjQZ|jYj^I|~Aj^{?Yќ?jZ$QqeY 8;ELyUevʍʋ|;`)3+\áb@-:ܪ{-5bߵxWmoF,X88Fb %Tߡ R3Eܥ]ޙ%Fɉ84l3;:yѧUo > '1bۥHE΄v_ KU&  C_R8KEޜΞO-4K[ P=wVI!3!U&nsA(`dLf"\\xjAl)! g x38D x,90ԁFv!mVnH.pL7&LY$)a4іDLmaNχ/3oQr<2q+|xWsr :0i~ dL#ՊM~XЭ?BN#0'}߻5m`hxgd#5z yx4ڳzW?vzQE8pݯ!G}Z9e<ނ\wq]x<{Qswx^? %Gpa\F5w;٬[&Gxq->22 hK&,su ,Cؽf&8K VWQhp48"M"F֧^;)9pE.s(BϿEO RV$95:D)cKA"q<0jD8yLTv7 4M2E%mDDQi8e ,FkN  .ex>t݄ xi 7rpf /h˶xk#:q66&\}s9':GԵ+Rcп$lOd0.FptEU~aÔX{5bOdP|r"5e475arð+BYő}gW1aO`GZ՘yaÈIvHYtߠmu֭}vP4㡈fukvSi !.:Cf Ӆׯ%KK v0[z#Gy4[hD)@eyW8XtE(Q͎W)ցd)~ۤNM'N&]6SdhvF_Ae|4vF;qN gti:s|<;˒k=LkК|fٺGXdx ;[E[55\P6 IIyQ.?*\/H`'@r#4( lBQG ֡G CYrXM_UvC(PlJ7s9pZGS&>׆czEenZXtd3RB{~O6\,JGsJ lI#Ò-tŇ4ʵ65X{R5nTX$L &x340031QK,L/Jeީϖ*9SEfOBT&fe20nF*#(\),H50Kf`]]2YjdO떳Ay.3!1v E~Օ%;DVc TevHѮ0/AVcTsVT}ާLO;Y)P#댞vfVρk՘h޻b,??7,s*uad5@5+Y59hWJ[d  %W\ȡ~z#q-ѽD1'kyB=#aftʷƄu~7Sk?w{s4_qrd5p~wm;[?ި㗙( p-{kDi}mi7}O W>#KU'Md5pᴀ@tU037VoY6½xXmoH Θ IJ$!k c4E_vjt"zIODf Mf$r .4Tҭ'~%^)m>qք~=9:#9ND4Ke) 2r"4Nh{բGJ([)uJ//79ݨH%5͗a(pU*rp:+Ѳ< dVE3RzTIwꗧ";'Zd?xÜmRd57PkQU^+OARQ*?;Zim?ӧe g clGM@8K(B -vh]~ghCצ=ft=h@ӁeܚNfR}q, ´gx:УqW@萋8c_j1NG.kOQu) CYZBbE=,\>8EfL~;n~h>@iy**C<`?q ͯK˜d̯˕rE !w8rg"ĉO+ɭlD"*8C|`ifb!DnwB hY꟰=ń Dr3_ 氳N?״aR@I qé(d'Jk [ }r\YmJ_]#Mʏ~dwL`LbzOVP `o7<,ܞ ߱dI#WWyd}+c_5,`җ|HˊT T8N^$YE*=)nK$_v4(ݦ?\ 3|4g!ridR7FNƑ߂ sOч7m7TNt_XrB'Y*`?"#/^:$GPAᢎeoFńF-E3 ?k6AȈu9 ͱm1F%-MvH8.dG9WC7zxǙ}x]nMFW;.>Ω 7 $b~=3qNj ]75ء|4ҟ4BWd=D &9b ߽k`MqI|; បa4 #Ѩ zӡQC/@2 8nݏ{mPe6 kK*9-MK>z*ZLޠ^IA&h HHMic8I](L3*]+ zZXէgh=S\6Kbťi(u۩bhYRiY 0I!&-H^& HK4?u7hxU)ߦg?A[PlLLcfPvڊt'n!H=b@'٨1% "'!PkL2ߊ#@nWWUVA"t0 wTXGCNƣ|qj*)<&j /aawp @|9wة6~ioEPoAL׋.2KQo:N*1u{n4m[.cꕘoO4^ E*HwrOZsV>/.QtYJ׳GߗI <:X`x7fZUB^xXmoHl~EmF;1 !jud$@b]rZ16K2{%/;ݍFnWU?UTu9G5Dt֩|Xdu\$"Eэ/UAV1.dF4yH%6L, g/]uRŔ@fy*E.Hi2 d֦ZāH)_eFI.SHk\#ӵE ;d м:2) iZD:.%6cz9O)YfyVn$ceF鳌" *2QC8h5[q{8>tIhkr$ýԋ5Fn}mw;O&49dr\|zm94:Ѥ$!=e!0F-'B>G>xf(!!IޠTCy:6 pckC΋#dbCV2(I,gZvuզĂZT8n+4ܱǮ=u"WPgR!rU<ˑ*ܰvF+#K&L9 ?/СɪTT3  C8k/|f ;63<% /@'=ߚdvqc6 sP`r!"<}i_TnuO=.!H}o7%d@e5}"q#%$"eOuRDn oHa9J+\ڦM ,0eǿQ&-xCc4^QF$ *xS|mJOXʞ#=4Wnu,P.kN:9:$j>؏@"F3 /;k|@ _gO"Mdo\d,B1[z~d!!cqqχn#Z4/*RӸXAw.uf)сA&uwܑk]M[=%2@bemWHxvebS̸ZL6 RG"lP)q5҉o aɈ2JMwkw.HgjǏFggԷ0Hw^S,=+4 g- >x,"eN|w j2#U[cQ# ڛ&K3jw]*Xd FkYsKʼnk΋}H=3&|yme_+ʽ?S~uN<$wgp;4^ZmUm X**K 7nڿ{qx340031QK,L/Je|pQꌴ;V(;W!DobvjZfN*vkjΎJ>gjTMAQ>P^2õF%WzV'^+x}Wko,#[/i릀ZpeɐAȥ5%vI?Zg,%5 9:3KwtDD:1j>BLJg"UnDMny&*+i)mAF.â 2QrFl'aы.))[* I Emh#TPY$ $ľcr=kIDnUBJȈV5ی8E4]-.H*z[/5d`~TF2y%EO*Mi%2.vu8^~-i8Dp:>!hc(+4SpgDV j~Vx h^-4iHr|y7n~;[\-|ݿ;vMCE#YZ@qUNgsB9 .JR^KӦ4ٞXgmT j7¼tuyQ@/45ҏ9ƒpIK# u3sfnS/| F棤K>҈j`aa1LT(LdP%VeaZF~EIH12;C4&v\q4$}Ձ 6"4"WRV!Ot,k0tFUկk]pr1}*F @z+:k V¬%Lh1j*O'|.`<Ol~>v10 4N`AC sõљ*pF@{d1h9Qt!!CU 0$bJZ.+gL8CXEߍ&WS^7 e-Tb; hlxF@z YD:*B&H0c\? }~h6+wpU ˴ʐ}:vpfRTE^O vBN h 0X[Zj lH涃x屓aDxTqVIlP@qRݶ􋄠!O؛Xm])VSOFNݑ`K,A-aY.:BN +3mlTgk[*-TTʁ" 0}~W?wL)f"mE1G.2(taq(ʛy!;6A E6mR*S b7(yAsu٭ jit1 K68ak2)|]}POW Ggg0;p[Lݹw+Ic})o^P(ВB!Rٽ"U#;;;|>_rs1b;_OzӗLw$rPħe{Pk2`IۉE_&ӭM6AwLѪOCƾM*#zZ&tw)|FYK)3]ٲnMt=NWz!:be$iy&`TɷdNM{vBܵV!&m栯Oanŵ-|F|?"aCnemM8$g0Q}WUܺ iU$`]*$ú QAoQڨok6+B<+<^7X78{Cr0y^M$IhX1 ۹JPAJ S̴BR.~Ʀ.H$ž4+!ޠva^(Q$E)EHV!;nv4ܝi"G ( #Y/߭}`^J<' ABAR!͍.5c٭U;$UrE3W "aKಸC[̆|U\Kk7 I>Id7n׽tc_e<,JMM_GNBUVW0<_/v9l:I QPlRzu_˥K xkkyz͏3Me(3Q`d=6X̜ O(ZRZ1@By\9yP.LCJLy_rM^9},d.+8u8 t &q)L66dMSGj /#4#>ɓ6_dp5''gfFkpH|kHh>&y.N3s4=<\uxOwׅX&ȡ׋fEj^x340031QK,L/JeЎȴX=̉։l5MNMIe`qݮ~\QL )JM.K+50Kf0=\s̋b_oD* x_100644 .gitignore7<@#umMBr~A= 100644 Makefileǁ M/%AcA-100644 removexattr01.cal > /<+Q100644 removexattr02.cr6@K̘.m9xVmo6lr8/-!NidCzC!0DY;nb{{xwсsZJ~ipiNOàʵazx΄<ϜΗ{QQ\8&cqd HKQ%%Hp%5ɑPK4`L1L D &%y1GV2Ir790┕Q26n6``LWt` hLK~1^PFa}'S3K i> ,/'/ Ꭳ`M*^T9HER/( /1u8Fs@U(SC`r6Bx7(,,JL_`~ǒaYJĔ  `Dky|j)\1E%gxk_(LM+T)]ര^l&>t!xiQ1&:ԯ` Hy]h˞1auŏݧUO-Ƿ |tO.v*nC\vC|W(썺r 3Rn^9Fh8FYdx:wmRP^J89]IѿUEbrMYt!FͯjS?C#x<c7o:lf\[W4Hr8G B^/zD lp-isx׀8-S.'ӌε~4 ׍ ~cc^Fpq0/)`@U%6TOK(jB招ay{-. :.NDxCuqOՔ2*Kڪ&n5k)0CY@A* ~V8c&%ޚ݀6Xl-艇_ tu/I65Ę{䅭V ?3JBذr٦vl͛GA3 3j4 PM "TB#UG)m*ʛ|X^)WjѤ1ߙe[TH/PȾZdR]]R%o7O[ԓ(%x340031QK,L/JeXaٻw5}L!DobvjZfN*vkjΎJ>gjTMQj^bn^2MgqmwP)s7TU@U~4%-M9,u_8**-kU C7'33k,J=J5}wo%?ym툪 TGKRL;\U9Pխgỹwu+˞EUeTu䬽ǫ7Tt$7uU%P/gjC&8~Gؿ 碨24KG^j/zTUPrW>ndYqUP]aʔ*%:{GX&*Pس,SFIrbxc'*PxA|f~jx r_=ʌ>&i=7b0³xWsH EW^GUֱ6$T0P R idf-i8R,7V gp%oX~0~Jf0QADڈ~ីϼn#>wDI'4j_?i:.aԋÔ1"T^."K e*L1 $bpO@H˒6 Kc "/+z̳u}p%gEnXkC#2b#"ƑŽMqFhH Yؒ^CJ+/ވ-zAHGdYd 4[90`L;#+v`xqFR/Q{ nO3y<;wt\h g| 0_-dqӄq x$ 0x;ߡmXqx:#7Q$CH1X1J&0N (%FP1F<F ? Hf7~umfפIL)pAD'KZu.u;bf!_^4e$SX&NfM^*! Tgr ]x@@gbJюcDl=<Gz7mb6ZڥIܤ1Ʀ ^$Kܷ}dEaUl'Wfk4Kbx @7= KPT#xt7 n'x~ļ$ZҾ<`aų̈|:2u~>[g$fom#R;Ӯ`Y̜5vs O,z|;ݙk74DQlo\EΆj210ҏtY.M-QؾDl !Q4hrx_Z8OlmQGF<E!Zx _u7)QzTVê;B>)ے -5zM'w\P>F]לR=+݋᫭E/L9̝2ñ` ? q6]b$k4x=0_a}31^>1%@u&YE8z탨lbpd勷:[ !|S2sR2:?ׅ z{)JKMM,1`8wTu­BW^ZcCWf`7 vWwFJpB~mf^f?/D-OIΰxWmoH bE@ȵ':JMbdLܩ6:XgȻ6fo@HV3^6ЄXnv5j>Ѓx3xODz%z4GHN""04|́>l7rptJXb%,Vi/QZ509`lC&=۱aφ̞ /NO8@8\0טY9ٚc=k#VHv! ʀ$TɤZwbl1a觨=DDB$Rq:v}j̦=8V Pg5| '%0i7٘-8SzjT $'k`=)-#P¢3 Ժh[QtGcۜ {}j B L~CGcsTR9hEACd/ld ~;jh7M$(f ,5th:e8,_Pч0:injh)qi_??^ZI㹦y\Nw:}7؋V>ym{G W %B # O/V~m6s-;5b&OkR9WXC3ak-qlK~VG㑛k- {s@[|˫V֭V)WEv7b-6 6K^[c)Ь3Ҩ#T8Z6B@'b$DlUϰ io`Wd-eź"ODzsxֿ|xnf[Z" Ojuvz; Vws9:~̾3\qxRе@`AGGxHH^6Z.uF h e(8 ~A}?}6~yycN8OSE, (6 fPc Ck._\J}kgcݮpEu[cU"e<hK>!~&kZew] I=[4Pb (uxm:3L/xܧ7Y8KryHe#U=&up]*ƶTۜ÷)8Or!?>P[dVRׅew2Ƕѫ}i|_bxTݎVj,m"A(]]/J"$kӨKSeuǶ|NXm;^<e c;^VMbOff߮ٳ r%e,8 (&c=v~rzw]  _` :l0M8M8dN-̷ZS5Amq§!X^ahB s,1cU"Ìb.}Êf2to~._]~]8A 4fhjNcXӄ}f%edakK=*4F\c-Z׆^w =־Xg] +h/L#0QЀ QS9%.~Y9,HהZO<'R#Xu ?e&e0t)1)fN(aD8 b$K=/70K{,8*%_Lp☒d|pvQ_(&CK4]L)f[P?ӪZ3z"bݨO$.\ tVrxJH^bD@4MݥZo|g4j5a[[YmDz8 Mۧ9rj8 np_evۨ.RrFJ[TBn[e,]{vFʭVnF˻j\_0橈O-k1m&:ŏPo/<Pr!޽e+%W4}Ȼ5ec1Heaaڒ$dQ3e,,ݥeN@\*2@dK t7\@S!TZC_x YE \sa(ɒ6 AhwPt kG߲| [~ ozatټSz"*3!.01 |=X sprluZps/6Kuw/LeE=o8 I17GԻ^ .E,17q(lK!PJf}ϴH@N֫c;S_s"܈Q0&{qvYӁuU)[υr㢖"w9}:?C@(yjBDT%:H HD*WrL'*!S = 'ujG~'q1l~)e3@8)дR: #[2b,| ZBsC&p/) f]H0h}p88չ抺oA:}eupv#oWWOɯn 櫂%K6n\Yծ5vE$r{#)3_V j4)Jahf=`**J{ Am=LcʛtRĊɤ?Us-h+uv.<ݗ~8߹pf^x"z8 ?>{7(]?DcQ+sdoF4Swx!wpzK: Jɉ99 ťɩ)@*K(HM.IMɩTҴI++Mj`EZeMiE'3Y*;1$#3/]!/Q/yZfN*(t'SPwp x340031QK,L/Jea2I޵DNPrU٩i9 VLYtr`2#kϡjSRr Tޑ6qS_S}єh|RՊ/5߼ESf Tf(ؤ'MYiHqxXms6,:Q#Kr&vݞȮ&KL.ÁI™ovtDq{psb9<l-JoB9HJTƍw 2^K~sPi䧰NsYBi)rAh`IpJR$˓K+XA-J tZ/'\U$|1>OPHV<9qN 8O Ө[ĨXbZ1M(/hz:iht 8nS g}6Ow|@][x9ZA/:"A -N5 73W?~QO7How[ZŶr *"$DkQ-Zcty mD&Q$5 Y,=޹?Jaдlɘ^UNodMsm"aVkkjtU|B jƫ!YL#<' +GwMXL螙8Wd; 楢!w;AB Q gQva>]ztL(3&:uZQRIS o</ƽav Y屯#V `=r 38'g:ĤCB%u ƩǙeH΂mwr{sST 78:_N풏 Ǜt6<ͽx4n9,LDvuSSFLf7eo4R55q,=a@޲!Dm/sZ&N3M,&,x26\1Q$uQ4uMh7}g8܀dRuG@tQyOm%FD +2BrЋm!Yzc>Y7e)芳Y| /:'?4Lj df㠁UL%-YNe UhV5N}8|j˨>NJ5b9\)6ufF$3)^n侰c{Kd}RKHbON& X_ |Yd!,aݩг]QUyD})8[7" 0&D~KEjKH J6^:Gw>GmXIYSRxV^ʍ 5&O,]j~ax>8\ 9V}$/z|#~Ryo88)K|۾YEſ]eţbNR4 %8KòP$ @Db׾[2D>B2BqʘT ʱ[.0ь`\9b0l.& =pӂ#oIh2(l"TKmQ%|NwH?PcR XeJ-0y Q쬽BrOqYƃ؎8% }o:[ Ll[ qp㲹?6~Y,RdeTr;M<|9"M_ x340031QK,L/Je/1O /Kke>/6MNMIe`qݮ~\QL )NK)70Kfjt/d9ί"fl`UXΒsf 5lNEUe T=aHw3-wEYxV100644 .gitignoreL. {]R v100644 Makefile!hxA0&|100644 set_mempolicy.hX=oے`yӄ>3100644 set_mempolicy01.cZV3* `?!?100644 set_mempolicy02.cت3f S(bh 100644 set_mempolicy03.c^!p+d:ʦ ѥ100644 set_mempolicy04.cg"2G?p>~s;100644 set_mempolicy05.ceصu5s?SBY&xPJ1=7_1vqړX[hPz 1;ɒL+]P {Q. XFXh*B U1 }"7< d|~0\};܆p7h$D*[b\כr,R~Z?X1i k«1NJERh9 fҺ™v60Wd Qr]Zf?\wjd˾SZY:{Y OO#剶 FinMޟjxK // SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2018 Cyril Hrubis */ /* * We are testing set_mempolicy() with MPOL_BIND and MPOL_PREFERRED. * * For each node with memory we set its bit in nodemask with set_mempolicy() * and verify that memory has been allocated accordingly. */ #include #include "config.h" #ifdef HAVE_NUMA_V2 # include # include #endif #include "tst_test.h" #include "tse_numa.h" #ifdef HAVE_NUMA_V2 #include "set_mempolicy.h" static size_t page_size; static struct tse_nodemap *nodes; #define PAGES_ALLOCATED 16u static void setup(void) { page_size = getpagesize(); nodes = tse_get_nodemap(TST_NUMA_MEM, 2 * PAGES_ALLOCATED * page_size / 1024); if (nodes->cnt <= 1) tst_brk(TCONF, "Test requires at least two NUMA memory nodes"); /* * In most cases, set_mempolicy01 finish quickly, but when the platform * has multiple NUMA nodes, the test matrix combination grows exponentially * and bring about test time to increase extremely fast. * * Here reset the entire timeout according to the NUMA nodes. */ tst_set_timeout(test.timeout * (1 << nodes->cnt/16)); } static void cleanup(void) { tse_nodemap_free(nodes); } static void verify_mempolicy(unsigned int node, int mode) { struct bitmask *bm = numa_allocate_nodemask(); unsigned int i; numa_bitmask_setbit(bm, node); TEST(set_mempolicy(mode, bm->maskp, bm->size+1)); if (TST_RET) { tst_res(TFAIL | TTERRNO, "set_mempolicy(%s) node %u", tse_mempolicy_mode_name(mode), node); return; } tst_res(TPASS, "set_mempolicy(%s) node %u", tse_mempolicy_mode_name(mode), node); numa_free_nodemask(bm); const char *prefix = "child: "; if (SAFE_FORK()) { prefix = "parent: "; tst_reap_children(); } tse_nodemap_reset_counters(nodes); alloc_fault_count(nodes, NULL, PAGES_ALLOCATED * page_size); tse_nodemap_print_counters(nodes); for (i = 0; i < nodes->cnt; i++) { if (nodes->map[i] == node) { if (nodes->counters[i] == PAGES_ALLOCATED) { tst_res(TPASS, "%sNode %u allocated %u", prefix, node, PAGES_ALLOCATED); } else { tst_res(TFAIL, "%sNode %u allocated %u, expected %u", prefix, node, nodes->counters[i], PAGES_ALLOCATED); } continue; } if (nodes->counters[i]) { tst_res(TFAIL, "%sNode %u allocated %u, expected 0", prefix, i, nodes->counters[i]); } } } static void verify_set_mempolicy(unsigned int n) { unsigned int i; int mode = n ? MPOL_PREFERRED : MPOL_BIND; for (i = 0; i < nodes->cnt; i++) verify_mempolicy(nodes->map[i], mode); } static struct tst_test test = { .setup = setup, .cleanup = cleanup, .test = verify_set_mempolicy, .tcnt = 2, .forks_child = 1, .needs_checkpoints = 1, .timeout = 600, }; #else TST_TEST_TCONF(NUMA_ERROR_MSG); #endif /* HAVE_NUMA_V2 */ FI[x+ // SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2018 Cyril Hrubis */ /* * We are testing set_mempolicy() with MPOL_INTERLEAVE. * * The test tries different subsets of memory nodes, sets the mask with * memopolicy, and checks that the memory was interleaved between the nodes * accordingly. */ #include #include "config.h" #ifdef HAVE_NUMA_V2 # include # include #endif #include "tst_test.h" #include "tse_numa.h" #ifdef HAVE_NUMA_V2 #include "set_mempolicy.h" #define ALLOC_ON_NODE 8 static size_t page_size; static struct tse_nodemap *nodes; static void setup(void) { page_size = getpagesize(); nodes = tse_get_nodemap(TST_NUMA_MEM, 2 * ALLOC_ON_NODE * page_size / 1024); if (nodes->cnt <= 1) tst_brk(TCONF, "Test requires at least two NUMA memory nodes"); } static void cleanup(void) { tse_nodemap_free(nodes); } static void alloc_and_check(size_t size, unsigned int *exp_alloc) { unsigned int i; const char *prefix = "child: "; if (SAFE_FORK()) { prefix = "parent: "; tst_reap_children(); } tse_nodemap_reset_counters(nodes); alloc_fault_count(nodes, NULL, size * page_size); for (i = 0; i < nodes->cnt; i++) { if (nodes->counters[i] == exp_alloc[i]) { tst_res(TPASS, "%sNode %u allocated %u", prefix, nodes->map[i], exp_alloc[i]); } else { tst_res(TFAIL, "%sNode %u allocated %u, expected %u", prefix, nodes->map[i], nodes->counters[i], exp_alloc[i]); } } } static void verify_set_mempolicy(unsigned int n) { struct bitmask *bm = numa_allocate_nodemask(); unsigned int exp_alloc[nodes->cnt]; unsigned int alloc_per_node = n ? ALLOC_ON_NODE : 2; unsigned int alloc_on_nodes = n ? 2 : nodes->cnt; unsigned int alloc_total = alloc_per_node * alloc_on_nodes; unsigned int i; memset(exp_alloc, 0, sizeof(exp_alloc)); for (i = 0; i < alloc_on_nodes; i++) { exp_alloc[i] = alloc_per_node; numa_bitmask_setbit(bm, nodes->map[i]); } TEST(set_mempolicy(MPOL_INTERLEAVE, bm->maskp, bm->size+1)); tst_res(TINFO, "Allocating on nodes 1-%u - %u pages", alloc_on_nodes, alloc_total); if (TST_RET) { tst_res(TFAIL | TTERRNO, "set_mempolicy(MPOL_INTERLEAVE)"); return; } tst_res(TPASS, "set_mempolicy(MPOL_INTERLEAVE)"); numa_free_nodemask(bm); alloc_and_check(alloc_total, exp_alloc); } static struct tst_test test = { .setup = setup, .cleanup = cleanup, .test = verify_set_mempolicy, .tcnt = 2, .forks_child = 1, .needs_checkpoints = 1, }; #else TST_TEST_TCONF(NUMA_ERROR_MSG); #endif /* HAVE_NUMA_V2 */ @x;-vFhCJD.-̜T< ҂4H$5wcy| y9) 6y0Ze*{((g(q)C]}|C\] J'_c̟tTq"RAf떤肜49]aL"9'qXsN>!9)G$dKlgKMM)//QU0KɉG& s+1.ɬnb#xWioF,M]FQKM AKi-r.8m{,)Tզ_j^͹ш?:PF bL(~w׃xAZQtG]:7:)biɋt<|OoKC ~49FZAa! cZ6DTF/^]upu;|pIZQi^&( h%bƛP"Sa"ρlBҒ WPHiX,DA&TP KISVjej tQ %lNE$!pJcݰ &CaڐMeZ m+ uҖէZA(*CHvLp! #E`l0Z< R'ɪ2CN*fX>Xs 甎y)%"2s =# g^u}lXU? Nx ;iILvxJ|n)G`aK˹ Px W!+#/[am!_K=\7DQR>Iba-EB7+""m/- ˤk **BTnngw(0enm^]_Ni2e@nw~".l6lQrR %M.N6OZaGz.%L᳚!y&}1V&cۓ1;*\00`iasM͛Mg77.íyP; spOpdʛ}So(!/eR+Y+*pj: )8]%xZ ЀTF.kO( aKvd6L7n2kn9j9%ٰvpEtZR)4 }ʭVf5l\XeQ<הi> 0Ӹq\cC>:v= 3; ΩKQW@5ߣR]Hx)Y~}ban lIeoΚk~aVΖ)|L \, 9LMű.N[G&/Aq586 ͊k>X;Y nUkF6=uݖjqkFCop=zv9ymv>31r98g߬=?iۻfD{zlގw6$ͣz}ln6t/ 77/G$T-Y5]^RB&(@Ybzy|}l坥n>Fr8؁{x)=7w}w_OD;x340031QK,L/Je4UӞ7S}?U !|S2sR6cy]uANP5ũ%iť)z ,0QOEjtuF@un+D3Y^>1ꌁt-vj .^sp!?:m?ݫ-صEK[fg^5xXQo~~\L]8ARpVZⲻK+Bޙ]Qe9> gwfgfvk)eVnaK;𞫜4vz17, W3B,>tAOUy㎛Sl /X4F3sϚKBCbKǹS`-+HYgB%f " 2TEnAo śjE ́$ )ȣx $ڷٸ.p]=We}Ʈ`#X H,BXCbx-d.0 z%f*UCE&ƓG (%1+N2ήXcb &$};Gv0LFa`A7A It3C3 J-07Ly_#^#Dy vϑ)teqgQG]1b4>27E /=ȊO9r#6fbg r)o6!^{ۃI4v5O?Qt5'$5Mss(QM]%PR;5nai)AW>dnA,W` ykZn>h8B( NuȈTZYLWx8k Y)HMb56"JEW_Z_u6<8r MQL\eJwMYU`ov|q/rٜO,UR7S,^Wӫp0^e[8&$7лl tLf)n?qĽ\66koegZ/cUjlVv? ͜yr/h*=z\6ҜR&lj<بL=waNV))(22LK4ⵦ=}M_2rGCIL#/[L}Zzhޯ#d@ܟcKى5VkyT#.bQH9)APioktQj%ៅQ#\-}rNa2J=&g+"O8u(-QnO -u݂DMߣZҠh; 5fjGQF+ #])lSA{QLEREJmމGWiyݪ*[?ǢޞFhLAM;\pnSL>esW9ޜ2W <8HهOe"Fx?'Ay mEY^Ga3O[4y'!A@6'ߐe-ϥ lz@i;`9!OQɣgׁ|^{ْaG{q;&v%Q$ފ_lZ3udaU3 XXjQ>mǢ9+n?^KyjrB5x}葏Iףr6o8~xMt[_P|4n\d؁)W[zEMoD;SA|Ov 3{= c33YP._%nd"a+t|v3~Q$em~lOT )~^]Q`r( .QrxjWex_W,+ӊL]k s- ۺxYkoF,M%VHG$zݴ9HQw{ ns﹯3:?UrTrl*\({&2I>rwIO<^j"L:1_1<,|cal!'y;b)2ai&$c ,?%i(6b,HEkلpUn>9Cid/5ZB(,}A悥6B [u]w2OJGHu !' ; /}((Qc֫yn]Hj8DE37hc5G5ً)3BK@w:^|xyj g9ym-]gD?y>k߭keڟs;ncH6@n WV–rAdYN`B(O9^*T|-z/kR)T^-"eɄSJwS{Ǥ>F1j:쀓u:Q)`ӌL ^܀0 5l{BaQZrA郹,(^Eq\C$OPYDćOӹYOG?}~R:gq)#]2V@M>[fqSq6N{Z{26u PA^8Zƕos6y_?qū켧x^ xa100644 .gitignore/B_>rjOZv3100644 Makefiles˛4Iop#c^100644 signalfd4_01.cV");LĽ100644 signalfd4_02.c1+|b.>PLxV_o +PImN%RM9T$K4L*:2˻%yr') %9PA(~>##tf(E۝ZC/t> y6 N)KT.Tpa}ח?guVڥeYiQxZ# @q$>J`3Wp";e뎵fl7sV1&Q:fУQ_Z,\e}C{{_[G'EGE%#9O d7EZqVY[NeUwW+^t6o&?ɆS+!` g*I(vSO19b֘Jġ3sT :rhmF ozG4Eikmkv6$7>ڞ ?D!J8\Ey@ѩɕ:'>F2cSHLplj L‡A$I6r81%%'VmG=O~OӨC)(tvUƨ0  Q̇;|-tf2*Џ"n;1[*q(YW6+k l?y\prNz2fo]^:FOyn@"\NQb"対]JZ2xy "ye:cL W2?i 5BYT,Z{Tm[n+A+0N#uv2up@[H$`$a<ǤEVִwq{~ߟC}^kkLH6`rKH%54=p9* 96'ez|OYWJ׬MCs`coVimk^aÆ4kJ=ސ" v9J{aXWSdJj kؠϠh Po#:&9Z.N!F;3QW>='S@26aa8ABus{0y0Gh'H@' 0gҺsJ]%)! SDgc*m@_7ݥ x]|#hdqC_5MPo% 6Ϻ!7FyRC wSJrFoҧ%7{yh;l!~:n*Kz~p>my(@H8WVsZJF#%[(I^}8s%M#dͅFz({3Z`3YXisMo٬I ?Z{&ԄYo1y?nh}:F5/DJ mjDS"@1?9 Lrs.:YGf3LӘNҧyJ",+N&Qxy;^F [%X%$%&%%%''YZ)hsk)gd&g('V[M>(6S D!-H$#U!%[!-'1]$_83=/1'-DOA! &dd3SRSSRSRr32sssr3f(Le4Y[m9ܪ &HO~h4ٕ< D#^&CL伒 ɯ& ýsBҌF_ |IN--EwJrlh]C|489934r&(!8QB@S8D!/?O7)'?9Rqp~v0BZbfNjZA\1䤁06%%8tZR818e@Zx340031QK,L/JepԸ³NsoZdQ囘ǛGse=Zx83 5/%3/H/Aj\|G&(vk}40,xWsFbK&a Kc'L1fE#\-Ɏ$LlI{ۏ;>ov3u1/9KOlu;2$fi p&7)Yip6Ps)>d \ъ͑ nTzE|4R|w{$G0K`J ^1!x#l>)&%V.n=ۅ4䊁^JT?OI7醉U'p& 3?Ӂ>8.p j%$,=+`i*$.7o,fЊXUB :Uw$c"tOQSiLXw.!bwзh S G!=i6t:xzqBp X8[AHYx;`:`}TX&YI#_B _-Q5MӏEzgW Z7 [c?<~P BdۂPvTS{r;.57񟣶QV3J6diɌȠ^ܱ"[ğCߟ?\zzM:)|-uJm5etrNr\I`ǀ6-7:*JY// M*#r®Ի"vWڪ(eȓ Ooxak:8޲<ׄLƂkXdʎ+n,%7d1Ɨ2pV9eaj lwer΋xy4-'φ[8yb{I˶QJQ~25^4-PxKŰ%A*7cPa;Ki̯۠2"6I&?ZX%M#¶BIfe- ?O+|9j`^y͆\W s+"Q2K¸ۓe_RE<3\waz=t7&Cڳ4_ j%]לP.7ռ몑LQ9V A|fhTƯ7Vb{I-)pÑodun 9:l#+q.…&+ήX af:&wǮhъEK(P){~0-n$saTʏNo5-cV[i{>X[۸km`Sr@xsigno, TST_LIBC_TIMESPECQsetup = tse_sigwait_, k;2x340031QK,L/Je0 }WqI0BT&fe2̍=l愿ŅlTv8瞃)L/O,10KfoTIͬ=ki5-7 x;)mB>Y̼̒3SJ2sSKK|BCB58yj@y %ũ0u8eA ,xuTԒ- ɩ@̼|S>f\f^BQj5'ZT` 2<1DdPVӚ (U0/-ʃjJi *k8pr65R&O`Zf<ʥx340031QK,L/Je(6KU~JͻBT&fe2̍=l愿ŅlTv8瞃)L/Oo`pn!,g$.Kμ0v,̣x340031QK,L/Je[VV׶2!DobvjZfN*vkjΎJ>gjTMq~rvf~rI^2CjKE ?Լ^rT7<{.xVoT׶~ˤjc:KKCIiiڰ6ɒtuWS웎1> x@O !i3# a!lr<xd-h}*z%:_YRHE_2RY  fn;8Hpro7c_O=T ">)*U1i=1 NFigO=Z:+(ܹS'xx[Uogx /oؖioKaN0,s|4@j۶Sm1Õl52L,0?/_YpV]Q CFQAhvs:N|W%Ŧ1蔸_vbGLN#R?QGe8H0g/ x340031QK,L/Je\RkчmY3m։0MNMIe8ڻ|٢esbє]Q;[9~{Xnz9%IxuTMo@=ۿb\ 2MRP8aKʱakiӖ;x߾yf`^$3T{D-EӦW?8ȧNօY f+K$B.Ë>,ad Kh6)d?l+̞RgZtYWTYYk%O1DR>2gph]eZɁ}YZYQ,B*y/X+Wi\vLDLg۱W${V0^bF!KB֥Nf2 Y1u?' p;;B̗-K! nO8$,v߇LSj@+6ӀVy`eUIHRUн!A{l EqKm7 9$0A ' Pak0 0Y1E@,6ؚi)"5l XZRQ̽n6Щ7?)qxuUn6}bEknPJ`"1 %R$}Ź93ǰY} 9o9f^&RT3{Ї_Y/We;Qg :dr9"2V1#oBw\fJC*َe_<1 )ֻA=+ A2]K#߂y @?R\D}JS(\݆Pp_klاύOu T]1I"[;.̤hDT=gW+P٣{"-ҊRRb A޻m`\*vG v8|:;rVd@JgHW/yZ +X*Ny2Np(-L6]s]*%9S٬PHJ JA:{}ߦ~_'?ظwߘw \w4&+4jmV_ {Nh@Ik5\)^ {YN4~OMGGÑbSI}NڋT MG:Rbف[t6h9Nw͙G̭$ 8&v}c܂i8Q QDF% u ]'MYmʋZ 7i!\(?T'K[B;4U`c`8K0.7d^g ۥnKS0UFn {S&eÖÛ=f0!C{Ջn?ÿfhuNpLp ^9 u/Mp&0?yAvdvy3_̛;PJ=зqMWބn,=MY$p⟚upexMJ}Lw|lb&ڼ4;lԾxlWe-4_xTMIO-MUX0Dn% 1 (# =3|RrQki# xC100644 .gitignorer& @#%aY100644 MakefileÜ2)Q`7llu 100644 swapon01.c8iy݋Qέ-100644 swapon02.c(M;P@HU #j 100644 swapon03.c xhɤV-i|8HRxuTmo0L~-ժPi2PR UJx vd;s%{sM/CQY*'g1\NUצ%M< ub<(Z$ ƷxUnF}bʠRөP^@ڔ^KB &3gfgϜz~@iY%t/V%\0)dnQ {.#4bPdž)5ZS(#ťRsO4O\)^yE۫f5sT"ú Liӣ4ܔR. 2OxwGpv?ƶe3A3/rczNHYHR{/+up|}̃ Kftݏc/"ރ_O44tQ4#`iZL78 dmvБ(blCZr0@d $g8w-|,;; Ͳ*=h$϶ v%h(F\ef~>lM:7k#Zn>HnLz?b+Qz(7 5ȼOIh. C|35|_}U:C:Zzdx~Xo]=_ea|k8!=5jׂfd퍯钹KOB$25P3 Rɢ;KD=sSF9͂ <25 x340031QK,L/Jeȭx&٤Y+&#gQ囘&]eڭUS\m`LױHOX[u(?M1Pq;qKR~0<*4e&@e;,rTpZphODBL:xZmoJ b.WU%$$vMHÖ@d۪c4mHڦO9oBK"u!zq*KC{xa,oZMv$&PU扷:KZ[/GBܩX$2uT0^D,U )]ǁLD,P3x;oe,uB_C_Z [FęiHq#kbI6J P+l;yizTcP+ȵQHzFbl5 j":}g4 &[0XHC-\!^0D.s`uGH#zAw<gÑh;wFjt9w[Bu}hh S/tQ ލ}ހCOҐ"Y\: ™UIJն M 8/rpYToN #^[\;[S1R }/{V|~v*+/F\o@I:iSD-S-dĊvNNc[K/,9TVP8,T%wn.NVj:(DZPH8t2?xB+3pA˧y'tֹ?|,$w cjxQ ̞t.?t#jRSM%Y5or>|hXF| #ioi٘ə8bhtȖWOb;p(Jm HrBϳ [R~IR1',̐eL:0 t- ,f3މ Xc lPw9չD+*(?-Dں6 {oƣ6i9]V`O+4hZP#WWSw~Fn!/"|(;`.n`w Y1#xCkzԴѾ/lNT[oCQ[v2z\fé$^| oKԑg=G.)ԃ{:icy*#JۈlyB]7v)೘? J{sy(_ %܁{E;v|Ƈ__ce>ϤNM!g~#U쯓{V*; Yd[Dt2KpŤ- isp`]2X9ښVMAJg(i9jiU&R)1z̥=Z%)WB@@ZCSc?ZR T;ޭ ṅ!ɂ[ˀ&qz&HnW F~F:o-j;ZM7ӥ'J; xՕ~{ YߝbB]oɹAN9&bڮ9Iw2Tƨ}^gUOi9M7f;€Z1sM\TAɾG .tu54`/Xh!ȼ\3|[-fMQ(t$ߋ ]akjBjߴs$yD6ZgreDsD)W>ʍtisMĢ9r}1)BQ٭6 jrY[L&I=CXtAC-:99M﷪:0t GW{Zwu?5uߕmKW( nT07 ]s.lx~S/}4ߌ[Fs^,2xvbW@ȥv!xqͶ>*#b'1"%KA8Id M[F⠕ ѭ:N*jU}$"n7Bxkf ryY"H,SPRG>̺wdJ8 ffx_,9K9EGĹ M,*̞f 9@&U>ohTXhE7!*Lf ;-i) vRAڮg84E&yaG_gˌр FFV8:R&0y|}c1-d,4=rsY- lwGԵ)W,ȶ3Fگi)WDȁΨi~x^2Bi:Y͍9Ϡr. =`u0i\<'̘Ae⇬+X~~qs_ /9EOZyԻF'Bf\ߔ}WN6 `bһf&XZ`^U9yq3H GRȈ- 刾"C&Dg#RFDA> G{6= N]Q$ QtaGǚ\y6˨;4#K%в֣lPEX/+e{-g23yTd !9wV18-a !B*VDHsnQ|yADYLu zuOm78b8Dg6k#D&̊ra뙱6+0XH*W N<"4smf>D3}bq[=y C@j|g`7Ys(JW4֞A 4+GIؔ&3!FGDRxEͫ@?b+1qlU¢*IJwrͽ^R^zU+P ~93ue̋:ؗ-=m8)KZR,#9n6+6׷sOʆfX~۲M@N6</ RzIvJ@Ri2I/ gn}ٗµx\"lHlT)zs{zEx340031QK,L/Je0uR,egxND`oC*Դ̜T7* n|ܜ̼Cd8I6Vr/(SxxuToHWdii%ܤJM6B$HД4BkOݪە ! B|{E{@783K{޼ǼJm?x̾xu(aR9d0UŻ $70{86f9M#11 G}%6~a(% 9%jo#Bl1CkzBmW#^rXLA=,Mq.xpd 7M_R{"c_A_ -6_'ߘLJԳ0>M4 lQ|K1sD|]^|2(yp-bCuFa^FM}oɅ \aϓ}S32NFL%3!to.s 99wXaIÿ0=sg:;:T%ZQjsfJ.Q]aǃ.vSVDТEPCPf|7wܣJZ5EWG4]" =@H ٢pY{ٳLs*$$4DV܏n^G}-/ S'p2uo!'T3{(YUA$" "*}Bɲ- iaj|5DQ ^m˴*r^DOWBA$L_fL+$]k JC-E 9(hъp8 N7*SY^`M_4I1#?z#cBǿÿP\׫;\{ű3y{իYի+gb`L= ::$$nMa`/1IP5f๫Dr[vFNP 6t;4P# K Y)Dɺ|2;uRE6:|ySǽCs^OhHEΣp#\bJ~I|n)$Ӑ3&kvTK!vQR2/76~C6'SDp(iƋl_;R1:v,,H$Xd,zZg?$kշ}h= c`: @M~*r0JNEu p$SJ?=dy\jkzs7xj]xoN[M}wWpVt%^-]n_mvos߅mzs*0c˙`߷%҄:*Βa;'h]!g'HP7f(YS];T`@P>018nF(Y$9ǜ&CN9j. \A]8?;ph a2Ͳz&iU-UPrLVѨN|TgMN`!oBKFM2Zg2WEMoj?JM/G;rc34HRyQ xQ۪5۪b(/ SŞZ1.xx.<Ѻ@j}ws~q|\hƣx){">9^3AqoGŏcW5]oh{V3Z gAo> [i wcM7[? ! x340031QK,L/Jexd}:DŽk~nҼ!DobvjZfN*vkjΎJ>gjTMYZ~Q^2Æʦ_gT/Zx{E"#o'õj}:tEP=xXoF+kK%C)⦀HE\p(\ID(R]eN =;Y]hMv8xmZ4q U So*XAf[ 7RRFR\ %)Xis-(e&iEhUa5O#!Ilc/H]|!PJPyEDDkelB k$bRJ8TFF.;ӻ8Ih-(Wb'pa\Po>fxq[aCC9ܓA*ԟ|Tp4\|74.hڛ-7QoFl:/BT{&4D4:UE 2`c.x([XP}?VMdָULxCi;t'c`Hgi\w}A5A&278bdLiGWݫ/W]Z{xj]Bi{nW;B6v ˈik}FR ":ƗH#ޤ-*P7FyRT ;P;3BA PyY .w a.|Z,]+*[`#V ⇭pHz7t~vZdQպIk._`ߚl2B]#,eJAbg_HB1shl!;d={ܶ[<^MwoVipmuaq?W,~gS!X):<@:1.cFO5xZz+pٙChd_HW$9~"MW״#md:b~|٦Ѩ1hW0;xkͶWm6/$OG ܠgьO/"!6 Q<ߍx\dٸMo Pܷ:Tu,31:,Yul< W{2Wl}# kBS9]7'Yu33]n#TcGb34o J]ح.;Ov0Ʊl̍8vfy+ߵ߾lT\<`F9!5&7 ڋ^)dǍ.Nh\iG# VhtH]t?帎qgwrҹe;ɱpͶﴧedqKipvrJ} <939m3+HJsŠdU oY`J1]qGf'N\+I,/ uʤ@?i=zm2L@re~0}z k w U %-.s٠,~鎭x340031QK,L/Jen*fyba Z+{ !|S2sR+.KQ52qTMijYj^^ԅIW_Y鬙s9ʚ=cD>CdNn!6%NUPuoY-˞{2RnKIBn4ŃGf VRxX[s8~N~jp:bgPJJӄ.,0VHr׺if؇ҹ|:ȃzQDN :=AOG=Ŭz`va\1z> :AYzA9z/TO9ߟל(f t/]{0'wNtd FKcISiA- $@!I (E$D `FP1yQ YkEkDh%/P :1j0 ( kȬDp,klL 0$Wj}{44 UQH/j+>QqS +g1B9-FIZuJªHYzͅ'(Tdy4cWRine>AqB"cew[tB~j@/ҞNG]d`yF@ڣw -ND]0rd9P*[e-. (f3_x j.=;Ҭ ;;qHlr5H< H?`% knKS N:*}nuMbUGCw:; S4ۃ?'g} `rD2(5׊8wڛ{ӈ eCW&a2(M߄]$N$l{w/\*!7[I{_/FF]֨ xh2V!)έ\W]=w o nª˘f'm7oM M8%bguw,VM쮔0%A \t2ݏ; eN&c0,if@u黗𭣶6o'F=zH>YlrylgÑHۭk# T74t/t+҂ ٖ ~u~~r7_4!~07P)ܞOFn?t̔IFtWklh?M5K >(V{kȄQ*"u a ՕWbZ ϣ0pUӇBɋ[*Tk Ue=ixl6 ]@ &OK?-de5Nfʨ~Ԩ2nqAW΋JEнQϕEr4Jи4o Pz#+M_V|Qcvd/7?-2L _ OfڡwV5e|E7V5'p@7cUIrP\iΊEG0Ȝ1>P>EϬ0e@%W 5L9L~Xf,#H@+zLjȾ3͑b'N|&X`n;cD(f^Ϡo~ P,V1 AbL"|wj鷽ۛ\GR` 7 6s uO;%D*\TJp/+4?`iN*4)cU8Z`W}wt[\nk^ @Vn{ݎ#jvl;T7< ) ,c GCIqMI rY`r.>!SX1Hސe!N1.G7)¨)V`$<D2UGSR˷MѴZ[V9Vg{unUF.T( SN;!X9QLɹSC'ZY\OטZts$? QcQR[.M L4DD5HjD8 M2eMNq^ )Xg >xGgcE"nkbsT~ڵ&qGkqק7WW'gnT~9[~ƑmmmMc,!x f(2B\*zDqym%x66AhΆň$8V7 ʑJ8QHxYZMtN+xZmSHl~Eǩp2歲1I\!f9%E&oћm{Ii_lq>Dx"+h7W38N}Kt,v}ٲ'H*j4q410'n a#k 88;+!m Ǎe̤W;[AqGf#"(4`/zA"B.f7kÙk ?`O7̇F -ȘTbs;a$#BWAqd6U:{ 5޹7fͼ*@bk~<4?vBb9 W̅bNCEθO>wqH}k~Eiu8=C.}{|ye|Щ %3*.!-׋Q:ρ5p(67X^yH)db`"enk>g oyIuԞwpb]` Im1vmv}ۛ9+'GD dMso/r k],V jη?[ҝjlV% ٔoalpjQS="0'pe+Bwh[kkD!t yfKVRH}k*Zk%GZ|[ !5Fe4{rUzw>6Z-q'816Xzp)͵OSkDibl'N׎:<>왥ݗkǠTR~}24;袥T7 ؠJ 9 WulÒ5Rr}hlWA)WוJឍ%ahEҢ EOmO Kjr~$6<w30gl`sJR*ޕܚIcc9cݮb)v};H?now퓓5MVLD O—e0N+HqZ &2087LFmar(~4` ;@#y\$% nWyUhCb V鷵{S%&=6iwbD[`dX *$.tnWxcɲ/ M`+㊈4p;Dϊ4Cw1N6/@-f=Vkپ"PS]?WKL_{|qԏ`^1=[i}3OS^˖t.]ԤKNW)S fIc48ǬO0n(Vs4rIu$EuC{)\otvŀ"F*VZ;&# *mm(|86,KP$pe!AH l0"6MPcZcY? a` 5(n,p*FԲX8!m{[?ˌXt)>)`Hz l3}Ì]8щ!fxҠI3^练P[T񄯈,I9guFQ>fbqlt#U~rcukM#Q' Hyv﻽%UU1Z;0;e>Mu4蘴^sH mX'MS-OȘo[4Ou6R"QY- K5P8)T.7߷?e =>: _/J"oJ*Il{ɂG7 ɟ yrnd객Fx%NO ##Ժg?sո;s99"u90gUӓᯝ9z-d:@|ڼ^D_*ߗ!JZ: O@#:UcD/sهs=rm(pP#kIzcZݒvo[t'E\iI#Fӌyjln*-.hIRh%]3C 4 ^hM'Grj7)$ $R¦;ݞ_P'TPQQ"z{G^u@Y%T)@s s톌^r)TZ<]8קqoU㬐Ø S&,RwE[$viy \hS/L/j~XU@OfXKID]:O(%<76J$>"aTPqC(J*, }XqûyGCJt0 GCN —'3)zT@z065ep5M8< ͰA\'$ޒi +}B{`X7,Ȍy4 O}rte3ԙL:Cs2S[`WGK g0;hB:dܙAgBWhm2E;\L**o#{䗓J`.j`]ԥXeN+h+4e])uJ,θLG磫m3֭ɦ_ip3MM؉G]]ˑ1\q\#G#!LK> !Ʌ pVËEVP/mDO9ȃgQ=D"/u򌜴~v1I/(RA6C*S14(WH^8xhlee0C60@ ̱Jv|9Xva#٤Z7(H,7䝖 yݺ"Gîcaњzi.2c.rc߄|EB@axEJpd°.ӮΟѥKA V5x% H xLn( +A,&~8swł[ k* Wul37eL(%&sp&X)lM\t2pZnAS@X +T _k j0:KO|RUu7#A$7m;0} C_צvEʖT#(!b;Aۚyѱ;5Iz`` U )#gI&X,~}7;c?!kZP,x^\^A 1G#1}qӿ_]o#HbOxn2T`RSZC6O@{x&疄j&BcXKo@l~*/|`Q1P3l0T_Eݨoz]f*G}x孔v|wbx|al%. `Dms9I#c7`Л!81]xJ4CJkȒ\(&y q9$[Q╊P,&5˜ 6ˈB;BRrR;s KvLQ!ig:l^AY[lZ?"(lHJhR&Dv n"Xlj-7$^,=09f>~mɔ)#] RDT^*>N{$lPZqs fh}ZFu0bJ;? Y:N=ӑ$=Li"+&>SWٜ.õtH9MYj1>>x?|ߑ Dž)gtEDdcbZ!m70YN$eiRYᘵbD AGm+N 1Ŕ¹d0^hM߰!>`1M" 8ښ*6wVX+-=jyD2& )aS&M9eP?"?i'@7fc^ ŝŷTGOiY&ep]Y4OO_x3yHzY#0{\^C/+ьiF֎uBizæ0k_!Cp~~ᘈ'W[# 2 ךb/-+2i+z,M\!MV)9w*9q" Zy̺54L{&F9)0}ЌBj.ӛ4q۩4%۶'riX<ljâhoъG|/VfNM>+FK@^]Sj &Gwz{]H1-ܓa0X|luFȎ -Z i UӲi+hmk5 ~|\RIG+t$Y=~,\AG#T'ȁtOzOZ+߾S|6<؅&=+@*yA_kE-w3]NMǾKv[|C)Ivޟ^TB\BNj%MK6j=7;(Gs#w7b0_LƷ÷? ?vǘ{k;3JX29#k9&xJ7ԳzM \+ГtDDSSC6Fc:#ӜՍZױȏ DV V٣Yd_w?3XVxu쐑-[F4v[BfW pcX`AX!!OϟFm_cfdT4BG39l~NL H|f=+OEdH[rS0):cf>I}9.pTQdWGl8շ;ampw(vw՜Pd8兜G^ȋ+}|y诒m94>٪fp41ԼĢl<gԕZPS]?3 8*BgULuu?OlZoT~AdATnXœ"6׮/w@x340031QMNMIehy!9OoKgQS\RPZ0Bd~JϗΑSv#]UAߪ5]9li|7k\-xYWHY: θoQgav}4WI (,~Ituէ*` < y$cj F rHC ^E2V*Uj(% ު@C(WZ zXH-#uHj54AxZFZ(>ea '\@(#AI_߱ cpYґ(Th`w #KO4@lͣtؾ< BKSTX7y޷vFbO?%d)Y$؟ }H쁩T1"YƿID%S) ϛ6|5?F?%en.#3.s4ӷYqA`ޘEc"KG!+b*1 1_K?ȿ+Z7m<^sH:vzQՍP6Bn#Fm/]]bT$N򰨙_ZvoYN=u{ᮅٺt:k5xVHַyxL} U*|ey͋Z6ʀݷc[K]۪via}M1v36A;_={::Z؂~J%jyx&kqtiIGշ06R9uU uT<adΎoҧE(PHמVskbr Jt6 [ tZ6%ϠCMDbFx/WNKեD6m7:+ؗ^c}7]uOXwuHsQ!z2B%d8,D\F` ،yń" 2Xm&xEj?F IH&dfh#23HyΖ{AD]|:KPəcVRsϛ,{x83.%{R(2+TNm+^ehЗuPYu:_TwuV*sK EiJX _|,ZO3c 0HooJɬ.$H-4ԜK&,[˼sJnp젝Jg}pB*t1"Í%2xw$yFb$^d7I}w3[6/FۙVZ^hqϖYikO-[ H dmk2W!,rʂ|KN*IwZ5Y\n*R /ۼ`jN[gO팁c%~S|:V֐NR Hقji&ۓe3GgȐm3nOP).{a:G('YyՙǎRPZ9SBK_ܯi?g*_g%JJK|dܲUnV ̜:Y ;fJF_]SR]l++K(z\h |z@+jLKehpqEuy9 #]f0i|.f[/{qVN@IlL-|^3XĽ*y@idyL IbzQs^=߫aT XR .. dY󶿕 Ou)zcS.pi1ysghqE34*Rpbژy7_$)oa G4'> Bu\ozŏ7l ĿK{g[U!K/@@yb]G G|^~xU]6}W{vz/ o@o{{"^k!a # USŚۡ:vljPR-[!ÙM]4oN A!vA*B" -P 4~M h]5u@CTUA4M% |P5V?쮮/XGD%LǞݭu\ ٠8=O>5Kf"FNd)9/'^g?=dzܭGNrkf93n@m1"C0:+,m\~~,U53zPg6,ϡƞ;]ܬG1.ϲ wĎ9ӈيh26wOq2?)-DZ=9.|ǝjC~n6jc߰[`~9{s[>]2.xzUo]0mZnCdinUX,&IL2idM[޽'lMn0ܜ;>-ndZ..w7sۗn?[9mfW/0'wt_q; `W︚Ml6>F*"WZ4`=q7Ki]f(fQY썁>[]g.byF8w5mŎF%?uVɡm5UrD U8fǢIJAQ 9ݲQT'H:9o ε WHxJNewjpTw![{nH%iK%*9qKLXd\1H/ nGIIk()MPw³ a!ɞiObN&PTL"W|/Y!{$;9j%ҭ 'MʢV"V[mZGMRERʦ78Y0}̮C94ѷ Eߔ5\q#+e2a?'3< ;xX REg̝]\l*ߛ[xGFF} y$0X/$14Ԉ7f$~rfw ,`KuU Ʉ&qR !ㄈbS'"!I2:&HȳLpdL'4OLBT@™yJH)Ii,Ƣk?ф:y~.`8%]ӔF,9x8ct~/4u|v"̒9q.=X7$I1 2 ^K]/VĭZz:M#X׌ӨN漡z3iDsܒ X/y;Z@L~W>'^'zW0&a@Gܕ)-Sgcޡ*gUcG~Vַ5A`ꍯǍ̧+H$6V۳y3g]zd% IQpOy>6S5~g>|]ݯjQA P=eF6ەq`H-)Nn*_Mr:ʿv+xC4Q˭!Q:-˞G (Êqfp}Ջ,.bEcXׂ/- J"r ~(^~c!@=LʬL∹uVs䱀ì%xMg]oG8AЋp_SqxṄs o0}@lF@ Q %L5_C e' ľLeHx}ٮ6y f>j! !LaJ UUՒeZ߿_^kO x{}8؏CRN$44>_h٠e\vX!)ng]D?1+0$QdQRBtzdj{X̵fAlPӤ:9k7_UBpC2_0PN|7u .ή Ǹ6%n]J)FcsyϛB\µ%" 5"%ƷK&awxʺ] 9 DXw>Am9&Ch964F dG~V*ܭmz'֑&$$){T$pne 2콺AGwSxb6vs <@F+XcPsdJl0CVIlʏ񡠦~b]/HZD?YߖnYzLeh@vR@wY`P N!yQݹ88 G7tnE#hQ†x(55.dѾ7*br(I[̫[xuIJq"l6bׯrܛ혎=09twUS{餪竾;WQ5 1tBxZ 5nu?g|!uhUXY,򢣩I;wV]Q/iG{~M|Ѵ9;{ЯM=2['O;QcX4vZEjL6$KO쳦eAM3]/yaW&ۆ֯)l/+ڵ˗ eJo]E`KڟAhjhy]}U 4SF6oΕb~oes9p(ժ*Z29BT5pu۟G+%vɵ4ثٮ\ Y6SOWՠCڭ f]L*kYЍkpXSHZ{Z "hܬ4Z4'zdybV4a7;8e ZIoi1U߹NmϲUKBkAmDrSKP3t 2X4+!^-kCWDJsߺM+"i!-ar eL@r浠ՕՐ qp&7J7I>+egI8"ߟ4hώ|}bx爺.V'  _uјh1Ѐ@bݢ_ G" ř`_~ڂ`I濾캍oɲyܾYt[9jz+^1h%M׽_Ů rg|PR< K f@DKL$K O QAC\y'XmGCҪQ!҅$#~5rMKͻx/_~lfR͖f<jON[&2s.xmAWE;:"ƞ[(BFX8H7$hzpd'AN$a1;v}`ܱv崛Ce ;.hp -Lȿ'UJJAs!&5X51|S1:bF+i+4I;=mOd2x` k9e#vIDI M>NGn6`;uC1&i'ëH,!7y+l ^4C84STȟL=Lg))+zCVk"Jn4N5kOxO18wi:gDs +:+C԰Kw2%7^k;xt80e9,M 7t$0a"0ZJ0]k΂f(o[섫k f)kpCe 3]hU\/*sIO.F_CJmh\g&ܭ=KY/NVe2 .`']btm[GyǙ1IdA}3(!& tss/ȱA5!n;o.^` ^ |pX/ǚ,5Q=0aD"ϐe3G7߷ZoL^?̧HFtR5?cCeFwkd K*S ';&<"WaV _Ȍj'l}E:SRyI9z̿* uӺ,{>8+(Œ:jYCnpHZ &P(&m /9?f:A'%4ZSdkeWuٞn1j=>hhAδy8 -:vn',fx@:Gxv׶dĕWϑOW+ <D"/X b>4<?5LM=6 /hI@"ֶit,hCggjǽ @Rʋ/2RJOzXM֯A,Sd(ef.]>G Sh}}-}4"}p 4z' ݃_q/F_$ߘ (> |?v| Whb`S^1\‹r}Dˑ-%bLRi7716勾VӜi֥sEPYIE4fٚViIA.jwI$职g?Dy.l6<c:aBN87i_%}Bd?oz0л. tĖMRRÉF4L+n1:(nUV{4@;tJ  Ռa{K)5H&=iY}K.: OGJMev9FX9Pٛjγ/ %3-F 2( =QоAfO/߽}M[E+y;7Tm(Ӣ]F Xղo !IT_.Msق7QQ]^X)A^&+HQ{m8ɿl$DTC(6).*8xÄrI b=3 و gZR]vp* 2<)B/bQe+(Cha5ޒ/h`DǻT UT 6UrEn:ڝ"[Bզ_ bs}2uV#7n]%KJp_>z:fGզ ơTbnO隫}~ʪ~E[@5w,H$RA,R_gdκПvx']XP7]8Oռt!7rlg!%j<؝O,$&L~=8Q %xRJ0 V ^acĦي1Ip `7:0EboA(tn/47k6t_ɑOA|Ȅ(+'6az/.rÍ0.YpOYCګDܘ]z3G'O υ5II<bsj1+ j1YQ "mAiטAb A _*2d`Yn[:¥+gpd rne:E阮v9f2IcWڞ|*F*Hz'Jk8FD<ѳ+]Ag1PûgHkՓ`C׎731р6EGF˘=R'z|߾c͡.Q{?nHЋ#{ #-G:H=Y ;TšfJ-TVwhy_g' z)nN6Ss˶7J gitXi*]2ұUNjѭKcp%`ۢ@ %S'K * "Boo#H? (m7i𷺙Fy򣶡3Oo_1|DB`u MK+}k} ,xF{@pu#T cxi!4@OIay"1YŋZn)˸D}с8HU/33qpc';U@o3ъW0,{qf:e?@:R%sU?HW[Zd}!{+[kRoV_6BvMP;MNîc$OƬV3BX#^ϑDVd-W XْN!]:=4q@6V(R#!0!tlM'Ll6|n6!VG*j*$;!|rwaܐEtSt2p+2hk}Z`ibH]E3n]##yB'] ,2$$8X#[Q]g-AM}MH 64aILa8;۾ʂ(`8Oi?2&II\֜]do,\eĠQUwڜx7l)1K27 6Z܋~}4JhY/%G״}m>vK6 qlv+` iiglƢ1D)GxphnCtb˷<~|v m|]^ڸWB)6 YCh=[Xq,Eʩ^75 Co˩Bllb &ڴv&`$PԃPih`U.Kg'q^ Oe1ڌTD (8;2ӥ+V{θ]KF"*6$*ȼ 3"*N@IUOM2ʇO/>'ØV* [5qfd$mXI#*}^/ u*ްAiFJy=u'OSBEJDZ-6 Zyxa*>Fo֞+c 5?~a`i..(Cx i2`jf`@vX01"sZ6Y ƟQzU&77UHĴm/,$jd5;Eg!Ht hBkU-\JrИ^l`E~.LL1d.e22R[0n!zoӍpE#BHXI&IfQ\~FuvwAXA4$!CT ,1b$ACjb~ƥKy"j.aJNQJVYə6ӋOYsO,^=29<&i2v0DN<硲re v{B)i GRN(>4S"L8@u5Dqa؉XY-'wMR&p4FRS(#DC-Rzh# =yHNUi*f2<"tM֡yq]T+6ѨFS>$]r"(q vS)#Ta7}H,3-g 1/TҖa zG(8nj ݆c4[W,|ɋ,dzqեC6SeS,>;'+,6S$I1Kp<ۇaHOMo>=wxTӥ=DZ f>fOTbjdO/qŖ9ei76|Vud7LX98"-Vt4\A[XϧaaDQyw?y3ʏPa҆ŏ/ OϨ#qDGo!Ʊ_#~7w|@CuD$6 R"?tCo5{:DL/~GƑ'1@wݓV|XġUڅOuiF͒yڐT+QbT{&_N 1mj:)$5lIr5d?$yNCZzicÑ8v1 vX0m0'I)i0j ,>qFJ*-YjGWӔFG`2-[Qu@OA$l1 ? *&-׷PR6m}\e3$r`GFÆ88?M:P(ejg~ ('t_H1IAHƒ'L4(u^GĻBWh4:`KU oj3lr8L>IŅQgyݫ(/G T] 11 5tb˛Q~ccߓo>Fe)DVPU>c5"?~'X K?s˪6Jda\c7T&a6q<8b!֡Q))$;M}uK$AnH9?ƕ|"dTW1Iw@?Цf!j,f8a ɱ;ĩ mJ)k,)z'*WѕiUqO6_ G䏫x)5ʣO_,'vf= a6O2oPBj:Iޛ,r( qJ>MYj }Q2F6df:|U,1a8`!o43,_Y]6?ɿuC8u4݅iY FVu%H!I+ Ly0YbB,d_t R_n3oQ]-6I? a<^n`%J1 ێWe/|ng 0 n;^O`KfA?R.a;N%L]/5OyVnCGv՝Fw71;e-%kG" QZc,[sǁm͢)|DnRl1$7, #eDԢPy٘`:`~$4XJ$"GR3$]1r@tv\=X`Xq%6TeJ2M" O!WCtjRNԠǖEɢ7)kHtKZ`{dW\vtPb@-.V u6'6oyNwUj̍p5ruo*ᨢ@8I\'GW#~s)L m/q@"oPUBu8(3wW)n0g`CäWF0b6`3$JЪ,c@( R&!IDK$V:=&^9_g#*I{YH=}Z̞dˢZ{^=[pu}نύf؟[ՒcV@m%֥q3GV5KX'9 ~blߏF̚j HT!-چ60fɩ`|.p8 LAgtZc5)-q \_@ w 5V }BW u54R'*<漥muHۚkJw{|ԥVi͙W. Uk~l%6pV#}alck2 krU 1L8t%u,:$lA`NYyX~LuZM}bS~sܬZs+ՍesP&1/;>;EG'77/y(|t!F`8]!d*H )&`Xe\ᒑ ;j PCY/1Ƕ끒툳 G, \$.&)e^ p [Z_y(hIyUMKp,1/2Q3E؎m| *iUi B؅ltīRX$-ȡRkQ (B/*{ᢠq&(RbǖjQMyL& ǾHX(-1:;bfQz@bbI‚,DBrĭp9vbG _ d&+2/:0`µ3MJGhDiNcpH 25堒Qo2ܱ`إ[G]WsITr&߹8`8WGRyG܊?$g'A jaZ#gwi)DUץ-w]4 k `PSp2UFsWl^7oUg+H-B`R:19_ݑ#&`!mDu'JڽӾW2…`@r;V][ءXYi]lk]Je5FQ5œ6,r|E|dVîOh`[MZyirOj;SWSvldWe{]s]c |X1]1WVdxD& bj՚FJʼnOp\4aˀ=d(p$saXs楜$nRF$՜ԈZ q2-Jʣ/p /2O`"ܜ?xlB{03y9TBFlvgs}Z<V?Roj# Jqdd' 0ϹShE2^?)X̾ƺ䋧ϋf֧__NB Ͼʰ3Y٣'{O ~b>|Ds|ϟ~Ɵ.h__~>{|G5g|VwHZ̋͞=Om.>~6{[T5KawzU˱k,%EOTt!]eZ!cLZ@J(kD9L4^Ȯ4L9_[׸0Zr ,FdqT O;@=S%QT{|*Vnsie FvkɆ3 uq;Ȩ 9BZI >W>zhbf0`gNqZ)P)ȳ42ZKUPYV'V|hu\׷% UnlQ)p, g'͖>6 +@RX>nT偔=+N V{VYy;@ifÌ05rJV却Dz3FTvj%Ble7R߿Wd\~~ͯ+eb~%";_+&Xetl&+3p0edP:z#wS64O#|o8+Hg9G_eQH%o0pb\6-1֊&VNKcǕ֩?n'k#,uhE rlV@U͜Zyau_ zM\\cUScye-T 2ٛT1k{ \#Ua8}Ʋ8>".a?[BwqUAMR5*9I'Ve^WСm^ì\m#X@Y3elF#usRQ# 2#P}R:򯒿 E"'OLm jQ/zSð cn 2JIH%A$p0㻢xzpF滘$?xc|%&)4nxs]}Es,O#BG޹_;ycܥ1G+у)L1 Ϻ$B&v1/Zr $)s9;!y nг-3+58sKC0gdEg'&s"+mW. f}¥ֱ3A.n'uqeS$cUbiS1F+'v!h>ع[42{i}p .+8X**n@K ;lDUu*4y"&9ʶ`J61ͱ%,  ;t ,J.UC?TM^CZPM!27"~WjfH&;KrޓI4X}0l]Z?a#W&N|Fm8=S{RaMp!*RMG\RhwVgܪұ}WIQ;o[oo o(3NHG2-/P.(QqUFPœWb 6Ij%I_ֶt5{|27F,O%j=V8ړE:c{Wy!@о^& {r@n4,2e4|򼳓}\5n]E"Yaj-N ߴKXoxt&?_qc!^19V\]OЬ|>ŗGЈH8U/Ǭ+v t:FI4՛lenZIjm0VۄZō0FN~ULQ#wvYjA|¡vvRp[ZjQifpgpOq8qMMrhOckx_iHG $S0ߘ٩f0GbXe<@yh@ߙ:pF&xO0NVbUKL.#-g-fY 4&RwILN}ԩ$V&}TqYضl]$y U-Wo H麍?9:r gU/#$T)/ݝxo?jVmQs,ޏ|]IhIt`5Eg|P캂]}Ϫ?-{ՌVkv ɂn5!;bd@CY<x" dJ"O}4ɾgk0)$Z`XN5B k0+QW65i+IPK^Eo4^q̩ 9{ZK&C5<fs)9H%vsHml# 17xуrv 3!MŚ )4G]tJ 0yWG=9@.a,Wj۶r}g,,ǂ,1|^?|+څi򪾓Š߁NmzHJbl^ΐc钒tl)DS9 /Pu;Cg2]AB u,#R~[8#٢S#7~*gA=8%bEgwXi:0 iu_v!oڻlf!ZSc(2qfhz_66M5%\p.՜~0 2O,[Xs$ridkT6"`+<1s3CdjʰjR~ꂣL]𖤈;T$ޘQƄ|/M W)xC9B;O| G_A100644 index.rstIjn96ٽx340031QMNMIe*w&ۣrssRnlK6Uy(gQ RTuIN<鱛NM ٩Ey9 &V ~YP;rn?Om9I n27oxn5,NfHأaWYK-)/f0*5Wͣ ?\|" 5/ 8"$4$in Oˊ2Jw8ssc&DyQjbNIfn*CQcN)߷n=8=x340031QMNMIeuv&˻Br~^^jrI~Q1,KYTКcLpE%y@E7 ^eڼ뮳C^Mߔk>sjmNʂ|޷-879œ@e&eLZs˾l-M! 2rR6 {yq)# "P% =-Jº|/^'ϗ'p1dF~IANi:_Χ,+8%|IӞpe̼ҔT3YҬ+}wSiЀ+(-a蜐ó\A>NsB?6p]4U-+un<~,Hfx&(y&ܼ.v@e rZM `3@B_5!e w[WՇ^.߃d&1_h+PC"q@e3v0l(aһL}Z "%% S-pKoK1ᅘp"FZSU+5";Z]y&2H8REawDKΔt./O-MKLOM+avRrR阕fyCT2 sL=~bE^iƽɩ89#5gm9Zx'Rei&ҢL}LtN̮r:|h+/Kah.d+j34fQYS(*_rU^_&uU())JL_}tͱђ[~0j27'ދ%">;wߵgQ% }{R^(/9q.óxRs!o8&Zq.,~g7 E nkNHxMBC:_pyqʰq:csfd2xVms6l-7Mmj tNަ8)36 Iϖ#{,\we B)|i_V}w$!e6e"Z٠Ѷ[hެPnd*Mh-H ʧp2ߖ;FHCtnD$Y`Bwd9ehm ʅ]Yh0 xxN|:<LP֤i'Mu} sfWj*rMEmxkMm jkj;W+k;Um/#?؁mD4`ܐS`Nlզi~!݁;Jebc\uS؇ygzOnhhj)~\rz d,o:h+(3gftr#׻zY1gƜdhIXuO\'$!"1QH{Zm򚥬qXZGzjIIR6BQҭLdRUldJ2h&I]V@~ie 8zR9WU9a1M9 \cTUa"rB%֜ܕn)P_J 'bc棔}o[fE1-8|kQMvN*Uxn ,-DRg:xUmsF~ņL2AN?؆)eBGݸGXiNĮ$@؉A=z]iD$YL %..݁rMCEkІ ]Q A ru(lS{5,b9=A('eᒜ|aPD* _Z&I.UbIBbqxΕ;Ei8K"Rk52*֪YaF{}}b쀧x7h&qܣTH%HWhBIhDI f᚜P*qN@FMy" X/""%hsRgԞA/A6 Bæ?ۮpI1IlA!qY?Gy!H%Qa2w<۬j{Cc{|Jw[ i9 i8aHm>tb oCČlӸHjyuZVۯvu_(?$R"t=v9,Qu77F?oa,~wq[k#$Zg1(IDڬDQ/|-Sh{K'EOS.sxVaoHU#@tJtN0*@^/r{ ]ӦY $D}{3;oh`r yĄd fB..NvIC 0Y~WBYiwL.} xo[z#",fV̻q@,_zV&Q}Մw>P/ex[6~&\a5]- Hr#7jŀO_2mR[U9I5B#q$"B]JTEHS9U)4]Ҍ# qAejre"T%XGJXWm BA)@@Q ^g9l*#J_#YTB߸\. R {Ba^sZ3k(RX^ &j[wnc}Z͉aLȲI<݃#oצjlJ'LXW5yp =wU s̈́vԍu[6SvM}>4^]ͦKkۯ -!+oŞV .9:&)G[QH։]՜hlHlO8/eu8ZUYΗDQ7VY$^%of"|D1 40+vzFx=߻D7".)knGP}x AU&֐}xY4<+2t:)8[)W2W$2M]T$ !\Zcv5|{86K_NO!uE[u>S_'i p`!TxYJW;5ݍâ >`_fۓէ00Hmf_9pPf7ЈgQ'؍Sq䔡X&gˁ9{e*~a䃃Cٿ@P Snǂ<"f[Ӻ)dBq%k\:ʛaC@g㴣mckR|NnQ{'ɲO9;7/axT[ϢH}Wtegb>dQEPeåAi~N:N:M!|C.@EP4r#5kE0mwVLڛ" "[ T : >+A\ڝ-WCZҮlk,X"w7b7 )&ǀ:Gj"rin-MH{nH߼I7s\Xi.Kdo5y<' [oY]his*4zK*ѬbTd ./ X` 6cj:|/B%avQ=7uO'W7U:Aޣ7OGWs@2+2cM*QzU}J?}3{fqu\^2b3@ JD IV["\T adc˘1se=dl.lRga)G.EQq|5#g΍X hQ)5ꢄb (>RN )Dc_6/GX_+Zn¾L chϓЭ muVS+ EwrfItqJW.u -TO&=Н5.EoJmna3o`#g0-(Hr!/S<34Ggw fzg^K2o9j@:3Rg܀Um$/^ S*Ba?dR/_X2ׯ_1f%˒Zjuc5A(@GXjJj 2j%C(c|Q E$EA)1eoiZ5Ŵ۪9\Ϥ%HU2TDDraUTA@U-%hCc:s;u7:z29l9u}8u: c6 :lgcnUrqԑZZ\E5͡<0wDNnܰ7^dž]nWiZ+J|IALƞs8s:et7ʤtэwӊjyYޑӫU^Vnr)#^B-Ԛ;iX3iwfc4:&<kWjyم?78J}cU? nMiv3>ǷyYR2*ߤ6rH_xٲFyӮT@PQ@Q77hii@T%TN*}Vk! 2/Jȉ*JiI 1ci`$%*Gj(yYPѡS"s 컼n9$`*kx CLs$qK_1ze{StY;ᰚ{;&G?I- C}Sܥ 0vPxgnPdjFHk\v#^kmEiX>o[G+xpY sσp\K^a·;eeؚUaGujܲTo209[Xog>'u$%)&r똺1.l9^z~[<[WŰ3ތ~vru$JX}*qk_TƞEY'7T MATJw [owQJ@Σ ZyJm=.Ї v^?9!ֿzd~Ս&^ 'n`)>''_ ,1Z?2h!eN0z\h}G^gvh莒 ܛHH>Ru9-UB@qRDӌ,b %bS)R2%Id$b]!#%p %ұ$)$9H&iX4ܤ= j yKBߒP/qp"I$K`\zpl{XoY2EQ)˻|(s\n[.VcYVTYFF:N[AgU!7e)t̬XWf m[^۵c^eZj<μ=NP()voSW&g" l8 s0+]=ڛVm\RiŔ"x1 NVI~Go"I 'Ehӌs3֖N!廨^_{~UJNsp9FK?ka#nRTkc#Hr} itp<5ܶZ6ܙ/Řn9wS%^~GpiQ mtaSe뢫6Nb}ܖ3-uؕukK0p0<8ԷCoŘ& #n]s{ wfv^6mۊ^p>72MZ<Ȑ2JNndƍm zhi>urZ V햋/_[JiOD}VԎve/SYYYr"yK[; Qw8GH,Kݫq5#~(.+\U;94+"tn\v ͮ!> v?>u>WH%:Y.v}=z d;~;jpGحoХ`qļou;A%*DU6sV]^aO5FOB;Hھ_x d%p3D@ـ_DÜYjɈX}N,y?&fED-lƙDI߁D`>J*~a[U>i'? ۗy,x+jx[Hy{ nTˤih qL6%$MWWTAK }!CH}ʘ7 HYI(c%(p#z i`i \/U]>z4Xxc9ePRSX$=X๱aEB3}an(ќ= `/Eyhd6[^X8>FjdD֔4j\M*.Ei3?/g)nj.?`S'xQچ{=LfN{x?̟Z.gXxtree fdfb78e59f35814c04bc200d1007264f11936528 parent 9d7a26fdf37209e0fe856083b4685fe3b263448e author Wei Gao 1769135787 +0000 committer Li Wang 1769561294 +0800 ci: Add mount operation for busybox Busybox df implementation require mounting (unlike coreutils implementation). Following error can be found during alpine ci: runtest TINFO: * shell/tst_format_device.sh tst_format_device 1 TINFO: Running: tst_format_device.sh tst_format_device 1 TINFO: Tested kernel: Linux 0ba9f024d6b7 6.11.0-1018-azure #18~24.04.1-Ubuntu SMP Sat Jun 28 04:46:03 UTC 2025 x86_64 Linux tst_format_device 1 TINFO: Using /tmp/LTP_tst_format_device.XXXXOajpgN as tmpdir (UNKNOWN filesystem) tst_device.c:98: TINFO: Found free device 0 '/dev/loop0' tst_format_device 1 TINFO: Formatting ext2 with opts='-b 1024 /dev/loop0 5m' tst_format_device 1 TINFO: timeout per run is 0h 5m 0s tst_format_device 1 TPASS: device formatted df: /dev/loop0: can't find mount point tst_format_device 2 TFAIL: df /dev/loop0 | grep -q /dev failed unexpectedly tst_format_device 3 TINFO: AppArmor enabled, this may affect test results tst_format_device 3 TINFO: it can be disabled with TST_DISABLE_APPARMOR=1 (requires super/root) tst_format_device 3 TINFO: loaded AppArmor profiles: none Signed-off-by: Wei Gao Reviewed-by: Petr Vorel Reviewed-by: Li Wang ֩xPtree 21ad090021e77c76bf3a23f3af8cdab645c2d8b4 parent 1ba58805ea5466df5202ff2e7b5b3d0cd5c81c37 author Wei Gao 1769135786 +0000 committer Li Wang 1769561292 +0800 tst_filesystems01.c: Add test for .filesystems Fixes: https://github.com/linux-test-project/ltp/issues/1243 Signed-off-by: Wei Gao Reviewed-by: Petr Vorel Reviewed-by: Li Wang h݋`xTɎH>uSfi5Y\RƗK&`V؆P},yyRxs>F4O$!,Ȅ!H)oPف@ 12A""/Ҕᐎ(0 5X5(_{-7@ 1,Q4EaUiסxZ5q(Kr؀e8'JSdYQeRYmڦv=9"Vޘ*Hv\k {~cG#ܐ/-I az8issu;deNp +ͨSo޳5څ"0!6| xs;޻3>a''|YD0! TQE?zgG⥦ŭwF-ujyѺ+rp zr^_ Lf$ckLMH}EW{|mV\ռȶW8ly#u6:b7ιNKPx''+u\QQigExUgEw?)l{)d):/NU,&RWqkqPU~؝w^X=)nS%Ug&nf K#LwPXVQ٭p\2K0!R-͐5qz1(E~2e VoZhs\t:t"nUy ɵh]6_@ԥޚin`u 27QK>S:V8|_ceYOP@0 Kp i)65d氊HK7ag/ B5*y[$T-Zojm\R=GѴeBsjAD?eC,pr]Lp8-ѿS8M$]W ̧gtUyW c4# 4D?5HbR 0(BvGXQڥU9=__F9`*_jNw}CS0,:-R0߀{eA1{0(%:+xItree ae669613eb28ee5d54e134e9561697ac82ad8401 parent 1840ee23d172b5ab04cca7c2acfa48755b041911 author Petr Vorel 1769104434 +0100 committer Li Wang 1769518557 +0800 lapi/tls.h: Cleanup ifdefs fe24196ce3 added .supported_archs into clone10. Therefore there is no need to keep architecture check also in lapi/tls.h. Moreover "Unsupported architecture for TLS" was misleading as it looked as a missing arch support in kernel, but it's our allocate_tls_area() implementation which does support only 3 architectures. Signed-off-by: Petr Vorel Reviewed-by: Li Wang Reviewed-by: Andrea Cervesato r,SxTَF}+}4M$  KҘ6w)QKJJ%9$ XA9/JX$Q.B%$c^a YɱYKA$0cAN0Lxq h{JW} ӯ$rPx 1i[ׄRWૻ?Pd鯱swXX.>n3d5UJMbu^dpgYcO^%j] k/UĀVvJڮ GǏ8SUI!k$Dža͚NF'+v{plU]a2[ng |s;[Vie>cgFcMϳGm{Xc\:>i;ƠZq˙5.\NZS(Kz!S)C{sfY7;D_mdw*mEy77%dd5mEp6<^\鷺yҡ͊>{Csľ W71Mip'P ="R h PYLcP9y2Mv'V/=opg"A3 ½ ޓ\g|I-!JolH 7|ܫ^xTג8}+Nuf0˖"0hazglmЋT7{uá5@@EY X,8PQ("TP 4`K B_9*/X5TUDMdj*-I I E1_K6?^UtuY,sHQ$18_˂[TEMoǴkGpY/O96s0L0"}qGJ猪ZC-".9Vܷ͑w9[y*XދEyQ-kW6QubzcKڿ >bzEBH8z(mIJGgV owXW6΢ᾣx>yrSg'ޣ̼3q&Μb7+=%kfV޺[K^:jDv,l>FK]ϟQ{rUdhĚY:ۺmI$4Y G_f^~ػ<%3>rڻp7޻t|9DXNW%4E"^< -ޘ`[7S,=EukSv'T mC n֢5Vd7Te~ÃNiF{YȖw0HVu gJ/B6Ue-Uގ[p9HTG)oƶ7Msoمz56eo4kg[2_-yCk{cZ-h\g }eMcH1nZN_&=n1~2Q6 IMos҃IK0I0&y[1.$ hP-ж.'%i7B.ɄQRr ɡ?fW.tmKMy!ai? |)27xRn0=bSPȁV)FMEI{D=NiU?~Mv/ly3A)<xBC79rM\>c=XaGhB}u}, ]oR7|HXk'Vm`Z/5-3^0(ӐRb;e -A-Y[iEʲ>@>[ޥpb4x@[5~_keͱ1n[XuQ7mq6-VIƫE^Vu%{O 6J%HJ(3 x4l#UsS~.w6\90}ÑS5wH7]Ԇy/^~b-{-7J)T]r> NvE1^@uB-BFUS4)Yۆ+36r*X%;M +{R j%ʾ{bE*K&95HTbJBK#)8_O||70=Mls/W GGTUۨ*ðdkxs/oz:TkީC{1 c/j8_-V_bx9|CZ`o94fjE5xeghk-j#n5\%KW kse:WxvI)]QSWTs PJ^ܒM6_M!}NEvXdtի‹E_5K` nvrطbM77ciDD1"d:!«vAa>)qY[ y~k+\J(<|wMʡvfނя}U(Q;k{cu uZ:owdM?T+2Op|9d U3xO~ ;h@1I 9|c BL 'c@uF!IKIS3? #m7gP7ܟk}_υ͠TxT˒F{{b0 Iiш|5{r8TEEf塪o1X$8AMY$q"ǂT[\UȘ$@1a+q*(ɈKq JZ#&-GW7t=NTv+< hcY -{܂=[p$- (eMx \m\_AYZx4)@ܷ ]Vn=M 8;d'kg*nPZ_ļ]Ŧ>S 9ss%M#3827lL~Hlj9 -G~𤶾^nY P#Iٓ_'ygEH o+Z9I"H\*+jC c-|+(p.م*V❗u=֥AwZͮ3[1(hg'qh DQ,r+,2;z,lec`e☗:)OV8jOҖNR)Vuu?'% J;S 0tpV%ݔI<򵋉)L\ysB\`R9 [\dL1ǁϙ])w\P@Xtbu{DB^\c/<ثW~QEk5VjZ]w.2mЛ1LE9$ߝ;2atLs-_{_Z9ER{n GB0y;h`t(kiiGD&U 7umUxIF[S% f06`6O `0ׇD"%rkQUWߩaqAi d*bKpɤ1r9y'<Q$ 9S,Ѿ]yU(ߔМ;i;loVÎ2gFV?M%tiS~ ;kz(-@˓Z?t+]./'i2uWx ZV2ʼn ڈiW 8;%dTnȎ!jNR VLJ^i[1tE\Db֕mJ)9F].)Ev%nYmο"Mtl{==brx/j1AW楒.@Tr)u2~w KgL{j H!+]S7}JNSU2imk]IQ"lP|앫-oR[=s. %]l :O;6X(ɂ幯UCjݸ%^^J1XXSݓ{͎XQH_t1; D#?r˖*~ Rg6lxt2y wd xI'Hrτ۪ebхJ[ 3&oXEK@nqbI!>Ujv?G3`CC0.A a=E]~|VKհzo 'J`řmKso3E1˶{`-N/(-]QC7FE~/)z#4-ڐj Rx}I8 Q3RuC 2R<1B SWj^ؾΕ8o1ˉtLAZB$ň<)@#XA$Xp\Xa!BbȐ0I#,{Ղ+ʀTsBiP z矀xAdE\ [ϬQ \ԷRk[|ĕhʨUiWɚakh{t>h} ` ,I"Ii)xm^,v㧽8ԥg1-sn622"/瞗jT4 .uZ'*Y赈Vu$WHau0-%"-ã|!h㱃Pi}E%u(?s}Xfph'JHl2E_w1xɉzooQfS08](oݦe[w/*)1>6tjݓ;D7mIGcc( ϙ| z[>(u/$kb+|Ӓ{T9X?ʺH]5X%-Zպ^YRI; 4|xYx.kq2g4߇]JeVWFصR;S3 i?Wב~t1#mۓ0ǀ,k㺰aKYpLd]RU[;}$_ '<̅cBas!MW'o Zd؅F/J<o?CM都mzu 9kUQTMQZ#u[ >nODB2g1ѷ, Yuu&@| R:fJ._݇1:[3TʛXQie\cTgO?Wne_=%amY$T}!x.k,[l-6J8556Q 3HkYhÎ3SwV`6eAs; _ ;Ԕl8})u1HК$ViH:9vN&ݦЬ,Jkb`tG UY/TӜ* ?.Jʿڳ}/n?ʮMZ~;@#J[\n`p>sgQGB'j7p9NYlR x[:t8E4T.J_N_5pֺ Mz9RZ53ȏmfð&gWMjGG3kG5㣠#NZޭ}K煚#T!y`"lOV=*__*¸Gxf{3[k LN{I)+^XsVMy]w̺5bO2Lm0ihΧe*Sb,cCI'E~%AUUYڼ Yߣgڶj>VbeZ1#, )i}IyyO}iQN@V݅y>;s4XS$?dUxTَF}+Z&B3nn%Q`l^;i06۰3E/%u9O5ƀ%Cː]2XMG1Ca%'rK j\ǑY B S"E0Ea@ XA8q~k5ͿQdy>) Tyڶx%UҤ xXm-h8l5K:8ỾJ:R6vhy}woH9rs4lEP"䘗Άܠ<d.L!bHzf>lL֭ۙ[QDo ࣰxbdj!Q|'Wۼ&j7St_$XZ8I j-DsvKyt7o+URn~f)h_ {NĹ:S*3H'@J3 /.'%N,ɦ*nXcU$ǂ,^1\ =/FKaoDzҜ7,T=24£ԗg'3B2]%tMӡ`DJ =xkeBvr}'酰9nߎիk`Z(sg's=뷮 g#d |lq$Z =w?sx>)?Z|DMK[-~&΢!Hb_DAuZiYhgU q: +H u^|Ovɭo^>PY*K34}AWJCs(Q1f ~+SdUxr,K]ԄLӔd| xcm9-|8GqN vea:cd4vNJ˓J.nMSm3aPH<6v_ifuh>=kzz$j|l,\OlX|gm \+d2ͨ`!BT,E *×Orꛛ<-<4/T=7X)^P|zi}G%1"Q\~d79'L7$Yo;<ڵ= 'E4G.َ/H'ΛDESv S=dZ;jC^W;:\!}SQ{WN,ُ;zP`T:ld跰&uJj05 <:p9ob"LuJܮeQ vhבan&fΕ|F H."˾;:bl&R;&G|Y?/3ZbÞPUZ k$!ĉ smrV+=lzj:ahŶ6Z|]Z%0M#u.cmܹbp0N}Ukudy%\!#ZpUiԧٿ١ӈ̸m'g-~3Qe:"R@/ @@8ě9y h퇇hmFQ_ZXue[ T5^/?W?\uAERj̾Au;>߾x}w9a b8^eטΘRxTێF|+j1 c{_"fHQ(nF-U !"L%E.CHȱH✣ڤ#x)rKS$\L AE9R8etY.u{##(B!,dY*mnrH|2t n:Rvh&+)_-/_O3|>4@8UZt>+#yV{.㽒-VXW+üSaS{P ;z{DUmsk& ԵbW 9W2V)\7$X$p H=n0cB~yy/KgQ|aFL_XS>NcZc|4df_(hJwO8S}5 v(4F3WI蹈$rbtpVj}y M0OL\l[?@2l<:oϝ?hrKe- Y>>Un~vl<l&R9x43i07V)G<{{4z`"G,C_M\P Qrzx{Hu4kS>Cd.W l֭Tz=U?NٟeghO^ Y9en w5>$ n'Dejҽ.cAǰxf-I@$τlU D6\>6Ņ&2*myڪ_zy┎׭.; $Уo*_N2=|D=mX y ,0e]e??WmveQo$P!Jr2KWV`Ս[znƺe}}ahW)<Ϭa//m\H:02XU d OySxTɎF1­N`;#KYP e*2'äh-ij7-k.WȪn=p0uݧk)G<;NGaBPYc<ÐHg $pJWDԍ~9Is jkA@q݊Kp:1gÖr{VD^3i3ܺ䍂\sь&Ol|UޟUf{YBP!Of4$m4vFvE+ጝRʾEpX%Ow&wqNXNƪRhs5(r HNO M(T(@᡺_n.sM;[{n$Л7l3A f.i3. )=KHD6f݃iT<l]['Ùnrw_K&+(%rAWف(WL]s FQ6ѭV/GNJ[d2|}]lsȍdRu1`76UX]y ƬM9dVx^S~{:VuugxnqSiUŸK%ޢ/Q@>~76]\=X7rdїNqtU 3Y5PQ՚*O> ZBy+InGdʍ)ky{(pv@kw./׋}+Fua}A$w]^eN@'8L@n((gN4} j/?0>;߾X'FHӽt[x]U|i; ]n^YNb?ΥєRxTٮF|+:Da3ٽ%b`j97R)J[*G<+XE:Xp4D1bJ5E=jFf $)EeL,!LPc$21x"ƢAO[ QGӀ~Io9J)HںzࣱǶG=OZ|P]>|| |;Sw!Ծ ,U$Yq5͔UglCu+|c/^%lz>c7 ƌUŚ =]$9t2kylOv<¾F@}ӿ\&ڪf2Xsβ'dz״[uȎR=ց+oيyӲ Fys~k0Zʨ!v>FȬ^ oj/g(P8fN$hx#LUz]'!7f*j ]=0 C'wƉTU`*Z+d]qִcȎi a.Bҕu_䰯pPƒ鮝VT;˼pͮ0ۜf.kXY n{`kFٜm]ʢu^uW:͂IOL4[&)-d&C=aidPzU7oe^݇:5F; QV^u6.uHrZ6_pLp <*zG"mf$6e,ey1w;x1rDfa&9&x]ż:Uf=_<ՌruNmpzB;{WZ۰hYaK_קLt#m>jO )0iMjz8Q#~YϟD=ߌ/? Ho $㱘_9CV^_t}{CHV[SU4(ORxTَV|+λ5}M \`HQ(.Zꖪ!Y%bH1 B9 ,X"@sH) !X8E yHacZ Han*iކ1N#sIAvMS!A4K7ϯKn2AyJ}1Vx*YMx|Sw~1d)${IBZzjJٝ.[{;ւ&5<dzg2V,tkq9I,Q4y6]7UMh;lzSm#܃9a`^= O^?·\c;;]<&#H}%0.ekګHB]g5c'L.tfPn+w73e+9uj \0/`e' Q X DZKd*4iԣ^K q`h#Zw '۝4MpSOO>Sh<_g!)pc̢^lVgM 1 $UGا 6ݝjn:OO=7UxyRc1`M*08ltj=2QݖM8](c< MJl5̞mjɬ˛iz:;b)?^6}³Y[v:K_{^~x'ǝm8XuAVP naL9`B,DEL$_ B.iNRO*cҦˏy䠳8hE]6$xJ`@!ḫBVO!1VŶP$+B8M_—p=әgܜVc(24[ IΜTg, 8y\Se9Q}Q gܖ ST1ӽ^嘮?ڮнr{!<{ d4J&8Άqtqu2`O>L˻dGlCNտ[fx\?ϋ,o*l~fi4?*OxkeleP("cWT!"s|_ ~) x340031QHMON-M*Iѫa9jet59uׯ7+/H,I(/-)LOO-tznwDڝ{z 22*@6K5_ :K;IΫ58x:f/E7P8Uk.0;zo'Mv'ux[˺uL& =~gM\ל=b |y &x340031QK,L/Je69F|, NZᐷ!DobvjZfN*KSon 3jKK +,>Κ4d|MM~ɶh6f&@W2jp'irc 22$2sJSR ~&J[x#2'Oe$%%3hW}_"!=je;94e&@eme5ڷWzٝRtARV[vۅ#m&Zeycƽ h@ny4DwVt _?*LO/M-.*P9s+-=IweU&LyshÇ 4:Oz[ "El2a3;fӅi'd~,c;r吨N-bTg|EqK,1xq~ GJu[NRv?+ ExE9Ixu*g?\J100644 clone11.cT_kN'X6"hN, x340031QK,L/JeycjӘI7ns&C*Դ̜Ti\koL:RĘ6P5ũEi9%i)z  O?5ZM ;X_ې;D; ݳC,(5*վ?1ĎZfs0A2X|W8sEUBi?ŢQRw߷r pxuk?9y^s!+[2q6&px340031QMNMIehŁ=Jvܜ 5Jef@Y[\̐u(/mv񻟣KN9ũ  uxT VkSUt0 h +mk LDRγ*S: "oÊѴix0&%.AQ wx[͸qt N9^ }sO"F9 vx;|yC}^QsNTZf8v2` xym!Uj]fGFΛ6S0xmw> 5 [k0݆(X1'{- Ϡcg8a@m8ݙldzl MlcO<ũ[zdsU2 :1x340031QK,L/JeycjӘI7ns&C*Դ̜Ti\koL:RĘ6P5ũEi9%i)z  O?5ZM ;X_ې;D; ݳC,(5*վ?1ĎZfs0A2X|W8sEUBi?ŢCANZ|af@w#]qxoG[M2gQHVFȑʂkx8GkM⒙ bi6X=փ+nQy6ۏ'Iœsҫ x340031QK,L/Je4O!OrK`71;5-3'AKko]7ӮMv]!TMiqjQZbiNIZ^2Cq6OoVa?w3F@Ww6:+QNDz ,JJwsz;ٜ)EoA d8M x340031QK,L/Je0a³vC٪{ !|S2sRnrx+-(Rq[;tذ opx ƔY#$xxNXE z}$r.`q9Dٽ3g'=^/Q$>H$yg>Hz~zU\g;:k\ڻxb>;qQG.Vg1}c^KէU,>d X=vbZ7:տڙuqo\cB3;߶?LfRvIaKKs6.eM&fLڧ:X 1x6~ar4lfe! MlTyx %h@![:rֵ(aRsi.,4כ|ΦĒ1:yݺ3MnYͮOޤֹoPNҟtZt\]_U]R5!U NhkqKch*o-s`XZTXlBVL}L7er#r2|xpT^APTS`Q5^-@?X緮7]J28&Q|f"fhh= 1%hjd3F crZN@s4ŃKFru CI$WRF ;j!!}L&Sa.d6 lۅi#l%bf!ٸh:['9'vl=Q[ح.4_~3:{<0~mm;d6EG QeSRO 4* $E z^P 뵪B|T9DOI!r6{uDTzGϡBGT#@Ommlv|MHʵfwޯ/ ,5vǏfIVNT-g<"0G p̍Le .>>!g(?I4aT- w@ zwhla'Оr \l|2P oTRQ[c7{g#d5+; }رZ- H9 捅c5hiz\5NZi@h5NQ5R4pe@˘NNr8|֌aM%ܳsN椳`7䚂߼{ҩ@KZ< @huGn۸;Wv1W!:45AP_ WiP|+4n@Pp5H+|?$?V'zˋ˫?g//>=|3|<%D:sIlEB!CkCqpk٤8s g~z)c63;׀@hvnj;Wg7l]+v-11yg)| _vXBUvJ0v08ӕx7ǵE8+Q4iB辤mzte@ԣErQnRC)bj_Ӛ)A*@-җ s{D]iݒACKp)=Sv (4;{;VX5M_lo /00GΫ= YE"R AJ-+tE{IT,\;Y3~c69jN?sVHPFPd tbVp|NHߌQAT .Vcd q0$MGQ=f!E&K E.`S1-{MAefHjGq Pa[<|6~cO c+9zWAl%Ӟ49=?ckEtCT"NV;6?F$ R0I1cķ&g셌H͢2 Q9Ɠz (LjUj)ei[xrU{Y'H>ۆP=1%5<vg@^ L!iY7ͯ2ɕi+n!- 82|Ow z$ tF:FԀ4Usqo;$V6|۸[_ypl}I])q@6oYCCS 4wޫ!2pJsK*l:#ļ~Įr7pyl>)_?]CeS%:d05q^Kt5⍗^Q%s(Wڋ5@oP^3"C YsEWh7%FsjPoT|Vko+~mMo W 8Ա,s C@gX\ep`~SR!%{Զ0b5f),[eBQȚu# W CF t&7wXZ|=6Աȕ]}tg6f EboX$h:<5dduYg( ''N]銧h߽Ϸғݽ0ra^~ſ#(in&0 U.(S, &-EQ  vu!*osl( ~g0M. bq԰DˋoDF[XW-\ah]ZJ{d#r}30E\ 8q}-@@#!j/int*ҁMO9Rjnf KwJU.MW+zi΋ ]SIL EsSL23V#;~iS.4ǯ$o]* i? S@=¿6ŭaݒheoNH5ÇvE>3jS$o!HX#B5KgP_oUq+˽sf)`Rv89nbCUhYmUuŇ3i=x-Aݴ]yR.eH9Tp%hh\1Dk%דy'K8S\px8 [.ĭS6' 45:x%f)|4 7J"k V>w1!>N/˅ k(1t(!X 1}r&@cF:l] #ɇAӥFUBY[FO\-Z-W$֔X\,Z+5 1 / @P+#4[-3Jerhm}jm7z~$$i[& d 7(ǀXh;:yJ|=,j:᭨]Q|o}\yh '.BSI 3-*$RJʃҡ8VuJp'x zm!f)v2b4cFTu2qcj[+{9*5Z3Ǯu*/ µ694w} ;z"s#S絷\vvU4:+Gc'H5KewnX=~>jNA"3Pp>~xЧ~C//Af!FCK]_,Klu;p`-LG~*q !m%hkW 2ezrwpekj#x/_nB-'Ώy5P?L"kd-| tjx/_nB9Cwl.~F[`xmwׄ ޻d/܇몼YX;vM7w\mJ{Ȑ1>Ra411M 5 `8)l f+ @ᩌĜ92 1N|x9wN 3uWMHDZ@m8ݙldzl /nCx/_nB9Cwl.~F[`ox/_nBKH%4+ؽ xw-A;&Mx;1'{- Ϡcg8'1UH V _+2 xVmo8\~HV[Z VI$bձ)Nt &grq0,Fix±r|>RH0Ep]7#z7V]Q(uW8^O]^Gx; W{JKE>T^X E22\I )\Ne܀BPj [nRgar$ƕ; >*_X  5)lS%b FUp BJBGK.bX =qAy3].epLð\IH1·RrmqykSzYMP˯Y`(*.uPBhXVNka+t{%@rVR5ؑJiB3TjiRtڇk*Q(&9d&YFT⢔͸/Z mmK\Ren(^U8SԐ4Wֹ6*[e 1j՟0`Bjm:~1S! |hmάOoH[ {8,xې[ :.yA\&&)骮w`}"hݷ9soC ]ֱF|o4·̝ 7 ~w.R?F'kН>ju4д2Vco*kO ǥyU`mX'iSmhWN2עޒ笔o$m4Qhe@>vn1)H=zp!w_#wI^vR]< a"R+,ۉ$`e l>4:"Ӱ!"uYxtN aֿ?F(M8~y:jAp?YG|ւA Mmv{6(,c#V|gobEhIɅhW e,+n-Jq(x2ϭTj2|CM=mGؙdž?KG?l8J9/<^PSōZZxt:[0 4!a8qØ=:/3@&^FVa,Nȭx3 ERMmSiW|k+SuшVVCjЦ$Bu .ve2Qr8Հ{a8 2/ 'T6UxL-oz_[kh$W^0]P;1Lh#/mh~&BbQZ@Ok۞DBl>5Ǔ Fu_Rފ[cwLQVu<o\²%+ ٣`&-<)I63dONu.z#NPdI`2i$lpEyVLo[Td}{!4fרPi<jRs xX[S~ƿשڒ1@H& ٓRET3#.'?_$[v6<3=loQD˭@&& #hnj+Ff6$U4rNZ4i4:Anf)/#?EDc#7_~ѹ@e䊲TCD ?f/?&n@s{}{8-0p҇OJIď$0Uiآ{ITH(M4ˁ[1$\SH+Fxy]0k2-.BFS=K`|z^{bgz ]OW;zW !5BL$KGIq Ot FNC"r5Ohz;ý=/z=v+C`9 f̟IOPl {tQy y{7wԦ3kqȐN>^\iuE\w] ~E}w>?P˛?C>¹FBXlksܥQ@(&#ڤ$T*ό*1jnl䉎 S$>j|ilԘ}%<(״*Z66C;xܦ&7¢B0uú "_O7|P\ q/\dzSD^Ys4J{Ԁ  ƅd"6k\@zD{m'3/gNĸg !G9OZ0ʹ_óu~&.VPO:w? GJd$5ń]/e足X™#MFt?yJ$Nw"4 iB&~4FCK}??v⇁ ȂyDBL"n_|u>oX {B>KCVH34.L$C1Bi%E@2M ˖Ȼ7#Py1>lgڡk1ZuĂ%Ԃ?,|>ҭTu,}cHb2rUoƗԯ]0VV `&E O;%=Q{ 8K`궩N4ENcKzz%15ke>vqRg2 SPpj;l˥ ?_[5vPy~={h}Ŋz0sxzߏ?VX/X{f>Dj:F/`I" ].l b?7JI5rX]VIBO=b_N]{6M_/S:],bVWilH0Z{$.H {Sk+fz̹0KX8͚V~!w= ŋma{68aZYYX- _.,{2!|ϛ+̃2b$YeFm Ggj$ h o"6Dv0mN] , n^"p69( 'j֗&<9ԪtwZ+ZrWں>c9>GѡY/08Ӈ([eU2Z`]i,^Y:sFqz>!̵d%}\u$yIɃ24c[a3c Jۛ~F"-lm>b/uAYʂO0!:efY|D9X{k 44tA}ou]1l7ZyX@^΍Zf O%`Ђ$Y,Af=bNPESms Z0̈́l *Ȅr!"L/7;UɌTj2^!HGΐⲨNۅ~B#FT,2BE dU8)']G>rX=}-A鵐p._ZHk×+ :==ha*Sm%k5tYx%_(1j]wX^n?[ b)H>QPe.nV$WwyۻrJ.$s8B V(^07S%N?n-#֧]>&v97Fnm\_;Uq0J2R#=C| d'L=K-Qj[ ۧpAm{w=tC-ϵvBO,ɇ+ >@)n׽m~rW0V>nk?wejC]<` UGuDd&A "ph{'1nȱK}mogz2l" l~}at;=QV5 .lALJ1r+emZwAW{M|ʳi󶰲gk[Zm]  PfP>>7NY[e#E wyBg51h Ʈ|<`bR߄e+k,>uIy֑mrx`[d r-ٲj!>rA(;XTҕAq3̽Ķ5kдAKhY 701/:r!$[_bcYzf8ȣenh`lt|MեÄ**ڮWV&ʔW%.|b.mE;?V#xZ[sۺ~~9CM>8SEUe[c*I/áI"5v$ =mv !1| ݟ4LO?|?8ڏNi>Ik{)1F?9&وryd =p} myNG&)YF16acJ\_>q|Ea飝(}'%3= "JF/$I<']?H0p#'C6N=Pd.%{O+ a<ҥK2Ogck>xqRװ,߅ e#!y^1w y^AqQC@ZfA&*{r'X@,lD)@͚ 4Ұ#x:[w.;\Άk~7JWSc,@(O`T|(oxZXdZT1fuq,ZZe\C?E 6R`^ x}עL~_Ipzz=eMQ+&il[beGbϙ}zq2K^P"*e'Le"s߾e"N+<&!*'7hUfr41?K4)Ih̸ʣ:U z:s(rS"!1;ȃ=_ )=Tr/N-T|zsy %+xYI4[  N@P"#H )uˍgc~.N' T)-cٱMϲSwtTܳxYRO{dbl0qlA\1? ,1"KĚMx=#K#a, X3_OtQ ݡc1/`y3uVco绮2^iT`z;w^ Z{C]t{#kf/ְ I`yVBȂ>+oޜ~5xA# >ߜ{s_aܙ>B83CX# ``^rS"7F`z6EӍ7wBR̴%2=0̴iK?K*QX!O,7T1fS]]qcx01[3 GQߕ%p~mx/hlY sSd\+}/~7qOp.%K'}ז5XͲR66Bs2Vي̓{w 'SBGv7-ө)f9bGiT}Tޒq=p#kgN$nZ;"ܰ?}]#7>]&lͰ؂mk3؀ۯmokO7b뵏6bN`Sk[ *TxWv!DO *NSE"hnǼ0JjVDfJoVDgJsV0G~ 8 nH;cROBHA }mO} т CfX&2'n2V+ DL,zdA1_9V,'ٷ1WM܌wHIU/kx䉓e <1I 4& k-̢ ɖhٶ.I$ĕ-.BgwAK8>~V+=ЗW~:Ȗ'b.W,ydI?0YZICx lsYzMSCE>TmgGrALКG-D5Z2>!UNI]'7ew4J i3+\8onX]=Dvl]z9վOkS ݰp*+/?OfΝYe?Mvx) XLБe?vtQ$ϨѪcM܅}}?2 0_#Ylc.Esܞ7E f4%I ΄Mt?V))[M^n[ D 5| -ObmZ{nt}de5كd&_[دoU},5ӊT;^"B|q~RSRO{I%:t9Bcv`pߧ;㠦~P< tfqZ:F_Q05+Z@DADJ5?9#xXms8 bK%^\2G i#I.[OH2%moW4$ܗGRmpWaH .i5c ]E]BzFgCg a~Yq_e"yr*E\7]_YKP17 pA".f\@ph|X3fmJiˠxD^jV {ּFk_Cot: l8uI ("[/^b̆ےpW/QVqoa2>g? ewxGϛ|Mr3\N^WR*`>e౩+A`-%,[Ad]ZкZISP_*;JQp(WF9¬'"2R R<$L>Xi6:%gQ6=7(ZbMX巷y%Z] $:ui @D3đdhss^u {~ao̢::̬iYi')HP& w}m؟`GP[{ZjVE74= d[o4$3?ftO2s֖7m(.8a6VSd:^mq2t˴}SH2ֵ!]uiIךs7|̜O4?@ @~J~&~P iQJh1ܗL19/$*B!@)xt(f-30Wxh{AD{{~x}UmS8=ӹI:q hKrnxi!0uҌG7[v%9Qu8/v}G82SoG]Qj : J#>^tf eٶA@݀ͭp |f [/l@Rʑ?Rc 䜞8Q%a4gi L&0Kt7g(2J!7C:)``#5CY2t'$ޡ24Kq ]TpJb)WVPw9ǧQ[|oGn܋:76gR!)> _x.b\A^:j{ӍE*2ޝͧoS1#*;8jUoL4z˄78{i Tg٠Y@H 0ct#$Y8M]SmhikQ howao޾ Fp.;z6Ipwkg (m9[AEGcUF գiqit9qRLơ2+b*JԒ6qҲD ˆ[G 9cqA)rԃI2j-d9,(g|/1ѱsQ%6זMV$BD.qKC>OZes*f3L4+b[Š=z\0C"#&{_Ɉ X5/4aDwL^dl1Y'<5=Z`Ӝ%Z}7GVX/V >NΏnj$xUwU kގvWVNU1|,5j0.mOE .@;D>e3\*UWQ8?Wq <:<ĹW=TQ{RmV9>|0Y(KҰny5 Ođ0P6g`֧WQە=A/ Li`EAɥPAq5YakP 8uڇtkeT4&tYMyM'ZյFwH1%P{"}y V;p:#UAHBԪZkiHd=+.FVwGJB}GdRڱ X7xyA۹/Xmdas۴juͻ sxȘ"rδiaw5*h{ x[͸qt?NXib{ x b|1W/dcvS9qx;u$jkrFjrfGVFIN~xKIO,))20JHl$)i xλwJV/K>LںOS{!Q8hD65 jx4i_IqI|RQv<1\#$7//3a.Gx lEJ8!W)~b sx[DA/=$3=/(p=_w"~71;5-3'C{FF])TˆO2bUl_𴊛:.8/hvͤW1L_b+j.Bv୛NLΔU!,]QcЮԎ82{w_鼤|.{wJ>8 8-C,mXYɛ E")~jlԱU>wU'B[ZSyJ=F2t9lLp\{m9$+Pjg.5Y|eO.xPb% ;2PS3UH"6idyFdYMvEx5QGGRB/t5ؒ0se@'uڵ ;; KIz AhVΪ}u~9  *Ko;˽CX#-6OtN#&P!;1Q-~]:?w/8Π ~Eoo}YeK'J s x340031QK,L/Jep^6cqدn6MNMIe8A6Onk}/HK,120Kfr^]|' /۲$MPY[W'>(uUhʌ&8N1~EOڷIjKVOxδiBȅj]OJ.e)qmK Ox~}C(HI㔫9Tt:5Kɜ - !x-!6!_KAK)83Y! 5/HCS$D(q~ J S7x;&Y`B>/B~Aj^b>&~B hx!tThB0SbqfB~Aj^b)w= @xeݒ igi2*0ӯ^CDOŏRT,g ˕JW,y w5(?")(Gleo>‚o*;59|«MJxBIƇ. XZCyG|uq0x< q&Od,)9f2C,V'=L"8laX ;j2̹,F\ lH>?m5%nxm-eMps:_TbBO:^㜈o-"qi=vGX|=,hg2|`ۡz/ {Q`:PAd4HaUWQTyKyɼcF /U _G@CT|d)a`_0]+Y8؟m|,xδi2"nlͫ\>s _' tx}UےF}+dGYqT@BB7tYl ̀XbF߃vޤLMS9}nZa x]#}I}MW(P@NV8 P}AS9UPB$a +=XaZ}QV?ɕ~xUQ^D8㘠ȲR_QdD^翑2"qiMl&+'6֛ ׳i0qlYJLGuRP͝vjc#ˌX\S3ES2΀ӡ1N,0*ߵ }XqreK<Bɚ gI0X֙9Y|Iq{U2-<}C'E3޻Et{ڵy>'*[{(]$eU8KdCi㸧 mH+vRsu:+M/Z6r;/e1mhbښ9seRQe=b{yyN3>lHzŋys#5nhVj?ziHrkӤs_ qga0{hX#6ye=z**opo.Yԓ}EԨ"%y56;)Xf#oT*[ ևxfɀS':_{~H\h=9:3"dcBX">W0&K h\;.Lj!ɮtnzv7Ba(dsY{,Hu(ƪ7eMJal(+ڮs~HPTMDK+X̍;a|W,#䷢À`Mfduw^RQ;zb3/ %N8+両O'(] GOU }sRHhGy @]'` OUp}0D/zN y O>1Qx,(vIP%%"!B /hM5NЭ _q3v2”vw9 f<:˼aID$.t'/Z/ qw=="1ʲVV_#!wy˴KH:uLπ_:!['Tn'74$4:LMٱL䭯#mH23.w\hY'NNtMiglֳUOmUߒؾG6ԥMg7w2MPNNpRRnEȖnPfC63w$|Nׂ2s~:;Eg:vvZ\\]V)LJ]y}({;3b~Y9qF3c:ɱvteZ1eJ]rDLI;.z|4p1/ǝ'Qne617W+]lcKq~%#&56fuLGUO;oaRqrʛi;H)2CV,t+5oz4YcN1:"#t¡JQ( *Bvp>9a_Rs*dfxܴIv CCdSڹ)KS;Ci\/Eeq⎷on ޚ͇wۑ7P2wmbl̤RmVb'6[l@b{{iR'ű'X^m+>YIt w4(mJA,+H*\fdžA-r#H'g q|pg H5*ʯ7E^b{D"`qPO3ckjPPuэ +ԆľW6O> !& +(`yElw}(G.@IiQEa[:F7KG r灴Np\$@gj&pa_hKG/ÛxA_SZ}01o.syH`v`h[aXwyRYEˀ|8rpeF oy .. ,0!,KT wӣ¿"U/5N#EaH dcEQaWR0>.|xI$0eg'#j%$#n^z .z,EI_trHN0|zǤ6xP͎ )j%[zY*!Jbm4ظ@OMEB||?ytM4nGA5xmׯ :gW@h !5:.S6Qw`WH'FxԌ@&>8}&ĀL+xD]u_۴aNnv "]3CbY%P߲hO(:|lF땶݂uKRF00еZ]'.oAVVv۵o~7N0:=JPUi%EPkNc{(߷*`*KK2@Jn[ eܳ5gtهAեe&&ŗ$MNfɈUdj _u$V=,?G ВC ֡~.}?=yh:JJmybJEgUZ[OКGTs޽:Mj}%sZr2@*8?KΧ Py ˜o}^铢 >0)9hAk(OJm+LJ{V]! {opItxUS\XT 6xBhÊyp5`kTQIjqIrb105'Vlw`ГaݪxWo6;&AVEŦيU K)V SF"5J}%˿6Y7e} Ѥ0B0\9 &s;B:yL ^BiGQ]0JoE(W-Hƫ{0+%چ=h4- 9qk4 (*_5?X~9L${}ttG89R _DEsf@mRJ70s!)0N*c|zt,YE(I2&;j+N4\!yFP1u wo,6XA2"'ﴬs3ǀn`[v*k+emS3ܻtwff% xuCkDIqRۆ=KQBLnF)Gqu"vngYA`ӴomrqZKSx: wm0i!FҲTVV;eF X&5[.Fߴwo-zŦ FLxJ:*nS‹_^SӋ(GmЏKY=inUNfaGa.غ?AhoF#-m ~H%oIFZţTd V ?~3+pn q<{;=~g"w̏{W>^6[OO,mB["W]lCu)G7%[[qpxs'EU:sD|MXIO{yx0h a8Q?xUһ OCׂq8Ha#7'Hf2# :h8G~Gu=?1ŵ+?2.axuꡱA_GiEW>6\ӬRB95pELwǪPMYl:5~(\dsl06j5;xg x340075UHNI.M/-)+dHg_!yUyOqmr J3R32sjsv94)5?oߑ$$g?։yd|3RsrRlY̏xt.WoԶ7(UdT0uџ¿Jߍ||eSvx}C9W(Y&@޶@OlmCXun}$nRT*JY2ivQ3݈q8,.ӏ^8JA?M(wk%(TybmuUM(+ICTסFA4hAp N{x,6KN0KѨu^GlZ?zO_YmZ p1 l2fS۝7(M8D% 0L H%4웜t"It5//kMM4hp_0%i8-'-Nq"חVԠO?DWV+0A4v5YwG8z04 G Y&q<]OwgIac+5wIDE?Farh84I;3$WS-^E]b$Ujщ X9pt5%Ypd(}`F(Άܿ6Z Sǖ~ rFTiiIujc?jOIy> łԝ)' fib!EɾL(k]hǽV ԧq:ώ'G{m8etxT$@ GB*~ {GoH 0ȶ_`8a7 -.nW^DD#у^8 5& /ZBƠ4YW$_\+x@;>40D#X7E}{gGFC=8lşxN@E!`|xD,rEԪQC KGqܟl$n5 jjUǰM l$hʅ:w*AkMךAr%*/F`*"H+e0&y*{ct-b0 u^ FCPLBX|K0%,T`'jըﰴٝ ws$TT hI0Ax$d+ ml?gņ0A4y>F]{Xo7{l4}0"> '$Xq/q Ix5I|o!,b7!bu L!ROfZW&aTPi$T׏j ^yX'@!$̜! yPrÒ7$g3 aۅ="G`s*L^(! {b\z Hfռ{0ЮJO l7l fKXq@$9MZ@h: w|&|F 0 8eT%)) 6QO/@-.Eq̓)OJcE_tF%4-nJЭ NªLdʒ%ڣ*@ @A>9ql=TmhV߬W;ݽ?ϻ'GO$KS&W>}:rr[X.]x敇4^@ljJ:WR%kr_^{P &I4DVn]* |&1Wu JpESh}>pp/ay(LRgvF0d.C+c-31) ܓhQNڧ3+$R㟱 ѻTzwnaSA}hpF({p NQi ` $KPX,$[%{Ai+Xte2|x\Cy=5a^XV3%崺{5cZAbG(cGFVY܉@9]yV*3;2i &w F= A$ dWmx/ Y.(Yha4)\RG '.:O?7NfAe$kikj]mªN%2i%ܒ^.8c;F*$7̏2o ruXXivAф0S`<BkM`сBnqMpp{t< ҁ&iQz5O zA*TH"(R[\IӔq6'-QI_X:&up/QL1)t QNt&sΆm.[_K2.O"jKV&>XMIC&X,< R\g8K,hY^u Re)B ^A;P2 xr.6ulA-^HPwWKuBJh'AslH?%UDjh!%Jbm[ Zs4 IZa2VN$xE-"3ؤ5(P Q[65nAW ZkTf]/o@ZqҒ!Eb/}/@m+ lڔ!-)ɴKMJ=Jj uv"3[tqGΙ'Lg(0뺜%ަX:H$ a> |1(#:构@Gʅ9}REYkJ r@Ar+9#ɰ,vqidRyPE|͌Ʋ`leQoS% Q;GAV -BGguUZ/|,# TAnһB~vl޸eWN5ͨ;N.Ӵ*7V p b*Vёqp&0wz0١Ed!`WT+HJ;rd<{ eF D+ I,u-,;FxPa7ԄoBÔxǗ>QXEN/KP*1f0 BZ^bl/\AkFEU/ 5ة6&_%͋v,,*F0A?ȣdt^ xH<n?lskZ8tX\x,Yh [ !t2fqlK KyX=]f/Cf^$%rTa-,|w")Pa8ݧCՂmP7LHn^OTWo&0ܠգQ4݅ug#(8JoutTx\U@-]]/@@\8)&dbnႛx|9PlWNJ`{hfIKUM!U%};k{bTc2f/XvpAOTO9MB ~kh=c4Gw4tiO&R*d`E@~2S’aE1{>)z _uk{ztV5 T:#k1oD臓G))3-tR{wp:{"yZun~uZ:Fn޽C5& veKxd0ӹ`](nA׆kX7Nr(|崹J~dl2`Jd巈yE<%+[+>z믪תw5#Z[4]ou %ACmf؂t P7(fɅ{Wk^{U, 3TW{$6)Jq=v>²NǒfѳMgfivtznO@bF==&EJe21C-vä;t674+ԩ"bC /Zkez0%t5A|Vy]$!h,Z~ rSia'GL-hR[hz$_iIp*B^~У_XCt0=uht/Ә2i+YLIx'oՕ],&u5RC{^B=4I<2|^xȾ )yT#|41mSrf} 1d%βm@ɝ䍟IurllJZpUc 61u aq!7WC+U8B"}6+g0vחg6&_sw2/~?* >&}Ew+nxYtB5BJ/N`;)ǘOq]nt^we%}y#G\Ƴ!W#ġ9 D<ݶk\7J8?reYY%ǠL[3ik) u>IJG;Zs6aDaO[NugP}S!U@ZBɧ~lWHlmc3P.e|{JVA7 .5smӿyG:πҭL5SE,ĢUomNsXGKyv%V]I俯c; Xd gBO{=9_/f@w-/twgHv4Y+5ao/ŅQHuSLgNlBԬ Ě!A!tMb\|\Juq9 ɗi4A虗ξKgWkoӯߥ_+|~O<(b * X՚pA[k] "lH;==M!=m|xpp,zى.s(U Ź ԣk,rp(~ݠ#_Zй6kNRdRU\ۓ֧d 1T6>iXLL<Vy0lNbo|.[6&dxX,ƒ,Dc"zi\ `P2 %SUXaH"Ʌ8?eKOɕ̀[N`Bz#} ;{ qB&~{p!II잜JD}Emg %}ܤ7c TٍJcLV|IdlHUT.3ed}3$+EP6)b~> e63q~qe!ȖAPqQw )>>{~ ` k~a_fpI%ŵ՚Ltziu:mMZϿ4ޝ|i5<ᙴX]aTkJ[S𬴖=^uښZ`Zғy㱱/ySxy1sE,a9> M& x M->,*W}՟,-tBOc?FzS$2o̽U{`)20B2?|_&80pIQm;j:]LK1MߺPF/X' 0w$ຶsUO V/e-Jʤ[* !E B#9ɚu)H)JU8n[(CrJ1ƞ1D-y\P/t4Va8'蜉!Eq$8q.vO> n%a0<:>ŻG:0 ^4*(E2~&PM`E<:sB,EgwZxRz5MD¦ýH0VUҹ!=bAs|=Bz+>;tE`yx<> skct~3r*YvѤxZzDG3|EÙx(+%|$A_o(,9oeqNf#*xuW|p$:nDX2} xOܒ<#5lJ_ѹ\-#X|5\ڡ̻ |Tgɧjǭ]?> 3,sA ֎jgglNZ@yvO2Nwʇn#ӏ\IA?r^lħ`6,k:rܐ!/-NFnV wUjwF\Ud-oJR2Od(Hmru9PΡ#  ρې }Iݱ҂6~gpƶ+q6aH,n.jHD:JWO]Sఙ2}bsǻPwfς.߭A]ae3P/ߛj$(NoIB t;se#L*ldT/Wk,FRj#ëhl WyLYy!Odu:GPZN>ŵ(|-tit{̢vζpK>!r7; 'LB|rO͘jq` 7QHK!Q@F6]С+i]:cD%=|/ s9V6@|(o*zRL/<U>2m 5_z".t8ayfNO_ClpYy..`TmQA,n`O`ۺߔb2kYHv>;; |B21f䣮rLSw00!˯TB?{}*mwCF/@!T̍B%M1>(}cDB:2ٱe= Ex$vg|FYahzcA +~KWЎ?^zy䨫# b'mÂZou6>ܘ$OW$)B-2wg4Jˍ!#Qb.6?ִz{}%____}>Y 3"_5 Oڲ}dDdmr Tj Zi D3(¡Ʉ0ń{w+8vc G=HN[pC{;Ko/]:墹p\vN%u*Vx^h찏%&yL?:أ#`=ݎ <?xy\]Ể,ETw掽C1|ӿQWr(~@z~Ghy}+ >-h?ZQ~ذib75#E,YZUy^L*XI JeuV 7v#%0:T^RǤ~'#tاMA JvY<%&CY}|/E1z{Xh esay3 F20h%S>ls}N$ǷX/DŽ-(Q ezCԅCn#NH>?)eL6#c: W0fT:UE%N܁r{Uo^We3C` u}:Au1}ŷ#@4p)5Ť÷EVZ,b Z"TJbZ5ZcBVvͥ4X+  ğFxgܪ =c7Bg}X6N#i9z %p`R? zSsŨ:zdC oqoQ0 F >dF qi* (S@~J4Xqs0K}_Њ=` vi>9(jIL=T5%niַ(aaS-/m9OY>wiY-He$zEڭZ{ fb0&w^-P)v<3hZr`V_c:oH b"b)x/( >0-] d %An{Ok'[Dޗ|?;>l11Hu.켌,Lֈ}Cz.tk ~NMHm  >d.s1€/Ue v3PuPN?]D=( (d:_N* !?+@HH!:̆xW4!+N/@ꢥ=^ ^- ZZ!r~p暱AWq{zGDɾ0!Z ܗnUDH]x?O+YyظQG9N]V0*a_7 oly'3+x ckʱKh!h,_Pb,* 9baޕ+~ cV-Y)0EӜ: &.}JӍRNt;W[~Ciq㎳ OtBѺ9DؒrwGI2 )m; oa`~l+Qd=ߑ`t'_UcG7.L1G%Pgf7Vsql=jvɩ<2A[ہ16㏿ˠ0{'S#qKH'sh:,>+yO6Ie¹x D]GұJ$Qd9rpMV/=- YhijbJwUr^D>y,;=qs`'Z6/uDP7ӕmz(ZHamj e֟^KrQdynVClCkNCkO6d7X(4;Pp:ml-S[*JSl)]#(=@Tx>SN| P-x(᧱Qf^c0~[KxzԢ@?@G FF}CD6DSP$C_; CМ/YXƔ-z틕m+3*%3{T\%іp8bb9 s{`#8JǴ Mʢ=Yj*>Գr.Ng7=M`h(Et?,)ʬҁ#Cߤ:<ʹbs5m9XsVt̐XZ2%"lJ#$LXȝWjvWP+Lz8LoͶL(JJӶ%֞4Մ D:#ן ő9z@_#@x+GOi2L^`׃]ߌ0J\KSܡϑh#&e1.ϐ9-,]7Umk(kA]4)F"bBTe7Z0eX)&nZ ZQZvíl˭|ӭީsV v>1FmdX vQdvzNTL4}RQֺ$BY/x>-@dnƢMTrn;Zhr%z:]>Rcp{P[b,B4)Q<ïcP||vt Yc#&l={taA{$:Q([^ ` ~.n,Jf <(s+2ϓ^`ȃ;GpTsԯqTX7jjg(UF^ rEɁ9cy \m yO %#rOIb=Sqbej<XүtXJ AutΒX>VB~E.U<~t^:je(H_*RwIk4!ыL؊$A^XөPeCYq`EZqsiIy|j_A9 v!ۦuW,Kd6v/{/x+XNg;G!4hKÖ[).J<4f1.epd)P4d3dB1XB:(`3g[?(|*.g4gPM66G Lf:\9 I$&76µU4C/k?Zn|=}z>*JAYV7mh)pPSsSOR{  4Lw\W!E}8L@viV Qy2"{1 OG`FKVq51rjkČیYǙNf(lFIb\./)"C(*e¶zDh 2h.hpf'VBTW/7i[MqewӴ/[ѦiI-zDρ/ցnfut)34Kʥ˜q=;Զm$k2$fw`@6}tEig5zk5rThM[S6 -Y%WZAeqhg"o=@Y =&)M݉L I<9L,h6\̃QshEws|;gMI3~K"OsM.Ddj+hMޛ-@/BRMiq)҆JoyHl!WeMH*}&GgtRHŴ׽1*Fu4|Q1ڗ,񕷠w78Aq֐:cgY Geځ! ||࿁E'j_WcpCMkW=mډ3RX7:M{|D!&aK,4b*GAvl qsK=BIL UaT4=:gLS(xt/[>I2LrX'_}^Fn>KcTby,$t(Mf) gm7fj(Uۤr+: \+?pXh[ o#+DX,7=w8&翋aلo:Hw2 #+%` x(]v<_QQ A|Vv822rU&S7u ,V{ȗrY(ˈ 6190Hyuuxp^s&Fz}pN-fmqonp70``{O9 u-!VVӵ/ E0Rj`Tnrs+XI=k薦)S^ZTX!GNގ6xCujrj!ɳу1)""TQkI`lOf]QD(s[a/kо7ԵApEU3d~qUWZ6A)떖kslExKv6֩ZCi̓kܧ}/NػYOzQ*7s S)#F1jcDu%ҮxVan W8&o1;k|sVPMyˁ+ل' &"S^) 屆d lqG)Ut@0>m/KBy'lZtޞQ25c']S<]n)c7_t_oe,sFq^3K.;vjonRqՆsC"T8e ZN8A%^2iZGn;O:]D`\xC5fֳ@feΑu FD(5=Lii>>2Ja'm 4AxyՍŲ+'Lgtk\}8w`I&lҍ`2LvU":r &H>U,6`&Th'AtFE$;>zb@=dy? )6dh~:5/EbmlH=ZtGIC֡q kr_N1{vU<ӂǐr'Ϡ3h+yN6)=Q`_SVU#B";:o?=,6<+RZnx /;XF2~g9L*[Zdt90{LJGí 4{:湣!,mx5ht5"[n8==xwohe#O*@v-㹍ֲ b7|O._"4=װrK|eDKdk3sO #NI$?93]yq^߾M x_:Hz4#r ɐMJ "3VV{> pLI#Cp-\Yaard#Js#?O!NGb QKQ jưHfo!>d V 5F}QTtpN&`g_r`-~,4Hҗ|?дBجwNW+V}R'T@$CPxCrΒKeO5 _r߷riqSa[1dkʱOW;x@F"PtTԎݼe{A lc87h)q)c :j W@oU]1Bl1Qȵn70i w6`k@9,tM鶹e;"M5ͳaam[ɐuP~ŽP5KFQ`a&fEhbS'_W˂PXѳ먣 +4&We04Nfdǣ u@:v]%bOIy 2oaRONO bL=Sݓw~mNvHw;G1@C5De])&ǭ?~j nvH·unOgV6IN,\Lo2hc|M>XF6[m,ܰnOAn練㇕k.%.߄t:T$& D#|Ȗ Ys $[:cZsleߟ LjUфhƾxP^:J)2~ j#갅TX|F ̳-BɪE@Ŋj]gPf06D:XVq P{1ܰJ@uq7/ƅ]`E٨ c#/|νa3ܪLIq # 垍aoAI0B`DjXiVKT䪴< 'DSSi(jYg"oE7)eO"_ ԻFG*Uz|u UqT:[_u|HfYoq~F>XhBøqrsg zVg.`&e6ev |D~DN_hg¿ /Z@-jigTWf*~~^W \pSVȳEFє]F~>Om҃ ]у1@LA&[kza ['`׶/ R3RWAHdq]sB{*Al65y>,FX>LA 3k8Q0AYiJ5UG1 + \=|h/ߘu_}~$_\zv,(mKVhY\=L/=r3A#I8E%4y&@OVWmk N6JYf]Cag_U Wt_/Wkpm g~U$i+XVrjl"afS&lLS(f3 ٨;JsoL&WUG/*V,ٰTû1g]"#3f<X!!(Ó7>L$HTWEیBrg)jaC㿭o FFv[XIO-$&:AҜWw/X*i.7z5?LoLar=a3 v˝Fe6e"E4ğ!Ƽ ]H/̰N zCY,9|s:bO<92<ݾ2l)K h7+&1uA]P!6B tä-z^̃Z_^Um%ld@a?q5_ͦ䵨PrJ1Nk2&A7"UoiJ/DQ|#VźJbQ5CȠFTwI-k,OBPxNubZX[:6ʹGttܖL- lh61 䪩.-֊nGW%}hE&wYԣ?^~3(7-$=lJQ,,rӋ=P6 ²9K;.fvD:Jˤ6QfIMPFV!|b_ E2%U cSdAkKYUSE"J_E23Oۦ2ЙjI|lP厠]}`M7 b>}-SsL:)l&t2KD!з\ ( W/՟81 M\pq?cX R>dGE m;UO#tSpCf RW#Xo#tSrm$0oZ%/{yf,sr rYU k d3Qj&?!YG< 1:-+|Pp7hmިc*#a9IZ3xܪ4r^o_Ht&ZTx7CkL K8<):z'ײo;puYç)4ƺ!? 3f0 RB 7 ;E ·G"w >;7[Q25d|Em ++-ln(|}44).] UKz,T֞>fq%˳4xB??.K?oKǢDL9>ń"4MV 4;(%zU0 ى;+,k/>I%}tnE6 mb"Qp @amiFH]C <>4G݉fјs$(?'OR5z5ˈ/_'-e'uh$H~kEG؂Xz}Dȸ:+]}&M?,&}u]ue&-D-Лcon%FS4 ~N].J 0"YS'cu6Kԏ;^ؒDnܘ!r;رdž)WX#= )F?HQdJ ]t{lN!9W^Hy4:~Muᷬ)7H{/,á,.WlMvQq fs4E. OhG֎Fa/܍,7AUyngy楨o`LM4 [ܮ KVHqw_h}U,Ejr s a[x[K v$tD-)TG|ӵwGxYlA`eXYcOblMMx4±O9}v#MU5P3 |YG}%NqLEF&hJ\MPU<<{iL&xLY kU^OQjjϪeUحmUt=1eя]Ք%\/dOx(HiI u! 3 oUJ]ζ^ǒںKO=ks^`F7.p:$u_xB%{"?#al4[RVCЅa<{x~{ ˫y^T$_5\BrA|t(>^%ֺ'jN$@}hPGZ Gq~olDG5ҟ&D[@kJ&=|5f+a/z f77BM hXgD|_B1VY6z*z 'dZv- nOFcaKۮe JMGTR_XE M ghb6q:`}Ζ\<}vҰ^6x 4Gg_T\GGGF!9'=2% q/(mI+rsN)R@_gLhj-C\?x]Y5Dŋ^:ucϜ}ByPSv%Qe/DTa]i]K v(|[bkܳ~<<888?8z瓜$iLH6 $T>.]7u SEƒb˺་*t{{@ |i9$2{qU .]o2uLJB++H.‰r$䋐I:"'j᤟%e q,SV:L> Q),$pǹ t]k0(hAEq̒g#7s1뢉 Ct̰$Q? ).v G608涢Cе m)A8zLq˂$ xϿܖX(<5f;$(zavXU7/V]Wli. IfxEDJvf.ڐjV3z[ۀf_ ;kEi&$g@#{(#u19Ɠ/. XZg'McJ:nNT{u߯ʶ݄]rNy{}hl/Fu|ip%M;AѿK{Y>ppzzp|tZZ){7uzOaC!%U<[R5">$z;'A=Ю'WGRidNd@@Ztm>Cs7e Q"rEgz0M1Lv3y ԿiF*쎄fҒlNнcL} >*\Ǭzaot4#}uxQ.IކqE;ٯOh?f&CSKk597ySk˸n>iXk}:dWȞ UzI 9k9z8Rf gB5;z*BKou*S$ۅbʮ??ثlcvo^+SZN6ְE ]hejgUiTnJxkφ,x-0[#]KznVnGDPE 8k[ tnn+/ ! T7%azM4T7UZZ.nYèn9OĢCaU1Zj{~<59R&] eȵ <A+A`Ҭ'2$\͊rAe8A`ڨ>Ë@?yG_<{?7y9IP~yZ)guJ:[?֦t, r#Y0riFѿ`l E%T #ﳘIgqbZ[%a,(& Fc0X\7J,Q) KaxNn>i&}QZyR;$.+VrtҾnnfgEDu3lGFzY1@T, rϝjǻXxj`m#TaYP|)yFZ)5媡?sLL 17aY=r伣\l}_=Ça$w6.vO+Q$wpFL'vY9;7Wݍxr%ݹ0J*`IB!F8U&IЛdnx[[ 2 )\f,:;7ca:QUB: vAYhV Ic/YE]00u斡S$zt"/0Ea): 8C- tz3w Aق.|W77)wN.*w[pnՒU@M>LVIyЈr.ÜB!\r4=OOö F7 Rk< l &6&PH(RY5c&0NͲ?:+%󶥷͠ZPwn_4r]%˱EŚv;MY,slMϝ yz@H׽&7YyOhO3XpЩ~z7 ) @tgWQoqxa.}Zi+)GH>cMoh=mn]H?tϢݿ@z8C>E9{3Q;xW#X$je|BBWWWˋ^>j.09.KXIwsP4"Y. R|f.mXhR2|0l bE&+ ,#{% ұX.Y\uvA,ueOE $ I%)@-xʡXXdXRb\0d<(\/(θZCe";ەQ^4W}-)`0h@&*;2vٺ Q`i_:4/Cʽ1Ǩ8U9Q$W2Ax #!u,$~,"WwWόxsnFL?u^d w*wH'GE AZhک3S= g aWr(P %F\(ouA n OZ6u`c'=EK!?74pSs-hە{3dCa2:SUoa@ fK.JDFp:)x&5[ pA!& #%/@4Ч>?%L[3ڳk/f/n.eu.?\#lY9:OOT4s QרJtu\k,7GElXs\]h, yDPiÔjP(h2l^1H·T;&k*-ir*-93;G΋a;ҋ^WG)3rMk#qL2ӽ#mzFчCٹcm6LSwqБts#xlTiV7*K-GْOiS5}R2swUmc\*鬝~4,jequ;jyX!'l7rfIZLnN$7z=e硙4.$Ve. I~4xf@<`Z#U>$TNBVk GPNlQ/{L̒nUR8Wuݫ7Zx<>O#aeP%[wfzuBP-/_vuugFkTrou|#=FypkP Ufed ʲ#f^GK֎[D>f'"DxCP򅚼•-ʰU:s&}eilsu^7 ZOlJ]FVsjWOمvҩLXٺNHx*g{4>L8/uz=DFe~{&A<1sN~L F32#c`f Y&( D)19Vi۟p>^2J[υERNZpg>\8 {Ք#6OY}cl5SKCaPFoV!jɃCbJ)v>O}Ĺ5Q¤Fgc1lW؅FՇTxn SP`EdƷp=oSsk3!hc h:$&JVI-iOXՙ1R]AJ+1z36~V|+MT/Yj'6;dQ=unwϡZCxSV|Vr/{tc5߷xDˠRPL|帿d\S?g6\bSu*hypK d .]p7GqM]G4KLhE W2T1Ρq:L=pXe[}eSN8~, ?6۹cQA`тSmU/i<F/hYuK跇;ףػ|wgeb\(\ ۧ7K,mk0 FgEB.FOO>'u/X t Aզ՛JtmŸU-~?D{ju 9ꮯ8A9QK{7cA×-P7΋/QU\Ri$ ||Z?A>7EIW! !|mO=)F+{cEӽg1!fQ$Fh&ICo(5b(5)tKIzX%!r~~s tF%[plkT5b8x8s`t% 'N頋q L:6RS8+χln19@/qp4BM'Pdpï5+u kT>YaSnf&m'WЧHV塨º?ZnQh%tGiV1P: <q: 4~2I`?z?NI^xF 9mLl >G} ]},PU/jNU9]k /,3n{deKW-eQe`܈Ή~{56 <WC9^o>%ΔѥG̮mhLʄMծxD3XƏ \t3Q /d(*cY)))7lB&rr9@UOՑ|z_)|˼Vk19Yef60io'I΀|r"{UIcA}C.Z~eIC3 ZybnRTŹz^JYJB}#;ϡT04jBP\Mk|0bjf~>ڔ+ދ$Υ/a2ˑnI1YÌd#fQ7,@T|E<%m\C+_-Ws,ͣ=;,0L,>ÿjP/!zly??C@.:;΢]Y4ZI/ _`eR Nxtg "!Nj[gY _^{4_^H^܌`"T)A1& `t](8~O W0Y~Ո4dk c RGD@5\f*IQ+K%5fW&-+l'deӝ4-锒, #Tf檤bJnejU'LJh<}8ĸu#s!%_SU :Jt˛aiL4mrzF6a˗ |c :>aJnmj!m[}zM>Y jH`t66{#Z-1M3 $.LN&&Iӣh352%!qQ߿[z?r( q~= uRx{N :fp~9``{m_>hQARm9zLGh LDd6L`ϋLI+-n>~`q蝘F{#(y{zsەG 2  ߺ 7 یE݊(L} + ŐĦ rR~jeZ"{v(I?1A#17j$hYE~ɛPDY)> ^\=K`FZsml^a߫AIn-5k2^=NefW~;9-ޢvfch8 . dΎr79RޑiQ"״f縿Н@<@\܉ e!¨,ć7:<(ob+"㸃_ı}AJ A!Ą-)+n&6hr31f ^݇ip'=\u'cNqNIJ@$@g̳8>2SP@k2ED""*۳YgS+< 5r Q0(*},LI)Mh 'Z7Q9*3Csuxn9E a]l}A&*͡ǍT""(ai`VȪ7ysYCtDM8oYgJsڴ̨QS7*<8n\*N5hٓ~̳;M'iv7JB)xXZY@%<(9 żZsGQUfTHxQo~GO ?فA-=3%Ǻ2RYhv_g88s[ㅹZ /Lӽ7OPdobda8Nӛׅy<Ɍ0Գh\ޔGoX[!CW|]4w3tJ2>f`|zd}mj#hYR̤g%&l#RϨBO 67T`eCxT]U磼W(#^lXMTEiN+bBc 1p.$A2 uFB;Hvw!>8PcAsơ]Y|ܒs5G*Vs!ߐi<\IѼP]ݚ9+K||U=sUn*e) 9uN$ . s"ΆG9rsK(Z\]s\e׽0\J\Ȏ%޴籵-^8 1Tvd:EC  ʋ=j@i-Zܦ 22ǙFйOj>(1 "NXUmll+.*:'|Ca湆uR ky01%F~H(}1ɛ?10-{JHO˨ aHaS*۬ Z\%|@H1FBoޒwH-k{ &18} g~/.ٌ%=W'pN HݠDptM? #6v&3OSڝ aIQQl1RT_ 즚DE3jhn8A%!oT!7ev4@]``9S E;`re$v`HR0mui c]nu^ιፈRoç+ˁ%PHNOb| // $"dva-87?1՝mBժ1' Aŀ]qvt#Ocd9IF?`jsq7!`t dm>ߨܥ畸O> \-8ҟA{E% ߬4J> .6j,wXTlҞNABS} eΑ>V֩v{ҝ 8W~]F*je%)WyY8vvf79dgWN|_[~ (G#jM߃.G9iQ\ѨJPmx!R25(m<4QY³c}AOyah7 ׌l9Q8Fy@A˳8XZ^: 6[(q9kH @/P/k&uF{'E~)$u2V 4yN`rG|eW9T+z  pUBu܈ D!Dwp.[[1p B=7fn$m&ѽ$shfֹlZ$9ѢvGԑ'Û6 6 iPe& L 3%Vo2W\9۲a-FZsG=Cr⽷w#c}&91 r`q2t O (&y@(QqG5{4!+񣉙.u_Ӝjra-N QS$.Զ%Q&Szra+.4_ C2ŸwtOkq3&47 j7 EuJ[ހƳA!IINNhmRl7gXI=ꖜfqmZ$lH<a&b$VuɩGJ ƟIZ3lUh]sHobLqMtz5c}7IC6L$ Ɯ"gdYmh2:sTňaQB\u3pXw4}}(rԹrGفW9O*7@؉ɷ:eN$3N|N2UcӃYQYc=5O #J|pi RJH;(pnUsk>k0+p X LȊX4V[?۝][P.Gɴ:Їcv=ny9bv֑bn~ܾjgDR ~slj8vo1S2@(xLnL-[z}y&/]ܠys|QɪTH4j_oH(PNl.,Jrի^۴EE..xGeL!pCdřVGh[m6 hEiU^UU.ŪR ,y7±'Y%(]3=ˤXNeuCjN|OD_e'>pf~klw(bdW}׏XW윫ыROw`m+LEFјP߸&t{>GOXH,0"q-pJvo?\i$uM6a7T.iԑO24ƯmQ7WiyΆ9:F}Ri]0JU\xM"[vRQIG?g ZF\i2Z"޴>mʢԜwz 8%EPF<G3w3Coі HCJj|wh>QnSƙysu.7ʥ'sR7`i!uQפ}Jgs}t<&SygةmR|?: s#LĈlB*S'Tdkliq8qez?Nϙp.m*qqs|w 8ta&/6ˏQ{\9n*z.e,ffg+jWnJ֩7Yn5&l!Ga!k!!Rx5kxzKw!Af;=]< iU'^gCfgg`hĨ+4G SQκN28(/M<+ %3)yf[ȉ[풰bTJy4SͅT\na}{ov4nl 6BJefot1WA˜~$]!{ҌCn[*Jh.˰^N@S9̦GovY }}N5w.Erp[b5#z|3+,nL2}4dpp0Z)a$m~(A2t1of7Ӣi*;ܓ| ,|r8u^$-JjrW{|RnNf,Tmߣ5M9Qw+.A^EE\âiV꜓չCB퟼:z{gxu3?<gEq79Dw,(UgQ41C;ETV>1$&GIN4ڨk2V]jJob@P!ys"} eTqL-tzG˶\A_MԹJp9SD5&xʂJ@r~9eQx8]H*. A *^ lW fbՋQ c:f/C%|[D3d\PGi7*/dzir*%g6>eB*G0qVAdܠ.o+ %(ֲUo:v5r : (/*yVrӍ=hNniwH},lsGMc{qjpd |/ ;#JíKsg"CYO:X~OFP`k7ofDYH'ltm7IS_ُ wVaiC.ݩJ`o6ʂC3&Di!B ٷ ہNe1BIN2bSUrI^Y]Pcc W62ꦓx;V/I`I˃ȔcFX4s7ЯLz Q/-*[N綗).*y^tΜ(B>r ` (% .:`?D/3Wqlԟfz9uyDy^'D*@֞x@*Kry G".Qʦl߅V0yJ+r+h\|Z bM%~SB{)ޘ"1Z6zEd^~ Km}/F3 a5`$sӉA\#;ǣw˰㳉h"2f@XOr_>,*4=O|)R`yf}?jr~.eW+ӽ y$!S2sS$w,FG#P8ұCr3 AW$(hױx~(|-T=+( 8B~fNy$֯#GM4drmtXĦJB_ +|Bon#%cu0uzHf}1Wു&!X ^.Y֠xt`smY~mg!R 8y0zZ ,]@b;waL1ta3YՎz 5ZVvBƿ{> / 4 A\)Kã\j31rτ J`x؟& qӆhcؿB\,S4Ƃ\pY 9} sb)FS/?Qn^ T=FMR.93_hr~JV'xhZv:-@g GX`v&)2WxuEd da.Iث?xA=Kh2]W( '{ |{7`v1Ȏ5׾HgRlzA8 lS@J,QD(33䡖ŸkQϭqi\7K12ؓA!Aq̯؂#`:SHf:t _x@z%̈Ȧ_;QiL R/;F8etۉD4TKH 0MIΦ}NNPj`p L( ȺNhkbYI l3u*RUK;H 5z;чjL^8R~M:6:i̪viI]՞R.T\!UuQ7k9q0XMj] b2҂5b{zQ)1lllζ6g9ܜ-ousVߜEܜ >ÿI5o66 ??@hϢjT3|6ïP(9T6g0?eqW(S-`š =rAhlpؒAaaT)}HJàl ^lPѹ-fsT֖_\8/*I>jC@ahTYuSRleo2ʎfu@bIť'Av#*?7AUr< iqtF2 5c0!mX~O9wu͵:Sҋߜ' wΧ.;gGmL%`Z=?W!pa-y-;%./]VuyסĂQ#KjbK;/%4Ob^2%`|~K[ G]().RK=yqCJJSГڣ<*yq=<*y9 grsi"K=DTh6o&#/;o"*U I(Ԝ~Ǒ ̢!>*n nme(lׄspHSLq}fqN~Z VWe_PEFk5]'N $fkPŊ4o D;rNQ1LqzZNLxpq3Ze kl mTcfiՉxm3* 8$=_#Ґe6K]YW|^uw祏)SS'E݇ZFp{1{X 6I֘|Qh`f>J~9o.Fɇ|6%5BA2qW;H)J@H9"XM=csք6GPod}+gqҘ5{%acGp;\4T df"/y))R n`tEW!D i#jnAI& `VA~j<[J!KR 1rjuē#EhA/#_f꩸uIjhlj~^TJIv`aj: *1:bZs ?p嚕 nFxDfd`lFɤ2pijΈS}sMϒ 5iwm^R~2KD8y3rcvRj9j)lf09ƻfHwd\Eه$6X4Ok6zP^ 7ܘ)MXZɷ4WUk&MjC5-.]k&]v^'a:0Sjrw~q?򫽇`/S:wWo;p2/>:˽Tԯ+O/*'-,UuR4SSdsܦ'12u>"_ h?ɇoخ]m*zFc-Dk{`/{y{yӂDI>TU]ȫ/p=ω{%mvZ]=4JJRQ(<}_=c77*tHy/ym0 +uF_a,MTF(Ag}N9e.VCC3Drc*`[!ʫZ֑8lOG(_,I5 瓓̊d{l:xП?1,ѹԳ[r:%'ơ7*cvp@|?ϼZSY wlH^65q%gyM+b]RVLkחTZp|_ф1;N11nW|3Їڇ%ZtAN;l}v;w@7L X#H3'МP]Y7[6-c8m˟5uʀz*C|< Klcit`)յ$:^s'fg߭I 3!rv2lsL=?j^|ìM2sy8lH7*8@u9{f1GDNkr(4Ra .bΥL> o}yJhMSڐh9YXHh[qz|0;Kt,uP jθ\bWɘQ=0 V&Uc-G,+gy!_FP:٢ [j,2zR647:|Ȏ_U__9Ae$% 4fd5è{-[B>]fP=k UX(1hW;R"t`c21!o- B4Vc{Q`k17 Χï5S%"1FtLը暰sBAbB>W^cϴ%tnhjFM0=uUKԋ*kp۫hJerunӵop@k/>ya/Ǩ4ЃPuלs\0z&}w;<8``"7˵f%$Jwiv~g8_V YpUmS.=(>i/SbJ1>R|;C ~~~=x;qz n8! m!8U[9bhP3Ţ,b5qX)Q2g7?N.az]kz8Dr]ddex$! Ϗ۳bn(t:y{|é !$yN+}[:gY:w*ݲIvs` 35+oE1`3 ac)\ GeX8*:H&O>QØ*4 Ҹ H  ]ً%g02QaP9|?D8TI$ָ<\2,j!rRrYZˢBttm#]5L!f8܄SNbʺOQpQG–Eͱ9'<[Y6SˆA9ӈ9pcpGΐֳF;19f ?9LhQeulٍ9H\%hR -S`8k3b|T#%ȭa➠ञn9:8H᡽m;'buxq҉%Fӯ׈rw=()\0~GC &X]{ PB0%QR_t2Ű7#~@2@Igq%2(Pׄ^^N5Z@&1 G₾&!;TGs$9a lfT]sH2/ 6(V`sl[֡y.d4K3 P-k,,2Y O.ԁ QFXʴ,gtZνVRM<۸D&4 Aʸ%ʸqTtgmݠ JM='8u|צ \Q Xjy8 [a Zr{[˛g7܌}BTsS }qπD.`q,doXSңs1,RȦ9V"Iiח- S,HE\.6R_v"1 qt}X/^ Y8Y-M$bxi*MWfz%!u% s+X:6 6t叮~CyMfAAeS4[8SvN_fR 1Z&sοd.2Fa͢1VeyV\']YѾEj|"g|[ưwvL*MXa9Q4A|ʁng|nS{GKaI CU\1\"KQn,Ӝ7Wrhv?p3iu݌gʭ`՝t F,hRNw@BzRǴX}%H:y2G^^7=d%5 }*&{n s<K L!47DaiW/Њ}ܲ'xmAAF9$Ւyj oa𷬚o^6߲n 尴iXjz"/W;\gu.I Y*\}o]}Fl_Hu18wH|*UG7  {W-?_RnǻN5%I/2Sϸ{΋^ܠWǐ>Ǻ}{-Mz(8v;jWϛelvAHͿ> l['N@Pa[%~}׊'+WthLQ\ы'+ttZfwovb S wnW;;o[a>T|K;SbHdYlU7~cnFѡz88I(vWmf;Q:'g3дLbXY2qnVáe >:+fzl"ӪG+h^w>.D{lZV&wk5eۻŸu]PEMi|Cګg+Ƽ2IÙl/ d<6]&@WJ8EAD+JJ^AD: 8tʭBn)\RD%fbZrvw_oa7yn=sJ*f2p1y2xna&T][^3{UT3YswH#>Gvbfc;P\V%l`[x鿁o5W϶LFAL 5+F)KȲn6GtƕhŇB'ҊAwn =X*glꓜT=chK))Po(/ +&K9tGV+\RK7LoKo)y͙QѮXJ᝵<ompܨBPERg]r)?jxOJHÓXt0Ja^]KY1l 6wS6SHzA3LлlHqhG-bRg&9\g6$@a3O?2ݸDR\+y`6WL3aKg%q 'ܜRpr83=hyx hA}<| {38djwAq990akؑ@~>*̢B8Vd6$Gַϙ 2kiA˔漴g_R&?6GW&Ĭmu*aDէ5KXw%Pm-v[9~YF||B|߿UZ$Q}ZƂ;)IY&C rCCKRXSPdbrueH7J]S\5djSkl(AtbDz y"L嶺.94F KKrn#RـSOgk[{%⭢$w~#FbE-<>icfI[ܨU{Gc/~{|}QL?k9`U:]sO+{2xq1gtpѤp| [t, '຦bX)0Gtp<ۍSߜgk-3s]Mu!x{[hT4-;{ﶼSc(߸'AEaSj'œ:Bbҷq$N֙L:_8[FW%HR0Ua|7d,Rg[Fϵ %bfs:cirJڽEhL He nD*do{K5sjRO5%$B8DY;c/5&3dRbpd[o_db' ϏYz7 1 G KaK@X$6Q_̺P^UJ]j(H(:_ϡb!ɦG)5>5֐ ?m 'dސiF;M'"xjz]5U'2Y$/ul؟׫xx[\Vdg9`Dh dP 0A)' \ߠ8;o$(XifԸۡ~'_]+D̥y$[TLfn}|0՘ Q^2.?CVڍ ٻ"|b6ӂ,u%]deP 2@=nIOnI-w`օkxM@U0Us&u"MRέ+Ou1 ʨ=l&xcg9| _CYe~D'LwCeF% .*2UG\lvA66:oȐE]$gg kjcX|bj}Ǎo$5&9)u܌VW#J'I[}6LiP5ooC+@TRףEǝKRd B˜W1Qc7\tij$P/?Lv!QˣMG>[s$!ݪ5XdĴ;okWQ{cZt.ףk*+- >Oƣ5 tEz&S\#@zhLv8y&Oukkz&pl8 a"]D>@;_8 `ilǡlB)|- %d(XJek% ^G}e\˖UQ%g ]?춄.|Gpg#vZNUw2Uf0>vAG|=K^2@<w.vAٷf lh:9>'{uξ I~SO݅3Έ\WI>9Rq3HL7v3aIAojTt?MB ;Qª=pAl!ICS<3"{ Z#,B]LEQlkE|_zș  ^*4 Pi9Ϊ΁};"k[@A|$Sֿ^ˋ;H9cP(/u'(:>dGNhU goO)oI% ]:VB@i5R ﺆW~}0 NZn%1(q6>'O}>C~t=J% _@Qpxa4ӀC*jeXKP玨('/qNfdqYVC5)MaϺU+9Q_Z`Ug'^how>>y (o(x8^ŸFSqLVE:Se #;ѩH9T.G oK#r4I) H8~(ԣsˣ#8))#t^H 8Wٓ%ʧ gBQzC. O;S>7{R=?5Ip [iϲZ#88g--x XaMN4<< ,#0=$s[8{{ˣcGf-ZzZE]Gc /_gfqR1a~F0;?*0;nU :b6Y rpwu4UtN$㪝6P92d&>(f`ԩ 6Heȭ3)]@>‰<{s&_KmȒN>E@GMsqb'ẍ_! ~n4Iy͎֩sS.2(bU/¸|h/:@y>!A2QoPmGW:Otu i*j$1}ҎQtIUxn+Y?Ns~O.kr^vt'b7 ]W=~\8Y~|xh7JœZݍ'7^)cXx\C*wLz9x[@]@}烼qJxƀܨ3xB`?7cZ Z pBnx ]z@X$,nYsM ǣryȶiy"2ͥoN$%usc1l:@;l/q{`äݭOZq5#ʞzd;`ՠ%!\f!:M866@Hkb;*ЕN>TL*~4Jʎn(c(f )q2e?Bc$i%vԜ\v0+ yFQ?h0)|qo~U 0Gy KaWAu'sTxxVgIC`Òf؄;NL7ݎU[9fbU`^F+| n!ӤܝA{_Ky2+u; ٴ!ڻñy(c&P.2eRVRX3 3Mcs>/XCҜYJ&rGp}q;n%12#Qj4iACy=X1UExMB9}*Er%jռyӿ#` PY L}тY--I @DsX@ wHNw_Z__Ο2KTkc+ a~W%uCi*B ;ʜLy&c xᑉ2>;::0廊CXr+ļ jes3!tpHUGY.= m$O:o,u25$%v٨T@le&XD^C&cReotIIexot $\<=;QH8U>:t?R\YQh:Q Q7B2踃_96d(;(ߖNg'N6PƐQa[Nœ"0H+ =iϫU۞\Xn*L:F)K#3t,vgCxj?9h_hۗ\u0.l:83[ޙ 8qbvqfqj`lqí v%TܭWڼ}vC' 52j$S4f[ '$7dvph n(OT\}>9ފbY˚24F*9Mv*AD؅I&(3Vxp$w{H%n@ׯG}E 5]&ǀ0IΥNL)R#ڒlQݩdUBkYh:\+u p6rͲ@s/&,mE= Y䛡&&}CAw3"*] Br;ˮ$9MU!ݽӊ7׍-qd–P]?Id3_4Y؜$?6b  ٞ柚EP,r1fs;Îצ&)IqmgTFQʧIPޡ*I9 &9 i4ٓY.4r.S/4K-\1t5VQx ^'?ueUU)s9:Z^mp,|pwl:lmB ИA2zmUF~/i}*?g,קT/TW)eE윞TߞZrDc㠙eA D_no1c9b<ù܃gk:cv6-?cw9sEc]~<Ǒd%C@wWj}PRw&$ȞrsEs.0噢_-,E;2ANyq;u~.E⅐"{!iiyMMLqUOp_fmT@Rtj %%v %FaQn'[VXvw|tdz(ZÏ`_%fE/ϞN_{k$WX}-#^T PcrK֨KL&>cZ/}U^7Ӎ WY;:|Uj;9"H-P~ Q O#-d 8w{tx@s⺭fl?ZQX0Rp]nx.h4%Af)*T}4z+~R [꾜R߀\N= r=i4lxNɀ?q~+9ގ~(v_ibeuEL2v& Q,[&C,$:KeUЩG';*nm(O p瓱$7-7 8 7IoFi76RIPe2RLVn+Kl꼱/l{aΚAb5%vVJh_Z(RI:D i5_$ZfB0%\;M`LJjK+4%ݱy (ƃjk[oXƧt1U_}WV";:[^h|J_SPA2!ova #{#SGT56;+ CP(IRX"a)aï t j\Jh Rv*$uRM­׶:km5)'L )Y(x L:]G7p )-%ِGa{I+tTd_VҢ)!Un܎OA "~(ǜ_@6t*A:Ov *IHvIð^x[`!~J>*AfOɺOVQLU -1d$.κ]}xԽ ܍ X/1S|BRZxtҀI cGl n` _M[;.jYfI碳/#ؓ RyW#UJS$ .S:% <_9u<hS{j!.AkvonZkTrbcR gKΦ eH^(LKe[5*[^]hpf_X(WHSeb6 gX-t' 2') ਥ8 ]j a gwk/ hC"Lq/}*̣93vZ1- K/&3UUSE SIsyt/fΠrF+%<QӿR N:6xM(&j۵@]֭fdg+LHs o1 ML%̎x$4d蘺LԹ0u(7ވc}L:G&|BHLתr\e` g"$C `CjVg:[_>?XO;Ӡ:Յb\`.qդy2c\d\;ziTJHϋ0W]Cz)<}^U;{{'Hڜ'Z޻Y U -VS_)F*'CpsR9X?O+륪L+,/(5Q۸1YJOFܡ@kF7'*9DNC.GN6nw=WTS[FK VF!a p=F:0qH]SY6-O xk~G2ggTm }u8 |g#pe~)q3r[S)*8B4CNkZ5c5YN+ zR &bG`Q9~H|v|y,6ِ#'xճԟCUCz8h]+ V2Axu@O+?0oT~?#u+zͮ_ S@MT_۸ٸQLm4GqFٍ4gk{ ch.fu:[t¯q`ζ`hzs]o1h7R@|ޕ[ؽg\t:ӧ;oOvH8EgJ9.ބ5ՒYw-HHj_Q7A.WS{d cTZG;-j<&[8wWf/\+ނz37 8{/w t@XC v4;ǽfw+oZE#ep_1)/Hf3QEmTKKosl}h0%1wWױx >ԙ3¢5 eb~SQWFZTFms7h _sx>"Tt2j .7O\qo;1F%1P4rF:6}87L%Fɒw7 dV1)~ g]ЮM{yٖ_ iȼaK[ ݦ%[U՞fT٭EtPXn̋$ܬ9NJ9)8Hsw͔TM?RSU#,(zxÿrPV{E;w5(t}hı8 }}9LvIʌ9Xd}^0P=Pa%`8۠QI -}Cx#U@ jjx c}|>!o^R6]E-9F&Lahj`V]mr?][+ﵒ{R9ܷKu,=I+GsE->jl"ΫO@cz i@ssi5g6()+#P/L=ܪ\cgTަ®?RnzMb~ջv28i>(YÅ;Ń^ rFe \3,$ ^!tX 9uæ^ }]_{l(AJWгۃ|iIrO`bC?{&sr#rx=cրQ"NJ,n7:]oUJcu7Z|-K|4n+{5qGN}B$6:,rϹ ؁?荪vފwFO<76/͚m^ ݲ'zVZw Q?H~|;'ΜI&h3#*;168+(ߺ.%n(yケVв@G=TB(~˚FF_͸g)L(58[mW>_j_AzU:x{TSgI~z"iQ'A8-5x 1+ ԭM8tFyYseiL4E{W||Ik+(R7CfO^|hC:즬rĹC|t?~ctܸbN"rECkq`(J mv8TLUF#&L &" &}2Tf"f&;5{^;a/ezh5G0TX^f3jc&ܒFG'& }죻g^8u^>RaW$ӄ7Qc)Z1U~p8Bz(iR{T7yoHޫ8vWmQris!Qy K @aVx.Ǖq0xv 1\vXe@T `Dc2&N4e/mMٍbC9i(0=Q4,)JՃvJvĿSrzf{ICMmhX벎$rweV['3K㛥&Brb3),>#S\R~: YwYjchA"?2y#9KJQڂ2[rkeZ>1+]3J%cI_(Ru/n[*|UwZx&\:șęY0}~~A܎7ߎ&H0#Vb ٮѯh!MFh`ϊs "o@cOa;g0GKO'w 3 3}GdFӗBH7I798v&UH ˘ͬWrнE :K9Ƭ躱I"W7S\H  q㍅ [ƒGT 4eIGtOs4gKqX˒)@0ɺ)ha h~NikOVM.IG-eNʔ_2NNjDR5* IODp@!A>&Ix\bFΚ-si? TJR| rU{x~n-?:0Q<,S"*-~8`%rH]WI롬{8'K&Kxl=<$`oMt_ [Nѵ/Dk8>\qRۧwMϦJu\ztƠ1@Arن. lO;Mʩ* a YL3l]ѓCgٱm3v#5K<J>6 =c/=^wy}M: ͭ2!k=p74=y@ +[9ȷFS@Kx&\'`rã-PBOR2sR$\ZƱmh1{AY1?Їo@ dGD0)vüLOMMqvN+ANַ1&#fd1@XueO/eR~" ]2?ps%5z;bj-At^;3F(&jg/=6r2W"/60T`jxLsv~<M$jHK2%^ib)jn 陑Dc i3W*~+Պ)#.ÔPBdkRcyن s_` d Z҂dR/b_&$s"E:5֠^r_Ʈ4dYLjz#<^ˉ*uF1d=\YK&KѣOHaDk9ưɠ.yq4 $\kFYz y-5>lo魍{v)@燽N𛈃=R $ w/Zƒ)Y:S.E*Z$U kk'hLbE ԭQ*I뷣Vd%mu)S!ᨋQ ;{nȞhcƪ@t##QuR'1ΣvSu =]r—B<S]d-_CRC T8Tʪl_-k52]_JaN2e[wO[O cz0]4D6̈Y3ŕS1$ G%xv LD6a17ߦ6;4<Ŧ|5B–)K,h(ā{?*=xѠp.'7Yx*OlH.,J܉"K{mBdos+Yv{NC}σj=į9 Gtܑ*fwЋd4|I:IJ ziSR!y֨gT!lc-_\*|>og#;tZNKAjJZU. `K fD%k rt/006ׂugf-SɠnygW~q:2aB}F?$A} E3y9jA~'a{Ipzz# >'0TE#NjzomT! My) m1%oWX$t\0 PI$QUk ,CͼHLonfo)vfd]8t, W`',L>6Vi 5$R¯XDv;8X복gB듬ڵx,j8Q)v q_=}[ 8(ȭچ$k&m ]Շ]SBv$f|0 Hy?5{"hT$py\qɢA&Rv /F(uJTGq-6{ T59,E\xDVl4]j{hjП\\ QqTr롱9)EƺE]QwZUsÄy7_%1U@ȧbxv-)TBVaRӝz:qup7~gڨs h%''o,wxL2Nz Kx-lv{1MkLlnNo4omeY୰a z.WfNOpHl cB4?2V;ѨHabIa{Y9W$R#7{)˦mIlgnPRg4-cLn;IH)qmj6O0]NhBM0m}lÉӌ㚝xLQH7_2txuƃR]"A|=ǓFj=v/dx9?֡jn'K%`J& ) ӥtWA|yqݝebA݃ꎂDUSo'D a[rDӫVu5xo%gtFpDWY (Uaq //V+gl\ݩU#E`aڱHbH %,}[ъW7z:H1d}EgZ T(Rpa I } X^Q[S.|btϓf4+G.=iUΘ.)5auI齒[# 7D?YDՋNGnPy?Fz-r5 :exI(ߺR }F\A Ԑ8j!#F )՝kX^ɰl܅'(kӁ.~lmHV0 @ z%;v=CYT-&&Ǹg1L֎HدY;4qz> .#N]tJ Xhq|Aw:֐%ݜ9>ߪwvtu I-7l%[L| U{su6nٯ\a8-O\@R3#y*.U`isvIj!,Ũm*sn o3 d-rt!A,rr Oyh\g.g;ax#P@ǏwAcwqО`4r&G_vnVi܍\a][ 㰷E߄p4@ E;u@18C#٢ !T{}k.`3ٴD81itF-LBR#a#0#摿z*Gly }mstƐGx|s?lDw,\ؚRV!¼LB_ց6D/,NLf S'CւCkTKeq~>9J@+vv3pe7iJ !麛ЫqlA8SquաR& Is**8GTί$?a9J 4 }hGhT鲋>Ҏ5!Dkkq夊@wjf[^ K[b`C%v:@:c .]ΤH~mB|g+)B\] E\PCy~$h7!]EY-(=U#nmG"o̵nxղȱdQ;N綯\ѠޠUA 5>:2(a_h/עo1_xp/d'@2&Бm&|R2fAқLV<i& x 蕣$ ci5Xnt fEao?2"Bx};8_Q쌱 b|dDI*f9;U:q!߾OaxS6CUb㜿/׳}srjCmߋ6^ƶw_m*OϝO|׷K _9Ωsw.d_?I?yilW{~ >/S\GK)yPM2C?&^!r8 WR%p b*e@N++\L= <̌#_ɽ$ |&ʅznu(QZ)INE/t&'0c|9@(ʹ n%]|/[E1avpcFkb_3&o2k}Va󄰏p&]D=kek ,LPd3d#ύWc8KޒS>f|!$N!*1Y>銔S*INZROZ8_}A̅rɏL?J*O3x6pG6'bL:sXsϬb}N FѸpc aNj cސy(^?Lȯj9?SwP] oy6R?e+֤1XR▝@ tUĕ;Lw%7ku&N5zm@J˜s*5ø>b~<]E0y)%B#‡Oz̵RHM[TځvI`.S+Xk1/Xz>̀+ С`YMgδY;*Z%)PcDSM?ya\P91ST6oL>ŷ ԳL_;8!l*ilւ)E#Cu +j*r)VL5y,mqxǚm"aң7ߡ{D'>:.1|t/IL7 Ol${/HȚo=y#w䉌t3P"K:*ŰE%Q&tAo}6]jyQ(>R( Y Ե03qʨ;DBV֪0U { V67T .Ȋ6\+o)2Ky4ʁyJX}fKx;B5BY P>!̹X(A4]Ǽؠ._t\%.^Z(ty8A/8&҄b{A}QH읷R.q|e-9F)D5 K4e)wcXJ)b.o:jrdDZd'` >q jV$kyO9POç@~9ܧEા'ob[uFbjDw]Gr@g$Ma'q.@̒15gO+YW{ZX]vmUu+YSOK aұ[ߧsക/1wܠи2[Q'Fs>|]]v Ǐn7iOyF< 09tgXVuC[Yίz8\b)m: _INc(IJY_J̕+g.#eI限pu҄ ,*[ fxCde  8_œbeelB.j3,)&Vo@ ZsM {gT\%uaagyb)ĄW+.4WtZMJ~ `TXx5qu[T|تbŌf2s ;Z-!bL.*>Tl׸o;Ʒj)):gӷv$H^0^o KMLyCn#=-EFL\Kђс{IWE]W٫h חۻex߅;=8N5_gپZcb8"٦ 6VluVf3RP_/\K$4bhnFhTt9Bf|Z3D̿'-VrcYcI:X9DA&:E5͉62v)gMq>ϻ #;#:0[µAw#}a܂@'S]h5n(pCN{tgy 9<XÕdz49q(€ 7b8丱L9NEiU]VU0/ 4OEp!iXBW^S>LBd" G Pan}N.e D3X](]oTxM&ǍOeX.+5OgJ5nUhmtt:|g:G*=Vں"Jle8ظW7!t +3UJsůW;G~++)C ?BW]Kbub}rLZw]Z, <_UAg)!⡛{ m4h@f 3m{dXرTb oXh![Ck$noiSt{ 㙭 j~|L1O=TE^z/9syYRQuXY$u庹aG4ģ4'"!aஂ$CcTR䙜~ -THdnXD'hoaF1oLf7aJtP]kqCeBI˜B{"q+OArTFfbaYO# uUUg?B89-}AwV 2'1}()uϒ ВaJ,7>G<`ݝ[1uƢ TvNM< v{-a;۴@ -ϟpuwo%9svG#p,Fs;u߉#WJ^< ڄAޤbqjOCwflEjaVi4.2\vEqRyb{^ 1+|)b3ouC2|>ڙ_sy>~71Vlv]UeLHbfL0Ȱ] ٠-R+|U\3Aӱe :T?f#v G12\ЀA}I3+!H[Зj -ވ%xeTCk;.ҹe5a"*ɺv]6>˙Yk9pc1^BHsp%"z j(NזYrV\D:ИCm<4YKON;R+xo:uA>[Fs LqIoեn:weލGt:hCijt[,>x= >)5zE\sŐ5I˳[|Y-cVИJf[ s#_)9 ?aU9=Ď'8A_Gna65,L-?^R{oR rt%{\T2/n"`?O !!~Ogi밡GTF)q>ONvr<혍 YvC~p0S S܊|VtnTtqL1 GBFy'O9m`J HčC SEySN*G)2j Z~{GL#SFr_^ _ Ы:IL%za +ePJ0;*Y bfc6OVbc\1hSRȦ\yhc=KIh֣g "`#q tQ:^4-F[ ĸ&G9r6*60[Xy-S8j0=+ Ip0%!ܰ=4fλQĥLDH,Cs qN8yy6h .n[ ޞ@i5:' }絕 GF:G|~z64WrV(۶J?^yT&btnsz%bsLoX%³|Y2!qUW1_gN>'s`KM 5` ؘb/GVGPET #*FR_J81UfI(yō)4bN`=suq^/6.GTuQmwVKE"]36ӕx(B!rpf5%epDݳLqFԣ?%x-$k@oW}(fa[;;B1 -vYQҜaC^]J!duECWzÂ%jLlrewdNA9ľwX 1FtxHH. $9D' LSoLb*@u5pjmLBbţ~dKP߸X8[z(uE7snA1Zn\]d5dŅSmXm ..-!ƅ]cJɝR2rOSZ&JV&̀q*0 OaMRvǸl| _-.g*՟9 ј#7qVIR0&y)t;c4QlU֙B=MwZ@S1b湏Bd'OHn'{ B!8 4׉f ~~tC]HƱRrQS=a-J뎃eL~-j#L؈]F1cljG6LC[ ZcBlGm2ݯmg"Lx {UbʧZfU_czkKY?E5{L^`5rTלj>Y|ɟCfsNPI+QVXIjc!bE͕l - \֢Ĭm]į2yr/2slYφi6N4C WP'cncAV9URK:k+Wjҏǫf2'r̿>~fF_Gt╭:E1ɭ󣊙E,҈*,72}?2<̼<93'lqǓwK@>p/=)܃;L<`QL* w.N)թܾmPq&q 3'4gur،^)c3~ru#WYk!z/?p!O Xʸ}ȩ[έ#LWGNQeJ!Gϩ+uuځ*WHSM(D=_s`?YJ]{ėX ._J+t쎁g7{sa _z+zyz^y=ϚQ26vO/");s&5Z菢x"4&s} kz[4(.W~yԢLH˻c$MPX9 @δgLj͊|1TXբ+53\сc`A5CA 7D^e !4LgK4d"Dͥk#ҹ,=\ٲNauQmč)kb5Zlt6ErUw8f!OU>*GSiNTŦg7zEZwg>+H:.Z{V[Eoe2jWri%#Wh"rFd Ygcqͧj+VÌy~Ŝa%ήv }lb*"4naRNFUxf OٙJqO$S̤W9J2.7~Y-ۍ!zaS%F0O܍#;[Q|vus'J֧&jޓ}7v ɳ/9q#.y[~nI/0^ zJVtq4+նVKrßb.ZʼnW76ͯP o$okMxw qB^%>N_w65 F#) PDKS`@tKj|N8n$XBpҢlIq{2RW;CƂcI#:U*{b!z+!*>T.Be tI7-Yčdиd)Q`Z~6`lp;Ժ8|p)1>2y6JjRM%Û*xevuvR:l6w7v]08 y7f,bCOi~,8%Ý&- WG/*o~R#Κ N hzN@)|Z5M&mDm[f:ҊN.SlSV3]ٗ4K%|5s8 s3s&`>s9a5 cZot8@ڧP֫, |n @v1IbT6jtfun,w*~?]k{U+[A's6nj7ڪ aW|vUs 擗C)@5K bG'f9=W\>ưa"ңڽal8=x;BDS"#b]ŋogf\H?O쵌v8vճ<`Œ<81E#t8< ާW_KŲٚլzkǰAϩtc<USnTPNg^sXhP L [BOѫ}x]o*zDJ5]kK̀T9(|pC?rN}1nعtbV6S^acr~,_֏ ;w𭰉4d^̡v+_`iӇ)\O[}|@{" ?8穗v`})#E?O9`k N]%vd~ddҋdcc 2vVͫ|F26mkIqhp[K\8}w+xx*+fQxL\iHv{)`Kx < tse_swap.h F.x:fMH{@yʱܥzo6>5w[ޣJ'1*=x\S Pulimit = (const struct tst_ulimit_val[]) { {RLIMIT_AS, RLIM_INFINITY}, {} }O kƺsx\ABa Pulimit = (const struct tst_ulimit_val[]) { {RLIMIT_AS, RLIM_INFINITY}, {} }] mH xVQމH!=b]S=ekhٝQouHtSϑ)k3S7ך Γ(U!L)y{7c 40000 tbio8dKų4/F\w40000 uaccessf20,ܯ~~STR[LqxeepQwyhﳶ5%?4^^xU29yԢkC&.ygpO%wHwx}Umo6lNl@ s*dYA0msHMNy<>wsLėȴ8bB3?IPVeA Fyjm8럝C\eU.J)]hэY;a}J.tXrh"t쎁/1<\ɓJBf+ m܁/kX-YZAxo24D ?7#,0VYlbM 3BšBR *K / z-\?8Rj4j%4o`e oግl4]LBM߲FF)bp~[K˯] Lݛ7LĐ6DzʓEZjWȨ6M za2zƮoHwn>CΤS/ήz>Fl` 1 -eM0Nll%NQW~5ӭ1Vc<>U/h] lKRyw54ێ(ogt,|VOl;e؁S ?TJQމErm:VRBۡ7 D'p*˹Yc+e/&^^ ÚhdTBG)j6!ҒaWv+2fBĚ<'S2c[A3{sD\94/3ؖ'+.7B6 :@K&^xLVPLw n;BQO?6?opʂp~t8Q0gGo$:eWF#x7/a\1/VW~ eC' EtMC/$;4~cExmKo@7-H6T,@vӓgqrs$c V f&* CE=Q )LXf\83@p NE U|T̪69Fۚ"x%σ q]Aǜ 䆰V-oPB !KouԸ3d|ʔRb_xwWc jaܞ`HL u (en|աY23Xk(%)Mx_x3O}Qu)s_jS|fUl t6[xTٮF|+kf4` f16eҬm,6L2FZ:紪Ah.㘃4bBHHɄgX.TJ3E24ֆqtL!0H$'&t #&M!,">ׯxHybIXn0A[.Eڬ/2Vum-@qY$ BU59[bp6{ZFF!LgQ3B$USϑ} sFYP]5/ !m'4Ƨ;O*>GmDIF A|6y}dj@-ힷ OY) x"{r:(qxL*vFߩfGㅊ?(jZ)A-xHf=|ݱ.v[BԞRE+iZ)4]M1QrTnzC}J6yFU骪uj,йQrMX*aƭd Cb@ _R7*g3mN9ZvUH03 ϣ(mjS݌ݨnI}N̞^iE1!.^yiOK9PX. CP9%:.:sfc{؍A[, \p{!}Op]{ln.'-e/U|+q<0 ԃrKxh/t }EqI9]vԳ&DNSuMޮ9# H9L;Z\LsTK="P4>X >U鲏kho|~ֆm,@ t!]'Ul؂\2  !}0CVhɔ v5DMЮ(&@|')7ZaG(&ou>Q\&y8/QW1*z?S s^M@Kb *]xTَ8}+ iK ȀY0!]H.Ωr:tY0FƘ/XOR4c킝OSZ)L\JҮBqUrUٙ Y 5e@rYn,Yq'8jz$=^6wᢚ9yxO`S@ ش+7:SHðي,J׾3S1- ?R]O/D894{zw1oZ[dU;|ԺV<̣J︵Эd !,)fr7: ;0F Wwi[Z}K6BQHkN+ܚMl`׼ Go M1s-64ַ=fAʧYP'f<^qӫe#Wq,wÒGcJf&QÍkdJr3&M8Z(sR$ɋ1$d_E[0-u"tޏ+t 0Y]9~ƞd[R|$JzĬEG&t;ʸXo.'ͫ:*̻[Z:N= GrR u̖VIGS]$X5nx@׿vQRD0H@pO(/?a11$dyNA^2eȶ=# 1@M (lzܿ4'x ]xlvG.IKCYҋ%)s<5ހ:ϡ(Cཊw:uy nGW/;ꐧ$\F6)x340031QK,L/Jef 7Kac9{'i4+C*Դ̜T '9Lΰ1Sp &ו%D&\ 7E >y|Q/~"Mܸ7ނL;ksP{큀Bv{okモƎX*]vH ,3ʇdEF bh``O%&B 'c" 99 '%7ݕa8"P={to"£n/|@""PaՂΊ*yi&\xTmoHŔ*釫.I1ԊbTU֞U]FU{gL2ޙgfg^ :Dƥ0҈/Dc<԰d+gtLIUaJHfD%Y 7ZH5\7Dx<?d406J NW,/[Yt!K)\qSfSf-~|֍\#ekVUF60 %[f]5O2KL/AH-r,aXâ@/i-LxAY(YVĒB`-VXM-BfeOm0~iomR5Zkj1Ҙ='6K$/atqi|whyK,]62sOG'8,/&Hi& ImL|設clC(]ڃ~B=r;}@[V \' E* #69*a7DҫZ)n%| M$%%k NȰ γar}8(p[# {Ԟ%~>7h#!h#SVJi M0i;ԣp>Y6}G)co%%!Fa)b"ї:UUE YA:7mM-u/U% <2Fu< )LOJ("]~ !x;}}D{FZܓ3RJ2K RTQ~rjqBrbz BRBvfNNjBZQ~BrFfNB^bnjqAbrP>]ą2A&dhrUsqɹLV3SxdHQef^BI>P`3K22J3R48CC]#=}4@z4({{{h(9{hZOg $lSK XɂSmx=J@i<x0VTJ')i О Kv IXDz _񕼸 }3uIr,$$%Y4R@LYx¢F)laM4))jڼV`=; w n4Ycc  4PW Ha? %@Ee crƺ㴦oC5ioUQZc?Z]xVmo6,rz0IPC!An Ul"2%t^Pd{ɀ};s Z\B2X/Șb#0iQ  TLRfs"HV E&/PGV((sH׼SZ pr5]-1tPUbș7unŚ[zzVzǡ)-_-^! uKK)u~ymN>0)X1UBǝƹ܊kj 鷪ko" tPHr}rofUv@wh]M,%tԤrk6h)wx5*X{ 6g/TFL$Mq8s|"bU7ò͐ ۚk?qh\WV{Tc`>I|1"L|^_Bf)j G$<X1>GEH77K".˒l>%5J䳪)0xsnݰN-mf> f1!Gm4t_]zN{xuUmoH bJȤTT*5N%iXŬ]6w~3k ,33CxpsX(-PIQceQKQ4;M87 9_`mR)N 8v?_wHQ|pfNN}8JEp=wBppEq/4/38Fkg]iْ|u_i)"S pQ0K܆B̥jAeDK)^ʹE?*Q3d\ȖP. &D p/;3rxJvbę*T, d-u-o1X,M'[J՞ŧ-YڎU꒕B΢LL0S(yOy.;HHI*_zј!A.BXY$>Qt-ϐV2 UBދdRexNOB,{Ҭvf& `f=̇c譱*Jugq7H &[3~M_Ǧ2r`RG;{+C-mklV Y8&D6HƌkX޽{U*l"m0lq=:W0sJ'=>=\x(T^KI5Q1f̼+owQt7Wܯm<#PBh+#Z!ξ1V3[hGaĮ'6Sߧ֖ h84=lR_ڐP^_}< ٰͻ[1E&S7o,HIZTVL^f 'n܉׏λq}Ɇ͆ ?xx0\kCe4:` o /AsGs~O~5')8 :\T͟-}7k&V{(e'B}ݾ&ގ(k^D‹ 1t-ӯޡ-)1Yz gYq7G"%DYeLNvNIVݔp5[(8^O = uftx}=O`WM+$ S R I-&?nč088?wW 5Ns>1x.tR.|3)}BB$g=Lvtՠ6\5(0(:Wk1N0NM^N@7_9~-e rdԊS8d7k6k.Fd:'פ\PcJI k@lR).c;Ģv\4-5M݀q0xmZ UJoH<%԰oW1p,q/T@ۥQ1llMv(O_"ZU3.3xz{xMJ@Ʃ 59A/XӒֶ Elz fmawj aG:޽ o~vgnL \ \skB']Қz$v ?1 S A$b z*Ii*x 3SB,Aot߽T5?vwT׶r1Ô^:G1x7i/ n>Bb? eц*NQ Ga{`na (u5GQx&+ s2GNkK0HIao/ vu_xVmoH~ŔNwJc+A(wj#kc/Y#i..Ɛ6p|e^yfvnǁHTϸL;.UluZpnz*|Qvd9\\)к\96zM#EIdq-TUOt>R/pppAePqUBD |>wB:~3Zv[X7rV"Iu̔)邧 BV )AHQ0+J`IwG^aMs^"'Xq4lՊ,RuϋRTFrBXq+Vb {fccr'RB&3ǓŠFeI2hY(ȿF~Sߢ,dVuG[4qqx9+lC*80A7jfFea3>R! I4N\B}ROD,>VO+ųTV+K rqOFخTР8+is]g$o oL|N`_OΚk?Ljƃƍ ȳԐg9/-J"IGJ-Eh- 7 '4iu@e\Y`3`ፁY\;mm:YxnS^ 7[vYo9k™֒!h*OId\ Ki1bg(s|]G<Ɇ9:V.OX)"MWn(pUhޝY$aΆ/&S@f%dNn( @9;D(zwځUX"BLre;R^Z#`<_э"xNdC7-ޝ $-N}S}@taqmZ 0Jџ9%M* ?3 cdP6cxQhmjCe/Ľܛ1xVߨ6T틥9 uF۲iY҇e͵Dbo2 Gf^̘iL5//5Ju3j7ON@o ꋡR(`g嘿mIh%а86q/pWo] ckNسc2`M:EgŠ/@EZE2 ^6~%ĉOԗ^zzl&ĸi^0 y쏷oԻгuxr\} +;Jv蘰*Cڰ*Gr, 27r*jM=q> 3L}37!S8 #=d T듔qxUm6L~ŔNAI/:. rXMmZU;ㄅݣjq$3Qk1sQYH~*yq7B9C_JnJn6FO͍lj^>F7:3}7&~B:W|Gwe?yz ȇ9 <.ԣ4pzk`;YЪpت&ҿJS-Ux E7h(q܀YJK9HMpZS\(p3 cP)i -Em; y G"HEU2Rd g^\x"^d9odU\EW@yu6mdVN4hghJMW;Ur~ `YsPn+mGһ˲ђB"L5 m| Q4H{ԮVO e/pP)'}RF9(?wZ0NxeSko0L~-AT>4D)F@M8jp} Kb{9.ӛN(wF F/p7 ;})T'+rb232K9dK5fmM~EC9ċ80@&Sr55\ K}V렑i^H֪`\kx&a8 9]8{P`2+*UQJEj$׆cb! +Z Oq.Zx TH K~vGFbϚJcdj $|/%|չ\'$mLt2pۺiX>Yr$^ms/vGE% cϋG693%фفհ$ S1Ve IZ"9hɫ~!\jCvC(IO(0DZ Y #x१Xw <xCnv3D4<{=M:`\.VR֮aI&I4+z +\3F5{:Xv#|-Xn HޑeCz$N!$׎*Ր56bܷbNqߑyQiq?/Y֛*7~gYg$Se9$v=\:ձ?Vֳn V g[pn1=sWCp\In0?BSZ vCƏ=$Cz x3\. |vPYa(6p^}~DX w&Ɋ #i 8xλw-3ڗ+M[l]ج[&c-eyǽ? R[cGk佬YBӔf:[J.4wϢyK LL2Kr 2SR LΫ d'&xVmsF bCf~pmgJp3Ĥi\'zw8q݁$ ~AϾ.?S.i{PXʨ vk碝Ez07O- %hBsx-2uyuIJNL~JSjvz~vF%xsC2\/AޢN%Ī%\[HhLB,(f_aњMӎk\xOl"8"( ݍ㮤Y岫:c|OgTFr_K1u`ujiS c))ȝ7'? ]2gۄ5ۊH2p k(t-imXwO#$Z^= \o0;hREŘa$IP\DvfzqH DqLtG6Z0"}j,ggq fVӹ *p{4RD؎CFƼzԆDYV顲qbw VNnѧ4PaqF#^M;:U䪉Ĝ}8& p6~7]2{k T!IN^#xٶ|テh&it:D0;c/$ezGT-/i@, -_`hC0ܶ҂^ ,+ՂC" %G5CĢjOHIholaYҧ_zlH7;%PC#yð3+u&r F.wz6|2Gm(E>]b*bR½kZե]ÏhtCfz5zEBSa,mXS]^t*J?tF`lg+%g% MTw1dGy%a=RHXR%O,&*B]ҳ ֝NTlY.qg BZ_Q,Ӯ;ύЎ~7~IsƎV8$"ա}䌛'G*s2s%<`w]hVBbK9*p?}Ѓ4#:h7Lܪ?_X";xK],8,(qp<$p{E o"aNp˽K1?&7xURO0N/cjQ!m9"8Ŷ{ $ ɲBu~:O'ңg0VoJ=C>`tgu( ï_{pG9x32023046xN0DCN*T7qFh@1K S̹RBju%La)  o˶-.PjQ벪F6hqurN…F(+i@ߠlt[תZx"Oi\?8|E`1G&yx O<'|-A:O>&WX|2?‡@ pvį0%ɟ0sK67C7&{X8K!WΑ]sC/k&;xRn0+n6ݪV @$ıؓĭcG!=C%K Cy޼7=lK(+Br*/IjK2VDVtFd+YzM ܮ.QrEkU>6' pf O8=lmQdY,o[#_Y9 Oby "eC";j+'=R6$Mtl;Y6DO?Rzzw-w㖘rV! g E;B92; "O%AH)U~׫sbv9Sӳ|Xlݎᄚ,(=!:q|(/س"wClB\>Mϼ 2\1&6++e,WyK3Ӫ ٪})8GqVw{a(_uti2[|%(GC~>:K)oP.3DiXzCM+17M!Oݯz *:WM~ľ(xOo0 5Sņ˺PT-Ėv}n6$ I3Po n]S3Y}>}g >ǞP]1qhG9548=8"M{,::17L| O/󒹢_PL߷F7-|ҵ֊<{N%'N+gOW*Sas6m7,?- X?ibL0M| Y83\822 $P vo$^a DH\i,L gާ(쪅R?F`\i)"[DYrid+y߻?x&Hw8gL_ۇ_ߨE~+[| s݁(xRn0+آ@(MKlE.%_JI\{!<d,1&UeU*W&2Oi*WMAQ!M*diRIy7)RRV'*/m]GY?~;RL͞#5whq=nwϏg׏'ј[$ı hBW<Jj %7ta갨ыe Mշڀ8Sl.>Qӡs3xRn0uhlH%Q$TCy2 K@RRݯvBw{@!,VZe5T^uY%B1!(bWy-Kܛk%5)-L q LVUh\yU2佄Ye/ݍG(#Fe@ejX 0;@Mc"HXEہ3`h\ `p&h{ӓg򶽈h0zdDXAQUf\],Ο0@ $x( @WwégE:Ъ{|I[OŦ`]'z&Mfɿnq•a8sH<)xZgJr]b,ɭxAN1 @}N=ș8B80:A!8lUA<&TIRV)ŐHLx!pdC%]KNJ/bB~K"ZH1:i ohp2_yܯN]/)TeCOǝ~>M {Y_7C3;>OeQxTM0W* 4MY B,+ǞV;vq6Y*MχCX cQ%~#WXkW `wh`uєy|[lI_r+ mJ=1vGU:|V&>d*nŪ>ϙmB@t#{WШо:W W::<eTP\GPǦAmhxQ~M4"(k3:z9).2D [[5y HB?x 8XuE`S}CCLZZ~FbqɑRC)T$8KgRt O$P&Db锰YYUB׉.'8[NW+a!rɟ~, ;Bf'gMvb*q%#JfdSi>&6299 Q}RT zCSRqHҔ_Jy*"CcI={8bex./ SO@2=tVyjԤT[$.*X0Qk'3- 0#49̦ubo}RRE2xfMA!a81QK0VKoxrQWu!;u4M3`_Gם]|L %C !xn0~W N*PTRI,>}^8hhgSDYT3^ [rVri\BXStD+9eeXPY<+E!!ۈ6`/ܜ~qn~,WJQ(Lޥ2.5l0O7POz᠓iw {BFZ'7@-py$/ lPraQHUtH0Bel@ݪ9{|`@, #4^ԓ!zpw$ F0#Yzrc3x֏УvO#Yמ\h]hH|bzOBJm#b>MX鵏FhgnVZ*mGz~t}Ōy^shrGr)܈Z 4m!&^Բ!fXbِlh JW/tv7_Yt[Y-)tK0?Og: %*4J"ZA)oǀj+)P$Hect ,^eH۵cZAQ;&eAטN2};yދg]F΋Uf\։g}C~@v~{ɝm zRlm{%Gx6ܝw_>{K"QbsjHI!K' V?L]R[6*q|ƶ5 pt~듞tԏ8<i*KU:{wu9@iwBay8':7~RJooSjxPMk0 W>Z9qRƲ:J{;ǖCm~a0vCG+o 7E&K5g27R9I. &SYPf5הjYj\񌉅$!EO裗=B3GqRтR=Zx^SEdF-(ua ְm["EuCNOIڵ<Ƴw:^Wq4K?QC"uGG9^[ 9c ̚/#{X&HI MKxSMo0 Wp$b؉? ): +V,SVY $%{oŶv2Hu99e/b2- 0a;9iV8eHe=,%EZ$}hk?Z놇H"y.J/QU!iy) _AxP-<: CkzVTk Iynn5X!WP&k=VJ3kKEɍraϵzП5-a6šAGFmЖSPG$HK Qj2jz~আ!eT$zGnXB m݉j;S@>b|jHM씩mOp"ֶ|?Iܽ@&&2[>=CN*75w=8N2Fa^4ib~b `:G~km);ċH4^姫=95I)-d kxHHX>s|ߡ+J?no2o03/~:xi 3vvHϩV(!axE!L9T)1>]*'G W-lC;-c_Kpz׿g8N5~>~ ~x ;0+Z5v^D-RAQHL-("Z nqfo.Y"#G$ZELhX$J}YF5ul) ӖNhTsev\up@XCdc ֛@n߽J/阇xUr6}Wlbi*S u;f4Qm6$ |}%_3p3`j_ h !ƼD5,%| NrbͭOؔMXD<*`֘XkƂJeP!%pv`lɓgFwī h!:Xϼ'xAe)F hu7/\9<\FFo9Yy_)G0pȖq\PؿҨiǪ wQ '8g~i ?+x}Rn0+8zA 5Ѓ ДAR KR| ZDi3;;艠dM6IK.ugŚis*qBO.BղslJ;8`Lɛ6f ]42Ն[9 R3CzHW <\*L\L(f DMmxn`CDPN@>~_.g#SNjԭ{*@<3Bt6Y쁛 MOlD~uu=SL,FdIo4{T'VġC׭<. .i?; ꃕ0xRMk0W̭nֶ버$!=J㵨-I!`{o>R QQcHU [ɟ6͡Dz.*}؈ Zץ<.۽ne٪]U5J)T)pN͙@),1y8a>Α ;7mTYR Ύ6%0AֵT4Ǔ[6 `"L 6AO<9a%8ꞱEhǗg0^#Orpmt[,8bي˖. >gOΔ퇷:. &͑ A{`< Ľ춶n`c&L=mbMv&6c1`1JsW )OVXZ|9_£|2\L)+kpe/a2#"()x_o0)2JI&4Mbm(Er4L9 ycaMmiE5o!vړ<"' U@ "q Q>ֱ]yp}ɺnbC2=l 6GĺIwa3Nn #xU\tree 786d13b663e57890b03ddd32dcd77f11a93f6dac parent cfa7a054afb355c79395a89cce815c769649f9c\444059528 +0800 tpci.c}est_pci 0 TINFO : qNtpci!7_61QExSn8+`mWRQ6EݬkÛ5R@R6S/١HI̛7#.K bVZ(+WI^Y.E%\)L)fJI3Ts8:=}󭣪0QR")H$!UL24ΒTS\gs֐@^-WP N3X Xx T sжBK;,= Ԏ|i~fYo_ GX]#C3th 4?'xDCڅ `UqGEFT7'Rk 7'НDxm D{V&4Nnd6>%31248Ghmnۃ щ¾4BV2Z;k?v] B|hgV?5yuv[>Kߑ{S=<k6 4[1Ex 9_?u_[xMO0 #m2U8!!IN[5Un_O'zZc`D%'XŘ,I#)]2Ixk9թŌ,N[Dg(%808xCU][;HȲTEwRK)ijz?,?ly}IC \osXpx}q~ᝋxU]o6}ׯClYcGђ]6X2Ѡ+Ej$a?~mѾLQLsνtX>y'IRi399'0+)~m _A|@8_(Zi-]F e1uf`W!<-M,]_VP\˧P R+ӰA#=37nWO>*R\bPif$]X-@x߭0hm5X 5‘_k,r#G@1U +(ӧ~k?+uh%@ # Jmj4Y3r5=\7Uc4Gké !=JvEȞS;H,{ukUDgK`䖆!%cAtx^c΃-\Kj~"ˀLZMš ,۠uMC3y՗-#T0tei I o)kUk2pHh\/Td88C(](} P9G*NI;a\k'1wnaNn )3.!Lg)yLJhO_ mS07hKtQڕ?5؍'J=~us3jC?9tUݐ% QEah:r: yu!J'" y<:̩!mp|1u(^?tp2/p@"[Wz;_$@MUG*)ZG#q]ѐcESwU:4 j/8 iJA6`TN{ l/xFXHAe vyw !fbjE]$oai>&~]lF2kɤ{gϒ>\8Я0 ;yx>ap{dC,H0B3$EBVwo}~l|^-qпb08a@ٺ>B{O!2L)/&Q 7Ʉ,>{~ O<.|\YOΤ/ 6i"z~Nd;ƥ֝=zI(o'o;&nItk}d:cKL'^xAO0 U6h'qvSؒI7IApG\?D h4Tv iu+{e8#S,Ѝzl猵$ni'O;&K9$81!/$/ҸLKPV Up'S(#\؁7MpL !0\cfB>cqb!83A5o38\r3k<#L\i#^3.P;`I# 3\V}^o)ӊl!6B9ҴIoO?+֝pxj0zev!Ci=Z9i>}=0|3Éu[;4IU7ґ1AqִN=u{M륶-U Ɨ5k/pV_,W:A-bg "`(J:GfV1FBݙ)sރ89ĉ#3% 9˚HbvO=V'FLLpޟzʷL}?kHKxSn8}W @,ɲ|AM6@NMȡM$e'-^dGd@[>pn̡0y2Qy2MrY$gq R5Xy xf} h|8xL1d]+ai!,05V̧S(UPpW\g*'W^G - cvhU!t|CG]:m}g,f X঒jXǭ_g^ߦ]DLKye*j4ЬV}h J54K2POP*"36Voᅵ5ҏ7gtG:D4ZLi BKMGӜ;QlVX]kwL ?}w ?M;1RGXo+*rB鈀_/=o/f=.w={%J^\ bdžk[!ϴ! RT#CQZDApHӟ`n?XpRo5#4:xαj0^_}kɖ|H"eծu(:B>.RT@q%P,htbQ< s ܍"sJ4Ɣ1'11z*$L} ^WxOuK3]?z}f^_l藹ϼ~ZA[A_ vߕ߹9^vS-$VYXxTn }+ֵ8]uU2iR5U[=Z.6 plڤq={BpEJ42Z-H2L1[It.EQdW<͒9\Z$XJe7Tp6yC :_Y,C' h+ʊ"/b9/ Ĥ-š4H9Zހw<8:ʐ;L!j\:/uK׼T kZ 3w~qN ݄SGP[wC.xn;ٻpSK [{/OV s5~CV) Xևk)myaЕ1kLxb#]ɺ^3;Ǎ ?S땬9T, [{50+-Br$ޢ# .M]p\-:xUێ6}W zm"YhAHc@#E $/%R%Eԙ3g̣a7[z%|Y6[ g"|[ڬM%_f"ϲ;gb%7/:;kP`sۚ 4~ ֕hڑzE1֍D'n9cyI!:t0jzX¢.VC Xű^\{ڸx5@եZpuk¥qSC+6&M%5I\v5 Ph`8j۞P꽷DYr5".l9a`'epf1LA{ѦQzt!GOEAJt+ >_ bxx7գpE$‹o0S|pw _1Fr۬0 ]@bR4zD MȞU# 4Gczdc;6@@d BZR%DflH8XAl_DJCtt[c^FՅ\̥(ʧz+ԢHeFW}T{$YlQbkϝj6&x"%~?P N{ٞxUn6}W 6RwHuH|nZP#, "P7{eى}K4sxpKDሬ1 (rH$b!慮U3 od1`nq1b~yawWzp+g+8O}?>0腾=",Hz=7KiPe$k*,uS&/wq\T-kbKwW%hT0#<ۘŚhtj!_ђFJ1¾n*+#*`'ηxKh 7LRM&<9^65*j9S*;Ozpt8Rjt2!h[wra͓ i]>,ܬ:Q*Oq+ u JؚgUѝ"_ZomIx340031QK2MKLg0[%z_oNS5JON-L/Je}C~Oj gIkb z%I \N0np[FT5G˒W~tuGҐT槔3,\-^+jYw”&f&0()M͜{9gJwuNv(51$#bZ;mԙk6toZgHO?wbs:}쓙$?$13/(-3'AVVY՚5E MM<]3R3&% j9/y80,!쬞{l 2o@&f-RܪB2Kj\]|]Kf+{#xQA23/\=RSrnǷ om|̜ݗ.P=QiQ!G'3a/C"628]4V=x340031QMNMIeuv&˻Br~^^jrI~Q1,KYTКcLpE%y@E& ֮yPp[VEE99 U=AW~xN[O* @UU3}pl|X\ %,39U7( dT }o! 2rR V|9YuߋJح?zNngyl_Hf䔦3u|ʲŠSʗ4_K)MIe8%ʽrz_wZ?e&SQPZWAI"o-y g}CROoo۵~/29*Yp _ U X2U lQ!CYisz&T{&D6,!OD%1΄g\dPHW-VM(M-zA4LO4V޺E% }{R^(/9q.óK6x}y8T_ǯDd˒-$KUBTP"cb̘3c %TTdIe?=Q!KFTdMà?<<]yϕ;!Ñ p@^etزb>/!P(s}.0sŸ6ɓ2dBPP d+g\$艉j.8 1(I8;KV1 c{v U۴l ۝}Xfdq`Qa?h,ڈly‚~˴vG/ ix>X$Z;ӧ#3\kYp{cPcs⍅L=q!3DbѥJ&Rv<:]Xt+z gxVhMfМ-ݓჟz4jJw}#zf7?B6Ϡ8`'e$F5+RݴGll0K%\H]/vkO]OE =/ђ_|4bAC6GZ7oZ˛(3) +9T5uHaeWuF- qa7Ҭssسxrc|},&)EP4Y(|3\O#oXtqlk77*Τo2j3V2 =V~=[6U5ћ(vϱ7/K"C٥z4='>hEXHTW8Կ9}a'K sq#ePzXAF,3 ]-hPiI. N;⢓;ú*O~G_"찓5ɖ:5u;Mw#ƔtpCѪ:չҕKX񝂁 HH4^livcZ6T G=(˶s |>h<5D8i!?JF$a//Z': V<|!۰,Td)`.L{7SpF644EOq2Ut秹w xb5?馧n3ʴ7|FqD̦ !淛E^YG!80@^fcS֑8j% >cԦn1Q'3 MN8W.U:~)V8Rawޢc h5=S T)CdGM|Tbk#7Nb/O>}]^@ZJ@vpjq pvg T۟'Ml1-6gRSoVd\(cn-KMˮqi^|x\y`)(>gt +0ѐbh^$pEX@NϵXkCcYaqa,)ÃX77zģ|jl wVCM^Ø3@%LWr]aDC{_* lGlvyܔLZ=#OIUYgeY׎I^<ۥ&>7>TP&+ QP 㯧}EVUSE+OH,=^y%b !]TVJU/nf9: Aanf6lW^OfM:xZSPN ڹ8[?A2)~Sa??R'J DzNfw *Ϝr&w8GSkSY6c&$jDQT eiw P|zBh6[wMgO" dT( F DG׵ěG4g4j9?(0H%'ùIVy<1еB'U|=eeWWdZa@g Hu[~2 +t1S*Zm"d٧֫7Yp%vfH,e:G41 QB5p9#cpSчp uAֿyw̼:GapΠ1jt6)V۶g[BAjBqVX_W 2;Da@\pԮd'@xng$?@(3w6C-;ʿݺ8 )dy{Ogrqq,+p!cZ8/*b?QZ++߮/ʱQ8Sz3]:)ɺ[7:yf`$*©_X#M~:fAJ>hUg2B@)B_q[czo Ct"dh%qKH^6_>)nˆvm+{I̾ݴr\`5Cs݌\Pe׺wZ$i絨>D|=kc݁awEkm ɇE#"\G4K&.xFܿ02]xg/^$WlWQM'i5Fn%wXh-g3K,hg F,h7uEWo6de^vt?¶ -x9sBn}%#ٽ̚oU$֮Pͮ +x9sfuX<{fG]d2K7 fx蹟VC@u)ѩG`x9sf{aw(x=Z,[x~}%q-M-[ǝi}YUjk^x վJLbc8 D ήxUy8TpYnv%e0H)Rq39̙A,IHW$b)"J]+)J%DwΘ3_y=116635]NBDelP,Zmw$bg ϶fT{YE 8A@kV ILYP5Gkz//UziUΠ]kqhd@註75Y@ޖITg <4RYmExp BAsi~Хѽ4^5pȪ/>6BQڨ]yeL%"Ȥۊ;:l ŧ谽HZ97u#{8 IF 4d_N%Y_Hv幢n{P J>*?RO9|wl>k\\xݑ\qg!0ب3ij;v<ˮB,TdDK~+r6wܾ@~)Y0Kqkc^o#vjq<=;'s3ڲ"TAhAG.9}e^<#MKEN tZ7E%-x\]vM1a * )eQOuۡe*v ` :Z$ X;W^& 'ZF&*eRՈzvx;N;2"Weg9I,+xh˶P6u(B<=y#յOR}waX S3eT\ "hg ,C~I#{9Mq|=RȠ 2%0anN{&[?T9\lSQy mtib pj΀Mo u +yd8ĉC S, "hx:Aш :#}qƄ2ұ”)YPpYh d"XX24 $7Pss( 10*<|FtOJҷdy9Xo[Ѿ }o Z;!3̧=ЖL<}|1b!5'f'r=QyQiLJQVGo?^5ʥpIad&ӰbdP>̳Kl Կ8)#:s/쏊7]0 uSIb_,:p4׭_,^[l'PtC1θ =]@ޥB7qyR;fL \x+QDϊNl=&!b)̤5-\q?5ާ,(PP+݉/:TB'ȾQ8A_?~9]Ra#)2AQ0 #X+`6"Z!e&O",A&C3Z# #M$j$LT&zGB4ڞv.Pf'=msatcmUB1a>tY+4oۊ>:"ālVXG.v<ޏ+́HA^chfLuS"6bb{]?A[lYx]aC BIEkڔgǶ7Ggq @PfcC7λ; ŵ"6*ƳSLAg2Xo&+ #93rwU<9epZEdH{rI@,>VH¶`WϽ" 2 #Ux {2xs`vGjic9u串d뎤7CdN?3{c Bi|>sh: j~YplIRg΁u S=I1.Ƀ$ͣ>}ֿ|pv.J=qKwՆ|r`>N~u._W R;nXtHIK4tZ:,hM}\c>_7`铋ȐǵkpA}} ^Ūh}O JK,/ȵ*z(0]63.3LRwhXf5xۤ zqLH p e? 5=gǼ4حQ"r)rnȸqќpی`'KG1!JR zDlgKř)Q}~KdF6dG~ #<MHлebiʜ¾iV+w?Q$L((_+N9~ DoտO޹=BZڏ.|#j)ehuzA6q>pkVDH \?H ^\a.i. +0 x}aٛdL.}|k$8 O8^ ݊߼,() 9 ue!:R퍐OxPvH-q:HxH9@/hâo/jb!!AL e./ |'2]tgǦUkzkBQR;h0ಥ❭PXk @>hVMQ#gq`A$J>|Wd]y߯"sNؚWzI$oLzy/w}}:K/~;KfuZX¢=IFy/]6J3 :{d9fu-=3# `ϔv]Noo;svuM4+奋թ(LU%=$fȫϦs_r!q]{RQOuW}\ 3c&wNbX5dƍ]EMITqQP]_nW0tQ$Z˧)<֖lykڜ@(H!4L *s_c1tصQF6cY[S8ȷh}m?ۏg1KwTZ4(~Ǟc")M,,>)Q!8oJ+2**{LHd`5yz|F5{/xB x`>Zrju5q`Y~%OyAUVW &Wr 3/_O2ꃱ3kBNԱs b֦+roYFßO WcTN\쮝'>HL`mƀí!VZ̟c/<\HKc ]מwx{-o8r6쭲)bվd߾M3uɜwK^IU(%!a GTH{)m ]4nܝfB+ 4: ON@M6cXhԪ~ VO3żq Y|oiѼX;k!B2۽'Z5 \Z:E^KQ9n=# .G7O1aV3fcꇡ +>0Lݶ@/77`8{PMqJ93עnn,2A40W߾ñ_QNO͒ 5$B`@рث2ezZ@{m1F 9~5nbmP.gՎ&-.f&;yYLxu;m "a3ɉMۦ1cr4񧪉 H:etٝ<GVFxbT |}yA}7%Ļ7-/Q+"~4x)SdC.Htc~wUvγ{eFx'On#}4[O?/IXx)SdC.9#{)O1 \ywn`fܷ`r# x m OvT,Β  x9sBȒJpqͲWnOJ, ةxuw8G(!2C(*38Y0 !BBd%.$;}qV돮9ϸ@CKV g8cNHTH@=18#(locSY_a08hg]+>|#sӁ4vjȈ.xYiN^vcc.i<ڛct QegJ #c|ێ ?V2iLP8@?Օ 2t+ى( {#x_/F*-Y0e+ P ~t{RAS7T~Ҧꁶ]-\T_[^8OGwӣ B2ct9w~Ga-:[=vL YsI!1o~Uy{=T5`K|oNLx$f#btp/ 10ՙ=6&eY\=ߙJt#nJ#_s/dwfMݨp8hdyceqx{%[2J28V?94z5,Մ7/E*!`żWe C"\4zggYt=l /_ު֖%;1h8pN,Z䈤oW>BGO;܌Vw ߨ4j'ln]"h l{3)_ T Fʽ/Y]AnK0lN先sZ\'6^p$-[^3]WD|5#b8gG(||֞d& 1-D{|X5 j]ڻ>Z_^h0ZƑ3hm~f w$;ݮ_wɬ!!? ="8L~79] }=l VG=z綾R3֞a4 (OJDs8/ʖͨȨS ˮ'W]XE4((&x{w ?78^O/#ԁ ݎ>5="MpgY*)^c&vag 븄/"pG3,`(- zH"`m,Gtu3ƞXPVbÁk8t\/4ӂƦ伯SBܾQgj?s?x@@el)!iő,T̞&nZMqˢAɩ*0ۢzm|EygX&X#o-Qլ*_:һ?\uXRp;5<pn:U *j{z*rMT!֗# %Om) rܱN!՚w\ *kj1H)T;ZG`[oZlUu%=#ZހeJMo4oYE]SՓiJuv8ۃfF(JY6m=ηY4سrRˡ>dbQJ3AÀJ=,&?N1`ANQ"\?uJ̏33 u>@5hPƶB@H P;#wwq*s`yX2C!6G8 FF$*Y[^ hhcE!o ]?s8*KNRX(Q8IZ6Q@^߮'Wb(wlJ Ó5ߺFK{Oq2^Lbv}Γ!sx3/Aahv*<\oj:PO, H3O353g[\S,|k]Sn̂t?*:o T@T4.]:WG11CK t g˄AL7`Mz+R갘z{QW 6ݿՍN5c`ܘ`@^ `͈ }]xQb4Z:ގ69+`iBtbx˓J:q3F AQ`@B*A3!ѧ$ Rtwo3䛛*'ҫ&/ ` MI|>5T7~D`- &<~G&2yMQ2: Ntr]{1 /0C[z+>Naemb>`PP +!'gtMr|vυ>/Pi'===.(g#:*ɧi6 9NR+< "vn3=D: % oUgxo[g$%BV&V~ 6ގRfp=Ϛ[¸zEl rCoRap$tъ幛 g 4Nq`P?T`Ab_̹[h4~ۛ+Aaưt'dzcDxќV/(Xg)sgշ ^{gUtB$Dh( ^=)"͹ֹA^}WZ4]Q6 u.t}_SD|QX89sKL^w=x' ?-OA/Mgms=`7tDgH, 3XjS\y?EO@=?%AR~PXy3vv)ax,߯[;]${%#_#SMG,X~ZP/}+fo;C* -XʵVxJ]rǭqđ C 5kwϾ"7I醦=hW_u<\s͈tX ]4N8*_QCkK'D K\/fM9H^mZmUټC٫0̃P }>|uiLO4TgEt _)$c5)2z48bw={h"ȗS?lT/Mx$6i#3/OWӇyJl KBʷG+ύ5Gɿu[8aGQ&Y7ϛؤ'|)[huMi*E{c?NlyYpʿD0Hb| *z#/[&-!{쮋$>]("ˍ?"\M8kYhWRJvp0,MD0a\+,K!Rg(>ù>D1X\w4+!h)EQ]K|ϟkDDҀu7(Q%JhC8z>iX_"69-L!u!]4 |p% r8'~1QG)gTapp@9܃yun2A'MOcE󿩡*vc q+[\ a/v[2U_v}|+fa% q [SBɇ:hme_Ry`8阬9pǗ'}8+:}w,XYkznnyO4Qn ]5b7fdriMıݔ0Ƌ^೵Թ''$jP{ZmsІK] qR :G*Ρ\! &~ҿBuU95 b c?u`Cȅm~_1vȬƥrsP!·J'E1qC=fwRHe_94X Pdo >r~ik9z8M /G>uJӦW`[&m}^[s]"fw A9ެȖ3 }22F>kZwCKkTCl]Yʇ[6Ƶ!Lf W|rkygS< Rӓ+85YQ&XCAj[9 1Iw~V:a "ݧ\hԸqקۍ3 M@0_R#lzŠrn.3xDsP-u͜*8,C}ƻrp91tfZ@tcy2rBV#zőqyHIsWʾ$'e6+TI 9RӶ6*ڿt-6 `t{~Zd9 7Һ~pɆI2 1hz>7Nz|B0e>r E] q.%֚'6^O}H i Vmm*=&,<4K@N2$.c5$@;.M9PMNs@oJO 䝭(ny3^n.NAP,pfu1!zA(6  yjLz[.$^.K:1di<>RxAeA"sH,)'pkq|YYi${=S;%ǩ j-Y[G[_\nd浟 -3p"n[|S'܊ }sh^1-59@kI^ƈYN, i+}:csX{^pFԿ0 >Rql48}RM|?U&eϾո3(-NtzցA'D?, ;OjZT4ȸފȹCRp@`j yȓw;u~^Ei_c\Sm#^QM Ǫ6^GX)q}8 b-iz#< dyY 8F<8uH"{q8"hm,:'|eCwr\qMFF>8$WT@l.|1 ww,0#TF'W)u*N<<qxk ]-y ki̚0r$qAoB۱[*`3Jt];"+'ڝ[“2مXǂtSF]NE 1`xQ蹟VC@u)ѩG4@12䚸 %ԍ9œ&/bdM#3sC40000 includexͻGe85ݓ)e s{Q,kReȓO i] &%=0UI& $>x! ý~D\r#^#jKx9sC3SHTQNs_j|r횉(d%甦2t N^'LfQL܅LbX|ٻ'k)Moiu&YFJQvĞ`ǥٓ9XI6 1xY5)(H-%݁@I7QIB"嗮ׇ40000 firmwareKEF :I(/w8Ɯf?a[f7+"[׀{E-zF!(|l&/|g :z~jw'Jii͇I!xgg5C|7 %Ք`i40000 clone3֕x| xdýiڒ7MWb/7OJ6F_9jr0SQh3~A&7"R|[fIz ޮ5I(azcmDen/[{8C3E z90 YuRB1 }S&r $y#T tYfw攳  ƫ'>T70%'sXGVM8mfdH\(&ti7KP.@&w-6Sl+7=ۘ40000 umount2Gs9W!κB@1-sAĤDc}':L40000 unlinkatqWbA<{T:_~A40000 unshare7.%!|4LD⮱R40000 userfaultfdO s̲΍s< 1̌IWx;d{2de^Ư!xMRĻJI]y-{z:,Jx'OnC fC6B7eqps1v 4zgmæݯ xPZ,Pw=J+iX3<-Qn=w}tE Et˾8!:,- bn߾Aӥ{H\e47!~L" <lZjZMpBDŽҫ8و6GT(N+{L3L~onÔ@,M\, =g9t;kS@Q聴Nh.ǯ/0 .Li~;Ͽ5L0Jt 7aSq!`Ĝ9jՍy[f*vˢ iɺgo8Q<=;&a 0-y6R!zD *565b1lAy\F~~Vg͔CSC -C|і>pYts2wJbL JJD32TgPY*EC1 a'NÿǬU]oqڒu2UMş/Tj\y,6 ݮ*1 "]ѽ2ToG٥Df" ߗ+:$I>񴦟{}{#:[S| 8Dua$|`8a0!..zG##NN:,BRxc>]r׺M(LZvFϙ[ll/G0%ϵwMk;`' @7lJ%bU]PR!C<9w<㻔n  'Q )`V,'5.>"IaoV3?'7%ޔj("rgPD" i5.rb,arO?~8>\~:h퇙 iE};nY⑄#띩BIѭ[XN$~u\-(1&k$j^]V`,%XTkS*Inr_WjT֍Lt7zQq|r9kÚ{۹fJKA!nVMtliAUO0DEh'S)oe'7h =@0"v}N%n3Pеe62@m 1xIr|/  "7oSˍ͘j$|ޮIa\ OMRH5 I/BYu/s7OW[񶮘d#PAAwf`@&9꼅ƢZ1-gE/lcyD, 22H9R]в#z9ܭ_]oG꾁 WƫQ*+)Nqd, w4WP V0 &M֣|Z|W튯;W(gPt һB_J̐q%a]P_8E '$߸'[S_Ca<s@JA:[H 3,(쭦Br~&56s@qH,SHuɒf OOjׯuXӟ6@> DF;97sozKkè'zsR:UsGayO'KU[(M$g7gaz??׾[U|o7 URto(9&Jo?X[$9<)DgZUQFw =[% )p}FTyt|I˞f@1)66`F6jgb20xK~:tN(;0^37A HKkpt~^Өq Ǚ8yGel-G2sc=ę]o<QÈͩrݔ8T k|`j}E"׿â C"D1x'[Uu\K;)ѽ׎8Y8'aaS+߼M  Hu5L2 Vh LaF',v  LH{ vEKâ[{הAUmfEa~1j~FLb hn!}Zlܕ<:39GTz=M_IdC5K/rʞ%{>i5<9 'O<_mQw)H@ȝg <*ծgشU!k*Lֱ!o&ܖbN( (\7%$e'2%:xkǡ߄b "dXmppq g7YHg8뜴b(7 2 TF|j٥R.[,`oYnaBԚǹ!Eɥ f=c9{*(2njEP'$3dĉ컹'I@dK2Vsiu[I߼z ҥɩ u48rYJpMC!]h|'1Tl?]FqixslICBey5U3={|l06`ғ e }%jx340031QMNMIeH{0=d%֚6A؏_21"hO ۙ?izM5M"X_ DOIm~0!&%2٠nJG̬;Ǭvo17\gtX@2ic3d2 M9Pz@{MbL4|i&Iv/~QW^YRɐJkAzP^tZS?1;cJx!gg6Ę2}074&ZJo5ˤvxe{Tu均!r\_"AAyivvgfmVa!IpHSWE a ƫ4yck4K~ϓwQ* 4of*Y6;o?_ J;?t,6J=`6l6X*30Hx<pqDžY5}E9Fslp"Q+WOy~YETt9(ڷ~ݗ6֋m/zTrNWEEu^53j M\-lU<r,Hr3V%~)yu\ q9 ͽ2scvb"a1ra ȇ=zvOdQ 5˘,!$@)>pX@䕀҂n׋%0P1Mf@)!a#8s}(l#{uA]=E@ yUÖ4UCav@ ,qn5tJ.r9kV_qHvi˜S>1!gyېty/)qzTP{qP12czC]ru닫~4% OR!GY8?`09$'cX7P9_>U/|ijiꕳJEͤR͊&٢V%k6`2} \_R w8X-,[g҂_*\G.`_|lm;U.dT %yݹ20xr6^֢"T--xδiBbn3x7ĶKH>x87I@twoȏD,awԤ5doxxii4.GxQIB"嗮ׇtx;ggglDMˁ3M { ?"#S7oBxgglJoJxۙ3}CW[vK*w/VZ{ja;Y%x! 5Ƥ Ʃ( DJex0x9sfʆklOhҺʕ:L9X xފnI\x{of C˦*VZ~:[{,1f 7x9sfu%wv2,-؎ו9X UxδiB23xf-1 {NBwbF zx~}C(H]=EPʙ51կə̙W)^(xrwdM{r|P[F쑆4"x 聾H=&-xy xv`Td9Qx }ӧQaObۛ ⸓s`xδiBHu3bƳ1]Ķ oXx ~N }ؔw ؑξ&rCcx  qm:#镓T x $Zc ٰ2}b/F [8xδi$)>iLgotJ%z 5x9Gs!d>H l$9{{[K O~yxrk=}6.u+x: ]<4Ӓ?㳗]4&"&0w}}%ctxƥ*oͪ NϞ vx! rIq|ח);:O/x |p)ԓ=ܥawU ){ xδiBHɏbuUod٥?m#; !Vx~}H:es੷jk_xy%ܗ_dǴ9Erbx9sf-w[xfMλǹKjdn alxTr22+@pM]Rlf^rNiJ*CYNSS=pHg9I [rJE'Kx-3|Ii&]+.3u@|3cDdÉ[2_ PAx T s0)}0-xTr2Z. ,Nwia40000 libƥ*oͪ NϞ -⢻ZDȢ%إc0UR~N)cxδiBϣ{Ůcn’~֘mϥ%xi '콚! #gD67I@twoȏD,a4{xPɵ_t1]&/$ZkC|?l-h Z:/ԵP >+x9sߗ:6] >㱍Td?W }Wx :3~b~Vz@NE.x: SWU݉9Kk] ֚;:=_}wi$ECc }Hx! vh ʕ~/NyC'xrI-[Z5Kk#x~}>f wbiԝUjm, Sxy|[n:sJpW cf'Fn "x:  Cqz^*X(X;Ep|'zwW^җs+;x;/yG]0N{$JeCh*cvsS7AI͞׳ Lx9sa&=[v+^Wl+7L{!xx;-sZfkx$ݾٽUg<>^knx! OeV/ra P2óUx! ޿YG&ܵ', LCEQNx! ғ[N&65x! 嘔=`ށ"ۣPjƳ L#@.x9sa&Rݣn%u1̛g+lfi>L{Ex;-sZfk^Y8'uy|  x! zp#v2ɮK:"DϳRqx;-sZfkqI^O~ٺy|hx! A^R!_&dOx;-sZfkr܊2gotsezmy| EFx! >So5G[wV^x!//|t0#IRC BxRrqnQb/ ggr@12䚸 %ԍ9œ&/31u(-Fm `ii*"axwZ`&YU"x$)x[˺uHHuyʓӌ+-hїAxmy<p$Q"WDŽ~rմ%+B1 sgUVP 9:JEbȬ+Z-Jϖr =ο~y>ch``ǫQA{NsGRZ|+Kkᲁ$+`nu]WLt7װT^o4PAbDK[F%L48ɰ|.)n ?U*"JHl}HƥODT,AmHl*ݷ?ѻ f\Ux\`’3~ܭ/s@J"BM?++! b#|BaZ쌌C<̮pD$4􃵜Zf{HA<ŇjK>?{O,*qEb'8 s\L@2@p/_<&0rW P@"% &L^ghlO7j@b1VUц+_;﨤qϗġw2{K1Mc0D0H A-^5^TOR6xb)BYh%h.MntX 9'` `b cu]Ӥ?Gy& և4|7"+Y`l9E:_d@t4FSXhOhܢsG)]nhx^Wz|-9h[9&%(&K:324T""T봷2T>^zĵ%d{/8"Qة{!zҥa"&VJ̴ ֠zR<:xjNE)Pk8!D8U:ճqaV»0iOh@]֪ybO-NGb/d>+GTK{K?ŗs$0ҟĠS H3UMڵdA48wW&@ Y$~.$M~ssCCU18lxfnjTD}\h2VBt8ONogVmV%λ Php\ g8ijO4CE#3rL_y$bv cr!b^Lm2Fh?ɥ8[`T׊_XMa *ԅ{q bwrhrfማšEڋ ſ6&fð>#8ԺՌK`" mIT큏m8dqfE3If?<ގэE,(`'( },/9Ƹrǃ$ 0ro.◖[Son%7@ 5YL$l4-e&jUb)J㻷?hk^S;-5 #nLnZ2M.@Ouu)xu_'o=ܵ?h(r͉ yFWps,D𳒂k0m#l*n5AEḱ|yA0obR2ag59̒}sc"DGLKDQ`31)d2kY.W;2mb}uL ܞ/e$fC_H|}i:A;Z$ۗhlfTݦٝ(h㙮q 5r<.˞jTqv<:1/9XžλI++o֜hPZьb/'ԹѸ(Km].?Fy17-Zdžpʠǩ{rR $!? viH(򈿃Y(kݵoE6ߎ,=^%+C`"v;Vvу&Sws2H6<ᔔF&~^ m2L2FUF7/T~*Vt?dF} 0O?MNɬXa6T\7˥~'2~Z7:yb%=Z kFvmT7<1-9viBe(h n5s OYh_U k7%?qxKlřW!:}R_u{ӂR PPmUn1jX??zo1w7l6h-/HQjŒC{G @1"v^7j$Z48k[^WmϚ|Jrh lr阜D/e,W $Y & [}5?+;//x a9k\P€q$,x Ac~^ȚZHsÖgIx E-zF!(|l&a x &$o\j_}ͥex{o -ʦjlf *Cx9sBȱ3L99f'8mB% tx~}C(]' = }L6KΎə̙ip-x U_64E>Tii.%ixgg5‰C+80 <40000 clone3M!,[^_ ((:f 9\a4wޭKhT=9YMvQt׳z .BTzYY׼DPgzQ]2qlD J뿤1<̙P rx8 ]cT 5 "7`B_ױqP]<ifG2IIʓ]FHx! Ap4:l􎳗 &x: Ap4:l􎳗]-wy ܃8KF4nx!gg1e6㛬,S Et%nӯA7]x_uy:x9s*kk=]Z:+ߍEf+{#xQA23/&2M/zY(u2KkקkޱZjb y9) N ΎrG,$Ӄ-9slƢLݓ%]en)r:P^gmOO@sM?j$l &t84_Db;:&Y?f۬\d #7OKZrЇUOLcqLt!x9sfk>Eǜ]:I :x340031QK,L/Jex'h+Nw;/_671;5-3'm?3"_?TqZ1o ~A$ 6)=+|ZZĿPV {0|։?ޖa籰Lo4埛]}\po/ˣU.C%K+,dH+83p_JTdҍI9=1]r;Z|y"İ3w=/LMY?iʼP٪HQfY?OD ڳ D!ҙyŹ) gԝ^59gRS}zT7_TCNg9) Ywx`:C dFd Cvv.*`2C|r6@% V_OK[x-58r?rAsS2˘<6TZ[[F"wyB0b/o0 --T-0紏Q`wě>m_@1,'OX3@ryOnf@$rf)Q*,ȍ1M$ "YpWVWzծ0x)T6,pKE&:y+ş@T޻Aλ%9 ~W${뭎5yUN̋y&h\zcva P0}2=CΜ74 e~8X+\Әﵩ/ "]/^~m<[|ܡ ˅h)rqެd|X.y\x~ǥfi ҿ;67I@twoȏD,a4{xPɵ_t1]&/O  p TA}iUЛ<_D>ez&̈9x~}B7{g)s]]9+S4zgmæݯ x[:!JDgZ@C^?3#m՝1O M >xkbmb^MTLv^?q=tsffzF% AJx Ac8txҔlb+W+xδiBȉ/ͷ<-xrwĶ$ %x^ggglDMˁ3M {JANK!EHnE ?"#S7oBxgglJS ƽ]bfmk΀ћ4,A;m pt}Uów-akAzP^tZS?1K,G/1x:ggg8ݍ%f3(sV!1{hnOTaaY ز !}EtğIxۙ3}CHP}nrG#A!׆Fʂ_6W g-6~Oygeogfyv̝+~N7H|_P߃4ʳ0U3N[oV09g&p6jmpV9S[STU61k)oF!'ٷ"/ZZBin~i^Co S?.=?3 u=1~ *xW3KBde'0l}U囗:#4AeMumEĢT [T]#Q}:W:TEqjQZbiNIZ O [=J#nxޟptF7gQ LxUgg5MyDkH6kьoџ40000 clone3cd@I,;ZZI("5q)0Cxrdz"av+?RNhLztó4hgAm}NzKB涳$6W!ms1꺴ޮ YQIkBn/K),Lkx340031QK,L/Jeu$~(O!DobvjZfN*͏VX+eS/TMf~rI^2:6y_OXvغ;qDEF@Eu_5nYwϦ6gGQd T5&1W~Hߜ<E P޹fJWz}yV*'_(2**]-y5.U=GQdTyC)i:8E9Po+̽INSrzg 4,GQdTk?|ׯ\q"Kn7Ne_5E$+wpɕoWcq,y}Tpȷ;Yy|n[mI]bP \Q tIs9aU j7?8M eW*ň|C[lyϞ*"ļt+E&(d5ٷf0][R>SӒU"l|=Ւ(Q9nywx?4"dFVo%V /=|DS%(n늝ɢy%)5ϾT [\x^dǁOwtoFL䜲Q9ӧ,`+>s,obieokϬPڬ\m9*A ^>SW{IrI3qy0:t28UV'jz.#9qWбdH4vuܝշeAxmgj](t[=va??USX*QfBtuy;QXla7N7BW Uԭw,P~` RxemPqm鉖EMi\Md5\CZ-0DV9u)겨u)'5n=l=JT;yt//b?.`L|4H аrڷ%N9-)PE9ݾŽ0X}3+y"O2? Z8-SpYT7C2*&8~]ݱv4ĥLtX>0:CaGG\ȷ8-䥪_(LrF1ǻ޽BlB8vkX礋KL;rFR=y#79w;2i؃9 (d qvU L-a:[9X0frt,첓 nT躬OҊqh2{N_dڶ؁kghr]p?oTXeE Ʉ? ϗt`oۤPx}%܋&ϬKa~ 'nrYNvUTD l"d}:bk*< s]75dXgnwPy=:+,ԑ(¾.34 h؁R;qF؁ؑ zIfDFgY(QhQaα۩@GJMD~N |f-AY?~(M >inE?_E:R_`3V=# &p*QbV$zMFo. Mj.X ;c=]KrtG&ךsZ؁KYli!j,8};YIN|;O*{C5ڿξ[Ex340031QK,L/Je[o#GE^5.9jQ囘`齮;{_eۭm'jK2*2*˷ry~B|oT%3%-~ZBAWgTgr2BNmwsYݾ=?V:OA*nYcՙMS}scKyy65 "6FWg T;YF} eY-]P~Ԓ_?,^pci"}_}5uư{>5$ٟ1_:\ʪk](>6PHk QOɠ!(>,\_CFG g@W%iTuOf`[W֦y(qoՁۣ~9*_yj)f@sf┎7BՁ⣡3w?J2=V4uFh2)Tge%ou{$=dԓV= Gxt|Ձôq&k1[gp}>](>̎]=I8~+?/W;!K?+̨`G],h32sRj֨]ѧ1dxøq k.G>&,Htv/ _x{·DA/=$3=/(A}-mʎܛS271;5-3'Asy!'_<ƻkHReScc+f-y?-fsil{DrO9P'tbFn9lfz%4Ux340031QK,L/Jex0uQk\=HmQ囘1u$iڟF*8>)HɉOOIKfT*-=O1w^/*575*OLI-+` [ڧ8cg9`QdQ\Y\[ jcYUfGe$U7;bӚTWZyf숾)^M;@-?',TIX l.U*q1;9{r?,liAR=iKpì|r.|M[f^YbNfJ|RN~r6H>W3 NyW%17$1%$I=ؽ"ƆNKL;9k־pPh_Xu%}^H9*FŦ89<[ԛŎ/K]-j,-(/*IMO,J;uIٵywv3ɞ0Q}/(6%}Q3 ?o|Z%ontj];/Z 6Ey(azt8v̼_ݽ_.ZdC`wt6Ҙ**9 B+s|1:x6y?JcD猉z93c| SbQw{4A.U= f9؞VE;;' ;_/tv)F@,3,2fĚ(g<3J\6tyI!`kf;ԙ)KeQPF`9;H-?Wzic--~Zԫɰ3㓿[j ؈_u:3=֧_C @^Ybx<5#e#ˎo6STݾlBH9F7M's,Uj W2a2c/.>p=R[58@My:O.V?Q6oT$歛G&ꆆ1Ι~ywӞ.˓J*pɛ]Q1cΡh;P>.>N >ug~9ܔ_o'TEbqqjQIf~^^EnYRK$k{BU&痥%T0teIp˧ t-NH)H-*` niOjM~$(&$d2x%*vlY]VkDž,fxr06S><4 SM;x~}C( I^ꚨpr&s& 2hxRg֩?Jzh{IO 6䉓&/"1 K.߆:ڦՓii8$!xQr2k $7)iU'40000 libI!ӕ֋"lgёbœLLZ?6b+snA# `xδiBN1gMwv9&c6˿mx Sxj4zgmæݯ _T6znf3_Xrރ{إv{Dl8&/$Ŷ|^f%Ppii04x~}C(ȼ|?n|v7x=33A>x U+~mhƿڼ Rϳ{W H r> Rx9\T٪ ! '! &-X5@$kH r> Rxe"HcӍXdS&0 xeB,lU<jȅxc Fzdaxۙ3}CoJ̟{qC ܛxۙ3}CH y=՛sbUB|=xۙ3}CHP}nrG#A!׆Fʂ_6W g-6~Oygeogfyv̝+~N7H|_P߃4ʳ0U3N[oVx&a&vרSfQߌC:OoE^ 01Ҽ#bn⣧~\zf';Fzc.)'=Ug"?jN,a7/7uFhʚh=r0%E ;;=RFt ?3qxۙ3}C:7}tgT]3x!gg~o\ʒ|l:杙x/*2,cx!gg"5q)0Cxrdz,,Px\gg5MyDkH6kьoџ40000 clone3cd@I,;ZZI("5q)0Cxrdz,$)kx;gg av+?RNhLztó4hgAm}NzKB涳$P{x;ggf<>S FY >3!;ozQ":㊑HӌExogg*ŗ[x2<3g-<]“\u9Lϵ{(x ^zQ":㊑HӌsEA2$o_w-B<5Cxogg*ŗ[x2<3g-<]“5O>a4͔ѣzQ":㊑HӌsEA2$o_w-Be8IFxۙ3}CHG/\^;%Her>Nl%2*xۙ3}CSv "yX+ZJ^` Xxۙ3}CG k/ldL\%d Dx!ggUB7Re~dziP'0x!gg$(Ǿ[mŹis0 8+ e Z#SIe6iOMx  y{4!oBTI7vڹ<[)g*sìx8qB(mZ=\sUo% 5iN%bcMtuJehQx7WT pU,nӯA7]x_uy:x̹s&wOI Sq*uK7Ǿ mŞ,a_b*Px9sBjvO\j*tyjeBKkk=]Z:+ߍ'0iyw듌Kgז31̼ҔTK'CvZ zgrK~#}mDENfsǖ9Rc~&ɒ.^ _RoW(U}svжԧ' ҹ& 5MVbnd|E~ShR/"1ys2Fg+ >mDkd #7OKZrЇUOLcqre Ş,a_b*Px9s"L!-{ׂ,׀SZwBf^rNiJ*)CFNi7\9xQqѕ 83viy:;ZbKK. Z_sNo1"~ůk:Dyjҍ5X]?VWxR ]One_f[\qhS"/3p,,+mlkж>q(n}=^0x9sf̣1v Wj9X?\x9sfeBKW8|t+7,G x9sf$S.7]\dn 5x  aD9vdx cF& #Nx9sfO߿W!S&aZ,&@x9sfT%c>ٶxdn mx9 O_fSu\i:/ԵP >"x8 K}~u{HjUB|, q."cSNEZix8 J~|ckuECȻЀ\~&ēNE0M0x!  4]30x 7,ڳ hWJ hv.x9sf \< eSt'st Zx9sf2:_8֐мy2K7 Zx9sf%+&Hǝ?ؠf۸s2K7 b-x! 2ԑph>N(G%/x $&J"kݡ{.x9so'smOzyg[nq X\<s_x9sf1f ; $=\I'dM`9  x '_8Ķ PxδiBީEU<,{ғQ\bF{xr5^¾ b?e/~A~mxQr2ՀٜMDS40000 libƥ*oͪ NϞ R2lATi91Ku&Mxƥ*oͪ NϞ zxδiBAi5lzx*m6%xδiBz~J~3%Ķ PxδiBHzؕݯݳ&RdbFj5xδi2"nlͫ\>s _' 7x3rk1(1'nx2ޑbœLLZ?6b+snympyx3r^S e4vI;bœLLZ?6b+sn;x3rwc'td#؉=YNS]bœLLZ?6b+sn@,xδiB[B&_S{Qi[˒mOxδiBd[WZd^tǀ#7ۼmi FxδiBHxe|lAߟ;5Νض yqxδiBHy̤.^% ض +xr Uq56̶3c աbxr~ Oc v๑7xδiBOFʷo*m:xδiBH]Mm< %W5avĶҌ.exδiB{GVL`?m|xδiByEa*ޯ^ #+}˺nbFU ;xδiB~i|d7(qmϕ fxδiBi]')pL}N~9mx6r)q!rQD'YG) TT / /-%/6tItxδiB%2TLX~_}bF C+xδiBH˙IKįyӨvĶ˙UxrhV8mqq1ڰ#ƔґRHxr`'Zi.?ő -xδiBh {g%{:m b9mZrtV[xδiȄ=W]VT;s#dFe ( IۃI&נS!8ExλwC3n{T|\v~g&o|b;vHQ ^(d'%3r'|w?GwdsNavy/Ūq"<7y4 lIT'L rJZD@X71 :|6v#cgIy j,ZM":㊑HӌxǶmHm9ar?nܼ NC r7gx:%]jڧn<$״.-vǏd94TL 87߆ k 6NC r7gx)SdC.HUskMf0s x)Sd*ȿou eݚW\BbKVV |UﷲBIpy}(Ex$wYM7ޓM68E F"VDXĖ{o,!mU-dCuS Qe`RMu1[w]ur[ԝ9;~ԱqYgy9|F:cFaŏ|9 x*LQ#Owxķ'2+SIbNN|ZfNjqeqIjn1HGib/c{- [s+?b{Ellr*- DdNXǀ<;9?/-3';[^&mӚGqe .z5$:*{FdTEum Ixøq %%-鞞Sʧu9.H w.x\ 6Z)HqMNa-40000 include\=NFkg2mچ`RBC;c˞$a̡6'x9g?a[f7+"[׀{ ru|&wzm8oii2kx;gg(ڛ$NPF!N9eXzn( 8:Qm:< #rw-Bx c9г#pQe G [Cx85)(H-%݁@I 31u(-Fm `iilyvx9sf\ASl~1ldhdn .-x ;~f67rz%)%x|f7D"<7dgx 협5 EU `U_'@:x: WD("7y#}Ա`{)e s{Q,kReȳIx9sR&˹Y T܍ }|N[b vx9sC3Yշ['9{kx;g PK)MIe! ~ܹG_[nt2QOx! ý~D\r#^#j+x{j~CH,x2ǰ::tjx: ('l*0- ]վJLbc8 DrXx340031QMNMIe*w&ۣrssRnlK6Uy(gQ RT. nPAdSRs>r!gԍVpBd&1<㘺eGv83gAds39#_yACUCRKWjm}6eܴ :yř%%ť% "y3W80Gbڻm-E9% 2.'6s%|&xdx~}C(Ȕf^՛}hgt3vCLL,%x9/xM,;/6<ABgQem8X(6F<E,x340031QK,L/Je\%3w/S[371;5-3'eWt{O2Z٦&וg77|ꏷH,I-O/(VPYtX5^<y*NI,IL,N*UeZZR̃Cėu+GRTTҺ#ʕ!BYG9|ۏ 3dŅOSvI:(?3B*i]k^.p9m*24ۢTrOư3*@a 4!}=, eT"Ƙ۞WM' $dXۺOy{wF޲zÐPEEX.agfӁ{[MQw8b*UQ\R_D٩y K? K\:ÐU][o+|(@eo}tˑԵ:b:!PBwwW_l~subN 3Hxpp\}\!jF9)_xU}0vt12a ҡ R!e+?ڤyݮ/0-+.yOۑY,h3(.>m'GϞg!Hxr V9Tϖ @0ɣJ|NAC'F!k'̽bz8>WO%COO\{X{1xBx &&l3x4B!PmSin)E-/UCmG<w*i=اB fˇSrў4JLۏ\@S_&嗾kaUB)ApxGh>_E+,"dao!liZӛ1o "Sw2aEh| @ \2#Ct:k' (_(!bbMDϭH J;wJ1 tHkN & 5lI(IiV ]Co* . X}My+"kQee3-m6}a8lBx=?radGۿe MbDx340031QK,L/Jen6m煲g/O4{CutC*Դ̜TOZ0{/v(l Uc`P彪DĔ;_m8V$XY1PM3ASs`^ [)qjLjxNMKbD[v>d5f@5mߕZzl4e/Z\._K{rxq.t_Cc;IM/P? & Яx340031QK,L/Je@&c[W.^?Hm4MNMIe*^&,PN ?'P/!BYs? t6:L,Fg e'5qe:xrr^ۣŅĀa1^Q8x9sC3Fc"uɜZ f>de^vt?¶ FMfW1AtwxU%3g%樌vMc}8ƦvcClj8i-x9SDA/D79?/-3!h-8ZsD5smx>_0~sWb;կ0$m,fuu*tWIkXo-,+\$bkrEEO`_&rgof/cm('3<Λ:d8\af%甦2,U㣓,mO$7Q~E.r~b,W&Q-f81Q?xOخEf["k#~4iǻmg]]}0sHCB6$g0[XL MbU?WiJRKScf։~i)ށ3O`12Ἰt{{mZMh$3 Ǹ[-1N=R<U1xT Yݝ S sFmDP[X  4Gym"tp k:'7+ux;-sZfFm[ wV+6ZriSf&& Eũ%z aQ_.T.Vv}#/0pVe窺nK6fxl&btQRFh}sl^d?o*^[׫ZY|c}3r\x7Nf}$FOe7.4#㮞W,]"_Wn5{ZeTƥS';ZztrTDu\v&ɓXm.dJOi\ɇ9$>%(>8>5Miɼ=~;3#ʥ؞s]} zz?;{(#"dSv pUV_@v;c^^#NGPz4coP6*掯6P[v/s-,Q[4D -B&JbG _*{wNH0hq˙gyC ک!%<7rDM2NR%2K% 86r?T18r ]q2TTqo&KLJ^.rXo{}sM҇ZRjc@"ލd<)+AnckoV*Ӓ^<~[#,08*]~Scj/?|' 3|d)Wy#ʹ" e9.ƨ2|dӧ?&ԤBwk72#hꋨ iFA@F|#ࣦ7| yҠ 4$^|pP=OoR\~OL1Fn!+CPohJt>-'UH aC|H/([X[GrZdk U3&ɘ\O:em6٩oIqcTrpxtPJ>ShVy uM,.!4ڶըaa%`Yظ;!":ҍ;Y 6f[+%,R)fl+eȳ7kUDh׬ .#@(H8]߷X2;cANXx;:?rtvY2dYYׇqɱRgt 6<?ʗ?TGs{]S塢ׅzפQ*M(Cf*brr]:e$8|j3vUJf+GT}cbx6WǗl~1 տ*6f$dN76M{Mڎ迿eqt̴05thO5u4%K"xSvl诈r92_`ӡJXE:O''c I>f{'= P Rm/6;xЬU$ƇA'^drU{PT l%9{x lR)Fs|!9iCQt <%V#dH{6esãqa>FۓTnhX!BF|ن|=y]+jwZU9Qj;eԟkLxz$BvXZGO5/:6cԲjA4ؠ>H' K0yYǚ|6rAQP_|b|| N$cu$?ݏ}UNmV:(^\qj庉g e,NbVwԉ)S}n!p<| HG9 (k y."-~ `PG{}JzhJu眐˿/ai,7ztɧT9)1̀kv`nzYG2.[K2ki8kXh|ɴ{/$QLn(BxJΕ/Dž^i.ϵ)ŲFbr$;"ޗEd3|ڞO)tF5ihs,gLyh4vΑp\é t`ҒaDsZzhF>Z/2'kM*э! \bQ&2hxg聓9/x~i7.0h ~$g0֖!7ynh.gwx-," |~*'K,4}XеWDALJ //N2zy yL`@^ZU,/#-`At@]oks&ܵl]\2`9~(Q'RkfmW=/Ajq#T.%])GNJCwH<yfaNbyn:镥~}xp R1( .⩩9!tf€,q+;$%t=i쒸Pq'6@@MY%Y(i߄c_zN{kxUWD(_ׅpP&r#k9!MZ i2/! .'".9덶6O(1AjiɆ.#J ^m"<m? od VƢ3k(1dCL[m竻dYfr7IY~*_$W\BP2gR!OX~nrkf g1y@3 "ߺeP88?4\X)VWGuyӎ N0K O) ~{ XoK*#}#>CEQH ]: _i@-c UMPȯE-F(0S% 6GTW.f{7vK"Ek^&NnSEZ Ǥ$VIv[rJD.;T->h> ژ5AȎ2`13p/V؜w( |)t^u0:v1(pO)EKfxϭa5G38ɒ^kyJaY`}+ ЯDk_GG$?<{~"KyjTATT$ dSf;ۂ{o"^#Nn_Ϲb^gza6,+m58C\MTgDWM?Vw!!A2puψ!ԊoCIQ ̆ wj%M "1|@ʳ4KL Tۻَ_8[vߌ;[ex)SdC.nע-r3 8q@Xxɍ;J 'x340031QK,L/JeT67k[~5oj'!DobvjZfN*C,w#S}Mo9L JSK69Խ=P\# 3 4=$'!\auf rnm^!*s:L% `f~ vWйMUr~#ݔJנ%E %όBf? !B bxδiB`rf7v^UCyvL @!;(/5!/e?ܓ7]vDANfGbG7*>xki=+L*\xS[ΧOYnt$X7VIoZB )Ӗg&/#NA1R9iil%x;ggf Ż`~f>Kg,;Gz^FfaD@THAͷ;g1 ^x'OnC[cC/]&L߾][ x'OnCȂv=~W.Me0.-9xۙ3}C0Ҍ.2NLqk(\%d^ gx!gg1FfaD@THAͷ;g160xۙ3}C:L [g9|sUB~1x;gg‰C+80 <7.7І y_7;^12Jx!gg1FfaD@THAͷ;g16 yxDggEHSGG}8^S";呰bPv}X e8E&_q߆9>V .BTzYY׼DPgzCR޴Ƽ YóV &:…]첩 ;Vo?V B9R)W7*V,xW Ix^ggهFqzDzYhprձʱ;AۋOr¹c 98.  Ż`~f>Kg,;GzhѓG Ԣ{pT¤2V #Ґ0E-$Kkg" ov4wYui4&1,3K=yx!gg1:#1Tj,1 1P)x!gg1ŵFc>adUȳ1*Yxۙ3} Czan=? V|lh_v}ó sx!gg1j%%h2K7O (x9sC*S׻Mn{skܣ̼ҔTLǼry[ QHOkuFڽ57xg3\ŚO0V>qg>9ysHFW/B7om>g{eb~,mtx! 8TOnUVekA~m#x! t3b8yBPF>S Sx: lBB]y<ڟBh8 쳹;+{jzCt_^Ix: 54j$ՍSh;?Ś W( e[x ?Ś W( { xr<8>uxT J8.x6QwD06غ*{#߇Ge+H1ű!KuTTԑƑExδi5O"z1y?ٗf%-d%#yo ox,ғd=;8@vxδiBw͟x*hwމm[ FxrPnêՙu\~sxδiBHsoW,!3.#҉mJxδiB3\TE~m_ xr—=d!FPE٤xr؈em40a22xδiB3r\qbΒ<: PLbx0W1uˎHqqgϚd26vxrTբ_]>ϡp֘+xrb'(S!# x~}C(, j; b,Nɜ x ^Cx:[ΧOYnt$X7VI&gJ=MfX|aoI&WIx~}F7׿X_]"Sg/3Yy ϝ Qux9oZB )Ӗg&/4y廜WdtBii&Gx UVRgF NېYml~iiQx~}C(H֧]m빜/+|pz699 ~x9g6r8C<{~(bM}9pfii!Fx|0J߻q_Or ǎ Ǒ,>)m[VngI6r8C<{_+2%V&/Ecv\ kqű5iiQ =Zx U#NA1R9ii; F x U:.nFii pxj1%JZ7 GOؑ,!,A__9\j oZB )Ӗg&/H~+wHA =!}gii,ix~}C(HK;|X^"awə̙x~}C(Ț?քZK6Mk'|3*7LLCx~}C(=U=j-x4LL px UwiiF@/x~}C(S̹!1ə̙%x!J\iMe>4'ewG `1>x{&LfCToT~W>VM9gs- wx9sf[w'G)p"͔,qHxۙ3}CHF%/kiI RGx/&100644 .gitignorem^b+ڗY) l&@Lx: on`7[߶Z婦9YppL-vE}Ix AkߵtcYs\m씀qhx!M6@7 A糨 ([x!gg^n'xs7ԙU" Wx9s&叚vo5 hPQÛg SG?dׇZ{=beoSJ2 I9[xٙz$g-?Tyʼn% \}齞]־V)<(/>?'2~>?`95KniϚx(x9sf}󵺌 ҈>̽krdn -x zIg-`B76xX[xb &100644 .b4-config6ÏK]B;bZT&mHnɕkE zIg-`B76xX3~) px9sC3SMgOHޟCBpC PK)MIe`8mjrW$%[Jձ/9I +<|4/4,>l1Ë5E?go}X/טJnH0,4ܙ) ۖuM_++Atd3( 7AYñ'[:9E6[ \x" 4,nc|] ed40000 includemHnɕkE 40000 libon`7[߶Z婦940000 libsȑj|Vrhe40000 m4ₓ1$DYy|7M24 ѥJކcX6:vx40000 utilsA^Y391"_n%_"xδiBɘ]rDȗ.1k[Tm҂Z+xTr2Q=6gGZΰ4_S40000 lib/=P ح0VCD-0xZtR9Rl(=x8ZٗэEBJC=*@nٱn9f}RI>-G0 iiiGxttMdoRQ% 6T,]醻ȂA40000 firmwareYwscāyO`] 40000 fs?O8tVMsnM QƓPOl ~LBTf6x40000 ioc`XQI,40000 ipc߽{k4FJыg,lF<=[:U^ ܓPo6fzU|׈DI͓{TWP^Ae8~.z 40000 schedL36C،Y$Z߂40000 securityi4FdtykzB&/֓94Јhw:6i0[aXZmbNZH%σBxiW}%ꐩI}P揻>àlk,~eoiZj S&u ȗlZ5`m3Jby[~X7+?dS"[h0ͬx340031QMNMIeuO8/x]Ց !jr j+|o8iǼVO& )1*9pnϝR3}gx#)1*%rKNk7ZNmXZ̅]!.*P)X^qT# :-'Ka|YOyC|TZ_M0yN2p!` xۙ3}C/ɍɁ,:#nVmb 9y r) G5z}{K2/)攢ݻ5ǟ7f)JBj =~eέ&_ 18(-4$-A[*OXF>o<,#>Ag'x{ggNQyHrJ/^5m]o}7vwDGtMP:Y;cZYTjsGMdF͍Z38Aa/?AP-40000 fdatasyncF[$8zsC/EʓI `|.4V6~`Cdz= $;Ie^ߑܤ}0%?u f5iK40000 get_mempolicyn\}nr۷lRVI40000 get_robust_list,M`O&`]+Fzҳq l{siI}Y|E.ISPYRlV=#i#JGKX mgtNJsX5fcl߄eI40000 listen׈K=?Y v:'w($P*g>?i 8֊7sj>zS=θ\\mur .pc|e;7E +g|%zʨ40000 recvfrom\fYڌ^UBcZapœZ ٪c&J4mȒמ40000 rename$* c_z|nw40000 renameat(U&_?/L @I40000 renameat2  lXqšqK в400[!(~:Fx?qi5!h֠ŷ[j"p}eqQA2ʓ#%T]2:0?a1HXl'40000 sendtoҷݴ2B) $:040000 set_mempolicyW=l8[gz+{2ea` P.D˄ ,95]«HkmSuS1940000 swapondD߻^) 7Cw-/8 /iȧe+40000 symlinkatjURjetz7 7-Na)SҌ*0|]en@1]MnwJvRǷس2&e=l8[gz+5]«HkmSuS1940000 swapondD߻^) 7Cw-BIO}x! :'tθ`ڶg%u4pv`x-O:x[ʹiD骵ݻftf+b6 mx9sfrNulߒVb1P|2K7 kNxr@́7U޹R'i؞󑆱 nx8Z4pv`x-O:nC/<%$4\][g5|iiQxugg4h`=&,!?!8 40000 clone3M!,[^_ ( {V:DhF⅑dFt~z8 5\ce/3ߴѩ1^0RЬa>vzv)U|xjfBƞ`̼4̪|$E89F2U&.7`*8zG ]x/>Ob(u^jjJq|JQfYjQFr~^qBrFbPɩ]dpqN>^G].,y&uR^[Ox[#wHn/fb .OL(-N,KO*MŒ$ F|EUNx]VԔ̲Ԣ| @J:\~>>\*)x;ks6_-K:ԕ3]ZmPVfuhkPcW*7EN2Dw7@Gk73{aBL'-ŏ?Nj} @lr6 XrEb J%X)c:_ ϗg8 ?"~:'9_R8?| >Q'̸J'ڢ8DT9*ݽLi m?uȎB[7 nSeeK5q=qa ;⌤+"`;R֖ m魦b5\`{5b^:\f4aB6\ J\ȥ,eѿ-tln; bKHMą1h ?NgBg9b m9ZpA 7D-1R*s 0xbHH $s ؋!+XFOAIgjfz9Z9:, еfKsI9"W*G 9qvF! \R YWmi.{?RBy!Oz9 +tp4 .I`ID)O-8 \ ~=E0F4ci*tbVPVE@W-,cYj&5tM?nI>(y.p):]1& ƋҹbPo'/GX ;UGA`S[S&D!MY;% Є8 ]*0x 7Ykq~7:U Q39 y<}ҙ1VTfypS<`;1%!vzN9bAKa \q^5_2=[Z@ ېu1Ċh3XD)gIG ׬ql;n6[7[30pmi b,dے8-mxDSP(Njʀ޺u XGgᑓmQEV g6V}(Tgoϔb;hK$^c֦BV ψۢz,6 *"  #w^@{7!}N4@| /2Mr 2QtJ.i eT+_Tzk.99-H:d G˧v̥jwl0\q1T (. Pn)v@ 4#[؇\fX"ײmƹU](ő]`>Ʒ@EA y.2@6} m9&,eWA5Hr|Y$߈dQMP4n%m80([;()/t6EzR@A--8]]sTDtIRSO*j P44 5d:,CBAD6G Ǯ1(ߔD{[ -e$A 5$APCUfVj.+Ķ7@9 _(|T8cQZ#Og6-MCrT dF[G@;D򎪋lQg8q:':;I `"S< ](hڼcXo>&tQV3` p-ZP_M\oqCWrBԁ#7JM)r=Pt 3Vt9[-jUd]{:fA崼˾7sܲ0 dEt-sds|l %dgKGp%]x$QРO(<`#sC6:Sop w#[ʒף ղkrKNe5Vp-ģ|Bh쿻9pWwo}ЪdxFq.iܱ&e^=DkLg+äKTLsѫ9LDi^>A׌|}okS`33kyq8>dr"Ҷ>|+Cț ϳ-f!>]弎PXz]JFHC +Lk|hخﭾ`]/xn]*ms,[} fl4 'Lʒޫ\~@3wOl%NPڔ5lr|\f0tq_L0Mx=z?frM^^חǝ(:QPsN|ΎRA}(`vT52Le(XŨ+ Cu t+!C\PDEXWVSͶZR1(I 4Z$»/ 2䘳o9JDDvI"F@& (ꟿ%+%%S $Jx0j( 05^obESEC GB=r1!= O=POkyAd ʣV<8?&y-jN]Вkt Eߏy/|x0͈h4o7 پF,w""[(*oM%x稪Aߣh >ʆuטVK~[v~&R$k~}r#EſuDZolt>[j_.J3ZD3T0qa?w\#ya6] | v MMO)aBFvbZ= !##u<;(ltm.TE7iCvTYl:U 6܆@%9|\D1 ^ۨ)!Cy1#%0p8XB|9l7 SϚ[;" `%ۙ^';mG64+-?'q*@3'RǬGW:hיPs6Ƹ-m_W?"ͧMc;oRO;Ա .糮O&"Vu,;~mw(ktk߆Ozݬq}vKUޕfw ekPQ uH=J%_^(A7aP<+% a-䴭Ov"`2+׳-A>~$+Y2"RZ+]]~pvY,W+XCS;+HzLm1EvP;tٻ @F IJً("z3l+FzN!3r*4kU|c8|.aCnkTGq/])D(9FFwk-*\breJ@SɈ C Tʇt\&weg:$(w- Zw8n0QNh:x{ҖRn8wiZZJf~|n~Y,ܥũEi9%i)% E%E%% e|H26YxM$5-IMER"iԴHJuI 37t\+= qw~0Q*_.x9MP!Rrq1-Y#kdX֑udݲnYw;=uA6lr>/ ?,Ӑ9ņbCXPPXXmbwRZbrځ-uZurikͬ,ȹ}/CDVho;}OôR88xZ*ຎ<#vqt<8G[ӶN>wrvx8lَ8:)ɷe:|nvT ^H?Zڶ។HB_i iKWZe>PYB!MB@ A!AHD!6>c0h!&r{{ͼPAQD%.2(0*q4FʏJvTL0 Fh匍&h&S`- , hBڢEEFQEEu-Q/ڢz0ڈFI#/EkT16hQmxTmQ6 j-FڢlT&(ղhj-ǾD[}c-ƾo6-xEF=C#ڢl@E=hA-x!({ేVE=t-xTa#ڢlTG_Dkڨ"*6-FyTD[*"(UڢlTGhQEUlE[*b'ڢlThE[mcecxËh*fIn:+zvw<ݝ8:+:@ԲBGa4KXj*KX#kdX-uǺK n)#KB RH IRT$IE[7)tבI66E#PYjk$%PR %-꺻}Kf'8.AN%k/޼b\͡ F(EyeN|.g4b)eu(xl!%zm ! '^.?B5"#mQeNӲEuK6 ̖1mz@1@{s^C=%hX n|ٞV+\y] RUTam 9qW+Km/ugC AB@ A!AH(DUiRp>."XQxP |t׬Z+}V>k峯|k⚷OgmJ\$j؞K΋΅ץtWv&kASa+TG!oܠ؎T{LsFK9u%]u-]u"ǫW)eae<ܾ8XUG9l؎8:ǃH ؞fsu)Ksu)݄]KqSgR:٥8:ŹJx8x-88ch{NMRv6r li?&qtc5ɺdUL[ҙMruvfoM;K|I v[nB~695(hh4~!_uZn_~.tU_J?TbmLw)AS>_G \崢>T_0G a02l=lvv {{7<` /|{{{{{{:$Ig(hh4F[QMvzzᇅ~\˓1Hxim`g-K T+VPB動/Vyr޾yQXe,#@+VsBe,( ʢU*uzeWK~4ڏ&wc3Q0Fh0Fhk5F{ Fo5ַX[c}ko5ַX[c}ko o`}X7 o:S'Ct:>^(řK Q!{sC(sUt/_T@2) P{HlEuYALe1ђ4Y}<:E'Ab!  $BVH+ B6B6)) -H) roǒyYBRH*ZR-T_TڹЂTC!E-4BC-|)L`Q4h4mvF;Fi3S1ishPutSg;_p.#Y@*zR}!d:J$̆Rn2"qtj@G7!k2;8ZڨZn@0͞ ! \RJNRj,ˎuGTp<ɳdOؓ8xOI<><=Fc9=ÂM^ d @EE!#mQtՇ%g+-j%ȯ5Y9DbdBG 1 ~1F*vxwa[fO~XaDž?mߧܕ4 F(UxY#:# t4Vz?()2Psyp5F:#ȺeݲXw{= kyp#I{s'#FVY%>aNO||%:r T R3H uCY4%)  H*jIzR= MQ P P @htx9WN?ׇ[v#J٧E)|JJ.͔hARm(ՆRm(4#2'knSʾlNxxO)Dy9]rP@N:nY;u }=zᇅnt 'zO=ty{6Γv=XNr4 F(Eh0=͕ރEj[lqp2˷'^a?k Dc\NƋKW#B@ A!AHD!4Hr<%k`WNb1BPHD!QH+eH 5?~e vqE1BPHD!T=W}B@ A!QH itB:!L B@BVHY/Yk`u`#Fɧb)e|jDq̆BԴwۿoj7ˣ#O.$8| ۯVYH}oЂRH IRT$V5~xI!@*jI:RTOjCjST:8ЂP P P PDԉjB@ A!AH@k .@k+'I<0lC:NR@*CeAY[[j)e ,*k:e^Yll#,mLsn4FskL${UM0 9x.K: t9`Q*T\0ߜBJU>|Z^xxxzzO tx?'I<'q$s2eA H)$@*ZR-TG'Փڐ68Z\ʥ\ʥ\ʥ\ʥ\,/1~Ncsf1v蹍RpR׊:l^dyIoEJcIx^*yX8pU2>Z2p&ǂ .vOVRR\*ytH.-Hk/W+-5F:[-uǺgݳްސ?îh):_*5)0E.ݥ*Kwd@T"5>h3hI|y&>T.oZdik$(cc>F5nò'Uk,q;7y %NyZ1ͫ6l@ ! !QH itB:!^FȆI!Dr7e%n!B`2[sG8rmX,c}޵wrܵwg{R`%U6PXBPe{?mG 3Q0Fh0Fhk5F{Պ.|lCI!@*P݇fqp}LA-a  xfEQWKj:9Ρws1Ou(͌yB@H)"򎄙EH2Pʐ "e4-& 1 J7 ~zqBP B($ iB:!^H/d#d$~"6aB@H΍H΍2\ntL9q..¹?09]T+VPB動/V)N8 h^Fyna\.W j/^do>WnXFH POJyg+XhEcn,j5ѷliA H)$F RVJ'ſs;a!bB:R/㇅?_Pje?Ox:iAHDb!  $BVH+ B6B6%E_*BX]hʒ5Yցud]*, ^@ șOhT|ht*U *ѪDJhJUU*ћw*W%68Z(_5Bj)e !v]qW*(vl! 6vzᇅ~\q ~H}v瘊a (!AHB kQ0pWeqM_/mcȕ|P`UJ~\!@zMm)6}tMWc# B(Jc?3QW*RA.SP&q8G/,خWe56CR Ul! A{z AA+wzA>n1BPHD!QH+ Bz!!VI.;5ٜnrs:z_7iEZ~_h%Z~_7hZ~hF6-g;8:Gǣ7ԱWܫګث~U??6 D%.u\]kKʁxX1r ]/oyl2ĝ%,Q OUs}5(b=?8i}9R>?wVtj/˭ ,?v}\aٹnS$ ?\M%;Bsъ'_3|m擯|5Ob>:'_/|3%|9k8Ac7rߋҙ}iB9o.gQ?Z -OR͗kN~>Wz0x{ti]}iqjQZbiNIZ g"g"g"g"g"g,I,10TЛ8N5x/-N-JK,)IK10GrQ&\S.{FxJ@s"F=(V QC!²$K0;9Fi)a``W ȭAPUv\$2D)ZFKIiVf Ix<ώ"Ӄ%ji{SJG2,-[R&3X!\jWc`tH֔dM OpC;x3~][%Yq5+g͟ l\xkKۖQnE9S&BxYms bm` ݻڛ g Z `6*Xz!#ɘOw܇5~vͧ?%P mGґB}fWI9 ԉ#U]뭒U t~`Iڂܦoon(ԓP@-Z&uz=66Q }uj?#6U?+A7A[fk)6:Ph 8 `X+Td-qNp&Zl0#T!2;%=]9t?6uijau f%U"[PG| ^hU{ #ld w.j{̸ƬRnq}Qѳd-=-ݘM+C/X\kANi٭iA;`pr?fVO*0/TlE,v[&!1|Ub g^x^>@GuJQqx:> w[ܓ4 5Gk4JpHp/.ٯ $+5謚|)A@HOv#(I<(Jl )di䅡DlD #}RM脫iZz8+;jOza\-Ϫ/4zı$e#EGp=i~1!BF6K/>0u([wxab8UDaNJpv3`Կ2gÅQw; $m*!T(-By@.дB0BH(K( W(CBE"r8EJp$c>>p:L ZŀFLB9Ÿk"*(&a\MZ2p"DѼv"<]ưi'@%Vr._-M 6( .3+C*(-w7|fAh`?!x'C°)Dxd9⏢MPC:Vta',r_*T+Cώ!fri7|8EP3ׄyf; )T.g]Bi2 b OCږH爲v>ݍdm;:TVv+Ѿ'VR+gt\ T5cB@@ݶX5TFyDNv(qa?$({ߓ8f_N SNL]{1~(mb7obNJ.` AѲmg&m!Ro.~H/A]D0U-NƣoOne9{N.JE{|96&K.= #A']s5^`-9_|]/ng2o\7(NBYFz JtX_ovc/^>񶳛#gwf@QD?khv쯕|5RX0`1q Vy967Y(#i5c~Mhbn0Z~a2q{яiYG?WjC_ ](팠3BTrx_2naxtir7b#d3x`@TgxǼ nxǴiC{us95jgGxiC# vlXxk5gA[`'aN efn^xǴ!n3rg x|i# {xVmoH bʩɁFN*:&kXh&͵~3LtH;{v凶CJD,y̙x W#}a3NiN/r0&\_tbh*Eڽ2A 2HSx,$3l*ɩU_͕n7 Ve<Qf5\NiS,8.38tihxk23N Ǿ _k֥m6ˁ {G% fE 4PFJ>OQ6yT7),hCKX4Bk g,dC׃5|0hN%?Iu9?, Fn}5ԶeS=V|Ώ̒vL 14$]B>h|՘woC{ӯw4FlX5`5( -H7aCw][ ^**ҖVV" FAAY4J Mp#A\bQ593 j&> W̛̊r|_>^I%nhW{G΅`yoYfjy"dp`0";Lp}alP8vFL6 ۗMO.hy19Nޛa,)msOHbiO-_Ve"jlVy7@ťOn|pZn46OΓR*2:zi1kV1esNy4t) Y+4t kg{K–qz^eC?xZ$;82>ksxKdњcQP=˱㥣&)dZy[QsJR)x(x]1o@eڪ!1!E_vqcRPQT,J@9^\cSۜ"Uu@t?FL X(btzO>96B0~!/1MB$*(;ad ʓRSF0xl5Lxz^%]{:Ѫtڏ, :Q-p`dHR|,}N+?5WXե/,&PIg;.cRV2<:%uBxuOpt'i Y 8dLHdlqQRNGhZvXST]UH^ŜCVaNbcӜMBeCC 9X?&2ҁL&HJE[[hDgkx{%PpB&sTԢҜ #͍Dž73%X(*;Ƈ9h;F:+(9;{(%jZsmbc 8xWrH}F_V\0dq`%K 8lR[F#'NߞqVgGuROy{}4J>rh}ק z8cS8y`в;o8],~KQ]hɽ*Rj/Qkq/Fcb{`Qׅ ӈ (fKÎCBwppߨ v4?4c;f`uS8h8hThc8o3mrjڈ4@'e<ɠC*|<P,S|v}06E⴫TIz=5z! zABڧ2?Ҡ1Ck#x K" EaLA(]*c)D7.G7SPT?I63К5 )Ħx0yXӓu{m_*\=|8X ꐼhǖq|b;y>jy}K~bk؟5&2(һbwġFtdmfFq'"G@RT=ۃ*7[tn.L1Eǣi-ng|i^ex]LnY Fq}TW,@UoteH~'ϭ.,r r%R.P RNx"ΎC;Q>h jKxgPx1iZANHupȗ@kO16 k06Ƀd׊B#+,dq>>$aɱEv?ҵ9ck9֞B=Uk8:[ppkini ^=D]m*Xo\}*[(UcYFf<ɨ˝Tf?|쬓pIA)7FD=ْվ`;RƪD}:O mKU9ҬpX\j= Fc]#4b#SZ'lX}%nq7 ű4m0zgJ+D#qWrXJؕQH"GϹr4%b. dTY B:cPoA=Wtx%yHb.̼ܔ,ٛ`i) VyV eiEF He@̴\= 3ˬ&۰*.I/-n5y*fCPjQT(--'1j~6qnޠԒҢyY4 iTe?<= GWdwjʢ KMv4',ٌ`?}_F2y=DIQo$J$d,+Q~+i7t|0N=xzP@Q-N<w?daE6ϫ/>Dr:&O]I۾Y4&Pr nEq\AP0Q E4jĂV &è2i v{alѤ0lfFq]^]MYΊ1Pmd#Ǜf1nNpo,Yf]4e_ )^eq[+z?ֻۃz#q?#

HB(5'q?A@G%(eX p]oQWjГb43Ӹo2`!TA`K+70 <mIy#o/ދYD4NNPDML|E7|2=an./Pfd3hOs=ڴeҎw1b ) D,*-n٬z%[X)EuƩӋd6`T=̔*J5>ЮÿqG[5[[Uke(Se FG2';at}2I+@m{wE>"x|rw/}=@j|nV"˶/ H3x=S횰F`aQtB?5`_4(&H0VGgLH4KE FZA̋vGh 6E:lu@&ءƓa^"l'I.QVһpǰ"3xK/Іk;ZԻL@:/8; H}fqju\t3rpL?.舭[[XG+^"cYNϠ|hnx١ׯ ?quzʦ LJW#/ΐ|^P.i{ iRDoH@97ĉ zׅ!)'QÖgP_ _e-L;NtUIxM<%v_0[SqW@պF# RUulŦ=Bs `%yN+[Qnҕq!K,nuv>P ٦[Bnw8pfwV++EGlllm * *-+BQ6gK~2G7 xPYD }pvz#gRFعI os 5\;Š\z;^X1ZS"51.xg͎T|YGᓉSeZv@V '_ޢ|Ψrer9YrW^{v 79~.lW}I<(iohsqT)|RSJsWt[7Fl@@R\/u ݷW`@nv4-@E9J p'K@vGg+ÄEd(sz _GUAU0֥Ukcp/,*>ŏba[i OD+Z&;̫znK,%'s# VxB0Q ahZcK'%3#O/{n;IGڡG}gexŭ@t|0|dV'Ӏ:ԿpJfOQؓaF@x[j< wRf M AMiYd:m*T_"dㄊ`uH!bmI~,,@CJD2 xwt$s)ADstA5>f&<)Iu@8ݖԡ6F)xsY F;CrVZm~cEbT_O jRZ>À+%v]ﰱ[^tkr 圷E TӰ*] FsoWIZnɓxw˞_?;Sf'bkXKftIYY[ >>&ǥJrWHKZB{# l4وt7&x$:e\Q B.x-J jPMRU#$ K=HIn6s')@^zb="h-oqOA{=/ \)oSg ȆK)X͸!aǃRHw"l/B*"ڍL 6QtLr5Yq]]5UѰ@RB'A(WYAXWvšoeu|d.Vi67GU:"N!9aʟ ™6gjjAEBP,6po3}RPOBkf0ωJdm|=yyJR@cxQ)q)]ypa& и%,AD%$~<glGHģ]4y)K8%+W"HXCdaTam! ri _{w{T D[DmurZ?,q]aGdvp/v8ʹ> xcQ#wkO̕W q`QH:hşfd!Ն8D4plH.Y;jqTU\c_-F-AJ]Dp[%<',tЃM7 Ki6%E(Br1~J_[ڨP={>Nqy~|jyJY,ySװem3\wvlƅw++iPY#4vר;8L(%>> ~VhLfP:jd+\~ 0P$:ޢ`4 <P@xquq1l}[[[eS/jhM8@DlVJi&"x/ژz%/u:DWwRk'"RO`^ʳpdKħzIܗS`0*!ςyP4Wamٯq4FxpF$iȀv")g^@LAAyo`u(pS@SN-FT0,u-(}5~޻|$E҃QZd{ 93z6U! dЄ궛Z8;9lß|BĉXlq["lw7<_Ɇ|IR. M>lnGpL7vD-l3 tAĐ8^cP6|/8 v}寏]1`Pa"HYj V сLLcSS "cE\;b6v }xuCjJ>0)Q>$ErMXJnZCR,jz)LJB@_ BP)$GZ읾ASw)I9HqG2V/1`)Z,DAn_REN6HyKj0jofKm,jWggfv$UdHEϽ^L>fS5/BzC`|q $moA{4YϟwƆ'燽:o#GY^Ƒ[mAjKߥF+ucrmJu,ْ oj E- 2ȺRGPvmpT#BԺǺŽq!)!M&7):^omuJ]%ᓱ_K5)^cXtD3w5h@Gv#䥫W|d/.@Jm,[J"qqeĶ,`9.ZQ&EpjO뫃a5rmcs&M2ՕѸX P^a%ă/ q'yCEJ"h?uLg]-ֳWý匫ĪIݚS88)v8!*/hP~s3nV|[bpjI-CURC/FuW:?vM9,y*_+bu֒|glf!wp?x4o*>6;z^֫izc |x.7% bRdd%4_<ǰC`2M4AMS>f0Q6445ęX* ȵ GcGZ S(7PsD2'X#bB:HX-: )B63Xyc #+U: mEayHJaTsĐ,67e,{<<9*,sTZ $CUGF2f>E7 =J]Vq WwPDev0-SzSBֶ͉ۖlD/ޑ]7|ﴭjI٩ڒ]iVȒŕ-FLLX_˟QĒI h sqoh15`>F \]Մ|joSh:Z책[9+֑9'b)ɫm\H&VmD᠌V vzuF (VDh07Gy.)ێڃjEl:$nI-Rdr+=L^z%5'JVΔz-5ZvDlg-t@FdE?Wdu*4䵍bq}%qA$_22,,H-wD0×[/:nXNb,편{ {elC gX~v&]k*c;Z:ܐSR5:;L7-ӽ){br" jn4i|-l|<:!=RAs2NT.*9\كa8ѤTy]+F |Pix-^ki. gk ֥%CҒ 4V\^r..t62lW#YL2k:ZBzyK,*<a嫬 كNcnHD^J>|e"BooJ;;HA!S%Z8oF8XUM|Xq\19H1%W%&$x\ ^l[D%K{cʱ.߯a\Wߏ*GɆg_(wF\0ԼV`| L:US<1 { tW(U)x^-,k*K,CMވ-+ Tx$5hFbc¹< GnV W5+'Ng3Ck4tV@54!Vgeف,Q wרL:xJĞ۫PŻJyS`:n5? xe&wu,(ԸlaI8$߈K`TgǿZ*AUé,G` j)yy>Mx4HB [Ng}5)yR,:8$H-/ (Og"dړ4" -Cd1\L>?]/'0p}'+u/}yxYlI8BٵvJg0ix;GFj;h6B\Q_s_,H腩+IcfLDod+,J u"lWDϷ?Ͽ8 [RcE0\azV-i;;Oz/ϥ*aڃX0"|ŷ/_j hTns}]'nm$e=33gP%?A5K|zƐ16 qT_!wˆx~Y0^1i7s}%`lY\Ͷ K#f^4& tv'H6&i< 03Yh^/)>+%!El5rq65J [0#gYX 5~d`1 }[,g5 SfDfН\zNH&rJb>2P0 44pbp\ދ.IoJl4۷]_聖up<h4p#Ņ(`E^UtJ7̃X%*٫Kp+ۤTXl> z?/.ɰ;Q:0pTi1' y5LeGkx E3,cOwJfeDE`dQk>t_T YM!ﰐ0xvDId[iz˚Ć5yqj*+ϑƣo%̯+9 Q'b ?6p0 J%õF-KK /'J; "t.$#VBd.THB_upqE3TxAa> =GS,M2+B2Q㮒 kr!HБy&(UR>gsjlu ͖p'8n/|1#8BNǰ&hVu1z  prWrN%m E!==: Rk{qiO9[]oCob}aaqŋ,DSaӡq"? #_4l~BG`-;Or0N"-IN7 !Dփ6KyKG(dEͻ^nUZ]o.P撻A>_/X\ieIiKYϪѥޫݬ6T1;7޴2a&{GW0an 1.K]sa>3yxt=Z"E7$;>EzY&:=MW)?73; ;Q֟=ck^V @%Zmy%ƷRkVgR wJ*B+]ԼG&^lBbmrPZ1c Rԯ}wQjX(J}2={ e>ll,]z4'};Y_: 'RgՌl:!*w)RR!$Rt_,~5Q/۾z!&cĜznmMS{ Fuvz\RȬM-1ȺD}ԛ[o3 M,&|j2hДl1Iū J +6AtzXۇ!Wwj)-Od%GRy9thQ+עIUb, [< zHU%DbKK9gdox"i+73.B&zY_>XndFOVS58x+W<: Lojˤɿ,. Q@vR5%Ɇ4 ޑE'8t6}4.bo%=zLu@VršK^=O5~-f5(V$-#+25-/طXPV%X{j+W<9 hFCAG)%?#.z:M:a˒p*<䍰=\Y-kkk+ `@zL|wEhZ/Gqc< ^z;P"vI 5]iiP@۵F/de;;z$ 5|tRG߶Çd^cNV3q$"j5YHڻ .k%@f  (gUIFh„}tXf32TV4>vy䴗`yE`h@]qCdZ;T=$jsݽ%۩V))Xv\ T-f]I:_vra 'Z+A$n`OMI& BPے]Nfɕ5&u?iliZ. %qc4$[8T&!ú%38+S"[>`Pv+O6S޼MkOqc2{.?_ԸIkS}#E %c_^1{Htm'uR|ۯി+$:5|Iŋ Q,X-D)XXXQ8@@ #ޢ(C1N\!}O1OZ&ʎ_aƉuJXKUyB e3&i;cRZ(t.n!ddrX$qktfQ8)IGz3$}wUme-2ڟ]Sh‡Z+n#͉OM @Db4ں4ͺ9/MwmYG7 sWIDo` X3k|YİbLQGIm'$ZXݯ/+U#Ŀ;Kzf7תT=6?ܪbpح#jdE!_(_0ԝSr> WPTT]\bA[HGT`9g׷` ZEI:3nc|kM< Yo-b|_7uw:CGc+Rx볧cB@C?>^W9/}eMuIA>>Y6 Afޕ!Gxxt+I ߻wC?q3y?RFbLZ<[sg5W l=xa^Uc3n %5:Hm5hd/|9+G%R#Tmva95<h%(8xE"DRtWS*#4N|;mo$9A|@iC]&'=*dnşfzqZZYVL+ZH_ A Xp7#nOv>SrdQǽ6r#VһWS98Ø·/[1Vb-@}}7^FO<ȞxPeahtϮg4 3_W1fT#sHTʦu=/6*(_sҫWa{XMTI-%yj~bש^}[`d-y8[M2 }VMō{xUNF\s=c#}EΌNUGY.8,_/=JxXmo6_qS&)@;oVe8Ac4MlAS͆UR5;R-9v-}xϠ-lonoم h4K<&5Rh}:$K D4jR0VƒګȯĩfO)JQ+}՗jŝ1McǗvu4!0-Dx8\ k ,yCJ 4kkSs_tP%:Ơ4gSQ#4wAL):rvdRzn+>3-ubK{iD}[qk LS!IKJ4zfL>#y tl""=A#$'W`/MQ?4.[bJIe0h%z&S|%}r@X) ܷ]qu4NO}ؚ[\\fdVWpowej6Zev^m^/ѿM Lt7ZKeo~VOA`,!"!qb\Jv|b nsn׶b?&TaU&G旛C_A&i4 F26t4N*KN/(౧H\%"Pp# Ûo)=憙 {s"jS̤Y{BDH;@FR~'`9$$PἝKB$ BՕ!]95ygy(fkx9}y=P/24׃Zz5箙!ނßP [{>`Gs6TB{o_88!H9X(9MxU\uLkS pĥ"TKd ؅I0-:.qQWX{|vroUkL)/f<0sA;Rr63cŌ6X]ҶFD*LOx/V)[+FynY gYe̕Vb ab5ְO4[k!ބ`-K+ K>zeW}Ꜽ?ZW)K HqוF7svwiL0 )>Sw-OD,Ed֩FÙ*^U/J#ʢłBfy QkmP,Oua.h=F+oXG_= pIm4#YMTE' ߑۻо%oh/qU u{H/W%Pi{5K*[2v||\xH4zZc-%kg=O *I|ڠhxv1Aɚ> 9{2<~(kQoCP} *q1M19.MFb>h."!>&1ǚNhUspLWcu۰NV> QHVIo2) gf;Mc{HteM5dX^J*c(N}Ss59&I?мMY=ԉ+*e5anIhދՠuebU~֝Rɘ *EgC5%#|uOnz-eu1ݙiHzb3~SMÖ* KrX2Rϰ#= 1nm0fyi֕ >{ucNҐA6IoLbԶ܏*YG1sI&z`Y:9(e1jpDӛ\NSp#AI}+~ґ`$!Hmz6u;|_s*3_d KacjL9ÈSA1?aqcv;J;6bzc<n2hE:/c uN_뜾)9}#/Q wy]+Y_-T3;N"4+l}>8 :U#|f8QчM Xh9oY0M``,pt=^dzqF4$Ʈj;3є4a%O8 XuwFB4;c7[oaY$hkL)'e{p1N epPGXnXހ` <*)KD%@TYTsa7RU%lx51`= .\ 34ݥ}?ah4zf=Ǿ=[+h%@}j]\``g ;[=/¹uf3 ભ}7ű*$ I* 'QLm7& r@Q/hRE)Q>u]~7&>ñjο.(B8Zsm:k[hC>UUqALt92DxPV aS$hj@hmR2Mt}Tw<~Qx\? _A{<_ [~j$mu=Y=+lo&w 5ϼ}vr^?;b^30W<(ps# %aE"&Q 08q9Y9?A=G!1QeU~IANR `.9(î EFH>R $P<⊋U@ZnwaϙeJ,KʗtmY?uAc?=wAJsA?!aYoW}UG@Ef[G(\A/]/#%+Om#ЧQMRF6|>FZ. pRjkY^u t}F$o5w"'- 3p)jv2O+7>#5:&ǭ ]Akq/w?%>^!Eثhvɚ&񷭥dnj*pB*8Ohl\4tPB4Z=,.L}ؿmkxVkOH5΃v_4i$dqBVΌ!]%ǜ{+{+5o6dYH3Im7b1w0esa'u<lRpB <9b<{Fiu*\7,$u¯h+Ԋ2ow ˊîR'), 4) AG1ݕB¤@gwzS<K@ `i ZBƒ([4|滓?> m;5t8x~2$P H)ŬK$UEnNy:pχ)A4AjNt>DJaYӃCU>8h*QkE%1Fo 5!x HeKh w W4 E n f"Uo4{Iv?x 3 A UB>bp^6vϚF;nAI\k/͡^]Lي裭ciP7A'- ǍgB,(XfZ]vןZŰ b|tRo+VȉH4նbF@* qMw#.+lC`j<1SF0m"JbE22J*WT!s[bXڦRT28Ot삆\l v/9?l djK!bb'ߧPvUs f"e}oXR=(&@ͱv(ݝTFQjPy}'Þ8Np zgahNAiV 77ɗ(}ּ>k-؜N?<Іy ֑9 ϰ{Jmg7M_aAI\5k|;/h=03w/FUQD%ʔʞ hv ggK&@п  O$(eP)ٻŠ2.&R֮Je'Sx;=!3U 0NOd6CA4_PhOز{תaJ*P.Fk3僌4TdvMOЯPoAM"b3ܷ;|Me7ۊ9{*+RRőlhLr-qP>~,PZG#ZՁ}kbZ"\-V'>.ӌgEȥl -hѭ|@젭ɠ[PP*H(#l¢ȞHشoDXg$5ɵ-F2$t~d>ԋ=GQ'uvzQcd̓4%_lS(}#w`=f QoG.Iqr۲1Y腗9޾ W޹dL/G5T_x73\:^ fm;P-0Q#s'-9]&z3UB4>$4A ΩI=ߝ! ɨ POCb3(IM)m2rр*OTFR唡ä0Gm^0pZ 9Kߨ֓V֒&{JA) vJ3%_g!^w1vtd2 HD9&G6M \nqE3~yVHK f70G&\h~xvۀ \8źsQg =[RsՕeb0?f#&&Z5&sM͔S䥫+ƉU::DSӉP7E<ž}6S.㦪V [IxRo0 -U[ CMEIHU, X"&R,[Mg{ۅ`>u}S.;I(Wlͨ8oN-G 6 WE(X)b̩pSELE eJ*Ti(k),YNGPd:#rr25*;e-Ӕ*R,m(d4/-}鈴/זT RF)=c &HrN瞷 dxhO#7g0b[ŏ04'Ij={"/F;,ϛ0JB NFӵ' {~,7n6Gq{x2{#b '_=^`cϣ؋z'hD 'V)}ɯǵ~N -0 b2 Watl=>ݮD-,àHF7ldeA?Yě+a>CLE?ƁQ~a"!lvS ONa5W? +=PbY햙u}փjŎgY)h#{Ǵ^(u1֌sor#oMb? 79QlnyՁ~O}U8sWx@P%FC%XHq朁~ s}<19랼sX5EJb8pn&iΈ=@q^ NAMQcN DJRou͡@NJ 5UԬʥ#%~tL ލ ^zX'p]yd&#vXmADō L4ix|)7f`O;7 :֋)dTQfxhfp@j@"[A^$ j+,@A , @p]Um~V Yj8]s!ߠhbwVq(⥿H 6`Z BF%#sp_ثXye~_Az*|- q mԐZ< ռ곑ҽbm'2 Y=zk% VO ǩh.Y8ZO [1&N@A|19ȣU|PPμ܏Hm VZ#o 8b8m C+me|6Ă%ƆA+g΁2-{6hGPRXH^WoȟGa'g=POۓY,X?q# c49k`{!7{rpA+~1n]{Ďֈc3P0o9+Ў]{媜n 1{!&bv`}qToJpoZ—kY J9EVa/ aw|c`ԗY+Ep p^< RANS:rDKa^sSu3`cvfz^fVI> pbdw:n#L  9&\#7b?7ҸgIe&!3V#=KI7 F댿A2AڦM0 FB~6U#]?_ƴ bрv< VHE`œ 5 "(e&kJovJ\jOO#E[qLEq~܉i&NXq~i2h}돴g8eqZcJLj%Y*t YgNx].y-xMqyw/Ų|>~E+.xo(8PDZǖf.N##TQ7 +,"ij%=kOdMrU,A*Yoq^y9RTQd|18,,o6̩w~~UGŹC{VW 'S7 L0ҸZ^`/H3,nBS؟f(Ӛ1kecDFOY ҃G,D֏uϢ0 P") Dz.LcTwDX?x.`Ktܪ$~L8)؉{ tyQC\÷]CY,܁jY!`T2u k+ܨkz?:ʻk/T{9:ygy</ԛU\5#7J<\r8{ ӁVG +(ٛ_G耒,ϴPta4{F>F\8QraFo/]$pDKB Ic[A{bn0ZZDL Ϙc?FE:X*(~?o{ҿ.ň`ug%]7ϰ@˦ҽm*sWw=8oAbC! kzLNj-Ȩ{m;aYxN2aaLK)'Babw.ڰGˮfX/E>L n6^'}ct`& AEd=Ccs/0xRLÊ$Ԏ4ҧn:&l*ƘUe7xj=sy׹?y`8.utشg ˢ>5j+JŠ5l^0{R,v'ǵƃ2H %F`` 9$r_!Nn>;=ڇ̂*B0ڬ6?`rP+Gf)y<|i̪\d/XC=}l)x&}1b7 ީT$r[ȶ-w^yz(.a˅ݍSǠ7g38kÀ4A=R>ϢgL^'('ߎk/ E?uCE\܏,b9&5d&ǔNzTA~ALHJ8q eI Q$%hOab>B)2蜗 \#S- AgR7#2X( 8kѶJ)ܜ-,.Eunt=2r:޸dW.)Px䰫b!CvºnoBp[FDreJ9_l޴,dCE3psqj\ MvHim5"esʲKَx%-Fӗo~P{W ^p2da!/L&$D̵`ݍ xx &mr37C4$f%riFI!6H kG4p80h8 o6!55S%ltk&vޑ3i5evlt1CCu/NV;%F*ZP9Y%A0e \a<?^Eo/3Y39&ˋj/a6H<աK2A`)BJtg(ܝw6^;zퟞԃQr~^ܧ@ùwvBFat^t LeCD'ǥnr'@rS"MVTư >k]{;ڢRK*5J5rj"G<>\0d2΃LH]ѱMSVRt (g0G i40ÒD&< 69OC =gvRE?q7(([]ɼjyt aԐ5*džU8ε}K;Vnng IcseVrVSFUEmB(ٷrr)bo889sM&S@jHg!}r09u?z,Ղ̍22QL;*]oA̵<@u 4čǩR.6aSJ<=5-_&"IMmKv؋ ie`^h,V!{*AuwQxPO{yZ,ֽ2*;& a)JUe^=VHŝʫ!^I;,W_0L޿ pSp(Ê0 ^uubw{ﷴjE"U=,:?Us?0M2LbJ%=WT(T(/< KuCJr5ǦJ0 ߿A=Wϫχ 4836&qx6's@V_+f5o}(Pݖ#PMORZ^-9+A,[_`O_KsHRXlǤR]7 q-6 oVHx{{C-_!WqjIi&Wdk0Ԣ̴ҢԼgN~rbBQjaijqL8V)/?)?rWf, J*PJ ) hiE jj e9@CCC=]&(4 J0uV98bu-Ml o%<)@_+T*OŦbWd8f(f`O/K-#ԢҜgD9Y txVnF}bfA;6r!D][@CKimr]Q[{gW)\Ϝ`w7~xfiȄg~FaO^Z-x 2).̸Ⱦ’i7J޳ta4퍆7ߪO:R14Lk~JOX1j-3B>_%@&;ha~M&ذA㆙ SpbtY?Aa ~b&SBfr;'h'YBEЇ!1f+~;2K eJҀQ;0 'j:AdbQAqcT\TA&lK]BqHu*(+(mer%K|,ylYT9tz'yVǎIsۗ/,b?.8++Y^3K]\cE#M!FYD>Qȗb.]ţ,1*mKgr/-4X'†㉫m* ]wUxb[P[AajBW(tpe@޾$[Q*"|<l'B@+bVjkX /HmW͊oTǩz>,MT691(Ruv|T Vp[UdZ4E,IBƴjm46l0&xf{Єt1û?o 0hV3̣WKUN>¹*j9q}f*50] ԐN{=Wm5zqU:KSsi[W)t To](  _p-SkLgN5G5@ѐhSb:%)a؀ ɐΞ%6]c{zKZOgMx[ms6l -2;;ɜ"щYH\PeH I9uS2!if1 b.}do'^{$qpF 7nfyByq%iBÂc?&&sx{_aLG^w2\Mt#}ָ茜FXI8iݙo0J?!x-_xNПh8C_k6O"Tu:^t:'IuuM$$zſN$ ℬ]ƟkA՝8XE1 sNgkحgq'zeB+;s$h9W3J,90*gӺk2.;"HVBA8|,)S7qO% Ə~7wi) H8jACPPT5Ⱦ>*y%q u&/6lg`7:^SPvq=$du'{@ u99kT^^w$#sÏÑ}>WvZs:mx?lvbfbsqhwK{Q\ lӞQRmNmy eC󼕾@3M%m B;{y|hgwiàwFetoQ=#h ۤ|%N-킯ijwoj~*MCy12>~o0[Nc|P;4۔Q`j%p3tpSٹa:?8h[?U+X./`o!bd\V/ޭ%9pZh`V[@FK7qp&˥M,dyZ,뻀.޺FzsEj8$!_(9y],/*`³ՁC-'cx4vܱd["'˩R gF[BS Vr &#V9, M';٠VPG6S˜9)8Y~dBĊ|8Y# WV7w *%(h5KAP{K S؛#ol(Np֫U%qD1 C-~[#F֓gvsbeq{syxAHv5YB 5fϻqĘEnU G]ud161&?2cqAF<M"UBy)h c/oGV9@@Akٿ ,L 7X^GooG c$qiDp2 Y010?{{W,癮WLl'PdaRTPՂٯ9,QS`>"λ8c~(bY+.H*1hf`:.I Z3[#0XQ m !gQ,яaX-(6:M;; z(OI,#? l[ d# \:dGm!3r-*3q=j C'xԭ ZnUqRkrmFo{nTA?l6^[,6hWaCp-JMbs(gnSz褎;`ة+!Ɋ^VKܜ#%y,_jiK SG$6252MV9.hRmh  Dn"aUD,Ap$,~{@/GUf=|{wJwwh2Wg) \y[u3P|?>[W}"߶GF1-dub,+Hi3%GEPI ²r23eÆཥ(HtzRچ\GOu+LxdCL [h\E38_8 lԅ7'J(y K-ܥhV!PŐ:N#o_W(|JgP6]IZZ> e>PֹKX`0`H8#X$T7QMT3wGxCFwf.*ϥ$yP@y^;DF‰Q4`q$X:,ex9,(5Y RUB}A3߿\ySM)'Nh Vi!X*sZ&M=,IJiXV/;j)+aJA\l,* cYQA8,UeLaIY SOMyjO\P-SBH)u>&jēݽ_~$n5;^+Z&'eK)qt)8;"`)BO 6%sѳE; IB0%b6{Hud:53qx*ˊ, X-!S'34+U00)+RlŪy̯za3R8~ơv/sXYi8D)<[&@ks#{[uJF?m{MT@ɣ+{d(\*ciLUg{;OQN!?(k>F4d hFד:/yOWOL_`i$ɩP %گ2tԞzQbN-M?+ZC7۾#O.u۩κ B=n Wˋ9IOJd=tԍz[e1SL4]ltߩ>׺ʋ:˧bUtmY5E?z]{L7풬^j|Cy.W*>%'4kȘlu]T\Yzl])W}dxSgmvƟ_&[#_edAEJ??_.yy#wLinӖ&NVȂF} Y?&W:eݍ[ N1*n"o4+껢 62mV ZnE G@dT̼(D'*AΫzBn'[*xW@sw${gg^7TOwݧ[H j;j_ZPq_vSx |N8JAWJbJ"!ŵV?8NWCf.U_jdA@y_e]zCRuJó0|,Aۢ[h b._o^޽yѻ3XV @wR7w8lzW`Gt>eW:o9 h|U5pA ˮ91^eJU@0J3F+Gz\7Uh X} kݎuKm:S2Ra>Ȗo[v>>0/Zww =|y"<9{6Ihvp䃯vv./_^yv=C*o,DAO2`ҙ$NNdbtzrFdBx#_$%G^_$Si7U/-A9QmN:1 @@'OԿ܇bOhn}p j7xR&GYHk@^ж *m=7'![ C01hfQAvf/j5^Xo>Wq+-x<-ND=xo%wHxD-Dqs9 ~hm|gW 8|Z:r-1>hV)Nsh-V+`F;({3Lo@M_ޑ<-L"CpsN+X0/Aie43opTS=uv 4E HΣ]Go o n3l:68l\ s2HM 6>C@!A]f4 ^1q hfwq>S׸}L@ajF3x j.VWoQ z+ubУ رh}r zxp.LB }WoN$5qD̂Z4/^;:H;l_X:"9</~ (YϡUW#9ٹ-4h"}AFc6+j42>Ub(&W9zbaS!snrt|3\  t| 8@T!w_rރ!;듳͈"&&D4xviכdei]]|axƈ>Mt 4<~x()uVwP&% %{@V,azP2>9geDzdQ6%YyzJGRDɑdFe;]'&C;k>Xa{^%gMY/{mpi]xB5[Vy }5,0v NY16FbᶍzդHu=X<`5 ɀhez$5spPqL^y12kL[/yOͯ ^O>E)ڥ 瑸. 0F=1s}ˉH]e5Г_5RY,@÷&pB@?_r,zBvK@*V}0 s&O\E,i?%SLYX`IʛKq0FkrfTz. =$K(nA öITo.@Od[Cv B(7$0Loh8"k?(Ş(n^7}W "yCsL5uZg?q)9l4M {i1rh~N['0P$oq6 fco7ns<"96vIFWGUtkC9vI=Xqh AD8=dԽ0mzˈ7ƽ I%X6/z뺲pÉ( v#)T.Y]=X="|֨Ijգ]=^5Z3iӚ =dZ_W)d bĐ=&Wmr #2Vn)MCB-`cV:)qV5xS72H\U:/wG-m Ƽ&I{p3 ƛ:gM1yI' 7~j#K"@6VTm\rnpL͂uRCazwI*8Sk Ddp7fT랤3]o#}fqPQd-=Y(nټ[SEy@V&lcecG@,b׷(%B37l 9GP7>㾼>il-X>ښA-G;$J^t $lb;Y#O LK:+F0J<Ql9ÔځѼ#V%"2.Hw4KQPV@rHgK'd ԫ7oޡÜ){+oz@CF@=lEBmezۈn[^D 0-/$\ Vd^_ 0ҫ$@R_+BwGoٌ -&, 2 t9ss7 K1g f7G8IGeyQy>ᕟI;Ro +N t-z6J5fmx|Lopnh7,UfqFigm%K+MxϥťFi, SY3 1턑P0 p,} ؇Hb +]=wPbti)sv|"umvi8_Ǽ&˼z۲ 9c2W2YGWa 2u=Sieo^>bBR7ŢuM%VDF9>:t)W`PrKD[)TI_4Jܽ , `.xEI&'m=4i4e}a k{1Ab%)U;uۤkؼ.ώ >G't~KWh;8 @ODW}.ZBYZBӠm K<wcA.fZ&v_ce Y` W (0""rְP|ȊAT$$0=Yp< *VsAB,yH5k@h ze,C.VmKm? PVL7W :<!t2ڑ;^݈0~sgƩŃ4_Su^@ ܙΦWmO dOry8F .X4S5׷ss3WF3 Ľo+^('LFh+ںƜg,YQ`*Ϭ6 "RO9 nKz2D^|l7QXjr+h ?%oNw',)SEàV(ymKV7 6ϝcv7HX.}&p@\8^bMJHA+pJfE91: I$ɲ 2]5;.@T$f&ji7@+Ղ@~u7g鴩݄mݔaPcoݍ*0 hyqDzSكf~ T#dcnr:#%m"^q9T/dR EHdNc_ڃTAx`*y6LZmCo5Ŋ?#z q .uVceaFwFZl {r-.ヱ5Ut[9c?fC,8ly[3RŰ O$kKmI})XݻH~Xzp A!2axi|sC93\.hh;TzGFڨ$pu2g޲9nlz]l(HZg{E-݄DԦ)Bv/!\y_z%qbӹT%@QrjcC fDK '-(Drk8G8m`42+?;Wt&Ϳ.AИ.܆YZ>Os:MD<ޜ8w\#؃ZGE:’Hݨle麽GU0G V9ӡ$u'_.ÏY/_utή\B@- P:g(|<$kiG=hd]S޻|v75FuuހVmK0:zL+83H ^$NXǒG'jO$QOaw y÷~GL[wlrzuqUȼv3~#Ǡbvd:~b7'޶_ip>c\oM,9 эwi u tR;X!5ϕ_[]q'/__ީmG?oWv' i!8VRFݐ `ᠪƽiptT,K{3sK&,u'i;嘧nbC٢R8&0~!#=;iMb`~p)m,մ^GWSJvq^:MEJ&gBYzNp/9!"գŒbrՒwV(l×t e3( uO( Jc*F;*{p&7P]W;ߩ=o#&#9mm1-ݬ\ܴcrX ҆PhTÖ{g]&&/]g$kk?N*A>EM_Zizg |v=7Jƒ_xu"n#ڍ[^mn,yt 0/:t0_!^di,c jZ_1rQ-x# ;{[ ~9(w~2"A/q"2Ve| x#?0L)a2 o?kCdoM^::Lmm‹l@+?` w>_p?O(qG"hPTѥ3xqӍt 5#,p-TbjX46~Ӥ[ޙsMnN̵rF1r#vhzѶ|).W.o H#۽'-ͯc2jj3𫡟8>8 , Sx{zq= %E% %%%yUX$SR2S2&+n!b "l g'<+Imrbdpd BE7 !;*}xr=qp ?O?wN2s JJB2R|B=C<&k$oI~ <xVmo6_qs- ؆$N#v PL,_xHV $w~QQ²C=M|9g0jټ𒾂7'?ߤF?eg0ET81^01J&ER "L&h_1Ty"4#_+3.WYmT&ۘ˻$] 4T3enc/Au 0f(߾Zww7)3GxD2lzj'L\u5&[ն%at! RAhܤtr]vzRUI/<9 "í/ED@XHvs!?`w3 s!e)nO|O37Pd?ھ0#׻b0wNVrwE٨Ch\TO|Y+[vS*n59TLrT5.G|b~xU]oF}_q7vėQۇDZA@='MwvP/fܯs/>,)OPLhqVb]YtX?k+ Np0 DZƬxf*~Ԗ_UX/K oc?LKgW ױ2WJh.y._L=9 bHV!+=6LR*FX$,@HmX 3zH2epb6{Fc_7[߱oLq/%vyltpWrnD'{el1qA׫K;x3A'^I5I0 6_<w'2V(O;N*v#w1jB`lilGtu+xuRn@V$7*PEDv?Ab;$IV8`o[PV\y q8q ĺ(J`Of~ws[c"`B)уdD )}<@b`){QL"B0fQg@5&F0LΙ+1&2el V^LiWlB Su/cދcfh6:=bۭԽ,CnqWӗqxU1N@EH^DK4eHHID(R sV:YZ޵qV[ nAMIr|^g3# 'șǿ^B 0d9$L pHrAX@VTXx<Œ-hC!( BڝTf;/iTbPV(yIh!e W֏~A^7N;^/K,:Ҷ66؜6MiÄ)dcՓfOng;[6&!}0klp,0=K '7ԷݸiFnB%|Ex75id{<\bߣ@l–p B ۏx?ш@ڛLAR(nEL2}-czȎ}d{MPIUqYXZcP9B Bҁ*x3&2FfӗqU,̢!_NͰQᅋkst͡ ns-_sloAЅjM!%2jbC0O# ySO /y@5F64,zT, JÝFgldKW^堜>19xOulq ")T>+m='MWX(:, A sANN` (:eS~FBn.i3F[Pןvkp*84Oப~91BypW˰Sy+߈%~é`oZ+uPt/=L-*2h/)Y2S렡aIfHKhpVB; ϔ<@-3;,S DŽby.,5>fF+U:n@f|QL[ۑ@XD4$ӮN%[ &{[F">g-v&{:.p7L} CB_fed̓;zG|1 K _o@ݺobz$Ёi.Hi#vxhXb /* If device was mounted by the test library this flag is set for fuse fileystems. */ int is_fusUR mount_has_opt onst char *opt);]by a fd. * * The dev_fd needs to be the last file descriptor opened for the device. Call *Ndev_fd and set it to -1 in order to avoid * incorrect usage after it's closed> dev_fd An!, set to -1 after the completion. 2p > *xYkSHlg!G/!P&!6e0TJ%E-L{n^~ˤ6@ٮ6GǓ ǤݽWԗCw' ٞE Hh !oZEh.D*S$E@[G2KDq|h4e40D^͖9vHR~Jz ʠ1iBWHJ'R! E8]ҙ]C#&L!d"\S':aaNvG nLMPFIИa\R9p(5R䇊$!$!h hћMt}_LW}>oaU M˟ƁLazx:8#3z!ujE{0_tq9O[DCx@MayrEjAKM&J}+`aGp%Ɂ#=n=&bQ8Vbbs= IߤT VMq{ H6}ND{{/^]ۙH-"@wqGF[zg֍#Rr)N:.I]?jM*SBpa*Kvһ4v<f='LYs^؇MQ4?@bFu&I-g.OҿE(B7Wx~(qڳ>ONk.I]"GٰfAwV+'jx<8mzS`YXmHVYlyffVs0Iəؒؖ/_y@ ,LTلgӒU`YvK砎TtxHsSO5&u-ogJ̭T.YyDLcD7rfvm4ɲ:SyyR3=|vҒPaD"[!ǑD!BT6t3A'*+0 FP$=4H[AmFS4F`H?$h_:l3; AE3*򬢣w.WI3&6Q")sHqa; w+*ȫ%0u^S޲:$6ݳ'M:霛l]")*(Eo9Ze9|$͛TO|e7 !ӱqfajtuk۹)OscZ@F^OYCѪUUJ|} 7=@ˆmHhM Lh Sm1Uz5d#6.JrK; 7bKPZ/oe2[ 7z9:BDZ2ԗ* 3{CVg&VJ7YߕFj%aQ²nsRi3\2 !u@qs_affj-F^.Si@3I%>sgҾ"=XPj dʫWkt;>$F7ie;a(FmE6N63P@6U Iv fu?LSg䴕_|MꂙJ1M0|\[2"ܢ:ƏsT6Bmd^N4AlaxY!F=FސFX(D4D>6QX\`3R`r,<|q {!r3 xx1;WK|VR|E:̨ҹ\SiBaCXiQ9E ?Ah+dMnl{-b2qςBRZH,8( 2߬\6$90D[Xq@MQ8돜zIؓpcK` K]y|#3Ą\D5]CrBQr]CX" .%wkߥMe^{W4\yĊq7-r$4̖CQ{ 7^Ry2r1YZ7{w#H_PGB J"t(PtpLJ1; D誆P6ՠ`yA DeIT)&+$ZRຘiBY&chrpA*%IzDNJ-%O@>4.$lzL:,Kbc;Z!6?lFn%rN[әL A ]CmKsܹbǎ:!1cm:~>&]D 4Pj#Pdh ^k98ed*!¼b T0^Ćfz(+(bgn k~˸(60(h҄!Ng-PS0΋ęeP7L eN#u)VG{o,0УtQ=@: bcE%dC.!`$':0;OOs3Q.r/2iLRH OQtO= `,HnSJ(TV+IIY(3*ji(=7>QID5K fP"}}bъ̺r@ \=|f1 , *H%M ǬT? 5 VQ*aTqڳ`قCu8W Rb Csw5iH*->i?'Mttm%|(:>{XqRMjPXF^J+-e orA7gLݡ7uyWTmsyjtjN'zU9?"HCxߠBĪP:׃u}לL\5#"w YQ4U\au.%6P?cёuMej- %C$5Q0V4 g5hNyv\N &̹>}{MسgiCR^uqP9K υ9>HgtߓdMhCM|AF W/dkdS: W<>/22@Ɲ.# ND~ڌz jTmw':њqC}i})fKY52C<`hS㌍b֝Lh]і 4=l XV r =7"q~kkby..d`yygV7!I3+\0߄,sn`Ac8?3JujҙGCI0ӽM!YRCu?/xؙ%MuHxf;ّ9k'6ӟO~^4Nj3W _t&^ gf֨6_) 9XӽQXUQES>a!^šf:33ovBծ5[Y,*wV6L9Qb ib!anf`ƚ D|Oڅ ͗gऑ(6-j"8\KEP%VjjeҤ 3H2y{Q -9 mA=~˜5!MMtt"I/w"}Rpcl4{JI33^\S;^P.p}խ H2W`9qC5$l8ů3 hR-nP=T UR/\v .h xCE "CfC<Ϟ%=z2/x5S^2cN!8c{I;dx{ti#@ͳ8I~nx;˴i!fG:-xVmo6lj46f-]-P6vRcX.Z`ZlRߑe9Iu_,s/;ފXO>9,\QgRQ/a$"lɠaQI'1T)`Wi~ ,`.gd8x (YQ['[60#NgltQ,ÂZϠC˔^nUF.N2HxxчŴ܇km dQD% DW6@Dvmw9& wP?MQXy+4coyav0|#<-csV4S۲?|z!=b%#2:jťjXJm[n6 wwpYmZSG, +ނ\)6uaHS#VR^U`6zWHIrDGB:Z~4wh@(FcGzS*do2tlq NfvX-^\|or1-! En/_{J {lX)w\:?۪_`n[PpZV@= T0^ nk|bc)1Z'kDQh0 Xg± %3rtmg]錌|1xr=45E4ExJJi+{약"T'۲kƷ0^69֢npxVmsF -o}1xp|{[yQ is d==]o*Č~?"dfТqjJ}#ԏ*2Zզۡ^pRFe+'t%.)SR"(̍ iOóLQ2PP(2kA%єEvq3 e,H ^%8E2@.IHW$ƚΫSJeiWmسwSن$S6k PdqLKAQw Ӈ~v3HܙAgx-D&M,(@&=lh4vłF99t֙nvB #[40 XJk*} eY)(VIhd/\ j݁(>!F%@G,SʴaC~wקijz̦8u&Csdz)$eۆ_xx˥44<8JpQ!].8]nk%DdX,Uub#WK3z8ro]o⌧W2 <3]b'/7L绛mFbnݨg .+RSX&drr|J0Hqp[po058֬@ w`hs 2QT ־Yozm}H^˖mkrJ-vMprx`"[tky`9{B#ӓimጆ|nb+Vc7qb6C}D*K,ڤK-+TD[1fu_ecIlK@0zgʎ eLHV/s[XGPE h0K44̃b׬j <͓% lg ;)ao't9]l m̐RB}oX(Ytq"447{ ֏Pd, }tGmv_eԱJlЊК:yQg*F@50J3{dWebƐax%@ќ}]zR@8jMr&6[/QՠQ&ٓm0#q t-Vll<_*'O8Lc_r(H Mw<6 |jLӛ/2E,& 关cۉqgo0.\|P?x~`87Š,gpP} ~Ԗ9ܔvx,O3 Ecop ?lYd*-(t 8?7.h"u` @'I|gj{wZAJ5g~:$;t-_}^}ZU[=`q͒6U;EOUZ'&.ۈ[ y<-G j+DzW}] aD *@}dV x-^8Q__!8%B'3958U3%5$3-3J=GH@7H7'$K_KAK9(3=DA#YS'3B!$D!(?+5DGL|">s~QXpsNA$TxmTn0}&_1 / *$K{]Բj, Ďl^}]d̙\$8zE`>GiB>?}åj6Z(a,j 34Z(Mt#^V(+X!t;bfd[(Wj>(k%!Dž X( DOkx`) tB~{=_#̪Uؼ=1h)C# {Xa||5jE/JЋdz)k/4CdGM|x/x7aW8MN:{xD-wKs6?6[;H;I 5u5oE]\(sx#3IU-5r:2ZSS] wsmGw[?[C%`eƸEQË !_Xc&"17Q %fKɾ)(8MT2s,|ր툇Յ 1#~b :JK0$@NQ X>AzE ҹoP ?)ЪJYn̑ҮvoWlrM4,qìSi*%O/ !QӇ$V-b. #ot jGY5܁@蚑heo6by>r;94G.3.0ZddҊr>і_"/ЩxXksں BM:)}! I m8]Xiz~זdc}\fK{kixx+B(~܉xv'cAjʎ؅\=b6Ϙ+76*cTǚFYo6OsnP]8'Xժ/4 =ƯijHxI#ޭyʃda TNwzsxJakrߎ{~jQGc{& k败+g_"zp@Dh3rƗLW+f^erlB}ӄO=,b <tNՎؽH"9d%^cN:<=46.->AQ (m0޿/xa@r'VL9$^&: 3|JUq  fy'M;(X/8tD/aɒmxugK7~E-SSu'C5:w׿/q%V7z1JL9J|~b̲33FKE8RvDIng u>0S3oV P9OD檗ægzCɅ 7ᡁܙl Su'R>bbWi>dؒil\/~u;nλSiCL *K.,q{;.KT8[& =yoCAׄlY#fEK A6܄g؝SQMMwmxQR9&R"N Cy6^u)FflŜL2ά]NX捱J(?a6IjNw>:,< U`gCBovl`mDFSу+qh`vo{[H_= hk_ yo&V^!wIps|Z5N4>[Wmj0u\-t:gV#~f^PAC+pVoI庶ٳoR~*ɒ#DȌͧVg2\:ԒZ~\<-4fum|Ba~>a0hb mkWJw]w'V͡t)n*lb)2_$%T=ZNS&5"PFׄ{,HL$SR^mTM5#?y54eEL{`C(X"lhHl@>z~#WV;8vXf:܆= Ɓ=Ա솢'\k.MxZys6[:M$G%7;ʌ^Mc$LCS$aM\{Hcv6";f0 {SPdEC֌Ƈz{1\rRF"nuY(K־!rJB7Yv d )%wPqh?4%&4K{ ϔ8>qA$a;'a@Hպ$T"=}`10NEz EJߥ°BSIZu׿wΓV`DJG]O&?8D6*ѿ-WH}=jik@;p6):&7&4ddE,r/Y>*!+L' `ڡRV||A% ,1`$dSxr7jiX_ '@J<`Z0nylbI"7K|7mT@А R?:UWYv,+)،ލ\W^%>]k'Vl/wLdL Y6=WTMh gTwjIcιJemZ*`,qJcM !w v! z$%-OIـ$F$ydHXvCUz.$H A44-B)]k _e;+޸+!MGJO0UGPOVqJٲNK޵{TYӳӅs̙/&Wl黅s}<7gǓi1̹!wWsqzq5DZqRZu[w&a€È7sx$w>+2IoX"+WZ]|40,+~Yb9(AaR@nkl˔R *!Ù!eik6>\5QG>y82%.ؚDzP}Գ !ărx5ؚU;F&Sg-ܹ84/hj:HZywuy(秋vh#30ovzsdryvnaB \lOЈnOZe#wZ=lʨ!a -5 j6l׫b5zeJ]5Sf|g 8R]uR>ȁL~s@r!FDqdCu6LB G#E M:ttϟѿdUk@֭.*1dg = @y?l*v~`Xfgʆ[㗍ݥ36Z:8e&qf9=>x搃Qo9AL_"цwL~'i'9 b)c]#O`hue+syˑ2wϳ ,E+@,ʆ 8#!'~S S;\Xr_Z)ֿ߆*>eg) AAP~WSdroɇ/ ~&O:z $i@{&) R28InDF0Aa0O^>C2~Bnl>ߑ_3t ߆af!/srEW)O_3cK.ߎg·vWfvqrSAst2փ3X'~ ?ckpM-[Q+2T^(uo7V?iK_z0nM +8(S&CEIh'49S)1a=w;&x˃S%fLwa-viu=28Knf?/$й8w?q_m(me˸0rhi@QvY"s>YDYеskv sֺοƂWO Po|:9 r@f b/XiC!mv@ԯq껻JVzRt_r!x;m'D/n>ivɟY0)$NȘ4ٖ]j [H`?PL ۲)h嗤Nnb -pn2r:d8`r5B}"\ Z %9i% E9y,!&rYI@brr~i^IjBZ~\HOpM~%"ʭU_ZXYTRZZl*'$dW'T`SP2 ]2ҁj3sJ7O#Oo|%ahl)ةTunxkiIJxUn6}bࠀʗ7zm%6 Kno Ȓ@RN{Kؾ3̙I|5g1ϴX .v>i]\Rt: /X'\eXFT8cm),_!mKv٪<,y/ moa`inD\iEKrTj34ϸU1̔ E7hKɤ 8l_?xp_jx:XĶ!uLDxQ 5v59)l>E7\C!󂮩-X|c ƻ˳DƁN$-9K˘[TܷwO!.eR,AOgyB7CyZI3_rsKi!: O+.]ސD|Ek>b02 pxA /3lg13)9J˒i(QZ$U.ctR-7e p!Ы=)8\5*kP)%-Յveb+{s< p|;OUWt^EFl)nEkDsҏ2 r |6 CEh{B<*1y!Nc}5.f? 'E4v"(,|{n4|hL+&! ʾ-MK|4mk .N-bϯ'9(` 4"wEOc%97<ޮ:!1`%ץ̠s8A [.0gC;5a䦺 Z҇r2a0O$;Gv#m֌4àLo/fw( ޓ+ڎ5,_U}{<>ejxiF_QF ,5jş *sc{sYs4XMؿ ȇd2/E`LZ/8{n[֛kCcۻ,f UCb28L&@CEv˘x޵UjVKʲߤB}P}ѽ%kCx xU`Cs5)vxU]oH}U+!>$%Z l6{fl͌ۤwAPҼ;gs;8 (= )2 qގ}IiЄA>h`&vOOtMC>b7ڗVl.lGGl THF_REA085XHv5|W}x7G\)<qRhH1MkݨYc?:"XPuʲ D>xFtPwO'Ms{e0 q׶68VY\ׅe< $*)l*A)IPt>ɝHJ7vM#=HDY#' Z FFq7+CyU [%"ݖw`*/hz]vx;#N#T㍋M } K*%xmRM@qXI <Q!UdPL&$Խ416 x䪿ij7);;;xHzUJ~_o Q,"e<~&/bLRETuGu5<7%ONs*~5Z3hDœ6" 3 z?vmBK@qoy*1iRVZ~e;fg5YMi?'>|Eu,8|"9yܹb6EǠ|ȹ6iT,+Jg`lTZJs?wgP/}z}J= ֶPm+-S1˄mx;Hyi5y'ƮZy>dW.;@ Hx[Zy}^<#䒜ϴ6 0N +LtxTOOAOfP FbEVm0&5K-b(,Sio`4L+T |pV?{bJ@inÑA^{ ',yr؄1BArG8b#B uV ҉A^nR@HLڦF<:@ {;jU$}(S}Rӳ o|_U46=۰) "+$i oG]VE /8v QoXm lmw`B$;l7re[/Ë ƨ.=pL- FD+O'HgL7jZ7Syyȯh y~YSΪ~"5bliZ1%`tJPm* 폸hJj!+WY \N JB>1Jw`o(#`Vl"uRJz&x(&C: :!W4ǿGa0jtÜi"2neOg<Sx,>G|N<#䒜̒ 'Ǡgs~ oDXJ^i`|Ix[̽w"W?H̼T23=C ݢdCMԢ"tyFjum em.c,dTRp(HM.QO.Q(WHḴVHLNN-(QH,HZ裀d%2!ɆIFIi J)iV e9)% %yřI945@Z83UăX`P Qj_5gHpHkD@OcP2XԸ899urQaͺ,e a)xuWsF ĒÇ [@ 1 y:NpFHTwrM[Id>wj1>k\,<,=OF4y~*YS>K|:N_= 2H2*2縡Uō?o5ڎtx„2Ɵ ^?gܓ`i"&= xkˆ 2Aʼ>O#30_C1GXsD.)dvӄ1 !bOK.;y9G~;Sgztns9P{.29O=a*,Dz+/88J~%,BEOr⭡}Ó· ="Q _(q/\S7bN3.Dɗ( |kђyILܖ~,mQs!mOEmKvY}G,ljRHW"Gڎtɖ䑠O y`{=Zזּފ&G׾;Vs8LJvzWU!=$A}Rfaһ{hY,,fV%!er=!̗TS ?3O`2*\@ `+/%z4/D<$S15MR\ErțJW,ԮS)2Z1j>A!U3z99 P-2Xyr~w{1rj[HT@͆_Mk<VJdpu0Uq{1(FY!_s ,9Ez]4kk rJ{8; Β#gRD#LuӨCfP ƴSf1|ԑ2,=T -P0_ oCN @9jpp|F$Dep_@1hԱ qjd0@Êj6r٭v. hG<^l<5iy%j)ˉ'gcu|Y0# %qU ` {G2P3dxC3?1\xV ;\ZJRyޢZgCͽK+vF,0]IJ'xBd˕x$LEuiÍK랟atŮqO6RSH| @&膐8*- s2_s1@иsd*Iƥ 0I:Ukċ7NF\(s9,Uz~38YoCǦ;#)X?xEjVN Ѳs 6s=`$E 2RDCw ~W+4]XMdQTo25d£aR3~q&ԸM(U$8<>ku\C0 4AnVz-AG~ͦ fu7f\N{{R>lV~Fn4v{ ]_;v\I]|ePu}^(⍁@"2KG֋Z_#KF뺞uxUNaf2-ao uWwm]r4落N/#)<=bs-pcbPk?`EY!@`r|7M/g,3W hyy|]0xk8ѽ]-V*ZY y5k G1:frEWaպ#@=Kanen;ԟ3ʺI.&u?$0t&/Jdt8CQ<9.ٝ^uƌKDV~t֞JдT~F%ihx,WfC k3m`ܼO QXuh@AhZox)BlB`HjqUnbUBnnbAnM<Ԝpʑ7m4x75X6r7-W:A,JXiǠ(Da"sݶZ@8~u9GVhmQ"?PP = V J Js=TWg%s ꆑP%\iXusl>lB0X5E !Vge>)*Z'l!V[83Qkaiۘ^G-b<9x(a8]{(=-(gʀK/%: { L Bi)/ڛa>fX\׶s7y59%y_,c|y3Dx~PG3 C_#y,1g9tLn5%تsL蓵 t0/UmieZ>Kj6ͤ(vZRy"R^,1ƭT0<} ^>ol1 å¢8@x5 j ̑Xd*BcK7 BcKAB@772QTb=G[g:'˫dým-{x [void^7(ϱ/x&[2֭f>ʮO44x'void"p {}7 xi[ Z̙y% BNxi 㹊KK22J&+&N^9;ALLP/y 8RKJ 7%ևkxziZFͪkS9>llx{x:z )  xEMO@8l^5v1$6BmFhqw!QFO3yg>7]QLN `CEA:OEV~xA;E]{}na uK٠|>"T**ϽI+B-HvBVY4UPzN5*ɘ9iW?:4`HH4TpRWBVZLkg$M%@ Y71Hv GO@aTh.4On9yr?xpALinux Test Project, 2009-2025/loF- %/LDSAFE_"/* turn on the swap file */ .if (!TST_PASS) K0 }z) B0,xXmSFƝ020L'i##M,!i$nLL~,>gx| ֶf,<` N;Г78Yb!A`ogocB#qAk&<KOt|7WPvuIJ+ ! b$109Lh8/0D` ဴ%<Ve/C/j Of*! \DAt{3D,Q?ǽ!(8,B@>t}>z뙎}mG.&D=SG U-D|_kTضc"\\}VF,axk<FP3Er\|td$`4 e䔉T>2/93|B_g1`G~ks/6(9,J8e˿wx.'!-9?.g y»X⨳h6Bz=x>B46c[Ӂ޸9,DK\HP̗!L>lUor$T`zXbL%l!^Wq0ˈtS1 Mu77Hl^(&i>#3P撢kC}L,0B{67bz5c{LgSʇ鳆2qbMҽ\vrST w0LS7Oމt׫D ްh.{X+Ӗ}<@A(&&y Q+]| /A3gj"Z y4?S>>NqWZovCHTiEނ&+4JVpirEs=0IՂ6sSiKKQ`l]<]527 .H4}(B e&/I•[Bo\굔0ed<5[8i=ϰLR/ 9ڝsC1Qޤ*JxLZA`nZOf鱧׆ʚ3+(UˤR1f+ ˔(w_~+s_iKD{42ػ@xO=q#ZQjL yggP1rbj0 .ۑ56m(:oI[b`ػRG"ݦ64 UͱwW"|ôbRKw/-dp){ňpyrE$>+ |IY;/.u?L-_Lsڮ./|٬!t B\ѕz6ޣjv(μ6p\J#a1w\̲U}X stnVj=3z3|\(/ϻ-قɑSH&ueMAOхWdpSl l [V,PZ~Hp.:Ð쇒N Qc@||gܕd@1ɒ&SmI_g(֦ڦ&ȮM?"0 ^iG|0wje=kd;n;_2?xX[sF~6ℌ8m$SCC rLQ5Bb+q{ٕd\]V|~LOB %9_lDAHZOjzzB6apК^hnhO P4b&X|ż.5XLH8KJSCD."}/ >vڇ4/7a2R$M7ZFV X U9{7\DcWh3|r=uOvF#ywbM{3g.<*f1QPwܥ'0'm$ xb#|AP(@D0gxJ6soSk]L+5()i8>]Ul$R+y5&AEvb%GJg0p8ưɚ)'e-ts-45 KuWʮ:OTj@Nm~ HXTޥW1yC7H</x\.%!τ1>zହ2DtZґE 0)KڑO&wSTwJ&+)wakѩ*̳E>5= ulth(, I D1>T*~>(Q.0 xaQ]1s<]0+Ip2R7/J iJ|\x?K 'e:=JQq_*K/(Ej'y[7S7#xlXvŇ\U=]N+RKM Ko[mTknj{X+<#^MJ,f>74x뀔nY##Ko(y4Q i %Fl#7sAGΰȄ:^cw}f\=͂ת@IKV;NQ:Hc2/ yPmϚZ62'gQ"IrN;Q`GpSԶ7>FW<=oKx\,1'|['0I- Uf5`sMv<2!R>0ofGwdoSI} ڍ ?kH |dH] R-{M)ì!?dZmTV 5X5(TӘf[l ?QcY? 2pf,O+EB=,nW_|ě*JԵMC `5jXI^qЍ^QDYPrB̉M3iٕ"{wbSg}m!a-(stԨǴfGQ%4N&WkthJ]"Sݕ+a1K8cͼaV}#O>EVȿ,JkTM77+X!6_%k:Hţ;#48r\}Ccw|w:Am%Q)[g1W5^ܟ#wr>#6&D;O]xTOA?MgP ~FEVl?JiPJm Q,Sa?)!5sD<Ճhi5:PSe4H(=B&{n Q#c [‘?{'FǺބcl]j!ފ*D lNaEbMǽLA -G +3-:اp]8G҆k<{W]xNT$DG}v3fq|#ԙ}T j`qQ[y3L;f^¿晶m lhA4dsk2QV0FT6%6Ԁ; V69A^U+'ny-\AIUJ tUǭz3N2T4R\V̺H`S^8xL>1jQ;;bϺk0ދ#S jŴ'C"6B%=ٗrD[<<3#G= &bèű5DeP/Bwjx[$T|C gqIQirBIqI|rnJtB5'g`TXTT1RSSKr R2 uj7xۨ-'1h5gf\nξ.`R: ~>>rs*--PhFqIQir ̱ѱ @#4: z%y9 {' *|FK-nx[>wr5x;}{TT #͍s Y 7Ix{TTc #͍s E9¥ӶU1?VRxȳ 1=*!-9#7?EHs3/?>x{T #͍3|X qxʽ{B?_AbzUBf~rIr|)Nx;wB?_AbzUBf~rIXw} PxŽ{B?_AbzUBf~rI̬v#x[!NlB oAbzUBnnb\p_XwM !|[A`r#z x-PlGTԜ #͍ TggOPA^6Nx[±cB+AbzUBqjNjrƾi jQ9Ph#Bux;+}YzBAbzUBqjNjr$^t yRA:(Aܨx[ȿMTԜ #͍w qlx{"JlTĂ< #͍_ >x#HpNTԢҜ #͍E9= 2[o!l5_&caxtso_s{OAVxTao0L~ʼniB~B"h(TiB&qUǎl'MKJ˪m_{Uσuq29茻p=M~~;PUQa55թ;2Gp%LተΈ}8L%W@0@PJqpt 7VhA'w q *R01WRPf< jda1iUgB.PS)?R"8!-J8~ Xl1`mGp.ӥ^Kj SQ$cIp;Ϣ-7Y0]*x3BXmr=970- Q0uz>$j=\/d"("Ih遙Dڔ| LQ'P>}DrP0ʇcI-; }`2(MDb,QhPո5`PJئ} ^!ф19)c tj9foza2VEc1 ;wTl$Pʥ +|]?~SqdTo%?O&)>*&)_ec.u^v^lҵB(u .'v$s4H+k=<*N^ꀍ|iRK;_fZ4]ۛͦ%~ N ,)9E6I 2ҢlC7mad:CiW*I_F P/(ڂ^Ά`4a_!:T4\{>'NBW?^+v" k©T:9n& kRy}D8^VD:ݝ!W+LRD~;W_9pЃiu,EnyELS[A5' q$V4uq|B^RSn$\6qrϚA[9a#^Q #ff9?CjWPC+/ߒ0NzEr1iD0>q͑lW#7qQ5ߣ˷@ݵ@1}7 t,H')!N;^~m ;\wN;w0("rWNB'RiO}'ӵYޏs^5͹d \>–c!IsɊ9s͆sW½_>-q 4Oaԃ9@Swԑejs?`c@`Z3gcUD7[*:mx|X(gͦ!m̺!HoOʹ] FlXN =>^<8L`dJON c5.<uEy4GB-}pt9cXpWD5s+ TA/?>CYxi(ʳvͅJ, ˙aXS|Dr;DǼc!u"J 0 y ʵ_;4["J[9RI{&bRIxv6Qd+TtkljxmjHq.a#SШeԵgF هxe=# :4=V-j5nQN_V'ڛl*1_*r:Xhe=uTNm7t2[rܖ{]T+Q\I 7Lw#bsՍ\!2Ix1`+/BH?Gqag`v,ޒ9ȝϛJ}a4I?ugf8kٛ\H/}P7ף]P;j;GsO蟚$D8wHDH>^BڥL8TVN~D])u9QVXELLnYVTPJ(bJ:\n]ƑvTYO 6y6N cϚ)xhYqʆB!vmL?U,CS}ЊL|e2+%^XÊ>XRy*aIxeϻf*_ź}$lg.8JY҈Rռ?~53H#Ѓq=*P! a cnyuƘjXיfu zBxjLg%5{& G03@(aoϤK>:ڽRH:]lhܬr%$wo+"YJ2RmhÌoD{T<:DȲ \.$qB|Ai^x0t(!ȳ'9Bu\ u|^/-y{q~u񼗒Nk Ji5-^x"7V}`;ZcW`ue]V&n4ߛ;t9|JqԮq_=-D;1r]HO0ؘnu#uba?o@1f xtso_DN-xtse_et/ #x;kC䩌6`8YJ &x;cYfEΒ"[ĜĒxPbQj5WdG&,?Mgi9غxU{O07#P&MuPXEilhEYi~GSIPl5><7K#N;G#Mvx<0ۍ3tMp$V=|; >Щ>ӆԴ rԣ@\4f\x2mͣ~QG=VC Nr)ӓ#K@ZK_ 9K,B︠spDB pgԽyZiăiD=%k5w$;bv1Nا˽ 1 z`Sm"Q/^x' q]dKYOI{M.R5 f*5vK{Cƽa$Đ̐3)\E֡]fl00I>/7 }IJr+Hk iA [` z \O4qM պ~\<)H3NT+x؆GtȌ3Q2;Q^Aĕ6zg?LtGT|L^!s֩.c=kx1tyP] Y4lK'UղRkb'c{ܵ,]K0dOʢάOgsY*9.6Iy+e!/$=u' ZG4v˜Tے$3$!ݹ'NG2k,Uƫ.?kҵF|Bo6+HW. rfhO>^!dd[x?Wˇ^,*nCjz-V{+ѲKm$ղXxTmo0L~):@(kmӲ4lDMu8 kgJӤ}qw瞻s{|vHSp:mSNijf+F3unsDZL#0[` 1s?XM^`FY 6& F@v CHáHVI:{ƾwp?)(Ub,LaBSnC0#  ̅1ӷ$H' v"÷#y*2JRWwc gN"23z{[AhY`y(jU+%[ǭfKjP] ϐ7n#moAڒמd }Æ(IK5[t[0:wFe_)؂M h',/8WƗ1K/ GeelIrn_:2FJ 6FDz7X@*l- Dee!X|P*-%bq(U{!S"@yx ;로',_4ɚL-4.LGMcǔi)]q .jRI̳%_eS,n3|U7>)R喖1͇06T_`CŬ=}vlVp`Eg<3$㘎$'h>=5P!ä Iī7k-}Y@о$4@Ɂ>+ #>G!YMEL"Z&>(!kH _‰OW9Gж7>3ĭ]F݌Z01 {Aa (fHqj ˮ?x_*;N0 骵D+̝VmZ+^]:R72HƔrC$3oe+P (Pܕ䏳sمJ*nm|;j{3i=usN_ɝ#5S_VU'nn՛qõTFD}ps\R\Y|\l-xfXR ^%v緮@!_Ɂ E2Y:$:ι,]GGx=gv.NԔb[ D!9#HA+:VSS=>45(/XII,&YUkJ[x[{.NԔb[ D!9#HA+:VSS=>45(/XII,&YUkHx,IngX.-TK˴T#SC #Cc$CS$s4#44sdҒ"+bRi9d$Lg O.Q06T002626S0202U506068J$(1=J-B!757R!'51[!3O!4I!4'[(1 dFYFԼԢͼ̚]XJ]x$V)ԲY'Ocmcٴ9tAbI췙6"WZYWk3a5&x$wLfg y& +: J`%) y% )(d(@kZ4Y;ٵ\@ą0*18hTPyZbiNBFb^JNjByfIz+iNm49ǔ֚ ߺ"xt if (ioctl  < 0) { ' = g 4@ tst_brk(TBROK | TERRNO, "ioctl() on userfaultfd failed"); }  #:3VxmRn@Cj J\8e T("<Yر#8@Տ/`Y)[~+>!Dm{=me^HI=8]<`̱i þ3lcAxNLlNO$Pځi6[nXqBqo.:k Bgef/oi=~45:zE5GrGںTZNMѶgHLx|T)|Ts _asW/, ²^ )2s q ,1 >lZWŎp'>%.˰Nw>e~Ŏ,(]!][Zϓhv&WdnƱр/ m5/6OĎYw*<x(s(kjd<]E2* T3cYoB08Llm*iwk2G4‰P?x 4lNb_W".j_vv,xeRn@i[:MRd#׍SqH)H$B^jw!C|sԷ̓Gg{}/F13iWLLZNvfnթF8j0`e>0P>%p(f UqLk@Y@$U4A'r䭤̞v`oԯ>7:N붹Ώ=M0,_[xV^ouKkΕq%,UCBy*_/viHQ~ȈFx>}4$2~۟+Vf"2eb|&'Jn }Bdvꭦ[ F 0$ILFJ87}xM,? TeԶ[X݋Ӑvu}|qXQ(~+&?j2TOE IcYXTZ=}~imM ӘϢ}x,Ep #wFɻ日NfRlμ¹ͼ ˜Ȓ* b(dǃٶ յ(`S0ze@Tk..N$=z)%' Of Q--rɾ\C]C}B\4}]#\usS7p,C-N3Wn.9N3= %Zk.`SIx~C API, &uffdio_api); Z .needs_kconfigs = (const char *[]) { "CONFIG_HAVE_ARCH_USERFAULTFD_WP=y", NULL } }; j%ZxD85tso_resource.h" #include "tso_device.h" #include "tsom@%"bxT[F ~WiW9.Q[r!HBB:f \pI~r{ZZꗱ>۟lR!Xge^PPф3Dp">Uz*!AcZC A%_DplD*peQ75z FiN$I#i*yO,8/.4} l]*qz*:S ]G4FL,̧IK%ϗu۫:|+( ^/6s5,:fO< RJj V 㺽ǧMj=NȞ-D/͋6/.{2ñu)P7hs^޲c,zqN8m'Jjy2pdJCʜۍǾM],C;홛72ZT/$qiU}K&nLeoI'+6ni4{8XĜ'},Wzhv2yv>؞]sl)yoheɾ_Ճ5s1S-@~+.2Du+[2O@~' E&!rK 9=cL튆5`Ӕ1Ql߾مZ]e"QP[uqv7τ UJ?0M=.`Jwy ]$B>1ǞUNK#evg2tXyoGTF7/()8q pLwB@ŘP!̫ `r:EU1ltaT|! 5(C}sdq} W@ e5 NW {🜰A?[\+lL Bۥ|')<΂Wʇ+98 )X~ d4PE>>29_S<zΫACD8pҔ'  Oaϧ0@e(Lvh}c#x:tree 902ea8ab6c900e7b1a2ac14054197d49e8015421 parent d627c689ee1c57db3e7df9d9e62f56c7dcb1ed7b author Jinseok Kim 1770294471 +0900 committer Li Wang 1770296027 +0800 inotify: fix typo in write() error message (1 -> BUF_SIZE) The error message in the write() failure check uses a hardcoded '1' instead of BUF_SIZE, leading to misleading logs when write() fails. This patch fixes the format string to show the actual size. Signed-off-by: Jinseok Kim Reviewed-by: Li Wang ϺEx Ԁml`WxauQ0x MOo_x340031QMNMIe*w&ۣrssRnlK6Uy(gQ RTuIN<鱛NM ٩Ey9 |{.=%[{^qj|9I n27oxn5,NfHأaWYK-)/f0*5Wͣ ?\|" 5/ 8"$4$in Oˊ2Jw8ssc&DyQjbNIfn*CQcN)߷n=u,xδiBvF$ewĶ¡ Ƣ=x340031QMNMIeuv&˻Br~^^jrI~Q1,KYTКcLpE%y@E7 ^eڼ뮳C^Mߔk>sjmNʂ|޷-879œ@e&eLZs˾l-M! 2rR6 {yq)# "P% =-Jº|/^'ϗ'p1dF~IANi:_Χ,+8%|IӞpe̼ҔT3YҬ+}wSiL0% rxv;ȶiNHfP|o&HG n^sFdA23A{Wg?6t;]'*[TȐ{jZ㜨<2b^ .e7ޚ>.]vD6'36lE[Jp*{aFeԺ}ݬehV o8B¥7WBLMe8ov#*T֕.5(hD_-n)%-*KRK6Y {2 ɉ99 q! ٍ+'ӱW!JJA!o#]ysl̺Z54 b"DwY4DEybIrFaiji*C_GߞKk=8al7-rx#2-9oǸ(x3*x340031QMNMIePa42?B:2\z{.Uiu/51LՋŎLNs9L?J0,r26~㕶oRq""X#xhvw0D;XOfȕLu28|g}fVKLҴB_3ܜ/Tq\C!*RR3sӊsS0JxX |Ь|F#ڢ\ꏗ^ WMf y9) mۧm6Ŝ{%!*@Kg`qoN՗s+3Y@Tf'槔3,}7Q3W@3%UnS1;Ad 34/=\':(a٬g,gOU}ShR"ĢdW>SYYEpon}qBdK217>H>D-fR9D4199!MRΝuu<8W:e#IR7KCdLr _J.tΫ2ȜًCd1`7LòGLy6x340031QK,L/Je`:lwCkIyFKgN !|S2sR m J[㇡"=A WG_WW_m*9!8ׂg֌ÅP9%z AR[9s,qpUe0x-읁y-kyOM)ػ'] SdzxWm6 bNz‘̴uL܀L&|g,*\isͽi->z]rWjml53,OR0XL0u,)hXpՎ'="p-4lRl*A0a/ Y'B%V_DtOkEpfp S~9W,b"F3\ܒ^!C_T32[ܢEkDod!Oi$e~B0{E0 ߝ ҕwa6)}h1UW$|G&'l\x.E8^N\\..Q`ɉ'O8ED?&0wYَcc.01A#ʚµ'AKÍ2օ<P~c"8RJj68{6}5lp Jݭ~t= 3޻v?I[+Xn^VBqV$k[<^ĊV;-#,khb%Mi=42Xv9^3p^[ 0 a0Ž`x1a4|{nk16`1Efh!T_u1)G8 ގpACmYI> %y(((cE"F*G*Ԉr)9VAM15k-i)IN0wY^l=znּ#nբ*t7t۷橊$BSS^))H}_RO#8MW`<+t;'& Wh)I8\aw7C.g abW̕uU<c6 uFG7VRCcdk~DC$LEhrJ$ IbKXYɔme\nb#-<˫v v,49;Ur'rJLx'%d) failed", fd, fname*L: *x340031QMNMIeh,}M׆)^z(O8KfYu M&.INXUʰq߶w S[VaC($0|󉗘©jԫt#+Ob.YW+MvXFOs{5Ss23.5aaιNJA(U$1MԿc d}kDl}419A,;bMK39r/W\|lXGꩽ͚niGVr܏?N{٫W+8N?p5ũ% 9zo+20.VO_CV1,1.}$˗H}' *2܎TW[<ӹݗC$WRZTE'>Dkމ=O sSsfTʱ;wn dT#䁾c)*0RռFNǥ((L)f8[Fqv|YyV>ƏBIjqI<[@TcvnܽAJ 9yz%% {-81[NdKx340031QK2MKLg0[%z_oNS5JON-L/Je}C~Oj gIkb z%I "yKOOHdtLS(9*_j8/}ӧ[;*7?4'wڼk ><+D,713'7AINij?Szϼ;wҴ05E)%@/U06.qhT_S9{C:Dz3\+kxg̴0%y%yEi9 J5 6ͪ &!- Thnj钜Wp09.MQ;Ny 5/8LJg agc[V71;lٕjU%V'?jFN_ UWT\`'}a Bmy=~STU??.zbQC.C\=RSrnǷ om|䫤̜ܗ.P=QiQ!G%WNX(M|YtS ۜfcnVq`DȪb`N[d򲨹Dbwأ'76!'CLXnG'  *??7ݓ9l'=3-Ḅq|iI&P@Y z=8(RWYjQ|Nf^i-z_jDlhen41TMdF~IANi:_Χ,+8%|IӞpe̼ҔT3YҬ+}wSiL0% 9y;zT$~=ߒ籜P|7Ը,]{)sӡ n0P %S_ހ2䞵8'g"ρLع׿B]D}Rai'DoNfêtglͥhgZkP̼t+$ [6J~.S_f-C3p@Ijq ԇf7}!ҫm wx!2LqBW;^٠MKCdJso{|h;W%gJH䗧&%0U;)]9ctJ3pCڼKJK*2Fm>sB/ԅ'g0pYn~Z$QyWCSK2FLҍʖUoyP%y) ͥ_{,EmSbLBPĜbJ9"ey@4Z%%Eɠ]{ܑ96Zqf]QQZf1hݙh>muӋ *K3 KSKS.fg&ݧ3SwVۖ'x340031QK,L/JeT67k[~5oj'!DobvjZfN*C,w#S}Mo9L JSK69Խ=P\# 3 4=$'oCG]d:lџYŹ 0N[[?Ww\I;+?&*|9n_kPĂ⒢bgF!gKy\$.6%%  zK%9sY3ĠƀU24Wfffms[v߼ŒbRzrfز*2By8VV]ke *snS,)K2^yv/D 1=L׫λ—m>[AZtqFn Ǟ_v-sc@ 2 %^nbynާe?6,R()(``-Bڜ#Ӧ$-K9TXȒҼ$`TfTϥ8ߤr,7hV?{1#F]c'L {}2+gm^/,Ҳ$'x340031QK,L/Je8)yBN$ƻħ+ƽYkQp79M:!..t ;sg.TS e*S߲<(;>gHO?wo,S"~_gt|)HKOOgx(|xie⻂n?fb .ɥy%%y RN&zt^ 571;5-3'+3wkx}w oQFFVJHgedq97ݝqJv*!(+AF"ɌRyyg}č!(3 TXމ//L~>E'BD"0<"mtHn0M8( e VyJGآ~z2 8#x:/żV,IN ƙHB<"k}|ѣ/ ҷ90̛Opp'/EH,p5ƲWʸpTM:Dt'XP|TB|C 3 ʓ$=tfZ|ڮm.왣3D( Nӗj[z['~~BfcqP,7U: [7{ڱש|w@IP;EL. CvmIs1&UWpӋʺ|V`TfRK|߸|s*kARR h8\1*UFawد,%pU㩾'XVr$iEoL褞Pm+pN;$; LE|;_>w k^b8(0yh+.&X韩AB e!oݚZn8~Q3x֒La.zY~pShk7MC5""9w@JR1 @!h MMB j1$[\*KPOy˞)'h 4HB3*7J躣tH_4+gvXp~%AQ.)Q_e;jpOO7i=~uf/_K-jyKCݴnؙI}Ԡzx@@$8^H< D8qN/tͯg\-ڕ!$(׸Q蕣s,j{!g"ődusKhSb?n.280'w4 zKk%Ȳ-8eg3,d^9+Üvخh3 %'Xa55;>la~O 0:tQZ=OozMC.'__"E#(VJuO٭K4:Ѝ΀^)?о}mSS% pb9k{HEV7~e߈ߣSK)u.k;Es&h B)5#@eƺ]RqgP-+A'82*ɕ^3T3,.D/ F  БbgW)ڈI{mE@)$g"ps<.tF&ַVxRex =5*/OFB@i\qu?ZR֒xW5Ia_Ç9l*lc@9r|TFl댧 2'"+%x 6>w-K/E៍Iߪ x]e,X%GBل Kc}0URj_R * pF]{!t~*[h"%h~79,n7{udZRn:@Xm=u:o=Ө~]2_r{cՍylyjkT$մdݒi3k2" ]LL4l?*՟YʂՙLpi̲vqOf_jF?SF/ ^kLN^_J͋'r^.B\DJ˳i$jI &ck R7!t[9rp[Bv@kYX ʤ)iyHhҶ\ޥ- rPf7m  `x0weq*R"qT;xEnQ3EW_0'B$@ΣApQJ0kܛ,U,s&ua59x<܀ymO{g4wD5i~ΦXe&"X`ia{vӊb sX%{%@OSx4Qz*v3O6h[ajW, G6'`U *vq&Xaf142BF},5ie~̘k9!YKV5VkR0e#~ eGTY&pgfOזYSCş&}SI@UaɂF/h|h) Zip"rVˁ?͖;t4ܠА}|9wsaݑ-{\\7bīfe+8/0ɗJrpw=δi* gvCJdI_r\%-=V<풒0"ӛC'k<~99G7-8euHQW-"{}WYb,?GēV>O~+#84p9f>Pww{lN߾6 `9Mo3k\݁C"MQA%A%nE.8}}k-EcG_ %";Z0$zKd ֎_Qq`7V s4Jg>h4Z(0Au K)Oȇ3XЇb8Pzb& B8D8%gOcFwWyxH<)тQ٩9*Mo2/ϓ.@= L/q3(s[A 0j@>lf5Wl'lU -ݦ XǫWDԕ$x:rdӷ "EW_@M%c&PlD8Fq> ,\=;ӞQ߸1P9t-ېTb jy/ mvԕ{_rgHbze6ymiΏk`q+602ݴ-N,.h?83]P3}Qs[,GY/ً4Qg ~yl;߰/907mx$v1N ;eڮi*8գ^:ؚe'ww5WYl꿆)U*]ZMYWb~WǑYQJ'VQMϔg FC؇K,4~bx"iT8#|ˏXmS@SM  ;V23ODNu.e@i k-BRwo'O?-suʃG bdMQو ӌjW%p"g[9t2\0:T$8q}1g6N, M,))H/m;l˘It~r aE).[/t;sP/q #h@^`3 [6_jcZ4Y W uqO,$;~G~notOAv+ i`~QS[ì,?V}hЏq&OHtP~U Z;@8!,m=\_'\Nvd g'MlA52̟Pl5ezµED@WIc@nV>I\itSKj4CI]0TΥץEr6'v KkRI#7K +!$93G}^} ,|uZp@#>d|膖&C 4}%[s([l᧻A^/D B(_Tx5Tē@RYC$۞産ll#5= ?l4{=;]x1Fvx4~P0oѮ3R4":anX6P퓊^-ij;0R>l}VN 095mlR%x=$mlR背vS$ԅ:[Y+ڲR(ዺ)22ӊB,r@Oe^ZW~_? nNPFɇy.K8ϭD'PpCLLIlylG(3 jyU(jCrl@vY(;wb0>~[Uܯ )u]џ?:uTp[$Mֳ * $^x_ͯ$QJ^i>'EpF8^g{]^i9&``Q9zn'cJx[b9Kx340031QK2MKLg0[%z_oNS5JON-L/Je}C~Oj gIkb z%I "yKOOHdtLS(9*_j8/}ӧ[;*7?4'wڼk ><+D,713'7AINij?Szϼ;wҴ05E)%@/U06.qhT_S9{C:Dz3\+kxg̴0%y%yEi9 J5 6ͪ &!- Thnj钜Wp09.MQ;Ny 5/8LJg agc[V71;lٕjU%V'?jFN_ UWT\`'}a Bmy=~STU??.zbQC.C\=RSrnǷ om|䫤̜ܗ.P=QiQ!GK(NNK,̏O//-(fXͿF&\};bcʢ̂b7Ue=uO%ls뎹YEā  9-ʮ?O߈ЭZ{g?7 dI?(QvעAU3{2w69/-( 7AYñ'%cP*K-+``AK퐈 >N3q >'x340031QMNMIe*w&ۣrssRU֮0f]k^z_ǎ@2H˨/J086w;}f0,qlІsz2h'Bd&1x*<ĵ O~O~ϖ="D678J Bpm׽oK-)/fh(To,Mnˀ%DE~Aj^|A~qfE|IjqIqifI*ì(e`FQT3ƆenB&d2$#rH'${ kx340031QK,L/Jeu$~(O!DobvjZfN*͏VX+eS/TMf~rI^2N<ܾ ㍋ӶJ(2*q,Ϻ{6ͶA>s?"cX'7qMC(L8MUN:GBQd T@O)Q_dx-~YO -P9r0E/1ވ(}obow? kC0ډF@!ꚺoL"{:ނ.^x}S=/fϸ( 2SR24 q+)˶LEL0\޶)3-Ǣ#r<OƢ}Gכpa~'_ŶG`Q 7Kv{y=hubQ=X&G3/D{Zl7x]ۖP ٟא-J9Qr%5`^ܘcr9S6#Fnՙ*ăVϧ k:?'U3x340031QK,L/Je`~i|_ַ՗G~`ϓ+U٩i9 %6y9]t0,fJCdYyZ #hpG{lk96tt[{FDOwݹb㘄eSgms1z3JFe˛+,h\H%iiFOOh$)nji!I܋K<՞fR}bb%P =Pwx&c'Gr|)g+]zաh9C@IQP)-3)}x7'o q@Awl^oR)+Ռ'Dit_]Ԍ9bH_ #AZjnvny]6ߑ 6Gd'~1?4:|^G_ @勶?f\:z{W0%( 0 z.K?Z{5庱)K޼æ+@1 RM=|_:5+Ubh"PN|nUF8U墱n;G8p-e:! }9 pwjFqwϤ|(nהCPZ(oC݊Q2(#(+bMߠiNv$}^̏A/_"S3l:IӔh8r1eScI/LSG!0S`U>+J֋ :cRk^CmUn:=ɥUtфE"U2S!3 V "ad&9[~$fTa=h7c]m'O+fj-"^,R/.~D!/;7x340031QK,L/JeoÊ.l6< !|S2sR 7͸tFcªv6&@_\XpU+~gyjnSԔ4Jf5~Yva  iCRRRs RTlm4sQ3dx?Zd楤V0sB+0W i\nPj7 3TIay()HYZfT0HϚ~ز7. Un0: U[\__ t\@^1ZYzv!֖z~+Z3ʥ~ +Pyxey 'GE%E)d"$ʑP:3133<ϐN!b"WV"Ԯ]]E2l\ʕutLo^܏ss=!. m%YͫQ c=*I4H1y 4TϘ\nme ͉!`";4i;V9ʷ^q!sDŽ(> Qɦed'tM)?is$NS0* 3υ-<137 &.K =E9-N7Lp7Jt36a3j\L<3_RY˱=w%PNki Dž !ʼnErdש6H ! c4s%-΍;Bfo;nbvvΧIME&"b&4Z!q*bW)qON;<2 ɋ[l*$bO5Б"5!R;Rdp7x) )d@|%XLϰ$YxS*EryH2 O~;1\,`M?~:9\a:tYL$ MNrf&^D%GH:|,[|<\LHFy`,eXTG#*&`Px\墋>R@"Vam^}\~{eQI߫VGv} #|* q2]y~ַwҠcxR !.uKf{en5]G 0sxYm^(4(D|BԋZ(fB}1Tʡ`/{Z*Z,S3 /|i!PH'hVvEѳ{hIQ2n{bRQ돃L pCAۘ3*#iǀTU60C4˂x7 b:Φ-=%4wPۙ˦KCP(n$*$--˪K0l03H"l6Y qh{v(RY_ME\PȔ~+yd\/^DPHad|ן}jxC 7(lWިrwѩ ;#Z*0H 3 C:nK+!*GH4iyh}0z""۴ @dD{S"_*a[J>gE}YqHJ-kvx½/R['b }BwΪlq\9Dk·V)5 &5|xyS-*/S )D\ܢSS5nt[}Tю-IXEŌNJUҊ; rVO;jy_x Ѣ!bf]Wqo:?nS1kyL%ϨL.]3.ܢK=3zbqܸ  0Ù8YYq; ^ccdO`3q&3W5~7rsFWI_͟Z4׋Ҫ഍_B6;~9>5Uu%'zG%qhLyX9'3|8ڈ0ɡ` fxbwHEVJC B!,@,/ #i۶e){b&^g P,%Rf>{ɖYYsj'߈Jj.lȾ?O 4j` Y̫VxY }?xUWZǫ_ `㷊?d . $r0sWFI9O7mS홤""C'kNkp]^Λr"Aq l .Q~0G5EX&,7( UFKWRaWqSt.|09(uJIX0<ֺXfsU `od<(;WĚ#P*+!r %>>Fc/|}a}N$9& ޝ7W IɅzf|A(&O|crwϯ2j;Y\}.j;qxUyX6na$L*>%2*W~0;G{A@$bl#6EUF\*#(Q0riUqռTI#xO+~wׄHg°CY(A@6L*wUu{γ\%r`a"sT5JPyjcDdt|ӧQ8S}o8xV.P] ! 9_]V^ u>  B&}eo5,sZlNk˼Zt NxB //{`{1a O(a1¶jA˯"fIiIՃ @hjI5b˙fW dQm3c=c&ǪQuK!? mǟծ[Fj3`%5YRsٲ-T]3{ň g3rcmeWVjOQfBqP0 IMMW}Ci+,"T2304|Hç5" %ʧB\H?K|u?NŌ=90g +,(SsDi|sch#t%$G$|[4N@0}J&t^]1)>ӛ`L%1` LA )YTWш/{G@V rA&oS%^iJ5n9>;{r_F7xU}CIL1/')?ؗuu%$&>ܖic)Sm#,m6+1snYA"ֺ5[ה.`$!+..nE#7h! >fΩ5:1v""%V8\V=v}2qaⰔ9ވ//\Ӏ{EZ"0fUv>ZՙFB=m!]OȖ`t]XlUa|cYUpcRK#ZM[a뵴cBQBxZl`@Q-jzN0>`$*~#_} #66{ʤΌ\&Dn3@?͆I9̷ֈEfpBh(YѡygWyXNT+2 w%Hc>g;i7ad&&k轢.0wɤƎ9I/wm|X z0!DB^0JOspQh~MٕAvt\,2υDe ٣!oKClG-EAdHBa ?,$l'Lk_?w$8BL%A#kX_8 u7H Z.`.[3-^[wyS(`“qɑe|7ڱ9DfL2oى?X~/rg5 Oa&YtU{XbSi>/^DeAq5{qeґ8H!bm2^=uˑCAeD$(Fv]Ax96ƅR !KL/DCYºOmu>qē&aDDHz8*v(1gE2#dV bX>>tI+$SO<%/]1B`{?xGҳﲎ %!㾵RT\7Q!(o +=_,CLexc^kK,o/ ] }C3I;+̦D]}-h^n( 4cCw+2N%"vmU"jP_Re~\Ŗ6D`a/3 gzkcy{EjAHxoh:KXqzO,(ш4؁X# {*Ҫ@/gb7Rt5xJ;CRxSd [FZgRLZLY= JY/IOzߙw񃢱m џ>#C*-y9L "M4N~uMn6+N{Y" f=8lN՛nƂΊ`.Wg+)\iS#'Ja!a&-mn85#FՖz]AEX@NM[ܷP*~\La-xF4;-_en`m)5B Nm~~?Wjrl @' '{V0F5U0*|`xXp?_fo۳/&x|^]c* 6!JKosyEM}y "j[vՋQo_io_?&rP7xjE❖cc+n* CTJk5]uv9bp(x=AnNCE _@LolTQۜ~#xcEy*w2[ M<"{A2 |Qoh7TpWƺPʖ|k %ɑ'7|rdw FhF6K& /) pޮeV^d% _v% lY1SQb̤ǣJ:`\Bkqgpu^m{OCk 1㓎q@>DUV=;gmʊ(\HDmJ[ 3Oxuy TWJH G(Om;K3L**g.LI)O(h({%!d޽*o|̹{_s33k++=4ʥL6=i_MEŠ94mބs'&iEhFep2i.35\XT)yP/OTYQU80A̷B>*/>/TkTъ'4p} u :x!  {F|?ϷcaAMNuuEFcSz #;~0\._Br< M# Dm(II?|Jrj*2ӱf,o=aS}3 E&N8.*ί4˧ Uc R)~>:¥?q^U=-I-B3@0w}l!ÿ2}7cfni(onKÀ<} yI di}XLn߯+ 60ZFʴ- OV⑷@~xS]+M9M|lxȕ]ZR0BC dD^ ÏcGwyQh6JCV_ǭ!\~eY}+BrCɂv;fJ+*F [\|Yi ?|]\x9`424<8tI2 TN=A}z(mds|Z[v݌=c x340031QK,L/JeD kAϾGp2L:A!DobvjZfN*C{Z Z~"$mګn US\XRa`p'9u^o<ےTj["#;ۗ3m j5=uK"c"Oo 3MYo9gE&@E 1ԺsTw_ E)PR7Bf-8{>"3"WԼtZ6|WҾ})h6׉; ^?4S{zW(*:ub^Y#U'_:=g='Vg]fz.!Rwkggcii_SEjGk$zw6ӱx340031QK,L/Je0\sқM$H>-cQ囘&]eڭU`g@Y C͙y}%OQ%3<=IQ/8eyUHUoom-Qu&*c*n+|=&x&2WTU&@UAeL.'M̽ĘN|*S*1r/5s/.g~%*3*&E/]v ~ ' x340031QMNMIe(8wᔉJ9l}++jQ\PZZb``ɇbM}UPՙwX%3oiU>+x340031QK,L/Je0{:d=o+.-6MNMIeН蒠]&gOWg;OIOΎOO-)M50Kf|vc;/D ªx6t^+f4; )TY`Ul T`pηxym4Law P%fxt΅.9ũ`~׸ߜAyy ?p5p;x340031QK,L/Jemn/%O,63MNMIe蚘˿?i3&喙*U_Xzٲ{7פb:¼(j h=ͼmmulWAUeTkwd5}:Y8,my*>9#3'7OdStVT@U?^nUXE/|>j2፷I;gg&>*ņuXx340031QK,L/Je[6??D՟g52nԼ1MNMIe`qݮ~\QL )L/J)N50KfP>Vڔ;>fVAFÞ4.^*x340031Q05Kf8zr% W)t{C9b6+9VԿm| N6!X/6SN{#*G:wL6ⰰT1؄_3spיӟ:\f=U`V>1Fhߤ+Y%Csr L |}.p'Ò*0+8boN9 R7rx340031QMNMIePRST.?nf2;XtדB8~KtsFFUa"#~eIyKؠ\"L+6y!i&6Aͧ??}"72*s҈滝NOĤ 0y&~TR44[F V[Atkr v/ċa%e"l'fM"V>;e'^ 0q&ٚ؛ y llHTC^4uY8* 麎a\pN)*ɵ k+`-3y03:p~hAi(rp4aa[tRpER8@c{C@Fy+B9WgQbY1Ѩ&8e"oQX ZlFH*̐UҬp+j03YYE^w'8љ`~ Y<{4~@=B_5GKȻ΁:8pVQR _u>k5ɉ@p4eEK;u.K˝Qkg6vRl~3Xؠ(rx7P x,_ ckedKO; 1M2O04"&h |0hO4+:7I#{, E*sCF$a}d7,V5؀߸Io WI/@ 3 { m,٨_<}FbpHt-vxjb>1% +2xFŕpNpGU {gh<*BXKs'+2=8c"N1 =Ϋޫ? _Iƹ,hZ\ݪl^Af"3VWNy.rx":ZK?㇍ WpT丹iWƬu,k΍UdiJӦظ0D! O* c9"#T'PXs~-\olK,9esmm|qGk) 4XWZX&2WJP?v-lOwϪ޺ez:zDK)jx{"H39ۼW خHS6O(8CS]ʹ{g1n0q3To#GYb`h -ݡKAUQȽN;S2ѓ6 ܳީCIt^>;=yYoF:\M$/["΁qLVOt13=x~=^d*wĜiF>6;ɵq47̚7M_DWDan`ÔwPSD®LjM50"YO; ZfqEqyT;bN]q³u0 ZrJcnAG4W `qAGSO9PW hnU`\߈#e.Bf[AK)"̂\3Gr+B'2zXQlcKU:v`l-^ +. ]>H>{>7V+TԄ!Pu|QoZ4W.;0:iZ>jsZ}I B%>跶۝V[RW77At:j$3姑P4"Kz7xe2#ہJ2TS~l7%Y'S7v{֑;agm8*)ku_i |mvؠc`nNӄ"ڣNDž~t: }J/17_".ݫ^kfTG"RhۓO {~zqyG1x0uS;w=A_&o1uN=*f hc1( _0쩟 p%)iL=|BԛYZ&zR kcR>&jT_ilT+Պ6 u^T:0 co Rkㅟ7t}?z4VS꺏\=qg?* ІhV+-5r^d+;H=_h> )jTk"ɖ+s52#ad!Uqy.%i$uJ.Si5\͋mT=[Sv$bi;λpQh^ MH 񃤭u[Q7;`ԉJ;&t*J"nF/ɸ\/`>I Yj7 ̏䥙߀PP&x)B%+Ȑy[2"݁z3Sy9eyF|G=Wܦu6iaYI됳IBٰw] hRǝ$vU(J<^y0ţ ' C/| *ݘu!w+*hdB/S4f%lsU3 ;ZVY?E=kzN!Ju}]jgy;.>Kt*h^[_2ʢf4P(qD vX{(q39Ie\p9r`)P V :40ʨiKh.pn-p p. hP6՝ôJmqwHΛǕQqq4@CU+=n293LG2B@q CoٛzmȯM 3th G2A3VTـE[X-N6@̀@v%،d1yH,3nz٪hCC7gl-okX̊P_W>"d5:ne_t ]|.xVoF  y=4 4 FnBNmҝpwGJ:[c=,ģHva6=ПH.X(').I_~ʜ0ta{#Kmށ'O (M ,NmaŀyD3̅u05]=Ck'OQ}G2QH`>7UG(J<nUd yIPO'00m3©w5=w�F[ ȍ^,phPi )Y`DO"T[~72壭]HQ4=_Ey$쯠H%6'ۑI/z&?7ɖidM4֔P1W "_ylsEeju&m)XKd;m&͞~RMU) ]4&g"(UGlBBRT[c69%?H$%<z/z$VEjFC4_T6g߷F#m5hSՈnfB=>BijMGPK q)@2b~[Q` ԛ  YP,ʹݩ3 d6$>ɉEȦ~:-- ĿM#VZPd_SzBM'|N٣n/,0S0YI_E);Cu>  TxDu㯗Gڽ |}MBC!f n*GѰ*%SoY -CgXhg]u%£0C)L ƕ#;i~et}~|Cb = ScnoRb:qeS gS{!u1^>*=FRYCT^t@2EЇq=$Y+7UDe!SN> վ xԠxjA 7SZ.7E3((MFKs_)d`Ҁ^|%OUpdO~'SH#5ȃB&p>4vC"ᅖOUwϋ$=]]]U]~\{I<<<FI(3oޝl6lsQX10gMa:fgk{b`lͮ n< %(N"9}\??B60F hN'Xi,^O/vVa<*A'^OL4)t--WG>œkZyqQy5/޿?~\\_ׇ_4խO? f`7\-x{ߺ EpYECnu 8M4BʣApEmKa@,_"餘~10'ݔ rtsZ\0Յn"d9TWs|n|ӎ2Gދ {g&H$ 9.Q84\8F@1hB] w$yj"DjTljٮ -+mClP> uqM-Lly º8 /b *% YgՐ!x&h/k{oM,j f.RJ8fMCi$&A_UGTwZ?fn *)$CF'Z2BA(͗+,_pn q,uЈVs}na WDz@*f3Z*jyWU4,uqi )$Dᕚ[Fi#3{K!n2:Չmn~Ümdw؅`-yή9aTq=YS̑x%|6`{X'8B& w0n& G'& Qi"V FS2bEe&R ]#zG%D LQiv8SiӰ'lPD1(%nC7bGj\'>ބ#ĺfT„Yf,J'R'aMJfr'Ԋp.+!HN.^'gG͢7V/_7|Oi=`ji @ r=f}t]1p.H0Z1dl q}=cD@8II) P=nMSa8]>0LmD{d|iBa!i_PC`r]+WdNFC9j 8=9#bL+S imYRs nTA5n"gm.i kpB.5?=Úٺɔz AD8B ֩3>4/vUPQDgDJ32a"0 , P̸dI-,T8Rv ԳRsl6%;w^FIxt%6*m˥ĦUEQ3,sz1>W?]STYTWΏgwo_$catEWgo_Z[ݮ!V=P%AMwEx" J̣r4X@|4Ph!MQ.#]x{Y'\$_@{Z<>]_[!.PC_d:@U}ةX%[(qɺ9:tTCv֍ [yAG( $JE?K2$J! 8,'hI1EXH~@K/GŗO*bhfjlPLKϒ}Ǔq,MnU+XZ;i\AӒDVR{1.Cq#I=ީ uj^GmL9X Rqf0ZP0AFBfl>ȵ K@rV VMSpQ)%݁%ZV"Pu\Y AoA$ϖ0GZQn=ffu'F⧶^mɶȓ׉JyJI|!ľ8ʇE7EYzEDwx)Xa"m<t,r\FSŖ٨zQ*kklrma'%l*7abN1 f8j`QL«^ ,/s-T[ u:_V 47a>{wtj3v\$^;#gVZ@3BwxX ޑ-RVJNS<~Il:/HFv{u#<*<bwDUɴS[I^r'Fn:+_cs* iO vIX;Mwa.B[ Zi_*t(HFM܁QX5V "y024A$U|-#eݵnRsKX:d'-2= ʷ=؛rJqq}2fWmun (N+b7 %}GΥQiIl U 3m640WÑmPc>'#+Dd涾k18E uQQPjw~cPɇ^ 0Xǘw6" 0q7@P6:C!&t/=Ǫv(Tϵ`j*Yy "B;ƋfQ|K& &|O(+@ *,ҝx+槾k|?H90t9'o)YI TMtC01]A6$m(q49<<;}^.+\ŵX&EB u\bDooʱLlqHZB@uQb 8Rc98t((!!]Q;gYɛN$CT&WgGHmCntj*3|[m PXrWri:7[芴 al fxȬCvW, ڂ <#Mٷ!L tHH 4k7[NwEG[=HV=.ϳy%|lT6 XDFşi ,JC a$+GEиogM[JMi|I}Q<|5> Jr,Y8(qE%}%h )aArl:2;D/TAdz<1o Z%pP 5zd(O|⧸؆s~3BPNl (),L"j\Ky#Hy`$ ,y\ހ]w쬡F`'!If+tKq޴^{ phk$|]p3*ޒ_>[(^Cd7fko>uq3HpogwP#\Q>WѸ˯n 똹߇IvV/8eB#=ǹ7J.~{&Ŀ$U:M @3M=`=)캃sPZ]$M?)mأ ЈȹxQ#H.v WΩ-WH.ݝC Mr%@ΞfmTAAlȍ s/Lr- /L^NZpousY$@#iQ9 Q f1B!vwu4"a>hrV@5;DqK߼UA Uet먀5 >?zÏjBAtQh /@[Tl0^g[hވ<. ҉][' %`z@bsd7DkKRuEGY9ʳٚ26UY'CTh{=Ql%X$aOҌmK< MMA VErZ\6_]\|ɦQid#{9V{ל rpr|ztQ¨Mo:/2B,YbKdCT.({[FB7!rUF\c^Zh6NYzˉx^@T̨Зl"o4^v44l00rNvy nH7w"GxlQ>~ m~TNm@U Kb[^gb灾 FJPQjR::fgK'v@s\*`5{/ݖ0V*5H#Jjt[`]$SL&'uȍZƌsAz[E6!l f+7WT'6ƴq]\oW`n{k_`xTao6,bɱCS3FeADX"5R ;m)/t{{Ͼ셜9;fcp'8U҈T~6w,<ؠ܅Zd|6 ne&$2{1)װAAi,m1_SMcrEEۘ>wm% <䪤L}#<6LJ>]^&eiUSl^ kԒ:!R8.r/ I@MU)m1Zо!c.]nvsN銞Q^gT(MS~72EFcDJD$*U~Q23=/q`\ϼT?k;XBqK!s0 #YܗjcE(R7?,';4Mđ0S& Ϟ۸h,ʈ 3v|ÐBujWx P; 1q `sT1Bѣ&H-Z/AX"hrnu~ Ǵ`gd{zhE MS> |7f}ZtZ2YM*!{8;^j52*RRs9Nu$2)]]Q몬_:.+Ђ} I-=ج7߁D*cp0uXǜ͎:3NG;bü vZ^Vµd"dGD9=+޺Kv!]s+zַxXksV bK)d0`2%24ĸ&7:Gpb!1ґcϞ6ig,<{nOʓa"O'BZJ~wŧe\>CF}MME^G_&M'&yA@'X&2s_v2tG不F)}MK޸^6;~vާNҎmA[cQ֚<4[DNIt挧 gp P|.uֳq,$qJ'o#TG^ ݘ@ЍTH>VŧAZ rAS(;.XW&I%7w+M>gIT[2?l$Dc0/;7J+O@1?UGv2gٛ\w9̸؅U`\z^VުD[`|1M+XA&0 򇑦R-Uo) $ZyV!!lD;elxC'@"Sv3Qrv޼={צ]Cia@ Q6Z@mh$J$1gՍmnlj:0.M֦ iH&76m YGQAܙ]LߘZ1Y/Q ͸*:KW؂HVgKELc6y@b]cb k)2)G˶q#FDB%ڡ|lQ Ow}<l|q|0|9$1AXi^ڹo3צo{i>A޲8[tPB !.8,饰?u^?ܺwȿr4rVm#*;f2ݤ4k^b3av&R}ǍaD4N9:pW2WDD4o&5vں[2\\M\<_daڮpd~@16daIӆlsV4gOϯ sxrFW,; /[PGPգ  eH!n`eJan9TE uoBh.mX6b)sg79*v!cӫm*f6qO.3`솼7Ml0!_kVfpV{ H8;̴6srqNaBX-vAR]D.# (FUI,Wus|>{X nHGXٰr+BQ4(PwO:`Wan+;ɕܝPRW&Ϙs1Nq[4|# ۝P!+фObV#/UXShzf`:#_aViy3:gUg"C{/ j+#Qys\1E"3i|v6\z,B? vx*E%Fi R!{9`|XT9QewQʪ t]P$J1:kxts$oaSEbߥW1UV,zԑl5Aixixpby%͊p4dv Y;2ݫpuB:Vb` 6OB{kD[Z&#:뼐={9ov[}*ZsIRl)Ll]E=RԽ̦ݑiz"kYCN MO_KI$Wr+rIjJOA*s97u;YظΆ&/]͵xVmo6lr%Cn9l-6Hi-ٰbX>8^N_NG"RS/҈-FgiN#fwNp$}Tb5M8랽\ K߰gi;u4>]q(;lɵ8fsքa0t6\\XGl>]1!pϕh Н8*IS0vaJ)f0 , .\$8(DL<3rN%*$06*R+}ɭ·nAqd^ űQwc&(YfRLdё 0ihzm̩TP*&e܏Y̮Q;v{KpH.d0MwӁF]fDڨ,0@QoA<[V*B@U&m_ߩ~NDH^܉CfkN8~\ L*[9Ķ;&P"ËZ ;JsM ^]jYS !^'ǶA"Dvf.RQX4xd HyBCɿakPzoܛ,K|L1@CܳKv m?s[z&a/!a.Q0T>Jo %!>Ƹnӥ?wWg~8nzv`2:.ZpkXu3)yH> {`/-{EW:ZUHmx̄r 7;V;7B*@%tmjPq'$3jMb"db8Mӹ()Z}<~]$kqQV1,Ϫ*=HY~QB#Sץ? +|st[̻OnG{ỀvB 1Vt>b !Mbg7Kh*r{P!mvCdQW%'&#*~p:~:KDOb==ҝ'SikVLD;y!&h#Bq8[V/a'l3z];xuqNٴk>\my} 7}HDZ>'H$FɟpSG%o'R]"D] {}F:O_-Oc`x}TmoH bIAӋNIJ"@@.㭜]kw ή >yg晷u { ʄ gS?|,6Lջ:`,4a"FĆKgpQh.pZVy A׷Σ¤c;B0쳘AQ$w5!3BwiELX(SA/:Ov`C,/ I$I3 Ha+3L)!agӧ!\}dI|vr TbBx IAnF;$g#9۰*xGY <^G֫u_DWԫ &C[Y45Cc\"EYlkLIjtFzq7x !Jk`z-=aga|]Fr>~@:G솱_e8Z&NKN:*T !?*ۨd,OP}BYՎNd ^d W5;n&h/YJʲ`pI'D0Z.G+i/cTGJODanzxVmoF l Cٕ_C0Z0نkUs||2tY>^d|Ǘy}ox„diʄkΊ xuGA7/YXwЁ7^҆wT,X| tGOj!x x[Ļ OSYy0Ɋ[FEwwד7[K y&&.R72o! M'Y\lc1*Y0W9L E r#ŷ,/z8w]VlCui-(z}PyU ;%}Z)W'25jS7՜[ޝk[qPmCrxY5mS(JBR ZEDP) 6#[Ɵ}aK(b}d=u=H>WF:i1+O%W6'4xRFJ򵇿m װ?#ƈ&a9"iԌ>vispa,xlFa &\]Awh*E (| `Cᙄuc'm Խ,W"%6lpЧ|v cxd@y6_J$WQ*`Lݙ!jє6=d ߸gGwZL5Uq>:`<(q$au$9eQ{h.#*w4C?ӯ_ i`b9{-"`2,V/_RŸ&«.r@=Mtt9A#3O~p t}ۮ_%:]5՜c[>'*Fŋ큓! Qo X6)#'n:'X,꽣|?MjY"<8SiI?4=}3/A0 &_m}]cW@+`8QH B'"1l۔x3?躍BxuSk08?a ,nm1דFT$dIEݽt!^.$ڊ<B sEwtKUì쌼[;f x| >꧴pVV33d)ւ߃[gN2=:B nQV/ADzu[rc]n#K)mg]J&uº޺}M2'9H͘f%B}*T=3wޅm܀ 0M]GXkƬU,Ŧ[4H%5 a Q 깰Dq%ӫæ*ϋyԼU*M d-Y@Ix3AP/7t?$juuBFh;%!4ԨU`Gl| Wؖ2tR-^Dr,d~UΕ!im3Tx:f'oHynO[@ Q=3p}iz~^4\⡕/|zĔ(Ps eL:xVQoH~ƿbʩp@ /K%71u 6"KXձNr75Cx;37{t`W, Y,.p4HAG=zplw)0W]8` M`*!ZhEl%:Q2, bv ^3bMACHYOŤ|L`ojӊm+:#OSO!+e |@-=Kr̒]*13x!?gNJiEhۆln˲ǀtET2A:ܴ #XC?cBO]t^_EIƦVՍ :ez*X{?d_!RGU fSQVXaHy}|SSjg0>xbd"W(KO%>xtj)uD2Fg8(JDhxMä ccטpu0CePIImJE!jЍr<L!JN9PYoq߈H ^O,<]B6w{EGރ1N!ٮgDb#5NTDT+]eB* a( av_鹞=xGCK@>f7 vad8!q:`X 6'ςlR&4ƯACQ\ClBI(N&iàcamD3kn),,}ӱ22H=R=qaYI4ha6op rO?M *]NXzW- Su >P,3:}a.&|$B]NOkOsb-kAcȢkSCs9{Ǩ+,_?\$ EXP?rC5)i$ +o8=SxQB|+[)^UF0So-:k1zE5^Vt {fL?_ږ\ˋ%VÇtɅ^;I]3Kd Dd,l4Un\ j.G7z[FK?]/*y>7;jLĢtDŽ>IMzRT1GSq@脈$لP;Pri7۔JChq@R1c=*[J-6;INAwM w%rs|Ei.euF# ޺~}(O Af^˚sNڳp044-M3>qqi}Xaٶh744"ušLr6xӈS?[x7$̤X t;eX ^Y,2ZaUJ5AaqMH.oNg''/.?8J+n%-~EJ-Nr=S4Fq^_:-HTBs A`r[h^SN_V7~?2oZ_I ͐.cм(k~85*SdL?d,Z$"['ܨ+nXR,0mV%ߗruVl?{,)bI }nwpيdNGF+&pu(Ö+CߞB5)3YRz׸.px06vr4G$e+M}WyZBLZJFGCё8l k^ÜlBv~Ĥ fs aFZvT-G}wْ4$_ΨJ .o9-3F^ IZ*ǚ"ҷ"GC\I6S:螾htMB$AAD|a>AVe V[ m`I{5F%0# `=`[`2;5HRFz pk{sTflS8I +|mU$NtN"uk8-p­-q%>Jo +4xb!?02:rMyy\VJ Zy.ZHtE3 /{ #I^0y$޲m[ԣ^Re&-](&@lMKemexZ춮ݼ%j3DT#k`m&h7+Mꛢ ;?4ݢh5`a *w93ᦾVцF3Mv-tV NҌnr7e*-mLVYkR1$/I_yFEw^ lTY)WV֜ʹ*ZjeJ<^.A`ѨRcɁǺf enq[_Bw*]\.pXW^0yi´0}LGu*x-X{\jgrE (Op|y POj*Mu~њg[Fl2k_PilK3]o`}Y.V\fRؘ <(qUv.uU&7y臫PGK`7A/H3]8M݁{Sw`6lf~pE1ѷx[rq.}ND)IS#қ?_;F/Oƿ\^/N.KXp8:ӳ>@QH߅|f9о%*D>$Ö+ضʱ)-Jt՘avB'M?:z)+?m֪"o< E,. -TTR-Dg vCqLl/#CtF" ǀ[  rgUQQx|wĦ#rj?3m}5?|D7veg$hf I`_}bϿhI`tƤn3"ŸoΑz*ݡC̑:8>{u[S W㟏U!-\;=Ũ&#?ӇDj x;HH>lO_nzΥq%KCt\@s T6SMZx2@ؖhagH)QъST𞸶O_K@- VA ۔FMDzx V -ۉ%H4q+5-\戀lCp_P%?Ww_b+fj#g6ɋںtN<`55I=s83{E:-4cw75N-*Lgr .x)6s )c-YSI'Wf~4[P`s+?PсX>R"nq`/I*OjqXڹ&'$%$ܠΰˠ04YV%+k?rY8bOo܂  D%uYXB7sGf)v ȻK ñbCP~`~ GS»^Zstr$n2\F`Mnup"Gbgڄ2}ذuu 8C5O]EPw*eoȢe Ym|AޘrM6ªu!^=Ơ>Ӡ&Q퀪PF<yv2N"ӧlܑ֒ZR !O61NXGY !DX!a=,휥G^wn2@"y݂'*"U.4D mn(7UE76#Iİj*ۅU+iDԶH3ʲAn !4 ʲu@zÈ[\5TYl\D͔( \{3EdX GQ=† r \p&_.uQέ}꥞삄!r&9x; r_m7 ez{gً +ߛӃC Xۯͩdg:P~G;O:oD6t1Ln kyʚ'/:6oQcB6F޲>j`=" * oC8t奚-juh>K'Zّ-cGGST٤r: }hcڌd`kt*^eZxG@߇R[`XᲁIyQ`+TD2WO5VӸB 8ֽY^$\t60Za7?U|/wÉ5aM b2ۉְ3Y!Bɯ({OP ]:z{/E򐟱<ɓ;ϚR9u&x2%zTR8E΍.5i|E'Uc(3V Zjp%prR.g}2&oLD; [BT?+[fdc؀j{@'[ )\EzJ&5 ^ڛ.Cd2QF`7 Kd:i^8ؓUz-z/Aخɦ/ 'u1hc_M&j}#k:M,ZHsjBނIh~曌-i-jQۡ#LTLShU܈AgέV5Uũk:PȀKu :_6r6ռ#RK)ȂH2֯"F[ٕ&!~V W:+u Ʊe궨2h+o;%=+pD)Yi0PL DY9*[*͆V(>WPB L*F!V3edɯli<;˷obS5W;hSq6֝X"4Y_E$i;9TH`o7I #,b N.1Tav.Mk ̳))˄+'+Rf; V5GLO?zQDQ%gos#JB?)a#*g&+>UcOR\oˇq>.;a1NnLc'o,pcz/"?v(Ynpw_m=f <gkB@+yf "6u I)DbRM"2`Ү)*)ݤb˸#ѭYQw]4a<|Sk}kbUI.I//mb{h_#uq9DygGN.}*EwßٺqDw8]r9-v8ˌkYrNZem(uDڙm*- šxVmo6lrw۰`-'FmːXVDDdI#Y;J%ؾ"y/cz}"\; neф ɳ] ׆`{DŽbWO|ƿLoPD?IqU ގ{ Eޞ<wD]剻H靫q)j 2CX>3: [jOR)3,' 3"nW̱<f>+"n[Ϫ(ob/RUS(>'.JU!v-%w&[/è!jV:ŭښ6Т@[;ߚl=Ɵ|aB]MF0*uSAG[>So~YTf^ ?}ws&IE۲3ůlpyp5>q4iU۹.7n~o6h!.ZE8KcҼ8 Ltlfq4X!Pbp zs zh$3 }i\a v{6^ :kkfleMM\S]7Dٹy@mGi+6.oid#u^je.J+c;z7 c\Y8U%Vh`P66~k,~RϻotRT |Vvg&ʨx=hc&~yzxmY:Ҿkڰ|C 44 `6C: E`dы+qzЇFNfn+QM$T HJ$Z|~LA W'?S;ȹ6ͯgȍc7}6%5*UaMG!Y{Co_Ickgu{%2owIQa$a+-nb sz>5PP{iO҂)K9KSGG\vhCOaYԺML K$+XrwF؇cgeg:a |uar$n"* 站eNQ/MwY6~SF$ծtt6lo䴨2)-SńL3e(W| )NOϹ/:~uC]V}% y `PT3]8.SKkT gIA_9T'e]"9y0255h/WL1!$\_^ -\ñ![ʐ;s e;Zt`^*C{ClF"hKt;3rcE 'p[6[:3"h DxXkSHlOJ/60fMٞf3)Zv,-6-H6 ָc{:\5h}iHo֫v'"wGg.&˳UU2rR M0$DQ"HV䭽TcAbxNӅ2~%4'd:u \eDD+oH'+y/"7M.]3T)P Bn:P:?zΥ7E$#I$BZ_::x}uY*>]X#tC_lTN!9xt6N? S_PË@Fil&J8:Ψ8+7nƤ/H c쩛w4yNkv6wEss9ƓGt4쟭WG\{Z/7M3I'@ˣlT[@Cͭb[hPXOы Aaփ&zdO{Zu`'^J$bz1M>NN0&p_ϼł̉8뤎vR\ҦApأIŋ8ݻd+6ee冤7d)U܆W4r*ƣMjcG :/Hhh6;l,L.ФM?SwK}x<AleM+C75SIޑ/,*\[+d Nř)@*[A͵S 0^;ڞemОD, x*ac3IrH.1* ZQR;9CyMjkN/dDqBNy.٭ss)&c U43^Co?wg=^{DO *ZQ1 >&\~Hŀ񈤟D$2G6\ 6h)d0 H3ܱQ ir ,Di⟦2gvuh6xI̬Fd!mr=~|9h]s9zH7jCVB@^nqԧ@;o!zz7l!ͺ]$V3,l"s Qhww#w(Bp"L`=+G3af&Xh& 5f3^Pa.e./CqB`s ϙoA}9,ahI_{A1V!v|8d "MLιq03I#Vb9,9yr#.^R_ \u>Pke&橕{ufg i].햍0(zw8^T/}J;]ߧ7oް?6` Gb,T 2$r Cxb^fZYRm_kW zBX[71 6zޙY{ʥFNnnZŷ`ʸ >c:w3CƀEٜgma_1Iij D(jLX]7d6]A-Ԣ&gf<]pMRTć +^N-AXa :k~_E̗ya#ۆs!!_Оiĵ6S.^UMZȲws_xߐ~iͤ %|W&\I2Գ 9h>4ϑb!1Ii6YLA<4,/[S[wi?n84Q>I oBA7mL]4 ;íSߩOiwMAs#h6NgaoL3 QYVzfoZvujv?) 4 2$bq0w.]|AG ɘ.:#6.]S@.4HѢR|&POn4ciiXJGiHc֛`1p q4>py5@oJ}CHcŽv}RZTI:F7{GyiK,bn<M|w8$0" Zm`h0̈^WkSX򤼈Osh?PNMpvlY``@: M&Ycs{1!tf۱Y6 &G!v$Ae8 &o RJOJ֘+HMg&3ya)3ӂ:Xsu&ɃGhQmо'[[s (i-4;`", ƌ9HK#cBnBܢ@Q><6oMT2.Ѓ‘*V9*=qPW:~,iYY}G&W 4`>SZ{˿-3Dgr6a|PouUb|Aĺ%" ;gFb j+frX-ÜjEaJ40pw{hK2s7};YK,ҪdFXFčtUBQnn#^_0TˊATUph $B-P+8Cuj.@NSqTa6cyaY"H1jx0`wc9]Bw0lgz1q)'ˏ8.?RZy3&ϨOೲ|l3v&%Y0`&&'8c3 d]| ]> p9mdfxk:ݣ&3 b%594 v140e5`oÕUd1SFCz{h5O}aϼ|qDp4*?bdy2,yemQT["L@g98g9|w^]`IOÕތs Bs~[0;ve\%$4pX3A+(p$Yy{s+߽֨hS/4N{M':baۛkN+k2_5S?kc|k^o 4S3%_tJ#<: "v HY~wuZjqA6=k8`6%ܔvl#=mӠ^rOGZ QBa_!h" S’NcJsQΏC/TP<lu*N+x1PP̿~\ɩZh d7ElH8˾dt?)<Gc `!` h')H ZOh]u4sYguFIcjjA =*cPql6<߮X l^ ?ǗtpC^r%SM.YJ-XK`cU R`UA68># -0192_=0ʢ ]7õv$52b14&LrBɳ8 + AEE6/GC^ Ax5SvlՎp@ó,A/9<̦0 ?dŃԭY )VlstG0}.nsٔl|%+"pX6 tTs%2,ԖKVkX1,9uY߮b[mf)NX=Hp6(= 'Cg0-]eIi[? bezXR I֢Ka= cWP9ue7* ˏKʤ(TYTIlw 5ZC-{2+y4~e$}^+1av+X+t̆J [H k*_ i) ?}ܞ!_ IKS/}kTq=ʫrPz8AXD`ʫKOy dvд0٩Ipl#Y6q>)T6VC`kevD :_GHut_ 8ց9P)2$Yc[bu8vd=ƖMs, ՚!"S'GwhE1d XZI\SnfˣYGT`ؼ#9 Xo6@) UglFV @Rm1` m) ڰ!m ,&S7^eΚ@IZiKw|6Vze}r1 #1 nA?cRZŀ>yu>Z5eO6x@x[ Y `1KiVڞ3LI(9`'< IO8QGLJJ,E)RHLI ޹>eh l$[b,0e@E (aT8t#&?[jS D=[DPDo9UA.eE [@#I_Kyս嬗4#MN- -F3`hŪ!y(f ݕ.JZcxP3m8PUXe^҄I[hӇCZV+d`DJ79mKҁTCO%3c, ^le^`o 6r ʹ|l QL)/p{]PEEʢn0;y 4"Agq# r5? '_l38}Ѓ=o4^D;+46 X<+Kmn(#) ϯ#8FW8ec b(|T 7b0&L&t/+K?!1N(8)pz&H `G9`st"'iqꖊ{g7鯖^&RzY52`< \afr?ՖL^2 S[Gp8\ʢq MC.5^22GR".ww5*f$gr`cW zYIDDóO^8$E}mZ C3Ynù5Ex2B}NPz)Hl!3h%~E:Q-XA[,BGJ)8<4\tߔ7B!g<qB[\5p_W/4ٜЄiaWnW"j a]5E(Z%ЕV}!鑈A[7@]a\?`" PUՙUsP&\T7t '%,{'}ɖ>V |ɮXEwQ:^b,D 9mh -ms7>$u-Al󳗉ذ?-Qݘh{ZC,S%ZLV Eb9mp6-'9!=`Mp BDpWxd!ia2fO@E}{%5ҬI&ZOPX>S)/05H;BVvA-qoYez\CwFsຍWBÜE<&ؤ/.Iy`#%,XQD%4($?R[, YXhXe'`awe[ջ%%AI`EwBRvhq2oGaweQSZ<n3~J!,x^9[ /˅%;;e%x*đS?N~onPg YϘ""C| ׌'Ye$>[ WblpYJ4}̩K.JC8~a7}:FuaYcRCt}CX9b،Y#u%fGkJŋT$ϸqk!SrGDH"f Rw^uӊEe <%񉕠nʁ;(8noY([$ hFՋ!䚯ܸtE2Ma"8׬!rW)lX.jt F~\d{AAVAJJT-a y"+Oha !<;fw[8%Ym$ƾ]zՓb*(.u]_.B IZEז-,ҊXJ ڮ/a7Мq88]{hmiu1!G^l{H@ŞZ)bK<`V"rcF., Zohܲ@%t4Ʀa8KDJ/ෝqF=BdȠ0PsHY7e1OlKcZT.Src9B(XLW3{&[~'ϋj1oΒ߫F6,a_iwm|^|\l.C)L p|y-p+!<$k_[j`ˤ\/py|M+tinZ,ImJrw6 r[x; GA`Zy|;wν=[:7^ykwWgp7vي6\:8"~2 wMj0zrgj +V_"YMEQ ,(0\Ƣh\o`qdenqW獋^k|6ED_3ITۊܷ8o7VͩrJƳېGr=sZkvNXh c{an>)I$;1O{zH~mkOp3hwoN;G?K`ך{FnF_mʏyTOF<@Z#r0y⁩k!i3 Ϝ~_7kݥ&x340031QK,L/Jew6g~z@71;5-3'AAә'}~l[{{!&> WG_WIQӸYא+MPy%iz L_8/qiNFUd`_oDFLNhѮ ;U>hʌ fMju\ɾW{l@Sf T6{g= ݋Z}aDžhLd7ר|x4O`_)3*Cq틥괄l^zMPSs݂S.{15\p~ײM9PYڢ/v/]g-ꊦg9޳..2cl\h,ʞIplr7 !}5ޅx'BrT>(^(#S2!q(EfЊ*gqTjj5r3WDi`0! ?œergg0@8-kӤbx 7?`Xv~r%lP?]%s!Sp`<|[rr}zEkXάEg5iy*=3g!OA =cH~bM,JZo^FEևck%ΏeXǙ3GwZ${ 9-YC87q>}9ݟNǓ:JRfUC¯PN)uɬ!>Gv:;vw;E@7wmJL4nb.ُҗUQĞ*9갮p<@Q%gGP1,M&I *0 3uݭJXzQ=泣Gp$X̻[0 e{8 `ߴ#/b;2mp7gP-MuLIFAw8RxʜIHy8X?oq>\q߮ξ@G aJjE տfIjr"l)P"S0B85rZ8p64}Y3OG%iF̈́fP)&iTtg:4L 7*E pK~&<l)<.U"{*%QURmzW*#nKMbmy1E.)Jzʄgݑvc]%_qɔAV$mN8tUSv G}f:ۃ\*5HgN.1mK/ݫ+k^)hi5Jghл8=7 !E+xVzr╳qG4Uvb7S `WnkA>fUjJ`{ѣBLj* *;U9i4C|1TI?'hRHFwú4MÞَݧz7VGLPI.jUMUdbYA/XfIGlԡӶF̳$o