From b400941629b312c7f76b4ee1d5d19ef1be009ec8 Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Mon, 9 Jun 2014 01:12:34 -0400 Subject: [PATCH] Removed c_str() from String_Type, String_Loose, and String_Strict --- Jupiter/String.h | 14 -------------- Jupiter/String_Imp.h | 26 -------------------------- Jupiter/String_Type.h | 9 --------- Jupiter/String_Type_Imp.h | 20 -------------------- Release/Jupiter.lib | Bin 219206 -> 218500 bytes 5 files changed, 69 deletions(-) diff --git a/Jupiter/String.h b/Jupiter/String.h index 29d07d8..a1c2bfd 100644 --- a/Jupiter/String.h +++ b/Jupiter/String.h @@ -39,13 +39,6 @@ namespace Jupiter { public: - /** - * @brief Returns a C-Style string representation of the String. - * - * @return C-Style string representation of the String. - */ - const T *c_str() const; - /** * @brief Sets the String's contents based on the format string and input variables. * Note: Format specifiers similar to printf. Returns 0 for any type other than char and wchar_t. @@ -208,13 +201,6 @@ namespace Jupiter { public: - /** - * @brief Returns a C-Style string representation of the String. - * - * @return C-Style string representation of the String. - */ - const T *c_str() const; - /** * @brief Sets the String's contents based on the format string and input variables. * Note: Format specifiers similar to printf. Returns 0 for any type other than char and wchar_t. diff --git a/Jupiter/String_Imp.h b/Jupiter/String_Imp.h index 4a12902..99ed623 100644 --- a/Jupiter/String_Imp.h +++ b/Jupiter/String_Imp.h @@ -85,19 +85,6 @@ template Jupiter::String_Strict::String_Strict(const T *in) for (size_t index = 0; index != Jupiter::String_Type::length; index++, in++) Jupiter::String_Type::str[index] = *in; } -template const T *Jupiter::String_Strict::c_str() const -{ - static T *buff = new T[1]; - delete[] buff; - - buff = new T[Jupiter::String_Type::length + 1]; - size_t index; - for (index = 0; index < Jupiter::String_Type::length && Jupiter::String_Type::str[index] != 0; index++) buff[index] = Jupiter::String_Type::str[index]; - buff[index] = 0; - - return buff; -} - // vformat() template<> size_t inline Jupiter::String_Strict::vformat(const char *format, va_list args) @@ -325,19 +312,6 @@ template bool Jupiter::String_Loose::setBufferSizeNoCopy(size_t l return Jupiter::Shift_String_Type::setBufferSizeNoCopy(Jupiter::String_Loose::strSize = getPowerTwo32(len)); } -template const T *Jupiter::String_Loose::c_str() const -{ - static T *buff = new T[1]; - delete[] buff; - - buff = new T[Jupiter::String_Type::length + 1]; - size_t index; - for (index = 0; index < Jupiter::String_Type::length && Jupiter::String_Type::str[index] != 0; index++) buff[index] = Jupiter::String_Type::str[index]; - buff[index] = 0; - - return buff; -} - // vformat() template<> size_t inline Jupiter::String_Loose::vformat(const char *format, va_list args) diff --git a/Jupiter/String_Type.h b/Jupiter/String_Type.h index 138396b..cbd9b14 100644 --- a/Jupiter/String_Type.h +++ b/Jupiter/String_Type.h @@ -62,13 +62,6 @@ namespace Jupiter */ const T *ptr() const; - /** - * @brief Returns a C-Style string version of the String. - * - * @return C-Style string representation of the String. - */ - virtual const T *c_str() const = 0; - /** * @brief Sets the String's contents based on the format string and input variables. * Note: Format specifiers similar to printf. Returns 0 for any type other than char and wchar_t. @@ -77,7 +70,6 @@ namespace Jupiter * @param ... Inputs to match the format specifiers. * @return Number of characters written. */ - size_t format(const String_Type &format, ...); size_t format(const std::basic_string &format, ...); size_t format(const T *format, ...); virtual size_t vformat(const T *format, va_list args) = 0; @@ -90,7 +82,6 @@ namespace Jupiter * @param ... Inputs to match the format specifiers. * @return Number of characters written. */ - size_t aformat(const String_Type &format, ...); size_t aformat(const std::basic_string &format, ...); size_t aformat(const T *format, ...); virtual size_t avformat(const T *format, va_list args) = 0; diff --git a/Jupiter/String_Type_Imp.h b/Jupiter/String_Type_Imp.h index 8b38128..636ba44 100644 --- a/Jupiter/String_Type_Imp.h +++ b/Jupiter/String_Type_Imp.h @@ -57,16 +57,6 @@ template const T *Jupiter::String_Type::ptr() const // format forwards -template size_t Jupiter::String_Type::format(const String_Type &format, ...) -{ - size_t r; - va_list args; - va_start(args, format); - r = this->vformat(format.c_str(), args); - va_end(args); - return r; -} - template size_t Jupiter::String_Type::format(const std::basic_string &format, ...) { size_t r; @@ -89,16 +79,6 @@ template size_t Jupiter::String_Type::format(const T *format, ... // aformat forwards -template size_t Jupiter::String_Type::aformat(const String_Type &format, ...) -{ - size_t r; - va_list args; - va_start(args, format); - r = this->avformat(format.c_str(), args); - va_end(args); - return r; -} - template size_t Jupiter::String_Type::aformat(const std::basic_string &format, ...) { size_t r; diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index b9eb1d880f8310601c4a977ee547eb01cca2e240..7773db4131bd7ea373b7dba8254f36ac5fd92bf9 100644 GIT binary patch delta 28409 zcmchAdz?bdi4Vwf8xDp5v*{=ljR^`|I_3Kj(SQUVH6z+iS1A&l&CC zQenZ<6^d$?YLlALrn$OUTh<7)YLOPt{}qN4g{>zk$B_(MMzYialEqOjmg5R6^H2@n zfd|m8f%^{t%RQiNc{Os{o_8@DSD?d87o~9pI;K*9Kb&@j8ghJnlD{rA_^cmE#+jW4 z_Z=k3NS|d8{TfL|jckMN50YeTY)5kZN|M({kSr5pumMT|PCUk8#N}$pN@oLv50Vv! z8kGNuB%^|Ku?kn9(kO$9r$7fh0!&tl^~0AdO~3jz$r#KjaTCkK!U z7GYHVOv6d~f*3MT?J`M55jryNUu>`~ha}?#m=SPjr-uCN3K>ko6}YlZ!)g61G32ug z4W3y`lCe3}#qYQR&r~zmbT>&LARpdL8mqEMG9D>w@Nfd|11nc(IE^19jVATU0p!*} zE}+p?;8D1OF>t6s*J&g*e!&&!vdN(H0+Ng_6&djVn8604b4h9(!xgv=5;8^=x;Td` zP=266#2k{04)8l8JIo+!CrOPMT!HpW3`X`Nsc`~Vpb+;91N?!GjG-$HhQ*U)3_0!s zf(-$NLkq?T49XY|Z5hKh7z~E>H1^>NTszxf&_$Ar0eLRo#}z181po6#0U7kWM3T{e zmO;N1{090yZZK#97)>B2eVGdcWjfG2$_4H>2g+@65sNDjjsVrzhAYq-K?%rT3gLfz z$e#}z{PG2E0*fmeyb(!~@%Ac%L#ZSg&CeOsYDbb0v)7>3cKimKPcx{AfM&#WGsuCZ z7;T{tBYQFYpS_r5Lb?^anA7s!q2@OCFOvvbV-k|+9au^*jZyDJI23ae~Vf0yG zke^QuBX_Mq?^EP3^12!Hh7gSY^9%yLXW|CX=bS-548rISpE7b=8w`LS83kx#^vgBq zdzKtVL7qYXuh9?a8)J~a9RdM;F(9MYP=hY$4+NafkWOP7u0WSv2E7h~5a=9c(5D6j z1oAd%$ioOm#=e^j-dK-V0gjY4c;^^N#(_r-PTx(E@zSpbFCr1WSPlL^IM3j%Op=UG zcDjhc6*!6bV4TXKG%76d{+i(SXU=T)bfk979NyZeos}<&d)h#4{ zAB6=c5ve?hSM;W81l0d24}wj9dK^0!MBNE2z+zc;HzIrGCn_P z@C8iHIC{+B30Rx4J_G*ekEQs*D8hHf6EG>`arlt21k5x>;|iqBF^Gbej6D|&4iKgq zaK6ysy@3c&plyAFX1Q=F=6zY@21b+3@IOA}y^{BpX@>gpTYl6enxU_X@e_GP|X0p)p3C! z`3*Cq#w3I2!{h++cL>Dz<0gZjAh5=ET(@JozN{gCTtXUqVKK(5;LCVrxxwy07RlX= zqXu7LzB0aPXYloEl8i6oUF^ekA34<$HROw%k;OKXQ-6tuJh2P01iX$Z$2hXy;3Irz ze0;mXN59}V5I8N77J*Z*8GH)=GCn+Ha14RT_+X~NI~ho;z-u`Mx8ll}Ut};lj3i^u z-3IgWNit^bGq`ykNyfB(8UZ&*97)D)2MlJwyo{T&4FVC67P$SW!2*0|+?ZrA z6E0w+T``DG!TtcKiT;cnq;f`$od)R_v5&Y2|F?tmjE>0$l~##xZaU>b7U;#!REXimMH?RKy70o)=I%bRqdCWBi<0{jQeNHrxXNWlz~+=5LjgpSbtVDxV#)fBNay-GKkJa<^*a& zK@BKZa|QB$b(l;e8&@DIPeVSq3IhX&wivvIKxDj9MZ<~v2zz*-&Or_N@-osmjv2w& z55+WKiT%J!Gc=q!-9Qf{B5NjY4&WonpuwZ$0P^lS8ctQDSVk38G#Z2}5P8-`0j@yh zDH?KDK54uF%^7D9tc+cs89W5uj1_AQ)@>lUj;F-B8U`OCU>KhlYB&wzArR1Tmq9`% z{G5rr{*ys#%n(LH&@&PzxcC}Zpy5XblP)5@u8^#sL%1D9+8kiAD zK%;&JlTTr@vDcs-+{NfQ$Dl3Bb4Dio3CN!dG@MFsBO?Rx0mwF+3>s&V)YyybUg{N60Ih_CCe2b`MgZ= zXN}_Z50wxj5>;HBD5cge5S7(8cZs_8XX)a{lD{v$uW9$<_DwE4e_zvS?*|`_wN7j0 z9*&KXMB}8SWnq#Il#&!xENMAonWSn!)C2g=SdQPo`L+(t24;3}s5Fq;(V@b24%Hto zY2mMu`h6y8=NU-{?~^nuUD9jOlCo<^da%2sb{i$F1YJbndPy;5B#ql3sW9H5+&G8M zR+2QdqNJb7OMOJOs)D3ZxOWQomOmmXeYK>yYb5=OYeI}eyMeG+hvwCCXxBwaJ%5mN z>4K!&zn7GZ-!oDiqGk>i0jE+O$^fRMIkbPOq(Ec^hr(Mqv{Fg>tg56hk{r5RP161% zNsI57l(P*|z5q?gp(}q$ngndSg27umwD4I;YoC#nx>?fiKs9{7dy}Ni4@=5gC8;cg zO~CgRE1`8`Sf+_XgSKKEApKD&IZy^@T31QG0Gqld z8yj*kP+OQCnvIQ=bU76<&nqLdymZ8wLO_i*S?cZcTUdqhu%I_2PA zSBL80{vg~>!uKt>cOLEA+B@_Gg0vtTuFi63K_7?m^BoGT%|%f3cBoq(nBY3EKO!2} zb0FB(51Qh4YtY0F!0!SCDDIu@>rfuPe~q>neBTa6^Kc#73+-LNud_qbfL-{05ck6H zy$1Mg!Wa_{OS);Fr1h{$*(31(v3DdrdH{Ytji7o7LG+@ec?TtBz6Jk&0{;SwPfE%@ z1)m~V7a`JPTf)>W99j*el!pbvAZRIv4m>Yucnd^*EUXEnSA-?%ITT;pp-Vqt3L^-A zeNWQH_YtJuA!aVX|1;jje9wRo@sg72!Z$!`%mUsgABPaf!7#oyq8```(--8zmpw7B zryw3MbGB4hL5;21kR$?komJ~Y<0Szp|^p2Q-V8c|)XzI{$U?tvC}Lt1F~+zzyXb}V9IZ#V=67MH{Cry)3KcP~Pq z0fi9`jok^Q8o`~{ND5Cze!z9m9?YIM5p>@|uw$S-Au0bX=KrcpOoJ3?)XYIjVbHUX5@iM_d@W+@P7^XY|3+(yN`h(u&|9o7llJD97MB3K;ipw ze18x=uU6WjE>9wX0HxPTYH~$Vo!?*)U{Vc-4o5=?xZJYv zsn-yYqd$fFK7=`8(wQGX0R(f-Yrw6Nisr*Qvk};HVCs3`Jqv+-GlFg!GU9Ye&)tc* z3)}|HXCS(7;>7?`-Hz)5`1eL=FjLYMm@_3B?KNS#9K=8kB&&1`&<;`F5i_DP%nY2z z?}PZgzY6GqLp{-_4zvdj_k!@fAwVk#nI~yiYXl#H_!8~~BD*6X;IFyefP74mzVIc8 z4mH9;k}Ro38zdiOwY`tRr${ngkVqc<6LcAvA$P$Q&@>rBuZ5-wQ05#o9exXD0JOaT zP1B)V!9rMSF3f#{q>rHJ1}Hl24)DGc{$B}gH$&T%(6-CJu*v}m+o8n{OgUUH{~JNX zI1bZeE{|#ncOk0xBM8Gc!Fu?e9*6V|Eh8qvYMrps0rfK-Nq?)ph76EX%tSkmHYHnjwHId$ATbq{L4pD*!g9;O`%n~wL9m7gYGOd( zSapZ8fjl&v5ZIUkr(8Toz}27dw8Jp;Gl`=d}KuojwZSO>EKxgWyJpF?^u+J$_O z39Wy69d1Fu6gI>Pm?-IM;3Is$2raL`YB}|hAAkuBATW@h1eXB)5I?6TV`^f-Ifkle z4q_(^)zS*MrQl~+3+^b&a00Zc4d!EG5CXINU|J#Qx-~^41Kpayv_QWp2*wl?8E8+) z#B>ZJszY(2j;Jk?MI(_U#!-D5PYo!M>QNFkqy&1Do)#O$vtqN@K-u&Jb)xl@FJ2Ol zi5gUs){Do*Bea?VE9oJ6n0}y3R7#Wq;>R^ct$))k5eIyq!BcX zhSSSpmx!S!#2R{v%7}7ei#RWy7iGmxu}!=vwu?Pts2nX{5xd1gx|8mp1#~;jrvS~P zp_DFKh`VSm-A1?49J+~aq#I}^&8Ax@a5K%K88n@y(li=N*V7ofjz-fcYDY@ED;^Zb z#KYoWVx2fC){2kCDsfz_5J$xW;)qx#4v8XhP!x-I#7gnLctm_4mW#vUe(|2B|{8XF~r$qyiDo)cp(L%P8 zN%B*wFYC&i#Vm1)Xes)N8^ukclw2y}&aD3q+XgCN9%r(OMLUU+FjcM4S>|hz9aL(MH@Z+R1yxodI!|SSWrGU(y%! zIi00@#3FIGI7JzO~{OMKM4Y$O;rem8qZHPCtkjsS;JB9oV?^m63EwToB)jf6*~|myXhV^gL~$ zjr0r!UZCe_6Fp1YXe&KUo2kD%Lhln|>whW1{FnR^_`gmt|0TZ!{;w0vKjoJgQB%~W zssT}1R1sAuma2&w;ydw&$dMIgcNr=2=@=szZ+ilQVHRTBRx8SNAQ zl#XiA-z20!NJjeqn~(w_8R`FPLaGo5%1LhuFDw0TB&7)PKS@i0f5=P!B`rmX=>I`# zDldxYbrG7L_6wV!0{=Bbg(j#s1gEGs=w;eNuhJ{Dn?9i9w2NM&m*^cjM2G1uIzX?} zKH5uf(?NQZ_WvVw^}i+GQM0?--B@UtG1St?bVTZSxK#_AfsHGqRv>M&~0vcIWd^s zE7u!#F%k0m;QNn6$f}xWH}EX2>PE;+=2<_OW<)I`Von7sdg@>qt^RD|R4vc)v_{{u z6s9Uii>9hll#Eb?ak9G00;F1^DHY`a_ZBOnJF+6-rei{JVeMGewvtS6iSh@^8ftbW zS%uYEQb{g#@8eCuXmzBIQ711__AMDFT0I+WL_HcQ`v>3eP+1yLTVTYB?uaT-Sthwu z*?oOZRk^3Xdl(HW6k&%qU1H6Erz=uYl)6E(J?;;2iI$(Wn-7% zXtXibKfKj+9pd6n=#^RTAP4gE4i(v?Cr9MY~n_ILkwF-y;M`y3W<2F zm?!ea7%MWzosR4b^o>_rV`RPJxIN)2w}!0iviF?6vzB%Gyi6lR>sZ+%SdT|y-Feak z-0G=k@w#epWI_3mXxB=&Z)B89sco5TX=(Uws4Y8}@YVXp*751fA-A%Q?Cw(82+|X# z3r0_(u;Ta|Q&!w7%BzXF{&-vawd<#LAZ(-w)70rWtFac3bE2 z8ySf=$IGs+EVvb|D%Evkr~!I6!4SJYj^QC9g42*^*_CyzWqp>3NwAjj`Kg(zTTdpc z+KWXQ^-c}HZhFoP>1RwEQ_s$sEe%~qCq zg>G5u-DFu?onDNGRxpFl*>(^f{9v;6EYBs)pb;2k8wQ1`vcXj*+}$`tgLX}<1~@S_ zYei!)=?tg68!w{O>Bctm=+V9PAhoGYGljt^tE=gltj;y_%kG)6b&3_@=zdphyiQ8p zRfiN=M}3?kn_T6d*3GPYw7EFC*Z@15*`>!zChbzKO{`^^bbG4JR-T8m(kxeR{n?%7 zUw?SX=H7$S<(R8vx{z*rvldJ>rMb0;&rcVdTbaDLnb5*ooyE}!hv!s(O!7K=>xWEo zR<9B-gzVn}Op*>A($to05mj7N5Eer1Wx$gyZ3grP&d;y|a{^X ztP#1tK9BFMn%)e`$h4z+uHTet2lTW}Y+ItOmr!}Y)onw1S8Hc``vPZ4J73^fPmQLq z6%9nFr;gTh%uMVL6OK_Gvt(7ZrM;~suz1%{iCL!9%FL2CxR#GBZOV>QS$0v^VsIJ3 z63^>korL79{T7jJYeZeZr4}2m8?)sDE?2P7q|-Xuf>3kia#E)YE+;3ct=Y0sai#3i zs&-DuI-vW{?PQ12OM_QQ$9A@rv{wzk+_|J0?qNnB)Ws%Toru?LFgl&>B1e=6ii#2| zfwnKN1T&CEUQH5>R&OGq~wPKj!5M;RHsa{B!I zb$9D$Eu>c&PRsEsLuKjp6ya1oiVH9YsM>}lQO zO_g}OA>k_H@mkxfgcldb6>{C`pcf>Wi>Z=zQ?`0G$4(Vrw%(m>c5gcb+l!-Y zZ*MDzmmRw0*}${<>rBM@-=Q;6i{f|B)GW?^vywX6%WnqL18!yJgZtQ7U`5mJP6MYq zA%EVRiGR<*%lBjRZNB%6axOnauStEaUV415_xZlIw~i#QzM0m~);FGy%JvWTk%>$_ zUpO)stLXz|Qt`#k<<#N+wo37$FuuSSg}N74@=J6twKr9SsXfE3ldMhILK6nq7_^qN z6QT$fn%1+Cnl{W%2ye_e1ASvMtL$s6C+!fL6}zoivq~%uTf85-^GDyx3zQ5{PbAQXV@>cgg2Gr3sbnsO&1Xp?w^6G+T2uXjZ(4-+D z3Z)LciWzoJR-uQX(9!N83RxqvMY4w3@bm0;U|7g7i-(5}qkYJBTceH)gXga@n{Skr zBYdOit~1efomw|SHdgs5B3t3{s#n|c#IqstDAOeU=Mb4PGBiXq1CGqc)w|dIb7amN z<LCqf{8~;P1RwqY?Wa`;te3EGIjQtOG-^2qXc`KAx3V2B? z_j=n^&uiZ6YvsDbB%9Urak82kzFs7&)svB(Dpa-yI6BXJCk7M7+1-Lys9qUo3)TGb zCZy+#_f~@ytIeH?6YL_Uv)Vlq%;L6s!rzx3Q4?+HQ8>}CSUgd7bf=C@jBFD;O0_30 z?iOU;BrB3{v@4VBX!^dlExu{8t!i*z&&rFFEeo$soHE5%Cq{Ci$;SXM zZ~ddHT08}-XOQ)LMd0A6Rx5pf=|jc}N2mHY>xGj!?*V5eo)WcG(GPZ~>{o*{2`?XCld7gXkc z_YJm$*>bxftv^%V7)SyqO%vy8ZhW?6CB7~1S?j3ZpHyt^~|@2pXAwzY=G zdHd`T&iS`m&OV#{a;vqOE^+71G0VcTIhL!Y_Y9YLn`Q0U`2E`~YfpgLb1fCCru7&A zJx=iAG2&U#Lrq;^moKjZ-4(E+u&1?82BFhO@Jal!-oZZcx?Gv(>%u{>a(<}bdVD^L z{Dj9pwMAqF8`9I`L$-)e}r&%8raJKJ`93= zr`9c!)zz98L_2lzW_z|_HDFV1SuAgJ8GAdb;rCf(gA@LWB{tvdfStF*wZXL*>IY65 z59g_7Pul467KN;()|_6HzP!{L-HxE8<|D+P)DK0nwR)haPSIKIC@zuOdw8G;dAIi)6Xv@% z;;n!V>QuD+&dFhG)tYK}XB>C#U2Zd%UQzhiN0V~3{)b1J_o9eUUmh+Q59^esN&(en zLlvi9dB7^q`x{NbryYM9f_kdM3d?~-(y_=QU4b8_SBp`RT|`;+$_mTHN~9@SqQ6Qg zLj=-9ED#B1S5NJI!0P5ZZxFgYPGvr5OKgsO-Jef+C2IG=E+S1GdeAaJyc+^O`*uK3 z)I~H7Ca?>dc0oN*g{h|>lHPMK?yp<8e<>BWQr73kWy!9Gw5GmOh-#5YD+weDe=7Zd>2+U1~r=Fbh(;fJkuTp?(l^}#b-J-N!t z&4$q}Y?$)uzBRI`%6Y_RH`^Rxn%}q0Ts-O44(MFLv=*+m=Zr;YF2zO2EvngS*`oNG zmbz&6orLoEnx>uFvs$L9U2E*v$fw37dEg!im-Ow9M>VI{%2LI<>qe_WymaEKZ|9M= z0nek#LFC?%pU=fr3_)YHah+uYf~y|URdv}E?};z1I>b4?$8L+dM_XQMylmE9Ue zM@P1*v_WPpD=wwRF0&+XfKj3;28vg`o|4_X0T4P`1P-0LEJEd1MJH8pqwUKDnx^1Q zeS%9-UoF{a!_QZK))QgNZmX_Vy(*fh)Tb>Mz2x&zmJYn$U{#+9QQ1E2KS8lYlP2Wa zqk-mF+~KpP}KS2yosSmO)sa0 zY_W?&P-3XNMYgcpX`h%unPKY|ndWWReN#{e3D;3tAAY3UOqG954s^}M*3eGoLtLEL zka~BY=&r^bv64(H<(Mgy4~jHIV&S~5YIGZ`uJ(uTKrxE7kfV6(DqWTMl+hIspWA3wBS6{`thPK{5Hz_y(kB}UhqBCYRfIL>eCl(GO!`9RMrf~I-6iL^Bj{#dk(tHKy2z}rHoqj>yM$co>44zZC_1ns){btkO1)y^ z!Iu}a)hjQ{32xU=B|EAgUXiJ4=_}qU?~D9S-0Ed`-}z8yHGj8Vxou+5VsT>V!eYgZ z&QfPntp2{5psQN9$9kQ&quMC^=&hToyI1xsF^Y)?4!Z8}^wxf&j~ej-yd3nd37?4Q zsObc%97EMy{rmwA34*A!k9+A9P6kY3*gXU{km-&aWK^uC&iW$1S8U!)>4itH6>c@5%pX;twmEN|l z)5G`<^#-f0Z_7e&euX>>83I!kj>%T{9hFt?0o;hx*^hkUPr1j;;D#O&$ zcjRbyB;VF#I1lnwgW#O62aGEfF7PTJm;a zq}p@DKjD4Pd`3Zq`v>7bIVb?FPqYf`lk3!(qrt{9A;tC0X!MV`78}Oh?^#5wdaQ)N+mh;_%Ldh0uqnD0uVo>Ay~5gBQk#M;c|C_l(J{p4UGG_g^Q_c@ z@+vw`oq11=3-&4(NV=H|r15J0`*N(?%r%y7;Zv;%D(+v_Nui#e$n$tnNU&-7xfGqG z+pDQtkIMp=ybH`1Z38~<(t`5z zoT|P%AseVlLxq0*&X-Sp`FI)=dihxM@x}jiHT6U5QoBRcvhaIGGa$>!@9L_o&#gb$ zUfLCGuN&B{&9>>d@$De3?X<*v5HeH6eJp2qK4I7Umg^hUTOZry+BZFJf(%=JX%HL} zzPk8kj@@CRBgd{!hR|d`3#9K36X_xOF*KLn!a9U)tfd zdAK;x=HbJsyI6*G_caL)8ynwR29EE$)zq`HOYl_X5>5-k=Y;pb5YtDB4E5bdm}fyp zcvc%t%GxY4q?y6q(361Q(9q)*fa+e=>}xs69nZIqSw1rM*~DUqbN(=lxJL`#RCE z_{h>|HSMyj99*Pnad}>AyKou4%#dfOoSy!YL?_0AN{%s3AxMkWC+FoXS2JxpKKj?3 zu0iv1NOyEes@n6NcZ9&ju5RYDp9gev3pMeAjk(Yyv_eh&9`Ar>pF&yqPZfh=8n5Km zQu2doZT}${=RsBZqMR8lrO(3;sgXa(PQ~-4mQ!Vaut`%VUVha@v*`miE1Aw+qI^aB z!%AGTMZ2|v?#EVGrS88Zr{T|_ll;UX(!_>6XF#6OVtsS&i`0Q63D;r!^!&rOk zHBc9Slxbcl1s{m4(e1s}ro9XuKZ*twWpTf+H(Sal)zsf)?24(#1vvThofKFlwRKp@4NUAEn(+IO zx`p3|e2QCYtH|H&IgggxS1oQ-Q-Ajg5kAb)p5w!;r{UTk#)%Zw_Ky<(a^1?yx~Af1 z)tf+7XFQ7MtL607#?PoDmt_-Gl#O>YF_XQQqY!i@tHfre@n(ZQfaX_;wJ!WB@w00B zpWbv->?AD$J826-D0_VeRi~EYy*p~%qlwr(TQyOq;97_mQSBW*U3iYYQ}IhtPwi=A zH*r4yJfpG?25z%7uGQI7A+KzX4Xj7^lg;VMa0*{cFd?{N0?NNnh!Yl4} z)mAv(^A0?0GP+)mmK`E&#Y8bwO?Ir1zD?~;-QKA9uat`F+X#Qm>Zewhq+=4@cyN0W z&bxo27#_^d3aw4YLhmwEjsKRZ@72MV)Q~X8TXcLaFRQ;wT73K3SKyeHYr3j)r5vvi z_w87Bvt#1E#>V&F(pG1it+Zu1TkT=*R9x39_) z*7N|JE8c*~`%V#cf(b%nZNFL*?hiKK3D%n!0TsP+{dubk3>y}F{iz>h`qVKuc99?^FA7GbmHUb{GkRsu(u z(5(b~PXUgqxX2RQhNQiB;h?$GkoJ1lw{gNrNejqH>6q$R+3|LMzC-Bu)Tfml@9aJ_ zo4>DyRdKv*?%QDfOP#6WcpEI9_1b@Yly#i_SNA)VkE^QMh}5iomFfo^meVgaQ3WM` z@u9uUb(FS$M>V3V)3kWnkCh(C^Y8w7Jgpp$_n}%>-N{hzggf>R!FZeH3zmySh-kel>q8#t(jh@AP7Nlnf{~g*VF#f|cMB9+_y-;hOQg26F zYx;EfRGq2e)GluStzKfi)Ds$Mr&>VU5s|TMa_47`I-8-rsF-* z)Xe#rv^FH~nLbxTVysI!ezZ$De!gIrp7|cnasILN(DvZ9?Mv9>$_<9p+vsak_|ELk zYVV(GqH<#GI>{RYJtUvye`N?#)rnXeMB4bidf{u8R@)ivR$Tg7S(ea9@{ zsb=w3S|dg93!N8OQLb4K0mPxH;XRnopgJ4)(k66f{h^vA*_q{wtjlU^l3ks+MQhFG{}Z;Ucne;-{G>!}%Q@V8?tMk5 z-Hjagum3o+=@zb-{}L)Y+3{X~SVhz`$E1ncFVSX!Hs_r2k=6cwMERkQfhTN2e>sZOG+fbUqb zydlE5dn(3W9d7?zh$pT#08iWqH9yU9pR@Y5!WFn7U7a~>CmSDg=p;8#-InGwQS*M1 z3F@14yHMK7RWs+xwG#74GK7V55Q0IcY}#wQpVrjbppLZEWw8S<r+ zHS+aosHS%C`uN05QfF*~iqCcxh{G_ARR3(JwKwh263aQfHd>NpSsKyv#%becj+rsy z`Y|&*jl5yZipsK{OB?E`#wx9&_0;LE?jW&X)kHnj(P>d)hG^xpQd3pEleJQQC%0of zI;N;QI$7y_ayL^ymbBpCn853leO<%XLdR5fU1vL@k7b%V(%G`~O^f&FbhT5HD z;}nA$3J&DY#oRo`AtRW)Tk{**l@ z*QpS^_^=R~kcH@I2=Q+gdIe#qVLCC5Hy3?|>8$pYwCIk$KhW0LKv&&fQ|->Rdj?;qc2l)_dlAR8Qg`I!(H%M9%zP209_wv6`vl8TfA;=+k$b3# zd4J#1Q+?=biB^C0aVJI%jM+jpied>wnMTKTr4ZZ0>_bsKOh5el5YMf@Oqhmg&8Kjro@l%4+iypx@rTeOv`ugSbHTP2u z``KpS2>sm=3dTbHJQiYvaaWq=yd-?nI}p6c&Zt;*t8L&t&4{Dzq` z#!R22?hm(zz&;k&s73{rg|B6hT3XVgnSWT|RISd;qrm)Hm-*z8Gp`#L%)aOvCt1H_ z8V#z!Or=r>Av1j1%Zc)QFu+N!%#5mlWC)YYoH2f~j|pc@pA(0w1_Mi+h%vN%cnrKR zG0=LSRnP`t%MEANH){*1`}1uEu*zr_tjq|!mSL^H3PiDV%)HQJq4f+}V>Av%$&EGGcy}Aa-35nF_I*DRMH78k9J84B}r(V zrE(~#B%$(^qUoUWEy=f}lK$_{b>H{3=Wf;S_kaEWudmnZz599Y>vMh1*XKIi_ha#s zwfB|RE^T~8r?zd=+Nz3;GTPU%I( z#*e;QB!2{cc+SRoSfTMPuHTZ?Hr>H%xB~5l*k})H80{|FNQY2B&YG=Z)j2{Moez)& z$On$tsK1;fV71<;A$^gXNHSKSqsC=i0smebFDxR-crnDmL0k`#WzDxCcax=&iYp-I z+UUB2EI>ZJ)5cTBNHWT&+IYGh?zbbKd@2_Wz_#5s9y(2u@i1b|SetF*p^>-`tbqc6 zl{(VFXBsnO@708}sBWoW?jV`zX6X4|uKKz-u*v16D35-W4 z#@Id%5Wlg&m|Ja(hEj}TSiu+%p^R}S9TegUj5=dubP4EzQ3*Cit|7@N`jw=Q{|rZb z8ATa3hHW9qD16w)uy}k2h8}m2k1H@TQp4&{NE+!#P)3JiHZpLZQERr1nkUI()I!oS zYR|>^#~-T;vJ{ZNG_!HBlqBPqjW(9;AjxsPfer`*Bj#%d({TkFPq5Je zv1c@z?Erlm0RsvV{{e7ScUZ&7>0~23oFt>&CL6uhkz_=I2_q`aMlaAX>Ic~v01p9H zzx_6Hi^yUOSZY&6)IMjUdNx@a@Md-2 zF_c%bkr6_Y(HM#_Vv(4D751Zz1mpvw$!8k!$LBD2JV#av7ypu43gJu2Qf0e%|)`(AZU6Q zl2g%P%2JZgq1guu)HRPA8u|fjAL6u~D zm+jzdT!C*(ZJgObl5rYFFuuyQ@%~E0pZ`3*&&DPQXWZAt!DqMvkHe*mjS$8t-QXY$ zSD-yCXGFbVY;Ar^|j zBbgc&oh63+t-{8oTS)>|qf{FWOUVM{@9+xaawi)Xj+12kJWs=lyO|jB0*qk14*nWG zFn%4_U1Vbqkm?)sEAnd%`AP{ftd{v2@?#jr*q3DE z$W)Sy6Zp>Xo$N)DabmlT&-RjJoLX$-vjltxK3Q(#gCi&+z;O&)#(NiSyb(f@vEWA= zw;^8`HvRl5 z;TXv~x7k>TI5TcLYGXkz;tAY*(8jH0BpEk_*tqd6gb$d#+QxM!5kBBfvau)(VFIp? zwJ~oANyaUO8a{bDT)|iZEj6I!65xiBHs<0p<5)EZ>u?3Oe_`XLb0jt9;tKq_(?K&_ zfsbrh3EMGyZYS9>RKrTal$=tG_;0#wV_Ob3AV9~(HsW9fBllMu)4`zEaT~pdU=adz zJ8dHy`#nal88)z|v>4$lHRSS(C}hA%coDE_PScPbePG@ZXbN{|e1I!(Z5qj+4ro|W zC?1R&BQ)gYqbM@KBfB-Mc*K#>`~@2=7Lf(WBM`{gi_eS)A%n3B;bh#^1tW|9bo$Xo z^KUW#1MwvepjbT6VxEl|i6mE#u<_FnCj)Y~ry1~YS#}N)6{;YzV7>`ys$j24<1ewY>jSL2?mY>;3 zT7cyl5PwNS?t1~X9q4?{MypyR8Hte&R^ke@T4G}cirlrE5z-$KfButjr;V2Apizb^ z(CU(nq{SpPFjA6$nRjEeajT6igo`mK(?)kJ&ovOr?#Pvk;0aja2qU92as!ZE(FTl? z$!AC-WjaYlL4u9s8MqImp108kF=wRUJ0rEk#!M*G=7Noajpz$>J;->rB0M}Qcvw#F z{G47RMygRSiNxy8H-FRNiK=vo=*WL+`u$1Y%eL+OJ6pHMr7TAzJ?m@TNmy;$W&4+< zq+Zb@rwFa%Q(F0btp}*JZ-{t&=&6eGMC)fuQ`Gy;d0KHY&ePJ`w{_0brbwcQAW50k zB+aQVDerzs2N)|QLzdSSh!G~kOEixxGuXkV;FIlzMdNUHUtr00Hspz{z2q_?%` zHDE|Pi`KQb=pwFZ=@!kNCCPWBjztGLTXf_BNz3a?+SuBnO_7pjuaI;Z*z1?H=mkk3 zFG@NH%(pDsEiFm~<_e2;bhT*b(~^!oC24B8q;~k6i_g2aNjm)ytbbTiHk2NT&j;7w znrhK$p!8Wu4WE-fnzjMfj*t}7SJETEh(55ax1=3FHN@oNWJxz)1uJl^HAzw#z-Ks# z@Jvz>x@M%LUyESza7h`sZW$)&;X=d@*W*Ja0LrwIS}G z=?ew%c^lg2W?Qro2^)!I9gU>*^%-JO_)v=`3`TO~TNGRXCit9Fgv`eGEoh%R43+}F z=E2J0_zr~P`=&yR!ti-BXg>juc|Z>C#eyyrLf7@Ns2#8XpO@m^zTOrc2mcvB@?jYG zCgMN!Em(msD-R)#??@W(Io!2V($SYC<-9BD67J2fko3u?7=i%r<41>Cl-mT#bcCzn z{$gCu!R^`Ap(sF{uo>V1&lbi?`VsUE6D;}+eV)VUIF^FMJqq{#3-K>Ghq3wt66^zv z%T5r|OwtFy^ybKgB#ZWbFKN{QBoG)L0JGvI$l`%07I{z#*SRGSf_Tr4v?%^}#26!K zi)}1gm1a?w>BuV{|4WhOxz9+N*A~eZg4hC+YJd<$ zqT7=g9rr-M-B2jhqB%Pxodaz+a$Xt?|k-1ff-Jgl1+p0k#phMkun6vC(a~Te)f2F0 zGs^WNQt$dIenW^ZNlI;m;?fXCAQYW0!z&kH?a!zoaTev{bLQ)kDuANh2;m;Yf5jfS z3D#ZyH)0EX1`C&b4a*VFl2@QuO9=ZI#bzHW+!0()ptPPuJaOIo8Hx=OG6C1+pJ0q5 zhce*Ni|-);-$3FmfM;%l7jA-#n~}`7z{~R`CEo~nvykAv>yR*aAn~Bc;yI|-H-PaX zNedR^dOPAf7ecO=v>EO^9*y>faD9K|2d-<-9*R{s5;YSE*%P%S0`#~y zFBg4~uv6nOiUuJm2Sb6*lH&3uUDXBgUy3Y#7&l+(hfIZlBwUk*AZEY@5Y1~X=>kvz z;y$SL7dOC~K^9d*A;I#Ijv*Y|?u7LVp$II^g~bP9Y1yst0IYrsmad+SatlKVbYUH4V1C$(J`cj$RTu$xAq<`1=H_s1 zJQM)twZI6N0gtYhGz9!kz6%~m+9AmLW8iz}4AX^V0Ye!%%Um0y-(}=Q) z`yZh5Y$VbaB+>`F5btIvqfIg4;PVc6ftSdOfb^ZH5x8H1p?fCLqDjDhDD`!H&;qYT zpj6jG%?Hx(Is8=!hiAX|9P!_PFUMiYF<4UZD6$<0MJ6{pjgi2aj|zB+tw;8s>x?P5 z6=uLh)Bs=!KCgk5o8h$|Vey>_Xlses1DDXYI0;z}+&vRR6BEu#td25~JNvrBSRnEu z;va^148a0qL|2r@WK^{j45tFr0DL~53J2tB5~w*PQcG$^8)&Q8BAyoIVl!paL6LW){gafHe`a-htWgJhoUBm2tUvY#9*^JRg2 zO}s9~$jWmHK(s&w2#k5nrA{x@;Vm&=c zHAGGEj5sTv7a?MYctN}@wu?Ptth`F@61&BnbO+r|OK36OMz_$dG?vmuhPaCsk&hPA z%`}g0Am8;gmln`XbR*5DIdmP(qS-W+uBIt8nXaNq)Quhx?~B#q1M!gfmv~g16px4# z;$d-2tP)3r5{Jb~aZs!f2gLp2J+Vd{6>G&uqD&kTe(|nYCytBt;uG<)cu;&O-Vq_P zjcg&}MVe?MMu{>S?GrzXNXi$3#XylOdQvayP1UIy1<@5$lR_w%YETW?Rc29L87G5f z7de84Qy~qbB5FlRluWJZ8X;wO*-eh2VlhtSi9w>j7$DAwtHm_Ygqn*~(M+U>e~Y0s zga%VS6;K{E7KvgMjV9k%F-H7AeW)+>qmJ^F_*{G@T8eh!GrCn|$j&lJo}vWVT;3?= zi}mWq>foKDaZ zQBC#}mub1^B8tSX^c#IDD#U5g(kJf~UBzONDVK>m#9iV}aZ!9lr|C=jn(h%x#oeNU zI?4JJLD?cp_7Q!BPb?DML=Uk*^cFXZg`$_p5j{m`F-!!BOY}Rnr*!H-ZK)kyq;Ppz z%oW#(IbwudNq)MYz7$`GdUUOrA!do$$ZTJaQe zQw5%%$@=n2@r$^ZmQyL+hsicUv=!ay8~TZU5?9I#B3-tZ9b`M%R;I~Y#2+G7HkM6f z1KCiPh?%01jFBmnN@>)F&d|?vy=X04$fgu8<0!}{Etw;)kQeAHahu4NsWL?-%Pi4D zTA~NF7ahbm;upFSQ_V<`K^>_Rb)nAGmF}UtX(=tEZ|OVwH%$@y#YmY+D`*gn7w5%r zStM&yEvid}ay$J;yi9c{lwP78G*pJskK&y8LHvt8p!c!pQ}iM|N89LW zdV!v$tyE6Khp0s?7#oEHvM0erfAXNe^H)lixu>S z@RTT@u2FA^f38yhT%_IT#hqSi%=&=+?{h@ceb^o>u~UJS~?Do6}_@vWXBFN9C$ z?DMytFXGtkjj8r=-E}XHdQl`wP%VB*d{EOpu;XL87jaB?vYUG{muE$(2P76;%VJ*K zEamUQX(*{FBOA2qkfx99;_wn&u8_1W=Ki5C5#gP-r=@J9E(FQ10?5_HD^NwiC!`vd z9+eGI>bhfCWetwFT#J4V2mouGPrF*dkz^#Xa<<-uuMPc@>PBqM}bLd!; z70HDnK@_CQ>x)jRJY3dSyPL}TPRDf@?T#}-!2Rs)p)OOUC;bW!6yTv4$CIu1WfXB*Z4k zZyclUtu325tj>*+(duAr8LsI{Kv&bIJJh(R$`3WH;?_B=+JdB(CQ(m?$OMN?aja!a zYLDjHcJtsmGO}g=l&G$b*D(?*8rYU6hsnWCH`nu9!i?uRKDF5D0pL^@ zzW2}ClNo4pML2wuwbYJvMO``3;l;tw9s8nVJ#<|0dOMC-Ygff^TYRm0a=ddZyPoa& zhwI5JT`o`AREZICjB_jOW5+XH!8l5_iIA<_IMh%*TxV~(zkGEAx zE$Jm3XUo`MUk-EnVw)DNx<$%xPR;yCIm@}vQPD{<;?u!|eoy_YtW{Te@f%xuyU z%q=`G(znVJ{yH^MTbk5hXX~-W+1CwYOVwQ_V%5QxCMisGSx8)>iCh?lj5d*rLZ({V zN;X!djYVBGriJl^8_L*LCY0`2Syg$9y{fHdulArIf9%`MIKMn2RI9;*nbjywsx+Xz zQ@&fHb5B(_MKw;z{)LVnv@F_o4%=oNo9TCEl#l+=DufejAVVmyrUfGxYs2O>10Sf>fGJQh;=fetn**HaeilGqet=co&U^1P3>Y>a87CW@^GC9 z_b$38xr%#TC8u>YN-lcR_V}5u@;b*9J*8KCXHV(Ny9M62M@|7mOi@2{mG%6)_Hw3fqd*~{PTpmq%~#oX;v)YtTJi{8n; zrs%oW7xy#Pn>9Z>>TEwVd%M{-r@zTIW~f8JHD)2Qw0us>zzCGjvK={hfN?h$cHM;+ zl0HNYhwBMda*0=Mnu@F2A~25oxJ4jicA9SIs(%X)kG)A%n7Acnb*?EX>=a!Td05>B zuc`Z1i`G?odKMJh2AOEH^6ZsPdB%b66tN@EOcAb|GY3~vISYZ^gN^Upj@kL9qq{!Z zn{U=fZhS@;c;n-y;+X=Y95z^$X|_!LP#|0TOWS4#?yWqzwwy^4{c(MR)XZ^J(q`vS zlQza1I?=npbET?j5z=&UvZ$eME;Iv00khqd#Rq(JFs{SZ4x@xk_;WAvO!g!F~kA%uk6-8>y2rtz+mueKK%8)QK?#K@$ z(l+u&m-R0nVUoV8?WXrIeu8tY) z5y#qBj5gYP(tWMXriFi9&uVILr5BAr?tFHPC!hG%ys=e8bQ|Xpq213T>QT7=>9!*I zZ`lth_ORCp#Z~b!RZ#ptr0Yf|`P+1jolw<*CS5nFCX>xXO%f&k@4TtIWoN7pyw`sSsL@M^^r( z4V$U8Q!y`|n{G~hbnlrv?VLR{#mp$#|8{z3q4zWBt-gCqv@e^2-X}uMDS=-3yq9Fv z3*!}NB1oSFX;#*_j{dqgMyLm;%CJCTp0&%gtIgU)-+$+7TZxLRWe;cIdkzdId8&dx+`XP`LlSYNiKI{t5sqqHg{pOs>IB+dfgW{ z%U<`T&yqJdk#Q&GPiA>ZV{WlY=gpSaJEZOzW$bn4SWI(uNw;5TNZm>M-cxpP;= z95Z*h!(ztuW>|O@G6%Ru<$u^g4Zh1n%src1GS{m_>5aC&aW@zxTrcdq!D||OK}T`~ z;&F&&G=49)%x5MpS47B-RYmB2!_e;t`l;eAqQ821p;69t=79M|;yKG+W1gOGT<-dD z`AuH_t{)Q@7!zDo4leMLy4FrzXh>aaLvJ>+Ju%;Wvr&Lab(Q90z;BPPD3Bh8GyT&*>;=R zv#bj|arqo}6u;6=En95D;VMzF*eJmjfk)K*+f9kl*76~zF6=|#lGAGa5?Qb88IhsF z<{7W(^~Jfn?KE4xL@soOg**QG-C@QbZyB_Mv%&2fD7O3ih!tNnRcr1v+{`?y>3Cv4 zqv_fN5^0gg@3cjpy;I)iiX4T_)v~*sf;0)8zvVQpyKsamzQ>3_Z*6PQ-9}eqgSK@n zI-XTy?v@2*wJrCE4eqdY=Z)a^n8Fuji9RZ8nenP;nkrmsrm2!QZE;^Ol{Y$idS`h?SBA(v@Z>mcUT*knxi5cV&n=nvnzIj+t!7MLU}yC3xAB)g z7Uh3xMKzUFY6QBwxdo+WH^(RGSMapgRn@sqrUl^z?~&^15Oe&=TUH&V>*0}K5T&%_ zmi#cP?0HXya%t9Noj~@hCQDJlD~x2`#b~$lF6K8ieueDkxQS;+tw38f&W}^c-&e@g z01xV>RCU5H6V&Z~qZaSLG(SEpy{u084L^^hKh*e@rX^6){VZwaUrM@Pw(u{C2vT?Y zjrJaCQk}Zr@Z|j0dUS&xmKt9s3mxTkj(eUL1*z}KWS-OPnHR4Rn0#l=jZ&98THck3 zdpe+f%cld?M3Dbbt7c-Dy8Mc4<;tpZa$8+pyGr(|Y_@~L&JV`1!uLHz3l;W&vCrsg z#MFS8!8x`m?ao?aqdMJK~S0S|bvOpQ`A*T{N0Pi|BN56QNwNpGBf;5nL? zGEkK;R;4#ox$_~TiaANqrtnEhU3Kaqd6nx#3ltuMgN$ zTC*%Qe!YzHFQ{m)YOXgWiwC`K&Q?FHm&q!uFBYDm!Ir!D=O=EudUS?}Xo2dH{ZmRH z175snWivt0K=~e#MUGGO+K`VWbu&LdX{c&HDl?sCuBKXYfoi$|4{f+29h!ATU_E8w z+CCN@gQzU*E0Wa0$IL^{03L%L`+FW*0p<~_3LcX~Diw%UyyDSXj8MLfGUM;+qShiC z9O5`P`iV64e5uibXHHGPYw4ySIMolOyyN4>$yJl5nY!IW> zDcqOfZ*yaHmHV`pPWw84kF)H`hl=gg_;NglLhO>5+8vx`rKGubQLUemY3lIPCNVwg zr>i#47$@n~&bntD5hEd@gL?THIonA&-RwD6%0PV7w!Ju43Rv&(%%=m+^K3_$y?>C1 z=Zx@}ZM4*Ngx7POm|5BzBGFz@#D&Y|Zm#2GOq20pM`wp@DwY$j$)1y%E)GEpC0EGs zz{<}7(E;Wsj$PHM=S@}OZIo`|^WbhuyeMN-lYMx09`FhVKdI0({LH31)8sh%!4|uP z2TG>hyYXO@%nOxIzP0msX{uRF1Ywr?<3+ik(ziB?F=)x=miqpCZ;SVb`L6I6-yX@! zRFC_3sjfNk!>=A{{7Z6z!-=b(c0aF2bKw54e5^-{qrDS=$Kal-&CAGt(Y%;ku%u#C4?)g5d8zF;g9V+(gN<%<8K?eZ{N>c>Alx z@kw|;HSSe8pwchV%9E1))u~raO6oN(AL8iVIp{rrn>(o8JKaji^QKmd=gonf8|&Z3 z8QaX=aA+q?*zvlv z|MIvj^;}cKo}a#IXYi|3I9h%~j&);;9M(NKhliu*qT)>TY>06-tFGJm9B%{+EHA{Y z5#Rwn@z<>Tf#6D2^G#Xou;#s$?s_F!MxtxzFp;OW9y7c>AsVFyy=6kg+iT5~UqBkI zzJJRw<@X@u7vXWHF7&Zem*hvif^J!(3E;OCCl zs9lH6;)s`3x(^@qOjl!$m=JMrwNji?*FveXBVy2>Q%W1fqkaa0v{Us7jJ}=$_<4)w z!p~b~f{S|i2sUO_4sS3tG#L+#681pqjP9!AhsHq9B5szt??Y4nJtK8Cx3p0CN8M_u zJn4O%+IrN)4>@SR#ia%FyF7DPaLRXaYC(l@y~jb*(ctDXVxd$B(A{=)O#PBZGva8Erdx6PQ)wUC&nb+ z0O@4l4baVyku^rNSD`12AFGZ7AE;)H!8Q~x`gzuop4H7Fj!E|9)@s-WBh2%(;1+hw z;iK5C2h3Y~Jb2FRZdG+YH8syDqmAW3d7FCrQ!^;47LLVgaD^!xycRLZdOM5X{V&m7 z)jwqv)J2RZSIwU%*ClG^slT2G?%d1De= zOXtMCTW$T^9Cct^+M(j5*FBKF?cO1Q>sh0`jwdU>6hcyqu`&pVf%Y)JC!&QEf@+zn zdm6ipgCAiT8E{zaS$;2P8gu;P9^`2jy};sL_0VZK+9_I|)oZD0`;}R}dR%j#+Vz#| z8l|=34Vu=y2rO4{mW>w!*+Ng2nH9pm%pvf572}mZBOyXC4{K_$>^H-gV%fP6RiUK=7dQ5%%A5&zjrsPJX z+=7i+{^G4cyrprC0--I3=kv!kO-_|L)uZMnwf-lgCTF$YEcZ|;KjW15Tm^<~!0XnY zx8^siwm-|p{^CKkRjUxo-58_=zM1(Xlej0To<-jlwe@E+VR{a-wjv7KrifH^<3$rp z&y${QJcyE`x&|tSVA`(ZCC5{$_OCdr%bsf28_$r`QTNpUa;A2-CHhc~pTz1ov;ecG z)l!_bAKD>P57(9h>wNzq{_!;uX60yt?jE?-foh^bFQ`%4Awo=Pu(F+M(U7z&Wm=bQ_^yaktcO_ zt6MC~O$IJNS~3@)Jv^Q7JdOFH#cU&*^HS^1Tcp z3F@9JjDlub*1~vN-pgkGaXOBJ;|^`la`p{1zMAD84RAW?u6)k4kM(@_E9?({&oB}= zt+bx4K=CGAwCJnY!1k(ZytmYe>Xv&H%oDB_z{f>zvu?2uw5?jc@Xmo=yz<)$`$3g8 zTj6KT^#fOfI(v8%r>jg)6U{FquFW{tGj zdmg@g#0{)f#`EZAEWYy;^C)MxuEcZDJpUTwbEf=54e9BpS-Q*dQ{7pCD z$5y}K_4$D3NuJrSLe;2m<^F9^Jf)gMT8;g!&*=Hnv%WOLU7N&N_!$$s)1)W6Kj)SP z{?bots$G$0IP*49r!a35zd&-P&BiV#JIbW6r{sKz@m~IQf~vmK_{1caP83eA)0`-4 zH{|^7JoXj19DG!_dxGfMLw=1DjBnD^T@8$?yvWz8@`H$PxH&}~dAf2Y3_J)rqY7fI z1b#T^S#)4LMyqoTE&JKZY&9sxO7cEIbW5ZsK;PQj@Z2yg@aWsKMfi?s+^5Pq)jS8E zXW`oXIoRF=lzh*&|9f?9W6K;}xihqODsPm}!KrG`Ijm*2w!|d+r&Q8z;X(QXTs!@2 zqIxyfxQ&OWZs&90^H3x9di*3PyNQV~Z>zN&-d6udkMfvy>R=@S+o?J53x_{KLg=?i zf!j1~EiV-`7oK~6VlMYJ>J-R@=T@DjJo#QwJ(^n6os_S-kouXM`>2u|s*V~hgH652 z9$9)Gwgik&&k@cqs%CS`J;FD6sx9F>{S}tvUE|q`@j;xPclhx0HwehO&VTM$W7YZw z(U>1wcpPtPj^@bc*U}(4+g`s3wVwH&-^?m1vS*HWK{Y5j2iqxgFEy+6F~@* zxQiFhp;1kU@Gp9xb(Q&$H>+9^-mKP=c%@|54L#M{DaOB^Gq>6xP<4LBnHwl-sZ{)q z+8Gue*M_QHsm8UuY1I>5mhz=p$$H=GYh$@TNY>+t4=8lb@c{+OR;rcgZblobxC7pS z<=G$C4Iplk7#ld!c_*xyW`ijn13FA=sSD&^s)1zlk7|AV-)uQ&5jNNq6T5`HXsZZNm*@2TQS1O%NT&bdEkcwL%I#)R$ z^gJkOU{f{bwPAQ*@nv;%tog@-4LOT{_(e3Sk`kT=MvXXeo?O?ASIwTsWu9M)#W2-V z`}Nw|L*?1mHC87w+%>6ZJr%2lceL_dv#WTeiTbpo@d|U)Kl4uV+=@t-XG`G{UG zu(l3x_RLK|8n0$`vAQ^Rly`B~z_Dn-`xjlU2=#LpGp?#G&+sNjSF=3R&HP@t&W&bZ z(NewH)iC!Mm#8{-Gsc;Y+CuKwN(QT@H{<>3ecg~Vogx>Ac`fMXx_h#nWdCa`M4EC@8 zt-gxyVSMKq)#++s53_`|xd&R-LH*Lh%iZ$}{S0s~{WwP5<;e@XBE>^`M|C2{M7ApT zPO6}%;qJ+|&g#{kCLW#^ybjXK)1pgTteVx^s;4&fGR3KCjJv7oy-iP}jP4$z3i?=) z>W2X8NRZ$Gc$ocmfol(hcH z=CJ;j`>KlO?>R~9qfYg=8mT3JqTxi)B3eR3U#4*jzh>dd;eOm4p{^ZZ6x1|4fOV#F z@#&9T`s24q)v>z?Le&@!P+bRBHASnz!+4;2;-8vxRaCCGcO7>qMWgp1b$hOr7FZ)Z zqdZT2muuprRrB;7tgakndZ!I_if04x%~yK{S?vP(dO8-U)_JBQ_$Ed0O0qsW4nbtc zO_@9=_v#sw)uB-HI+2}2uIgL`hN@rkyt;XcM4_5III!7HZ5A<19Ug3%caI@l`;uFV zRLA_kZW*o~s%$xwZza`Zg(J{s1S@>qoY|9SO;=6B&9;?|s_hzeCDW*Ng~$hAf#v?E zB}`&Ok5um#xT4F3SV{G{ZzTASa`<06e$K?Hf07WT77nrMX)#eC9j(R87=~dTAO3DjWPf%i5AoD2YNtuc2>S0!+{{v~TfE54$