ࡱ> @=KH tkSYD1xmpUu{ h*DmBiAVd8#D:6Sg**`hEHg P;"Q(*3˾s;}fٳܳgB!$(DŽooo8VC\8[I!!)DОæy-.̀s_k'SC@y/)3E!,?|)P鲘eJe ,g}_Aq7kOBL(. qhُD1=p=ZamNiSywvb[n g Cq?!ᐿ'qw26x2q*~]^\nzPS ʇ2 ޫޅn=,*!4xHi60 0 #zE eJ2p<q 2Dz|Qy42|#{B_ _c}M37}:VKuMMMDzjY=:6ɰP*qZul{F`Nf!EbȦ"GS\Jǟ[i!"qVGY.gLLd0 bɉfkH6fC+W` ~f 1PdPv_4OߙWp yN/eB~c,c2СnζO;2Bv/ax?2 0ad &P~?3[ 73ҟ[2w Y~  Y.dIhN\l̂l~A>8Ҝ xV>#T~cH(u(V9? ޔP 9F(z󖅢O=fP)GoE.|Wq[w-N1: Eom66݆Cm.݆oCja f6 1:nC;Cm)݆Ў@[~ :;P:^Bpu(z{b%i&\=V7Ct(ʰv(aXL2$d}/>_S:1=?kdMZ' L*!eHX)Sd||ee= ewz|Y5ù8w0Qɳ22nNbYk? л!l>8!iw+h$.U~:i> Bqn7FT'_Q~:)|oCܟʄ}AI"klTsC?|C<΄}U UNr|/a]?̠ym5/N%/%/p4u?O'H IK ^%Nd6V>9lB.xċHQԉTAezD?$ydXͽ~ޑ~ay>?"h !?@>~-D~ގ6w~6y3~;x=J8:yy+x5%M~R^yKeI8:yy{1-x1/~hy]wZ[3=| {^{-syZ 16 8p,e||Cf˰;Yv5@Wۂ{85f>َeAeǰHS=l~mLFg M)K֮P?8Gs[*ػ?>hm# !ԇ}<@-&k-rM}uQLnβdnѴk,kH1F=kF>GSAgdjcV(th/ s҆]1SǷhMB7yT9ɨv:Sm]3V7x}.=љnw rP~M sϾdt.)<]oyGh֯[۰K [JA}-Sj3|/b&wn}uػXsze RO{+5l7 |`7m9^39^^%OXP<@_is҂Ga_|qmCg[r:[}(SҰ= v|m,X;?\Z].=wewg߱4=?~mwiw{=RG:KK}ZAo=h=GuH龿{KqZ[rKwqDPGi=tvXy& kj˨G <~궍~{E-Bk(7t U2U tnSSAv<\B+?g:I=] < wGyp=a ȋ-TiW N롌SLh0ŜNR1 Z;]jf&E}MQL*cibx!,y(u;#!qL 7C藔J(̂WB}ekSC-0\ -mveIЏ`A/y.{J?7'뎵3ˇۂ=Dyf`疝)Ha/)/xJs|y3mK֧RWt1L}D:0,_@YS=z,* VQB.N3sn@! _0-Dw܁gK@#Y;kXtv NGd#;hop;* +@o%q[,<Ѿ|G n&]|7{߳niji9l/)W}ianjsBâL^s؄$v!~w .7=Q}xr6ugyUΔ6WTŸXcw;XߓlMv\x{/'=ĭ{)xH)5(ME )W~43"ie?yHۮh:ǚDyӣ鑍E Fx>k3߼Gc _cmCqz8߉lbwh<0u(UʈooK&—1>:8}i'Im~ܗF[hfr1<&~S5d`L/J:Xg}v~de' ˃$˿z,R|mMwv2?&}s (Ve;at0oIjnj~ 'ݾ'o!~B \ wfnI6Fcw.m(ϷJ{,wR̞kdõ̆k5N0oGamx!Ҍ /⥀pPl/Y$܆몤V;:}L\I nwlgecӝV6[fևblVGLߗt1mMꤘuƝrzmV4qc&̎]jTS`45o5Y_k:qWaa۝Ϳy&fۛ| ~ͧ|^71c=kaϫr{C/;d&v? Iחw|g >؁sJFخv;)<>^cA < fCmp'ӭ X1#)mo=l;րmGkIr?C8~cjo:9f}Q9͡KBԹRHڠ\RhiʥSyhG&7Lp_1χ4͐OB^Az5^@4iLL-?ack 12/3"/2/0e ?  w0|373|#72)? _ _:1|0|.2|g1|ç1|*çy{y=N^s8{9 ]^H~2{zO$iv˴+|~a0Oz>d CNamiC$kg~ēbX|a$ZYƿ:?;$ܻ~[%:XuȲ3q17iu2?OX68TG槭Nqqp=ܻ<o.@;^Vڿ1 46n.9' 췐M2l9,]]__3Ўy1g'6IܦT$M=E?9F6Lݮ}6L|~m`b.W~W^,b6jW3a?6k 3^h_<ު< Xi7Q4yyE1fgJ1;hJ=>L01hJh.I\:RBR}䣇Z$z[騦/DxmPS26W|tC=0y\J{x)}=<>vGϼ#gS]-=ul帎uQuЁH:/>cu>);Ͱپ0OLŒ_c|6c_F ,*#iS8±(Kp ng! z$ PoM*W2 d#n-GZU~CLbjT0?%H&g! $>h>h9w T&_| \ԋNL&P@uL5 Odۏ dR.C /~P S&EʶV09H&@-?vImo|LP ~k $fk!o|L->Px1} /G}Nwhb0'2y%¼yu4m :L[~)іGq v6x_'ɂ{m1w͇/3msG|o vTE]_ W`vތ 'n}51;c¼lv/] ;_ļFNc ;[FN|-`\CoC,$,<'Z?Ÿhrj!a0g> zh{Q”GBtR,a'NvB}'`;U0 !mPYhh_DKسcr}唾/44BUIo j$ܛ )<<5ftOͷbӌbY.'.5oeQ#}`טƿXb4%H?٩b(?j|Ƴx~0y%~gCak}ScksAYAl|5>*[C =ք$D΃Ƃ)uKŽV~׼5OK":ޛq̳XG{o$w=}xǔlNi,;?>\9i;ζ'Y7FC~֎Ɗ'@Z@ŏi.%ίHETf~67-,*1ͱdJe?k?.zo+?՘tJW:vco׊zi^vjr 9g`7uq q f n-VOXo0"*bq\R' /3EC;W&^c8}WE4JmAkQVZ @i(he7wNAˈ;Yq{w#_9֝}trb%O3bbQO4Gg|xSur8x=N9A.;U>/q?xgh,hXœWJƦ9<oyoX+gub~@"n~:NߓnblVZ==4?\+A'MR ihZKJ/mCGye|6w~eۃI_=wW~ cVǻI_w㈍ yL5\H鷟,;Xd\4ױp}|toDލmȤظ͞LYzQP6Eɸ=BLOsRGB pHYsodIDATx^ \E]=H&! h$0ƂxCT uY!,WA%D 7ŰDm[ HB&I&[wTթS}ןC9SO}9US'wOng?g}8vsF:QhN7~li6F6s| XCk`[  x >   }ϏQYK) o`-M96pXSI Y[7_v8'¡~Ѿg[Cks;?mR%=} ".BH@\(; (j.^H"Kk@>maۻ~uX!rc'7u1؜ongE񈨵4KD!M ?     Ei#`mj00 >۝pG7ӷ~'[ κsk5~(r M,W,6)"}oy?ПtgϠxp"PB%GC :Eh]@18@SF֜q҃?^X{ކij`&wQ ]lPG#k8{Z!ԐklЈ"~ |>`nP<ʏ\Շ 5pbsޝB@z'i_/ HD\E`;zsIocmmPfK)"RJ?7 E /|@@LJ   aRC!}-~t^SrM۷XgB~R짟;{oݶQsgn6\6lg ;XgwӸޖwme{qswq]]}T^y{~vd%?:3[k[< ᄂK:~ݎᧄŽ4GDo_[)zv{ [ ۷m~_w~ž]7E3H#?96A65NLM?le]ŗ7rJSPlm{Գ3ظ_=U`y^tfLyǃ?'d"Cr^W"U4hARq>!%iz|!$^ UHJfIy*Qo%=$3%F8J`1h̳ʏ XĬ_KRzN\9B#PDeGG`[4حO~0,m4f:ܒDB$&+E`ʶ%Wl~^;J5&UX?aP~f8Bc('p׾ͤ /=5T(=Gr葢?(b!{<6Z7Kk7zۓײ(iq+^f->rF/״t:G^[W/li\`m{w w<rOjt;dMj`^r+|6a>x$"*mJCYnU)cW]j]iƴ'frNJΦr,񱦢_]Ʊ1ȶq+J#~ezIɍsPril*(6?h( !Ruh6BjH e4+W fWLVB8^x^)\SedKs^{"LШ䱪InQQb>SΛ= 9_ڼ֦rCG{!""-+qm#6 }ZGo+?=h+ZMGBΤ39o˖ni(=>o󾎰 _moɵs re7iD!ϭbfډ\%zxKؐ+=GԳ#y;?!gY Zp˷y@9IRK2&A=zqQejWd8[SR8oqPpx &_18&ώܽNeƕ'RN)?8 qĹ!z׮Ȱ$ٖ$j;Ȭ]Q"JĨp ^cWα޸%!fLrmMQͨ-eCІRiD{)PB:cuԷv}rþs;u~U_Pb~N'{8"ED-""/roߛut1-›v>l^Ga'kj3Blg]dz]OC\O/oe^罅+ml"w I;?a9*NKgrK;;g1 I=/q+ )&Y,eS)wGST!?g!םRMJ0O1_=įFuq:_B~ٯ&xvr8c  Aa"bW/8QXtlt< .N?EwؔmdFɈ7Bsdl$3 c,K[шI#7Z2%~~el?=lTr+5,QeAyt=zëxN.ƥ6XtajЯ$UKXZktmFG2v=S'4жrFִ4^C{jۇ /c 4Ybkoǎ/y‡e%76]~J^}WvPBh8z7OJ33dIqq觸h5wLGB}s M;7sm~ZfhO\#˓:)w N*^K/f[Ǧ5~p1kUllMRb"Dxo!~y㱟 M1y+U{#7ƜpAHvkw2b.c7[He"[?qLŋ,_AA3: Gnh /Ybs ] PڔJ6rt ύ=3X꺺jcl!<ُNqg=y.$} vJ*>Y8*1wwx^q߇.%yCzB:#()Уy 7R*f0Cp# N?E](Ȯh)I_P.'dE^S3micmFeD\W7ReF*EP 08*'E_rℌߕfJEI]zJ;V\;QQ=PLNUiB4#Ds"l =%D)Q )|Cn0hU|d%O+_U%MviEm˼-b/%ryْ+᭣L7A4r \r4ú wɳ r6^FqZ'ᦆO q56 -%u W~x笹T]oI%QdU%$#o}TQ?cr'o٭|H\HA,)I$DX*Ԑndw` C%[_jR8&b ,R.wЀ WkI\dwQ2EF?o+f'`YsFU0 [ʈJOɊnEP KtO$m.]#3II«tddܥCx2(Oi%Ȍ0C*5 F4ŸK7DFԚRA# 'fbڣa[' n^&&{^ĩ>:Tag\&O.B"Z(R6?] @Omxſ-2$rLoJKkjde_lQR咛RJ/ lv75jFo\)c<Xi?&ς~2^چҧSVbe56erS6R(Mv,Gi}v"++U%^/G _m]z.۷M7g^Dh3\[2+xs9\i V# 9/>elʨuj }1@sv%ETlF%!۝!p"U2v׎̋'#}hcqT;߸z1xP_J"3"6 ;r/$6w,.ő|w)t:#gJe'pRGj*W2FzFb#"px٫_G%g 77ىAC{ ]f÷\.͋?FWZ{Щ\# q2WXwy* 90ou~{.wַûߚ H_fHWt"nTޙWݥWm %%E:K./}.0G9m͜P0,U&%*N.P- .!H*)hZ*BInV3|^*+f^ھM{0/"<nJVPp{j[8X "+CK&%+_VDW B{-+z5L.^ڷNMOzoas |v^JC>n ColЉm61:ְ3?h='?8K+(%&ؚQEHu7I7xFTW"$wEżMQ( :<\r7&\z2]X 7|{MC[~T^ݡ|\d^ ݎaqֈPP5XYvbʥ$Fzqx0ۡ|VϏ^E$ -2%J*i\lO)x`egOQ~w~r5<Fʔ[DbtC-ɗg\_y%"Hj/t Z&#z.yZ3}'~__d# 戴"VSy^J3 ͮn*<AU\eD4--wV%P.oK%VbcE+M>3$Ԕ֘\9iO͎~e7Umݴﺠ.l?\ Ch愦(zwWNvbv[ZvGLЯ:UzQi+҆A |/|p񶕣ECfJ }O L y_ޔNWZ /;;x\G* -)vjjH;IOY8O3Σ=苜%/*bQE8ИrEL(T:UחbR2Xj-:57)^J*umqԎ_կ#Җ=0t"#Xѯ1UQ.C;m8 Z?F@ћ(vkx[W(_wXhsDCJHXU=D罩xioRl_'7i\bzF!4Yi\B=th|Ƨg?/{ S-yJbEzM64=Fmb yòҬ8yq {cv̐z."-_^"k</JH_RuH XF[]ϰac٨FJO?5%{49zc@H[3Qqp@bTBO@gD?)>WYR΅9j8jIE Wg81z3ry_6>7%J=W Tޯb_w~ި;-?CAn,Ɂ,e6:0)wd?yH0wwFIE}0Yp+rhGED>sl}φֶ=H i˄`cEM};/n/㋅gvx-nCؾx8kk7u#GE" ~sT yn ;r _/ARX6+_ v)D# Eqǹ$TUA~␩`q@iKJ^FgȚX#$ͣhس-J{_h6 G΋ 9!ڍmzӼ1=k|#{nh3JP"*Bj7xQDT uv^NxChۀyh -'o%O1C֮2K̓Wy7NI}<9 GĪy4I;NUiq*bvET4%8usL\ PH3P8joG*K܀L2WTI4.ᆭ__a75LVZFه/.hGhy@^Ϛp#O&ڶOW$@@@@@L(7:GW4!%CŴA@@@@j@5_v'Y%JW.3V?ix9hl&253V(4 w5jھ#_,4tom-Ư.idǞZJX)rE"f9,;ݛ] D@caáAod-MMokyMK~r A60o}– #RL?[CѵeB"ÿDZY6/ݒP o\)+,?_ te4<$B$    P8PW =ޒk 6 ~YCQd   Ps\^GD¡|P [?EqژbnkX~Ɓ@/VaGoIŧY,k6Y,0]AK.2’2LjTcEGm!%rbJ,$F򎣲K d}BCKŹ}G}G5B`_ Ǧp\2Ǝ߻8ؿ5 󬭃󬷿y[U {1TadzdJA3D$   !@@5; f&V|GWT(YFM\ɂ EG<Sa̶M8aǴ-mP̵{P._9),Zuû9Yj8~l O";YKAyR=OЅw    !F8g߸@8Dû\+50VVt@D > 9V,6|(!      lL(١PɹpPg(h۰Z=}y]׿Ʒ^Zb$     e#n\BF     %@C86g+%*CqX -@;?̈<JRCocr3@@@@@@ pg!"!]-? g2h(L١@@@@@@ d֞ #¡]/F00adFsO2DB #C85! P3'@Id'^qd" @@@[)Q5@@e^5R@0CT*kU| P]*tT6)X    @|ázCSa!&3/&,L@@@@Pj6T¡ @G     Y L8TZ>438:%0!#·+qgD!EDPc ѿPIl|;rSC%|/Q/&_ED94 RRFq11z_EDtџΥ>wޙ/ip5ѠzkrQxď!jn?љd6 D%"H( זa߅ dQ,$ټD%;?0YS])j1͉\D3/QEп.^HWBt~pssMksEGKTܗX<;6m%/W6y^Ǒ׏3&V&6p8ݛ~Cd@p&A)) hG1HX /QDDQ3={\(α|jc4YCyE_&qJq?E{GAr,$KY(y c #_ʦ9j_w߳}^vת}Y?6&;CtLQFh襐H:!/Ӫ?}+3!_Gƶ@@@ ! A^?/.* " @Kё.hp6/1>CI\b685G̎a㍰wBTўS\DL5n" tdLJV"o~k-T^FھrgONjwk_s|  ]?@U<˗>BL!   uxXed#htzjΥ"P{z**bO ra.V9GxJQ]sp%$srJH"XH yPǻpF^6a,6YHSX RD6f j:",~]9?1?;d1=JU&:I!1@@*E b8T̤ Ҽhx<` `bݡ ч`dfoL5!53CPğ< J*LX7* JXi8jy!%T ""9=G<HЅŅ#{ JJ=(:l+Z:t9A2hKz_OA }B3B<;~2l6"Cr,DOtП<"iqӔ&QxCPTF_Ŀ~T= "X %; +þh$%5!D&I)r,c*?gHJӈ#&("1/dR"?Zc\[Hh'.FKxt6CcƎ)hC[}3=eP)Bɯ^e6P"C4 ""+ @Ǭi}W lX Egdwh6>t$Q<"d!}A>yAz$@ƭS5r*\| *E I"y=o7*ϫ2z8sG;S>^e]>?)Xȝ$A@@ ;"C4tGhJ7Asa'&^J+u# Ym䱐߇~XO t?`bEJ-挳Cb/tglmQ2F"KBy+)sVKSuυJBd42d_g|7ATIMov&|fˎ|#GANJ/=Eq?=:)L yҼ Hد<E,R@ D ݴFS S*oE,ȘiIhBXȨ?Pᯜ_2R6$BJ& glԳCF^5`jDD$B5L!y,D*/31+xak9g~:Ν֦%'>;'Q RR c!v( ɏjA@@c!IYnb!1 { H ʚ.1I,h-(a v H¡ C?@F h, "L$4Kz} ){ h(,0Cn,l P٦WEHym`  -Ԗe1;l b   8{`@!@ROf:,LD!80C~cbw (;Zv(   P'*Z PLpȼ賈Bd Ԃ@ @Y"ߍeXQonD#37J{*E@u >6.2   0oM߫}TQBy-81)j>6leP¯t6  I@@@@m` V|A ,\x1S! sC   %=Z0̖ B# /F8B,չ1<~**O}e%f8dow).U OJ]hXDJygʇcrs̹B6`/PxH,e   qJ!!@+\bEJhL{_p)Q&٘z0L {HȎOpO<EK_~u !!;C CbEzJĄIf+8وy)P.W+Nx* {x#sOԩA@@z ޺&^PjGb%U{t劅)JD$Pwy(HL l0:A@@ ER'PAˈM>al|F!EgJb,&vF  uECuU(\4qw'eU|hEOh8OvL/"*%Vj˾2ف@U@8T#'G1c DQ=GijȔCs 1E$5B N,T_Y P"c\Qwn5 Z'Ey!Z2ou@PDJv@@¡/X…XaɠZ6 ͨ P]i],ЋX(r%"!$cWNj} a: s8weJQHZB#LPʙB=2dz`V C(@Zz9@9rYʑ?JXzo8tU+a6A=~Dlz@8K$'("0 a‹iF |a<@@@@@82M r8Ȁ$@[r|* uhD8     Y#PtX,G8j=     NO4!r !,}?,G8:m     P>[Q3t8tGk,Iʆ5K&U4D(E$D ŘHwV[:"up??0P & % L(3em[BcpH(Z!9}F(ViA+tββ΢GZm*_Pda{A_~z<M5p5%($6JU4YeO!$ u<    6X#r{vb"M_t4Hg~KTbhNO,S ^I7h~@6̒ƙ[dSZ)5+$v& :DB2A<"R 4&!9'}Vb2>,Kf %pHDT. 0)gZ*CU^,r CB&@Oepl@ٯ坓@8     %+c_Z4It1 %ȀdcL1{w|.: P\D9=ܳC7s"U!zAuu.mMjҶA2K-sf@FL%C2L}8wb-3f y}}I>ɸzJcuj rړTCꮨ;X גe S] t@3"`lKނQP3@$9APAGtPAιy'JmQEK82'h5=ft=~9:BX {zTѻ%.e t-{.< }Վ1Ve Y 9 @ k荫]w>^Jo P,QƵb8eIb\IlG.SC\D.*+cǺkk%h@–7|˓ix71H P2j͢\ QDDɷ_z g3bs:uy#V|p]d[ A-sm#J h'LJNO`_ 8O,O/rs,zxbM Ȑ8(m?A$w0.u~]+m"J 63b\~D9qAA? fJL)1&mx.1G2*1F(R@bN&A"`-sR-ý,96yUۤчݽa\+Z\,)~zjwm/8'[pȽ<+|myG8     #pדèsqoV"r1,]~G;D(ӏ6;jYn?qL1$#g'\`;˙á_vfS^\`ZiP Dʝ$A@@{szJЬ~tFцE[Sn2     Fb!L)Ϙ67oAyA@@@@|[8ƭY3+!)W@a@@@@@ \{Z{ k(     G[lcWƺ;+H&L]>v~&| ^i \   $<;4cJ97os4#(%L!?x !SRD9G@@@@(} &"b"rt (lʨ]Dw¼2Z@@@@ (9*g[^6C]5lV,6.QoҾYpšh    Pfb96@b2KX"θ.›=:%wӸϲO"ؖ.eh",[lS \7֪*:3",4 KxhʘV0R/stq]2RSa(e@ H#fAܕ8'NDʻM4>?|C6%$ @?at}z_|s]ϝ#rt וX`DD#JPmiqY/dƯ۾N9eщ'.:˖>4~4   8x>PV}-'_;p& B((ƘGyFl)T hGڡvy篜>sr1K:   uB` +ϱɫZ'ww-Kp'jq=Y֒䌅pi-(T+yÆTDsekm}q/Mr^EO/z;`64#ެu{dɒPVU A@@ %LL6Aȏ8Y'?M^ 7u/Z8GE挖Oݶu$7lKu@@ .,q˖Mn~=+BßBmWkӞ~G.~7O+҃\pT)cpr#r:"EnW`kǍmW3|F~G?ֶa6ʷ̹ ($pow>Fu]u,&!GPNoʝwvuſޗ3^no?3'zO#M嬽hm/"Z49=!ET,QG'ed)qvjSXj[`)R܊<C} Km;GXh!rY/^~;_z)wA>!@_Ǎ[ ^~Յ ם])` u@k "_hMo܌ITJs$;kTvz +~f_ۻ~tz\:5Pe(h-JUeڝ8}lf?3:uw>1(C5sё+.OP~cx0Oe1ƨ…[Jba j0{ȕⓁ)%?[=_@#N`pppƦn'ruVr+r5vuu}ƸHi!jy=Do\VG\Д~?^XI %;n07C.c{kKc H]b$D dt*-M\)eOIݻu|fq6GUQ!G.b3?.D3tU]Y "7r5;+bOo/(H],w5:;:鷥KG5' ӎww*R:{bܣx*U?7*j9XTQ5&fe'Pα"\\40wKY: 0awh:C՝p,nHn(8Kɠ*+Ej+^ u/Ȥ2~vBCdMMM<)p߽ᇿ<}tZ)w}eøq9Rـ'4޷Jݕ/FXuzD\)9R#Qf/P6X.PBeZ)aR6ɚۃtqhsmQC TE#w%I68έ RUy H/!=sym8/öskiiv;ncE=M.Jh-n); s7M"*BDMꚪK>:wP_vwL ,sz-Cs&5hRUe`yc %4/9F D8ũ*q:)1' ;Υvk>v`Xs7>r8LJT+:k?wXn}rJ}6QvaY"W1t t6 |UK^",y$r( xR},`oN~ ÏX k(c?KBŗOI"ps?GU CUDtۍ ~ kdDPl"hlaE^jYHRqVkx!ؕ,E ckic_1c=ܴHP   Pn7/}f*eEhmXpC jWͩT^ToG;y]=(bNs=yït   EOtwjWn4/tۯwèwNx{!¡*KO| ?WWLϞNR\D/9V *[SX] C }?y.)'4Š6lcF.J,/qѩGY\y] Bkkk[[g^QiKfU~H@z[)J58ۨ}膏?vɄVF m]N@|R״Y.QLyN1Xy'`ߏ{TV.y[?|~h(SPe wPs-${hܭ+vwVabgw[,*K pfCtQ""L4~(`B!d##i.L/!vG{idP3'<%‘N Ť8s%(gB&fY@@@nuqKn$_|su}-A8"a&'qX5mVE b    q!:tЎ"Y!p(R!*8S:In,=G%2[h,lV2A@@@j@/z;˵Mj},=+ŁOq8jy1=^`*=IԂ;[rgIp!r56Z,'n('~d@@@@@2J`M|Cmp#(dGw8C! @V|tFf.B8Z     ,wm}Qy+_pL1$1zM]/Jÿ}&&'dsָ$ɌJŸGzq{Ϩ-%X%DzԂ;ErgIp!нuMJܣCBB 2    A߹};|,}tAAĠ_3sx㜵kYի/[cY."ʑ@@@> (m-C <}eKp_+򟺡~KyD9hXYt8G^_4h&^;㌋lg/Y2}}x=TnŊ'Ƴ.G_DI =   M@h{Wƺ;+H@29 o,q˖Mn~=P`۷ڴ_x䑋_#A@@N=Sg&O5Fïs)*C #.Moynxĉu/{MȃZx$wKh:4vr*I*K@q<ŴEUPe˽}M],G?ӧoޜ{I6#%e38 vQ7&Ԩk_2~:MJs6dѰ7Av̱;WbV܏uWHCpA؏=;D{m!ުZ١Dj7 5 5p$B+"BaAqϚK"""׶ܶm9ZZZn+EQϽ}3ٝOVK2Ms⁁5J ru%mᬍ.D;;&MV@J@gG>=>t=蠍Ƽ _7#t8$:*%HQ2U,Tт˱9VDXQP2:~k%\WQ*鯥zԧb}ˡz+/;vzQYn3cӇe\SJߕ3o׋f؎95bREm`hhCJʽ_7 t 9mM.B_.[`gd#4H6g ,e{mw&LCC|?bgbStK3JW%ſ~EN{k.2JcX"&׵f :->`bt@kc?ǫ19cYl0a:읿7PVd#/}fĥ,Wmkf؎o5a6g ?h4dS#Ko(~T_i^\.YQ샌;хMl- Rm9!6emq=(ᐻvH@ ܨmQ1aCWly؜9cyI+i5eʔpfx@(:Q!p(;wcc@,A~w. ̛|`cB9kr_ζoGu]wo\@u"P'X.,P'^ٹcI4Reٱ$IJGgqɝc)C@ @ /_~0kƶ#2OxKL-\?f̘$@q[os};¡<1wГTLE"><ेr3M0Q;%J/r}}ƌUsӁ    /{‚<@L6Gv-cglc2vc1v) sx:Lc@@@2HhgZ3=F@@GGE-xۮGbwt~WΚK/Uw,ZtP-%   $pY{ڹt?wh _n˹dMRxU~W%\ I`ĉgy=ˏ抵kz74]    P}IQo>QW(w,#x_!(1$b@W<---cǎY#DAX"5#/^l(s@.l(\NW<) -J+ ThFN:&Lܣt4#(%O@ҵ;zh] Bh?n(.r #(%L/rGDf m    A|E!r @OU =1$ eI%\P   OPaՖ/c+18)/Sds U E #:N+',av(K[@@@@@HPa#+,@8ڀ-     e$cWNȄ [O^q_( @@@@@ 4t3uS׋.|3ٜ5.m2˧n:Yz6!lIHs3\ Z+wV[d0b9 @ @8T"@8B 2     5HP V*     B %ȤB '}xt""[(ȹ*Egd;@@@@!JIČ,(l#(lFH¡D0BI\U15)qA@@@ J" M5"f@"-4H -ԙgw8i    PUi՗b$y! eQ1k(ZCHبӯ\/'P6 C5VY1 OPb%S:!pN*:4N(EDl\q$-0;&qn|qKFeٴi7/=KN9eщ'.:8%KOe0Y'pPbrF^;'֒-)ie!P V]IivE眳>sx㜵kYի/[cY."ʑ@@@@8#/CvyiOYcH7EBƈEX E(^@RFkvm͛^dŹ={܊`O<ƍg/]D*p'pȝ$Adg7 8~e˦}7[ Y(_^{m/<ůz   UEPUUM@'O+ܰ&eV-,\t.XpqomjFOqg6==lӦW^֜9Wb՜ ^ȀD&p(2:$p%p7tv~;[v_̙w/[wӟޙ`O5ȁ@xP_Roa,,riHxKLL-͑ {jVx}׬/Guٳ'NV( ~x͸5kNo^R41Er-DZ{u=715=fF~CT$]]e oАcádjW(Ugc~Mgtȥ6tosȂ z)iUwuok<p G|7mw'Һ7/14NFa kiê*|.,PSvE^50B:> $D0BI;JaçSAPjdv+WumB7q/'MzzR# &ާ3H.vy` ) eT ֌ hb2+ɿsmEH"fx3J+w'kD(R 0욗]Ex(c:(EuƼOR\QQbvm5S|W||!b7͝S?z_<܃(!;yd16=Nm_;~W6G(| cZ4:+۲ZL5-F.39T/@LDbDekQQYC+(4%]yڌN1^f~^@Լhu]FT*ԫUf1O/;臔kA"?]P5S76uw t -]7k%A  =[f)u'ǂXO')풱Av1FJ[AD|4s쎡 뽼|uo1w]$5 .Y. )dC t8tшGD3!7cg6)Nqj,_J芊Q6w,fEr\3󩣏>~[t^sp?c*bvL(M@ -YdyŐŶd cL6rEJH+ A]rAWh6Q>GƅY#Pp(N\lqE:'8cYvQuB}M],G?ӧoޜ{I6#%UmqcBft4*4Yh4Msl8$44ʞZs)U%YTyn6DNRA]g|Xv8sϚK"""׶趵3g\KKq}(or!s8;\js1P&Iq.X4^\<0C DP-хx"_~G$" T%:A]$(*qh* ,f*ԣhÂ5:~%\/YF9cwiebUuɧ>_=[)|yܹh;mfO,WeyчEddl@Wr1)\h4z4Q!ji^ϯQZE&G/H?B$Y&:?#?2tK3JW%ſE6Ȣ$ˮP~6֬\A~^T4Acc"(gLeՑ^;{[?;}M&LSg7jctvm4]n=t[iȥkcukCAЯ8ޤQ]A&])r7vЛJuzV_ȯƋN6kYȹi;ٱX;KEq%䫅@pZ;A}'4? ?k_};zǖ/o7͙3gx$waӎ2eJ䬑d͂ UWq0@@P}Qˎ%e+22RnHe ̛|`cB9kr_ζoGu]wo\ZSnWlH%\ ٱuRgǒrG^iH1J\F˗?}5爌E^b)S~w-׏3 A@@¡je =yL5g}|C}[Y ({%їA9ƾ>cƪ{@@@ FQAM?c36k]{yܹ<tPeE   @P=2Y!qE ~G:g=yfK?j]A/db   Ptfp|&FxU~WeL[7q3<{n{G|sڵc=t.վ   vd" "KF?# dO(ua#sر4k((@@@ rD _OOڢ$|`@ *dda& O Ď:Z#$8"B\27{Dez;Y   5@P TbUB| X!1ƟĢ8Y,١t    i@8&]ظÈ8EFIY>o!@@8Tb )CuZ(6@M^6}{woزW|o\Ѐ@R[:~?kg9k5%Oݶcfw ^8:#p[;R⸽g8 ׹XeP V   .qi.b2Op(,1`rG VғD-+wVo /?4!<;RwE l,TEXbU*5/c'1e     0;uE '}xD"[(ȹ*Egd;@@@FCYSI3~$NFaE.Q،    UGCUWe0|how9r c6kR:Wy @@@`vD@`9e)3%j' E :][(.1Q) a!   IPR$obdgpO.zFmƬE4Lj!V.6+ 3D .     `v(2:$wbЯ)tm" !1>5$[|@@@"PdtHDq%@Qqςk&yEI$wK2%J)` @0;8R(PGy/"rD6LbMD,dӦM7߼/.;E'褓.;K,YJ?   $١ V L1FG]9#kd`(ݤ@4 P]v]~sYsٹs~Wyoqڵ[w-1,wXH   er З![1S$?7EBn~{.XQPIz](kvm͛^dŹ={܊`O<ƍg/]`( 52"er,Xp -vlz688 };_kM{G_GE LU @ #F̪ 7n7^()l[f~m+ߚ3JT!_HfG AoʝwvuĿޗ3^no?3'{x ȏ^;WIZ~-`v##?Ԯ8bK\h3b1c}Ŀ,@) 6M8]wz3k䆴zjÑG>%M>|w=K:QZ䰪 K# 6t2T]G5LJR :C  ZUUCSf @ \֭ӷm F,kopo45k!utMwOgO?D`3à՝M5dٴ* i!}?_e2WSdN-pE1#1N*%J a-OyT(O &3Sht9/%;9+*9&;o/6&Br'n;wש~⋿x7Q3B w N-'vXv #Zu%TݛfG;*S,[W?F_V#KiTe ~Q(FwwiHSZg-ѝv{zF"[ɃA>Q;ɘEx,j5;J r\3󩣏>~[t^sp?c*ey|-<2յr0K5!~bd EO uǰԔ{%&$ZVaFFPTR4~j¢ӣU/ȸ9aU Re3[C-Sd*˒o`Q>XZ.S7ow߈Usƍˑ?Hsƍ 5Lᚽ(v~:MrXbYh4MslxUw(%e8me+˿̹cv(1ebG* u+TN*ߚ 5H ծXj uzYsIDDږqݶskiiv;ncE=M`8dwNpw' 9Ym.9D6)F׋`(*3; .ߏp#mWhD*"!g^Cr\ bb<\ֻWtڒ ,(&vk;Kbw3, |?i/O}==/w߿zRns_ioova//E+g,71s ]1dkŤrD%z{=Fկk-nrښ]sSMQ wP5D #?ǮVƇ~g(5}h 4F.V\z+J¥!ыąn;Vr`ӄ gof񆲚#/}fJ=6^gdq6Vm:,^fKCޤ_ң)ncl&78yyS _ >J)EF/ZR:w\oMF6WdwvU5LFu ? E?~׾61F" wh-_4o3g30I~+i5eʔ,6@.,P@L C,#@zeǒep_',4>1zc5}s/g۷#q:Ʈ|7.Xp^T:iDzpfjtѲٜk!; w*KR-f)PU( J}O_3u19mcL[n~̘1y@@@@ nv(E Nz E&g}|C}[Y (їA9ƾ>cƪ{   @i}g\2v|1v-cw0c;}=/;kX(<\@ ! ttt\tт矿+N~GYgO|YҏZuǢEW !C@@@ 0;}e&o3UΈ7KpW'q՜QK'N<3綗_~7W]/?CwΟ߿! @@@ 0; ye%_dIgr+?) yKJsر4k(  MC](]8"߯'S@.?)vX    1`v(<$EԐ^>ybGpWGxAA-:   P50;T5UC@GDɚ m    fBp2Ua'(NV(Kbv] 6e~`] el<[%'Eq|N,gTR"Cf     uJCuZ(6f     uJCuZ(6@6grlIݻ{Ö?bW\xPa      3dsĵgm[^=fjnv7۹aKbG|Q* ZprgIp$vI%pt@dac!{BC      @ؕrYp(bu";$@MPMU' ='>\_A(r.⌜KXtF A@@@ k<;4k{2EbP|b(,% A@@@`v @.Gn8{&~MJg*9,9(c1103.S.|eԙgwy9_Gv    `v obdgpO.9)KڌYhDԒCP]$lW@.g@(\A@@@"PdtHXĠ_+'1IBEC%\אlcArLC!!x(DMLθg5h%}}ɔa0@@@ qJ)c<q \%-0;&qn|qKFeٴi7/=KN9eщ'.:8%KOe0Yf9f#u}Ήd~c}KFJZY20r^nRdG(].|9,y978gs֭;o˖}c|H,r$2ev`[Đ]^Z-S֘)zI֛"rF!R7E=k(($=_.fA^;㌋lg/Y2}}x=TnŊ'Ƴ.G_De0 Yfʆ 29 o,q˖Mn~=QM۾צ=#\믣"A@@jfj*QZ ciTfOoo׎7VfG~m3?6mj{o͙s%VUʐ/$NC#B p7tv~;[v_̙w/[wӟޙ`O:J+A@@TP_Roa,,rA5{ $ X%#%7BIeY=Y܊=59drQ̞={i°،Z%N!l2J.sQS2qdrq5#?Wjtc5ճfڗjW(UgcFpq:SG,*pgtki;U]mm=g5rC?p䑬OIݾiӇ8'ֽyYq2 [XKVUpidV*s˳х}T{|((30k[UeV†O- &rk[N߶/X}G_qҤ׬4#51߽>A>UIi`-ä$ͫ;V!,i6J:uvHWL9JyW$3<ӕW}XK)0BQndJ"GU kdvUbȺ ('XvQՎb7u:OysF5'0n\8f1?Hsƍ 5*]cB?&eҰ$ cMWݡQtiCJ\GeJv=4TVr&%S""ݳ撈Bcc-P A@Tۄkt< ]2ʙ@_KOrCV-_7w+-r{ӟ>, 4R}x(v1t)/jFïGSXK7ZzZkTzyVf.!х8:uU jOڙ"1|1J豫a+5Jr rh3iw_=twRumGND+q詻Acc"(gF7qwX-2;{[?;}M&LSg7jctv]DczFWkcf]Ɔkѩ7Mkih(=+ꮢx`;q`F/|cIPG^I$v"E'cqD/trm9! ˍ*QY;~}mccE~[i<6gΘgaޡWhN;jʔ)UWd@., @ #@zeǒeya5@>>y,c^:"ψ7Jr]HFD tvv;f%@@@ s0;*A$ !z*} 'P%,>z#١zq7<5;z:/3!#A@@@0;TA:s7{Dz;Y   `v(.8) cQd$fjܥP<lP֕_ƳUbqR^(?)M^>d    0LC:%١:x@@@@@C:%١:x@@@@@ C96yUۤчNްeXW-޸T$H lD4~L90?ٜ5qY>uۖGvn0Cؒؑ2ss1ʂkYA@@ ]/GoRI;jp4b      @X#;+HD$v\ya!XH     NC      PS0;TSՉ'@ƉFWk3n8# DBeF`O% P @OR8Da3<TU]-TgįI,_!'p !HK攥hz̠/s '+茋JՌ0?2Jf X&F|6I^䒓TϨ͘FI-9 5EF~~9|d@@@@ 2EFN@ 2%-TD!?;X"fr5%[|@@@"PdtHDqŚ%@Qqςk36OIdJ2>%S `v(qPX;Ћ_D)$xO&qn|q]"WiӦo^zٗ~ rʢO\tIqƥK, P+&U#u}Ήd~c}KFJZY20r@VnRdG(].|9,y978gs֭;o˖}c|H,r$2ev`[Đ]^Z-S֘)zI֛"rF!wc",ѢS\/L)#^;㌋lg/Y2}}x=TnŊ'Ƴ.G_Dx"@6 `v(@ dg7 8~e˦}7[  _(_^{m/<ůz-   uFCuV(n dp$ `ʬZY]q|sՌ"϶m'{zئMm9sĪ9 ١&  <+wŷsz_fμ{ٲW￿ ۟|[    PC ^~IMVWYĬh[bbbwLnhoXuVmbsfM,G}9fϞ=qBaXclUW^szRuю /[h%z߫ш)xN953j/\>{x ȏbjXM,١=a\!a/Qr.⻺I.S&*3 6gӪP`g zjÑG>%iM㎻TZ%f(la- rXUe¥b:Xj/bI5]G5LJR 'UUPfk%lTdܼ2@vL`׶nm_7b\{#ŗ|IOY0 ҫ \%5HJCgk&'*k&UZg|DOY;TH"fx3J+ww%@)Rf׼*sDdd3+U\QlKNd*&;][~>զ7d<_7XnMs:ԏ^|=&}Fpg"%Yb t1{׎3 G(| cZ4:+۲ZL5-FqfrD/MTFY':kdv7e?#~W.)]͘%m=OpU׉G(hu/ WQj^`~/d2MOL288qcSwNhI]]+ wh`XƮ߲YdmNQ\euv(c2F~8fGM^aRXZ(:f1-;^`+8J R]sͨΧ>`m{I8@T, Ƀ3ے-K2uh;+1%5"P Q %j!m#Pm j\Uegt{!)to]7: ʐGRYi쒲zꐀx\_`dSSS{`iXN~ӧO߼9w}#Vm7.GJ%vQ7&Ԩk_*hRUh(hy>6]w ر E5=a8mzl]4 Z=f<pH ?RbQlJ`ê5VDÂAZ}8F766p@^2+M[9sƵ~;7NW1{&g0;K'%@&Ź`hhMPtr Tvt|?"rRuϫ FQ6z!Q .h()qh}N*)[f?#Qznt't Wn92ʙ@ӟtSzGO/ꭔ[oW[63?}{^I54/]9cv`KFv1t)/jFïGRꭖVU^ޯUYKikrt2qN]z7E'߱ !>1|1JWtK3JW%ſ~EN{ef\ƚ+JF7t a^c?S7k֞c=v쭌ɟ> &Щ| e5]G:;_g cJz+Q6ֵUXݷ갸t3v~WIW\獆1XZMr:+צ~- v"2#WMIh2-'L J86PܨT ?k_};zǖ/o7͙3gx$waӎ2eJAyd͂  M p(;wcIm;S6Kw2֪U}XPuxǚ>嗳hcW,8V-WcY``CX+\ ٱRgǒrG^iH1J\F˗?}5爌E^b)S~w-׏3 A@@ 8S?S%.p(qPNz igCniV"|A,}dl--c3f瞛<@@U׿M?S#*dd 6mڣ ZƎ<ƮebRt1ceswtA   P"E8T>ҁ@ttt\tт矿+N~GYgO|YҏZuǢEW ٲրCGASFo$*gě%ոjN@HE`ĉgy=ˏ抵kz746MZ@@2H¡ C_dIg;(r@Ɵ|i0A@'j݉|)Aċhv(;aGmcxwv(s h-!$.j!    P)|!!p\!lR    Bk@@\j*QHF@@®V9u!o3|@@@@F@ P5 !¡j,^}T(%Bs# vvBp J    PO07fQ]S8T]E6 e `nU]D/?Jj,D")"e -    P07f(5BDT-LH07ag+ !"Ԍ T+̍@١BCz)n07ag{YSX,WaK=@y `nB=-&j1 ,=+۶=Jp+$@ GW 4t;-NX7 YV*|*;Lf;7áf    UNƯX-F8봰]MPزA@@@@@'P١q[ņB X[)@@@@@¡:x@@@@@|@@@@@N wS(6@T`+z_D 4yLJUCW`A-@ nkzC!<;TfAv     Y!p(+5;@@@@@ dN"G9! *'m    LSf: ف@-86.^~.9@]8_rQ;T;{f     P6}te(kZ+G3?'cs/̳3|?4vƺ\.'bL,O1I #    "8's߻/^mQ۷_+EFi\u~a峃@ ; +oGT,sW?]_=08jn`p ;¡[DDrԕdjJXRS勝׸C|#޼qJ4nH  %xi -/}ky>c~3{g]^M[UUCac <0Jj%C H@)#X)q K 0>JhJIk9N+ߘ8 B-T hCh8F?kcӾmcK į(YEV8l'h|@BC褬l6~sűAϸ۟6|KꢭR2%f9TJ#"a{U?aT/:}??3q۰iۑ_:Bxtn7*'J8D&rc}3".X2KzļrR=YR@9lP!@@@@jXz:.@_&L/p̑#&ǐ$P#;MO"G9 *'m     !;eF     U&I4zH2GYПlΚy-mLf;7áy =@P:F$Pp/z"H  P{G J   PBJ*74d!t(٬,X Y&-K?V Y     "g<E8Je]2x!d P-?M]/ZfPP فDR!pX,F!z{ES!HBa¡+,O^@ .v ¶lP">:@R%Cp{{U*ǚx8NL^<ѕ?-Ov@lt‹!JzG$E fp(&={ q-bL#@M8fn;#qS J9iL^Pj*3RJ¡p[)вoe~&#a@L4rDJ4nH H7 v )!,lc#$BD6 vI|( mBEy~*ȃ@*̱ۡk09Ma=+lѡC ew$.7V?'8JJ˼++3c-XȱX TC;#.*tԕD8l3Ԋ<:I \8Dexm(Rj3Xƞ~FM "P%B?ЫnJ:đB!D&:HDd$.3†830k.T~`vj.]$QzĿ$]Bqݚ[bԦH@0ZbA)}BO A(MzYND,fС譽ҩ;85ρ%@ &(>Z*n\D p˅~+G:fU-#Ē)_E VvѼZ5]ҨܸT=/#-QeK(Z^ =R$`[wePD7rNUڭ$XPx": <XE ٘V 'r'j鏕[}J^vaa g*eѼ rB4~3ze.6{$iU\̓*Cl"7qdsVXv+j bt(5$A@&(mQ!}oN&mec E rK.28vJda"/_q~y(XƬ ./"4A.*ۡ(Lv+jJXPѡD BjCCXpyރ7.7#dY'[y{b'$ PAf̬6y4?&(Uuۖשf;7+d 3qCJ?ůNy}egv A@eC CJ@N {i0;JLf^d!GyT 7;y!wPYC AR"Cwml7;&_vp9f9w(CEPRIijC/00f"CB8ouZX ݟ ѡDƓC A!C!Ҟr "N ] >ul  P\RJdtC @! :LC Jj-rP  w k:b ¡   Pa+l*uwL)  UF g\9HV oIRy@@sҗ;yPQRHu(-!pX,&XʦJT=   X8T6em  "oRu|A@ g+<;TNA@@@@H١O< nRT!}v(CP`2%P![84^p(@j$` СTcUf,C[Yvs َ :VE, @ lWR0.w>+X^~gP]f O Uڌj)BIʝQ]۱mTL͔hXhD_mf9-;^8J-LXRq~Cq^nc׆%%\ aW 0&$% tIU%Y\xóf /T^oKҿqrMU`c";JvF0/B8h1Q& C1:$\9B!IV^G"}A"J*n"̋L K#b…mM#"0fD5%+r91BhNh<0ΏV/݄('$^gPB>:G\zIѻ ѡD$ @V :0I_8KjKvY6ͼGu /H_HE]T\P zqmaGi+[a[1eiD$r?]s`u vM1đaike+t(r{ѡtzt(FR!J@y˹>;Tz''GXjid b!Bz*JJ1ދy\\FTȊ<`aI(3J"Բ;=HgС!t(- {%ͲID7B kmDq"(O8XN,f.aR(TgBTʂfġdaBYTJI|Nw"'"1FA6z/u3.6'*g:K-Cɂ&h:IJ b*F!).ne<z2dA !PP C'1KI%X&a,Er1#DzBM4C:Hο$2rBEH;p+2PС:X!B@3PBJ #':;v2)xدJ(\"gi]Ʊ';KT IB I b~T?Ģ߹!f" `oyЕpt(8:#:y :d4hZCnyˍ8+&2֏SmR_C:Ã/ c lΊuĽvNKxPbr/b-wc 9È6֢D$+HIdk]PC PJCC DCAg _q;_8E`e% Jnfx#Yh]{¡")ȸ8}M!ԎXv-l$+c؉YզP,l3#ib]`akƊEjTџ!VwC~94~ݜ C!\P꡹~˷ἁIN+,hǛKKYjf͚U45爤w-E>ZmK'XjˍP/K,$,m~bӍQRO R t2 X8CСE%F3Ko:w\yP뤎C'toزW|S>KX;8"Fk{S7#4L~D92Ox)0xd,cFV22%ȳsY pg/ eHıGWBgz9HG@]JCP: @x@, 3;ˆXU$4&ŌYXDrHUs~w"w`TqE68>H4Z`8QXEO#(;y.*?]f+rG=[ CpP&MM`wC#` ;QYP=xI3_xs8Xvbd"Sp@ag;;2zcP.4AD7HQPfߋ4A7v("*hk:L rF!⇟-n"vc܆ g~ p;M--s\w]L!dΝ?:昖)a<#d4=/TCy>EBHb  P"w(i0q-/H&`>|b? 'p≯v3f|ܸkϿf/#;yx`pO!r^p+b_:6˳CPV'SСd:`Lz"w(i4;dxOL%sJBo8b]"Q3'oqg>[2Օ#%@;~ 6Z Gt_k~@+PDDg CmA WC  CINCE3cD:;Zhr0=w}Dw0BZ .r%/98j/"*m!t(%(CBС$j2J rFy#%kGB& @ v<70&˷-B ;Hvqhi9ђ䈈img9lt(/U:W (JF"H 7ev)T\kXn`]#Ŷ6.`X-c 1;k[z[LCq!!~KCI[Cq_<{?cO~B8'fi#|@\'(k9жr޳Cyv7I=;)wYy}[Q@v(ZСDTuHJVzeCIl!~!W!SY`MAqM]t80o;\Ow-[ommb>/$ F ~!"HPUz(x!t `gС@:Fܡ(&jy [O^qbʉBq{bZ9ߗWoou(I&Ʈd֖zm ԬGaߺO/sY yUGD)j79tQVDB}g=Jhd_hWADȺ m޴v^Shihlh,=AZ>Gv 􅶗kaFR>CJy8# Сznֳiv(na7)'M@ zX(L%*ȊJ) K(=Xڐ27@b?}9) j7 Mn˳C qMŕAJ6V@% 2Ж}"?ҞrZ)5r4/t?iZ@@<[CGQО:>===l;ޮ³CP  q:@/Y,wᅯ,\o 1{e˼۴n> ~м1b<*A_PlЪ]zw,ДmI *m.GPڳ,l@RwN@ԤXn١|gfD(!@ز8CPСED#C…2fJl$#PR@@b9G"ŨT),2z PRC  P3,fjQ$JT*JF  ! $0;4ː?nyC-qCפri<{Î?tt(@"HfvHfB6\̋\JBeT!bT9R.lߧwPh x>H}_4{*ۊ"T $9;8nD2ٛ1F5!ʼnV/.SUTXG bIE BÎX6ZUE ՋcO(V`dHqv(7[bGPzq; 9 02%.[G9r ]D)ė@9DҴ)iفR;r vReQ:$lP-HI$;l~n[lz3jZ5}l{vM3 %R_P"b+E P !   ڍbA@b(KkdXo52A@Ame[_۲aS>u${nV#GLnҞ={j 4+#csCS"mhއ'ɫw#H( ;)`ۄBZrJv)/:mnmsSwȗ' 'U  5"{j,  $TIP@vv{YpUӧA&RҤjׄ Z`>H(pZ;?ɞ7 KWI <ڭR#U5H($Jc:? C}ًz@X ҁXHbp@l"OhM+*(/e֜4B %rpC A<! Pe ~ <"'&$w$ 4$e݆krl`q~Nr~_^M613zIKrP@'*jaGBa pV?/Ұ4@!:$e/q%VE{%iEm"ÄҔCawH,LBdȩ;n{ɘ[w}?H A J_@ԝ@!a1]*:SCkIe0H( pwL@Bia;dޘII,PZ{rR)V1;hjRTVI5*Rn mE PXöHiN9*oe 3'M I*NpidQ  m=DPPy;Tt%X ؓv?L/A#PgO}de謌?mJ nHS$C(@ ?"אb^n',#jbXBPlXv$u!2dv3_D näfi >iiu4{vߪ0w@avZD .DR[?B4@, H(]@`pѥGVR.,U)@I׼ $G$5,Zƶly졽O=vZPȑl[v9޳gC-TyedxEjזCS"ȃ'7#ӧO0WFB!4PvR7 "SnM_uxMZgp/OHuOv@@jDYP@jI =<ڭ4 * a7@]T+@ Y)/,B1 RBOhC$uO'?Yb^3:F<#ۀ@ݡ"4$ED+(   @wh@O IQ "b}A@;J3<+@@Fimpdѡ]TD<#DrĂ;"bv! @@ T=U0B,@Ca2_D .D"*j7FA Rod9Ga1/!@0H( ݄A@`0 s>bya5@ Xv$ $`w(U拈aۅ4HRTF  1 "bv! @@ T=U0B,@ %Ctic L+M"V&0@]/m0qC{:zc oGdӯܲA={8BhٙWFZĪv{wCS"7"#ӧO0WFB!4PvR7 "SnM_uxMZgq/OHuOv@@jDYP@vJ-t{xR$%PbtŠQf`r(MhBQ/JE_t(3hcCCiRMuݮÏÌ'!.Mv +6bE 䝃JJ 0Cb_9W=U ) nXՊ9P#OiP@\,=Yڶ['M煹V gI 5_;J@쥢l{@"*`w[N⏛Y+ZܔsK*lJIWe]DMAiB~+1)ʤ?ȝyh0iI ^$|&)„Ӏ`Nt]yAp>Or%i)Xy?nyU|QG:Y?g|Ni#0ry_QRӌ [_ó"T$ÎgU,I\jJpXgM83 yK P4)SLBh-٨"}:~%y+E2v8 ?.ᘹ̄T%:?Dp:[vݸ輰҄$B=/⏧Mvm}< {,@ !PJOO^*аmP Z ;D^rҢCCd1dq2c(=ˆL2.[ 6*#KY¥zrhM?E'~2"DEښX+I?]9C*}<#89AP"Ph20@B)=PJCCE T)? y`@41Ѧg /[?J%kGVس݀֊Q$<#l *iS EpbiGBI]Yv4f΅zӡoWKt:h 321Fm;^RIS-k?HLPNTpvC9]chcԭw H(n2on"rCB!xIhx'L(> ;T$O]p{ӡ1쬦L-((v\ү3'}4aNolHCz\ppp4K/B(^\j+ tR=K%GlP ^ćn}Ϥ+prg0Agdy@ ǓSO?#L$$}CB)=XDBrB1mCrXW1"-T=eF+^F3PŸ-&~KϬR^[Z&2j8L#GUd_z=QU?P삙|C|1q:kE(\aIM51DӯPwLx y3e؉,q\$DN5G (!I ;i$ücU,PTTjTݢOt ᜼tV>H H(ABaĐPl;ח&. ;V-EİYZZZP637$j( 5"3T=UABaP !Pӄwavjf]D U`On$   @]Z @@@}(   Pl c[6Lܼy~jާ;MA;r$~].ٳgC-Tyedx,dv{F{|ZCy%ad F`ݍ$ amB! 9%㔯ڇ͞ߴu|vnD}=Tj@@FpPUA@RÓZ: JȧCU+բZvnN U`Onth@@ 0Cyݜ~5oG8 @@ =]$  0H;D8؏ǕżA~@` v$0@D "G Y-"V$tPH([  "YAHZ+LfĂ%`ؑP’4RvmmӋl.ýC^C!$:@# |1l  @H!@@ CEjcL;Jp@ %`wRo8B%`K2@*avm/"  } `ؑP4   K|1l  @H!@@ 0C5ZD .DD"*j7FAm}aݖ 7o=ǎ? id~ǭgyȑl  0Xn\{|ZC@]Wdd eH(I`#M(DS;N4+sxMZg C{mɵ-"T?ߟ}nnWdY>yw>EM=@@`mR z%`P0*X %q|w/t'ԧ> ^љ3g}>dڒKhsC?[G[  P/H(!ԫ3C[_^@ؽ_畕?裿<"0-:n+G?p!cLjqgMȶ|l8JVGH(kH(;0J@}fwz=HL/|aO? 5}E [؇5(2"nErSwE|IG"AJ_|5jZ$OhqvmE!$[(C CBHB]$0 r&1+pP#,"vggFpƭйO.1ʿ|~߾/b?JA;Qo̱`1U08KQLL(S2~XFGMɠ%b 5uIDAT/)u3q79"LXrJ Ī=L+L%>| vPğ:/G,t*A?'B#.fYs(=,:㲶 흯'˙8 E$$zhH(]LFNBLJ qY ,^$}FO@箻\{~ηqr~{baaC=$>I;O#aĢ0,MhUU#ψh)]&gN" v41K"V^ƫ[")+%R7)am13uWNXgt,7 gUO<볅 9Utk8{N̟,rDH(!X[ڋ" xP_ѨGf6`$*lT<0?`B!MǞwJz /.dγ~]@oLLF|d[P?n"j8ك>UJ;myCX"dM[U/l{y)ҍ-'ڼJ Ӷ|A$8`w4Ki]E09O}6w q6&'8JD19PbmJ1P Ct^tNh`,U3̹soO֝㶯̓ؽCZ#Pi[)BhEMH@9 V:Ii-|/*Yi Ѯ{P l%H(zw8$ޘ‘J >v)2#QaoC;v5uL=, M?[4kٖM0V-o(:qQ]HǢ<]bk'v$3: swe&`\w#0qj'{Yv+?y{ȏq瞛.lL!v6 N2q*/KK'iCŽНh+;iɢVx9|'QU"e{\i

MƶC{:zcwdXR_/oʲl<~d"egٝvdӡwC3KEWY<\6avkR#?}*XqVz&<ox_}$Q  P5!$9@* ӡO KSyA#o߻''̅*i  n̯s_T %,OH Cw̬ڿW}v3]btxx̼g"33gߚ=wͅ3Z\\X^>Hޝ2yӕHnIJnS$ T=UUX   !Hb"6Ih@@ T=U0B,@ A5LzJ6J(ب UZ2ȿXRsNJw46ll6^M7L[qtucãMk[j&UQVx1`( `TP*!Ƞ$GbxX skąF;D:k׷TJujmY}.m봼P73=#z_k^>--vVWVslꬶW+w1{P"T *8*wQt '~sK$2a_N9AeԢQIX$_i/_h/#U HiW'̉bEz K}4h~)"hN-:ݙu{\Fgη:%7RJ{xRks<#Zjp b4o=-IIVLPZ拈&U/14*9AȘkwKih.NQB"!E[ L^[s}jz`i#H;"C&Om?}:꽺3gd_g}=>A2A@vmC$BB%?ú# F!$$^@  pN(1`V}wLL믳9?/y~JߋA2qDRPo( Ě9] KZ$ݡ|Q\Ru$A~w_I^;b ŜU'xAjO(JfwH")/|,+yDo_X'A'L2w%U")עʡ9TUArP.O:S E5V~*OzrY-kre5.TN̹u;,Yu]/Ϝ=bȳ.mjSk;|ZI+B -yNDC'!VAB)Bg۩  a_5䉄bS3sVH(ĮO+-#?E5.']2Q͍7؛ZX!5uVӡ) вM |OIAj/T&JaCr:ǖrjvh`ծ^,8[EF&gvM-2٥emv{l(ظ).$6mCH(# # X 0R 0PɦCpm9>=sкuϝ[n!i3Ue~7&1iE(CC#cy,n=D>e!rozFbA@BaID;D=Y);Ig09[P1:66ږwS3a:ޡ hgٛDפË׏r͐ Kr4)sd E>c؄gCj2:,5K7CamGB AZNLsPdH(nY%̓&\oߗi&r{͎w'Ay= yYVOfcP~0J;6nedcOhsů˪ zۢxKRb;x29{T~7?iu3-W5KöB{  ?Bw> ;$JGzb޽f"1[]|Έ^zy=_[~63J(/+^ ү*<P J9kɦZT!ɡjO~(M:|J[|w SH(zhH(AODB+5 PyHt惊 PA8mwv877:11Aj"O3e@@ 9=Yϖ"8ۄB~v]Z_2ڿM22 }@@ 9p J@@ 9"-1bU<J@O6?TR B U`Of@3y\@V .DD"*j7FAOa9d@]T*ZB {L-G|b^BTU`GB  CGpًh~M.F"`ؑPcX0CJK~ j @m$1H,_۠LZtEDi(  y`GBI,( F r*  Pe ~n  HvJo Q拈@ H(Up(t&;"bv! @@ T=U0B,@ vL.6W="y(   y`GBHP;C~XCO H( >;BEİB@${v#aXj1`  @H!@@ |:m)$E 2A@=`(  u"ZƶnS>uHfZ}kɦ_;0e{q*  03 Kgnȧ5Dd$\ad F`H(JN  F6Vqʭ鋵o=9i[  zvWR  P#wF΂  PKIn-A@`P `w ׮(-):^dmMelBZZ,(_ .eEjzi.-^%.Mvk/$*"PN?XE]J. ʋk<Ϊ.}|6dMb@VOmiáf1~5U-*# H(N[7ez#"**`$gȩ*"^5uzS+!OG·N) ~(c;6FhRV?roNHOR=;dLiJXIV?7egߩx)DH'~48-IX\[(0H(9H(,PXE$=7$jUݡN)P+JE ;چէ 5K +Ev`N~g```K2=h}*jj$>@&MD'H(qbV5|1lfBgD~27zhRFT gn&3&_qg"\nD{O=<D !CBok^H3p v( cL)M\Ku/f>s"~L zbEwiP"$JiGBI{uF <7°FOy' lU\[Iab#[v$F$2P ;6EİBZrDpʊ g+>@ݨ0!܄@\,7 B`  "bv! @@ T=U0B,@ %Ctic L+M"V&0@]/m0f}?HyobF+v͑#k~Q́  ĦIv'Xɫw#pCV 0rJv)_P͞ߴu|vnp:44dBoȘr/U+צCga"*μbVC8ԋ?phX/J m!CV^>--vVWVj]o\]m+w1!u! )cC@B E2>$!Ο?鬬dKx ޅ;21y+^y奉WM$_6~J\s=LDwnΩ۷Vyuj5"[<- +fo;}:=Gvni_o/GF%@bm‰-%#f/oVUgMfffګ֑o,m!S|C&B$ U2Sej?QFo$}?gt0PQ[w AB rAHJCRȷM֞IwNfQ_Y\\fTĉiR% <Ȣ&֝N-;?JCS;ݬ5fh Jכȩ›@s4Vo!VHIYZ 9x-/w50J;N..g[<'z  E# #݁ FJD|}rF~w/~%6O#bˋGZT"s3rhETttHJI}Xo-,^s?Y̛&s9Ux{w"O9P'7}T\z_ |g/T#!DNUnh>Ϳ}!rSrnCaVke1œv "$ȈN$. O\ Ν;{MJ=ݛ]Ү]i/R%\!ӹy}C%|a1_Vv'kvھMD%[<߾I'#Ͼ Ieob+\="B4ag\PoC- dGLZy9?ALx򗼋P|\({5*P (}-H#H(=U$ ӡ^cu]ŧ)Pĩ#/gon^~[L%KY_u}4f->KA@QC{'6$ҨMh|!@\Tg$t~;J$jed.DпP'RF3zTJF  ]$m*rMwow6J7r/ъ"ַ-ı\}F3ɛ<$ry~Qй|4uϾo"{l/|]-gR›_ wzD0 ߇B< Љ ԃ͈xJz>wz-Eo$$>H(H(>uS$3|:DE/z{ hrMZ[KG v *.C_mZޕrv*vDNj<(^{K{ONwh,zV7 EQw6'!g='ٷOs $@N%CdRDýC:!/2!p%.9ܚ?M~ZBKk/$$e`n %;PJf3_~9£Y^)M';-o~jcvmuJ,uZM/}޵\~dx+Y = gI( kSBb> _kp eBp<#G%$\=I삮懶t賶k'Tbs;+U<)X.e {auzxd8_W=H4Y %+{olY7Ӏ'R /3ᵿ}u#y"g!>hd9G/[eWa-" (csKH(܁2 %8dtLF[@I/~7&߅`iz[D(>\{n%w>rc{?)_IvE~%>?[MTMl|{rē#1D꒿Ą]n%4pӜoGxCrI)Ye_q/|4t7?ȒPQ'J<ޏ(upd]2!?JӟL>e\;G~w\SHS"7Go"!!Fׇ&P0ۊ`mg]CƕPYOe9Q 'G boH+P8?JZv./j$ntqU^Z:OK++K$rS,_IWNɖw:ˋ佺]ZȖwZKpg|;Ik)9z>[Yl*-*4Vo!V =ظMp9e-e },"( sJ3  %RXxPhe[_Xe͛f}?ӧ~rd&thSKGA#lL0 g>B     `:%'N>DZhKM5PV     %Py5t2"     %EDvs"#M+("z}HMŒz$@r.!]s=jR smQ@@@@@^C]> S$\V4-4dQG ́@cXOxcOKPi[=ERiWc, PC\+vZvɑ*i TN B+ƛ"d    $`=R^AGa;H̰ 4gr̅ \      `=p l F}8lįxQ֢%$ Cӥ>mÌe    t(86Ų˭R~׋==1ey*vFd"\n"w     5%`=Eїq~OZhIZτK܆}UGuC:Y#5yP@@@@ivQklD9ltN{x^X@ XO+"l0Y6ARn((7LVh     @+º-oDA#P4je[_Xe͛fr=A9Lfx#F7Do RS=&']w٩^, 3PdO&tH@QuH     `Et.o%X$'R)b9rkӡ ;6oYOn.]\ű2!@@@@@ <65t٥]w5W:#eUg$r1殊k qo0?5:Z16F@XˍA5Q4"4bIFI$SuQ5ӚnVvv]'ٺA}8Ʉ\qTky{Ut&JRO8k OQ4U'G #@p1BJз6Ppo7,[l'IENDB`C( * d   Chart Excel.Chart.808Microsoft Office Excel Chart% Chart Excel.Chart.808Microsoft Office Excel ChartF/ 0|DArialgsRomanXXv 0"DGaramondRomanXXv 0 DTimes New RomanXXv 00DWingdingsRomanXXv 0@DTahomagsRomanXXv 0" A .  @n?" dd@  @@``   9      $$&(1.0y4678=9:;@<=>?@A O"$KH "$FˁPzG $b$9gDH߿v5F 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[ \]^_ `ab0 3@8wʚ;3ʚ;g4cdcdD 0ppp@ <4dddd$k 0Xdv <4BdBd$l 0X80___PPT10 ?  %2Cluster OpenMP* 66b8:B>@8O @><>20 Intel Corporation 5:01@L, 2005 2Z$<+"!>45@60=85 'B> B0:>5 Cluster OpenMP* >45;L OpenMP* 0AH8@5=85 OpenMP* 4;O @0A?@545;5==KE 2KG8A;5=89 =AB@C<5=BK, ?>445@6820NI85 F8:; @07@01>B:8 4;O Cluster OpenMP* !B0B8AB8:0 ?> ?@>872>48B5;L=>AB8 8 AB>8<>AB8 ?>@B8@>20=8O  0- $,#4OpenMP*: <>45;L 2K?>;=5=8OBFork-Join AE5<0 @0A?0@0;;5;820=8O -$,OpenMP*: <>45;L ?0<OB8OpenMP ?>B>:8 2K?>;=ONBAO 2 >1I59 ?0<OB8 A5 ?5@5<5==K5, 7040==K5 2=5 ?0@0;;5;L=>3> @538>=0, 4>ABC?=K ?>B>:0< 4;O GB5=8O 8 70?8A8 5@5<5==K5, >?@545;5==K5 2 ?0@0;;5;L=>< @538>=5, G8B0NBAO 8 87<5=ONBAO ?>B>:0<8 ;>:0;L=> !CI5AB2CNB A?5F80;L=K5 ?@03<K, :>B>@K5 ?>72>;ONB O2=> C:070BL >1;0ABL 4>ABC?=>AB8 ?5@5<5==KE 2=CB@8 ?0@0;;5;L=>3> @538>=0 (shared vs. thread-private) >445@6:0 :>=A8AB5=B=>AB8 ?0<OB8 =5AB@>30O (relaxed) 7<5=5=85 ?5@5<5==KE <>65B ?@>872>48BLAO >4=>2@5<5==> A 2KG8A;5=8O<8 =>340 GB5=85 40==KE <>65B ?@>872>48BLAO 87 ;>:0;L=>9 4;O ?>B>:0 :>?88 (temporary thread view)\)PHP5PP)H5^ 0%ZOpenMP*: <>45;L >1<5=0 40==K<8 <564C ?>B>:0<8..('!;01>5 C?>@O4>G820=85 GB5=89 8 87<5=5=89 ?0<OB8 (weak ordering): >?5@0F88 C?>@O4>G5=K >B=>A8B5;L=> flush: 1:  = 1; & 2: flush (A); ;O >1<5=0 40==K<8 ?@8=8<0NI89 8 ?>AK;0NI89 ?>B>:8 4>;6=K 2K?>;=8BL >?5@0F8N flush, GB>1K 87<5=5=85 40==KE >B@078;>AL 2 >1I59 ?0<OB8 >AK;0NI89 ?>B>: 87<5=O5B 40==K5 >AK;0NI89 ?>B>: 2K?>;=O5B >?5@0F8N flush @8=8<0NI89 ?>B>: 2K?>;=O5B >?5@0F8N flush @8=8<0NI89 ?>B>: AG8BK205B 40==K5lZbZZZ  3 3 3 "!  Nx%$` 0AH8@5=85 OpenMP* 4;O @0A?@545;5==KE 2KG8A;5=8911(( /7K: OpenMP* @0AH8@5= 4;O DSM :;0AB5@>2 (Distributed Shared Memory) >45;L ?0<OB8 OpenMP* @0AH8@5=0 4;O @0A?@545;5==KE 2KG8A;5=89 >20O 48@5:B820 sharable ?>72>;O5B C:070BL, :0:85 40==K5 4>;6=K 1KBL ?><5I5=K 2 DSM >?>;=8B5;L=K5 ?@028;0 4;O >?@545;5=8O @0745;O5<KE 40==KE (sharable) !BM:>2K5 ?5@5<5==K5 @0745;O5<K ?> C<>;G0=8N 0@0<5B@K, ?5@540205<K5 2 DC=:F8N ?> 7=0G5=8N, @0745;O5<K ?> C<>;G0=8N File-scope ?5@5<5==K5 4>;6=K 8<5BL O2=>5 C:070=85 0B@81CB>2 4>ABC?0 0<OBL, :>B>@0O 2K45;5=0 87 :CG8, 4>;6=0 1KBL 2K45;5=0 ?@8 ?><>I8 A?5F80;L=KE DC=:F89 (kmp_shareble_malloc), GB>1K AB0BL G0ABLN DSM ~ZZ?Z33?  ' 7: k H@>3@0<<8@>20=85 4;O Cluster OpenMP*%%(>B820F8O: 0H0 OpenMP* ?@>3@0<<0 =C6405BAO 2 ?>2KH5=88 ?@>872>48B5;L=>AB8 0H0 ?@>3@0<<0 =5 3>B>20 : ?@8<5=5=8N MPI* 0H0 ?@>3@0<<0 ACI5AB2C5B B>;L:> 2 ?>A;54>20B5;L=>< 2845, 8 55 A2>9AB20 B0:>2K, GB> >=0 <>65B 1KBL @0A?0@0;;5;5=0 8 1;>:8 @0745;O5<KE 40==KE =5@53C;O@=K. PP x  (%zCluster OpenMP* 8 8=AB@C<5=BK, ?>445@6820NI85 F8:; @07@01>B:8>>(.><?>=5=BK Cluster OpenMP* OpenMP* 181;8>B5:0 DSM 181;8>B5:0 ><?8;OB>@K: Intel Fortran and C/C++ compilers ?F8O -cluster_openmp =AB@C<5=BK >B;04:8 Intel Trace Collector and Analyzer Intel Thread Profiler Intel Thread Checker "0Q"0Q    $U $OpenMP* 181;8>B5:0 V 50;870F8O OpenMP* 2.0 >445@68205B @0AH8@5=85 task queue >445@68205B <0?8@>20=85 D09;>2: R/W 4;O @0745;O5<>9 ?0<OB8 Read-only 4;O private ?0<OB8 =0 :064>< C7;5 :;0AB5@0&[Q[Q      DSM 181;8>B5:0 H078@C5BAO =0 A8AB5<5 TreadMarks* Lazy release consistency =>3>?>B>G=>5 2K?>;=5=85 =0 :064>< C7;5 :;0AB5@0 3@0=8G5=8O: 64K ?>B>:>2 256 GBytes @0745;O5<>9 ?0<OB8 `"J +"J + 0 &!  5Intel Thread Checker, Thread Profiler, Cluster Tools.6("0(0BIntel Thread Checker ><>305B >?@545;8BL, :0:85 40==K5 2 OpenMP* ?@>3@0<<5 4>;6=K 1KBL >1JO2;5=K sharable 1=0@C68205B >H81:8 =5A8=E@>=87>20==>3> 4>ABC?0 (data-race) 8 1;>:8@>2:8 (dead-lock) Intel Thread Profiler ><>305B 0=0;878@>20BL MDD5:B82=>ABL A8=E@>=870F88 8 A>>B=>A8BL ?@>1;5<K <56?>B>G=KE 2708<>459AB289 A 8AE>4=K< :>4>< Trace Collector and Analyzer 87C0;870F8O >1<5=>2 A>>1I5=8O<8 <564C C7;0<8 2> 2@5<5=8PPPuPP9PLVu9  $  /  I  84&r>8A: @0745;O5<KE 40==KE ?@8 ?><>I8 Intel Thread Checker.:)("($ KDD_OPTIONS=cluster_openmp,mem=4!! ( F@>872>48B5;L=>ABL Cluster OpenMP* $$()  0:;NG5=85 Cluster OpenMP* ?@54;0305B 381:CN A8AB5<C @0A?@545;5==>3> ?@>3@0<<8@>20=8O, 040?B82=CN : 87<5=5=8N E0@0:B5@8AB8:8 2KG8A;8B5;L=KE @5AC@A>2 Cluster OpenMP* 8<55B E>@>HCN ?@>872>48B5;L=>ABL 8 <0AHB018@C5<>ABL 4;O RMS :;0AA0 7040G (recognition, mining, and synthesis) Intel Threading Tools 8 Intel Cluster Tools ?>445@6820NB F8:; @07@01>B:8 ?@>3@0<< 4;O Cluster OpenMP*pZpy8"*/./123c  0` 3` ff>>\fg` J*T333` QYmx~3ft` \ғhEy`` cb^DDf`Y˵W` sg7xGr` K%ޯd{mG/` 33f>?" dd@,?nFd@    @ `  n?" dd@   @@``PR    @ ` `<p>> `P(  ` ` 6< #" `b `  >*  ` 6 #" `` `  @* xT ~ ` "~\ { ` "{ ` c BB CDEFd @ bb   H   T W6Vw}\gFQ6<1++11 1L b6xQrq 6\}N   - c    0 A Q g     S    6N KawF bFy0 a*ly7lE;uz  B | a F 0 ! 1 < B < & l L 0  @`"T  ` c |BC+DEFyd @ ==gL6cI}\eA& w6m!W<! &<W!r6W}F6\}>68QNlX^XH8+Sgg|@`"Jo 5 J `  B! CDEF @ ))\*l{FDNF W% W ! !   ! 6X L b x_ /aF6b}SA$|l\\TX@`s"*  T  u4  ` B C%DEF ss&QW}k6D Q r 8 N c t y y ;t Qi gS }8     T   :0\-Q4*%%v*o(V}5q;  S   < s } l \ g} \, L ;n &  Z}\[6 }WF<! e C }h m W ]  ,t B RxkqA,Rg@`" {b  `  BCDEFy @ ,,Lh6\}mWG &a*zCxsh-&jG]~5g6&LLZ\@`s"*   u(   `  BCDE|Fy @ __@% M|f4@{ f0`lA}L\A+h MB6ww FJl{ 0V|{J  *5KlGn a*:Pf\|6 /6Kbf|F kP}5x}VvaP@@@`s"*   =>   ` c BlCrDEF"d@ rlrl@`"~  ` 6 " `}  T Click to edit Master title style! ! ` 6 #" ``   @* $ ` 0 " `  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     SB ` s *޽h ? 3___PPT10i. u%.+D=' `= @B +  Streamb  0 yqd(  dxT ~ d "~\ { d "{ d c BB CDEFd @ bb   H   T W6Vw}\gFQ6<1++11 1L b6xQrq 6\}N   - c    0 A Q g     S    6N KawF bFy0 a*ly7lE;uz  B | a F 0 ! 1 < B < & l L 0  @`"T  d c |BC+DEFyd @ ==gL6cI}\eA& w6m!W<! &<W!r6W}F6\}>68QNlX^XH8+Sgg|@`"Jo 5 J d  B! CDEF @ ))\*l{FDNF W% W ! !   ! 6X L b x_ /aF6b}SA$|l\\TX@`s"*  T  u4 d B C%DEF ss&QW}k6D Q r 8 N c t y y ;t Qi gS }8     T   :0\-Q4*%%v*o(V}5q;  S   < s } l \ g} \, L ;n &  Z}\[6 }WF<! e C }h m W ]  ,t B RxkqA,Rg@`" {b d  BCDEFy @ ,,Lh6\}mWG &a*zCxsh-&jG]~5g6&LLZ\@`s"*   u(   d  BCDE|Fy @ __@% M|f4@{ f0`lA}L\A+h MB6ww FJl{ 0V|{J  *5KlGn a*:Pf\|6 /6Kbf|F kP}5x}VvaP@@@`s"*   =>   d c BlCrDEF"d@ rlrl@`"~  d <8u "F   T Click to edit Master title style! !  d 0\ " `    W#Click to edit Master subtitle style$ $  d 6 #" `` `  >*  d 6 #" `b   @*  d 6 #" `d `  @* B d s *޽h ? 3___PPT10i. u%.+D=' `= @B + 0 (    0Э P   " T*   0$    " V* d  c $ ?  "  0̶  0 " RClick to edit Master text styles Second level Third level Fourth level Fifth level!    S  6di _P  " T*   6؋i _   V* H  0޽h ? 3380___PPT10.0 iuZ 0  G(  x  c $ dF   r  S  dp `     <DV Q!Copyright 2004 Intel Corporation"" P  Z ?"6@ NNN?N7 N* Third party trademarks and names are the property of their respective owner.O0(2O H  0޽h ? 33___PPT10i.`-J+D=' `= @B +$  0 p$(  r  S Q ` `}   r  S HU` `  H  0޽h ? 380___PPT10.- ([. 0 (    Tqgֳgֳ ? f2'B> B0:>5 Cluster OpenMP*    T_gֳgֳ ? t 0AH8@5=85 OpenMP* 4;O 70?CA:0 ?@>3@0<< =0 :;0AB5@5 0@0483<0 ?@>3@0<<8@>20=8O 4;O @0A?@545;5==KE 2KG8A;5=89, ?@8 :>B>@>9 @07@01>B:0 ?@>8AE>48B ?@>I5, G5< =0 MPI 1<5= 40==K<8 ?@>8AE>48B =5O2=> ?> ?@>B>:>;C Lazy Release Consistency 5 ;N1K5 ?@>3@0<<=K5 A8AB5<K <>3CB 1KBL MDD5:B82=> @50;87>20=K 4;O Cluster OpenMP*     j -D P  ZA ?"6@ NNN?N7 N* Third party trademarks and names are the property of their respective owner.O0(2O H  0޽h ? 380___PPT10.PI4!  0   <<4 (  r  S i ` `}  i r  S |Si` `  i 8 G  ;P `  0r? G)`  0r?t G )`  0r?G)xB  Hp?p'(xB  Hp?1xB   H8c?1xB   H8c?<1=xB   H8c?{1|~B  Np?&~B  N8c?&~B  N8c?(<~B  N8c?({~B  Np?5'~B  N8c?5'~B  N8c?3';~B  N8c?3'zxB  Hp?'t (xB  H8c?9  xB  H8c?9  xB  H8c?9 < =xB  H8c?9 { |~B  N8c?v 4 &~B  N8c?v 4 &~B  N8c?x (5 <~B  N8c?x (5 {~B  N8c? x '~B  N8c? x '~B  N8c? 'w ;~B  N8c? 'w zxB ! Hp?{ ' (xB " Hp?=xB # H8c?=xB $ H8c?<==xB % H8c?{=|~B & Np? &~B ' N8c? &~B ( N8c? (<~B ) N8c? ({~B * Np?@'~B + N8c?@'~B , N8c??';~B - N8c??'zxB . Hp?9  xB / H8c?9  ~B 0 Np?v 4 &~B 1 N8c?x (5 ~B 2 Np? x '~B 3 N8c? 'w xB 4 Hp?'( 5 N2gֳgֳ?f|  (0@0;;5;L=K5 @538>=K 0(2rB 6 B1?p*TrB 7 B1?*rB 8 B1?j *k M 9 Ngֳgֳ?`z vMaster ?>B>: 0(2 rB : B1?@2 < 0/  `` !B0=40@B >?@545;O5B ?@30<K :><?8;OB>@0 4;O 7040=8O ?0@0;;5;L=KE @538>=>2 (work-sharing) 8 A8=E@>=870F88 (synchronization) v0 H  0޽h ? 380___PPT10.. 0  0 ?0(  x  c $4`` ` ` x  c $`3` ` `}  ` H  0޽h ? 380___PPT10..   0 `X(  x  c $h^1` ` 9 x  c $f9 ` `}  9   T9?"6@ NNN?N0 2 ;>10;L=> 2848<>5 87<5=5=85 ?5@5<5==>9  4>;6=> ?@>87>9B8 =5 @0=LH5 1: 8 =5 ?>765 2:U U UH  0޽h ? 380___PPT10..   0 PTA(  Tr T S 8I ` `}   r T S 4h` `   T <iV Q!Copyright 2004 Intel Corporation"" P T Z ?"6@ NNN?N7 N* Third party trademarks and names are the property of their respective owner.O0(2O H T 0޽h ? 33___PPT10i.3DO+D=' `= @B +\2  0 0L~(  Lr L S Ɲ ` `}    L S `ǝ` 0 <$D 0   L <ȝV Q!Copyright 2004 Intel Corporation"" P L Z͝ ?"6@ NNN?N7 N* Third party trademarks and names are the property of their respective owner.O0(2O  L B?"6@ NNN?N@pP L B?"6@ NNN?NPB  L BD?"0@NNN?NPB  L BD?"0@NNN?NPB  L BD?"0@NNN?N0@0B  L 6D?"0@NNN?Np L  0e0e    B0CPDE@F  A@  5% 8c8c     ?A)BCD|E||T @`x8Ph  p8H0P @     # "0e@       @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abP L  0e0e    BpCDE@F  A@  5% 8c8c     ?A)BCD|E|| 8@P`h` P(Px@p @     # "0e@       @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab L 0pm `  `,$@ 0 @8<5=5=85: 0:;04K209B5 2 48709= ?@>3@0<<K: KA>:CN AB5?5=L ?0@0;;5;87<0 (computation vs synch) KA>:CN AB5?5=L ;>:0;L=>AB8 40==KE >A?>;L7C9B5AL A2>9AB20<8 OpenMP* -:2820;5=B=>ABL ?>A;54>20B5;L=>9 ?@>3@0<<K 8 ?0@0;;5;L=>9 ?@>3@0<<K !;>6=>ABL ?@>3@0<<=>9 <>45;L <>65B C25;8G820BLAO ?>AB5?5==> 157 A5@L57=KE 87<5=5=89 2 ?@>3@0<<5  P!PWP"PPPP !W"     "D_ L <9 ?"6@ NNN?N@p XMPI*( 2  L <`9 ?"6@ NNN?N` cCluster OpenMP*( 2H L 0޽h ? 33___PPT10.lw+BD' `= @B D}' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L K%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*LKv%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*Lv%(DL' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L -%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L-a%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*La%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*L%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*LK%(+ 0 @Z(  (  Z0xgֳgֳ ? A Z!@02=5=85 Cluster OpenMP* A 4@C38<8 A8AB5<0<8( F ` p  0pB   `_ж_жD?"``pB   `_ж_жD?"`p p0  3 r~_ж_ж ?"`   *0B@0BK =0 @07@01>B:C0    3 r_ж_ж ?" f >@>3>"0    3 rP_ж_ж ?" `"p f 5H52>"0 *   3 rԉ_ж_ж ?"  z$@>872>48B5;L=>ABL0    3 r0_ж_ж ?"T'; f 87:0O"0    3 r_ж_ж ?"T; hKA>:0O"0    f썝_ж_жGHK?" p@ JCluster OpenMP 0    f_ж_жGH_4?"p P  oMPI*, Socket pgming0    3 rW#_ж_ж?"o  l450;L=>$ 0    S ~|_ж_жGHJ?"$  ^$EJB*, SOAP*, ASP.NET*, CORBA*, DCOM*%0 %  <,V Q!Copyright 2004 Intel Corporation"" P  Z ?"6@ NNN?N7 N* Third party trademarks and names are the property of their respective owner.O0(2O H  0޽h ??0 33___PPT10i.V`+D=' `= @B +  0 7/p(  p  p BX ?0F V@>872>48B5;L=>ABL Cluster OpenMP* ?@>3@0<<( ^ p 0  0  082=>5 ?@8<5=5=85 Cluster OpenMP A:>@55 2A53> 40AB ?;>ECN ?@>872>48B5;L=>ABL 0B@0BK =0 ?>;CG5=85 E>@>H59 ?@>872>48B5;L=>AB8 A>?>AB028<K A 70B@0B0<8 =0 ?@>3@0<<8@>20=85 A MPI*, => ?@>F5AA C;CGH5=8O ?@>872>48B5;L=>AB8 ?@>I5, B0: :0: <>65B 1KBL ?>AB5?5==K< 0718209B5 @0745;O5<K5 40==K5 =0 =57028A8<K5 1;>:8 A5 >A=>2=K5 2KG8A;5=8O ?@>872>48B5 A private 40==K<8 8=8<878@C9B5 A8=E@>=870F8N.ZZ+^M2& p < &R Q!Copyright 2004 Intel Corporation"" P p Z ?"6@ NNN?N7 N* Third party trademarks and names are the property of their respective owner.O0(2O H p 0޽h ? 3___PPT10i.`2+D=' `= @B +  0 -(  r  S ># ` `}  # r  S h?#`m ` #   <pV Q!Copyright 2004 Intel Corporation"" P  ZA# ?"6@ NNN?N7 N* Third party trademarks and names are the property of their respective owner.O0(2O   BG#VPP r: Intel ,  Thread Checker , and  Thread Profiler are registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries.0 H  0޽h ? 33___PPT10i.`t]+D=' `= @B +  0 $A(  $r $ S k# ` `}  # r $ S k#` ` #  $ <dq#V Q!Copyright 2004 Intel Corporation"" P $ Z0n# ?"6@ NNN?N7 N* Third party trademarks and names are the property of their respective owner.O0(2O H $ 0޽h ? 33___PPT10i.@]O+D=' `= @B +  0  A(   r  S p]# ` `}  # r  S H^#` ` #   <C#V Q!Copyright 2004 Intel Corporation"" P  ZLb# ?"6@ NNN?N7 N* Third party trademarks and names are the property of their respective owner.O0(2O H  0޽h ? 33___PPT10i.@dz-+D=' `= @B +d 0 `d(     T#gֳgֳ ? :>45;L ?0<OB8 Cluster OpenMP*(  T*gֳgֳ ?  h 0745;O5<K5 (sharable) 40==K5 @0A?>;030NBAO 2 A?5F80;L=>9 ?0<OB8, :>B>@>9 C?@02;O5B Distributed Virtual Shared Memory (DVSM) >445@68205BAO A;010O :>=A8AB5=B=>ABL ?0<OB8 (weak consistency) 2 A>>B25BAB288 A <>45;LN ?0<OB8 OpenMP* 7<5=5=8O @0745;O5<KE 40==KE A;820NBAO 2 B>G:0E A8=E@>=870F88 (flush >?5@0F88) (4U4  6)  ? H  0޽h ? 380___PPT10..0= 0  @ #(     ` *gֳgֳ ?AC 5!Distributed Virtual Shared MemoryR  s *   <*GHKe    F0 RB  s *DpRB  s *Dp@RB  s *D RB  s *D RB  s *D RB  s *D` @  <*80 E shared data 0   <*,  PMulti-threaded program0 l 0   #0  ,$D 0T `   # `  Z  s *̙`  Z  s *̙`` 0 Z  s *̙ ` P Z  s *̙`    B*0   >DVSM0z p0  p0,$D 0N P   P   <!* P  @Node 00  <%*` 0 P  @Node 10  <h)* PP  BNode n-1 0   <-* P  @Node n0  <0*  q  ;...0`2  B4*Ԕpp0 MNetwork or Switch 0ZB  s *DԔ P ZB  s *DԔP @ZB  B s *DԔ P ZB !B s *DԔP  " <8:*&R Q!Copyright 2004 Intel Corporation"" H  0޽h ? 3___PPT10. lc{+tHD~' `= @B D9' = @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<*#%(+L 0 `(     ` ^*gֳgֳ ?AC l(@8=F8? @01>BK DVSM (F p0  p0N P   P   <`* P  @Node 00  <d*` 0 P  @Node 10   <h* PP  BNode n-1 0    <e* P  @Node n0   <\o*  q  ;...0`2   B,s*Ԕpp0 MNetwork or Switch 0ZB   s *DԔ P ZB  s *DԔP @ZB B s *DԔ P ZB B s *DԔP   <pw*0 OShared data A,B,C,D,E0  <{*  :Load A Store B Barrier Load & >0ff  <*0 OShared data A,B,C,D,E0  <~*  :Load A Store E Barrier Load & >0ff  <*0 P OShared data A,B,C,D,E0  <* P  :Load A Store D Barrier Load & >0ff  <*0`0  OShared data A,B,C,D,E0  <*`0  yLoad A Store C Barrier Load ...> 0f f*  B8Q*B ,$ 0 .Seg faults  fetch data 0f  B̢* ,$ 0 sExch Wr Notices0$ *  B* ,$ 0 .Seg faults  fetch data 0f  <d*&R Q!Copyright 2004 Intel Corporation"" P  Z* ?"6@ NNN?N7 N* Third party trademarks and names are the property of their respective owner.O0(2O H  0޽h ? 3___PPT10. qg+f7D' `= @B D' = @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<*%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(++0+0 ++0+0 ++0+0 +* 0 D<.0(     `8*gֳgֳ ?`0 ,Lazy Release ConsistencyLB  c $D}` ` sF    |<  <* @ ;A0  <T*  ;C0   <* @ ;B0LB  c $D}0 0 LB  c $D}  <* >Node 00   <* p  >Node 10   <8* p >Node 20 sF    J   <* @ ;A0  <d*  ;C0  <@* @ ;B0sF    J   <* @ ;A0  <*  ;C0  < * @ ;B0z    ,$D 0   6*f  +Write A[1] Twin A Write C[1] Twin C BarrierV,0 f f  <*V  }Write B[2] Twin B BarrierF0 f  </V  +Write A[2] Twin A Write B[1] Twin B BarrierV,0 f fIz ` l    ,$D 0ZB B s *D  ZB B s *D  ZB  s *D@@ p ZB  s *Df@     <8 /@`   MWrite notices(1B) 0f ! <P/ /  PWrite notices(2A,2B) 0f " </@ bp  YWrite notices(0A,2A,1B,2B,0C) 0f # <t/J l  YWrite notices(0A,2A,1B,2B,0C) 0f $ <x/  ,$ 0 \Read A[1] Page Fault,0  fLz P ` %  9,$D 0ZB &B s *Df@ pZB ' s *Df@ @ ( < /P yp KDiff request(A) 0f ) <%/ @ KDiff request(A) 0fZB * s *DfZB +B s *Df` , <)/p0 ^Diffs(A) 0 f - <./ppe0 ^Diffs(A) 0 f . <3/ V ,$ 0 D Re-read A[1] 0 LB / c $D} 0 <-/&R Q!Copyright 2004 Intel Corporation"" H  0޽h ? 3  ___PPT10 . Pq+DL ' `= @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<*%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*$%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*.%(+p+0+$0 ++0+.0 +,  0 C;,(  ,r , S # ` `}  # r , S #` ` #  , <#V Q!Copyright 2004 Intel Corporation""  , BL# p8 Intel ,  Thread Checker and  Thread Profiler are registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries.0 H , 0޽h ? 33___PPT10i.$q+D=' `= @B +z  0 !(  x  c $dm ` `}  m x  c $` ` m   <mV Q!Copyright 2004 Intel Corporation""   B m p8 Intel ,  Thread Checker and  Thread Profiler are registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries.0 :  3 A `kH  0޽h ? 33___PPT10i.$q+D=' `= @B +`y 0 wxoxuxx(  z  T\d/gֳgֳ ? !B0B8AB8:0 87<5=5=8O 8AE>4=KE :>4>2 ?@8 ?>@B8@>20=88 4;O Cluster OpenMP*II$.( Mv 74 x #"RFff  Bo/ ?44 R  @`  B(q/ ?44 R  @`  B/ ? 4 R  @`   B܈/ ?  4 R  @`   B/ ?X  4 R  @`   BT/ ?(X 4 R  @`   BH/ ?(4 R  @`   B6___PPT9 F78((" "  B(/ ?/4F>6___PPT9 F12((" "  B/ ? /F>6___PPT9 H2200((" "  B/ ? / F>6___PPT9 F25((" "  B/ ?X / F>6___PPT9 IFortran& " "   B/ ?(/X F>6___PPT9 EQCD& " "  B/ ?/(F>6___PPT9 M 310.wupwise& "  "  BD/ ?4p /F>6___PPT9 F24((" "   B/ ?p 4/F>6___PPT9 E1((" "  B/ ? p /F>6___PPT9 G400((" "   B/ ? p /F>6___PPT9 E1((" "  B/ ?X p  /F>6___PPT9 IFortran& " "  B/ ?(p X /F>6___PPT9 PShallow water & " "  Bp/ ?p (/F>6___PPT9 J312.swim& "  "   B@/ ?4 p F>6___PPT9 E3((" "   Bt/ ? 4p F>6___PPT9 E1((" "  B/ ?  p F>6___PPT9 G500((" "   B/ ? p F>6___PPT9 E1((" "  B/ ?X  p F>6___PPT9 IFortran& " "   Bp/ ?( X p F>6___PPT9 RMultigrid solver& " " ! B/ ? (p F>6___PPT9 K 314.mgrid& "  " " Bt/ ?4  F>6___PPT9 F44((" "  # B/ ? 4 F>6___PPT9 E1((" " $ B/ ?   F>6___PPT9 H1500((" "  % B0 ?  F>6___PPT9 E1((" "  & B0 ?X  F>6___PPT9 CC& " "@ ' Bd0 ?( X F>6___PPT9 xEarthquake modelling& " "  ( B$ 0 ? ( F>6___PPT9 L 320.equake& "  " ) Bl0 ?43  F>6___PPT9 F74((" "  * B0 ?3 4 F>6___PPT9 E8((" " + B0 ? 3  F>6___PPT9 I15300((" " , B0 ? 3  F>6___PPT9 F39((" " - B0 ?X 3  F>6___PPT9 IFortran& " " . B!0 ?(3 X F>6___PPT9 PFluid dynamics& " " / B 0 ?3 ( F>6___PPT9 L 318.galgel& "  "  0 B)0 ?4t 3 F>6___PPT9 E2((" "  1 B,-0 ?t 43 F>6___PPT9 E1((" " 2 B'0 ? t 3 F>6___PPT9 H1500((" "  3 BT40 ? t 3 F>6___PPT9 E1((" " 4 BH80 ?X t  3 F>6___PPT9 IFortran& " " 5 B030 ?(t X 3 F>6___PPT9 SGenetic algorithm& " " 6 B?0 ?t (3 F>6___PPT9 L 326.gafort& "  "  7 B >0 ?4 t F>6___PPT9 E0((" "  8 BF0 ? 4t F>6___PPT9 E0((" " 9 B0K0 ?  t F>6___PPT9 I60000((" " : B`I0 ? t F>6___PPT9 G101((" " ; BtR0 ?X  t F>6___PPT9 IFortran& " " < BP0 ?( X t F>6___PPT9 RCrash simulation& " " = BY0 ? (t F>6___PPT9 K 328.fma3d& "  " > B]0 ?4 F>6___PPT9 G138((" "  ? Ba0 ?4 F>6___PPT9 E1((" " @ B`0 ?  F>6___PPT9 H1300((" "  A Bh0 ?   F>6___PPT9 E1((" "  B B4m0 ?X  F>6___PPT9 CC& " " C Bdk0 ?(X F>6___PPT9 SImage recognition& " " D Bt0 ?( F>6___PPT9 I330.art& " " E B s0 ?47F>6___PPT9 G101((" "  F Bd|0 ?74F>6___PPT9 E1((" " G B40 ? 7F>6___PPT9 H7500((" "  H B0 ? 7 F>6___PPT9 E1((" " I Bԇ0 ?X 7 F>6___PPT9 IFortran& " " J B0 ?(7X F>6___PPT9 O Air pollution& " " K B0 ?7(F>6___PPT9 K 324.apsi & "  "  L B0 ?4x7F>6___PPT9 E0((" "  M Bt0 ?x47F>6___PPT9 E0((" " N B0 ? x7F>6___PPT9 H4000((" " O B0 ? x 7F>6___PPT9 F20((" " P BT0 ?X x 7F>6___PPT9 IFortran& " " Q B$0 ?(xX 7F>6___PPT9 PFluid dynamics& " " R B0 ?x(7F>6___PPT9 K 316.applu& "  " S B<0 ?4xF>6___PPT9 F29((" "  T Bl0 ?4xF>6___PPT9 E5((" " U BD0 ? xF>6___PPT9 I13500((" " V B0 ?  xF>6___PPT9 F31((" "  W B0 ?X  xF>6___PPT9 DC & " " X B0 ?(X xF>6___PPT9 SChemistry/Biology& " " Y B,0 ?(xF>6___PPT9 J332.ammp& "  " Z B0 ?4F>6___PPT9 F36((" " [ B|0 ?4F>6___PPT9 F12((" " \ B0 ? F>6___PPT9 I35100((" " ] B0 ?  F>6___PPT9 G145((" "  ^ B0 ?X  F>6___PPT9 EC++& " " _ B0 ?(X F>6___PPT9 JGraphics& "  " ` B00 ?(F>6___PPT9 N AMR renderer& "  " a B0 ?4; T  @` b B0 ?;4 T  @` c B0 ? ; T  @` d B2 ? ;  T  @` e B 2 ?X ;  T  @` f B|2 ?(;X  T  @` g B 2 ?;( T  @` h B2 ?4|;F>6___PPT9 ILines((" " i B&2 ?|4;F>6___PPT9 IFiles((" " j B*2 ? |;F>6___PPT9 ILines((" " k B()2 ? | ;F>6___PPT9 IFiles((" " l Bl22 ?X | ;F>6___PPT9 JLanguage& "  " m B02 ?(|X ;F>6___PPT9 RApplication area& " " n B92 ?|(;F>6___PPT9 FCode& " " o B\=2 ?7|F>6___PPT9 LModified( ("  " p B8A2 ? 7|F>6___PPT9 WUnmodified (OpenMP)((" " q BL2 ?X 7 | T  @` r B|U2 ?(7X | T  @` s B|^2 ?7(| T  @`NB t S  77NB u S  44NB v S  74NB w S  74H  0޽h ? 3___PPT10i..@+D=' `= @B +  0 ' 4(  4r 4 S l52 ` `}  2  40 ZA  ?AA ?`0   2 4 <d-2V Q!Copyright 2004 Intel Corporation""  4 BP+2F   Itanium is a registered trademark of Intel Corporation or its subsidiaries in the United States or other countries.v0v H 4 0޽h ? 33___PPT10i.0y+D=' `= @B + 0 y@(    T2gֳgֳ ? /Rendering code on 128 nodes  T2gֳgֳ ?p  NIPF scaling speedup 479 rows.    `gֳgֳA ? ?0|   <<#W 4045=85 ?@>872>48B5;L=>AB8 4;O 64 ?>B>:>2, 2>7<>6=>, >1CA;>2;5=> =54>AB0B>G=K< @07<5@>< 7040G8 (a0_  (=H  0޽h ? 380___PPT10..   0 <(  <r < S D ` `}   r < S ` `   < <ؿV Q!Copyright 2004 Intel Corporation""  < B    Itanium is a registered trademark of Intel Corporation or its subsidiaries in the United States or other countries.v0v H < 0޽h ? 33___PPT10i.։+D=' `= @B +0+# 0 **@*(  X  C    /)  S / 0  / B)'2.1 The OpenMP execution model An OpenMP program executes according to a fork-join model. This means that an OpenMP program begins execution as a single thread, called the master thread, and when a parallel directive is encountered by that thread, execution forks and a region of code is executed in parallel by a team of threads. When the parallel region is finished, the threads in that team join again at an implicit barrier, and the master thread is the only thread that continues execution. This fork-join structure continues in a nested way, if necessary. If a parallel region is currently active and any thread in the team that is executing the parallel region encounters another parallel directive, execution forks again, another team of threads is formed, and those threads execute the new parallel region, then join at its end. OpenMP provides a menu of synchronization constructs: critical sections for mutual exclusion, barriers to hold threads until all in a given team have arrived, atomic constructs to confer atomicity on individual operations, reduction operations, and a way of ordering code sections within a parallel loop. These synchronization operations make it possible to implement most of the desired forms of cooperation between threads. 2.2. The OpenMP Memory Model OpenMP provides a memory for storing variables that is shared by all threads. Each thread reads and writes the shared memory directly, but the memory consistency is relaxed because writes to memory are allowed to overlap other computation. Likewise, under certain circumstances, reads from memory are allowed to be satisfied from a local copy of memory, called the thread s temporary view. Each thread can also create thread-private variables that may not be accessed by any other thread. Every variable used in a parallel region has an original variable by the same name outside the parallel region. A reference inside the parallel construct to a variable, determined to be shared by the parallel directive, is a reference to that variable s original variable. A reference inside the parallel construct to a variable, determined to be private by the parallel directive, is a reference to a variable of the same type and size as the original variable that is private to the thread. The relaxed memory consistency of OpenMP is similar to weak ordering [2,3,4] memory consistency, with the OpenMP flush operation serving as a memory synchronization operation. All reads and writes are unordered and may be overlapped with respect to each other (except those that must be ordered due to data dependence relations or the semantics of the base language). A read or write of a variable is ordered with respect to an OpenMP flush operation for that variable, however. 1: A = 1 . . . 2: Flush(A) A write to the shared variable A may complete as soon as point 1, and as late as point 2. The ordering of memory operations with respect to the flush operation must be obeyed by both the compiler and the machine. In Figure 1 above, the compiler is prohibited from reversing the order of the write to A and the flush(A). In the execution of the program fragment in Figure 1, the value written by the assignment statement at point 1 could complete immediately, but it is also allowed for execution to continue before the write completes. The write is not required to be firmly lodged in memory, available to all other threads, until execution reaches point 2. Future memory operations involving A would not be allowed to start until after the flush(A) completes. The fact that OpenMP allows execution to continue while the write to A is still not complete allows the overlap of a memory write with computation (the  &  in Figure 1). Further, if a read of A occurs within the  &  computation, the OpenMP implementation is allowed to satisfy that read out of some cheap local storage, referred to in the OpenMP version 2.5 specification as the thread s  temporary view , without going all the way to memory. The asynchronous writes, along with the ability to do cheap reads in certain circumstances, make it possible to hide memory latency within an OpenMP program. In order to communicate a value from one thread to another in OpenMP, the value must go through the memory, written by the sending thread, and read by the receiving thread. In addition, a flush operation must be executed on both the sending and receiving threads. Operations must be done in exactly the following order: The value is written to a variable in memory by the sending thread The variable is flushed by the sending thread The variable is flushed by the receiving thread The value is read from the variable by the receiving thread. A flush operation for all visible variables is implied at all barriers, all lock operations, and at entry to and exit from all parallel regions, within an OpenMP program. An atomic construct implies a flush operation for the location involved, both before and after the atomic operation. V P\P@P 9`j -"GZ@ Z!H  0޽h ? 3380___PPT10.0 p~Z<+$ 0 **L*(  ^  S    ")  c $D" 0  " B)'2.1 The OpenMP execution model An OpenMP program executes according to a fork-join model. This means that an OpenMP program begins execution as a single thread, called the master thread, and when a parallel directive is encountered by that thread, execution forks and a region of code is executed in parallel by a team of threads. When the parallel region is finished, the threads in that team join again at an implicit barrier, and the master thread is the only thread that continues execution. This fork-join structure continues in a nested way, if necessary. If a parallel region is currently active and any thread in the team that is executing the parallel region encounters another parallel directive, execution forks again, another team of threads is formed, and those threads execute the new parallel region, then join at its end. OpenMP provides a menu of synchronization constructs: critical sections for mutual exclusion, barriers to hold threads until all in a given team have arrived, atomic constructs to confer atomicity on individual operations, reduction operations, and a way of ordering code sections within a parallel loop. These synchronization operations make it possible to implement most of the desired forms of cooperation between threads. 2.2. The OpenMP Memory Model OpenMP provides a memory for storing variables that is shared by all threads. Each thread reads and writes the shared memory directly, but the memory consistency is relaxed because writes to memory are allowed to overlap other computation. Likewise, under certain circumstances, reads from memory are allowed to be satisfied from a local copy of memory, called the thread s temporary view. Each thread can also create thread-private variables that may not be accessed by any other thread. Every variable used in a parallel region has an original variable by the same name outside the parallel region. A reference inside the parallel construct to a variable, determined to be shared by the parallel directive, is a reference to that variable s original variable. A reference inside the parallel construct to a variable, determined to be private by the parallel directive, is a reference to a variable of the same type and size as the original variable that is private to the thread. The relaxed memory consistency of OpenMP is similar to weak ordering [2,3,4] memory consistency, with the OpenMP flush operation serving as a memory synchronization operation. All reads and writes are unordered and may be overlapped with respect to each other (except those that must be ordered due to data dependence relations or the semantics of the base language). A read or write of a variable is ordered with respect to an OpenMP flush operation for that variable, however. 1: A = 1 . . . 2: Flush(A) A write to the shared variable A may complete as soon as point 1, and as late as point 2. The ordering of memory operations with respect to the flush operation must be obeyed by both the compiler and the machine. In Figure 1 above, the compiler is prohibited from reversing the order of the write to A and the flush(A). In the execution of the program fragment in Figure 1, the value written by the assignment statement at point 1 could complete immediately, but it is also allowed for execution to continue before the write completes. The write is not required to be firmly lodged in memory, available to all other threads, until execution reaches point 2. Future memory operations involving A would not be allowed to start until after the flush(A) completes. The fact that OpenMP allows execution to continue while the write to A is still not complete allows the overlap of a memory write with computation (the  &  in Figure 1). Further, if a read of A occurs within the  &  computation, the OpenMP implementation is allowed to satisfy that read out of some cheap local storage, referred to in the OpenMP version 2.5 specification as the thread s  temporary view , without going all the way to memory. The asynchronous writes, along with the ability to do cheap reads in certain circumstances, make it possible to hide memory latency within an OpenMP program. In order to communicate a value from one thread to another in OpenMP, the value must go through the memory, written by the sending thread, and read by the receiving thread. In addition, a flush operation must be executed on both the sending and receiving threads. Operations must be done in exactly the following order: The value is written to a variable in memory by the sending thread The variable is flushed by the sending thread The variable is flushed by the receiving thread The value is read from the variable by the receiving thread. A flush operation for all visible variables is implied at all barriers, all lock operations, and at entry to and exit from all parallel regions, within an OpenMP program. An atomic construct implies a flush operation for the location involved, both before and after the atomic operation. V P\P@P 9`j -"GZ@ Z!H  0޽h ? 3380___PPT10.0 p~Z<+% 0 **L*(  ^  S    1)  c $1 0  1 B)'2.1 The OpenMP execution model An OpenMP program executes according to a fork-join model. This means that an OpenMP program begins execution as a single thread, called the master thread, and when a parallel directive is encountered by that thread, execution forks and a region of code is executed in parallel by a team of threads. When the parallel region is finished, the threads in that team join again at an implicit barrier, and the master thread is the only thread that continues execution. This fork-join structure continues in a nested way, if necessary. If a parallel region is currently active and any thread in the team that is executing the parallel region encounters another parallel directive, execution forks again, another team of threads is formed, and those threads execute the new parallel region, then join at its end. OpenMP provides a menu of synchronization constructs: critical sections for mutual exclusion, barriers to hold threads until all in a given team have arrived, atomic constructs to confer atomicity on individual operations, reduction operations, and a way of ordering code sections within a parallel loop. These synchronization operations make it possible to implement most of the desired forms of cooperation between threads. 2.2. The OpenMP Memory Model OpenMP provides a memory for storing variables that is shared by all threads. Each thread reads and writes the shared memory directly, but the memory consistency is relaxed because writes to memory are allowed to overlap other computation. Likewise, under certain circumstances, reads from memory are allowed to be satisfied from a local copy of memory, called the thread s temporary view. Each thread can also create thread-private variables that may not be accessed by any other thread. Every variable used in a parallel region has an original variable by the same name outside the parallel region. A reference inside the parallel construct to a variable, determined to be shared by the parallel directive, is a reference to that variable s original variable. A reference inside the parallel construct to a variable, determined to be private by the parallel directive, is a reference to a variable of the same type and size as the original variable that is private to the thread. The relaxed memory consistency of OpenMP is similar to weak ordering [2,3,4] memory consistency, with the OpenMP flush operation serving as a memory synchronization operation. All reads and writes are unordered and may be overlapped with respect to each other (except those that must be ordered due to data dependence relations or the semantics of the base language). A read or write of a variable is ordered with respect to an OpenMP flush operation for that variable, however. 1: A = 1 . . . 2: Flush(A) A write to the shared variable A may complete as soon as point 1, and as late as point 2. The ordering of memory operations with respect to the flush operation must be obeyed by both the compiler and the machine. In Figure 1 above, the compiler is prohibited from reversing the order of the write to A and the flush(A). In the execution of the program fragment in Figure 1, the value written by the assignment statement at point 1 could complete immediately, but it is also allowed for execution to continue before the write completes. The write is not required to be firmly lodged in memory, available to all other threads, until execution reaches point 2. Future memory operations involving A would not be allowed to start until after the flush(A) completes. The fact that OpenMP allows execution to continue while the write to A is still not complete allows the overlap of a memory write with computation (the  &  in Figure 1). Further, if a read of A occurs within the  &  computation, the OpenMP implementation is allowed to satisfy that read out of some cheap local storage, referred to in the OpenMP version 2.5 specification as the thread s  temporary view , without going all the way to memory. The asynchronous writes, along with the ability to do cheap reads in certain circumstances, make it possible to hide memory latency within an OpenMP program. In order to communicate a value from one thread to another in OpenMP, the value must go through the memory, written by the sending thread, and read by the receiving thread. In addition, a flush operation must be executed on both the sending and receiving threads. Operations must be done in exactly the following order: The value is written to a variable in memory by the sending thread The variable is flushed by the sending thread The variable is flushed by the receiving thread The value is read from the variable by the receiving thread. A flush operation for all visible variables is implied at all barriers, all lock operations, and at entry to and exit from all parallel regions, within an OpenMP program. An atomic construct implies a flush operation for the location involved, both before and after the atomic operation. V P\P@P 9`j -"GZ@ Z!H  0޽h ? 3380___PPT10.0 p~Z? 0 O(  X  C    :  S 0: 0  : Q!A flush operation for all visible variables is implied at all barriers, all lock operations, and at entry to and exit from all parallel regions, within an OpenMP program. An atomic construct implies a flush operation for the location involved, both before and after the atomic operation.  H  0޽h ? 3380___PPT10.7 м0 0 &(  X  C    :  S w: 0  : (3.2 The DSM mechanism The task of keeping sharable variables consistent across distributed nodes is handled by the Cluster OMP run-time library. Sharable variables are grouped together on certain pages in memory. The basic mechanism relies on protecting memory pages with an mprotect system call. When a particular page is not fully up-to-date, the page is protected against reading and writing. Then, when the program reads from the page, a segmentation fault occurs, and a SIGSEGV is delivered to the Cluster OMP software, which requests updates from all nodes that have modified the page since it was last brought up to date. The updates from each modifying node are applied to the page, the page protection against reading is removed, and the instruction is restarted. This time, the instruction finds the memory accessible, and the read completes successfully. At this point, the page is still protected against writing, so that the Cluster OMP software can trap any modification to the page. When the next write to the page happens, again a segmentation fault occurs and is delivered to Cluster OMP. Since the page is being modified, Cluster OMP first makes a copy of the page (called a  twin ), and then removes all protection from the page. The twin makes it possible to later determine all changes that have been made to the page by noticing the differences between the twin (original pristine copy) and the page at that moment. At the next synchronization operation, the node will receive notice of all the pages that other nodes have modified, causing all of those pages to be protected against reading and writing again. After the twin is made, further reads and writes on the page, prior to the next synchronization, happen without engaging the Cluster OMP software at all. This makes all of these reads and writes extremely cheap compared to the cost of those that cause the page to be brought up to date and cause the twin to be made. So, the higher the ratio of cheap memory accesses to expensive accesses, the better the program will perform. Again, the use of the cheap memory accesses is allowed by the relaxed memory consistency of the OpenMP memory model. The local memory of a node serves as the  temporary view for each thread. "Z  &H  0޽h ? 3380___PPT10. ox=`TŶsw7@\@:J$y`I6d%dcvCY{{yʳbxO îXϞΙwلMgΜ9ΙrxwpavkkٴTAvpk(_Zżg*෉2VWF BX^CZ$=귒M٫+\-e)K7^̦Di$`2fBHR$ )xb_\P  W1a[4~d(_~*u@o9 +{n.i`?c=%KH`ibe2. do6p .\Op.\Bp}Gyc pnJ+7`pC 7 ppn$Q7a eƂs+7xpMdN7Tp;4p7\#W lpsk; |p n!E\eP K1^OVb˨ /Fpǂk n9V|Dp';j",3l Xk ç;iւ;w 9ww.w]Rpw]Zpmw nwMnw [vpw]w}6'=Ap{#඀{TcVpm{Sipπ{s ^v{k^7mp{Np{܇B~? '>}Kp_ .˱o:Uz^}p rоhDƿxpwgzz:vi(zdgr^"r:!PfgڎHڸRsF &[Wgzĕzu|ɏ.ө@Yo[=CR#!0 )RL$]{?̬KXֿ?^r \w2>f8"ePVYǸr pO.rVYYq0VSzOA~#( ͏)׋uu" Qf\Au?oƾx5ù1׉6yM_wkqrVcoTN4ɽX\V6+˩s7|~2ſlmP]>2lI8)w|긃\ܮjd Ѩ@u0U{5دE@} FZ,JZuZdh>Ћ8,-Cв꥞z.k{jaTmt7,kCbO2 'Лcbq(Թަ:[twS hA֕7oݖCBl&q Q&H c ((((((cbL͔)=6SzlL鱙#c7nJݔ)=vSzRzܩO\c9`J+Қ[:LN]؞,c )_QtoIbkz'u7~0r}hbٜw.;R eq<$7Z:\_F5eZoW]vgA6Ga}? K6|(Gx%Gmݗ>㾻>GWFt^aKN:XaߧІox^m{矬>go[-e?[^|~qz;R^6 /&ZEt- />5ŰQkR {߯g8Sq>6U7n=0k]\Tm 3r(<Ó__0lA.(^чEM_fkY }@%e2xG~,@Xjv0Z|XU-fXD擯s!-aApr ClnG&GIE9vlp8T o l8mʂWpE nk' SYٟo> `K8jۋg Y;e#v:1< uxTOOX:2BohM_ߌ1:~_oEb-Kf[8-2=ͳ@di,rto-ƞ}ߓk!^CDZ 9%Ne}ٌ@Z]G1<4bnF;%C —\3`3"|V5Fްë%d $Bcuµ;>}̇ ūްg ײ\vuaup-N~{u$ Łw(u̎Feou2wߧjJiXKW{Cϥ6|JVH8c!GAܘ0DD)lX!U{T|vЋC+$+_3VӉo8wmjɞTVe-Yq4R5-N1[czdg72p{Tyqgg9KKTJ~@(aڀAͩp7ze/olT`&Wcg%&wCoYs,8VJwfabrWm z|~ɵ̍L]˗ڡn l۲/*UXˌ5Hɳ?U>? Y'"p󘱬qtOt*ܷ=8q{@)]_mN%ukwB$MxϿH.pC$ʯ*}¹"j Z^34Pq1ݘRt9N_/bY8at&8r ox >N337'9L@iOz+(*nD?cg˕-yKv(3@m$E\ :nc\HRů1=Q&_^b7`cvnhv&E ł6l"-ڞ|6߿6iv#Gk7EqzI)Xкb=$9pPɚn>j]zwGZo0!xnw p׫~27]mA{}@OmA nb81ћ2 >H^{_ZSӧ.vU/UPTPTZ2:λB6,Q=~bDUNSs6z!Ǿjf?$0.յZ\.TӠzr@0ˀn?į64K4۴5y6}&UA-\2 b(<)A W(1rbG":Pzk ]P]u @y 1|:8bԩj:lbu{QN ƗWNSͪV%P#UeZV236Zj(uX0 !z_j3:B?wf} 0ӏT PV]TuU [u7xԩ=M~22o*h !gGxKYGhqLp貭uo<ԙ ^N@A&{C T~i^2iT<UMP+jzg_jt5@O5X HɛȆ.C9 .bGa  ӵZ] ܵp`?){}Pݦ7׻٩ĕOxѧ-QX:'+.h/`ԊuU )nϲǫ(AذDe_ک^v<'9s6/Y_U]P}C}x%Zln. #ө'='稔:qTi+J}%u% .RVZ9mꄉ>[XS{鸒.C %5R7-R w~t:ծU=CK҈Tx:h/͋]ԩ:R ȕé.Jo@ߋu"tSAմ rz >FA#C:,NZᆦ-c)i7SXE@_̪yHBl0 峪T1PtzAD. K:"ǟC޳>Tmt5 Bth`%pu90H/<). F~xR![ ecDpw|.PBByWźt9(6 S{#@Գs6A)ogZ^5T0ctb@>S = )6W$hW@Yb/?(vUSPPYQ({'@%pՐ˝"_Ux0rOی*fM8BI C O]Y5q֨Vb-< >!{p(WCV/E{hkvx(c1 n'4ҡL!؟J"itpiMbX%sƦdt !|)%M͖q2a{ck7ͳ3φJ4#ndA"Tne*fM^߾\|~8og-TT;)4)4![kfŒK1>?*W1!rHW"x~P*>PF-@]d.[k1EW[ ޔbMVJ(@)6:RlC$E(ns=LjSM:^wcJe MV R2q1_2"xgNbVq65|Uf|`?sU ~[0k]T}|ڔ~7P(ii0Y"$U6|qZ ;S~ cRɎF*R/w84H8_+5n-]i b7A&3FN#Ɍdi4H4$ 6n8  i4-Al&q zSCe 6n8 "(& DoB@fM7T% b3A& lbB! b3A&Cql/ڲym[bӾVƟmćk1`Ѷa E%@[ 9õmFh6-@yjVm@m{6/m Bv m[HݜoH9qnׂ]$m' { }GT ޖڒ$ؖm(t7Cl]ތP Ci[#-G`(m7~6b56%L %½d|N\oc`)Yk}m?lljbs#}SUH>H?e2pciįٝeD{TlUXͲUZ,`-`s,`s-`,`GY[\j Xm-Y<c,`K _6bYЗ8]V+@M!ΦuH GR~yw- S/g l~,V T YEʕkﶏU'bW l$*¾<}]G?Iسv@ 1gS'xMwrM?r?#:)@9vԘW!uL7Sع" ;7v.Nj ? a03´tKN0]?kS|G+GI\9GE{^D%}Kd)O+P?\Y#jK@aNm~OfXS59V&PS=!h0k( ;IqYUS*&`5%3_CIH;PtH%F\= $4nA2H'Z"2!- c;ӹ;1#jEl*Ŷ$PKǶbF_-%El3mb Q~:m bf9FZH":bت"#BL<&PP"l 8JK1"4X\ HWn/F5K (PVz+ao(8|:m|`xžѢw?dYVZVYo;v ة,`k-F3KO:a ˤ)ل{,&<KS[>}}CמwcŻ#{Ke\+es/"<x_tOwRςD[3Y$ yzߜnT;)fa&&Dt獼 >>7v_!qr+)\ʐ8V#PW6 0gW -Ug Jv@ b;NWej8)UCJ !AJא ehHa250H4na40H-L>^WiiC_)qI&Ф%xJY4$LHD$J~k XN=#螨լ(򡡆uDN S!Suu?u?M&½͵Sw6tN:N\;Cx5yg os&n\;tT=NGZZZH";k-ywOY-;ʾY `Aݭ\ @|JD# P!f=B%f=;BBCm 4>m*?AePRs1h/zbpB%O ~r.80`W"F.@g$Ǚy.X׮}g :.Њִb .{7͎%p)p\ȫ}tX4}C,6pBy 4PLcD֛Sv@TGhV=}86FiLS1^~Ek#JbG4?U^9ZcX p(D1vU;K8s%6ڳYPrQ/'W3.E1GsRgNXh~i,>[ZuU֥ժ1Kt*24mw.UbtZ`НSR5h)M$Z%M ZDkk: g12ecY!ɝ1U!l=v91Otl}~ڂeWkod~$VHlô [F"+tw=|yGGhV}ׁlAnEyϟR:l )h6rH6Sj,p-^\,d_ڪ%{Cޑ{&af ,({|bvC*Q-{8ckF%DbޖdQBI--GP~;Q(YGyJ1fFǹdvKfIǹd+{KfJǹdKfKȹdƴ ":M>Sv4 0ocf,NLz~)mgK IR['MZ벷eoReoz=[a~ru 0(=g J?"y'n(Ni޾Wzça/lC9՟1:Z۷C<RNs'OO|8pKV7^Ʊρ`s1Al&q r7tbH@eNz bl3Q(14Dnl7Qֿk#eDar FQ&Q&Q& bmmm F1&1&1&zc H9D9D9V}{ msߺ0$-(] mߺ)8GBз6۔WxSVFu+ oB"/2̅%Fb_e+ }یĆWx1Tx>~$; ub,a7n_Fyv*Sw\qkݦC,aE+ƻaBf8_zzb~g:s5ӧIhwrtXʘ!cβ-LY"}NbD}K #;m=}N0@)#d8Jr4҈7҈ӥ|͗OЧ2x3er"8A/+@/[K^D/ʏ|r/^ ˓qzPwPK|6 Eu2nTndql>#@j1㖺ǙVdg;6vll,3ēTOMvk!#`<PD/a%/an>jAp(#eR5<|}.#$$쉮zk]z$@ȋtoQ%=H֢0W(OU GjW][r똴 u(XFĬтYiąxJa;3u!1(E&vh 5{ =&0b؍c(dJx) Aa,Q0O<~'`{/E  Yخ0g=p/Ü#9{B#۠P5nO~u_֞ YJz~VY;3'@6RAwaQ(n(= s0 >zڕo:65Kdn22s | w[}CCDUgxj@sU_} 2TgISj/Om-PmlAÉ5} DD45%"  PD,ks6O9F渐9 xGp߷[&ׯz>!\(q,s7]~F Z.FջQ+ʉ#VA D|6m}C-:$ߢoG^^o)83&oyH֧mٲ~U6YaNג>66_aԞ%BY4;,o5Ko+uo p:hf[,t&"%J&j?jO+ԞТMa,-Z4{QX4kԼOSG,c<_ e6kI׮J{_X4+kE3~hf{_}iR65E+(7~DYW -^RywR"ߕҰ2f}uK:rl!Nᵾ{6ՑR7g߱漑|)wJFD]>O6mެX`Zt͊efav ?f?( ha1ɡJ9xxxs[f- ޺ޢw-ʘoo6xx {QK|_S4eCޥ uQ/!C(\*|v/&&r0t0Y`gMcXQM_aM;sP xxz zOƣ0A-xøoWA * a\}(la f4pp c/RM1p8R4QR&CXxCŘf?Q@<0Zp3.~p;ց]bp^ ]Z3vG]p7V\o nw+ӻnj }d3x~a}8X 1p8wxܿ4SP3|3e[`σθ|"~QWO;| ?GDamp0 Xg>:G& 3(gч`hZuLFN85o-~#LՁh$%רCžN8Cf2vl l1 zV!ebL=Dīe{L4Ғg+HzUWJ&Il-NT:g=rfXqX0K-8mKzBRYyjrޒ(}>$$"w/Hv܇KɐԷ4ȸ@8*=vR|3F듑#!ad3G.!a}G!!jC"| `y:v1kSup/" ]d<`>޲㙾3_x>aLkN}Kt7VKa3"h,SnXN9BɻƲeuAO7t* Yj'\j R)S) (-X JZ6Ql`xJZ6䶐N <~:qр?}Ǫ'nVw ! vT q/&!aYDlZ>4SdDiWǗF z( vڰyzh ^?)/EBث{oXYI?!~~XuC?tkAb;'9uH2"|M1Y$rRԳ^Gy␆K۔Gy cgJ蟥Gy*o$db^)M:i.;P[P:8eGfegc4btp@fJOw҆J:J>yW촎Ɠdutu{x"P:(}\%_x%>CP|+|%&Pqp/"R#XLoS*I~D)JgJT:\Hqo${Ў$qii":U| xyZayO+\V0x`V\z 'ͧ4N+GVHN+\dl2֬sV2|kS ]m>1K՝ePwβ0ÝZEzHW-!Z$[<SuZK uwZQg@ӊ8ЇzQDz.+$+<(=:P"2(}:P :PBGuv%tuv%ց.ُ:Х]:ElWrtB:1"Ձ&tq@x FӁ*X],Kwih~/e?葲%$?&_-9nn7^}]B­W(=R E=R%ް$$:/箧@K+٨W kW#ŒHndz| fO'<&}<@B*c=KضWOP ρ ּ/I{?ޟn0zL ES x8v>`[WA^A5ToPv'{P#P|V9j iW܁r#{݌E7/J!J&,b=Ut7~(<_0ܒ"JxHi<y*BcOcp:Si{n:8 K~ya {H 3>z( ;wm-!a㙿cP#!a7zGz9tJ|ן.NĽ}Aeto^;ۮpQ^xkN.j^S?i7\;i7*ߤ{= WQ7>zBxƮ)IF"3=@m9*2:'Vs(H#'Ebo{S`ݡH% X+h4]*@##`z'.xPFړc<ɗf8Z$$IJR$VYlJgI]q : ER-ix7:Kw7ER-Ogzt //Ù~NZ$ƾdIH&n{[␿zIH˷>1@'ƧHE2oU8-V#!Q5L]B±ϵwG!![0lݎwr%$us'!@3gCE46'KE2գ^]{T}XpݯߧCu2_BQKU^@* _. DXs&SPuMz6<H|KH)zPYG[GRš$*w J%$)B-';T٫t֦-BS#'4 "Uޣ9o?' D>SL$T.1G!݄ uxx>&1JL$T.1OT?'ގP>GQ1<-œnb!*߿!@@ס>4>xRM$GoH"_'(aǁB 8p=T" %sW7=t`?JEؕ+?8@.$ =xFqznItq48Nl?"bX Wn[4@@U]<2e >99#WLA {T#皟ɫd@8#sQlBEooz|፲Ϗ.P:ፂ +<޻PxTsʐw_e\p$"޴{sOxt93޻Da{Ng?:½uw<;Fݝ)OQw'~ʓ|5F~{4K{'ylBF!$k&1buyf7\##IH8IT'i4%ԘzJISkZǬi5Jq):S=krc#^4ЬIoڛf͓d<iTVd<#䱍%$, $$6q %$?юJHE8RԏG>B'!3GH:gՓ5'//fbƑ,<Q^=,:a8aym݈%t~'x Wvfn}=3/Ea|ɔ($E_{Q3L"6G[k8~}y'E{T'W{o, y&s7<IyKB}$oZBzdB*pn$pʭ*պ澒TXH#Tƭ_HZMH߫N/F vH*ezݭڞZ_U=!y:Ch}-V!4m^#(m^#hm^#m^#o1|NJR3lf3%8#Mf+I}>HR,/!GB* M$!JH}M}%!L=&!IHL&!M'!i0r"i$Q,u u$QG~2nɂRvMoq u46XGj|zhuY8>{oa›S޼Y"z֤">$~ɭ4^IEm"I/xZ7ж+ hݽp?v˫qebτߏE&gMG9)s>ޏ[گ/ dM gUU@#!6}|~ߏڟ>:hAZCZ?C"Zug@3q/$;'(x6$}Qvpd XfK,f>t%sYݬ~LZquԍx?L-5>@k<5zO)/Ļz5i`s3l9'oSknu"0Ed"4$|ɮ!gH mQ:w[]Z.v>2j{j=WktkUYv5*P]K޳]>Vk]>ImtzAu˼Qw_j b&ODZQ穮S)6`x|d< R@/%޻Tj bvd#gJSq:LYOũݐ<ʪ8P,bC?V ?iL8s8]S ȏ{ Y9^<$Cl*1"lQ||?1i˥lQ0[T6Sm_'&@z[/80"Rۚ-J&I\ d'YAdՋe6ɠQ N6\L< CJImG. o|g{ \^ߦ,0 ~NTwf/~7R; ;0c23$DF]m235*= 7}֌3pGs*6~lÖ;NX|[NfxO̶ecoHLDb$&+I$fF2!>#3f.ɦ$rmڋW@ȵ,Xk1KrUn~c&?wt‹{t`ɵmȵq' ƃ213Yrвΐkq s$I\˕n"T-V720MO!$PjBHf-` X,g7&|[Ř0/T8-v6 F%5҅]uF Cт#B *dq#p<-wxfjyd .n􋺝?GK0aFK%'^}=Zx) f d#ob>|}X;O O;"ݜFChd}1kXgL;)Ǻon&o$on 9޶5%6ӌSӅ8ЀW*<˩T#٩T10 Yx7ӓE㩭#ݜA6E0Q7R[$Ԛ,`|JǟvJPLaRSj89SjdzMc<Ԑͭ ))5_ڪ5O!z[Sj*)[ +؀ý$ ܒE4ڿ5+?&?WrI/]!QXՇD*"wAIZˢ;Jjga6 氀[,`$ X,ifq?h:'b̜V_{U7֣_A72mAPm8C,X ֳ/܊_?u v"W|JEuœmu*:} B!G-JtGe>Suq(czc3i&CLBd"*DP~D+ !5'ҸO6Φ/kh$@/-O#`t2=_K>WPI2PIp9̩_KK& ǰW7 S_.>^F{pS2)ԦzaOnd,7͔I Ӊo#$$̋sצ N]B,Z iz$n)ؚ?'C%0ݘ:@7F{|K Iэ1p{GIHc^yYz$xiz$(*i%-;X/ *nV J,[ O$kdٿ94x6' I;X;& ' 3ݤwpF2i4 Ul Z{@xRJ_CM쌩c7&={c쉐S[Sv=:췝:H#6h;mi%Q37~m"cLQDxZ/yxJLta's  ~ a |B`['pVf=: B'|@v*D0IA܉]bR@׮~gM !j&r~6&dI OYrHeY5Ia3*FEC4)N4*WsFE9iTUQQVF_)`5a/rMn \)Ħ`5Q/rMj \)ׄ&S[R|/@^͇ۼ_mPA6٬a6 氀Z,` X, ?Ba(Eu:@B>D8kߑs]gxο=|)N ma|ÑS)F([tSqޓ6Q=Ii@r!MoǥP@PAx *- (EQQnfw'4MkidvfS "ʁHEeu-qTX(>PAQaPH2\JV== Xg#K_|`>F>cdꃬl{PIڴm\J 3%4ުn1r:N/^m)aZKR+3\a[a.brosrj bF\hR\4h<4ٛ M.~#A~7ѷ<·lMfGϽAaTbmβZ}= =׋ =-d4iU{)021iL@}IʇªFbl՞T-"]Hht MWbeվ ; +wHugͷ U&Oz)ip]nUC- 琓E-dHp=I:T烤lذz4 c!e@ؠ,gCD P J>W' =q+OkxHPqP*LD.>|y% 9d=@QZd(_hbצDn ӡv3M8_8_9'hG*}4q LDǔ: C;ޛayFb[_Gs[-8)gf}FNc?yzdqqLfkM7n9C ;|(eOA$?B" xdd2!,,4IF2&#/-Ͽ/ةZCGp9I>JĕQ):LБ%bV)밂Zn}b% X>^}x`T٢9X0{sՇ_O8Er ]5w-\2;ID υopME'eT7IKgĘQ0U;Nu~qQ0m"`L)c^}4Pٵ]LvU2+_)F'x6ӬӑZBwE[䌩>ſ15srY x d|Ȝ*ϕO+tЃ.k՜9Bg"cB:PYtSN{qC%a0\FS&1Ln8sX.3)ÌaחDrmZ~V \wέA$?3 Xt:+Gw[bfPwV% 9/|?gZ.rUgL$b!UzmTZV,X,X/4wm5J;]{ /aU,r00VE9Z0w8$r'-YE͟t(D}DIj|hU˟?iW>ǟ|&oO>;e$ȟU)Z,zeP|\ "=PQ酞ѭ1`T" Pbѭ!&3fL]GIsY3w ?G^'  cF[5ٌngad%~kԓ{qu;d#K|4qw6;K07~2\77wzCb|7ϧByQD:wzǹY HW Ms]sм7/)߻q qb$NN z!Ha$N@,SXԚiUi[k)?䐬IXBpoir ]SMm4'c[YG UXжyG+\_fT #bz7ۈIn# !kdnTLSa !zj5w4E_пDߡ5hۈW J3)6Zg!jzEM6aUM6"&S,~saا@Jƹ\y|J'kVDM }չ/Cc: yUFI.5mt7wXܿ`lm xb0=:L%8+Yy~X۰u5pM%:prH6"\ˬX-60Fw[scI8?@,[pK2hKH=mW )-=t1B9)C!U.M% ݢTPB5!ԀPBk ԂPB *µK8P.@h pZBh!BB@h :@9K2 An 9} p@@wHlf@,̳! 0 B\#{$Qr! a41Ba< y@ an0Lw0G /Fu@7EjjQS: }ŏo<.xt@:{" APoo |㰘*V|_2ruF߽[>;tއvY۩_Ȁ9tDTl9u3]RcMjuTt-jZ Kh >6-\kh؁j*>]v"\x|lH]e-|PXԶ 0cp90{~ͨFbc>>e1C1sST|=2۲%OczP­~•c"m o@wS($FNR?][ĦwWyU wSʒ8[>]sT?xψ9f؞ڀ9!\$KpIiqʜζ(8n9x2CFO&N_IhY#b@!,$N,7gA~f;n։E!#gk~l3D'ɠ.V2Mp]$ P6ў|u U %e fK?I H 7khl{9zBU% ]`yDYcr wZ Ma tla@_t NTey @b'!VGS}]$G6ź.y))#8+ģ BtˎP,&!bHxid`7=5Q,bD.\  kY" )]@UO~H}D~M']XEIP$H*o z"Z~[Kb[{OQ AlM/NO63Z-{;Zb{}x>0i( !2k1"6m1VV0\q3f״ ={ ͖!xFQ D n/IAhH;AhFr MYЕ*\x&6f8lFaQr 4* 7Pe^oB~]lg'٣3, 艸)?Gn,v\ v+#t%{EeJNHym^ɽQ뎻}w3Ҥlgy^דkJQ~v͊/r(g |sGv&_ָ=]2S!) dpKD.ńdʉHhxzwia.ΔH< GOL.3=PiE#eQ jC;G23" Ԏo拠4&q7VAZsA( z Vu9/_Q)995w"Nبq|7_y0n7mܓL#_/^!xsW~+K?0%o%b88cO}4JqՍG~3T *CR{ *#79l+na&Am'xH{R}(g_t{+/#[AK qq %^N!6$ o N@, qq -yyH-Vf vAײс[ҦpžG8\+' ׊uBo\+Z[~NNٺ|+ؐ:|+zu?&[с߾fW89oRdAJϔ^~LqCzzmFM.f[Ѣ:,=w:3؊^p߾|+j'SAz~Yo-q{s۸V4p]]%]ZсJ?;KZч7~P{`+}wͲxϜo*8VmwN~r$}߱׊p&l\+V~ võO'o6kE{Nbadew d1%D'eY_XڳBʘ}Y~AXi@k1nsY-݅'+eeXV6#\Vvee3 (+eeXV6#\Vvee3 (+eeXV6#\Vvee3 (+eeXV6#(,|}ևQȳF +G򗲬t2I x63W%Rn )ʃ _7!+S\Ld@ƤADm\k4ovkaF,tݚ`Sded eS$;%hQ ҰDf."9qLa`6^d.3?bȺg=6%|WW>N~Zo3ڳ%¢Y9yдuxť.Jz?6Vʟ̼dӊ_ '30[Hό*kz'3? ,ߺ3jZѧ3* Zэ,?>o/3^v} /3{d9V'N29#R&Fi#Kkc"-HZ~A#{I#-z2Q}gE+-̥eXZ3}biٌJ>si'*3}biٌJ>si'*3}biٌJ>si'*3}biٌh0lB}9i9ڸ_2Η fH 5a(ΆHyUJ]wĶTZ~@@?šɋTZZ\,{YK"Ҳ\kl!8uJZtݙඓT<CK~҅̓ =@3_'#-#+KFjέvzr|+p7k|냳-ޮiNpNI[/h,j7ƚqyK7^sKž/ޒ47tH[--3|XHzfg-X"='5^[^ɶywKͥ4o^^j>} ynlh-/p60'5HWau^jڏs-}kv|&ɫ4滞w{4ܫ4{ \#m:KW[t,F)FwwEõJZ{KZZ5cና%DDכr)Eeo:_*iDD8((ō`%0ODu ~x!#=`1PM.UqѬdZ`L&&y2sQ+ECƑȫ^--˙7)]zOGwonݢ3|lWssA-fT9m(oX-|nۮ(Gt<3HyaUw߅m EGb7HQIe'mv':k5|ۚui潏CԾFڝٴhןs+![ Y"b%$VB"T@+!1ЌZ fJH̭Dl%4#VBbn%$b+As+![ *[ JhFPVoa< I`}RFq32^Yk|ji7߽*Nhn&RF [@/iCsiӱ;66 h"ƯL8mq참:v@NP=Jພ c-Cj%VEr-Q{]G _c:(s2Z Gd"fS^:'K(B!%VHwݼ/{[Ϯ, =○|ɾQx+88+)ɟBް~^%-ԚxL&l=+[߹K3۟n9.o}{ŭ ;W!aHǻ?`:o6yNV'Qwo/e[ VkR/~,3j|z[|0' |C77,YR(HR!gK싂O}w׾JꜲ#Asz!=M$>b9JyJя(>bhADB(8+ݙ+fA㞯"ݕV 0( +3;WA9Xӏ ωT8w!3Wnl(;!JS61Fƅ;u_jxȦ"`qظIkJjJyl3b.P@ݪyPy Sv/q#]%ỤEBw'/9,a3{djzTC2戤HU.qU EPcDiZeLhtq*/~F( q2~Aʛ-+F=67`48ylDGW-m )HM ؟3h֣>ҹ&l&yFPO a1L=ړ<&DP NiGMwg+?؝O> IV IKaSʒ>wP(Rx|#v+YToə}6`-/K1^aANr{2ٳx[#wJ>.UL 9-N흕oI@ަ=ikff{[Ӎx1m3l~-OM`o[|tg/}}$2L07"'؈\\R9vȉ9k,3ĎYn9`nܽECGLeٝC,+1HAG%fmK:%fRbXYĬƬSH:ws@$f1(7E9 ڸ750>p}6Y_ݾ*w%( 䴗*E+l~ ~}&9ߕ@b3@dys\k2Ep#|~+VF#.9w1P0| :9B06cWzxxF̀71gcSPP'rGr5( z,o zsXw˭QkjdJIsaYGPzGE\Є_Zگ: i5n/-j\D3~]z݆L(6E!s]݂YɃV[,nPK)YU]e /fi ߝD($$IE `6,N `) `.-y0 0QKpO*Dz*/dJxuk"&k ѫ?m%˄R8k'iH%3FWt⯙7i"-marcgH@GJ Y)ew iHY}g5Hqt&>#%i쀴llH4H@l”?H5HN@z_j;,#m%.0l-ɥm~%)9z,CH ˔*ljEQG䗢T*"wX\{J%s=lXLa&++4mIg,4>k$ͽa`3miorm5IFӎӶѴW眂۳,2miOem&56mq JM%J4 1^mS51õu dp~$\|cfsQ>?=R'i;-v/74 aSLu07)Q-Ro4HI$>XJip{tG*Aۭegy)8yhᢵq\.ZPRpk$Okí ݴ6\mx0U#|L 4SBt6 2tL7ȤqLfA*5B"r#3 s~ lvyGlJGx4M9s6'#~uox§;ijddh}d1MFHgDp?n!IoO5ptN_)LP~iCd1zIoY AyħBy$R[Ch59Z%Q2*cpK/V u^3k%ڹ΄$ Gx2&R>HvAŒZ+mq65Ŧ@mg'Ygh/{ Mv/17!$Vu6GV/f&ZL~סo8٥9yvd4*ϕOv+a ۾H c쬣+mvs- [+NMi4i1M)Hɀc1X 8VՀc3 8q8݀c78 8 c1_`1"K9K˭ (DqYdk[Xp\zBmZ8zZ U_Aq9&su57OP8.71J>WGvG,j^!rזp܂ nP>;#h qMw}]i׃k:y+j%<__J]ƠJ[R)a &2X<y)d:g$z)@q(:3fMs`N,^s `n#y'%R i8T&!ѷNeĀlbؐ"8xw ywS͗;|]ĉ%G]G4䗇H$4lh%#mW0b21z澩%B |mzTO"#)>G9w Y"]2@+O<@-h޷G79eзj7gk`3}OJS{AՐ7_IػBJY < $ ۇM> z];v84(vzjvDjqtW2fV-LJihR)13[ aJY| ss\rn~hݜi+!.Onؘ׸in5Y׸ihɢҖBҡM4? J7,ԯc򾗾ی!uw7γdYhrF4JlFk];&ڌ cx|HMkOu{񩵓DN-,vcyk*-yMn.8t$]5-569 klrk,3DYR%ibLb0V5AYкi+#,jSBNY4!)5VY RS)PqBx=4y:'rBR7Tn e!(|Q@X ۽}G>$0=lynHy|µXı#ʨF7%EBk,̡ XO(⩉ cm1G"[,eG!m$1,8,skc PUQT<^808VqiP80Fe3|TEB(p ^>"bQԷ(EE5q6)R{.[J{ZjsR(RY'a|YO8*Zegm;hmPvӘ݄*"m &z$ڠ졠GnQg H-BH^_4HL^I6?HCR%xݷ _u";俓TL`}j~ˍ lN}lRD {8i]I=SnYIHjLI ɇZ%!nZS%{ [N Ƃ?5JI0e$rz0%!&k8n-~}}!7/xv Cպ*/`ݲ@|2=8>eEx M*uTb,d ^,^S8y)^O5 ) NJ@9NJܟ` 5ykɇ+Re/@ϨK~Tc,蔖wa*a~UʠjPfq(,@G 23=Rbphr|<$թ|{ɫA^6K~4HؙiǛ#4H8wyv+A|ZGNHI$쫻[]smΧy$~ wV9փփAla&:p y%M/zhzl^@.!G=-99t~z-%5fۤq%& 4<桥߰w{WV~yb6BnCɬaj&w#Ƴ/PK_ne|ӏk0=lRXS/(=KyJ&L=uP2J'd#H['%Hi<zQx%PK1U {!R-rrKLK`WVc3/hK!d[H{KQBXk#a3&3akX[`=o|}~p-iA"]G4FSQQ¨nRrJ6ڨ 3`nTpiXFhy"=6GkQD#WZ$GJwDr%z+_r%zF&_b0#Fk=BM~;zh+ x$K|Z2ԡ4ëb2m2L"pfjiDͳ6mbMLk6-fB!NiSZNIE>mS,6#6]P(TDzi3 >p;\' &T]$ѳ=b#U!-Pa*00<OKRXVNKb솶@q\fA9,s)+pJL/ii1d oj48$ U];>ZڱGiPjϮf4H=vǾh$T'FqҸWr4Η j`nE}P ,V/ s%HG!A.ꘑTI +hM|cJ)dJk:oxe]$j5$Ssy6 HJUW9zf,OB5+E^!"OUG;N8vD0{llqp`'U.fD4|hۂj(4uKӐ(&FVv2 Y$$7$~/l ;k)NA9o޵s˒ N;kF7(k1 9$ʼby4ɹŎXarCI6Y6 !/>iKi -&~bd?* `U%ui4r,c(+SD(+eM!kU(1oym;g@(HHR[I)V"q vLnb@)HHԜ+vRrQZfN$rfmo2 9$l7wyN^4Pj--DnLA-reH5nATM?˜|tzrs&fO:?urdI1S'Oə1!g ʓ-hvR趪R;I/M4)Pi&@)JP',M &+MOm^9pe#rff@_uuI 2d)OO_jw&6EXjVCy K-)dY0Cュ6bum#u} zXj 5>*w(?QS ?I;!w }G_7AȈ2Zl,EKzB'BʑURТeS΃`'BYQwhSs7GsuxW޺ )CWLjKdX/鏗ey^*L僼s-D;S;*dP n$A寶塡z_Ո[ΨBxRAכ[V.U_v=$+AyYjAy;2Ee,c[pu2v,[3)LR&WL'K[6ûah@@ݚ^_Q\V]!2t0,?]v~Z!ږF[p#f#'Dwڜ.tT*khРk*m9W9 H }|󌚥xQ$Y9gLmhɦ ausJ${Źsue Hv ^wSyCA5R+djauP[wZ7UGTxN޸[> V'V1դuGƠGL[`w;y,|C`7 "pǭZ!XM3k«zZ䄓HTRK}w XXmx$8׆JFZ̃]C/3?їApoٯw{yS?Y"C0.zך2@t~.lɠyXPwS) v $ NT'˷`nNTlƜ,d,%n]);B:%󶠃{<÷ݳax8{6}mh JeGa˽@d(08ZW}5 X-y,6`$yGWXl/Ć{Bp2Qp. R%J-TcXeXff6\;+/!a8$I|+mQy`8@9itק# !%m"oY^DdeW!K-6bmyMJJb̘Z^xkY0f0XXJ `d"*`X%,] Z/Ӷpfx!lovW}vR,5۞і؞Y,>"xAxȉ?~OggMa+}`')r0Ғ8&wF0`"'$`",;^X42d Yn>d !!M7̺?#dPJYGXs}scܗso?y䳍~02VA&'-$3* w"!!vO?;Ql2f;Ɂ9\gϏ9+h^\碤Wx$ spˏUs!!!Yik>&#mϘ 栌8GlY{s> %8ϧ럕'd avo/>+|]KH.Nsdӊ_ɢ ajb7UABBj>S!l#m-PG4G͡܈>9w9wМڂy J-8h·NzƉ<ɢAœoUHOl2RpW8eA#0ͨrjFn/gS%hfMeOG![q0tKr* I>q,$Lŧi-X·s^%Ӥ⣩HT|TC$]l?e l;lK-Қ-K֔ nE1?uؾV*;YdW2rbtmDžmGNjKZa92иΊK#EX(4kJ4*hJlO䡤ZeA;;)vܓX,GjR5qVsi-JjiT"dXK5]Sji'ב ЁwJ}lr>JF_=ґt㦗<* `X VK-qJ38i}XChO_^?zE.7~lJ3?3.`˙~{K )*kbhWSk)|5aWWkzؚ~PCS_,z,qu혛N?\ClH 3K]xݶt\iQK-Z4friFm4j-ښҨ):a9ȘKx=UJ&uXsaOaJg@pׂ9weǹE.kNn+z; ܅iz~gyp|w>:϶nϑ8wUWj蝻&7?&w\NЉK9pž|ЉKW6urS smO6C9q- 9,s'iG'g*^4Ԛ2$ܳƖ馑2pT\ꑈ 27F@#4;A6Y1AS8,NV^DL ԉdd]98z: b_A݌)KĔA (#QBs9TUt !rzD(D̷K)Egѥ] J0WV fѡa~߭hVeBi)ڻک},9YWʺ{}bʩ X*(2Rky4 tu޶۳mͪCCr]T4s/?@qf?s\o0JU@ɬ{dLXT.%i`#Br| a3q^=+3/CsD7w7W3w-A5lr1t'YMR*ӷVE:\\s{ET*lr@4sAN'~=HZ'5֡]?rM[eW =krs\?b`˗Ӄޱ!Eذ~v969uށ!E!Ν&sTE!BG:oxm,cA-kcum^GW- }dl=+q5t5ИQӗ3d15>kLohUܜNtbbWc6ss:*9Ӊ؜nFPܜNt3 hN'Fsz^!}AHPB TP B:?@ j@ !U Bmu ԅPµCh!䧮@h pZBh! GZCh-vC#N:C+nC聆*W mBw Y@w bNAfНS;At DNaFPQS),qVo%TK) ǝw wCx;EI+Bw+Ӗ!*܅x׌mDMNϤTEfc+p6Rn^ ; aIPV2]B9)C!BS !!TPl,!2 \@ k!ԇ@|_1&Bh9!&BZB@YB!tB]!tB=!ژ!^_7A~Ca Anp>@Ȇ00!@a$Qr! a41Ba< &Ba2)v4!afA v zrmPU!ԟ8QguOeUrRM__Kiԫ$ L_Qol]MѠ /<em[  ו%*ɱ(Ij}` 92KRa/U>OI4ꪰ*l Ua5*l ;$o>eFZRSrB,M.l#s>TDTa Efl%5y~-"pE LSr~o/"p4 EU9i !fL7U82tcɢ+*CQ5AZF&KKU8ciI\BgS" PT}"=N>c)~?^DTLi>:C0Fc({FYF٣ho:Q1( U;LGُ`E0ECFQe}e7MQ5ec5oj(4<}Pt}FYxF٥h*Q6rrn3+\ %]['F9fG>?(?/ø[4toh^ѱK02:l`TetCM(CY4ta#fСTw ;XryF=Ymip> 9# E `$x zwP`LP( V ECNPt0B|N EBQ9k+H[aJ E#BQ[:HkaXK E/ "i'K ]4mk- qDCVI6}H*7]:Po jp߅ nvbhJ!*?Q [6hf\G:K3,7=Se5N0#W4%܊S"4e2&%!* 3xES" Qۑ#?ex]x2zD{P?ZF<̈ 1.˼e,u-&Kɓ.@ `@4Œx i}JqYNO-%|Bv2 aFB/Š 6HWw`w&[>_{gm*G[>ʱ/yrC~DkJ"=>ڌ:yJ$ 9O3|t[^8M(x%߱?zwwM<~=߬~}3d˝:?nkrGf͝o7eTΤq9SỘ])wym=Õ6 svK)>NeRښOHul S'7o")&dj,60]LOmStr؅h#CkԈz֯q^uPǏ`]NFڶ\ [Ud(`VU$F*\tuBC!z7!J\_ƌS/*P..u~dól4=9HQ+Agplr{bc2=)td=䜤`D~_Wj̿t79)a\\堲uA.H8oXwcY#Ui_.lB‚Z~7p˵ԚRumj 4SެH Ӟ3iDΰ)5d'֨HQ:Obk7B:zS7:xc9˔}I5ZBk%c&73֚b8.5jn;_úCןM_qy}vd*d}WP<fdb9o=^2:kh Fo']*pe}&8(צh Gb+H'~T?ΞY'?`MԾOAMH4Sc}15nԮoE=&ZicFg R6^ZD`V F-w54Su8ծu1 q 7(aΟUU Y:WT/4 F/:\vw^5ϭsI\\z(T,jjK{:aucU][{15s̯}6vƌq|jc"v:~^C@e E8y|p0 c{U ʳS|DYQ2xcƟX)sEY,/H' kaFf,d.Ih>k|+l_g/`kKC[Z) ihˇ4W}hKC[! 쿡舀ZHG1)V !`mvoyW^ܩ!!|$sHsfsj NgܩsNNΙj+E2%3=`Gi;b3~v}.8=`ㅵw; ;>ZTey*GG$:;_\h+:`gE9v;u?`et\z)pΣkϰM=`gۆ∳p΄{v.Uؙ{i<-;M푊Q*?~؉t;Ô!;oS%;e}GqDzdvN~Ӯ9؉]ySC}Q>i;N<`U9<7v|:|S5@|rW?#;\];`uHn?X=C a #4Rⵏ\wc"R#( GRAg?]#vK}2>Ys®YLd0{&{z$xr݉E K}.GSSwѺK1:Hu&FWgWE+X e _0_vS+N,/JP2kg Yw>IQ()8P[^'RaDɼ#$o6Im,q0 C^+gṪd)mDϜH+ES ύlC^󥠕"J!ZElwb͢syh6~e`cbc73fڳiZx:x0c@G; NEJD'Fؠ8x`l0VIpFhgۼ`E ጖] .»6͠$b4Fxނ]l1Bv1<tO@-C!:B|."Hs#ć!Baq#wBt uCp@Bug.BC:B|0"PPG9V+BhjZ?\8~i>Z-&#i2(~9x,&HK }wph PE/YKaމսS< +Rc!Q0ݭZ^u!{8(㡃38B}F<հ89B<*X-~SlPýjy†N 8ZJK1BxPmP{b'ƣJ=1?m&dfu!4']#=8iNj!: t~(Hٓ"s4w T[k̳vcx0w:Og-|FDZ3 ~v<1mKV#`('/iI ce.Ck<[=0&<B'%omG Yne j,ZjOC IQǃ?Sr &(lIxг+=y7y XNQ@$5IC2p.ᮀSfr?Ԙ)n4 @-ܶpm -pR]_p"W_e p%Erχw=6'Pr}Gd#KNU,9`Y~\MWw>QVp8m TSW=:Њ/ee3R_X{rAG2\2Sb4ſ6/V:GP Z#1Viǟ~cpmeh ,u~coOɁS53/3p1M>ɁW3$S&+!#ueaItrX8+ 걬; wW\ڳ+:g|v ޟc(CSx(j zjM >?a|9܏U潚Ohnk&p{i6n GtƜ!>|q%\~Ӭ*Zs{bK~+l~',?iyO^ASvCΤ5+Y,{ wBФY{_ɢ5 +Y 뉑e1هBhJ֎)` ~%._ u"b]x xم 7qU(5xĽrp8\o3px46d}^.1#KRc8NI7[_ڳ'k I-tz_^ul?tu*vGKng |AWpKޗ{|~MSy݌[hgmڅ3k!@N N#ONcjʴ`IrMadPS:v}-?W; }ũO|7}NOsu\}{Kʼyˌ)H1S"UO`ƌUwDX Sf_vaZ ̟'\aS}{bTbqgu5ܴnA!C̕HZ9NՏ?&#$$W< "|KX0m>+r— oR¾a GL.?ښbcLa-_~6_Ac #Ļ]S{$CfWvƄ13N&1N}XmնBMwNy3B~gMjNiD 5xPsDP: _.q5ֻctkP﯎MD?"xIǑťZV;oi-Otφ Pmjw}:qa%T;Uډ*DlP'5-ASXZ\U'Kkg7.vApå W)ƕ'c'yU.AjQa15PjkPhܵ z!x=U1v<%K+{mZ#ЁPN՚ښj.^XUCF"S;z%@j~թY6z 8Wͩ%ho Q0W"')lk܋uY!/(vJm5 6cAQUx I֥"PUuURȯ[q=B`!v0:v,T/8.=|Ҳd ݃ ySВ mɸ4G!  8T˛ WfP#alD$jJȻ8~7L#T3#VeS2!(VPזZe3dX/: }b'ߖm0Llӏn56d9R3q]JURadd,d !$[ɤ"!E"撂R7cƭ Q\fó%ʼnjqR qB>e@?K>FfD|\N׏O|*JeMӎ~8^wRZnEJkV'ܘbI(8ڃ2;XBQLrRIcAe-%[*咝Q@Gcie툤MM+c;*ZIqE1OJEѠ9Jkc4i4F?5F:vU@FLЭcfhy v;Hpſ1ӌ0zHY2 |ZB3B19 iЗ#GqT]]~ c(Aܬ.q^nx4q\A2Bp{VMD|@όMG 74zM R4@ T oѨl+ ٩ Uê\aG/O*4*Q͂؉Cg#K]Hs 1 d TRϦN7њYo:܎"[7hDL 0@j41q̘8MfL&3&NAx  vaMNi b3A&ћ) vaM8D1Al&q z'% 6n8  2QL b7Ag1(QL b7A:X6-篾hMCeh05FWc]oѦy2mCX^2ZhDKIV)BsRhU"2'ҁ URQ%|z<;zs.Eb H$GyŸ<yDҾdINH$K;@ BcJ,Y'`߇N -_)h oؒY ,`  R ة,`,`[βm;Ң7Ct.<ӚɿT]@"u 6즯=ݻ[syN@0{o91seDdlwO;nجNB'˧ h߰C75pp ^R}R“TwzB +qzTg;A A| *,hyNeq~5x?H RD )R)YCJ!Aj!O-,غOi{ Mx+ ! I+C%S>>'b eБ `$?MebVj0F/lF{#I~$k<~Wyp{ݎe2vb,c$>KMeSB<&#yND/OAku3w}kMGCkURlj <=MMG2<S2s-nu˦[6ܲ)Ml*ӼOIY̤,fհMS ;) հMIM ;Ф&԰lD#jD#'%:ʢz$׀ܖNdfQ!Dew.Nl <|8.}W{/>)>fcG=LZ 7 OeHK59~f<}EkE18aoE$"6峖.yіAxA-_}:0J$?Glo=``V_lyQbf1O c;G,,Q{`={(/E>DyZ2 ®_{{,x&g;, Y̸;Y(ZI낮|)D+LX m֗^mU\(jS/~G=5W[Ky]%bi*_^1/D_/nD_Ս/WD_zEb{HR:0] ~9*x#x B++] 95 *8_icY#@Bsž\c ƿG"1Q <3kܷ93 dw,Cᙢǵề6KՓPG( ۟Pf<7uN8: ӸjU^\ /tnڙcNާ1xC[3O6_zc??iŸCZU>tzx^lXuO#@n3m vmH4i#Xe^U2̿챥 eƯQ*-^5 n)Be[,{ bnlS3Ԍ!Y [_Xv*%{\MIl@ye f(S=ʥ|'`h[dH˒2~/Eȗ_`K/'%YI?8~֎s,38R~fs,W8̒~s,{9Ҙ6CRpYDg fvAZ=ff"ĠVp dg}OmMZkfubfu(q A("-ϯ" OviAy_(!"wqoWDpwŸ,{[uZr7p 9p\σ|/B/b~)ܗi7V}j}pcʮ'[^:í6o{=w}7}/}?:~Gl( p~'~7 M6= s6>s<[/"/2ܯ*[~ mppoM߂mwÍG,Gp 'p{ܟڸ9_%ܻ =p wp! =?} 3ܿ+ܿ;KW1}a|/؝?Rxd-R7>[joa<7gϷ,PYVl b3A&}jL;HY1Q˔Q F6eC)M&ve1Rv(;L&! bbbb Fʡ&ʡ&ʡ& bfff7ƠAMM%l6 r[|{ 6kb sė}mߺNLa75em[2),*./cX\kb0e_ư`l˾a7}7}Π3}u} 9;K".4AD~RBCw%;a zn !}}П]{2!LJb@;b+7əerF1DcHRX7INpϞ]^NV'TW-r9`B e!5H1A̒(KKKY$ X!9#5EWS=[%}ZK%tVpP \@'GY&!B!DY# % ۩+ѪlP-b/Do;;ڒz(Lu4bůքbwDRhhB DzI08 'ho>wU vX8ȇ#x PG-Na  wT43i.V,`6 氀XB-`ah X,`K%YYR-`it X*#7l¬NFwSh {\~0M <_d^|bydZ=Ynl X8 ` !7fOS9/ډYi{@_n%zn²ގ"[PFYcV2Sd%Khoq 5iE]M_`4o<]D3G5kG&|pk_:z,Hb`avhB$x[MMHxC>xCM"$H+v!vcXD 4"el@ C}PJv2lV<JUv͜pW9{lܜ}>cu7z1m̈́8nvIv1W=|J+Y0`m^ہ&"ޯ0ٝM}%>Chg4ݯ0 e?ψuD.[ܽj;%;< ȰJw[Y8A]wyd__WUZjTՊZwCMN:.jNMrW 8U͞ Tk<^ZnXXؠ L$O]U5|c 5E-Ks4v(9L92͜*  ۖLi.d0c4w4 7f[q,^ 6֊|F( X3BM|>$9B}-aL}˷Վ }y}|tL0|S=|oF,*YaVג ^e`yfe7%SeRhBhDŠ]3.fv4Bg! ,!b7dОh@~hOK$+bclQk aѬCҞZb⑵ZX,KYkOvUc¢Ya3-56fvE:ƫ1XN ؆{[ K7arkApSWZ F*?'%*j/ǵ 7 l4XZՒK6fa,ͻv Sθ!%7@Ȋ~RR{($:؎m|i#f rgmV8ma,#nswbJ?=,`94V)f_=_6Q<_J|W+:{ૐikP`|) ϗp[_/72B+.yۈz K)S=0ϚTJ1B<_6d5j _ + 0滛TZ90c<_NQsxxp:y0a_!Vaez0,Mp9Kp[`R=_BP ÑzDK1(4ˆb )<Èbf58PJυD! UYl"ö-U(foIg.䳷X3fo H%D:?=5v6͐*An!FM3gcn|+Ɖgb/߃6A('kݳj͸ڊU ud6^SFkB@:6 @B2 x9u|%a! ,_zƒY=JtZwE2owaY0,nEZ,`8 X,hKZ,`-`,`N?ޗyҼ)\)ik¡@NDH bc8Ni!b{4XZw X_ROGIH4-?/z$kN?mE~#9Fa"5ῼS&,R$2Uh{jfL[ i'|[ub|}zђ7pZ^Oש l:L|ſӪ]'e SR+BeRӾ}>ȑV1 ~mso#%HHtkǔ)R ZEM$!%R'OU\@(΂yw2h[0"n ?N5񇷰O&꘲ p D{vxDH"% J%Ӯ.!a!~Zל>8Ha ">q˟vJ+$,s0obפL?gzBR]yqTƜ}:$$"wu"Hv~㒧IIo8OvuT)"ߺCH|!w}.#./n#u=%ʡG7\Մ&(ӨzkxH4&2/}݉yiLFJui@wӟ؀=߳1g(H#077k>쵹{)koTR3慬spƼ6N/s{y!܁h NT\H\&sAaQZ20侕d`.Ƚ*9k`du!rAY =ɻt*~e[R vI Og&!a^T_T|ݩCKH#ݹBH oi)DB)G p_κoR^v`ծ~az$PRI^bWMG5@q';,©Cy{z$3B^}䪃z$X(Ԅz$X/X0STvz$X2}YI!jo>U+)\'ͥzJJYjjVnyv1F=vZ ~\ dVg^)?MPC s NH;H&ZEgpssEz8T֡sw|S$ATtJ(|;T fQndvrowج$dd1,dg,;OI R45t|^\O8;X_W5\Ic7 {Ulr\9vho8ktaӹ* ,dNR<aoW!;Ȯ^ڶ NZc Sı4cXQnձl;ܦG߾X眂m|Ak- }aNH - WpM]U^N"Dp*Gb,r?K2e!DK!z $7#z< "z=,$x=}jCD5#|!D4=2\Ќ(qnnkڭ7nptVX W!Y6r vn] / QAVyw+\iy86qk ٫W`5k.ٮ6nֲKZV[tkYn {v"=c)-HzU֪:Pks;h/mA|mЁnS5%I?^rӁEl!(saЁ5+zETjVD[A 5+JtaԁiӁ,B;: :A@N!YT^ Bzyu-wlsvliAFHiAmH ++87(JE:2s#"#$ .W)R "@r:`fYo*WoQEO?m;bf-` X,nEZ,` X,oKZ,`-`,` XG X' Xgq)LBB}s;\+=R0{-KNxRhkN6`5JBۼQI 9˴?V<pVkwD#G^4>(wEޠr4 3!wVL8.!I~X톋q2nhnzWM˱tyߊ&Ww&`Z{C~e;ulcV~bY{vM/^M~n##j^>C픡HcXAwѻ#mg8q,~G^SAq^wqj{"19GE_v _ΘT_ B[[zNތiǝ9ȉr]W-{Oql̰u#6Ǖ]l7ҡϺom[A>Osxoӊ0D>y*=g\tc"gR8(gQ"?SM$z pKA~3'ב{yzmu6QݯvG#9$$, u퉟H!6.ȍh*!a{S5mǀ\&!awvtz$9ĴK|/v(ŵ]Ne8|n^;ۮ/Q^ +&Jq^ci_i׏ڣ2j?g5u7R4>WL/"bbcDK=?Z.GSSsrw,aa4@@8}+4j:,(+~Qu RA}iH-C>pۇBt՜N-< HJLWYOһRHZ7oN!TX꾒NIE,j}U)QBNkW-b=}_Z7W"]k'vݦ-y:1>NR-bLhXz4 ;νl173=R{ ҫnyvQzvV~)]B^&MXX_}2$$&>?=^XIri锾+/ vםsr{C]%$şϤΔcg!w'Y,.Ȓ5:Jk k7hF2uB8"b94|>-S^8uΙkႯlz,RQ3(}݄36`~|#3Kn|spF܋7sn=#ʃ7]wF~~m퉟nu{<ԧFݞ)m)mܙ?9C8#?!=rشZI}4հT2yyrI e:,&"t:XLA<@!<@Ρ<@a<@Mhbj(HHay: c;|u1'HUpȉtʉgoNͿ{3BD:矝AW$GH{9c_9D8cN(>Ρs߼fíz09R%p*Ɲ7I:Ƥdd&-2$͂oX׵驧GJT!iGva< H״Y Kq)WAܘKu+*M4pƇf,S jAbܷRW % #L #, #nR63y-!0cGH9R.3;:_];R|gaFp":̯:͡?|a~mZE~W|gv&n}}wu 2\dNocFB`[ӡìs5`)`:;47O\kFc[szvzg==Αb_:tzgO.v*O HƩ(革d+7w,|Ԫ`y4X8np`ؤL\\p?>C^YTsBv!maOv_ٕ( ʳl7-3Z2-`Ynl X,gi˷`]$Ѿɴ:P˅ǵLZx9KW^+ KLdR<.\̺ ]&dsuꜻ gEƆ_Rb9S8,7ˡw(,YS靻 gE~t<"9g gE&x*ꍲHspFYm;TC* (fl2y|IYLeQNXeQN#*1'IrNΘ$9Θx$9wΘH$9 g y 33&IݨltA63/]]q& w XcIp75Mϖ$n$-#!u2M#!eJHYV$nIH٦%SIH9R$$MFe3V-$fS.kG2MeIs?w g{h-?t#Q|1ݨ~hnT?bC7o1¡ϷЍ[jF ZOgE/, ,OfQ`s4>SYX:͢i=N(feP>`6:m n DAuab  Hfցf_QS3^!xY! sin28WмqZ|cog͂p{h 紆QG~2Wst\wn[b g{)V]Ga(p$ɦ!Hv <:ErhH1z/Rd"jHz/Rd"s#=9^Fr ȵFZH|^$dHv ,yY"hHfIЋ!A/Rd H 13V=XfЎJ\v*ͰSک\¼1t6Z7$ц qva ZEmf ,a,{忪C6s}o٬`6|sՃ"+nuk:˭6wƪUUjXX,wka[jk VWͩqWVgj{vm|pQ]ZpPkjUCjT@pŕU*U y2^bZtubw}8챐p5KL0eg/ 1}YYexG=}O;?eAJ1W&<9ޘcT`Z̮ R^JnhWcUmZ[X5T4 5Z-2Pe5]xĨ-*/E^l E^|-WI.VKk5fbI,mImE\ٺM,h= Œ`El|=9Wi|%W4<^R#wR jQi|gK(c;\~Hwnwʛa|e|gxŤ_aKa:U?" hD0r_Ѣ hP=s>գEK HP~Cp(k<N`_1m~)S/4_Ϛw~i6jEƪyQÎ-maǖr ޾.@]Ґݒ=>w?vCf`tRA"m`N_^,rԢ^w wTp:y)P҇/czӫi&"}L'gʙh P?dų/a|6M8|vxNA%@%Fʁ_FiBdz~6A%@%uH,y /8#yY/ܑ/ &9·1F;1X]xȽ$0$'w^^cpn)"q3_;GIHMS:$I\n{$)sSBIzHaz)-%#sGN#$$LF7wa;=]Bd[]Pt=CBdd:q n%r"06~u7öҠZ4 g44Xth*,j fe X!]@xR@_}  >5)X׉ ƣLt58ĝ0Ѕ k-4w T[kPtQ_ 0(/xq%WǃTVʊ-j61jT9D*N4*N!zE9iTӜFEYueiT5isMp\1&o5YsMl\1פ&o5IsMh2:u%?7~Gl>tr նifY0,aEY-`qwi}.j!D8F\.OG/OI(jqgvDBj1K!aܦAj t9Vt% R[HYV Ɇt5vR'H!uR7H!] G@R/H!] R_H t#nt3[ )mB)`HC vH 4HH C Hc t'qt7V[2$H@ i iV(Qx{%jP z"s;#Q&{mfeK xlvEy(ۡHkcsc,#Ƶ,E6ظWq\lWqW9/|qݰ#\W>eƭٸ&loGhkm|KE+\fq4.ό /7eLɄ //TtE YDCMphb8,DcI+vh~g{-3:h^}388n;r{oӼ~h/uwĝ*Q{5;rԠ1,& ɢiޖ3r]yUbj>IWA%ҩB$a/c<2Sk!GTĎ1 lȔsP"6+o'!k`6!,_Շ{ FmۥoI^}R卄t(gekήp9KVgu\ n_tVh8@9zqDxO͂QߵPB;.4ܼ6eLMu-Z=0*Ce1Eh(Θf͘JBgL%=2}NϠ-FT|H1=A2cNTnq6p7S#6z6 *;h,# :$504;emfkܑKeFѽ5%w<&g%Qg|',pE9]_TWٝǵskaօ|Y~wUV73,iĔ9s㏯ E5?tn#wYڵAV؈F#U9V^_U),s@o:|}@UP6"ˬHm60F-²u7D#(2K,|AYƟ@po<(ApuU7 #7\C58Cˈ ϶}(M~LNY7ex]C뾎so⸖GNH1Υ欿Qs St?".XKEUR ˚| n'G{xNNٌM㴄ʾb_{c%?>KS(z#\W>e/1T[p[5rU1D?Oa1lnsv\vX ɅtFAytLHyr"6n{,)b8|u2/pT<UUv#fdpTU9q/epTP/K}朮#B) ҍBN!s{t{9 =ԍt 549]kNZd<D0e_ :0{/Xci؅}O,g7K_+ɇ#HѸHO$Zv}q뛦-M7@jDgj廈 d~qGAk6,}1G%<:@#ޤ9U#h5׫JT)Ω<ºpLzҹm0}!'(D:R)KY3"97("-6W:-}ΫO!HY$Z9!VSi)T ~IŨCȄfDvo ]-/|E!{ Vr]R < l:ybUT[觧)O9tjRoߙqN2.1f=km1WЅ=o?%CĢ!&ޥ@,:H _-" N2D2@,:7IO" u WHsR_4B+@(HaO4Fئ[>އYT,6>|yD}V>6Bৢh MϦҧERa@cbp}afP\?@[S;boeNs(wč_?w`}Lgh5I\D A0`J&4-IXklF+&vFs+U.LBfG6Myh{hJq7sG#l'ņgR"%?Yner] 2}תDkqg;ҁQmm+۽w\t3Ҥy^#˓ܑdѝsHU&v ;coN̸qGb1';e#ON%{tҚd&mN%˽ r/!+;Gk@vnGH(=E|-W΍}U;7v׸_/-yEWu?E_oj0Í/rE#,(:1}܏](ZlʨvQЊ.ǜ "+Ǘ@ %|g%UOFx%$YDdAee,Aa{ɷMZQT﹊&2s댤̼a:qh;M٧/w2s^V8)d69AҲK #"-$-_Ҝ_ z2Z*EJsi#='-{̥eXZ6#Ҳ\Ze3J(-{̥eXZ6#Ҳ\Ze3J(-{̥eXZ6#Ҳ\Ze3J(-{̥eXZ6#(\iyL[+h_ AZ7Me8H =a(NLo9뢔wD)~8m[ iI7B:Zt'/TiY\jy,f#m^7'؏c@cb-ݗ7)[(:λw^*~Y[;oi^23on34AmxKs3݋JaؘO[b.edJ8IKXN`3iVJ{jͤ i 55Ju:R \A]z}WQ$W]+ӝ)q(s2Z d4P^:)K_0B!Q+$'SQdݽqlz~TEz^9r5rχg?0g<8C8+U VBzW\b5Yu_N3?z&>|~{,wֻQ^t3䘝 40j 'Q_{77Vg0+(ou4)ydG-Eswe1jX~w ؟Xo'¾B`jd FC|9 /׾jJ#Fsz!=ub9މq\яa@88fRxqCg!l{pISꕊ.Nk4|jTZE8"l40HTZgb5{^EoR,mRBfEL//(f'RZآkzQ7C:`8b +7?_ uEhZVJuZ}|+aj@[UKAUūcLcWc0hŃ@uꛗrV YlTjŪzłt]~UJWT-BŮq2Ţš4:Daxn)=7q! ղZs1Kut0ҦPFZi%<>~䞦Rc3 ixMkMLcRc~D{xuL?_Ү(f̓yPxkC0{ص0Q߯F ׬pm>T@msCDbx7l7ě R߅A &%?7D74R(~4T|hT+`c?R7|W #zSר5!y'bo0؊xiCqQ`HH4@ 6@tta33@H2@H"2PF鯗:872@܆t3f(qIAze^ %cmU<=AW XNzo|b׌3}f-|4U^垲Cv{6V^{f~^/)k2!垲q`Iu[{ㇹlomǻ١q\8+Hs} ]2W>3r䋞}m㛡3grY:71L~eȒ >;YgbVX:/cBLNe e O.SbO ?8wUV /K1ܔ~lbkjygJnь g?nXg\G>H߶)S Hi_kwC O[mRP/Kmﺯ#O/埲KL5$̍ȉ6"W^>0rlD\ G,#w˦T^5gsglPБ@s#-Y?f(j<"%5E::F:Qu=5D:NiB1uJp\~Cp~;'9qk}@v颌JPN 7{s\zTaP}ds@_b3xBfEsr]2&WҰ_ OHJP `ZY?mcn)09 MP~ (sC8ِd=pBKNoh \xL۝viS8>$ZY k'~[Ϭ[(>7{)d*@ױ`U`V61np>ڍXiV^ϻÒ(ʆ0I`V&`]s`qS\[K<樇%``'#h=2x$><:1S1sȉ68ShRTjiT%5H#7f_2) 񤽓7uj,CҰ5=^O669拴 ;,?w{5ZAHpy;;Nd}{o?Ozfs҆8ࡁ74HM7'x$ b~2OH$u6%])I]i)Yc>x $vT<gy$dro8ioHvBKKm };N {a>I`+BR{#^3Pruri&x@!a:&Է;~?%I!]vi=%xQ0t%m=:شPKq0?Q)nZJ\J:OZ"; x9O~q.ӗj)sJrR&nI&tnIL2HEfBHԸ|>Bԣ8!>î BCp\T}Of('|;8Nh7?̧jߋA>;H&I|4>!`҂t;3QiOI'r|RVNgp1^R"Ky'8A;,oy'!T{ ϻGBy$@=Cj52yIiCQ5P2*cpLG^3k۹΄$ G(2Ke2K M)DqYd{ڿrq\5\եZq7p\0?RIG"ui.@'>Hi:!=AHAz H3!=QH =i69`+s{\Hp? = ig,AzBH H/Bz ː^* -:7Eނ_HK!-6V@Z iՐ@zһXAZ }CH!}cH@&HAfH_@KHWAkH@i'o!!?H?@i/}~2c?! A: AqH' t iHA:wHg!t_h7rM˜֗C?9j}q7ѵvc8V9nR(V *<7&Uh\ޒLyc0Qp')Ɗ)8uv?+9c$#.3Kq10fl]s`qS\[K<X"aCnxzLz*6 )̓ww{לIh_%<kz^)NNk㑜2zy #&V&N7Z(GuWU ~o!Yd$zxWwe~Mo;sm+{ 5F!VJ4[!{[0@[[[OKҒ=d5Dk< pȓOq|v7{z\FLS8i3/_yB/X{`F[0ǣ^NG;w5=-H!O*'ovr[A$ 馱nୱ)aXcSXc4B`#!g6̭5 nЫV#nwB"e KƺcԶSoeMH bUpu{UA7n{>ntn3L9!̋[ e!d? =~fuC ͅD7ԗXtCg )וOq) o^z"^5s(5ʯf|jbX#Q8KEx"+ p7 lm| c,skcM PKQ\S8 qtٴW*Ek$5GQ9ZQBPZruʜЗ(B(E[pQZGQ2kS(O,&8|uRb%j-זUq0K XJKf09:euHG/վDh휵oA@9`6(AH AGnP7gzԀz$y#$/$_.[Q%Cx g!Ev;F`H||?q7aF?ԅ b'6S)".;w&=n1)JBPVRv6SJ$@IA"$x/C^% $0c$X,@JG)K%w&3$ZSY8”cJZ.;>R䣯 Gφ_!] =V䣿06%_[B(QT}|p7!ÁI[V+|4s?ZcnKkf\;5Zӌ /7kŏNVITVIRV ϵVpzE `6,FCXXs,`J 4S1e#T#0#wgq_6owx;y׵}㖽:w]q]Tj8b H'Ji,K}b(iksx{,[' 2G+ bc.\Ks)J1xi),da)G[S}f>6dHXGPGEh^Fv-c8) { e$8( 7uPއ9Eiǂ1{q5pFϨE~Rc ga.a~Uʤ kRfy(G#tKșWMFk|?49zb ?x$ GVuArkY;qȹ9AL|x)=*il5T͵*==VY| hOaE-ݻ6COyG1H*k{zRVϞ.D=`pdz%b%/=`yGCHzThݻY>[ă1$Z*B DȃtD8KXUUi8t͵j08 qEp\5d 9qE9.AiX=%F=CW<$~+]xM4^ \孕M!˵<9Y^{xE*X.98̩h ?X+)mhoƧ`HEQ8oTpaTp0*!"nfC@?IJy,spfihD͵lb!-LkX6-fB).)(tͤ2_6%FPp7' ձlٌĆ) `Dׄ$.n@vtsD`_zDu0fl]s`qS\GKdVI,`vCG U8n}u9Y &s,H |ÈCjPXx$ UMmn9V)F#|y)V{|kl%GkЩvGG#9d@lm90X\t:4ɿo3M ]fI?mGw2;oyɖ[fhcLAsA1m⛭31AmFB9D{.\`#'Сy4O SݎgnR5cm 9h/p9U3 [չ-IsHV 6ύn7ἋGiMs*jxGA'_}G "kkϛQXɡq'oCc.ljp״! g'>sǢxɢ;+;cA~͉B855$|}&lۅ޴Gpܛ}MSΧ"V¶UԟֽRu{eFscS jO4eq ^  y oOĺN>_CICҞtL͛ę\a\D8# #?dGj&娘 #*,d95: }WZ iD=!D*U VJ{OH*kORTUzB J+ݽ'\/|ʫ'nYs_"X $CJhAj!Q?2{aI,zvaFڸ`nai8L͵KDžmdq߀aoXqf$5U9zQKPZ=K= z[Z`\FWَt,3si!QՊZ.L8t{ṅ]f6NעG$qZ`1XfS\[K XVE* `X5P(3\g̴{eR=ŞlfT4眭͢!(^`ߜ+AYwPnjJlZAkҘNw]Dz7ױ+V|:n'} 4l#CЂv=Wk +V%Cȼ5S~kWuT:f٧h["^d,U{16^]Ӌ p &N_wD/sqhzơsP?6m!M|m/l6/ضiΤZ~淎%Lm/)o$`ƽ)e0`[egQӳ'y[9ehWtS"˻p6ɂV׼AUIj1+մR$%VGaI4]RA·мԊ@op]R7qwee;fc1-cC]Mֵe[&Њ9dh[ =;Nֳ1,G3[ T8⓪L^,\F$F^%FU~ ^ew,s^^ wr4ƫ21D^5d`«b*)TX ʚW^EyW&r_ؼ WBmLJ UfX2WɕʽDh})0w;Wo$Ar=F(y.N\L\Lb$ ͻ,#M,mK̿>KYb~3Xr,5g_pgl ̿\Snj3qu:-J=V:fDH/Ir*QMl S 7/L9un0M:p=̓vZ%pUll%}| {M~-WQOC|H)МXJ|Badp^2ΑE+QpFn S:mFY-py$ ٴ_LLH{֍y$_B4'H,Mb0/0V]Q.:QWo_:ZplBzZ,,+Ggl=uv3Ƙg޲xO/Y )΅,[F΅1jc:Pk_D_g>ONżcǂO9jry5z:4^Յ^Zz X+猻XfS)}XfO<1 H2nvF$eQ\2ܥmL˯MҘ4qeN`uzXm%W08O`q^K;D;(uF8j9!0dwQ;WCC#]O[)0vKL`@(HHKD=G Ve؇ H6 +TSM6 (HcWU4 *H8_ЬU Hv ]sߑV̀$;Q[ Gw:5z?cs5?cwdS=7g27nA#4M2מ,!؞?}k|p^6^7/{Z.8TO#[ݵc=B7݌MAmKe gX^kO6tr2iMʺ칹LZ*}!X5ck :8ډ^ݸeؒI0ou2GHIK ,7No,ي9Y>-ɲU'Kk;S7 NX{nkU:wsB8YQs tRkߨjat]>C6XmAWJ'+I FBz|/!}4{45(_aWl./|\es}+kR4flp b6}x%HF׆a}DQ^c6R ĿGX|b-E,?q)k!k^׵8):Kp#OU`U4JnAX2@Hz*k~GǸ@R=C>Ps;#<Ɔ7_?JԆҵ `0u i( &6\,apQc*n"ܼr {pis;[${Mځp_! йp[š |YC&%/ІCH?sulĞZkbBNb0s_ZmT.)'1F}z!$jZlˏy+Lj'"-b>._jyFhHpʵ5))3cZk#zQ,˫fMb000,URXVE* ` oi@*±i)=2w{w,bbeg?+,_O~{iko Jkː/{oi-%@l a?_UqWHHȹM2Nx$w{'x456Zs[gM>^W)Fk҂?OzGh}u\x2q[l2z|Ƽ1̲ef $` rch 7_vbdDRvuFh.}vZ#cZ[s5YW;mw]=Pd ao8$ i4#d$T8e>eQ{~5>{+tq͌⠅ Q;h;hOoK+Vk_UAk?掺Cg,$:n>p˦۹Zk!!!NCdSSZ1b{ڸdr4g/JzX*NW8Z{;Q^Y?5k4kGk? ?sGhp[X-%N-U{aEM;tׅşX^9*ҼoF_j{qV֨FQEU4QU,^A8,CI?ReAU״}{Jk{REt,"UFM&46j|Fu5%:FuakdaJдF;H rd >o9- ƤoM/yj `uX=@k㔞gq҆6'}b<~n^MoyYo9ؔg~lƟÑs!|^/KΫ&/,/kt|mk|r|:yjZ\AӅ8ξk9u557>cJk015ނ{LW=M^K?֨Oi%F}ak4P[AhihACVih^r^ 55hj Sg>Mf]qj Z管%wAQ@.,qܵvˌQt۪GCq:w;w5㑍9;^gI*1)Bne#1eBU+J{O hK-9Gkn.w9JUZJ~ ǜ֗W%Wq3(:=.cſKI&yd[W/!H~&n"ݞOw<&vqq!bh=pj9{΁u45\X1=$V)ZJCczAc2b39u7܏5-b Ta+;L`r>ɗkiKؐwLґuUE Þ\"%Ź>؊wlH86,z~nUcKR5 q?h6\X. A:ѩ|ͣx| :+-hec![q5"#c\ ^-AOƜz׿Ŝ>h$CohLoj[ܜNtbbWc6ss:*9Ӊ؜nFP ܜNt3JhN't"6TBs:179݌Ӊ9fМ~& TZ! @d ) R$r)RH)*Bf('|;S Ȳvo)SuVo-RNFԝBµnSDG;:mT2jncco_Kz,9kKgc66C0;R3ȄyfU#윱2` (Fav/-ytA-HhfGzq/2av\N\$΍/yW$΍l覉c sU )0;jA윧9 e?"fw3Q^ݷyavvV#[i)-xS7ƽфyFߎ ~?afk?hGfgD?.avVT[7)T0;|-W#Ծs 3'6cD8xO"fÁ[qٹN/⑌avwUڋ,x6eT ;ݲHH_dv˪3cZsisW⑌avv׸G2zhEcH0;56 9/4s1z_i,}0{av}st[Ihv^ cتp쐓Rt'Xͮq MOzpd/1̎t|f`hids-{o|Ob9~`A ݁sHw^ 0[f|kL~ $g79|0IFz ꔚ&iY40#80` ̓h.E` ?(֣S0dj3:^c&5QVn`R:4@3U9CE?`mȔ'}9Lˡ0+c_a0")xlB`#s+) N`u9}`?g`Mj]=景]۔ҒɭֺTH8r0wyNf c;xL,wئyGcFP `<0A%t;x0fc;TBGcFP `<0A%t;x0fs|FPZ.āqu1w`9;0u$e|v|5r5p=1Zjgu m`$Ec. e"0S$"~!Ȍ} X_kU:HZx<,K,+NI|$7HӳzAן_p h%[ovz9UFBdA%9%?I-Lr-R j*4ӡ+}<.I2-l0(-\Rr{u5z60S^TjjV7[!nu=R.gmHe"!!V)4XoU=2GZQ`T<°?_EFvy2zVP[z_DŽ@Ys0K_-1u˾#/g8 B5N" Q`T<6O婰d U;?+ `OΏd^)9$zT{M^<03Y|f)m$_-yZ&jo%/TK^dR N%PKޥE-cOԒ7CɚROTʷj)R֫,SKyIW ) TuKջ_H8Gmv|?V5G5n+ZN_cd2Nxz rVy,_zHă&{1~&=eD>uZOߒ2 g@T"1>'GeDF,!U%XOR2 g@Tb,%{IQt g 12 W@T=+=EJD`dއphVM]z'F] RymfUEބ/85Œxo^ٴ(.N,#Wb>R-xN0#ޫW6-2Gm^9+|hGum,~j0#,,eQ|L3b# IKeA4Œxi}ZIYN-N- lq[nHRl>HFooj[/5f>&U<Oy_je3M r14Qg6 QvĻx HVO1ct|m[J?%ivkwv4`yC$O"m-YqL}82Ee+BĈzMq\}Wߩp=*+O<_]BRx\ xTE>ugߐW MB"AH N#QH0 /ª<\_:kY?8 ;Ȩ㺟{Ω۷/!Aѥ:uԩSUVWzϯ ^!0 L8Ȃ  }v(HdbL_p/Z K?]І %8 OC7 c`-gxm6w4LwEp>q@ŇA`*Q=Icc|cP它P2\xT IU]`lA~B 널.#r0'}Z0ܔ^C,U 텲%N^@_JݻMNAߣ:F ${B%~T5ԹFƍ3B$=99t.97]r^ t=G = oKI4&,h늯ֶwohjm})y*\H=ܹlMw\IN.T)$,σGW8]ˤTf< }U J?]"=-񖵭m;x'qS[+_ܺ+:wZ|llo){#*XJ<h!Pf[9}wΟ}U[h-"hm8ޔb|Eń++e5;mK e]U̪@-Kgxrad8FBO2X)Jݪ|k,Xz}itr'gxt BxOp楳<)8L6v]9F$1i܃Ǥt<)j^^-<U$j1d:}FbO;k.4~pc8?7ێ0݇|NCG+تbȿΰ6t.yP\H\cRA+-XBp!B&]>aѕU O3A<7;k]{i^*2 rz#}a`hǠ='?Wq?BSYh |i̦-mQ[Rlvt̺x [b](G&] 1|NhךxSsh[{seNlòUϘK Z7N#mk]a]'~Foq'Op lxŖx;ѭ ƥMex; e[a5z>G;'gɆ%43J+{8޴f+6Yml;ٚe\VC6P n b!Dʎ()OreD=whj|SN38 ?Sk~Be5r-I+8DSI!FK] R4C'ޟ .?V$8JaKXXZ j}πD5Ԕd7MjQ0 r1ܙ( G}fC2DQ`)KXsԚX=3߫O\ ʠcwaF0GvNznaLCpx(EԱAG] .ˆcM ?Kq]jU ?ߙtp}3>tN=Top`BԦ,]T`gЇeLϴRDz3wTSZl,f,w7 KKQ`>pԵfL`f`>X},,|lV`>XVE٘:& } +e)E"6\z '&s!-^|qc|lKi)x5t\#KFղY<aPzA Ių.J#~B< 7zB,D[ΩVH'XSjbTv0g!Ztf:X&0 Hx|"3-y. 7֕rL.^.FxN!Q7&V!O&6v/r]4?"Xzj<~o~ݷz\mCy\%9oDڀ$S7_#$KKOh_3HM"M{wtވ RPH9?/D $W׳=wx-d _Ѳו]%*HFAIC gd51dAs QI1G)XIJC4%LPLRbJPSBIJ;IY=ꨅl>4U!P].YE*}nN`2Y]X;{b!e<ZBuPǚk~ܨjk޽ۛbԽ^U̒d*%,ݫ]/IzK4*&Q}*$R^BDZkt^v/RTVT[~?PM_n J9~Wm^}o>߫}~cܕ%/-_ʚxΛwE(}mG߈Q'.:n[4/z *>/͇O yΗϿy0OE/ @ kQAoQJ9#/ggҿ}¿տEShǓA˿hrm;kD8[k6$vc~G31S/1ϣ5QqxI0vQdFa JGSg  )'    """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___www4'A x(xKʦ """)))UUUMMMBBB999|PP3f3333f333ff3fffff3f3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff333f3ff33fff33f3ff̙3f3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___www___e_e____eee_e_e_e_eeee_e_e__e_e_e_e_e_eeee_ee__e_e_eeeeee_e_e_ee___e_eeeeeeeee_ee_e_e_e_eeeeee_e_eee___eeee_ee_eeee_e_eeeeee_e_eee_ee__eee_e_e_eeeee_eeee_e_eeee_e_e__e_e_e__eeeeee__ee_e____________e_e_e_e_ee_e_e_ee_e_e__ee_e_e_e_eeeeeeeeeeeeeeeeeeee_e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_eeeeeeeeeeeeeeeeeeeeee_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee___e___e___e___e___e___e___e___e___e___e___e___e___e___e___e___e___e___e___e___eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee_e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e__e_eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_ee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_ee_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_eeee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_eee_Cluster OpenMP* , OpenMP* DSM Slide 14 Slide 15 Slide 16 Slide 176Intel Thread Checker, Thread Profiler, Cluster Tools: Intel Thread Checker Slide 20$ Cluster OpenMP* Slide 22  Fonts UsedDesign TemplateEmbedded OLE Servers Slide Titles)_kZ0Intel CorporationIntel Corporation  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    Root EntrydO)PicturesQCurrent User SummaryInformation(0UPowerPoint Document(ZDocumentSummaryInformation8Root EntrydO)soPicturesQCurrent User\SummaryInformation(0U ,_kZAlexey N. PolovinkinAlexey N. Polovinkin