#!/usr/bin/env bash # # Copyright (C) 2011-2021 Intel Corporation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in # the documentation and/or other materials provided with the # distribution. # * Neither the name of Intel Corporation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # set -e PKG_NAME="Intel SGX Driver" if test $(id -u) -ne 0; then echo "Root privilege is required to install $PKG_NAME." exit 4 fi PATH=/usr/bin:/bin umask 022 DRIVERPKG=`mktemp -t sgx-driver-pkg.XXXXXX` DRIVER_TEMP_FOLDER=`mktemp -d sgx-driver-XXXXXX -p /tmp` trap "rm -fr $DRIVERPKG $DRIVER_TEMP_FOLDER 2>/dev/null; /bin/sed -i '/^isgx$/d' /etc/modules; exit 3" HUP INT QUIT TERM EXIT # The number of lines in this script (plus 1). Using this number to # calculate the start address of the payload. NR_SCRIPT_LINES=93 # Run /usr/bin/md5sum on the binary payload to get the MD5 check sum. CHKSUM=c263e0997025ac09a3f070c912b73373 # Get the install payload from this shell script. echo -n "Unpacking $PKG_NAME ..." tail -n +$NR_SCRIPT_LINES "$0" > $DRIVERPKG echo " done." echo -n "Verifying the integrity of the install package ..." if test $(md5sum $DRIVERPKG | awk '{print $1}') != $CHKSUM; then echo " The install package appears to be corrupted." exit 1 fi echo " done." echo "Installing $PKG_NAME ..." tar zxf $DRIVERPKG -C $DRIVER_TEMP_FOLDER >/dev/null 2>&1 retcode=$? # Save the return code # Clean-up the temporary tarball. rm -f $DRIVERPKG 2>/dev/null if test $retcode -ne 0; then echo " failed." exit 2 fi pushd $DRIVER_TEMP_FOLDER source scripts/installConfig make install popd ${SGX_PACKAGES_PATH}/${DRIVER_PKG_NAME}/scripts/install.sh rm -fr ${DRIVER_TEMP_FOLDER} trap - EXIT exit 0 Stcgo\ols\\\"F&w,,Z5NI B8Zp/bm>| ŠxZ0<) &%>wi5"G f 7 %R`C he h3@8ktX0FeBv~jC_t@H׌&޸O P`8z>ѠI ;׆3>{x`x=q=d2ՍNkP21ey4}m c l4܌XC3BҧH5qutxhQ{) &Y}>kJs$a>4v:tI6|w4 mlhHJ=jd|<6tibuP{ن] hD =43 Ƈ(YXEa:# vA"W)Sp~xV5:&Q]@*$kMR+OXNG%8K!uΤ(TgW)C;pQz3Mij Îf18\Z5U3/FF<,Vz _j]7eSlBu01k}/dVeWX9čM"؆Ò}2 %{+0yZ7-*֔5_k IW`'Qyk;w;;[{9ooo=gQmUYn^w 㴹cg9B0J Qns),s @ ƎyĢs LRl*SL~]RHx ' d[J4i0#BVliNb=Bijp'Hg'>r')_rQ7.D 0OV&HD^az R?$ 1X]L D$i%y,Rj\&$gkMCMbGZH&op?guuz@@+c/pכca4eXﰭW7{Bޕ&wi%I`Y~9>B XF,I,H{2|k//%o(%l,bYjYrYG(ͷẀqJf@(53y}s՜ח̀qfo/TΨ(űhah*3f3ې.[! -̃)gmHn{_Z~Ƀ[jE6>Y 7Ph]%Yj;hL DL74/`/sHM+\fU'Qa\YeSe TMe Wč\RtP2q!Hmg9Ǎu,!,#h"Oi\}3G]HWF 9wmX<YEZb ۻ;v1>Up6ζUbk*[E KA -IhZ.8pRB䆠PA|iK( BJͨ 9CO8 $ZjA d#9[wB%@Xthpw*j[&-Sp_[ yeT7'Aj&`:o_¹AYw}=SboHRlH(֕SHaBBobP1z9q|ҍjqtaˆ Z<"Td BZ * o߲]/޵:D=rՄ-+X!9"I #@ťet5RKV('sb 1 qajc(֝Dr+!ٝlMOz0DgsqeI"(aXXAh:}TNC0K,f]R٩ꫨ* (hOęVW;VJdh %k2ƐU5x^3Sմ/{fĬHCɌ~:Bn=s zU X þR|j,0Sk\Z6dw^8-'fyi0a8Z I1YZbהۘۘ>N/~-[D*O"#J>;F@Vs̗gYykCPo{ykE}8ƠTj&E!5B/?ơ drjݹ` «tfwfnhqHach]){)IY wRپFIh'$e`( 7NmίId$ VN /Cfs*7?:o>{NXrjK}(hT(hchxDE˃XH2aEлV(b,$ePdL3KXp+YҸ^X%jl\p yM( 3؀-j:Q-Ep|'Z'(:<FhPqĕƏaZDW 3X^åXMpm^@-iEh+Vjߡ"xB}; "9BQPM0Xgp~moD՛ 6ܹݲʳ fXH"ӂZEIkױZnRzK5BPdki]) 9UkUaXӶAdePCs2Bu*1Y|_g*`T9d-2h`%{(Pdsm]Z+!|L{ hZP+P9i{] &"Gʽ}~2)l=퉈;DQd" 4ZZpm3S܆VJCDhr^Dy7sMb(Him3.>6s\d^ Sj*OQ @.aA/v>ɻbH6F&J\bA xQ`GUJtMRR[sg]Y]8nh+ ݲ3%J[Y k؍#8mѬmG,AndjEKhh53"0)Ldjr^$85jױQF-mƙ~2b?WuOݏo91 m3n*-R_֊/r&4iW ۚdͨd<;'(\n<~mOH` B)$R [sLP-@vpM>m>ҧ~3Nn"1; v-dnٖrM n@H<)C( ECQV mb_A7}jJ5$\p"C%} +boXθ*_,K)Jt䦥MKOg+!M,-ۑl^5V;Q:/j)LZBTml:a82f@?4!a)$ k ZbS3tO%I ew8hrO/ 92q<]/ۼ'i)oAua)4mQpMuIkȰ]BDr]u沱FLMO*E7U"3Dl(+r"RkS&U`R2\5 q@EbwM LI %eA6YU ,REwP$`R|KHA7]5a1$;,S.(``Z466xRYv6R]tāXyK}xn8x|."E{ƒ[b̡eX>]v>x4Y7-a䶅4YqeG.i/WqA'0%`WE,d;ô_^ן'(fR2og[Nf4,uUrj;uYې՝jqvj*y2+ 0S6{2)e_b[@viKΞ)T*`j%4*cw^Þrdp\]>BqQ(Zm gFsG2>& ꃘ#t-!HRTъ*p 9wf~؇7Bıs_~MMfA/#]%pExEۋ4w//ql&BOAD|D1P'۰YÓ/?_Cۓ CG( ~Iw.ux|TO";{zLiDjogW6*ϒs~Ms{n=[}V&>id?6ɝy5<'-as=F?0Bnz[ݰkU\9x^CHpF(F)Y#Q`Jo&X3-ҋS *<ᡑ{H)eJ!^bJ9g)W?I)PHyI6/E) 9I2mSj=4\j*NbsxP5<~S;,61?KPAZ-ls?i`[Oݓ[~}͛xKɛvO YH7XMZ N:Pєdp!2ٳ VK䜑U11hp"/ΙǕh۔#|Q{+'<d&/!@ds#3D '4 0DAY CetX1eOՁ=70kt1IYeKW:'#mκchagw@![(^&6rFRad]:iF@߹}h9#%3Bn8i$҈JJ!Q=EBJIZaJ°je):">HH:ZIȁ8o>[ cM_vc5~âdןV6\s[/s%H 0k暀&` k/3 [O` hKEc0 æ1fp3\*# k'$i{8bBxW= a7`m՟P)]Zu YҤPo(*.~dQ!l?<rB;{GP K `ܺRqf^e xd=N]B1n*ߴp"*5t]u~}ZcJ7Y- }cZ˩s;՟.c1 "Ł^̌^pKª8;R O!,tڦllN $}\ut.AqH4DhoQZNRfn_;P!F/ =肉.~+'KzdȋwQx~ۆ TQ]Fm Fj+jkCdQ0,ڄ=.a :Q$*År]bhzg6Nw(c~G_ 8TtJC#^D3Z&ԆG%f~5^bBT-P0!!c[t1n,V>u0v:Xk}0,2")A⇠@Mt8XІﲪCݮ]8e~6/gE8ްf> Z􂍊qh LTt2YF#Z46p:Ta|Y˚UN85=a:$S8[>7y8Q B,e_$# }Z;tYA -#'xNds0k m5iHcz!f—rm@(-1}V+#bao;Eϵ« g\iY6U aMэ\l [8B!) 6';Gs'yjBq9x$e`+ΓƌC; 8x G.\J p– E}ZG|Td169&c0Q^ol1Drp#qj-ƀYY's{ $;R;:>ZDaԲkM,k0^*vѤ$,QHJm, |V?k c{P,vG}&crM~]WJT'gS/TԚ۹ijEӸ|kCStRzP SM`%+ f}+'☞H^ Y2Gc# e*!XAI9dMk8'Y&XeBFr#*C̑<%S_߃D׋:]d8֥xӍX+fd|{F)x0\s!4 F61]hԛ)ڬ(,}7 ;`{x|OOxB8r6(`+w׫b9tRUm9 L tD4K ǎa1AJr<,5t0jfּ[Ά z%3gLv|L. hԲFZo6~nJ{Α/JHQ̍G 䦅c9MW#qFhzn]f\Z9NÒtÕ]_8CC Q;Z6.m%ǻ՗+6z [yE+#vIЦ.,,OGJ32PiٕaS)ᮽ826papuK0!0tH3quv^&5 !CfM&*S ̿誇(RZ ,xſt-> o2`%^ iG:n[{[a%\矔ka=F{msms5>s{=sWnŽ^ 8qw+h'{$⥣xV}1 <'^S,1QfYL1@s4@M*KXqے*{2?v$ ZzR%8m!?1B3A]Z[9|&Wt?y{XNlT)u؉ Jk !%BQvх!FHA\Qr#J,%\ = @p9@.׵EwHo#$[,.Cf',fCoX<ޑӊ:EG _d'dJJH%7@ G*Aӵbxlp he3:3H0GC- J橆@j$w;gZ37M3 9L~Ro;L܌~9cDSLp?lHvk]se>v/ L#jEBHC[P[<1b4fr ݔ5E;{Y"(ɳ!Q/,{*Sa0U,/91;o7$s"$7rl~uPvD&v<'N̰O&.Ev d V455ǦƈIV͌۩]v)hwIh/qt7U6 &k( ^J|(aO: Awq>L3^r$v(DH'ôn9jgw۩Er Z6j o/5>ϫ,Ý} Մ|q>_־hRnp Ws}: ?6C48R!HGʱw濝fJ'ˇ..$EA ݘsuule&:X4zր@3$g)b89A: I8 s5BգJXR Ci)]daVwljU3$%ɸ|;1&h%:mY3&dϥR+ጾ8`[:Nw@iH?9d}[W0[%Luv eчms#=_ _C^ E jI~j]NV@=**pEׯEsbjQ _T+\1aϻ_ʥ!6nX #?%[2^t6DS)X[^㻤J\5D٬+`2AU7q&> એFQ;r5i!gzч|Y/7s( 'rV5pq )<n5Jj`G~H5 arupHeqZ½ Bsr@u۽!YHeP} `@ʷ#y/ $4A L|+GayNnh}&ݪhG-JIQK,ES)x+nc1/ k"2Jx<.T|Wݱ~oAhw[ڕ){-)}aåA8qc(xiMCc&s"p/ˁ̥;yfճhv&( e'/~]Laxt,:#[TҀ([Abܖ(b2o _ߴzn(_ =P0nXI;{W.]v5rlY.'Efn^)lk5JÉ_g1nvND?0,zHFa~I#)?T\jfg'.FrCБ:\wQ1$8Ic#PNJȓq(bXa)x>;sNZbgk~+٬޲r36Y0ڳ~7lݔi3m :uͣKk<99nf9٠QVIL SڒJ6ְ\0Q\sJS,'^AY 32mԧk&" S)~E=PpDXy8ģK!V<ܔUfҢIK;g ٸ\%!5ę9{q:ŵ̥ĂEF\tvS+tc9{Gk#լ˻;u]l~x)o68Ԋ>@S#ݫ",Gc %hЎuH$E:gJZ1C*>2c5y$6<1N"^]pp#i<+7i>@faX ?r2z3[%6ӥvZ!-nM0b aZiAbk5x&'>L"5I~ p[I0:^?ۖ*4Tj}In+WJCʅ\M(VZMR Ve*TS({X5X&"-B.l,Î؛̿xܞ#vǂwasV5 eQF1EdonWb/,nqU|}|?Jm̠@倌+ ^Lmjv{f LM8^ǍFuKSJA@SC|b?a13UeQ_D‹Y[Zx1C lŚ,^z%l۔j$5.Yr y=CC.5$e=x6F7m!"=oZ13V)lEc? {W$ x+&1DC#eeu6\gp#Xa"HƍĎV.0,Y^^ΐ13*v 1‹$H-z:[B 4!ģ+]y"s4J1*W:~vJ< C@_l?W,^g?u o2/CWSыz]Kw`e2us38@FZ ǩEj⻧al_.AIظݻQ[2WDid($`+&~O<R'μ4v/[y([H1~&) yVyYN(EQ_Htfh3'[' g*tL"}r'x&V;لm6Ųמngw@g'ĽcňPK7߁4!X-aFPfBDd?Xi ج5C(yPkf49T>e%nVtH+' 5O};U/{u /V߬"9)7_\RzbyB/?ȣqV6 VKpUjJ-Hhn!X2 eecPCIi)%hDm+hOw eo娞ڑ'X.-sX.4Bi^hx[Q@1B/ܿcHvF,wz3* vON Ɉ4{@/>{O +e UJk9iQ~p3^|\*LI{|z4܈(o7;njic<7 j{!1ETBV:|A'_E0T\"4kN!zOoQLQ1gM'4e2MiLmGFzH58"uw߀@Da"

vP;9}Əe8W[QieYY}zpLYhYFes"ְߟ?[z"ֱvϿ?`,p:.m|ηax| ;320-k9ч-[,dKނ 6wV⑁ߚ4:١JXcQH #,$o}wx_=B9잜-k[=8dkԷE"7hç2lMNh0cn vYnW)x,0o[(@+Q(\G aAnx9tF S&4S(1VzOH \P LƆ&=jSԡl`y25* 0jxXhGXPlJvPMM MF3 ±=/:@Y IZr,Y@;Q{ldm7xhOa CqtTa{kCN2Mhe]{'#'&KL9f`t 0dOџfx+]9D8ô<~ C^hD|]Cpr̢ƹW*uxS ÏWZ0dXy=BF5c8٢:ʋG  %VEk(_q*I+*=iD" ѠAyW ^V. 0h&%ҋvaKƢ6j}+0E;cTwl i=QkPWmd]W||; wS.9O1^*0\YLA:`=龼y[ h[7m_^,UM$WJQM4'BTv*6,2^2֕a$@$&$@1pGځ̸b= ϲX9)x5ݠK)+K )0T0N G6T;iēwpIX,_9j\͢jzxCB3ZSI~]&]E ykUDEOW zEQfM322\* >N5q3a@+M8@^ΰDSrsng#U=wo ɍ+KX\+^ķZ.;@v봜9BI`AL8~I *@ s$&SҰG 1 >&Zc`H= Ypt 3ӜuO4IX@:[pZ\mDې%N*/\U{+]0]AZ{EcWR%&s?z{[t>ޢ>IPp.L7M.hw+ARdq9-L {)6_1QuV|:+O767kkss{n=Mja)U1iXmpa^?*O_eil*n\e3Der/iBiv`Ԡ0e5S]Բl$ؠaѾoj?Srl&kVNvA ,1X_Kϲ>=ˆ|}#oZ?*`mnU0>F2翚UY`ScT41b5H%۾K%&=QK,cB}53]sI> XWlS#; _{%o/6kᅹk|߹w߹w߿?+vA,y]A v҈t>Be>cލRz_mV؟JeD6#r2\!cGsPK2/MK4L^O!z6z)q,Ya]5tCODC3̠ߏ!-GhNZ!MU}[C堌OurP]DFΠ]JĚJLC_t rbwe_z(V[9 kJPvCvl׭5 d|EgF]rҽiF9U?@ozp8;4@!F]8UEx%I:PwFx-CQUE0fs,#TEq+?@궫ً9yd+|\\|() /!r(jz+,_\Ll3?mŸ8Οw^m2Muob}#&/^nuťu *AaU0w/蒉SHxvٱ43抹RI \TBv^+ b1C L^uUASaTϫ^Me8S]|%' s&hVSfvrrc˵40^DYMJ`PyLJm/2Q4{(I `Ĭa%tImv=3 ]%wDlp材e ÿ3J HE"Y/ku}:Ou c"o;dc6kXuK=a+ә,؜ ]Ò uO `-}3:rdZqԧИ<u*cT)c" >ܳy܆gv :]T{@ [ՌmJb@ R/!$}2!FVGln I#{ Y)T6Q2 b坿XuՇ]"r +NWw Ƈ "ґ !B71 @l6J̌b%A|)͂ה+j1X+,?_s#CvVaD'[pS2GI IiݔKY6fnbD<mSۭ{ꗑ_m<|iW_/?H={6n?s:ڿFe߾3hu}An mQ1-#h w<=zCFprҐM-L :‹bޒ^: '1t ɴ*.p17dlM5P'GfB`hV;#gdpiFi)dZ* _/6F/ZO*tć%ņJ3na$ H~<[(ڡl6`FlFPOO<`DΗ-80|ҧ|V zQ X))| l0+-Hs,r kxᱤTB~[p!794x ~aډ_Ԡkؓ"b)YUd#b(/+d+[FI,8FJ) 2£5{_Qe| `V63q2l/g aOj*B888 9A(rNO]%dmzݯ: :zJbZsT)5z.&L}33ɳ v=F($3}ry`N]* \dVpv=ګUeYwtv]2[~.0|uP};#%hm6zp KyZ6ZJ>٥?mRԔjS3rq%BtPDB G]`CV`K7!tK# $ Z)BxQ1K}r`.u(\8esF&iwՙ;Yb-%f1y;4ns^R0({dI؅CÏ&RE&,qS$Y,1&[fgOz(P4鄕9N 0),k!IKǏ0拺JM9@(:z 1 W4"2YaHM"cb:X 6O8Oܳw9Ps79oL2樞2!^O:a?~DԨކc⹝RHx WMm| }dtRac2]h`Q<[}xWc焢+F9&͡pd ( t`6yAս=^[ydO?88xS˾Ópҷ-`qGigam{|.+v]{8[0i8/K܊H}/OpŜ aEelT\vmGۨra6W2Lzy$c{jyQ|(j0v2qH,v,V~= A>s?zѬ֛>`>vn<@AaЖ=T2Zy,ZB`~i*ahxc‡ )ŏ^&z=o?sUY_I CMW?)rI$9r5>9汪'6-ܓ FD6j*pwg# r>oki?ZZȗ9In銇sݛCʁByRp򛆥G/ʬTYۺ7hya>'IgC#& w#вƷ^[eQqt S md&rHBXQ1]SœHll403΂^~):pfcWCH1JGaz,8C>K#¾r&S $t btrV^NHE> glHs^ۓ ?[&{MsN뺒Sa]%`i'QOx(zwF{ƙڷgS/O9 Uu9"f<xJW> GMALbqo]+yA뫱x-954?qkՉ[k Qt'}ry[s mgQY/bK'E&6w+MH3x[Lb@ 7Qoוr)&l%Or|%m" ,.PXK m_k\&ɶ9bou͠u WdLI?[L8GqBrzN4Z++֜Ia.Bu[vW|sƗ#\)?}sXzVmԊpt+w]< ^'mV22rk2BKHğkA>78m,6-~z=[mQM!ݛʨz6?y`f>yM8]Ȃ%Ýo Z1e#CV ӯ5ՃѨ]vЪ~ -e%uς*+J;Xh=a5e??Q4 V^ND!}9p䘹0%gPi݇z=J] R;(!mҠ.ڸWudgk9g9?sϹsE?x'<#HG<<֨} D7wYw<ƾh4=F8{r:5Nz$o'] !rvX94b1M^XTj'LY[t&~`qN#Oue3o)Ԭq&>;K4ϓ*}w/KNpKm;}M?ϚM}Žѫ4j~,|u ̱SXfIkbD\, O綘s?ذִ0k44AA>\l;8`Η/ߺmo/pUAY:NZ8 o!:kJecy$( ξz`LHGuw0h`q.TΖH vZ IGu[\}k÷6}7E-qbJ/Jt-D##F`Af exd+6aMt]Ү&q7-2;{L*xjFF)eEѰ*Y>䚡V3KҪmVk _tJO @3IM[ƾ8jwڞ0لeskXc&ZŧXD)F[9醸*%VQ{ίe0@e,"7S3#.%qkExӃ}|CD.Qq9hI=qF DGb~foϰ5PtEO&.Niޜ͸ɯ׾u]~n4uo\|z{gy'VUδ:˵z%քZr0SڇGyol?_o~檟gk}Zgk}Ϭ mD#^` aϊTz_Զ6Jt):4ȓ\%lȫ 4Q^+$BKXUxx KRq 1pxeO^w*Q~ld5lc'Cgd4s8Waj/Ι,4B |G)Diu@ R+dDAꎜp+\>V/4E%]ȣҭ<.%Hơ}54^IY4ܷb'J(-fϩe* n!H A~x;GSXԡ8GB$h ,HBGh0` #Eo4X"QW_`UzZ;4K Vjt;K 1\Ue4G7+$ J9Z$"uO8%j̖^a(]2MdH2G!^,v'R;:؊2hs)bj9#`@H,>+4Vp۬~׉'ɧ= 3P] hf&Bb''tk}Ol0 #K!6r.[ . j4r {؆xxK|<y+fƌ62Ε- |؇Z0L*wzW>gN~騒Lm]>m.B< ԴaQ)myK%Н, y9w7R, L 'ӶuMwb(Gc|`D}DewaD LN/Zhg ?zH=6cJ  R_Au&DDxzHa]xۖyCcĸ*lƠ^Pxf<ǟF;  !_l~;ǫ_xi~<rA)_Y_L?x:ǏV'h_Y+??AaL*+k嵊!FYc\2CX><ֆج0{xvۂ6\g'C;<~[da,?Ϸsx@f9<~ cK!ϣ(h% n}I0H:-o żRC(9A{v^ w;w(ӳ!yUk{n_]PdiW}B>?"!d`Ntڟ\]mt  [j; fi;Y|G |Yų--u8DqxzS,f3~3;/J[ 8 N?;1Z-qÁ@q!ub޵F}88" U:qZ0" dQJ<?.-ϻ |/TB{VcZp2΅ʯ8{U jFpЂکR)s28Q,<߾D'3e?n1DWV0ʤ/*》xq Wܾ +o({DE1LGHp{s F+@΁v^{YX˕6૴104l06.GSCYp0ۖ g\51xv*??0??i5fOFL:xrb{q\z ^XGʆLs6P)Tk:b9ŽulxMZ-9ܱ<NUeтBFe'wplezRd`@3qrMp, XQ _|ydY.%: mAĽ=#2hKk z6o;챓g3_3ΓO,-^3gZ|t9  B^G8!HsbgZ%9<';\={%]WLBZiPt|>!Y ,A;;]|?3 >"0