From 0339073868c61119ce403fe4606485e65ebd803d Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 6 Jun 2023 15:06:41 -0700 Subject: [PATCH] docs: added tutorial 5 --- docs/static/tutorial5/VM-network-settings.png | Bin 0 -> 30296 bytes docs/static/tutorial5/configure-the-rj45.png | Bin 0 -> 44035 bytes docs/static/tutorial5/rj45-connector.png | Bin 0 -> 25129 bytes docs/static/tutorial5/rj45-unassigned.png | Bin 0 -> 30784 bytes docs/tutorials/overview.md | 2 +- docs/tutorials/tutorial5.md | 166 ++++++++++++++++++ mkdocs.yml | 1 + .../tutorials/tutorial5/client_for_windows.py | 60 +++++++ .../examples/tutorials/tutorial5/scenario.py | 40 +++++ .../examples/tutorials/tutorial5/scenario.xml | 79 +++++++++ 10 files changed, 347 insertions(+), 1 deletion(-) create mode 100644 docs/static/tutorial5/VM-network-settings.png create mode 100644 docs/static/tutorial5/configure-the-rj45.png create mode 100644 docs/static/tutorial5/rj45-connector.png create mode 100644 docs/static/tutorial5/rj45-unassigned.png create mode 100644 docs/tutorials/tutorial5.md create mode 100644 package/examples/tutorials/tutorial5/client_for_windows.py create mode 100644 package/examples/tutorials/tutorial5/scenario.py create mode 100644 package/examples/tutorials/tutorial5/scenario.xml diff --git a/docs/static/tutorial5/VM-network-settings.png b/docs/static/tutorial5/VM-network-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..5d47738e8fa2cdf87f98d24191ff13c13a2810dd GIT binary patch literal 30296 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%0D-g6O{EUddx8DgR=H) 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 Za9$~xr5q^e0k^^4QIJuQu8=eh`G4WBCs+Ug literal 0 HcmV?d00001 diff --git a/docs/static/tutorial5/configure-the-rj45.png b/docs/static/tutorial5/configure-the-rj45.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2b8f8bf8f5cc0e2e3ebd9b217e1de2c671911d GIT binary patch literal 44035 zcma&N1yEa0_%2+aK!E}Uic2UIXmN^rX^~Rg-HUs12`TQRlmew#ad&qOQrz8LgC;-- zx%7Ac^WB+m=Fa!+OeWd0=j`s;yu0uFJo{{T(~Rl#kLJJZ7F+ODRb`c~S+&yEnsp%;UIx(sO(AgxLMx2W`~~ z;Qi!D$uD_nDNS$V;}vYvmojTuXM3N0Uxlo`x?B-rCQag`8tmt1jVn%#Mx2e}bS45sk4f#UG_F-lC|w!r=YKcZ zX@~vz_v1^_j35)kV`AmUO8oBvRq*G3`FF8WO#dEC>HG5|;xQ>&sLKB<&*v$8{jYqA zLX-HhINtU-Yh*+OYwR;VaSwWtxoQL*`Kx9kWy*Q{I`3RULVKm!6VR*j)&r5W*-Bq0 z_kfwlx;`+~<2m_yy=zAt$`~#)M08e!WG@&yR$!pCRMmfNgKwUfY^&IHtL3n02 zGMHMkEf`4Yyr*7O*CPX8i8Y%`3yzcjuVwV=-nz~ML9v)*$vdhw5xzH_S`-Ocw%O_RzYdbvFgD$dnbg5Cp;g_1)OhPneaIF zY5EHuXtZA50~;@<`v$;?r5r9R;Zr;ov!x_cwR^6fK~>}EFcERrnI7l$j)Z{jG2Z-* zaA!$K>R3!?Cz)D1|KGSePq`}_EezMXmOpYwx=#Z_^S(GnboFq3jDE&aU+7rR+Mi4) zYIjW&HrJuCbTK44p=ZvnLiKRJ1NtN*){NhV10?=<_xZ0;ij(#K{!=tx+mC3t&MiUL zC$g+_?4uVWqN{tzNWsk8t9GMF2*Bm zywEuJU*fCmn%tc3Il2_9vgS_=Hr{7>op0djM$GtDp0#;TUPmakVV8{K_{m%U@3h%U@E~3xHQU+7&qaR7q z#Ua`kVk5Q%8rQSPT@=Qo8|T11v?xKMmi3NR}xBL2a%EUsCMiiG*Tf+*{vD*Puk_vWtD z{v;m`Y}uV=nTHS{dHw1^%#OofPup4S>ZFE(qK15J%?nRLKL=gU{#~=7C!Uk4M_mzh zq>=gwstw z1yBa#%L5Fse6{)Ei$1l*fB|453Fax}Mq4Q>+x_)SE~fb$SUSCFeJ#S}gTE!~iKPvU zSfab9LnzOGlW9}Ys$xQO9HoxRN=}Q5izP7|TnzV+Y!58x&<$PQtT$7IvSArHKM=|m zLO-qK>ds%rna};k{B^%}{;P&xt}Rqn2sxYTDh2kmnc$|Zsu#<3MB;FX*OKi4wYpEz zxX?!`{PCSv7tvs}Ya8(`{pKD{j%n9d;f)zi z_1Wqbs7jolmeLkcwUfE<>sp0Xj2~fkR#dG_pbfkelSpeLz<&46)nV+jBJk4EzXgH= zuHzgPYQWy~-=Q0eUCzP&?mO)DqJBxUP(vhR`1zMlPt4?HOHR|r-;Cnw?9!FqF1=7? zAWL@!QlgqH=@(gATy9JSvQw`*We8hC{19`~%6a-f#`=uFM$r;)`PU^XX+;TlUsY*8 z{i;=~IbBVnyE(oC(>d=xa~p3mV_)`h>J>bQyMzXij+soUhYCj3(TQ9gL}|y`73n0! zS}c&g7C4RSf{R6)tyt8Wo0i3To*WfB9(RZBl*BXnoQmH#ZtC2?R{CA`qHE#Ycx!6tk)rA;#8XB32>Yr!hp;cG8@t4!%H(p*~@ZKHz~XQf9}kgxy3`sJ|a=w4?% zV6~gPq{htIm*=!KAA<@82sH3z>8`q^ZoP(3Z5Ph1p4Xn*tQ0b5r%?(ek%#)yj&+T1 z=xj}EpSxJLywE6NQf@iNS$4HUSLr}-KRS@?4+~WMAGe-)47i{4N)8b`J$}osYmJ@s zu+9bqyiTMfG z?D?-GkkZa`e}9FgZ-E8&M=xVCt10!8q}|(h^jnu0*zkt$izTrV0kp%5Ys4 z%y^#Ri2(-pwYR~-XzJ^LqN z#;a5l8GQHGt1gBf3#5xjfNP{DeT3t$ib6Ohi#G62{m@L03mggG%JA#|P=@Z8GrDiX z-djU1sX+OWvyYU}A8f>F(ykI&U*qD?^HY$;R4a*=BTOuM!V4~=zKZ34**7=;{m4LW zz#eq3Z|K%@d2iL+G4ZR$BV!n8y9J9a&o@ zbA$)jLdtza)@HVr$POaYxw#tMRPg}FxSc@pHDJdLGYb9ueW(!b^19@^Ml|cb{zcac zMZj9g&E}lt{7GTtEV7~t=?siu8FehAy>cj9%&No9Wsj%jKJL)a`hLeI(EN zS$dD>ZzM`)aqdK_Cj;+H-(oSnDm-%4Pk3{JB&{3H)Yi$xJk5#baoa#6{jg&;cig0# zhc0e!XkY70OwZ?;XMQ4rGg|iP6AZH_$);Djez?;-#Av(8T8`_bu_CnGp>yUK!NFGFW31(IODjIaRCz< zkFWKv>$F#w>!!8I?~~)@bH>$-O5z3B>(>y`D%VXL|CYC74OiY7!}z)lA7!c!k&wss zp@(J;^ZP)qs>pLRRA*7#zvxLVYZ(DE?@*8-sqYgy$Q3~&q&gKBt(21;ng5;TC)nX} ztTbL`FHS1q`@O}QoPcI6Hu4%k*b^$)9-G%cjjkZ>emwaCMq&;iulGkjacbP9GAzhD zIvbx$)p9bU`D7%HXVUt>?bHJEY=t9Uc{|j(TqN#gCDI_v1Ww%ZSiE?5Rqk<3Kw96K zmGz>6FR0wK&6gj|YD6AnYT%?)D|sX<1{<|+ELW1A7`jiSf8hNp{F+#^RC}#x#&CPL zsGD6aLbFR_+#x<p^pLc8TEH z+L>dvNDQEq!dbN{s;^-pQqrFd_EdQiO?$oA@bRQO`y-fS^gj92=%9Bj;(vxH{Gl6Q z@3v7Toij9|vKi+llBG5x)C-xB4i+d_Kh`kl^t5?p^#FYCq_>yf&vQRKTS!YD9dbwO zx+)Id{F~&dyBvOo7>2Ccqahn%iao!$w2LjZr^WX?4X3gSskzB|^a+i|gfKaddhOce z=;TBQ@_e9e7Lk!Mr6Pw-_0HX%CqG??83>1aw#Ov8tTX+CD%vx{ig=T}F&O;N?Yspn zc0rk414q#Ay`!{B>4x{2#<8Xxb}8B#Xmh)D^Myge_OZr71@nAipRUY;^DYP(VCJ}SLmTqu^#+RWvtKr(3yLcD;S)+mBFYcqzMOol zW@tivS_WzxHP#~oWtP%DiTMbfb~F}6YAiT4ZWD69&Q@Mom&_>+`4{Vxj<%6c_4`MG zrdBF@>mV|OZIP}C0li+5%H1qbNigEHjbuiY*oBjO6bIX5DB=oWXO;(!StgOR3}G;#unqkGxUD(SxcrR>F>M2!++f% z8-CsNjNQ0SQY_C8QmfA!m;?(l2Y@3pfg$i!f8yj?%~!=Na9Q^Py+uWAn&q_s4@fo#$9F{&rb*tH+NN3#&DOtTHrS3plJLZH#tv08MLpVco#s-TKZ&}BJ7V^9bMZpMH#qWFBDjekDCdV#A`uz3pVRTmF1M+%J=uP3f?;- z0Iesq(aM6W(Rh}@iDCBSp2wbD7O`?`;ga2`Yk~8AH73YE2p09TPF(1S++ zsv;LRg>UVIrQT59*)7cGI&T+iv z@!Fc$nvWg;z61T_W$#m7YtTZOTeK zY(+HgRkkN@Zfzlk!lC{!Vp}*SC7HmUXh_*RIzy2ifZ)!!-4-kr{T>}*L;V$2+B-}L zfRJQX=xlga(&#qqbCG^~wDA_nxFxaBs#&Ry8s!f!)8-%gGv`VFz$**k2j?_h&>TST zrO9y5VjJaqMf~24H=eW}uVj^?m%_RRj3nsBK-?tuFcGz!8TtL$y0_W9Fw?CIP?oXw zS=92VebsfQWaV29yzsgEKvL|SiR-YXi4HQCFAprg8U?V0?K}Ezn!?v3Pa^D{X?2@3 z>)oM!(+z8o3N|=>Ph#X1WBb(B%rmIQBO=zMoHy9KgReq7-V(5byoBgbK9W%)Lo^GX z6stgl9p8vvOoOu@F>jD4i;||@anU1qE`FY7aJF@$C$t{fC9h)?$_crLd7+NDK4{p} z2`JHlg`dB9``lq9RRGv0sPYK8Np)8<66e!4dJmo3y8+l3YY%;F*h?s*Xp4oCbEKex z%P$_LP&5?~$$xlU45{>g$LSFReE%OXzvk*_4lF3i@(<%{uw!67H~k;ne|9DK|DO-| zKkeub27Oj=G`zp#@`gu+RX+7KB$`+0`naali}I+`8J^Q2)hakKoLIHzuIO)6Q8m@t z5gir)NBoU9QKbwH98>B~6LyPJsA;DOR9-xPLoP}-)@8C(U0XL~ygtWkJz60p@H?Pl zPMtit?G|sfxwQQNOR)N3uyHqQj^{KrlN&ild1Je&+v+`Lxo=#6OWVjHFSK`?dDfGF zjCbkAs>wl~jd3G`kH&|oPN6cdHb=Wb`3R8CbK70-<;lKXgQo1NKMy<37K?j~;}d73 zQODO$n8zMSoe6DK&(iCrJDa!^Azp-VSnp+}kC=i&_KRoZ8V6Fd0I1pa zNyC<>N%Pi({QUM0nf}V-RKat|CSRR)W7>_cQwQ+1afZjAn>kh4in-M*b20d;TVrjP z_Wc#iq7e}%%5!+_TqWX5@6=J9Bl296C?iLg&yR<_4J*3=MZ}TKhy|+%#&_E_4=)jG zCrA5&42474Z{k{;=<(zDGq+wL{dhMi?;DNU2T0?wv31INAM|O*i!#~`7RO87{2Dc; z#!D5jdyfE8Uqs!VuuDy<2z+*`RgzxW;~8Eb*HEZC(@KC&>7E15pJV`0ex(CNf!j7~ zB9>Xjj&cmyUtgSEH5|^QWp5DgT>YbxLDZ^#^XwnOc(uWq7=i`S|T9 z7mwd4&G6kFXPV~ZvvGCoy;UDJk&}m~IkIiwx1iGQ{Ib+4&p`+O+rQ%8XP2=qMW%ls ze-LMr;U=4iB3|y3a2yICl)iSHFlx51@vyCk0yw4DczRHEa~Gb;vs2RGGIwx2!<*NC z$f1aYD%sc`Yeq|85-Q&jfUje<2&3Kt;%!9EP-lH10Pd5ygPYqHF7Dl`%kkVV89On4;Chl1HFi4b*)Ibn%Apq^nGSsqgV0+$fg84#H zxxb=Av3uS+JX_}^DAs8CVk^|npagnbpQxL@f}Sqg=hu+KL`f^cYz85ms?6~quRV7p zFt{Auf6;=^rd@!&43jw}iDIhaEf2V}fL@H5^hcnPZ>en^oPUsP>4s&EJ7Or5mG3Vw z(7N@8h}G&eqO3aJRPFmB6uj4S+irFjh$wug#3|a|5a~$x zNscNK%x|Yy$af#W#e%c&QIHmt7q64wuJ!unk*i&r^Q|k*&DM?qx0Q^5b~}i6luGD@ zwaF#j!*yT2RL$$mpa-LG5J^Rdb~qPrCQ1KfjpiFGsh`*MWHEjO@YQ!OdjOf=935rX zi>O5?lpPl)%+B=A6zM{bxZ0jKfF(oP;RJFW(x#~HTivxkTz7SEY+yMp8F2|^(L7Lq zu(*!8FzF(dqx)X z)=_uIX=v~)QvQz(_+onDuCE2r%3A8B%sXd`_MzHpnR1a5C4btnLr;1v$7grgl&DLL z_b{zr!K1OcuMSJN{f9Zz-W}o?PKb4q|Be_4c`{Oui4$zx8FOzx5dcBx2;#8b)lTn6 z4~>m>5$5!ppZ+!ys&r-}10f~a*XBqt{FtyF6qvKPOr6h=FZr<6n*nryFa*DT0k?>UtAYH6D2FH0JkIcZ+uD2$LmmomFyYemWxa# zGRe+L#j#(;Bub6z(GUcA=3_}99_PEYXD@?aa*?xHjrC`FVvKjh!wpR3g(xxn463|m z8EEidXpq6hJLCCv+bV=byj0_3$|yw|M8g&&Ib_WH2|j6O8a>jw`jH;O?dTsrweyl^ z?Dh@wKsV?3TdJIoOl~$~D=Obwa*sMfk;h>tKE9S%I35@9b{rpNsZ4#QP z>@@_va>c}I0|J`F2)t^ia-zznUnB03bmqZ7k;igP;cf_lxzd*B>J{8uMDE(3$&0Gd$Pa(Gn zp+sn2>WLX7Bz=ms4>sGfrbO?=X>9xW+HSU3?NhK$+WR?8iI|GH7E}BA=dt3cmA)1k z&PJV8w)g_OiEu47vgv)kr#Y(`-=O)Uy~hh~+$W(@pFS7cHqNicV)(&Jg5$v~c$5nh z5nwGgZ-Pzut-V?W^x#vxwq!l^9sFXw!e?j$-!htWt< zp5FdEHPuTB@ynZ(kH5ct#@;3OxrFSAsKr7IKlN9ju$@~$xkjMDyWawlY@SUhFQM9{ z#j;g6D^2+t5v|sXnMw^g=~9DG+H%8EqdL;J>7w+^+5FA54Q9xwI@V=LHCIGPnVAOP zg##q443ntHZ3)X^@S1}QB0;n0xZXROQn6lNQr;uZ1q>6m=T!r(8+l)D>9|^!449i_ zwnWUS|Cpm(hX08GHfo}qNOI0$9i2EIEb5YbIxhv@JBQqDSt4MJg)6mHcW#LhZ`{$J zCKls}oKnd)1)PUmwg&2Hy2f>!E#_I9t#<~7@jYYgSR~Rkr5eDQ({x&m3tl*+f5TDO zkDpv++HiE!|7v%!0}mm7JzgqLBsbEi!EAha9LIFWOAiYRr0G^QrQy~dpiU)@`5BnmxBfgS0Xl0x40m{XKChiv_gn@C2Il4Xgu4m_c;JM4?G!!68xhb5;&s z4Kfu@yI8wVhwA)9J@u$^nxM6%l>#D6qnY3?W0jHx4#nxu_R-xq z;;X{cXcxs0MWw_JqJWr$Yqw-cv%)0EHb#rjU9l$}BYl0o*6XFb(`cnrM8lai45lh6 zZyx;CrFMU7&97FnaURZ*A#}=Qo81Jp%j&YHe1gZ{T8V3ybB&PtK-^9i;?gr-);g2y z45@|BFP@B-!_1E7Q}m86zVXPuY4AAJFP%4)3#TK`HYhQ&OZ{Tw(Oh5BDVoiwEQ)x| zC((?{=7mWBh+1MX^z$@rsKZ>WeRFfM_`6Ojs$DE%jB{P$u}u!nXmc`W5_$o@i+ zT4UNC=fWfD(C-CSp1p;m&0;zJg@v_(W36LqOt7fu?Wq3?qEOj`oRTMEa%85HSMFC$ zm#)vXx<2GIun5EfZ)ZRJ_E!;6*SH+7w9w%z)53_vnPBS3A8>oZD{=GGK6N=r$Cxe<&(G^a z3EAQLlpB3H@P?x`;G;dghagPEAln+esDG;#JKF7-T*tN02czlBzAaI;UQeg+t;PV2 znxp`Fo1)*Y&BD;1cibtaO;^9Nn=1y_1AVhoECDc@XZ01MUGR$ z7wqu}?}BdW8sQavzjJ6^`)suzmk_z5w&mKd7*rXngt1yr>X>UB2$nK>@Xm*zo@u;a zUynM?y|_-zj5z`{l9e?mLY`k|L>ZiNZ7(e*gw3#dW$#k%<#>(im##vW2$V@}oE?HL zvAjauMmpwo2X^5vYgD`mka3hCmd$(7@QqqB57h!6=ViWon(1qgCQ`%#=6pEA$3}ei zIxMqk>KyK?)~WF_M?5~IgOI5TpBIAeLy!(o*#}Raii*OqoY$FJ@*UV4>Wc!ivnO`T z{EZlgb50>nIxE2?`p%Gw8iAiD3r`q|JwH%sqU-5Oz|6$NnP|nK-k1Q81c9@J2is_& z4}~8%N#IWvJ#4y#+v-?1W<&+Bna5_(wJRLt<18Ky;C|{HAWoDC62e{4R)TatU(- zP3>+5H<0H{44}*>=SaABvl1%r!i9x2vz6An;wASiWX#?825&JgbtubESo8f=Jn1&4 zrM5Tb9-_HAsKDgq<&lzW-lUSp>?hWLyw%S;^oC3$!QDwsZk0^~IchJ~F!roU4HNL~ zA1BIHtk9r-1F?ZPS#G&rERxySE?#rI{;aJ3tZUJ#@qEYi<`{`R!G*9ELkz!mNQ7%H zf0fKyn{_%itfG?3Hec6XVgx;DWzlGPP0!F5rNlN%w%Vh)ERpq~n}V3Fx!D~bY(yb( zZfNC+Os9V#6WGPd%6%6+eKX#0e?XpQDvVO7R)g{HRQ7E4aulr`5lC8L?LeV za|-T14$UDEh3b_8ZDdg3I7Y|n6@C6bJSewV>Qv))R5wlRh*?Z%$FwQEo+bP6Rj+uW zwB`iFT?mgnZITM#jwws|uWjRb#?XYzjv+g)_m~<3L-zXPCQ-2!dwi^GA1&8<4p(~@ zx$|0V0yrRi&p15{Bj#;n#K6;x2j>5j2=o7VnE#tH;r}oZ|8HS~m0Ho_O2OC8Z)okp z|LVcT9I7K#+bG;v8)?KN;m zZ_c+Ubstp_YVTX~|F=j2&quY$!%u%(eFXhfpa1(@J>^%GgP7w7@!HpyKlVPCZx{^8 zi6=|SDnIsDvnk~2szDAjgbdsu&AyOCg5xsv=zOoO}XgEA-a_hkPvD>VQ1HP=+^y9R&p`~uVjL5iGF2>V<46<0$ z$fyueLBi2t#YTVmU8XT&S{#+n7D8OdU<<~I_b_3gCS|<7o;veCR!7S}3x^emW@&sG zHqeOt+K2_iVqjbs`ug&;l*T)a6Dp#;#u!A80wGX}r8xcNJM zIPK8jT=us!Xgh&Z3%d2$(C4JC@$QH6z{91N!{7x6XJ57D(4Tg$cDa9sg!y?*<1N}B z+Tt<0FUiFhgav>oSyPXTo-$%CYsFO#U5ix>3}U`&cH(rx|D|KTn+& z*+SQWhjDb=x6HNL7mf0v%aKfv98qg?-T9NGy5YuT9w?40RBiSu;NFrlu2AXoV`DFI z^A3xqEr?VUU%smlCy$5?lvDOXVE!aVw`xk$|MBOYy6>yD=%@npPv9kt=oJFFsk?|f zuN=?MMh3Y^0}-afqT1IvYmQzUSIe1aht!g$kc=Lo-x+a?*j{Em)oWE>46rUPmTlY@ z@f&w`?OjK-bk;ZBlx6xwgy-u6SmK&ADQA6!pjC4&dKYHXG~RelEf2Vce1CZD=#0TL zel==G$7ujDT$^zu~h zr2FeYs+eKYf%!1iPDs_?x8-6SSFh;H8T`uf^Fn>!^>;UYoigPjQA75~^og2SY_`4O zekW%!`}Gf2vh}!Anw1X1F-&Wqh~!M)mt(D$yqR;Kbw0X`Ym*J1_Wkf#?IU{zwivm zAA&+l>dl=G&5qYvpRFnD#Wf~0XRAHTUat?BNLuXXTe$Q@PDAjj{w4+qC^?+b7>6+# z9R2YF_q7u;;-2_=U}6b13>;3C2EcGhe5zpLw+O9yOqbl!>&orfq$-cyDp zeguTezNDj~bsTnbwkod~ShfFP{CUlQoBkg0E4MgbQ!38^%R1HSY>i1)z7J&(0G}QR>N)i^!8R4mx5Ed;sP=%fj11FqYt7= zN%>3Vnp$~}K;z1VE_OES^@Vj06pE}kkoBp_G0 z`^>&#BUQkwBG(gy_ZsLB5e*J3Q+DHvUX2Ll)v*A{X83|0bs`QCA;i7z8MQmQtwqeu zaEIX0Hj%DtsJX+yC1(xRBNV_x%yM=Q4{mYag>qHq?+)(IWPgoSV9Bo5Ny6sZ>WYsn zDlVv2O|lGEC<^*)o&IHhbE|gkl=C2VFi%cB<5gRdM~?ZKAwuG&aOu6fa%n7MoFNA) zgxGSrv3Q6KP=Y@6yM37ZjHa(UQqoi*c*q6Srn3=~pr2)%)A#9Mo_dea?9lqMjQ%`%xI&MxeX&)tTnPH5 z)={0D-+o&5GC?Fei=Pym0K2_#lGuPcHdR0-;V!b$AV;<45j8tbzTnUK3=<|++cATg z=1F!GN^7P+UBtfEuuTC5_^{4!gr=4K?wn~4^{jD=W^%d7#g0qnbBGL^V11G(*7Md0 zhm%P~z;J5*so~@wCSnGLb7x=HuPa~6cFuQv#hi3=vQ3xT31KVP{!L6elc||4V8^aW zkZ1R7t*EjjLM+X1G({-yqquiHGHh^4dtLR8&Oy|W5LnSnmYg{SXj{@f8|z-NS;o@k zaTA95ZB8_=Q5Lq?b3V);QlD9rMaE&=(OZpF=r)g0-|yrtO!&G;=6*qiLfehPG{u>R zR}8+~VrNrj^```L+nixGnw~vzcm5ujmmtw!d;RXszI6PGQ?~-4VKCZCD#NTkMwu_X zpAy;f%KXHzbfAKddsRK6@ax-?z@lop@d(!H$>lcYG_O`1%%N{+7@wDYzhq8e#MK}= z6W=m+U}Rb)j?f3YOB}cg_`aT*QT8MET*+lmz-Lit_(BJ%1Xy$SJQ@h^svO)wDD;rX-!g0x3jm0rukfK zgCdHGio5WF&8IcWK5Sa5w(_F+*;3@VEgA19?!M7bo+F_X!Hqr#>|#|g!d&5t7e$yq z`<=zgIE#2WR+2wTOUqgjD2CF`U-?_$z8?2gRMg_fBp&t+-HGnLhz-&!5KClbtsRPO z<*hcYTG$TyWa8vfYk*tyx+~XE@b+&QQ==N@PY~Tgcy7cS>B4ojvJHc!{*&3mA0m#} zt-%hDfzo?dY-&9^oAmd$z8O4gzsTPZX|V*t&@3h~|B?h=NSoctLO8fo@*aIgS~>a< zW2N-K2z9WZTXj-Eu>q$L(r1nAL=)b>q+^d}6(s(_fD?sj9$DLye^^Urrou!NuVzc| z;Q^ZqS(Rb!U%H2b@@Hnw56We;&FFaV^RH&EJUmvdYUgG(ZoWZ z^)p?cGA4~dKC+RUJ1Zx_E@MB;zKvn8mX>{`et5O>80HQVN?gqUB0sjUXa^aa4W4-N z@@Un@eId?_arl7gWUXsrqmA^^;wOEL%~(;Ul?`6Pjoze7E>Oozydx2th!^r)vV5QZ+huRNoA^(|yP=(ssV&)` zGjSBDBciJPEseT#4b-#yZ`Rj|Uf;v9bv0?bhj%XtSr-tG8Y<~8#ziWil5yP!vCten zj4vzxJYve>4Ub5#avE#5&{nmeIac%i+qNHMeoxIMQ-UH+{4S697*$m%%R8!fDsW~k z369=@JyLY&JZ|R-Bn6aXFCXTDC@To3_F}=jyu1_59`=fv612j?!Y(4|w?kL&uD|$~ zj!_qMHJYW=?V^9zXYi{4R72*t7FCW%j&x1#2&^$9&8B zCx<kawPD7zW!s_5g?wgm=fesqWwyg1-r?|N55SR9P!~J zx)=_94g(_*ElIF)y69FA9+&h|y(1nzJJaChRgpwRasdmn>TyO{ju<9qGoa=9?nLO< z(^X|6pAKa)R?d~86-F%QP%+PZC8d4w_g!6FeYvl4h;RAMxLR4MD)yrWUrXLBFq2O6 z5G~Jj^;f;~S~=!Vwj_?8EJnHSDT#@o#ngxoaiar!k){2V z5hNduQ7;TCe#cx=4YRR)_ZU>MrUi8JFr)mpq!d&rDJd75=nQ_j^QY3qOD- z`x803MXSl`5&O>k9NYNG2YXHzS}4UKB+wOc)^mO_x8$k=2pnaUP9(qn*~0V zP7C-d#&o4>@s<6Mu3d$9Tt0Ml?WGnvM|~h}N*-R+^xyB*xx>Y;(~Krchs6Gw(NUf#CoNNw zgFg65UU)xsUAp?@Mq?;EO`Cldf{EhM-dJPp~!@EZZr*_V%^cT`U61S0^+e(7|Sxo^m zjeKqZ(wKkHC|zcte)q870XjrfjPJ$zbPGAZbZ8;M?SqZKbC|E}tSF57E$B=KLWuV2 z{;R#U*f5#KG{m?-@sTt){c@al1Q++pLctvDHP?SFT`0FSK!Mzn2C>U&8<`}$i?>go9kR`@Vl9W@q+IEM(r^S zirf#hREv=+Kv`H6f8A`}fPo7vcEQe@QAwUAR=1Il@;_t01J`8_8Nt_xi@#d#ZfQVh z>W%*)&9I3Op$5xxC|y;o%j#vq`O%dt#ROyfhvmsJs>Bf4GJ`DRTCR`eePa!tA=rXU zdpC5qx>3(k?vqvw*|0tQgMFfMpx`?|NFQ+eR}{&xh~>ZILuyQU0O^=1(;orr#df70 zB3s+_@)0FVN=g=NBjR9=a}J*Mq=K_ia*ea2R+L#+YsyVP_mcPhuEs>?uEAifjeFac zmYA!hbM2>UhNDl+?7{~^4vye}0)AJozSU%%l*v^UWCBUwjWdX-3c+9g@*8 z_}^R_Y2D|D2wbX!jI?jR&~$F!;eN_s=fz4=J8VjxyTbd7XSU3O!33m5_4nDzsO7I^ zM!~EiBUni+s1GHfYwcKe&ezv5gWhMwcFRiz>mw7HTdA&NTfu9SY>+ag(m~`|ryO9b z$zbdwILU(uU>VNAigv9J?_K~JFfeF3cdrs4Rh*x;?7i6)^WniV@s=3vK)N}M+>@99 zg=j&;D6*}9#b?RR*IzBFx;Wt{IP`{@6`CNsv>y0C|Ca1%cjk8&1YU&jp07zh?hLkJ z(az3;@JECG!U|T#U!8M}AhM(wba8=QQUL&gC7I@5>Ug)?jew7&dO{VBrvEKEkJkNl zL{sg4N!O>81=ashl*=Buw{?9ReTG2wZQWU2G#~GKqQEz6*=s!46RQ#56CKK24yK^y z_kxm}$$A}Tt3gdSmYXf!H=FelLu(FI`#uQ7&3(TKk9`;FZ0R_YXJZ86;-mm{3C6!x zrjARNMBwnwTr}~5y5;~Y(e3i;?}>&On%5`e=eCN?yw>lv+oy71zCyQQEawk`Q#{sP z=))=3cP-3Mt-Y1OL>RQi&0vCN~gPyy|csc4)f&R zx3l{Do+BjQs3j8~ulCkGm)+sx&_1coTYG4S|=$9xld zW7Ib412DuXn|e3CM;+z3Rgkfg7rPHj=Jg_;?3V}&G02!eSHO8g;tV3{?-LI`PBFQe zWu>>Aj(+p-K_3WuK5bxYSS~qxD=ENQzVeL8!cW(#?laR@*G9!?->pZUkV=Nu{mZIk zB8~xu`{5FXW9qaNP4)K-N151sao6*n3RCF{-L=m?E|3|yl>vubTA>I<`$zK7Bv3As zI?9t(yKax|!v z^RqFNzHuyX2ekm$xKGUNH``rjFt^q5!Rwoo~2Wh*e``LzZNAYPE1yH+NrTJ` z5Z*!ogx~Hjz9B0Y6D0l(>&_!=3!V_HKgaCrYQ+YCG5TT7{c$I(Cn7O4s1dSZ0lcs_ zVdWN^C(U)G;S_M5TuVJ7=-*Bvorz4KM4i$k%-dvd6nGHmr~0wY(f>!ZcLK349W|nn zOxF%A?>FH~)k8Z>SED>v(AAnC60U*jCsi5<{*1(jE;o^Ykk^kwd!av=NyLFVUK{uC zDmgFzx2G^&RQ3_Sv!C2U0*)^4G&8w)Gumz*9->_**6q(`Cmp;?J;vcz1gpmELg!Ee zo%L3{iarjnm`+Ep)@Y^$Rs!2eQlmp%v$81){2Y$6ZFY#9*Gi0;pkW+dIYn$9fyX$j zd5WZc@TE)7dRV0&%&i0QybtU*_{C>WkdM4)WCnQ>`a%lV{}M;fQ$$vgnN28@#zE48 z5G(=Vgqd_<4wED$=M$%#AR>%~xWqxlo`k*fmxM}50@W`R6o5;_NjooiA1%0Py-UQH+>lGEp8UgHp*=c zm*nwS4Iqu%GwY8rsaie=JFn{V<>ruxqwwqQr&(`94s%LWun@{Q|U;FvFgsDi(&pHZ+Yj&{IJpf#-k<&u-!=;sUtsb9=QRf0a4m2FGsC zgSyX$!I#*49~?CCr^~c13?_scoI1(0;+V3T8DJw_$tc=ra9*-*l#O14HseQW!n_$0LC&Cl&lRx!(MIG1>5G-T)`Iq98XZGT`eBi0W zy5jfZshp-Ru=o zC*2S<-bWJhxE`_(r}2{}NcdoY#lMpJei`oF)9~!fTJ6yrQ|`M;Db7InF?Rh3j$I3g zT;uh(4E?0KR64yDyea7?G-rMg#qM1yFLcxdJ>LRr@Bq7MZ2+ccF^KmIj;YW%X~r=N zZzDRv$qYc$anst(V+?4#2nw@1+W$J^)*(*3%yk&?9+AhxHGYw;*)*~C@WtX2q{Z{3 z`!~ORt(cGDkH@(vz4Mj?)Xs~W1JVyO>SvFrFd~VMW1O#h0NhvIy&s1Q4IACPq668p zYM;7hS*6nLFXUjF$DMRH=M7cz(^f9TneWxROHa#79cf>i3RhCq^htzG)PTG7d#g#} zm`^o_AI6@E-F1O=E4_u2kiz7b+O*nPvDi-Gj5mJod?zc-ss%5`~^Si5c)FM`@`#jkPw_6I)nIX3a(=GgMU>7B8-i6T+nwLD$0mbvA61h7*N)yu|%+JFni2L%+eOd7k(8##%rAaxGtoUp zorJXp#8;AkYPPm$o_ePXJI9?#x$8Y!{@#7>oiU*nIA)d56l1-(fgLFVBhad+CaV5D zH2Sso5u%EUO8L7^l;W)T?l^tD$JTbeMgqr91LyCW)!o+neMK=??^ae;Vm^J^^jM>@ zwuq;d8_pI()tC1b@VYWs>xpfaQ2mrgJLta4Ae(l|;C*xFA)9;^h!VB(@$1Bei8#W= z>8G%e*NV5GvRo%R>w2@g(jJ0pPx-pTT!Dy2`^&LunrOO7L##(%7wa&&w2OL z*(Y>bEG4sYU7Esa(6xZpZ(vM0vvsuTr!=;wo`9(&@3Y`+4SKcXJt9tO|fT$!R zLENK_0Q_^f$-`wFswCpUxN*IHCUDjGBtEXt0n>zQk@x`z2Hp{MBTPC1LCFnmfPtpNcSTkkV$t&mTim#oEFA9%q^Mt6eir zaqcnnV=Z@AGQ77;05TGlkdSb*0eQ1v>-4yL{rfmjTS!Ek}2?OJOmOrK0Z!4Rf^JndH0an0~lm_>LkFU z3AL*x?mA=LErx)Zn_`c4xO;nhFZtu^>gr|^0L~Kd15xNf+I}K}Ns<@ru-X+lvt>v4 zf_X}_ucBfXVM&OTvXC*tI$nT9MarQ!M&J!C#yA`RmhGfa6>@-PAurxpv5IjmZ~-v-zdjcY z1V834ZN3uA{uQKH`UsgVOqU!$3ov!Pexz>sJc%36_#nz_)qU>R_v4 zfTQy=L&qHJB^GY5un7TSX*9_4F9NGj5>Jgnx8;hG06qG%-kIp>>6a}@8J=Q{zsT-u zg-sAUgc=DQz_>`D9lkv8>nH?scFD!u4NkehcDYv`ZR z;Qut9j|M_zg))*}x=ZaYi&Cr2F#Gjm7d(DqYny~ZXL!7p^=*d^*XGxHsZ87ICXCcn zs5Td(2xo%ES4~h`9G6|?)*EjkDpuf}-!jCtidO8RyvYw~pQfTX=@Ce{WG`i52|tQ# zPi8s3I;wcN_%ikX`W1wQKYA4Yg^H$xJAJ?j$F>`LWMt&T(b(u{)J_2a5@sc~7T+P0%{XK6;qAM~nI6`TjGR7y7n9z?j8FkP*ypHiW3dHwPXpswpEm?$g9C9Wn=L?zr4hK4|y4nk4{lyP0%OlO3J75Nr|ill*IadmB)Iv=>@CtjlGl z5U>8bV?UQoKH$-TLEqu9Q8s%m4$V~RM(Q|@W-o%{ z2a5PK-|KJ+_6mwh2O@*kc?q$SLJ;Q_B$}LcmA=`dSX7w>cky3QWf^|hmxk!5lBV@N z#Cp|S_cQ2zzscf;$oW43dZPG=&i2`&fEjw~L% zt4zwd8!wnBM18mNJT~4Qt?s90&tTujv1OsXN!@3J`XbsHz?e!8&bB;Vn=p$ayrr=7{@74ZXTPvUo@muLZ4>{Dd-uo@IJ2NQDU)9!eW$v+J-e^3 zXbS*8nlK8}`&#lx@o8r$vnzR9uYE|@A1i8h;9+h3pa4ja${$3bLZih|Uv21?22^^N zW!&r<#$OMM#W^sZ6&vZ0+XSm6QoTh;0q;S46!N4UQ21DO2prg(niA4ie@Cz1Hfc+! z1+nBDtw?J81FYChs%DA%%H8!Hln-HumCiJ$m}nEP7M_23cOqxHT%X^)vP16Ol~B6SuA4u#u~*q4x??sTRgAYb zX@wq*LRO`X)O#+Y(5`w>2=1N&a&?RxMtn`73=zL zS7+C`up@*9`F|5>F&*WI^YWkxpr-fc*xlwOEuS3*kADct(SLXG_+(o?>XxhsJu09J z^lU%{(-Sp-#AAY5&<;%~(OiM;3055NvNVP4sz1BLz_$U6&~fp5sBQd{5QN2o>=s=F zeR9B_00IPbqgd5f$>Xi*`AqV6II6-2qhFs~4tGA!PuHBXcpi4CPbaVw zY*bGndDg~W&EkKm7@h8G!ci0QUCj| zKVx?KmE=6OdA`cYiI36RHxqO`h=x9ncE<-s?3#V=W`B%~v3-(MB) z{o*4@$9jaJp>gtykHbA%wyKE<$?6Shoc%32g&eXzM_L5*aCsA9x$muq%S?Ut^x{t& z(h~*WX%}Y|o5~)kN57_V!0cQ5WxdqXA4tXf9BJy-zcC`GN5Jz@-Bz%P9C`{VAbZ7u zp7&);*5VHek{R}s30!>{3NJ*K5&ar=cq@Q*dki5f5h4#?+iKFkTSQPzq@fgN(8f7_ zlL=yc?IRCm(b%h=S1i@#6z%Myq68t9OI3~3?i7TSE`p1fT+Y29xlW-{CBZYryq0iz zYkT_No|Md4X>MPS_EkY{+_AABoKu58rhi!kGLxzbt#ntJ@;bXK4>!xT$(1ox&1UKD zbxfDPiWe3aTjEXRSxGUYYK-(}2gtf!J z>N@wKK#L6*?B4QT$ZGEj`m+|HBI--qvR!*#vyK~xYv9L^5qB1&o!8@&p~dr$*s6@R z$nBkobJTX2x5GEz0*E$7iGEb0kvT$S^jY3Xnp!Dk`=#FBBTG+=@OF>;O3+h~0U!R( z7N>-d8{u^4&07EjWvw+OT{?JsbJRe(5kV6AZT5}m?Jv63E2I*!9VQhvqrF48r-2zH z@>R!yY7HFHv#UKyb=$mOnabMJ(js$w?xJ$S@!HcMdGmBL8EbXlzEwII>$*kFV0m_1 zsMdpCan?c9g2y{+D?C-VM;1rkSXj1Yc}f(k5q@25vai$eF|3lv6wZ$y$^2jokr(b@ zX5WjvBK5G)S5BFa@+ZC%n{4C16b1p5YF5DM;MM>~?~`SlCT4S_g5d2lmI#87E@#5V z*q}gL{vgarj*du{=nm6;!4U7Cf~!AGX$>v0k~Wn-U0{4Y`WEI^?Rx5l>-iEd1-B%^ zNGoQOe%oD|TvK8aveCoz=#6qSNCn`N9vwqx3J822t3OwDas>UMh^X#>T1FOsemWjE z&^g-9u)A>NsZd#ZvD~Ktaxa=V?-Eu<(X{=(2)W zP-j6iMQ0Q0;+&HJ*(V1@ZS_?h|7e>=0+zdUeI5v*Z9tOxH(b7>aIP-m)S`k{R2?2o z#;p7Y6;WDK$pz^~I{FZLlZ^@4Lz5>;c#vdi{wrQOCe>?tF>|Ilo2@hFq5=!quiGpX z`S2dRz0D3eMJE^&ln~!gJ zgn7??Aq6nw>)gS;vmdW#MixCymm`ELiMm#H*3+TVC-d*y?g1+n_?T2+>~+MZX=ABV zA!A`VPg^#1V;gYt$P3%&iXi zXB1Rx#;7p8aS`!(WsHJXtnw5~$AVLTObW!eG1bbLT&lCgq=m|85u?h_IrP9@s`=B; z;BzXcRp~w2jX3pE5rt_mYvG7rZ{ZuoU?5#jT~oA(%`mOhh*c?K(sAQ=~HY$=DryVoZWtV zA4MVl{ zUvJy9gekS4!54l2#QIpb9I=5X>nJp&PW5HzK|&6B!YH#@eFUN2RS zzT=29sL0i)cN4Ded1;H^__;=dTC?g}<5!{3D-L=>Ai6<*lJj?!Xs4YCd>Zm3|K-89 zSk!oAT^L!}{}DwHzzrm2`3@uG0cKNdT=wEho=}E>7pudXyq7$yFW-!CHkoN#UCtaP1r=L7hh3N*4XNC_UcL%aS_?M(TPQ} z%(@tK-K3MiWap&i`wiP-_@&+hZl$>)qrG`@9m*FQ8|!;=;<%XenAdr?HIYf%Ga7|a ztMaK)SHvNI_O^7hkpogUH)3;|tGGtlW)Q@wnA8%mMn~}q^Y_H0VEJm* z(bI8j9kss)1DS-6il&|WuGZ+Uc@8EiI(eyIRU1ToSz$S_`4Q2JICB`sSG5UBkB^Po zym%to`JIxMgX}EiX>OsXM3<7a7wmoL+Pu*YK~gL^12Ui=jR`M~MYG#)kQtjGQ3H;< zdOYOUQ%oJPy4rSTJ3PBu?D`E!CaM%Z%YmqW(3mZT<7&>#Ea5ZinJ{ z1ef2T1*qWlv2suX4Io=kMuN0}UR^a*o(!r)kNG+xzvR3L@6ev4h~|fZJuhgQ!gmXD z6^mlzF3*K%WoHm=b{i%qbU?2?_(K<&vo$5n&d@h_-6V9g5Es+chh4N;7j6cyK~ zG**okVK0Sk9E`$d>c+3mK5Br1>(Pge!A?N@#Oi%>Q5LlZ@a+>H&Qkb=G5Eoc;>r2gZVhK#ZsuIc`-Q{`rjJMv znsANHd}W4agraX<`dT?#uL7%doSvjnT>4wD!gC@b56sA86FG}QXDnP8#DMnyff&$a zudgHx%$3@Ld3L*}D=Kq*qIeNUCatW~l!uBWDQ9tu!c<<7)!-=xu|*Z&6v`Urdy6C7l2aT110$2HqS~ZLG#15?T&koBQ=Z9b~nJblt zebz-j9X?MDAFdRWSzG5ZEdLxH#&3g3nFDY-onGM$-XK>ST`w#7xa~N7R!ZlG9L;DZ zaX*Asy;^|(oQw2!A2NPS4e&wrq@{KX*0yX5KefAEX-~$V32i&6$O!QK6XHA1PN!zAYu_a)w&BT+%o3x|*pK%olA{Q?hKw?aA# zrgXz5o%QjslwSO?w;RQ~^Aoht3D`jz2d&xIb5s&IlIvX^$ao4mA%3}Kh0EC|4Zs^| z?)>XUqbrE!c0?tc&V#-f?SUvV)A^!$0>Sm7DfGhaO5x&Wo!Cw}I}6dn>x2-HAbTIb zdOvW1tlx6|lzAt{;3~?=r2WIwmgr`Trq9%rv?a_l8P}}d)7uA3jMB_^-XES`Ih*-u z*(-%eL!+Zi7enp)N7o14MIjje(lo>7&b_Ek&Gv4rJH)DMo~uU&lbnS;mtE^^Uv0s$ z$C3U1nu}1%4dNuEZ_P?#gGn;Jjt=|~9qn}%0Rghm(9mWHgwGt-LXD0k12&?HGO*Lqp2idtNDe9P8VYD^+)lXpygcZ>lApi)-FVJ)qq0FX=iSlQ&Z z?@s#N)5RZ`q^RDW&qa0x4ZjCs8g#KOqJY>}6kp*(D{;I=IpkE6f3;)%;Y98<$BxAUieg*ABehjft@_1wa4% zIkYv3l=ldUmWb)^NeqfYo%OjSX%WNhLf;riA6D7?UcaSpaJ6zeUB3Uwxi~qp{P~^G z+kFAEW&URK3Ou>ihA}k*z^?ehX+?Gyx=3O!*z8Z=U;VE8YVqK-5*<2LK(!4;VSID7 za`f%PLC0qKr-t|V7`wA!o%$`&`{$?MTlGR|_KOE*gEBH|apsBXD0z60e_Ww;&W2-n zc);rtA6V?WrXHT)yBbQmye`s(f0L3Cb$@M>;%Yh{X$NyJ~Z-tEhteOnf*4@*m4w`-rkzk>V|P3`Bitydxh3L zQc9(7YLVE8knV%oj*aDNH+omIBWx>;bHRwF&1ZToyUwz6`94t?HC>WDv3+Gh>KJ;l20-3^hhIBuAG7wVl9hZ zKv&f~5j5d7?d8YM=iWGAXz{&)F9H}3g5SDUv*6I-F&rFBtUAB4d@db<@g{JJnI9D%3FCFHFu~;nM#7rimeehrtz1aQJb6=?rF)I=*snDE z-_RO+h4ADHhprckRpDx{>#vac>?}y9u>$eb(K_m|eBQOSTsg(!jn|(j@p)QQXuW!j zjwI-hbY0SRfh-g2a`6bGK2E77>c!K_N#Q0Qq3t_=JF>Y*uS7g9Cj*yCv+1Wy4JX}@ zjzN(y!_&EppzQYnq_Lq)_PyV)Ta8rSXZYzSh~g%h^TyWc$6hLDYv^hp)2wVRSq*$ECLw(^{)pVn3%_&NEqrsIANl-H@#M{T1GoX!<4PoyHmF-Q6BB-@GMyI>{9yUM{h}U3T9KW8pkUA0pdU z;xL>+6J1u7^fI~xn%R?JGL zQaYA4zJ`(h8;HAn1jPHd&>G?j`!=^;(pIC-ByJ-rY_K7f5{|i`7a>k{A1Pk{q z{@*^ADg!qk&;}RYV8!1tuO*6<@NwxdxAY@~NYke71(oxo^$xxM)j82+ZmJtV`$M~R z*{;CzgKgKUJ=NPcTD&#Zo%`Q>-WtCL`CK;y{4GD>PX4~by~DD$_!h6xUCU*l){yl5;?L>Xv6YMG zm@Yh+4f;QWSy<*u5?#7{IGkH)SbRQiAWpSUvixp4z2^>SxW6HdcCL7L9?(CscYpS7 z^8(Y(qv5rz*Nr$|xfj8&`%5%=EjGO99|gW`8)t8K>MiDzhgO0bIF=@9?mI;2eU_Uf z?t(A8=SS+5uw&|p#umJYY;VShGj4gY)F)6E$yvbF?YFNYE7B{G-VQM^0AzYc#VzHr zfG^g|j&%SNp=d$FOs{cvPuSQPXP1K^YEJ_*WnV01p6h1M_TRlrht}czuJ4)bt+qbA z&MQ;u63fZW$t|3Ih^jtG&D$)6Mh1jXR|(#;JVJhKbRc&VK**_-l2C- zP^vT8&KsuPaCtdjyYVBVeA^D^^LYayi}wK~vrOnm%lRh}jT=k@H>U7sB&QSwPJ%k; zYqPG0+tne?B|vUV-pczb$zXNCv38X>TV(M??Z#!kz1IecdyWeTvJDtq!~;6%^;`yL7B5jtc@ z-)F`{0}5pnHMeg?h`#moNb2ydNmF-q8{WN}5R%LACpZ1kf%)nO4ZTQT8~~RTP`#bV z1D#I5+#p18r2rjns5=dm&#P6_Y_S|Zu~ajdyX8J|-EzvPx9^QcMc+equ9aN4i&2PC zAhV5T`u)M`vyEO=k-km0n8(R(@DhIoQ0-h;UV=o$#VKA0U>ug0OCHc9M@NSuGhgy6 zz@EG7sM=ju$XuYZUGlY^@Y%P2D6V|m#bWC{lZcr2$-Z@br*e>gdT`s8Alq6eF2r>H zr^ooWkt|(5(@srDyr5F0EP;Yg%;Q5xLgv2iTMMa6wL*0{?IXXQ`3z~YAcQg{WC zBh_w3q7vdHH6>5-pA>zzE?xoYq~{X$|EzV|ZV+YT$~dY`=r_<1TT5*}fjs4XM(8W?eXjdE0*I6tUt=JlU9qmRO^=zVSOV(h9D1Z3{=Zf1Z zfbD{+UgM=3O_wiE)*o(*YG*yHa@vH;O{bF@dWDz}H-HFfB#V9d8l@pIRz%b@9xv4JmDU+41%tKIq~)7$NCvIk_^UzJ;;TuK$uriQA#d|)1xs9S4?|&P z)QEjwbN*7tkz|v2&9fb{_g(mvR?%{j;C!OzA|S zS91k|%UPC!V*dEFD{XqMXUY3UCv+dm-1Rwjk*h{>r_f!G4pE0+3#o^A^yk-_06oO} zO{2Ml_GWCrDPanXh(aAXrJxpI3F@~zsTs#fSF3#-i>cL&g9Z}ue@Kpt!knZ?9m-<- z{q-_rX|~(|^;W*(6UhDbV(G<3+On&&uI-%HM(3tZzpwQ-f$t3QIjl$V8+K}=%(yrU zA<^e9-9Lr|eJy!AmsQ&ZPK{edgXdm!{K`O4QcpQSIx&BY9oa_GBDo6s{*9h32x|GhNEGw?a9B{ zu~)t?Qm;;l18hx2SC4`vR=!5bDVBPp$k+Y8w-f8={B)^aUrN{R#{+NseIhN+K;#Kg zDmOv?wEF7e4}>YPNv>OWTszuA_(;+!56q4?y48l;5vO*!VvFfSBszDYT_=!8gd8BRELnh)b3hA2F-n91cel2+r&m zqE=*NRHa_F;*8kK5))g5k!(H!SY4XkmG%WW^+`|qh?6x*u;bs;Li+URow4bhs2mrg7=h_E*lkSU{2e(34b8T zUIH+Y%1e2l@T(CoyW=%=)>`qlHu{YH&%G^(UV)q}MMh6Sf^PV#-HesCalLe8dSFEm6%KP{@ioDX8C!8+d#bnfKd;++%eN;U=K0FF`$&$#- zWb=4&_o4H+r{Uh?#`Gg+D=kVOu(R;;DO2wz0l}UAWaBjtU}iJqM<1OXXu@=NCm}eY zOT=uY|BZ~$9qzZkM#CNJ_G?SOPn#T@!<3koYE~Zwrf0nX1J>Wtq7BZ?>2j8QpU=3E z)aMTg#G{+Yn=l5u=H3L(IrQv(?BDb2{(^yfHkZrqb4(Yy{X$giflJAhl{X1W z3ld~Da*^0SfwBIu&kU`LzZU8hb*{<)L{Z8@#WjN&uQjtqS98ic?|bh#*B_C!*9Dkt z=aTG1v~aS#_POqUb|55aNZ{ z$RqWDJKy8a0O;KF2XwyGlJ?TVn*x8XhjY)gWDW(rc$MGkCTBu8JS$2^Sx*0sqWU}9 zZ@U`3VR%?$vS_}Y?;N2oWz_v^$E9eaNLB4Hu5Tu$xU;ATJuQ9zi^x_Bt*(= zgTMzSBOrLJFUGR_X`~vaLXU{y;fF$$$K#e`gDa|4#i#j8mrl(C;~_y3c!3V0(VBRy z7LIW3&KIx;FVK26rq^-yYN7ManX^4D1$lZ`D-OmioZ+zmnp`Jl(uB*q$NP`x}EW$ag@&nPSN8lq3N*d*p;+Nn@AV5`5qp9u@#oy&Y)L58-3hUn# zzI{sqb`SqR`}%P<_EPT;fJ323k4Yv`QavCEFkmX8z80nD@T*_+6-xJAz0;)nS91V= z={Xie^Z~FT7}YvenRF{Z_3d%BK8SQTUBKDQR_Z-wN^)Y_=B_J0trYuX@eg)Okb0S- z-LX#>2FBU3Pa^&zYw@X#L=X3gd zB@m3R`^voEbrzj0jSi_leYTZU$yfE~xkm|e7r&ZEVSN`U`%^bX^WvXRqzCQcZQBLk?jN(EH=HXZ2#g0DQ={b`}p3 z+e?K)Cu+&!h$oc_O7shJnBpH8Dd*0KH~py(Z%OZ;sq9Xm+NQ?IXhXNnSsFY!KTElu zJ8Aaw^y0zZA=asC!!;bXbhD*%2mJbE)k!Mm%7Lr6B2Q9#DC56U?eu-_LUJwJqe%b;vj8l0<|G*z`TXPBH9M}Ocs{*qD?(a@^sf-}*Dk+xpsRlSSW2g~ z*ZwiC!YjcBoA%;m*CR16M23sCIhkHYgoN}c0PZ%_1_{*Ger!@6xe7GMnhG=USsM^s zK#WT}1^!h~;W4EVV1s<0>Crx#8TXZ8D0V|_!V+{ENrv$k*-{W>eTId=@Bkb!`e%;9 zhtK-Uy6~~5j?hRSk+_v42*Zkfh{UG9bU1qAQ&dVTGEp%NnS?d&BOQ8w*rEhQ4s@C z!WVTHJnq-o_j|S~l=hzmx6VhFDT%GqUT|DGor=+l5NY=CvQXLzArOW)3kCuwVnb6& zIFB6Wd(hc?0ZNOTjV8i_AOXzLXOM}3D;~Y}AJMo8T~xFURaIO(?z?!3 zgbj{!v;8APz*{E*OCM}1-FMBTx$Z@*yY3B`gs2?HnHKx`<{f5VS9JXqt{5Mn|BIQw zjt3@!?@N-u$G0XT5!tySbS=1dz}4VcD#`W*3T7-NRWP$~o{!Maf-R-m3P!E%X=+lI zv_lqnnTOp@y(?_e`tj%!0!NXA4Etg^+n?X}QGXRS$%4x(rZ7vm6!OjEtEpK1Z{bVT z`^1G6E^knF;YH4A|a^E>QfZw&<&E5lAD&KW-`1?RKOb` z;=+7WWAFSA@3hcC&?7!@3(Ewht}@b{FdyG1k)6RXk2qvK0f7Oas;}HJv}`_?(X&bO1`AL&ISNm0cbtqF=+*`8FgKdVJW%Ac`2Pq`Bd!p z3G6DIIsM$Ym71ln4rqz1e)aySpAq_+RFM|?(ZQ6GEX@bIBJJ$v2)0O|EA;W1>M6uhMBL_JX8615qjLbkQ*PnF=6=P~m+OfDxe);H?E_y!jfFHTg{CMIaQ~k4 z-G9#wPI%ZgyV=_eqQW%){FCvCaGuLkxpx8na1Rsz#)Jo&aG=oMH!DByC;x*$5igL+ z@W&q%tz8pe0$BM{s-q)|3u6oRO7bULPB@xaN{UKZg>4O$th-sT_I;t2ECNJLA8oo` z7}0{3_u0gwovLrS{D@}aa#oWV-eahRvyL3A`J&kvH%~yT3oJF02-}8_aOZC+kKk1ro zVl-zt?#EnB#~ipM-LKn_ePQ1>``Iy9%zBBxN(o6sRIInPdDs2HXmRvXN|hAX`2v!? zTm1Z|!!9pZ^D{$z7l7Grmi!cyr&&Qk+3wd9BB{aW2HLo2WoO_fD&a$geO!fsbp(Un za3i{~STi}WGY_`XLjwiN^rtqT!KD_jQF8Ms-&aJMy;@Oz3a>_bk zUC}}k%O*sq(Q#|JCDK`Kqa~Ko1lSxfm;rHMBaIpz3=eG>-2Qei>;Bb-XX(o%^;n*Q zfgXFThNIo+cv?hC6o=!kDR%UEE15JUNCfb^Gs%q>{i0Tc)SOKzm~%gnp{u?7&9DmTR9q-J4)kkndC)REdM>NRz(^YZ3Glj~+YMy>6f z)Wu27dyQr$O?hw}aC<;S+3zXji<9HUGS$wI^nt2Rr|TOR?rj{RsT@!6 zUsqDD*08zS-{ceA-Z_#8VPB>D@Wko%vt1^8cmXF@pg6sPk4KJju*mIcN@n%-QI(aiNq8Ke@(MPP*ca|a?z=MS-8sW0mS{zG zexO^<%hFX6`E2aLsdIVbvA_=8T%DUBoHsaYRFI)?o{newO!Jdn6u}>=B!Cve`W>JG zX`ZWDZAC6(4PgIK7P?;0*%7Etj1)Y?3O&{0@RnOSFxx;HFDDd?l`yqw`*37xb)&ok zLe-4pbeSQ6ptq+6CZLdSV}B6F()0?8WDv#ouaCx!ZSgU4lSJK6M<+392ld9&S(*^_ z3fsdxtR+MzQpl*K8=rjz&?NK!Om3$4oPl_>M(1WF%aI}{<6trSY0au!U}A`bc!(nS z*s5Y2yhjPT%mf?`|LaLvV0n*rvr&?C&@mc0?Z!o{mOl4E_>qsEj2CoNtbhgkzrmJ5RCNt(l_ zzk*{coxZ4j!2*u($6cB18WZ*Tal(1$ESN^COedHx{{L&i;BrV9PaY{_ynHKfNbKJ? zJ*~l{Z$rQ4U}E@dKFw}kozTv*B@cdFalLNH1GS}jnmn;ZUp!;^dDV>&59Ut34G3jH1;AlvFp@0>9DUTR^W{dt`$};CLD`g^8BBPszj=uU>VTGE z<}m(sIpJ%nc|lO(_3CgfCWXz=<&_Ti75`l7JJr&O8b!M3j`O3?LbR;{G+NasH0GQG z?A5_QD=eh&V=B7-%2^wy!S3W_txutMuSpjXc&GDCzs#<&3Md3Z;+MOi<5=U(V zUe@kwQA!l)Oub&A0v=cs0Nh)5?j1hMQj5B1U6ti@-z=$dMzi3xqbsZ9KroW87j{gf z6?6c92ZGDDDS?83@VxP02wK6FP9>n#)R7mrw6FxWhy!2 zzd#ayF?%b(iOeT>v}$BA7=yGOu%#-NYv-GvlX4^A48y4u)T&I+airBBkr5H)BAGRf&agL0O)lCX^j40 zNZ66d1-Iiex#sKwLs$&e|ZRr;&=lKnL z4Mx|GX!FNlPa^=57%Wu@cM44nR(hmhRx%1eF&7SNnQ0s$*=6F$ua7d&=jtKG1J-7M z6fqm6e>&7u7NTZvo83rh3S$i^i_ZSL)cU5 z4(_n{kV3>L;JN_ilj&_ccZ~Y^BdVGC1OAysR!x{ip~NfF8J^|MVFstNLZrAretk^p zjzijzkoJ#&QdTu|qyP@sAs`i98aHqA?IYL5DXjPFT&f1i;SnU9Q6@4D=Equki9kC- z=Yxh}wV{%4Zp=pFQdQ6g96Bsjbl4mk$3S)h@IKd>Y^zDV(Xm)4e9WP#mbK|?Y}l4d zCYea_iJG#|3dSuBOh{h!8>8{DF0x}6B>QIOmdw47-shkWrl2Q~#8!F(i_p@!yGY+% zQ)swv_eQQjk;2JHHm9t-Q|lf&@^S=wFdf}3%LeS!ktm(WPULf{v3TQFQ%^^aN~9Pxc6h8w5~hI=%F?M zV3PHh!{)F4aZo@>pp#aKN-ynv&kpe{!UfD~XFL;A@6_ZH4!33+Q||_y%pV}0+e`OZ zJlQ7k?)CoHtvp2f6og=I#H_xWpH^kFdq7NESzV2V*)M=I&Bwk-!jM$ZaJ~Y01PS-( zc}PfK{BC%K!d1MN`kA3mMQOjlzQPQmIn@oMGK~#J(L)~Zc;Pl++8lMM2l(xp_l+Fq zF~$9o1e$y9mD*3?>KtY%iuP*7WmDAMDh3*wRXm~wEPHD#SWk(hq7p5kJ6uO39mmo- z-XTZ2%=oE;&u#M){x4QNW%d#E|KXniQ@}eoF-`>@s?JFn*KHb>(gLA>=aw2HXQkii!J{V0K-FU4ocB`_;SS+#s%NGtV z5)cRtXS#qdxWhr7$N58WDHd+IKdxOeR1iYk7WBmUA0<#TmqODg2OFdLu~&SyNv zd}gAms-^{|R9@Y2Kjwp*1Q31pHdqwoewXm4at0@ntuoE;ee590Vb7HqwdL2OZ@ry7 z>a76O;1j8J;NMfDHs-D8RD}_0)x$eLaaqv~ivy$3Sw&#XRrBlDrW!lHfb(4fYRIF< zkfTM!efnS8RF#yYSuZ@Uu_e`<%HXpd6Si&EQ-=nAAa(#Qe1+h^s!Rx-b#yAkzVOVZ zF5<>{tu+sQR;~A4ATKYm1i(F#z-J2JWstenwe^YH7#tjZ0C%;b^FT0?OVZv4GpC-h zA6-7nd=r2{W%9$x#5N(b5kAE3Fh8B~TQLw;wMU`TqF5 z^kv}ye0QoA>7^S`QU8KP$mt#ftMYd(@R~NfOU}~jnVc$eX@rCh3tuQoU;Y;bTIn?4 zkunaj*t07-fpO^b7`N6m1jZq$ey-U=!baA~Ot8pR2Y$_=ZJnF~Poj7yPUv-u>Dc2U z_xgmU!83$Nl>Z!h={8xRJV6)J&*zCkm*^Rv`!b1L-qSKVH++Sz<0g*-SEKMr z5SLN8DJRTnNkW=l{U8Phy?O+M_QA$t)<7}0=z1mqGHBdZOd6O0d(y2sB>r}4h0yss zHr|G4Dc_5Zmqc!gM`F#FDcMOC!@$Mub;)Gqvr&GKq$;7ZDRl7zSIvuuvLDcXV5y@1 zWae}xcPi-W&O4=?`Pxi9l7UuxxF5^NT<}*D=HXJ0`V*tc(8LzVM>JKK*s+udHto~G zj<=^mCH_-e<$F%lA9n)R2gCkK0CBWbvU2r!?2xD|;h>%rfQm&tY?zy{sL5|;n+27H zZpcg0@oRPN++7u+Aul~)dz%Xh?N1&VI6>p(b0;;ud!|eSD49%N{O7(cWGb#1c`q`n z!jsiut~+u!9`7d&8#e&mObE0?i~+DwLLjVxiv0B`U?mf-hEzKFKs}yoCAF1v3X2q` z@xgJshP)=~e~C?TV@6YP9Q)PgQbYxD1C~Q?5`cc&GEj(w^r`yY60E4k>4_&Nfj_&^ zi~I@=fqKGn32fxfH$m7>>iIanPgfjjcJCZW1!qAC?VqepfR)XE{S}yD0J0o%M2K{z zf9_f!&;JdX{)ha_sq^dGxLn$=#Cb{ za&OGGJ6StT+TD!Oy=L_U;dn|9w6!N3kN3KD`!)boS&x<8)zHuYaAJ?w%F6ouVy#&V6;S4=2?#$=kq_gw?4(Bn$;E2_KOxo> z>D)^eAFj0TJw3n8(tw~8J9fgnJ=W1< z)Q4EzuM`8JZ+^-h`xIK+;I>w469{@?d-~=`P^6O)h>e{6getwDX8C=H9+ikB2CPpp z@utWkOZj>WbD*_ddAX|1!tzk~_r7g-t4Gs9EHh(r`fam@``8)|S{@e7?rHcDn@89jDN?r6e*5fM=0if!X!uPve-2HFykFbNbVIe~- zkt2_WbhB-276pnY^!1vHJ1V)@Zr&s%i!n`A+?=jIfsn82#Li(JCs8;~1q$)x%4)5y zeu}f|e0JnLSKxxK;faZPSdrWk5J|=*+bJIswa~$@gmt)n^SsXQi0~)3u4HJWo{?H| z{no8G6#6j4`HfkNO~T#)qv%A=dv zIDdQILz2Mp06x;#8w>r7>xagHD-xZ%boACq8$X`3E| zp4zD7l2Kg2{fFE9w+2lDPgOA0Hw4yQ^>qTt^Rw&RmSPNUQ{jrYt$s|phG!(J`GVT`FhXQrpqqY8rjlNv z-jqVIc98}<;}LxnOxd?tMTGsU83X-xhOwpRsQu!@CWsnm;j&_8{X7wT!XRsONGiz<#L_0cHkNKHLTMS;-ZmvYhoU3&Zu4_n`NhC$S z=+ldp;w2mHR}D4}BXlJN>(~~0z%cMsPDohX>6TlMI2|D*A^xMG4@6R5G{-$#Z`#(u zV?KMW;Cno3${Q+P1#I}`qKEi?5L%7PsRPx}5j>IK%?8;qLY?B_(=h&xxgT9#yI`=c zO_8p%HHP~_)!OxPxBQTE16s9eO=epIwWGmhmZMqn!5jgf`ac?s{drQcXeFD6{m7 zU>i$eA%%q0{ZB-Ql%c<+B$=Te$OIY{p4!MhtR$z!4BV077~zJBV`SoqW^9=b)4n_Z zw$s?n-juAf2*Re*BN_ID=&+9x{!OS}aAu}NA%_Uvas?iv{6;>~gQe5k zk&(rphjL3t?45NZ?VF94$!@ujlW7Qzk9n9M=<_wadop7lkBUN) z7Z%9&}dR@8mrG9(RT==r3cGQ|ZH53=~#z zDk^?8JCwrOvBWws&r3TRaH+;LYcJpSil5Rq-WwAT}cAibI#r| z2(^|UDj=bFv)lHYdjV6Uv<>Mh->F!;o*fAXXdUr|ss@@?>BMMU|Rp@^}v zn&qLv&0Nu)9aX0laPWgMo>lzt78DfPhTqlo%=NoVb*auh1ssm1xIhq%JRjocVf%lb4c-9DW z&)G_CEWGdBA@9qy|K$uZ2Q&IY_opHB3Nn|giSTruQhewYB}MTM`%5s7RiZ}xAGaQn zTRjAJU&-^PgbPf(TC-Dr7hIo|9K3mxO#-QQgZnoKu z+7$dgdxQX8&yAwrck$acMA9vOsilD<#or>f`Zu;xW$6#rbuKW(P+fcNSk&~RSutAO zXP0F{Se(?yMY44aa)Ae34hmD!GTk@{p*TLh@8sU}9&Y&_Y1^!;<%vo6vzKiPn%qsEZ1Gb`QIhI$w(*IkA!tg_<1hp6NuX-{ zO1)heD=#rj$7{>bps0g1%l!dOC%&dUuKFq}q2$stDaZv%7Mr)#W0|@leZkgP+XrDw z#-M>C>j(n|i`hm(`Ap3N1E(!g!p16@1Q}H?sR6ZZBAQ;{_TX#R3EI*p`*dAoD^0^n zaX&((Z$unJSLcq)8)eTU;t;NjFMgrv#B(Sez;C`V3Z;)NLkA49kDDF(smJUVSRFfs zmr;T3KUD$8@qddRxa9yB=LTGd+TdcDKSJq%l1J%Xbc(~{#TH7vzat3#1!V81uu<;U z%v9SkmNmmBJJ;nFWdKfSAvJw*W1r_T(upn?D2_Voa~~6&$InV^C@E7;xH`;J-T}tX zSY9Egm8G|meQo?paIAv;H?a)x_a;`V7xK|#coz?W3t5W>K=sSl$0)zlyKkwOW7AyQ zabv^F+QlFj?RvR*v+Bn3Q+DEkAFJW$mo7$tC@Z0x`*C*u2nI0H3+#R~$hzcR`R#>1 z;fH(k_ByHiD;0qHt; zV*7i^1p$*5U!Db@m}hkps&bB8GymlDWhg|YswGL&i@Bs?ftnWV|3+-!KYrsEmn2}? z{)<=F1bLK-3=hAMnvsNu&jOqUe~4Ni1Kachmf`=ov%gppk^sQ~{_~4-mOq2oUOc^~ z6Ho=~IR7WS3*_*pyoDEM>tG;>#>mZP(7NvWkb-x84-2ETXwHzTwL z&7y97#;0rkA5ko;bk2aw35a|VzP(q*^dBuwU{Q}F=3`#}BftM70|E&Bm%CzYaR~@S zI1bdGgGZc$CcmtaZ93|94bgTbYKO9NVRnolsnM{L0M%K!+Tk zim!fou6ESX`+|dTB*Y;3ZBFL+;JRzh$a%s_cK=T>SXz zZ;Sa22QS6@ZU~D^S6l#fzFl*m&RJT$BXh&8-er1Rm)fVp)E-XP6G-5?bM5wq3zqxj7jpY-`}nGlVPw-qnzE^nTdu zrEhj)rU|(UXgAt?A8*dO!)Yt!Jq*``yZ6DXo_1r9pQASeNSSzUAmb<;+>+B%tj2}C z>!2sRA{KtIVAc6)gQm_Ocgb-0MzTiYT7EboL+1EmO0M3eK zX66>9K$u9rOnzn(G;QWF{Xt#r$J+((I~o%%iR9$8oejt`g4uloKSqO#=q=8KnSIid zqqfcYC>f>AyFbxqb%~8y_U?H8Eiq?KDJ2IZij-XPqURH?mAH?|^oRH}_I3iN)h2sS zU8)l*>#<$eTUTZYTIQ*}P!TEfx(-LBh?Fbi(Vgk_`<~;qY0tP&3jqaBN?ukAPYjz> z9hG^}x3e3&UjNuv1 zZ>8Y$q~0N(3+v3;<~$`S_lBwW6obY+EeS5ConK6D^YHp@c(06jl2i|OHjkWxUQhM} zm9`#TpLlezN};Tum@e%=zT1@)flOrXO-rNv$Z+7aC#L?1(A|MwDCiog2D1+z2{9u% zrT-ZG8P?I${f!#l@?tH{2q2}qM+-fWu0x|}NPXCJ@KaCz?a2A_l+f(=O*i0_&Ak@|kcvk`Me@MAzBD=w*JHJSg4;a(GPEC!=j5;!{a(<5W-wECGDt;Hm48!YE{ARgJ8Zoo~ui5A4 zL0bESqun*K=7=2eANbJ`#w&^*bKi@iMd{5}=p{Y~Z;k`{r>?{>L6Uv%{w4XB37mq-sd+Rxwivm`q{7Yaw!{ara;!52 zYmjOyzumP&NC~z^L;{REijG*TwX$5a-}JDIK-U#z_)IPAPA`E;?kl!CO3IICPvlw- z-<#WM1ix2`C1w-%WY*prRV&QKIzaSVh{JBBA#bfexnXUsk^ z0j?qiwc$ARoOV+r(QRswvHuoD{>SAhuL$48Xl&HDW3|Ige{AI81FD05cbC=61n?*J zd&WLN3E++ZwqlRfAeXuN2iJU{C6l|~JJi}`kG2IyeJ2Y#41)9D`LVKY${uF-YFI@a z#Y=9cwl-HxT`!2+j6&}fJN2FZ3|+cf?EMYeE>cIVWb&O}bis7K2*@xb|ElNEdDUg9at<(2GC5);ujA};{31sHe3#JIm z=M|FMtBdC7IzO6?z!uLo85yK;Fxst6j+76Z?b*I6k{he^krT+*-SCIB#QAOJ8TF_V z8OkPi+f>^Hs9~)|A~go(wF`O>yhI4Ykt!-&V#{oAK?-_L4Y^q{->p{j%&}&{y?B2p z$9%H+24YDT%9cdz61u5)Wbj31k72aZ^zm{@Zh@{eCz7!19uxmgfJc(UWOT=Mbe|mb z(INg>8(YW6jyM>qgOZVlcCU@Kc#Bach6_tDL(Gqr75grwZDMv%tp<+c++b-!Kvx}a z;#OtoqJWA83`0EiRfnl;CiAMuB($;Or%y>uguDL{^R>$RqKneiUg6~bF$8y2cn=V4w}b3h8ck+iom>9WW?ZhjDE5?ftY`Aqc?`)0xw z<)~M8P++kb>(M$1#fKH+a;Q6svY82=liFx-zPi%V{MQ>jC)jZ4BfUMmPsrTnp7+b6 zXebgVyBS3ewfg~??oD^s8 z`4km(39&P5FkeSl%UPAh?aO@8=No(r*D*9ID-E7v+Lp!Xs3}r(EN3RG`Hxwvy~1QV z&wLMkJPSmkm;*)Z^USh6I`dL`XpIa$-f=o~k8y6d2l_yI zC!b<2s>j#ZBle&y?0)QAw+hH&%%Ol$g^i?>UtWX(3b!5W%4E%;ZbzdJE%%=H6_k%V zs3i^}KQ26*3r3G{d-~z-U^P-`wYxj~#Y}(?|7*`)d=#kT^nKU4Zgo(3Bup605ZBHy zv?qH%Pt>+a{hq4KYm*p1lS9G)M4jXl1mQZ+Ffy^&uDn=vNoa`xFc^I~j7T}&mzHK+ zdC4N=2fejJ1ALT|YqClE<&Tn1SM+8eL0&%shWVswh4b~xY<+{$@A~Y=qw+@I8dt}I z>mV~rV9;R}n4*>i-)pDNV4MEsFg+``2$=uUI_h@(@+XBcE!$E%jwG*{P6RM$;OQSY)cmC4=P=Zla13X?|BmvHYz?@$iPN#z zBJ}z6GoEZ&p(7)tS1h%!0R5~@Y)5@TwKw0~ch8>mpZsCxqb_uh(OjI z0zS=^`*<5J-!~RXdx)1N;-=H=z9yx0ea`ozS!@*Xr?rW;hMA52_3N@RJPX*6z0c*l z;vx|1lwX6u7sD7@-9Yhn_}PVqIuMT$=|OI$UWo!XC7MJZPgax}po}X*1j{&buMjr+ z-3$7(`n6757p7QtMN0e9dHtuKeSlhybNVcQ47n0o^qw)`6cj>$}OP&hjj#3mE0s{ksAYl_8AdXn9{L_0Z zuC+SVNvkO}GO-^LO=uCW{UI{3+EqIKyAVe zR{3wch0U`ffabH+2tBiZ`VC>AA`vg8rc$TD(wX zq{}?Jcsq7kC=STKr-Gj-9-llzsgC(()tQtq?)QKT(Y#{R*%cn!F`uhj^bn|J#`|j@ z*oA+IyxTFa08)zOj)5yisP_0JX#et6$|>46L#Eg9?k43iksBp)+j#|XFCCi31KdY4ov?Q!=i*Mdl7zYnJOjeN*S#q_A z@~_Q1$RtkmY7K{*KuLd!tj37~vrb$bmWLQDDn#c8AZ|JQ>`(8Bq+P1IgGB-FZn{Qy z3}0bcjkUuQb%k+ujILs{i^l48RDv;rF(mtP zqh%Z@y!N%66*Hn?n%#5mC-Ierv(JQeMq7a4YFdnY!%n&d-K{phD)dq~X)W_DkjUdu zZ?9RF)zOt9k(~m`wl`qLTQS&aErzN5();-X`iIN*`DS{Yx`khbFd@X%0+Av}g&BZ6 zjr#Ju(%<;1V>R7#Lkh|HjMgKcL8c%(x?t%;fxPB962H_H%j9vQ2eP}1YegZ0sM6yY zyd(}Qc91tM!~9{}6sR8!pWORVF|NPoAY8FNK7e?F0>c=*ZKq>b9w< zRjtu%lK{kG7-Oe9DlI==DSX;lUd2RDKsQa@UPHjfE8{Zo;}GLJ`F8LYVQ%xx17)7K z-Dz5*C%=*C!dMzc4!NtBz#mRf?fC zqODaGVYmsE0-RTR>CudD{a_K&ByQYNvEot%;(KwQ?`!J8#buJ@ev8#(E3R8*1#oxI zmX!3*y4@?);r`X#ke-)*PImFE7M~{SPTUicPo(|vTI?bmB$FcX-73HzNJw4-R&PC1 zj8Dkx>uKC;LvdcZHyh#Ko#V)qVFMY0%?ffAR5>T4 z&ufcB43ySjnw{f5KARL(9oWofY_ZWdcAphh>G*qNPBlP&DRgkU%&RA}`^RkJDawGe zn1tk_0q|iJy$A4p1L}L>vBjSpU1F-FHpPzn11?TzkJ4?+gjaefmH9{GTm>W&V6( zbNtoU@iIrW*Q(@-ZO&2d@y)fo1IZpADRV8IlQpeJq?nfrmFXWPUI8N}c`UCgm;dnj GtN#N@sAAIq literal 0 HcmV?d00001 diff --git a/docs/static/tutorial5/rj45-connector.png b/docs/static/tutorial5/rj45-connector.png new file mode 100644 index 0000000000000000000000000000000000000000..8c8e86ef0c9a10b31fcc7c90c6bd0de0d916abea GIT binary patch literal 25129 zcmb??WmH^U(k{WBAi*U_kl?{RSO~!(!JXjl4#6FQI|K=Cjk~+McQ@|t&TaC}+?j9Q z`E$Q@f3VIvth4v2v#Xw}r=Gn#L|#?`4Ve%b3JMBM^0SyC6cltS6x1teM0m)5{DqyZ zAeUG6iV`AFWuwHqkQ-QIVHsg4C_og-gB~2@9?9mjnmrU0mcz^6E07VH3lx-ItE8Cl zR~PL=AcC&a%oD=N@yJ0SE^=JUwS2b^wy?OSoG1EnDE9RB?6&q;i2M21WfTNi`GghG zNBZ}OaV^Gp)egp>XC5v|q<5B68B{V$#}XJaqb)pbsTb6@SCL{wUhS`VgM))p2!>v9 zt*s}Hi6=O7Xt#Zb27y*CuV>Hk!9e7e4;TyQZM`(da$OIXzsIr7l8yL~uf48eWu+H=qRI)P=t_?}x#Yq{ z6<1a2H!u25o1}0gc`&2Aoyj6AExLkK(t{G`NL$A&wKel{p1Uzlz+p`tY|q-^P4?*T zEhT~tGs9zJ>Q)}o&;qL0M^tI9i>BN_ll=8YLchEX zG00_wz;A$+R!@&Q>k=ny>e-Of~6Q>D~`}ku^#8pe2{>!+sH(?pVt7h+uBJMRWaNp*}gj*aQ!5d9c=W+k$P5J`7BlN0Ep+KvlAw3jgBX zFvryQ9`j7P6r*b(XR!;Ks4;^Z7eQ6*fl0$JKDBFka%Vs^Qj>*|L`_YSqB*EHoZtAyQEAqjD6tTSJ$*Hzn%c@&=d;KzsajJcCj=PFk7E9a!E*{S+{@V36# zn$@tY)dwR>XAvn9e|u6lqABCCj_XXh4wC$<ABCd_y> z9ihB?CKfNdqPC@eH2!9%6mEWf<|nrUe=k|wM&?^nmZjL}m>8_-7`-~Pd&^a}#PaTk z1#ev~E2OkWBx*SxWG?2O<+|hEh_Q!I#RgP2Ok6=8q`DSfY^mAQ-5#cd(<66yIOuG2K z#>B)FPyCI+lzB(Zw13!5Ca2|}+BP4uc$Q8O z&^uh~1Om8(ZVB1EZ%B2#`Qf5KHq?Q}oH<+$r5v(1V{=Jf$E=@$$FHh%+rJ&_ZWZJG zN~N3K7e|YU>gr-EE~gi^oc*c^nmfqk0h#QajBT^7w}jy1R3k5-x58zP+`byijIVJ{ zpHW}!mT2wTt|NnYFUgF>^gy5KPIF~pYTg$2IN3yfU^zGUxB{8GJX}?=Iy}d-_!7F4 zB$PX{o&3H@SAP@`#6@khB{bsaL@&*Dy$%VcD2ZfDf4jaA9juRCZs{%@OiW0Zcoz1!$})B^!oQ^jl&}XsoO4jT67Jjj*vHAS=*NS^67Mb zzbw9A@fZOWh%^Ps6T>UL3URT+z()1bnRowfI1e?p`POI`uAD&$9(mkzU}8D2DU$zQ z2~(3E)Me>&X|x7&V^^gay&fI;usQT|$>=S79R|Pn$PVXssAf3v9ZrY0iqLJ)8s4b8 z7$w?`$fKWJWj{q1B8+;T2&c_>y#cxJz-w}x;_}~|;i;-GAQK=xxn^fI2tw>=Y*wcJ>z@vwX|rT=`nsa9tt zP>a_PVXD6OHq8^ff8)`M>T!AWU7Ek>5mZq(cBXE7(+2L&%?iP{J48rgb7nH~b|49y z;UX|g=007dXK}gLs9%pvJe^@40$8oPl{^@r3%abqFW-UGUBo``uwGH~Uo9fstTi38 z8r(IxZ1n|NS;WBi%TYHp81*II$(jvQpY`jeJnp@yD;M)#e=_~dwFQsZlXR{+{}>SCT7C_jFVG;pC8A+Vw=A zc-iULPiyYNQ+yAAyMLQ!*k88eL++>O5tWnR$%3w{o?zH^t;Tifwo8C?M$a6BEExuJ_6v5qei|G*RoWj!9DyLl?F znQt~_On3w{c-(XnC1oB*`P8)bPS-NjNTXbG&(@Mo-w{Vv-Zl5$C7w6X%XWN=dc-^S zeBcqp+wY!{sE&HF!%_&F{ZaSB=H2R#VzMsAE~m9v1e&!qDeHE&w!GCe1nXV^0l5zH zj7h2O1scZ6TBP@SkGEDJJ=qQXOv|ALSw8Pmhr&8CZ?DO^H}$E!#pHu%2GYpka$ z!`TW`f}pjetoH0(uwKp(Sgj`_X3Y+Bf_+}*_GWh^$Yy;LZ@s7q+>_UeZ3`BM@pFn+ zV>!uP|K;t3z{I~UttsG$7ukIJo;V(UgGuwpjGDw+0jWC}9SfbCFenLE?@7mwOXqOi zJeg+gjtHZB)cH9AX7 zpZ>_2n+o`0!e{b&@mM=@ldr|D%yZ^4?e(jx`Bc*Oo7%9G1INU*!TZ)9_RFrqW66+0 zdGvEE>-TQ7JL<(5kk%nLd+e2GH11h^(UoIyEm)$(OGU2~fkPlD=R{rQH+eZgpGS@d zJ@VSRqi21r=Ucf&SC;d#UsY3(Y8E83=ztuHTKTg_ZoB7^a}0??VkMNsD!+Pw)6~%qH9cTy@6`A}UOr)}<%c{%gHO$;Sp;*)#Jou|byfTe^cyZEr6tqJ^!$ zYU4cI2<92$bx``+jQS?u00mx)x+iCCKZa*2JGVzmT%K5ae(rwNM+|K_;laR(PFL*d zp|oGyKW_iC#RbjI>5Xn*U>mFV)-htd%-&Y}Bo9hO@v{l>)Ic4sNnw!gupTu-$|L=i ze}9T&DFUsg&q3M|{s(y~VtX#sT^(N@o#&8hVVG!gFXzLJF~^~bqDdiL*a63_Y0BoL z%fYZ4y&k6xiwCr0p-1xBOMWC8^pjGh8kusY?5G-T--F+&KiO?)zoS=Nkova5EvTwh zpbsh6b^H?EU0e9+|4P)YE4c+{UnDoTF#}sYm6GLXMc?E4ELF9h9K)5!yMwQMOhjAP z4JM-t(-U>jt9PmV!M~d=v#)v#+#?kQ43S*#)72#c8|ciPC7Y`y+%Xut>Ktp*~U zs?%tD(_}8@?OoRCl>>M~@w|egs-(K#aXCF+q31E~N7~X{Y|hG1gr@M?8C)7r(X37! z+jkF{0f)8RvW)F?q?360Xz^RaiV+rng7UthG5b3rISy|f-k8)NY()ac)pUXmYGj|A zf0zT2OB^|`6jTV+(F9SP`Jb5tpRI7WhLghxqQb@ZXLp4WZr!8n*i@P&Z+ACoOFw`7 z5|bo6);ETtoc$Ork(2Mi^_ll|A92Zg-L2G0Sba^@@d7s)+uT)88^{G)?#Z2^Hmn|m&Xs#$pMU->;v>8y1Ttx*-1WI%HN5pSL}HMoJ}A2KR>VSa&xLt_QX&e_Tas0j`GoX6}EJV|2bHQhm6n_CO#dhC|}$FLOFs zJ;oYycGLfOg%^|;lBLzAcSg{sH=M*OY{@|FS^uu2op8{r&!P+*{(yYCMXRIc$jsjX z<1TQo9mOJd#JRC|I8iFac$_y7WH9--O?e)LXVZ0?uYYiAz;cyPF8>yn`=(>=8b!&c z4w(e5jiG(e36e82aHBb*I>v-F4DVpD^Y7JPD9?UeI?4X4 z185%D7bRWI4XG1`7bX{g>W*jw^pCflJgS;gy+DYExRjYSB6591$DL2)9W>gAi=9f_ z&zf8DKj=aQUKDqSZl+$hhDeBN3D=hGzQXh>0q!U02UKwdqMAhs`|;_HRC26MOe$1U z5H;O}^c64ZqJCKlH5@YMjuyYtCa6F`+dW z$`rW^j4RaY^Kd%zL*DI9Y07#lXV7@o%B?a;QUTwNLtc3v zK9QczF4YR%)d3?IHHP-mNI$rXodKLmx+ghsQTcbi63@G*x=4SCNXZzX_^E-g8oVBq zb)K=QTFdBAQn1gnx&VM%k`WlM>jTBlEtfL8!RG~?Hlf@Shwj`dNAO`ZG&xdH(Y#u1 zexVS0OvZk*e)uNy<|PDL_t)az@@5yab=pujtQWSxN+M!7u4r=Vj^ilaoz=-b_^yY* zdR6~m*~7|lgB3mQ%_2!|p6P`*dLQzQvW$;GJ6bbtS>{Wyy4Pb#x9+^Mtv9d^F*F~R zc=d;SXmauk1M8q$@ZsQO9f%#E8f#4hs;B+$$f|O;SMOE8or6q?>mhwKYtvouInEfT zdF=YAqiv5o{EiA_zjXPW8r}7}g)Jja57Q&N;*HS@z%b>DFX3@LF%*9R=K68KcN1u_N_e z9|xlYF**Y3(xL>3TDz{-1ZOx}8iR#q-7qT?EyeE&Vr^A7zkJ`mBSWY|TrqFbU6%A) z(LUvxojp0(cjTwJ&=Oj|2T$3Y)nMC*MM-~m5<*SXc7$HM<(ineZ9+LEt`t9kFu?F0 z5;?F>SRaWG%>CuZxePzs3)i}}Y#5T8`?}470)tz#d(Y`@=WpQ4x5|Wfgyw=a{AGNm zZ+WW^{b9yhUTt431d|z+ha7=mD9k3ZaXEeL7?SPyj-HF~Da%};t(&i@Gg^+3!@qzd z(%lIO9oVTzyhyZ@Kfoy!EtKY(q?^ZizG{YY9`aA__d%wFeYyWB5dNK5P8=Z3>+DeTK)NO6qW+O0vHHMwTj! zD{+aYEfPa8EmWd6fBiYb3u~&5^TPS<4%`j+pl4k1V4lUAX?E_8=}oWOiguJC{d--z zlI{=B$xNHY33@qYS-Rq!c5iTNlqrT8J&u@~8!L&JTpwhb&(BJ^i`IzvZ`#={;;swJ zc4x$%09X3^lNLCO*sE`%BxaCq-I8rhd^jfj9i>!eo5hRDw*7A?jX?GoYq45ED_e=+ z9-?O+qT1xC6OG>}OzS4ejb6_8LP796l-Kw>zl%>bI9YDO_idl;l}@(kqgERykZ#s% znoe${Zx=ry1%FSm-sV*m9>AgH2^rX#~`9#D< z(jZE~&W;5qMK*Qc^rc7h#h&oZ>ZHc$x0Nb}Lf4;}Rkxiu#2@Yzm+!uLF1(du6UV~|lsFk*3 zZ{O?8HqxMjTVf0W9vIi*6frRz^5qCwh$t(j(8ZYga>e05{eQgnZd;6|a*cV{Y+_!6 zy&*D9a4>}owoE3Ap6{_b3Y+(nhsAtF2Vxo{j|~^B=!?J-kn`TcYO#7?Zpyd+o}nvm zS`o%sR3@D_-X|6^c(2>wMeGTtHOnUAbo6Y4CXvQP<)YCqVSHmeKN(KVJS51&m}INL z3jZRraL6d2q}o06v!iLB=9C)s7GAM0Cr*=IhdD`^xl4Z@?Y`Nl{S=#Mn3+bs%_B3M zTBsJjG{_nbcrmkJAmqz@oZsMK^gs&I_JYQG^fZHJ!X!G3rQ~P!WQA3`tnS_A`~g88 z%U=RWiJ`7!G6S8rYqbLuW`lt2gwVf?q{vv^_+b~e@iCSJQ~=3T+Ixm|9ZL*5JoV4MPL@c7-V{zyY;i9#dyF zYQWs@nxLtD;p8Pl*uF(*Bbg1$4a-e@bk^BR{b7T(w>Iia=pB-Yz|f#fH>7fzWZy(; za1;>}KRV2ZD}e^OC)0j>C-}0~O+o(CHJoPFO)z&WV^rijh=kT3`q?TLQyhNe$%wD) zi&>arqK3Z+32v;nOKg&;cA3gK92rj_aq;wSXT1Kw6E&FWvNu>fp~S!z2%OWC-f|jt ze|F`+JMlglUaG19dEt)|ETI@Zd&u}9o;&@r84>ZgJ=DiJ%k_TI$)J;?NV!kiVHCc8 z-PkW=)(WEb&EqH7NywGXO<}NcTkbtNfohpVs@MFn#OO6U0exOCFwW3=LtSUr=*Vng z#CDfrakKCZo;BszAeyjZhW#UGyR%bdz0w2K?6=`c0eyMbL}dBt#?%zRq0j1oj_H%$ z6K9Fq1KZR5SLFPuFj)yr{~=~Rvh8$t&L`W>Rs1-$5Sik->~6|lmYTl$ChGO!aNuV$ zd!Dl96AK7x5htC?KV6L?SMxlf^E*mvFg%)agu<+j3F0Kmv|=M{Gq>yT?c=#c@svoejHMu91rjL8z9|+MuH8ore_Ud0(}%{j*0C$jeX>@?N&z>2IY%}h$3u+Z z2)e&nxF_)^U$kRTS0FE&5o}GcrDCeLfkJL|#k~f3(U7{`F?zIBer6zf3D$La^i;b< zr$D1#T65&kw8)lM^8TX0RsT{AK#16r4e>`O+e*0xclPEz4fKb z-;QYd5;(q>M$b}tTk}u+oZN=hd^(mmU8XNzkKh7z7jqH&Oi#1tDht4BAB=)qoXvBz zea;49si^yh0#qOR;HwF|UN`pNV#Dip>*_9Kf3v}7n-gqxzNdJwws+P%85gbJ47F!H zI`J|w=d$_?F=(20x+@RS8$lggVb_+xIQN+5t4_VhvhwWDnm`S#9*zLO{(#2MFz6OE zUZa^95Ee%JO$ZI8XAgqQ!Iin~Onl<{-hfcHynpu!f;t9Zxiz>f$7F!Qq8~qURcn~S zJhEN)Sdl?}Gc3h1@)#7TCI=2c&`$L+6sN;?8N77a$vDOTiQm+P_L4z;>4HYCjOcky zmAPBA*Tu3-Vj(NR5DRxG22`C0OI#hRA%rJ$XXib-rjszD%BSi~TOa{q&FZg~SZpNl zuFi1eIvxa1yYVx)O<*yoCq}MP-s$&u_^sZ$W6pAWPD#Jeaf#7E9oGFSuG3-4V*~L! za_)MGDPFk@$lFseHY@1-j8bNh6Z^1Zv7N%TcC|6olPz~FLbc}oTZvGFG9uB`jMuh^ z#(E0$S|)0gj4y~C@MSYjte4%)R7}Jh`mY^2e);V7!kC+T`$WamM&)BR|xNzy#EL~8b`1+leC;@FjsNd z{Rtm75P1=)HBloak-OCJE)HTPg(#0j?F>V2P&tAVY@dG_fpLBvN1szzy8AtG^UV%@ zlFs~_J}o=!qt<8bWse2bi}xBou3I$_oKKH$HXb)koIx-yMrQ`~*OO1GT-#hYGv?N9 zk!x+w?Tc}dJMy<&PpU-0DIbDnSzEgTx?ioctj;2w+-wA$mfM=%+#ePurDF41s3T7j)eeqJgL5CQfj$SvE1}(AQB;m9L~za*KcVL+%vOQ{l9^ zmhJHBaJ$Co%mz|!NxitxUxx83p{FjjFddw7>v1HnMsz64s)^3Va2Q%b>IFrp&Y&Kf zinCtO99k+rIW4@N5(EU_NB9*|U!rqO1y=U;WX1e9AK0olZUtitUvCdaUf0D#VzlQ7 z*;Yo+;?Eqs$+K~Scb^Bxhh5kkU=C7{NP*9fJ9bjW;_nU~-N^To5hC_4*Dm$9N3Od7 zZUXGLJ*#Vt%K=un27EnZd_zw9b!AS&)IxU!s~Zwz5R)-y#Ca?R5$VQ|g!({)>q?8+ zzbZR#+ArTz5HB`5`Wn>?c&XKZJeQ22HjsQ+h| zD3s}vF_i*!@R(k1TH1vcKvG$PL~Gx41=-W<+C_=@#G#`T0ev3K%F%>a;Pt_TTBBrs z*KVctjQDGCa=3w5j|bW}0Snm__JMlompm4oMamiQQSiXJa`h;VpGe~6TzmJg2@Dt=OMaKVn+a8&kNb`o2lGS)y`A&Bq5qV7Vm86V0vOjZ zu`ZO;Ol_BvCNWBHJvEy_+iSB5sMKV5Z7>M9g^Pb#6B!Ayt~{!)U&Ic->#(j9j=HNW zp}EC^<2qPp%-BS7RRU$pwM$(i7?bRr8`9>;KiySVLtQ5vv?E9P3BPdF0;EtE$m?n2 z_!@_@)(s>ukC=cyg}+_IOO_)@togd2sz+ zwip$rumRZqB9oqEC#1wUOQ{Sy1!~cBUexzdEezP_o9IHR z6n`gpl>Nl~DJq;?uB+Y}ub_NxsJif39YG&rEuSeMI@78Pe zQD1`HECoWU3zY$P^rHGN3;1XJUv5!XWHjJ%8_N*zoKyeR`&U~qy=?NwLoq-7{T;&tsn4S*~ zRsSBJe_pOU+-anzNB*9k9^i3nX8~>{p^hCuOapj8y`&e~TK!rgtw1SBs~OD}Hx5o~ zkmgKZJLE8g*ff6+gN1UP*P~kw96FWZ%1e$j^CD!l82m|BXH}+FmDdA5+Wr^`_jilU zsv#xqx8^U)rCPn7&^Mnln@1VbUP5(5A}2tG?lrf)on3{+LM86?#AiTr=6^1>RMAX< zo>C0TI~XHj;a3SvTF7-vz#Si@*>c${K<4ACgKNDujC;@d<1R0Z z=mZ8e==>>DP3w|&f}*km1EG7Ee?9~bdK83=^G@@Zkz`6jP3r0Cc_F9o-@gyve>ic5 zd|P%Nz15$I3=IuGt;7j!8rueb86ELyE(dh}1MmOzculUl?HkVDA6MeQoK!Hzl9C~| zEe-IpFOzIB9KB4Ea5gXFikihM zL5zvvzhBk|yrrW<;!GWxZyYe-c!}(k+N7Y7cHF_?VQEw{LE=*Nnh#||QQV8wrb;u0 z1Ro5|M>W_DT*3bd#e}c)MtW=&0gCVg=p?+lCo3JjvqQ4!yabPmUS6%XxNf?_2Dd9O z2OtzSAVH#Ds=RKzJ(|vHv+{Ah67|LH;`;j8wptmEtpsw%}1u6{6v8(Yy#|a4!YTj7(G(VgAL&vb1_xo#x!Z3{a@&zaM|dn= z(9hv)TV<#eW6E6*xq&27T$Pt)XB&U{=mOKQ;);dI?ho>R$8^HM1dVjkO4BSfL~)q8 zp(FE?jHTA=4#s3%3Sjmo|F4yb2tr~6twH?HGYJyQ-u?Gr{J++%Vcp6B61kAg8{8Hm z&!>mm`3gNh+vLA^4n_IDsT{*ECxFCo1ePO6efjHaco*kV&BU=gZ;B+6)idH-ho>)r3q;n>!X zid4NJbzXE>>)je{I3c!cr8=SA+^4h5;`(VW`-v2+vdx!L(fBl=|M7UCn|F7o(c2zn zx#}}JOO)xDo-&tE9ID_<+~OKDbsH#%mOzo6kkz5b z_L{U*nQzgkRy1FhWFpHFp0`#?B7b;xCn-5H@{nx;U_g^wV}=$R5)|~}=ounH&dIm7pL!5I=o`7a1RfaK^b;*Yh%SBKFly21gBTCl@>dOQbMCYBIt#*tN7 z2_3&_Sm40DT1nMDY3PrbQP<@@-ebc}Y?8TvYie2=&T8Pg{il9jb)u*G=*|~8@~YF& z{OSb3&#oW+psT{rG<;X#lD-4(^;ZCvaAyUf1v%ILvj4DB#t_t}_G;)Cwl1M72P6gm zq=U{EAn(90e;2lyp!N59QZ#4fP&^ViYg$;~u*(wFjHPa;!A<{VyrBjy|GH-NXQWZ? z{Kl-@FVRYBk$gCsi%RkdGvB5XoGlP#78);_&9}D#0wi{}8zMbt!f#(ZIA5qTFD)bE z_w5|2B{HxODyVCpHfFu6@tKQx+gSu3L3Z^bvQAqBq+fieWuGjPr0#3sViPgCj8hvC zoZ2+3n!)3T1Gk}ZS%aD@G@3&;XEpzeE7>gIIfL9FjW*1(qw#NmW2G>w!ffJt!~0*Z z0=>`!tlz>(1s1&vomNLBULX*SeU%_nHw2g8hoa<4dNGJ)D^;~qYAug*KE#;gZl`Of z(r%fn1C}5wB$ks``T2eP4^1I<43r^&HMDQivT@}|8bn?J){wF+ZHPT19M3Qol=p-8C6y%ut`@&I^bzL=%nl!?z42X zeeg#*k$lwnPbWAsNBW6#hHX7o?AO-EP)oQuooEJWCZ_L&mEdnw|4TZnsI!2NON=LH z79tA?K{|Q*0GH7wh)o$LZ;F>Sl|uXJrGTY8xKL`uOqAnox1X<1v6QBwXbn>e>9DaX z4AXa?z4{9@MJf>9*(D$@KA)Uw>{0yFut&vaq?s(^olbjf6*OoP+J*kQU85NrG~(TU ze!hP)>V{wY@W#gcESG{=ni`we$gm?L>AMB%Ke%MZ-WyIoj5`KU6#}2r!N&#-zfwCc z3;H(y&3xmm5m(s75(K@JdwhnrR@9}0fFDafogWaKj^-nMwVHG}Q-8MQwe1h`y!7cE)17mNfe^K8* ztTt-g>f*;oANhcy*eO4l`~@=(r@AJ~f$?G7XUz!8*KvMu2s^s}!I@tMG8PJD>s7V- z!sPd;p*M}dhvncj_G!&IzgUl{fISZ3;Ae2M5EhG=_C}n=HLaB~=V^CDO-sX@GUV^3 z6AD;-v1{1Cm6f@+3;WX+vSH!rDIrs>&Kn;0;_ayhnf#a7tVjB@Q8WF(@`n#8O!v3U z{~}Ei_dA;ALo7@A@ER{ zvk+r!(S!USZ<>oS>-jc6{UFTNvnNtya#mR$^}^v&vLPS%;p^TSm@14YR)Vo(!vK#` zO*6qW&xnxQz?A~)zf2=OkBXiWMe@jXXB7WSE=ZBzX&4KWTkC{#{jatx4MILkNZApb zfiQ9nM%BVvp{Mf&Z3NtZ_xH!7@->9-ECR9FVTuq&#cYXOm$tC}nzjnkM%=-UKvCKxgtjjL z@W)8+@zj^nKTTWg`NSHx{LfYxLZ?M$LQUr_KL1I^kiN=DPwAbB8^3-l4#~pOl+9FB zm%>IxNVJ$6=hGiTd zXH>ve_+2OW|2y0KzkF59`)ijGyKmmZPL2tRqfPOF`QZPKYW~GczqSaO=~WfNkEj;y zCgPy|mj)=lV&E5qRm+I$*69@BGE855M8P$4`vr%>Au#S6kV0zGAtHlOtvgeWEv|vn z`KRsUAhDB@mSI#a*!B5u1H>ZeI`yWU_heIMdS0f6)KIk454eN%uA8ewEcHZwMq2s} z^nQOwFa6wtq{r7kZ zfi5_ATzOD0dX$vI>N#*P|dy=UTx_FDkT6-wHlnjArypwSSVix?o&ux3`F&M{xYY0{{4aX`d9 z#D=wEYxY;+X8bJHX|xhWRRxSh@a88luQlw9+4-RXD;32r*$+qMIJw$i-H}G^yTu7F z6Y_7N%JEy>Zb-LYW)^vdYyh_%oCpzd@QRdSqZVKfBsn+U(5%&3%eLxuJI#n_9X(PbSqv;F9XO zD2BdlAh#=H0aIJUoO_wNTB@*JAg9f*@30$8q;4?KtE}3@Mqr5UdiB#*YJ$)?Ao1F@ zD-f;M@D^V>g&m3VQ~3Ngvp9sV>YfQ?H)l_}9GjP1hkZQE?e=#I>g(0CGE0UOjE{;j z@KQ!9^(3-MEt@t8e6Nh(5s!MRn1HYI?wL3^UosnVqKEZ~TTA`%ZeoQ#@RN(c%L!=k z$Od2Bz<1vPi;i}Xz{xn{9Kl={S~_YfjydLh#F2)c7E`-Y1={GtA??5tjD%@`kjWm4 zsrH0Nq9+YHht~_XkrPpkKjePnCB8Ag{qprI?_1CURMneCx>}jpxSGum{f5y)-B6OJ z(s`}H77Hb#*WGc6Yh0>!Ly+2Mzs#~8N^~3q%z!E z^OL->+-EU;#Sd86vHDA5GHM!3ewqnT4fF!a^;QKC?S-P==ng(=lLXQWm@#OV=PM8? zC}B1U`I!g-mLod;rS?P@zvC)nH(E;MSED12u7B3#nucgUc9t{lR|mV0?)x-J2GS17 z97PxJJL_?nH-EQYT(j|T=7gFmc=~j2M*9->kTS`Y{XeDYFvC(+44jwnZ@w!+%!h<~Xdc-SmgEQ*5iIcTX zf01;igc|)2{OMm?%0_kGZuG{d5W` zs*0(vkQovJxvJg~7@5CsR?llgh9tD448L+~ z0a649Nxzxgj>$tE)s-_j>@SJ3Ju?#5Vs84-lZ~XID4F+f0yr$FLVBCsK+?N&d((D0(|H zl)TnVqxs9$O5{{|Cy{qu#{z~>B)ywuw?tiV7ml|$;R{4d|YRbpi4Y8!1%!T+eNub}~I}Fw7?h;aNA} zGpUTXX29#thok?6^Wuyvl+?8-_YqX0;T@+Xk?%sT_`~~|z0ok%J;y++uFeA*+a$zX zLG2RnyU(c2m)G!P=0~3N!=6QBP0XIx44Urq11^@^pZOoRHPfy}SZij9Pi9;$TpeC- zF*f4)`PJI@_u1%^g?Xou+1d-CWbkp4#4fc2f-@E)q#C8W<@8(I#EEp5JFjcsfmwzu zIn&$+c?zm&I?ZbOJHmG(IyN21JFI$W%J~Cw#R5k@>%O2%{5zMM?Xl8N=joPyz73-d z61U=0`|E;x`Q=8kMQ0NX4MpfLq3;3t-4PEWG{{%M${XEf0%aBI+R+xWaq+w>xIT{O zDK($Qr>hG{;a)oe?s}yD!JiscXVv){7DJLMozOO~HA>t@`6>f{5Ueb)!qkNe5GmDO zb-z;r_qE-n>=&p7X11#Ra9WoYdH(f_uCKvVY!PHDHXcWM19;8lZO4>GVWJ$mZT_MVkR%UmjBr&GdqHfO8lXBCl(HnttN;Q8v@^3FAVcMkk(`H ze1r^;$18YBQtB=bgTL+3HkN-SvS&*SdE@Jsh8Q8 z{j0-aJ)WQVZon$XgnCMNa`k~`2QTN=Y$>~~92%OM&I!mqULWVxGTz|bg}Wl%_Q`Yv zCae4^9YTt-3Y@VLHjLYfx2B6P2KD+Ym3Pp8zas)PCLqW;atoXxG;*=!Kcz z*9*HmC2JM^E0NZ=X|jO~i|g3~wj1~1;b~SAz5|O@;zW!ow)lzlo(ht5oJakBT?$C+ zP5luXeHr`~GJ#S}0g+HjF&EfP%9hcry;v`_G_vpxerT&g z9dB`brUUz6Y!~MpMcUMi{~AHm>Q;Vc7s<7E zxTTv$n#X{t$?+2s*R|v)#r)!v78fnq(8*>H3EAq}gv!eLCGLfg70x7XOGw|-IX>v2 z0V<>>Jof3nE~&+mQC3jIi?a&8+ypPo{T^WQC@zJ4$T|VSk-5{X-p%$TUzCrQVQgXQ zJ_j>)$d@A;QX~!7Y+bojP+H@~U}HxBXM4G>f-PveG#FA#=*))18t~=wPdAhQ{GueVNyP>=WMoGIlon-g8TYhAr zsp-_J8*F3TOc+>XJ6=6bSlt<=PMZ*V1=q9ba{fdQ$bYLM*cE~26S$TjLt%E>ymUHv zDqwraAAR6UmG<=NEI$*$bAYIRw^8DBfsAj(ln*B#bV01$e2Z9Z%iP}P7S%Cih_{|f zqGTH*BO!^iMbfk-#O-p^qS`!0ey5E3Jcjk)bqy6aWQ*R6oEf6+nlf6L-9o#lJ~4Xs zER7>0%col1lMP4olxgwcIQFY(&eOBcoV#^f?BVMnEV-$K_Nzgl_Sb|&gTt-Tq${9> z&WZ)BUGWwV4Ox`n+T*v3+&BvkO8Tk@@AnEGA)n``Wt1nnu}3o}*lpFE`JxxHD5?2b z;7YMelNx4y#%6bK9x3R{>hHd!InN5&F4CPDW?fY@0Q$oe$l}&BqK#1Z(}Eq%XASoJ z=J1=?zj8Ru$9ZQ}CJ_FE2x+C)bYI-ntFYgeU1iuZ1{Wx_C~MVh;ska1)Mz*pl8;es zc^?lEs5W@z*be8aSUrZ5-_kM1>$}2V?D>Sr3Js_V61d3;TH$b7F4sFZ$>G$@U$XeB zE0zX7NGh{X))VJQT!kyV303FP1$ zlmde|JHYhJl_4V-bf%b#WBD;C17`Ev*Tx@dA4vG595p$+e2AWm@r2UrZ&E`Emwtmo zt}Nj)v^K!XClC=r&Iy~8A#K`Ho3{A2+?d$hF_Y+AIrAsu2@8;Z^*-zCl+VH9=(^?r zJY@yOZ~nbhRYZlHzv8uu8x}l-4k=2UB&T#aQsvdMD4mCRbtXP}#9%8toEXPH67~?x z=)`!y6c>tzEQe7GaTppuS*_;-jk;1IG%DP>j8qwo>VevnCjnOaDXN^ey-Po-t9FlQG5QqdtkuXzF_r<8oy}X=S1>$k%VZ?~S}A1*3xzY3ZD^>n*_4 z_Zvi<99Z$Xbl%ok>Xbi&%r}pj`~~QcA_u>?@RL3yw;*$-z6n8cqN17?;c6P;(i%1f zs1i;e_z>!s{Nxaeo!YGIH;fsgPGl8kFb5q`7%YUW1$e;83kuU7k88+JJX5)ZqUc$s zqc1&dvn=1@F}YumxTIOtJEF-(9be{YGZW|=xe}#refnYsJ!{O|#}~D%8?F$QSVnki z;gFptDJZ^a-gUJ0h1l+Lj@CI?$SxulZF49PNzw`X$>q_ZS{CqaM5<=$+-R+}n6xuL zOxZw6nCCzZVQqsbqZfsXG!pgnCY~uhRHN)3BadrNf^k2?#mD=OdLh7li_zjR`#iH@Y~G>NaM6W2&KZPE^t;0qrJOs zYwd~B!*9Rv(5HBiEIh*z0jf-TW8va4R6G)IpuLekACM~#8L$Z4frN6%Lc5n zG0&7pq{a6=+d68r7k9XER)?o{dGCGlCcu0x`e>>q7O|lg%S8*-V|HQ=lf z-{)VzY~!A>zHztvvHk-=sE~m(za@c+P)D63PC48$^9CY;18OVEsF}FoHDi#n4huWS zsWm!s!9E;)%%4sq>}zRzB2S!3qxg!$uj1Uc-gN3C^J;iOn#w&KY7a9T0Hn z#5?taZKor~dg1-3cvLp{v|~hK<*4D!#{uGH+q-Wr>&KkjO_M(KwNH^zR=mV>!N2Gz zhe)zp$QKu~wa6DGvb88v(v+D}9!RsvodC;PySue^88>`qu?Kmk*$reLC}1Y?9*PM+yJM0)EG z&mooCF2x3%sgmjQaTE$X!QcALai5ZRB2eXP*qt(IZ_Z-;)oH%i>lV7`9Ppw1(u9A= z8EJ`fP50gKxKY--yaZ?-FI~c}RaDnU2+-sy$Di?inoHC!l)Z%+;B2FSat!Pf)^f zG7fE~JofnEv#J$vL!15PShobkB-?HwZZT;%+Z>{r&tG-l#U_T*e)*xMph=vm*1((y zbeeLq?7kiwC23my29?XE_#W+BjIV9}s;kr-S%eSS)gZTSYkuZ$4>0fwD|&a>UX7zc z?ii0?QiJgCRw2#;8hF`v7p_$iEhclWX95EL>C>Ieeb~;J6rD7j5lGc zpIq8OCbIfiwQQst3R*&qFU($hLYGKtn>doiqEBbB)3 z=8;|oVSTH@G^SyNBxtR3LCoF-n=L;Y}BUCdrx8@gI+VR=@VMES*J=N$CFyX zq*3nkUGQAX#JV5eWPQg5KC{^ns0y2)<2dMUf0Z{G7CNqtxm{O%y8~YuZRqWzl=9*` z&)Bj-U182QPxz7Z5@H0T)!HvDQ|pa%kW@UlO3&g+5xC^dY#X@ca&5dPZan!X^5aK1 z;;rhHS9be*&kp+HA0~O+J{HF*#F*}1EKNP+2U=IPm;1=+IW7+1bE_y-OY^M5TE_bI+#DrOT4nxKl_- zsiIc%c(-r%>e1?oN!es^>qsTr6}Enj2U{FLOL6vt`&oW^6>$aCU@~>(yN$TAj79LG z?Cv=455csU^6=>pi>M$ZZ0nI5rdtt*f7ya=qObozq>-uXhS+tJJor2)+=Wr@uGcrJ z9{|NwO-o`b+%D(dBlGmP2{0}YZg;wzN~1l;r_}*-+<%5tyXn zQx<&*fGepy@rJLjCx$_Treet0_8!ksF!B=|3^AhK(QUmn!j zYnXq&kZUy@qrJYBB)`5N3&q6GS-YV=Ej+mkwRRgQ*OCD*-bOe1iachwd3oCwymTlkJt`jPW6YLqEnFh&@M)OUit#>IHa5}cl zN{eA|12sp^eD5P{v^Ok9yc;j*=0_rNw9Yqn(09(+(aMEaLo*||2uJSD`VdKXUSH*1Dq%Lu}yjl!&~4HCj0N*kiBoCt=E>v zKg&lCXYxbk9fp>j>@!Ab>={9%z6uGMvNz>B*CC7!u7fCzEHEFtd%S{k$B-t6qhJ7S zFGSv;$3*$d4LZ)8oMVO}L095rNH-*W6;bQGE9vO#!!mWCdOdCx+C2%q9cscyg&O+G z)~@#Keszxfmpqy^1yR%j03uC3a6L~fDcO|-dO*dZXA+Fqm4&3Kp3iwIi!u!8RKER!D@?56A{I$jxM3jtMR&R~fMH}!~lX~98T#evWIH_a>QQitn7&mw2C8cfxeCP*M8 zmtT&4e`)K#laTKG3jOJLU{``+Xo~45UO7rHV%Fi29>Sd-8`vSWNV}9}N)D2RUpR6e z+~|sGuC4a|dDivQl!bjl&Yp;d(vW4a^=r8$78+oubxmuG94jWq2bOU!|BNApsYKOxc*~G=|tvn8WO(d2lYcPX#b+x#&{^DE6=3jCix?c92G9 z4wfBC$Q^{#)5XnPWkk1icq*Ee*n_vcu<2NHq_Flj;)hen z?E`1#K)4HMDd9^~Uocw&)#_1Hhk<4(^ACV=9{+@29v}3EoX3nWCIIt& z<{DCa;!D4&jUP-YiZpdR<||HPcC1-o&e_8+zgLY>hNfOMaJ^v-(I=@pnHuv+x^83V zvD4W}eR&7Hh0E0!vBx7Mql%ux4$93n=!&|tsQnF^Qo(A!;>Dz@FC(b zL$a5c3fr*BWkkGTm1_P7-J(?>guM^ktR-e5;y=Q*dz4+X7g*$A>_S-3(PVX!*?R|V^=@PnGw6{2+p&RG+!5o}amkyG=%9Jeb zbF|e3#-U{g~BmqWWssrSkS2lCU{?XD;4*#9U?6$`OBi@s- zxzng6<&@)S>I3MJICkxKc?4jJ2u#!$zs-;lTzIWecS3ME6)TvjK0WKh45XkXgK)s; z7if0T1zblUp1^Y-G}7XbCo)myjZ4pBW`#e*3e(5SO%$-ZOtr+^|E;uwM*Ab2$S$*q zGI6Tt^~6ex->3`CC}`%eQ$uGyGq!-&ddyL&T*m8Er%_*Kzel(!=;@PS!Vi;Ll@-(# zO`G8r5N`Xlk)Y!F2Dn9>)0`?d&Zi=6qET|sp5mmighZ0o@;Z%bW2WB2 z#WRw0HHv*L4KD6da!>}r`3bnb|Ht5wq8ThYR}F^w1gnL$P?{#O9z_BxQBjp8#Wco&xlxVFA~ zQ@w7I$qKcJk~ zBK!f9FEie0VlaPTs(B|f-N1zU^yXryL!V||Qx8NZF!(tn2st7*XTU(V5{dt;5u3yP zF_KOIIM2?o?^X=>Vnqj*>(7)nTbIOjD>SdfsZbM)0Eqh@;4>D-c>ho{lE-j%zOyFO zDP|lk6&Jccpay#D*NObYYM_SX%~d_0#B`Yc#`4u0hW@8WU6Ep- z-gYl;wxo{=bz(0-4eZW;C-0icNI}jU@jB;%U-U|75dxr--R=iEyea1vd4|fnZ<-|Z zl>GT-O|aXmP9Bb&ML>^~Q_Dq=D4pV}M10NS85RT5(8}>AvUNIwuQWhLKS;Svl*psm z7D34w1G%n5E{@F5K#pe?bFR1~wHDb*?8? zTTA4!OqaZ#YuXw|Iq6BX3ad zm%(?w?jHO_jTHSv^!3BEmw%*OGoS6CTo(s=)Na4WepH~JfdtcYP8vrPV)7ly>-an0 zSaYZH#guDA;j{FM4UVJyhVAZf19FN#loImowrbgr>i!T>P_G2uZ+_MdNf;Qb_>hzo zChNDe3tiEl#y$O)5!oRM&$ ze;YP}j6#O>m&1`1pSpwEnwGcsrHb$(0nkdO*S^&n?QiTfF`rrDMrH-CwxRhPz1?RwAu!*)N7Mk0iVQpZCWsD_ZSod@LI z5e@=%LG1l!lYhJzf65fxO%GLpN@%=EslTkK^(~B|LRNq4oUv0>P;WcpM(I6xToC6# zJwxPo)a~UC0iW-7pgA?7!+<|2t6yWi+4Q{e%%ibnKEAA_KI|%(Cw*JV`+?slS(RmU zsD}2~D+<`&JZaUpcP^z$fhr=s4G`+Q#$j@ysl?#bG%suz^~mh3{Ew(2B_%EZWC%Xl z6${m^m8eeh-EuvSA@bSwsT^3Cd>2n0=GZ=8e86!~_;f60YJbbQyE7%wDm^lwZ2tp| z(a{m031B+u5ItI<$ygI@i%{q98kX9|QB$f;NKyH^GQ4j1KgChdRN>pxbd7kN*5Qj? zkt%hg7=uYeEXGb<=b?BeiF}}LR7Eeu?f9le|GNj1U)@@TnIr;WBtZ=U0dbznwM&=F z9T_z&s|8hz!yT`=f7ANHx2Z{i7(zx}5h>hsdBl-Z2C#)XLwfwZt@l-3kR+kJwOELG z%8@6%>2Tp?d`1;3#c}gmxT!A?f8{k?lbkPXHfnOZYCG-JzJ_<|*v_oOcY98m3QrSj zrSHt2nWG_Z)sE+~>JC`i=(FRSeJfhaVpRT(OoO2Glj7J`y(cD^7}7F-sYH-^bduHw zvmEOK)}V4u`$k4a_p|keP<7{XvtX+HH6Ef>bs=>P*)9ujE&=$q$N#R9L zlr&=do4)kTO3yIH)J_l!H_oW)QM)iGLdt6VioDEuY_EN^pZVuD`EPskAfJyuHp|m$ znn%nlzEI@*!JgVDzCviZl2T5&$Ottnz){I8X#$$aXk$plqr|EmVO#hR7Qox}$A(!blp4qHpDO>p}QW#wC^&ZOXCPlRa`YB>uXd6KY{1L*)=8fzKz9Iug z`l8|ey48sHr%~yttjDat7+`8>Xs2YI=cGMK0`0{gQPFWKh|L&oydYJPF(oq0W)4-D z)v9#3N+21qd<%WZiY44Kj$(Z7M}ZJa`O2?G{bEIs#!yUD#27UtMq@}8uN=y8Jr(iO z029Sc=^ZdmhG)ScyeVATQnFF~d4so1*Of@!cgEYH><(%oaWc1PvAs^=^tL-K+bbyH zy{XBu`n7~Jz?3-)xHkLy)6q;P%dm0v(=!iX_6+XULWjV=Nf9;fI3i>pw+4w70@Ev* zO_cw7Nm+1iznP{Wimxx!>?*s6nQ8f$a9Jj46049^H9_fm$ZG3nTEQ$6j{QAY)wlZm z*6RZmmHMsiFcM4X>)gfPGsFK0K^f-r0Nq~*e)XXyP_%|-@f_{ z;nS)o3r9p$_NLRJ0}NnQmt8FpPeV)*sihb|?aMBxy8dos&N- zY#$kna~|#l7P_O8De95pSi8G%g`wQ{hL%hqU&fv*#e9zt5;W*F`(XlPwakJj@cQa) zRP~fRXbMg=+EhcbMZeq{Ok?r6$&<*71T1y z5ytjFATe0TEk6`+{*R4}>jM@x_wLSzz}!6zrb^2l+)fC+(-OkAoKeFTjQ;^sJ_$mp zv!Be(DY!b8`q2Zd8iL{!qUMNV`m^o1I`=_uxVu>mPohm>cWk+VW|NUk-wQ#!2wMN? zI!{5@choxA{z2YI=KuYI$WzRW1%2xv)&2i21pB*gOn=P|aAD#{Z*zkGPR5?pM?b0M z^Y@lnr=YSnC-k2#VW#Z!)%|yg;qOa0z~<_lRv!Ov?RdoR;qZUE1^`d~)vYQWl~aGt z+Fx*6wmo1Iz-l@}zgYTzwZGz!Uo-vm8Z!Np?HTZw6ZWK%a-#(FD=Y&-@xS;^;7k6e zdP=boe}QR#z3-_9IT2VDJo$4$_!Xi5zVigaUE7P<5=1Duol5zar<&ZqMv!4Nx8DB` zPo3Ty4G>f1JWR{{^v_+cQ((>V&sO<&gZ{5p`j1v|CK$I6h{0uh=~KBw`M}RRoVl;8 LrBr&)^3{I8Exk$PcU5`{+}*cka;|L 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 Nw79%juBe{R{{tX6nf?F( literal 0 HcmV?d00001 diff --git a/docs/tutorials/overview.md b/docs/tutorials/overview.md index 733157bd..6ec0d275 100644 --- a/docs/tutorials/overview.md +++ b/docs/tutorials/overview.md @@ -21,7 +21,7 @@ These are the items you should become familiar with for running all the tutorial * Covers mobility interactions when using a simple 3 node wireless network * [Tutorial 4 - Tests](tutorial4.md) * Covers automating scenarios as tests to validate software -* [Tutorial 5 - Access Windows](tutorial5.md) +* [Tutorial 5 - RJ45 Node](tutorial5.md) * Covers using the RJ45 node to connect a Windows OS * [Tutorial 6 - Improve Visuals](tutorial6.md) * Covers changing the look of a scenario within the CORE GUI diff --git a/docs/tutorials/tutorial5.md b/docs/tutorials/tutorial5.md new file mode 100644 index 00000000..4724544f --- /dev/null +++ b/docs/tutorials/tutorial5.md @@ -0,0 +1,166 @@ +# Tutorial 5 - RJ45 Node + +## Overview + +This tutorial will cover connecting CORE VM to a Windows host machine using a RJ45 node. + +## Files + +Below is the list of files used for this tutorial. + +* scenario.xml - the scenario with RJ45 unassigned +* scenario.py- grpc script to create the RJ45 in simple CORE scenario +* client_for_windows.py - chat app client modified for windows + +## Running with the Saved XML File + +This section covers using the saved **scenario.xml** file to get and up and running. + +* Configure the Windows host VM to have a bridged network adapter +

+ +

+* Make sure the **core-daemon** is running in a terminal + ```shell + sudop core-daemon + ``` +* In another terminal run the GUI + ```shell + core-gui + ``` +* Open the **scenario.xml** with the unassigned RJ45 node +

+ +

+* Configure the RJ45 node name to use the bridged interface +

+ +

+* After configuring the RJ45, run the scenario: +

+ +

+* Double click node **n1** to open a terminal and add a route to the Windows host + ```shell + ip route add 192.168.0.0/24 via 10.0.0.20 + ``` +* On the Windows host using Windows command prompt with administrator privilege, add a route that uses the interface connected to the associated interface assigned to the RJ45 node + ```shell + # if enp0s3 is ssigned 192.168.0.6/24 + route add 10.0.0.0 mask 255.255.255.0 192.168.0.6 + ``` +* Now you should be able to ping from the Windows host to **n1** + ```shell + C:\WINDOWS\system32>ping 10.0.0.20 + + Pinging 10.0.0.20 with 32 bytes of data: + Reply from 10.0.0.20: bytes=32 time<1ms TTL=64 + Reply from 10.0.0.20: bytes=32 time<1ms TTL=64 + Reply from 10.0.0.20: bytes=32 time<1ms TTL=64 + Reply from 10.0.0.20: bytes=32 time<1ms TTL=64 + + Ping statistics for 10.0.0.20: + Packets: Sent = 4, Received = 4, Lost = 0 (0% loss) + Approximate round trip times in milli-seconds: + Minimum = 0ms, Maximum = 0ms, Average = 0ms + ``` +* After pinging successfully, run the following in the **n1** terminal to start the chatapp server + ```shell + export PATH=$PATH:/usr/local/bin + chatapp-server + ``` +* On the Windows host, run the **client_for_windows.py** + ```shell + python3 client_for_windows.py -a 10.0.0.20 + connected to server(10.0.0.20:9001) as client(192.168.0.6:49960) + >> .Hello WORLD + .Hello WORLD Again + . + ``` +* Observe output on **n1** + ```shell + chat server listening on: :9001 + [server] 192.168.0.6:49960 joining + [192.168.0.6:49960] Hello WORLD + [192.168.0.6:49960] Hello WORLD Again + ``` +* When finished, you can stop the CORE scenario and cleanup +* On the Windows host remove the added route + ```shell + route delete 10.0.0.0 + ``` + +## Running with the gRPC Script + +This section covers leveraging the gRPC script to get up and running. + +* Configure the Windows host VM to have a bridged network adapter +

+ +

+* Make sure the **core-daemon** is running in a terminal + ```shell + sudop core-daemon + ``` +* In another terminal run the GUI + ```shell + core-gui + ``` +* Run the gRPC script in the VM + ```shell + # use the desired interface name, in this case enp0s3 + /opt/core/venv/bin/python scenario.py enp0s3 + ``` +* In the **core-gui** connect to the running session that was created +

+ +

+* Double click node **n1** to open a terminal and add a route to the Windows host + ```shell + ip route add 192.168.0.0/24 via 10.0.0.20 + ``` +* On the Windows host using Windows command prompt with administrator privilege, add a route that uses the interface connected to the associated interface assigned to the RJ45 node + ```shell + # if enp0s3 is ssigned 192.168.0.6/24 + route add 10.0.0.0 mask 255.255.255.0 192.168.0.6 + ``` +* Now you should be able to ping from the Windows host to **n1** + ```shell + C:\WINDOWS\system32>ping 10.0.0.20 + + Pinging 10.0.0.20 with 32 bytes of data: + Reply from 10.0.0.20: bytes=32 time<1ms TTL=64 + Reply from 10.0.0.20: bytes=32 time<1ms TTL=64 + Reply from 10.0.0.20: bytes=32 time<1ms TTL=64 + Reply from 10.0.0.20: bytes=32 time<1ms TTL=64 + + Ping statistics for 10.0.0.20: + Packets: Sent = 4, Received = 4, Lost = 0 (0% loss) + Approximate round trip times in milli-seconds: + Minimum = 0ms, Maximum = 0ms, Average = 0ms + ``` +* After pinging successfully, run the following in the **n1** terminal to start the chatapp server + ```shell + export PATH=$PATH:/usr/local/bin + chatapp-server + ``` +* On the Windows host, run the **client_for_windows.py** + ```shell + python3 client_for_windows.py -a 10.0.0.20 + connected to server(10.0.0.20:9001) as client(192.168.0.6:49960) + >> .Hello WORLD + .Hello WORLD Again + . + ``` +* Observe output on **n1** + ```shell + chat server listening on: :9001 + [server] 192.168.0.6:49960 joining + [192.168.0.6:49960] Hello WORLD + [192.168.0.6:49960] Hello WORLD Again + ``` +* When finished, you can stop the CORE scenario and cleanup +* On the Windows host remove the added route + ```shell + route delete 10.0.0.0 + ``` diff --git a/mkdocs.yml b/mkdocs.yml index b71a89bb..8f48bef1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -43,6 +43,7 @@ nav: - Setup: tutorials/setup.md - Tutorial 1: tutorials/tutorial1.md - Tutorial 4: tutorials/tutorial4.md + - Tutorial 5: tutorials/tutorial5.md - Tutorial 6: tutorials/tutorial6.md - Tutorial 7: tutorials/tutorial7.md - Detailed Topics: diff --git a/package/examples/tutorials/tutorial5/client_for_windows.py b/package/examples/tutorials/tutorial5/client_for_windows.py new file mode 100644 index 00000000..5f55680a --- /dev/null +++ b/package/examples/tutorials/tutorial5/client_for_windows.py @@ -0,0 +1,60 @@ +import argparse +import select +import socket +import sys + +DEFAULT_PORT: int = 9001 +READ_SIZE: int = 4096 + + +def prompt(): + sys.stdout.write(">> ") + sys.stdout.flush() + + +class ChatClient: + def __init__(self, address, port): + self.address = address + self.port = port + + def run(self): + server = socket.create_connection((self.address, self.port)) + sockname = server.getsockname() + print(f"connected to server({self.address}:{self.port}) as client({sockname[0]}:{sockname[1]})") + sockets = [server] + prompt() + try: + while True: + read_sockets, write_socket, error_socket = select.select(sockets, [], [], 10) + for sock in read_sockets: + if sock == server: + message = server.recv(READ_SIZE) + if not message: + print("server closed") + sys.exit(1) + else: + print("\x1b[2K\r", end="") + print(message.decode().strip()) + prompt() + # waiting for input + message = input(".") + server.sendall(f"{message}\n".encode()) + except KeyboardInterrupt: + print("client exiting") + server.close() + + +def main(): + parser = argparse.ArgumentParser( + description="chat app client", + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + ) + parser.add_argument("-a", "--address", help="address to listen on", required=True) + parser.add_argument("-p", "--port", type=int, help="port to listen on", default=DEFAULT_PORT) + args = parser.parse_args() + client = ChatClient(args.address, args.port) + client.run() + + +if __name__ == "__main__": + main() diff --git a/package/examples/tutorials/tutorial5/scenario.py b/package/examples/tutorials/tutorial5/scenario.py new file mode 100644 index 00000000..472208ab --- /dev/null +++ b/package/examples/tutorials/tutorial5/scenario.py @@ -0,0 +1,40 @@ +import sys + +from core.api.grpc import client, wrappers +from core.api.grpc.wrappers import NodeType, Position + + +def main(): + if (len(sys.argv) != 2): + print("usage core-python scenario.py ") + exit() + + # interface helper + iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64") + + # create grpc client and connect + core = client.CoreGrpcClient() + core.connect() + + # add session + session = core.create_session() + + # create nodes + position = Position(x=100, y=100) + node1 = session.add_node(1, name="n1", position=position) + position = Position(x=300, y=100) + rj45 = session.add_node(2, name=sys.argv[1], _type=NodeType.RJ45, position=position) + + # create link + iface1 = iface_helper.create_iface(node1.id, 0) + iface1.ip4 = "10.0.0.20" + iface1.ip6 = "2001::14" + rj45_iface1 = wrappers.Interface(0) + session.add_link(node1=node1, node2=rj45, iface1=iface1, iface2=rj45_iface1) + + # start session + core.start_session(session) + + +if __name__ == "__main__": + main() diff --git a/package/examples/tutorials/tutorial5/scenario.xml b/package/examples/tutorials/tutorial5/scenario.xml new file mode 100644 index 00000000..05d93045 --- /dev/null +++ b/package/examples/tutorials/tutorial5/scenario.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +