From 293b15a309ded4509d4c9046659f6a377b89c6ff Mon Sep 17 00:00:00 2001 From: impact-eintr Date: Thu, 2 Sep 2021 21:48:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=AA=E9=9A=BE=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- img/链路层数据帧.png | Bin 0 -> 57065 bytes tcpip/header/eth.go | 38 +++++++++++++++ tcpip/link/README.md | 10 ++++ tcpip/link/rawfile/blockingpoll_unsafe.go | 12 +++++ tcpip/link/rawfile/errors.go | 2 +- tcpip/link/rawfile/rawfile_unsafe.go | 42 ++++++++++++++++- tcpip/link/tap1/main.go | 15 ++++-- tcpip/link/tap2/main.go | 32 +++++++++++++ tcpip/tcpip.go | 54 +++++++++++++++++++++- 9 files changed, 196 insertions(+), 9 deletions(-) create mode 100644 img/链路层数据帧.png create mode 100644 tcpip/header/eth.go create mode 100644 tcpip/link/rawfile/blockingpoll_unsafe.go create mode 100644 tcpip/link/tap2/main.go diff --git a/img/链路层数据帧.png b/img/链路层数据帧.png new file mode 100644 index 0000000000000000000000000000000000000000..ac3e52dd685ef2b62ef30706a8382c9bb359dcc8 GIT binary patch literal 57065 zcmeFZcQl;c-#4lYqD2tB6A>nQ^d1o{i7-0R8GZCF5+x#t=siU5ZFJGgXwkczT=zR#s)l+i>sv6xyd2at)_s74<{uWE4A|z^}c~%pGRnOpSa>yF{C#F zy+*0(OnT%Wu?>Iwg~pWJD`L=V@2sZjT-(OZ!;a>Rk7h<4!lHyLtw~SG6`4$g%Hs*K z1uf$#MA0yLL$PV;SBIh$%`MeKiY&0FpPYzEZQkxDif+fWD=}D@^WZb#;{RNJI#_gD zNqehTQE4UzO=x>T_EOe#RRoTV6Om9E6zHLp&yRi+CCFq%dHC?udG|q&>Wo>2hhq4_QY|aZp+O7b6){OzSTn zLVN8#nmlAKcD%1|W{fSSM=~3q5eG)miS#VheW-oCrfvHqJ}Xoe*BQr1l-K968okuBmx+{G zzbHG2yCP#lp(sP9# zzxy6J(vT2gNHZFvQ`zPli}s+k#iiBLpDRz3-G45PF@nx8MQ9WJg7t}){5}=IVXINp zxwNSGpwVwQuIKApbL~Q(nLq&rhcpv;_KgoIgl*Ck*W4Ok9uN-2p`}Sj?B`C`J)3ws zwdyOiscj=CYC^&r_2|`ocHI@PTH)QWkoH`V?blkGUCD=&!rro!nGyR5jzPm}wfw5u zj2BGK6rpH4&$|A!Zoh3AB7y}NraJl05nP5eJF%DGZts^nvP;e34({BqUhIBCGkC7Y zjqCenoAa?bR%g7)i78frP{Clk;cDzil@y8G= zc5~5%wicIe2P5EMH+k?_Q2(?L?fFDstkU6kQT-c6v?s5Fj6U-``{*4{-rqx7i>CgE z;KMHu66|H^2MPGdrvb=!7#0B{#!Qc~I*rM-ar=I0m0@mUc(=;D#-(oMbR^QpDgJ{~ zi#z#>!vo!`Rcttt@g80#%YAuDUfF(9y$(_*xyEQlR@yL`Z&43f=}4LQ%!n%PalUvJ z#b+k=Hsbm#t%4d8Wwg*L(c!(#7lth9ukZiN)XhV;3H&NE|5{4meuP|Z#-_yO5QIyUV@cUvx&{fD@doKX;swN!+Wq--yYf@Ivr{rYB)m}~eyV@A}+Gj!iJ|yp%vnukcCo@VjbTc%fsrE8wKRHIBn_L^?$D_v~$HWEq z$A1^tYNl=Zj609(ju#ey#vj|P+xXdNj317_8Yjv(c!PYCo2QqDn+F|3Xtw-Z z$ZZ{V91b1nnb0mN*IW6~#jpA;=aWSgyE?RdooHY*iSGWF_kH(_9jU?}#eS*$qQ?Cr z?k9yFmt3JXq*N zo+eQxDkKc>7Vv#X}r7VIMlM#L*UA8KR3FD@Nkry_5w&~_Z*8W2>qwgE#0_B3*A&NALC8l*Nt{n9m zWurd1Ub$dXyY9nodn)hQ#3kCL#*Vt)i}3Km@DB5IWmsV%< z4mFQx5U%$>c0A}gdA@M~%T2Y+LD&yjt~~8N=+^v-+~+%3_OLs%IkWK0^>8?{KjS@J zI)8UAekypfcCmZxyJfi(zXa>v``Oae(s3JldxaJmP>0TeS^g{P*NHqgrU%YspNmE+z}L{tN9F+f`HZ<$KH5 zD_ULi;jqu~ox*H+Y$|GbY98s2612ZfNjmj+)RBQWHreoEwqlfe@p{E#uGq0vb%pbx z6-TRWy~4TLYKbCi%kP@ePxtdXBEQ2sVQil8kW_r#77y~;A;}FeS*b#@J!b~Gx zQ_*id-DPeR?x7I>c_&;sTndEXX*n)zFQxIL(~hqBVg3`|$6Xj&C|_t_a;no*D4)gJ zl5MKmku+0XRILD6EJ?1}HQAgRDMsca&5^UhA06@*t!kXcyN1j^RM4#5tX&CjI_TDH zqAV8H3-x?p+p{)h)gH)PyEZ!*EX207xGeASyv$rQEUS<&^YGfizD09yY*wf7NI5pI zz!%(K!arUzKHhNRURoprF%z8kX5X`(r>TYcrO!9-TqRzG69-^cU=I1KU!c}o%Ysxx z=7@I0Z2de&NxPzd=w`cV**TjV5h~t1LMduyIhkJY?wE2#YD9u0 zB^{Y>debyEb48PK1n0#h4vtUw$p))Z2*tdY^!MvV5valR+CQ$D2S2(yv*PD? z#tq!+^k=u{d{)&FQjt})Rbz%uO>Y;s7G{QpN_NgQ(+hJ;unooBQ+-i~5j`|^!Yd97 z&4L$NS9S|KmhKh1jrGayu-kb)SjW z(t*-mru*#b&nfIZ@wGXwx=dWD?AraaJAsHvb8jYT+1TT}R$eJp1r;08-^`xvtuKT% zrIxam;uwPbv#xTscBWvezQ28m7tLFc{zk_#XYD1C_6$S*uda`){JShi5QIiWEdoA- zS6=>%-p11X(T)!l(eDcha1#bhYN8Ft{F%-qN84gun^$29J(SF6+)vl`^w$U_K+|kS z>j0rK(x$zs`DH82iHsd`sM?OVQj_={uMD+u@YTN_w_Oq^OuB06q>|BNDfV=_E@udzF4UK~B?iXF@ zE$coS8hV=bJ8c(jRTWWF2RokkW)3FiJRWwAz}skO;vS;Ft)02cdqxjCTYIRehXnIq zZ-@f-caK5LjDNl20+C?WR(;JV=iqG4D99tg^Nd*%pOKMK+}X@R^sW4h{~8YbCBbav z;^HU@0=c`p^SJZ#I5=B^ctu1+K+pI!5dGv3Yn-o(MxMS_|6ZlVAF`464u9@hV7C41<9u>~*)y88yi%kvEM-*W>)#qXYq zzP9!-x7C)nwllYf0&7U}3O*AO|7*bi{q+=(mn6P8=)YwziO;|&IS8nO)>>Zu9q@^9ryD?X)WGHOe?IT-KddoKzN>$_M*dpLP-6O1rt=Rg%xJ!Q5DtvkIAijewkC%Be@8AVl ze8N?de9WBw%D0ZW4z@`Ybtl_r95S-Tum_=#hn?gKBoC+GYX`qi*z`-+n9r@RZ}3Xq z{7{l+~;;NO_w-@x$S!0_Mf;Que# zL4EbFUxAow-;{ZxAtiO}jv<1Oi5@!lIi?U==TKUo{nn8z#mFkxnyRXvP*RrFvUZ}F zl}IT=p8Aa+Rhx}6K$i4GCSb*aZ5w+FNW|uWdpq|jxGl?FVk&KkmFBrlmH6!a2cPSM zZndu?iF~hg*3-OqqZgXI;eojHkF#Dx^y!Y7y*gX)E{!>x^Sjy^fjKM|c|HmZAO%uj z=&&7j^YKqm@A2m7{EktXao`^Mcxq-i$i8+7r|z(iEA{Pl^HZ%NZ6;M!)xl$qbf32> zs7FBB8~EzMpIRLy@1S~s3_$|N#^UuRcn#BCuIQrhOTd{{z$!|w;{uTmV!tM`3GFm_ ztD&*-&_UKChR&Qwk=E&Be~QQ`mEC%zJab~@K0Uf3fO^ETFmjKzSnz59Ceh2;8#qsc zihbijSC!M67ZlD7>wz_&aC2;*i8*$!IEB5)8r%{U6`h-0)0JAgOCk-(|I|)v%ET!G zBKu7C$3riL4Ei5>q|nJ+(p@KX4*vuZ=h!tG1$9?ZiC%QkbhH3c;j`#ZDEg)negPel z0GG7fc-1X`=Bmiy$3W+jCUIapZ&1bV540OE&>WeVSRXUp|I_*w42EfLnb|YdpUyz$ zUAc{#^@HzIEjNQE!#@#F_HF#mTH9|Yjz^?<^Au`-IDh)!1t21N^smXxw8BR|(g`2Y zFw9AxbtlGhf&025Xi^U^k2lGBJWWdaoYRt&gAV}3{+b}4ibE{uxhs!OPAn|&z~i`~ zibQmx0)@#2?mvdYOL+D)vcxR=Rp;sv)UP-g`~3{zU%nRKr2atL@6j#+ysz zH!e^GAqa07o^P0HPTB!R_z@0hC4%@{xDqWe`(<3ZzEGuJmYWjw6GdGu2$n(Lf0pM6w>HOC~dp%Fos># z8A`e5)l{k~#P4(N$jd#}WI%*~L*t(6Fjra(JXqPZ^RaG@hb{Vf!_IwLIInXOu?bM@ z<4nFOT<{LRc@n+to8{B4*jM=es9`pjG0K@DYcQ$K*|3?GbBru3Q)A4I53n)mDp<)!zujxdv#uWwU>+L5m%wP+H_Y_exnP0eNSfq}uoF{`oH!+SP8K9U(bO^kUb zo^aIfNI%wfd*R?+z)}}|&rm{(&U^84>+MQSC=_1irTF@!&$1i-|(eZ5ZGuSM6nU30)J*9T+e;f>-r;^nq$MW8rO|& zquB^m3lfL=%&U#8$ZY@Ho54@m4nc2@E}mTsmNe{c>C~fKX&p73SgIl0r_)9Vwp@p)$~goMJ5KUd&~eGbgjHe)6%l01B1k54y5 zuUORJnF8hv!B{|JTJ+2l{`mN$v6u@Hb5T>mwFV%VdYtt=#@B=xHSbgKJnXD&3=yKi zxW2ooLt}oF*23(&wnFke4?B`~dda^vd|LC&bl(?)Q`QgL<|LmaTr|mnmdRI1 zOR!A)&NsEgQ$@drInXry65!Xh+F;gd50CGC8&;x}fAf7Bp`z~tj_ZO3S3J5^FC}j; zhQjmXi}ftr#XjMmCT(@1Q}LR}PcWaN|N1mnL188jBV!ERb8GOKbtr?CR=Of5lop$P z;f9VDPXRq-#P<_{lW7djW#*A|z-*s*o6MoyC-wGc~&nu$Xpz>DA%gQ!s~2 zjj!$Wsj$2_LK|1+sgpmQb&x_-r%oicOtgyIy7hiz`(g0V{N%_UJ`g*7j#@8+Pqp~L zFC!|Cj$qzEVcdNP)vOAex%z2AY_T55pe}`~(f~onM`$0NE&AV9jE!DT@e+4DYpuf@ zJ|bLyf~=l2Ocqkk2P^MTn&~o`dzcpYy?&?wxaA(K=k{*)Ax?AKDKyGV0n+c$XLX0> zc=KVkl!lDmv?;mk0q^h50A91B?|D`c#y73lhHe|Ay4Opj-{-5`FABr8e z41V}kalgJiFJ+4=3*0B-`G9~1$5olDhE~bKz3U0nF3&UX5>HWn!-h)uY*Zz`d4)b@+)P6zPU=Dah`U0RD(Qip&W`S#W_9TU z3%W>k=!TFuC^qxtk2+ z^t8b7XK_Yb5DlX%X}!vb1(boU&cbCfU*Adk31*AK z=V5tDu-s7J2)ll3n7p%ZAMg3d!4fxSE#YZT^1#&OjCW8&TD*~;h~b8Nm|eCK$>Ma= zn^gE;!B+7`ao_dZBZyKq>`NVPZHE7<8GY4|)a|u2YWtLORCm-bnzRGAUimR?;AhIR zZbI)5y-xgRJS(+{v%#Ez&IHkqR_5qK0KS97Hv*5wGCpxKpkozi{_^f06nC#dgs*Gw zQa%UI)WN0|J8=%!kE<6oEvTTplVVd{es1)8$Fe*N&MNJ4dcoyF0I&jj>4)rfqUlj; zgk<3CU4F)!+>zw6SjgB?sf*>1CNc87%HD#kqTa&Y1t+iCS$cxNyn9zM2C@o&t#WQ31R3>>pu?}5y687* zd0k%!_lAQ`tLMLF(7aopS@$`qy0V3=s$6WfR`osj^S=19H10hTf6f`seOT<^3)jgv z6dAbqMJQ3Gtg0HpZ^TKgB1rs(mw2m;7_S%Rx*o{9-aBn{a~MB=nGo{%A@$76%<8DR zlxx}_yYwf9R#am1_AP0T9{SYA`)a@BJ(@YZ2uH&h=P-_>v4B6f=jmw(60u)jd(RBy zH?qG{xcqjZ>CpHw62t$5{%hEX{GV35AOI==A%rmaX{$-0TrA%=d2=F{vH`aHGh`ag zZgN1AbuiE2JkJ2D<|P31hJ>e6wYJ-J=dtk{69lZkiJ$)oS{|UL;L(4){(jYBA9_HM z|2qenBU7oN1~>}h@KnG**uv)B7Bts<><&|8f^bAePui+!Jy)X#<*cDRQ7L6En{PSz z`DP9K{=fz<;$T<(m#fL~*7GkjDoO}mC+{*Em*8wk@gk(4qe_$JJ^7Rv~aQl@=?)trVKLTJ1 z^&+tCSMCBSxmwHgIcfk*+F|7QJ0xQ#G;E`Ayqm4okKn9*PP+!%yo>$deq%i_nyHUrscY)-grF3v(m0cP3Cq-g|f%b9euU3=BnQ(?GZ^CMpfvf|NMPD z@GtL^=_)TETNL4X=J-cir@^gwgEBA0ZN^#zQAu_jw4+Zt9#rs!R^;vF3DS~d?fPmx z+2M1YGX$rJ8-9_z=bs~3KxHwQ!kKDKYF=6b$&e2}_Ze1^LqosAjb*hbUz2wgKTzId zEF=H#oVt=7dVK+;az|+}ih>7-{7)YfzTV}x27iKS?4!6!8%H>MRx#FF`de>qgjaUN z?=pJv{a=`aMQfsGLW?ZPLUw)nO;^p}QbXr{-tOAHqo%UrLcyXqu98~j#Uce&Js<`V z5EK+SO4{S#PiQ&aMYD5x3^+-rt}E2g+!ElmyhUOJLfzw#TZjJFD-5X%_yWJ;=-j4S z9jbL!a@5mzzwlojoUcTJJa9ksLMga)Sy#Fu$SRxP;_RJT*Yd2-F)kXP>F^${bA?!I zvS%=`0FA3rGo~@Lg&&tIxEJtPu+q;Hio6 zH5*d@vw3$houFRX#-IUX{9;4}oCg|rR-fox4`3-zXJZY|I!{PO$XmS*J%S@o6X{?0 z*|*`9rWfJTzcAK~?TB8j|4D@mbH(n;i1+AuZrfRV3G#zA`$U_+GcJtvJ}19?@Dzg0 zc^{~cybV~%=?E85gU%K8M1o>v8Q)>()z~@>$qaZVc(xSd0A$9BBNfmB%kUG*#$3w3 zA*DvwKEw1Vpsl0*$(}`}*-(c{knNuo5Y4k$djx!(J954>r#$`QD_p!~ki2YmZQH1_ z$Vlt=_?q2C=S}r2jhTfR^6e`U2O3-|mRZ+G?vR#wy#U5$@4Z{QniHWfLbz;4KM}$S zxrVbr-s|x{7Ozw3z?@Q!UxGw9pMjMJ;&bNRjwWe4r~qj6CIE7To6KKMmEO0>#z@k8 zuYLuStO4HYHu^-Pg9cf_9pph)mAuHdE(KlKuP*f+7=ZHaJ$h^s zlkl?-+xZq=bVz7SiS!htPG@1o{?&oSv<7M@Hp=diJL z=x4r84aSpcEDo9+Z{~5alr7mY@j1cYFVjLzwwBpptq&w~n09}41(!&e0@yweL{a0l zjT1>ao7V>{EZHBe=49Qw1&ts11MIMN=R#-=PR~xQ7uk=~_$}3@;X_ZKfk~tw6Hj$2 zEh2zaLd9*)NzvNY)`j>m(HtnWVbzxcI>X)_MAUA+-N!)3>SKLvEhCP|H=ikg2qdZZ zJg^!Oqlrv4mO_Z1?hF0aGG-JDWx`P3x&=%7AkGya7jnHh((BR}_d6K}cVeB^1)m@% z;fCHju@sH7p5fNd?qd6Td{i|hU1O_9rn#ute1k(HlAn^E-e+HC8mK^;0}1!wB2b}p zcN2UHUIU6Tn$1D&6`t#gT@~i=l){qrKIHkq3Z^x-eY5f+rn z16!z-pb7>PNx z(2z^&o0fXKw`kL}OaB{$|6Dj>&Q}1n4+afSC+j|( zSCocg6zT%XDsTtU#B=Tg9t6Ibo1P{z<*7F6ofykeKwJjBZf6;unvim9dxH_8v%g_8FHKI63(o*`xmq%}`NOM@C*rZ9) z71}~=D4u~oLTqd*gx)aR<675ReS2jBf07qU3Ph!Kb1tK*gDE+ZdZwug@4|KN8kURz zKyQBfMINY=_VN5WsM*eb7z*f}@wEbm-+Xr>#i6?7MfPZ+>~Qkd&eaX91y!u?@>@Zs z^xI(}(A3n7@BSqDyV0+?w-z{1v6xNuqVKZ>hw=Jz?~WW};tjoeb#8gPX*K3#`#%Ab z+R6co&61>RvII!O9{ll`Ep`*80Rk&vwGRP!ZAN|<=GHbg&J`(k2l^7D5`#Ia$!5zP zVR{nEPXa&daA^bUeQ+nz1l;uBcM;ud0UE{5&zST8^#TI?o6GA~z`n>Ep?TE*@Irv} zInb!o-aM)53@!bWDmVU*4PR{_pj+z3w};|yiMS)|T^T?s_8x6P@ZV7R z7v&^=K+D$to?Oj8aVwqi0U(vj1Myn$A4%OOAn6G4XQ;sbdvO2@kv|1O{Z_G%g1@Tc ze@E{}BcOTh`YMY1AKT0Fi~&;d7ew9>{)1wq8Lt7kFD-`HqW`1Zu>n%S`-7P_|48Z* zCD6uqD``gXk8*$VuZjF$HSn*A{NK06{~HsL9>+R3S|1>|T`>M^J0t6er5dyw23J=&}=S0AmeLDFQV2sV( z7z=O(6EKGFZp_ZJ0sxLP@Aesr#|#swYG&WzW%CMvGd{R)BmmN>f%gigV{PwY-212k z0E3y>mo1>Uy#YXxTnoW88WzdDd;r=$?L7w|VNvECF%VC^0D#-Zjg965z$H+fB%UV9 zst1Ip#RlGsB2rPNr z5Jd>Ua1>Db1E1fC;9qwB)y}`h_W$ADDQYIPdc;!k-f*%8ay;pBA;`>SI9?IwUi>uf z1tTM{jRTC~nonhX>R7qTQ-atk&NMHv4}v?u*Ggvd1fEZ(A4d;ezhORX?vV0(xeRyl z3m(A^)@O>IIeB0tl^X!#_NtO6x(t%{Iw1+Oi#iuu9P<^NRJ(uUFwYvceJm0kN34)^ z%XCnEA<5DT&YhVAuwutMVF&r;mwlEO{7sYT;b|ZDVd)xOMW!*+o4T#$V?u>zi_16F5F!(VuY*tm5^Ph+-A*`%0!(jfOxPHcbLJf57fe})@$7(+O;s)6tAt^f(Y&V06)MW^KPxa`H=*jGLUv&gZV6t)7 zw(%v|BT#g^ABYrXPiY-{euVqV2Rd_~8IygJxI{fQoF$CGu)g2YHBpy;5#M0_Xc}(z zaOtW>=Iq3fBiz=I`+#sr>AH!=#}ZC0vW*`0l`j6#ypW#BZR0Zt#f$Ii095FP&0ub!aE&`_4;QB@T9}zPDhSb!ZfmWaguu zMG|v$Tc)35!Fq6Yzclt{hu726HRP#7B+{q8f3setNhil3UMI2oOX6Ect8H#~+R+S3 zW-+sYBvt43A_~qNgVDTl%vE7rF|J8D-*6Q_D}y(1@*-k>EWkT3Ja&MAe1?A!tZkqV z9Cm!bH49hF0^jcSuBM(kbv@N{ZW6EG791K2S}VLVWR?>iitb)S)jgfoV)8hClvs7< z`GYr(J~+Pji!dnGQ{U)#o5Rpe3t+a=`Dr}Z_?98`X|sWu&TvXL+@+GrZz}GEG# z->1A!m3wld{DhTUTJXZ~AUR6gCk&VU9eLLnX|H|9Qy(OILoc@_K+zkS2)1r(^a3K^9`OIX=xTJP6@*=9+9pXgINs49WgYhY;F2kO@VfgR}dYgF}%r@ZMbsv>>Omxy@wzY|3J2-k3bQvO$=ODYpMRfppogd{OG%ONXekujERDg}># zz598Zd>kCTpt1U)Jl&n>witQ)*xhem+J*+w{CIH+X}ifXz;_fuU{-R48rCDC^A6u0 zZQv2vX4C{>x8+BC6@flBm6*~d%*D{dZdCcR@ci_S=7AvyP-K?yVA{1X;9~Z&T~E>u#Cs6=(WwN( zT^Xw2oQlNJyLNOq_>C^w_4d#_-lrwV~ho zlwG3EhCY^I<5N`7v23VAUWv>#in@b%xHG=FQa7jZd#&lx!zO7y9Z=LcPYgseab>>3 zluuP}c`^F;11YH6)dJzN-pO*GoW6cJPwY)RWAn(_>rf;ZTI=IFL||@pSZJ~`lkYtA zf#U(qJLnIb14}ECmNyp7A`0v5G~!>VF1Qkhp9|Fe9^mueOgBHxRqwgPxWD3Fr%1F1 zX}`kYZ-|*SKTWoT(;A$qvG}ue3k$spNn05-I=?l0al|1yc~8XtI-;V|LXUvbkVn0k zcjXbuMm-P{PZDx6$^H2g!sa#C92Q-Atzt5|MQe@hgGGSrJ>xTuwnq>WFo>|JC# z?HQlh($^az9?!ULlYdR`uP=8zDZ%8`W#im(f_0z{L0(ac&qoOQsQ-vp|E)0VdY$EE zQV2?&pqKnvjl9_Y+Kt5i$V4r+vA3U|y3S9QMY7QdP=MH}>HCItAj9vitK{z-e)_7S zXHL_oBLnPc3K7U?QehVRGPY7jpJ5sM;JeN3emctF2Rugbwvc=7$W`-)tGIlFA}``3 zx!U_1LK&IXLHI4TST{TKwu89_1dTf`aWYHPZG!5pt4!~C8)g*ugI;}|1T~3}Riz)P z9aoF2c0ZWcL>eTo%vS7Zgn^pDw?|dZeI*gK6n>fYG;zoX(lq-Ia|G;u@bjW}_wRZ& zHC6tGdNY=8VJi($U#nz%deckwvH2v^0Zt@S?Zk_lwfubMq^C>$E3g~1EH@in4`oXw zoxhQFz%d{w_DR$LdS4MOvmHk|O7RNkKM_irDg>p+vmA`8kQO2^P)P-Phqv~6z zST?L`ky&`I;Z<5CS@?|}7c7?ssAX)|@6dd%hNtJg+ZL}= zw_Ls`2n`a=EErCQ-0hJ z{sv61q_5|1@!>pUKtrZc*oWJzIF;~~w{@A%uu^>zbDOm~jQ!xO+TmP%ox(tZKZ}Ny zBmVPHi##T>CH`IT7Z3TM{qlVC&xAh})#Eq5dS$i|6(0X+pYx%l+x~J|T4S%heA!*1Zvqp`P+p#+ch$h21{ntq)a z!u8L2Q$n9>5V~3RzVpS!ct7D`8;%{hp>df^MXKFWA=lb+of<;O?Okh2!w&CjdvV5b zzKZkLq7uI*gFc8CakuSp9S5}*zj>EKEAbNaI-7w(ubRR4Hv##H1pkMN6K>}VQ>60( zp)t1)axZv|d9Sfdw!{PE#LKeBXD>m}=m;Mq?@%;P?+ShTI}R1ryh*l3+Ck}9JlqSU z@Aaky`MRz#tBn%P*}vUQv=4jLR}W&dRvVj!CY;#MZ%V3&Zxd-H9*;k`>2wE0fkizj zZPa)CZ+u2?eXeNhAiG1Ioa_Y#OByr=1ba1>a*k>W;I?@OJ(+cZbEK z?V&Wr1?*)79Uw4<_bI*C$~ct`y9qhHEg2ABhV6143^lR-cB1ZR@lNl6G=Ja7$uVtq zJ9ADkXuF^hF={BJDp9mjrxdd0e|VCkbQPMub4<#RUP5f+Yi?-62~%jCKw1<}CXKN! zg0CRRo3NSsbc%y!@h{s+fH6&8V;ChdN?MtylkDLcg&RWhWj4zSPu^$F(0Y}f22Qld zfV04#7cXOPRD%WI?4VaPzgdPmOzdhs2(&dbYWh4Uby2w#WBowb{YH_j_1ilCWxW=r z_0FRVx8j=B=6*9F>mVA|*>XD&M3@6H?XGZr;<9OiI3=jq5jZQ&9d8j+D|H;Ymer!0 z@3jWGG^O(r+m=fu9{=c6Y#F_+Vr!o7N~{06bep3NmSU_nODkKf-Y;ySiE}_PO7dwn zv{2=6Jhm9t(k+L%+$Lv^4S`KKZx)q+=tiy0Zml!P%_<5h1?Etfs(GcwARymtcNsc4 zF%%DB*xNLKAAes=8Gme1QDr}3|0>D+eY9(}Oof+_QPU^4s~&rbmFqg={nup&KZBy;sa|cnZ`Z)qVs6L zS9bDnas7&}e#RRw2d<`9KKto|}kSHd|dTm|fH*X5o=*(K4n z|KZ7-nR<;YO27Sx+wbER*|}V_vlxqCYJv!tXOnXKZhg+>odskXPnH}!?<@>Cy`wC) z9seMIQj2AM_pH3zD&vOOZmLFynXH*J8hz%uS@9{&ZEif9Pt9r=ZN zt-XX>_b@}}V7UbH3`CH`3%%ca!m@B6GjfCem{qQ` z+i!~B{+M>|f|$ol#aAl(=^T(EobghdNf1(;yTFxR*ypsLAszbez@WoJceO#`9D91V zV>KMTWul&8voXxSKwX)k#$nmDocqu{h5h$$F*X9dOmLO@D5(F~PFZcNAE_Tkf0MeZ z2aRt9yIfJ!#JKZRX7)Z`C4oC@-w4kIA0Gb5HM`vXw=XoKuDx? zg3dwy??Y3vi?b(_IOY`~W&yL@$|{l*aib?f>2A8gia$eYa9TDZkqX{9Dl~J>5~h{| z+U%3uoO4MFI`Rwxq63mv0y@DCQ9GPc2Yk%&sbj2)i98;Xv-;w(*t@U6FR`F?ida z=aqX;`>0lr??4zf-ZHmw?ahOZ5Qx8~i(Pee*G-Vy2z|GZO?yN{MLCNr>FBC}81e0o zW9_RijpG%sh~KBjm@3jU3wniYHGXP|jr2}uRfNC<2&C#X3?b7Qi&Uo`1$wmkvGrCA zn;NrPP5cKL<8OHvCgTpj*>XC>?F@gMt0LsJ;})&*FG(`Pl!tQo6blV|gBxlS zZK(OS-g_R3Q8(r;qHn46T&CaPw73_@4<>#~82K@-;ZySS|Mq z_Q8qQK>&InA5c+^C*=?Qac?>3^-0_&-ZH}Ir$J3)9!g4dON))(IG-`7>TJ{*lv-8A zJ`gS4;jFuOAJ%lLQJM2W&g@!>Z6vSw%v5(VVdA%sFga<5;_1X1&X)6FyA?>?PWcUL z&i@T_h!F=VhrsBLm%^1M$YtECC-uQR|1{r%=hW8GgK52n>doTW`I_GH@Z;aci(^K6 z@=@z-m-VH)dnXV4FIXkehs&;Clf@-d9OQ@d*?TOW<{0K#$Gsd~@G76T1)J=e{N<~&I7Rg>L{*PK@t@M`D%hN>{BlVKWx5`Zlup74 z+n@X|2qHAX(p=R^+?4fNH)~28>Tx6Z-dZC{o1w<5Re8sGi4v!m6t!GYqX{$cj}o|_ z7u)(Z->_f%eKYh2Uo8*&nRvNw4g}6}RW{*ns9j<(%DQFQ?mcQgtTE$oy&yILKlM$; ztgqy85EiQ8(ed{lgQF~o96y|2G3fGW@Hg`%yHPQ^(-jC&5znxN4t=}ddGEvd>+PJ^ z?h)-zE*mw0+hrI>1 zfgCoqA(qvTsYLO*C<{;TCD3Z|fa@jd*~`n5ZO(8lNhY}%gHe)>+~0@n|EVrEn3tQf zI%n3!82GQ+kC4@zQiM(J6mc(+x8uR=h%yP+DSWew$GjnbiV==YCs@!;zUXK%%F>z* z$*}p8n2zgNqbJcQcURqxaL-=__rLYGcoUk7}K1d^USty>-cI$}iLISy zD%HJQeAULo8Udrz?;TgZGR#c^y+AX(cYI~$?V$f}t;O~#{hhCfSPbHqRBom6-Mh(o zK`=Hi3)IMh@Ybj3%3~o|a`j1GV#fRgZ3%IQs=1UkG~%;@6w@%v6@9i4iraAm9n-Aw2Im>~0B9m^onSQFwZSy{r1z^Vn5K0Uc$uCf;{`3A z%Ov)hSL?1S)dq2(l=M8-AGy(pN!yD*C!M*fF+4NiVebA~9Pi3t_l+_oqv3`9b4cj6 zy^!!8$)q1LzSp-{=qcsJ`GBDFPyw}wbGIm!@DDYd=SxlgOnx%g^7C$^Xc93kINGAnd=)X=-_KxF8ivho1)ZqUiOg^H^Ftv}j@IIS9HWknzDGa=-+R z$A~}1%En+s_j)N__q%`Ka=7t-{6>3+D75dnfMsh&bM26 z+$_TsPJbKEUb}HV?AXhg@7r#S(a46rd0%bllGh;HU@0P2o@72F*e?dVC>i0zknX7et`VMRIZx8&B1Dl*0P z%^oQ;-JF^zS)38hywhfIvJxgCmZ!~zyXLxnupn_%MmU3&Y=T$p7|RE{u(oY{cpV(27kU}RcqF9jBD3>av+#!M zM@yka3ry#7lej4S6d8M^`;*;R84T;ih0m-`f7&@Dx3hC7DL%(O$iGAsB+`{qqSNcL zN7_kA=Oj@aP*G~k0kLjM^Z7da4xXqhZ;rbh@n+Ne82#JQfy;ru*GfRL99tz^P{$(% zUurO9TA{hLbTG56EYd$KXskK@U+jHlSd?4Wu+oa83QC8BASERrC5?oN(%ncYHS`Fm zptO`yqf#Ob35zCm70Gt@p}l9uM+1g$jY}f_A=@#EN28T1=f*oQFNU-M)(K z92}?p)QBZ$(L$o%ZaV;5)FN`%NqI@RmRCGy`-r`Ribo8WU|@YNt3KLLpPR*pJ~DQU zF`0#n>z^0>&Av~(Y6MG;!XI=D?rt6pjEAgKiW_(@1{oKHh!%CTf|q7^6p*WfUiEi4 z&Hz$9bFahXnsTs=B<`m+a6{s-C+&z&JBD_0-PByZ*zA$JV2RK4W`@ zWFzB&la^?;BwcgtHs@f?gODkTFOhU+ANHk$AO)WTrgDr{>PxK_jey} z;fEbwDg4SI-ro!lY!JUA@^Um4^^VbJ{iySE4a%2YA;XisR($6p1wb}eLiNrKjTn>& zp;Q?fWa4@^W0H_2c~f!>Rm0ru%E+I@ZVDV7K3xPHEHTt9@=(RP8gLeu1e%$dQ_K1% zu-Kc<*gya3#|AUcQb30}qL&I)vP3N^Un~wCLfZ$7f*ytj2PUmM2^8C4nl+?qQNZE< zX%AZkf8RWFStB#*)n3ths7}^<@=L4=q24LxTOx3?cOQ4GYNxjy8?Fj9XOY%zDNc07 zxI2K?IU^RZee!wJ)rR_lW)X*Zfv#H#fn$0i{G$%^6}fKM@T2@zQyCqwtB?uffCuZ` z`1!&#^AMki&Ev0FT+O4M!NA0`lH)>g2W*G^n{3GMqOuPG04vT;95~6)#FCLm1dBiY2o=8-Jw3|s2+a(z{fD@NXuM1$~`&=kc&V>Dkfipd;)q%BTR8Rl?nyNTQ57S zwi}ZGGP0gi29~`vt(oD}-8Wov)PYdftSG1Uu?@3x|w&TGU3ln;9*D&le+MTt2iOu`1W2)Y)^0Xtdy~Awn z9hFGm^i_s7hVh)VgNN@+K*K$QwLEFCfum?8J|Gd5I|r*`;Etj(t!-A4tdN!B@49eL zeA#e2I-(UeE*eAMKnl1f8$3D@ELz|Ky1-?Yiz#Z$fr;iiL`Guok zG~xRwg-_Pe{+K9Kf2fF`P56;*UUf_G{dZn_95ODEY~upv>;f35>aUEe^b>~|sPS<1 zQRHI&0dZgk-pU6-@$@3MJdLZbS=z`?_i>}+1IL&9%!@H?!^dPb293Sf_}ra5K8*d| zycn2paia`iwx96L#g*vG?^XI1DqK1cS*3X)f9JRZ{$o|d$}FfQP3GK%7Bh2o}%KJe-^@wQ_r^sWILZ|E4Ls_$kZAbJ3k`W6#nv;xzWY9Io&#bb^)Wb`qrL5S3agR+lZfMYYqL0ihfe^M6 z=!fj5Zq)eL#=6GYo4N>l+_B@pMYWO)$M9OM+MSkeIxEGOGGsL#0@ zT;f~DYXYNBv-cyp323Fbn!vg|PzRK2zW8a$l{LGFDT`{3(K#B~0)6)~?$!5pcfT}* z&4>&Qqb?<=E8_Oyq_oU@0miyd-&PK7+&?O*>%BE1(H2;co&70I+Waq+mN8TA zYxcAdy541Tnu`K=fE6~EpUROSoxFPY^l^Q0siRKEK}!dF>Qx9<3-v~e>fn2+BPQAt ztYW#HsY0^`j?=jkka^)iDq+Nf6%~X_ub&#)V?B~bV?KpsrW6nCb`dQ0V(NZa;u-~$ zKnhAT$K=}~%zDWU7@D*$p`La@*J-^Q1rrilFs+Q|h&eT*j-;YDQS{G-sUwOW6^T|)qyYc0Ql%1G&Wj)`vS*3zkp`Wgu zX{GCYs}o8ZOs`U>!0OlIT?Gx4|LN!KdZb9W?|J9YJZj^^W%p6NWw2UWom>qqn0Do# zdmVER-wQw{ua`MQU&MtmR*a7_Q6-BEY}%=(PHF^ym>X!a*f0y}X`?SG?+PC;aBv$g zEaaLjwZ^JgN^2gFZ1*D{zhd(-{TOq(cFJ=qQ=q4wN#5e4+?rn=={_4!C78Ieyb-um za6thAVZ%2lIz2~+j&x~QvFOVdKv<>Vk&_U&$ll{_MkV8$iUk^**KA}3Z zV&JST<~bN0!TvK-cNN6F+9Y7#*^5H-HMPmqbl;)+0r`3HIn85iX{OZ9GgY$Ol5zGv z!;OREpT%{570C8ez`%WJeY0-;@!d;>F0Lt} z8F=f@JRu!->Fe;F_M9^K3qu^Z=iq_VLzM^Ol`h1saQuUyOPVhUIbh*FZ@s=%Oc1s; zWFR7BLL<1twYJn={f)pYBZ_1T;OpzTi$Vz;jrG}Md3i)b>n=Po*9G|ZOYh1N+(!s+ z_=aCet_qp8A5L@J64Pxu>RE}xU$IkqzMS)uI7Dgh*fT?2MN)kwBCS&8vWCX(JA-D2R&VO>1*J=O;;qC!m&u1txn~X3u%v%fMrK!dw zj70BqLMg?Uz9@T{(n1^5Ed3rNu?)??*+J4e`p8<|%L>P2W3|&SS@&#;H4e1~-{$n|=h^#io?EgeDMFC}0HTM&;}Gq)mjDOomhF%n~R z^1VENXOLAmlG-^TEfsft%(G682mSFr_0;}yxxUJdaVg`OrABaJ=VSs~`r*3oM;#Wl zOkwQcU3e}2K@O~}x;o^B_zYZKVUMlffkq|(%8q#AS)>QCR;*wEDmj+`1Rhkrm4+%c zJsqdPIs>a>sUOHfn{N#A2kxNMgPzcbUSjT={<}147zv*I!)ZP5*wFE*`Q7owPMs_b z_MN~Fe&liwiK9}-m|p6qAS4M{D+Rcz8Ev;UDAov0=;84~l#Pot)Hq3mMCp%gI$Li0 zIN6zv2GzmKqStX>RP~30Kfdjq5pJ>~spSCDPvBZ<89xwCe`fbe=O4mHk>jwL~8#h}gek$C5aGwwl{~)w%6lB&NG(68d z$oQxjrQ<+3hb&E4;dDaEdXXUCx$;HzTq;By0^6H4W^Ynn|D@4#e-qJ3Y_`#4x^LJw z(cK$5A^AyjPha@-IAs0IKHNORvE%1kkEZ244ofiadcW1Cti;nQF<)h+HdL?vrtJ7b zJ^Rvw6g=+GZ71nGA|%2si+~)5VqNs$JKb|FIH*HTb*2@{#pPWszs*{3je_;T)SR}! zt+XmcF&y1qq1?3du`b`GSMGeH?IwRzd(-&xamWh~G2SSVub!V>$ij~vk7sa>rLHh8 z0-ODQn_iD6wkokb$A^A}bGpPL$s#eg%`vN}D2KbAsTvy<*}->NIr-Lob7F2P2Ticl zph_T4z94bOg;+0D0$IbSdc)Mxch^N$)Sm4(I*8H#BU(-hI|t`4GD|Ky(P#L9Y^j-( zGvsz=aGDVz-iHZGbTY@0hpRN9-!lT8;H%y0X+fs!y_oQG=!+`ALIOWkO1%G8&T3Ai zA%}Zk)h7Z!QX29m7W3x7M6v%WBX~TRagc{$?SoTY1aqZX7V1_7pZX4%q*fSE6W=DK zyFev0*@#mAMdLO|g4S}0>Up&BAuUzK;h<>U0>`w7^Wk92fTXsm(9Iv4N0|+KF2Aa2 z0toj;sUQ_={>iG;@Uhh-%ke#_VsQ3+vB1t%+?%zcl3hFY$9K_5w~O?LdPJh)V{nSE zF5I1_u6~+W@S>rB;`rw0F4^N1#t&E1*;7Yd6?N*F_@ruGGbmlVnwO>VX=n=uZ^3IS|z zsr|+1w$42O)D!V&cjI!s?zbPN$o(<8uvw6SK^991l^a9pU9#EnA6vaW)X6zyYI!01 z>NT5?aZY<(a{{Y|!`GUoPYxBgt8bND{a7I+72JJcuIubCBPXg<3myMC7hUjdTKWQs zMWl1|0c09(YWYO%JjwPr`J%iNb@F#dd>l1;RAOqc`k7CM*nrv^`Cjt(?iXa9htjX! zb@zGzkHdHbc78vEjz{941I)I8cLi3fs*LNN!~)%jcr{`+g!oX?8h)!Yobc@G`@C5a z-wNTd84&1Q3(|h=HPh9iDc88^y!e=YC_@G3p_3pzb#e{m>FE zJQ6x1{c1QEZYw>ok%w^2D#-(`Wqego1H#c}S z;(N-qyczqIbS8t`v|@cRCST;+5Wx7&3ms_#QAsxGmiBa-b=rk8ZGV>J>Fflsh*gM6SneE z+|J>-iBH2MH}eg)nxP)DKA)I*y2eGrYlTDuWgWk!y2`o3?LuN)k2uul{w zAJBW%2nTImn*Mbo=@2~4fsdVWP5{RppdmiejL&RGuCXC9YU0-$yI3F~2c7j|;8c&( zVz|}jg^dB+je&x?R)GWMLfyJ+5u=q1!{c7~6F!2?Q@-n-cgVMo*TpqMYheMVDOMnH z56(iyrsJP`=U$c4(0})TY?0GSoiM|ac}t;WD0Hsp=kAyBhhg{82hY#;gICpSLN*=s zDUSzP3L^*8H$x>TVIY>bb?4Zot{FiT?&%yt8kMm>e0SX3BQh7vIW&{UJ~KXOd@P)M ziRrd7)&OiKC=c2YY}-sQM$1*CbyRKO?APdO8%VZaTvHLt;!wC$SGXfMw)+qbds?75 z_le2PH|<8FDVvqdj1y06`EhSjo>jexX|-E&S6Ov&!1z4z;;+5}gc8owtYS?pz-EJK z)h1AWm%7iiu;?lWZtn}s8cke&?Kr&*fOyZw!Oxz8prlM5H6UBT;mkZs3V zZ=S#|@HK4{iAS~|97jnr!l+7Y`m24Dg7{*WmF9Y%*}zhJp!nXC2CDX#3&$?BgnNFp zp2R^Gw-hw$`ltBD9J+6YB)G0Ul+9VO9A6IR`l3&>FYY)mM3e<&WGIsHVe{v}`K*nH zU)QNl&Sz;UyL|AyobKT|^a*s=C8?*2lAha*RrX?YT}YPe{SJ>r;|^6SbQfb>s7vD~ zA=rMn-($@o5y7ZKA8&4mIbYc!yQWYoawv-YTCMBcuo!wp;FXZ3U+jD*>fC{D(e859 zP(Zgx`@(tPJ&YxHQ-7!>v4j$PzR*nMW^(4(uG4%Zz15D~D-rfWE?Dw$B)fVCnkVK=B$n#6$UzLGVI^9`UNVdmBC#)|hW2KZt98o%ikmv2nxV z=twqsonuua>N;GeNUU!ttXdX)L?d|KkI*lnT{kYn)ih^?1EOvmmpHMI4P30*o(u z1h;v8<@VIHeYY+xQZgGXEqtzVXL#w2`n-PZrhb( zI)-oy%Xb7y6PBW+K&l@Dky7qWAKIEUBld<>@E?c3J1DTF2$}hNMq;n2$z)5%rzo#T ze2Y+zImHpM;yx}EE$tx60Tf$>ZX?BhL5XD zduqIRIqp>gir@Ee!ciSKb2??9?8;x8zdipX;z(_r-U7a7yDDBIRO?;&Ic~kgDvDTF zP}`l0ZGd+!zi+j*V9(~ujJ^nBAXYz+78R0EZ1oIsKjzr)4Ny!J*e>00*kIxtqo2`Z zFR^G@fBW^kP?;K2EArwfPF#FrNex=cXI9}lp2JADceiT!@;J?;*!V_F=xVzA4s}LV zeS86u*g--Q<}kcEbtdxKT0$*<4kW%Q6ypD6gUKC-uhmB$S_Z0x49qm-6<8kjZ#q>g z-WNHup7A)uv!E1gFc-aD2Et;E%4I}Am51vxwL15=l z>g)`G!?#!QNIceS|Ep@z)74Qfn0&2vKGNcBqe@8DHkDIn>em4{}F7H0W=G(H3)j1%d0H55ObSL=y?Glgj=1kZA(@ivVemJDc>ee)kq0>iBl{3QOEs zH8xsR4gvmOFZ$m4UQXo~nARQ^S6~x!wQaVuki1f{9c2>lc6;Z_e5*z3jiN8Ff4n9a zIA5Ena!-bo{HzSwmA6-~I_A3)hNgxrrUu%4K)OafgD?o+yH(lgK%@cpz-|!?53Ty~ zHMHIp&ybeJLrP23Ymuu^$v}BZ2!(vh-6jUZGKlZ*tc} z_mY8EBI(fGp)ZCXE5SE}gv@ryaShA?=^WK*OM#eKjt8lHOHk>nFBLvkecC_wJPSu~ho?)1#}l4=)Ub8T(B-v1@{7JwpsSV=*?l-=CHq zNa|o^w5ujP;-IB~ebxP3ePAcciF_o>Su|uC(x7**R{Ehri_FecDGlnvrz{@Z^?Os< zZhLYX`^g&m6lqV&Hq9HwK#{j=recuL27TMHi$OVFLUiKX54c(_t5sFDk6AwW`vVOQCBN9+Cu>SQ0{YHXAAL^B?(WsnFHtlweMvBMVapmE{v38SP_pAkOVGlHp#xS8 zR~seX7=bj`Hb2TL8=O>lusxUXx?V#QOthWhey%jr*Xr1)81454pFth-<0 zrTLRNWv}#M^CL%tlH19-B=^2%hg5V9zY*_oiN)`{7WP6uwQz8rc~H1+tC~RrzL@Nb zlnk~q6p41VQ}2U>JuhH*Af)e{3{wMki>&M!bBRF(-e_O1#V_Jq`k29XazSX4L+sQ- zGF{Kl6_3Oocikd~&ELEn+sx8q*a-`}(#_Qys&G0|`%x z$+o3|c1d$toxxVd0H_~slbj53PBnJerB`PkW5*G7&+S%KA8d=@w%D)M zuu_K4!!$A7!tHN9()4jCsNG{{{9;B~lX+ne#T?RFau$~YnOg85`^3756c(#n}oCf0WNpxB!krbmij zic%B$5|^*9wQ7JsB!}&us;aP*uXIU#%5aDR<99Xb0d^HgmI!f zAo%+Al;zM-x!X(@5etO_hltM%$N8q#2%)6o_UGpXzYKfb5^<5q{Hmx& z@nZ$MBBj;%O8!3W!{dz|FRk^ZJ3hOuylCf^#^fqwR#+Wy7H`M7F4!O$*wIxBFp)Jc zAlt7q=w=d?mBj=@Ll1(>*18Y@)G6Bsg-H-;$ak`Jj#X`x%_ntNo`Afa$wB54cSF;l+K zEUEkCS)+@ddoQ1Pmya^IuaQ7ODus$E2j(dWBHtk;0 zM|b_KTxR=|b?cnCK(>p*itlbN_*Ku|O7(vF2Gunr%N61}7qxeddF`WfZ}!co5iNbp znn>9tq)G|(;5q9^Ha3N4@*nG4W-AGP?^2zeH;s8snVi1oG6dyW_5Q@s44iX`{N($2 zoYWB?Enpqen-9 z{~=q;xQ|U`aO}QbbGDm=FvZBCv`fId3YA5NJ>8s_hXYx&A&ND_=`2zG%DfO?I~%dX5>Y5bb%T1d=lJ8n9k1j)`WHW@Pg`%E})990ICaL2O5wL zca~`>clC4+1WqxR%UOf7p7=CtQq}lgLjSPOL1cBgtY9sKs%&w#N7{T6IMWEfwr6VR zs4vbhxY!zZd{l;cgK>>I$VAY{{a?DWJ{4{WS8#iJ-c}`H9t}(i3BNvO{Fsp=D864b ztEC!NS{*p@;_r6PjgJ#%XRz%5a%(>lTmID0#ZicEcC^)$0n?=9d4J*}qO~e(R(JWn zY;8lGNA58=quZ)y-nya4GBk=z@=@|_U#`%QrwE61L}-$OA#bS1`@^J=eG`d z!HbiyCL}&$as~>}I0N8#gfwrPTRXEJG$zWf zmwgG`qPuL$Snrx^WjYd!x0LY>zE(Vv=cko^j=NTCwUM~IT$n>ze_cpp4J`0VxgH;R z171^kv$C`>-*Pj(L0U?n;Tp$GVK0H7Io%;8hei8#l%Dfr_Z+B&Z&$heHfI5%757u_ zRd9JezgdZRJ;X-Y_(mI&Z@xH}VA zz~fB@dP7r%uiLe%(<(UVV;0HED-`2DX5C0#SqZI+Yw)&66AoL6BH)fAhS&MZ(uQvc zoijeJ3O>(OO*a$32?V1Tfg19T(yOLY#$>4wj>tnMZsH)8Oi>5dh~mOP)g>cvHvKmy z83IVwYZ`;t3}(IcMb~fGGi42zVLw#8S}wm6P~r-eTO9wMlV_qhA(_!dFENi_d@4nU zw&aVb@;pz%Y!BZRw|P@i(*Byr)Tid5;<5YSFMQQ7*iE#oevZZm5&o=w!uxl5 zju1SvemTnZ^P*Q9fwS*tn%9bf4gU&W!F6hqZTEEx20?Dy(gsV{XRhBeyO5$(b2M^y zR5pE?!u8v~EZ<_ikB{tahP2=9xzN`J+hdIF{%P+KsHyP)#xms|<8KsUPBoWQ@3jVg z;}_iE{64OpeeJ9FwDtw>T?1LVF7c}{>X9VaM{#K@Sy}5uJ-v(oj?Wq78wu{f{k}ej zp}s9~ABo_j9G|4yyXK4=K3W)LLShRh+9|1afSW0_r-R#1Gk}WP*F=Z#MRPzur?{>X%rLTTFVe__Z+2 zYyR668HcS$H*2{}f-)9|77g+Q=$j8$#C1zqB)A+5JW5B)SJ~cGc{gO}_NVFt91RJa zomi{n1Ap4>miYlXzExzI`YT3m1M~sf>h4;#SL~gLmzUcW5PEcxa>UNn*B-ks`%_-_ zRT0^y=k#ap`Q;WVm#1#-s8{!8+l$E1NuG2jKEB1pvEorsj4^rt&?HC z=fgx(Cca<=l5MfajoyIspJr{7a(%(k*yYSkh2&r1E-)qLuF{;B5IY>@PM?_j%G4a+ z*9O&Q-cO6ce=Hojd26hZMVk6!omBAkr8NB&ku=c9=p$a5uu_BOTdJr9P?6?T)T2gz zWA1XNnzs{@&pbDr_ily|%4y^n@=n;RvLLNK%g?U<4Z z{b9xRA9X?{%hFiNbJT@{j?HkO+9Y$C>d4HZrir?hTg%P0o88%Q1G3A9F_mmHuj<=a%2b7v>IPQ8`ys!WGP+0Dx4%s80^YRiYduN7Y=}I2K_cMrhTGNgl9xYu^7}N;} zaC-Ni=lSPDspv;b3NuD&H%pRc+LK8$<}{|4CxnlefvzMF2zyW@sVt~YyOd2#OzK;| zDNAvZP~A+Lesy>9=T^*mp=^9&62^+3JBaFX$S>YK)3O7N9m|rO5TIW?R z#~Hu;Yu%CUp-hXq4yI!>*XW{YP$7I8{Sa^LPV0>dzp!Zjdh5~(J(1c;i>h2k-ZC@O zczbh`dkiDF)I%k-gqL(#dHK~QpZy+h)lI!1kuGDe2ikOv0J5~m*$YvLr15{q>+BNl zF4^JmXuqz!^kCO8J`M4Fq;BHf&G+6_#h?1#kk`{XF9X46153obg}!>r0~z-sk!*&95_oPkP%5 zPU-=bZBc@39#IEYH4XbX+}8>;1_VQ|D;=CLK09)({p<<@rtAI z$uP^gvm{tx6AFbw_KX4GLBPQ2F>iYSdchgxdPS(56Yy~FG;lK_2u#&~03;?tG=e8B zEq}8pmlJ55#vuq~o5f#8uK>-_5J1Zj120uYQ z1SbQ$9J2*n#+sH3iil`!)4#)VmhU7K>*PxsPZ@)aDQmgh6lj+7jSB(-ZfbQ zcxs2j{-jOjWk%+ccWeUyoR)PpPhP!M(gU!TDZA{!2P_>;ysrV!VZbCfRM81|&tMwh zLy%KXA^;r%jKkM&W=aCBQGwhJg_G2rAPzsOyj^_KLDL-IGAQ=VOQ028STP`uiaA@m z6Y>B-9Mzw50Y=awv;gw>s();#(pueejRSDP1MMUa5BHbX0q}As$gj)XB%(Mn0H}kE zWK{rf2BQF?8{lLvK>+TlktqPa&s+gKO7Hj6o`@p_5Qm|;8^8yO1warGX-=w>hH^3| z#hPZruUQmxluliVv`XJ*PLOZJXUYS}0|t)DlGgyBgMo6!@oug6Fufat>!4tE-g zxq+Q8^Z>q3bOAghwVCb!$d{jp<8^c_Aic190H zc|eBKGb4}+z!FdZ9~vr_5dd`k6MeJOm5AjU78)ub+P1y`jn%$KG_|~aw zsho(z5Wv*rX_?pwd4M2-r=LpzBPbSt1u^8J*{mN|lt`we27nV7km2z$#`^#Op9LTf zI$!}h_+qaE)b${{O#pp71VBw&MO4ajMCo@lX#@CvlLYV>;dh}p5r;M)4nbk5lb4xy z073L*B%HkC9QOZ>>Hmc>$wi4w(w!*8zxs;$JPcE6QYbW*H1lKKRS}C((va8fKIx3e zZyGk+6v^m5xl-f2-JXz{J(KlSc6zy&nKekQ-cFu>YHe|4_qW1ibA4X58IBR%-+$ zk#rvgly-e#|IIcbV3t|Jmw%A{*EB4bHQSM4=OKh)zA~d_#hiC3KhO38%Y53v^6e7~ z{diH-sFQ9t&rD5S@69*0_{$aquMJw|;8L&k$P;`{4C+6>HY_=A&9`wCEk(0{-jQ?% zyq|*5@STjP1fBJ6DFRlS23k4YiQirj`lt2z#=+r7{G>Dgnf*7MXI3PgtuMDIj@(_F zGeaV;Fe>n>FVey@6_!sz3&%Zcz)=uIc;EVu6#wSHmf<(7ZR2n_gtzswNK~KaTUgfY z$|=-FAk92%aag)`+6DQaocqQ=fj{g~HEhgJDxdxY{5Xm%37(LoL`U(q!zo$@>6d87 zclQ@|=8|&!v zkG~|E)^$GRLXut22nRlqIs&NX*a-9R{WqLKl5i1A?()zNSCZIh=Z`ubxVL)!rgI#) zL(-^g>~iUEYX74&ueCTNe(aQJw0y;yh*7he=vd^4oT8_2LiKmGrAz;&dMoEy%`CUr z%<;&RBg=8!&X=-cKWmQ@!@W-&*m&%-8vFdW&`F`2OSX9e#plkPA$q5!s{HU=<{{E= z0HwnUEMKlQ2mTlPok2wTS1;|ZYH>}Byned$P)x7k!&DYA>j_XSzqK%0gldkUWe*ft zm+702x1FAye(s;bI1|RjD5`7FbSP=da{Er_8noG5;cm=;CtVZ8rGTDQwo|!iFj%Vw zYc$qoGXGl$3iP5G%q^K{gRJEJ5V6vCAF6)EAM}lRe?H|#%Sn&oPNT@i|1w@6P<$t# zH4;UpY3Iueny&;uFgz|li5e$qP*TkmIMaf`mhP7ax=FTM zd?Z&W|4j>!V_36&V%*&Z4#I$5J^k+4a%*X__`vBT699mn2iDP66b^B~n^OPM#8S$) zGs97RRd+gjmS5F4hFvlJ@s0nwFYcDaX-Dp7N{v7$L!U1P+UWnw@-98(khos-sQUfd zMX^u`gQla1^MS$Cr>&)X{fL${L|)4nxi&%kUyyY7n{Kl%sL{?S3tubvHwq`_3n&x> z{?LBJ$W|vnFNRa+=USR;PXN&2wT)3!5mQ07O%s*rlSdNz#4}RHCj5xn`??I>zx7GB z`k4tX1#tlAf{dk3R>Gslpx0v758D)6x~WfC|6YXxt9a(j83G}HgvsVV4J)S3z2$in zB8|6_Y>1H{I=b(qmn4<$oulUzy>EG0?LMc#YkvC6(tA9!LtuZE!LQF=laP{f zM=PJb%>A7;EsaA!Kp-0V$xW7sI{e1KzT(i7Zylz4!`H)V%`jwh_f|-qhtP6xXhC|L z=a78L;_78f5(-)lrDtc(68-f@7!&0}kw+XhLO=TJaW{fmPOjYDukfj>WbEk}oy!Q4 zZ3AVj`ahDgk+omyz$v|Z9P9su1?m^WbQ=R;OPmO~BW`Bi+6C~$e zMYbUDZ3hkz-%%icrhe2*_V>sC!or#=Z0;@=oi;snZibt5=XxSL<>H9(7}3cv=jTfJ zl1t524@kB}bd|9L4^_x(J&HMI18r8$f6{T5sEZ!qiS}I};A5hK`h6rs_tR0sT6`U52Ye<(lw;|g_{t-{gK?q>ws*N_E8TwpUoHc@_EtEtbwtC$Ap~(SXE=Ba*x@Mc@%N>L#=bo@0Al+zFKar4VCICtgAiR$2 zAXqJC{kU~@T{Yg2axUn-vFg77T`=Sz46o85r$x%AEU%zhVX8N#M9X>Zl21@*aG#Y8yK&%cOS;!Pl6f)XM4dI{F9Hweq!7Q`lee^RQF;Wv}$&njaRE@_LO`$Kn> z21s_~2)7g%v4PC$_$nIJ+t$YjKTKV|uL1Z(%dFXm(0S}J*bY?eDDsim&frLwT}L2P zAPNc!sf_y{6+HQd!~+h3N+3VdL?nJRxDH|YMB9E$ll!>P;FJl9VOUo_4SdQ)16uII z^Ki1$39MfmD({EbS0i;AnxdN-ue=^|x z1`&G5>NR%KD6WSTyr7m?QWrX*wFf!h*x574bJPR1*^{yOePJSuTx_ay=^Yk_b_+@+mKxU)v~r@%f%E8%gJ z-0-cpQIYsZ_K~3y<-Vzdc`oD1C)zCuz?rM#YJB>cqjAZ%A7};n2kyTV7!aOyoI3;5 zuiaoOTocGghfiHuvQM#{JS5tTf}>pDlm0o!dW96w+AC-@G~TVpNWFTaG?5VS2oRsd z9Ko10X~z;F(Kk9wg+Csjfd4`p)^~TBZo6cF z>v%$1<6xnQu{_$;1L)N4U?TDQPcRoEl|pxY>1cpAS=`vrV7Poa9~;9MFAY;%t1Hi` z`si8jy@3^Q;P(&*L3i!-15Gx@VZCJM<`@N>x zgX6H2s2DeB4wqSVz$JqLdlyT8k>9gu!up~KJagsZTxR(A#EtDYq3h)g$F$8OA1^SS zO7VZdy;QN@t7uaTUY?AKB>2X#U=nAYD-G!Z+xpf^5fh3hsAGHHU5_FZTxy2g{jysta`dy5PaXB2$Kx> zPYp~h__%o6({dwp++%?qW{kjtZ|R<{dcZXcL^zfwy`cLZ+|;fP|#Gp(Kd(+wGaQNqX4sNwewxPmN!ICKys z?5`;GI|IPcUTN48qB9B=D0ga`?&>aOI9?jpV$O~ zh9;I&cr1YH#mZx0Oy4Sy+l%VpYTky2>Gzcg-~A{o@U49D3l%*gPS7c@wg z^B{-vLzwQIDtEd7;L#sD>_`9UlXNH+icqoGT>{H?PLIaHj=p;JShd^fhm?d!)qB8p z%`^(EV-+)($Lt^`9a6%%_rs4~d>VWCCzuO~O4;%1q1}Sqq4+LDb_Ux|OjH5&eWYZ{ z$++=rqL@NyRqU4d^(Zjt{2Zk3Z7JpdmdP2A?kE;V9j)diZiG57fN4x8i92X8G{W;a_lb)EaIhl^_a_ef z6KM$@4*22b9_?^mBKWu%0mW(ClV@ES3+!MTzB_f|J;Qj<$7COl@988Fv$oi4c~x?l@rPm zXS|J61KC`GoCqWNF#0cbr)_2?`InhPlW83M$ zMsiJTdom4pDhJzX7jplBORs$xwp&p>bX=JZnahFijnA!{gFW^F?f+hTNoWHy{^YfG z;SX_1=vup-PxnPJj^!LgV~1zdCq0vVq_O3HXWh?~a)3N9Rv6m-N6Pw5lyX6^@giCy zo4srklZb2LIq~o|n{m~r{v*tURGl#YB?=N^2eb~OAs|gg*i$c)Y&Si)zVX`&{)Kti zFvY^*WXe)FyH<~_g|xb2kh#5?0$2GIjk_+vH~B<4#{~f&?clP+HUIiVyb~u zRv8;j;4a@dSZU~|6~5d|W78+`XR4genXnvSZ^D4K0BaBQ)pL|0rW+IPd5xW}<1#Cs{>Ai5^EYnaz5!v6ILD9U4~^sy zy`Dh$HIN7)v_{3kUat>X#kg5;Vsqm_C$oAD!}{XuIc!@lC$jqa0Wo#>3fcdnm!cPl z(EEz7{eLyJg&$(g3N&s%CLpAy9IvF8#-4uMx{s7M;>h~}Egbog-SZwfZ8MGb_|w0I zb~@z!J`q}9SPLLp_~Tnj{QHY-OOc-P=g<5$O(MWFDPI>y|0d-(CphlWgkhJET#C2= zy7&-Bdoak{o*OxsV`KVP5_#h@;PdYXZ2YNLl?^s-p&x@4jKciA27zFYPv;%zH>BoLzREZ>!mseVeOa;_~EV&R<(y> zi&vdr=6f+|pSaJ%7l1)4V(Ssr0h1wp&(&n|0d$NvPIdl2v;*isYh}t~tE0-~=0tAu zmN&$`cI#lB=>ACf&6gBFYYkH^3jT=n)?%c9*6PwYgt*%u*K-2aWYMWICjHwuL`i@t zocwQi|Ip2EPtGmOz(sc`rzH;V4JSImUB5Cxt4_c1O94n4_f6=evHa!S!cptrikn0^*M|nanZ-2tsE&QUnU`1YenkiGz8cP7l^~b(( zu|K?6r80+Ah`v3tm>JC;dKonISp1M6rJ~#Xcaa1i~jIqXTm(f zup=|kSOaMEdJQVx4cVp&yrMT z_P#tG>h1r(O(_*F8j&S#N%oL3#*k3i31zJm*^(@iWyV!uBBZiJjEbRb*_Vk?3?l2; z8Bb(A`{3w&XJNV%D;1 zzjONDS(Q`(_@=+xq|U|ll{jLbxEPz6VNGL7L2soA{xT`yaQ+D?AV!c7zL*uHiv8KJ z0Z`EGTiBM(lN3=q;Sv+QIu{T(OGP)WXj~DswPATjz=n|nWX<#9`@GmVbm5^E{jq@r z_Iqobi0_rFV2x|q)Hl2vZ|$(XMB3USiC`2r#ZZE;0wLvmeE3aZx|~sH09)~!QBl0W z(k;e3Uqc<4>iHMbmrg(g{vhqTK+^6}1!Ha6$~s{UUZJKpHLhNRe%GlLWq9Wh4#Mn}1*J6p&S-kHwF=eP%T=g!>&%} zTbDb#ac{IV^#LqFD_2GU`(U@3Aq<1Iz)L)-Rs>4jKTw9*Q^OmxAs9AC6e%@u3Hlp} zBI^*PqSkWH2LR!eGP`-%2se>cJAsor4FqXTduioO{snpT740PAi1lh-0Ts;_}KbGt-Y>7>~c*3uz0I1ftvL zbB`M~Hs{Oyg7A3@i5nQrqL)~qf%S6H26>W4v3QMCR2bXTJNAXra^_=c%_h43t5TA- zEB}=F+Cn$1pd8a?7i5al-<5idof0~PbVMe5{w^b0>AcKbls=;2ATM_P-Kza}AbEzY zn%c%A#F!5lNabPF!{`VOb1$rXB4IVftygwoChl zMYU;nCOv-Gh99C`ca#;PBNFJ`bS^sK?e{vH)3Zz;B2;e|pu=jx%77)lZYajF5G|b< z^P4^Z2?xV1YhT4;-*OVUHBU+i-@gEdT{Y-Uapgn(v^Nw9;D8I)OW-))Z%&C;Dv&<9 zai6x8s-J-xIGCkdR%bCaZ0EV*6KoSY4ER15wEZI3G~qDEBIbsP&pRT|z&`M4dX9|5 zjdi1|7!CJZ9P=9-2({Vypk}F{D{KjRdIjAgF?4gurqt6@ND}EN3>jiG{92wIi$m6W z^g>WH1GScj5(9EauRU#5A8ZUM2m*AOA;qzfq8biVJ(A3)IDc14&hs3LJ>=8$g+$%l zs*^_gOP`yLuSZQaj{M}#c3=f!f~CNHo4>8PR(#uHjwWcKF-0P%%Rmyl6w6F4GLvRV z9q`YLUV0WFA%9Aw;)5+~&5kk9C#qu6GXfyJmGso`Lg7I}R^VnMqexkiI?W6_yy(VP z$wL)Nd+)3^JTce*T`oHuLYdyrTy@Y)8`B-h!hF(~2pYXS%hBn>5*Wn{rZ&qFJ-gKg zw=L+Xi>s!vk-q_mCo?08(x|VIehH^n$S$YL+N!Sq9HR6uAXWAHfRGMrNL7L_@=#83rj?qVq_3#Sc z5FOCtw#%&>P}tyu;-=8fkN}T*2u#m^hAe4Y^=?zli6kA)(H&zmN7%JlKQtHzlYovr zL@pnXoM~#;D_gLF4`b|q@P-^;dzFWAm%pAkU*o1njFmyogI|fT2}|vjonO|j5Beq0 z6ZH{oalA}dJ*!5(DEGoQ-5(RrX0k2Kuk$FIVgo_pd=+HTq(=Tqjy|qQvmjRDNqbRT zekqOR3jy=YMgjd0s+|(-{SH24EG{-dS6(2O)naC{qa=rJ7K^%H{86mfU0ge{5F2v= z*!vlzmrV(>BH!{2T`}T_T@j8yNzbA|`i(7XULib%AMP@(SX0Ptv-;lHXpiEE?!2di zKUhW5PUou^Bab!pUM%Mh%59VfT=?v}R_yu;IF&BMGd}OI$67fUO-&BBtbiS;&q?k_ zT)BD6@;-q77)=}f-xwKc#q}k`X8&3QcVs`Jy(w*_*VkqEkyX%y28)N+tF+R_qk}my z;x&_!){NgLu6T9BhIV?#&5}q>{{1pcbK!BY_Kte?CDD+Pw)fJgzDu%J&r{n zlk#Bu5ZkP4U+f%Sb)1itlMitm4#KvMCbpk|TuJ?=k?q;pF|*-Wshs}w*#!#Em6G(r z=OUbX>QlnyDCzSsFpN z33HB4+ll*@JxKv7yw!lXO$3`_3LbvlwV6*}pxJIeQ?h$N#v@V$g z?w;#sLWb7(#ppgW63Q?pRK*ABrryFq}fX}Fot-Ip6)Aciw99c z{Mvk+q>Jeq1sn_T@X|lh<)%Q&%v$xW0!Q;DJs!u%)r*{hpoYz%-*!G3FBPu|DDBzE zga0&q*>Qk`>*2D^ELiPdzUWSuZqVHmnZ9!yMb+$41$<#tXe4pV zHAP9Jf-X&V+XJq#f3%jiH80ul5Z?|?{czoWjM04tsExn8(w!~MY+qnz=GMVK_F}tk z$F?o-eXNC}F34MLA4@zy6wAogu(2=mrT57_cGKo05U;JJ)svwm(s z)~CQs$*ubdvwdIo5!LIF-ez|tu5Ss|gytGEIMH|C2U2&rZ=+p8Wuwf2A%Rw(Y}R54*mM{7==C|i52 zXuw}rJ*pR-Y|d;iB#^n?NJ-w!beoZQhYM@r(8*$M90mMq1Rj&D6yv25+r^#HmG3B1%Zl4iD#jx@iE76hptxpSCjqIg3scDu78 z^`9aLcuGLVw!rPS<1Ut%^Dh+h0BW)IKehP(r4|{5zEMX%bdzC3jb(BI&1$=H-k#C& z0PU+o8XA_=Ib_g$WW{({lNZgo-l(rlV~dbxf(=yOIUhmsjcVGvcHwG@C(jx;QFzT- zA!+yuX3Xi!KUoc?T8Lr?y{><6zX?zxxA-bKX=vt ziz6kgDFmNpTC>~PO&I8LtY>+-=UnUjdXH4&M5R=IWvl!=GHxBkTlnsgDpV$6*jwjI zVu%Vyu9*GO(!K|ox?-UCCDlW{aj5ktO$8$8rMaDPBGmg$3FyxYQTQvQk1)fS#}IjB z+*fcGk#S({Z0vnn!iU%?;QI1J0kNpg*aMF3&MP^VI@T!Q17)|GrL}_@hO--WkzX5N z?!gY4IK5T+4J0_1xQ0_O(57Wt>~ZEY$pLVU@3Vb`MfHqGu+FW0ucuFqD5T_0pE~X+ z`FFGkKJ_Eu+0|{$nwyL9J?Q*_GHJ_a|BjYNe9+0~c+8KmG5;1Uzhscc)vjgG=Z~xjwQ)-bIf4W6N^sV((lVBjV2FbP)^!~b2De!VE=DAeg^?J;)q*t>d3t@{1 zE%?-FvH`wf_~d0xx@OP{R=4chu6ApN>|$&h&svqVKy{XRf*(E*YhV$c@c>SXKeZ|e zRjq05zvC;laxF`b{?)fJIQgmbOsQ;i7{q~hAPr+8dj?viGiv;>Z@93eVoYMcm=EPP zl3-SIP|u{_y=ZUhS3kJ24i5^Qci%|tsSv`cUar{CTLn2cyZD?m8{4Q$C#ZzAf!ZhG z_18?0{fcm31Il5u0C|#w&uXH78xi4nX4 z*ScLBv2rFWD7CE|=Dg}8*SswZ=_% zE&bItwea>{)x*87MSLJ3<3nk3_^@HgD6Y!#)AW3Ty=8B=VKCkD^&FS<ec&;Mq`9EZ1-JxO zxGTkX0@vJ8^Bo`esfNOrL6VOhYpFbfZZh#6MIvYw_r@&o&CoI4P6F0_Vcri1Ndjqr{ zXi#;>Tw+yA#zF94)lo=z9tXKWtK6{$ zfP7Xw{*mo97_w@(SULID?c$A+6)20DD+w#?%Crp)_^a(oNaD9If+vHq-i`Y{@;Po- zHsT&F24!L1l*`P$Pt)lK&t6nncn4_4m7as522sc5SB&vnXCaypQ^W|~;&uv}IzXxr z4Dj3)71h@>nLq23g>eUSbT(%0$Uwh=U?)B`C1%d97+-d8w@x;m5M~Sq8IvILXF%7w z{B!VX(j(r+R|_-`7DZQycG=D?^_H}`womg;wF7!iRcIJIJNf<;?53@ut?$h$pQ?)M z9n+=9;L4xY6`oQ)j7-k=jqrgUp%KUEL$7nLkh*=fU%Xv4Rh=zG6nf|eYR&1#n0Otw zmrC^WdLl3XmNYw=vfG~fWPZNCexOxdfWkS@UsZQ$AJ)e~nLAv)mV13aU(ejRNbGzoyibxuf zQBo+eN7W>$57#KmQT$Noq}k)KOEsl-TU|eMF}+mmO&wdd=y?-R7TdPqvwIZ0L_2J* zP0JmdsnnIJHZ*@0)6$I0D&dzQ2E&yv68sov``C8ngE(^9VU} zL3(M^afSCEQJIr&2__b)=R~}WCRf(gL>%X1gu7DPh-WLOx{wjG3FymDFE|7TUZYsG zgxM3_q^HZ(Gkal~QOY=@?>M=3nHu4>NMZ(NraWp!DYjtSS6AS)VvhUkxO28u;|>aB zqRa$A+I}Kvu0E`0^o<%^funEo#%!xt{5Nkgtd^N<%yhd6ao_Ew{-OS3_BT)58a<_3 zc=cM9G8NR9iK#A68*H2E)-=G2%oUt_?&}R>tVeN~;$)T!Z^}3rB%T)?QP**d^h?Zy zSI_m|cTJ7tnA}q5_koHgZHm4&bh^x`iW+kFgLt5<2Uda*FcM(7;+QwoOll3AMm!xX z*P(>JmsEFeY&Pf$L%uv5f||zM$O2oPrjLnb+{p4Sv=;)|S~cMMHT!mtN-6Yb3Rq=H zJ0s|0U)Hmb5gMA&IUk~U);K0lb&#cMD&Npv2oAUwljOok0qWiT(=lIyVcx><&x=F8 z-k)n1qPPg2&kW=m$^D5TtX&&q4E_TFRn256*J$y0h)me2u}}kqc9j#E%Evu1)2dD~ zXt{*OhE89)u#dmK;O&vH-~wCB_BQ?!s}+rpPOfGRIRE+RIFOj4d^bEU#|N}lPnfeN zC8uTnHDP>W+&V*AOMYtCVAef?w2I~-Lc9Zf;#L-d4=g?RMbl@k+bS<>bCzG$unKP&YX;Q|Lk#rZDzwyOJPA@!=@|KBEg0EwdTE z2p>^y#Oj(Je|dd8r`-^w)YW|iH|_#GWd9_4BrXkId-9vl81)~=>}owVH^G^0_d*t#C_-XY%aC{@f>vggaFS|+$f#$rI$0JO(piLx_= zwB}*K?t z9tbKn2yFTuI>x;}#vw#sz5U4kJmid5dr4c(q;dafDJ5ADf{;)-;Mmm^0x)GjJ9w8??AguNd2bpE>$San zn<`#j>Ex=^pgaEltasMx=_ZX=^gDt9L(o{ppv;#8)C`%9*}Y3ru!L`$O}Gak=}Cyc ztE;jwlidZYiiFv;Q)3R#C;OkseHEcCU`VjBv+##ol>tc$c*T+Fwu6FV=-&8{MlZEN`;|R;8f)M3avyt_|!yF$YVt0H@^;Dn! z*wI#*Yf*jsmPHlPuX#79Fd@q|VkM~}hf&0MOo6r4^B(m)W5D!R)(if6pE#S{?J>gL zJfZ~0e+r{U&req2yL4RfJ|cnDuc!S&oG!Zt`qwH0ZeCf6K7y_dLHD244qW>*Bu$)1 zI$`Q!=f^?o@z1rC%K_W;Qq)m8%k z1JuJi3!*TQ*u;`stpK4m+O%|E@f0LR=}DBOB}unU4#r=kX9KhXUmC_UO0 zx`F>pO5(R_7Z}5ySkHSDt!AtYXGu{tenp>1X&I+rc{f5czpG6GdVxZJb z$^>2r;fYB+7!w3VJvVQhZa4DDCRc#pnm;l=5u_jZX$p)|TRSVIm|DkwB&FsgCsw4J$~MzB^r-cd!g9#)>IzS6gv zt1(Q1Pkwx=dFX;dx$TmR*U}^z>c{P4?=@wG^Ljk{tWH^c#RxVxe{r}HYQTf_ZA9iV zj z>pQDG(x#O;w;wtL%AMuLW5{htOKdbvDltQvuj*ThsAEncBjKH)JCMfIOQo45ksSJBqft!g;oqUx9APkGqzB92+?9MTaoZ}?>>4l%UY?Gupqg=Su1A7 zXZwP*R)BTj!;#tIN2OQ7jwQJo@eq|irMkSz3ANQ}G}8po?c0x;LCJ|S(gT@09@j+YaIo-YU~RaK#(z9uXce)TAHVakY2eCCYPWVE$yyj zmcKPIp2+v+*GLuZ$Z(Bp5aqkYnJ5Gd@2h?Cc-R8E=KO*{0aozpwxsz%Nb5~3X zRMDtc+e&>ZCFu`+^=W%?HC3Wb>L`jONCH>0A3zg`88wMQ|rOw*Qm{lmBvOE2(HV`cHiUI z4F^K99`kv9t8yUw$Ad@57o!u61xEzXV&5|b2mD6wG`x0~z^-lu91WZWcbP>X=Xal| zh)pn0+uWYwxt`X(vVQOcmSPapuM!l5?r-c^3xT>Fp zdEF?A9#}WUpECtVNS{$(3Wv3S7gRbWirQy#IjB8vCA#HxuuWSXd zer}LNf6<$+yN1P{l)Vn0jCUf!jVRl3o83h-E)71um^`5O7z=juz5*Dx6vM{e0U zgb|R)gxY>OUV}4b43&F#R#H!R8&R z3q#;S4~OMeK{(l0|PYmP;ip`X-V@$6#m2K?e@3k+I-Hy-Yd6 zW|#}ZV(Wl$HpF5m5&i1s$`Evv+^2`I40OOrwqR|QN#(Z+)3LC6>+u1T&kMfX19Ghi zq9T%wqN?l5DAYRN#4}%XGx%lAg3sSZ6DxF?I$6g$R!FcV`9({9C z*yEz{a&J^zxd^zX;Yq|jtM^@__@}2x%_@>>AjgEc!&u)%WGY1_}%1#wLd7_~?W z8HUC}5BNoc^8hEuiAN0cEKYt#BjBxwb+wcpbYSdVM-UpEPnMgjFn&kYm0pc4uW#Cn zQ#)DJ@Tp%22Mt?D?4nKRo_OX!@O))#r0iL%q2qWQ?nBY5{X9mUqdUJ_?P|k5=5|ZH zP8IN}xZXKXbz4~njLz*FOB6AQi3824(cdjkhUSSSe+$j)iPErmPiijAN>R@ad>}n! zT#}`nkKQ>5Mk$meKq!!QT_yohQqOw+AYd?%p}({0Fb32BY=8?Aw27Ulq@L54Y$-8uKY-_A24%y9e2fnq>TD& z4LBv(DRbGia;|3_4IYe@2{C|LD8g$SC5HT{3)gb+Dw2&bBjv7F#Cqo({DDQ(35`W} z8SZex;zW~!|M{y1jeQ@mlqnU6nP1I!AP}pYZ=+)x^{>e5}__|i96Q?D+Vm-|# z;1_mPNA0L~mIX6UNf|MfD|Hoxyc9{^V2?W|e!rZ$a8M5@J$$+gvs&fPoVlE2zx3 z&UajYijE7c8$T?{pOV0k2wQOR4_lz3y=-PqE*M1>8s#j%I)JH|@P21DIm8_wr3S8+ zY~90{Y2KVOWGtI+7!vRJOrCCMHBfUQQ(3-?%F%Oc^o0AuOInZu(vj z3mj?_t9WB7S%+%t*r4koKgX|5-gVfeYe1gxnKpVK{0#j0ma1%?hh6u4Irc&DauwjS z&K*W^wl|`=Px>(K^I(e*S%~;+xFK77`QM20V^_u^&V)s4o01HKQR1YR!GjqRT`}|78nd2e{kSlq{!&f_P{Y zjXT89YUuBr=CFSNxDah?3#R6>;t;(h6)?BA*7H$4Tu_|8tKAowd;_oJ#$yupNz#qD z*I!D_VkfU1)u!~Pc~xJY(a(L{@V=ii*#~|^*dC@6J9vXUqT(zAg5R)FqN`nd$v=aI z6_93AO7p(n_UZjbWcvFB(JwszP!!oMdEBGqGcX-_g}HFU=S^o_lj9^>79)=(?Qav; zgb3b>;CE)S`)BJ9q%Q1{@=%m!IYS2W}R)$z%U+latOAsxNNR)h4+a z$ZPJ6n)&WJcw2v04K(;veT&q4%3K*gbws6=K2-7T^8eW0=dpoJ)UH4Wtj9ybf&b)EL>)v&p3c!ISu~#48ubc^@ zm0t?Sa;*u>->3D3JVt|#HrT}i_q4R`tx_pUjoR_f$}xT{*HbPBV_&-wQ*CNL{6|cc zza^S`lnW_G78V$UXS5gfm0L^WAD3RgD=pu|RaO`&lB|Pn23Nea1xf0Om3{l?Y{=N_IZHz9(s} zXD49vDfud1@WH>!&TgKo6H9E+>ik5if#gxk0z^1or|x{>Gcfn*b>`EVJ$?-7VR?MaG9VlR_8N~{j2xCJfWlzWEyC$>)O9;y9NguEG(jUEy ztgH{`y!Wo^vm-#~2BLaMiK8ezPe6pXL@b|jhMTNEDc=W>A5CcS~s%YQq1Pg98 z6p@+NgNmt6|6#ZSc9lpVQCatUoU-SU)>s_hk*%0O`}9fPdWC!GLiMO8cWx77E+Sue zhMTgg#X1)>jM#!B;9LZNdN#@1KF|decC0_CpV{0vb;z{c`yg`OQl^FTqa~}Kk3g~L z&obRcRsO<1Ky6|3b-8}PW&*eG9a+(+y1?v((%+eP4mb(T(r9g`Kh7sjFu^t<2}Xk! z%nEzT`JU2w14v_-IAT`Do!fH*DUhNcTEiB~*1q8490jG`KElnafIpWdzEG`78@7V21^cDs>z+yAn|{&IT)%_V!abn}S?~+mLjhwS zHXC!P0x{ z#7EHVaJheg7xsw*r<^z0a2;nA*|{PivGPKorP`vSp$BbOOi;)?F;e z-SA_Q7i1e)vEpU7+q$|Wq1KLt+<=1QrvD8BnUf3U0FWLa&c5%hOmGPC`>FQgpaz`A zyIkW-oEu%X;kr(;{m&c1I{}3H6puf#0)!TR`{nRR&xF(Xl3pc5x@MKrAy0|+WX=Q_1gnkC@NQd_S*RDp;X}Uwk3aGsrTjeg1&1!_s3|Z(3OZbGYj5la zaosE458M^N!izNMcB!y048dGj-%X`JmZ0G}L`L93pgLQy9FX&1%`A(rh#j`iNzw*R zx9q6jKKFttKYL{7YAcH~PS#%l0l7+fmm;{27eD7Z!-?q6OVPQ0c_UW^O+0#z~ zLi(+{2nAtvfm%j{I5yzE_nC5Y`fe=WwgI@|>33mBj|IADUO9f3)>n5-lllDI~ML;1LV17nAd@9_#Q|b)nps6HFc>rWj^2Q;*pOb6l;{m`r==BLRrc_g(4?Kel zf?8i?rtutMp>hBO)E}1->;ssB<;>pGe~sBg*z}{O|GSC_Nwht0_Wcc}nDey$4EI2b5Rt{J;oAj&QC2`>AP(?61^7R+XN`M>=vA22p$N7q1G5n8* z-KPPY!{fZ;kGjE+>4la7dOu_nu+Fv}{90{jC?KRe-p`2tyPBWuVE(7W3gDuxOabwK z|E$OZD3Vr^2s@De*9!)jr#IcdF0;d1fBn2204$4f7T^7~P__pxTfoS9=DkI*?GeAA zVzpWT