From 1518abd6150b9400c73ab79bb57bd0147098d41c Mon Sep 17 00:00:00 2001 From: Bjoern Gruening Date: Tue, 30 Mar 2021 23:43:33 +0200 Subject: [PATCH 1/6] add merydb datatype class --- lib/galaxy/datatypes/binary.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 3ee97c9ac75..7a7793454c6 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -201,6 +201,34 @@ class CompressedArchive(Binary): return "Compressed binary file (%s)" % (nice_size(dataset.get_size())) +class Meryldb(CompressedArchive): + """MerylDB is a tar.gz archive, with 128 files. 64 data files and 64 index files.""" + file_ext = "meryldb" + + def sniff(self, filename): + """ + Try to guess if the file is a Cel file. + >>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname('affy_v_agcc.cel') + >>> Merydb().sniff(fname) + False + >>> fname = get_test_fname('read-db.meryldb') + >>> Meryldb().sniff(fname) + True + """ + try: + if filename and tarfile.is_tarfile(filename): + with tarfile.open(filename, 'r') as temptar: + _tar_content = temptar.getnames() + # 64 data files ad 64 indices + 2 folders + if len(_tar_content) == 130: + if len([_ for _ in _tar_content if _.endswith('.merylIndex')]) == 64: + return True + except Exception as e: + log.warning('%s, sniff Exception: %s', self, e) + return False + + class DynamicCompressedArchive(CompressedArchive): def matches_any(self, target_datatypes): From 6e5d6c09e17b17353a2e6d6a5af117b85bbbc9ed Mon Sep 17 00:00:00 2001 From: Bjoern Gruening Date: Tue, 30 Mar 2021 23:47:27 +0200 Subject: [PATCH 2/6] add meryldb --- lib/galaxy/config/sample/datatypes_conf.xml.sample | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/config/sample/datatypes_conf.xml.sample b/lib/galaxy/config/sample/datatypes_conf.xml.sample index 9aa1ad0408b..28a9a49b505 100644 --- a/lib/galaxy/config/sample/datatypes_conf.xml.sample +++ b/lib/galaxy/config/sample/datatypes_conf.xml.sample @@ -267,7 +267,7 @@ - + @@ -907,6 +907,7 @@ + From 2828c7140b9ebe335b9c71dccffc58b0c5e21c5a Mon Sep 17 00:00:00 2001 From: Bjoern Gruening Date: Tue, 30 Mar 2021 23:51:31 +0200 Subject: [PATCH 3/6] add example meryldb --- lib/galaxy/datatypes/test/read-db.meryldb | Bin 0 -> 65025 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lib/galaxy/datatypes/test/read-db.meryldb diff --git a/lib/galaxy/datatypes/test/read-db.meryldb b/lib/galaxy/datatypes/test/read-db.meryldb new file mode 100644 index 0000000000000000000000000000000000000000..354da28bc6686206ad8085acb3c71c64e4c56910 GIT binary patch literal 65025 zcmYJa3p|tW`vu}?=y+2_-N99Kz_w49CEM5Pl-u?pL#ge2y? zFdHR{#flgf6J{~YHak3ac>a&?@Ad!xynPiyY&zO!}ZR_Oo#|9R*CNZf?@Qf9<- zOm4M&r*c-xQ3J8L)ADIPRT$yN&k^KAkOU4X8;tD(#oq%~JO2K;GyAS4-*Un)&n11f z>%$MzysPg$cZ3{`?7e@<^o?ms`m$q{_fo|g!%YCX;Rz-;a``v*<@vrEWY)P|v8*V9aT9vrojRk++=JJzBp;#qbUULQkSM-=XgjVs#Q94~(?Y`ysWq!gX!K4__XW;E@>&kY+&gw%|B}5wN#+~D)#A~WGmlBC z`fF?aN_YE|p777(RfxZN$r*syB=MrW!0c#&RlVSn^JqC*#N;uI%!r3Dc6dTMC51+g>|LFBzH zy!nB+Eq5eNY~ggJwyu)bHqJAn8%HMec091i?K!J&;Uv8x9YuaPhg|EAZ1@vi+gCVP zHPHL>L7}dn$*-39gmIBSKF=xiD503^U_(d^T2$ve>L5CLO<9%yj5ya7H?fg@*5ARe zbO9ta=!#o39@c!%9lj|t;aU!(pzzQK;v1*oxLv~Igpeb3h;Rd!8%HG{Q{{Vui9g)o z23^q!@AOy~>u|#9=E~*mmFaq{HFb0Y{?D`nft-Ky_n;r%I7|rH;b(FnCWCvmN~Mz< z`z8_`V7Vf_W*zSALF-h%VeWrS6v*#B?`cv=9sk}lS=)RJVH5$yH-y z!QEqJLRYqY!=h3_n0*<{mCf4KuPtFml}7dw-U`laPZT(uaT=a2^@m};X%`(p^Sx6qCi-}GAC~8)x<$ZD;=x7 zPkLDfIM~alu2= zbjt5TN?|;{NR6&hbMrg`K$qhwlwR;^t(5?0;nSmj&jXqjdB2}TZQA`;#L$b8{GFiz z&!RGf!CB}_Cm+K`^YwhX1l26FFRqWjO$n;)pDN-)gYVdID{lZ9-i$UrZ1-P%%%BmU zMzQs^^&{Cs`IXPE(fAi=U*6Eqz^vU00AdjE{?i_3Qn4PoP%N}gNh+{@qjE6!Y_ z-L*pHR>{{AeFeG_WmsE9pdMN(i0Pbn&J*cW6Cgoh4zG%YD2!ZoD zEU6}lUNY)Gu4{-F@n&g2D{`9ef=OTOEPuIp6R)Bu6U;NFwR+~$0TeU88``k zPHUj`&dP0_G?UjAo-=|VdKs_y88Fpc)myMV1HFXl36r#E4(b*I(n{30%tCglhE4fU zCFz@$8#sZS#xi`vxLDnhg=8aKVuP1+@uhE-$Z|XmRr8q5HL*gSYk_U|k4LrO5p&Oa zP<8>TRt}y1XKtsOe;9A|qM}U$!)sq)YRKKbV7HJS{+pH<>aY|fmfhofVI5oXp>l$n zJmWX24nuM3+VC;0^djZR1uU$Uu0pke+!oy@az+APunSDy4pt8!u6@>hrpn$-l7V)r z*r%-iX>!$X3s=oYp_psKp1YR^vg0bj_;b*zAa+m0Bi2EI zY1pP%*@)_v-%)=jFZb6{W`-;w2e1Fek7}xH0tKs@EH9$O*-3>>&O^tN^pia^iAj zprDF&o5W`H+c+#1A*=in5$r;5t`=%n>}mxjp+LH7hE?sC$nDXGh-7{0R_hlmf;ZP; ziHN+IyaYieSI}exqKh2rc=?Nw#cEQarK8={^Wms;b4Yaf@a$-@D96=8j00 zDM;SjMwS3JWw%)hJ`DZp51Yg@HNva4;Y0r4NG7QQVe!V9u#5v*w34@Xmmk7X-$o^( zErM|e@1tSC)RmTqH)@ucSue%LxEg42k92-|zJ*o@X+%ChH&r_v@9MomF_jByhiEvUbA;jW#%f)`Rj}B6G*4_$@kGdqGU)X_3zH5jk;M? zWdUmtM>`!Fbu;%NtnVYUsy57gHfx{yt67&&wRy(W?7Z^B$5PVyg}AqGU-~5}{>{i* zQ7T4wcUF})@e5BlESd>0TNSlpm~qnkm-P!UETiYMq(5&%r0y`ot#0Fto>{wKZ8P$D z)zX=wjIp=cqGx6$3sqNKyUE_7vt}h)zDmXk@)q3tw}FWy^I&h`h4*56zs`(7NVjX< z!WmmL>j}MP*7GVFayM9M)-E)_;?9HQs|YYaszF)v@%vcEaOh5cHjP`9julEBCN^u7 z9t)WiUzvf8d?oA6xmU1n;`J*?CcE?Ra}ilz#iySNU-SGOh{mR?OdFRDH~x^0LLuTnLh_-$x&o2c8Ag zsYVxQrLKEuUrH_?syRVRvqI(108_gkaMKAb;`3i|h4(#advV|ei!8KPI2HRZ4HtbC zfELhnSWO}frQdJts?OmB`2`Gx%tBYp!f-DCwn?PWyJ%Ge(g^Nj3|NB~ zE%Ob63+rq`lIaCW`3!ai{fDmV0y>=@G9qwE*UqOM_1QlGyEei}MM>A77zJJo!Sh}Igw>!6+rVJu3@Z7c5VtzTeqnh7kh z4Et}eE{)`~9z{E3g{qsDOGoW<(Ygi|Skt3K&96%~Fjnd{rHwTI!+EQZ=B@DJ)mp|Wu4^q(^nQWK2N<&!5C~&V!=FvvkV#t|2CQiKwY}hPm_w~n{ zdeOdg4iYF2mvGF0&E6LojH-78+Ux%iZ*|H~;F`0Xn2{w?jBs4No;94M4p zhz*63e&B`-y`o101ffcgsoq-miBs2N=7O!cnwBzb9nEK)nZf5gB+`r3lK#*8XzJ8J zKzx)KMMGGk5R_;?*i7gY_3e2z{f(eiBisP_NyB&8(D>>my2Xdz7z5hh;zI~Be=$f= z75YC{f!1J=rx_^5?*!S z8HkoZlqZ1S39!{}0NxY`fGeUhK{-Uvgy^6dKn}&m8EA?})58Sp^BVjKO^5+F@3PV> zUYXi%6Rl7+w)~%}{+Yya^1^O+e0o{b#v) zs#^1TdBVJ=sS@#Gkeo2<^cyqaNnC;RSI$2oO&F=DGPZm%He>EfBFJ8_3leqs2NI>P zK11I)BiZ#2Xw<0dfk^_{Tjz*F{HS*{3pm0HVxX?>k}p=>%Ct~mj9v?uV9ZqF_Wf1!z0uRiNmq^njS(ECgS|OQSN6kNhJ389P!po_C6_n5rS;{6D;*y zgP3nEwc`v}zaPLuctSQBlz+WcJPmeS?*j+mgusUJ&CIy7?uUnhG~J50XZRtWpZ^^8 zV2xc1eY%=F(icm)gyEaF#3pE0nnbQ?By-cBS!HXSj`mR04~{)d0B@J%a4LAd&(~NM z3S(o)SK_=EwmTAesrRuf8W>ky3(y=kER@PArw-&h1FMs4k6Eq`)1m}P>wJ5p5o)0< z+S$iG<|1<(|EShY=gHROZ@#pF(F*E{J27`t_AhgOOh!6ZP;oGugG*C6bq8HoUrCK| z1$Y1agGY?geWscwx>YwbuYfi|mVDw3dwfux!!?>X~x9A%6~Ud8w<7g`As3FA#zN2fd8AtkePzt83WgXp-*|$b zPnaWc2a~LWo<6tz;@0&!#Huh=e?+_FDdkYCI@MTzxxd~UO!^g!hgLv7&EcD9{$gDXN!zm>!@iz*@F#_9Yt|Jxn1;+(#{Vd$ci>)~2-=CT zfj=;|$Zv*>ud!e%VwMT{F?);II-9^bldQs-IH$YT{QPYwe8UK`&+wlPO7`U}JF6*k zcKnT;E8a{wy|996u?!t{P-7Hufa{M8koLRu3l@|8181avBB6amwne;eB_`e>HB)fW z3vBoj|M@~%2=R49He(c^pZyN(vjTN%mfEAln_#f#Ru_i!z?s|^?g-`_8?om1w>?DoO z;I6Jx9k&;acJlff9|XB%Sy)UoSL#{YQRW(Kttp4x;dtQ3E83)Pz?k3s49TuHc84oF;R(61vOLUjN6{owe#FII zbn4AiXKZ0~q!uS_^Sw=KKO4W&MdQG+5eV@#JSsnOQ+<8GJYLz=G<%R*vequiB*o+~ zff=g0wZo6aaTJ{@P^O%+a58F{DEf7f?p{L|lNbkjf4_4#_ptq|PU7Gc&t zaut^LhF6oU$NCYehAgtZYr}#pVtgOz4#-|~o?aSl&w;tilW^97%y-Qye{be|ol33FN>dYB-%;*IQc7dze^v*$d} zW)=IIB0J38;f0+NH#=h2AMwX=eqE49%#969T^ z^HT1c5Z*zxYi1DXBq3+O10Y0g>5 z-b0~#7!}OX-@OqXTE276u@TDuMSk0E+4q6O_9uStXt9yYZNuFklB^dWx zQR~mBFik;;x%fjfOB+KLv$P$-H$!nYAIHFqp?}Lbuockm@^GeZFW>W=^BQpKe5NiO zeAT8s8Bx-vJ;PptOje-L%lsEcD^E8G7NE>xjhpfDZoEYb&MuR(&%$?DEz}3`g8I4A zHtk`01N(r&F+r06spD+lWzvZF2l!h>(LL{c5sf$lX!#e;bCwUCU!y;**JRsNiraOt z<*v^zg-#$bFbj+CEPfxt!FT_M`i7XG%uZ z>;oFjdksp^I)|SRs}#TWo6(S@_@*!oK5ghAi156X10waQ3uh#Yk;woEBoT(@=tI(v z8d$7xDY(LaiQ-t2%YOqXE5%A*P@lSh4K87&$YP3yx)V|6vF6_-`v);QhX^ZZ3x_|U zUdP?WXfl)73!U9&Zd@SIPtJtD08u6L)cr~Ni~P-FjfU7drD4C<)7@uIHj?$>Mq@x_ zwX+s3xktMZ{c}!BqROsv*77fvE*JytLK3u88%lH&x$mK$Km_yvm))cN0_57nZu$la zzenpxuzvbG7pvUoneykEVjvl8>Cn#IAl+qVTcfaBvtUM9g-^ub@}cMymn>Z~2IyXM zTC6%$l9I^kid!ZDQ>u&)Qxz%I&W&(zEu_dZ7^?Q)65TSJnHP{%ChU2u04V;YxdW*{ z?2KLT4J56jF1>XhBzA{u9`WYV`@x*ip@tTx-s4c6jOG3o^8TAO>!B%ULNc<1ycFxW zD$`)~Fb5ikMv{ycBi&XylSjDg8e{&VE||$(3_GDSMz0*IPDHNp<-G+ax5+aTg}dZy z%Q*GROQZcstg`@R^>BT$Y615MPnWwyb`B_9Od`D#Yhz)V`0On-N}EXsrq6}PJ)oeb z;ZJIDJ$bqc+%9}?OdY+=WX5$D`17K(_B+)A#6LV;flRwd#nC3g{sCf^4QoSM5l4Bt ze5&Dlv2Y_6R{;rpKBoyj1TFCqIg;=@ZS=D<7`5iyLdDZv_{Q`zz~?&k52#f5PF25H zVt*W}s(csz0tMmD(~W)FM)%oG8ab~?B>gAWu1|Q=Mu(iG2x3Q`0p!buH=lWL*fWLv z7bt`b@BkL!-b2-Oozs-v#MeQk;9a196Sm_Y=s`gnJ!Utl@|-4-d{x7p6rtW&i%^;v z{aV<^SA)o0K^3S7jzdWQwjc&w!*8Uhf3i9?S8j&;{H;vgH%$qZ7+}(*2Cjm2a)YAN z`AjL?&!jVVRK9QuEUVT_4@6xuh2O+IhILBoMF;;rKqUN$?Z|?S`qNvjt4)fs#UvyEr~&8mSvL>~%_ssZFgM%vUb4t8H+Re5_{6$D<>mnA^HK z+SEj|WPu;ICTbXXQi`s(7h#WbQtaK~QSGCka*v;G97H)xA+_hkI_C>GTP%qARlj}> zuf-i_Cp){tNnPP?5yL>zSTJ0Zn5s?ZmOd@)u(sh5_OS}w;iw=90PNxS)@Etdn)d z&;+hqM~@Cc;5(&_p@yKoAJN)-n4-eR{??E`{D~U|_rKvO(Ura>NtC+uEr%dXWc>!J zyHF}j5@=vwo-HQ3FB^Mib#NNIp6}uZMewRN_{#A+iQDEWrt=re`HKZ~Il10Yj<42- zE>UadFVB@{8s|F|tN0nzsX8D>0K1Rzbd|OB?^TyTPrFRSBsftjPEn(r&S{2NC8FS4 zpeHgDG1M^M6S+Q6M>c_YBooDAZ7QkFM1~KAdb6+ej*>nH`HRVa^P-E+YsyHDkV7iz zON$`2?0fU|R6lJqQPp;n{#!hg3Ne5oWso=~^bO>z_y1RV50&2iuT&t`hQAl5B=~zl z?ve686_Cp*BGUf>K5NL3v-N`ePtL19Uaaa$j;(>3(*8e{E9PzMKLa`5#{ZQdCdGyS zmArY}KTsaUXZk+5hWu}FIcS;(O*a@DCiPRav;Y3y`hPy`@+#OgxW6)V5=&jmx|l!1 zw{&h7^V%@jk%p>$FEvEfsqp^~OR9MmMm%rvO6ZkEZdBm>f)R3tIcv!WxPXWKhSBK$ zUu4Vdw`9@qDJXU@3cyR~f0<5K`QdBC4UJi7Tt!adR3`eA!7K7TUiP4Q3!l_g-wOq% zu&@fOTRv7}&s#ku-0p$j-U6Jg9tfrpyl7R2T55eZRl)Tu#Ir_7a2oM>PvM0O;rcA} zgFocD^Hv)->|}Y4YplAj;bju*8(8v>Il+yegpMkB2t?g)&e}^xWq+f{* zJwbkFi0Cr0mGEkgymDu|+??rY_q_}sa1CQ~nP*>+aEi!mxQz{qeNfB3Ig!bMr+Q~lg^XsZj? zDY^$RxUX%M?+8EetN#O>F9W+$B{6P!RdB%t%+)r`ByLLwfK@7A@UpWujtC~!whwc- z79Zg1#?@esLEqgm<#S_Ujcp4o+Bq9e=p4}>XB`f`{HWE88)U`3@;m!?{t<KxBO8Ui|g&qf9{J?vNM+St~XvE|3 z6cXdcv!F$x;1&3u+LA5>FP;r>b&z;Vj8YC!mu?(kMZOZcc;g#VW$Z^;{BREWU%&)^j_9LrAU34WtXyfDj~v~X!!?t@wL** zzNX-qSluSJ)>qmwM_#p4=-fX*@}=}`>T5LaI55`IGG~DXJu1Xj&!vJ^*YY8(8P{Ys zuJ)UqI{HEjnWU~gAlvbYi~^6bz{e2>ifuhoK_frpFuuAOyq0BIcx1*ur0qZw1no_W zGIU#h54z9bEpf863_RdHhBzc{I@njgj8-Emk(il04rr(!vJcs068B~_IjlgwPQ`u5 zrIP0X#B2*!=cp&F1&|`u$ih}_7RvF$EjT{49bYk;%&#^wKS*S^jG;fLKUaxZ$!Whd_3TCLaBTE>Pv0hc-N#|JS0oNouDb`^F;=Gt4nd~{Q2|A&PwK2|SU7rN! z%E9{Wnjneq1|_L1Z4#gHMPorWRgx~3OG2%pv)d8fm-!r@$phK=S6@0}Dtbc?fTbH8 zxuHgV{K!WM)3s@n5hl>R9=bPQCMhA&oJ-}OlY5@3t9~2!Ozz5Nt$AcL`17)7pDJ&I zV@`G2B!AhXT*IBQXIbfiqW0~0I6A96=rPoyuAAE-Vqx{~GB93k59WQ**fGy%Y^1U| zl{^#g%j1Jb_{;otStLvFD{|Rz7tdsWBFO^$x>{R;K+Uw>ngLdfnyj7SzuF4!SfV0c62+rh7)df&k7*7}OOetEow_|m=B`a|sNwf##(f-2uc6b!tk zg{@KLX{o3;pWuHk#O0|>wTH3Xw^E&%@Dfi52CeL|Y()RSL-Dy1Z?YCC4|>3<@_#@g zw1Lr~up#~Elp6gRey8ZtlA)M3M5m*+sD9MMR*UWGU?*&I`9_oG z=08CoFc_K2i$Ci=GY^Q$tDXeKPV0QZVzynjikRYxZcsU8RKD4lSba?T6yYz%iNP={ zGWWKU>ax8>+mmeGN##^f@%I9#n!g2Ce*0}Mz%VMQ$@x@%Y`T%B>;ogSG$Xh z1s1%7djyHhO8DZ=Ml?)V?z5Qw2qs)@C4~PDU7x0V*)n#}H;dvw(H-Dl_xg%=#@~|Z zui|?dBXdrt+mtW-=ruynv6ZVgl767W$5eytqTY^6P5|$fIB@=D0xB&v#xqOq@HC=buGsOaI`Tqo?K-@N1js>n1Yy?tQg&$Le5|S;w#yIm|3sQtf%~8n>3T({N^y@3X_$3rvYk}lYoDIB zz@sY$q{^e*>A7eGfugOfLJ&AKJqu{BL|PG?a59FX4P! z_HgE&^BZ(6L_DV_JoTYD9wB4c#NMcX>X4Oi-BZcWx3O#TmSgL!FJedpnXU6yqNShemHVuf=S-|0E8Vc%aPQpcY7RgXt=zll4Z z&%yiL$WKl^0%Y+Unb|NZ(!AMj|EVF2ZV-m^5XX;8kIFn%I74+Qqe||^6y8z%o>s^D z570ZW4F0->C93ZYq3&KAH1!(X+KI|k1U?sQS~&xGqr%fQ^%2jSQBL+_jz_a3*J^Se z9VO%N)ra@`waE3)UKo7TtN{W>ogzg!e5ZT7+--3Uc00#>_$cO7^w$D*08eX>o6UUjbfh@(w+i`>=B6XMn_JM`I+;iY_#mj zDb{a6caasjCJ!?hKzA)*iv-NVR&Mq$82=&u;>qlP-aVvH3M+X(rH?KR1~A%uvLxy+ z`?6w+pfKv$yBWa;5IDzVo{^P+$%>~hV^W=S(;YDds)p7$zl(pO7LeJMz2O~%=*mvF zLMFM+;$Ck^ri7jiD#5S6iyguENTz%~*-83y4E<`6h|Viq-aTlGaZ97$aJoI*#hjPCo#-5fIemGg zlil!v!oCr!ens>p;5uXDRGTrs-JIbUoKTy)sLp_?cU_eO&sK>q0NtC^7w@M-IiXDU zn#at>wlH0fwC(opbN$c8YB{bby>VG!v$VaEv7|yY1?42Y2)jSm75*#xCQ6+%Tdm8~ zvu}K0LAuGv&6)T@i*%e`$39z|01vQa<02DGCd}ySV4`X6sNI81RP9=m_qP$;A+0Rf z^%hT70WWq-C^*nj>~w$3p6QBO@9mxtxo}6+>@sf@$6oYTCw!B;bofM_-zLd$ zMpI;M+8bsy`I#!MfU##JC$`|bv{V!^92)0vuO@xb<5-$ZA*cyAa$}-REdV2zbXLc$ z4AfdbR;t7_T%lkxx&#}K<2fg&H?s|q|FMI9%|;D75KVeV?J_e_X=}-}92Dc=gBnkc zfu!#AHGASIw$jQXA@?x*(KZX>HU3uoRBc==_D4eO0a}n3ZOIv$8LWL| zAh$W6!6U_;i{ntth{Hce6RZj5_rd>Eg&Vy(_LS=Pl@3`xUDN=jMISwX%%oEu`rjr=W1h|vM&&M?Kt`dgqRfESMx zb7BXko!L&@>Q{@n23Dx#pM=QtkOOGK;9E{|Z&OZBx$S#b+A%AXNgsDy`;;4BevJO5 zzp1WF5o6JerK>`;P)P1orv2&uyC!8-Ph;2gNdESs1zsj>h{LW|0S=G6XfMwoBlI?> zf)|~1pYse}V;__^Oq+4zt+%pN2eQnx-~9wV>*;WJcl17#k(13|&WJ5hreTdA__r&t zXWt?$b?qGR<)Va7;_mT}(93c_(U9Z7e>3@U!MnI5>p&puB$z=ml)T;wI0pdNp-o$C z)mp^A23)=siui4jKIZ6JqHqNph%!lkXUQED_%Tk?z!U4qbeI>-b?<8FqISLriz>%T zT}6_?f*IMLkbdI_a02G29%ep0uC~_)B}&an4}n^I6aOGA-rzSt3k0seZBT}_j!8!H zg@0sF`h(fdXb*TR`){)C1GT}(+S6m4&vGm7;-`FWfS*4R@m;X{fk<-CLd;V>dqW0a`M{szmL^H%^8i~X=M@Y#D@Y_0>Sw|7qg2%2+i=G8B!Big z%-o)H8$>*1CeLyMW{&=j58wg-b2t1LgHtjr;0q(cBCcsh4h{d|3Q(s*LQLm25rn!~ z=<=@-*y0PM(_(e2xc$Hc6HBA1j(66_!~2s6TADXQs}kvEv4_sA z!F$bkH|pyU7xAs=+hVs5k#&rN*Egf|sDI6PXW|80H1kNB9R!@wi^Ry~!;j`m`Qnra z|3MFcvfLR=gV2X;YY2SPltPU1bDF6ng%W}w2=7#9lNH)f32_df=nk6{sTO$JPuSmo zi2oqgR_Q_b2KLWqjWB@-{-Li2_23*;`)_>d|HVy3@?(2kG9&k*29 zhAP6J1>`G-=@9IKDiRCVH-iv3s40ZN!8M>8B=??AFSX#)t0%#btm5Wyji68PN5vk` zlAu^h0t-*SWt0ov{0#GQ;WHB?E6zTPNXGcu(RheY2#;LR5Ay^xKenkMSuBtIKx`%&ZWckc55~-#vwo zb2e`J*iEu4p%i#?7rzTH{nq zxo+1m)tFWMI`21wzP6pf6rVSU3mH-u#asclElT}(i^}D@N5)4;EPlN#HTnE&_*1#q z&32T~!eIQmJMB`lcY?9eJFUJV+zJf^Cp=0Adc%1eqYIj+EpDdjx=?IQZO+(3fv6xr zXC*DexN1=LpS0&Ax3a`HzJj-F>PmAT^FP46b7WC6`DyIMo`YeL;I(F{rSP;M6zz>3 z$eFFtb#lID0`m+tc?Bc!EYYFOQzu>nvV4Z=SS*tU>)&jb)|2hy+pi8*zMR@%msVpYAX=!D8mIP{jZQcBkL_O@pK~b0(7vug8r{iR zTV=SazNe9)w!Q+Wba$UFv+em99*MvFQx75AP(;bQ(7^lnW!(N%sYxoMuc8&L<7D%7 zcTc6_;Ah5nbr?R+dG%XftknSG=FkRITB&|~-4}vSw)Ba2iXuG3mj14a+~qaGEDv9~ zzZB+E>;6_59{~65;1G%;5#6ls*$GbHHwUE|r`!nsb_9ry-djv@pa9aHkqM7C3V!EZ zqh0PNzLb*47KNPx?c++DVYU*Ap?g#m`TVkvbAIvr9HO9HT)eNRy$ulR1bvrT1(l2i z2X#vPC?bYeWJ50iUQyZqf^Z9z44--p&~OYrmw&|maUQCi&xAE>5@=A(}@p$xviKBP@no8)#=nxy&j zxHbyajZFOYHS|M}a4Ljv@)Mr5(GzBX@JxKl7F;DXX81q=EU5Iz#6xF_A|M6a0x@#M zFa`2{`Vk&?=Y3Boh(SLKiTnLeoYF>*m;q}4H_#YEV}~5VcS-VuT_BX6X?b2VkfcyU zmYK{0szPn(cQOl#r7Y4sX`{QW!C!#XnC=2+xA^BnR{jf#r$ZntNj|a*gw8qei&gPU zL>7<@h$0B29YhwX;>}kz$Sc<9OaAgmp8R$>HnRnAPMt(owno4$ zSrcW=DJLVvl)*F}lb|rK_IG%|=E|zzsX{+{)tqv*6>491FQbV>dcqWEZsZ1E2NZFR z6>}j^VpnStF~o)jP8&tf$2kH#@f=0(eaUmP?Wn(A1_877w=)Yjam@(nTA>XIq<2$8a4zl(za5h<|iF#fb^9O3l$kCD^DMg=YcW9Qcmp`NC4^}0d*efIT zPbEijd;4ceYcgXGkp6p#4ic_ESZ%5*j@%-0Ts3W~)6fFM0%gmtMuMt^<9?6{J zV<>S`M&7zJI(qR=*5`52qjK`==M)#0GOYb^ykBcNL5JPqyl+NAH}z7tcL5|H5c8K4 zXiEe6eM(yc?hokG%yl-B*p7EgVJ)$gwRoFsP1+?X+hyc*Tpg1qjhXEK5M)28Z=Y5} zX`w}O`A?n)tsO9ai;ysqBnsfO$cn3KR@fV+e)GH`hTqN%`Zp+m`xin3e@aAbl-0Zv zvI;81hNe(HqeJv|GX2>#wJSJ|))zJEBfY8fus}biOmj|`rr0ZzvTz6*IJJ>NS-YNB_uq6&dOi1`%K)1c14*V)l zxlA7X_M6S>xWe=d{os-XHM;T-K-zHiANB`&BxOh&>0jF{;%iG>6ZuJuDh>V6*m}FT%IL&mBI8X0t5SA=YC<=6nLW9*scT>*&bdr`K=Vz3;6O%?%P6@& z23gQVSAjjYXr;0dj~;x~jXE(&!u#J?O*grW_QtoUKK9(?{?DN6pULFgWEc<$UY^A3 zh?L2)KtSi)$6yt7aNv*T+eYL$iD0L)68rS&@pvwAEW25piM~-4LsJ_y*3dJ9!*T9} zf3CfD>d25PVSWhHmbiT;CevHu;2-ZcQ8u-EHi|QEUi_(FPp3l9ixE!RxRWFNLT@_Q zDbdcu@2p_NRN%mTPV!pV_O^7EdDn=3fQE1tMuNDVG|#1Wc%#zh-%6M@GQi2UnGta? zY0Q?!&+JvBAmhh@c+`mU0E%WBtSozQ2~>!UjQx~ABPug8ys|hEv2NE zBX&F*bG(3-`Qp?I8tfbM)-`!A4~}CIkNd> zI@GT^M?wPBm3K_&IfpngBk|`y7eKQ8gPR3G_6dNHzK^uW#L}evmBK{OD(7CZ=Hjz? z+ortI;M_>OnO8b-tlg(;Qu*@3d^dC5i}%ejlmwarE#=t#6@z8p+&sltP6hVgKGdjk zc|M2F@BmR+w8YY4iNTpuhMkE;*GZ zITovi0F+E~hLW`l2QRl{Qcg^wFvY#ZzznoW9DFNJVz>7+UoIJ|#7gqL#MWb~Ya*D(EC{3AJU#qcEv)KBny4)7-l_ge3Enw8PXl;N|7D7OgR6%t9{dI#u(bxd|lH;O~L2>4bY$ z+#ff9fdf>F)kl?g0<+J+G?0ySe*k6 z^qq6hG&de2JbyESEPhDn=e+2$&N!t!-hkU`g?ibW;!CzZ#S<`hT5*pCB)qwY7Jjkf zo+={Yd|yP;XgSbPw)M1p|9-}xG1PtgG`5!~Es94*`f@w6V0MP-b9bTxW~mH$%1me1^jGr{=@-v1W$NKFj?#uO932o>`w*xXk~_#&3nG zP*MwJJ)Ch33O2aU=ro>Pf^>s8{Gns(j>`t07=A0v8`@0&C(H@?db3L5xZL=z+9-Dk z3~ltS@X^rDorkEGyGcaoL{oflLWusiLdwwH zMESo?pD=3^&Zie0qLO+jP{NDBGUA}~eL*~-5wli(K0Q(Q`&`e~7p%XVLbO=_I7P1< zvpoSFX}agl?Mwo0n8ofHdI@Q?gYxZmz5p+F2NVuTvfmj)0i3N#tVGGS1KqM^ihsHT z2p65Rp<`3&I>c4{V^@OX7h_*cltVc$zae24D5Awb_V}l)*Xe%x8K-F7F5Pfi_BwbXtzfHJ3aeo*1J_s5`|(>P$d>~9G<&RiCbg9wT}c=(v~_Kch*{w zHsOnMxF*iIJX@CKjv@6^Rse9aT`{S`tmJpix$Tv4#hP{cW!UZa=uxKp^Zkme&}ye; zF4kTMi`~j(Uz}uIAI-VIsePp1q}cy8k9-M&fAtC@_QI|*&lBoArf!=1!P+C%Dxwr_ zf8v5$nt0OaoyB$tk1Lq_HtaxXkA?3$<4jA~$@DbZqcWXT?zw>_bj8{B`|LO@@jFC8 z=NbJJYc_gzsy$;qYkJlE8`#Qg>X)Kzir5#P(0cedT)mKns(m%hcr5#;UE)`HK>T4$ z&20NK7u?HUhN6W8t2gnAM_D9V+LT>!W$s+NU_9>f2RB0RhbG~c z30lI`-!mL{RPoU^rgP-fXC$1A7?_@Z!`D_Gtgf$z%){Y%3_*k!ZQEzC=6SkHwC(`H zV1)0jRP+^4;=LMxJvMDeB5SAf1bMX`LFE63sV@(Rsr&ygNk~G7N`nwBh9^ojHFi%z zk4RbvA*7~-)@iN^g;bWxI)fynMp~wIrbMOGsMOGQr*&l1Y}L#(Gxz?^JfF|^_x=7; z_ndpq`<{F5yzlZpuh;9HYR%Z6fo=YUb(URzEFTSdw=lD$AxQUPbj+0wuPCBvl|w^D z6OLGal3|rPVl_Q%N8zt3uUamYu2xKoYl~KFYSA_4*6XBx8@%L4THZgnQVsYhm zvU23GCp3!?7hCncbKE$q+vn4pUWY?Xt;gw3gS;=Ka>@fC!r=8P;1CbIyk#P}-O?(A+Wxx_93mcZt%bOQfWGZ2a)_>IuksePqQWnRxtm ziJqa$jHW^E@9KNIGjnKqE`K#0>6LEls=K!{)BnAmi{Yaj;pN4KE@n-G)WiMN?UdmS zKO1hC-p=p>5Gy?&IC`7#Qg%~2>qd@Y9`(>6+^9t=Q`i!hW7?z_lFN?$HPtRHt*dL# z99cg6N$+`7+tbMDLY!t0&^nNR2_9I!o327I0ZD`I=8f~7cc(t??Yp0$f=#XWF{V#v z?2!;}^V{DGlh3^(Upj5ok@C^Q?|3N{BJi%E?#>Dp z`ekiz1KyIkEZB#BLCssKtF0Gb`s(tPTQNu1-wn z{q)(vv}i_f2whfBbq)#1m35!#`Sdw<-O+FBl5W`_IJcQo{_z3ZI_Xx7^Xpl`A?~u6 zhkc(uTdqB-Sz1a}ROR)2igET-kHk2cj3q=8oSM}5rf*sbm%!WGmS5So#!YiWAEE73 zwbtKVYSQga+U@a?*8!bU_wE+vkp=KSZJyOOcel{P768Jbf#CMq=J7?Jw46ORl$LZK zTyy)9jw2vS{#9+0z9r9V0mf`}UbW4=qvj6=y6W{cC~MDaaBA0B{#p1b(b-c=I@?Ly zo*@0(DL@^w_Iwa)rK4xth3dksV@p2SWEL$FSgvWlKbIzgUE4kYs$>1%k2+10h--nx z`u%Tpb_?^?0?y}FE}n*&VuH`@sQk_vuVVh3_<$S5lWoXzVg8OvW+QXgCRE)FiX=Z%A;PSV z{%h4mdxZJC5pO9~>{VH5IV#g&6f|O#OgDr>uet#uAgfft4APNwe6q>)w~88Kj1>q> z7{DuMB0oLM(4ZOxK#KLt`c=J+p93t}OAyQ0gdPUr(;Du+TtyAl9>CY6BWBP9dQ3H> z3^1hn*Q!`X-ch6~o{v8^4BJZ;ouJyi07az`P(P@i#1x}z^Wr6*sVz&5#!%aM_Lr*8 ztT4@ea=cG)G5UxV6`!TV6Trg>faj;6>zs2ab}?wU2UIhUgK8_#6uP0RUIMDmgr-gr z0Q5G%F;f+}**UB`h3-$s|B!(*xPQXY{f(jqA%F>#L$@0-e@G9(X$QC=Cr}!g#HUPO zF#e06HEMVi)De%W>YM;1uMD)6HJd^2QTl5z1zw;Bm-`w7q{U?iRYwR{^|1$iSmvt8 z5r`Hq{)%o?9kv1lrC4sV1SNBys-dr{P7d0*g9)a;^4+!KN9BdJgQioI=-t-C&e1V1TE~ z4umIu1AbOStR(jx+N3n&p(-{4cWb^y7YcmU8+DfrP6Jr;ACf!pjNYS2DMAy~PeS0L ziZ6j02ec?>)O-udqk{%xG_6yE>8 zrCLUU8w-#YAELBz)lcX5OHNhitsLN0Xfo$=C~cDGQPYZG7Xar91Cs;!3PP(1pak6p zK1WcwqO+>nV;nTPA5(hLIw+=Exz&%UgqH+;DaI2>T0BTi$ z`_vBjg$^o7Ss~Ng3K~+Al ztMVkg%9F6Fz5u%W2W6@1z=}`}g{E5f$p!Xcl|9HEtO_|Y0R}c4(FL;$fo=#2956vC zu~D-QQ%L@ceifr5WiNf7!D(9&`yWrgJsNP|a{s{uB!djz&eu`>kMR@+VG;+EfymE$=%$154vHT`&>}|=&X%lXM=OD9iSd8CJ z+k@-TKF)A8AwxTK9}#CY>2GD3at0-Y1`t!_wz`Rgw2h}^tM@*6K8vCBIgrUpYC6`E zNgU}aVlIFjYt~v29@V&is&B5mKdil6$Z3;`=WGO0CdrZKFO!Vkxn|HhlVUvmiTn~o z99n`-=;Fk3)|Wor3en{7+;Z|GVUt!H$^8RKbMF&cl0#78R%2Ws@%Ge$eipm(W(VO$ zGC`5hrN6dqxZ=@9>Ox&cTq-R>2gGi^XEvxkq9vE;UXR6c$KYZRy-H^72jRr>;yeEH zG48VHE@ZjT(plb4DjXFSxAtXK;)u_N&wsL#_(i3WY(NY+DaRv#Pk1NnKQ9mZo_Sa2 zJR`JRd1l#UnBOD**>bYMV9f#op7?yyKRKew=D92=o2xq#!C4``um z1lD=ZYkzKmdoRV<42;V+>o_sWCKTtMty1AijiYhIAI!FzEpQbG5>2z#GmS$r4wOxQ zcCCPn53hBg{P>n;3LUCdUXmrt_OHNGB2NSkc{H(dFfY3+4l_I%Ov*l1YBFNi%y2wc z2q5)~N@)VB|2=GRHDVX$tk%A5jUcisX#C7(KrumK}c zZ0<5%KDMfn>Mq&l0Bvg2A7JCT?aEuWVnD~*~ zgwBX^Tx&!kUk5UBg!R%>KoG85@bIq7p;Mcv&NFFhPnro5lkDYVeawyemCJ&?9Ninm zmjwz7peC0fb&GeO5!8elMEMT(j*1PSyqSQ~ZdVFrna++2 zx1ob)Yy96K-f8Q&_F9wviDJ6Hmqxni|%uIGH zDPQKk-*IaiOBo;VWIJ2Ib#gqD#@f}zFD7~-spp{CEcf$FEooL4KhLox=pGC)rtYP& z^tv$N-W3Y>Nz~J2O7)I%w(PAXLU8d?Fe!jP?*O>-H?i-*hQAPv?i)ZS4I(;m5s}wkO~S^V8c-p*vRw*8-UOs8ze-hXDFD9X>?FH z4+@RISn+2x;2|(*2<*^7SAI3>ESv=j5>UWcAOw6oFxmtR;=x$RB~nN^1DqTUoSgCk zu+a=`Q~(>t2(Ddr+!@Zlq%iAE6YEoJUv7;mMIhu2T zkVupAR5k0KyfSzJz||To)AwE(8GcG2TMjNf`8nsI(+uJkfocp4nl==33Gqxt|7|4cdOhgi#P{s|U$j<04& zKc;OO7{MH~z0ynGt+JPUbUt86hF+2KQ_n+ymKYMKe}(04yWLxAs@n5L=|nx@=mIEV zMxCgR9KMJUO!mDSSFo4LVVph>)f9jH_K0EQW`JzmqaaTddN39Z#)N-DlpWz4J8g3b zsU6*J%ysv-kXtf4__r+GeO?ssUoYWH_B6Hj_&4w$JEjhcbx+9ZiAn5kSy7(>9`pS- z|8qv}me1b|naoqO@@%rIY^B;hf76M(h`0Z+N=C<4A0wu4v4pQ8srItlg5%1HbFs_E z>^{k3ym!*AYGIRR2D5Wry|ahyw3dH*;yFswuc@9cCqni+g+cPP@An%c6;HgBhXLJ!#z489}~}$;_TUe)mwMwt0Pd z^OK3o=Dp}E+tGme4t>^=+P&u(-NzZC1GR^`l~xx+E1%{|Zd0|0leI6J&iqNR>{oi5 zovWJM+__d7`#GX5Jld}|MW`I`De4QqbiqHOeJV62XL@rc0K{#c|9VI{Yy5fridO^@ z#xq6I7W!xSB~AV-x}e}5!^}hGwr`$&o!p_9X)WHKNEWI`lOOlLq-l)`4`NJXo3q#s zAegJx$LFt#?%CY%&HZY|VC^OOO}j6`h2`+3fz3yCxym=cgfGetHL>cAv&V`?A%AY+ z=-B3RL^tAse`+D_d0ls52Xxa|YZ=m-UCA8ME9y-)5Hsg_rnt0;yY3vCj=nh#MI;Fo z^&7={KYx4oF!9N!WL`^D>OM`dZZOr)mkGcXm!Li@%YKcBigHLnp=Z)(oDpJ&t zol^OoyKgH~;^kTWk|P{snbVo3)4z^OxNvQ{W$N>=HE!&xuvN@afkeE< zEsBDDb8&K>j~YZ>^`>!fX9K$0sW{fh;?2c}^P2A;9S)mQ$;uYUn>dWcWXM*5%yn`z zcK;}6#dB%#OoHW`Mu~yb8S{YG^ZK}+oQgxP9qdVg{3kfMZ{KtTjy6EJO1Ta+;Noio zV&TWDm|iQHUTfWAo9`T*j4{MP72r(l*Q8sPKA#)Ov~A8^~dt>9Oczl z-F>SVPk?zvPGTm(H67IuC=$|OoKtb7uG8D;sAYZJg^`T?u0N*@q8Cds_l`D6N?)2$ zWofA1-QT5SPMnyzeKb$duf1B5{L-_}zn`zo;j?PwI9(P~jZe^kpoM+>wUKD%D)idj z#-)AV%+ui9G&tbyg{ZCJ@ts_Dzs!asvss1ixqCqw>FnA8cc;Pjpyj}~Q;~>|)0u#< zUk*-gzI^Am%8o@&#RyrA1`f!rDiUS&BifO0 zbOYbn$&E^=fteXcdEI|;(7mpfEPA!%=}R-rr_4X!kr9cj=j&Rf%0CMNR@ex4Y{lX0(@A zS3-X&s+K4imv;)3u2+~k3Wntnd}!Pac{8U*RFoN$M_V!EJKV8Q7L~iHtGoDRuAv^N%u%{+-hZ68hnX!1U;39<<|1CS0wKE zQ-Ln}AH~0I6s#W1guNa@o>NJk)(n7NBh{X;bH5Us2ou!#F>8lxwEMVb4d{h$lC5ck z5w)gzf&{k}@?Vn^IezIfAp$-)ML^7!Q-!TL&; zUm83pK*VwAoCefMS}~pV+wG{nIxOI4kb&@yTxZdMIry#w0Cb-4K2A{fJHAp%zJ=-9wx!GMdY$ zFTd|T$T<(C|HpZHQm;(o7B$+;rC@YKU$1j*v}A$mEaDtKepVxM$uFXXA{IQ-<_|G- zaQOK{1(x^yarYs6>Aw%O`!@R0h^z9a9I`*>u^OMQt%!AxgnK!$B2H{X;#8sPfmX@d z-9W^0x(z9?*0{J|BL4_W66DH$nNu*N_UD=X0))KaK3%ObW|Km>fP-I5q0SRI&LczH zdNAsf^aVpPYjDuwqQtD{q$3<%~(vD1*UuF4BnqKiuLh9bNcLf+WplE`HxNE|Q|m(>-qvnt_h z!O+4U!aRjl9J)v<&#sPG-jKT(A=?f`XeyNZOR1V9_ZmL<%%jE0|0-oJ9j7IT2)d-g zIQ}fD^7c1`I3xCct+F`{w*2N8bdAZ1n}Q5`;Q9P8Ed^snW0s-sN;`85H9Rt*!bDSQ(Y7y4!FendyAd>qW2EsD_| zhp)>cIFeiaeEvse%u1%DpYQxkNmdg{7m(3~0(OnE{vX7J!>8^fJIC>@q;jr6j(t|u zxhslsRZim|0g=ozX{b##YN=4#H_+4(#GwaOV__5JRE}&(Flt`O=L^VCwHS(bL}xh0 z{=?T>nG(Kj^8;wL!eP!pNJ&Oa2VrgxJxIDBthPI+A z7yROX&ryo8LGHjIyGWJ30!h^licFwj z2o&UCCLV{MgOFF=&rze`XO8P8z?k_={0xM=rU#=bTcHC{XF&K_-6 za<3m*9LZQV6l%FtnnFpv$D{NNhgF+TNEemCEzd(7<4VI+LkQhOjtPtp`6-l3K0IN`w6b z5?M7m6Nj$Bp^I?@)lX)edQHylXUrNW%s?{x`Lt?fZZK+~Kn_afUcu=69_)3wzG7lnZ zN;U+;OUbHN0rDFGNh^|JqFBN5KltY9T8ub*s$V_Np`)g<<{%H5@~_PFFaxJw`_OR-nv3C~H1)v)e0CT7;K z{UQq908Fu556o;Se#tm1UcRW5IddF)?caCIaoROGkAp;)s^+XZ*0v#FzCt-4xZXG> zPF~MJ=9JQ|%Qb^hqaNlQ$t@0ISqfpsK?lQ9biSNA1a4fV{5cY3KUu8@{KD*Ol=;DU zr*U*S@gwYVUGBv}f>gE$@p6}bRiB0971g$B9>MrU?iA& zLK@>P@zMpm+7cvadO*4qJ?wzeWCLibLCGU2TI)H0-_mqu!q0Zr#amig+=gp|sq3x| zG_PKjCUw6P!YJOQ5a)O>_M12cW;-BdmK(oX<>L8nDrQ;-{zo2ecP7uH#QXBzvbVBG zh4#6s7xk=x08q*+y_B{#zw3ezN zSlyI)_S5+w&R`?+Q%S`Pdbs2-@Y&tFHIxx|o4CqyUjjB~YqMl-lRrg&VFA!co-*qt zys{e|+gjqiDht11VE8y-302g|F4%t~(F#dAXJvncPJz)e2_26Iqm~gr48OJh4PC|S zpIGRFws$t>Gxo5ZO~|K`_%3~CL8Ld@wXr)c0(?Sek+MnNtk0M1H~qP=0Us2Zxsgz@ zZqmFYTw>fk-WX$7Tp{@x+F>wwZIQf8%bKya$mllmS1KQif7V@A<6d3wj-+*T8?xKyzzTDYGuG|?u5W+2 z{peUgxud~wV<8pDpnC1)HUG+Nmx?tQCuNP@Th3E1w0F~s`no_f`>wtR+;E|=&am@r zZ|)V03)v+#;qE;9wB5Wht?1sDdH4Fr-j74myPM7odL8OMl0~)XAM19Rh|Ugi{9A+B zq6oA4NhkawH!Xv&MaoO!Dg4Jg#*Hm7ZDLykC%0I2O}wlo?=jm4PZz=i?22P;q&n%w zR3Z$08|&tnbGy5#@A`HIac>}d=r(@d#!hp#N;F}pP@%_pERhp04ZZImp|?vup+w59 zi~DR>46qE{O~M28RJ6yFQTuyZt{JmL_iY>r1;UHNzkrQFzuM6>?&sJtJIrOZzriOmu8hV5LOQlD_H? zj@dT$J+P`@w;b1s-Wz0dq$~;2c+vpjO}o)1sB?}xqbEHn4N z>0Y;XivQf20T4B!;AEEW*OE45MR%Re(_!;FB3WEm=pRwhs1SE7mApNikcvEai;n#2 z?VHMNpWM3Y*dhFOx4Encb)d}~ZNy)=RWLbgaOB+`;s-&x>8JT)D`gu`%g#DgIf;^v ziA0r2!{&<^WljawP9mSLqP26Vn3cinST^^Dy;e?(d1oDHOy}ba*+(1m4V~;XQsxKJ zk~U=S$AVqw|7J9uQ_i8nOXtc&=^sdBjsca0-*hqq=(10@HvJ@T@tQu2s+l>Q=D7Lh zyT2cPcR#wYTK?IhqL(i8`6Al0JHH*5KRTs^tQj5_gje^8=Upv+7`>^_J?@Zk(^$D{ z&E)&?^OeT5vrRwubtPino8Kd1*zZY`tJxnTd2$8UcK`py8d~1KK zP~*co;dI3fAm0l_PYFlGO6$6<-X`$NW1AhJm0nHk%*Uf-uiv)_t^1=GULd7`or@T% zX%ZjHptUVy-4{%rncr)C*N?P>VthmGJN;5PC!L z2e+)LzPgA+-nLeH+|MaxkF{g6Zuwq@LBF_OZcC~ty*K>$n`d33@6#`w?$178++e_3YP}s)T1>pkU4C2*^?(`c4 zoL_6;*oo4Aq^}}(`^ZFYA4tnT9QrNSWC3**W&Yr+FUE&W$TrptExoUQU*5SjjT$QQgo9MFQIhUrdk`ujA)c-VTBr6XGc~)?;%I_=l zxsC2Qv&609;lgfkIDf{6*i9G*qGQ{tB=#F4yP04Q_lVuB5Qjv@OFytDm7yN&kjYqS z36Aapz*-JDj$72KOCmi8`ieEsa@E_Ytx+CJO#^?JM5H?0er2_T*^A&&V4&ZZ*+7e`n7ooqF ze{!Gg``zjRi>68h@VN20`z9*vHvbB3aSvQ~ZbY027Shl+p}+LLae3VXHRkHDn_%`2S?^4&CeCFTwoBrxz$&U$@)*@B zIj_vF;|fn^*J=%}=FbgUBp`K_tStgC06t)Ak?`rvA5c1z!abrr81G~TEz>trF*Ub? z)qThT^LlY`p4O^m`oE%f?76}#+i@9K+7WdEH3jGfw)onM|H#I1_JI|9ME|X-?xukn ze*Z9ba0amHf3(|Hs#vT#Udmw^nC_K(Kyn(DaNJ=0>VIp&!aq5_5fkh{+@M>hc?1lK z`cjlA{P+dn5+)U|wk*?M{O^&T0;>oAwaOX=V149|We&9NX%&e}_& zQ;J}hWi7FDMZW@;L6$@uIVI2g#>KL>a>J1NF=1{X$;pCn{`#u={4E3#^OJwOm-#W` z9mhk_0nHgr)MbcXW~kmH?6n}GQpZ*#tOlYAIBi>0ndnQO5fNiH~TyfpBuz z%64hk(`f)L(3r=lDe9YUjW+!ClCJZM{NY|Jy6+rgb{^evuae7ESB_2v7SZ<(D7z=D z0YvrkU`Y7IVS~Tf`>e*d;TeE2dfhOzCvC*=lW2HPa`bt=%f;yKG-H?Y<_en^+#^-V zV)qZ{7zZA)9=L4%!Ny)B8MgE0F3gJUuJ^I7(s|Y0z4Vaqxb^dTyx-H`^$W`J)_**W z@d$iBh&@tSgt4rDUSwpLs&(3&eKx=<^#X@Ye_=tm4EZr?x{EEM8Lin)Bw!}1-X!7a zg!PjWc3tF}+jyJcnN9AFZNF%<+DIm&LUhwEB2duk+uO>!8x$V6rMJ&|^F+oj@tO9q zJo;vMME<3j{faREColUT(d&J5)6cdq`GHQf`gvh*F@C?M3!aDc&1I&PEUC&r^S%D} zsv@KM525eE3?;;a68S41!^NI(zS|U})I;;mpb-EYMn)~2=J)X!R|+-jl>{J!1Oy}J zx2RO?4(eAL04YvYt+uc6{1GUQQ;G&$2Y+}wYeG==9>Bz;-O{9Kl3uCm7L|dPnT=KB zXd7vxiUIBl$d=sl|FARB&KgqwQCY1c?SJ^0ja^^T-nL7e8N_pit@OLszb)a5=`tk189Y@On#7L^4 z!ZebMkIEu+2gEA!CvTOCE*gD&7&dvp0zj=FEVutl&qUdSVAz11d6LQo(7S3XI6s7z z1HgQ=-)P4lAeINH;L{l23?Z%A#V4`ENw}|e6%QzBwj8)2dn2DESuRV*TumN2cp{2< zFj=@XdX(E{cYRGO^5Nt%`nx+3QK2}bW3{94q19f8;QF6fZb$!*s8`73@dqOZPet+e zFo=<<&1nZDoXJODMaF9@>#zIuAeSFKWxrw{d*_>Tb*=C9oc7NoTd%_5uliMvm=yaZ zL*mK}7X19xFtw`wP}+g^Md$jgE%;wPcH0`=3hXCPyLkl%X@MS9;RkPycEIZ$`}*)d z8h@r(`oHLHDksvyTGZbU};wy|X4Wo*fXA5m70aPASja|B4`t9;^QCHfYg# z%`e2|OKAA%rcwK)^5M!B=N#u(5|QYjUlg=JHl1?qbC<5T^6Bxuqx~zW3nB(K7Kpnh zx*m1}6#wcVtb9Gv9iU(Gr1%A!gw0DkkQ*rrKNE#tEK6}t{(MkKYavBd6jX8(2Scu1 z%GmUnNbB{ey3n%|sySx{`^LN<#_ebv?f&UMWXT+kYWL`Kc55~ z-+Umcz8&+K&h~xhyYKIqW?|c01_A`HWjF4NgRv`29v%}!kJXAC*HtnC9rg)WyS5O4 zQvBVi+WzA>Arni+^`v(2j9PPH{Z65%_ll)|L4%D^N^_Kg7tFw%kl~nZD*Vo_WD%22s`5sh8*&UdS0_W|r}LC7T=kak0x5bc`9wfHe)cQrk? zB~w|bWi}I2#|t}>LC+OT+j*~h*w@4hTW=2MpK@0g{_QFYFJJD}!p%m<^i!H`k&UKU zczu)n?L-1s`qz@tiGF#aMTTU3Yc8?27+OC#X_wrQTbDh7UuOGmP{+S%`JK>d?)7v3 zd{|!T3&fYI?)p_C+g^CT3|om$S@uOV9p^{#MM*Ey?~bkpktU!=zh$#A>X?Y-0S& z>ELVWrq85C`GJ8++w18(+$f}!Wz9NoF)&%Sq)A>Pa2#}am1wcCIFr3jC1qcDZ$K#J z$&iSEk|%tps!2A5kbWSbUpUF}+=|?)g93rSl<^ zy)NzY3?2Nf3v$MpZpQ(j`}ztwBxg{wm9{-o=GbRS+vM13ofRP8+BwwK#BqPwQ`WkA z?r1DLdMK0>x6$3d7QG_zfBRgC)iNO8bU4S*KabwLWI|DgTYO(A9c%zh0NaiP)q=;& z&aTuig0Lx@j=LniNc$uLI)csjuTIv3RoouQFXTey5&IZwK1OcWk-GL$RqC?vYpEt; z^Gv3p*^?dZP6TK6*`B4tgNsRf<^2Z2wJ#K;KVeDir z*@FMl;b&2M`E;o_uNJ**fQuAJlPK-x=sxFi@TzcakgPa3G z7wpF3n{bFiH}KUgM}x00BooEW`|;L zEDP}0Z06*1ubJhC1U0VO__aAcXUCIFubJ3U)e{&-%>ms*u=-T-qC$~`T zi+r|wKbTu{1f&JC*Tl|JY>Z_cs!{MeC4Y=QaW7O{DcvMFCm&n%iQgglv*;_=F;L$p zAu_wu1{{~kxup(mmp@cJi@#6LlHvmO7wC_y$|GLEzZ-i2@bLSJ7(2Wln5in>j;(e` z!oT7_H2#W)#Ih(mNDP$?@zoOTYU+2%ACMw#1K`;0lT(WsPf&+)z+bC(>)jYhn;bY_ zqpc3@1@bl2CEk)H=0Nc#RHb;M`3Dup=bBeIqVb%|SJ<;DAWaxyapfXG=1do$FaH6^ zQ(zZY8VlTKvYh7+(B^{c6%fAcvp{soY;!1X;! z1Y+QFGzExw>#L;1ee!ez6QnVo7&XA_(fEO`4JFK!YK_G!ZbIuNwgAh#sB%WILn2P6 zP7@OVB*OK8L^$+za={C0P{tk3u!JzMJTsau0Ud6NqS zXFPS)(Y^of=m0w+JatccKN~D}t!C7)_cwsf=@YnZ9C8kkGq_2esU^h7|Q600**N78e05 z<=@QQ1y2YV&wH4oQMnJ`4pDHHu;U{50HRL&Wvr`<$KQi@eSAM(-?Lq^K-}{Yhv3S0 zXV6+W=I^NiC+_(#GG`gw$-(5dq{i(Ott}*FUq{|XDvM7IFW+xHl_P{%o`t0J5%M;< z#Og8b$nmJo8@O2b=bTEU>pkh7-XP$Ycgrq{E;cn5;yw!`1IqPXc?adW#eDq_U#!y8 zxotCVP}9GiGdg5Qh{?d(8x4vzkG1e<8hOk$wXB+P|3C-KgW;ylT@}pZI~%QTr~Btg zS70UYM@hK&Ll$u88*F-?UziLjvnIroQnPHg>t zaoJyy%E?p15B-bqiD7$U{?m&j=hZeA?(CvsP~t)wlVJg041_4&?t-b;aMzD40R0ZE z7VSwEx<2h?Hm+mM27(n?1NBeClbnA7)r*WNZv9K*>B@k6+$#WnZA(OFeIR9jIry6v zDEj)WUJpocNOnakbzZQwuM)E}TZSj;tIS=X!Di27g7qoci#oDs3mJcDosVN}pY@Ni zgoBV_;q>E`gFcW^dqZ?;9x36xoZYt`!^f7-ae!=w9{RzUz&V9PqzdUMwKQ>kyO&|}xnF)X4L%Wn!T z7anq@)BTPMB8$J1ZcQ?DZz^xS`<{q|S3 zhyl&tBexsfT=}ok_z)xc!VkRue{#k6WV9oxIUbY-HTpIZ$N&wr(zTCM7SW|1tX5p$ z(@09raA)fcu4Xx-tRul7!*pmQQ@Xloa2Y{#=23k!Hhfj@Aw!8hU0Au3O%DnZa({`o z7;DwlB_K`#LmSTH`Z8~GFF&f!!x7uYE;*Z0_E@CyXAf43m-@hVw!+GTne};?*u;_L zqn`>Nj7RkR>8ZF>6*Ras;&w*&IaA8oOW+CjQLE@_04^nNE3&-#-r%Pr`^39}0{kmp z++(He{_vNO!W`$(@UD&f;T6%|QJg zmAZS6UFqk*7xh}Vsk$cyJ)G!AY|50a2gDraIZB@;;*M(3K+?4jow_J3V-m0}8u;he zPDuW-m3)KuStp>rk=9Lg*QurhBG%xbgh<)NhqnxrE&ZX4x=7--!K~X#^K=E0H9A4g z|5S?ln!u)kBrb@Det_P!$@^!M@gHRq$U#5!a1xvvtgfu;6JX{Fxf5TXF(n4_jtgV* z+>6r{X?<8TgwlT3k3l^x+xSB1lB~Rc`-$YtV8w$Gt0^X1gix$Tm2P$9hYMiH_v3Gx z~zpWmjgqJSQ9dDk&Ao zl=t0%miX_}QolezXLjO4HUqs&LDpQ+lRc?~Pl%;x`r&erUfm5O^P8Y%8?!?h4&Dd( z_`jwz_cPGS>mycm&U;9)8?q!!!@=y;a)kUC$v-ohxoV7s;T;;Bj9AfYoUG*A9)84+ z?t)m`GT)tC*=+N;k9y&IW@sOHZ|oxYj+i4ma@wPyazpky@@{p!apet=VD@`v`MgK8 zCsTZ5AQmFG4YyYI9*{Q$D3Xp9aKJly(DQEUNmM~JSp(-4RRsqAVv+lRvUZqCWL&zo zHrJ+IDr^e0fIr+{24BQBmvnnQ#u0Psfxu-7PF@yk&9MI^tZaok1NVyEz71QoB1!*^20f1QnelKntv7yu*c^#__RFS~$u?;}_h=r-=TM!v_G7rFJ6nW14@I|0Djw za))JN$pv!d(LI^0 zcHyyp(VS&Mu3izE{ewAYL%}onw2bnyKH)k}8}RO3TBof#cg?lSGeGeMKKKEY{se8e z$fR_?$n4AtoLMi1>QwnZJPS*f;Pfx_MAn$=0eJyal|BMpzY?%j{k6dBAjLdV{gVtn zEHK!H`kU5(WT-5@1;|jNH`669j2ynOa+$zKla?q&E9OwxW=Y&RDdB+;HCFu!s>4id z!ZtMKt?{ZBba#z5`0K0E5+HV%d=kU^CTB-7IHL<#5TOhkCx)i($!A59p)yutByw*i zJIrhgRbyuAM;Tu0t?@~;ZO7YvN!^5JlSVD5?QxzhC-JrMDhm1>C>fXrI3$LV=eI}C zmjYpfq;BZy?}dV$H38~)SDx(?H0(ZS$pRL7uBLru5V{x$7+|tQaba;OZnEt?$ly`O zEBbFpoF^a;h@&bGNL;DX^est^`c^c$^ecBwO&CW(y;n@xg+q@NQFiqpr+@+KTcz3) z?Msh3!@$AHJHx7T&g0cW_L=Uz35t&O%%@I zRp3S37#8O)fL&N;Wp__2jD@8mLRi8&DHENEt;Wor*WVPeu}S}q?2OyCr7?-U=x34T zB8E3zN(A>B&DAUqM+|`>_F$abnaoOU_wplP3xz&FdM9y^B>n>@29m6fGoo7wJGO=Y zy|e^N~Rg`{M$RPWE z6iqI4gnA3(325p4PU>>qn*_Kl*^=8K@5nI_Xs!qREM zU}mldqpZzXQFX%#(76E2VfXK*{WPDi9G?I3CL6CmV`*2@oE7~6KJ^J?TYvjM=qWjC zk)M+J332#*jKTXUI(T;~t?N~**cC`Kj0*F~x?=LO;ci&R0w(=rZi0EahPH(2a`aXQ zmAPqxCD{~%JK-e@dQo5Tf|-pV>lw=Q_Gvvim;E@@7qV#|^8qhK=Yp*T5SmvO3A;R7uE6hz_olhEi{;O=v(o8aqGiv;e^(+g)+q8xN zQX!a5n+Gi^j9UXMC#G+GXBnjC>f#a7l@7ww0yGyqi4-fn7zQA-smG=x(y2|U}CgmyDsP%VF~g1mjm+{%Vkq0?TX6)aE7NEF=l#}<%6k(oivgyC5V8w6hH4taL%8mJ0tlU#I zMZdzwQ(x9&M-T@&;_M}(oC3L9r=3M(gxrqL=yBj5w=euF0(dzW@JPFJG}(&+l+k+y zc9Dojjd)SKbVf}sxGmvK0e$`xRlgEv^p&ew(|!W)ej9viG1vb~pU<3$y%IkC0Z6!D z7vr?1KtAlqGohPMcTIL!+k}ig#8Byts$#Vuca_}()DUppk%Ox6v*$~oJ31oH0POh% zkk>H0?g7hQ7050A55p8KsZjuqDF_xzKu{TbSQSFnJ&L@kQ2^c1T1H+f2LRKXx5~}nK zAvdrkMghSb)PmzMT!&%vBot_#F8PYOq(gj;7y?0Z@CheTdsZfa@}?B2|5Af&`@X8j z7^%Az*|CQ5s~B2!zmZsIK{y#oA~dX)S9ZRtA3N^wD#>_XRO;=Hnw7Nrv7e#WPdj`f z61918}C4L3Ta6xW6=@(XNZz7i_C^Do*qW&23A z5X*kvXwW75`_Z19j&>4K5lIQC`1|0^Vjb7iio)mv`;$jo@tMAc9etJFk`qlHYoeb} zdd}Gfl45||@EK-}1-5yF74ftI+{vb>qY!qmd(iitas5qW|Ck>$zD#WFJ2cju(H_BR zC->BB9Iq9PI&OyIiyzQ$$t>Vg1#%w;i&QMku%M0?PO|-0Fr5F?i<)QGOAc=p`FyLR zgN)08@3KI?jlx5xWOeiuDB@ugy;kE#cw|zti}F%|#f%Ygs6(1%4jC`jxM97B&{7w% zpeaYVUU7}#K|;YD|GWaWowM1W;F_vc7(Jo?F4kdsjGWIwPHpvQ*#$0ATh!idC8kM3 z_VfNZlyMCN^B+Ub=&oIwjDzuV?bQge`$eCDSSSXW8LW*MV$|Q?eOIt>` zH}*_y+w7)rIAT!DEFn)smS9$_6yMUTtar>j&=e)VG{dXqz?+<{6jH7%IvU{Ls74sw zOcCkGXjHI$fyCGIGf%kYSgI~PWwfA0{yA5adyRyK|K-*4rOnu%ep~i2jg<4AbmTMx zGsam=pgkD&T0M9Y>J3*XFphXIp4^Ybz5R;|N>V8*l}hL&uX0!ilH)ofWv@=otX?Wf$RUQ= zii#47@XBF(6;g?%urM1X%3=;N=gFF3w3FF+&)?w0ds=XE`<`{RE5 zkCTdq^0GIi-ajlTbRojC1M~ayEWgKWa4=dQ&u!h~tKC%WT_I9^mW1&oFo>zd?(il< zAfuGImXsU1Evja0BQ*Pe2B*W2wIA3pr|J5Nq1_nr80!vl>!CkT{xOxK^Hr zq4)O2q3rIABI8*{!ORcQlc(xelGTRVIeB|`Yz?~ZZ<9^W_;kO zBV~aq))5tZ@YeYAM!|1jR6lUv5#|W^s-}Ri8aWkH#G2@%u)0L;X@N0-HwM_J|IH$5 zbZI!iECc5_i;F^)B7aMShY7AB2xn=6OSm3yI|$tUCxW=mA7LYu+JPQrP`qt75ZjFy zeHy4$zg`={ZI0a9o;B4Rxf*n$D!=oGG2CLO3D&$rpTw)Z;RyvO?GjN>-^0NDBiv7E zW!govZ}R;P6HIdY{r(aZ$L zoQ!+IX+D2kY~(d9 zGwkN`!>5&^H&J$Jhxi3cEr&lKqM@Ml zvL%0RW2Xi(H>hLMi&x#jn+9Dzx*Bg0WH82d$urU(XS;f9Ni;GiK0Eer%5+!9yeN+A zz>n*>JPNmmuke4W1%o>r~k?RO~xuHn_0?rNCA;x#ElQ4PfnKOM*EWVdi#j2{q_TGL?%yUs*8-y4{s) zciLIF2$fwNH;Nn2IOV-k5|DZD@bIfvWAjM^G=^LZGT=wMNsdPpE-t~cB|_|}?iq3u z8<^yHwPRI`l(Qh&+VuhY2xw}b`X-XkEsnOYdZqjofA1?|@XMd|ihE1)#5Z%q1@|^` zANa?mj#&@Jma`YNA@WH^qZtNcF*3}Z{*#I$AuRh`^HRo`GD4=F%~(>lvWo;ZOob=N z@jIK*p~~RB1iH|3H2yxFaoygX=O1n3LtB1DWNUMzV^(NbHcpLQZz;LKzj?a)??KK+uHJ1Dp83@b`Ifh8 zd8@XK3ClJsyA1w|&+?vB=EC|%x8;e~=ET(SWN+N|+?XL9l=`=|(YbQ8)cxM(SgnK`wQjQmuOYU8~7xTN|KIN*wDRy{e%Q>GNU1{m-G2a zvyUJpN5~?z^j54#O=V?Ht-}!?vl4c!V=CL^g!(aUCAS)Erk@+V0ZTZ>JBDiT2LSOi zgPafVd!*TPkcl1-`(yN@?n#E+GC!L$zug1=AiYJ)+wf&<*riw_-BHKUfPw7>$-=i` z03Uv$r2*sf=C?EytP4&l`SN?~{PC=JzURN<`r)ya`k79cys%ULfdd*tOmDg}w?r9_|HY^}Ec^S8&<rY;97WS~}JTy%0+1aCwwrj{@B^;ic z&WN>hjy0N)H`RMKoSYk;a<4pQ=uEEnB4_S=IFz|A(smciHa9ys=qTFp>2A~t0xjNi zRO55LVR|dVd`uJzGi5|g#VE;`{j?Y(YOX0-_j6jyugdS$nb~Dn9+SZ-e^`m3QE z?D@wZuTx2)-lrRdg>LH(Kg5<0MY0{3Vd*lT4(~Ta%+|_?0bkx80)0Tp28*oYJ(KAR(U`DHHX&eDiU$(3#_qc44KsQiO=udrE* zr|j9cL35b0i#I#Bd@y|l0q%e34CZ2EYdktLn~U01dZE71guf2hPRpeG{Ogt^vJ{#Y z@rq=KucACPXF&PPZj^RhP&-|sb^lH<>7I9^75Oe^g}X0v%`^21zWTY(M|_paR5cGs z@%2s_yaDH0@<~SVP^+LLBc>W;m8HfScn^y3pT=GUN&A+F({V<7d^*{0`6t<#0McKg zNQ*_j%1q885BNB#4@AP0sd>OhoKLOxpbT!hQ)YBieQcVT$Jmuph7YnDi+iEyMOuCg z;l+x$W*WZAeV`vzmd0x2DWyR$7((-3Gjw7go~BC}$1E zrj4Fyg}?oYFI{^}L~%*}bbcCke(@(6@h1rNSF9fhm2m-tGF+45RHE8+Kn(;e!faT@ zBgszu28x{N*1uPMGRKOXzRj#bW3q)t^jsm{XMt_d`)jNrJr%#f*Y%w+F>nbXnT=m> zZ`4AsYj#%`rm~mNmTU6aEb^X(g=H=6o}>yuEEWNXMckF=3#4dcmnJrH1EAmDuRFes zZBN;bGM8wO_Mj|gAnX~c#wVH0mCrUbLU1imN$Mw-HpO;?-KbSV7PA&p?hu#2?kS-# zEq_h+QOXXKVFCLcv+_nGWBnH8;!#~+<>EQ1SOcL+xnsPr`KsRJafi~F>>YL)f}Ff9 z8b!Ki4GV;d${a1lV#hTL6F}@+)?)OV9IcL6)oH2*X3^#d_!9O(>XG?9%fbEnZla?|TSITsmb#lPO{rnq2RUSfpwIVKp$Fm{)*$YgFxf z2S$&$OKC)a=k+9Byk!MLid1m&dhZI{5rqf9&}k`NDNXF5`i0TBgDZrNEsOxW!hZmG zv>_M5HcGL8ud~HqgWrgh_T~S$5(k2PTY70Ga|cOnNUizkRMscq4 zYa|f%uONqoAjwj6VR7{xtXYr+IJiB?3LH%PjK;hvUVjI>D`<&A0ne>k2_nC0MElc! zol=9&b+11JE@jz-5D9DwRSMh_G5kQmHuR7u5a z{-r^G1?~R9&UMXOj8VZ|ycbJonH7!T0`Bj{Be#KB7v)r*jtZK7>7yl-GK|~rN)@ME z%D_9>{g(uSb_Z$v5Q>f+jw@0@SS%D43PEeiL{Qjs$eMPd!}MsB;+<*X1Z+9@SyX`f z9A)3IqX4yb>d;f&LR9ADr-Xc4{>~oJrAQN;d;2<*4_1CU>EYupFIW>BU{$L?F-hOu z!EV_mPIFIsUxrWYxgh1IYW#c@_I<7{BKg`Qy}_sH@wKVCh|PYC7GSFRk~I;HI}r%x z>PE9iIf03~2oGEB3LnK-XcRQDA-Ta0Fnq^r=l^5nFq^a7GRlVAda`oz^D%LN8?0-B z8wGRl=<%sz#PdXR=J|W0|gwOy}KGli%}x@KiuvX1=`~l@MtMT|NY6`-OyqFQ2zu+yR1o z4_OB~?daNchDHu2j)y_>|ClQ| zAK3B>7^gWYdYz*7+4|2b*;eQrlF-DkK%M7jq$7s)D?l8u;6fLXZE=T_SlEA%|;Jrltssk*FLNW8?xm;>jCeGKV$fG^e^{3urxW4 zZ0J#2p20XNTzPA}w$PALD{UA#Lg#ET!L0x*kaFRu3#WBf{&i&T&=rIUuC{%ykZ%YU zC7k9+qY-3%JJEDXFf-O12?zfbGgC?6ikQ!x=)quk+v*DIvf00`4Pph$z<*@q_?sKA zL`hClvYHpVG$vTg*z$iYtbxeQCX-U|r8l=bFL0&0|V9 zpYq%2#2xq!=(W1SOX}o*bTx7-^m?hnhB>(mI)|-dYY>)c;;~0mPtzBg9@wkORRm~^ z!M?*+WF<*VO>>E(^Qm1kAD;}snZfBIQ7&%Rjx{X9NkbVTEWBuv?lstpXp<$1Ry?j zs{LO;1Vz!7g?8NwBPd$JL;N;cbqBi#`l}Iip<@qI9FRI`H*3fj#J75Tu;5HVs{|?2 zNfC;&+l-hCX+q?yg+m~%2r`lZ3K+;buKIrsH5Hl*Daf}9Fb3dphX+_{C&dB~1$jZW z@qeHr!v6y0|NnvB{9hpG!v6&-8-#KsjIst*(L9nFG+9C%y6%u2U#-LZscIAsy;Ux< zBRDnvR3jG-8oh^xg5~ORN>UB{J-c>LrN%f5Et*H002ZnpcmkaWjtlFr%acBBt-n#* z*umWey;ieFsGe%iqhqA4D^sA#WJk4mGyy(^|a6v#=(d(L1Gavxd!as>ZzH zZxAvIgfx1^O8m4nxs2SXG6FYZJ0v(o;cTwgFDwF_R-^LhjWg19)nCBAQ}jk&K(BUE zA>3_t@7ReO$sis%W-lm4%1352>$7CvsHjdvfc*ja)Bf28)7Q*@> z7Gd7zXw682zD;R$K`*b4>~@-QKBT&S^e=Mfv(?TDQ$pCxmS||twA%vWX?@fqp|o)Ick6VPP#tNC z=WcNpgirOCH-j*9Qg}N>$l^u+l~DnkI%zjH+xaJoGSKxJ zw!nCio*Jykwig$R0)Ns3Doe(3uw|0~YMq9HLt4zM(eaFY!(3y1rI%e^7`}Qp^2=d> zd8&Y&lBCXY&!e4K1pO@ml zf#T8htD*_mz1-x<2!qy~vTp^g^QF>9*W>8}@7an^N>m*fp^ps`23U)ck5#qLV2p=V z4%ZvpmGleVxRJ-v^!pQb4@22WE8`n8Ah%boPA#&KQ9|iv!ReuU6Q-}I;00cd zM7ouT0;?$7<&tlGVYrt0e3m+JH1DBbD}-loJzjOq4twf+`z6mlFo}7Wdsz?Ekl1DQ z`s^GpCVuR@mO%LsoYLSPsX8Coirr*&<2E1ZJ&(1bU44V6drk+s0K)HjZLj?M_%|Le zxPtEQqa;(a{F0OX?8<|qAHDps%=a{(KMpw-l)Ppk?u%gFqb+Sl8#QB$`CWgYh1l_0d<4%&^2a=AfUEOEq$VJTU zR}BV*H-9xat8g2!RpFx#M->6-xfXM>a+i70HXj>cJuj`DtnPHBvdkG{L$uR5)_X{) z_BY{8fxNhed#n&sl9ujxa*^Kul=Qi6jQn?W>92qN6OsX$7!3=cP8r!xvC z!WidrVorbPU&Pfr|Jy?>U^Nu5{C398KG_)aD32;ec)Tb1EF*9ypYA4|#feYl5Rb~f z#y3R0zS(W~bqMce#$CCaKsj4~?gqqGNXGZ%5X+y%6o~u3eCGVeDD(1%8oyEGTHH!? z;~p=2u9X>~uWS#@V5{iuo!rPxR38{Cq4!INo}y}Xd%QW-?rfXSbcr-GsHTDOUPPt; z4+AS_uAm^@gelwSl`%CD{|hhSbe-p+CN zAGGxYcEfX4uk;S#J)rb1XZVLbrC56rdX5v;``1!u`L;Of8Jkf!HUT0s`!HKnV#6G_a)}-6T zbK8md6*)0EbE!R9<8Iyq3W>rk2lzXP3?Ok9vX>{s*8}ozC{dNXp0egR$z~QUk6G(u z!v&~Jq|AiTG#4oCT}^guzZwh6oM&d7J@AE(e?k(!C&67~!{$(Wsme`X2_D0y3)fwL z3Ttn(`=EFSHP*-wUg%P>$o#33Ygu-<~)FR*5L{ z&6l{Z>H_gDPA`Kp&8Z#?Ciap>V!k~8BoZcccuH`SknaflS!mrlWjDvP=!GLA&2UzxF2NU($8q$kfmy9hv#;ak0aN>%Q(#=QQlIVvuHOelZtuSWA|P$Ltj zOF~vN5TeBr)!W?YBj`-fT>S!UHj#_{Z&>dz`bW|Q*d4vs{)3wQq>HfGB&pGM)T!h# zVe(slHT=7{MT)(>uC13;$y)vcK(4*!ZEn?8|JUHKbFbEz(;I)Ff-brUyMs8}5T!ld z3Oa?mgRa5{L7FH$P2F>qgr6ALmUA$hw)|}_FmguxobNVILG)r)@&MChcEbR|i&>3Hb@L{Ta zI~DbHZ$I?3D@Vx4V}E!Y5F$Tc_SNnG`C9ZYe@BX8g#^#U(28595XVSWop~+oZ$kcI z&Us@CdmNz;+1yPvXyX=)>hF6K@i{qx@Gp!?xH(PZoxSN5M~-G=$Q6UO7BS#LTF8W& z{;nvfiyaiZSw7l>f>QLZlO0>g;=kHGz6h+YY*txDV{hcE{I7_J7p7g`Sik?l9%8uO zlt%1diG57AWKhkJSKj|Z97vq-an7ajvc7%95-X>;>)o-YR||Ix+SY{SnK8<4N*}F+ z?$>EsGJ=D9MuTI?-Z`+U=fB{@edQE7K%@0>myYTr^TJ`Hm#7|rlJXqw|D>Z}4#ATK z=4ABD~*HGFrNBkMAWh#-NjXto-W<&bnjuzccQCNpYp57K$VQ(e6*WvLY?`Vo^zRK~M zD0jPjTbsknHwp<$7q|+Cf8H{lhB+mspY(ln3ZwY&jAhF0ES5e!gT+_MOrP)r&qWl; zB_S+%!5`XVlzKIqln=We8|_ynN{j=Vwkpawj7n@=MgiK8RPRd#;q?`5Vr^SJ|qK}wcSoc;A?(>5kk4GmC2Y0{|8 z6#ve{^xVRg@=FBRL1hAhgP6do7P$c)AXTR-fzi1UA97fz{3a;b#Gjd-VII+E02Ag- z9D4P<>gy{C-c#BBL`2)|?}Kk`HIc`Lv;?ZQfyoxEs$rz7lYy~htjMEzhLu;hhF4E< zJ>0QbS5=PnXJ+==d_Ysm+r@X*lHu|~L$0=!4B_ZMaVjtDzZYF})Lm#Zf(Wk}iyY)MjV`Mw>3do>Z` z&reXzdmgg)D}n7j&t(tvb1Me$3OY0#0k8n0 zueng9`L{G?*|=tz;+OB(u?s4m;>7|W;@<^s@7`>z_g?7BLX9Rn12kJPejhAAGXQx4 z^99K%xjQ05#acp0G@e7vEaksvw)kBYyy4JE=a}N({&6#d7{V;OEWP&4vC#RSo4nK0{1fgOl>5eR!AI@M zKZx_d4VmqF)21}VH=(t35801=TC6Tm?)~bj73%;zLf&4bxW)Zrw#(*CtB0op#x%}% z{IcEmj7Z5me~(XxTr;wfcpSruc|57O!xs$y}W^82sEeNB}$t3x83~=HaR7m_DbY^NoXYRi12%rd2ttl5g7Rr5Y+5>et9s2z`c=CH`A4ax$%-7FNv%->o~YV1vW^ zgN9}M%AC?-yv9quCVK4ZWGU{Mmkxg4=kMK;5#v}glsv~2uKkCyU7GU&y=FIKOUCtW zgjSlTgN2@ho2Yw#ldBXXii{iH6Ct9dRj{SxOF*_K$FuqE6GK>s_ENs~m$a6BHB)?7 z_lzOxA$Hv@Gh7kYYAt)jy@SvnVeu?N#+KoPO%jm)6b*ijKiQZ7v1n>o8g@J zonbu{)vLo3KOFmllJk>-6GQOD=$aWSw4HyCFXE&IQ~8e*7ZYsW^srGiQX+(?a~*>nLL{v)Z2y zM3)}!89ph7KKBEH?NzK!Lu>%mYddRBz4#eVIn0fUf5tV!U~^jtA1kg%bFO2V4hJ*n zOrwgpInBPhWw*6qbofBTE9ZD$+!l_OGnwK^cKPfvK~wj>?_Dv`uvZoNQx3&dLIh(~ zfY3K2k=Ttswmea9k>LiC8$QeOEN}SUm=Mr)7U9f38FsxynKn^BHz|C8b_GLT2lOgK zlktm3-Ffy!NFgCwh66h}=Yf_5LdJvV?3Upc^9$^z<3Fn?mJ5GREht_(5hBHP*bjmn+Abhd4DxW{wW9Y8%Q>}5QYroIAUFr z;W*$AEF9gw@Hc%yGNZl(maJr}F9>On4?x%?pm<^Y%|oXQk)8r^jMk5z3$64Qs_Q&? zmMJvSL(u5h1@3#;t@GJHJfr`XyPRKO-6I20!L51InAe^K@yuz4?zoK(=z;C@zX3c2 z9cG-1J&K;_0#^Xr>%-8Umxcg=kYvN#m=rdtgly6rXjr6NJEJvxiUne|OvnF^<~EN9 zN*cMHA~F&bp&8cNLW~?G7TgG1#O@F>CCljl)uG(YhsFoY5Vs%b(rV2Ru`p|RK%U7+ zJMCZA@(_@GT}0JgNT)BQp6?!M56iR2$T#AguCw1Asv3xjwXKr|ezdpA2S0j5ai4T) z*-?}O-R(LBe{`1CO7HeWL~>#(UQn}G&F4=NjfkjK;F}>7+&piB{H+ukJxot3EI_pd zDIZ4*dq7R4EXl?UQRrizHgsM27^IAo{t!SOea|H3XFEgTR>ufW)!LUkF~!`#xKlx| zx8Yyt7RAAdhgL*E(f|2u(Ws+Dr@GFq_QM$zpbTG#BCB-~>)V+dawpG%Z1(6OJV@R1 zeQ^KDlXUy265TQxw!(ygeL#E%SyI<)k4}rHmVgPij@IZ_v8>SgEHCli)(W51H-Juc zrxs3Md%XNN*%lB3tB0L*lTeSwSPz@fgUfKZbj*XbV?0vTCC8*CpxEzN_OVicBYd+(jm|BNb1WU#4|d>! zrPlkg-F}I*u$Qw2ylvjJ`X$1F3!GT`R>upxuYO6=o3CaK#%-=Ea^HfY%nwyKupRpa zNcay~8CCZHh5zMyeL}+~^vN3z2%Yhw3))lQ_p&W&w7$5}11Vt@ve`{Puv)!ggfXGd zTg)P(BH66Lk3jHIRx>ISkq~?F<<&TKa+{RVZU|Wg|9+n%Awc!i{eP;z>bD$%3wo9? z87~??5ih$kN%vOfac=@Ir$hJ`gNB5WgB5VijuLIbyHJCc5Y;V<1+-gS#u-eHmlOa` zvW`oIjU6DTsZ108{h&L-9-kdh=u^<5bse{u$n~>CfVel~>YntTAAEJPK$V+$q9U(I-?VoD9#ns*G&59+v;FKhFpIVC&xiRr}2lcwtsv{r^x!aWTI-DF_ z*nk_7Sd@yc76d-G&dXu0f44;|JxXqIipcPCljVJFBm8_XR(TEYWL%6=?(L}GJpz2% zd!wM=^9j<;dF&`6w=$|>(O$-tqU9$U0wQ zr)bzbR9;@C*i6tlC~beiZu;_A_05r1$scJET+BGoAsxufVb0FkHVbO>lg zn4-lgdjBywn-?C(Zh{vkJlJN;w&V2OPinRnW{KbtQv(O&n0 z@}v(?*>j*;8`;qM&Q@{&T9N$j3yQnv)Wfg)giI5|zbJ854<{1xSnb)8Aida(Al`}O z$N(Hj2HM~T&OOv+x26`h<_f)P3NU7;CCTj22R$XnP*>+kX{ z)c9vS*}j6-<%XmlRu$Zjj9fZig}G{Sot75r6d3 zTW1TtQHeP$ZYXfCi25k!0c;i$9&BIhzkGLaae1GJ|OzcSbyT<5@-y&{;J) zC)~T1$^K-{WXT~P@z$?K zA4z&3m#Np!&{bR{H(<77!(_3pmmhw_^-rSO-8&Ei5$R7NwE5jVO9)zBBv&t>Ec02N zZubz`Mx@g`N1uPTv)LBiQh*gPTM>BbLb`ow`M!p0JHK|!8B?ViJ{|k^yP>~-nQ(n| z8ArsiR++T04G=3F)58eJ52TB~BsMFxme78SWZ4UElzC1#|L5<1>=hfzHL906nC3c6 zZnH2Z`R7)Wj9+?S&mfY{{S?G0AFx0=84oXMT06myQ@X20uQYTlZ>7QBf!E8xr$fUV zs~f=1k{~TMJ_QRx{y|I!+bcUlp<)*JutQsY&wl1WLTV3PN zxTcq%&tfT_nwR!5NcTLEGf1H%`eOmeiwg~LS2~`ZHfYg>SCXo2GtQ(`pNG7g2zE-d zg_HGMUVZS|iu~ z6KE^*&?FnF&Mb^QIy=^_CO7>TOK#`Wp?-p#v`Q}9gT%XkAmNjl%vZWg2xB6d=7NKY zjD35;zsQT2TtBi<`X_C^#O6 zD9-dGkdV;=37N?8*plbtEP6LTS0{Wtwh(Bc(To#OXvTLp`>?L?Pb1^4q+`S$P628| zk1RYjOJ!kBe634cYpW6*H^J#l$|fdqeVv4#q^1eOr`gqJCBWSjtMochNI!?jh^e_f zE(MAVA3MI;g4P<#v5tZcc04S-TM=dlj7AYd=ZWFt5kRIP%u+nG$k3;)s3Tvs;{#UE zr>Q_=pz9XdVLMp^)bH?!Y#|mJfEeSD-X~R&5So5A)=+WS!TgX6a@c_?91dQEcE4p0 z#oQf3sko7eOeux7Kx5Vdv>-S#ZS3npwUfgbY&kBh$_a||;sNrWP)j2t5zjD9%vD#t z9Sa&`i}T1P66qVr&tZ(fiBE(W`ib;Act*YqH%22m1Fby~EMn{#L=D&?g+Y@(kT9VZ zNu&*?DDyGya-6yf%>}3;He|8J-aw&nT#a5jX0#$5gE5+lPlO{2!J@a0x|Z6MKs9LI6xRI3aMhwGpgT6A(PM&kOEywn7CK zLz1vTMk02U`@ict2d)bau1mpyS5q|L6v~`~z5^r<6EbF0*d6Xf6&_F^^I6*|krz#t zU?z~ip4|R-+E4d)eH6X<6M(6HIU#Ut7dWm?=TD%f3^Rk?6w;?56R(3(yYVGbNBf;N z6DEfR4pc$!3I-$ow={vM4nf}|#{klnODJ3L9F9LCWlI+L#tMNaWj7uLur2WdrwF-0s=0M$GA7VYKAy zqcL8im;a$4gogQBpF4gLCxO&g;kM}V_ZN#q^cIjDXKSVlq%ujMZgnZE4p>jM9B~$O z&$7%*`N}_xG8eefpe10(0q*;Q-{H2O{y83O>rkwt@qgLr`_s zg*kEV6_LdWCl%opS8TJw@ZfeK{mhZ?CU1M*Cln|j;hdbYJ~JY0HRvrE_}5AzNL5W8 zfuf!Ombb-hvpDD?)8{issGk$_aE_>wrODR(x|(u-z~8%# zNL%V&q2p}lHSG{hxFWNG8_IC35M$A#t6#Pbg4eZqHi$niO=!XNk~IehV4^=(V^S>LCE_ot?DdQ zU%uEP$d!6q!<7DgKhovQ;{-X6u#TLdY7=Zoaa5|$ii(adCD0h2Qul`rJ~O2X+ZJwx zF#C0`#V`3#_B-FmwM;(rlM6@OhUxqUM05c8XQWPo9@7d4M24J+>(TWjvdRJ9QR9u68YS}|4ZmK+z8KT z7MpLAuJt5m-ffA!@!S##EE76T{Md9@XxuHB2`PXNWlXsKBi;Ns61!rC9W)@x42nIu zGIo%*=>xy|CF}V=1u5zR_#XJw=UFXQF+{7@&Mv@i;Q8Y=UXWzchb9Ttd+Ie|_^(2TQC^pZ8uHwl-{ z)ARoj(&lqpGE8Kh%GAplr=$W=NvmtZ<4B8-*U6YU$>1d16(xVah{`raUPZyhJ9Y8dMrw`$JkfyGe;Z)|K!r4r1S3Pcfw^JG3D@gR9km3`X$ z-_61_kbHg|d(9l)VF3JE0!BUBX{jfBgzEx^H_a}XVlG7LMaTCS;Pk-OR(gX&|IFxy zcOyc23l(teYl>U*XX$T8(!BDekFZXj}#MU=7$)3cM;xTHGwuLUATnCb}&VAHa->3ND$#j z28|e=N_XSz?r}jNyM-gF7W+1pveUhSFo}7|=e|6MBLq3j&TL4=g%U$KBaF`3?;G*- z0Wku+TpCf6OiHofqx#sm1)qsm&jeJe`=DjSf{C$t>uR+b~yOSh^IWR9M&HZ~3t0 zg&@}uYhxOOvv7-(CH0TGFcfAc4SA(npIpr9olVFQucURN})*9C0_;KR2Y@41G+H z3K9-yAX_SW(X3;2(3VR)zEb2gC%Kw(IZXVYbb3-1_qY<41Y@*t>;+ZfPGZ~TVOW<8cA98vEg6G3kqi6s8m2&v2iIXvKAvwJD!LklJ@{i1DUrA{fagq0 zU@Tgx$YGi8mvOx1F(&$qm^sNu$os4KI*=^_Yb^sKqw)Ab$Bpx^)A0!Ca0VfbAF7Td z8%@cAe&%kGJH~*$@i@i)!HozWQ;PQ_FD;_DF_l-aujGg?T$41hTzdZx?Vx|zJTb8k zUx}^H$vD6>9T`pIrzXLt!m1jqWCxNZ1(Y6T=|1FcHuKWE;#SudS>O&i`W=G~I_ZZe zi=^-=Y5A1S=ZqNWB`0;C>K!LpMe*vwDzGv3(SplgU)&D2QYo!%(N+wsQ<`C~KuNT* zfZx0u8+0btn|HKPBy+WBz`ElI_t|>OaI38NHo*29(7vDDT8%xz+uj(w1i4a@n#kUH za8`-TVS}p8`-z}PiSMxlwsbfL3KpOZ?2)FZ(1_JoKi(;T0;cSyl@eDtQk;2f8yRbX zsE4RQ3pQwGtO2R;uZd1uF<MSh@;6ZWum`nj48Pp)Oo+D%`7QD)58Y71m_MR$4WTTY=sg6p zr<@)NOWvwVt3iT+U`uD~0(jD;A@n;~!tCZ-J}UT)c!ZWC#dpYR3|OiE`B|mFcFk+k z2%XWZB!s~VJ8N@@QQh!GXj<(TvwR$Ty?)^ek%ObZVuvA?l2A*-dMZ_f%jWYGFAG8Z zHRqYLJ+$Q6oovlGgZRpXgx;3iM!}gUkp)T}QCfk1h(01Yi@EdUMB0z!AE>wUqKiJ# zwL!6Ms@G2fKSfG~(OI5kuk8r9e?MA)1N8M0CK>_RHVZP7h%LgKxr- zIgg3#kmnA6^3s6Ew@x{e{e8Vq7W_qUCP$Vzu46XK4j7oD=ky|Rzo3mDunb~0!N7;S zvI}_^c~C{_xR67Gw+^$*c!sGw_M7TJ>7!!c1@YmkK*njDrVV4Cw+$u47SUEkL zl@F8o{26$#ZC>Q04;=2oUiQPG|H^lgmA6Z0@v)AH2?@jQWJ4h8`D!R#M0hmID7}fE z0&}%0@zqf*DD)r5V(G&~J;=SMK8Rs`LL*P*`igZ6uoe>_7$Ud=>Gnitvl2E(D^ zzCvzL#wyb;NpExmhpM#pYXVNvjww-{#W5U8UjO_^4&tiiKzeN~S^OCJIdnKVW7#k^-GCY9@NbutqomO*=n!8;T`6$;S zw7yLR}Sh7ae^ol+|Z-|6q3ZIuy$|!xt0;+K)M7WEID{39Jn%2c6iI6Yqe`Vu=!h|&b6-M z)ho38b!b3;FVIay0qOlx-W91+^r3&TrcI__n%F*6`1XfK>`$o9u0Z8u{kQ&$^=Z1z zsBr9aqiUdlD8I#Pw%Yf5lLBlg_w13Noj_dxQ0b@WcDYb{ZU4mvHl070NQ>!;STuSO zoM3J4k$*`wqCp7JMU#_r%0gBn=-{dI)Lx5!v9KoUpaz~>&N{VfJONY>fYOALr9!R= z>WF+ysDHgyjV^oEvn@qTkGQ>T0)CkHBfW{O32O0Zoe?D({3G5KRhLxyK-ohJD`riv zYd!$V6T;rHrnfX}2G^=Fj*EJYQ*^q3+vh9j!uv6~PH)8RRgRSBpt|98-*mV#DwNxjA3t-mkC=P zPpZx?lDG>p=0=;uMrEvNP^ZqpZoaS@DN<0bF(A7L$&CrDm$@99&)!bA2E}A-gH@1& zT=p^zcGnTP`=1&1Z|0fgsY9IuZo<;zwqzcvRPxzn&c^nneS@W=|GE7JwEh$$_f0QY z{g3)QnBlY#`|=>%v4Xkmqxha~h9|^geyn;y`?6or<0_H#giL+v3}x@GDPlh50wD4Q zS%KphsOB!@NXI$G6t{X$m8qA*h_}nqIiC!Me&?Pf!VdVGGK`}Ck^WE~51LnAI%pFe z`bs!a*U9#N9M$dNA@f~bM0S#*mW_bhaRA&|8;c8wkrkK`Bc0}mz;vgyfU!ml~BeY*>C$7DEZpM}{tb27b{o}CuC=ae)u z%&D9y9Jy&$VC&hd!HgU+NG~jyu z)#g%*G37wb%c1|TrfZL9`V0S+gj9-938`F4QmNd=DwXa_ZsoR0r4n-q8?&W|D65DH zTX!KwjX1c`0Fkeo#rTgqQ~xAf0|jMazS_ACzef<|E^O$)63jT}vESj)CcmbKT-FFk5i{ ze1R<4VD_xWRkZ3V>)R_yUZIoV{u?@uF1>918TwC7yblKv`}4xU@=!f8;L_z!{op6$ z2-a@Uq5l%r4nXTLncsC52L!_nYuolRjw~aMJ(q25FdbmO)k(m;{Yrdi{*%3|lAUjj ziOFiXxz*Hg`y;l0wl2=CrrB)8<_>%B_S`>C)hPV$;9VtDTFXwCxlFYJb5CrgW$mOu(c4z-)NZ-xcy`W=yW_ek$ZPMs`_$A z-R3POsi6?2iVh-F>iQOK{s(JG!bzq#C=n4SuQwiSA|33jfUX-|GqXIB){TBHjEvq^I{U zDi(bGer|Na`O+n!_?>nK2oQ;VDalxeCtA-Z^J8vRX);af>m~%&d`k6g;5)Yh3?gW0 zRYa9dV?1ag@p;+j^Z<9{wRKFB?sKl60PO=0s5Q$6!JD*H`E|b@`zoV)?nD`z^$e(!Iu({htDwtSM zoe#eLX9>M93Wta65(Aej@wh$HvpeswOLB#>fXnEF^6|Y zlq$OUZQHw21c;%eF^{1XwJ@ldecJ(%3kE%;`rsV{Pk#blAY6}&wIdm2XOxRDpC$}P zC`E(Tw;T|ci{Xt#eTc>gCD0P7{{>qgG<_mXwAX)nS0iF2(z)0OT$pK-1t!@FB zOut`IllLiLCBQQ%tpU-Fe85dJx+(yq_LkP%Vs1w|eTlAjkqcs zIVA!qf-Ix?*-m1QEBIIHqW)^|V@AmjhEi^EQ#ct2Yg%8kh^0^3R+QX0~n9W zvLmKt0U$s<2n^Z^-lA%T^)?goznpii*9=-%YeN_ul~sY^DHQl;BiDmS>2x8}6Hhz2 z!WHTPUiKuqkOuE=A=4dio5T^R6E)EACXt`L4c5r@sIcfZdd12B>i*DnU;_%X1VW6w zXtV%&HsS%U{+&YS38!RO_U(3XKvK(M+rS1>`c|2#8I5?0qpfax)$j{$HE9WWVcUyN zAJsd#d@TC@(B)f|GQ(>?x9d}y;4iQsyn}O)haHj?{RM7nj#yp;)WF~4Sp_5|%3Hx< zOz|wVgvnuElAY*QS=v0Mtp%A~W0Z6yuKEiW&J&w{0$%v zwz=tNm!)>*Ea}P6RhmCY1h7(GCx&lw_{*uj{n|L((&6v0SJTfGHHPbXVH!<88L_KD z;`z{3UuO_6^;0EC)N5wOek>WfYFV$9Ia^*obX6xoGjn!FU_@1di@JM#-*J#=PW<5|A9Fg=4W+<&)4jhz>M)4X z-Y3?r(lH8EB3>o-AEX~D91^)z1uh^Lfmryd*X#eS|6<=AyRdd*OT+P%v|q6cr8~k5 zZ|U^K{@jy>`vG>3gc%OrmRf;KTyN|`WOa4M)P8g{*yW}OnP=$7K^UXpDlk{(Nwr}k z^?Jfloe}@ggoW$-0M;x;rT`8Ty8y(cd2p@_MVA&-L~Nq~Z1-TMV+m=62tB?S_mQe! zF}Ls|slNJwU`}-%(GluPrxB|K6GBuLih1OoU}_?=!1nOW?s_c#fo~t@`FFV+cMTD{ z@7jQF}?Jeo`@JsSkvX=2L%C=!E& zCEZeC^%a!z&UhkYqph*ool+=@u{tL%`*#QyaV6~wEUB|-eOkU>j#C2xG6HxCbfNctt`7aZJeOH49@O&JDE7TXz@H zXw%BWzBx5ds+g%+7hQL$KHcKmf36^9y`{|kNw}d6zJ(!^2G21*g4vIO_XM3QV;~3} zFk5m90*VVQ`d5R`jdtoNQ5~s|$JrR5F==DGZ^E2oaH>6E)$v;`$B*ZmyEVdP9PvaLXUU zdF`SV=TVZCjMN4prerpaWBgTUvR%B@W<9WGh`QbkWp|e0cg_9UVHANXs=4a4+YTv)5Y-U3ToOj{S5u>Mt_2oV4j6 zImM(;2Sk@*Oo6EMu32jcoZO?RTtVzrs}8!)95q*$mG?YaCJb*AhCf7TagkWQU)7z)CY`C%JaEb7+mQbZUYweL?%chg2pP77io{+=n=5T&!2Fcf;M1Jy`cESo zlSEnBD4mxBo*j-mdbSAM=!8)e70hDPCYq{ETQ?PoVy{}~#66oaR6TEgAS{892Qx3D zn0g5j$1hGYRbqW6G`v$d0inmeIJaT0A<`Q-UJt-UiGXQulu8avZRB1!>M(5w__d%t zCfTy16^IQg_6|5Ck8NzLywBfJMNmw5CjeKt)E;KVH>LEcK+r_++5YQ zne|(Zm>?F}w`Of$yN9?_taxk3Kf@Sd%5G> zqm|YnZ@+_Y**ngXK{zglXAi!(fM8ZLz^6E6g@@00JmynDPR^;9jXw<5yx5ntsM|FA zm12$Wmtt>^5}!lH71zDLe17F)Sh000_oJWwr>)n$f2Y6KFY!4Tws*iN%587w-Fh?o z(RXz_jXs*?U1>4B6g<_y{KHQy;FBWS5;Lc+_R4g3eQ&X6wxGHk`7%L)B+(-; zRfS$p%#u>=5wkerzCZ(hE8`%Fuz}J0!l=bFFku=aGblzFiaT0l;ZueW`C-{O*7xFl zZqCz@A9dKyNBEC=WQ@g_?SOHWiSsqWxK?34#ZvC1UlUjVBWhOvGkelHYGU^yQA38% z`%&4Z3-+}OzSbDAGrDU(2(Oz@tE47=xWuMxV=2N_=az&j`5D#Qjo$a5(;)IGbf2si zK(t5RiA_Q)t(bF*(qD6D06l3!3+S;K;QTQ?@(brb9T}xF0KH0ZSKq;HrFXhpF*kh5 zyVDi2n1EgO;`7u?S*oA*^jMfW!xnlNr7`YO9#4hdnPV?OW952Y%;4QR;}MgS7!n+l zE)26wsOh-|&HIi?w;=D&Cb~ZTOFNSVFE@d@aVxAJI>8txpeD_7c2HG5*Aev3~6OocB6;@K#Q4^=A_hLlAsn>T3nh zo=bIN{e8;q2!c+UGXUV`2=Mzd69^eyIu5Uc&uQ^jI@I5|uL(IKT}R1G)il*bt{9HI zpcAE)E8mB@F>>3fYYV1+F&-v;-}tA=W$iD)&Y8rsLn$*ZW+Q;XDu(TJMKbkZKJ#L8 zy?R$<8XDyk)I6t+UeC3i7JQ(j0sie^ZxPpaL~-hpQr-2Q*f0|F`U9oWvQo9kHduK` z!HnvK59!Z~I;V&YrCz=8FS3HRIc-SWT!xg=eGZ#cY2BID81hlIQH3xE)t>u+JxC1! zrxRM{G8`!0pfb)!ut%NC3bu){W1>L~>Sb5vRjY$zhVv8o8^J{)!2zK3f>J%GV@{it zDK->fxuAO6D@x08q#CH%eBO$VGW)q55LV3y1-?cJI-QP0dbC?)PJ_t zKNcI-rU8b;qHj_erB&cr0F->o1lHCq6G@y}6b;9BVWt2+VFc@4Q2WsSFqKyCC9&uIF=l#jez#Cgo% zXYFDuzp{R$wbH~5b$9HX;6_S^T~j)z&kBb4p3aGU8j_<=L!8I2^?}fbVjq%CpCK{Y zlD?(Zc+2yHZRZ3Kt=y1eeVBcF)(HgcWbD+I-(BX~p0V3q7jEzCj&QO0_=~?53Gut$ zT4`JzeHmPPQc_eHBtq@;ti!u??73)f;-Vw^?I)ONgqZt4Y#Vtmf2VT}J+-{jD$@Os z7l<8PNcXOnu{z2FU0TvP`cFfi>(fdilpo4R##8A21L>SSwU8bk2(g7-R5^lD!-xF& zbf;hkZBa?&zmqrDuPZ+C!0ojZJ#16!^1b30KdfJsf4Q|=gLd4&UqDi$RZf&5W1Dzo zt?8V=vo#$bkg+Yi^JV(9gz|6>D4@d+?W`G*EimDCeHs~0<<47W_JMxM8t)R}T<#CU zEY7u5I<F!ajU-L1fbbh^DZuBm?_};BqyBKx!VY`ul<)gXL8~)*+`1WCkFf$=9NUW$cf^QoCe6iY1 z9B=G?DRc^VLZz{l*t}nXRy?y}9(M9ggpAHDx&689K+K?NM2t5_=y;R~NG~udPcu?} zXX-Y21psR>4Ah=tM1Gg4;n?TYd;7?h9^|dXwChh0>Jrh712Ww&h3jq~${&mV5r5-# z{J`p)!A(Ua>!9wK?S5UV0WWmJCS<*%4%^z?l^y!Y6qnn7e_}2~sBxP775mcEcgcB% z$b*3?hI!{Qe_ZG{7?=vYH9R#U>3-DjY{d;?2-KId8 z_M4GKh&CSYtrgMsX?kB<6YAG!_m1&|wZ(|t`y$sy4Y;%0|1gtr!cOdh`T$!6V?3Jo$(nA+c2+-*(q_LexDkm(% z-j`_8q9rgiF5xm7{^&sbw#3uWPlWbuDse`S!{bg|e9 zzRgzOzIr*%GRkPc^qPs>og*U7lvsm1>_Quk*)Q>tA0X~XY&MZ_(_7YDJ%sw`d^(U~ z7FfS%$_W;DZ3Oci$=`>Hb}N$3#OV$9<-2wKag)D&iwgg~^C90i!sT(9 zd-On^!PgosHY;&fZDF6qEin@6hwG`bEx9QF{fj&qPRh^w88uZHbyze2sC|_zXs62W z9_xMwfzLLVWsOiSF@XBv)dIKywNe1z6`iE4JpRR5kjRkRNvvBKLACO;+NSlcNRlqGGFNte8UdOo*$)M$NoiswIIV^qcs*4A@6#S zR3`3R#BLfZBy_a&0B_xMe&encniUGxqn=pEdOEpG67PR}?>vpnsh zw-5%j&^xlMm=Br3M1e9t+>5rd6Xt#X2QiXdc-j?X`eHJ+0Yygq5?%A6oppFynEq*D z4u36O5cohZuoh4EAnzXujY-q3ZNM0?xh&c7A4;`eW^}oW=stGU0Nw>bckMy7ZYG=X z_RD7Fp8WCd(fYlDhFikYm%^gOL7R}uhO}Pz#|_?CH;<=$^K2sJYcTQn1(&!+vAYPS z4^wPl06~Xke&2$KQDe6?zKix};fal+-280(;Fwg;g6!)-UV&?vvac}=#u)g!^wfK1 zNGypj(Wym1QLJ6Mgwp5X!otf!zE9SKjU=eyDac8&CYeIk>&X(GDN&s8Kqt;vwAbJn zwDp}aci!HPC#%!#U`jDd=FB+UVfaqc{Ju0=d522HY9DRIM!-rQ;;fp(?&#iJdyV54%GC zv+a&k7lp6yAb%T$S&ng)KL}qwE~&(Fw2~@KuOwuu*3V|GU*#a*S)C3sokSq_4NV&M zKP`l&Dre`^yD%}{8wnb6idZwBch~_A>U$KUm9He7N>i9l;(E3VQRU3v7m_Nmp51Gd zvPtaj%|diJ;dH>L=sXtBH~<=h(6jj!Ih*Z77tVrKh;9|I=R`6R z<9#iG)?;pcGhh^u%EfwXfLw>uu?pId7<=>bQlRFdlBr}yVhw-`0${U}KAzwMY{R!= zF}2@;C!N5xT9r2yC|5lx{E2CHUTm@feQ;=hvm;>1GHXsM^+I9P<7cr+xM1)& zju-22kz2q+t=0!DITQB3Cv@8%0xOX94Lm&0pL%m^^TmcpbuRop%M+XjyR6K(iCzZ^ ztl>g^sD<+f@h0$$Z^4CsU_AlngjA?j8524|)(S5C6^o?v+kCoi{*Ydws#0-KOmwqO z8tFw(vVCTsKs{Nag*F@hdBzxiQ0kLJ)qY0JBfAe86D`rFhcdK? z&)=|?CrdQZTEoNdGwpR5Tc+P8o9auiCD;5SFW_RGYV;l%-dtOgwaXaZ#XC4;U0aaN zl^zSXT$C#Z+SMj4cd9}pfL)aNmu5a)iEW1c1uPYBKqBiR0jr+~-6jFX>+fgOJfBvJ z0tnM>FECiWVdWxdYD5=K!Batp8|K+*NO=DVWbObsHyLb5Zc~7s>*Eq8P4w2M4uDC^ z=b1<6nQMCa2s6lb382N#k^{-qFBla&InMB(q(;}oK(6pD4+r(d%n#LcD6!#Cut&!Y z0G!!P5};0*rbLGmmGeAUMJAE;|4hZ+=9+dTb}G)?3A0J!JinqxB-UBtTtUOyaV;dk zIr|C%)_U0OKW+US%7g#YIV(f_r}>-)D5=5SAOZfUzACZ3`zJYwOU9!rD0gL#puSEC z^1`7Pp_D8-u9454^?b*YM9Lq@fdR}HveIJ8{UQOtOu2*FdANQK_7;y8#|MDjy}%zS ze{I7k`Nth#R4H@+D5qT$6doa5m{YlNMcZ5`f>FH#!0)Kbk&^hV8Gh#k@OsEJOLf67 zL=hl{w#q2?so0`W2S?TMlVRY0$k)pbi0kQYY&~uaGp?XextSnLaiE;%d~B8{M+uTm7lhQ;gY&cI*}VDW?8G*{fl%fhxBvz~ZbjGp|0& z+ht{2b0DU@UgXOg5G&gKkBIB2bz#Oum8*!f059fXQZ^-CzbiLYSV3W&$JZAvnpk%@ z#`xvjjX2lbpSYflMx&kXsJPTKsN@w7otD><)!&m#qC8b=4OAb3Pm>eB^gVJl%|6<9 zz{^+P^0COJT(GW*Td7$F8}Y9AX!zJEj-}cg?2)MP9$OZLi5$3*dIH^Q1-EP6blP!u z@iek*l~>=UH(ZL`Gxd&bBe!xf+k0nk+$!Hg8&Zj<+UlGWeT-?LBeikG~nkHMhv*ctGVK*k;mXqG~TVO(a0JSJXa`x z4{(jpuB#8lD6?oid&bVowL(Qrq%04H*#u#0rphfDL6wJq=Wgvk{%nT|9U?6%n|ND< zb|jQUB={#y%$bkRIaBDqzn@sFcz!Q#X}j|YWpvDsg5Z)+&Azy;#r(rG>DpG=yO-$1 zOUx%>Fg-Z+P3W?oJ^Mr__QZY^b#x;WPr0LfL6Z%OshWTb0~+#TE=s}X?eF`xd^GQ# z(D?1_>-PRTM6R_*VBeWU6*1a>q0$yNOsYIzzmL0_eQRc;vcFl?d070w1M9(Uc0(q1 z?U%)WgTjrEyx&2Dod=2irGrakWKJ0f<_u?evrcX~gv zZa8xD*lToXok{dyi|LE9p7&)JCQRF#atuptY6}8y3Ck><>;DAnY@MD9NSmm?Gl~BT zA4nJ39FRHaJoq^NL|VJnJ!bI0XIBo4Z8X`;tz1$DdyY-Xr&$dfpnhK;j!_#gnGAbg z+iF2}%0_H>y3XGHJK7?U>k-KDNGw(}N2g6X1Q9Ykg1VS{C(h%93hlm{g*`PpA5Peo zIxuySCI{u3*Ok{+xsz70jYfoy{R@I{$A8A7AI-7h=BjS6ab15|I+?SsZAMJxWU}tr!yER1H-BI={`O7#Won-$n5_r-?-i#-NaVt-6 z(Wt)`{oIJB#zV*ceY113PALF1SO(V08{^TQ9rQd4fy;*1#719(X&`xDOjX=vqG``5?~2#%?zz1 zu-xVR*v0uV^Z&;D`hlZExgUY7X;J-sC1EkfQ4ZC@l6~eS^g)Sf>p#G~E}&B78|l1C zg$=DM(1cP-z*ey?+!9pf2Y%OKQO>KRF$1TP2~4M1&(%`#WTBNp@wXr5F=Ss(cm-;H zq+G3z(UW)%)B3uUUPJcLP<^S*04xPymV(m&X8eD;_JX>Yjl4HrSQSqJtj1uB!B#ro zU@(-?*p1W9|E>OD;M8J_VU6A}C(gb`FNxU#ZZZY`t==#{VhWA`66w-z1JENE0KN~G>rBsOk+iktBwbRrc!m8V_xk*5Vk_r^6%0PLQ8 zsQKhK4ew>S{2Nv1j;n+t1=`#urrPe8Xm>}fTjL;ofvhV@q&N00)Un5_|t>oCal;vj793%2vQJ|XFY@zk_=)kX-AWn+o%=3XZXY5W6e77J_oueZfr3g;m5eJ0k0f)mh zeZW^wB_8C0nOnyutZdq={JiS4z zim?obA{4GNLwA8HLT>LaKDe)IXzb}DPF~~yG;bblQ;yt z`0R6Zjs@A@gPdjw6dh6(i6dNXpX-=JVmy*)P=uT86$ukJcEx>K;b}A^pk-l;P2mW} z3cds>WZw5`ijQrS+wLZuPC5kM^f4Ow*z~qI{aZKlP~=O$M7a^J)n{;csftr@RW_TY z^de)fbtUFW_cpU^cgL z%gc+eSSnOzmQR4)w~3}xDSdgrnci@ChJ+#?LI>$VD&s<68fXoriee_F}a7?M4v2H{S*Y*Ep1(<=KQcmj9_{3C)t zt6Rn^?fSvcJyaxjF~lyQ_&`d|<7@S4=d55OH?8rN z9{87gt??GwmOf#v(JKZRy=MixTX;iG)_9Qzo?&8**B%x^uC!Jz*$!(?=WKk+*=CJD zei}atPBN$^Y_A@vTiwgsWsUE+An(1{+P$=fd&U}XecA+`qEGYdC-?XX0+!csw_D>w zFAP5RfgD9Do?UE>4!nyjOO;=HsSh*yu2(ryw{WbYn`hCV+3PQ;YJu35BE#?U=%5Ez zT<%hy=R3G0w{S4MP|XC}RX$Ru_MauEo>I#oMs`*BdhID_%~`>KTFsrf4@f7_-%i%2 zHAFze%18bz#?d+8kWLL(6o4oEiAh&dPEfIBMJ|UF9Hd(;V7tk%pNK9WtnVlW=7v=X z_w->atBJnn1j*+ICwt+J5vYj|Na1;BOqM>(!HspsH2`}21G24Al;!OMN!bB=q7Pg3 z!M{1Za7{R(q!hVv2W}7(t@R;qkQ5HN;SQ@D+0yyr^VLN+bl&+1PTb~Q{grOHv=3IN zPrC#TyIiC zEFU?iB?^#K4iJ#L*M=Y_^&&a{=H2dzeiY-QZ@P>mT}d>A{2t$w z20Osvziy`ttcSOHkr()pJ!mK?W6gKNWZAp;E;;S4?0^*4 ztsGm&DbsZLg%KmQ8bcg#(B1L7Z<=sHr{|kSnx0FVc)*kYq2wsZBXWkr?yLJ z@HXV%!atM&FKpJ&Ip@Pl7(4uUmT9{ec^48Q%(lHP*U4$&wc0UOJY$(Ym2Mppo)pYL zqtTl@l_&ReaU!@)bgzzEEx_@bx7O6kbkRe^x*J3nRdb6}VFw!AP^cPf7TX(_Qd~b0 zEb}XfI&h%#7F7f1lF`?QwxiG#mlsPUWyzerEEkbow0w6Da~o2z39B?lU1PDHw%Z%o zzB=A z($4oxQwtJ&NS5rIa+7pxn(ZU3Z~dQT2r{^0*o zrHE>FUMiMb&x>6cOuvcV%Jq2z#jYDZ87!6uf5>YrtPF2;a=jB{4eHH`=;E|Vd_RUS zBD8*f@=toBxAY)ZwZ0j2-8kwas1C-24$uY@?%p7*3f&C41x_Mgd11R2HEXDoA5Kdb zD;+axnJ0hnae5}82WL-moHi+EdU~@`7Bj%N7?<=_Ht0$(Hq&1_G4@H1fQLNYskkh$ z+~`k`7J3WU=N+rCBK-242*$zqma#f&mDya{xh`Je0jh6=yyyp^@-ZD(3yg~3d!P>l zP%e=7sKgoubcw!dXmNC-o#WG{S49FX$sG!!KNvifZc3)MIsjI~4GWbjs%EYXUZcBR zL{UADcm{|go3qS}f#t(3i<(*o{J47 zP%yv=A=1GZCA4FX!=+)tn57I(2vHt#?K1%bnzrStMc7ATLsSs_qEelF=RfL-QeCx_ zYb&fHgE34}E;u6q4!U|&PN2ue{w($pC&qG~I){C3Sgt};s5Syz`UlEa&R^=Bw!#?H zT0bu&4xFdX%~LKQ#jjL>Hfn%g9689NiQPb60_Y6FewnvW4dg?wC|e;TdcE*blrnpM zQ4P>+EEvZ{+k(cBFkK*J`X2>4ixkKIlS>EvO0(@jf2RRX!Xh8 Kj~1-dTJS%*+pQk} literal 0 HcmV?d00001 From 2ae087b88c0bd5830edbe37b1d3cd39a6e5928cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gr=C3=BCning?= Date: Thu, 1 Apr 2021 21:02:51 +0200 Subject: [PATCH 4/6] fix spelling in test --- lib/galaxy/datatypes/binary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 7a7793454c6..8c4e255046d 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -210,7 +210,7 @@ class Meryldb(CompressedArchive): Try to guess if the file is a Cel file. >>> from galaxy.datatypes.sniff import get_test_fname >>> fname = get_test_fname('affy_v_agcc.cel') - >>> Merydb().sniff(fname) + >>> Meryldb().sniff(fname) False >>> fname = get_test_fname('read-db.meryldb') >>> Meryldb().sniff(fname) From 19acbd5b345fb04f09c0ad092c248eddc7d96b24 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Fri, 2 Apr 2021 10:38:05 -0400 Subject: [PATCH 5/6] Fix library scrolling For good this time, I hope. As implemented, we always want that container to take 100% height, handle its own padding, and scroll internal contents. --- client/src/style/scss/library.scss | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/src/style/scss/library.scss b/client/src/style/scss/library.scss index aa1d9d06028..0cdb7e71b74 100644 --- a/client/src/style/scss/library.scss +++ b/client/src/style/scss/library.scss @@ -1,10 +1,10 @@ @import "theme/blue.scss"; .library_style_container { - width: 95%; - margin: auto; - margin-top: 1em; - overflow: auto !important; + width: 100%; + height: 100%; + padding: 1em; + overflow: auto; .fa-globe, .fa-shield, From 13d91da1f4427b547e936f3a1fc338402ecd4a7d Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Tue, 6 Apr 2021 20:04:19 +0100 Subject: [PATCH 6/6] Fix typo in `upstream_mod_zip` admin docs --- doc/source/admin/nginx.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/admin/nginx.md b/doc/source/admin/nginx.md index 917567f6b88..f729c3155d2 100644 --- a/doc/source/admin/nginx.md +++ b/doc/source/admin/nginx.md @@ -364,7 +364,7 @@ nginx should serve files and edit `galaxy.yml` and make the following changes be ```yaml galaxy: #... - upstream_zip: true + upstream_mod_zip: true ``` Instead of creating archives Galaxy will send a special header containing the list of files to be archived.