From de2344d36ef2043904d2ab79bed47dc9e2872ebd Mon Sep 17 00:00:00 2001 From: Serguei Mokhov Date: Thu, 22 Aug 2024 16:56:53 -0400 Subject: [PATCH] [manual][HTML] release 7.2 --- doc/web/images/speed-architecture-full.png | Bin 0 -> 502412 bytes doc/web/index.html | 6030 +++++++++++++++----- doc/web/speed-manual.css | 50 +- 3 files changed, 4575 insertions(+), 1505 deletions(-) create mode 100644 doc/web/images/speed-architecture-full.png diff --git a/doc/web/images/speed-architecture-full.png b/doc/web/images/speed-architecture-full.png new file mode 100644 index 0000000000000000000000000000000000000000..8c3d24abb2293c1afa1f0d98fa7fa5e171f1142a GIT binary patch literal 502412 zcmeEP2S8KT*Hmfq_r+AF*`v-WrNBN8^l0D2oMqzHsbu_9=NTFiUX15LTJzh^vYVaDt-fcV6;dcnQJL0*W8DwaLpH_uc!uXZ-Ft=gzaSGV7$?TfIe#7M(22 zjqO^rP$#!&(Ry0DHgF_MvvdXgucgG!%&=lSBRhvoBvW;W3>}g#i%1_t zF(6UkFB*wJq!V3b=d*d-K=g)|!U%pq0DBPGltv)Jt%f@B13AJ_34F9-!CxdI9Htn; zC-{L*m3<7OQ-{G31Cc0z>%{dM&xdxH(kKi9g${>@jyGpnP8dWsg3kebe=hvbjO*<$ zL@qJ%6$=G$#FRv)6X4d;XWFxU*kV5J7RWnsgV;RT``A+Hp64YLbGTyJA$WW8 zAd1N#q5+(W{7W%Hdm6q3vZ2+|D{Y|jbkNKBXpeI#Y$Dx@kQp2u zCfS?qL*Y=lWFl4h?$|Q~VP;~s$k$TH;Re8iIAOBKkjZpiS*tnWXp_mh4A~K$7<(|< z4&;D6KLUF<>6?&=ykI_uD?u-oT^S@41_bd%iU+-gfq`6a6c6Yf*ehcn55A7rGw*xvp;u`oCg zePW<65FJAS8@mnqmJ(k!;8k|#T0an1A&&I-9{^`cTMRB88(%VGwm_ zD8fS60m0}<4kFV7ppOiFgdiYb#>iVnpB#*Ip7aMDi4<$dJRuWB09X(Y*zfR(hn#2P z2)`Nz^8+~iKpuP?${>(QG!Ox@`@;*!9w9p$JM1OKuE&mW_#w)N{&U;xMO=`TAdG|p zQE(7D2oWJ5?qCLj*!yhzpxFuyl1deMACW_S`9WNJ5!)N-%}|)u&=EMKfLsqS5(Wrm z0*7K^jQoT4DLQ>gRQN6l5)1vg*qKu7Qw%}Y1@U2W83gcoh{OvLB6k-EL)czYTp~~u zb75rg--YmYxbGlhK&;lB&*kv(Ur|ATI{}-&H2_2*i?oJ|iYn=$&rhqG$z{d``5z<> zhYm+CXXv7!M&%p>{Thms7);~_NN4-vqy>q{M31sjNyU@j{A;Hq3@AF`KmP)VGFFlc zEI(rg$;V4%m4m?(O|W zOb#MbI1F7cB4Qe-24-U*hY8P@q5{*9^xDv2(o`UaLPBBu;{b<2k-drnaFm8pst~1C z9@6jMCTx6|-dyRxDhd}ENG~Rh3Y~regoIoH`Rg5YLJNN^QD)bl9W&iI-RXz=|sj7?GhWJ6nrmupK|M3Quf;L@YQ0vKT zvS$Z@^$Au)vzV6~2+Cq!ZVceCBgYpWI}{QsC4L-%fH=st1VTMwN5MXThsbVQ+oY~# zdm|01vGl*uifz&s0~ND9n;?{^D3ov`$K`+nj=Ce<054&vNzDPn8tVaZ6@=m-Um;Hz z$PSnwL_7(pE9=J%3JOORK07!_2gm1kX=b-AU1~dK+VO-&&Jr*h^L3QKe&M$Q}Chi_qO4R`QT7U zNgU*XGV{g>^&Mmn;20om23&=@Qgxa!5@E1d>bt=ipEd7;*kT@#Z&G?h^@-@ z?caJyVr~Fr~7X%(_KqiY}&)u!$)X zH0T6F^z^q*p@yC549vnp+fT7y=a^S-cLx>5yxqw}) zNLVV;52!*04qv)nBM5_qEs-z5n;#_RhY#Z*MwWxvT&54QaMT!D zmZ{`mk}(M4aLG`iVwJ7yMpdvXQAujRC3qB;;1ku8wO6mOL}gzsx%KZ6*%-)!H6}$x z*L0zW=`Eb5!;m6#3UHnP7TtmT@HNpNDD+_At{Hmu6(>O=V!{Hou_)Nmc9WBOWNg{E zcHoghcul?PXGBNTfkydZg{Ob3Gu$j5$s{rZrQn)AMr%6)7=G$YJc1^XBTsfuEE=vE zda~68m473#SaO!XX4Qd&5%4JVny_YWcwYt9Dw?5JUz%Cj9cjXf8FiXe*n|qIQHGuR zl7rv_)d5ENVTGqROGlM*QFibvrDGGuXx$;U3Mi>pj3NP}axg0DYWZP>r#EBt+cB!_ zTQ^~hq9Ln|Do06mGd;~1t*2xKlCqUa!=X*GAuh=ZLv#D^Na8oH814D?6VxzhllxFqV;A{=J8H%nj#Pp)sLpYTFaG47#WzTn^ zYnoZ_#=xkeE6h|;kgsV#l=NNXXfvhQ@EBEI;cmhhMHND$>UwhX%1py!RM{17!WjJ? zx}E~UyP2+OV7i8g_!)?+fx1mi*d9fqACWg{R6&Zwel&x$VL__A#NC83Di8K+%upeu zA&@Jv_8ok~Xj;r9!Q?pTs1kqHlt$ z427@ITT_Bpb(vmdy#`krN=0$rnmgc%_#$C!Xwh70**hqjt5pBCri?C9QcAIQCliif zg?^C+d~Km$*_f%o#=okm%P}=FVA+p1u(foypqhm^8I7|E(m`F7rc&IK!6XtGiV+)R z8il~5G003^Dr~u+OQxez46BkQ>#P4z?Xy;eQ3mD~VIj=edIR>ze_dd-5zFnWM8j7p z04CAQ3yNGyaB^EAm=tjsm1d{3D3{{Qt5u^2E8tbD3LAa{9%S~Qb(NtCGR<%hO=+(m zX@R%e^G5Y*3o1$!x9EY3(d8qgMfH^8rb8rctFCQ$;LeZv)NN9r^Gi%QNo?E%^>797;zv#AIw|2dAjKM(jmT#NsQ&_Nf1d-1+w22inF+&)6&ArU50JRp8xpzBh55JV?NH3X@p#Es2(XJd&%QEyKqiy^}pHf@5sTa1{hdyo`l@R(>utS2Gu~HH9d! zp!oV)hx!M5Q*6VzWLJ@wSt#9tY#QJ~9w%^N1?ghXut9nNX$^~tUBmP?GbOT(4E?;! zOe2sUMD77^>JKfovI;k#u#H{GR{lH+mv0e*d#g|vXFH*VnU%!F*(w6gg|?aSEzF>2 z{E0LRV?&{3pbOF7IDpP#Iq)pac;OsBI}0mkQINHfK`7gJ9NEf@7i1YI)-XP3MAiIw>+-CyI_A~bt1zCm@NsfL2LMwBZaISy|qhm*&z#1q2K7r-yWaY#o za{R{8E%>0e5*wcO6>lf+Y0Gef2#%i#k!@^3bo8^Ld$CNyEsRaV?TsCgR)$%cf3c^+ zu%5D%w$V^Bfn~|FB=g8$9ytSSE+ZCM8Di!>W9*j6(&Md-*_O-^*Y zRTZHlVY^S_QTYQ}E?6l?{5Z=j7jhkzi=)&iLu?mh^^oHdZ;ZWIBQfQc}s`4mVB>zv@ zH4+VD$v$VKBHNiD{q=(zsZ7++#82q2qt}`ZRFFu`bq6R8W)gG!%#6Z^|yKT_w#GpKgH_rw-~5$UD#}(5)EqT zPecpW`nM4y8C`ar_0VOYX@e*a-n2ar zDBL5PIrx!o4k&I;hH6fRYEFhiQ`MSX4_iN-8kN}Wd;CazxXR2m5>ZtVep#6yX{`wy zGftlzEQCZ?X_B0dgdYKkAPC)0qKbf2hEzH1clg9Z&KpWX5^W4DA^3r4$`^BO#6tLl z6|?XX! zF?M>L+0Aw3BC~`dcsSIZP|RPXV&Bm!4M={nQh;`ynbvG9VcCZt#^u0;&5@R$kF;ck zhImu#XkKOxUrM<(!cuNcA}07*LQ1M3*^*CurJ96#xIq4asub4(zaS^j(#_cg%Z*U8ck5}=W`BB{Z$Hp4Y0WJgFNmpuzf zMwUMVd6#e`Ng8Pjhfl2Y{u5YeyZsF1*Q585eP`KOz_XpKji^*hCuu)LKsvItU+j%7 zLLL2VgDoK`8okCB`UTRAA*C6TvSs%+39_`O(kvZaLLq4y-pK*_-Gns3&jQ}xA=r{- z=Zmxv`47D=Y=S+!rx6k9KPM}D=s!rIw~XK+|4Hu)*Yl*;Am^F!XcPRr!(F7;AlISe zVsC(6<4d--r&25hweAswJr~-A^l7M7I1%2r*Olhvu-LKEpM5V|!IuVU@!>uq;L24p`6VK6L$G!_iqjG&% zg^!08&HGAi2wSGA)`pleK}7J^XugKOQ3#(SlB(pP#$p0A$w0sr50mP2I$HoL#W2uI zg8UC_IjCA$<7Mg{I}9;Vfhu3fOJ0aW$6FX66wAy7ejq=H&km5?7quwhR#J-rv<{b} zgE-noaHy_E$R5~WjUYk{>vw!S5*7SCACKRpL{(4Mfr9^Jhc!IbF|Z<5ry_E`@_m$S zzHi8@!-s_+^9QS8gxF`bm_d1%2xbjpMcQO_Y8pkDW5hX1+sXYooG_qV zp{a^ml0oM`W6>Vbq@a~e#WHilp3mXJ*E*s3pTwJ~sWBC{S)v&7#B2_qTT^)rO)37o z)I(4Degcm~qY{`53W==C)MXIKbh=_5F_no@BzXCU1W~~?x^!J#B9%r%7dr6LP`=5} zcM*qPPIMo0mX1hhz_K>-vGEGD8!y31(5euJ{~2%Q>;NcSMl=lO2XLS~TEpNBYPgZ5 z(UqSE6ewH{-HT2`2$AoIDu4(b1QP`cy6dFyJ0@ZgZ6jieA%fKVkK>W#3 z2e(5d=8uCsG{UtZMBO-{7eG(w1Alo3AleQ-0MNe>O(a0!A`Gp( zGAg1^Ic$k9Lcc0A%ZhFTszB?kVTnPpPGT85LDAQ!MK}BK0|Ia*HEBfTA6b({NKq(3 z80deIFF_#jW^)NbfrQ{E^n&8m$kc0CdyqoXC6LLwL|uw5%sySL^cNO)Km;*Kq%#=0 zbULi!qgEGQ)KUl_gqb8z=wuR|f#q{3h*}0gb~T7%sl-JSU4IFTEIgqrYcBZr06et+?X!_gTpj{5A)Jg3O@M1BVQa8%ntCh zWPAJa1G%1L0#aaARYgZkN!7z@C7N78VloLtI)wps$RV$SLC0uL6psKf0;;g3k{A`9 zI6%@F1iCJnp{q+GG9Yh+h(Z<*NIIDSkY$jGWL**f9wDuedG_Prv2N$)hhb7>xE8P_ zL6F>87p~=SS6F6LGA9(o`u{VuQ*;qyfC+vOnGDtsAYKMVO!_i)33O_W{Dq!FIuDO_ zCIL2}qUs{HFp0)QN=YMUD4?A}AksiK6G>#ShvgpGcR{;KrU~=qYZkQ0-xA7+X#Rf@ z$|L3%7lWcK}-=;UiY8VpV+jhEbA;HkWn23Vn?a4^`=2qT_}S4pn&`Dj9zI z*ieiWXvPHb2gC%$WY8C*b7c9e6eHMyh#ij8uBgodV(RPfg59guh9P7!nLr{l8FU7P zPNLAsG*m*O@>7?>B;Z_p5~}FI#QBDYOVe&;Z}BxPZp18Il@bCaG8)2rLv2}KHb)p* zr_M*z4{p{rYxg>}JB>*N&r3=qFe%^;)}~77O-sA0#3NSnx*-6micSFh$<0og_l7N1 zeGZw;bV5DtAq7k-fkuTT8eIwvIDRGfO_xL^P->W4CTjNJ3|h+1z$cJUHH4Fcij@&? zKD-3~*di5);*V-nqeE&ZJ1K3Uc9)KhmN!fQ}#8a0xG>ji) zjA&Zyiw#%I7jO}WPzLVGY~8&OCoxr4PwHXt@aKEm1} zvh-`ssPAnNVP+pr15FU}_z-x7yajHKB2bbNy?}Jw46VhfDRaI8K8F(kEUw|VZ33v; zV^pm~QRFnjCV;R9AdP_zedBDDqC-XPaukO;N^5aH_)aM*_ozh23kSJcXv22s!l-|5 zzQkKdfDwjL;Q;|$vBZ-d$ng{iImmWj1PNCh!uRH)-vMh1hBXeYsw^3WwGgGH2qJ|J zOZUhPm5Z0l_x-A^C$JgtUzbIM!9fAQFdGR218X+A6newneu z86@bc8yqo(bupX;;S8S_z&{cEiOnSoTNnN&~r|8Ys1&mpf_T?FuXfgl595xcbvukWTVwGa9DP z>Pdgmsc85VIwt?}{!L7Op`uVhf5})_+{(WdH^@LF0^1op5QU%t+&LI|i#udxYA?;| zAxZ+-B8e}gQKJN}%6t^uh1huthfL8$3~wM zDA5HZCKcr>P%xr1w~=BEu;nWB;ZSiAmBN^$Xo}GWSjlJ{5^KS)ncfIs2k}FYWJ~B9 zrPwAsL-n7cyp-u>2F8|S@Tz~^M^g%AU@AZI$JTwyJtlAd&#gODC0QdHAEz*y#Eg~F z0aB`f02MJYe!xXa7f>Lx@?R1La`FKTZrRPgz*u~XVct{>Y2{UC29ZXfK-CoaADNJE zP|-plLRl9YjY=g!j-lex8N{w4!Q5zSI325Fh&AWO7CW{37PaPnZn1;X>k5WKt%W*l zRqU&i-|MPkY|MwiF}_!DkhGo>c3YL}c8aMQ@(d1zRk?<1sC_6ORs*?Uw1cB0fB4t5 zNl9jZX;o0M41|0Y5Eo4+Wgu$BV#-$qvB*mUg-Dt2y;i6kPDw%f5$PKIS|N4}A5V!n zrkK#c8)C@$UrN-Ix{QJ_BQ6p~_}Q#PWW#CcX=EZFDGLJaQ|%0){y_as5fZbG(xxQL zTl^C6RL+|EogQ^I(vls>=5YnmdM)2HJO1;Gt+PomO%-aKPT&XnH&5R$X635hcD>f3 zESXNgd`kQb#+K3XGnh#tU};?6WfIrQAHq`3>a?W4F?bDG*ix3yxLD@8N(0mmnXaLo zp{yBV7}wag6fEeuW?>C}{A_X+G~t^|57h1}nUt29YBHgyGXLbq4tTD`cS0-ys((YzmHZ5`L=?6|`stq`l?Q0aOkxVBmuByU5 z4^pe7k+?>RqQ9g=L7jd~PBuxZ@ux{Q!D1YwqPHf-0csF`p0kia2v4e`Wa7UGLsmV< zWshhoGzA?Ku9&bTH8xE_f`XuR(-b5{ngaFnu}S!2(-g{m%f!guFS|yF3RL_TG5*l} zU1FF_+t(tG|K0tY*vcJd9pIFxY|7PXGpbB!P?7q8vn^{IfH*6%zH;XNtq_yjqKbAX z`t9qj&^m?T7fnjk5NJ9=PSK*I>XJd`$eCDdXI)IHG{iCwgs0Rg|{Hey=YnrxXtcy(I%~1KnR9A68%Y$D}fevCV&b?9WZA?sz5q@$gM)yL@hOADINSK%Rs?S=F3k8%1KU$$&W%M zZK942{AD2B|AS~|WtB1C|H{G?2~wEG^97C~Q|loQf1ECyJ1q7^1IGf^UHA zP3x#&^lfA_m&BoQkwkx-8d6O*>q0p-_V=y;uN038^($pl7RN_1p@g#3pTqM}^0XC9 z^ffA_tP;qo)_Us+$d+s#l%)h5%eJ8!?+dgL*IyB>auACIia#ggSb+LTS zFQFQCL69}^$3b=7ONp|9R{MV()P_XB7b*`~HDK7CUE(xO* zRKBi40+zm7Q)viR<--UZUvH5oQdbBm*w!c#5H@>2-98k4WK1IBmji6IALGe%(qFhi>T3XqbiN_$l_VKcJ<`AyUdhnU*#W_5W*>%>|7=qV5NcfqvB;aDS6^k9YY{+HCWAo2r!=ADPm|+=Fsrzc6g3LY zWQFPj8m8N|F`-Rkf5QE0ae*4`l0(*iZmX z{X!Pzi5#2FTvFq3Nk0!{>rTe5ACX!oIGZIWUQ{Z5RxLSe@k&1r3{@q))vuTY*<6R1 zY(}CI`tV=tK%y=dSA;GA(Mb#fky$HSqv^3sbqBmPpbD=$$U_cUg{Ly9&SMr?f{mW&0v z|7?h@+e>N)#7cso+7^FD9D$3@<$}#_DJf) zklf@`c(f9-nsa^doR4b4hs2e zSlA7fNHnBCog0eb=PNB?^*eEC|3vAZMoM~xkw(K?(2)kNPiFq&gb@@`mmO0OMwt2k z18F=}VGqp%EiESvX#&dDFZvxf&?J&7)21;7T3Y=_EQI}&YiHJARZYcgk*}qY!&NM% zE&Y|lXG4{70eUfd0kV^`>`2hv1&>;^&}v~}Y`_Ye`0Q5O6|7VF6)#eTYPE?;Sflal zpS`-a*63l-zSSR^?f-B&tEFqvS>1d^$7Ke`T9|k3IDN(>Q-aUJOgJ(MT3 zwzi)0cgw*aa$Hm2kBqX4P4slgNm_9Fkabn%?P;HAgw|chwrKecf8A-_ZoP5Li`EIR z#(l$8$Rk9pT5IaIYo|56MXRs>OLV+-JMso%#KeW)auqxRp7qPuKStW7=4UB&SUvY) zU(XrSKE6A>UwAw4{3@NjDQ@Y7>x73N4;G!$aB|KNKX_J_RlZ+cL)&?Oz>US_Cl_D4 zIlEIIpIL1>iG_Ve1|@Xr%Os{UKD{qLvOlzZqT3$MJVD{UvlAmr(^^km)Q7SE<%9D# z`P*YxO)4rs@~L<&mG9Mu9v~WXd%s}at+4xxCLhvE6OI=DGdIOO<7#Qt4!do3k#9Lm zhTL!8eX#SA{`#%F*GHCR?2mZ!q&qoh%*VGUGJ~J`P<$?kUb*b^U3&ApbLwi(sW$>M z9}f=oU#aa7@Z#R7RYR;dv|jS@s?{j##GfLyE6@esk&0H!`HEcyV^|h`{&HkvYqBm)m3i`cO@O|6n=we1oTm$t8KV#n-J zVb3=~doJYf^xSwftmwdGf=$>}iy{3AB;m<37piNF`Sjrx{5D1};&pid z-R?x;UD|i|#GG}9KdCR9J$thC$%A1-RLtG654&ldS(8z*F7FTJxjlAp51TN{yP2sT zS=sxl7WdQ3ygbpg17#57%-f5M+s@mqVxPS@Jz&Y%@~Wph)5Bjqbh)zG#wHe-4V1JlmG)P9YaV`_#;MQ_S)-|pea$}@2|@E%$w zxOZ|MopYw^kja0zz3YEI#oQ|91)wV=&dTA^wcv+;^D=i8L{;A6_4J&w`<4CW$#;)O z(<5H{+CMP$h}8=X$=P8U>Z;x)ep|->%F>d9+oV|+i*h#Tr!Gn_+BoHb+7-sk9 zu^4sAe!skP(WioRT=$)UnQ-r8`JLx(2x`lUGAf=V?JV4~WVB!6rqC-UJzZi)2D^t@ z-#siUI2`rf{rr zy(k6d3gORQ5&d+O=L7iR3)G97h-3Ihv4MeyDPTfBO54 zpFW(vm9)zXX4|tB_Er|plM^SNGkL|@cBoI_fn%3Ozkg;twaP%GS0bNj8%MGFjj-M@ zYR2w?QK=OtZ>9@F%Wq`{CrKRc?40m7*)c0bP_S8-cWM2M-7{yckL%Fo&0OA*nK`TT zpPw1HC9>k#uZNC&tnv?iIC07glb-Q;F1g_^j+v&dS~V>{ z*`@oU?g#17<8qkyJEj-7&bhR()v}SiOv9X&Q$t=|WVjuQcvEyky`oD`&We;v54@M? zKm70}`FKiI=hhp~iXvAJH0xaOM`ZRwO}5U=BcUVh%MZR<{JwbTg?Bf28*k7G+`U7K zCeP8!v4|@0^6-3qINB=PY2Lx-$2)YtzzCZfG1%@h<-pY~mkI>ww|wA9VxB|f)vQoq zCB@@oq+Vo2!18seeS`tUG(hrHR~l+9uL~6(7!WY>x_*dMU@ZOYgSv}Y*ugG z_GHlBfR}yM~WSY ztggdf+dU5iS(Fd(Xf3&NsNcvSk->h^YQqS?z}_kEUaF0DoIc)Q2Z*CV5yo)|?ipgW z>;<$l2}l2a7(d?M69jcE$bH+3vxIY5YNQN!i0)ul(ROwTG;5 zd#Aq)vj2JJ~!;Z$=tjl&3i9UU- zj$d_a{AxnlctXaXSD45A{V#8t(Vt9VK3{yV4UYe?=7YyIeiIPRCn>o5FGIjtrL zj&Ad&$7NPRFbwy+hh2M%EiGbf-zRO_YPjTXh0|U3MH9gR2aR0M7s=&eZ8Sl6KhZwo z=NY8tbe*MfZFE%C|7dxK(r-`AvizHTig4t^%L9i)i&WVqF^9ouiQif6wZHaU9$VBZ zu5@X23w5Jg;`2I$p<7$5Zsj{<;}r4c7e=$fmJZ%DnU!|YX@UKt@yE`>v-HlM?%`*r zp+CUOUdy&+s))V&jsZ(^^2xcsrmAmf6{hYKQd&qGywQ2)LbE0PgIf+)YZH8H+NWy5 zD9w~TlODBRY!X8{V8?lypW?C2(4ia4c|ytwhoyE-qPfIXTHfM{;dWY98e>axHVO+S zMhZ?w*_w=wwuu_+_`81WjLYNV)EU}ydqoUNqsOLL#g5E)vJhT+LDKq1Ns9;5;vQaH zm!&)K)u`=#b7U5CUM(NVW*;a%RZHretnW{{+>CZD$+xpzT?SS*E5M8Y1$Webc;=VzQbX6 z;h?0IFTo&iCtBuJ%p6`iY{j+~Yh9l|u?rKweSSAJVq(dFMu;@+IB zn!vp2{VS)V;AT?SO+x>^eZ{N={tioXH$0wCUHwm)lW&Y|Wc;hR=^moAqvk^@uUU@? zj*OolHF7|b)6V^N+s0*>_4u>2_)z3#Nw-lG;baXh5MO_98uS9*BsuU_X4&q`l;r0r zhX;%tu3qqX{je2%T$kEz9MWQd-&VN&y>^WH z%aCW+uc(a;=Igi~nYnUgNmb;4mz_E%4(3Jm9`p9EVULEDU$fG?cu3Fg=_B8bZI>iP zzNvP4&O9*R@3~8-;_hmRq0g@0oq2X-_hTA;msj?Q*{;faxSH9*Aba0oqYGVXI~L}H zS~?uEKYx2(_aTM(DQ?UAI;?DadU3x#?Pf&JzMVVT)uBa{xn*8gjj48BC#>#bR1NAq z1YnaTiqn3T;=KF#{2s%)h3!1P@}nd=zelUAXM4`OAGp%CZ{9?wmL}64dmP*N{?2v( zorfN3kJq02FzM{ONozKAN_p0Ed<-e**6vZ=JHK&mtvTx^@oDT!2el*PR%+i^=`>NZ z-R9^^L$12dtQ?qMt<6e^@h|A>e#6>fxPv7rzw4HVz4{)1CDpRCu`#*x$hp`%1Y;C?-AWS34aY5c1v)-rUu5b zoz(saUXuDx8_mkHTmF7as=?NEeQ<82M^_s2L(dQI`h^zVJ$_cbMO&vXi-M!pmb_?3 z)?QzgYj2$~R{T6|(y>-qB^x4(mh`xs>v^nX@LNgRrgBh*+SPPUuiCSr#f*J}K@Fso zwtHnzdm=5~Jzcv`f2Qathz{=4f}QESjZt(P+e=4W9lGj;mOV2xId(VwvS0Yek2-Gq zuY;NP?BjmuDMH`i=XZ|%=~gh??cRRDP4^C7(RXr9>8sAq=`ibrv$~6R^4|l^7PmHP zJ?EBJ`$5`0cKAgep3nU&=YQ*7?QTadyP2M&)>C6uheNDGRvJ3c_Hu34Ht8LfP*
r}&?$mMU(^(rA%zk8)_3l-Pb$%7~BXr*E4xA^qmKMg&N!8!y%AxidtwJAm zHTOg$O2Jf;TkSs7%2VqRP_&n~WXHW5SGSG7_4e@9o1n{Mwa)ZPEsQJc(z9@+twHwI zR@QN)Yw}hxt_Ht-&UWI83-|HM=njdjxdfQ6lS_}mtNXP|G~BW4@ugV3qc894 z##s@qZ4h{U*D;+T8}ylQ>43mX%ZFIE3Y@uc_xi9h6@yHk19R}g?wsUqwdNps$5HV7 z1?tZh^`@O`Ka`n!WZI`)f@!nd-nMD`+bp9=i52OS@0$*H+aJ*Cim!&I@W9Et}ERH-vojPvj z!no2b@9K|<)dwp6@Xt>!Tk30&jmRsWbBPttu*5hn2hg3Ry=urGXL|J=n(vbT_fVHT z9OJeBq*~9)?#^N5A!c8jhc6#*-{=bVp2r%;)l<_S=?xILj~OenIRHKzJ^Up{?`iU0 zFa0(}b85RMS}`-g8uHn6kuyw%HN>28d6zAK$bDsY($2$$YR7uyM?BuPI@x;TXvDS4 z`W;*fwtf7B$?Vk2&(|etcOEdhNUg$3{|(D6Juo)-N$xP4PNIruHwe_Q*Nf ztSir#n)TmJ=AOI0bfB60Ba67P(KpI6pAzi3qto^{a*rYQrv8=|TMc=Z>*#3#H}>2B z$28f$AeF!jF3Tt>w71rOkZu3g&L9DP&nTf5uOWH64}E@g#xL=HLU6uC(}(11Z8<&z zaj*sH)l+)p=0#N6E#JqS@;F-Rb=AT*Jp*TlW z!aN}M_6@$^Yhb!4-7il&)F=3H$Kh0`6jxehWgPGNx_(Qv?mt-VS*Go`YN+k;pyJoJ zY@)|Sdj;>fn044_S-H`z>RwRFtL2);XZqPE~*DO9W=2Sy|+#D`o>S%8w(`_wBKjCMROM zOr5Q2v=6I+?OR^$U7=#MSuGtZ?60Q?Ztk}&&+DWfu3vH88}Y8P-W#0|E^V{JdH3cH zZ(>7>!^`%2WQF`)cz?Ek__Nctz7{!epKngQ2cGFA2Zx10!&>jSv(eDWbxSK3zv2DP zYxu|5dJjuTxZ}0&-P_7@))Lz{=S5RNigf8e>e0i4Q>&{Iu60g5lQ3?vdhA(;yJWRn zER*N|EVtedV|iK4Sfj-?_a1Yz03k(h<8@z$xC#&rF&)_ zL+HHV@{={k;xfS4z8zH=tLJoBn`d|DW$vgR#8Hk0rqQoi)hvUqTMc~5AT3cEz_4Dl8+v?!G`NQ4Q5JIhW zamuc>Gwr}}YsVVial;zJg^8Vaobx|cx>jScy@Q!r#c{;w-MpcY@%|~W!l5g>N4+_D zr=&-f9dW|b0uAdJ+sdS?n;+@|-!^y1c($QK>|ai)?#regGcbMkmq%u9VY+ZYh$m}u zIpBXE(0ZBY=BclIaCZ4=HO9aUzh!%3M@MD)S3j+^(^=u*VSVh#o%3xq_wsW3S55^Y zs8?Z`o5U{RVh*jxNGhwBJB_+ZYfJWmkklZn{!y=O?Gx-?F`;*3^I(z|et7q)`(M{K zj(6~3?P5JuuZ+4FtCya%{`xNViPjTeq*{;Y(rIp0`*)H=t(}+V9A6o?+Hj-#vnQdm zQ=!u%2D{og-%skjed-a>@5)3KbU(+v<;;bep+Xl;739#^v3D71c4N|qgmE+DRv(`T!b7CP&9ifzLAaIle3dIBsWkY}wiat#?T3p% z!umKZ-Q}3#nh$=;dzj|W;@1U=mz?aw$)x~ox1{vO-qUK;tWuk&m$yw{IdefGC+xgV z`k!l^w&q`*>Yi4yfy!UDZg1hZ$aVKlEy!vSKXVHV+mXNw?SC{zZS+sg$YyEUm(E+z zW7x8xy%KEVTWwdrGVE>q`!}6Sqh~J6ymwmsemzwk);xN(p#rFF2B*qN**y1D zNwohiT2jZ9@UU0_m3UMk2W96q1GO2bs^q%LWB(nfIB;$aonbVm^R~)C#A&rjHAOO# zX#n(_b=OflO=^y74Q&4b)?MR|98kq9D;%2<2DV)G@a$^b)3svEr)v$I)2bHfrEq1- z*2{(i0hA#grNCFT1k0nZD!xeJZsw_A#{F~dMPEF^T7$78?xpmQT3@v?;DwhDKP|zx zxNBEt(4&}sqo?%x^-CQ#RtvE|Cog}YAa4GrZnJbLWro5r6@uX`V#m4bZZN9p>=tz{ zhAZOaPbaXg#1Fzc<2#}iyo+u}{F^9VBx^zp;#8eod0!X*ZtdE2<@`fb(ME;4jTOWA z4t82xg6~Hyt+6pnPpEp5!m+P>SiJjbIB{E8q3&K-2388RW9pCm+^d zv&s*@f3|hG)wq{8%mzf|nl9-t0OD>Juxq2AMJ*Zg@j#mJ_ULCkMse7dyi|{yy=i_N zU5GFld0NDn^7@Kdexk$hB$vJM`p=L4QubR)IE01Jy|X)>htPnNlW9kW*~edBuPaFg zF7LO%gB;7hH2RMODCobvGs`hEh@a$n%J?$kV*c zv@YO|?*_(ruZ|vn+i^?O*5AjBtAz=oaNr8vn5m&GtLf7}ZhG|m?uj9HE*?~*k)Fc(Tke5n;OMA_z!vWT<~u9rk6R@tLgUImy~-I= z3Qp{PSX($Sc3rE;v+XH9xmsHcXYFx2GWF1+0b`0wPe8QDdY4DrBGUyoeMTI7K68;K zC7TnQyREAiEEScOY@8MncVgL~@r6L-dA};jNgoyd@_OzL`_g6O3GLq>D83bE)D}W3 z?5=CwUohgZZ)K5W39=HS-eYLYq=kDgjXd9*>N^P(BAg$DTr+{>-fL^`VqMfCCCW^SiyEYAi8_>z|@66A!qo_1Jbtr zlz2+qxY(+9Ww)|CT9DmMOrw8aJ;Jjrkv>s$Ozqc_WUT;Ld@5b#7C2dB>_CT)6V$9` zD|)MolR&oJKX>swZpximgJ9#~;XT?oY><=29yBo3eHXJ?dysa(Z@tN{*k;jPN-nPB znauBDv5a9CW7}niTF{#(d4j6fk5i+>e(sO;&pdKtCbja~>bH7N6%d>reMAoNEAGOY z&)PrZj?Ypb2rK-5&zm{-$%M;CrcJY-PChUwJ@dCwKoQadir%WnN2Z$wp zsBnz}*K=}2%zCZ+!Xwo_`jHj;kSH<-9_#$wJLAVVX_z|P>frSEh_}VS!ln&ObxTjx znRxJeBE$&ve^a{IVJVSXl<*>c!rxx7PPp4JT3xNo!R=Yw{$WS;2N2FAJXzv*Ex9E3 zQq^L;GLe4~h?WWWOK%^!of%TROQV18Hto5^BXsASnWL_8u489c?GNFF{OuY0^AaCj z2SKyTAR8g43ik{Aw~b%DAA*~1!h%Tb(!%KBzTqc2G5%ENJh^=YTKKfk*{nn8V4mfu zSqiFl{ZN3?kZ~I-aiT-@lE|FSN`$Z3$KeGB`Ho1jxpRHDw}*p~ zLob#?wmHa%!NEBmp|`jv=5$GyT+$sP8t>Ou(;@gpab$TK2=I(Mw})+Cf3Nt>v9<#a z9Nm-(h}2BHy2)_<$MD-Tv+TE9rHVJF+rAabWCWYBKhZ$@^^W}W>I~Bkr90H)i>TX? zkQs|&K*RyoBv&DTUYjgydL={ZT96O^`8O7m-{ewf|2j^UN zPCVpJJA`!7?8BZKni{QHS}(Kv2!q(!<3}9I?X&^E5_!NTe9=+qd^*@`s#|e zf~Fki7c=?Y%Lnr|IGGr`BouBcbbX)rzpD4JI523JMdCenLTr)4HoKMmco){(P3$u} zt8>4R|9pTzrKhdmcQ0>wW%Q^QC%dO!+;6xv@%WBcUCZY8;6NDVmQMXgT~FK4x$|FB zfzX9`2F82Pf`a0M;f`C)m$o)~I^|3tEb=2V>y%zpnc^Ds)vX|GsTn#G)N6F{jMsxU zjp;aY%3D#@TIyb$T?|IsvaaTV{`^kc&&~83bWn8Hu;35p)vkXIfBxHtz22M|%+XlIahJ7b4mqIQ+f zAD$}8>wP=Cq+ic_%flhowEHeZa-{a&I&vI%0m#1k$+&aw?C|i z%$)!Ciz&ad=1qq9I>JHV-;H{@=S42h{6kH1;2|fTDZ#HirLwi>$Gv$;PFZ7z_EZ$f zzk*2i`JV>|uUFSk0=>H7PNzF>aB^BJCb8A9_T;IsMwH4GLzt__n=ufRHuO1|5ut*) zk_YEBf>W2yTo~c}>G!{92KkK{6yNSuosN%8VX$O8hXiOWG7iE%DLmE#oiq zwhqtFh+h2S?wkRx5V%|lF(5&CJ!g%`7|i{xa&s8Yo`!)mABcecj481b4(wO=!cf0H z7&ZKwvz)hyBEXV-V{my}o)9Cl_O1krpQrv8Igi+8(UnYpm{z@Wu23W*TJ z&?5(8*kCcIM>~C(*p#lzu7!;bTjQ#s>D``OR(weB?EHnh9bFeb7+oFdfBSIMFM@5a z{yE$IykqM!+aWVw+&_Kuf9<;`hn5%TXGnPGH|R&^k~XVp(nh3h8~yH|<=q#)0pa4Z z;5VIQi{*p!VWF+{M%$$%Z9N9wN*_D22lx=38HV~*`i zFu@t2QDB4-TDxvGo;O!R(_z@;J4a_!fV!BSqP3&tk+=6cRBk|`t5)TMg};bDB51kc zLPW}*TF}!CqEg+TilV!CXDm}EOHHjOMVZ0=M@eA^5kVR9&v2*IeQtpngN`Kyjb?4L z-3a3pynDi|NSv}9+hPWF1h|$Lg}-(;t^tNtX$KIC?;}rk#EHeRS|Kx5w9%Ya^>~QW zZs|Py{Q#)V8_})u_UNt}?i%v~v6Dd#UAJW1>d~tb6d@tODcPA6`TSVhUktLkjDCA` zWXLmL_4lVBCc?nf^RBJV8rp`9k>b;@o_6k35gYMjM_?x;zz5#d1tODgrA(`Sv)VFt zWL|W2j|&hd;aZtgwXJB%E=q1VBJE$^kNMrGTWkF-rE_Mk>(G<158})+T5K({)_t(T zcZu5QC9I`a=4cq5MuM_ZAn-DE-2IdDy6Xsw54JDf{wf0&s@CaB;yu9DB;`c+!M`a4 zB>e@wqEp^kf^$E$Vi9FAq|YfT{#>oWc;AA@TDcQd3&xcRo8yiLgG^59@FXw6c3^zy z)4>Bc9V@4%^)24Tp5-y+#VMFR)Sm9S+s-Y3@EAlzW%$J)k+(e+qAWiIwwigYl_f!?i+~4*av9}x7G9@1Hl(E z8^%#9kcGkGsH(@?hgAIq*75I7(Z*n#Bk?nPAe!dyRy)Y~8Mb|%UQRoC)l~1{tZc=V zps~G?5c}EmSvzp^F=iq-$ngcS-o^Nt*VXFioEw`T_ZTs8RDjzg{d9;xuwTbhyL~TZ zeaWnacZ(q&*P`cqRzexXXj+RFxLOTA!vLY#(;fWKnZf17x6*9OphJp|8AWS)hCk47 z(zLyM77SV!h==_Pf|>%8!?Z_L%^R%o>^%gMyFa&gP}j&uyj=g3rKl<_3<=u+9rJUP#M3;IdVLAuAf`R>`-Gql|XIJHe4DQWZNoE8VJ*o%* z>6&_cbA?kL4cxxt#^rBTlHrM(PE2~C%R>oHpmrU5#~7y6s4IF$-{Zh@rbVm7KjOv^ z?<>cTYNfTFk`)eQ>)DI?2telSk9v=^;%t_v&mD#@LV7rTto!-MepV^gTn$fxc zC|?MA-vevhHx@C9*VwK)g?B(erq<5c*y^kWTK!T;iroi78>y*jKA_b$-UW*R-MOpq zJ*CjNA?`4i?Qgdlj5|8Es^{DxXTruGY592Cv1I8BYHdEcVBnlSkSEe!!EV7{l?`vPh>q8ChL0sJ@#-G0Cbas4)9}J~@(BF>|EGa6fy~6kuH)@N{dSkC z-^aj0cxT=={0;Yf1s9~R6Ws0e%5|%8VGS`PwS+TkNR=xckb|oDFnrs{+rdD&kWrr8 zyXNQ&7Qz@NuJ4G1`D~4ZM?9X|!3BA+$WZNLb)_dTOqBs(i&R`4KjH>tz_5YI*n`;U z5N-~!x?UlWVibE>H~ZDgC8Mj(fUm>trx&shLS9b4egt8Fe%52E_vyd7K*2DQ3{u81 zJd~dS@>kW8~UI} zcQW#ZF>#26no!Ci0hW$V)_4m7t#tS4{(FBnntffjWW6_-z73o|4Vtsjtc zko|GL)eInFbWaU&95#Rd7v!LU6?2RqeG?6Tt(5b+cuJLsR_TaVEi>dgD!dwb1 zv)($o9LFhW%|gfrtv+YT@Cq|nh`t*a(-9HH9K)7sH-H2Y=8S%y>;X2+yw=5G_dEF) z?%Uy?2Ypi+bj52VMC9!pe89heP~ey)x_f+H{?7R;!3GG?(CkTYe^h7*M*NnxnjLx! zoiwKU^>QRQ38JTbk%-}4QP4|Q`92B}5M6gde}5naA=xRVw2!m(LxOAo&V`03fSC%&70lXy($63zW~1R! zMv=&9=Fu(MeG*^ZU8qTM&w2uhcoc`SJPtT)-Y{tr`Z(qF$bvjXr-|X)kmxtC_a3>L z3<>62A#62FDHkw&mj%QkCfQBkg4{Rlg{bZsclSL668Pqmyd=xJXTjcefwZ9_Pq3`p z6>Z;D^s)MV>=x}`QXyyth$enjb;!&a8CuqtbS5GE zv2OIQ8kZN8RNa}?#ofj(F!Xj*dWWr#W7S&~hujnp-mYN?Co;Ak7lT|1emdNBUjkS* z7mFjF>Z~Jk=L1MDS?QHhd-|}ZzZmoB-I6}{A)GA@97H{*0q2&lYZar;@>{Pl+;L5- z1i$vF71u$Y&C@-TP;J|ewUU|Evv4DDM<>-BA;#J5>E*at)nG>E9}Jfax7#{5$?pKz zx{)A$1xUUaq@uj9uDorjq33YXZnfd;lGxAkzVApbN^v52@SqbzV=aw+*h-^?9I+gGI1}t$}70> zKeY~mE01g)VP@C`h?Cn~ud3=pk2<9uxixge`PF*qi`LU_&K^Bd|H{)#qx9!^I3*v* zOAK2;OLjdaF1Zk%9M3uO>BXGjew6&*M(-_*@6y{>$M1Idh2oXHf04m|P!wK~`|x6!S=w-i zJ;gfZX$#bUTj(2C;@Yv7??AoK{bDE2m4BoUG+R<=pL1lA{i?sxVzWZs9^X5aa{tz% zl!_D$9k=}C_SvI>wW62r*e}5>JK)a@+#x;nC^3Kj!s0>h{(Of* zmYyJbf=0sY0)Xhf3$!k!I}KM^92!B@di2ZQ2j^FZ9veR`9-iUvaK`rO;i@M|zdUuY zAzgQ>eBu&47J{?+J>5kH%RC?6(b}SItW8X~oY-p9XsyIKMkSg##ZPXZ_tu{^vd`MR zmku6ZA%4F4lI=RWz@2NkXnT3wrNuKBS4GDD?veOp$KK5?CPUt}d)F0;Yk=nSK;x}= z^x`kPNyBrrm0Z$Gd8ot4T3w}eKdMuo>)~qZtp|%==Zx{#^(4BV zp8KSL>`exz|JwAf?Ejei&ZwrkwObpaC`AzwY5Mw#3Q`2=9Tk+`LJz2P0tBQ=6%et2 zU_p?M^g!qxl87iB0#X7ARfIqw6axeZs0R@3r?@>nZb@ z&)fhj%MS@7FZEn9T6wGCvN;~&4RT;^-uE_W+tpXXL*MOFEA9o-Oh(f_IJR;LK^4!! zW84=3uAkU&>pBiJR;MKig~N8G0>0WYayZ`scy&RrOVOscHHMBD@#F9upN$ed>41UWE5#;inG%qzrSueEQj9Sp`R0Z_!NbKr&bi2 z~>8$uo8Ff^&HTY3ghOF;{ft4BV(rg2&tvYF=L_Q^qh!<1uzAi#floMSKfXjwUA z6||9+zmUTp%n-7nA?O0Rv$zM2#h&rnxR4R*iulAHfCAR15TAnoTOd9wEh*IIykzz1 zl$2#;GGtq4@~a1Yrfg!`4Mby3;z;k$3?IV_t=L#WB0bB0ZnHS`%cD|=ZV`yjL-IB& zN1e2g-VHl`AYHYXvxjKB|HwR*x9a0?!g(=b+kZJ34&j$4Ujt^l3rz2V%DSbYH4pM|*f8n1P%U@{NX>8NS>!}5;?HC=d!||;wupK+UalyJ8wEPXNx8)Bw{=8b3efLzN zOqvxUVr}L1y;pIActP`mHDncju!b_fygXUpxx7m|+~d18;X6W`6vmh|pSpznzKW|8 zNh#ugR6m;fVU!iH-`S4&E68=BH`mOK1AFNg&%A{xdd5Tjb~YqRHHfz%Ou^gRF;U5~ zIGzN_F+uq(>@mh)kSL#I2(6$!T0=-RB9!3)Xr3r#l8y z$7Z11&!URQcBJ0lSG>8NZERK6gz_7@CGU5;;4O)m@4<5I`T51C$Nx=_xpzDlQfhW0 zpOlP0rU)wHg(?PlE6R1_B>_(~kqK<-l#2?$*LE}_$SR|rU|J*c()Z)bf_aT7b8NWL#tDF6Q?Ip1Ie!0}eaQg! zAUJ$e)eH;DN#h7Pgkbr=r{D$sJL=H%kQ%qir}-^2#Ppa?2%DhoRh*FLCJ=zAt877h z&qIWk0K)mG!JGriN*UFCKgBA{>?y2^p&x;;1!1hky72n<0D5K~u3V#!eG1`6IlNN8 zWR2AM_>k-RwJp-WccWg|!&hIMVAE2g`7QRM*q(B)qkH&LXbM6bQJjtTuupP-2FcZJ zpfiWOFc?ek*jm)zn%!I>pVFwll)6I&xHtm!XltyOijt_#3^IsEurSiHFt6iNaR*dC-9rEu6(<*Z9OG zHRtunkJ%mwrBtB*BakvcneaAY3JthkaQ(vZz` z?mi=8IEA0`{lXCrgQ&M5zw=O)BWE^A-?LuX0w>X;A7}hhW=|w zY_s|hS-O!kU%?U!A35`vVLR#WgEr8jwmOHayO5yb!eH6tx1s*>9^HjTI*zdXbDPw^ z+5XbxZ^@MyY>4F)*LFCjtEk}^qjylXf@busbKHBfYQ#G+5OiH+A8?XWZUS|pvCezx zcXus{z4Vov+-U5bqtTq8B9FDnAGZf00Z<41kcRP>kv&b!qXbZq5Std8q29!EQ0&!R z8rjbGE6fB#W(|yic18hw3~dDJ3J$makqGSJ1iulP|Bm?|;&7;0tYwB!R*AI2%1GA8 zHuUw8D(2!#)@bRs)@IT|Dv24<$cODl67Y2qm<1}K&REb9SHJSM(`5N6tS$fyZJ@}7 zlR#N+mUz&hVt&)_{fWyPZ61EAF4k;j`1Ljcp_}~$c3Ln9z)HF{#@1SQECY>x{AzcZ z$>@bbDwW9u(@9wbq4i3#jqGS3E?dyt6^q(LY;WMKj7l^)=DKs=NUnESn&X-)aw*HLKo5m

hkA6qsGJJH+76~QAC}02Tj5lFK4-SBkqC=_C*<%fEhdToR3?^;f9$XHpt{=k z)b*o`(1zE{F)oQ(rllR^&L|*`!CYS5j2QK_4&~**CM80rpB>6ZtWom0JRCb}x~N~RNwi>sS^C{@ zvy>SLtQzqoi@)Gc`ASMJVdG0GcX+{BbsxPokPp!iums8IjN<27aroKwl)o#c#f4o; z{6=aC*+XJbU!nD14WF;@MOK}cGz8E1^d-$EMTnr!3O|( zxmaN7uQ%_SsUHnyU$xw3YI)qmanE(k0ILX(;+e69`Ey=GHeAEJz{*I6E_^NRuw z5w4=6&=TeM=|g7&Mb2&f$?C!g0aTW4L5Ei*$XBa(qjLVTb~?h*NJlG=aJm(+2YJgI z-s#K?jYKn6@LO)G$EH7M8$a8Du)LZII=AY)o6&T?03U_b7?3a7IHK=>ecJ$(0BY6a z8JvPZ+E@u@M+r7-4S928-T#!CttcLz1K6ZPfQL87pNY8R59|n(@C(59xBcH^|48FP zp6})G7xqKHF%Lr~Ic!cc3LK@64QSC*7Kgk#fvnC}cV%T4Dh*=2@-Z}q;RfQ<5a=sJ z+Dv>|*y+A7DF8=JeTjBbF8Dme36f(ilj6^9R_6TOh#`6opZYq&qm;+bIB5XJFMVr# zrt)DN)UF)|FV?=KR-1M|3<0@5cP%HuY+RwvE1!`(*n{uOPrT4_w)SFB=a9C%xSnkV z=pA&LBiODuuz&i+HeWsf+%{o@?pNJ`2j4`q$aTCyp6QC=TMugjZ0m`Zfr2a+E6P>l zOS!xni_VmB7WSmxgud?^i@`hI{=W$6it}rnZA0KkKjl2NtV+IwGsY?0Y*L3l&Z2!( z2_ZjYs#px(Y&F9nVV8x3ZHnqwD?zl>M>5X)fjDX)MYq!I2Z;qJt6_UHYy#>MjH`qX}w2$LJU+1l0UD|pRv0!ed$B5MS(A5I+okFw) zCEI~wr&y)<8$8S#W4*yoPJF3^cYiJgWT8&zYG$(W1&l0B-fWl^D9IpR^~Mzyf3sF2 zu(4YuJ(=DPq!rvNQW)6kG7E_*;lJn<6@`F!xpX!{_#>wZ=*A}Vg^aF3+BU0P-dz~H zhB+l>Ka`EL)F}N0q-}&3h8+*{X#uSyp|WL^AAZPwTk?Ik}3a`h(xjPwZd<@yy zo=m{?@wZUG8dRD-qpPHzUb$DJ1#5chP*i%{&Mr#D0F;Ip4ezfgH_i6uTyYvH=zch| zyNiwbXKDEx#KchGK3#DkMqwhjBkg|jmq%cuc}_I@F07`@$+Mq7*}DbEi{tpCYEFWI zKU+@W&{QB`;XWs9QSCMuR_r<=!`@~XueYclQ{+C`1n{Pu+lxk1^`P8eE7A0*Jyswt zQ4Q=^z~Gpw4>dpG5AZUXcz$z4!l%$kJRyR|ucd--Ep9AvJn#gg=*}Jw7;N~UM{x^Ls%oYA7>ijd-(Y_EBGKlfF$3mc3>S~K6Tq0(~0my z%1wI`Hq)qWP$^7$eBEC6feD>RMnwRh|0Xh2|zD}vS|hivxyc0O!5Bi3Y1GR zsD7_15VB#{HDp%^9eN2TN)L`)bX!INS*S6NUEARIm6L{2mIb`-~ z{J^JOCI6)z+M#|nRA*^KGoM2lSK0ly6>2% zs=rRAG>JCs{`IaTcZEaha8dLWU^t7O9XNjTR44)(r zMxC#BR&$UhmxMb^N3wB-8Z(8#>JR+HZw>-5q^ zl#Cat`hW$XSsgyGX%8e4{MzZ(``QNRivwaxz%u%0T_x3Db)pK$HpPE&L-^&C1f|^$1ak_V$WzN0r83O6K2mA3I}pT z%z)S*bZK!IM88k{bG zC~HDWh5?i1!r*j1AMnWH%2MLj*y#>KlDn&pQy<)^h%sX845iyOPqu^^-09k53>4Oq z_^Csnz{Gk?dsAf8ahDdIq(XqvNO61k5bYh18Ivru3JWbwCytvK+N>nfz%Z%P+PJVKC)Y$EWi@3n&2{E_wFUCWCH>mJoHfAem0O6|<%HYp1a_w{8*`{rLInz818Y^%aAws0y zwg%x?^Byjn-%?Gg(Rz?izv&}jf_vO|6=zwk`Qo&@^wpNZ;O{oQeuy~Cwbru}L4i(h zoHvLHd&=uvs<{dJ8-yijv{+`&a7(IJk z35Amb#};@chDpOl z(#luOLT*9e7Ny=uuVN+b%0Xh#|ziK8o57qd*0zYERB&+kzYe(b83J@LlL1 zMBL9QPQ+i!@Am-s%}BK{YUS;T!8?1&e9qFuVP?7U>3oLQ3ACOJHK>xVay#hn#ztMH z52nMIyOgtqQXuTMQg$8jN}t6l{vo1p;_T5Ph)ZGrU#1X|ZN;$MFPRHHNh_F59|_a; z+mIt+heOfo8T=Rd@8+P40bM7p9-I-Wm!ay~$|>nuZfq6U|MILLX>E{xH^5DQQs65> z3Bhmv3@8Fo_f)i8(K2wnFj9GkVR4p=Ywl&FS+vS?20Bu~QF@MBSV%c4ig?m#*U(l^ z`70=!)i7isRP)p`rFVnH{dr$9RwDk%4XOweE+zDB4lQ14;6RQ8hJr=2xj2|{>fftH2dijp4#Ez3JgOTUH@#x0!8=C`b{2rJW?#XO5lZDT`}5)Dt~#RK zCRgQm_mU~|YA?TCH_8cdjYT$&FdSui6y*)y4Kb>{y?nd>mh}eH)6op4S5Va`cf}NO z8@JGx>2I1Sm^#CT8|4u1dP=tsl>8|I8_!YFmI3!depmnn9IueBJ~SXpRbHLktNVS_ zP-?gq-h1ZuFc61@B^Lm_3bVZA5`_3B!tL!ckn-3X1>9qHCxb*wx`{KYb-&sKSPwV_ z&{cx9JMqQDDLKD5715pNRrm$A^O9&OpK(9si-QvsnGa$;p(i=s0~7q4mn+KlfZRPf zRk}5>x~5zW(t3)lF1B`SEE>hC%4aMkFBC!RDo^av`DYo$=v6Y5&n7>LOFtCxyDY4m zc#_TT{VSDFhMR4*fP`I`Rf>0|eIOu|a@9kekVvO@`1ao_i5#mukQ03rr>qg+Y6yTS zFyeugUnrQ_t_8$SR^xkaWPHVfeB(1l4{MOk$ta(&Q4~g51E$r2X;k_^hgoCmE{!?n zwOULM);x$oeDi+x*rW+nVpQxZJp9yZoU<)5uxFHCWKKBT0|GJd&s|Kc(mxMRlFJ+q$}zmgG*&a zRD$)T2=j#`Y1Vl|0MU5-0^pbs1CuAzZ9&@A8QPGp#(P1NlnhY8OBIt*ms@7?*?6RU zMOboIBqqMRDdBoBCTi|d^RCtvg^ujxmguv|70C19W6J~)tY5@kihyag+l5GePL$Yi z5befW2IHoOY5slc{yV+cK~RM7V!Pxu)%Ezps^bVAq-%4BqJjb^{pDk>Ugron`pk>u zaQKSOjpV7jas2$Gq`Yqw)ZwG5^*H}}w0(4)tNMU=B-IW8RTpn{%fQ7bIYN6n8x*rrCWK7zq5b z17c}Du7TT(b5f5oPaM%EkBtHB57VCxa>1z{4XmQ#!!&8U$z}?3icJ66LQ8U&RdZ9+ zTW5}#@sL<6>3-JS9E9ZGJoOu?X->Ny*o|gKKUxGabp42=H4h*N{S!eGKiv;sNj%R zksD~gr@QteowVQIn+VmURlJuFz6kU) z*QaHV(dXE-{@7taZ!MO7inAmk9@$|N#770)kT+{p43}>|kjg7UE?&Ho1o;RubayNt6QE^4mMZ3>z zld?^Jy25gmjY<58*}c?9>K}@gRRa|qmrvt_q*jtQJF4EhSmtN1Iz5KJr4>((_>f=I zWCt_RfvgpLuZ`a5!4hjdKgusHRmZD@mv9}$1kq97IuYvsnfTU`pFIkxL|p^hs)$c~ z;jZBwZ4c5;_bs9NERVDU<{(U?o0Ew?Z|hV7&A$D@IB_|u$Tkau?q+hR|55{mL*W!Z%<)4LqT)Oe0_iu9tmpGB8vi!T&cuFlbQ>0IYY z1-ff{@fFs~^^s4gmy?x~7wODeKzQi7dJ^}dYf>)h)3kzZtG>CYx8_^6;|5^HF*L$x zfLPB4CH-?Ekhj^ag2AkKq{daA-4Q~4JvxFLE!`@TPaBxJ70ny4X4*%JnqYc{Hjjn} zbk)A*abW|1eT1Ki$d2^+hM#2a?O{sK+gZ*UY|x!V}^4gG`|8#QZ+CZj;~m!FSao|KbAFEbmp*VaDf5 zJI612|D5T$t=u#D&FCX;t?{V-xe$n8xdfX3)1gyt`Hk95sF(6rpVOElHXrTt# z)xte=B-GxB9&df6;uJ&rKU3M%t4rsAkT`z`r)AK$+DIPjtXJ%1*S2Xjh}c@ttJp(d zWHt&RgntWdd=SL=FHVCux=xnG8Q}3fvWvbxRh`@leTLt3zBhR+s~FsF$2g97V0DdA<`tG*k%gLSM@ob9{2lkl>{ zl115z8hL0un*YwLGwOMNlhw_xU%U8p{{8%?Px|-x1+B8aXP1Bf^nSkGRB?}rYqou_OtABsDAOmx%y{n~FY%>Zb2=Z066flBb`Fynr%8_V;vp!VM* z+8fFG?~g+cFl6TB2wb|N)W?2D*d;?;Wk1wl?s!9&!8tgA!<2A7!^PJD5`_Ihtl?pOUv2Ow;PM42DWp zxRQ_k&34Ad6HSa|x6FNQTw$bQQ9mtcmdT9SF^eAaFY+7phJ_G5N>Sfw<$YU0iY|jHEtqi#V&??w#5^OM6Wyvlx#7)b(q}#{|V4 z$NbaKpa|4<`H&Fq=?RS0a-tCVkxrq@3-VIR+(5gX|F|su$K0SKtlA6gL00C*%C-+?HzCqGf-s#XYLeeC{vXHmQLpFx>&mjLt5(cDw}2_u(h6!i~-6 zDe^W5Nj!m-y{S=w`t`-6^ybn=bo=`^A1CzgsEXmdWxu^Ujr8t#&=m0ZB{8+TqD5YM zx-mT?cn??Xk##=wFGN#ULKY98m3zP|DJh~pg_|QD(aoxM+uAb(+$oh6&mApD@V2{4c?GW*N^2UF=@BL2##`@N1%_F0sz5Up-L=n^oB>3&M99r1j} zb~f?GZl{H^sz;{_8E<;<8f(0>r#kc_G7Vmro$M7Q&A=ckGuHbQrO9^BBmO{tpyX)o zE39L z9Md!0XlR~PHFF6jyI?C|OseP8vZ<_>m{2y@{=Ok%uANAvC4&y(>Bb~~nmE~}a;j3G zOh&PNVS0>dNN8uF?oc!B+q|g}3yv#W1#$eWPNF2%kNIo!w>;>p52VqWcU@AeeO$25 zy%#dbrn*-;y!*RiA401XgxwA(1iS+d%-7=OpC0hH8{GSIJ00+kt|oat+o!1h1Vi_d zzh!38U8;&Glyt7epV(iC@>&!$wnEkw!g%KiYCpF%zqM@e20Mpe&j(mn@r`L?chUQj zCnuk=3vH-#R=QU3`=0H0AMd{SvF%0lNMM{31Znp7NU?yzsGF@o@<_G&o0SG!;%S=| zNX*E%il4nvYfQTR&KJi#2|f8lzD!znWWv%{-@3K`5rLZ1xNOC zt(Q!nyo^*}_3QiGCGWq|{rpXBS)f0(w=`T0=cYe;XqWcr#dQ5H8c-2)Urx2ry?=2b z!@gdz$Sf=RLr{ig)rgtRL6tJ->Utb;=B3?k|Au|iglY43z=z`oU1m$K`9BEc!^|sB zI>EpS_ab-fPTL(F0-n)h>p>|GiV_cLT`Y0ehM!GhK}G`y1Ark9_a#jeYZG zq7u_yJCgC?@X;FiXx85s`C<-^_r>y}{%rF7_W(lo-pnxgV|bq^ddRUeX@6NC(dNIk zH;Mq33oSE;dE)lH* zzwfzR7zB?$Ot5SF--BX#u5_^S!|TuYZ0~}s@Ch?GAn@~~{(m|F1Gs|fM5dU{z5})d zL5(E%)%QIE&oT;5(CEK2^WW$r{=OF$XE5G|v&5i%Iq2;)u{RduSq1>br>MpbYGC#qSX+iA2*MHm8egDD1g!lkSKS|0u%{`9VnjLkB2VnQ6Q$1(U@r@f|4(YOQj*6X>**`qDV?Y4v z+kbn9`_D1T0M?<=>$yK}_9Bo|`hW1#n3R;l$jFno_mAaYmiLd(LR7$hzJ8N~{g0=R ze}Ij{l=WZJxc?^ie>RQ;$u)ec`VZMEF7N3rC0y49q?bb zUJq!8Ge|DnKHK!<$t}=H`2XOi7v$xk92^|a_dodm{z->}eQx3)D)h&8H9n{#Ai7|t z%OkgcsRB-~3WFi3I48!~tyXZUDL1;|k6#^OxtjU8^ROBFFNQIlD=jm17X|lSpJnw> z_;FDQr#d+j>JOsu!6R~P>vLfqcVc=Bki*1}7pw_FaeiY5jQ{kddVEU_^TM}dZnW_w zPwe}O<=UYXS3wtkQSkPF_ont-`xg<*NwBBU*H~>v$10gd&*7sbXN7wUxXMTPTT=D;lbA+s{ zc-q?7RC8ks>8AQ~$&adt?uYhUc+eZU7jUAHN5G#Ack%t--3H)h(@dg=>b`hh=_@c* zHy&oc4cRxVPn4bm*R|rJ0&t1x=Ken(ejwPb8SpNS{qF13CE$_&ug~#$;QRmmGv*gn z?JyK&*|z{#j@{UMAX>+iRmZlf_jS`AJn~5gc-WOr=}Y@oz=elC%nqY&c$A+X$R}3?RZF~oyppT1HP1O`=>;=p z9t_+XT0$RoBn|ky$5*-PrDZ5C-ZTIGEYrdB>Zz&$mL-wbm?jhx^fwfap=O^AT1i1$ zttIR0tIsIf-|X*4;z`feB(K%@K6;&~nQ}vUGAFW~(&VL+mqWoiX4lD#AypZ*4N4w< zE1*a?TNKgrlCvTCyKaPuDyu*%qJ+E-ZEew@2+i!&Drr@Vvim;h2wwX~KUcrCX&;@x zI%PbIm%!yae=M!Rceb>2e~BK$B`$W9U2l6YlyR0Fil8k7DdkAI{x}z1$7E}3Kf4iU zHv?YaR*PxB^)f2T%jX^%DAP|I>d&?86+Iq)NmkZe%udHZQ!}!5)C=?D;pEFqbGs2H zo*PPVH0@avBWF<}d}dxxktvhAd-4`XhPc?!C!u zb8Ojmilc|E`D#6;s{ab*WDsQ=$8S{_stxn>3)#L&4qR`gPf!TTwzV3x#*WHwZW1on zl3q##iIKMIxWhP^hH1=wZCSD{h+_5Q8pjF(p`;!vA zg6H(O={{dBH@0l|delS&=Le5peWX|R%Bxw>XZEE=(e+Xv(+4gcsRoTrOqD_c2x6HC z7V@CEdE?j_Rj^7QluNPyVZhYEhj+E;llK$>R8&4ow+xckm=czLX7H!HkI#qGGiS}E zAGBU+Gv_^exy4~~wQt4v5KsIH?r$4gTi8~Iaewg7GgTqF!6Wayf4g@TK;+7RQU{%@Bs^ZiH+#~akxNm|M$f>5{4+zn|pE6u;LM_`wp}J=>VvbB5`yNG>Mf7JG zlg87-5~u?(vyxvpu1WWt9Wt|q_-ak7(dVwG4fWFV#ceQ(m0r-qB{+VyS=_uT%k05t zOJ)U-G`B-wJBEup^0AL^-pUz(-S4!Y)z3P?mBKB;P3dR}2n(=_k`qnK>DtCVHtKe# zj*cX3x1B(kqOw()xpNq%1Y{QU;yoyH@yBlk0rkoAV(yuuVq*R1&Q+Pkc}i?jQo$-G zZmvw2eXi{CtNsZ*r}#`s`fJ@!+!7sg8zLbRG!EC{w34RigiM(V?UGs+7f=?!T<>M9 zg3k4b{nUuL5i=o5bn{N-+3rJ`7s=h~m-X33rUdeSr?#V4rCMglo0Mk%uVXF+gkqz> zqY4H3mo=u2x#OurC?c=CLV1yXRTiS1Of?HGM3pVM1g^~f#W+jNl<}_qHd$PYp;^YS z9jY0SBda|~5zrz0lsi%nV7{5C^SD0@|J`E%PHx{)L)Tg3LVr2+dDqnSt}E<$5v3!? z29=uxgcPjknRDh=XEQw2kxn(LYXn3^ZALSTt&JT&Kpw{rHo7s0CXn6$YWwS>uRrp! zu6r5}i5~jEchn9vx{^u=hDB-mhzR zPk5yC=2!)M$~Uj*DJSO4Y+MsIi@i;eea$0}sDYzDxxZ^NQ6|*$pI#WMGv7W+)eHZ{ zcC&g{L`_`ZUn`Lzi#qC_DxMQAU6mF>c+jFDL@#7+>1)%Y`wk zh3oiWBW{SoW+rw<#B&#Q)i9T&TjJw9iVqowoQ(VEgAb*Sl_J875QfrY-GzBaH(H)p z^6Pzi>SUBZ3vg*TE_IB@PEou(Xi|oeTl}t7VBO!w&wGczJdMAi8Hi^nRg{19iG-8y zuPr-X%*-if5{xv>x~3zapCInEk*5{{_+9NkNG)}f!7M77V4su|d0alN;A1}cm#-_9wNSqAIy1}-BJhS!UVg4bg&Okz|L z^{Zely<)3fpM?9+UK*&)wFrP0pw%5&fQ>uGyyvewS%3R$y#GNTLUY16E_b;R$^Wd& z99erp6i-M@K+4+dBxZO72gIqO_P<9D}MQAv7}ni zvOyBdtrBt?uwYhPcSs@lCNjLmYWlY!>g_7cgNVU!B8Sb*i#dhzbq>>C*=<5|*B%r( z8hq?!DmyzpyyZME@-w|LqQJ{I>rt$njyU#*!MouwgkwNrF{F8E`y z!scdcC_ZdL4)()N?s~P9fYKlh-6g$H=C^G(GE8=l;_kaOw!Ko9-H~7)82qDHVG}#c zxb?$G%TgVa!>1PN@r+z04DE8toT_8x%`&>B# z8S`##dCed0M54UA`FP$_AjW~oN4crK>v-(T$hCES5Vb`&^K?5#X;X7mGIPKUj=+|l zA2bU8axhw9BKP5Jy_P5N_)arV-kg_lO8XE%$?CsM5w9a*@G`dXXw)M^;gz5}enDB>e{qTX7E}ao#M`UR zhkE6lnH)f*$AmNsBOrxP0aIC)azjw47|xzPD|`;MU5R>)p_ zN)o`&q{!CgnZ@oB?ldUig1qOcnu!7g1aTY1y~tl@6~&p7a_K!8Z-qlH ziHUEA=NXO7rReKajRoY$jQHkPERZQi$eqTXpBeI-W`QCRc}J^P2u0WHY%$l%cFcF$ z+6zl7C0+Z*Z&pFf$w8~ZHfel{vdS)IRb~9nGQ4#=LwTdoRKsSbU`kG~F*x_D8LK;WVoYikj~5Z$Pw{rg2PTmV{E>Z{fi60^c{;4!f6zBmZB9icirZ&S8O#Gieg=nCbs#xw$bPifiOZKSJ8Zm! z__>eL5W0ntZ1edBWeJ)~MT<-K%(nWONub-z37?tH=9jegJ%C##;5NlB^7||!X_kr^ zm>r2m_YKqWI<{m$Aw}Md;_?~kkjK_vJc=CGzq0o&ynN*ai^xYxSjE!{cg(8p3G4Xj z3kpdQNLAc`b)>DoZQw-uFlPoMjP2&$O4NW7y#QHzPT0)6${ z@&I{j_<0^AdlwFYtZh@`1pvz_lTM3t^9+`J@9%#($*1e-m%;baXR{%t-pmIS{Hh*~ zmOp-%Ehj$0Q1uk}cxOR5hp&@(v~?X{bYgZ}?61P7_D!i)wr%x5N68#X@8<)Fc4amv z7!cHyCvMZYWKZfNoxB)1Wlf4YgD>L*jRy3V~RJXmm zFo_TkM$j^-`L+}dTfQ z$lTBHYotg1#sZNrgj1LQoVehwSB;%!K!aX?Z@rb~w>}VG<}0I)4tSJX6PZvV_Sx!j z*OAAqv-je6K?5IU)w0X$K8iv4%8fMGS61r+w?RinowCq3bn;ic>C9-T{#@ltF8F%A zDz93DSOKGfAHoVf=8K)i#6;Jw4;ht#gW4G^63DN#o-czu)1j^7 zUM(6*597A8u`{u@s&Y?0O7+)A3S(+Ni)3)yBuUx5WGfecV8g25!xM4bL_uuzS`@d$ zXaXx3mlZDcaiQk7(ISlbCv(}+biSxWhq*Omf*ADXvbZ6Rcv@io_H%?_YGUDHW~~=VCS|1E%pzSmnz3TkCq*GAJg|^KEH&ws(t|w=-6)c> z&#Nn4usM?3a!%AhS#8fF#+-6v66L$hH{2&suIUHQKP@RXI ztRFK%_8;C>&7VW!<_Z&wO3<#q6VFG6K^EvAIwOM>sSD(QhvD?~7FYL6}t(+O(Hdb9i_vMJUvP6W~#^;bzaD4Adh5C3pFNr76o z)_R20QBx$ZsH26IX%Zj*T%CTOIho;zXZ`*#; zsjYxrfpLz-NVKN!evQU--HZO)^{%9Yqjvv3y1c%GlM8o%sHQ^?6^x?S(lmWo39+BwzXFum*NI*T@mx>x#b# zIl-BNzlxn5E%S-?TMO)F5J@0o$fQ@ni(BT~5o;x*(#*q@v>!iya6`^4R!<4Z@652i zc5?T=TGkm$<}!a?cS2MK8-C^D_!j@(q9Dz_VMX5mBt7p&0W4anFZc}?D!{YIJ;=B{ zU}sg~rW(HCCL@QquDQM>@mTT{-OO;&YU02Y;<`hGKQoVv1LQK7?1M}K(Epl)Z#Q}Q zExn<6jzO7ClznL;l$%SfJGE2U=3c#ClI)~q$w1MAJs|SP#0(Ua@&_fPjj#z8m8-0k zl$01<{)!nW)Tc?{h)#8B_Ja~P4;rwR*OyU7)YUahLs6+hrUlKs95!?Yo$|kA=ZSbj zF;7coZ{IOP`|_%kU2-&A?e2uXS36@BDWq_Oo8pQvVFGDR9zma*h+o8k9C9{qg7w!) z;px={Uuu}oO}`csfprH(16~j#)vneyGgu`0ltM2LK4ng(Ij4+V*1&X!MSB~h@&wxQ z%Px#m;UDSXhT-By!IRv7hO_VWRAGh9jctDh1U80 z-Wat7183(*$a1&y>TsH?3yd~>iq(D!Zzh9rCqPc|`Y(Cs`+efJsn71ee7>9Fn)Nq3 zHm*aw#bGD(@z2a5KiGu5^p_~_!`W?Q4y1{mm zQ0_#`{d@LaOiw^lid0~|!p?lgp|Hq&+)h?d7;nWF!7jGKUk0gbTQ=M99$F3FlZmy~ zwejN^b&JiWoZE-IbHx~AaoDFT(48rETGGuC<+hm}y9C_bO^;ZnF&RTATImK>6*`iU3Pvh{RA9*>$ch6RPHnenbOUH$Of^3*TnIG~|f=M`+RKD6-jTYZr$>&{ZZ|i@J z{6I!#<)EdkrrO@?69f|Gn!Js3hlaEa^HgfMVhWX2Wpy3#+=KbA)Uz{xN(FCEBhQQY zB|MY&#?+3CHk`5v81Ldl1~WGSQslX|;XO6aV|#ClKzB0!10%p3;=AyG-|{2>Lp~9^ z%F&zsITlqO;vq4zvOaqK{16Y%&xUm}ljUWGIcwLXL$%W@E6T61acCX*`QlWx`J_jo zO>Am4ce&XH5nh_lgC|ZKv-Ru*S*G6!rsFt)U~<5=Z$o)Jox@#%UHVCi1q*Cv9LfbQ zCJ5>$3y?Q_AUjqt@5}X8!L*?gWcfCU7q)_*`C{L@@r}T`}Vt!(c zs}8i==%=@BLue?v|wRQuL@pN<0#An^s% zB--NjrBt5mq2B44$X=|c;bZYDj0=(-qBjWkio=*X0DKjsM>88QXC^6jJ1D|j3Z3&) zsMIcMiF;v-L*)sH*Vzo?#mX542hvS@Gg5e5A*x7|^tWoi!z)xp`H(i@h@IAf5yN&l zT7kzSq_oZ${d6*npWbo=fjrI1ie$iK|5ccG&RJz`+1;JwM%FU2)u7l%%}oINAbr5a z3SLRKh@V`LYYgh5UcFjRSoRn2_Sh*ijwk++so z+Uz)baPnD{aqHVGuDI&Lyj?**oe|n_(S|T4V>g9x-MF_4mhX*}892KH5~d>@Bb}$m zm_LBB*Zq4Qy!(qnOLaI<)-C))D$2vZB%leFK~`_zSTE}Qz9`ZAj@zT69s zHBZ>dU#2Wh)9eHs{r#uwLnHYt*1uNUSGX3u;zQ1H;snq3^uhp?3MRr?zlv9EpdJ_X`}+0X-ZuQYm-4wd0bm0Zu>u7fY?-Ku@^ zSFe0GBD~PF%8Yqs!6`iXmu!NS+Y9UVf%>jic!xKO*S9t+59IOQy{y={S+*!H@00gL zaANz@$MVuRLyPvg;zjDjl@lHi-kY&o3KsRc1RrM)3nxSvnu4jCI&X9HO7&6u6Mh1| zrR3F0vU&ex2|dUlGPo#Cq4^Z{j^5C4xaov|M?8ypG|hjm^0m*Ia}GBN&|u28K5DJ0 zU78;UeS{Cf!{p*R*}|jK}CJekKZ^;40)kjTO+f><-^>v34zV=YBOOJh^X%r>3l;u8Vi6WuM_s^?<&TNlLo&-1=Q5J23wY(KtHCV@yvbjeht3n=`2(aTf7;YBQ5j~xv5=dB zv{fB}@^yf)dfpP`bNQ zx&`U(+LWMlh@|AVw)g#f$LEZ3-tqo zP(+a7E1oYCPdh&50yO-gpljq*@Z;udRIg0)! z1brBt1-}3_NiDHF=kENSzDNA}m#fv9zWPlbq{Vgei*TTm4VTp_bcK7~dO2MqUk)b$ zdVJyP)36Uo=KFnINM1H*f7ol#0Cd+}GrO|+ZOBI*#h^T}gO-V3t2g30YU*Xxf?-sI zN`$BsJAniY#x7B3dJ=f@#x41w$1II&UBJ3OD!x=9o1xqt&;p7u;Ujz z&((sAN{NlpiAjnuYNq^*0E(Cn)=9L#3-!3cz+>eoZe_quy*Va$=p*-FMz}@2@7*m6 z*0x8()q~U`hd@s)cnK%)#nt=o40RoQkJ|)y-XxcVkM^xs`i=uk=xEJ!yV57aX}dU- zBDl_$?qq7*SA1SSk*e&rU1ve5+HSq0Bi6gWzo9wQ@XZ@75rQ)U@43T;^|FR)$C zfq^0X5f&Gu6hZWkrgQo@diIpDTaZ%+WIW~29QEfpalyG_g}#BYj0}xhfFBo!SMc)v zeAlpjt0TrcR~~Q>?pWZkb;PG3eA+iViENW?GxjDQ1Ft;Xm-@Z2IRB?!c_(WQ8|;-j z%fwrktpio^-NhP3^E#5=U@y$YLGH>s2(&i(X;x_SxnijdL_nTxEUlRO5^rrb=TY+<1*Er=s3@c7X!kVI4`n`qk( zl?(Fu$}r;sOPO8MXqa;f)=f_%huxgy|1n?pznoJe97F~+Er|qHC^V#51Fjm8)nBkC z>IBP%WvZ76N(z-uJpy6vplbbe;@0J!l!y1O??}Y!ym%|Ckn^Zbfzx;&F4-pKUb9V% zXL(K`y|P34wq-THu~BnqPjvB_5T`*Ido-DgDunZvSm5C8NG6|T)b3pM==JV(=FE;i zyyw~nl9`Kafw-g?10SEGJ5HB90p((-+wQ+rNT6`FrJ6K^`OX`_eOz&aYSKSEpe%BE zU#KuO&K>)=yaWRMf}|uuslWo_so{kwu8R?k@~jcRF&k4K7Lc12d|XP@_p1=2B%AXa zHMg`O(QQ_>u+k}=y(vD7Ua16xi^b`0a)KcM_L?dpF$eFX))3YuAZ~ExMi};lM*zHClbKz-w$3$Ky|U z7YB6{JG~In?A5L`$oNl~W<-r{R8Zg4%3zK)SF46WR_H0RqQW(T|6RVqlmuEx9X0Ve)7Kg4cK<@=UJ9jTPxpd>nS0dI^hag~ z1RCSkcrLlT`s10^9VU)R+Wjwq4{n;iC*Oz(8EFj?R%a&{`l7ey@u3e}&$nk8`rIcU z7FhHb`7btF1QrOMmEnn>*6N>M8;`Y%_sR|Z1*10};@&p4UX9w;rcl$Ogl~zzO zZ0Cc+q{2Ydsj@TU@*2YpryxBc_hBFY{49zMaNQu6`?M$n=jCaCSc(3H>Ym zeW`fSiRV};<$22ns4NT~n*|9ag2{!`^M(qg-c1;@>ZdR?2^CnjDA(ZN*<{TYJK3rz zHn$w}q6myU7jRe(spIRl5$~2s@XZEt8|v#&qPvB*p^dHS`k&vMepx6t5yJC;;HmZe z50w1(&7*n*Rg(wM;@l0GL;r&G3xoY|z6s)X`m{`;<8GqFp0`SaKuUB1+yZ5Fq33eI zAl5yEXML-wY91P0O zrfT{+mpgNwZwKw`?3TNTOG#tATl8ZJR1UUzdHIELR`F zW_zg}80CcUX>+e2{2?9@V!equAxN=ADac_t78BM#7{CsJTJ(4xr|qpcI?x2=Y!c`^ zuW|W#P719(y{@ctnv*~Cx^!6fJR$v%70v?2)_ymsv-VA1UsnkE^oyT(*3Lw&_%ot2 z)YV$0rL;m#Sy{P#PPJ597sOH(Z|_!0a}TpEX29K*Y!IvXST2l-Xm_SNrDhZY6^MP% zne30+!otXzNUbU7TP~hI-BC&95QSo0o>kv@|F{Y_*D0(6JIAywVw2%g_$|xG&1(;v z0qf9*Lg|PtSSnF_rFIGCAa`?ITI5^Wu88(fv-GyPWAJ>tGUTC7dSdf-vvo1Zc36EB zr$DHDi)O5z-gMJ#9;$%7E5JD>oeQJkQeCTtkaX>=SCs%Vo88yYs}gswfS&^)MBlGm zbb?2JcYsa7{Afj}xqjrV`E-3K?!N^g<#ks-5u>+v)ep)P;~F3`slNLwC(&f&iy8$b z8P(RVE6B4o#$6VfEWcIh=%_dwS3g<${GR!6PgY;4)!8_NdqV0`YnrjGGd+S5}fJoP#em4=# zEU9J@Q{;R(&CwvPOh1c|g5k8hJ*dk#C|S@^a=biQ@f=wU_qfcOQ0MAxrC(q487`I1 zCw;*Q&$VS%!wS}U-lpp}y1_mcmP~U(#sxp7kjOaO&8A|4;5T~2zI72LvWo2rIV=$) zE)_;3Pe4aqo%jvr_N$CetWLb_)gIFmJ2B`Gkd>J2#UdU;N*yuWbX*3MqUp5Bo)&xP z0mo)?tmW#ar_~7br2S^@hhw`wIH?6JqZ`~1PfHYw`gh=Qpu8f#hn-R`Z*-VEZNi!Pj~M%I zbps!CoC?juQgM#wo@@`Me*ZNS$xlrS@2{=^*d{$a!P z`_K%mO8NlOpjugx4lA6K`WgE2-oDT9Jjatu=29q}E~)U~kSz91Pnp%PPu=^s25x>f zv~={XBHiUpO~HpfbaoW$fpOM9dK_WkXM7;U|Ae|#WZ9mAo=m^I3t@K+k=y3s62iCQ zDoo7HsyuGnc|ayO^!V^6=c}zH4uPU?#Cb!d7q0U?O_o_LN-K-Uu2u}@IIgwVTb^>s zlW(0z{YF*xhAJnyY$}{op&VNto-A8T*(bZ7Nb}fMYp#v&7WiJ6m#}>xy^AauPNKj; z;tX{PmfUhpFJ(`ug!)q{Y<+36OhZ3N+J&4y{mz3w=aq83=~8iWUhm4q>vr<};Nl?M z*P*&Ph1IlVFrF#VPUYNno4U-@4)MVIa|=Z-`pJzYJ^yG*N&YHJycQ2>MU$A@>a5z2 zq4+Te5b^eG_X~{D7Q$z(_pD1Uleelo>xi4zS~1HFDzzwqOvjmXLndZ|(U^$<&wxZAR4bncT}rw#!8aufAZ^MlDd?9}QxwpN{&N1B^nZs~AW zY;fHRT?1WNxngEhCSMAVl`S&iz1Jb~hmsgq-s*eGK+df*f;#hKRC_64t;ncf&PV>v5I9uHMTv5f&D1&(VZ4`z0rWHG>bcgvTLe;*+CCw#QKzf@ zQiXD}IV5JN?#v3t5;Wdy!~<4n@~Bv9y9TPTc32;cM6}i4g{G|6u<8??2+!YLSN>?= ztZhTTgQh;1W*dzQzUKC*zc8b=9?M3tBYQ?@j$$LvVXAyEafQqkdBC;2a)zidGue*A z139a;t#Hq!;JFS^VpP#z;Hf^F(7(t{-+p9|MI+f)MClg?6Fa1;@NBi*y7K~wnxvcm zxjiAK&npULn38u;mi^&hXf{U?sOXokWQ^VV{#8)B75|Gp zd{Mtz1(FFWw~O`vXaQgsod4QfQN4c3VVGCZoFk_hnt{$Pxw2^T>Kp8ax|^+-$A4+@ z9@PQR5V=@vw)S68!T=VO;r|uCqe;Nm1RqXsQClrl9na!}mVEY0pTGDp*v&k&85|Df63{$f<#k&HRN@t#HkF8|XA0pjQ0V%Tn$Ly)mBfpyhmi9Z@ zie}u!d1)7m~D{K%k?0-t<5=_jNbovbm=O)9h+y7A}D=;5#r|s`sk0c4nv9Yo3 zdd}U3M?{@$^UI5W!2#>epmmT}0yf8p;c^%z+6lv1&;I`F0B2b^uIboPz(cPR5aqsp+i|Gy(170to61yc_>!2ho$^*P1QbJ5u=Xod;d ztP=ex*0B9OHS~dXk;l~f|J%ai@rT_s{9o@d1#w`c3vC<|A8ll;3hO(d@+YPTDS_N-2tXcIH?2@SMbT7#dqMVpW?ESBk*itm` zjj^TR?N(7;!3>OS-sk#XZq(!tJ0u4A4g>C*`u> zh&9?&OH2yKk}>va<;NZzReCL$H$L>C+4h%gN`CJbDi)#awf6=gc<(r~ zd+C3us1{p0s4=IOm4N@&iHFyba{oKcC<6x9UWGY<)P54F6^r@D7C;@7>S!Bb)Ue~x z`9NG^%9~XkDd5?o;jKha6B(iXpBy|z3DU6Z804NW&!**J`ps?T*DJ3hLp6F0@gFh- z8Uu0b^pNJp!8qCa64aD~biM#egZfHtHRcO)*|~N^Dd(R*A0P19ziK%rQ;v6}E74<< z;G$1ZJd>s>Ta}}d{TH+8AkS;3aDfmpLAz#SPbb0v;&o#IK~;4@hk(_W)164f_X}={V91Bn(cQ}{ud!$Gv}Bdq@iHayYA2<& z^2OSN3Z)^Ye|%*ZY@ow8L9bJAnRF{2>2|y}o$-V1jD?uYA>d)#LX> zcD2|h`iqYb7C#l}UO%*)%XoQZ=GVNdN|%qqHB{sqHOXHmsl|{v_$SCd(ghopYt>G~ zgn*WY3wxQFfT&c*NBG9Dc5n?_g22}4Q?O&-YQRLI|8X+~aWBp8AD1uIYWP_%mexTo zN{y0n)ru9RXBgtu>%#MK`)0?+{mi}q6*bna;FsN3VU4! zi;alH%f5*WMZ%DmJ%GRyZI8`BQ2mbXPNFlY5I|x4z5KBxt`NdXJ2pV_W5kAeu{6MB zy*J}1j4y}rg#I2$;6Dx;)Cq}CL|Gn*0_Snig1y&p)>3D*YsZG*r)%sT-NBQdlM$0tBX6W;NM*eC0eN_aj z6|=LmFMY86w#cy%PM}MxM z(b|0>8QUY>IJl-r5-WQ5)gG}D$(`K22mfb;;BUsq;GC7``=mPlkH(;h_7sGXAASdu zpF3Q4zGTbJlq>1El*DV)N#}pfxp)4&ja+}kpCt#qF#kF$M6df?X^X2Q&xu4$dEk3c z&e2n$KREbjDrnKZm3;Hk@Wt9wL3^xck8B>SyhA*Yrzp1=7cR;YyE_4UKsTF*k_nc^}}uAx%X_|Frp&b@@9{y=JE z;j?RdTW66tYN4q`kfEejI7^H3MPQQi57$uza2AS8v-#1<#o@AcW=aVjN&WVPTyc0< z*hFyD-rhdS*-RrSJ{{=99NBiEqAE-8R;eYYQQ{(nlaHtl1X{3v3rqrilB*++`&n~g z%WQp4)!*Op{D^3??J;cT;9@zsw?Chcl|wQ4ptOJ7%? zbZB0?ywxM!Ogs!_j-x;!Evop0o-MR74UM%i#>c6}pL_0Z86R)l)x2WO)CU6?x$pm{ ztiwMB_wwzC$klqHjkJtNL5K_eUTt$c9ytNYhyYcMiYuHehDbtuxd_kx^sbzM8i>+~ z+~pMoSo9&^Im8P8xE?_q11pQMw624)gBDk?h3dD>4iW0M(rW6}ylTaIGBcLb>UG3* zaW4Bw;O?bDzaiuqli%d3@a-fDeYyVK>rANFis8}_uEEXt71dv$0Q957pRD?Fdn zx%FPr>kvrae+Lbjg(cmH$bd*$M>O0a0(0yY+jM^yM}tBD#2ZgS_4F5=#wgQlfRNue zO7um`6wZ_uc-9T#tYM12Q`kHbw&0Osb-hgxx^lX8?dg79K317uv#arbaVy3j2IIal z0*kiKXuIFLo=q31vmL^}ZGNW4z*8uF99E*-R$r33W^|@auS@LJV6_LOVJ+?&{|O4EEl>9<2`9tcf5( zpx1EAao50I`E()qZAAP4!|jMrKQQuTN&U>YrOiv5`KGH+%|3;*w(~ie_tG;*R?04d z)Jke4c)x18Lbw*|-?zO=|$X6==CM@lmHWe|~V$Ss*Jc6|@+@Gv=`qDHqO> zNwt0tj4$=x3>^eL?!ey{q5q?se9!OCB!Io^w`x1tUMrhEQxvj0OH1y8@_?5UiQ9TP z7thZ|Z9zG#d9#bZM6Joh+&NP34?W@j0(ff5f*1jdp%0|m4OD6!*3vVXsmgeXaXEvo zJw3ZzY9*>frDG1&Y~fK6b-p}mhj&bliN=C`(V2?p#~XvA!WFs6eYFl7+BQp#@(`X1 zwd8JI-SMgn;CkDMr;AA)9|rHl=t>Mkx|lU#AQ52(60AANU9NSfbi@&oR|W+kQBl9p z6hp!><&>i6id;cS{FRF~6CT;h;0b!w_l^n;*b*~`ACDhhVJd1fWhJh^C zzTp$&qXYSH%-6MnO7)s1WlPX^RbN{6eS@&n3+lUTt>@fFFdrDm$>!S#^k^agTm5aW zui}BZ7NyvtL;wKDc;lMee&bO(YNHI1+tt8|lAnkuBG7EI4Na(ADoZe%Q*6Oh2=l~- z183Xc9`t7tl5x~oKwV4M*T+ay&bBsHsS4the-PKH(ku#*%)FojJq>JlEDUBoKTlTY8Dp*_&3&k(^s?FN3Aq9fZ0~&1qF3+>*j4i)#7Ah z95jB1BN0V7b33jq1z}J6L9*B1gh|Uwe?~w9!{gw~2MLSCBvU&3+$WdBTdBmy=t#$xA|Kau6>#x;x_8`p0Wpq1O+^Z4No8L5&#N-U zablNN?9b5*ToGfBCC&u5-1JY<%nmLuYF-_`usYDnr217n2y)|TQ`Y-Ckh$?19_@WY z6jS)aEs9HixigfxM%DebtLZBelf23mEVR1BQE7z%EeseP+atRZ?w~#VX8YjW+mn54 z)amHpcLA2d)px;Ff8JFOW|^D`F)WUnsefVDW6Dw%KfDX$0|%%BQO{wQTDZ8w}Yt9sc0Rs}~fA~#E_R`>9 zVJKcl@C{WsfrfGpI!7-=jR>)>%{dQ=$V0=uvALMi3{+VlXi<>M^k<8gG?xHc@ zRWqyg$i&suhd&G(!yuWnfNsw4mpbU`PS$3On(OG}4TatTznxHVa&2IRpGhgc&z6X% zxpH%476t&ntuO0ywtLudcxi)ja-@(I7>RQ+hDrXw^S@@y8Pfc;PnLh)Pv|-&8TwfC z3ywb)6x)2ZOJt@|4=;TttC=PduuT%wRYoJ+<=XcRhZb%ryXp+OCbw(7e`t z3hlUA(mh+dFxSi?z31-`rYoxx^>}&>F*VC+B^RrfZEaXH>=T^zvioPLagQqJ;ZO)L ziH|07wWLKHRV`4lt-gBVSn8CPr_L4|4dCi7%?Ag@W5EhbJ`)cJ~?+gq*cL3Zq64U&_gM5wIcSo^DPfTRBwOw z;g@SSs8J26D#q`AJJvFUZn~7H3QI7RD;f*Ul;WfS_@M0v^tH#%SCw)nY2-_nfoCrt zZ`K6;7NVp3vwyc{f)u|~F1 z9&Ruk>LzqDrq)TQ&wBWc97`Kr1O6mX1q4r*^KEdwI4*5W^Il9rd!6`Jrb{^SbcuPm zY--LoWSy@U$8=X`)uuxtR}MXrE*-~=Gi9m)g-`#Ke_sLG6vfYIc(%7-F$bOHuJ)Ol zpN+g)a=4mWourLgsoqpcV^UI5-sPnxo`Q6hZ?fOR;*B8Z7bi(-#cY%tN%c0%)@qhZ ztqxIf9`m3tdnx41#q-uvosbFl;Yng&pF*0Vx_W}EMwzTcuVPZ1-?c#(>ix~nHf3P2 z192u)1S}QZm+n11J#+<{)q)K&zv`~Pfw4+%!Id@p*Jr@b^E?Q~UurY<#$tb1yr}-N zwC-$Av8E;(GJ`*7BRdoAmuES1r5aDCe`eyc$$DQ_^>&JwZm%jOU2AnQr1{NP&+rJ$ zD42`SITPmf71vtOT1*((LhE357vVI`I6>U&(2)K$F!p5g;u9Xx1}@I0>l!5B-?LDQ z!+^3dQ1=rlIiuk!Qjv&~FZO27 zG~2@cO&a}3AKTAnshBJEPQ3#{M{n?oO@enOcQ&aToVd!wLF}-%*oCSbU+8(k}=!q#YfnQGipx zy>038@IP7kdA*_c0;}1p?~>T$DU92=eAa)tm4c<+Vp!^X=~Sa$E~6Ga$fZ{28RVxv z->BYFZ#T_XIHz(_a5kN%UW+b%VeB=76UB#-_>id?#PUYL5QnvnQ|VpSVWbT6Uqf z_+H9Wh0`!B1_F2yey97b)!f6*{S+TRRHTty=7H?_uurWf|>#+0SdoHr|3n z;%TN7U|3A10EgWcrEYoOHy^1!r_us$(W?Rj+F}59#;CNRi{JjwWQBhTaI~OA02O|w zuy{tmf%eY*MYmTQde?8#7t?YtS?5jrz8X4c$DuzR8k}v#_ETPkj49=R?#Z=2eE=H_ zg60FZtur|n8WK4^vP@QEt6ruVxo&KXM?z4#9u`Iqp_V{Lcj(-C9dr0Gpqo=2%41jLFRfJ~qjFZv4H1T=K6W_M%FF zGi9XrI0P$%$J4w#ki2a>N*Wc&l@~pFxq*hHZLn~Zs+w=zx~S_eonluDiRtNWBhY)^&0-(>T1RNHg*t5u)e1urV||JBd1ZJ`_ZNO)5PFBtS0f zmkxVZcntUB8Ew~Pe$-&*p2c+fHnRzCISkQA=*LD;7@M?y_{WD_Sy@?ZQ5a7PgOrVO zBby;W3A|KWmFcR9)! zR^xG=P~-ISW_P$1?tm<47y5hO+%t%X0sQ*KX7K5uB7(}eDe7T z^o?#YHe)qns=XIJ((AJGN%6=U3}JBHkyzK>(PC9o3NXl^PCndT>qO*tW|a$lNFFDj z)?br&eNH~k(s66+6HQ_KUd{x~rBAn?_8+sgt$t#{$nWL1val>b9Tym>ba4X;h+C7< zCG~(;Idn#)?0+rM+pjAU`QZO?XZ|^W%G6Z-wFJxyfqvXVy_?rE;=mmXOHFT0{@{au-n{w@&eQ7* z-QEzpg zjXr^HdPG6p>c)*^7tU79=hVF5;nVrbK#PJ!qm&PM=KmlPX8Cx zOkQO(mU4wVe#->{972i<(3dnT-LA6q)&5Lm+$(dH+i;efa^K6uymsl3*NY)`B47{S zq@X+sr(o*xw#C^M>+NbM|0U329*^kf_HSBST0av52YAL`zrnP)3B=Bt%v3PIR!WA3 zQ32!6O20Z0qv_9kQqVrScYcaXEFN`bj-{#Y>=uSFc#E_`$$q z#g0ex(nxq4mR_yFviG$zR3K>Y`IWE6PBmc1!=lb831}LchAdYcOIZbxvf5fie)pg6 z9s+MLF)Z70Mp+qhejt(s)VS#sxgMPiifY+Nq%P4Pu@!^=O zpRg$WUlZF-4&NMm@Eab?k1*c}`tha{ja@mGjWH1={qM11c>pbioSu&JAw9bE+iycp zgZyy0xSwhtZui888jrd6a!<|l2>eG2(8~>PU2l*D|AaLrFB?gl7)|cw6kN}nH&+EL z{+_8?tRu@-n{%7g$X4*gQdCvw|ZDIBxekpQ%}>c|#l}d42Ch7G=swY*A6+ zOr;w&+9OW6(=_IDcqF*B9eb#;^`i7k?pP~wn_g(NpSb`=d4WmGw_8pBGI~~_jb4@& zUii$hvHbiROLSpghA$XZ2-SE7F>D+hl*A^CbeuUkt&Bpbg-@na9!98}4_!vN zt|gTZ#nP+f5$cPYDxLb#bshSFwVyWIQ}`u1xOiDOF!Ct_J8?zA(@3By->saU$Ty1A z2IDkN{ZNQ-QqF(3n!cxb6c~vvm!4)FhaMBl!M^!@dQGebp$zWNEBNCLxfyweWFqNV`Az!-`kJc@ZSd;tbfWIBhb{EqSx@-`P?0V9Vu=-hVANKA4}n$Yo>-EW&08i@U`13jGXTX zU6-Sie0QMeBjFD0z&kZ_Yim`@aO!F7N}`0sFtOgC0wsCwL8ShEA|fY8%b!_V@apgI z43IVd^G=Q73q@|p$k#w)WKDk)Jc^iO|7cxAq`+;mr+wKfZRXl4!PwR%q4GR#4$8TY zD=Dvpy%l}a&jxA$3iatL1?(ny-vAvU72B*}m&EcbdQ1{qX#5wlA)cM37HnOw3&Z8JmTsnn zC}W9pV~M%v$!>0OX@yD-qlWPy>GyU#_O>Jx2vfzoL zE$Jy83kV)wpAZ@Os0;RnY#(dNthym&$WoIr( z74+$WC+Y088Z+O|?QOJ0{zatu*M3t4b9+@4hC(T+JVsN!BURevpHa&2V~*QihE8~# zGlEDxYekB&wlprTE~(WUHI*dR+pRi`91{z+hvRecW0UWVu}RTV_0l~3m#PQ0g1QZm zyDvHCja#vm8yTS)kH$93?=uC!hNmTWw|BHgfJ5hqrfh@yfZep0lQNfb``}2-N<&}~ zTy!#St_W#BIV&YmZ180A)?@MX;-8qC3M&p{vtF)6hVtl#Cv3{mR^gkN#(2k3f&FxJ zQhs685XF>gSl53oPs@X+yj8SdyIUJET{Lg2j8S~zQlH9y@SKaj9;zHnXcCvgb;A!% z`1d?;kbQS^HCW*B3avTJ4@f1XR*~T&xhjjr)g&GxMm^v(MK*8cJrwQxA^|_o&7*2O z)vQL#RLz_mJ$AnfmzXd*@VYzD6c~DZ1?;29U`jE`PZRI1QhvR~-nZv{wPO)LOlL*; z)-LZ?a~+q9xrN2!1>(|@5-QY6u(fNk#^wS(^haX7`s63fpS399ki=)Q#NdqRA-peB zp(H`jhQ>nF3Z8;Vm&J>C;Lz%7Ir}hBhz5T1+UAi3jusp8_M zjU@Gu5M+&QdutwxXGA7(v+p4=hy9SA6`Q@6sKshFqQXC7n@@yVnY*HtrLXx40~asJ z>8G_ve^cJOuY3_JoerlD<=?&UIV)w5Sa6Eq^WBj_A#xh%5>y8^-%o?gOKEIcMvBg^ zJuEq`-q*p3EA%`X8uj7up>u6rZcPiKZ3Bdpj)|$KHzCU0b|t9JY8GRh%~J)l-~IdL zn=~N@L9nf%e%sn6Iao8=)k;Nv;k&HYZRa4P{%Mmq#?Z_PcJQrw{+)03ns*6VCyG7PyF@kkTvZK4}%XBoQyi!9V&t{X+_zjWVen^*DGXC8R& zRTlViYhr3H%1QTNdw(aO(;AN1Pn1RgflTEW;ytL+IRT%Fapn@<;P}Zf6($(i-3}O-RBNE zUWs{IjPT^nig{ZiTuA53>SbJ9jzHb&aU#bzGflD~lmEi;ITHTwM|DQqKT zzd^p3Fjq2$&F=R8k`0Au%ar%JT~Na;MkzzDX__C0Vk6`8^-uSOwx$;m-!)N3FLDbz zP`CJ@6BASDGGfmxcjpXTe2P?^-#DPlQVT_*2%RD^heI5R){)1z&%Pd<=QLCjq^qiB z6(Vv>J+y{8)79%b(sA3)BYhfp!FT9w_r-N+gy@T_amyRJFAmDm+1>hPelj`?Ty-Wb z#RJ4)(ZL4^jq1nR?EOj2AxntBUlb|&Yf@1DSV%4vCUELLz3OiyeMwNzJ+kvFtKc(I zDSd>Zu3qFXqtfqp%C{$b$22m}&j;{ssSh|BSq=NPlMpG5xp6fki%OaC8r*-bJ8ppy zU>Jc9u*3d@PdFWIevT;$km512<~HZNibah6@FA-_S1vBApo3(Vd+kod)1ciBg^0l9 zAxa<`QsB?u-h`#v!M(kb64n%jIK}L-se3Lt0)thwb+?<1*!oMP&4h%>v9U5TGIRu< zZEp9%4pz-J1l&vY4Atog7Bfw5Xn*G{)}Bs?YiU6Xg8G zdOfzjaRs*Wc2VRCwmBBNP>c4)$HZ3KWf2JZATifx*EC=TOHdV+>oa8aT+Lw7($hZ~ zz?PLnjFb!@_!NkblPn;t568jG6Cx!!vApnMFJLL1=LnAgz@Vk>)KR{AH{lK#jm@-*(|(~aHf1D5r@_P1R#eN-lr-kct$|t-HnD<`l<<3*&_qX35ld9LRtOS` zz{`UhfKMqSBNY%}@|1Xvq5I!2L=#%Cf|uYu>` zU>DYHAyJq)ND!$i5<2wwzSp>wP19ZDv3LJ~y*FKI|9Yr}FffuXlw!v93&n==)c97) z${pG1`PrJY6hpITi;}YX;{g1vwVtjn@uW!4Bw3WCD3t9=5S=(!uW=rqi2KV8(A*bkGp&o+k%+M3GxSDOf!RR z7LilGhP_FZ8TJ>Ypx6}kAQG#PD57P0HzT`dG@X#=L(8$vqAwD1wBPjXt6p~~K$RtwN4!*P8HQ3;fXZXQ=VmrTA~nEPn}<(iQn_Na4hc7*7cK{W)OvQm9YcIFgWQ^E)Qn!}O~xgBbC z$nc3!26nE|QBOAab_Em5{ezu%s~f%bBamvFlYDcF6|^>H_ML!|QSn)WdE3w5mF0}< zQ!QnmSy5Q?XgL-autDXx3Szh()u%ExsZJ#wB#^2AI7hnty9jn3Op(dFHkrH)P5>?} z36{iJhaySg2jxT`Ow}YgHnMUFA*QCoH4x1gm?@caWjB6_%n|1Z$7G~sWX&%65+oj> zHL=0qBfLb;dXN(Qb*Hy>3ae!bx$l&5e^g6$tWinXT=GpU9#s#19KN=awuzWSHlNK& z#J)p?6=C1#*@i$`EZc}uV9OtzDcX(zFvuKZvJk$1Br?9L8f|7Q+iasMGR;$gkbkn6 zg@MlnC=_qxlly1CeR=XJ#2?A?8CidSem>60cpAvT)L)nmbJnjn#!5PH%)2y;^%h#X zZCK=kM6>jsqo4PPsMR!v;KlSq_PdkHAL$AewJYsD0%Y!M@D4I_36&JaQW^rDSIrIy z(h?WW+06yMO1%=f6E9xO?YXQAcn1*F#Jea}90dAPn3@VbSD{oxPf2?!rH?HZl};$U z8p=e%()l(~5q(#VmWeJN>Z1;=S)RAmN`J@pusy8<3+r@!QVue|I&I3?jM6Hb24cmy zfzwN)mhx5?^lOr9NC^yPmjtwmzygM{zf`7&j5m=(Ulascknq(bVsmy!h5kGrPZT6R z47kyq5aW@dlo-R*xVTA*2HfEfeAQ*PSIo!FOwy7kU&{3zyZfBzpN}UB z%Qy2a+mAN0acp#+4l`nuQR6-dvgE>qi+`sYfER&To`dU7JrE)?&x|3{V1FX3QXJuWE4gU*0rS zzFMdt_?{jk4apSoBXcGpBoy`Y6It=Swqa97Aim%0xWkN(j}MO))EDdRYyU+s@A+Fz zv#kKWbgnE=&rUPX=CVb9=B-{FA0onCR^#kinnT3V2O--AIAVo#!GNj44{NFSdnD#M zbF?*c`&?!%)ytoGuJfXY@2JaTi6K?X)8=?PY}LzoT*}6n^{K?=&xNSDpiyFy7S|4# zFi#~008(CLq|Zy^#+{N8R-zdt^=FSBgtHKI>9Y?Hdy3@;qL(<0G)p9-b%?-444~C4 zz(puw*9^eb4A71m-kD}~V6hU`vTn~f*e)bd1I9tm4$d~3z_t?GcC5>0_Mo#2ika9) zGickmM7Hg$ttpG5IZO>7g^%VwO|jO45bAQzX+l9 z=c7M9OtTEm%w%{t@;wsKP9Mq)9u*NEtC@*Tj8?p;aveU2Wu92?Xe?a!L6>-fBnpv= zQ?^b&ETI=zfKZy@_eD+L$TE2ql9c{7dxA#Y!Xr-=2=CRV&UJBlu) zdO^?s!Org*dfCg<&bGRB+4yTK89nCsc+#u7@J3jo?oC}y-`$*X<9$tZge@mA(*u4| zXHQZ_YMeo7Oas*cmjKlno8-F>DCzk8>GCGU(^gyv+qo?Er^Hyb{7ki{X|BgYZ|$BH zDdgrq{X{&z@o0kp;r6+Q2)+N)#ef`d9^Kj}_sDPoJUtR+Ftlzk;q!(39SdR5>K4J) zH%z1+me;qwBCU6DXsV~b1Acn?{JcW=d4;ZX8qsH4sh@`0nJyXlkU9{aI*?2<*Ou&# z6X)j5TFyHHtnoeP;uIRnYkk6ojW1zjoE630`6FkS0})3cS9|>9Hw8GPUoiSr0Dbjj?o5pcb5n}(9iOzCAjA?HJ|^cy)al2e1vHg9vU z){PkqiG=}$Q3dyNACGnbFa_Jx*9ak;W3gQoB$nN|3s9vU^&K*eSY=3ZaqD z?7ZyGyA+rcldOk4d^;Hlr?_Bi&BJ%hsB6O~|LYpkys7^A_E&Sz9M!;Ry7NIIg9AWs z&LeP#i2&?=E_nw>9jm;pjQc z$}#Lr7C7u>FQ1>6w`k+WexhFjkltL~h&d=cdgdQ|Cu-f#>fM=Q@Cu#^gCcfVIxpvv zr-SKd)U$ad(dg4m{AYw8v-%0E@|bVZ-8EHe9CFc zJA9We^K9j@CaaGAvu{A>G)uneKSB?(8A|8PGDnr5jmt=Lo1+-*xGI1;g z<=c`9h+0N0B1eBCMGdiNuX%1J$!V?&uk!@6y2Z{mV`R>^r^AHUCXxFzl%Hh%17CwQ zNLxDv_SCAEA~r&9vMBM4m4TQ25c$ue>rGz+81EX;u)mCRKYGc^%Nv0^#&d>vR@@O2 zbzPH1MW}f6e_2Ig$5<%h~y>-=RyN%!OKRW3&ZRq?~Ww>bA zS34y}gkx8T$WD8adI+S z&+b)dezsK#MJDv_U;EXHeO2S%?o0hcbPikh=KK)t_15O-cH#uy^`RJ@+s{Dq8#uo+ z4ZmQhZ3~vj-Ep+aAs?%a`77dt$Q!_(w8@!^8yBmbd3V%Cj#bET3X|R(0g(m~NiGZE;8&Ub4m{4O?9$ z%S=q$Fexz8ckJ8vcl#Zk5-*GZz>Q}B6uM7~TZnHKuT;Ury20R~xYRvu^A(HH?XEO@ zlv)A-`bRcEan?t#WRkPYemZ+C7af7~5Pt4Fjr`@*B0XoNZtzE=p^v{WrxG7JT3E#Q zJtZRpF6Vn80xb1(jRqm-eW?|LVczht1uThg_q(KB97`MZieZ~zj}`HRQu1-gpI;vj zlS5v$yl(6~!0I}Hv|c05kx*R^nIh8l(~=SxI%NZnDttds))D|Yz*42dSSnCGIJ>VY zBr-`${k4Dn%R3Y1(J0Wnz6Wr+Nl|;zk}bQSL^Yuz+d9hWZPAow zz~Y9(SJTvhuks7{2lgYpZ=*Pxk9VBP8|@veB}{-R=X2t**E?};ce)NGozjuM2d2y( z7whivMI`=B?~xtmZgmIj9~FTdp^2n$UR+Ci)z|$J?>*fkcoH?x^1&zy59szL?93k+rD0*2K{VUP+@eF&PuUcD z4zeK(Wq4Z)w~5{CbZhg zg5n39Dt5so*JnqKWAns52H!+uR8=icJMO;bnpryb)olBS>*&z0scXt4BB_{~ef^pb z`tjk-dlj~7fy!D#Z^8+I&+dK+zaGNJpro{l7FjC*dKd;E5&7aO zT+adA{ao6nC7=4&`C;W$UCT^hFhbzqBJd{X+&ed0T3nic3FTd5e111G_cRugtJ zpTmgij`-21HK8*a!2TZ9s$k9XG=S1d$FF^P87O#C3+zD7SuwG(fTE7xuKznGK}nf z{mGj_?vgq$j7VNkVYy`Zh%Qylnq}8@Zd85UIx1XiaQF9aGV#3`NgzcA5E3ftohU&8 zNLBjJpUc8*Y?`@vGmA5eOl#N|z%+RyXcpZ6r49H9>rSixsS2I`bWTo4kP<t z#^vp%ev#nY>VAbK27~Q12n*oV&xZdQLrEy9ZplYl?MCN$f2epuPo@9oRvF6f+39>4 zh(S_kukow<4cmPnE`C(P(KOVI-uz=>FbEUL5!^o`w_nWOS&fbsAqnx#LGUYm1n;Bt z>_MT7!4ThcWY1Cj@-g-2(j*e}{8D23`3bo1c*{r)iH*kIVF@Y}JobJOuF;Zq*D86K zl2XwLoN@KWmts1oy%gdGvD8@Uu3tXrL@Np~T8e_=c>s78T+QwHYBdnlgR^R0+UJ*7 zi#Ot5j>=t^m7ksyf4N-c=I}t2(C2->JK@$R>`>DJ(KlcAF2}P2=>Iwo(#i*NI=Z?X z-o>(4#mfhI(`%jAi?jwr5XMm#U?fpZ~04gX9jHS$fthOMkLD`}>94T)dd;e(zCHTsS!& z%PJxdU=N8+mtk^$@k3es?ir@k8WY}qtG->cw-*%fSzZ7QmbS5BB(m>MZVjFc-qX_t zak`f0OAy2Z9?+0cxC_eWBBE^C<0K@~f|AIlsm324$qN*ngP|KxBet|#Yz!pkczTOt z-7-ocmRwd=54|s+**Usq4#ygpXuTLr=aN>|#+ef2XB9-A*gH#5`!#sAYmozlx!`?8 z{t8E(?aQ%wP5xpFqJ)2C0dhKhle2LbYkPQ0f;R^A0+jsT^MgdQHp*WmDslThp>z(~_5;hKZe= zdnjqQtWEM=LrpCOLBS&DpoHrk@jT)0Q*l5x(=1qkbs|uO9whiSFi;nV2^||PWmoEY z?k*}Q5U>o-Nc(yb9tZ8E=xj%0epyd)6_l}#lM=qLkkfr!D|+iSn_c{%7#^-|E0g91 z+z2zJsr((hVzK`eU{L54swZ}QeM6(Y~KQ27XfkJmQu>&(0Og+-2@XUTtweNN}k zU?b@V|0`^QC0XbORZ#?uZ4AJx$X-^_H)!Il-`krebyvdI1A(RL>iX!pt=P6;x}9U4 z!AQ#oLn{X-hdHFMuknXch*iS4843+scL5U;5tmmw5<3u-SxBWs)Rfq2F1G-(-F5Y_ zA-qVZseM~#{ZH-qw;g>xU_7!_d%EXstZ622&&2qBg}N42$NF>Tr$su^_&pD3(7s|( zxR9x>Jt%zQGSD!`TJ_GnngYl*UmXNKv^%}*wtLy_@Uq+L@})E0tVr`au~P2{tD}?*WQjUax};@7H2k8{RmmU(gVxkg4Cv z-GDDhS=RBI1*5NT_y1Yht;2Yfib{z!_R&}uBZ>D6M{R!yaR6p$@M%PRUP#NmDLI}C zBFI|YB`ufmZbc?AalISdA1J}cXY@S}0A=u+=EGkGAGTYR^MwRnL?^)CQq!;0sy~i0 zaY3*Ubjoo@= zM-I17&VZ_?z^LfR5Fon#7V};Aheq?GlD}`V}ABbm?rm-UpgkaHsO=d7*$hUAwDN3Cxfvi2zUP^ygd_sd%e6hSrVD! zh&nG6DqKfBtIDq7k&&!rcQ$=?6|=bL`y}x_!ME?}SDY8uFi2hoWxq41@etd)AiF^z z@rlH?8DmsPIF^I^N%+S<7HCAc$k8a5jAp8VaaY$NNL1(%Ysc6;agc{Ej@LzA9IlJ_ zZ}0mrpJ1X7*o|y`5L!2z*y!R`!19^c;{UMbZM5zsy6*L3WYMVHE^pEQWwfBoQW`NLYPgztuH<L^khyBa>qD3XsLtjN(`*ADfPF}o`-QNz_wazA`QN#&nhzG)4JkcMTvk$9+q z&<*dSH`I99lyRa%Ur(`7P3WY)ISDKPW%8@2@Wbf3ST3-((eMAYwkzK{t7S^=u+0;M zMUPRf%HWhxB(e9tdowm>o~hpg6zq5L%Bu$mj{&STzxUWegtXi$Q*6tgilk9xIhS&S z=l?Xiw~dXAB4aqI!4bo9oGv3>%#?R^IK5P`6!o}d8p;q(__xK4fm?OB3MmTwJP`^C zhI=b&RU}QQZM%Ly5yGHMdf(JS0(NWh6J!+1-RnJk-hu07tPHyy`A1LC>zs;7q!yKa ztfOe&abQ{>Ca8>Sm&y*gX+gs~zuY6HS;vun@uhL?4h^pKD=+$taNG@76v7QMT*45A z1_tZTxL+e)=-^(ZFLvn*dEVshy07=s__O}5r9vi;puQ@{3r#k+gB}{7W}0G(U#aFW zhrU~WUM`4cy?Mm5j@5-L9fihS2=8zbT*E-luoVp-5#o>CNuRQCc3vm%lnj0)4RiYO zDh{C&mPtLl4F~*^V*oFPXR>B~1%&!LoXT2r6K?l5O`c-{uMv3lRn~v=Y@$>B-~}q7 zE~@oA9j|A73fAqV))oTSe}K;7ibZCZZ!R<(pXfOloO>XapZE-)Tqxe!|0>CEWA(hc zD@Z~8>-GENH%O=sLB!ug?Ol^g{|npNPsGjKoDM$gjKE%5MpI#E~DOuduoY`1F{ zHt#}SnWk#P?`#LNp5-PfDDF(Bl8_uTh|PTXO1md^jlZ|or(YEky94t9T>o%ZRYvU3 z1$A57eiPF@ea(EL3*+M}AYIEALZ5Yjf7?MDc*FVCnl_zN755JDV?J01;=P}qx+5Gb zq$h=kP3ZMwRPx1f7ExJgX;)!klPqNcNUVjW_~PE`Ee~`m7;6x}?lJ z>)OU!CCf4sVwelzJ#cG~8r0^zAIE@B$=ge@SVqG!Cbl|>4=p^|)>qrr;$ zONl;Q8R7`=qV%&HbT5KfEHkGkf#~c?QMo^4Q?pEGBz@Q%g2eNcTeRlO)E@@IifGnp zX~;vIEdxoZru9DLj}Ysgn}pp2rSL&*IN$As-saT|NgRgDk^b&Gzr#<2lrvW<6yN+ zV#N}&pKDHRRGtN2- zMw?K`Dtq<^EPlVfq@atS;(BT(ZX6FW@_M~l*`Nr5zI+vEADHWxAz%a%Rn&s3t^0kWPA@cSHgi})o= z>vH|q+8kWbT7=Jt!thbZi)bilGQ0NH?}A8z!^cQXZNtbvV=rDF$Ni225?SgI5=&tQ z1!a0iudLV{9k;{Zn9N6|sJ8<>2L4yWrQ!SAS=73l&JQ1ek1#|3qmS4&l(R)B(AV;I zweK`cjqc=0XYb{FK6^F1w~n6S=$K6p)EKOE&Rr@HcmYOeIx!8$&y89WM-0l8acH_Y zC@(2U(294p;FTKRy;3qH1jC{?dFTPW`fg6Nu4yK%`|1xRaIXc^v*{Uo@?PT%e=|th zsY5}cJ+8MZ4AMI`2PY#dak*`Z=^laiY~ z$Q!m_VsDb+wY2i`iB+hPuI7tPrT6NGt7$D~`;tH@w6!20NJcyiWn`e}TDmez!S)nN zCN%vN?|F%q|6KZf)E(++gCVb;@nU)_lb$gwI`LQEEXM7b`KF2&OZshttdTq{y2P>g zHQirkpbeOT*IPcQ+*ZbCusQOmOjz#sfEcOhz*|sk|49LD61uzG#l_{}f!NB}YSw*ZlLaS;z0L zmz-XF)JF_?w$_Hc?ER6y`VCp0e*sZjU{0&-Er%jL$CT}sr@Amp%Te)$KBGlIcDig^%?LxyG`c=l ze?-J@RmvYNh;d*e(jn4v0^nj|c2YYB2;Fc$A;nDtoFQ{ru(>`zV&c&-Fq89^edCeI zJ+3V%Aqk@zQbGa+xAC)!4WI#1;RsH@shYUBn19#k+B-Ih=Kksc zKsFi$$X@>KqmZ0UN$3Dtrnd3<>lni%l~WF0?iCZ0O=7#LdYci5#=w=u^Vh)U$ZiZ56%2 z@$Cl)dS_sX|HW5)w>LU&1wSY^0@B#suYhtuE=AAy$g;3an1X^v#`alUNN_HIFnoN| z9{a4fo2kS&#ZuOT3S1f)E)KKGw*}`TFQa8Xo<|>``8w$rKL>n4bqO!=Ahil;IW*m7 zYg4CX7>Z#arl>-AYwUx)r_if2-UY>Sv|Gk#MtVz8oc@cVyuFa3=~0YL($Wlp|9l|> zQfz}{L78ClduRa!CFygJVo!f@7)^a_PfnvYec1|vjVMt>=z4tEYcA-3;FYnAh`Vm; zwQqQIioh}E)rSWn)014d2!Nu<%3gJ6{a(ORJJmMT;4@KME1i?FZ z=k+-3ex;XCFq$(xD499LjbBKMUz1HQw;m(R7MJ#^p4Yf)h_I|Y1Aa?DClRplmh0Dk)#O@e7(inbNza* zTD&#|pdy)a)Zj<2T+UcoAc}O|9Mf7{KRAaf?@A$gKa`czRWT;Y*@q(%#?Q_)hp@{2 zKDHdp+s9Ta{Fi70R}7)qO*jGZNGsyXSplB+kYED2X{R z=vzU7E|tA6@Ynw<3K0V2vSq#x-bkTJhp2Z8+V(`IJ?UI&MM81-Ob6~xe=tA5ui@wK z&@#ad9vE-Eu41vemnf2b7w!)Ot$IS^Hv${`sw?>ZRbtxyp0T^?>TR*k6J3*~Twp}P{;kRe*geQc8 z@MIZh|3llO;n8!KYXNo~T3xDh1AWQZXL#+6{$kP15^pT>@L$PsmicoElBZQQ_J&9i z?wzCVorb+T!r+19wXfo}ucdXT3Efb4mdo#*%1cDZ``nn?JdP8^MpZOS5dRQ%d%v?V zS&qddN0Z7opS$NeBJq{hf34awCE|#THhOnt$o*oU1 zT*5>A`l0gQ^;T5p(A{CZRbR3z=3|OBeTo8x{^eJ)oiG-m3Y_1hO8SY@HHwKjzFMuZ zjMp3*=nF6gwXo8!j1k&foI%ULr>9wY>)mxB1Mkjb`RuAwe$?leidxt$>Mli~?h>AU zM9g*d=^BC>{)41yYdHTB4cNplo?QgLV%LSBLAB&ykeoMY;~hXe57j7a-){SjgSMP? zWTuDY>lv~@6Tjwuv9y1-w0{oB_VQo8KT|BUjy7R8vayCFFMcQ*-95BC3In;7BOpB8{f5t=U9J?)J^f;KX79ADk(LRjYb$9#6AYIG&qoaC4$LU92 zavg_d6+MSgK#(A;5LHQ;6R)olODCQ5xE;GV5W+j{@|Bn10yd;hVhs_kdj5RIrlC+gsd_ujt(i(DkS8 zIkxi-&s+a-{N_xNv%S4}m;SN7qwx^f5kjj044L8xSM*!jQvd>r5xW4C>+Swm$p%_b1;LXKW20w`?Y&mJX*qtZzH0GkR4a$c>*mi_<#ri791ge+vJu$w#yj<98olxR@ zG%gps=_2F6HRymkLozt%`jWf#P|M``PVGwd><%o7`%46;ah=(Cp{l#U`TTBB_;`^z zcj=2cWLDpb_)t;|JI-c$zR5E@o-DP+jZmjOMcAzipujr6Jtw420Sj?I&wOh-;|O5 zx@`M3zq`WyyNQZm;e8|M`#NB!g}~d}kr08sIbV28)Pgb4dG{Br3E8mE&}U^|U| zWQ5!IQ-$gO=1A52qZjpT9v^%rjgkTa6g zOZj0>)|NlI$aVJ6%QYHuKgK@4a>G9{vneKjMc%YTzY_*?dKElqV|HY7SE$C!xP-LU zbLUFB{ntTW;18VUIH)OVpbtS)(cHUZjH>-5&(qV_N)H21oGE!_>ZIhF=VPBavhCe=c|5%hm;8hJ@%v`e z5F1v#fbGx4Rjkw;{!T8!50RZjPicbM8i}7?J+`rs%`ccF7P9D$;OV8o!dTUwi$8!R z0Bbf?Sve{8+l%PL>)>jf>x7?E*ycBj0f!=Uf%eSTzrGG!1Rv69Q(5KHle8X=DYJ5L zbcRbDemLtSnmdJ2yGGCtjx|XajW5qNdgdJKKk-gMBJZ4C?hGGYScsixo2bq7eXj$`kc6o} z_i^%K5&L|eGy#=~vp3}f8%v{}5;C);`iq6HXIWVpn74L$MWpx8HSC(j7V4gnoHsRA zx9tju++V9^W-*skqthS6$Nu|*0zpBsU~Wk$^y38D!w2Z3r$??LjCn6SJoNt-ghCLa z)KTfP7VBe<-*1gYo>7{z*b0n8BER6}8;i;vRr8hiAN}M)`#znj`b#yI<5XEEh_=x> zuelW-Js9%xl5X>7tTXW!IV=@g%KdUDY2g*lFZ0mXg{{J35;&>cA-|F&d&EmQeW9p4 zmUSUaeJu*q(ik<}s3;}0XK>nQbI72>uw85)@M z_;VUd*a{4Ig~>UJ9|Vr?XTy{5^a74Z=oROBv1@dc=OReyJ2d#MpWyYR21HVO3?Te> zdOqmT#Z7Cryqgmeml21_`b*n)Q`nx@ZC}7Yz*4Ulad?AQ6dZeDRCbz<$+vYg>Zt;J zFi6*D+hOb*=6CUeMdNHsa+T9jAjsrQ$HGLIu!8h8=GlVZ{m973$Irt%??Hv9CnuL* zQ@g~&$r$>f*4}EiZ@czFD6FjFHK%??J6wKt{qka-U_M!i-2G(m*DKi)l1Oxa3OxUb zX`KjcnT;P4NVuoBW_NoeGFaG+_vL*@{kID%_ny`sq)7iHsji zN*1oF@n6K3W5A89R|8Cy3cG_}^WT8W|BPjg1kq|oqlu6*DcJR;U`cB|JT}jA?RC+; zT<*W07W!cQh(yq7CIkj!S;zYj?N}}N!eJ;&By8MvXvu0z#21@mxws9jwBoXrd9b-~ z4#g(l8UA5y@3c03e}g|Yb`T@}F4w98h^{c_uC~AN_*~kJO4->yetIe+m}BR5Pw)G; zUcqXl0fURjHYq9-&G`^UAO{sEeydNyfo9Rr^vKTg3+m`gt$kA|oAFu~*>3dVqf_uK zi_p>JbZ0ajU=Ddxr+_5-bmeu%cP>)PhMGgxh3_{;9f^rIakH6rWe>s@#KQ1mKtJ1$ zkYD^2q=NL%@zv*AD6_BKj{8(Nz+_b9$0!u8jjM0{b~ajlZmzEy&NoY|y|<=h1^u?l z>qo}N!$5_h1p7HHIA-BOOiYX%IpGaOk~A!JuXZ^#=Wawx#;_MQEuc~ne&++GDAi{=8$I`(PX2UU?fg&AKqHs2s}f^@_ITPeHiGTbKb+NgdUS+{3N#z~i9u#-A<5Y*n=4uNKJunZ^dmz+<+Sx&fnmKW?}$=AZ4sgy?1b z+|Q@5`v*CgrD57dYRgwAi{#%4f$8&$;NpC%($dcEPV=)}j58mG+1}nera@=c{DOj! z*TnO0Q7KVFLwd>l{`^!-U{0({OeEf(Yb4p4DmV7J^MZqbR+OnvCrK_@x9P(NWDsf^ z40yd^uobq)tAHblAzm1rm+a0MB4qUmEUnk>4_Dn8k05>T+kY;E?gm-9HV5s5tOCiW?| zTR{1(%U$a~bV`p2i{L07Db6iL5U@<|Y!O1(Q97Z1KywO6j`MEZ`gSS0mDh3h6_Tff z`VTNSMF@?2=pM*c0UHL?HtDV%%-ThJy{Oq8$I3#3Z}N!9-)=Be>6IGm^bPEubh@O! zn0M(s(bo^{ zM$2!tCEH7H;wf*Q{?RqziI9TaVb>H`f6Cnc)k@GvjL275M1-yHF-e0wbxKmpj#7l0R<4 za{$vMr=(zU;$egt#Epn(OVVHOg==bSGkQ}+U4mZPm#a#~kAPa4EpOQ|9k z=7E{9rHI!aGPvBHV0mAU1{h=70bmQ=`~S0rfFAd3(d%q%l()DyCl_0~`|J&sZP1s) zUz!h_*W^7$c# z@j|w7t9lv|1@?=-MTr9Q*XvdJ;U08KXBWxi%xtn|2b7?@m%rCerwQtpewWr2b+e{n zBwAR@;)F$ey+9)*BPSouc4RW3I16a;7_ELBnTnkFL#`7q!Hj`+SHJC?l$DNf+xKFp zo_j+A1jXI*cyb7XXe#4;UxP+(z!RgCA8hh##_u04QK&UVY19>>Q$z1^6wU>0$3>97 zYP%2#+Djk{aI*CWppeHQf_gvT>TqK`LcdR(e&sbyB@mE+PlN&GI=;y}jS81Q4U>o% zOC;9O=`!UIE_8M)sM0f7xxoyIrJo;vp}wuub|XK`TL6WssjI_Zk(-8mcOu&zl*`kk zVQ+EC*?#Huz&{8Mi;04C^m8@i>YFy!v-*;{vjjH|Y|Dn%fQebrl5*F?jTXWAHs zqJhf8BPbD?WII$L3`j%ax{huQ-)-cIBodzgH|F#2o>57N(f{y_?#1t8Bbh@V{E>KQ z$MECyi12&w`GfVGFK7E>>GI%1?aP+U5t?iem}+5Zvt8*EzppRXeI7vzvlG33h#zRFZWNtp4`I{$K5bx~)p?(q;I0meLhgV~?eKrw!^H50_8&Zp}+|McNP_tywEiop<=wB|`q?jI<|Ff()WrEsQw z!a)pfrEf{$p=DBBLg=*{OzB;S#L|5=4|Csc5@j9~XzjSCv`d!W>J^}5vk z?DbJ3HOsh^R#|lP^4j{(xBc-HhA2i@5JfHn1vm~WzWF;|Vym)`ABo#74*j}B*B;}t zAw2wd5s@XeifC5b%{-ycXvv5;K1SkHU3ZK|cSS0ulJ6d=a*9gtr0G|kTsu}V;#D*J zkpfjD0glxP>z9r;zbQy8A5D8|Ihg31W->`91e_GaHp%1fZJ4+rfa7FeJy4^0P9L+C zuF>XS8$wB5PRbw!3t1%CF|lb=m{lw%wK%`|uD=JfoHkptS)E3Jn*u4=!h)%0li$Iw z!6>QLz2~ec8HL0Hqf#p$9)-JY&s6(G@OYG&x5tNcD04M3-8+c@aho2g?{~3u_|sIP z&KY_Wl~ja;gy4X)W^i+=`sCv#dV724UJ6|8F=u>B5RCvC#-Kw+f<6|-wZQ!qS}UW~p=eeNu> zSVVl3z{{K=@_ve|-#LLYosElDBETT|U12S~Ga4_kMx*DN+WxZ#@d=lSD+I_@HKTE4 z*f=c}eqU2;Bs;wRPD?)=+7BcFgQ; zz=4)BQFlAx`xU+jC2ISDZjj{drSkdz@lrv9F8H8YTSe=Nikd3g2W1^;tp$9)5Cocp zeevJxBy;kVzw?N?S6CY|Oe6#Re0#(-tqyA91_lH`!58=xZ_DQ&izuffu7CBi&oQ<(ng( zb{A9RcZF00L-GwmG|K*r?L$ew4Z6Ks-_PwAgoy@~2?C=Rl(VHUH&}gd;=6>9M+~o% zUqpj>1PttjQ!GUBY+wRNDAJHutQk`nFe?;myJCEq%`6SY5e$}+o757huwHU7=4(lB z;+u;ENqJ=*y$Kw0xzXwAa6l`t!51&}95wp7<=ttM{ld|PDrols($l%x7kf9cMA0*E zD@Z@aNrY$7v$g3NxR|n`Lt*{B3O)F#4zbtOsI7H0WyLyjun zLHMq;pdhcjWE6>67Ci?y=I|NRxGppl#}Y0ac$`6TewIb|@T&X%XoJiC+L+Z4hxSD; zx|f}aQ@x7e{cHCb7lasfuSfAeIPW*js4LF0koW%sP@q`lkBx2q9P>4CB9C~_jI~(> z#JN)bvArrp*n07{ez(BYIx)$h^6{70-xV4 zWZI&90Tq;Jw(~q&cy}-Y_8LH^xajEUB-)DnddyJj`y5U~Ry_ltJh2Z|whI>66`4%AC&<`T{S2rC*0Y?eLmRrn&`_tHg z^XnTs-MV6x-Bw*jUvq^ZgnM6ivbv)UIBMWB^FD`mI3M`Phbl?m9^E8y=UmWBgnlBn z{@3;K;ln-T{c@vP2gTzRM)}wf7c?X-`?cPf1^94=NZ3|oTacpO)SjczoLgsN;zWNr zWiB6-I6#4iImI^?U7MIk5kC7Ru$h&+_1UheX3+WZtZVl0C&ivTfzIozi)uh~G$q8& zF-evW@~11Ce>cfK!hMuxVq~P2tgSu^)N6eiIase@&h(asp($?Zch=_~R@4;20o%gc zvG%;b1CS{@NZ(z=R6h(&j$YqFSHhlJJSp?D7DC6@1n_Ue;?aZDLhTN30`~#T znb4cenXw3&T?_BrcoEo#5od{EgO@@!(YfW0RkeSaOcGYLlu3y*G_-DhVsDm~VPFx` zel~u(Un|=HXYW&~n0t!{c_YUS+C&e(gZBv#L8=mkZq4jNUVSm^&Wp5bZ5Ns`vIP!c)grcj7fk zY|G7L++50eI6jGGXM0&_IDQQ(s=2v2p_Og8IzK!MKAh9Rw#vxLg5hwtAbtKGE%v(s zRSw=^6xGK!{#-J}^2<)$tcEF_Q8ofo+G&(dMg{`)k_<2IxY2F-#Y{NTx5st9X{N(j z;v7m6)6>)NU+Jz{n0K*0;@di2_R343^bKA9>F2ie^3tg>ZuZ%^G>@Z~j19viSc&AQ zAgs5G=f&k9##NM@x^*~m)kXD`m2q5Jc=vbX5p_{dJ(wC1@3);x zfB1jlBiiO-uwP2S1_IeiNJNw|dz?iC(<>VwxK61ZQ#z zi$Dj&(ps0)p|sz^^pqjKy1p4x%*Ql}rUlLc6)Kbx3nv%De z63F$y_BNOJP2WGk%bfn)dq=v5;=1EUY|(D3wkF&PM@_ge zqzo<}nZ{!$Y4Pl-9nlF7I)v2f6_5K$uNDQG)*EoN1T4I1{eAw<@zs5YAN#f8V{1UH z)@F-OIA>-}_(Z35_G@fxOg22XENZv)B&*k}!QGNoOfbc5ywBSO!|crlN}2TF2=2J8o;70jt=Y1 z<26NMQX2MX=u|a7pszB&8ri5xL>(aOT?c(Kqa;O3NB(O)?K_&#pyh~270E*F&M0D>{9lM$Tf#%E}%-6 z7`E?*_wT%(GD1o3i8D>d%p|9oA$!+V8T{u7u8zysi|*9UrT2ybRLGLQ(|jp!&KuPg zGqcL3Kch2^LN-vY0URghs;A+aRjKMIR86+TbBNQmr1 zzm&RxuIqcT)QuFHZ(|LCO^wo9EOA2+8qHj=3aULZB+q~Y?b2UVFu7HXtI&DEIxxZn)J9eTT{m%eeWa+Wgas;|~2>yk! zg9MYU>+PxwiO?k(86VegUx0ZRC4=S*>A>C4L98yj04@Os80V?3rPM$-pl3LS2!4@_2$9d zx;#x8BaQP>YMv)c-21z6H;U{cnzsBO#ls^2_ak<8NaDX*G~)+e@N5{`!w6VoVIzb{Gl`b3TV0!>0o z5a!0VX?4-JdW8t_9f4m%_)1TG@#CVWCjUJlC=Cn!de6(}Bx0aq6g*#?$g26|gK`6q zZ?L96RDg9j3Dp_@YynZ~XmaK+1VB>+Q+igeiN6C&@ju#@w~qe%AeLT$NwEJM#CVMm zu8F`kvBj@9m%}#^pR9E}cCIgWdma&pzieu1diOm1bNbb6+ZFXf;K>sTT#SJANAw+Q z5+@=6hTx4jz*7ydZJExxxr6R~dadDe7h$x;n0Qa>`tE(jbce?X!3M}=m}ex;zNtr! z+1>2Z--Jd+VjCV8a38eo$GAqoC2lSca<|`)Q3C>DG&*y|i3wynF}Kr^py*g)+$C~a zg9myOla;d0ob#IrPIYo@@%t&3&J@N%m{14rkkM!Xao1azaC|(z{@Z~R{=wr_N{T?k zHmX?lhZ3SBlFs$r9b+vcQ3_lL1!%6h176xmS4j}0yx+n)3TpqRMu|~pwCBB9EuIK5 zIn%C#IPv0QcM1h99W`08q}#IaZLr$HzO2FXQ1;(Q!wZ$&w`Y)5Oj<%D&pRbw7d70qMlXCP!-5TUcp+`T0((p^y~aexm-%)2 z_eF6o%p9VqDMGq)TSeTf=V&;{EV}8&DFbwufrlp8gD3k$+%Xd*;t?gJQP20l3iI{U z<1*5z8neOv8~UvCL;97u#-#N$RLayc(%6>pH~UcyHw3%k%?%GqYGs&!po(FZMnOv{Hi{!#A&Li(_z^(-scs z0!v*x@w_6sxdiLEzfq zV^y0XTk`1^BGjPu`PFUS5{#PsivUjpR^KABjE@k56Z(%*dE0xD)*_LFpUwu;AchZy zKa3AY3?FpRHuLqR$UdJa+5@!*o@SdxWJsaPLUKpv^7^EWJLFNH-JjOoKy?#BTvy4f z4fXx+!$D*K;C4vf97sl~M0(vz!Bak((OiWcscQ&z1Oq7`(qvcD%^5(;YZH)*FltcSnkq7k3 z{I;5X|73~r;XpA^s#IPty=-^m2y$yA3f}ul8%Y%&$|Sq0Q^R*lJXTkSRLUqiM8-uY zyCdnJn0NJ5YX2o0k2Lj%jch^0DOC#Q1op=v?uSW=)f?AqzO1HQ%QSRK#%XNE^3xLn zO81l90uYp|)dM@@8WRIUs^9}#vzWDR@@G|5RrB42R$wu$?CT{ua@-BcLx0 z3m62=_>NwpoG4!m4}G#p7SqsJXM=bs&cz6u$PK;8#S49;6WD}2#HJ?W;7?H9Di-kJ z73#S&#g9H{;*^?34a%}OaX}%3Xkc2@!)u65EAoIZs+%9`o}Z2TufZFb+ZIv4uh`lB zjppR5P-D?n=A?G1(}y!ICC14+pzN$aun1PxDLLIiq@aj1Ww%}5uyoJu}>yh5W;~7haP6p}dYT*|Vc_Vq2BuVt091MnfYOywy8TGiJ4h=i#d_3E9;=Z-QJ-7Yr z>y7NkXZB5yN8hO}oh7mff=`|Whu_Z*Abxt*r@vQQ8R$&sqe5!M#G3R;<$Bvzl7zWt zyc%fG_`0dbe$(V%q9w2T+Z4~us-ac7`qRsg>gO7rvH`J}=|VH59c3_>MKKA)%$fX# zL1`PMq@igSD-ydN9X(Db>2KV;KQ(-f9yU44^VH~v0BU9r-tf)vf?tTdW}x$>>TW*C zm{@Dr-HizJyVSWlnwpUzUOH0#B&3A-Sga8i$Y-S?ccpm_@$X4Nkco{Tt*L`H2Z1MC zNlt>zVxPaUd}msdQ17yG2^BSY;nTA9>Muh_*!R0wx-Q+FzDhSKr@1dijoSO4cti>)$PH@h>buOeSpWgH37JrXu(y1gr3Oh(oJ=I1mhI`j{Ae1dU^Nh1o;&F>IDEnGdd_h{3i?8sRAAWcJ z>3UwQ+r)K7eU>gE7ICRcU)#I*4#n%K*0K1bYrQhs&}i#L`H9545cFsRWDMx>=G><- z8`l2*?!wja>fp7L^(&YgF0~NBlwh4v&yDM%&x33MlrTB9p7hS5x6iXS*xsDF-ryhl zx+87V))aMpOI6K{y@19U;X)z4NRfU3o&v zqj3D?+G$fbky_B@zC0Ql+B*MWrr0wcwW-7WeaYUj-fu%^ z**;9nw#*orAcgxmn$O!CvlbwhHFLOMf5%qU*RcxVl|b_BLus)2jzjvQCeO-w0w8i!Hh3i~faNA>2dU|>QsfxOW z`6o%(tN4DV=$lGsih7^M83g10vhfT&-zZYX<6Z^iD||Fho}j9+m~1&iNl8oYyOnGb zSBJnqry@Y_(q9nUgHe>@J*{c%XT+KKZT)2Jb=9z8;FIfsl`gC*zL3`F55GAEYz;L} ztdIGQJoD_w3kw2t{|{wf9aYu)?n!q_9=b!irMsm;x(_WSAsy0iXru+CL8OuHI)HQ| z5(3iQJ)7_E-kE#n&Yd;$kIS`Oi!FQY=Xsy!Q}6HjnMb38gcdKO5Zbab;8At5pOKXi z;mO{iI{{oDla!UVYa&Si=KVbKl~Z?xg;%_VEN!0T$wV@390$tenXi550SEf_F3{W^ z4uokFv4^r_GVn zy3Rs_zWHu+{`03oZ?rzGy1IIh;(2FS2yF-_Z`J+L;lAG8kT7)kt*p`?OTUL(?45;> zqF)tcUxvBkq`r1>kfyFRs+e|l#PPsMXZ7?JolNipovGTpcZBiy z&DNtNO-)UCvN435JUsBqA)|XdI2ONKJWhb%!1pq6AbMq;qiDN~j3z>V^lc}(bw4nE z_Wo_xZvm8mr*0Sb*QyaFN5R@c31{8im2Qa&*hgpxyoha|E|Eaa&=l<4?8AyRdz;Z? z@@cm-+}y<2Wg`%)sGr9C99iX@HFQ`vB^qk`E&)5aM+!R1<}F@jY!H#l7|U6R(Z(Si z0?F(WL1LAak&z&%zztxSQBzYJ%nf`(H8eETNY@C0%mh<>jemG}c;%A9@1+nFsCQui zTbu;<+8&;~A$Ht-u3pRob0(Gr2^96E+iH=OOTM?O>ah%u{(r`oHUYv;{ zmgm=MTq|{dgr-7TXK(7HW<4#o!`BLyB#gVSiOEW_SkMB#qAFQG*6z1F=xD84zzQLmitJBS2`*Q@ZTUFkvd$Ygn0p@(hevjmZv`e1IrCAIaC^~Nc1jAjv%5o87 z6hVHD5m=SCf54DXBhtC}x`QnkLQqwcf{Ox9$xo^mn#Cl3v0q!<2IL%lq})!hqm>96Lm`<)1(0Ta3Ez zBURGYJ?$yD&k0b(?(yzsuKQD9ofYwF(Cia`L!Iv43p3}=+wR3bsFb1oKNMe3Fl5}l zd^r-bS`!I*zRz*c?o>2{WHpe8!Cvy&6AsXDk5L2%(+*Q6a?!G7^!im)LqoCRmZsrr zZoeCHqdK?opbla`M#-@)ZGCors+k_e*Ti5Cxw-zIOLpYE8PBw`G|}nX*<7HyiQZB=%(|Mb!*S zY{u{QQ>%=FrGmdrPByvokl4@`z_5@uc_DYti=$BFtZeNY6*Z(_V^xYN^c1}(&9lR% zDiv&d)(_SXF_E{n7IKmarxg^$Jt)F>XVADCiiDZ<=TEq;1D-sn~EQXY#Z?Nrz1(pTSz3$zjTm!!#Rh|8ew1+Y3`>GdscQw9ON5rB{Ygq13a=1L>{8* zsLmQK8c@J9HrwjPnnC!b{Ak+1rR8NktkF{osoj7VuiV~98`0FA7Ro7;vs(UgPpVr`hby*AtW`nt#mT6hjn zdKt5EL$Qat%s{QdeD$HzYG*u)#^f7vZ@j1sL6>u^PbGmk5AdI&r<^}q$&^u&y%+Z< zuZ@EbMpFB_vejuu4bfw_SM2j8l35W^Ut z9%rvJTgp(^5^kzdz!;4fLCVAM%a@L0<^x#fBQD^v&{|fV`dH!wx~1-9Gz;7XZP*;( z67xR?i**Lm-}XqfbcGDQl7F+bvx~AG&2+^vAQCCWlK+ed#-AIbX{d42<+C8mN`|rZ z_VKZQtNY!t9f($N1pMNB1$Fs<#?f>}i?T^uB!oP2wPSg2deAvecrW)RN%*?s->dG4 z&m%n7_$&pmS1A9y4y#%4mjyOMZy}!={=Mzb9aIIyb&^?FdmcsEpDk=4HJ>1R4($YP zln#>0|ez@P+=Bc@(U;6>sOlWv06%!NjU&7%XNG4hYnnTy1fM@;3dRjim7)(zvstzpS@4AtUG0Up0^380T1-XN`?_#Lb7R1huzY79CUtGSgT# z2>ROQ7Y5b5?xN{=JRPJ==dr=6G-~eA;%#khJx>|NAoklUE2#z#y}AJMteFVhWrHD7 zotgC(3G~V;qtP(jwa`Qisf)AMNG%H4`=8rKFS$1%v@ZF@NulOd@)N* z5+bZhw8}M5O_kc*k2@2=(r>qz5x7(3+oSDBb5kIZJGR;FxM2=8*K6x|P%ZU)WQ5*< zIn^r3q5v0{Gf%RkdymkH#k%3A^V(qf#N9jSbz5`9=4L*8psq9M&C1`3jz*W|!(a`$zB&6PB;twH-%jQL zbbv4s7Q-7^%7H#AbjZ<{2NG+59{v8YT#$uARFK6-=S<%` zq_u-Po4iCNi+`cr_aie((x@>8O$yvo z+3_2$1P%YUHG+}G^C@x$zd%fLL=KFe1KLCh8ag3^s6$P!K(ShB1ukrR6wB@K>qk1> z*JzCt>mA~)y6TtDwr?2adYRW5q(ntev~8(6O%N0>7nOoEFr zKkvI%oj{w#j?R6<7@q>SIg9!0x*|Aqf3| z;Lgp>(eG_;Z-=yR_Kig@FB_$2WSrikzDt80)I{Ik1|Wep%D)Z=&aC|WA?1$`4_#wK zmqhss&D0O7x|9*JnKqY;$^@~b0)G>?^>OF+c6Rh=mdbs6|Mngfv0q(d8mj4|1DJ@; zSoI+am^V9T7M56HY`C`@dXG{KyW+or>F(2lXOv9_+#hX{tcON`R#;R*&BjK6jQteS zd37ke(cGD8KWdUBOr93oN49mlc(Y@0kj{na>3Q`^zC7C=+?XVk{M-FlxGZN@_f$MSr214GZ?NeMATu40Kv$}u42Ep|Ql80tL1wgrfx#f@FQW`5m}(>6`I=fl z0NvD&8-rp6mh8Q@8rNt(68A!UuV-%w;b@Y7lkXkW$*c*Z5BprT^GO zcHfyKil-c~xczzU{W%Jqzb6DX$v$lM`SzErUyk{GBP|9XQM42Vf zI47L@B5@yJ7t3|NP5f{)3~;K8aAw^)n<>*u1aguHzgHUyY-QaJz;SbzZUbtg@bBLp znWfP*2z6kgfT($GR@ZdP!TV~F(G1iztr1TufW@jw$HGdp#4|3^yMJ}Ch(|#|A=^1p zctotk#->wNUY7PbxmQa)w-Yz^T%f@G_z#vYC7=SJg00CPM@GJ{T9*5h6~p)OmWhP_ zv~exR3(th#8XD+@cNJH;vs^~H)ZiF0^8iQpmn9E69?@V5znNtq)Y7hgi2)%g1lZ+mzj?Sd{YVgsd6J}wtUy!SXV`p44uP`Jx0d02#zbt~mJ4nEsvx4yy@w)xmJ^DW;uY*3>#3*Xqi%4~n< z6Z@Bz0{>t93S%4+NpE4pjE38#$grNCm4EEMqiC|%@vEBHy5J7|Uh!ZHk-f$x>r2^? z3`YL+>C=VSI|NgUe-MM1Jn=c)7~4@3Yl{S$d(qMSA3}nHr(6pSFA|`m->nb*Oh{z4 zrQ-*_?@H8i#gg)C>iD0Z?l}T$db+z|pPrulSg%BV1tIOBU4I8miZx@EI36f$)blwR z%})804(?2H>{ws9CU#M!%k$9 z5|e?Zk1NvW440qb($l+U`tYrb894d)Lb!c`YOBv#McD{;ckQ4*!KVEg{F<6tHMjHR zDA_F<1qqE>=Ps9u+H#xQ`6K<`Z(Offd!w9!a-dE{vUII>t9o~SCIEtKApfuF#qni& zp$W7^oA6g$yvDdStnma6JAX7@5*Re(eKS`7Z=X>;7%a$B935(zOt)RzvaIudeB5CUneH0>kG?daY2=e$I(KUzR% zC@wa0)~k(-7O%)e^zMN4CO%OQ<7cuq@P^Rnn@i+|6eyQ@)S<+Wi23FQ!f?AjAz{hX z1_T)K5VZ!F#9)_H_3?0EGtWBRe>7c7bN-CImFvIdh(RKX=aId9OPRZTT7++Yu@SLc6IE z@xqk24Skt`?c5*;N&V>fc<+w}^pp7?v-ES_LP}~XeUyf}f5vk=Bs)JctbfNAV}@f5 zyR36xryMnjuy$-ct06%Ake*=}sq))w9y_-QqJ!5;S|Pp{3G`w6G&p8vW@0hFH>zKR z5L5FrM5(km04BGK)VVD<;1O`RI(MvNpU+j9j!&yp88*h17|&@VENDbVLMi$%NqA9! z?+s}`SynVflNUBhN=9yO@N8>Dxv-t^Ze}KK_BViN17`aHO3re^RFnG%%7C>5+N=V5 z@56@qYTHQ~EOkXT1a2jr;WvB6u^nL}8pF1+-08iuj5uOX-6t1Uvu`AsDakgsM}WyL zu9aE836l|g{UzVGhS|025M4sup=%8F-R+_+m70X|G;iBnC3E)jG7cyg0`Ws+%{DT# z&_ceoPG#~tLm0W7Bqv*LjtYUSrv`f+;C^aBe)lIZc|}rd)rWwgUYknsJsezpL0OK^ zrX(yFzf10Gte%g(BUQnP8+9%1zM98da}gCcHxCasTwFyAZT!|sbg*`O2OXig=082< zy>4oUNuo`E`zFRRx2v4z>Yq+nzOm|0W6|WmLt@ZGShVM9E|=A>ksTBA?N&Y z;5g?sTGFHVEj5lC2*n<8K`6CN*LD?OwX!l2qBiMTTgc_?Tl_>HI`Q+$eKjXX zXmSCqk+E`z%U}+=NE78qcmF{J>v!exq}D6P3ezp|Ln%zXcRWc4p2 zH_;R%>UaOXvkz{ZLQDQ#e=G!GXw`F@&Y664fwY0s+iw{Ir{%v-c?_*WS1%SNH=Xmzd8+vB?pQfTg)D^FI`-1D1BHi!Hm1zodI1f{dgyL)ltN6J|N{{ zD<3{w9^i_g6}@VDZ(t#orbanHl#3csIuZ+ajVHfQOOZe*nQnni4DlI$}OZ`Gxz zZ#p53%H1&($PN*gP+-HvTaIpv?AJn~DV0R`d*e@#ZS-5Yf`^Ts!huLdV!7Qgz19}p zFNEY|zvnL3_mI3z*qn>i+rB4yRc+6QOw2V(Vt~ZoV)BndaI}sD44nRJJEZHHz*+Pd zPHwLgGbp&01|~t4os82A#(F$wv~$Ls7zthlpq=330X5tP_NCsvn%He8cYrKbQzFZ&4b>ECZBymRpa=c-c9YCfR-Fn9JS~7Pn%YVDnJ|gyGg}EOYYq) z7-WQ{jF;zaiy|ao7fGI$k7G^nskM8Uh_W!XE7awJ$t&n#=8c}=uRM(c>ywK!xu7Zm z3oUM(w9mZ-d!JJBE6`Z6kgsZp=1!eNg;=`9KAORFHDmo$GP74p zQ}jwIf+Kf6yG3bU<%%k@`_Hinej{5Xm%@n+3!ahL+uJ}1KwP%yE;GO3bSW~BP&@z$x!{<%{Qo&KfQ(PPj zDZh$rzQ)0LFXGCKcDA;-J>tj&dw$hK)*L98=W5#9m32yflNSZ3jW@y|Va}87TT&>--lvv0PZTddEIjcW z7<~|Pllv{)!bs9r>PuWQe2l=S#xl^+N^8hwpVt?-n)9Q5%+=2@AQgPHJayRgbQ(2= z!LPrVIX{n>=cJ8@;Rio&<<=adv*{yZ*kBC-*h-3K;_pI7P+1=GZI-p@OGhd6&a5Q_ zNHY7+mCFBYI#@IS%ormf=kJL%OOL1!Y+nEa4{H5b@c=;d4>ch4xntShzlY85bjQNX zx0VyD>pu4N-S%tX$JdqyyUAH}A?N;yWyA#~<59W-1*4SBsRrWHXcuV-%#wfS?)iO$ z7GX*7&1od0f}CZ8PX_#RWazI3jvDzBI!~%IM<(gF+|P;8eCXm*H;c6CSGVtY9SqNU zFUVPGHp2V8Y#yZAc+K3)ZbjNiW36~rrO6p}#cT+_Yv_@F6W{DzkXe0zst(d=p2R%m9a-&&tL2E~nBO#gfR-XFLw{+k4 z%{Go7%msgZ|1y3!Q#SA5r_^(Y9Q%Y()hSvteD$1|jGtID+*cB;7)+8EBt}IG53BFq zpOAn9BogI_pIExA?#+JlM&p~!M-2eaFZN0k{!S>WT50iMX=`tn)tN!$wuk3jlz{SPv+{)`gPn$zM55k!*a0>nkavuQ2y%q4UTcmr8Q{B-QWX$C|{$ zB38Z^ab$~{4Uc?MHs?3UD9nSMGUHH|{_p|L&ksH!A^Vfb@0Q+yF+z|&_rY=p$S&2X z$&Uk-T$J@>Lw?wHg+RX$PSL_`0vQa(e$w|xBC6INk-~)s>5Do#>TK&$Bxtcl_SYSRi$StAbKZZFg zIu?Lkw_4RA0S1N>eiY5e?aV3tI(mouW~vB$rkXaY0`@?nn2B3prqg{+Qryd?j)^ z&e5gHr2i(+=N-jUqd)o->$2-^0G!aR;d-O~X8_{&Ew7c3^MC;+|IhN8V7n|JSjjLI z{pt*FKct ze6x(nyE#wiwLoAu6^YHuGxPGjcS%15HXE{Gr=>!D)C3I;br>z4I!!H0s*PdHRa&#X z@O+1Npj|ROFg=@Y+y)mj{ZfXBXprfOFKARMx3FREV>eQz^UplwMU~c?AtxnAplr!e z+*OsP6%E<`*)KeC{=J0XT|UWCS>9f8HZUM6z|!h;0c`yzIKijuUbKg^LmKykTQoWU z+U(wlOtaR7oo_cE?u5zSVxTyp@wlC9?h!(_BBP>%vLb-nX&I5YFWhcPcqO zz>$7-8rCEBcI9!z;Jv;ep8pD2)K|;xuAcli_OUQ${#Tc(^|rcq(x&DIGn+U0wG|eB& z^T0aqy#aNAlm|&NeyJb;;1s>2aSQ_fAnyxFB*Zcz>V}K+aq)NnB>GhJUQ0#sagZ|b z1ck0#*7p3U_1I!}sz_F2T<`8LAa5`q&Ez8%_2Jb6qk5odHc(!v`#;>AiV!Tfd7r<@ zhDO8C*COv^{vD;M!~k(4WMpKRP12I`+6Dpole5T#ihviNZ1~XVXn#)_`ss1!^O-{I zp2H-*vF0#V-prJycDad%o>C=%RT?#cVyj1Rt2ue3TL&&DU(*pwiix>=bj3BE$lD@y zUHOV@5z-PlH>*d@K{_TFwUh0M*}Q1ilx7Kw$0CgIMxT0O2x$mAA15mT%~}4JQZVr% z*(Gd}JDUNz+2V|nLTwGSK z_)I;9hQ+fa(DS$!Ez06Yc39nzL@nn(j@iAsczgsX?P=ee5Qc@c6c&C|ck?>5MZ|GVe};Jtqf0n7X6Gy|XW zd7iGdw%dI@895|hCM}#g{AmZGz)*BXthL{$F%zxN3S`37U*zfiVr0R7A757yfdY_n zWB1q;H-Zw1)1d`;Nar(CEZa=9+yT5LV0*hTDIm1Jqbu&X6X$SV7`VVOVTW{~R6$_w zXdW|$EAaO!um(soi}Fk*Reu;$C}ij-8r|M`A{Rm1lCRTG=@U>Yval}87YG!6jCz-O zuhWpFF8=xt83X$Q0!QbcnJM|}=K&A!B(wf&r#V$()3QVS(m2M~a3_5XS~qQBm*1{T z3CfC|g=GPG*h1W10$gE`C!$_o4=$}-p6kYdUX2AJ^6dh=$d$Q(a+QdA4}wvvXRN&X zOKL&1(5oen!zBV1-O5dDa?nKIR54KDaq_5U9t$3`Jv3<$GQn4YPq&Q3WP(=1_$Gr> zwQrQ1{rp4#)#xXB<Q>y#M0xyH@`=#w zD`57qN35w2hGgF1$FMUafpDR=DA*If<-NzE6%7LhJF)9<0HUCO%}LFCJ?rzwccrh3 zj+?vv5^jTDT{Jo%WWb#!#Tyx-_P)pq4!QCjQ&_B_SvB=zEmQCOI$qn`LK&-xULh`=VGT@OBnsB+hoduL;Uvs zzPGnGklUb@%wZp}0?`0ORwuFGf?-5r7`RlP8PW1^M|mMtVZ;fy690 zkWODwBt-LL=3gIR*z&vE{bev5vQ55SkVvHcP%D=_xA@Qxuy}%V&nIqCkq{}t$6N``GtbzR6)}!IW0^cr%U;GGSxW5S*`9?xJ#6>fz|p-<8#$TI zY!*4&?DNh#xu~mBoYL`lBpddddd3rL(DWX72G-QX99~{F&AdA%sM^f3kDe!Ac=?;9a+)|VD z8)7F?yQ46;!HK}eCFM&>nw9UWZ%jl)^fOy9IVAO<`-?gdb1f@gQ(OBdh}t&@y2R6z zcv(eqs-fU9s@YNFQQ9kvVUQ`}%^kt0Z|=`ktvC@Rx&Wr4SB_yLc%V+Gxx10j`RRUK zsr(kVegUC6Z+Hkg&dnwZDv^H&ja{(D=!_1B38ZurwLhRJ(Jc z5C4Ok^5&pXuq)F6NX zYus{Hwe;@Fs3p88kgV(b#CC#hb=@Bdeuy{ep;XF5fDS%zjQi6dMa#Y>xO+AC9hLPR z;wybo&%m!}DA9HdFwqAT%4yGOfQIbRPN=p1OW>ZHhG`58zrA6yP(qmjAeSjS1g3K_ z+}4i$89vs#T^J`s(Fg?W-es1B?d9ITAm;-A-tzOnOAk`+hWhgHvUp2t>u^FggOjve zJ=`(4D>$N<;e|rQU5RaDu*+xOCgN%qs2PLwzjq# z`e>+L1)!9_6f=MpC}CGb5Yb_(ptL@B=AkW+Mj|iZWOG{Wc$2sl)uCEU)bx zmSJbcsN_JvaqUi^#Giuu8=os==;%89%$;rHz4s_h)*Bcrc*S_OUo7zp-*Y_B0GXe}(#p4GX9? zd{>)Dl?7*a0Z-nif$%w93Ay_}sfdZM+mtUIc_)cwjc#9>C-cI+&Kw|`t6B<_J)o?4 z1bMzD`^J!}dgxeqBtK2_&k_+NYbxS@2TajD07(PPQK{lh`%^{e199Xdv=Cc3lThSG z*5P$PZ0)_5Z*0I{v^&Wgoq$faeF0Rp6-3CI*W|Oc&*6+ z2ZaXpBBB$nmE;EWEHyZI*AtlgQAfXW82NhzgzlYROtGqD7x#3%C8R$Cgy8I%=+i;6 z;^w#vMRFGScf~VPaxIIo?+thYpU@+m`ql!>i0E#91Osfo7&c8FC!hS+DAa@6B<0cc z?wE`#c4)m@$VLH+OPd=>`!C+!Pft2{`iiDhL(sSC1tqjEC#|0UPjUZWrf>XckzBit zPoVP8bv^5o1aDRaW5paZ%>xL&5R}_bH*5G`3=fqGLZ|rY5&x_!Q#^Hi^L)N8$Sj@hh|xJ-X(zxh^O=#oqoRx45`koi7a46E7*(C z0N#Shnnj=h3bWqg@ zne9ZlnH_JU(L>+-L51Ep;zF55h6V<#rd`0}{BKR_5y@MwXIldJ(`L`*s2>gj+nnx? z{JjIE?6;iSkW~5PXC_RadPqb!o7-@rbQ=oqfg>pFM-fAPCdhPR0ZzpJfs8F7m{Z($U;|B*Wo(C ze135xlBHUrO&*VK*0J=m;^b``Qre)vx}#1I?3X2Tb%I=i@>i418j7UFpCWLDEdkv{ z1#HKyDe;qtCkWe$F!H1GCm8|qr(8eGN>qV$ORb>p@gKbj+vQh)-v3oN1SoQe*|ZGz z*l#RT-+s6s?mdP@M4a1RuqydoAJLm~wtJs594$9%&4gZpC@IHjS*~`cBc6?P?d=@h zi1K-OnlyhI=%+l0`d*!+_2u{;337VXR)pPp+g~Uy{95c;8AH1I@uRx7HmEs6@U4o9 zQu_h__BzGS*k2)wIUE*o^D$QB?=*p-l76VL;nn{v4vB?X+vW4usw|^-L=tjDx&mHv z9^pl@uHhKwen{K{%N-#lOQM*tVC^qiZ4$v3%YH`9uV6C_ImyoJ*6e8HB?GX|&aJ$% z(<9-rxoa5bk*#lQUyZ!}snB=t@rTpu#LPd<;pA=rZ71QkdsgPbi-g2nV!QA^!K~Br z0C;2BmP-eet#7(PGO#Qqz6KF^yl=l1hHA)8V zgv16#MZZwg^UjdQPHuw!N8v<0{&VAn1tGJCHq6rfGEu~@QW`fiFU-Fp7ZBxj3iO6*w!ZIu_1$W2FyLeYKXHJZkwOlnooFi z9Q7&1zvsmIcRI_I*xZ}1K{H&gwTtyF=CPid5j!3A5IPeWhy@&sC;0$;=uvl5Y-;X$ zavE3-Ub~lYDZ&B_I*wM5rg99k%zOhg4k2#TM&e|o&kb=#GdGj~Ej=rT}{()T>}O^tXUBeL@DYM3K*kKBV$=V(8lDK zen&~f*BN9%heGpZYnjeiKNbG4O>Ay%2E<%xG@zZiLmz{?{G zzY$#O)~0U?CWb2tEi5c;9G;?g z=Zn;)5LxsCj&f33HbK}`wrAp!r^n>+Zt;2$D=XXS&Wa;eD)*tBUt1f3ks?(=y2p+X zaI7W3H5dX3s1A*f4%2%;r!{c^?ri}kgsMaPyPrGDr65AWm)=d7&7Iaq^V5AiSzsh>-njb^vLOQZR-$SjYIs6AVG;w>Qv_sAq(uBYvV{6 zO|$t|qliH4+C~IZ!glZXO2)mp@5lmaLLySHN0{i)xCseqOxYvereZG$=I2%8goR1G z>wx=Mx!RLxI=?3Q`|q2*C5lu*ea?{)7On`B_$$j(@UGng z!duc-)UWqRwZ|Ypn+|C8SntL1Qww33&HB(#0Q$DTSb_Sd3Am#4`26g{X>U2u%PzAT zww*QXNjPZva97#Cgw~n+rciANYk4Vwzlu5FQxe6%3k$6GM8SJ`36NZQWKY&R>WbX& z`P%m66K7_o?uZ{fIRX$joROFZir`{KdefRO*~%kr{K*@u(|5df(>nWp2>u`3xNCMt z%HFg*3$#6r;R9-2%;#UV+45kr^F@OjB>orq$=cbjboI9l$klI?9&~4jgt1!Zt8?)& zz>PxMKR>s1D{wkExAn#!Oti}8*m@zC`$W4=x*S?kl4ueCz&ObcLJ$mCVeq;S!;c-D zQV0Z=_<=El2zCG$pw1H#GmI#IJpbV4dfFH8(0b3f-1Z^Ufk3@eQ0U4JQS=@wIHbTZ z>JIQDECpH}FwQ=94G8;$1Hk5~tF#s^z{VL=zyKbx{(&khWk#wYFHGRxQve}q`|)j; zr@*biT2Jo)0_?li3(fhu8ah<8hV#H>@W`ofnXr*S92~2`-cT|lE-r5HyYB{HfqNr_ z=*@PsUb0{b`%iaEa^-r%F_mX+JmM%sqX*+D&w0nU6xl|F#6KR9v75A^01NrW(eEtz zP<*tkK_H>#1=UeJC#vHJhFGBKi~*KD%#u2G2}VF}zdgon>W?BT2}?OMFhFRs5^!<> zHeJc@hN&ObKIlFVRu)L0k^%Gb!Lxo}_uWRZjt9j;p)5`QEJ+_nO&&hFT}zCl9^#O^ zf~0J|S&ofj`)trstsX2TOC7&3I;OARL59fh5nWt@#T`DYV=Y$;9SfCJjjJ^=r_ND% z6Z$!s0W=0j30Nv;0T}CsrY|jN?y+7|4MdB0Q?LL+O8@6o6-m@5=pVdtHEcD z;#6xYT4dBqVzt%V+0?rfgO(*SQC^J~tA!OBKm!?ApBS_m!6iZFZ!8jU0h6*rYo-{F zkbr%7SpOI?&=kVIu=o(@0CVBJ2NE>{J$?7DUs=-OtRHAXV2q881?fszjO+6-;qgHt z(0mc@Qch0Jgc3LF$H9StPr;B1FE6h=;3^Nc$5c(2XPM0ISS=V_Wo`1I>k@I`@`imp$^@9)4e#R zRDhu=DVHpT_&zDwi!yAH`KIfNodFy4T6PKTyR@g)@Hb2_UF+xNfKBHuw|~jt@^O

XyHJy^PYVE*6vO-80axCTihImusnq6(C@sQP!7~n~RY8 zx@KwI?gI!0cOQKDbAV(~%5MPZ{lX~<`G3CzdSGKH(r%E1TnH2@oCvp58b2U0fP8)I zT3sVkFJ~z1<#X2~PDOmVce|5aNW9~^J_c{ph=K6_OVHdn+}w{7(KeDgUPH3EKQd0RJ4oV`>bgKlaCBD?UR5PzBqB*cqW)g z@%@GH2Sh|J#GlIn^`VM@y)1BS$yElu0>5|KtmA#!JzRdE|4}zHRX6wb-0hKGA)n@^8abW$`#hn4zw@; zg{tbn(_k@Eg)Zd|VAv0wAqD^Ra0&g^-Z0=@Di8jdLO{iE#vk|4f`q-tFRx+0oBck0 z=!~lFV-Uc~oE~qQySRC9)R~0aD|l+XR`gVczs>sErsOLQ&@*8WQ|*7(0ys&PwUG^E z;NyGH*b#rgYa7s1P995gpDvm{tpkQqv^ZRn7sI{+tOg8M3a--GN3m_nBazD$u7cb|+a(8Vn?av`lbbs`YS^;_ zHLBH2hUUhTGf=*s=v@7L9;OK{J$c#LyI>Z-ZxYf4vg9hid?r9$UK`#%DA+r^yp=P7 zvK7r*3P5Z>9cz&IvYW8vA%L<9aKbo)Q6CNE$UU8&q!7Ue9EyV$38z|ZS7YFRmEfWa zu()p8V5!8vEUqOli>qqu{D2N#0=VrR;0OfvN0VQ(7a71x$-~O(IRNC<@f;XUexpjL z$tPepeFnZvHF4<%hJ;CVrPudEKptuA4k=1!03z-@?b_dURBXyXz~Iq4IkZ?EBD$-B zrq{4!$#(T5pQdHT>U%1M5ZJa-7_;Wb&c*Q z7{#_lkId7WS(^v9m^__aVuwbQG|_KM`zjn#RQ>;UDaeDM`r2iSG^x2RH#f6(JTzBJVM=hosLLs1N&kfBu&} zG|JD7g{}#?`+7iJZ=nIy(%@vpiHWg@yQrdos_HpiUj<#o*mZpI+Gkag1Fz`iCAq6o z+%}wz1E3G4@0Ggq%h*SUwgU%Zo~^N#h!*;Nud7}24%u6F0$@PR+h4# z3L8(J^tLYk#6RydcJNW+8Jjc{tmw3&!1&%lEtF%gEIeTj%k+z4mEh3cXAgc6q zCR&QrA_Z7cz0O~1rV$6bk`j+UPTC$A-yfSu?1#rr(9of*hy_4@4tH$~y1ICHgv6`m zsU{?L%cEWC=tX{#!rK(`CQ$i3gW#gzrw0Ty86tJjZ;2h<{RmoKMsth{2>B8Nq5WQu z-#!FvO0)h_PYnGI!zK}ce=YXm`@vIzv+}>nY}7=Ws-U9;b(Zl(ZS@sUTL}Y^1Yu!j z*vDvLC?OZ3yBe6+y@~*w&NfD#Ne49F88M)-SRU4SI~sGnycO^N&$klrNXI}=b@taI z)HGh=;*0If`RTUl6Kr>NO~dpzo-(u9Aw$=u<5k>R>+#q3<0D8Evb};_XsW0hD3=#q zT3<0LFv9C%NRdIwuP7{c*1n>sjeROB!o-i3+9blyo9IFN;O4-jS8mIr+*ME9$E$6NC03=Huce^CYoF+>5aX)(=nCA;3RFS7)#= zYYn%)O@e?JMusA#z-ZOip9B9LYy?adpSn0km?xl+P3c0>1(V z79&waX6u;;ut*|xeXoK(7ZuH2G4JjYx4Ph(?9Blx#tTAn`CK#vI>2+gH3!HofC4r0 zO|hwu7GZg%rFrs58ECOzY1{b>gRQp1>u%_w-P7Y`5%~?XIlzM z1X9%h%f@1FlFtDoF6a$^Fw1>FK?WjXxhq6*%-7?IpXVNeC0aMW)%dT&)zIt20NQ1H z^J2|pIv~`h4?oXM^DXu6{LpHlgVkHUA*TT_=B^uctKz&;1;fj#FzNAfzNVsaCe%o0 z7566+qegB>kimW`O%=)(q6`KU{kqDg0MP^o^o=}~U?5lAVk}#*K`M{SKiGLr%YN6u z{5@vO465kd&)4Gwvxz~E^NQH}jCem@bvHw+l$aBhIissQECy3#1@ znCK^CLJgrK|4Xq9?A3u@?^Q&qDGj8Dp}W#DARYe?#=bHvtF~DikOt|x=>`dD=@w9s z?(XjHmTpPuknT{r>!wq>ySwvSJkR^?ee8eVulvXHP}jPynK@_XoH=g~LrikWxIA70 z_8Jv*wgI$O8PGSO^OjFdFuP2`86^xMo&9|vsdl=?L1A*SS|pT^)$Iv?zsPL(WcQ7j z8+vDF&@(6i3PwP)3CEX&r{X(dxnvvKM4d3R&e7j_=7{kLU~&!nqkSVR5b3loKxHic zk+AWTdPK{i;XS_zX3>0}5fLGPVbj1$Uo^f}Z;og(7^C5_WHL5>B3H#4I|3Q-39s0# zm*R%sBCcQdj9&(3*+uPyP^Mp!iMiWxae6=EMA4w@A^ZsbWxvv3Il&(o*Q5SvC z0*EcYSqoB)I1OupuNq^Qe_7`1#0&M+SV}MgHMfpXY`K8Q5jpUy70^iD*PYCHI0;nT ztwaNx_3XZvjsk3NumHHG##7}b8e*sKyUSbk;rAvJedXgS`~>VKtC4V-x8nEJ_|_?q z_m&BeMGR42edn8TvntfWj)&U16s6M=@Y2QXmg+8jQ(8SZSZit!j1p{8@#PiY%GcEo zDUIZ#h%P>5Pv!(FuTMyyM$#faT5C88&yCHGwJo&(lYR#9e}ORbJzRM;0A9m z1>?CKK*2_4M(48$cCF1uoMQVdG~!O-l=YCTdI!0bC)^@}e$L~uc_S=orB@mCaj9vj z;hA)K+=!6oWdVAt+{yLO|`9d;+PEhLMTcsoqAlOtw0d{G?Mq|q$BKp93eG76xxUsIP zx#5ruibupkWYBtLjMi=mWkka5m|AWvnriqCjhx1UnW6c+D>4p1CKiL0y#ijL?uRp* zmE9rd3iT&<_owYZN@~0){qN~ng@$v{J6v8=={?u$74NpE@PSZV{)h!sCEW6_5a^JZ z!UAQPDztE5;mfuIWs@f`QC{?b7igmK%kST_{1l-CPy*D_n~yY!{p0d;ZZ2rsRNd~l zAOrh{KPTUmGkZ?L10^={8y`YgZ?1Q?Ez?Mt63DE>MnmIo1Egr>7-<0T3^O>y3xCT< z0u$6J3n@2EoG800wLAY3%yNzItskTE!od+DJ;MD2nS+xDvcbvS6FDfUpRB@@q*J?B zIU#g1SEz#VeqT9i*;)Jd>oER8E-%ZIgK$^3Q!&a*RHwtoDd-YldOz?1;q3gqkcb1K zhw~u{0k5W!(Lj~sqscGzruE5I%DS79z`ya-Ur9<~|57$9%No7`P$wCc6=G7~Qoi!{ z+!*sCu@)*ix<;J#02aiW4YdGJlMsiJ5C!;-GB=8~I-mxAZDk~sEk*D~tik=xVC%|u zysCGKs^Zc%vu;dMwlDQQFE)uVhQ;wy*AVA--O=GMovH2=_S;ALU&Es^t8s|3yf?q* z!WqAU%)fHouG*yYHo;lRG|vC@lIe`n%(G5T9>3V%)w9-qIxB`QDmL^kxty(gS#W#q z5#+6MSvR}#JjHBzxY;6qR7nsBi#Y|#bkBP$rtl2qWxr3Dq&G3av;e8)pP0=C1H>>L z*wXOONOf-RJM&v&tL5JWrWE9ByZd38$BX($+5Tquxh=1Q14G@@0O{;iaO-X6VEP@6 zj2*n4*=if!%fq3aeVL+&)wRzd+#SKMk7+|O%`TfE?Ji^&qt-1q-uLV&x}4GN8j9tSqj>1P~ynq#dz3M zxS8C+VM9@&0}0Cu9k8td7LX%GTs95*v;5fK{%X*XU_MuC!jZW@zOt5kO?E@v@eYx- zgFnlte=z8Yon7DfSB0l+iZ8dW8HFYz%-n}gOTRD9JFc5 zF|_nF!p z>zN)MT-0vTH!eaQPX;hU$txt*hVvbnIoU)bs7EG#`54|k!gT!Ym3B(aOZJJjdqi78 zRT799Z{9NQ=B7cqqa;E|A3Z$zl`ZB7a{>0P=SdEV0$9f&zj;xoGISD4T`KY-p}b8l{9e(u?b@1G=5` z+4|=mTpdN8-cGG`0yL;69ZfW(n?s^Bhf5^ee@`c#dDYlXfn3WhtkV#uqiaxu=`kZG zG%{F#yhsr6pUhCeU1x`)*kcJAgav`HxV(F3xtt!@S59Y9841`smK(Ur9*;SVOm_7S ze~6jk;A=o%W;8ene{OCxFI!`L~aT%5Y;cpUZ0p zxeu8zv{3U;M`Dqg)zh;pJ3M^H0f~Mi#;|pOW@^hw0tq6x^PS8$v}- z*MtxG)q_ilN)^Dq7ChiDra^b=Ic-$N_xD^5Hw-2fPq5M=0o7IuN?fxa5bQw)1XGRr z@Ytnor~r8w=!wI^$fUh;yddyK#fd)VC{MxiL9HK*w3D&X!?l-be&2}_={#VGJ)iq2 z6$^kYtJxd3`+FP0i${YI)V-PN_cKfxD6Xp8tzDbnjUv+;u|lFV*M*D`&9!n_gTTG!{O{7i zB%}HgrS>Dk_~r256tUGukD(gCwmLs_dO2iPM2NH#Uu9s2O&OT`AZb|4QCF2&F9P;gR;qJ=!cq#3U9xNCK z5b;V>U#7M0=2lLI+5EbC3#T(oy4IoONjqLoe1U{@Q65?|#L*bRWvfrZ`yVYaBfYsm>rX;ltXbcmZcjD2Ub zI^E;RkHFFv0^ijz7?P;&?>VAwSjZ|UnS4S1Qw8TvC8sS9h`z$c*JJH#LnE41?(1Go zz6Zs*J`|@*or_tc9a76p7t6-HO|W>usNO& z_=Yr=YP^eqLbvOmnJF)wkNHQ#lcO*8d%8~zMl5PrU#~?-4HFy06H(v1yVIL@e+ICm zO0;%E=;Su^JLm#}Gm}Is!M=|5au^3bjE0erW(tK+e6g%3+G>&g&ZI zslh_P<85DJ1FtCR%#4 z7t!kL1#UVa(b@CGycrh0+Im`qP#%Rj)?;Z%5aQgpcfT{ za#A%q;+M#P-mOLx6jZulVpLD}NeC1I5OC!i=xqM;@D9j90Qyh^LJ#X0@0$lqp5C2SGPYPng%S6F3=Vc@;}Apv;W?`Mul z8Xh|(%kb8NfS5h8YD1gvqlT3xTSOtZkNvn?$~oK_RsYD~m+l?oc>5i&E*^*Bd!CyE zrbgf5%OdG(8RDl52_vuPW!baA#dyj6@(N$~wwPwzAPz^tHPX#&79>4$0L|CS+?^Z<&B9FXIYMG#Fd9sEw>1M=olfi=LY1e3BUBg#fZG=kIW%8CwhdK2_KdGquUzTYXxq&GMY*s&87l zt+W0W7*&8|m5a?!_}HWh9_~xom*P4CPqMJR;_=wvJb543H%#JxcP@WVsdo650vqi;nHMj`hR^AO zL+K4%upwDX#x8-8kraRrOin>@pASqFbPNrZk|*WW$^vd&+aZt0ZeWJQ{^;R-4~*02 zTwD4SI>fchwbwabq^hDnl~L^h7<2)1-p40xs+G&jj5y)p1`2ecwB!clhz72%{kp9# zxHvAZ^mK?ms|(#A6Ft~qkO_qPuDe$PH}8zkEVpO$uW3gUiSTLe09XN2yg z=B8BB@R!#O9tM(hvE{+U_33=YAKJTFIC#5^?j{MBeeRpylXkNZtG2;YJY=RDEmXf! zg9#30!GNMdaI=mZHK0hsoDC&Unr9Nff|8V&RI%Iw=di;VpzPS6WAz($kJp2mVE`n* zes{5-0R?V=;J(1ZFwLJeCf$^g1DQ!j>k4*PQFjnMax(grEjfAqUXDK1j7W6s%TXSS zGn@ADqwels*tra;=c=)U86{i^52>#t&kz$&C{x3H{j?vvv297}jF0K=JJ1G*N{4Vm^&fU}A1Ke1G#7GyP%JM2p)Qf|Dr=ZTBnZWP?iW2{^94 zYLZF3{$pCObVO@V^o}`Wm1#Gh7S|t%t5Uf<7W_X1eta;JJ$J?>pALa8w#|@^Gh`+BZ*CkPwN>*?{jTaI} zX7`UOAwhE zmVcd1A_RS%-?Jlc75^Blc}t9*U$n38Pl#HYz!X+tZ6H7|*PHw%*7 za=!{RXkR_RuP*^`_lP_^JO=AsL1qA_A0UGNYOXpb^cU`PLj(u~m26+ELz`ev_8V9olEe4vk{LZ_-A zD)^a{@(#Hr_>;sj&L^|QA#}@k{LsH%D_&h0XceFWlhxOh~-i9Nhvl zaE);x0IlyrvJq5=qjGU)t1aM9YU|nJeg9cN_O4Rb&FL1u&BrI^+q^^fj5|tr;D(P4+diJv5UrZV znxn?%ViYM=xVMWSx8SnJoMbgmC&?)Vmza8k#|Ph7YaE}PG@8lH)^}AObxs8*W?EBE zB9JYU)n*@TZ#E$^AwKm-?D7?cV73~Z%od`Nq5uUl*Rp7S-TIo(Wj5OGu>E}`rTVVk zpcl`Q3_@@6iS)_!#S3}&t2wE6a#8`FPf*CFArI2`Vta6;qLxkU8lsoyHDV6xDU#m| zxi$}gwmXM=J}0Qrz~u`r$HhT!w+6h>knyt5)BpOTFX(GddfMfd7(t=E}pS;!U;&F z?mG9$*8)-ngos73AOyF^att&jXiziCMNdTGE!x^V$*GQD;Pagrt$Oh%1>qT8&sh2A zCs~qUy||cnCo5b`gwHS5GelyN%GlXy&<9^HOW{_gW0>geh@1uZ$O$!*9}HIegsz;< zgnvIkL*qwW^SAn9MtFs+FP9eLZ8T!RL@0+sgE+~@Ewkm?RBDOMR%fyI%UKclvzFS! zdfU3io=`B8bCy=4dJj)m+j^i*JKY}EaIAtKbFHpnnI(-W`ySCBU^J8N4aS-pixx{b zn~<+QTVR4ZJ^cHL@S0Wh_HO&@D`AGTZOV=8r7b26l#*GBG>K;qBbCV-n*VYE z^r(q^Irsc-p8LoRlL!$HLBY+OA8E^Iuth`#^|!5XAsc5b{}Pm25yo}W#i#5}HP5OM za1qnoR7$kYcu$!7@lK|shMj|dJDhw6PfiB%ZCBFc602qj!h+m~q)-sY+jxITjclRO z^%n&}`IN>`bIFa6=HY~W>G>E8m{{BNZI;0L)9*tyfb02(i0Avv^#KAL3k3y5dMli?Z?h z7baQzG$?lmTuB7OS?81Xr}{%z@}_bEJ8b&#&j0qdHB|iD^LX>O|CRwk(r2?b{*V$wyC>P!x2@v(*=h!YYds zN=SYe!nMei3=IRf*SRcgn-%wL`^A{7HnSt}7yFWTASrA{+P;B=iGN?A{`8+$08K{R z?wksC8E^?r68aBu>eualJJLLkvA~u(ye3y%K=pa*sXtvk-?rRx{H%rtG*cvcY<;4~ zEitB%W!m$kG8WXhBEwC?oOU*(&{-wK|Bhk!vVs9=PL#R1xoki~eeSnqvan(oX`b-* z&Hx|@=m&(I|NS8agaAnmF=S9e`T#AM1wc|ry4Qh9Src8dn-0ytzB1E4S=4db#wPG1 zbn4HPjp@#)6hU{i@Z?fRO2CrXe5!FmLQ`_U!RzcuP&q#eGMqH z>b!CdPT2W(@K9R&yWx-Z9|xP`6%E1=ImABfLiN&<1}Z1fs$x5T&I`Z(pe_p4yrl-D)|WZSAX6z9`<~ez68Se2Y)HQANN@qVBMz9G>;S zkimj~{1}Zs`s4FiTm=Enw;o-w!CcW-`!5+hB}yC_zFxOHfJ6ouk4&dMmT*E9{)YD)tREvD7Eg%} z=eY34Jq*lF*&?Sp$Cd9s+yk4Z>e215@i~Y<3~clxmoL|j(9*<_yD_#%@O45Hh#OB4 z60Xd%Q#ddYsu;7$VZ}c^BBZhJdB>t7?Uxn21Q2M29#7UrIerLH5(Wrho#{G83X5ZR z)llRKRD7CGQQC1|n9NT(;ljrbm*AHABDC6VIwn?Z@{paFogp!%t9Ram05&qFLOr;g zmE&^rjL0(O=G~OqQ(bpcqttD~1C}&=hNd1y>KO67U1xLP`ZoCsKu{+~^Xn|GnRZf? zdOswkr6jK05EPVL<&fi{b~opGBUrR>v)X+aH;U!k`1+9dPz@>a@VfB;aV)%n-eU2%mHAY;+TlGwaEPPjoa_eFHSlPjMp{is?E{qejlCn7v- zic`Szn?XRN($0Lp?*|iE!l-a#tW4~-SG2W_!2YoyHnL9jtIKX0rm7`dC{|5+K6)>N zUOmZWQE$t8qL? zT(8oj=s9gHw*W1dMA}uvls|p9phGS5mK%3DdU6FsS3kFt+;4 z@b4M)%O2D>WMM&Hn{&k?5GB@u?JCm0zEyn!lps?Q_|X1UWQF+OA45tusIj zOz1Zhund_FLWnBXzKZ7Cw_#w539ZUwOm|$y&_v52bKSo5>Xs}c9FCazJ~RM!FTqs+ z)d9l`u@J?oXJn{fjN7C)&tmyc?v~>pEf}W~j^{&Dycsy@p0@XpW^*ej*P6FtJB04B zh~gIgi5-FtvPV{&kmlc{6NUQNLhAK0O?~B2nv8Gb@Ox<>eUfI>^Mv}8I{p~5##Rq? zAehZ{euRysyRNMohHkF*XO=aMTRUuYS%>$MaE+}D5lEoH9V#Cx=rXxek`LBWK0fm% zFgEULMo#q$K0X3YIc`?f%OZpg;16m$$obtY3q!NgX-0)-Ddy)YgmmF2jnOE2UqP~Z zxViOc@bGXaB%!>2-+Ozyy4fPuSm%_E(Q9V+e8TVK>?Bf19mUe*%CrtI3fD-2a+ygk z#N$9ssRtB>etX_@jQz#Vz~{s`!|}drIPLlBmwXJN zNHM?W35nb^FmPgI0EW?GHXylM?w3r4#^xXBXrg92$mI-e{ng({!Pk2qV{Z5Ek@gOE zqH}$psXB({gv2$n*hjbYMJF1+V%}@u*scU1K>Di*dgIe2(-kYoc?U+ae=z^Do&WW< zs*3sP?jBRn_ZcHPa+s*+m1p)hTxoZRz;EB`P7ulUXn!#L?93?5Fk!+c8qrbxGB+q>QXi?Ko zNey;8p5b@eJN;f^jo&@rmTZ@ZIfj_krdL&Zr0$=NfWSo=YyWqLA3kLx{9}1uCiV>> zPne9$Xv*$!fQ@yUpPpD&qttr68Dr8&rk@8#ZYH*jF1$DmFK(TM5|Y4XF!^tLi>SrP zm8aEWq&>cIY?S9Fy)D0!3%8i`7E(z*#d~uoCc}3ibMHwm0mG2+l>FUHn9@Ihhz6P_ zj+Lq|J3U2 zjlhlLwABfu3KkX*{5pbJ4FyP}bpR3Xzdu44s(!+Kl$oR`F+hB*Q}pvoMKm6WWBHLC zMrpa1Tv(&qA@+kZZr2trtIsF|r|54BO%rk|JZ8XEEaDhRFsa@oM2pW0+MiKJ`IA%e zyNCOCI}$vsD1^Ku^8?SQ?dRK5aKkhbeU2e(td_ip$t5M{PYQhD=M(LMZQfyUWXbj? z?Z*vX2N3^Br1G-jNy3w!B?`}hf3VkJRp0IWE*kCU63M`Qwa7?8u2yZaI#2$2kZAra zY2E(zcN~6ka402=w|UC|%E;f$!kbmm_O-=X+1%-iWlK~0=PvoBCI_f|x>;f0S%_b? zRT%g4#QR__he00s8QvxVU4hnauS$Q?6erToU+#z^@z=Bmr560*yLpu~NByW}nY=g> zE({SI?a8tyy+`)^Fr<>(C5nYCoe}-@Fk9-`Zesa|Qd5VQUE7ujC*KQ}GkROqAg|xx zVb!K!30L2pUGtJI|LM;no>5I#zRuemK}aJb3GwISaOj~Ctu`n{oR6PxcSa^!R2bLS zYE5o!j(9wpUDASnJUHe> z&SXdEXVU3e`>1{9+E~-z@rZ(BwFEzOg#&+KmmDZ?ZeB{aV(EHnFp$LP_Wbg05Sy_C zXajPM##U&b%idp*tF$YZu1(ihVo-v#y}bh>*^_gd@jD|hI=*a^?jw;*x<6}U^VQ@+ z{a7UDE<|skfQ*9XIGBoxGjOxJ5_V&EfF`5W#Bc-VQ7+L7&ZDR?shQ!9DS=({7GhY@Ifr5Xk8G?}uc2>BHm6jSTRJ&U z4b~5U4|4NvFq!V(55l}y(d8d!kO8VgG$eeW6aKM9Jnz{6C*buI3CX{Z^DRt-%V(!X z&9yaEd5v=deZFRI_a(+Bhpve=d^a?!y(gKX$Fb)WybJH*{0aQbC@nIEHrXmOhH)hZ z4~5@b`yHQC{2&eOwz2@JwXqhX=8t!&`6aaZY`G>UpgjOb@W~27I4YP24`7B)@}d48 z3w^U!O6RwTcmUeCd(*b2huI>{3vLB01RaeyG3kUM@g?f1BgwBmdmvD*K?!@VX*f`Q z;R>iM`t2cxsTXarLq;oUECfkPB$wo_AEk0UKCLslR9<&yIy=fYsz_ZCp3rv)YDaT2 z5pQt#4;9u%Cz{7oezb8`@wi?y%rNASd$;*x}GC02e3m6^i9 zH>!L=U#|!eDte??7H?Q}b8`eErNX>l&RD?AuD`&n=yt>GFcHn5O@ETE@+?NVrw;H} z^#W$I!~!lVR#^JTf}QO>TR{Oi!@{+@x5V~ZHtbJ>#1C}^!TKiW0?k&!`y-HoA~5n{ z*%@4HI`oQy0FGViDPv^Ib}wJ3I$Z$eBjMtZv`CUth>3JiK>9w)qzhF)!Hm}$BRSbl z5bkUs(aHDE+OAeP^vf`;w!Pcx`I4WlIa?l>v)oMP`o~J6J|A_{m5>{%J+TzVORZ7q z1M>b1Hs{GoZ=>Zb2Ty|q(&!+5|xR;qG;SI;zfpJom@h1_oW~w7inPo zfk}~=u;VcK(28q7kUK$dsqp$p^>2yhkNHsMC|O%wEQHzlG!`_-WRVm2P9-6O~D|x3V!j$XVM%YT92`% zy2DsM8`ovt#*1wi3R?n0XB6j&j(H7>k1%igpL7Tff%OY&FCH%k1*?&^CHB>nuHVKl3wLk;eTWB!^B**qp!nj&0?<^pL#LenLyoZ3P z$mYHZ6q2ibUZ4pV{@_LNAY;jRMiioS_up3PNkm5?k{ZU&3N=y~=KM(Yk7U1<6ja4x zkVnWk;*0J3e2=>q9&vYe6J$q@{CpvAZWD!DQlS6&j;Y1t27>b=QTP3;%UWM=UaoP( z3B`ELE-fAiBnri&i3y&|AOt0%eiiM#%vx#hs{!TNo%axLF)HCx(LF`91WA%vRzQK1 zE}6U@&R`)iAG=u%Rpy#TBcMR4-};lN6xZ0jk-`&-i4B4A#;=Ea+_CrvhWt=Q>6|hr z;G&Q1$udVlS(>u!#~Y-B3h}^d=}8_SCO=%~e?9rA)0nv?W0pERWUc0Z2jo#UuQ#tn z6+{_DIsw(wbvq60qq9%%5l+E(G=7m<8ax8c-+dP70wNV9q9P#~4@_qgcuSzk##f=K zKQu8*?kZI91nV|J(@EM$LNn8~6;y`S!6Z-j=Fx+T26)^n$3Ig&*R6Yt3O3;zC`sP{ zuKJy5fZPuX3iD6hhDOL{6KEP2gsdrYsjQR zc7LUY1s9=a%f%lZ7_R)*@ti1&@zJ8fybKhRzS{cqUnKHBxFpsK`^)gF?U9xfe1;YQ zNUKGu{hpHo7B_>&2nM;_57~&J7{cre`WK;yi!oOCN_R@|m;8LHSoxWk`#dy;R35A` z;^1s)CQ~hbM>)vcyva#ci9S*XBdq*Fk&>cP%NR)rsa^nM8LM$jdI%x4qW)vJIh4^6w-ucQ zM}1he00_@4BJ!tW*UUVL`Sxf6%WRh1VNQK?MyZM3rGafwL&EOkGcVL5C#-?BA1}}Q zbRb=T4ZZ$yJ}A_eGOMa}-|QA7B}L$Yx_-Y=331%~2bt9Z8CJYikP>yAHB?wUkrRfO zwa>Tm%N{W@4OLyPeN5rq>i*vA?*gJI)NWd|WlQ-9Z+Tsr$jQOC)Bey6kSQyE_M`{h zM)fG^HaBuC8`dqOA|r?Z9(tK0yHcn61n!A6hiP6pnqav>eaaL;bfq0=Ft~hW1{bCI zEWL@Z|6l9Hkbr~*VM@4WCIXMH%HAwjvVSaY!ZT$!t~x%WhJqqUvfYf|(Tpu=3_psU z+T;#&L!@4_+wHd(9T^X|vCt@Lm)XdVVHD|^vvt=nI0n;yTP{45nK#jp*ZPCv*9JT% z6A>n}er5pG#Ml7IK4bZ2rjS^~>==o`WnHKsoRu$WI*p$>{9XMqA1MNzRpe#T zBn9FrHla?1&8#=S?^pm07}0$`ZoG>3vD|n!j+qe_*9#xSL{b$7_Kn%ZbB*$OF5HVI zP#lc3cwm5PV(7;k9cEceveVMJm<_Xe!vxxh^3!WM2xzy5nA0Ew<5&NY(EX~a!Lqu7 zTiZ;-^@L70GzU<3i^@TMU>U)5rn8vR2M zh)%ntX)u;RH?np{MzJjCx5U6FWP*Eo?&z7)Sss3X#mjg9{brmaq=u8tNmtnDrvwiQ zGt8SM3;%OmW+{ghZMA1UXu7?~Q#$egJ*XsCpn*0O;|bJ;|HsV!$pVBnXn``=#@=Xc z4OE$5CiXwN+bU0=IMor0?td;p8~Q~~EWF;Khrf@bD)`_PfB+XMPs{kMu5zM=!kSc) zd;U~kk={X`MFs_?S1gCbcO{H$4^IjS3j=|-PdA%YxqPkQP^`6)>6n%s=h&5s7d1A| zgO(5v0fiJoT*B36SnG#|T;WAXW)?Qg&F2SDus6Yu{uDVAyOkiC^VY4Vg~gXYg8n~` zkTko1ftyu9TfbN1gM|-utUV$(>!-sonRong;&hBe<0#uB^fRS z8=Mh_3Sv4oJ!geBF;adGg7GRdSK>Q^ur2dSTXAc43NHS3?0=EyQwaxR@TL?#U8d@^ z)UbT^FNizh)z;v%Gu^vFd0fbQ@B2HH=YCjn%jovcZSY1*O-_h(e=R=L6;J>X^zLDw zpLn@39B8rSJ<5?l3Kg)jV(h-JCZ4?fTl?50e7SJn?XV2gywC6cZR+LwY9iteAcJZ@ zZ|`pMu2186-S~nvi`X4-Y5iTE`^esL^H|t<>zGK0^Pd8TC-Qc9r!#+zMT;SvdtJz+ zdv*=|_P%Oo^`^-J#mI1iAmP66bNp_|Z;fXgL^Gt1#hQh{P1q`6=^sL*#D)3SO;X`9 za?7ZYHvadlDiHra&nh-B5`UBe4n!d(H3SqupT~$70*u)t!Y3!~1Ar$?9FI5;pw2?n zjjnU;2H(pTV3L_uVaGP1LIG9zpw8cUMvFyU8Hu%z<+WK=*52WjM~l0aa93AN3Z&MUOgRuKlVOS^k>zPOZ;WSd9N3U2$p#sT~ z20zlfW!xN*C=-Lv2u4STM=|N{5qh`yg3wuySrBl=(ygEVfD;&HBmaU7_}M>j3r#xP zz3jP+H|^8vv=xk(IVC=Hb+SGPKiH`AsV5Xt(>i7^ia@ekH~@hnOmd03`pxGhL$gx5 zF!T8a&{r8D1xA*9-kzL9@F_m`1DsPVGS-_#)UyNKEa6G+&niMu|FH-z_qWGYhxe}%X z)1`kQsHtmK<=bD+h*6>g?Y8dpe~V%>X<#@O!sH71{49nfIad@SagQg5f5r*tAW$*r zo^ft)p}?bxNEUfiA)09P=KRGG^YBFNgYIal(1GTz+2&IGv~o0`k9#m{9y)EL&=oR+ z*u!ZXju}@xoJ5p{*5H;o$j`*UfZU9F)U&aTWOqIYlfa}1+3I;E8vih|Kfx{pX-Fj_OW4fH#Ngn#0j+Ko)Yr)$>moH4-1T-Tl(n zIhT@B7cy>#ZLxuxMEPcY`suP+teu_x+y!x-PdWlj1cn`UoL59g7@I9mL0po*L!O`f zMVsqMb^Xa{RZ3d=@|TrIUe9#kwTL`O6?d%8(yO79RA%sF3e8)>qmxcoTRT^dEyv58 zUDeby2CjQ;Vazw>OLPWfN?ttwRQNA~SLm*F{#+{soQf)`qz+1z^8OGtHwUiAs!lID z5YYTi{;|unpMaBe?4qcG3d{HV^XN||T+}leylV{eq67m#P*!l!qH+&up3MW5%ITfg z+0)LkWkaNEPsU^YM7g0X7Lx*D;b>-0*S0VoYX{_?)+1=%lcSRd8!*r*@LOruk%5ySGu98y(D-1Dw6d$`&&!X*GBeM8B%! z_gG94A@#mNuOj0=AfOqpl2>g_N3)`<3k%H7oz+^}E(-8|B#55w$1_`o3kF8=Y)KuI zRJKgCa#;*Bdp$kL^K~aY_>=Rl#3B8KNWmCRW_jn%TdVO?-w$b4O;_+@yNFY;L?T%8>aq81d zyW=)HOl);)*EKf3t*`h?E>4k$w`xEo4VO^DmW>7q?L0l;Qc)3%poP%%Ue$!edts8x z)rcsT3-Zhc93*+Z7+#U=1h?G)X&K*N4SZ&7NAG23-{V&yM{|#&)GVPsmN?Q)Xau8a zrw+G2k5A|CmL#r)0kXyTtrix(f8+^;r)c8JP(5J$blyOAlZnd#L`^k+K@rHe>^j0U z_B^J6!43U`66C+B$_I9i7AqAY+yA-^cHknsxed)J)XV{8tInExwH5=&0?!fg--9)) zt`mn>3oSt}@E4kq4*5f++K7-OY&&-bm(fv@hLkf4@s}+RgNrYso)cqjxF#NB=t43j zO2wa}2jp#1YWZ=7)dOIi@u^JrF*sbjx1^ikyq~?8=e-d%K3P+YE&kC?TVFp$v5hJ2 zVvI&T#u{h0osghmb_=K{P_b1*Q2tm~IF=FcOv~F4O^CbcbD6pW+RZFkwos5^0=L_bxh_hU`pVtIHQ+W8oXqzrYz2K^zE`ed5puiWIeP8p$oY3&nAv{U3VHs*%WgeK z*bN)?y}H^Ss+`jJeO^opRZp#{R}Fypyrwt)ytz{=EC4Pz4J2%W@A$9S{xDt&_xft) z3Y|-C2#OEf1E@eV zLWP=k;W^0)YUf-Izg`Aanw7T73{MnIf3kAf?Nq<39l?ZDq@d3NhMI9*(qUl)@xj${ zeTGnkd~~WkNUGF(vdk%SZ^1g7dOQAcA3> zz<=5fIt+nPAEae1s6r=SMWYfzi8Qxh+KAF`#O%Zi3WjnL@y2!vtK4SNDQ_S z4Ak}m@)p0ye_9zahZ-IpR&ar;(`qenS0v1YAcXoFm;{R$GK^U$OS`NJ$f~AryW)fW z?f=9G))1h_}1U;wH5m}*>~*B2tpf(CyFo*~nUIi~y2cBluirU;*BpD7hGYo7$8 z&D%E}5Ql_h{XvnJeiaLk{-P;fKxs|nQjvlK!#ZP`wYB-TK2vo*j%EIc{{y$&f@?EJ zC0+8`MNoWI1T=`hKn&7X;T^&n5`ghv6#EUPN=WNYmTy zf(JfM`dD@>y;v6WE&n_{802E$LOjT)0dd4RA61ppMmr`-6By-5L;@$Waat(7;(9mT zidK`ecE8*2wtsMKRw1ggQ%6G~;r(uC*!VxeVE$t4tsRxx9!3<06fO-PLhEeqRL`3_I5)=AfYTI@qXa{0$ddKQu21)N~|>yO$Am=-;J^7xzJ zDgr|A<5}k2(>_H3td-D&!glYC_w~kCc-H1}mglN{5Gu5| z!p19g&RpuhX2rQ*q(Htc{M8O77d=YJZ0v;njbQ{(Xk`7tTfz zw`+-y2xs`F=P-Hf%=Q^)&rlGSNtZ90riQtKLhIKupiK)>aa9;={yqX8Ru;cnbYtb$6V>j313C3`E0 zfHZW9-ox@?JZ;d2nBN_Gndjzn@kajH);uPI=5IV*(RPE;ItTzPiJ-7%w%WlesWh5g zYnaIul2z!m2Xu%z%Kvt7{^pVu{%z)G50>ppTkzs97A~Iy+J~zuY|{CtSOT?18xZ0) zQ{=#=cPzJJl3RV^2B5}mi>fJ)^WbnsmCol)I5YF}?B$uaTu7YmuiMiVi<@lL_uQZe zgDyNKwHLvJyaQ69(N1%_+yLTqPIVK5p~WdvS>~?4kig>iptN|nm%%g=0A+Rc6cf8$ zA5fXNJ(BshK{YK4oga<3NATOG`bB!8o`kK}fX3K+n%yNw)9P-RbOj9q4k-z_T1X%x zcIdW+9JGHur$FfUmbha0d0h4Qo~7}q`dtL`aM@;tGTJ7N=gLOSdYzLVAt zyZ$LUs=4H@Sope06T@tDC6qv`GPySTJH7sHmr-CW^SpHzAiq``Ed4`%4SHjJchO`{ z(%3)ML*aoRz=G(qU9&KOkpl*cU(ban+ZG$m6Tc8CtRDnnI>b(lB&Q=`Gp;30gl6gM zr|>!>&oE_0Oc2*jlqd=cGw8IE29iC#CkoLCOz)jrZTH4TiB3};k$@eFByAW2b8%$y zH3Z_05$AZ6i{tUHpsG7=b=CIYqBAdR`$ca3Qme7T{v~DW|4ADz+oaWGu3j4!X~ud| z#xL||jgiCwyLl|PB}yc|AQI}yQYedHXMjz&@v75kVj)EI(P}t3)gXCmP(DDR>%T2h zujCe&JqvU$D0ARX8qQ!45(fr7G@YWa>=HhvDTVsH>~$WiwGZo}=uh&Lm(_OIdjXhA9K3RLNP1he_S;J$Q3BHKG=q)47dGCO-$+T`gvn zpHPg?!(meD$4P1nhC5f4Ey4X%A+(S3?_i+6c0|O*#r0W7MMc5jne*16Qb%2iAMRLh zcMOM3^{=fN#cYU$_Y)ZX;%M~X3dbXuwMAsQ{Qx$~P~YB`u!+p;e=qUb4Z7glnew7c zyrpXLr*uxC_!e}%?R_?40Bj@$(TPW1ox@Fb2$tjKW&5)ndK)8%C+XdnbV#%7P}Amj{fe+UP1+Bd*)JdgFZNl+Z}rB!lv~J4ss~;Ou*0YAioNe~u=ZP=pAEMn!SC5dWL{ zUaTGUbcNh($IVK&9WTQJRqR!NGp?_Poi%tsjmwj~@1EiFJ8tk74{&t;r9tNF)jB_Q zCFST% zDCDk=tVP&4?%~Xv@|4V2QToiwL?;cs^R8kwOXVsos>fPwT0R079qc^a924xxYW0^& z|CB46Z)`|CcL%<=9*n{-D6J*|v4RZT=a3I*s|uIlq|+qSFibQ!Fu5ATNK(Lo9mdD%`KQuij!=bZ$uKRTG^Xpucm)-zjSNEJmF5&_Zl_vXx#xB zO-rvNz_ZR&E~5oLqKau;*3tC>J0zNKPy1*O=^(|YgC#>=p01I)Gme8UlhUT3fsy@z zeq>bCes)2U^mZqi$aw0gus-X7PWfuvKV|Y%8ToiCZQhu+v2h(yfFun0op_a9WZj>d zKBX~Gw!+*5D#EXXZ0Y3+_G3?}4v1Z8?-fc_xc~>Mdif9i&_>dDY+p|hOT4K!X5%km z*Y65WeDa?C2PJHm{t!>KnjrNn@5kyH2So15ASt=~_AwEp*2@&TdtO{s+htkL6v247 zp3-!jZ^5$`)OjmRwG=nK`+uyxWl&sUwgnm-5?q2i!GpVNl98{P5DqJnhz{ILR zCC`ZTr$2u&JM9P1bL{Byc1lytila;OJhWz%nvRenro_t6$>bV`hE9WjPC`9jyLRp{ zBXxplvYBzM-47uyoi3qM(b3WGP}iRR@+#@Za#HF+g_r#w2wOn{sQ8bEe^E>i6Z8)? zd}ZUT&^ZccR)Ghfgs4Ul@6#Muvi`pevh)-5tu2&Ykc0ST$GC-=@uzCA8RdxA`)D4|~#e!Q7X_A2jZiNP5ZN)})-*{ua&^oN- z71&Sl31-pAR8!VFO%3P%-b@3WLQPo6c--%HrBgAgA}3L-?mEfgnC;C_0nd-s3Ws~_ zih~P&B;uRFrDt0-6)*!SIjk6GT#pM_kV=m68^;R@O!^vCJrcs?!KM3x=>KXCtQ8> zUQ^}gr-1qU&(5|4jP3r<#~aLjgs0j+!$$@ktvZwPmobb_+PUp7Mly;gvX}M%5v^_V zw%^}xs}KuF?8PpOqL z*8y`E+NWXlkLx}f&t2>-=i5$@xG$95_I(gZv<7nHghUaUKU}eO5DEBkDU0ju=Ve|1 zDo`^3%x{?ROIj#0y>3r&2S@xc&(xXfgT?PLcNze0P>o~AHZR!cBl6j-(S*HKlwak* z3{pFT3!5q8FHXPjL+(A_up%0lFnlyEEU11PD)3HY8it)q|6vHegLGUQX(ra^_Xlun zD!IZd8S^u9W3^7iArZ1uJC^H8&7BQEBLXwSb1$ckkO6~?<^+hY>A`j{mWZ%0@!X;OGT=OsZ8a5cVY_>W~ z{-j)7$RcODo-^G^K%r_|d6|3wg|1K7S)G>gi7>OAoI~^C@COwRix+AX7EQ6!D;IWV z7ZQ*W27x9r%F4Pc zKzzid$z=iZ_s?CwOB~rN`$1*g^nkb3FJpP9<8xUo{Z{ynMOhcX;BKm`_EDbX8y=IF zB%{cgk;s+2zb1d-9+G{p!QFa|5`f#6`_U#oFGp;U1V}xY&)#Jx{;djE0j2z%sVQCU zrwM8rzZclll)0zkUl<1!0q=0})l(q6b_P8*F~e?wSpv|TTAJDtfzD+BRx~}O$d4ny zZO=3Xeo1Q%X7+&w85W#6&Ok6!ruZ8mj_sPTra(Sjqc-|kGa3;!Yqg!z@>wy@>a(Wl zFzqlOU2G>k0RA373kH0J2G|3ChZ4kWRRRM*PXGPe+hp)^8dDurRC0L)X_WvIyByu1 z1hc`86Xw7vcb8VCCdUMR^uBD!_r_6S=Eq01theWjtal#|aae(@yRsrw_s$-!$5)fn z=lKtEXjDp=<58)BiF9P)C8fK)p7`8J^QM3;t}-rek8@ItLsrthsIY(3{!#O`!@(@I zG)m|d{>?iU^j^uoq=hgj%U*`)-%ShuxC%7+{to!6KD*MC)w{S93HUumjQmQiF&zM% zaM$3=;j>|khk(k!OomYz7DTHFN|0)?+4m@ZD*IbcapyQ}`GP$4hhRVcr-5&XWte%C zwg7`z_z$lM(xBuEW}a-{l?BQI-RdFV#a-yzq28T^po?DM` z1U@!Fz77Z5`Ix7Qf2X*H5~Sj}U>lY6f{v!iZ`}iEyN8l}+nao(g<5kufQ2Ud?$j5Z zf_avv#bS=;?F{-3W?mzv;9Li&2j?{-C05e4^{oufzB^8u`a(z+TIs&K3|XW@zr@Rr zkDoDLugs0dpS5rVJTOll5yR5cM{Ou*2r@ZmJylZiUH`_tum3CVadES};u7FjlZWnK z!1A(C9=?PHC(;1CbOvnljuW&2A53^Q5}+{tlf6S(DqoE>viD_872D;M6TLkg9GsBA zT*&OTh%tCTasK$CLk*Bip}x!NTm8w-(xP*v^N_xT{p9wqWS8@)aPq&ta$_)CFZyi` zQWHWGe3dc0z9_mX-}8Uo`1uYpI<*WeEWefy?RG6X+oX(Gwe~@=TB`)dS2e3-Y6{wY zDz7vTGnH~)|5tty^SFDNg|uU$XhDll>2$`U-I_ncFG5@Za!~}YgaP~I-vt($fk}Vq zs+L{;Pl140fcwj)u1Ax+*x^^xd_Vu|m)3XKIefnK((Ed@=8x&R2<9FWfvzBHPaP*& zeBMd%XFkUh6Q74i@g`@iQ3EE}84;$bYi|$GIlZi-6KY{MW=zt+z zZs+eYsR4MdaFv!palG%bse{mNf&N=I1jYok2E5Ay#EW%isX00|HUf~?V|`?ArqbGn zZVi_68GjEkNwt=$DD2M=^9kDkgd)S%hO|c^TC{gC7aZ3)@%&LY8iD)T;c>I~iEqGz zhC905>jk|>FDzfX=%|Kx1GNWBy_Hw$hd#|``+9}-7GI1U0e>(sUXhim#&zFpvrW?5 z0XR#)n3*x?VoziW5*n{3t>ArEt)P9RK5P6|R_#kSu9M_eepx)+%t#Xe&TMSD0-FO3kP zg3X_ksufi$P>v;8cpMA}r`uN@91;M*@3J<8Nt@dyCV>rJE)Z9=wdu|o-``;bM*1a! zzMRh`J0u8oN=k?Yks`32tgX|4-q!D9fV$k~-s}}ui~k4tmqxf8!48Q~E7uJ^OMwb< zf2CFt2onkkkmEBf@|kw@Py#T7{o=0(>=~Lxp1?FX{}bJpnrIY&cp4r^yakN#mb#F% zt=IT8IbNeF%4Xha(w zZ#J(0knultTiS77#QFz4REQm@hTm8@ z;8MMqzfY_V8cl9KKSb6-3zFTDOnmRtr-~Wn}TKeg!TG?ZjQe1 zl3j+`T>D)VHcj3#CGo@>4YU0bh4Q``?de#3_4HG~^=pmUHZ4Ro+{0&3^VIHkS)1J$ zx4qJ%<&j7R(1qpiZYbDiXsOOzmG}iP3q|Int7kZ?UOILH6>IWXpG^$*}};aQRkiu7zLT`Ix5)+kT@hPa%=--atwf(-gW z6l*c%ndWplZ_-5DvpP~DZ8Z9HF{pW*Og+0`j)}7)y2E9pt z{c$?_tWUJxiumyUBlcTLe+@1l>?*toc-!OZlE%yvx#zIJo7wnKAc>wT_@l;nPEgTn zVv>Hr{9B_lVVmBQ@ajDfL;*6um{HSo6cPJxI+LbFQyvlFu=(0#w#f#*&;o16EYb9B zoHV?1&2Uvc57{qI9qviUtA zXV5uQ0U%p|B2c8ghZ+BeKpLO+(+gp3h)l4XgKt zj_kv@%+y%|wP%9x`n@{F$_~#bJceyT$GvBoO-$7?AJY~1=0Jd3`Zd*!-jQfF4AFgG zuZDGA$=g`twoTjSd-t&@Dm4njr0||1?R0xT4rr)E1*|w^NG^-d(E9Q?tO)6>rU?d; z%8LrL%aT=z<(U;Otw&pbL$Ui>;qlSZ*cTVOc`U3EwXX)jbLw+xN8C{5(%<_TF)pmf zJg52WcXsA~SlgS7d_{UfIqiw%U*0%7Aq_9xE@`u?RIyr9Eh|QjP?;$ODBE}_a&9&T zU7`?DC<1htpIdF>rcB&{K!{zqx;=SNL3GCr0+`l3+mYLvy26Q>WRz$?j8H5NSZ8Ix zVTQ;6VG01r9Ddg!0^lGk9q9DKjc(enq|WpVAC*4xO-a9ez z^&PpIDoa!y?@mh?joRlKFq>Inns|I!wvr{3h~Ln3sU?h2Wz#H#I?K?Q*w|hoPMvs# zqe5_bMv5ojPLhmQvXEptun!1$f?@4994UW?=$sMLZ)=<19}V6Hkma8%yg;KOy1es0 zfNK61UWWRkaYr@XW89_4vR!b(F!gW{=kz=8!$kLz^zu}ZhS5N%L05rewnzeF-n zfZ_*hyWVaQe4sQIBm9p8Xdi+&+%cjT)c_WO+Ak_Y9zvDpkS)=S*CAayf2&VZG5eU?=1o z9MwWN7EY!R;@4WeyszD#&R%Mj5M(P`AI%*v$!tu+R|V2xl}qPH%Dar6Z@A0Lik1FW z*3a~XJKChR_rxg*?g3d( z$~!cwpzq9IolBgdSss@PwC*M?p2LH|)npL8ol$CHt*=Dd!Qd$_To$v?m;%8mEeiTU zkK?&YXm=5r@p)gpzfkkaiN>9&9tEwy?`ujIyllK)m z2Ypt|^xLWMjm;Sa_!3d*WlwKsn|P@KS-{vP zxj*%@(984ApyXM?ok-PtNr(7pRZIpYVWCLkwT|8(Tsy8NXQW5ui~u+O6GIad`hIf$ z{-s9I4#+;H1yi2)Sd4UYR~Ik%^y%A?z^08zC!~VOvzwMTddWdBaXAHA-57Munj>7k zs)&hGGkx(m zCFgj3u48d-^`Xy=Yy^zlKLypd{z=?kH%(;h-_o#xzwlRHz-X0KOjpMk~A*{gwk6yY2N;?=%=g>$7Q4^Lfg zcU39-vUPb_Ts8e+fR7&{9Jl>nN!nlR0Ej7o2WY_B2ejnrpNSLnm^=L@U9pzg*sHAH z=*ey0a+sEjcf_@utQRcq_v#EE11xk9ntMo!iGH*V<2bMTC% z?9O8*ZyUmh&*`M|3;`y+8d7-U=)f*U>z|t|ILyyFPz~C*;(1fEU6!qp-V3g{VeP^sD;pP@E zdj|=*-T1v7pd^06ZVn%|Z}~KLX5=ZQZZ_fjNcXM-#tB|)eQh4E6Tko}oTogiR0VQY zt(esYS|}~tDe7`JV4I`ZM!2@u7x$^a24rGba~y~2(fK;=?$}|{=s?{pFBfP&`1j$h zb^1kJz1jBN{D5<$x-ayQo7y@D=_RnclX}YERip>%(G}BLs_1g3e_m%|E}G&`V9z0c>+pME1KnAMoIwrb%5+X%UhR;0 z91S89EdD^_WXSo5N))5fY(`#xFhjiPw5I||R`yc7`=iExSsLPx>j}R|mzTt?UC_Da zGS0S)W9hfIp&nEZ-n)-~j3$J)9W3s6PP98w6^PbA&9n`_>wOJW%NB7gWezcdL3_`nbDkIQuHQk)D(2NTv0oWpNwaEA4;diU|E#k%;V0!lyy>#=Wqo8;DX8V z%q*!|dbh%V`_6u2_XpfUtsTTT(JGx$&0sv5>Gv6tAIQE+Eg~_4my^SeZ9ca+zy|Ay ze6z*&Qd}YQLc;!1Y}`o+U}WDNks#h4Wi3lu#>%sesi{bBg{zbQ2!a39+8h-N1cRAx zwo$TOTZ_@ZbMAkxO`5mWAJ6!!#m^^zqsAW+Rzd21Q0RjTxxxHr`n)kEclIRifnVWK-a_FxCq5AB+~Nhd*ur%UQa5Be zKU^Mu=3xBOwfJTmQ0D11Iqi+k?;avL;kdXFZaUZ z?kJK^0Fn`*sSs#b7%P!(C1=7kVjtMC0XQu+kIyN#CiH5O0uT)ZTT!CHS}9|+u48~$Q3qOE;<-Qo9bQami(2iYUi;waX+i`5+Nvr@SX|?y0b;&mH@W|}r~mI!QDJ%wFgcZDHX8pu z27&1z?4b<~CKPwQG6U|p`v=XCkl+aTfo!#DM-OXM9^`M}sD|aiEX*9iw#eBZ5(wB` ze#Y3O1__rUz`Ur`r=@8B)CyhVQ&NeBrHD8tpicD{{z}63C6okqB{zJRN@Z z3Y6-W5Nh8Nk#~vlSd7|6Qz5u_&%LZDwW|4VM&K-a0iiPR=1SM$W=7uymj`JU&kcs@v=KtAf?1!@> z`}UQTYT!QO`o?(hK$FK68pFC5qA@x7OsOJ#vNV=RBpJ+Cix~oSBkHbsX`|9?m%W{5 zsw`a!5Jl!&uOk29=+J`#PcxGXMW*))?f75i_CKV%|F_vJfP;h_!u)u@xx05p7rEgD z@hNsp_$*)5fpK5RWJFJr=5o6=b$j%eYw2tqG41oRbS6;3w()#V2N9w?kbxcdB_Z|m zu&O;68LAyR{_cJpYc%IeFdvLe!Ih$cVx&=Da3$5{)wK9T+LtIy7qbPsT2mq^ z*6(R6;T`UJn+G&+TrwoODqkt$U2Kv5ph_vC_B9?x0dyl9F+@>RQNe5=c&T3^*OYi3 zhWg2U8VB#U*N;8gh%@q+c#d|{wzGGD;~%KH_sv!6)cQO)5eWJb075#@!{zQ|t+B-Q z=`yxforx0eF)$^3V}Cz9i`RV%_$c1Zq{$>Om#+Kvbh*}kT_97y7Y~J4AS5&t1`tCB z0iTF&sxwpT5VTkUlE!?UMmvv-Ett6~z3BX%LA;6Jx%Hp6Iu+Ut?{AJ~qs{H@7=-%2 z?QUC#jGP){=BiuzWE}9E@(u%ZXY2EFqkXQRBOw5siWH}K-md%TR+`_SvF!x9lXZYO zwC+|W6A9Sd&ikU{E1nm}`wDzb{%~<;;Tu=s8l}p`B;~0z5z2k<$$VStrL36=V)U^# zti`J@DIb1uzex#*dm+VNRcm-AK5t~cQRI-d!wfdhXVlZenZ+w{{zYAKf@fm@>iYLn zEwbRRY`B1TVi>sPr4INkL_(u`ty44<&W#Q+d1q{S6@>y_Q0bepzWk~bE?ph|$ewZc zaW{O(Qeo9Gn*g^23GEc2Jo>ET?q-^Iljwf))cM-!>#qc=+lnq8f2#U3PW@{YR|3s* zDqVbAg8e+7v6TD!vrj2NX9wn6oLxo&iUMN$Y{4$&oWL4@=2(@ukDR6}MnPlvI<+$S zBw5RL2#N*wuuU=DUklKuE#UVJ&!bl*>^R_L9FrtZ=yUf#$hGoD-R?}`ER*hrWl~$d zsCIA*gwNzio8RHEOC(Jdi+b@JOumIL+u;$Az$foAz&DB=-tp=cD7pZ6%A|!e~H$q+g&!7F*htn|i zX*><1=}EC6?{LjW(*l7JmxjB;$%E;v=51U1{ebiJ#yTlcLx>Wf$*m=LST84rbmE`} z7(U$#h?y3ZwblRC{$7n6QNs`kdPgqb5p8yl4K(3h;-Gq>2Qs9gt|W8(~=$$lg#6>NL>*N}*UzuX*IV%?!`JPLt2QrzRHEZ=?MuE}`q=c}7%(3U^_jmq&J3M4SL9IOKpXL416C2u#}B+Q!E4xHy#2 zu`%|R=`zMXVSjkAi<6T`tJ^7bFHpB*wOeUIGaiV=$~6`ede`D|NEZIZ6$TgKD*>Me z6N~vcqP;z!f=IK#O_ zWKTrnM3=!7)+tA34I-04p$Q2gD`Rq;5{{4l)2vD5=Xzpd&mf>lS$7XP>g_hw*?MQp z)7|;TVb5}nbSfVEFqYWE*HFd!FC9BH>hI&eRVOF;LO8r~zdh?GI8{S*ym8+>XQr`L z0VZqL5h#E?JsfBU*weo)k5T?mm)}O`d_GKO;|Zh)p^Y%YhG`8jI>$tVsP*AEfnOLg z7l#o$Aruhn(?`Wh&=-}F422dUX}5WMJD20I5&61m!Z~s_nm)jnF*a)3>3p7bk>2z4 z^&LX|zg`6RkZdeO_-8iB(2}`X2=JnEPEp5bxTZUODA^z>C4s8et54A3Ahv_e&2GNu zhf|Ssr{*RH`xkD*1zzVJXxu)f!ibOI5rfqEL{ab&w}Y{<$&oIzGV5rd{y4|^E1Aj9 z4^5BfRbPPX4^{2>TD)^xH*k#3Mer@xM{yS@qlxo=f4WuETONy_V#O$3Dth&++X)9= zIqXLLV(wdOi{D$PGWIX6cZ5hHoq7iAs+W&u z!?T?}lq$ZuM#?mr;Mxf;^p z`!wvbpx5e_Jl|q%vQlUIp{nJG*76Klz<9joY= zmKJPUUzpP3vl3&#tF7@F?fCt}=$R~BFeS*+-CZ3t@W}awYuHrS`%#SLTkQf${^zx~ zeJQ1#|9#bvQrcckGgTwV#?n#}*9Zom-Fz*Q3V@dUpRWxI$m$fI*w%vT9)9L|Z>$OT zbB2M2INgI;4sm0=3^@wU9brg{TocGC;Jam6a!%)Ypy#hQz#9|0?z*aeQLsf6L31ln z;{LuEk`L9)(!HMI-_dh6<}U;8*7Vp!x)c6BY4j3RZKB7ya)l?4=Qyi$lO_vGulL8J zJ)u_O2-WB5RYmjS1`?bhfGs+Xx2@cHb!*eds{j^lOcHLo$euUF6f@ucJUr1I&bSs9 zUqcPfdi~f_)@r}!y36EoILT%(L@3gG~ub7E$ryu`W z^F9$G4wF!^l^w0uR-%FcjS9d2^Toi_ia8tJ#cxrRAxUuT9%#Um6dXq;T~MkrbACb% zOqy(R+&1}UWhhI)Y9<>kF82Nij>zL(b?0jf__s$NR)ggRVGOuCEj=M2a9-aVsq^JF z1ANJ4*bTknH1hdI37AJmHYF8Jon+v15!$9tp#B{gB~TH6*dWeNhQ1R|Dr%CEKf&*H z?ZCmOmWBOv_Gj9{M78|Dzv8kD_{)8<%=-6`i&NB(Y^>fKPlwiY>~&>F21O-3z_M7M zWuwXTTmZFYP%tDaCQd+?kfFX!hUH{(LfV+Rsv5px&D%Q`R<{whnI|VVLx)a^Om+&~ zfg2fNADgSP?|PQO^YvNp_NA8>Y4Rv;G=idRiJ@-nd3ir26~0O<*4i59-r8=vRY*?` z9uRrjK;Hs+m1D;_Krrq$zM?D{hYFP~%HdVuwYfs68l#}{( z_T=6Bt(d3yoCd;eV(kEi$d_0v^VQ3~`|H`a4KhRJwmrL&7l*ltuc9!T&vU^G9cP>? z4=c(;?z3^k#*;cI9K36FqHup6GM`Y<2*YLUvPom&i95Kk5+)IDG6|O(u6T`iJakzA z@*XynQEh*S2NfvFa=fae2pS)6Y+*Y=)= zJ`VBT3hT;uYgI9;OlD))Y~R~OFLGl?N9O)m!swM1U7v^DR2EvJZDRnVab1nFnm$?@ zdbp(MYm3>pZ3KOA0B#!t?Z*#(|7uP*UaT`^Q7)8>w2i~G^o?X7|3pJWf|^aZxTK}0^vX}Xc!n0E~a-aZfp!c z#dMo^C&VV78qb?^SLqZ}pIAJm>#w=gG-FR;mv6i65u|nS;Z`G7`M(1LB z;ofMJ)-WJPKeob42c{}{zhNhXKzD35_T&ZL?Z%eqz{(?mXh8cNvBA96VE*BvShu~O z_$dBdiVd$5r~13E>qolLMUVE`SgOZOYhPE>Q?|JhW;k=*%q;iNNV<8Cd_skp$+?c7 zDb_09zB)$^9DBv%-hcmdbNHpI$PFi95-X@J3|g{_5q<_A7yoX~4$);Rdp> z@&%W3^@)rg7Ra${mCCUEDm zYja1=H{vCv`2yu;s~vcklK~bkiR(>P$p(FKpmuV%?`~CCr&nPlR)Y=TZ~wtWg4}6C z3!B6I-YiiGT0xMMk`ngq<=o%&$R^>jrLImHq=R{?>w7bsCg|@6)l=xJ zOV&`&A7!Gg{jH6Ion7r4{wYm`xR@lG?PY=lktIvJoAqNwy)|%fBni8|S|f!lK1C2` ztiNOpl4OopXO4|$0-0STp(Asq_ z+baxo*x;2}A_84UcHFt37jh3{Mo_f97yM(uI~&c5Wbhz$tO{e3@GCzbEyxUIEu&Uz zPQ%H8xL-aex)7pdaKV()m_4QajqUaIj31Hvm<3GmL}G+4wxo?O3xaxmIW&I$GZcL= z^@G^1$sHNEQBQFC*qm;L~q$02TD*hZgA+Wi)kMHzqY=n0ai6xY-E9@I*gV z^-ARB*Wf7%u7hi(DL%7`vi{5Jy{-KTgB0J+gRn!Ev7dCLxEgPlG#x(1Jh0hLqztV$ zQZ5naWFwJ&CyOobb0(TKz9HH*-MMlz{1^%#7VsnTr_YK5{v0&y_3L-t1zS5F;z_+l z=X|k2CxotGdGXB-M4#&|+lYwRftb7YNTvi(tGwW^n|bl-%>f1dUa5WkU>T}$F$)h> z{`t>uK5;;@0?`-hJ!w9;h%~%>j1&h>_Q&Rl^x|I>RLTK&KYUHY_*w9H{(ilJe=TN^ z8thNzd!=LF{t3yu`(5e$u_=X!Iiz2_T0)}XQBc-^8D?SYzOv6;Ku6Ku z{PR-Rafa;&GkBZztjO!pcFlHvI9`@Z)cIOo9(TElxF#GN915BD(*_wZirrR9WTz)@_Ek`Cc4aKbQ8CRA4HyUsgTm3mhx z`X5brhkBi3>AoH5z0K$^E=>;}tZnnffX^=e6~X^2jsx#EXt@bWzTcdCDK^+4CBWeE z49u|RyPQs}f&u=ZZFzi8)xfrEx%akN`%Ul*xT-e5hO>7(Dxt?@#eQ+ivm zbv49qIOw^?#NX_=8tbo+Utu$~4M1Y`%hz|Dnk?sNiz!XTq9U9#s>vfidznwZN==2( zkO?lu@h_`y{+K^YdBHXfiBthg6gr%x_z?6yXpVmy)UotU|=_IlTD>0vLeqrD^ zDq+%&+9ql;6kA`D_-2y1;d-ktIz#q>URgMf=`c_6Us?cSLH*d%&2ZurwJ7%M>uCj< z?JWsn-;gFQ!%~>JYJ)f#hGu941O$)EAu7jl?tKz^`q6aNaskHMRo0M%$+Lm&5;_6X z&dr9epnl4E&KU68;%!ySHtsdP4^NBhIgS7IV*o5tcql9>Uj@he0zqQ+Xr$y>z%q;b zg+u2H8%}&ya-glwobmFUtH*is8wtDAvnV#v7}|!e(w%PJ>rBqw`ZCLPYo(DxAc5kC5DixSWn+{x0R;6L;HTSO#+%mCf(|=6AZ7HLUbW_<$ zqEY!XOjk`pK>^*@*T>RgwBF%cWH?FGr*thRR^W3pt6}O6Gz~SW?+4&3Cb>kc*xlJ` z-Yijj)yn4ixoKaA_tNj}XJ4EXe^zMq%H<;ftcrPK9TsKqiiypnj6Vfws;Q}!mX$d! zVS!9sqDuQdR5fqY=(0Mtw1N1hp$}YsAG*RLycY>SV1kAvdI%>yYuLdr8X1<3&oKy4 zv!35lR3eq7B)>H^H+nsxVPoM*h;SBPbq;-0@n55x@vh!@)Hr`ExgDO%1~BUDTL|!e zU(5F2{LkN{Dc}+Q_h6~O7`GAnAG|eau#iL(uBfz&Eef>nXkG8{u7IAG{_G^5W$}W6} zuuv(Vb;5x0;#-aDe%20l3pIuwK(_3#WLd&)DecAq`zag9Ov}0l7s4dLWJtdKw>S59 zchxnfW9QU^WAPEnu!wzK7!&=6`v#HYtKOmov-M@KEwa~gc6V4s;TLm>DyH7kL^hJZwPtKj8`ME{ROcj}aLfz|&iegb!P3kdg z7*?`bO9>MVkKR28a1&4O8yvd6+aZGJJ$bw z7l6ewBUB=Lal-@6m%EYqRe2_y&Ax{>~t*xpP9_IGDFgx7fiZ zt6AC=w`JRfHc!^Gwk!E`D=je+8=r`SP~f~4x3gpDc)pau?W?(%Owy_;3Vj>nTpz@o z19&d(j|{pC`4^M=3Nj#&1{sTd1_u&j`!#w{a4-OM4OO4Fq8WdeDCC&6()M?_ooZX! zVETUSp8&eT8cybm<1l>*n7`#Pu#-G#Ey-m1L;aT3J~3w7iDlY%zur2rIbU?n!P~a+ z+X0O0&B)MV_1*;{5Gf_^$75DjHMKJn%XnIN%^;4}+pDjZhxKjc!R(#KipP@*Jp6k* zrw88eog|D<_M_iIO4FcaolDopd$c?axI4XiIN~Hs3KJ$%HR|neD$B5EY6;0uvCx)s z3-Dr!=Vmm`ZIYtr29To{!Bch0NvWy%`E7_;$-Ay7OcL((O@)~FjW)?t7A7uolH*ve z6Ie$IFZlSlp4ASv=c?Um|Arip<$&DpS@YY!(_})v0285_vq!*;;1LtR-%!sKwSaQL zu#CShF4pfwULa~^X5VmrdQsP|4S8B-?~RKqF4ns{l4`uw8;NRJ6dLGwxibX+{=Jn` zC0-1O@A|hWi}p6aGlH*xx6|RXCR& z>t`(O6I_!#NqJX!Ulb}@GCM>a)4f0~8#}OtYMD18Eu*BaWUX6KUSXle`TFXP)ccYO z0?pSr{u9BS12j*2cZ07AjfUgPclQ?+Z&Pap;5oFi{eRgx(*+vmJjeN~MtfNkG5!q6 zfBET7;(Y*MFiZ8FT&(;U;2N;DQ*Rj{&x`D9GU|H|1|SCB)!t}&@NreE{5O7Wo)mhm zAiC-{bbu4a*7w*9g)JVat7E~Py!a;j5Y>{{d-Xap95IOxuCSP zw3>kN+KyLaoFmS$;Tso+B{@cq*N078QFO6*0|0#(34A;g1cGBRS|{}KInGxh;;F%Q z&iMu@Du-p~Z6nY^QOv<@&QbAZvW3`*C!5EXQV1^J$8a7er%nYs~O#lnUOsvjHPj zHn;lA;z#}s7|DJ6zYi&L5U846YyEeB%gj^*sK2#+9pYyx7v!m-37^NGT(qTN;$G&4VQrgX z_;`isA15*V-(K9cIwddYtGt1S=eTH^I^@TThl_!Maj}t8GH}6;h-$ zQc_YD@p>jjzo*kiu8Up_{LzeczbCok){lGAhG4$4rtPB#o8_N!c%J}ABV&OiG9izu zqjS|~DDe)W75uMzoaDaUxEP=jp0rN@@*Z36M>G5|!3zAu z`+5RpLo7kFIf6bx4S>EW^STl~`XJzy3bCgq+Fq!W)O_yldjnpzJsf#~=0x}C!V0tV z-ss1PMmNM$$M%Jc-nbtH4pQ`wvD*75EZO#9Lcr=G%+SEs12VRMg=v8OZqsOLa-`j1sq(+6^0%tCIkhx# zu}>^cnB@1Pm-{!sO_3`Al)%aroMY3V+eC!KJX()uu?{AGaN5+&mORf2^_=f)rd|Q_ z(tEZOev46v8j85=T4V}%&X%h+o&H>|0h~0J)F*50yi?QD35kj1Dx#eL2s&5=dJee0 zpqllIM}L$m$d@Gi91E1hNdyG+zlCtvE>R#wZlRWy_PO$V-&WXn*_mKYPKq_p8~E$_ zMOnn$cEsSag764{n&$iHz93vyvoHJOS(;4_hEUUmrKK}4dx@CcLw5)*Y}7t9JHAA6o%dwtaTFi362nPu>#|H3QN2;uS?mGFp0dj zLU`f{PfdODrGo@rd~sD>#v@+y(XpnZxq%`nCx1JhJ$`mAfb^Ndz<+&2=2wnQOu$7s z83~DyrWuVSn=&!V**+eyZ_qAMy1Z&;J*r0QmoQWv9b2H4i=SV;r3lMZvR=Sy`*1mR zarVKT)Oi3_tE8#lq_pgOJ`Dlo%T9wk841(iCtre_<(hOf+zjmwHWn{)73=399s!Q` zXoj{jcWbI~?0BDDv~6wQTTvDFmzPT?B`4>%wP9jmnKI!ap1#lfFDy`$FeyHqNq3Y@ zHC(K#R6Lw|r``*s`o zz`!sREq|#=KcDBv;DzgnI2`|VIAb#}!$FgH3t_;?~4$a*_t!@|!lg#CZ$FVBUYfRcosFgKXA@b2G*@uTG z-`)s(u|{$NDxPtV^%DKATm~w7k;I*8!RsmXLUOL5C-D(ZX?z>e9#U(X5Txm>xFA3&PD#KT^0PGmb7)Sg|C0 z@k`hKl^KceF|BO+1#-*nNp#dykH>zqW!e~u%>~K1b0Y+TW|=jA-FpM65QSUZN4M#JLkT4&%O7(G5FDp9s|~1 zt5(&lS+i;z2xz}$+$Q+t=yPLWGw$}20XrtAIcDJ<_h#Eu0zw+ps4f_s!;7$mGdVUA zuQ^Cd|-+Evr(SOSgMwq_e3#TXJ5n#K4Ud{}jU_uI!s`#0n_cLjz(G(K`OOB{h64}ZLYY1SR z{t^x8{yd4QCSPk&Ywec|97(O?6?&t`esOFJIfx|G-|w1{Pmn}}kVtPyocED$TQ5sP z%}rVSbZRyFv6Zrf?MuAaXyr(fza$)zk&V8`W-I?rtDL?1XC@Cbs_1aOXZxd$3_C-> zWm)Wi(XHo>XX=hV&aR4PDh~Q_<>9cRRNQdTh)h#WP0a@JqkS?X&sv4Dn~C;3 zpz@4tw(o~3<|l|Q%zvXp=2szBb8}6!n8HV+rJNk?T9(AHo&T7wrUjn?k;J!Inyzg&kL56g8+dcO^H z?=3Wz3!6Rdlase-YNMy$NFUXM*eWQ=Nd!I-tKB^yVO(8;mr6|Tr2`BL9phga7TzY; ze@hav@LDmLmgv9R^Fy+L1W{V~S*u3F;*b@w$FkScgTUAP6q_%yuE zFKsq5UQuzTUXW}09&?hmh!E92dq&HQO&RSZ=4A-6PvgI4JlPO=K1mOIlLHfA5}h9I zy%^+uKT@pXJe4v({FG~)h-mW!TRKNBao&3>qZm>nj zW8#)}(mOX=#S$ZhepG(5?OA@fzwZo4xcsP12u1|1-$e?*w`?$QA9xlx_C$@=_$>Ca zjLJowi~=OrTip~$x2EzZeiCP23F@q=Y@fus+$}+8V=<3U`|r9Thm8U!-qhYqXOjDi ze#5oOVsFA~jMp4;teQ>D^{YLo!5;QN^a`EnsL$D}m%J@#S?KNc32lgmjT;$Ux$bM7 zEdu%afAJ^+znON8(H4hjkcGWHcy3L{z&lHY?Qo++(=1F|$ljM-t^Q-=P>LXH%-emp zoQKdF3(>@UXR561v8}SXeOX??epm|I~8_YnOcm;-zzelzhtPAnJ8 zJ9eYPo78G}Os*&~qF`|?Sd7cpTng_`7jDE$;#8|z0`_Sh`+8t{pNb%ADZfVYCIF5N zFS9w=g0?B}0p3^EIcI)D6La758P0Q5W*m-@}F_M2q znOUpd4}`Xmg;aRL=Wc`4yLVk&&C4|30A91Yuz6S51I%DXgat&Oxi5NE&9GIht*llA zw_Wu{|5V|=@82!9Y)ov4RVigoAkmPJ!Sn_?p!5u}gT*R4&k`8%fJ=2+2pUIgMte8Z zc>@37j~nCS&N1CVGo8CZ+eS^>nX~MAK=IeW3&C-j@ShysHp&qu`@vO?B1TMvjJ7rk zBQF@7Yb0%1T>My8@sfVt{q%4nWB97q#?Z*x{w>O#7-7~E@Y(M6k*HmT?!iJh*N;3d zqaKpl!S;ynOj1PzXvbl!leK1(%!>2J~OB;4>R2<#w zb$n8bzhw-ZLcK2Is>XY}XxNIkN&d|Zj!C|6xrE5s-3O}KSY^W|Eef)-x?e8p9}>mK ziCAGU+|#)-r$RrU7Mw6P1z&4XA$NI?WIMGRfj7F7B#GK49;*Z}A#PahDP6LgfLu;_Qj1xSG;xb69?$=IorlUZ;BoMhn}*^u3&9oKCE!7P(Ffj2H8V&1GIu z`Gu!xEGbyL<`MN;_PF%BL3UzzoHI$M!NR~Q`cwu2{rc+29%Wp{y#M=j@axK+T(eqY zK#+x-VYd>X$l)|#xcCN`Z1s;meo7M6k-mCebRS|{TC-wjJtyh!Nsg@?~Iv z{PwAR(a@G=AKGjn2*9_5x!o?}BVdu?Xu3%XeE2pAU6-fq38up~WUCFrhT>js_I|>a zxdcWnT6R}N;SoDtn**_ud020iPK}z=LV$>+nX&CRze)b|RuPmvvZx%Vd(}Y(T%=V1 z#D5KWtd&%YzAqw%x~y734sX@N_?JRqm*aXv@TS?EMyX{30=QolzX05w@2&8)0dfC9 zrTLpy{fD%kwtgb*;v3p6m1n$TlPewY$uqn0I&_|&F!?Mz>^B3p9YIZ-+DB&!JM(o& zS_=M1Rz}`f3VajVPxe)d?@qB`H0N)B;^PxP?y=#gthgzH;d&eKCK;fB?8elm&X4 z8x3db6Rbmn7(>QwxOQ-?VS`!%tqIipbSUpQ{Cr)|H(z`GCdkD)8!< zfnh}!-jrLjbL%uNYhL_V7#3^Pj3qqDC0qM32>hs$g_3|e7Er)kEZy{!Z|+-+2F_G# z1!zA8qya#n!(dznk;R5;=E*KMi(LG;EQr{6JDlb3gPvk%M85m`Zc@= z8+`Nq`O@xT1gz3(sJmFFGR46g;NUqjJSVN3(g1Wp`GFFm1I18BhQ0qo3xFr#tMIXh zl9QdI>#iO7x%+gFwfTv_nn&62NPla64ku$&lK!~Sj3ucRCC0xhaO~#+?z?dP>psJ4 zpn}?XUF~~cE&WgHqz{nl(fbZ3GLxqR>d>yD1!VfcZ_q@66paovGPH+X%XO2`GH2Xzmu4^x=sKpWH@SX} zgHDAWx=Ho5jybPHu*c2Ai9vDY1y?dCo#&b9C{l`#m_*JH8_sE9x>g70#Ys7JLj1z9dq9jmxmxh|Sp?C-Ra^{U{!*hfrvksWUk7*kHb?iO0UIds z?nhjjFkVg?W=2tHZ+y(xD6Dgn-J`A}Z{ePwL3t*<e!Tp6n78ny_xR^(B!Jmrno@%8l2zn>y2{u} zk;etqZG&%r^NKHD*%Dpni-fq0UH8N(bU#}fzguDV1)qC~GUP^dv-HCNB#aLz@49Pt zNK3fJexSN*W2~6ni}BVzOm444{oxAM0as9V@7I^@>sj`mO|^JWiB)UWoB_#5tpT7f zq7h4Ax|fFj?;qeLSQMa%JV99nB+(bft9v0AuN`P`waBw^Fk}JH^hCF0r)WXkbYGxl zisD^wZi2YoTF8K{jD>~Z<3dO1*j)Ztj`IK-yKJ;z`hbCJ7nV}nFIrge`-@8-O)*6KA11xkH_n3&y)P6 z7{hGw4?e6l@4?4?jy7oY<@DD){5XQRVYIM5;`5ZC80*k41K5L1SbtW}`N1y(+&71sjAneqqG5v>{<@;~g~0!; zAbWutbi~Fux%;?N%;sA4rK7m9Gr1cg{pk3#zOBt&Q~ihXzT4{~nKIMM6|EanrONjY ze{dpdMZ-h@a79)^IUSlc%BJuILge4_+Z$v2UsVTNrxBaq+2 zgwCH~A~8;J2j|}@186kWQA^9YkRbDb;{u)dEyx5NU4?#9suJUZr2YEz7I?n*Mq@4TKL6cF9dg+6$9?( zQ&(RzGOEeDmbt_Su437iXoh4g5bASmO}gJ_sI@M<9`*~c%gQ`JuVt|IW)idaFNx~a z-oNVur)Tq)!>0b}9z*Hr7@|Jyb3nQmUw*Wp?Otrhd=rKunTHpwL4@IFjDK<^{y8TM z{8B!30Fo4qX6*pc?neU}BStvrsgS+9=|1TZdwXsp5V*vkKVXR#2OyL|1M?Jm#-}({ z9Z2`hR}q@n-h32BGYt(ATU*;S&fE4!6&u2~>0{eo5@RS-Mk-P44el{g#(@{;4|jbo zpm8pz4LH+Hew5KL&fbB)Jl_8#4`)dc*OUN#!IFzhHVWIh{gq$LPyg&OiY7{HA&$7X zI9=6M>y-d3Ca!+RIEDA_z?TEj>7XJdnmYwHtfM&G{s!7-`z916%PJ28NG+s?230pE z1YeH0CWkO03I_pfhOnnH)3Z=QmaMpn7Zx_=CxdUCfJzOM5Yk9o_U>X`897L+)G(yq zKp4n%BwYSl?<==q+aUZ)y)XBl>V4`mSzr4in$X$H%gT{nqqD#D%(}40|O&avnT{dH_3s* zx*BoVx@vfLe;ArP_lv8SFJF?fHwo zD(O2_YX5R?Ps)#1)cqtlVq4v2&(miArQN!MPNghfmAymqBmx^pT3tKq2@50)b@J{F zn%uFen?N+wQGt*2QII!M2|w6F>7AXv^jnc5n(wdsOIHQ@G9x@|P z*X^+10<23A{EXOzhhTT|fe|;D0tP9*@x%e#Ut$06?k@lsT(M8W>6n382m3c>Yhf-6 z@GAcqbAm{CfP}bAUtG)&=*{1-h3NQCl5^zqC;f_TGml%sS&_YSOlV2%*Cg-P)PBsL zG(Z~hWSX={!yj`sTPBJ86G6q`hiU7_6p98%cF|};%dX?L<|&rxnpo*dNo-wtXcFEW zNGG}|s9X3{`LZg3rF)*~HzE(8a|Hw=yJO(sid(-m^bZR~!5Dgk2Vh7pLcq#Kq72N` zdIAv`!8ADO5Xinl=Ne!|0Gi6hCm@~Yq&`GtG_%kk(JY$-RK-!4f6xz0AMUw5vZpFy zEq~pCw13=z-|*`JBT@+u_-dqlT7#Cpb$nEm;SH@@?kBSG7220>o70FAL5MW8kzC{; z`S0H={8udj-cUX9cVZE~2K$#hBl7C-ueI}Tg?|8Tzjycr(gKS7k=V|oj#2<7hUZY{ za@L*%>$<%tn#gjM#12L}rP<8}{&y5Eb$3G5F5p-4|CCz}fc{mtCpumItLP{?`5!Vq zIz$p8avsw+RKU!H?-~k0Qp|{O24GVIHh(!aX#ilU;8PRtc3M+b0vbs)S~{T+oj|W^ z9LTS&x2`M;p>gyaP^he^ul}wFZ+Y~a34ZkV2K^;bVEre6@i5C2i6K2vz@9%9%IduF z@P`o~GCbjGx+$rB0=`N$?I~?3{hC#CUMi(7kdxc4ay`DhxQqqqrfwWl1)48`dm#7i z4;aAv+af;ud;N70^#7Gb0Gb(XU)%+!2f%~Xj$X?2#2cFz7Zyq?Dn_de8d%Jk|2jL8W(tFuX!PUrL?E>4dNLiajY_e2gQI0lLl5;3ezM%*xwE;0$}ZqJdL zuJH@sId9%k=+6{EEqEcKD}u{M@<(3O!UusYvVU;*{ELSA%=RA=qCgaN1pv2`L=9zM za{&3>t)@`RhCnpTpZ>kF+ZPT%FHAkP?H&;oDQ)d+T-5WbI2yLi?YzcM6;?41mx_V zzb(X~+2^kd@%$exM2;J*sih_L_pT$aBOrcAK6@`M6UM;CfGt$=S!b`Oy;ob;FlIn+ z%$Prw@+1n-peCUImV;U%0y$^~_+L4H_2uI0zo5?+AaMVuYP09!UH1aviVLcSB|^ZX zIej{giUF=38Te9~S>!f&R+Qz?o)AP6oZrj6ks2|);lOCN*z9X=ZrNs8N!D?i z|Gtoa2`cToE+_xGkh1^LLfG4Sf!>7BloX1*uYlHpHHVbTx{Pc*CK?hJ-p3M+=xuPD zIXBj;t!fyv;DhznwH!Mt*pGHK*tmqe{()>orH6j383g|dRCWkPEk8zEiRC&(fr2Gh< zO8rEcC!s(QrLxiJ`}+U%(81MJo}W{m8mi365)x8jnAl=t;RNSJ!-T(_t;C+Ds%l$E zYM7HfJQIFU5cvWl5*7r2{|S3Z_f2}L!69k?D^hiud93t_z>ja9lS9wUfS!xzid)On z8~(G(GIS57W--w4zzF_tnq< zAIh1pEu3^YU4}X~>9aysJz<5s%T!0uJR0r0hy#dS-I-Ozex!jve$3GPP!xAtV$!n_J`7(u(rAJ1cl>r7EJ z=lu#kbv1l%%hM&@@2z5d_0$Y>=;8o>-s22m$$X;QkhQJ1cYM@=xFx%+GR;y&acnJjQL+J(J?Pe81( z%N{3MQT#FkpU+QIPvrCf@g!;`1H~aw#hg3FGjXaWp=N#-)Y&U;-POJB9AOPHb|9p?qoApsOo@FHWev&PtS}m0TWk+_U?N>d$y{G%cW#7qI z{BC>DHinnttx!oy0|Le~h9Wt+8~`*TRP?zNX#4oD``&{ppv%zo=3vPn>7wmb%deGz zn9R9a$^@lG40=TGXBGC;G_)mDyikC|20CQ%#Rg-3XI(14do_cQ?#_a}2Qr%Sl{TU~ zzvt00X>-Y1RBEf}ybUe9v42Ch7xYUU_eooJx!XRv+je+wr#dziS7yCon}a`V+`erO zlc=v>Q%6=QnIQQQntD?4M&mNFz91d0@`5kVdNeX3JeB=g<No)kPRik@kfuS6VIBC@~i~y&RA-J#1m9O<_J^M)^dQ9UT?hj+m!ZRzz6>&6$ z>&m#}o zN#(aHIE4e6A3t++yEjR3>!G6YX<5A!8;B2}UW4xD*T0Kc{PxXpAl}d2Rp#R(<(V4t zsl2e2$OmNg&{3|k+&fwG+`Glpb_X8tt6LvK+7^BI)B>)aDotTmrKAZO40S~(+Y!DW z58D%&JuA+tIo(&DJr=Auy?4HoysnQW{wXv0cLe$aDE|i@oEgpW?2d`uCWO}t-|bxx zkbBzF7Eh%NuZ}>Zp=K&=Er8C$bA_csbXtHo3fcCM)&GV27Nj>sD zmxI{KfnUCS`S!yHY(H^_&Zf_}fJS%M#%4MpA&f)Vvz44C{HXMH#AQQJ)}T4BlWqXE zf*%Lk7i*z)tXC0avhuWyTI!GY3wJKBLSlVT0lejnSL@2*24QSyJ3N)-nO1&4$HZzK zaKSu15)!`GO!n4=Znqe89^{<{%qX#E@j{-UqE)%q0d@c+|4C? z+yvHoGYDVPTFLS&y*U>0_pxL!Wr!El%7>4zr(V^<9j7Q58K(lSHcu4<&IM7 z_p^PHmDHKt2w>Ap*W$*Y>6Vb{mRyWW ztp2d8(tgas&LN?r!^+0isr*`Gc;y}8S9q7{Ny?ql`?tLE*w2fi`Y_aRIH%8W{k>gM zJW&ppHE%3R$*`?5JjJNC_7uCN5cmSvm z>Qu`*A3opJ#Ff}rkf%}|ChgbqOVMk`!)cc4^0&g zQH+dj-#<5ia;gH@;kbp{Q%2X%9RLMVHGX~IYPV}=2mPY5maN6*eL8*+1Hpm_NmCU6 z^56p^e5#KU=F-F~D=QS(vd{2#=MveYqcq~<2aukSM|*8I;id9{6DS^ExH^SCF00VR zud(GJHGB`X8>HExR`snSG0J40J0mfPqDP``$Ybb|cm339+-8L9`sik<%WFSHUH^5$ z(HiEdn77GG_}NmiJ|EzBYRgFPs_&lu5F=uy7k83!QztexOZC@eDPxhTrX0ew)qyvc ziewTk+;7YOp&SH^;JOI`5Z+xjk%v}YXS00N`DGdckr02`06yICa)2VIGYz7;0!kqTu<5skJ5f_HS zBKZoJG4BY$ckkvYzrA4Hn5kqwxkC84X0hz7Y7%u&tjTVuci@Q3nA>fOYOfigqKK9Y zYOx@dvg4Ps$`9(cl#-hbpMJJavmddNTXOMTf0LLxhUR+8$D&l7Qc*iYCkG0EUOTeS ztA-M{a{-mFCVH(~0C-m$%LHu7)Jle)lMJB#;dfZ1%Ovs6`^X^33W|(;F}&^GJMgV@ zxdVN{Thmz|?k$CrHEf0YpW4rE&-=_jv;Y8Q^nbIZIx}ffn(k+Xl7`l%loi!D{wj$@e2-ZjBg z+{bE@mEdu$e6d?P=KM;`0szWJ?3KT5XYQ*m02VFX30+KG8HM{WD|fF&7sZXUgA5wo z-&=O04PoL!AVpnBB}!9UR;bm*0Y;O+1>7t11IP@kUW&g=cl+0*H{VRa(wfT%e4YcA zCVp>eD(bi|4pC-p&3%s=Pm`MLOI9wuUIh{jZA8^NQN)ChOprghmcN|2@bW!T!Qjn( z8KYBaX>ztRGk|La2sZGiE{*^@^c+9@MK&(xI2$Sz+3_$!ya~4_KF{Q;{UUxIz<_=klCRW4J}9p)LLKKM+LF5*#{idz?#QEV^M9n5pdJ zEgq^3Ux0`=gPx*)wf|NMNj-{g$yb1h3;v+#RSYBSvtlFMsFC zCo3BYq~AQbQpILjfXX_hLPZN+;6OCJ%JBsSbp&iSSVw#7m_?|+6-ePzP@ui9K(nkQ z`1Gg?C^Eg7QAceJzNGb^q+`f!k}T?i?)sdqibvL!F2|KGBbzsQmSL&KzkaYT$7oQZ z`O#vh$3Gr`+se0P$pQ=8sj2LcZZnrMgsB#-HObTyu9@JTy`-@54`He26=1fcIwJkNnVSGY4l?6{AdOkd!CcA|$2yX}-P6+wZx1`Adx5dEZH3BK|B5P{C={ zfcYi=+JXm+z;K2E6rL9h)%X~wplm$^k`f{J_59mZzzi2BoMgO32mLNLK8&6j0{7BD zMBgTw0A!H;^Nz3iD!Ace6}A}Fa4SWozF6I8;k=ok`^iq0q)MWfZXY&+ zO-f6HOS%J%{SfRmd0}A`>YADie#&TPo}#$*4H(uT9a#nP?8$1Doo8Q7Q8f9Xz)VX? z$4j(icoQLY4#NWaemLL7mcF3AW?1H#PeAF<1W?@P9Kfeh?vacy38yCUGEz>pc)A@F zof_5A#4foA$80Y(URs5wDVSSWt$ui~EL+i0DH$P(pjiY$lfo(dS=sJL>;Zy3b`WrD zTL$oituDN|5HKQ4Fk$mqNS1! zqVJQeDKC7m2Q$EcbUVx~S+_yNGBsdwvxqBy?A4jcdwv3p*aGyqCSz*Ld4AN}tB-U~ z9+toO5d(oZ_%cg}p|l#;WPSZYVe#k_cY+qZHu8p>cM@!3bh@tgBjGiEa7&S7d6Qf$ zxDt)ND?GMvslk)7nVcj@en_ZItjnWvN>o_u6;}C+v4tYnUtBy|Y^N->PsFtDo(dr` zhO=6gs=yh2P)|Kwd2M7|tRUS_O5vKr_Sc{81Ayt;Zf&;m{?D~c5-J!h#WI5=*tp0? zGe2%5{hUwOey;N`n1#Bl@(u!tH8y_)Sj*pjM3n&gm6j}Gff2x+Oo)wf zE*A&OeN=R^GDxBjV?cM}cpd?P)DkqP2YrWhk4VwyfZ2W}{a%yXalZLi&cB!(4OrII zP!;x1cfog>y2Is^pw*St5y5O^B;*rW2|`HsPXFUHx1&wq3u-Q~UNK7%kID9=19$f$ z#y<7PK?>f-pKX&AAXF@D?L*gW2L_5yHx#;oW{JKiXQ!S8udM|6uZ%IV)hm^*7J6t$ z4Off$$%{5mEtS;=fq^k4bL{yoR{Y$+CW+PGi6GCu;An2R)3X2Gx|n+g2L|~l*y|q; zVG1Vq4i0vIV@}6al-w2bc0MZ}mN5%{F6O`w0<0_6hy5@l+wMK!p8m9~lmDV+0Z&CD z^b9u&#TOdLjSY~JYVWG1K@_0WZYjoGc>nU*o{cL z+eJHs37GnU%TqCI9he`%EiD@=!QMPhJqUxXfQ!07@Mo|V%#4*!lH54x6myqgfoidV&J{wHWzIM*iDU5{qLbK@MW_Aq80z)KvYmBl3J^(!f*{8KR%iX@w&@U=fh+fum>zKG zLBK>|X^&N4w(0O4%Ds#xfDh~e!*1&zVK$k~3#buep|x$ZU|h}5#-C#Qr6MWay|rZ< zL2D(u{7(CXx~pn?5TIn5fht)jI_AOk{&#%ZsRsrP92bpqyr#m^bb#2ReQ;yE*SfOJoWH~R38IN=`LuocOrYF* z5*^{QAF*7E?agl_F4)hAQ8cwAt+=0%uRRJ+SUJ|It>blT;V8PQH?3|%n_BNnl9E3x z2nH}}-W^aB)3_%h!@0KL9bxGL^V`K}=M#IVKxh5!^|49yxF~xkvzw&8!p}G>RKO&= zhcFd4G84Hm*i&C?*6kd;^aZPdhA<14fR`uUd-x^Mgv!;w-Adrs5;~w#%Wi!5^3Oen z(+|(84-Y~nXRk6Y9H}$3C;2NU55`L`ZYGai>P7?aDn(r<`DD^PXYP48(L7-w7{q-9 zHjsqmmv-$L7nJ~AKLY7Y_S?5AZkw~n>B3Q&rPg*;5MYg&{CkqBLqd$Xn&>EKxjvJa z{dEqQ9{Y=7{UX8^0Vm!fD=R|F7xc`Gj|3ldg=4)fqkzoQ1&BM%}Sh0$1zv7^y`b=K%&XnY5(GN zT_OC7>@m#%xb@l8F&X0|p2>YWCB}Y3575k>_7awBrJplNpht13sXpqqo0HGjfv(FX z!2gqAl*3mkQ*ja#IXZe`S{Enr1+Ol1br;Nz-5*v7=<@g39z2-dI^$z4bN1{LISRzo^ga*c7Dxos z{r>rH3TrKP6<*-Ho#S0st3CPVnVy8+i=MsbX{GaLx)|}>Nbz>LePz7dTO;9LB4N6) zfs|UA1@Gu`ziUXRwCr-6=Mn#zpqh z)!*l=8rGxnbH(wj8@_(DV+8a0av1gvI3&dA0FiQ4=m(J#2~CNVXH@fe8rs{sCqc8 zDFEr=WdmzI242~Y?k=&t^~)i2Wq2EuoQ&b?9V2CyG?UDb>)wz-2mZp4o9x+rT5$>p zhO8bkfHOqhUq(jH6!MX>LZKu@bUC_;>iH^yOQ_R?Ah_TwitFG)WEnZc0Y~)UsH{F( zT4VM7y;2eoFBqTDM^UL)ppiCni6SE0(QY&4XWh)>y+*A;Vge$V#v`urh zS10b!R!%5pS1cHKI}2^zcRtAE$Y|t)1Nj#axr!B*`enNvN*}VmM4al>L}pL7DF6{t zMlB6q)lC?(Rv+5!P^;CQVIBwU?oAvUw%x4z=kab=2A{XsiE2DsxpNvbkdw)UO2qM0 zc(FESkbI%$a5yYhv0Z&SExa};d0hOXv>xE>UHAN;u)*bC)jzl6&kysd2r`iKLA=~Q zZL0kJz2Qtg0St!$jCOUslAhtf^HEAl&qUxxh#f2h8~%WZ8Pc2d_HE$Dj}KFQa}vU` z4W~-@=PH8SkyfoZTJLhLR7zjse84J;ES#{VW9e#PI&a_>a+KPdShw_j)~o;LmaP(-N)u zUe(ZGag0mRXTYMHYg-qEhvQ z!qj#HJJ`c6=xHNx!8r3dZKVOpRTiRt^D7b`T&nIhgShE0!i3ot?2N@Panz&pBj0_J zOC^k;i8~B0xpw(v>64|)nDtT-*q|U{BNCs@90?3|3T#^1A9AK_IV;ld6eWx=*;uqX zX-(Svx9X z&M}Y6_M3t)Jr{*jn(y!4AY;b)^F41k*HQzX%h8?DEn1c-P6r9-JTD^9`bI|ra9pD7 z#NF3R2ChTv(mngW|C0@zVFb%zN4HB=+-x?g@>P-JX0*W2%$jRRbc0&%dWL-tCf1(& zR{588RH&F&#k`f37yep}xr?y537U5OfqysSijnF8VHgub`NTdh9$(0((rj8cHd!L8 zba{Rvv-2DSk-{Cx_6g*|3Eq+Fx7Pyi$fq`&;p&~ntZ)7f*Pl#h@=gc zXQO$vPvS;&hYurPJm)mfX(Il)9uh$qBoMHX-!(Gopt8B+|M3!?zR(^=J@y8)zoY~5 zta1GD1T8}p{~YRp{raql(8c-DVoM|2o}`BoIMr^0DjV9Dv(K={9U?J>6LU8z zN~~wI=u^gv!}>HBoKJ1324&M_lFMIVlu^Z%^(JLx#9&_nc6p*e`!K%n14%;}p2|&o z^5ZxcEn~hn-5K4HY|-)k)0Q1>HzM0IJ_%cVesx-3eag7u{bFM5U(YMsIriYG*9h*q zSu2D4sy{o$tToFJQ^pHp4*E1)_(XBnhxDGY|9k|tMA`&hWspdl&*x^4C@o9JGZ|hN z{~*2hg9}3`z#~HPgi3X*`zjEpQ~$n|U*EPm)Gn+YX{edI3BFPS2&&&wz#o`MkS-}b z9uV~qL7ZyTrzJ&q?toPZy=;*8?OF;6{tv5`eshN}u~#0_1799}F{HR$U{biXXw0sw z>Lv!2m>r|U#mUOgRsT}lbrTgrYdoiI?@o`KrhH9k(NUCZ|0s^aj^X2TRVmkP63|mB z!6-G2Il5nAb7j$)X$Wb;u+fn?7WZX3TaCxDn$<ohia8?sXCqRrJhw01?QdQ}bOPJ?_j zMA$!CnKKNuR<_rVx;x8>upitS`7E*~`LtwZ5S0a-`5d`2$Uu5BCV@JOyW8eySB1o% zhokWD$LeZGe}BKPRe4^th+i>kwpCi%?a7IYCS~PX4fC&z8m7vXiH^bI`cv4pjSmD* zS*zp)o{@+{zwUeCXglS{d*kc(W7B?qdv8EPC<94kTz~VY&o8CB#|0$sM-J2I!L!hB z8B;?oA_yijA-kKl`9m3FJR8@SY`semPAF{B=5=r{@Ol@FOS5gLE=8EPLG7$<_f)z9 zohUs)<2iME!a{ht`#C)^hXH9eN$HDdh6mFPCr}u8kgGBFhvfdVyP@5BDU3)V*cUR~ zoR<-_FNdh4E8dyZeR4prvK^sHd^zSq&xZ^uD8MMyB`atSdVYL5M4ACWP$V@%)yHd8 znjF{IE^WUmn7NU93i*-2K_01}%@!JqyRF&tUN;RknR3;)kHlVbQN6D6BlEvr36`S7_q0g(Y66yQ zCC2>H+-;{xQ@R_N4kf^k;q&+RAOw;Tcx`@4WC44tHrK2F3BTSyASc0d2sLwi=0pYx zwUU&h&{Z}J_FFe~SRU}ccQES2Aa^Hv{_z*aLw6n1cl-4Avm}u}u>;;{=EwAD*yWgd zkrXj*5P;Ow)SOTINYWyrdk8XLKHoT#yBq1uK#jRU9=Ap#<_OIiM;TX)>W*$sbTKM| zuxNb7K9lXDB0 zN=dL1p}l2PV6x9Ia|J5g>kkmgb1j2rt-ca(vL$8mz|Rx)T1O#6H**bAnCIL50n3AB zB@^{BcV>eKJswDWDM&JMmI0d93mBi;+snn+_%p3S8MUiVcpriHfPpi`t>*!H$>{z4 z0ORIxJXC}#1G%1gp$tUJLo=s8x9hhL`-}ioy?!-F^5-TeJ-^2q?8LdNuPb|5WSa)& zoDt0Yr-OMDR~@nk&V*zj+jY+*%zuuIhSfCa@rimI!LCA2mxLKy*tXsY`8W9fqS(5y z3VqGWO%saJzU;Jz-MAbXZeJnSntq%vJzZPVWY} z*xBD2+zv#6px4B;uFvyFdKwss0)vLvNb(3}G(urzi!O|kNR_l>wsyNUhP30Q^nHmK zssqhSuZf*}YiCqQAm0yJ!Mb_74;UC@6KdS^yt=o^OgUK#T*d~U-&CG+_k~Z1C(H4v zRC&4F)bBmjk8XrjeIPdf{E4p0T(zn$n}7C6K}gC3Tdu9wS)Yf<(hWJKTy!`HRgq01Y z=OPe%uh$T6T`N9Gp`_Joc}L%&q{{L4e8U_#?J-|BoN+lqnuVa4ET`U{4s|8eV{pS4 zn^=@3wDZrjl3~o7(*Vesq%H(4jPs6i zn{h~p7!R<-3*fI-l}yhlA$?i08DE`145D7`S^U%g|Mp=~76AO`ztY(MG&1hE zf2GeXkRDfQ^J0V2hn6RfQCk*rS<6XI_Mw_T%7oSGKK5FRqyuTUZ>orT>LtvdO83XyPiY--<2n%o0jD zIpwt1lV`q}3D~J1Ny(n#<>lq^@8Xy8)1OHKJoYTW3@|->NXN?hZOtR{_n>FrgBBXq z3RU#sF=;Ck&|byu{NVJVTA-zhSY50chfJ!7q0~zUg}IBK&mXO|?)E85?J^YX0k<2`v50~HzBG-17)V17YlC00z`xknBx`2UJnD>f zaht0lIfp#;2oYbss&>rPR)q#>$ILZ7IDLA62WcsWt($nF{> zsgn&x6CWVTyp{>9D#pR;za3tHR8~)eE8NIvBgRw$v8LU*Z~IP4)U8jz5?eBEL`VY) zv)tj2(Rqs^df`uX%Fm*u>cJI3Mb^#Curb$2lw_^bS*w;!8 zKMN#?xjx;}VsT(64mY%tfrK9~1Dj%#*r3 zh-jT4^F#3X3HHVHWsdp?-FRev#9Zp6L{u0bmIylMnodyPA6kH6{va{Wot`b~aF>mr zf}M{(({YF(Bl?T77(OJ&Db$b-XL5HQ!;0wkaGiek0(C zwB8Z2j*U1S zVK`FG&gB!442+D2_mk`S`ALCs_dN@q|BJG>fQqu+-iH+t1Ow?t8Kg_P!JxZ46p(JD zQ$iXXq@-c!6zN8!Q@V2~LAv|9$M@)a&inhXZ=JK2%BTbLJkP!J+SlHDZu7#ML3Fyr z05#d`%0+2qvci(M;cT5gl!ON>EiLV2=Nra|*J|Cx<)uQYk<7H~Mxj|frBuw@vv{ww zAJo#HSZ{APoHJR~?Y3#d_3E4zJa*mtlLZKP-_mT=Y%u+tESD+uWCA^9S0o_l2c>Kq?0D?QE~1D_~oh+{VY z!nZ1)fMAPps5$jduFN0(3+>_!3pWPcudO>4*`gu$NQ8N&j%I;!Q9#dBe919)AwBkNOoY zt7?usxt^^B7+nqugE8pMA4S^k;xoOPuClEH58->R5_LJ5j3JK1XZO=RjZ`H?#m9qi zu=7v8P?KXs?#gi`I;F#TxeFJF?k)4NqE`EUfdDcA*QWk{jQAx9=)k8>JK-gU#cJT~ zQcuG|LX^%mg;&6;EN4{YqDZjW363y^RZ%Rj{=}h9REQL)91jNPfv`$4Fy=>pD?6V` z9Xi;yL^!&Tj`1qHxL|l`;}Lv>(hF{r0@IlaO8WCC|MenO{$XmznmQ5f z?{Fhg?in`WEhHqH!*vyv|JJnzLS$bmk4dVzTzYEI8Xp< zKjkDs?Gy~(5_uLAh)*$3>VuWSVKNDv&p*aSkns3`C3ZyERMPSzL@o$cn0GBExK1m= z*ZhCn0-4M&l&=IhePzQa=U|jm3c-n8cs%1+g+)ga4I!3^dG&i;Yu)n1V3pcFJ&6`J zz2a|9eBneyVnhfz=)o2iJta>e`S|+Z6U2Xtg*WmQBIYkC1b?u2{sbd~=iQOwJI2#R z?rPV(l|XZ4Za9GmTa?uazjB9%aVfV}^b4N%7>KkDWy`&s4FUT+ z;;$RB|*T0vHrhCID zs=MWZ=_aDzaD8>Y0EfeMUR7xVaj2vQSG1|ra^uex^9TLXj>%uK;DD<1QJv@2=1qV= zTF9w=^N6t$@-c4IjmW7Ip78*&wAeBl1m^xy`)a%f7!yd#*q@*CFVT3+2ZECD%{zZQ z)hhOP;Wn@@NJWME;&4ol#d4Bexj>y|$`I^n{dRV^VY^*_OqVvWXJQJy07fVJEkdDN zT3Q}Iefm%)p8YwP8uc9vZn4mhBH82z`yCJ_0rC@wiL45-_UBjc;_bn5hdU1*^hF*P z^m2Gzxm%2XeqL@plof_`2^I;z!TwNS04Ca-g)J;BXlw!~e^CC3cu*l&D>0#;$Zi@L zNdcZ)QMk9&WEril%W|~#y?u11Yy_B9bkdW=Hq;pLhzaC9I54!g`??I zzE@i7QD#UyD3j`jwlPvr+~S(H@y$Ch`Si$AsKa$heN#^GRG2iMl!z!;x89Yulkv%u zCsT@Gba%#Lw0jht3Oe}zj4uCBa;z0#Ta!ivIXP9)(!j=0-$`n$ZLlB-b_F)gz3C44 z8BsawdKVKDbA3)E%L5E=$Hc?SI!YbrdZ!tliJnH1S!c8G0<6%M471!+cVJ|`PsH9d zUShyv+((kXS?;L06Hazq*!iAo))}@)?WPhkGzs0>^Y`rL#0nt6E}Rk5)Sj$zSRYmx zQDfZZn0WLhV2LdDQaekUFyR>Mmk;r#N0>ND%RZ6c>4W^*FBIS=3on_7==||z_RiXB z<4ZdB^?Cq>=-sa)txp&m<|_akcs8TZv#-*+_#&c}a^$z3{4QMmu51kfL-qC^=7@ z$yl9|x*w$sYoQcki(S$5&hzh3qjsposI4cy+`hWHlJxA6GQ^oM1G@+xy2$DOm?+IA zQVI{oqm@NwfcEXxlsSl(cP2(6AWuHs^XY2)I9><3t{BFAzZbbS)OI@iE4{X0{(G)^ zhFxZ+c%0q}gNWz?{fi|amQl!b>1pM*>`;X#LYR*pxvr77db9@PO45+9n|xSjjz08D zxRVFDjc&a_Wgw}wz%;n5<1~{wX?C7w)Em!jyNFEYzVp0X_B5%*y74kAL%6dM?_&%3 zDT7`^UA)|QFb!Sg0&vZ{C-4a4pwRYkQYA=wj2q^QO3SJDz`3S^jmKu&xU`DGX_4;W z(G9AtKskb2;*`op?2S!$0HBfS7pElOGa3-MZdXI=&PIvbZD3oMipp!8*NRM?{ufhV3wP<242D_- zg3NGJ4dDXNyAuEKl$*@&Ah4l#AUEd<3AL5Tb$+uucXCiXEhPQ9RU@K<8x)x8&gJ=V zvV8GCaS6m?mYY@$vcHAuHxcIum~4|rT!lbp{zNI@))YJCgxR2Q#G=UpSZKLHrpOa1 zDXDHM*5GL_ww7)4o@ z3MqqXL0sMwT6baDvL&i%A+Qec0;~cy6WFV%cqA;I$PHMtD*0J$(d(g*s>}23Mh#p( z4i@DWnN$5b)mFJHoi^;}D&0v3_&2SA08ZF38+12H^!TD;^znX~QZ&RdwQKf6GusYo zp-~~(tOg?4jUGxQML48*RfGw8WwQe{xCqFC}LjUvu7~W1ZB@7AU^{Raa;@dYRCO zk@AfqrKq`c+`Rn>LA^y#=%%?^3p4XuG4GV(fwY+#kJk?gUCPR|tXWXR{_}+Azk)E7 zH-`V;9K>fF!pz{5a`+pO)W~2@MF)k9Hc;f+5ANCv)P~luLqCHd_!GhsKT^g@dSmP* z?kQzScdD?+(mm+H?1<<7GzR?!CfzrOFgN7TJ=7#~V%XonY&1;95IlLNLOmSLKbpaY zi7YZ+wmOK+k!w_K)JsH(gKmt;CZZUX=f%TpIlG$dCQEv1;nJze{#rhdw(A5UrkP(x zE#`9<1FHUp#8Rlta*9(ee2LqHCtg#_t*;@5MO;N3s?LEaN38aQpT|`*Psl7*^@rk> zmY*n3jV3nXn|nMJnsj%9<8p(dk8CP%9@?u)mmS4tc9_uOtWYwTnMVaDjfOjp5|?sX z%MvPLn~FG&&@q~osPhqNZM$poZF=G=C?A#12B(XzzIH<#(B}XE;<$mSXTPDa8)!?v z3YK>>26pRY3=33>o`||vVwPTy`}Rm{vG02d2tir6n=p*C4#k4zpSf4UX}0QjCo2Q) zeiMO~JT-)x|F*)2AOGu@J;EG^(*LL8K>+0S9NM12YOpa{nAWMJD4<}-#ltin-$4^O z2jqXmwgqC>X zT((R(g7YRBs41=O?r^S>q&_w+o3V;u5Lg58DUQY9eV#T=WA=x{POt8g$(Y!R;wPR^ z(Q@bII~EgaF|o>;QHP>pV#cHsj4aGr71Eoin6H-C%%SRFY*1KgZ>vZ+c_r1QM!t{9 zC;V=Kk7}*L-3G~>vn^5y*pP88{aS!;30CG3iSez6ThgGQysos9uz4#HNo+mbwjdtw0v#P zFJ}q@GbPqm?tcbUO@|15X-oVKdo-OQ+W~WUYSj{m`GF!N(=ItM$S$KyIm3K7MU|$P~7e8C?>upBP+RAIuDiJY4Fq;DKm*%F^rSDmPnztrZmudkJH}{Mgz~ zmYJ%To2fJ`m@Lkm?yp97F2&g~1t-B^B!;7{QGWarVZ zlBW%b+|{5ZZg8`_^o7_2j7d$qcXi3J9XX_WjAE)>gq07OXGh~82JZ}Mwk5E!u!bvJ zEp-&6zR4GFsA~0|xRO&o^=zX)G4Gaj=W#=7mW(Z{?plh%VYoECZ{)eh!FgGVTA0Am zeD~I)wo50c7xJ%C*S%PdSjk*g?qBS+zvpi^A54AFkii*R2QrOeOuvKyc_1X-(f!Y*LUk|7li@{HMKV($Gz-4So-23E zn1U0X`r~f4*V|;3@apzQ!V{mT+eLZ39Ks_2--zY?zooAqlnkR*KZ2zY>S(SXsbrex zysncR3f_Vc+P*U|-iErJH^lJq$WbsZeOCB`7<4yCN{}Bl#K04mkV8VAZVQMNuO?K% zfbxZLA3+j1>k0{c{;RL#W87rKdV6PQ=TVgJ^sK6dnku9LjOO@hCHk$wr&j5SNa=6j ziHqq_AlgYvM*-#Nk)ue1dE()ue0U)C{m_`{YAE|abnA}XL&ANywdM7)c4Ovu6I$Yp zg_ht@SDKRhXdj+E2cd(y{1OlIZyWh6?H48J_E+G;XjoBBP8XZ11Zngj$c$7>Z4LG% z6)~H8V}(JXLIPvBPV6~82cgo_+@5K{TIQ>JH)P^J;1bFpb-$ho_lD}pXJ=-@lX&hv zwLIddWUeqBAlTrtY`+$~LZ{GkMtX^Qs4_S(a)QjD{sk)*UbLcVebB1jqj!P5K34Re zd6qOFZvl5Y9PQQ@*{0BX2wPAKw?%X9$x5x>m!pyQg|$%(=ilpfo^FP%(z4Zj&0?p& zUWFMvH5nH!xH7-1>;45}vfK)t@%mfxkCelPMU*>ryvP)%mB^VMR`*i4@7|pyPLVPk zKCfOJ*_nB@8y*-s>2`5$kH65rE!3-Is9n48=)mhW`_|9l_YfHIlJ?!N1#WtNBkj6G zAyTpMr#W-C*6-fi6M4_GADb#|LfezXgHoQSVoQNF`Z5iq`N4mx3W;)$vpZ08-J(++`vs0)b$lSt3v(0^6 zs)CL+c%HT$tDB_i4vl z(N&-9??d#vlIs9Uvjf(EuJW2`^(Vb{LAICe?BC;H#JFu+R#uTxprSmiA2kkuDOJj> z6}2RV$qtX~e zMoTp_rpc%h{toZcu9;n4VP@^YVIlw50I)R;knXydUMqsOGVE z=wWlou*v=e9z4=XcKT_XyA$g@ll0wQIstAdbzq2H+w!E^WwIOgTz^tHnNu0FA-jMz zkI|A|eiNtJB)3+h=;Frn+st9f;SsY$xpb$ybm~Z=d&MGj(Rf0dpYKs* z_lQo9Am>A1uoU{+Qmt-Am4Kd7C+B+1ChcNfI&fF#N zpC;y?Y`3#Bvh;_CF?PBi5$_(NVk+6`Ra7F6uA_DCJxgFVEWE( z(=7}dTLmU)$!L*Iez;MQ?&aj_Ygbp^mEME^url%m-=aDl+e)I;M^a*t#5o|B9z;Y$ zs6i4h7~7vpEsLASQYkvFeZP4N)u^~CDWxM03VkPZeWBFKAZFB!|FxW_2ZY~aRFD)Z ze@*nvQM%_VQ8&s-K+-CYW@h)cT-z=^Y)L#k$#XTyNjW?W=&C{s>I0IdmLO~e0O)ZP zCC0EBwB5S^lA4#E0fbkJhfd2bvomW?o1r~I>bjlGjX^4|xB7il6i$bxNI|*da78lT zH$~Mle%;A0!D-7^_AwyTqU=btHMd{kztTK+>OLv6wU><0)Peyc{a~insh=`yeW9BZ z;agu(0lda&aC!WXqtz8dAY^wx4D3$J7&2%vAO}zj`as@YX-Hk#j@eG1f0fjda{93m z1Az~2iajkoW;DBMUoHHKPmE#M3XUbybbx~}B4*UTbA$ND&U&G@yfxh3>=pFyZXP!- z^O|Xge{#3^zTup@QRqnert5+y)|>FO(e98=Sd~#Fo!dyx^**H(PB;45UUWXeNtd(3 zl0d{K2P>vcLK*9;@{(nm*O+6mh1$MuHE&ydD20}>2$OcJ_4_r)+qrMTAg~K8)x3>P zGDKxllgr%CzuT*ul2x)?6skjgv5h@F{RK@nSui3Yo@-ISnqMUA@F{#Y7QP~)&8Sdk zQlw2yMG4Ow*q$HnEM0d|61+8i3W^x&j{jyen?R_npC+ydmbw*2P6_kVtK>z+^Ji=4 zpqcHlnPcK*X_Enlgjdsc50x+}wxctRSX- zQx{FImX{aG8lilQ{nZlqWp08l%O$J@nElqn#v7MGvnEGo1LE6!_a0mFh&+e+)XqQwz9R?UhL zJLVBC|IJ8BsmFGC$~E`y-c{=EuSPlLVypnLWNt;KRBYcFS2w(2fAU5Q#6Z`QVSmjG zsxXzJ_(oxr#wT|TBJhDwe62rR ziVx2kevtxfh)DZqgxknTiPF{f<4yExBQ?zcKc#{!qS-H{;`QOxP({r4moY|>wg=a( zyzA$^aTohS6Z!zf_!7029EeNk0Q-`kcCmLEB0~SvdLROUeQ_MDyhg(6&Z_FkLq7$DB~)IAxIKE5x1^r?eK{9@ zKgH>)Uqr7*Ni|yUDm3YeWz=dsMk@Izqki7sDcWLuT6ZN3I}P9;)1bch6$rG)C3g^_kp3 z73|i`Av?EW(x6t(DB&<$FuJy#hXq+nzbM>tb1CjJ+!G3D*t%;mte7s5!@{UyEf# z%jt0M`h#sBLfdXajcx$o-gM$T6{#ahp&1McBq^%ti39(Z|E1jp2*d%_XDU|7IZyWwY~C%f@mpwP+|=B@^V&EP-8;qWsycFh$qWH0@9yy`PDc87m@1y` z7FNzG`eZsTQ&tD5dS4YRn3xX34sp-AyCrH`KemEtHbg$NPJ7{dX z2owdBszN?fA>}Md?9uP#IQCR3Koz>Pm4~Cug6t#&x2xa}RH7B0NaS|p=#-R{tXEm^ zpz~8vp@16O2Xyax*TWYfBx6{{Z|3$r_4x-$KS-Nov; zW3{H?aJVC0kV3MHVT#$VhN^zqbid{!o<*J7J+p*4H=oa!z~Yd@m()g-x6je1eickg z5m+y$LiiuhW`5+Ca=juXl@o3&N9`Xc8eJ}CCbpxNL`Gd4Z{_CSZ7tU$s2LhblclVi zD8D_($~wQj5rQ##6|&l(kwPyV9J&=%ZVrgP?99}AQlqco#*38>35cLmQt~0s>!WG^ zDx#D?Yr#anwnK9Oa(Y?K-sDj|Jvu5JfJvcROqF9;*I(b}Ei(=084^vkP&dW>dAdfx zf854?(coE%1(~Wa^U-m`c-?nFnWL6Zv?5I$wD;!a{mPL=+#h?b)aN-ANtHjxLpZ!F zRqR8wP4d^nR2>xb$u9RkuAiuF4*J37My*=Zw&j!+jr*iN;^NhD>5@MB$%ua(yjc%9 z?(@cPPc?x)>>)U3HB-s=fl>F(N84We{^Y~dGgm8Khibh)1?zMrI%zpY+O}1%p!u5F z*%m0)J&mqc;*zR9I+asa&&%neqZqup1>}~n2uUxscl|sbx*Q0rjtso>*b@1n*t$Em zk`#B^Ikx8L#@7@7R9Yo-NVx68hsP~CVeQx$b0MOKW_gk^dznF|*8C}jktJnbi_5m_ z`&!8_iMVp2IksLNJ1T503#c$rSe83~j8xod{)mxg*SbfCa@r$gcTwgVK0v|R6^s95 zOYnFmH<_)>*c(KcdwOHJ%%ani6}R=7+jH0Z`~lyrKIOVTWv-q+B z9yA0T$x8n&WXU_D35$u*Yg~d&rhN`SOWD*IM_$qEEKixU%4m?bJJ{l${{x{4*G1|^)c{&(@8>bKmX+}LZdxoz7A+TvbCfnXWd zGM@Y!gY-t;BmWgG4^6-);vjKZV}jt4F=xPValZ zFrcebN;O%|jP+7CA(Z-2wVaB=a9&r>r$!tlQNe&T-!mf><-u@`7z(8n=M%ESFq_aY`|&@Q&N~cukG2k!i`&;esclbE^zCF zT&g1PaG=>9rf7XXu2zt&DWhba_=3P$<=0)^3&r z0X09HesE-UBS0M#lSYS_fOwUYEQ3sYuX>Tz?YUt?rBGsozkOB?^OFwBl;aflL(&G# zqf#tF5%pnp?Ha5A7q<31W|9s{J)iI4Yq|#m%IpPNw*Z@qfM?mGK(mri&+94Xp}AUr zbDBp{#3N2&0WAX4eA2`Ei&%$=wrGN^Ixc)zmWQ`(@q$cE6_S8Ktt{BUz7sA*#4r>?C;jOwX1Sn7m4k*_C6{I_J-pn060aB9=?5w0}lv%)J zIly8;(N{yo*LQ^U6G(;B0QslavnDdAUuRRf7SiD z<+xo`j^Ezy1>l6v489$PWMUnn{@65wKrkyqpOXDaw<4(KEq1@JIh+0sM=y z{)CocTxA_P6)px(K2}?tjz-QWp=GU^J4){`(UmRJlXq&Y7ZByYR#zQ?C9;`8V0X|V z=v~mk$xI2}LD6snSs5uMl>`W#S_kDpp!Q>=ukS5uhq>R~yje39!;BqMSX@q!&eRf5 z$7%-2q_T{UB|Iknzrv7XrG52U-2-=1zWdz%B4#B$K18yd!v&+T>NJDi`?|K-_rZ`;YwhHrC(DES})eH<6ME>Ia%s|kR)JQm1lN754Lb+TWY)4 z<(rYCtXC2smMcMJ@jgxSg^X}v659IV=-g{o}xNH9heBe$>pXS zE{CWah=K!Ue-UE&H!9kM@(Tt`6>Zldc0ozXX0GHY=++auKDyzDd%tbAl*NSKDy@69 zl4D^ZDB>}sjC;vs%T~y$x0FXjRO^Y(HE%==XGFE5;k;W4v!61~hU*mL+QcU3^l*Vf zg_$o1)uDkc_*f)Sj5N8@$Cu3JBMQS1`e2Lid8RKNa18pSCJWUMsqws6RW9|_tfvBZ zf)N=<6rBPIi09J7ZOZDNpg^U2@;c%oZyu|!PVwo|Qq2i={ z&OXQj@W~aMw=6fcTtdHpum@cbXTqZ(_S3)2+H`(B|IK75orTk4Cets5>i))jQyQG? ze0Cx1wDQRFM=u2CsJx%$b(E8rUSBi!o{w)P)QD@i`$#&qGpJZ_MovYxqOMHRU$I&_ zZ`f+8T#j@^z;#V&4V-yJ#Sg+CCkOf4ww&ueXWFp_u7?!@ZdXV($6jbkqWrOilV#GW zt=}u&U<0urLwDZR^UbJ)z?Ah9E7!#8*w080HYPZx2G)3O@J+y5!WXiCv$b~Ikrba> z&(t^|5dEX=xrnkd_TfS;d{BpZJXvX-QYZ=gls^MlLwHQufnbNj6wZ84sINh7__OCh zp{}YqDwh2AE7A?^avOx*Cd8ODAgS2G3K}=Du=phjL?BO{zWXOjeKP+S*HMX>Gy*^& z>7#mFbgX>|To^!r%B@+sHYnW~ip>w!2G)t=x7-yB*}3@kq}I1RuU?|vQnZz?UCQ}^ zRxA)k7u{t{%BYj3O&IEV+G(NkF{6GNvlc-To@g39Ts=<7qjH_`8Ilu-pKJ_Zxfe z-KPSn@x8SfQtSXB-^JFRLjL8RV1~Puj!|$pR!W94iF}VSUKufr=(Ms8ngwL^H z>aOPzv}3j#&}_&UH$$a2h$#RjZZT1UzZY`$hJK6&ZM8n=+c0LNqK;@0s1kCdZB&*M z?~a^fk1*G{VGxD4ll@E!5AWF?3}+Y~Is%9QXwK_ObO{O#TOU=1`$aQ-GH29WmVh!Y z#r=$=41VL^XayHqv$k_F{^DHJv$cJssn1{fJpKb9MHtt5-w2 z>QZ;L+o$WFrpDFks7Eqs{5iQo@rQyn z*jN_Y=19JMIc-<)FjP*wCBsRm9sK?lmnQdmobA$Hg_%oq@~{v=!1_}e`ZamyUo@Qm zUqUPnp(SSd6{5*N8_)#}LFd9zU9zrS&wkm&{?3-4+CZJ{WdT$Ccc-6A8YnB@9$pug z_25(tuJ-%A%ruGG>IB3{ea~lG#=fX5L>gE<^0)%q#vPaLMy%$UY@lsp%*J_{yL1A4 zvK}1M2e%*=S{@OVPalnaCO+zRQ=OXQ5^w}*oo^@4@UBj7*B*(auQrW6eQTq4Z{10# z>^cVhJJ0rgmkMXkVXd9x{cls&4T13N{=5d)$u?@Lykj`1`mE%ANMO^2@$6Itht?ez zZ+^H4kHHJFU5Yy1o#2|wU(aB^=T0-l<~<;wD!&QNPc-?rQ~fW`&#o>t_3`-G&<|+# zcb79et#36Khx^tT&(sHA{S+YfZG+?0xO-}0D;k!`20~zkNlI0E*T+qm2d?WJ2i4oM z_q-f$0FvggPiD<98%5TO@Xn9u`Vf-fj+2ouDZ2~9n9e7&Op%hjEEHp z+$I4ii}VINZNB&Ve(gW-0iG=)3pj02ho*38H@FLKX+?}&!`TA>O#5yNx}g@vbM{C! zh?Bf*??b>QcAXLaZUNeQq{ot1ZX(#98q~{>_Km_t0yxJalyPm3OJds=V^q2HL5w1x zX!GjIvQaJYCqug=^OZB5Cc9~>RdQL`Tlbw-efOuhkgu$gd(B>8FrOvfXto%$m}3DY7i*Sjy;mP3}O=!xz?Te4)W=Y zjEp>3rk8d(83@zW2GgjB8MICV@)WtN=5GBCI9iedwlvmWo+9OX2InCmZicfHj82@Ul6u$n%3^`91We9FHN7DX7`3XHPj%FBT8 z*Yb_1!>gOSO2#a1TQ87NkY53ZrcfxE$pB?p*S|-n#*n>r+vR#FnVzBX9{D}?f%Cy- zZVoFrO8E}R!Ph5V2qvul1t8#pWZJ%MDo0nwL5S(pl%uGPdVYjFLeX%z1g-wCUT?eJ zYw>_b#rAj}ioJFW5|464%sOyyYv)ZmG^)e(DWtTl>s91?rT`NEivjwZ;DiWa<~=}B z-&L=#TK`X?f{hkO&YG2x@$BjeHFbU?=#MMBVk`zET;^)fUTP2PFq!kDldjK@92`s; zrRkKXBYq!4_YMJR-<1>0$P17te*uas4hV1(>&jDipNnWX_ub98zc!PBYH{8n6gXt8nStXfF}%*PnB@0!rSr>*_#Y z(o7pyc0c-0Ouj1Ori4-qX118PFnlhnCvejsRnjPwY}IamgP&FZ%A65!-;X6h-BWz| z3joo5mFci;Z2>+SJ+97KP{!C|b;-ML&3C<;&XgBy9pb6(A14)yfEL#;b1!9N1op&D zyYK%fJgqeRkkVlS;K@SkBYvNc$6UD;4BOUce=d4MQamZ?kG6DtgZ<7D@NpWi#vJZFpYHN%P?blLE9OHy=e*E&J53*8 z^ZjRD^bI~U@tLlIB&50Z5pqp&OmDqa%sTrntrI9z|E7`*s@bvveh4h$6(e0IPW zk!JGh1}CXN#N1JGbMd*X{?x7sm`G1VwU*PN&ff6|!aVC{;4nQygGBifN#W;d1T-q% ziW|?IG&C4NfAqcBeV-3%dRFy4etyVLC@1hVHJ}4^?0fjbDu0?Tflsjk8 zRIm-IdNavNQf<@v^tqU@=qHO2shNQiS?AF@ManOmWpCcYJMwRdh-Rm~J$;5ls1u%u z{b%^aU(F)UXbAE)W&D3Ha?%ikL)KPIo+~JWrc~vl=i3pUFm&Tz@#*I0!9If0>Gq=F$0g&QN$UOoNK*Y}3=`ewWF!gd%5}M89yDNkHVCRW?8oKx z#Kl0<5)$hn@NqImmc61Cv!bo-!WL_w6!PaN;?ffBprpE%Jg52+(U4ZXz2O=W<2Z-= zl=a`0?XTBi-h?mG$ZCvwq@W5IE`RZJ|LtAxHh{OWT(bHEXNS08E0T$9)IS5BUV%lj+QVvTKcK5bbSXo*P9TA~S(a9-gh? zGfa81=gZl6KZ;ZwvJ6kFyeT4DpD|rb3Xs`uG>ZQ-!O{)*H=OmL)=(GV7|Hv86`y~f zJmP`bBmwYu3+3<2wt>8BW?)69%6-p$zHk&gzJ8f)+kZ|Ejf;;7ng8(M{;o~;WL34% z?fkbQFSOlu?yXq!dRteJbd89He@W(>R|P}3-AhpRIk}6^(#yR8e6>quvnvlQc54$4 z>2HS6@9rqjkbN&rUasnYdW4Qp1^N2XOj@ehDNTi`w+H-Nai_NyKNfd}&Jc;sUkYw2 zDEDiJxBKBv?F^jN=gDp3fnCvJdXFB})vYnt)w))0mHe~>7FgHr_FM!m;ax%0 z(BIPbN4gS4eqEf!|8jB8z8y4GS;uA}tJd|;q35f@>@|I7Xz*=Q|96$cl?f|t6sxOwFy47zoU5*>~V?q511kc~clzYpxMguhDG8$#i9>+c854fU=J4E6arB*vHKl~5C$OoB^FGQaw?Q~HLWcV08i z2!W0R0Eux;SNmT=2TrAVAb)@FU!RVHbCb>Qg@8GWfiB>Bb(8|G*Y9)t>xDMxYJt|i z`@3wADBhGHEXs4{vYX1ZHjojIjfP}ONNB?On&l`t%yzx%^u8!`;7v}Fpu&q6NRg3| ziGob1|ED_v%SPbW=jK2CA3ygiqLpZEcDxz_3v~lsX7O^`esL#;)JD|XX*8@g$fdL& zKSN-&>O3_6yb+u`zdrHq|9GcuZt=?PkzaKZ#hK6L=Qg>6lkGiOEZw``0azRHX#hjL zO^^C#ZrHz&nRiI!uine&7?b}`auw1+Fuxjd3x1YrX2L=}*e#$OA`wyoU%IWd`r#`r zYkc^48JcrhnW+iS(|_JwRU*PpC5yzdFoRrWY2y9g2lkh&7h$J%bjGBOC%-8n zAz_7$aqCx4$bUSR&ndr7+vI;b0e0waL)Hk(asy|MMulJc_ctpM;@uq`u^qmQX0*El zDr0hP;qat6#}z)E>P7Ms*LjX=yLIL%mc81G*7ihSU`JFqlY}rp$ufmj?4KI_&Ij^K z;2HlV@b;4=g6;%+t0|;z59e1SMhg?tUVnQ}qf=AHgKejr{qWUnqR+sx?^A0gv8^by zPh8or-kv`0N$7_1y?L?HOG}_5cxQjbZb<`REeza8iJyLpbLvAZn~DzS`KFry|5oG5 zEr%K-keYkto`M)EG zzm(w>{xA7@_b<&Mwf+c&re%nnmRg=$k?<1)VP!VUm+0e0G3sIF($aFnBSjU#*aO5@y!W%V4v0NxYuODtSAe^xq9Nr2FcsrKmz%zt$1L zmzfGbaXEGRm2kPxSy$v_7znn@bx(S$FxcUYbx{dLIgXi>F8yDZvIeM$i+z8%Ij zE6)nMFdfOm<#qfSwATP5p?XT$1%f^Sh z*kg&~V|=TtCaC(DWiXqFJectsm=xrgZ#9_jhV*X6R#YiGyZ2W+Ow-ewbI($*l)ufO zr~48@3;;{&3u7keX_hpz7|cKetwqr?7Kj*xxBs&aRDt-jrn)VI^9AR$GOX?_JBYrL zT!6ysy!d63v&I_Y$c`|eTstXB>0ry&+oSP{E@6d>%IMvhj7pg zO@9Si*0nN{lEGN`7@+eoJXp}?Db{kA$_o)nCRGvVDE7xADPaF?u#wKy%0TdW{_#0MGB8fR)&rUz3<$a+) z`}UdLH>#clVk!|a@t%YS;#SjsfU->;kj4`Pu8{iO(o=+KkoN`wJss4xH=g5z-Rj0z zaXTo4hutUU%n<@01RW2eV?QZE$XMNQm~|>u-xT1&=4=Cn`LXSK-?mC8`ZVt6g~dfE zmF%8ApvEQiy>(%8C7G@>1R&$P30iM~4Z<^h_3$4y$o~Vlfc8j9sKO(m)5W5|5Jgkl z_C5h_#|z}HXbiE;oj`Lj5w&o6Ts&VNq%T)^rUMgdqOMd}9~D1*hzq@idX(Q~OD#(x zI`H9fnduCYO#F1JtoVXM*p2;_PkirO3}#8ln~o(64xAhRX@aKfIYdOA`X9pW6A_m{ zXa^?3-o&CY0gX4M!lLH6fx*GefTI;OS#C~2#oc2CRj`itaQ7}9LP?b_c~!6T)9Uzm z!QSNh$jR||Yzl<8x{6z4vR4>+?zMfRlwwk)pnfRn{(sa75sa*jTLHFV5~9zkG$@2x zF6nvoUNoj|wWR8ZNbY9>90Kpu$6m;&C{6vywk(Z5v$EejCTF?58`KF*Fitorj~~1p zg89e^tv6vVP?a%0?YS=sjbcWiK|+hKE1NZ06hnyoC$5!V1|;{C9+{Zq1dZC>Y1>a+ z_NVb2y!%FY8pi~{Qo1d@Q;3rQ(`!Dx<>5q_%BuG_MB3az!{3vFFn)uY4x0U5kgf3# zl|X--dTk{fp1j&@%t8dyZ(Fitnu0^K(w3Y4ahkdyN{1N`dqdzHp0>8O+;7(&9&HK* zCe>cGPS~$1G`PP}&eO(Sh|W*f&!o#s3Jf9tdJ{BRE4K^Rc2l;?NkzB$`Qd0cxTCd) zlQoyXpxhpNH0vY9z7<^M!eEAk0^n&lp-s@*KDCzpy0-T`jw_bJsmre?LFs9Y`@@yq z<&Gp)paD3cOpp9r?0NQ(l0JZroyFB9CURgGDC2n05ce4;2`+LfC{*QT$in=I;Lb6} zHflG^ZfDNf8NRrr43~pj=R6LfjF`nFGWhbc``te>_PSs4!s%TZ91428RTmd$FHt|6 zkLe1F=?Pb(FXSlmAT2DYD5U8-mKr!9S3dl@)P+5zOnuD*8TThQ@4}#xR-wFJL?5X`pKnfeq${NlT3dnp%lN_$?U4V51{BN3kYuR(jpa>EH#4S;U#5lbaYZ z7-g%DgNSlvA|EGVP96A?xMB&S0;KsyI`QHVc38Cf|udS|TUx7I-`HfOI7|(b0 zzlOhaD4nJ4q~&(KKt9@<3s_sTuX1J~5~IMFzjVrWi&Ad|cVp#fu5mx$IDy)b)+w}y zcwhAc^2upif2Gf~m+LAM!}dqlG4p%?T4?#5)T|;@{*-44{a0iSfoTPYeqot&oj0m` zt7VYAH2@NVvcxiEJ~Ud(a^F; zT|{%Dq9KWw9DSXqF|4K%)Pc=F4Y!qH{x`yfb~1* z2m5j5I(1QgV!B#E6*Ba%hv!FK+LGcD-^XSZwI=%4?(0mY&T_qKGbeqBwWRm>UZm3C z?$8;`M6r^=Oqt1)?R{vdbis@(`Xl$+yN%ZTL2=y@CYp^TyybbJt7p@JW($;G!gj}w z*s3z;UNFSjQIq{pWuDt@ys#CTJ#!~+@L07PE>xW~Vz8J``%8yUWQ!Aan+wP2Sg5iy z4M6a=d#2MX&p^|ZCgb>1pCr#;=UnItTg~d*+Oif2k(@Oc=j19;tylXC%BGyS$6#hk zuatT_-}s?+5VV(D)^(I5LB)HO{qJnzc9M>!8-@?ZT7TDYATAu-R~XRVmr?Fe{!{9O)Y)=@d zvAsR*sHB3!OcV$=E}G9iY*)To3Ec{1vZVN82PWK5RFs?h0vMbV3>$fV1#2MP9q%1` z0zX+|f9qj=`-=Z9-XVQd+w{%KbQfWb+N1W`d?$nP$ouM?OS01=IeA3zZw}Xs6UAdw z9LZ2w9Kx{gcEuG19c#L$uhS%Io}si|FY;r!tJij@?!?> z$bWp|OGDho9Kmy+9rYLbiSZctvXUnXhIMVs+%z|$y8_k&e!y=vUWcdPm0(h-nTJL+ z23K9TwC1b9KSV|r2#u03I{lpWjT@Kpe_?1i`*RkBX){jg;MJ^l@Z45s92f8@`@LIJ z?KWbw)^&3rP-?J5ue&AEh9r0M)>8z0I)usR=5x}b%+F_g|A;i`>nirvvrD2euMTKT z@;jHgZ6%ev?LuQH{X&DoKT{02-?)g1v>9X<&v)lKkrya`R$6g7dJLweVajd0Eue&ZU9P0RbNCW^NHFs`N1KRO3q#6hq+BD04`GUdKnG@+&f!Cd)q6SR1Ri>6N z*B)>js6x-ikJwlq?KoxZ&?FcCDx=YFIYqhOWQLfVGi*PNS23a%GoB+4Krx-ocVCJV zCl{>X{gnCzIL(U!(~x%;Poz!O6Z19Ly?3XCI4d@m+h;O$!Yb_0p*#n-U3hFHy`ceb z)6&whztE{YU7(eQW^xk~LIKax(ByubI_vWQz9K&zf4{HFHVLP*<(R8i(yZy7x^)59 zXo9_&On0rk;cz5X`ye%NnrETiH%hx`^O`eD8=;OQKQ{AX$_gHdPJxv zuJ9?Zq%impJaczWFCl=?y3i)BM;xkDF2=7W@(4>`mR`dQ5xo> zx(ja6ds3g{4`PyBs@C=P2c`#oZg_bG+KzFyQ?`5oU7d%4cX$Nj7S^6^bdM5>hbW(IT{QGZ95S)<85JoeSZqH?CQ4-c_Uyw0IkEHE@QAxUC>$*TS~Xk}cGl!oajGzi692euH z?MLHZ<)$@$b{zhHoP7mU6l%A&3JQoc(jg7fodS~5AkrYpAl==q)G(BQk_w0@p>#J4 zASFn5gLLNr|2z17=iV=F{C6!EXPtGv(Tcp-?5tlRUxH8uCI)j*kk_ zXPj$m(bmEn4KH<;lMa*5t9U!#b}TS=F5#9{Fh$Q@b@4;mVSY}5i$vrqr@ec-t%~X6 zr=hUdO2Z2B9_HB8K?WQt0qdM(p|g_43RL&^y*C#Mj1(Ts^Zne4l`=IvT2l2n=+=A3 zCo=rdvltV{WV~)hVZYA#jQ;mwJMDw~RVOWoC8+HBAJrMenN5}CKg5bmfWTd=XCE#@6X&%0Ha-*O#8G)o{mWR5wUgta0jp#G$1luzwsEkM;kC?;-1`bE(Jhpu zX?>~g*N|Wx0aqk6k{CgLrFX`i{@$Od_t6Dvo+an$th3MYeg+8{!Rwh38?pmhh?WYw zS+6Jl%a2XkHM#=)6)%Pn<{HloBaWYY5o$;`AEw_)yhxH;4V2rhD z&Gh+{mX5Y<=R~$IBxAy9As!(KVHTcrC1J!Qv%%GGv<=9@j_pzIa4(_2=`8T*vU z2GB~#IL#9>vWGp75%ele(`2b`-CUtz&^!=aWO5tmDa*@A9XoPKph}T&v>DTdWqIxS zjCf6lQ@!^)`-g8vn|AVyF?UZW+vk>*+La7@5b)3PH1=xzc2zF7@J*z5+WKm;vuf>Y zJ;bPLE_6>$NWSwQ-w-#b!rTT?Qd`=aIXm9dT;%o1l3zg_zWLW280F>5r7~ITPT@uFXz2R*>6^ zcw%?^yg6i+f1-z=xm~_?KDx9@y+kB2f3Z|2JTEpclzZlI!|g3qYlysf;*=m?BeBGk zCkM7tc11^EDFsB?r%s=`R%2P(GbMn@RKHluH* zyp>|(2yu$K7AQxIVY^wsyr74@{tfVns|!V|iJCOMTRyg9dxhfWsV>S%xEA#zm`dWU z5n9%B0599`6~ZX7tIcfpb#mK;e-i9zipN1<`WMVZ5GVOC*Igp$uHZBfUWy1XR4)BD zKI11lNFQrb(!hmhj%O}$-jim<#HI(fw$lIJ{z2);&o@ZJX>Y!wiq28pianBdslR|s zQOlY1Pdz4(DJlo|Lu4|qogq^~Hr33`+n>dDUBGKuIv)(D;OoPzm16rHZG?-TgRW>$ ziJq{hg$?KKV--UdjF&=I2=&zC=x2z9T+>$B+bw(BqTRI5U5zlO{SYpe6^|XmjS$OM z=KSJDvC&uJg0~^RGP5bsw*BYS5CK6IG-&k+RClWtJ9*nX$>mg(6LkE+#af=@T#GsXw zC(T`a?tMG|fP1)%6g;`ASg~6-+H}bYW1qpGXXx< zUNmo6IY&AgjZ2<$F{m1Jt$Mq7sH$>#Ga+K7-xw_dn*7n_3`jfDV5x%Fk!}hZ>GH&l zgUZM&79y$r60(~@DtoD+F_-=tc*AC8SVJj+%q-!|5u?iW77gUf=oRm=)efCD=_iHLkXSLkXJ-&l(+p#@ zFktl8?q_<~DsA0VPCHB}ji1TS!``$KJv?xk^k0a56!L^-yvOIj+_F1~N{E!B8S|OW&&DV)rsfd46hvd0DY)^Lx~?tE+o4dB0t;h90|BZNq}aO}cb)S3SIgd5hH# zU7LaiTtc2;q^zo|$vzj-FN&N;7(~O{%(LAwBI;!2XxzllkG%5C@%D0YWg1Qka;^QA z&0`5le!gg@u*?)18*35(Ap>moG*9Qlj^s?6yq}RjwRF<%Z2Y09Y|5?Mt4y7aC*osb zuMnvYW!e~oL!NVEdg#e+h?nb!j@-l#>t})j0-04~<%S0JVt2E0OsniNYk9B9pnzZK zVCmb^sib>a?_f-Vd#9g~gUEON2H*I^XHVjD7&hWF=E& z6@|CUn--q^2(HadIW|O}fydfXMbSpv?YPm-$ZJ1*;Q$g$E=MmRDa~fRkQmFIPv=T8 zDJhYYwG_{uy;XYQ>*EtEVuH#u!25}k9OYKcmE8o@p4aL8>2bsG2QCTX$PB%(g98_D zsx}5+Hd!2alw(OkNIs|q?)ar0!d;&#+$oy=A42T2o~)eu+Y@^acc;G6B970+6l!Z` z-}2QS{bY%&HBTJbs$b?Z^gPO?I{un(mx$UD+ll9Kw6##=CojyXcBLD)qAHTFt0>=vtB%nj8a#ZSm**HLkB)-^6czYMN&%)vA~^51m37;?P+a7D-tuAQ>IVf-msE^ zhwQu{6!T;7x%Z~fd$^*MX1ISRTaj; zvmY)S0=C(CBGRa-4QdIm&aGr|s``EGL0soSfv|5t04*yQ%J&erU>EH*va!g;S zN_Cu;Z)ZJGiUM>pW~?c?_T}hB(|2fR3p1F8Wb0}KW#tN8#p}5qkXA&P&O=%fCAb2G;K+zaypF+({}cPyMBGjvF%5`wCYd89o+E~!yBg{{`ehsVVW*KwQ5_bYMjL}C`{O2t zqTBKm+#J~UVond6r4im?P~!B&H+pK95tr$ojt#r_69|lp$mux+k<`I&T8M4{wLotT z$>|b*$Fy-2#crN5;%oEt*E?*KlAGyoT%@&;?2ye@owYWAY3M9H7~u1M=5IvN}ovx{`UuSSW3 zIJv8(J@laBMYN0ILC$8?$?pn&fCVIp`Exd1!lKOj_<6VQJcF3iaZjb?*=t}{cHSJttIbuVjn^q$&U*-805PcPMk zJf7nyEiYH(l$VpEG5_GxVcSWG&3vkx~qMNSY z0Q8N77Yc0VSMdKto#pg@=M4wkyzyU9)YyBPbsC7~>zJ;>--dh_U$GY_8}oU#FDc5S z{fvJu!n?lhEJqIsk^*f0ayr? zl(&6#GbuIJuIyLVdvD`*>AbO64TbK>uR?duO@Z>*$aGL-X%Otj>HG9;7byFJiy>Q0 zS)V9d60(r*BS4e@tdxuvHKD!Ktso_S?kd}sRdgta@vH<+F$LJ2)Q!}l07vGz(>J70g|wJHVw#cEvztuT%1 zS;;hQRt){O)YBXFS4-b+I%38;PUo-J$jI&6#gvvaET0 zTAxO;-B zwEJ^|+_A5lRG>}XzH8d_GsBO;tw zNW{hKpHOm3#gXyy%F#UF`p){q3y)OLW;(*wK%lA&S=)XFWi2;o%ZBRgC)R9Pw2MGN z3o42GSzE5dDc*kR&xjAVrU^;QXgeJbkmQjcWPz7!1;1TW?}g-|6M=oth0x?-)K*CyCyQ}xK8Q&@68_Aq ztjDOoh^HsQM2RmWPAjOeiWagwsZ4lG(0c84?!R2ll2|}OB z6t=dfY@(Rh^T}v_lFpI+g(p9RVp})Y+96EJu}Jrc2QBio`$RyoL%Kd*bG9lN2SlW8 z#Bp+MU%Yum*6oFlQN(6&azlJFOH=YxSfup~HeNIopW3L2nmL+-noV z6sBBMJyI84A8`A4l9p1h;F)PDlaG{1t^Zt??%CXm$87JqWBXxJ(@bAq`p3~fXMP(| zK%@PP7_48Be4>8CB&%g85LI1MGioE1VsYseM9q;~L`3-sX=0G2PVXw20VnMOoZX02~z1cdF+8qQ`V07R5k z9rC2)hK|t$?dE_G4V_%v3Q@QnAKvWzV1JrW6L@BZ9l7*vWDF`HsDiRe&7 zI6K|tkYLpuXBg;~>4pFVHhYQ*O(ePI8zref!Wu`l;bm26%0d;>C&e1|v-3mWYcs`+fs>3UL+>-5LzbKB6|5ZN3(wMT~i?N_NNeW_;MJqsv+z9Ic->M4I_8eF#w*G~?-lcn zg0Jm`5&Bc6ys~mrAyT_C0J;XZ(61@0T~x0~=)e^ue}av2!KeSN{|5&(g^{9x`7)4= z^t63W!_OV|wTK^Yj58NT{CGHd+4$>ZXPVTw((oE@bsH3wQ_yL*h&bu+9;JW_O zzphHPx*@mEHEx}LM4>%DT0a{6tJawmYX0EAy2i=KWByEU3W`(T*<{YT|7nW&^$BB0 z6${h7c2{Cp%TDW7!wv3852_6}m*sxn=n)0FMr^Uf$^gd#z4qu;8mS{9Qud6c_ktrzPG7@D3X;@hJ~Tuh z_$+6A>iPYN-i${xuE!9W6DA^{I#lliE54n|M{ii#*tP?JGA>)L&d^B)UZW;~s%Gd= z`aGxG6QS~E*g+$=Z`CKQLjBdw{t04 zxQR~)BES+F_WT=viHIK2JqHk2AOn@k8{Mp}Db&7!iyJ1OKu(geMGe)d^ohlCULxYvdOlC?l4n1|t9{ zt~&BgFfcgnNy>^*P!Yyd`%mMlMJAuO3E#vy`6!waJ3J;j7j_T~@%*)Pp#u>&+)W1~ z=-aR5(0w#NlRB7Tj(#UqBfE&Jx@h|uZ@hL&?xOWTVC4DRMFb`*8Q&xgyhT;t`_S7p zZ1GTt_z_+nHfru19l`ynYS5Y<2M!cQb~T)mA_>NZ%d(rXcrSrb;~md=sK{}-gKJAoz;C`l+M>J(@svRoJkWj3?zW14-U=r(`Jp9 zIqi9lV7)^}V#gyIW9jkSKKRIf_d(z#GHoQ06Oso0oRw^qv8ToU0)V&#k7w%dp6Bb+o5u_I|r;1kWUT*pPJQqd(A6*oJsYr1o`7v~7TV`1M4~DQ2cGuVun6+MTR}`(rhwWWHDF*W#!dHl zT$bnONV}upQb#fp`ofUIzHXuav^al$YF{UVyC5072%w&agyy2Kln6F>Bw~EcFiS*| z-07KU*NDXJ%0GyNA=8wx>7q!d>%j2CM$nhitki;?Qo^a8#5zc|nc`V3xMFn!!$KO2 z9LdVr@_d=mV3UP^E8l>-S7bzWyzobxNocWt3|=r1q41sS!1tFM-N4WVYOh=lR%V`C z0MW^&ha*2u#q)ZP=MA2i<@RIHwmvo)uWIkRD9A4_Zv%;nU?HkM;kI9sag0bZF25oW zeaAVx81b@>Wnn3I7zn0h6BpKyyZSF$gLto_fH!b?Fu-BI)v;mDa_!>ua;RM!oo0oM zKSxKymY2;^elZ(Uz1Gkywke08{IhpG2vh}V^U$kXNC|B-^htW~DJS302~0vuF*qqgZ&{Xfd!4 z2pH5+-_aq{rk@x-a3sd!<65QiN^3%QG=07xwdhC;SM!qBUD zRR`c!Q`~hG4EFZ2PaUg5SEI-@VH4Z$*8$r;-KyE9m5}gnB!6`9 zQyP|mzCEjf3iO-uuj6t48bkV^c}vRFr}8aNmTF6jWo!W3t^I}1>ZTL{gYjzO;h)pJ z?jBD%<80L(Ki5;X<AMr;|U%U=ej&+>v z&g#gOedPx0PvV+|8qFWa!t@I$zlW}E>a5dV=o%okL; zwT19}YBX5m4fs`%UHdsf#663`GM7V&Y@EOYqadVR0C(ZO+l=v4={330KLA@|J7ka< z?QehDk&sXVmCE|b*eVl=~{4!@N==(Zqyw{vM0^jQ(&jW8efR@^StB&oJs>nEIju5YOq~ zvRX?L1rdPK-L!OhWz$yjsSjZ-)*V-e^VI^hmmkXOsr1M}$=SiI&TE(aInNB`hzV&t z8n+I~YvYBt{hy2{%H!n`aO&~bC#puqCs({Xz-SvtJe*1ZIBax$sx}G+N@hbw1`fUn z-AgWyPEu7j@<%?qKHtBRrIg$43&qAd#;3heweLXE(+VQsrTpUyA5LMo>3%8pg=1~1 zj)licHf~`R86q#>Z+NdS3?eB;fMTVv+6biEzq6B5$W3lobcG;52k>UMS{u%?=j8M#?(p?pa;x& zvC^gku06`-|MV`w|D2%CsNGLIP;duxEc*P%NkU>|VRLJ>mI1>8S;ULQ5RxuA#{E(( zTzyGp{lo+PO$b^SsaKQiI-1r$)GTT1`>0sJCXUK$ zdrOMV&x{5rZkMDT9F;x=!QOE!EYE+q`C<~Z9mO&0+5cFRMjo0m&TjoXQ2n10^Xtt! zlpx^!v;BZcIRduk4fO9q>t4xKNA+T<+MD-3HF-RKjf4Xfr}fzleb?GkhTT$+C>a#mB6i9L48re z#Y`3ENbUpZD;3B07Q=zp{;G@+`|_`p{r@f~PsVBxzjXLP-(AB=Bp^@A&p*U+yr{B> z$IQ$uX(*3TTUR${%hmYcqL`f*Sh^hq!ygOupA+<7Hu~UDQ`_IezHQG*K@?GBJqy7C@SPJ&N z9dZXroiJ#@rtN6$E77&Jb?=!_;7E4Q)7l?XB^Y>ii^CL4ZP115tmnu0>_<#bfP1>Z|G13p=~wAV&q(0Z*guy*Y=xH}Fun9+aH=zz|zshI)a z+k&XUN|hQ#2jaU6sum2SJ;__Wf5L||FU;MU z?iOH)qk`JL{8b%QBIQ$dJg4=Lr8TkAWNdz=vRk*$gmvll&kdCX7`Z1Uv+&K=; z`1Y;Gh?IrrMr~^(Xq^=Pd?25(A@=bE6 zDH#1|U-pRw2?E8d7hDB*&Ec|h`YP{99$iqeX0?%*D+A(?Vi&6e$Z|A()99EOf&P*& zaMbe!DTl}xa%#iay((?eOaVirg-Y@3{kHuU%Ll6jtbYJ= zAbet1$LwEER(&wO_30H_jPWyQ)R^~o;m;(~cTgCqli#$oe|o7b_psAb=q7xo=%$-_ zY-|;cgkU!<1XOu-n?)e7XE`e>(eMat^~TWyE=3Y7=4zao(HT#0{IKu|{3=YaqUYKW z2gH5L!Y3!_Us!NIHU-B0%q!~{9UqU#&@q2$;7Izl?iMbU1b$1LCLRS51}C*KUs>sg zoV6QPigz`PwNd$oXgO{?Ax}h)(7G_cyTJH4VzFZPt(Uc>9lXL?fX3gR#cD2kCxnk) z>5%Bqy^jCN$o_WjjByAo(M#s`naMK~zN1Z+=6Q1>+DDI!#D$0}fVC&^pzg4Abm2mt2%Wjd4^%qMWoRg7Qz-|nmNo*;_NysGbVJNUXc|!K)s9b>X z{xU@ECCA#=F2}`?SRu1!kpKDd!MZg1-^-{Z{wsHWrh!qKHy2d^v+#54U1gDhS2y#= zb&!xzOjfZ%Bv*C^K#PbxaPReI887v)tz-%MX^K=-U!%A}@(hyI83My5P^P3@<#KJT zt#`ew@F>XIFN0xAB8n>?Vn3UW)LPeAqYOOC;*ilDc!GLLhC6H9ILajf#X5|yE=>{n zX+_weY+=Rwv1c@}xS4WvcVfk2+Bo2qT3?HXJmn`!U9{*{z%e;#DtCFY77B&gUl~R# zN^>d8KM!bJymxx2{a|fVlTUl2?dp*qwW|1$MOF0dp4--QduYo3Qy{HM=U)fy;Ut?$ zT_?lRi5uvm``)=b@Ph|c2)nU;-RG@cchR}xkwQVC$lm{B;1UGst&-HJ5lTN|biSjJ z7e^NHSCB9UOT1ysexL#1juu=h?rdW_EUd%0LEUFDk-px0Tq68AcP-Ql|N1Wn@i{P0*?z{GLe@ zY za>v`pszwsgeJAToL?(=0;~-qjRZfEMRH$4ZYQw@4k@ZPBCVKb}ESVns7ah!hU!>tMs#ktS^?dCeQ9oy~CgMXSH0F*!@KKR&$x5!8GsA`$p$?-eG98UWTp z?iaLbADpW9;CMJ4Itk;tm$7@}&7E_%Knv@9X=w#Kkt5<}?`_qS5bVd&10*5XU6MfB z$oS@rZm{CK#KIdbMr#T>e$-1>u%BlTV?1;hB9A6la4Aviuy9*wt8$?frC=8Xsf8T+ zPaF4L+!D1-jPr2b7+rj5S+m_p9&sF5TA3^6RaM`6qH4QtcL=X^%|Tl*t5YqWJ~I}n zRQ+n8t!KZbXTO#?Jq7sH|Gw0bgh1$$Q&Mcj-B0(Jp~-Qt{+f>yif$~-tTURQKSG$G zzL8Osm<ypddybUB2OO3`Rwp`_wujj}#)E(sS#kLf|<>Z?`z5ANv)$+&iqF5`HHn za-T_=EF5U7aS4X5`iGphngkwUa9wUC-~r{{d-B3AED(YqoGak(meh+IK)ya7JKXxM zYAi;)F&4Q2Lx)x$-3%dL?^mxTe}0ZRtND84^WU`q2HH2S61}oNWj}D0c^DU`35uS8 z+DRLmuFl5=Nz~9zhyx--8aG+!mgt&+#+X%ckgo2ppxUoQr6i&;)ypciE>nc54v5|H zreOzqcmX-%f|+R12A)fK!ZQ>5JWifM@1Jvr0wU`w-N{~e3dQzKCvX;mh_;^DLk--6 zxa@qt#phSl6XO9r2$2pbb%s;^S117JsL_l%PLbo{c8Zc6+^4c_9jwgogLrZ#R{1PJFj*$KLpoAH-rw zsN4y`jTM;ws&>?5reH>>15Xy**}V`%=5x_mvZ&U|L)6YntW;ga+i8yyTswYDMHNBd z!Ufatd{30VzUn*eDim272^NCTnnCh~Vcun^!4)zRc=^tXe6i~>t*bJx`|>X;nz?Rd z%__+OvK8=><+~GDBA|f!%ZgHx6jN-l@Lo*lse_UNH5|EQ9VEGxoyezOWQ9~|!`*Z+r(89j4pI{&xlH2|Y_7+yPJfsq^ zdt7VtQ_4tr$BZ;n_1w_|z& zx1DW$O1oP6PGsj0?n68@!3zHI3jbI9%{PvrUXaQBg&v?GWYV)w3_-qY-v9l({*M+W z0EV&A!7ll{>3RNG5xMAoBpziF^rZD|Atmtz0`X}K^EWtbVH`(nRJNY^6iS(c%_mTy zD9T@6TKe(pSNs~xeT`@DLiggNCf@7)9Fpf2c4dS9+dx|5uN1AEf;bM#H z)2ZZ6FXuil&3}>P{P(4~i}H&#+i1u^Dy%I>;5#(_#zZ6 z6?O{?o5$WYcqUBgnaw^n6U9^$digLlBC+<&xEa zaS2W`0rz^SX!}_(2V6Bl5X$$GR5ZsO5I| z;zHmkXsqhSI>BBv9OVdhx})Zyf$@l>8K2L_vAdF*qL&XXW4t`yL(vV32>sb=@kmKY z#{+eQ@fXanVjR~czAWAqd5vcE{pbU6vmDf2ukLleVT2l0t+tN5@_OAgNkzSLhGPjb zmsFDi4CuHi8aD(1xYvSr>A$0cI7@aNW76jZRzW4&q}WC{a_2~Zn*|Jc3vbUhI-yYl5DWRitZt-=JR-;`=BA?h9g7-pn`_dPK zof%z!>?&SO#!q_yy`n(!-woL?{VsTIuANRmjHIQjm}~uv9M~<~cA|prArJnSFP0?2 zwDq|LKKU}@lJT-5|eDONYHOitsjPQHoZvb`&U|u#L_Aph&PfdGTr3=7Sudh!k ze2=HxxqZ(L{62Hpj`Oh@ly@g+F4j#Um&XX+Bm1lj@Z%y>wpR@M(h*swZy02h+7%*a z$j^jx)V9?D=XyOOXX5M2zP7&p^CgeMujyJ_(T6zN3Jsq-Mp=q^F4HUMJ||O>RtZ%0 zjRVYgW?SyB$Tzf4+^3a*wlmdq<6WjE-hHx=*!$~_BT<5xruKMmKHrn~kU`zsbJEb& z4e0LHcqcT6I|gLSSI3NRW-k1V9$b*E&AsANyqfxH*7~gm`zT`J}8ime06nOzvb@r_Dv_}wH6ZgTtXQO)Jtj=nCfy%q!YL?e- zZ&+d2fQbp2f}j2y+lE6GAe=+nyiV6N+$`;_^Zojd9ix$T!}A}97pj=GvcZ{m7Y5(H zI```e=v;ifbMH&nAIPNdb`#Sz8cm72s-zu3h99x>^8;1M{@&i&Te2%6^0`mJoyW;R zMRk1 z=jIXtwZg!j1lyY2d=3$9`+WvZ>Ty1`2j6LK`gMp^VjNF8@z#orf3L|!m-UXoB_s&} z7d_}+jXJcpGd-bQsDD(`KevPu+(gU>A*ihl2ne_l)>j7Rs(66L1>|6kf;Q zGx~IVe-W$`cxbp*FRSmsBf@lc^eA0bqCvIBXTi`^WbF%w>ZihjaZ`MH>ZDz`-KMh4`x6TXHh1y zgW1@be^N_BXbB%ZS+R@qr0swqXy^+Qd;rP)xRT-h z_^hPc!~S=lvtra!Y8RJsVtw)MhlyH_AR~h!8>2qtLU;UW=rM>2z|ffUS68Wj6A>YeNb#MMCLL<+y zwCYanPEc=eOVDiQtgR`119rwrC55IST;mSSyyfMPlto@&yw_L3f@$M_WtAMfLCsho zom=LSd+1T9ECSk&?CmPR+O1Xsrrc zjcoa?)3Sb-+AYLhS#N z1ea{8O|;5|a=EYe_5$3rapbf8Z=e{b@?0$9YP~1>AwzJ@VEofmZOZ!E+%LPJh6=&) z3H=u~_R^lNk0K02V}iLh_;1tJGzENpLxlQFN3U&6xAf-Blm{P7Z0||Z$_*fBU{R1V zpoMHr^W?8TxgnM5qG_L#8FjL=M&~fTn3W**ReF4_43qR3PejvgDv?)-lu>n7YWeiN0w|aFxs0U2T^<&^}aK_xz8fIc zVWNY{CC9eO7st%C&r86fozd?azESF9Ydn{=?6-+d|Tpc zz)qulZSx#!Oz1<4SIW~0eEXv5Gc5iE0f+mmu1F4}Vj6YOhht7ect6E)HG5R!`~3x>v$k|f5NTt#^u4uYlHIS2dO{x9t3 zIBJh}R63qe=8WxEbxA@S%-fBXVq>j?{qn|_Xd$ULEgcC-&%2N(u?i@WeL3Zm10j#^ zw^;oV__mvAqQz(Dw_mKzJcao9;3F^2I}Z&X&E}5 znp>q~-o^wJ7teFV_T%yrCdw;Cy8g1@liC2}$S^kKh3*J~d|a7%vMNu>6v2Kp+G}1| z@Y>x#$-D-JojP&Cnkcp#Fx6L}B@Zu%r(a;?%$h8ozL7e$gExQ1F6Odot5vetN)q7sW214Ec0HdQT++y<}l4Fe~)@(zo2i{Jg>(@!6TQ4-l2 z&DdDAZ?Ie%ZF-iv2y*`g!VeJnsTjM5s56@f!78^?g`K}!^wSDg9Onv@!yGoa-m7b9 zyorl@#LPYxytWqXFVT=xDxFnV!#|Fn=QkY}9JkmIT^*%xCyqB3u|V71Fh>R^ke6Rj zc#U#*Q1IWZsxna5d;SKqH{&iuhMqPE@smb4Y(8Tu$uPFR%R**$rf;(US+J-{B=mPDCkvOAoHuemCtJeOs;mrsMW;qF6+3$Btj9*Y<)v_vV?WZ@u6A zqO{}h*Pj=@vgSMxVpiXB@hau*+st&n3iLdF9-Wgz)SbMaKPcB*a^we_UKrzNaoZER zE>gb!tw@pjH$@5EC-21Q*T&J%E~ggu6pkBZ_T%J0(&B2Qfd>c5&>s|0;DVJb z&Nt%N-EXdX9WzzIv~&+B+d58I6(LiC0+H%CZD5s82us9rS6P$q@E!9=XdMAdO>0OR zL)t(lkYXgt%N{5A%%7~Ts(%CXm;Cb2SQTBE_?BT%*lXoj4bl2?ndoVED=QmG1%)Dd z{zR}F@Tgq-OZaG-#>N0i#yi@JiDA1akbn<8Yho#R?xLgL#y&;EC5%|iFm6V4^--&v zg431!*xGLwez4|b@w45M4m!WYeq7kW%+~QC`2GNIdD3>X!4Ny<$rdAL5l)rdAAsUM!E@Nbr=5kOPL)KOpWpXSBWM-{6 zDw5#*XQ=^1Svg+?7Yve(6wZXDZW^%gD7MS+TnZ43^pIIF@bCy$(k)1Sv5)RxriYi^ zmP_UD52ejY(#h}ub#m=(P~?cII_Vp^wYeC&w%7=(6pSBK7(i@nZm9}yrrvBXWzeQ% z=4?6EYLc{h=+G@3ko35yW0ZmnmK#$a-LQ4h=Ion?Cp&gqTVCm$Pq3w;=%(%C$LOOc z48>G6WSyOzZo31;1Pj9o@s22^xfKHu!MdJ5)tC;oqsu?MK(#-+>(5?!m!-w<%2WBe z3a|ajW9I}q@f6`m8()r>fa5=-{jjm0eYpk-@|=Glau;UbS4DPIu7xrPZLNksvM8+} zFWRZ9*csfnU-)&L(Zs?;`6W4VoRU;aEda%X9@!eb9Qs>pMEh^e-9bV!8+tNIQ%s#% z_UX3gZO@LbPFcUlRQme*+4XpMcpcpxGG1rQ_mrp@!(nxtbzx8-a%qCGrvO#*3xv_t zQtrll{Fr(adfT6uu-%ahrYQF{`V(2K6G_@K4w-n$OI<&Fsx!~*6Pi{tTVBs2bq8xF z#gO#RaeWm|=BF}BjUt67stU5o8|pP^_BQ$QmYvV}1o=%iPNdN&+7r1Ri1@!N!-U7S z-^hx-_2!-y8_#luH^fv~Na~hP!7}Y}r1^Ha_Pg4;{+By)@UJ@Gck5O*m$P0Wvx%8M zz`cffCl-ec#G!Q2Ln?KzE_d$=)OL9p9G*v`a8Od4fj0f-z_CatD4!l-jP6&3tkc_2 zu}__P#vSG?ng6VZgLT6e%@i|-$jmK%ha)*qG!lC2ed;OeV{pv`gS|WfIh4rHa^1Pd zlN-pFf<%t~l_H*&&iPt2avBgfkaT*>@9WCm-A2A0k}8jzl$m?-}x;2-Ch;Y9cfAoI)W<$B&j(>y~@*p@DBA z0tGD5=v_HMtQ!}3O=2rM1Voa_>gy!zfWJ>l`xex3Tt_1ymq`h@m6kgXgEP^7^-8DlugLEk|gft2&A>B1} zBhoN{Lx+MeAS#lAE%ATQ%Y4zeUt$!rAC5{*zjS@V;*vuUxxFVL38zmDbU zIejwNns9IVE#8m+u0*YTutU-2$Tv1s1ZvNJ$QySd5%=VNB!AnpTU+g!-ht8Tk|xKt zG|KM|NkZLvx;e-9YKgX6YySnfjW#OGrapYr)WTR(rn2G+*T1bfmMz{r##5_Z{Ho7j zDt$P0R~yI{-H9v<-@$?PU;oNln*7^QP3!(&@$%)5!_i3aaOUEVfuJi}RPG~t8T|m| zj_LNo+LPrdorfk-^foUOE6^(W@9U|U&$a{9S^_S*$7|1*dkdNwJj1)}V3{v!ifKNs z2s{Ums+$_gPzw*eQmM4(hux0Z&GCz4NA31!8vblsAZo8Cl-}8MeLO5n{J_8mFY`PG z*>JRxUeNaK5>e%;beOjJ$Jcp{Gddx*rNNbNHHmf)KbF1J;%jy(=GH<7vaRUp1u{3- z6klE**bbHf2&Wr+CK3tW(9?YUmvOyBQJ+tTLD0Nw0b3Y)ditTMDW^TGf27s_a-+2b zUr&P={p;f52J?s9oN7_gA5Tpqk^9I}DhgWBPN%VFNO|Rs3$m!XIk~#I4My5c$tU$u zEp`g&U%Sx2*)(ymY&`_ty?XNe_sQ7Eh}r4k=A&kFaxtf=@V6N_Z3LQM%2QCc5?9Zp z-2wz9zdWNkUGS2$lRkm5EVv;b9m!c__kb>O1x?z^>w;leOV;dMf`X~bDJV%7pnX3P zkB8G}a#Yc3CUx00onbH}I!(mQfg^v~Jq)^N*wUO-5W_fkaKkNzvkc3B@dq(@IL1i= zS>>Rgbo}6x7_M_?ZPN^q$=>Z?TTC}uae-G7;$t=66HI9w_@Cv}gDZwLo+$@NtTCKu z4IDStN0M(#uS_EkC0e%$9=$q_dRFi%%Hn!5~c(T|($C>|JSM@7YN{xa1!O3d_; zjro-&#dq4QBE$yKAO|<}{+Rd=t@&>4K30uRTyw~;?y8+nude+W8?vyZe559=ep^!C zm^Z{E%3l0yYk0+)m~zLF`~^{&Ku%n5QO?k4$RBDj+pj91-aGjYou;qv-1_l+_Uz8* z;Z7l`k9)UJhu-Ka#f6}~r{UHFi)~2f{i~}#UJO-K#MMj#shMCRdg{LH(G0Ne{Wr_* zf025UuK=dn*L^u|Nc>=<-SKvODE{w$I-x3j1h%GZmAvg&1mc1i`KJS@;qT^VVU{5f z^peEkVpGn^j-7oc97K}kpF`35A-j}<4$W*asN*?@ug`8F(Z9U_ey0!~G16{sD5-eW zikiH;4d+qZ%EL(?^CRvAup3cI8Aen<+FJ1O#ARQ-n;$o-o6j_{jb8|nfK zLrf?~uO%ZM0&)EpEF58p0sS>YMRos=R~8tj_6#s7UmgYdDXt)u}#nwvB$sDd80kbjGQ+toGUMPrV+I(jq5;8%2ClaU$rUy;tNy$3_ujEM z0xDN2RDn_e1cvgurN@=y$&DqHsZ!64#Uj6I7FAKUrf=nGrb9{4cNGP1SU#9&f+0SN zyZS=%=CS##8T4Dp^!`AMngBu@*BX1);?|CL#xhM7@2 zzbrIpB(GNoc+71xhriPo3=451QKy?69Q^UDtBs;6q7&UWNzFJMIy{}8*NW5p9gbs| zx=^%qUzeIBig8Abiv|%svKlQaxR72$HR;b*V3+@@Up(e`oQ}* zD}9%DU30$73MeU6#m?Wez4=}N{<5qwF)(UbEHuT)k&vd6iadNBM4)+lV41;1XZW>(|~p8@rr$? zCtffR_e-3eYcD?Ch`vSKK3{YZ|GMQFlgFy|MC0mIh}jHgOmQbubmj2_rVpR#FTpaD zzbL&}wtQ=Aj1aTwYrI}O=G?xv($~g2Fo0@<_uk*|)pixUCfxro4{1bZ>u@4DFFhZ5cdFHih_DCPh7ab}g# zLj3_f>eZ{bJiM#Au8~BC9rpZ`L96ujx2civv**`0RAp{DcN$Mzjy%bJHXImE<*H!v zMdCPI+44cSAUuzXyp=%0A&}#@W46xpkLzL0%+K@52bVW-(djjJ-WW#V=~_4JF8pRs z>Z)y*rwkzPWZg<1E8m#?=Jr+hl^&YY1Y9YFe;YzfHq~5jh$=v@9T&eebyaJ|Bt+C0 zNA77!O~{6cw0xiyKO*41%J&>Ba_MfbJT*+qXBb*XY0-c#-n5=+t-eCsY0dcCE@fbz z7RE3=__<21KQ?Z$Lm_9z9bt0){tV=FfcoiFp^hU;cj_D8?Tb1ae7WENR=736n5Rld z#~Yh}pyh1QT`of_3J;V0HYc2$-WMYcwcw`MV}AxNs^ygpM+WLQ#IF3wfSx+){FUQ4 zMXHGG!4qt(k8sal1G7xfZ4%(+e3k%)zBz%HCV*wgr)Q%Uiq;pJYy^+i$yH|cnH>(@ zEk+mCiFxMK=8g4&)~)9KZ2#A)aiT2Fb}OZh4hi9(C}_u)=_@|nWw@9KD#@6v!6_W8 z%~<){90DQzsL26dR#ui?&=H?4W_cc|c`Gg&?rEIFCQ1~8+@h zwQ^Fl0)9o!tmxUA<+-BpZ=r3vv2T1~%?yG3hiZk9&{QQ7M{6@Lw zNDAVcu8@@maDfx3I?XR%ZKL0{&Dwcvdvz882f$!<#XYPFNG>z~Z>$vc?Vz6_;_~=kr;_vDJ4BWQ>u3{5aLD7F` z)?dHAw$)`9Qs3}_6Kvl8zqHg!E3Chlfk7#ypp_N>6nOO{);4CbHwI25j8hfxnU9S^`qHUJn;NX$Ym(gv$YM$QgLw5iP)_Ad zMn73$-m$M{T_Cd^Yl|_w3vbe1Tb_c_!S^(w6c<#N1Ckr*Uq3UUhWL&ij*ZNnvnR50 z_^Xah^?{3~%BlKbMwC{>V|wrT)*2?2Cl2mo2}t?C3o2A=b{($(6;7expWA(Tnd7F|qp{ro6(e%g-?-xEJNUJ(C~(GOfDxAKr;V^@FU1_N ze(ho!00!YLiZLl`6hcD2uwAim(u04#)T9rBc04*2#7O70 ze3D9gt+g8;tp3KwX)TG1CRUhST1uF8x1{%2Ys>9MvHg!?Q?F1%GvL`={wmf~{P%qG zoPkw$eyYPqpO1b-xwQ)$D$MOvJKTzJznKSbZvNBfy0iaHyLT;TT|(`3RTV{DUEOi; zsn*79$TdyP_>4RDWXn0ixa6D~EvrLlQYtDji}m!`j}%Ya_^%~(NXfUFJ0UT2VOc_i-}p1)n*znn#874U zW_!3w!5u6x=au7q_TfuX+JLV%Q>QJ=x_SoeN*yC9IKod)l($rh#eOcgCz^l%s^)t- z%K73Y#cW7;C7sHB*E9d3)$NxbZ5Fme&e;_dpI3<2kQh!M^G*ewrXK&njD0o}ir!W8 zS_9MPE)Q@lEFn>h+fJLeRy1cf+C*#Q!gB@csEB7m!n$PE)B}d+Y5c41SR;)uIt|O+ z`#2i+CXzGmXK;Wq|fH( zi=Y5-p{|`Kw{Y`=qeENx!uIs8k8=2YbzW}uoC^xEYI=HaMo{yDcfnNUzV3%jb)|*2J%+ju%`WppVbOL{x1(pr zj?Vj;RwD|F$u*CbylF6GGK0 zMd=IYYz#E%?^Hx<=&D9qRTA_vrk0ORm%DW_9z8#*=8{Xu`++?s%1TVqZAx!FUB%o+x zJ>x_?AuNv9a-pG>WCv+k6j9egI^|WpJqwS2jlK1k67c7zdEA8*oi;C@(#u>8?Ij-?@MpwosVT;z`Eaq;o`<0l zw-u2budYui>CzJ(rVO{1aOZu((E>rIq0zs7yriU6+cMf6l9Ji`5>oCJP)b7OT6dv0 z75ojdG2=sGXxdD{e6hm)vc@a{0%XWrB1PIQl<7Hf*`>Yr{2k_B^Bi<$?+iB^{7fB_ zS32K?8y|<&`L2GRd|~Kz>oV9jzIC3p&u1ws-gh~|C;Wro#KybhaoMq$!%v%CKDDxR zA4IPw`=I1VCY2K0z9pdN>ks`2&KsHoLKgo1xiqtv z9@s*%(>(*)Be|$KPOV3IFmC0bcQdSmS_U?#AvHIcpe0I|gG;as-fUUBT_JDosL2`2 zxpa+mcSpnr`q4`ID@Vv90uCJS>L-O}hxm6r?D(Ec8j%=QVTtHl?i`9}`$`HsYa}kb ziIjHY5KaLx_itH)rKTQ9?&c<_Uwi?OVSK zx`gZ%%b#CwNx1au?45}+h>uxj8r9BwG$Fqve|_-?yFtImXs}F#n{cqeD=;jylq8J8&|dUECs|q{YTQLnYCmPn4=4 zFqgAs=@dpDE7Y!1o8-lN!Jr!N*H&=2DZLBfE5%oSPplXueu#_v%$4*_&#Q>{9d-8Y zVYh`ypLj%FvulKb193C@?|~>e0L^EaKSzeUCgzen&-Ha)r4Y8+#@Z{1F-7Fo;Zuc? zz6v#;m$3KH#Is1Gh7=Z4t@LL^KNYMa#KHs(?Z_=bRG;bGQ)bi8fNVvdQ?8|R=YKDP% z9Bc{M1gdl&z92m0xcFdF0|{j#_@Fi&ka05=QIku|42DZ@1zi932HEZkP)2AdXGqN6 z?yvaTbx!Sh`AdHVtGdN}L68KA64U=C5kL2cimp|)lbK2JIOGhyQ4TG++4U2s&;zRi zS~hkisD$b?F`^m*3$9*se2~HbOvWw4OULWma-T#k*p=Zk^i>T4;I%>*Cp#-X*n4{B ztAt;?0up0yg-z?&kNWLv4s=F?GtQB9HPjqoSb10+Y)X;l7u?_6=AMfPJB)D2YL6Co z^dr96O5DGHfA^x^wcPd+Yecj)tX{7_nn-bMmsn z2bs0-WbWHR6(~y!Grib0NvG9QkI@^)d)vX!2Va;8X4f5QM=5vA2^&0-c~CE_U8+t+E2}me za0*ULfMu_U<#mm_AvhmmuBKb7sv!%NMBh{LMP%GG7R8a0ZYcltv26EOHZyo)v;n-Q!T}Q!s5|E|cAv`(tGwgiR}f?d0eeYY`OjWH zuKW*sX{Kpa@K`B4f<=JCxEjy?p4G<2uP@?8O|~dRbXV7|q4RhH#=KAj_ItuD;Fh&l z7X;0x!BpG^KItl`n(2Zy{a47~e|*?$oO=!X^?|Qp^yt|qSAmbHCii%RP z-_=<=l&O3D$ZDT0XnV7vq=XQRzx3vOw0Dn>W7(<3D3KQwsjEMF563A6Ibsp$#P&ro z?4@g9IBzuz?9-=e^Yz15d@xY6z?tO>s1bi3+12IPx@lfDnU|&nZwNd1eETZcJgdlr%@yGKXLFa4|1<1?AS*=k zLWYM9JgOS2t$`1*wDb`1-k4~Gpb1f^g|g#HpMWq2P&UP;n0iR1tx&o~yEIaC;Df{y zgLLtG={s16|6{4luDjnV@8XIg8ygb83QIl5k5&f@t&V{8b??2qsw5L!g~chuF7K9e}Mq)+1uN z-;b~(XcS+ybu|M6vI;j3d%zmSy}Zg_?(6>*X#e%;Bmve>QH)t%%?8EkB!M|G2UH7j~A5h-T%fcqxuqGeH4go?vw&0^*%CjMQyrEL+ILF1;^{UEJhD%>9TcM|1RT2=`@CFyJC5ZmBa}5Da1ANHBn9-;F;^J&&cqaIe zvxQ)H<3{_tB;52G#eLb@^7TQ?cA9DpT&0S|Kme{^*>)Pj{#W>?K)@>MvDGndl7Vy3 zP%(!R4rRqj_(Z?c@=0jf{dtR@nn`VtanTz;048N*)Z?PmYgW2%v_sIGYXPpa;KRB) z`PqQKeKqkJ8UpPbG`j|ARlN83$7=H{?i?yw$6pDo;vvm6{>t6vjg5iA9kzwiB9tai zTX&DPjvIKPXixH;nV*@PAV&#X;%h=^OhK^6{88iq!uj+$O6cN7wJ zCJOvKmX7Evp{_HsTEu)VncLh({=aCTV}bBwoO^O-xJNj(L)&I3LC=rGFDc=D^* zLZgxC1A16t%HQ9AXVmcNTm-f0wfLwWTHBYQxflCI5~mv<&F|1rnrP1qW>C%BR6N=N zzcQ}2SyRDbhSnMtLwcY}~7{beoqh?{3DG9=14<}Wy1|4yZ>nM<{{E>8t z<0@bZ9Br}!w%g}bt};%&p{WQ#b^6FYePZx_z*Zn>Fh_E|FpMVj1)tZc&f9~?$eSB8 z7`UWSDu)W0zT0 zj2=$xcuuKW1a8%>>`cyHP#HcA@@mF81v_W~UXAuWo{K_kV~)NQ9NN<5V1gL7roSQ3 zM|qd0vzKm{=SK_kae`C`wCtmP%-W6>X7zePwp`fSS}kEA{B-&0<%yxp#qom0HXxHH z^A!oFDuD{;SyrvmIF;PgMtCLR6u08D*6+3WrZj^Wvj*N zysZh4!c3Y_H?h=rKPvIc3<;GoVuWM$Dz@ag8cJhQ*+35&sK(N}~%V+9YR1X)cU zHt6z0T^csU7-aoZl;IEaEgN)I7U1KN+l_l#A0AaGY{bnx0Z8b3*Y8HHf0kvC@CpcU z!(1j$WWR)kjhNWplxMN5s1M>Ak+QZd5Py^szq?kHYw&io$wt*?#A6PL^iRm~?gUHV zZP^M1IJD*H78gHE9Y@U$c?%zIrNnji!OG6Frt6WZZcKh_JIkD{9jLXESBRxVw(T2u zjUD|tAndoJ5+SOhv5{f_GtGH`nCQVG^+Pq9JS326y)5JliHnQ0a}&7r-|TB6wPcQg zNC#Rava2iKZGsoONI!tiScaKPi2xqq3V5{p^=_^DM<6n1i#dOJZ2KxAhMcp0;^pW% zK#VsWL(l+v^rjoxUVp+`9&#Cs>W+r}Mlpz%1K-N!7x|0b#Cu6bwziyd7sr-o;FPOa zSmYm9Qd-M^oQ@&&Vsl~R8Ak1Ro{3w3pnEjZ^JdAE?qsbGRU34=SpzZRunv<3Gxkn7 zyE75f%&rO9rX%&cZPy)CchCFu$m&5BSB(lNSBqYMYt0}LR<%+`s0i2%(#Le?=Njko2KrV`_V)L7 zQMW0^?&KZ%VuPFT=383|<+)hGp>U5Jrpj5t?7^8ar%Dsm>IwnT=bB$dp-{zJ#ABub&LMB4{euT}qXaSg zWKDmT>2e*ZtcI(7nc-%Ug5GDE*w$Opt>sX;zPKAxifrXhLKW~^lC)%G$ow@YYvsyguJ3NPPM==NO>kg(L zugcmfDTPlSDf(P7v<6iV`5Y+7$}2xS1~gjkU4KGGTa#98ruBs8=2>w2=Wz)GlL3|c zAG;(ZzJr@Brl+8OeiC$Z_Pav;oiUDpV6@;&-D_clpzkF9e0}XjEd?FftwQCF%1XV! zCTBsONj^IQZTR=L@r(>%y3eG-LMMM(r>0{P-uN>V^WC!^GOhZa0&ST}*hR3~$(bgm zrweu*^KG9SRFzb>UBN&{VJNz~x+@^eu>ms-fyOAMjD{7ksEI*_qS=zRwp@%ohm_A@ ztlc7x-#?JLLt`}9gmhWWW5PMeUiQnKIz@4)W(KK#&=t9#e}{#NmhpC9bm}O{?IomE zeDGtyTbj1+(4@vXIu1nI4o505_%4h^wZ)?a-KW@+cNVU_T6o=YLJ( zHv(5w3yIIU9cl0o*kzn^SxR?ht-Da+SUu4JtAnfvW7fVfB}`woIDSrBctT)&Vj}hU zZEkFV_T{Ae0;KoeoEwo*l{IWhu?i12sphj*6gsN16e;Y!sm1Je(AUmI(uWIWq^C!L z3ja`seDwgO1g>8bneEQELzYu?Q5~AJ$1{E_jC@ai746A1BbaQ8Pt$^i6CjZhNSvya~t+U&$M%TiSe7 zIy!&4$tE9wK>I#?_%P=DqNHYqEP!`&JckQt=JYY!Glzlbx5KAz8n&B^0w0Gaa5o)% zHxh-ye(yOS@0GlJrxv&y8SXN_cX7IX6vC>sMJ**$5heAFGY;9Wv*5U|e3e1l<5bqa z;Z(7}Tm)S|CmqGz3(?jl`rIo|7xry<^fHn<4(XjHXKS?|ivi7*vRmk7j-l`0IpkiJ z8#?@}8*%u4_aDCc^E#GKtkbZNCKy>G%g80!_>@7@VXZp4nVq(1yZJQOregoRvCLFZ zXwhypEGl+KQY%6dCxBnL_H#nMzIev8h#m?dc^n`*c1P1ZV6pviurU0sIIGrf9Xf;Tf}g z>2-!1gjIrr7q4qD_ta3jWF%^4XP=3+wqn>my`b?pSu3)fsIm_elR2?4Lm(=;no`r! zzF*Se#V9K)hlQ(3O0&lygHnv^Lhua+;9n>^7k?UjNT37P^*+BF5(G4qhcuAR= znPPM2fO$}mWwYHU`oLB3nlI&hrLO&2v{Axjch`7a_JicD-E3DNHJmck8%%rD+*7Ua zl;1h`PKu~L)tsV2x=bbGG*3xG<<2kv~vg%opG!_sFa{Vkdwyw?V36VknDmkv0^ zL_A?45|4oOry2lAdHBu81vuNAOc%Z5jy4^0g6TFaqQ4hW2z6XQVx^S;#_{j=E06_j z{Q2~{^b!(j%50It0%Q#-$WJ^}{LaYe!-e&}rxKd)F(s6tO}CX#)6J(tUQngwP*5pHCg|l8hTiQzlL$%Lhq{Ity#?B`;LRNx86$hGd zGZjZois;e%``5{>FVTFVNiS8#RL3W{T!7@oHUeO?#iQ9fiBU}cs#9@n$A0t2`hIP= zV@Wu#@C9n`G8n4PLnwPv?kfO0!FvgBDYk;`ApW2{&$Z#gd?vh>&!0bwHKb0wNO+f$ zpfrUEI4XZcoI>GjZIvR|QuGzme6}QryBWatakzF>F;HrF!eCbn0A;aC63!BA|LuEv zII>5$Hn+T%a}Y~(O|x3V^lEq6KgZ6a@S-fq~IOS~loGUnvqspyxObW6zFVO*=%!azi~<`iFHXUNQ4@&NeJ;$KEPDsz#BL zUPIpt#mxCi|8}g#h;y;S^gi7oBVOZrl%%OTg;sdnu=>cp=cRI|()LuHzSR!ob7DAi z(yc-bGi)DdPm5OP{bUBE&J6Y6uQ80hX6chir%0~Vf_80!cyT={z8S?as>x0_+Zp}dD*5L+wH+u0E6_>`rD0+D)L?%o_vC0Q@22U;mN74jLTZQ0q`=W8GL zT^}I3eZSgstGh#Ydk*+RUli!!2jV^;E%Kxw!F|o8@0g#xkBHe z5Mm12HClx);+p}Kl#~!7lJ1DM+=RI|1X06?L2hnt19sIU4K)}r`s)RxR3BB3nUaq) zyyBkWfD!fCbRtd<%B}BpeorR3_tfn5hqAqu0Uw(+F86qTzr+PG85c4)f7e66IV zbF56G%;2p!B-68glln}M)m(1&PYYwM;MM9|ZB*>f7rGW#1UgIpdJmC7L*gth0GL4lzR)@|29W5M#b!UBkNE zhAADHajVTE=bxUKrcWWGU6c5c%4-PW;!+J1q9Pge`En!ZwVDFN8u_|ub;UDf{BF#P z1fEy20f*(X$!)4VUsdOSzSTurZNB@Y1Scb1JJuz$?+4iZV#9LZ6+bD1Ymz2D8;7&! zn$qLY)wf1#wGYTx<@?3%|fN6jTkEU zYk;Vqp5k!;T22YsWQOBp3vZp1`c+Noc^HW(Y3-TwzQ(gPys)|#k&svzkOIqdnX1+8 zLZq0uv61SMEd}a=LypAl3H=m)({UGaFW}GbB?vhQWm2=+ZBFwIFiQS2(A&6_;O{hh z&aC*e7Y1vID5;lXkt6-iHPd2tepiA-zBV0{F;DhRFXuy!KL?TYE-mxzarX|QsQAIv z7zDkfi)V@q<16(6ce0p%nLUj}rc(hmGY0X~qsf-j#J1Jq()!yzGk!&*mb0n8RPiG> zJ2%-F15VjGHBSd>c*`2~HsbK`@OMfhhpJOvBQFsd>HNM3GYiMn*o)1%LujsPl zqyT&bV^Hl0Ob1V5Bae{nhG41jY6&>*`X%|}p4t7pBo1=^nF_@$YseZQ5Z(mPKFgnu zy-6OvYC>3v>#-hoVQXYd#S;tK26sH3{EBv(w~eh9WFG%sju-6ck$L z7Z%b+;2uKDSeX4HqJE}JVd=lgx!ycd@%8|}bJt~0=#Y|sx=a2$YeKT-#JOCstVq|o zH9X<6+xlnx?hz#lbr_kois))OWHS3P^CAXeS!p~$&!fFTxJmanBDv`&fE*$a-Wn&^ zRC~Gn0+d-B)!)o&F~g{W{m-=Bp=@~SWOFTjsReC~jWVci#82H(sO;HQ-%I=9!_*fv zY7TUdR=c|SjXvG_{6a~Qj8^S6+pc**aEY~5m8ck5@b^-aI3TWAY)#cw<^pZL2fp+` z87Ti>-gGIeM)@1{*U^G^gjPUEAA$~-g^bYpa*HzG!4arhcz8i} zyBw$?>iJIqVVvz3$x}Y%dA+b?+yC-iSI&|;wDdNjiA3BnaLESClU)pI(uzt93 zd;tZaM942YyW0CCW%`FHs*-!MxM+VpusJ@kdC2}o%5?4p0pD;ysai6}9C65TnD60Q z9cTiqtnU6;A_Z~8#97*obLZ||XO!@f9sQOmf@YRNoEK)4JoKzVOS^@fx)91?wL^bX zMH=+Fh=c(_G||iY03wm2HUIS9pZ8t0XP0rv-uI7eM$WGr*j-O#Ujo!5!pvPnfOIgf z%e#F4R*zADuox@dn^FTLz3k0}&V{i`>g_m1 zj~**zR?wD^cNCpe#8*}Jph+X&&G%{&t~p0cB7M8ejW~_`7fmd%!)-!zzWJ~HKFmFC z6e_{95S_iIm=cN@_{hZzB>kx^m!(Oy%0!f^`(H2b-lQ=Ju&eF z!6(Z2QP%6%11j1QB|SoLv+21m`l-~Hj73@jD7o81tAdT-M7a|#RUP^)>%_&?D<;u3 zI*e#fN!b|+t^Gsr&OK~lu)v*j?5RLTQ7jKV+ebYjAp;@Gmz7ML$d9K&+V730KX zkTXo;Qb{@Av4arLw;UaJ_uJ09k0#ZADQ=6C^>bVDv^)Ns(J*`=qtf{`iO-qe=>0^+ zVl85-aqSO0lV%OmGpKMWmwzPTd8r#|^Im0qZ`$NI_+wD>(1q&bJMt&1P}CoPvpm5R zohiE#e~a7){;xm`-qCf@4!CMWnQHhdX|&wL5>@WNHB9^IN?-iIoSD?>3$q8T+^Vz@ z9shw4nCztUfY6#+y}kv1Y~?AAm|YzhQ-+iMs3qXMn|Zq=HI$Zqbbi@kcKE=(v%b+m z6ex$hSyQEGoPCzc>O11*2cM;oM8ZFpc?CMpLJtZ)e6Mn2naw=q=sblG%6VDu!Q z{MUKqPbreqn;j{~(s~R=J{?7my$RZ5Xgc3>zJ>pgqqqURtJ@&g86sis8rxhGhuoT? z=fhxrJQOtox$ViuSg*eHX~b~|5(s30G3 z>7!FLlVDuKxQd>})G;v+G&qt;cvikx>RW?>31Vn^OOCx^VU41)BQ9)(s5IEgf7|mYU>Oxb6~kV zno#YlXMvE~C# z9&**!PObd)${4+CBWvxqis6s81D|3vp14*KH}8DGhXe>wO78A~RF}QL(VjFf>h|ib zA9J^J_7#NBuBsW96LNEPadvLMYOYlrsRx7^&!~?sT!q^CANWyh4FmsX-+;J%ZX-~j z+5&Pw)1acy-aPk#Lv!i`h!6Yxshq>B#xW*iCpzO9;dO^tWP}$ZOC~BI)u3Jp_jK-v zx@f@#@KJa`C7_j~mg^m9AfBL3%)esgC<;7J4%PqZZkmctHwsu=83PY)=dr5!berZ{ zXgwsAOP0zd5sw5*HrmP2o9ea4ykCZIpx{=+8iz)%)UMJFfe>B15Z#(9xmI8fk13kC zDVvUdaAYJpjq1b$)_S@dd9!hM>o(H#K23Q0=zO?B6N~$W=julGOY0iHd$`cdR=2GDLciv?_%XDR&K0 zq2rRbg2gzlT&Ztw|ISxV=djEE+Z#f1T5fEp^)u)jwhIjSz`Qy(@|MNyGTmtU0)*B&$DJ&gct6YXuzY7VXOI8^a-qH66VQoQgKEZ2*( zKhHaX4*awNSMTPNSp41mpcnI+nbd1X;bhIAWH*A}tU#l!p>ZW|JWX;_w~%bls+1}< z#XPA}S)k!cpU7$$xyjg|>a3GjJ0xOJaO{`dwc3XW03v$$EuYUfsGq?kjd=GxPGHX) z@Mm2=ZHwEx7A`myVluZRlTv&(ez3wA^bZZyg1v1wBwQH8T|=6N&KLP1XmR=3szz-d z3@2zM{)emtf7k035&x)iUP#r+v-&ujpw`C}l4kNEvWq48ejn(4NFM`iY9D03WI;t+ zO@_BkhihxK2#vrvDocye8y1jt`p-{j+-1Tl=~a*FNicKNzMlWB!`x}wWh$hX|JLn0 zED#wz21&8PBa#3^FXDJh%UQL=RMzk{t3oX-AWRQ?>&S!~16LRZLZ`KJ?02AHwJ5>Z8F!sD->{h{b*Ruz zt2X`t9V%r5(X6QE=8%wPHWR(Wa?rerUdW5Gu}WE1D;vlbcOCR)=T1&c`@{slYIoqn z1`=CPA2(a_daKANCdv|8(vZBvNnVB?>kjLuNuQg9eY+{Cno%dhc>`bNSAI zzUcewT~YXyRzyOHNxdic>RWfC_G~4%YkW2ZRO*v&0nAgg`^lZ#59Uvu7f<64m&=+? z)UECpp61R3n7DVd&vW_u&o1J{puY4Y7Ha)Y_u{|T)kGs_P6Cse?(H+BG_@$6E}k5$ zi+tR)GPwjIoJcS5n2TeUZcS{GQ>s6*1=a z-_=V%;F6|HR0j6ZkwRJ;dg_soAhjS)F>3L-j>o%1HK0k$2rPtBjlkcD1y}(x_M&rf z9Rjtr8o8wNw!T@a%3iwPI|jot!l@GA4QgDt_M{TH0eJ}4RD6Eg)=Wnp9>O;!Fp3PP zlHOk>kll1~U%zS`|M`Rd&`1L=IYMu~3=Tcskbg?g2BTa3F=UEwCX|mUre7x(Z~5^J zTi+I!0E3~)J)-i)?0b|MsWMzPz3_KDGx1wqwRQ%UMaW10BBR5|{!*q7(t*YvS21jP z|31D!sWD!Ur!un~E)LHAwjW#W3su$5IMb`S_JI~x@fqY$)1{^Jy{Ev zx;ZifcL1I|$KQK<5q!x>Ne~=bHJt*>qC%&5YExg<`GtkuaogOy`uZm$P+@hR2A}PY zquG$e#~*ECd4SBCH< zU6|UpJy#gSi-x$}0Xd5`TZCU3=ir)AQMjErH^I1hE8{~y$+R-r=U+4KvND-wGEUA~ zn>Z2&SHGulbt(=mG&JRV!xs6I*$~+=ZV5RNv|F$I*)5p(vy8sjZF$u#(C^5~FP`u% za2x%n{a&zCdx_G$EdKF_wic2qG0Xe38^?)!u=0cFz8z(gL;O8g4Z3-#f^fYJXK--m z=8qa5X?P-2e99t4Rdr1q0Sr-5kpZ)wU_lLOK=M;J1lVA5M+0N1y8Ya9v+LQ}&t{rJ z%otp^JA4WW!}6Ab6BzHWSj_*>D0`v>cHHg1cDzkFoTb<%9qf2V0#l&A`@eP^s);O6 z>hV|Y6emvA7h8qQz+W9FzKKX3mA_x4yyh%}3J zz)N9E_~p)86Xx>bv>kH}8l{AJd3pZXSppsRow)I#(;nD25EF*3&F9_-iep7$S+;N= zfeF?Y#5XNI23ow%KGG)>?|T3DS2q*F!Ssxd2$e!MpjM_9bUO=UJ;ZwpM$BMyVxg3j z$jAySiz+GOE`4Z>dQTDpKN^s=p6|9Puhn{KT}MVHi(a^@@PjBJNYyl%k6MY31Ln#2 zhrky|_h5R41Bg{BTjY!<^<7=Gv_Te`lP?Q+^Png_z+b45hL$+&{ zSU=l+H%@x{ZeZXYb@f&=n2zaL|ITGBBNuoI>}7p^iM~zgQOUT#);`qr9D1)w{dhx>fS;y7klc zOVzRr-@)A9ZjY4z_=NC~XW5HE63oNU*~FNW0X~|gj&BUfC0O8E~-mS zWndUptamy-KCbY(=xd^<%zR20YC4K08oiP%@xfmuOD8e^iSa(foh$v7X}1UiZB zx`$N*gB2)TVkU}C&2Ka9%8b|9DrdbXofRO>%UOHqA!@_eZsYgrcPq)&iMrpBX zei2|LWQ&Z*gb)JHyRe%L&j0r2>t9~^T5Z3|`ep$wF(={L(EyGWxm#41YM3xB;iJF~ zuCuK#ciO^_4-yj-^4<`{Q^p7BK~h=dp-d9ec*Oh~%64~WhejTFGuXFdwu#f3LF1Ou zrIQDElxYOxzXNX(I&|nydEi4UPi2llhc4`+t{z+=341NW#t`P{JW-_b%?XFR8-hmkXfKlSP!WDF3vAcc4c= ziRY84*YB>9&al=9NIH0S6Ad6EY__-2!xxJo3%`3t9~o5B&7`1Ez>T=AdWA3p7I-tB z1zmrVnyM;eY_gCzbDTVEVX!H1c9_%Nl{4&9@UB_`V!1nK0eVr?gl|{?oy@C2liv%z zSgqcFUHnneYL`dmK{#6Nn~u%xC}A#&Nb=5~siI!2WoHuCpF~+%6$lz`K8~quHi>u} z?RIMBr5E=1YT8m}tE1)41efzKg(mpXO>j|RqW+WXtbi3I(2!}YZPh(IK1vu!v9l{P zi2v#Z4HYl+|AjMOA7=`fuiQ8}a25)SEAMt{P4a-=vdqVKx0_GrZ-HK(*m_0R+u5?uf0clW4VG|pal8{mq>6BJ#)7{-6-OXM5`~GwO zd(XJ%-t&*)03AaH`+e71Ps}x+IZ@5Bn2@jQp=x(&iwFg#cuE^bp@Vo}ofRMRGxDgo zg?k0$7?H5{b9s5RD{x;3TN`^LASjSs@C!!e2sTk6hSq)+OGm@9N3uhjLrLHxEz!rj{`&6v_`cy3@V{40$U*uGJ) z<2;70F7kirNB!R=!>ka1oA8*01p{y>)hidd$iNdiGyc!#0|Fx7ev?dV<_PJm#n?r=1?DYjEdB&IEsEP@G)176VP zip)`({YKj+8u;+c2lpk)?LI( z+$UYN$gu=nBG;w?M>Z#g80wpE0nFk6BH)IB@{=VA z00Ll1ijJTQ9Bkh3*H44gs(Cs()weAM3c>0RwF*3p0Rrhb$W z$BYSMrP!f@y~)m^F&ei=^j*teUplt3?Yp>8N=Uim744l< z6<=R6>wPWy?)dLbb%toY(B+t-<}>~>!A9YHI;ev~&d|k65bcED{s%Aczp}s)bb!l5 zrE07+kA&X5uDy??6rNzyGoZ}7_7l7Hc*N$B-KtfK5Z?z-?;oZnFq(B}U|$2O1`6Dm znDDj#9e%pwkJI69de)e8Q$(>#%P4lc0^e&1TkiKFA~#!m`L}o_-6EdnI`nS|?nb`I zp3ASXHe=?E|M^1OB(%8EF!a1ep7C2Q9h)e%rY1|Q@0-xilJJA_^amnBQ?&?vBcliI z8p2CN@o~KDSfzuDnAkYztIic1(9_fGx^EaJCbLiM7<&>;k5TP*s=j#N(Y^9Md+>tM z%F=z?9@EYx^n1DcfB+fw73Q76n>r5d@sUcZpuLzTj()04Gs=dBrKot{2}Og29eb`BfFJ+Cxl`eJ5v|aQuR1X)bBs5+!8hi&gDAUzW zik_Z%2n%H<5fQXbwoPT#Y-u)EA)_2gxZ6$<>WEDSJ|vp?@ncN;Hp+u(rYN`lm)y9t zTip{|>+9h)HS#^lq8OGPR*T*NBwebi;XsjR+EJ!BkIW|O0ppE_=UFoq)gbNLtg@l6 zA-|Rc@2bWUQXpJ5#)I|fcY!OU{TS+51g_UtPyVgX_ooK>k+k3}9L+o%u&uDRKiK@A zL?Tel08X6oK49XvnSy<%7ozE&u&)Cjqy)0tzD^WXI{BP`ru6}SRJqU@sw7aIK}{V8 zs?nSPw*cnH;myir@g5D6Gr?OqI{81?<*XG%4Gk&U)X;MVH(y1c%D3bA;bqhB^fc1t zs^8P3wY2?lzk1Jh9p zmtup8E`Qyw*}3szXG@iF4NXQC&(A_T6A}4m|JE8{==wK(PF1xL2sHl(V@C}d;A#cr z=FixGL|r_A4Oq#MybjKUU@xdb-(|#teS7L%;Q^5>`)VQQyFV8jB{5VTpN>QqMRA>@ zu$0kO5UO(aaD={Fu5m2h#;Sp2Y}IP@SLi@sYV(qewL(Xvxw9I~+;zJDPYt3IUVI{~cxlR@J}+Vx6-; zvOM~q4W9)>{&!2N=>mcD`vqjLjm1==6xLPlc^fnkgUY0#2j20W2bFB@m}BOkyd#~a zqViQV7FMUo9!65k#8*jpY2z)ql%xY{eEa=xW~k)PaHC+>@u;KEC|G?wuhBX z1ctNM_%<@+)iEvC>>Rqb9!u??KLoe4;v(ng3d#{tZmCIQ+$-m23av)VdtLnD<6(hg zVTAO{a0aE4H#>&M$H$MRzdl00k9z+;JTWnhzfa`8j7;#^D4<7fPgP<+c<^9jW8-b7 zl`NpSO`MG=k)c_U%A5G<6Lio48URU;WSDc1wfh& z`i^CZQ_sr(sH;UedPB=2qV42e&GPbK*%avbNSTWOR77|_dvq86eo2*)(Uy+R`q2=7 zIX=0a$!$U~yi5?VmLD@QS+;JSf;+DBSto@Jh&WlY2L*omMhQZH#PUz_xpK&Z3p~mw zaANFs-?dp~2UqYp9q~_GEorR09C$_@6J(YTZdiR|n>h9)y`45}omknR@gd1^aRWRz z1P{t5VZgA7jx9df8%(v(v$Lz-%N}pMK2-bo=@Xr(r~zj9r%#`j?!Nc6k(o(6m8z(c z84@%LI3byuo+hB7iGjf$4U*ji+1s;i{rwyISkz@s;%PE(Ruh(r6(gG_MZ&QKptb|W z`A~dtS@*%cUsA6E99OYeRwM+;pz|-|+8b~MS3UYY|LbHWm>s+aHgo->`b_X`j@B|G zYy2Nz?V`?MreUc>4kk1!{@|#be!y}w^lpd?*Tir6r+2;QtbTY=R@cA77+__vV!#;6 z_(xJ65GJEE2k(+Wm-P|)AJQGEc)7-KO)mJr@J#{9V{jZQ+go>_?|{wP3XMp}-WjRI zbfau*>oYhw|ACPQX)fD%%h`g#VeIzcB|MQfWd%x06^C^4zTfejJ5aa=Y0H2*(D?(oln7#C*i4uLw@cl7Sb-Fznyw`L`gXASb$n)s2!tVc_ znp#)Zx(4{K3 z8GlnI&(({mgag`B0bhHV1%*Zs5dAWcBX-{q?oGQ$684q8yT;RI1yqL!m_V*e3PPg+tDL6kzTmXVh{W7QD$iJb$`j}mOxKeMlSh%E}_CZCzkV4+L|tLyzU-g#fAK=s{DlR3y!H@0K9yVkWNC?>ij7Ma$l9o9 zx%=&~DqLCU0PQ@7C8mWp)(EZ~ZfARTJ8r z70)nH*MvF0D-|&n_NJBDnvRVN8#ka1KZb%mvjPncYj zF)0b(US1|Y&HZZq1ypXMf;tgV&z`6{v`5f0VDXb)4o_pd7o$*XcHYPdQ@q`;?Fxju zxjbREh|&AP$z_Cq9aUZ9m`R`U+kXA=*HPs5GNuWTOb0@H9Oc9vTTJMepQDrj)Y(ca z*YYzNr~bl-sh)`m*Ayle7KB-@%l>%`LZkxZ%GU@nQzaw~fpugf35<%b{K6%A9u5p4 zbMVQI4zWvkglR_wJ#UsQUOR}z$6q!^SQU

gJrg(y6LN4vahx*H%w?H>@tHVCDD- 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%0A(*s z=OG3`J%bKxiqdh&+9>+n)p?d#_OAxf$|(N!WvBfup&^n(F6q5t%1q&(q<==Ex>mh- zFSfY9wRY^~BrNDnRC`~>k1FU=)s%h*_N)U3IoN;Kc_ke&`UvT8RP31l>y&%YT7nu72U9R}

WBWctHDrN{&u@~##gWlmhk$9~Ni%lwl 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 `*RAvAzTk5KQ^uz!=g*

8f#{t(FdfyvaJQNn$`p*VF(F*8 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[?u&5A)g7NjjeoS zI@10Ac>kS*F=2=^jB;94B}cwrR9f|fB9pz*z#6txDyuMI;%W#*Ly)IlO{72^XK)u0 z-%(H!y_kq|I#efhA~U|}+~+SsCDCs5a}w`Q4E7fq+x!&0@+Oxcc62G62}Bu6jC_y5 z_vip*yi-l)N#iSSi3!9Hwxt*~bhodN?{K9fRqNj4vM(>pb*PiwdR>9bSDN@xYEm?2 z>Lnpl)_^T6dOR!--|J!LeKBg8d>9kMvz$d3dxv_#_|*!m@6v5mAF;i#+gaFZX@H3+ z+l44;_6x{AzJ3GCLznQq2SDPFCdCXY{oe;YODSaO7gQ~nC>r@1TL60OeJV`z8eNf? z$$Tq#ctVA3uU)q0i&huBmcewzhVydopF{dAUT)i;ZU=Z^~g0VG+&bd8$_)qCI@v zJvSxGQAtGk9d=QQ5OcxNcd>=BEl49>+3ies;-fAxWJ+=4>BE~8vl}&ZzP5e4^HpLO z&+sl`W-K3E*8F13B&}H{ibp`%3W`ppMtKnzR;vS)9o{D;Bpp**{wNaJkM;tR?Q|#_T0VVNJQpZO4MC=QAm%Q+>gA@7e6hcy7MSq0ywNs%2t?hKyfL> z3h^Xf%tNN1O7^DdF90mnP>=$0NVELdRd0m8d~&Sf@Nk|m&85MDI-i@+^hWIc4vAly z@aK<`vMZonMYF@!1h@CI3&ZbP0EwvA%hO&}d9Or3E+F2C@#XE!?__|8y0kTEKv(a_-#yxwLd}8}hcAyKk6MZ#Vtd_iJZZ)pIUFlA7!N&B- z>S%vs#lEX41{osOSm+-)ECVjSsgnaNiSO9%8d=E)L?vf?xS65+}@sQaC+ z8^cnhGq{`ysZ%1BqcMlLhjIgzC5fw%DY2V#nb)}hz@$<)z@8kQ%Auz@Rk5(sS_hFYZ&lZ1xUv*}ND! zbZGFrhRQQ#tWM6d%k~N1Zsyk>BOXj)Q@}CJy9UH$LSC`B3mN;Vb#5{e4Y?3Jue+4>TsS$)+c11c#xB72ln( zPS!(N*BePC_OdOj;vIG;XAcH9UwDEDBN9l+o`56C-}&V?4|Y9Shm3Z10hyh;eK83@ zqfv%9+4*NaK9(O!tb#GZB?q!%5fwzQHtpV9Jkke6o@gX-u-zlQyNVpz-4XaWPS^p~sL! zVc@KE5}8ruB-gQl3bf0-s=FQ@Z}`>A^KtONA@vQzsG1nA8`rD94ZM90@dB=)))q_C1IUGD_PD{NQ z+b;?WNOjMXLB{(>7~vP&RF!2h;FosmNfFD|3*+3n zx1}`r@xDMwn~UET5s1_1fmMBb(C7a5$76V?0x7cJke#l<=91BAt1$qonF)*yzecQ$ zB+Y#kfwKR|8%00Zujm@E4K^(Y97X0Qi5*0bgcfwKoluhi|>fQ0EW14d=P`S}HZ ztr4}Uw;18I3z~QDU4Z|pn=r!*Hgy~68Nf}8Z;e*h&z|0>7!h;@JstG|a@mM~yuipF z1&S6&*2&054e7&vSOWp!0+J?UK38Lnae)ss{rc@hn#C)AvZ>zEn>hSy(RIbn&6Z@e zzu^^pGVory%zizTqxi2s!Cyyx-Ej4*I|5KMudfDB(=P=Dd2kosB}O9!{C1KcsKLOv zPhgsL^G{Nr1K}w*RJcR%w}<(PuYonao&P}Ra$h_udLG61Bz8cCGu|IK_-psT9z-yD zUJziRB%dR|QSi5DG~B88hyb&MRtNT8F8|=pb@WO?noi5Q_Z&1B{}bT2 zdfR+3<}SEaO(v%#ukPTG0eX9i;BT+Bxn;z@Px`DNKOcDmtN8YB+l2KT=!CD)%ZT5v z|AQclPXO5?9wt7%4sI<>e`7Ly*nE_ep?3vJ(r+-l+by$kVHAQ)lQ?;TryfAi~&;!;5A!#cm53`>I(q6cn@ zC|?waS`-%NBO>&j+kh*@9uB-%M<0B(WA_)A2Q(BEY)6>h-Xu%=j=6h0%Jhisw`eT7 zp%%@4kMzGn{Oi+V5FnFS)Z~3BK%~bQT`y3QYykK@8G4#Tj^+tCTkh(8hZ5c8_Gz2+ z#Af&$MJxp1+|d z_MgQ$0Z&#cPs{f=BMVlBS|cgZ5N90FKhA99G!$=xz@x2h{o!fpiu|si`(ZuQk1Y_Q z_R@ih9d?MjnCSji3>sRLc`==;vHbnbua(n$2iug<>+;<9$L2bw70s0aUrPdQ=ah=N zdkyUbtk}s=VWuvlPuGiUPJ^ZyL~n;2a|KSpU{Q$n??6!1v8y2Urp zFlc3g82uPcV3DQ~2aQbse;O7Pb$0=ew-Dq~{aAoRibXXlfD6E%$()RTWOe&vP`?0K%V2D_TV%!MM`5>Qb(EFu-jL%SI+m9T zXcEfe4RKx%ANsLBMb1OhL$BG%;UVeUxQ?xEK^0^0%6v{z#2QZX=W?BS9js?!pRYj_ zqd1Rp?h^bKv_GVy*#|6QTa)l4BA6!A)21i(p0D^1Ak<+=I*!>`7>t08;v9)D4M5G5 z1MaxZ&<0E=y3Ancbr(5@+d@d_h*Vv1Bw0QI0TnSkV zFdCh$!E0FTuT3b(sBA#7y}|IR%s+H{@DQxqb3UH?6iDANE+Dq=A<8v0z12fQ7Xi{& z8f5g?YtsL_LN_bp_*eDK3R>5O@9*K3&5H!&f?50OLss6yMAX!o)suJH;ukYu9fYHd zh2kc*4fzE&>RM`_>ys*&*?N@~+NdZ6ZNnP5oy+N!?qmj@R;NV_C@vAE*?+aLJ>ee0 zb%8#2YnP=C?3lu~NGDBtp1s)q#5TZjv#S9pKR6sjX~UmR5(B>k95>0-snOnUmx$uL zo!`q#>+3rM7GB%%RgW570%a2tie+8(G^^8@s;jx|8*Zy|6=_N*4raLPJAv!TZ+|x- zrY0?@79cdZ!B)ODAU!(fuCA?K)Tdj?EXLm9aTC^_QIWv+x;#RZMpuLS`jV^`ETXA-jjQ>P`Vr^;p++fM$=L&S^^9%Ept+d}9O#J-JA*M+YdNA5#|E1C9 z4S89th=b*Brc5)|S|S$Xm(;i??5Eg25Bk=w#*qs6_GFTxH#PhD?vFoZ+LCcC}C)28C}<7k}2!$QsH z1;vsJp9I?h@qtc`+Z3NU83KK5OxKMNXRpqFKUa4Pp62OeH=StkN|jgF0Jp+f))t$q zHZwvG^B)Fd6|8POY7b@QQ+X{=uEIkOY(lBaK@a0Dh?_WtALzx#KxZ#*CN$+gDL5Qw zv1#VGNzRpF)z(&B?Pfzme-!tg$o>tfr_ETKxHNhF&HPzilcG^Aef(+|06Y(lDi;`6h_TbiC42-Y$@rljmcPHJrAjrnLZwIS)`>NJ=&JuQa z2Wq}~H%7D*fjQqf5=tpEsiNzbnJMpoRD<#lBfy>|rg?TBM<~6bkly2<@N#5pYip&z zYX_BjmG=~yFPsiKbQjV>@~uIjQBYiLz&kd^{IGK*#4NPj_)Jm+vY<}R?@=AY&RJ-Z zYrjTe_-zRH$bTIZ?kj4f`0COT^Q7i{$I(CRg}2v=>EHHn1-$`fE8-R(vHpbyV^92trU_{H z(qx**cQm7d&Hq@9l3y9@XvSIGa3i;eFx5@!B(ny^>5B%2?o37{HMeU-U(4b(<>Nl= zL}RmmjEl>!uYY#a0P6fUn?=KVwRmoP0iZ2+lN;0Rz4RZm58~#Ku3d%uK59V>5YMiH z(@1QtYseeDRR5q#Kk%w+^$DEDf3aOJQ8}6L1FK#6^+vKhP)TFW>HGQf=l18zjYgR- z<82C|1*%W2-htbP)C@H84??)|($n=j=RD=g-KHEiEilNg?((7t;(YVp33AHK0g%tX z#iIgBfFOs~?ZJN~NHU0%_daC7;)a!#hlA4*KRF>IT@2HNwnf91{^9gLCMl>7b=HR8 z-;Vvre~pxdrTZ#*`>eZRK~B3j6#E9&z0UA;3V8d3;9unYe${{Z@*{ww?%qF^0dz1k zv%Agcugl0qEn_qrEaU0Beey|mk+c~8;_>QT-cgZLoQ;G8>(~!l%G!C_wxw$7vBYTM zWw3S@4d_tiwvbjdCzkXt(fBJRy0-tzk$wDLwtsLW0>zQ)_nbz5;mFo6j__I`vYljf zLb!(C*Et{LjFD#wkLQQC_~hs3t7+8AW{=xs$gAtC6K|zY&)I*=>Fe&&m5t)WQvd(F zf~H0*IR!CdHKzDQq4couyhJ?fUpC&^>7^4jLFQx%-#djHm9D>EBH}3q_QJ}4;^!J96f)0cU z(JilJGuYe$dIgf&!zrOY2>3~-cyCCkdrg7ok4Yp|IjHt?Y)k@ayJ3m>%n<)kI21&@ z9xX@c-s0383{UJJ#fze#jSP?{ILOH5cM9?!zP|#{j!Z{v7}{SBmyP~kZEpb<)!P0G zZv#=0P(-9bL`p=EkQPvoMqof%r5i+=0R;g;N(pJCVPNQPgOKhRVo;XY zo5)_?IpzfF_nz&M3Jrol1TI59f>0Me?mJypkdeKHS@^5HE}SpVomQYYv05)LAb=nu ztVmtJMSzWiwIDbmG%B;epizsR*EobW1$6h;b##wQIiBI}h~F+b`*Z*-V*XnUA$-z; z!u5sT&6+!OUHENhf{t5z{JSRg_>cIc|5cAa6s2t{SQF{UAaUF^;ry{C(i@y<1_sHz zmbU7#q&8!f_bluOwLVB~Y)_Mtk|N(QN|`MVt;O8*NPheF?QzO{U9UiWj)$4m{nbPS`SvdTMG0QCW#X@r#J)PBsM%4i%8{xDVN~ z&kkV?-qBAcGqo0*4_^SW8I2k{$sfXd4ybd$w);1Bx89w$_i~##`Tu)yzJGQmoP9@& z@h4c{hzKiF7pSm+X=$0$Ff)jX4;wU^ADQiG=Ou5!7cUs=RR0FxEE-L|Q$fGj`gslDY2OT5z`lwyipoc| zW()#rV7y^5pA&NPtog<^qi;x8U{QyaARkmnwv7^>rP}tP@Upu0gHt5|r`8I*)U&nW zRMy_^kEA!qR}x$NLu@9l0;W_%Trz;dR)2d1_37YQKB-1c>&s@OUq$E}Cx#}L7pLCU zF16|}FPMx8RtV+#-u7689zI!nQ!=0MF0}nlz=+rL`{A8K+UZ9z4Cy72&*Jq8VUEEkVkKwswzrO#IOqeU zdTI~z$phya5N9bu5t>wUF7~}rN#PC0J{H5d7DNg&6gyBUxy+8Ed-y=){&K>{ z)wJTh+HfN2nJ#_|VN#mZi-y)&yvh1FNQ0JpD*mHDsg>H}ps36bHSzPm_hkV0Z#m-K z{wG`lQF8+X*)Ats;X6_hWD*cR*h}}B`kVvey3@2mXMV1GyTpHG-FtxwNCjNJ_>MM` z6d*GK`;hpTKUd%QzqI;5t|i=aP7ybsYxO_F?dwy~r165CH6y!Jb5dE$1=KnS+pPnvR-#!CON-??C6C(dnftLa=z|U{Gs`6`AoCVINK;ke9 zc{&;r`@hL*B^0h>dT^f)sHqwJolNjW9Lu43q0;IqTj4T8mu~-Nj!U z`GYA4fJoNIb+JrL&zxPh-yQ>n(I?#hGXAq7TN+9$84h3O!I77(AHIxh@u3PT&O!O; z9MiSWo3nob1-iepQGt3Gr34hH`F~Y`F2Px8$f;5oPVBLVqGu`Wm>CRmUhZlZ<9`mI&Wz zp_3HZ7Ur0SYH)PUsRt0UoV#B9nfk(Kg{f8DC{pML2k6hP>ers5`{QO1Xz<`F_$`U? z>>8xi4!XPF^-M1wVAEN71(KvsJpp9hGfJE0-1nt7AR$YK+|H37^7Yg03>`iE*LNl% z{;>E*`ex!bxKl7Y#R;64#gACrC)Kcy+VJ3jfS!qC6agWx33neYk{DiRW$#UHkb~&b zg&3Xr2VLz`UH^fuF8#`LRKL?jPY>>P%&ve7hcQkU|L`8*-NWyCj8D=kg##p@=B^`u zAK%cAelj?|s@QUh%_~q`EfQk*{}Mi~#HyeIKa!HAy*RiPPC{21L9s+)I9l#fG%%gZ z*nIhJHUx+3l9;AL>8)?#FMo`yuew}G^G_{6Tzwo4w@Be1el%+S!z>+xB4|;8G{0$l zs99hY^HNM-c2DZpL;kR`XBZ%RKM^X>F;~^UKAzXI3ylz^g9nDiwYt|-nlcoP_TsIG2I$Hep*Pk0F2`-V>S z-87@AfpS2uPVIXMIgG+YhvJYoFb1D7tPqf%W_SHiQ**~^OanxC6`gyY1mY3~6!aLB zqt_MR`VH)>8=g}oel{a#h9(KSFc}e@kPHI2b<$(8;*IUvWoDbGxb%VxhL|c#1*#tY zWrABL$MJ&PfLI=fcR6#eR=pJXz#mdsLLRm9!?ij0{~a`uK^RThopp)I%v?5^yI18R z&C=Y{)fzIxoXng)ez|wqrKP22f!2i7&op0JTi*GJc7*;r7Wd^k;HPhynJj6WGAdf; zg~=ihX!P#doTQLzX(@iTE8E}SUvimTys_Rb=m(Zqy3i4HE{$ep`l6M_#doc8PJbH=F|DrF!K30sJkrhr!zEL|ET#Uz0T!-n zve9d_Mwq4Sp`r5h0-yn^2Y-O`<11c`BBLk*A1XdpPwg}IuM&gA0YKc*Y5=QYkGD}X zXICb23-HUvJL=d!gFaeN(5JO&0v8^Dj3Pj@4Ad`9pd+qc`~2l4WmwoZvUz#~JG(cc z5A)??*=pEiXmYwqi3VPtPYEAlR!xX{*gvRlVKaAQX;dv!!KGELz^dlkd^XPwb{V58 zr+@tLPu|O3MF7hNY$8l-ya%z_o7>}!b$p9^PUyp;;aqX^P4n3}2N&!Wn<80Xx|~!-CH2IehiRW( z!Y@vCf9`WukPnI|6GtGo5$Uz!ZeWsZ&L#o@rgqM=A@?!*sKRNBF|ohP$g59I;1K%{s7%^*v2ka$lBzXm zQg4snK)>fqMiffuBS%tWSjD>P89kFdWVmF5_O|-_r|ZqQXlY{JbWKxVW6{)`glRg| zv}_Gn*u-nFi@GS78CAG0ZP|mI`bA9n6(ecLYHU_&yE3qINx{FJNR*V_2IO~SPtnz- z2NvoaY;3;~@B=}W7bDYP!%(8#|HOY;m6mmwf1`k87!bf%b*O{eTFd~Ie_Uw1LHzAA zXWGVKo`$tm;i&|-Dk+SA7&9B9!6Bxf8bsU%>RJPX22%STGD-0t+AoA?YFepkA|sb_ zdk{-*eJigsFsqt=b9;VteQCN^ZSFuI?9j=T^PF6eYGB5sK&p*p@z#b3(J(9xCUnJ# zD2aHh{ml7sd}BRZSI$+P?zP^aUW-$}u|Ksm-ug$B$)k5Fs9(wH{%PE>(6U#d;5k3Xi?PK(pBlR7&qLqFY@W}(E%KIv`Q6vA4r zNWkz}sV^acHPLXn4G~vfc1W?nOVJ%i#aG`&Z=O|Lz)N7?_Z)wwWfi?rmCFGdtAd7( z{|+eXcLBS_>r3YTq7RfuKqbft7j93<&BY}XvfZ%h8ahU?uJ+DiF|(VJ-#8GAoK0C= z=k+Ex-56AE#6lFDbLuKYYn+vS?^vg0(XK%%HuHtddSLn<4 z6-ckf%nc}G6y)CAU#4Q-{OB8SDros#ZdAYPsa5T2y2{l zToKADZQDKs;gl3lMN6MwE&%ju!V;j`j$FDF9A>P)1c>^idWzYdRTpF-oa`M<)K6>w6&0cB>{NS@?kmqf5;u8!N{HvoEx8Ox@Ak()MA>!LoBn`{B6nsdltZ77ff{ zpflZlEweVxp;qN>*uJR7Rm=P6;+&^fw}Zl5AFDm_?hu)}NCW?TzU8znk=d#%Or=no zDJ{N}A^q006{2hFG>D*hm)`Qcy7l6LtqPE#^FySs!^~UVSD=UrcILDCA8@AwD$ZQQ za=GHDFG~hUR~y-WeAjcdYaE1VgzN7uY38Ei+=9~;61rXiAU(?xBAn1DW*%vglbu&4 z0j63p4I~Dv7hdZcbK9Er(a`VBTu3k@7XWgjzN{VbfEOnCc=ML)%wg*%RT95ApIS5R z%==4J85oJpmj=9#2UT?K#`Aa_ddkxUKKEJ@`I~e3^<{x@lo1rgHzArcH%|tMLHFZ| zbAZDtE3-!qM_GXsZPx)QIw*T0hx7E19L+#3srAxj+@`)#NTnsH3?0bLIW$o5)aBOo z_yzS3(a1e(aG7Cc5S4|i^oB=7^dDz!ne1*PyvN4L`M~JjJ-_Guyu7a8cFBd#aYw2R zE^H7^4IDlgcV%+ljXB)QwiEmoYW9^i-~@;?6?3ShZUw2jG8ha!3>sbw$`w44XlUeN z5#dmP@0G?#CMOr$85Fd%$icv2qxi+!bLK?Ds=9ds=lOuDwi05xuvgD=I}Ip_)BBG< z{U4B5b_ogFolWTz8y8W^BzJAt9*Sus(N*?Q}*IN7UvOlR_#D{k9 z`USYbQP*1=B8sSlO|`c;lr zD+AOjFx70O_3elD_vJVBSdUMWWVD^Zh<6@&*~voe>dbjNt#owea1hAek-DY-AF`(d z$sUr15m)y3e#qWgAy3vCqgG?M&YLXXw#O~=VX56Cmloy;IJ?%32zbGebV3T@yAd!L z+l?FQ>gZaa4`pA|rJMVZ_dF!#PLNA4ka z?!3+w(jjdOJg4;7(&G{~z2FWesKz_6eJ0cc{+8E#MB-ri+v}2NYwkg`5l99}Kdr}& zm+bEs0n}^XybR80hZQp?|4ZuA{{pE8U%&C9MAuCTuH3k$rP`uCU-|lmTAc?4IQ~s} z4SR({zgE6CeL3$dqm=3VcQbWR&fXZb?wS%26_r|v0@Ws2YL+@V;CLORK?%7brf;A{ zRo?{pzSKh_P2G~!Li2g0`GM(-kn6$n>rbkeV-un6CV?BQ&>L(BTxH;s3X_YRtCZt> zpe_{?5O5auP$!d&J<{UH4BvDo|9lL$5du^$H@3(2DbpcO-ty~<7D$ySu(NAph;Nfq zj3%A+PB@zS7Opo@ab;D{R@SPb^8l&>IYJKoTPgU{EY?>*#zI?23a4Q3M~{?m#zn_N z6>Q191vL?D{|iTb}8BumLuS}n|pYI-zOxI^plmNIz}NvcVuK_5J;rD zu2qoi)}lHL<}+{3&eXqDK1RA$Cv~jr5xFBv1G_w0|9= z(0csdQ}k^F`PTJbj=Bo@$;Lo)0YA$T1Q?G@^R)RHdvm$9uHI{b)Y5b#7X}Nm(z)Ua5`R<2dkBr--`8Xm}H%e~*-Q=vWMyFQ>UV(U^omce0 zcFA8+Sr?W@xuwo7Dkx>Xib$`NB_kti(S4V};hmm&TM(A;((vAr8=k`hvmkXO8d)Bo z&dx0xpoc9DpxgK9*-Q1!xXmX@0A=Y=y$@>gt=?GgwNJ$qqKATKLX+LeE?%1Nn)9=8 zDgqoKC`Cx92h-3%6eg=wEIci?TIC^gR=F4-+QZ{_@!f!_(a8=5D8Sz=@M0$5c>>Sh zNxpNlmmV4Xp}YMc-EI2yG9S)*IQ}e+7}}JZl(}j1!^%V z8GpN_L9fIGfOot@wd|jCOP; zEP{&-`C8@MvaVIIe%)gq(H$2A=!kytl{Gl1Qvw33ThG)vuXioI(?_fs6bU6r#^6z; zfL*1$IOz{_P)M6MN0dBv^5Jv6z?*U9K{neHHFY`{;6L1v$BgHfkCxu(@$9Ao3Etn!~c$$gYV@t^R&kYqhB3LNE>1)}Ug1Oh~P} zgqI^2tz0U}Pu$YoUMI*Z+)%Lg6Tv2Q%=wP4EJ$(db=!D*O6BBL?7~>cngbMlemW7MkWleQTN;n?T(SG z-bA2Ao)Uc-fq0*LolRtXb*S(}kcO)$hH7;8k> zH^K0U$8^;;EyHsUF|!<)4+fp=p>w)B9xUNgl-Zzju$5Yy3u5;V@Xx8B1J%;5GPmT6 z4H<;7B^ z|7On$=Pb@jSh+p!rd*;Pb0so62Tl*dI(l4Jx_2kKKEMTTDBo z3o!v(A7Fy1DI=}&N5Q4myh(|!7I*ypWhjLW%TEzTEOjyn@nw~lm$zr9orso{54E%IrB=xuLLeG_*9I2C z3y)^+k#{gS#sgcodUU100&-^$^zto$t@8%9u5n^%=#NNiy#S;SRN18hep!O&RzEyH zo_IJ2hKa-B@uk+oIqk8pOUx!+Bi_AxC>F5p?4^e+0DO|s`n1??=uMF1WkEekLG@3f z?)S?Q>|FuGu?fVdefF|ZDJrMo^^DozmX+W_TM?|6S(oC=+L8p8$}rH}RQX#j%>WlA zo8y9SPDJIw$Hc#NfA7P%V9=}7$6vbSlO}+=T|G?AZ5ihaUwv*Zwjz(ztC7b8vS~FP zdQabMuwyC4Zu%T-`^#x_A~RZW*;O{X!4AMjPs@yrkzH2g`)!R*PPURM#3&#^L-3QEx%Jyjit8s^xk_=(9C5j==eu*x@{;BAbhgdNjQaTk2D|w$_fP0^)gzJaI_xH zA3w`i`Vh&*s_A`-u=mxQVanUKrWxd2uu!|X%1y2Fi5yHBa`=bJviE!Pl@j}q83`B1 z=~D)?KaT}5q+%5;Fav7^g3GgWe`|l9OBtW&4Nh(b>AF4s0=_@&O0@gkZp@>x^COj^ z^A)ydo__XxQ=z9WBHb<=6BRYq2l+wh|HP8gd#iFpNQqmo-cFVBTnI z)TJ70VsvV0Dw1X{wo$f+|1G2I*Zi=y3x$-I9)%XL@rq;$q&8%yX}2-tvCMSPRXhdp zn143vJhV~DA&kM9fUY|bT_ogGIQr}dT_DGwB1zDck4qQSI<=}cncH-j%ZnG==ecUS zN%t1{l~I~qwDw>%QH+s0n>R9iu{)H3QE;p}8w}gp?ZDd@X_=+@vJ3#Jdd;x0D8|}& zNpMEO^gzQ&UOyhX@uXJ@hy%T9+yE9?7Jffe1z^~RK2SSx(|pnU zm+(QaCU^jwDP~`u#4Vlhgl-&v6EKij{ z?6tevd8e&wt{6OnBZ14MMowx%GlSt(nx7KloI6j&e z6Vg2}PARA#=I?6A=NwSQf}-a9LXB1dpAtH!xpzOU!u*wtT4Q}TC7*losdJPU3dMIx z4ckWYWj3;V(!QX>q?GzYk3@4uI)v{T_cxVTM4Aoe(yY7I3`7wL&z=VDqMEPCJ9~4N zMxG5so3xS}TH17x!Q5c+Tz%LF?$5$Oc(He&+RHdEQdHiXKktFAe0Aw26|xPsvhYdO zZ|;2-sig5l`iXA-T8+28{EqWJqnojql4!|vTK1rr90oek_vl1;jI6Aa#Zt@^YHXak zaF%@uRiS&UBaT5ol&ec1m8*VWh@gaP4MqC`0JYVZAXg#OqzG}hX`=9=8c;$L=0FME z=HL3eW9FZQvW)~v$fW;uH;yzvk^|ha#nM{&kx;8tP)YyBm+mbQ*u0Qw@hL(ocT1j^e}+RuKp#WC)- z$zW~vU{(uTx>~i@lr|!#&0))~n^fGg2d83{4N5PBy*)vhUnkz^Q_-Lmdmw4n(;d{5 zmm6OCoz=iCxX0bF{0Mto0N-zZMDE#o!LSP?&TDfSZeqP+xa85`7(2B^#}{r z5U*uI2dmix1r^ubsXk+z7a}SxibN0U>P#&fA0qQ))zjWC=Y=^QCS>@uZiL5mD@C86k_@7V*3=~$N7JVWbm6xSnl)u@mw2|dyU3y< zvvcArDBoUALA6)N&WB~C5Q$0k5)0gSGhZl48DO`uLSFC<(LgdQIwVA0Y6<|xTSp;6 z#nGx;`p8w$=*)@YE7mX1`q8oQ-bWu`#o_Cxv$-5K)x`MT+w9*72vu0@ClHt~V^orS zYXB?al9n+8z&^>3I#su16C6w*QPz#1@%KW-(y4)*{@lADL}#6UdDp z+|%_Hv=bRVtRnxW6k1SPDm9e`#K0v*Jw330d@^sI+GtRU)w6&Hdxw=ta;+pHM!8P1 zH+gIJyJQ9n(ncRS4Celo=ryF9u(1_{n5Rtky=Pe{hnHQPP2o={@d|AHCS|tpoT~-9 zl7gLAs_Ow0oZ?_4eu0s-cK4G$-jpA~NPJK+>pQfX30;wYpkt`i# z)~DVKQnTs>Hci^)9${pb`%h(Z`7B2aYCK%)ySgbwpA3cMa)=4c%{&TzK(^Jfp3)rWSsPzq~($;yh^+x3L$ zsV7&)Q1bTmv)tm)#8;xo{*)f1y49RSDQfuWby$LZQ!iE;^US3^;Ps(LwO&@GL^NT9 zAia56WAejJ04V z`c{GNX}sB3k|%=u%8K(oJptwi3yDP~%zSdM2LZW-o3q}^=7M_<73U#x7kHWb2RI;d z>s`Y^t2a){0=TqL#ci~MLEk?H6H<;)$v(2>{M!#|gMFru(CZ{*D3RwV%Reh78u5%H ziVH_B9@(snPg)|j#e(aa&ONP*R3VbMGM6DJD59dsOw+_sftH#tm%1Ni81wmZkW7V7 z`sf!X{H*Xe#_-@|7XLWwtCcKI^SByU)^uszc&1BDI`xVMQ41wUy9bH`hq)`;ySq6h z+mi+84P97Xj}ckxj4Lgvv5wucV0`uTmQG0f`g62W*63Vf|Lp9I1IPKyt;8ESuacS6 zkd_Z%oZ9k!#O_HpL^Kb^T9|l*B1sG$HGhDU!%20N_(P^6^@jF(&-Wu$B#LM!X`e{f zb>ll`R@%##VUDBO*T?m(vydYz+b1bD#$&7hsDG@71J)nYxMhr6Q1!E<{i=ApviZE` zy?ggg@l2C;at`iyDw*kjqCHkq*W#3j7@A9o9(P-|L@8VstZhX9?#bEo}734d5Z|Z2DKD8S2sAF!9svG}4hO<+U zkS>Gr%h_N-F5K(^H3!($?x{1o-$nNg-<|5v$=+s1bHHju;i7M{SP``=j0Y-*N`iXx zD!S_8rEA!6hY?q@x?7hdS(Cz~kvKEj|fd#m5`>@GIy zxyW%$kVvjIb$_JZZTKB_X?tQjRk1F7YeZy?eMuU4;Kw%I`_yBRDBmv!3G^w63ZFqA zE@X87{Vx|v*UYbTx!{D7;y}8lo5H~sd%dyK4JKE%+{^q9onD-6qn=b;RJlH3B1nEd z%l`a%HoJA(bf&1)Z~kwm9Fp(eOItcp>#sYyBeGnr_bEA60AA6?dH*;@A(Z~pqo^F$ zuZR;u4t(6QZxgpe=}P13{GRPeUw-9me+Kh{e<7hCvFm;stv4aqsRIgWzK*QqfEHLB zNN{Ju3)q3mW4LdwgSF*Czf7QfG)J{!+A)%7x?)>%Hzm1q=SuT^@_$zltmU0rfNZB@yNXU&qAR2qN3;#ukHOuw(AD(7bV z?USITpZ0fkO0o(u45wN&=uQ21MIM0x4N|c$D8Sh6Ur#CwO&%#qGx>`1kf1*%1B6ap z5u?{}!>n%LJ=A1N=5L<_mvsG2lY>|+0a(i#Wut+A=OTa$wuASqP8mDn+?r%H2YkCT zGQsC}-!}m&OV4^*^bqH>iy+@<8p57}Lk=JeG+N@)0#U^YcH;lehJWQV-~Sx#YO}!X zYKD3UW6`)aI7Nec}>ofU7**pfSs# zw{d=;R5N$x>t7}WL&N;|p2DeS_K^U}I;e;A=RSbZtW;>9I2x9Dr_M5Cd6^iT*{XLM z<1zVx`=$FA$E^=^-1_u`f$z5J zXsBMt$J0f_Lz*MS#XMG{)e5S{9Nm=)+G@3y6eU(38NQggbhZd~0rj^~o8qU>zc}H? zD=(;9{8iLBoHYG&4ItpICF?HQPI?~UhihGrH-lulX7ra~=;bA~I%|am=@}W$8!C$v z36v;)(B}Ro`dVm=t9s{E&c0VKv$S?}ghALLqWO*VNI!p7-HsITISQnH2yK~bj(80U zRcjyemi)R#!@3c#(|Q;}6B)p$P%X$><;u{t7o@R3GVd_bk58W0I?7lneA(i_1WXXf zbsd-~%O>wgP*BzBIagD#EW$paUToSZmXN7Y<*UVG_FX>wW^{yZ3GcC~hP-McAGMSb zUX55|r}+gqKF^xZJGD&&JC8{Z3oQ3p79-giZo$Iq@@IeNB>HB+UEb$fY;m~V`2mo8 z^6Z3d-o3q);@vkc-w0mk#6O)@phY&8jhn`|?K^Ft8pYkdCh?9&``5SY~J_M5b17Tqs4!aed&g$H|XOwdOBLQI7_v$vvw>bNMlZgDTkKb zQKlQ?ka)P{L`bn2xV3yVzS8twh=@a;*-)DEgP|~M}ua-%}~rfz41qKAzu<~FbyIQCsFAU~|7L5%QL6kn8Gaq&qy--)Y%D+IBEC6Y+9s#~x{gG*#89vTyoZXRjN{nMBPt zOb+Be;ALrwsc3WCb!dn0@-AV~gXZXDe<|XXY@j{D&RnVGvC3f!XD1~=1@MonSLtzS zRT;)C*G@*Bv(PW{C`t&X%4y}yelLW=Y`KTNsjcXGqPeNyNO&0x>2+nu*K3wTpL{0C zKEdCOf4KQ#rC@_tq^sNY(@P41PdA$HbABHspj#S3s*Cu}?yfO9bfQ;SCfIpBGg3;2 z2e)PmNauO4>y;pmWY)NdE3KQ1yaIQt_?-EFGc(Vh3xTz$Oi^sZO)N`8)-+G}ni?6Y znC6kk%!$pVaYe%U{>WigQ`G1?hi~7_I9xp9<_EJPXbne;rwr246G|jJwt1|sZy4)`so5s#tR9mH5L}8<{xb%*zHB5 z%sK=t*4Rocd+zrm)Ji|T)m%cE>PN)!bHnXxuL*#4gzZg_c+dBErXH?TT5vB7%vQ_J zh%&k|tkjU)M}ODz@1hl_+Zn_c%`jkAG@l>3T(h;}gu!6&9+MfSl0RMX(HN{v8UNI1 z-nQy7Ko^?hYT+##aXqQDeWfo{bWAPnXK2w zrN_-M@p)#N%?vBd5k;9dpg=X^WJliBjFA|3WeBZheXlaTz=L_=3C}m|*9wZ|9zk^v zVym^*jEC?j=6puozGh|F^Q>o?aSOp>yR;7~c{jf@SMi#B$!60|51*E&P7^Fa%q+wd zPqz2*&7hWd%@YMT;qoOG>it_v+nF0Ro@Ivt>0&y_%{HRt&POdjO!lLh} z;O@eM#WRf9Y|}Sawsc4Fc(}JoG^>iSZp2?&3-HuFzK`=2ZLT5SS{BQk_50SB1S2J! zA09sY&CfpcO{ZUu7@dcbO!tsXQBHiSe%z|FZ~eE%_K`k=RhBWAk#^S`4A(|h48t8J2Ez$K2x3w0WN)WOtG}1I$PfL|$q8V`5%C5m-aV zOzvwq8iW=a^P~R(9&*Orx}%j%zqA;b>eMZc*jY~gf!2KXB(RpoPaO5G1CwwrEFkf= zYW6tFR3rfPlB_+LhmcAqBiHKijoJEidH>OHs%Ja34PM2*Na=ipM&@9?a|DO3Y}lk< zmUDp|H#leaB{;!$k`8}(Yi>rp>w6^Cf)Ujf`ex@tyOHTP-!bjG%U_T-ZHj@@cC)~e zrYtXMv&^lD2NPtTbbXgZ&fPLKK;Tk?KB@K2%YzOcYEKtM6KFu1u`qH%j0LEwmIzj> z8U||bK#au1_DM9ITlHb0(q9 zY6H@=JJ-2{h6(9zY1&^4YFVYY2&|MS9k*VIOHIcNr?%BnOVr4Agz^|wIoiatj{oS1 zSD1Z6^@Q58rc+5bKso;i7{Dt2Tnx?3gS8-#joH9iHj+l@z1(u?VA@{D z98}$ffCs9iycHFlubd@(^mz4cj45sG&gb4v zi*0iB>@c%m=KVJxJ?OO4)~5pGVv>Sl#R`vy!SX7vjO?ldXGpskV7~b`%*+TyclII1V)r5of>a1`irJ4kYLd(fAt~!QGsGA@hSNO}8TKy?2GR3#3wfw@O8O<)gZngi3n|1kj`% zaWW+ztp^9QqUVI(_R@*T1Gz))T3b49j@Q~NrLTn6uJmidLmXS+2{aV(Drctu2oO91 zBS55t94K&`?LvSHS)A9ExU{Q9gB3;qrIU1?cq}h7^ZtUN@%E=32a&+uU6VO-;Kuo#iQmJ`JTPe||3L+q+H&gM#aDtcbr z#2;})sMa<0Rhk(vH4v((8HS^qVn~LBR%}#f@TJXd^KJlFN)TR4#cxwY+h9s7X65xx z0FMGLerzKFxC_wy_RXzyWB~2uj2B0XsZoa_+%Ku&O(cflv$1h|>B>o`+jTGj*mFwC zPZsOX)tICEsbk*E`NX*~Y+53oe9K_z+EXw^#B3M!;JX}M=W6-7V`>J(*Ujq;UPr93 zR*+2%ml9fh-NWJ33QZs1_JaH0z~Kr0cH6oeVmQlPxwB&q{n}e2em~@HDA$p1;Gag+ z9k60Y-uYX&Msy8QW9$z=d{QK=TKPQ*5P4DIH8pM829kQ&`KQ(0>7a|U#XD33+eh+M%E|&tHh=pv!U7Wy^Z7$$dHwyzt z7M-<5S9U{FM?!YUhywrW)b?@?*1=q}s&NMlyT1lJku2bn_rz=-!Nx3d2M%bov!t6M z*&xG8${R8e|F}llexM^ZL&X_s)w;&FrKGmszSiafq0bj>Ip5E4Cuk(u6s}O|hkSoF#dolP^w>t! zI6dDFQH1p48H`8R(fq~H(-`q(xUC)UN3Q1P8E;QCJJG?@yG57sdPdXorsjn1f6(pL zO!Qw6-d-5p7IDCidYX-;b0Bn65X&olvhd^)Ep$OV7K~QxYq`mZs}jLz$VUJgpG&`H zfP-adhC41yJzbYQ$de3~jk z)KRfx%a-2gZRP%4L ztTNe2hITQj-y}}37B5{q!cGoa$AL-6IiVq&t-mp4x&rtIZK>G2{fvI zShG9yM_>szY?@EwT*Xqog)MPs3QLDd*G_i2caM-@>>oxDEyy0Q$gW^=PjZC>${$I zz6f!&*Ri{0D{LDG{>Qg|{^9Rz=wsaeqH-t|k=@c@h{G{|J}`7S+i*az zbcFX89JZfO1OzYVP!-|$6#wbg^=AOV@ydA9INSfc6%brm{apT!ISYS&AB+hHoWSsN zcI@9kQ=lWlN9lIuTS6uDayLg~0y5?%xn(*HX3e$rz)YZR!|M_ZF zgZ|1D3E)h$uG?Jg09@9n#&{E*Qmfjpo4y=*sV8uD}H1#a3avM~Vab`P=ia*-10&j>tN8o9}ee l&F*=X96r+JueCd*LoeDVJYh{a_zV1#xu! literal 0 HcmV?d00001 diff --git a/doc/web/index.html b/doc/web/index.html index 5a2f9b8..5fe69e1 100644 --- a/doc/web/index.html +++ b/doc/web/index.html @@ -19,12 +19,12 @@

Speed: The GCS ENCS Cluster

-
Serguei A. Mokhov
Gillian A. Roper
Carlos Alarcón Meza
Network, Security and HPC Group
-
Gina Cody School of Engineering and Computer Science -
Concordia University -
Montreal, Quebec, Canada -
rt-ex-hpc~AT~encs.concordia.ca

-
Version 7.2-dev-03
+
Serguei A. Mokhov
Gillian A. Roper
Carlos Alarcón Meza
Farah Salhany
Network, Security and HPC Group +
Gina Cody School of Engineering and Computer Science +
Concordia University +
Montreal, Quebec, Canada +
rt-ex-hpc~AT~encs.concordia.ca

+
Version 7.2

The group acknowledges the initial manual version VI produced by Dr. Scott Bunnell while with us as well as Dr. Tariq Daradkeh for his instructional support of the users and contribution of examples.
@@ -32,131 +32,149 @@

Speed: The GCS ENCS Cluster

Abstract

-

This document presents a quick start guide to the usage of the Gina Cody School of - Engineering and Computer Science compute server farm called “Speed” – the GCS Speed - cluster, managed by the HPC/NAG group of the Academic Information Technology - Services (AITS) at GCS, Concordia University, Montreal, Canada. +

This document serves as a quick start guide to using the Gina Cody School of Engineering + and Computer Science (GCS ENCS) compute server farm, known as “Speed.” Managed by + the HPC/NAG group of the Academic Information Technology Services (AITS) at GCS, + Concordia University, Montreal, Canada.

Contents

1 Introduction -
 1.1 Resources -
 1.2 Team -
 1.3 What Speed Consists of -
 1.4 What Speed Is Ideal For -
 1.5 What Speed Is Not -
 1.6 Available Software -
 1.7 Requesting Access -
2 Job Management -
 2.1 Getting Started -
  2.1.1 SSH Connections -
  2.1.2 Environment Set Up -
 2.2 Job Submission Basics -
  2.2.1 Directives -
  2.2.2 Module Loads -
  2.2.3 User Scripting -
 2.3 Sample Job Script -
 2.4 Common Job Management Commands Summary -
 2.5 Advanced sbatch Options - - - -
 2.6 Array Jobs -
 2.7 Requesting Multiple Cores (i.e., Multithreading Jobs) -
 2.8 Interactive Jobs -
  2.8.1 Command Line -
  2.8.2 Graphical Applications -
  2.8.3 Jupyter Notebooks in Singularity -
  2.8.4 Jupyter Labs in Conda and Pytorch -
  2.8.5 Jupyter Labs + Pytorch in Python venv -
  2.8.6 VScode -
 2.9 Scheduler Environment Variables -
 2.10 SSH Keys For MPI -
 2.11 Creating Virtual Environments -
  2.11.1 Anaconda -
  2.11.2 Python -
 2.12 Example Job Script: Fluent -
 2.13 Example Job: efficientdet -
 2.14 Java Jobs -
 2.15 Scheduling On The GPU Nodes -
  2.15.1 P6 on Multi-GPU, Multi-Node -
  2.15.2 CUDA -
  2.15.3 Special Notes for sending CUDA jobs to the GPU Queue -
  2.15.4 OpenISS Examples -
 2.16 Singularity Containers -
3 Conclusion -
 3.1 Important Limitations -
 3.2 Tips/Tricks -
 3.3 Use Cases -
A History -
 A.1 Acknowledgments -
 A.2 Migration from UGE to SLURM -
 A.3 Phases -
  A.3.1 Phase 4 -
  A.3.2 Phase 3 -
  A.3.3 Phase 2 -
  A.3.4 Phase 1 -
B Frequently Asked Questions -
 B.1 Where do I learn about Linux? -
 B.2 How to use the “bash shell” on Speed? -
  B.2.1 How do I set bash as my login shell? -
  B.2.2 How do I move into a bash shell on Speed? -
  B.2.3 How do I use the bash shell in an interactive session on Speed? -
  B.2.4 How do I run scripts written in bash on Speed? -
 B.3 How to resolve “Disk quota exceeded” errors? -
  B.3.1 Probable Cause -
  B.3.2 Possible Solutions -
  B.3.3 Example of setting working directories for COMSOL -
  B.3.4 Example of setting working directories for Python Modules -
 B.4 How do I check my job’s status? - - - -
 B.5 Why is my job pending when nodes are empty? -
  B.5.1 Disabled nodes -
  B.5.2 Error in job submit request. -
C Sister Facilities +
 1.1 Citing Us +
 1.2 Resources +
 1.3 Team +
 1.4 What Speed Consists of +
 1.5 What Speed Is Ideal For +
 1.6 What Speed Is Not +
 1.7 Available Software +
 1.8 Requesting Access +
2 Job Management +
 2.1 Getting Started +
  2.1.1 SSH Connections +
  2.1.2 Environment Set Up +
 2.2 Job Submission Basics +
  2.2.1 Directives +
  2.2.2 Working with Modules +
  2.2.3 User Scripting +
 2.3 Sample Job Script +
 2.4 Common Job Management Commands Summary + + + +
 2.5 Advanced sbatch Options +
 2.6 Array Jobs +
 2.7 Requesting Multiple Cores (i.e., Multithreading Jobs) +
 2.8 Interactive Jobs +
  2.8.1 Command Line +
  2.8.2 Graphical Applications +
  2.8.3 Jupyter Notebooks +
  2.8.3.1 Jupyter Notebook in Singularity +
  2.8.3.2 JupyterLab in Conda and Pytorch +
  2.8.3.3 JupyterLab + Pytorch in Python venv +
  2.8.4 Visual Studio Code +
 2.9 Scheduler Environment Variables +
 2.10 SSH Keys for MPI +
 2.11 Creating Virtual Environments +
  2.11.1 Anaconda +
  2.11.1.1 Conda Env without --prefix +
  2.11.2 Python +
 2.12 Example Job Script: Fluent +
 2.13 Example Job: EfficientDet +
 2.14 Java Jobs +
 2.15 Scheduling on the GPU Nodes +
  2.15.1 P6 on Multi-GPU, Multi-Node +
  2.15.2 CUDA +
  2.15.3 Special Notes for Sending CUDA Jobs to the GPU Queues +
  2.15.4 OpenISS Examples +
  2.15.4.1 OpenISS and REID +
  2.15.4.2 OpenISS and YOLOv3 +
 2.16 Singularity Containers +
3 Conclusion +
 3.1 Important Limitations +
 3.2 Tips/Tricks +
 3.3 Use Cases +
A History +
 A.1 Acknowledgments +
 A.2 Migration from UGE to SLURM +
 A.3 Phases +
  A.3.1 Phase 5 +
  A.3.2 Phase 4 +
  A.3.3 Phase 3 +
  A.3.4 Phase 2 +
  A.3.5 Phase 1 +
B Frequently Asked Questions +
 B.1 Where do I learn about Linux? +
 B.2 How to use bash shell on Speed? +
  B.2.1 How do I set bash as my login shell? +
  B.2.2 How do I move into a bash shell on Speed? +
  B.2.3 How do I use the bash shell in an interactive session on Speed? +
  B.2.4 How do I run scripts written in bash on Speed? + + + +
 B.3 How to resolve “Disk quota exceeded” errors? +
  B.3.1 Probable Cause +
  B.3.2 Possible Solutions +
  B.3.3 Example of setting working directories for COMSOL +
  B.3.4 Example of setting working directories for Python Modules +
 B.4 How do I check my job’s status? +
 B.5 Why is my job pending when nodes are empty? +
  B.5.1 Disabled nodes +
  B.5.2 Error in job submit request. +
C Sister Facilities +
D Software Installed On Speed +
 D.1 EL7 +
 D.2 EL9
Annotated Bibliography

1 Introduction

-

This document contains basic information required to use “Speed” as well as tips and tricks, -examples, and references to projects and papers that have used Speed. User contributions -of sample jobs and/ or references are welcome. Details are sent to the hpc-ml mailing -list. -

Note: On October 20, 2023 with workshops prior, we have completed migration to SLURM (see -Figure 2) from Grid Engine (UGE/AGE) as our job scheduler, so this manual has been ported to use -SLURM’s syntax and commands. If you are a long-time GE user, see Appendix A.2 key highlights of -the move needed to translate your GE jobs to SLURM as well as environment changes. These are also -elaborated throughout this document and our examples as well in case you desire to re-read -it. -

If you wish to cite this work in your acknowledgements, you can use our general DOI found on our +

This document contains basic information required to use “Speed”, along with tips, tricks, examples, +and references to projects and papers that have used Speed. User contributions of sample jobs and/or +references are welcome.
+

Note: On October 20, 2023, we completed the migration to SLURM from Grid Engine (UGE/AGE) +as our job scheduler. This manual has been updated to use SLURM’s syntax and commands. If you +are a long-time GE user, refer to Appendix A.2 for key highlights needed to translate your GE jobs to +SLURM as well as environment changes. These changes are also elaborated throughout this document +and our examples. +

+

+

1.1 Citing Us

+

If you wish to cite this work in your acknowledgements, you can use our general DOI found on our GitHub page https://dx.doi.org/10.5281/zenodo.5683642 or a specific version of the manual and -scripts from that link individually. -

+scripts from that link individually. You can also use the “cite this repository” feature of +GitHub. +

-

1.1 Resources

+

1.2 Resources

- - - -

-

-

1.2 Team

-

Speed is supported by: +

+

1.3 Team

+

Speed is supported by:

-

We receive support from the rest of AITS teams, such as NAG, SAG, FIS, and DOG.
https://www.concordia.ca/ginacody/aits.html -

+

We receive support from the rest of AITS teams, such as NAG, SAG, FIS, and DOG.
https://www.concordia.ca/ginacody/aits.html +

-

1.3 What Speed Consists of

+

1.4 What Speed Consists of

  • Twenty four (24) 32-core compute nodes, each with 512 GB of memory and approximately 1 TB of local volatile-scratch disk space (pictured in Figure 1). + + +
  • -
  • Twelve (12) NVIDIA Tesla P6 GPUs, with 16 GB of memory (compatible with the +
  • Twelve (12) NVIDIA Tesla P6 GPUs, with 16 GB of GPU memory (compatible with the CUDA, OpenGL, OpenCL, and Vulkan APIs).
  • -
  • 4 VIDPRO nodes, with 6 P6 cards, and 6 V100 cards (32GB), and 256GB of RAM. +
  • 4 VIDPRO nodes (ECE. Dr. Amer), with 6 P6 cards, and 6 V100 cards (32GB), and + 256GB of RAM.
  • -
  • 7 new SPEED2 servers with 64 CPU cores each 4x A100 80 GB GPUs, partitioned into - 4x 20GB each; larger local storage for TMPDIR. - - - +
  • 7 new SPEED2 servers with 256 CPU cores each 4x A100 80 GB GPUs, partitioned into + 4x 20GB MIGs each; larger local storage for TMPDIR (see Figure 2).
  • One AMD FirePro S7150 GPU, with 8 GB of memory (compatible with the Direct X, - OpenGL, OpenCL, and Vulkan APIs).
+ OpenGL, OpenCL, and Vulkan APIs). + +
  • Salus compute node (CSSE CLAC, Drs. Bergler and Kosseim), 56 cores and 728GB of + RAM, see Figure 2. +
  • +
  • Magic subcluster partition (ECE, Dr. Khendek, 11 nodes, see Figure 2). +
  • +
  • Nebular subcluster partition (CIISE, Drs. Yan, Assi, Ghafouri, et al., Nebulae GPU + node with 2x RTX 6000 Ada 48GB cards, Stellar compute node, and Matrix 177TB + storage/compute node, see Figure 2).
  • - + + + + +

    PIC +

    +
    Figure 1: Speed
    + + + +
    +
    + + + + + -

    PIC +

    PIC

    -
    Figure 1: Speed
    +
    Figure 2: Speed Cluster Hardware Architecture
    @@ -207,25 +251,25 @@

    1 - + -

    PIC +

    PIC

    -
    Figure 2: Speed SLURM Architecture
    +
    Figure 3: Speed SLURM Architecture

    -

    1.4 What Speed Is Ideal For

    +

    1.5 What Speed Is Ideal For

      -
    • To design and develop, test and run parallel, batch, and other algorithms, scripts with - partial data sets. “Speed” has been optimised for compute jobs that are multi-core aware, +
    • Design, develop, test, and run parallel, batch, and other algorithms and scripts with + partial data sets. “Speed” has been optimized for compute jobs that are multi-core aware, require a large memory space, or are iteration intensive.
    • -

      Prepare them for big clusters:

      +

      Prepare jobs for large clusters such as:

      • Digital Research Alliance of Canada (Calcul Quebec and Compute Canada)
      • @@ -238,20 +282,20 @@

      • Multi-node multi-core jobs (MPI).
      • -
      • Anything that can fit into a 500-GB memory space and a scratch space of approximately - 10 TB. +
      • Anything that can fit into a 500-GB memory space and a speed scratch space of + approximately 10 TB.
      • CPU-based jobs.
      • -
      • CUDA GPU jobs (speed-01|-03|-05, speed-17, speed-37speed-43). +
      • CUDA GPU jobs.
      • -
      • Non-CUDA GPU jobs using OpenCL (speed-19 and -01|03|05|17|25|27|37-43).
      -

      +

    • Non-CUDA GPU jobs using OpenCL.
    +

    -

    1.5 What Speed Is Not

    +

    1.6 What Speed Is Not

    • Speed is not a web host and does not host websites.
    • @@ -265,249 +309,256 @@

      1.5
    • Speed is not for jobs executed outside of the scheduler. (Jobs running outside of the scheduler will be killed and all data lost.)
    -

    -

    -

    1.6 Available Software

    -

    We have a great number of open-source software available and installed on “Speed” – various -Python, CUDA versions, C++/Java compilers, OpenGL, OpenFOAM, OpenCV, TensorFlow, -OpenMPI, OpenISS, MARF [26], etc. There are also a number of commercial packages, subject to -licensing contributions, available, such as MATLAB [1325], Abaqus [1], Ansys, Fluent [2], -etc. -

    To see the packages available, run ls -al /encs/pkg/ on speed.encs. In particular, there are -over 2200 programs available in /encs/bin and /encs/pkg under Scientific Linux 7 (EL7). We are -building an equivalent array of programs for the EL9 SPEED2 nodes. +

    +

    1.7 Available Software

    +

    There are a wide range of open-source and commercial software available and installed on “Speed.” +This includes Abaqus [1], AllenNLP, Anaconda, ANSYS, Bazel, COMSOL, CPLEX, CUDA, Eclipse, +Fluent [2], Gurobi, MATLAB [1530], OMNeT++, OpenCV, OpenFOAM, OpenMPI, OpenPMIx, +ParaView, PyTorch, QEMU, R, Rust, and Singularity among others. Programming environments +include various versions of Python, C++/Java compilers, TensorFlow, OpenGL, OpenISS, and +MARF [31].
    +

    In particular, there are over 2200 programs available in /encs/bin and /encs/pkg under Scientific +Linux 7 (EL7). We are building an equivalent array of programs for the EL9 SPEED2 nodes. To see +the packages available, run ls -al /encs/pkg/ on speed.encs. See a complete list in +Appendix D.
    +

    Note: We do our best to accommodate custom software requests. Python environments can use +user-custom installs from within the scratch directory. +

    +

    +

    1.8 Requesting Access

    +

    After reviewing the “What Speed is” (Section 1.5) and “What Speed is Not” (Section 1.6), request +access to the “Speed” cluster by emailing: rt-ex-hpc AT encs.concordia.ca. +

      +
    • GCS ENCS faculty and staff may request access directly. +
    • -

      Popular concrete examples:

      +

      GCS students must include the following in their request message:

        -
      • MATLAB (R2016b, R2018a, R2018b, ...) +
      • GCS ENCS username
      • -
      • Fluent (19.2, ...) +
      • Name and email (CC) of the approver – either a supervisor, course instructor, or a + department representative (e.g., in the case of undergraduate or M.Eng. students it + can be the Chair, associate chair, a technical officer, or a department administrator) + for approval.
      • -
      • Singularity containers (see Section 2.16) can run other operating systems and Linux - distributions, like Ubuntu’s, as well as converted Docker containers.
      +
    • Written request from the approver for the GCS ENCS username to be granted access + to “Speed.”
    -
  • We do our best to accommodate custom software requests. Python environments can use - user-custom installs from within the scratch directory. +
  • Non-GCS students taking a GCS course will have their GCS ENCS account created + automatically, but still need the course instructor’s approval to use the service.
  • -
  • -

    A number of specific environments are available and can be loaded using the module command: -

    -
      -
    • Python (2.3.x - 3.11.x) -
    • -
    • Gurobi (7.0.1, 7.5.0, 8.0.0, 8.1.0) -
    • -
    • Ansys (16, 17, 18, 19) -
    • -
    • OpenFOAM (2.3.1, 3.0.1, 5.0, 6.0) -
    • -
    • Cplex 12.6.x to 12.8.x -
    • -
    • OpenMPI 1.6.x, 1.8.x, 3.1.3
    -
  • +
  • Non-GCS faculty and students need to get a “sponsor” within GCS, so that a guest GCS ENCS + account is created first. A sponsor can be any GCS Faculty member you collaborate with. + Failing that, request the approval from our Dean’s Office; via our Associate Deans Drs. Eddie + Hoi Ng or Emad Shihab. +
  • +
  • External entities collaborating with GCS Concordia researchers should also go through the + Dean’s Office for approvals.
  • +

    +

    +

    2 Job Management

    +

    We use SLURM as the workload manager. It supports primarily two types of jobs: batch and +interactive. Batch jobs are used to run unattended tasks, whereas, interactive jobs are are ideal for +setting up virtual environments, compilation, and debugging.
    +

    Note: In the following instructions, anything bracketed like, <>, indicates a label/value to be replaced +(the entire bracketed term needs replacement).
    +

    Job instructions in a script start with #SBATCH prefix, for example: -

    -

    1.7 Requesting Access

    -

    After reviewing the “What Speed is” (Section 1.4) and “What Speed is Not” (Section 1.5), request -access to the “Speed” cluster by emailing: rt-ex-hpc AT encs.concordia.ca. GCS ENCS -faculty and staff may request access directly. Students must include the following in their -message: +

    +    #SBATCH --mem=100M -t 600 -J <job-name> -A <slurm account>
    +    #SBATCH -p pg --gpus=2 --mail-type=ALL
    +
    +

    For complex compute steps within a script, use srun. We recommend using salloc for interactive +jobs as it supports multiple steps. However, srun can also be used to start interactive jobs (see +Section 2.8). Common and required job parameters include:

    +
      -
    • GCS ENCS username -
    • -
    • Name and email (CC) of the supervisor or instructor -
    • -
    • Written request from the supervisor or instructor for the ENCS username to be granted - access to “Speed”
    -

    Non-GCS faculty / students need to get a “sponsor” within GCS, such that your guest GCS ENCS -account is created first. A sponsor can be any GCS Faculty member you collaborate with. Failing -that, request the approval from our Dean’s Office; via our Associate Deans Drs. Eddie Hoi Ng or -Emad Shihab. External entities to Concordia who collaborate with GCS Concordia researchers, should -also go through the Dean’s office for approvals. Non-GCS students taking a GCS course do have their -GCS ENCS account created automatically, but still need the course instructor’s approval to use the -service. -

    -

    -

    2 Job Management

    -

    In these instructions, anything bracketed like so, <>, indicates a label/value to be replaced (the entire -bracketed term needs replacement). We use SLURM as the Workload Manager. It supports -primarily two types of jobs: batch and interactive. Batch jobs are used to run unattended -tasks. -

    TL;DR: Job instructions in a script start with #SBATCH prefix, for example: +

  • memory (--mem), +
  • +
  • time (-t), +
  • +
  • --job-name (-J), +
  • +
  • slurm project account (-A), +
  • +
  • partition (-p), +
  • +
  • mail type (--mail-type), +
  • +
  • ntasks (-n), +
  • +
  • CPUs per task (--cpus-per-task).
  • +
    +

    -
    -#SBATCH --mem=100M -t 600 -J <job-name> -A <slurm account>
    -#SBATCH -p pg --gpus=2 --mail-type=ALL
    -
    -

    We use srun for every complex compute step inside the script. Use interactive jobs to set up virtual -environments, compilation, and debugging. salloc is preferred; allows multiple steps. srun can start -interactive jobs as well (see Section 2.8). Required and common job parameters: memory (mem), -time (t), job-name (J), slurm project account (A), partition (p), mail-type, ntasks (n), -cpus-per-task. -

    -

    -

    2.1 Getting Started

    -

    Before getting started, please review the “What Speed is” (Section 1.4) and “What Speed is Not” -(Section 1.5). Once your GCS ENCS account has been granted access to “Speed”, use +

    2.1 Getting Started

    +

    Before getting started, please review the “What Speed is” (Section 1.5) and “What Speed is Not” +(Section 1.6). Once your GCS ENCS account has been granted access to “Speed”, use your GCS ENCS account credentials to create an SSH connection to speed (an alias for -speed-submit.encs.concordia.ca). All users are expected to have a basic understanding of Linux -and its commonly used commands (see Appendix B.1 for resources). -

    +speed-submit.encs.concordia.ca).
    +

    All users are expected to have a basic understanding of Linux and its commonly used commands +(see Appendix B for resources). +

    -
    2.1.1 SSH Connections
    -

    Requirements to create connections to Speed: +

    2.1.1 SSH Connections
    +

    Requirements to create connections to “Speed”:

      -
    1. An active GCS ENCS user account, which has permission to connect to Speed (see - Section 1.7). +
    2. Active GCS ENCS user account: Ensure you have an active GCS ENCS user account + with permission to connect to Speed (see Section 1.8).
    3. -
    4. If you are off campus, an active connection to Concordia’s VPN. Accessing Concordia’s - VPN requires a Concordia netname. +
    5. VPN Connection (for off-campus access): If you are off-campus, you wil need to + establish an active connection to Concordia’s VPN, which requires a Concordia netname.
    6. -
    7. Windows systems require a terminal emulator such as PuTTY, Cygwin, or MobaXterm. +
    8. Terminal Emulator for Windows: Windows systems use a terminal emulator such as + PuTTY, Cygwin, or MobaXterm.
    9. - - - -
    10. macOS systems do have a Terminal app for this or xterm that comes with XQuarz.
    -

    Open up a terminal window and type in the following SSH command being sure to replace -<ENCSusername> with your ENCS account’s username. +

  • Terminal for macOS: macOS systems have a built-in Terminal app or xterm that comes + with XQuartz.
  • +

    To create an SSH connection to Speed, open a terminal window and type the following command, +replacing <ENCSusername> with your ENCS account’s username:

    -ssh <ENCSusername>@speed.encs.concordia.ca
    +    ssh <ENCSusername>@speed.encs.concordia.ca
     
    -

    -

    Read the AITS FAQ: How do I securely connect to a GCS server? -

    +

    +

    For detailed instructions on securely connecting to a GCS server, refer to the AITS FAQ: How do I +securely connect to a GCS server? +

    -
    2.1.2 Environment Set Up
    +
    2.1.2 Environment Set Up

    After creating an SSH connection to Speed, you will need to make sure the srun, sbatch, and salloc -commands are available to you. Type the command name at the command prompt and press enter. -If the command is not available, e.g., (“command not found”) is returned, you need to -make sure your $PATH has /local/bin in it. To view your $PATH type echo $PATH at the -prompt. -

    The next step is to copy a job template to your home directory and to set up your cluster-specific -storage. Execute the following command from within your home directory. (To move to your home -directory, type cd at the Linux prompt and press Enter.) +commands are available to you. To check this, type each command at the prompt and press Enter. If +“command not found” is returned, you need to make sure your $PATH includes /local/bin. You can +check your $PATH by typing:

    -cp /home/n/nul-uge/template.sh . && mkdir /speed-scratch/$USER
    +    echo $PATH
     
    -

    -

    Tip: the default shell for GCS ENCS users is tcsh. If you would like to use bash, please contact -rt-ex-hpc AT encs.concordia.ca. -

    Note: If a “command not found” error appears after you log in to speed, your user account many -have probably have defunct Grid Engine environment commands. See Appendix A.2 to learn how to -prevent this error on login. -

    -

    -

    2.2 Job Submission Basics

    -

    Preparing your job for submission is fairly straightforward. Start by basing your job script on one of the -examples available in the src/ directory of our GitHub’s (https://github.com/NAG-DevOps/speed-hpc). -Job scripts are broken into four main sections: +

    +

    The next step is to set up your cluster-specific storage “speed-scratch”, to do so, execute the following +command from within your home directory. + + +

    +
    +    mkdir -p /speed-scratch/$USER && cd /speed-scratch/$USER
    +
    +

    +

    Next, copy a job template to your cluster-specific storage

      -
    • Directives +
    • From Windows drive G: to Speed:
      cp /winhome/<1st letter of $USER>/$USER/example.sh /speed-scratch/$USER/
    • -
    • Module Loads -
    • -
    • User Scripting
    -

    You can clone the tip of our repository to get the examples to start with or download them -individually via a browser or command line: +

  • From Linux drive U: to Speed:
    cp ~/example.sh /speed-scratch/$USER/
  • +

    Tip: the default shell for GCS ENCS users is tcsh. If you would like to use bash, please contact +rt-ex-hpc AT encs.concordia.ca.
    +

    Note: If you encounter a “command not found” error after logging in to Speed, your user account +may have defunct Grid Engine environment commands. See Appendix A.2 for instructions on how to +resolve this issue. +

    +

    +

    2.2 Job Submission Basics

    +

    Preparing your job for submission is fairly straightforward. Start by basing your job script on one of +the examples available in the src/ directory of our GitHub repository. You can clone the repository to +get the examples to start with via the command line:

    -
    -git clone --depth=1 https://github.com/NAG-DevOps/speed-hpc.git
    -cd speed-hpc/src
    +   
    +    git clone --depth=1 https://github.com/NAG-DevOps/speed-hpc.git
    +    cd speed-hpc/src
     
    -

    -

    Then to quickly run some sample jobs, you can: +

    +

    The job script is a shell script that contains directives, module loads, and user scripting. To quickly +run some sample jobs, use the following commands:

    -
    -sbatch -p ps -t 10 bash.sh
    -sbatch -p ps -t 10 env.sh
    -sbatch -p ps -t 10 manual.sh
    -sbatch -p pg -t 10 lambdal-singularity.sh
    +   
    +    sbatch -p ps -t 10 env.sh
    +    sbatch -p ps -t 10 bash.sh
    +    sbatch -p ps -t 10 manual.sh
    +    sbatch -p pg -t 10 lambdal-singularity.sh
     
    -

    -

    +

    +

    -
    2.2.1 Directives
    +
    2.2.1 Directives

    Directives are comments included at the beginning of a job script that set the shell and the options for the job scheduler. The shebang directive is always the first line of a script. In your job script, this directive sets which shell your script’s commands will run in. On “Speed”, we recommend that your -script use a shell from the /encs/bin directory. +script use a shell from the /encs/bin directory.

    To use the tcsh shell, start your script with #!/encs/bin/tcsh. For bash, start with -#!/encs/bin/bash. Directives that start with #SBATCH, set the options for the cluster’s Slurm job -scheduler. The script template, template.sh, provides the essentials: +#!/encs/bin/bash.
    +

    Directives that start with #SBATCH set the options for the cluster’s SLURM job scheduler. The +following provides an example of some essential directives:

    -
    -#SBATCH --job-name=<jobname>        ## or -J. Give the job a name
    -#SBATCH --mail-type=<type>          ## Set type of email notifications
    -#SBATCH --chdir=<directory>         ## or -D, Set working directory where output files will go
    -#SBATCH --nodes=1                   ## or -N, Node count required for the job
    -#SBATCH --ntasks=1                  ## or -n, Number of tasks to be launched
    -#SBATCH --cpus-per-task=<corecount> ## or -c, Core count requested, e.g. 8 cores
    -#SBATCH --mem=<memory>              ## Assign memory for this job, e.g., 32G memory per node
    -
    -

    -

    Replace the following to adjust the job script for your project(s) -

      -
    1. <jobname> with a job name for the job +
      +    #SBATCH --job-name=<jobname>        ## or -J. Give the job a name
      +    #SBATCH --mail-type=<type>          ## set type of email notifications
      +    #SBATCH --chdir=<directory>         ## or -D, set working directory for the job
      +    #SBATCH --nodes=1                   ## or -N, node count required for the job
      +    #SBATCH --ntasks=1                  ## or -n, number of tasks to be launched
      +    #SBATCH --cpus-per-task=<corecount> ## or -c, core count requested, e.g. 8 cores
      +    #SBATCH --mem=<memory>              ## assign memory for this job,
      +                                        ## e.g., 32G memory per node
      +
      +

      +

      Replace the following to adjust the job script for your project(s)

      +
        +
      • <jobname> with a job name for the job. This name will be displayed in the job queue.
      • -
      • <directory> with the fullpath to your job’s working directory, e.g., where your code, +
      • <directory> with the fullpath to your job’s working directory, e.g., where your code, source files and where the standard output files will be written to. By default, --chdir - sets the current directory as the job’s working directory + sets the current directory as the job’s working directory.
      • -
      • <type> with the type of e-mail notifications you wish to receive. Valid options are: NONE, - BEGIN, END, FAIL, REQUEUE, ALL +
      • <type> with the type of e-mail notifications you wish to receive. Valid options are: NONE, + BEGIN, END, FAIL, REQUEUE, ALL.
      • -
      • <corecount> with the degree of multithreaded parallelism (i.e., cores) allocated to your +
      • <corecount> with the degree of multithreaded parallelism (i.e., cores) allocated to your job. Up to 32 by default.
      • -
      • <memory> with the amount of memory, in GB, that you want to be allocated per node. Up - to 500 depending on the node. NOTE: All jobs MUST set a value for the --mem option.
    -

    Example with short option equivalents: +

  • <memory> with the amount of memory, in GB, that you want to be allocated per node. + Up to 500 depending on the node.
    Note: All jobs MUST set a value for the --mem option.
  • +

    Example with short option equivalents:

    -
    -#SBATCH -J tmpdir                   ## Job’s name set to ’tmpdir’
    -#SBATCH --mail-type=ALL             ## Receive all email type notifications
    -#SBATCH -D ./                       ## Use current directory as working directory
    -#SBATCH -N 1                        ## Node count required for the job
    -#SBATCH -n 1                        ## Number of tasks to be launched
    -#SBATCH -c 1                        ## Request 8 cores
    -#SBATCH --mem=32G                   ## Allocate 32G memory per node
    -
    -

    -

    If you are unsure about memory footprints, err on assigning a generous memory space to +

    +    #SBATCH -J myjob              ## Job’s name set to ’myjob’
    +    #SBATCH --mail-type=ALL       ## Receive all email type notifications
    +    #SBATCH -D ./                 ## Use current directory as working directory
    +    #SBATCH -N 1                  ## Node count required for the job
    +    #SBATCH -n 1                  ## Number of tasks to be launched
    +    #SBATCH -c 8                  ## Request 8 cores
    +    #SBATCH --mem=32G             ## Allocate 32G memory per node
    +
    +

    +

    Tip: If you are unsure about memory footprints, err on assigning a generous memory space to your job, so that it does not get prematurely terminated. You can refine --mem values for future jobs by monitoring the size of a job’s active memory space on speed-submit with: @@ -515,28 +566,28 @@

    2.2.1 -
    -sacct -j <jobID>
    -sstat -j <jobID>
    +   
    +    sacct -j <jobID>
    +    sstat -j <jobID>
     
    -

    -

    This can be customized to show specific columns: +

    +

    This can be customized to show specific columns:

    -
    -sacct -o jobid,maxvmsize,ntasks%7,tresusageouttot%25 -j <jobID>
    -sstat -o jobid,maxvmsize,ntasks%7,tresusageouttot%25 -j <jobID>
    -
    -

    -

    Memory-footprint values are also provided for completed jobs in the final e-mail notification as -“maxvmsize”. Jobs that request a low-memory footprint are more likely to load on a busy -cluster. -

    Other essential options are --time, or -t, and --account, or -A.

    +
    +    sacct -o jobid,maxvmsize,ntasks%7,tresusageouttot%25 -j <jobID>
    +    sstat -o jobid,maxvmsize,ntasks%7,tresusageouttot%25 -j <jobID>
    +
    +

    +

    Memory-footprint efficiency values (seff) are also provided for completed jobs in the final email +notification as “maxvmsize”. Jobs that request a low-memory footprint are more likely to load on a +busy cluster.
    +

    Other essential options are --time, or -t, and --account, or -A.

    • --time=<time> – is the estimate of wall clock time required for your job to run. As - preiviously mentioned, the maximum is 7 days for batch and 24 hours for interactive jobs. + previously mentioned, the maximum is 7 days for batch and 24 hours for interactive jobs. Jobs with a smaller time value will have a higher priority and may result in your job being scheduled sooner.
    • @@ -544,150 +595,135 @@
      2.2.1 speed1 and speed2. However, users that belong to a particular research group or project are will have a default Account - like the following aits, vidpro, gipsy, ai2, mpackir, cmos, among others. -
    -

    -

    -
    2.2.2 Module Loads
    -

    As your job will run on a compute or GPU “Speed” node, and not the submit node, any software that -is needed must be loaded by the job script. Software is loaded within the script just as it would be -from the command line. -

    To see a list of which modules are available, execute the following from the command line on -speed-submit. - - - + like the following aits, vidpro, gipsy, ai2, mpackir, cmos, among others. +

    -
    -module avail
    -
    -

    -

    To list for a particular program (matlab, for example): +

    2.2.2 Working with Modules
    +

    After setting the directives in your job script, the next section typically involves loading the necessary +software modules. The module command is used to manage the user environment, make sure to load +all the modules your job depends on. You can check available modules with the module avail +command. Loading the correct modules ensures that your environment is properly set up for +execution.
    +

    To list for a particular program (matlab, for example):

    -module -t avail matlab
    +    module avail
    +    module -t avail matlab  ## show the list for a particular program (e.g., matlab)
    +    module -t avail m       ## show the list for all programs starting with m
     
    -

    -

    Which, of course, can be shortened to match all that start with a particular letter: +

    +

    For example, insert the following in your script to load the matlab/R2023a module:

    -module -t avail m
    +    module load matlab/R2023a/default
     
    -

    -

    Insert the following in your script to load the matlab/R2020a) module: +

    +

    Note: you can remove a module from active use by replacing load by unload.
    +

    To list loaded modules:

    -module load matlab/R2020a/default
    +    module list
     
    -

    -

    Use, unload, in place of, load, to remove a module from active use. -

    To list loaded modules: +

    +

    To purge all software in your working environment:

    -module list
    +    module purge
     
    -

    -

    To purge all software in your working environment: - - - -

    -
    -module purge
    -
    -

    -

    Typically, only the module load command will be used in your script. -

    -

    -
    2.2.3 User Scripting
    -

    The last part the job script is the scripting that will be executed by the job. This part of -the job script includes all commands required to set up and execute the task your script -has been written to do. Any Linux command can be used at this step. This section can -be a simple call to an executable or a complex loop which iterates through a series of -commands. -

    Any compute heavy step is preferably should be prefixed by srun as the best practice. -

    Every software program has a unique execution framework. It is the responsibility of the script’s -author (e.g., you) to know what is required for the software used in your script by reviewing the -software’s documentation. Regardless of which software your script calls, your script should be written -so that the software knows the location of the input and output files as well as the degree of -parallelism. -

    Jobs which touch data-input and data-output files more than once, should make use of TMPDIR, a -scheduler-provided working space almost 1 TB in size. TMPDIR is created when a job starts, and -exists on the local disk of the compute node executing your job. Using TMPDIR results -in faster I/O operations than those to and from shared storage (which is provided over +

    +

    +

    +
    2.2.3 User Scripting
    +

    The final part of the job script involves the commands that will be executed by the job. This section +should include all necessary commands to set up and run the tasks your script is designed to perform. +You can use any Linux command in this section, ranging from a simple executable call to a complex +loop iterating through multiple commands.
    +

    Best Practice: prefix any compute-heavy step with srun. This ensures you gain proper insights on +the execution of your job.
    +

    Each software program may have its own execution framework, as it’s the script’s author (e.g., you) +responsibility to review the software’s documentation to understand its requirements. Your script +should be written to clearly specify the location of input and output files and the degree of parallelism +needed.
    +

    Jobs that involve multiple interactions with data input and output files, should make use of TMPDIR, a +scheduler-provided workspace nearly 1 TB in size. TMPDIR is created on the local disk of the compute +node at the start of a job, offering faster I/O operations compared to shared storage (provided over NFS). -

    An sample job script using TMPDIR is available at /home/n/nul-uge/templateTMPDIR.sh: the job +

    An sample job script using TMPDIR is available at /home/n/nul-uge/templateTMPDIR.sh: the job is instructed to change to $TMPDIR, to make the new directory input, to copy data from $SLURM_SUBMIT_DIR/references/ to input/ ($SLURM_SUBMIT_DIR represents the current working directory), to make the new directory results, to execute the program (which takes input from $TMPDIR/input/ and writes output to $TMPDIR/results/), and finally to copy the total end results -to an existing directory, processed, that is located in the current working directory. TMPDIR only +to an existing directory, processed, that is located in the current working directory. TMPDIR only exists for the duration of the job, though, so it is very important to copy relevant results from it at job’s end. -

    +

    -

    2.3 Sample Job Script

    -

    Now, let’s look at a basic job script, tcsh.sh in Figure 3 (you can copy it from our GitHub page or -from /home/n/nul-uge). +

    2.3 Sample Job Script

    +

    Here’s a basic job script, tcsh.sh shown in Figure 4. You can copy it from our GitHub +repository.

    - + -
    #!/encs/bin/tcsh 
    - 
    -#SBATCH --job-name=tcsh-test 
    -#SBATCH --mem=1G 
    - 
    -sleep 30 
    -module load gurobi/8.1.0 
    -module list
    +
    #!/encs/bin/tcsh 
    + 
    +#SBATCH --job-name=tcsh-test 
    +#SBATCH --mem=1G 
    + 
    +sleep 30 
    +module load gurobi/8.1.0 
    +module list
     
    -
    Figure 3: Source code for tcsh.sh
    +
    Figure 4: Source code for tcsh.sh
    -

    The first line is the shell declaration (also know as a shebang) and sets the shell to tcsh. The lines -that begin with #SBATCH are directives for the scheduler. -

    +

    The first line is the shell declaration (also know as a shebang) and sets the shell to tcsh. The lines that +begin with #SBATCH are directives for the scheduler.

      -
    • -J (or --job-name) sets tcsh-test as the job name -
    • -
    • --chdir tells the scheduler to execute the job from the current working directory +
    • -J (or --job-name) sets tcsh-test as the job name.
    • -
    • --mem=1GB requests and assigns 1GB of memory to the job. Jobs require the --mem option - to be set either in the script or on the command line; if it’s missing job submission +
    • --mem=1GB requests and assigns 1GB of memory to the job. Jobs require the --mem option + to be set either in the script or on the command line; if it’s missing, job submission will be rejected.
    -

    The script then: -

    -
      -
    • Sleeps on a node for 30 seconds +

      The script then: +

        +
      1. Sleeps on a node for 30 seconds.
      2. -
      3. Uses the module command to load the gurobi/8.1.0 environment +
      4. Uses the module command to load the gurobi/8.1.0 environment.
      5. -
      6. Prints the list of loaded modules into a file
    -

    The scheduler command, sbatch, is used to submit (non-interactive) jobs. From an ssh session on -speed-submit, submit this job with sbatch ./tcsh.sh. You will see, "Submitted batch job 2653" -where \(2653\) is a job ID assigned. The commands, squeue and sinfo can be used to look at the status of -the cluster: squeue -l. You will see something like this: +

  • Prints the list of loaded modules into a file.
  • +

    The scheduler command, sbatch, is used to submit (non-interactive) jobs. From an ssh session on +“speed-submit”, submit this job with + + + +

    +
    +    sbatch ./tcsh.sh
    +
    +

    +

    You will see, Submitted batch job 2653 where \(2653\) is a job ID assigned. The commands squeue and +sinfo can be used to look at the status of the cluster: @@ -709,58 +745,143 @@

    2.3 pt           up 7-00:00:00      7   idle speed-[37-43] pa           up 7-00:00:00      4   idle speed-[01,03,25,27]

    -

    -

    Remember that you only have 30 seconds before the job is essentially over, so if you do not see a -similar output, either adjust the sleep time in the script, or execute the sbatch statement more -quickly. The squeue output listed above shows you that your job is running on node speed-07, that it -has a job number of 2654, its time limit of 7 days, etc. -

    Once the job finishes, there will be a new file in the directory that the job was started from, -with the syntax of, slurm-"job id".out, so in this example the file is, slurm-2654.out. +

    +

    Remember that you only have 30 seconds before the job is essentially over, so if you do not see a +similar output, either adjust the sleep time in the script, or execute the squeue statement more +quickly. The squeue output listed above shows that your job 2654 is running on node speed-07, and +its time limit is 7 days, etc.
    +

    Once the job finishes, there will be a new file in the directory that the job was started from, +with the syntax of, slurm-<job id>.out, so in this example the file is, slurm-2654.out. This file represents the standard output (and error, if there is any) of the job in question. If you look at the contents of your newly created file, you will see that it contains the output of the, module list command. Important information is often written to this file.

    -

    2.4 Common Job Management Commands Summary

    -

    Here are useful job-management commands: +

    2.4 Common Job Management Commands Summary

    +

    Here is a summary of useful job management commands for handling various aspects of job +submission and monitoring on the Speed cluster:

      -
    • sbatch -A <ACCOUNT> --t - <MINUTES> --mem=20G -p <PARTITION> ./<myscript>.sh: once that your job script is - ready, on speed-submit you can submit it using this -
    • -
    • squeue -u <ENCSusername>: you can check the status of your job(s) +
    • +

      Submitting a job: -

    • -
    • squeue: display cluster status for all users. -A shows per account (e.g., vidpro, gipsy, - speed1, ai2, aits, etc.), -p per partition (ps, pg, pt, pa), and others. man squeue for - details. -
    • -
    • squeue --job [job-ID]: display job information for [job-ID] (said job may be actually - running, or waiting in the queue). -
    • -
    • squeue -las: displays individual job steps (for debugging easier to see which step failed - if you used srun). -
    • -
    • watch -n 1 "sinfo -Nel -pps,pt,pg,pa && squeue -la": view sinfo information - and watch the queue for your job(s). -
    • -
    • scancel [job-ID]: cancel job [job-ID]. -
    • -
    • scontrol hold [job-ID]: hold queued job, [job-ID], from running. -
    • -
    • scontrol release [job-ID]: release held job [job-ID]. +

      +
      +     sbatch -A <ACCOUNT> -t <MINUTES> --mem=<MEMORY> -p <PARTITION> ./<myscript>.sh
      +
      +

      +

    • +
    • +

      Checking your job(s) status: + + + +

      +
      +     squeue -u <ENCSusername>
      +
      +

      +

    • +
    • +

      Displaying cluster status: + + + +

      +
      +     squeue
      +
      +

      +
        +
      • Use -A for per account (e.g., -A vidpro, -A aits), +
      • +
      • Use -p for per partition (e.g., -p ps, -p pg, -p pt), etc.
    • -

      sacct -j [job-ID]: get job stats. maxvmem is one of the more useful stats that you can - elect to display as a format option. +

      Displaying job information:

      -
      +     
      +     squeue --job <job-ID>
      +
      +

      +

    • +
    • +

      Displaying individual job steps: (to see which step failed if you used srun) + + + +

      +
      +     squeue -las
      +
      +

      +

    • +
    • +

      Monitoring job and cluster status: (view sinfo and watch the queue for your job(s)) + + + +

      +
      +     watch -n 1 "sinfo -Nel -pps,pt,pg,pa && squeue -la"
      +
      +

      +

    • +
    • +

      Canceling a job: + + + +

      +
      +     scancel <job-ID>
      +
      +

      +

    • +
    • +

      Holding a job: + + + +

      +
      +     scontrol hold <job-ID>
      +
      +

      +

    • +
    • +

      Releasing a job: + + + +

      +
      +     scontrol release <job-ID>
      +
      +

      +

    • +
    • +

      Getting job statistics: (including useful metrics like “maxvmem”) + + + +

      +
      +     sacct -j <job-ID>
      +
      +

      +

      maxvmem is one of the more useful stats that you can elect to display as a format + option. + + + +

      +
            % sacct -j 2654
            JobID           JobName  Partition    Account  AllocCPUS      State ExitCode
            ------------ ---------- ---------- ---------- ---------- ---------- --------
      @@ -774,31 +895,39 @@ 

      -

      -

      See man sacct or sacct -e for details of the available formatting options. You can define your +

      +

      See man sacct or sacct -e for details of the available formatting options. You can define your preferred default format in the SACCT_FORMAT environment variable in your .cshrc or .bashrc files.

    • -

      seff [job-ID]: reports on the efficiency of a job’s cpu and memory utilization. Don’t execute it - on RUNNING jobs (only on completed/finished jobs), efficiency statistics may be - misleading. -

      If you define the following directive in your batch script, your ENCS email address will receive - an email with seff output when your job is finished. +

      Displaying job efficiency: (including CPU and memory utilization)

      -
      +     
      +     seff <job-ID>
      +
      +

      +

      Don’t execute it on RUNNING jobs (only on completed/finished jobs), else efficiency statistics + may be misleading. If you define the following directive in your batch script, your + GCS ENCS email address will receive an email with seff’s output when your job is + finished. + + + +

      +
            #SBATCH --mail-type=ALL
       
      -

      -

      Output example: +

      +

      Output example:

      -
      +     
            Job ID: XXXXX
            Cluster: speed
            User/Group: user1/user1
      @@ -811,266 +940,355 @@ 

      -

      -

      -

    -

    +

    +

    -

    2.5 Advanced sbatch Options

    -

    In addition to the basic sbatch options presented earlier, there are a few additional options that are +

    2.5 Advanced sbatch Options

    +

    In addition to the basic sbatch options presented earlier, there are several advanced options that are generally useful:

      -
    • --mail-type=TYPE: requests that the scheduler e-mail you when a job changes state. - Where TYPE is ALL, BEGIN, END, or FAIL. Mail is sent to the default address of,
      "<ENCSusername>@encs.concordia.ca", which you can consult via webmail.encs via - the VPN, on login.encs via alpine or setup forwarding to @concordia.ca address or offsite, - unless a different address is supplied (see, --mail-user). The report sent when a job ends - includes job runtime, as well as the maximum memory value hit (maxvmem). -
    • -
    • --mail-user email@domain.com: requests that the scheduler use this e-mail notification - address, rather than the default (see, --mail-type). -
    • -
    • --export=[ALL | NONE | variables]: exports environment variable(s) that can be used - by the script. +
    • +

      E-mail notifications: -

    • -
    • -t [min] or DAYS-HH:MM:SS: sets a job runtime of min or HH:MM:SS. Note that if you - give a single number, that represents minutes, not hours. -
    • -
    • --depend=[state:job-ID]: run this job only when job [job-ID] finishes. Held jobs appear - in the queue. -
    -

    The many sbatch options available are read with, man sbatch. Also note that sbatch options can -be specified during the job-submission command, and these override existing script options (if -present). The syntax is, sbatch [options] PATHTOSCRIPT, but unlike in the script, the options are -specified without the leading #SBATCH (e.g., sbatch -J sub-test --chdir=./ --mem=1G -./tcsh.sh). -

    -

    2.6 Array Jobs

    -

    Array jobs are those that start a batch job or a parallel job multiple times. Each iteration of the job -array is called a task and receives a unique job ID. Only supported for batch jobs; submit time \(< 1\) -second, compared to repeatedly submitting the same regular job over and over even from a -script. -

    To submit an array job, use the --array option of the sbatch command as follows: +

    +     --mail-type=<TYPE>
    +
    +

    Requests the scheduler to send an email when the job changes state. <TYPE> can be ALL, BEGIN, + END, or FAIL. Mail is sent to the default address of,

    -
    -sbatch --array=n-m[:s]] <batch_script>
    +     
    +     <ENCSusername>@encs.concordia.ca
     
    -

    -

    -t Option Syntax:

    -
      -
    • n: indicates the start-id. -
    • -
    • m: indicates the max-id. -
    • -
    • s: indicates the step size.
    -

    Examples:

    -
      -
    • sbatch --array=1-50000 -N1 -i my_in_%a -o my_out_%a array.sh: submits a job - with 50000 elements, %a maps to the task-id between 1 and 50K. -
    • -
    • sbatch --array=10 array.sh: submits a job with 1 task where the task-id is 10. -
    • -
    • sbatch --array=1-10 array.sh: submits a job with 10 tasks numbered consecutively - from 1 to 10. -
    • -
    • sbatch --array=3-15:3 array.sh: submits a jobs with 5 tasks numbered consecutively - with step size 3 (task-ids 3,6,9,12,15).
    -

    Output files for Array Jobs: -

    The default and output and error-files are slurm-job_id_task_id.out. This means that Speed -creates an output and an error-file for each task generated by the array-job as well as -one for the super-ordinate array-job. To alter this behavior use the -o and -e option of -sbatch. -

    For more details about Array Job options, please review the manual pages for sbatch by executing -the following at the command line on speed-submit man sbatch. +

    which you can consult via webmail.encs.concordia.ca (use VPN from off-campus) unless a + different address is supplied (see, --mail-user). The report sent when a job ends includes job + runtime, as well as the maximum memory value hit (maxvmem). -

    -

    2.7 Requesting Multiple Cores (i.e., Multithreading Jobs)

    -

    For jobs that can take advantage of multiple machine cores, up to 32 cores (per job) can be requested -in your script with: +

    +     --mail-user email@domain.com
    +
    +

    Specifies a different email address for notifications rather than the default. +

    +
  • +

    Export environment variables used by the script.:

    -
    -#SBATCH -n [#cores for processes]
    +     
    +     --export=ALL
    +     --export=NONE
    +     --export=VARIABLES
     
    -

    -

    or +

    +

  • +
  • +

    Job runtime:

    -
    -#SBATCH -n 1
    -#SBATCH -c [#cores for threads of a single process]
    +     
    +     -t <MINUTES> or DAYS-HH:MM:SS
     
    -

    -

    Both sbatch and salloc support -n on the command line, and it should always be used either in -the script or on the command line as the default \(n=1\). Do not request more cores than you think -will be useful, as larger-core jobs are more difficult to schedule. On the flip side, though, if you are -going to be running a program that scales out to the maximum single-machine core count available, -please (please) request 32 cores, to avoid node oversubscription (i.e., to avoid overloading the -CPUs). -

    Important note about --ntasks or --ntasks-per-node (-n) talks about processes (usually the -ones ran with srun). --cpus-per-task (-c) corresponds to threads per process. Some programs -consider them equivalent, some don’t. Fluent for example uses --ntasks-per-node=8 and ---cpus-per-task=1, some just set --cpus-per-task=8 and --ntasks-per-node=1. If one of them is -not \(1\) then some applications need to be told to use \(n*c\) total cores. -

    Core count associated with a job appears under, “AllocCPUS”, in the, qacct -j, output. +

    sets a job runtime of min or HH:MM:SS. Note that if you give a single number, that represents + minutes, not hours. The set runtime should not exceed the default maximums of 24h for + interactive jobs and 7 days for batch jobs. +

  • +
  • +

    Job Dependencies:

    -
    -[serguei@speed-submit src] % squeue -l
    -Thu Oct 19 20:32:32 2023
    -JOBID PARTITION     NAME     USER    STATE       TIME TIME_LIMI  NODES NODELIST(REASON)
    - 2652        ps interact   a_user  RUNNING   9:35:18 1-00:00:00      1 speed-07
    -[serguei@speed-submit src] % sacct -j 2652
    -JobID           JobName  Partition    Account  AllocCPUS      State ExitCode
    ------------- ---------- ---------- ---------- ---------- ---------- --------
    -2652         interacti+         ps     speed1         20    RUNNING      0:0
    -2652.intera+ interacti+                speed1         20    RUNNING      0:0
    -2652.extern      extern                speed1         20    RUNNING      0:0
    -2652.0       gydra_pmi+                speed1         20  COMPLETED      0:0
    -2652.1       gydra_pmi+                speed1         20  COMPLETED      0:0
    -2652.2       gydra_pmi+                speed1         20     FAILED      7:0
    -2652.3       gydra_pmi+                speed1         20     FAILED      7:0
    -2652.4       gydra_pmi+                speed1         20  COMPLETED      0:0
    -2652.5       gydra_pmi+                speed1         20  COMPLETED      0:0
    -2652.6       gydra_pmi+                speed1         20  COMPLETED      0:0
    -2652.7       gydra_pmi+                speed1         20  COMPLETED      0:0
    +     
    +     --depend=<state:job-ID>
     
    -

    -

    -

    -

    2.8 Interactive Jobs

    -

    Job sessions can be interactive, instead of batch (script) based. Such sessions can be useful for testing, -debugging, and optimising code and resource requirements, conda or python virtual environments -setup, or any likewise preparatory work prior to batch submission. -

    -

    -
    2.8.1 Command Line
    -

    To request an interactive job session, use, salloc [options], similarly to a sbatch command-line -job, e.g., +

    Runs the job only when the specified job <job-ID> finishes. This is useful for creating job + chains where subsequent jobs depend on the completion of previous ones.

  • +

    Note: sbatch options can be specified during the job-submission command, and these override +existing script options (if present). The syntax is

    -
    -salloc -J interactive-test --mem=1G -p ps -n 8
    +   
    +sbatch [options] PATHTOSCRIPT
     
    -

    Inside the allocated salloc session you can run shell commands as usual; it is recommended to use -srun for the heavy compute steps inside salloc. If it is a quick a short job just to compile something, -e.g., on a GPU node you can use an interactive srun directly (note no srun can run within srun), -e.g., a 1 hour allocation: -

    For tcsh: +

    but unlike in the script, the options are specified without the leading #SBATCH e.g.:

    -
    -srun --pty -n 8 -p pg --gpus=1 --mem=1Gb -t 60 /encs/bin/tcsh
    +   
    +sbatch -J sub-test --chdir=./ --mem=1G ./tcsh.sh
     
    -

    -

    For bash: +

    +

    +

    +

    2.6 Array Jobs

    +

    Array jobs are those that start a batch job or a parallel job multiple times. Each iteration of the job +array is called a task and receives a unique job ID. Array jobs are particularly useful for running a +large number of similar tasks with slight variations.
    +

    To submit an array job (Only supported for batch jobs), use the --array option of the sbatch +command as follows:

    -
    -srun --pty -n 8 -p pg --gpus=1 --mem=1Gb -t 60 /encs/bin/bash
    -
    -

    -

    +

    +sbatch --array=n-m[:s]] <batch_script>
    +
    +

    +

    where

    +
      +
    • n: indicates the start-id. +
    • +
    • m: indicates the max-id. +
    • +
    • s: indicates the step size.
    +

    Examples:

    +
      +
    • +

      Submit a job with 1 task where the task-id is 10. + + + +

      +
      +     sbatch --array=10 array.sh
      +
      +

      +

    • +
    • +

      Submit a job with 10 tasks numbered consecutively from 1 to 10. + + + +

      +
      +     sbatch --array=1-10 array.sh
      +
      +

      +

    • +
    • +

      Submit a job with 5 tasks numbered consecutively with a step size of 3 (task-ids + 3,6,9,12,15) + + + +

      +
      +     sbatch --array=3-15:3 array.sh
      +
      +

      +

    • +
    • +

      Submit a job with 50000 elements, where %a maps to the task-id between 1 and + 50K. + + + +

      +
      +     sbatch --array=1-50000 -N1 -i my_in_%a -o my_out_%a array.sh
      +
      +

    +

    Output files for Array Jobs:
    The default output and error-files are slurm-job_id_task_id.out. This means that Speed +creates an output and an error-file for each task generated by the array-job, as well as +one for the super-ordinate array-job. To alter this behavior use the -o and -e options of +sbatch.
    +

    For more details about Array Job options, please review the manual pages for sbatch by executing +the following at the command line on speed-submit man sbatch. +

    +

    +

    2.7 Requesting Multiple Cores (i.e., Multithreading Jobs)

    +

    For jobs that can take advantage of multiple machine cores, you can request up to 32 cores (per job) +in your script using the following options: + + + +

    +
    +#SBATCH -n <#cores for processes>
    +#SBATCH -n 1
    +#SBATCH -c <#cores for threads of a single process>
    +
    +

    +

    Both sbatch and salloc support -n on the command line, and it should always be used either in the +script or on the command line as the default \(n=1\).
    +

    Important Considerations:

    +
      +
    • Do not request more cores than you think will be useful, as larger-core jobs are more + difficult to schedule. +
    • +
    • If you are running a program that scales out to the maximum single-machine core count + available, please request 32 cores to avoid node oversubscription (i.e., overloading the + CPUs).
    +

    Note: --ntasks or --ntasks-per-node (-n) refers to processes (usually the ones run with srun). +--cpus-per-task (-c) corresponds to threads per process.
    +

    Some programs consider them equivalent, while others do not. For example, Fluent uses +--ntasks-per-node=8 and --cpus-per-task=1, whereas others may set --cpus-per-task=8 and +--ntasks-per-node=1. If one of these is not 1, some applications need to be configured to use n * c +total cores.
    +

    Core count associated with a job appears under, “AllocCPUS”, in the, sacct -j <job-id>, +output. + + + +

    +
    +[serguei@speed-submit src] % squeue -l
    +Thu Oct 19 20:32:32 2023
    +JOBID PARTITION     NAME     USER    STATE       TIME TIME_LIMI  NODES NODELIST(REASON)
    +2652        ps interact   a_user  RUNNING   9:35:18 1-00:00:00      1 speed-07
    +[serguei@speed-submit src] % sacct -j 2652
    +JobID           JobName  Partition    Account  AllocCPUS      State ExitCode
    +------------ ---------- ---------- ---------- ---------- ---------- --------
    +2652         interacti+         ps     speed1         20    RUNNING      0:0
    +2652.intera+ interacti+                speed1         20    RUNNING      0:0
    +2652.extern      extern                speed1         20    RUNNING      0:0
    +2652.0       gydra_pmi+                speed1         20  COMPLETED      0:0
    +2652.1       gydra_pmi+                speed1         20  COMPLETED      0:0
    +2652.2       gydra_pmi+                speed1         20     FAILED      7:0
    +2652.3       gydra_pmi+                speed1         20     FAILED      7:0
    +2652.4       gydra_pmi+                speed1         20  COMPLETED      0:0
    +2652.5       gydra_pmi+                speed1         20  COMPLETED      0:0
    +2652.6       gydra_pmi+                speed1         20  COMPLETED      0:0
    +2652.7       gydra_pmi+                speed1         20  COMPLETED      0:0
    +
    +

    +

    +

    +

    2.8 Interactive Jobs

    +

    Interactive job sessions allow you to interact with the system in real-time. These sessions are +particularly useful for tasks such as testing, debugging, optimizing code, setting up environments, and +other preparatory work before submitting batch jobs. +

    +

    +
    2.8.1 Command Line
    +

    To request an interactive job session, use the salloc command with appropriate options. This is +similar to submitting a batch job but allows you to run shell commands interactively within the +allocated resources. For example: + + + +

    +
    +salloc -J interactive-test --mem=1G -p ps -n 8
    +
    +

    +

    Within the allocated salloc session, you can run shell commands as usual. It is recommended to +use srun for compute-intensive steps within salloc. If you need a quick, short job just to compile +something on a GPU node, you can use an interactive srun directly. For example, a 1-hour +allocation:
    +

    For tcsh: + + + +

    +
    +srun --pty -n 8 -p pg --gpus=1 --mem=1G -t 60 /encs/bin/tcsh
    +
    +

    +

    For bash: + + +

    -
    2.8.2 Graphical Applications
    -

    If you need to run an on-Speed graphical-based UI application (e.g., MALTLAB, Abaqus CME, etc.), -or an IDE (PyCharm, VSCode, Eclipse) to develop and test your job’s code interactively you need to -enable X11-forwarding from your client machine to speed then to the compute node. To do -so: -

    +

    +srun --pty -n 8 -p pg --gpus=1 --mem=1G -t 60 /encs/bin/bash
    +
    +

    +

    +

    +
    2.8.2 Graphical Applications
    +

    To run graphical UI applications (e.g., MALTLAB, Abaqus CME, IDEs like PyCharm, VSCode, +Eclipse, etc.) on Speed, you need to enable X11 forwarding from your client machine Speed then to +the compute node. To do so, follow these steps: +

      -
    1. -

      you need to run an X server on your client machine, such as,

      +
    2. +

      Run an X server on your client machine:

        -
      • on Windows: MobaXterm with X turned on, or Xming + PuTTY with X11 +
      • Windows: Use MobaXterm with X turned on, or Xming + PuTTY with X11 forwarding, or XOrg under Cygwin
      • -
      • on macOS: XQuarz – use its xterm and ssh -X +
      • macOS: Use XQuarz – use its xterm and ssh -X
      • -
      • on Linux just use ssh -X speed.encs.concordia.ca
      -

      See https://www.concordia.ca/ginacody/aits/support/faq/xserver.html for - details. +

    3. Linux: Use ssh -X speed.encs.concordia.ca
    4. +

      For more details, see How do I remotely launch X(Graphical) applications?

      -
    5. -

      verify your X connection was properly forwarded by printing the DISPLAY variable: -

      echo $DISPLAY If it has no output, then your X forwarding is not on and you may need to - re-login to Speed. +

    6. +

      Verify that X11 forwarding is enabled by printing the DISPLAY variable: + + + +

      +
      +     echo $DISPLAY
      +
      +

    7. -
    8. -

      Use the --x11 with salloc or srun: -

      salloc ... --x11=first ... +

    9. +

      Start an interactive session with X11 forwarding enabled (Use the --x11 with salloc or srun), + for example: +

      +
      +     salloc -p ps --x11=first --mem=4G -t 0-06:00
      +
      +

    10. -
    11. Once landed on a compute node, verify DISPLAY again. +
    12. Once landed on a compute node, verify DISPLAY again.
    13. -
    14. -

      While running under scheduler, create a run-user directory and set the variable - XDG_RUNTIME_DIR. +

    15. +

      Set the XDG_RUNTIME_DIR variable to a directory in your speed-scratch space:

      -
      +     
            mkdir -p /speed-scratch/$USER/run-dir
            setenv XDG_RUNTIME_DIR /speed-scratch/$USER/run-dir
       
      -

      +

    16. -
    17. -

      Launch your graphical application: -

      module load the required version, then matlab, or abaqus cme, etc.

    -

    Here’s an example of starting PyCharm (see Figure 4), of which we made a sample local -installation. You can make a similar install under your own directory. If using VSCode, it’s currently -only supported with the --no-sandbox option.
    -

    BASH version: +

  • +

    Launch your graphical application:

    -
    -bash-3.2$ ssh -X speed (XQuartz xterm, PuTTY or MobaXterm have X11 forwarding too)
    -serguei@speed’s password:
    -[serguei@speed-submit ~] % echo $DISPLAY
    -localhost:14.0
    -[serguei@speed-submit ~] % salloc -p ps --x11=first --mem=4Gb -t 0-06:00
    -bash-4.4$ echo $DISPLAY
    -localhost:77.0
    -bash-4.4$ hostname
    -speed-01.encs.concordia.ca
    -bash-4.4$ export XDG_RUNTIME_DIR=/speed-scratch/$USER/run-dir
    -bash-4.4$ /speed-scratch/nag-public/bin/pycharm.sh
    +     
    +     module load matlab/R2023a/default
    +     matlab
     
    -

    -

    TCSH version: +

  • +

    Note: with X11 forwarding the graphical rendering is happening on your client machine! That is +you are not using GPUs on Speed to render graphics, instead all graphical information is +forwarded from Speed to your desktop or laptop over X11, which in turn renders it using its +own graphics card. Thus, for GPU rendering jobs either keep them non-interactive or use +VirtualGL.
    +

    Here’s an example of starting PyCharm (see Figure 5). Note: If using VSCode, it’s currently only +supported with the --no-sandbox option.
    +

    TCSH version:

    -
    +   
     ssh -X speed (XQuartz xterm, PuTTY or MobaXterm have X11 forwarding too)
     [speed-submit] [/home/c/carlos] > echo $DISPLAY
     localhost:14.0
    @@ -1085,87 +1303,104 @@ 
    +

    BASH version: + + + +

    +
    +bash-3.2$ ssh -X speed (XQuartz xterm, PuTTY or MobaXterm have X11 forwarding too)
    +serguei@speed’s password:
    +[serguei@speed-submit ~] % echo $DISPLAY
    +localhost:14.0
    +[serguei@speed-submit ~] % salloc -p ps --x11=first --mem=4Gb -t 0-06:00
    +bash-4.4$ echo $DISPLAY
    +localhost:77.0
    +bash-4.4$ hostname
    +speed-01.encs.concordia.ca
    +bash-4.4$ export XDG_RUNTIME_DIR=/speed-scratch/$USER/run-dir
    +bash-4.4$ /speed-scratch/nag-public/bin/pycharm.sh
    +
    +

    -
    +
    - + -

    PIC +

    PIC

    -
    Figure 4: PyCharm Starting up on a Speed Node
    +
    Figure 5: Launching PyCharm on a Speed Node
    -
    2.8.3 Jupyter Notebooks in Singularity
    -

    This is an example of running Jupyter notebooks together with Singularity (more on Singularity see -Section 2.16). Here we are using one of the OpenISS-derived containers (see Section 2.15.4 as -well). -

    +

    2.8.3 Jupyter Notebooks
    +

    2.8.3.1 Jupyter Notebook in Singularity + To run Jupyter Notebooks using Singularity (more on Singularity see Section 2.16), follow these +steps: +

      -
    1. Use the --x11 with salloc or srun as described in the above example +
    2. Connect to Speed, e.g. interactively, using salloc
    3. -
    4. Load Singularity module module load singularity/3.10.4/default +
    5. Load Singularity module module load singularity/3.10.4/default
    6. -
    7. -

      Execute this Singularity command on a single line. It’s best to save it in a shell script that you - could call, since it’s long. +

    8. +

      Execute this Singularity command on a single line or save it in a shell script from our + GitHub where you could easily invoke it.

      -
      +     
            srun singularity exec -B $PWD\:/speed-pwd,/speed-scratch/$USER\:/my-speed-scratch,/nettemp \
      -      --env SHELL=/bin/bash --nv /speed-scratch/nag-public/openiss-cuda-conda-jupyter.sif \
      -      /bin/bash -c ’/opt/conda/bin/jupyter notebook --no-browser --notebook-dir=/speed-pwd \
      -      --ip="*" --port=8888 --allow-root’
      +     --env SHELL=/bin/bash --nv /speed-scratch/nag-public/openiss-cuda-conda-jupyter.sif \
      +     /bin/bash -c ’/opt/conda/bin/jupyter notebook --no-browser --notebook-dir=/speed-pwd \
      +     --ip="*" --port=8888 --allow-root’
       
      -

      +

    9. -
    10. -

      Create an ssh tunnel between your computer and the node (speed-XX) where Jupyter is - running (Using speed-submit as a “jump server”) (Preferably: PuTTY, see Figure 5 and - Figure 6) +

    11. +

      In a new terminal window, create an ssh tunnel between your computer and the node + (speed-XX) where Jupyter is running (using speed-submit as a “jump server”, see, e.g., in + PuTTY, in Figure 6 and Figure 7)

      -
      -     ssh -L 8888:speed-XX:8888 YOUR_USER@speed-submit.encs.concordia.ca
      +     
      +     ssh -L 8888:speed-XX:8888 <ENCS-username>@speed-submit.encs.concordia.ca
       
      -

      Don’t close the tunnel. +

      Don’t close the tunnel after establishing.

    12. -
    13. -

      Open a browser, and copy your Jupyter’s token, in the screenshot example in Figure 7; each - time the token will be different, as it printed to you in the terminal. +

    14. +

      Open a browser, and copy your Jupyter’s token (it’s printed to you in the terminal) and paste it + in the browser’s URL field. In our case, the URL is:

      -
      +     
            http://localhost:8888/?token=5a52e6c0c7dfc111008a803e5303371ed0462d3d547ac3fb
       
      -

      +

    15. -
    16. Work with your notebook. -
    +
  • Access the Jupyter Notebook interface in your browser.
  • - +
    PIC
    -
    Figure 5: SSH tunnel configuration 1
    +
    Figure 6: SSH tunnel configuration 1
    @@ -1175,12 +1410,12 @@
    +
    PIC
    -
    Figure 6: SSH tunnel configuration 2
    +
    Figure 7: SSH tunnel configuration 2
    @@ -1190,100 +1425,152 @@
    +
    PIC
    -
    Figure 7: Jupyter running on a Speed node
    +
    Figure 8: Jupyter running on a Speed node
    -
    2.8.4 Jupyter Labs in Conda and Pytorch
    -

    This is an example of Jupyter Labs running in a Conda environment, with Pytorch +

    Another sample is the OpenISS-derived containers with Conda and Jupyter, see Section 2.15.4 for +details. +

    +

    2.8.3.2 JupyterLab in Conda and Pytorch + For setting up Jupyter Labs with Conda and Pytorch, follow these steps:

    • -

      Environment preparation: for the FIRST time: +

      Environment preparation: (only once, takes some time to run to install all required + dependencies)

        -
      1. Go to your speed-scratch directory: cd /speed-scratch/$USER -
      2. -
      3. Create a Jupyter (name of your choice) directory: mkdir -p Jupyter -
      4. -
      5. Go to Jupyter: cd Jupyter -
      6. -
      7. Open an Interactive session: salloc --mem=50G --gpus=1 -ppg (or -ppt) -
      8. -
      9. -

        Set env. variables, conda environment, jupyter+pytorch installation +

      10. +

        Navigate to your speed-scratch directory:

        -
        -         module load anaconda3/2023.03/default
        -         setenv TMPDIR /speed-scratch/$USER/tmp
        -         setenv TMP /speed-scratch/$USER/tmp
        -         setenv CONDA_PKGS_DIRS /speed-scratch/$USER/Jupyter/pkgs
        -         conda create -p /speed-scratch/$USER/Jupyter/jupyter-env
        -         conda activate /speed-scratch/$USER/Jupyter/jupyter-env
        -         conda install -c conda-forge jupyterlab
        -         pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
        -         exit
        +         
        +         cd /speed-scratch/\$USER
        +
        +

        +

      11. +
      12. +

        Create a Jupyter (name of your choice) directory and cd into it: + + + +

        +
        +         mkdir -p Jupyter
        +         cd Jupyter
         
        -

      +

      +

    • +
    • +

      Start an interactive session: + + + +

      +
      +         salloc --mem=50G --gpus=1 -ppg (or -ppt)
      +
      +

      +

    • +
    • +

      Set conda environment variables, and install jupyterlab and pytorch, as shown in + Figure 9 from our GitHub. +

      +
      +
      #!/encs/bin/tcsh 
      + 
      +mkdir -p /speed-scratch/$USER/Jupyter 
      +module load anaconda3/2023.03/default 
      +setenv TMPDIR /speed-scratch/$USER/tmp 
      +setenv TMP /speed-scratch/$USER/tmp 
      +setenv CONDA_PKGS_DIRS /speed-scratch/$USER/Jupyter/pkgs 
      +conda create -p /speed-scratch/$USER/Jupyter/jupyter-env -y 
      +conda activate /speed-scratch/$USER/Jupyter/jupyter-env 
      +conda install -c conda-forge jupyterlab -y 
      +pip3 install --quiet torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 
      +exit
      +         
      +
      Figure 9: Source code for firsttime.sh
      +
      +
    • -

      Running Jupyter Labs, from speed-submit: +

      Execution of Jupyter Labs from speed-submit (repeat this every time you want to run Jupyter + Labs):

        -
      1. -

        Open an Interactive session: salloc --mem=50G --gpus=1 -ppg (or -ppt) +

      2. +

        Start an interactive session:

        -
        -         cd /speed-scratch/$USER/Jupyter
        -         module load anaconda3/2023.03/default
        -         setenv TMPDIR /speed-scratch/$USER/tmp
        -         setenv TMP /speed-scratch/$USER/tmp
        -         setenv CONDA_PKGS_DIRS /speed-scratch/$USER/Jupyter/pkgs
        -         conda activate /speed-scratch/$USER/Jupyter/jupyter-env
        -         jupyter lab --no-browser --notebook-dir=$PWD --ip="*" --port=8888 --port-retries=50
        +         
        +         salloc --mem=50G --gpus=1 -p pg (or -p pt)
         
        -

        +

      3. -
      4. Verify which port the system has assigned to Jupyter: http://localhost:XXXX/lab?token= +
      5. +

        Activate your conda environment and run Jupyter Labs, as shown in Figure 10 (also + available on our GitHub). +

        +
        +
        #!/encs/bin/tcsh 
        + 
        +cd /speed-scratch/$USER/Jupyter 
        +module load anaconda3/2023.03/default 
        +setenv TMPDIR /speed-scratch/$USER/tmp 
        +setenv TMP /speed-scratch/$USER/tmp 
        +setenv CONDA_PKGS_DIRS /speed-scratch/$USER/Jupyter/pkgs 
        +conda activate /speed-scratch/$USER/Jupyter/jupyter-env 
        +jupyter lab --no-browser --notebook-dir=$PWD --ip="0.0.0.0" --port=8888 --port-retries=50
        +         
        +
        Figure 10: Source code for run.sh
        +
      6. -
      7. SSH Tunnel creation: similar to Jupyter in Singularity, see Section 2.8.3 +
      8. Verify which port the system has assigned to your Jupyter Lab instance by examining + the URL http://localhost:XXXX/lab?token= in your terminal as described + previously.
      9. -
      10. Open a browser and type: localhost:XXXX (port assigned)
      +
    • In a new terminal window, create an ssh tunnel similar to Jupyter in Singularity, see + Section 2.8.3.1. +
    • +
    • Open a browser and copy your Jupyter’s token and paste it in the browser’s URL + field
    -

    -

    -
    2.8.5 Jupyter Labs + Pytorch in Python venv
    -

    This is an example of Jupyter Labs running in a Python Virtual environment (venv), with -Pytorch +

    2.8.3.3 JupyterLab + Pytorch in Python venv + This is an example of Jupyter Labs running in a Python Virtual environment (venv), with Pytorch +on Speed.
    +

    Note: Use of Python virtual environments is preferred over Conda at Alliance Canada +clusters. If you prefer to make jobs that are more compatible between Speed and Alliance +clusters, use Python venvs. See https://docs.alliancecan.ca/wiki/Anaconda/en and +https://docs.alliancecan.ca/wiki/JupyterNotebook. + + +

    • -

      Environment preparation: for the FIRST time: +

      Environment preparation: for the FIRST time only:

        -
      1. Go to your speed-scratch directory: cd /speed-scratch/$USER +
      2. Go to your speed-scratch directory: cd /speed-scratch/$USER
      3. -
      4. Open an Interactive session: salloc --mem=50G --gpus=1 --constraint=el9 - - - +
      5. Open an interactive session: salloc --mem=50G --gpus=1 --constraint=el9
      6. -
      7. -

        Create Python venv and install jupyterlab+pytorch +

      8. +

        Create a Python venv and install jupyterlab+pytorch

        -
        +         
                  module load python/3.11.5/default
                  setenv TMPDIR /speed-scratch/$USER/tmp
                  setenv TMP /speed-scratch/$USER/tmp
        @@ -1294,92 +1581,92 @@ 
        -

      +

    • -

      Running Jupyter Labs, from speed-submit: +

      Running Jupyter Labs, from speed-submit:

        -
      1. -

        Open an Interactive session: salloc --mem=50G --gpus=1 --constraint=el9 +

      2. +

        Open an interactive session: salloc --mem=50G --gpus=1 --constraint=el9

        -
        +         
                  cd /speed-scratch/$USER
                  module load python/3.11.5/default
                  setenv PIP_CACHE_DIR /speed-scratch/$USER/tmp/cache
                  source /speed-scratch/$USER/tmp/jupyter-venv/bin/activate.csh
                  jupyter lab --no-browser --notebook-dir=$PWD --ip="0.0.0.0" --port=8888 --port-retries=50
         
        -

        +

      3. -
      4. Verify which port the system has assigned to Jupyter: http://localhost:XXXX/lab?token= +
      5. Verify which port the system has assigned to Jupyter:
        http://localhost:XXXX/lab?token=
      6. -
      7. SSH Tunnel creation: similar to Jupyter in Singularity, see Section 2.8.3 +
      8. SSH Tunnel creation: similar to Jupyter in Singularity, see Section 2.8.3.1
      9. -
      10. Open a browser and type: localhost:XXXX (port assigned)
      +
    • Open a browser and type: localhost:XXXX (using the port assigned)
    -

    +

    -
    2.8.6 VScode
    -

    This is an example of running VScode, it’s similar to Jupyter notebooks, but it doesn’t use containers. -This a Web version, it exists the local(workstation)-remote(speed-node) version too, but it is for -Advanced users (no support, execute it at your own risk). +

    2.8.4 Visual Studio Code
    +

    This is an example of running VScode, it’s similar to Jupyter notebooks, but it doesn’t use containers. +Note: this a Web-based version; there exists the local (workstation) – remote (speed-node) +client-server version too, but it is for advanced users and is out of scope here (so no support, use it at +your own risk).

    • -

      Environment preparation: for the FIRST time: +

      Environment preparation: for the FIRST time:

        -
      1. Go to your speed-scratch directory: cd /speed-scratch/$USER +
      2. Go to your speed-scratch directory: cd /speed-scratch/$USER
      3. -
      4. Create a vscode directory: mkdir vscode +
      5. Create a vscode directory: mkdir vscode
      6. -
      7. Go to vscode: cd vscode +
      8. Go to vscode: cd vscode
      9. -
      10. Create home and projects: mkdir {home,projects} +
      11. Create home and projects: mkdir {home,projects}
      12. -
      13. Create this directory: mkdir -p /speed-scratch/$USER/run-user
      +
    • Create this directory: mkdir -p /speed-scratch/$USER/run-user
    • -

      Running VScode +

      Running VScode

        -
      1. Go to your vscode directory: cd /speed-scratch/$USER/vscode +
      2. Go to your vscode directory: cd /speed-scratch/$USER/vscode
      3. -
      4. Open interactive session: salloc --mem=10Gb --constraint=el9 +
      5. Open interactive session: salloc --mem=10Gb --constraint=el9
      6. -
      7. Set environment variable: setenv XDG_RUNTIME_DIR - /speed-scratch/$USER/run-user +
      8. Set environment variable:
        setenv XDG_RUNTIME_DIR /speed-scratch/$USER/run-user
      9. -
      10. -

        Run VScode, change the port if needed. +

      11. +

        Run VScode, change the port if needed.

        -
        +         
                  /speed-scratch/nag-public/code-server-4.22.1/bin/code-server --user-data-dir=$PWD\/projects \
                  --config=$PWD\/home/.config/code-server/config.yaml --bind-addr="0.0.0.0:8080" $PWD\/projects
         
        -

        +

      12. -
      13. SSH Tunnel creation: similar to Jupyter, see Section 2.8.3 +
      14. SSH Tunnel creation: similar to Jupyter, see Section 2.8.3.1
      15. -
      16. Open a browser and type: localhost:8080 +
      17. Open a browser and type: localhost:8080
      18. -
      19. -

        If the browser asks for password: +

      20. +

        If the browser asks for a password, consult:

        -
        +         
                  cat /speed-scratch/$USER/vscode/home/.config/code-server/config.yaml
         
        -

        +

    @@ -1388,231 +1675,287 @@
    2.8.6 +
    PIC
    -
    Figure 8: VScode running on a Speed node
    +
    Figure 11: VScode running on a Speed node
    -

    2.9 Scheduler Environment Variables

    -

    The scheduler presents a number of environment variables that can be used in your jobs. You can -invoke env or printenv in your job to know what hose are (most begin with the prefix SLURM). Some -of the more useful ones are: +

    2.9 Scheduler Environment Variables

    +

    The scheduler provides several environment variables that can be useful in your job scripts. These +variables can be accessed within the job using commands like env or printenv. Many of these +variables start with the prefix SLURM.
    +

    Here are some of the most useful environment variables:

      -
    • $TMPDIR – the path to the job’s temporary space on the node. It only exists for the - duration of the job, so if data in the temporary space are important, they absolutely need - to be accessed before the job terminates. +
    • $TMPDIR (and $SLURM_TMPDIR): This is the path to the job’s temporary space on the node. + It only exists for the duration of the job. If you need the data from this temporary space, + ensure you copy it before the job terminates.
    • -
    • $SLURM_SUBMIT_DIR – the path to the job’s working directory (likely an NFS-mounted +
    • $SLURM_SUBMIT_DIR: The path to the job’s working directory (likely an NFS-mounted path). If, --chdir, was stipulated, that path is taken; if not, the path defaults to your home directory.
    • -
    • $SLURM_JOBID – your current jobs ID, useful for some manipulation and reporting. +
    • $SLURM_JOBID: This variable holds the current job’s ID, which is useful for job + manipulation and reporting within the job’s process.
    • -
    • $SLURM_JOB_NODELIST=nodes participating in your job. +
    • $SLURM_NTASKS: the number of cores requested for the job. This variable can be used in + place of hardcoded thread-request declarations, e.g., for Fluent or similar.
    • -
    • $SLURM_ARRAY_TASK_ID=for array jobs (see Section 2.6). +
    • $SLURM_JOB_NODELIST: This lists the nodes participating in your job.
    • -
    • -

      See a more complete list here: -

      - -
    -

    In Figure 9 is a sample script, using some of these. +

  • $SLURM_ARRAY_TASK_ID: For array jobs, this variable represents the task ID (refer to + Section 2.6 for more details on array jobs).
  • +

    For a more comprehensive list of environment variables, refer to the SLURM documentation for Input +Environment Variables and Output Environment Variables.
    +

    An example script that utilizes some of these environment variables is in Figure 12.

    - + -
    #!/encs/bin/tcsh 
    - 
    -#SBATCH --job-name=tmpdir      ## Give the job a name 
    -#SBATCH --mail-type=ALL        ## Receive all email type notifications 
    -#SBATCH --chdir=./             ## Use currect directory as working directory 
    -#SBATCH --nodes=1 
    -#SBATCH --ntasks=1 
    -#SBATCH --cpus-per-task=8      ## Request 8 cores 
    -#SBATCH --mem=32G              ## Assign 32G memory per node 
    - 
    -cd $TMPDIR 
    -mkdir input 
    -rsync -av $SLURM_SUBMIT_DIR/references/ input/ 
    -mkdir results 
    -srun STAR --inFiles $TMPDIR/input --parallel $SRUN_CPUS_PER_TASK --outFiles $TMPDIR/results 
    -rsync -av $TMPDIR/results/ $SLURM_SUBMIT_DIR/processed/
    +
    #!/encs/bin/tcsh 
    + 
    +#SBATCH --job-name=tmpdir      ## Give the job a name 
    +#SBATCH --mail-type=ALL        ## Receive all email type notifications 
    +#SBATCH --chdir=./             ## Use currect directory as working directory 
    +#SBATCH --nodes=1 
    +#SBATCH --ntasks=1 
    +#SBATCH --cpus-per-task=8      ## Request 8 cores 
    +#SBATCH --mem=32G              ## Assign 32G memory per node 
    + 
    +cd $TMPDIR 
    +mkdir input 
    +rsync -av $SLURM_SUBMIT_DIR/references/ input/ 
    +mkdir results 
    +srun STAR --inFiles $TMPDIR/input --parallel $SRUN_CPUS_PER_TASK --outFiles $TMPDIR/results 
    +rsync -av $TMPDIR/results/ $SLURM_SUBMIT_DIR/processed/
     
    -
    Figure 9: Source code for tmpdir.sh
    +
    Figure 12: Source code for tmpdir.sh
    -

    2.10 SSH Keys For MPI

    -

    Some programs effect their parallel processing via MPI (which is a communication protocol). An -example of such software is Fluent. MPI needs to have ‘passwordless login’ set up, which means SSH -keys. In your NFS-mounted home directory: +

    2.10 SSH Keys for MPI

    +

    Some programs, such as Fluent, utilize MPI (Message Passing Interface) for parallel processing. MPI +requires ‘passwordless login’, which is achieved through SSH keys. Here are the steps to set up SSH +keys for MPI:

      -
    • cd .ssh -
    • -
    • ssh-keygen -t ed25519 (default location; blank passphrase) -
    • -
    • cat id_ed25519.pub >> authorized_keys (if the authorized_keys file already exists) - OR cat id_ed25519.pub > authorized_keys (if does not) -
    • -
    • Set file permissions of authorized_keys to 600; of your NFS-mounted home to 700 - (note that you likely will not have to do anything here, as most people will have those - permissions by default).
    -

    -

    -

    2.11 Creating Virtual Environments

    -

    The following documentation is specific to the Speed HPC Facility at the Gina Cody School of -Engineering and Computer Science. Virtual environments typically instantiated via Conda or Python. -Another option is Singularity detailed in Section 2.16. Usually, virtual environments are created once -during an interactive session before submitting a batch job to the scheduler. The job script submitted -to the scheduler is then written to (1) activate the virtual environment, (2) use it, and (3) close it at -the end of the job. -

    +

  • +

    Navigate to the .ssh directory + + +

    -
    2.11.1 Anaconda
    -

    Request an interactive session in the queue you wish to submit your jobs to (e.g., salloc -p pg -–gpus=1 for GPU jobs). Once your interactive has started, create an anaconda environment in your -speed-scratch directory by using the prefix option when executing conda create. For example, +

    +     cd ~/.ssh
    +
    +

    +

  • +
  • +

    Generate a new SSH key pair (Accept the default location and leave the passphrase + blank) -to create an anaconda environment for a_user, execute the following at the command -line: +

    +
    +     ssh-keygen -t ed25519
    +
    +

    +

  • +
  • +

    Authorize the Public Key:

    -
    -module load anaconda3/2023.03/default
    -conda create --prefix /speed-scratch/a_user/myconda
    +     
    +     cat id_ed25519.pub >> authorized_keys
     
    -

    -

    Note: Without the prefix option, the conda create command creates the environment in a_user’s -home directory by default. +

    If the authorized_keys file does not exist, use + + +

    -

    List Environments. - To view your conda environments, type: conda info --envs +

    +     cat id_ed25519.pub > authorized_keys
    +
    +

    +

  • +
  • +

    Set permissions: ensure the correct permissions are set for the ‘authorized_keys’ file and your + home directory (most users will already have these permissions by default):

    -
    -# conda environments:
    -#
    -base                  *  /encs/pkg/anaconda3-2023.03/root
    -                         /speed-scratch/a_user/myconda
    +     
    +     chmod 600 ~/.ssh/authorized_keys
    +     chmod 700 ~
     
    -

    +

  • +

    +

    +

    2.11 Creating Virtual Environments

    +

    The following documentation is specific to Speed. Other clusters may have their own requirements. +Virtual environments are typically created using Conda or Python. Another option is Singularity +(detailed in Section 2.16). These environments are usually created once during an interactive session +before submitting a batch job to the scheduler. The job script submitted to the scheduler +should: +

      +
    1. Activate the virtual environment. +
    2. +
    3. Use the virtual environment. +
    4. +
    5. Deactivate the virtual environment at the end of the job.
    +

    -

    Activate an Environment. - Activate the environment speedscratcha_usermyconda as follows +

    2.11.1 Anaconda
    +

    To create an Anaconda environment, follow these steps: +

      +
    1. +

      Request an interactive session

      -
      -conda activate /speed-scratch/a_user/myconda
      +     
      +     salloc -p pg --gpus=1
       
      -

      After activating your environment, add pip to your environment by using +

      +

    2. +
    3. +

      Load the Anaconda module and create your Anaconda environment in your speed-scratch + directory by using the --prefix option (without this option, the environment will be created in + your home directory by default).

      -
      -conda install pip
      +     
      +     module load anaconda3/2023.03/default
      +     conda create --prefix /speed-scratch/$USER/myconda
       
      -

      This will install pip and pip’s dependencies, including python, into the environment. +

      +

    4. +
    5. +

      List environments (to view your conda environment) + + +

      -
        -
      • -

        A consolidated example using Conda: +

        +     conda info --envs
        +     # conda environments:
        +     #
        +     base                  *  /encs/pkg/anaconda3-2023.03/root
        +                                /speed-scratch/a_user/myconda
        +
        +

        +

      • +
      • +

        Activate the environment

        -
        -     salloc -p pg --gpus=1 --mem=10GB -A <slurm account name>
        -     cd /speed-scratch/$USER
        -     module load python/3.11.0/default
        -     conda create -p /speed-scratch/$USER/pytorch-env
        -     conda activate /speed-scratch/$USER/pytorch-env
        -     conda install python=3.11.0
        -     pip3 install torch torchvision torchaudio --index-url \
        -       https://download.pytorch.org/whl/cu117
        -     ....
        -     conda deactivate
        -     exit # end the salloc session
        -
        -

        +

        +     conda activate /speed-scratch/$USER/myconda
        +
        +

      • -
      • No Space left error: Read our Github HERE
      -

      Important Note: pip (and pip3) are used to install modules from the python distribution while -conda install installs modules from anaconda’s repository. +

    6. +

      Add pip to your environment (this will install pip and pip’s dependencies, including python, + into the environment.) + + +

      -

      Conda Env without –prefix: - If you don’t want to use the prefix option every time you create a new environment and you -don’t want to use the default $HOME. Create a new directory an set the following variables to point to -the new created directory, e.g: +

      +     conda install pip
      +
      +

    +

    A consolidated example using Conda:

    -
    -setenv CONDA_ENVS_PATH /speed-scratch/$USER/condas
    -setenv CONDA_PKGS_DIRS /speed-scratch/$USER/condas/pkg
    +   
    +salloc -p pg --gpus=1 --mem=10G -A <slurm account name>
    +cd /speed-scratch/$USER
    +module load python/3.11.0/default
    +conda create -p /speed-scratch/$USER/pytorch-env
    +conda activate /speed-scratch/$USER/pytorch-env
    +conda install python=3.11.0
    +pip3 install torch torchvision torchaudio --index-url \
    +  https://download.pytorch.org/whl/cu117
    +....
    +conda deactivate
    +exit # end the salloc session
     
    -

    If you want to make these changes permanent, add the variables to your .tcshrc or .bashrc -(depending on the default shell you are using) -

    +

    +

    If you encounter no space left error while creating Conda environments, please refer to +Appendix B.3. Likely you forgot --prefix or environment variables below.
    +

    Important Note: pip (and pip3) are package installers for Python. When you use pip install, it +installs packages from the Python Package Index (PyPI), whereas, conda install installs packages +from Anaconda’s repository.

    -
    2.11.2 Python
    -

    Setting up a Python virtual environment is fairly straightforward. The first step is to request an -interactive session in the queue you wish to submit your jobs to. -

    We have a simple example that use a Python virtual environment: +

    2.11.1.1 Conda Env without --prefix + If you don’t want to use the --prefix option every time you create a new environment and do not +want to use the default home directory, you can create a new directory and set the following variables +to point to the newly created directory, e.g.: + + +

    -
      -
    • -

      Using Python Venv +

      +mkdir -p /speed-scratch/$USER/conda
      +setenv CONDA_ENVS_PATH /speed-scratch/$USER/conda
      +setenv CONDA_PKGS_DIRS /speed-scratch/$USER/conda/pkg
      +
      +

      If you want to make these changes permanent, add the variables to your .tcshrc or .bashrc +(depending on the default shell you are using). +

      +

      +
      2.11.2 Python
      +

      Setting up a Python virtual environment is straightforward. Here’s an example that use a Python +virtual environment:

      -
      -     salloc -p pg --gpus=1 --mem=10GB -A <slurm account name>
      -     cd /speed-scratch/$USER
      -     module load python/3.9.1/default
      -     mkdir -p /speed-scratch/$USER/tmp
      -     setenv TMPDIR /speed-scratch/$USER/tmp
      -     setenv TMP /speed-scratch/$USER/tmp
      -     python -m venv $TMPDIR/testenv (testenv=name of the virtualEnv)
      -     source /speed-scratch/$USER/tmp/testenv/bin/activate.csh
      -     pip install modules…
      -     deactivate
      -     exit
      -
      -

      -

    • -
    • See, e.g., gurobi-with-python.sh
    -

    Important Note: partition ps is used for CPU jobs, partitions pg, pt are used for GPU jobs, no -need to use --gpus= when preparing environments for CPU jobs. -

    +

    +salloc -p pg --gpus=1 --mem=10G -A <slurm account name>
    +cd /speed-scratch/$USER
    +module load python/3.9.1/default
    +mkdir -p /speed-scratch/$USER/tmp
    +setenv TMPDIR /speed-scratch/$USER/tmp
    +setenv TMP /speed-scratch/$USER/tmp
    +python -m venv $TMPDIR/testenv (testenv=name of the virtualEnv)
    +source /speed-scratch/$USER/tmp/testenv/bin/activate.csh
    +pip install modules...
    +deactivate
    +exit
    +
    +

    +

    See, e.g., gurobi-with-python.sh
    +

    Important Note: our partition ps is used for CPU jobs, while pg, pt, and cl are used +for GPU jobs. You do not need to use --gpus when preparing environments for CPU +jobs.
    +

    Note: Python enviornments are also preferred over Conda in some clusters, see a note +in Section 2.8.3.3. +

    2.12 Example Job Script: Fluent

    @@ -1620,11 +1963,11 @@

    + -
    #!/encs/bin/tcsh 
    +
    #!/encs/bin/tcsh 
      
     #SBATCH --job-name=flu10000    ## Give the job a name 
     #SBATCH --mail-type=ALL        ## Receive all email type notifications 
    @@ -1657,126 +2000,198 @@ 

    date

    -
    Figure 10: Source code for fluent.sh
    +
    Figure 13: Source code for fluent.sh

    -

    The job script in Figure 10 runs Fluent in parallel over 32 cores. Of note, we have requested -e-mail notifications (--mail-type), are defining the parallel environment for, fluent, with, --t$SLURM_NTASKS and -g-cnf=$FLUENTNODES (very important), and are setting $TMPDIR as -the in-job location for the “moment” rfile.out file (in-job, because the last line of the -script copies everything from $TMPDIR to a directory in the user’s NFS-mounted home). +

    The job script in Figure 13 runs Fluent in parallel over 32 cores. Notable aspects of this script +include requesting e-mail notifications (--mail-type), defining the parallel environment +for Fluent with -t$SLURM_NTASKS and -g-cnf=$FLUENTNODES, and setting $TMPDIR as +the in-job location for the “moment” rfile.out file. The script also copies everything +from $TMPDIR to a directory in the user’s NFS-mounted home after the job completes. Job progress can be monitored by examining the standard-out file (e.g., slurm-249.out), -and/or by examining the “moment” file in /disk/nobackup/<yourjob> (hint: it starts -with your job-ID) on the node running the job. Caveat: take care with journal-file file +and/or by examining the “moment” file in TMPDIR (usually /disk/nobackup/<yourjob> +(it starts with your job-ID)) on the node running the job. Be cautious with journal-file paths.

    -

    2.13 Example Job: efficientdet

    -

    The following steps describing how to create an efficientdet environment on Speed, were submitted by -a member of Dr. Amer’s research group. +

    2.13 Example Job: EfficientDet

    +

    The following steps describe how to create an EfficientDet environment on Speed, as submitted by a +member of Dr. Amer’s research group:

      -
    • Enter your ENCS user account’s speed-scratch directory
      cd /speed-scratch/<encs_username> -
    • -

      Next

      -
        -
      • load python module load python/3.8.3 -
      • -
      • create virtual environment python3 -m venv <env_name> -
      • -
      • activate virtual environment source <env_name>/bin/activate.csh -
      • -
      • install DL packages for Efficientdet
      -
    - - - -
    -pip install tensorflow==2.7.0
    -pip install lxml>=4.6.1
    -pip install absl-py>=0.10.0
    -pip install matplotlib>=3.0.3
    -pip install numpy>=1.19.4
    -pip install Pillow>=6.0.0
    -pip install PyYAML>=5.1
    -pip install six>=1.15.0
    -pip install tensorflow-addons>=0.12
    -pip install tensorflow-hub>=0.11
    -pip install neural-structured-learning>=1.3.1
    -pip install tensorflow-model-optimization>=0.5
    -pip install Cython>=0.29.13
    -pip install git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI
    -
    -

    -

    -

    -

    2.14 Java Jobs

    -

    Jobs that call java have a memory overhead, which needs to be taken into account when assigning a -value to --mem. Even the most basic java call, java -Xmx1G -version, will need to have, ---mem=5G, with the 4-GB difference representing the memory overhead. Note that this memory -overhead grows proportionally with the value of -Xmx. To give you an idea, when -Xmx has a -value of 100G, --mem has to be at least 106G; for 200G, at least 211G; for 300G, at least -314G. -

    -

    -

    2.15 Scheduling On The GPU Nodes

    -

    The primary cluster has two GPU nodes, each with six Tesla (CUDA-compatible) P6 cards: each card -has 2048 cores and 16GB of RAM. Though note that the P6 is mainly a single-precision card, so -unless you need the GPU double precision, double-precision calculations will be faster on a CPU -node. -

    Job scripts for the GPU queue differ in that they need this statement, which attaches either a -single GPU, or, two GPUs, to the job: +

    Navigate to your speed-scratch directory:

    -
    -#SBATCH --gpus=[1|2]
    +     
    +     cd /speed-scratch/$USER
    +       
     
    -

    -

    Once that your job script is ready, you can submit it to the GPU partition (queue) -with: +

    +

    +
  • +

    Load Python module

    -
    -sbatch -p pg ./<myscript>.sh
    +     
    +     module load python/3.8.3
    +       
     
    -

    -

    And you can query nvidia-smi on the node that is running your job with: +

    +

  • +
  • +

    Create and activate the virtual environment

    -
    -ssh <username>@speed[-05|-17|37-43] nvidia-smi
    +     
    +     python3 -m venv <env_name>
    +     source <env_name>/bin/activate.csh
    +       
     
    -

    -

    Status of the GPU queue can be queried with: +

    +

  • +
  • +

    Install DL packages for EfficientDet + + + +

    +
    +     pip install tensorflow==2.7.0
    +     pip install lxml>=4.6.1
    +     pip install absl-py>=0.10.0
    +     pip install matplotlib>=3.0.3
    +     pip install numpy>=1.19.4
    +     pip install Pillow>=6.0.0
    +     pip install PyYAML>=5.1
    +     pip install six>=1.15.0
    +     pip install tensorflow-addons>=0.12
    +     pip install tensorflow-hub>=0.11
    +     pip install neural-structured-learning>=1.3.1
    +     pip install tensorflow-model-optimization>=0.5
    +     pip install Cython>=0.29.13
    +     pip install git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI
    +
    +

  • +

    +

    +

    2.14 Java Jobs

    +

    Jobs that call Java have a memory overhead, which needs to be taken into account when assigning a +value to --mem. Even the most basic Java call, such as Java -Xmx1G -version, will need to have, +--mem=5G, with the 4 GB difference representing the memory overhead. Note that this memory +overhead grows proportionally with the value of -Xmx. For example, +

    +
      +
    • When -Xmx has a value of 100G, --mem has to be at least 106G. +
    • +
    • For -Xmx of 200G, --mem has to be at least 211G. +
    • +
    • For -Xmx of 300G, --mem has to be at least 314G.
    + + + +

    +

    +

    2.15 Scheduling on the GPU Nodes

    +

    Speed has various GPU types in various subclusters of its nodes. +

    +
      +
    • speed-05 and speed-17: The primary SPEED1 cluster has two GPU nodes, each with six + Tesla (CUDA-compatible) P6 cards. Each card has 2048 cores and 16GB of RAM. Note + that the P6 is mainly a single-precision card, so unless you need GPU double precision, + double-precision calculations will be faster on a CPU node. +
    • +
    • speed-01: This vidpro node (see Figure 2, contact Dr. Maria Amer) is identical to 05 + and 17 in its GPU configuration, but managed by the priority for the vidpro group, that + is a pg job scheduled there is a subject for preemption. +
    • +
    • speed-03, speed-25, speed-25: These vidpro nodes feature NVIDIA V100 cards with + 32GB of RAM. Like speed-01, the priority is of the vidpro group, who purchased the + nodes, and others’ jobs are a subject from preemption within pg, pt, and cl partitions. +
    • +
    • speed-37 – speed-43: SPEED2 nodes, the main backbone of the teaching partition pt, + have 4x A100 80GB GPUs each, partitioned into average 4x MIGs of 20GB each, with + exceptions. +
    • +
    • nebulae: A member of the Nebular subcluster (contact Dr. Jun Yan), has 2x 48GB RTX + Ada 6000 cards. This node is in the pn partition. +
    • +
    • speed-19: Has an AMD GPU, Tonga, 16GB of GPU ram. This node along with the + majority of the NVIDIA GPU nodes are in the cl partition (with restrictions) to run + OpenCL, Vulkan, and HIP jobs.
    +

    Job scripts for the GPU queues differ in that they need these statements, which attach either a single +GPU or more GPUs to the job with the appropriate partition: + + + +

    +
    +  #SBATCH --gpus=[1|x]
    +  #SBATCH -p [pg|pt|cl|pa]
    +
    +

    The default max quota for \(x\) is 4. +

    Once your job script is ready, submit it to the GPU partition (queue) with: + + + +

    +
    +  sbatch --mem=<MEMORY> -p pg ./<myscript>.sh
    +
    +

    --mem and -p can reside in the script. +

    You can query nvidia-smi on the node running your job with: + + + +

    +
    +  ssh <ENCSusername>@speed-[01|03|05|17|25|27|37-43]|nebulae nvidia-smi
    +
    +

    +

    The status of the GPU queues can be queried e.g. with: + + + +

    +
    +  sinfo -p pg --long --Node
    +  sinfo -p pt --long --Node
    +  sinfo -p cl --long --Node
    +  sinfo -p pa --long --Node
    +  sinfo -p pn --long --Node
    +
    +

    +

    You can query rocm-smi on the AMD GPU node running your job with:

    -
    -sinfo -p pg --long --Node
    +   
    +  ssh <ENCSusername>@speed-19 rocm-smi
     
    -

    -

    Very important note regarding TensorFlow and PyTorch: if you are planning to run TensorFlow -and/or PyTorch multi-GPU jobs, do not use the tf.distribute and/or
    torch.nn.DataParallel functions on speed-01,05,17, as they will crash the compute node (100% -certainty). This appears to be the current hardware’s architecture’s defect. The workaround is to -either manually effect GPU parallelisation (TensorFlow has an example on how to do this), or to run -on a single GPU. -

    Important -

    Users without permission to use the GPU nodes can submit jobs to the pg partition, but those -jobs will hang and never run. Their availability is seen with: +

    +

    Important note for TensorFlow and PyTorch users: if you are planning to run +TensorFlow and/or PyTorch multi-GPU jobs, please do not use the tf.distribute and/or +torch.nn.DataParallel functions on speed-01, speed-05, or speed-17, as they will crash the +compute node (100% certainty). This appears to be a defect in the current hardware architecture. The +workaround is to either manually effect GPU parallelisation (see Section 2.15.1) (TensorFlow provides +an example on how to do this), or to run on a single GPU, which is now the default for those +nodes.
    +

    Important: Users without permission to use the GPU nodes can submit jobs to the various +GPU partitions, but those jobs will hang and never run. Their availability can be seen +with:

    -
    +   
     [serguei@speed-submit src] % sinfo -p pg --long --Node
     Thu Oct 19 22:31:04 2023
     NODELIST   NODES PARTITION       STATE CPUS    S:C:T MEMORY TMP_DISK WEIGHT AVAIL_FE REASON
    @@ -1795,16 +2210,22 @@ 

    -

    This status demonstrates that most are available (i.e., have not been requested as resources). To specifically request a -GPU node, add, --gpus=[#GPUs], to your sbatch (statement/script) or salloc (statement) request. For example, -sbatch -t 10 --mem=1G --gpus=1 -p pg ./tcsh.sh. You will see that this job has been assigned to one of the GPU -nodes. +

    +

    To specifically request a GPU node, add, --gpus=[#GPUs], to your sbatch statement/script or +salloc statement request. For example: + + + +

    +
    +  sbatch -t 10 --mem=1G --gpus=1 -p pg ./tcsh.sh
    +
    +

    The request can be further specified to a specific node using -w or a GPU type or feature.

    -
    +   
     [serguei@speed-submit src] % squeue -p pg -o "%15N %.6D %7P %.11T %.4c %.8z %.6m %.8d %.6w %.8f %20G %20E"
     NODELIST         NODES PARTITI       STATE MIN_    S:C:T MIN_ME MIN_TMP_  WCKEY FEATURES GROUP DEPENDENCY
     speed-05             1 pg          RUNNING    1    *:*:*     1G        0 (null)   (null) 11929     (null)
    @@ -1814,282 +2235,290 @@ 

    -

    +

    +

    2.15.1 P6 on Multi-GPU, Multi-Node
    -

    As described lines above, P6 cards are not compatible with Distribute and DataParallel functions -(Pytorch, Tensorflow) when running on Multi-GPUs. One workaround is to run the job in -Multi-node, single GPU per node; per example: +

    As described earlier, P6 cards are not compatible with Distribute and DataParallel functions +(PyTorch, Tensorflow) when running on multiple GPUs. One workaround is to run the +job in Multi-node, single GPU per node (this applies to P6 nodes: speed-05, speed-17, +speed-01):

    -
    -#SBATCH --nodes=2
    -#SBATCH --gpus-per-node=1
    +   
    +  #SBATCH --nodes=2
    +  #SBATCH --gpus-per-node=1
     
    -

    -

    On P6 nodes: speed-05, speed-17, speed-01 -

    The example: pytorch-multinode-multigpu.sh illustrates a job for training on Multi-nodes, -Multi-GPUs -

    +

    +

    An example script for training on multiple nodes with multiple GPUs is provided in +pytorch-multinode-multigpu.sh illustrates a job for training on Multi-Nodes, Multi-GPUs +

    2.15.2 CUDA
    -

    When calling CUDA within job scripts, it is important to create a link to the desired CUDA libraries and -set the runtime link path to the same libraries. For example, to use the cuda-11.5 libraries, specify -the following in your Makefile. +

    When calling CUDA within job scripts, it is important to link to the desired the desired CUDA +libraries and set the runtime link path to the same libraries. For example, to use the cuda-11.5 +libraries, specify the following in your Makefile.

    -
    --L/encs/pkg/cuda-11.5/root/lib64 -Wl,-rpath,/encs/pkg/cuda-11.5/root/lib64
    +   
    +  -L/encs/pkg/cuda-11.5/root/lib64 -Wl,-rpath,/encs/pkg/cuda-11.5/root/lib64
    +
    +

    +

    In your job script, specify the version of GCC to use prior to calling CUDA: + + + +

    +
    +  module load gcc/9.3
     
    -

    -

    In your job script, specify the version of gcc to use prior to calling cuda. For example: module -load gcc/8.4 or module load gcc/9.3 -

    +

    +

    -
    2.15.3 Special Notes for sending CUDA jobs to the GPU Queue
    -

    Interactive jobs (Section 2.8) must be submitted to the GPU partition in order to compile and link. -We have several versions of CUDA installed in: +

    2.15.3 Special Notes for Sending CUDA Jobs to the GPU Queues
    +

    Interactive jobs (Section 2.8) must be submitted to the GPU partition to compile and link. Several +versions of CUDA are installed in:

    -
    -/encs/pkg/cuda-11.5/root/
    -/encs/pkg/cuda-10.2/root/
    -/encs/pkg/cuda-9.2/root
    +   
    +  /encs/pkg/cuda-11.5/root/
    +  /encs/pkg/cuda-10.2/root/
    +  /encs/pkg/cuda-9.2/root
     
    -

    -

    For CUDA to compile properly for the GPU partition, edit your Makefile replacing -usrlocalcuda with one of the above. -

    +

    +

    For CUDA to compile properly for the GPU partition, edit your Makefile replacing usrlocalcuda +with one of the above. +

    2.15.4 OpenISS Examples
    -

    These represent more comprehensive research-like examples of jobs for computer vision and other -tasks with a lot longer runtime (a subject to the number of epochs and other parameters) derive from -the actual research works of students and their theses. These jobs require the use of CUDA +

    These examples represent more comprehensive research-like jobs for computer vision and other tasks +with longer runtime (subject to the number of epochs and other parameters). They derive +from the actual research works of students and their theses and require the use of CUDA and GPUs. These examples are available as “native” jobs on Speed and as Singularity containers. +

    Examples include:

    -

    OpenISS and REID - - The example openiss-reid-speed.sh illustrates a job for a computer-vision based person -re-identification (e.g., motion capture-based tracking for stage performance) part of the OpenISS -project by Haotao Lai [10] using TensorFlow and Keras. The fork of the original repo [12] adjusted to -to run on Speed is here: -

    - -

    and its detailed description on how to run it on Speed is in the README: -

    - - - - -

    OpenISS and YOLOv3 - - The related code using YOLOv3 framework is in the the fork of the original repo [11] adjusted to -to run on Speed is here: +

    2.15.4.1 OpenISS and REID + A computer-vision-based person re-identification (e.g., motion capture-based tracking for stage +performance) part of the OpenISS project by Haotao Lai [12] using TensorFlow and Keras. The script +is available here: openiss-reid-speed.sh. The fork of the original repo [14] adjusted to run on Speed is +available here: openiss-reid-tfk. Detailed instructions on how to run it on Speed are in the README: +https://github.com/NAG-DevOps/speed-hpc/tree/master/src#openiss-reid-tfk

    - -

    Its example job scripts can run on both CPUs and GPUs, as well as interactively using -TensorFlow: +

    2.15.4.2 OpenISS and YOLOv3 + The related code using YOLOv3 framework is in the the fork of the original repo [13] adjusted to +to run on Speed is available here: openiss-yolov3.
    +

    Example job scripts can run on both CPUs and GPUs, as well as interactively using TensorFlow:

    -

    The detailed description on how to run these on Speed is in the README at: -

    - -

    +

  • GPU-based job: openiss-yolo-gpu.sh
  • +

    Detailed instructions on how to run these on Speed are in the README: +https://github.com/NAG-DevOps/speed-hpc/tree/master/src#openiss-yolov3 +

    2.16 Singularity Containers

    -

    If the /encs software tree does not have a required software instantaneously available, another option -is to run Singularity containers. We run EL7 flavor of Linux, and if some projects require Ubuntu or -other distributions, there is a possibility to run that software as a container, including the ones -translated from Docker. -

    The example lambdal-singularity.sh showcases an immediate use of a container built for the -Ubuntu-based LambdaLabs software stack, originally built as a Docker image then pulled -in as a Singularity container that is immediately available for use as that job example -illustrates. The source material used for the docker image was our fork of their official repo: -https://github.com/NAG-DevOps/lambda-stack-dockerfiles - - - -

    NOTE: It is important if you make your own containers or pull from DockerHub, use your -/speed-scratch/$USER directory as these images may easily consume gigs of space in your home -directory and you’d run out of quota there very fast. -

    TIP: To check for your quota, and the corresponding commands to find big files, see: -https://www.concordia.ca/ginacody/aits/encs-data-storage.html -

    We likewise built equivalent OpenISS (Section 2.15.4) containers from their Docker -counter parts as they were used for teaching and research [14]. The images from +

    Singularity is a container platform designed to execute applications in a portable, reproducible, and +secure manner. Unlike Docker, Singularity does not require root privileges, making it more suitable for +HPC environments. If the /encs software tree does not have the required software available, another +option is to run Singularity containers. We run EL7 and EL9 flavors of Linux, and if some projects +require Ubuntu or other distributions, it is possible to run that software as a container, +including those converted from Docker. The currently recommended version of Singularity is +singularity/3.10.4/default.
    +

    The example lambdal-singularity.sh showcases an immediate use of a container built for the +Ubuntu-based LambdaLabs software stack, originally built as a Docker image then pulled in as a +Singularity container. The source material used for the docker image was our fork of their official +repository: https://github.com/NAG-DevOps/lambda-stack-dockerfiles.
    +

    Note: If you make your own containers or pull from DockerHub, use your /speed-scratch/$USER +directory, as these images may easily consume gigabytes of space in your home directory, quickly +exhausting your quota.
    +

    Tip: To check your quota and find big files, see Section B.3 and ENCS Data Storage.
    +

    We have also built equivalent OpenISS (Section 2.15.4) containers from their +Docker counterparts for teaching and research purposes [16]. The images from https://github.com/NAG-DevOps/openiss-dockerfiles and their DockerHub equivalents -https://hub.docker.com/u/openiss are found in the same public directory on -/speed-scratch/nag-public as the LambdaLabs Singularity image. They all have .sif extension. -Some of them can be ran in both batch or interactive mode, some make more sense to -run interactively. They cover some basics with CUDA, OpenGL rendering, and computer -vision tasks as examples from the OpenISS library and other libraries, including the base -images that use different distros. We also include Jupyter notebook example with Conda +https://hub.docker.com/u/openiss can be found in /speed-scratch/nag-public with a ‘.sif’ +extension. Some can be run in both batch and interactive modes, covering basics with CUDA, +OpenGL rendering, and computer vision tasks. Examples include Jupyter notebooks with Conda support.

    -
    -/speed-scratch/nag-public:
    -
    -openiss-cuda-conda-jupyter.sif
    -openiss-cuda-devicequery.sif
    -openiss-opengl-base.sif
    -openiss-opengl-cubes.sif
    -openiss-opengl-triangle.sif
    -openiss-reid.sif
    -openiss-xeyes.sif
    -
    -

    -

    The currently recommended version of Singularity is singularity/3.10.4/default. -

    This section comprises an introduction to working with Singularity, its containers, and what can -and cannot be done with Singularity on the ENCS infrastructure. It is not intended to be an -exhaustive presentation of Singularity: the program’s authors do a good job of that here: -https://www.sylabs.io/docs/. It also assumes that you have successfully installed Singularity on a -user-managed/personal system (see next paragraph as to why). -

    Singularity containers are essentially either built from an existing container, or are built from -scratch. Building from scratch requires a recipe file (think of like a Dockerfile), and the operation must -be effected as root. You will not have root on the ENCS infrastructure, so any built-from-scratch -containers must be created on a user-managed/personal system. Root-level permissions are also -required (in some cases, essential; in others, for proper build functionality) for building from an -existing container. Three types of Singularity containers can be built: file-system; sandbox; squashfs. -The first two are “writable” (meaning that changes can persist after the Singularity session ends). -File-system containers are built around the ext3 file system, and are a read-write “file”, sandbox -containers are essentially a directory in an existing read-write space, and squashfs containers are -a read-only compressed “file”. Note that file-system containers cannot be resized once -built. -

    Note that the default build is a squashfs one. Also note what Singularity’s authors have to say -about the builds, “A common workflow is to use the “sandbox” mode for development of -the container, and then build it as a default (squashfs) Singularity image when done.” -File-system containers are considered to be, “legacy”, at this point in time. When built, a -very small overhead is allotted to a file-system container (think, MB), and that cannot be -changed. -

    Probably for the most of your workflows you might find there is a Docker container exists for your -tasks, in this case you can use the docker pull function of Singularity as a part of you virtual -environment setup as an interactive job allocation: - - - -

    -
    -salloc --gpus=1 -n8 --mem=4Gb -t60
    -cd /speed-scratch/$USER/
    -singularity pull openiss-cuda-devicequery.sif docker://openiss/openiss-cuda-devicequery
    -INFO:    Converting OCI blobs to SIF format
    -INFO:    Starting build...
    -
    -

    -

    This method can be used for converting Docker containers directly on Speed. On GPU nodes make -sure to pass on the --nv flag to Singularity, so its containers could access the GPUs. See the linked -example. -

    +

    +  /speed-scratch/nag-public:
    +  openiss-cuda-conda-jupyter.sif
    +  openiss-cuda-devicequery.sif
    +  openiss-opengl-base.sif
    +  openiss-opengl-cubes.sif
    +  openiss-opengl-triangle.sif
    +  openiss-reid.sif
    +  openiss-xeyes.sif
    +
    +

    +

    This section introduces working with Singularity, its containers, and what can and cannot be done +with Singularity on the ENCS infrastructure. For comprehensive documentation, refer to the authors’ +guide: https://www.sylabs.io/docs/.
    +

    Singularity containers are either built from an existing container, or from scratch. Building from +scratch requires a recipe file (think of like a Dockerfile) and must be done with root permissions, +which are not available on the ENCS infrastructure. Therefore, built-from-scratch containers +must be created on a user-managed/personal system. There are three types of Singularity +containers: +

    +
      +
    • File-system containers: built around the ext3 file system and are read-write “file”, but + cannot be resized once built. +
    • +
    • Sandbox containers: essentially a directory in an existing read-write space and are also + read-write. +
    • +
    • Squashfs containers: read-only compressed “file” and are read-only. It is the default build + type.
    +

    “A common workflow is to use the “sandbox” mode for container development and then build it as a +default (squashfs) Singularity image when done.” says the Singularity’s authors about builds. +File-system containers are considered legacy and are not commonly used.
    +

    For many workflows, a Docker container might already exist. In this case, you can use +Singularity’s docker pull function as part of your virtual environment setup in an interactive job +allocation: + + + +

    +
    +  salloc --gpus=1 -n8 --mem=4Gb -t60
    +  cd /speed-scratch/$USER/
    +  singularity pull openiss-cuda-devicequery.sif docker://openiss/openiss-cuda-devicequery
    +  INFO:    Converting OCI blobs to SIF format
    +  INFO:    Starting build...
    +
    +

    +

    This method can be used for converting Docker containers directly on Speed. On GPU nodes, make +sure to pass on the --nv flag to Singularity so its containers could access the GPUs. See the linked +example for more details. +

    3 Conclusion

    -

    The cluster is, “first come, first served”, until it fills, and then job position in the queue is -based upon past usage. The scheduler does attempt to fill gaps, though, so sometimes a -single-core job of lower priority will schedule before a multi-core job of higher priority, for -example. -

    +

    The cluster operates on a “first-come, first-served” basis until it reaches full capacity. After that, job +positions in the queue are determined based on past usage. The scheduler does attempt to fill gaps, so +occasionally, a single-core job with lower priority may be scheduled before a multi-core job with higher +priority. +

    3.1 Important Limitations

    +

    While Speed is a powerful tool, it is essential to recognize its limitations to use it effectively: +

      -
    • New users are restricted to a total of 32 cores: write to rt-ex-hpc@encs.concordia.ca - if you need more temporarily (192 is the maximum, or, 6 jobs of 32 cores each). +
    • New users are limited to a total of 32 cores and 4 GPUs. If you need more cores + temporarily, please contact rt-ex-hpc AT encs.concordia.ca.
    • -
    • Batch job sessions are a maximum of one week in length (only 24 hours, though, for - interactive jobs, see Section 2.8). +
    • Batch job sessions can run for a maximum of one week. Interactive jobs are limited to 24 + hours see Section 2.8.
    • -

      Scripts can live in your NFS-provided home, but any substantial data need to be in your - cluster-specific directory (located at /speed-scratch/<ENCSusername>/). -

      NFS is great for acute activity, but is not ideal for chronic activity. Any data that a job will - read more than once should be copied at the start to the scratch disk of a compute node - using $TMPDIR (and, perhaps, $SLURM_SUBMIT_DIR), any intermediary job data should be - produced in $TMPDIR, and once a job is near to finishing, those data should be copied +

      Scripts can live in your NFS-provided home directory, but substantial data should be + stored in your cluster-specific directory (located at /speed-scratch/<ENCSusername>/). - to your NFS-mounted home (or other NFS-mounted space) from $TMPDIR (to, perhaps, - $SLURM_SUBMIT_DIR). In other words, IO-intensive operations should be effected locally - whenever possible, saving network activity for the start and end of jobs. +

      NFS is suitable for short-term activities but not for long-term operations. Data that a + job will read multiple times should be copied at the start to the scratch disk of a + compute node using $TMPDIR (and possibly $SLURM_SUBMIT_DIR). Intermediate job data + should be produced in $TMPDIR, and once a job is near completion, these data should be + copied to your NFS-mounted home directory (or other NFS-mounted space). In other + words, IO-intensive operations should be performed locally whenever possible, + reserving network activity for the start and end of jobs.

    • -
    • Your current resource allocation is based upon past usage, which is an amalgamation of - approximately one week’s worth of past wallclock (i.e., time spent on the node(s)) and - compute activity (on the node(s)). +
    • Your current resource allocation is based on past usage, which considers approximately + one week’s worth of past wall clock time (time spent on the node(s)) and compute activity + (on the node(s)).
    • -
    • Jobs should NEVER be run outside of the province of the scheduler. Repeat offenders - risk loss of cluster access. -
    -

    +

  • Jobs must always be run within the scheduler’s system. Repeat offenders who run jobs + outside the scheduler risk losing cluster access.
  • +

    3.2 Tips/Tricks

      -
    • Files/scripts must have Linux line breaks in them (not Windows ones). Use file command - to verify; and dos2unix command to convert. +
    • Ensure that files and scripts have Linux line breaks. Use the file command to verify and + dos2unix to convert if necessary.
    • -
    • Use rsync, not scp, when copying or moving large amounts of data. +
    • Use rsync (preferred over scp) for copying or moving large amounts of data.
    • -
    • Before moving a large amount of files between NFS-mounted storage and the cluster, tar - up the files you plan to move first. +
    • Before transferring a large number of files between NFS-mounted storage and the cluster, + compress the files into a tar archive.
    • -
    • If you intend to use a different shell (e.g., bash [22]), you will need to change the shell - declaration in your script(s). +
    • If you plan to use a different shell (e.g., bash [27]), change the shell declaration at the + beginning of your script(s).
    • -
    • Try to request resources that closely match what your job will use: requesting - many more cores or much more memory than will be needed makes a job - more difficult to schedule when resources are scarce. - - - +
    • Request resources (cores, memory, GPUs) that closely match the actual needs of your job. + Requesting significantly more than necessary can make your job harder to schedule when + resources are limited. Always check the efficiency of your job with either seff and/or the + --mail-type=ALL, to adjust your job parameters.
    • -
    • E-mail, rt-ex-hpc AT encs.concordia.ca, with any concerns/questions.
    -

    +

  • For any concerns or questions, email rt-ex-hpc AT encs.concordia.ca
  • +

    3.3 Use Cases

    • -

      HPC Committee’s initial batch about 6 students (end of 2019):

      +

      HPC Committee’s initial batch about 6 students (end of 2019):

      • 10000 iterations job in Fluent finished in \(<26\) hours vs. 46 hours in Calcul Quebec
    • -

      NAG’s MAC spoofer analyzer [1817], such as https://github.com/smokhov/atsm/tree/master/examples/flucid +

      NAG’s MAC spoofer analyzer [2019], such as https://github.com/smokhov/atsm/tree/master/examples/flucid

      • compilation of forensic computing reasoning cases about false or true positives of hardware address spoofing in the labs
    • -

      S4 LAB/GIPSY R&D Group’s:

      +

      S4 LAB/GIPSY R&D Group’s:

      • MARFCAT and MARFPCAT (OSS signal processing and machine learning tools for - vulnerable and weak code analysis and network packet capture analysis) [20156] + vulnerable and weak code analysis and network packet capture analysis) [22176]
      • Web service data conversion and analysis
      • -
      • Forensic Lucid encoders (translation of large log data into Forensic Lucid [16] for +
      • Forensic Lucid encoders (translation of large log data into Forensic Lucid [18] for forensic analysis) -
      • -
      • Genomic alignment exercises
      +
    • +
    • Genomic alignment exercises
    + +
  • Best Paper award, Tariq Daradkeh, Gillian Roper, Carlos Alarcon Meza, and Serguei + Mokhov. HPC jobs classification and resource prediction to minimize job failures. In + International Conference on Computer Systems and Technologies 2024 (CompSysTech ’24), New + York, NY, USA, June 2024. ACM +
  • +
  • Newton F. Ouedraogo and Ebenezer E. Essel. Unsteady wake interference of unequal-height + tandem cylinders mounted in a turbulent boundary layer. Journal of Fluid Mechanics, 977:A52, + 2023. https://doi.org/10.1017/jfm.2023.952 +
  • +
  • Newton F. Ouedraogo and Ebenezer E. Essel. Effects of Reynolds number on the wake + characteristics of a Notchback Ahmed body. Journal of Fluids Engineering, 146(11):111302, 05 + 2024 +
  • +
  • L. Drummond, H. Banh, N. Ouedraogo, H. Ho, and E. Essel. Effects of nozzle convergence + angle on the flow characteristics of a synthetic circular jet in a crossflow. In Bulletin of the + American Physical Society, editor, 76th Annual Meeting of the Division of Fluid Dynamics, + November 2023 +
  • +
  • N. Ouedraogo, A. Cyrus, and E. Essel. Effects of Reynolds number on the wake characteristics + of a Notchback Ahmed body. In Bulletin of the American Physical Society, editor, 76th Annual + Meeting of the Division of Fluid Dynamics, November 2023
  • Serguei Mokhov, Jonathan Llewellyn, Carlos Alarcon Meza, Tariq Daradkeh, and Gillian Roper. The use of containers in OpenGL, ML and HPC for teaching and research support. In @@ -2100,13 +2529,14 @@

    3.3 efficient object tracking. In IEEE/CVF Winter Conference on Applications of Computer Vision (WACV), Waikoloa, Hawaii, January 2024. https://arxiv.org/abs/2309.03979 and https://github.com/goutamyg/SMAT + + +

  • Goutam Yelluru Gopal and Maria Amer. Mobile vision transformer-based visual object tracking. In 34th British Machine Vision Conference (BMVC), Aberdeen, UK, November 2023. https://arxiv.org/abs/2309.05829 and https://github.com/goutamyg/MVT
  • -
  • -
  • Farshad Rezaei and Marius Paraschivoiu. Computational challenges of simulating vertical axis wind turbine on the roof-top corner of a building. Progress in Canadian Mechanical Engineering, 6, 1–6 2023. http://hdl.handle.net/11143/20861 @@ -2122,9 +2552,6 @@

    3.3
  • Belkacem Belabes and Marius Paraschivoiu. CFD study of the aerodynamic performance of a vertical axis wind turbine in the wake of another turbine. In Proceedings of the CSME International Congress, 2022. https://doi.org/10.7939/r3-rker-1746 - - -
  • Belkacem Belabes and Marius Paraschivoiu. Numerical study of the effect of turbulence intensity on VAWT performance. Energy, 233:121139, 2021. https://doi.org/10.1016/j.energy.2021.121139 @@ -2134,131 +2561,137 @@

    3.3 https://doi.org/10.1177/0278364920913945

  • -

    The work “Haotao Lai. An OpenISS framework specialization for deep learning-based +

    The work “Haotao Lai. An OpenISS framework specialization for deep learning-based person re-identification. Master’s thesis, Department of Computer Science and Software Engineering, Concordia University, Montreal, Canada, August 2019. https://spectrum.library.concordia.ca/id/eprint/985788/” using TensorFlow and Keras on OpenISS adjusted to run on Speed based on the repositories:

    + + + -

    and theirs forks by the team. -

    -
  • -

    +

    and theirs forks by the team.

  • +

    A History

    -

    +

    A.1 Acknowledgments

      -
    • The first 6 (to 6.5) versions of this manual and early UGE job script samples, Singularity +
    • The first 6 to 6.5 versions of this manual and early UGE job script samples, Singularity testing and user support were produced/done by Dr. Scott Bunnell during his time at Concordia as a part of the NAG/HPC group. We thank him for his contributions. - - -
    • The HTML version with devcontainer support was contributed by Anh H Nguyen.
    • -
    • Dr. Tariq Daradkeh, was our IT Instructional Specialist August 2022 to September +
    • Dr. Tariq Daradkeh, was our IT Instructional Specialist from August 2022 to September 2023; working on the scheduler, scheduling research, end user support, and integration - of examples, such as YOLOv3 in Section 2.15.4.0 other tasks. We have a continued - collaboration on HPC/scheduling research.
    -

    + of examples, such as YOLOv3 in Section 2.15.4.2 and other tasks. We have a continued + collaboration on HPC/scheduling research (see [8]). +

    A.2 Migration from UGE to SLURM

    -

    For long term users who started off with Grid Engine here are some resources to make a transition +

    For long term users who started off with Grid Engine here are some resources to make a transition and mapping to the job submission process.

    + + + -

    +

    A.3 Phases

    -

    Brief summary of Speed evolution phases. -

    +

    Brief summary of Speed evolution phases. +

    -
    A.3.1 Phase 4
    -

    Phase 4 had 7 SuperMicro servers with 4x A100 80GB GPUs each added, dubbed as “SPEED2”. We +

    A.3.1 Phase 5
    +

    Phase 5 saw incorporation of the Salus, Magic, and Nebular subclusters (see Figure 2). +

    +

    +
    A.3.2 Phase 4
    +

    Phase 4 had 7 SuperMicro servers with 4x A100 80GB GPUs each added, dubbed as “SPEED2”. We also moved from Grid Engine to SLURM. -

    +

    -
    A.3.2 Phase 3
    -

    Phase 3 had 4 vidpro nodes added from Dr. Amer totalling 6x P6 and 6x V100 GPUs +

    A.3.3 Phase 3
    +

    Phase 3 had 4 vidpro nodes added from Dr. Amer totalling 6x P6 and 6x V100 GPUs added. -

    -

    -
    A.3.3 Phase 2
    -

    Phase 2 saw 6x NVIDIA Tesla P6 added and 8x more compute nodes. The P6s replaced 4x of FirePro -S7150. -

    +

    +

    +
    A.3.4 Phase 2
    +

    Phase 2 saw 6x NVIDIA Tesla P6 added and 8x more compute nodes. The P6s replaced 4x of FirePro +S7150. +

    -
    A.3.4 Phase 1
    -

    Phase 1 of Speed was of the following configuration: +

    A.3.5 Phase 1
    +

    Phase 1 of Speed was of the following configuration:

    • Sixteen, 32-core nodes, each with 512 GB of memory and approximately 1 TB of @@ -2266,228 +2699,247 @@
      A.3.4
    • Five AMD FirePro S7150 GPUs, with 8 GB of memory (compatible with the Direct X, OpenGL, OpenCL, and Vulkan APIs).
    -

    -

    -

    B Frequently Asked Questions

    -

    +

    -

    B.1 Where do I learn about Linux?

    -

    All Speed users are expected to have a basic understanding of Linux and its commonly used -commands. -

    +

    B Frequently Asked Questions

    +

    -
    Software Carpentry
    -

    Software Carpentry provides free resources to learn software, including a workshop on the Unix shell. -https://software-carpentry.org/lessons/ -

    +

    B.1 Where do I learn about Linux?

    +

    All Speed users are expected to have a basic understanding of Linux and its commonly used +commands. Here are some recommended resources:

    -
    Udemy
    -

    There are a number of Udemy courses, including free ones, that will assist you in learning Linux. -Active Concordia faculty, staff and students have access to Udemy courses. The course Linux -Mastery: Master the Linux Command Line in 11.5 Hours is a good starting point for -beginners. Visit https://www.concordia.ca/it/services/udemy.html to learn how Concordians -may access Udemy. +

    Software Carpentry + Software Carpentry provides free resources to learn software, including a workshop on the Unix +shell. Visit Software Carpentry Lessons to learn more. -

    -

    B.2 How to use the “bash shell” on Speed?

    -

    This section describes how to use the “bash shell” on Speed. Review Section 2.1.2 to ensure that your -bash environment is set up. -

    +

    Udemy + There are numerous Udemy courses, including free ones, that will help you learn Linux. +Active Concordia faculty, staff and students have access to Udemy courses. A recommended +starting point for beginners is the course “Linux Mastery: Master the Linux Command +Line in 11.5 Hours”. Visit Concordia’s Udemy page to learn how Concordians can access +Udemy. +

    -
    B.2.1 How do I set bash as my login shell?
    -

    In order to set your default login shell to bash on Speed, your login shell on all GCS servers must be -changed to bash. To make this change, create a ticket with the Service Desk (or email help at -concordia.ca) to request that bash become your default login shell for your ENCS user account on -all GCS servers. -

    +

    B.2 How to use bash shell on Speed?

    +

    This section provides comprehensive instructions on how to utilize the bash shell on the Speed +cluster. +

    -
    B.2.2 How do I move into a bash shell on Speed?
    -

    To move to the bash shell, type bash at the command prompt. For example: +

    B.2.1 How do I set bash as my login shell?
    +

    To set your default login shell to bash on Speed, your login shell on all GCS servers must be changed +to bash. To make this change, create a ticket with the Service Desk (or email help at concordia.ca) +to request that bash become your default login shell for your ENCS user account on all GCS +servers. +

    +

    +
    B.2.2 How do I move into a bash shell on Speed?
    +

    To move to the bash shell, type bash at the command prompt:

    -
    +   
     [speed-submit] [/home/a/a_user] > bash
     bash-4.4$ echo $0
     bash
     
    -

    -

    Note how the command prompt changed from [speed-submit] [/home/a/a_user] > to -bash-4.4$ after entering the bash shell. -

    +

    +

    Note how the command prompt changes from “[speed-submit] [/home/a/a_user] >” to +“bash-4.4$” after entering the bash shell. +

    -
    B.2.3 How do I use the bash shell in an interactive session on Speed?
    -

    Below are examples of how to use bash as a shell in your interactive job sessions with both the salloc -and srun commands. +

    B.2.3 How do I use the bash shell in an interactive session on Speed?
    +

    Below are examples of how to use bash as a shell in your interactive job sessions with both the salloc +and srun commands.

    • salloc -ppt --mem=100G -N 1 -n 10 /encs/bin/bash
    • srun --mem=50G -n 5 --pty /encs/bin/bash
    -

    Note: Make sure the interactive job requests memory, cores, etc. +

    Note: Make sure the interactive job requests memory, cores, etc. +

    -
    B.2.4 How do I run scripts written in bash on Speed?
    -

    To execute bash scripts on Speed: +

    B.2.4 How do I run scripts written in bash on Speed?
    +

    To execute bash scripts on Speed:

      -
    1. Ensure that the shebang of your bash job script is #!/encs/bin/bash +
    2. Ensure that the shebang of your bash job script is #!/encs/bin/bash
    3. -
    4. Use the sbatch command to submit your job script to the scheduler.
    -

    The Speed GitHub contains a sample bash job script. +

  • Use the sbatch command to submit your job script to the scheduler.
  • +

    Check Speed GitHub for a sample bash job script. -

    +

    -

    B.3 How to resolve “Disk quota exceeded” errors?

    -

    +

    B.3 How to resolve “Disk quota exceeded” errors?

    +

    -
    B.3.1 Probable Cause
    -

    The “Disk quota exceeded” Error occurs when your application has run out of disk space to write -to. On Speed this error can be returned when: -

    +

    B.3.1 Probable Cause
    +

    The “Disk quota exceeded” error occurs when your application has run out of disk space to write +to. On Speed, this error can be returned when:

      -
    1. Your NFS-provided home is full and cannot be written to. You can verify this using quota - and bigfiles commands. +
    2. The NFS-provided home is full and cannot be written to. You can verify this using the + quota and bigfiles commands.
    3. -
    4. The /tmp directory on the speed node your application is running on is full and cannot - be written to.
    -

    +

  • The “/tmp” directory on the speed node where your application is running is full and + cannot be written to.
  • +

    -
    B.3.2 Possible Solutions
    -

    +

    B.3.2 Possible Solutions
    +

      -
    1. Use the --chdir job script option to set the directory that the job script is submitted - from the job working directory. The job working directory is the directory that - the job will write output files in. -
    2. -
    3. -

      The use local disk space is generally recommended for IO intensive operations. However, as the - size of /tmp on speed nodes is 1TB it can be necessary for scripts to store temporary data - elsewhere. Review the documentation for each module called within your script to determine - how to set working directories for that application. The basic steps for this solution are: -

      - - - +
    4. Use the --chdir job script option to set the job working directory. This is the directory + where the job will write output files. +
    5. +
    6. +

      Although local disk space is recommended for IO-intensive operations, the ‘/tmp’ directory on + Speed nodes is limited to 1TB, so it may be necessary to store temporary data elsewhere. + Review the documentation for each module used in your script to determine how to set working + directories. The basic steps are:

        -
      • Review the documentation on how to set working directories for each module called - by the job script. +
      • Determine how to set working directories for each module used in your job script.
      • -

        Create a working directory in speed-scratch for output files. For example, this - command will create a subdirectory called output in your speed-scratch - directory: +

        Create a working directory in speed-scratch for output files:

        -
        +         
                  mkdir -m 750 /speed-scratch/$USER/output
        -          
         
        -

        +

      • -

        To create a subdirectory for recovery files: +

        Create a subdirectory for recovery files:

        -
        +         
                  mkdir -m 750 /speed-scratch/$USER/recovery
         
        -

        +

      • -
      • Update the job script to write output to the subdirectories you created in your - speed-scratch directory, e.g., /speed-scratch/$USER/output.
      +
    7. Update the job script to write output to the directories created in your speed-scratch + directory, e.g., /speed-scratch/$USER/output.
    -

    In the above example, $USER is an environment variable containing your ENCS username. +

    In the above example, $USER is an environment variable containing your ENCS username.

    -
    B.3.3 Example of setting working directories for COMSOL
    +
    B.3.3 Example of setting working directories for COMSOL
    • -

      Create directories for recovery, temporary, and configuration files. For example, to create these - directories for your GCS ENCS user account: +

      Create directories for recovery, temporary, and configuration files.

      -
      +     
            mkdir -m 750 -p /speed-scratch/$USER/comsol/{recovery,tmp,config}
       
      -

      +

    • -

      Add the following command switches to the COMSOL command to use the directories created +

      Add the following command switches to the COMSOL command to use the directories created above:

      -
      +     
            -recoverydir /speed-scratch/$USER/comsol/recovery
            -tmpdir /speed-scratch/$USER/comsol/tmp
            -configuration/speed-scratch/$USER/comsol/config
       
      -

    -

    In the above example, $USER is an environment variable containing your ENCS username. -

    -

    -
    B.3.4 Example of setting working directories for Python Modules
    -

    By default when adding a python module the /tmp directory is set as the temporary repository for -files downloads. The size of the /tmp directory on speed-submit is too small for pytorch. To add a -python module

    +

    +

    In the above example, $USER is an environment variable containing your ENCS username. +

    +

    +
    B.3.4 Example of setting working directories for Python Modules
    +

    By default when adding a Python module, the /tmp directory is set as the temporary repository for +files downloads. The size of the /tmp directory on speed-submit is too small for PyTorch. To add a +Python module

    • -

      Create your own tmp directory in your speed-scratch directory +

      Create your own tmp directory in your speed-scratch directory:

      -
      -       mkdir /speed-scratch/$USER/tmp
      +     
      +        mkdir /speed-scratch/$USER/tmp
      +
      +

      +

    • +
    • +

      Use the temporary directory you created + + + +

      +
      +        setenv TMPDIR /speed-scratch/$USER/tmp
       

    • +
    • Attempt the installation of PyTorch
    +

    In the above example, $USER is an environment variable containing your ENCS username. +

    +

    +

    B.4 How do I check my job’s status?

    +

    When a job with a job ID of 1234 is running or terminated, you can track its status using the +following commands:

    +
    • -

      Use the tmp directory you created +

      Use the “sacct” command to view the status of a job:

      -
      -       setenv TMPDIR /speed-scratch/$USER/tmp
      +     
      +     sacct -j 1234
      +
      +

      +

    • +
    • +

      Use the “squeue” command to see if the job is sitting in the queue: + + + +

      +
      +     squeue -j 1234
       
      -

      +

    • -
    • Attempt the installation of pytorch
    -

    In the above example, $USER is an environment variable containing your ENCS username. -

    +

  • +

    Use the “sstat” command to find long-term statistics on the job after it has terminated and the + slurmctld has purged it from its tracking state into the database: + + +

    -

    B.4 How do I check my job’s status?

    -

    When a job with a job id of 1234 is running or terminated, the status of that job can be tracked using -‘sacct -j 1234’. squeue -j 1234 can show while the job is sitting in the queue as well. Long term -statistics on the job after its terminated can be found using sstat -j 1234 after slurmctld purges it -its tracking state into the database. -

    +

    +     sstat -j 1234
    +
    +

  • +

    -

    B.5 Why is my job pending when nodes are empty?

    -

    +

    B.5 Why is my job pending when nodes are empty?

    +

    -
    B.5.1 Disabled nodes
    -

    It is possible that one or a number of the Speed nodes are disabled. Nodes are disabled if they require -maintenance. To verify if Speed nodes are disabled, see if they are in a draining or drained -state: +

    B.5.1 Disabled nodes
    +

    It is possible that one or more of the Speed nodes are disabled for maintenance. To verify if Speed +nodes are disabled, check if they are in a draining or drained state:

    -
    +   
     [serguei@speed-submit src] % sinfo --long --Node
     Thu Oct 19 21:25:12 2023
     NODELIST   NODES PARTITION       STATE CPUS    S:C:T MEMORY TMP_DISK WEIGHT AVAIL_FE REASON
    @@ -2529,62 +2981,75 @@ 
    B.5.1 speed-42       1        pt        idle 256    2:64:2 980275        0      1 gpu20,mi none speed-43       1        pt        idle 256    2:64:2 980275        0      1 gpu20,mi none
    -

    -

    Note which nodes are in the state of drained. Why the state is drained can be found in the reason -column. -

    Your job will run once an occupied node becomes availble or the maintenance has been completed -and the disabled nodes have a state of idle. -

    -

    -
    B.5.2 Error in job submit request.
    -

    It is possible that your job is pending, because the job requested resources that are not available -within Speed. To verify why job id 1234 is not running, execute ‘sacct -j 1234’. A summary of the -reasons is available via the squeue command. -

    +

    +

    Note which nodes are in the state of drained. The reason for the drained state can be found in the +reason column.
    +

    Your job will run once an occupied node becomes availble or the maintenance is completed, and the +disabled nodes have a state of idle. + + + +

    +
    B.5.2 Error in job submit request.
    +

    It is possible that your job is pending because it requested resources that are not available within +Speed. To verify why job ID 1234 is not running, execute: -

    C Sister Facilities

    -

    Below is a list of resources and facilities similar to Speed at various capacities. Depending on your +

    +
    +sacct -j 1234
    +
    +

    +

    A summary of the reasons can be obtained via the squeue command. +

    +

    +

    C Sister Facilities

    +

    Below is a list of resources and facilities similar to Speed at various capacities. Depending on your research group and needs, they might be available to you. They are not managed by HPC/NAG of AITS, so contact their respective representatives.

      -
    • computation.encs CPU only 3-machine cluster running longer jobs without a scheduler - at the moment +
    • computation.encs + is a CPU-only 3-machine cluster running longer jobs without a scheduler at the moment. + Shares the same EL7 software tree as Speed’s EL7 nodes as well as lab desktops. See + https://www.concordia.ca/ginacody/aits/public-servers.html.
    • apini.encs cluster for teaching and MPI programming (see the corresponding course in - CSSE) + CSSE), managed by CSSE
    • Computer Science and Software Engineering (CSSE) Virya GPU Cluster. For CSSE members only. The cluster has 4 nodes with total of 32 NVIDIA GPUs (a mix of V100s - and A100s). To request access send email to virya.help AT concordia.ca. + and A100s). To request access send email to virya.help AT concordia.ca. This includes + an Atlas Analytics partition of Dr. Mahdi Husseini. +
    • +
    • Dr. Eugene Belilovsky hightower Exxact, and megatower graphcore clusters.
    • -
    • Dr. Maria Amer’s VidPro group’s nodes in Speed (-01, -03, -25, -27) with additional V100 +
    • Dr. Maria Amer’s VidPro group’s nodes in Speed (-01, -03, -25, -27) with additional V100 and P6 GPUs. + + +
    • -

      There are various Lambda Labs other GPU servers and like computers acquired by individual +

      There are various Lambda Labs other GPU servers and like computers acquired by individual researchers; if you are member of their research group, contact them directly. These resources are not managed by us.

        -
      • Dr. Amin Hammad’s construction.encs Lambda Labs station +
      • Dr. Amin Hammad’s construction.encs Lambda Labs station
      • -
      • Dr. Hassan Rivaz’s impactlab.encs Lambda Labs station +
      • Dr. Hassan Rivaz’s impactlab.encs Lambda Labs station
      • -
      • Dr. Nizar Bouguila’s xailab.encs Lambda Labs station +
      • Dr. Nizar Bouguila’s xailab.encs Lambda Labs station
      • -
      • Dr. Roch Glitho’s femto.encs server - - - +
      • Dr. Roch Glitho’s femto.encs server
      • -
      • Dr. Maria Amer’s venom.encs Lambda Labs station +
      • Dr. Maria Amer’s venom.encs Lambda Labs station
      • -
      • Dr. Leon Wang’s guerrera.encs DGX station
      +
    • Dr. Leon Wang’s guerrera.encs DGX station
    -
  • Dr. Ivan Contreras’ servers (managed by AITS) +
  • Dr. Ivan Contreras’ 4 Operations Research group servers (managed by AITS).
  • If you are a member of School of Health (formerly PERFORM Center), you may have access to their local PERFORM’s High Performance Computing (HPC) Cluster. Contact Thomas @@ -2596,146 +3061,2703 @@

    C Digital Research Alliance Canada (Compute Canada / Calcul Quebec),
    https://alliancecan.ca/. Follow this link on the information how to obtain access (students need to be sponsored by their supervising faculty members, who should create accounts first). Their SLURM examples are here: https://docs.alliancecan.ca/wiki/Running_jobs + + +

  • +

    +

    +

    D Software Installed On Speed

    +

    This is a generated section by a script; last updated on Tue Jul 23 10:48:52 PM EDT 2024. We have +two major software trees: Scientific Linux 7 (EL7), which is outgoing, and AlmaLinux 9 (EL9). After +major synchronization of software packages is complete, we will stop maintaining the EL7 tree and +will migrate the remaining nodes to EL9. +

    Use --constraint=el7 to select EL7-only installed nodes for their software packages. Conversely, +use --constraint=el9 for the EL9-only software. These options would be used as a part of your job +parameters in either #SBATCH or on the command line. +

    NOTE: this list does not include packages installed directly on the OS (yet). +

    +

    +

    D.1 EL7

    +

    Not all packages are intended for HPC, but the common tree is available on Speed as well as teaching +labs’ desktops. +

    +
    +
      +
    • a2ps-4.13b +
    • +
    • a2ps-4.14 +
    • +
    • abaqus-2019 +
    • +
    • abaqus-2020 +
    • +
    • abaqus-2021 +
    • +
    • abaqus-2023 +
    • +
    • acl-10.0.express -

      -

      References

      -

      -

      -

      - [1]   3DS. Abaqus. [online], 2019–2021. - https://www.3ds.com/products-services/simulia/products/abaqus/. -

      -

      - [2]   ANSYS. FLUENT. [online], 2000–2012. - http://www.ansys.com/Products/Simulation+Technology/Fluid+Dynamics/ANSYS+FLUENT. -

      -

      - [3]   Belkacem Belabes and Marius Paraschivoiu. - Numerical study of the effect of turbulence intensity on VAWT performance. Energy, 233:121139, - 2021. https://doi.org/10.1016/j.energy.2021.121139. -

      -

      - [4]   Belkacem Belabes and Marius Paraschivoiu. CFD study of the aerodynamic performance of a - vertical axis wind turbine in the wake of another turbine. In Proceedings of the CSME International - Congress, 2022. https://doi.org/10.7939/r3-rker-1746. -

      -

      - [5]   Belkacem Belabes and Marius Paraschivoiu. CFD modeling of vertical-axis wind turbine wake - interaction. Transactions of the Canadian Society for Mechanical Engineering, pages 1–10, 2023. - https://doi.org/10.1139/tcsme-2022-0149. -

      -

      - [6]   Amine Boukhtouta, Nour-Eddine Lakhdari, Serguei A. Mokhov, and Mourad Debbabi. - Towards fingerprinting malicious traffic. In Proceedings of ANT’13, volume 19, pages 548–555. - Elsevier, June 2013. -

      -

      - [7]   Amy Brown and Greg Wilson, editors. The Architecture of Open Source Applications: - Elegance, Evolution, and a Few Fearless Hacks, volume I. aosabook.org, March 2012. Online at - http://aosabook.org. -

      -

      - [8]   Goutam Yelluru Gopal and Maria Amer. Mobile vision transformer-based visual object - tracking. In 34th British Machine Vision Conference (BMVC), Aberdeen, UK, November 2023. - https://arxiv.org/abs/2309.05829 and https://github.com/goutamyg/MVT. -

      -

      - [9]   Goutam Yelluru Gopal and Maria Amer. Separable self and mixed attention transformers - for efficient object tracking. In IEEE/CVF Winter Conference on Applications of Computer - Vision (WACV), Waikoloa, Hawaii, January 2024. https://arxiv.org/abs/2309.03979 and - https://github.com/goutamyg/SMAT. +

    • +
    • acl-10.1.express +
    • +
    • acroread-9.5.5 +
    • +
    • ADS-2016.01 +
    • +
    • ADS-2017.01 +
    • +
    • ADS-2019 +
    • +
    • ADS-2020u1 +
    • +
    • adt_bundle-20140702 +
    • +
    • alpine-2.00 +
    • +
    • alpine-2.25 +
    • +
    • anaconda-1.7.0 +
    • +
    • anaconda2-2019.07 +
    • +
    • anaconda2-5.1.0 +
    • +
    • anaconda3-2019.07 +
    • +
    • anaconda3-2019.10 +
    • +
    • anaconda3-2021.05 +
    • +
    • anaconda3-2023.03 -

      -

      - [10]   Haotao Lai. An OpenISS framework - specialization for deep learning-based person re-identification. Master’s thesis, Department of - Computer Science and Software Engineering, Concordia University, Montreal, Canada, August - 2019. https://spectrum.library.concordia.ca/id/eprint/985788/. -

      -

      - [11]   Haotao Lai et al. OpenISS keras-yolo3 v0.1.0, June 2021. - https://github.com/OpenISS/openiss-yolov3. -

      -

      - [12]   Haotao Lai et al. Openiss person re-identification baseline v0.1.1, June 2021. - https://github.com/OpenISS/openiss-reid-tfk. -

      -

      - [13]   MathWorks. MATLAB. [online], 2000–2012. http://www.mathworks.com/products/matlab/. -

      -

      - [14]   Serguei Mokhov, Jonathan Llewellyn, Carlos Alarcon Meza, Tariq Daradkeh, and Gillian - Roper. The use of containers in OpenGL, ML and HPC for teaching and research support. - In ACM SIGGRAPH 2023 Posters, SIGGRAPH ’23, New York, NY, USA, 2023. ACM. - https://doi.org/10.1145/3588028.3603676. -

      -

      - [15]   Serguei A. Mokhov. The use of machine learning with signal- and NLP processing - of source code to fingerprint, detect, and classify vulnerabilities and weaknesses with - MARFCAT. Technical Report NIST SP 500-283, NIST, October 2011. Report: - http://www.nist.gov/manuscript-publication-search.cfm?pub_id=909407, online e-print at +

    • +
    • anaconda3-5.1.0 +
    • +
    • android_sdk-24.4.1 +
    • +
    • android_studio-162.4069837 +
    • +
    • android_studio-173.4720617 +
    • +
    • ansoft_designer-6.1.2 +
    • +
    • ansoft_designer-8.0 +
    • +
    • ansys-16.2 +
    • +
    • ansys-17.2 +
    • +
    • ansys-18.2 +
    • +
    • ansys-19.2 +
    • +
    • ansys-2019R3 +
    • +
    • ansys-2020R2 +
    • +
    • ansys-2021R1 +
    • +
    • ansys-2021R2 +
    • +
    • ansys-2022R1 +
    • +
    • ansys-2022R2 + + + +
    • +
    • ansys-2023R1 +
    • +
    • ansys-2023R2 +
    • +
    • AnsysEM-16.2 +
    • +
    • ant-1.10.11 +
    • +
    • ant-1.10.2 +
    • +
    • ant-1.6.2 +
    • +
    • ant-1.9.7 +
    • +
    • ANTs-2.3.5 +
    • +
    • ApacheDirectoryStudio-1.5.3 +
    • +
    • arduino-1.6.8 +
    • +
    • ArgoUML-0.34 +
    • +
    • arpack-3.0.2 +
    • +
    • ARWpost-3.1 +
    • +
    • aspectj-1.7.0.M1 +
    • +
    • aspectj-1.8.2 +
    • +
    • aspectj-1.8.6 + + + +
    • +
    • aspell-0.60.6 +
    • +
    • aspell-0.60.8 +
    • +
    • atanua-1.2.130617 +
    • +
    • autoconf-2.68 +
    • +
    • autoconf-2.71 +
    • +
    • AutoDock-4.2.6 +
    • +
    • autogen-5.18.4 +
    • +
    • automake-1.13.1 +
    • +
    • automake-1.16.1 +
    • +
    • autoson-1.4.3 +
    • +
    • babl-0.1.12 +
    • +
    • bash-4.4 +
    • +
    • basilisk-19_3_23 +
    • +
    • bazel-0.2.0 +
    • +
    • bazel-0.21.0 +
    • +
    • bazel-0.24.1 + + + +
    • +
    • bazel-0.26.1 +
    • +
    • bazel-2.0.0 +
    • +
    • bazel-3.7.2 +
    • +
    • bazel-4.2.1 +
    • +
    • bison-2.7.1 +
    • +
    • bison-3.7.2 +
    • +
    • blas-3.10.0 +
    • +
    • blender-2.66a +
    • +
    • blender-2.78 +
    • +
    • blender-2.78c +
    • +
    • bogofilter-1.2.4 +
    • +
    • booksim-2.0 +
    • +
    • boost-1.51.0 +
    • +
    • boost-1.62.0 +
    • +
    • boost-1.68.0 +
    • +
    • boost-1.69.0 + + + +
    • +
    • boost-1.70.0 +
    • +
    • boost-1.73.0 +
    • +
    • bouncer-2.2 +
    • +
    • buddy-2.4 +
    • +
    • bzr-2.6.0 +
    • +
    • camlp5-6.02.3 +
    • +
    • camlp5-6.14 +
    • +
    • CGAL-4.3 +
    • +
    • cgiwrap-4.1 +
    • +
    • Check-0.15.2 +
    • +
    • chrome-101.0.4951.54 +
    • +
    • chromium-31.0.1650.63 +
    • +
    • cilkplus-4.8 +
    • +
    • clips-6.23 +
    • +
    • clips-6.30 +
    • +
    • clojure-1.8.0 + + + +
    • +
    • cmake-2.8.12 +
    • +
    • cmake-3.18.4 +
    • +
    • cmake-3.26.4 +
    • +
    • cmake-3.8.2 +
    • +
    • CMC_utils-1.0 +
    • +
    • codeblocks-13.12 +
    • +
    • codelite-9.1 +
    • +
    • comsol-3.5a +
    • +
    • comsol-4.0 +
    • +
    • comsol-4.1 +
    • +
    • comsol-5.6 +
    • +
    • comsol-6.0 +
    • +
    • comsol-6.1 +
    • +
    • concorde-20031219 +
    • +
    • coware-2010.1 +
    • +
    • cplex-12.10.0 + + + +
    • +
    • cplex-12.6.1 +
    • +
    • cplex-12.6.2 +
    • +
    • cplex-12.6.3 +
    • +
    • cplex-12.7.0 +
    • +
    • cplex-12.7.1 +
    • +
    • cplex-12.8.0 +
    • +
    • cplex-12.9.0 +
    • +
    • cplex-20.1.0 +
    • +
    • cplex-22.1.0 +
    • +
    • cplex-22.1.1 +
    • +
    • cppunit-1.13.2 +
    • +
    • CST-2014 +
    • +
    • CST-2019 +
    • +
    • CST-2020 +
    • +
    • cuda-10.0 +
    • +
    • cuda-10.2 + + + +
    • +
    • cuda-11.5 +
    • +
    • cuda-11.8 +
    • +
    • cuda-9.2 +
    • +
    • cups-1.3.7 +
    • +
    • cups-2.3.3 +
    • +
    • curl-7.15.0 +
    • +
    • curl-7.38.0 +
    • +
    • curl-7.73.0 +
    • +
    • curl-7.84.0 +
    • +
    • curl-7.86.0 +
    • +
    • curl-7.87.0 +
    • +
    • curl-8.1.2 +
    • +
    • cvs-1.11.23 +
    • +
    • cvx-2.1 +
    • +
    • DbVisualizer-24.1.5 +
    • +
    • DbVisualizer-9.1.9 + + + +
    • +
    • ddd-3.3.12 +
    • +
    • dejagnu-1.5.3 +
    • +
    • dejagnu-1.6.2 +
    • +
    • digilent-2.19.2 +
    • +
    • digilent-2.8.2 +
    • +
    • dmtcp-1.2.8 +
    • +
    • dos2unix-7.3 +
    • +
    • doxygen-1.8.4 +
    • +
    • drush-6.5.0 +
    • +
    • ece-eclipse-jee.juno +
    • +
    • ece-eclipse-jee.luna +
    • +
    • ecj-25 +
    • +
    • ECLiPSe-6.0_192 +
    • +
    • eclipse-jee.201812 +
    • +
    • eclipse-jee.202003 +
    • +
    • eclipse-jee.202109 + + + +
    • +
    • eclipse-jee.202209 +
    • +
    • eclipse-jee.indigo +
    • +
    • eclipse-jee.juno +
    • +
    • eclipse-jee.luna +
    • +
    • eclipse-jee.mars +
    • +
    • eclipse-jee.neon +
    • +
    • eclipse-jee.oxygen +
    • +
    • eigen-3.3.7 +
    • +
    • electromagnetics_suite-2022R2 +
    • +
    • electromagnetics_suite-2023R1 +
    • +
    • emacs-24.4 +
    • +
    • emacs-25.2 +
    • +
    • enscript-1.6.5.2 +
    • +
    • exmh-2.7.0 +
    • +
    • expat-2.1.0 +
    • +
    • expect-5.45 + + + +
    • +
    • expect-5.45.4 +
    • +
    • fanout-0.6.1 +
    • +
    • feko-2017.2.2 +
    • +
    • feko-2018.2 +
    • +
    • feko-6.1 +
    • +
    • feko-7.0.1 +
    • +
    • ffmpeg-0.10.2 +
    • +
    • ffmpeg-3.3.2 +
    • +
    • ffmpeg-4.1.3 +
    • +
    • fftw-3.2.2 +
    • +
    • fftw-3.3.10 +
    • +
    • fftw-3.3.8 +
    • +
    • firefox-102.11.0 +
    • +
    • firefox-102.12.0 +
    • +
    • firefox-102.13.0 +
    • +
    • firefox-102.14.0 + + + +
    • +
    • firefox-102.15.0 +
    • +
    • firefox-102.15.1 +
    • +
    • firefox-115.10.0 +
    • +
    • firefox-115.2.1 +
    • +
    • firefox-115.3.0 +
    • +
    • firefox-17.0.11 +
    • +
    • firefox-2.0.0.20 +
    • +
    • firefox-24.8.1 +
    • +
    • firefox-31.7.0 +
    • +
    • firefox-38.8.0 +
    • +
    • firefox-45.9.0 +
    • +
    • firefox-52.9.0 +
    • +
    • firefox-60.9.0 +
    • +
    • firefox-68.12.0 +
    • +
    • firefox-78.15.0 +
    • +
    • firefox-91.11.0 + + + +
    • +
    • firefox_french-102.11.0 +
    • +
    • firefox_french-102.12.0 +
    • +
    • firefox_french-102.13.0 +
    • +
    • firefox_french-102.14.0 +
    • +
    • firefox_french-102.15.0 +
    • +
    • firefox_french-102.15.1 +
    • +
    • firefox_french-115.10.0 +
    • +
    • firefox_french-115.2.1 +
    • +
    • firefox_french-115.3.0 +
    • +
    • firefox_french-24.8.1 +
    • +
    • firefox_french-31.7.0 +
    • +
    • firefox_french-38.8.0 +
    • +
    • firefox_french-45.9.0 +
    • +
    • firefox_french-52.9.0 +
    • +
    • firefox_french-60.9.0 +
    • +
    • firefox_french-68.12.0 + + + +
    • +
    • firefox_french-78.15.0 +
    • +
    • firefox_french-91.11.0 +
    • +
    • flex-2.5.37 +
    • +
    • flex-2.6.4 +
    • +
    • fltk-1.3.2 +
    • +
    • fltk-1.3.8 +
    • +
    • fox-1.6.49 +
    • +
    • FreeImage-3.18.0 +
    • +
    • freerdp-1.0.2 +
    • +
    • freerdp-1.2.0 +
    • +
    • freetype-2.4.12 +
    • +
    • FSL-6.0.5 +
    • +
    • fsl-6.0.6.2 +
    • +
    • fsr-1.9 +
    • +
    • fxscintilla-2.28.0 +
    • +
    • gambit-c-4.7.5 + + + +
    • +
    • gate-7.1 +
    • +
    • gc-7.2f +
    • +
    • gcc-12.2.0 +
    • +
    • gcc-13.1.0 +
    • +
    • gcc-3.3.2 +
    • +
    • gcc-4.1.2 +
    • +
    • gcc-4.4.3 +
    • +
    • gcc-4.7.2 +
    • +
    • gcc-4.9.2 +
    • +
    • gcc-5.1.0 +
    • +
    • gcc-5.2.0 +
    • +
    • gcc-5.4.0 +
    • +
    • gcc-6.1.0 +
    • +
    • gcc-7.3.0 +
    • +
    • gcc-8.4.0 +
    • +
    • gcc-9.2.0 + + + +
    • +
    • gcc-9.3.0 +
    • +
    • gcc-arm-11.2.2022.02 +
    • +
    • gdb-12.1 +
    • +
    • gdb-7.7 +
    • +
    • geomview-1.9.4 +
    • +
    • gerris-131206 +
    • +
    • getmail-4.54.0 +
    • +
    • gettext-0.18.1.1 +
    • +
    • gfsview-121130 +
    • +
    • ghc-7.6.3 +
    • +
    • ghostscript-10.0.0 +
    • +
    • ghostscript-8.50 +
    • +
    • ghostscript-9.25 +
    • +
    • ghostscript-9.26 +
    • +
    • ghostscript-9.50 +
    • +
    • ghostscript-9.52 + + + +
    • +
    • gifsicle-1.92 +
    • +
    • gimp-2.8.14 +
    • +
    • gimp-2.8.18 +
    • +
    • git-1.8.5.3 +
    • +
    • git-2.15.0 +
    • +
    • git-2.22.0 +
    • +
    • git-2.23.0 +
    • +
    • git-2.23.3 +
    • +
    • git-2.29.2 +
    • +
    • git-2.35.1 +
    • +
    • git-2.5.0 +
    • +
    • gl2ps-1.3.8 +
    • +
    • glade3-3.8.3 +
    • +
    • glew-1.10.0 +
    • +
    • glew-2.1.0 +
    • +
    • glfw-3.0.4 + + + +
    • +
    • glfw-3.3 +
    • +
    • glfw-3.3.4 +
    • +
    • glm-0.9.5.4 +
    • +
    • glm-0.9.9.8 +
    • +
    • glpk-4.55 +
    • +
    • gmp-4.3.2 +
    • +
    • gnome_env-20110618 +
    • +
    • gnome_env-20130510 +
    • +
    • gnupg-2.3.4 +
    • +
    • gnuplot-4.6.3 +
    • +
    • gnuplot-5.0.1 +
    • +
    • gnuplot-5.0.3 +
    • +
    • go-1.10.2 +
    • +
    • go-1.12 +
    • +
    • go-1.15.6 +
    • +
    • go-1.19.3 + + + +
    • +
    • go-1.3 +
    • +
    • go-1.9 +
    • +
    • GoldenGate-2020u1 +
    • +
    • gperf-3.0.4 +
    • +
    • grace-5.1.25 +
    • +
    • GraphiteTwo-a5 +
    • +
    • GraphiteTwo-Concordia_v1 +
    • +
    • graphviz-2.30.0 +
    • +
    • graphviz-2.40.1 +
    • +
    • gromacs-5.0.7 +
    • +
    • gsl-2.6 +
    • +
    • gtkwave-3.3.15 +
    • +
    • gts-121130 +
    • +
    • guile-2.0.11 +
    • +
    • gurobi-10.0.0 +
    • +
    • gurobi-10.0.1 + + + +
    • +
    • gurobi-7.0.1 +
    • +
    • gurobi-7.5.0 +
    • +
    • gurobi-8.0.0 +
    • +
    • gurobi-8.1.0 +
    • +
    • gurobi-9.0.0 +
    • +
    • gurobi-9.0.2 +
    • +
    • gurobi-9.1.0 +
    • +
    • gurobi-9.5.0 +
    • +
    • gurobi-9.5.2 +
    • +
    • gv-3.7.4 +
    • +
    • hadoop-1.0.4 +
    • +
    • hadoop-1.1.2 +
    • +
    • hadoop-2.4.1 +
    • +
    • hadoop-2.7.1 +
    • +
    • hadoop-2.7.3 +
    • +
    • hadoop-2.9.0 + + + +
    • +
    • haskell_platform-2013.2.0.0 +
    • +
    • hdf5-1.10.5 +
    • +
    • hdf5-1.8.11 +
    • +
    • hexpert-2.4.1 +
    • +
    • hmmer-3.3.2 +
    • +
    • html2ps-1.0b5 +
    • +
    • httpd-2.2.22 +
    • +
    • httpd-2.2.32 +
    • +
    • httpd-2.4.27 +
    • +
    • httpd-2.4.38 +
    • +
    • httpd-2.4.39 +
    • +
    • httpd-2.4.52 +
    • +
    • httpd-2.4.53 +
    • +
    • httpd-2.4.54 +
    • +
    • httpd-2.4.55 +
    • +
    • httpd-2.4.57 + + + +
    • +
    • httpd-current +
    • +
    • http-parser-2.9.4 +
    • +
    • hunspell-1.7.2 +
    • +
    • hwloc-1.11.2 +
    • +
    • hwloc-2.8.0 +
    • +
    • hxplay-11.0.2 +
    • +
    • hyperworks-12.0 +
    • +
    • iBioSim-3.0.0.beta +
    • +
    • ImageMagick-6.3.6 +
    • +
    • ImageMagick-6.9.4.1 +
    • +
    • ImageMagick-7.0.8.42 +
    • +
    • imap-2007e +
    • +
    • instantclient-19.3.0.0.0 +
    • +
    • IntelliJ-2019.2.3 +
    • +
    • intltool-0.50.2 +
    • +
    • invtools-2.0 + + + +
    • +
    • invtools-2.0.2 +
    • +
    • invtools-2.1.0 +
    • +
    • invtools-2.2.0 +
    • +
    • invtools-2.3.0 +
    • +
    • invtools-2.4.0 +
    • +
    • invtools-2.5.0 +
    • +
    • invtools-2.5.1 +
    • +
    • invtools-2.6.0 +
    • +
    • invtools-2.7.0 +
    • +
    • invtools-2.8.0 +
    • +
    • invtools-3.0.0 +
    • +
    • invtools-3.1.0 +
    • +
    • ipe-7.1.3 +
    • +
    • iq-8.4.1 +
    • +
    • j2sdk_32b-1.5.0_22 +
    • +
    • j2sdk_64b-1.5.0_22 + + + +
    • +
    • jansson-2.14 +
    • +
    • jdk-11 +
    • +
    • jdk-11.0.1 +
    • +
    • jdk-11.0.2 +
    • +
    • jdk-17 +
    • +
    • jdk-17.0.2 +
    • +
    • jdk-19 +
    • +
    • jdk-19.0.2 +
    • +
    • jdk_32b-6u45 +
    • +
    • jdk_32b-7u80 +
    • +
    • jdk_32b-8u101 +
    • +
    • jdk_32b-8u111 +
    • +
    • jdk_32b-8u121 +
    • +
    • jdk_32b-8u131 +
    • +
    • jdk_32b-8u141 +
    • +
    • jdk_32b-8u151 + + + +
    • +
    • jdk_32b-8u161 +
    • +
    • jdk_32b-8u171 +
    • +
    • jdk_32b-8u181 +
    • +
    • jdk_32b-8u191 +
    • +
    • jdk_32b-8u201 +
    • +
    • jdk_32b-8u211 +
    • +
    • jdk_32b-8u231 +
    • +
    • jdk_32b-8u91 +
    • +
    • jdk-5 +
    • +
    • jdk-6 +
    • +
    • jdk-6_32b +
    • +
    • jdk_64b-6u45 +
    • +
    • jdk_64b-7u80 +
    • +
    • jdk_64b-8u101 +
    • +
    • jdk_64b-8u111 +
    • +
    • jdk_64b-8u121 + + + +
    • +
    • jdk_64b-8u131 +
    • +
    • jdk_64b-8u141 +
    • +
    • jdk_64b-8u151 +
    • +
    • jdk_64b-8u161 +
    • +
    • jdk_64b-8u171 +
    • +
    • jdk_64b-8u181 +
    • +
    • jdk_64b-8u191 +
    • +
    • jdk_64b-8u201 +
    • +
    • jdk_64b-8u211 +
    • +
    • jdk_64b-8u231 +
    • +
    • jdk_64b-8u91 +
    • +
    • jdk-7 +
    • +
    • jdk-7_32b +
    • +
    • jdk-8 +
    • +
    • jdk-8_32b +
    • +
    • jes-5.02 + + + +
    • +
    • jmag-20.1.02zi +
    • +
    • json-c-0.16 +
    • +
    • julia-1.7.2 +
    • +
    • kaldi-5.5 +
    • +
    • kerberos-helpers-1.0 +
    • +
    • kicad-4.0.1 +
    • +
    • kile-2.0.1 +
    • +
    • lam-7.1.3 +
    • +
    • lapack-3.10.0 +
    • +
    • lapack-3.4.2 +
    • +
    • lasso-2.6.0 +
    • +
    • lib3ds-1.3.0 +
    • +
    • libarchive-3.1.2 +
    • +
    • libarchive-3.3.2 +
    • +
    • libassuan-2.5.5 +
    • +
    • libatomic_ops-7.4.0 + + + +
    • +
    • libav-12.3 +
    • +
    • libedit-20210910.3.1 +
    • +
    • libevent-2.1.12 +
    • +
    • libffi-3.2.1 +
    • +
    • libgcrypt-1.10.1 +
    • +
    • libgd-2.2.5 +
    • +
    • libglade-2.6.4 +
    • +
    • libgpg-error-1.44 +
    • +
    • libidn2-2.3.2 +
    • +
    • libjwt-1.15.2 +
    • +
    • libksba-1.6.0 +
    • +
    • LibreOffice-7.1.8 +
    • +
    • LibreOffice-7.3.7 +
    • +
    • LibreOffice-7.4.7 +
    • +
    • libssh-0.7.3 +
    • +
    • libssh-0.7.6 + + + +
    • +
    • libtool-2.4.6 +
    • +
    • libunistring-0.9.6 +
    • +
    • libusb-1.0.8 +
    • +
    • libxml2-2.7.6 +
    • +
    • libxml2-2.7.8 +
    • +
    • libxml2-2.9.4 +
    • +
    • libyaml-0.2.5 +
    • +
    • libzip-1.5.1 +
    • +
    • lispworks-6.1 +
    • +
    • lispworks-7.1 +
    • +
    • lispworks-8.0 +
    • +
    • Logiscope-6.6.0 +
    • +
    • Logiscope-7.1 +
    • +
    • lshw-B.02.16 +
    • +
    • ltct-20060701 +
    • +
    • lua-5.1.5 + + + +
    • +
    • lua-5.3.4 +
    • +
    • lucene-4.4.0 +
    • +
    • lucene-6.6.0 +
    • +
    • LWkit-2.0 +
    • +
    • lynx-2.8.7 +
    • +
    • lynx-2.8.9 +
    • +
    • lynx-2.8.9dev.11 +
    • +
    • lyx-2.0.3 +
    • +
    • lz4-1.9.4 +
    • +
    • m4-1.4.17 +
    • +
    • mairix-0.23 +
    • +
    • make-4.4.1 +
    • +
    • maple-2019.1 +
    • +
    • maple-2022.1 +
    • +
    • matlab-R0223b +
    • +
    • matlab-R2020b + + + +
    • +
    • matlab-R2021b +
    • +
    • matlab-R2022a +
    • +
    • matlab-R2022b +
    • +
    • matlab-R2023a +
    • +
    • matlab-R2023b +
    • +
    • maven-3.3.9 +
    • +
    • maven-3.6.3 +
    • +
    • mcmas-1.0.1 +
    • +
    • mcmas-1.3.0 +
    • +
    • mercurial-3.0.2 +
    • +
    • mercurial-5.6.1 +
    • +
    • mesa-19.0.3 +
    • +
    • metamail-2.7 +
    • +
    • metis-5.1.0 +
    • +
    • mininet-2.3.0 +
    • +
    • MKL-2021.04 + + + +
    • +
    • mod_auth_kerb-5.4 +
    • +
    • mod_auth_mellon-0.17.0 +
    • +
    • mod_authnz_external-3.2.5 +
    • +
    • mod_authnz_external-3.3.2 +
    • +
    • mod_authz_unixgroup-1.0.2 +
    • +
    • mod_authz_unixgroup-1.1.0 +
    • +
    • modeFRONTIER-2017R2 +
    • +
    • mod_perl-2.0.10 +
    • +
    • mod_perl-2.0.5 +
    • +
    • modules-3.2.10 +
    • +
    • modules-4.6.1 +
    • +
    • modules-5.3.1 +
    • +
    • modules-current +
    • +
    • mongodb-2.6.5 +
    • +
    • mongodb-3.2.10 +
    • +
    • mongodb-3.4.6 + + + +
    • +
    • mono-3.0.11 +
    • +
    • mono-4.4.2.8 +
    • +
    • mono-6.12.0.122 +
    • +
    • monodevelop-3.1.1 +
    • +
    • monodevelop-5.10.0 +
    • +
    • monodevelop-7.8.4 +
    • +
    • mosek-7.1.0.54 +
    • +
    • mosek-8.1.0.58 +
    • +
    • mpack-1.6 +
    • +
    • mpc-1.0.1 +
    • +
    • mpfr-2.4.2 +
    • +
    • mpich-4.1 +
    • +
    • MPlayer-1.1.1 +
    • +
    • mplayerplugin-3.45 +
    • +
    • mpm-itk-2.4.7 +
    • +
    • MRtrix-3.0.3 + + + +
    • +
    • MUMPS-5.5.0 +
    • +
    • mysql-5.1.66 +
    • +
    • mysql-5.6.17 +
    • +
    • mysql-5.6.37 +
    • +
    • mysql-5.6.39 +
    • +
    • mysql-5.6.42 +
    • +
    • mysql-5.6.43 +
    • +
    • mysql-5.7.20 +
    • +
    • mysql-5.7.36 +
    • +
    • mysql-8.0.16 +
    • +
    • mysql-8.0.18 +
    • +
    • mysql-8.0.22 +
    • +
    • mysql-8.0.23 +
    • +
    • mysql-8.0.31 +
    • +
    • mysql_workbench-6.3.3 +
    • +
    • mysql_workbench-8.0.16 + + + +
    • +
    • nagtools-2.1.10 +
    • +
    • nagtools-2.1.3 +
    • +
    • nagtools-2.1.4 +
    • +
    • nagtools-2.1.5 +
    • +
    • nagtools-2.1.6 +
    • +
    • nagtools-2.1.7 +
    • +
    • nagtools-2.1.8 +
    • +
    • nagtools-2.1.9 +
    • +
    • nano-6.2 +
    • +
    • nasm-2.10.07 +
    • +
    • nasm-2.14.02 +
    • +
    • nasm-2.15.05 +
    • +
    • ncl-6.6.2 +
    • +
    • ncurses-6.4 +
    • +
    • netbeans-7.3.1 +
    • +
    • netbeans-8.0.2 + + + +
    • +
    • netbeans-8.1 +
    • +
    • netcdf-4.1.3 +
    • +
    • netcdf-4.3.0 +
    • +
    • netcdf_c-4.7.2 +
    • +
    • netcdf_fortran-4.5.2 +
    • +
    • netpbm-10.35.95 +
    • +
    • net-snmp-5.4.1 +
    • +
    • net-snmp-5.9.1 +
    • +
    • nettle-2.7.1 +
    • +
    • ninja-1.10.2 +
    • +
    • nltk-3.0 +
    • +
    • nltk-3.3 +
    • +
    • nmh-1.1rc3 +
    • +
    • nmh-1.5 +
    • +
    • nmh-1.6 +
    • +
    • nmh-1.7.1 + + + +
    • +
    • node-v0.10.33 +
    • +
    • node-v12.13.0 +
    • +
    • node-v12.16.1 +
    • +
    • node-v12.18.0 +
    • +
    • node-v16.13.0 +
    • +
    • node-v7.8.0 +
    • +
    • node-v9.5.0 +
    • +
    • nph-1.2.2 +
    • +
    • npth-1.6 +
    • +
    • ns-3.26 +
    • +
    • ntbtls-0.3.0 +
    • +
    • nvtop-3.0.1 +
    • +
    • ocaml-3.12.1 +
    • +
    • ocaml-4.01.0 +
    • +
    • octave-3.8.2 +
    • +
    • octave-4.0.3 + + + +
    • +
    • octave-7.3.0 +
    • +
    • octave-8.2.0 +
    • +
    • omnetpp-4.2.2 +
    • +
    • omnetpp-5.6.2 +
    • +
    • oniguruma-6.9.5 +
    • +
    • Open3D-0.11.1 +
    • +
    • opencv-3.0.0 +
    • +
    • opencv-3.3.0 +
    • +
    • opencv-3.4.5 +
    • +
    • opencv-4.0.1 +
    • +
    • opencv-4.5.0 +
    • +
    • opencv-4.5.4 +
    • +
    • openesb-2.3.1 +
    • +
    • openesb-3.0.5 +
    • +
    • OpenFOAM-10.0 +
    • +
    • OpenFOAM-11.0 + + + +
    • +
    • OpenFOAM-1.7.1 +
    • +
    • OpenFOAM-2.3.1 +
    • +
    • OpenFOAM-3.0.1 +
    • +
    • OpenFOAM-5.0 +
    • +
    • OpenFOAM-6.0 +
    • +
    • OpenFOAM-7.0 +
    • +
    • OpenFOAM-8.0 +
    • +
    • OpenFOAM-9.0 +
    • +
    • OpenFOAM-v2012 +
    • +
    • OpenFOAM-v2106 +
    • +
    • OpenFOAM-v2206 +
    • +
    • OpenFOAM-v2212 +
    • +
    • OpenFOAM-v2306 +
    • +
    • openjpeg-2.3.1 +
    • +
    • openmotif-2.2.4 +
    • +
    • openmpi-1.6.3 + + + +
    • +
    • openmpi-1.8.3 +
    • +
    • openmpi-3.1.3 +
    • +
    • openmpi-4.0.1 +
    • +
    • openocd-0.11.0 +
    • +
    • openpmix-5.0.1 +
    • +
    • OpenSees-3.4.0 +
    • +
    • openssl-1.0.2.current +
    • +
    • openssl-1.0.2l +
    • +
    • openssl-1.0.2o +
    • +
    • openssl-1.0.2u +
    • +
    • openssl-1.1.1a +
    • +
    • openssl-1.1.1.current +
    • +
    • openssl-1.1.1g +
    • +
    • openssl-1.1.1j +
    • +
    • openssl-1.1.1n +
    • +
    • openssl-1.1.1o + + + +
    • +
    • openssl-1.1.1p +
    • +
    • openssl-1.1.1q +
    • +
    • openssl-1.1.1s +
    • +
    • openssl-1.1.1t +
    • +
    • openssl-1.1.1u +
    • +
    • openssl-3.0.10 +
    • +
    • openssl-3.0.11 +
    • +
    • openssl-3.0.12 +
    • +
    • openssl-3.0.4 +
    • +
    • openssl-3.0.5 +
    • +
    • openssl-3.0.6 +
    • +
    • openssl-3.0.7 +
    • +
    • openssl-3.0.8 +
    • +
    • openssl-3.0.9 +
    • +
    • openssl-3.0.current +
    • +
    • openssl-3.1.0 + + + +
    • +
    • openssl-3.1.current +
    • +
    • opera-12.16 +
    • +
    • oracle-19c +
    • +
    • os-overrides-1.0 +
    • +
    • otp-20.1 +
    • +
    • p11_kit-0.22.1 +
    • +
    • p7zip-16.02 +
    • +
    • p7zip-9.20.1 +
    • +
    • parallel-20200322 +
    • +
    • ParaView-5.11.2 +
    • +
    • parmetis-4.0.3 +
    • +
    • pc2-9.3.1 +
    • +
    • pcre-8.21 +
    • +
    • pdfedit-0.4.5 +
    • +
    • perl-5.28.1 +
    • +
    • perl-5.28.1_mt + + + +
    • +
    • perl-5.30.3 +
    • +
    • perl-5.30.3_mt +
    • +
    • perl-5.8.3 +
    • +
    • perl-5.8.3_mt +
    • +
    • pgadmin3-1.10.2 +
    • +
    • pgadmin4-5.0 +
    • +
    • pgadmin4-7.6 +
    • +
    • php-5.3.15 +
    • +
    • php-5.5.11 +
    • +
    • php-5.5.12 +
    • +
    • php-5.5.38 +
    • +
    • php-5.6.33 +
    • +
    • php-5.6.40 +
    • +
    • php-7.2.11 +
    • +
    • php-7.2.4 +
    • +
    • php-7.2.5 + + + +
    • +
    • php-7.4.11 +
    • +
    • php-7.4.14 +
    • +
    • php-7.4.27 +
    • +
    • php-7.4.33 +
    • +
    • php-8.2.6 +
    • +
    • ph-substitute-1.0 +
    • +
    • pinentry-1.2.0 +
    • +
    • poppler-0.81.0 +
    • +
    • postgresql-11.7 +
    • +
    • postgresql-12 +
    • +
    • postgresql-12.2 +
    • +
    • postgresql-12.3 +
    • +
    • postgresql-8.0.15 +
    • +
    • postgresql-8.3.18 +
    • +
    • postgresql-9.6.8 +
    • +
    • praat-6.3.06 + + + +
    • +
    • Precision-2010aU1 +
    • +
    • print-utils-1.0 +
    • +
    • probreg-0.3.1 +
    • +
    • proj-6.0.0 +
    • +
    • protege-4.0 +
    • +
    • protobuf-2.5.0 +
    • +
    • pwauth-2.3.11 +
    • +
    • pwauth-2.3.8 +
    • +
    • python-2.5.6 +
    • +
    • python-2.7.10 +
    • +
    • python-2.7.11 +
    • +
    • python-3.10.13 +
    • +
    • python-3.10.6 +
    • +
    • python-3.11.0 +
    • +
    • python-3.11.5 +
    • +
    • python-3.11.6 + + + +
    • +
    • python-3.12.0 +
    • +
    • python-3.2.3 +
    • +
    • python-3.3.0 +
    • +
    • python-3.4.3 +
    • +
    • python-3.5.1 +
    • +
    • python-3.6.15 +
    • +
    • python-3.7.3 +
    • +
    • python-3.7.7 +
    • +
    • python-3.8.18 +
    • +
    • python-3.8.3 +
    • +
    • python-3.8.9 +
    • +
    • python-3.9.1 +
    • +
    • python-3.9.18 +
    • +
    • pytorch-1.1.0 +
    • +
    • pytorch-1.10.0 +
    • +
    • pytorch-1.6.0 + + + +
    • +
    • qemu-6.1.1 +
    • +
    • qhull-2012.1 +
    • +
    • qhull-2020.2 +
    • +
    • qrupdate-1.1.2 +
    • +
    • QScintilla-2.8.4 +
    • +
    • qt-4.8.6 +
    • +
    • qt-5.14.2 +
    • +
    • qt-5.9.6 +
    • +
    • qt_sdk-1.2.1 +
    • +
    • quota-1.3 +
    • +
    • R-3.4.1 +
    • +
    • R-3.4.2 +
    • +
    • R-3.5.0 +
    • +
    • R-3.6.1 +
    • +
    • R-4.1.3 +
    • +
    • R-4.2.2 + + + +
    • +
    • racket-8.3 +
    • +
    • rapidjson-1.1.0 +
    • +
    • rational_rose_realtime-7.0 +
    • +
    • rdesktop-1.8.3 +
    • +
    • rdesktop-1.8.4 +
    • +
    • readline-5.2 +
    • +
    • redis-4.0.10 +
    • +
    • redis-4.0.8 +
    • +
    • RSA-8.5 +
    • +
    • ruby-2.1.1 +
    • +
    • ruby-2.3.1 +
    • +
    • ruby-2.5.0 +
    • +
    • ruby-2.5.3 +
    • +
    • ruby-2.6.3 +
    • +
    • ruby-2.6.5 +
    • +
    • ruby-2.7.1 + + + +
    • +
    • ruby-3.2.1 +
    • +
    • rust-1.62.1 +
    • +
    • rust-1.65.0 +
    • +
    • sag-dbtools-1.0 +
    • +
    • sage-8.9 +
    • +
    • salome-9.10.0 +
    • +
    • sbt-1.1.1 +
    • +
    • scala-2.12.1 +
    • +
    • scala-2.12.4 +
    • +
    • scalapack-2.2.0 +
    • +
    • SciTE-3.4.0 +
    • +
    • scons-2.3.1 +
    • +
    • scotch-6.0.0 +
    • +
    • scotch-6.1.3 +
    • +
    • SDL2-2.0.9 +
    • +
    • sep-offprint-1.11 + + + +
    • +
    • serf-1.3.6 +
    • +
    • serscis-access-modeller-0.16 +
    • +
    • sfold-2.2 +
    • +
    • sharutils-4.6.3 +
    • +
    • shells-1.1 +
    • +
    • singularity-2.6.1 +
    • +
    • singularity-3.10.4 +
    • +
    • singularity-3.4.2 +
    • +
    • singularity-3.7.0 +
    • +
    • slicer-4.11.20210226 +
    • +
    • Smarty-2.6.26 +
    • +
    • smpeg-2.0.0 +
    • +
    • spacetools-1.0.0 +
    • +
    • spacetools-1.1.0 +
    • +
    • spacetools-1.2.0 +
    • +
    • spack-0.16.0 + + + +
    • +
    • spark-2.2.0 +
    • +
    • spin-5.2.4 +
    • +
    • spin-6.5.1 +
    • +
    • spm-12 +
    • +
    • sqlite-3.44.2 +
    • +
    • sqlite-3.8.4.3 +
    • +
    • squashfs-4.3 +
    • +
    • StarCCM-12.06.011 +
    • +
    • StarCCM-13.06.012 +
    • +
    • StarCCM-14.06.013 +
    • +
    • StarCCM-15.04.010 +
    • +
    • stealfile-1.0 +
    • +
    • STSLib-1.0 +
    • +
    • subversion-1.14.2 +
    • +
    • subversion-1.6.17 +
    • +
    • subversion-1.8.9 + + + +
    • +
    • subversion-1.9.5 +
    • +
    • SuiteSparse-4.2.1 +
    • +
    • sundials-6.4.1 +
    • +
    • SuperLU-4.3 +
    • +
    • SWI-Prolog-7.2.3 +
    • +
    • SWI-Prolog-8.4.0 +
    • +
    • tcl-8.4.16 +
    • +
    • tcl-8.5.14 +
    • +
    • tcl-8.6.13 +
    • +
    • tcmalloc-1.0 +
    • +
    • tcsh-6.18.01 +
    • +
    • teams-1.5.00 +
    • +
    • tecplot360-2021R2 +
    • +
    • tecplot360-2022R1 +
    • +
    • tecplot360-2022R2 +
    • +
    • tecplot360-2023R1 + + + +
    • +
    • TensorFlow-1.15.2 +
    • +
    • TensorFlow-1.9 +
    • +
    • TensorFlow-2.2.0 +
    • +
    • TensorFlow-2.2.1 +
    • +
    • TensorFlow-2.4.1 +
    • +
    • TensorFlow-r0.7 +
    • +
    • texinfo-5.2 +
    • +
    • texinfo-7.0.2 +
    • +
    • texlive-20220405 +
    • +
    • texlive-20230324 +
    • +
    • texlive-current +
    • +
    • texstudio-2.12.16 +
    • +
    • texstudio-4.5.1 +
    • +
    • tgif-4.2.5 +
    • +
    • tgrid-5.0.6 +
    • +
    • thttpd-2.25b + + + +
    • +
    • thunderbird-102.10.0 +
    • +
    • thunderbird-102.11.1 +
    • +
    • thunderbird-102.12.0 +
    • +
    • thunderbird-115.1.0 +
    • +
    • thunderbird-115.10.2 +
    • +
    • thunderbird_french-102.10.0 +
    • +
    • thunderbird_french-102.11.1 +
    • +
    • thunderbird_french-102.12.0 +
    • +
    • thunderbird_french-115.1.0 +
    • +
    • thunderbird_french-115.10.2 +
    • +
    • tidy-5.7.28 +
    • +
    • tix-8.1.4 +
    • +
    • tk-8.4.16 +
    • +
    • tk-8.5.14 +
    • +
    • tk-8.6.13 +
    • +
    • tmux-3.2a + + + +
    • +
    • tnef-1.4.4 +
    • +
    • tomcat-5.5.23 +
    • +
    • tomcat-6.0.26 +
    • +
    • tomcat-6.0.32 +
    • +
    • tomcat-6.0.33 +
    • +
    • tomcat-6.0.35 +
    • +
    • tomcat-6.0.36 +
    • +
    • tomcat-6.0.41 +
    • +
    • tomcat-7.0.100 +
    • +
    • tomcat-7.0.104 +
    • +
    • tomcat-7.0.107 +
    • +
    • tomcat-7.0.2 +
    • +
    • tomcat-7.0.57 +
    • +
    • tomcat-7.0.67 +
    • +
    • tomcat-7.0.70 +
    • +
    • tomcat-7.0.78 + + + +
    • +
    • tomcat-7.0.85 +
    • +
    • tomcat-7.0.90 +
    • +
    • tomcat-7.0.91 +
    • +
    • tomcat7-current +
    • +
    • tomcat-9.0.79 +
    • +
    • tomcat9-current +
    • +
    • tomcat_connectors-1.2.42 +
    • +
    • tomcat_connectors-1.2.46 +
    • +
    • tomcat-current +
    • +
    • transfig-3.2.5 +
    • +
    • unafold-3.8 +
    • +
    • unrar-3.8.2 +
    • +
    • unzip-6.0 +
    • +
    • user-utils-1.0 +
    • +
    • uudeview-0.5.20 +
    • +
    • uuid-1.6.2 + + + +
    • +
    • vacation-sendmail-8.12.11 +
    • +
    • vacation-sendmail-8.16.1 +
    • +
    • valgrind-3.15.0 +
    • +
    • verilog-0.9.3 +
    • +
    • vmd-1.9.3 +
    • +
    • vnc-4.1.3 +
    • +
    • VNLB-1.0 +
    • +
    • VSCode-1570750623 +
    • +
    • web-helpers-1.3 +
    • +
    • websphinx-0.5 +
    • +
    • weka-3.8.0 +
    • +
    • wget-1.16 +
    • +
    • wget-1.19 +
    • +
    • wget-1.20.3 +
    • +
    • wine-1.1.20 +
    • +
    • wireshark-2.0.4 + + + +
    • +
    • WRF-4.1.2 +
    • +
    • wxGTK-2.8.12 +
    • +
    • wxGTK-2.8.9 +
    • +
    • wxWidgets-3.0.2 +
    • +
    • xcal-4.1.18.2 +
    • +
    • xcalendar-4.0 +
    • +
    • xemacs-21.4.22 +
    • +
    • xemacs-21.4.24 +
    • +
    • xemacs-21.5.34 +
    • +
    • xfig-3.2.5 +
    • +
    • xmgr-4.1.2 +
    • +
    • xmlsec1-1.2.31 +
    • +
    • xpdf-3.04 +
    • +
    • xsb-3.3.7 +
    • +
    • xv-3.10a +
    • +
    • xz-5.0.0 + + + +
    • +
    • xz-5.2.2 +
    • +
    • yasm-1.3.0 +
    • +
    • zip-3.0 +
    • +
    • zlib-1.2.13
    +
    +

    +

    +

    D.2 EL9

    +
    +
      +
    • a2ps-4.14 +
    • +
    • abaqus-2021 +
    • +
    • abaqus-2023 +
    • +
    • acl-10.1.express +
    • +
    • alpine-2.24 +
    • +
    • alpine-2.25 +
    • +
    • anaconda3-2023.03 +
    • +
    • ansys-2021R1 +
    • +
    • ansys-2021R2 + + + +
    • +
    • ansys-2022R1 +
    • +
    • ansys-2022R2 +
    • +
    • ansys-2023R1 +
    • +
    • ansys-2023R2 +
    • +
    • ant-1.10.11 +
    • +
    • ant-1.10.2 +
    • +
    • ANTs-2.3.5 +
    • +
    • aspell-0.60.8 +
    • +
    • bash-4.4 +
    • +
    • bazel-0.2.0 +
    • +
    • bison-3.7.2 +
    • +
    • boost-1.73.0 +
    • +
    • buddy-2.4 +
    • +
    • camlp5-6.14 +
    • +
    • Check-0.15.2 +
    • +
    • cmake-3.18.4 + + + +
    • +
    • comsol-6.0 +
    • +
    • comsol-6.1 +
    • +
    • comsol-6.2 +
    • +
    • cplex-20.1.0 +
    • +
    • cuda-11.5 +
    • +
    • cuda-11.8 +
    • +
    • cups-2.3.3 +
    • +
    • curl-7.86.0 +
    • +
    • DbVisualizer-24.1.5 +
    • +
    • emacs-27.2 +
    • +
    • expect-5.45.4 +
    • +
    • ffmpeg-4.1.3 +
    • +
    • firefox-102.11.0 +
    • +
    • firefox-102.12.0 +
    • +
    • firefox-102.13.0 +
    • +
    • firefox-102.14.0 + + + +
    • +
    • firefox-102.15.0 +
    • +
    • firefox-102.15.1 +
    • +
    • firefox-115.10.0 +
    • +
    • firefox-115.2.1 +
    • +
    • firefox-115.3.0 +
    • +
    • firefox-91.10.0 +
    • +
    • firefox-91.11.0 +
    • +
    • firefox-91.8.0 +
    • +
    • firefox-91.9.0 +
    • +
    • firefox-91.9.1 +
    • +
    • firefox_french-102.11.0 +
    • +
    • firefox_french-102.12.0 +
    • +
    • firefox_french-102.13.0 +
    • +
    • firefox_french-102.14.0 +
    • +
    • firefox_french-102.15.0 +
    • +
    • firefox_french-102.15.1 + + + +
    • +
    • firefox_french-115.10.0 +
    • +
    • firefox_french-115.2.1 +
    • +
    • firefox_french-115.3.0 +
    • +
    • firefox_french-91.10.0 +
    • +
    • firefox_french-91.11.0 +
    • +
    • firefox_french-91.8.0 +
    • +
    • firefox_french-91.9.0 +
    • +
    • firefox_french-91.9.1 +
    • +
    • gcc-12.2.0 +
    • +
    • gcc-4.9.2 +
    • +
    • gcc-5.4.0 +
    • +
    • gcc-7.3.0 +
    • +
    • ghostscript-8.50 +
    • +
    • ghostscript-9.50 +
    • +
    • gmp-4.3.2 +
    • +
    • go-1.12 + + + +
    • +
    • go-1.15.6 +
    • +
    • go-1.19.3 +
    • +
    • gperf-3.0.4 +
    • +
    • gurobi-10.0.1 +
    • +
    • gurobi-9.1.0 +
    • +
    • gv-3.7.4 +
    • +
    • httpd-2.4.55 +
    • +
    • httpd-2.4.57 +
    • +
    • http-parser-2.9.4 +
    • +
    • hwloc-2.8.0 +
    • +
    • jansson-2.14 +
    • +
    • jdk-17 +
    • +
    • jdk-17.0.2 +
    • +
    • jdk_32b-8u231 +
    • +
    • jdk_64b-8u231 +
    • +
    • jdk-8 + + + +
    • +
    • jdk-8_32b +
    • +
    • json-c-0.16 +
    • +
    • libevent-2.1.12 +
    • +
    • libjwt-1.15.2 +
    • +
    • LibreOffice-7.1.8 +
    • +
    • LibreOffice-7.4.7 +
    • +
    • libyaml-0.2.5 +
    • +
    • lynx-2.8.9 +
    • +
    • lz4-1.9.4 +
    • +
    • matlab-R2022a +
    • +
    • matlab-R2022b +
    • +
    • matlab-R2023a +
    • +
    • matlab-R2023b +
    • +
    • mesa-19.0.3 +
    • +
    • modules-3.2.10 +
    • +
    • modules-5.3.1 + + + +
    • +
    • modules-current +
    • +
    • mpack-1.6 +
    • +
    • mpfr-2.4.2 +
    • +
    • mpich-4.1.2 +
    • +
    • MRtrix-3.0.3 +
    • +
    • mysql-5.7.43 +
    • +
    • mysql-8.0.31 +
    • +
    • nagtools-2.1.10 +
    • +
    • nagtools-2.1.3 +
    • +
    • nagtools-2.1.4 +
    • +
    • nagtools-2.1.5 +
    • +
    • nagtools-2.1.6 +
    • +
    • nagtools-2.1.7 +
    • +
    • nagtools-2.1.8 +
    • +
    • nagtools-2.1.9 +
    • +
    • nano-6.2 + + + +
    • +
    • nasm-2.15.05 +
    • +
    • ncurses-6.4 +
    • +
    • nmh-1.7.1 +
    • +
    • node-v12.18.0 +
    • +
    • node-v16.13.0 +
    • +
    • nvtop-3.0.1 +
    • +
    • ocaml-4.01.0 +
    • +
    • OpenFOAM-11.0 +
    • +
    • OpenFOAM-8.0 +
    • +
    • OpenFOAM-v2012 +
    • +
    • OpenFOAM-v2306 +
    • +
    • openmpi-4.1.6 +
    • +
    • openpmix-5.0.1 +
    • +
    • openssl-1.1.1.current +
    • +
    • openssl-1.1.1n +
    • +
    • openssl-3.0.12 + + + +
    • +
    • openssl-3.0.current +
    • +
    • oracle-19c +
    • +
    • ParaView-5.11.2 +
    • +
    • perl-5.30.3 +
    • +
    • pgadmin4-7.6 +
    • +
    • postgresql-12 +
    • +
    • postgresql-12.3 +
    • +
    • python-2.7.11 +
    • +
    • python-3.10.13 +
    • +
    • python-3.10.6 +
    • +
    • python-3.11.0 +
    • +
    • python-3.11.5 +
    • +
    • python-3.11.6 +
    • +
    • python-3.12.0 +
    • +
    • python-3.7.7 +
    • +
    • python-3.8.18 + + + +
    • +
    • python-3.8.9 +
    • +
    • python-3.9.1 +
    • +
    • python-3.9.18 +
    • +
    • qt-5.14.2 +
    • +
    • qt-5.15.10 +
    • +
    • qt-5.9 +
    • +
    • quota-1.3 +
    • +
    • ruby-2.7.1 +
    • +
    • singularity-3.10.4 +
    • +
    • sqlite-3.44.2 +
    • +
    • STSLib-1.0 +
    • +
    • tcl-8.4.16 +
    • +
    • tcl-8.5.14 +
    • +
    • tcl-8.6.13 +
    • +
    • tcsh-6.18.01 +
    • +
    • tecplot360-2023R1 + + + +
    • +
    • texinfo-5.2 +
    • +
    • texlive-20220405 +
    • +
    • texlive-20230324 +
    • +
    • texlive-current +
    • +
    • thunderbird-102.11.1 +
    • +
    • thunderbird-102.12.0 +
    • +
    • thunderbird-115.1.0 +
    • +
    • thunderbird-115.10.2 +
    • +
    • thunderbird_french-102.11.1 +
    • +
    • thunderbird_french-102.12.0 +
    • +
    • thunderbird_french-115.1.0 +
    • +
    • thunderbird_french-115.10.2 +
    • +
    • tix-8.1.4 +
    • +
    • tk-8.4.16 +
    • +
    • tk-8.5.14 +
    • +
    • tk-8.6.13 + + + +
    • +
    • tmux-3.2a +
    • +
    • xemacs-21.4.24
    +
    + + + +

    +

    References

    +

    +

    +

    + [1]   3DS. Abaqus. [online], 2019–2021. + https://www.3ds.com/products-services/simulia/products/abaqus/. +

    +

    + [2]   ANSYS. FLUENT. [online], 2000–2012. + http://www.ansys.com/Products/Simulation+Technology/Fluid+Dynamics/ANSYS+FLUENT. +

    +

    + [3]   Belkacem Belabes and Marius Paraschivoiu. + Numerical study of the effect of turbulence intensity on VAWT performance. Energy, 233:121139, + 2021. https://doi.org/10.1016/j.energy.2021.121139. +

    +

    + [4]   Belkacem Belabes and Marius Paraschivoiu. CFD study of the aerodynamic performance of a + vertical axis wind turbine in the wake of another turbine. In Proceedings of the CSME International + Congress, 2022. https://doi.org/10.7939/r3-rker-1746. +

    +

    + [5]   Belkacem Belabes and Marius Paraschivoiu. CFD modeling of vertical-axis wind turbine wake + interaction. Transactions of the Canadian Society for Mechanical Engineering, pages 1–10, 2023. + https://doi.org/10.1139/tcsme-2022-0149. +

    +

    + [6]   Amine Boukhtouta, Nour-Eddine Lakhdari, Serguei A. Mokhov, and Mourad Debbabi. + Towards fingerprinting malicious traffic. In Proceedings of ANT’13, volume 19, pages 548–555. + Elsevier, June 2013. +

    +

    + [7]   Amy Brown and Greg Wilson, editors. The Architecture of Open Source Applications: + Elegance, Evolution, and a Few Fearless Hacks, volume I. aosabook.org, March 2012. Online at + http://aosabook.org. +

    +

    + [8]   Tariq Daradkeh, Gillian Roper, Carlos Alarcon Meza, and Serguei Mokhov. HPC jobs + classification and resource prediction to minimize job failures. In International Conference on + Computer Systems and Technologies 2024 (CompSysTech ’24), New York, NY, USA, June 2024. + ACM. +

    +

    + [9]   L. Drummond, H. Banh, N. Ouedraogo, H. Ho, and E. Essel. Effects of nozzle convergence + angle on the flow characteristics of a synthetic circular jet in a crossflow. In Bulletin of the + + + + American Physical Society, editor, 76th Annual Meeting of the Division of Fluid Dynamics, + November 2023. +

    +

    + [10]   Goutam Yelluru Gopal and Maria Amer. Mobile vision transformer-based visual object + tracking. In 34th British Machine Vision Conference (BMVC), Aberdeen, UK, November 2023. + https://arxiv.org/abs/2309.05829 and https://github.com/goutamyg/MVT. +

    +

    + [11]   Goutam Yelluru Gopal and Maria Amer. Separable self and mixed attention transformers + for efficient object tracking. In IEEE/CVF Winter Conference on Applications of Computer + Vision (WACV), Waikoloa, Hawaii, January 2024. https://arxiv.org/abs/2309.03979 and + https://github.com/goutamyg/SMAT. +

    +

    + [12]   Haotao Lai. An OpenISS framework + specialization for deep learning-based person re-identification. Master’s thesis, Department of + Computer Science and Software Engineering, Concordia University, Montreal, Canada, August + 2019. https://spectrum.library.concordia.ca/id/eprint/985788/. +

    +

    + [13]   Haotao Lai et al. OpenISS keras-yolo3 v0.1.0, June 2021. + https://github.com/OpenISS/openiss-yolov3. +

    +

    + [14]   Haotao Lai et al. Openiss person re-identification baseline v0.1.1, June 2021. + https://github.com/OpenISS/openiss-reid-tfk. +

    +

    + [15]   MathWorks. MATLAB. [online], 2000–2012. http://www.mathworks.com/products/matlab/. +

    +

    + [16]   Serguei Mokhov, Jonathan Llewellyn, Carlos Alarcon Meza, Tariq Daradkeh, and Gillian + Roper. The use of containers in OpenGL, ML and HPC for teaching and research support. + In ACM SIGGRAPH 2023 Posters, SIGGRAPH ’23, New York, NY, USA, 2023. ACM. + https://doi.org/10.1145/3588028.3603676. +

    +

    + [17]   Serguei A. Mokhov. The use of machine learning with signal- and NLP processing + of source code to fingerprint, detect, and classify vulnerabilities and weaknesses with + MARFCAT. Technical Report NIST SP 500-283, NIST, October 2011. Report: + http://www.nist.gov/manuscript-publication-search.cfm?pub_id=909407, online e-print at http://arxiv.org/abs/1010.2511.

    - [16]   Serguei A. Mokhov. Intensional Cyberforensics. PhD thesis, Department of Computer Science + [18]   Serguei A. Mokhov. Intensional Cyberforensics. PhD thesis, Department of Computer Science and Software Engineering, Concordia University, Montreal, Canada, September 2013. Online at http://arxiv.org/abs/1312.0466.

    + + +

    - [17]   Serguei A. Mokhov, Michael J. Assels, Joey Paquet, and Mourad Debbabi. Automating MAC + [19]   Serguei A. Mokhov, Michael J. Assels, Joey Paquet, and Mourad Debbabi. Automating MAC spoofer evidence gathering and encoding for investigations. In Frederic Cuppens et al., editors, Proceedings of The 7th International Symposium on Foundations & Practice of Security (FPS’14), LNCS 8930, pages 168–183. Springer, November 2014. Full paper.

    - [18]   Serguei A. Mokhov, Michael J. Assels, Joey Paquet, and Mourad Debbabi. Toward automated + [20]   Serguei A. Mokhov, Michael J. Assels, Joey Paquet, and Mourad Debbabi. Toward automated MAC spoofer investigations. In Proceedings of C3S2E’14, pages 179–184. ACM, August 2014. Short paper.

    - [19]   Serguei A. Mokhov and Scott Bunnell. Speed server farm: - - - + [21]   Serguei A. Mokhov and Scott Bunnell. Speed server farm: Gina Cody School of ENCS HPC facility. [online], 2018–2019. https://docs.google.com/presentation/d/1bWbGQvYsuJ4U2WsfLYp8S3yb4i7OdU7QDn3l_Q9mYis.

    - [20]   Serguei A. Mokhov, Joey Paquet, and Mourad Debbabi. The use of NLP techniques in static + [22]   Serguei A. Mokhov, Joey Paquet, and Mourad Debbabi. The use of NLP techniques in static code analysis to detect weaknesses and vulnerabilities. In Maria Sokolova and Peter van Beek, editors, Proceedings of Canadian Conference on AI’14, volume 8436 of LNAI, pages 326–332. Springer, May 2014. Short paper.

    - [21]   Parna Niksirat, Adriana Daca, and Krzysztof Skonieczny. The effects of reduced-gravity + [23]   Parna Niksirat, Adriana Daca, and Krzysztof Skonieczny. The effects of reduced-gravity on planetary rover mobility. International Journal of Robotics Research, 39(7):797–811, 2020. https://doi.org/10.1177/0278364920913945.

    - [22]   Chet Ramey. The Bourne-Again Shell. In Brown and Wilson [7]. + [24]   N. Ouedraogo, A. Cyrus, and E. Essel. Effects of Reynolds number on the wake characteristics + of a Notchback Ahmed body. In Bulletin of the American Physical Society, editor, 76th Annual + Meeting of the Division of Fluid Dynamics, November 2023. +

    +

    + [25]   Newton F. Ouedraogo and Ebenezer E. Essel. Unsteady wake interference of unequal-height + tandem cylinders mounted in a turbulent boundary layer. Journal of Fluid Mechanics, 977:A52, + 2023. https://doi.org/10.1017/jfm.2023.952. +

    +

    + [26]   Newton F. Ouedraogo and Ebenezer E. Essel. Effects of Reynolds number on the wake + characteristics of a Notchback Ahmed body. Journal of Fluids Engineering, 146(11):111302, 05 + 2024. +

    +

    + [27]   Chet Ramey. The Bourne-Again Shell. In Brown and Wilson [7]. http://aosabook.org/en/bash.html.

    - [23]   Farshad Rezaei and Marius Paraschivoiu. Placing a small-scale vertical axis wind turbine on + [28]   Farshad Rezaei and Marius Paraschivoiu. Placing a small-scale vertical axis wind turbine on roof-top corner of a building. In Proceedings of the CSME International Congress, June 2022. + + + https://doi.org/10.7939/r3-j7v7-m909.

    - [24]   Farshad Rezaei and Marius Paraschivoiu. Computational challenges of simulating vertical axis + [29]   Farshad Rezaei and Marius Paraschivoiu. Computational challenges of simulating vertical axis wind turbine on the roof-top corner of a building. Progress in Canadian Mechanical Engineering, 6, 1–6 2023. http://hdl.handle.net/11143/20861.

    - [25]   Rob Schreiber. MATLAB. Scholarpedia, 2(6):2929, 2007. + [30]   Rob Schreiber. MATLAB. Scholarpedia, 2(6):2929, 2007. http://www.scholarpedia.org/article/MATLAB.

    - [26]   The MARF Research and Development Group. The Modular Audio Recognition + [31]   The MARF Research and Development Group. The Modular Audio Recognition Framework and its Applications. [online], 2002–2014. http://marf.sf.net and http://arxiv.org/abs/0905.1235, last viewed May 2015.

    diff --git a/doc/web/speed-manual.css b/doc/web/speed-manual.css index d521c14..bb79f74 100644 --- a/doc/web/speed-manual.css +++ b/doc/web/speed-manual.css @@ -1,6 +1,5 @@ /* start css.sty */ -.cmr-7{font-size:70%;} .cmbx-12x-x-144{font-size:172%; font-weight: bold;} .cmbx-12x-x-144{ font-weight: bold;} .cmbx-12x-x-144{ font-weight: bold;} @@ -11,6 +10,9 @@ .cmtt-9{font-family: monospace,monospace;} .cmtt-9{font-family: monospace,monospace;} .cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} .cmbx-10{ font-weight: bold;} .cmbx-10{ font-weight: bold;} .cmbx-10{ font-weight: bold;} @@ -23,27 +25,69 @@ .cmtt-10{font-family: monospace,monospace;} .cmtt-10{font-family: monospace,monospace;} .cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.tctt-1000{font-family: monospace,monospace;} +.tctt-1000{font-family: monospace,monospace;} .tctt-1000{font-family: monospace,monospace;} .tctt-1000{font-family: monospace,monospace;} .cmti-10{ font-style: italic;} .cmitt-10{font-family: monospace,monospace; font-style: italic;} .cmitt-10{font-family: monospace,monospace; font-style: italic;} +.cmitt-10{font-family: monospace,monospace; font-style: italic;} +.cmitt-10{font-family: monospace,monospace; font-style: italic;} .cmtt-8x-x-87{font-size:69%;font-family: monospace,monospace;} .cmtt-8x-x-87{font-family: monospace,monospace;} .cmtt-8x-x-87{font-family: monospace,monospace;} .cmtt-8x-x-87{font-family: monospace,monospace;} .cmtt-8x-x-87{font-family: monospace,monospace;} .cmtt-8x-x-87{font-family: monospace,monospace;} +.cmtt-8x-x-87{font-family: monospace,monospace;} +.cmtt-8x-x-87{font-family: monospace,monospace;} +.cmtt-8x-x-87{font-family: monospace,monospace;} +.cmtt-8x-x-62{font-size:49%;font-family: monospace,monospace;} +.cmtt-8x-x-62{font-family: monospace,monospace;} +.cmtt-8x-x-62{font-family: monospace,monospace;} +.cmtt-8x-x-62{font-family: monospace,monospace;} +.cmtt-8x-x-62{font-family: monospace,monospace;} +.cmtt-8x-x-62{font-family: monospace,monospace;} +.cmtt-8x-x-62{font-family: monospace,monospace;} +.cmtt-8x-x-62{font-family: monospace,monospace;} +.cmtt-8x-x-62{font-family: monospace,monospace;} +.cmitt-10x-x-50{font-size:50%;font-family: monospace,monospace; font-style: italic;} +.cmitt-10x-x-50{font-family: monospace,monospace; font-style: italic;} +.cmitt-10x-x-50{font-family: monospace,monospace; font-style: italic;} +.cmitt-10x-x-50{font-family: monospace,monospace; font-style: italic;} +.tctt-0800x-x-62{font-size:49%;font-family: monospace,monospace;} +.tctt-0800x-x-62{font-family: monospace,monospace;} +.tctt-0800x-x-62{font-family: monospace,monospace;} +.tctt-0800x-x-62{font-family: monospace,monospace;} +.cmitt-10x-x-70{font-size:70%;font-family: monospace,monospace; font-style: italic;} +.cmitt-10x-x-70{font-family: monospace,monospace; font-style: italic;} +.cmitt-10x-x-70{font-family: monospace,monospace; font-style: italic;} +.cmitt-10x-x-70{font-family: monospace,monospace; font-style: italic;} +.tctt-0800x-x-87{font-size:69%;font-family: monospace,monospace;} +.tctt-0800x-x-87{font-family: monospace,monospace;} +.tctt-0800x-x-87{font-family: monospace,monospace;} +.tctt-0800x-x-87{font-family: monospace,monospace;} .cmtt-8{font-size:80%;font-family: monospace,monospace;} .cmtt-8{font-family: monospace,monospace;} .cmtt-8{font-family: monospace,monospace;} .cmtt-8{font-family: monospace,monospace;} .cmtt-8{font-family: monospace,monospace;} .cmtt-8{font-family: monospace,monospace;} +.cmtt-8{font-family: monospace,monospace;} +.cmtt-8{font-family: monospace,monospace;} +.cmtt-8{font-family: monospace,monospace;} .cmitt-10x-x-80{font-size:80%;font-family: monospace,monospace; font-style: italic;} .cmitt-10x-x-80{font-family: monospace,monospace; font-style: italic;} +.cmitt-10x-x-80{font-family: monospace,monospace; font-style: italic;} +.cmitt-10x-x-80{font-family: monospace,monospace; font-style: italic;} .tctt-0800{font-size:80%;font-family: monospace,monospace;} .tctt-0800{font-family: monospace,monospace;} +.tctt-0800{font-family: monospace,monospace;} +.tctt-0800{font-family: monospace,monospace;} .cmti-9{font-size:90%; font-style: italic;} p{margin-top:0;margin-bottom:0} p.indent{text-indent:0;} @@ -195,5 +239,9 @@ td.gather {text-align:center; } table.gather {width:100%;} div.gather-star {text-align:center;} figure.figure { text-align: left; } +.columns-2 :first-child { margin-top: 0em; } +.columns-2{-moz-column-count:2; -webkit-column-count:2; column-count:2; -moz-column-gap: 10.0pt; -webkit-column-gap: 10.0pt; column-gap: 10.0pt; -moz-column-rule-width: 0.0pt; -webkit-column-rule-width: 0.0pt; column-rule-rule-width: 0.0pt; -moz-column-rule-color: #555; -webkit-column-rule-color: #555; column-rule-color: #555; -moz-column-rule-style: outset; -webkit-column-rule-style: outset; column-rule-style: outset; -moz-column-fill: balance; -webkit-column-fill: balance; column-fill: balance; } +.columns-3 :first-child { margin-top: 0em; } +.columns-3{-moz-column-count:3; -webkit-column-count:3; column-count:3; -moz-column-gap: 10.0pt; -webkit-column-gap: 10.0pt; column-gap: 10.0pt; -moz-column-rule-width: 0.0pt; -webkit-column-rule-width: 0.0pt; column-rule-rule-width: 0.0pt; -moz-column-rule-color: #555; -webkit-column-rule-color: #555; column-rule-color: #555; -moz-column-rule-style: outset; -webkit-column-rule-style: outset; column-rule-style: outset; -moz-column-fill: balance; -webkit-column-fill: balance; column-fill: balance; } /* end css.sty */