From 201600e88065ff3c6ee69fd39824bb5b1116cbc8 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Mon, 7 Mar 2022 13:20:03 +0100 Subject: [PATCH] pushing some notes on the README and the Windows TRDP-SPY plugin --- README.md | 9 +++++++-- trdp/spy/plugins/3.6/epan/trdp_spy.dll | Bin 0 -> 48128 bytes 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 trdp/spy/plugins/3.6/epan/trdp_spy.dll diff --git a/README.md b/README.md index 920501d..61d3a8b 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This is a "private" fork of TCNopen (Components for IEC61375 standardised commun **Now awesome**: Debian packaging is there! See below for news on 2020. -I rewrote the Wireshark Plugin [TRDP-SPY](trdp/spy/) for current Wireshark. Compiled binaries are available for versions [2.6](trdp/spy/plugins/2.6/epan), [3.0](trdp/spy/plugins/3.0/epan), [3.2](trdp/spy/plugins/3.2/epan) and [3.4](trdp/spy/plugins/3.4/epan). It now really works for Datasets, Arrays, Strings and filtering on names. Try it out! Create an issue if it doesn't work for you. Please be verbose if I misinterpreted the standard somewhere. +I rewrote the Wireshark Plugin [TRDP-SPY](trdp/spy/) for current Wireshark. Compiled binaries are available for versions [2.6](trdp/spy/plugins/2.6/epan), [3.0](trdp/spy/plugins/3.0/epan), [3.2](trdp/spy/plugins/3.2/epan), [3.4](trdp/spy/plugins/3.4/epan) and [3.6](trdp/spy/plugins/3.6/epan). It now really works for Datasets, Arrays, Strings and filtering on names. Try it out! Create an issue if it doesn't work for you. Please be verbose if I misinterpreted the standard somewhere. From the latest revision (only available for Wireshark 3.6) you can load a folder full of XML-configs. ## Goal of fork - The [master](https://github.com/T12z/TCNopen/tree/master) for me to play around. @@ -32,7 +32,12 @@ I rewrote the Wireshark Plugin [TRDP-SPY](trdp/spy/) for current Wireshark. Comp - How build the Debian packages? Install the build-dependencies (Build-Depends: debhelper (>= 12.8), doxygen, libwireshark-dev (>= 2.6), libglib2.0-dev, graphviz), go into tcnopen-trdp/trdp and run "make bindeb-pkg" to build the lib and the wireshark plugin packages. Install them with "sudo dpkg -i ../*.deb". Wireshark will find its plugin automatically and your Linux compiler should find the headers also. Only need to add -ltrdp -ltau or -ltrdp-hp -ltau-hp to the linker of your applications. With this, I will not pre-build the Wireshark plugins anymore. Please checkout the upstream branch for older pre-build plugin binaries 2.6, 3.0 and 3.2. - Actually, I added the plugins for 3.4 for convenience for a last time. - + +## In 2021 and 2022 + I moved jobs and now work for Stadler Rail. I am not using TRDP on any recurring basis anymore in my position (rather MQTT, VDV301 ...). So this repo will wind down even further in updates. + Some upgrades and bugfixes in the SPY were pushed. Building for Windows is still quite annoying and eats precious time. + The upstream project still receives active development but focuses on many goals. When I pull their additions, I notice that warning-free Linux compilation is not their primary focus, which also makes keeping up tiring. You'll also notice some [differences](https://github.com/T12z/TCNopen/compare/upstream...master) between [upstream](https://github.com/T12z/TCNopen/tree/upstream) and [master](https://github.com/T12z/TCNopen/tree/master) + ## Missing - Regular Updates. This is NOT in sync nor latest update from original sourceforge SVN - Support. I am no TRDP expert, neither have I project funds to work on TRDP diff --git a/trdp/spy/plugins/3.6/epan/trdp_spy.dll b/trdp/spy/plugins/3.6/epan/trdp_spy.dll new file mode 100644 index 0000000000000000000000000000000000000000..a1d1b2c4f2219d221ebfc41f81bdf57f0197347c GIT binary patch literal 48128 zcmeFadwf*I89#hB$tEEecEK!0Ks{ihQ6MgaVjx7bB!LszV1RH@&?F=qvXaZX7YKL@ zZlc8FD)ow&T5D^iY87t?cuNQ+K|mtjLa|Df+7n|nQstu7eZSAloZU@?_V=;=-ap>A zt7k6HJoC&m&ph+YGjryI;w#om(UK&^;0XpLX$xZd<+1SJ2WEpL4Ly6?Q0avsd&g`s z*!PYpt#Nu}m%CxPyP{66tf;SV@XE^^vfEcLJL~0w%jU~<4ONcJ(Zu3kKXC_(AAaIi7T^EGTEzGMotMXa&*P|X9(>{!z;C+k z!6#!7M}70~6F0N?fhYVdc09@B4J<#;Sy@AE4(?$|p(It^94lFlq%YIU`lYdQV${&H zrGWYfth^iCW^}ms%M-W>d zm82ICOZ}3xfd=W2B)NN01WmNvElH(1=p=E|T^Li~g?=v3A$q6yWqKWrUX&dt zqQnsOeGtAZN#&XDstRv~B%M`&a?q4!;<*A(#4is`XL2;joPvTjJVWt3f+ymahmuSe zM`V3GghCSN(|96&c|_0caaRJyWCGbRycZ&nkj!Ivj@kwwl8ht?0mew$M(OY`Pm*SY zbN~NJDFNfuGbKrBH9q$$qCoPKEHb8zX28dg>-A2Tq&?!Nv@T6cU1(cqTcr3uFHs*# z+W>jl)o;}o(jH-{uW~*#-Es*8J?@`MYi*iKeN$<@F0E1hL3=(IBvnmmX)`sa0HHwL zSDvO#D9Y2^)-CeBiRJ(I_`lc!B zZD|{U&{~j|2jNV1k{s-5*+uF;1u$!CXVoRWhkQ(s{Q1E+O4QftOg)vMTN)|6#`ShXcMR_{v9Q@GTT*Gb+8d2`I|}h zvZ7v|p#*Fxj4MSwp|l+Ij##g#m&GgU+uCHRsxB!9)Yqr@Z_JRqsfwCxdQs>uCV=72CEZQe3Dem%=t> z9cYEO!u^dKx$uxY8(Y70X)_-s?FFNjdpiohUn$-wykG@NY=rkz?{W2 zf*E#oCq`3N)b}+9N@$qNnSz-zXgvKp@@!X?UDdIEI+$33=W0AR40>)xKJqakPtWZU zk8T?%wyPgNX&NyV9zl~ut+O{~?J8=Wzo{rNe`9fL{+7bl*=-oI=>-9sAv9rHXLkX! zyQnq42a{?s83E)EBV8rZ{TM{sR#I5C3_bDhXynsjPu~0j)8=8&QM-CTQQHff_j^~9 z!7(eZqkYK$E=*_VN!6yan<)<=Sc&!~94Rz-mih>V7OC`yFJk@mjZO~@bGW1EX znzgH-wTecwQ&D%5(IJ@xE#IOWs^xc2P@lSjmVdJB1Y}VG5WS9Wr7!`5mYqPdVIIUN z>b{_5JsP8&5joT5o}lGM094CA{s0;Qds>WXa~m4PXyqyDo6sb(WY<-rJ%Frs;)#gU z1PEG|vgS97s)TmynZi-{4x zQV>rXM4a2;KE`{lz%ic`r<37~5jZI)#rdreN(vK^5iJ*}{e2_tf#mx!iD2gJ0plg0 z0E->8+`NPm-0ZV;Z4snl+8p0>qS(~D1A=KfQDSPD0ibHxj#b6BH5EX8XoPS$|Kk{M zzhOwDfpk*lVi{5sLy}L0^j9!dpeD}*76vR4To9*vN>mx|$lJc1b3TT$P|SZR&WkiKY}y2Bn=npRSzF0mG= zE8viPLVkg5DNML-ZT4XO#?q}|3}rGm{YoP^=k^Vj%FQPA4th!nqGwp&27H;U`NhJ*L~I(YkLiv0SWg! zMms_ejsjOvF^BlAxn4AeF3)OvsH3(Wdh42USy(f%6hVTy(T28U=x|8s|C5-zGwyC|(2;36jUNeY~r^2|q2-h!g z(|}v)JB!HI}(9mSy2Q43>iN0Y4s$vFcA_MJatzz1dnV}iw-(fwOJ@J3O81q#j zmjjbH4GR!W;yf&R>m*6qiRFa0N>=2XkVi730NW+G7@Ghy03f?KVtVe$TQHwFLJOEH z6sS!*p{)JdwquQokd81wZ%&tCm2M`O?SMNh) zZ!LZXn71gc3+`yW{z0X+_}AHiTTozXfoy@b4?CY>*!Yo^(f;;rFxdMHoNU!HHbI1dnrHAhihknd6N5Orv4@qI13R@XxezsC|( zOgme0gaXEkK$50(k@{}dE^gJT=92|4yd@Bm16F`1qY&I^ONf(naDw)3WbJ9G)E1^Z zZH#9VkMXP})4F_QY+Fh61!`xJ`d(p6ura#;4dj7`dhkF_Sa!=UZdL<@zotY6HXysy znXqTYw@|x5OBZ{s09oh^P#j1KWH^ZykWkc>8MfDn8`JqO zq#c5gA*shr=f9HHjWm>`3K4{M)YLpI0pqYJXgV9?Pz};oSqobZn_BjwykKg2Ew(Y< zGu1g(|A{D5^J`QI82%H{rsiiwrcnL6%^x&e5A}}4)Oi@oi=r;L1+wnLDn%lIu=f(P z=%0kMIEcp7l7MD8hrKrqfgImwCkwxs%O)1QtpZik)O6I((XKDp1`7nDZ)&Rn;lz_y zvUZB^Kszf~JGE)qXanmH(xz{4iunlEW-fXWEg<;Pb)`645utu0H~NP>cYih zT?|@25ctc&TpYLz3@uy?MDRlAHZ$$u2n}a&N&P`oxiDPi_o%XMBAVJ+xQ}{(x<@+< zTQUJ*M?a>*?aEud>k8jI+RmXmVDDhSp22|Kg8^?02JDIiK;_pJc7b2kxG8@-da|yt zQwiV!`!um_Sk6O=K*9_4tPI^C;Vp)rIZ@3_6shI=)gWKVPZo(vDFxaN9P~8J14O-f{y!%Rn zmWvstUB_g_Pw-+Q<{M9B${}6qO9sXU9VK@clk^;**`mLQu}B!8nI zQ2v82x;xr{{61D*u7Qkw zuxfkjbH@DumWcrTThxpGj`y4VTvzYC5P=x5WHe`6!rZCLFV6PwVtq;Sl2N8Sa z@!ln2&@uw4$9t79=yf}rpS`~bgI*xeOFg|~!=Q=Ok)B?9F(J4(9T1p|-hV*?0`xtY zz|q}5O;_~yei{bEv>9}~Nk$L+1xztsCm7`&T<1B+r{gsCuS$>6*=JKlI8 zN4np%d4Kfw_T%v|PQA_HdUv6oQrU%iSkhl&2E2)rvN=07C_eD}7OBPev9n^kTKo)Y z9_FiQ^F6fuW2}{N`=W~<{9!w+EgPS8rL^aTo50kG90F()l)PB|lU92SXL{HOnVR>4 zHVk855BcD*vo_TnnDM>;c#`RsBTzFkmZiF}#OWkEJnUTa3tyH$cg_81*c+!*&Q$Et z$0LoHU942pT+s6O*--softWvc7OMgWaAv$|5tila(iAZjjID4+jue?L*muNqc~`Zm zex`ys!ENF{O`o=5LL4zI?mA)`hEr*(V?~23m%&@PpIW&HtqkJwoed!_mFS*GE@>H| z^_15yqWZ_69sbL!2Ww#vM^i7wqnXdyG^2-7uK`Lk1 z#6Su))r_VfuQz*l{}2rNb2V}iz40_6ilOi&f9`j`1Hjb$14932Lru-3ss7Il-X;ET zvBnJn@hxu`FEc~Z$Le0^hO7PCSao~5c6M~Pq87eH$N3lp5;*xvOUWT3;lpyjM2QS^ zfXmND?7js0YVqq^{-_?TA@M3}+t;0jv)^8{0P^kMCZT($CjS?#_NO5KaS>L`CB#xl zEf`av2fpq;b;UnW#j(@}on<00)6RR#c@F@GX+M@3@+(^Q`x4mvYQ7U4LZgodE;ZP4 z_HZw&$YlSMUDdMM08zV5_O~D;R57)z#H@mgatB;Syn#4sYWe1yV6f>`nxB&Ii~_az zL3qP(kDtN(Cci){{F0`j+G)z*o~0>+dzElc-&eBsXn#sW>uYx$M}4+Qxsr}OmR#9k zQ{$+@%|^=)F#GsN-@)`JL#{pNdMD6j#DaM+)pg#qjA zyB$93kg+(*KSz?bqtQk(l6CBc&csj%}(^*9-JHWwdago}ewZ8~2dDH_1ff?SQ<&~N2)FPkG zx=9~nAV8)twyn@*IMl`&i0BN7bd#M-?52gCPMCt0_fQ*CIB2<^C2*=ld%(pCj$g{@ zR3&_(f&(Pfe!~_hNeNnxK}Pod&MgG@>I)wq;W7* z`vs=Ir5??wmI4ks0}#A#ycKnVmQrG%)!2eer*RQN11R;)v8%?bkpY44;A^XvVW=9k zTm)p4l<<LpLRK+w&wRMfhDQxtTe^nnbDfBDgG}EJ{%^Z zD!lU!xQXENI4%2uo9QV#=`TNpCbZzb}0U4dH7td@nwhbd+i z!!%AnlW4^XA%I3Loth=z4;<7OIZu!U!HX$P`dr8x$kg)|PUhoZvT{@&uh#;FHcAI9 zClCcKr*X`8Xyc;p2Ii3n%sKNJ=8cGgmfn2I7=ItaY@|}^AZR9)GR$H`LCfnLvpm%L z94Zx8K`PS&b-YS-~;mi6*C%+=v1+y^EuLOcBY##xdVp z&+>#!(xY=9Ab*dD>;ZPnMEhUJ1}&%a8XE`J_=?xK08Vd2jd92ZEq{ZRQInUWLeSzw z+O{R06MO*+HJoR1cwts*xmmeN38v=&OE-3i^X6mP$o|}MAb|?T+FxOX7(z!OE&JJ+ z!@Ok$)sN^bW){jvqny$SY>S(lj4a>C2a?xe?Fw4nwvoMf_YR_#d=`qeGb~8A<_obrw!fvKpby)hbQ%S`X!6SMX+@m~r?kkB@xq&3&h7$RHk&s_zYl6M6B!8}5- z)UY=24sRbZ=g%$E%R6~_iC+E;%7d0?8MJF#38(}u9;(x7Oao5Pa<3?&LBKu+MgH6| zw<8UV1Yr2asma@r$B2J|$hKu9L%am6>Qd~xm#Uu0m_PHw2Z4(|ja1Z86c1ldJ!PBF_(N3!+wV~kn9uKud-|x zE)n>5$V;Fm4*{9fB)H3e!nA547@oJ6-oD>@XcC&Cx9{u%L&ugV^q_+_a0sc}9a~~q zNH(#fdi^$_)6*6a??igfN%A_J;{5`rWxw}=0`(0$+Q%%fUQaKZ14Ra#+GcCl;+3p! z)8_4kSur;i;n2kQvF%tlN+QoYX%)x%a9vtz=)`juPCWa;Bi=(4W(Dnm!Z>V?;)>L- z@RmYbY9=Wzh*Qw;Pkl+O*-w#ne)cguV5Zv`rucV>AXwNR-`( ztUXX1r?m1H@NfV+`P)?kR#qU=-7G>}4@7nZ#m{l+m0)vP6MzEmFwSylSJFs!!v&A= zbji*lI~U>7_KBz;ur4 z!|CU2i2X8aFdyF3wdURuppmHAo0d1VLdX+n$*fV5^0YIc!!xn9*{AgawUz5=060gmsU}7yVz10`6bsL6W?aB;&%<3C#*p=xaByC>!qU6tooT>n3!c`pRgk z3(iJAPq(Z2soG&^G3(#03?or#RkDNmNlI&UL2GUqjBD==DDWSTHnsS48dGyj%@`s! zzFaQ~SCJxwlpOJYmd4qN29#Kd-a$!h(OmqR`Vo?~D+YhIQWJvomW%Tx1Z zMA?d3xQe#?O#H~4-I{zZRZ@#DB#^9i520KaS@!c3HQGM4F#{UWs=(omMr7?f3olnt zT`AWAVSPzp-0%r$4?L9C4>c)LJ=jrPiz6%cX7)<51LPmd3uuj_D<0@&9uP70@n*DF zYe-^B=DV7#1QcdB_vUe&tj@yLK3ZL5*1j7`Op;Q2r`Q8@LP+llyR^!X2Gcz=b+6Vq zf@$zJGJK@Q+o8e1*-3rq3g|KVwESQ}R>;UQ?)3E++X_X+s*7t!7}85-pvjyruTlG! z7D08ktbN52yP0+FJ&X+5X8H}43EduQA zF*zAE)K3?`K1bK)@M8Rw{N)v^Utw1Tn+q0$mXvH-4!Ji}%EqFT21?R?&3di{Ek`cG zU}a0*0<7Ces_~ke74>L&h|vvt4@%B}i@E^=p!Wl3D?;B=h-r4%HK3_CwP}nJF6abA zBWDFIH}OW2MI#4M8I9DUk-q!4fm#bkE3QxA>LXnw$a%wex=_BS*qcy@LEO_+XP9x>0P`Me z=PPMV7%7_GuBkS&sRhmz+Mb8yswiG7K||!|u4TY0VLNUhHoX%Rj9>VHT4sKVJJ7>4@2dK?)fqnpn856Fynd`yYAKBQuNn z6%4Vd`AOE;epBF$xaf7hvY`BA zr3{e>5hTw9aEdKdYkmoJ>T~Am z%|`ltts4gqt@-w2-8htuFg>9)AY_WD3vHr5Skor4Jtkk{wDU|Ph}qc285iXs$=12y z47giMpcrxp-{KT^HrIaM1nCy5hcNx^IEKr4!_@4CtEJAcPPJKm73z%1Q*D!dmn-UU zETq~>(19_$v>G*_1tp59nNFvR@&3G-I~g-E4iPOXu{mx%CCHADHm$Wz@@W$N+62 zL{njZQQ$^cgIVCE4OvaQ6^?~Xy$o+_lWzewzYwir|AJ=O+#twhd6?O_$vlf@yo;E{ zu{$;b?0rKyV2iOLmlUZ($;2siLX*c9?jqGBUWKt07z-es^6pC}t~g6%C@r|8B=Ze>2fK1X^@EW4)j`Jk*)DfQmPFebIQU7qp}clIY4v zPVzB9(!*lj2ax^%q(jzoV1HmawSOhDu2|5O0(AE{HA}}RbStC@8C>BjFr5$8L1<4a z*Xl62@iM4UE-;yKQ{JqYp-I?W`SD1;3EDTHr%Mp6|DLr@+b`i2YPazQsejvQ5Cks0 zUn^&o;9ch}CKJ`_!pTI?Yl4yHevlpIeW$5+GbbI#H|s%F%cV-K(Mrod2x+f&9wCvl zWP{^SU>cT>$pWusHe~1D7GzU1BQc?$_Y3V3D1zh>n(OBV5A@G4m0oC zop6D1*piF0G&*5}jz0kiY}pN1JzzTynwr-zy~Vzow%>J>@i)ff-P$q+Peg4KYHMy* z&(t!Tfyv-n;uzH-+9FY8)hPum5-U>R7!A>~Me#5c2WCa}P7V?NQ~}{LI76i&hI*-| z{%eVc4=Je<54#EViy_>@B5#2kean4-QzLJSqNh;A4v~8IhU)&B>ORL1e9llaH?eZo zZ+v4wefGL}TbB_&-8h1r%0xS}MLR1vSb?KTB1mOm-p>+VG+_(eI;n3ir$z5rv?;s< zx1Z+6voA|9uBO6$>IrYUwm+WFNcg3gA>RYt#t6_=qk1aq?2A>~`=ZFeE~TwuEetaj z_!2B^)`7|fwIF?KU`int=>xPODl!xN4CY_kumjFFYj1x=+e#d&U@60{E|CyMRj-F` zW@DaUXEE<<%)Qxg{;A0Kci^UK+u}&ryS3+7jAfZG%3*b6?VCUYx>VS0dSd-M}Fx=D3Fn-1>L8hj3Hwc%SgUP=>rpOyqTr0n0}vXzxB!DXzc*j&&0 z2Q9>pfR?@Wcl_`L>mu$`|0A#iu)4rrdb=! z5c_eR+0=X#^Hcx6rpSK@ZeSi}Gj^}G4L&wrFWXyJrqXTKK=Lm^OWO`8-ewiU^j<`? zx+x#9T#qtXVk~*uS)dMyj|Q}XL$yQ(GBr1WbYC>q@{ox3YL7F5>>Q+r9F-C>gLE}SNBqDUo)Q-H#&N^vB5%$K0eDM?{++|Hd?Q?CtU4S zRO?-b8vYyNCEvLat#6EW7(iNo`E1__Y_tGJC04r$C4H5O3cnA|%N64OAAN6t30K%3 z47Rj2Vx}yC<{$KFeN&0vWbJN74~FA;kb+49DI>asH2_xu;*o-@hPJdc;C0T72R9g# zeVP+lI@>7GijksGZy646oK)sL+F(QDXgJ~Q?$zReL0zEB{N;Aq0oheP4-|NMv>N(M z;*{!5?Yi%RLAsg`$@4iAnoitE(0o2qQRk+zAuUjgk_uEC3~6!>`0s6`wgbt_DP4^; z=6}F=erv>v$4uJ-`j(N+aqJ_EtuW*YT{C7Q`E4P+T4$SseR#E=pgj#b#E}L$bL)s-Ey12GT6V~^=XVDB^&5u^$_<-RQu_BN}{uHrJ! zE^i^G$Bh?bq>c~wOjQCYO?cj=;hv$|qh#CEBH5Qn$uuO>yfMMHzIThFyNlFawkDyVjgN1YpBbeUB!Z%pBhlLBz zBe=rCX)GMi!n0UtW?>Wyzh;y_Wnm8s-(cY@EPR@UkFfAg7B;hRB@1g3JafRA?JS@<8V3)IsbVqJ%fdxpF?!MU|~NCkFfA-79M5c zaTZ1~nlUVlW#L8!e}ILzvG4{Kx>&f3g{3T<$--oBtCW>Fu%| zm16AbTi(-bc*9#{)1L*OJ~d(N4r{(~}YRKXQ_X+yDz`R@&Rm)yLX{L7$;RY2Rh;-5;&<4FfWj z?xtl>Faj6Uya{36wIf4d_l;TyB7C5U$&%4ggcSmDuL-Re!;`v)=1@j&DlK?8F2ZhD zyoBUO^ROj2#P}*}m$nS9bThp8E>zTdVeN12SqHn5_maV%`%6E7rj|b;>@==L2Gk^N zGMa5}^IoRy!|{Q(KMuiH2(VDQG4`;5;1arVBY4f)pLgp%?S7<= z_KZ5{|HPpE4cKZ&-=my~3yF#Kd-z#}Y;Vm=Z7soZg%YoSa}OIz=M!Jyu-!D(;sp;k z#^J=^3p5d!fqVRhRfSl{*4rQ_h&cf^m9|n+AMR*9ITkJT(2`Euv*!SX)Yzq7?U8@s z4SJ~PzR04#8TDHD>cTe#L?@vdT{(MG+l4Z^#CK1-wv&vxYCN4c>>aA(1TB-%ES-$v z;|E_}sKv~P7QN@A=3nwS%R>T-4Rny%hmUYMcR|ZnV{{(+VzUlXDS2FUm`rD<^rbqD zn`*pY(1>M|q5~_@OQ?ym-q*hm2K6Z?;;{a+{Y?=r8Dd%b3X{rb)be9UI-T^V3!qT6 zJz+`%eJSfLLsvnA-%o*ikhLplxdhW2-WBe_BZ2$OEZenhNQ^}DklkBI0xXgRIt9Zj z_jxw^!vaCe;nAdM-Z=Kb;NJ5wVWwRR9Xb$2lKdN~0=k_* z;8x?cYdB^e(l?@{)3^W-VxiM`8B(MNoyN;Wid~6NR+f=k96Li|o$tk*D1kbw_uY z`ly~9Y(qVn>PmoX;WHb-spP+;%LZ4uO?wG@&Tkd zA=7logI?pF*huQ`%g3qL*rt@g-^VQ|+;ckv0O;x@#b1T5{K$7*Oxu#xIiQ;gi2mYi|=(^?7P7D@eDk&}2F0U(m8zv^O=}UJbQZ z9&QhJBk_K9V0+t8E!c@qudaKRwRjafyw6*psGp-zS@Ank!FzEk{_Y2Bx-eB~Ei?x$ zGmul;l!=r+n#$6FVwvaZj)saCW`Sa?(}!dw3+b#vvy#=WFfWzm)Ad}Qo9EjOfj8`#d*|5V?a^7+$+OW-wZdY=;-LbTj>icVv+K!h2 zvTY8*}cK;wx}3YpMZ<1!zKvZeN>Cf5Xd{yfqPqu6nAHYP!3vV-i(#C~8c) z6@3;qOf!KF6nspmK!JnTXQX#RDOqj(is{*8n*Y8pCXs#5=-6cFJ4WqN-}(8WH%=RY zrM>SA?PWMda8-tKk};Fo`r@=WWHuRCRjLDrD;L%Q4%a=Lo=)pp;NjzXsx(}y=b1Ro ziA3M$5%t-*sWvZ6lr$$`K+*Q<>OTUgCU_`fswhOy;ZQTJl|iu(m@ zo|dL9rft1g{RX@X?46FftgnAZ7a=Dz6yfgGOp`Ktb5W@6=hTgwjiEwBqMt8{eD708 z@HN!5*?1W$x9nnnsK->$vCeo2^4fdkL-~LvB#@%j@XQd%%ZX&)XSaf^cqzweHRZ;j zs-zz9Eyp*CtFG1xIfofI>PQ2ZWS6x&7z~;oNIpvW8#zuUq?}c4YA{}tO&{Z_V0| zkxOhoh~tS{EIU`R(L+CUIlc^tbn5|c4E~r+lJ+e*y1TW1BGNky9pkt#8217h{@(## zoK^soK3vUv8`5n8SUXR&1p@?kYP&vQsMScdOwFl4P}H}8UjsnzF$}w|{|}P+pucK# ztS87!25d;c=mc7aKYcDD*c;OG1xnzlv^<;`;RaVb0>%BdE!}YQwApBnvO&vSAS>#xG@vPgdwNg^pN_3~$FMD-6%VhY`HB}f#7Y@b zcophU0s)N*Xx$^4l#t0m%w(inx~LEpzRzef_YJqg1d zA5fyT*O8U&98|}X~HO4nWoi7J& zI`nPrr?|Sg(z5njDery*U6+At4^IO&q^v`m!bT2z|FU?^%G269#KM+x+JQ62VR6J4 z7HNq3@J=5u3fsI`D(x5?#orOHSAW^fv-dmK?@UGpjGhB}ADb})k1 z9oYEb30SV2LX?aPDH`{NGHyH8rd5VLG(RjhUN&t&S=?3|#JBf+S|=GTtUEaAvk;Qn zj#`OG6^&~v8rQAlY+q%8!~M$?l%aP+kZwUb$PN?48VT4n5#^2nV}wcH{xDeZqbi+;y7SAot42Rv^5pww5=QoP&0u7#_L&0M8`sPKAB9ELv>`-DdBaB z2Goh@u-@Mgjb9I>L4TGbi7Jy7GDaZ&SS*7NRQgl zjV{xD)JbfW&ZlZP-@shsy}t(qY<|FInd$6>ea2k+L1_kiFUdF1gdV7g?Au z6zoQ73$VHi&gm)0>G5HbgHqa|>4$vD{^X}nn%8>fqljqYW?-SwnW z=aCt{vUf4Q5XB#Z34vv8CLrrsVMn-tBR`JMIynp{GH-o)eIi@09IuZZ~1 zBG&7D@GMX55b;J4-zMU#MO-4{i$!b|ahiw|bbds9RJ8M%DA(Id7?hU=+*6v&Qmvu_+Alj6!B{!{!qmIB0l;Q zulIq7UlZ}8BECt)H6kt*@iY;qi8x8bN1x>Mx<$NE#5aj}@)NwgT;wkn@n{i8iTGoI z*CygeMZ8YLE)g%*W6__XB7gJ`qF*B3EaHbnyhg-TBF+=BEaC(a_iyBMJ`{1ch@j4N^MO-D~g(99V;;|w&i&)ZQ-kg*v#y?NQr6Rss#5aj}tcXQ5X?>a0L_UHZ z=T-51`JhfE>*R^`gnft3PC`0fU8 zLuEtlLWkSqY^djWI&h@`0hONtF$CMVt$KK1%cfa0-CKyR5Xq)sSEB zMP>Y0Ie=aOD*S!F?c=t>+2qe*Y2oa?yb@32w<%a)Zu#Pk#{>h z4);oj&K_?+0_b+QYFFonJHXm!K;8+KEOObZs!+)z_-8<;i#UUbDp63t{@8q|{VKEz zy7RpiULPvya0c{*fq;8Z8S*ZwvNANzp8z@m43*R1;>Y+4l}`+pPdZuoq;NTD5`F{g zXK_ADopp`|9~+@?|Gi-#>UkP`?n=i3x06xP>4bq*4v*JaU*Sbx7R)OW<&i*9vkv{O zSne1ouevHp45b*KidB@SrfM7&RSx&eN-jk~x4P0pa4N5?sIBzXR(Ks%$^cB(4}nKG zgiF7f`SazB0^FWIpXVd-^fsx47=*sbx*jt;!DJbLEKmAh=Br=Pu&SO@gWoc*phPCP zJP^+CT@{rp9NsdIbB$vFK8MTRh6dSFS5aGwLWb{y?oyj&jyji@4i*J{g3DAOaB3rdt{CvhY@7p z`5c*&l$=|EbSP`2NOZW~2E_}+&_+;Y11Y1!s~`<(x6W1T@H)opLT3`sl=EvGl`G`Ny4neR zXfnZbX1Z?R(7%jy-}%#IVgf(prwM{ycSDu064G6^8j=|xZ!ThtoujrY69lTn>=5;7 zc+#t6N3Ej{!uH5ZkXg3c>yRB4l{Ht6mzVjxazlOXYC@`YRFffLd{mu}#?w7O56kx) z>!e0G15lZ@k$w)c&|)y;tj8cZt7O}p(xQbnd*PhY?9i}DL_;2%?itH^1^TtiiAILI zVpVQ>ZLL#hco5uoa(J~42AwL|`(&@Pa)sx7!bka(aJk^8 zM692(SU}NlAXY&SXv&ADHqASk8#Q#8PeNL6If&0YB8ky2ssfQ;_+-{XNr60%mU0iX z($Fu;V~LS@G3D75(DTIw@|*^*v)Wn7CvJwQ%_b&nz0B64^CjR#mT)jyWN@ONK{J^u zFl{570d_^bQ2C%jUO%6#io1@nPxKsaH~KF4T~NQG9%fT!_M?v&+TlLFOwz(@X3ngrh8~k$QPtfhSH3)RxwJvy~uLHXZ&0zljU>P zyU^|G3Mbh!(!Xg5Vp5^14{i<_E5WwptqkXh2OVDOhCzaeD{5t0W%(fK$^svm_%`R4uP=@X7TK@ZxPC^HA%na>#Wsgie?VGP@2BOhrwD$01j+?0DH* zl#)%2*`?Ie;qPxidU{!MsPNPYaJCU;Wl!lhFUDWK=IaO%9o>Y z@ee1V4bcckfH`q`J&xLHaK$QCIV)-#mS@T{9J0sfh5@5>0Zi9apc(2|t+Nu&!g5*o zl^(gFnwfkoxJbK!Q#Zj`MMegp=oV%?-Ac_MXz5S`=;yWFs@SZkcs)ebl8TJ7rbG7Q~}%PzBzk1#^S(2Sze z`GuvK@_d-UO7KG>giM!Va*vmt)eIo4BVYVs(WukQohvZ{wNA7~LjcwUg(?SIq9C7T z6G96e>B59UZe%%`iPAC>tv3^RgvPqY0;Ws^@ZTmf|MC!)>qSbtbUWDlu<3qe3I;Q7BH{70WygwLYvvge`k8DY$wsm{YWPLLoL7P}~7h0LNJS+`z3N;{%R_?H63bk2opc zSY>ofuFV5lrpk<8pmA;`X>hZ`iy=*~z^dkUlAAR_th*kso2EksbA~36dzfoIpJW>L zZslrsLmhaia97q4E{Ux|hF;Z?*NqI^9xps#YQP6cEJrC6e5JF&2eGpalD>YkzAhZZ zLcU^~myK1p3WG6o;uP+eVay;a>jb?S2RR4z4fPYShpDfsaKlZoa^Csksdpanfc^{O zto%bZfC3{&Uib{7T>^VQK<>2T4iLlW`UxG{2r)l@f&9*09-<#4*; zM9j}GDxv|-pWyIRR$!j+AuiHqzC4gA!9++8Dlu2GectM9(We3Z`H_eQ^~dh?dNI0% z^{|BCAFdqj#Y41-WS9@?JOnP}$Q|c_1Xf}03V;1a@)y-Iv1APR4d5611!y{y3D$u* z!tjuxGFUS(vP@Sn?qY6ZW@DDPS2?kc&;%#d*PUmy0Katrr3gZ-f4mjoVH-s2BP)k< zBKCdo*b0Q{W2G3;i5E?pG&$stg;C`aT3%gMnFE$uqDxv@njb+Q&c(l{|BDd)Fe;~C z$LL3{-Xz9;+$@x&d#!P+##apeV%yvy_n)z&F7A%6uXg?7vC7`x-c$APq;&^}{%*?$ ztIz6v_t3fn`|lfP-#p~i>z=(KZo-zo|MJY&*H@WeI`fFU>1ySgt^fSc_FD7x@BDdW z-{HU1&3*BmuRB}b_AlH}ds^GZ6;*3aEc@5zyBxP(w$zYvpf`GPkmC` zGs(B~qr!d3?|pE2?psejWj%22H0i^+O>^Jx8d1^x`ioz`Fy@>c&o8|Ho^AU~kG;C( z;Vn@a@#~Cb&mBnGnbw>5>@C+dTsX{Lv-rs~E824>RBv8y`(S14H3to^$on^3V1D<@ z)|O|lIs3)Uv5y^o{nuIVY|$Rw71ucVgk-vX^!i^QPTU;@Xxlqre3#h z>-Qg>`Iluy6aH-Z=XG!2=CHr>-QtSpir<|3;xw=H%5OimzWk2uv5zi&|DK-Qx*c!* z?z^wwd;98MXa4sG>L<@!xBQRYTgw0JnGjR(w=<)&%IpbG?7A-bFVn9vmONpLI?rrQ zeC=jAX;=D-HH)5aX^@A!Q@!=qhb!J3dg8;YHtafZ{@4xOn_k%Xe&^}A&tJYa`Gw4! zrLVs9$J%XevVY4zHb4LR14$omj(%YOv)-w*-u>*ERr`NsIrm_Uf5Zo#;fa->H0M;^ zeeuc1wUa{uS<~^7GWqHF#TTh($^0nLZUwi5FcW>WRuKo7C z_iniBt>5g}-jhA=$VZobwfyC`mM?nc_kW3f@sin7o>TrjF1g1(D&d)x6}w0Jt6zC!e?$6|k89@Lvnpv%^sK~}w~mM!d*Qjp z1+V37`%^~ZtIyqe#S7zNu6};$-VIr+4Awz#9u+t7g5F`so$%>s(ix zf^X!+RxeF73=2N&xWoDMvg2`#8b)E_fv`}5ILE6!d1_^}b? z-Nmzdu~>5@I~wBBd@-C z>-KGLSnqm%{_lVLLYi?(_qMxY-`{)wq7O@7Uw+`6%r(`|Z@IK$N7SgAEAJlHaKS~d zCBE>R+mkv*ePp~M@MY8l?(yl?pRB>apFw2FTRb%ufA37V5u4h9ghY;TqVTX)>7*DO zNI3LkOAt?jI|BJ841iXeb7VZ4dBfpN;8F^rcbjv7yjOJ~pYL%UNZ^W;gxI00So z9~g{}!25R$4vE0~cMK*(;Qc!W69wM9LYw{H(MyWJ`*-w`1zu@UaUqT$3r|IJ=pekw zrx-ocAiPtxjn@n8w`dK2pMjel4*FMc1z1|<^GsmgOLavhxex>L6Kb7w-cSWMk`kAGD9Iabouaw{^Abb;Ca+&%;}>e40Ex-E%SX87kcl z9N_Z3x=xq2fY{w(j|vwBn?Zupj#V!YwTmLYU6drk;@cRUSCh8`WM93L@fvomIfZaO zmrj+iO~5{r`Ik=5CGvF9jf>BNzv_i|juS3;mT)Ke8L1P_JDro^KuG*}yFU*tBFXsw z8OX8oji1^>@R9C=+?};jDYlw)6oY+QI^6O(7>bDO0!TR`Ya>q|`6|N3UU5DR2J+RE zuO2U7#`c;a1e%l1s*`qBALf5I5NsRevF zJZ2aCu@ZKygsn6Vcj#!l3Ww5kx`B6nE1fuWtEgWsGkHZQ-N1Tmi&BlZt4ySXTj0r* zm4;Og9C?i=an7_A*$WHkSOuDab4GeMK|gW+h>0ecAVtNQ8Go;VikujmSo#Rj);8kY zl8yo~e(W%vQ4PHu0DbvQz7DjBm^F$3*OCYP@^lABNBEiIroFuV!Q@Hk(c`D|C<8GRp~wNw%=BmW@< zPb1122bGb}unCoKL)mSj450u0{$G$lD%yx@ifY<$uOux+`fJ1)h}HR$6jzFI#N)w} zx&Z&?!eU(Xyj+q-;ptm~e{TVABbxEtjr$oJ=#ECYBqiaI@r=haqypoQClAjZ%YcXH zLp%~R{GsWR)H4VAg)H6qSbrK4@M~m5)rjvzJa2x%`~}DEyRhGSbJ6DYN1ng^fv4{# ze?NcP(gMfIrK>#4e9qdcDU+AFef3M{IcgW-4Nie$SrJ}0Ep^rUmgA^!X;$Wxr4Cm` z{Ze{aQRZ>2#y@aREYR-^@#txai8m|yo9T5ldeiFa31kI7v}e#^X;y29M-FSm1qu8g z0~{xbhy2ErI# z*8o@v!|NUhV|YCSV5JQ2&_Ec&gDsL2w4aIhG4z_y3ZJM%MxMQ##|`Iu*ez#~Ps^|H zcxU-=I=ZmhOQ*aZMi~0jL^N2PALHbs3^qr4D2%hRq1Iam5i`4yh5;6J*Q{AnwT#~G z=RF|g=Jr;m71>xb$^h6EjQ^5ISSiO_JOIY=$^o-tW0u)SV+Gy&jU+un{5W{t`l!hB zv1Hr8Zop`+i1E!rQqlm681u;lTl_daS%R?>c%(MC^@{&tBOX>L=0a$BNnOhSy5a5z~qPEL}# zF?q}*G4Dm)$ov`SB}iu&&X$t<6AumPj%zczV#=efQ6)6ryU@;jA<7^{S;4n4N-}z*q_!0B zi|2O_a=At34RHo3?qkpynIMg#e#6n$aQDzdtbKeF5IZT#%4x+(O`!X0JpF=J zWS;efcrwLGrqU$IG&xZ+xf9EI-2^Fbf+RhMhyLvW8o$WAfyQ}%e1ELVXdQDwf^@;* zB3i>oe>duoS`X?yH{|d0vW2MtK#7e`~#Yypv@eIBQ@>Hk{ z@*=#*d}LiiYJ!wnHB?G1O_owIeyMKW5*t@9;9U18!ambJyBPAb+?T?B;%~I}UlQa}MtIt*5mI-YQ zMO$bSe2lykZ6!pJ+^tM6svvWHjD&8Tady09hTfa+OzKZK6z_^Fk7aX@Y&+L)=ymB3 z=r?qI9`t+E5NVV*4YEB4GCfPeY(JD(B4j#wEW4fgBrIO@!(483TT{>T@fkw=l#C%6 zc;h5vRV=&AdGkfEdwLzD^}Ifxbo~Zfk^#>!OT1+94v{SAlLdXUOd57buH@&1so;nH z*&6Z<==T}Y-$djMyzeE$m@SBx66VFas4gssbm3e{nuF(hQ8x|gYCQLfd;`*JBFZU$ zZA7_FI}{6BF$8~(Z6wBw#y`b%S~;~x{dg92@0%w{Pk=tftlqq+k{^v%yg`bm`Herc zIBXeW-3H+g&JLkG>r1kf;D%j`kCEctF|O$HD68PZ%5-k>5Gfh5Hw=lAhD<^mI*q}x z(2XGk9}7QA@R|=lZZDog;FV%FHjrzGj;I%Eb8w#7OXv~iehS7cWfJshaNGZ<`M4-4 z&Tv||ZHp0luuZZUwn(wW6O)IqIj2gWsx4-tV5cSA}PNMEFP9c&6j|2Vnoglk})0orQ;LM&Xun$nC7cbw}=$mbo3vao*@~ z>v{d!u_#`J>wIN(6<0Te5IDqH4@k*lM4SK2f5g)0##lbCL*QcrmhHt_@VhYVs!g!* z*I+6AZ5VbKu=OtZpAoPT&!K;SStIIZ1E!#^909umux!A{|IvT3FCc}wr~3WxI~OjQ z|9$7e6WY;74guF@BAtLhweWppG^=BaGJRkN=+ zM8C7nVEbadE0>kg)n8AUqmf|_e z4{x7v7+?)S@Zm>|N4ju8zE(;bkf*m@;|D;T4u_+xy0!sV+NE(nE~#qp(Y5yJtOOmc zbghPu%W}9u!!G1s$#QsKgxflfG9CIU>oMM0;o@r$ zqg8Gv+xEj(Vz5fwsdP&!OXH0MQI^~+SK)Fw>Z{7C3387Z7hDyrE5j8%TwYv8ugma7 zkCBfU~4^=#kDEOoJ}5N%F~{f@~SDD4j7Fhl@fQ zb#nNi+TB0mt)T%z!kN-1gG>^j?A9aSgzlIT(vRZ*o?$ zsS=5}NZ`>72=h_qz}?$QjFFJZAp>rq;YubhG%{7Ej=_hFfL7rRofjY7P=U{=i?u9N zO_JW1`1|BAtgHqvQ84>2i^V-J9bD$BqEE9Lq8yDbhuh0%7EVZozMxfbOqMbH}PS?g)jF5aH9&TS zHmoU(eyD*UyeNC-DH($Pp5nJRW)^_#&^_EjLANO7xPMsLw@ zjhpk}@p+xKjDdBAEKfM-j{v_#OC~YmPm(G-ymsNNwoldfX zRk+A0eHOEvrG4;``$B1`2nM)XN)O?4lX?|lfN|EYbba)4AU3!vmgD+>fZZ?vMw;eq z#H8aDq(<;q<#d-}eS@`GBXaZ}v5Z|VSScWtwYcFf-Ag@!(nFcC(k&;-xC_sWJczIg z(qCEsV904=1C@k-Xb_Apl9eMv@K>D)rT)1Jb7q>R#b<34vdO)8!SC z^hFrXUKW-yLXBRo0llXxWrOtPsY)3o>|st-PAitc={pq;by&Pf$Kc|Uyd?cCj0@vQ zx9H147b`r{7kuQ!C>`WEOj{3@!D@^kov%b_j<=yo!XM!s0P)eB7&{OK(CA1=C9VWi z)(Tklxdw{<#Q=sDl5y!TM$PjeK8~K1?FQq;2v*P8Qr2NqtA6<%AvUptIPP! zm{BON^x+FKtTUl&%4qW>Phu5ZA5Aqnl& zlbe#vd2lv>LS0=$ec4Knm>p9j@Pw}D11g;bUdZCYoxO2!xIqN5Y!UVkEB9~=C?ZgQa#ZV5y;C@LY!eAO0US~rj!n-l^ytVliE-xgN zPcsuf-v<{RpT&V@z;{Bs<`ErL_=km{tK0fU6`dsv4a*?!_AjSAZ zvDTrm^?DIb;S1-@Da8FdK1-+5%we88-y8ie{Qs^523$t@znmc{{#;EMKugKT{Z~Ac zj(n({(65c(BT;-jUM%7`AW)sbKmGnD@u`m!Q)mV!TE?>F+<$ix>1Z2s)35 z7_T-@`uk7xQUtxH1f4A+{;B;<67;$Rou2=ao>|b-1fApmCB0NZ&%Bb4uPox9+TYQF zUY_79ThRNd<7*Z46hUY4f63ouL9a&8Y5XtgWea-i1f2~cmQSjEILi_DnmJw?!2{9n>574+~oT${*#;*Yzs_@|D?VnJ`cp!0}`f2zJL74$XdaXN6^v!OM2r4y?#OGxQKtMeUSyd_(q|BBL1oRmnP_C2s(NHCA|zmZ?T|L^Iy`d z67-q`o%JF<$<$?_|1^JV1U2mm+`bII``?^g6+ZHQX-aLkZ`9miBcbk!?q&*9$&s z!tF9Xn!lYfslrNVy{=dw}BZ80aaJ!6;L*e|-A_tvFqzod{ z8wDS!!avdFVGZYX5+?acazw9h(9LB;{Vi`{;x#ry;9y^{SN+s{06>9qP3O# z4|HRf{aE&7dlntxr^JzWF6l1j{ljpL;sG8%iS#<8Hz76+$G1MXBWR{L1$R)8E2Co}$6dzJxGNZWkCE;-9>FsiaEg6a>^qT;yeCQbC$E_(NykBl;)f=I2jE2B zQ=|K81-OIu(8D~w66sAy(;pqw@1;@Pk7p0y6n}^3Fw%61I~&jc)6V&XHd4iL`~}0( z)fFO&7Fl6L4+SNg*5GElwS;YVx2t70Zfm!$YnyJfHpTvl{o{5;A%{KmqQr|95jXQM zGig%D!9x!&^4r{4rRk-7NgXX~u(%2EWrq{t!A1&%H#>EcVSgj*=r8=q9I> zy28(aZM5)7u!|NR0Rig9;VRJ3!mZ>LhQHt#-per*)}#2uM)+&6gRa1P`H{`}kCF#D z+Cx4tHo_BN2`zjZETe1iPiL8b+EVA33-CF8Yt9*!eA1gQlS)dt@MmBdU4_4Yh4*); z8||kaa4DCZ;Ge-R<#l*~cL8?LDflDMa)-47SHYKP;a_6RFS-uD|0-(|ExdMFsjtKa zerkaC70?LbB#{G-+(ssCfsv{ zdgxxb2D;F~j}FrxbOas%!{|Xc3H&;JhTC6f4NxA2li*vl@CV=?It{yE2Q7RT?4rxC zb`?eo$G{d^I01e@3$FneU4l=)!J0&O!S_H4EnEj#wD8l{uth%$kANgP4Sx#aXcxZ! zCUKzuJ8*D>xS_k?55Z$-`Jv8-M#)w{AA|cq1TB0U^rEZqlW}5#J`Q(+7`g&KGe%qJ zYjDdreLzR~|LhsCgpR|K`Mod$n`w$Q?ob6G?SOHSh!TDT4}S@kd9e3Diu z?-`{3+|kCb#&erHRDRS?959ym1H$NoTi73_Xh;pHQTAumWz+?ANnPal0{e4l+3xy( z{I!v@D33XxI-(wc8&5zv@8`3BBqh9~gNYA+3*>oBsu?wbw@EdnZs2)Fy`^Tcnel8w ze76!(r$AU;XV3M|_d`C_gUvK)gJam=qBmn4-4NGmP$f~Cx`M|!)I7&ysJAIgaQrTq zqIL?Nqio#sG_4l#G)a$csplz8qWEnUYImv=d~SN5Ap3(}gVdj61Se?wq9OE^4XK6z=8FzxRQT(T9QF=Cso~On*XT_szA>R7g_c!GAc)rO`hYBh|JCN9% zQIB9RFdDP#Ake(FznwI$NhM;XP07Z>hfhsrdSXB6$s)F~c% z8aH-{uC$)us4-jD8K0)Q@Unj{`Zp2n_GaQd?M^ZGQfGnsm+?AHnau5bzx$Jxrd8By zZxJOk8T5KQj#UsOnBQ)!WxYs`X7MHKWR5;b+#Y7km%JJi)NRCVZ%xWkV|5*jUl3nY zd}Ir&2k{ZZ$E??y%wzMqJiH!devcfgb8wblp#Lv|4%)cNx4e66UwS0--01(J7bS_0 ztWX)7##Jk8YSD{|=3Q-z^h{Qv%+yKt9rU2X^UQq~|32!-wX!$z{i~6CJlC;YT@vdV z{7%8mYx=0a^cQy#s{FtGGZ9EN-iu9HOIF%iwlY@MQfZ!{v=&=qmr=|x&rCCJZkjc- zZYu0nuyU=EwQi|0e-rw6#$~s&wQN8S=@C7u$Mv+ntY`F+UeP!8s;&&pXfr}a%t#qa zM%u_4Wn;sr7&Rkcwwjt5#e33BnHjTWuA61EN-Hf^zzSJ0YuJj@Vxzr^RkP}rvNbzu z_t`N!WoPUaJ8PHis=aO3>_9G*i{zrYcrKk=&Si3?TqU=etLBuWIc-kJi8(1}$w@m| zr|fJv6{qF|+*Vg}qi)>{eZs59C|(ZTXdaHebqXt8J^1Rd=