#!/usr/bin/env bash # # Copyright (C) 2011-2019 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=531a3903c5b643f0bf810bbd48445202 # 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 ]' #.f8FԴ<ߵ&+$mGeYe-2u܅W&-8.|@pLkjl2]J]XOMte…l3b8i _19Hgd8&3"Z}⬱+ CBAaydMBD:Ǒ|qA+w䳱:)e}$҇HR2jؓ,)e";qW_ 8z:(\I%ܶ䞬~d3jg;O #U{GÁ"d++^[f%{%y44BDVətzNX#"OU$ʀGJ.A&p},X۾j_'%GPg*cU"AI\F厤@aB+mm69 \IOh4_e_t6 210i0QLer})A%$FQ( * H*|!;ϵH%P ̦SYnjqTP:Oq}/#8"fD׹ ϖB`|3\k{ 1s>8Ԛ ` Oq솘SChF%+ &9čB߫^pE^$'( 3IBy&:|Baw||)_:k5 Gߓ< UnZQKi YщL^ {:d=Z!2"WpіɃb@J`r @0 ƎyĢ+ N)LiarS+f dlR%$CE?LY1x9+d Bt{.crAmꂴ Ez5{g-HvF#AJ;0ˣ t$Vn%%Pقj^&he*i5娬rnanNg !M+4JC0e XͽJiI T+loݽsY6WP-{u_ayDpoqs˞ca4x /ə!qzلkA`ZqWjU-' ?4˯4g(3Ȁ%*9iP&3,Z'o g+7d r[ͷˁz|{ HdDR3)7W)|} nf3y3_# W0eR(in+6$7Û7i[t PhE IB5hJ4 FC4viw>$њ-*qkK۷ r'>$P== H:>;o+EX4 %S TtiݿD"I k&ZuE(}YՔ:q_ݫW{4 62WW)mB%`yPP!LhVIx44{k2X[=UÌ#!g:BƜ.#7oI#MYFKk}&_*r I"e D|Ҹ!tc IS;`ݩNȍ V3 F8|2W[wP[C ƲȲXHij@Pƻ% CQՌ5~5O\O=:R{O_)d~jƔGV4_%f8bX/4Jv@DlaέS8k:/3C*JRbSaɋEb>"W'U/daÃ|]7ȿXYJ/߆ͯJ)"K;J!4.2Lan.M+%Y2'bDíI'Y^eO-"h?뮽%Z-u-H 2"ch B1b^()l&%]w 9X/tڢ\54.Xrnz(F R S1Do aCgTLGx<>0u_|/9ZQK/\t*i:,7 f+ /dcQ0D0c~ b5G zXa:RQ #+(+1ys LҎjY):a[b> 2?63H /,c"k O6M!Ӧwb 6LD-WIq-"-M*X4Oh$D*\Z1 (-zچ|WYWƗiALkN 5@m/T;7R|Z@b^Ϡ<e݀ebcO8lJ<5[zQߝ+~__________̑"aI=~(8VX`QtKQv1)"[۫3W`A8T%<j?Q2vVy'?utGUG:R/ Wj*k}/)`羅Vi)uN, q?Rb}pLԛAQ x4rla?toԱ?O=:h~rxfl 'ޜ3U=;U=1U=jp8B,F^|̛Z+lk mE.Y !s(90V!ݳ8~! +R ?I[*jdΘ8`? !ó~ +L7ͼN=(6Ml`(jI|6DG"!28@ }|Tl yIiZb^*'ةPcEƔ&DZsbRްj5XbND͏@ 5mk>5eFE]ۼXN~K*t/IE~=ad VYʓR ςQ Yhh% !xj<ȣut#Fjr#,pxDq@AoU1<,tL2{c% DyS kVp-f'q83'*I3b&V~('j֫_OD *DntCh標1"MGԴ GR%' e|ݤ"'zt CL%tܑ5rc-!j)by&ot.D)^K-36Z )#ڣQR,7n9iࣶm&XXuԌt>}.> 12K-g lр[k2iLJA+F/s [ROj® 2ؕ W(%?"D›?KH YV9mdK^g,cu5&:Rߺp̥AqTL"T[ ٰ$T*QȾngv??{|BԹu9KYðv׊hَ[KUd9Ӂd^-8EWߣLbO?h`mΠ+o;iԗzasY&ޗ$_ 8l=xs{_m!a=+* gv*+8j\ /xj%IU (hpvre2%a %[ج A2kz >!>cu]X GXfElJ스pyHt6J7/iO}'(C(0nKCN.ja4P^Ÿ-THb]@HR"#'ZvOFs?fR_I:ItRI4O)6Pnn0XۇtUT5d@1HxGI+mVW0p8n X?zPF*k;:ƃm-%Mdن>eF[BmurUATGYrKn7z w~=$/DƦ#vabvC8:]R|ч Psa+lt -M8o8BH#7*uH]. I: Zd80z%pH@60/o,&_G\ᄣ^f08]2h@jk5+#`~T"=.09#.iZQݭ)qիzԌ9jfg< aw4]42En ɀC`12qMPfL3L5w'оA,#HRuZX2 X.-Kfk1;N+*-|zV++|K|(سgPGp@"%rԘ ϨM:.yUܭ]`{PN4@I/+TS!cSr88n69+B&u \Ɛ@y:I?f,يjnɟ~# AZBAQs`f#ZGY9{^nIK&|Cį; rp.R 0߳ 98Rr xAq.XϕxAdtW(>a4IDSUIu+s(0/=gyŭïQHdc*&QŻz?^^vzt$ ւ *ӨRcAyVQ ]ji[47I5" &ΥJVB;KܓxkKI"7^M 1zQXDZVrwBً y OA?~gyoXmyBapsý}N,#<1s+ϟ7|3^#w)hm:Ąqs^06UfzDrlS%XAn]DxN?UugqӰAU:VFΜ+Zpw2?NG.sygB(rZ}@D Nsp hڊUK vZa2{ظ vGWϹj;/}~zbN^.' I=E75 ",{rz/$C&\Fp6Nﭵ?tQkZ'6D[{vb 8ôc r'"h_NR!ObZJ~08 (7L]Ukt< su ^4BܻtSd^݈m( 18 . ؕ ?b0d=敺n:w5d?=/UxjAWm*/Jn|8/Y7 dZPGfczcںLVGF^?'?n* !"Vi'=uv:hKg /=*kтuF?r"ԼRJXl@>3!2khKM™g}^{`@*aݾ,Z*Lwa,]' Mxސi?,6LQ>pi^.*kdQ?W9Cy @*h=ǼnY}/*an_dKFыݗghoQ8i}fEJ_=Wڔ8QPFcf\֙-8ST6/AO&U$rGKvR_5]tJh/TgUPYV˘y\Ėm 󩡁s49t@#b8pyZMT̥  9~4S.IdsfԷL =4${PFf̎D҅7  sM{Җp* dn+&:lƌ Z7Y2 ;[n↴)Mp= lUuLaYxP߱i76tO~R׈I rM PK$A=z~$pl^2˄R0_RZ)=9 ]i;FJ)=H7wWۓUlzӢNmulqGIgꝤ&%BM~8!_@rPYlCׅzV+=Hy-KYw.WDпp8ę-۰=#;_4(t1XV)".HU) eSz+բ7rFTixQ\KYހvH{1EÄZV 8NW|*ja8J;Q:Wx;\ȅ)^g;9مl|yZAF1*c p/̕8{f;#h[6p8rEgawF*5+s4ۜju 2ߛX e(Ԅ*zR'*^)# %*,K1oԯM7BCo­:߫u`ȿkIk AZ>6&-d4 089>?UEN$D$W1əԾ ) mc 9eMIdpE&[2gY+o[6H^VoMl:0$-u2 3XѲzv,ڇS/֛L˲U"ZCV#ʬި'19HKgi_٫*-x~?܀P/"\\Z o*f_8^%Ө["Sr a}$E<nu|va(i2aGBjco흽:۽[/մ=|=8 MMSk#WݑStjRGrȶh3c| hBr؜5y~ݬ{]4%ՇbC2U8@/&Gd<=}7rE{+-'(([[5`0A*s%kisٖ+/ƙ+.0I4􀊼8a?p$-)"w~@AIrqk`нׁFƠb_8 I/AE_&8:" !hhgijy]$tQpR wNܽl{'4*V! cwQ8&0Slx/&۬@^|Z@ 5c6]:`9q 51/xO\ %2A{<5C Qg#.T+YvwOGV ;[dH*n:Bmomz_ow'&AY9(rd9TSGZ iڏl]ӊO]}'c䲸OWΆ[H{]#-X9%cݚ硘LꬅUtܶ;LDWq]V~!* }ABq(31ӍZC!sb&̖͏Xcw6D2hl?Zʷ.H( 例G3L0J!E=N9P_-h͢+u6+qtUu-P徥3|YN\ <ugg!K"L֝X܆imX\T5tnܮFD]Uae}%_=S?M_ e?2&?3 ?g3?%:VF׭.{YOjk v5-q ~7c{>"xG,yY J hC˂4o F(Y+[ 锑gk]ڐE2 BmCG-qpM<:`]x Uuf#$Fo{d,{ү#8_6z#G@Ӌj!+$B248]9>5M&Yj*<{Sh)(p`* f7F5 ym$cA!,dV`& |8/t@I*p»MʷD_v]Pyaj8dt`ѿ[ҪZ8V#q 988ގΏ'qz@*[sJfV sk9rjH'-ﻙ|r:\[q\-=\tبٽxyzP㽃/ Q3e+nm7n*1f42 [8}j*a m0{9ᰠ[hzey/ϙ \|>9n :X hA "9;3cCkLq'ϩq)>!BQ[86!UhIمS7O^!ybp>\ # &12@8ec\~4- N | _ԡܦg=t@`f /C8^ggVqz4ج0 jJ/L Gh*|r^,HQa+\Wkg񸮶or4>=X0#LEY/PEwYH'zxGdljNoHY.@BƽHQ!::\=tޥCZa"ik۴4i`IjM^-d~/&3djsQ{"ehJl-:z e%eW';$1EDIh!Q=&Rjv?1R L~vzXF"iDW\e L>GLtd|Z*F>?a=!sBQ  `ښP]ʼn9?+JU¡k4p'OzƩVRx>kDVv d)Pˊl, &u[0>WU1PYv06VZCN>KrúNȏ$䯲^Tx5)`p"BbCY,[IAmlw!oqFFW 7Qo4B)qz&ēg>EcT`V7.T8.͕AYG갏nb+sы]!8ȳ5Wg!B6n"\}gW.=<"Z?An+E&>оݟp1##DxL DeD11ϼ2LnP_s<"@k @tu2e.j$wQ9(Kʉ![ѕ/֢t U"WF t ZVKG-3z;g/m8,kzW~wMf`?˺kOmL2R_oK\Y񦦻+- -ģA+ஷK'pǻW wj[p͹Ϛ*;5ĿQBu;"|k gvՓħ LnlAPt,s)c$*}ksPs5JEH"/^r@D'7hw#_6(K睳6fg2,-էjv]9?ǎi7Y{t/1<|Y,g3f?YWlAHۻ,OH 6p4hx$WV'}$xi Jm%͆E Jq<2r|1pjpar()?Ǟo.Ŝp7Jp5āeZFFIVwP x6({4xSJ$l$S&myA*:g#y@(#9po o/Uoy'e6/eRCG_'T}9.e+rռ62-`;# hcb8ꪇTk-f&iڜ>nj,6%068/㥂ZG1[P쓴:1H; "7bMgyqU&GXSsBo%œQAx#U/R$려Qa6eMR>NRV|G&zBuښYS| Vf E&3aNP5oa?J9-GkY(pѤ-pe)4^va&xI/2T5k;2jh:N\$|N1o^uԍr_ס *Y,Cz5X$uW.g5~Y{[õZ#yC'Y- ><ҟf#L]ak Jiҋ+S:աb*BM#dj_lYP KA#\&qt|xk{{$BYcbx&g-jW/6\f5lXA ~E'$\ޥA I/+hyG߫ h2PfnzkfS&R֑v?7*N$'g3{=g_ܽS'x^noݓ8Fyi;17}߱3^UM?uތ7>mh |0hn^[+w^UT*f,^xZb3u(z3a벋궟\v΁0rI{U Z(Z*z=PUAnP?gVdvDRx&uH139܂fO[G΢lF|t9 |[]w`<^bԘ$Zޛ'%,%2oF+bhQFU.ڿ?^6!P}o%dܨ;a=h=EabT𒸣}qc&U@Z{)J; 0>;::>;AX٢Cy}$eA4PDO$I=\ 'wջ{i09܂-y?r'owq!V?Y"A5JP(倂fJrm=QYnB>Q}SZ|?VK>pyݶ.Z胀97SNG<ޞ@.D>-O;W](Psaz$DeU_I%;Yqq @]S\6+sftQY?4nAQdmr$а`kn:ni1 Мg1J5ש/g뾆뵤fȥ~_,᪀--pڍ= 1uZpehp;>?:>6 /ZjHp;҇sc}}i\q~' H"IUh0'<0 }&]v{_4^"Ũ%(5(ࡍgx=EM|ry9xD^m;j6 injziu? x qZc_{e sY5z?ʧvhk7c\4ܒ0_ѽ?O(lD{>0{Q6Il{HEk!$٫z^k&-z,Tm#2۽ÁoA0OG_A<@:*||֛]gM$9k%UN%_T* sV5v5dqKQӂkQ#كvVnWg UlttHyb%xqkIݹ\F:CTj?tFa F˪ $. YI'VVVx`V  f,,FsIXҞ#0Pf[C%N:+Ly" ,sqR3#e&lgpL+$r۸N+ة2h:ô0Uqe$^:#HU8òv. SZ;/“F"(X9^[f蛺u,A%£}Nook{F(63d5&6a]UE+jɑt q[CK;z? V[~q^mHU|j7B9Uh2g%S2uZFR`kD4h̑R/ll6]hOBOsb*t]6dvoNq}œH«5\_1}Zx֪(O -L{&!>+N|OcxN j_\jE Q ꦘ4;Arx}z{AZdzPl1_2MPV^;>,h(.;Pi,r5T*+Er̈.[{JNVKKR"ޮF$w, m*hpU657V"s86ȼ+n -h4qSWE2 fMU_ѱ#>Pe#>ԛJWRU !1yK$"<&AQf*oHPSHU\lU1A~7]M>"cV顀Momdu#Tenr D2;ޯp'kO2?<~w;g3ߙ?3/HA7?gǁߒ٘;9=^˝:aB#uiu]+[L^drA)I%ZؚTnX%^rq|nq,g%sQE[ cNcWq$FI[ՠZ^X .I-rv)}Ň7ISt7~~˔6oy^f㎾(R/?ܵ_ODzK+RA-f! qlZ:j? ė /kRnR%Td,|rA "h$DCB9$  ICdWB@ւ΄&]gim=}ߘ/o[ o@ |61}U^'/DۙA^Ϟv.g/X&t#eb9`-/D'i.:Cן"(G_GɞvB#L`{9#x8T_f(Z|mr$*v\JEPb?sve%X:tsOz%Nk/\e&Ї4@@ RYO9sVL>y=3 {Qzv<УiF<~@Cm[vnUf,r3g:VufWl!ԁh(g*oBJ]:w]n?V}.C~OĩLweiU'j H>TWef\އK^5`ӕf9=KĬUvLJ&Zx5%%V2$׎ n\u{~\/cܵG[r4 Ex4QPr@UX,j'jkaV_K,Jy"'ւr EA RaXe(Wk5 *dnȶUtݷ/ĕ9S0{YK4P> e@/&K ZK`_Kx^L^obkAOC9bǬgK|CyKV>oHbJQ^0Sڂ%c5:.ݟUTuyc%ڧaY2Yaa=7`OMP%,NZ*#ʫc/"U% 1䩟}$D>SkÊ-8V:;z T DV-e"[lyRUl%[74:}sQf_E)tu?ZPB0'_qV \"HB_y~`hh+"lb`ӯO$:l֨Z@ ǹ S$@]7-@htDMEZyi7Z'v? qu/N? ѳ4` j.zAy:Et'o4g˺s`fG,k-'N+)ܪ-m1 #YdbqQoIjp2seӕUUgG*V-)"'~<rGlk3mDz .W6q$1cE 5: -D||1}d9A"s:ܘ"gu#g-ׯ m 4݉u}e2.LiN^9kWp5A2vK'CdRZZbxiɽ$ލGUzBpF\ (ŝ2T?~բ}PP B%TK{8P&Y$( uЯD`n1"?ufd8=Zti X};Q2v+83Z"DwnսRC5 :wA5;D27 f7*~y9M= pwSNS/ʠAT:=BU"s=p3}r taA*Ó=f́ƢsQFϕ:4,CFpQHH90k_+g[y`F֙5hdL~qb*Vͭt|ogK8拆Q}]{[!5i<rgU'xàWqw!E P`aB?yM–rÝ܀[d z=$үpSx{1bVvr.ׇT;D`.ku={r^^0n*lߒE~Ym'rrk{wK#8g{$tX:`K;`ߠ$SILtFf`Yxerw=RJ>%c2ɋQED!0)Euˆ;zTº.:UÌ==޵x_0?v/f7]kO,GBgY,w;EQf˩U['!ݴP" ˄bJa( 30lzTI{ g)lUؽJҊL>/V%4xzk8xuvK_n .丆Eywk8؁zם!o0G=Z*mNkqs v@ XQURo(pdv)gtpDR{破{y~ݓbݵ>?~{T°ygxo6 ȓ ;c4y‹ih WuwP+ #xY1]L?]@I v  fA<>8x\ }Goh)Fq)CG~9N<"=pؠ427?8[l@ˌm Rxu˟8NFrJ%QQ6VG̗ 90h}a͸冶{|$" M;HcS3 ֈ>آ@K!ɈnI]y gӡ~߫%ї_2SY".3Ժ&'S]%adyDqT!"|COQ |bcJcGko这/rlO5Da?j/'מdOg?Z?3ϙ%`f Yf%`95g_ėt @ (`61C♻@QC[L0'WxY!R1VLo%Q*qݛO_Pk?`3V-K.j~g ⣥Cꮤg1UA5i %bbIgVybWGӪ=i7)hR$.*BUwҋj qf8@5/C+TuruK1fk0P?d齱Ɛˋ1.@hv JS8V PsU:>inb9.1X.8>?_Pȡ;ͽ gu)Ba*G2y&.KURbKM) D2.:ᓄbzLqy8(\[̨oƹ X1!3N*rUU(j Lq1Sx(@1nYԂ&m8KKa ĝ>i@F˟|4<.6&=\&N/Dn-Y#W^^&^B/Jy}y)Z嘙WNa)D>ﵐ8ﵐz {XRċ,'\RYiac>=$ .fA5sߙWS,|T^L|Cc`3t`l!Ú/ qyC$i3'5uȖeӉETX>gd{ ۹lߞB}J$*lv7#8KT6MBvw)7[hPcM2* U+3“ k.NRr inz0Snxu,"z'0: 8n.$L󜌯P 7K|G +2:PkI09x ȓhuxҝ5,)t@L4u<PUBs0\-4tdVɭ%πY-Ƕ++9*ֽ'H J`{&d>SdnoFtMϦgcU^= okT1/>Jc?Q-l*@ Gh問vC\m6L)=Js-A97GT2I;e#9U[4WmRp G v3,ӌa$ft`Q֖- 2pp4=%s|A&y Lmt@c؊i:muQr|Z.FQ Zl701j?VpqyBo BI\0چnA ݇wI0bQT:l bDT2,d@Z*hZNT-`M"xZp[Ry6Xլeut@":}i^Zj%'Z7g?JN5LZȍ,w7z QbpZt||h& n2z^|| 9 AEB܈s d>ظR݀ g+irÂɿ@;ވZw'r_nE^|}:Q_@֗8K8plņ)}YR,n*Y, bЖY0$ﳺhE һӀA(a<<=E8a8qy YX:ijW`!ubvҤ;juR#aѳpv cg5r4 Sʶɧvhr;3~W%|/^~tg/ (^5'}[G\g3ߙw;yμ~~agӁJʹ  @)2yx -8$"X_2|ݑC^Ù-/rZ@VGiC"3t::arCl!˾PF%LmQ$d4 C-jG}^!l'wvZqW [3IZItpްHwk,x:Ψ%ȧK1y,Ծ)ͧ.._}30/l5@*$ {êӭқa:MqWbfY]>a &|(#o F[5p'm]`+JSǏQ&ڸxFߟOݬKm;瑳7A #jٳ0/Z_vOp}q:/ǝDb@Fe (-?[Z$g^^.0*RW{zj ?mQ^P괺^b!a* Y#G磨Fϣu'Ib44x{ gP+"l0w}$yq6?+]!O=/BM?c4)\IV9N^"vFl0RWB"#\a#ᢡuKu܉H6nwDP%P>oO%ϧWtX+XM;.ïF%"Y|zP äP*9BC椸gZ#7z(sdǮ;vcZsц"9*"X,N%g-7.]&o~߾jS%S[ F%ٟ^Kŧ7y{dT紭Khwq8!1*7JE!=Msk0ދTJVnVU䍓\ҁxtٝV-#9O(mdĖWC_fg0+c.)Ä R/6-^p.4\-tQc @]ۢ 2zcm'|Pthe?LޥcmWVW?Wf_uM*UXp l\C^ml"/\խA91mFA_ZW̋/uP.?,[˝f%.W^ 6ɒ4._[fNMZ.7Sb+wíWpi܆"Xs5:U#\F'ވ;B$2{rI.5ER=RC$Fr:jEAڏn'Jy6{NrY+? cthHP{S(I6ouF~,^ èЫ5:{_3l ZpkLO_ 3 R_]0;`]Ndx]~X~h<68"~N&Ţ&Fu܃|zh[ӗ}~À/uxzx/N }8;=_~<ޓ/szxOnN89='[\.`)s}Wi[~OS擒4{Usw㓭60%~L>-O)ve9.>Ύ_nsӲ7v4$h/E;`|_zD!2V׭r[(msOOpADyyON.-1'3Ĉ9.bMdœ\[]{n9B:W9wv]ؗ}nj.[?cj>DJn8:y/ז8ʹӟvڦ&˭AԌaV\[yneWOGԮ2e"hr"uQ\ }ݸGS}]}xLRv _֚!:* -(Zxf1ݻdyT}7GDgkEѳg{噼f~r\)ozj42HpHq1;W#HS dk0£x~0@֐%[~NS9"޿@Ws+pHS k*=>=!Obsس ;DC:M;+YX1 pҧ=Af{n{ҀYC|?_ @wt!02]E\zYm#b"z°Wȕd:'ar)ܖD,!G=3iP$=4WBsW#^zl-)GJp_˯9XyLu] (-ru+3&qs dIiل*w5XrFSXP46]y3~f?g3~f?g3~j0