ࡱ> 945678@=G$\$tUeh2xŗkA&5iDZITEPEaEQjzPl D'\{*r@k§Vw{7irlW}:|3+؀>tde5ymFK ]ކugktHq*=Q4h%ܡP&Ku p O Cl!ˉU?!ˉU& r#% G\K./W\\ujh\Wz$.qjE \-jZ<*˵0[პ\-=AwKhhr-sّھUb3|OarA[|ڊA[|\Ek6WǩhH[Mǩhk5I[SǩhH[OǩMC7E}Zh D[1kc7LSY c9"Sa߈r"2|@=BpEuH܃y2:sxŗAkA&%1ZYjA<٭'&P!$ X$f׻\f.WM%֧@+'ƕ% @}I! jhH?r<4J~v!dtC k{ eVak(=k\CtRe؂.<:G)fPy\5=ם6b|= Nؤg}K-z-=s߶ ^{DL-ފ' /^eUsDEA [\KIQWarHߴ!oi[Qۆ(i܋SsK_'rvҗ˼݁F;p]dHK,MEێȽv{v#qYnWn7"ww0*qj$nwFv I[ w3r7p7#rqN$eC}{Y^>w&{T/p> |s]r"A-+|dd˶8*b4C_WM^K[VcزĖU8['bhl!6Gdhl[*'[CckP8[&bil#6OdS7״vϴq4M-[)f69|~Qbqgh]UwG.&/>@=Pz+?&Z[W2 xWMkSAXSEGĴ (BRq!؂]d{..ڟ!X n;/gt7}>2w{̛xDACm>K5CtyGD/=M4ѡ&1Elf4`N}1.sZ:Gϡŋ{uRAUe֎7h%iv6iVIN3 ʻBA,{ .̋ W_>J߷$H~xlp0 Ǟ>`oCkow67? a|K\^I+3X9V:] lysyz~^]k畊W%z]Zye9{Q.<,Qvbye =A uQ]W|W_Vl@۷;!^uoaXRuD.|UB<v>e[#VaK#ʖCy,CSy|/g˳8*t!]oYOY>¿>d8!򎽇xH˓ojy|-^y&ޏCC4;Z k:ZY_~ūJ~9~VQݫ:(iOp}({eg/ӿ>7 7(^{Y7z-J+?'p=-bux2({ҮLyṂl(#ZT55v_3Mʾ(q|]G-|>|ޅ9^ _=+|> x;^ ZaT A;1_w xo{~9>_|8W~5~-~=?_K m׀]={?À? ? ?S?#O? oW w?1߀W=^Ƌ/*U xM^?4ipHx[? S??? s??KKހr/| +G>s/%voN7{;G ' #9O W W?Oo+/,q9W2xMk^I{ +u5 P^m_ me514W|m5 }w[5 =rlo 'o~S_okϼ!>U^񥬏wB/Wݚ % _mk^_mg+ |%މ!P|ȊD*˓V!>U^5kMCy̚wr5;9NCyWb)ީ!У5ߩH+>9ӊwZOW|mAV|yTy\N򊯃gߧg6|m3C|g<|gki(Y򊯧A P>;gd|4ώϣP>;fwNp}5k{ 򦡼+_1v4W|c|5k4ώ.>dg׬:4ώWZ]i(C. P^M/:A?ÚsW5?|v|ͷ$xF5v-<%L6[woyfOCyŷKg2i(%=4W|ˬzzB|ˀoo{+sMC5_o,x5k>^mǛqi(Y]4W|P>;f>P>;f7 NC5?NCxĠe+m7ǷÚoHGSk{ηi(_>34ώY" kxOg׬{#kIT`[Wi(XP^ը8|L#ͼVͭ@ea<-)Oi-fec`epxG~b#ՇXf0_i̝xb@ߋAK@?;Kַ@Ӯ {1oWA߮ϥ N[HP߮'=v}{>A?ĻN[*IPߞ3 }}>@?{~N[Iퟠ}gHL}3 }~5ַXʘf; `:oe-zX&Ҙc;bG8oJu*A}Ϩ^J*+ 5N[E{02A}"1Է /5ַࣝ6dL$1w;C|i}iss'X)^}n΀贾յRw~O4;oMmnDŀ鴾w*̌t@o@?ħ8om.Aws?}~1/A}ςc;k;AZ&%><!i}֖Yϒ.d]<!?派~'BYSL}A'@?'ַ]L~iqZ#Z7&y/ n}ۀ봾GjknNPߍAL}73n}dwZߣ$fS-L}}>~g?tZ&[w 숩V[A@??09ZlOP߭iL}3n}>f?qZcw&vSߝL}w;AA?wϝַD[[͝hOxc1{)P_ ^ :+A}gsc;ݠ,g6|vjHb;}~ NM[;w^!}wS߹\>i}kk/HPHGc껀g!|^-(A}wS߇AEb b$A}Ow SGA%RG R,A}OwSAe@?7pZ~ZwvL}3} ]C5Ox2v`oHOx[qrk3c;IXbx\}n΀h=Ix1c?n}&>7`o6O`Gtcǭ17>e-?7[ e ]L1#>рn4Id1c*?>SA;Aħ; Sd_5fG4:)HALMf}M}fD㳓bl}>πhh|YR!QGP‰/k\8> l,D[? Y#_h_h|LR>@Š?E ]R۫yO㻘_>{@oAĿ40pW;]m)" h+ou,&S.?> u▾gC'};ԷSoЧ٠/;o[ruJPߎovb t}?Eb=SmԷ=v};>A_/}괾g[v&}{ԷSno7ЧxNNm=Է7=}{>=A_Ļ_派JPĘN`;L}EfPPLSb;$w3 E|"N{H9ۦ$ﭤc;w 3E6[gz^$y zWTҫ'd+r[ / ^fVz\"[ $`Gxv=lJur:#_#/xwNqmwCuQ|(Q|vjDc)8uPl߼/Jol ]P:FuINo>oIy:ס:-Z-WjL\:LTsuR >V/ >Y'-z:CuR?T'DuQOI:i#RN0d3BuF.ڈ:99xwN ʪ:Ƭ!T'#Bu2LQD ]."d]T'd{E]urWj*:).I\T)8A|.^|vN* PW{}UA)|Uڧ4dSΎ}{qy\Et|Iu{ޗ@]諸X^aC|rK(hc#rͶ3lJo/n^+eRʰ]JzS~7m/ ں]1{Gݴ=F_AMۋE>X>f>M+]g e> *M|2NUD>GR{t{*R1>N:ݘte9k{t}̵=)ݝ=u+ΣuAw0lD6NݴH9'3dNu:.d>li{mrOgt{ؖO94~q/wh B7gS~7m>°}}?wz"]gu󨯛t_wH9Z91ԑ6?Bݴ=dcN^?(l_̼[L'kp+ۗҹdR)u8״IgMv+W0m_A?߅\׭$_뺆"l_żYE6Mt]ov*wz29o=[NFBؾliۣʜ{tn{{h\2;}~_P?|te[=wNcV={9iۛ1v]t2پ| yw_;m\GL:mqɽLxm*ye>i{93ۋN\bڞ"۫9m A<ϻN6]kIPf^[ӶGq||}}$lo~Ӷlo|r̢D|r(qV|+e{7n#q6;͘7#ۏwEޜi{sӶ"Rf{/![9O)g{kS=:2_}&Rv0gބ'M]7]y[ /Pgmm| vj/5]w[U|1w蚸c=zrPWbG{B2kvZ{9m{{B~NE ̓eGqA̓( eA3uLuZ<ۇ#CW^ʴl1Ge(u(uy8},Sd8u??x}<~ӺG3Ϭp3wNKv42m/α}~ӶG]LN]\PO3l9M;3 uz\xu:k{t۞y~f-ٔMۻkdA3Aϡg; [VKv({gYn>wmd>Yg }׷My-vy\R/yso,];3觕Dv e>9Eٳ9E>9 wAg;AS~7m,8GeA3m_I}yLW/;m{ v@پi}Ӷ_.RuLבo8m{`maez8m{`"7AlE.~UJd{iۣ{zqlBWwe{ 5ZS93~}Կ>q|[Y@sǚo2r5Q>+n|{=_E> oxsk^lE^9|zd~co=ci:QWeUT&(;_^Lޗqp6*cF{sH(ޗOW|2a_ϨO>S_*sXi{O⫤s+>9ˊX;LW|k+~\׍Ki{\O.oWE7JW|cj{1*>FV|յ=TyWfWCۇ &O|mTy7OQ_-mU^M櫭k2%V|uBTy7˚,CXPB3vY bwwnkaZ_4 O'koxp{ XEI>x${z%OϋObē$)'Ɠ@xJh<$_4ߏxT$IR Ǔ'I%Obē/x'I%OJ8$p:O(2gXLщYc9{+;K 3=W@Ӥ+$^2I9c1쟞SN3RWY(bz$+=.;b:<ޛw3 =GG)"!Iq6虮c1G/zޏ{~> +g{+!^c1G_C,AoU׀2g_:Z,`I?S}lC?d<><|jv?*kH$c0RZ?ԱcAO_S!|WI0Z7shXL!oS5^yCyU wv6we$ز?!;<{u,&PSh,/5 #xQU4рn4) PL9:dugyd^Y͵L&?2c 3G|?'S?fLL}~#>̀?u0f&3?3q3G.~&w?jk̂kUosLc1t=>6 x5g@m9p?/kXLq7`9OWy}~^Y=4/c b\h|k1pwsAA7 qWǖ/-e [g?4oa_h{lMP#f|w+ߏ@+w8ZKg{V?>lg۠n o33pwcv&8>vS0'ww|ծO޾bA ̀a?i{NE71_~q@_knnqݞUo?0/-i5ai{ M?>rvo@p7|/w?T{;&{"c_Ա;qJ9Fw^x_1=L(Ah*1>V@7 E ]h;z|O~(*+jwr7oC[;TgG #^ŀ4WgG m _j堘п  KKmz GmCbG=}p?u x}=h{7HAп7P8 ~?߀{~9Q۾aр㈘ѐ> AF?F ]8Im<41/ào Qp@0~1wJmM&L8i4?€757aGe[/ޚ<4c_ f "lk`q,'?36ď3- )"l+I??JqS?20pwTrN?J?Nq"9GD~5w?ڈ^3x럪c1돪r ?7Ed~ wwD6AhCqvLh@O; x;[.Rζ G[1=?}ڃ>i5g"l'?E'?@XLqϣ)|_|@mEOn[ŏ:r '?π_lLruN?:tq! #~jD-󋪷^1/ݘ.пw?b{1pw/DOnnԎOVb~*|}}dĻ =')g['ǀч@>O?^w?)g[OU 9~ڟ9~/ Ed?=GmWL }0C qnPV6,`:< c_@> p@|a=t*J+?L>#AćRt)gۨ㺘1W>@1?W1Q ]8OmcQ7L ր3e"l%)guxF  ]@mcL}nlN"l+K?&?ʘqS#~_ E6)A(#?&1c"3 G|?mJq+ǯcL}f0pwbrMy UY?~r #+>??rgrHPvwc5~ 65`]D63c?f2΄{/e5dmVc3)~lnY!~ko͆06 c]E6'AE@L@9? sMm<̡˂y\A>5 "l[(.ј_0<O0 BKEٶ(>3>y3>a^! b"n|rr-IPdc xhK@Q)g۲?y˘2o wwH9ۖ'٘˙OBr|KҀ?c_ݍ?-Rζ rb < }ڀ?o_Dٶ2AXARLXgAϋ? +Gmkb*}^l_"l[DZLX?>k@?6k kqH9%k?ތ yGw?m}>Afb_"lې6\ws}7XX7 ; qmc?ދldoC]ۀk?msヘ@͠?  ]$Rζ- fm1c ?}>g?4oa`rmK?> 8lcAmvm ]"Rζ ^z,?p\Oaww0pwO)gۧ O1)O ? 2pwcH9v%x~/_}_ ] 0rN?v|?v3_nk qH9$?{%GKw?mo/{ #g"lZ&ߑu,&Q^T~Ÿ,_DV@PTU׍XLQP_Q*]^`SJ Q*Rζ*{$C֋= c1G1«* qH9j$U?L }jW5 5"mr-21[4,˼c+ Q\>+{ev&"O?qw~Wյ\wvOAi{ e>yt)w€_ރl2.ɱޔMۋM ^0l~M+~< ð]x n^,RhMy9σax n^Yontza0s8k{*ȣl|/5M۫}][)^)W)g\ax]OݴHe9voxHݴz]{WC2l6͔MkX 2'u w5Se4vu;w"l,c|Se|vi{mrO e7Me(ל5KݴH3Gsٷ\ߏiArrgm5z]]GݴHuӘ״v״!f1.}L8k"l_H6lvcM틙>| }Al_ʼYJ6O9}msH5xd\g F_:k{:;SY_E>q~h]v9v]˾HݴHuAd,4vSY 8rUlmzɯ߳pre꾖ti L|(7k)Rhx}ř?L4S~7m?J`Ͱ]CV8k{w[[#ⳔۙcViǬ ה;6;smvٹx^fr\4/WMۛg}7Ӻ+RhaCe|랻eq=A^&d^{=ۏ)g|ޣ5 }}g"l/b^DWv"lO9a| "l{uһr{o!RLM>>R#;m{H90{j:O)g{Cw+F'1Ϸ)g{MN:_lo<5#wwH9ۛ3uoNtZSD^´lo5dNFm6t~?i"loKloK(.RLۓ:"l ~ϸS~7mo+RN>/ΪO_guH9;ӸvrN0wD=aۉ'IeNE ̓~/[-Rh4?] rB󠙶&ۇ:mAnQ"8y"l˴},>i)4ixFm X(;ym3mnvڦHyLH[BB󠙶O"owS>?|~>q.}őlFc)w)g >E/\1.ǐw)4Z=g7W΃n] L4FiE>o'?/]#XQپ9Ni:=N3XoTپetM5VeM6?Cݴwhv4sr]=Xe"A3m_I}V󠙶"_v"l_ô} پi/)=g_wiN۞{Ξ8m{tOw}:}\9{MKuZ{qsQ6΃&?t{(sowsv6t::޷}Ktr>>R~=E.@nr_TAwlϿg29:ѽj0lA!l?r]}ıcqXFvxE2{+{wz}O(ԁ)cO$g<{fΒ<{^uIy8gy8g38[A7<%ًT<8V`l)X*MyxS,ޒ,=~̶=SHd%^fT< 3i{b>n&o=}~]O_#~  =Migo*:}:9R?G6*X^Sp`}EYr_SR5\N*uVOIWYorRNo tUAP[TyeR$4i椷ޗw۳{bڎqNnoS:2NbCs<VzA_;Epgʵ[k]UWMVj?V^U;.?Y^üFZ;nb_`kQ?8eM]omZT6 @BկM}z{üFޑ5*/#Qloc jcmRsPNV">4Tކ}ϭ @uDc 2k~!guP y:(_yw{< 7G^# !W??hLVuTL+??JGx첽](tQ>k"S˂}bǂz6ҒkPA){MtNqWC\yy_vmn~{Aqҷȏo nʌkr-2cOknݠHZy g/WQ2EW>PXXl61ڃ[eMCuQc|)OX{Lc_+sP?t gu} /n+y4=o/~c A<՚=-jr ]ğ6e?-#/s>eV\A?-\#zq1*)$|R\?!=cIA)Rк_߿| |L|  |d[j;Ci+k>@0U@B}pmS[U^AcWo#JB|8⛧ʍXjx^kw7Å0C]~Ǣ|I>|{ǏZ|{7D107oLu5 SOrߣ66BR\S}cOȧ o@_cA/,oˢ \ض\hw!!x{|\3<>>Q^|]7qW?_y0{iYdOB[xh/~C?X hr޾r{KljoƋ_q|? k85faŸ?&%g_zr8 z%F<SrO +Ծu忛h`cɗ76!ɿVK/t_gnNn2ƑP,nOSq9D|9䋟3nKw 9~?~?JUnsss5߲ٟ˪e+ b| WR>_<+{A@a |$ʇ#mqۏr)57u C_aU?y}jG?jO5֎~Ӿ]7 _}U~ӯ(ͿGH>^ͤ6r*gI oռ4So*K.0zj `݀>s~7 `짃tW{e*?U-=M{/{_@P ;>#~7`>O?>S^L?G8\/`//"/& ;`]:1?'`[쟃s /; ؿ`?g{žj=r`/~+2ث:k&؏Q`?ǀ>~؛ ؛س 3~&`o `"_K~);;د`7V ~ػ;{7?}` w}$G=`1``}2'}ا`Q? '}؟S`ρE2_`o}9ؗ`W}{`C` `` _}'w[ =O`?`쿀g/ 6d2 ɨr&5dߛ*c9OSVyf(0yV3Sz}_wxѳs;g%=ij?V͘8cȂE} /#x6%`n)ox_+,h/ e eA{~aW:x>%=3 L7Y^⍵+Sx~bW+o" WA%9^˂/+U ,h_tϹ {p0=sLSxs_e7b}}>«׬-;2x΂Efp%VކxG+ KxY,h_~Y|%Gӣ{,h/6Z_x(xzzzWW Ϭ_;,h/ƫhn= +̂EѬ_}8o'̿=.΂}~xqwq,h/~6)xT|k䝨/@O%^k ^`;YxN(x5^*m,h/j[5NUj^kO)xuzxͼz1;ko~\ 5A,h/Ze{g(xM5^ 9൰G Lģ5ޙY ^KkMZ*x;ϏF4kRd{Ώ3k坭)흣r?'K^k'KiI+6^[OxB{: my͂f?+1;;O%^ <|U3%^Wk  ͂E*k ]`/`Y.Rk!cw^? w'KQ~\Geww'KԻL GY]]E6 Oƻ"gA{ǟuTd"o}8 i|ϫ<^:BsN l/fVx<پH#hՁ> Kkk<^=>?ֻN%<پH>?^ o5 ލ b[jww޴ƻɻY{VXݢxx*x+oqY[:k΁n< Kx]ﶳ`ww6YuU6kN> K֟yygA" oS4x=<,h/Xz+x{o5^@Ð4x},h/Z)x$$ӧO/ғd*Q%iK$ڒl/>o1KИaCg(< PdhԠ~0~QgQ,A")jXYjXJa:hj\[j\b%h\3Ex3h`JaG[YNf\`ΰiPSȹ{x4@C3ǬiP#̗Y0_Xϗʚ& 5Ds`̆2zT4K1 xij $Uj%hBd& 5L/z!\_^iP ̗`f=_jh*@Ey_H HYFj|˚Ϛ& 5TI`X X*Ac6ښښ 5XazdiI4_*k|iP>\_#њf 5^=gOhr,5`uJЀmm}jc4j6FxIC gߧ4k_$Ѭm[wiC vm7׳ 5j;//i8԰mƭA `~z~iP^/ @  P䡆W/a)v󥑦CēߠRi2hxFϮ4_$?R_k I4jeJi+% UYDVM)  AS4!jk54hXwYDa/ ;ֺf^M(wyDWώFYsMF?L~2hO/Ak5/[T6MTOyͥߩ_ ZhLP>O>[YylD9 3 4vi:Qٚ5Y?@iqhi>Q))6yoJӄ+XkZ4l u<iJQ* %jD ,5KЈvxJk5Ym4M*jH~'4yӶ%hLgMSσALiZQ*'*x_ըNԨWF w ͺ5Ml$؉0qM3מRy4v 5Mm$Z^@iہI4{?_lo~D;34v]ivshvB#kizQ;﷋։ﻭs.4F[w F hR_;ef5X#T.&h&Xk.4Ũ5WhII4ǹ0\A$XM?_kR\iQc,KS}LRGMӌdj~:oQ,s&9ۚN&5b__}o՚f5b_}?O^>OFTZ k55jž|w?}޷}{F p>< "zME n4݋hxFۮ5$o%ߛݤiL W{[a͚f|E͸ߡwEӔL)qn4_[߁묟v4hޅ>Y_D>34v#o4h>6YwyߔD1ŚϮ&~KM'u4q mY]w~iQ#o]=5M$|տI|zkI4jAi'ujǃIrx߮~~$9j?C~m5֤9?`g힗G@~@'ĜYi S!?`j&x&yVt~z)i(/0|}0&ut~L zi(B>':? Ɠz~sB~T۝z~`_t~@'v@?-!?`2}_P)=緛/z~!?  z~Kt~@!nD@~@ߣ ?ziA?=S ?` FLL=3:?`*L=0 (:? ?|ȇ䃞y緻 SAo7_!? ȇ䃞߮0v׳0(Ao_t~tz~C~t/:?Sz~0vEB~@!!?ο0/:?`=`t~ vÈ=]3 ?` 3Ao,:?`&̄fxfِ߮0ӜA!?4 y/9?` ,=4o@~iX Y zix^=iXK@oW!?U/:?Uϫ/:?` ,=K ?` XK ?%0%/:?` ,=] ?`,Js~0Ao2 z~^@RB~BX0/:?9xϥ9?`.=]͌Y0 !a:?  ?ykt~$$OJs~$z~@~}y`<Oȃ<00 z~!? v?DC~@>=]z~!? vEC~@>P)=9z~;A~4}?0 A~]`<@o_t~4z~A~4/:?`g ?d́ 59 l@@SЇ709Fh?5M24ljZej|^׷+ie{Uc^L> U|u+2^W5[4q/cWNӰ=fW^ӨF ^M.۫Vx5lj[ie{UCF\W5⻬*ip^Հo«ie{U^M-۫Ojm^hbWM`{^uMc-۫VxGhj^P«ie{U#ޑZW5ˬjjg^8/«ie{U^mM,۫4 lj;Jxњ#yhWGo͖9}1B Y.«i|?M ɠowѕU+w'h8w{vub4Ac; U m_+5ljdN4Oh`{[54qkiXe{UjwQ2x'i2W1xN45^M#ZjX㝢i@k^mkƳ6ձ;Upzx4f=VxiL^`545隆154M59൰ki[^Kk35 cKkmwQl xY4^;kVư൷>4|r͸MPkie{UhwF] -ڹd_ss5ͿsM_]4v]皾1B4{ACgw xi7"M6r.4l97;]<Ш]iFhkK5hgE.4АZ]i&$ш]iPsgAx^5ޕf;j,5vc 4_IX.+5 lj4R5bvhjuyX#l5i-ƻA(-x7j5MM[aw!Zx+n4B+Oh[ݪid{UdYx]4 z`wxn48o5^WMcZu44[o5^wM# vX40;o5^OM X4,{o5^oM[4(5^_Mcr~1). +5ſULGbKC4 EsN㫟s$7[k71Q8ߏMP=濁2df50L|T[RL'J߁)Ʒa|{B|@|C3PMW|{s|C{ ^6]I1 ;;s"w8`;0C >wA>$~ ɜޝb|7;3H^;];:4pHO.#N7x;;.cQ{ >c ~hat|k+p|'߱  Cx^S?]b|w,w<Fp:xo^h!!>!~h?>kF+9)wa|'A|@|A>)>kt+S83Soa| B"N7\%]b| -<C{~!Ar|g߇ ;0QgDu:?߹)1΂>yY'oRwAc9y?ώs:VgR<΁΃<CSN7\C,]}>>mߧ!>A>? lKW|.J1 w!Eڟt|58S]}2 #/;pMtEa|_y":p t)5.y7ofwE]fߥe?//w:ߕ)wa|A|C|C?ol⻜&m߷ oC|VAV} MW|K1 +#9ptw50k k!>Cо& רNW|nH1w-}χ?t|5ߏ8[RFnnl}C} DOW|ݚb|7w#w3_?okЧ+9Rg?a񭧭EwG0[!_@|}k+{>4 0 !>;!~hat|kLc|I1; -#:w1;9{Sn~ o";z?19S{"?91?p|N1 sNmiORC/NǷX;]=ڏx?ʱDWI^#I;i?:|q|J1 -̀}j} NW| 8ߙ C,i>b|gw&w1gFs:,)wa|Ά́{4w6;0C|B|Cx}F[{~;lo߹!~ha^L;B}0 @|Bо ¾ޢ2}n]iߕ?v8~ kx[Po.0DZOX-I;u}Z%s"##k9;?k~L)Ώ)cg g""ݝ{5?)Ώ|ɇBўa/7;?k~LRSy_XLJj_~^?(]󣐏Nq~7p~| o"G6;?t/TZv>V vwGXߒ1Ǔ)Ώنl?ωm`ww~1y~4Ώ{EmoIS{;//s:+io{U)r^s9@|~mMo9צߎE__t|+iRՆ{u-뜎o[z%|>{K0C|\E5_t|+ۈ47㛛b|GwwgwB|>^JoQRhn/:m\;@gqqq_ E73I}17SV)SW)!MEc7+"%jvZ8 LCAM=Nr/+HG^/ґUNp"ܩpȶ`*'a- '۹oNvґoN:=غIx}(NmNёzl]Ap"Ix~ڧqdJpRɐ[YUqP8DT rr*1$9pR8G\!NE' 9iŜpҚ88hM rr4sG'qЇIt rҁ^ N 9y9W8#<`*'}!'_NMNg#I9O|(tH||nR?ke>k|jPgӌ@{ ?e3\J~ЯD.O?/^M3g#.:sIg} 3*9{\X>`/Ms~5ހפx}$2wpg}/#[=oqme5}4~ӾWwq`X{}"_|5t>Tׇ$<=1=3G?ƾD5q~wz&y~<{z%|gx??8}?_5M41rO>7g}kF ?x牛7Ys}6GJ_1|n{mjhkfx/uC&/e5}ﵴ<÷ uo1G8} dr[׺we~K}}?*T~9f?2|vq;".g Y?˄kڛ<.8"\SsõM|ʾaɽ6kmºd|M{x27||s=|Gӆu&׺|׺p^?;{@c'}A>7p^￱˾H cN~RrNޘ^ +^}?i93&Wd߫8{z%|j{%ӾB5|2}@M2M9N{mCߏdߏrp>ɜ9_9ߌ^ ^}+{?9c8k+97͞Q$gԧ+{cCM=;XCfN~77T=i[+{ k|;kݙJNlZ~\S-];\h{?k=~c5b?'vs |o>u9{xyr{xMܧ |9ǵn^/IG"[;Yk1]?*nd\z%|aQE}[+7}?^ ߻\~/|z%|j{Ӿ1xvz_Nގ^ ޏ}+Cw8JcP.}#>;HM/Ww.# ?M~7}q̕_N YϬ&: z%|d}ӾU7A~>;͏yZ&kyMkyuW|[?컬!^ E |Q?&o#x9ppmZ98yNk_IH=廜#v-?㛭wwz+Y̳~<_E|}o/ϏW|enWņ/b_u}K7&z%|N~30N~ 4}ioW5u{{NuWu˾]}}t}kP;BOϜo5v:g;o3{}o%?黜3"}en}Ǒ1}ӾWǾ}:9ȾppM/8{&7Cf9{1[&͋\lMo/Zg5|ʍ'tgm(':gM 8ùX$P/b{54dzĂ ;`:2 6pp] u XжFGۺrv'9HmGRt$'(':jY uNry XжKGґU7d3Cmc=tdT('kp2׌Ăz,l+8I[NwXS9OG`[QNubS礗eN&ґz"?f8I~hNfNБiz l$\'B*,dnbA}@&'zo 8܉d6 sRHGօt$?(':p?p"uvEOtQj0l8I>.ND.Xg &wvwnr݀- y;9tdCGfmr'';&X3+dyZϣ#sVG9 יԀ&&=5 bAM)m?#}bX#^fd!yZ/#:I.zNwe/^%]GinrWրQN2zՋmZھOح2DԱ⵭bA۷im%`MN2DԷ{Ӌׄ{9YFGSetdi}QNupyۥe-6D̥E|ƜMGVQ[vdu9}_+d)wp 8Yw=d-yZ#kӎr'k߇^|}X  d&'z{ 8u#:OjYlqp>N60'N6ґz#l]$\o';K,h;g1 $\y3Xv*v }79 lV+&Hi;쓃}79 o6K '՘Z '5ZE ZupDNdNV8MM\&N rhIsROqPCd[W9 Y4srI=8qR'غIbND.FW͜4>@|l:I. '3'NFUNM8iĜpҘ88hL4 rhi 'MӈUNM8999C9qpqќ895غI '3'-NDVq 8e&'z&`NQ8iIC\$NZ[W9 ׉4srIk\5q*غI~ 'm N#.$.#N[W9 ו4|椽I;=qю89?غIޤɽ2^qў[Wu(pr UpϿmP}h&'# 8)5G1';imG}D&'ẕ&u~BWp?$\r'p=F,h{O$O$\r'7p]Μc Oi;}79 ׿4椫I+qх8%غI. '] ']EWKupLN1'}Nz}I`*':&bN(%}^UN5M8ǜ Q8H !.'np29p28F\ !N[W9 4d(s2\$8N\'Ctpr'׼bAi?d $\ӄ= '{QɈ`*'ẞ&͜U8M%.F'w[W9 fɽ\~} NiNi:fj,hO}SN&SIɄ`*'ạ&<Ȝ+Eq`up=QN2'3N Eq25غIΨI3*rDmN5ӟJA`MNGs 8k>ƵbAۑK{ɞI.IK*rU\pI\ $\.NDR| h7I;swh(ms>4wp}"og!I 샃}79 =hɳK~|mXж $\Մ '"`*':&,bN^S8YLF\,&N[W9 O5d sLd)qXJ, rj[ 'ooo'[W9 [5JJbq`*':&`NV+$V+UNYp"곊:"k-Ci;}79 m5]d:`=q8y7غI '똓N뉓uUNu^M89٨p8H\l N>rjɧ 'OMUNuaM89٪p8J\l!N> rk VdKupYN>gN+l#ۈσ˚p%sbqeupYNfN("њp9Adqq8l]$\ք} '{}^`*'&ȜT8O$.'?[W9 ׵5d?sAW q?غIޭ '?3'7OAd9lSnʈd L/OEsH@ICM:x6"Yb.8B{iǞns>>m^b |'qXXRB\6T09!`˺ֹka]sKs[ TY ^Zl/uD+ l/Z-xZ^^ 5`Jine{72Njiube{'!UJk5Ve{'-gWFO*K<#aWV)K $m=d^U_cm- 0Jx'kV6ְ ְ;E[նkZX㝪;ZY5x Nֻlxb ǓkkE5:5^FaSkn}~ΏhLm]'֙; ,mM6>[YB+zf}YG+VZ`}6-VxgkhʺZ֠5O[k7zNw[ў!ZHj:Bvjk[Yn|ik[ X] x#kk*Qm=Q0_F[R-4o5eZ8`wC>&Y]_O<΋4.J.+_>[ 3+g+9Y]JVx\M>[lcw(g+yY]J`S+k:>[ɷûNM{Y]u-x7h9QOHjwO$g+Eͬnrqdl%7n|7ky,+`|+wƷz|jk`|Y=X[oE xi vM/ Xǣj=nNy+okm0֟/{hr-ח=x4]k[4x}5-A/u"'n%Sџ.K\M~Z3Ӭ]N21 DRQ.Ο&xgh:ˉ]pt6vLM$5DQbݎz(Eno^YcKj|T$K:(G3j^FI[Ni^~R廨A/jAK9{9M(QŅN7Uk:J{~,S;{M)5Qxs>UI|/;0MK+Qnj|k_Ӎ}k>Q(g[bA/5=?G>[ZZ(簮vxU5ԕG>5ϊg^MK |BX (7s_|=/O-WADK9g}U<(||g}?R9Q/Ud~I?ﵴ [/^Mkky@2o']YZΒ1}_KW|(Z7}?Z[Q'g;&̢| 4b=i/<e7r~T[ua渏q:ikɎ3^}Ӿ_{;N~F$C'\7N^M߯>kG>U.ti*G>Q>Ln~\:w1x78{'mk^u߉{'h{_-֎q;\muku:Q~\<Qx vڟ7YE}^[[~/8 : }_ľ7jk5|_º77id=(_gmr6wZ+ wNnJøฯr:j5&{NǽVca帿tܻh;}iol0N~VeVe}VkfaܷptܻkuqsWNǽVgKQtZGS7s9nӟzi}i{kuӾjN7<{_>AC8{?o̾r7X81JvR~NM6[}czCSwBS1keD`6#2Ip?yaܯh.g.7.w>wn ϔĵ+qe+pN(?*~G~OfVIO6o^"~Y?2 ~Y#.Y\3=cƈ"rٕp=6kXn75 E[%9gK>mZ+ zC3\ r[Q q\=sI"0NJ/m6c\lcÒfߌz(>x8 }q2gcyg,C؞CCʎ ίݢ_{jA-AAq ڬyӪ˕_+n5'W{MÂ*TGb Bُ玔5Ƌaw sDʕpxy ^^`HA*j=U*|"U8+#ÁxPPBu"cc2?EXt\'vth6s̆,k'w+{}g ЎV爿+U8v{ռ7AM_ Žk<:"|1wuS*;\4=u͹ub[MuŪjOwlz'~:so{u^w*7$8s*Ʊ?;u5T7~|H]:#+EWt9?\Tc_@o^0)&{R?y#,k=A;1u̇9"АU/a> >zy10r0͍).#v-b})i*[XgGs>fq$cA}>JGo>ZG_C|;)#q&[q]3sd}徎LWY_Y_Dj<gko~kxkQ _ψpRϝ&||gdӦŮsG\?Oﳉ;FJ_곉_7tSn:.MtΛ&Z=?s?҇ӽA35`_Y/1g;o1>gdsVN܆J 3?D?QC?ϯ]%~m78mKN,S C$ǿ RΏ^t~ B6]Wyܟg/?̇YzMetulr9~>SQ+0Oh'?xû8W$sxgNW^tݴLQy{"R\J܋V>9Q3leg\rR\Jg="o~\}A}1J su`39>/c0Opb]c)>*}Ἦ2K+}zO$iwk|6Wp_Ws|w1Ś G&f=n,lǥzg;ۅ:o1={=Eպ7oOTǢΜ׳{Q~OaK9;1?b,y~Y*Ē,n jVi{8ߋ/SsE(@ $  % Chart Excel.Chart.80*Microsoft Excel Chart  Chart Excel.Chart.80*Microsoft Excel Chart  Worksheet Excel.Sheet.802Microsoft Excel Worksheet !Worksheet Excel.Sheet.802Microsoft Excel Worksheet "Worksheet Excel.Sheet.802Microsoft Excel Worksheet #Worksheet Excel.Sheet.802Microsoft Excel Worksheet/ 0DTimes New Roman(0(z[ 0 <DArialNew Roman(0(z[ 0  DMonotype Sorts(0(z[ 0 @ .  @n?" dd@  @@`` 0%A8 B @   :o"$$\$tUeO"$pEuH܃JO"$Pz+?&Z["$Rק4C7D"Ќ|I $"$cDXGRԛP}S 0AA @8g4XdXd@z[ 0@ppp@  <4!d!dl< 0<4BdBdl< 0FlO ʚ;ʚ;<4ddddl|- 0Xr0___PPT10 2___PPT9/ 0? %n:PStructured Superpeers: Leveraging Heterogeneity to Provide Constant-Time LookupQP( <B Alper Mizrak (Presenter) Yuchung Cheng Vineet Kumar Stefan SavageCC>   IntroductionP2P are designed to distribute functionality and resources among a large number of independent hosts Distributed index: Chord, Pastry, Tapestry Each peer maintains O(logN) state, provides O(logN) lookup No bottleneck, no single point of failure Centralized index: Napster, Audiogalaxy Provides a single message lookup The central index becomes A potential bottleneck A single point of failureje(;1e(;1  PF mKey observationMeasurements of deployed P2P systems [Saroiu, Sen] all reveal significant heterogeneity in The capabilities The activities of their members Most peers Are short-lived Have minimal bandwidth A small fraction Remains connected for extended periods Have significant storage, memory and bandwidth resources This population heterogeneity suggests that Performance can be improved By assigning index state unequally \Z2Z Z'ZZ`Z-Z@ZZ\2 '`  -@,&p Our goalLeveraging heterogeneity to provide Constant-time O(1) lookup Reasonable scalability and failure resilience By assigning additional state to these high-capacity peers, or superpeers A design point somewhere between fully centralized and fully distributed `%H%H? J J OutlineSystem architecture Lookup and query routing Bootstrapping Detecting and managing failure Load balancing Evaluations Analytic scalability analysis Simulation results Conclusion`U 1 U 1  System architecture Given a P2P system with N peers Place each on a circular identifier space, i.e. [0, 5) Using a traditional DHT such as Chord M peers with high-capacity are chosen to be superpeers and placed in the inner ring The outer ring is split into arcs Each arc is assigned to one superpeer<Y&Y&6 \  System architectureEach superpeer is responsible for maintaining Superpeer Table: The mapping between arcs and their responsible superpeers Peer Table: The addresses of the peers contained in its arc N..< 1>  6 =  Lookup When a peer looks up key id It sends this request directly to its superpeer If id maps into the superpeers arc, then Locates the peer that is responsible for id Returns that peer s identity Otherwise Forwards the request to the superpeer who is responsible for the enclosing arc for id The second superpeer Locates the peer that is responsible for id Returns that peer s identity xZJZ ZmZJZZ5$) S)PD  z < K *How are superpeers selected? Bootstrapping+$ K As the first t peers join the system, they are also commissioned as superpeers This provides An initial set of superpeers A division of the identifier space Putting the system into a consistent state Additional peers joining to the system Obtains the identity of their superpeers from their immediate neighbors in the outer ringT_l'Z_l'Z>D !  2 .How are superpeers selected? Volunteer Service/$  Keeps track of the resources that a peer is willing and able to contribute to the system The metric can be based on The lookup message processing power Storage capability Connection duration It is used to select additional superpeer candidates in response to increased load or failure<uZKZ^ZuK^ 5 Peer disconnectionIf peer leaves gracefully It simply contacts its superpeer directly. If peer fails unexpectedly Its neighbor detects this through the periodical keep-alive messages It informs the superpeer In any case, superpeer removes the disconnected peer from its peer table `+_J+_J>1 y  3Superpeer disconnection Superpeer failure is detected through periodical keep-alive messages between neighbor superpeers All of the peers in its arc must be reassigned to some other superpeers Each superpeer replicates the peer info at k of its inner ring neighbors Optionally, construct the peer table by traversing the arc from one end to another, using successor list All other superpeers must be informed about the arcs mapping changes ';HE';H+EZ N >   2Load balancingfWhen a superpeer s load approaches to capacity, it may share its load with Its neighbors if they have sufficient excess capacity New superpeers from the volunteer service If a superpeer has sufficient excess capacity It may absorb the entire load of a neighbor Return that neighbor to the volunteer service LK`.[K`.[> r  zLoad balancingFor the capacity of a superpeer Hard limits not to be exceeded: min, max Soft limits for the target load: lower, upper In case of The load of a superpeer exceeds the hard limits The cumulative of three neighbor superpeers exceeds their cumulative soft limits Load balancing algorithm Shifts load to neighbors: Unevenly distributed load Introduces a new superpeer: High load Dismisses an existing superpeer: Low load Y   #    b r 9  "  (Scalability Analysis Storage Requirement)$ NA: the number of peers in superpeer A s arc M: the number of superpeers in the inner ring Storage requirement at superpeer A S = NA + M For N=1,000,000 peers and M=1,000 superpeers Each superpeer maintains 2000 additional recordsxZ Z.Z1Z|.1b  ) 1  "&Scalability Analysis Lookup processing'$Each superpeer has to service All lookups it receives from the peers in its arc All lookups it receives from the other superpeers for the peers in its arc NA: the number of peers in superpeer A s arc q: uniform lookup process rate in a second Lookup processing rate at superpeer A RA = 2qNA For N=1,000,000 peers and M=1,000 superpeers and q= 1 lookup/second Average lookup rate for a superpeer is 2000 lookups/second Easily achievable: i3 system [Stoica], 25,000 queries/secZ}Z~Z ZDZ;Z:Z} |  D;.  i 4 M 0 2 5(Scalability Analysis Maintenance traffic)$ Analytically predictable factors Peer join/leave: Immediate superpeer must be informed Superpeer keep-alive messages Analytically unpredictable factors Topology changes of the inner ring: All superpeers must be informed L"T#E"T#E><  _ Simulator methodology8Modified the Chord simulator Target P2P system with 10,000 peers Fixed parameters The redundancy parameter k=2 Lookup rate q = 1 lookup per 20 seconds Superpeer failure probability is 0.036 over an hour Keep-alive period for superpeers is 30 seconds Load balancing (min, lower, upper, max) Determined empiricallyvRR, @ MSimulator methodologySynthetic workload Simulation results6The # of peers, superpeers, and average load/superpeer77,  Simulation results,Average lookup and maintenance message rates-- ConclusionOur approach Constant-time lookup Configurable degree of resilience to failures Reasonable scalability over 1,000,000 peers The maintenance traffic is low Load balancing: An equitable and achievable load distribution Reasonable design choice for most realistic system deployments: ? ?% Bibliography b Stefan Saroiu, P. Krishna Gummadi, and Steven D. Gribble.  A Measurement Study of Peer-to-Peer File Sharing Systems, In Proceedings of Multimedia Computing and Networking, 2002 Shubho Sen and Jia Wang.  Analyzing Peer-to-Peer Traffic Across Large Networks, In Proc. of ACM SIGCOMM Internet Measurement Workshop, Marseille, France, Nov. 2002 Ion Stoica, Dan Adkins, Sylvia Ratnasamy, Scott Shenker, Sonesh Surana, Shelley Zhuang.  Internet Indirection Infrastructure, Proceedings of the First International Workshop on Peer-to-Peer Systems, March 7-8, 2002 2 8G  .#G    " ` .T3f` T3f3f` 999MMM` lff3f3޲` eoHff33Ҷ` ff!>?" dd@,?nFd@ d " @ ` n?" dd@   @@``@n?" dd@  @@``PP   @ ` ` p>> y(  bF   @T  C# Z  BCEF @` o   BpC=E$F =pp @  ` 5   BpC=EFh=pp @ `;    BpCrE0F" 5EhrrpEp5HP,5@   ` ~   BpC=E$F h==pp* @  `= c    BpCE0F" `Xpp@   `=     BxCjE<F&-=0j==`=8jx=x- -h----@    `: u    BpC=E$F =pp @  `     BpC=EFh=pp @ ` A     BpCrE0F" 5EhrrpEp5HP,5@   `   BpC=E$F h==pp* @  `     BpCE0F" `Xpp@   `     BxCjE<F&-=0j==`=8jx=x- -h----@    `    BpC=E$F =pp @  `R    BpC=EFh=pp @ `    BpCrE0F" 5EhrrpEp5HP,5@   `   B#CqEFp#q#'p @ `]   BpCE0F" `Xpp@   `_   BxCjE<F&-=0j==`=8jx=x- -h----@    `[ B  Z0e0e     ?BCEFvvv d @ 5% 8c8c     ?1 d0u0@Ty2 NP'p<'p@A)BCD|E?||] @ ` B  Z0e0e     ?BCEFvvv  @ 5% 8c8c     ?1 d0u0@Ty2 NP'p<'p@A)BCD|E?||k @ `  s *0    T Click to edit Master title style! !   c $Ȓ P@  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  c $t  0  \* 2  c $ܜ `   oPresenter: Alper MIZRAK(2   c $ 0   ^*(2Z  B޽h))? ? T3f3f Dads Tie1  0 _(   F    T   C#    BCEF @` o    BpC=E$F =pp @  ` 5    BpC=EFh=pp @ `;     BpCrE0F" 5EhrrpEp5HP,5@   ` ~    BpC=E$F h==pp* @  `= c    BpCE0F" `Xpp@   `=     BxCjE<F&-=0j==`=8jx=x- -h----@    `: u    BpC=E$F =pp @  `     BpC=EFh=pp @ ` A     BpCrE0F" 5EhrrpEp5HP,5@   `    BpC=E$F h==pp* @  `      BpCE0F" `Xpp@   `      BxCjE<F&-=0j==`=8jx=x- -h----@    `     BpC=E$F =pp @  `R     BpC=EFh=pp @ `     BpCrE0F" 5EhrrpEp5HP,5@   `    B#CqEFp#q#'p @ `]    BpCE0F" `Xpp@   `_    BxCjE<F&-=0j==`=8jx=x- -h----@    `[  B c d0e0e     ?BCEFvvv d @ 5% 8c8c     ?1 d0u0@Ty2 NP'p<'p@A)BCD|E?||] @ `|  B # L0e0e     ?BCEFvvv  @ 5% 8c8c     ?1 d0u0@Ty2 NP'p<'p@A)BCD|E?||k @ `  s *XC M C T Click to edit Master title style! !  c $    C W#Click to edit Master subtitle style$ $  c $ `  `* 2  c $D `   b*(2  c $ `@  b*(2Z  B޽h))? ? T3f3fp |(  |  | NdFkk z%   v* K%%KKpp | N,Nkk  @%  x* K%%KKpp | T0Vkk z   v* K%%KKpp | T`kk  @  x* K%%KKppH | 0.k ? ̙3380___PPT10./pF nf ( x d l  C ( ps@  l  C ( r 8 r    c $* t  t R Department of Computer Science & Engineering University of California, San DiegoSRH  0޽h ? T3f3f  @(  l  C h    r  S hP@  H  0޽h ? T3f3f  P *(   r  S c    x  c $hdP@  H  0޽h ? T3f3f  `$*( 3 $r $ S ģ    x $ c $P@  H $ 0޽h ? T3f3f  p(( @G (l ( C     l ( C P@  H ( 0޽h ? T3f3fB    7,0 ` (  ,l , C 4    l , C P@   , <j7,$D 0  s   ,# ?,$D 0f2  , 6o H `  , 0o8  `  , 0o+`  , 0oX3` , 0o( +s ` , 0ol 0 7,0,$D 0 , B0X0 @ 0  f2 , 6o jk , Bdi > 1   , B=] 32  , BŐ@0 > 3   , BʐPp ? 4  H , 0޽h ? T3f3f___PPT10+QBD' = @B Du' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*7,%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* ,%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*,%(+  7A0'( @ @  0R >0 s *p0R =0 s *p r 0 S \ݐ    r 0 S 0ސ@   0 BߐP p  @ 0  d 0 < ^2 0 6oTY ~L  s   0#  " f2  0 6o H `  0 0o8  `  0 0o+`  0 0oX3` 0 0o( +s ` 0 0o 0 Bl gW+ > 1   0 B   32  0 B6 &  > 3   0 B, ? 4  XR 0 0   XR 0 0K J|{ XR 0 0" XR 0 0<nXR 0 0M~XR 0 0( XR 0 0'XR 0 0bIXR 0 0:kXR 0 0Vq 0 B   9sp0  0 B }  5sp1   0 B8 Q  5sp2  !0 B   9sp3  "0 B\ { JZ<  5sp4  #0 B   4p0  $0 B\ @$  4p1  %0 B  4p2  &0 B8Q  4p3  '0 B8^{  4p4  (0 Bt! 4p5  )0 BP%! C 5p25  *0 B$6 5p26  +0 B+Lhe 5p27  ,0 B.g& 5p28  40 BH3   6m4 x 50 <A  ?? B    60 <7p 0  aSuperpeer table  x 70 <A  ?? pB    80 <D6pp0  aSuperpeer table  x 90 <A  ?? D   :0 <? P  B Peer table  x ;0 <A  ?? p`   <0 <C VP  B Peer table   @0 <0H 5sp0 A0 <L` 5sp3H 0 0޽h ? T3f3f.  6?4 ( \ k 4 (4 B\d$ 4p5  4 Ba#} 5sp0 r 4 S 8c    r 4 S _P@   4 Bew  @ 0  d 4 <wwi^2 4 6ow?0L  s   4# i2f2  4 6o H `  4 0o8  `  4 0o+`  4 0oX3` 4 0o( +s ` 4 0o 4 Bl  > 1   4 BtqsG 32  4 B8o > 3   4 BsYy ? 4  XR 4 0.XR 4 0 2XR 4 0FYmXR 4 0XR 4 0GXR 4 0n9bXR 4 0WXR 4 05]XR 4 0 !XR 4 0o7 4 B 5sp1   4 BlBR 5sp2  !4 BDe% 5sp3  "4 B  5sp4  #4 BtE|` 4p0  $4 BDp0 4p1  &4 B 4p3  '4 B& D 4p4  )4 Bd7 5p25  *4 B4z#?: 5p26  +4 B m- 5p27  ,4 B#  5p28 b -4@ HZGW>HfkIom ,$D 0b .4@ HZG0*HLIo ,$D 0b /4 BG~H_{IƃoZw ,$D 0R 04@ HZGH9Iommy$,$D 0l `w >4q,$D 0rR 64B BGH!Io` @   :4wR 84 6@` :  94 <ȱ  6idl  ?4,$D 0R <4 <P`c :  =4 B  6id %4 B `D 4p2 H 4 0޽h ?_4 4-4 44.444/44404 464 T3f3f___PPT10+"UD' = @B DM' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*-4%(DX' =%(D' =%(D' =4@BBBB%(E' =1B B`BPB1:Bhidden*3>+B#style.visibility= `B<*>4D' =1:Bvisible*o3>+B#style.visibility<*>4%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*?4%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*.4%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*/4%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*04%(+  <(  <l < C      l < C P@  H < 0޽h ? T3f3f  @$( xվxm,7 @r @ S :    r @ S T0P@  H @ 0޽h ? T3f3f  D(  Dl D C     l D C P@  H D 0޽h ? T3f3f  H$(  Hr H S     r H S tP@  H H 0޽h ? T3f3f  L$(  Lr L S $    r L S P@  H L 0޽h ? T3f3f  P0(  Px P c $    x P c $P@  H P 0޽h ? T3f3f  T$(  Tr T S \    r T S P@  H T 0޽h ? T3f3f   X0(  Xx X c $    x X c $P@  H X 0޽h ? T3f3f  0\0(  \x \ c $     x \ c $ĴP@  H \ 0޽h ? T3f3f  @`$(  `r ` S (    r ` S P@  H ` 0޽h ? T3f3f&  %%P9dB%(  dr d S     r d S \P@  3  d #"2&r@ !  qd <L? X  M1.0 @` od <?@  X  M1.0 @` md <p? @X  L60 @` kd <,? X  K4 @` hd <? X +  M0.3 @` fd <?@X  +  M3.0 @` dd <?X @+  L20 @` bd < ?X +  K5 @` _d <?   M3.0 @` ]d <0?@   M0.3 @` [d <'? @  L20 @` Yd <0*?   K3 @` Od <8?   M1.0 @` Md <A?@   M1.0 @` Kd <J? @  L60 @` Id <L<?   K2 @` d <[?  K0 @` d <d?@   K0 @` d <pm? @ L10 @` d <v?  K7 @` d <8? +   M1.0 @` d <?@+   M1.0 @` d <8?+ @  L60 @`  d <?+   K6 @`  d <8?   K0 @`  d <?@   M1.5 @`  d <8? @  M120 @`  d <?   K1 @` d <?   _Leave rate (peer/sec) @` d <?@  ^Join rate (peer/sec) @` d <?@  YDuration (min) @` d <?  OPhase @``B d 0o ?ZB d s *1 ?  ZB d s *1 ?  ZB d s *1 ?  `B d 0o ?`B d 0o ?ZB d s *1 ?ZB d s *1 ?@@ZB d s *1 ?  `B d 0o ?ZB Jd s *1 ?  ZB Zd s *1 ?  ZB cd s *1 ?+ + ZB ld s *1 ?X X  d <P J LSetup a P2P of ~10,800 peers d <<   >Steady network d <\   >Steady network d <|p j  >Steady network d < O  ; Heavy leave  d <   : Heavy join  d <`0 W*  < Quiet period H d 0޽h ? T3f3fd   `l(  lr l S h    r l S P@  x l <A  ??   H l 0޽h ? T3f3fd   pp(  pr p S $    r p S XoP@  x p <A ??@ H p 0޽h ? T3f3f  t$(  tr t S XC   C r t S ,CP@ C H t 0޽h ? T3f3f  $(  r  S )    r  S *P@  H  0޽h ? T3f3fJx E{j7$dɒ I6'f$l6!\TCE<@TQADw,}f?}TG;E49stMMM@BXl44o?9 󰝈K(Bv=:N"u]@WP zޠ `Ȁ Qh0 p0ǀ2p,F1q8p<&`"8 LvM`*`&N` `X` X `X VSjAX`=@lfPԀZP `'p&8 @c|u3q;j{R`)ճmߴa]y•>8*H幭DI BÖw~oH>·G;߀Kd{7߻ί;Ɣ7-wosKT|=u23wW37g6j q[)הM^;mN̦(W\9}&1䎧m{p/v29{m|y>ʷy_޷|;`h/|[fm̲{2g^2uץmRU諸=73)惜} |k|f QN\ "~w.Ke#rp\> >>׀OOkgu> >>n____7|nNu{7]~}Drz<!#c(_v? s$%x < ~~ ~~ ςvsy{G"3x  W5:'x  o n(PlU)[pPA;tA'An;z^7~?2` (`p8 C00#1  F`  Ɓ`<N'$0 LS@9 ` f)`6y`>XE`1Xe`9XVUTkitPց,X*&T-`+5ԁm`;;@ v3n gs< Eb!ap \>.W+Ucj p $||\7ςρσ/WMkfp nw;77];n]=pCG'a)x<~O'//Si+k[ xρ E'g x WkuOx mm#f   ls^A;tA'An;z^7~?2` (`p8 C00#1  FՒ<7L'Dp&)Lt00s<0, ",K2+*p*X ր4p:@`ȁ` TP 6ԃ`7g9\phk )TP0n}6Qֺ1nC6z:)%ȘB}g_;xOϳK5%stw[UPowiYvg wq<{JMųZ٫kSX{wAko޷;ڞGnuG/⹲.A# U1lڡa@<m~͒܆ZnTi;|Q-ephnp;vTaL[\;%cJص,f*)cJ4DϭezyIN|v@s^7zS&jXJkmG}*DS+]v? ~A| dnMscaݥQ]u5FwIjZ.½p/(g1hYu So]M.GBĽu躾#gTώcu\Z =6j>}߃cKjϽ<}V3&(8=*"iѸ&]Zņ ]h1+v.Ws<=}.|-kAq5U:㈕ ;ՙ;s{2ن= Us`-uU#s][sm]~>r`lUmC6[[ÕƇYŻ 6mU 9ekrrUM+(:Zz?ӢOF/s{KݖO9<#K)wr,%NF$n^gPjl>hC!Ť1i;S:>Ŏ-h~T4M{ a;r-f{t'7!m6H{4M[:E崃h>GD[Cn[Q~}`S,p-v!~*ajllףը[Kcqkdol3Ӷӈ+8wy-=xE8\6_F7s4^θmR"*~F-ֶrġx]Iz8ۖ9Nsljmi@zbnsމu ȮE# pƘ+j,D;Ugڦ덹zi*WyU&܁\Z|}19>טu;l\WjT+Ẏd8d.cnk@ͤⲯҞlGt%jJ09uΟ9\.Ưy㵙Q}/919pGV큘9i# NۛQ N+75E G^4". )')8jQm=:moَI.-Vٍ _G8=2i{͋㫹mT-B{N(f {1;%Q, S p^-5xǞW* '{^ֶi@˿WI&$%345.ct:fgq:!k]zoJ j D#'~qZ D ˮ_Q D-ChU\@1F Z/~qZ D d/NTQ P hdʼnJ j D#L]f3Z D Ȯ_@4*d@1F Zɓ]8Q D-ChU)'*b(@2KKVylm: aw1w.aDB"4|gߑgVU{6nu@RtSȔ;I/141@41@SRl#.׊u1Wԑs[lZ#`:##J M$4D͉#%&;˟_FLWt@I8ս1O(MThB]X.1Y[5g>sϵ*֤BLT [5Ynq]F&j4QMx]OLYdpL`__iRW1yc{de=#dCCo1"7y7C42D#S>a}㈑W'\>)t@AO+vn2N87Ф}KʑsdzOͽ^BLQqBL"N>ïD&4Ѡ e'<&h}>Xr%j!&ˏ&#JhM: ܡ8qKLjwqhM]R\&ppBLj-6OҤ tA.hk̉pd0K]h{k;U=ývY8:#cp uEhwgp'sk-tFpӳ2j!F6mwQ7uC#́=KnYlA :^}bZW1j1y1Qw;uG#h lYV*9^QpNe,0f.0BWP_aDiC0F=&Gy>= +N'Yئ`M.3BR˝s'ʈr{tO4&:8Fݚtң<{n@S`*LWf83=?xK1鋌(禗07ШA7amRgx>1]>rBۣzQ3ΩPyzFU~>QMohM}7x.1ϫ)Gs@tݼ_ tQSpG_W]fDib&Fhb&k(ȟsɉ{&V?އcʘF;S0ÚY]!&,xxGF&h-QtsbiȘns~ܜP)A^f%PWQ FБ:HOm sdJGYT FКxa2͏b>E*a*))4( ]oro*V٭Ƀ\TvP%}]1=FF&fhb&fh|>{ٽц L}w5#\QmFh$kaLhFQ`EU3BF|~XX@Gc;1-Dh(>tu{hNZT#Nچ=QA>hMˇ\bҠjS \K:ڦ68|ݖ|NɊd;ψr,UD#K4%8# H_:}k:[|h~پ5byëD7187}Ѥ/@ bCKL7HîOhմrb{zk#ˠꋌ(MI?4&9iRsG~U3 L5S=qBL7/|mը##!~ 9b?v,<nX %g|(n'@X5A$TӇ qĨIOk؞cCG5xBHw]lȈrulpnlM}7<|>@lhxrR;ufkPm#Ĥxv614E[4ELh[VO˦ebGG3Lhl*vbQءء 4W-wϰsɆ?j