From 985d90bb8cf0ad014b375bee1d27318863274e33 Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Mon, 21 Feb 2022 17:01:52 +0100 Subject: [PATCH] d03 ex01 pas encore tout au point sur les constructors --- d03/ex01/ClapTrap.cpp | 11 +++-- d03/ex01/ScavTrap.cpp | 104 +++++++++++++++++++----------------------- d03/ex01/ScavTrap.hpp | 10 ++-- d03/ex01/main.cpp | 69 ++++++++++++++-------------- d03/ex01/robots | Bin 38328 -> 30240 bytes 5 files changed, 95 insertions(+), 99 deletions(-) diff --git a/d03/ex01/ClapTrap.cpp b/d03/ex01/ClapTrap.cpp index 248b3f4..6236989 100644 --- a/d03/ex01/ClapTrap.cpp +++ b/d03/ex01/ClapTrap.cpp @@ -6,17 +6,19 @@ ClapTrap::ClapTrap( std::string name ) { ClapTrap::_increaseNumber(); - _name = name; _class = _dClass; + _name = name; _hit = _dHit; _energy = _dEnergy; _attack = _dAttack; - _number = getNumber(); + _number = ClapTrap::_totalNumber; std::cout << _class << " " << _name << " nb:" << _number << " created\n"; return; } ClapTrap::ClapTrap( ClapTrap const & src ) { + ClapTrap::_increaseNumber(); + _class = _dClass; *this = src; std::cout << _class << " " << _name << " nb:" << _number << " copied from " << src._class << "-" << src._name << "-" << src._number << "\n"; return; @@ -39,10 +41,11 @@ ClapTrap & ClapTrap::operator=( ClapTrap const & rhs ) { if ( this != &rhs ) { + _name = rhs.getName(); _hit = rhs.getHit(); _energy = rhs.getEnergy(); _attack = rhs.getAttack(); - _name = rhs.getName(); + _number = rhs.getNumber(); } std::cout << _class << " " << _name << " nb:" << _number << " assigned\n"; @@ -59,7 +62,7 @@ std::string ClapTrap::getClass() const {return _class;} int ClapTrap::getHit() const {return _hit;} int ClapTrap::getEnergy() const {return _energy;} int ClapTrap::getAttack() const {return _attack;} -int ClapTrap::getNumber() const {return ClapTrap::_totalNumber;} +int ClapTrap::getNumber() const {return _number;} void ClapTrap::_increaseNumber() {ClapTrap::_totalNumber++;} /********************************************* diff --git a/d03/ex01/ScavTrap.cpp b/d03/ex01/ScavTrap.cpp index 27ad71c..6edcea3 100644 --- a/d03/ex01/ScavTrap.cpp +++ b/d03/ex01/ScavTrap.cpp @@ -1,80 +1,68 @@ #include "ScavTrap.hpp" -/* - * assign values for default or secondary constructors - */ - -void ScavTrap::assignValues( ScavTrap & src ) { - src._class = "ScavTrap"; - src._hit = 100; - src._energy = 50; - src._attack = 20; -} - -/* - * default constructor - */ - -ScavTrap::ScavTrap() { - assignValues(*this); - std::cout << _class << " " << " default construction with number " << _number << "\n"; - return; -} - -/* - * parameters constructor - */ +/********************************************* + * CONSTRUCTORS + *********************************************/ ScavTrap::ScavTrap( std::string name ) : ClapTrap(name) { - assignValues(*this); - std::cout << _class << " " << _name << " named creation with number " << _number << "\n"; + _class = _dClass; + _hit = _dHit; + _energy = _dEnergy; + _attack = _dAttack; + std::cout << _class << " " << _name << " nb:" << _number << " created\n"; return; } -/* - * destructor - */ +ScavTrap::ScavTrap( ScavTrap const & src ) : ClapTrap() { + _class = _dClass; + *this = src; + std::cout << _class << " " << _name << " nb:" << _number << " copied from " << src._class << "-" << src._name << "-" << src._number << "\n"; + return; +} + +/********************************************* + * DESTRUCTORS + *********************************************/ ScavTrap::~ScavTrap( void ) { - std::cout << _class << " " << _name << " destructed\n"; + std::cout << _class << " " << _name << " nb:" << _number << " destructed\n"; return; } -/* - * special capacity - */ - -void ScavTrap::guardGate() { - std::cout << _class << " " << _name << " entered special mode Gate Keeper\n"; -} - -/* - * copy constructor - */ - -ScavTrap::ScavTrap( ScavTrap const & src ) { - *this = src; - std::cout << _class << " " << _name << " copied\n"; - return; -} - -/* - * assignement operator - */ +/********************************************* + * OPERATORS + *********************************************/ ScavTrap & ScavTrap::operator=( ScavTrap const & rhs ) { if ( this != &rhs ) { - this->_hit = rhs.getHit(); - this->_energy = rhs.getEnergy(); - this->_attack = rhs.getAttack(); - this->_class = rhs.getClass(); - this->_name = rhs.getName(); - this->_number = rhs.getNumber(); + _hit = rhs.getHit(); + _energy = rhs.getEnergy(); + _attack = rhs.getAttack(); + _name = rhs.getName(); } - std::cout << _class << " " << _name << " assigned\n"; + std::cout << _class << " " << _name << " nb:" << _number << " assigned\n"; return *this; } + +/********************************************* + * PUBLIC MEMBER FUNCTIONS + *********************************************/ + +void ScavTrap::guardGate() { + std::cout << _class << " " << _name << " entered special mode Gate Keeper\n"; +} + +/********************************************* + * STATICS + *********************************************/ + +std::string const ScavTrap::_dName = "robot"; +std::string const ScavTrap::_dClass = "ScavTrap"; +int const ScavTrap::_dHit = 100; +int const ScavTrap::_dEnergy = 50; +int const ScavTrap::_dAttack = 20; + diff --git a/d03/ex01/ScavTrap.hpp b/d03/ex01/ScavTrap.hpp index 4329b64..7a627fc 100644 --- a/d03/ex01/ScavTrap.hpp +++ b/d03/ex01/ScavTrap.hpp @@ -9,10 +9,9 @@ class ScavTrap : public ClapTrap { public: - ScavTrap(); // default/parametric constructor + ScavTrap( std::string name = ScavTrap::_dName ); ScavTrap( ScavTrap const & src ); // copy constructor ~ScavTrap(); // destructor - ScavTrap(std::string name); ScavTrap & operator=( ScavTrap const & rhs ); // assignement operator @@ -20,7 +19,12 @@ public: private: - void assignValues( ScavTrap & src); + static const std::string _dName; + static const std::string _dClass; + static const int _dHit; + static const int _dEnergy; + static const int _dAttack; + static const int _dNumber; }; diff --git a/d03/ex01/main.cpp b/d03/ex01/main.cpp index 2fad422..e0c8e88 100644 --- a/d03/ex01/main.cpp +++ b/d03/ex01/main.cpp @@ -46,47 +46,48 @@ void goAttack(ScavTrap & robot1, ClapTrap & robot2) { int main() { - ClapTrap robot1("robot1"); - ScavTrap robot2("robot2"); - ScavTrap robot3("robot3"); - ClapTrap robot4("robot4"); +// ClapTrap robot1("robot1"); +// ScavTrap robot2("robot2"); +// ScavTrap robot3("robot3"); +// ClapTrap robot4("robot4"); std::cout << "assignement 1:\n"; ScavTrap robotmp1("robot5"); robotmp1.guardGate(); ClapTrap robot6(robotmp1); // PBM : it says it's a ScavTrap but it has no guardGate()... // robot6.guardGate(); + goAttack(robot6, robotmp1); -std::cout << "assignement 2:\n"; - ScavTrap robotmp2("robot7"); - ScavTrap robot8(robotmp2); - robot8.guardGate(); - -std::cout << "assignement 3:\n"; - ClapTrap robotmp3("robot9"); // PBM : assignation doesn't work... -// ScavTrap robot10(robotmp3); -// robot10.guardGate(); - -std::cout << "assignement 4:\n"; - ClapTrap robotmp4("robot11"); - ClapTrap robot12(robotmp4); -// robot12.guardGate(); - - goAttack(robot1, robot2); - goAttack(robot2, robot1); - goAttack(robot1, robot3); - robot2.guardGate(); - goAttack(robot1, robot4); - goAttack(robot4, robot2); - goAttack(robot2, robot3); - goAttack(robot2, robot4); - robot3.guardGate(); - goAttack(robot3, robot1); - robot2.guardGate(); - goAttack(robot3, robot4); - goAttack(robot2, robot1); - goAttack(robot2, robot4); - goAttack(robot1, robot3); +//std::cout << "assignement 2:\n"; +// ScavTrap robotmp2("robot7"); +// ScavTrap robot8(robotmp2); +// robot8.guardGate(); +// +//std::cout << "assignement 3:\n"; +// ClapTrap robotmp3("robot9"); // PBM : assignation doesn't work... +//// ScavTrap robot10(robotmp3); +//// robot10.guardGate(); +// +//std::cout << "assignement 4:\n"; +// ClapTrap robotmp4("robot11"); +// ClapTrap robot12(robotmp4); +//// robot12.guardGate(); +// +// goAttack(robot1, robot2); +// goAttack(robot2, robot1); +// goAttack(robot1, robot3); +// robot2.guardGate(); +// goAttack(robot1, robot4); +// goAttack(robot4, robot2); +// goAttack(robot2, robot3); +// goAttack(robot2, robot4); +// robot3.guardGate(); +// goAttack(robot3, robot1); +// robot2.guardGate(); +// goAttack(robot3, robot4); +// goAttack(robot2, robot1); +// goAttack(robot2, robot4); +// goAttack(robot1, robot3); return 0; } diff --git a/d03/ex01/robots b/d03/ex01/robots index 524ea858daae38be70dd24d8332521f742742f6e..62ff9ff620099e8fa3a26be737dae581c571e0ed 100755 GIT binary patch literal 30240 zcmeHw33Ob=m3DPYUL*@yULax#Zj1pNu#mhV+krgEl4)VtC|*D;PP-+wErB+qmPclA zMviP^ArzE^B%Xv2g_9xr2Tme}&68l+{C2R1l2Q{iYl!>$CXDnw8DJQ;Ia&%GU z<)^4B=ORnhiEj)QbzNjRR72g7+58J-COBt0)1D%Ofx4jchcgr(=Qbbt=D>1=Kd@Hu zah^>MKyuj_trxk2_=Yv#u;$}jXn%3e{vuek#;=i%=abmk)EG4vD;Vb_LBJ}U+d4gZeCncTT`)M-X*nFvukVWTUuwg z<}aANU|vphL(Uv&_f#lCF1=#K8ZmAB<;%BxWyvodyt$xy!o$D)>%IFH{+;wD9Y`M0 zP$GJECzU^kf5J<=aRsuC6Rwh68d|Sz~4v$uTBD=k;LAV zB=oN&p|4Ehhmj=oG?oJRk53T*68Y^5T25P*<6(IW@JZryA;Jot1-&V)(E2!&99id& z85-Ul2N#$h&C#mLi!P!$u|R}E8|oVBL(S1}Q#2G3q3c#fYnw|}Mf371tHVv9Xj8Z* z+FVjuT)YynxfS8&n#xc^bF?WEt}Cfr9V%WmKU68X7DgjYbv54TUOO zTl4br<|r;O)zoh&sT?hPRhSy6X)Uhf_LCAN&|-CHbuRR{G_-PA@>W;P3qjM>d7Db8(F+-6%_>MNwX{RDYSJ|H7EnFo11OX2x6)C>fTBPw0Xrx^;{5(>0zzz$b6I zY+2>XWvk}WAb=zDYZ{tEuskxaq`oGq{DKY*hbkf)YU)Fk;b>(wjh@!lP-CR2xuHH> zTNB+B+L&v6dGgAHR~18(d0LZCJCM*WbAS553@0SA|Kx4q5p~jiss*fy&Z}%_iPHS7 zQ&ShE4V9IlW~$|h(3<*xs;RFEt&B9c)J2G_l4m&e8s=qdO%xqQ2tD2F!Zr2ciX}@z zb8~XV6{RJGOG0yU=H$#*8eF5iMv+ngK=PU{p- zK?`oL$I2`?>B_0xg7eyuaO*5MI>MxC3!ZMELNr=%bgW6O7F;ilC9cha>m|B`Z@1u? zMv4&K7JQ-w-(kUN9B}Hf;JBKa)N8>f87S^=EVzBW-f6+7SoC`=_-PjWfCWFpf`3;0 z%me=$Jn;U+v;RBTeq?;GbIj0HLIk(%iTXzdg6;dp@0IG0%zqu=k@F7WbK*1yC8}2w zZfI}>>Ac@iokHQzfUG}HbwAbj$of-Mr_eXlC+q*0>J;*ZdSw0QRHslk)Gh1(L3Ijc zLv6DD?^LG{Hq$^q2y&(I1=m5j+4g-OWuv6vP!M-O9h!6%I8a+-GIuvHoI&)p$Bcy#3|z@6%EN z*wM3HtT!H(C1?T3cTR+sGG6IkSk;QlB27E-pq z=XAuWQztJI;%GO~@3s18=OE@u@G|<0PT48-M953qO@NWX_1$~d$A~H3^-KCK@5roU zIQYanUkpBREG6iBGWguzqmzt;aauw=KegX>*}u_VQOguL8E?Umd2-CR0P(HeJE}dR zf9v*`4stxTA6bXFhWXYqyqgxL{izPR;obkHu3HZ9^1fha%P{5(rq1S_ZtnzmzjHGI zcej!5T4Y2@WtCtqR4(+DL<+G z$CBBfX4?;yEc=Nkq5V>rZNCyC?Z?$FAyY$)N!zcOr2V+0CAA-XQYWRD?0*tP_WM7% z{U0W?AFG2{|3f9!42`@l;z?+~6lUA6gh=}*CbK`rr0rKs(tcdxliClyc>75d*^iaf zsQ%w_WEgXFfAMjes#5#@u@nLR{1-5FZEg#8?8-(|aepZF`8JjNPXhsP+uaMfG1Pj4 zT`k+)UfdwDOSZeWKnT~`+{cy3UUx2bbTxPvEtJ67>-M8}Mggzo%aK+v*d-afA+IxtEbU&@Hq+mFuT6_d=-Wo{EpydP>Hp zmIE?IBX%M`80`2f;_`s|I0!Ko4+h)!2LK;*?`P`(9dMVUyLE#I-k|BH<%#>9queK* z5KDwxEyzIUn8*wvI+i+}W7f$+QRkTJWdY0h8)$O$x~WlpNk!w-Ww>@ymmP4^NGN=+yX>HQj2i~@fcrffzhEb&55&6cjrVLY zF30YJvA#ton(nv|(h_$^z+g;wQ0MP-KZI<>65kzf8;qwr4p4X8Y{XgJv6#B!F~hZk zE!iPg5Kz*+-5|Re+1+14Y;6X!oiW>q&ArAT+8EKMSe7$JPJWG)QwxJ;n6!M_P|)oi zQ&72oDm6L*cm>_Ek9sY3kKlF`AL7x2`KA{cZpZRN?tSlSCRS&_{Z>54b=S$J_q#LY z(sL{IDc@g|#Rf+)21oJE;Ns%piCg~_6xLF!&%Mkq$H7hj``p1{R+TO_)6pP$Z`dsX z4Q54W@y?E*BO%vVkRl0*SdgHEG+U5TWhR?=fY(vGxxt|(rPxjyX0hv=+YbVSuV8GQ z_c%eYE~KE=!&sWxl-zqX1iDh+TtX%gdpQ$qmh5mx`@S;t1kHyt6p{NnR&Zv$ru^60 z0^hYD_Hii6k@6`N4RX&6s!%k;Ud=&Wp_Gi+8SPn4D0TqhgHJCk&*#j>hB+Xll zIG#$IclIxX749#<#pE(7yPF6?&o9wlY#dP(qS@_UN9ce?yQS2qGTypX9g_POppi1% z3%Ct#XxKeUeDL|>Sm%wpzSI3|2MseVv9awL!nSDE-r_b^?(bSK!gtCeo6*OQ2@ zT>>i$_d1lNANwoOe+)hPHu)37qN@jd+RwYB40KxF9^8Tah=fRz9To|Z2RpYBXkve^ z`#U42+ajVeh)5ibrVEUu?G_Q0`&tMl)GD^OIshz+0Xl<4?N5w!;FCzZ z3gk4Cy!)LZnsh@s1XA;{>lhm8*mjg!Ux%Bi1mL*<_kUjvCOO=G@)mo|i7CB{%5oC6 z8g#yergHy%;|@=_ zQ-GJ9HdI5-P=j~B6GTNwzukEzO8rk+X7?Rt7JABOdtcFxShQOWEeTW&QK|oHibzh? z5Qx<1%d&K&vT=mt{>BiEw}_~$hVU5%FDyKjjgTVu+lJ`a-^^g$MP()Ar6Ja2*uqoU z2no7nMu=+>QMo^lx}+OI)I8|gH9+lmJtEEA&TzTD29%KQO4H<^k=C`VPw~lNR>pk6 z&Rs+UPC~oc2CnGcKe^t9-IpzZRAHM1kg}ry;I4+^s#zh~Q(+eRiq}Yw97C%eT{J~7 zt)&VrEYG&r4aGxc+iCGoslfYx;=x420v1vu?nk5+E_=VkQp=A2SvvlAv>a7iSf22| zfw*+|zn)w3g#QoFni^?6XhtdB=?(w)%BJZGvBM%Eatr|iQTTt=$mzC-sBFebsXNn1 z+HMh1S%v>-_(ls)Wh11>y~hw$TSQb=LSFkL$UiRp zUu%SvTSBO;!vDWQi1z5H@Ly*dD6@E}tiu0VgAc~=p74KBOu7#L6z%^a$Beq*t~uHn zbY?w=#j?B-c;mf8qbpgwf89@mT;5ySWB(C=`!C0g=8M>4Z?c=5n3gi$ceWgLUoqHx z3rl4csW%yXu7#&^{|X8l*Bbmx3r}SgscV3j{vApjcCWKEJ;l&UyXnIdao;|~mISP} zsBA`!<5nAmvMnMit5MTygk)KGDjOk1?zu+Dc#DY2N=T&P8@GPgd}e3 zEtcwux7&!~#LMkDvf+=3w{=ENw>3(rY(`0`yVDSDw}_~$;_b0Nurh5Hp2|ju<2D;1 ztriiL)p&i#2x+wNR5n72+#DmM+9IN|5>ju3th4Y`HbR2#kRd9!h^VaM?JVH+ARQHN zKN@6H%Pd|ht9bji!3Se_PrUsFD718IxlOO}Y8BOTdu$AF(#!4hQWA#WV-%IudKBRm zvEBDBVtfBLtT1=JF~fZ@{iG#PV&@q>pGDAy~S+zhVPXxcnC>OAlqcZ!f(Q)rHMA;S* zmDM=><7@1JEDKL%Bc#X;8zJK@A}T8(KQcmug{QI+5_HcpLJ~*t8z4jtH}9HxHN!m- z{A|-?vIu?_^I=74NAN?h#@gwFita-eV1NMkS^ycrzhnVq0CfQP2O@X@%d_ouFN%lC zwqN=k4>1}5ybjszh3W|YU!)cy_&2alTgZ)pdS~aDtMH18e1dSLEZ_-3u`C2*yLD|OgM$8YYulNg z7`qz{hPR!uqu7b(E6WX{N9oeJxkv5REio8-&sps=?l(AV%UM1+I0YCbsC{1}U1s$z z??A`$XUGliCI=9@%78UVYL;q~H(YJpWo;ND!*VZgGb2as z->d!oI)iTCwknEnP0U3(OeGw}sdVfa0zmnv6z}d0|iZFxh zd;L6Ms=>rP4|wa>qy@3WKM(kW!R%pSd(Z>&c|gR7i+>()Ke(9upnDnJ8}qXb1X=B4 z`AG5{4zNr<>?-~DyMM$I&U*gXek4o9Yx(>`&Lr!h%q*#=-3=EIga!bj{shLB7dq%> zA>1^AwC~HJCzyiX4=T8(wCl17GlVF(x}@Xff;A-_9~7)E=s3P6*fo19z^h7UeMIkc zy3<|;=Mx{LM5pEbcH*=)l2+RBUTMcWMIC=C7@7L}VEbNQaN(;hharCa^=k`mC|FzY z<${p?4wHO;3Vf8y_e9N`p(O3I^qB`f^T1~w_{;zf+t0%EoZR7LO|$(Blm z)FMH5=Jk1t=PszbUgmS^RDFJ3^~I5k!y30p=JV>r#Y{c>auEneqv6V%(1N%)P#JD% z#=~BH%eCDnJJ4M+#g*4zPq0t z8QF^RS-%wth$e%%8i~L1wBt3vU18-YgJTNjc5BUSgUrZ6=8RR#hp79)Ve0$^$ z68u4&>*{x}wnM~@jJX*HxKzUcp>ptvgbqShx*;fk0R&q zH2Q8?DSWM2zB4n%jqiq?S@0>HrEviMxdgc=8ka?|T>Kvb45DP3fzKlRXFW4A(gr?} znYA=C`^t$E{%L%h_~IFhFPuALIuVkrTKrc(J2H|_fP&1d+x$yT8QY8oQ6>Bx_}>mZ z-n@?Cm&Wh}_T5reDm5LKLSJ!DVSPyt`X7(}JBmEDyTmbV`1>KGAY&{HAevJA4>H}u z$?2k?+lhXc@(w1ayBl=f7#EW6cyhXZpsU8X>4cwB16RiMOS#U+3X&i00=^smOy;MD zfiJ^2qX+ZG#;ap~dJ*_R+_%rR@zpW>QQ(Jx$Lr}a{?ZtJD#q)H@HFmEgkSwJ_^8Iy zPN>npHrD=Kzz@KFdi&Pk%M_makLKSV`0;kwky>s0G1vH!=t$2X=4CeW)NY%u-$O_9 z*TH1KN9XnvRDK9$b6Nd28f=YJE*#l{!S|1$XZZsXu`|DYRY zy5YohG!7|VRX?449DV`#AmYwi&>9>4*Y;>-`?utyOJ~O`{Gq)gfW?^QaFf+R_GpjIjyo}2aLk_)ziOi&tlyiKi3kL&v z%wC@;rVumWOFQE8z2ZZdKn>}CmZsRZNFajcXJQL;*(tyEiM44cMbEy|FTU%`y3a2j z@@1g>j_;cG6yGoXc#-muKMlpV{b#enQs?u0XV6tAcMKlKFBBvuug;+f1`##}RqlbNIkNSNN`nupG_S0>G3p0L`Di(L8y_+hYO`H2> zy4aRJ<#@XIL3#$tKTXd7e0Mt0Je`j5aOZ>-?@#c(I>DGbl0tH32{9|*^IY)N17X1ecJ>51gL0y)o*A5InDNSphA z(#3zJP1%z!{*ab|@_T6+fVZb-faXrp=Y{kYk4^CX$kJ!TH~#dAAu)3e#*ST1ndLiM z>N)1?evyMOEEVnc{nRhM@1ON+zi(fhZ-^GR1oOu{pCT54w(O`MhYkHcW!CpoecMw< z_sz{h+&rekCpHFz_>M2_$9~@rJ$-YI?=qrP)pD5u{Bhv?eA8DY%_!LLhIW`^`qv}}d%H(J~ z-X8#|{%(-%LEiTagyHw{_>wLY=H|qR0oqtE? z_v!pmojilY*uh;oTo!_SO@8~?v3_1p9QDEkp zikA9lOCT>d2S?(}&TEm?ysym3&B>iNOM`_bs;muTpJ5};KB{S`59H0s0nzNa9+sSW z@y&SZbox!N-|@hxLMP|!^E*`ZBsxpS^*bIIRp`teo(DFP&f4Me?}d*QJWssvaU#+9 zO2Mq-ap|Q`6Fk1X@N~iRzzfH$)BWj%XNW*T_$i_%L4T!)Ou=!)D+gb|bQ~Kb%PCkz zZ7oa$pCk?}Nd%uP=yozbrHCnlh0GvuX56w&d<3(pn< z3E_yMVaFzwX`NDQJ%Dvpn~cZx($7IeF8CtQM&CJVYfw$r7uGFi~= zu$@XYoNj;ZbUiA5af;yU&;*TaM()Eocatg{2~qk9@m17_p2q`LnljP*NGGz3ZWrye zLsljWx=pjw{TfcUWp?V z?erlkv_a}n*stUXR@NFdl^b}FGcXaIC$&F_?d3!?8M`T zZr|+0exTbmJFy?=_RLPj(vZo5ZpZ9&jfT_hmz`>~{=A-v_fK_&qL=Jo}le|RsmV+KaepI}@Ny-@=4{2{m zK%e;dxlP04jnfsJ_JAneui-t}j;zyOAthQbQ@cH%b7Y<2Z!uht z2ZpCY;Y4<=0Xz#Q&e3@zcA`BPY1cUlK1m}tCXw?kz{x)WN717y)8RBB0+1hn-T8^8 z=j$xfKdRxSg^uKBIBr@K>hC6jFM$7~e@<6&Xk&xYV!$W)vjrbtq@dW3()48kM}lat zj?%RnJ~-Qvb=pg#6eT&ZcSfAOoswRNwzzf3OInVY??`^ylcGf5B|->_*xDBX9?F8EBkg5cp7e8sNKeyN)GK+Qo?qGg!gGZFHvAIL(})gjkm=Tu8FLy zP16tSc}IJ-lD-7ZY4OzTm1amo<#oB5{~gO-I0y+yn9p1kFC@A+}`6!xS^(T5+4uCG(3Jj zh5;x28@2p^mj4yNsoi)#-!ADVin2mSQnI~2lJYgPl|3opShwi$AJMp%H9YrHM?z?Q zL+P-V<4kg7oj)ef{N;+3PnU4`bGjp;c^X%!;XS7*ILGbllgMdK0`Jmt=!7at90z`& z;qmk3K@IPjtLSM@oze$MpP_BdwK@#%L%SuBeUVje_8`S)5I4)65$M!CAF&G&s`wiqfkJ3ra(w=9Y?3 zNr+Cl&8ci`#Ie4sqNVwvPz~M)kVoO-cDk>Z58fznX-2=xAC!`3i zhwnq-rl#k8+To`bm^*M94%f@SXz9N=TP%0){Z03R_61R z;oa+2nrkH@_Zf;dGnzwy+P9)SN`U<*M3HQ>3;5C(K9apzt8=eIv4&w{QAJC zF11HpUM{@^RwUn3Q~ebi#|toyX-Lw~6P(ns_MVnKOY7*so@Mx^PIpPvDV8=k|Ms)|^nZAsVjLx=E+S8vEpNiGL&_t}(e}pa&xO zVTjt=koheTOg0M1>IVl-y3u&kyqD0TIqLT|Odl8khlbHHCREYf98=0%)#9U~_eU^B zIT_Z;pHrx8Zc(d8@;EnYf?a~&$QX5rkiSRb@u_!M92b98#SI@ z;`o!`=Tba$UYDMv`$SIjraIg#A&)kxyqZgR$vM*0D01*-b0lX&eM?S7OAUSmtENhW z@B<#Rqu~ug;;O^V)gq^AQ$6IVJldo%`f;YG5&{kvF?U4{ZYtUJTN~$hn|jo8cO6JN~}NA zaefnU^bQ5r`FVA@=I@r=>UUj8Pu5?9#Vsh1Pnn;eYrC31s0q1!=4bo2YW_k^$IriW z$*D*)wP51M(+kr+^M4&M8dKz7nRuTvOI2xn+9|&OJAkzL1DZde`PG43~xUeetw?jE?109r)s154+BACkK5<>7Wnri*|9u6 zSsssr_rXi{8~%`k8s0m;N@ix9soLoFj{#xxi*=47EmPTm%FHLX&pG`xsm;&(+XI@P z^<)9e$MtbwCK&6_?^O(H{yq|JCC4gLF+;bX8wY3p@;Eq)vvVH1HfjEsR4to27m2Pz s`rJoCJ>Gw)`;>MvjJ^>~C%UU9CVT7Ry^Ao(do@eN#6uwpS)SmI=H zl9&WYD*i0SP%cY4ul7oW&Zj846y(I$r|^AV3pJ`+l!+7h)6KPploOwuELD{G{%NwR zbCDzK#Fs`zRTnuH)lj!M^A~X@bgt=~_9`S^R7iTA@63{Lotu1QoBeeXzki$L)47if zfYhfuqx2$k5Z|cc8&!Nd7s_5b*Y+ea^tV^x_j)bVsBTdvO8L{xiI!5ui;*fSSFGVG za*GQ(FI9%ux#qh7e5B_`P1@|MReQ^W{C_A1C~3M2f@dVa{uB)*f|Evx z;O8Wf^YJ}Zg*X-VjBPXez@(ytei&{rpcZ%op! zlqB@WC9_)+ea=ooPd?_uUwjG!kjS2`O3$_&D~9EDz^4m%-F6Ajf!>r>DSaxYTU^&4 zvlYBI4lXcnnj=+}pZp}vmBk_$+)~$2A8d|;{WzkfAg3pRzCYbt{c&5@>XsIIJXZP34FQLvJ^mPW!&bv5;&NO&vitJXx81cQ~W zt%Ze!MUo3lHT7G{D#y!S6QTxcTK#pp{iH+*v{)NlTL3+l1Xr&}-s+l#L1?J^eDtO( zR#dKDv1S1|0SsAO)6g75&%+DL>T4p>E*Q{Ia8r0oO?|L36sfEx?`drfHiny;8|p)~ zHIXZVTMH!n(T;v-jUVkh<8bU9fgto^q3Xras)2Sj_t8%T-GMmU9eZE2Hy*P;C;@9C z3o9F1A~g5wTq*QU6{x!b#$N+$DD4hiD0k^p+ZGn zsHR?=f8Ke)1^ETy{PMD8=LL)Mi}DxA^7{3FFU&7mEY4fMzGPWhurPmti80IhMTH1j zUi?eJliQ0`8I|ad{!Kzj;!?z9)M?G8X%Q0fK=z2qh`l<_R-AstQ~}DBfKej+Yy;o& ziJEj;`K@#Csi1I|fm@G!1Ceu*2q~W5-Th@WnJOApJu>fREU{9=f2jIpOz#z6Q}RZ? zYEiSiW;l*Z^5cjBKi+`rcuxJIHHA)jZ59_N<5PutuKNr)6m`;E15S3)slb3M6&Y1* zz^QGWECWvKADsdQ++62X7;w^6r}YM0uSp5F(STzhoK$VVGaRT8jRqV8>!el#p6Nh^ zXfxny>Ce~>1Fn|n4DT`E*@m2*23)UI3EgYJryKNr2K*BSyx)ME&->j5JlCKfG~l#` z)oH&0|Ck0MA2Q%481RYWgawYp0))a}g_e;DuHQ^`3MnHN*RP{G zg_4m1uJ52ag^&>+*RP~Hg^rONt~XJgLdJ;T`j@DlP4&_D0hqIi>J%bIhPi$*)hRTL z3~_xm)oJRF408Q*RHrFF($Do}RHvyv(#!R;s7{ZLkshuWQJo$cBW+wilj;-#MjBCH z7wCL3@Zj_v763xn+n`b4LA~e?L^UFC|F8-a_J4zG!=CI}S2G9k+xLQtK&3)Rd3if5 z#@h4asE<4|qFwrAvUkAjqVb8esi2mj4Tpiec z?T0qPx8PqbqYu&oDwVSV*qG!!cVUfCb$Y8i!pz*V;GwmUGpFh&I2ZNH3)9{eG@ zn|N3TcRl(q2%==)!NUBbflhxfc#qhpNg=(RkJx>9z$avCaGCm;=@ra#6#Bq)nh(YH zy&K7gpA2+90_FF2uG~vX+LOV@I!VR4w(YkMlBmvo_Em^PZtpis|4GvScarsAYN7g% ziqU`KN!WiDX7*nS;r?Txnvki%Wm5e|+|&KXj!@G6gD<}SB#Qc<`O*9TcC!9UEmZ$e zG5SwD3H#5&%>GLu+L6EZcpOsfBQ4(R@$`~m$3Uwr>b6!jlZs*gJUN0RklYN7g% ziqU`KN!WiDX7*nS;r`?4laQ&wWm5geb5ZyIqz~vn_~QFdqNx9Pa*yl(_Cq;XAnfzM zOH&mys4dVrP=EkD+Zbl6KERNJ7#?tDwNPLk}$Pz!Vq z96|Jk)VUM{<{+9A-ri{Y)OIpQVZ83rK!N1}uvcY;Oku8n#L%;9ZPsUCoxNR(S)+I^n(G!a)!0^*>Af*n$NrX$PW+d5UMEc*WK}9DspQ(I^NH@ zogc<=YpFN5p+nDbmb2AWVSt;z#%+xO2s3?lg+ay51jkYBVsU505i<9TaX?A@j;pKN z{TH>OPEcgy+Ml5raDED+q+B?6x5BKQ*F^9+aykW1wHDdM@NR;0%xrm0xr!c=Hv6Xp zdOS6usCmgmsrVNsjiaj_B52Lg3hbb9eCpL$^<==yA%Whb707Yzns|X6+#V!oLt^WF zA~86*B{+ITSJJV# z0oW*po8#a&K7f0f(Mp5U_NN%Stf3>5@f{|(EA2%Xp!0mID{Yty zrCn*ya3NrS5)v^6EB9)#LtXy8oy*Gu?T`5Q*=|1yQ5Ytuw_7W+o4@GV4?38BhZ{=u z+qXH0KF!h>y`I(x*E^VAjp+?^`G>k1%WWU^og3PzaXX_o5!Z#_lA!jzjn1I)F3yM# z7DuDQ`cc#}+PU(OefVX?p(P!#pN|KP+ELbKpM4=73Y*>W!QMbu>KqGpY#;P=%96Ri z<>EIOdm%3W_Cr0Sl-go|ax}!)OQ0d%Z>LkE7&Eu;25F~jVP#AiV$ z4K%2`H7G}7k%Q4=#O|@%&U6rZh_?01k?=YgcZ@I+`)MR@b8zk`MZZZS@$0{972Gi* zmC0S~?>WdGtzVDS?^XxXp)noY(^?17rV(wDWs}D6+*C-OY|wI)v>bIP8fiTOlfw}P zs2nXIU46hy==QxdAg<%so&JN`aWM7Neu~|>@}T{TkvPX0vissewtWpZz0W=gVcY$B z>Fys^xP$M<;QMz6&i0RHU;Q;!5xaeV;8}-`?CuO$81_+{UPyuOGo+LuuNsg5+gNT$ z_1kX&1CreU_S^T{x|g&S^e)wW)Qs-ce!WZdye1sEfYoT(O@ros5x0jyfEX5F`-4Q- z&k+Q>UKH6L*4VpYTgDDD7JX~qTLIhBwo@HUMZ{@%>bdiw{gB1>=xTv2S`gcGXsKtJ z6k3M$=nu=$uW~R$3IjfhcV|0@{hDQe^mZEVLSQtA4rw_D_Nm^Hm$eS{u)jEF8`4(3&KqAC{_F8 z4!-n5@PWj5+Mn(ux3XnMRvqQ(^pBTlzyRmnZr2}^(DSUlFNPto}NUu>mCrao_Gi1*gDbsF)A8*3pGNqy}K8D%6bDV14B_bh#k%gNC=bc zG)Ra%&~*)gvZDp|RgRnRtp~yp+;4Kp^{9pit7;!0oN2BKw9F9D)?U0^lqc z&=n|ce`u@|pG4YS!jp$d_gR<%m^}FeQY*hBXr%L+!_@jl<2#W7UI1|PHR(+3Zs$8n zTdvXrROU&L=b(!XG?k<8k-erk_yPk@Wy9!ScZlX1L{yIUTmT_^UeJc~8F(s3vkCuw z2cKu)sT{?3YGMBjcsA=u4H-i^?>;MlieS6lh^429o&s5VEGrzALYJkz71o!u7aFv) z9a<778=_M5IcZ0ps$+lEeaJC%q_SfO%f8O($P|N!%F>1JcZ3K7Pi03)sqJ@!9Kn-8 zxzhlZrH~d!$f$v*vLhs53rC1;5K%eWK_)MN5GlHQV2Iksekw(zxf;&vSwIPCzxF&R zINS_7((vs}^0AwZf&A?OH5n|b7AE|MxK}2Qgv3vfa@r?$a%8rmydzB-k+90B` z6!H~E$VLNCWk*QBPIrW?H;AY#!~aqUQRW&K{--$&R2aNemf`=s=X5UuE8QJz6WW$Aa59DI&}r?MlY)V|3f znqm-9SqgdR&)Q7Fz*E@~60pl1A>#r+$Ly;hM7mdO%#LVyOw2wPP&p~x$3$$*K1cK6 zn;<_vRLo9w;3|Ut?wQzz?S~Bj$Lz}t0Ef(t0MN$KF~;nWmS^_YUJ(!Fw%>SKyBK+a zUI6?h7OG~p#7OyWN4i&GR_G9Api)iUX;`Qy^?1#kb#~nF6?`nH@ z4N%$fk#c*kBdNn6qOy$F>m4C&2A;}}5X*kSA!;>rMz!5p`U=-rzJ)VenE}#_N?1KH%bG;`Irx zbR%BV&uo;6GG0$|0mr;tpOZLRAEBcK^(bheM}g;6JPM+x;?*hb$k!gwcC_4XIPtsB z!4?}>D$DpCaPS2Np32eXXvCiD;O826D$Dp?4EzVh?+Xo0|NKWyn>c>oY|!>Qv`*;e zW@6%Z7l`D{@)^oeS=$Wp`*^1Zc?J=cr5`SLgya}_Dmy|-?I#_gDFzXhr4WyU7Y3fn zj*x(Ty+f2Zen0S(cIMdl{c{bEiQiuV^n>H~Rhlm@ewR9M6~A*0zz}q{y#|0|=uiIO zs>boV7l3~we*c%27Zbm`;-TF3qIf7PFe?_S;`dT0PVxIm?0@L@vvS=1!)@4G#aTe~ zX?PkX`$v$1J)Y5hmQ{tiES45I#Q?nwiVdI~Y#wQOIB%dmDSo+aH@_l@vkYvBZ5y=j z|2>K0&BQ@_gWlgFw0$?DX#4LiyK+ohllB9h9lX1UguX?sH1?P2Ejasj2jlK9M_-`% z+2LS%RUF*bi(c%et(z06b1cu@UzWSMtHCA7)fs@=wH@kQ`D@nJqY3n$9`rV7?8~sJ z%>s0zLw1xk!TvvXSd9IDKA&;z<(TTm-x;PV0*{nLrn;I@(p1IoYfOx(wi8K0Q(f+0 zw5cEnul?Dp9E5AB=%h8UVX1?0?WApZz`+^Y@Vq0Q1`Xe5ae=CkG$p{JRn7mm(x>B28Fe!U7W( zn6SWv1tu&oVSxz?OjuyT0uvUPu)zPX7VzMISIHMm4VxMwg)%FW*#em@6rtwknl1I= zx^R8OS9n&21TTsK7isX481MoOUK#^lsKJHUqNjIj=#P@Ge$!c^693gyB%C39l?{zo z_!>3~UsV|Y#ZpUUBwPik(gwv7E-5^F!Q#40I4`P`^+k2np9+5}q;O|(zOYVwN>k52 z7a}5&Q014yRX*`4UuCGJ8UM+Xj|msl314GFO?{*p?fR-hb)hX`=n<-~Z-^)^-=;9J zge5~^ov#M8EfJy**N2<7TyerB1$CtSM`Wt5iAWBm@dm01Uu{D}bGX^n3S>$%M|33g z<*?H6D3$tXoQ`I`rf_4ZrU~}K{|pwc-Ruk1SNXQ!zXJj!f!S(nHoHcXteWxYZ1+)l z9YxuR#d)=%#8Yh3ABnv+4gzJOlnb^uX9y z2g)0xV`Kfudyx+z??-+Bhi;?D=~oSn4~~r$BOgV60B3YLgJWYGQLjKghHkmsS^kDOj)>ZhGxWO>jq0Fp`!n=IPVaHq$Vahp*am$q?7a;m zZ^Sn46#TxVADhqx$Q!Yt-wXH<^7W{X;>G$lg5$RseaMHAk0Pf;XCjn5SFRSG)*R0X znUkmVpzk?=;g>Dq2yFLhA}F1lL$Ct;&4m3Rp3`i6mg3L)1rBMzC$e&uXXSk^d+Oy= z+Qer+arT)DW}ixgB&!yGeHg1^0+eLsT46s<4mL4U>2?J)Ax^%q-C8{Q~{lw?jq2Z*K|e>CSCh$X#jg5T^{YWjo)NH&i;Wn-EqB>jF5 zy4^TOzMJTL8;pL;jG=oMbQazhdXVUt?0@gRbCy zMfX5rI`YF4Q!!sbm&^~(0lpeBX%%RlG4Ph5Ejgbr1%5wHzc$3+*E{&DfbW3(MDu+% zcn(9)^^kuijmv&h&)>)NhxFWtGlp}C?yyN`$Iz96t`+B6KZop8-xpnbd%qGxR|~pE z=sknvSti{BF?6?pt{SJE%|usi(4}l}{HqjgRbku)5wpW&hviv0H+svm@@`1+XZgBQ z{aJIbPbP@ zr+7XtEI3Ho9*^*ML6sp-`XP_!PacE^)R6vfX@2eX40`8f?amPAO#4lSSe1^_SEsj6 z6}NhFzcp3-*prF!LC^HxPZjTYa$lY*ZuVxP{HS;O4>HAHytxl#inqL(DBqHj{br_k zIAwbGG;ts$_l{{|G$j+|?$p`OO%wN|X1_5_988^leU^A9HTU~j;^wqWlZ1M9+nJ7OwDf`daVrtbpwL^F_^*)vnT$mLga7YlLc%vk_GGV^3T za6EQ%JfEPaZb8~Fz2dAk?^9m!H*em}DV{N}Gr$hr0wETpeK$q;AM@UwA_i0PUQY2G zNQtF8#giv46XLS8PLJ5?6XG^cdb`*2JrADF(p}&$^E|%1i>~#EtJ3hS`L-wRC6A}q zbEXi#@}#5qJJ+>9>-T&{0Ci^O)2ZU@?(|nv#pCGUnmm(^V;Fo)GggpGg&GJv`;LRIxpM!8bF+ed)RV8RE(GOqBnc zo(cHt=|nS@4mo==R^2((b5lY&e}bIfP8m%VH>EH5QHFRlJ$EoeJfEJ4@@wgtfVXF4 zg62lj=XV*a?w#uSFGJ3lXUfO3gJSMF%pbE1+nkJVaw0$NPad&gh7kTv&)XjHl4suS zUeAqjV?wmlr?h`~L_TP(+dbW0xc$6)yq@pJ(Vpa)nRijUM>Nc#6+qfu9?v&p>^#SF zlEBL>MQIOt#1i}#cV*4<9`S@{-gREjTQ1>P%6!jhq7{KI?FovX3ErA(P&Bi!N={<~sM#mg+t z^_>>_o-;lR0LI5yA@E-*bF#NtoYQ_TB|2-N^v3&R*abj6#iC5;J;mWPSy#tH!cuq~ zS#Y{d>BoDvfaEDS@71d^WvZLl=(iY(Eo@GfD$G>%$tu@(FLX?`7^2~ps%yOiiauTC zy8ZXZWPkcIB>$MIYduC)eXGJN_W!fYxmPZ(#l>oTm#h3jm2X!0R+V3?^4nDYLzUm7 z@<&wul*(UH`I{=Ar2O@Gm7lKi#VTK}@(WeIS>;<*eyz%HQ~3{79@ibZy5=n3+;y8; z>LV?_!h(EUV>7?7g{y^MDJsY>SU69Cg(9k~4dKOrt+?xmPJ|1K@M58_eO@aDMisj4X0O+xVoaj@Z)~p>1EUJvlcVQ@iKN?c^gM`#PZD~*#KI?wM1Gcn z*{A(8mOfo*KaYiH2t6NS;h24DTw~#x!j}*}P4p)iuN09bbUcZbla0e|%LH*b1*Z`D zzCsh3f*aI!u1!QgL(nm7d`c0yLdPu=mx9x19j{{H$B9JqCq*1D^u0i_^oS-Z?!?0L z#DRox_x`t7dL2bw=$BAT6|auD5LuG(e0+a%89hVLF|(Pl$%`~Y(6O?amT+Z;pkrh+ zl_@wK8=L78RJ;O5BWiqgTy6&3gPV`^MHNy%A$BNw?GMFD82vw?AJi{8W;N4JuFMd0 zylJNYQE)oWG*eW;>G;x2PbxSaSDNXdg46M&nY4ZAIM+>*trYTiy;yA8$7?L&CM)=4d$zPG_%_=q!@t55~c-13ZzPFXDz~2s-98llBuj z)-;p0107?UN%xnIEzLy#u`Kx;9aEa=Ka`$&{Sxm#)jK3Tvx8Cl&qlT0(RTO-2om*+ z?w@4;RP?&-I~3ff)=L_GuY&7!l!iYJIQetV4vRska>5}D;0fY}SGKFyYl@uT9q=TG zKgsm}B;993l+IM}p?Mb9>D>lO zEehWIF^lVm`BR8nHT?Kk_%01s(7Ph>xd0dZxs@}KzldAWke&)*Ji_v7R2 zd`lAf_bEAa1r?<*e+u!af?Jlw5PBzx(z8lVg<2mncii68V#{apGf&*pK4@ zr+!)UEJkSmEKu-x`4NW4%Ai_Q!S&T*n&Jf|Cw~6&U9REQ%5Y;O7zu5v4Hu4s;09OR z_iEBC90$SuuW>ZEV*32@&o3(}4+fiCHU-OqbaQNeWn&}m`dt$#FAfH4@QOWOFN^D< zgIj7FHic?~TXFX^L*vC2j@P1ayc&h$^(b6CPPM`%<3LN|wbieWOO5G9>v$FOi@=l^ zv2>jLqH&Po_!jkh>fB;wQ=~c4f;-qMMHSvT-%`_zSI>iyx?p8(Lw&dz4Oca2g{mSA zP0hhjORK1CsB5eZ;|CJBn>Qgva5Ib>3^g@{t_b37_NFVu<|e%H9;|AqtGfa$MvaFd zhBO#lzPedoN;ifF&tJ7J=np7hpmenemVRMX$;z_xfTJ;Vn5$v|eCN2+`_C_5 zzQ&Kcyi1mq`;YPRW_|UuW$}f?`VwN?Z+!8pVm*+Bi=Y&}*xwvp#c%t|%eo!>;$YP( zm}1!?zPy}o3oq6~qVHpNiREucaA$P#tH+bxWlpk-w=|US&reo6jjVR0$KrJdT*}1w zH3jkJJGwi>sgvU^7_JIMLS)Dlj(SVCgd=|bkqet}O~kkYK1KksIb4f^Re_pFtX<^| z*=3){-O^RKTO7ZqAy zFzEM>8%NX63Jd6WO{M&!EjdW8=Prilk`qFIsU>tNtgOZ}C(;zcubRp#{r&{{Rj!40 zi-Nf3J*MRtXEBDuZEp$MGlL4X>&^)H%rQ6y&!82CLmk~LUjUmYn&& z0)<8LXLlEdYFon1FjcIp!RKXAgO0(qE6>wUies?#cuTuhrTAlnaCOQ3xS?6oP}}VP z(s*#h2_HviISN)W(&(Cdb36-+f{}(us8;DlIAfST;=IQcj`uT)RL3L>8bcN)@`7NT z;t+_H1kN>rm7&_&Al4RjHT9Uy08_lDu+S7a=0@YqBp<}uiAv)`r33^wH8-2>7S}X1 z2N5U23(K&U7-xKFT3fTJGFaK%A{UG_61oW|4hFYi-G*Q0H8<3UYHK1_1h*E9dz_G) z)Wq0_I_|n#G2AUCg3>Hb@cicI@4EWSYwD|ltHaGLbzum_q8KMkY)P74AJ`3An-QfG z&JiHSMPW!d2Ct$C$>!pL<)yglv5wloEp-j`(*Cr#GYvrVP0ec=z_gkFjR1D^6Qicp zUl%h<&a{a2l*AECFQSgsd?LU3iaLBhLLO<7d9^O#hr;2eMv;$S2Z!^w)VJhsYN@HM znqO0;Kqbq{=0`$X1mmhh&DA2m>WX^ElX;{`V$=y^OeF{$p4A~@P^HG&h{&hqwaCZQ z7oY4l`ArSHP|FWjt3`Zu6?kA3~9{3|*%Di}<5=5j4L( z7v75f7fSm4MDK%WI-P$RH1uwRuIuw-{3M1`kIV$=PkL(o6vLv{jDi%9 z**N>@{$C9|@h?+!`aHTr@moqT>5o$hr+v+T17PG+q#q}}|Cl4I`aD8mxh-9$yc2&W zzfbY|6hHsw*kDj#?Agh5OB}yG_v}|2K-Ux)%qVI;4gFRefAKPlQN_w2*x`*yWGgfE zqC)y>`|EQ9Q6Z^5ul!Kfq^)(C@;>~T{QCU8VvVGt-@uzGzWsZEH2L*8{m!+LYfw9$ z5)$t}gK_-&Jb(SglEI2=Fs>?o3$iTy>2B)tto?P8-zPKYQ@5}4=YYZ62oAq~KfqS} znobMQb)Ekm2t7B5M!!ces`&N5X#doF+7Dg_57|%auirNq<+rEC`-|q+`H?t&=iIIl z2&4ltb3Qen&OK<{Y+vtBA5i>SPc1<6={j9VK`^bq*lsb(R{V`5+(?#DredaQzaS2- z`Paw6wKy|(eBYq8E|Znr