ࡱ> Ux ;(  , ^/ 0DTimesr Newma8`enPsd `ackDCLB Helvetica Condensed Black DComic Sans MSCondensed BlackB0DZapf DingbatsCondensed Black@DArialingbatsCondensed Black"PDtalingbatsCondensed Black2`DAppleMyungjoCondensed BlackpDTahomaungjoCondensed Black"DTimes New Romanndensed BlackDGenevaew Romanndensed BlackDArial Blackmanndensed Black"DCourier Newmanndensed Black1c  .  @n?" dd@  @@``   X  !;C     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyzm!1"AQ2aqB#Rb3 $Cr4%ScD&5T6Ed' sFtUeuV7)(GWf8vgwn]*DvHr~MksPNG  IHDRs8sBIT&CsRGB].IDATx^}Mheו$$ 2Aip zP75A سxg̒Y{ t4 iyP4Hc5A2B t*}^g{uU+:ܺ:w}wZk}ѷunv ߗo@׾z_.+Ѓo׾ 1p[¾={ \A|@׾z_.+Ѓo׾ 1p[¾={ \A|@׾z_.+Ѓo׾ 1p[¾={ \A|@׾z_.+p6?>Üx<g|6&픿xd7*|AQisa\ȻL`ǃͭM" .'c?\ kkU'C}ozħ_7׈ bW@ m /h-9dD`7uq<ڃxVCAXvaNTn\5d$ ~'Ȳz>҃ǃ13L2r?oaoub(ӗ^X  O i6rVoqf@(kc O&O\ksXg>m+G/RCHSATq[Z̭1^|g&Z4u[[LkNggT(b kѰ }㮮(&m}隮ޥQWWzX|#2 UuCW-̜Eo}01L`bMB@$ G:FB@4 e7Gfb^ I:}ʍL.IW`ᠭcM7 )EhO=v.L*䎖*p#JW?<}6~ϲ&[m<BA C}^%tI>(Tzoy@Ra v !p7؍! _<5~Y+&}q"LSRMR]W_ebץK8ɧYʥ›>~yn\C5 Lն@,^$LZ"8^VP"L /aHD*~6ۣGfP!fZ&&1MǕ%I'!ũHN{O?/J]=kFF(.h@.5Epİa&nސh@k}ZM0/)س<'O.Srxl0B&pw&@L*5 R4b ЛQ,E#R 2ek\+BaSP)fJ}ZX!4J)g p!R 8wwN,0IvvA#iVa]Iث1_bV`NAP4OLl`i7Sbqi.C}˳VRH|N[qs2ٜdK`%:UZ(^3{QMW5H@h 4>É)fg:rFH3r/ߋQqKCFj3 /4ñ+ #p&Nk;àF$_ab>j.@-dscs'_tw t\rh) DU5Y^oSbwIb4 |}u hz]u TQ ;SBe?Qlk&HvMVgd@p]u6{zH%q#2C$,K4I bDOkORUD|,RgaAfo)QM4|3` ɘg0;p%nET+͓A"n[zlq̄ΣW;MOԤ񙳺֝G0L\ Ws)=PF?<ߛHȡ\/[?.%OhgA m1&曰yK X .ڪndQ5TZcW.5lهF,+kotS&% 2;u2 S-퀸"!i"ۼXZ39.e$Ffb@7WmZf;6^8GY kF-Pw'P[kT Z4*lc\" ,5SL8tB11 z,z=1%![ 'n&y]PAi$s/c\뤍] \j}XܵA` A;1q_֎%ΨutCb4{W D9g}21])f3?Z3oD Z ,s(P8OpVJ` O1i l^!tzd 8L>;Cdu* %x qZmJQim6;ʺjH^p Q n8j2gGCKN)1WWdE1!;O`u Q8e 5T׸ê*''4Ҡ)tD7Nn j|4ƃ孀9Yl) Y˱햗WVWVWWYk< >}% Q'?eB`bEN>~ꌫPerr>bx_ DTvΆb%S_,|lpb`z_VәxO 1jawOT&@\BS)18>w`''7WGˣ513"]7 9~}x4> r<?Gǭ[^^_tdӲh?=;y6>kLbkUO@}7#O,Hg (|\ (k |@՛m-ãpɟxˋ ܣ<|'Q*^K+-Sj# 6֍wy1hV؃qQWĆZ ӽ=[M\1/S)6\l_:8@<P,ɫF1luɸQ$0L{ L«tN<}E<*.`eB`0Opă^-eVW; VnngȈ`(R7ե`bH B=ƬF'{{rvoP_= (%e;|Kwtee}ECghgtIDWWH(*_sOyyL;U w=fk3j]oZ'-7pè,kBljv/I"O Ei?7D[Z2Q ;k3Tˊ/2~%y}$}БWϚ/Ǯ|֔÷+>nxGoc2'5_ol,p%!TE(_sBL;>rfc kk>`W/0e<X奍U^PtB uNU|2 rU#Q0n #oʡ ~l8ŻڡuVȹFps 3'tjqQ;UZ]h:ޫQvh,wZ 4w0Żp,+ UԎgvO_ blV;r] 4а[(bG^żO/T$s!H<ɢ 0}x+bޒ4$~\lc<뻆 )"UE4<wm >l6oNi`X Q:imEchԟxc'iզfh. M]ް 2,L._DWQM [͆<)vr-,+n1 3q=ƍ?ri DL#p:kdn%u|~ye@( :pt M~F}.k*iGnh+^)U0~US&Y/ՈfHydI5|Uy9Uze@x%XgY9p 0W<r K]=ڄ:)a~rܐ: p%%HJbѓ|L_WL/V  !fk`ն30`rgvmFf.Jv Fd_~L.8+"oA5Iw( 1)0@i7Vt(8SԈnK5+b qQZ~QuF1 @5 9xI6x9R8K݆D[xɦY$dY61{J|}JҶ7vk6Ӵ. ?\Mj9'e֙+8jtq_^l4MGkeg.hw{_qښ3ioZ1#i~duFWG [MHB Ǯ:>tŹxsx$C.fi<-X5&^+O"~PMJ:xi64!(+ O}69{L΁<[HON ze]،pͫT. K>+xV wg旵ks³a9) qQ3|0gSDIzVLye~+q>}mlHv!C:ʏ"`_W6yϴ?hE.U_Ԩ& /u9f|>k?_Lк1,Z2-8[^lh%\^׮X!"eآ5wR:F'bu2 (cHO 2c9_`zqb]ݼul52Va7<.Rv0y-/jZ{W MCSXA[MsBrrI!ZyYVmKև',_5rJ?sWk@x< #KyRgIbp]"'52BZ0&dM0ߖr@V]ӥ"]UW$S{qqj)9o%kki;Wy%xcIrE|E_ C%H;F eZfpG|ts0gôNF[j50 T<hHn mt\6:./^)ՄLB BRͅԜ4L>),F331$rZTj3b Rl81Mޗ>L a+yspXUyU (l'-qnDp\|Y$FxliSdHΈ$#B݅OȘ=fjX M[ҊYb,U@koy\QXawߺOچ>'>v{uQ*ulE>_-NL?@F C! ` $nA|k֓k}gO\),bw6M" xYe Q8÷IJwdL<݀s(),hZ^)^ǪQ29~'kѳRzMaaVDf,[/<EY Ffl n3qc6Gk%> ]r4o N\9*cwp(=8]#Oq6;PN4s^ƩW˷OnL \Hks :G磝%b60JAR;j w2z_hV؝`9j&ˀR~=lLGK7-nR raZC>Z0ĹMח!qČR, ̵ߟ} `zdb]@y]4`i šs5Kb߇Λ7!sePn`Y+LTAV+.PHkA3h;kԈPՁAeA֟m}o{rnH]!*3T*#F,V,`_{rG9Flx +Ntrj,?I N(p"4g(س.d8^C/)d {-۾"%>|sS{Ĉ-,c[Z7=+4ÀW(~-Eq}ϋAQNu* K1k$s#Rş1U` OT-~v2cD^>ީ )_1=(kagT*6{S8I_,=jъ.v?$1\PĂqqfP~iDd82 WoIt008O0ƭBݛR 9S"~ˏbLLe0P)b󚲓as q8L0p9lM#׹&|*gζ!.)}JϟQ?=2%w0 #94&¦݈a`eQ- gwvЊft䟸2,2[@0ċ:qG )`_#em'\@gR"=`jpwG.`'<++̫T\ӵh1H]4̢z0 =V_u3?='Y!fdvrd0D1f`ě#28r-/k{OOe.P%OеџS(:I63SIFM!/!ڦOwk,a$؝0YxYV>q@MA\G}sxCut+uKIB<ʳ=59[싣BHBD n=&S0ʮE;w3ek%A1G^->e&;yN!{ꌪFýh7(%ir5BDշH3?(fH&>HUR4[sT]7YA)vlnDKӮuK=d&^kmCZ} /.#2:"EMh)~&V݆0qduў]-d3|XȾ?N,G6?z,5-7I$|4CNf6R'~qaŐ66*]OM4tC±J *#g\rNQ7{㧏/|s abTg2RAP %,^샺f1GQ$#ŋgůJi2%|34*WZgceg"uueOҬ)>Bj"=RbH, y H]t:y?k abQ&,rc>(կ#F8$L#@Aox(>ivmua Iƺ~˜dL|2#G&78ՙL^hU0!ރH^Գ|/1"-hU\[6k.ng6lmqyȡCȉ4znp٩lKM`T~`>~&٭38ZTB%';,v[u Kq<}]k9J |ʹ`(zm9 Fv]v|"9RhiGxsh4K3EiWG犉Fq;%r7YY c% %(&V+0tqD N[]'+4"}=1* xu>ɯk*iu) ̘^q[!F%qS#p:w1sZpα 2!!KNYkI|wȡ#ewVjgY )gl4Z|W.zE1q6a懐$mtV(^\=wuѝtbSC.eÝ8|&ds8 K5N^QfjNħKeėIèe1qji8_k<' 4 XQG9uћ %"b[nyE4F[aaS9G1F{:evkWlGt[^%jh<PV9'p  pstJ̛@dY6c8Uq?H %R%#LYV :NB)4d`3=r+ޒ =QT8a'@yy;zWY,!I 1pfrGC/K5WaVӣdo#$&Vm3cQ[:פJ] ps@IӆT,2$NH&jD(i GjpiA)!Wy'efb kCbCE _m`b9H%7xo>gJ SlKnPMI5,cL44ϕX= _9ORronb]Q~W^~c~Ars|=;P [~ QRo/#"\~FYN&f:%cV,+N ϽT&%7;88.FGVrˬ1Qhkܱpk_sw,N]ՙHUi k{^<ئ/[-:ofTګY1Cm >&HzycZ6gHP-WA-z{+s]IcG p;b V4@ ھf. ZD<PMqhfBCbL̓ 8q` Ǵ/uɪ ~mRGay\b(B&|787Z =5N=hF7~C˞vH.!!t(Ͷ7elti9| "xOg,p+hXhhAa-mudP쫲meF'_4&So8z)Nd Reb5{n=fRM ;q=SYgJuHN֡fBZ@wH]ґ+__;]ډU?1 km䎏0~O[z\!QK'TXJ",p>YwdAXwLJ>zjnNpÅr!?q%ZyORhPm@5q[A@\xU刌!(%Je!p8A$,-InnځՆ$B8 >>=T Cpv.ŒP#:BȚ^@_3YlMihl+Ћ!5g-0p6{+Nҳ􍅜Y,%eՄac ِNwToK6*nz&H&a5U}("8+^"'jIvJGpo!;ã?VHT@2E6zrЈ#x=Dn8S _LHvZa-j;/ǖ|?a7 QVnmnlnɺڨ6@Inh!^r]zi6#澚||>C;|}5V}ZoXMX9 IuDMet ;6`ڷ,Ѹ~z/`bl(]SʆT)z(;.s6C cBJQ9OE^K}K3'Z*LKvcF5l,-ݦ"Tb"}qT_9 x$kOj. @'edSȄiF?o0tZ_21LHs$c%^ 7r:sqhÅ^ߒK&t \bqB5?1,F \-bu<yzS‰jtlu:tAaAo2W9p!cYB\e01l]Zv:C䎔&&\bG{~?=y$D2M|ƺ& tM/b_uu &B'v]Ft>{aqXJgzǶ3n\b7hNĎ b Cɽ'eӨV &CfĖY2g gJAnE sC@`Y5$^a eVB>)P:3ړX:IJXhp{Mm} cZ2 Ÿz3G",}nj)`b쮴~ԏB y71ȠdơHO L#cX$+X9:šaTdbLvi%hҝMUԅ=(&mDU .~r‑ ʆ7m5dfpf5Q崓W9g =ɼuP&.,dG6-.2fZTSsz^^Kiicl;9=0 [ f!DAi (%17ʴF'5qj%F$(h+2<\+ ^|SWmO?Z<ʂ4I3}Π4"JϝNF;4n (%11d92ڱRMkIZ\؍Pt%3i S)c&i2ŝbt7 l,yhQm#r+y8"eHt{3b^%l4zzD6)"&2cb@}Y\xėY#"M>: r3>jk]%…WeGKFwv?QWΒW)#Og? q   u#Ruzf `C3&,.^ZUEZ~ؤpy:߾+1>vqIVЁ{#ɇ HqTv)qBN)r\2fPxyu#U3J8Z B\X lę[oAAl!Zlmö5I_~ l9ޣ"N~wvNv]/N6IhkW]F=Qz Y׺,<^a^bZ(TH8z깩ҩZi`٘h2rꗪ2],&n6摃y{ReoR]ݑr'=~ZS4֒ĝ ḼH6X*D=ؔ,Aا뤍S}w_QFmx-Wjֻ'3Y==CqqL[3ESf/ {gyhqG/"8a ~yF? ϖSz4 gٷ9Ҹ@S[-sLD%X0vO8ċYed͖B<3FZE jb/_ :sp]B3q(khf4 1p&MnrI0XCYt\,Qm+x58-xlwSai叧7">%`2G_:yc!Kׄå^Ys#n>[~׳_ZS 3kZX&z: .a|]hH3wmΪ#凜AW!E$C@]#lRmvS쨵Cm~ҊeNLvy6w4Ɉ{+7_s.Et-x Ɨ\J)0yuaV8{50 4r`CRQ|1YBnChV˦V<;;/ tW\̡oW[އ|{@G.ޠ,EL+Uu pwGx77Rjvc{4D$>ٞJGC mEp|מɕ15"Dj: ʓ/?%}h5T?R혏<մbb$}X`H+ɞɴ j\^5ζ%EXk4AcE.gY!-h E L&M [Ű3Ov͘X 9C#s$ݭFag>qwk9 ?{HDdQܛEŻ qoD}&hkb s;4+j|n&|5^ѻdk:Dr!L9 +w((@,Q0'Kɦx;y򁛟x-AqAL\I Ef/`G? ppfRZN¤S\DH .2;Ăi<2S۔˧_I7 ľ+YEzUŬk1/{ []W"ɿ^@ B@-o]m !^fث6q/YN/D$JtW x7OΓLQWW(5*' zeJVcS{{]\J^ b# 8s=?ڛlߧU*OǺ+iDeb5maR yS EH ֶT+8 < 7jmUF5?7 ts0MS/=ƶϨAl1,A!Xt:%"SOA*g ҂]v;Bg @;HdܐPk:q-9+j%_mRwOP[I! vo|Xg|}0jƂb@qMq(DW @\^ !_wYK j1tt H~bbyQs3v,5- ^q aWH2v_ jdQ VVo^ I7e_(O:".ہ4kc$,hvQUo>;BCC4b lľےr6vrL{EWKi_f/Cc=.~$R˘8* ^4#Ŝ=5ٷD*/ɲR߷h\eGHȓKg;}fਜ.f^aFDt^h߅-~DF9w⛊` bDZY:EnGo*@˙s_AaS&^_&p bY&:B\!ť4`A^w"Ŕ\PyUQ٧y4EҽHx99ƩD]g{m37^W.1=9L1'8 ..UCm5n[[o~dȡpgrM  &n ~AA\5l(5 X K*d~1`\E-XEΠ$-TmΣI/O0UڴwqwR0\#]m/ "#d.P% b0(?8 )ɾjħ q55sbNV8~E*eNLnv_BLL-c$9s+RRks :m|&mt6b7,pUl[@|& i@ `Hs, x&_x5=_xhCitm?P>S >Ss|bW}}%'|m/߈SA|M:5CXSâq"lR >S >SsjbED xs֓y==\ /=_^&# -;^^<-U5\m--D5,T$$u2@YKMWGRl 0 ㏡G[*Tִ=sxhTzL0)62J9ERDP>3Ֆ7ufPHE S*@Hz?[GLJX)ii(熪ij)Y`5 22 *XЃB:)V* ΔEKG>9d=B5٥|G1@> W  zuƮZJHeD zx#i&ideH%% ϽD4d:R*䞳~y}?=׭|ƓNLEF#H,>CJusĤ %iQ_E~:ꪪ5xiyiIHѪ+*"YAtE4PI8 ABB`Y-Q?=cxey9_ ʧ1E8F:7#WhGT~`ꩠ))kj9dDzh)ՈifZJYd*!#f})`H*~BTd:RjGbE\ooz@bxS$. hu)%<)e?GuwG8!>jgR=u~{ߺ^׽u~{ߺ^׽u~{ߺ^&f\4rrU$1S3ZG#J,~hytaRH%؄- *䪆#Ja1ӊ"(S:<:+s4}hST2Tw獵B:PMGI8VH]gHEcYn1lF]O:H>'dP֢:JėJg?<yɵp#{WYh{wO%d}ϰJaȴՙ)3̂.øfKxKS*TR Q7pz"~65BCiNqٽ:oe>/y4_گx_AOL{-Lnz?҇y4Vwk“'P~I$ȼA1^YZ(Y1oQlf|[}4:k[jVPXP-GC\z'E|z^}ѭWzx;6ixTE]Z-ۈoCI O08qE-诂]xm+2jkABTi$֠)ܭw:mCCϡ= J:X_6on_d Xh^:M_mZxf[.:Uucxc모h֚uSåj6%Diñ6z\]jo&z|fŴzR2乯Â@L}^{fÚM^c3Ѷ&=E=M,NĔҬ4DbUCUzw4}M({:-Tk^pC}pzKS`-6N됬 _[KBS+Ut M2TӬo`b홊Q0+iR.X^$)#Zkk%V0<34)\~@~m]׽uo/gfE=}(yDzֿZta;$`<):ǧw5n+HIQQYU;T,5,IC,Ya6%n._UqCԝ}M(DX( 0u/ ۅ^Xre]=Ԕ"IC;J`>6?G)2+S$gTfA fcRn.پ덼`Sqrrh8@J\ٌUch2|>UB_r߀;z?~|]S{_U?Q_YיnM INIw}<5zc.,Һ,ƳJmŰ%Ѵo$}MMnE j( kRT3]Qc=;xgˮ='=%fjzC6iw[^#KrPRGiGK/YZhű +e~uV1A6?ƍN :b s?**#4ߦſ6o[Iy)9{ɢ{V=pULvwv~STs Դux wiEco8hҦU#颥[$(MI|F!n5J;ڴR.,1ѤUL!Acs"+~UA c˥bUYϬzu{{^׺u{{^׺u{\BI%M )&9(1SdGd93|-yYB)yAarv$Y# 1z"3UX H]_{KEvdݱtMqҝ9IkU<UK2TzD3 H;}ZXjP-fR4$)%KRz'97Xo{Ocov.3X OH76_0ld{*kRRЗdLA,[y[imA+Apbs""Fe9k};ee H?_!N uR??#kcɌܔN.KKeSÍo}YS.Vu#A S[$`RnZ7 $dY"G5r"AP+ƒMVN$|WG;;1ؽEvm6x;r3832QIUN\<$9̛__X-פ2]+]54pw{n.ĒsZqEz~O;>-x{~N~.fnݭ_v'`UNq5tyk_(kU4;L$R(#JQP ﹓ti٪eB0YJMF:_ݕ O7cV|z,_z ~&UG˰7ۢRa Ige6";Y4jih~ts];$|ft b)gjfVy>?X}mah3;6Xjiq}e5Ykj5M; coywܹ=-nF$jJ1ka(^d I臖us[U;Qs50+N93_9:*t6{ybeܛ{ԙ\F&2U3:91>SI{yܹ_6،nAFMFE'n{HIl@5@E+}[L7=eEV[jo( 팠IyzA⁁8&Vz~?C?Ο>ğ,?i__ЯƗ'OmS{{jFW[ n˩>:SM3AI4M~]/O##}:cjnmx1 rgʔY嫞YihXIXZTiUr/n{%qṅCI4pG;IMpOSv,۔fDPqF SIoRqJW߰Gn{`uMԻ*2Ul7|.O9QZN. d欫vU332{Sm% O"D( $J5R<@Ŝ=Ou{3‰Hb$@pN~"~]+>~m_ݍma\m];eb Vo=QԛwoSRS54mEȎ=|[|6igh56ҀA+ J ҴPN\7pjA ~MLCbq WO݄KlfڽA.G0nzjJ˜.R摖HgXK>l;+6xQ"j 5G^"|ͻ&Z M ֣GϡӦ?Mt鏎{W`v﮵),;>kni=u4ԴF]e|9k=9S"y4De-  'u V++=`o9:M|uVxTt*Nn|n>ŧ9ߙ.}%d;JM&ȩ۲Uҷ9q5aOFRm6Xm7hjmGM$٥0CIdN,V15 iTfI=_g7;֦%]Yx ic+k˾FJyUIA,oK'h;emKqob0|HmrP)f$E 68^Sh#5(C%h0KWM4pQOYJQv=NevrosTiW 5} ZYX3M<^w{>6m̑.c:G{a5 '!=d?v@uh(DžM8mcv޿cs+%u'T_%;^z Ŏ{Ʀ)j:i1QG_]ZV΋ JyMO8heT0msȜql[B H\ZuRs$(=XH `$Hb*/}kCҶRTF厲Z׺u{{^׺u{{^׺u9ޣ!ⰴ0KYRcb(YdXa8⍙A?n"Y8A$TE,"F I#>`-?Z>qYm~|Vh3öwZ͹LXi!<~mh肭`ޞZDn n 49ϢnmijVD'xo G~o@>*}2}"GVL 3W#K#h"95&S'KD iKPkBVliTw 8Sυxp;%v | eL'Jf'iDK't?[oe9 7q*\9Y_?)S?wduojM1݋K b|nJV۔&Vդ&&:jt8B^"9we a:!DX/F(=k6oH*8kʜ*)~9 W6^^Ru*=Eo ]ol\l@& +\"bt.F,'1@6\x:5P7/ VXi^K }9r{Mٝ)+϶(0\N?rm#JicJjWH2y罸k搶\K!H+_AgJo60hFV>gU{_'!.A^_ nq_$e*.*X\<Ԃ*H='.sڮ8X (^T4H$TVpµV*+_ʽr$?I8m4+kcܸS;ۡۦod11䨱* lLdSLlWyܠ#YP0]A*#Tc0 _sй \Xz[Q +*v<- juºeC%&/V%-_bm=ƘMǞbw5EOP@uVQMQqS)Y%xYHN0E3O?sA_b߿?~ށ~؝S{w]χEꝵD=ߛߵ[l uDub!_'S\ fVj\-$Z]G:R  ~|?>YoOwgktRo7̜> 1>}O24m>.gXꌽ]H$yο1Otb}":ӥvNN>J9<܇xda>4u6OoM5d3t~̞Y{Cu J#KGlD 9,W_J|/]'>#TCEgn٨6cN٪suNwem ybbrFcy|n #dyFh:Ojikk]O;!`}_O~Mum۵; n 7Fy>'jC OW+PT{[D:RfV0?mWCO6gľ 7T۟nn},s>a ]E;uE?!+m]868iAW ҠUHt5>ӘCC(kmީ鏁=e)fv{νmi$autt!\[?xҕWބFڽytꜞݫIֽIٸ;be:rn1WU9ֿͤ\Lk~T?j1FI](ڒv'In(<4TAоp?.lrnԽq-Mp+IYA|y]jKIMq9.u݂N4U>9kgJK:Y.EQS>b:&0*G_pW}_HP|uxYv-wȏݑ7-CquW:Zʔ2VQc8*^WΔb|3Zn=[(>K^#eG[Po ?;>faёn"lt,%uEnUD3q^YY_*_c'ܽshz$ó>3nl{}ns2zuwengZzxd>YFYnkƲŚlYH|^]֛4>돜=GUH2-vM)K_AhidKJ}(=5a뽅l&϶jmvr[^;X[]$bL+ KMOܘnstE]"55oȕ$z :feSz$.P<.}'7WacknOlrYܮw m簟wwa㫕 9 Z/#D]ۭQv^ntocvRj4Jw? yQdIJ(2Ԥ9~}^e[S{h^l&֪ms=umf1Umg1\&\5D%-%N+S7&ݟ8wȏ} = 䖗;󰶌(,OGPm Y79wN2&,YgQ?G/7:hd7?~u'dlzʣVd;7-KwߍK򯷨r[S9/huS0TGb#I:׺J_#supoπumCf`v'y|>Ҹ+f:H7OvÕ)5&+ڬFkvj/o_mnufؽiu{ZFXrqn:꿊ΰʂ{u`Y?K%{ MEd%ThJzgHee*C+SMH@pA WIZ$fXQ.^unܝ-ݻnne:g*}9y}N.$T2*嬌E\0>oGwsڗ'œ,.("mf"4KO?ܟ%Uώt}'pt*.ת쭥'?ިvgIdn|WTRyٷ-]vZܰc#Ԗ5j@iba tAS.꧟K?2KOGGĊ'4]*ҚuhN騧Z sc)5쾪x&/,j_4ԫr@<@BU`qà|35_7S]S>S)멲UP|[I붝DUCVA)>Hji4hT{|)VqfY%q.uŪ#BIW_'oMаߌ Rn+ԛtjeC(_6o%SVGO knWw\O+f4ځmXzԐďO ܩܸ꺼ve4lUUA֜;P H|?'3zsc>&i{ר,E>oum7Z=2;%Q]ZRJ5swtwFYw]S[1}OSlLu QC_RdJK˹K&Y1v$Dm+> ,QBJ RҢxÝQ۟#/nt͗:vo ݝ?l33x,5I!i}}6bM+/ŘʬxGuKi)TQFn| ?ĦPU+_A/m$ESN*W(WOd_|T4Hڇ]W;1Mh:&J꺨Q۾%Cymx 665CkM$n,BElKq!C0H!>Cf h~,Rɗퟏ9Yi>54*8ki%m,}cb9 I]w"M,Ir.ƥ-&rxž `c""+*>*p9uϡ~|>Lnw0rڼWըRڵWQPO<4ӡ)@8><uOW~8(jp&f<] 5[;-fe2kjf8Fln!Uٝ9  KiUMFJZ tQ"R4*kO|z7wR`-|w{ғw; ]y5&ކ-߸lsN附V/훖l}:I\]۝|~0I!Ns֧?iK+%]rY?U1[%}W_>5;9z9f08ij<Q@ᡌ3n[33LY3#L(T\ a)?Ek > vyJ[zev~;:۩g{whIW|{`b+L8)*1.N pT}[l {kVeY7,ZY9,I=5h@|@͙s˵f&['lxu*nw+%U]uL򖚢gu`6QOvVslm֘>؝&tgn h0sl+# T2un-? (w??eEu{; kn5Nnl7!Vi5(Бp wIfOe.&uvʮ}6~/-z,LM=\ 4n~׺Yzg66SN[ . w⠏r[{niYa1ta)3WKc7|Ns7 ,mY mt2sEuk7bq$aKUaIZ4h)V5U'>A#vNRs[+^;jD}kxY3Qv,M,OQR$A1\</Wi"h iRI@(梒><`r,e6j}]+Ӻk 읩5QÓT[IEQ<5B̨}!Zͼ)klDAAfTuW@ T09w1$ :sG;j?w=AV-?{ _FOw슬C#jLwuO61:a`'=/`AQ9-bjZib88]s̐,km *=,( FK.jH$Xƕ:4=j Wˬ qu}f.f|GqMUޝQ=~,$3cTQVIҴS$2ּ:ZG2TUб HhFcF@#MbjZP3ƤPҹU _❵[_Z֞q;_꾊~ײ2p?nvn%yyUjZp8IjyegFQ_6X< *i ڒ$FÁ;on,,2Y{UREh EĊJ.dw$gI'{_Nblj0?`/u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺uـzarsv* "ۚ( F, 552by92lJFIFC  !"$"$C"=!"1#2ABQ$3Raq%bC45DVr0 QQRS13q!AQ2B"a ?8SÑ$NM0cp}N9ۚ,hzim:mkDYǒy`']}6wn VOנ;[)^sTy;&5$,2죫f|ѫ߼KJ ˮ:j#*<2I%-WD`W_n|v? Rc9O1uF!TXORvP1;^rzԍn{=!G V+ܚՒ$ v^@_a̕&>|4֦l}׍IUe z•]@3!^=w-,סъzX*,`#u]¤Kd2Xȏќ<< (־|{-*A~7/ O#,EfUNA;:<Ñb1yǴ,R-G f밺+/?Ԁ #>qj ACW5V! :\ſZMrY^6%n(D SO"?η$o 1T UK.ֈ$ef-'_"S߿lAȱ-P]亂U0PΗւr{&sCVɘi曲!f.;h>\OJ-Z]%QTʱ;&CGOY RkwTsتVYC{_ؗcrW|2͆,m;Bt7a|ة]+ޗl]?hߖU%tUM ^D_K3NG6F99uDR{n2[{_6z[S[q35K#QĤ hǮ1\Mw([#rK55uf,Gf^RîVxV\#4~2EB {FIf(A ғ!x3nks].fR@k Ju?ude`Y]ux}H_6YڊSK$6̌yXlteR%C!H3ۆQtWɒ]w#~T0-@_%ɪbC*6/3J:YO/|?Xj߁mT<,[D] MadԾkqVJǷK?𣪠FV(F>/c1)c$SG< z!C=xa4Z'd]]װ̤ӕr[Rf09>ujx%F aSԁ 1}9a)&Xf{w`-~C36cT%W0#_ $E򜊡zH Ut: Q\FO XK4FF_)IG]ou% 4bI uVIz#b'+ْqZCj n;Rp5frAuRr>Ah,uVdp/@Y}Y M/~|B0P+~D qCmVw c~(!Յڰ JDe@a@7R5spa/S;JD=v eCO+26rX1ݩB1x3qC۶HׯDO75BâW,Hw ! A![f9/Lk Qh…cl+Hb~ikd2BȩcO`:}UY)@m,8v3+%ve dt-2+}L7u2gFM)^H$x%Ӗ.5+QTL4bfQWX̠GHI*dSLL9媯!>AĿDd(߭|_5s! QS`tZH1~ipqc%ɪ@bXl䈳n.@jf$Ij,| p*ʬ$nF= 붏rOƙv\nm)UƯ(iVMv%Y)ﶶ>+cTZ"y#7:eRIҨbWDC`m6ygDuī jNuv8?z6hQH2Ϋnܲ>Gr ֻ/]|8 h[%, I7|'٩j2Kb<{ x״u_%O-X)Hl_gnI^f!X+vikՁ؞jҩj+PLr+ۏ_>E =>OW?M^,Dk]d~2A}_.BAZ:"x15;mջkdu^zor{1җ%"FJ}R>W{{'S(&TOv!ňTAZi~ ![t!Hg)Y6fSTۗHQnREXHƧJͰtGnݧ0K [߮PdV9>I1tTOidmۨW|[Ov|//)^|K^TpY d܀ v l4"|B;v,d? ^H)c=l+Q]75vz э6zu%muz1JG|/it]V ,0VZjUurd`k^ξ mjFYs$TW_(˷߬b8mv脍F16YS(oTx5!XƤc#s.SP܌RцD9y/קM !s[FㆎB ?I: vYI7adchKPҠT&nCݽ*5}QWyT([`(T WرBO f$ǩzYd2"HTȤ?u 6qҒn7951arB;  ~9FZWY4Hq O.jHo_[gUbVo$/ =N{}g믟Z,1ٮCu [>}`zezWׯcZdUdUKȢeI.tVlH0n,sA "u ͷŃ)ҒF[R<"<0 Q,J{b +~,W){F$Yetd[/sϚX-Ȱz2BVH̲QDP~KK\/5<$3v?If-5Ź1qE|ZyY!|eiUBA X˝Ro/jrImdC']G:#`]'O.oǞ\j[jcm7a,' 8‘K;r8md4ҵ<(7K)i6 tWֽ) 8N9,ATD_ >9U `B\,m>.BJnȫ<72 ԣyL2eB|o*xr:"dMy,efQ b#|ŝYhe1<9ño!c֣f8l 5x*$;/bVV@#d|e[/OƸ"Yep \<+_dSU0\j]:#a`UU( ^`b F#ګ] 0FUX>RKT¶nm6ZaKɛ/W @lkZ?Hb~~{'N[Qq:$)#2|b Gq^,&v/Lp#WO`)"*lѧR+TF>a&BoC_0XԞ\MXh]Y uOtt\TMNت_RYEkBm>+aϳ%۩ȹG Rwq?t†RV}~;?7bV *-̆9OK'Fh4q-yktn#1 ]bA?#ZlŎ ~LF&" aX! ԁ 뚧B #رI[7(U!JqL2ݒ:Z| %p_KB?QT9`&Y%&v9Fu$beNl/9WQ*%a]eRJ,Yd:ۃ' |8;qHMhlֱQdңY`w⯛4x'+W^VvױGR%TX $u% ;q ]('}G%ߣ$^iɍZ5xjI VܱXd)m CK |ZX6r!][$v#D͵oH'y.NY,p$&u }3Ve 'DX=,5T՚Ɲzg /Ug>8ٙ (V# 8rԡ[( nbq#56z͝Fy[ČwY$;˯oPvKL嫋-Le :oNV(-\=喷`ڌ-h1*̮ !o#egFdž]ک4*h2,GïS g\ŠB)HDniTf!5k5a\{1n6a=<ߐKv/KIYRxIfĄj:$⼟!63X՘wJPP luZ;P< %bxˬBKT)F$HY(NrܦNͻ0>A5j,TVh/'ٺ_gLE6zrJMR4Zv ve[`aI3&xv&'@^Y<Ϸn>K޲ekIJ[)(D?OCDO v L+MA"u@urUOR|=;e1y;n4H~Chh :%nS-1$2nYDƐ0Tr W}}~>Ko]5\a, !5Rt#RCl_X| CD"*/7}2;QV䃏dhX/ *W*mJҟ/ҶH.ږC_o`8tiaRy匊H]SIHK)i5!ȾjCmHHIc,V @ +Ġ԰,ĀtWa-OMa.ub#x-[zmɭVҧѧ8Y%*i*V*h~mwhH=(SGj"Cb-+ڈ@oe}W݊?hh"*\Jvb76shkfREUB~25 6'A~5E܇ PIDM$oa*eNu{{Bhw9-ƞO2 T*}!e V>),o-o4`u}Ob6GEYYlЛ_-YX.k GU#Gry,6,G6d"Qio?(1VһwmAe"IҺwp7V23";NPőR( j'`h6gUhA e\,uhV˘dНj<'W @Ѱ$ |JJ=+Ib7oHzGGFg뾗]21Jv)IvuXQjarW:$ٗ{hK/]ƭx*ZC9I/9&=ub85B݊V,Qo~d~\BDl^9ERE'o!H$ [~Uȱ$2b6w؀2Ҫ{ 4ɶq1#͒ RI!OiIYw].~K l㫴"BlTr~CF$U,N#@WnXI啳{x5^)B { X2~C6/S%*µL5B:1T$.`~~|\,]>+cdG'$ r+we R7QOQZZqu'1#NAb=G_2 sK[]K-<)h0*Nubj?-yKߖUrV^D^]ؐ\uF3QC۰&?݆F`H,@ӕ҃Bp9!ZЬ՞F])-}Vt(fkԿZu.^ǔ F9CēZsVr\]w?X aY|37]*TUygHY`DۙNYUIj5׷bajX"aT: I!y &Lv`S*+ gUD?![sr,L6)ڮHDJx:i7ZV%:iU乼$m=`GWK!Jd JtWN<Ũ1(E]NUs}|،U/Cb֎kZTRnRA6?ۋu2C?x{+ * %BzAK-5W']8LgKm7}# Vѽ9^dNQ-E( yQbNWN3jJ1J?" ۃLझ5'_~N>m'S%Er,WQ_UZ}FJuwW[ ן4 WBϷ2G%VU҅="\9z>BBYD ;Շӓ̓.f *j-[¤N"}cPԝI<˛Z#!C]/Uj^׏c&kVF$*e`mzeu2̍ ,mwN1S'|Q:q쭙RcjWG [q>P.6H*0xwzffC#?q#/ܺKKmq+EKY|ᎩV1 :U܇||۰`2CeTU^ą =w ^:H3gž xN)pr=?fi'h+el %A4w_-9{oE5GMlB)ĄuvC_^X:U|bo1uqnVZAo3G쥼%tBʔrم1 Vid!w=LHPt>kb[$Ye[2f9 +JTFCh}?\gldb+/ Eh¡XvJ㽤qu!Et*H{]R P{/ت7oJŋM:U,:1f'nJ؎I\T,IZ$7z7 7Rce*; ?! \,˅ՁN+11ة(OT_w,]*_N3$o׆ FgB Gi#V>1ˏ' YOrd.Ty`d.7DlT68 TvX$IJ^\')׫2[z0=CMA]Tt.:_H㬖k#WFS4ߑJ!Eih)7c&"!N%WX:=vB!e)葿5W-v )-4U+ߨ/}uc&1kKnZK]&’g{,X:J9V)[0EHi9f``̽XJ'm!@Pqku)n1&[֋%).>=0R݋N7ՎPP-` ^JҺp{d$)gRq6x)+_v܈&l6HhtkYf2JboެS{ Nr!N9bZ/‚֮;ZK3C=ikLX3U,+C 1rX̡z1?SɈ xpw&Cu"C-i䮑$uٙe`h)w2مюUdP7ƎŌ܅uv&;,,'TV|\# 2,X11* u qٹqC3Ȼ,Sm>~\FKZL)%XdT1ptKi>38Rp5kUZKq~V+ tގv6!6[ ֞2K#Kru@'+w% ۣjK,Ii`߽W!s# w=f̄wc2Ah$ g h̭y~ .|^rXY$XT( f`E~F&nTO`N.P>Uʒ0A1ɥq|23RK&>G/*E`3C$ѣtXha5jVfZ,WK7t\>6 VozNs2M>zyD[EF^(9J嬵dVePMc ~;v(OoD3?ʘF\|u&5*Ho+z*RP$kqNz9xֵeK2]}C&ƾB,jo_#L3KVu3^#70OZ!If 2XF.Lu4CbǓ 1*{hN~Mj(pbTǙe?#XB` ĝk~dܪد,qѱ:BHկvkl)QǑv$,#{mEmk|WMjR y7v$>$k@+Ȩʶ8FO9{6>4,c)wBCbAt8,,,7\ВzQ+@ߵ[#IRH23!P-Z #wu{I/5d ۶uXhV㕬tu=I E5(Z[hdx,"YUFM[R$i.Il~BVĶ'H {ضB!#"9 ?],іxilD]MWc()QTEo[?μY)=8Ҙ[[&Wrd#چȑuh=ma,R^R2GihXhOKԅ _+9C1RhYlWT6EQ[ݛ=/؝?>Le*P#\,0~\/Z1)n(y mH,OQ+RFk5lLKYgk؝9Ж$dAVG^AP];$'ljltѳhGt[m ̽v6.WS{'oi$XHKZ@;+9 g0'Ik/4OÖ4eV\葱}Au0UbNHG:}/Pu%n_E uO>ګ,rfʶ 7ֶ>VƳ&ڊ?KBpJ쳔:NZOzC@$ŲU(=,-:֧-1hif3X=zl~࿟2e+W_jCӬdH׳1EK HC)2Uo_HRav>B$6j;4Gm|GٽZIgkഋ[eFƁ V̂I^(!icy2 @m0c׎"j h! b%}1PHbM9Sev<;WӪDXЁORU|[OoF'd/$OiG =@}Gerz] %Ti&`zG߳?I_6;y5u ` fz=}wrl6Y|wwxQ #'Vt!c( m!?0|tb q*.}F蟚9;X5%5wK;ؕ +{)TFZU$| .C`+96GXFu9EQ RUf /(3fs9XxrlLu,y%!IY;nR>Pq8|, 8FK$(1Ff`=~+vrJ,4$XwʨSQǣ5bHrQLjBd!K34SLQ1+&(ξB?iV>gqйceũM%7 =bGmp|iՀ(ΠkhÒ1ԣKOeX#BoTQ3b!TLox,։YGeRk༒%VZ2J6څbVFߌ,q.J]6<.D)HѬI(ԫyH`_9; if1dUH oLL~AiPՠNCV^,YȎmcr?%{kkױ^gylTFq!pV #vZQq95 ZW)u RDaU Ƿ{-7)LO)h ED.d;F4 ~j3,ٻ]+b~ʄM2+OUE} f噠Z`+|,E$pf0YOtއTrY"GY]FWb%b;7FV-c\UyW>ԥc~نѫ߼KJ/b-TMI/:C0W.Yd-؀::+[)hC%ѧl{گy)VfޔGcf XW%9{ Sl'm<ːsIN7V-2'mHtɦL c3dbVvQhY&UX Q\-Kg=uv]rpvrltyj$W-i%xQKv[~cC\ɧ~Arj,qe\1U L?kO\eb?ŅZH"DڀFt߰:9嵧jĭNIĴd+'Җnz!N(bgVpD>XI HՀWN6K>"YNJwu, k@@6gYaI;/Cr_vHg$l_~iA/Y2[-IVhyTFʚ#~~[8ڜ,T`Rm+ ȁ)tM\k}ưYzC޼Rm&7NC$ E -́رj{QbǮ~:0\j!B{aPa3=[PP܄7 VMI!5o 1^t]ZXQ૘f8BGUL߯XT+Ia){jI?et~3,mb[F9 rG(Yvm`vo`qmzɺKݞʯtH̾fCu. \̓݁Ww(6 $Zo_NH $I  ^u$56fab"ސO5cIL$AaxߖbĥL^ʤx/#R䩍,H2%2}F Q\vLw`'>/򡪱L۪a{zd,J-C_ 6FA"~$ٻgb~ 7hSz/BU v!e6> -d1v{sEfG!j}-x.7 5ԊRj,P<ŘhS |^Hs-,CU.cd$;oq_Ԧ oՖ>bce4eXhdu_fmڝHi1_ f!@okOHp\r4e3Hr[Q" tUI |C%~M=$1A;C*lK(=$vb]z5g c.I,T!}Oc ^aV)Sb o@cMw%X(KOGcTK5Fa4kr[8L<0:!~ tJ޽H"-+Eο`}?ẹ~&^6J-e?1ub46@ ~űC!b\j& -۩c1!tz=ߑ⦖R[$bX3NDzvv=| O2byG3=YQ$3Utڞ;(})Khi ]{Xh@=L`4B9Fcf?LDD[|FOvcu ASX;;70oVvN/b /f=J {FAW ܟo&6ҝZڒ6i+';T8y_KBjuY"sbWn}HsW 8BI?:6=fHwPl+HcRd]XMȇJ؀|l@ 7{Q\)QA$ٖ_=VhTMɚ/"[WCv-Ȭ}RF*VE|8W)MlV(ex$D#um -M{k˘?&1W:,1OeQu_H*)mݝr?ZلZyҕBD ;cZ'8gr3c`KrS"$N]27esf"Zef rOOF|JJݕd]2)%/?RT)#5$IQU~MѫT+q]#/o,_z`D{_cf't.3=8\JWM*v7O44ڮ^W+NPܨOa6' R{2$rd`>hl s\Yx*M,6A1N؎F?NNfȔ^uEh.:=Lj;!S?1 *Yb+կ%[YJJ[m廟zuYh{p2@"@*fFD|ܕeW#6T;9%TJSkd9t܎TF%a/9iXB`Cɯ]oc7cU)UDEx؊plp[hxr.o%z:VJE2 rHp{03)Mܒ^8~D@.w[A$70L\Z]UDe($@B@,Fm]~LqKh#Uy=:;jg re2K8?­%lw^2L#`gD|r6Ahe9-C- gEf0}xqݶt} vJ jqܥ<\v41R?"JP~T>mqdpySAe[pGF\[|/)-Wa}%ٙjZ0N66mvB$a~ܓ7&ϒ]޵B4t,ߗa!.a! >Vc6z͏5T9ȏUF3hI&i_n2Kp]Ƈ*@#d+CU$We2?GbOjdô`( k HWȯ(E'~?CɤQdچ$ޙTܨ|g뢩c{p~CiM˒7! MG1P,U$h oPZ6m7ۨ/h0X(K$r}w~ܯ@3,gXMWB5FIo !Vgid#%ڕ2BmTzUڠC~೐^Ŏ+b{д)!:wnJ.E؂|?1/F)H0r%GbP~ _N <0V NsQP嗰Se@>~Ug'>PuLu"+^ #lABTb0,ma@29[zyGx xGijď/E?dH]zOatI'fwOrYEZQ,MmXƌwuր )jO>k5;Azfa^C-r{,%ǻZ)1MrV }|/9r\-*xrUƵ r[trWf*!X_czD*=@T{װU?,/ -,;ʳD|}B+GE%{~wxl_%\C%Y4 x(*5 mmcن{^u-Dt@YND(K7N#ֲIad++FHhJ.q8"*3M6촎Ȭ$d K%ZZ\% W8LFšzՋJc)-̌ա.Ŷ_a޽| bzypWKD3>]:$AdLcÕON&˒C E(@ ?*RYzY:C+۱urL }tmUjMj\KMUj;H4~Cb'Jz+?l7# da,uW%x@K e`A$C< qf}!ݐFږ'$D, #:4spHC#xvcGJBd\ܗUe [qdg$PH|9(֛ e0ylӍh1RI2$H}O`cL^zr"rZH$A f=Г{Uz g\nX{U2)Tq$Ŕ@[{&*J7#5 y PX*$qW-lvYc]0HKUK#0VیP'R! qyXא)`#qFc!F:FX 6*KJ31q&m!rI 4F?'f)]sZ!OEeS% jvVkEFGIOR V`lPjy/׌KU|I *v lsaժ%,2ZC9B1GK ;ǰk/ҭG"-ٱ,O:Ӻ#ﴃ'Z#Xm/%o7A!R9HoC~\0Rʷ|p䰑, U*T0.d+3w'<+rxYg2Aq\l:}A>K3b6 tofx-y@ z3!?̒X7$f dɲg#Ce E%[c=v-|C((B%oHV3M{?e#5Xdgm\(iQ4WD'GK vF#m 4φB O;$A0@R>Fw -ey[(P#(߷C@ikUԡw%FbYvT#R,}=m~w%'-qmdLqQ:Jb뷱!M=gJI:H,QEm)m}GsZ>64fͳexۦ EC#90D8}e!04 RI-뙺lX5-pbi1I`{lA?1Q߈ˎ@öFrUtYJh=.;; A bԄW~R/LVsxlR6x ?]cd{~<_)s9$#jK*!D BCQG{fo]we3j:$̬!)PJ}+%N;iBJ$LdӠ-m 86:8y:@G C7-GB]~=I' 5VsBvbEF$<'SfS&0[qOE,"R@͵3jejӠ5$~Ľ|ԍ!Ťr:l$#*؝]$iG'G1۵TzbDAho}-rO33ߍW`(|XV$k325X3>ب#>ێW`/^\j=f"i $IK%ˉLYNQyb}N$"WR?`L/.'!)I/ARJ#e۟xkgVH ,0 GVTm1 C &XrPOEy"NOX(mF_d& 25Iu}zN T|&|ʭV㨙tB2t7zrњš .:u]!,Hf t6OSnofXKZ?d  S;Jb`,9 ̆ByU#GBѶ 4^Pl2G/SVٟ(ɜF\"$QԖ'>ۗjѶic{ ܔ9IGNuV:Sryfē1f$;+pͽ fnG`%$LjK0:ގU|"{\6F,JU $U1;}Pm':%hkC{?cKG}d1[L [Vjڣ֬4Cnһ~aهu=6pda#ڤ0-X>`RFM+U3?zlي8$)3F:eO3X.L*fUJ Hjk:ubC{,{\\?7b`ђkbA%wF ig*7?7||ḁ +T nzusK<)bBԪO^+?NJ *םQSRvICjcî6ZVI25@Wz"}16.iZi,~=)iF*PXkj6kZ}|iQG+I[DvIҳ*T.Ə%[eE~ 1$2 X ?˰ o5<;]qrca+f^ ejh3rIrqX%6EzcJʁ;)VYt@m cLdVfXF5:,YC7-|jYu+JgvP.$zmhȠnCZvU/G! n4}oS26qNVgdv'I#`Cz'^~k^G<ګZ͇쥙$UFT~̤1Վe7!ʿBm#'_]qKtpo.nW-T`yA/S#{U*x4b iZL}H^ J}3cOZ٬t Y>SI~S %g݊Hݦ(z ĝ% 1@VS쨀2u G%lɐziH,m_ց|.* Vq5++$ CnBr,ϰ \hV_"lBGuc~jˏ_ĸ166E-q"l2h Xq 2{1Y?VkҘxܷV#+oECz! >pѽP^ظ!q|ҙc^@D*tN+xLCE^YIEfRde=6yNr-V[ͧHI]o@`O$u˒%UUhA#^ʪP "ѩyYE2ʽ FԲT)9U.<~G;jZUx6Ȯ^0A,(?tTgeJ ;Yƙe'e%*V\]kvEfٰtA܈dASM\^;{^^IWK$hF'FڱP[{_|4ՎMMi#Zo, o  Kklc2%kq~2a BX;řGuYXf1j۩,3c[H7deWZcZq'~vq) G*,KN莑  /UPxbWI!:6d1hB)ԍ2`Tƽ ,/)!4s*fSo>tL68̳m_V) Y6QHfI~ëo6qW=eS;!4ڻRժ Rk2 q.B5RVW%X^ha@6˖R:wM"y0M1)A:(ש%FOmv?dupnMC%}E2$fP`f)5A$y[#kVú$=tk7*IiRL rPRz{vܭ&PV6V,UVu^@wq\Wl䪦mZ%}^`ubTh0 -z?1iEv;d Qƥjd#t͚X%bl6Nzu SccW[ -*u/A-삠o7?'d.ymMBxj"P?^A$K3yjߍAD V@eC*Z|8~E+se>fxjyl2:}L|Ur]2ۅRBI˅,#}Z3ڂ /bqs=)hsfY# h4DE1'C*,gO9ׯiiFؗ>O`z &K4G8k.FTX/&G=Nk=6S9p/B#_V5O,uC1H"r! V%QXzjemBXN ~6He 7<:)@>rUYxZzT WC#J&z핆}[;u|֬L}{dcA5_D5yKUX͉HgS#$D0@LM~@]%8w'ZpdY;N O=K}}\M5cXAo4Ip$\EFl;ƭ3*^`۾b|'`-Z?9)fcjE'/ p{vod)ְ<%n%+9P,Z*h'}\P{~ξSsܥQ[V|dhlF,v {A qRZnc"$NY@v(OlaA#~VnW}y6>9~QPĄHꮻfٜw؃IV敲6<<2Wt *)$ ze3\_Vaܾ6XL$:\h:rrq|Kd֊yd#ݻ(fgB}ws:9:o<3hivb p9!줎Gc_ s:3i%RWI+clߓR h[AOp`9.>l8jtY#IT)'Zeow ?;LQ"Q#p:bY |4rfa\Dq[MRSL#coVLLTq\++;G^[ iBe cĩގMa37x0۲0SNFVNB1Ր6aGOez-Jr"x3-WVc.Oa-=կꍥ|:᭫^VkM=7fZФs؈#bf_ _m[;9KT_\gaa3dkyElb'uxŨ%Jd} zXJCK/.&,V%Za$Њe5`/R Ok-^eX-I& z"2Q_;b}#ע'^CI,?۲BtZP=|e`-~,<jУC׷nҳ쬅YT==3I-6:邬d7"vk$zC*.!yd u˵)f* DtH  WKi*{I(HR3UQvtK;{}!eӹW+rPPl41lh(3-A䒕IQIML7Y,^'L-AN+PtŅidyQtMQ o# _nWv),ݓ=V'zb<$\c(i'y]AR5 >/şp^zԬVs,Y+ԊB ԟN0VZrȨeިI6zd~Ĩ$ ~|{'2}7+$jbf7;dP=6܍-d[k]Jݚq+u (P:Y]4Ԓ`ŎAzb+l.'Gy4 ),HFgPKq_Cm-ʸ9*j}hܟ,C'r<hv{H]?K{?; |v<5ʙϪL"@EpobO>K2}$YZi&jkFG)fVvk10궚-ĵr(`,葱Y]O V%ى%|g>^{O"Aw1ɊD`꧱_l~41ulٻ]s:Nw:3@)۰u*Lյ2AcOns yJqx %\zBvA Ĥ0-RB]Y4f*R~=c2N)&lFa1g"H!O6ə o&HZ% K RS1T;)ye,: 0H #0`-mSZˊF1u:yre³%PH/)%HC݂[8جԫRVڏ<ߧdZf y>\{-i"iJWV| ,WGCGΈʓb08'$v}FUp-7L}!E+]S'u<7nFPw>H*+en#~ ;ZsZq)Q{a3'wjt~cbVY-V픫57~B_[>;N8Z~ @GW`}YC6đcb͋V b!=%Ȭrv vvx.<[&YO2Lveh^.C@oDE>y~FwnrS ?%k`*pW)c"0Pmf`ֿ[a& ~̑ K2*O=B7( ~K箱e\xRB˶ @B3A}}~l9/D,bmSJ4 tOۊ&>y su r.*}Nn%pY !Dױr{ UɒpVQq-ҒW `;u4L7(@1cסj 4HH_ ?U}~pTX-XdM`ؘyw;^J4޽/=Қ@V@ds$p܂]\of$ihLo+Ot)'ϔt 9\Jl^Vb#5(b(;]'%W-yx.AtYcU}QǦ;U}*3KBL>?gQ9̀jPkl46²9<"-{9G+vFd,B=h{uN`q|f? QXѹWV3Cd ͵aI|sDeI㬙3kkם=_ȪЎ6?/)=+5"a4l ֽ64渖nD’,4Y[p+h/{rPOlY~G=rț3#Y ?بxF3хb gwm.bSՀ{|es94E$c_pB֕vIicn^Պ(ZI!?4mvFY[쯌OGceKW)KKH=தra-_2K@ʷ'myRUáЫ/b4cxcy(yB圁V-?z.C^DŽײw,YX5;eI3T_bX| %n'ɞ5&`լ;4  %37V:bh TT+Vhݷt=_33c4W:Uun} <;,`L| )%bҨNV0(7ڀ.I )ᠩ\5q2s c@{W{#,jג(Q l2>/L|,v={0+haZc$jƭ#@^c'[Fc2)x__UaG&Ta`cM ~,rXS9fv@gk$38Z)K6bzk< R(di h/G\xĶ*Ӱ!B Fq I#1oh@dN1`ZkO"bú̈GvWv me|95؏|,(YU@Ԍ{o-pu/"oRK5ۡ $"ԠQt:g]my|Ա6ٌ"H޷p<\ty *^&Έ$nCQcg{rV8fw@"ؒtI#*J wSEcB:ĺ53Ÿ\f+fV2IXTov_^K9*BKVUي]8 {,6$2z4u)QAAX:Vy 7TM"]a K3u3*lG4l GGSرv3fb>Y;؊YyY AH- $*cT1d $:Ύ͹bV,@9:[ݜ,Գ=lE+&/aVfd! @CTeܲWk]Wv $~J(5hيyi+`TL+$NRT*le`b).~)r܄sW*VE QW:w?q|c7~cVQ&H @! GG.QDRj^IUu}D@ފ̄8!%KuYXJIG`{> [olj'r/e!B5g;s O[܎S9Jf+X@GEIi;H榩"|*KڤTcRJD2O{..'Ұ\LhGiӣYV(ò 5GͥP Xד,P8٥쏭*~HAȦ|nSQHq%Aȕ BAco#RYMM%b(wSÎ=_`#Ro'NJXܲyUf2S֎˒&v~PG`< jxzBS6/,Ch0Qerp1PSQ7gmPR -nhdŕ{܊L-WSU  'D7\+1J٬je<׍c,c#J룲6%C!7 dV7,L:دZ^[NcFFvZ.rgV)i-^y"MXY@`ryZN4aX#8y +iA],ImBֱM$J-EfhaHQ@|#vV&ٞhoU{$ڔڿҎrl_"!ԕ^!i .> p3PIb3<פ (D^YЩR+R_J""^K9%²$ fڙNJzԍ-u;uaNsqq,fX3u6ٚUH$a1B?3YLo%rTf(Hgbwʢ*=ZEV gV5:(PP+_V~Rc7+hKP<&F?>@ Eȥl3|u^P TF,f2I!Jm /:hRүhw8T%{C+ lq61C_ģ-O{ m,'Er0*c)H8̾ S W(elԳMG:'XEČ'?ozBk Fl?#%BUhɆD 2*O 3ut?%IphGQ`˨pU¢*2PY^j+TPeI1b!DIPW ~#5\Blfe恵n1D:}}fNAC|axC\LfIУyLpŐB(R9EiflbF<_L'ZEH@o=uWt00KZx|,WdƮ*5N6d;>.bl+$tlԟa0IeWu Ǩ_|^G(qtL"(^R٤,W[mF 7 &J9 86-Mw3HRfA =B{R7h3peg5^+O*mOd.}e ܶy+ bl%bDC(x=I]cY#a F`Xb4#ɪ78CNn/{Yt1k@)H 302x*f FIy/U, m` lQ'Ca[ W_(- vCܨRO]|6ٞK[9#Mjx~v*~zc5ka.Zx [K-+ğ(IJl'VIXBTxit:k'=|v{.%+YC#zM.g16>Qp< nA'(Ml >G&-Aeɋn(&/!G3-z1kL"ZA%2 e38^ r$du$Cr+YKrJ"YMAv:5sqٱo!ѓ%Y oNGMv: _fay^YQf$*UBlrx_f Gl>"Df-267 4'f)4 $vUHtf`v!a\ofxcl[K4ZjE1,L )>1#z`?^H)O,95Euu,yA~m{ɳI6j֍K"uGf_`mH ϑb*h/G|}K[(gҔzs?f-7N͑PF%uݴA|\3rl|ieb"1]3'a Tt&odJ+0p0In( 6<Hd!86S!o$80m m6R[ٹ r\8"$X 0`=?w#ǰf(b35Jp[v+ {(0} 1ٽn-|Zfi`c8ӈ JiFv-Pq>@Ơfk!vyfIu׽' *3e 28c"_&&_aT] I_+~Rr3EK,M&7og`{r>* ˈձfK'hbx"iR;ۯj* n,ԧv ռz w> C)c%3aqƬ~۠kG5[UjܖVY.i ~u0 __}9xG2P/|l>^#|/'YUiKsBC.W=XcՉU lGɊeY{2WE lYǸlIcr6|* ;`0vפ6r5k|q] "JʞtWS.J70 ۸ Hk!l23p%=}QQe)I-x8&ܾYC/Պsm? XJ״o l}KWҞD;_~X!ijښhjCe1aB#V`I^wt[m1izv'־K2cfOvjZe#1V5Tb>$麒w un?:Z>n63f>5$u&F:Xt3w)eVDI$:#U{PW &R9 X6~xfG fEP:F|봟DoǗ5_T.z%RN%b2:;{T WW;ROF5&x?,)3;v]/DX99"TL8UxCCᐼ2+e~_f9XQExB}#`9b[v>U]!?6#XF{?Hhlf{2/hU`*+t-83EU.WX%mKF&@'Ke,mL՜Rz:DbySu FaDd3PYJj kV7e"%E ~ 8Vda NdY㱤Ŝ0MKj]qڃQZ|]ZF xjsZ՚džOUXث+/+qj\$eIP#A:Tn![č(G˜Ys *k~)`+B$w!쌤hQ0Xmw/dBRфU xq7Xk_kf)Jı'0w2(Yؒ5ٺkz!Cg||\:-9KJ߮yy|EX]=QE]d!-_L-ze5kVD _E8# ;ldn285%XEo҅J҈YHPdnŴ$ ߨHW׿y{Bsk*S.dL/@U=e ?# QcA8mLF^=# ;l i╍;&x*VYGĖfX!o Mod88fō4u.j^HBMI]4N0mШ?Tߡ6/ثFY7ԺP X|+Yʦ21 RWL螨ͳTKg8˦KM"KTFE!ӱc91多-^ԏrX1 #}u_NWܣ7JZQI;E ٞB1}7C 2Nz?#'5 RBfI/>/`RBIt`amfS5Xdlg+d|$Vw v].O/dx`acZ^C#Du!odn).;K&LeUx:+ Fl4 :lr)oٞ`WO,$B*.z> Oǥ|LpaeXG@`@1̂2[2*n5ktRR2vWI$bi6wEAv) Oj(v,,ēb8ϵAf6EĵqҠh=5'rP%3._S0݀=[]zvvO\n qTJ43DDC r,81xoZ*@#ƨ7a(ck+TY?V+cq4*̻@&F Wriz_V8۰މ%}[sUtdC#:龻ک߱WOV/Xk:ڰrB}@bqS |g#k=UO G àTPK ڎu34hVi{!UU;B'Z39?1~[%/8_=0A(V^Xeم<쎤0^f`tt>dCʹ1rcrXb;DoCC_, Z%WR'wuR:0}Ocd<)zoYd(Wbbت2]hH&$̘Y^ĝHgfEO'~icX9bq"~-e8)۩ʬc: ,dB픻vZj |{D ޾-O)Jt5iLU;15wFna ߭3ƮSťȪG ]Nw{~?d.3⦱Ǥ"{)r6b ʡi^[UV宰X$A_3Ga m~#^ykR L1JѥHͷo 7)3l ఖ!!s7P@ 4~,'||7-$S[%+,kV0}}Gbwg1c^+^ Y!A#D˾hNYLyLYGpaԊHz;a: ;ZBTajzQ+&H"*(+f{eݭƖ Eňe_]?#hhUt8Us%3^XԪZ)J;+UB@8fcdqB9,h kaz{{Gc޲1\,Սv(p:_aހCNK3ckۯi>2g7wSdnHBpيVlXI=zi߶PGd.d c!`[MNhaP`K XױT%}h]h5εaD,dc;Vp11Gu- yFU2:I?"N(F;ڻnc(bch7jWq3,gkAƒٰ#KcĭӋ' :Ehn,}R>݉w]RїѾAen`L:-`u Ybmqdl ˿GP1t6޻yRC$oZ LѪdBh[a>V~ŌDk, ɘ]Xs%lV?/>61kؕ%J) $65԰q @&8Pp{B*Dr:}D]QKYVǼBr/C$7R. a&0ҁaj,}vC`ҳ bA`=kms .ճV8*ƴY)0tP?&09,rQ?+ :y$t^c]A2,E[(WhfR )?bG/=Ց3up^I#^C" ]Իie3l0y$D>fY e![7XXٌ3A}n9:H_?,GF{3Բ,L+U*5Uʉ# ԎPlz`{{~eXP8[v6eU:e_!尗ECɯX:K (YJ.z_`8<c^O[چ G/I1c-X|Ob0.Cbm^> d =jX%H7O ߿ ; >7\\2^H&8A. Vn@B NϠ~{r~=4y&j ,&3IӪKm`NZK62$` *vuUIo;n p..y;H>vz=xn`4IjXw$PC29  .ڷک+&,V!QFow =QٗMQƳ9>EO_cm+RtLagcvbb^绌-Nj,n0V{U^ TbsJ֥]H#0()hԶ$Ԏ$Co ;" $E2RidCoߣ?1v͋vE(ŘQ œ$|37U :6`MH+ΤxH~)02^p3kxP &׿gkݩnzXIJvhF),nu +WIWv&5iao&Q۸?o]#uBjSǴXi"+;vA-pvg%+˘2KNգ0/HÕ`̌{(V#`%WXvUXlI#_AIOD-nxŬe#,F..ChZ9,0,w['Ԇ#n b+;ԓq4mq$P 'fT;:s^]q_.Y,ɫz+=C/ E EZjK!i!ϑMl{iGk-^JӉơ:qn sxꙄV EҬo!5cLIhsrǤTSZV]@wk[, 3ۉ,~w775oQxI:T v=ռt5'|c옻4Eh{]@  G {8ͨcV1ed%UI NRS&XLLم+bS!D#TC#$=@vcj펿K'b[BUYԞI&fr25ůcow `UgIث(AC&''b H)'Q4$d0b{A ЩTkNY%GV!,]=t}{C:W "c^)VRTؓHyr,nZT wm #pF$|7#A7G"r&h,Ʋ/jʾEP:$!T)q7+'acI~G=yc][Ib[ukޥqD$#*0xU4!QA K+|9]n<-J쒢*+P'Rطa ^X1y+,!Vx؞H KJg,?15r<$&qQf;Jf9(UMN=2)&J.lj;*Pvm?pޛ`19~.yEepK 6 E*1իq֫_F%x3j“7a35cZi,Ӓ9 Lp(_>׉Mb+&5oÒc\$t_؂t6sfl\NeP2~@}sYePcjqxo]#`H,9Yk88`@$P?S* |(,7rW!bEdVI[KFF}~bFBѠݐ^!+@ڷQ%w~hPцKX4l4Ad %~K҅RUHj>y(:tWdZf%@[‚}mzvV|J`-f;,LfGnjjDmOH=PV-~!X!Vu#`ἪO=B _ bdqfIXϑd~"IKv [W_kfymlOL֞8rݱZg fGE@vΥ=~EXU&^He@V]#-irNc _Ã-~y$8Q|HUffm7ؿV#`%zIV&ND$ Zo!^ѐT}'g?ێ׵J-Sw 0Yh̨=؝S̱ҭ<HlMB›I .|k?AP@e3{M-k͐g&Dc[ֳqցdhZ» 2V3{^::!ReMܚ1v1=U%dڪaeƨ:)v5)$V<^?XFhU2 kRH\;e !-o¼,ðuvCfp e#^J؍g&@&u-v;]739UZ! d[I.>h T'bsZS] TKօR2QveGOkB;-LW:q%[:嬶KO5R@6*+D_zciU%ɳ5D=d%NcI<×\M1-X%̝JĂQ6OΡ(-O:]ffo Rz5< kX E&3(ie!vGAS1[#)WVX4-dP̎(M*\3~l;Xlu}? b:5o+o~0NG s>6kkV.ݡEe1Hi8*@R]oz#Ϲ>?Ryܝ䢶#ױ"Xm#%OPNʏWo6C.NO/01JD}UHX̴y2,NzK1ڄbVQcHAag1s-*4&jgֱ~āfH׬Ycc~8Ngk%0Kq]Ё$HCb @\mMBkx'r"dr⩆'A$3fdW !%Dr{<- ΏaC{rXlr9"=&Vx;F'c0=A;>o{ _$zB)-TfHTܣT*4zіKM_"~*OT";Btiz9܊εݴ{7W (TD";N1Q3SV^[,@VFGz*GBG܀@: AաPMɯd?,7+D*m{^M:iNն[Z`L^N)W!~asma8"}U,Hz=riXaՋ{P?-8;l`Jwo0y8@\b0*1//jq^@)dVq͑=md\ y M! i6?1|S'vգUx+*Jb7|X-Xb ԕ_̾ITfnC`*WVحb9n 0?\$؈^gMǻM$-TB?U@_{m~h|^>:^zY e&5UU;R>2^M10Փ֬MӬ1 MmǠے:~7jTɧ^6 ͽ; Zao#{M&H#s PD)}>gT9;g)%kI6SvmDe)YÅ $! mjv#~8꜆jyڣ:^ 2HXf^C3@^D bk5J@$@Aó襛ײ f7Za(v(lyfRYuM?boT)rbVwECwRޛTU.A$7@l@5!8l5OJTg!~m6d:]g#ˍ|+0$" XOU[sb\l>xԲ0TI@:k\'͍PXZap0 ,xiv4,C5? 6qJj4Unt{#^V,m|hkNU6s͐FnYRV=%C0aWdŃ,%k]~ihռO)8Zn#ytq )3Eؖd1Jq_dy9z耂VI>a8]E+1AnB=_'rYw_)6,Kv2q!B圖(Ƙ`~hҽ[8|sIxd[(I*dkX`l13߇u^6"i}Fg؇Sz>BB lÌwC3E则" "+1{m(QdԖԦ'1$v2=F;;6_0Z(  ,drV :9 }#k!ݷ5(jFYdf6߶$C^&uT& dM+R%2JlQPNhdi'%f+6-U[mX# _lK>/<68Ef;sg^&~6c }aZoFGΫiz}FR0bO]W1di_?Z&*‹i&=UuU,=oz5F-H=(==Ӝ hLnCZio(dXs:+vd Sq -uZz_r,0.M >ѭ^6Մ*!֠pBc&OAqO迦̝@$hCaUgD,I: G$"ɋ\cLoY|q?цk\[1b䤇2v`yUd#~- ؂,@؍52A죮·Xр"CVOȑϨu;` ._̿둳)Xʊ†@O؅%cNދ/x)>ڶE"El Oc,;UE][x3?l4= Of"PA]rŢ9&]Nĭ.&I$(b9@ub"@|F6>; ,xRѠӯ} U+=u@;lXϮ3#֫c+EX]!1DBz$.#!oSu+]M3 ӔĖ_}Gڂ%fwnb`6Y-X*V@uIF=@>u> _$!;JK*wyܖ1^`C{*1+66 rOx^ǐufid/Wvǿ+ ")1HȪٽ'de"c){=Wn@Xش?Y-VGţydj1o-GNeE LiD$oc.U|aBInXTD}I.Bt溭=9 K%!ZQ e $lcCK)yE׳޲jٴ6Tx$(%Tïg4A \QvĚeXY O u"b(%֌)̙ld?YWU3` CZP:_td5_3g(?zQ;RtL:׸Uφj.+JXmG܇ ȱz({3ڬ wC!{o{~hˢ^|1ϒ"5SyߠFWr |8C0r958t&E2**}/^ڑvr< gK#x 4iJb06 \ND3֠abEva >cu ȪMf ug#+Z8S+h#.لj% ҇`v6emӖtq$i .A=Btk>- "Q"HOv:b&p6+!==&*Bi5/q]co7oT&g$xCT!S}}6FźKnDG,3j7,Y4D*E3spaUS佩;yJYBvht RMc7/rFݬZGvc#zbP6ܓ*w'Ŝ$X s4bX'x0F`X8VZ'ʮy/ͯ$<Ѫ%HiT޶Z:bՙ5mWEc ;}uP LY\= }~[FŚy*~ l41bd}*w )"`OR,e.+Z3Y~J?a#- q[Zteq9DHX1^X~;[ AfsMvH@Y\ "̌łvF%>s>J,~a%?o(D܂j9-{xWoɃd(y;7PA'L"˚1C6(7c`{؅ n|5KY X؞/I!XmѨڲM`@OTfF~4I Zr!іApe i@ےQ_\'poNٵgV7fbYߨT XIu9[Cr!D#54GY\-cܫUk 5ܱbzݚ -Y 90 6{+hUY J㯑A֊LNFZĵn,_a> ȥV`gF+ [$Un-YY+Ȧ6BȿVR `p7{?ZV1ia󲧸GO_;+FK)2rYWNTH 2'A#zUqنVPeH/P)`XO[:}gBv{٘iAB]M'?ʲa!SJ20n)ޜFLTqƤ_lc19AՎ^؁Ao<u8162:KJQ" 4v_c/"G4U}GӯQdA$;"ySe^:WF:f1~;G.,* oshw[-/ kAy%܆:)bI;SAڀa싧d2i4gYګۭNEw+LXtҩ],ON=&jQP+̆(*].޴جvpls1O4EDyA㯸zSCGmA02 (s42 jQ_2uh^>mv 72Y*+WZSҎ]+~>HɘbxĂ쭑^VA$'APVMIJ'j> abbnYv&Eb%{ 4EBCNJIՎ_X FB9ps~+Adb<@ ^ N:Vp_bK[ y! m_5$ WZܖI]#(}67mh)\ln\qr{ lK  ]I!7;l,$WTS3 .Ktr :@@`/V>KZdIYS#2p/;U,*[u3\O!zfOvܢHce^ʲ~͢4tsZ9IRnOVz 0^G=(!]ʎtkqiRCyEJeexGڻrS#?T|eקWBltYCs!0*WXl~.q/%縖NRJXdqֈlqJ;7BtkRuI^co4ӼGzgGzď&E#~պݹŖ0$l,bU#A{hj@N]]*ֲ%+hJu/VTUWb!'FK-T=5vt*ڬ`gb&sF^kՄ)eѐJ%X0$L5|gٷ&#و1D!1_bc0#A?m82ZAu2G5  hC0StqA,~Z66L%_϶I9>R2Qf)`)$\얐*p[,ߦmɵ ruZwݻ)> ?g ȹl'|=v.^E%VWvܰJ> V%1FjbwfCFr_R!K3U1uV$]mԫbFqh9w,7yzɋ_;ʌRͪ++?o",óXt}X?ck-qNXRZ&sĚGcFV%0-LdًvdL(1F:12wŋb7+:T:љK*@lи) "AHt]'|?_W9OJ@G3@Y:{v#NZ UK-lqTbCi*?MHkƉ/Ԭ\'a~h.7@Vf RZ+ 1k^=f3Q#EK,@ g61TeW1WׯNFMD6PNE_=$5zk ?hy]B]b`|l'vl>62'U,o]+0>0[b[K.#t{ILVTPU/ƸӕCF8gXBFR,1O$57Y P=}5&EJf\~2y)SMnK P7ԺMODG}7^(ֻlFҜ| qXI/U4 #~okb՜/^/$}RW4݌HXH;}'dq/;|IxC++/V*cȮ;Ru Y>=`c,d13=n FӨi>wff-9F&*D {H}{= 2N r V*6H2x]z:3o!>^| $*QB['h~¤1,bG`*'c({my]:$iVId", J Pkf byS]T@{ ;{?&bAV ^_ gʮ DMz,4j>RүhM=3@` )c1Aj`1=.̱mc`l'1T X*nR}JW`^-),Ke:o#v!B t[9}~:Y#.y,WE`ƊLu\zP>so޸`J(V1+l ws6>C fa@a³ 1>+%J9BY.bv#\(4bVa$f6",NHl7CeE_'nfo_՘UpF~&gWHQ׊J$Уv`[!/Pժ6qE1Kz֦gI>A%RĐ؂Jzsx-^.CTvM{2gyU!Qwjcʥf8+G!MCͲ7qZ:kiq.a辜h}'".h92hhٖ-Bc'!k@0}tq8BRy34T;G@” J|{gEzŘA cyJ}mHNqVy*F&jߓN䡐*=/R-N\ZZT3&G {7"Shbw!h̤=I$y>M<{c&٫ߑxJv uB\7?U$B~%^=MCԆLCV2wь!^BI:a/Ƥkn䰠hd3Ъ>MF:[9ӊ jgo%(WY }=Te1S =J[\wǪ$0 $1K<~)B6YxiÏyL΀HWrA%zHKoؽ'nj`>*4Gz4^qec ,`#ȥJ O{P[xB~Mx|[/2*?f #7lKݞ׮?GfvBo؟L6Q&XDCؑ^fRlGBP(0-|S 07*@}GG>ЭSA*bJM!Ө2FovW,χZ1g$9;]#Wo.ޞ;c*%[M률gb`OP^}2_exby',!n!'bVGR_ҕ-&O?kcoVf0о˦ ޓvNv2/N] UXHU*XwrIs u[=O5X+H@cPBF;6AjܱVx -+lG;wC3I;^``#a_6=GGSC*hJ); {G0nNW3yS$v:'@\J&>G=uT T*)F='g?zp"_D`feFM:9s՚jI4LK: C<; V)oZWV/A'~Ub6ttNIƕ1g=YOU_P@tAlZGI^KLiJ Պw*WLw_?jS Oa(؈Z"X#0?Se # 7RdgRVDWfut.@G^nʼn`HSk8-XU'm+ z%C1LuC5)Dq ]:,DO]۱mA-x̡ms'& (,O[`e&KcrSN}6 ~OR\7r2ՅH☺E/X6Ul2: ʰٷ5n$MI=AvgzΆ[ZJv&yWN &>0%r8cL0;`Gس0)cSQoT#Y@rD@d)'`w~N)bJKZttlw۰*6T&+f았LiV$## M1b7^;/tʼsA5gPTi D#uM}R6:0i.i1oE GaDV/^ [#Q7\wFq7c*/V= ~0XJV)pLQ0zPXOK5,w2U/*KIvϲ  @&%3چˍ6.:bՐH ԓzoje,χGJ;X‹ȱώm?`ZbcdPI\6l"r#ȬȪ2PGg[=A~F!bM*V6#Hꪠ4 >;Ǣ$!Z[cx]goȍe` D?dF"=KR= zȨ!;d,>#whh,ɠݟ[ ϰn23VF8&hbq!yQ U={>1Ǔ<7!3Z4Gey= νTBSvi+c=MF AV=3ɋ.Ls,IHƊTa@p8_$RХZoVYF)9JĠ֏q-~{{~哌M$52vd4֥etfP{?Zm"rg"> l V<ZvniGZ 6_#;lja+J)Y{*Ld'm ?/7`e.JLJlUTͩ8,U|5B A'J(qdPz-rR=ibC{r1we*6|A~Q4ˌ-02_A_i6g:ωwѢ߂r=~}HT^Nc?u c5V%Ve+4kU#UduNj;J(g1ʧedQRzԌut98Tzr KI 4hQl{i,@ߦs1xPOK$Hb`XFd~e>ᣇPyI+X F6}J$7ay3jWKqd娯,;Lpg;V%;6C xpfȯI,J/6Qd C}GjC[;BsUc͓P,JD@;3oނk;lyd-RĔeu쌻!t95^LzPF؈kZ d\6C<>X6!` ΁j_={7N 2*$k!wdDW` { %yX䷱.E4V "x֌=n_o_1'Ǫ>XqյK[r1_'+&0;W'5+ Tfiz5yK6R;(o8~=4ٌ! +hXf։`ZcGI B@3J]JUN%n bl4Lђ)]TcQޱ٤FtH D2 ,%6#ٜdfgzɘC?K)y#_hN%8튼q}ic*c=DYII(@ nISb+!RC'Ere{]H㱕g̽Aդ&K-^fiPtnˬ-5vWec 1NxE LI^HQ"pߏf"[C8f7?u+쁡mK?`9>]j|o:cWL\"OuE 1O[W 䤛NMc:Ya}ռRX[E`F?C75cBLw)D5g9yk>;?=i3I3bf:u^G԰?,c)q>w+oAv,VAyvt^"D6:=x(RH# nA$^U/b:'SdSb 3MGeXzנA*iB_,ve|6U_!v=KVQ[{2/^F"wZw2^O`Ԗl f~eɨ"♥a#hY#%QW${ Qarq2X8P^8dm h(`|ѯ*bVPVl 2?=R{UOb\URyY![Bv'@0OdIRLC'Zbnaމ3kf \|6RIcۈ(P{Ioz7qW3X\>NB ^E-Ua۲| 8mWiJja@X=]՛o>R`ɚ3,Mgzec =Z͐:MhNjWB&bu߮ο>aq7&G#Bk V6HR6 d{?os 3 !JRU!d}*#J4;BZZ7+P%&qTĕZG0`{_]oj*T2iBz]ȝQ4{1ܖ<߲ȬkQ$?_ڀB> +v1h >Y7,xpdkaEfʼn3x ,H)|Չ!ZdAOEht'k?XG^9CMѷ0)c{xϓy%`'!$=IupC1 R.2H!E=x`zAW7iqjf]Ea;bIdpsL~ 1NnkKRff-`4޴ʎIe;ͅZ'Wo@_>@_2VQs&qmg * c}^X+ȮA^ML32)}5X>+cHY01tRb^vͺuԻpt:1l/'Cdן3c"ArO:*XfaBX ng-mR%&2r_! Av$#dXS;,&RRǪ*YYB'f:v~;*ANu/=ycpΨ\?9~UQKo=yפ$(ZV(Uʜ}/g5FmI%Y!V4 ѓ'@'耼KĐٿQեoVSuj60;$zTך;NT$~33 2'L|!ܴ&_5,- b8}x615|r !\Ȋ #F`})RtT!qqdObA"PcB*ľ_$1XqR|Ñ!1RK ־RI>{mVECJ#ڱ57` (ƼenN6jԯd$y%ꨚUEr>ccHi>>Ź!2T]ݖ$ƋӨXiS17-PA^8#DJBzS쎃g. $9 k[""J @ RvOч7DŽV!0aȞ{rIb/ي'ǢވPl&C.?:W$/$0PKhF,NrLn73gt@+P-|#tVEE3/U1Y9{1y%'VE CbԳ ]tLt^ӯAHaftbBꄝL7{zMawĐr! M ]+ޔv3u{ ӖHV(C]g J ~Y)q7C,1"1$BS`|y=q#0rM& = 6&gdE2G^Oqw@ =on%>#+l~>媕^+v}C3t{x8[2я Ruߑl dn`@z'`|hޚq̆jL֝OGT^@ 1i`ٞ՛pLI*LVbzϔtkZfzV)$-.*GfSe(c *PGdR :,h3+1pİo zCȸ TF{#s?@v1~OV4(UFFxv(|Co_P5QaOOn{1]]T?2@]?g9s%5bDrU/G~Ğ&5/WFΐa%}iorhL4ܷL^6( !hekRLIѕA]l(ֆNxlІJOeh*!AN=0V֠nZanF{誖 Ok\q"|K$FUSU@]q@3{BF :P,W߭'<,uq$^طVUte_NJfq$N:ү/=mHV52/W.2hhPR%#x2"Ɛ{bn$ "66@rȖE8IXh2u쬩9#>0Bnli*\O-qFȥd_.λrI uNvC-ɲA M̫%WS>J{=Eb\}Q<Pli^NNRN A|5T5a㉊2U;!e\Wc,UJ0AjNbDNdPimqLXiU~֖FNՖH.U1UF'#9 ũIBSl!4ƈ &S8)d<,Miu& -lJ,|nKkW"dc*Dj&.3<-YϏד;u+h Ա Uq@͎zkFHYP^$EPNì*u;_ 7GcdkCYHA6)y3_I!}\3Hiٞ<Ӂ)Z~˳d`Rð_P5S%,pbOUB~_Xz{iO x5IDq<юiZ/Z{,D6aO^TSM-h+*e׭1 Rākؐ*l7!;KyΪ 1 q>ކ..XmỤ̈̀,lElB{/gOE㫓C,E$ `e鎁;+EFpI$bc&yzyk#1$\#"-T$ld3A}HKcl+Y!po7ff>SҒ?)kMN52Fu=BY֏ɶrQa ( 0 -#tD[=1#Cd R,T"R{ݙ`m#(c:NlKAG !8gUxUlEGԃH!;^˴᪭[fqq{eX}tkv/Af> nTaJ첕!Yk ]cY_#v3ePcrOp]Tv: s7)jؠ)HJc=ۯ@">L^NGKfxqؐF tWVGCmvOc˅._cp$T.H{*NՁ] - {#Ozt2݅l;r<:YKGU*Z[7 N]RAO>#VNͣjq!nz/<mu[q֬+2'yx+y;iWʯ<O A(O ["НP _d/߽lۆ6`/fNR4]_r4a&2vC$h$M`rǒxQeMj0 3:6YKk]:yxM.(5"+j'P~/W,BioO^Y$$k']#AdGVXm8Su1V`Ľ7DSYɠ_b_z^k*?$)%Abg5X I˱M~'+Ʈ,!F!kz;1߷|=gRYLVewUJ_Z^u3D6 h"$fFd]@mY<̵;ybşWHdOAQ~d0 Ko&&L'V[U4miz#ca[6qZV{deþu _##b|۷b|ؖ LFJDcOBFn;lO9"|!,Vh? C~GHLN*{4Fhʰ8_.K&1 )WU䧮5ulЭxw4#kAX0OϘ&INeE$zv >4- eG=vr‹.]qEp/hI. n3^$Ee=3H{2 Q*o~5{FɲH`Ň:P5?=|u?#)N8V9o- $j{{Oe*.c+Ym=TG 0' Gg=]{qv^F9THmߵ>ğ}trحOcs+DpK\3$Cy{NL_^X:U !ɮԃk2a rT.Qɶj0;QXJK6&Wmvn]7^נ7^ShK5+drO+]ť '-snl)]VX+;c^9 TT;3*s7\ÓIK^ ,nё#1%AZ$I36nMA4JfnĐJX:~X n:縋PU27hNd,;V4I,q[}[=9N:Kv;mu`489b읋p(7z*֐{F e;6Rzqݟqd$U)2mhɡFjlٷG ѮFaK}Ա*I`^/`Fs3Km.Wz$5mŷd 9B?KJv6КY*YlIFHe䔬3vD 3 FaObӧrXHgEbH>܎b H$B{v֔nW5b/@/4hkGбpm_ؼڹx]/Ϗsf{1?C0pԖm6@Ȝk{ZV*M+ *[Pֽi{⌍vn5? Ll8IuV}u`l|u0]5#G͍WU@DK 4`;]XxLya y ?%'TEMv-g(įb}cB xRkli9NWbФ>VťvP2WN.YcgхXiF΂  0QRJ( E#ZYЖTD(OG\%JUeHԦ6WGu k+S0/uM%* ,SM(iYJ,%ƢǵP;_+r漬sgI<veht+ZqTXJޝh(`]]w#vW*Z|0"Ңz;-H2B]T ʷuoCCI ԱŮf,q_?aE@Ī䮃^a63)ke;T4c!q_J}[+@cI)FL2ij[S/N Vnbe]d-K4hۧeb2diJV*:oF;$*q]䜇C񬵮YzOj;ē_?69*͉bx'`~-_x]j 5Er5xԊFs&ºHY}#~k? .:I쭨{[R@df]_Eva)`Q*2Vx3F{~辿 r|{cbF zpr"Yq40uTomzG)Z%vEcev EbTdo#_lv:[358:HIRƈ(29Y_/ڍk5Ucb4Uӣj4 1cւ{rXF23%|taR ~6}-%ٖ8޿imP؝>修 4y=-2fdPV z޴6JJ!bޞo鿲b)^}DimfXryJ(#RI}7+xWLЛժfC 6u2W9B_btjgyj,DYl?-UMi_g`!%Bm{n{9sv\K5񢿀vDAb6+Ӑjؑ .]ЎMYWi0HIyCށl3lbe8^A{mԝ/mg9NŢhTk՟-XRGpCb[5c9N iv+/vfz٭$"ȩS }Chosa3kH\W,'U/mYnCqUt ΝR m_Ku#rRX掱a:@Z$ Ze,M5y ,7WWʅee`ă͔ǭ<5jVJIKuR+e;׭P 314Ux4;BH({=j̴ZvjP _@C}Ge6h,XT`ݻ &0t`Oȳ e/9hDsV:sB…:m EmA#0h-)`KqZl@ҍ~K,w+"BjIDD!XYOA[d}[ qXKV[ *<Db#C"Ŕh`}!Gؙ1W1q^Yd!1螨 ^}{qu)#—i謒"Ӕ; $P?Ēuk&Pf.dl7wڹgi;R#,9?K]5$b(I"t(XYt CxbaӐbdOJ, 'FR$"t ;o:`?\ <ʔhb_ FW@L]${6,F^T,Ix=V]ϔti`j/եYmw "+iiH ~R6L5⏒Rɽ4i uO,M*F؀Jm6{ !O(In$M.>H0G*n>F>ˈSKA,ۭlY>I*sdrrRʆ{w:& m ؝|N4NJ:* oh.]`mR.b%ZСXIٚFr-A*t>9'LjqS1ٲĤ VmnC謅v~"wN`Ƥs$R$o(JAxdTlV O7LMomlp݉u-z>햞*ײlY҈r{$V%GwUN$7s9f:xjK "HveT  ` k()H`;(*}l菛9.N3%ӛ=juH['2 ,:쐝w[S_qӴVмȀHU%y=WZmՒh$U7n8I (&@(@':;4 vlQ"{SYuH2Y/RGJu?')g#5iH 7ɦ=7U&&N[9o!U($&R]ǷN+9\u|bK=6ftX $$t_O 12 ͼdљl#)9u>b c'#X|~O+)evm,He uO"op#UR{kӲB^O^HoG~<Ůkq%k1K8&FX*h!]-{SǐwmbQHHPq3ԯ0?>ySd&$yMX*tT픉;Qc[oY;Q{hvH!m,3R_5a ibZ w&DžfM] NԳw Sߣ`}V6d ٓ!tFOA*46CۿձJ&i&Ik-U.|SdW?fT@xחd:Ss4 ,faĂT#[raDX1u,*zٌjj,,x92IhV8J?;6 AhggcbՂJcKJo"^7gFBAUw{B<9ʼ5)1)yCkKy#!} ?5ƬτZrVT+T ɱz(&㥓%1ɈkelҕKkւ ֡N>‘f _܄H1!fa}uzNQrDVY.1e 0^J o5_-طsxCNBN Au+9-[ݞߓX ׹$m&ةC,d304qHRaSAA@mG9b<{^8`Y͈Fwsd<#EĀ{FNl.6qM 5\vBқK7VN:b$E$6a>ԬvX#,K3TqUrj$hvQJPoÌUhpy /ː,% 5׍„%&v,wSE6yUr^ ly1+80u[B=lҬ9fQٗd#m:Ƕ {iA|ɡYdߏ[ $,Ov:lke$l44oYqRq 1}P'׷8-fE M(~uDOS%ohx^reP2P줇^{lZO&B͒11An(Q4<^\o+'ҵNl+w >Ao+V R{2י#xw#^/i4 vvaXC/BUW{ p.-sV~Y'J[YlRZq6JxS#EO_Ք4L*I: ءK3>6^ox&w !]1#=l1>#%0D-+eoSiCNNU%.ap׫%cyOY)`Cjk'2ibJNSmy{';3(1D6 mNe< 6 Cr2ʖexB*t5=<9;bjY'΄%O˰:+\YɊZqSERڽ,@HuvmVPSk_9Ė'ז)Ul= MUޱKMGZfW!k-jv#!~ђ: 0Yd/6s(Qx+ڿVm}6ѵT fGz8H%i>id4V\ULUIt=$ &&ޡ ,3b!vf*6]l V:rXt#ѵ8"-_'^Is$VfԒ'p%U}?`?9*Qa?-"H[ \\1m<Njbl_O ur2$kUkt38Y„W&2LYz-S b:E>Vd歎vf)61WW!/ga?ߟ/ŭR (XzP^SV$}6Q_z.Fʹ|`9B}}rw&\mY4-4jb5dߓNJ*\ڥ†XdYڱ`tp~Bg#جnhr3n?¹;%5xc$zdcP 4kRγeMԞJ eG{~lxKA  0w*[lo?%p<#]-v{2 쬽 e#v|_ԩZ3pI^*+6SJD)!]!10^r,ZrR29umzm2zcgE$4SGfu`ˢ6xJ͋q֣;'T ;.;ڧ[j7"bBd$q&_[("&NŁ*Im~.eX VH$00@n鶚b61WEw+*mCy 5FaE O{Og!ZaJ3Re?K0U?p# 㼎*z5䖴VC#`bfBۍa]'#񳐟w`5%H@WF!ZBB=5*M^3ҀE6K%as!YԁL av[Oц݅?=hG=VNJƁѸ&:ըG:ڕJ+E/`}DvPvWJXy-.Բ4rd%Y[K*͘ &Xf9y#兀sh}l\O- :cV"WGh _׫Z4t(<9 P0۲ Y>M3(f5過]ť{'] lJ|_FfsX룈ŔoVAƼc=xn5xlUq9-tS>˾%'TgߕbhCz l&6]zJȬ>Kc:a)5Y $#) D>fGxh0YJ7vodRJjx+X ;<ʡYZ9) a%k/r)!IP\^Et'-R^' iJ,,կGF@QO#$ $Z (Q!Onag;{ F|aEccUPх;]ԧBeXs_fxlY N~cc\jf4!~+>9Vm7V\cpKH5T1IITqg/Fl%iA *_ Tc_ j-xR"G?:ב3 Jk['J ;G?.4H"fowi,QR6BC3ZltM,׎Yf$s#xF\&עPg y[G;UꖒåXʿU % ,@7ٷNMdx&;)JK(]4eSh2o$7eώ1b4c)Ql4y;n0**6Y-jZ:6ւ$5)$TIFTB|:oŸle|'I6 KGռD1!ˆF9d.YDt2uT$~I8Cfima-pVHY #Qց_Cm36^^hYLGH5!G^zu awe{:mʌ\~=gLGǼ#2ق/Ή1Dˀ=I5ܽlM\nl$=C5{K+mlI@zv l| ?O!oB?-XBQK[EI3\|E$Hu`v.}zG#X1ګPi#JMUutm$|vC`ۊ()J!zE*|[gTWxxUT3G9X%?"7UaP! JAwl+ bq>Q(@bY1Ys} : CzW-ƅ9VKK@Ct\d.էZ4QƲ*pG :i;{~GM/XJ5hDXN> u?dTqOq-RFeF;45{.پ,5=걙K!#t;i-RI-׏'*7|}E0Q\!8(L=-)4VUHLq&# ϗcPVht\s2^72u>NA;޺ +EV:C0IDPd.l1, _r5yg)xY=0e.:˳HٝfI%u4 h6ȬIV'SB+d XFܽ4E=:;C:ƱRIHoi@⤡i(,mF)>FUgmDz=XIdfs+? ⛪ `^g`|(Jkd$0-*hi}7``Xt1YYD߽Oʥ\~Cb9m:? v??k"oS'+ًL-uYtv~Lt쟔pߚu:<ڄ[eOͲ>ꥁbW}S1C2BJ ǎQf,EÒoDkd0>ΈiBN>ߚjbJԥxP,V(H.(xL6f}gKfNimUTC _kZyU”F̅1,m.ZqeyջV1bw5ѓ+g_Q@:{: GpwǥHlѭ~=yccO,K!> _}uvRvIKUACy[{S_f F z1U}vH^ [L&^A(G'jUm}{ֶ#xЗG)%h{R ׌tvn;}F㢍 MkDI i=Ksñ oL޻dogF5T4߃I#2BJ&?Qљž}Z K&>kyd1.GVr>G oZOLe%L{uo׶*cc*FK!#Nf0$_dvǩ`4,@l㉌ǍQ/`榞b0:Qzk0L1uN|<7qEªVnku쓿U,djV_X!$u{G]|՘rp&-~1! P\lZ  tpȧK'& h'!NA%X] οL.+9l~)岉ԍI cb[ނv K|gKo^jF HkuT!\&6$нuW1H{C u$s\͈%\D,V;%hOPB?:0]HX[..|ZFB2JVC}~E :L7PRD2 /]%*CX*W=ߨ:X(GEQٕ$=YFIHZN$Yu PWZ*}E tܟǩX|ۢeXI$!ُN~f?nK# 7)yTv2S_&۷a4~~<覼z[v*BUR E_dN3p5k?ղI'SH1yedPKZc0$.Ww-RNH215iRςĭvѫFr]YqxP@B!U\JW+tK"Ҹ [~pxgc13~D~:-XYN I-Q3--mm(1$q'h݀Od/Re!Y -zq*$Ib$l<9,EvhDU_b@@Ha[{,!|v,5Z:*˝!Y PT3lO||69&{VsI!(Kh3(V`Gb?_@ěs|gKsXȬp+L>[]}4 vW_VdC*/bGRX'ܮlKȮbֱzUY1iIo &3z1!׫oxy[yhs?]V-ON9lZmuv t}g+%VU~R3f [Ec%A2*u׵[EњڹѺ̒|zUF]2 UnKTHvcmh3MS3ӌ#1:nkcV'7# sVt7X6!@Ͱu~5Tc"M؛5W)9bҨ%F[ڼgUgb|_OY k,rFIA@D k['EnAj< fPp9uXc2 q8Z|-!xZDt 92у:I'e[Czկk~iݲ^fSc$_4|W Gq*]ԏ[*=>q9I(s–XYdD]mge &>2zߍ,߀tbX@QoD lccQKR2ŅC 0uF61%An\%1-^}+x+l}JGm)S}6~/F <$,LEpŘ'B;؅G-e2(5>.CPFݾIe@;e{ͻQV5K0!eőVꫭUc]JL8d1J4nRbF'~F|Yma3|SWNADf%|G v$OɚETe"Ēܴ#Oʯvdb bD ZKJ0@K0;=Ld fI(Z)jr @-?A$1xNP׍|u,ɐ RZ z銺WoQy-nϊ ԷiNJw}WhI 8W |=1ۻRt[0Whtf:| C+y_/ 39A_O]>:{?C=Y,E?-d`i:#;|geTh`6'?md9bdI-GYBd&"z} G&j$@qFRlzFPWCEczXr7KYG!$C^̥@떐 2/TЂmM%>h]-D,w [9<4tl21mF|AG=[S1"ylPK rH="(wh6I%TF ?HSjԕ#ZRضƽRB'I GI#3Ziah;55efXߔ#>M8pKr"Õ7A+z1ŖǑ[r9(+mz =X^:8&ʞ:k H*U[8bg`C~t?ga9L1VLK 6E Ҡ]+&fAKs %oщdZ`4J 0cG0Sb? $܂;<۔`Ś<~tU T$w`@O0!H2 /Dne?$]JjB ?'fW"Voukgip͈zK6fFg"iU 2;`ltG`A\;Q<PMc̤uhT!F?W'wq r[}͙1,G%ܟ [rFxnwFY6FOPfOWZ1Nt01AgNQ(80խӔvʻ(9;8oAb6<+On٪M$z2F{Nԁ8.MsX9y̠喇AFa{e!ù2S(Yl#ىi~D[MgxU;v K|,"o fU+ ׿MM;lQc'V[YZm?N[If`@=2T/Kiiban.$rP4Km6Vձܚ)erp(eFt,fmG֛N%kNӸ311\̆6i!lƁ:es \.Bz˛G}k1(+2%v[D1akŜ.|K!O+zwT iN,C+LI{-}ZYWUBހ·ώ\Ðg1۔ڑkld8/HR& mtw"b[!?oG2el+H{GwUWf]I,KjTǩxaÉ6Q즊* WZ \+Z+?0a4}``Ɣ3 ހgൠL؎_Ti[+,tB 1Xսuek;\WsYvѣH:혱Ь~H?\urmVC!xuXnV`߅gd&fjKb&>2i:ɠIr=?Sm5g9"YHLԕګklG-Ԩ3R*Os)UU9&HwUc8Doҩq>WB m,_lg0łf_E^ս4˥eC#c/}d8NHOH 9ԟǙl?ܴboɬX="am>AI;c09K:%I۳dHύzvQՈM.F9d# #Lou2``T>C W`lr7^%,(Ϩ<@U| r %YsȎHJϿnL ]ꠅ:x 9LO/cөsei+Vܞ$V`{N,WҳnU!Akgbb"v֎mA h₼w98fIEV!#J6B,;T;%Y,So$Оje,UI u%Al.sǔq"*/YXFd HN"HYFNQ,4evM9=''av(8gXapQFbu6Jj7jJpZV 1WxjM)ԭ31Ț ݦ_mSj$#Jry }e 0h%FSyKQt+v:􈏯1b@PU K-.: ;(|lDt ǥ ћqEL?$[rv%s#et~A~GDGbF  لжQNzO[x{EicHa ^s$arzM B_ы+gPdbw&fn濮\)l7,)0*4}Mi6qA/$g=@Gz@}$bK$Ge<&i&:I]߲d %QK/}otqkZZ)i$0b]4A1*dm١o!⭏֎^[veV=z[uWZJA"G.iWPY_ve? cձ&Pі/$YTh*N<,XXSFbre*ՙ}'o[3!i%^H :#$ +%Mj,RåUxtcwWzRJ}}kmG xFa(a2JA {uPw0V3vDZv"MDNzxJ;+O3ƤS3]le~x)#i,Cto5Jb{=`b,tW{д/ҽ2qX>ء=0@u@= [Gj ̺_(ԥXvC= k̓ŶV6f[,HdE,uGJUƺ 8:U"K5fLPT+8n@P?u׳Xg"]Ub*H:;*ƊAZRE!t ]Od@^ O{+j>?#4$$)uAQ&)*ZKzUX%%wTvY~V rVn;j)^rgPJ`?fٟk*fZ[qѐwT!;]29:޼{m'DG5)[1KP4.*}>щ"\C]fmB &EN԰'GpPE^CHvSȺeM#1#փPM皳JMxCICmu*>hOIc!f-V0rb cI^'ގݵ.+ʒf/$%;! q7ʙ첈]ۘ<.NK^|sjZ/~$r=1$kކHc4_ϐ[F,C3N#ED=P:+ݽtW?*{oK} m>~BT/& rQ"`b%⿈mǠӎ?:?[Vlzj㑣*W +FNGւL߹oacdCjzQf7x*yb #20̧J:88ɋ5q°V%S8p;vfRDW岶ingG2``IFE!:%~{m f,I)e*P}e\6%\eLY?$I`tXЅFfU4[$jvmOf: ̟+2^YKV{x6Z$ #_IFqԐ;+KhR؝5"!H `j.os%{!JCQ*#-X{^u^@zseQS/j+":JccnXQ^㻹c1r ׭4v}zeҕQC,_mYOEHulKO̭4 { H-=ω fHڒ>5EW0`,S;{DUp} FdqnIZ+kxz jOVP=YEH1X9 b:1Ȧn#/&@AH bG@=Z̲V>V,R{Y YױRs)ݾmA$V{+?(U@]Y2KhatJ UI&K/qyEkشKHI$sD%ܪئ`jO< lyʬM#F+ X i; K<Ti>FY̚]m8S൒O閽I%I'}݇nuB"#e)͌0rvcAITvzC$bھJ=qL"H ˵^޺R8/1ٳVҊbTFh̀JH)$2DeUy !_HYb\ʡ؂vH=v# ~ Xf K&hH刈8WʢB&H+4<}bEfy@2гd! ^}])Q;s?ڍH$n7nGrrE$,/F#7rcfN^(pG"F {<۱0);Zc.gR+ݎG8._ UQ:;v C+x% 1NCb^"cuL#3WaB3-淑#V *6ق*/kr1M;@b]{K3'b@j1fn?\&^f‘!IMR4WOlE,v,G^eIxaYL~X^I:. ?7Os5i!zC1߹_eH'`濞Q~ JSs \UP,#l Q+~|9$2YZM#`@]&'~5*-DՖ7Pmj@ vIۏM)R8"H%xi%wG$d`?jCA]ϔtyD89 {-O"N,JV) {$1 ʳ,f{lH5G  2Tv]Kv"+v[- E\[X*ҟ"cyQ;+y$>BTC@|e)o\v5G4/;ۥHFXB> SL\u*W+,RC[#:$^ӡ.R<>FyuI*_JCrX `++|%|ul= []$cux\VwU(DE(b)HB.H#- OM͖HaYZ*/+:;<}YAM7lE 4Y%YHQ\ag/]b&rbƒ.w1$o-[lNB'EC3gQ HT?o_\^$ԵsS=!vv@ XG#_%DU+H7UKSm~M.䣊#4YL}K,ޮϣHT#;k8nG1%w,cV+]w釮x)cO_ =ۗb2 %aZ@*c}~{i2ayMTKu ̪c#MJGA>9QO9JhִьDT'+lv=C2 /͎bQT[6-?9U~$q⍻9d4=@:b igK!gKWkqre aI#۞}kߖzv[)9(4\ U^mAS*БO%74j3_uY:, gEAYYkVCeo)2j𫅊_bz`ذك7kbbq*XFeML$!Xh, d^I~;w֊Dւ۰NeK^fzW.Gf*5*YK;IWb'_r.+21ÎQ$ێF+YȤ'J}A벣DŌO#_rS%{]ؐӻ K`TcM9Y&dj7.D!cիF3,J:+Es !{Puُf#ȰF61Xo%+N;' rCOgDlfq(AYkݙAkiRX/#'BG~62U)+YZUڑSZhQb>螏؏'qLrM-xd?nL Av wFyCm*xYhа?R^ mH _ ܩ ٕd5|ԫ;-x:+gJǮO;$_O!đ,G/'v.ѯYIӲhb+-oviQg{ `^=A )frԿ/$|U,1ԭ-87&!+mh.ٛz dzb4zJ ̖dX̊m_r2WlOC ۄEsQ ymL>JHI%cDcz[_XN=la⚵GeG^MGh@.:KsIƪlcdUkG|i@d:{UqR0X!gZdx,v6#0vv RW=7u^3~jv\4UCLbRA?!r܁n٫[%ȫL ab6X%\f&ǴׂQ:*4%?JXzU{ֱhb %-W5bt:gQZQJ/gWV,xHWz پ@q0|S!A-㈞QèVV&`f0kO.4,bYN'}e2(t}UNRc5ȁX#` sfTHF@O G&/sT]7 †DWFv`=F(=y P[YZb+ ,@ UYU0t1"!mAUrX~ \GKƐ*$;de~Q?|5*(/Xhk̞9">C|j;2߭|[n"sQC e YtJAP_Nk 4%Wx1Ϗ ˼P7ª}: !=DWl[])њM+#GWg)\XAui]ѽgf,]ZqI*ύnH. ^E /* qݶևf%gMrXZe@#ETFO^d$LEuI1=*vL}:a&OYuњAR -FXyXɦ s) ?Ԓ˛>h'-* `C+w]y2UJf:ZlnH [k>w%,2YfSHP%`v URƦs<7cK$], e\?mSp!f 'Aa) aGQfT t);cHn ynC{ (ˊ5Y:T$_Im;W 7~[^xZ 6謙Y'@Gpo']T?팍l+KdS-i=EgwՈcZL}v(1\iJ)гܐvׯǘZJ{M,?{tdhrG* uiR&P|^ m⚵|=pؤr͏F!cT4B w/';sKԞ)zizғ벅FRi)W/iV{#S4KӋTFe՚n$/"NrYǡ@JΪhXKv0<@e+NY0UmI)Gʨ^QKW(e.K`I쯥?)0Xy71e%*3}Uo)eڏM;o#\n69hZdOP116dW}l \qW*VsCjlbqdg?Xf$Q Ts<5XMIG!X 0\SUb1xEl[XڶJ%d|M%)d 3$ ^9c#u!=/ӹ,-5)A/T)Y~U?Io 1Ԣ->2YSrl J  &LJkJI<ՃB&E[ ^A~k5ڇ%n6,$@%wL`e6F3$cc~0_۩GnrS?k^bW?rqPŮCzեTh&(( Pﵞo[g3%%IDCMz.ى ~:V!->X 9D;`6!S#W1djlh;x"?jW3 \0PB:| 1zX]IQhٝC=+KjH`WR>3a^!"s" I'VBA'ڟWϖpN#M&xɥ{vWDDGt08ج U.Gy[?N\jK풱hK^6u';n{=YK!>I,,Kx2\z Z?#33r"_`]ƾv)ylĖ0s~Ey f/;.SߥQy A-<]?\Z&h$dmTV;9aZ[s-I $?V{w7L=ʴիz7V.Q.Ue5ࢳ\bK6cҐFᔫ7Q[Ik֬RI#`z۶!5*jbEie{B=FfK0}}6LMTXXIexmNOq9IqrP_ %zw&e[1.ـR6(e'g,WFvqr]v`@,U^q1,c&я$=b,VFDu_}HP *qVno1dyzRT{5+\^+ + )ufo@_ Կ"_v6V57Od&0z)ߢ9aqr*ZE-"6 o1=+aqqqX-2@b4-(`:%d??e,CiRFm"v%?m VY,UZ(Vbf#3jC#B''bܱ,jqy,4f'!'dd}bXVy͔XDR(."m+blf Ddw$^f fփe#T垴~<-b( +AgNa%Jd|v =>Aڦ::) ;t)!Ob a3n^74Y5?}{7A Y,zϑj* W2IRĎ ,4WЗ۱رrEJR(k,$쪣(oEpTSZj鴱מigR@%A9 >:ÏXL\ɐ$Hޘ. Bl2;rXR~lrZd5wp,NY `dYwwנ9-|RbZ&-g;THU` *[s(ZI0OLݿ&9*.вH4\ 7Wx{,̰g)Dz$c.± YqJA*`o )!b1$ȣ~,kP3I' ֿ({+UQق9a63#ٓ"+ 3fm9=S+}]-UQ䭎j i*AM:;^/^ߏɫڒrv5XQdԝV) r@ @orO5xڊEj8 PY}H)TG2nYȖYt"oֻveo"Ly P#B*HdBq3y#;&`m@Jer<P# zm/X e; LCs8B@ك2U"{nk{7!]Jcr%gE $*mJ%U2 ̌vx"D@"{^Y>^/Ի;Iv=Ѷp1A;VADV٠%,q1c3a= *WKn=-$ete4lKAɦۅ HѯENRүhNկʯܧR[^uoh;4H f*O~3L]MW!vC([իNd]D; ~h[]کҜ{K^ҳ*b;8?&nS9usOjW1K]^`Y*6UG eceTE5'}}m6 f1hǮVƛ&"oJ{$IFHa!խK k0 BFy Կy:3* Vsy+Ի\ԢO#F"#2 N!q9ncZE 0VRIE}OG۳ԫWIly:d ut¬^聢NLm^+6>2ll)"V:I3xK`b9`&cAl¼n$n՜ZAAg[6NԏY$= rzD(v )2w  %;bO"_2|(m*Ҋ ZgC01H'G ^(x98ٮ'"Ԛ@} !^BH# )vɓ HįL _jPNܒV: !5HKJ@IoDlk_5^͜g(ҹi#hnױmL޻Wb{Gd*u(kr ;m|m;aV?`.?>/91_,K,(½GtSu/Ό<i!%A,U(^Տm̹Zk\~4PS7EBT7 l?Tr Wq,yW``v*N.dx1؊sA$iAgHgDh~AOؖ})ǭ߁4ٚZ3<:`$֎Qrx*;m#zUm#)mBĝmNdHkP/X,fd1fG5UcѺCOL^?>S l:ڒ|b_KF1Вu%NKJ؛Բ9efZ-tX=Uh>g`rbʼn8冊-$%XāV&쎍!aI\9j5juL꒓ *L̿->+Mb߇'xujF,@;#d|Vf5ufCDQ>?+U. o^;j"Q EW@t^l}sccϚY8d$aa}/(ufe |DKn8qQYIeP(?`Ƿeer9*שbJ$dM'Vv?cD5+r|\ 37+r"J35;R:t([|.cݣB fu$y%2~,L^ź¥'3l|B `F!X|%PYYd{R"HF]'kׯPc:䢩wRd`HfpH:'H|0PrY0 vRi<L*̅δ cB$䪒Ge*UQ%W-5 2^3aN)f&?NPWZסC!8^N \F@E2bUT1@lݩZ"y )#CfWePPJԯW&3ŵuӉ-!fӨ .IDcj%%CYkBeĬND'}9F|J|_2q2:iaYRwyۋBr8*p[Q2AHw`vpU['$˵+4u pm+کס$vGؔZKm2D ;u`o]i~Z*FF\ؔR0 v hzP6vr.;nCGogx&iBz`V+ cY$XL$;],r|>nb&kլ\PAuRT9C-Z <܂;XnlPef*H؍ [m wnW)H>G E[{{RA?7C޲2UC|7,M2(2- ,UI%Xy0{*!q O|6H3^Cd:P^tcd {Gp`,XB7tB#}BCh3G]r䚺X"`#%LͰГޥa+ޛ/Ӵe?!?X*}\ǔ'!d TxaҎCgb@ge[6r=nrCͷ !#SlX,Z7 3PF;ҺcHmHFeO ږ&KVv[/$XWrD@(I#At*dK& ? W T/"vo)=^7|x岋֗+ ಖ;S/\X)PH*L24}ܓ. rl6GUݫkF@Wĭ20ې?Pދ/,x_Bܡ վL} )WHW`G/4k)o a}3 u\)R{,A<*rtd2`(S+!zd&"Y"#.+vU?`1s tqr6/5^c$ ҉t 7V5L -2ڳj>H1,vYrt*&d2YT5ҧF]0i1fbxЍ6GBwbjAA(2 F@tQd(P?"Gߎy',ԨIEakҷ+F[1@fOq|fKVhlAR뭫H|ŐU;euog1LnNKz-hWoI;$47,Ur*=:=3/[m`3;8\ ҎGe,iEEATJ` ,uRbXUq%v.|l_MwiwWk0glPF n$TR70Uhye5;< e*1N{o+Q2AUI)Ɗ$e mӷͱLh0Hy`hS^THOQGrXmݑV "SeuW#dv#y+X=LJB$2%X*$](DU*_q -W/b3C0Ec6%LC5E.H~ŚXe"E`K"*0Ws!SNՏ̍aXY+[xVEg@R@I˩b$c " 5܉  tf^݂omkm긬 Hj"f*-:!OnI>,嗩X Jµ,HXta 8#h>Umg0JR$VEE_Rw,; +e_:.E-9=IT?G:*c $L\v%xo?.DTv}/bҖV=t-Uf NaljiIbFdl oZG%uv 3!_OLc.Nْ,uԆ%$I)c?WBW| .Q[튒I4Ho骥2H0a>i6+_'׻zەc*R蟛)S+ȳxioӰXe2ZE0DN~?0uq`&jCUXLJ:,AE`;`ךM5)m8h$^>`])ؓ,rIqGRe;b?U?yN+)s4XUIV1y:N[zVTqI@߬e5|I45EFY+MՋIUI2Jő/ef;]l|Kf0vr5g45 K"'w(>Fd(TS/QݩxgC %n eëS(Zw'^zez0+O:;9Q0>FBzV&5Vt`NP)ML-X>2J"O,PP%_'KDGw:F.eXVle-W{=vvDYAGڗ91_CZ'a-1q;٪8np3wC&z_h|Uó S k'8ʵT#2ij N}Q =[t8 t ;>,N>G: AP;N+,<*xA_jv}GYZ5`zcRz!S\)U1OaHg3W!>7~K]=^(I~{mr[7cM4UFiu`ͱ"1vR~ك#7L8ZXlIH]Jd]$(Al bc3EbbR?ü@*[IJ!>>VtK~C|GM页 ϧ?AfcASi-Yuv^d҆'}zl^'/d#2E_{?>vNEWo 9'ZO+OP˵ksT|WF'݈Y`:.;MyRׂE1}i"1M1 ʁ:j̭V գK-NU;8V:h;#`*f/rI%NDTy1QJD}eou XL~=Yj䐇y؆%{DHML59تvk$H\bGHa@rTǣZz%6+VxROcOZ ms g,ۡB 5kՄ-g吳9v} 6>`<^H r$1[e{,>dek}_8 <7-ʱrI3T R$|4fQ8\yXG-z⮫w } $T,]0a=c0kVGFe%R# 8.!Bj uǤ2wy$n;)r{~f\Nk+JcI:D ?/R]ar1Oi[O'%($]3/1o䠩J8^SdJ6h?R{SI;`O*.u@ MANu3K* C=T( A-#ީVxet]/HHR?ge0dO8ZpQhDb{;Em@RX݌HaM17;]KyPTƳHT,Gȭ׿]6(XWp^ɎĦzvG3Q ,Շ޴W LYiȾ%PGkԆ^6Gn|g[r$E!eHh/&:n9׼YmrDDbd,ŹRlgi"gyVPt_o?e{ .R7,Q dU:dF,:20,]z&wPTacRHE",\c z ׯi\Īc]Yk5鸬*qFђĎR/fRHi \ܶ~th$QRC 񘔸etz%ꩊ=,EfO dHV7eUc AԀ~hcMK7lг_R=db,rHUz [`|1-0U9Gކ)`ei(7d%ƆHq[wqC19 r2BXx2SfhW)\MI^%+7aULi+HΌOZf"d)*L}t`͋@[Z2Յ$x*"r(մvP!SMlCNq*xR"KAt@;H I%N2 zӮۉvVDه96d9|U#]HMɑN;*=F=d9%n9K7$+|fzRGLh&D A!F?n$eN= NF9Z) y捋N]Hz.،Mn{V-E]xtxn+\Tz?]37>aΊ8cF3(+LrEs_ ynDdףEo҅ޛ G 3+f' 4 ԕ#p6ĥuٺ**/s;?Js]1SM?T\qc$L 8o>y !rju`?Eu֎ƨ̒,#~??UDpEzzo”޴4H A^w@l~l\wdcRjaW?g_q9ǧL,\ťYԌG}6DZؖ"ƱZd5$0DV (w^z#z?!nuW05%D=tȦS@C~Pp lI(ø" N._WI1qL U:?G|o~  :F*l0+7P{-hU=~OɸMtE$"hcP̻goggb3sGxZ/Ԍ jO_b^ϬK05\m'#R,,PjIU$Q_oFa%gHg#7"u!;ԞXjyv^XJ$!vaۈS4Vfeg5ӱxQ)f ο:GZlq4X$=a!}ե|7ݷG7 |hCɪvie)ŸcoFcrcUu?)Gײ /TR bX4vO\?"\ Ĕw,`_G4|.pYV'$jCIvꅺZ?㣕F"rHꌲiX z ~94c-`JOU?gx59ɱNUw%b픏 .G5RVKbͨbz yf5 zW2q;PFU%Sz}ogXn+䵖Y8y{j1?J>8N/Ƶa#VOKE&2,p`F>Cq{.ܗ[ΩUn惿u@L YKo55q7mBh h~ %8 \r8 ci__C_|BE~*fyRſ-hcOBǹQcZῥr.|l5QUfJ6G~^ML-HoF Ukg__Ax0aqE7&P,jjK1 %R6}R} 5Z˔lFjzU3! zsvYBG78L /G+iB?3H0蟽*Yf>"ga]ZQgC޿o5zDm3Dm8}ȯЩɰZ|x6cѓβIu g)Ȫ۝e!&y]{ K/r6[m@'Mf79w.TGQ~nץ_c|:&OS|R2' (Ug޵6?d8g )*mD~*/m?~Cq\ hrl.6B/zzTl~x6/ MD~U#W_: ?D 9cFGHfme3@T~9E}AɹwL1=Qe]AGeIE쁈޽Stڋ&Wr#A㒅q,H:@ $0i8oHeOGc8#V|2Z:FQGF_D܇WҘ'ylȪMi6Y^s!lE,ްf da''}L(k¸m~%&c_ kU`W~Nq'Ŧ:Kư(CҨ_-A[B9|mk*wh:EVjUZeBr~/jby+K-M.b)2Aoy?dxs񼔳?,wa%GF+k_8NiX]ZhlTB~hgf&8cL??-2 onqҬOx3tu  Kv<ˎθK~kE"nI[I>CNn#*JOTKB&@ f?W_kq.)1 3քCD}g_5vInUFYɶۡopCZ&iEjS( !|L }t *|sq(=X|܊FBb3ӾHpJO~!O(@P!zH(=/Hz7LT2xƽɯ9${|8>kq_G1k͖XC)Wo$]!MBp^5VZz͵Xlԥ\U#nGTU(bvd?xfytyL*W+frԛU}#ΗθO _!bU¤v 0d)ҫWhUm7i*h;Xl5v* a0ʛ#J1u6YΟnRd+p?8+]$>tB$'I 6wЊCN 4y8QWJ'K0Gj P@G,pmZ4ZSa0yW݉{goUU^3 .F-#5Ve$ îq.S=',^4l#} hXf?$8c `z(vRˍOĹdԬa+* 4"xd#45H?R Wl2Hf5D+2Xq߽< $xk'Z:ע44־A9(  , ^/ 0DTimesr Newma8`enPsd `ackDCLB Helvetica Condensed Black DComic Sans MSCondensed BlackB0DZapf DingbatsCondensed Black@DArialingbatsCondensed Black"PDtalingbatsCondensed Black2`DAppleMyungjoCondensed BlackpDTahomaungjoCondensed Black"DTimes New Romanndensed BlackDGenevaew Romanndensed BlackDArial Blackmanndensed Black"DCourier Newmanndensed Black1c  .  @n?" dd@  @@`` d \ DP  !; QQRS{C Q Qk ;+ ;+' &% &^KJ I I K PJ_  ob$*DvHr~Mks]$R$ P߶\\y*4|D]$r$rsv* "ۚiIPR$ 552by92l4# lAA8c? f@@f+ ʚ;fv3ʚ;g4wdwdsi0Rm ppp@ <4!d!d`gʚ;<4dddd`gʚ;<4dddd`gʚ;0___PPT10 h___PPT2001D<4X? %&|VGES Demonstrations`  Andrew A. Chien, Henri Casanova, Yang-suk Kee, Richard Huang, Dionysis Logothetis, and Jerry Chou CSE, SDSC, and CNS University of California, San Diego VGrADS Site Visit April 28, 20050`\ H  'vgES: Prototype Research Infrastructure((` $  We have developed a functional prototype of vgES vgES 0.7, March 2005 Two demonstrations: vgFAB: Finding and Selecting Resources vgES: Full application run on the VGrADS testbed v3Z3```Z`` ,   %  #     Demonstration #1: vgFAB`  Demonstration #1: vgFAB`  Demonstration #1: vgFAB`  Demonstration #1: vgFAB`  VGrADS and TeraGrid Resources`4      VGrADS and TeraGrid Resources`8      A simple vgDL query`*     Switch to live demo A simple vgDL query`&    A more complex vgDL query`&   Switch to live demo A more complex vgDL query`&   Synthetic Resource Environments `  Resource selection is a difficult problem It s NP-hard We have a heuristic and a prototype implementation Research: result quality, scalability, response time, contention, ... What is needed: Simulation studies in large and realistic environments We have developed a  resource environment generator Based on survey of existing systems and analysis of technology trends Kee, Casanova,Chien, Realistic Modeling and Synthesis of Resources for Computational Grids, SC2004. A sample synthetic environment 1 million hosts, 10,000 clusters, Pentium 2-4, Itanium, Opteron, Athlon. VG3 = rsc1= ClusterOf (node) [4:64] { node = [ (Processor==Pentium4) && (Clock>=2000) && (Memory>=4096) ] } FAR rsc2 = LooseBagOf (nest_cluster) [1:20] { nest_cluster = ClusterOf (node) [4:128] { node = [ (Processor==Itanium) && (Memory>=8192) ] } }*BFG5K*bBbFb&bfb fb5b]bEf33 b b Kb f bZff f b(f bHfv            g   '   F  Switch to live demo Take-away from Demonstration #1 `  HWe have a working research prototype for vgFAB within vgES interfaces with the application via vgDL interfaces with resource information systems returns sets of matching resources Makes it possible to use a high-level description of resource requirement Makes it possible to find resources over different resource environments Research evaluating scalability, result quality, etc. [CCGrid 05] [SC 05 submission];|/#;`|``/`"d`b)    $  ? Demonstration #2: vgES`  Demonstration #2: vgES`  Application: EMAN`  EMAN: Electro Micrograph ANalysis Performs 3-D reconstructions Workflow Application See Chuck Koelbel s talk this afternoon, and the EMAN poster Demonstration: Run EMAN on the VGrADS testbed with vgESB"s8"`s`8`h   ?   H    EMAN and the Virtual Grid`  `VGES myVGES = new VGES() // new vgES instance myVG = myVGES.createVG( vgDL_string ) // found & bound VG vgRoot = myVG.getRoot(); ... // Traverse VG tree to find resource information vgES.copyToNode(someNode,  input1 ); // Send input files vgES.runCmd(someNode, command ); // Start command vgES.copyFromNode(someNode,  output1 ); // Get output files vgES.terminateVG(myVG); // Destroy VGP(c  g  (c  g   c  1g  (c  g  )c  g  )c  g  )c   g  c  .  #                  <       $      %       "       ! Switch to live demo Take-away from Demonstration #2 `  }VGrADS and the Virtual Grid`   P[pLyonl1< 08  .,=>5/2347:- ` 33` Sf3f` 33g` f` www3PP` ZXdbmo` \ғq>9y`Ӣ` 3f3ff` 3f3FKf` hk]wwwfܹ` ff>>\`Y{ff` R>&- {p_/̴>?" dU@ <6?" Z2@%  d   << f MMM n?" dZ(@   @@``PR      ` p>>9I  (     `~xaxa1 ?O%  X Click to edit Master title style!! D  Z`~xaxa1 ?  RClick to edit Master text styles Second level Third level Fourth level Fifth level!    S R  s *<61?QyP   C A"f@R  s *<61?`B  s *޽h ? lb  Blank aY(  -  Zpxaxa1 ? m  ;Body Text Second Level Third Level Fourth Level Fifth Level    <   Z0UU1?o   Page *  Zc  ###55FFp  01 ?  B  s *޽h ? a(80___PPT10.:`^+" pH(    ZЈUU1?o   Page *  Zc   ###55FFB  s *޽h ? a(80___PPT10.: ,H 00(  x  c $14 J  x  c $024D t  H  0޽h ? lb80___PPT10.r1Py-  @(  l  C @O%   r  S    H  0޽h ? lb   ` X Ph ( t  l  C `O%   ^b  6f78c?X 8    To))?o _ Application"  c    T o))?h [vgAgent"c   T@ o))?  YvgFAB"c   T o))?xg \vgLAUNCH"  c  X  08c?T`   H 8c?eS RvgDL c   X   08c? "    ` G33o?"  ZVG&g p   HZGH[I8c? ^   68c?  ^`  H 8c?$  Tbind c     H`8c?  B  ^return VG to App a   XB  0D)?X X `XB  0D)? `  H8c?| AB ] Resource Info c   H  0޽h ?O     lb   f ^ `n ( |f r  S O%   ^b  6f7>?X 8    T`o))?o _ Application"  c    T >))?h [vgAgent"c   Tb>))?  YvgFAB"c   T`bo))?xg \vgLAUNCH"  c  X  0>?T}`   Hc8c?eS RvgDL c   X   0>? "    `dG33>?"  ZVG&g p   HZGHRI>? ^   68c? ! ^`  H`e8c?$  Tbind c     H f8c?  B  ^return VG to App a   XB  0D>?X X `XB  0D>? `  H@g8c?| AB ] Resource Info c   H  0޽h ?O     lb     p ( |0 r  S  iO%   ^b  6f7>?X 8  %  # liq}>)){C Q Qk ?  Simple vgDL query program"c*     T@j>))?h [vgAgent"c   Tk>))?  YvgFAB"c   Tlo))?xg \vgLAUNCH"  c  X  0>?T}`   Hm>?eS RvgDL c   X   0>? "    `G33>?"  ZVG&g p   HZGHRI>? ^   68c? ! ^`  HP8c?$  Tbind c     Hp>?  B  ^return VG to App a   XB  0D>?X X `XB  0D)? `  H>?| AB ] Resource Info c   H  0޽h ?O     lb  vn>( 8*n r  S pO%   ^b  6f7>?X 8  %  # lЧq}>))?  Simple vgDL query program"c*     T>))?h [vgAgent"c   T>))?  YvgFAB"c   TЪo))?xg \vgLAUNCH"  c  X  0>?T}`   H>?eS RvgDL c   X   0>? "    `G33>?"  ZVG&g p   HZGHRI>? ^   68c? ! ^`  Hp8c?$  Tbind c     H0>?  B  ^return VG to App a   XB  0D>?X X `XB  0D)? `  H0>?| AB ] Resource Info c     # WG fd̙ԔԔ?TeraGridImpact hh   # WG fd̙ԔԔ?VGrADSImpactT b   `ZG"*HI0>?2 HE b @ ZZG!*H]{I>?"  H  0޽h ?o     lb  KCH ( 8c r  S P1O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H18c?+   PXeon c      H28c?[ F! W Pentium III  c       H38c?   SItanium c     !  `48c?f O  XUCSD" g    #  `068c? ~i  VUH" g    $  `68c?   WUTK" g    % 3 WG fd̙ԔԔ?VGrADSImpact H9H  0޽h ? lb+  ,+$+BH*( p T   dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S 7O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   Hp88c?+   RXeon c     H88c?[ F! Y Pentium III  c       H98c?   UItanium c    !  `:8c?f O  XUCSD" g    #  `8c? ~i  VUH" g    $  `8c?   WUTK" g    % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` '  `p8c?"V WANL" g   F  0 QH  ( a ) dA?Large grid 0 H  *  `08c? ^ Q  [CalTech" g   F  x  + (X PP  , dA?Large grid x  -  `8c?   WPSC" g   F  `  . ph8 / dA?Large grid `  0  `8c?V   XORNL" g   ~F  8( 0 1 hH P ` 2 dA?Large grid 8( ` 3  `p8c?V   XSDSC" g    4 dA?Large grid  0 5 dA?Large grid"   6  `08c?"n #  XTACC" g    7 dA?Large grid"@HX` 8  `8c?"V ZPurdue" g    9 3 WG fd̙ԔԔ?TeraGridImpact   : H8c?K   SAlpha c    ; Hp8c?6 6 i UItanium c    < H08c? >> UItanium c    = dA?Large grid"x   >  `8c?"N   XNCSA" g    ? H8c?u  SAltix c    @ Hp8c?CN U  TPower4 c    A H08c?a UItanium c    B H@8c?>I RXeon c    C H8c? UItanium c    D H8c?VVQ UItanium c    E H8c?[ ! TPower3 c    F H8c?i RXeon c    G H@8c?[ W!  W Pentium 4  c     H H`8c? 6  X UltraSparc  c    H  0޽h ? lbO-  ,,CJw,( pd   dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S @O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H8c?+   RXeon c     H8c?[ F! Y Pentium III  c       H 8c?   UItanium c    !  `8c?f O  XUCSD" g    #  `8c? ~i  VUH" g    $  ``8c?   WUTK" g    % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` '  ` 8c?"V WANL" g   F  0 QH  ( a ) dA?Large grid 0 H  *  `8c? ^ Q  [CalTech" g   F  x  + (X PP  , dA?Large grid x  -  `@8c?   WPSC" g   F  `  . ph8 / dA?Large grid `  0  `8c?V   XORNL" g   ~F  8( 0 1 hH P ` 2 dA?Large grid 8( ` 3  ``8c?V   XSDSC" g    4 dA?Large grid  0 5 dA?Large grid"   6  ` 8c?"n #  XTACC" g    7 dA?Large grid"@HX` 8  `8c?"V ZPurdue" g    9 3 WG fd̙ԔԔ?TeraGridImpact   : H8c?K   SAlpha c    ; H`8c?6 6 i UItanium c    < H 8c? >> UItanium c    = dA?Large grid"x   >  `8c?"N   XNCSA" g    ? H8c?u  SAltix c    @ H`8c?CN U  TPower4 c    A H 8c?a UItanium c    B H8c?>I RXeon c    C H8c? UItanium c    D H`8c?VVQ UItanium c    E H8c?[ ! TPower3 c    F H8c?i RXeon c    G H`8c?[ W!  W Pentium 4  c     H H8c? 6  X UltraSparc  c     J 6f8c? X MVG1 = ClusterOf(node) [4:64] { node =[ (Processor == Xeon) && (Clock >= 1000) && (Memory >= 1000) ] } @ c  g  c  F   g   ! H  0޽h ? lb |t4 (  4l 4 C 3p  ` 4 # ` `    H 4 0޽h ? lb-  s-k-CO ,( p [   dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S  O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H8c?+   PXeon c      H8c?[ F! W Pentium III  c       H8c?   UItanium c    !  ``8c?f O  XUCSD" g    #  ` 8c? ~i  VUH" g    $  `8c?   WUTK" g    % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` '  `8c?"V WANL" g   F  0 QH  ( a ) dA?Large grid 0 H  *  `08c? ^ Q  [CalTech" g   F  x  + (X PP  , dA?Large grid x  -  `P8c?   WPSC" g    / jA?Large grid"ph8~F  8( 0 1 hH P ` 2 dA?Large grid 8( ` 3  `8c?V   XSDSC" g    4 dA?Large grid  0 5 dA?Large grid"   6  `О8c?"n #  XTACC" g    7 dA?Large grid"@HX` 8  `8c?"V ZPurdue" g    9 3 WG fd̙ԔԔ?TeraGridImpact   : HP8c?K   SAlpha c    ; H8c?6 6 i UItanium c    < HС8c? >> UItanium c    = dA?Large grid"x   >  `8c?"N   XNCSA" g    ? HP8c?u  SAltix c    @ H8c?CN U  TPower4 c    A HФ8c?a UItanium c    B H8c?>I RXeon c    C HP8c? UItanium c    D H8c?VVQ UItanium c    E H8c?[ ! TPower3 c    F H`8c?i RXeon c    G H8c?[ W!  W Pentium 4  c     H H8c? 6  X UltraSparc  c     M jA?Large grid"nh6 0  f8c?"v/s XORNL" g    O 6f8c? X cVG1 = ClusterOf(node) [4:64] { node =[ (Processor == Xeon) && (Clock >= 1000) && (Memory >= 1000) ] } V c   g  g  c  F   g   ! H  0޽h ? lb.  H.@.CI-(    dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H58c?+   PXeon c      Hp28c?[ F! Y Pentium III  c       H38c?   UItanium c    !  ` 8c?f O  XUCSD" g    #  `8c? ~i  VUH" g    $  `8c?   WUTK" g    % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` '  `8c?"V WANL" g   F  0 QH  ( a ) dA?Large grid 0 H  *  ``8c? ^ Q  [CalTech" g   F  x  + (X PP  , dA?Large grid x  -  ` 8c?   WPSC" g   F  `  . ph8 / dA?Large grid `  0  `8c?V   XORNL" g   ~F  8( 0 1 hH P ` 2 dA?Large grid 8( ` 3  `8c?V   XSDSC" g    4 dA?Large grid  0 5 dA?Large grid"   6  ``8c?"n #  XTACC" g    7 dA?Large grid"@HX` 8  ` 8c?"V ZPurdue" g    9 3 WG fd̙ԔԔ?TeraGridImpact   : H8c?K   SAlpha c    ; H8c?6 6 i UItanium c    < H`8c? >> UItanium c    = dA?Large grid"x   >  ` 8c?"N   XNCSA" g    ? H8c?u  SAltix c    @ H8c?CN U  TPower4 c    A H`8c?a UItanium c    B H8c?>I RXeon c    C H 8c? UItanium c    D H8c?VVQ UItanium c    E H8c?[ ! TPower3 c    F H`8c?i RXeon c    G H 8c?[ W!  W Pentium 4  c     H H@8c? 6  X UltraSparc  c     I 6` f8c?  bVG2 = rsc1 = ClusterOf(node)[4:64] { node = [ (Processor == Xeon) && (Clock>=1000) && (Memory >=1000) ] } FAR rsc2 = LooseBagOf(cluster1)[1:20] { cluster1 = ClusterOf(node)[4:128] { node = [ (Processor == Itanium) && (Memory >= 2048) ] } }c g   g  g  g   g   g  &g   g  qg  b      &   q H  0޽h ? lb 8(  8r 8 S $3p  f 8 3 $ `    H 8 0޽h ? lbj4  43J^3(    dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S %O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H@%8c?+   RXeon c     H\8c?[ F! Y Pentium III  c       H \8c?   UItanium c    !  `@]8c?f O  XUCSD" g    #  `^8c? ~i  VUH" g    $  `^8c?   WUTK" g    % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` ) jA?Large grid F  x  + (X PP  , dA?Large grid x  -  `_8c?   WPSC" g   ~F  8( 0 1 hH P ` 2 dA?Large grid 8( ` 3  `@`8c?V   XSDSC" g    4 dA?Large grid  0 5 dA?Large grid"   6  `a8c?"n #  XTACC" g    7 dA?Large grid"@HX` 8  `a8c?"V ZPurdue" g    9 3 WG fd̙ԔԔ?TeraGridImpact   : Hb8c?K   SAlpha c    ; H@c8c?6 6 i UItanium c    < Hd8c? >> UItanium c    = dA?Large grid"x   ? Hd8c?u  SAltix c    @ He;+ ; +8c?CN U  TPower4 c    A H@f8c?a UItanium c    B HЧ8c?>I RXeon c    C H08c? UItanium c    D H8c?VVQ UItanium c    E HP8c?[ ! TPower3 c    G H8c?[ W!  W Pentium 4  c     H H08c? 6  X UltraSparc  c     I 6Pf8c?; 9 VG1 = foo + foo +  c  F      J Hp8c?$ \ SHOW RESULTS  e     N dA?Large grid"`H  O dA?Large grid"Qe P dA?Large grid"HP Q dA?Large grid"P R dA?Large grid"   S 6f8c?  bVG2 = rsc1 = ClusterOf(node)[4:64] { node = [ (Processor == Xeon) && (Clock>=1000) && (Memory >=1000) ] } FAR rsc2 = LooseBagOf(cluster1)[1:20] { cluster1 = ClusterOf(node)[4:128] { node = [ (Processor == Itanium) && (Memory >= 2048) ] } }c g   g  g  g   g   g  &g   g  qg  b      &   q  Z dA?Large grid"ph8 [ Hp8c?i RXeon c    \ dA?Large grid"nh6 ]  `8c?"v/s XORNL" g    '  `08c?"V WANL" g    ^ dA?Large grid"}% *  f8c?ac [CalTech" g    >  `8c?"N   XNCSA" g   H  0޽h ? lb   (   l   C O%   r   S ^  H   0޽h ? lb  @( XIGxJG @r @ S 03p  f @ 3 л3 `    H @ 0޽h ? lb   *(  r  S 0/4O%   x  c $-4   H  0޽h ? lb   d \ 0(l (  (r ( S и3O%   ^b ( 6f7>?X 8   ( Tp3o))?o ] Application"  c   ( T03>))?h [vgAgent"c  ( T3>))?  YvgFAB"c  ( T03o))?xg \vgLAUNCH"  c  X ( 0>?T}`  ( H38c?eS RvgDL c   X  ( 0>? "  (  `P3G33>?"  ZVG&g p  ( HZGHRI>? ^  ( 68c? ! ^` ( H38c?$  Tbind c    ( H78c?  B  ^return VG to App a   XB ( 0D>?X X `XB ( 0D>? ` ( H 78c?| AB ] Resource Info c   H ( 0޽h ?O(((( (( ( ((( ( lb   f ^ @,n (  ,r , S :O%   ^b , 6f7>?X 8   , T@;>))?o _ Application"  c   , T<>))?h [vgAgent"c  , T<>))?  YvgFAB"c  , T=>))?xg \vgLAUNCH"  c  X , 0>?T}`  , H>8c?eS RvgDL c   X  , 0>? "  ,  ``?G33>?"  ZVG&g p  , HZGHRI>? ^  , 6>? ! U` , H @8c?$  Tbind c    , H@8c?  B  ^return VG to App a   XB , 0D>?X X `XB , 0D>? ` , HB8c?| AB ] Resource Info c   H , 0޽h ?O,,,, ,, , ,,, , lb   P4P(  l  C pO%   l  C 3  8 p z2  <"PB  BDPS"`B  Hd,DPS" B  H=QDPS" p B   HkDPS"3 O B   H}DPS"  B   HåDPS"@`B   HDPS"p 0 B   HDPS"B  HDDPS"` p _ <L1"v h  Sseq c    ` 0pM"p j  J  2c L  v  #  @n  01"  p  s *0N"v  J  2c L  v  # ` Z n  01"  p  s *N"v  J  2c L  v  #  xz n  01"  p  s *O"v  J  2c X  0? h  6M?0   Qpar c    X  0?@ 8 ^  6G6 ?  ^  6G6 ?(  ^  6G6 ?h H80 ^  6G6 ?   ^  6G6 ?H X H ^  6G6 ? P ^  6G6 ? XH ^  6G6 ?  ^  6G6 ?  ^  6G6 ?0  ^  6G6 ? x` ^  6G6 ?  ^  6G6 ?  ^  6G6 ? ^  6G6 ? (  ^  6G6 ?8 x h ^  6G6 ?` hX( ^  6G6 ? H   HpP8c?#    PXeon c      H0Q8c?S } W Pentium III  c      HS8c?   SItanium c       `S8c?^ .   VUCSD" g       `PU8c?   TUH" g       `V8c? ^   WUTK" g   H  0޽h ? lb}   `(  l  C WO%   l  C 8i    6P~f8c?+ VG = LooseBagOf (cluster) [1:4] { cluster = ClusterOf (node) [4:10] { node = [Clock >= 900] } },z n Fc  @   '   O H  0޽h ? lb <(  <r < S R3p  f < 3 T `    H < 0޽h ? lbf   (  l  C  4O%   R  C *Agroel001q  0` 4 h  j 2-D images" 0 2 c     0 4 x  i 3-D model" 0 2 c  X  0i h   Z@4xaxa1 ? 7 SThe vgES prototype is functional for a real-application VG provides a simple abstraction that integrates access to resources (Globus) access to resource information (MDS, Ganglia, NWS, etc.).iYi`Y`@  w  <    C A /  X $XH  0޽h ? lb  (  r  S  O%   "   `3G33>?" XVG&g$    Zxaxa1 ?8 EThe VG abstraction and its runtime implementation are the focal point of the VGrADS multi-team collaboration see afternoon presentations and postersfm)` d `d<`)`&M  B    Zpxaxa1 ?  Interface to applications (vgDL + VG) Program preparation and optimization Application scheduling Monitoring, fault-tolerance, and adaptation Resource Management Single access/interface to various resource information sources Research platform for all the above4P`#d`&   H  0޽h ? lb80___PPT10.r1ƙYcxp^RЀ3ÿ lHbP  @AL G@;b `B&V=2000) && (Memory>=4096) ] } FAR rsc2 = LooseBagOf (nest_cluster) [1:20] { nest_cluster = ClusterOf (node) [4:128] { node = [ (Processor==Itanium) && (Memory>=8192) ] } }*BFG5K*bBbFb&bfb fb5b]bEf33 b b Kb f bZff f b(f bHfv            g   '   F  Switch to live demo Take-away from Demonstration #1 `  HWe have a working research prototype for vgFAB within vgES interfaces with the application via vgDL interfaces with resource information systems returns sets of matching resources Makes it possible to use a high-level description of resource requirement Makes it possible to find resources over different resource environments Research evaluating scalability, result quality, etc. [CCGrid 05] [SC 05 submission];|/#;`|``/`"d`Z)    $  ? Demonstration #2: vgES`  Demonstration #2: vgES`  Application: EMAN`  EMAN: Electro Micrograph ANalysis Performs 3-D reconstructions Workflow Application See Chuck Koelbel s talk this afternoon, and the EMAN poster Demonstration: Run EMAN on the VGrADS testbed with vgESB"s8"`s`8`h   ?   H    EMAN and the Virtual Grid` `VGES myVGES = new VGES() // new vgES instance myVG = myVGES.createVG( vgDL_string ) // found & bound VG vgRoot = myVG.getRoot(); ... // Traverse VG tree to find resource information vgES.copyToNode(someNode,  input1 ); // Send input files vgES.runCmd(someNode, command ); // Start command vgES.copyFromNode(someNode,  output1 ); // Get output files vgES.terminateVG(myVG); // Destroy VGP(c  g  (c  g   c  1g  (c  g  )c  g  )c  g  )c   g  c  Z  #                  <       $      %       "       ! Switch to live demo Take-away from Demonstration #2 `  }VGrADS and the Virtual Grid`   PFLyonl1< 08  .,=>5/2347:-  !N.( 8c r  S #O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H#8c?+   PXeon c      HP$8c?[ F! W Pentium III  c       Hp%8c?   SItanium c     !  `0&8c?f O  VUCSD" g     #  `&8c? ~i  TUH" g     $  `'8c?   UUTK" g     % 3 WG fd̙ԔԔ?VGrADSImpact H9^ I 6G6 ?  ^ J 6G6 ?H  ^ K 6G6 ?(  ^ L 6G6 ?h ^N0  M H8c?>   SItanium c     N  `8c?. D  VRice" g    H  0޽h ? lb.  U.M.HN-( p T   dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S P?O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H0?8c?+   PXeon c      H38c?[ F! W Pentium III  c       H038c?   SItanium c     !  `38c?f O  VUCSD" g     #  `38c? ~i  TUH" g     $  `~i0Rm ppp@ <4!d!d`gʚ;<4dddd`gʚ;<4dddd`gʚ;0___PPT10 h___PPT2001D<4X? %[(|8c?   UUTK" g     % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` '  `~8c?"V UANL" g    F  0 QH  ( a ) dA?Large grid 0 H  *  `~8c? ^ Q  [CalTech" g   F  x  + (X PP  , dA?Large grid x  -  `~8c?   UPSC" g    F  `  . ph8 / dA?Large grid `  0  `@~8c?V   VORNL" g    |F  8( 0 1 hH P ` 2 dA?Large grid 8( ` 3  `p8c?V   VSDSC" g     4 dA?Large grid  0 5 dA?Large grid"   6  `8c?"n #  VTACC" g     7 dA?Large grid"@HX` 8  `08c?"V XPurdue" g     9 3 WG fd̙ԔԔ?TeraGridImpact   : H8c?K   QAlpha c     ; H8c?6 6 i SItanium c     < Hp8c? >> SItanium c     = dA?Large grid"x   >  `08c?"N   VNCSA" g     ? H8c?u  SAltix c    @ H8c?CN U  RPower4 c     A Hp8c?a SItanium c     B H08c?>I PXeon c     C H8c? SItanium c     D H8c?VVQ SItanium c     E Hp8c?[ ! RPower3 c     F H08c?i PXeon c     G HP8c?[ W!  U Pentium 4  c     H H8c? 6  X UltraSparc  c    ^ I 6G6 ?  ^ J 6G6 ?H  ^ K 6G6 ?(  ^ L 6G6 ?h ^N0  M H8c?>   SItanium c     N  `8c?. D  VRice" g    H  0޽h ? lbp0  00IP/( pd   dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S 0O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H8c?+   PXeon c      H8c?[ F! W Pentium III  c       H08c?   SItanium c     !  `8c?f O  VUCSD" g     #  `8c? ~i  TUH" g     $  `p8c?   UUTK" g     % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` '  `08c?"V UANL" g    F  0 QH  ( a ) dA?Large grid 0 H  *  `8c? ^ Q  [CalTech" g   F  x  + (X PP  , dA?Large grid x  -  `P?8c?   UPSC" g    F  `  . ph8 / dA?Large grid `  0  `P38c?V   VORNL" g    |F  8( 0 1 hH P ` 2 dA?Large grid 8( ` 3  `P38c?V   VSDSC" g     4 dA?Large grid  0 5 dA?Large grid"   6  ``8c?"n #  VTACC" g     7 dA?Large grid"@HX` 8  `8c?"V XPurdue" g     9 3 WG fd̙ԔԔ?TeraGridImpact   : H 8c?K   QAlpha c     ; H8c?6 6 i SItanium c     < H8c? >> SItanium c     = dA?Large grid"x   >  ``8c?"N   VNCSA" g     ? H 8c?u  SAltix c    @ H8c?CN U  RPower4 c     A H8c?a SItanium c     B H`8c?>I PXeon c     C H 8c? SItanium c     D H8c?VVQ SItanium c     E H8c?[ ! RPower3 c     F H`8c?i PXeon c     G H 8c?[ W!  U Pentium 4  c     H H+8c? 6  X UltraSparc  c     J 6P+f8c? X EVG1 = ClusterOf(node) [4:64] { node =[ (Processor == Xeon) && (Clock >= 1000) && (Memory >= 1000) ] } @ c  g  c  >   g   ! ^ K 6G6 ?  ^ L 6G6 ?H  ^ M 6G6 ?(  ^ N 6G6 ?h ^N0  O H08c?>   SItanium c     P  `18c?. D  VRice" g    H  0޽h ? lb1  00IU 0( p [   dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S 3O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H038c?+   PXeon c      H48c?[ F! W Pentium III  c       H58c?   SItanium c     !  `68c?f O  VUCSD" g     #  `@8c? ~i  TUH" g     $  `p8c?   UUTK" g     % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` '  `Е38c?"V UANL" g    F  0 QH  ( a ) dA?Large grid 0 H  *  ``8c? ^ Q  [CalTech" g   F  x  + (X PP  , dA?Large grid x  -  `8c?   UPSC" g     / jA?Large grid"ph8|F  8( 0 1 hH P ` 2 dA?Large grid 8( ` 3  ` 8c?V   VSDSC" g     4 dA?Large grid  0 5 dA?Large grid"   6  `8c?"n #  VTACC" g     7 dA?Large grid"@HX` 8  `8c?"V XPurdue" g     9 3 WG fd̙ԔԔ?TeraGridImpact   : H`8c?K   QAlpha c     ; H 8c?6 6 i SItanium c     < H8c? >> SItanium c     = dA?Large grid"x   >  `8c?"N   VNCSA" g     ? H`8c?u  SAltix c    @ H 8c?CN U  RPower4 c     A H8c?a SItanium c     B H8c?>I PXeon c     C H`8c? SItanium c     D H 8c?VVQ SItanium c     E H8c?[ ! RPower3 c     F H 8c?i PXeon c     G H 8c?[ W!  U Pentium 4  c     H H 8c? 6  X UltraSparc  c     M jA?Large grid"nh6 0  f8c?"v/s VORNL" g     O 6f8c? X [VG1 = ClusterOf(node) [4:64] { node =[ (Processor == Xeon) && (Clock >= 1000) && (Memory >= 1000) ] } V c   g  g  c  >   g   ! ^ P 6G6 ?  ^ Q 6G6 ?H  ^ R 6G6 ?(  ^ S 6G6 ?h ^N0  T H8c?>   SItanium c     U  `@8c?. D  VRice" g    H  0޽h ? lb1  k1c1IO0(    dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H8c?+   PXeon c      H`8c?[ F! W Pentium III  c       H8c?   SItanium c     !  `8c?f O  VUCSD" g     #  `38c? ~i  TUH" g     $  `8c?   UUTK" g     % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` '  `08c?"V UANL" g    F  0 QH  ( a ) dA?Large grid 0 H  *  `P8c? ^ Q  [CalTech" g   F  x  + (X PP  , dA?Large grid x  -  `8c?   UPSC" g    F  `  . ph8 / dA?Large grid `  0  `Т8c?V   VORNL" g    |F  8( 0 1 hH P ` 2 dA?Large grid 8( ` 3  `8c?V   VSDSC" g     4 dA?Large grid  0 5 dA?Large grid"   6  `P8c?"n #  VTACC" g     7 dA?Large grid"@HX` 8  `8c?"V XPurdue" g     9 3 WG fd̙ԔԔ?TeraGridImpact   : HХ8c?K   QAlpha c     ; H8c?6 6 i SItanium c     < HP8c? >> SItanium c     = dA?Large grid"x   >  `8c?"N   VNCSA" g     ? HШ8c?u  SAltix c    @ H8c?CN U  RPower4 c     A HP8c?a SItanium c     B H8c?>I PXeon c     C H8c? SItanium c     D H8c?VVQ SItanium c     E H8c?[ ! RPower3 c     F H`8c?i PXeon c     G H 8c?[ W!  U Pentium 4  c     H H@8c? 6  X UltraSparc  c     I 6`f8c?  bVG2 = rsc1 = ClusterOf(node)[4:64] { node = [ (Processor == Xeon) && (Clock>=1000) && (Memory >=1000) ] } FAR rsc2 = LooseBagOf(cluster1)[1:20] { cluster1 = ClusterOf(node)[4:128] { node = [ (Processor == Itanium) && (Memory >= 2048) ] } }c g   g  g  g   g   g  &g   g  qg  Z      &   q ^ J 6G6 ?  ^ K 6G6 ?H  ^ L 6G6 ?(  ^ M 6G6 ?h ^N0  N H`8c?>   SItanium c     O  ` 8c?. D  VRice" g    H  0޽h ? lb7  77Pd6(    dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S и3O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   Hp38c?+   PXeon c      Hp>8c?[ F! W Pentium III  c       H>8c?   SItanium c     !  `0?8c?f O  VUCSD" g     #  `?8c? ~i  TUH" g     $  `@8c?   UUTK" g     % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` ) jA?Large grid F  x  + (X PP  , dA?Large grid x  -  `pA8c?   UPSC" g    |F  8( 0 1 hH P ` 2 dA?Large grid 8( ` 3  `0B8c?V   VSDSC" g     4 dA?Large grid  0 5 dA?Large grid"   6  `B8c?"n #  VTACC" g     7 dA?Large grid"@HX` 8  `C8c?"V XPurdue" g     9 3 WG fd̙ԔԔ?TeraGridImpact   : HpD8c?K   QAlpha c     ; H0E8c?6 6 i SItanium c     < HE8c? >> SItanium c     = dA?Large grid"x   ? HF8c?u  SAltix c    @ HpG8c?CN U  RPower4 c     A H0H8c?a SItanium c     B H8c?>I PXeon c     C H`8c? SItanium c     D H8c?VVQ SItanium c     E H8c?[ ! RPower3 c     G H@8c?[ W!  U Pentium 4  c     H H`8c? 6  X UltraSparc  c     I 6f8c?; 9 VG1 = foo + foo +  c  @      J H8c?$ Z SHOW RESULTS  e     N dA?Large grid"`H  O dA?Large grid"Qe P dA?Large grid"HP Q dA?Large grid"P R dA?Large grid"   S 6@f8c?  bVG2 = rsc1 = ClusterOf(node)[4:64] { node = [ (Processor == Xeon) && (Clock>=1000) && (Memory >=1000) ] } FAR rsc2 = LooseBagOf(cluster1)[1:20] { cluster1 = ClusterOf(node)[4:128] { node = [ (Processor == Itanium) && (Memory >= 2048) ] } }c g   g  g  g   g   g  &g   g  qg  Z      &   q  Z dA?Large grid"ph8 [ H8c?i PXeon c     \ dA?Large grid"nh6 ]  ` 8c?"v/s VORNL" g     '  `8c?"V UANL" g     ^ dA?Large grid"}% *  f@8c?ac [CalTech" g    >  `8c?"N   VNCSA" g    ^ _ 6G6 ?  ^ ` 6G6 ?H  ^ a 6G6 ?(  ^ b 6G6 ?h ^N0  c H 8c?>   SItanium c     d  `8c?. D  VRice" g    H  0޽h ? lb\  p:Ph(  l  C pO%   l  C   8 p z2  <"PB  BDPS"`B  Hd,DPS" B  H=QDPS" p B   HkDPS"3 O B   H}DPS"  B   HåDPS"@`B   HDPS"p 0 B   HDPS"B  HDDPS"` p _ <1"v h  Sseq c    ` 0"p j  H  2c  L  v  #  @n  01"  p  s *Ѓ"v  H  2c  L  v  # ` Z n  01"  p  s *"v  H  2c  L  v  #  xz n  01"  p  s *P"v  H  2c  X  0? h  6P?0   Qpar c    X  0?@ 8 ^  6G6 ?  ^  6G6 ?(  ^  6G6 ?h H80 ^  6G6 ?   ^  6G6 ?H X H ^  6G6 ? P ^  6G6 ? XH ^  6G6 ?  ^  6G6 ?  ^  6G6 ?0  ^  6G6 ? x` ^  6G6 ?  ^  6G6 ?  ^  6G6 ? ^  6G6 ? (  ^  6G6 ?8 x h ^  6G6 ?` hX( ^  6G6 ? H   H8c?#    PXeon c      HІ8c?S } W Pentium III  c      H8c?   SItanium c       `8c?^ .   VUCSD" g       `p8c?   TUH" g       `8c? ^   UUTK" g    ^  6G6 ? F6 ^  6G6 ?O v ^  6G6 ?/  ^  6G6 ?o 7   H8c?E tt  SItanium c       `8c?5 0  VRice" g    H  0޽h ? lbr040ZI0yڪ@3`RdO)e*IDPicturesPowerPoint Document(GijSummaryInformation(24"V3  !"#$%&'()*+,-./012456789:;<=>?@ABCDEFGHIJKLMNOPQRSTW{XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~DocumentSummaryInformation8Current User/ omplex vgDL query Synthetic Resource EnvironmentsSwitch to live demo Take-away from Demonstration #1Demonstration #2: vgESDemonstration #2: vgESApplication: EMANEMAN and the Virtual GridSwitch to live demo Take-away from Demonstration #2VGrADS and the Virtual GridLyon  Fonts Used Design Template'_EjCharles Koelbel Slide Titles Custom Shows      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz|}~1      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwyz{|}~VGES Demonstrations`  Andrew A. Chien, Henri Casanova, Yang-suk Kee, Richard Huang, Dionysis Logothetis, and Jerry Chou CSE, SDSC, and CNS University of California, San Diego VGrADS Site Visit April 28, 20050`\ H  'vgES: Prototype Research Infrastructure((` $  We have developed a functional prototype of vgES vgES 0.7, March 2005 Two demonstrations: vgFAB: Finding and Selecting Resources vgES: Full application run on the VGrADS testbed v3Z3```Z`` ,   %  #     The vgES Research Prototype`&   The vgES Research Prototype`&   The vgES Research Prototype`&   The vgES Research Prototype`&   Demonstration #1: vgFAB`  Demonstration #1: vgFAB`  Demonstration #1: vgFAB`  VGrADS and TeraGrid Resources`4      VGrADS and TeraGrid Resources`4      A simple vgDL query`&     Switch to live demo A simple vgDL query`&    A more complex vgDL query`&   Switch to live demo A more complex vgDL query`&   Synthetic Resource Environments `  Resource selection is a difficult problem It s NP-hard We have a heuristic and a prototype implementation Research: result quality, scalability, response time, contention, ... What is needed: Simulation studies in large and realistic environments We have developed a  resource environment generator Based on survey of existing systems and analysis of technology trends Kee, Casanova,Chien, Realistic Modeling and Synthesis of Resources for Computational Grids, SC2004. A sample synthetic environment 1 million hosts, 10,000 clusters, Pentium 2-4, Itanium, Opteron, Athlon. VG3 = rsc1= ClusterOf (node) [4:64] { node = [ (Processor==Pentium4) && (Clock>=2000) && (Memory>=4096) ] } FAR rsc2 = LooseBagOf (nest_cluster) [1:20] { nest_cluster = ClusterOf (node) [4:128] { node = [ (Processor==Itanium) && (Memory>=8192) ] } }*BFG5K*bBbFb&bfb fb5b]bEf33 b b Kb f bZff f b(f bHfv            g   '   F  Switch to live demo Take-away from Demonstration #1 `  HWe have a working research prototype for vgFAB within vgES interfaces with the application via vgDL interfaces with resource information systems returns sets of matching resources Makes it possible to use a high-level description of resource requirement Makes it possible to find resources over different resource environments Research evaluating scalability, result quality, etc. [CCGrid 05] [SC 05 submission];|/#;`|``/`"d`Z)    $  ? Demonstration #2: vgES`  Demonstration #2: vgES`  Application: EMAN`  EMAN: Electro Micrograph ANalysis Performs 3-D reconstructions Workflow Application See Chuck Koelbel s talk this afternoon, and the EMAN poster Demonstration: Run EMAN on the VGrADS testbed with vgESB"s8"`s`8`h   ?   H    EMAN and the Virtual Grid`  `VGES myVGES = new VGES() // new vgES instance myVG = myVGES.createVG( vgDL_string ) // found & bound VG vgRoot = myVG.getRoot(); ... // Traverse VG tree to find resource information vgES.copyToNode(someNode,  input1 ); // Send input files vgES.runCmd(someNode, command ); // Start command vgES.copyFromNode(someNode,  output1 ); // Get output files vgES.terminateVG(myVG); // Destroy VGP(c  g  (c  g   c  1g  (c  g  )c  g  )c  g  )c   g  c  .  #                  <       $      %       "       ! Switch to live demo Take-away from Demonstration #2 `  }VGrADS and the Virtual Grid`   PFLyonl1< 08  .,=>5/2347:-  B:H( "B Hr H S pO%    H To))?o ] Application"  c   H Tp!o))?  YvgFAB"c X H 08c?T`  H HP#8c?eS RvgDL c   H H 0޽h ? HHH lb   L(    Lr L S O%   ^b L 6f78c?X 8   L To))?o ] Application"  c   L T@o))?h [vgAgent"c  L To))?  YvgFAB"c X L 08c?T`  L H`8c?eS RvgDL c   X  L 08c? XB L 0D)?X X `XB L 0D)? ` L H8c?| AB [ Resource Info c    H L 0޽h ?/@LLLL L lbR     T (  1 Tr T S `O%   ^b T 6f78c?X 8   T T>o))?o ] Application"  c   T Tb@o))?h [vgAgent"c  T Tpi@o))?  YvgFAB"c  T TP_@o))?xg \vgLAUNCH"  c  X T 08c?T`  T H0d@8c?eS RvgDL c   X  T 08c? ^  T 68c?  ^` T Hp?8c?$  Rbind c    XB T 0D)?X X `XB T 0D)? ` T H0 ?8c?| AB [ Resource Info c    H T 0޽h ??`TTTT TTT T lb   \ T Pd (  Pr P S O%   ^b P 6f78c?X 8   P To))?o ] Application"  c   P To))?h [vgAgent"c  P T0o))?  YvgFAB"c  P To))?xg \vgLAUNCH"  c  X P 08c?T`  P H8c?eS RvgDL c   X  P 08c? "  P  `0G33o?"  XVG&g  p  P HZGH[I8c? ^  P 68c?  ^` P H8c?$  Rbind c     P HP8c?  B  \return VG to App a    XB P 0D)?X X `XB P 0D)? ` P H08c?| AB [ Resource Info c    H P 0޽h ?OPPPP PP P PPP P lbp0  00IP/( pd   dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H8c?+   PXeon c      H8c?[ F! W Pentium III  c       H 8c?   SItanium c     !  `8c?f O  VUCSD" g     #  `8c? ~i  TUH" g     $  ``8c?   UUTK" g     % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` '  `@$8c?"V UANL" g    F  0 QH  ( a ) dA?Large grid 0 H  *  `#8c? ^ Q  [CalTech" g   F  x  + (X PP  , dA?Large grid x  -  `%8c?   UPSC" g    F  `  . ph8 / dA?Large grid `  0  `%8c?V   VORNL" g    |F  8( 0 1 hH P ` 2 dA?Large grid 8( ` 3  `&8c?V   VSDSC" g     4 dA?Large grid  0 5 dA?Large grid"   6  `@'8c?"n #  VTACC" g     7 dA?Large grid"@HX` 8  `(8c?"V XPurdue" g     9 3 WG fd̙ԔԔ?TeraGridImpact   : H(8c?K   QAlpha c     ; H)8c?6 6 i SItanium c     < H@*8c? >> SItanium c     = dA?Large grid"x   >  `+8c?"N   VNCSA" g     ? H+8c?u  SAltix c    @ H,8c?CN U  RPower4 c     A H@-8c?a SItanium c     B H.8c?>I PXeon c     C H.8c? SItanium c     D H8c?VVQ SItanium c     E HP8c?[ ! RPower3 c     F Hp8c?i PXeon c     G H08c?[ W!  U Pentium 4  c     H HP8c? 6  X UltraSparc  c     J 6pf8c? X EVG1 = ClusterOf(node) [4:64] { node =[ (Processor == Xeon) && (Clock >= 1000) && (Memory >= 1000) ] } @ c  g  c  >   g   ! ^ K 6G6 ?  ^ L 6G6 ?H  ^ M 6G6 ?(  ^ N 6G6 ?h ^N0  O H08c?>   SItanium c     P  `p8c?. D  VRice" g    H  0޽h ? lb1  00IU 0( p [   dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S PO%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H8c?+   PXeon c      H8c?[ F! W Pentium III  c       H08c?   SItanium c     !  `@ 8c?f O  VUCSD" g     #  ` 8c? ~i  TUH" g     $  ` 8c?   UUTK" g     % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` '  ` 8c?"V UANL" g    F  0 QH  ( a ) dA?Large grid 0 H  *  ` 8c? ^ Q  [CalTech" g   F  x  + (X PP  , dA?Large grid x  -  `@ 8c?   UPSC" g     / jA?Large grid"ph8|F  8( 0 1 hH P ` 2 dA?Large grid 8( ` 3  `8c?V   VSDSC" g     4 dA?Large grid  0 5 dA?Large grid"   6  `8c?"n #  VTACC" g     7 dA?Large grid"@HX` 8  `8c?"V XPurdue" g     9 3 WG fd̙ԔԔ?TeraGridImpact   : H@8c?K   QAlpha c     ; H8c?6 6 i SItanium c     < H8c? >> SItanium c     = dA?Large grid"x   >  `8c?"N   VNCSA" g     ? H@8c?u  SAltix c    @ H8c?CN U  RPower4 c     A H8c?a SItanium c     B H>8c?>I PXeon c     C H >8c? SItanium c     D H@?8c?VVQ SItanium c     E H@8c?[ ! RPower3 c     F H@8c?i PXeon c     G HA8c?[ W!  U Pentium 4  c     H HB8c? 6  X UltraSparc  c     M jA?Large grid"nh6 0  fC8c?"v/s VORNL" g     O 6Df8c? X [VG1 = ClusterOf(node) [4:64] { node =[ (Processor == Xeon) && (Clock >= 1000) && (Memory >= 1000) ] } V c   g  g  c  >   g   ! ^ P 6G6 ?  ^ Q 6G6 ?H  ^ R 6G6 ?(  ^ S 6G6 ?h ^N0  T H@E8c?>   SItanium c     U  `G8c?. D  VRice" g    H  0޽h ? lb7  77Pe 7(    dA?Large grid" p   dA?Large grid"0`  dA?Large grid"  dA?Large grid"  r  S O%   ^  6G6 ?  ^  6G6 ?0 `P ^   6G6 ?p 8 ^   6G6 ? p ^   6G6 ?P  ^   6G6 ? X ^  6G6 ?  ^  6G6 ?  ^  6G6 ?  ^  6G6 ?8 `P ^  6G6 ? h ^  6G6 ? 0  ^  6G6 ? p ^  6G6 ? P@ ^  6G6 ?  ^  6G6 ?@  ^  6G6 ?h 0 ^  6G6 ? 0 P   H8c?+   PXeon c      H@8c?[ F! W Pentium III  c       H`8c?   SItanium c     !  ` 8c?f O  VUCSD" g     #  `8c? ~i  TUH" g     $  `8c?   UUTK" g     % 3 WG fd̙ԔԔ?VGrADSImpact H9 & dA?Large grid"H` ) jA?Large grid F  x  + (X PP  , dA?Large grid x  -  ``8c?   UPSC" g     2 jA?Large grid"hH P  4 jA?Large grid" ` 5 dA?Large grid"   6  `8c?"n #  VTACC" g     7 dA?Large grid"@HX` 9 3 WG fd̙ԔԔ?TeraGridImpact   : H`8c?K   QAlpha c     ; H 8c?6 6 i SItanium c     < H 8c? >> SItanium c     = dA?Large grid"x   ? HV8c?u  SAltix c    @ HU8c?CN U  RPower4 c     A HV8c?a SItanium c     B HW8c?>I PXeon c     C HPX8c? SItanium c     D HY8c?VVQ SItanium c     E HY8c?[ ! RPower3 c     G HZ8c?[ W!  U Pentium 4  c     H H[8c? 6  X UltraSparc  c     I 6\f8c?; 9 VG1 = foo + foo +  c  @      J H]8c?$ Z SHOW RESULTS  e     N dA?Large grid"`H  O dA?Large grid"Qe P dA?Large grid"HP Q dA?Large grid"P R dA?Large grid"   S 6f8c?  bVG2 = rsc1 = ClusterOf(node)[4:64] { node = [ (Processor == Xeon) && (Clock>=1000) && (Memory >=1000) ] } FAR rsc2 = LooseBagOf(cluster1)[1:20] { cluster1 = ClusterOf(node)[4:128] { node = [ (Processor == Itanium) && (Memory >= 2048) ] } }c g   g  g  g   g   g  &g   g  qg  Z      &   q  Z dA?Large grid"ph8 [ HВ8c?i PXeon c     \ dA?Large grid"nh6 ]  `08c?"v/s VORNL" g     '  `8c?"V UANL" g     ^ dA?Large grid"}% *  f8c?ac [CalTech" g    >  `p8c?"N   VNCSA" g    ^ _ 6G6 ?  ^ ` 6G6 ?H  ^ a 6G6 ?(  ^ b 6G6 ?h ^N0  c H08c?>   SItanium c     d  `8c?. D  VRice" g     3  f 8c?"&~ )  VSDSC" g     e dA?Large grid"N 8  `8c?"V XPurdue" g    H  0޽h ? lbr44@(os{N3,`";(  , ^/ 0DTimesr Newma8`enPsd `ackDCLB Helvetica Cond      !"#$%&'()*+,-./0GF3456789:;<=>?@ABCEtHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsuvwxyz{|}~ensed Black DComic Sans MSCondensed BlackB0DZapf DingbatsCondensed Black@DArialingbatsCondensed Black"PDtalingbatsCondensed Black2`DAppleMyungjoCondensed BlackpDTahomaungjoCondensed Black"DTimes New Romanndensed BlackDGenevaew Romanndensed BlackDArial Blackmanndensed Black"DCourier Newmanndensed Black1c  .  @n?" dd@  @@``   X  !; QQRS{C Q Qk ;+ ; +' &% &^KJ O O Q VPf  ob$*DvHr~Mks]$R$ P߶\\y*4|D]$r$rsv* "ۚiJPR$ 552by92l4# lAA8c? ff@@+ ʚ;fv3ʚ;g4wdwdsi0Rm ppp@ <4!d!d`gʚ;<4dddd`gʚ;<4dddd`gʚ;0___PPT10 h___PPT2001D<4X? %](|VGES Demonstrations`  Andrew A. Chien, Henri Casanova, Yang-suk Kee, Richard Huang, Dionysis Logothetis, and Jerry Chou CSE, SDSC, and CNS University of California, San Diego VGrADS Site Visit April 28, 20050`\ H  'vgES: Prototype Research Infrastructure((` $  We have developed a functional prototype of vgES vgES 0.7, March 2005 Two demonstrations: vgFAB: Finding and Selecting Resources vgES: Full application run on the VGrADS testbed v3Z3```Z`` ,   %  #     The vgES Research Prototype`&   The vgES Research Prototype`&   The vgES Research Prototype`&   The vgES Research Prototype`&   Demonstration #1: vgFAB`  Demonstration #1: vgFAB`  Demonstration #1: vgFAB`  VGrADS and TeraGrid Resources`4      VGrADS and TeraGrid Resources`4      A simple vgDL query`&     Switch to live demo A simple vgDL query`&    A more complex vgDL query`&   Switch to live demo A more complex vgDL query`&   Synthetic Resource Environments `  Resource selection is a difficult problem It s NP-hard We have a heuristic and a prototype implementation Research: result quality, scalability, response time, contention, ... What is needed: Simulation studies in large and realistic environments We have developed a  resource environment generator Based on survey of existing systems and analysis of technology trends Kee, Casanova,Chien, Realistic Modeling and Synthesis of Resources for Computational Grids, SC2004. A sample synthetic environment 1 million hosts, 10,000 clusters, Pentium 2-4, Itanium, Opteron, Athlon. VG3 = rsc1= ClusterOf (node) [4:64] { node = [ (Processor==Pentium4) && (Clock>=2000) && (Memory>=4096) ] } FAR rsc2 = LooseBagOf (nest_cluster) [1:20] { nest_cluster = ClusterOf (node) [4:128] { node = [ (Processor==Itanium) && (Memory>=8192) ] } }*BFG5K*bBbFb&bfb fb5b]bEf33 b b Kb f bZff f b(f bHfv            g   '   F  Switch to live demo Take-away from Demonstration #1 `  JWe have a working research prototype for vgFAB within vgES interfaces with the application via vgDL interfaces with resource information systems returns sets of matching resources Makes it possible to use a high-level description of resource requirements Makes it possible to find resources over different resource environments Research evaluating scalability, result quality, etc. [CCGrid 05] [SC 05 submission];|/#;`|``/`"d`Z)    $  @ Demonstration #2: vgES`  Demonstration #2: vgES`  Application: EMAN`  EMAN: Electro Micrograph ANalysis Performs 3-D reconstructions Workflow Application See Chuck Koelbel s talk this afternoon, and the EMAN poster Demonstration: Run EMAN on the VGrADS testbed with vgESB"s8"`s`8`h   ?   H    EMAN and the Virtual Grid`  `VGES myVGES = new VGES() // new vgES instance myVG = myVGES.createVG( vgDL_string ) // found & bound VG vgRoot = myVG.getRoot(); ... // Traverse VG tree to find resource information vgES.copyToNode(someNode,  input1 ); // Send input files vgES.runCmd(someNode, command ); // Start command vgES.copyFromNode(someNode,  output1 ); // Get output files vgES.terminateVG(myVG); // Destroy VGP(c  g  (c  g   c  1g  (c  g  )c  g  )c  g  )c   g  c  .  #                  <       $      %       "       ! Switch to live demo Take-away from Demonstration #2 `  }VGrADS and the Virtual Grid`   PFLyonl1< 08  .,=>5/2347:-   *(  r  S ИO%   x  c $0   H  0޽h ? lbr,#h,-j`