From 701ebef06fbcc2e6becf46dae99d300d1852babc Mon Sep 17 00:00:00 2001 From: marcelb Date: Thu, 10 Aug 2023 20:13:40 +0200 Subject: [PATCH] Fix getTable() in where condition commands --- src/mysql.cpp | 3 ++- test/test.cpp | 2 +- test/test.o | Bin 93128 -> 93128 bytes 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mysql.cpp b/src/mysql.cpp index 80f7da3..59cc5f6 100644 --- a/src/mysql.cpp +++ b/src/mysql.cpp @@ -195,10 +195,11 @@ bool mySQL::change(const string sql_command) { string mySQL::getTable(const string req) { size_t from = req.find("FROM") < req.find("from") ? req.find("FROM") : req.find("from"); + size_t ends = req.find(" ", from+5) < req.length() ? req.find(" ", from+5) : req.length(); if (from > req.length()) { return ""; } - string table = req.substr(from+5, req.find(" ", from+5)); + string table = req.substr(from+5, ends-from-5); return table; } diff --git a/test/test.cpp b/test/test.cpp index 70bec39..f80a0be 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -10,7 +10,7 @@ int main() { try { - auto res = mydb.query("SELECT * FROM records"); + auto res = mydb.query("SELECT * FROM records WHERE enabled = 1;"); for (auto i : res) { for (auto j: i.second) { diff --git a/test/test.o b/test/test.o index 81818ce7a0e682b08847105780a711e07275aa29..4b2c9c01228c91316b5ca535830d96760c45fb40 100755 GIT binary patch delta 16711 zcmZu(34Bf0)<5UCHzKB(awWJof>Pmze5x^&1c@sRO;i*$H$0S>Rh3>UJef2seML)A zv(OO5Ln}x{HHbMi#?)RzRa;aQ_xrEC_e~;w=l9F`@3W@8_S$=`z0XNFe9nCMoH@%| zuP|niCay75O%JKC=Vke{C%c;-qE~CUP(BtTB^$ri%&F6B;=qVqF4Nd)ua%3O)A{Xh z-}lQ-E7!lg^JzyZzgU8n01VQ6wY0I4U{mzR!1`KsO^GTD+z?l8-r(^IXr$)7Z9Fy#~#1+qQNtyl^DX34HE$ zJ5uL_Ge9KYn~K`{`_-?&%ma?}IYokTmU+HZwOybw*@s%Tt66W8k5CT-`_`uz07P3T z8(k{W&~~l$Gqj}L8_vZnm;MRM6^jUK9l=P-sXE8u79816o@<<0*b;7`&%E+Ny@^zp zRG~f(3|3zyIkBqmbtX;Q!|_CCfw1gk$DJ)SExFK<8t+PQ1lMfT1njCwpBS2UD;2jt zs#>2ok`F>*rZO_*Pq+I{`4YP59d;`GEnHop#M+h-^Nj!66CswvVsTKbQASS00`xsn zu1J}?`{>19JwsZ=VsIZCw;sFQ6yBj$yDXOVQ66?nJ`LwRR^uTalU#JC=L=ln3@p6& zi0XInH@V7b8cpiZ+A#j2%nnv(PuPPEk1GfHG5L@q-TX2Vn0r2fF*s6d9YDT0lEnm6 z{p$slUWlaYZ%Ey$CdMQDO@+VzSVpadalyavP}*<`74C1h=pfIvjfGNcy;;)V3bs|^ zVjNUmY24qcXKr`NTzQ7@9WvB4nj_!vpUj%9{01}SEYsnRm8;)u&SMjPRRYUpc|<>V z3~g>w5x4*v9L&sMDP)HEj_~b}Bh@@Y(DGbO{-lkGR!RsTY?_B2=w3t}x*i@_!C$D> zYMM%wA_9%@2V{?^U%5GtU3RzdAzh90Z=7E1n-myNjeP7#_7yNY$CrcO;SUZ5lk;5H z9#CK}3*~%Vo_0r6Gc5p%;>OpZ+Y!x--hWW-PWH-ke=oND*#mMrtTet;4U+>@TJXLf zE${Tc=_Wrw&8znVw>#r|`u2lnfddYskHg%@6JcOK9(VCjxp-W0-K2S)-}b8@UExGB ziA0)YcA0-iC-o_y%R$|peYuNG*MFtwk@dVz+(#5IQvIl9Mu%T1C#r{jFS}}2Y#GhF zaSZcZzfhnf%(?m=yL$k=A@*Wvb^3+J8(&n4)bUpl0!ZY!vhT72+>2+A3wWU>A9oF4 z>WfMnp_BoUQr@<^(@HLfJXefRh-@ruhQkTh>$s`K;<5>^1n&Xdak=TaV0#EP9$z?+#s!-eJVw5#iqX`fTICEg?A}rnWKRR(4uULvzc~*M)~J zc!V&EkzT;sbtT*^={5{)wJIv#%)T1eKsWkaBj2v|sqvdzjYU`K{G0XkhxGW(my9h% zSP3Ka)0Et6c)+r&FcenA9Yo%D>@PBNpr+zEgW|f@pt|wZjULyjMSPdHz3YlKw%##2 zCya&GOC^5p!_SLLo~QEjJkPV4H)W#)S8~9Ud!;wL`0qHw+Jf@(2@CxmDt8U!Gi?GJN&CU@MbhG4H zOyHT4=P)+@9Y4!LbN=!_62j~{Lrwa$tun>JLyBC%8i|)^T%RV!_A9isPgw9;=5Y8# z=p)?NY^2v?z&I4SlhxL(jyrwopjl+CFPI#-JX(KyiH=^jQ2JM<~w~&g9fu zEybhAfe+!7$HX{4#D5G#ZoTC$Ns9i$R3WRkMAOy&A|2@4Q9nmUzd>~@P;sQr83B1L zxjt|XV-SX)(e!@)`gQtGzu*?1;)Ez!d9GC1#(;1%K>N^~iBK*!0&1OF^jp7fp;j>E zF3Xdde9B|M>z{OC>|RYV@(~y0$TNPV`ENIK_M9w7{^YzE`5m!Tgo9z2nbbLx(0O{S zp8N?nM&|f7#$hE7V`OPLEId}MiNJWn@U5S)S9*%npKMZ2Z9bZ=b3fvFRxY+9?d^#E z0}f_DklOV3(~~K-f4b4U23_gz@AH7AV6$!^83P(b{X9|n_c4=GYt0mo!oQ=!V=l{i zu6;OcyY@olPO7K(Ey9lA&i;|!9dO?H=Q*~_N2yqz4ya9L8P6kUO49#vZz75FZj|EX zxqL)#<^~g3fJOg1rdYH?;R~WRVf7QyNqS@!5<8B~QtrT}w##Q;5am%NU6}N`OzoEE zsPdrNQNM;3TaK!MW~zDec&2c#6-#=};Nhgs@l|7);me|PYOBYd^zNVtBj*fl8PwSM z=V{UFIK_JmCz5g|y(4>#J`3gxVL8l}ONXU#iAMpvO?Y^Dt^qvsRP&T^9tSIp=9Y-y z0ydmFr-hq78B&u*46gk4otDfLr~OCO&`gidaBzfVM%=8*Bz|OdPUYk|VeGP?<+;{K zK5BNJtFj!CXCm#@s9=^xUCA;EqrEDC*3T!sD;synpRo8gL;&YOs!`&ChPd05Gp;ifD{7*L*TD>IW1 z#U%ggnk$CRQU+l!rNo|iHIQ-W1(SF$xP@0o@ygRJ`8#lFenQ2@e?XU= zx&XzPtP9M)CBY<~6;0?ay-BFIc0eW){ETF96em;kUTUT6L3aDUsL%+x9jL)crrBBp< zkk7xqbB=+QToW5P3isHp^hmVXC9P?(OPzVY5sW-nGCY9qtHe5FxiEY}QRDiC?J2pH z!dU!9Jm;W%o_(36MA>-AWjH-P$3ZygcQmb{h4nLXD-WqFtk`sJ4%;FHh0cq5lrGp z3=E0FrjMZ~HQ63dK0ES4W=iW(LRGA~&yiaOh)Ve;NoaahPWpImIzhRS)wAVasNv5 z-?ca!qZ8NA5}{X138~r36;57pWrC%mUJXrGUG`yi?%?8c%#(OW^369Lv+quIB+ppv zNS=&}9zQR^kt*Lq9m$cdmN|&Wyxk~H*nKKbf62*Ci$(p_VL8T9>~~%&<}P4vn}ZYU zl~(Ui!XFR*ojRqNFO@KR3Dd~)RQ#mJnpq6JSAc|5^&VQ%J5Tu^hzfTXSVrYsqhgOV z?y-_E1%(5wkc^jcHjU?P!a!tJ)lYM9$Y_NL{))+aIArPZUqNg!Jh|(taUcJq(7>)zmOC9j|`-3!LOcQ6!J#kR#Cu@pB1u8xAXYS;CHX_=bvF|qI@Q4L! z6=ystl)#;)nrDc7X1N*zi{%!}4hua63h%CmgbRi0S;f~pb_NvgOns*5rUd0dN(@?PAUwFNrlT-B*p0_Fp z#bfT`KXfP2-*V)CvEDjFb;hnR$Fmdo*bqSH$M!J#r*N*l*DtTq8NrY0xvJ0#f2>?`A<^a>XaxZV3*HcUs(2f^jV++I0K zgD2F|f1oK78a0Z~6^5>`qf4L%qkQgirE^<+Aj)%HrJM=1ngz3@_yE(LR}DUKh}64* z4nXF`3zAq!)pALnSR=9-n~=+8*1_VUBIWX2J@yxK-vJloQlD|mu0g_VBgjYji|a5H`za+74LYnbC7hUJ_FmWB(j(8+mm0qJ zs_#v4JmZ~d1rrnL-S?XMZhDc}iq^c>-ne>}uD{nyUqWG1Ux_^>&R;kKcV~NrDsU#& z<5z1DyzU-y6Qr^$;@jeQxoV-U!g%`|@E-2PN2mb$;Qi{^x27)FYhDs(rT7APh3OR& zV5QHd1-?>iH+LXDqU}VMFq6Tc$h7>RVo zvb!u(cmY-c_JEk=dojsByFUIe%0xYRLi!FeOq&CVm}D0R=ss=zpoiXI;dEQQA;KB? z{qfJ@qXkw>p38NV+D{KQ_8g^=)7yJjgh?(S6g$IKt&%wI)JB+!Sn}C%x-@;Ik^4jT z%o(Q*<9dE}@0k^J{K8}KtY-QqN}u(mF*6(AT5Hg=IsP>8qnC}BvnlzbFZEn%KKmup zFq9HnFukS`xsArmZlL?ng4u)g4Ek;MziXTkr75!DjxRdHaPwT7DK)8{$rriLI{JOu zpVZMfn@`4^C?kJ2MbCNF*U2d%&PbR&)Dl`Sr+y3TS0d~Ma;n9AR7A%vzpW)gQ;{R)IAK#})E3tQEai4|X(U5;z zYqmj&m^tGsZBj2-Sb_$|z2Nhm zn5x0FFLklktqpKAi3X(EjP2_^RfyK5ePrC(M#1TU^{;Fzp4@22@)%1WY@^oG==5mQ zJa|L*=LONl^dLQu-07z)Z^+>hi|XEKEfvk5;k#4BKolF-I<9{MBlx?wABBvqNWQO| zDD~s!^g(n5y7F;-y5AsaVMZsMf^bnphMy(yEk|U}$iQKVLxzqXmJs+_V9Rz|VB0{- z%xFcsjM|@$Z=t`EU28!*-T8Ex+g%A~&-|5ccPrpsU<@#GjobaeOVd7C>vnJV)--*y z+ntNA1#baw0LK9nAU7A71Y81K4J>3naNHKyh29omGvH-l4DdN{G;jo_Zjra<)ILSy zA_#kdPk~J_@VYoVM+4gft6*Uy0PVme;Ar4_U<&Xsa6QlkJO=c}o6r+r6JTA;g#*|= z+wGnNOak(+;|hSgfPvfH?m{0N5(cC3m<52f@tU>-7zR8B>;tU11B(aP3b+Ee9GC;# z3oHUw+KJC+l{BqCFcA15FdVoBI2iZ{I1}i-3;Mt&z#O0hSmZ=w3mV>dPuGy!&44k$ z7~to?(ZDUhG~jh$Ca^k+MLw_<@GdY4SP8HH{ejJZqku8MB;aTu0n>mRfSJG?U_S6U z(0Lb)ny77+@S!3U*bEp8i~)WK91WZgOatZuGl5o=$b4WQ;9cPRz)JWMvIW=-SO|;( z-Uf~aHbY@f0}cmf0jB~BfUCZ7JKguuI1Pd?zFJg7F>e8U4Hyf22%HKG#n!YK*af%? zm;Ed&xCm7|;*t)CbrbI2AYzxEPoQ+yz_-ECg2H?{vFOSk0l>ZW{u7 z1G@m10uzASfJwmG*l$+@n*vSv82Jh?4c|e-fp-~Eb!y^M?0KYidtfKj#RT9?l(tIv zP;5U9$AC`?u_k~=&b!_7fLomx&~XDzD}NCk0|S8#(ZL)14Ezw709+4D0=j^!fdQA0 zjzIo)egilHXo4g2fDM7$fL++J%a{USPhci64VVwi1g613XFfB~xXTP+r7IW_Fc_Ex z5BmWNfOCNlfV+y2p0zdY0kAzV@T%M0AGiWI9heLJ9C+gzRyptyum~81?|Pa))&MXN zI0YE)kNp1xjlm$C1kMCne?oo(y8;gb6M-(^BA|DGrX2t_0p1110IU3r5dwR;P*8v$ z0k;De0#5^10UrQs-$KXu%|-d!hzu|qm{14#KNF245H&vvVC29Pz`?*9z?r~DPu#uTE6}L(U9Iyzu5Qx7d(Q<%+ zz~{hl;FzZvIdCR03HSqWHSiWN7g+uovH{qL{FgM=vnXPTMR!qOv@>Yd5{v)hrRb-e zR(xT0v^4yfXzLPN&=YKV$Z<`Jtl~S@=v>(=x>9*;NE%D!_h9wrujFaZA08X=~~E20zL`Gi5DR`69q86LM(ohFrd2hO*`Z z{QS5KYZ#lYDGv*^xc9VjvrXmtdZ8!wz+|A#t)-@)S&dz5DH`Clj?LPq!woMS5e~A@ zrcwqXXO}a+E*U}^46Is5$Cmlk2!v=Z)K)?5HCCG(K!cXnqWhnjjJ>eBJb-*ZHyOKS zvjv*F)=}%vt;V01@c96D!nzj+{ z3b+S2yAhsQjnf-p$*P;E`*NG!ipJpHn$mH9jW#d08HtaW)0@*lkwY3@wx6ZSIAY_M9p&uj4fdt*4u4=}N2NqpX1P1XfmBbzk~xr42`2 z|5Y|4LAc`83WuLznbdEU)tHt^)-MChlR!yg=e!o7H6@dFud-HLoauJACQpPNwI#cJhgEvS<>s|9YNqAyLx!p#VF zz{1rgJ&EdlS%(7AnoqBx6~5YJtk_IZtE~oY=IGH(P*!cGxuERWOltvWH`5`&d1+*g z$;jVKUTdsA`*DUG&wYMI_BBDe7saiy;XWRByp-T>r>(fZL?_nRjL}=z1@m1Tq+X$F zYi;%4UE+3QzbHwh*peJ*hU1cz;vn@P&+QIjsR)(qqe`SkL#iAtSZmX((^lN;(h1z# z({H%7 zS@m7ew@{1q-k~vwtcGG_`T|0pr0*({{=NZcxH$9zt04}?OE@Ps(Wv#-(Es3E{4b=k zDZ7+fv{38iQCkhxS)6}glc}_Oy;ZM`e(RV|~&`;5+ZySHFz zm^#zY4M9Hl_PX6anDBUk=5MfuF2s4LfQ>eWy2oeKnQ{ko5kB_$Fj#F5y4^o>G^)_$ z4OV?3J=E6JL=) zt4rT+wBfz!*2V^CSKegPt59>?J5YCVAA`G{(s6H2n>X2fqK~-UuXDhhbasy@=6#4ZC@tErM07g%55NbMjIX=o2ZHoD7`IQ+fv&-)ci-CU3PFZO>66B9aA(_UD9f0VG1{3?x3Fhg%yM z-=0Io@}m~pyp8;G)OK4C(r3Unu0Atx52auu1L@he2Kof5pKa4eQAD=Q z$SLGW5|cg&#pp;O(ul{=nNqTY^pUg~lKtr@?mg%i++(QncAGwrn&X~A-Em(`W47Cj z9r!DX?LoRuTeqWT{fLzeE2S6747Et|aZZ&0j9)xNgrb*Lro{uGD%92)<%&DgVx z7JeN*a-`n-b@L@}ZJK$9x3)nyf9$Ol>SkAYEzK|&l-IJ$nU_>BpDJg5?rlD8GXGM+ zyvJ-lS;2hT9I>;4`7dvLWVq^M!TW4MMa!~E+M|l*-IcVnmBhCPV}?G12Z=MtV}FgF z@2W$?cihIep}3u|qVOf}>tWMd5;|oeZa~hF`Uu4Eb1mrzLy-r4P>5_g3}N8&S0b z7UP4C)bxPezeg`AgLigu9YsnT_;ckhH2#1EH7fZ)h=1(`l82HfuAgw%wdxwSfCCo) zdWs80aRs5lTr24ZE!}KoxQ$VC*nZzK{SH_Co*5&p^j6m1RPwJ4kE1a zF8!4o;=DLPQrk(;_ThlR++))v;SEI}h>d{h3F9OIugv1wr0COo$Y+mV_3;^n<%7CQ zy2yAm_b7VrI6-$JWbztXLp3pQVFMen2> zY9q8Xtnuv{wt!(Q~ z=MPOW7RFJ}JiFeDX60F&_m#^Y4-a5yEc;zgsXJbR7J$;v^cITXksqPx`H51nqmoZi zbl)=aR}{Tjv=AiA;cEI|diiijx9OaFxID3)g3W<@{5?w2`CQG{WkvsWzI?`;qPY6v zvjEG#K`Reih7OLDR5bzGH;TJO>{2*IDXlQfF>BSHC<(!e{+XhmlzwV*=CM&I`k^-{ z;Cs8%U(xw3gs(HG1#E7$a_)6W*1F;o0@Kfql?27s1}XYuwPasa^7|A$C_)lOD!LWL znC+~W3nEy(NR@=S%<9*bDA0+ zmZrF(!X)<_H2`!Wu4F~uF-<;KRrDf7KdII<)`qx(u}g6;qbAE|Pl%T(`sZ?j-{wDd z64zD57@i`ZmDifHtuz#?RsvQKC_!7c+&W7=yNDC$4a_q z#A_A3t(pSWjn*Vw$}f~9s)mNN7S{&FxDi85Puux4)bF(2zw9os9By%UzO?dmNXr8% zj#g!3Axai=yL~JPwG{m~MaOCHjK%o9GXBOXb>h^{mCfzx{i1*6x2>_3TNgMp#SyZx3@Q;+(~~W0rJO z6%VZU=2(I=$J=h}+?x1ukYFA1JrhIUuum?PJ|vcmLc4CImW7s~!D?bXQ9FmcXQB4Jq?X5v?idBrV`ocx z17&oZqOVe`xUr&}uu56J^_#S@&>o$l^17;GKTzzSy14 zl0Ds)phcn5vj<67+kAP-?M_86TN{l2Qa(k^&R(geom6yn#4A4Gy*)t6KR^!R3f4T; zeiImCQ&!W@ALaOZq!dyn(}4^2(A#QyJgcVHAZd^PHk~g|)g7(q1>-2_qTN{CpL$-j zxBRxuKSs@YU$Hx>Pc+5tQhHY-8OXN{wjOZL!l$a%gz0V@w@d8W#~g$+>j(9U%G zl0D$V@lvgs1Z@qL9IKs+qtMHC<^1MoBFkVnIzG@;0@8?>^>;vAt0oyTD1L@5;BMRvr$8sTe@qGzea;+cW5ir&W| z<=~IF>S3mMIAxDt!xTMWwh*INuU69?)a`0le0N%K)#6-*0?C)B<{ZQvu${8!>>m|< zy-K!PQcZh(f|M`2aW7Exvi4n|bM6dBlHzh|{K=WGCrY90r-m=Fa@nD>{}z3}qK}T2 z`ks8KGfB!9sG{jvqN$4RQkf7a`lYqkg8ci;kS3~2&=N3%++{Pmdd*^FbfzcQqEJmE zu3P+$_C$H@1jXn7ic-QwJ%)>tED=x4<(dthpWQwVoZ_MLg6qL*C^-zj=Px-{&m zC=K72cGSVIMsblJp%^#PDd5IH|FXOODXdiP-bQW3h$+WPO-;>R zL=h`eGh7lE+)2q?(5yx=KQ-$!KWo1Kx%Unb^?pCz|Gu-|bI)Dg13huYbmEF>kB46A z(NIlXkEpsHT&cL3d@9cFt_SPYyQIs<5~LL4KeZazKlNPm%cpbdpX&10-aE--<3F#R zlf9(Epo;eVa4El1f|dXb)VwwCiIQMd^ryi3S`95=xg_`~`fcF9$)D0Cy}bP(Mc)`9 z4Aj(um7y+*kq|*ME89YBlO?@1$b9W7Vaw+Z6115>_J5=sU9H?zFUqc8qf+u5XFO;^m_`4AmWGAZUQvnZ$pL>kol&XD z;S3O2Q;CYg{Cpn?=8>qh9BC^^DDtR1wkvTXj?0+EKr6mWj^AurlX^^I+94+Z_o@3yD zMPM$=RsQF6CVfA(c~qL|nlN`9t+$B{=Q*r@KsMFKTRaMLgGC_8_866vA~#Jtz~c@N z(rcb0u@zhvMy19%5~7;dYSa|mYDs4eO}l#xw_mGSo<)g><|-Sfes?;HE0)qlR^WZI z^tE1zeOgAWGxx|fFg>JPu9BNoMvlc?J#8q(M2cWNj;ePsH~N!%h+skJ`_$=FL3B?k zD3dWi>ea!&${|ShOewm%2;HHH9emne{|#Y#{;P%sSt$w^H zLY~sK4i@`-7%SuQSAI<4q3DmLfTPoS*iwBSFXKls6de(78I@S%*3leNcMJbyWznYt ztd&x(;71ALf?rv=wTs-bzk9+#p5r!iQhgSb`a3TR$CbZ%Pn=H2LFD@GSokX)Js1BQ ztR;>$JQfZA$?U?)_R@i(r>}U`Sk;pICgN%jmZRHmWbPQ!GE`-tvhZ)Z_C8CYOQt%4 zaXc#3v{KOW9Pz)?^p11fa$ub-5p}3$ctEA@Fcp>NGhi{b4-YUV{z^l_>w67`gmQJ{ z303do*Cfs7mlPOIjeHuF;w@l7t~V!s{9{f8lk*%ko={9bbNc%g>0Wqsv*-#7vrMa=iEmcI#7g=c9UXcGWIcUAK}gvYxyC5J{^- zeInNy;~&t&$lkgoyJJ`EWgkRw%JLlbD5hImd%-X4?FhUf)uNIn-{&sI6_p`Pc)%o< z$aDNqtip>s0n&M{%an7DG^YMt=_-_#L8MHyFBgZ((a&?t5(<$`gw2Tv!tpL{sx}<2 zil_vyA@hRC7WLc+DMmlq(1`A}O}FnkohRv0XJ7iD`%I(PJ*po4xsiNNr1=N?^>T; z@0(>DD^I8)Oc4x?xycS9A4VN6GI6H1;dvR&>spg~ z#?~IuG6nTt zZ&2}Tb^A2p;5oJhxnh8PN}t65no6JBvhm-(XYYmF^h9jsW`xOMqWIUtss@?4OOfkY zY~3|l|9Vs7&J8;CdfVm$n8WE4sgH1CFOpH$2jh6;7p%68)sFg7%lKBtOc z@9A-TM?IB7`VXyh8mH2z)Z{UcN6Ez_IP^gn&Z3O|e)>mrynpjnJy=Sx@*Evy8y(7X zyny!c=^RyT}KC164MqI?*8;w zX=0iPPa-kTze8dw;ubaU7&b|5V8o!oN0*^`XzV~=y#vi1m}cCnLDdHNc{XGz*z9?Q zLIySHYMvrT=IcTc-yR&oRRaHHLAB~mseu6QL!>xW6|dt4E6BpiE~JkKU9~s4!W2H` z#PD#y$7YssJ@QN`2x0SL66f(+=i=o#!h|qIVNZM8~t?Qqfn1)enS|w8%Y} z*c;d^JsBKit@`cXM7dWuQ1*~hd-!GQFr;?Zj-^37L%%SUH&1kVeYw8szWXpWzvkjC? zhp$)zhBkwX(|eR1QF$s!5rz!<%DKPo2PNuup)Tfo0Rk_xH^eD}u(w}vU{Aa_NRvr0 z$?pqhY>raz8*u5+8;uPfI`bSA&U2o9o{Z&3 zQ3(+|Y^5`EUnML~Eg^Nc6An~rP5O$pQn-Fl2tw=4vn5P#H09)Mj2@MwUQEC)ES74T z9V7hlxYit5GOjBju6p4(h<0&2KZ*U}rlSsA@&;e}_9&Cz?+g~_rRS()0X;3SxPoB$ksSN_f3Fmek0V+_59>^n7%*#kV53Wseyt zks0zi&vDhA62`R9htTpd&HEN{Ogv>d7kQ51CEeowHYoMKkoOZM^j!Ee`HbQSSZ?R= zl2}^hQ`NC8?O7~>sksUrmMAw9&)hGGbWFILiFVEq{oK&B`@TpD}a}OQ>mBPb#!FPl~ zzMTbm*7 zs{fNhRfM}vkyXE~bZDHp^Xn&2_UWZUqss`Xfq5c=yy>_GmdbhrnvR|v!-8YO$YV~h z9lhL-B?slK4Cd)5&e&oUw{t9FwD7I*I80kgYg9xvgO%jD z>py#3k`F2N5Y9qRlg>qUfY3 zlyTyyC54JuDAn|bm{%q4K7z))pOk2n8QbIiYyjc2-8pI-j z=YPDpTtAL)CAFw^$J#9~h_xlpv6Wq=nP!xPk)sx!R8y#+yo? zj;ceiP3UbD9K{=YJ^FJ-6}>y1pU@^?GR&i1eulgAYO<}xrt3;{O=>)`VT}hYB!{mv ztT}ogOP|&t+deT+uk`v6r}MDGdh#fZ?-XR=37h9=&P#bpWD$(qzz2{VHP^e*<4KL| z7mf<+H(AgJ#)J^smAEaw@8mfK!>IUjqVq=>*O!T{tSP>y^y14f(BGu1 z(|YK$sqyp|@IE+TdP~1A#XAr_D2dk_WKYa=ysyyu=`VS=b{*Iw*K-H<)6dg`y#LEb ze6dgp;#{i#c6+1c6&m_>tnNem-hR<+6%xo|FSdu?iIl~p&+u(973+cHtFKBD;aHBg z%D^Zz9g_~?(~&=QoLwV(%C- z3;n-TY2K&C^SzkrHK{ntkFL&ZW^CR|rum=h;k12zV?B$`&o_G<&VtPa$HFNqg+GGo zuaVb+p?Vd1Yr%Up>+|B25_!JZ8!pl7JjWkYF{z$0=pVKJdzQ|ims3}|kKB%^H2N;p zYP8zsT8yZ{lKI9<*|c>@K>g;~CBu4r8+YpOC($EY$+0BbtpLH$vOaZb?qYX}PYcu& z>D{yfuiwNh7F)rg%`|A~Z0`y@2;$Amk+79NJ}wQ%_vu;b%R0T;FS2K3=h%RtfUbRC z?G-S2+WI{lPfK~yoM@9CH3`m&p z*6^|8L1;2!?9`EoBWKv&N^GLVO-vX*b!5PlX>W|2GG)}X#CJ5hzPu%V0mauxlUnI7 zX8*SAW!-*lt_Tq{umx}_uqQARm&-2et*y0mcK5eU6#~-T|%$_Wr`@%mpR_i+~4#S`|&J zg1H<3v;o6`alm1~Ex@_J9N>CjAut#C6j)?OV+d9Y54@1?0k!}>2lfQ^+>cZNhX9uV z377#q0?Y^A0p17x4y=Or{3=+~S^)ilJ%ORXL||v&5@3H|25=%UAD9WW-$&yZ8ddPg z;x@1aP&)_%KpQX-_zG|da4IkZcovus^uQ8*AJ`071)qV209ybT0eb>h0~3MQfJ=bB zhn&tmz^1_Sz`lo^cIQJhl0fjr=ZOQrR={6?F~H4VJDoFtw}C5xPk=c<3#M2hFb4P( z_y({xzL}&0+X9aR^<65gr1b2i^ld z0oJ{R=~)}o4%i-;1RMl(yX|z&0yYJ%0Y>3_T`q6{un4#VsQGEyDPREbDlps+^ZySt zhJn!L4yFlk{!f_Sz@5Moz>7c!@F~y(zhP+nGv+ri2G|og8JGynabQ6K{si0y{2f>T zbia$hfwO=C_$|+y_mCN2CNQB6=Kmcul0c|hjMM^$08aqN10BGXK##iU0kA3XATSDe z7B~jj`#w?${QW=37%=)FG6oEN1joPuz*_Y*Z5c2WxDOZ$JO!L;M`Ph*R3~r~Fb8-Z zSP0Dg6=Q1Aw7-B2fwi6>a$pcJ0T=~L0xkk>0yg{|fdj*U4&Z#C2mWd$6WA2^02l@I z{x1RtHU`=kq47Q%+kn3V^MMVYq6UB~fZhRE!GNuR4}dYiDt|bg6M;d%Wx)2pJ;1%d z0^lj&6JYo=^t`^NjRS@PU;H128W;tf3mou2=WEXOXv_d17gzu+0{#xf-?C^8pJU8` zBY@$+3%~^69bghL_)qj4*b8_J_$KfUFophD*+gGP^;eno6Vz^16MZ5LUuE{2u^N6V zXeAd$M_YoQeYAX)HE_okrxSBr(;};SFEl!Pxkp#2hz&_&seJsb-9i^vH8Y#qXj+{* zU@g-TA?W9B}|{29~+4}DixqX%p8 z%@WOVvgy6X%^0(deAifv@!O~kVCFWey3dyq*LZl&f(a{3xqU-()&zP^#K9_xEoRY< zHU7qm?KI#Me=357-0f6#oqzgTH~k@*)>;kk9n^TO#i+G|x&kWgpiyfro|YX>XCzy@ zL`y+!zZ2mKI15;~6Ombrq@6Hi(f3iybyocj^}_updJFeoC~ck9uw+o?I*Z|*L1!gA zSZDF{&Tu+Ma#&Ny_Y;d}Z#?$l$JgnVPyCHp8HmziY|G#X-B;kuQ^-dAP5aP1MPGhm zHEw2*ZJ)n8pNAem49!{?u7^^LPffR}-FmBDNd0j?PVcO@8o3$Nd#AtqJ}`G@(Ejxn zV{-;w1+2*sCE~roL*Gw+8?45j3{JUwEJ`g?Hm9PQkwG&zSd9J33@AHbW`jk~rSCRa z^=I@4RBP=L!Gz-Y6JUG&#RfA^`Ngzn;AxbxpyHQq(5H(Dx3;S3kX9luhO zZf^B)F9d7IF1i7|7}m2G19p++Q;U(fi(UaN*hND=wRnC2wH#J6(?U=iWvUu?qufv3 z^iFhPa~&%B)XfOZWZ&tV+>BQ;VaA^V(2U8X#+xig=S*)gS zd+8DGSyX+i6^U;x?tQjeJx`r*I+t>EJ!s}ui_z+&NcBFPrTXlm{h$~p=_;V^NqVr( zzfB7;o}=nCtUYeK@!*=|-NYn+XdpUX3}V45zyWy`Pl5v!z0DHRHOuK7jk)V~w2WG` zP>Xe`Z31f{j=3G=+*!TNqR&F$bxZ{~oXOUcl2$F8x0q(8R@*&1>+W+pGf@U^{ixIS zK+knwIi087@K{Xaw_8Fw;drxvjlKkRSIk&gDooQwJ~`$SV68jqbpFigu+X9H7W^sT z_3c*MPkA^EGLes%F6B4mIIvP;b%O@_iij|%Q8HI{sOBj2Xzkh72%XMpMwPKqD61U4entb53Vx zP)p1ssne9{B{Kea-0 z(K)U|ia~RxY)(Wo@f;o6>rczj9CD66%nZZ~`ZBYD@yaE-k!e9X|IBO<*tWpwY+N>? z!E&UyvwWg`rGO*qIta~Jh&CuII-pc^7Wnbt14=vBOY#FiS_4M!0@}Dc(D&bYV{eBlZe~tw$QN z+>GceGz7hDmF0#Wy_jXy=TKah)mV3hdLt#vAhBKw?}5aJ^cf^>(zjU+jKD%HO}^y4 z*TZO4Nd9{RF?l-dwd&((Fzz4HY}{ASTHMp=E8LUl`rZauc=T+mewONITaAX_@eqk2 zpNdt-_8le>_oE+;%MR4fP#Pq2X&3H$=?w0B=oj4Ylh;10{(xHI{+xR4vl{+aY5cxG zeIza4XRRN96?F_NWlLnXDv^8~OBc`uD9)otxZA1vXI6a4YmNI|>hqb^uzpFCKMS|N zqmSufdQwT7X*yF$+pe3oRMHA{lhZ?6VwisR(6TF-_IR2uRWN%gf6+uAM)SV-+O!St5^E?jXF|6~yS%z=*qGgilx(Cpz1Ecjj z+4{k1?)q<3{fOD<5l%rzY<`wFDT7ybah<^wH}Ln;sI4Prd{9d{671J@x#VF96xUC< z>-bym_H^Nh*{_4*LQ!0SXfXE`(vO9TO!1Z_MJ_spvhG zpewHW_=>{vk5#;45rD=4MQ_|!sN0b;c@4){u)>(d@>%)OUc$o5bdTszb?Y_6#aPHAi1@CAYC15|}9mEzh^ML!WE2`?%7*NXl) zLK4O*x&TgRT!=+iK{2sOJiy8DVu(YZk;mgyXlWp!S?b6(i}Q$seI2nD|%xU zuxmgLgI)vjli!j(;A0tI=al>tmC~M)tOW*0`?q8P($>?}^?UT?>0tl%YLc~7lEL+* zWZ1i8DHNG|JZWVa78o8)uJirtSzLjN~)`u2e2@)a+q4zY|3cw z=5laC<7x5Pu7+hgT|C>h^>S70t|3fE46L0HF4Zt)#I;({Pf+)B-CBRBN-;!nuVb88 z>pfZ8noBDc&Y7M>htGBEUSp0Fw=1m*tt2-(Rua^3X{#08(pl17J-e;w%c#%!U~KF2 z&YS(__LDMLBEUpqoNlpI+o;T=WTum(rEp6z?y0JBt<844)3c!f6+a%u)f)Rd(>JQg;R^J!qQ~^2BNw~+&ry}{GIy!H zQj4I#OE$bN^|@sBD<5RXSESH7ns>=;PYahGK@`^~iu;PHo}-HXqoT(|OM+_}4@41g zq^%}Ox~s=q6x~w|fvZ-UhD&*0xkS~}Fs;S4T`~6cqM!mBpN0k$*!;@x0_!?S^%bn98hwkhk&d7_m@{fx`Y8G%MSnp0w`Su=7xMqs_RphPq*Q)J!@o7#%b#EFD{lGq z;#KUn8?bD@xLo?umCLc9b0{IHlHdx_q3EZQ{!R}^NwWN7Ii&R8Z>t+&y~y*j4QqP4 z%fWd67<;)J-e$5coBgJiThrVzD6G7OZe2DT2@&+{vdwS2^6Z*Wje5wrT|^OA%=WPP z(!UxWtuiW&O|0lE=`|&2qZIvjWevNtxc;Z;J}T8NFC(yqiGCzYIW==MhoY~M%T)7{ zaUX(RkQFkQNQKi9wARpMdh0%96x#Tevd}zYxANx7<`v8v7OD~_wOmp3>Lcj|3naaP zGP+mMC#x!MqUdhuHQRBIr5%N~=&EY(sixRZ6nmW7!^SFlA7qc!;ulJSYvF#N=z}^@ z;CD8C3HABTY)?`hbj^@oux_(*`F|wZ9)0<@V?eZ`2acA`_+t-W%Rpy4O_5=~Tsbhk zCh7Td2x^ot#w*5S`r|vUsEDh<1|pq&)#kre*>H8_?f%lns%YAO)n?4-O82hX>`PVc z+>;Kqu2|_gf>^bzx|Z876utb~U<{J-Rn;6gsO(%+balilIpGZ)Eai`3?%-;!snt^3 z2?nPsR1H6Wq~q&%rBHP`9r@lCGF}ajt7>A0N_)@Ln&nz`6BRvn5(Qqf8B+&S-)pwk zoyrZa_i(AbMeVyIrB7{=qCcgqYvz!-YQ9WU+{6)5D{87FxN@{#(RtEd>l)oy8Fdxx z`8TB6kqJ`Gs?7bU=ws9l;2N-b2~s|E5-q-N3kk<8<;#_@iU^iRs{C8nU`02&(7o$6 ze`B&#Yav0~JW8rePbYJRvf_PL@zrusL7{hQ8~;;z{a4zr|!49;XBguTW0%Ytb=@2lb{`iKeki;oc*1m&rp-i zN6GiVn6Z5MjeEJGm$&Z#o###)Ogdb4jXy#2^-L+0|J3m56zL#8T!?8aC1{5gy*>69 zzFhNx|6LFV6q_RHt`bdE^h7li0)$`May!uPni}L9QbS9?2(k&Bf$^KaQVo)QJCR$7tPF>CXF7?9NBGM(f@5E*~`; qga3M=OS+_X`DpkU{iR9)tK?(AM;q{1J>xU^=)#U)+#RFeH2x30bVPXo