ࡱ> `!a=Ir+JH[\xitT.6=g $/ETZAAHAZiM 1 "! Hh }# *MszfY{8TR;Ukצj=937;scs3&Ӎ{ 7K>_.]*|>%e:._..&@r h~žw 'Dн맘/9[GnA'~WΏcR̶pXZ9( [Kg;ɼ>Q8W̏9m?yZ{x*bwSҲ|sG%׫'ℝO",[W#Q~κ@ Dp%x_"ǯ:P3A͛g.NS[G?}N( [~î-=cڴnjjZߴotitcӲQ|;s~fz1G8ѣ۳fYBjq"~صMlK64϶oa:wl-ǚ>Y(1[{AK3N0}Zmo4׮4[73[6|i2 x373<Z6:s(V>e3lp_W ` a8{f~'bxH+Raڤ1f߄(yW{u"Xhۀ]ssǚMǹG_Ou '뉲c \Wq @cz󏼞Ny=A_Ou:I+p 0 m` @^&9.y=m iALZ 0` @ 1m ?zzy=A^OW(Ҋ` ` @0 zNy=A_O9.y=y=A1_N*yc1m` @0 ' zNy=}=}=A^O['R $1A['' z 'hy=y=Ǜ 'c 48{@0 z}:Dž ''zz y=y=AǤVc1A0'z:Aדy=}=G^O['8]+` @^@^@0c iA^O^Op{ec ?܃`  0 u ''8 zNy=_V`8&c1A_OucM^O z:Aד1iR+d1m 0 zz y=y=G^O_OsLhJ+0Z?c m ' z 'hy=ǚ PZ` ` @0 :A^O|q׻ G<(6ZԼ23t=N_Ou(>_at8Dq#ݷM^]\s kK{y=A['*&I+P{ċũs\i4= Ġ>֒hcN0O fƍ23 k̟c͛mRR9sfQlx)ޥ\̚\zD!hLSf)f&if&c(VM*skD'|_낭}(1r/]t}. h՜|CrKo ow׿= Kt9Q 懎 ϫ?z1A['vpwvǔٵs4w&r}`yz7.]*pLsph1wiA^O['>ss~թ' __$6P^'e>{^]WUd:=Or?č8 / 0 pus?Ӂ!FP}ˑSM};8y@Ֆp'1MX2'jh2'z:A_E3?s9V>~,SRٿs(o)':k]P T@\w5Nt $u(KytQ{xU}ÿ4w㨵cMά.hefҐ 6AbuLZacxՆw&7߳sZM0 / u1@栭qMuL>͙Μʖ>[6nu:hvmd^4{(#E4޶,B,o]wѴ:V<9У۳Iǥ3!zxքy筱-̼SӣoƏy=}=A 稫7j;ma^\)|}Cq7{L3Bx^|6֨q|vn݇LW,}.{eʉ8%|{|ؑ{o}Y{"C904DǢ\m%'7!c{__#h]p ݻtprs`ϦO֓v4o4lXGt@n\*h߶iѼЮyٖg'w}{?0f(|9dLLc^ݟ9&!4f[6hk8sfP^h0X-YD^U >ȉ#ش t8VظvKj|7遄DmҵtO ZcL0Jw6=ln9u] />ĤDc1ܾOнlsO5oX9QɍNguhҸܳǎ6[%/I|R__:6hP[=̀/R Sf>1}=A k55r1w}Y0kǧO+]jֿ#9{z=;{49lF*-ص~>^*˶M녷BS2]߹#`1es'G:qD\y9gyA^O[' mk^U=:kFu]݄^m0>h~^ܼ6Bni]BmrW䔑PxnEMW{a|b $ǽfF kP$:knfn9k1yDž` @['۷:ȷǣ.=?pW. _ݢC=Guڷ+;Wi k6~CU]KOz\ɫFGWo^I!?Z{y=m@`4 hHyWpߊϖ/N5zw+0Up1@$ΰ}ez`MZ(jcTR+֖9KcN׻rNGh}Tg A-UVz`ڄS޷[FC= z:O0Fei+h&s?.7۲6#rp ] {K3 ?[zA)@[WH•#Oq'[#w<5'Dl0dBqEC_O=@ 0}`  #Þ==+*qi&tr#cW qa3w[e1Sr2d/ˊ iQv'yjU9 ,MFnE ˞z Qu%Ԋ9GJmؼ^sfv.\=rأnJJL:Rhsm ^~mӤS d,{kײ~z֯p/0b \ `} :PA\Z&9&@Q3H<4`Tph8`_ܹL63N9} goI~c7(^Jf&wumد 'hy}ao :+Nw1k0ˇv5#c]\]{1=WTsu׶ucC_Ou|_1io"{j}Uu!W^O~wRn{_uxg2{^  byYp8o~ڂra=5F xΞ >bhz|jP N\ո{4Z/@9)yw x9)#p䑃y@>XM^O_O1ivRۃ1@u|efmXSZa~zBBSdzDֺ Sg h3x-_͖d @_O Μ.Wx{Io_αecgwGts϶ B?vix fέjYK^O_Ou_=۲B|sO.u*U7N_nC[>71A__ctj#}۵if|>!= MMBO3 ;6;F^_Zk <?L8tٙѽne5g[fuߴn'\S,VoߜizuNjvR  q3z`Sƭf{o\tFۻ=Ԫu޺Yr86d] ZV1}=G^O['cςsGq^uf @Ƶ+nNB[֭Ȟ<@PmRjEw~D?^zr[g\\V3_I?};`NW]LP, h/ɑA^O['cڇg/tΔ vA}$s>~D>k5lXԩsSݳsy$ϯzuB%b B>rS7\SPglqVG_:lI{uq4իUkC\V8pA~ڼ0 / u1@acWWލ(Ƚ9sgjZ|jo=m+X:GrwCIMO'5:rt8Vfɺ(1=myt֩3ӉR玭qu6G5;:w0nWqAt^X☒y=m /Ook!cݞog4_G[N޷Th;?3}!ZU+/?Hj:'P;㥢AqJlӯOV^[`{Rw{7fO59?/Y!5$ 3]^Mkzz ǣHVGz59VL3\/?yr׾8\;1{^?Zߞ҂="sRbԘo7jk_(xG0^s.;ČBl Tʻo;b`gz? ?u>l\*Q]k}HrR=,f6t=(9px׊0}}'vrġ=jdaJ/\*X@ӥ}v@gG)R}p> ͬŃxnWzz _ד^9~iӺY83R7=fΜb&}̜>ȷ:,J[h9tzY dhu{)7/ԼHM@ieߏwߚ}4Ot9͒!z;[.ˡivB?ͱXǎ}YnuhL-̌'oͤ3_~9'滓eZNח#@jT`lM+מƊ%iNGpt-fεk^>ut3}Ƀ}p[Zym5ڱ,?xkTWykuܔWٱQEm=,y~hQfMz~K z6P^n_f(.G wxsazhjϛsnբljRC:}\u ?Y~U|6 }vWT[W^)vI׸:gNe4cALZja m:q땕ZBb}J~(5^GCf !^^GGܾ/ϗe/[;>YDAL{{H鏭;kfy=1ޮan( kB m ;nkz\FFzGZgtݫ:JZy* 9"E3V|58zs.Nq@}+}1)u_On8Ac grKL Hn@ =QtnGo5%{{^s1 h*Wiݲԣfu&Rs>$=Jǜh]Tl-S\yC ܇'%&9}c{ Tװ#<%s~cbxjذ/i:zؒߓ1e=o9S = Rr77+w49ZkuϬht{ޢL}O SMr~1}g쑅sB8'|m9|omX; _qkD~+VtJǫ`A^W[ od =E{ڃ:|!G|[~zLgUtsڠߋg\hcOўz4mYm1~a^=F~j߿qvoU֯7t/#~4t[UquW p }~:k}p]+ZI^OgvvUKN['''x}{s/Go.ǾFv4#^>eu,GXPmjq?ѧ]}>4s\sRln'Ɩ?y zm]:c/[ǿu~OǤE_Q͹f]Ok1=\{>kߎ-}\9raAu:;?k]|+8|4iI1ykӾm3a:gFR.5l0 dZںq>nP z>wnsu|+/Uz5/{gʕ[k\wXTgX[x]g{Wh۱4ۏ'u{?\l\=۲L E{9M3{&#= u+cƎt]?^[GvX;6F<|}Y{:.}i mNgy{%~ox1>;zõ?y܌398/IcsR!/}O+~a nSPw&~ ? O6` @0n޺IܮZקپ9V_ q4瞼u:hvmd^nj:йbo򰦭)o]oM8'#J7,K_(t3W&k8 u 1g9ƥc玭ڻKbb xYzw>HuyaQhRR2 }u[ءqzRҟѣ ZHZ4}Rt5j*ʕgޗ.xdY;}筱z+%qi'R{cxQD>2=$az ,d3v\엃w{axkU\kLbB61d)F{mZ覤#'}uܺ9n[OHTV7[Ǿ[y=A^ {54w qA9;u|+W[nNdܗ{TW}-+b L k {AJ 煿K6K p`%Z^Z|k |Wg z~ght17#ϝ:qL=۾EXl\聱ևmpcHh}6pEu9n xmF4:e @0 ZwŊ̒4G}j~('7bkpo%c͵74{#۽w!zQhwڵnuz ożwyC)Z՟,Mkh#}Z;ul%e3m!-zJ !ߕ nCQSy{^ GϼTМz}{Nrf BIǷBo9Y[f̨fCx<|s M >!:.\a-2K,_ú|{΃ #=  xm{vcFbmZ7uzq%W 9cI{Z,gk֬nr?_0k{>y}65_~}2];uغk>ipٱi m8fT/kF~Z8s5 ;I|3ߝv k;<GNnxqJ[1y\;c~S/`qc1dmX狭=;b=1>ANf_ȣ4n"cUпXhyo={@>ao9|bO>^> 4{ѽKyD#VwG ~g !wr+Z|k^Vw?_?\b,|;ƫC>yee~):՟ G=r?ykZB>|Cup-0_oy8Ɠtz'[-C |{qۺ Æ {PCn>קּ7>Fm)Og:'#epyhs?:ޣH{>v?fsZ\Xs5e!}<|G/O{^ oM%}2T^KݤBp߯orW+~b_#O57@L58>F_}`٩}9>"z.X0'bI9Х|WϏ,M-Q#g¶uiPM)퓼 Wu嚏ymDuJ, p/}o+Xc_zOGd T+y oM6#4U?Þ_}?5~mԊ|UOuvHPu G/yXٰuhl[i׼ߞ?pZNyٯM5oMmEïo=9HϞ^;5({Z0 y^@nW}"oKy/@_-R9r7%WkfN^O_~6JZ͊ul[fDz;^y ݰw̵ӣ \/vЩ_Td ]qk/x}vdCZhQm]s*A|cJh+]cz_ռ/gv[x5-KVݾ)~(<ru([5WSѻ}m+@/>|p?(\m:0 Wo՛G@^_{\._=aWg*"vH-zp*O<B(&2R̈!]mc$" gj7[k}ehy},z\2ϩh@oJ(}g |ۭ7Jf<'bQ配:ӡvbSjЛ[{xs7XtSիV׆y0Irx:w~ 7Ȝ<\=[x[Yӻ[1iO  =5b׆D~N9&@}h)7,V[7MV#j2D qֆ>a۰sكS?15Γφm!5ap}<S 0gy 9aOWCom{V7_틭VnI['' z?:@ k Q lrc/[GoNz 'h9}WskrE۽5Wo`;vӤ㲧Էٿۼеi߶"v w+駚7_}y=A^kpں5_2y=A_O 1ikGۗkk-ϭ^quv <}KN6ful2nH Ə|"fO(=:,x1'[ωVZxl}ؑk=ؽs֋ {cc>3!5#jZ~ܘ1vK߽{v:?'NNKuvnk>ٺbî2Om=pND/]K^ 3Y|2mڼfYBG?tz!VCfƔq&asTKγuZC{wI=4ۯrh:\|sg>ٺC:>&:KX+0d cz1C>:MLVڞe-4Z6}j6{͘ln)Uqش)͎-͆֘ǛGk0uLsw{Thzv'][6j{|ՓTcmxmf;eϼg[x"}zs}Aʠ>ڷy3ޒ*jWϜ"\jmdiz^uL'9=|vա㎯3e{Op}|?N^Ofۺi}ܶ lf횕z捘' zn>KdyǢWDZƭNetN0J^sʾXSoݲa6:d̑w|#p/Ǻ?9.Mp_Ry}xfLZ䲫b Pj7oX}vt|3{t_ 1A[/۟9:ۗnDʃNZ@yzbXGNW mo_K2>y}غ̸m]8 zGv>Eeg~05u:Bs`6ߟpd~^5XG<{"=ޕ&)1ќzzu k:_lH['' zZ&E .uzYK'蹨σ }4fN/kݞogxuIym9k/gGOO9Xޟ<5y߯ׯ>|ٷ3k k΢_<⚨c 1@:la%m_ 2[g @0  DC--K̩osvϚ]͇ ݀/Hn[C׫zEN[ڵkW n@ڕ+[|ݫ ͙@^O^O^_YǍꋭeK3|uz 'hmBh遼5ys=W:^:>EXǾ9g\߯V!'/A[uE΍뉲c TcJ} z3ۇC#"r*>Xoצ?׊%iS p+O6??޲x51xmkiF[g '|ԉ1Ýv' vP9>jN{ϟ6РAm|ǁ/OuˢBޞ'Dް_JnU6lHۺ"m 'ףgv {}(<";{~+f}7 R{DD!h#bჴyf-,}+ZXs;b;f}ї` @ul[iDtzhηF8Gtjѣ(4^v#nzȠQW4f"v`Wty{8Ge8S9Qu4IT+iۺW'' _1s3|UEBLZsC[R|9e8igz[G}%҇;X4Ԉb,N{~#w3=kE֕_ymk>ҕ*ԩs\)A;cOnT'yNS-{Iݝwln9IpキKz9sUjV,=6po$pnRҟͭ"ㅺE/=s Ԇ utn9y}_qa[DnEu+sY#F^O~@^ ~_޺lZ(&sڕgxqʏ^ƪw k>} ՁP3Bu&.5gObsOsUލ؋[x[ F7_틭Ou=N^dĤ?cJH_kkEy.9lʶuz.:b};l]w _Gt:۽u ?hy=A[_Dzu/ۜŶ֮Shk,;[yl_T[>XW. ^LZeW(G7o|~%1WGswο{9 ծu}O2&Ҳ` @^@0ܣ_?\ kCC^rͭAc8H? /kLo8o76-[46ǎr>n}aRnf^}Pt=1խrb敗HeK|uب^&[O\׏ֻ=ߎ} 'hQzzW}~:fͫں]{_|}Zrܘ>y6IJ4{gEE]q _;k:y=A^;?a?V+{szu^bw&O?M7,K_(ZZzX8ۥ cn݇̌)L̩l31;wl-~_9L^ fMx~G5V);Ne'̢E)+0hZJ c}_@L0=Հ}` @=@Ng)|SM'5>x!9~EFߚ;}_xˌ=<9Tۋ^ժI^{ IһTj Aϼ3O֭cFJP}^xsyO9!{ֱze6 ''9hEC y˗j:vxZod=&xsxثy?ܩس[OV^0oSC_`Es#^6Rٿsڂ6R>ٺnuQ}=QQy}LZdABt`Wq^#_ǐKϟ9Erqcz][6_diz_FSgǏn^:`Z^\ǰNƫCd//?耑x=cl]s[C<=^[|Yk׬xksDEu\!ww=d_^ݟ3];}Ə.88E{͡knFYwoݲWra='#e{{+'8z`p_+WJ0:tHO^O^_m]o7oX/]4̎k͛5dn' ںvkc_y!fr%jT[{E3TN#΀׽{u1=:kWu|[~ U{;0=;u k:_lH[Gbd @DEusPj֬.R#urxon\gfN/kأYyFV_/sF,OVM/m6zq(~}ɣ Q!ukKދ5f6d/؃}vzGzPC--K̩opϚ]͇ d|@y?XWkP7<zfԮ]S `^u西v VwК{vy/IOO% I+PA-}5ԗ_4×c^ǣ7{jV?ոދsй=/#5y'&p.7kZi*Ӱa`P2/bI9ҥ|WϏ,cM-ۚ?l= /5 0m '|ԉ1c \ (Gx!b;xy<{`cl/}~qhKB;^ g;uˢM(D|RϨ_aㅹH[g @0 vy()E~k'O? T X/{5Nok1|.#Z):`W8_;1:y=A^Oul[fDz{>߳?7kT ԱBC~=B=?˂zȠQ7:퀯_ocAwuc)c .{ УNuϻ%+"4箃q=mkO詂?Z,p1sUҵuPm:0>A^OS'_mk!̗'/?|j%:hgϔQyvDύ:?8|@/+TdnBCw.ٟ\;C=Nv<؃/ '}uyEwNn_&' z%O_l5u-k>uܘ֥س-K5|+~ޫAشnYVfu: ֑OWO;uxmu&ٓ!&Axa\>!w{[핉s?Qžƌt޷[hصHځ[ER|uG: ׏[oT zG~@ֽK{mz9>W0J=|}Lr+ܙ̞6ԭ᲏6gNeio|"s롽$߷oW1uhӦuSٳ(kZ~rDO?p\z'[~C?KS}ׯ_' ںȋQRG>մyI]YCr|iLޥKsKymf}[7-3~0#Z{gU\kLbBw />rWkii zl];nֱeMWů` @^@0ܣUˋ\Y'FO/ {>ht%#ϝ:qL=۾EX0=ll\czZƦorWGq_0k웣@\y&==1'[Wq:}ȰgX} 'h 㼆F~XoL.93ޕx@~nזM?YuJxB~\ͫC8Z_g>wk NA<טX0kf ֕Goݴ>n[|YkVb y=A[~wsO5sϘ^ݟ3];55jـoE:1e(y9o}%X[Z~*׋VH#ޞ% #\[[jeaNޱQG+D>&@|c%q_PM /``f' m })~~'R[j"^{`Nuv/nr!'<>rz8ϋ]K@"zc3:v/?磎曓xܣ]ff{mٺ!۲93n[A{bX@y=A_OuF_ϞA\ wܙN Gz~^5ȹ!{Ƶ+MRb9QW<\zvݜ}Rwi ydmX狭=;b3_OWZp py]c _}~/7Ak;sxY|;ƫCGC.:2^|?>1z`yћ}8wfm|݃C5g+o*=1'[-6lY佸m]aCb~z1A[& =/%wΟ/腧N][ڵkb:<׮\a*4ׇGͫ_G}6cg7[G,rF q:}=A^Okxp'q}2'~{xϳO%ε:>E'_mzQINQkpM%>ں>/rnB!/I+p] 0 T m[}Wp@ z?h+WJ4ۉ}xЃoLۡ9p!ނՊ%if:7]X8U^- ]/J;xm5jzs#%f*>`mޞOwC赱e}1^y=wkjպ\̧+> t~%v/'õDlݻC{0m +~L3̜:W}^T`t7@W~<mkyVXit3}1hGZhѻ{v_ND}9'[c1c Qo_p˗$bÕ/_8jtuNcrsx:1onaP^c8{=^KKci:W|u1N~N^Oaf䱮|ǽhP߮j9~ ѳpĐ!-zHԧR{~zP z?tz7$I>X-__!&VZתh7iRWu؏}}H~>دhHwGP 1VPbL.M^s9omOlh5oְ:֘h1ewIX$8r1ϔK;}gYSMg ͛!c|=q=[8;΃1|fMnQlobũs*趞kcLmP|}Mv o/爿_ﲯqrzkO9/Ƚ_C:+ֵO+n W`=/iB~Uz`8碯yv?88ާ^9kσ:=/Cӏ =;91@Iۺc뗵<_l=9oy=mھ^F?[s>WW}~~G=9B'm y=y}iٺzo z=zQ!="oT{\}d0_sn$n'ZdkG6/t xТG'o=WCo>:I+0)(}vo^r}c"ۺ{}7}/z}Rg5̵|>G<;F@+[7sVl22c @0֑{WO;uxm=y' za{[kN?G{ؚO7ƌt!xxnDVWjcyIL{ zl⇸x~ݷI[G] z}&ѡ5zo۴^O|2t],}fL<;3kл=Gn97;_]ÃqLZ:c֭Xoڀ>$z}Ё II_bug>A^@0 hn '׳[G# >`|{\o>cg?"{`/!?z=@ ݞeVMr}ׯ1 Ioٽ>cO?<oqFy=A^kqzB ZzM; z=zQȱ!orWM[O؇Q{TWy?ܩس[ط?e:Gu|)8yApmi̟C^Odߖ1n[5ox[G<|=A_O1i=}Aʠ>uz}~gcO;B{k&,M֎qМ|9>;~p`י?ߟ2ahڵk WUns=դ-wpG.f @05߾ume][|d @_O0ϹG[/ sw ׇ|=czutԨqg.8~y<5FMd-Je]x,YWNp !--9 !M1#̋=:wy+oX[4oмB^OdZyúmkK7gM;kړ' ?]ׯDw}9c5U[kV \k>/v.e۷cC^y.'rii zl]bPesfܶv:/_l]5E T]+` G[GۯOwX{U^pK\ ́]np滓'o'PM3u^]d<߸vIJL4wề\L8x?=1G[6ց䞝}-n' ںsc}f/={s:^Ϝ:^}!w!Y_J՟ G8xjzoы{gF/=/Iz g:@h }z R>:laC^ܶ1ð!|u$' zлB--K̩op~/: N<j f*R/BpXW]?j֮\!=7q{ />8 ~vqD \W 0(h7j/li/y\#hqͥoԞ9m_ȸ8kz\ϹGm]/2hy}+pJ+0qp3sW +QY"&(NgkW-o`᠎תK6Ы6`ٺڭ=_u=7nsG7ǽ*~Fט4v:Z?l ؽϟDO"G?ɑqRO6}6>L[/;"{y=1}>;995N.ץov5's1daq3x`rԕv˄?}]mݻ_AEGLZ%` @0=m>yk^".unGA{Mcr|߈!]D}(Q nf">[5O:흹}%]d_ط}iQ5iRW&z_zhcx7hP۴iT^c\o^͛5 #=Aw'OJL0ݻysD-u|0}iy=fLgڵifRޝ&?;@~{`RN7sߙ,c`Tp-i97#eu|xcy\^P ѯ[B0;{ZlZacy NSG A7\kc1vurXWoxs?G7ױW#*=K_uwv׿wkY3AXl]m[Wju[ Tm 'hׂb}!s綏ͼշVό?vKC}1ks%/ 4.A4%mzEus 狭F ǤT2}?ѧ]so޿2\<EFzx6uMWG_ES1cҲu]3_\{BwD\ϏYͳ9=[s#z{͝8|@{trrۏm^A#C ϧwG)K6R՗_>ٺ۱om#/ zGk5r;'{[k~d >#}R5̵ܞmY fWq9t&cӺUR+]fu: ֑OWO;uxm=y'/U@rA@0}taac',mͮۚ_,Qç9A\͸1#]k6IJ4vmQp=ځ[ER|uGxmo\?[GN zGɞu6 6oYP3W&=p+ܙA?6p3ʹ7XlڻK};txw{ k=…s zl]r֓,/u^~mz 'h /ֳ[G >`/|{_ڢy#韉<U3}#o z_=Lyx|N5{gU\kLbB9{7tSb L>rWkii zl];nc 4 kn0ժUg1A^@0 ۿ"8vϋ_K>8Du@~N?w19ll\cek~9ݞ U9p'#-b @0U-kcܶkbooCy=A[/xeP5|7)k߶S~"燽'fg][6dizv7wJ|q~\ͫC8ZC\=֯G~Ey_m/vJ_l9{[O^ODEu\!=czutԨqg}лNަL%{͡knFߋ*U7mZ7uxwȧc_9{+?]gs9E|f@``  ټa]EY}/@dO0 m-5!Gg֭?بSm݋[~ fMm>rz8Z[p SDol|FOyr>2 i~>ٺ`Koٜk |uPCmݝû#OON~c^Jj7;ͪo4NdnZ̝YvϿ]8/݌c>q|}>T|ik{w^#tU+:uTs{Aٛ*'Hݞ/ڍ=jRS>ں'/rnPCDQ;:qAP<k aU+Jl=R?J^Z_)N3o{U>ywrR?F.><k6vHl˹s#ױ^,g'r.6_͉;F^;Ⱦ{cXucu[aAk7V)i&^+` DzYu0g[Wk8igsH6ky%ѵRsGph?1;(kTz\y=mZO6xU}G|m˕+xy7?=.>ۺc/[޸y=m=h~L|GȿK/ kGkLݝn:Fv_ ;veH?yk¯w|ӥSc(S>&@r+Pkwb_f$c%_lM]#ss5޾x^~z<·?Ocu>$yc͙S:_'—ç+_8wvfmB dmX,\81'[~C?Թӝ:3a @ںT'[>x!9k9wߖkǏ}ZfތdG_>5sZw{Z5]^$&$;:;k.}gNoSK\F᧥-$'}uܺ9n[OHTV7[GO~z 'ht wQz{kϥCsOM_Λz󋹹Rmloc; V-`o<⩆慮Ϛ_CoP9Qtuoa:mo3B|C>yO5[C7ݵ}/vחK@7 ʢDOu}S )l,,DT@@KDPd0ddDIfdJy.fAALH^/ތHFfdȸq#ɻ^{u 3j*I_.[mUwƅjiћ vperpUps͙!ݙ#.Ǐ'{w9kG4x S=yQ.X01'[|mgOMֱ>A_Ou76iyעm/G?v{ B/kv>Şm ̬ii^wno.\aZդ.]{C94ú~{OEyo.@ ߶%#j[WO]|u G[ѭ԰׽q/]Q=>;ʕ).pZ8®=}ZK;<ڥY֚))`ܰF򍨟(`|j z?mLցmdij  / jX3}'|z.|3zlJrXkd.C.r26JO W^?r?tn0 v>q0W Hg1W,+TXV{sב{э^:fHj6@_(_qE)U_liy=A^OD΍r7%";Sz^5hw쫃6ܟϟ}{$xkީ'j*VE-y[_τ_ضnEuzt""kxswݛ(+G4ֽ{1~xk5!gJOk7'ޤr0׈3q%۱'m1>/<~[m׌(+c,wQm݉]n# ,Ϻ1@}$h8)9FE gG>Vԅg\<_@ %"Θ,@{rQ+bз{vUKFsnٯby 7k5 zGϣn3M7L8Z?%m<c2vO!z(yF?C XSAn̳xs/zq9=v p4m[>͍ `?܇`H۽=[9zz'>NQ 79^kȼ76ni/g5}k9qFON5]8'QǫnG' үn5۴zEAOq_>}^PGL?o߶y 'v1A0kcQ] ^SWGc瞽{s\۟kqQ;UgC&n*NuΎS G[fԫծ}r֎C>yRK p 齉V/NFz{דhzu=fs۵upݮE[''z? $PX~>j= eϐSu)oXP܉G1cuՋDc_.Cb ` {~zA;]ja|덽`_\sjul_}!ک;׼پ˄H}P'/%;D ֵM+Q/?壵ugn' z8kFwϻwCG{-߭߁ɭ|2O> 5ۑcܕ"6Pp =[̞5 ֑OW:&j }i D0` PNس̝Y dM|[Eɻr̡}N=llΜ2߮_ef͚a2יK~߾5Y޽\w.gbcʕM1woܞ|@Dm 2 dҗ"`o?t>j[﾿́s}G_z} 'h~FLٲO'K>%?"au[sLHcΜ<&}dMٔ RNG}=VUާz;sLŊ]ײuRmhw];{~ٺw8}^]RzӗA_OuGŏ]ĵ9?jXkLʕZk<'=uBޢIp? zwd{lJwGk9k+Uo׮t]׶hDBbSWvɊz^g֪U|PwV}c"m'ktsw#_?Z4o$=[|0|̩iJ{Xw߳-[|K}thOz Z<;j@3/'kkKښ]ׂ>=[ ް`s>ٺgo,[$|ӆ:zeA_Ow |\jbf2ЗRskGܜ3ٺзdGm/?|2m/޹}=A^OݰkS]DZ;Z뾖~ Vޔ׮٧@yYD5NxB-_4Uc疌M~ 'DA^ﯭyv/vn닭Cm?..|+=yّYjoz.jo@ =+L8JѫC~>9'cٝi2֯0lP_y}!\5CgN=tvUoqry<0_Ok!zK>5fЯ/񍈴` @p^F =tovzw|`M|zc}U0kW>< ir۶jj6Ji{kohm )6E c=__/>|uEhul"_l` @mݽGıo~>ezM{gH\g9CqO;,FuyGC[ 7A^■kں՞Y:y=A_Ov>q02`'3n`kM>1;b;chpç׬S#cj>wfŽWK:͛h%g]kZ</zcEUx:7KgCȠ=v1=y?_=8q|ib j岄/Rz,I@1=ʳh%o]CzN^Oy}=z׽`^߾wim:ۉ?Srx?Xu+]jwE eH+45`&14{sD_ۏy!QkJ[g @0 Ÿ]}7O߅|9.v{Ϡ&V/[hztଅc3JVEںNd[wb;y=A^O Zp[k>szI~ أ_9; V~1 ]Cߖ+G[/׍^"'G >) 3u#&nN-@\0%m<c2vO!)yFy8Ƃu}+GXul{!/}ޞezk"ۺeb `n^RYjA&"k7ZcڪKEF&5kcx㳴GWݺJ ,JDWbŲMW-k;[t[zbgz䶮{" z>71~d>`+؃y*[N{pޕ܄d:Q;[W[:;~z8m~"}EH-= D:r}nq)]C/{B&_3炗_<8*}{55js]AM|C1@qۺ},Z[8'rq z{ۅ+[Z:|'74?ԁG؏:zH4O8>[±{͛[ʺ|. ׂsg k߬YI^OdKϷzX߮~[;=0Om݂ݏKx;j[k3.|>W7Y\v2wCߓwzc}v:ٯޙӦM&/H+0~μ]h{??yc]ϜܻlGeh5'ﭕZ_{7ნc=|9gGXށs#Rc;: b @djDk=a~:&n\zzm= eYGMZٛ8'#O7)fق٢˅X,k;'Sj=T-wQs~X3xGޮN?m`>}JG=d ŒyO.yGEmt26ԩǪTgXZn`Rʕ7rxdc't{зa{=]u@Poٌ>ٺwo+wToӌ1c1=s\bw5>Gl ^P_]>n=uBޢIPw2=ne;|8/}&c~~ٺgo,[$|ӆzO8I^OěH+p{;CZJҗK֦}j:׮M3g#v79Wps͙!ݙ#ˏ'"k`wAy=A[/ѭhpWtGoZ/WSiZ;C8 ;7pH?9reS̊sYC`n/[-۬XyԶ1À~|u=y=A[w.ZZS;Hm rtOmo\0KjoS3~=책 v/ &V4joZ9{ztc{- xv/^9y=A^c,#q|u{y=춮K]ǵ%~:>gV`WP+|Nh |= }=}}#}!hgk-d @0s^yvl]z~hm} 1q#d׭?KqkeC?_5Mr,;}=lhV~1On@{c=0Ϝ9=a%dMMa(zL/b zf5# 娡^0Ddw{ G6Hښŏ6z`ӆχǿYUŽ&z ym=Qu % Uc#m5yu޵mݎhɂKg ` P|@^muohz%׷]s|*ly ּν8}r]>?@Y9֛Tf{!Dz/[5DlvI[g @G8~Ǯ#-{͈!pp\uÅy>O>+A 7'߯OWWߛ&fKvn57rKϼ]t໐5ܝ8|-4=vp7hSMީ8X퍈H+06~9_1[Jȭ1ߖar7cD| _N1'0[2828gg~AΑL_n]p4˥m"54k0۷f߰sܯߢ:l%so%lы]m~ zGm O&D@e cx]ҧ_xq{^&/u}Tj>֍9Xt^Qsz~a`~:֝k܋K^O^kZ Ut]ݫ!ϱzfйG娂{nv6p^iAV 52k~k|>/G['/ H!},} P?uնyښZ\Pgk>גiy=y}qۺ9ںy;{iA^O[n[GcWϷ'pk욆wb$'/[WH4eDۓ{ikπoW=Zk9u u w[_~!کٕ';׼پqHkg*W`͙!_h]3` k=a}qc^0_lsWnh;^~ y_.9H-.4};rȡ]~ۥjgs371SF^E >:8rhm Ϗֱ_7Q z{ۅa;g?sJl~ox:YW9v~#r!?x^)tAyFy zll-Z[$QgRZWRh8fRWcfGf9#6)fقٲ9cjh'|Lɤ1橧jỈ3fҸ?ODR{ݑ{$߇϶/kZk{4/` KN?đCQz6s?<֡a @m :wheʖh^͞oQG|jZ&rms$Ϝ.[!Ϗ^:A'̒i_+ ߑϬU>;1/7syO0"_?Ч-95Tr;5l_ڡ:z3 qw԰fp^` B ߋ"o'.P~msk> 5={sԶf"6ֱA^Om?=o!WZ%鷎k kצsFܜ3 vmss?r\(9š52kW:H dGm/?|2m/O^O߶VH8h}-{󐣳~W 7:\?fMK8rz8[w@+EZo 륋@|>?`}A>!g78=Fk몷ӳ/Κ<c1A[ѭM}߫҅f5jWʔ3p=oWM4y.w( c4ʖ3Fur p?.A^吝9:ڹ/}}=A^Ob~Mj!'f]Q:^YfQGkC~XJ8°A}#sk,!sQZW8}찜7kD^7'u͊%Gm3 [gHD_V`Hc Πwǃ9_.Ivo:૰N []p-G ~>?Z~e.^sYؕ: ^nhg\1_-]䋭y=̶~Q |7=5&51 gh=\}<nyߏXx? hm]ki΍QS'뉢v>n}[4wEDO}]o2)+ذKݾŬX/8/0 >?0}茵֠v-\b쮇8|3S&7SN23O㈯N9d&NgM̘1ۙ3יO?fƙܟՒMdx_ΟezuĩW\ql>?Aɱuhm}҅Ia:n2O z7L?L3LrDIC#*y~Km} f8`Ujw֥S3}ӳOG:~غJ[ǽH['' 0z@3ip< ۢCiƺ `ܡ<kAߋץ'Grj'no5hh=5gBrT󂟶sCG` @0 'Hp>MD䐼E;/Co?Qߗ|=>cGWpp*趮}ugozn(@{R&M7nqCiBw"r`zz cD}g+oZusqGNG kkMvЃWyǙO^3~{hHl[#&#B[''nӃ1@5|}4cG 2iʜAD݄QCd?ja1R6kW^7yAD!Ur\Ǐ V,'}`GGom`x%>:c}"yl= FoK.j4$káϰuNj^۽/ٛySPSonѬ[c`gi[Cfvᗭm3/iCQ/2P[wi=ǴMzH[z75gOo 0_׉{ⅰjsT۽wK $O^^+[.}WlsS7.tHcn,J# 4_+` {/ym]k1o{7h}3ű[gO8s7:;qpy?1kl7u埝?zG,[Wϫ=Tk׸ֿ>[^}͸Vep-Ho՚/m>"@ĩ+yAϏy>שo*\ EMJ` @$?xf W~_jQ;>y{H/g7 Nߩu#5}7~oލܧ'Wl}[ٺ?鋭+syt9u z"IyGCkNsg485^o ۬[T|ٟ9Yn|;mښ6@/HڥYl9;3c8l˯/?S`ݾƾ0fz:zJy?lW7͙G}{iik`먗ik׮4#Wî?x BDZ;S+PbsO'xtּ߯?s^|iSvu'zmcsA^ۍ'pj[e_Ԩٳ<">S_gٿG~*z_6#Tqs8z[Q:=щ<^=p<&'˗]5>kN~k:x:tnuoj {Hd[''u'g+ow6O> O}=ԩSys9~Ο9|aОf϶l=WN5k:=+]zAaېk5hPG9&'⺆Ml]9K|ubv:3zШlݮJ*:kN\ owNOv':GDdi.q` @0` P?U ~ϙOh~5u͹a^s/m_nV Ԭ"O_cSV~myjN֯r5wps~+]c V }kn( 1l`Y[=/;ؿ{=x;{m]G$3O_Oɩ W^9?\{E>`SOsY|wwj iwaq6{vX!ښ!~\χF^燯.AKއ8ƾpNo?Ə>4;z6&ꋭmVTn:Ƶj:N=$ =b͎j z"l]cȩM<^82o;@ߎߥ9,?s뱧ȭM8Zryr|W[`[qmF9XrӡW;c5Lg\<"9<]޾.J^DUV c ؛ӻ{'S# @v-߆?!cJl7(ܼ Zk?Qc"ymuxMکO)A- kLFψ@m̩N1U?ibg)?13@= hyQW VV5n=@ߛ6zyg~]3Lspp|rX@sH/f ~\ cߑtD_l]?|l҈A,y-~?){3[]C z"ɴ%Gz#rz]lmTrV75_/wqt3iR䓏Ϧ+υji\nos?|mN<'}Ͽl6odo6;sͮm[BkW}ef׳d,_ǧ ͚ž9fuhwm޴Τ3Θj2 &;c<9ۼ` {Z[tqſCӖY|/5+?eV\fN?lf͚af'\W~WnijE >Oh[''vw W{)" , jم}d/k#{P7uv-€AJ{'an-$Ȁen %WL…l{k囯b#g#'6XBnOuc?` xҸX{{Nj~~u6qê/]Q>oRu:R;DL niRr3^|1'¹geUly*:KRrnWc=y09xg9 v'kڷVzO*sw1IJ]~W}y<ںI3M}u@z\ؐGWW`l g<,nZxv}H4I!Z/ڹ5}`_7{[ﶮ9~hucO+q[/ 5By}ia͎γyR [q$Q|ޫ50!b̓|[}ui]Oku]sPEy=A^O Ԑ?\N}nI@{݃g=sgؼ@`MV 7o`_Cicغl+|~8DH t^ ŝ\=H/WjFhш\@ꖯ5qMz]@ LWq5zGc&轄@Eu$@j| pdz~e^Q3mFU:y=A^O;Oj럒6Ҍ1H`( MI臓6)=8Vs;9J&+tl- ;K+V,gx% }ۍ_[Qʹ:N.m 'h1t'Ul^ܫ 5ϼui&g]*x3/8kQE^@0 hE8cZ>^{6f$8hm]#'zz|\\sa<5{cv y=y}|A5bغGmDZJ qQ{V@1cİu{.cz T8vpo\GxMdziju:uzz ǟ?ޮM36ٵ/5o/+5z8Gc^mZ; 0 / ޣ_<өRcf 륋N}>^>fȀfʥ 1@ryXzgV6a5|7bF^O^>{f}͘ߧDJV裥5?%msގͲf?kZGo҅E_0Wu̟fm1}=A0O[?GwJ}0ӵs[kuz?ry_O9>u⨀J5|g271=#u8^Yy=y}bs>)ZC{ 8{ۃ?k]C{1FWWKr忚v[byi {>lgJ%OO['/Vi U ryW1?@NOuߛyѺ~cىum K q#E%?so@{]֯_a/cU5ZsCk'xE $ѭG9J.0jW8AaSNN[/~[:y=A^OhK'5:&{ Mٲ p9v{$G݃9XKg: I¹qH+069{p^(yAW c=y0\tωiή8:>?ևSѱqr^nVrXaقNw{nE,`˒KuǀcC^O}ۑ;y%֖<_.^q7>q>#拆3Jmk x;=}9S:m$mH['' 0z@G,|>t9FH? N[p ϗ1/]t }cCq L5/`N>RIb(u~.dɱ|]D}9{$h|=:&zwzduP,I['' =H}>%]ыM5͚thҸAp^ihZ4o$ケCfLVMZ 0_{ \P1}8)}= nmD c;sOG#CeH&` c0uhE1XA 1yFMxגmh|+V,gxܫqo=mdl=~K[g @siT4נ5Ұ1ti?4%i7acxkڳEQ-(#{cXsu"S@[/G[''룪f3[n1Ce=m36VA_g1cΏҏ(nO['''(Wí&a8mq t\v}A_>vX|G=A^O^GD['''F:ѵYtYï\fOdlwd~йO>tm5y=y}PuzzoMW gDZ'y}ϋ/"^ 0 xXic_POs=3&ׯ_\~sKy9q<8{]ѾZ?~̜&|!GzIGL~it>1Eۼ$ԟ:{Bӱ] 3kZۃF/֗{ 8y@p=cU͹3{I]3` hm9U:s#-ʹXo^:p3:#Ǻmծ=^lٚOzIim[^~ȡe"MF׆ϝa^n _s$=reS̞[^dw2;J49>N^O^O֘՚eSO2wd}js?d #6SQbuվa6׷%Ud-~ d# rlW{wc>'=q`}~p^?n^o{4Po]Ēثz|cG~֬>y}:ܳO "V\=uԖN_' VN=rX%?}BڵKdUx^GIu=פ^koeuӒflc3c]d=tX}3]ʴ}z8hm]Fux8z5Oݒgr~厭ߨ{I旋yO֔ FGq`6k)?楈cC+w ߯i%wש_y9٫f q#bF}y6^z|_/] 7\M?zغo^<6 rZh3!M=Socg+Hyp/<_Ѱ_x;gธϕax M={^%z{A-+A5\>ci¥`[v_Qb[*]q$_9=z# GJZD GܾO~չ^@,ESbYW +-o'| Pr/X{sj2au6t=>{w.zbق۫c&ԧ֋|MqHV`PZ'kIgmZ+ZXOmc~BEYHlZ{ȯD }m;&xg7g&TI[/9[n$bJn_: <+A )Ym^juוuHsc|]3Pi`do/{Nyuj̓|Ph@wƳmv[m0zz4:~Zƫ5eel:[pm]w^C={jK;Pczp;&hCǤߚhs]1kҹ É#Ƕ VaP+PZU %3/N ا;؛߸EOAzoX:",O}{Q;ߞ۽:{(r-פ6}|ǞԔN&7uo4EӤqӢy#'`qFyvm[+7@Ͻ{KV ''zz( ,/w=Nuy}[9N}5kI+pc/1SR̹35jzt߿\C>^lH{abԈ5!;nkDdy=y=AדD zG%8{Dzm{[v>~8߭U/[fW9w|ԉ3 JWWa2R?xȳ5 'nC++>n6ݿ{O=$hErx}G-NGBۣp|r?sU1=Y@ׅk^4ʦ/Wh9} "Ξq#4;kWڵ6^q45}wӤq3f@~9[7o0v\RxqMxXC^qXzkcc1V}݋us27[4 ܩK%:9f89y6z0 5К96Gm}Y# OCbY@s_+^]޻:;USX yճ+kך' {{5׮;:}Kz%^H+P c"1y=A['ɫ8y=}=A AUcN0 ' zk7A^O_q!i뉂8c NA^O_Ou ''x'V`8/c?y=A[' z' :A^ϱ&O*ҧ` @^@0G[' zy=A^O_O_O " X1A['' z 'hy=y=Ǜ 'iRك` @0 :A^ϱ&'9y=m "Qx}DZɧ /  1c`n iA^O^O?z:A^H+Pc:A0`n N?zz^ h@0` !0 u ''zz y=Q|}DZG 0 1}=Ny=A_OuHT^V`1A['p'iy=m i뉂K`  c:Aד z m ' z>cO+` @0 zNy=A_O9.y=y=ZԒ 0 / ޣs}=A^O z 'iQZ1A['' z 'hy=y=Ǜ '# TJc1A_O0O[A^O_Ou ''x=ׯ ص|y9 \v?W+@^@0` @Dim/x'\w NQr>+\zy}=A >H+pF` @$ǣQh kׄc}(;Ϸ=8=<3Ou ''6OAB >l="cQjbڵvvg8:O?]ۤ|A0y=y=AđgZ: ?6'0I>{׼~͚ ~U[[}'do޹%C~6n`oH+ZOc1@A*y;rooiyR^Ӭ fӚ;yC:}{|l嗋 x7ڴw_3Ty>uhY Sey=y=A.͎󕟞4Ɣ+l\w;j*}R/Z[NK?-\^b7OI11#73& J`y=ǚ 'O1H+0ZD9mdS}hZwڙgv;kvԮ]ݹFx!}JfGfy·,_lr27׃k۝)]l@/o(ޟc1Av-py{o1녯̜frMb'u#߮ƾwΐZivm=hN} hyTrs$PkM_1vGv>ޡ#Nӗq}j^b.$p}ztG̩>wr&3QR {ЉB#{7c֫ķwH_uW,6}~PcÔxNCv$br۷fTkeO 4;l41 φ pM\W R^_uk^~&*U4)A-};rs7Nml{mZuѿ8}_ǽv*O"=lI- D1:x7c,3tZg<K^߷wjj*E]Ë&,P}`[E6ocׯ-y} 蕅5|ΞΉk-J+Xd&p#[?pD]`M,Y հx+sy _2sgLz#޽N#QJm[l; ?Tϑ~ :ӱ>x_^(n@mX%;&xhDI:Gk g5~_W}4m/`>x=/N𰮏x$Xh]K}-V1Tx[?rxޏDL |Gi,G=LQpH`?%k^5)/?x dڪGC`Ѵ?Wkї@?gL'v?%m0jKڐly?xC}์cYW+0"?2A ~$փZz%   "u.j       "        ,V     @NWrR v-_zy^Z~ ۾/ZG!&71_ ߰s|m/x=Wd~9C c?F[P_X AvG1jۨPG^%v!T[V~OinR5rkX!'/bp/l֏ŃTW\DS$ʡ;}nac_<:[1t=߻GNC_l'\_9՝ _Y -\'䘯n+O&̋/Z>f9,\< j8Ic hche7=u_a?l ٭Ku+)Z9 B ܼsԖ m~M ]s et |uz<)冦EF't#{C= fmZ⑩ژ gψMcU~.{fOv55eU$רێO8ڴmԨwY[;b뺑ڹ@paQ毾h#/۵U~r}Xѵh|.^;~h6%m{ygNu{w[4uy4gОfC6aP 9y5jM㛭SDa\biFy=l汀M#׼fbβ_i sA5%yO7t,G$O]ӰA}Esu"ai̇ 4{oq|7F cd*s-juf2(O|+[Yb y}A k{MWLv-WK}a?_/m:?axlwNfќ=zckYr~el:2t\? NC𺯖 Xw{w0Z1&=n>2!0UvksM.Lݺ.#̉2Vs$95 ߬Y)B;M@C!?)9;dGLx<\p:SgH5_fJ(6o/p][3D{O\[zƏbF }Sٿ3[cao{e}#?_s9ީGe g ֮A߉ˡcYȴZ|>FppLp'p̧1_=8u'uvYpajSA{oq~GM_<mB _\pSa:4 =/Ü0ipg4[p"/~)2/~tpa8sl>sê/*Ÿ:1pa{krpM$@A ^)GG1<_ MLe lv9q5m`|ǁC`>ob k$?s ~[\W+P(={uoBKrf!+~ )qmbb/F\ͱ06RZ#X籵Ae~5+N|^W?2O`O}um߅\3'؂vxкU˕"vx\/C~wEn^3@vi|.jJyxApFqp ;Vua6o95͹f_/7zF1ǀCׄ vqX!6yoxgO\cǍk.7lK֮c-{s)،W\8 χ -1>5Cj-+&QU(}߫^}_׫Wuow 3 Bd0āQf 3(Ȥ2Aa $A@ I2Cw :f HIwV>g~k?9٧`>l:}S{jq\_C n<[{g 6*..jzvk znӦgż>?<] -7/򍚱N:6Ń>>ƊVw1?bǸoI镬`g{tEݖXm?Mnfʾ?n[f γjf\*ۃm]phs1v [SSs{Are 89Wu1::.=#M'gXW~5Y9. |-> 7ݩWy:yq,nXpQcŸ1vUgLn|XO2acbm_mYn2Aű1V_SWg6F* O|,6x,߈brr/Y`!ucF`}kF[w7c|NnC[%=r͚\0e(2e ק:ſf_џu3ƿY2Nm;ub~cpxuq0u"<+}x81v):=su2ۍM8yyZlr嗋^)n| ~~>~N˽`+ar:Q2<([~~Fg(F?[jÞ)V$V1ΗgEĵ("Gc3-6y1yj8qQ jCL ˾E٪1ٿrbiwO:1 ՘"|O~Gn<`ǘ=_DP=sljתfƕ /p2og^Y~ߢ^7 ~^gXf3vu/P>SL}:Dţ8?L_ VS0g]~wвuJWo}yyU xQə%D~Y1/feKc;gLźY,8Hl/t'_sUs[>X3|-s4?GJ-\|,/@<-O9l[q|dOT8^F|mp]s ~A#n̻'2C2ǎXyyǯ*>Gai/g7ķH~u?ʹcxu߇e_۲o"r,xOr~v~6~nn ۯ|+wQx*nq܏}y?2wqQ}{9ͣsl1&Xl㕸NXmo&*Q<-g0r(cgTfb|:_utsEt:G~nӪMT:쬓Mގ[զ̹c7?c6> dу,8"b=?]}l{ߨ&qGR홯*Gqc^b| 9cemO5Ot|כymo0VWyǣ0opf["v3cD-lӳ $sy٧fs ,ەܧM??Ku(ɶ4M߼5&!y-ݰLPm#.n4vmƸݰ ͘݌`Lc>zdcW|bdzO976̞u<)c:QrR:q"gL]zO0s1X] C_?jfknǾ&ƾJXe9XX|K|c{{+xUX'cns,,=cYef.J';kyHcX~GՇc}ζ9 AՖש9'Mʶ2B!T}s3nPϥ'ls .9Yq%'اqMf<䢔xaY6ygد)[c$e˲ۚag|Wz1_һG7 GǶ1P,;Xϫ~6n*W )ߺNw*YWyGٯϡcyfAc&e]%۔MbL_&ubp6s$3Pe*>&.dizYaf>eS8,Ӵ5yQzub*v"(҅u'`j rlCxԋ?{DZt1O3gmjwg^˾o7}g|sgͱDq̼ 7fG}'$۹mr2O U: -;V]9O:1eכiI_3 *9P/i *[l;}mczAA/YK1o/g.xߞۭ+9k`g g}#\',FE `..Vk}qO9'Xb~ 8_8 ,3ͼA|̫ܟǘf;2_]|Ќa=xٶf~Hx_6nS<a,aomjߗ/5f|a>1gZmlpǼ>7՞jk"1f~2M8m3?yXᚯeٟlѿ-#P``}/׳BRP|˷b+&T9\o߇uRȜuǰnv7j@KwY6OYx3e}b>lߐk5|e:텟[c߻u>oX0ecycw~65֍$_wdYd7 WC^k2; R( ,c+ kzV\|}Gb%YF/ջ1&s/5?Ưģ7_ohvqlsvb|dfy ֙cu.߯Yq868>ok(Z0R20WUuvڽÒQ>*z_YF2t,Og[Gkb >Oa~^GXs+]L~3\\,sQ<)j̋b`h+mI6rYp_b|Ϻ={n؁mnW;n1&fPsz}b|mwS8Gw[=,XBooH,7>6kYx},۸Ou0cgfͶa -cA3ǕKƧr<*c4,2抛ڜӌSVug,ΏL8Fm-Nd\ۦ-`αü,*kP\]]߽}:ά?~69дU}'J}=vG^Q[^'u0þ~SVc+s[_n7oܗ_.~]BUe8Gi7y/.p,ir'f*75&<7q5uMq^uMwSmsg{]j<|mWikc>} nX.;@6mpOOJ7u. S2~[>h,TśW ]ڕ\|f^RW9ώggzsD:|gͶ0uj7J'\ڊzge˘4ے՞\mRt܇ۘzoSy: ܲ|v"o>`GfLd+:Kx> &~~/4wC/-$7q(չcb;zR:aegʁ_Fw>Γ7YW`-j;D֝ 45{{ c-x䜙SŌYpsϺ#B̾(r8v,.͝.3ԣR"Q>m{ |j>=EQ~y˳w?]ߛi[OEs? {rNͽw}b=n:fPbx<*qܦQ$xoM`֕Yo!{RLyOK;~}nx|{1sgcq9l?5lmw?Þ}n0p`n-=n1ۍ_'0q n2>Pܻf e {y6Αk+7sQ(~pm8XjջtM1|m').OSּ>>V1滪x'f*Ш3o4}⾇%ǶS}MvcXB _ D"Vůb"Vůb ((((((((((((((((((((((((((((((R_ pbPPPPPPPPPPPPPPPZ˕+ZT??f+r3\fovk<f?+r@ 9@ @ @ @ @ F h%ÇyvC2;hc _XXX_ /+T!y6^q8*'鳒d{:D>Dw 0Dܿ{ {KBH `tc7!X^>kA~$n q|1ě;wg{wnAAՖ-$ Bʳ%8_/Ét'mz"S<3'a}w }X|ciU|o^i)kl#->Oo~ǹw@@W!PՇ<}SӃ[ $b @䃀q ``0D> Ɓqq8 `0<Ãqq@8 `0<Ãqq@8 `09000D>00Ãqq@8 `0<Ãqq@8 `0<ƁDq ``0D> @䃀q ``0D> @䃀q ````|``0<00" q A8`x00" q A8`x0g͆JaAlɳ=(p8*A60.Jݹ20D>00*d!gg`H_z˃{wq qqP'8~@__=z`s Zbe׶!_VsOy`0+qϳ=Q->C ˿>l888`x` +tpBvʄG~Y _u&\zV-KHXbE\bb<XFE ށq qq8ό߸ư)h!c2Ndg.jЇSƑ0!˜pM¦J1Z "'@ԂhoZ0h gECCܻsVrϟ x)8;#My22#jwINoԞƁA~qL\|aw_lh !~%7a."nZ+j3+-9$8HfGo|kRB#_w$&y]󏫿Xq z/;<| U꜀E6VXPxzv\C'i28 `0]f Y=czwR Zq A8`xOc!~Y$s_heՕ#߽w_AH uZ([_\weNqZ=trzĕ N[Q;AL9Tࠐ ߃jÇ"yH6֞維 9yYio>]GԧRW.K| ԶMS:oڷhѢQNmwвW}T+I Eak>=G C/ucAAm2Ӓ d̍t }YvՒ b80 5f ̱mܰYeLҊ!Ea|x'=qPrvƾ `H_w綌}{ '@KvF|AKޝG2ncWph ziʄ>ދt$HPCG+ft.:㈯*aMW2bXA{W"GrDDI>40¨A='kZU5K`aߞy&V<ikӫ\7( oaZz./>!=8f9\4v+ϙM4)aE]# q ?XhEu̲Eѕ*\fKcΟEXFЊDcSa7&F gDL6L/nqxo7ӃLO!,vՒqyޜXj5qelkW[3[WJ؇;a:YuP0D> ?9! =QC.3 uҥ__}";CXX-B W/_8y!*|uÍkWcN5L;n5/.37+PXVZM͑=s'B+CRϦ|8|h?gPPO&ag:u"w-ӺUG:o^ώUdliѢѷnzmN(EHo׬UV)N }{Q:^."O?"t\'N~QdGS7]5a\L_\tjգ.mچ VکޫVبQ]RG+k^ >v(cMBgN]'؁@A5b[ #F q'O?oWlH=|^s,EF'<Ù~6\#VZizڶqqQ.l{֟*0 ϔҒIg6mn]ڒƐ̸BBƍb}@gzڵ7j޼-uteJŜ9" cc wXn~޿s`F k˳d6H3}z~zM yA/(䨠aaBLl˴E}Dz5 MT}7M_[=vBdTA~q$k GXV󏫿0sx/mH\2MznSϯ{^z5ʡ筯)F?>`07UA SLpZn wSܻ}164J7?#%,Bʛ :{#nR'skKmHe٢z6o6K+aaZluKV͚5lNvGԧ1<N[mӴIM۵mB^ t? q  Ǒxg]|); ^0iͲKcqH\rsi(qE,mjRz5ڲjɂ_к1>42jӊ,{hr`07ID`Gk 1]hPFZCbyPCߖ|NM#`Sլ888`x`OӬy7~bi]2CD^_wW;U;̢Sڷ<`e 9q ҁq8P X+ѼT*fZyIlVTN) 2M+a6Eps}7}w3G2_ ><" 9]4\3'Iy mUj¹`ڡ]ʡP*GvXSƑN ~4w~hvK'\UaS q 836sFl[BE4WE߾9N8@ʞ}mӴG{Z#kdr)AAi3N7ܕ!@䃀q8>q3zz7;#QdC)S:aq 'Sgh +܇ClZ*( hƴ ΘRvȴevM<9Y^ >3j>urÃ|4(زY[zGM@?C ^BΑaaxBM灖l L}d׮RU#jՊ?җ~WﭷjH6G\z0#ft2U*hWZUs/-5jTWic^ڏX iܝ "_ R=wԠ`%2aL˥sĔJBN6Oƾ߆ 8իF_1;#vj%ҙ3O߬Y``0'B(=dJ(#G oUCk׶فv߿{.Kt٢h 6$Z)ۑQe6M,#-}ԺUDΑEʜԻ,ݻدS& '&#BҒr;*X S-V yh^$H:3qE,ԿG d6CSʹȹ E(a?dg۵m;HC ZғwvsfZ? W'ӿO#z'Ч<=W/yګ5G˅Sٹfy~9w^PNkJ8 Ã8iLʳN͎9ex d;c2jWPegO<8#qhI.gcϝ1~I:?/#M7$Ա#}\@@p$ "F:9J"4Ƒ8џ` 9yIVkΌz6X~GÆugL __Zvo\>ءa'@ԶmnH\!A:44&fJz+vZ9DTtW-XipkWk޼^طשRtвf*[EEϜ5E"_1kǏp0|5ܱؑ׳cŊ: a^BZUo^xLYqUvEs 4v+I+R8:e}%iܨ&(Ri0H98m΢S:8J2a ~:)T$q+fN8Ʃr?#`+sqÇ6tZc~ /m߼HgozmIDi߽uC74}:y\`?tlРN6Mtl*❈[l g5Qɳ~XaԑlPW1Y`+#P4x@SJXX-o-Z4[tڎ>tf ڵm־]:`!88 `%1{tk|Ѫ% WŐ [h,>42jO=8zjBHkWdt;C,uqM+>_z¤5˼RסWXxy+cWΣ&LԖ.:ƯYFpJ~_2<9h(zQtf"U?-ռFe,WG{RY~=c·y}rĕ:y Ë)Ë2hOW|_y (x"Uj훂tkBM H5⋛æDeb]q5h3s7&RYKnֺ{0\˽ץ  4tfx```g$wպT 7Dchߡŋ׿<[, 86|T/"&kӟ7`i[kd ct)Er1e/```1>WW)X; v=Ӯm3AW{s %23h'kbXشɯQ@/9(U{~ܨ3MvWW]Қe]:G6lX75y00N0@d[2d2h)Ϟ> ~`a"k^A .!UG#4qޱCA'\s-dy.ITQ[B:I:E$/ Wу/:yܲExhT&73֮]-i}00N0 ߳x888όqĩ+~]qG:U* " "!iȏS*9f/գR&L{Tk &&K'^|ai9/?TaDd'^S* /,ZF<;׬Yҙ$Jm"|яT8zCS]|QNԼݴVFVZrHpǏ6i;7(wfugO8$GOWn1x@σ)e$ ]d54u5˜P}d6i$f6ANLԽ_.$ZN;B䑃+?aOOK5fk׶YBJ``RaxXtIO>$_+ceSo޼}_```gBMǶmfOZ$A`@-_l FW=sh}c$BE5ϱ~BgUAI›3Z'siov;vh'y :Lc g5(襪U+[h!kD"B+$ ZՕ#ɠڻsWpZa;qF|A2C7>1TA 14Y`vq*{_V6)-'ؗ\'گ N8 00ycQ(Ȱi2bId.d{GH"ʸQC^@JBߺaH8`a7]!I8J = l$΍[8VVq0?/zT$/>q0=LJZbgz_ԿLLXfd/uwfL@ e!k39LE߈.EdzANuiz``RaxbO'f㗞2ǖ ^yy*1c L8TȮm~fZUu #4tPs'hѨy;ՙ/Ĉ \'\UV#)Ni~yJ=h ֭P4,XQ4C@pDz~ݹ *'rFrIlW,xa!x@ǎ4jTwܨ2)Ο3w(G9@W>?Dw_up&my72gM8= +hWXvݾIG+;n۸v-%oj9?8.Ч i4 +ީ?q@qtKN(,V6MխK[ꘀV3)Z̰onAbųC&nhhﶮQREqIlJBvKǤ5$ZGZJ[֯!}o}!Ï`@׉ʽt7ѳ~wng%S[?wӘy{AAY$DKvejfL/XԽOVe~ Qʮf6]5a\LMԾ>B.q@qĩ+wtw>'F;]3& ^*p (UH%"2GW/υ6[=qpz$~]F _39ygx;O@0ȿ18ql {n|,J3J}{i{o>#G9i/?.8wƔ 㢴ӡqVӕ|ͽ;egWOݽx0B~E~8SF1~PFKAG2d|>C2|:5jժzۚSԱU````oc??Bd]dAXX-ٳ{{2`|\L$o٢$Lݾy=zݹmhȔ̘ɤb9>rHvߞT]YK$;٬O-Iw0|-ǁ|;Xkdu>u ,1з̝^>Y+ut3cr ui+VC pQׯ޽u(Fqq;=exb--@䃀qϛ={"'euE{Α$e,쒘UV9m!Kc6 'O,R|&q 3IۻS(! dSPaaTO^:ƏVƁ7,=bp|\5MYDj:K?( 䑃"z lIzϳ= 6 jH_'3 | `IF.:S(c_r (jh0<0D> \KA~^̩uT' })m""o׼qD}jYiq Tڠ=>db/h/ٮ͚5H1;c_H9̘6ϟ)KÁ=5kV{);#D{ƾN"i88eቱ?<_z&O[Ɓ_ -;aú*'?*jЕV&Q^u#_dI5m޿OWdX`_BuH8'@Z \I0CңTi2)mr__Dv)_>{D9"ɢꅾvMU5w3j>;K:SƁxΟ3w[S>ٵLyr깁,B+v2ɾs֍֭"9k Hѭ}|6;}KZΏ1N )|#SoQWfx} iZ=#zsVxwm 9| [oՐN=_ ,7oPNcҚeQ͝j.$f-׌5}o}!hf(gIl6z}ejfzzZ49kgSʮ8RCMW6]5a\L}MWW5`PG OxG `xW_S3wfxMT]WU'-= VKqq>|hS3s3m^znAN57C ^*[ %EϜ*8qG tbld[7^ӽeN]X>Mq ?^$}~sn߼5d؍B+H_}4z o~[N/ ~ɳJ- M3<0ǧiIhԨn`@PYJʯV|~^kժZFJ*Rv7Z^(BVXb`t+O: $_+Rjns\26( (?){;'kz._̴䴽;iw;~]n>sxߞӓ8| ڞooFʞsgL0.J ?JgEl>]sݹ-;#-#G?axbib)K'|[^;- tB3$sKL[6%,:J؊?ʓl5uMx|@'UHٯ0S yw" 003j6k0(h- Eޓ Ajb%EZtB!^\238c3[UqqJ;2 yǟe094%y%|-iq6B? ^u~ggx@ީ"000005޹Бgs:aKЊ;vm 'x, "b^<}b¸:>FO9Ըa&4ʑ:~J<7ضGfF``Raxo$xƁ+Z%bd]dvc`%,'^|aiz9/Tn櫻뇶޿^˗ ËWp _fKgN*ÿvO'm έ +Z<ڲr|$}׮ZeBMݽ#i25;c߲EM-{+4zw쿧 x)TZW/sis/^4Ϥ":uln]00N0)Ç+qe{5"DAIҗsD6__Ν$w;vh'1 :L[6kրUK̙1aútdzt*[bс=A!9YijԨDJ&(襪U+{vo_{3Ydmf]ܲNm2vtBiv]|i=K{=;;N7rHӦi2&DM+=#")֥헉88N+>`F O0["N8G:s2SINO-5+s Ő-*yClL'}zMkۻ3i̘ɤNwԗC,ya>dbJ!?ت]N=w ݤ)JVz $B={,)xÓ`"Zu>u ,ym"[3o7u3w:>Y+ut3cr INˮ=PFÆuE!;yTĩf=͆DIV-횯G<0N)1ӊ3޿/S'زy]2+\Sо8 `0s%쉜]W.O֩d^ԗKbfKd0W KKc6 'O,R|&1Z9z0DÙ742!=s*|cU3*,ܟ) `?fX }U `0&G ^3'ܫG7T.GԿeR2liFٴh}QCJޝ!.׽jP%DB66ءuqqJ2%ቢ+҃ˁq A8`%N$/>q0=MdZ7OR-+-9n_ԿLLX%۵Y?Zs~Gaƴ }Oi]YʵKi$`-%$(Njr+{6mĸ*`axbO'f㗞2ǖ ^a\D> h ֭P]%Icɂ} ! v2Dem'HUL璊8sn!qf޳'rDY>TsI%`x:f0|-΢!ĥG`%@e6Zo:QW5gu_>{zN~9Vҏq@*=.7nk"FO^ˆeO]f,8 `2O9&sk$9PߴvcGWkϤ'jѢQ^:2}۶i㶍kǎ|Rnc} H ;UT  wx ;Ogx`0O3lc"Eg#U2\[ ܲecT [֯W/~7i˧=3Ι1jՊu~۲IkID٣_77jC?z15Ǐ8Kbf'VM<_r%WYlˈ^ҷe{p`ʮƑqMkWMe>۽7e\_qo;e_> |* q|bN I qʜYܬ}#q1ӇmjQVO?ܭ~s"Shj=bᝮ?8 `S%s>A1\X$bFeAĦF_nt8q6$2a|MSÃTZhjU \FJBh_MzB阠 BUV蘗C߉xjJezNO,|O/W }Jaa ÿQڵf0o$)E nǏiag&+\_.~semtrVtE׮g>&+™.H'=u?Ӌ_ͽDڕ\Թӹ/^TPБ:R(%H+ANkЧ߭AgE, *l32Suz@({{*|磐,WkT6/[eu7>|=ZEB"00N)2|U mZz?mݦ'*НV2ieN_^'-uv=R)gN5$pz%1ԩ6q00N0}32gMt,````bx-w5{N2^0ǂ(a9 gN~3s^qMT]r9աۯwuqqJz5kVt$a0|vǁ៻ԿskC֭"y0=\<6൫lYA"?u5˜F}E7iFh3ׯ.7SyLۮ>v3*|NY=[S&طW2 k֬)gN~'=e%uOY8 `0s%*O$۵m&Ior4%۱CKG~> ˿ÜW{,Iw"^d6KG֫*c2*V 7:'8(6J&2zǎ|QCIft\v 00N0xs{AA/UZd ߶MS`|0g-E!{K[I%CWMH3|DW.! N7rHӦi?s.FJ2(G2Io߼3XjޝI?v:xΌ)LzH}9$8+-YL aUZnq=;ƈ}U8;SY[x LK[;1׻KJ!H~Ǝ䙙S=ex ?fX gwoƁ=bp|\%MYDj:K?( HґLTIz'ӔlZ>|؀!}i%mΐ+遳t)#שS}A2*#8oԱ:eK.E Wo׶8 `0#B.$zgN%K$D6Eh߮9djYiq Tڠ=>db/h/ٮ͚5H1;c_H9̘6ϟ)KÁ=5kV!qFf- ~gф#tHEl^mlˁqqJቱ?<_z&O[@䃀q/̝ްa ʓ5O-mdׯn*be,IM*LK+4hP4إq|߯w;"PSe?{\ZjѢW)%gߜ=}R ٲ9 ߩc+`|0`s2:#e:Gt2쒹%S$d1m-*BN2LhLy$7&} SZ /=exqXx8 `o vZ>>a‚yRݴV2˦A`U&%V3Ȑ^60.iMS3}!qANw>wuW0>+d̘%tG,U-Z4Yw>www[BC+7jTN꫖, #D~fn^@M.TU|2n56Ztvv; _ ?*jP2<0ǧ)z攸sGLN|iu-S}>ϺkCNwܵmd+TգG 6; xB‡OO$y%u7-JwM~%ц^B8^yvC1!5(0000W1<\咛^v0,6>pKgNF~'J 1D{o|d7~k<@V޵]FuT;N!=eϦ~hƁះMKZ)MRyНV NkJC5ՅSDžIKݫԣ3^ 1m²E%+-X10 U8){4}OKHq A8`Jz*B F^iİ^0'V{LG1\|ail3s^ > +ĊY`ӷwg 8C ɤ ԿskC֭")\<6YkW-ٲ~M!aޑfM/'fg#I%1sϟ~%wѼz׻ vܧ!D[UzoWĒҠs$$)gN~'=e%uOy@䃀qϕ":w`?Ixxn׶Y&˹ӴlˎZJ_aNϽpY3jɂ93&7lXW/?C+H&^Q\JibԨQ"2 ("%Nƙ`@)8@4yanPH4F!Nhvա%O9VuUf}n{ݩc)l\fԟ{achNmM{Ά>$5k8x3Qxvnqa#ܴ&Fq'`傜l ~卫Wq~v77bhxZ@D+VnY5Q/)!94KqX0ߵ qqApSqh9|RO'';WO)@ Pmr%`|xTh<~$ҏlA`4vrG3p`}囻6SR`׎_acӰKME߿>jBOg5k<W*Hw¸QѓMݻg4kh^4WǎtAH*]u5C|by5J^)EiIqeӃ05k^R+ˊm9kVgP-ggcÀ&hٺ{֯Lw*=8dL>V'R*Bnn~*2HtMMwjҞ9QMg=t oy6p~&8qxY VW xB^]5S>k0prӵTf{oy.nHߦ͹Ljoy ÉR:|Oc'i`}Ztd̔X)?z| Ok+z`WFr:<{qͅyqX 0MYL0Y0峱a;riijL^޾'c%#]P?_!.`={~5!%r]ݝ4Gj5es_<SbJrkķܚޝ Fdka5Q`/]0{֟< fx.qX0߃%9;p1Q7~,)bc&R;+v2Mù9)sY`vddt Dr|%'"<]gkk@ ~II +8:<"WAt%4odX;&ĸmo+2qX0ߩc)oK`)r<6R:D#NBZ(ڥJH'D߂]DH/C$-qX Q_`iV PWŔǬ,cE|zR\显 1X*-xe_1mpJC##B(_Iodg'575s!nfo߼iIJ?$9kmmlxj %eBH^#k8qՒ-H>$=[B5uwxɣm˓#bmiEtV_ 7P40zOH \/^x8lq,{'9>%q ƫb]z \Q~eBakRFޭz*~nѷ[z5mЊ5k8k8x&526{'UR~G^6<~#sgl[͝Cu;q;74aZmMfrVjy2_Ǐԯ(v=cT)͔tql{~;+4faUF> Y㰱Ʊh[`vǎ vr5e@O!N]q#]9q >)$x hC*h0xJikY؁9?.~A< J~-ygǢmUzbh_ ed/qu/9ٸ߼YW7(ڴ!;c9Vr0h$+5[G%a1Q1%ݜ6ju8ϤN_ c^A%qXƱb.Hir0MƇJOD~CoЖ+)RYNb.UkO@5։q{eF/a5 A͂hݬVtFҠzQ5 67;'Z Y$Uac^-Oy{h5x`b5kU"ՋVjϪ F:W5)r pE}fL5ٍ=i$Q/ӊa7c8qX1+PLVJnz-ۆo>&m..W[eF s^Cc'hٺBCEGvMI7EC8vW8qxvinj<8M߰agcÀ>-Zυ+'m׍V`hu ϟ)vt//=*\S4>M.5q)mmŐ\Q|pUz} qX'I  y|pa5Y^$(bU#Р^PeEc}x./y>qb1LGvNk׷X!?qXV}ߧO׃qX09?%opIcU` lppU 7iMK+ڴ{\)[:+o߸L#3:[+p$U.='h735eG)EyAߴi=k8F#]{Riܵ?^ N|QUa[u'+vWxDsgǠ78s7achNmM{Ά^[5S>klgDbHxH07R~ ={~"ڂl pM卫Wq1ydv77bx_TS^LNV~oݡ8qxI 9)8|Р_285S>k!.͙Ns/x>7xpVx9z}J'+@{Cn@ ̟%)oNT~dg _"-%зPkRh \qX4vSSQ/o/9z6B qXac>+?} * FEO71btޟѼoC(D2=)>|><~ANЮu^w\ܟ:N?Fk9)3e .4wǶ"8qxIyTYV/m9kVgQ_5k8q "i륳u3ׯLw*=8K>V'R*Bnn~x;HtMMw3h*mWsZL=oMG[0(^] X1 eVW x 33{5k8=ܼhLxg߹uk3qЁm¿{~t~m.;_cC5e=yb_zϝr<``Xz`~?{q4nˎϟ:gjsҲE?|p١!~iI 3{y -5qwώߥ/$gD`ӯ5k8f8g:}`o똨_L"1)'sVdN:a(SX2}׮JJXgԄr6Y%WDxօ`VvdynE cFld(;&ĸmo+2AoSɛ5S>ki-D2 RѼXjIi>mt_vQ]M>v<(♺%/t9}\(yzaX^E5+ <}Yacg$ JVrr]g`9P]* Quo\G63%q Z6lsxWkkɢco/3Q4D5^j_dLJ~-}5E[ZR\zRK:%e/";,rkh#`nl`O_w8ƍƕi YT#ٱSԀAin$#(̀=MA Mzacc DRTuj,ޚ3}iW{V?IW0H)d7 n+%銬[ܒG} MM>P]Mfx^_ͬqXXJM nODkX"ӧRϢ*E4AѬqc]f8Lq k<3S_C3y=Y㰱ƱhKI\"qʛmOc 1(F.)O񝐂߹-Mm;jb5iMfrfʲ$,<ʴԄĥxXYXғA%X._@ėY2^ҍ[y0nׯ~t5Ok౱ '\O k8qm54hWp{'V,~ 9z/non?#LOcvmܹ *Nn%hC}l6Iο113k68 x01.II1Jl|x|/:J_c OMZ:DW+_G'1|1gK?%ݼ*osa|57k)XM F[ #{KRE7jAdmUč :39܌E1k8o x(Z$;}o1ǬqXacVq)>bJu/q,@EkؚA*ky{H^oIY.5|K;"S or8im(ReF ~Ջ缽LO>0u' G޹'NZ:玢!C\~;+k8F=^Y LJ%V4ճɚJ z8qxIAk,qzx>5k8x*\޷o FEO71btޟQ%;r|'ʼnl>^( ]E밽#l||u'$eSvFj߮];CKxׅyqX4RYV/Oo+Y:{8S>k;5ٺ{֯L$=8OD3nNVWVqu#tӿDxР;afB\Ic$%4::p"8qxY VW xz5gf\24qXacVϘ>)';])k&ʿwP{tK6lhZ:Ut0=FRE?iё1JlmW_:#nᜲWD3IA# 85ӔxXyŵX0ߝA45&/[C_8 s+jVV)/X޳'QBX2/w ISzVSVzh/:s=5q)qǏJrϐWT]^WOt!rǏƌ+c8Fu˒23^]fN$`877 FQ%gڵ=z-@d@v埬6}v En;VRB!!q81_$7h}[LlqHP2KKh^,Z6Rc:DɌ/NB&_t(h~IdIi~;>::|ڟ~5O<4+ P8LlqʀxZojlVrO -?*J@;9QMLΩ(>]x4qM`9Lwm͟;Yu 텛;Km˛ Px8lq,Ғғ^77["-j:9;8|qk( ];t[7qMfrǎB#=K;E xӟ^qy3MA Mzaccіg"I:5oMT>޼V~Mwn /Lֶt%$UY"봝[=Y[k2P< pk%'x 721b_(acÀ7 /DB3I7)^a#cO(1~3U5RF8OCXD+PUkO(5n^!`sa|57ib oJW6"S6o7k_B򌹛M}YVL*yn~ӧfǼ4[> V1r5k63;-.&}~Tv#F:top(:-ڋ7;h]^,B0Y8^xZ1 2qXacV^2Y)wuboۜQ*(s^Cc'Bla_LChєӿ6mNT){8MMpCC6oc(356-}ߵG%*i|<ÔNS;vɼY>#] sf^i Җ/pvFK U8}\ӹö6vZ% =hj$GpacPKmM{Ά>8ЛU1峱a;^r{`V46M|Fq ={~"F r3ܼVO-o\cBEc9Vh3u3'EV`ǽ{V|`[_Z'8qxIy]uLS/qA}dC}L k8qX8|7g:ᦂ~9z}JyCV(F9><TM<؀.?UוtXEI" S#(,e(}{T |H/WŔgڷo FEO71b4M9>88/(w8;'F|ZM_cХiW oXa&8qxv,+'YeagcÀ&Rx\:[WrpNyi.D53n¹ݸ:Oy@ "yDWWMQlW9q95OՕ-:2F)W~􀝭-`8NJ)`[tyLjWHL0Xe5k< (6y"{` gUvB |=8jʋ3IԄ]#wakJjJEx.&.:E1TӧۭWk5`ϟ.188oÿ]:acDK޹'}OBiY k|68 `iIq;uuLԍ/KJؘn2+v2Mù9N7b1̟kNNN-@dvQO3t !;Kgh;(_c8F1_$7h}[)5{wQ?rJʘhImt_v*GQKAp}{N8{y+x^k6 x 5S>ks3=#9gTJ]/,'ۓmgEuYkl@I(ckkɢco/3.jC7ޮP_accі_Iaً( D\)嗽(38{¸QN{5!4[6oZ 9ݻ{#ٱSԀ7~)HG<QzOS"BӽqXXe$Hnj~w4]ܯN>Pt&ny@|9XQ@ xU2aZ |&393eYvFHUk nyejnveZBVjBZR\jҤ4 7=).%q %AӿYR8+?d?+~eN5 xt4ko{5k ?%"`;>%q :1{M.5q)mgߥ{8ӒYqX'I  y|~=X0峱aSVuj8^!T:Јz.8wŐgy>qb♺lϝ<֮oĔ7D0#k8F<ᳵU_s6<ǬqX׼-y뼆LCeׯLaÃ߰j{&9hоMk$]$VS&3uЪW.޾q=3e41wDxp$U.]'h738qxyʅsyh]_8LlqUN _ oгoW/|{|==)2wh&_rww2pê ђNtl'䰭4.]lG4wv zUm.5QO95; oO5k8x3Q큝[݆s:zn4w}BϞ '=:x|;&@*;ͱ:|љՂ'O t?o_S>~g8cr} G%O)5Lu9T4}3o45';WO)oXduHz϶֖|DAiz3؀.?KR*:ۇ?aՓGK~z%QF9VacMME߿s5S>k0*j߾'=iĈѽ{FJF88/郐`Uks_>w ]DrzVWAk3%݋$T}Naak8FW x r(S|'0峱aS&,9gTxڃcUz""don\ӿDQ+[ffw8_w|5e-:2F)ֶF ϡ ;# }ݰ}LѥώnxKF8ò#࿙m /45E[Fr<*i,ƺA{M޷^{`lLfܒG} M>P]ɣ~x/fg5NVjqH!&ZiKsz;B/Gfq=ښuLZŬư3M ܨ5S^p}/| 5E[JcUl;tC+OZimGd۾yƴ(bKJQcGK$&85k?,jJDueiUo#◊#ߒ#4eŕ4K/v6eeʋM-=<ѦAk/ؘSYz +@;0`%ʲҌ"5k8֬qޣKDxР^A޾>X%4oQea.~1>#Beh?4Cc4 M?a(Aiwq|xpⷶϐxGk.ojif5u?s3>$](6FfW(:CɕH 䲄-Eq褶!|) {evy1gK.IKcqXa3u9cZ%:+)="o= iAdQkmnVw 'fǼ4[> ""r5k63-.Q]" 3{C-ͧ@[jшAxr9o1SƓN!tnİ`ؘ4/ qrׅ<oGX1 iYO`&i/8S>kiA"E:jV ZQGm{I)iHj39َGhc&\,Ag(;Uz=acC+ Pd5k (ȭWDD4h/Ah,)aKx8e#|g>=Tw28VWD(5QOlmm}tzl}}y)5[y w9XE _ †aM- C6QulMf 8ׯ\}zf2]؎G O­I=0wvQ~q, R5Q/45^pN_;o} `8LlqN _ o3ޮ_qMM9sfnz%ww.7J[ٹ?Z[W1Otl'䰭]pqovΌh#FY3jv<8qxͩ66v04bgqXac>=y`VZ07Fq'pk r3PA؍WqQhv77b>x_tl\!1'ޒe琭[ X1 %%$瘦\_AQ8S>k!.͙Nsi8f`Nvz^Rn4G'+@{C Ã?Л):/_d,Iy;p#;ZM^wբ+p5zP!>?md(}{T oW8Llq@̸*W>a(4NJF!bNO>|>:} b ra{qs.;.̉jIĉu<{ x>v 67w=k8F-:2fxITbgkK0xOs>LhG/:B9fc44e35{agcÀwԘl}O0t*JR?_!.`<&d^+RMZMY顽ĥX(}tujn-IR:RZVHžqr>yLu;JgP wk3]ە*N]90۝Vg5ٚĥ|Z=_Aգmq: 5޻Kѧ#څsgPM`{6{;8NScsVoګ}H*.CI>"GnAaWU|&/Kd׀C$'oͷ־xID%Ώ5q/gx4C<Ӆ miZGQG|:d]sG9BMٸ]:k#jW^/o?TZtI{F-e!mBÑ"bE=E^`X#9dQA#4G |!>"1m]ʀi>ѣ|P>}kky{ ])"8ɳwUqԀƀ93%gW ޽?tXŜ> UmFqXa3K~a#SR÷,=ۻv픿aU6vNI5!_tHZRQNoG~EЖFC^ Flp;u@嗽h=h}:1khĥ*XX㘂y)M"'_<7Fd~sssTo~9^Y+{<,5k6cQ( 2g=,^#P)%+0gF~8;l#xX2v]>nWlpj*ϝݰjRT% U?U'%<^ j62`x[Ǐp1Q_*.qY {柿f;_^tO@:gfYUaR+@~V\Ex8qX]Ud4TCgb>?޿c˺}<)?z p~z8z҇K}v=7MW|Nm@^CŐ>(kNt#=\f tSQjթ__83r+J[g Tsf~ŝuذr]|Ջp !>W$jS^:5k8lƫWNwFمf5!.U]b' -/ ƅI@#Jfg$k0׊o $UjxǗç%Ɔ:u/sZy)K;KRUo>yB:㥳uP=#]Eh[;CӍ>YafOS)%3uΎcI7;;cp n]~a Z:gAN 1>^8}R%U#9:𰑐*d#4(^L ޽H\8rРjw70`8GG{Z9䛙(f@瀣&.[|j&w%=kS8/<03aܨ/[V0QP7X&O G:P8K{x8RY5k8lFiinin"mUō<.wzu5O=ܿgAeiqff5+s6޽s۝[7)$Mӿ$铟tZ%1CWN+J5%%Gh*Jk*NTW*crd4onl8wc'+V17wÎmEyrޝ-_<ٷgs(9Rr`zzueFUQz4++}ݺ쒣ʓ_>)%dcUԸoߠ}. .R?ݽ7۴i=l G~mj_уpŸqXa}J2mL ,wnYzhs֯L=wآy3?;E GݼV߫קac`gLv mg[!z $߻g'Jݵdw*KWb5UZj̔e@ Sw}=1hP_=v՗_z};"LJ9L0Vc͛VO޵U|84qrlinN*yFl:{zIKc{ %݌5kK Y ϻ=mQ*DxVQ] :;r@gЗzLWxm/$ftD:SKk/Q7eǢ '#9$&^ev)'K7 k^)amWUovRCc ؠU'4ckk>ZTBNat,wLNൺP}/%=7qXXLNM\Χ%b~O b FTզ ͼ$D@A5vx8rg[oc)Ǹ'OBOJwxy)ൊt}#Y㰱ƱhӥmԄޮ~()~OKh_X?VuX=\vcxH_Wdb.q1{Mck^⑊9UGJc~qcq b=<~lUacfe&3yUz⊄Iq/xOKNLY&)ӓG0;#)yB4CW p8 WKk6}#{)Z;qqf< OI\b +?Xf౎f̿UacĒ}*?;y`5ĻyL[ z LVa/q@8q, i\kYIlm{ 9e=YV4J~_8qXƱC3Td]h5Ɔg[Z޴#8q^WglaO.xuĭ5E^ Y6YafqKgBiH_"Ʊl/I-[6Yaf87"v)i^.J YXơ/^iY6YafYΟ5k1'Jܻ#)3Pd&SArp͉Y`EjY1uV+Ǝ ؐng5ie}ڮHXܯ_sg`}"'+:v=^Y*O8GDxp>~x.k8fqHd?{T| [4/jB( YX1k3IYWN,|XUzZe SGnܥƱׯǪD{ntYʊ~_k25{kK#LA‡&VD':(5qy3%;cbn]~acp*8 x.V;Ycg5+voin ۟^4aܨ][S>.,/{yzAGqI YX޽-qXawUnߵ^|5iT_boh2.k8fa-Mu-qXa$=%qbS34J4XBԄ5a<ʊ42<s$U+7ZV8H'Ry3, ^(5kĥ)h<6wl=|e9 Ue.z͛VýK/rZ뮧C} #u2%^%>=Y㰱Ʊۣ}9 9wo쯧ht_O=owsKmsp 7QAP:e Ow.H5k3x8<28!ǧܦrO=dDk C9ӦFYjZ_h3-5kv~Ta rV1kk>ZtJȉr8o4x]Ρg W^to|35Eۚĥ|ZI Q5E'41e{Lfx.pkΝ!)kh~϶R$ *gǢ >O.QBGx  cK|AcFp#X ;&m=M|]uK9 P 0 Mo`Mxb5IŽF1-f+wM?M?z L,dkF6p*~?W(KLO?WPywTЇQ"Xb]:k8ͪWox&[r_kۚ7NWEvݿ55Zڻ*entٺ3̊Ξvpn ,rY~':v~ܨ RƱ`teΞ15k6EͦF-œ; 8? c;a]v 4oA&+*JKlT.1U0ⱊxt RV'/wޙH)w/q4_)^4qcR||ྦྷ=k8 +Sx8qXQ(+ùuǪr&=)Zg7g#0G߾ݯ_Æ y"ƒ񷦼ئM]M%OЏ t(ܻIe5k7SUH% ]0 ($o]GMpw/I4>^YJ+؆'c%K/dC\@ڤ&.H 塧ҒҕLGG xڇF1ʍmA|٦ƆIc6NG?_|Xϟך'0hL ߥ-k8fdk5R5kƧ@?U 2 'Cq™!jz>IwJP8xW%>>0 .vĸk23Ewے.0`8ȴ^U%CCt=y"Ύ25*)17QsHdg5xJJ3!{>A._ *U qq !Y?~\e~5QQ֪A7baޓI1{t/bgmVq;O*$̎u'.ՔOԛ7Jz<Dzoos%Y^],qXyqֶ"/JW.v`[Q|duAN዆'"y벾0''=Z4KS-outhVҒheu>n}N U$޻=!;zrgA.ꎩ3¶5)eY튄⬖[j-=)X70V_\7ݜz}:+v1;w}6ٵk'0 |v6$pL{=ϻ=Zfv֖}?UJ4 n]Jd Vpm/4gFQW|ҙZHnމr4N%Giɒk#ڗ=<~AX;D5+e:2S~ BaBqfgj]*g4Ԓ_i WY}AN\H]7hofF<pkNmG+DaQe^ `ui(7t-E1IIr;0eR O4iR߮n%wm͇[+ͽnk7g<ЎŬo3_x%έOlXb`ı#rffg$JO3/">J=*zut4~ HE"l6>O.QBGx  cv .׏%,bѣ|=CCƌy wc#qc]8!<*gmVGvx) U=o)K|}ܳR^\&1eYFr=oZgG6z}~er| 4_YFu Kۇ I䯌T`װoš`~6gdf;q$1G*s:~̩~=Ξ|[zSyWj9́jժ TH]|IA]۷rwlT>'/OlR+L3lAؐwq$1G*4Ͷu޹l?Inj[N=kǶ?OY8kJj:y H;6]53^'}\tNFx_ULK{go{Ёpdq8bI#Ƒ6XXGv8҅jΞ U>^r0'r!->OMI4aS'!UoY`V,>\>Bv5ȃzϱG#q8RDZj^iJvn[|[_-oobj*ׯ_q66ϫh;.Hb1T.qȡ-۱3^|'sڿo:9r0ǫHي%(8bI#Ƒ♧\?تwE>0/iѯD/Hb1T.ۘNAbRΜ:KTtF.[Uȗ82xI#Ƒ Ɓ_Ξ>eQ*F=l%ڰbaֹK Grps)Sq$1G*&iiXXws2QC]:;8bI#Ƒ(Kb$Hb|I#8bI/qdG#q%1 ^q$1B$Ƒq8b1BG/q8G!_%1G(Kb$Hb|I#8bI/qdG+Q8b&b|I#8bI/qdG#q%1 ^q$1B$ƑKb1$Qȗ82x|1G#Qqq8G!_%1G(Kb$Hb|I#8bI/qdG#q%1 ^D#82xI#Ƒ8 G/q8G!_%1G(Kb$Hb|I#8b_1BG? ^#Ƒ8 G/q8G!_%1G(Kb$Hb|I#8bI/qdbb1G!_#8bI/qdG#q%1 ^q$1B$ƑKb1$Qȗ82xI#(qrebM8 G/q8G!_%1G(Kb$Hb|I#8bI/qd b1G/7q$1οRp>oqQ>FTR\/qdG#]'36KJ pSw6iB$ƑKb1t 3%T\XPXLJ퓹GΜg(Kb$H įi2º3N^/Hb1$I[Xqacÿ|ku:S8G/q8u8/Q9îygNTѣ/qdG#]c )cSǏٞ3N6lXgĐ~ G/q8u8*'9{~=?{j딱ï b1$Hq@%%\s6~DA٤Ϝ: kyv'SThXSWӧ lf;Y 'Iq$1Gc`bCkߢF*UTjD5mos;+Qz+,؉G"dgp]N?vűkV| c{\>$..8bI#۪r4lXgќiÇ0*>]ئ-nf+VrM-1` (:\^$ULK[:>^<Ӻ5)^tۦu*)i`V-FF[ G#Ƒ8bL3NqqPQrJ~ùs_obUP̖ M7"̩=2Q㶭C*٫s훿ްcFkbg̞3{p¹sf.Z8wJ3gִٳg̙5}̩o?N:5;uh9tPߒ0Auڪ8bI#Ƒ>"xӒc Pڱ-X*pg| p'rmKS*u}'yG#q8RYg?!/z>xoZϝ=}";; G0mMm᪌^ݞn$n_%%>\+ewŌTٳdZޮMs4jq#5$1Gq]SRrX߃?[.׭#uJ0*j[{{7<9 ._̻ .;`7d5JU|LS&!-`s[ tRZ>WwE&E&ʌ;Z' ەno~9sܟ[O2fsϝ͘8n9ۼj|Ո!_8(1ukAD_xތ:cp}90NN˰_qqSέ\Aڠ7_m0*3|իݶѹq5Z8tp_縠qʐFy:[>y< U/vHQ(˲t 弒<';w 8Dg@Aʕo|wO/-KԔ[65jTySF!XlP\Fke ?縸PSf4d@OWZ6˭.ap}Mʒ͘ԹckiE%j2iVkU2NЬ(n;ҮMUo˭73'ɀ?mР=9w5&6&;Qԑ;`Z8G~8DTD'fn15ՖEe|cc8tDn9AdeXR/z9KkHy/.*egN'YGqQ1Ohc-\m3BϤiH:!Fd_}M6|귌),7Зl5f J<׾EWN?_ܛ#4[Ye 2 CR ޻;8Q0!Yꠠ;1,;^{#Z.Yu7'Jǎ<~`>e3j@31<e*eC{X7yy~}={ڪ$I$Ikq$I$IH$I$q$I$I8$I$IbI$I$1$I$IbI$I$1t=01 ? Sq-d+p9Ut)9c4A[m֒1S>/Mr,<O * ~ؒI~`^8C|.+r+|k!^}QbRLIhfo/ qO<EވE) I}W f$/2:>}"7?庬O4Aށ\F[eo}4lWmu_D0?ÇJ;1:S'^8OQru;ѯ%J2ѥ4+Io=jcfsyu;7˷òv%?fF,)cj6ygL.SǏ]R|L95b`!x ?qOx;Uœʴ<~n%ve)uǯ7J^z#,@f&)*&u>Ǘ9|VrCHn6S0|8~HSԿ|J.XyHVk%.;{;*pEPKbrqXbjVH}qÿzS| wqm{pߞVf.)9zZqW_~!VW~һo))UVW1H_# #_CMUJ71NY1Ÿ3[hZR~׺fsz7q bbR.ZBFUzm-5dǖMW0#]|~-FM~۹?) \w۷lFPv%Qt ?;{xٶl|PG)&ZRX8*t4C͢#H,豓m3jf=&-(YxKûCzHx"d<&.2pcKO4ڞ e1}6Rj{v~My5ӏNoHz4h׃<ї~1Gsh#TRvGY}ֳ{Svp+î惢"|hw>/}x\(ڵGE N01NُoCMq2_p-$C]3솓d?|5aT_cmܭ: CVq/dO^4`ZWfO-^CðfFxNIWf ќd5G)Q7َO%xSbkn oy ګ{έW׷˵jU?s5+<ҩ͑9Y ]d+,t|O(N̡V-֯_Zڊ nwe iꉚ5HzSBѱm'Ke_3|^\ )m &vHմiլcg,.3%x\P// sF˹!AH4o$ aWd yKk"vI;L'K'k\.NO?x^אiРkԸ #ڹ]ݺwOJrΘ8R 1,fKI 7]櫗}pp{ ڱf'x_vaDfw>Rb?fd2en960f-iԡ%T6{peMK8sh@CO/tjC`p4u_m}E6;&˿qI^hSPc6v;j떏c-مB9d|I ?RRbQpIb('E0l[vӍ7|&&ȝ| &rvNɃPWŕewq+~ 5_[Jl'9 %3!"f۷1ڄ\ GH7 +L*Tyz %#=Y >,}y:3zu# OAcmZ8NVl?V@:ksQH&?çleZ߀c~"6u`>?aK0.׾hX/kݱ4b &mDe+J0(07[#LĽ|خu |~7sr?& jKJLo VmO+.5ŞT\D7Sn!߾SO7o ).kׯE-_d Sĕbk ›64ڰv%D܃A]٧ʾB&bM{ 4a@*88x,S+b HV8_ո_̬=2SǍd0TAR6ykgW:T0A%Gp_~"2.cGM9ThvoqLGIqQ~X"YF1H&vR& .a?rÀ)c가elsٕ7c6\dK#$Û5m O2cݼS:{&(ؑ)_}11{ +߽M E? $M8 Vl“6{,p_KynAlpџ<+S&a?:F]9kXD"ͺؤkVfa;w >MA|ۦXEh5.qM(BVEHU' N[i=5 *$^>(r${rwzG[!,ي∍!yk 5믭[>N5#J۰1kVN攒xCD+[7f{C(omG*,uVEb&ϕF~k/zbNK}msjJV G[/Kzx?2.0.띐FZEƌ>cOamU܎c8g^ܥRɤ8 VzZGqt4ݎɲZg[??ٱeS4#Kb?L=yo0.kN@yL{´m(9`>onaFgN|2ljǎ`Q kre!2Wo>mnLЩOr8#y$\+D)q^G)۽&Ÿ,>$U3sh܊".q9Ӎ8VKuVa=/1TX;L?"  FLVl#k*nF>k6J$ :QsUKfHBxkW,50!88!vz|n]!!Vw7 x x`l4 4m.m+=Xm0kS VʹDw}ތI?7N*<l\2 zck+vS% ޱe|+J٫ك{ [>'{0ڹLJ~\B7耏F} zM~$}K枥]/5G͘ލwE͚60F S K غ`S6o:fNnfgjռZw$YE` @uKy5h]lP-qJ)|_v^!=&j{`/u1'0آ"CH)٪Ocx~d.>J$%} `Đ~E 6hPۼm,+V˜Mǚ<-q/~(Lᵞ/9AS,z_8xۨ5i_YS/P_GzA^ó6ejmܚ_(:1S%Pd!طwd\P .߼~p5W F̈́Qq)kV,Jp7 oJiJ6RX7s޴A%X|n#£A|k{a8aw Ww&Z+-W) g|ܺz" d%ANHp f?A 1@P^}vwi֮1W0y0r+c9óO33'qk X_ =P=2׮_,Y0b œM:beX؊Q9y%ubъjmsy3#BacD7ݔ9'#lZN,޹W. ^;AobMc)1y5$apAofl9jyJ8F=tÊ|K[d v`HdvCI8Ҳ m[>p[?. ׾9"q0 'l <~$c [6| {~-͛>`?._<<ފ\y\7%F.bO_d!Q9X MN .<d6c}kMeZqn];y iޠ#=eX:&K{ZɛlbáAˎ"",`8̌VPpop˓y,N$Sc!膢-)yp*`0oie^H߿dϞ` DxAw-~̪Jصc{`ұ܄#OǑ6ƈb1kv.ڸ1nۼ=#+͟(ˏכ$&Kj0rQ-ei_x;(|/ݵdlR__.ʿh3se{.r$lu3Tb^eje/F FFmLأHt Mۛ f HtNў;aIsfVk`[(ᤒQ6UT̓CNa|L_odP҃wvN4V3^kUd]hNUléX0#?'J Nzb.~~v)H7WL;FŤ'5F%~ &揘_tV{?&e=u<7دp`Te|{quIövUs- dُ4nl'`N ˚lҁ='6"ۿ]|-Fj(+d!c7> q h=ty3_G`Ț~2aahDlf=(v᪰R|N?/ioBΜ:a5/Qڲo Gtg 3fDVz7-*8O6)fL]K8+, ^%_8͙=c vl_.\0{ʔ ;wlqlxTm+Mc 'N *$VmFq5kFtpXRPX*YRrDnD$8ಉ4pV67-#ٶ$nauiO$_98̛|f ~J uqwۿZ8Y̙9[@W 3K޻t!Y 󇥋lۼ;i 4q lV ip5LaPD*B;8J"o o 3}DK”0LvQol\YpDfXQ}Bl4[NjKO8}U`Pn$M [},ҕ@?Z$azY ^.Y(DKc0USTEY0HU]^`Taǫlqn$GtJk*]֙nE茶*?<&,LmVzwNJKrFm jh@:\1 (.ECP5zp>Ek@e>=傖 HJ "}7ic0%bתMdX,;lo[m|Ɖ‚hk*FgMN>~[nt_r24&YbLQrsSI|&;,aDtpm~Y:HW"k&][el2xyҒ6Mdi&0Q|;#-y8wCJZk<0KLK4N%x|C8œ (Z^EI%{O RMɾ02qW {NIYt {Ghx7ro5# ,^_xA;T@jiϲ6*/l.f~_(P5'fϿph ϋkDJ-?G$I$I#I$I$Ƒ$I$I#I$I$Ƒ$I$IH$I$q$I$I8$I$q$I$I8$I$IbI$I$1$I$IG$I$I#I$IG$I$I#I$ItM0?nFʪ9CD(xKPExifII*1J2fizACD Systems Digital Imaging2005:10:13 16:28:23022015A&R980100 $4&A!          !1 9U"2AQquw38WXat#BRr $%45(6DSTegs&'7CEGbc !123AQRSqa"BU#b ?r_`NѨ˟vUm-F^"V:I)2:=~^Wzms[m,QXnS]s3aT!jo+ٶʝ`u6MU)ƮE֊:-WH:'97Xjv=p%Ǝ^j)%:x]+mQ&ꉿh48{AI=-.IhAtG}^iž[MY5t5:*T$X]F̉cVϤwivyR4kMȝ+;jWv9em2ұeuV˯}+9vIoܖdjKȳ,kVw)mCxv#wjxC$I dllNH\d<>t__8s3m{U5ʂOteeZG3N\Kʒ+&z%mȲ-[l-R>9ıPCҽej~IX!;>a|ëguXI ;\@WwjW`& ifd:gpA,>;ӞkCռֻ5NUU]cJ[P5uSX$זT[Xޯ{ft=lEd7m I|4564T%=%ZwGX˦4Xs|2zn٧ S~#8ѻ^>7ʹ e3d(*uvb/_^畑pdxf| nG;bf|3USuy6_Kw׭<Ĵx3< tfQPGбMtD^hgF"rviSuMh"L)\<56zzNZ ucZxbj#UיU 5p`;vkr[5Ahe(Z$ciۿVk,]4wZqdJi؊ǵZ:өT ]ew&9Dq-{ 0FG@ʊ=DqUۨ민+gsfXaz[j-z+$ngKC#9UZtSh֦byV}Mu|QSi̕p9Dcmk6j"1՜NY~q#fy{"Imjƻdh4DcVETV/*"T SJ:ť==ΦetU3)*Q$]rLMoM63M-eZJ3iunܼKͰmÆjy]Bpieet[<{}\Tl39:)X+yh~vX]>3 `yn#*zED=cR=E}òN8g]dԽQ>-i(엦 tDYW\9WdiN  Qʀd;W@*/b727D_dQ{ctm̀Bbf^ x0Ė-O TlcOuTVh{{?ղ 5roԤ+qWsKs̗k֒y++$tmLETb#SҵԞ`=`!]I2tFkUJ{Mij.iO`UUj9Y=J{XW^3 "%KuSU1ia6{U9ul)4='© lނfNYjnVRbm1jRG/FET%ۻuݻmSe4ՌO.GζlTQ6'9Z٤MQ~_X 6qWX,6jڋH[֒WWS#rll9zU ֫T|M3U_KQtlnjTg&vg1,lp}Co ^5?5<6`QagG~ـyFy5?5>پ|5z0(O0ـyFyq8>7φCf0(O0N3?fxl j~k'xlp}Co ^5?5<6`QagG~хU*d'v+-ܴq) u jk[PRq;Xfit^x+Lg;&? oLSp ߊ on lX(C;Ć}TIz%E7$NF f:vn*]4쟻=8 MxkcVOd j~k'8Ώ*}Co ^5?5<6`QagG~ـyFy5?5>پ|5z0(O0ـyFyq8>7φCf0(O0N3?fxl j~k'xlp}Co ^5?5<6`QagG~ـyFy5?5>پ|5z"cyܢMn/{U٤F7zv߳G>WK%ZqXJ7)d@qت.w KIW֫綻~a2)[!*ȳWAѬۙQ^D _i^%E#iiWl6][Ti= 6B~Mb-i{sQS= 6B~MCF2Il0Ȥtq9*hJR7Ԝ5W3/cE54K;Xtn|cU9]=Tzm[9ʛޛUVq{k=ʂD!sЋMGNGV2M`Jwgt{:iZQ]m}\n~֛>{:85cjO@⥒li#cIM".MtKCElC4Q[ tctֽѤ"l娖grz*m~ թd+H8؞[Ԅ֮SOlf ڋ{vugfݭi.Z9;"׉MPk܎֌H+;@+x8~/b}2v HYoZqUj~) ڳmG|QhEI$HG1t:- 7)uơf8j2aΒ*@6c\jr+>u3_8/,L"}áKbƱtrrz=]FԽFK5MYnMA_tmM|uK:Ջ*o&~ϑ^W ioOmG'+^vg~bAY]{)yh xy{}DXVzqk&] Q6j X5H&d.T_K$lwo_/^z3R>D{Qr{ IXښ[= 2GNƹ:D߰q}6ԛ6UXM&xEc:duV+l*4 Uh 9'W*0ؾ>*#ռJ78R8>"AȽڢ%~;,Yqtȇ}o*>9Z#?+ 9Ns@X+~+̃ݼ{"³|+c h 9'W*0ؾ>*#ռJ78R8>"AȽڢ%~;,Yqtȇ}o*>9Z#?+ 9Ns@X+~+̃ݼ{"³|++?_o/[bHRo{Vʧ(KYk` "gj]w櫓g_ӈ"׉MPk܎֌H+;@+x8~/b}2v QN>3B{ o-"!KߎM?[*s/S)d++ݜ"]wŞWIH N Ol{^'6B듕r;Z3o <4q=Ǿۢ,+=G¿Hj;q ʠ& ,υwt|ٱ=UQUP$R4Nyoa!zN*TȈk99wTMNMӦqı>FۢaG=r%wM}p? ~i}VmzU䴯|sYBXȭNt:v2|`yw&\]#iG1ʛ^Z2AJnԵ)Ȝ>&5ͽ#9i,%\Eٍhٜg1zvo>]dHETz%~;6ʯ맶D=ϯ~Q׹_XVvW}^p_^8^dm}@u;P8G6ܡ4ګb-WGXY)V͹ܾ<7Ů)u S>4wHJ=I״֝ e^ozTֹU}K7_`I*/[27#H*U,5ȾfԠ{܏btE]l%dLsVE?G^m\Γ7*lBVZ+..X^}Sc$ mLhڋ^۱{ٓo4]%ES̛̝[fcdyFi,M%".QTӔSt|_p0E@B{ZU=IF ^R#[xyfǒyOQo,T65XTTo;̽Vv& uy]I$V9atd+Lr?kEqKrՖi[nMyw@̭k*FIǷtz"+9Sk,-"eߐȴ{#O務kx\9ZP?Lf(tgLt 紋K=|~ln'tQ5Eslvd6[#]ڮw"ws9ܥ5d&v39~񛛤4}%n-ݚ"s5UL1?4*[tDjDګ&ȫo&?pG,u2uQ'"7s_!صjbiՉg(|cQjc~9ޚՌ++-ORUFަ;ڢܫ7n^b5vl3@Ntȃ6B듕r;Z3o@e8~0b}2v H\.k5jz^ыK44XM%OORI)w{*a^jm+zi/s*4*9c)^"mʎWpKN,nZ Tw|n$7:JW$QƯ#&^iuKQ<lpR [OM*B7$Ejm"5݈4ys1Im>O~n4 JjSDʊ{Q6j>Dcr+Zj+G'j2K7suX:Bq EBH44qMj#Qu+"v]NRJ "H޴HG/hy3=:?^."f3LLM;9A|>ӜBT$Eo//~;-6o,zNFµ:s͢ƬvP)[kjXݟ:D򣜉|,JX׵{Z8`nzÝOY2XG%Vdk9Z޲{u$`tfI &=TH#vM6µڛj'gPߺ#aWd~Xݻ%*ŕdz;)gO4lxOjtBͨMUkgg߻>,G|yDž/"s˽(xtoUs<,Y|v _#ݾEw:7,G|yDž/"q˽(>yѽUe=S<,Y|v]Gy΍x'/"qb{ȧ|2J;ϞtoUs<,Y|v _#ݾE6w jWW=h=1WMrr9<'4SuM\$^Et:&޽}tǶz?Bb ~樈Nq>$^A<9^H|G==7ԭǩECÞ57R?Ww6ݩ$Tz~q_m~W(.}gOa"'/NyDm|vɒ 顨Xgg3Hloe1O=j"mQ$1tqʉOEΓKr56o@[ mBHݽ'Z}6%4j!i2iS%x7WR%P䨋k-Q;uMv*)(xXy);0.Z|K{aخs4N͜O _#ݾE<ŗoO9?.FWw:7,G|yDž/"q˽(>yѽUe=S<,Y|v]Gy΍x'/"qb{ȧ|2J;ϞtoUs<,Y|v _#ݾEw:7,G|yDž/"q˽(>yѽUW)9ERAMC_mEQetKG#\Mj$NE]S,N*V.>t)ډg=Nɘl q/2 ﶨʫ}ܨ9P*Tʃr@9P*Tʃr@9P*Tʃµ7Om Mn O']ԝ@ӭ>=W[]Oj9Zʺ8bG=QErr5^ÝҌTתWUK "VRڛM[dF8Mo;\TVx,6 vN0 :'ܦ1(cI6\9HDj7w*nYŖ^c_[o5u%*!Xڊ|R=Hѻ9]Ȉ~n׌gfkj lh$襚p6?m\ܨ^zIU DZeZfĖ%ս"._}LcGZoTQ$F=Z|E݋1{/ѧ}ZF5]-˜gg}zyГBobgI&bv3W&Շ39a]k:szƼF~UFPu?Ne5acw{+X39=u2ﲪ29gune~1rne~1ƬɻWg&W_j_ncV m&w_e~1rne~1+X3 ׿n_=QUL.5 p&*Aʀ9PrT*Aʀ9PrT*Aʀ9Pr4jLSG'֭łDq=Ǿۢ,+=G¿HU+srp;w.PYWvlw{)tؙ2f9Y,Q"tJ#3uj"quk{nbT|ZcK*ƶJ˘mCe4scF.|\{\c1FC\댴 pm|+$Wݹ}6n{UZ4n}Q-dNKU{mWJ1DTsț7xӜ;֖Wml%BF1&]:lguksW}{Ws,ܭ!pWW-Ez&ygCtrw} Vj+CX-LĪQ6DNgl%[A=fȼdN\DYq;ygi&%V.1VLe,Xh)־lPcѬjlӰjfbf^E6릊c(38׬ͨλP7#J+7N~_MѦ֍W/fCXv&pB0B\igTUW6TZYWls1]ϲ'YqVNM=Ǩ6oND.yٖjhlyXkzeU9km޶{ve,/ѱ#2\[&ʫqnWpcvռYay-2zmgMr^V$rr6S3^M)QU:AxK&*(\-e6꺙xX;y:1/ku'OWKUzQjcQVM#}2'j;Q8u*ư-*b5ҧ}O"*Dsֵ9ۢ'PzLr_ iweZXȱykDg,/k}#Qc)gx^ew^ivLk@J )9kV-zntj279]HJ4w>5I6S4Vi^)uM3'*U?JSG9יzW\gjxi&vt/zܻ$fǵZ{5ɫ 4hhۓtvDWcðML,}M$ѮAc2;5OlQ4*1YMg2yv۰L3Ml,;UpĞٮJ<2qϾ㏞$TfIi9Se}ײsq c_5,I5Z9WMțS{-Ϊ]U׬uMmп!{ZbUIBޗG#s^j^t5vKMdOS ZWG"μZ^$zmܽhŽX2gjq Mx=IulOXtUm||ETjT\;F;mtMZlyu{I]ʓ:)6|LY\7Fr)5QO4DFMα'##W9Zr#WkAcyv;W2|6[9S$MS$]?Jީo3wD^q5L{Ϝ"{gu 2{e-΢*+n,xy{}DXVz~6WωMQX\Iti홷U#-i9b6#%V"9˓P)8ini56qʩ*juJ ӱ=+lkUj.p|f3h\} ߣ].s[ $j"?%-3<-2=8FYޟljHj3(rtP-;葨U\wIԾdDS8՜5A7Uɦm|4w m %<+YQE***b/_bӇ֫S՝Kcn,3ge 2HRFѯS7=Y8Ԋ]\z*}un{qu!TVZыͶ+j]\.He|ML&᡺_e׺;m^cY4cS,HbY76~%ʥ2&vڞl/WrQkOX<0U_U USpB觍b9#MVZ**Aqzz[N(0k5JcJh3\hSHlӖg3xK ӻ4*,z+䆡{^g%:^.]9Suζ5<۫8#6"f뤭Ȱkvw~z&X[3|]W\WoNWLSrblqؿ{DZ6v/IN = h/C|&XL}O[^8^dm_ {j~8 m愙ӰgGc ;zbb"5RCiEd}-ϢSGLj"k;REsQD]EzqLSˇҽ+.0,W> Mٱ dsE-%Ld44S%g9j"lsy}]njލee8!u |vM+>NUܛȉG!rLSUQ/tK Γ\_8bMk+CjجJ-;⧕ݭW#wT}R3DYYg4t2tNV6EoF/.R3Ӷ24#A.ACO Щ%bM3Pc$zem=d^m?U\5B:J{m%!E=Zo J5c\c~#}q1bު9?m>1~{v=WMTa8[姚Jejj}r Ujxv:\LX}%v9)vYRfnfc(iEZ3U҈3^1Z}O/J+UHҮSW}فU4ԓTd7Zv&TEv2jejl9۵Xڄȫni-|8֘ & =NtLLw efJ٥*̖R%Uj*Uky~甶4tP<_g߬|Epzdx֭`Y'SiTk7]ڝKm4Kɨ񻝾ǖɍT٪)ն+r^T^s"+]Ԧի۶,z/=S<"d7UXΧ^cNnq(pQj]fkgE&KWy2긚K#[V2TijcjGUvwqoZ޾]PDk\뢢Qb}bZx*W b?hؾ%;'L7. !Wy`@;1>n,xy{}DXVz~6WωMQX\@i^{>'7F듁bT+{!5{=^s \mZe:P3͛ڻ~OխPhlnf#d8TWr&gկT?hZ?|&~g:B.\y|&~g:B5k9Ƶ\o~ _Ψ~д6>MZuCW1Zǟjs-͏V3PhlkUnq} GcկT?hZ?sy|&~g:B5k9Ƶ\o~ _Ψ~д6>MZuCW1Zǟjs-͏V3PhlkUnq} GcկT?hZ?sy|&~g:B5k9Ƶ\k~ _Ψ~д6>MZuCW1[ǟjs-͏V3PhlkUnq-Cʸ(o5縭 U]uݩ톡/2^&&_v/I^յMkpDh/C|&XL}O[^8^dm_ {j~8 mECsBL-c&i_ZfiKs|D1;}TUG Ve+ZVPQAOYM-M'/|BZ!M]ۺu졍LoVC,3(9[oP+@0|GApmVSUӽ\O+dcQQT]9f-6d|K;iVez3}ը[l&&7Ve+X9[q֧sb'DZFv/IN = h/C|&XL}O[^8^dm_ {j~8 mz4Z)dY^t.H̩eKV1)+ry"螮ZM:֔7 } |w4JNy+wNEdzÃ^iNnPUdӺCL>G5%Tݭf9Q|1`MUUܝGu\Rk%aLw7Ҝr6,z+,e${NW>$)XHjm"qGhJim5UtY%JȭN55ʨbvțW(jSe;'4wZh]EW]+D [|xs5]4) GFʨq-z&䘼9tV]eD,l|G*1mזӆ7GIQfXx(%LM*9*;ȊH^kx^7,jw(m-w{6fB欎V$84HNVƢ 9Dه6Go_c䆦h؎9#7[j[k.ix]vb5-tꡥ Ʈs^Tj/iU\ dx]-Jh us}tʏruso BUYD(u+Aeڙ`CrYUJ#y#{bE^rQQT"mwx1`Ҝ^`{TkֺY[]c~bJֻ&שZMYOp4Vq[K[m}M5kDGԽju&7]u놗V.^a~?OS[l'Hб7ҫ\dT_ЋULJ 6L;y.z;Dtð ku%eEEb*>W#^t!t #5~m:ZxbDk7tj*i9(ϖ3{ΤwkYS5ՑcZ;vp}MVG+$G7k潻Zi]냛zԸRcܩ1k!k[ sTskՈ`bqW^cy>h9`²%%_eX'r6cdnjc"|wN#u+=Dн)o.KiR]1F{) '#XWguzk*8Z[9G-Y0(9Qf^-]Uqq zFg2($dV=*7Il=tMLZ+"'UQWMKVUK*$E**uES2({\?^-X4EgbkpmopBj;5~ɷ+i{VW>WxtEgW`jy|N[u>;WgY Mr̦\ՈTbNUTw]ʻp%LF"v[&:GQMNvlJE[[ Ͱj*r,7%zE<5s[˺ަ\U;YwN]]ASY,ϬUJtv]E3%˴ӭ9IB ֭>鴓!!d)^V5r#v^Y\7;᷊[cWp1j?ᗋnKQiz)`ys^+EUUSܛ\'Vj/kYx֍[]<ĨsRT,42F#fFn{zѫ""+S\.wP4+9&䍼ֵFR-MqETr󽪉ʋױ$DUޜfYydAwCCWdDqVGӲhVXe^dW+\Dr.rڞ.[0}ez>1KU-MZJŬtŪV2g$qo[杳nѫL[6lH8sNyxfnIog'XEV3eFtu۩i^q_iM}UV-SV@3HVZɑbWvʢs&DLL|Limw8xf)`{Ikjw̻Q=+X^[s+˸+9ftLǵi&$vꊩɺ2茳wU2FUSeuIORhvC*2WB5UOL֝IizE G4dW[[Q|#J%#vvmUn.FԸJ(nJZ-ևBrڒ\2LJdrIV$Zu^dshikpY5M.-I[&ՕW:]9joF+\ʋ6o70kwCvGخ$.bָo+rK@$F"*tC^|O}XbkMY"+#6)FW&#L(yLy"_C1,PF/ݩj_pmGoekg9"To*oөP5 5-P=.dur%ec{UIPE;#\Mmtf}f/'~bP>Pc)7 U%ezKѢY#r7R#iP|foHds=Z͍^b'Z ]fr^?hؾ$WK?Fw!?jo,Ww>'֭ł}2v Q{J=5?\ ~~W?4$Έ_gB'uƽo/2߶5_ՓM VXӛ~w5_D~#< YaY9='/F{Vc_rltkVyUSnE*a~!'*l_עMF ~!vohfjȑgQ6F/35ja#wH *n5jƫM Y@q#~ݪ?h_m~h&{[DW  _M _sOޘZq=Ǿۢ,+=G¿HU+srp,@ Ŗ:0l7Pllr)%H#X滩U}sxKw 6銣k\r"g /3n[pxKۿhKңϼ7ͻo /3n[p=9~ѭ8}%Fmߴk'^>#657ͻos_fF~ѭ8nt{xKۿh>#65 Γ/sxo w_fF{s /3n[pxKۿh7:O|}%Fmߴkxo wIϼ7ͻo /3n[p=9~ѭ8}%Fmߴk'^>#657ͻos蓊^x  TVcZ*ԑfW5wkܝh>+\WmW;pDh/C|&XL}O[^8^dm_ {j~8 m愙ӰgG=XW@.EI][ $SPFUWT#b{]7U"zP[my1,2[OCQxq]%y8sssѪGUYJݫrrXeDUr*l/WR)nJޥ7uemd_Y7^ʊKd՝w]6^۱HE5dIJK -IW,]}JM:TfEF{{*kܛŹ&dgu.5en͑W~͑z;~UCsoȫ^uL۵~Kfi25-N핳.tTߛw߱ ; bsorbl@qx/lSz=opBj;5~ɷ+i{VW>WxtEgW`jy|N[u>&t-c`=`">%3Լ|e-rcY)lI9]"誊Cu⟇ e5OeE /wIjW3vQȊT!8г4Eq?CtsUx[]OuYvO;_,6{*Ҳg<DV9r5HGfXsTPh'-fUuutV8uK̩+Y.o) l).MӈP&u]+ܑ۴ı[ᖮ|0tTE^`YfɬXulP:_oTұqkV˲uLE4DlI3I>&xLZ[q SmsO|OzoO'}pГ:v^{Hw0qnhf PIQns&cRX?J.誋ѩAjsˬ=Yѹ:8ڎj/+&uQk6>ojeS0W4RQd lj+gNF1{6Y%XuPd+UUiNʞ}DKKuoK"ʛs,wMUZ[N':2˛oc4N.Z+mMGUIZUYYQ۳sxDd3 _ϳlo /T$ %tq6J#}Ƥ9'I}ۮi%*|L "o$rDIJglYhaZXVU]*.mR>)&k^̭NDۙUzuQe951p֗!nji {X_L{@dR>:dF/*=.Ȟo%kr5շ;fSKZʋ5l 3ɺntsSԢ&ți#1Gp-aֈc85oTP˼<"j@ZS}w7E;iƖqj~-O\}PڛO:>=FFHwv2k^&j(8d!2̑V=3!UtTi"Y"tΗ}mos3saevNu.3v&k*(d9%k,OF\ע͟zgoߑiW xT9[[^JI9'#XƭNXѬDb1N]rNdvݫ[&A qؿ{DZ6v/IN = h/C|&XL}O[^8^dm_ {j~8 m愙ӰgGUojjڈ_RY+${#7Mӵ7@DְVSUDE3Zb7zw*W"D:N9տԜxU7=q)FM[**j}֭5Sd"vw;#өڇp}Tĵ^*Oӱٚ9SVq̿lM-4 I4Ml-d <]ʮىD{7:G.ӟ􈘖kUij`K<̍ۙw+Su7U5}m$uIU&8GT^ b¬*ozcXYr2xZUT9F]##G*#ѯ_?V&ron|)q_i]+lRkACKl=Kdkj*'+}:Ίd^1L娢"bw~Mu􌪅3G{S;Mt56|FɺRug'y%r9DsUtTSfUp[4p,]rAom\b"Y6^NeDo6˶2)۔4h%Q1malRE̞7='*?"s*dZN8[vqhF)=gѸ!t@5pqd4鏽Iq`+~+̃ݼ{"³|+5^Ҽ>|OzoO'}pГ:v^{Hw1ܚ9#z&r9A߂i}V87M,dF霊Χ1V7d 6ZM48>7ix]Mx`tɭvޡS=On5ls xC(Tx25J_OV)ž[*oٮ\nj]3Q{+fE!I8hG2GniJޕW}#Vb+^t_'/86a̸麧YO7;ZoZ""n&i>{)ayT1\J,RsHz< ^dTr*/:n=ϫn8\)*OVelyn5ܓTJg:'"'#^1)nuN[弚4ɭ=<ŸU殠a8l}+ n #er$U[Fjiu?# ]!V]u? [xѣ&S=Vݪ,2U&,?8Ad5W]MQItNYbtMD6=2RKy]3nuyM@/S 8iڋ۲F^Q,FM3V|Vg7<U^0+sOMru6UWjuTo,c!/;UEY"w4u/v鑽JbI~_Ϝ-7M*p%;& LXOewEET5bRvhˑ j6AfOEH}ܙV\_NF1Dj=+܉ZP2]=J,v uD~u֣ԤG+j7HGSzj'Fzfb7cn|Ű w另[֮sҮn,xy{}DXVz~6WωMQX#+Fs{=Ns*ZNVUt*v #7W&/7V݊} x1ş-S%WjSnj/γYcYv,pVuGx1 8<b?݋?scYv,px1 85j7[?nj/γYcYv,pjn:>_f#سnj/γYիlt|0:Gg_f#سW9n,xy{}DXVz~6WωMQX\+6N"uUD_!AV3Zn:nS Lo08l_٢-;_{z?Fw!?jo,Ww>'֭ł}2v Q{J=5?\ a6k@}sBL[y#`awUDN]Qo Քg?xEw47'iz9ddLbVC,ZAQZmlxNRU>S}zt+NV%keWGجjn5Z,ڣ<'St!Ԙ4iñJKuUWiVfK3G>G9Aq7u;V>%+n5s.{ak75$F*3UEۯW(ۊ\Vi}Z*B$ )ej6@I$9Mb*oƮkƄ]1;?8\l׫M#&A t.{"Z'1#&D^eN^5-6v]^f`j\,TLӷYHWR,j"6t]mR!F*Q̴V,$NsvY^٩ΫQ1iUYgfv#NW COxK=8Wgzʈe:{bԋ&`Yfc;^+6Zu$JYѽ"̛yn3vfoN5 ms],.8^pxe4]$KX#ݭWƻ"ռ.ݔjlm|՚ܻ$ NQ>hrP]D\U=p5])jYn7jKVySMƻ֧cP4Fl F\v CCĢSbR/rjI"t2;HTT^Tܒj[vmo1ՁhO 9#'IKskdrrZ"*.TTL۹DJPڭsn4,4Qw-JEOQ;\7abOd'H5܏_$16=I"2NYϞeET b?hؾ%;'L7. !Wy`@;1>n,xy{}DXVz~6WωMQI&zJYri+R{`YV^NUj[.A}:Uӽ?Ok{c=nWCD9"JȈnEpZnf&nN%ZotDڨ},*{÷:jM&Y]5nSI[YPMQ4VJK*XDƯPUzŦiK0WIU_RMrSt](=cGrK#ވh"F٭-6gU[31(EDÚtі*hi$tm;Փte]ǧ}m,$_n^bNQ>uEW',ʜ-dL,K_ԟiN[<B2rw1F~MPm9Pr7}E Tӕڝ7EMr F5tMnx8`7JZ[Ҧ%?JGcjEsթ*vȋUT9ɲ/hoeʛun^.hujimpT\d}jCM3j5%&yr,2ܫߩ-䅕]lbu=lVsoʫ̝h""lrɬ5DD2 @qx/lSz=opBj;5~ɷ+i{VW>WxtEgW`jy|NTEM((Q ="4c"&ݪrjN7R2څcumzhӾ)!Y'3)b&le@)X(UFꝲv~ca؀V~| SBꪋ})tTQU9*z2ɝw%W-Ur)i|1w++iLN]Ӽ};w9G; ~c=^o-)ts~L_};c=O۽Q3|Ns~L_{>bҟnOw9G;Q3|N:{Jm?};w9G;S-)ts~L_};c=O۽Q3|Ns~L_{>bҟnOw9G;Q3|N:{Jm?};w9G;S-)ts~L_};c=O˽Q3|Ns~L_{>bҟ.Ow9G;Q3|N>c=O۽Or~^(kpo6j܌FNM}rؾ'#nw")*7xW/تLeVmލpRz _'{@@1~2C6}"4HjG=WKԛ';r5ñ*5sZ8Tt3ab>yOK 1[E]܈{ktbh \u[KV֣$c7rTVuYXf諭55zFS!MFyҗ63{[geKݪ<Z|f:k㮫H,cQ7oD1꾱ֵ~tKNd7+|i\-V*hޑ-\rtrrZ`q֮51 jyï_reDw dˤHT&j*7Ej*)aZswO\ k'Wi\<)ּmm8(|0${7cr"ugd+t׋zM \nIw+=s/vXdls$WhtLi[SO`TúX$j7.ֻ `Ҽz`IYYP$h:U*<Y]"9yWګzSTtFLcQ݋je"kE--cĉ*'Hҽt|cXNd>'; UVwV]t5KմY=t4,Z'G rtֱu]'"LsO?ȴASdYd oz6ْ"tcr9oq%tM\+~}d->{]m,*5 "+_'Zv-[ jKmcm}[>c|Ȳ;]"򾯠H{t{zFNGN'AUvMֵٕPii"BK,InljFhمWh뾐kEl0VOXldtR9YMtEWh}Hg|t[t˿;ߠȪ?r IXxkC:[Mػ4eZԤsftp/2/9zvw8;:eܚl^Js˝az:k$KgNQf#+9u7TT@軙}v,ODDUOǙgrZѡZ@R0cAw\Վ ]l3˲Z,EOxf$V\~M3]eT'u*&lDR`\T=6QPި-+kGUG{[xY6^n4욱f^9UmljB*cZnʽ]djno{0,Lr-) wF1jeE^xwVz@Z0Dp*OV"Lb/T*mF"~r&P2d1ȟ2d0aX3dS #Qd-( / 00DArialngsRomanhhx: 0"DTahomagsRomanhhx: 0" DTimes New Romanhhx: 00DWingdingsRomanhhx: 0 A(.  @n?" dd@  @@`` N F p0M} ////>>    5 ()  HG,,:;=>?@&ABCEFG HIJKL?2$a=Ir$R$9CD(xKPҪ 0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab ̙@8123ʚ;ʚ;g4BdBd@x: 04ppp@ <4dddd4 0h 80___PPT10 ?  %CPEG323 Homework Review I Long Chen October, 17th, 2005$ Homework 1Basic Computer Terms Problem 1: Find the correct word that best matches the given description Problem 2: Classify the items into the categories You need to read Chapter 1 of the textbook to understand/answer these questionsDZ{ZRZQFHomework 1 - contProblem 3 On average, it takes half a revolution for the desired data on the disk to spin under the read/write head. Disk is rotating 7200 revolutions per minute (RPM) Average time for the data to rotate under the disk head? Answer: 1 min / 7200 * <  DHomework 1 - contProblem 4 One compute issues 30 network requests per second Each request is on average 64KB Will a 100Mbit Ethernet link be sufficient? Answer 30 * 64 KB/s = 1,920 KB/s = 15,360 Kbit/s 100Mbit/s > 15,360 Kbit/s, sufficient! B (Byte) versus b (bit) (Bps versus bps)\ ~z ~z Homework 26Problem 1: Draw the Control Flow Graph (CFG) of code 6 * + Homework 2 - contProblem 2 A) Why doesn t MIPS have a subtract immediate instruction? Answer: MIPS has a add immediate instruction Positive and negative immediate Add neg imm = sub pos imm B) Hexadecimal number -> binary number C) Binary number -> hexadecimal numberj D_N ; _N> O Homework 2 - contYProblem 3 Implement the C code in MIPS Draw the status of the stack Indicate locations of $sp and $fp Stack pointer: a value denoting the most recently allocated address in a stack Frame pointer: a value denoting the location of the saved registers and local variables for a given procedure (point to the first word of the frame of a procedure)X P\PPP ]c Homework 2 - cont  Homework 2 - contiint i; void set_array(int num) { int arrray[10]; for (i=0;i<10;i++){ array[i]=compare(num,i); } }jPjZ  '  set_array: addi $sp, $sp, -52 # move stack pointer sw $fp, 48($sp) # save frame pointer sw $ra, 44($sp) # save return address sw $a0, 40($sp) # save parameter (num) addi $fp, $sp, 48 # establish frame pointer add $s0, $zero, $zero # i = 0 addi $t0, $zero, 10 # max iterations is 10 loop: sll $t1, $s0, 2 # $t1 = i * 4 add $t2, $sp, $t1 # $t2 = address of array[i] add $a0, $a0, $zero # pass num as parameter add $a1, $s0, $zero # pass i as parameter jal compare # call compare(num, i),P l    %         !  &    D  .  B  Z        Homework 2 - contQint compare( int a, int b) { if (sub(a, b) >= 0) return 1; else return 0; }RPRH  + compare: addi $sp, $sp, -8 # move stack pointer sw $fp, 4($sp) # save frame pointer sw $ra, 0($sp) # save return address addi $fp, $sp, 4 # establish frame pointer jal sub # can jump directly to sub slt $v0, $v0, $zero # if sub(a,b) >= 0, return 1 slti $v0, $v0, 1 lw $ra, 0($sp) # restore return address lw $fp, 4($sp) # restore frame pointer addi $sp, $sp, 8 # restore stack pointer jr $ra # return,P   $             $  "           #    "  &       Homework 2 - cont  Homework 2 - contkProblem 4 Comment the following MIPS code Descript the functionality ($v0 = ?) As inputs, $a0 = a; $a1 = b 6 a a Homework 2 - conttProblem 5 Explain why an assembler might have problems directly implementing the branch instruction in the following code segment here: beq $s0, $s2, there & there: add $s0, $s0, $s04 x9 .Homework 2 - contJump instruction: j 10000 Conditional branch instruction: beq $s0, $s2, there New PC = PC + Branch address (PC-relative addressing) &Z[8,D,Homework 2 - contOne simple solution would be here: bne $s0, $s2, skip j there skip: & there: add $s0, $s0, $s0 This will work as long as our program does not cross the 256MB address boundary described in the elaboration on page 98 in the textbook.ZZBZZB.%    2Good Luck on your test! J6DD   0` r77f3/Ʊ` fff` KfxP` 7_/U<ff` HghXs3q̙` WXcklugti~^ӤO` ־3f3f` 33^` J%xiff3>?" dd@,?nFd@  d nF@ d`nF n?" dd@   @@``PP   @ ` ` p>> rj(  6 T ~  "~  c B@CW DEF"d@ W @W @W W @`".~  c B,CW DEF"d@ W ,W ,@`". \ ~  "~  c B CDEF"@   @`"(4  c B C DEF"d@ @`"(W4  c BtC DEF"d@t t tt@`"~   c B CDEF"@ @`"([4W   c B CDEF"d@ @`"(4   c B CDEF"2@  @`"(4[   c BC DEF"d@ @`"_   c BC DEF"@ @`"  c BC DEF"@  @`"\  B$ ?"0F  T Click to edit Master title style! !$  0' "0  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  0, "`P  B*   06 "`p   D*   00A "`0  D* H  0޽h ? fff80___PPT10. @F$ Shimmer9 1 0 9(   T ~  "~~b ~ # "~  c B@CW DEF"d@ W @W @W W @`".~  c B,CW DEF"d@ W ,W ,@`".  c B CDEF"2@  @`"(4[  c BC DEF"@ @`"  c BC DEF"d@ @`"_b \~  # "\~   c B CDEF"@   @`"(4   c B C DEF"d@ @`"(W4   c BtC DEF"d@t t tt@`"~   c B CDEF"@ @`"([4W  c B CDEF"d@ @`"(4  c BC DEF"@  @`"\  HdT ?"p  T Click to edit Master title style! !  0W " `   W#Click to edit Master subtitle style$ $  0X\ "`P  B*   0h "`@`   D*   0r "`0  D* H  0޽h ? fff80___PPT10. @F$2 0  0(  x  c $Ta=p = x  c $V= `  = H  0޽h ? 33___PPT10i.$'+D=' _ = @B +} 1 0 $(  r  S 0F   r  S {0  H  0޽h ? fff___PPT10i.%,+D=' _ = @B + 1 0 P(  r  S  [0F     S 0B0 <$D 0  H  0޽h ? fff___PPT10n.&p+YDB' _ = @B D' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(+  1 0 P(  r  S з0F     S R0<$@ 0  H  0޽h ? fff  ___PPT10r .'@ԇ+EDF ' _ = @B D ' = @BA?%,( < +O%,( < +D' =%(Dh' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(+V 1 0 f^%^ (  r  S U0F   r  S \e0    H[ ?"6@ NNN?N0& '  [%for (i = 0; i < x, i ++) y = y + i; & &^l   # @,$D 0  N  ?"6@ NNN?N   =i = 0(  N  ?"6@ NNN?N   =i < x(  N ?"6@ NNN?N  My = y + i; i = i + 1;(  6?"0@NNN?N    6?"0@NNN?N  "  NGH8oI@O?"0@NNN?N @ @   HG3HI3?"0@NNN?N@ p  ! H< ?"6@ NNN?N   9Yes  " H ?"6@ NNN?NP 7  8No o $ <T  ?"6@ NNN?Nd,$ 0 WSimilarly, you can group the assembly instructions into basic blocks, then draw the CFGX X< % HL GfHX ?"0 NNN?N` @` ,$D 0 XBasic block: no jump, no exit(H  0޽h ?_   % fff___PPT10p.(p+SD' _ = @B D' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*#%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*$%(+p+0+$0 ++0+%0 + 1 0 P(  r  S l0F     S D0<$@ 0  H  0޽h ? fff  ___PPT10 .+@+ED ' _ = @B Di ' = @BA?%,( < +O%,( < +D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*EN%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*Ns%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*s%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(Dh' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(+: 1 0  P(  r  S t0F     S $0<$@ 0  H  0޽h ? fff"___PPT10.- +ED' _ = @B D' = @BA?%,( < +O%,( < +D' =%(Dh' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*g%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*Z%(+ 1 0 P(  r  S Xt0F   ^  C (Atest-st"`0t  Hpj ?"6@ NNN?N_] FIllustration of the stack allocation (a) before, (b) during, and (c) after the procedure call -Reproduce from P & H  Computer Organizatio and Design 3rd Edition:    H  0޽h ? fff___PPT10i.3+D=' _ = @B +  1 0 7/0 (   r   S 0F   r   S LkP`   r   S k0 p  k !   0t  @ P 'sw $v0, 0($t2) # array[i] = compare(num, i); addi $s0, $s0, 1 # i = i+ 1 bne $s0, $t0, loop # loop if i<10 lw $a0, 40($sp) # restore parameter (num) lw $ra, 44($sp) # restore return address lw $fp, 48($sp) # restore frame pointer addi $sp, $sp, 52 # restore stack pointer jr $ra # return(P(Z             )    $    #  '      H   0޽h ? fff___PPT10i..j}h+D=' _ = @B +M 1 0 p(  x  c $Ц}0F  } x  c $}p  } x  c $} ` } -  0 } `   7sub: sub $v0, $a0, $a1 # return a-b jr $ra # return*83H&      $  0|-  P  Rint sub( int a, int b) { return a  b; }*P*6  H@GHM ?"0`NNN?N ,$D 0 lThis function does not change argument registers, so, we do not need to save these registers, i.e. $a0, $a1m(mV  HPGHT ?"0`NNN?N  ,$D 0 r8We don t save anything. Why?(H  0޽h ?/  fff\T___PPT104..j}h+F9D' _ = @B DS' = @BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(+p+0+0 ++0+0 + 1 0 `_(  r  S xk0F  k   <A ?"6@`NNN?NP Q  HD ?"6@ NNN?N`G MThe status of the stack H  0޽h ? fff___PPT10i.7jj+D=' _ = @B + 1 0  (   r   S \0F   r   S 0P   V   0   P add $t0, $zero, $zero loop: beq $a1, $zero, finish add $t0, $t0, $a0 sub $a1, $a1, 1 j loop finish: addi $t0, $t0, 100 add $v0, $t0, $zero,H%   0y  R "P,$D 0 # initialize running sum $t0 = 0 # finished when $a1 is 0 # sum $t0 = $t0 + $a0 # compute this $a1 times # add 100 to a * b # return a * b + 1002i(F̙FIH   0޽h ? fff___PPT10.;Q+ Dn' _ = @B D)' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* !%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* !:%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* :P%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* Pi%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* j}%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* }%(+} 1 0 $$(  $r $ S , 0F   r $ S x 0   H $ 0޽h ? fff___PPT10i.=m~+D=' _ = @B + 1 0 ,(  ,r , S +B#style.visibility<*,%(+8+0+,0 +} 1 0 0$(  0r 0 S tF0F   r 0 S S0   H 0 0޽h ? fff___PPT10i.C$(+D=' _ = @B + 1 0 ((  (r ( S *     H ( 0޽h ? fff___PPT10i.>@+D=' _ = @B +rP0-CCUWYZ`k'IxfXc1r-(Oh+'0T hp    CPEG323 Homework Review IoNEShimmer Long Chenom98gMicrosoft Office PowerPoint@=$@_x$@ *WGSg  )'    """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___wwwff4'A x(xKʦ """)))UUUMMMBBB999|PP3f3333f333ff3fffff3f3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff333f3ff33fff33f3ff̙3f3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___www_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________󅅅________________________________________________________________________________________________________________󅅅_________________________________________________________________________________________________________________________________________󅅅__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________htx: 0" DTimes New Romanhhtx: 00DWingdingsRomanhhtx: 0@D[SOgdingsRomanhhtx: 0 A(.  @n?" dd@  @@`` V N x4N  A(.  @n?" dd@  @@`` V N x4N ////>>    5 ()  HG,,:;=>?@&ABCEFG HIJKLM?2$a=Ir$R$9CD(xKPҪ 0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab ̙@8123ʚ;ʚ;g4BdBd@x: 04ppp@ <4dddd4 0h 80___PPT10 ?  %?CPEG323 Homework Review I Long Chen October, 17th, 2005$ Homework 1Basic Computer Terms Problem 1: Find the correct word that best matches the given description Problem 2: Classify the items into the categories You need to read Chapter 1 of the textbook to understand/answer these questionsDZ{ZRZQFHomework 1 - contProblem 3 On average, it takes half a revolution for the desired data on the disk to spin under the read/write head. Disk is rotating 7200 revolutions per minute (RPM) Average time for the data to rotate under the disk head? Answer: 1 min / 7200 * <  DHomework 1 - contProblem 4 One compute issues 30 network requests per second Each request is on average 64KB Will a 100Mbit Ethernet link be sufficient? Answer 30 * 64 KB/s = 1,920 KB/s = 15,360 Kbit/s 100Mbit/s > 15,360 Kbit/s, sufficient! B (Byte) versus b (bit) (Bps versus bps)\ ~z ~z Homework 26Problem 1: Draw the Control Flow Graph (CFG) of code 6 * + Homework 2 - contProblem 2 A) Why doesn t MIPS have a subtract immediate instruction? Answer: MIPS has a add immediate instruction Positive and negative immediate Add neg imm = sub pos imm B) Hexadecimal number -> binary number C) Binary number -> hexadecimal numberj D_N ; _N> O Homework 2 - contYProblem 3 Implement the C code in MIPS Draw the status of the stack Indicate locations of $sp and $fp Stack pointer: a value denoting the most recently allocated address in a stack Frame pointer: a value denoting the location of the saved registers and local variables for a given procedure (point to the first word of the frame of a procedure)X P\PPP ]c Homework 2 - cont  Homework 2 - contiint i; void set_array(int num) { int arrray[10]; for (i=0;i<10;i++){ array[i]=compare(num,i); } }jPjZ  '  set_array: addi $sp, $sp, -52 # move stack pointer sw $fp, 48($sp) # save frame pointer sw $ra, 44($sp) # save return address sw $a0, 40($sp) # save parameter (num) addi $fp, $sp, 48 # establish frame pointer add $s0, $zero, $zero # i = 0 addi $t0, $zero, 10 # max iterations is 10 loop: sll $t1, $s0, 2 # $t1 = i * 4 add $t2, $sp, $t1 # $t2 = address of array[i] add $a0, $a0, $zero # pass num as parameter add $a1, $s0, $zero # pass i as parameter jal compare # call compare(num, i),P l    %         !  &    D  .  B  Z        Homework 2 - contQint compare( int a, int b) { if (sub(a, b) >= 0) return 1; else return 0; }RPRH  + compare: addi $sp, $sp, -8 # move stack pointer sw $fp, 4($sp) # save frame pointer sw $ra, 0($sp) # save  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~htx: 0" DTimes New Romanhhtx: 00DWingdingsRomanhhtx: 0@D[SOgdingsRomanhhtx: 0 A(.  @n?" dd@  @@`` V N x4N ////>>    5 ()  HG,,:;=>?@&ABCPowerPoint Document(F>DocumentSummaryInformation8hEFG HIJKLM?2$a=Ir$R$9CD(xKPҪ 0e0e     A@  A / 00DArialngsRomanhhx: 0"DTahomagsRomanhhx: 0" DTimes New Romanhhx: 00DWingdingsRomanhhx: 0 A(.  @n?" dd@  @@`` V N x4N ////>>    5 ()  HG,,:;=>?@&ABCEFG HIJKLM?2$a=Ir$R$9CD(xKPҪ 0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab ̙@8123ʚ;ʚ;g4BdBd@x: 04ppp@ <4dddd4 0h 80___PPT10 ?  %?CPEG323 Homework Review I Long Chen October, 17th, 2005$ Homework 1Basic Computer Terms Problem 1: Find the correct word that best matches the given description Problem 2: Classify the items into the categories You need to read Chapter 1 of the textbook to understand/answer these questionsDZ{ZRZQFHomework 1 - contProblem 3 On average, it takes half a revolution for the desired data on the disk to spin under the read/write head. Disk is rotating 7200 revolutions per minute (RPM) Average time for the data to rotate under the disk head? Answer: 1 min / 7200 * <  DHomework 1 - contProblem 4 One compute issues 30 network requests per second Each request is on average 64KB Will a 100Mbit Ethernet link be sufficient? Answer 30 * 64 KB/s = 1,920 KB/s = 15,360 Kbit/s 100Mbit/s > 15,360 Kbit/s, sufficient! B (Byte) versus b (bit) (Bps versus bps)\ ~z ~z Homework 26Problem 1: Draw the Control Flow Graph (CFG) of code 6 * + Homework 2 - contProblem 2 A) Why doesn t MIPS have a subtract immediate instruction? Answer: MIPS has a add immediate instruction Positive and negative immediate Add neg imm = sub pos imm B) Hexadecimal number -> binary number C) Binary number -> hexadecimal numberj D_N ; _N> O Homework 2 - contYProblem 3 Implement the C code in MIPS Draw the status of the stack Indicate locations of $sp and $fp Stack pointer: a value denoting the most recently allocated address in a stack Frame pointer: a value denoting the location of the saved registers and local variables for a given procedure (point to the first word of the frame of a procedure)X P\PPP ]c Homework 2 - cont  Homework 2 - contiint i; void set_array(int num) { int arrray[10]; for (i=0;i<10;i++){ array[i]=compare(num,i); } }jPjZ  '  set_array: addi $sp, $sp, -52 # move stack pointer sw $fp, 48($sp) # save frame pointer sw $ra, 44($sp) # save return address sw $a0, 40($sp) # save parameter (num) addi $fp, $sp, 48 # establish frame pointer add $s0, $zero, $zero # i = 0 addi $t0, $zero, 10 # max iterations is 10 loop: sll $t1, $s0, 2 # $t1 = i * 4 add $t2, $sp, $t1 # $t2 = address of array[i] add $a0, $a0, $zero # pass num as parameter add $a1, $s0, $zero # pass i as parameter jal compare # call compare(num, i),P l    %         !  &    D  .  B  Z        Homework 2 - contQint compare( int a, int b) { if (sub(a, b) >= 0) return 1; else return 0; }RPRH  + compare: addi $sp, $sp, -8 # move stack pointer sw $fp, 4($sp) # save frame pointer sw $ra, 0($sp) # save return address addi $fp, $sp, 4 # establish frame pointer jal sub # can jump directly to sub slt $v0, $v0, $zero # if sub(a,b) >= 0, return 1 slti $v0, $v0, 1 lw $ra, 0($sp) # restore return address lw $fp, 4($sp) # restore frame pointer addi $sp, $sp, 8 # restore stack pointer jr $ra # return,P   $             $  "           #    "  &       Homework 2 - cont  Homework 2 - contkProblem 4 Comment the following MIPS code Descript the functionality ($v0 = ?) As inputs, $a0 = a; $a1 = b 6 a a Homework 2 - conttProblem 5 Explain why an assembler might have problems directly implementing the branch instruction in the following code segment here: beq $s0, $s2, there & there: add $s0, $s0, $s04 x9 .Homework 2 - contJump instruction: j 10000 Conditional branch instruction: beq $s0, $s2, there New PC = PC + Branch address (PC-relative addressing) &Z[8,D,Homework 2 - contOne simple solution would be here: bne $s0, $s2, skip j there skip: & there: add $s0, $s0, $s0 This will work as long as our program does not cross the 256MB address boundary described in the elaboration on page 98 in the textbook.ZZBZZB.%    Homework 3  2Good Luck on your test! J6DD  1 0 4(  4r 4 S  _ 0F  _   4 BL  ?v  f0Please refer to the solution to be posted today.11F$H 4 0޽h ? fff___PPT10i.F )DŽ+D=' L = @B +rYD1r-( / 00DArialngsRomanhhx: 0"DTahomagsRomanhhx: 0" DTimes New Romanhhx: 00DWingdingsRomanhhx: 05% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@՜.+,08    On-screen Show -s>A ArialTahomaTimes New Roman Wingdings宋体ShimmerCPEG323 Homework Review I Homework 1Homework 1 - contHomework 1 - cont Homework 2H        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E return address addi $fp, $sp, 4 # establish frame pointer jal sub # can jump directly to sub slt $v0, $v0, $zero # if sub(a,b) >= 0, return 1 slti $v0, $v0, 1 lw $ra, 0($sp) # restore return address lw $fp, 4($sp) # restore frame pointer addi $sp, $sp, 8 # restore stack pointer jr $ra # return,P   $             $  "           #    "  &       Homework 2 - cont  Homework 2 - contkProblem 4 Comment the following MIPS code Descript the functionality ($v0 = ?) As inputs, $a0 = a; $a1 = b 6 a a Homework 2 - conttProblem 5 Explain why an assembler might have problems directly implementing the branch instruction in the following code segment here: beq $s0, $s2, there & there: add $s0, $s0, $s04 x9 .Homework 2 - contJump instruction: j 10000 Conditional branch instruction: beq $s0, $s2, there New PC = PC + Branch address (PC-relative addressing) &Z[8,D,Homework 2 - contOne simple solution would be here: bne $s0, $s2, skip j there skip: & there: add $s0, $s0, $s0 This will work as long as our program does not cross the 256MB address boundary described in the elaboration on page 98 in the textbook.ZZBZZB.%    Homework 3  2Good Luck on your test! J6DD  1 0 4(  4r 4 S  _ 0F  _   4 BL  ?v  3Please refer to the solution to be posted by today.44F$*H 4 0޽h ? fff___PPT10i.F )DŽ+D=' L = @B +rC\ G1r-( / 00DArialngsRomanhhx: 0"DTahomagsRomanhhx: 0" DTimes New Romanhhx: 00DWingdingsRomanhhx: 0 A(.  @n?" dd@  @@`` V N x4N ////>>    5 ()  HG,,:;=>?@&ABCEFG HIJKLM?2$a=Ir$R$9CD(xKPҪ 0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab ̙@8123ʚ;ʚ;g4BdBd@x: 04ppp@ <4dddd4 0h 80___PPT10 ?  %?CPEG323 Homework Review I Long Chen October, 17th, 2005$ Homework 1Basic Computer Terms Problem 1: Find the correct word that best matches the given description Problem 2: Classify the items into the categories You need to read Chapter 1 of the textbook to understand/answer these questionsDZ{ZRZQFHomework 1 - contProblem 3 On average, it takes half a revolution for the desired data on the disk to spin under the read/write head. Disk is rotating 7200 revolutions per minute (RPM) Average time for the data to rotate under the disk head? Answer: 1 min / 7200 * <  DHomework 1 - contProblem 4 One compute issues 30 network requests per second Each request is on average 64KB Will a 100Mbit Ethernet link be sufficient? Answer 30 * 64 KB/s = 1,920 KB/s = 15,360 Kbit/s 100Mbit/s > 15,360 Kbit/s, sufficient! B (Byte) versus b (bit) (Bps versus bps)\ ~z ~z Homework 26Problem 1: Draw the Control Flow Graph (CFG) of code 6 * + Homework 2 - contProblem 2 A) Why doesn t MIPS have a subtract immediate instruction? Answer: MIPS has a add immediate instruction Positive and negative immediate Add neg imm = sub pos imm B) Hexadecimal number -> binary number C) Binary number -> hexadecimal numberj D_N ; _N> O Homework 2 - contYProblem 3 Implement the C code in MIPS Draw the status of the stack Indicate locations of $sp and $fp Stack pointer: a value denoting the most recently allocated address in a stack Frame pointer: a value denoting the location of the saved registers and local variables for a given procedure (point to the first word of the frame of a procedure)X P\PPP ]c Homework 2 - cont  Homework 2 - contiint i; void set_array(int num) { int arrray[10]; for (i=0;i<10;i++){ array[i]=compare(num,i); } }jPjZ  '  set_array: addi $sp, $sp, -52 # move stack pointer sw $fp, 48($sp) # save frame pointer sw $ra, 44($sp) # save return address sw $a0, 40($sp) # save parameter (num) addi $fp, $sp, 48 # establish frame pointer add $s0, $zero, $zero # i = 0 addi $t0, $zero, 10 # max iterations is 10 loop: sll $t1, $s0, 2 # $t1 = i * 4 add $t2, $sp, $t1 # $t2 = address of array[i] add $a0, $a0, $zero # pass num as parameter add $a1, $s0, $zero # pass i as parameter jal compare # call compare(num, i),P l    %         !  &    D  .  B  Z        Homework 2 - contQint compare( int a, int b) { if (sub(a, b) >= 0) return 1; else return 0; }RPRH  + compare: addi $sp, $sp, -8 # move stack pointer sw $fp, 4($sp) # save frame pointer sw $ra, 0($sp) # save return address addi $fp, $sp, 4 # establish frame pointer jal sub # can jump directly to sub slt $v0, $v0, $zero # if sub(a,b) >= 0, return 1 slti $v0, $v0, 1 lw $ra, 0($sp) # restore return address lw $fp, 4($sp) # restore frame pointer addi $sp, $sp, 8 # restore stack pointer jr $ra # return,P   $             $  "           #    "  &       Homework 2 - cont  Homework 2 - contkProblem 4 Comment the following MIPS code Descript the functionality ($v0 = ?) As inputs, $a0 = a; $a1 = b 6 a a Homework 2 - conttProblem 5 Explain why an assembler might have problems directly implementing the branch instruction in the following code segment here: beq $s0, $s2, there & there: add $s0, $s0, $s04 x9 .Homework 2 - contJump instruction: j 10000 Conditional branch instruction: beq $s0, $s2, there New PC = PC + Branch address (PC-relative addressing) &Z[8,D,Homework 2 - contOne simple solution would be here: bne $s0, $s2, skip j there skip: & there: add $s0, $s0, $s0 This will work as long as our program does not cross the 256MB address boundary described in the elaboration on page 98 in the textbook.ZZBZZB.%    Homework 3  2Good Luck on your test! J6DD   1 0  4(  4r 4 S  _ 0F  _   4 BL  ?v  4Please refer to the solution to be posted by tonight55F$-H 4 0޽h ? fff___PPT10i.F )DŽ+D=' L = @B +rFGt"Gw1r-( / 00DArialngsRomanhhx: 0"DTahomagsRomanhhx: 0" DTimes New Romanhhx: 00DWingdingsRomanhhx: 0 A(.  @n?" dd@  @@`` V N x4N ////>>    5 ()  HG,,:;=>?@&ABCEFG HIJKLM?2$a=Ir$R$9CD(xKPҪ 0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab ̙@8123ʚ;ʚ;g4BdBd@x: 04ppp@ <4dddd4 0h 80___PPT10 ?  %?CPEG323 Homework Review I Long Chen October, 17th, 2005$ Homework 1Basic Computer Terms Problem 1: Find the correct word that best matches the given description Problem 2: Classify the items into the categories You need to read Chapter 1 of the textbook to understand/answer these questionsDZ{ZRZQFHomework 1 - contProblem 3 On average, it takes half a revolution for the desired data on the disk to spin under the read/write head. Disk is rotating 7200 revolutions per minute (RPM) Average time for the data to rotate under the disk head? Answer: 1 min / 7200 * <  DHomework 1 - contProblem 4 One compute issues 30 network requests per second Each request is on average 64KB Will a 100Mbit Ethernet link be sufficient? Answer 30 * 64 KB/s = 1,920 KB/s = 15,360 Kbit/s 100Mbit/s > 15,360 Kbit/s, sufficient! B (Byte) versus b (bit) (Bps versus bps)\ ~z ~z Homework 26Problem 1: Draw the Control Flow Graph (CFG) of code 6 * + Homework 2 - contProblem 2 A) Why doesn t MIPS have a subtract immediate instruction? Answer: MIPS has a add immediate instruction Positive and negative immediate Add neg imm = sub pos imm B) Hexadecimal number -> binary number C) Binary number -> hexadecimal numberj D_N ; _N> O Homework 2 - contYProblem 3 Implement the C code in MIPS Draw the status of the stack Indicate locations of $sp and $fp Stack pointer: a value denoting the most recently allocated address in a stack Frame pointer: a value denoting the location of the saved registers and local variables for a given procedure (point to the first word of the frame of a procedure)X P\PPP ]c Homework 2 - cont  Homework 2 - contiint i; void set_array(int num) { int arrray[10]; for (i=0;i<10;i++){ array[i]=compare(num,i); } }jPjZ  '  set_array: addi $sp, $sp, -52 # move stack pointer sw $fp, 48($sp) # save frame pointer sw $ra, 44($sp) # save return address sw $a0, 40($sp) # save parameter (num) addi $fp, $sp, 48 # establish frame pointer add $s0, $zero, $zero # i = 0 addi $t0, $zero, 10 # max iterations is 10 loop: sll $t1, $s0, 2 # $t1 = i * 4 add $t2, $sp, $t1 # $t2 = address of array[i] add $a0, $a0, $zero # pass num as parameter add $a1, $s0, $zero # pass i as parameter jal compare # call compare(num, i),P l    %         !  &    D  .  B  Z        Homework 2 - contQint compare( int a, int b) { if (sub(a, b) >= 0) return 1; else return 0; }RPRH  + compare: addi $sp, $sp, -8 # move stack pointer sw $fp, 4($sp) # save frame pointer sw $ra, 0($sp) # save return address addi $fp, $sp, 4 # establish frame pointer jal sub # can jump directly to sub slt $v0, $v0, $zero # if sub(a,b) >= 0, return 1 slti $v0, $v0, 1 lw $ra, 0($sp) # restore return address lw $fp, 4($sp) # restore frame pointer addi $sp, $sp, 8 # restore stack pointer jr $ra # return,P   $             $  "           #    "  &       Homework 2 - cont  Homework 2 - contkProblem 4 Comment the following MIPS code Descript the functionality ($v0 = ?) As inputs, $a0 = a; $a1 = b 6 a a Homework 2 - conttProblem 5 Explain why an assembler might have problems directly implementing the branch instruction in the following code segment here: beq $s0, $s2, there & there: add $s0, $s0, $s04 x9 .Homework 2 - contJump instruction: j 10000 Conditional branch instruction: beq $s0, $s2, there New PC = PC + Branch address (PC-relative addressing) &Z[8,D,Homework 2 - contOne simple solution would be here: bne $s0, $s2, skip j there skip: & there: add $s0, $s0, $s0 This will work as long as our program does not cross the 256MB address boundary described in the elaboration on page 98 in the textbook.ZZBZZB.%    Homework 3  2Good Luck on your test! J6DD  1 0 P(  r  S 0F     S {0<$D 0  H  0޽h ? fff___PPT10n.%,+YDB' L = @B D' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(+r xw=1-( / 00DArialngsRomanhhx: 0"DTahomagsRomanhhx: 0" DTimes New Romanhhx: 00DWingdingsRomanhhx: 0 A(.  @n?" dd@  @@`` V N x4N ////>>    5 ()  HG,,:;=>?@&ABCEFG HIJKLM?2$a=Ir$R$9CD(xKPҪ 0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab ̙@8123ʚ;ʚ;g4BdBd@x: 04ppp@ <4dddd4 0h 80___PPT10 ?  %WCPEG323 Homework Review I Long Chen October, 17th, 2005$ Homework 1Basic Computer Terms Problem 1: Find the correct word that best matches the given description Problem 2: Classify the items into the categories You need to read Chapter 1 of the textbook to understand/answer these questionsDZ{ZRZQFHomework 1 - contProblem 3 On average, it takes half a revolution for the desired data on the disk to spin under the read/write head. Disk is rotating 7200 revolutions per minute (RPM) Average time for the data to rotate under the disk head? Answer: 1 min / 7200 * <  DHomework 1 - contProblem 4 One compute issues 30 network requests per second Each request is on average 64KB Will a 100Mbit Ethernet link be sufficient? Answer 30 * 64 KB/s = 1,920 KB/s = 15,360 Kbit/s 100Mbit/s > 15,360 Kbit/s, sufficient! B (Byte) versus b (bit) (Bps versus bps)\ ~z ~z Homework 26Problem 1: Draw the Control Flow Graph (CFG) of code 6 * + Homework 2 - contProblem 2 A) Why doesn t MIPS have a subtract immediate instruction? Answer: MIPS includes add immediate instruction Positive and negative immediate Add neg imm = sub pos imm B) Hexadecimal number -> binary number C) Binary number -> hexadecimal numberj DbN ; bNPS ; O Homework 2 - contYProblem 3 Implement the C code in MIPS Draw the status of the stack Indicate locations of $sp and $fp Stack pointer: a value denoting the most recently allocated address in a stack Frame pointer: a value denoting the location of the saved registers and local variables for a given procedure (point to the first word of the frame of a procedure)X P\PPP ]c Homework 2 - cont  Homework 2 - contiint i; void set_array(int num) { int arrray[10]; for (i=0;i<10;i++){ array[i]=compare(num,i); } }jPjZ  '  set_array: addi $sp, $sp, -52 # move stack pointer sw $fp, 48($sp) # save frame pointer sw $ra, 44($sp) # save return address sw $a0, 40($sp) # save parameter (num) addi $fp, $sp, 48 # establish frame pointer add $s0, $zero, $zero # i = 0 addi $t0, $zero, 10 # max iterations is 10 loop: sll $t1, $s0, 2 # $t1 = i * 4 add $t2, $sp, $t1 # $t2 = address of array[i] add $a0, $a0, $zero # pass num as parameter add $a1, $s0, $zero # pass i as parameter jal compare # call compare(num, i),P l    %         !  &    D  .  B  Z        Homework 2 - contQint compare( int a, int b) { if (sub(a, b) >= 0) return 1; else return 0; }RPRH  + compare: addi $sp, $sp, -8 # move stack pointer sw $fp, 4($sp) # save frame pointer sw $ra, 0($sp) # save return address addi $fp, $sp, 4 # establish frame pointer jal sub # can jump directly to sub slt $v0, $v0, $zero # if sub(a,b) >= 0, return 1 slti $v0, $v0, 1 lw $ra, 0($sp) # restore return address lw $fp, 4($sp) # restore frame pointer addi $sp, $sp, 8 # restore stack pointer jr $ra # return,P   $             $  "           #    "  &       Homework 2 - cont  Homework 2 - contkProblem 4 Comment the following MIPS code Descript the functionality ($v0 = ?) As inputs, $a0 = a; $a1 = b 6 a a Homework 2 - conttProblem 5 Explain why an assembler might have problems directly implementing the branch instruction in the following code segment here: beq $s0, $s2, there & there: add $s0, $s0, $s04 x9 .Homework 2 - contJump instruction: j 10000 Conditional branch instruction: beq $s0, $s2, there New PC = PC + Branch address (PC-relative addressing) &Z[8,D,Homework 2 - contOne simple solution would be here: bne $s0, $s2, skip j there skip: & there: add $s0, $s0, $s0 This will work as long as our program does not cross the 256MB address boundary described in the elaboration on page 98 in the textbook.ZZBZZB.%    Homework 3  2Good Luck on your test! J6DD  1 0 P(  r  S l0F     S D0<$@ 0  H  0޽h ? fff  ___PPT10 .+@+ED ' _ = @B Di ' = @BA?%,( < +O%,( < +D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*EN%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*Nv%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*v%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(Dh' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(+ry  U-1-( / 00DArialngsRomanhhx: 0"DTahomagsRomanhhx: 0" DTimes New Romanhhx: 00DWingdingsRomanhhx: 0 A(.  @n?" dd@  @@`` V N x4N ////>>    5 ()  HG,,:;=>?@&ABCEFG HIJKLM?2$a=Ir$R$9CD(xKPҪ 0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab ̙@8123ʚ;ʚ;g4BdBd@x: 04ppp@ <4dddd4 0h 80___PPT10 ?  %WCPEG323 Homework Review I Long Chen October, 17th, 2005$ Homework 1Basic Computer Terms Problem 1: Find the correct word that best matches the given description Problem 2: Classify the items into the categories You need to read Chapter 1 of the textbook to understand/answer these questionsDZ{ZRZQFHomework 1 - contProblem 3 On average, it takes half a revolution for the desired data on the disk to spin under the read/write head. Disk is rotating 7200 revolutions per minute (RPM) Average time for the data to rotate under the disk head? Answer: 1 min / 7200 * <  DHomework 1 - contProblem 4 One compute issues 30 network requests per second Each request is on average 64KB Will a 100Mbit Ethernet link be sufficient? Answer 30 * 64 KB/s = 1,920 KB/s = 15,360 Kbit/s 100Mbit/s > 15,360 Kbit/s, sufficient! B (Byte) versus b (bit) (Bps versus bps)\ ~z ~z Homework 26Problem 1: Draw the Control Flow Graph (CFG) of code 6 * + Homework 2 - contProblem 2 A) Why doesn t MIPS have a subtract immediate instruction? Answer: MIPS includes add immediate instruction Positive and negative immediate Add neg imm = sub pos imm B) Hexadecimal number -> binary number C) Binary number -> hexadecimal numberj DbN ; bNPS ; O Homework 2 - contYProblem 3 Implement the C code in MIPS Draw the status of the stack Indicate locations of $sp and $fp Stack pointer: a value denoting the most recently allocated address in a stack Frame pointer: a value denoting the location of the saved registers and local variables for a given procedure (point to the first word of the frame of a procedure)X P\PPP ]c Homework 2 - cont  Homework 2 - contiint i; void set_array(int num) { int arrray[10]; for (i=0;i<10;i++){ array[i]=compare(num,i); } }jPjZ  '  set_array: addi $sp, $sp, -52 # move stack pointer sw $fp, 48($sp) # save frame pointer sw $ra, 44($sp) # save return address sw $a0, 40($sp) # save parameter (num) addi $fp, $sp, 48 # establish frame pointer add $s0, $zero, $zero # i = 0 addi $t0, $zero, 10 # max iterations is 10 loop: sll $t1, $s0, 2 # $t1 = i * 4 add $t2, $sp, $t1 # $t2 = address of array[i] add $a0, $a0, $zero # pass num as parameter add $a1, $s0, $zero # pass i as parameter jal compare # call compare(num, i),P l    %         !  &    D  .  B  Z        Homework 2 - contQint compare( int a, int b) { if (sub(a, b) >= 0) return 1; el5%  N E5%  N F   5%   se return 0; }RPRH  + compare: addi $sp, $sp, -8 # move stack pointer sw $fp, 4($sp) # save frame pointer sw $ra, 0($sp) # save return address addi $fp, $sp, 4 # establish frame pointer jal sub # can jump directly to sub slt $v0, $v0, $zero # if sub(a,b) >= 0, return 1 slti $v0, $v0, 1 lw $ra, 0($sp) # restore return address lw $fp, 4($sp) # restore frame pointer addi $sp, $sp, 8 # restore stack pointer jr $ra # return,P   $             $  "           #    "  &       Homework 2 - cont  Homework 2 - contkProblem 4 Comment the following MIPS code Descript the functionality ($v0 = ?) As inputs, $a0 = a; $a1 = b 6 a a Homework 2 - conttProblem 5 Explain why an assembler might have problems directly implementing the branch instruction in the following code segment here: beq $s0, $s2, there & there: add $s0, $s0, $s04 x9 .Homework 2 - contJump instruction: j 10000 Conditional branch instruction: beq $s0, $s2, there New PC = PC + Branch address (PC-relative addressing) &Z[8,D,Homework 2 - contOne simple solution would be here: bne $s0, $s2, skip j there skip: & there: add $s0, $s0, $s0 This will work as long as our program does not cross the 256MB address boundary described in the elaboration on page 98 in the textbook.ZZBZZB.%    Homework 3  2Good Luck on your test! J6DD riE1.( J/ 0|DArialngsRomanhhtx: 0DTahomagsRomanh8z[ 00DTahomagsM8 08z[ 00" DTimes New Roman8 08z[ 000DWingdingsRoman8 08z[ 00@D[SOgdingsRoman8 08z[ 00 A(.  @n?" dd@  @@`` V N x4N ////>>    5 ()  HG,,:;=>?@&ABCEFG HIJKLM?2$a=Ir$R$9CD(xKPҪ 0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab ̙@8123ʚ;ʚ;g4GdGdHx: 0ppp@ <4dddd4 0ht 80___PPT10 ?  %CPEG323 Homework Review I Long Chen October, 17th, 2005$ Homework 1Basic Computer Terms Problem 1: Find the correct word that best matches the given description Problem 2: Classify the items into the categories You need to read Chapter 1 of the textbook to understand/answer these questionsDZ{ZRZQFHomework 1 - contProblem 3 On average, it takes half a revolution for the desired data on the disk to spin under the read/write head. Disk is rotating 7200 revolutions per minute (RPM) Average time for the data to rotate under the disk head? Answer: 1 min / 7200 * <  DHomework 1 - contProblem 4 One computer requests per second Each request is on average 64KB Will a 100Mbit Ethernet link be sufficient? Answer 30 * 64 KB/s = 1,920 KB/s = 15,360 Kbit/s 100Mbit/s > 15,360 Kbit/s, sufficient! B (Byte) versus b (bit) (Bps versus bps)\ mz mz Homework 26Problem 1: Draw the Control Flow Graph (CFG) of code 6 * + Homework 2 - contProblem 2 A) Why doesn t MIPS have a subtract immediate instruction? Answer: MIPS includes add immediate instruction Positive and negative immediate Add neg imm = sub pos imm B) Hexadecimal number -> binary number C) Binary number -> hexadecimal numberj DbN ; bN> O Homework 2 - contYProblem 3 Implement the C code in MIPS Draw the status of the stack Indicate locations of $sp and $fp Stack pointer: a value denoting the most recently allocated address in a stack Frame pointer: a value denoting the location of the saved registers and local variables for a given procedure (point to the first word of the frame of a procedure)X P\PPP ]c Homework 2 - cont  Homework 2 - contiint i; void set_array(int num) { int arrray[10]; for (i=0;i<10;i++){ array[i]=compare(num,i); } }jPjZ  '  set_array: addi $sp, $sp, -52 # move stack pointer sw $fp, 48($sp) # save frame pointer sw $ra, 44($sp) # save return address sw $a0, 40($sp) # save parameter (num) addi $fp, $sp, 48 # establish frame pointer add $s0, $zero, $zero # i = 0 addi $t0, $zero, 10 # max iterations is 10 loop: sll $t1, $s0, 2 # $t1 = i * 4 add $t2, $sp, $t1 # $t2 = address of array[i] add $a0, $a0, $zero # pass num as parameter add $a1, $s0, $zero # pass i as parameter jal compare # call compare(num, i)4P ffl    %         !  &    D  .  B  Z        Homework 2 - contQint compare( int a, int b) { if (sub(a, b) >= 0) return 1; else return 0; }RPRH  + compare: addi $sp, $sp, -8 # move stack pointer sw $fp, 4($sp) # save frame pointer sw $ra, 0($sp) # save return address addi $fp, $sp, 4 # establish frame pointer jal sub # can jump directly to sub slt $v0, $v0, $zero # if sub(a,b) >= 0, return 1 slti $v0, $v0, 1 lw $ra, 0($sp) # restore return address lw $fp, 4($sp) # restore frame pointer addi $sp, $sp, 8 # restore stack pointer jr $ra # return4Pff   $             $  "           #    "  &       Homework 2 - cont  Homework 2 - contkProblem 4 Comment the following MIPS code Descript the functionality ($v0 = ?) As inputs, $a0 = a; $a1 = b 6 a a Homework 2 - conttProblem 5 Explain why an assembler might have problems directly implementing the branch instruction in the following code segment here: beq $s0, $s2, there & there: add $s0, $s0, $s04 x9 .Homework 2 - contJump instruction: j 10000 Conditional branch instruction: beq $s0, $s2, there New PC = PC + Branch address (PC-relative addressing) &Z[8,D,Homework 2 - contOne simple solution would be here: bne $s0, $s2, skip j there skip: & there: add $s0, $s0, $s0 This will work as long as our program does not cross the 256MB address boundary described in the elaboration on page 98 in the textbook.vZBZZbBffb.%    Homework 3  2Good Luck on your test! J6DD   1 0 P(  r  S e0F     S i0<$@ 0  H  0޽h ? fff  ___PPT10r .'@ԇ+EDF ' 2= @B D ' = @BA?%,( < +O%,( < +D' =%(Dh' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*w~%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*~%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(+r/8C N1.( J/ 0|DArialngsRomanhhtx: 0DTahomagsRomanh////>>    5 ()  HG,,:;=>?@&ABCEFG HIJKLM?2$a=Ir$R$9CD(xKPҪ 0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab ̙@8123ʚ;ʚ;g4GdGd|x: 0ppp@ <4dddd4 0ht 80___PPT10 ?  %CPEG323 Homework Review I Long Chen October, 17th, 2005$ Homework 1Basic Computer Terms Problem 1: Find the correct word that best matches the given description Problem 2: Classify the items into the categories You need to read Chapter 1 of the textbook to understand/answer these questionsDZ{ZRZQFHomework 1 - contProblem 3 On average, it takes half a revolution for the desired data on the disk to spin under the read/write head. Disk is rotating 7200 revolutions per minute (RPM) Average time for the data to rotate under the disk head? Answer: 1 min / 7200 * <  DHomework 1 - contProblem 4 One computer issues 30 requests per second Each request is on average 64KB Will a 100Mbit Ethernet link be sufficient? Answer 30 * 64 KB/s = 1,920 KB/s = 15,360 Kbit/s 100Mbit/s > 15,360 Kbit/s, sufficient! B (Byte) versus b (bit) (Bps versus bps)\ wz wz, Homework 26Problem 1: Draw the Control Flow Graph (CFG) of code 6 * + Homework 2 - contProblem 2 A) Why doesn t MIPS have a subtract immediate instruction? Answer: MIPS includes add immediate instruction Positive and negative immediate Add neg imm = sub pos imm B) Hexadecimal number -> binary number C) Binary number -> hexadecimal numberj DbN ; bN> O Homework 2 - contYProblem 3 Implement the C code in MIPS Draw the status of the stack Indicate locations of $sp and $fp Stack pointer: a value denoting the most recently allocated address in a stack Frame pointer: a value denoting the location of the saved registers and local variables for a given procedure (point to the first word of the frame of a procedure)X P\PPP ]c Homework 2 - cont  Homework 2 - contiint i; void set_array(int num) { int arrray[10]; for (i=0;i<10;i++){ array[i]=compare(num,i); } }jPjZ  '  set_array: addi $sp, $sp, -52 # move stack pointer sw $fp, 48($sp) # save frame pointer sw $ra, 44($sp) # save return address sw $a0, 40($sp) # save parameter (num) addi $fp, $sp, 48 # establish frame pointer add $s0, $zero, $zero # i = 0 addi $t0, $zero, 10 # max iterations is 10 loop: sll $t1, $s0, 2 # $t1 = i * 4 add $t2, $sp, $t1 # $t2 = address of array[i] add $a0, $a0, $zero # pass num as parameter add $a1, $s0, $zero # pass i as parameter jal compare # call compare(num, i)4P ffl    %         !  &    D  .  B  Z        Homework 2 - contQint compare( int a, int b) { if (sub(a, b) >= 0) return 1; else return 0; }RPRH  + compare: addi $sp, $sp, -8 # move stack pointer sw $fp, 4($sp) # save frame pointer sw $ra, 0($sp) # save return address addi $fp, $sp, 4 # establish frame pointer jal sub # can jump directly to sub slt $v0, $v0, $zero # if sub(a,b) >= 0, return 1 slti $v0, $v0, 1 lw $ra, 0($sp) # restore return address lw $fp, 4($sp) # restore frame pointer addi $sp, $sp, 8 # restore stack pointer jr $ra # return4Pff   $             $  "           #    "  &       Homework 2 - cont  Homework 2 - contkProblem 4 Comment the following MIPS code Descript the functionality ($v0 = ?) As inputs, $a0 = a; $a1 = b 6 a a Homework 2 - conttProblem 5 Explain why an assembler might have problems directly implementing the branch instruction in the following code segment here: beq $s0, $s2, there & there: add $s0, $s0, $s04 x9 .Homework 2 - contJump instruction: j 10000 Conditional branch instruction: beq $s0, $s2, there New PC = PC + Branch address (PC-relative addressing) &Z[8,D,Homework 2 - contOne simple solution would be here: bne $s0, $s2, skip j there skip: & there: add $s0, $s0, $s0 This will work as long as our program does not cross the 256MB address boundary described in the elaboration on page 98 in the textbook.vZBZZbBffb.%    Homework 3  2Good Luck on your test! J6DD   1 0 P(  r  S τ0F     S \0<$@ 0  H  0޽h ? fff  ___PPT10r .'@ԇ+EDF ' 1= @B D ' = @BA?%,( < +O%,( < +D' =%(Dh' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(+r.OS} O 1-( J/ 0|DArialngsRomanhhtx: 0DTahomagsRomanhhtx: 0" DTimes New Romanhhtx: 00DWingdingsRomanhhtx: 0@D[SOgdingsRomanhhtx: 0 A(.  @n?" dd@  @@`` V N x4N ////>>    5 ()  HG,,:;=>?@&ABCEFG HIJKLM?2$a=Ir$R$9CD(xKPҪ 0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab ̙@8123ʚ;ʚ;g4GdGd|x: 0ppp@ <4dddd4 0ht 80___PPT10 ?  %jCPEG323 Homework Review I Long Chen October, 17th, 2005$ Homework 1Basic Computer Terms Problem 1: Find the correct word that best matches the given description Problem 2: Classify the items into the categories You need to read Chapter 1 of the textbook to understand/answer these questionsDZ{ZRZQFHomework 1 - contProblem 3 On average, it takes half a revolution for the desired data on the disk to spin under the read/write head. Disk is rotating 7200 revolutions per minute (RPM) Average time for the data to rotate under the disk head? Answer: 1 min / 7200 * <  DHomework 1 - contProblem 4 One computer issues 30 requests per second Each request is on average 64KB Will a 100Mbit Ethernet link be sufficient? Answer 30 * 64 KB/s = 1,920 KB/s = 15,360 Kbit/s 100Mbit/s > 15,360 Kbit/s, sufficient! B (Byte) versus b (bit) (Bps versus bps)\ wz wz Homework 26Problem 1: Draw the Control Flow Graph (CFG) of code 6 * + Homework 2 - contProblem 2 A) Why doesn t MIPS have a subtract immediate instruction? Answer: MIPS includes add immediate instruction Positive and negative immediate Add neg imm = sub pos imm B) Hexadecimal number -> binary number C) Binary number -> hexadecimal numberj DbN ; bN> O Homework 2 - contYProblem 3 Implement the C code in MIPS Draw the status of the stack Indicate locations of $sp and $fp Stack pointer: a value denoting the most recently allocated address in a stack Frame pointer: a value denoting the location of the saved registers and local variables for a given procedure (point to the first word of the frame of a procedure)X P\PPP ]c Homework 2 - cont  Homework 2 - contiint i; void set_array(int num) { int arrray[10]; for (i=0;i<10;i++){ array[i]=compare(num,i); } }jPjZ  '  set_array: addi $sp, $sp, -52 # move stack pointer sw $fp, 48($sp) # save frame pointer sw $ra, 44($sp) # save return address sw $a0, 40($sp) # save parameter (num) addi $fp, $sp, 48 # establish frame pointer add $s0, $zero, $zero # i = 0 addi $t0, $zero, 10 # max iterations is 10 loop: sll $t1, $s0, 2 # $t1 = i * 4 add $t2, $sp, $t1 # $t2 = address of array[i] add $a0, $a0, $zero # pass num as parameter add $a1, $s0, $zero # pass i as parameter jal compare # call compare(num, i)4P ffl    %         !  &    D  .  B  Z        Homework 2 - contQint compare( int a, int b) { if (sub(a, b) >= 0) return 1; else return 0; }RPRH  + compare: addi $sp, $sp, -8 # move stack pointer sw $fp, 4($sp) # save frame pointer sw $ra, 0($sp) # save return address addi $fp, $sp, 4 # establish frame pointer jal sub # can jump directly to sub slt $v0, $v0, $zero # if sub(a,b) >= 0, return 1 slti $v0, $v0, 1 lw $ra, 0($sp) # restore return address lw $fp, 4($sp) # restore frame pointer addi $sp, $sp, 8 # restore stack pointer jr $ra # return4Pff   $             $  "           #    "  &       Homework 2 - cont  Homework 2 - contkProblem 4 Comment the following MIPS code Descript the functionality ($v0 = ?) As inputs, $a0 = a; $a1 = b 6 a a Homework 2 - conttProblem 5 Explain why an assembler might have problems directly implementing the branch instruction in the following code segment here: beq $s0, $s2, there & there: add $s0, $s0, $s04 x9 .Homework 2 - contJump instruction: j 10000 Conditional branch instruction: beq $s0, $s2, there New PC = PC + Branch address (PC-relative addressing) &Z[8,D,Homework 2 - contOne simple solution would be here: bne $s0, $s2, skip j there skip: & there: add $s0, $s0, $s0 This will work as long as our program does not cross the 256MB address boundary described in the elaboration on page 98 in the textbook.vZBZZbBffb.%    Homework 3  2Good Luck on your test! J6DD rI%:13( J/ 0|DArialngsM8 0Root EntrydO) MPicturesCurrent UserJSummaryInformation(U omework 2 - contHomework 2 - contHomework 2 - contHomework 2 - contHomework 2 - contHomework 2 - contHomework 2 - contHomework 2 - contHomework 2 - contHomework 2 - cont Homework 3Good Luck on your test!   Fonts UsedDesign Template Slide Titles&_David L. MillsDavid L. Mills     ~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab ̙@8123ʚ;ʚ;g4ididPz[ 0pppp@ <4dddd| 0pM 80___PPT10 ?  %#CPEG323 Homework Review I`   Long Chen October, 17th, 20050`h`   Homework 1 `  Basic Computer Terms Problem 1: Find the correct word that best matches the given description Problem 2: Classify the items into the categories You need to read Chapter 1 of the textbook to understand/answer these questionsJZ{ZRZbQf  Homework 1 - cont`  Problem 3 On average, it takes half a revolution for the desired data on the disk to spin under the read/write head. Disk is rotating 7200 revolutions per minute (RPM) Average time for the data to rotate under the disk head? Answer: 1 min / 7200 * F  ``d  Homework 1 - cont`  Problem 4 One computer issues 30 requests per second Each request is on average 64KB Will a 100Mbit Ethernet link be sufficient? Answer 30 * 64 KB/s = 1,920 KB/s = 15,360 Kbit/s 100Mbit/s > 15,360 Kbit/s, sufficient! B (Byte) versus b (bit) (Bps versus bps)l wz bwbfzf   Homework 2 `  6Problem 1: Draw the Control Flow Graph (CFG) of code > * b+b6   Homework 2 - cont`  Problem 2 A) Why doesn t MIPS have a subtract immediate instruction? Answer: MIPS includes add immediate instruction Positive and negative immediate Add neg imm = sub pos imm B) Hexadecimal number -> binary number C) Binary number -> hexadecimal number~ DbN b;b fbfNbZ       O  Homework 2 - cont`  YProblem 3 Implement the C code in MIPS Draw the status of the stack Indicate locations of $sp and $fp Stack pointer: a value denoting the most recently allocated address in a stack Frame pointer: a value denoting the location of the saved registers and local variables for a given procedure (point to the first word of the frame of a procedure)d P\PPP b]bf&c    Homework 2 - cont`    Homework 2 - cont`  iint i; void set_array(int num) { int arrray[10]; for (i=0;i<10;i++){ array[i]=compare(num,i); } }jPjb        '       set_array: addi $sp, $sp, -52 # move stack pointer sw $fp, 48($sp) # save frame pointer sw $ra, 44($sp) # save return address sw $a0, 40($sp) # save parameter (num) addi $fp, $sp, 48 # establish frame pointer add $s0, $zero, $zero # i = 0 addi $t0, $zero, 10 # max iterations is 10 loop: sll $t1, $s0, 2 # $t1 = i * 4 add $t2, $sp, $t1 # $t2 = address of array[i] add $a0, $a0, $zero # pass num as parameter add $a1, $s0, $zero # pass i as parameter jal compare # call compare(num, i)4P ffl    %         !  &    D  .  B  Z        Homework 2 - cont`  Qint compare( int a, int b) { if (sub(a, b) >= 0) return 1; else return 0; }RPRbh         +  compare: addi $sp, $sp, -8 # move stack pointer sw $fp, 4($sp) # save frame pointer sw $ra, 0($sp) # save return address addi $fp, $sp, 4 # establish frame pointer jal sub # can jump directly to sub slt $v0, $v0, $zero # if sub(a,b) >= 0, return 1 slti $v0, $v0, 1 lw $ra, 0($sp) # restore return address lw $fp, 4($sp) # restore frame pointer addi $sp, $sp, 8 # restore stack pointer jr $ra # return4Pff   $             $  "           #    "  &       Homework 2 - cont`    Homework 2 - cont`  kProblem 4 Comment the following MIPS code Descript the functionality ($v0 = ?) As inputs, $a0 = a; $a1 = b B a `a``k   Homework 2 - cont`  tProblem 5 Explain why an assembler might have problems directly implementing the branch instruction in the following code segment here: beq $s0, $s2, there & there: add $s0, $s0, $s0< x9 `b&  . Homework 2 - cont`  Jump instruction: j 10000 Conditional branch instruction: beq $s0, $s2, there New PC = PC + Branch address (PC-relative addressing) .Z[b8fLD    +  Homework 2 - cont`  One simple solution would be here: bne $s0, $s2, skip j there skip: & there: add $s0, $s0, $s0 This will work as long as our program does not cross the 256MB (why?) address boundary described in the elaboration on page 98 in the textbook.zPBPPbBffbb@%  {   C  Homework 3 `    2Good Luck on your test! J<dd   } 1 0$(  0r 0 S  0F    r 0 S 8 0   H 0 0޽h ? fff___PPT10i.C$(+D=' = @B +rn}? J __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________