From 87fb873c1ff7f29edb022d97eb587379034e9a6b Mon Sep 17 00:00:00 2001 From: haoyuying <35907364+haoyuying@users.noreply.github.com> Date: Mon, 28 Dec 2020 11:29:22 +0800 Subject: [PATCH] Solov2 --- .../instance_segmentation/solov2/README.md | 119 +++++++ .../instance_segmentation/solov2/data_feed.py | 335 ++++++++++++++++++ .../instance_segmentation/solov2/example.png | Bin 0 -> 459508 bytes .../instance_segmentation/solov2/module.py | 179 ++++++++++ .../instance_segmentation/solov2/processor.py | 243 +++++++++++++ 5 files changed, 876 insertions(+) create mode 100644 modules/image/instance_segmentation/solov2/README.md create mode 100644 modules/image/instance_segmentation/solov2/data_feed.py create mode 100644 modules/image/instance_segmentation/solov2/example.png create mode 100644 modules/image/instance_segmentation/solov2/module.py create mode 100644 modules/image/instance_segmentation/solov2/processor.py diff --git a/modules/image/instance_segmentation/solov2/README.md b/modules/image/instance_segmentation/solov2/README.md new file mode 100644 index 00000000..60c8d811 --- /dev/null +++ b/modules/image/instance_segmentation/solov2/README.md @@ -0,0 +1,119 @@ +## 模型概述 + +solov2是基于'SOLOv2: Dynamic, Faster and Stronger'实现的快速实例分割的模型。该模型基于SOLOV1, 并且针对mask的检测效果和运行效率进行改进,在实例分割任务中表现优秀。相对语义分割,实例分割需要标注出图上同一物体的不同个体。solov2实例分割效果如下: + +
-*CTk>tx#PsqVuf_y17T&ciW! z4L0=ZZLl86`jF&zF>K!XUg?@*E)mIUMca@Om6}dh;rd$KUz_Hok}3SW4c-0GMmE~m zM6VA2vrWg)Z{edVSP9K+M$=Xk0g5U)NtgV`_hUiZtuJayfUm&e@Zaw!nZMi}HgH=t zd)z_+&Qtt+i%jK7cAsk-tfVv(1cm=RW-KjfVgjV%WmSqG@uHO&ad31!q5DWPT|}JY zyihMe>cwz-EVeaSU97loXJ@B>&B@7WY+dYutKE3xHm3+6yuL}FrXo|nhVZHz)&9$v z`&KlFoLah#`O$1#NDvmaWxI2|eAfrkEs2sQ=YZP|%%`F#G`oZ;)cVg(%oj zuCVTD%8vokdkfR&^npWl+Vz>hwcjI* I0*3hu}#EdX(ojZ8{{OOrI z-pQ%wHQg?1y+|whPU|xUOWz{&$kxfgB@W%ydpzd6R%$ncHCwdcy4cfIdehuxsFE&J zaEQB*Cl&C*mwryRSY|)w7S*gto(^ $H_*{5idqgz#|&Gh2=ab(uhTy_6CP7kTd!VL3olSiet4* z%^*1rcP22l-T7`7dM*bAiav;IV-);0NNb9r1}BM*gEiA3a~YbvnXoeTSgPf#^VNaI z;ML@Y%a!@HmWFOpm-0!XZn4nZ%Hg?b)xMDLozQmYdnm}SM*08VX}xS!+e}{#5o1qz z8kK*i=j@wu*!iDQ*G=@2y Ngw2HlB|f5^L@ zomlW~b+4-Aa{mCcTo>j?3GEbe;!P|Dm)2)gYb~tPIx9WA1wPC%q=w2e|9I6URG_e| zEpAs}RO
qy^DDsTehlOqIfo6h4<(_EFKxs shbc$*Y-ZUtxiXEo z=eUtILDSERk3>d-v6 Upju-SO_rtTJG+$bJ|*! 4_9(aq7^dQdVVV=?Em#SK8T#Cs ab!S!N`(?Yp@%SnbB&)+cVbN9A(>L<6|Nsd;I7;h)fRzB{h+xcd;Zl0pSv zuG@!H!{Kp(LNgL-nc6b~%uM2Ls34vSiq9!)B?kIxuoltA>2HrpTa<+E1K!)%rqq#9 z^Qv&rK2&%KjDzqTOErHOZ5BG^1*F&N78hGvYIA%ts@Cr$?fS^dUU2?dLOqI>sU=j= zy;kZFI;Es{;VSR1C!97cOLG>O`xDTDZ~q>Tl)(yA+~o?K%)6qKICQ7#TZ0BByiQZD zNLNS3yE}K**7}g 3M`Otu0Zb*l z70*L7OUVJBOu~rWeV#zC8@HrB=>jQ0 N_o0t{p<<$*JKtBb5R-giAqNufB1PIr6XZz`T zh4lAJqAPtG=({{rGNhKM``Pq!z=3g*Pe^dLQS%Bk{HW(zDiD6d2OlwG$`Oj z5tQ|j;hVv~pP)K{1PTh#CaLr|PC>Rp|H=3RIUtxrXj1N4u|KVhrtUt1;beOkObMx+ zsZMv`)ZpmsMv_#g4AK|4=z}mcw8XsTa1*?JX69CAKO tFo78( z0&Y#L=Fp`)Tznw8kB(*E$U(l?A`xPA2QPNIjPbrwN`JN|jV5;daab(t{?p_Ay{Wey z^AFcE%el-w0|PZ<8?Huw5w`FtR$9!K&l5xl?K?#G3B-RQi@}5*z~|iY7YK@5oZARi zb+13jHbKd3i l+I;aG@+D%C zjGZnf1^ }$bK4y;ekq-O|I#mg4j4`47Y z-^Y i`Cjm_w_=B6RlX+njX^&Ofw+x#_8X!RCCfS+p>Y ztURIYnfXTP@5m?WZ^UbZzUg5k9GEl3goU^Vb1wt@Jv@l(Bcw`dQ=>(#$4Q~V!~ieJ zJfVBlnl+ {lK;R)yArRXb?hCk(%% z^h|)tLhFtkzAyvoWQvwRoNHaTO$Z@mw|{%7BCnOnbr;CTRY-t(UMu*r)-UQb>VLM) zL>`+3U|k;FEvxOE)JM>s`e{ Sc<&^< z?8P)oQqXBU>-tzVb@5ANEZux4w&eWSsT$4Pv^6=M`gmuaRMoZ|a*K e^<>eB&5lNvQp7q2s3SeUQ;nT0j01Zx>mG;lgUjSNbH=@ER;#2{g y) %HG%7UIcI_gYu>7s|25`klzeJl^5*hm z=!utyM?;BI&w-PZaIHf;dHQ&N757T+*k7deP4NdwBvmEzNm%Ja#X!z|`0n3-YfVSX zp~Mm99O S7KH%p>Rdi;p*?Drb3w!-{gUzWOb!VYR1Gt4x339aNG zBI? 3Z9z-|O8Sqt2}xExvizxQ{rIu+WEQha#(ZP|`$_U3$um3>ff zZ4R@el;zLo5uT$fQPS+?F8L7Cjyf#bA6-<`%W`{W7C3JDdJMPR=}Q>+#{MDw?E1Vz z_t~bkS? }agX?wC|pT(?Mlo^r-1uErrPq;6`(6F=tQ`}+0XB^41B;CK3G;Fch-p@?ZVUD#=c zIUUYqVY18pIb)8r^is&{kn^l9pM+uk;i4izVol$tHVdI%+IO6d5^|bJM;|j2D*d9I z?G~HwkzGhK7^>&{M3JOk-)sC?#{vK_ke34f6|0KShp(xOGse49rvpS%y>;F%0yZHd z=mOp6HsLFZ;7)-tfJ&V38&&{>n= Ky5k`_*IZv#%cwKx$hA#qUOd$dAWhXM@Yn zcpuTxH;~um%8vH`UhTg%Q20D9Q~1d_6853lr3guo)1C=X_O%Sl^HK+X=@SPsLU|bJ zFWrkJI`0Ekd>=Zm)|Ps69mYAAlLO*yR}+3;ORvo70+D6eAuVvK{~C%eqO1P35G<=u zif@d;E-AB?$@^UkywDrDv(TDs`*AV`^mSrl!c%5Ez1ihKS-*`4fV;vs9l}9*_bsSd zM=EWfk6%EvlBfJT587fmzaoH16bNocXN=gFA)n0{xZT$9wUoz~%DCOgd;-L!WvcRS zDLxujAY{!={BtBzF-N7zX%s7T!GlkusD_j;H&+!1#cvKDzYkIi`}q9)Shr`a_5ML{ zRkUe3!*s~+j;5#b@`iIf?q`bKvM1h-M(Rc{+ TKuf0Iwxz?--5O~4Y@t)dV+9P7FI_?Wf9YXX*yNXruFjmlS*N)YNZ@3 ze|m|96*~_4HBIsz{+^zA`b98uLZ7n8(y!gZKy7;JUonjm@ph9>d2Qb7yPQN6@s~-E zsWT8EGEvA&Z&{TLXSzdG{=tV-RfeMCJT~`lyO-$HdvtYDc7(h7yZQI{_c`fX*=iqB z75~S{`h2t0y;AxaAyU+|$>i1g(CROpz|f6wKlN`Bg#y@|kB~S80v-OKKg$>ECl+4$ zU8q1yx^FW6ec=ncC0kS92~Pe~()!n2pB{@lH*dHJ1}Z;Hd9$RAAA1%qq1_gHrtM7` z3N{S#mR0Sa=Fod?saq+HDTLfVQ8Ol~we90F`~iJ_MO@i%mg;VV872S=fwu{Ay@i!V zwWX0Qz}5;Fbr+ujej8@o0^k}Hxah(4f2=~r_!ZbZE>WeY=r2BYg3O6A`uTa-)&p9X z{5w>ul?3i7kLYL#ZF*5LE8it9&7? )HA1z{;AI%aZQ6C z#Z3Om(g%KBm?UFTYuzi08)l<^LZ&g<72aLx?#%VssAdxnV ALrmCRpevk%VwJHf+=kO zLK=PAo4lW64wy@<@zrF1earlh1_O&NEK6j))Y2rizZ$wRmItbrJC2zaAH7{&J@HY8 z(G>YxVn8=vmNULz;FuhX(YQ;58E)WAp#=~>sp6CGZ2u9{+sq!=Gj%fe9;)}Uyt5}x zmW1u+kc)^e@UZMt^|h2u_f1dlte56ZF$?QV=}rlemmDS_&z=-%d`2nm%H>b7$AT`q zt~Ql7JL~J+s-FWtTL|gs6yth)A5$Ft9!M-g*185-YU6`ZFOOC>(1)updt??o{97*? zYkbl>|7>;Fww}35@e5nGQmy`8`W7`=WP39IUZZ9P?&wdvbF$Th_XxQl7|I8GUC!H@ zWf{8tD83h8Ri9 $IY2*tzAVrvO$ zW@bx_YH L6B zIS)r$xt4hxN^7w!^%}fSe>{Gu3b^^+*&IFeKx#17nz!L+J1%R&9txtR4QDe7q6bHd z#)H06F)yo<<=1z0x9hwxkc(I6g&J~xH+w4ZAF}^unk%x5 QE0~_v+~CB3QI#r>CO1i!1wVR!|;YQUN;YFgV#47+H9hzFv*abgueeMs}|!@9w6F z-lQKnbGAqNqA8Kl2lei(NW)KkK`hDXm2TqiYicrJlwR=aN c@}Knp%OSsddU8sHNi z$2)g(Q8?_PR=7Cy^BW(2-Tk?NEoYG=pbR`(E1w!^`F`P4Kom#GYZPDa+;Z(UZ{`NX zZNXqaqfe$CzRFc4#?kUGK+=-|D=3l@P&MhR^X&%6+}bv(HYg>W4GPld(riq#MIPO~ z1=jll7iG0nO3T#ezq|J$9fH6%+QY1##=Kkw+WqbC{;kr?ZAbe$PB%Jkx?`1})-~?k z3ysf}vo8PbA%;yp*K?E#-^D@eC}aq*4Y~WY0R9^ghyAYC4MQmlY+onnuY+b^OFWPb zaBM@S!h7F;g%1m%0Lb9kVu9}}GWj% 5m!c<4wXD1BxCDwRkFOzp$B>(1t|+kl^CXC>Kq#aqPR!^12x^`_)qU2YK9~cnd>G zQTz@nWmMNr3pgnoA9+JfDw6C&Jz;XbHThjoi!%M*PTTV3mTuS&iHQJ(S6CyU=r&y` z0zM-_(Tb*F6cvb1gXdQcvJep#Q^%AQE~A8tj)*g897|a gR>QNAHn|UdEIi`GdYv6a^4i=Lk%X@U`c4RiCd_JAh zb27FJvW4{oUG682&6J>&Y`_Q8JLXS^{JEPtq!t$b6nzUe<)n`! yhE>+AfS16{8+ss^3RzxSYMpcT+}C-L&Hu1yN=ya!-b<}N zj!lGLp2n^NNzl9%vhsYP(Y7lbCLMNb#cAr{ZK{*Y-E41nC#TenScF?ceM%+C!O}kh zmR;VFhC8ct$>vgebGpA|cXWcMV_(Ec4rb2PO%O=BVfpjx!Ngwd)kf^tb>+;u1oiS^ zi@M+J97x|cSo+!7#NO>|yiL(b8an*PY8~wFe{?K-^)Hs2wHDe fs{KP0KGK54@Q26%b-h03}W+y}fO?m*&SGIp 6u@;$*wzb))K!kD6dbG$q>gQ!x#u223EH)ByQDdb7&rAis{!H%XYJDsT1hkBuZoA zsZxiZQW~9~<>C??5hU @^WBgg zr<`)H&!n0atMv!9vX~=xrXmlUn+aKOJ`&7$r(4mo7{WoEg`pG_s*tWf3Tj7SofT~c zI-l8TH7Ac3I^-p=|Cd~Zmdn3JHR!TU04mdCqm4;qMOq0qBc>&eF}GUXJ0UN44BU{U z_jiBYX!-&O2q0{3Y&bdvS5 AVrilD;iB0wMxLny+P1hU<`a;Vd@ER znw5dl#wHxV2K{a(dN(jdH0^QubLVFC$C8r5R|o_z64?@1oN*B6tQ8p-p~_pa50|aW zgsy?kZ$@)1*qgRmOlCkv8fh_EPJ=AGz9ES}80d=#rLiyIuqdo=(NWrrI^H7N0lm;@ z<&Ho|8s5LC$V?CUnTm&x0`ng<$8p3~yIT6IkNeC@Y9RD<^aYEE$*GH;WIb$P^pw z*!%k`!4wnrO&|W&P|Cl|_1#m^nj$-AV3KJzHMo=l!*YWbfxV}eR>^yd9{T v&khTCbyvMN7zhqR^@S+4wW5NLcAX`l(S0`8%#+^QWJl?ycGV0h zK;nTcYq!U54^$4q{Kj)VMkUx%H4PXRQIN_30sI)PB;yf`j_%|wB5H|!tl1?AE3u{w zUE>)%V?T)B_x4_o-@S`8*xX|+nQ$~Cv?7j +lvy7CUVBKeq;EKgOS+6&6e$Gl zKkmK4ez$rc$eklx<2BmzWG!knShx0H75f{;Tp!!aNKzBCX^ln8tUii#h}E8-TmU$i zk8T`<%oqQ+w4l?nm2dVeQ$I+T;)fYzoIg?UF>3nd{Pf5eVSL4E8M}V6e=0C1@`p>q zl8T&cp|UprUhQ5Y=~?zqb~?k-nje18BsY`e6gaFcEiF>7*lc9B&GB!)eQ3G-W9t=i zcDOa>4fw8pn9y85c7zLVD6}~ARaCrcHZP10#Yj0r#y6N_YDPy^3CuQBQM&AkXOq^2 z#D}-*8}1q2Rt^d oJ1diwfxw&$^YC=S^>negG|(*MiT zf~Zt#pOgx$&q`;D1f^3$!zGw%w{M1zv>aXfh-}_!PIE_KrAphKCrX#%s*~qmwKg?1 zSqQbD5q5j{8U1M
(oe@PExjQu&d-}>Gx^Rvup8~{ z>EYAnW}zU%qo8i6y3tCPXej7o)@L+%sf9}_LZa18=8`K>C>jlyMlfkR%xZvb^%$XX zgpmW!pUkylRdSl?QBhHi0v_Dr$n;VkTQ#EwOrk(hf}XlP>N*&A6k6y9UOnost{G)1 zgScfyJ*E+89;sk7i)7S)PtTd!+iA)Yh10`yN{pDUm=n7%@XJ@Y(!y)!tClB$u$7$V zs_@X?R~%*fz%J-w&-2q#E3)ab1%u0#M%audE4?{^0z>iq4O1T3UGnBmcuZRgorh!M z$vIz!yQwdG*#5V$zy4vbb1SBbb#4g?>6Y}K47wqV^*w8a=~7u1CWUGjWMesPJOeqe z;UBoV{qA;W{06So5+X|$uJ>va9VWk#puF8Fbefyo5AYlqX$YKUs&GltoSCI;L>EY4 z%-V{QEjj91aIq|OH~-O_z_#sngkwYpyRu}47XW~Mz1~l!`K32SLW`Q_e;*&4@Y1W* z;Lfh^vN+X>Bo~S=#*oF)>uifWswF$u&OH9M!jeYnW|l2$2-lPDI|LB@qxXx?-#eHN z&M*)h@?`aS_0E}MjMb~4Kwe*%%_rWbj5G){n8HrW665zd$@)dMLm--P5X5h}`yfM2 zV?jb2OG!le*Vc*Gj~pKNDpjsgS7cIX!AK_-aM_0`wb#6!tHcBCsuvxhF38o#PisH4 z41P37ar+(R{cdmU0g~x$C6oHoel+rrj)H?eoCahUa}8Ryj*>#;iq--jx{2pc%Hrz| z5ZG VXp(l7T}k^!p?dtA+C?Cy4t+o zym5iNO7`cTiK+Tj@=(&U=rFz2iuS3$1&Zy+?-~Z(CJ@SY-t>2q(nS>Et>F1KgEZ2& zm*9$4wEsO7=KRK`GE4*f^4$I(cKOVwIjrG!>`VqT>TtawY;}Up>gs)diBNqpb)zPq z!{0oKr(LU)r>)=Rsm{dGki^5Y7=mh=qwr+0aBX9%J@uWGl$ftuKIv8eHco%zb`(nw z1H!(yPMidev|0)LB9&bH{YIxOvKd6(86?%aadGhm-{}?9Qy39FDdjyHo%H*59{!Cf zcAbhnl(arS_wDIpPE(6zgXOEu#D+H)$Lm`I2gyW>r@x@Q;ecSQ5o_V%c< Nry7yM5nd$CM;HRc`7f~%O zP0I%2%US+JTt{cfe9NyQ>30tmWx0N_MR{AA3fD5fyI*(%OlG4B{KCP=&=;Wav1TC% z(<&wClMZc2b(rUj^4H-Mp$4~r$}=4^c-E0ITRt6 }_U0hWVaxD_#0(@oj zEOckan~`e$|Id-FXqA3Q7y{F&c>$FFiX-vEErSJ#G2x<%argRzb-y4mqUqD=mLKIG zQ|t!?ZVpR E(WK_GH=noNZ zOUyft2}A7Zw9E)Y8HK@Iw+jL5@2<^#7n9wvq}UluyzD*B=}ngHzPgmBS;Uuwh7kY$ z-9LF0@$2-obCb(BCu1@YEE#Ugh>mqIZGn>q^x+=lu~bwrz&XFYrSU}MK&}Z7c%WdG z=%7Z#XC*{Mvt@-|j1wf?4B@#(Ge<8&bJ4BwgYh{B4X*>>P)R~NO1}jm*n&1&sHc>Q zpSHxlXY7w7k5fpaQ)L)9zh;XaP17n*@*hWoG~k*MMl#$%L3cz=2uEkQ7ro0RI{0gZ z7`L<}NN}*kpcg`W*%Phvc;s4>r;`e3OP!r}B&EAViVIot5Xbll(G}zE_-~yrVlx{t zggIYJjIV(WLZ5h?klhz?7aE}3UQhQ9H5ec$>^Z5KCZW9=Z-=;iD;vigBiX<-7Q4`T zn=I;RdZ|A0CRhbn_9B)4w(%brJv5c4rv6&27#kbwUGP^3BnT2wbbc>Vnq{-wd4Cv> zvV60xz%jt}F`CH!n*7M$yi8DuF|k8o5>C7f#QEHL!K8{cuHUNz)<6I19;(qPLDmv4 zXP3#yIWhC=lX6$b2*aE9Fo4FKZQlJ=Xk6wOPZ@!+MwbT__NGELH46(5@?e7Znk2-D zy;r+l9RgzmySuv~O6=~*(t(mDiId$&4yHYOgRE^H%j*48%2x`S>GJ-&g@uLJsHnme zvIT)1>`mG3Og7Y>@iFxq|MP|?q13e=`4nVnD%eo9^3y@nDtp~luV-(?m-8=9z7$2} z!D2UhVtce} %EPBD*pAN)z zSH>fYRx^D+NM8A3jZ~#uvVjVnnICBUa}=vKZ7q~@5gHckPdwal$aa9bG6spTRBa7- znO%JgJ6=8;y4q6SVlwx4r{m5z-0t*wc-R`K#2Xv61Ob!#zLBKs6ZIoG1cr#<9vreO zDbcG$?S1@woRL!Er=%$catvwuSo?NH;r^dpE)=5ZkUQrt&)|?pPY!obh)=L6O6ToB zolwk(`QYU)uGJB~f9wp&@aefW3tY09?RYB+r*cRR@@#ilRB2u?4$RG!OFyLKrPbSB z@-&$Bm1W!KZB~Eg7G?82Jz^vfZ?r*KF-@)@GKfft8wYaO%G9=43FUkyvrTulGsw?( z)&eNr5EZFcd)I9=5@%Q>1gJ}e(kdqFm}=P2|9s| 2rin9ge% z1_GxVK!JG {S3om$9d}_0fX<|$dg);!Rf;4wP*V8>9A7I zdCJg&VGmx=B*%%SGzHSYAcvnVHDUGRY~R*$do6kiV+=9AH=Pd@U-i(N^!_FdDkjBs z3&9;XmX?-AuF=)&?-x~mvi$P1WWIm=Ge9yl(}M6NOJBd*m}z$UGg *|u%x3x4b2|b;UWe?4Dn70x6Si`4J&kFe*AN;#4S-p(KkDZO}+MaUB zZKtwre59HFkvegCOnpa_4A4>U25!$euw3OLsEUekbCp8G_31_%yNfO9sIZ3E&hXV& z0=`02TPJhAVIpP%k5PM~Pc(w(2M!YF=WKt&-H>{v7+oPp@4uzojJa&Pi!U{*Zhihk z&P}z2E_z&bz#e*4^{gbX?-y0?iE?P5V##soGWKoVWfU>&61_w>6iYOczCNBpFE{r? z3Z* wvz`OR~wmtxkZCyfW^{#Ql4Cr;PWsX^%!BFdYQLmq@8OUpGT2^gXj zP@Nqe?R&b`O4S0*RxUbk%~#uSy}qHL?m>^x7w=XsjeER;eASe?d%CRUzgAk_{3rKK zC1rB*j-PsmQHoNq)Pt&@z7ztP+@&Xt5KbBnT7iNJ|3$*V`@RJ^tMMWdz^3^S?W^6z z(Ezbme++MJ$s&)SmI+{2>q 9*9=dG(8C2c96Z;aI3urbZysaL? )a zG?~-fL;MNC=C<+LA-zI0Ol-fplGgv}aWOQb1B)Bh9UJT2Fo6yb`s*S(nXqkE)SB`6 zY$D=q|9=b_01S6aWiCsS>>H-PKZL%$D3R>#{+%6fN?s^q436&K?6-#k#JWI!ZGL&F zip+rx)J(iQ|4I=%o+7(+36(X(Wx{_u>>=lSy4~LJZQOh1f{9`!OP27ZrH3)@VZjoA z@P^oO(` zNz ob+<=dVa*$vKViujh3zc z9;{rX<1}-v(!P&jC?*r8;_Ee7A64}GR=rEM;B-Gt{yb=GRj~Zk>;vc<_T!DDVfmYW z4VMlImV+$F^ne5#!NfR+WBpB&!bcV59O)1;`gk(<% zbi!lxu}Fi#cU!}o$;zkGx;=Zz4MV}Kv^TF!Qk0eMhp)bFjCReUqGZBZR`IYnU`3|- zQ;Lp+XB0tJb9aYqpwv6$w?@chj 8IL)$KGq w#8TEjk&h(_MMG@sa7n zYb~N?V~3RrKbN!gTMZQ-+`ew$kcb?^Efn$SObaY3S98C$O+D_Ku`o1!$j IiaU-c~tY7cBs;DN-yQ`{2Xr)xB%K)8v@(F4gPmtZP6>7M}r$|0Khin;Vxm z$z8v5*mh)zWvZ;o)Dok7c}JBae$R8v^j~&D$fC(5^VK$;{IfQq;`?xvl9lcla;F@@ zcZi>u7(0vo#wl27JQFBBzoZP=7{vIhAlI8_o@MN&91+(pil$21=#)Ep+!MG@D$>_a zM*gK{%y{Q8CEp@>$-aOKe$2%JHZBjB+8C^R6fX7$hNi?iLrFTP$cBrX#&{Ab<2fe3 zPfDjcGiHTx5-(^k|IOU|>iBAJ>6%aC9=GRoU+TS>_AhpOb8^1dB=BwLa}Yi`ssR<+ zWj6j#>%L}vk<;6S8Z!6b0gh-#*`kG@w2k}XqScN0OTib1;5#1Nq$*)T*d_Mrt6Wg% zMkCuj$@k$HE9LW5k1)Ke82e5Vf;rNu@7K2Lk6wQZqaA0T=Tb(G%bbL{9d2Us 5E~`Q2ynU<%^Pp4?K781nF8%I_@Lb(V_9Gpxi#+YX8i1 *O<*=;T%Z>aZjkC?j6ND%6hHD9P)+fycS ;WERJohMuAfx;oH>JKL#{E;66057JLCCuyZ1s^XKg?Y8#MSD>#>BWdxX)JKO*PiJ zcWwE|;T9g;iKPdq_urk<6; ZbR{4^j;UI6MKsj&Ty&`#pO ^j~{;#)34_p&yYyqwSXpDRS?Vm1m~Sykq({ z%?Z2h8L~Z`KH$OE`STc9`%VD>t9=`yH=YNfrkABD(62oX?@Mcunp}xf9URQ}v21H< z5--x3kw}hf!c18!1an8T9G*t2^lN28My`9X)u$;|VHae2&I_(e#?Wws%~u7EF_~VU zO=K`?uT&ch%pbD-F~#1A{Wf4bO+2d5hibIA3w~|L?7cf}BNCU=Z6Wjoh{a+P2RQR} zU=~6-(?J^@5xy>!qJzN+iK&oy=sFvf5vR@kY*L;ISLzKa-ZWt92+u`Xit@?htF>U5 z%`d7ZhJ`!j5vAevWVC r?5l&Gz>j256~X?>CErV~ z)|#fQ4IKB)Jc5_GW8goKNurvu*jz|mmYI+)U5fiu0Y^*qvo4+sKT(0hp5i~Khub;I zvKRYJc;)}N4zB;H74&P@F+z}E*-Yt9W$@Wk<=}tiz5WfGOG@4TM^wr|qKopEYl#^H z#1guj&nGxuaL~)ST^(Iv%@aEX$70&hEKEF%E~lHP4B?PQLcXhPTm9-yl>{VGKy%ya zaSFH^_vR>S`QievtJ@j%Bv;GETqPem_eEDJ)J*zQSnAFW`^Dzd6!)cteC *h-6=jAB-=8yLqk*|1ie6x~+oiI%`t~CoiCmZINjA}+3`As?hvt2^d z$ofo1EOuQbA(f8KeR-iaJF!Z)cbM@&ADN*AH+}oVPdhzV%Nv+^A8tt8@G9oE#D@Ri z08j#X4>+WiBm&K5eXC=n1|@u%ox=LJM?sO~B7?y4nr3*5nqD+0zfyHgLc2+zUN6=Jpo4ONohYJEB~&UK5OVE>1*l40Majzu$v!Q zv3w (yg!Mj{yN{H^K`%@1jWoalnC`oxi0wxNYo`Qddw%IMHV+33vbFe2)A1 z!~n|M($X>~p* >qfPh{GRcN~`g!AAxG$D!H~)j#U2?OS(b zD9GMNx93?%C(})GtKSX|M(%`n)blaQJUsNM_XyRWTRtAJ4!CFu#?6ncZTCf;J)SC| z*-G))aa5d068O{i%g;n-cTq`BZsBBeHN_*lWhD4|l9-^$J+fpzq+3!9{HuI+9;5T} z$c8XIvUPQ!d|B1I-x4fb-xYQcyL^&teX_uu!p^=!3`p%$tGi1Psm`8CA^X FwJ F$=68WJOtNgY1Cgn)8qW?z Nfu!SmxsCtWLjZ}BwE!EK*I_xdLS>6%|; z(botOSI(Li6(HGVt9$thV_0(({V74)$ZdH{Sc3)%p{(9AFA=~6fqQHH!@-tOx7lxo z8+WLKR;X)EqbNY-$SoH!55$AEMKU#kr(J*AZ?$eDh$G|(x4)`q=TTtN| zZ-MYsMlJ*BWn^L+%2JUzw6a(0DeA_-Yr;$s8l#q5Zf&^}z%cFld_R6@Ey$QJ0%qqA zH>~#$j2p55ne+TFvFtCN^9xWSRZ=%rPfk9&?*RfZ36lXg)qF`_xt&?9y|1u+bYx(g z;aA0y0dtM?4Pf~9rO)i7Bge}W3bsgwK =t6xNZdaW(Tp zM@%VN47njz=3k=8hpr{>Q|>31B*cQ8w8!f2wwD538{QtDAk~9U3T`Xz508g3UWHLF zN6m{g3&$HZG@a*fJDVUn7=jG7l<#Lx)i7ob=kY5B16$K4Zhj5kK1$yXj*gXX(Jsz5 z!9jwr#{7gjJ951Z`i%85I7b&3jrO- hK#w34w_n29< zh$`RfS0bok54oQ2t$%Kl=pOcv!9LWv@ {OPb35<}A`q{l|DZQgX| zzsL0T7X72@vYWShO-I@qi)WMDa(A<7s4_jF6wNJQ$fgV4VjVShb`dNnN(FQA3;2*b z+E%6GI@sYholDzm;((G`w3n3`8O=)zQ&?~c>#%2MXTV_d93@Wuga&X%M!vyVlaD*% z2Kre2ekV0q@1h@92wet!OZL#123g|CVg3m1*R-Gvlssq3^>AeS%<2sh*!Hiq(y)qn zL()l=pN-0R_1qMEV0lZX5VTL2u&OZ zh~x-+Iwb=nihfP|l$wYv`?Ql}O$YcElrF*c#&=#X#a31mTAXY|8&@o(?l> q zWiv{%RK;;oLOc3yr-}EyNxp$BM@M^{nw%Qg%-bfo6MlNIg3&@6 Os{AKeTtR+>f zfH$^y_~--;mjv(`rbm>9AP)qA&9M|w2n&B+YrmYs>^^n0hMEy^Q3Qlvk4D37C#wG* z<={z(%lAh2g^a_CO5~s+xYl1$@h&7PJeEM=r$0lZ*vC=Fh^U5BAWBJDGi84#kMzhp zR;j!Qg+nd%6tP}(NttuM2gcgB9b41m6ckpfZcJ1v({PPH U^$5vU;AWX)1a^beKW4k^tG zH}MRxCExaUb^ 5m+qQM*22%1g6}Ub{`v>M&O<+6P)jMU zsV>eSpKR?uHmW`CF!3cS1Bd3-mgF{aQ%6yRu%)~#n_5{}u@sO46#28gj{P$~I3Oik z>%oB6s4k-Py_gTvst4PH9%!K^7wUR%e_zrjvTvogx3@2nEV9om)ok#enuFF%3ke0N zk(&vZnPbe2k4FBbUG21l>l8nJ-Zvp(M5~k0(^{C<86_9KV9qbnb26`UXA_eQ=it+q z2IouMq^`li-88#5Dfc(`o*qM_LxJxW2sCG1rX)$O{!Ij(05uo;EGiIwj8K4AkbWKh z91DAADJ?eVl)Y&$ol!L_`Ik8iyEWkRLlU07zqeSMjzl6O`!smfknN`;;H+J}N(Lhe z3Ttz*@uo?v_w)%usY3mJon1X><#Z)-?a(KOFA0O0@!k(UNGS+vDBUW!9Z0w@xIgJ$ zkX#TK&)VDHc}IY;VQ)>iTK~4E@@m=^koiV!wX{6DWpufzG=~uc%&5T#(6 -`7nk2&zwYkN zQijNyIxA!gOmY{4cORY9p1p~mntFm~q+Z=#)yS=!@>4(I8})ISXR7UZqj^K-<5%SP zf+A|7G}fw_nTCZ_Dte9JMEjKWtn>ASago~n8g1q=Rl3vAs1ARBkc%MPSlcR@1$dW% z&aeCG12%S%$m7`9hfI`w%;3t1 Bti8I4 _W^c;V|Nbm5LFTSFBd4m7_4p1k>9MI49!||$&qgh}bTin|G;75? z3x 3Dg~}DmLuAWE>o{~N`mRg zXr{;<^iP5vpHqP8dvduu6|096t6UhR3OJ2bzQ0$)F(ZmDQUu@nh= uAoq{Hv3$zbAyQ23!DZfdleT_Z_TJ+FC0G&7li^;bP)LgZf+#v<2R1Y*?}sDD z7S>CibexE>n-P{zEz1s5!pF2r?K{PUTlgt*Zs @yBv1rhPjZ4^8H7gGHV tuL1K#i*bkMnTMlQCRL&Ys(@C=*U=69^u_zY-0I# zYD|E$I84P4vt2csoJwAEOt+kHcagv#9RP^ztzD v&H$0j0^=0Iy(9c z;NZGDxG-K6DhN0mNukb2C|JlfTD%GGK0hBFQ02qu@sh5#puCMT$~ehijR|a5wAaNd zwDXe*7>vgjgGOM-;k~9JMii#$R9afQJ7?50@63Vzy&%8K=Q_TXmzUQG$ud75<>Tww z($ujFKec>1(j+XwKgjs6s%p?cGBkIJI6P8z%x!K=pzPP04e!_Ub4TRn?BBWfoK|>D zwoo3dJ?vXvS P(T$Km*788g5WD~N+6tOOd1GtV!@HH& zO51b#@G!}ty8UI|`j(aFxle40sQ-}j$jT8}&_R8d`x*QF>5?CS>Qd698il><3=X&| z7Jas<;OFL+e6E->8<2PklKp}Td4AgHXWmg4+y0)7a+FVn$?CvS^$#qMztX8@KY;hw z*Ym}dyMKLT(ihbU(w8F%3}i}GZ)0<|xW{7T3&FoVjKR~ikM#9<9ENaWJycUAF@z;= z)S>KO2#glE_h0`wKiY85ql6pR4-;C!OG7xy@Q8|lNtiYlEBRGP@7OVN5_NI1ZSUaR zjeR!Z6M%Vy%?%lE+_6$*?=oCCIfs4E6&my1ZRZvo^J4p;f+rD*5LJ0G%t-SfSB0W1 zuH_N2d{K= ghqq=3QOOb_kS+SC+7+kx zhWU>^H^yCl++WZ1)4a&5IDvBeXI63UJo3s36!PoCv=&$4q320t=bEEtlkCjcx%S3h zK?tj&gHs4i_=lgiY2SaAZ^dasLjWD_gG;Z5i_ikSu$Do3Y>)=%cjG5j=4t(O3X^6z zAef`h0-E8pGpy|XO^$=d9M#jqQTjoX1}nj7Rrp;uRZELskVsQSts-?JI)7%bG6E z4>gA!F&8lqQe#j09J0WI@T`M1 )$es&y$X0eYc$6x<~hbSqO#{e*m~C))3ZYZAAwr z@-#+Lick<^xnmlYKC3Y^lzTlUOiMA5q`^DwgQ8Lb?r=jG2Y$?MbA&vzIhY2N8bz8M zl_?rHv%0PyO8gka%mV7gWmSPhkuXN#lKVJE%i1QfWTBG5hTm0(!yc4TGJduur5yIB z#T}{~m+!*nw$y5}DGObIUdE)O?gPu3H! ;3`YdPOvB2#smCmjq2 z_zCSJ{-0%!hk|dMr7xE8@UzM -=tfZ0c+R~A zaaFUv8lAL#smXafAjH=CM`#P6Z{*DGlvn2fchK^(-biVSw6Z4ghZDd|v*9~O>@eRb z^DO_h$wK!zO6Izv`}XGYi9XF4k$!JYF8y=#RmT00Oeik;`jlt_QUAr?`Ta}92sk`1 z2ZNEES8Cc?1^!1g+#dxqxLqkxGFgBJUa#&P9qq(PUC06=<$rcB{&U45oKj8-;6KE~ z=1jC>t7DIe&c8BEalQM*Cfb4Leza5RoQ|4{&A7Q)J=#6re>cNXX`B!Lw{UhjeY!FU zc(51}2Ir6Uc5#rZ$}g^NYpS2&^e}xBcHEX=FYD^+0?=5Z>?z9AVm6m2tLDuuGoH^A z@y-(HgS Gj)m= }1qp+FiZ( zI?-a!K4pc!IK5bBP5u!W5Tz*-bVO3x=^0R;Z!%wJwcqOPohrb{_p7PI*fmg)Umu3@ ztR-0f$N?&15#cdh;2!FOvbBweufB{Is zNh9l{6ha9FH(YbcfkTyX{g~E-il)h9!!paAqTeL5P$(eVU~TD|#PY YmtbY12SUa-BEDkRf!pIU*0mXtBugqEdCfR zPgU21zWytg5ZX+xKjyip!5Fm`#Qeu5U31d@4>E&Lf>d%LF%he|k@h-X>ju&Gx5Vd_ z{$W%j7bdDEzS$`851+WzIFfxLhq#%L;J0Vuv)_a?g`U61zPE^~;E+rCxsl_>eYq^= zZsPvcI2E~>SKoOzi(z (2nfNS}>OJL4^<5Qqy$|7mKB9Jn$BpqgpgTjgS9K`Pdip*`g9 zKuqg%OAuzJWXfb58hn)pkTJt(+yP%a5aaLP_N#m GrRH8KaYM$V(HG z#rc?sDQN_e kK83xG1V?M4B;fG^$8 z01nZ-?ql!bo^>GQ4zx#?iI%qpN|8D`kDV83$&7<94pyjn)w@q?oqtgyJ6aRGVTvl1 z% 1=D?(~smB1-w(&zWHqkl>xvi=B0&h=iW^s%X5h5*Gn$1ti;aE)g8-m zsUmMKF1+YCD8kf}@g--pTOeH1cK>Mub6((Am6KDgqE#e_Tb&v9_a2RntdBIQ|5*<= zrngR+xX-w6IuAbcxssH*px(MuI+wYbFFEvozIX`_zQlB&<#e|P|F{nCzCk;jd$Y}$ zoVe+{LcGrpxI!B^s}k_duJsvE+fa|5{4saXdlht2!q9bn=RfKZyV?1cNQtP!h8>f| z$irLYZ?{oapWl4i QBra+x=%e z&Nfsz+{jY?!~$h4Q7~|KtgIc9iDh~INU5o+YJ1R+D+ayBOCNNwB5Kl=+Zo{D?hyb6 zz@k=c>OAj$l|&XeJD+!-%}I7&D+RL&pTt;-(a2n_uAvC?9w8>wBMl<`uUoH67Ug8# zC5Jj>qDgFscJ=vn(p09+8;1Rzv3I6)4fC;f1ExIfP^V;M{8KZh8_&n%_Z^!$Z6U z-2q1f?j~A{D`&fT10Ga(hWj`WwPesk2AYuK7IQEtl-%(^ u-N_z~t_>Lon+c8 >3bT1506W@Z5^Nj7I$O>HCh zw90=6df66CNxhoGnkp2( 1_-6CxsJj5~C+#+sTi zN=p8ys~VlR(dW)ifk%f(nVXWx;Oo{iwBKzD(Ccb~Ls)Rd8QG}xIa%eaK2w$waN$Rf zbC7E&t0Lu!Q?>bXzHfhE!tcL&%$!V79Ks>pWs}&M_3Y)EsXqP) s>@3^(mB@Ce@FztY9@@m@jx5cJGWF!;|=s!$84joNR87j*T z-k+M>MMY=&g3RK8dM|e1r+)zkZY%9$B>p-NA#=Uc
N^Ec6U8lGS0oyuEE=H_lLK z(XPvvKsb8HXeRJ_eo4X7d HOM7j{<}ru6cB}J0Dxsj50PcNf?AfaFa5aeHC(G zTcP$(frM1Le(e+T0dq3LR-@Q5H7JMq($w_UmK`r|yUU`{LLBK*wxRLv{@%{cCkCfO zpJvFvCYGsRVe?l@mo4Y_d)@ar_dDlZ=QhEICN6h $i@vy# @KHxSszz1j=DpRxj$7Bi5Y`hK9IJ#tpqG`HyYo`MWZR*8E4k z^o`4&w^~|bRXayg576q=YT0%vWuCO)W-=(gS+Z8pr+b$h;JA{$-kA)a0kXHhocDI) zO!7?} Ga{CmBv+KE8Au<$A&hk^?=)eL tctP`LaDmBH^Mp_%4*W}(p9pS ?RM;-Q9vz#qH zdXU%Gk(57_D}oVJ+fuO{=G?*a=}7Ba1TK#GEG&wjmG5wS-PvPtd>n+j0+E0yjIAn| zAU?P_;1GNon*Y^o5+mE~i%T+&*#MBOLk$Ty(~NOt)2VDKs1aYdU->D_HBXy2*v_Ak z1>dJ|E29H3wNosEnf>2nt`V(EK5LK4KDHR{I66&x23}wMs7mjj!af4NuFYG~1vg|) zG)e7K1Bo~{SKlC?W>I=Fti7J-m})i6mVbGBU1T3W=mG-b7n$OYx!c${y*9aBj+D7e za^C}*G%c+bCxes7-Wk+YV@ o)&;v JCes8T$-8QWD6liP5 zFP}ZxZ08AHqb8FM_5r-QB^sd*Wp2jUhk~mo5EYtXiW@c?({I+wyH8ufyH6dKE_8yA z))KmIgXbjtFc+u}`k}SMoTj$mlctpUdbqDR95*YDNb*k<_q$KlNG0|J7z`F8w`rKM z72y0m*r&PvbB s-If4DJprHLO_u- zANnDG`Q(TTm;nCn&O}hN24k`Nxh96wwbROIiC~ui4_8-lniI?h^H}Vm_I*V`UXJRb z_$Xcvb%9JraPZ0gJ$%XU>?Th=2=I;vos0x% m3%)U@01${#{ml}36yz-- z@^&DgZ6LFY3(87F;Z-DcDglfUD2~cI5F|u@#I}P&@!WixkxAK;ExG3(+`Z^Uah)eL z>W)#V*Gdn!$K0=^3~eiJ5nMzA5M$%{mBW}K2F%F~?D^bD>YKRnOlv(w_hEx;9E&Y^ z6(Cv@QmjZY8c(p*X>2FtDY<#@=ekE6pEU_Xa8o9u|FqjZYjJ%=Ye>r=Jm+nhs0kV9 zq~RknY_ MG>w4_R{kZw~R`I!*J z*?&0s&${7*gj4ol=C~K?^Lv$9;dteU^R6XP^n8Un@VOsjRtv&9-wl!l-yGgb5~0!) zCU_(9-1iY0w$xcvI}$yNAR%0PJC9@=y>u>sHG@-_oXD=6&JGwRUJ;lc)O`L;{28KL zocJVUM)869@;@;P>!d)i;-LP2Psaqc`?Q(*Tgd-C#TVok#Ak+35XAg_;;OdH#~1Of z5HM+}4k%7(nx(S??mG!e=*!PgzDwBFDr=e$MV1uAm&Mu=L>_kh@(b?c+EkQ$(2He# zoot+%tK=GEDA<}spA(cuRb=3q<<&dH^OQF3!u`NI&&DWC>EVa!WhmdRVI@W1sH+4< zetgyTReZXJ3x{PK&kKijICW3dH*={W6V$apUBs29im~^-?htGKXZPL`_M&b_0O0h^ z1QzUfDwnB@r7^5CCco{Im}f?P7u(Fwb5{dG#K1f<>zB1N;8*gI>gw!tG?1h@xw^dz zkWQ%ZlgRUe6@d&&4(~UEZxg!iZ}(+<4hp%)FcSqhJu$>@2#f!hSiC^Bc6oYw3e%lw zjL_&!SPOENp`v#sdJlU2_l=E=Qa7N(Z#V}m-Gukf1yZDfuUN3B@N*?4CGve*3-j2H z{lI;HhQO1_vpvMTb9ZfO`;Q+$R_GrYww$0+DwMzc-}&6&rf)vW)zzGDcP4sV=4OtF zy257dP)xaTKL8`S-+8Jy1=Tr~ih!(no7T73b<9a_pZe*gvsUtqDa^yZS#q;|@tpa7 zvGmvan^SgQI5091yBHfAyF*|Lf=)2-#hLcYjo?$08=F`x(u{Q1Tp7g*&Cl&xcz&)% z0U52;X!t%8d_S{v@oVWr#=||bWPkzfdpDc50Sx4q_O=HOeX7r%<9MP6PrKdk>snw= z4$8%q4g@RPhr)kzZku@uZgoFnx^JG`wbVa9S1>RN{P=bO5n) ~12t8RxqZut$@|&NL`+ A^U&>0P5jmp1U0EaDa ^R+uJN|Z2D6q;#_{Fx`uk>YytZ+m z E|iv;D*aMKj07p znXa0qn)gPL>_lhkoT6&fh?m#CTXC*^dcl}eQR%+(n!iz_XSlz&DMj-k&M?zil$<4T zJ`)SuL-}4JN@g|pvOkc&v!wWnCJNxFx2pa9{VJSLMHWJ9S!lB2=(MR3aR``lc!<;q z%7JUmV$D!V4qDa%g}HvEuivCMSAF-GydeP|oKwElPD)U!XI?5Y*k42`fN0N%@h$uD z8@lexgD-~BUKGUx6GoNDHNORz5dcxX#S5vc^laBw3pRlzx32%>$PDcb;XfsXLLFcH zVrfQ&>BQIQOnZk!fpJ4|K7>F3>$J5cwJvyCXmS4rQSf!>OBQvk0^J`McXvESX5^DT zaKF@;!2Z@H(x!s eXZCEON062cx~0A%c?d7E zGgdh*t=mq9kcy^}&RoIBfdKuCvPlXJ0_S>az?Dbcx{tPjXc;NZMnQ^~7*r|~K0P 5y-UT zJtNBMi6D+Fcbe|_CLGPkA5B?YRaIvt3uHwAGr6XUo^wj!^^yD@1U()gYNSQ#N^L;=Y`E>402!vy|QY}Bq-Y$Tb)tkjW5D^v=nep zP5O23X3n2XI#3tLlpNk(&Uyx8TUaD>fw^ASC2GrZHFs%N=76%jP7*CH7I=1n*ekSg z^u2r=<8IV_gPPgzJf53TXSh?aEjV>I645D_sllS&mMA3BeXE0At!d1$>YYwj1Rtyh zv=c@46f>ED@~o x_r3i! cY=AelwtCBc)QJ@s@iQpF0sTd#;E) B}h);Oh6s63NpjUer{ zD{1H9VsPqD;t{h}WaR@^7*J|HWHH}F>6wyWUo)v#ugbEp%932+i2GoN{S*Hjw~LdA zTa#cpf*;d8PI_oubA1TUe&>d0fxStTP+MJS)1`dY!mW@*u0iKCBV_bZ zBgys&1iVCbJ1v~3f7)j@K#IA?%I(S^hg{!PVsQEqdf&{~9GE~K +VbDn%-3P{=e?qG zt?hCr4JZ|mUKJG;x5d;$&t(GLk}K@GWm3OMiJQq!i$wpCpK8t%`BKBGXgPdbjC}?I zrK8*BWSl#$He&U}^PW4MCY%jLQ{FPGl@Y^|mvQw986!kgSf2rpvjJ N8JfabBs3Wqyu#sgqmlgEtKhP1{l^ZFb$=Hm-d27xP1&?*=(5sxzmBhRSCklM! zAJUR~l8IkzN~y8OR;;wpTpZ^>dkds}qG+0q fGh4J$D~Py zgToZ3h|SHMAkZP40YP$=z#8%o3NuS&FL{Evq$6ER2}52w4=lsIQG?`{u}V|^>h+h8 zbWA`Yi5Z%NC%!vRpixF;> B`C$FK3C^`a+Ka z%dA4nAo1YSmW&ty177L}tT-=t{>JillY}TVHc=6QYCW5ex`0w`Oh65JvATA6v6Yfy z;Jxnw-)sMR*pnF*yR8O)P8!)e-@AM{>2k4|v*f?lqBAiu5qyM_{GagftEA6ZBozqA zjy9%N&DS`Teaxl=Oia5eEUt*sO7QX;x->-~yOT-}<(b!lp6kL|CLfIWzzlzNUrpBo zbE8wg>lAMpiQtPj3IE9G@2aIH?s)Gj?i(G_y%SOfwyu#YvY*Dw?IMw`CEMCp{uAA@ zK3SUzzuSG!p32@0-qH>QpH2jv*d8l6%lKW4L=OBz4Lnxx-K=@%n-nuu(~51{L~;Ax z*Y2lwUjJF#R=+vK46PP2&XZ@j!%xedwdY5C80Wuk#4$#2i)d zI<&GAxz+7wyN~|tjwx)PY^Kfkr6@6sp-=V6p@s)2|1~MLaU6j4^w;pipk$>^j>xMH z4} 4)XgZ5b)*s^qnd9NLgD40i2ZSSm| z9`avbJa+f7ZBC@7&QQTqZxmw9{44OH)g)-6FF{(|_vX&}w)vTA)nrnnv{ W;B_Ey|y@%&i{BLy1vY5?Us#J56ngN=IXxBRH zMZ>AWN&QpTsW!baq4B3fpU!@-4>e{iq=&{K?j1+hrb5sPWcLR(4 u%_rl*98ApkHhHH(k?Z_}tBn(F%Tj>1 z1d8r}gt))wAJF7d1eZ+_QP2Bwmht0&G)8M$B0eB~2t5P(u9h>@piGu+ZTvZNk$#p? z8I46rJn0wr{Bn6tI}47SofkPHG|z9pl B>|fLgvoBwTgSO22qtu74RFC(~fpSbY>Vi zd|A_28Uv-qdbG@vvJ*h+p8Jpt6Y=zWEy`wJEgyBtF7uo5yiH;Y 1B<%}N4Vh+mBpT+%_n!vWdN6K@(0V^k$VkMY<{DGTx?$2|NU3ERtd*)ym zkWXVVzbi5(pwfU6VLLq%ihtypZbd_&`t391gYC7o5Z#BL%{!b{G-A+;!!;!$qR5D( z&SBX6Bar!nAsPoea>dlg)9>U%OjW@n$44hSjv}*y2tO S@me2>5eF_2MI1?;qg&hG{{STzg2f`hhWltxS%~Y>xq=2zDvo)6 zC*> C4fnPcAkOk+|8M``9;R%&ho z5*x_nXop)ldF##?Inq3wrkUCZ)0sByT$FxB8VQZ+TRk{BTA%?ieDGNh`?#;p%Xhce zz-9_#W5n6u{H~W6-C5w0&@T^(S}d&2LB%&U?geGD2HF7Y8X%K<+_gWVrOE_4r03XB zLq4iXLiu$WE_DT7182EoE5oD6tcS-WUxvBGL<)l3+GG$?M_dsBQm#TzQwO+f&z#Y{ zMIPC5j3}bGung+Hnv3n~%a^>tyT}wE3$rV#UU0f)Dw0cQmZ$BNN*VLd>-OJd!R_YC z?b>P!hOJ9dJr|`G4rzHr^D7%hKf$F0Aumd+)k<_P!b$5h57e{xgKlfRpJXr4fATE+ zk5uqMuM(nf1#Ro=md?1BTak*IPuHA-NhrqE=O|wDJ&S)of#BVA(qQFb{23vFML_Fs zJ?=OAD%3M_?$*?KQ%Lp}cw>b|jw~f|UQxX?y&So`LG4~=sBbso?{B%EKZWAI5TS|F z#?}hPEQgR=Dtvk4{X+*gb!?+?KA)Qk!_#v-A+zM@5O-)eHr6B XVP3aX1P2InO6Cu7Ui4zz zgV{_czM~!?Mqi;7mZMKWq#;)I$5II_Doprc98PW|kK?{QLQATH&ExcJN>incNh26B zb;-lPla}gk=drF{rd*tAo{HOJ-;({lBFA%a`qoy;1+itU{v`!g`@a=?aStq{G@El{ z_h6~~U9(d}MAyCu6jqpN%HO%R t^-^?F9cTZf zYli8MIUGY)vEn>8&Ir)(o4*e_ng7+MGUGSq`mfart2~WSPJL+#To#j0NpD*s3lDj! zS;vovzSll$( &4rL7xbJA;pRJ{M@+!L9J}wc^(;g ztuhiK_AV0M)HnIvIfwh5r) r-GGUBLLZ1z*D9S~Lf?-5b?w4DZOzWhHYVH!MQ zC!|)m+;?NU>UgqVGNu18j!W-)&_yAuUg?RkmmBf4qV45QW%&C#kvjaV~bsS zBO$94nSAM`ms_(0A-s_ %gURWc@|Q2&d|iIbd=i~6r+q}Y5uz9AXO-$jrJ8J=G3M*C ziFW4|nm_IJ0CqKr$y&(c{p5+@(2ojHUwCi{ifdpQfj|wx&PD 62Z*UGq|#=ED~!@4@cHxS U#@SZ3?a8JR#(k|-7WE=XrGINrecobG@H&(KsNU? z)}Pgf;+1rqM%;hU4~i73{C&C(&)wBqP`Rx9CzVdu@})eW!BloTq(_Na^r;~I_H7b% zmdDp|Z2P`QBcq*WKDWed$L;*JcR}~Bl+ho>wXcUbL1D`v!vl$bwT}!eMi$|{_lLpf zI_R58|NX#&f6jMH_Y=XJ6L&G9B`S%uO*{Y6{Oh{|yj|~1?=JERMIw=A`K9}v*T{|X zm(_-mS1T#8$T2JJFvwf4P@FdJ9~B{>ius_^e|^Zmp)F2C!(?OT|DB( c=xxDR+VTSzVEeL=pAm9jwgdQ{_3LIK);uMM!a1i7tB1xiUuz5jEw-Z!)X z+E7SmF?^={(P#g*0G4-~7kr7d|9E#%tIq$W?{*7~HePCG$56Yqu>cELp$8AxJr^TQ z8D1N{FMm@xwIZjG^&veM@M*lhvNaeJ8n{M|xO-bin})5VUUHLL8GG*fHFb_7J# nnB~!$= zs#|7P7ApM+ucs &xWHiUBShAs3jGUw9LU8t_W>|Y zOeQ|)Y`Mg3+}}m92&fO@LRt~x87!QGGy$N9CT4F$C>a=+_2Qsssl)rlh)ShnWS=yH z!TeWiA}9DyZo6zk+u}E%*ckf|TdFwt-{Ig>qJrmiWl->w3*a lBqGQa z`pqet(+iIgPP6DT< -6k09BU zFC3hVA5FXYdNh0c26gGr3=N5j%xh_Ujeo=qa9<;=#eRTtP5TM-xa~>gSt{QiomwmV zIoG&SvFl}T&iZv^sXFUYmp9ScV5$Xp2UC*Hr3cN+?Cf)QQy<&eH<#yfR=2q4&Fwu$ z6E9oVi{=34`n|Q3cjE&2q?@r4V~s)+$(=Pb)%Icr&JIc1G)Sccb)s;&pSDRlV;g^H zYDk_XD8&vGa}$b0OkTJ&+5IWyQkXoAiJtO{<>RSZ@crw79XUxfb>_yGm#|A_c|dO# z!MQ;XZHBR>5;}0Mfgh9M;Em!_OP!+K2Uo>n`3CV1JmY6SQ%SCCFyrI8@GDUA9nlYE zN&$;x!H=0T7iSY>o81W3dx>bnTJygT_buqTGsb})hfRK^ii8YCk&laS u~% zzxbv!=ApX02cJjIUaYUnS3){;V{B(U2j}C;A3WCd3S7cHYLH{2#0hEQiOB2qTzK h%%ISF_kAEEBqe zR{4o#qPx8@I{`R2=YjYCRz^%ebOCi^I2VKZ7l4zBYAl%GT{YNlN6@S-@J#Tpjwg9d zc|Hg6DI$eD5xNfitUw<@LR?hY(O$=%!U_HHjARDe@>Z~xRZ*A4Zn63L`ucQ0U8@Q4 zrPCM|rS@gol#k})^bhVTgY#;kO2rgqhe ^0N{kv_ndE0kyKYL_+1ITG#857L zwFo)6Y5>}0z#46eZSPueBqb$%kKp+-Z99K$e6C*b%GQ+CocDF`*x!Q<-fj;Umy?qd zmaCDsoY-=;<51Ky4SlU}Wb9a@N_ExE)lB!N;Yg}z n`jKR+YS z&xXtq0a4>>3BP$Nqak65k&A9L3ik+?fiO5)lqtdve`9U=VNfd;3RdPU`>2c?=N{Jp zp9?b*y_?BdrXgEj#Q4@RwYxorati7Xy3zdtmdR5;bv;D%fqTLu9XP@TN?V%d_}KUu z73~fR{_Cp|4uPgyftgB#Kxa5I_eW!*XEs#^Wp?@NCzHrAxH3+rqko)>biHWb%6BX) zG~%jeslAcz4@<|TA$+dJ`SpE_;=h8R^MvxX=&*I?dzr55{hI-2bl3gd5CdF>`>10g z*w@v!oNh~ay!^UkavjL}( |PzLnlBOlnKBN0dDzV zFSjsA6_ %qOn^$woQg+gXBMrod3%gH8R+^yu4BUZ3%1L zuhn Q>ivQ@5#X1CekG&+h!H z!0#&Oz!5R&&JJX-uJiP~5A3p^m6Y!AQz#^95F*;%;&+&*_FFbVX5RVcdpoJ|ljptx zrvd@^qMv@wd0uE6<}pnidQK}oGuKVNK}NSH#t(kOoR-c_uIFaFD1W`oR@VOBUT0Kp z-SpH(FS$%5TPcBo?)h$-7QabufwaHJk6 (6Z4%MyikYf1w_(gJ+4*Wr&mNq<&)Fi&)c``+A3BD3r?K!=ar5L|r_6Fy! zh^W%z670sRqlfqEH}2#x$~MoH^_?*Gn}367GalHfz}VxuFAu0ol*vdX9a+;Nelpyk zoVE1I9S^|C0!y%8JEkTuw>CY_chdfy +$H};oj3Z z=ktEQUeBkOmjxgMp7X5U!u8UF{ ;RA>sfs&GWW`q=%hLTei!H6Iu5A@AU`{JeyLkrBa$-Z1FFpP&CGRrDK z5AYBn5S|!%D(Y9k+}Mw1K1*vtD1iQvNOouJ4;^$_kY(hZ+j7M*k=KsMfy=BLz5Ca< z^KaHWR6keD L*bE@s c0 zR!@9+#!q0ap@%~f*;+Xrt26&8I91;SKuFdTZf=eBXg~N^%IRH7IM!n5m+?=T8O^4u zCUpf~hVa{}tS2mWuaXt+^voR4!MK{Gboe=Yp^Wzcv$Nr$#Kad5e1exz;#sE`-bUXh zn*uZ+P<@LTu{{#(wd}^w!(&GRgl}9;5l0(KOOvLySrJ8h0y^L5wuHW#a;_*gH`5Sf z44gYM)5Tw6l5U1IMvUxPiS}inAd*m8;6o^GQ4KHVD;>$RQ_{`g(@bykOg5P0nRhoq zQGO0phpOfJZ7J {B0$pxQz5l&{l)2k ztp3~v{rh-7v7*Lp@QGEH8c>6iXB6?ToImf68b#_z7b+h0Oly>|gG CL_delgjEFoaHh)l)OwKp7QR}W~_8asfEg6-{fS 2XSyr) Fx{SZdvx|$XxO=X0))1t*@xCITrg>Y-k|@ z-yC2qtm#laGO^*?nRx$|a`&Qr;MwZVa{nz^OHOj_{ Y7aRerGHi;*e>gMRR9qaurjKR5PasA^#4qqo11Hc`_|) zz !<`@aZU!sEYEm LohF%;@N1gYQ<~u@Sc~GJ|xj#(TCts?84YWA7Hjg5rLPP(d8BwIo&DW6C zJvrWw6%_-Hy98>|eAs27;c6doYdU{bVg6*Z>(cfjKzrf;cki9yl1`(m-JmYZKa-bZ zmtI$gK>$3U_B^ZWT!o*u(&iGIAC)UG03^hgF;_EQ7r&3@&o8|tFMCyvOHRTgeT%!! zvlOCE^)4) vXso95&w@y7L?GzK&BehPdA`^?Z4 >=gL>+F7wM1U7pHXKd z?Pb{GIwr`(dB3U8-TRghJawd0Dy8|g1-J>5!+4LS59qrUh W75SA0eOgw~PvI?A(sgK lndT4pee}d! z9G44muf7f6kBIX3|9N!rvI%(j06_8rM;I3Z^auP1CsHEVmafm(0|yhxN;$6mKAZzi zcmSWKR5RVM5UdNDS*UKxNlF@X6dV5;HY#C{l6aqMzgz`$#aNy9pPI_xm?p(j;v|0k zn}z*=3L@ df|Z+-*b-`4m5eT&S71aHDwy z^s|R~7X&mlN;E%4N$OTjW;&352exBE)<^pKezV 3VjpRn-r)TLb95=t zpE{~s%-z?r$d{CH3A6QDap|BYqgRj6r<1j?6jVz~h5Q1|p6YDh!(CsFCa0synQ?FU z%V6MXvcBg2Gq7?;faDZUkIm$TH|wxN;K-M5FvdYPlq;OkjkcT*X_vKX4h|3Sxm*YX z5OA8(=lfXU-kGm!G8qFOtv!S?XmpR~a%{oR_mh!0P7-JMJ~ovnce5;H>ou{VxCi=R zIv=2Q0FzOa &gBJzl; zqM5GOLHM%N6YGF#;KVQ_InLBpwwkFe91AM6&vY`!H-l6~y`1z!jMVvg47Gj)KUrA9 z{B9|j%9C7F1qm(C^M1Qioe2jASvxC%qJw^g5=(@cct{c1V6D&Nl0$nC_(xl7E31#L zTB3cF4vz03G4|s}N>spWKck}h0C3JA8*z0H2}vhg=*%$B_89?Y9ck)dY&sL@qokJT zV6b^MMh0NY@%fB=W5CPQe_}vA73-e1#0N9f`jkM=Cyy{q*?v?YWixKzb%1x*Ab}l= zxB<#kix*S{v#uBTVJ+d}PEb(Cjyhgo0OgYac9RC_Q_Vu*^l&*^s@Mf9d^3}T*5`*f zxg4Q)hS$H}S4@$3QBXpg6H?>fm7&M`vN`}4Op@TUJx+5G`vm?VcH2kLt9tI_gI%J& z{**oK*bhFob8^+~LVyqgMf5I;GuwS;68a>PSmTCn$mG3amMv(W4e9yk5fA^b;@P!U z*rqe%QxOg>ZIlG&XVPnJ$+qh1r$)F8WKxa!LtVTLUra+)!V5jk!Lv^8)H{<>`3Jj| zULC%Hrvmow?dF=SLcQ7v{; fL)AC-#&3Tm=P}WU>ET-yh&C3 zeQI5>)ITaJs-2*(r4dV3UPY)XjJgDZY@=;8&nSDLo*W$aW!+M@@hTC{Qfv{MZnkHa zM_onY%K5{5IpYfP5P2mfC1vFl;(sLaASe9cSpxuZQBqd?Yk4vgtH-l29H=H9wzI-A z== ?dd}=%tc8MA%vI{xt8;Q!g?7ddfHL zytsz7Ti^>k*MF7N(Ab0CD;iV~Gkr&rC3wFsgip)%?)+zMo}w{ky?^h>hkHh}TDq^1 zbT-`9ObEberBh~bBJL)3U{d$VIW7$OLO0MmT&Q}}>a8rPZ7m_62v~2{W(b(qj>+fY z*)^<>*wjcXAVn~x*?C|%_!xvhO~m=2o! #CPgfpZh5^~eb@y&s{C1b|412x*Yw2Aqlg>lwVq `gnbETrQ)0Egwi- 8{MLyT2h*e^Hg3N3@;6>BFDIH?h&UbIN{Q Rb<62`NlK@l=FbXJ<_@LlUi77@6$NrricP)Yzv1j`*I( zqrWRJ@B5B@5_&fCqV9aM>v*UfFya-4HwUeIOR^m$O+8bn8N52YI!UFYn<={5i?VrX zX?)vm_fSDaNluPGQ_F*@WT2#94=Bv!l&z62#!|bEn$Ptv8*D=sU$Zo?uLM7D%r~B} z$__D{Zt~g2aCf!@9WV7ZT#~LzNN;?7>wc}OH4{8N=R1t2rFk7$1nFwrP>?TOvY3E% zGl2~amD5Ls*R@>5UjXhT!+Xp_pr@a^<&x( i`M95pu48a?zZXMTIH7S^wZ)QO+SjyZkBD?p&NEcFhV63 z>uZI8Bj$CEUZD3*!s!$qbHzx+LDB^lGg%QL#nY~L>m=2|Yz7QOU6hX$xN+(zf|RT` z;or0d?G2-*ww|t*4KQFT_&NJsTVO}I&g90(Ua%ZT+yn(wZc#!1QSaDUCh4#gFn4kU|_wkQ<>}pUQshQR?GYLEe%M9=}U^<;iZHw zpo LH(vUIX0#Pk|~(& zV)yqZRw^H;5Kp~fa*^9>{Uu{xpIS{w^~-J*q0w^~KQBq~%D!E@Kq=M~nC^TO@xroY z>v#JF9PhvLfi(vq{z$Z%En>(0vfArXjFJ)?)Y+h9cI|sQ(4wzAFiCYbO8fYL5D|j0 zh&aUdCJC?S*tB^$nT--D^^J`U2T2!%iGO-GKblnJ;L8ei`z=m}SK=tTBK(hJuXens z*F6axt#h6o@n!RemIucZL9B?b!=Wz!kdPCs0{5Sg6s3y`(mBCKI-hgn>XLMM_sPJG zqoSzw)JP5^%ofKmOwT5Ct@I%D-T0raAzP|gPwx541C?{&JD+P0@ DXj7JixiPW>R9Aneug0qLg9aUUSG!KfUbM2&X`yyjR!V&iw^w&aSA_gj zE+uI4c-N`v6=J3aik+5``fEW41zlrFZtRdI$ZOSI<7T{9J3u`qD6Jeh?M^|o^0slS z_V+5_&!qI`-9VCQiGqZX2_-Lox3VERawHm7^5{2f8Nx5JeB8u-9N#fs8$60NNG!Mk zD%_JQOal9x8XqiRDR{>LTo=H2a|`e-B&N8Q0$xlWi* i%3iZ3H(YNS=oG`F5GB zFR$bLL- pDuJARYPE{jKj{%u%$sQxD=>bu#cGPpWFhiE}tkJDSTB*}__e z4n6Z^kdBI6?1&D4>3kDwYlVI$I-&i82yFBF!XtOiF+{Jq4#r|*B|4ONspGamYjk%= z>8avlr2d~+pINA;sBv3AwkRkW;vfz+;}&sR-;|lnb>#DKV(-n(G7K@dLk&qzTM#<^ z{5rz{rPNYm-moX;iXhyzCwqBVdof!(*Ac=Wuf3KmGafc1YHEQPrFjcM*G+|KfXl`% zIHDy4lC?!l)yqPPX^V43;y*25Um4_CB#EXOs_(pk@Tq#+gjLh4aiQ#<$h?$<23gy> zJ)FbWs>kAwyaFRU!kWxH#fxo2*Pa!a?j`j#LKi99bg#~?7P~evq{er;N6k7D&FjmS zvJD;KyBn@qAJ-3jqr7DDb%ADtx!2-aNxALWAaF<`FM02OSA?QF#KhdLVP>a!B9%+! zG3AncuS*hS>CLB6T_fz!VmE8koF|E(QqhtxJi6LzU& y@ zoskL5bJR3}A{66lWcO-z2qsRgv+g3h#_#x0)dA5#t8oU>00DZU&X!W^vj$Jrzbxsp zdG}`UD+!3WfTjcb;W*?;F&0Z_naCE3%rE $Qz4D~%d{iYv8)v)<+aU7woW z3``=2vA`H LCj={K9T;>ojhRwyxc6v0R7 z^zPqjaG0I;lXP^EZD#Ksg31>o<`c8fl7GCK0G!=H{;S_e?$hP&zgnIk1s};o