From 361cf93562df61e7312e551359417a724956f245 Mon Sep 17 00:00:00 2001
From: Franzz
", $this->asMessageStack[$sType]); - break; - } - $this->asMessageStack[$sType] = array(); - return $oMessageStack; - } - - function __destruct() - { - $sErrorStack = $this->getCleanErrorStack(); - - switch($this->iExtractMode) - { - case self::MODE_TEXT: - echo $sErrorStack; - break; - case self::MODE_ARRAY: - if(count($sErrorStack)>0) - { - pre($sErrorStack, 'Error Stack'); - } - break; - case self::MODE_FILE: - if($sErrorStack!='') - { - @file_put_contents('log.html', '
'.date('r')."
".$sErrorStack.'
', FILE_APPEND); - } - break; - } - } -} - -class Session extends PhpObject -{ - private $iUserId; - private $sLogin; - private $sToken; - private $sPostToken; - - private $oMySql; - - const SESSION_ID_USER = 'id_user'; - const SESSION_USER = 'user'; - const SESSION_TOKEN = 'token'; - const SESSION_POST_TOKEN = 'post_token'; - - public function __construct($oMySql) - { - parent::__construct(); - $this->iUserId = $this->sLogin = $this->sToken = $this->sPostToken = false; - $this->oMySql = $oMySql; - $this->syncSession(); - } - - public function getUserId() - { - return $this->iUserId; - } - - private function syncSession() - { - if(isset($_SESSION[self::SESSION_ID_USER])) - { - $this->iUserId = $_SESSION[self::SESSION_ID_USER]; - } - if(isset($_SESSION[self::SESSION_USER])) - { - $this->sLogin = $_SESSION[self::SESSION_USER]; - } - if(isset($_SESSION[self::SESSION_TOKEN])) - { - $this->sToken = $_SESSION[self::SESSION_TOKEN]; - } - if(isset($_SESSION[self::SESSION_POST_TOKEN])) - { - $this->sPostToken = $_SESSION[self::SESSION_POST_TOKEN]; - } - } - - private function setSession($iUserId, $sLogin) - { - $_SESSION[self::SESSION_ID_USER] = $iUserId; - $_SESSION[self::SESSION_USER] = $sLogin; - - //Token - $sToken = $this->createToken(); - $_SESSION[self::SESSION_TOKEN] = $sToken; - $this->setTokenCookie($sToken); - - $this->syncSession(); - } - - public function register($asData) - { - $sLogin = strtolower($asData['user']); - $sPass = $asData['pass']; - - if($sLogin=='' || $sPass=='') - { - $this->addError('Empty mandatory fields (Nickname or password)'); - } - elseif(htmlspecialchars($sLogin, ENT_QUOTES)!=$sLogin) - { - $this->addError('Nickname: HTML characters are forbidden'); - } - elseif($this->oMySql->selectRow(MySqlManager::USERS_TABLE, array('user'=>$sLogin))) - { - $this->addError('Nickname: This is already a user called by that name, choose a different one'); - } - else - { - $asData['pass'] = self::encryptPassword($sPass); - $iUserId = $this->oMySql->insertRow(MySqlManager::USERS_TABLE, $asData); - return $this->logMeIn($sLogin, $sPass); - } - return false; - } - - public function logMeIn($sLogin, $sPass) - { - $bResult = false; - $asUser = $this->oMySql->selectRow(MySqlManager::USERS_TABLE, array('user'=>$sLogin)); - if(!$asUser) - { - $this->addError('Utilisateur inconnu'); - } - elseif(!$this->checkPassword($sPass, $asUser['pass'])) - { - $this->addError('mot de pass incorrect'); - } - else - { - $this->setSession($asUser[MySqlManager::getId(MySqlManager::USERS_TABLE)], $sLogin); - $bResult = true; - } - return $bResult; - } - - public function isLogguedIn() - { - $bLogguedIn = false; - if($this->iUserId && $this->sLogin && $this->sToken) - { - //check if token is set and valid - if($this->checkToken()) - { - //Check if user got a actual account in the database - $bLogguedIn = $this->checkAccount($this->sLogin, $this->iUserId); - } - else - { - $this->addError('Authentication problem, please sign in again'); - } - } - return $bLogguedIn; - } - - private function checkAccount($sUserName, $iUserId=0) - { - $asConstraints = array('user'=>$sUserName); - if($iUserId>0) - { - $asConstraints[MySqlManager::getId(MySqlManager::USERS_TABLE)] = $iUserId; - } - return $this->oMySql->selectValue(MySqlManager::USERS_TABLE, 'COUNT(1)', $asConstraints); - } - - public function logMeOut() - { - $_SESSION = array(); - $this->setTokenCookie('', -1); - return session_destroy(); - } - - private static function encryptPassword($sPass) - { - $sRandomText = 'F_RA-1H"2{bvj)5f?0sd3r#fP,K]U|w}hGiN@(sZ.sDe!7*x/:Mq+&'; - for($iIndex=0; $iIndex < strlen($sPass); $iIndex++) - { - $sPass[$iIndex] = $sRandomText[$iIndex%strlen($sRandomText)] ^ $sPass[$iIndex]; - } - return md5($sPass); - } - - private static function createToken() - { - return self::encryptPassword( $_SERVER['HTTP_USER_AGENT']. - $_SERVER['REMOTE_ADDR']. - $_SERVER['REQUEST_TIME']. - strstr(microtime(), ' ', true). - $_SERVER['SERVER_SIGNATURE']. - $_SERVER['SERVER_ADMIN']); - } - - //Session Token - - private static function setTokenCookie($sToken, $iTime=1) - { - setcookie(self::SESSION_TOKEN, $sToken, time()+60*60*24*$iTime); - $_COOKIE[self::SESSION_TOKEN] = $sToken; - } - - private function checkToken() - { - return ($this->sToken && array_key_exists(self::SESSION_TOKEN, $_COOKIE) && $_COOKIE[self::SESSION_TOKEN] == $this->sToken); - } - - //Post Token - - private function refreshPostToken() - { - $this->sPostToken = self::createToken(); - $_SESSION[self::SESSION_POST_TOKEN] = $this->sPostToken; - } - - public function getNewPostToken() - { - $this->refreshPostToken(); - return $this->sPostToken; - } - - public function checkPostToken($sPostToken) - { - return ($this->sPostToken && $sPostToken!='' && $sPostToken == $this->sPostToken); - } - - private static function checkPassword($sClearPass, $sEncodedPass) - { - return self::encryptPassword($sClearPass) == $sEncodedPass; - } -} - -class Mask extends PhpObject -{ - public $sMaskName; - public $sFilePath; - private $sMask; - private $asTags; - private $asPartsSource; - private $aoInstances; - - const MASK_FOLDER = 'mask/'; - const START_TAG = 'START'; - const END_TAG = 'END'; - const TAG_MARK = '#'; - - public function __construct($sFileName='') - { - //init - parent::__construct(); - $this->sMaskName = ''; - $this->sFilePath = ''; - $this->sMask = ''; - $this->asTags = array(); - $this->asPartsSource = array(); - $this->aoInstances = array(); - $this->sFilePath = ''; - - //load file - if($sFileName!='') - { - $this->initFile($sFileName); - } - } - - public function initFile($sFileName) - { - $sFilePath = self::MASK_FOLDER.$sFileName.'.html'; - if(file_exists($sFilePath)) - { - $this->sFilePath = $sFilePath; - $sSource = file_get_contents($this->sFilePath); - $this->initMask($sFileName, $sSource); - } - else - { - $this->addError('Fichier introuvable à l\'adresse : '.$sFilePath); - } - } - - public function initFileFromString($sSource, $sPartName='', $iInstanceNb=0) - { - $this->initMask($sPartName.' (from row) '.$iInstanceNb, $sSource); - } - - private function initMask($sMaskName, $sSource) - { - $this->sMaskName = $sMaskName; - $this->sMask = $sSource; - $this->setParts(); - } - - private function setParts() - { - while(preg_match('/\<\!-- \[PART\] (?PQ}Rk#`?ecWh=5)Qo%ecOhOjW``91c~bm_KA z&^_p%yvtd6)y+4At}nSH{&4x|)2=v!syWB!V( ztjYUN{o`Z>sB+6S4{`&JH$OBob}NgVw+m3&llif3#tRQQoXC@R_Z1M2X`;8e;efw@ zfcPAlbR8@hu5MFBxd)xTTi9tLfPdexS D&&&p1Vg_ zI?;)}#E^(sQ{c8gD93alq{dM;`?w8tq>PlVDw;9iH>*Z#w{>R&K$UY*cOMNG@L}(n z-`L^5K19B0hB}2cSj$J9+8pyasKXw*72(djJS~ &uJg3=tsJieCy%I-B)0Z9 zX{NarON7IDb5=zP9PSq&1h~Z1O9k5NFoNU*LhAXw`GP)EV!lLzdULNu jUhcw~A%SjE_D6ol1`S5 ujR!_K;ux}fJDuN*nyH;aZo%DgP$NvMq!)qY}g zI`2k%20~jl%7RPgyS$3e*iH=ma`vz4jIo*Dl4*e?EG@d{r~A4b?dq_&yX#Bv$v{8_ zD%p|sD8}c)5F@NsHRBG+U9Vsi2%BGYZGWPPNNAT~`n;ys!$4VQ11<*X%D{H5+#$?+ zpbT~+L~A8q4mGQs46K?ScpJ8bFbx9<;8ioH0)?RrAYK7d%%Wqs1Mgm<6g+_wQG^2z zn;TFXj|NnfCL|ZIa}h_kV#2^xX6Hdl#JHIle-_8o6ZkkS`rbeWQ@dtYoHFOmG%^1u z{NT=Ka&&jUHWGtEQ(SEG?idcpPfUw(a}U7V0k77}F-IrL9QXv @#2Y+e~@GuWA8gB6nVCfgv4TUE<5}gPI?Uh3z39^U1K9; zr@~$Y4&gi)QWn(I#ls~pl@X^$zo?1-*6;4 W%Z8 z3DLK**tUb6@|9&(c&_oA7F1nuh7Yo8!h{yIhpZK*whAuZC>FDXO8435y0(#-w|OXp z=n$-PX%x*l;wh3M6t7ngx)(z#dKd$T;&hQYOjADWE^KgbVqq7$h>3K2C>h*Gy)(!j zRQczZQ8AV2;d;_|6+)2)EjrelM6bh_ysZTOpJH%}oJTXk15l~H1^mLUfeVs+k7gUa zhM;(~sCj;#5clfLK(5ycqz1(XcIrQ}zlIhXPQ@!TEq%fzvU*dq@@N@O*wc6KMF)nl z_-0&54Ct}x$~^JIcUU!VyJbveZ8^#%kil3+Wh96E9(U#{cv7NH#_2ny@s>?{&3;|m z5-WBW&ZOhDZ@!HW+Wr7s(3|l|mt)6nMO^)CVm@^cFaT0aA7U_uUSGJ<4G<5TBD+?$ zOpe0P>^IHez8LQMhD}wSap1KZO3wZevG}AwpNiS+d%B=#D(6wz4RJB){s3nKbtcAI z-ql=AAn200u(3ii;(bT~s++nye!{P=PUd~rcf6N4^zJf*smgL5*?X(5z5<`g%N5L7 zk=TaVX>db%y#b+T-8Qf0WYC1)*f;i>?IY$#0lLWOCBAE{v4N33lpc@mH9xGZtN-*H z!@K5b8>oPkZDPDhK+I+br7}4cgKXi|??GXTlZBFA!MNyzepdpy#QyX$LgP*V)pS3= z5BbMukl)?C_G570=l41>DAX_!*bQ)uTT+kA@SAA^+ur4lVr63FjFVmZz1fFA+Ag+{ zaw*2FC8A+~7ft{|E#fjR_Tl%YQ!GiNPqc!Jd}6p8WkIK-kXlShJo0mq*UZ%q{O3_e zdYm=v6~9wdzRJ^l7+c}uclc#c3su3eArt_&>F~RG9IfZwnba8UroGd!!7mlvche1z zKF@PB&iE(eNRNpOQxf;-QmfOl@91UaB4%%=h5i|x6;0Q|E0mbH>FwEDqa3auC^pJ` z`#oQy@t+%pw)Q8+YAyFWzb0VYu$||t7p|bI;EPUvdqT_y3enU>cl(R?gA}AY!IF&Z zV{V%NvJ>@Qb^Gnb{gk;abJ&4!v++h9QdC^EJL$WWGuVB&FoZ3Eo@RAMW**F2DE{gx zkNA_ntA1I3ISbpPr(SKQb-R_?;Zc9noRwxBayKI83q>ZCqc`egXnpsV8cZi^ZHxiv zS -Tcls&L*hqA|PGZV566DZ@(7e;n#b=lkz3Y5+!Ou4<2e{ zNKy&)uZ@1+CBkQ;F@2IYkzDbvC+6e2ebVsGxQrGcaAZi`>TLoC+eS`tmP{m*0v>OK z;CyxJ1}{Uh4cw2dr4Eg8v n)h56x9}`=sU-AUd=S!pZ(%j`BnKN+o zIqZ`6OQ&c-Clo6jzCTKQ_AC6Ewjtt4wguFshTvV3o~|?F{ZXatahf-8A?bPEpz#`& z9is;{cq&vDNEVdV=e8!V(xo )h635%2{2eTTh|nu zp#+AV`&?S&SPaS`CvzH2g!gt$G4mk|c&Fzq7y-Q#uxDV`^c(gxe4Y&=gn%SB7QLO_ zG>Vgl{{md&mX@XLvP*1$C60AOOedy1O#kBbr*Ypaz $b(dCtmb9&U}@pC o5 z)qOlDwVC;Rc%5{+bap%8-i($YW%7{Ud2 #Q4}}{2Bb@s_{it6zc0FDj~-x) z>dT+Kv7ij-z (U%0}2p6`)eI&nUT;AP_>Q;bl|aS0rb zatKt+WfKwgLIn?x?)tAgVRB~v-Cajlh%#duP4#d-$q2P-$N*wwUR~sa)g@eqxyi?G zFG%y@ +Ejh tt>*64<89Ca<8|F zhs0F`gIG@i&ftG_L!c_z`0|36GgmP-5!5$%qRH!NsZpIq4xr-M!VG7hRdPRq*v(B| z3j=kTU02hKQ)>7yUTd3g 611R zG5+znoondD3Q#!~KII$js(p^Q^?~JEdW!Hg4Uh3U|G7rNf Ars9D|&X z2DT?rU^-!~O8jycJH{@cF8VLvS!}k%y4|EkWAN3nV-%ln8I2_dc(G=z@aLs86RhCC z?!C;oZ--f3tR@)vML>9t1sjt4aqxO;TK@G)+kaJ{*sh9Q6gG0bx{DH`h5l#qGV#{0 z#QX7?Ey$v0kcof3Ye +A+|2!&svlUUVVx?zwoT#s)1MP4d Pt&rp)Ivg&$yC&+T>F*}C8TJF+7*MDYtVd&|7lLG5Hr=z&h zYn>C1k6Y7-0_banm_(~TDncxkF<9@>_M{1k_+A>Tj+@Z)bXeRPkTm^Bo*ps#Y$A!% zvAbCz{!+L@L~MSqst*i?y@Z?vRjoJ}(yAZJW9B& GOcw6^*_ul$iWM@thA(T}Obx&V8s}>^U@%&h;Tm_Q_k%X1_Wou^Daq zqg*tDO8IcLD!^K?-*d{x;NGlBJl}mVaw2lV{x~296l*q*I9x4-=0NQ_Ii>0I?{Wyw znzCQ~`{=PlB2LJHdRr#5iD`a;Z05&+Fx;_8PwDv|v|--G!ayMYp9PCzMl)uLJc961 zJb4G5W7>JCUp4rT`^E8V3*ed~K+){gsxAPCO{e_@Y*amKgF;3_KtNY`lOofKI>}im z4o}{$Dsv|H*A3qCkeNH>-_RfGEvOuYg>VzUgzmeqaC3stn{lm8I$OH`>#yO_$ZP*; zfcr6+7#+>u)T1~UimmY${~RAjmkwq%Z{Dk4j^G8Ej{F6@^$j^ePTL)6k6B;zQa#;Z zeMaXo_2^#TzPH}}F$v|yeJ-9<*8CFQFx5Q`a1?^WYW{f=So=ASbDQkJQUgUG;<+-1 zgPqPy->GYKVTCb$Lr-nMzgG@~L+wEf`9-&s&=oeM#!L| ;q`yQ(@gZ1RrLIx0Krr^2BRPTSj5=Ci2SF@P17d1=qpGaqtu?5F36=aW_aIVPse z^em&WSGmdCF6_Yv_bPPI8y&_O%Yrs)R(GBRpaEkRcwH(4IYYkVnU{{;Wn?*>oI#WH z{q?IwfEB6CY<*logjSU8IlVjVG&f&o1$v#-sTkUZxDczVW+DmfcVKZIiB5}+*Gnz> z6mp7RJAi(8TFQhj>%asXDiB~#PNIC7>BZ#ZvTH$KFBBDYW_#qcVEY|X?d^2`y&PvY z$d_Q(efV57inLWp!RR!)omA>#eEUiAy%B*yYrK_v0w~RK35pWT+LV?Zs Y3%D?1_T@pk)eH4UmqTHvnR&I+7~ynL3BXydhfU_Gs!2|| za#GncRAWU}=NIUP8fcGRT)&-hr>UDm39ni0LCdn7xx32g0*&X53J^R6%XixHX_n6| z@MaTXudWK4h%Vqm`p!lmCU~vN(H3ZLVx=*>VsK`0ApYJ=gLT`Ud_(AQ5Bmh#?a zL6w#7;=mCbx;w_r92JR+4!JcPF#dIQ%Sq!V;#_H(uB9lM^9a~ATKpZ&iKN|r3Soqr zb)f;(IbfYeTus}S{TF?tQEG`*D{VL_DAJrBA6ioV>{?@2*NLO3ay_P>j0rSh-rKeJ zsW3POdZ8!>ktRR|sXvSS_b2q-u(J#|J0?M$CgYyCii0idJ;?2XfFJ9cWWH~QZ1#E# zd}%XoMIuD(;T%xnx6tT%}XCv}_}}h@51E31vQturjuOu+mzrjxEP(J7YQ}O&5t` zqcA?0l_3om|G8cquN+O{jP_Y&sQpLDm+7FHzaKlF1GJtRqI(rbZ}RST(KC}%xOalx zPaZHj^9q20m2KHiaOszBTWsEX5QCrZ0Hhq5qy;JV>iI2AOp)?x9Zlu 8W_rHjboWR{0@PR|G;d7coofC1*<1v~!bOWis@Mb0=3 zpzp@mVCD(>-p%l7#G3)BPkz3yGUzGf`tM6WhS<3u(M+4jb{1bpecr-+;)^h@EC`le zT{|cZ7hvZ-eU46TsGHD8eg2_$nbaclF9^-SoU8w^8h}^Pw6(!JC (guZY!t7@%~3Og8E16j)QWrE0_2Qy3{j9* z+0Sp!wHZiZ 0l{cwU`Qv&$jQWlc{=2cW0Cb%Dba{OlbTCt+PsGJ-)XwU_A#twvLh zbgOD2ZSVAPQgx-4M$8y#g*Rkk5_nZ8FH?Hb<>9@R;{(3Grb1_zsh-zxCvMe+GDy-v zUx2)Rw9n<8O_z;CfY#N}ty?9?pP#u_`2Ijhs)zp%p+=;pHnM>|T~Zw&y@0(EoDKfu z9j3^Pr;%n(B{ajwhkf>I$&@8~(S$x-_n7+~U4+V=QY%iGudPx)eyx~Nui;#f32n|K zH-}nZ7;1`f!hz5Y>z#Un7YS>*JT9?iZ_89%FOKlst}{PZ(jrv3AN;~55{8Fq`QrJY zGF=_5uhKgliO&Ug3-W9rnNKs9px9rEa|-*VAz|D(*WYvHFTi?87zrR2PSCc8Ki-HD ze!gX&-dW}&_8u8mzWczyuh@A{h-#to`cD$R9dNHrG=Hphmvto?ai;%76nRV%jG2=# zoedK*);c2?Q=m5RW6KL9M-A6i#*bY1IEzhEQR3yUV=4zH %)N?bqq!i4vpPj-Y?^%09v;pyQAQMJ0j1C zxHD)D!8KCNr^%YV8fkp@LD=&chb7h@vfqI)NFfL|@9RIM%pt(a$Dgun0chyWCA{3d zqA(@XA?8NF3{bXhoSn+KvORkrd{)n1MD921axzK7>>q(un=)r`Jr7d##V_8;LwqaB zTk`3e3b!66@3%D}GiD-RUu!g~Kz`%I7<&&4M=hOB3uR6>VtWe2b<`U&@aFs1co^g` z!_9DaGCO+ih^yogl+lFP5_b9!5%IhDUMvc0(;FD^17oGO!>?Y|>(a$d <70uJB^ByH-1L;)Og1mOwGnWvD{ktGO_cU7U%Jc(+Q-V?wkDy1RL6F#T0li)z z0AZ`^uU~p{0}y*i_0?fPnmR?^^QKBiQ07C3i`R$B^KnVvQkp!C2d`8XTz=q`c^{9N z=aoO6A$9{X(>f~eb)c9rBZ}PNA#)1_J}MhqTAMmjm3?ee6{ZjPkV>b{yMa(xF-H|$ zD;MuShm-{kPtw(V) JstDBTpER=@P)2sD~NYt0Gyv_42zj 9uA0y@uMRl|B1eo_l;RIVy5IC1c<>*m!Xe$ z0t1y=Q1xbWqj|uq;(r11HE8kEWDWRr3x|cs!^{}}py}j!H jmi0Ptd((U|LN})rjn=#K=`}c1-Xpm(a*Q(u~8~w_XIHEP ~w#R(Yla6; F4Av*p;Ds0B(b7L zqR@E#9@;2SgqbtWKta1b2U_M#{lXl>WNP sREGy 6XC^|2za)^Ealb;OJkurPFnk9doCCYPF_a8o64 zA8eD?RpJ-f6E@tjJ01`eTh2 D9UGi-D*XZXi}?&;(dYQ_n4 zHoi+^cw^tZ+ytc1fweyG>K7^KTb?%id|AxMla}j1Y*_Mw5(0wBoyN)8_T_h;`u(V) zc*@3oF~)Ben#cW)c%mQygW$mB#;yxc6M3-qjpBBt<1HPB@Z%53I(Apfⅇdb^&77 z`vbD8Q(5fa`cjj27C|Ans!)T~WnCA9l76oJkob{4m1Jfqw&Vu9k7Bv!f&}b6oAvIB zzL7kYDPbiutx^CgM%9;_B_v(RYj^qpq z^{(jGi4>QXUUe`<{c?~#BfJLRltL4;lwp;gxKS?QqR%OIerC-Qbn%H%78j|VIDx9C z!1YU<6v)6xJ^&BgpMz=ZKp(lu6ESxv6uzj_LHI`{njZ0cR9zYdEHy57{XG{SkL|J75L+E#J{ZRqSmgqq?Od0O>A%}gsPFR=nmi|MVQ z>2}QNm}jQ$6n_w`Z+cB3(qF?Z8-O4x%!K=e*dsZnuDr_=Pk)h|q7OWkEB>}ZFlaTA zPcn+ExqQeCB6<v(SVj@(1Ws)+_@|JCHpDd)z( zASqTGeR7`n!wAis-4nlvb`ziKcXE%`KRjj}^L&Rf%owq&{{y@;3XY38*u>DRoEoUo zc3Eo)Ij Wd{MdOS2B!nF9ex`(VUGYUc2%4 ihm6eqJE z!}QQ14mjY@g0YW!v%aiiSFx&)wMm;TgdV46R Bp=F0l@CMv$yVe0>j#L9oy#=|ePl5yveF(`T^;`eSw$XnF zvp`vg4`*bYlW76L7ICGH+V@KyV3!C;tDKt#lKO1rPv&XJ>1QXdYndiDzhjx?G zKB^pxVjP}kl#q+p|0 zZ--2E(WyayY+c&SvK~fzz4ZJdH?jV6DD>1MiJ6LB@esC}Z|onY4W;A ~FQf&69*$SZ&YTIpG Ducu 2 zpDYK5>l9#0X>)O?gOoIEf^xp1^Pdz3WK*oDzLlPeQCCy1ULDUYw6QsIXjc~nS2goM z%qa#M<8sK_J6I*RYfc_PDjT~TWNPkgBZ0*RD&C2S%E4c23cdombJLM?;S?i<#@SJ+ z^wOKV&IW>ZXjudK7kOZf&zE=VLRHxuY`=(*VeOm{n%rgfwYf(FHke}Zg~umS-!YF% z3*4bCyg3Oyq~ROZig#}M)>@|>gt*0^@JrOKhGu1DD5DtA&> t0B S7KF4V00l{o)AEFc>(`Ik=PYXwrt?5 zxg@R6Y@7~bN>ym)$AE3~cs)-mL0>m2LgE#4mLESpzDQtv`m^aU$-)T& *2l3CTcb$O#e {6%Rt$NJ-B%POXFS&QOtoi;k zpckHZOF#64u8@bl@QxWM!?G4+auf5#Ag4FIQ*wI5rpm@%R^C7ZXErC0!7Yu9m6CQ8 zNDeY?N`4HBMyt#cft%8n4vK!k2iF>yL!JXiC4FLpnD(<*0ujk6R-6d&ec-xjk7M>2 zL<8dUmFPI;m0_Q-=!@*+fi>cX$9mdMDVDJ%fh)ZBsU))j>3{M6{*FNJS89Q)(`K)4 z$SUn;|9-vsfn%GO_`ccNNI091Lso)6s>~oo$sK0b)Yigh5TK8PX?@>Ae_SB8?g}zW z5dKWmv!4Kpv)>GZa@*QT=!?oDDCPw+VLS~4IP*Ko&?KHZ@pC{*LH_A84`Tsf6{g6m zFcrrH2A$ie%u|xZz(W$M60bW==c2^vG`dxW^O4*XXypCotyBPyLMYQW1{rX}rb3?` z+-DWH%Pt?^bp&j^* c_zXN13o3%-nfy;l7W#20K3jgq8Rv zPsvpby}NZ#pY~hcH3>REWo!`jUYwH# R|zAKq~6;!4EJL(O1MNgcQ?-^tvH=$s>^zNGB-7CTPAP0f<&$x1eQaASo_K)IN zfs52!^E6yXmG~+Ave|&3PrAQgLNrgzlt%kzu4Q`~;nb@_dgQj3VDlX==(`C`5@DFF z8$;jLtMU{olX*70l45tK?8^w#@MnjWV|fLDv^EX)+Z;*bCd_aB-G*qQm->W;UBES! zLg!>p$9o_FC?h{b2)W3wEQc%`-0Vx}Jv{RG+oV(Uns&c#2 D(PPCh`g3-n~6xZKT3B%QQrzAlfD=$!47tk5Al2KwYCN0xo$aCJ* zxg+ph-JTv|%F`IYXBoA|KZ|Zg9V%uO+n4UdO7~rw2f+yWfFnWN8^T;y@6<3`@=!*o zp3(a~=Odn-2R$R4gz5fcANY&qQ%W2^hWABm2>$}oBFDqTUeR}?Yf;xU)x;TcqmV=^ zpNzI!l8wpEg=oA}P9< zgwq#is3=G-M21kA+l)ci_GlqJ*?jW8eXrT-iIm-sca*iO1nc@)Zl+rU60)Q3^=&cG zKAXo*Z`+FUXg;$YyXZT6Y921b3x_Yd6g)g!ozH5aK9J*-|4X_q*oP!gaFVmBy;6 zoR*vTDdW{qFNOTA_eI-LEwU@x enUd`?|E#H2O$}j2D zD>s+Fb1`?xX-^O-wi^4M{pXNrF|?UC-o_`pNo^pf>H0*YA19{~Z_#dHL}NQ$nC9|u zBs@DgmwvwgM45kZ@>53gz(!Tgz&VW JI3JP53oB$JDmlP>ypNkv Z%c&C!vCfjMe;whc4mTtF4sovZiFzzgrW$|lpqrTQNR~q#pC!dGBiZ7F<<8?6b zUgF`$#_t_}FJB6%69r$6kR(j@dy`&w!~Ha~{*Brlh-WMENymK7mXMpgi#5&6O0Aj~ zJ8<#rDk}$TQh|0g;`U_TefxHEf=x?@v{|EUMZJp#46!zFit}-QV*f}Lm()6I19tZ@ ze0>sQ%{-5gY2{vfcsdDW9OO)c3`zi9ncNNas>**F3gGGq8)be$GORx8hQ^}^FNxDt zfg0qF{VA}6Uzzw03HS}QhE&e8NKa#iP}Fj_jbefep^26=@(}u|$vAW2#mUi9ojkCP z^=3t|@%@ EJ@illc~P|Y2o1Qw(~11y$4ds=n0CwI4!<%2Ild8 zfr9(Y4dKP{Hp)*Q%Qm=)!iwJI9ytK8%qMb<`fD(ZY{y?~V@325eHDrR3K}H`Or$a+ z?Au%HYMj&B8#<@BNxu7|eR ggkRUF zHHOxi!&Kz>%`VeI?z399t{{^g9ACrzsbj4A+8J_}aJo#F;t!eS+5plG%~R8+Yxcd| zdn!%_yrB20AyAR;`Dl3W>hWY|9`C68GWs?*_Is&Jb)^v$Q_k-R5>uoNeWy!xg%&AD z#n*y0wpP3?et!H{2qHe72%1tJvC(7lu^?npEGN|o_5~*QQD-b~I(%}yU*)d#GPcc{ zeqq2rXdPTpvp-&cs>DI&cxwMNLGxwVH8YoV@6;TtBGjxSpZW5?HL919Ru8!^QYMYG z?XsiE9ljF}U)-LT5;J-a2)PawUd)%lBG-G33Vu0%iJj(b7=KECvr}7q*8pri(+|)y z*3Q1o1Bfv=7Y4yvqe}~>cjg_4T)GcvWJKk~7Y3DMIrMN>>SvS=WVg+Hw^7pOzj<%f z&Lf2bz1hdhX)+N7wH@&`K#kd3%uFVJ(E}XcyPAU0&L2&w$cl;B;}m%Et4!($%R_%^ z_p 4s@$X(fP&u0?vd)Rjfy>J?;*dVY%C~u}qR4i0z)R+p z2JXPn?nr6A!^rSZQXt)CtIB-FdD4dL5d^fRB(@F= AcH8avpFcVh4yp@o9A5aK(gIr|c4?cqIzJ=>1Cl6ka+TC0M z&OT2XyZN&IKsK$293l@)Oeo*2#iW$hmpn4NCM9FcAhR>BiY@hM(k^yLjlIY+qgTPj z*^moGYOVDLfKpp{%(OU-6qX4 jii+f_2Lg32lc9o16m#;B$Y`f zIak22y!DbOc}L)%`j>bENy1Jc*1kfN2ZSL=8J}H(TCYtf_fO+4gR#*LE0fnHI(#w2 z?)US_gM}TpU}G|Di!%2g#uqDWs6}Z~zpi9kv8f){BnPM9uFK03HuUkA)9SzFpnn0D z+dX&OhqyNOUDIsh1KE6ZrdI(#5``A2Qr#)ewnvFTaq6A!yJyO56I)PfRF4NCwQZ6e zU FfZ+a(>d3}W-R{@jX%FrX zZgX=avEQo>jGmL_eEdzj9fVjy&7xTw6=rUGrme$^7d+g3GXsaT&Z#~31-6QscRKzl z=DvcsF(ABur=9QmAg*4*UwyJs`sx?2cC`6Uw}IQ4j;asL2I^>hE&|<@e;v00t1<#X z=^}LuH&?L_iW9WmA3Gp}BKB}v1cy}S;klQ<;ecs0ZTMAP!R`c`hl}%gS+R~2D+eFj z{f@Odtr6;`s5yc83kaJ{JF^S}kOyxn%B|)OPk*gAXN>`2kW4)t@@RZdZZ3!1wQ#A- z+}WEwjhWve6&~nII2D}MjFLw(g0DDveuk;yr|5Pcen(91vaXt*@7>Qv>SHxFlx;^J zsE8QsFe2R3=3ZlbR$+Lg#zvV;iKn!v@(>Xq4GIprw>Va3f0_OY@%{U~!w Y^k^F(-W?m}l;7ZL0ZaM&mgoxN!;H<5jQv+|w$ uT!ZA(`CS z+m}1F)AO>8z-Z3;jEtI{DPX5H`1sv>o~Xt~D#ih@^gk#%_eZAt_m7WZXbv$o*%(`f zB&W1t47WL?VJJo2j)_~^D2FNc5XwDc4kgVHbE)vX%ROZC7{G^0H$2>dyOU(LAYWBZ3nX%<#GCjt>Z?B8g zbVUq0bk)Aj4k3O_- *8v$K2U|0RbdPbh~^$Xun`;x*%s` z7p;?1Cr5ifq^AC)gmGKcXT2Q-k}Z6QWUh+@UrM-d7gTLZeBZ JV&A)H5CMjm3#k}Un`UA}n!)PbnyL+sjd9Hw&;&!}6@_{^oPVg%!_6X-y z>@Vo5C&tY?tac5y=nTfGZ_ny}S2)0~r47A`;bR}4i>17(Q+xy4=sSat{CbD&V=p6W zMw{Os=hcb6(E45~8`H>GTLTet)w8izSqh}&Nw&9_;I_vMXna$+q-Lj%29Bbgf$s%T z{kr+r>Mk2mONjT;S7~vIx7N!8qYUph7k)sReab6Ex`3;zQf~?aX(Q}ZO$i^(!m7YY zn1vE &@HRd}r=JECS!6(J)^TO`&39$lOAHBR^xgaI(}J!LdDjlT6nsPu z5S*bT8fz#2VDhz)t!JJ?4hzml_Rc|CXHr@_25Ij!AECD5;LEFC*Z_^oPg$*ERuf-Q z63k>p*e6l`B;}7bMJH|`!>>cxBv7xqP1CezlRg+;@ggs)P~gVOzrXMfkvLMneKo)j zhxk3}+E@S=X*Nwo?&i-Ana>Dw )j%DJU>JCjI1++i>5tm;iZ z0G)+yuNG)BYi-IyjvzNRs=<&D6K36CK{nglJd#tJHyipSnaGxonbb#4hM!VlEPsRA zA1?e-sSckP%{HQ~5#^;EIoJlY3RPUST$$bScNKXoLGh2{goU)NagTAh{1iC5Fm6D8 zs$MirSa$FE_Y*QYky8H{(g)_6ye$JO+Nnz=`2dXrsVn*{r=)V8g>1M#ha*b0&utz0 zvQ}P=_~TAbkoU*UkN&7I*?SI)N3BRKxNQ6X(E25R5(L(GICNjJ_twEaPd8cr=S2WY zg>+tWfadWPSWVN>LS;p{c?TQ>j9CLmMeN$`6*!e^@|I(N6OKl+^tEsboa#T}vQnxH zxdm?>N-M=|HExD|eF!qXkNJ{8GNyHOTM?Y+^jhwrjr-)CkP(jfjvgQ)>Mg+s(KAn4 zzepl!(0aQ;CS!;CsScX0-y%$3!v1Tc84?9$HL*6IPDsU?_wK~6*iqa8A48VX7HEq3 z%PV&Kdpsg;)(vyPL=OR-+N^rKP%2dXX}(08=wvy$X^LU5Q}v99-~znJoRr)g{2*30 zb+;+{(yrW?AwtdEK{@mpr5KLtyzBV(xw#g}n=}3?W(*UbVeTE9uX0F&KKjLj){2SG z|1x4&24^4`=!moCwFr~Qbm1S%5hJT~f7)Lv_n1B*P^VKaGKxDdvW@2h>$)!AWiL4m zF=B??v|JSz1YErf`FjqrS?fpi@~JHl2(l&vq2ly&SfW=z!SmifvE%%(4AZI3mkP8q zBnA&0mIaB_#X0(?m0q=?Mo$~dSgvWV758L>-j=u1av)z8hx<>*<0|tte5Y8Z3A{7c zqN7Q)S$pNtYs0y*nJlv&^~QgTj~OgRD$`tGe#C>hPQ-}FMe{dTPcx||i%Jm=e- -I_c#q>`b90lG1_UZl{1i-*gQ%tz6yj|&{?0HxId#zHbf4O66 zK6V1HU)}>vsU O}he`mc*xx?eM4yF1_uWd39)jsMN$sLH~ZhBjn` zU9*%Jzj^0Civ`J>shku Dyu3jYB&nFs_jQwvv7=R}6iaV% z1v{%8JUvt8V`b{xw_cl@G8%=$VZjYUTjqoeWFOvClJ-<_?dSVgvj+H3up6^(a%0GR zy%S-qZK*h>-O#A_m!Zau+2jG^ylF9tdzJer&`tNy{=5h-Sn& HcQY(5Wb+ zcPhE>Z$vt?WewwPIG&d@YR%+iobEeCG ZLADK8lVz ue~N%dYlO{f|jxE8)l Bvo zH+3)qh N i50#k)OTU6~p&sG;;LwVNN=4>Y8d?i12lX7_@kqC|*Q zvg}cl@8PiRE=`w(SxT-)fcQdm;+ummar;s?6SNyX=;k1-ZuH0)TLx7`t3y2VCJKUA zjTI-w@67$`>x_@Cen)dSh)Xr{oPZF;ZLg2J{in9a7wpcro^L_YeEx|#w$z}!pE!Yo zWJe?x|Chsi-g7G|4!VFr _cVo`XqnCK?hw~r~IoljWY1O+> za@MZ5w;SiWV5Poz)6p}-CQ_P@!4!~d9kgM~FC zznvfKH`&J9j7=j{x)A%Kz7H_Z_y1X{ig469b`LZKy@;<2Fv$HVJK%bE(A{PyKUepM zS#e9Z&-K=Qd$9N|mmdAt$jh7nu1i%{Ife^bm?cx;xqjIZE~mkCW?+58oRz$4UTgBk zPz1%a@DTf`flf7a5)t54U*}*fOlH=LxJ~O6B7|kRQC6-lh37fiX}yXI*sNe5`{wlY zfHWq|w%DM?P{zr6tvtwTyJgqA$_VG=>?ptIvq0~xH`6@yUm*Vw;WTZU*-lO9HgaID zX_1>Ivp$kyNG~QYCVN%?^6)b>VS+4K`F+>U%KE0dZ}}K^Np=Djq@Zt@QZ_qp)&b-d z6^};4G-a*QAxQe`mS~VVIJt;GbZ7uBb2uEvBMlP`KW15-yWo&bk7WA5lUbI-oiqtl zHTc1&nc{r~o+X9rYt^He^d8F~4p?n5sWMjssRy+K )@`noT7 7Xru0%7$UmwBm}ef)dP;JN*lR#X$X|& fncY%AT_h1;Agd%=Hem>zy4s<$jt}mtMOYfJlvx^^hypA&(B>DBh_Y z5iDakR}tTR5Ym!eT&hp8I-7OdA4(;exfZT;n(%*lT~qH hNh0qg!x-T^3+QY0c*2hHAQ zMeb9n^Ef|*d^mv4YKKfa&$r_tnmy^-9-3FzGz %F3lc82@3-A_%bE+AiE&i zoPMdKQqp+0L#s>HZp5KzOW{~;{A3q^(K^H=e`Z94fPN6IqZPb;Hug7^&rAi-hIo+K zUtR+Hr@!f=3>=?-I97MsLrY4@e+RbuoLkPMxkr7sS^AeAFV0EwTJQ>dOlf-L=P_eF z{UJuRPq*^J@5fW=gdsIF@+HIR?VU~w7XznAN~7cH205!|4tc%Uk%HbJUSVQl5!>N_ zM7@yevQ`oQrUB*IN!u~Mx0hJ!#!;b-?K`pMyD)TY>`SYw5UTlXENfMj-68b3h^-#( zF4WUHjDOt7y~+Yq1|ALp&FG@Q06T&s$e@xm0tUas!kDtckSmV*d<2MWN)G>=sKj{? zaj^6>V=Dw3C1ciYy?` `|0QD hlw&)XN))-Rn!oVa6H3D$((_Bi!T0sZ_XTN ^W=&j=vbG4;K|FONRn* zJ s@G zHq`D`W)#2X4b?O;ju&+DG03@k(sjRmZmmx9U|UQ}@ViIm_YOQh)|{H08_rN@RTtdX zk22$yH}Lwj{cw`SePidg#zSd6gom!dgxJ*2tfmZ56kh$Cf}F9Gks=+jQ8QY-{ta}u z44KhTWhxZo;T^EDqX7rv1{1w*U2{{hX|KtnUHdQj5ovOH$ss+Mzc7&>j0(t`$N{%W z A)N^Ik@$V7dL#5YUT~^j;?R&(BE=YND{?p?t)r}X zBxVREt$mUN8YDa7SDdjdDuieF&xbh8)JF#*yyyz!&w_+(LBH9%PZckBH_c>~xu7me zrjCxzzP*3WAr2kavE}zn!3t>;DT!b5#06s`6*)--I@KVP7=f5l+)qax@B8#!4r%hK z0vj9OV;R?NU%K?W9Q=vvU+?3eJfEqmYG?WE4d_oor9vmT@(L-!>xO>~9+EfjjEqyp z=@jRT4m *)U-Mi#~dJa)l_hocfmA2#P%dCDG{~$&&%c4L@8L1d CY=;Chm)*VPKkK6jS-PSdA951UG9=hJNi(+lbb>sf025CcD3A&b_v|}s zFN `jMuEpwXZ1HG4#A*B%76Lnrp!ZI$N(5ZXu>v zGWsu5o6-PYdW|HL(7REQ^Fh5?4~B^8vmRZMo3Qf1hc+L*p?zH>CG+*(3kRlA(&pd( z$Enp7-@X2G73HgGv}yf)%BycW+R4>{QNcv4i8G_3YmNCu?}A8}tBWX5t8i4*Vb~SG ziR;EBKVJN9CGjb15~}Qn!>v~|>9d00m6X9=7?)G68YZ})!RQE!zT=1zI$XQo*o3)R zVJ+D@N6=RU>je?fAf;0#8ByO!HYxuxYU8Dznejz=?%;5+t$RcuAG15}?G0nUpU$G3 zW3upPXUOE3Sx ?c3+zrvkl*Ual~yb5Yk!&u2Ix z2Z84~O)y#%G8t^NyR~1`QmNd%%&(G`s>h_5r5rPizx*VHgxjbv|E_(y%_RV2(;o2` z4#kMRl1PaJF}DSyY6r9f`+u#Q?;pR>`%az%g|1hj_2++{Wsgni!p_fR#|Q$sYa7b< zWP$cyO=b3Nc}V}ik_K)dz8F8JU@n?LKX8pz3AQkPX{A{K$RZ^2ns>2`4Tz;iIKe3w z4bar(_GrtQoJF*-j?gNuYCjUQM<}{)q*j8Midk|4LOtkdB)$S5&YY(K05(q1z;4d_ z;;h}S9O6fobH!Qz9EfJq P{e916vHUQ0AnX17hjw(A *DcWBMoudREbqZ z*xJ_$Yh6p3*`=bY>dF0$doBejy =4&9jQR~#fe_f`t7 zMs6TyzfiBZSJI9)1*S_TPhL9AyVgPyNMHY$H-1q~C#Qz*L4eTH;9nT)HS80y2|box z*G+ZU-W-;DWyHgtu9W*d35TN`rCo@2LppZ~&kx3fXfAi|^yo`u;34MS$77zjKb8By z`pT~Gh+*HDZLZXx)eh~M3~p7k`sUm6k(uLOKkwl$%?}`1#(d@$;EBfZ;_3kl&y~gn zgr=EGS*6EC_M=_r^Kjmi{+FOi!CP;yO#nhb!AdO&_0I0rV`e}=Qo`MPWf>?fo_Uk1 z&Q19(|LIoYGKFm1ZpI0QEg2?+Siml+6ZGw+e58_DV+*Bqng0WIxmfSs8g?};Zh?$` zx?$I%AXHXzm?#SNp=F?1DG$f$HJ%Y=53=H`ObiNp!7G(!=aWn!0n&tP@}}NgGxpp6 z7-11?Zp_4O#`^$Mm+d)6i64p(>*a3iY6yzO@pugUuxu#NverK=J!0<_0swarJ6$8- zOffm)NqvHb*vO`YhrP3JjBURjq=c8r!Cff4DDe7JL=x_0IqqiaLW222uBV-X;2dXl z{6svq-Kj=O@!EK=7$sbGzb-Sdo%{|j&a54A*}p7*HBHI{i^*)#`Iw8EoV)yDQg!Dr zO=f!HJyI4Zm3vc7p@DX5ca_W41X7#kuMb{V#zy(Xg_SO>)!YPGd{?o|jEqR$@w$PG zuX>2EfiaX0lP-8V ZJL5NPt;mS2d6%5rv6Q*z zSMJ()mQR6 NLU2S-!azTRs2mA-3C!j%DX2ix`+c>_YFA2SuaKwl1&>b&I2 zlz;s7S-#NJE;#!>SYF~o$E>#`%FtE$1R{hYTm)Tt{Z5yew%J<|ZfvR~OdP&?wBQ7W zgYY_e9h5_uW#pKRaV d#yyjGf2UU9qCH+&g@-VA7cX#XGo~r&JI))bA8Qe@s?XYFV#*{IUON$iJr`G}j-p zLi!B5&=R3^gJoyE>ZW*#!l0Vu5e1htGSG+^XZ-n22u-?m)^!fl7o>svHJT^iMkRed zr2_I-iH3Zcbzs~DthQqAxsKoCzvM| P{dU)Cks7_^D>9+t z#46rX;5JiWN16OVmoHN`H+j4fa$IUnKnEY<^jlUB+B7wq0K{7R5fF1xBV87wL|(sf z{oARw$sBPt;A<&)%l>=1uS2Upt4{~?RP?+3TSiPY4LHRmmtsn8YIVOYKXAY}#6SWK zM;e?AKD*`aFm^UaPF3z5gd=~vWfb9EyCMNzuh_-jfz7 iKCs2R$H%b?K!hpxk;r*I?ujR6+g{XpjIrWyc5+W ztjOP&hhT+ok}IqV3$_x2+a;czub_RpIrB^NeT5LYn6OqAfC-&2eJU9puKxa6sK{E= zl2RUZJv{+74%E=iUYYjm2w4;hw={oL<%`o5!APOT%obzU4t?xy+l|O|VJvL8@SaN` z3$*BX;MwaO8mqDpNPO!zhKg`o4P*3?s2BB{g%@qjg5MVU?(OSU7pb{=EZ4962SX^^ z=~g~svV2z(x`P)m(`U2rDkoa0)w^;NH>-bk7<3tZzgT6Z0z`kL6r*t$#D2HRLh(rA zT4kHDm`nd9AG=q>`JxNFcELsf7TZa{P3Rl}od4^pnPZRgKG uT8M!aDc@XD#W zYS@{wmymtxaB!oYI<*uJ6$~dm(v}jYve$V%GFHF6O>e3M7@dGbDLFX2-W7Yag;s!7 zUm8inVfILAt!7r8GYU4 U&8V`%vZj zD$8|;kL=D9@QxKMTDAG+#jAkTA=ccrnE*NHdxeQRKI6Za+pyg59!Hfl13O@<)>8ZI z>Ue^OOyZyTN;A&oD$d3AvOzlxCm0Lsg6BNI1nXpLKQIlozM++PUt96BevihOS6t+o z0_-PkVjtqSk2dV1rYY5KL-O`H-we|z4PVyN9W`1HnQ-i{*9$MDt&$29EkEwz@lv&; zX&ry`+b$2Qy8yF?o^YGM+=|5>x%C=tFNVwSrv3L*gVc3o{)(D&o}b{^W2EgBWy13w z-tx>3qlvSh=&K=(_5li^3-XZ5!;6n4M)hQm8hy1?eCoBh+YVcqNXb=%uX4F#ZZdK> zDG}>u?PF&Cx{eP7yQXtXr#5tD(3@&DAcwZpG`5?a1wi4b9-)=|!26=zg4~Md($4{% zLnEmB h0+$} z7|^0sGgI6g_sY*EwVvlsV}J;?dxLuGUw6OEol=o8mZ;6~dp^-$A5;i+Co1v$+CsB@ z`$`IuJlz^Y(}%6=_>5h9@YcU}3ho?7JwyA<^TAx)Ve3%7Z5(#XJF+7Oq||O0Af`I@ zSaBn6Ff$rZ#|AnPto#*ISybZdrn^y?75%5xD6!_FGZj(z{DxipHJdS@^0I|Y1D*9~ zIYYTw*J}`iZu%but7|7UZ1pi=9C=5dJn`xAp%q^G5$#iM7X@mD=YJ2>n#?77Jet&a z%zvug0l|WiHJ005V0S)<6@C?!L}%%RXvgFvd03sjU6TLB2@zD13kOw&uT}j0^dktV z7jSs5mOf@fID(rLL|M{~YEQ_CF
Id=hXW0 z*pXHd@Jf)=J95a*_5O+^)#*X|;Z8~N(o>>nB)P);##vj76L|BVnTv+9))%X%NM3wt zrC{fbaF1;jn-t!;{)lgd?B^v>`9g1*!x~ZKLd`z|mbSM}aN?|eur&wIx#afSc;yW^ zT89qniIC9|L^3V)oq7en$92_v-JaZuR#Xo8L60Hhz_j2|c9AkdZ-}sBU`mcH=po}v z6C0SXs?H%q^?g;9(Ax}*SW1F?AeGxHdSK_OxR;%3@6cieeehsTAB|@hs%gaAR86D_ zD5ipTXOdYje1SBT^+`_8?l=K|2lpm!4@O+GZeDFFCsYy>bFON52lEbjtZAf8l850* z1!|3Did9z?X 6>hKk)#xErO@5;JgA%W{< zB#pSpvy7IjjHD&_|3JFsTt||3ALZE5wgW4hvu+b|pi;uipuClRt7=4w$!F$k(>kja z*(!YBEQ{~i;DQ7mHtw{)tH-DykZ6J 6k>J1qa=j~Rz6Dr$UP*5fO|41Q-mtnREG2i?3ky{oM;{~pFJ z<0Ck{N;fXx%2#6reBp`-(<_=U#{7{!bzC(LnNoX_Mb@tt1oo*{S}yHR-oSt5z+q@9 z0C9U(b{^ui=^nFm42RJwq`e#AD)n&-zuw7N!hx8}B!06bpI!gM^4IHqUrgmNs{= %Aus|gG@61N;#+A<|vjaw^ zpAWfDlY3^uFaes}@g<`FKgr3g)K6uh!F@Q*NnljlLy}LSYc{ nU`$`twb#*#PMZ1O z58X`8jyO1+{`$ UIC%HzV~HvAN<4U zr;15?vpsNdro99lj2sN_LB&kc6Gu;|);CCY-CW~W7y>A^^q@3^A%jBzFN-?3>OAMc z2rI=eJ4kJ#Kz)wzEi&v+ST$Iy*qDn5Se);hcaBwqe6BM{$O!D`_ri+Dc&%7QRlByo z@@^m~hVayxHuVleW|=5B+&TiiIOTQ5Q68QO{POe1h@EAdeO2bcOi4%b<3o0s-fZgc zwJ&Yq!My^w2v+@6I8{;wuhLVrN(>k-=%%TbJe6_R%x7l$J^xA3X?&QRYsO9V8kYh| z&y&841&Yq8zxX}U67UnWCN}?U64M+m4714>y44}H9+;oomkF1If!yD #?6!?{K}fek$F}fR?j8--|0K zWSHLgT@HP9tx8`a{=)68v6uzB+|I=nntR!SXmHx+G5YENTFpaNI%eEEuyOjy56g=+ z<5GiPvTN=&A6D1SITX}7gneZEXS)Wa`6q^A@k-Nby>F&G!8X1c;?+Y|G{E3k(k!~_ z+SkIFV^0khhrs4-8_&U@l6L0k 67S|!L_S%Q`zbQr?u?8|9DyE3~7s(yyJW6jjjb#V#U5u#d10ct$yu7!0`^M5Y zT&7u$%Judg9@$Sj#}eQC^vRXbc)Wp5Z9=^9JIgMfLM`;zAwUs7wm$kE8Td|r%Q~_D zu4-qB5){AnaNeu7{<~6TqWA7Jc%%fkVzcI}As~aDTxO5d>Y7U7BCSHinV3jUZHklK z(M}Ztp<1J@S@TT@J8xC^!+B_gclB~x0;JBF=e^Ym^i3Skg2S!DQtf4y$}EWLVy=Gm zZT~M%GQ$dY75L0jz;iY&wUb$?0GMPl;B?5JRs78~prAu5O@BHAU$GG2`T|W`t)IM7 z Wu?;UFZ-_ %%z?dDx03t|)ubv5jT@i6(I9?%vt-cpw{xC<(!z0*bUX~Nl9m^@1w!d>z z1lSL;8u?5F)txRM6d02tyKc^4+` <^GLOaQWN2KaI# zCx2G7g5my`ns#trkQ*m2+n>_jaqd8kykf#eRmN6afW&9>ObcNicgy?&{P$D&ii3O{ z+B(|m5^Q88Aw-Yz?*tB3X8ivB4KOTu)7Gw8>%K%_& 4=4-cWJ$E3?wx>|*s z72v-MG@h-jc1z@!MXES|b25LkMU9SOHQgchlAR$u*;pi-LF@q34}1T)Ty8T-`Qg1s zeXU#DN=CF@b4};Uh%?ex8f8Sk;%KG5-zz)j= MqFLlXw wr8TZXyH%}dpeh@Rk znfeYe&GV!6b> l*p7G?mz%{|%PU@0aryzr-oZdT_7-q`@=~0v@G0wHh%1=vN zWf9X1T&ex`y{&oHn0PvtA&ahxU`@)n{V?ktAf!yCA(ENHH*P}O)BGhisj^_uva`!v z(t`03`J+m7cyTBAxwThdAfM!c_@lp@FT&&1bxZW5y+u`G&z@F3elW(R)DOHcB(+X( zbS?$Kck w4D z_lg4)U$1=S<*34~!I}S`;krJaU63HEscbl;Im(F>& v%7%f~3)z}FT?76jvM#@A{ZPQaDm*2X-b0LP5fGTQ7!$SeBlil%-% z@RNO4LyX0BrisHVMk{!%nnr_%pSmD;q+CVc{uTWP*^<)giupwKkoa|$-P^(MUC2!9 zUwuvFNf`*^%4|}n?Iri3pa_lxxx *|7 Gow5@5@0#@7D2Uhvn@E8>E?6R`M5?vMUeX`A4%D$%jyC-=rf@IA5% zE)5e?(=MRYV|{&6Q<|yf%nDHQP>uMJ6Q24%5EiqxQQ5^tsprKCy<-J*pFRyDGQv1x zrUUYBrPRzI*KD+Y;9y3ecR^079=egM;7lG-B+Y0(f?EwA=|7ps9)1nj8 l&j!aUxdE{N$t*d@EJ6%6u9fj?s$(G+@4eT_eTx zB#vG?z{e9-Cm4?eie&P~&QIm%f9Fe*=`$%#2YZ*YPbGxx8iLe8BK)!g;fGL)?$MTG z9;MD&0h0g~OZh@IB?FGJ0BCf(Wl)|SO~=qa1C)ao&~<%Rb}@xX`6`o8rkF!%<-ZIA zvQrlo%YS~Sv3t#PEcl)ei@R2jh1nj!f`O0y*Y9x`{Kc%XrNC3)np;wHV&PoOIms`r?`^QUQ}>PyF+K~vF|UYOoX64wOgHK-5Yu0%9ByvY>) z2-f giuYOJ}Anaa(H=jE<=G^;P0@!xX-O@N;^nD)+Z~Z?k0kdIjYCC1dAZVUPww ze3hAjb{`g8XQ19J+j)RW4{D6+xl19TUeWT>K%3p#S+cST{Qe@QMDGL 0C0%LAh#MU;TDEB(i*5_?wo0Juj8#d|8ohDIr<#*j- zuLns6-mzJ+fC$93PDaLoQa=^Eoqg)HI>ANa_ p&eI4|@#9H<##<8rCMiLZ#2H-^}G_WMQr zAOg!_K;VODF`>FW<=y^BA(H RHd^x$unIhg=ia(yacZfP~&1@2e?sDo%*A z1wD#tH?=z7>D;~UJ@hc1zmWa%aOjHS32EBE@yz#X6UT0yz0#Gpljz;QIo$H0CQ7HQ z{WlPb-xG>~DkU|I=5(;AWZX{E-3-j*m`vXIf0q=WAF6>5xh5K<^@#}$nT`m_qfq)t z^JzX{tqU|Yl@V41TaVfi7p}t=zA#Xt(ZdJyz;S1VMd@(QkZ?60x!+w%?LB5oE{o=U zvMK>G9fQCXwb!5@Lb+l|VG#cZiWhwXG$P3Nv+s%`cUu9S;$`N)mJu~@oVsq_G@nRy z!t<~;j9{DeyV0?`Uu1wZ-RF-5fSFn~3+_YmiW-yazsCOBt!-Z(Zml{z68smd^@Wga zFXJtc5+jX4ybk-+@!=%jL8rgPZVs*o0_x$`F>i17OOPc%iiGMuX%iqSyG!Atnc$QP z@q m9f4A#o0R3E$Uk=BfKstD0b=+zjAHAc2_zMq4`D~>i&vo zGbVKUJUf1t(|LNJKad;uc3W=H9}F+)D&5XC=uk-@Y k&<@tDEfkdsW1L;~*FP0f(iIpodz+ErC&@T8L5BWD z#f1E~w8g^glAHfl8m+Gbi|}s9`u@s0brh!TlK`STPHka&OSCX7ubdNEFMle}v^CQV zfbIp7K(|@&Fxx55YPlO2&Qyp*=1JI%MZGMl3lKUDX%@4ch%jUq02VKKKHPnS4;QnY zzvMqn&HJYR%E3s(<|nMqN`Z9t`cY^|G(le|DZk90DT=OzOA;5HYA~!9#V`0GYh~J6 zna0KQ`5i+sTOOaiGJ|d28pv33G}j&kRvh^E?n2*oP00SQfsd5n9pB<-oo`Q0GelK{ z@Q<=+2==+FYRm5To%`$%N40Kb8rPC(Wa?f1!oX3Eh4V}yUz6mb+2nUrl3p;WP?hKH z?<)JA`!sc;sRHT;2R|acT*+}C1IF>;%tvije}!Cmy&@jDw|^~EBmP5jpFpzqyg?T? zIv!sA^kK@~7A7YXR>)B`Ki2 ak150R=W4hrMC3b`Q^|?bY)V@R7RWcOILCn=6BRPzIPC-=6EV~;Cirko8 zayO6{6Y#aGMr(Q%mF}Ok`gtFt4%eVfQ+(@Z2l16Z(5T(a;QNP&5GgQ+l`mSQHG$~M z_V5FG5*^#l^R8r4f)uN;vbY5l0Ep=}aDq+R*hUr27axfdZVu>ZpP1sxm;g7vI6-Ob zBBAD}!iVON rlf>t 0hU-pxYekSzg(Ic)V$LQ~-)t<8zlNL*3EF>#NZ84L zJCRHTUvRAGN!Ey7GH@y-== MS! BMUjovQ-fp@D1y&M+C5CdDHdZng3z%*U; z+wUHs^{_M);&S=p2=|X^s9eH;6Urx)fA(YEJKh29O41Tau9YO@H;=Z~Oz)bhhI(JB z9{&n>KZ0K@la@Y(A?Y!hb;*GPH!exz*9TNn&O%Vk;0LZgcqtnk>_h4kllg@X96|4! z5idMx=5-sZVxzLDm}JHbDJpWy(WpzPj?L4zd9TJ{-w6nj`jR{qGwWnzzYY?czgKQ# zl&(*470{+>d>p~iy~d$W`h?PlI?LbQfl5%{l10Y3FT|*$nol==d8JBa#|4gJ+sWU9 zmM$E6g_&X}yOO@OcxbFus>FuoQwb4&StHVrvZDJZ>~`0fq$%}nAoceL4o+U|p?fzv zmu~NHIB&wQ=|x+JN|Cj`FLOw{^z7|fFYXl>*dZjAJWk~*o+S45{(6(Ty7;k2>49qt z?>uzsV;59X@-sdCbT`#mead6^!!~QJQ#mSDQ^CnTQB$_sg?K<)&b7U79R}i-SHYg@ zp&^8CXW<7s__N+u*Z0-hNl4g~uEA#9LZ65~!y2C3<+atoXWeqX+Obo)dc&tC6LTeN zI@ZnK{AECn{ )r;D*bSxz#L@3dm5<`}k+{&04vU8s(^F9zlA5r_T z%8H-$3TUZiSU4g3)++_+`+H)TG498^LK~P&O+YyYE7)?^5)spSy8GZm?Ig24kP?wT zQf-*3(6QtO?BB-Yzv&&+?yaz};yxV}yn;l9V?KEYr#MfVyyd>K2Y~=k;Gon;L0%5{ zA|Lbh*5=+ggokOgl6#D+x0=-xG4G_6Jf>HGH6QDX;X(ouhij`#7pxWU ;QBxHuIxyIGN^h&wT_%PvL2Zu2l#Ph2aWG?!~dSq7P!AOPnS9nGdz>pFU;xE zY$@HYGwsAa`YUrMP>lZhu-n*~4f``AetXrk_)F3co) 2L>Dh01CcwW955C$_QPr0{by$ !vyufYL8eTRtR@i_8rQ+}3eZ>y=k=02>3yOdDDuQeof{dc;<0 ziRb8}-6E*F;koC57hx7t(k`~AJjyR1O}dTVK-&R_JpQ <{4sjM$0Lbi>bpkmZsu=2l~d`PJ|$RM XMa&}T~Chb+oai{M|iTGOQ8Wp
etK;NQ9wbi z>pNOiZ}Y?}?+Y@fa}-Q4QJ%jx`NFZuyDGUdr=vStfXpx+J{7~9DJ7k60iFM5jNguM zyZq%kn()y3dhj(cI2Uqx=BA#@_Mh-9U5#qIaQ6<3*%fvHN*7)#8<*a4>c=Aoq;A+6 zcOYmJ+%&huUVabN@d#es^IfjKuaU+PqjUS+`{Os~i%j8a3e6B$wM1me7et7M FgO2W8`xr4*1F_W#1x~O z?D9Rr^RL?(n~$e14jAvn1n0EMT-!MzTvYGCBo&yV;HVOwmA{|DC+ES*kc;Llvhh&I zdX18S9XK;wy9K5Cj%OwRwMHF`3jTE4Ix?mS+AQ^(qGy|!yhtxPd7HYWgfB0>Bngt& zc;HUaZ>0dQl^fs9?C_|#`EL30Qj`fGZcE1@E9#{ZgV##6@@ByJ0W?woS-Mnd(kGEf zA6}Ef g-QAua==U|Hi!pKdGL1pNxhrfYr~J`R;d{F xz!^W?j4=W!$O82h_vzdxFIy!2BIL{bw3kDx@5W^se3U5-o)D`uY3&E~`a z7^utSjeCx!CT>QHa7{&1f_|fltgVqu0^!Q6aJv T`m!h40tLZBf|2C3y-p^N(r^$c`>`6 zCJT_Y?JpYZC-}_G>Ki@my@n(^RQ-TMu1ULZ$ghhvXek>zj0BKc_6zxs#kpAhs9&e| z_?%*5oR({Ty+`R3XXg^!$57TSAnD9lHTmTAK})E3xgvf4%k5T!GT+Nx8+T0I&XK+K zzm~Jd%DxHERjvnpxzR2J;HXT>6&b%`0vS{@L^HLe+lJU*&RigX=H2v@H~+&Soq icQS9+;Z2L61TKX zAxdMV(#*M}HDohXq6oJXl?~+(?s7_MtA&trN_~Hy-#=gvj~zbO`+C1#&!=_nV6NY& zwbMxuI9-Xt15~1&!7sZH=jcWM8E;fSYyJ|0TV {A!!XAdUK9%1B?zgRKdWGTxX z?zkPd<(4F|hW&ua_O1g4X=G^C_O$xP^OWR)j7h6+&h CxIjIfw8D^&4_7Z)4~pXL1wwStuyiFb4<; |2359?^kL1HB7`6wYMQ9@15%}UU^rA`Ox6R1Oe7f|I(Fx%y17?r=^l9 z-^UR&mtSQ0_JS(BTaqN~j3CQCeLMx`uQ%=+P6wmp2rk8w_7%5XqrO0%n;nA hu$ZE7ayl@;qasDHpVlIv OnK&Nmb1oFf0MP7U- zI^e3Vt1 sAkta}t`vY7)__2KDm&QAc#I5DbP`oQ>O_ zNW15ssw5gqo5oKg9I{Gtnx<9+A-&)7^QSTsyOTPpgz_Q7oGx`peI)vfewFKcesaLW zyOj|Pel+LWQjH!`qF<#@8>{AvtwS3Om9s!?D=Uas7jC|f{M^bI3ToeD9LC8{^RZy} zM@Lz@{kG0zo*dPrI2bfnNaJ<&8El`n(P63z=7C+9ssp<{KoeosiK)>HBnclfhYbo! z&y}^n g_iYh_zBI3-~LoJObQlF&WhWIR}EJ!qgkl3FTTL43#e;g>5gaj`kB zP`iyq>s sGGXrmd zZJ-}Ci%6*v4y#lChn0hsI*&_CNBMAMm5k{Do!Y;w+@RN#E{XGW^{+!i7ITse1cRR= zth!a(zTxcSj+sbYJ4}ZKI&{?_C{k*7tu6!HOVG8rEvV|U>vwu;qYChEr!6=p2WY4{ z>;8Zm@(X+Aq-{JEKb2{U241s7sj}7{W2G@HtrS=~=$DU;@<1>T2fjlfNj&@hGQtXp zq*@c~W}oe >|SMBR71!dYD3kpov&wx&=SIeTp6_bnbQ#I2|N zDh_Bf>s}g96o6hTfTle^QZ#-&Zkt-GB~)l3>E)m^l2H4!Up*2G@Fx-!lpvp%rMX^z zxxR`@0GQXB6Uv?VUNc-SFTdn@wu`}GBt|rFXQ!w66S=7IK4#N(P%byxee*P)_-G(Q zoO8e7)~N`BK|TAj5qSI$;-ZpV@n=Lq_&R7|@NHpR%&gA~lUsxLNrz+Ru(<$2JxR^? zXk}^59MdbYbH)YUUFft>&l|+-j4=ML>75DJ>;|_R7HV&XcidR83$xq{If2=GwRF-( zrb9_SEz;qgL}3Ps?x|wpRG|&lT6_1z2`N@8re$~a&q4_LN_O$rWlJ+Yi6P^T_Wk3a zl;Xk)VVt)gmA5)SP+Sdtt@0{4Fj2>4<}0IJ5MkrC=ql$I%vo4}qqjYjqZ$6)zQ`j) zPk*0Rr+SkJ=zv+`Rp6*uoY76nm4NQTf!a!y&SrvMlO%@gYl}Q6)-*-P{+OD-p18RD z)9-!9KbrmxE*RujR{_Y5rKRE|AK+cit4^BfEMtb$8n;%Jfz_-?D0zuj@UB5nC3=7! zRwb_!jC+D;cKs?}4Qzod!P_D~t;>ohov4A0hB!8l)+ETr$P#2Q`CFl&J5;5+^Hmqs z7xgXr0FLo)1NW#411h8FH3^Two=CZ=1+CCHnI#0jQ$??l4jj8r=`c7t1WbeZojO04 z-sH6^6})+nLJDm+V7*wujDki%;{>~3dCh+D?02KNlt_KsLA#j(=&Q+G9*{8a|J!fG zf9sAkM*h(Gn1=2~lpOkO_puP2rkH C=az^>T4)4jUP}z?SV+* zJMFIQsd$qs30u845@8<{_ddt-WAT}mEuH~jQxU>U9NYv!w#~o2mDZH?!W3}ZR2qDZ z{2a6>g6cz`{dfb_PDk*4CxpiX(`vO`Ofkhw>to^dW@wOa=m}a7@6XaaOb%sx2ClV9 zfH!DdSjRIEweCJ}H*Z+{%?whvQmXDp!n-x$<+`!8inX0;wk-1}|J33jd5(b-#A)rT z?S@v6`(cOc3hs?y>=)LO=Hk6iyR92Vp|yRFL5ZG7 _Pv zy&*GBlC&NS%dc0UyKI=#+q6XQILU+D%A3X=Tf!ATr?7pj(}4qe 3ak+drbCPVDGHALoszsnz(lDppFXDqph`2K&&(cBI|3t8vLIU!w(u?oDWT zdY;Eu(A3X?9B(Qta?S2?I0)ILu>>v-cwts#ls24Dp=6?b;Itg7Yow+y3l)7PMO;z@ z!L3Q<^2yWEsTt1+pcwt=Z3b=hrahGQ<)l%e#A&d$NDT}!uqL^LceN3-wpmnyctAY7 z&BKz(bb;~$r3clJQP{-gGC!^0K5(;heGLI*-6n;!Zl2ayM&$+WDyeYryI)5_KRzpE zAIPc(At7aD#vhB&dGW=T&%ZJW*mF&@eaXRUO{T=;FU27rLBBo>@DegQ6&t-y Jl%FbusDVsHXF9ncBq(^H4Q-5 z2lAE1|Jl5_2tQx|^$KZ5(b(ew+Zs`(*`Z+yj64--=HY^0I=EhS@Q 8!-_h`&+D&Ib%HXTgVg@L; z5PJbbF*k7b@VyX!0C`S#tdr>DsI-jy^ T78Fic2J*OP=RhRg;f@Zb|8X-);f#(pXGe7J3Fpi~#{< z>k_BQ_%^!{G#8=JCR0nS4VB$5jLl60&`W7sHH#7npKgJ7XlXPizP(`*#95x--yt(L zjeGO1YDIL{8f5<6d7%SBN4EVeR;SWRSLZ$2n{K^we$C;Yz(6vP%Yq2}G@TgDkc1hG z_bWzLO`h&^78gQJQVz!v3BOMm%^4RkCJJi4^x+|OGbGwZ6rX^+RZdkq*Llz~Bhn z;QV{ZBn^}jtO8*0yEs;-26FQJl+AtJCCN~owDF~`DtfaCY3AL;rD46=i`q*N0QiC! z*@H%yR`!)u*|?gKWh=Y4>IAK{5v|?b+;}IUi8}`EE?%NZj>i1`b^K@YnqXWN1cNQs zTbJE$Vljb(kgIvK5j7PN$z}BD#G}IGMAs_XR?&oWw9TNw zBK<}5Mu)cYH@iIRrNmD;CA^w%v|^9(u-_97urmSzeiB5g*leKMPPC;s!4&WnwaCdl zuzaHU6$j9Qb@f=sDS0e3@`n*tzq+$H2~MB#h@!l+8a=p`0O*eZGuu26fvB9~=V4ey z5J))-eg0n7Ph{|v0T*jz)~kL#nP?X95(bNE7Iw#BVab`tU+2UFmBI5>u=q+)Za+Mu zAgeP7y@|v;^urV2U@`(rZshaH72Eb$mdnP^wkt0G4D|T?@zw()>28aYJLA^_RMtB& zM6=pCTjMlymA1C|p6%pb5b~GgSp%`}`)sFOm$rQ&!HK%W=@(yezar@-(}scjQb+Ls z7@89edY<)!R-vhI(L-@@1ZaeT7U3$0Nfjhsk ;p`{BI&h9!#*+YIZ zU30kRyZhGGOPhw^(9lzUh Y+f3vg*OVI%)Lm_Fg_4PM-o;=q`SlD{D1R2 z#6cIdJNv@P)*zkov_9zlt>8_Ma4u}q{PdWp2z;l~zxn=^j;{V=^9hL3%`O8c6_X7L z%__ES%WF@Q1Tfk~mtZPt$|+mJ(u 3#Q|sRz |8&+Y zc(Y+t?E}W9EHH>MHsb@%I1I`EnKB3{KIaq-My3Lr_Zb{{J0XBACe3^2?UBJ0&RUv} z(Qozweg8|HJ5>yE^YZ}%b!3i={ElVYCxn3s>eo>a{pdt$*6`YwJ560~)v5%?^V6YQ zb;4N~d1Giqq0h7`UKSs4eaVCL)ge3d>W=^Z7B9Z!@p!pkp{0U1q$G2=Z?_}=W#A7A zge7U+*Is_+km;cQ)e0@|vPXc9vUn$EzvmgFhaC8dwRsPFC{Y&-viGneh%mcehsd2+ zo(k2L8CRK#kt-EY@5sg@Ni)9L(XZgYftLy_4X>9jiY)T(dAVg5<$$K6zc!BzV)A=D zTy}IJA-To3BI?$!$U$nAdG9aNN08HayMA45as;FJVEFAPEJDxjtH< yX)yi=o*{?z9P7zjiTF~wNH=CQhBGLsPCVFD_c3-z`S_B4Zj=BQk z+(?(*OE*pjNzTq1o^gvx+|j=FNf=(M095xln^<1iF*nK%HE*9ZgrEbj(SDHoyx8Ug z$_K|DWpvI2LRb!wX#XwD&@F@j20J@c$DJje;{no1Bje_ <+D8|&5O4*eHq>BNyX#s>C-4G~wEZcLZSp}3b0EX}Zm z{x_#D{qxo9RU7g01uvvF3iAbs;3ads4ibA7Ig{A~{Bg7yR=QZR!xPeU($Rw$%`As8 ztp{#3I%SJlwp|L9p^6+Aa4j>%z-6VPDc8kl4pO=zvQqlF{2TY4;-RoAq*9)5+jwRr zP6;p`D>Q=eaJ@|8Z!^a_UXDYcYkPYvznojY1H$M9?u6SakDuxFp!j z%t 8= zV(ZbY%m3u%k-}&oS^rUnnu`7cNiUuu5!qE&H}&p`GFTyB3qL@s?DeoEl|uT@ dN|DjyC8V5{UEuX!6wglP zSlMz@2Dccex>ymu2uu?-*reRW5PmW&0dctYXj7N-(S&KJ(2>#kz7sheL$JAf>73SC z;* $Q-)XE)VVg}ozH52%$IJ@B@DZB416puU9NH* z;!C;lz6DIzSQs;gaEK|BB`O*etgBsVkNxZsQ)664S(d&N+0AjuSWPb%kN=FcJM8K# z7VTYE%9Lf9HmY3!$g5YHFA2{)AszY^u=CI5Qv6Jih1#&WBWz`*av1!48J#~9P++2> zvAo;Bo>R9$j0xRp@Vcm%EGZQjj7K5uUOKv;G08UK7u*tm%kwh$Q=oJ?FVHc2TRJno zC0l45DdUs$9R{|Txc%gOKA{fBm M0^B?Rh2r?6fNIh;WJ3vE?O-K+xAO z;Y56gUdGD{_H(SIpMzb*e}63tqui<*o%nDwwRqMc3_m(#r*--7uT0nW6%owh R!5nLGuhF( zo&gPGxW}|t)BKb$Jaj%qA6;pbeJ+01$LHI~sTRHx{<`8$@F$_h72obx_34B*;?!LO z?aVw?ba4XxgALz7?e7=S;lR3%y3OEHQRGsl->;Gr(EJkNJ~Heu23kgZ_M8`=Zbb$- zGTi5~ldwd1a`M2&)xt40=Tq5^`t)(>#LX|(1s1T3UQeL~_hn5W10A{iiFFu-d-ph6 z=wg(Xqxm2-r&gX_cp>yKt7vBn-BqZj9*gP=^gd`JF^X?nse(eW$6Bjc_uM#qdNdn; z7=oHydYf+vPt;PGq@F2L{ziJCG23I>WIVIA!1z$*GQ#fMvC!hkQ?@4pz+vnuO6;Xh zto*_KtyV)Wf(;SAVx8qNc0&}Z$jex-;{fq_*v%_hf;`3w@U7}T@#(Ww*&xFyZ7Oi~ z!aOILdb|Kgi3S7FnTlwyFGp?Td~4#1dt8N8hn_w!eIXq!kiRlD#jX-@He){~ 6dyND-=oG&qx?M9y zp2kB5$`ec;m*?1WmcQhKnU@Vp2T&Gf5n#N;C~BZctzITmCiWe{+1O}ew|eZgQUjw# z&sSZ#X1Ei8kxb3{ )6G3ykCucAS)(ln1x!&&T`AdMv&(P0p+>Z*}* z*l24By=%Rhh@bI)q(5n%_3UM|o!tm5-OVkn3BpZTcq@XcA;IYcd0Ay# *8;igal+OF?9y#cp%i)&`b!vjFrhNn520k5Qe$xvN z80X$Lr+y5nLPyo$E89mf+uwBJjn)J?)lbKFszOoiJ>Fi&ILDmBmfq>Yrd`zpkg-;h zb1)1MrQc&8(brIGze#KETZPv Cvte6$7DhsI) zpp8G19eS;R$%>oPJYr#5cE`}rjIhz-S8D8QsRgA1m~RA(XN9zw_kMrnhvc!X%O-_; z%tKDn`Qz+#RjE-Lu;&WO&gU?b`|m06HnBMnv64dbDK)PgFqG{}y~k4U&~V2@Q0+HK z!Vh9bzmg%CiHq$S6jwzwk2;vK?_7S4bA4Bl8T8pZp_UZ@ KsGe?kN=?)9N?Xk-}Cpg2EJuQH+uN4 oW!4$@t$mt5EPT{4J`p z3okm^=IG%`<5t}9Muobm;M-7l-9cu4@q8uiL#ih{wZyi~SLPf7SF@ks@snULUq=K` zL5SqE$sS;(-2a64DEB!5W!KDEzWR (mbCuB zMC;x|kRPe_-|cH(p>sP$rMG`xeWtzyn>D;`zy0{%fIa;~E8!}kZLMP0`OL(`9*r#c zuiqr3)VZFei^5WuB=J2$}bYLZgklImrRyw!6yW=*y=L8m0Ipo&xW^vhnf_BZS!m*;|1V z#EpBnI-M3d{dE$6>Gv3|hbYiB)z|&RX*Sx2u(S!@?Z2+d_~f5{dm@)EeIrJ9gCN-A zXw^*8KFI{KYq!FK;&J`bgg^D`@0j1lg<+E!bB_IN2>nP>uNn2R-gSzAYVe hXIJDlQTVkwcl}|Me1;MXfFdXbg2?YS))KqtM>$cD^wumrbw;Gx zv35l{hhK07Nic$?aG?nMzgSpBi78RT9+4NM;P#5QY)4!+bUPkww28O!DR-=j2oj{C zXiA<415Id7{JYEu#QFDSmx0R?e30SJ6wSB1R}G{tC%N6TCn^+a?g#yt9JNGxvuJ1h zT5SrK)o+{C0mOL`Z;$!mv23m~!#5%kEn15@G1VWaS2%vwC^8KQv~DIwAEUBh2Is4Y zX>m60k8LJ+3qDsYbfDhxqx`c@2ER$OBwg2!bf~V0hPk@gvcc`>9|7g~z5yQXkB*JX zms{!NFkO9s_cnZ}X^Zhfb_{pF-v)bH*?b=+Ii2~UCORM1D }=sS z76R^(GDwR3?uilV=s&~#dU>uK__l1;@BMZP4f}M{I2fa`*3<_iDvIXTB=~vKf>fjL z!Ts$jTcX3H<7xp1BB^|b0T1sID=c*~2e-J>Rqx00N?EKvsee+3Vk^cyJlE>m)LEs{ zx&E(wv4X}BpEYP@kjw5^^ aq+x~wwR_dk+GEg6e?6U!%iX@-%T=wbfUYv@2CeV4 z4OB?d#A>#_BTV@pC`#MroU$|^@K#*+1T>yQ+hLK|ys`c>c)1V{>4ie`i#f++laU4* zj&U8vTOOEHZMRnni9)qajR%;|$`$i8L*qBSsD5CI{uy|)pAN>J?n~A=1g>_)Bc)G? zRUz{Hw0GR)4zc~EUJvqi0e}YoIq2e9=a%ErCJVTM)W{Q{4R8~G!8<}WCZ5*6^Lg!p zGCZ;z!#YT7-1~yNvh|n?Rb7YBE;KKD%E)aL5)dcHT@_FNOc^RgCvY~m5wjZzhu_V^ z@03M3M`181ML^^BW8@(Ty0^oJ=r*dcv`4|E4-MP;Pj~6ZHC$h+lH+G=e!KI=V1gKA zL(LzwgZ;hGJ>1^5DvVM(a7KzJo;WRejnwY{ePZ;2ZJ*OnOI8S1@fdc`YjW4#0TEu4 z!{OIwws-)3SatnLCVAcsT1i4=)wD&e4;@a&f$Ffi>`swa*ArY =3 zXg!+yowcY8RpbwS?TVB_A;ns7B=)+wOS^g|y**+C&38d`1tJ65a7an3lNq+M( h7IZXXG&nvJQ}|H`9SLcI%31#J#d7Kvu6(f3L#>q=xailM)dB zzi9C%xTg0)@G8iD(FWj1+ Rcv#MY4hh##hqA75GI$u zy#EX$0~us^E7AAm(2J770xN?;_@}VSc70_ZAQdZ2X7|$f2R6F--|3#U0ogw=%1M5M z9Bp@TOlELs0|LlJAl}W4?!Fmzd8AL*9`_JuY&k+(l!~gVwjKSq^z_PX0QlyfGji05 zP||I4Pf5*;a;QJp5Jw10{KCKFGA?mu>l)Z>snZ9Bej+9Qt3&Y1*ST&F=lr=}^7D o4`W`gnZEZ{p+!oXcL! z5EF6Deiw7OdmUV?AMY!VuOz6c%7$JKdvg~0)$X7AM{V{Pg-J3sT_3u2BgJBpqkt0~ zs~mMpPhz$(=6wU7oO|J1@Yc8&jCYC>VlNnjbW-BIeZyzh>gwgsS}k3EO2_OjQ6?u9 zY}ur+v$tG~N@Aj?jU|A 2EOulQy;;woA<%?Oka(;3w& X%}#s$VZ3 P=?wqb)Y;*=-L)I!3H-dZl=SvOj3-lqn5m2VhYwq%C-5~J?8Q0jdY>)v z`W}vfxw#%>Q(|_EJ*%ltI!hYfY0rnE*GeNCuAeFZkCk}k9y*0G`c&<9?y Pb6S*oQ~dJWY@lU6v}ci485}1)com-@#LY(W g;e}1OcVwDblsetZ|6iUIeyO5ktd+|53Gerng^Jlt}>ux8ywmLs+T26LHvx-KFnP z%%hW?B8rE+Iq0rVG4bc1Nr2jVRCM1L^J8icx&i?`V}2PF)1dk{boWg?!Z>hd5`x)L zsL9Fn T3R3Ku)m4$Q|B@EbmPBWlw*N66`!2Z6_HbE$)DQoZZKbc-OF5*txZiuG z*-90CMpsQ)oRS@L`cj5_B*;Pj;N!uoDQUe5b4;S|-uoaPOaW*p>lT$6Uw+LL{0zF5 zW6u|HGJUvjO+fJUBA|d^_%D-LU#&=`Ve@-02%RPk5H%_ND_Y}~5t=(nx{I6MH#*U< z0iD&pzE6@qrQdIMwE((p`HG5Gc-i-}mHi-5BjHm8Ew_mSgcQ&;tb*-mMn=(qql~lG z7jv94>FMGa&^c~cAg%lvcwm>QsiNBL?tN@aT?qyy@#56l&LIJbmZw)? vMVf{$s2duVKm9*6r r zr7t=B@4URfZk+`*Ivl6Apmf`zTymX&1Rkd(IS;ij#kq5Ea^lw)W{SW^*DIv5uN9=I z+(o_MpfI^vY_r!qnCdbvGAQ^^l$)0z;|&;;7o59T>&WWUkHMZ3A5}D1UW+RU+vHWQ z--J -c^6< z^ 2e>6Ig2Kohk0=ULNDcpr3)VxYC&>m~KqtkTOJ%h#wqI?M z2YEQoO=VCYq4M^{f1Z6la<+%ag)=zWy?MyhcKr<8#X`tGn~j*b_cjM2H;JRGpFLIQ z<>t@y*egKIhiR;olPgvBXufiMf8bvzUe^16-!zrAq4`63bC3e9_fY5hajV|cQ**_1 zNf`ZtmkVhUK>bILPFiQbYLXeo zKrQFh^Nf==OcR10&p|Yw7fS#Bm1gR+QbtGJT9PkT4n@SS!$14I9Q@BqNvU}mJ>=hc zPJAek%@V}_4>VnMKnplk3U`M)W=}pa#h%%XyzrhEDO;KMf>S Vp`jB zW`{k)>M(eNf`w u49@x&W`E*qp4I(7EAUpPSbEjsIk*p^6mJ zWtkcW^~%W^V{o{(elObv7`!42U*-RJ6#}_$_p;wRH?7b}%FcYyh|O`JGtE2KYtMq1 zF4c1ad(BsUabNOPa=IEI;bhZV-QbT=oMVrAC(oOYi%jWpMQgg7Kk}6)E|`-lf^+{% z$bVt2&T?E4WxdL=N^MnAV!kk?&-@rf&gO#_&$jE+aYV(2-JRQgdPki3L%C1o)|^X3 z+(3rnB=ds#X+~^#Td!@$=AoUJP`kJ`F&<-CfS#tgqC+n-LzX5sGoJ`2z?6uC;yd z*JhCtr?pZNqkCZ*H|$or)F}(}Xg7}4@-@}} e6zFScD=eL9G!!tweI#>zm>2E4W&{|R5_7M&(H$1Bb52L6RpGdsgerD zY;eaT&%5N)_h8IzRnWSy$?Vtv
mcHaOOfBiSukH5GFYN~j&IKT4l1X-}(v2Uk z{yZ9j<0WP1cWeP))3K=CFP;nKfsSZ~_Yk;fDW{n0=4uj>HpVS@Y;Z3LJ$YK6F_8b` zRx{vfuYoW w8zHnD2eZJ @=<}bVgU(4l1Lf)BXES=Oj(PCRfk;-8WLuH`WxZrZkI$vp8c*i}Hn`UTkX&rS zocwV5oCvbx9S{IB+ 0}R9QEJ1(-No&l_(zQt8@2~?+_q@Ws#c~WoHzgkIbIm7>^eQK<%)44%5t*N7 zP}U-9-@S^|a?y9GTvLi5j7=w>kBQd1!}9RdMPGeGl0MV5tjwl(0Aj!fb>nsNS53%U zVOS1bjmrWo35j41JAZjq)TGdIQm<))U>Aj!qVPz=-rKdB|0;Wi#@>I!;NlII=PT|k zD==PJW545q(gi%u63MotDBmabWBl?RDf$C&?jTlM<}XgdFZAuk{BCcqJzU|C>88br zoLq#*g!J#6e5nlhQ$;^mfL&Qgy_*M~>M$jBK{)X +8Lt6N6 p4oM-Qf^y%L&G^}WKHpZu1b5B`q;Zx( z@_e80>uAWza#d_hXHWs&*maI*6>VR5UI2fVv?^jbACnx3E>ASdl`w*g?K3dxo_0~P zk5?rMIkiZ&(x1P!UQMDI>b3VZ_zdV@4Lb(Xufmwq6pv9HR|J-N4AkEDM0}Y$q~S*X zQlx=dQ%FFVETiq4O9jan@BEU+3%YuH3=Ep2I}S1PP=#w?Zuz?3u<=3nXEBvy C5MflRM%5DvY(EOZP?x0WFG&`BpyCnv$coYALfATli6wGijT zEfQi%r(1ng)c%B69-6m~c%Ove6hSXQALv*2A^Wgt-XMa} z!;OwBZ3I-uZVFlPJ5V*aP ZJ;+E?gvPJ4#DCTH9|O%f zaaH?554aLNfQd5$2?!W`n#BG05@bu<60bbZgKdHQBngewi4C|XGNQ5r0wTRyl>ZBC zsjv;SdcAKlZ9ISm-{O>7zbN^C6m{fbGDyK8=yG*_+sagrb)-Q!tR ku?LQpOqZ)lRYz=n!7P3)0pmshf}Bm+i*-bs%|y^pK3NK6_u8B=D$AVswxh6N;QA zE!q?Y=3j?Qx%J0#eA3${mA*Q@v2dhh-V6NPC9M*~&cZ?>e?@TtMdD{rPO^T(9^{a7 zs1zk35Pe8nES5A2sDLWOF`cJ_SX~h@^(=Zlv8zIQ-EpUT7aNVT<^ElU6H2W1s=}-B z&GhmHlWrU=K5KjuzC7B0@mu$)zHuPfDv}1tvM#-$9=-&DJZrw2r}g9`J7wX|et;J8 z5b?*ly;r5`*h35UQdNNa8Ng@aJ%7qpF&nU&r9h0p2)eJ)vfbOU&*xeaHCy@eR?~6q zM;K@8M#7rl%D*tuSqb3TtTpqg1|Nf_10@8ZUyZ)IPW+)b!Q+hdm&X8Iu_QStj00}c zraZrdWf%T>(l0oh#u#%-D9yDxpjnWyjQFtQ$!ltfi?3JV*bZLco!CVOAd%F0=tRsU z_`1^1t;jpe1}`)JX}rE?QoBEjGhpTDx}%+d*h8)TL?4kNY9_ZsXfxy-l0RPsSazRq zIr$zT*RLD`yFnu|RWZfdAX;u4LIjdUUUiKHG+xDn8+J ;IeMFu1MP z-5Mn(R!yE8mH=hRVy!NKa*T#>{C-_`f~1Yp>>k=y=RIw;ep{%=XU2QIGjy$dsWkq> zbfAE+)1TrfTdVl!A?{pTsY2aI1XiAlIJW)<0om7JO+G`w=)2gxJyo!}LyUU?W+_tR zI~+6L>QLPxe~w{TwS2LVS+Jv>qx>zCN7n$D)pgrRA~*>+HT~)$7=PSg5>1wdTq3ySINC zf41jnsFvf!H)rc&j~nfQDql+)*lFXynDIh7A0j3XMHUif`jRal(BHl_2*l>MN$f@t zH0GkO!tEzK7>% 7vQ z^;%QfQ_{q6TS=+#>Km35dk&|nHs)$NMd3_F5j|05ai+DI)y!8*QE!V&Qu3S^CIcSZ zTi{H82B-$ceZdraCuhFIsZ5LzM4}oJa@POuOWABVciC1~v83fI?!D4gm#<@Oz*+LI z%hHW$TO;*!4_~(v KPra}tqhB_N3ZYMvFp95b4B4w z?Kemqqn9M4DzJ*iX86$q+8en1K3&u({7wC)UfgI~1A31Z)O|e71HJ+HNb*SlL4gRK z**Bs>im;w_0X@g*HTN>lR%{QGWtZw#>Ao-%Crw-XUI8ux)ZB;NghGw{Ht8ron4TnE zu8;#cYmr%ZeC}^E7mt$ofAV=H;@o!-6!uI9iHxR7YhtWiO|g?qvqfZ)31~-#X|Yy? zn(X6YP=Do!Y2t {q~^K-_Dz<01zAxE6|_QTx65dEzA#3caJ;hOjWFG zlTWNi(-B5~W^#tuD@V!G6mC0C)eN;)T+#Ld=rTB`rGcWlnw8koUsHkvHT_K;+e2WH z+T6mOCfj#k@lP8Y6QVR4SYqhWP_+_osZeo)b!Uki@A4voe8Vzno(~AjB#M!#XAF%q zYpj4Co8ZOb<+(h(kdD@V2%q3BMpqo{oo$Au?&MwmSb0 z#7jboad|Dd4MB_aq^j?_9?GAfkOn(Wm7f~#r(gf}eRMj9fN>;MAZ15HmcIT26}*R1 z7GvC?fU9!)9KVTJ)i9T3V-LlTdhWKC6O2Q+OhSb N95QEY;x4Q6zGkLnAaEH-x z^-I4*Z!@l>-QHO1tZGp>(d%OAap=KY0qk3{RueIXHwYBBZe794XAV*e1uj;!`8@NQ znggL>RXgAEwo^Q@Cp$MZ_G7(X>p9UtDL)ThlpcQ$rsMk>tL}~6`HRw11a ;4X2f!DwN6KTWf;9su<}R_#A0YQs^&K3hQfWBR~x{NB&FJvt=G4M zYi$@4H (dJa;X+OP|`-qdqXj9(;6@m0@3MFDt$ zY3YCTdxxt0`v=M#eIbggm1BBr?OujNh=*dSS*7fGx7e*F<^u3Yw0&IM@Jy!fgqex` zeEX=LQ^~oYmX=5hYUIlO9ZbCwnO3f7_HdxUv=v|Wx4 5<9cjrJup zt?~Zu0$mhP@6qy|2_Wb_e1Sw$2XJr}a4c`@L;QQ`WgiA_1kmmkb3C9uYgN (pm~O>VUd pg5T~=#{%< z7Lf95piGILM4Laz*$_WewrF1`l=Jj&b}kFYOPOj*oHseDvZJ{^TsTo=b5}^8p}T z8xVA`VYh16@#PBTQTl7my0Q}*VTZzM`iVfOy$!9rQX&5M5P^onqm9qEMFFOSotcje z$R4Ac76iv(dvK{9^k~$>j~NuGsohe`VEW$BR5zW?y _b+k1A~z6xo~nvma1J)pF@B2%J=LX<6t- zKTPPoV16Rj3^p7=xAxs G9<&FxZc4Qiej@bk`f>xka<22akii3GefB@Ebn(kL6Pw zc(ahj%G~k=IT`r4tlvG`)^y1K6{H@<{?KZ3@L()>5S<)U ZIt_M90QZn zx9tn=@}}**?TEnwR`Cs-7gYv;qch{$kkZUsx^z0aAiNL?$keD+Z6==HG~xE=S^X=r zOgf~IGTEO~v(Ks~q>-X3%(`M3bRC<|9<3+@OGFJSH^aH?p@@sc@W_5n$gEhIH0$4O zpC X3+^>V=fjAi<5x8M`$AGGu>4nkDK^%TQBMhgj@7K&{h|*H-ajw zIr~2lUbHhoy9>kN|5^Th(G)|dun(f0Qj|s9zGpEW?s&*DK7ZZcYTboE{MjG!D0c%J z#b3Vpdr~n6a0VPRUbq;(q*?T{IArya^YfO1$zNNKj6jqNQ6%X+EzdmHGW>lLBqzSJ zXMcOd@H$DdxBH&bqgd-bZ}|__}6UXT~qVq#SB|rr*~O?Ev@9D@zc?J6$oW(TUyF zcz=f