+
+端口映射管理:
+
+
+端口池管理:
+
+
+用户管理:
+
+
+## 9、迭代进度&未来计划
+从`2022-06-16` 第一个完整可用版本发布(无管理后台、无DB,纯配置实现)起,该项目已具备完整的内网穿透功能。经过后续的不断重构,初步完成了以下迭代:
+- 使用sqlite取代纯配置,增加管理后台界面。解决修改端口映射需要重新打包的问题。
+- 增加mysql支持。初学时,直接默认使用sqlite,可以专注于学习代理相关细节而不必额外安装、配置数据库。有了自己的服务器后,可配置使用mysql,完全兼容。
+- 增加端口池管理。方便服务器统一设置安全组,避免暴露的外网端口杂乱无章。
+- 集成调度管理。个人版项目自带调度管理,降低学习、使用成本。无需部署、接入其他调度服务。
+- 增加简单的游客权限限制。个人版项目无需权限管理,但是为了演示需要,同时避免游客篡改管理员数据。
+- 封装一套类似于SpringBoot + Mybatis的简化框架,用于支撑上层代理项目,减少外部依赖,为后期孵化一个开源框架做准备。
+
+由于笔者工作之余才能进行开发,可投入时间不固定。截至目前(2023-02),该项目2.0版本仍未发布,基于此未来的计划如下:
+- 完成2.0版本发布(还剩下报表管理、首页图表功能)。
+- 底层框架全部重构。
+- 分离出一个开源框架项目,并持续维护。
+- 思考或着手基于内网穿透的产品开发,包括但不限于内网穿透SaaS服务、堡垒机。
+
+## 10、联系我们
+笔者时间、能力有限,且开源项目非一朝一夕之事,存在众多问题亦在所难免。使用、学习过程中有任何问题欢迎大家与我联系。
+
+对项目有什么想法或者建议,可以加我微信拉交流群,或者创建[issues](https://gitee.com/dromara/neutrino-proxy/issues),一起完善项目
+
+
diff --git a/docs/article/2023/MyWeChatQRCode.jpeg b/docs/article/2023/MyWeChatQRCode.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..3020c1611eccaa396be89c90ca6408226c36c6bd
GIT binary patch
literal 125596
zcmcG$1za3Sw>~^LArL}>dvFN^53a%8-Gc`R?j9hS;2H?-PH+nl+}#IvcPB7>oqacZ
zclW-#@80{}|L`k%dZxRoPSrWj(VqM1`z6q0DKSYg5DW|m1Oxnm?q@+FAVhcsL9laz?;v%|H4wl?|LTXSPf{y z&EqQup7MAoXN+sC!}pcFq*N$ItXQ^0S3#p?;py7@mmzOg9_Au?s@@e3?v_r=k{^!} z18$ZAUpONHO8a9a-y8BWUFuH1tYGh>UHNvfLUoCkV`YM{`$rv9?z#Hrp?2|26y>G!f53*8XL)!q# z(|VIWZ8bnMrd#8nZ=u~nBTj1F*z$ZOYO3?}Ef%%92poQNw*RBTw=h4I1eN5UivHOk zYK{;EU{BZ)ZMB-< OO?JAN9kF8Ijh7lhFsRe}n?2;#T& zN&DV6itK}!)hE9X-G~3zxV-?ogy>(H1oYg##qRM+G7ht5SAC%6{tF@m-Cp;QGUVwS z0G0&@r{zcZcOX_0{JqluA5r@MREiPwzxM)JgzYiMJc|Aoq~9E-joR1Qw(Y4jo=rH; zW?tpRw;Cwk*ZkK2uDVH@?ICLhP9+3Yf(UmnN^tf-uE-+}cm2<5Pk)!g#2;Nwt5sat zlZqw&k_8Dodv&2*;vTA*O$p>x?Vvaw489h=hM=pSy8&R|K~n%tA)7wR&1Y`G7-CVC zh{(CW72Owde;3{01L&hqj@Xo4(xY=jsKJZi{Zjgjsiu#%l)9 G@_7%;j~VX*y5iQ>EfuDodb+!$ks?d?!!)b&t*aLs7x8EJ4xi~g zpU- 4 2Pprh4v_1!5--m4!E&Y1=?3}Y*`-oMzEAVMpJi8(>ipfXD4fLzj7;S>+qK2 z|G+S+ALMj96b=7!geg6g1o 4tX~lGZ>8m2+Fy2G?+c_Vi)!&jh0}(n z{>+XW-u;v#I@5IO*9%7T2XwY$o{3K)5Tb0tUqoJLkl?G{x=47bPKFq=!2#QXxu&ZJ z2HLu$FecMH xGjX`4|^>k6#dO97khPQOcLsE$=ZDqushzP25{lco_xxGjL Rv(@Oqw;TkQ3)9iswH*$m zIg!v^X4zl!VACu9F?mF`$NLR+%!dpOp1D>zpH6$nXf^NXU|CCocgrd>ONTXiK0W_K zT!YXjLzqFoN?NSKmUcK{_h)0bf`Rc)*+a1CG5zk=vqbC~Yif>Ekk;V^s&QwTIzK`> zt>aq0qprEm6vJlX6N~3_ix^L$KU+viG1&~~Fj5#3mJ5UqH6JE}2NJwaK>e|FRWDGx zU+`+6;x@9p^lJO9Bfs@E&fI0a_3 4RtCFiWU$4Z*3k9j1cfF)`NN}2P_DZ zf}MT)_xQE-rR=X#MBE ec z5;&Q~ZD`<3CpD5bCEn6%4c|okae+?DdVirz|8e*3VL(Sfx-5J=r-|aeO5Z0*f%T#Z z8dmGaDoV>5h RWs2`4p&c1dZ$lu8A#z+m|=2 EaJ4?1+gm3}zoHZ|I>K8c9a zdTn&`XuAvyiyIF;cai?OB>i>d-S&K4f5~N4*6`J|S8E$IN)MS|kS@z|SK!{7z1Mm- zW&QB(Q7=PsWr4Wc)ZnTAJ;T2McQ*sVsm&V}_gO+884-*ahb{0ukA)e)(?Q1k4vXpn zQ1>J$9$H}mxA5R0<--t>1z;WL?tv?<;($0Y`USx#xMsW0<{+ucf(ooR=(FoW3eE-d z{ssv&Ew>OVXsE0u_uO+4yC=6lo938!x1~Q!mJ#RK6&L-ni02qr#aDg<^Gd;eQ9r11 z>w <_hfv{xT|-TSIZhGWb5_h^k3IRp^F z&Fn|`a?*K&Kz)HK3Xcd~{5sGg!XK6VE{QqmIuCb2*?pQ};j@Dm2S}F Kb( zqpMFibT^9!K55e62+~jgj~cxD|Ej?OPn$)W@ZX5y-+%jG$zq7|gQO4tKcaVmu;A`J zZ+E3si|D7M`@S<#&j^`A-g4TiOSddq$*Ayso|(v*Oz%}z`vob;s$Sff#Gg>0%(YRS zW3Ypv?2X`Wi~6mf)e-A(-lLOZ5WgB=BN~P~2i8FUhUW2#bK?2)$+drca`>-LCN1f0 zZP>v6GXdDO_K&}n-#1s3_x;n;Ts|j9F*E9#Gh_!c0#gwj+-{oc7v^8qyG`*|DsW!w zZ>fNL^ZmhISAx@bT!_{8s3oQXOy5Scgvc?|f2y1+DJxcItxw-_p;nhrOC&l<(`MOU zenEi4(N@kL6P8AR^FWZ*4n`3&>dsu~v-smX&8+73SF@) 9r*fh-^7cx_zUJ=hj!jhwj6OOGHnE=%7S_9R za4@1AgpkxXe9xU&ge!`glTNQ1XUH4({mHhIb9a_9+sr;?L~FDywBz=U7V}GXA{oR% zze5$lpulP{@etEkBlaT4jm)AeoP1~O8jC!!%UQ4YG{4{XBQuefrQp9)d+{ahQTdNM ztVPx7QsnD_JS^&rZ~3UPiKhL#hfL-y6>pgW!YVX7j{92-koOMwZp^oemMwPWF(370 zcg=N->D|O;w+JXp*~9L0Uq*9WS;a#~>K$i>24?Q8govR@O{pRH!i~3(JMdah+7+Q= zLo{>r`u^js0^Q&TihKzzmGvib&9hWC_P-zsmmHOcj$ ~yiBAdW4`Sy~G&sZ*4wqx2w~clC^W<;ksJVWgCwng5{)a^zMW=LUfg6Kx?$ z-u(2u-I`wTrND*eLcAA8G2-bUmM8gz+MRMQ^Erl@l(@pYpAm|28QNICv+-+&GnEDW zhl(!a=OU;c(HVb|hoIu*aaBFkVyxy|w(nTxN2E7?h`^eOIuFycK^|Wx$o<*AiS@@C zz(~m<&+U)ZCW#9(DRB*zm`-~8QLAe?HI6Urj{&wAnQ)6k72jp`3u3laeZ)|1$$asG z!NX{i)Ki`dW^>r#`lBR?(F#C{byO-8(y^+vJAv~ITOit|-aFwv)JavJ#D83PJvn-& z8JUpcl7uO&lxs^?I?%+M95{+6tFc3f&vj|CZpjVMRKT1Be2H@@UX9YH^L)kol(F`6 zQJ?4K#z~_Fh~^~NS2Z5h9SF(VQbbZ+I-eoTV&rw>SY7rcYpJmXrWrRW?OaLm1|#^x z{lRD8<4g@+U(Xl0Q&}=hq8*mZo^2JxrZ3qLX1yLL{(w#Dt&lNxw6UeI-hn+0Pz_q@ z@d_>s78;c4_C=$i49OMjl?2SXYv-v>zA2Ho|%_7i3#!Mq7c=CLy1`R rDI z_gXm;(V@lGMWqq-d_$@!6X)X|x&$JN+tU}Q6V0#3XVk~TFHDVpW3JyGcR?-|v?XtK zK PU$V8}`4%YtQg8Vb046dg1)F^8KYF8eKv;22`d*8YM5J&ObWrQj0@i zrPp7(YDl>d1njOVZ}BR=Gg4-#{m_iTkk8#XCfYMxrvodo7ybk~$H+6twQ%TX;z1m5 zQkd?iADKAvBi7SFt?<*1Z128p^$zp!Odyk=iXc(O9SAib6zt7O2E82-5`rk6@j1QV zvYMA >l8lI%sN$HtCL?wB&Pk`5TxY+y{Gz8 z!ibRJ&e5NMp@zRfU-r!TmEh1;r~k7@$eHkMj2i!FR&ar%W!v4Ob9x%ctV2xt$Vxoh zxY^B+Ti!2B8LpoHF}suVur$M6rgb)%$~S>$kToePlzq&?%5Kc#Klp;#(aOxBs^6^s z<-b_{Y>sN@J$@&APbJNg;3H5EePRU)Ya7&@#o@oD7JuUqQhsv??u4tTOF$+CO+yVD zoo04tHcLQ}`(;SIVT0y8!Y}-y^u))S>49?10sd)xs|!TSskj8g2z9Ue217Nyqzu%n zzr{eziF7O86J#n?4ce2PjPqrjsr!MEr)Qup^gtsDUW1rPdb0M6errQF%^ES=V|}2s zomTz#ziZq>i^&7uEWOTs-?{M5S+ nOCHK=GO#IAao?9&X ;=B8lV+TpaOOL*tuh5$TQfdzP+ws^)W61)mojf1i*{u z?uY-{k@GLV|L =VWw_tsnfp zKOfI*l+G?{wxJ21Q@jjAA3Hr#i55iX)^o96*`3nZbxn}` #)#wD2Yo?f&Iqr*E@Uh& zSQ1xUpP#X8YcMfharMpw8cjIjYFd~h0oC=5Y3@teAyru7(~tD3o>T1x+|~%4m}$ zBd79riLxMVABUMS>(r nbr9@ zn^Cp}{&FaMiIL*a-O+ X)CR4#v <*M|?|=O~c1dSU4cIP9v`Vg#=`q zDVQ5~H=69;; mRsxR?Umw$? z*)qdF9tNkFgj#x-p*9oVzUA_Uk%DEGP9T_!EjMN6os?a%{ruHq%1EC43`t|Fhd(*Q z;%kV*3_e#ASzfuc$Kki>+jKa{fy>9s=pqhSK;=Q=mTf6VB)4|3odu=si(Qf408`jG zHBgMmfkDhrS6}c4QH^Y+jV22Ob$|M-TIawTZMe+}B(Ie)yiegYR8S?LK-gaAdi}tB zN>+4<`Z|?DjAlRgnkA0q%hZjbbD^kPYRHU3z``*%#_R%CP^$2;`f$_7_i qP_efSViKR4v~ zsiHL{FwjV&S!ug~*FDzhi}6=+%*YX^QL7w<3Z5sy7Cziw?@@gE7fv~fM&7K1SsnOl zf~N@o*h6%c4If~!D%wqJ`@K|Hubh;V?=$92kB4i*efjCul2b*2r`VCJ>l$m)cN1Ep zH)ju3Epx5=7RD#ZcsMH;Pa{fDq-SIX>5p$QJhjmxf-)#Ny2)Zowop`ukfmr ~{JlY_oz#z8$s8r{;MBEW43N z{At254JMRFg8+yyXHqRitgYh$G!Ipg!C|T~5?e$&*4LNszKSjwxJS(s>%&mHgj~Ll z>-0x#i*y2b76b02x%zu_8GpNt+AC$%R65aE%Rfq|xYYMz a$JC`vNaTNcI+}Q>wq(l?AsT~-;3N@ zODvOqLA39FFiaOt%hatyZ3`?L?(M+v-U{$?VD1<@OVy9*;;w?~7O-0h5
Gmm~cSai?wUTE^1=Cf+{RrEfY7M>4)A*uje#A+jUZ|Gaasz_uMX@683$7EM@ z-ozoizHPCn>dA_{9}yZZm6m;NMtv&fm^!VHf|z4NoSndCHU8k#`Hlc#Q~(Ggw=02# zaw;9O*fqnCalh4eo~a#GH*w<~A=s49+Al+2RLRm?5!)biHo*vM_O}W S}xl1%hdKUd8V?gKHEzd0$)5G%FNt;LffEXLN3z5;lezF zt%0rKlfzWJRJJa@^5vhRe_Xo{t&vwBW0XF<2s6#L!5SZOgVLLB^Y{o*#*`IymBCZh zr*C &sHwdN1XVlAOaW-*OTLSC!Wh9i zcgR^?;KUvy*i=M5`mXYZfR(_dpH8&*XoGFP3Q}DS{)vgcr(*i$suU|X#5M9?)N~b{ zQ(3RM_hgvoO#?2hzMY&kh|(9p13W+zze<|0P* HZ2%-BVYN;wVK9j2%X&)4mnQU*u7i_WO-lU@B$2%&W&1PyLWaBo0U1`ls7yk zYzL<1VD(Gw{;e};I^n%~nh^ER_kqXbKi?;lAN(BOTK5aWw&3#dUylL83{mJHm_MlB z(`R}2k8t5TuKMRuJV1nqBL4bUB3=Mhms|)QwAjgmB~+lR2ZfvPKIvK;@3yDemw)>g z7_H^sM{AHE#n>V4b#nLj_-bEOlL)L!Z1J$g%YXj>mDa~d;0q_N-B;;Rm*#lw&|TmA zHCsW;pnov|z-n{nz_ fV*%t_B#x7WmN(0{L}PphlsGSkoLd{dfJnz$U4UkB*u&$iuELMo z5wGU0L$-Gsn>`&(5bMO6=F^+Ln$glx(3nvfyHA06`4T-;xyvJE)&cuAB%B>M>FQS} z4}zWP!#Nd6=itrhNQEW)es%ui4uN^BefQ#Fsxz*vKDD0ygOOIVF3bnsX&Rv$6B+TS zN?R)*rsCSCK77ia|9+=|MX&Mum9OR$_Z|!@Ck%vz#pE-O3^euyiZsuAHi30a46I*O zBvLF&be17Bq?q&Ym1~voP6>YP8V6yk0OY>+mz(bP?@3`_Gs1b)-QtD<5{7ymDK@Qn z57{`TCw-|#B;puibd%d`18$j)JlI{ hN61T6La5T+!hC`+v>Y80zM9)(3`B4f-OA(|<^PR4a zOQ~_}WR9)W&SR+vlv_sjB@80id}q{6BtDSofAn$p@JQ0)#yp5rW*ZwDl?zr3A8|MM zUTjU8{L{~UE=o;8q;}Qdu57BplCchye`Vl9VcydAsaoZ$A(_;N0Wu^DH-dXg$`$O6 zM|JW2vUeSHZP^m{U~;WF*y*@$RPkKzMZXL@Rx_(74tUo InTr7$o(y6&N6MNdUVr#ILK>@kUr+2TR9PWgx*DF9S zHZZNb+wt2VT^cpU_Vb+e9%62 Xq~ zGa4xrW>VuDSB;M};kbnXx=pI#dV6Z;8nfEvPv6i7bI&qB$?I^T&_P8Zn`UEP%e6OU zUNM!k8W|6r`30d~p y*Y>}$7A@K0FVL#)}wDrofltg6^GZy0?*F2Szg zbU##8NyFCkbE+aRKZz Bi*-F7=>u|>oyzimB`F&e{ zcIA>=v^P)$Lhhd%0lfhc8rz2tH>PJ*1uoIvYhvcfKt0mu4=8n#2!ne6;3T)o?$Om| z?hs>}^`9iwj*)sV>ThG0@grStZ=qOsrm&m9D(X67uMgnPE@^Wr14LP&dDFd3GaL;M z`MYWDkdfb!lOydnPqf0?2 SJFS9qO#;9lROa#cUa@(wo~X;>!|nIaf9Nas>6Ik*$rFWl62xx)LSp8W0zucYYi@ zP+ehU3tLd_n!2INQCbky%BApH52N@En;uaVNn9R5_+;;jd8iaXBbgmK58grdh+pL; zWw5JXfL!ZubC=G4KU){sBTt@R&$# li+owtam~Wb1yw7SS!Zy!0yjr` z(U$cGvC~E409dwzA+8W)wo5dmXJ?3M1EiE`DoeI~hYx~Gj`MnWWOH@)iW6-|BJ29< z1?FQ1 ujZIIUGBVbDw!(Dzk!zRrgnWVB{$K;DqO0- zzTxx+OjpU*F}uMcZ)+V*A$aPn%^S{}YJIz ApgDNO%svMV-WW}t>_h9=LbNF-qE2o+1bsA&G8AEzX-$VBYd%uf)ti=PiWGIR$ zkgfRB247wyT_5do^)ylsBr80;C#NXjSrA%!mKEW9bgZ=|MZGPp!>p?_$SY|1+~V#X z**-67Mc;GH=gW1K{O*6Rr4Ez5aR)+m>8-W e=nUbv0v@|& zG_`3yFs{%6=dWmevWsY}yi4%{GyG#ZUf(BX!KQBqai~sNy-Oa0KO+Tg%1|ln*~JvV zN ;-<0kMakuRk zFtG3 %R+SMDj>lrc!%o|cxnLy3Oc9Sy98?n*&`JL3PYqh$Pun{6V* z)Cr8M6%Xy4l)4_h+?SYaskG`;m+`DJ=I h2 +E^vYo4oK{*vO@9W6f}#rcAGPM%sk@ z`Rb0QEO+C+_1nF#*Iq<1&UWs|rFZoIrfRydY)R;-)~K=Bh8cs~sRb6b`l!0~hm(q1 z(kG>q0uhvc+9h;;Du{49Xy$Y_<*Z>pc}rhLp2}K#x0(}Pov*UruU^h3n?_Q9?3mT+ z`Rt8`&Xb1~2eX%xUmZWD %c}(R Ma(cUt1@s@ZT#4r=6}yu|HPex4 zA$I?DgqoY*OBJXVJ;Y8y+0dJ8%1qOC)t3O6zUWN`oRZ%An60q^PbjF-f|Hla#gDxl zd^!(*?ZL=X#nBxa4u@MibO=9l)wG|6ecWD+cAXg0KZ|BNd1pNKWN!s-W$1l{;>(_y z=^E{If}Jd=h@gXW!S >2tm9V18)DAM6}^e va#aTH0Jmn$=)!=$fSDR~trh zR kdwNqAxz7ylm!>i8-Xl!KnXSwd> zN2#ZBT2NNSfF*$fbexoSULVCtt=&hV3r=EEMu|j-n~KzeR}CLDIaxEozjc4V(|pT^ z#Jx$%oG3PqRQ^Jg7z@3KRZQsy;)bBEusgStg{gG>+@;4FKTm3YLF8~N@O+%%yW}mB zFarhqeWZK%!yC4*J(>LODKGh9HFAu#?PPRc+d5*W>6){|WQ`o{Mva1$qAJf_)C4L3 z!r4Ym%`gcZDcJjIr@pvof`yikXppOhqw^x8{gH~zXB|s2E=Fb&_72;Xiam)BKKmoD z`e#Z4LwqEO;n9bI8N;>H{>_XI{2ei5k6wm_=*<}tUH_4yp#I~_+!Z^-E@$JGVg0a! zg5aiQ4!*}1;Y=g+NnD0auxlP}5$s0h+fc?|2{#|7XW;mjobza&gqL`{!5BNF*I`Rx z59iy*CM8uBMhJ$A`bJT|yj~xD6oejtia@hmwdfnBnPywv;t#eiXyg~-8g^Bl#+&?5 zps=_m%ZA3uv8Tr#jknpBH2Ft|Y2>PdT|e}iOmc?w+Mb|kx`%>l==+H{DT5ZdSf*K7 zyN)eJ@B<6bXu=uip_g|&3%zICRXTd>M&7rIxh;6l1WNuiWrht@5P9jIcyJq!q{p?` z*goqA7)uRZwB8P2o=;)Ce$3Hk32Xb^MeUKj)5LU9{+JyFif2`Hk!_eueU}-^|SRMO!9D4J-+}qe-OiO6+smU5n%~= zce=XR!k!+dXiWS@aAxjXe-<=-y8VR*sanwXXsED>IE@>+H7QxHiRJb*EBi)pq63U_ z*|qOV*BF;d$d1&l`U|?KS8sQtK@ikz-PLF%n{)frX&Rn Z@ik8TmgN;t^{uTKi{XLxj75V;rt0Awl%z&8Ji5or+4}xBr=if(au&I_;;QQ0w z>7sH_R>vjxb}5+F_Ki+Mx!>Q{CBfu8F6gWnmrQwb8|8Luwyg>9@15S<&=23{Hah9Z zeB+ti_ZSnwt`h&%u<*AC 3B!pk}lzx|N`;5r;xQ9PPVc~riz-OMkKy$dK;+IbY*$VIccJDg( z04Q&C*aaX;50rXBZo WUlwF82!L!Fkw=hzept~iO}=K+=QicKemu=EU yW-cAE@ z1v=f6>?8H@t7;|Pd(@kjS9Y%NT77W3oI@*1XOzLIZv6XX6LSzV)u( k(&}{cfxoW^24xljElr7`3aF)k}JxKY(FWV>mt& zcYuGq{&x-KNX4VND)EYLu1jGf*>fCt?Ba;#XyQzf$ziIU@ht(H>>%pSPo%w;?EQiM z^`_3w-2pGxdgM**P#{&Cv+Jv#gdJbWvDwR{^`0B?-W}9@N^7ob|NKSfpjg~^=a)Vzi*8Wfls1Y5D&m6*lGlbxDY7hqI?HGT3t8(z8 zC1c-ca)0TImgFKR8&+5_nS;GmwX2oydi~%+dSNi&pau|gdD>vzL+oAv2)H+v_v}1) z5YCeVHy}O1iAoP!Y@mLe#*(mO&6M%iV~zaiH+d_@_OwuDD1n lkB_a-&cUk%rzEaz z1rGWQXoW&cia>E1G3v8NaJek_P?sOo#el-G{l2AXYG}E|zUTQ|;`hlu%$r7 aGcvtC+aP>nrf*h$yyPtAU{2YEAs_e=c^gjQ69u3iCxPAMC0%mc`QQe{^_RVWc z&>U<3r_1WEK5?+c0L6S@lpVC1^8qWxOqM9DC5)oxk*xfmO|C&TLvowL+`SZ0HW^L{ z_HloIjr8x+{r8mr@2_(t6v}E({ bvEig3GB; zAc7aXYSL@XMXRoh5&3*em@8TBrRy$MkxLwz0VCWWHskG2Y;iVh7^QRLrC=L=q4lGS zD}d^)E{hqsVdd8TuHFEYMpLbYX1%|n!3J+8CS)<&%DJ7J78)j@32WVp+CCuKHT1gg zQ8 XDWs)a=djw0QI9uucyod7?FE|C)q%`ryx y~kD?SR3E;F6zW82IqHz7frz>-s>WB{~#Bscta3?3R>RIu?3LCBQCi1L} zd77HWDFWB+vOV5_;{Bc`6EpgZL9%kuG!ag|AY?0&sG4kgA+}m46436@ad+nL#pQ#G zNZ vF~XS)LBM*Yj%FM4Fc6U}W)z)>)5Yknw#GWw3wQ zR(#_)7Z+ATP}l2TgcdQmP*~@@K~(IHf$>(tvm&>vq7>mea|#RmUa>qqBB!e p a9(^Hw61jf9T7dGmg z*6A2wj2G`!H@9~Z{{%^@*qmhu% 89n%pO6M7Zmnn*rz@Y=Gv# (2^jaDZE>o9L}8;+G=N3TtEu zDG&8nt%XlYFiei>9~v}Ln`lH#@X`CnOEUIXk_@lSMeKK+3@zXGyB&xLR}b+a%54_h zN%hZu@qLRY(b_7JN%o04L-}C0eJed*L1@`G3x4e&2y_SQpEF$r-eLc`HZfF1EodgA zFzd}CTB1dK<7L+?3fcvUmj@`H2%-Hdiu`!?ev>%)=Chwa8IbADJzB#o&zhZY26*XV z>%nEm5{>9Ka2DipXx|VEvOlud*9&ENVjxZA|MP{-r8o7{GGj&}9v`?1Lx9lY^;GVb z)LCW5MQ=k+%-3du;Evo(`^Lyz3r4o;lEUY>@@XxnnhVDotah!kqA)t&@0mRMIY8al zF6sM6HTK)>&r6CGV&%-#LH7$nvAloqgptxt8+4=Y$wpa!X4s^H`#cm+r{yWnoGeo)s5< z{H )-C*F^dL^RE#%NmUgo=O3G#R%?FbHLk5<)0Q-vNyiih z8VAm56Jejm7q$$lZ}H `{txghbo2HdRv zVZD2P!SB32lJbt+UHW3O#`-==$Y4*zz?SZVkOyF1-GNF&u+h7^9|{M!tXPGE=zQml z*Qjq8%Ib{OI}#~aGs)iw$V_i$Dr0w)2xgw2Pq1fhEP7^eX!eYXEc57Dg|CwOAGCH6 zeN5LlxIbV(+b7Y>nHWJ3cup*zEP&`}A>5<8Gv4mx$*9{U3S}+En|})`=ZqBtZ&w%j z)v|AA6p0fyc)*R#FNGJp+3(J>l?J1NF9b@c``|}3n;(a3=Pg}BE+em&@LFO@ib7tZ zB|o*;>r(*LP>9{h*)GRnXyXXbZj_@}SVP2$n3+G>_PNp?)x-{VPq0=O^%fx0t>(4* z8e2*c&LLfz9Tb@xzMU>E)0TT6LCzJsMM6>fEosWtu-5;o`C=c>e1KT)ni?C3C}yxv zSRE|OA#a+lq)?)nKt@<+9){Sq+zM>NE4b=7EI%z#%^|;%R~!cnF(mE|>FQe0dbE*o z%G-P=Bnq$^Ehbp~i4_4MsWnYk--42IU>p9^D(B^hees(yQf#Y%qh7y+koy8yT+@Nw znGU!<&uqbu|IrTidxv&DJ}GXBEAP?l8Gjm@|Cx>aYi5FmsK|=2fkvah-+hjNT@R{h z$M*dMXv4(UqTrij%-4^;FfQ6;-kT(1^BIuk78EFnlGYINGTnT=A-Ljded?@>8WhB< zo0fURD&_j9`ph3X?wNH|(cs1hDl^1mA3tPT&@_tk5?&q~v gi-+y5;ZMyQFp<2iOKM4}%KEGQ_>XU$o9ZGZXhUH_>hXkjl+VgtcA0ONX6$VS zqPB^8QLE*sCBZqiN@L;emgeodM0XMmp83?u5njA*BgG0Op#J^PsC2Old M?p zprZ?4U13$1(x7eAy#C^QkYKBVssz{oT`nru)Jdj$?O{TkNxa<9a?jEUwcuXwV#yuX zS9Cz6qBWFxVW>|qZx(SxyQg%#G1-x~8lEW% #O9Vl38k#cgIs$DI)eOpl4w46|3zp5K$jg8z!I#1m*21X?j`c1HK zmxi<0BC0T*F$k+4`pyA16~36jfNCDkKn)r$ab`$Ky>c`i;uLnZ4QEA`JKm9^AR>A0 zEQ6d@g6JVfTqk6mi#}B!SC4OUiMs}9^d%6ED+jo? t#XaF*&uCr9dgle7zx%;3L z_z-33$b4x2tE1@dXX)(OVMh81A1W@`V~0G7 Vll>{8QwZ37ap{B{<|ErVhz8R?Q zca1eZCw*J%7{ih%k!d$3mB}pv9U0*lj^V8L wme4(6AzExLjNnDwqs|8KpL=v_S$dU4kKavl33(d-noH8{nlTKvV*EfT*9 zx8#B%mMpW@2}AlD0YP_l*Kturab?YHxk4pC9kZH#2z05SE$g@MlC+>>+-i 15Lk8HPgD+3@+|yqKBDZj<0RTb&tu^4?n@x-V*m1swzC zo*S58AK$Lj_zZMicSIZs%VJmd!*r|SKYnyBuA!p6^sW-UreF7s5aE=Yw&ofe5DmDp zE1-JB=nJ-tjBapd=exYPzZKHpn()KQ9SVwC;G=dOw7nwc6hZr $x z8E+0OJx)7pt8OrS%PAn-6{ QK9`ZE0Mw6LUs_4O~(|`=xlX2{otJ~xwXP(*M zv*+7IP{v9{ Do%By$8FtrmzrCSX7V=>`{ zMFg)rVp?G-QVyxpB2BadN|jh3x7V${Qa$%97++SslQZ(!T&hXsPLvg+gRw~Cdd}vq zS-TEC%sy$wPJ4W+Y@6D_XjOY} 3;)N zzIG8PPjwRL9Y&dcR^-k$7Jce{FLd1Ivdm7-H+R-W{3F974sfdnu)t=MGN*cVy?Pg# zgD*3Z
MiF^-zqvibDfvP5yh=e z^XEH!U|ik|Peg-|u-dBYrCS`~1CB*S0qf>O8={qvW~{}Q%&C8L>Y1A?korW={jqMW zbOTBpz$rb@VGwM4pQ11MBJpB@`SOw(fE1H|LDB~Ca;SaB+QWp0rMUfXmON30%yv&I zX*_I4s)Dg}hX8S8CP_F02U%+jm$MD9@@v~Zrg(M#bANQPhRYrW5j^&2>T9>;*Gqx4 zve4@$L*5tqqIY9p-m2|L`beFm+PlOB$ji8@;W0$G3myOkw{&@rHxiDoV^bP0S;}#0 zmafeU%V`BUsT&N4+3Ow}+Z(0I+nc9x_cq?6ZWATEkaKO;z|By>0=0du90&syfWMax zTvB>~O{h+#zD44v&a_;HcDS0!m$woH;oPaG9;2v1DZHcKoMYaSt5aQh)H=CtrL5(= zQ5bD~wRMpbktr5ewa`(gy|#C$Ec~1`d;R 7$YzgKA|ki<=52HxlOc<6GDU<=N}D zM }1l=qL~M1R*~iT^IW#j_fYz^p3nIq}=L~mR-=n|Khs!=$hhm zyGz~K-Y *Jj&Y zDm~;4xs`P|g>p@Y SZCyr+Lj5{;&p$Ti z__yCRbKIf5*)Myoc_*OAL=j&Rnp+RkYj#%+V&>TnsJ63> FD} _{~MmkSwT(_ax6$}FzigOzqP-c=vV(daJ7uKdtpVqi` z?&rZmj#^fZt8-SomaAe?-1 0_~-SLN^k7qCPFBHmY zjO`_QH=GDm7Av;yh+VB`WGU-%H0L!|j{({{oxsNFSp4O3)S)gMObkGEzC)aOKRYx` z(H?V-QQk=+_lP{x*s%RcbG&6x#w6KIwVn3C#Ii%L%ICHkmNquy1n}@tQ=a@=FY&CQ z3^-rznV(wqR*QpzZG&m2CcW84L5 oY7lI6bLO!l;9?o7j`J(dk3lbJR!+lo{yLN|8o3y1R%SE=#` zSW&YjwD>8{YnE!oCU&K)a7;`X;*>a(s(f%(QAm^NRakzV|H8wZCi+lmMWoJ3$HdC` zREal>Un7mS9SOpC0ZAOv!l~$bjH;Dz#dQ?hezov-c@3>n3HpfPSb %_`!TeKvZ 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 4A}B z+E*D>`^JWU(3U82J7@p02`l-{NJRDikX%==pQfjR+n;4cesky9@=$Eso$V(sW<{t> z&e@*aHm>3NNb$Tpb(O+Nhfry#=29pMAtX^O-gb5c2Cc#ckqSZUf&BA+j<=nx*+<1E zGkr2}=Vu4TN{VsoAo{Iu?g# ghpDEV2eueV*E z1@HKbba4RY$B}C)k4ksv7b)e#-*(BRIc0d(Jm}j)B~KM$?v+m~PcfE>Km4VNFXa0N z4F{24;r@0aa(Tk6-@I@0xVKOxrb @I*=&RG9VCuDTA$ zdz^b6E+cRktP(S4W+F&}6KF;7>+Mh)M9?!*ph*m%IAQrevSNz9t)r4ZWSfs|K)h9M zyS+@Cs$;>}{A(IDGB_cB?nXl#fy(G`|FD9LktGYFjGy1S^}ZFO0n)iZSa-BHdY7Rr ztYT)J8RpHQlStGK|8UVJlwjAH7XSF!MJ)fhFw9b=enicI=f09Rf4*MNz{)+f(bWM| zgv))9kB?K%(E?g)eo+ZFzctHmC}YAdTVd(WXN$O2yIjO!L(b1oD4RKxJR6M}-mw~- zrz9cK1MRM-}Ip;1yMFiSPUN(tkZlY%q0lJ#QMU7yP8<3pr}Jp z+F!~UE*O|bgS%|AMyL-CEj9*ZhTKNs^4-Mu>IZ$|X#T&gHpmLyZCJDXOs1Kw)qkcF zq&h90A{B48CfjnUE5nj0O^<#%&9NbJw> %yLO8p$l@WScRL(R}CLa;PKr5&=JG zU^F7&1j{`6AV4IX4_YeH3eyX^PTUt}Spx5yDaehx0VPBHy FDigg_Y8ot}b@~oqo9VP@OnZyihh9~Tg+-xZ zpbQ$Zu$|MSS&Je&x~f{e@=vpxW{qk&$gKt+)(TxZL9cwFLuk*ngS5#La(`X=&e>U~ zqtOZrqW#y>*{Z@z F|(2SBorH=PhZw700Lva6@v G}KO z;kNrn^;67GSLd>eST3K-cQ#&!fxjpQ@L`3hs)xqEeDovaAGFm;tmMSTa8VMMcUfwy z6jbROwV6Dk>1I3uXUI5km3fjC7DD-JXiiG%%2b^fb5nKAQA&1$%42S_*iQ$X9pNKW z0T7dA+{cSnRbnlTwmX4+_FR&y8X7tuT)U!Q6`-!sJmk4-Iqx{ $(b2vB9E6v&Knk9S67Bf@DZ+e1f@#q z{)SS6E58sJ|3=%9_o^!D`4*yf4Rc7;*afF`RfJlBHP6h=SY!BG+b%Q~?;kDb?GhRs zRns)T&aZ^vC18HO@)W!_ZH&<}e%~Xm!ujmbfYYK%b%*arTZeT!$EGk!KNuG{NZ89V zpmx#h?Y ys^+88yzOk3g?i|IKR0{yRex=bYFi&qFD z#L}&ec-U!Hrl42B%{&*sk~sl{V~Mi<$n;|I=H1RfPsZjj=M(zKY$=)(gcKqUnB2*! zEFEGMueN{?yis_j4xsj~{5hmYYMB(UzX{+bhqvDOGh!VqqALRGD;4ZPTJC5?KO#_% z^_%U4A?!sZbq%(hBnsk)cq5ox&=^DDwy|M>hzvhyn=lRgaONrJPCqtYWH5;#?v#CD zfaIaEjc*q+c}JGus`#+6$hC>5vAXPND8rUk?evY?$m`4a5HvBt)qCuPS=Ka9V-sbE z%`4yMYsDj+VoYs-KXm^c*XPIs@UmMe`cMGY@63FXcQxvCKD)2H#WPebaz=@howeQK zC-SkiY<%v`CfpH}sL*`v<}jyed=ujej;n0<*`K|4;NjbCvCX2i%SlN^fgNv46G(z~ zmuAEC%G;hyyOe*>K5pOW{3_lbGpEq!Bf-gi0~ ^|<6@!U&4_<`Kz`hDZ_K zCOYU@Ovth@wrl9P=bnesSeS)&7R!4>m!6NPP$9p2CMul!E(J?kC ?-eK9^AP|k`^R=o*iSkTsbzXnI!d@+FSg4KiYdnKVE;Y%Y^j+W zSMpm#fTu+zTGtii#iI)tpcY~=aASew>IzO|S}4!oeNfg91`Ki %44FlA4>~tL(OOok0R*mF2FoD?6w43G8I{C+Aav*?QYYmrGLx7E>dZybg0S(q$i3 z-}oDdp~~B ocpQ)#LmFIumykNFbF5ee{1Y^nwv<1<>sMk&88x%*%-0z vii33@cO^a}x?&DA^Iq(^sxwuo*@AN7MR?k!_K$#3p@zBpa*2}Gk6rvDFPYHYy z&S2PtLT~7Z9FW;@=iZT#Gul8EX#RXEvoLjQEnSh5Sh0#M5q8|J$3-1g17N(>Z9(t0 zzFfww0&k*|lK$U{u`cvO8T2(=Yqh$conoAmW5WvO>xS=L 0=6QHO;_GjqaMtvGe`v^M1q z*=cwrII}%So@J!9hJ(2bJ7rACO_kAI&-&7FlL#9W(p(!nb}Gy(u)U~h9fJufC$=1a z0Nhc`(K3OR3}8?9FNrM<1Ggy*?Hb$)Jz?AyI|m$I{B`sSyKY&IK^37)U~oN`eMz45 zw1LHp5G7az3LA~r70<4TqGGi8_ULk@Zc_U1^$bZWi3%*bvO1y7t^ZyUu6o}@c7+t! zRn?zsTwlB7O6~{8+2!**{niUOHde~y52@&BLPi#z0+iQB0CgxvZ*nibX-j*RCOJ-1 zR$sx#_^QJiQQ^Dg250D%05SkH-lb9&I#WbRl|zQ^g@Jc9s{-$89;?r90)P5q^fGqk zvsZTZlgC$(cuUB)9imgcxmPAJ!MscbgECqa0#&@B9u5I~-m+)P;zhVmuCbRdZ-eR} zci+UW@rq#$I&EUF3?#-0`*tSgB&e>-;1#~xV^!-YI9_N&BkOzADi;ovX;+;(;=IPX z{{^YCN=%|$ZRhO=U_YjS{qTmK;pr~#YE cQk(g3C;yf4%cLm?-1vuL#n2LTyGfgp&x$4UsR3N3Q!j$DSM<$Yfz_Bmd8jL zPhC+WrFhl>$epgYdHA+o?eJJ1Ki4#h*Yh<4Fsm+M{<0(L01Oq<*k&3AQQgE{^UasT zpsbCQa4Cv-rTo1sihbI9>1!@3mT!PswfVo@KumnV5*22$(W$6-Xn-NAySvP4#-h}3 zd~ZbP@w-hNohPpZ9eN5 90i{E9#KY@4W0A0Ok-0)LNuZ<* z8`@MoCcFRCsCw54Y$7(_iwQWFyi<2qVrMkEV!;j2ceS}>U@KLd*J%rc-W_2z+v>MO zt8qu?Nm_%pwuWWv(YWBi|vYx1{e#}fD@Qlt=JjQ?vT}==H88hq`D<(C+SaSHPtBn$dgdMWfH_i zRu*!v8hZ#7^M+aqN6*g>v`V1EHbmWkCqHBa<7Z&=+SdnN#17jX4rDBNao2!#cHm-) zL-Bb>DZi8Gk8j`!xDOLki{GleSsWD??H_cXczC{ygjVW;a!BR}&QK|(n@rl$a=;gy_urro-s-ZuEu&Sh-4NNV&DV;AwcdYe@}Yk@>n8 zi$fAH+905e2KMGDoc{hp74&>sEFO{5=~YP{N{|m=U$5GCUU-DYbsDfDdFsdYwcfW2 z%6wNG2Q@M>ENoUrf7v#gn1opUJxkHK7q2!r?`@9p>H&}O3 77oMvV;fc8+xbyzIi% 1d!1)o!kknq{Wz#8d&Tzw;0w*qXB)o=}1wAB%q0`tkj&&9^% g zz~yN>Sxh=IS@fei-Y*2)e~19%tP}%L6k8`J%5p 5349Hfzt+!lykwEo!!V#>rc5a(yjmzwi>z7f2dixf6J
z82?qIlg%66vKrehey(|AUB!M~A>c`gdu*UkIqoI>G+GXS@L5cZhb^t&`&;l|ZX5h| zh4Cf71>~E8%*a~WOWLUjFT)1E-A=3$=`vzN&AI#`GG>Qs*hLEK3HA*!tBtW1wbPSV z-UVNxqWF(Ea?k6K)p9<3Zzn3OC_W6ySp}QJ_`ByxC|4S)mqjBiTniUv9P#^*t)Dyt zrD#vX+ZtU?cF2UxQrD6Ezl|fU`g~p)=tvb=Dhn4N_*Gxg9~xFc<8#G=NLMlych&4{ zn`3_#u%uMq9t9sM>+2o=l&h$?c`?}_M_x{-F~k0n aJv8;(ow*VfWF+)15jv8POQQvk+(IYI`)N)6vuZ#0IoZ_3|u9 z>-H-Y=lD7PlzRx@8>15NU)EgM3{j#xA^&fagfKJ&9m*z8hb`2Z*Iiu#faTZ#kmU;g zu2L#JG*qled82CY+_}7J-;Nk)kArB01FN`&3fmNl{uQ2Nin!D6E~5vLbP>~mGPK4>_)vnG z P?}}V+Bo6Fb($-bISR4GH&t^W7fA4>J?tCEn1sVa; z(A_BDzHd4+z+Hu&2x>92nCO-1bo3u&G(7Gme6^j*Ji)^9o0g$ZUCKJoZr9)wAr@!H zqq)SZ)9y?A1ys9I>U4XD)_bFoWsu^|3kfUDZlMqmLuDhd>Pzh;&dw_Sx&gGHLb9}S z1C|=t3x|b7H;tm&Utw 7`09?)`-Y ztb6CNwW#d;euyGo>R2}~rLsBynZ||5Wf!@XTRe`xffg=?=U7dxlvITAe5(4zK>XMo zL0>m%4HyU5cDrxnR{;o%kXirq?e1S?e+H8``D=K}^5F6$mJl{b?BeU2I&!;?!FNN7 z*m}B2ZXFj(g6vATN@8$Tlw#Hl?o0UThfv|6mU5h<=frTapz7F*d%UJVEs$~Y6NzEk z1I#O|+@r{g=UyzJvYsX{*5xSSlaBCBMFr?@{_*SUncL=20Ds=o?wgFx_hY8Ic d;x&s>WehXptoq5%qbAV_@|`i#3!fZN?JD}Xj7n}H sefSW!l7|ulPmfpr&Od0F-1S-& zyM^0ETC7hNluSux&;bffKm0<-?&>o5{t5(Ch8V0%q!RN95fZ~QI7t8rqQrGgdS(r= z;W^0M=iKVvIVxRQ5FE96dwds~#qlKYsKZ!d$!kb$^#q|;Ic~lGN7|?==&N#oQYP#K z@ryJDam%d7=^UdCHlUSlS!1PTmRghWIOFW*wxU%i4tc;$vY*r@1Y!|PS~ld{I^J`S z?iDu(co|oJ?!=Z2ki;qr3Gq=s-S-Bqf@@fWdGeBiKzuD*f6^K{3?CT?BAp}UDQ#Uc z3M6O$YL{oXRSTwM;ZsFwMUZVtQy~jY;THJa7;qErT)b{hAu7X`#7$vytzO-0-to`n zmA-GQs{)iIF 4{q` z-)z=IC~Ffcr>=#dfoltC4lE_p%3Ujq?5QxFlH`7|v6%%JC(z=h8ztkIT~FnDht1x5 zuK-J73HRYvs~VNQ>(MoIM}`QsRN4J*ppQv}iP4K;y`P4vP_pNkD%iuOGO*V6qV(A< zs-Is!0i(v_(1$}`+z~#L#R;z90D0#ErnI0|4G_zK*N|aGDVOqJE(zj{a{kWT**y1E z$*qB>QYzXdI(a}Rh&@#Mk*zmP?lvJWuY*pj%`53H%s#I3Jm*HjZl$qJzm)}H0{%CK z`R8zKaJ(H$X6k%<#}d1trhXyoNIj)yaa zXb|!)8VmrouGi}D*v#BvE7Gp1x9tJMPm1TrJx=vAv$v3f-XR(zI-l?`I3ct*iKliU z)xYKQEPhK+SCn9KqB(}_cc1X=xDeSJXm>kUu1F`N6O$^-B}DuP6@w$o^u$ r#Vq zcYxVgSLc)RL`cAzXSl~zSyM`LgJ0K}Tv7rs$pYoW2Gda8-{oO7Rezn`hmcfFO0)`P ziN{zbq6z<_y!uZ?_5WICQHc57g7Z)T>#==y JQTRMTL95_$-HLg$SgWaGU z(Al?mef!YaH?o_ PovJWoh1>gr2=CegYAZr~BH{Ii_aShd2E?DJlO|QT1!V)IYT}SIFjo z3ZX`qTk$Vm<-~JiuS5Mx;|?G>x37WvxKZcs??Z}=)8u?8JNKmJaV|^z>d_`d?37F_ z3L5Ir#CCLk;qMacO`lqZ8>{brvC;Ia(><>15Oo9?fM%ujXpHB;9cQ}N&+ J6rCvP2 zB)uJ`9JsFSLqDWXIl_8AC{wiGqM>*mGEV?`aFWY8z4v1WI;zX>dCZm-fuQZpDZrza zXXi^aV`pKq8%|Y#rS7Tr{JE&-u|WVrSb+P>a-?+DO(YvynrtU*#XQbhRn~u07j|w3 zGy!1$rwPD0K%(zVIN6(cdACM&)Lh{b!pW$`N^c_aQCgY@9hb#lD#mCezm=duZ9X~9 zyPwJikbtHYhTmK-t}1;V p?)E$C2XrPP z;x5$b8)4@4FU{tFYT^lK#tpiBevinNaGS!L&C2|Sq0$kqy|TMC{Oo@+kF^j7%wrSu z@l)T~s7+Ja@wN4z1 nF91M6 zOb5u!2A~Lbji_9L(fQzh^R{fB7p!~dL_lmsDbVTMe20B&6?YsS;QZp51kW50xf1xX zLT(syWTWx2(H=_Nyr%i{z6o+g>X=KZlc{T}^MSyGAt&+FEO-={u@vKpxJ{$DO~2#U zQ@uc8{DY=bqSGuY 04cTygG6Q&m*c204mvU%Oo}b-$9j_v;$eb0gcc8xu3ZH_UoJ?y-fwq7Y9-Gfh z3=|AJzAF^2fnLwOi~j~!CJMRf91uQ j}C#X7q)+Ay+~RW zaA(>m=C`kFTBw9%70(=aO<@Fkv(|8D2NNY-far4pv}pomSGcFUE8({F*x`D-;_!-v z3y{k+pQ(Gm8N`L+m%i p4*WH^Z&WWXT>g0*E(pB?JZDC2w7MZ*BSXC5(rt>8V|-sx5RX1=OLj12 zW &gG`T7Sh6kkdV|JSHn%6#0LU#cf)0UjNC;?DbCE5JT z`!% k+D@=APdHktt0G*(R&?Wyh5J9O)CF*ofaAb4%%gB8-=8dny w>vtr*S zf`zBFmP)U;*VB%RGna{OVE|~UXK*!TZB;;!v63X3_B_^TM>%Apc%eRx*TCGhN_%8% z{k^T+Qzb!O4?MkSDr_FiAX2$4ykEU~KUR+ibpZi<44mtJ8mfJ+t>oug8}^zxT}7Q> za&Ipj=a}s~+nJsK;%SE~2R$pEG?R!W!ru#=x0_FU;TUYLw$F+0E}9G}LCxMvumH}e zX;&JUt%p~jwEHHiD=d-3jS@MQj8e-)l#L_sFh9hs0}nIqt<~`PJnOFX#Cm1phVrQ` z=3C!G16kOyScupOPd5<7o)6rIJWLg1kPn0G+ 4A`UdE#;dAn~A~i~~?EW$4zIrf5(lL%#lIWsKqW3PHBgu>n2`SAD! M^EfI45X%FynqWCar5CC zfFUy(hmuw5aC~$=#E5!W4s8YYFC)v4rE!zOe(yz CoV@U+l {X+EoLb<1jFe zULH4h6^`oW_MVEalyjAu(nd`rzGpPge-)n*>;L`-0Lr5~HPnWF=yqVr+j{&Pb619C zvZF^uYu#BSAqWJbd%WR2xcCg^annH*607i5v({Zkj4fAoAG)lwvv@{E1B&J!ZHpo-=5f{_kN hM&Sim5F0{bMl3wF2+DP3! ss|N1qa yY(= zs@&lU$QV%~VUn{IE&g ymOR1zm^c@=Qkm1fzFkdrV{3w-%cxX0jtRSVPkooHM#DlBQERgz zSL3DN+<;NTs)?}vN_<;WeB}e4-Y2V=4V^#Qg`H>va(I?snc)b@+sOI317WMxa>VvZ zA9DVWZ#;KE4_(POwC*NwV0K1SRO|+5cLE{m5w<7Wn7*U3O$u*3ufdSkc|-XF&rgin zGKL_k6fY`R-Zoq(e5EqA^OSox6t(%1BXRTAVs&wUp8fBPj_|9VmL5G{TJ&e+p0H(x zLTB1DAxl%Y#0dN73ZM5t-8- fzab(v0qG!^PE{@3SYbkq?F{gkone9v((y zLs*hFQ<-eHGjl(lEY_>o;GX$OVHs!W$|odNf!yoIq+#D*`qlsS0qZ>bEuS-F+&!Q^ zMS^&j)rn Q^ND z)75z@k5m_GnxZQh`z|rVAC8Dc5t!@(;6V4o``NS`;F&_D>BJdKt~DmOprcdcE-R0f zfj_>ll$*EhLMnZB{G9ife<{({R-3b66}+;qV3#imyH 69PMshCEvL*Gv@{ zskmz3fdY;wGH(L1B_+`OFf3Cj*c_{JWcbDV)7018crbhcO7&IjkSky>xx(xoAy~IL zK_0%YpKEih@dzC|RPZaW=$9~#G|N*8>Uq|4PcjRxGK(=@nvoJJWK&S(sMD-DA+fcM zA43ZUyOpI({d6i)RS}PeURJkoY%|d >^#@%|z&2m@u