From 3718d46419c8ae084da0171121b4e8b4d3bd50b2 Mon Sep 17 00:00:00 2001 From: Marco Stock Date: Thu, 5 Sep 2024 13:22:22 -0400 Subject: [PATCH] update docs --- README.md | 2 +- docs/source/add_stuff.rst | 4 - docs/source/evaluation.rst | 28 ++- docs/source/extending.rst | 21 ++ docs/source/images/overview.png | Bin 0 -> 38194 bytes docs/source/images/regressions.png | Bin 0 -> 76790 bytes docs/source/index.rst | 31 ++- docs/source/objects.rst | 327 +++++++++++++++++++++++++++++ docs/source/overview.rst | 27 +++ 9 files changed, 422 insertions(+), 18 deletions(-) delete mode 100644 docs/source/add_stuff.rst create mode 100644 docs/source/extending.rst create mode 100644 docs/source/images/overview.png create mode 100644 docs/source/images/regressions.png create mode 100644 docs/source/objects.rst create mode 100644 docs/source/overview.rst diff --git a/README.md b/README.md index 2012f813c..a24038fa3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # A dynamic benchmark for gene regulatory network (GRN) inference -[![Documentation Status](https://readthedocs.org/projects/grn-inference-benchmarking/badge/?version=latest)](https://grn-inference-benchmarking.readthedocs.io/en/latest/?badge=latest) +The full documentation is hosted on [ReadTheDocs](https://openproblems-grn-task.readthedocs.io/en/latest/index.html). [![Documentation Status](https://readthedocs.org/projects/grn-inference-benchmarking/badge/?version=latest)](https://grn-inference-benchmarking.readthedocs.io/en/latest/?badge=latest) tIdD3CQ=N3~`30b?tVyXGZc94!_HKi301B{i$Z^G?DL9Ukvy?#lRzFU{V& zvn6pCsKb|&an;wA(MWG6j~C9GyI$sshJFh}{++kOnYrq!jGo6z8S|Z#=ZyD%wWBm= z*^9W5?PEUt>o+0(BG~+RdPw#{{p4T{r3oaLT?GzbPV0Xin`hHr8hPcPi&vo18#N-W zHJ%)CI}Ru>1kat@a~mp2@hDuS;uqC-tm1P|dP$WW>gAcE$&l2nsM{|HW;;hG+&Yry zyh(nvndW6(BLf=~a0t%U=W<0RbOC`dQi?MUq2)W@WVldKvIaWbM|up5;(})ppG2E~_heF}LWZLJ{8U_FtaY)GP8yYmqdEcUL-2eLL?3iC>CJ}5#bdOO zWn;Ntvzvd*u$La302I*ivhI&Pv#hK{-gy7uz`g3|wlv1DGR-OV#Mua6ViL9Eg_DF= zM)8vEVjfSh7=nLtf00O=`%TqmbK+YsoEyO-7kqZqE3S=ba-@yDJ&ht9?*hd=pueI! znx2{hoVq5Um=owNkITa*XbZ8FCetdF#}uG0P0deZ(M|P!~6IUOYh!^M7MYoH=2svTkQqgIM#cFw%%aic1&H zWU9cMR~zAhpw_#$he7mc5U_Dq`^TuzP~6# zfki@l*J+~&YeJdbU*8wHAQ@UexBGJ|dZM7Fv%yKQ1~!jd?tP{UU-1II6+CA)hD2}U0 z8~JlElVuFcRWX1XqoPhI-judZh(H{%Oat<>;Jd+|GNIN%Ew z)4wXAUHSIErUxw@Ykzh!MoT%7 z;qq&HcL%QGvF^cO=M3*dMVv|PCz3Exk;`ze*DM1ZAA>cDhs}L^Cjk3)Fr~^@}rc^P4jR_-2)*&kk&CJnXuD8kPS&qac@@~3F11;Y-^6!T{&(Qleu-^oHsVtPWK-;T4?u&3AocH=_CgPhb)?z~!!PIch>b9lp0rO+S+R)K3*7E*mtfM6#L_!JWmOvL1ttREOmH|9$ z+Q@zJq#DR@0i8J@&CPj#Hk}`vG~q`WSX;@glzv}>XXh)dNkGbFoy+cqq9Mu}#oRTsRj+St6aP&UqtMK~` zYBfIV@4PS$n7S6!JnR%~2O`(-#IZSNos>D|Bn}#I!n=W)19Ta+itA-$m7AmVw59Ry z6!(lx8VOUBskS2MRV5f0*YI}|G@CUsk<_;rwVn8kKz1fM<}YVth<(J66bg5uoGC?H zvM3c@Derb6K|dv{6Ccj2XtVaAYG?LW{u|!t2~vd?3a?BkpjUW~J)v_c6anfQZrG4~ z>=aST8AabY>V)uH!=o`Pjt%b2gw%*l{dN7^djcB9wM2Z!a-CrnuUnGN=5EwP!KuG1 z--Ib4{{GaI0DL%&2Mn5{AZ`PD{lm6|-xZNKcygcUVg`&wDHQH1-X(^qkbX_DCrOg% zR^BiA;3-M_u~v|b_T`)qf*J9JdySp0buz}WQJc{YCkiP=M)$Y=C!mWX9@W#Us%@LN zUiXanEdAUzcz46Ov#PZu;FkRU@e2QnoX`7SOv}!|Z6!widU$^!ewM^ak=*TubYc@@ z$>+wox3+X$qs0gV>Y-hJoXIh;03)0livfxKCKJdxv%88lY%t?es$w6!^m1%K`S*uk z!FU6x-#({nolyn3MA4g$DcUJ{5+7KxQ`A{5y6_tOsizHD=rTSe4I~U9(ku4kIW~%L z5ZnzRV!!ToF3&Rm;;2I?;OPwh1YzXhSePcWOFM69lqeO;e3n49^=DEQ7I_n7-Lrw2 ziK*F%DFldTa3)5H=e}r1d=bRoQmS=d2_`^7envx$LP?@z4li70(p1ei%7D;xUH(qC z%T7m;$h6VD+cH;=pmHOlNHhl#g zEytQK>zUAxUn&H0)4Ltd7K+>JDt}5*M!Pau;oER>)h_sLtS(~Y8fC2%OcAy=qeA@q ziOmSgQgzkSR~vQeh5QypC}VMv?-p!^zUuH=S{koR7LDX%RY#)AK*+E6mOuE7&~9EV z+`Igg=q7r;JHUz?Kt(~Ba>i95Px*s3hcT%&-fHZFYqp4X-1e{p$1?n`{1V@#s3Bzl zdd^=gQf1~CjmwoN<=66;ON@fhmNa$V)@D6WY2hiAo*=}xtEf;qVaHQ7+-<{Q{jU;4 znAJ#YDO2z4vqVC}gAp!2mXkSs?EDzJ5Q089iKU|Fh|S6_Tj&?wJlYy6$Vtv&1$alV zt@KcfVxRdfQZ>~(!unHlZPb6{7Nv+QOCR=(!nn3PfQ8(p1Rt0k4oD3Aac0f4nm80F zgMsv&P4QKvFZ!TCmb7?ewfL$OEBszI;@J2q6Stg_t;;D($~lzEl(LKc$cpvJlEqls>$pF4T`878gys*3bMZ|BOi7W3;14miAbNj zr)uY4e6wI7d5E&;ml&y>wr#9di2hu~l0c->YJWN!MD4cX>kbDQ!+tB^`_{>Fto8!Y zmTgy){yC-6yJ7V?ox`GgSgS~{fyWEF#T8GXiZl^sacbt5R?~i&ctx>0?jdeC#h)mk zNpMhIS!P9vI?T4``zn{f@Nr#Q%SIC{xiiZ3=X+`}^ZFR6 z;xYZ)`pTco=U!ChPzF$5JJTa_wRqcT1c-}If&Z@z3G(RnteOoV6nH4iT7L7TKJD7Wk>wKj>@Mn_MgnY{1ij|aEzq* z^{+^%LOsYlKppGO2Ml$>y*=b9&pQ{cp^a$ z)h^B>vgOughf}PpaKe`vLph(G$`}usQ4jD~*Ve1Okb^0BI24$YZVm+FrE<{s*ivOI zkl&XVV>^vfq0qsM%rJ~rFJLXckr_JTsJpHel2FX}6g3^nov@7yj- zi1%qw9$%rMlgCJ2>vFzI`2zWg{Sr`II#UvX5n_P8!iiAWq(NP``u|!0yN#6rlk*0? zO3x^iT&pR5O+Fsad74TboV)4HMJldxaz>t^nX&brK45$&k5c!MNdRUs2L}fLTWK@Z*VN!LhT4$R;37x#fUqp9nUaKz44tXn^|_z( z>I-m?0O9eea&4D)OzSLJW6e+GnjTK(?SGK974EztUTNo=%Aypn`|uz?FRx9UPR^kv z>_izNIU5ZWSD&kDgUcOru%o2rOw@D{!`b2C@pbGBZs=8QwnWN?llxdcj!oBIB$qL$ zb~CDrgAk1SNPj$3V|N-a=-9VD5zh{Dc9EJ|f}n&H%YWJ~o}&C*!^3 zV5hlpYk`23yU%sx=u)d&@QtFoIGJywyD~{u3fD8FXIVz$Pt22aUnPf*Vm$IW6$wp* zJ2Je?%Z;FCL=#+0HXWjd59-D@na-#=N)(+V-!=|Z;)yWJl{|0QWs15l8{E+b$)c1a zzF8*|3n?P+(=>?-sq%U5{;hLA?@th$cJPCU|ljnvo zf_lWmN%Q=CAV43T*G>A#vZ4apEnM`!)VK;#28OoFf=UncLsfv2fPbXi_+*BL<^Y zUVWt;+wqyFk-~joGCP&i(8L-LncLbG^=v-3^QGg|FF`Q7aFMSw{J<5jC?sL?MuU)0 zV;4YoITsyuf7CVrSgTwYe8T?wXm!ffjckVHOyPTpuI|a}cl2V`OU)bKGFcw>V-|x< zeXn`qOgg;n?=&O@`%24)mM?y!xyd{20i=8(Y$)lY+QSzVWaL8GH_u~(?{qWGVa4)3 z75rSh^Xl*RIN%~fK}WYG`l_vkV;gVT&{opK*yEo1Zuz0g=ju$y}8q zn{~RZUyJden=}Z^8y!`(eYn5h-`!RA^Ile5^T@lda@BF)I#d>$nWCF6Jp08v&tUlm z4>F5J8Bw>i@z$H%NAK5KI9;Y$jZ1P#fr9MMBh(L-Roy>Uf@C_8?#iB`cGvmVqvo<~ zSNya9N4LA~wY`=Iy|Bb}AJ9{C3_VeZM*^4?TRVTm#(8l+k=Y#Se5lAWPv?xYRV+aw zG-^IHMiTJBIE1Sj*k^YaJ0x;<%DEs))O+;{QTFAfb6|@6ltR2wRc%?uNW#_ctH^ou z%vn+F7@2n|3xss^2eo^%+8sEig7l%Um+l_GQ`xg?l_S!r1oHsI-y^2b7~=k^MwC5W6VGD z#6^>qfor!T`C=l^O^~1#Oq|3KB?Off-djaUG`QNah`s z7`b!jBP9G?D3{S>)Q2wHcW&b?2&A#AAPijU$#N_y#9yTFTQItstyapSddebAz1AJV zujqF%67NVwKJ$K4Y~vi9-Ctz}iT{LxX0GP~NmF@! zWDXub!&tM&xTKQh(G2rNQDm>ziq{B^Zq}UITCRB_wvIlt{OKscL4RUh9O~$%^6Mm(U(M+bks6 ztiyBwux1{;nu0E)q$vzL>eCT>c9f%5L=V#86y5Ky<%V^=en0vd!%1g9-&f164-flb=hps2R zubFiP=vvLgy>B_L(O%*~iE^58LD7xY4}jw#o072oNG%_1f32B?7BKZ_4K0B6cr9dh z%GA}4xFyR^Gq$Oi9w{6BHTPcK=MHl=l4JiQ5ro)7hPlnTWGDRv*Q49JsBjQ)?>c49@c;K7iWl8C{|7BvzT-z79@n0 zdQh#HVWXI#IUeh<@SX(={?kvgoY6*Y*Z|?dueHpT+WY7hkz#0Qx*&(MFz>bwxLW;= zDnLMGQ=>{NnD)aS>~^Tod6@?uj_W;vrd6}l4Qt>sL>N;g2N^L&zr~8u%2FIcuCf28 z$d!3PaEbH6ZYVjp>E%Gml^L7b82`oh-LhE^;zMw-(^uq^0)OpJp$k+9ck}U9)H0&u zD~LXO6(Ecu^2`tLOh0KVbuyidk~Rj=PH`4btO4{Edsn9XJvwp#XF0zb5m$LQ0;P z%^^&HXZ>=Q%nOruw>b59gf@Fk&_2A86;980A@j(eXY8XqaR2MOi9rLRAz!jf(W3LOj)s~~*CiUCL z)TEje=l*lc4L#|P?$unDpZ{3`dYwk?Pv(TuY*;BWEAferu@aQwGIAnpv3;tCuw63)+$cR*YnO~P|NRHmb*b~7gQLK!noj6dlg zW~f;GVAE%UoM+RO9Q4@cnp|}nv9@4VPzlq8`tnBo%bhD~o~Pz6cJ`dday79R2*fTY^N;WA`GE^w$oB0)`@6ceB(%zDi3Rp~1$|9bpfEZK|<)PDH zA20+haWy0?-0znr$5buXG%;4b`Yr%Jf#e`!s`^8=K|Z&=3Im|NmeI!F8j@_kDvk%||WjCMN-4uwWE9m6p=O>8W()6pPz<5d@Q6vWQ@3UK&3gc+XS9 zQC6ONwakIZhy+9&=UrS3wvteup04zL1N84DUOM#LGYRoACJFIh_}}f0yNJ~mQ*Hlu zkpo8!6m>abL$MTO3C2$CKJuFe#>UE+TE_Y%rF+7d5PyoR)~4x1U>Jf`Gb47+2YA`F}NlO$q2OK&t0q`^&S^aSFeOBXA1ZEk=`H$=z3wHxD6v zDfSnjS3jwLJ3}Ue;rzE>wDXEmyRbuImF=0jA@LR}_Z&>{YU)R{?S!;MQAElHYZq&W zaH)JmZw^{`@B3;gv{|%l&t#>g5efVz`JhVYA?ZPHlkSY_CwwNQ-@UIelT+=;$Mq-7 zYrc7f%Z*rbkb=>9`UNxj2xPRlgBQ(}I!`3*|NEItjp|&%e^(SN^8RyOQ$+|nrWk@= zMu(=|_lSrwknDbcxd-N7&B&p4fjJLsfbrn8S-?d424p8eh!}&$RsR0|Ag|YoNgcje zCUa;2S>xl-Itx?@RT-SIiCWmH0wcF2y~&snlYSXcO(LaJM9MV5lO^e*yreZ)7Sv6v6K6O8$~2J^0v zwK200vP;Qn<2AsHEdx9 zOuv&GhgtJjJNy-Xec7B0Lr%eOoNedUvq}5DSwQ@sFa^H^_Ra=O9@rV3=(eF$Zt4}2 z{F#KI^sHUewg+Vf^9b@UtYd^_jM#U#H)ORYWl4dWMQIkF%PB$UNe0 zn^HV7(jnb;uJTu1b*h#-&6G;%RiCm`3Ci)uqq)7;RQ)NS_s+1!*N1THJKkl+t@BXd z6`B>PC{;a4>sh7IHJoXl)1~d(NZPIDo1)HT@HlOwW{_|iZT>1u;^ssK6zN8iax;2D z8XY^@RMA&5_KK6kaw8VyB}ts`7gCL1J3SJsi7Laf-9#^pS?7T&4=gNzoN79>CnTt- ztE-!v(-4V^6TNwr$>mD+V#q(gGX6MNrb)dDABlC?%Xckdzgg=lw3?b8fI|7#ixzNS zfxDCr+PvNjRiX|YCh(0cf!cckqwx643|Vf4W7khd&FS^^z4n28AurqSOl=3TDWS%% zUX0%IL}Y7C$qT6_6!WWWD@}cf51B;`5LSO!3^9q=`Jp9eDf0iBRJ8-&N3|K*(on<$_kTDtyFDka|4Hj3iRx@iYtZH$5o!@MeK>ei{i6p&Sl zE{iyBS5dV@gv8QDyxrxqbnMeSlzz(*o%XfGW<@~CPOcys;=(Y?J6J`g`n=uj-`Q~OCP;xtNkm$ zi5H`FS^>*uYIK3EhPwKpuABMUMvw1%5(ZLP4${%DFnwnaNm=Rx{ODwYW!Dkl3_k(n zKUw@9*l*wZ9?UX=IUx&`MMWSju^njDh=_@;nEB!FuzE`016l;AH?F{^he{T`1@Hkttm_`(pY{h3dFKs{$^%nhMd7UAZ*d)tr3+1OWjR zS@Y2xBhVB!)%~W9ot~09)oW{bk@Y&%e8dt>ukkhVDN7CdwHI1OoQ!u zTzVuKFD;FZPdEn%hNtWG5paK_q3#>I2udx*c=l|bG3hknf@uMXiK-6mm6dj2sRF0; zfbr$cTMHTc6cGhwF?Ob`k)FF7)rk!@!VE)S3#yr^jpmQitaAkoX_C4o(xCN17dz*# zSo4f^wAV>gSfPFW9&7iA_ygFPobJ^fqqH!$vHYir9;Bc?FOlFoiub8G>GQOwVKXpUtrd?u1giuIfV z25+!qZEbJ&_I0;|G!)?C-<>Jo+O=$OK>y=`zm;Z-FF=u?me^u=2HGnxD-++}eCB7H7upJiMGf`L(6~ zIxjC`OT~31Kj?cPtAj|PrO?b!Al8=H$)S|piSh+BADsFghh9_Cw^rhLb?)L$v9)hS zEe-LVaaTWSUX)fB3#vkI2Jnz$;^@n>fEHsg`GV7io$ZQE_o`QPFO23Ri~g3Y=pH;sR86@q2&L;w?F4yqgKv!fiMZy|E%*Yvf}Nk8;3R>fzUH~m>jMs z^>@P+SpU;rtN%_7EP=~};Ni+Kl}tQo{-j6V$%KalaXgi#bO$O(P>EAvI`5`0yRq_> zu{E;?yj?t2Q%@zaZYe)ylLdonpI2w?11Yx`7 zR~Va_fzo*o=tiK|F3Aw3_yZ_Vu&J5Pmc1$Q31NqM?01L!gxa4|lfjZi)}fVNHOY`9 zQEt=3xvU>?A?x0$DZ=B!?Yw4TouIR&?J3x|IN<1>chgJ%DQRUfMDkevFAP2}<2@3C z=fJ93wFqZ&#&a;)RqVs6z(A?B$%fo`ZdGqRJ()R}78@zo8w@57H^M?3J#8l5?)GKA z5w)^-ScZ8IKCOyKIA5+QfZ0Jb5kLPU=>2Z{Qk^0C#>Ueig8*E?BV|Ou&#VB3Qc-a1 zcm(w_MWT+a+vNM8j&vzMSG6dIjZWr}!f`hZr5H7V=TGAI{ZZRi2{SHv>--_BN^9SDj?~GOmw-$ZfSq7ehv9u=t8GK_Uilj zs;w9S#`8S)%zT4PC*S=~^Zd_N21;FWf50b}Km+SrA#HMU5~Lz!@w(7~$q5_JpaVw( zr5xCC>V<*p$G*T*IV9mLKxLcLfb_pL@i z{f2LxSmf1@{92w$_|7(PSM<{~y(eGa33}C5<eS zXp_`CyS?Ni(GR31%yeZFJk0xU(rs}h(DqawUie@QvPw%mM}rPLsMesC zH^z&+&=A-smOf)#s$DCf=T@6Jt5O|@93T!z3y!!^@3Icd$riYkRSd8Mk|Uij138Ab zP>cjFfEqw0jgMD$Xs@om0FzOgo%clYRE|r+$Yl|jVqRB#D6v&s8ZjY5#`9)@Ae|Kc zw7yIjXgVDw)|P(`NHotL**%oPa5QpuEtd>;D=B&fbWNAHK`qH&r>E|t$s>IEf>1s* zIf?XNhj0i*kfr?Os&o7(sUh}fO_en-4h1s4$fwZCD7kGdriSs{bMCT(OKnsg!PX!B z>opvB_Bs}+;a-kX+ZVUf&pxmcqJ|p>m*3P*=te(BpJ_=QECQwty#;Mtb2Fc&`*(Ja+y^^6eyoXa1#FX9#uZw(R`5)* zbSHGn&gENK=g>65jPpMnvBWb&xvo=fuLFN6}K?~fx&W3-vty>4vX-EV<1jQ*I5 zjSa+n9DuiqVDyvOqJbbzQ#ZYHccXLOp;~|2;n#0m;w0K% zBjvSCp3H$u=FiuJR}ZTe;4tD5YV=B>(lVoA)4g*k4w7A8V`g(5Alaup%dUa z)ISQSxYUMKyLq`<`D~6x^o_01ATB#OM(li?uYOqtlfXP-J0b^Kcb@9JF4}iy8OW4a zB0*GZz2$n9PZvAnc6Io7V}$FG5cbvBes~Fl5LL5>#XU#BHUq*ir5hcgYusDWV~0KAhSfBSmBGEui8<7 zuh4VDB{>&lO}rJBq*BG^&GQ|>-^BrAaiiIIbRlfW{K`*(JT@;evsY>~4T%kYO1)x6 zpCPE!ILsswT{&(cdlSXmVl-CbnDE73QM3*(o0UdfCoPyrqRMp8e{HV{sXVdFP8jbt z{fqzTzR_!NnnESBLxgZUy(={GI*IulbdRQ^(M#ZCgN+isNiDZ}X9eXZigMgP)G^uc z-4=-qO^af+Qq!!{SKkj^lG>4?oZN~>MGqY_w1DZD)C+YO0-7l0;S6>sr@=*rHsR^! z(3e!G5e@En3JQx8!4WIlOnoh@Z%VxD_O2qal@TPY?G2aBF(*-!p@l&|G_mq{;rG>L zK;8uSoFwReV|DY8-`iO@Ev%iD(l1)=riKMx%i8-!6K2}l+F(_KfD~ia6ie!~5zuJ3 zfleHt%KPsS;3pV@Mb7vLkOK4+;rq27&K`<7 zOeK9@9^M6yVM!MIF&#z>P@e;pizX9TAi_KTWQ=i}c28FCrTC-a_FS(QrkLP?-vWRNmK*7^t1W)sEw zp0$3a>9KnBZsQakqY_W=-3a|4d9wRtC6rW6U}U@Gk<$Vjy&2&r^xN|;xlLeEyW!D( zu#6GXvH7}UIV_^FE#Onp@d803bk&KEQ%>*vU|ebExLl9z&!E@L3&vC9^o@rXhU~9~ zzM&y{06x*sfFV-eM`a=4q6dr>WyJ&H;|B7hoX_AwyWT^>)I|aW$sqO}Ly;bl*t|$I zTce{;A4Lc4L=`&EN8QKUpxraXi79p$0p9oBIwV=NVV)`%-5D1rj00)>o?g^PKYDDY zDTMT-Ah3GvGTr#F5V;PXZ4ytGJmv4}+$$1U+5ol|%Lg|<1c3ogVD?`zu}E_r2?s;i z$YiwFnQCY;bl>_F#K)`7W-bcGN*4mbp_LTXRj%r(j6ddTn1D&Fyt! z75)&eRNpFa_*OuY3X?fpl*oszLVPZfo#;dR@0!8Q9j1j>5K0P%qd^Cd5Tw|BVz*+t z+?ZwmG<(7LlDT+4_7SvadM%I4zw*W!rT;+mO)PLPm?x%|LprnTuAN}~-|A?NQa+Wo zXi8bSzR~;F94ZuIAkb8!9KFPr66r*pxZFgXbuYLxIV0}8VCIrt+Fl>6u0hC52u|0+ zc@s@82l)8-+lPmbM^i+oycwC)xZeN4qDbGov5O~Kc9cb_aA3AXU%$48ph6%@`tY<^ z!e_;NFd;Dv&b5rrwGa2OkTrK3>UwXq_uZ{qC#8YE)DHJDtQ=c%Mde!_`5}ZAWci5@ zutbeRn7QC#h0E8!P}?x ze12V&qVt~w0Yomd$q2ySI~`zd4vF6>4GVRB1IWOFU?TMpP>=z(dZ}%P0`gD&jd*(V zVxE;WBHvV)lbeYn&)z24CgP9S=Xr0s$8kHbkRjRW1Fc>!2^F0q86?Bt-S=bPbNAm> zIp5gL?j-A(OOv1U++n&1#NMT@<`1W&#A7x;7DR%QB0)sew#aOYn0OC69Ny&AI*}8y zwVmL6P~TwWWoL)6xF*+jW2mbV*?8}D0Hkvye69=$QXtCGgf(SVFeku(nb7-FPGO$# zU_!zfk;O(uLBSUoCZzuRVgy(?!L?-9HckbpnwQ&5`BzsTsxBdjkz)8OGQA(FQir{0 zbzKy6hs~l-i#Y35)lj8ELNvK`#Wp7|R}N5|U%~SfW{h>?szWr_LD5kB2=3?v!N=9* zwj^dF$N%atI%%`-`DF$NeJ_KKiv(3%oJ2RVn=Xl<@6&43)R=Z8PlJ;#iXJsoL*Q>> zrl8+TQn&!U4&(X0krjPj-V3Arij4c!J9cXehu4+T@(~;_=?&gj4r9mVFv3)EcFP`Z zR`w{UU8XX3(-5fTB@TL$ke!$xRQCO6&a96VF=3puy|zrMLHCHT9XUpGc*wy~2@Z;m zA)*uo^8H|?pS_}h(%NV>n;GNdCY@e7r)bQ7vDou~*bANq6g3~+bKt<}KP66;gmyW! zq`vqz9Q~P&mMhxXGHK-X^nH-eKZfEOTk?K8`DXBMKyLg1VZ4EzsNQ=Xl@z!6 zVOqTR`vmRfwH#QMxroJ=9d_Q(53-Cj%Z_k)F=(n+DqfV7*n9dY*3&rIN#lDToS||! zB+qZeR3D7~>mu|l*~6QwgL;w&4pv*o&YbH7ydUq&^zMn?R4v{$yP@k~PR`$4-aQb{ z$wfCkN0#T!EbS=SovsLIf_VV~E+Xayl@4Fi+m_qi{Pzn((`ti*JMa4cO>_mmJo+4_ z2RDz3_ok-p_3_K(P8A1r@hT&mPPBA>?k)4U5$x-kXQi&c9lm=26&u#S=OUCr!-IKG zR!moSpo@B7M~;Dwi{sS3_ASqu9VqT|w!JYDP`Ep1UX$Gp^mnZU!B^-Fu56>j%487D zheq3fuBM<_0kZ>QSB*_~@LOdb^$lz>39>xdA59Z(JR9bx2ZY>|08J{G-wt$x5{;K- z7^&#%5A*YXGPMQ_jqXlX;lkn3(Z_RNHLq-kGK(yMehpqBd{t%%g+O!-J7r}O-dFZ8Ng2OH{x_he-UqDXSz^3|MMk0q?#48xv}snTerOYR zK9KV^bv2Nn*3%-!f&3iUO3HidrAlw3oBD@D2auD*c`*wz8#$pfww z?C|NKF8sbTE3OUAI(tPqc?Bu=t4{&+EdqxSa)Ii#?V}wMrq!AG5+!{$=(j|va}=qM zIzI7PdizHva|>f%T#8xSb}t*f6jQwQS6yXHJ&v}D9B3WRiaSYtny&P)-~3V3027RL zseBuVFIa!&eWeXOF}LeAwP^Q^^Efz0;UXxlD_^eE^|LfH+St-RJ3X@sSH>q?yMwke z$tAj++dWN03lJ0yKQ_yeD`x+Ay1H6^0wm*ou zMnU3VQ0Me_?ssglpl&E%_TDZNotXOh&pnG{AWuPu$wkjpA zDsxlLfGUoLQXxqA{_}P6`a8Yjx!K$(5+Y>_GbggX@2haX+#BYViCEnns^oj-1@c=G z)BWh@ERVmG6xo#p@9VI`ljvGVNZ_@zO32C!42M%OfW6kk;LU_EF+`bO&*4v5OJ^MH z$8<1N44gtOq%`DJ)@WO_YT6l{DI^crd_SF}YZbwK|Q*b}}p^~+rWK!tH|X5U9}@J1aDh=9J7 zjmDu;jX!g~xYI1vznauyP$h-Lq;xikNVYX9T- z2vIb3E!oS}#wCi88e?e)#l&Q1B3ZJB?6NeGaEYQUmlW67ch{s$lNif{YZ*&p9}*!; zM7HnS{VTrbr}<^hIggohKFj<4dcB?x!Y$1X1nh=hy><*Ca29>D`fK%~nPOAUJ65FJ z+iK^onZq4%JWk@Ah>zj>v8Gj-cvdcwZy8jTWNA#PFKJMvayAvyCOW#><( zedCMwOJ>F@R=B<=p7_MOu5`vd8da0MgDtkdm{62e9NQ^Llx#8NKDD6N(+{SF`sP|! zbnMF)*x$ob)*2fdwR;}izhGlcAQXSlbB$82s2{1c5&UT~R~%`sHY^(`$&zLiLCYmo`lJsvLF5|twf=-Rh z>`Tp-@E1QDsM(i`Tl>1ZrTFM{v?CyL^ZMBziFh6_W%O7F#m#Pd6W@;Y7=&8MsuoSt z2dan<{*9zD*%XyDl!qAWznnNOA8Ci0)^e3amD6gI8wn-RWH>#lCHAHBW!a2$8?ddc zt*xj0Az1W8`q}@~5yAKQ+DDK5VUY5Hu8oLDiuqNvX*p!A>D{+=|76YP;`l>X=7`OT z{$HSAK*0~%(%I13Dnpv{Fhds3*n}UW4c}$H32Ku1Q*?T6uK07<=32@A6B|h3hqwLh z&`{Fo($+o6*E;2MB`tN{A+{`)z) ziDj1Mw?5R>$DQh?;kn8yWaT=Z?0SJY$TJ-|sRSU=!g)xEI;6848fh{het{OELYlIx z=%iFqi!8q6&6p_g;F?X%ffU;~v3zw4tik!5im(g51cg+M7qFF4uu(OBl}`{9!z)m- z=bp^3gl(^yLlY$p8efGJ91zD@>1Q9Z*2h?tbO*lc`_3E7<+QftC&#o}5X5zRUNKVE z*8>^;O^0vpZLZJkomL1CCcnN57OCV!75eGP9c?F|Jz=w&j?8rxyhCrK(Ol0x{T#fT zm4Qr6KHa|BBI7I9a*sZhdJpV{SUlpvMAo+qw#&k5=MvGspjK;olMn5lvfY$;i0w!b)N@)gFOT7gD3y276M44nt zxTA^Fr;q0`TF)*sUZtiAGq~Ih4Gm4NNWuj4@;RD602Mj-1H~Zq(r914$A=qidYH)6 zYWGy2WL(m|Ul1n*uVJ;dN^46T7q30io;cZsMVp;LdvwCk+>f#chm(PS@*i6By_9yRk&ek z(9vBZxY}<*IVZ9xZ!27S@*Zg@iV6$sNhKvSAwC~S=Us5M$uZ4lK}}XS@3VN{NJ)BuFwB?6b%N#11!q@v`)V9 z*14xomA0+x3cnHcv=W!I%4Uwt5}+K8)zShtO%wgup&2C|>!R_FCFh9cgFb7zb3YEd z`~R4HKr<~=kdzz)*Ns#XHv#}EkVAcpkMH$NHl@8Q$#0acvvc~W5PK$)MiW41md<4N z7U$=G1%Pm22Do%`x|~J-iWi!TNR zHIyX1>agwL>sh&Xyfn;pJ83D8`jn!uJJRxBu)btlrc=?bP50t7?S70-&fXVOB-H~K zsSOPc?d`ZKJcHwr9gQYuZ;xxnt2EyB4h$q~-xzWKK&57b)iwRlfxUa6_L5)wLP~-C z{!5jX&Zlqld&9~bdGoZGh=>b1F*u49NFabyY`X2BLzub;hVTx@+s+-CcOiOR6?o#G z{;DQNHXGWgmj_hLfwkTKyT%jNI@BahWF=#?_oBx=+}%;4y@ojX7snyr6_5aJ8Q{|d zbWm`c@*8+D9|!XXKwO4Bz3d)o)x4kcw?j|qf~-5oKG)uTnaAFh3rYJh5x`3a&Tx2e zA$bBB&9lfK-)Jw~;Z${qmlvXl;Q+p@nwpxJPgCmWr}QZi51MjL6-}Ez$>=@N@k2I!hN9J&d5+!$v9NmhQI4EyKX7x zYN{*96F`TO>$$YC1vPsR@J-?PVg!yJHLJMFf8(&WR2OLcK<{oE0yGjUZ??T6^*-0T zR1`?5W>);$9OARp*>A)r_sS)-2s_TVbZYAByTN=}IGd=LHn+aS0%aXGUS<~O>A3)F z3R$Olb#--TS6F_uyy(SDAQ8}&(HFWtQtl7?k~~h8YfxLE@7C2p8ZnNGD7kt@NofVR z^@4BnKMxH2m}TgLm}z%@SWPb{K%DBmbc(2h{1JJ3HoHkk0GS+1eB6}NP1NV|_I1-G z5i^H)kWrozb#(_zZVGUIxcpXHh9YU@hd(cBYsGh7U4kQtf1y;ZerPmI{i71bP%q3u zkAi7k317a*coq;ET2Cfl1Os)zB^bCnc6P#qo+E~SE{@w68F_hmEe_X?ZY^&23ko_O z-kHP{rcADN^2@SVEQ<2R`%9{-8L6q{5T!hbPXGxg9+=Ie9Y8ptQJHTtcGWM;h?9NThnmTCXP?&tmy8m7%*( zse`{1?hLY;ebJx>-5w}wVS>(6#cd0oVr3L+{Vwm&HBt{qMCo+;&%=U3Lj5q)^!1rR zu)nD(bdfCpH`ugQ9Vi?7njjw#6qMHLknrS*aX~MTup!18=!4r_=4NJVtE)BD)q(76 zBVR)!RW%=jYUPfT6SU8k)mnN4o-~JqgfN-ROl3r%euKoApMOArkdP3hM^_EHQ|<&w zxdQFm+8RiC*REY#R^!psi&Uj%O!>SS9v)u(@9;%ue)n!LHZd`=wH<{X=)k~wvL}US zQT;$bMELKq5Ivo8?QdWzb#!*#tyS0m{>Ry~CHeV}n_0C?ZK?4sG*y)kJWWRsFF4o` nnuth{?r><5+5i7O?y$)n=o@cLmN@COP@w<6sr!XhPtbR#9TfFRu|-Ca^j$4bW%f=GvSiBd}~f;22hE#0}m z-qr8#ckgrmyU)G<-aqzzo;~k5=RIfU%$b?b%zOlCD3K7-5n^Cqkf9Mv)r{f>o&U~wP zsy-T9{!&|k`CHq$TVXt@6ZN*8Wc95b51GgUHj9b!qsi4p+_>l`)q=fjZDX_7?()Sp zT#;|8=G{?==^K&dvL?kxA4=){R|!_j&pWF9lv+$w2hyX)BRivwL01~v$1gG{%AmL9 zvmYYm%{_?%wRIV4EP0%*qc%3Y>;xR=4}+&vb3ZOFR$lQMBoO)9%fO8 zd2=+$C;o078FEr)@X1)cQUf!BQoCemjnZ5FE5}a`1ylW9Pm*FL5i_q%r*P=e(RZAi|7cQ3>FNPSF&&Xa`*Cl8`%_=q6^wTnndFG47m@n(5j?9ef>az;!y$Q1A)T# zFj~q7va(vK1X|efG%^&j@87TIrdg|~8us$$Y$DgH#7s;kB?W}XI@=FDH3|aT+uPd2 z)ZX4%o|{K!e+myhKgo3H32oSLS?LOQ&ZgaTBFoLHbS0FS%PS=o*Tb&HOUKZ_mRefc zq_K+U@29a+1XN%pU>c6$rqj-E=J1}_LdQer4utGxYgyc|`hu@Rd~^Qms0OF`y^ot2 za?G@%Z9d^5{4zDRrQPw{K3K%k01XEnTY$%E9$*izvS82XkqDOG z0!!m)=BgUm5oO7j7yo+qXPTz9w}cjF3?uEVK)n6I>)OJ8UbdQ8K&e34>vgTI!UW% zAS~m{_~;7!J-=&jsdN8M!||0x^RQ%Ftn@6#kqhdllt8M<0yQ9)t;RBqB#umt{7;oyg`-Sh&i zIAZ5hb?PiQ&YAawNLw1bf3%0beNs)J+nfhBxWT`o5KHRSN18;BRf*|DlfDryK7qHz zz7mSSnxdz|xWF|fs{}~k8B?am$Op%1{~Q~Kv|`a+;3Jl-e0>|k#^Q{IM0gqyJtCG+=ZhOc4>s*dFM>>UX8Wy;zp2yPm4&k5nF+uUN%anwZh z>p+e-KJ|?CNXJxX^=E#!hHxXeY|gz-Qf3MLlBcu3o9Wyuf3u`;10KDKyBSm9S6|>* zxHr<8c|3G4YOydTI5009_UKt6GfB|LdR6VN4gkX|JAPkB%JO)_ z3wRLynb#?c@4IN9H}$hk;EEN4%*xRWZDw^UqnOA{rh1c8{rf#USdvwqBsv!ZJ1aNplkzstkA zXpWjq^G`8$D5+b+x>%3i;GK_QOTE#tGZT4gJd;j|2Y{O!L8D$H^#&h9y$jkEqCvS%p<2EpENJ$3 zQE-{(@U?~B)|-_Npe=Uga5sf|>8kd;FezbiA9jx_7nbJDk8|#tw$7~#1jjin!#x8j zF|vl6hJrLhv?Pn^;6Nsa^kyZU`6{dqoGVW~c(>!hWVuS#+#qA1u({+J?_Su!U3`gg zNJ5GR_Sy03&7_AWCY*SG8RJTNg+nk9Z_mt=q&zG{njAr2I4TX0BHoMW!1k!Pi5rZt zWU>ET-W28%p9SBp2_xO1KGk28#QPfFPb_f%`Zyo1hJ?YHDBjT~`J01`?BZ!(+&qEs zMPrY@Z4kRx>^%3BhrXXR3xE0!>Y^}ba+jJNAY9^<(EZS$&a)q5z}9*Hl}ysG;~=1& zhCH_!dpU>kGOy&;c;(R>qGdEi?atp4l+fF4)ilIMROCv5Q{sJxh!;<=WY7@jF8ssy<%Nh;l884U!x+`D|kFdzU{uy{&hS%Dq z#EP_FbLxEKSU9yFN#RVFd+`z{E=l znd7c5oc3^9s}beZE~ie7p_~S$6T^iE=b=`d`>c*B7uEPi84*Q zjfn6d)`7GEqa);)7|6d9)zdo|c;pOR-zODZZfPrJT$4Al1k8JbfW{qNp~c7gW!#aA zpM_DQ85N@pl3cGEur$A!MX|6G~xV+yJ%76n(o z6XgN#M}A9wu>7@42V{1AXT5OwY$qVJ9%al1zAG;sYu01vmfCCzoe6;9{)ZwBE8TV%o%N90md zsdGbl*QI8R)mOwD8FTDdA3zRGj`J?LRZ9M;5@=pv+Z3+V2u2za z;%$-0ehWiPV{bQ3sf|sjx}DyiLCrKPS2d5Kq{;}Sl<^C zYTVc#{4B+D`6JtLL5RyYWVQ+a1%NwJ;_yEElX!hmwE_^1Tu3?Uz@{6Bmp8@d(AHzW zttfRyt1xj`rScUHT@H7m$LwA_F>`CLd1vemgc~BAej6%E_<7-hKXV9e>u%Y(skY9R zdA-7P^fFCMJpYf(Wwwtw$_B8Hz57&*`CQ|hOEXV@Yu|IvEjx6O_HZ;f4i4d*`KUPP z(Lo#o8;cIUrGN~4M}~V2LAUziGo=ckN?#Kb&*apV2ZrO}r29B$?PqyDfU&Y65af^54KgQE^Dj@)IJN$oD4YJAD!EX0?P#w-d0ck)T`6< zFy;WY;8=y(op0z*q`@!s?ZD0)dSposjM<{ zn8<(j>#7ZIjYQi7kN8N@Cx=F$aUF28G^o(#a?NMs=+QN0@LrZ`qH+A%7H=P^uN{Ir zx|aF5K`eBkw5v{#$O+A2K5afHrLIrlP!fYtqY3%B)R2dxa+}|V?#G+TT{}zmP@osB z;5W0
i-KwBq&%)WrF#z!!+q98JH+V;)EwR=h%^!Jy(t()Rk*$&Vun<|}pbr#SU zdFEU{uybdoWr(UwFCgAcOM!GeJ*S79P(W(sK8o{bl7PhBWZM}FlTZF-gE z09Utjze>T4Er^SK|Ln6om$qh@-XR!mrlx$)4wg7@pdh>5qOy@vviKcLn4mL%tV5C5 zL|iK)q9pe1cfLxV=Y$$>Rb~`KL_Ts?#u$K>#G8yOl5 z=r-0zVS9XZ?aP?o>y|Vs&^LHzp7o)Zv`M4MMBeVQhekjSu`7Xil&tC>u*dAch?V~i zY3SY9$*L|PoHv$M_PK5st!ysKfob)|e8Xhek5X1{1EEgW7RZWwV295NAFaZ!^x`cG>(}nQXSy93k`@n{d z|DEXE3~!pBwV<}fW&isSkU|#NyZ)rzdo~?y{P}w{{%E*+3n@22riut9MTJnPD>b_@ z@4UaDIunen77pHiYe7sWj5z5z5B(fTf!vZOfWMGzsK=Bx2?(H>3ESk8>tmu5U#`o}e})(1J$-2qK}->$Yi z>t^`zOsrfj!w+2>q+MrP-djsfd^%}TvCC}K@PPxWurdoE|Ab)Mj7vD>h|AiANLjKF>;U^XTi;l_iiJM+) zim%Cu1&4CibWAl8y)*)r+Z8yH9$^%dL*Pyq_!F z@5OS%8zB*?O+QaMhc>TS*QqW;2*YXCySgM})5IUDw@xRT0Gq|tzcld2wu<2zJe{w@ z-{90q9KUF8fP{WJ39KW|OBqOa&f9OsS)#FumhMy`Z+i^4HUCFOQt!tZZ2ekIV^Yj>OW7B}l&-y2!2NojdFw z&qCjK$?9#5InRHp*Y(-En7f~Pe}722+woL%^QUR!XJKvyQDIFiPK5yaYKM4Q*0Z-V z%&OOGQ!;w9U&#*H4O%tU8h?onn|+>J;>p80aR5scQ<{y>^P|10k8}L(XxXU;FHKHH z+OKiiW!<^pomXXkTa_H@ic8y{@di;3dOu_GG;FFt+Y-K!Rphs?sAOm@*Z5JzqE5Yl zHvWF%(14u2V8K`djilCu3zuI;wgYE&AMa)nPJyoEZl7bL(O!uU??!p;e8I+_?3MI++MIkWuHCn07^b>)suYp1%8-`;q*8 zNl=2N*r%tkDMvi*yuo#z#&Ny*w_P8rd7eGckbC{n;pK)>@fdI3z%AYoN&sXWnk%-B z!M5H+{v4iL1xM>!p;!TqMn|&sF1>;5!SmX$)fz42Hl0htm7&-oj1I601g4axXwJT9 zqbAHQp5Jy|0Pl)r$G3@OVOjxjC^dD7<4-dq`i5&+oHdbtlVxTLas9g-Pv3R;J$AKT z$;>5T@Y@?H{f0Xx!DvJL1l9}1wd!Y>M{9#OcRpW#jF%RwZ5GH(Uw8h{{`5J-2rRx* zwdz{7Zq?&6Ib6Cv6p73p@%^HY!>OmOnc7`ccYIdeI7lPFb~f{#X{c&oTsu!Un09LJ zr$+-QeI)39bV8XWFAJQPSf8wyqM6`MPfq++j_TYQRHpa2j}b^D1}<}UfROV0PT+Eq zk3pfP8Vy_DFATDbfPdO_0+LTy^ThT~VjW+bT$sw_IelvW(FT6m#P@5Fps4{8!F}V< zo4ehE_YBIT+_14O^_7R?uVp=QRK|A-iHJ<`%7sC`#a%~M?hV|`F6R!Xik)J6RJCxR zO*x_f@wGQh7cVK&C*6T#cV4k-yW78V%5?&hwN~^6m!Z2~>)$ljL$+8+sy3y^=g|Ig zniI;c9#W%zdiK)}*31^tpZTy~h5$iST$$%!V)q*?`C;?Aqd=y5Z-7;Hf7uD;WPMy^ zCA-dK`ZR27_y^EI#kl76^IvZ2%k$AajN`!;ah~wq8k*q>3Bt* zoxPC>a%H-FnXu{qT9*ITv!ULXWjxv{jJfdY`Zfsf&D8IYVWh9cG73&Dz`^%^C5$2b z3n;)SqutN{MB?TdB%)*GB*eaqYJ*t=s@rFH8CAgM?Xx2*6kT6&g?3aIY&M#=Yk9Ex zL{=EVpZ4?m?Y7P^avtLZRXXC1-uZE1cE;5If(Wlok85>haM>bb;=;Nfj#>beCa={L z(AyqEZ<~e4Ww~(LhHfeMM3A;BeJcetoyb)3+gW!;+M&tROh@aj8ID(SatO_imso4p zZn+OCHeSwfQe)>GB)(|j+n2)?(?;h2pqWA$K+Im|SSDtxBYavXT3_a$G7H5%V*)Ek zNZw=abYGTR-ZEu(p6pybg9?Rkzn;w|lxf`v7%nZ&xiLK}p3%bUh%jZ`bjP+~U|O&lYo9-4i<*D}FRB$B0@I3?v?riw*BY z7(byab5Z>^>+a7$V%sHScbdpclq=(XF-;w=n({65b(~n!=b)sW)XrB_a!lkiI(hM% z+Tf{bT>xD&heE)z1};?$+Xmk*Bq&srPZXXJvl4_h1Q!uWX#AwiVjLTALyuPnb! zklJ_?%SLi!Te*+Ua&lg1j8mvMret^1i+FP2a z$nSYtfYk4~s^n1KgKp+^&v3Du1W;S47Z@3^4DP`NJUV zP|Mj%pTb6NoN^qC6@t~lFTPpRsHf2#e!~6y5_GVjq@~BcsOIR}SO=~eZ?;BGj+{^0 zOOxFmt6UohZgIckfbhwPQk=*d1}^hxiq?!d2~Lk}H-+7+K*w8!>+aDsbfSr=k8n+D z+|M&C*15dVXzct8Qg7#mKY%H*YPK}y?|$*Ifb(++GaCHztf}-);qo!O2>LoeW~G&w z*|_&|kjs%s@IoZ_=0SBhIjm4LWrq=%FYbJ4ztSlg zkW~fT%JzR?<2ru0{R+xzN3w2PFsUJfXK*(eU@EivVf&7O5xQ|%Jl0T^1GxDGmQ=LG zC@Y!^323NXND@L@KViunM5473RzhXBh0Ar`?tel0vsCnYWliH$e$9+kx=0J zJ&moZAuPC6S4S4M18(Xlo%e@-skFRDYiThDkIV`O#vc+XoBGwqJWw>-`AaW}!C|D( zw`tSoFR~TC#R^X_5ScdLGG$JEzaDtJYi%M~qy1C1OjNH6^!F+`n@xOTPnBJfzE%F# z`W2O8uP4XlJKlQ4bV61D=y9t?8tgu8lY1vc1IG*GbcYfXfvc@w!=RJ(XyQpD_PPvY zgyl6t|9Fhv4l@Hw&E^=c=y!VVBg7~`Wf$qSk_qBB5<6;t;~@fW5@FnpDbz@v!8BL{Nr&PtIDV*sUdz+itpgn(m@BqDTR&N5j^*Yuj z+?6$>tUdYpJpkH!BfP>AAYFqt*=Vdb`Gh`mJ85pOWa^}yXj;mLp&KV7#g+aY;Phi~ zTHRgdv{h^{FlO@3sg~aUFIWD)8{x~ua>XG%zIa3;9Tt$&W9Q1~PC_w~O% zXK4gI-e)e^6?WnKZ4>(c+iq)W%PEM52Co9m@GD_?wsck_D=U5$|6U6$>eJ1Vjh1(j zXE*H|tPp@dTyP7zw*1e8|7QLFAOCNtLChDBifYE}_o`t1%XM)VfGNV~$v;j-6P1VE z18S9<=`7LaYnK)MO00`;?_V<8wj>*kkl~E&Da!w4xiB}*;>5n4IW1_twba;UVCpTgZ_4ib+_Oyp9 zti_@c`@h}SUaSl(xkUcmn?BytF`N{6SU$bPWMZ)v$&C>q(r4DMSsm z=%DQEzFP&Zm@tCHF62WEKj)Z}VwxqLrS{{iB|7S6bv1#{ z;fPR+;M-7CTM@BMEn(-rz}}~O$BwD$-TqL1um};%gzx%cD@^I#MJMTO5XRVl>l;Zn z#|*YU_Aw7=s=^Z?xDu&lc3T7qe`StWlzY>D`P?u)31f_YiYhCmpTJ^hTlRIqXt)^$ ziWaI!i>3@(9I3e>NkMcyWGP`?x_$RH;Z@-{;h|V4l7Uxx0Cqq#W*nAy@gjBxR+8?N zFySms>!S4g#ptr%jn1^@93^kAgpc0TyS^0sjL}2aW83qM(z}wh^1*!paV5cG+MXG` zx@s-9n}FNH=K^!xej=OGu*9WsWLW#VdE#39BSrJq_LDqdN$SVNVI;{9{P5fu3B?C# zu{sEr8WzG-?e!X8rDOUKZ?zNpeNhmfyf}zGn3V7N-LpoyK_zoI_^#(=&px=u(PI4_ z3gbvHfV~0}g})04Y<+q}9B?ttF;IimK|WtgSBrImXkqXxkJzQ59&45I2=0!)K~5$9 zNZv)B_b738pQ4Y#P5=9z+3euSOzG}#k6p|4)}aTI2cgMp-`)@W$GN8KrX!k;9o zoHg%dIo7L)MHKz&VZ)jZRHb~-A-YHWFP}!f0+;Gyf8#jn~2|4&eSw?*~5JyCe z^RyW>^H31JAZgS{NodiEIYJm}hP#~g35gp}>JVrKxs4YlTj)-tps8c@3{Q&McR(@$ z^wbhV39pEbkd=#}oLeMUZ)Ur+>YYi>oF>;yWyXt}_rfU1G_`=fBS)4FXYtJkKJuIL z0kBS#TQj|-BAcD|y++xv;FKNn(4Y`Tf?{D*nm7;{z*Z|1HjG=R{v+HdOFGIECjM}s zm}3TPKo_+%iqphcR>P;Cay8%dcs%3gNgi|1$?Bs(*7!21B$&;lLBF|NNRtpy|<+J+2E@PYv ziXJR_rek+eLHFezR@~Lq?t|T&i6VDHX${P*f;=f;WdPq8&(Cr;P{Y-1SFGg-2_hfG z-ctdJ*o3;l$3cN2Tl#E0O0q#~C1c$&&dem|&f(k$l321Uc<;@V!bNfmc!P3_b6@ak z%S(B2A6aNhIfY)Ly4+nT0V;_kw5(`LN(>waxG`SYQvMP`7WLTj*%5)cO{`sN^qW_G z{Un3rUHH(1=Z}_mS?_VfAp^WkpG)|QI^z>8{$hwgeaAM zg?T42h3emUGd1w@{*Nm~@UXI#iWfA*!@{oL|^kVLedrATenJz08`*uGz%KN!p}*WYkbo8LYj<)+Zl0(*2}z z3vjdb10A4W(<`|pZL$J*IJmMXyr=EbmpNpjf~kjo0NiN2L}tjut~HJ`Ih-lVpcps! ze|L=B@? z3*;MYZZ3{46M8y_F5>Dv-ag4d%*34U|A0S}J;Y^;?+-VlxEP43*GabZ*P169%Bv;Z zkqMRe>{!rUJrtX}Fw+IAZ_Cn6;3d~T>+HAhTP8F}XD)^1^D;rJi5XI-aO%_L8x|Iv zl@ViBnY`oE%=n>iOARY7$UVB@R98IYC4BOAM>9`1#>iC3$ot(^ob1|hncj%e^m(lmHi z_Rg&GR2uAA&aL?{_1i1^-8=(YSj+DDApLXG8RM1vl9AVg5$+^Ye5MT5Ts9^YGoj8` z?PMqQ70@S-Xc^~QXph*S#{%CJ<`R+tQky>h-%9r=z*u(f)@rSvZrmsT*fTWR+Xq(E za~8`5PRp--3!D%zBP2liFJ5FLTE`T|&kLPUmI%?sxOi>)BKIDY+}*fdqlMs!*CNHz z7S}tduKTkW`umab+%b^Lb!)*yf9c2)%q5i~ez6``udHcf-LUPOAWDv^OWL0*pKq-d z?tRk_lq9dk=?t8G?{XtAP9z3AE0-0Gc}+%W5!PtsZ%gdDr;jbEQyNK(UG z<=jnnb%NnDF78V#L<5y>_Zth~mp`zG5KBJ*ZQEq~*k_+pK6$d!k-hrkixLAbSlh5w zj>%X>e=IcKi?Mw&d_?*s>5ifvbe~ioMrATGuF(5ymy-f}+wV#AoMbo{7FT?~!BMz( zDcAZL*iRFxba(hFo0k5p(sC~6*MA-oW!jq&t3_u^#5n~13f?kG9?9IB0xqh3J3 zB|5+0M&2Z~g}K<6&ohNS;8_nkd8m^*rBD3n#i9ExEwXUSfpj7cFmGWYx#?f7O*|0t z^qJp`;@zHIgGXG^{aV3L)ACQqfPre!*0lY)zevm`_Ys#4zGn(>1=SMa*~j1aaqfa2 z=;cD!cNZ+)wj8wAfU|Kdn@i^+GJ07j*Ae&nJ*Ivc{J07 zuoXIdcBEdW%lRjVWUd8mq`j-D%pL&QwTasF^%em|7X`j}9`Hyj2;Xo8GR0Rn5zcstlFd<~ODZNXZa`P!H5j0XKgE?!M9 zw=hITmNHG@mGO5PJz>4$&R#1RCklnjV z3fPRlqiX zKbYxh0n*N1sgVM%Y$55#d~+ooE4c6etiEw=J1GuHCYKeLqIZ>q$dZ0tc=h3OMOF~M zg_MLLgrdnT43`qiLN-(+7bU%FtQl!FssHn)4K{6i>WOl7^qcx6zRt(tgE>R*@FpppL zQeOE{n^deS9N^6)Eyuhou{~{kW^s${k@S~`J(BE{Y$q&4DH ze)W3RsE8U~85^u>yL;T4FMrqQB5bp(d%mfLzwyWGhpyKPy&(E*pGz0P5J?7q#rycj z)G7Q}(L9J#4t|wf{<{rMD1kwIIXb!Ez=8;^hx4r6laArXmyBBtI-+>lLc^4ozaZnhsOp_w4sk1 zoOGAD0@(hbZ4ALm!-I&?1CR0`Cg{C8W9wBT19l~JpQy6hz!+j_arz6NhqVdOPZA`e zQ#1ZTR1tC`agU<<9Fxu4#7CHRkE;+6kd?ohkW98+l85u>i|Q^nKhWFvv9jAWz~V%*@692>T{N-lYa*L?z3xy z*-z+l<2)ED4gDMWgMU(;T|Y8{jmrF`HH8tZJ%$JEWqMi4Ch5c<6gb6An&w6I7U;(fV+=LAi@0VpPti+4hDwSfKQIH3@fyuC!cvpnvFJ@%rw6QjtKH6CEe)81%Fuys- zh@zxO3ZZ`f6wDY=xu{wA)6(5={+S2bsI{&LH{KCenqHRF(w|m~-JXT`Qk_L5%iO(q z{Z%aLM9@*`sSO|GLzEd~RO?-)W%YSCi{o>O$=;<%OGLBm!8|{+W=9N~!%1?iVf@__ zIa(i+*t;m3Oq5xb(Wx(8_yM?+$(HtngynIq#9h;GS{gHAry)fb~&-{`d6N;X_%{4tA;LS(h?v4CWn zhW9n#Pmk^%!U(+c)ZNWWi-Sb8{L|PI^WsyNOZT%9z{KTt3a;2*AbdHsNQMk*t%F=W zx%02e{4emHPFGmU#=Z)<_6q55M4Pf`1hm=`vojDKWWBRso!2xGO|*<1UQ`bvj8&0N z-r=l5``V*!d-K3; zlXX82EOcCo-?`fScoy@|Da5C z^g}5;7!-tj1)g%DT`{LnLiHWIMAxFk{6m4!;yGe|j7`WRLfYD>L*#CYKjXu--?`U){THJq|`UkyQMPvSd9MY31#n3={R2c5^ z0llP$R{_$AW@J}`J%W8S0`Vf)nG64mr`w_PC~Js==voNLn$)s3!s^a6WeNZc#EbYN z2cc>4{3f>U=9Fycd}WLGBNVrb;vV(5 z)=a&1EzB$uHI5-v#p%o9=6!{FW^Sq8TBQ||X%iOb2$jHcV!nqniL{n3Qc^TD1x4Px zN|naaz(*Be>>28inhUIaqCzgzNgkzzFu2BNHDA%3!`o#4i4i)cMpOZzwd7TA>IC1S zxR1uOtqwKrLt7MDk!dJby#C+dz!%r3cPrnsJ@{g}J&kf3Qf{TI6j}$;P^g)r#k?WZ zWfSny{sfha*bKRJth*N;pb;QO zTZigpSX-ZeG*z|#D!R^L@;a1WtTxXOVHT-hNO=Av@v`VLU^QgAA@GY`RY)^BlPA@H zGMH#t?A4YyZOhAQH2m&27J?>Ake6a)&p{XKhNfG;>V?Uy7OYuLE z7Oe39yTAmm^HYslIijcdcW{_2pVzm9lFl|+B8gW_SGIcYBHWgrg)oktf2s{(KcYG6 zV-*YK>WZ=aET$6OAaX=v?r6@q!nq>dquav=>R$klhSf}?1GR4S*{N*7q{9GdLKO4s zbAfq=rD2`0Zg1GZ_Z2_$gxGyPEMI`M;-y{7Dc1_YSs<<2J-#tskYn<=6_kO9n`95Z zAB_=*5h@2?HuGua`M0=IoCsEkEA}3N1Ym@CK@oEpYb|UXaEN{X0)K1F|H*SH12}C< zdxm!h6Tt-sh8+p09YYA4-5YeEzS=R2AzX}k5sP5z#uCAwrCd53)V4sKf}<{(%$3Xm zt;E+uwGyilvWbBaw4ewwXcZX4_Ls;I9r`11K?pHi{QEZ5u;Cg zB>#(zP4eJ+GM$+Kee11K+z405rSn*wL@g${T!kNnU%e&rkFtL)|Hjn;PPoDk zR1FsUTZVRP`-NZ5^G(>b1RIWy0~3Ri=a0Zqo}j@V73I}B+FG9&?=jhfYLwii<7X$- zVe-Zul43@RJQFjQa1px$Q?eaAp{yVL__ z&U>h-FYKcVqidzeCHbJ01>+9f1lHap8Ni{f$l)A^QVQQ;UD=LBSMIqgLbGk2U6dUn zfh7;--fud(D3H~@v-hkP`EXggBi!kxuNdQ*R0d+#P&9q2OW5#{;&9KtBzbtD!NY$1 z)s6w+t`tsjUt=ljCGA7xy$S!tp(UdJ+kJtBujr-y7)KpOUjw#2FWB{RUv*m+n*Ez= zXPlOKr$AfF=V2^-qDTH9WTd`ST$BL_DEr-N&Q4=&0y2Ja6Y~)nr=iQm2)>a$K|``^ZU*&I zgjeL`hHG_6m`a7;x3q>XaBbrDt=CHn4!T?av~fJnIMUywT*-tb8a+GEv@Ue(^o1Fw z)Ds?=5=P-EBi_NBBsD)?z9eL+h&oRT!}@_LvmV%^Yzl2G9n;j|0iQ+BUWkRWNo|SA zUKG_z>z3{%MowK3n<~`pIWU?LBZY9P$xxvQC#TLByN|<5F@s)+Us_rqFH@b-7v8#z z`7;G4RB(@U_#y0;wCdAuB-KiP$;cwerKUFYI@X7Y;$pOv?+EGIfP6p(n>Y|2L zCK(@F&1DVd6f^D?=3*ST%qh!eJmYd9L;lL894>U7C`N?1&_IKzqG(I@rBdqaH{QFA zEoluZ?acH74AtS@_*lHtn}@*5W!C4 zI>epeBrOtLfr9%u2kNPgt`H>6uG*LUuckX3Z{(!^o$j*)GAR;d2}b-jOkHvqy% zq`_9)#iA7U)k=?6-nVwqn}Dx}F7OFljV(ih{czUEv4l zaYQ=Xv7uu?A<{?0MiW)@^Eb3(6ZxxJlWEc6C+JEWi0%s0^;%}fTCxo#BR>E)oIS!nJOt?^y2&qspKylS&R#r%%FWb)@#0c~e_YH?+wb2Q z>K%Am1fr`$ANrA!z$P6H$VnDMsi%br&Ka`7*Y>mNb}P%^-d{N6gPyXSx~ zpUAZ)q&m+`<{EQS!ZKdT&FO-9>Ld$Cj0yV;DPT#^9i;7S7t{GqSDAe3RRIfR^-vSy z^O3XHD2W%@V=bA`c#lDa#-8r?V0MVB8dk9QuU(|WY*+AfK04s-O0)|n+09|I2?+B9 zMlJyDne%_2`>&7<`RibI;&Gmt7K)zzIRe2$EF|v__@LFS&&W(;NKhL0PD1T$80Sz>%ev!Uy&Z#qAt z85Dc7%TTVf(nZ=yFaPj@?$E3`q^4BuR*$62w|OULo@CPiQ_{?~2=km3EDg|-fs0gZ zX{@K``r;EksnDT-6!-CH5>nyicmr;lEKnaQXKID|!Wv)8pd9UgXwSJz+Ji!Z^`-e4 zkkyroMUBl6W{Si+rzT0lU)QO&eMxc$j)NXF8E;chX0*m$5+mtvbk)qki^b>T-re?9I4^paxd+6hg*-IWnGD6fWfFSHT5UwE;O8;9< zn1Tv+Rjr6AIqv)bXRujEovfZ6u5pSd-DOp7E+W(zD0Cv#ns(9|3%J>)+`196d8$AG zdpib|jFNbAa=}dvRkC0S7+#E&8r04EVOTigiSPww1frApi=PK*DYRY%e>_y{=tk#O zR53I$zx9;ry*4do_=@3%F-mm?#z~=+SRS`Z4b}w&K!IM&zVf^$4bPzZGR&s&UYK{5 zUy)(BCom-EXz-~y`Qg^wP*V=5V8N)rFnrsb&E}TzX3VD-SmLE7Z%#Mp=Z>>e_SNtG zjom2*UDCdZyD|4^1eNoRGq53G^uCZBW+iR-O%1EMq%x988I3B>K7VkF@hx=D2PaVF zH?rg9`Pu`4v!4$Z7yV%Bip4^AUroN#74??uYLsapzWyIny#-WMUDQ8JBdsuWNrQBE z*MK6SA_#~`OM^5+hjgdJ5Q0i0(hMllF^oaO(2UYKz%cM#p7(wKYkh0YTCmo=_ndvs z-TB-5>>I9<$5eAFKt|@nKj^u&kaeZXw3z4hl<$f`vy|i|A;pfz*vP_TU+@H(;^0?u)aQ^y@5NW@Bm2Kx?QkE*AAjhfveMND(Rn9ogjG6L|58D!f3$JZs#aIFO}xFBzX&>$F1enlX{I)K>)#MDyRT zLWj@=vDa%RRCj-ZJx4!tO+@C>3c%RmCdDxKd+YKITH3*!jmoMzQBC*=HE$W}&v1>Y zL&hQBYc;7hIcXu;vTqmWPx(q+eUbZj!j3U2(iR^6NIvMdKOeyNax=oh)QY*-brQm} zzqfpDc`nW*@J2PIi+Z4R>)a%6kXiEX72_!u>M?2pF7>}pI*ZyQrxX1pi;JxV-vts5 z)4wR_w9tNh6$j_iOnkNR-xFnYk%Os5?2-ODEhicT#7094I=iHlG)s{KDa22rC&$%$k{K7@WCA3TNyXyE>Bf#u44SDkn4LD_3t{~C2#(rlC(6ukHa%B6bPavj z9l4U?+WjxkZ-mrsF8xV%yb|fA@n3J8CN^X|h)0%VZO~qOVKd~rnddQt$ zh$o1mFoh^x5&D-Kt-<=81FZH=L(`6bFSuglD5u9!kTVx!48GGwEx`7&Op+?^S6b_z zepJD}8vgmOG{*#S&2PER*P)`}O0j;r!<#VW-^rxwlHeq6N?jzZ2k%DrBKS<2o8={N zf<^Ub&5sxdD(FxPIR2c6wAyW5`sC`drhd2|Hn_E&KtRA}DRyrZ4WtSoFP9(aOp&V} zD_~kgUw3@-OvcTRia!2>xG(l+FG+iIT`S63c|3}mJgO4&%W1Rktg6u3qlGLlloZg^tAWIwz^Vj*ZBRGXI=^eS-yf3 zv^2wCf2P6SMI)aXGl2g^c8gK-m-l1coYKx^PlA=11Akc3oN2?ueZzrN$aWai62y1E zdUA@^Ep@t+Yn)9O-xpcMm6~MWT>Qpqux1CwPdvDiWwlvdi8IC+m!*?>pGW5nVgAqe zM9h+Rx?%~+7X@mP%8gl0pPnp<5bivhg?PL2_oy5}J5z%2`?yaO!$?S&pN;foYZP7V z2Z>9unK6=l_HrOGDgn{@36?eVycY=5e6DR9`P`Vnz^X)v5<-@v@zT7ui{we={pqu< zNxAKq1PR&F{YBYy$GKtFDT*V`4hrSeKm5Tui!?d@oQW=i{^*sl5~Gr4qN9Z%-dS0; z5gmHVf())sj*W=93k;>sxh zOO}!HW|n`N%pXf8vTth5cvuu!yL10~INK!L9X^pIH3<-9ojWjd>f4@_w8nuj=ja}R z*}UZlm2>li(Bn>)xuJZfgk6{vvg>&?(8%$-%_6$XeGp;UexRp>vDo_AsC@{pbms^x5)^)P zJp1mo-)G;+;DVH*;O}SSX_07N1zBGI`QGZv>f7e&D4c*Vk z6+T84B@!(KCS5xvRMCbGO(@_3Lsb>sj8R zNO9oaiWf%(F3ip}U}c9};%(*wK~soB6uvoa)XNW+@#YIu6BE7y)OD*;USU+*f3bNQ z;@PH5QK4=##X&I@;;6*Z#~bb=UL%f|a342}NPEXxVf@8Nlhok;){j||pB|eG zzZ)yXQS6l4&NG8@2@G&4A}pDW#iPPj9HysMx);j9G)#r^M38gI1=~qgeV?+vEQY9; zx%3H;V%a{^{*#9KGATDws7W<|~w-^zO*Ic8JB(gWxKjcEuuN@Q68xN&aF?|{raYm{I zG=ohyxvs&~F>b8U1GE&sZ*)CksmlFTmEr8pY^kh|0w2xXIW5vUEb0m0lo8ePCBHN) zs48^3AK{r;VR_|Oq$lo>ILcCRto%$Im*>L-{M0r9Y4S8p%IGG$Me=bVGY0kX9GSRU zJg^a*6;{%7XI{3Fp|6{7hgla9S2Zdx71tN~{wV7U1@|kDv@Ax$z=W+fOO4s;x(7rM z`~-qQulz(M=O?qGu-r~g9)lOxK?=uNa?wY!z6wE(%vsqVZ6{|W;E9I>8{+UW*DwX0 zE1ZKK*PCk8{0sYrV#mxMr_a@_?~;&9BH|8QKpNvneigj(v`JP~?l`XG<#JTtpEm_x zTg%v|07sW;%N&+kcFd6aGLH|Ds!)9V({sYQj7s|ov7~>Yts1qed#G)f94eCK!Uv^E z$xn_RyMa<(6(D!VTi#M%Zi=$0`EbxAYJCty*@j z1xx2U0K_>3uZ#D%1S<0%X3qQ}L1lh#tmo8TlAXj%sv)cSo$A!RJSa6u8{~>CLMqEA z{p}wFIS`la|EhLcX3TuC`Kw0T086uS6=%dh{4<{k=(#hvT^Iv~!1R#ytx_`v)NG z4>n?-SKC(w;ax_d-g{B^e-+i^xLX`96xmsR9VoJ4Znp|Obmy*cO9~zR!Vlv~w^XyH zg(Q|}_Z&VmzM-K}tc!%%BXGP}E**Y^?it!(0#UN<^8GuYE$%Jz2ZjC$m$7c333NbP zG0?F=RI^C2Rp7ZUP_5+iwg(6VW%&m*8&gMwJAqoR?lkGzp8OJwAk-se@7OjAlQV5} z1FC9SU_RxMOqaD@r#?|pNgVKvu<&3Y< z4a9!t`fr6RXp&t^;>VVNl4$wQ<=0Y_OAK-m%`r4n{`C6BXz%gKQWrHqq-h}d z$qD%jXBt(|NCwvSk9mG?)^E zGE=Hb6WZ7*@40$U?t6ZME+q8veS6Ug@&H=j8Ty}v+spW<(DkWz<9%nf59$Q$^(sPw zSs<<++I5Luy-oTb`Tn%goQ0|GSiA@561rqv1pT{W>+f1f7cF-*>9?y`c!#&c3iceM z!R#gzocu-kW35j*A3J86Q7wMi;+JX*+(ec0gMyw78fd~X-M}%yzOP$sl9}Jn@ZZ#l zHi7;DmB`aUL_x7Vr7Y|)9ws5BxFw`$dBk|A)ADJykvs0mwPkW;J$^T)M7QXl=0_SU zDhj+%_LeF(Cc4Qu`s0M~Yy1Rfou0_0EhqU<>Oci`4yY`D<ZVq1y$U{+%sLkbfKOxGn{PX9jZQ4GfI0{2%VV;X|K*U*Kf!mNU?6RG zI&`(ZO8J0yS)XRZo7=dG1rJsr%(7#P_LwKK!=lzO0U_GVTk^P&1{9E#cOTo3&2nQ- z2z-DU0f1O+Y21qRw5)veb5~cK@AYLbgscuc4KCRANqWQfbkA4gl=2| z*k4&_egM+{(+qLP1W)?iA`1h>dz0n<4u5_pj7CGe{NA7Mc668R*w|Pvf*OqO_&j3^ z7eCqN8g3B>72~Etx7q^z03NC?o@VFo`C_aFhqKe-K3n>9`2MbPqzcW{z8Yyshd4OI zeT!@KtyLHRLm|HQJoxJsVpz5+M2c!J#jTiW?|dE1{a74Ro&c$y6oPIg>EH#NI4p|H zKIegM{cuh!kNo<^G(OO;;A=$X2n8%*0NPSkQ0i(?wIwnBc5RUXOw@tZJQblh3A_wu zS8z7uo8omU8moA=7-dkkg)+3zx!fNnH*6{2X*3yh&!W+qP^UZTK<+-9g~fx7r7|}O zER61mX9|3O_nD|L6``m+E1AfzlkmF}_kW$~jHUX z_2X_}d*~COQ}J(hDIP>rZHKuj%1+$9d@#3&%NK-P!6c1`XHNIP1n02wsXV9%KkYFA2wV zMI+;jhc&vDLcxrBw`D5~w&YGY7s!`caN-cen`^0BVd-B2H4kY7&kQSlhn|5QH5;?RbuTCdUJye`lEt45c@s5B zvBhO2T%M6$a&s~=Vmn3T(=I9Q-CX@R6m2Bi&1MX!#Bxx0;Tk1JIo?bN$Pk-Hm|6#XnID|DY^EfM`ye6Vldr`_ev&ffsS3@jI@>5{JCWFh*}c9G+gnOK~i#u}>>$y4{A zJkKAg%aWH%OR}~<>&|GsA8XSrSjqXJOmu|iNb>~9xQgEtR*?VX&7vM$9XQwWEKj3m zRT-nyxp>G{-hA@Gk<&z_gtO>?<|IuK$BNIfl)PV%W5e~$WWA!^X_EdGeGCn&PKK*! zqTKb@7nS!vsEk5n9AvyNAPhW%!c}d}eq9^Qde+AEhrg3b}!U|zTT=3|$4~RodF#Z%h zd!`CypX$Z>lRo~1o<9D{B!~P+ZEju?%4TJZ1_rvFdG%%bHge{)|U2pY770# zkL+v$RD{=ZlKCPY6t&jIP8D-cIANR5xV-?zQ_A74^F_>M{^-^KaCk$A@1$)=M%%nZ zs0C|(s-Xr|4Az+C_?LTr1NF#Z-LBWPqktXun$3JjkSG3_Bz;NOv~6XG`T{>F?M&pP z+_EPw-TUV~b6soS`Ey#6G*h+1hQm+_&Amly&WCduD0K{ehPT$K_;Iq@QjFj_}1-M;mI;@|GoL{)h>n!rebxr27XQbY00|Oa(1nJDH%KNkz~E*(m7; z=C0%}dUP5UwBI0|I31o#mF`w2{m@%&8kps~DTsUhMfbk{9)5!Y+UMhWXC_OGv@ExChn`Ay;7RDV77lr9K#o3Oh{vfSle!g1fbfKQPK?GT9yRMl^1oc@_tl%PlyAMw*^d~03 zEKdis9eod9hk3=$PsF0S(4$EGPfIrD3(0;_0;pJ5lGD4npB!JWT;ra`3{2feJG)TWb>+(iJH{&Nny8`4OfP$pi z%c&q=@)i}k+t9vEAzgDSzAZ)hM5 za?HAtfK|H342X_Vc;kF{##yJHsb}4}50hH(tVjguDM^`XdtI#@d6elHSd%Hgg%CfP zO!kZZe_QIbOM1ybEoelCpGH_QM;*5$+-e=8lE~4&!@s`C+}RjMu4~&WIUIGIfw;_7 zo2t!Q8p>!B_4XH~caSUO=E$z1X|iKaDE{-HpFuQ52t`~*{0q-yo#?q4Z)JGaZ{@U& zP|crk$RZ*%PRP7phRz4_y}~zY*z|>lInk4gw$`l3rNv=Ho?})&qVL++$?{8aIrhRT zMcbIg7YVJUIU<_PuBdz~+gdyc3D9dAoGoD{Yz~`;9#<8z5ZdK0up8tBe5mE}er7H3 zkG&XfwHUN!7fV=i#s02KW{OAg#8&Ks{i@o{?6<6`;fXS?zc(gA9-^&vZ7Q zgFwP=!49IG*n#_kqH5NyuI&dYlukWVI@5V_+?;k0DbpUJGfqszlMK?W-Hq zzFk7SHUtsq2`aE0Q=kv(JgYg#SI^3E5gL5MJ^eJy$}HnVo^r0l4H3vzJlLJScb82x zENN|f{SA25I>xR<5sG=N^w)*71K}=4xG0vy@MO}0zSc@zHfcbNsXfrYzTQ^(cNLUb z2mBGryh~Oc<<1ambNfqP*ZXPSPthkfCzR8_C`R5VmNfMp(wiSh_TS||8`6&d{;7>o z&l+H3(t#vt#Sf1CnQ_uf(L7u}KBD{KWStlJzoRwV$Cf9pdA%0zb9&4ReRN9p|G#`Y zUoFm)Nnkc$p4(qJ?W_MC|37M)@or82|6NTo?fw2+y$AHs<$-#V-?w+XmebbZ@&;`x zePTy87hQy6bD(+K>CoF@Vx5yBRVV`PnthJ97a#e;sbIQ~(_d)+>Bpnx_!!H<++N$> z-Wd8pC!lH#MyLX}xLf|mB<}iGtT9FAFDahAC9wLKN^#OlpI%b~;djRA zR^ji%tHQmS_k$8|2nW`Mqm5}T@X@%PxHl8#bikewcZXl})&Mqj4piTnYr~-Pe(?3= zJW(tDJf31ZeDRoePz;4{8Nr+KNFH!yJ_V49IUds1kB zdw0?YqsVV5fn={4VjCL(g?1J|bAE4?oD~#`phf0nGn* zm&>heNQ36r@hd8BaFpOWMls*X|D3YwTG z`!AYStRKQgE@TRnlTFhZRX1zMEyEnwYwvfNNTM_2q-=%OcAjA*SH2g1Psea&&NahOdv>w;dBD z@%yux+!EP(v8c^9y@@7<-P|P<$Ij;MYa+yt;5;Ibc#(t0gt1;11~b0IO`(8=C9RJK z1#Y-Cl0sknrEuAA9WvFE`@>MAv3hX3Ui6#UmhUpV_M*Xm zmR$H=#P;CSUx+%WdtgFR-BYGZclLszk1AskS%rx;B%5>Y3_3m%l;_;%Fu}{iVyJZ7ye_j!eXE&8D z-g|t-%sSQ^u?_U;=<>1s5RGW!fgB5Qp?M`z@!M9BKv!#o)&F1=`A(wR}wC`i=7vrfF%|@Y*w;C@$zt^_eQvQCQldvm6Ve|uXrOYovu?V3&!ftF6?t%0H zKbbYxZ>O8{n%>|I;dcmkak8LL;3CAE|MTikQ9uyOV^C2Gb0ymDd$EWd;3~zD>Qif9 z+KLJ^{5eZG?JpX8w;tB>=K!k%^ZoIXebCzBwiL;rL*^wehLcTKoO?T8MPB4f#jeWG+Z&@Y=go zfwub+%c;F(y&N+Xa6rckA3Zn_X$ZSrm!y|cgZROd6CoFdUAEEHm%(qfH>MqI;_ct$ z8>E}S3@5x9zDC)5!Kp@9mtgXgf3&P`)meGGIWbR^BHw?+g6+MiZYTR2ZTWtyw1Qd3 z4S^rP-mXLEozwr3^^rQ93g97G{ItkW%i9@ge&Xld=}Ou#6Px1`AnbmU63I{-r647K zEbWQ!?Q`t{aJ2BSIV$gl8aN0AD8%hY_}9t2uO^7;fVJC5kc}%5;|Gx@YsZG&bYh(l|cQE8E+r z1_z8&K`dJ@_n6h#5d9NiWuTL}6`i-;`)Rjare>;3^C)b>;%=W42OvOJ&B^*oF>mZr z)%1gqmLJ3mA|)e2`QLt9=m)rLPBa&P6yNsN95Si-OSPYfY~sHD&0h&+K0TCZs-VIv z)*?|%nlcc5ir;Gc8z$}vd}QFj`5~D-AP&v^hB!2n(KR;Bv=c<81ZV1{IkCpS@)A3Z z9%CXXVB+NZkL~W#L1rrwV__ z#dKU8y_VmAOahGoLDi`Sbf%8<2@#v-hZ!02xmI<3n|pHiiQAK+rzgD*>IwI-=SndW zNjP7iTL53Uq>fH12j52TNfIEVqdCz=BmHujMxng{jb9XPH0NwHqyqnZz@Tr2jXzxj z8ySYZ?pXWwQuVInZ6&3vRsv%PpuP@f^a_FIT^MT9t;@E5iu|Xg0sjuc{T8oIyV31S z#0B@ra>(+~l~%R0U*%Kz)Y`v>c$(fBaIs#{iPEjK$kQ176uDjhy++akwGK|;{d4I8 zudkn!Ir#&n9K{U2`R~3Twyfb#B6{$VEp2vR#~EIUOnw;KC(L@dEbvstLx*hm_O+}J z%JUNsJNLpRLiZ!~=1&hFctU=~Kl_zLNe_?GM45L)9)>Hq-gzWyL&DQT$T$8Pb8fuJqwNIxxQ&S4EX&;MWhzV?T=Dr7T|YB47!5RtD|SpZSxtxv-awK| zMIYdvOXYM;is?7FPUvWU()wg?|&ipPT+$l`21VVM+J(NIM|wwa11P z;Uxxt?c8l=$O3TASvF)Yl#iMc86))}Dg+_1HRnCNtnR)fo*ywG5(ggWK(b|(CgJht zWplH|ZkEWEA&slM&V&uJo+_lL1>_6lJ1>!s6^KeReD`rBBk04Q49WPp;Vn=;!hMM+ zQgP{6S_<^Y(pt6x@xem#VHibu2mBkt$2d7up`8PeC8p%jJL`I0WFK<2mwG=8C6-YJ zFw5a@Fp{suN@jocItYKtC*ER{xB{gTQH=kR zt2T*JBjL?G14_&28nkcSV%&Etg07XzZqyXX!ISBn(4_YEV_i|8*Om240+27Y0wyp(lnnbiGikKy;+S?F-kIA}$A6~ZaF|iwNf-j17>sqHhajFV`bg^(!eCM^XiFqkLpXRMTjqVB98STloH^Br#RsiFoZu z*jj{P_|{^JJJGeSi9;)UHsjXi0LGT#Yf?Xy+2Aq#E9*A~6m6Q# zD($Ow=zc7}DBMTgq6X@(t$*a-OQhbTK9r$ChFY7O;>bTh?ah()-n5@Rv9vHH56X!Q z{opb$IJf^qk5^1-&1$}ndn5qYfEpB0%MU;L*a7#Yy=2f4ehug#S5SEJq=6@{9(B9I zSa(PJA(hzDhi)cW$-W`7|BT05{8w&o*;sa9&ole6uvdW|R^#5?p=9O--G6+gnjZM4 zUhZy8c{xo^Jte*DGwyk2g>lJxF(T{TgB7;L7IRsaY?p83s_pGS7SW?a#Ys5keTlvL zd%-n8OOvr9g%b!QzH55{?N%1598Rpaa9M3Ui79uCgY&b#7eSf3drxlCp3s)VI@`~@ z1LG9%;hg(1D)s>JwXgM7lN`$LD6PF5g$k9%aZWcZMtq%&S#%1L@!y{=6)(vy7XrL8 zo$XDYWnMcDitPeJJU^i?W9YqZoSKx?hUc1xOB~j?)%QpDgNKT+dKF`PDVF28#Ajx0 zRv*DTetR_Yp<2$Y=M#2FS)DJ%g-G+{YF!eVp(@HqrG*v~?4V%DLQ99lYuZcIk45(U>bUPuR4T2s8-ssV7;5f1DH)N~4A6fjB&C z4KM5Ov>5rC^0HP|ykhnG3wfA2`cO2j)sm;5JWD>*sH9^H6X~C-op>`gM_a6eEN|;^Dc2~rv(Ozs5)gedQC`OX3-2`&>D4NEZ6b&KkerY9$BU~jm!G&P?T3X)skLz^g8gH_B*MLY3V&% zm6Nhv$&X8}HZFcVv@7n1ks>c|X}@c*^Kv2FezUy7zAt?{pl}BD)NV!jPP=w};zDWI z!wwLt;OSuNp7I1GTj$jC@10p5x}P%Iqz-gJt)bGhS4{2MH!Qn1iF>DaMqc))m`w6P z#b-%l?nbjjH#Og|&*pfDuAOB)K)r{aUye@Njm(49*^@`w17mUb+uWWjUWg;QQ-{yp zs#RJpYJwIw~$(p)Z$@@O4x#&~-D|et60VXChq_R6a_gadS6VkH`HOr9WaxkwT zkgXV-6ScZ|sK-Y)pZ@l5qdQpOhT1AlsXUDk_Rg|HnK=FN%dHJTJVP$}z@DWot6gTnR|_vFaFpR z;3Ou!$!ns|6B0vT-8OR|I6U6?$w1!uVV>|`7?QR|R4@_KUFQ}Dtqs@zN|$cY=DnNQS|7Zo&&Y^>d2r~p0t(aa7DBnO{L&h# zm*SQF2=-`^JB#C55RGNaI-!vAV~57aZ-q+_nNB|Uny zs<;3jT&YBAD0GGxW|&23*8grfyoPDzQ@(CXkU3{ zK`Uo8=68r{wp7BRC6*nGab)}e1NY{Wh)^OfGoEO9v^a&0W|qCIlB!k*stPnNtvs!q*hn>0Hv+ofe zWK!?xkzF~HeY?Hz1(w42NSpCh@>B#*yd;p2n)sMg=VTH@)NmV4)V}92ri|)r%y<)v zU@*~J1w7@atM`^OKDym+pwQ<&W{8(SE(PNKQ5<)%Zq@pr4;wjmOQi#%Q6N^m8B<4J z1{)%~V)k{`jJ<+domBTdS2kN|!#t4Wy zkrRGy$TH$s*+n!N7&Q74EKr1dMP^@##mysjWd&*s)QU2X-$>zGa$CLTO#vDt?I0nK zr=DAtJdD~1VL|sqwD24i!0zKmbd8|V_?QDH_e@N6=%7X!Z7U!9Zn+LcY?zb0Ikn1;2x%*UA!exYyD zL2kl=wO5XyhJ4Eo6*EEGVKva30mzMcgJm2PNmn;6h*Bl+#@*SPONA=ERPQ0T_Yo~4 z|5S`OQWtF9!2VKwKU`?xSNKMxeU1j>iYjhUM~fssWSJ>>b+PZzf`xT07tFp^(jMAF zG54AfJ6#8lp*@>+QUOv7N`S9Jrb)ca`IfRMnunm;UPNOcHvKjp-UZSV$w8k)6NB%a zi#pSzGWnmGsmtyghWjs|t*m-9%R;f~JTec}Q`x!qeRlzeN*`)J383$#GH0X}=zJ zwNH`PTxjfE(rNKt=={%JIQc8nhWcV=JwX&-=YC_bEpA?97lTq`qzX%*_|xqv4=G`Q zel~#6m=8FGu@mLTVm#e+vqY>n|3Q;;BtRnPV}T=BFn~3Ux{I{|_rP)46Fu*Vh7lda zIVpdMC`Iw^*-jzfT|Uyynf)NS-llx1!XhxJI*w8tbt79h4OI%dyGYl@-bT~j1owsT za+00Mfd7W}LT+Te&EaKKCSrTKbxRx`TrPnuTddQ(H`FnBPc1&zy{ow#yUaHRW{jG-V;K!@FpZfVY zoqmA>RqW6lMyFd!NyQ-uWS$I?0HwjR#4-OJXyKT!A7j}}4`s@Owr#cj7|7lGLumH> zE2N-ti3+fmJrpYR3oW5IGNULAll}~mN!zrV{w8eb=atWT2L#XCMU=A@yPIww;POfq zgoX&uQn4;c-_$1U(x?Ai;(2qUQtqMI&S)UFlTh%N7}FoK`PqUwB5`n#&$z za)Q&SoDg-*JQ8wEYr^m0Uq8V=fPD+vhp0AH#y#@eFPCU(CH2luMb`>2>`!&_C5W=) z6~3sfXWugB|7$T6w1-vB7*0Cnw_ihb?g!%>fo^kcZ{Al=a$oxPioFdBl6@YZRQZbG z$Yg<5d3teYj*7_7bJsi;$Y>Sd2!3&p%Bf%MgfCn)1tUfNO;ebA0VN{AiFQ=mzjz@+Pf)g;IBKl%md}R)0ZU3slLWhd?c_41nj%*3XXL`F$LYGL~%!RXH zogTOKrIH$NYo@nQAhwD>wlmSCB!wD&LGAD`oxAKfA-Is+-5QOx=8u99SDZiA zrSoH_*~|RFYN-(Y+ZYxqUy=DEP$z@?9~tecoE{4}uwGOAd~s5a^`Wysn>7KZNlGCn zuDtC?OwW?aF25uxBiL7+jU+WanlxaQ+iSZc^zcU#LIQB9`)q-La2yCWhhlzO+5|R98~<$NEC>|l+&-~E zG)1LvxAh!M)^`sXOH)TA%wj z8fpjx^}rEt?qG?Hoq3Xdokt%l=?Gl}i`u5jU!K!k;TKNIkL$h#i zq8%OQ{En|iue&`LdI%_!?NVt0;yhpeXHtMn?=A29n5dzzUnrCESXnfGSI7a%FrU*Q zd3KwWd)>+xl3(F8jj<=MmMS=&2;3h%`}UCzojN>GxVKjO*wY(uE?{k$JR*EwIGZZj zV_&z}${xDAw=XfyTc&V3zoaV~R-t^@b|!Yus!9T)$jO5etC&n3njwb&>lIDs=?ZJW z&LoH3le*^(V){~J+a;tYq1+={{>jx?ya31v{I{Zq4RoZ0n4GuLcftD53EjqR)5==k zMw-*yIS6?mGgB-=3WzJ#N4$Ft`0+!)s#)06X1d%Vu{i*U{ZDV_l*y779WD7SBDjwp z{Tx~H3M6r|^Om2bJ2`k3cM{9$lYtPMV>TsT9LgU4s5HlrRk6$QR28FD0Yzq%I01eZ z;GN!+MA%)~@+Y}LK%BI}1x3l;LkqvkelnVa(tcW%gc_->L_R67;_UmVE)@I2$$1lR z9x7qeqx(hMzieH?0@q`mui!r~+2EZaL#qmD+*~qu?!%!TBRn%MYaJu`lZk2N9z32} z$fsEVT4MSEfYoeCx;#o9IMt;;JSDxehi;Wh(&nn~+Y;*plQkpU4OlyUe_hyYQyC*J ztm{P%Zaw9*ky-Y(Y90W_egWh)bc)BcM>+(yZs|va%HK72998!B(;C6-+VO=*zlde! zFKGtczz+jiK7CFO|F04NIM>!IKeX6Q4f{95W9EQXG9!=SjJCCoqaI+5|9-b>^M0<) zZx&!@|JxUa@qR{r_#_tZHi48(SF03VqAU+3STXRxEEpYRq7Q}*^Ys`c-s7~0ixA*}O zXJBYn>wRf3ZZcN%HnSqZf4};|Fq|yHaZ*y>boXuf-*eRpd^2yAzM;7PlI3)^bC&_E zZNxM5<`UN0_QIC{hz{#@@Ac)b)9sF+NY6N=_Wo6r+qhTUtK-gUc;BAK!Pkx=Ox8)T zZ9|5j5(kZI-HwdKbLoH!;xOYI{`ry`W!a-0Q5DguXE}d~+lLUkJa=mMMbuo5f>#(4 z7IL<5$|G!g$$F0&N5^$Wwv1YL!w7mrBS10ND4S(r{k1hxel~aMiskNqEwr8M$!crA zSp&6|wCA*4qci@H)W-6xojY%&C!!vpIBZ>pTWz%J)SMcRlRa~pItr7HT&7jzun9^QbppNIa(nF5= z$~SvHI%@|s{(L}+*``@CR1H2&@f~zBH5`e;`h)K&P_|K2KMU0pCL2130=EnqrA#El70m7n@R)^ z;;NGDBxJRi4|NAIm}r#vLRtu~qj*LA2nO23&!s(;Om>uSJm>S*VAiRiRaq+}6&Q5l z)%yWldZt9SLlCk86UAFd1!3C3>G%d2R|{Wp3&~g#Q!MU{pZDxcZPfmxg6hQ}_JU=z z$hYpdE`&&h!a2wy{l6|z*?(W8Z6nRrJSoS|u;9L63H>7`#@R-V(C2VI#8Kouky8TG(AcXQumhv2=EXQgIM=$~I7$Fj(LB zs(nEv@Y$n79Hses{8WF|-Q7xi`DttYXt__-JCHq`!0xalnR?Z2Wv|n)D!)mGNjp2A2(28zOFa z3)}byCBTPaG|3mi?z2;c%&%<3>HYhD-K9s9AEe)!t!C8}b@=X|H1Gei_!|eL zm-t|L7=?f#dnSJoF#*^V);60U&F7k-2Dqu|!74)yu`x?L%|ze0GO1U=|+_929XBonB-~d$K5X}{U3Xpgc^=1co`*Ay6WX(Q?<{dq%k{Q1^_s63Ktg;4mQSWJE9Kyp za%LUH6sn=MXyd#8GFi-3r+hMFi??F3eDd)lIofuTbNC+m^7v2Oo!e!-2K3#H-gF62T47{7 zVyJRK#-tx4&Qhk*1sk%s;j}~Bx#YM2gV*%5F{y-Xtm3y%G1-6O^7&^XwRM!@fX225I&9;cP(Yb_OL&I<6o_W}o1g;Ld zVd)CpuP^eAK^N*JGPOTRu8X3kr6iNC@5=JhJpl_~r9Z^{u)Zum|FrXWJVT%R0bsId z%U%}Q^^JwTP8m(Ruh~boKZ+Stnl^WE4Ug~5UR=(3XwYo?7&J37CvPk z=6U6;P>imoiDtM8i|Y!2%n7jgYZx(~S4JdnB1_?~1Ky60$9|OeOQ~SxBPCViy3rTrmD73z=1Zp%Z*gA6R)cI)5rLx6It zi%2cInMjqc`U&bhiR!u|(=U&_QS>dWq9MLyQv8WaQP&xj>N8s+IL+GNC;SmD#qfpY z-KA!h$=Xj${dwuh)kbSpasN#i#^d(TrD(tA0Z7n5S#A7vkHhnkX97RYa-vdB#GJh; zp6B7Ls50Z^bRcluDcxw00|ZFl{!K7iF?ESXgl#I?Px5yK)kA zlyhe|m!8@oUCP?;^|(aet2@4#p{A=9(7J3popI57=5r%xo;z*XMfVL`+uW`J>N7-P zfm_!Wxto=cuyFXW0wXuV&|SR(MpUKw%}!OaYVe7WrhaY4(|Z`8%%Bae06iu+&ZRY& zxXM#F>uP3o8$9?u-}zV-V#1<=NIdor9WktoSqqaIE#P#;Pd0RiE7fjI6ciKSv+)OY z>)DUVgn@4wC-zJc8$F~$XTFbARmHV`eg6muUj4#JH$5T8H=oOlnXDBWBJDnG&a*gP zcOW&YCdJ(Ep2)?d)k#@5sl}Sp(;>(!dvvY-;5Gif>Ey35h0SUDA7{3@o6VdVtD=fr zDEYhSgeB>+w@k>JC1NJ{N83-POFYXG19(oi+O$3Qu&VC=69GF>V}w%fDLnQ12@Jzc zB3|+YqyArOvVbPgiNq_j-9?0A%=Ru2D@*hUmN>Ei4?~f0rCj`a2 zwtf%Uc~B-Pusa#eT%WS>W}6ga6h1Jclbtp)$0X0$cCSle-H%M|lYye!PHxN3#l-9z z^P-bG`VB0>P_S1(UO&XJfwZe*=>y&M7Kkxkj%lPJfSbMu50K>pdQVk z+Pl{hw7m2TPb8y*DpT79NN&*kKx&Xz#bQYCvE?6IFts;EnbX^?^TtD8w}RLCnekO;pRRTWCu_QyxU%r~@j`=jO~j%eqGKxxpj$;OnMNaimP zUCw9`RH>V-V`Ki-9w!~c*4VzFoK!?of@NA*OhdmE9#_61NMkWzUsp0oYG~AXz^4+^ z=l6D8W7Y_SAAg2ArYLK*_#MvnVQIwLL~uleJe_aai|HCQZl4;)q!WtYlp-+1 z{9$fFx68(HbNi;BXoe!u1giGh%J`qLJ~YtcKS(Ux+q^ z-5v`w4D>4~{<887S}Cg5)kdd!_e9H}Irk%Xd@>5ttD8dP>m>Y)C;zzUb&?b8V0V6d z{R{l5sxw1XpdRJwJG&o+GK6|dMBLS&O%pj)Yj4G5&Rzhd^dMn?eRU!Mu;IWc;T0-8 zzdzVsZX5stXX}su(&W04W{FEs=|FUyo;PzlIOLdoXp7Og^>7sZGz5``r3-OIYaZVd?`_yp& zyoVbQ5hyy{iWN5>juHGYd$_rklXk{gyhpc7WWKgtpyVB zB~?+^W7xPZc{sMV#V>YO(&+vL9wdT8$-%=a*nhl{g{5MK2kBC1&$-1`LX1I{MPXFn z$G)`ZgvE%}HUQ^uRV!|$@Td9R%E^Sx=2#o{a2xe!2>%pbI0X;VRENAtB4ydDCAoi4 zCXa@9mkQjyZyHoN3w zW!{}ohxIZWA=3=XI&$eWvo>xinO6?{eFl&FvfdY`is>c28tg)_4 z+w1shMuv(M9IWL>*r#zU%!$lpc^6l_hKZXFpJDLrE}IxBM^u(3Mp7 z^yl-@qWw#cO-{=6gNd&)MIJjvS6=L)emX;uU!q3(y$ZlT#%+s!z4=Gbj=BAoEXeB$ zUuYEK2JzbMDnVG{x=1}xGS5tc*J~Cx_qxz87?I>4~nE*ghM|b`u;|IoWFHe zUNSy_h)-8_)}l+&9bAeTBQE-k%&K;wbzQ`DvRVp!o1$%JzWuu*l(F5Rew~RGH=_AR z{9p2`gDha?!x#G>(bBy36PYy^2_pp$SMBc#rzVtwdAYEjvh#_o6_uLIY+^ z(R8Q5+UJyV|B8Qn-bfG>ueehhE? znG^$t>%r2kz&JU~riY$q6sHy|!59u3@+(Q}%({R+AL|NAdOFIFc9D0CC%7ds+q#^D z{nJR0rQATBxmANt|5LtQI^*F^6PM&ptqCZ=upUY-L*Cz)h!?P9MgjA@A+kC%q3XXs zh)?L9I`AZoF&NkFp!OUc6uLslrfopQ=^(qkJSb3%Nr}@t^;W^VCrtOBX<%?1PSA$s zM53$IoHhbi7YnpODra2+obcyqn%>WUr$~%?I2eivwk@e}|IlBc2ngE||STjGT?u0E} zI;P}1JdPQ?)f;Gwge7D|a6W97CaOu_RaK)X_f&L4-!bpJxUFtWM~sIL5lWD(MEVt8 zFL4~alP#&QQc2!oNP^@AvVctSagvJ={=go5UP)9tT0Jv1F4W0jZxb}t*XsVvW}7CYscRt;M`p{I{%EmE zd9e89c=1)((;`@NDD03qvlzrE_HrFP2eX+_Oxd2p)Z4`}K$UzgPoa5AGIdg)JHjFD zWt~ALZQZ4HM4r@}^8}fW+0i?0e&Z?xb(&b`a{B0cZ4>98`cvqGA$5nRBQ-0AtqE?s zhqZsaSsfe<+iw+$^Fu98h=ALEyvTK7xH-e==nt)LeHrN2tf+AiV0ih*u{8a}8K81O zid;iL64=x%Z}|yN;)1+3IY^xk=bw z9otH|3F?PqyAgFk+vn#Kfm4FR?nS#H<8b>;J_FtU8Q4ZoG5yYU-WiwFf_AjC$gSYF zzu70?>O!q&J1o7>6U+ttr+7DwTDxhHWay;0i=q1iZKFDqYAK3G=SQsGWe47-iu`8@`f<7J6ai|Ldl zpRZ>+e&9#P-L0n+apH{ZqLy*EB>^e;v6bAtdWNc9aF`2y1_xpZl>;9W5 zB^49I)js;Bx=Inha$LnSWYqQj%owq+Km)!9QTROglo-T2E}OP1!#?V$QhalZ=kxY9 z9t@DT%m@_<^2TO|V+dstF8dW4ijMO@Qr7Kh| zN7^6o*XcpqlZ(Z;`pN#M*&s6#P=7$Mvw%xJ(P3!W>K`>*WiTK8dU;vJ&jeYT>YS;H zlXmANR6(ra5HWH;6Gz;6i2u9#6(^URjr=9J@aM$AkqojQwHijl_CA+gV&mr!>~ z>F}mikAC8ae!a4QEHzdXl+?l>^;B}U=qesi1RupD8-tZeALq3|{AkA{wK&BCKyk9` zjX1u*%O~+AHoWew)gIS3ELN>?3y=FX#}r6u2HPP45uExvw9S=b9)HiPAbMy>*%DkY zRN55N(E3Xb?~L}N9%)RqVle+oo!%s-f%f{R)YCWjtl*mf*V}Fd(SCs{hj-85<4FIr zGf5eFQhqk|LWU_5xXr^uQnmWD2uY@)>xUAglEwv*1%-Z)IE!of{`*JI5bvK|d#5~= zBwTnj*OwESbdnv#teeMX`mj{km-Pr9gq{plEDPe_T|~=~;!v0%hEvk|u}q&Gs0iA6 ztaJ_DPq|~Lvj@!27Vh&}_Ft+XBT_-alKR$_kXo!Z8cJcadjA8c`)@IHq@ANmpCu9Udhl2@GlR>mr$LLp6C3u~qOhmcj*&&3Q_c71SnQkVCI zkOPSNLJpZBl(tJS4f@?K2D(KFhwSGvoEm3tnCVB7cVF7{3CNk5SQAqw-n^?}2{2BF z1w1@X=6|g-g7GZAj08XZnrNzs=Ds(1g21OYvUaMDLr}|2Gza*dtXwY@OFfg_8n#Sf zj+JSfV8DYk%dYQSkI7B2rE3RfGztTABReGFg*GssgLZTUEra8hCVU=Ntn4p_saurv ziQ=zsvYlO}(~!RK^k?!PC)|3(ZD9R^WG;yF&w5lGBJQR}0{O1ynfpubLI$YT6K{gy z-ZOuZ8Hp#i+cL^D^~qDb%a=&4+o!|fV6G(my9}h(nu~QZEac|7y8~pp(a#`{cb-GX zY}FH@#o0<1Ml+x?Wz`#rWZzit_2b}bisE}5Sw#1p{ZK0@%ZR49j2c!KNFGCaESjh- zhlWUYgPkS{J}nSU;e2-llP%US3ysIyNe-e1P@rO3#<+0=`{C~U zOFbY<`ye-qLlfSWOhC}nPj}nra25`8wUP&tvd7E&t>(`gYK6Fp1BOcW;9< zOL?ip76LPo*!LhOmU`2H-B#PMJ=gopOqhK?H`S2J0)5xnGSu zRzxEaMZ>=vh36577g?!dPFz;R)e$dYG`)66L;ln$8=dCLE1~RbO9Sqk50sfVGQ^mg z44+(T=sVxX(Mn4QiggHcST5H&n@-T}(K+>@(lS~OlW7$?tcYzqMRAIe2WNR zhQp>zQYX0w=XM!!w{+yg6uPn#JcETcsT@;oUlZjx*$DDI{5Tf|Clgg(nguG4VoHBg z_ag6ZvT&UOs1NLtiaDS^Gy4SvyIuFC7eWmtZSrHQwv@@0dd;6uD-dd$;0X6&5@G01 zvCupJ8EDCj`C&)MiPkg?9lxLB*opAZ-8K|{56PrPwDO?n21sL*E|LE7nBUVi@qbzXl{F=bs+mDH>d96i7AClBV6I}a)LdBVshrxSRgz$= z&1M$ieuOvRiLp4z0~x;{F1wHvCv4efSt zo0hL-dMXtw2$bt2<<3O^j6ch}@i-X|YPep$8Gt?(w0~Vd z_q!bU%;1_boYV1d086kny87up^@Wf`fQDRf@rL=Yzn1kh+@L}s8M!U^x=uSw^@V?D zE|?mWx6yCR=YMlzW-C9cm6RPKFH@&hoMOqbL4NUIJBiZ+_O6Se#Cb1WSNt_f0GwT= za!)+5G-S!TAqytyQzg0Iw)*wbz8e$YeOi^ho-8 zYbAE{Pi3rI=P0{7y0TB8_>r|~*e?6RUmc@wR+49fWdZ*#wRTmkxM<8Qi5RdjwOX}j}U`Ge!S04J(j=!!327QYjXNou(2Ip3Cf{u_j#Rx)6|6POeh z{&T{1G^xl)X<-HnMAQA8V<}K|ppoYIeUw8jAM4jIAeN(FpEl7{#Vyu?v3*jP*KvsQ zu?nX2&8Y1N%6T2zZj{2vU!oLE|Jg`Hb;U_z@^$Ajt}fR&h8hV7k;gliC2(Dps~QGv z*;1R?jU`PC*7ftrp3U7m4+-wXFVBzWc+{Gl#mBRt&^qKjpRWNqr_WUcf8Cv`F=0wK z?Bj?g`*z?M!LbOp0c+y84#4||)#=^|pN7HJn82b)X}-hE91M zIf&qG$C4u#9Kj8g+m0bO39s|^+C7W;&S{0Wr*5>stg(5B@6w5YHl%h@s8yU%t4d8m z@ql0HLM&<(N-BbQXI4K3kk>u0PB0mjD%a^gHYP!(9-6DI^4 zzc`A&SKlPh^6^p;{Suh(&YxSbu)=f9t@~Vb?852g1|MRwrRr{oP?D_Q%sh&6#zSXs z$NBr_yQ|G*|6%{;41t&C3}pZY_XvVu~lAgAILj@CaV-#Tq(5JDn~Y+(1(0@YHzwkL*< zeP2oUUa+dwi#uy__b%w4e#MoQ<4lkWK^7ufkGtyAz9Qk}3<&rvTOv6P#u# zET8v|8g^c*>QH<|OL?k)P&Fw(Clv`d7dSf@m_v@sRF1G951WXpu&=J+e6jH+%$zMj;P zip#4^xY*?#GA&Eq;?Ma)b)I5IgWS=PImhlg7P9c1RHP~yNSReNbSy!d>aakWTAdke z5>h_Ac2^#Ur~-GJhCL++h_9&q5F#PekC>M zi@mn6CI3xq6~Btt3V|dnU$JmyykA&+;fEi+#$w}U&cKB5hIs}!QI5VOZT)Z^`7p2l zwk)ppl6o!-pL^P+(6WZ1t`DUu%=WQ1q?5aRqg-E&zo2?i+|Qr zZGzC63Y}a4oOH=3OUGUp+M0YRQvLQqyYTx0^5V*JyS^pz9kHa|q|e?FJPChNVIcq@ zUMSN{|HIU|wPKoEBmASAs3b;RZ@YidwjBAYx6LMbc`K9LTt+IpL5fds($oaEaXYc16MM-JiH2h4I=tbXX`=;f`Ljib~{p{U? zRMYZ~kO1;FfiVtloMx?Av~}@g>sm}9U+12Oc643K_@@03*9!Xjk%qEl;_{pv;g!|f z^_={Du+7(T21KTI|Prf=c1jt*FrMUT%4BxMrG<-rP9EJZyK3l zmcl8;nyrB=KwtLvQA=L>OeZv|9r%*h`KsLAU3Ru>MQp2h`5u8nC1=K2|o-+qCF> zHDwj~TJN3~Lud{T#d*GpNI+iPVa~`4$JH1hsWjcf1hixZ*Xw#^(dMB$N3Wd^#cJ0>7n$ zAwZ2(^p~Y>lRQ3TmlrMJ%h&}xjq^Jhzbz&g6`i|#v<4ez*b~+;648%V9aUww!^&o zTEg3AYj1pS{2*gOazc{g(r~EV1aN{i)J{woEd5xCLWWo@Z2)J&qo8NUoC8%hq09V+ ziFy3&E#Rb?yA%Y$Hf`?+Y!ErVYJ23v77%|Gyz;KsjfN=DT&327q@*#`ihZ;|ZcDG% z=3uTBB&H?(l9!&lE9S~xq4!)FnRyV?vAO7g|C%FIzQ{`;X~*k!K;WCYR*8{qA72d`3?i^Q^x*ALS0-4wc5V9kHtUSxR26rQbj~s%6F*_g`yZ{ ztJzN+te%KTGY-yRTZI>{3Kq~vo?cb-Gml&+c3ij(=*K;bq{_0PQucN!_4RGu5*ulvcyZ2IY^x>DM(dKPkg zA1P9;omSq=X|Ysy*Cny|T?tNrO5}d5Jm|y=s`(D5F|<7C*6uaX@|;%%^7_;By>@_O zBH_|h{hHw{O)L+|oHlFgEp+RBW`Oudj-OE*EyCO#vgQf{6&)te^xl|fWiz6GLtXH9 zP=Sw`+f@KskD-icb9Fea_8Y_?HiYB{cBhN0L>nobqj{49%IY7Q5O0=sus(rgUJ2vH z>6V>&Il#fw$z3BWN=5{pAuE)v#=4hF+j|xB)k>JVI@`@_$Pc^Did4}}=4qj~$EipR zHbjW9q7^^fwcOne6(^g=IMN}dw44HPN2$!O1Ou%QG}CBcf`>Ek^#f4P5_E9(`p>Vg zDxlO@KfXyC5(LKFA(1xhYW1j@mv9R(>0s--Rs%)1v%Sbk&{vA@`F?GZ&%Gu}0JlnXHsuLnrL<=;9ww(J={z!(2sV>QJ1T!ze zX-|yLN5?zem!I#!Z*; z!+g7vQUZsy59p5t1U;nxx#Y?VFBjU;UUFCB3PCP~Q*bmC(+@30B|rluL>q5m9>Ys+ zsq=-^+@UBWgUBO5*NktFmM+k(ZI!i>= z9FD3H19^c?i#hq7mO*MXHiYo(NVkdTy3qTNgorbKWCY|oY#$J2qstOm29wpo7n02- zpW$8_2?NI~hKkhQw5K>6ohF@~ga+xU%w{;ABmpB2W&d020VSZtH}bk&sG(S=@` zzeL*Ihcbmh&y4IZb!N4rFpo(PcGchI#ELF%?}(1kXLfE+93GIDSVH?>ncp?Ovp^iA z#X!)7ShMc{)wJ$TX)X^5+c05qDrTSK6b8a?%$7+VL;mUq1|9sl1HQk*BDTMw5UXDM zrNus#NxnNX<>l(^75D93^tYDyV-%z#J>7b{Hrq}10|l6$zd-tYibJ*aE-8nH#&Dvr z=j%rRDY&>JCO6%4l2GzqR((JtKfowT(9>{{3BF zFpHyxKmj`noQV%IrJwtty3-FHxf#AQnA9y%DUb{LR$^Gt#?+xT(G=RDd4#_2_v)g- zHxHn^GvYQV+9e%B^}M0{gi5r{y&^%j-Qg2!=cF?ZewN_<*CP9ku(b#^v%EQ0oZa0d72 zKg@`oP=CP+o+PfGG3wn^uv(u%?JF1MqQ=Fn6fx@*uECKTL9Bx2`}n1NjA@>IHkAc ziyhOVqHDiY&(5Nb7)k6jg{t+|*z;Gm8SNss-a{X+T{&k1WAs&rM?rHW)CxUwMt1l_ z1^K}_PWbimyzraZbO%m%<9l2xdjo_&hVe=AfVs06!y| z@^k=rM|=RZsNQj;3O&00)zIA4A_xh;)MifL^3(vKr|YB_cHl09;1 zEuy?y{!7C&7mXP4dG2=~$6JN`53)-V<$IRR3LLOGCmwHQGJqWQ^p)05)hR!&Qsb$% zvsB6jJg6(oQ@xc~E7vo>|K=qSzvJb~X^&6TXqLmbt}FtmWjaG|Zk>2K zwJTCYH=ixWkY5z8769&O8QA6x=vz@sVEx)JJ(%AarHIUhhwXNGhV2v9T!(F_H~Aq& z!wvihXd*?O5D37q&w_0Gd6Z;rCx8P5?)hG6W>6hk!2{ut^5RS|#&0f0npD?ItJ;FQ z0lc92I}(}67=yd^HsW5d{8gsSzDoIt5q^mop((4P!O)po~ zBvEB`nXiQ;@r5m0sH)F*mAq2t>D}qYw@`MY`v7Fuz%}@VlCiUXm1S?&SyID&Sc9bw zV`#yUr3ImVuW{J1iDoThcE-t(kb`YyzXn*TBcwRiz&Q(<*yA%Ff%N7>}j`=@neg@9W>4 z;xeTuKs(in^OF?Z`25#z#m>{8CrDAB#dk%9*%3$2ln3M0b>zum3(v0;aCR9eGHrwD z>fb?uInnH16g!9J@1r+96LAoEy}0ztshh%UU|b1QxOJ~8ZOpgl(J|xbpzg{dJVJz> z+z4GC+>|Bo7hvrICMOCVmU=$B-hF%T{v`}@)a6LigdRKYKjpXCejRZtVkT?+D}bLH z&bhHDBRLGOFp(j?o(E1h$uU2A`POC9vpwdhDQ{h+$aa!q(=N4(C*mj7FU)>xEnLdPAM^+!+YX{ks`!+hjYbRJ)A6u3 z*LD{HzHy&$7!;rBJV-QFxHXQhYJFu-bi#@**_|?}7X|!PCmZQ@Df2KE8{D)_d08jr z9w<#6Ul>T(>4?J8ED0EnD^XaPm*3yJ+RM&QN9Q6XUIZQ7hTG0IzI#<_i^?kUa(%4S zH=P*nUO|@-D7ERSZz(Pv8FKNHgL+clg|lt zNLmm6+X0EHAU5XE2@u+8=(}>HOYj4GRmD%%agDN}zw3Q<5yiNC=0;LYNr~rK2)LSw z9CwP@qh-DVPS}y+2ui%Q*2kS3?oIMVSFr`Q0|u<>idIUeBvBqWB#QedG9RuVh#ZRH zN(FxTh)6u}=Z}Q&H*0%a#$~*-)>d?K;YU>P70lbxeH*U-vH$!iudn&H? zZQiunf_+E$4A*655oM`@9QK-I`dQp~?45FRH=*de*61vjzWwZH74_-dl=}I)>Y_8{ ziT|ns(@{x~C*W^@VsjSKtdYkTy0)Am2H*A^Ir()Wj=Wd2K)n^g-yu6)a}x39Ixd24 z>8UP~${Tf!Z|qa@w}45mGTBg%t^P2?;%YSHn@0x7mWH`&kbX2SS8aXBMkY={kQ~`t z`xHBi^HN`4#*w9rTgsR$^@147&KUHL^<(o&!cvhyITDs9c<6 zefMJa_Tcb7lG53GtI$DD0WOrIndHvlOET?8yJcOn%FChccd778b1OfPsWov<-e<5- zuE9u`X&a3+A2DZc`BeC;FN~eP`s0~`U5<-kFYrqk?B5}_}s!Z)rHe; zv`8-MbrNAqTjyRR;qA zq{UA%;%P&}rb3aCCB(#LeLj|UHtW@F7#QS3yG|K`Nwo{Wo+r;|9CkyhUExAl7p5ia z^u8B5AJOL%Z(+7Pl7h#M?2-xlE94pWoCZCG43L!nlO`RsmaBNwYW?fZ>3D?;<8&je z>d@bRdoQ0$%ke?r_(_JQ4<+Op%CG!+EVS>Xhg%?vk3iom>d=#7dGW0owh07aaY|NX zQoBfUq8b+KN9+^TmoHmhcpVUs+mpvA>@ zO0(D8=)&`9=KogdAM&=)r5_c6!t{-y!oKaS13#5d9fAY6c51df0x}6sZR&5FfJ1+K z#4Mf(QEA8H`r7y4<4u+6Bvj>2M}(cd_~6G%uBXF$KrvlZ6U9`V@aPmD0QY!c4}iY{ zPz>$2C_~=I#Y2G!_wY%`NHjZmy@sj(Hwo2dnU2{s`~2B=%)e^S895RQd_|4Yc+xEQ zd2dHk@UC=$Rx5H+&mucU!}kH~GO3%_cECjHadU0{I@wS;6bFy+AF-F5htt;$5;1Cv zu#Zp5aeW;_udRF{3wmM$BliJmCnUczZ3Vc}Dyf2*!_TyO&j-129pdGenIjiv8ydV7 z^SAc@P|T8IYJC}xd0{0g<=?4PjW~ku=+A;pbCqyj!D>^&KUqz<=C*98Q6k|smun9O z6YEa3w41)GjH`sQ>}wd*{Vx~CMAxO)+i;IbnlG+4E~zK=H#$%fMg5j{P_9ml9Uq4~ zk3QuQ5zfThjp~BS%4>F5-E;SADLjJG7f??Z9udSh`&H@-LZ`J8Ze_+DO^ zkV$mk=!$A?i{#*oS&FUQD&WFZW)+tN1@WW!63Jg=TdDm)OjA^W5}D}iV@<$dN6J>T zioRSf{v~}W{NqwN2iuK(zqmzBA{94LlQml61-gT3(4Sa?^Z`K+4b;|%V9chA9;9^Q z?j3`#a?Kk%!RxA|WYJ zpo?BQt8sU3vN3>5Jy6)cdrH=5M33_1YQ|&mT8feQucY$rw3y)MNj1>b<-&QYEp!vG zVd_fN#uA@7QoGQ`B$L$4M-HQwDUX#*~w=n&KDqgd)PaRVLfg?+c@F zuip2gEhkf!LoPIPVfG(#gr52{D|*&+Huw5`OQ;tkANPS~7;xizMQ>e*xCd8Ds4)NW z)NRT!pZWAtnQYF|I3w)u8OtMo!Hs)y@+1{Kl7@LY3-N%d_kk6IuZN}~tmNB~k=?b( z)%zlxtvDR5JeB#sW3aO;RS_G1kB$A>r*+>j$+T%Ryfjj$kFLx@@=VXlNZcjhprm)} z_^ltLL!%Q+6<6a>cS!@nS;ijbLU6~*o>Yr zx;IKug3i4O?#;t0Qe49P%h~=w>*Ox{Yl%jVeJ_@=@Q^!?T=K6au*bL(<4QY3)FcP1 zVNdMC&v%X`j8xx$#MJ*>$uwa1kPSIlJ_GOH$M9}5HNM~4G-L*OE-^gzA&x#ae=r*1 z&KScUhR|4uZH7rX@_{#v`u{*Nh`oN-Yvs8MzdD|-F_U&24Ae4df&7D$K_F` zK?ko=O?71%DQ%t3g&9w9`QrM~VXM@~VCJH{3DUhcjjr?zBh7T~3<-`|o3Wk?xxT@7 zrXnbxXPm{xn*>&{dy!3_D+MV2j~QF>YDlmG^s^rWXk1H{dVdD?J&!8*PK>;FiM9E7 zNE@ud{IDzW?+6RyacAU1+XR)ubN&KGCNiWbtHGfHbP27YdesF;_@OsTx(23s3C1F9M_v- z4(;1if8VKmYqacBQ(XY;i!b`z{yKvF!7_j5tR)vGd7ft<}mjAZy*4bxgypf^E+3kH#W|Z@&asu~4|UiOMne?rP6{kVhB~Yd!?GA!^(KlRB{j<^<=3BM|1xFiy0&)z zSpq0Tvt(^fg!a84Yno8qp$P4RNL(M#(l?`r4k&|(Eggd|wHbr#QdXc<3j0=niud$_ ziJm9;acpigARcXr6PgzFAX`6CYvh1fH)7@1rnhKgWTWlgcVAADhf;9s=R`?rI^cXF zA-7>?A|SVk+g@5$IU{5l_`DD+&KGmd4%~RFlyNH>&T1GjfXy_^UCpNc7Z(HG@C=QJ z5l71-eS^D{heUJhkkMp)fytZIeOzA#Lf|`vqB_$2tF7Qg{gTgwhm8Gg zbE3LYa-UxYlVmb5;j5Vy(*6`n_ASV+C$)z+ZlEFy_`W>7q*e-^wjX+TaeH{5Lpi!4 zw~Nih`RG}MMjS!BA5@XyIFGMhgHA=ksv}4o3YV|2$rkMvtqc3Ic>%q; zJaTh7g3F6bKU$JeKaL|nRO&FX3T*nZne*9OW)0`TP4X4UHfof8m`=wZoq{vkhmoy! zk5+aktbHsSuIT9*gXi(C@{9Q>xaW=T`TO5fi%=tRbQ~k;kIOziT4_%NJoK8D=uBKR z_rt)mQFv{F9wgMrfuD3KxV~)-Gwrqq4(6XGCzK2A%BfHC5*639>P~}gxy$?IbLEC0 zr*yL)H0=})s@ho{;2LZbk2cb-!N8>lAey2U6Pz)J@pN?~a*!M9i-fF^@2VCXe9e!i z>z?)_dPixpV^&3bONQApR6C95$K@;1%?Xa7Kx|@Lk*pc1N6`gyFosL@?_9I(;)$~I zVB%R!CwRkAsXE=VQ4P?QHSn~!s{f?OPaw_xcQ+oC%Ac6Cim%v{<_d4JF(cMuq1A1u z@%n-jk?)#trjTn4d+ocES@+ytT~wRIsM+ur`pKsFmO2~yA{90y9qQYB&;+%?v8rW? zWZ(XxbCRy;JTt0C{Zrh7?MQ+glxq`qnpkkQZ=mRLqV=Wi78O%dB8xblH?j+OLP)bY$B4;J*1%zulrb_;sGNIqEk`^TlgHCGsbpTrn1X+6CqCPYJTVnhX+ zFjsVvHotPhp}Y)K+QFgu`!h5*r?ZUN7HLN<7pj{z-AeWR&6b@4sv2k8KVRAM4dS=- z>Fa5O$BqM^$KA+xC@Nv7&!#Vs`3bj6l%q^^^<1u;XIQw+iiPcSJ$YR}s-f?NABq4k zaL-0tU;g+vE%+>sZ#)^FAq)UbE@i1mv>(#DbIYV!1bp2_JeD2Ry`{seVu-2u@`YV} z_qNlZfn+M;?@L59ZiZk!R@M^CCib8BA}&MWGeu#G3ZJ4!iMPC5&71qb4=M5PjZ;=G z&E-$>mW;hBss*033i`!6P|z_+lNJ&chSFo=xq;7Jz1f_Ta`FS8hsbOpCoi=*kMXDc zR~J-g-wa}MN1tSOR;7QoqZN)6_(A}-bhj@2?MaH^A^sQEU;;uqj}b=j|F*!qST|uv zuYXY3f2OpJgTb`_?-R%aqW^cRQqswE%=#3XHY|i0*Wu^f5}v?6Ul81%F~Ga})NprV z@K1c+&?~zUEmYY|Wbx*898T$}7u)~FePem`O;(2UhHeIa`LYJ5M&E^|@86#k_FET6 z{%;`6%Nv&O|DUGvKG^xcT^TsV`VZg6yzyB&2y>VIH`ok52D<&ffv+Bf*6sHOyPPY_ z#bs!KaA~n5mzOYYR$f`Sy3l<8XC|fmNrb1C!L5Gfm?Wdr5sMe!WMOnuz}jnF_q~Y= z&5wV#ff1gXqm8)ZG9Z^P1sE^v{{Pqw+Svf=f6vGpes{JS`Lrgc(FjyV!?w42?Pr{dEfW{yUv$$K5<>)*=L{Ko!yze=bo8C z;UPcT0Pp{%p~CY5Oml%&OMdp_Z=SyW2LIQ^-}oOZJ*A$q*;|wAL!vEbgAz8k1WoxwlQ5l z4idSix8HsI?<3IZus0)G>*FlE|L*o%?yO98&nCftdKmQm=N&>AWSDN4?$meal%{Z( zM6?XLy~21^(@OL@#Wim^$~kiGpB?p)^a5~dH%E%ziZYXVy$7@M@}f}|QIa8@%IJ-F zctm>N{7(zvAvm@NW=qx5>nIPc;WiAZ?q7h8PxSUqfdT*9h99M~Z6uam|M`C~N!tf^ zCF!(&t@ZcT&oa?-!@Pi<71Hq-Ek@%^qmq&2sR1(T1;T}#t=V9V2a?WZBFF#RSmT)g zc)g?rRW-k<;9)o;49xx+K3YJ1G0@ZNmqyU*KjK4bo(#9?GG+QtZpV+((92o~eG4a^ zz!29xZ zk7ip;RBg!eHNgb*kD`o?SPcr%AR%m2Ia79Xk1)k60y_N8rG6+2aSh``F^23i7fh+Q zaRUX7YHe>|O2+2HCX4g&i@E6wL?!3^7Ow!$Fk*pB*X_H!tnJ&Q(HZO?y8d~!Rqssi zT$j}&d##>L$zBibt91N2TvFwpR%GgBX6~A96ldu53TISD9|~O#Y$~W>o4c2N10{s% z?Dtw4fPGJLP2~l|@96-XvaaLz!rB|OhWr@2*r$51YVbN|iJ%e{9j_`|iEPLD8=1UB z(X;k(Z3EGp{5ycLfvZ8Ffvl0Eo^1T+rtFdzh9SxB`EJeOnJsYrBngBa3BG#kos#Ff zFF=c!iR28~UqMgUfiw%<>T>M!A-IL$=Z5(TCeoE;ygpNGmgC<_mzXE`fWKpoL4<9I zFqLKn2;D3G-_9v{xU%^F?O3>R1sg5QIO>uIo!!$`(^k|L$LmF-M313&!A(?Q6m=BZ z_dd1fwPF#a(aU2?yUxNT5vb(5ovxGigW_}_4H){g=?I`Q9iu?gO_K|mQ{CAiv}dVN z%uy;)P^BA~`jrsYTTEFz+04&mO7DX0#o|$~sc4}e_`$hT@Gl*a$5H9!KcxewLL!%G zBgry8+~3WH3Lnt}gcR#eq@$z2vA$q@*_fPfpe_y=*2otS$vXL`jwUjt1;P3K`BQ{q zD7DB?b{oZY@V`g2R^pa^{O|F4=pH3dhC z0z*g$ZWt)4+#De`M2UM06uIK-BS@_fK&0M?Ck*EUzk-xnkQ9EZ1PoD7MLCJrpP zJe`6nVYyK>wp46h#hiADM$To5`}1+#KP|;@KBEJ3vLkUFepxX|gy@ zd=yPC7#iz5(_{8U)O!~qnU%VuN{P2JE*Yt|wuIOrE$r?e8bBl=yGxNIk&Kz^Ow{Mb z1aKmyCHB%a_ufw%4BDlShL~_eNX%*%h=Ui@rl;h`>s--vg@yR``AB)EUFv|fmZ&v4EiPV2`e32kYk=Vp(JhLLiu6N^jtq} z6qKZQdQS_Z`vTrBv>jgB61uqyPE{JF{hr2?Wx3k%t;r?a&y7D$k3H_-QRZ;5T~8mG zVBvajb17kWoX8Lg!Q94@%Q>St_$z*N=ewAOW=J?zi}0`*k&sY{aZvA-{7OKJc-lPy z!RcTX?OuM&@wfHzyExEr>~UA$m9Sa2#H@rt6dK=FQ<{91-6il1Cj^csRkL|F1jo_F z4S6sS{r9A-s5E&&}exE;jWy~% z=@)N<;g-G<*rfqtJe9AQH(4ACJ z)Nxw4)TRZ>k9xM`ekY=jtRaROBDdVo8fAP^OYPlZ{77@yv-O@TFoq9q&(~jp!{|yM z%JHRb`_D9I7|z044SzbA3S(T_vnbP?QBSYH-Sw5Pt)d_p@}xIHID$&^SGwhG$M`Wl zt5pFTY5ME&Mn{aPw`MoC11U+Jg&U3zH*3shHwfaLwx5a*PL5W*pHV_@!DtX;{Jbv1 zefTyke(11Y9>TWz5s)shS5bK*eCs`dvPOs71sd`%kkdzVq*~*JMRRz)wAn-_5}hxs zQ31i${ug7QDpeEFJWiL=f z)OYPk7t;#8+?jeku}TimfkPAH`P4or5xNi<-}x>i9T9Pm%L^WRPab>^uoK|4bqaN!ne;rp13x~rrJ^k=>FD1ZzD1|O zL=*$d`mC|{@grr7&>A(OyUFb6mgAUtUC&qo7q)QW?cJirXP+PsZ4F&7rBLB!-3ysS z0hZ;V&4-=JmI5uBn^& z{>u$rUW*Ta=O3EhM7Aw(+aNs&H9Lo#`VlrGtyUwZ&Ew{lb|)cReyuO-rnRZc#8tiP zeLkS97h4SnyVY3+|FuI)BX4L6{YwBVo#5c^uquqKLyK8YisCt?0? z_#>pwaP#l2ke%xIi~A-;X^D!*$!9QwgIsHibUU+_Ye|wWXTxfAX1ZeT2?XgNg?9;H zjIoN9f<7S}TIo0}FFq?S!XJi!C$%$CUAbF)7ZTy!ZsXBJnXC8IDBfCYEZK@tdxjXy zr|b3D*B#yU>&x@(=40M-W}lIaX8w)G7rwLyfZlH!6L{^c;0{8LH2 zloolVHp+Y=xU*7GfhG_B*E~L^*0{1x>-6vfx4mH^F@@8&Rm1ojsM_g9QE@RVwnm+* zL!)i1Ae-y8G4)xsNmA%tsMKyh&$(N;>`X)hnvRD?ucT9d^)ieYblDQ!%2X_rjm1xQj{FPDT6yJgfTvF`;&2;3Gqzn)xiS+^rOhz*|P z+13~CjNKwt@r5mXSqu7;Vv>d)C;Gy1OO=Xqs|V){@Lyz&t|C?-*L8Er?&?b00t44< zN}Bc2f@uTf@W;4CmqeI&rm5CQtHSxsIp(-6BdDwB-15s-zjT1s9~r)>^20fDD)~C> zX$qm4XDB_W;7OYTYb3{Tw@R>BguR$4%p@u8_g^Y(lCk)v;J#q_&*9ejc^BXR8|1@~ zj!VNsve~V=SP94~Jr{lXgt+ofF>_7AX@o~K?(-@B0HSws2L1Wv)3CY=C>~5yGj*#~ zZQ|JxXStc{spPW7xDPQoCyPw}3Si~(zphPFa(d89c!M01lt=;Un9GLPq4AX(?+QA2 zxTKFjoi5t4y-rC9X2XBcC=6eS(JxcPos4zOMSFQNb*HyN00;0Cq$Qk4_^;CvdV+?id8vSXWov7 z$7n`EoWQRw4qk@KfP92yZ)W0Hblf?7zK&*+aDKN{lWiCiJmFZnCg za~}-vh%k@bTQZ9>B+^Ljumd23F}H~qEqw-isi~d1qjFPhBMst1peMiiFMi=G^gcW%}E z)PU-Dd)kkRFP^xHX3oieng8Yc52^(!%qmHBTEI_l@ei5x|qFJFHLi2g;1Z;M25H%KvHEYg^vUX1zty-M6z zi7!`-{4kXeK6ih4l@R6e4Uc=1p-kwhE6o;q?6;Jx9QESKzV=$hXk-B{UiKx>WyW%D zKpnblScA#%mlnxWpZD1+A-pC~t?XK2`<&+Q^Dq`w_JVj)9{1uqO& zrK%{tQ2~T+b|jz9KVIoPe5ZT8LMq4STY3YPC)%ILA!uVYgZ3m??&PXPE&0@`d7QY# z9N%PEfKq&li?*zq9LBQE{o-0Np@6Q3IDL{HQ$jQyoQ`%k1Px=oHhnX{N#h(W$f;{zGf8BxClL z!+L}|Tvu@(sfY$(y5&p7$5@pWFV+-2;CHdeK!XH?TZZw2RnuFoNk6g0=k!1ERh-i= zQMA@;Q~!4V5s(@^kXN+p$@3NeH?Q%@ z@hHim@w~Ud%Mv!1$EV@j-m_WW0;It2irvgDfk4>4{ZteC3^I&H!0MK9vvywta# zkCt7we)}o(%E57+aZmbQn&A{o&wMqPp;(@2y2_e4y?$LM=pgURl@#kI=M_L!0P7gJ zIJc1Vs*_Ib&t$(lT@zH-^?uT_jow!_TR|Ze{k9>w60_1M^TBTHzV6^3aMoD3Q^dk_ z+ai16j%rfx$CA0{Z+hFAWhcG1_u;8^&rEtY)Av5rPg@UJJ3VKJL~CuMT-fTSA0svo z-l&de2J~G6O81z_jX{J4ZrTD|XyDyDscGP;wL(pvS{&dTd6X|nIW9T#n;(~U{KTS1 za&Tj&50P~I{0HW(pbn2Q$xn!|*VCIE&V*`vnlntQok>`qtRvz|o~h&q1}E-@O{y&1 zf4CC45~(ha`goz2&%9jyWgp;#b;p_Bi>$Kw<{!9y`J5)WL~P4#WTvjCk+(fA84Whe z^w#Y?R4}FH2ub{){||)J;?pWUlDH$K7|>=$(5)$#Q5ymlL~b)Xi*oz5@&adSc% zkxG}MY_I$3bXOJAshW-)U}HCFW9`S}vm=j<8)rpLaD}V?wjgh0Fydu7HqN(--n^62 zIcS5Z<=o^0d#~DR(1Uv5ym#6F8s_}R%qJ8o`^c_o$S-i?Eaqs3xo+x`c5ePVPy$#u z+^Qdz)>FF3BJGQ*R&vb%#;(*q9(phqi}h&ZM<(;^{>Dewi`SYvj`n?c|hKbgtCd?;L>%`*A`_ql6?xjMb?ZbW6G=AAy!XUwRsP`MH{#p-viWx zpF8MteJjFW!x6*_sN+FVjQAtOlU{KT$M{s%B-`a`DMYEka7oKL{q~|t?{Cgai-F&5 z*3_!2S5oZyK8J~DKnSdI&-MVQkGEe8s_6*tS>}S@RLy+tt>OZwPca4S6};oqf8joW zu^w7_4`$cz5F~sQYOeAiH|>`ksQ=;x<}0bO3oE0Ajb1Xn#|vld?zu_!q)H3x06(M$ z!SaMjnuavdPhzu(bRt*ok{f8xmz$E8+di{`9P*?)%n2rqZSu1ls_QcXIfq-NvgxJQ zQn{thrCr9MCdvr+KwJEE12L&Sg75BL5{CG!W)5b(Poq ziybVyXCAqEH-Cft9($XC6<9y+dT0_IuCjQoaFR0;mV)gV?iS z)l{nU;yi04<^8DXH{ryCF9by%%hBqVK%HdUO~xE_QDbbA%AEhwGjW|9oToU@%LpAE&|TPsW~x^c@oKcXC!1cdFvdVMoZe-XN1 z9QJI$X1(sOT!0H#67aWc$wgmp%&$F)htV*ta0P5bdJh?GmKXhS-0qq1rT>9Dt0^?Y zE6LYxSbrQUOJ`>6T%vP3I5LVLZBX$^VXwL{2AbT8W@d1Fm${?pm7x{pB<_9NmPi?$sAan z&6HTT+T4?#tUdiT`l{(ypq}F-m>SK@_V!+4jISvZ<1Z zIhUy|l~IoE?F`sUvBfi8t^~lN9c_I3U7gXpr|se2SJxB{m2AZZn^TUD$Pe)C7&5_% z@}gh+L#w*aLLwCIs!!gsoa?B)JCouvcT?XMW6b#be7ghR3c|>P<2Dy|XO(eUQ;Gn$ z?U{!u{KXAB%z(m5En)Fn4=jl&1`4~%xO@D#CJ^7~waqB32goB|4=Y2s6huE@y+PE+ zUktZ|Nm8_A!eZeXXzwqPIdxTBk&T{32S#)4*9{cUD>TCrd+LV?P%$lC>Db$#3U#Zo zcKy&vVbyV=U$TjqzUb5*^jE*39u&V9c(Wi1l%9#2y%xM?%ihubefg8?x1`KxxyPe- z9A15Gxaj7n)WLc5LRV4rSPhgoAZ6=4HH}<32JK~1@Ygz1*GAr z%P7rA?{!7}PRnVhE~M7KC>Y zrZ!13jC8C5_w-#^YZUPmpkuW{9DrO-MU{_@^h9N$ zANYt)+&Er8AR6J|Sa|aLCIOx$PtgF<8^OvjP&&c>R|OPKEQXfA)iT@nK*#qqxVOH& zjT*NPRPJ0puhj3DciiY;5o#3~M=#l}0cG~T?imQ+!_UaP!t&?qj_LQh>pp%SY_TX` zBjS8Q2xl;VDIr2-w&g|@&BQqsxucrJDUk=CYF%X-LG2Ka@|uy3@(H6KcU^bi}5W`3f6O=gjx9O@Au}H_UD)8>qb#J1dh%XDoD|1IPh6w*yDIfp>UpNNY`r^eY_$K7 z=^RkQev!T3>ZblPS#F7f#KX(qH(8bpL-)f*u^mI>;fDKk|1X$1Wrc2C!p~Et07(|n z&koNDd0@Fx!Mv9`_$iRF!x$wKF@Y08RTw<=`PYaYYdLc(@05Kdd?g8FQ(?_77+GUK z!&5T~b$}!M`3#V=&D{FZ9rEnKF^HGvu5$e%R zcs8@=euk&l;w0`Zr0cYkW4d%kL9}Xunr_7X$ z2}^d^2TmKM7?r5;Ieh52s8y#@`9+Q!B6w8xD%qqDQ(Ylk0hC|NNKnPS^c6TNOZ9FW zV4g4W*p+MQVuvQTvcX!yp8EiTTN2gC;5g=vMv0C6uZedsTVXNB5ECYDK_OZQfqqG4 z^t;SDioIMkqfxG>db7Yga<8$0dG%}S`1xQ|>b_YB9~Sb#D{YSVz{|fyh!7tABkUp$ ze#n^4*{$I1mL#;0USv_0zn19v9`*ZR}rb=Z=1a1}W z{&(MIrpD3w6q!cK#xTlE@ldU-MpaEK>or#w9cQ(~!g;cr!h+CUpNrx|^`ylZYL4eW#p>x(P(ZDR4`|iW zQ8DB*Aa7%M1K~4lA&g#H#Fzy@UjDggAG%N`y5HO@l8aW>oJ37^y%k@dhxL80Ecwca zU;gWz8GC)d+lH@Ekuc|Ev^C{mFyxIF#ARB@&?BW1O zK+x>`vYHA-y235V%EC|WG0sOr@E67IzjVgeExU-l5*_=`vs^(fsBAK0lJ^qSv?siA zfp2sH@PS$q`zH-aj!1qj^c6~#F$1?+jLy?h0uU8zykxwAEbIFc4#CW^HQKOk8$zQG zXLF}{fr1yml3vvnPQMQ{-bpek^d4adX7jm31zd*`nH@#M$RH)lCeIZ|1Rg3kVA9(s z$X2||S29f1-=Z1D3c;my?divfUtBUfdVW1DI>}J{bj6?;NllZMzKLKP44WzEJ%3ks zm%uMj?*<1XrVtd5{Rv9^v3I^~O?3rkQv}d7FLY$u_M|m_Xec+DE2Rb`%1TS9x*s`; zH6T3AY4?rY3{XPZ>;P{2KIf(YXs7NS*a%%Zv@NwM@aS6rtG&@@7A+f<8I~O2yNh5k zTS>A@Y~b;Ch3hqD7q$|8vyM%AToS#t7}=BnvIuVW((p%(*OY%E(qz3WO51i2r6Ie& zo|K-2Hg!Q_)XSSEY=GFoL^R z4zun{s4>b z_1`QZ?gn*MS@%NauP`+^+@{Gg8>F%u`3{llO#BJEl`NE_H>L;WuhrIwgMASCJT+h; zr~Sh3mP0My-$Wx*C+AY~Hh%Kyxp%&_dgmO|>3yqGei#l6NVz&-fbC3Zr%4xF4c_oj zwU)*$ZFBZ+s4Exg1lRei?T;hPADijOr^#ZgmMJF4WvF|8;7vYufrlr6H9F&#r><|2 zP4q zN7h(8$$CX>5oo+DU&+lnn#li!++}^^LX5?-(AYCxH3y|K)$8)XbTWu*X}AcY??BIs0b5Z@e6N*-$z*DTU*5&Ee-{+yc;dNVW|DnJaptn)GUOsAbf{yuEQ*;)4} zIRpq@j%`HM&8TGOCcKHw)$5X|>;{pkUUa6HOS`*7x{*^|AEaf3%lcHW#oYFWtWLD6 z2NkB5`RPtxHNTwmrGPriXMs$DvyNhl;#IM=j)jH8cCp`7L+LGSwGZ%L+UX5R32+0{ z)XESeO$~Ax2X50W)8#JS-)douv9h|xM~6I&Wp2!e&skPcg_(EvpQ^Mylkf&~l-H7iJx=}0WaLLfsWg_?$>06J-!34fS~mHWTsppQkH$_};nB95k$bD1Tt zmmeq%Qm42cYXD&i_ zl*XTDMSVC9Jg9GUXqi0}mTLJ~m#`RLKY()$L!~I=}t+G|)QgrU|=T z#tXP;N9vFi?}xGv=`W^o=xv7id03;)UD&v-)5)s@z$LE$0$m=Nimy>4r>pP~9g-ba ziRXTH=#SfRd$>VU@4glnuhOrn!t!8-;Q$)dA}nF0&>DM&LHQO0opg6~^Bc=H4(pCz zd#%oo&ShPd!*+Y}KDgQ#f%mCk1*ub^4Ii54?ugO;IW*cwrsjJ*Kj?V@ zpF7w+d%+4oL;@IBUJ$XOlveddQyCuJcxtz(#azs1K>PB3U!_uE;~Vp*F8w0@20eL) zSM{b;Cz^3PYDj-Y&G{xS7GC{{$?fsrH&Welw|lHN$=|zHVwbF_g_G{=t2_crB>+)< zsq&5yaINmdqUkX`iz33KkK4)mE7ePb=C2`KNnZ)EdFDT}#-D)IMnpHr(UG&zA^~*k ziH#00Cjuo|WkX=6?+{!Udtps+0Ouj3F#{?}m8+mWXIybGNWHt|If>SPkpwF=R6LFD+6 ztgsweNn4P5kC;X%Q5PdbX<`3uQi(6EemHbne+Az_xjjNGn-d9oX=)vmIaD34{0SWx z{2`d9(2>>ethy`=jiT-|x2TxZYc7qsIJqrl3|_sQ{jOz3>u(zoEt8(fUL^_=tyQZk z#P@$y&0o=4R$`nS>q`nOyZVt``$JR@|6AO=wKbK$QBRBvR7l^?Ygd)Io{`5=-&56O zIXFWq1k3Ct=@%xPJyk+CsJK`WM4HCzK$TMyWmkpW$xRrh%(KN%mF~->0u2hOx^Qs# z-AyUy%c|xpVxve?-iA)0teB0@7FVLPLo!Pi)|rAc_HHDpTdZ*jrv2T4k}C59?IY+C z-6~WwlX~ws!;^`^QZqKBj`FH71<$pt`go;EJ`h_avchE=U8^+HsSGnyNRQ@uG%(ns z>`?-39=`vl`f_2z4287mKMN}E7qAhEy!O$ds&PrfAZH_eAgm{J8WbYR1jFxbRg#`@ z+z?b_zJ4;*lq@mZ-K`+~b7N)i!CJS=7-T*BJ3X^jUfGbnLSOkuIAh`ns{v~#ucOqgvv8yw)H`)%@e|Sr6mV6tX?FudhIqvKjo{<>c}ammjIJ zJIrc3APl=*M_RKa=ust`>E@FR{N7;o1nc~r^j}aKl}#Va*`mNoCLAxXs|0$;?5O+H}d5m*d+X=w(`-+L?MkY3FHe$(=@n%>5N

B;nLvJM%~Wt@V1BkknBbVYkD&WAYuZD%ZqqF}#U$ybcr zsURepYL`f?jCLpkg_*1R;c@@*XZK;UDZAl1Z-vVD$%`rz`WwW}IS$CFN^g{%N`JUJ zB}%E?CZb7mdB<%9=dyPvws?ifN1kZt^<(%;=d%A$=0g{T!PUe6KVtF!C!5!`@OAH> ze<*n41&RN0Lfez(A_Jo!S7>DUS7>i-7uq*7>ff7>{!2qgXi2DrS9G$|=$ErPE!yts zN&A`ThVk1>*=kVQbg$n!+(R~gzhecXbH$MR$G^kULi0L4k`d%}kIGh+gUoUO&+qe! zoTc7Kf(lcktRkJGY_5FFWX5d$YM}?)2-eRqk_uv=|C__Ity*+|)3D<{_V<8;didUp z(f`I(Q60oYhc$k5{H`hb#S$oaVqeC4uCRt25P@AVosYY(a=WQ8AKsh0ztntyOncrH z_urt*(FQ)@DaLaGf7|5@w)$99JSHnU(JaMAXnh>=S$|X}nxJCv9w6DEBQ?1?QYhv4 zyy5wC;rmpadF(Yz79yy}Kqr+)0}y!g6vMDF3>cZ(haxk|W*4D)CAr+>P=_uUr9l>8{{yo#xQ%$dwJHwje4^6OFQe!?wW;9nNC&TJ9q2V zeeDH_byp-J$b)Td{cW|^BYL}fuld31vpLpk z$6oZdDq^q1(ryD55?(>S^arwzj*8kyk(IJ=PJ`V1YJ!1zmF4Zaz#N47Tj&Kw;PlT_ zOny@S_yhS5w@?qB2DVEu#hw}cqt5y5>&#!haT|*WOjfSDT_rHeawAAHMx=7V*4mFm z9#1y5sE~|rbSAEDLP1RGLV@Q+FGrR3MD)_^t8dFjqZxWviP`mPVJ&LqZgQmB+AaZ| znWZV;0h)Tp!q3SXG^C*Y+4aVwkNmU&$_rvWEEBH?NeD@l-Op7R$imYU4O3W39zdAw zc+t;_?wZm1JbRNq5!@RDFF-pi>QtsfVNce7KXn{+1%fXKt5#)IZ@RK5AofIMfo^Mc z%TvB*n5PnNuvyh$C8qDglFQw$`A@NS5Wf;mrOB}hrBoj2Fz{D4iFTh{!B#H?BBIEkeKQe2*dCUpWmEz~I-Oks zrpTD2kh*9b4-zRNsUn}{2wJP+?5JL$j7K^!h^H$=L>}YX@M@L8OPr$S8GgLX&H~cH ztb2KiZG=X>cc@dS4D&P00U8=*7b)I|;T0TE*E-$hnXccPI%~6B&cm33j~Sr~JOAj6 z#}Ks0KV}LPX75hN2^)`~d@dhS@y8dLd_J4zJoRE1T?>jEL<<#WI4KQR@SyT?3`mol zzF1^2#gOD)<}Uq3@sA4&E{Y~bfXVIzRhjRR8DH3v_EoWvy$vA0fX=pz!8?_t$pdz( z!ZBcEEsye1Av)rFio0ZTL$SB=eJ4WlD@vrdh#k_^t3y?I`@0m771@KejA29O%Bn}R z7H{Bp)k8fQVW-~l;cB&6NaOq@QO0jUFQT?ZcajqSSvbufotNjUNqCO{%2>9(>(wK- zA4!!WW#SC=@b3ZZbPm(+?54J@XI)n@S1%Y&bGPX_;+r%hwW9>0vifg?bk3P6&yh5V z1*=(GNVea(L~#8oke2GP54G)ZMt$5#Fc%@5psK$EyMgauYGI1aK=exE;NF$XgjB)K zSESJn>n+JW=QdLKGFsvpn(s*}o4&ML@fy@-?(ea%MB)){ z`Ysq_A>kQUU_Ef^GrXP?l3>*`=*|;(%8{}#U5oF?9nYH|)iGP?YT(Ipv*0yltRoXK zE8Fj0oeUI_`Rwe$6co*-MzefhG8Kx^kbbb(M}KQ|`JUh3P0H!e&Z=xTu2_X)iqUYU z_CR?>tn;=bsR+^=Rt4DD@iV;YhiM%UX~j<%V`)Gz1B29^?|V`4W}-8UJRBD;r>S8mtV>7EU6bo73o+D9BG!{7X)?aF&ux%bSTk12R(B4Zov-|Dcp&z#R@tZOZs zQ8h6-4@=Py^gBgyGZMfTog2%K4j>n;u}%Grozn(|q{O5ueUc#0uxbw0k#7$Y zA>85&AKwD8t-;R0ab<|XGmRzfji8$jal-qZz5sNxH#j4;nVbehLL)tzeqUirl>M0d zZyO-$Wcpac9L=(0?as$fPU&$>{}Wcy@>L=56#JiJLX6X#P`5&M;Z$ykEc=r5Ac0?v z+?L3;{xsO>`kwe;rAV=>+P7)*sNjoDEdOaH!zUsc+Q#g_xHI*=FS7IiQ-R0BxOU6pm{6?Q;LpM*D z0p-_e%0$x&T;`>ZU5526X)~bx3{(iOuqrSC)n<2GO?l|_N2`8lv)OHjy306zO~LWl zGBitFtM<>ftQ#k}AO0ZI-bln05*hUHh1BcmPTNkgYBaI)bodL1a9C0HPAG1$px=`* zL*ho29F>K(E?ZZ=a%mKT{d=wtBg6Q&_Bii#K8oep>Fmm{_cn_j5?@NloejI|MW;l+ zGyR|$eE7~U(9LOQu}qZsrs$XHAtaBIT4+=fjo_j@l?dMga<1^b%kJV^NL*f0;`?opvbasRQ9 zod!tlKFocU)1*>QIf}C6W>uV@waS=7#Aa{@dFpXVG(iQ(E3aRpf`oiswrCVi+LLx6R6_;EdInUAG%8~p_xJshmU znEV5LS(LF{a7P!|J;`P=5DGt99@l!e8Xev7WWTQUN=d^(B#E^Tz0eafw=b5p-nw2f zwyHEKLRT=JKC9#q_F+5!Oc#wuVa}fOQ^HBp`WF?AsIX=MqA0Tqru&8wG| zQwq;)5ot(e7;72UmI4Px zk(#&ms)BFH3%%oR&f5go2OWYZ%U|<}I#vS*p7qL`%umS4%Yf9vlCD`~d66sHaHVSk zZ`q6QuU^7OrDCh5^0aUok9my_D0BqN!(H^Ecio(M^*8)=CIT*AT}~vfQTeZF8`&1U z+}8W~42fnrYOEG%--VFr(|_lj=3Uhh-*6y3a{dz*ej!}VlF#j`ElY6LCH-OVgZ`=- z>)=@xqhMyJ+FKppC+Cs$C7SO)>zrddTA3`jpB)(YJjJRlkBWF=t}el0Uh+eG1|~g= z|6A0>y_w-fd`nj`~rE@yxk^ya3}{Gh*Q7R+x+%MV(=BD zF*Ol?yi7a3G;TP#zMnEaIHsqBLGt$33q`d~%>|FdPn7??S)7S9A7!>#S zxxHa6Q*vqe!R2@Of`c_{*>wUyI{jmP^3%@WE@hwY{)8fdcnUcJbRm&Uc*rIliyAy8 z>Zd$d`|hZ`J8;I}Ky*=ZuOJbG<81@bLVv=&7AA1TO8Kn$AGVGCmjomsQLL!6(Oh6_$0_i5EWJ zJI!y}B)C}M_1f|v<<=$9gn^f86aqV23HYl-&)R>pDp;yjKDOGft~E@js4WmGy?mu0 zj9itgY41#pc0F$Iz@0u^7rZUrbt^e<_T{X#H?3Znw6weJMJ7hp)vSU{-I-S+tJuEk zG@D+@a9p?LeRTT9v{*2|0W!Ox3ok!kQXOc1puHt~E2(wYU9@>|qTweW{%pEqcLg)M zl6IW^-GR;2ZK3r0z07Hk$t%ESrvP_c(EU?^<@oE#AQEp+OI^4Ootn|xY>VFNHb#@V zmz%P>?7U{x5MlcSSVDl|#11UoIWZ}kwW7yHk@)yp%==h2{m~?=)*Y|u2r-xFt=^G3 z&dS`yckHu5i`vDQYn@MOMg`#obfd=ekh8s9`+pasZRhrM^xWM=r*B4s#qB|&jBgiL ztW|Iu$5`#pf%2x}F)QBBdU1i=<~qkShq9XC*-jHs#HzC#cb9y6DU5SS%0tV@i%CsZ zy-4xUPjf0Ht>r1pJLeey8=ZPvcjoAaEd5oTX#;$fp>x@si?**};HiRbe*8b}%ljEX?B*omH5uyfvzb&&U!WlvmuKG2uo&qjh zzc^|pu3?}G*CeCteh#F&l1>gAa1mIosv2rt<{c{*6u+sjZKNN#v_{H%aS5-101`3i zqXv`iB@IGYxn=o@a_;tOLa?W2=|`fURy2t7aOd3l`n1(J7xz)KxME-vM_1IIgmf;) zkKoD8hq+Jg+ggir{9}%si8Sf>iTJ~vtFmMvb7!vkFn&f{V77++pYzp3+uDMU$4@tZb|*=llqdEg=*#?h z<)=)4{AA5&iNN<3yh|V~Ew0?DM8C>x<#6(bLq@j)fBHqKqF-&HIu4T%M_u|8G3RBL zw={@$3`yPZ2;ro|dzZ~mow;_MsHe(PKN9xDzcUJ3Ev`}_^hsS*DQo?S5_5)rEAt&t z4tzh!9+cC~%*i6qVXMov{5pftQsy!{Mn7hwGVX#Q+^-N_m9Q*Z+d(!x`t#kq>->Q^ zyvIaF&_2<(n^8Zp@!c+0mho}p&tiigCyx8gXX5pa()M=~1OCm5u7CfEA4YuIg*D4Q z`D?dX;I6L!yCr)MH1jo6%$Z*v;O>Sa%=hcQX+nc4DlA(4o7B?}mwrhXSM^_zmb!-x zj}u^N?JOL@D-q!+odNLxGW|1=q$-SYL(%Yxeki@B(Kk8udz)#s%w&frDp;*@Gc6~T zBS)c_NDPMC*~1r$+0ExI z2zz>RkvR}J``0zU_{dAP*L9vt!$4#Yl4f!p{B3$DGcW_FTwMP6hIu=rEVZ}%aW}JI#=PC7@?FbKzaTd6sOyP*1Rq7L-cVf_>GIZw%90;#Uly^yzp+w+Vt{bS zjkbNZAvPsHuNbM!E+87-pdHr{iO-L;Mu)vHYX$0#vEb0hP~O}Pf+V*Cp!i{K?Fk0+ zCm4+O`A-aHj>s{B)ltMB$0jgmrn@e=tRN@v8iR5qvgJ=m{g;nV1&XuGlugfuT>)y< z3?)FO1=(h&HHbl3ymmzGU_B2gt@7E)@s08h@G9?*TQI9UyZN^ZNWIe~?jFL>Qa<=D zeJ14C2-`0qDHHbtLXiEWBj7LOM;hj>g2;=P?>}DxSkHf1|IPwkRg@UXKicq_@t zCQ&NBPKUKK;H;*!*0uLRBN3nII6+pt!`JXU(kJGzf?qDBw)cNLD1bP=cn|cSt_}1f z#Fa6u#FHL94&V&I7=Ob1>YLfHB>RvwOqr=tp0ajir^MUTyfS&zQH~4Qo$s>KRo*z+ zqI_x;IEn7>?pQ?A88onX14=yfqnRExE0o}8MRe>JV7#HwPs|GCGD>B8*M>|m>9a^E z!17<1RNuVTdbtyl?J~HQzIR|54i;4Y((A+VI4n*ofbvf$JFn?e%GJ#=s4c~`{f>TF z8E;^Iu_}%pZ8l&mXW*wt-}SC=pE*6M&)?txt6vrHqO;9IT0FCs_EE0R52bu(RwFGtSB z7jtuj%5FMbaJ&VeFs+2cH(I>li{trp}cvLhW!Mq0gMjK%|sO(y2| z4}iiE%s*c%6Sy?Y$wHQXTnv#n{atNv`>5Mzruwa1DBb8cPA ze{OeliT|J4zB{PNr`tb)2q;nlDk!}O3WTB}pcKLQl_DU5AfYNEL?NzRa@~NX56e7OLFIMYN#~H`&R~4G?CwGl$YCSqF$8qqOehtA|j!a zrfiW}9y)cgx1_t+_Zci*%U|?hTg`8pvCHRC+hT;O{TnrIa+M!BHS4{q@dW7fG(&Z{`Cv~TDdE?t#||_jy6>(A zaGSElA@pJRL$2;LEcxbF@8VJBcPxD5B`Ks`ekAI-&ze5{dQAeLjk3kNhda4}gb^O( z2K;1}%X-EG6(_&Sz`OfhHOc42Dn9RBcn+`oC98BkcKu<3dg z-dK>klQYe$hmAY=vp+tg!kcEpB89*(S4)I>jHi~&=!(1{7MUlc3xz*HYSmz;h4g)d zelK1n$B@(gJSUTe&8aQ5xLYX7cXnNEw)wl^-c-MU>nQcw((nqlVYrY#SC|qPg~R<` zgTMD^j>+EqwD|Ud8%aftkMwORk^VIF`%l1DH8%X>H4&l(Z^i2Ec$yc1O>J;Ee! z)61T*AS?W(s&75oTyu)9{xxKlaVhoJBpkm-Cz%c@ZD$-QwOY_1-yxfq3NA{-8=;9s zYYB^AqMPLr#UlI%DyUx)_^nt|vJtwsm2L+kHsZ)&vYDca58F5!Py?7_t){)qK=t zTm^4|KS9YO6&a7lV%C}QWeG}XBF={n6fcLFy4fB^m(i<-^!Caex!Y#;Gk-P{4X^vDO(2~8B^($`T5z}k+=^aImiuO zCo!)l>EIvMcabiG^(dm1> zZ-!SnmDJ+r!?J@w|%MicY9Z;EHsJj-|KoIf;(W z<@8*krGxb)m+9C zdOEuVfg4NDf93z6rBd5>v?rVxi1u;~GaMGAXprOS3?$yrQ~I`IkV(K9`bm8)Ox15F z`52j$fSOy`I&6_iw2JLXVx;O~3m>~r`qt$5E&<_3ftD65-^}nX)*K6ibYa|Crid_C z=Cu5WA~VCOS;nWsvMW+>GIwEQBi($!#2vAr58dkqs#fMsNN0BTv<8Tp#BRU&ohu|uBBAJYF`0b~i+L)`}6QtuvfMHmr`-lxP z#uX{dPd1vE?_i4b$#|_1Lk-5a`9|t|Fm+8oOTe8q5|?8qO}JBWc|2w0lxlX4zirTv z`{kpkq!vDf#9_W+DIdgyk1zJzJeXovyS$qCp`LI=9E`*t4#n(omJ2HUMF>JM8J4AHRWY_h$~?1RUFm10*OS9>Nagdz>ZC|5s#WV+xnLw&kfYgO5efw;#+ z)SgWVifPOb`h+WRt#h7$JTw067v>kMNneQ)Jv2zk$BLBbd(>aFW^2hcn>en(o<46V zpocEGZid{7#nVPe-vD5`-UjZd#A)!)36V{X)Dvj7kc-DpWj~}B@eP*>LXXJWKrAIN zM3%rg@?+jQA#}_mXRX*(GFv9RqgiBRH1G?N^34J|Ah&(dF3RfOla)UqC&J-}~ zE+Dd_Op52z;hvbJCl6EIMTJT)>#~9n8;)u6;g_Ol4e(up`@m62zDuP0zW&@B$gM~? z-b53FHHBn58_$N@xf1g2=mJO5mumRt>{I=`PYz36y*^<(!cBrUp_xnZ%VO+QETI?ks2F}KS0pDt4 z-a&4;jMR^ociWZ;d~R^@^@kF`Om#-)E##4)?Tvio-NH z*LwDWnLMSKD8r!Qm?UB}*BUv#AO3zX9$tFvwP`R<$CDo2&UpRhXtB}H=a1HQcj2(P zqNH=j{ftR|$l6V5;Tl&!G_qRwg;e>xn_sGgn?St#wpkQ*wNNa^Eq|ul)_cnZ zedcAlKu@q0Wv)L;N*opzo|{7jv8kBQVC+4V1`J?lCI+=&tg8qb48veRVQ~(eAajSM^<(b|#Jn7`WD%y@gX1~-pq@AEk0!n=v>XVp@SPsI6CZcc+rvd{ z^iQ$nz)NtHuyA^9hn~}h;e{Y~S=FI$zc8UB+mJ=s>NZep6vDBP=Qb}TDj&m{d0g6j zCUT-KqbK6m9gx9eP^XsvD?>WvLh0(#ji>5mUAEGrF+v3&$UJnt%Q;*(1P3eApG$i` z;O8DKGzepUHaLUwpt7Uw9p0Ks-*4?{bT_&&SstpT4$FU%Q+UZ)kL33)Ek!AnR(dlK z(|IIHa<7C8Z%FSBiTM4x3*~A|Bud@Up%-f`*kQ~D0+_ut^9O$l%y28~vvE(8E?S~& zmsh&B>*7QKpGu}Ps^IZ=w1;_elEyuRN;E(RjKgqIXhD8Bra6nCIc0iasGss2l`fQz9BL@bJx5!)1Qa+24+c*|K5_+^yxk zQ_gFVInZ9p`<~6^2DIg)=y<|q;vj6QEEN=e3>xoHIn%#f5-A-nT5ib=8xhux#St5y{O$FRn9s462G!SVs`w8ur6&)9dE}*XG<4 z+5TYeeel6SaNJ2f_DoZ^h_r5*h2UeDmH?_v#xql~_?tLIP{#6W5-sZ#7m zs>tCFv8cOq*Eoi0j(^%p_A7cBpWxqr7Dm`px_=v~h!4OyV{6w9qtP$Wk-{0fSOSU` zWGD2Vj8Re3zQEKo%O+^z+j02f@;qGhic{0&Va=AwyK_1#=7W9)(}}De z(L@Hcn59jLiOUhl@i1d~of2&wp*kYkt#YYFd?KRMBJ;J@%|pY-$wEm}+;8xJdr3#s zPS+}^$>u;Aqvg1m7oB#VzO$!Ds-c+klhDp^zEeidC>CM%yBgVEhN#Xz7ka2C_Kz-Q zLjS>w3kIo@B$J1~W)!^8(X**>{d%_?diU>uYQisZxAfDE2%(<*)PNEXc`4QNO!1`vuN?H@X*D#s_7vI(;(X7tdb!Ncl5A}FqgaL9s}WPuO*z(Udp!3ZAC z@Oc5QOcRkg-g56!XoW)jOtbVyYzMwv!93DbnM8d4oAZ@yJW=M-n)RA8^Nl1f`K)ZQ-zbU*7Y*sw1B-8{{2 zgfiK2N6q7GAjEG~e>M)Qh244k z+WJ!DjE8gJZs`KsdX& zyP-wmN&2ht(r0<9n=xteWPYTx?uvfFwS{sK@tQOVF<3Q9S@xx^yex6jI|!R!t6>Xu z%$4a{c#8{Y^a~p*HSVnM(7Yc#L^sZzdufua7))2axe@6eRb&5ZzVb+Bpp2FD09F(> zjw1w2!Z7YklccJ$bp(O6pA6SpU$CJuxyBtM-ydat3ew$?H z$c%koqeFW`4rd^ljc})F!|Cbfkti2nyM;nGn6YsM zFSriFVnzoJTY)qQv@Z5PJpA%h7cM~eKI@--ePZ1?k9vDk184)jT_&ruhWB5P^^@~* zs!gva5he%LZig?N6bUNSjlX|X&8taaxv*QTZ|2eAsOK7%lY?Hb&x_Vfs9$PLS47-e z`x-+<4$tK0xLN;%%w5+@`@KcIz@;AL=hm(keeoTn6dmv7-YuJj~iNSUsmU18%fzYY@zpGkzBKa6fN=5G2RnSw}#5& z1m2$>2}7MP$aku^15-rwy_#MpVTiO7jX#+mcDUIc@HJeIizm)E$+v~Mo8dmh9)+=_ zp`g*mmhOkXeF37ds%{m;cXt~|l2s~xr2;8M{Sn8TaiVHrKXO`6gxnyVMXVV*$F@aA zh8oi5aNE`Ws|3*>SBlN4)2cO2dN-J_<{NFie)o!j7cQldRrm|PEpxS$+OExp9uSAM zd@}@_l<6i#ySwK?Xo_i7t@X3d*9WL=iNtyG!mYEAY$~B4`$fc&=6$l}I6f^alWtWt zMHPEj^%T)JYlS!!nSp_Bd*?0-g!}Sk?R4MJn6p59$MZZ8dUj8LoQ+@UYZ&@Rwo89- zML!PUAMGGNw|sUDXBI}^f1s@P;D-2d!H{FROW`{2_j!n()vdLh9Aa%9tr_oWR!tVk z9%#7R@~a=#>rz>7XkE~5!$jw-okrHi96IZuHvP|(l(%Z-`oNPxh6-XL_u^D8$$IfJ zFI{G2b>RXi)H_-(2=$A=(ucMda+E-b=aZhY+U;<6dnuZ|#M;E}i3! zehW@5x#O>_J>)gSpZO7clLvbJLPfA1WzaX^O>ztOW$+nnnskYeiw@2&Kw9TU=OO%M ze{+XxOExS*kmO+Sh{*d*hoV$=wO&F?({t_3pxMPzKFYz2Ukp zuW_|k;1AZ8cG-f8d&t0Rkfk#G%BJbb?}!tUvq~13U+>GR)Mr{PmKwFY#bg|GXPOCyHp_Z&$WZi&m;@nY{N{8EMoAtE-#7&j(1T z`cxGNP?Zg}{*1((@;sY5w~@_)3P`*r|1!k*>r$fmAza0hyY`OGAe6O9CQ)br9lh}; zKmtCp;FYQWKi9oe5~zrO2N43Pue>{b45SvoLrIzzBP+*c^Tw9U%n^sn;$KH-SuM5& zQB9a_m-kp?;)v^D^>#M_pwQ2go?3Og+yFHH>*2I!eEB!Z8a@_}3Tv0obR4$_{sAPH zKg$OfjPHo*ydb8!Qw7lSe_#7f^MOqNnF0T;7^mCGV<6D(*A{S72k`%nNN`!38)!#; z8GjM_<(!9L70_vi94)XcLh9aMm60v2vc7v)X7kz8`V3?L(w~=a%TC=#*y3mq2vTiRj=$ewa2H|)6RZ-by4V`X(3|C@zbe%1KmVm`S8T3k&cEbb_2wlX ze9F6q!G8)kUzvYDdu;q=rVlO#a{Z)KK`^2G$Oo1UM z&}eA0ex{>pd&`cz#Yf)wR`_jWo=v;(`@ken28Kzf=x}0}^jP(Pcg9~$#}0uF1-4&K z?#jSLJp^XN&Ywb-ykm!2cv@xRYe^ z1g5U6A)5Vn7wq2NxA_M#MH5W073-x>G`4u`7k}Cn8vUQ>nc>+IK$Au$wRtyovjm23_c8tAUc2WM< zy|*0krt|BZ2j-KK9%~bD&mT{zvGBT1t(tcpdZ3fm+?hIujcy(W$aeIWpAXrWqEEzl z*{2bX2}eNfkk?!lcLpbB{C({7F+g&Pf^jdDcim?l!0!hr0p1zcqrHY?AAITwxmO1GFkPx64Y=M5=(wmNFthEM zef$i6L9V;WbKEv9;T+x{E*Pv@e1X<|C<1m{U*~zJDXxdN!;sA$?2oRjpn6!MXdsPU z0lQ{wLK;!WSCogJ7Mr}go-A9^ZB)Zrb0E(07Ml-fURb zGxGJBv$aG60i&e3h3USN@Mc=R`oMW!lrkcPHPSQ-7Wq6?!CFIl5Ufygn0`8?f1@j# zn4ifh`t+HXjs=H{dwps!F1quq_a8c)ZcMK7<0S9+&^t8Tu#ITd?$tQ$A;*LjWH zZh9b~(JdU4VonYdyv>wv%5eEyDgSN^-T zqzv9RV8<Z>7r z(^<1uLj|6L%r>9{s8mgA7Hj-`p#eOX9h>@^<1F`QORj8d&Fbd6Ek3~QmwzM*p9^1o zvx%j1Mn?)l{KZxT$?Sc=+u9HVx#DgMzzn=HK4W%Gdb6y;+x~?d*S#q|@1;K~ExE;* z?4h;@v!=GD{~~YuB6#WBQI+sW6Weam6=zN}e1QFgo$UgwXqk?J4J}wHW=Y+@goQf)K!a(xJF{11*|VkupDc;CVC^PM~(|C=4E++14>|ejK5Xm?95>fchd^E&yP4{(d%5ZHlpeRqE?9RknM-;9_ z=rKJiW}9e+zeYs=uG0Sxg8L7g)8EbC{|hMgVBxRRC-RoX(?b8cWNQEhB=i2uPp=)( v79Xnw&_TKGEtQoE0HodVcK`h)hI0iCm-j<*ZYel}fRDvF8+fgmXX1YW`MxKD literal 0 HcmV?d00001 diff --git a/docs/source/index.rst b/docs/source/index.rst index cd763b3c8..b46b8fa81 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,14 +1,30 @@ -Welcome to the documentation for the GRN inference task on OpenProblems Benchmarking platform! -=================================== +Welcome to the documentation for the GRN inference task on the OpenProblems Benchmarking platform! +================================================================================================== This task is one of many other tasks hosted on the `OpenProblems benchmarking platform `_. The interactive benchmarking results are hosted `here `_. -The *GRN inference* task focuses on the inference of gene regulatory networks (GRN) from RNA-Seq expression or chromatin accessibility data (ATAC-Seq) or both. +The **GRN inference** task focuses on the inference of gene regulatory networks (GRN) from RNA-Seq expression or chromatin accessibility data (ATAC-Seq) or both. The pipeline evaluates inferred GRNs against pertubation data, by training two types of regression models. This type of evaluation is closer to evaluating the biological knowledge that a GRN should represent, instead of evaluating the presence of edges in a statistical way only, as commonly done by using metrics, such as AUPRC or AUROC. -Jump to the :doc:`evaluation` section to get a deeper explanation on how the benchmarking task is setup. -If you want to add your own datasets or algorithms to the benchmark, check our the :doc:`add_stuff` section. +Jump to the :doc:`overview` section to get a first summary of the pipeline. +If you want to add your own datasets or algorithms to the benchmark, check our the :doc:`extending` section. + + +.. list-table:: Authors & contributors + :widths: 25 25 + :header-rows: 1 + + * - name + - roles + * - Jalil Nourisa + - author + * - Antoine Passemiers + - author + * - Robrecht Cannoodt + - author + * - Marco Stock + - author .. note:: @@ -19,5 +35,8 @@ Contents .. toctree:: + overview + objects evaluation - add_stuff \ No newline at end of file + extending + \ No newline at end of file diff --git a/docs/source/objects.rst b/docs/source/objects.rst new file mode 100644 index 000000000..031ae6065 --- /dev/null +++ b/docs/source/objects.rst @@ -0,0 +1,327 @@ +Objects +======= + +This provides an overview of the objects used in the GRN inference task. + +.. toctree:: + + objects + +Perturbation +------------ + +Perturbation dataset for benchmarking. + +Example file: ``resources/grn-benchmark/perturbation_data.h5ad`` + +Format: + +.. list-table:: AnnData object + :header-rows: 1 + + * - Attribute + - Description + * - ``obs`` + - 'cell_type', 'sm_name', 'donor_id', 'plate_name', 'row', 'well', 'cell_count' + * - ``layers`` + - 'n_counts', 'pearson', 'lognorm' + +Slot description: + +.. list-table:: + :header-rows: 1 + + * - Slot + - Type + - Description + * - ``obs["cell_type"]`` + - ``string`` + - The annotated cell type of each cell based on RNA expression. + * - ``obs["sm_name"]`` + - ``string`` + - The primary name for the (parent) compound (in a standardized representation) as chosen by LINCS. This is provided to map the data in this experiment to the LINCS Connectivity Map data. + * - ``obs["donor_id"]`` + - ``string`` + - Donor id. + * - ``obs["plate_name"]`` + - ``string`` + - Plate name 6 levels. + * - ``obs["row"]`` + - ``string`` + - Row name on the plate. + * - ``obs["well"]`` + - ``string`` + - Well name on the plate. + * - ``obs["cell_count"]`` + - ``string`` + - Number of single cells pseudobulked. + * - ``layers["n_counts"]`` + - ``double`` + - Pseudobulked values using mean approach. + * - ``layers["pearson"]`` + - ``double`` + - Normalized values using pearson residuals. + * - ``layers["lognorm"]`` + - ``double`` + - Normalized values using shifted logarithm. + +Control Method +-------------- + +Path: +``src/control_methods`` + +A control method. + +Arguments: + +.. list-table:: + :header-rows: 1 + + * - Name + - Type + - Description + * - ``--perturbation_data`` + - ``file`` + - Perturbation dataset for benchmarking. + * - ``--layer`` + - ``string`` + - Which layer of perturbation data to use to find tf-gene relationships. Default: ``lognorm``. + * - ``--prior_data`` + - ``file`` + - Prior data used for GRN benchmark. + * - ``--prediction`` + - ``file`` + - (*Output*) GRN prediction. + +Label +----- + +Path: +``src/metrics`` + +A metric to evaluate the performance of the inferred GRN + +Arguments: + +.. list-table:: + :header-rows: 1 + + * - Name + - Type + - Description + * - ``--perturbation_data`` + - ``file`` + - Perturbation dataset for benchmarking. + * - ``--prediction`` + - ``file`` + - GRN prediction. + * - ``--score`` + - ``file`` + - (*Output*) File indicating the score of a metric. + * - ``--reg_type`` + - ``string`` + - (*Optional*) name of regression to use. Default: ``ridge``. + * - ``--subsample`` + - ``integer`` + - (*Optional*) number of samples randomly drawn from perturbation data. Default: ``-1``. + + +GRN +--- + +GRN prediction + +Example file: ``resources/grn-benchmark/collectri.csv`` + +Format: + +.. list-table:: Tabular data + :header-rows: 1 + + * - Attribute + - Description + * - ``Columns`` + - 'source', 'target', 'weight' + +Slot description: + +.. list-table:: + :header-rows: 1 + + * - Column + - Type + - Description + * - ``source`` + - ``string`` + - Source of regulation. + * - ``target`` + - ``string`` + - Target of regulation. + * - ``weight`` + - ``float`` + - Weight of regulation. + + +Score +----- + +File indicating the score of a metric. + +Example file: ``resources/grn-benchmark/score.csv`` + +Format: + +.. list-table:: Tabular data + :header-rows: 1 + + * - Attribute + - Description + * - ``Columns`` + - 'accuracy', 'completeness' + +Slot description: + +.. list-table:: + :header-rows: 1 + + * - Column + - Type + - Description + * - ``accuracy`` + - ``string`` + - (*Optional*) some explanation. + * - ``completeness`` + - ``double`` + - (*Optional*) some explanation. + + +Prior data +---------- + +Prior data used for grn benchmark + +Example file: ``resources/grn-benchmark/prior_data.h5ad`` + +Format: + +.. list-table:: AnnData object + :header-rows: 1 + + * - Attribute + - Description + * - ``uns`` + - 'tf_list' + +Slot description: + +.. list-table:: + :header-rows: 1 + + * - Slot + - Type + - Description + * - ``uns["tf_list"]`` + - ``list`` + - List of known TFs obtained from https://resources.aertslab.org/cistarget. + + +Multiomics RNA +-------------- + +RNA expression for multiomics data. + +Example file: ``resources/grn-benchmark/multiomics_rna.h5ad`` + +Format: + +.. list-table:: AnnData object + :header-rows: 1 + + * - Attribute + - Description + * - ``obs`` + - 'cell_type', 'donor_id' + +Slot description: + +.. list-table:: + :header-rows: 1 + + * - Slot + - Type + - Description + * - ``obs["cell_type"]`` + - ``string`` + - The annotated cell type of each cell based on RNA expression. + * - ``obs["donor_id"]`` + - ``string`` + - Donor id. + +Method +------ + +Path: +``src/methods`` + +A GRN inference method + +Arguments: + +.. list-table:: + :header-rows: 1 + + * - Name + - Type + - Description + * - ``--multiomics_rna`` + - ``file`` + - RNA expression for multiomics data. + * - ``--multiomics_atac`` + - ``file`` + - (*Optional*) Peak data for multiomics data. + * - ``--prediction`` + - ``file`` + - (*Output*) GRN prediction. + + +Multiomics ATAC +--------------- + +Peak data for multiomics data. + +Example file: ``resources/grn-benchmark/multiomics_atac.h5ad`` + +Format: + +.. list-table:: AnnData object + :header-rows: 1 + + * - Attribute + - Description + * - ``obs`` + - 'cell_type', 'donor_id' + +Slot description: + +.. list-table:: + :header-rows: 1 + + * - Slot + - Type + - Description + * - ``obs["cell_type"]`` + - ``string`` + - The annotated cell type of each cell based on RNA expression. + * - ``obs["donor_id"]`` + - ``string`` + - Donor id. + + + + + + + + + diff --git a/docs/source/overview.rst b/docs/source/overview.rst new file mode 100644 index 000000000..7928b39a4 --- /dev/null +++ b/docs/source/overview.rst @@ -0,0 +1,27 @@ +Overview +======== + +The pipeline evaluates inferred GRNs against perturbation data. The evaluation is done by training two types of regression models. +This type of evaluation is closer to evaluating the biological knowledge that a GRN should represent, instead of evaluating the presence of edges in a statistical way only, as commonly done by using metrics, such as AUPRC or AUROC. +The general setup is shown in the figure below: + +.. image:: images/overview.png + :width: 100 % + :alt: overview of pipeline + :align: center + +The pipeline can evaluate algorithms that leverage only one of the multi-omic data types (RNA-Seq or ATAC-Seq) or both. +It also evaluates the performance of two controls: + +#. As a *negative control*, the pipeline evaluates the performance of a random network. +#. As a *positive control*, the pipeline evaluates the performance of a network derived from correlation of genes in the perturbation dataset used for evaluation. + +The two types of regression models are: + +#. Regression from GRN regulations to target expression +#. Regression from TF expression of predicted regulators to target expression + +More details can be found in section :doc:`evaluation`. + +In the future, other prior knowledge can be incorporated in the pipeline to allow for evaluation with binary classification metrics and as an additional control method. +