From cccab7148fec5d063c6a219223989630ba31a531 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=90=A2D=20A=20Y=20N=20L=20I=20G=20H=20T=F0=9F=90=A2?= Date: Fri, 25 Oct 2024 11:09:38 +0200 Subject: [PATCH] Update Data --- Data.h => DATA/Data.h | 2 +- DATA/File.h | 35 +++++++++++++++++++++++++++++++++++ DATA/Folder.h | 35 +++++++++++++++++++++++++++++++++++ DATA/Hash.h | 23 +++++++++++++++++++++++ DATA/Settings.h | 9 +++++++++ Data.lib | Bin 496224 -> 0 bytes Main.exe | Bin 0 -> 117248 bytes lib/DataDebug.lib | Bin 0 -> 2422412 bytes lib/DataRelease.lib | Bin 0 -> 586266 bytes 9 files changed, 103 insertions(+), 1 deletion(-) rename Data.h => DATA/Data.h (86%) create mode 100644 DATA/File.h create mode 100644 DATA/Folder.h create mode 100644 DATA/Hash.h create mode 100644 DATA/Settings.h delete mode 100644 Data.lib create mode 100644 Main.exe create mode 100644 lib/DataDebug.lib create mode 100644 lib/DataRelease.lib diff --git a/Data.h b/DATA/Data.h similarity index 86% rename from Data.h rename to DATA/Data.h index 2ea91e6..aa2fb14 100644 --- a/Data.h +++ b/DATA/Data.h @@ -3,5 +3,5 @@ #include "File.h" #include "Folder.h" // [Feature] Change SQL to MySQL, PostgreSQL, SQLite -#include "SQLite.h" +// [Feature] Add SQLite // [Feature] FtpServer (open remote folder) \ No newline at end of file diff --git a/DATA/File.h b/DATA/File.h new file mode 100644 index 0000000..fe8708e --- /dev/null +++ b/DATA/File.h @@ -0,0 +1,35 @@ +#pragma once +#include +#include +#include +#include "Settings.h" +#include "Hash.h" + +namespace Data { + class File { + public: + File(const std::string& path_to_file = DEFAULTPATHTOFILE, size_t size = 0); + size_t size(); + bool isEmpty(); + bool isDifferent(IHash* hash = nullptr); // [FEATURE] Optimize this function + // [FEATURE] Thread isDifferentAsync + void changePathToFile(const std::string& path_to_file); + void createFile(); + void removeFile(); + void push(const std::string& data); + std::string pop(); + std::string pop(const size_t& index); + void remove(const size_t& index); + void save(IHash* hash = nullptr); // [FEATURE] simplify this function, optimize and hash whole file + // [FEATURE] Thread saveAsync + void read(IHash* hash = nullptr); // [FEATURE] simplify this function, optimize and un hash whole file + // [FEATURE] Thread readAsync + std::string& operator[](const size_t& index); // [FEATURE] Add for -> ptr variant + std::vector::iterator begin(); + std::vector::iterator end(); + + private: + std::vector content; + std::string path_to_file; + }; +}; \ No newline at end of file diff --git a/DATA/Folder.h b/DATA/Folder.h new file mode 100644 index 0000000..4a72588 --- /dev/null +++ b/DATA/Folder.h @@ -0,0 +1,35 @@ +#pragma once +#include +#include +#include +#include +#include "File.h" + +namespace Data { + class Folder { + public: + Folder(const std::filesystem::path& path_to_folder = DEFAULTPATHTOFOLDER); + size_t count(); + bool exist(); + bool isEmpty(); + std::vector filesList(); + bool filesListIsDifferent(); // [FEATURE] Optimize this function + // [FEATURE] filesListIsDifferentAsync + void createFolder(); + void removeFolder(); + void createFile(const std::string& file_name); + void removeFile(const std::string& file_name); + void fetchFilesList(); // [FEATURE] Optimize this function + // [FEATURE] fetchFilesListAsync + void updateList(); + bool fileExist(const std::string& file_name); + std::shared_ptr openFile(const std::string& file_name); + void clean(); + std::vector::iterator begin(); + std::vector::iterator end(); + + private: + std::vector files; + std::filesystem::path path_to_folder; + }; +}; \ No newline at end of file diff --git a/DATA/Hash.h b/DATA/Hash.h new file mode 100644 index 0000000..c214b16 --- /dev/null +++ b/DATA/Hash.h @@ -0,0 +1,23 @@ +#pragma once +#include + +namespace Data { + class IHash { + public: + virtual std::string hash_function(std::string data) = 0; + virtual std::string un_hash_function(std::string data) = 0; + }; + + // [WARNING] No polish chars + class BaseHash : public IHash { + public: + BaseHash(const char* hash_key); + std::string hash_function(std::string data); + std::string un_hash_function(std::string data); + + private: + const char* hash_key = ""; + }; + + // [FEATURE] Add more hash functions +}; \ No newline at end of file diff --git a/DATA/Settings.h b/DATA/Settings.h new file mode 100644 index 0000000..2c7deb3 --- /dev/null +++ b/DATA/Settings.h @@ -0,0 +1,9 @@ +#pragma once +#include +#include + +const static inline std::string DATASEPERATOR = "sep;"; +const static inline std::string DEFAULTPATHTOFILE = "data.txt"; +const static inline std::filesystem::path DEFAULTPATHTOFOLDER = ""; + +#define DATAHASHBYPARTS false; \ No newline at end of file diff --git a/Data.lib b/Data.lib deleted file mode 100644 index 428fcf244705e0673b8f8ca64531e747a08243be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496224 zcmeF431Ak*`TyS#5Ihq+@s1i5MIjfrn)l7QFT5c!30Fm4Lh=S8$(xwG;ZRg)M2T-x zsoGXsTkY{{wN+cK_fbKVL%jWYpsm_kYZ0xYwt^S`?=v%d&Cb5N2}t?>nr+`W?0)8% znP;AP=GfWY6V9q@ub+R;extJNNAB3X-0=kkqsNc6pU)Bh%+JX!$YtR<`vn4N*98Jw zZsxxaz6=EV_)FVwNTC1MuY-OY=(mA>8~EmIU{KNZfxY}!SeR3DZloy@3zpO+>Vm;@ zOGBYxRcTR4PEPP!fx^OE=hYc>KBuUzBc|1L%$MV_SkbZ4HLBqRYGSxy2sKg%r4B?wOnVTI)iO>iTT0Crsi13l8!{I zg_nm}WT>>L&+_wv(+e6~+gs`q!JJ%ZiOe^T{z>AcANZ)%l((S@;k7*n*axoKWJ)<8v!HP&@DCvb)tT1+=VrWT&fnW3uE z(2VG0Ue;)FYaC|VS)T}I=j4zh3GR|LqnM!?=R%BY0#KTif~#I_Ee7%QCZi`3oo-EK zVXQq7t!eFSuSc<4ql=mvV$|k#p=nNyP9ZyNj@GxvA-#hJ@^`FMM>6nHn) zzGSbwd@lV-@c%~XT$_jQ@=;4i#RVnr?AGm;_-eH-O1HTr)`{oJPR83Pc^_aM3^8moshkR z(e_wda~(W44V*fBm)B1V^j-Aa-B5Jhfm@4iRBlNOj;3`Ziu~9;_fW1 zb)>Q@wUNteBQH0YolVt(fEc!w#}W(cnmaHiMe!3&EwSjlSRz=0GBm-)Vs$NZI~${z zCbsk0hT1h+N3UTTxJ9RvYl=o%>zm?@t#H68Q;SY_NzUD+TkJGtg5j2y*7gL(wHINu z8*8a=TY^D9xuR*&@>o39j>%RGji<;s*k3rE|do$hPQxP_W!?a|20dmM@ z6HB74Z8X>I2pW^GXhq!u%qL)2`dpSxB1&kw0P8M+x~E2q7begQgSyF78_he4$y{*S zS$J2Lu1mx=L57HvYRFuBpSo#=wz4dlW z7DT$3Ly8Qrxn$I$hk5A9qjQ%yb5NNV_xzqN$d< z7I?-TS||}pFeia~UJKF5C8!DdyNAo4qo=!z_3!FLZT*yGR%|x`Yg=#{L9d1P$qp>7 z!I-G`*%Er4Ws5$dlc6WFhHu<2s9HphnYeG8XzRqX~pCemmo&F^n<5qRfT&+sEFrdnc*96$ez|^={ zn~gTN)-?pfiWI^auFMdcoEmR3hKvo-mR1$5Cl zii!2+Z*r>H*%6C2Vyc;-i6O0K)Gx#osbp%jVs1wQ^M(WltCk4~pEkIXd{Kjz)th6u zQ^0C0M^|SfpLDsIC{Ko*F&mU=nmslm_x`>SlSZusEpm5>qlJ5=EY~Juvo3f*-9ntX zD{F0Th+zU@-nOL7D{mq3EO<y||0u|?75SbQGtxETX}mQkbnJy?Dln4tQ) zjzlUU(sdp&wzxjV=7nxCO*by)q~-}n6j%xMk~t>g6-RGqy=^M?S+2F3_hcSa>9%*q z*}4t0Jcovag7}S9p&XZbcVVn)3J;N6n2q^pBUW~icC>Zw1$o}f5iC)<&&`)j6e6aT z;SR89*Ss8dytb)fNpxOkU3&xh;k|aL&Qb-;;;E$e{+Nd2t(|mpl?t-kRz@vd5c3dv z>b#?-CW5uR)IEz$;Ub=&9!U|ew++lRN_)PAoW6A&x~Sf)XE`&{8E?9<6Spw1Y&9)f zMgsxNs5)Z8MhmkW#Le=CSaS>;YMhL{H`6n<*IKZ}dW;^?PbbO?7A7->LB+sBzvQ$oab=u7{_-`^8C#^|;%1a7s}zd%AzS{Wfdipf=wOKSW8=Ci4m0n$uUNfial!d0QlqM~rHo~Bc= zsNpqDQN_X1%F2>Zq%;zo8eb4^T@)`IZQ7%eVp(u<7-}t@GKm)mn;7br6pqFm26^L? z7=sN5i_5AaMWIS9*c8V-%_b;7&t_X|2kxL@*Oft61xuUOvWt%byUk)BUU6>p;Z(YMJ7!Sw#R5ehURPf)!h7|qLR|` zstAlK8#_U>kt>nY+@i^d8J=8TIk}Wy%qIj)C{)2<_U}3hwwV8}lCHP0>r7~g-llvt zLFzJQu#P=i+N+4!1y%g02-1dKwplRDW^2)MrwjMIo5}h&>Y}jJGs9huvnz1M=|z{| z8rj2ND07>#i;z>Y4Scx2Pl-rfhRjM`hw`$r3sI3~S0Z0Eo3K&?o?VM9PtnE5h_kDa z2)3CV78h>qm>bl%DlOa0`)Z3RML5mShWEk(Rq^~7pCVpUE4GlQ+`wUOzSo;N;;>yH zy^q+(czsQeC+9iAwWuX!bF^~iN{2Z`v0ir$>fEkMjnslk?Nh#@Y?=~ewo1zd)fB{f z*}fQOx#HPWEi8=0G9k8HP&8l5RcFf;7jwsohdiWKD<1L~8w%#*2@v%~;{g%x%Vxdy zVg*Zn(8TFJoNeD3rxy;uHL{-u<`&u06{Lvh!ymZD-jzK2@(gY%`*aU-^prlr0hHs&XR^#_mhx%bpHJj$rpH@>PXvkrAhVF$nHK zTvEWrGIB4xk@{^am>n5ji^uGR!R9Hw6`eJ0s@G0R5#7x<0qwO*GUNDf)kYkjTD9`N z{f-%_4;kxSrE#V8%DLqE@F{tgYDW@c!IN8Wo?>R8x}tO(c}jo5&!%t_43ND;p1V`X zljZ>;e?DD6o~m8uxi3)y9RId!#PQjvti10= zWk%{l#(L4HjC6X{sPcU@s(eee%Z)1EwNcrxC>vG2vQhD~DH;_6RqYA!jT0-{2k}p26wBP0^;tXuK7>&DybD ziXP_PV~-%@vt15&XqoQ6MicX!I%sy-Cof;BuXlP#bK0ymChV?t$!^Jmo1|3fm&O|w zwbQE|des5Z{-x*?TI%I@aNAp36L@S8PXy6J1*R?W6*Stpho=5p949@o*9T zga0dZ$X+in)yP02-8pYy8{255oSvUD_ia-dJ=eEr?UOCn)1x-1IdQ9y-M|%H3*VZi zc=U%QNzq_)K}CmHyeqG$$g^#Y!@u(RzA5oY(4zVd)2>3%>HN_f(m^GjX`wqvyWmV% zRWpk+@671WCgC*hQ=9NNhg>&R?Xg5+iLoWYv_O};rn{uQeA+0)dqPwW z?!2Xbpqt7hwnU;BxvXNVI_lUKalV0t?PYP@qRJNUd41%eCZ_StuVSY`Ua+(X^-@jG zo?-`BOB>#dp)hTYy9WL`8EQM|Bj$TmBD>p!yt_AvYUAb^GYV7fy7{oCs5frff?zRw z+KUk4Pmmx-)MeS8jPTXMAVIXSngva5)U^BB&*@DN#s$07H_LEybhEk|IM=3n_T(GQ zZoavv8*{NuFIYeiic)3!PS!d&k_JF}1(9jmyo<@niP9!^R@P{kg?cleVvmKwHBXH; zwUXPU{)D77HdE(I?rJrVjFJ5o)6~`5apd-fHKyLXM074tssAh1Fi&b zP|+VRWsZf#<$a!cg?E{>#S^2Jy>@4u+4$LJ)CS|(RAZ>c-Lv~Eery{)E&JR}$znf* zu%N<%!a{x9n@g(^w_0g9CG`?+ckOJMU@xD@$DL6$iF1oesJTy#!`JtDG1vxY+#Xy5r>T*1YnjnBZV6_8IjKHl46t1j-GMr-JeQJ7(1q{kkaXT{@=t%k>} z+l|lQq7l-A6uiSy3+~glSlHS$E?a-`(QbZ<+Ae%?VSW0$>=GI_T+N^-r1meaj9@T1^&>Cx{NkAwtKguvjH9c^tsyd@USiQ zY5E>(eKZ$u;2XMp_(VBM9{DMB?SI@6k0V9ow=nUu&3N?13_b~;_}uMCPOr*zWO#{oJLY9CLOyc zC0Ydwrd%H8>p(>%RO_7f$P`Tj2*x(kxZ3?Q^R_&=;#~2gs_&}~`MW}~54F9q8Se$t z#gN5%E;5nb@kdYFX#U(-*VNos0emm4S^>MK{}U;s>i;;xHsrDvYk3JN-T*pTo)lpr z1FsV@O5CTOne~h8)gpmHwY)x!?C?5HdV4^iup<^*(AwB&WYTxNGOKIEerY_>XL-CC z-S8w{yfb_L$=pz$u!u~BcV3p-tk+yLA1}R?ZVOpm6uWNPy31;XHOAr&ycf)T z&ysI@icT`My||;Tv#&BR4Wb&07T41^%QkEoWD43f+#;P^N z{YEBMao!>ba_q{tE;m^$z?R60Z%rrCl5LnRIkp8iCve#n-uU4gy{TO zGoBXurXJ?r)t97jO_^FZ)Yhlk#B-kz$S37kt5Lj#(^@lqOJXlxAVlHV;*M^5y)B^e zB2Lnh`5I288vAameD&wQLydSES-h44H^kz26IMcBe0Fguu-#qpA?A`S%s(8*YeU=d zW_P?OUN;5tj1jx%-d8ip;Ui+CP;K605UzNyUGku|fk~U`9Hv^;gP}d%J`vV+Pkjsh z__KW37+p3u#qs(N^#e-qS*8Oszj;BgS~9x6dd9;E2KOg$ti*lL`*cj%RUW56U-%pT#+DV|a_r6{Bo^QYbEsqWm;(uzr;vM^rH zI!1qHI48Hf2#+X7s!GsVi|2@QiZnd&JY`BrW$9$=^UE(cK8Xou-V| zMwv_E4lN&Bh>TP09b$avgr6IU;sXO*kbWOg`CjARc}Hqn%zIexBZ|9mc29swi+SJe zKYK5ZnNk%#2vpn3T9eeIcF&@qxG6?TkmZvvVmEa5Rt@2`1niFFUfasZ?Ed2hg&l^b zMdPzOn5F$E?3&*OYqH+{vD;O23I;*b#OK0vTHL^qNixm0);8H>nXdablwrN6(aC%R zvRRh#3Sv3WyQdjrsTX%%?P_8lt+45nFYh}zquADa5Rxp)KHE3xnFzZjAW`fVf3Ls% znm0awbiVlV>%c%DaPyWx;L8sJfg$^)1+Fg|6u2%e5EvLpXFvUKI{t0{-#~F)Kg<73 z@tptTXYDZtu=r^T+8JLyqsOvKG$~bH1~^hO&k(Q9IhSc_!%U;MAu}~=O!ZllP+wP{ zHDjd*)P(vhkEgySpOyb@rexKhHEhjQZ^F6^UH8_1>vEjuD1UBs$!l4zYr70*`Si5Z z|J~E8nDY1j{7)*GCrQAYnqEV1gw z9=0$R<^6r1v6s%t<4cAZyEbC<#BYn~i+s+ZX>YbQ?CJ}&RXNt*a-H4(5lj9ZQl~lHG3Gg*UR?M>n!UVMexz*{x972f8n-oZ?AB*`Tj55 z_J84ay0q;PPbu;VqOly*i@m~lKS}@Ba2*?>_te*L`*&*Ny=n97+M|i~x+c8*OW(a| zdB~{m>s$ImM*W{0R_PdvQP!no+;U`2goZEdO*wp*`>qb)m^gY=O}{mkQ-mFtS{-(= zS@zD;1N`6YuKFCu8ywgU5aml7cus20jnHd9rCjn?@ZrJO61-(D7Vm6{(p!uiceGfs z`@e&1);fC%*!|gE+8f9p6*eCrb()U-0aJFJM@;!hE=e};rn@|zZApx89PLdUsgd~J zSl<5~Wd8nC*5DK$G4}rZTTT$|}9U}Cnd-F=$d8>VJ?os2(2wPobL z_&dnXo|Sp=-2eRdk@uDd?`*H#FkXvnj?cKh-1}5|bG5Kjd!K2!V7|VYKjmk3k(PlV zPsl`#$39Zf>i41<8It;HOO8yLE}gW66>sU1RiYfvS=ycSNMdiFs+6Ml@`=V==W8y^ z5`BY@JNAEqx~`+CKI-cet>Q}!W2IS&emdoQ%M7T7z4S^LF*8x+CG%a)Hik9pz30o+ z;_)9o57Nt_c(;sx$!X-`N?*Sx?bS%J>P3&*_Eo%BBNpQ6`QTl7WVruR*L&%wu6y+; zckjN7-Kz(``G>`e`oE>^&rwsS&R)+}*#9kU`Up6m*!b$>XwZRugT|M?Q+8?&*x9+I zM5InmW~I(fd0Dw^q$16=Bl)Ug&}r3xuaT!Uf};PElXUij64C!HZDF*YpW3s0=U6v% z#PRXDJypa$#_MZ(JUP$Tz*=%D4LvPaQZ`g8XMU{1#uWz$g>_^!La-DBU=AZq{b$p(ebnj{7 zu95vTNw>(J&Lc%cA0EUt_O9gFmoITk*{4I1qf1^zzMRsvIAE23aX?NdlM<0Ujm%2! zMtNE3b5x}1c;u@p@8e+XE=a!Y>4)S9HfQ9xX!A(&RmC_&Mx5gigXsTqH@<+#)?T%U3kN{;z>6Ht<>R zXjB(S)+TNUR2QTib()lOB&oh84IvFk8avw0D+i4>#2hUer=|5IZtFC^)g^iE< zKdavVS#|RnoLzi7jQ#)*9vv0m-R}Ray7@pEYj1P|o)1(1TRy9(5e3~h~gssmO^(f-gyKWLy_m)#j+PlA< z636!a% zU)PZvH`m5|JiH%m?2OklH!0oPp&_>OMdiI4Y)!+flc*Urwao1_KMn6|PX>Kaob_(v z`7r)0_ip@TP*aEao{(BMO&!s?xgD*|op^JA%d==jA+E+2TIja;9_F~%3zjV>bA!_h z@XvbjZQqtyM@Jpr9h~yMndnmVowB$u+|-+OJmCY4q^vjJq#JCzC#85@i;oh~DI23zgPt9>xbzzvi~-Ern|AOsTnUJp35I$ zLs>kxSyCI&xPboeTZz5~+T0`Gx3YfzO7;-DXVfiH;KCilFSfeD5n6wCyq9Dqz9&nD z&3scX_m1r`_Ps6L#(L{7%+WY|_aP}-C9hA@;u-u6dcMCK7K<%t#fNeAqWJDIm^Wx_ zYwZY5jaJOVRary!#~6%_Y`IJ7NiH(!G`}z4<#)jl z9&3Gz=GS4yVc#N59i`qUvFmKGXnji9JYmi-^%#pg@S3oA?{yoU1RE*gb-uWxt+TH( zinxquaV;LRWlt^H=ElOsj>Btq6z6HZkG*P%y#T5pCtwjH?aK+02 zSH5#M5|iRQZ5P4~Ae0A>OEqn(m9iMh7pK|BkE8L}qA2F?^Ahv9i7})Ah%*s(X*4c* zDkl)F4XaYG4SOYC8+J>(HtaL$=;D@^V2=G5YyW3XPGG-Lqu3`ajX$|#^K!=*6pS7} z);PriIpUwWc?BXgXTRdAsxwPMwV{!CX~(SU7}h5{Vzc-gS4QHYo`CW?y^qcPDj#K} zxQV*{{gC(V9p{bGDNVsUii7g!q>)YBBifl)V zt81e*wI$)oXt<^_Iz3!c8m*}+Ee@B3ORH;G+EzgoHPaA5l3p1pnG&iftvNA^Drp;j z%ke7?qz%P?0-*`B%9|4NJLgu%+FEBZldenD&6?ZU)ZD=TnW6i?~1s&8-YXl+bn4X-{etFjI1Xu1fK=d9w^mNpo9JEg59*Q|Xk5SaOC?BuaO zeRBS*cRz4k@~bCL*tDi+_Subhgznw+{`=d0e`$hHI)e3xJF=-EzI;&H&Yb~#voqKj zt4oZ`$yt?_woIH^*xEd@r2$_u4FvcZtL4M!1LZRSdjF<>%R)h~X1me9PF}JmHPVw;acOOYVVzK%K~tRl{_O z^!vD8M8O0UzU4c(mbQ-$@c*iO%fYzR1MVilLVQ5wTQ=bQt&%)9?!v)5J^e4^7GpfB z7YY{+z;FBzo#6isX66J(wmG>{aOVn^>YQsLf$BF6FuZnd1r!YkvWCDB$yw{oT9wKml#}tJgX<+29I4=n!JMb$vY9KR_}Ta^0rL}?qhzz&JBXo!+WJFa z{wz4M=U`@VHBZ-+NBVmg%olb}@&-UjU-2n@xK4k6FMQT~nwQz$s{bVygp)qq(f zI72T|IY{33!8{Zo z>#ofnq9s4qlG{p>Pe-~-vWJAn&(B;K)4FG6=VTmzImrlwlQV`@Bwy9KzQ|aZUXdIY zNlqK0tzWYfN5=6bNMz@l(6}@9>-;SLg>Z6>_Sv>@a&=M0y$2jzJm7%+d8}|UP_*)Z zA>o~CDkf@~?YC=5l0SX5mRz4Pbg2n5Dk-kr&KjNTPokD$D8YoLfmbMGJ# za^;e$?aPDz!Hv*b2#G7zLc(!p~`R>gB@O+!MB ze^SY&;>SxigN3MMq%UWFsASU3WN>oXsN2*Jl7Ak4PFXrJn_VT#HA}1KJXL9VuBo&< z*ZO4dNBfTa?%kyqAM)s;*XrUY-gEo?+JFnn7meHe=8tbW<%=VZd!y;lUoWXxGbTOJ z^kRHrOL=|bdv!bZxpM!HRzG_0@Ato9*8PwC=Hhop1%E#1_V8y9oqNvhAM}?0$*S)@ zd+%M--q8O$^x>hi2Aq<2W7+HPPx;v=C%k#$`xD;0GW7P{hrNICNB0cQyZf9q&lZpV z{lKGi?!L^^FB#Hx^n)jV>sy<%pZU%IzEQsMu1oKKF>vDSr$78d-9d({*prji@933f z{MR}mrMgW|44;td%t1%b+F`aBiq8*yVtbH& zBA}lk@2el&29XFm%;~VcPQ|CgbnzLE1O_oVEwPsRwk6^eJChxmlAA+r2?yn3pMdoY z<$0gLNXvwR`jqrEvU@t}<5Mpf2-*CYAPk!^0qb;+W{o@+Y4e`gjzwmy--=j_v86>` zFg=a;7=gfx4=(-8jCHhVhK#YLMY9((t$9DZ@Iy0JkBG$>TUr?3A{KdD%Hhnb?|8(Gq#q=>~BTUs=*GSea*nz0H+bu-467SoMUroxGd~e*9S^N(^FICVy;1kai-@lgZB?f6ujMtWQKNV(e)hjx)RlDb`N|zj?}x zwLdi)9K_gT9f31ktD<=^0)KEEFJcj6kHxgd%0;CqU$`0Fx?Zk)5sMgmtRrzI-9;N! zA{H@-Wzoh_Ml8zV_T0x%IeJ?2MJ!_MX&udCk!~s0C4)~cGGl#P#3IHX>lh=Jo`Me;kwnbnGGCw#o zG=tvg$Tk5-=_@Yy6UT!sGrp)P-jKb=3YX1R#`a)(_yAQ?JUeF(rpQaUCsX8Q%-!Q<+>tDwu87v0V`FI#s>LD9;8OF9|Hn2?a|-LB&P4*ZSl*XYzWoQs%`w z&6H=&my9|tj~e50FHqVakt_BYH zz&?Ob-3wd=OLrO}Idk8iOd;1q=Z4(5O#@l!O&GC6bK0!@Vu z7YrxW+^rNJ+(yCDDA$x{rb}uV^kWS4@uR~n-HEt%G?;0Eqv5wH&&*#21SG(8-AK{` z0eg8(E(hF3Fgt#dn)?`+3x662%yN+a7J>PR;M~el0PfddUiaW=82JvEmu^M? zhrJy3bdUZSZY|(Phg-TMacwe~B_155+XbfM=Oit4x(|SPQ*dtSz6}{$z&!N}CXP+a z%zCqzW5_RY-yc6ZQpp)iQwGitpIl=m;-*r0@5@)ZPR zfjRaT&e1}G$(iLi8|N2+xm$2BIEcM{dg@7x-ymA{87jP>t|wx<4tu($UWh9PQ{%y9f;%5f ziw8&3uSH<4Q*x&ME(G^eFd26sfWxgm79!(kg82m&`RK5>H&fmUa9hB{@8lf$Lsh+f z2iyx_X8$2I_X4=bz+87vYHmHa?O-0gk8@Oys&p>^mvKMZ`2(rB{{goVO#GqLoCfZX zVD@<=HFqQ~PZJC$)%l}^m{uPg)zfkx+!An?gZoOb$gWZ^Z{hslKVp9XestLD&9qZm z5}W)e76S33!!FO{$e!!Lv?@8%UIxISECF-z8YT|=y{!2&<>li1_{Y$G@uR~nUD96y z%oQFSwWC#FZua1)9KQi`uaYy%aU?Rd8qDUkh=9ZHcTH|At{wJxAP~Wi4tqIFj{4te zV6J$Ab8hm^#O24pd?+}(JX3#EjvZhIt>g0SoSE(ixSRpzOTpRwfnDBF>jQyP@T0>n z&*VtYIbecH&P?}9aFf84Z6Il~{h3?^uKfngXM(fm&*aVmci2Ykp~8=jR9q{V-+FK- zK*mNe?+I=I{;l#al9AC+dW{O@WDL`=1nDM*2gF$v<1wtrzv-G{o3=l6wFG&rOMwmV1Dj{ zyA9049vtaq9heuCoLP>W!2Jo##m`VF_^lx~J^upC?*x~s91nom=!1I^%-c%N%pcj` z2VhQnmSxY?{-)z{IhdacZXo_`mcx|y51d~I<_;QY;TVFSirXLOzXr4K^F+!1z?4Va zAz+U4;0^>g9L#7Bj{Hj@m`V?>9^6bY4-0M({;evtNmzoZSvgy-Wu8o?sAUhbn)E;>ze31t9*T;warPxG92lOZRwiGr%kooLf1l z-jiUi^^iyU`iWo=WQQt$B=2T$w|K}q1l(OZpz1=l55 zxAIc{dcfQ)IJf+jfV&&ab|q)}@l(JZ@NyuKhaVko>8`_tv%m~^m2*@-s&drf{46k! z2+qx4ksp5t%r?RCbaNcfjf?>I1(;JdBY?xLyu?ia6Z7B-z%2oDy9YNB+!`=ndT=Lz z%X|%UNBrpE<#0a#QiN+0!CWFZH-AO)ehlVeAM)0L8S*-%>hAw2-BZBK_rYBOW`hsz z?_h@ii6!gmcW=k#GBBSA&OXjD{VC;d{GZWJ<41>^UWmH^%|Fb@dMt-REqzXImbw-CVL z)(?J+Yunx;!aP*z&VXUQ{TJBa+njStm-IIiOwQj@a}E%J)_TFPgz?ABpUK^b3}wHMx%UU0qH%@EndPAR$owbT5`J{p%VEmP zgkDYoGv*`CrIL3Am}>-QmuFA+MliQ1IWygJklbBhJ`$W;JJ-Ms+=lf7{OEAAgDhOT z0L)cBxLd$%@ZhFG-rvDYB*%cmZddm5)`MvkoLw(wd1;)z1k6iJN#dP zz+(L9aI=F$aqT-`ZWf%IUWS7E4VZ^K~{$p~B^{A}>h(|cB1rztdEe3PB2X`9M z`YxFJd~j>Pyr<+${e>X!Q!t~yrc${3t0G*h0rP#qx!F}axLd&-y_2N5x6A!;tynM& z#2-`7X8wqq;)6R9+)N)_A-HxQTmsyk;7(>W>s}6e?zIBU&_QGY{Gk-H9CkZM+b1n> zAbxbDvX>*koaBQ$6U=xYTrrqRAKXkZF%ORHuNBPo9vro|pM$wW$(i+g2o!NYm`#JZ zUhM7HuD`)U(gKIzM@K6C9Si0(C1<94FFK%nFk24f@{Wc~w|e{RptL|b-I(`C_dqa5 z`ru9iGs*`y9!#kZt`f|7KDZc|3q3fh-;2Tg(u1S=y#vgHO3u`C6}ZR29Gc1X=hm-I z$K^aQ-9tHNpEug=;8`%Q3yx^B-pq76aQ+=IGY;nR+&Jo2=Yr|*;HH4P1k5JEx%s~z zf_oFpLNaU|sqFbKFn<)BTmEQ#y8+B|KDgJw{MCb7jEuhzrr~g&ze6D3)Sq3?CmxX& z7>OSp_WaqoabQY(a8tm1%Y!=wX*Gbk%7Z%=+;w2?RC1;r+>MMs1g4d40OBCKHOp&q zN8$3jVA77}9Q8XY?ri9<70hkNa_(RoXV=S|;O*X8x{+yvM=JI+3UA z){edlt_{rBg0rV<%6kUfkdx8^FXKmteO_U5*AkbV7WgrKbh!B;TDE!s%=b@DEsy4T z>%nB4!a4eD>d#E~Zz$lAV7?m8Ir29qXW9Yj@7JfL1^$2^9d7cL;@Tr%#-GkP`#jG~ z_hfK&V6G6Ho1Urt{|L?jA^}I3q1E z;7raLe$w*D79~RQ&k+p$n+~^ka+HCq7A)1T>YW^<=Qf}6mV#U9A&>I+E1&Z20QaDW zJj&mzKIQ!l+(#brD1Qfy9d7zN9NdY5O{Kq}Pk9k=Gd$!`{ucU_cPY55e8{`S zr@Y^Td)PxB&EsG5Des@)KKGDE98U@1y z;*VSVh=aSxL*6jNzaGr*WloX5XTZEBb5j0Df7`(vkn3IE)4`09IY}Osw^lF+vcs*s zv%t;wkVpBu!l%3+f%}z*Jj&nWKIJ_H?o|(YR3HBab5NeQ{>}h1PUa;2k^M~r(?Dw&hyQF-qW41(-%tB-rZJ?0^g%KH|W?J}px-{JZ2_xRCav?D2hRNf$%Dw$Kr zi-WmH<|KJk-s=TJ>C)j=-kZVQ=0o0-KIOdt?hPOEzVsar@Urxi#_BW19?9HbC=*~oamOnbzolbkVo^6kHGA($;%8{AH@g4 zUJY{K=(NC5_|d`Bb#gQh8z~qD;!iNs$&nu#53WM6B-O1P)4|jWE>*oP7mS&%`dx56 z;BN3C?>?XM)`EN1Lmrj)12Ac0xc*X=cYiQP2rgB5M+?TQydiKEKIAR%DQ^+DE)RKR z_doL~?^ba4_>lLaPkFC{d)J4&K{WZX9B%e^Ah;t1>sB9Bzhl8n7F?=!83nVzLmsuu zZZOx_%slfLmsvB z$H2TSIBw5s`+Ez_`#$9DhxgeWC*En3O5SiV1%h+aAB_*H1%n_v-27S`+(jPp$X>4Z zDeq=*w|U4T{XGfh4Z)@IFCT;X+Cv`s$zvv_1y06~4!3a$tyhf)Qz$sDXSJUU3x)~A zA2&Y~ad2uos0BAiux|B6dbt$LHG)f}mtTRo%R?UNE+8f-0buSTss2HNWsy1u_}MG{y$AH2(m-P z4ab!^;8qGYRXJ`1bBo|om17;4XKnJFdZzmtL%I0S|d(_pg9?%O=mM zKeGEz!3-+oI^^Yba@2lL5)6XuQ0bZUce;a9>v;^gB3ruPr1b;pkLG|`D!5d7Sq0`s z4|$}Q2f?hh$#a&M{QWCn{wz4sj;g$*uXhE5AUjkX*~@zlPOX=Z!F?@QH~S-dIVOnl z5Po!|(n|@LD#5wQBfZ4IEV9XS>V@ne3FaEXx#@-c?a#VwvEx1(WSPEu^O`f_O zH-NcWaH-1i8^L&$<9FcJ+T^M2^l31g1?N@{s^8DRWEAoG;Q3R_I}*&vf-~gddk=}Z z&3cxZofiwnIC&JlYa;m#@-!;c)+K;HQ=81 zke3B{TfyvK%=Mhg{*DJTLU4wjrSg(L2!pA%$#dEt>A4Y1y9Y<>dRGVrL3XJ80r~sy zfxF!%Pi-%2z&tIuROQ$T=2M$IbvcHVVBZpcba4GSIT}w57YqaOM^z50-!mMXx*P@I zf`WA`2if0jFzqs@SeIV~=0=&5>X*jZ4}y78<`nY&0p?SgQ?$#2OS$eKnjeaGNqRX{ z;@sNhG2n&^HkDq=z<%RIbLu^x{@7aBmUW7>I9d{pLT*-?jeur z<0de-*yK6ugPyZ~7|ccwj@r?m1%n_vSba$PBkmoE3mlc@=r6OteE{x2&D;J?0CT3` z-1JA~oeZYdCQn`7`CvLdI2w0$3kE@UxRrO6#Hq?ldbwWW-0bCMaJLE8t-K`fNuTmw z0QZIud0+aJH!zI*lK9c#mOt|MBf*>_xK#FB4Q957JgVQNU{=`VIqR3|?FKM63y!x- zCrA1IjbIRDhns)7-NEH3=kfP|TO(LEy-+)U6HNLfZ@WJN%t?ZClSg_9fth5J=PWPj zWj2_Y;N0{=T&rLZWQWS`sXiAjaz14sHQ+x8PEh_XRMo+vGXROMdM` zFkgCbq`%C`ye<%AhsqAlz?CDxl?pahIc9>12`*JRy1;zLCeK-p0;GF0nEw?VwR=_m zj>7ruh<7)kss(G5L-P03&f6q;ZvJnX#JTyumEf+E)0O(m;Yjx`Fs}(N zRek&u%;z5R$PR{8qyO3w?xEb@>?dj39`pW5U(^-Sx8cY#@J zljr1UJ@zkxL69A8dj8PCsrCFBxb(`@dLccZAQ+LX>-g_9aHBosk$G@hP zH+je-JwF0wolTxoe`kVw4b0#wUS9J5D*cgvsSpf;>`-x}mw66Ot>;#77Yo*~KZSp} zL6Ya@Uv8B+H~(@cxJTr4rFKMi|2mlTbFKbBU5+EboFq7-9Fjb$j}VwiHhIqaI1b!w zFiQnT>zXP(Q~S6>FbJ|k#Zi4c>fqGnSP$++!Mc@$TQZodDFnn^^iyX{xUGD1eZ$BzXbDp4|!zg&wzPRaHJuXUZ{M3 z77T*yP;s+gMV+Xd^UKbr3!UYiy;9X~n@PO(m-fvJ@_$sdsZ+QEEV<`nX7 z26LOtN%AOvPl9%?$4x8$9*vT z=rA~i9gGK4Dsz&aNnSmei)BtB?*=gcBXg2GYDa4YL;0h_&8}Vn_qGptX*2xU)nVXH z5UimWDSuQSg+Ap~f;-Pc9@+g8pYm3K`<{n9(%eFqg@kqCS2C=2n@L?AUoXZ_f&BC9`dMu&-E$qd~i)ZEUxEN{nqhdMhMQZE2%!H-wK1Nw#jq$N3{Q?5lpk-xZOKB8donA41(-X^;@Ku ziyWM~9eo?zcLnQK4(exa1M|4xQt9PYFn{xqM|v4>KJ<(q9bBHXytIyaJeV^)IFc6> z49TNIr5Cd2u!B?UWh%Hj!Mf>%{J~{lu9Z1O`@Iv)BQhu13;BcB!EBW|g}i-dW8Wrz zbfn5(KA3WuQ^<>fxlra5`MX*$EMfd{^Dj4n`>lt(EX3akW{b=z@;5k&_tW40N%E+?=?(Bh_|ajMLm@90%-J%hkar%K1v00Q*A3?TGAGHS ze)jHDN%t`X7K5hr| zh|DSEy$%K>TrQAD4jZ_95@rU>=e= zMgBH}c}M1?{4sl;2Ybekj#TB%1#`B{N%E+?=YeUJIYs_@z}z5nl03@aeS)F<(cz}Q z_26Fgke7w{+rSK+?_J(eU?$3(B7ZZ%G|8NzyjOy`R^}vml)pQ{JTG$!c^`uLLgplS zq`xDZ{I%cHz>OBHVF!{tY9BRVT4hd=zaB6*$ebjP)i0R!GN+LD4w!8+C&{DyWn2J1 zgdZJ7ITZ53V5Z8PB#-jfAs8kQf86Y^3*6Nn^0E;Bb}&!NoFac)!F(ojiu@h60QpkjZWA2kQZ=8Z^@w`~gCILp9IZz@=-|}z?#IAABUqz;CB2Zm z_kGIyl(@LJo{s}FL2#+`JO#|RJmk^3#bPikY@AciRK8yb20?bX>F-zI?hve7ebD`n z`@uZw!I2$o6bw&QUB5K`d%?k}>+KD2?+MnZH)%fu<$FjguM0h0w|#T_f;(BTsp?}q zm{P$R=}PuO<*f(PY?J4#53>7ZV6G6Ho1V$;R|!Thhg-c}=it=(yAj+if^{ng+5I}7 z@}2?rnh$x~eaZ{8;XPUS(czXq@_(m;DHB|(dixfbMh|&ZZJ2dOdB`KX8q$vb7e6|LV-WK?j*8%P_SzdcXU7}9UF@L}MPr%$`HU%AUM81*4Zwpf7>A#N|z3my^y@L#mFCibhyc*^Op&Rf%v1UH`-5lg@beEkLve2 zaJLE8s9&kP)Gs`#k|)(K`Ii^LeJEH%e-cOQVd+coemMN-FgU5+PQtYjV5SHzRlUss zvs9KRm4nK=3d}8nb1N^|E&5)TLo*BSK`h9w-d~Wi@09+ zK3~+Eq?a+^&Ifa?;8N-3Ct%hH&PZ3%3zhdJ!63*ERe7mhZgy}^yE>jET+GYBgyE0M z?#Z5ycW~(UrTmfoo#Nn}>C*n^Q9d|&jx^|lTLx}2xJ`m3|F0?sonNpNejGnK-1JQT z;A+7z5Pwwii2I?6o7>T$$D{ueCm+i)(f>;Nqx{{Zk|%N0K7Oa-$o?z|k-YWbUJLnGPjIR7w**X&;N0>@{`7}n{@@{x^zuBIe+e#C z{`Osl@hN_E7##PzMw=_awGfyUg5&wC679{b57OV&V18labbn=XWCyo{dBB6Ca;ydO zuHfAAR|M`0FlR64C zZOxzVuS|KQzg#e-cFxg`$POyOED)TVT~YqJ!Q3u5BY%o^z6Q)YGAG%=NszY#%rRZw zRWc{#kIMT?FdGEN?Le*P7r^}8&N=c&cKQ*RFFiO) zcc07gJOqApq$W>uP2GOa0#jwHan5qoq8yE29uyqCmoJ!E<*);) z-{Y>t`_k~EBUO2)fw@TLr1~g^jPHVZUT`E8>8|GE7rQ@r9n6O|&RLEK;_m=cx{~LQ z#*J>}xCzW!!5QU{@<;aa3Ya6iz4d$&n6Wm_nLpBB2uw_H16lsmTo0H#1!v?>;jf+m zvqf-*y+|C{>ENrdUmia?xSpNq5_d9~@q$a0ZUvYNWlqxHX^^)9%pHOg=_>2@elSnj zIfwm`A9@+gUp+X|^ZQ^jlf1mC%8?C56I?3&HG;WFaBlje{^)WrH+#sV{QVKkUj>&c zfByz^)OUC}Qsr+Pn26xq@<-`T19Oq!QrX|n!K@Qps{FkM=4-(j`IGD*59uD$gLyoD zbcp;Z?O+C&W;^Gw1G3YFV6GBes{H*F%ws;dm%)54IJa`-BHdx%O$&taqa#&0YQW61 zbINjD2xf)gQkCNdFpv1)o(JW zhTu}^?_)5BU*lbl)4@y;oLf06kZv=W2L#8s9=I;*&<>dX?XT+N!> z+0@*?{~4+cjcjOYpCt-3tE{!TA=W;!b?ya$34ybQrp?72t-v9HQvz|w)&E=3RNvm( z(b|~E8eV-`R%IJ>)N~Pwl~vr@($>@*V|T=~?pfKHT6c5yuxZmn)3mPlgIe-qExB3i zj%4TL@9bWhokPKKTJnNSt?Qy;84J_3WZpk0+a<}5GN!N27@DqiU!19}FCInUq?K}&Ae*8C%D#p=%b()`t0 z{VQ5>6T1*eZqm9g9yWMkdL+3&#pKaK$!A2o4IXnz!HR7S?C&sf-H2Waqe}5n%KF&BQ%|b zJ~qw;r$S*_TJpVQX-?N$16Qn09M~1h`9e!pjN|$2dOYj=wKTq>Z=nvvh;4v2J}u+A z)oX(_h*_m2$+rfy{KvKKl57oX&)>*YT9Q4SYaOZ&Mv_HCwB*5BPb7Od6T3?5sRbZ( zr6ph0lC{}Et?To_3nyqjhfYOWND8!;T%#@jJb(t@evH=j*r{4Fyj>fyM(bL=UF+I@ z{KCOI=^kw0DV|xOk9BHYUt}ygMC+cJ$rMqvZeV_3%a7>-RMMS53+URAp-o)B@HFjyoTXzK%c!1t zf$f6P57M z)&cqdjwIKHyT@qBm%`n%GqvP1;qFU^vFqyw9*0~}mSFT~l+CF3BNaN|zBN6Z{91#q!^u~WW3BrfWLoQv57UIhpo~u>O`|nZIidY3 zrt|3R^KDwEw!yXe5JFt*|BDdU`kThNbZD4!CmUKHVbi*sR~{$4^8YP|oCnQthnzr& zJLDdOxI@0pIQKF_+#&x3A?}brFwXVXAu~6Owln~)m)tCKzgqG+)~QWK4NQgw@GglA zw(Ien^VXh<)VLp{zH=D$ompnz`I?s8!CZI#2e^>K44*p6%>9{TAFOq^qOU9$edQ?X zE79U$C^B9y0?KJvv!&<>NXllKC5+I#yian zWDT9>Iz&@;n(N7e+sJ<`MyXPEnp?Ak2A;}BMtL2zBgE?{i4d=&-x%k}-gzC7z4JQS zYMisz(E!nDe&yO}@;YL*vl`tXQ)8Oe9fDuPC?&-GqES01Ae~*W9qJW=D|fMWwE7om zR3kiys2z--BFQ~aJ8jI5Q|(M(A*vmIZg#;_*GQe&dS zU71F94{sL;C)=3aH|TbMaX2{~k%Z~n%-0wzVxY(rYa1&v#fq__tJ(KytQa#?cd4Py zpBU%XBgBoJh7{b`-!RVEjXg~m``0k`Im|UsAHqk7|5fU|klBu1o&4NxR_DYg6N{ON z^6?8B%q2g^cq6$vA&fsCJ2gCF1I82xZa;oe zPFVNA-5qSc!@Wel*0nZEoA_quU6z3vsx_*QU8`XYd}zE3AwCd@z{b&apvBan$<&6X zhWHRGCz5=RdXQvVB>C6Kh_@oiB|{=3wujg3929;)jE)9ZOx%%i`JHG!;hpf~;Y-js>_hmycUOi6huEg+h9Sssf(a`MB`Jq|S+2`p-z!DN8^IxE(d}R2n5jr1AKAw%% zX*VYi(fyH~tff4H5I3Rs5#lEFF+zNdz8#?#gg36u&a9zXDP~rf>y)C4pNe1wpAF;0 zVlDaol}Hum+E||QU&!Cc0;`V3X`b9Dgq~#r$05|oCv!BrqE(1e=I7+QV?Rb(nlK7|AeR=jRNZ@if&=sH`n1Mg6ozbcQjc~}4bJ^G^us%2hO&I?+?& zvO#7E<{fBWJbPFh*s1lDXNJ4?2`6U{!Lk5GPp>CVO|JVWV@>gpuI*`^M{7x}&~4h8 zi8CDsbbX!Hxvw}=H6(dsHm$+1hQae<6db7}zr$2wwwN2UKO%bh-oPDLohLgNuK){1CN$5<;`%dTSu z$#zz(An~(W*P1NG(+!p1GTs<&JxJ;{{2m`=QRcZ5r8YQ(s+c)6IEu~M`qfnJ8OJXJ z6j-)24YyZ&f@z)q!m>`7p?J zQ}a`_cE%0879l?GZ$`*;30c#`2p~&)NMB^BNbZQxIC`5l@x_cQgUAIo3O7s5)#Ib-YFT9Inameh zo<}Av3oK`d1(u8}?xzcSv1yb*{?E41aoP zvL|X?UkzTEt0l2ub7%|d6Q;)(FNdjyV`rFM@i`h*11*Emf>{+? z=zrISN35?%Zei8dPF<{1O^N7t_PcecR zJ0qFR`bx^y6L~{=3O5220=ckmy-sIPomSDR+Z<7y7+7Ik#Typ?`!f`cSLG8%h?K#r z@+%`W3cBZ&Iu;>bsno1EH^m6iW^rE8%Mh|wG~FQ?9!XwksbywI$N4Bns!6>9BSWLX8Rue4Y}$g zCZzn%c*)x#&fyq4sM@{L;MyK;^r01;iDLn-(kPu+* z`aFwcpxaRMVN>BGpXgxmOE~hz5C${4GxzilCrkdpDVNC;Rs#)Ntp>VgRuc`KFL?=C zpW#+Rw!%Z?5x6xJ8Xk#a;x4MiVjk5k2BU&- zatpcw8g7!8piMh84ymGX$c!-DKXv6O%FB^t-7xCo$z@<2>;rA$D~_JK8ak$d2J6}* z6W?+Gxo{*WXt+hgy7ukXt{u0c=-$b}lmV5!?4Y`}+RHU`qQ_hS*lM$vSLx=-pXmnINzp*LY_2uA&b>Sp#V{tdHrGG)Ug!j+5uY?-U(~Y0}c2duwG3w~UurS1~ihT5=hDzl^Z zyEso72J(Rs8U}rF6QB_RH;@*DxPg$-@T(6a#LeO{gt%EyMVli$NB>cpaqkXG2XY4D z@sXZwlvmM{eRw$ezkL`Y;O3+lBD{j)xb+>0i)>E8Wq8n-$$AaeTd<+QWUB{2|4_Q} ztaC!^O3uLu+INdLZpw+uw8$_90`7x5>rmjQMt%L!2>lHqUN=WWv%Ka`LWtKKX`5e- zBE)NsYFIRATG7@UG`f9jgD%au&suF4Ad+a&&17TL&%@$GwXxPr&DyO+vk{+Y(J2P& zDOxlQd6X@hZkpLz^fEf((V{ET{~hUW#67S}F%ZPy20Jn^JjbvVBePd{lheI>Y4=&j zHI{ZaA2+~K<&~oSVs)t8Xunw5#5aU=W2~t+SEfq1Nqcj(-|D7GCimz6 zG(u)`twp`?N}q)guXL(lUgAJSk3;ndxOEHKq!(B47nTDihYN;uY;d+KtQ@A@W&9_i&Ha4Fv^|;?R zYJ)Z&@EZCPLR|CvLV>(qh9bo4V}|Ama>OYm;7>8mSxf?2rN zJEgle@M^e6`$q)=Z(;E{xB+Kr5&G4Pp_4N!x~pELMSiSBzmJ!+h_lXHOEY`Ekjni2)M@2g_8eZYbu*d^LLie29%QV4`=@# zauV1)G6?@gn@%%AxXHYH4J~zuD#O|z%@^T2FCNCm`LtursLph)UK?n{9e5U)H^7zLkw&#~yCOU~HJSvnrDoB1ULQ z+^Esl+BSrCKDTw4P@tB+3Ca%jR1Gjxjkb*a3*qE>!^6o1xG~o;E}VRumU^OV&w)Y; z`0_78V_9e>LO*BLM0=rr!9tfKl*_LE8lkJ$xjPUV$<957(2v-;=Mb8}&b@=s)9l;; z7y-X}8bSxKb5#ian1yB|#ADFCobRx6mmu^t3(;Mj6)Z#@4wv#4LO)~Yj1|meX|U@p zx?w!5D;E4(OZKcn>Naa6mwP_jj&d`LswJ;tOxKz$(O3>blwV5Mh8aty@9--K zLfgC$clI*($rzfpj zpTyeb=gJ*+k*yDLi+PHSZ4mR75!Nqa%JQ;Cw{ao6`(k|$39Z_4KbOPydht%pw$!u| zsq&6&6GFVxqTv-k_Yp$8`#K0U%Db;a5z>bhG^Vg>k<>NtsFh~&aEa_;tXr{*vsMb`>ld+}GEX!1?P(Lg%D8ef1e!bbb`D;Y zp>;3G6m{}Tx=5>j8?jLF^ui2HzwLY(hL&6NA0!8?VL20OH?L$Ay{BR5uT6YD10*LX(ieG4!G8}m~UZ+iLwzF zzZKUF)zu6^HQ-L(aCHBWnK5*LXogtSGCK8iwp(O0zqO40A{YP)T_3|XSF>ermkrj) zl|@c+E$SKmGlI1c;~w>m*|$(Bmp@L0jjqkaUw*rdY-$YC)Fgx^v(R}6U5n;8Ft8M% zW7)Zt2>p?rTa6IcI1Q?JeLRQIdUo|)gv5}Gh^<>cS zMGK>GH>v4-7$zKNmKA@NAxM0U3M z&(5btc6cQJ*-52sF|vkNG^~YoewbtCbEyHL3KiBuroya5$LZGgaMb*8*2eHaL#2j) zX~w_M;%erLf6-ki@;1!J(2RrI!AOL-9gIeZTUa?l1KC(@Izrqd$Ba-1Lc9^lPN-UP zLccFB5 zddbgAu>6Du1bbk!*)B}EGxP>24=u3qS<5J=zck8V!w;j|L(4<`8;*fCrm~?%4sA`f zHa}{5eHm(4w!__+y$t1q$zVquxeh+gC`5?6*98c1_qqrnULC(fh_}0Y5aR9bQG~d* zXd0w%<`HE`W8EX)31k$EpNud!ttI!x)GT8Kq6XGd6MLRDaP0TU)RHs;+1K#5d_~Rd z%XB@ZXv{cp77Of&d#ac^SOI4**Em2ZC zE&0CBInRA&CMHxr-|y@9&+mD?GIMgDbIv{Y+~u5m?lO9?CVBD{%?j=+aEI77W?K5J znS4(P0#H{aBvQ=g2{&@9#53y@SjR|p1MeG8Y8pr<$OL~B6dg1XyLhCExA%ROn6 zeN*xr_oUH8yRKv^jlo(3-AJ}vE_v|LQBaEWFFKJWUreN{r`fZr~nSl|1sjK zOkYWc9IA=bhVq6!sf|P%Z6v)N&h@pL2nL86q!1%+Dy@d<`x)WC=#7^O3(4BSpT|T= zRf^u0XlRkPL>)(TGSq-Z1CoI!8Ib6DHXvzpurI+78cl4k^%;GXMM$Vbj7^i4g1`W_ zibUrH(wDu_NG|_USI!PDf{G_F0Ybz#5MoGC=^twO9Q2oUELwzzcS>$6A5$W}8iJDt z=G0-3iqC$<*xLA+XVY+Jv9-kbrX0&lZ5RVbs$*<7C{Tw}3pgqkW4i!f18YUKT2mr? zI_xdw7&95Bcx()c6cH&68xC^$zZlzHY&oztkFo8Ewe3P|M(qVdl?1aq9AT2PXpn<~ z%khvzjklM+fqXGdA6OfQn>Tq4PPyC1>WRZTc2|MMFhnAFwo>RKz6bG}Yhs-USxLI3qY{Z6GM$>)co<$T2 zXDV>0vlRk3aBfjtkMJy$r4O>nDHmzp2pPk_rvH#%czVYbT-4~0YqXem1jp0%$JoBp zmBDM0JE`6~(0+oU)YgqX|9ZHv8aREGrFo?uCpnfBR zgI>Bv$t^&6lw8~hJGtFs#I{!3Jtnxl)6H7+n>Rs^z^2YZ->8dq(6JlXU>&q&IqaZXAFgsG;Kdg!x20K+}Cq)%xbe+pm%0P9@Sq4;0v(wy=KkSl2 zd4fUVS^#qAWGp4U$XHs};Q#+Xlyd)3lz&^)|DQjN`55`djFX%9uWWe2|7gRxwT0cz zqV6-7>sUF=JovHOW*l>iGFn&yAhEoo3@8bZw8@aQ^l6NAer zQvfz4b|=0f_&Ph!9ic2-DxvoPoX&s3navtT4}giwYDKjQC$?2x@nFlzY=?8zz0~GF zkT%&5kW4xT0g~3qqQ^T{Ya~KkDU*hx9#5K6*8wqk(iqL0`Y|9<1Jwdei6-WCD2JUF z=F~KPfe;T?;}HVrY~=`manh)fh(V52%0)M8^_08rNj-PB8l$a4uo-Mj0wq%K5{o2BAe%*!iz{-;c#1KO7@xB;kczJ9gub3L&sq;m(3qz5GH(heH&8i)Jt@_SLw(_B^+?s7I{feMfK@UQ2`2Em z+tON+zUo+g@w#PF`N56DO-ZGYqbCNd9drWb2!bYeJ;p}lV-d<6D2rfFK4+~=GzcJA zE1EYUYsgv>pU>f_L`sG`1r{!XVJ19D?CGT7FML3;(-Qm*gM(i06b|F21!T1`<>etr z5M9xh8D1qLylF<#(6l)3&9rS4+j+t_=K;8#=@xE|%t&ivvSnso^jYa;a zg!|ONF&MQQ*dw@|MT1ZuV3d8xul0I)S>dehw8m83*p%RfK1n5Y*Go?!ZnXrR){2T8 zL$L?01Tu18Q?;0*GSga_Y*|v`K%>M-UfZcEavDoLcx|V8$O*~3W=gr>mXbx~ZpGQV zD))9N_s%qI#>!Xd`22-#WfXc3ASracjGcp1Ce^BwQ~^!34$MK4$2vD8!6FpKi@MaC zcZO!5S*9g}h=yD*-Iw175FT+Na;x}4e1!(80U?AHzp;V)t#Tvo~1Vjw(bzcGMfvPIPL zZ#h?|#Ty#dCqENz{qgqJuP^+j>`J7~b-FF0EM*iP4`?5Uq{)61=BXh~q8oF?-U1}{ z>2E+{y=beeK$DHW^9mr{%d$ByZ0MIy$WFUUV8Zux*{`HPK*xSq@}4DYC)qXqu%smq zEwNcoEJOfO6{%Yr-lJx%9FuOU!1Mn-V(w|A;Y|ejj!8B|#znYDG~JZF8G`}Yk4cIk z_B}~(8zzg*r0p2 za`T+URsp9wX`hguj&4^p+Ez>*XUHj^a<@=Y=_A*^E&&l~0KwRiQ)sg^MFY>D!`@_7*Kt9o0D6fbTIkATh&mZgcVhb@PLp)u?dRzuf^f^#mF2*3 z?4ME9qiO3yF5kt49vXWFM?oXg5{`3=#*$HgY#@B%8E&k-4v4^l@$&pq{n(OAv&A7n~$15qDN04yC7uW zcq8j=G=^GiQFl-w=E!5w9=OB7qib1<$6-t3?&Zc|D2c;03_oB{h}vY#ZPVg#BC-`_pdq(lgyqpk?z1GPSnN3j>4 zYB-8XOSognipt|5C+Y$e)-}M98w}f1EXA^^jjgW6nwa#ZLCc{%?41n5zDbL|ZxWYP z^xb)&5?;uN6Awu4dU^{Gb!!u@m{btm4`6CaZvOz15iAn_OIlk%lGYQD7)OWjs=i|q;Z@o(8EfH|M?o2OIk8Pojw{1=*6rMka%k|U@PwNqGIrL>z)SNISZj21be<7>MS%-P z(h_6CUiCbids?`kEg~o_yi`_rMNcrhdFegwnu zI+ipoDkCPnDp=zJ#)Lg)zbNd$@v@bjb<{lT6C|P+tb?OwPR*i!u(>dNGqoUW)?Ciy zwy2e9QHMc#0;Jew;FZ!+Gtcse+$mF+dn94tg{N{{S-_my`mL<6jVg`yWa75fwAgHL zxd<-V6-APMid$@&>t01oVG(g)q?K4388Oi`Oj-fvRWiaH2IunXy zK=Kx?t}YOaR+q(?`BQgusu7jZT{nFZ9XjPjbm-J!9UVieS}mvHwf9bp?D|T1eL%8O zPUD-}ym60uzJ1jyKrY`ht}cXY1rJ2ruhfjB^AwRH9}&Fcc2a2kQ!;>Cs>d>Io9#~0azaZZaIg`<}|$pTHhbPT&HCE)=1xkFhVstA#h zBwNpEv4BLz?tly#!|;#M0PQmhL{4U0AvyJ}a!(;D>ydY?g;5C$lGY#0MOw0jA}wi8 zG)gjxwEY1+R@#&+6CLZ6)C65&j;XeO@# zMar{uytP1L5z_y>KuA$GlSUQze8EV~xkEkyDa=3$6;A5lMqPwdFmpo;+z*TPxE3da zFX_phfGZbhKS8?bd40}-IH=4y;E18x=qN5rO4n4gb5H1)Yw|QRZYM`n5FpvdhbAzI zR4$YQP8*bL3j5m=07*Q7D+f}YjDt-xps@HSbV&egcJnc=F5BV9bDf+eM4E9gUGAW@^e!uW2k1sU`w)XZga& zF-8%fs|-k0E~aVbgb30QLQz(lW5Zd!$1*g;wL%)HjIR|EUzH`P$4X*kV;ixAomfdI zEKa+?(C{cl%NruY2taNu1As2QMOZZ464zBQVQeo2+S%MGfq_96w;Rff8|+U>SvF6dC27~8@{ zfDn>bVHmaQy)YT+^-iVIp3*b&vfgdlVH$aZ4KCe14hHHxqE4PQhsfyRpiNPMD0Y+f zq7|1J59I_>;Z9m`PG`x(0lmr)`7$>dq9v803?&14o1w*k(l>rWDwm4TGiOE!ba*)&0mm`s@1F=Kg@tK~UtP&9T zsSg&KC4KR7{<6P{N#B}GNhw?3#Ftl$xefmxWBZEq$?PI+**trS!nH0V6ThY@I^rJ_ zBj=8cC&uJs#Ll{HPNkKRXt~STJf|K?O0vQfvZHT5MwE+*;l_-RQoVkn41lBM%w4=`(jib$V?{?;B4;1@QaETReWo zNP+Xl4r4`5dA_GE#`e9mei|Rr^?PU$>5<$}=Gb`j@Ia9>T))bNy?koa=2;Y3gbzHC zip#}M?+Vg;977=;@D8c)ufw2#sPu5`d55KB)zQ6pVHQ3jOFjCSPu~l?q`4@2(8S8VM2{|?H<>D|$6%3-Ed)ghiwN$&F$%P&K}-QThhhrIDCnjDdmy7TvvJMu zj_4V8`RX@Vp|)6X#ZP8nbyNRQj|nBvUFbBNY>8w|NE1BJ5WJ)Un*)+cB}*ccv~Y?v z{2Yb8P%#qLE?w3%)9ANHu+U-5#`I__&?;a#OJTtkBy(?I!7VH36-~b6!cHnB#qms9 zI3St4_A%a)5Xd>Ltv49MGKd96hzmZD#XF{Pw0DwsWMg+;3d7o$a$npq7mEZPdFfbm z$Nmb&r`_byjXQcL6|)s-3`#6}vr7`1A>T~if$B{UF5_MY^y9i*d$?s*L!L&FaA5;3 zoW)Rw5iJnQVqtWuCX7$jgrTMQ;vP=(Vq)B(HIe}cocJZ*3lSo9U$nj|prJ)NTEwX8bjeg&>@t|dDBArVR;dzlk zP$>S7q{UNJ@TgB*zwW*lL95tJ9H}9U2!w0G&6(gqca_$p76acE-2@kw$|a_xyrkls zL$u8lgl(q?+~nYjXCupvQ-bPa4dD}7LrA5YM{#rz-ELwduklzB2WShcYe}ykZn6EU z)@m$GcU!ShKvwge;+4B8Ub)*^odcR`PtM~4mp8CMRXhM(&@~d5c8$b#3;5({F8T^d zc*-FR0DXBe!i%giLYjS-#MnlbWv!=0Efo3-_4cBYj7b07*bATxqf063#?JcFoO%`w zAXkc@~YmmVwyz+x3p}B8(M|s0) zZHat|+K(>8l;$He&ZpQW3}GROyNeYVukoSAWYreyxD4ZxS7j-1dh90*P;bgaonC55 zKZ(U*pGEqY#TL7k`v}D~>p6rpD^uDKfGyT0 z0F7|sv~&R^A%Y}8d(dD_8ZHadL+h&nNw|Fy}b zmU$x}abIYUh(K^!!caWJ5ivrqi7r!p@q(W8jk?A|o3FZ>8>b zcq@d=H9&Jwad2FFN)iQTcYxQV=n5D=^>ZHhO*o7g*wvI)-jdb}wz!v{1;0#S32AJ> zFB4d1VPhMuju^KL;_8UI<~iR|5-!QN%*bPR1y@qOh?{B;nP)FGq=Klp?$_aN!Lquu z0;Y5lNX=X^%Hf9nez3u&0Q|%jo5P{ewo%^ExQ`6O3$(drhPD1Yapu0bg za%({=7zzZV6_iGM!xixP7K18FDr76j${)tOw=TFkS$Ra0X~};jmi(h^S0b@^L_f6x zdyA6{w3L)+Salrc&u7&G;N8gpfm}P#$*q#PdE~^=m_bRA(1+c+FDej24E#EM@H%D1 zJ&VS%uR2ackb`;0Z$_wm^sx;l9zz=ZD%uXIXHIsW?)@E#&9adsZWP3T$)}e3?@WH9 z$C>;Jk6oX%n|WGTgSkn-CDgi^mkt%4au8-dNy8)^Tg}XE0Hq}@$9RoO?3>JO2W6Qk zww@Npa$!;K%Cs~aX73}vl%BNQF!+ZMH-N!E4uhY~<%6-849VDMquJmmr=pTc;FzF^i~(z(ti;`hdJ9iE z4{LuA)*eNVX=)8hv^Il==r=!NaoHgL$k5{ow&I?!^l%mN6Ck9z&0^}K?(UAt#&*%& zfpn?vQ2gjedQ>*MAZi_e8w{EXZS^#d$K5j>u)h^j+ILL2G}X%NJ694M2<+>^lCz`P zhfa*$7cO}jW`7Z@fXx2;=)0Gix-$E38fL#qKC}O30cIcRV)p6a5gGFwObM}i}D;z`ntt#p|NGchgw~H^)8@LNUr8qV-^i+=f7jATkehl4A z7S9{4#Lc9o{zOX%E<-$eAwc5I(Afv^X2@9=Z)PnZ z@n&epxx9@)?-p-nIw0|8_8ZWTfW(`*07$ITRRcN!KjdZnXVN?|(2KX#7?9va01|#3 z0g2Z$1(0|>vjK_ML))6g>v;>1cs=g{60heIK;rAHHy~KHct?A87^Pu*7v`91_(F?Z zraJjI1}-_Lh8;D0p=?JEPx6HbnQQGSd?9`L0cUUI$R&kUY)f(emhWymYkqsX?SL zOZph}PF$L%w(iOH=J3t%O7Rk1hs#KI)RL|Ot=Kq=5Jd+gMByD4ns;dl2=1f?CF9Ev ze@VU;oGzKDg_&Q^%9*BI30R>Fjud0^sTd<1ji1~lj`50P5_ZQUHlZaI3fttC;{oxwtaGPpgamD^A1w=2v#};OC{Q}0+94sx&lmkLM))F?BUY| z@p=R%eO@3?jrQlXWrB8~>RZimxThn2@)Xy6`j)pGxewdnKIH|QhvONDYDn~$f`dJ+ zOxVD!4m(IZ3hSsGkHR-?BhX{_mZm2pnuO$mkV1wQJs9P@n_J>)5(*2amijYS8R}Bs z1BM&E&|;~!=@<+J9JRrV=-#xoPe33S{m2cSG z$whPg`N}uk&PR87!6cw*h-izrX-Pg3b)==wu(+Mn+G(xDq(uR`%8R%!8ci!Vi38$mOG!w61IM zGpcmpjsSQ5?%nmb9r^a4Zjr zW4TGoidr3rjALm|_A`L!8PxmWR&GRV=7k+vgMu6PqpB*zeRYTOJ)p=MRF-lmH^HGi z#A{Hg9cH!I$0&Cf-00?Ag zqvd>A2ckAk&V-!K6Nh69(!`~pJCelVpgWbt;TQ-=-cAD~6WtYnDSlmqc$J8S0Nw%H`H)Y3yq}laA2e)lB7@+L*U&>$&AIrltqqqO{8CAx|ec4FUhN3 z#wFVOX~7R1E(e|jEvNzFV6M8~7yAl~AH-|Ab6iQ|P1sz->Mm6x`jqXI4NeSF(7-@I zpaiSHnRJCs!HfDY4uy41f-zk}EW*s&^jm%TtXI=abJX{?%u5`Dfq!iYn@c+&Ff2F1 zU5-{-M=PK_VbIif+ zBARzF$B+|r7;z!V$IGo)25~x!cmgG)3~_m}o24-_Wlk(PPEydoMIB^0k;9vqXzw*& z7IaY}t#K_xBNG$w8bck8v^YR-a#}JV*{JX#pjSCGnNb;Y7U zgI{O7*8!Dd=wsvUCO|^_odNv>Xc6OG10*#^_29f+L`?8248+Q9 z7>i_+NbDIN5wfD>pkg`>air^MG3is!z&hQbO(9dyV5Q?4qZ->mwqwcQkXn#9js=PB z;9~3sISo0C-5^P5K2O>W!ka93H^?DniMJ#B<7|ny!xA6j-5_>LeB9X*qvrc=SC)AD zlPxjq9IfMQ=R&~}OJ-z=w~HmFO)D-ogDhhOcO`!XB=6L~NJitC8;KvF{mKnR2G!88hZM1wdjw|1zKlfMjT?1RSxHwE&6r zBs*qUPue4w&w4sKk3y)KvtbSX*a&+T=hM6q_8JOe5io1;q^{a(y@% z#RFUjecFn(Y5L_O3s$7RHfFAW@!>o^k;m=IzSSNLct~2;J2B}mfDr<$NqIPPb_a9G zs0*^`-aLyu51E5T$*+A=`xGxZEecDoNoJ6EF$qQ3Hh_<8Dvv!5vuI8g!{>0|A&X_O zMIB0u!m4dj0LaT4P?L=u%<6G%5|!f7GY{3l=s7T|&Wvz| zz~UA=BxULa%{*%x1agqLAuwA4v!Ti|wG*tHE$RZD7cNQ0wHTd~E{t>1=2s}YKVy*?NuQ8t*|`_UmgqC@Z_J$ENGq`qMRYIMrqLe@6DB5tYL zMsw^Ko3zK>rlzQB4%C7LGmM-I#|yt%EgN~&4PJ7^17+AB1&}dk9v~TWc$;k982T~r z^hwwOdnCH)kqPDX{ug5_jww%CS^R36sS~omMP;$JUI-%XqoZsgd!w;?sOcX3#AI4o zh>E5jYb$}@@@h-X&kMI|W#E^(u#?tKjpJD?;$9`R!psx~@)2*w!;*&>mw3n4o^U_79V6rxiqtPQxLuMv=Eu-NK(`pO504ZrL98ka3zoUjbdDVN zIencBM1WYvL%77+Ton=9TXdh{ZZ8C`PJ+E^L0z><)sUtl4gLzW_X6rhqUCQTbf zVEmpb1hv$=9ZTV(lkhW>3dhdMh)i#7vU=bLNbH;G&8Z)PN@?9ZYcc+#egGxzx7fBM zFySQW$E@O0||Yj;>|1;1`Kdw*rJhq_SLIiU3O3l`74b(>?|C4nvy( z$(Ce}qy^e5>Lg9?*2@LJ}8_Xy%gV6soZ`3aJM+TOZZ6uABpSWM zd^Bl`Svb-M%H2^XbX`Q+GC*lgt;j@uGu0|?>_r4wXu)z^pd74@x`@5bCv@*I>O|yR zlQ%AlaKqth{4U-e3^6iigfTrKSpk4AoNEp@FWEs3=ZP3w?8O+5y)fM;qEe5>n4`ch zJ?b#^D$I7H@Dow!UH~!(K%g>e4*|%&8=6Y{p;AnEKZRk3Q4V()JxBMZH4;e{vR<@{#e*f--+Ka7xE5E>0*?<%L;;XI?0 zajyVI5||1BBm-t+Kr(BiQAg4`16s_zf_zz-=e+|+=5%WTnfdJ>2GkO5NzRGC0cbYA zCFfaAY`Eipq38@q-0k-P$*l4lK;n3lL!r;#)93X7bHg3b-CUa0^LTAoD2nVnZ;Va= zoFY3gM0(5z{m{Pd17%@h;80$NMz#|)BZrb{GLMmg7Kyy*m&5QfP)v-TPJKwU^9&%- zSPdhMq8sv7ADL_?xn5uvi_)-5gANx)h94iGpFm+v8db?@hWJ`#eQ)lpqiC)>c6#BZ z+zyToiBVJiL^qoq1b?Fp+)F}=tug}8r&o7;=_bNn%!}{jPbZ*3DFO&;DkmpgodvFwhqTT z>1EhJ0ribejHx-LC$+{Z%Y;L;%8gq;m`cT} z97wS8d`Az+Kw@$gU~w8rX>|pJ+{iiI4tXwRWz*#G4Tk6j7pXaNj^t_+vY4;%Te3Z3 ze~$wy!D&8d*8<@;21Ng?UhHq?MTC1+Gu1NOY2zp^stfjy<+`C4({_=1c~9thT749e zTCO=JM_%GWQ(kqKB^&%q9F7io+_Hq6wvPhvL)jCFg)3Ofg+{=T@(j75U*}>`BJHHG z&%0a@YP4@LM8O^j&J6%0N*D)d3BM(ElxD~cA!g4|ck;Q?;T0R#lfrzS|P&wp7bARLj6d&^WaV^~^IU1R{#bk5EwfRz33# z3W11XhEPyj804e*bdt7EMUmh;-JlYPsOB(Lr9$pnq56dxS5eSg!J~Caf&2^#!Ww`- z^|<1lF1&RV#TSV>H|HEg65=^qF*PuqXBtqEa!FR?O<76&fV%NKsL_1(&od5NTJa2x}nz)Z>c(R^hLsD85M4xseP) zM|lZf;yDw4>T$()r@f@1?yQ^A3LW3C8zmKpa@i}Aa3AwVk0Iv)<2HX{Dur*srIHFn zB^4^d>W)A4xZ;1vsicZ8mDDbSK$Ms8C7vw2&e#>-pX?>=Bqd#-W7F4Sqoe{+Nl)1+ zbX%l%HKto)PzXd6zdb_XXjR@cC-CmFB@j{lY0pP*pDkG?`FPu)5Qr#l zFok~wPtCV}Y0dYjccNFkX9q<@<)ZqU$dpuHd5ll*${_6B$T5eDYL{z1i%HN-y4?oRkgUC#J zb(Z;}1D_8JJ^~S+@-B0C>?$7`R00uIpi3%8nLje91R|Z9IBc)b@%@QGArMi7+9~v|Q^|p1r9mMOQ8Z$T;@lBny2pwpiHI~wJDokaiAFLW zr7xim{aIyj6o@#sV9a2JLJhMGC*ebD%aA)wkhBhHjT&wD@zC6_yZh(si-h4ULT9F> z^s)4zKc5;R2t*>pGG;tsQ1;y<)4`gff9t52)dmlNh(}K*VoUF$y4DyJ0ue==P&jy6 zj-$}$28BRGksuWLN*;kX>RD@02}D%G?UKzDyg-GH@AU?SKtwUdPN6e@&VgcsK_L)P zOb`mQr)Gw~X@(6qhZdnRK^yKs`K3WA5K&GokaCOz2AfilRO6k<*$8_q$4t(fB zLYZR-M10cz10OoBBzy!SJ`1HJ6@9gegNkYuyA;tX*7wmWhL+1MlU?d?i45^+c2f(} zpKlE=0uh(R!o{Ig(9BCcTMY_(ULa#+Vq{4tI6 zd{sO*LT-ycdMoygr2m%j0BEb|Lw_<1nFS)6jg09e^L9?chqi+uhhc=)RXsEeUKQQf zX~hwO!X%`wVo&U3BqI^_GcCPaMj!fY(R|04P9l8IN%+u?Fyu)bwd4l$S%*GI zgPm9y;t7qccYOmr4D#t^m#LnVMBdi5Tp)p0NC?)|yuU#p1r?4W0~ zXX{tgo^>mwmB{tWE|%e&ScF>%F+~^=e--g3WeEgyiG={bKP^w+^n7QOMIb86ImUD< z%N0(-hjxu2Pj0DPfNXYcmQyiaU}oeLi)%wV7s#i-yZb1U)$_c&si%8^jaulbQ42)E zT<828jfM@W>d7+17lf$n!Jzil&O5`5m=2Kv2&l_Hh{%U)uG}f=v0## zxZf|ZA_ajeQXtBqGBYV&*h4Gq_N?aE@0_cp4&#xiedt4fzBgnRh&To_rjyLia}rex ztRq5}iVM7psNRWn%=_E)P zCy^kn7A4no9J)0A#$Y6Kw+ zWB;n?A`GvoO6;?a9u9-w4@TAkQPy3VyFboV7OmeITJ2zHl}0z}Yj$48@t=BrG zn1Kk78x#T&MWU3slDAf(i=S2kw*i%SwOB3&;dr8;hYT;ZBN>9JJ5FI50NPRqjh-~P z3q;({~*Zg_PkWe6!aMq&|E-)l~MI>}EcqAd6fs~nVTW089 z$;0G0uwyC0cz!Xm6o|5Xow;(X(h3ldqM)~eM_CF)%}yu?D++(=amD*>;jN=6zBGc_ z^S9?9e2Hf}#nixbrdiH>E7UHioTrU)3PdGY_1JO>9+gudDyLB7FQ+TsYYQx=J%4)+ z!Z&|8UGe=&FQ^%_tN9c-iaL&bXN)2WM4XN>r{Yz7wJN*HYE`Ud zv?_y2YgOu((yCnd&n=r>n&lx`$gvYU6$t1o(*fWOIP^_VwvmHCl*2EK>7>N-oJ2~z z$dHUG@lA*Y8;aemCZeY8VsP)Lxc_Xb?XI*MyF+bOr= z?d*usxF@ob)He-T+flvf&sjrOfhf1DkIH(-koEq*l=WB0dS4snHr*}9&CQ+T2oaK} z{>A_NZe%YIWv{`D#mbt4L2#UN|6x!FL=>JvL7^p`xnrFEqCp`LQTQ?iPn1FnnkbcH z91^HDedy06gPTCatpsBRD-`Na6*!41_gRMAWk4p)AI1mVqh{j5>C;84BF1-)k%d5% zMJ49qU!$;Ac91_@&~k7=%W7p&>oN@&a+-Qjt&82GTCdG?^tQW0H~-VfK_JSZI%7H& zqAn*UkWLfWS370f8ywX^r^ezETp{Nk2|K=d2x>bYhJBoGPI_)&o(41uB; zk}h+Yr$HP}E6sd}y0SpWuv?=8)~ftNi)umE=d_?fb+n-RwY4C(YMK$qFnTx0AXFg8 zMT0?r+8YAXlw3W383GGLSy~hj;qKh+Gv&(-Hz45Q z_cJ_5-O^?#6Hz?P0cB92QC%R~Yavi&Kr-&u02IZd((GJ3&r*9#&lK`0YAP1%?icOu zbE}Znt=O|Z)l4Od>3xpXL6qtd4m9`*L~?ZJ@+4~?XnVD@nun=^sg0?hlTQ(@$nkx{ zP?tc&A)Yz-*Daz2)Q{8x+?r^9xfsF@`(!w;5+K}xN}fxQ>?$=5C(X*h+kj$tu1foJF zaXAX25TS@dAflMe6#g|SsQ0W^k;ah%l>aucos~a_X_2foXKfIK6WxaL1)^MLFs768 z=W!A#Kb;{@?h(26(2QNR#9;_?C8uF5L%!p+il)JyrA?;Wn#D;+)qtZOp`sECM4T3J zc8)r7q!8{zArMi#!4xub)WFCQjFF={Mvg$2Bgb`61me#=a(uw_NYZu@WBs{j=t&^T zX(?j{D->#^D>#Ytw34A>tfypYl00Te^v6wxjBpS8kda9n()59XxXYkG%~K%fAw!yR zWxS1K$*Kd=2a1dCCr#exJ$%F6i#2!mPIA|}`9AAi&Ao)LqZS1a8LUvK4rqs(gkg3wPhANupq(1}1q@e@-N zf5u092LA9fT}o-s)Gw($bCiAJL`CWBXa2@C^p2aMj+AF`7l^o@V$5J2gC`cha}u@s z3k-QvtCh$y4VGF>`pBS~tj!F8q(w7C{#7@I$oESDiihU=IaEH#G|jWWyZ0`q!Qy$~ zs7E-Fsstj@E_3d>a#>Y<6gqtaSyoE~B8pt5@OSW936b823r_O=!#I>akUsRs&EO^w z(cEUtc*3BDn8*LRzbE_6up*`Qo0TOD{c$(=2t<6`@!_G#9wRvJcoYS{WeSo^DEtUw z3c_++uX4rPTX+ML9>o_db#D1`U~J;Kj?neT72jfv$qVvmbZS9$v;C74P!G8<_McNvQ1h{OvgiU*h>C z)u#Tq;v2|(-CV3YmUo~u8Ko77%2Q1!^R1;$QJLYpkU=F7QPpB9e-M`&R7NX@4G`t7 zJ5M8D1{P^g%o=s|Moa@h``uwk^)k2%MBGCeGni26p%OIZB zJpt1{KTpjMaWg-}&HO@rv+-Vgkv{at+sIBJFw?@BW2K_l$zk=<3e}eeuc)Z11(&K? zAS#$p5f=S^n0j3CZzKGv&x1dQxq<%g_!IAjPv9TR{N13nP?WqjN?tg$P_|kq`$~z1 z@4`mu1)|b-7HYJ$QlKsc>QeQw{Y>9__Pql&+K4`U2}IOAg_;|lHx^#)t2eJXP!=&L z1tQ8gq4dI{-b{~pwYb2>QK$4Zs01Ra1g4UJBK?o{z@IW?3Le#%KvZKwL0CWNnDpg} z_i*8@V=2B6LdT~3>^TTu;`xhCL0_);j$yuzM#17hfo7*`RUpb`f>7k^lpP$XuyaqR z5{Rg#G8Hc-ZxDURCj{yEWOA~JTD3Xf4btknE5)^ooW|E;%8`3 zAj;((p~zQv^*IOmC~i;*L{#s)q-yFwRl=YWh^RghDhKDGzXL@{gF+ypSi=;>OVAof zF|2_U)k=)zfjeFi(%2@h2MyX^Gd{h$Lm&E6+Tbh@asGlagB1#mS>JLJ4cglovM)#W z=LYE>Rq(>HU?3k&ATZE&Fqh)Kv@5WP<{Rof->1eXf>RN`XIubUHht(%SwnDvi0dB4 z3|1&4_z_Mb!GB~(;zbg2Sxz>m8q1G&nvX#7?!TLw;AT}fG$O}QP}({0@L=1W-rocw z^5e{(`x`BX;ZYRyR`9652}DH{3c{i@R_bxZ`?T=ZQ50WNsXc#t4#JmsPE$+`OlO*N zI$tQ_sbnU;v!1~F67zN|Qb;Qj;g!o)EM7>SbD+eoa9xuEk*=g-ag!Pt#wRM%xExq(W#iRI=hU~HkMD-?oi6`B{q8?X# z|JM293-W7_UxWPGQ^`+x&}B&Kag~o7B2Vy>ig{|q(20tL`s8|Nd&Uz5Pm*-fXABJs z1gSJHrmR%fQ!Bg6M=N2)wtRRC^e9SdpMp<%7KrpLl!QgsH>t-}9z`V&4SfN5Xvjl* zsyv84U1*^mS9z4w^AH>*JJq0IQ<(&!8Wh?2l8h(t_5UAbPXzz*Psk&H^Kdg4(##P> zatj~Ew&=Q2j{5S&p8-bg2}C8TD$-T()++pN(#oKH6}O^)bb*%fC~B%Vp`m&ci28?6 z6PDw~Jy-dJIB8e$CGFZ}5s0)ae2M1)hmyPE`@GHSL(wqy z?G#1dD;iojS8YA70eRI^$6M9;b1okKWAR4O1kZN9l7D#h>!3V${AsBtd_s zs)SuxC2#uRSdD#jRFqWXf=}`YM7>NX39Fey$zA0!MDhS8J&G@B)GmiWqy^ziJR_dK zccji2qb_839CcM5kC&bJTb_`|ILyiDzMl61(C%OXq9%lN9gA z%S?RfMmP1i;%yUcI{HZ+1fS!bI%#!7lLAq`uZUDtytOLIPa0(RlN2?zP@$m~DiGNL zp(ZT8a}3|~xXNdVlU5a9(yCn+fvDbuFY(NDD7h=X@9KO}7Ud^Fe&r{rd>$`9<&pJ- zd_EKnyYQ2E6@`k8r-q?nfk?xvL_!(~;KMkM1d5W{r{I&E0+F7DlCb(YNare#wNBbq zd`Y`@IRql@3SZ(m=m~tk()m8>f2lkkFFWyf^uJumzC|=EZ8y76hCTYDY7Zi7A%U>ca$ge?u&B2FJ`8-~J%7cCaPd%>W|3NfNJ`DLUhwVCkL6PCRwxMBxNW&*Z zLTbCeJ8M@_QvC})$te)&Stto>l7n=v@;Kw9UB#EQYnMYH(ys6&p3|Se_q@&*Z5OgT zYF6d(c-e{ntS97=!+A*j1p7zpBZl(W_{kl{M=`Wq`p}=}49yEfn*WP2gB1$Nai5bY z4Do;=d;Fx0#7}Az96u2ZQmR0dg$CQM?~v*w0mAx}sy}rNp#&ldT4ndp{An|4r_#CD zw|>~1Q8dvvzDQj~MUB87E-JzJ^p5V{QBOUCvp~ezmoXbD6#6EL(wt01F2@kctv$<- z$=eTxl!7npLRR2Jcei9pfHt)1tP;;Ocii{?9ZFfmgF*-$)byx1;pvZ{l5PYdc`7kK z?cYbn>Iwl!uj_2->jk5z0uk$)j2W!3sF?LQiHg~PA$!esk(zzJ;F=W-l3pOnqA_!E z3{wt6s(Kn4LJ33^Egzu>QRw(?WKal16j4lJ-?8mE*E;1s zp#Px2{$t1XpA#Q6#i-v$a#1!$u~=C5#dDMCFcVh`cuoLqifqC5#<55dZ)8r?DZ$Am&NEJDwquqCZ1{fCez+N(!k$ zElCa8)IC5@@MAHur0sc*-Hry{f&Ir>3#P>zs&Q;fL_Jd@yU#U(e;;|c>7s|r5vYQj zAPudQ>3{Ch4~#}Jp2d1Z5{HC%qwJfFvVXx)lfcSaW#{b)g z=*t*7kxomTq|;K}OQ)rYLBSduJZwaQQ^&O@{3|8S1$W1Xq$F7@{6|nIRe%s$%eS(;5NF z;j}P7R~WJY!j(68+X2v3hI#ir8!<;-k$MO3tx|ZFq!Tu}bxyWytXyIC{)X?TEniEKQiyuhR zQmEI1Hx`n|ZkHBnH6EfE;`G*dr2{YVTN*R$@+(;$C%@ev6*&}5e*TXClQiNjll+N> z{4{s4%WsDe8Ufxor?-y$9O3asIiy71cxf+@(#hjWWcTAmGDq%@qnpAxQ`?^IQd07l zS_Td1KW^B-IP}tl{v!t@4GxR!+A?V1(EelNtYiBRvyKakl(D|R5#Le2q?MU2^O|I& zDlI-v^0|iOHiOQw)Q*ym7SW$tZfaTTA-Na0%t>M7|DMIz#N!o)s8+WyM7*{cyj1-X zJz;ksAm8&kV^cjXG3Xpo97{WFG-~82Ye;FFc#?E)yUfKgM}psFERuOSLsY`g3`$k5 z$JL^%a;etxIJyrx7t+VaMt=Cmct{`6LmXOeLV?Xv2}o2_=v6LRDV|b9Dy+ST^o|Ps zI8oOcqHb`>U#c!Hdi1yfVU_}ARZ5{8N!G7i@}eK(bgas!m&`FADr*@2@;?PBpEN;F zL3H^w;h2|DKKe;z-NmJ%VK<8*GIHb^IhT}Z9lHT}qW@*E%HJyXxy*@jqvs&Mr4rkR zFIBF`wF)T{HDDj}E}4+9`^glA