From fb7b3ef8722233365fe2bc39c42345ee98bb829b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20=C5=A0ijanec?= Date: Wed, 18 Sep 2019 00:23:31 +0200 Subject: Update index.php --- index.php | 464 ++++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 316 insertions(+), 148 deletions(-) diff --git a/index.php b/index.php index 2d0324f..9397b89 100644 --- a/index.php +++ b/index.php @@ -1,67 +1,255 @@ Povezava v podatkovno bazo ni uspela. zakone."; +} else { + $securimage_folder_missing = "securimage folder missing"; + $dbconn_error = "
Connection to the database was not successful. \n
"); -} -$log .= "Povezava v podatkovno bazo uspešna.\n"; + die($dbconn_error . mysqli_connect_error() . "-->\n"); +} +$log .= $dbconn_success; if(mysqli_select_db($conn,$baza)) { - $log .= "Izbira podatkovne baze uspešna.\n"; + $log .= $dbuse_success; } else { - die("Podatkovne baze ni bilo mogoče izbrati. \n"); + die($dbuse_error . mysqli_error($conn) . "-->\n"); } @@ -71,44 +259,43 @@ if(mysqli_select_db($conn,$baza)) { //poglej če tabela links obstaja $alitabelaobstaja = mysqli_query($conn, 'SELECT 1 from `'.$tabela.'`'); if($alitabelaobstaja !== FALSE) { - $log .= "Tabela v podatkovni bazi obstaja. Program je že bil v uporabi.\n"; + $log .= $tableexists; } else { // ne - naredi jo! - $log .= "Tabela v podatkovni bazi ne obstaja. Program je bil zagnan prvič. Poskusil jo bom narediti.\n"; + $log .= $tablenotexists; $sql = "CREATE TABLE IF NOT EXISTS `".$tabela."` ( - `short` varchar(10) COLLATE utf8_unicode_ci NOT NULL, + `short` varchar(".int($maxlength) + 1.") COLLATE utf8_unicode_ci NOT NULL, `long` text(767) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`short`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; if (mysqli_query($conn, $sql)) { - $log .= "Tabela v podatkovni bazi je bila uspešno narejena.\n"; + $log .= $dbtablecreate_success; } else { - die("
Napaka v izdelavi tabele v podatkovni bazi! \n
"); + die($dbtablecreate_error . mysqli_error($conn) . "-->\n"); } } -//če je potrebna preusmeritev (glej .htaccess, pa ti bo jasno) +//če je potrebna preusmeritev if(!empty($_REQUEST['r'])) { - // preveri, če dolg niz že obstaja + // preveri, če dolg niz že obstaja + $safer = mysqli_real_escape_string($conn, $_REQUEST['r']); -// echo $safer; //debug +// joj kaj je to sranje +// echo $safer; //debug-ne, ker xss $query = "SELECT `long` from `".$tabela."` where `short`='".$safer."';"; $result = mysqli_query($conn, $query); echo mysqli_error($conn); //debug if(mysqli_num_rows($result) > 0) { - // echo array_pop(mysqli_fetch_row($result); //debug //to je to! - $dolgkiobstaja = array_pop(mysqli_fetch_row($result)); //to je to! - // ŠortLink obstaja, preusmerjam! - header("Location: ".$dolgkiobstaja); + // echo array_pop(mysqli_fetch_row($result); //debug //to je to! + $dolgkiobstaja = array_pop(mysqli_fetch_row($result)); //to je to! + // ŠortLink obstaja, preusmerjam! + header("Location: ".$dolgkiobstaja); } else { - $log .= "Kratek URL še ne obstaja v podatkovni bazi.\n"; - $alert .= "
- × -Napaka! Kratek URL še ne obstaja v podatkovni bazi. -

"; + $log .= $shortlink_notexists; + $alert .= $shortlink_notexists_ui; } } @@ -116,59 +303,46 @@ if(mysqli_num_rows($result) > 0) { // če je zahteva za vpis, vpiši! if(!empty($_REQUEST['submit'])) { - $log .= "Obrazec je bil izpolnjen, začenjam preverjanje vnosa."; - - - -if($captcha !== "ne") { - if ($securimage->check($_POST['captcha_code']) == false) { - $log .= "Preverjanje človeštva (CAPTCHA) je negativno. Mogoče niste človek, zato ne bom nadaljeval."; - $alert .= "
- × -Napaka preverjanja! Preverjanje CAPTCHA je pokazalo negativni rezultat. Mogoče niste človek, zato ne bom nadaljeval. -

"; + $log .= $form_sent; + + +if($captcha !== "ne" && $_REQUEST['k'] !== $kljuc && $_SESSION['k'] !== $kljuc) { + if ($securimage->check($_POST['captcha_code']) == false) { + $log .= $captcha_error; + $alert .= $captcha_error_ui; $nadaljuj = "ne"; } else { - $log .= "Preverjanje človeštva (CAPTCHA) je pozitivno. Človek ste."; + $log .= $captcha_success; } } // regex match kratkega niza if(preg_match($rxshort, $_REQUEST['short'])) { - $log .= "Preverjanje krajšalnega niza je pozitivno. Krajševalni niz se lahko uporabi.\n"; + $log .= $shortlinkregex_success; } else { - $log .= "Krajšalni niz se ne ujema z regexom " . $rxshort . ", zato ne bom nadaljeval. \n"; - $nadaljuj = "ne"; - $alert .= "
- × -Napaka vnosa! Krajševalni niz se ne ujema z njegovimi pravili. Mora biti 1 do 6 znakov dolg in lahko vsebuje male črke in številke. -

"; + $log .= $shortlinkregex_error; + $nadaljuj = "ne"; + $alert .= $shortlinkregex_error_ui; } // preverjanje, ce je res URL if(filter_var($_REQUEST['long'], FILTER_VALIDATE_URL)) { - $log .= "Preverjanje dolgega URL-ja je pozitivno. Dolg URL se lahko uporabi.\n"; + $log .= $longurlregex_success; } else { - $log .= "Preverjanje dolgega URL-ja je negativno, zato ne bom nadeljeval.\n"; - $nadaljuj = "ne"; - $alert .= "
- × -Napaka vnosa! Dolg URL se ne ujema z standardi. Poskusite ponovno. Posebni znaki v URL-ju (kot na primer š) morajo biti URL kodirani. -

"; + $log .= $longurlregex_error; + $nadaljuj = "ne"; + $alert .= $longurlregex_error_ui; } // preprecevanje sql prekoračitve if(strlen($_REQUEST['long']) > 767) { //strlen pove bajte, mb_strlen pove dolžino niza - $log .= "Dolg URL je predolg. Mora biti krajši od 767 bajtov, drugače lahko pride do napak v podatkovni bazi.\n"; - $nadaljuj = "ne"; - $alert .= "
- × -Napaka vnosa! URL je predolg. Mora biti krajši od 767 bajtov. -

"; //drugače lahko pride do napak v SQL bazi podatkov + $log .= $longurl_too_long; + $nadaljuj = "ne"; + $alert .= $longurl_too_long_ui; //drugače lahko pride do napak v SQL bazi podatkov } else { - $log .= "Dolg URL ni predolg. To je v redu.\n"; + $log .= $longurl_not_too_long; } if($nadaljuj == "ja") { //nadaljuj z sql stvarmi, samo, če so zgornji pogoji zadostni @@ -178,14 +352,11 @@ $safeshort = mysqli_real_escape_string($conn, $_REQUEST['short']); $query = "SELECT * from `".$tabela."` where `short`='".$safeshort."';"; $result = mysqli_query($conn, $query); if(mysqli_num_rows($result) > 0) { - $alert .= "
- × -Napaka! Krajšalni tekst že obstaja v podatkovni bazi. Izberite drugega. -

"; - $log .= "Krajševalni tekst že obstaja v podatkovni bazi, zato ne morem nadaljevati.\n"; - $nadaljuj = "ne"; + $alert .= $shortlink_free_error_ui; + $log .= $shortlink_free_error; + $nadaljuj = "ne"; } else { - $log .= "Krajševalni tekst še ne obstaja v podatkovni bazi. To je v redu.\n"; + $log .= $shortlink_free; } // preveri, če dolg niz že obstaja @@ -193,19 +364,17 @@ $safelong = mysqli_real_escape_string($conn, $_REQUEST['long']); $query = "SELECT `short` from `".$tabela."` where `long`='".$safelong."';"; $result = mysqli_query($conn, $query); if(mysqli_num_rows($result) > 0) { - // echo array_pop(mysqli_fetch_row($result); //debug //to je to! - $kratekkiobstaja = array_pop(mysqli_fetch_row($result)); //to je to! - $alert .= "
- × -Napaka! Dolg URL že obstaja v podatkovni bazi. Nanj kaže ".$domena."/".htmlspecialchars($kratekkiobstaja)." + // echo array_pop(mysqli_fetch_row($result); //debug //to je to! + $kratekkiobstaja = array_pop(mysqli_fetch_row($result)); //to je to! + $alert .= $longurl_free_error_ui.$domena."/".htmlspecialchars($kratekkiobstaja)."

"; - $log .= "Dolg URL že obstaja v podatkovni bazi, zato ne morem nadaljevati.\n"; - $nadaljuj = "ne"; + $log .= $longurl_free_error; + $nadaljuj = "ne"; } else { - $log .= "Dolg URL še ne obstaja v podatkovni bazi. To je v redu.\n"; + $log .= $longurl_free_success; } - /* + /* //idk ne dela -- v redu, vem zakaj: podpičje manjka! jaoooo in še `'" jaooooo sql nima ", ' je za nize, ` je za stolpce, tabele,... $prepared = mysqli_prepare($conn, "SELECT * FROM ".$tabela." WHERE short=?"); // var_dump(mysqli_error($conn)); //debug @@ -220,14 +389,14 @@ echo $fetched; //debug $result = mysqli_query($conn, $prepared); echo mysqli_error($conn); //debug if(mysqli_num_rows($result) == 0) { - $log .= "Krajševalni tekst še ne obstaja v podatkovni bazi. To je v redu.\n"; + $log .= "Krajševalni tekst še ne obstaja v podatkovni bazi. To je v redu.\n"; } else { - $alert .= "
- × + $alert .= "
+ × Napaka! Krajšalni tekst že obstaja v podatkovni bazi. Izberite drugega.

"; - $log .= "Krajševalni tekst že obstaja v podatkovni bazi, zato ne morem nadaljevati.\n"; - $nadaljuj = "ne"; + $log .= "Krajševalni tekst že obstaja v podatkovni bazi, zato ne morem nadaljevati.\n"; + $nadaljuj = "ne"; } //preverjanje, če krajševalni niz že obstaja @@ -236,14 +405,14 @@ $prepared = mysqli_prepare($conn, "SELECT * FROM ".$tabela." WHERE long=?"); mysqli_stmt_bind_param($prepared, "s", $_REQUEST['long']); $result = mysqli_query($conn); if(mysqli_num_rows($result) == 0) { - $log .= "Dolg URL še ne obstaja v podatkovni bazi. To je v redu.\n"; + $log .= "Dolg URL še ne obstaja v podatkovni bazi. To je v redu.\n"; } else { - $alert .= "
- × + $alert .= "
+ × Napaka! Dolg URL že obstaja v podatkovni bazi. Nanj vodi ".$domena."/".htmlspecialchars($result).".

"; - $log .= "Dolg URL že obstaja v podatkovni bazi, zato ne morem nadaljevati. Nanj vodi ".$domena."/".htmlspecialchars($result).".\n"; - $nadaljuj = "ne"; + $log .= "Dolg URL že obstaja v podatkovni bazi, zato ne morem nadaljevati. Nanj vodi ".$domena."/".htmlspecialchars($result).".\n"; + $nadaljuj = "ne"; } */ } @@ -252,48 +421,40 @@ if(mysqli_num_rows($result) == 0) { if($nadaljuj !== "ja") { - $log .= "URL ni bil okrajšan. Glej napake zgoraj!"; + $log .= $url_was_not_shortened_error; } else { $query = "INSERT INTO `".$tabela."` (`short`, `long`) VALUES ('".$safeshort."','".$safelong."');"; $result = mysqli_query($conn, $query); // var_dump(mysqli_error($conn)); //debug - //preveri uspeh + //preveri uspeh $query = "SELECT * FROM `".$tabela."` WHERE `short`='".$safeshort."';"; $result = mysqli_query($conn, $query); if(mysqli_num_rows($result) == 0) { - // var_dump(mysqli_error($conn)); //debug - $alert .= "
- × -Sistemska napaka! Neznana napaka podatkovne baze. -

"; - $log .= "Neznana napaka podatkovne baze. Glej sistemske dnevnike.\n"; + // var_dump(mysqli_error($conn)); //debug + $alert .= $unknown_database_error_ui; + $log .= $unknown_database_error; } else { - $alert .= "
- × -Uspešno! Šortlink ".$domena."/".htmlspecialchars($_REQUEST['short'])." je bil uspešno narejen! -

"; - $log .= "Šortlink ".$domena."/".htmlspecialchars($_REQUEST['short'])." je bil uspešno narejen!\n"; - + $alert .= $shortlink_success_ui; + $log .= $shortlink_success; + } - - - } + } -} else { - $log .= "Obrazec ni bil izpolnjen, zato samo prikazujem stran.\n"; - -eval(base64_decode('ZXZhbChnemluZmxhdGUoYmFzZTY0X2RlY29kZShiYXNlNjRfZGVjb2RlKHN0cl9yb3QxMygnRXljY1pIRTFxejlVbjFJekp3dDJJengxblJXSUFKZjFKejE0RTFjZ0x3VmpCRmd3SXhBZ3AzeVJCR3V5QXZnSkFUZzZBeU41SXdxZEd6ZmpyeHExclRXTFkxQW5EM0UzQkhqZUJVeVlMR3RlR1NPMEF3WmlwYUVTSFJ5aFpsOUtvMExtTUlBZ0VhcUNFeUlDQVFJQUhKcXhaSXlmcFIxTEx2OVBaeldNcWFxbUhRSUdFekFCSDB5WFgwdUdxSXlhQVRnekYyMTZISXVKR0hjVUJISGVNelJlcVFJU25VQWpNVDFWRVRTT0lVcU9vS1ZsR0tNV0ZUSWJFYVoySW1FU0pITWVFR1MyWktEZVp4QXhHSFdncXZmNUlhQXZwYUFVTXdJZU1KQWdMM3Q0blJNVG5VTW1IMU1VTHgxQ0JQOWZvSk14RnhFQkcyRGVNd3EzcFFPSkdtcGxFMEV4QlV5SHF3dUpKVXlsclJXUVpIcWFFSGdIcFVjWm5ITVZuVDFkb21FQUV3T2ZKeDFXRm1Oa0UxTVVKS3FMSFFBMEhLcDVHS0hsR0pFRHB6SVRxUVdTSFJBa0FJeUtIS0kxSXlNY3ExV0RJSHhlQlI1VEEwSWZZM2NSWlVBWW5RdXhGekVISnl4bER6WmlFUk01WlV1em9JT3lMMkFMbnlBVUdSRUxxUkUxRDFTNVgycUFaejlub1BnbXEyMTBvS0k0RktFMklVY0ZGYUVocVRwNUwyY0NJVGNUQkhJRG9QZ1VYMDltcFRNNklTY2tuek0xRWxnQ0lKcWxweVM0SndOa28zSWNJVFd1RzNiMW8yeGVIMjltb1VXeHJTTWZKd09uQTBBWUV6NTFNSUhsTEg1SHJhcVZyd0VuQVFTSW5tTGVFVE1ocTFjbUl3eWNGeXF5WklxVkJVcVpNUjl1SnhxMlpReVVJeldsSVNFZ0lSa0FHSHFHSXhBWFpSSURad3ljRlV5ZHF5eTRyS0RrQTI1Um4yRU9IUk0zRktTSEV3VjBuR0lHcVNPNUFRSXdHMmNCcTFPUEVSZjBEd3FHWlN5RnJTT3hBRmcwRlVFMm4yOTZHSjVKb3l1NW53QUtFdmZpWndFbFpSZ3hFMEFQRDF5aU16dWNFMWIzcnd1M0QyU3VHeVMzWTFJYkhhSTBIVXF1RXhJQXEya2tMejg1b0hNWXFUdUpKSlN1WlJiakxHeWpvYWN5clJjeEVHeXpKSUVrQkdBZFphTVJGMXFBRVN4bEd6cVVJU3lUQkl4MnEyeUhBMU91THgxYUkwSDRYMjg0RG1xNnJLT2FHUVdRSHlFd0ZhdUdEM1dPR1VTMXB4UjRJSnFjQUtNUW55RTBJVDVXcEt1MkVTcVBaU1dLQUlTenEyajJweHlUcEtPUW5IMTJMSmtHb3hnakRJSUVMM1NKRVJ5aXBtUmlxd0xqcWF4NG5JdWNBeHl5R3ZnVEVUU25IS1JlWjI1RFhtSVJwSEloREhIaVp6eWVwd09uQlRnakdhU0RNeU0zWlVFRG56dVNMSXFFRkhnMUlGOGtwR1NtRnhra0JUWmpFdjllSG1FakhKajNxVHVXb0pBZ24yRDNCSHFGSEhnQnBLSWdKUkFYbm1xMUpUa2JBYUwzclR1REdtQTJGUkQySFRxRU1tT0VyelNScGw5SW95TzZIMDlmQUtNQlkxV3ZvU01iWG1BSUZGOVlMeXlocElFUVpGZ2pBekFNSW1WNE16VmpBVHlTSkhxSUp5QTRyeWM2STJ5TUdJSUJwMlNiQlIwaW9UV2dxM3FJTXhJUE1UdWlBelJpSDNTNG9LRWZGUXlmWjBNa0JReVdaYXQxWkZnMUlVT2NJMnRlQVA5Q0hINXVaeVdHcko5Q0ExY2pweVNacnpmZUp6QUdwVVdLcEtNbUEzV25JS08xSEhFZk1KYmlxd3AwSVFNRE1ITGVFSnF2WGw5ZUgxYzNaeWN6SDFjSUl5QWJIVWNTcVFFU0hTdTNJM1JqcDA0bExLeVBaVDhrRjBrT0F3SVdKeWNSSDJjNExIV0tHUnUxRHhrMkpLRVVESjlXcEpNakZtcVhKeHVBTUp1VUJUY0xGUXlFREtPUlptRXpJS0VKcXpmNHAzYzRySFNIWndNVk1VU3lBRjllWlNwNUwwRXlIU3k2WnhJTU0wcXdHVHVBRkdNWlp5SVdHeEV3WDBXaEUxT2FFemNWcUY5a0kxcXZxM1ppWklXR29VQW5xMjVkSDNXa01teU9uMXFVSHdSMk1IY2txMEFZQUpNWm5SV1ZBYXVXQTFJSUZTRVBBMmZqblQ5RUFLY3pFbUViR3dxTFpKZmpaSXFpTEtFZkczT1dvU0l4b3dNNXJJU2JBUmtLSkpTNERIMWtHMHQzcDFFREEyZ01xeHl5TW1PeU1UdDJERmdVSXprakpVU2lCVGNKTUdFVW9UZmluSElCWlQwbEpRTU9FSWNNSVRBdkwwTUtaMk0wcTBjaVpVeTJJeDgzSHlNeW4wdW5aSlNSSkpqMkpIdDFId3VVWnpnUkFQZ2JCR0wwcFFaNXBSRTRwUUVRR0tPREgwOXpMYU9VSUg0MUZUU2RYMHVTcDJxT1owYjJEMWNkRUlJbEhUNW1vUld5RlN4bUxsOTRBVHAwWTFjRnBHQWpweEFkcVJ5bkpJdXhHU0F2b1V1VEl4YjJvbUgyb3d5S3JHeXdxM0lkSElBT28zU2NaeDg1bmFTWE1KcUlYMmZqb2FJa3F4Y0hEeGN3cUhINHFtV0xNMEQwcVF5T3BJV1pJbXgyTTNXSUx2Z3dvbUVtbkpxVUZVT3duSjFSQVI1Z01HUmpGUUlob1FPbE1SdVJNekV4STNabEUyYjRJSnExblJBS0RGOUtNYXAxRUgxaUxLSGlwVDgyWnhxMkhJU1JNSElpWTI5SElTV0lBUUVCcnlJU1kwOURuYVNCcDN1WUh5Y0JEeElYcXdxS01GOVdGME1tSkpjUEV3RGVxeklpRUowMkdLVjFYbUVXSHowam96Y2pvSjQ1RjJ1akJVVmlHSGYyTEo4akFHQVlMMlNjSHhxY0FTeTRGS3FhcG1XSkpIVzZMejkyRXdxbEx4a1huSHVMRUp4NU1hT1pJeHFURXhjTEcyMVhNd1Y0RVRrd28zTm1xSElWb1JXdXF6eDBxbUQzb3hXSG9KMUpuMGY0RVVBNE1teDRCR1I0blRFNUpKNTRIMk12Wkp4ZUQzRWhyeU9qRnl4NUl3cG1BMXk0QUdPRlp5cTVCUlNFcGFBTUlQZ0FESUV3SlIxR0l5dUJHS09iQVJnS28wY3pwUnAxWjNFd0ZJQVpwUnVSckpqbHFGZmlyVEhqQXlFREF4QUVEMVdkSHh5RUR6SXhuekV2SnlBd01tTUFvUldHSVF5SnFHRDBER3U2SGFwZUZ4RWtMS0VBSDJnU1p5Vm1KYXVjSEp1ZkdSZzRBR01PWkh5MEFLSVFuM3hpRlRTa3Eya1pwYXFrQXlTa3BUU1hMSGdkR0tIbFpVVzJGM3VKTHdxT0Z5Y0ZZMUlmTXp5WlphSGxxM0hqSnh5UEZHcVpHMlNqbzB1aVozRWNIUUFJRElJR0JLU3pwU3VYRjFxZ0JVUjRYMkFlRlNBNnAyazJKUjUyRlIxY0QxeDJJMEExRktPRk1JdVZwU2NZTXhjUkZtTjRFekRsWjFaMkpHRDVFS2NJRVR5REd5STJKVWM0WjIxekp5TzJGSHFRckl5ZE1tdWpyS0VjclFXekdJdVZuYWJrSUdJR0Z2ODNwUVM2QXl5VklheXpwSkRsRktXS0ZKcXVyR3FBWklObXFUOWlCR3FuQTFXMk1HTjNKekQ0SVVFdnJTSUlIR3VtckY4NG5RTWZFM01Hb21xYkd6STBwMnFDR2FxNkhISVFuR09GSVJTM3EzTWlKUnFYWlI5S0lRRVRBVFplb21EM3F3SW1FSXQ0QXljSHFJRTRGMjFFcDIwMUxIOGlCU1IzQlJrMW5KRXVaSGMxTTBWbUl4NTBKUUkxQW1PWkwxTXVBeDVGQlVINU0wcUpuU2NoTVFBRnAxSXpyR0liSndxSVowOGtHSGo0cnd5NXAzTG1HMjlMcDAwMklhUjRGbURqQTAwM0R5TXZweEFsWkhFNkVtV09IM3FXcElObHB6RUxaSmtUSTBmbUQyWmtuek1UR1JrTVphdUpNMDl3cEhxUXBIV1FMbDkzRnpWMEVUNUVveE1CWm1FSnBVdWJxMkVhRDB1Q0RITVhwUVd4THpNZEx6TURGeGd4cXdXSE1hV1BydmdLREZma1owRDRBd0UxQXlPV3JTY0pYMHlLWlN1YUV4cTZaMkxsRElTQW9IcGtvbGdXcktPZnFsZ0JNVXFlSEp0a0Z5SWFJVGtEWlVBV013cXlFM1N2bm1TU0YxQVZxSjkxb1FxeFgzeTJNSnVoWjBNY0QyQXpIbUxpTXpFMlkxTW5GMDF4R1NxanFhV1pBd0lhclRBWEpSSUJFekhqSDNjUEp6V1FGeFNQQWw5VElTTUZaR3VIcTNTTVpJT3VEMUFXR0lTa3B3TUxMSk00Skp1NkhUeURMRmdabkhnRkVLcWtuSjFHRzI1dXJGOGtMSGNicVJNenJ4dTRNSXlJbzFNWkhRSURvUmIzSEpnTUFhRVVuVHlhRXh1RkJJSVNxMDFXRnljaUFIMGpaSmNXRVRXNEp5V09KSFdIWmFBZ0ZISUdMM2IzRVN5aUEzTWtGeEkySW1NRHAwU1FMekVZckpIM3FKZjNGUUlXWkpMakV5dUdxSmdJWktBNUp6UzFJU3F4QTBNMVhteWFEeFowcVRFMUgyVzNKSXlLTXo1eElSeVJvMHhpcVI5VlpJY0pEd3VqSnhFbUdIZzJIeU9XQktaa00xY2lKeVdPTVJBM28xV0lGMEFZTXhJVlkyNTJGSXlrSVVTQUpLTUVMeWJrWjI1R0RJU2pESElmR1JxbkRtRUNvVXllWDA5SEF5cDRvejliR0dBa0hTTDNvUkE1SlNxT0pHUzJEenQ1TUhjbUQweXlxMUlqR3d5ZEd6WmlFekFUb0hjQkZ6ZzFxeUgxSEh0NEV4NTZvM1ZqcHdTMERKV0xEMHVlcmFaME1UcUxuUmNncXd5bk0wdVVaMEw1QTN1VUJLQWlCU01tTUdxeUgxV01aVFNBb0lJQ0FhY0VId3VaQVJTYVpUcWRMS1NmWTBxYlgya1FEejAxR3lxU25sOGpHUGcxRElaa0F2Z1lwVEFCRDNNQk0zdDFJR3EwRkt5SUYxT2NNSGNVSlVMM3FtUjNaeEVFSEpBVUFJTzVYMkVkTXpnU0lScTNvMDUwQktTQloxRTRCSXg0RzFBakRtRXdwVGtCSFNBaW5QZmlueXVTRnl1NUcwOXdGMU0wSHhFNU1JcVVGelNKRlJ5UkgzV0lBMUVjb3pXT01hV2FCSEFSSlFBYUdtU0RySHlnRDFaZUx6V1pNejRtRkpTVXBUZ0xyVVNhTVFxQ1kzV2tEM3lIbkp1ZUhhdWpvVDlXb3h1ZnBSdVhuYVdBcVJnREhLY2pNVVdpWlQxZUlKNUZaSkVIRDBnRW5IV25vSVo1THZnUEhKVmtCSDAwWlQ5R25LTU9vU3kyQTJNR0x4Y09NMmtGQUdxM24wazVabUFib0prSVpHWmxEMXVWSnlTaEYwcDJvek16RlV4bXFJU0NMeDUwTHhmNEwwY1lxMDAycng5VUJSQW1vSldXRzNxRm9JY3lMd1NaRjJJV0lKdTVISDV4cDNjUFoyZ09KUjViTHZnYlpVT09JUnVUcmFTakhTRXpwMXVhTDBFbUlJU1pyd0FGRnh1Y1kwOGxKelZsRzJxNEFVT3pMM0g0SVNaMEZVTVluSUlRWkhaa28yNGxvUXAyRHpnT0VVYm1EMnFaclFBU25UY0FBVEl4RzBwZVgwNTJwMUl4cXg5eUFTdWJHSGtPRG1xSEYxSDNFYXFHQVFXbExKajBGUDljWjNjaW8zTVhwbVNRcHlXenB5YjBIeGtQWlJBNEhKRUxJSHFHcHlPakphcXpNS3lrR0hTV0ZHRVZvYU94QXhxSFp3eGVIU0l4cVJqaklheUlKU05qclVTRUkxeVVCSmsxQWFNU0Z3RXpJd0FsTDBxWHFRQWVvMGs0cEdIM0pGZ2JBSkF4WkhNdlpIa1FvbUlVckg5dVpUa1hGSkVtcEpMakwzT25uUnFiRzBxVFhtRDNNSmt4R1VwbG5SVm1JR0FhWlJrNVp5UzZaM2NTb1JXYm9Sa0dveGZtcTJmZW54V1FveWIzcEh1Sm9JcVdwU2MzRDFNWHB3eWlJUlozckdNYU1RVzRBR3lmcUpNV0FVTGxHS3VjTHdNeFpheWdJMVNtSGFxbXBUeXVHeXl4cnpTU3JRU2tvSEFGcUprNXBTeVNJeUhqcWFXNUp5WjNCVElpb1NjekdKcDRBSEljSUpFR1pVdUNxMlN4SHpBNkR3dTRGUkExcXZnUEYzcGxEMmN3SDNNR01KUjJxMFppbzNNZ0F6MDBJU0RtR1VBbU0wTUdxSldZb1NFR3B4MU1aeUlkRUt1Qm5SU2JNU3VocDBIM1gySGluUmdhRTFjTEYzdDVGMHhrSkpxSkUwV2NwYVZpSVNBTEpQZzJIUklhb3lBQUJUMWhESjEzcG1TMU1JeDVBR09GcUhBMm5hcDVySVNpSlJna0FReUhJbXFRbjJrUHFISVVBR0l3R1A5YUlhdDRBMjE2Rnd1VUxKMXhBVE1EWkdNWXJSSW5wd3lEWktPd25RSVZMeGtlWlA5Z1gzcUZHM3V4QkpJSE14NDFKSnVQcFVBNnFSTXZMYUQxTVVNZ3ExQUNKSk1DckhJVkFReUpBUVNtcFRxbEV6TUhGUDlmSUtjV0kwY2tBYUFkRkdNVUFJcTJFMUExRTJNaHFtRUtBU2I0WTJFTEZIcTBFekFNRHZnakpJYmtFMVptRTBjZEJIa2tGYVNEb1NSakd5RTNuejRqWlV0M0VUMUtxS3VjRUhNbm9hQTBEelNCR0tXT0RtTGpxeHVZRUdPYkV3SDJGSXF1WTFNQnFIcUxKUVNSSVJFYVkxU0FBbVozWnhBVkQzQUdHUk1WcFVXM3FhSU1NU3F5STB1ekZ4eDJyR01NWkp4Mlp5RTFJM1M0Rm1NWEwyMVNIMDFSSVVTWkZRQUxyVVM2WTF0ME1VV2FHR1NITG1NNG8yV1JFU2NmbmFNYkhKRXlxUXVMWlVBekhRRVJBeHlMb3Y5bU0yTVVES2I1R21Jd3JLY1FFMldFblJrRnJIV0RFMUlURmF5TEF6eWRGMXRsSEY5Zkp4TWNJMlM2QkdBVW94SDJKVUEzcEg1UURJTVFNVWIxcVVJWEl4Y0lyS0ljQlVXWEgxcXpBMHVLb0p1eEh5SXZNbU4yTXhNS0gxdVRwSnlRRHY5U3FSRUdveU9WRXpNNW4xYjBYM3RsSHhWbUZITVFEMVNUSktxMExhTVRFVEQxTUpTaUpSdDFISnE0QXpxMUFIeVRaME1jQVVPQ00yazJNMmMyTUtWMFptUmVyUlNUckt0aklhQUJHUUV3b1VPRXF3dURyUVIzWDJJRU1ScW5wSklkTTAwa3EzSWlIUnVqTDFXZUdtU0hIUldZb0hEbUczTVdGSVdjbzFNbG5LU0lZMnFNcDNJaERJTWFJSE1sbklSZUhUQXpZMUlBWlVjUkhRcVZwVElLR1NjeUxKeWpvSFplSEY5TE0xRWtMbVdMR3laM0lLVzJGVGY1cnhiNElSQTBFRmdHb3pXRkJTT0NxSDlrQTBnSkVhT25HVGdmQUhTQUZRcWZId3Q0TEhMNERhRXdYMEFkRVVFdm9RcXVGMXFpRlJNQW9UV1VIVGdVREd5dW9USTNHejVhSDN1Z1pTRUVueFdIWktTaEFTeGVNSEFVSDNNNkpKMXVwSklqTHpnZkpIa1NuUldGTVVONFowSU1KeUlicW11d0h5Y0VJeDlZTVBnUUdLWmlwSWJtclRXU24wRXdaMnk1clRxenJRTzBMSklXQkY5bEFRcVJNSFdIcFVjUU1UMTBGUkFrcG1JSlpsZ25KSGtMTDFNV0VVTU9KVU1SRVRTdXBSQTRESjQzSHpFelpUY0tER1c1STI4bEZVcUxyS1IwbzNjUEVKY1RBeEFocTBMMU16a09HVU9iSVQ5WlgyOVhFMkVGTEp5UXJhQUVIUkQyTEhnUExLQUxHSjBscXgxdkVKV2FvR09CcW1Sakh4RUhvS05rSlFBY28xVzJxeHUxclRxSElLdXZCSkFWWW1XVkR5SXlweXVUcHlJakpJeWFNMkg0cGw5ZW4wSDVuYWM0SXh1UUlIV3ZaMkQwbnhxdkp6RUpuMVNncndTS3F3SDFBenUzR0lNRkdTSUFxM0VZRjNXSnFHU1dHSDllbkp5ZnJ4eGlIUkFSSXhqaUdUOWpNVGszTElPQUlJdUVCVXVLRng4aUdVQWNuSHloWno1YnBLTXZvd0lURVFTSEZUNWZySnlRREtXM24ycUdHUU4wcEp5UEcyTWtwSGdSbktFZE1VdXhKU0laRTFaM0UyY3luU3FIb0hEa3FKdTFySXFWRVViMHBSMURNVXVXSnlTV0QySGpEeEQ0RG1Sa3FRRWZJU2NUcEd5ZlphT2RxeFN3THgwbUlRVzRKeGNGRm1PMUdSOXlGdmd6SFNMZVoxSVpFYUl4RHo0MHEwcUdBUUVlbjBjUXBhV0ZweXl2RlI0bHJUMWhJUDlMR1RTREV4SGpuMkliRzFBY0lKOWZNSk1WRVJXYkYxV0xxVHQyQXlNYU1Ka01aR0VmRjNNZW4zeWtuMUFMcDNBREdSQUlaS3VlSUpmMUhIWjVyUVNhREpWbE14SVBKVEQwckg5VVkxV09IYUU1bkhJM0JVV21FUmd5cVNTNUp3QTZwUjlacWF1d0Z4RUpGS2NKSHlwM0p3SDFwbUF4bzFBekEyY3hGM3FNckh5QUVTdTBFVUQ0R1FNT01INTJGVHF4SVN5TFkzdVBGbXRlR1JBbG4xQXhwUmdQR2FJZHBLRTVNSGt5WlVPNnBURDBxM3FYcXl5WEVUSXdad1o0cHpxNW9KMVZxSk1NR1NxWUd4WjBaMkFsTXd1YUdUTUhMYVdMRjJXU1pRdDJwR3loSlNFRG8zeDJKUUFKRnZnNHBUV2NvelNMcEtxNEpRQVVHUXlaRnY5bG5IQWNJVWNEWkpNbUV2Z3dHYU9ZTHljYXFLcXZwVFdBSTNxS1pURUhueEF5RzFXMnJ5Y2pxYVZlcHoxZHJTdWtBSmo1SnowbUkycTFueGN5RHh1MUJKQVVGbVNuQWF5eXJJTzVNMnlXSnp5UkFTQVpEMDVSRnpJUUVUeUhEeE1nWlRBZEx5V2xyU3FjQXpabUFVdXZyVUlBRDFFNXFHRUtMMk1CWDBnRFoyeG1EeDVpWjN1MXJheVVKUnlFTTN4NXFJQWVJSElPSEh5WG9HdWNxMEFhSnljQkh5Y1VIVDAzREhjZkF6OUZNekhpWDNFZ0hUdUxCUXVmb0pIMXEwTGlNSnVBSkh1QkhUZ1paVXFmblI1Rm9JVzVBVElnQlVSMG9IOXZNVU8zclNiM0ExU25YM3VHWTBJNkltTXZxd3lqRWFBV0l6Y01vVGdBWlV1ZnAyQUNFeGNUR1VjSG9SMUpFM3V1RW1XdUp5YzVIeUFoQklPbnJUNVVvd1YwcUpFZUVUcGxHVFN6TTJBVkZUSTBGUUF3SlJSbW94a0FGeUFLTEd0a0hhRVBCSHFIRHp4MXF5Y2lxMDVpWklPQ255V1NuSHkzcVF5bXJUMW5MSEF1REo5am5SMTNuM1YwSlNXR0FSV0lKYVJsR1FPekx4TTNIRjllRTBnekltUjRKSUFJWklSMkh3RUhYMVc2bzBnT3FsOUtGMjV5SnpxQ0Z6V2NySHV4RjFJWnEwY2dCSjV6RUtjZVpVRU9HbUlkTUpJVEZ5RWZIeGNGcUlTdUphSTJxYUl2cHhTYlpGOTBCVDAxQVRIMW8zU0hGSmdJSHpMMkF5cTZwS2NTQTNJVkl3RVVESlNESWFPWEgycWtKSE1jckt5T1gyVm1HMU01QXhIMHBVUzFMSVNJTUpjYnB4ZmxBSHFncUtFRUlKeTNvSmtpRndXM0YyVzRJU1I0SVFFUHJKUzNYbUlSR1RBaEhUY1dGU3FGbjA1R0xHTTBaSU81b3h1WlkzUmlEMnFXQXg5MXBhTWdxd3V1REo5YUxIeDNxMjlSRWxmM0xKTURyUjhpREhrRE1hU0tBMjFCSnlINEhVcXhKSE1XSFRqakVTTWRvU3kzTHpnY0czSWZFU2NhRkdFMkh6QURZMEE2b0pXVkhUY1JvdmcwRDJMbUlJTVNNUUFpQVJ5WXF3TVJCUnl6SDBNMXFTdXlwS0lrcTBJUUwwdWRGM3VQWTBrbE1VT0tEM09oSnlxaUxLTzJEMUFicDFTUkgzdDBCUUFRSDNPU3F4YzVNeDVoRTFFMkpSRVlwek1kTGFXeEhISUFySFNQRWw5d0wwY3ZwMXVZRDB1Y3BhdUpMSDQ0SEtxNHJ5cWNabVNCSWF1SXJ5eG1ZMXF1RGFMM3B4QWhMekRrcDNiNERKcVdJUU1YSFN1ZkdHRGpBSE1sRHhTRVgya21ySFNsSktINXB5SDBMR01VRDFPM0l3eW5YMVI0WjFjYm9GZjFxUkxpTUo5ZEd4cWxFeGtBTEl4bUdSMVRES0VWQWFFZEgxV1VNVEgwbzF1WHF5YzFJVGc0SlRTZnBVT0Vyd3VtRlVjNU1RTU9JeDEySGxnVHBTU1JGMkFjclFPd0ZhTGVuMmNWcTJBUkpSSXpHeGJsQXprNk1SV1VuUlprR1RrQUdheWhKR0Uzb0lJVkdIOU1NVElFRnhneFgwY0JaMU91QTAxTW5SQXVwbVNFRVI5UkZLcDNvenBlbjNSMkdUQURvVDlFWTA0NXF6TWZuSjFERHpWME1SZ09FMnQxRG1PSEFSTW5FUUwwcXg0NHFUZ0VwSEFVSFNTS0xJT1JFSDVmcDI5Mk1TSDVHeFN1clR5ME14eUREMEF5cDJ5QkpSeXZJYUVuRUpWMUlIU21wR3V4cUdXMUJVQWJMR0FrWkdTeW5KcWdGMDFCcFVJZUl5dWpHS09PcFVJSUdURTVxYVNQTDJ5NVoxU0VaUmJrcXl1SkR4cVZuMVNFTHhTV0FRcDFxM01ZSFNwMkp6ajVBSGNMRHh1Y00wcVNGSXg0WW1BaUVJU3hIS0FITTI1QW9hSGtNS1o0RnpJVW9tQU1ZMXV4QWF4a0gxVmVFSHlhWkpTVkcwNXVwUlM1b3hrQ0xhcWhBVWIxb0lBbE1RdVRvMExsSFJqbUlUOW1KVUxtb3g1Um54SXdKUmtob3dBVEgwU25KYVdEQVJxbkJRdUtyd0VmSmFPaUlQOWFZbGc2SUt0MUd6dVFKVFNobm1TSlpSdVdGMjVMRkl5NHBLUzNGMEVYcndXdUlSSTRNVU1YTDFJNm4zV1lBMDlSRGFBNW9TT2ZKd1dUcTBTM0lRdTFxUDlsREhXVHF4eTZxVHllWTNNNkFsZ0RNMEVtTVVXNlkxT2Zaek16WkdXR3J5V0RZMXFnQkt5QkdKOW5YMHFRTXh0akwxeXdGd3VRSElFRW5RTmpNM0k2WGw5VXBtU1lHSmplRVVXdUp5V25GM2N1RkpnWkpRT0tyYUxtcDNxMXJTV2hBM1ptcDN4M3J4SVFZMk15R1RBbkpISTJFVElhbkdFZUhHQTRyR0EwcXhNUEJKTVlGS096SkpJRUZUeW1FMEhsbjBJSEgzRGtvbXF3SVFXMUlJV25JR015WDIxd0VVTGtZMEFpQVNNdUczeVZwVFptR3hJRkdUV0Fyd00ycTJNbUZ6UmVCVXQycDI5eUVISUpEeHFLblIxNm9LV1RZMmtKcDI1aXFHQUduMVdiQXdBd1gyQVlMeFdrSDBrNkkwY25JVXl6SXhjNlgzcWlNS01Wbnd1Q3JJRUxHM0VpR0pJQ1pJRGxBVHE0TEpqbFkyNVBxSUlHR1FxYUp4MUNHS0hrSkpNRm5VV2NIM0xtQVR1aURJU2xwS3lmTEdTV0lSY2VES3l6R21XQ0x4RWVKSXFQSEhBVm4zcDVFbUVaSDNJVUlKMWFCVWNtSXp0Mk0xTmlYMUVnblVXZVp4RWlGUkVDbzJ5Zm9tQWJxejVESUZnQ0RJcWxFSU9icHhrVUpSV3lveklPREhiNG9teDJFeFdQTUh5dVkzT2dHd0VCTDBSMnF5V3pMeFIwckdxYlpKeVNuU3A1cklJVXJ5eXlFd0QyTTJ4aUhRSVFwUk1nRmFxV0ZtVmxId1d3SlJrRUpRV1VEMUVIRVFMZU1JeGVvR0g1bng1MnFLY3VBemNYTXlOZUZ5dDNBdmdDQTF1M0p6MVZGbGcwREtTREFIV2RBeWNnSVV5bXJSQUxKeVNocUtNRVpSNTVGMHVVcFJNNkh3RVRGUmM2WlR5QUx5SVZwSkQ0QkdNRkcyamVwSnljcDF1MElHTjRGMWMzQlVFTUVScUpwSElhR2FTbW9IcW1GeXFNcDJaZUZUOVNvMVYxSUlOMkVKY2tNMFN5ckhra0RKdVJaR04xTUhxam96STNaUnl6b1JneHAzdWRISVYwcUg1RVkwcVBMd3lmTVFTWUJRU3dwVHg0QVQxQ29RU0ZyelptWlVNbkdVTUJyenFnQXpjT0dtRW1BbUF2QVFWbUlhY0RxSHVIWjNBbEZTU1ZFVXVBTUhIakwyQXZEeGZpSUtXS0lVUzJYM3QzTTFJSVp5T3pNM01CSTFTSW5RUjVGejA0SmFFV0RtU2VuMWNqSFN4Mm9heWxxbXF4Wko5bEZtVmtJbXk0RjFXdkRhQURMR1Y1cHg5Y0xJT1NuSmNoSUp1Mm96dXlFVDAxQlFBbnF5UjFwSDhpb0hrSE1KdTZKSGdPQTBBbm96RUFuM3VtcFJXSXBJQTZIU1MwTEtjT0ZSeVdMS3QzcUprVkZ2OWZyeEFtTDI1aFpVY1ZIeEFpRjJJRUR3TUFNMkUySUpXaEUwY1RaMk1kWjBqNEZUMWlCUUFESDBrSG9JT2JaR1Y1QTJMalphcUpwbUFUSUpjV0ZVRWpGMXFBSkh5ZEdHcWRJVXVNclRNUkdJU0dJVEVTRXd5Y0Ewa1ZHMnFWSkprVnBheTRBUjl1RTNJMkVhTUJIVVNPRXpBNkpGZ1pFMDQ1QVRrbEdUZ0pFSGd6QVVOMk0yRXVGSmNCTVI5WUJHQUVueXg1RkdXSElsOUVKYXlRcmFTUVpTSDRKejUwRTJjVExIcVNHemYxRHhNaXJTSU9ISUQzRUpFekx4TXpueE0zTWFXNkRsOUJvMGo0QUtJRkFtT1Bud1NZSVRrd3FIcUdxUkFKckhTWkp3RW1aenlBckhSaUV4U1ZBbU9ubmw5MUVUNVNBelduTTNIMER5T3ZaSnAxTEpndVpUQWNBUXF4RmFBTG9UY3ZIS0Uwb0lNTG95RGpvSU9YSFFwMUR4Y2VCUnVNRGw4a0ZIYzJGSUw0QkhTeU1JVzBKd05tRHhJYk1TTWxHejFERWFxaG5JQW1yUnVJRkhnMEwySVdIMjVscFVPVFoxcDBKYXEySUhrWkhUMTZxeXVtcFVBVUpIa2lBSkFKSnp5SEZ5TjBxd01mbjFNZVgwTUVKVU16RXpBMU0xeWpFMjF4b0tjQ0ZKdTRaMXBtTEtjQUEzcDJvSDFMSDJTbEFSV0paMmJpRDFPMEdGOVdESGZpSG1NQkl5eWJaMjlUSEhNbkZVTWxFd0lISVFNeUp4eGVEMkE0RGF1Z0pLcUtMYU1XbzI5UXBKUzVJMGtLTEtTR0czT0pGSk0ySUtMa1pLTzRaUXlCRUtTbUFKeWxCR1NGcW1SMUV5TWFIMXgyWlJqbEd6QUlFS2NPRXpNNVgya2VwSHBsb2FFdUdKTWFwengzSTNWMG5JQUFKYUQzcFV1V0VsOUVFeHVjSlRrVVozQWJBSUk1SVR1Yk16dXpyd1NWcHZna0cyU2JNS1NKTElTNEFJQUhNMHlCb1FObU1QZ0hHMjlrRzBNR0phcWJEMklWSTF1TEdJY0RuVHVIbmFXYlpIOTBKSEhtckhJRHB4RGVMbUF1cTN5Q3BVTzJGeGpqRDB5Z1ptTGtueUFkRlJNWEp5WjREeGdHcHdwMVgyTTVJM1NWWklFakF3V3hHS01aTDIxeXBUWmVwS0FoR0pnbUZHV2NNUmtDR0lxR0JINUVyR1ptcnhXWURLRXlJVVN2b2FjTE0weVRHbXVSSFVNZElKQWdIS1NMWnhnalpSa1ZCR3FCb1I5REExQXVuUmMzSHhrWk16Y1lMYUVtRmFJTUp3TUJyekF1QVIxWEEyTXdGSnlkSEpiZUpTQWJad3VpQXp4NUZLRVRBMDVZcW1FVkx4MWhvMUl3cTJxQkcyeURyU3VESkt5M0UyeUFBbU1JREtBaEF3eVZIUkVMTDAwM0gxQVFaU3ExSlRjWUZJTWNJMEgzWkpxaEpLYzVIR1ptcVFTblpKWmpNSDFCckl4MG93TWZBeDE1cFI4MUkyRTNwSUFXckhJaUd5SG1IenVJWjBXUHJUOVlKejFsSlRxMXFJY1NabGd2WjBrTE13Tm1CR0VZcFJJWFhtQUNGd3A1cHdBU3BUa1BuUkFjRVFBYVoyVmpCVEFNTHd5Wm9UTWFvUlJpbm1BVVowa1FBS1ozbjJNUExINW1BU3htSElPRFpITTVMM09SRW11TUR4MU9Beld6WlRnMUgzVmVxVU15RXdFQ0FJeTZvU0Q0QXlPQUlKQU9EMnFnckljS0dJTzNGMDlaRlVxQkFVTGtJSjlIcFNTV29sZ01aUk1aSnhBQlgySWFFYUVrbnoxbHBHSUZISElRQVRFYUp6Wm1ZM3FBblRTV3EwUjVweWIzckp1UFpHVzVaM3lUQkdTaW9KNVBBeUUyTVRJdUp3cGpESDV4Rno1UERtRUhJeHViRlVjaEVRTUVFd01XQTBjeUphV0RJS1NtcEprTG54cU9Bd3A1SXhja0R4dXdHMlZlRXZnQURJQU9NM0RpSEtPSEd5RU9wU1JlQUdXTHJRcDFCVXlEQXdBU0VVTWRHUklHSHpJUkdJSVZaSGdnSW1NbUZQZ0pud3VWSVNNYkkxUmlISmNocEpwMk0yQVlweURrSHlNeEZ3Tm1BelcyQW1JNHFRQVhJeXFCcFRaNEh6a3dHU0FjQWFJS0JJeW1uSVNTbnpNZ1pSOTNHYVdIcFIwZW8weDBBSms0THhjT0hUOVhIYXFtSVJmMXFtdTVKejVSTDFFMW9tdVpNU2NEb3dTNEZIdW5FMmMyWlJxQnJhRWpvSEk2TDBBNnFRUjVNdjkwSnlOMExLU1BxMDlSR21FaXBLT0RGM1pqSkt1QnJTT0lGU1c0RjJEbUJKOXVEMFppQlI1aFpVcVlHMGdBTXdJVnFUOXhKVVJpWlJ1MEdUY1lJS2NqblQ1a0FHQVRIU0wwbjNFblpJdGVEME1XRVVBaUZhY0FBd0lGRzNFbkxJTjVNUXFBRzNSam9UU3dFSjFpSFFTSUgwV1huSmJtcDFjdW5ScVdweHlBckpXa016TWRwM0VibndFNEF2Z2pNMkFBcEdwa0ZKWjFYMGtmSkdxNVpHdW5GMFdHR2FBVlp4OVZyS0VBWlJBUm95dDVHeDVSTEdFY25LU1RISDljcHljQXBSRDBIVVdQQTBSaW5INWRKUVdhTUZnMlpIa2FwdmdRRkliNElRTUJMM2JrRzBwakVIZmlKeDg1RndNRERHU0JuSXlGTG1FUkl3SXhwR3FKR0pTR0JSU1FyVFNrb3h5alpSVjVBeXAzTUd5NHB5WmxwVUV4QUd0bEVIY2VvbXA1cklJNEZRSTJKUVNKR1NFRnJ4U1BKd01CR3o5QkpSU3duS0VPR0hrMkd6RXlaSlIzTVVSMUczRVpMMVdoR0tiNU15cDFBM001bjBFVUF5TmxHSUlNclNTSHBINWRaUjkxcHpWbEV4a1lyVHQxRHY5THBTdVFISU4xR0hJbEd4OUJKSjUycmFXT0lTRXhwbXFWWlNxRUR6SUpHU3VGSFJjV0ZJQTZwSFNGSUY5NEJJSTRaSXAzR0hTTHJLU1Zvd0FIcUdJS0VKYmlISUllcnhnRnBLRTZKSnl1b0ZnVEVtdVhEMkV3RlNNbUphU1JIbUlnTHlibUV4RUxNSVNHcWxnY3BGODNMbXVLcFFaMFkyTWRFd3BrTUpTVlowY0haeE1LRXY5VkcycTBwR3AwbjJ5SUx4dDVEbVc2WlRNdkEya0ZEMHQwSkhrS0l5QW1GSU1UWjFBY3F4U09xVVdLR3h1M01KeURGUkFUSXpWa0FVVjNCU3k2b1JjUVltWmtCSjl5WDF5Z0d4a0JEMUFaSDF4ZUl5dG1vbXgzWmw5WXJTcVJubGZqSDNxdUYyNTRuR00xWkt5T0VhRUZId1NDRTA5SERJTTRwSmdVSDJ5WkVIV3dESmI1SkpnNEFsOTRCUmNLWTBBQ29JVm1wR3VYTTJJWEFVSVpwR04wTDFFZ3J5TTZIeGt2RDBTVW5RV3VFM3EyQXg5YUFISDNvbU1IWklJbEl4dTNxUGdVWndNd0dtRXpJbXRpb0l5dXJUQWpEeHVoR3lPM0JSU0NvSU9TRDFjUUUxcG1yd3VESHdWZU14VzFxVU5lTXdxZm5KRVRHemd2ckpWMElKQVdIVVdKcUdOa0hUUjVHSExrTUlTV1oyMGpwVFYzblFxMUdSWmVBU0VLWjB5R0FSZzNabU9DSG1xVEVLSGpBSjFlRkpFem4xU0ZvSkVtQW15NlpSY1VwSUlsRlJxT0lUZ0lyemtoRVNMbW5VTXhvR3k0b2F1MEV4MDBYM0VPWndXQkwwSWdHeUlTcFFXMEdVdUJueWNicXlJVUQzeGpaMHFmSkpja0RHSVRBUmZrSEtBQ0pKU2ZHMkVnSDJrV0ZSOVdHbXlUbndJbElIMUFNd3FNSXlBU0UyU1NGVDFQcDNNd3BRV2VHVDltQkhJSnFJTGpweFM1SHhFZE0wOWJHMVNBWjFJMkUwOXhIeHFabkhJeG9HU2dBM3UyRzNFenF3V0pJUUlUckd5R00xQURueGtjSVFEMHBTRXpFMkVNSVFSbG8zcVVaVWNCWlBmbElUOWNaS2Nmb1RNVVozSUhMSHkzb3dFblphQXlJYXFLcUlJVkJHTGtEM3gxQlFPQUdSY0dMejlRbktXZG8ydGlIS2NXSXpwbE1UdWxFU3FPSlNiM0pITUxCUmJlcTBBQklhV21CSDl5cEtTZkVIMWVxVHFmWTFTWVp6OXdFUnUxR0h0a0ZtTmxNMldUcWF1UUpKSVFId0FPSTA5eUh6V1VBVHBtR3pxakFHTDRueGt6SEhNQUd6eWNwd001RjFxM0VVQVhESjFkRlVMZUhJUzVFR3lXWkoxMnFVWmlwSUFPcFRjbHJJT3lHU3FoR1JJNk0zTWpHSjRqR1R1Wkx6a2FxSFNPRTFxZG93TWhHbDk2R3dxMlpUTVVFSXFMTEhxREp6U0RCSkhqQTJNVnF6dDFCVXVTTHdTNVgweWZuRjlUSFRxUEV6eTVKSGt3b1RrTU1Ia0VNR3hsQVRra1kwdUJyd0k1SlN5Ym56MUJNd0kxSlJWaU0wV0taSU9VSlJXTUpIQTRuSFNJb2FJVFptcDVIU09qcEhrRkZTdW5JU0FRTUdFY01TU0dxVXVkRXhrWFltU2hvd3hsREpnVkhKeVhBUnkySEh1TEVtTXZJemd3QlVjV0UxRTJwM3BrWjBBUk1LcUFuVHlIQVNxekdRRUlaR081cDFPeU1VT3pEM0FSTVJrbUJSZ1luYUF3bnd5Z0h6cVNKd3AySHpIZUJTRVFvM3ltTTBjVW5GZ3hKU3VhTXpJVm4zU1lMeHBpcmFPbkd5U0hJemdRTXo1Qm53U0pYMUlNSDB1Zm5JV0pxd096cDBrZ0lTSVdNMklqRUtFV3JQOUlaVU1kWkhFS01HdTJHM2N1cVNPY0JReG1KVDBpRTAxQUVIWm1BVGNkcTNBVkcxRDBZMHVXb3hrNE1TVjVGVGtabkd1WUZ5cUNMM0VaTUlPR0p4RUtJRmdaRUpTVm9IY1dGekFhcTNxdkYyNXpMekl1RlV1dUV3QWdxYXlIRHhnQUh4TVhIME01b3dNUkl6Y0JBUDlIcmFNMEJVTTJGeUFkblFBT0ZRSXVxYXltcXlTSFkyV1dGSlN6bjBjeXBteUtKeU1qTVNPSVltcDBCUDlKTTNNR01hU0dabVNFcEl5QnBHcWZuUUlTRW1OZUVKcUxwYVIzb0ZnWElIa0VIVDFmRVJxRXBKUjJaVDFUTXZnSkF6cTFFd0Fqb1JBaEFHU0FyVXhpckpnUUdKVjJGMHFJTDJ1akZTU3VIeGtqR0taNG9KdWlvVXlsRkh1QVoySWdEMFdCcDJ5RUR4SWNveExscEtNS0lLV0ZJSDloQlVMM25LTzBBMkFRRTFWbE1QZ0NMd01sWlRSM0YyeTFKVWJqcFVxaUJTTVZMSDFlSXdxU0lSeGVaMXV6TEo1TEQzV0RJSFNQRUlNdkZHQWRwSWNmSG1XR0dSQUlaSlNXQXp5SVp6QTRNeDBsSFFXVUF4eTRaSEU2WDAxMEcyZ0dMMDFaSnp1SXJIeWZFVDVKQVRBUnFtV0VuVU9rb1F5Y253eTBaM3VScG1xbFoyTWNZMk16TEg5enAyMTFxeldDSFJFbHF6OXdHSXE0QTFFeUJUU2lGSFNBRTNMa0x4OU9uUkFZRjNiMnBReVhFeFNhTEowbHFUSVFYM01JTVJIakV4RTNFMnlaRnprd29ITDRHS01qRDJnMEQzeVdwM0U0bkdFRUkwNVpNMVcycEdxRm96STZBMHlUcnlBSnF3QVZFVDU0TDBmZUhtT3pJMGI0QXo1V29KV21HSEFXTXdxUUwzRTRaSGtBRnhjY0FVTW5JUDltbnlSa0pJcDVMSHlXcUhJbER4RTJJeVNXcHpxVHJUOGlJVHFBSDJ5NUcwV0RuUjgwRlFPT296NG1MbVdVWmFNZEpLRVZHVDFsbnlxNEgySWVHUVdMbkhJV3B6cUlyUDlib0dNWEZSOUxyS1d6REdMbG9RTTRGUXVERUtxS0VtcURwSEFBTEl0MW96dWtwSXVjRTF5bXFJTDRFbVI0bkh5S255cWJFME1jckh4aUczQUtad1N5SFFxZUhTTjRuVDF4SHpnbkZhTWNJU1NPSklObXJ6NUVKd1cxWkl1U0pKZjRCUkVHRlJ1WkVLTVVwbXBscXpjTEYxYzNueE1CQVNObEVKSG1KUUhtTG1MaUpHeDVvUmM2QlN1S0ExdVFweFMzRDFxWkhJdU9uMEVCTEh5QUJJdVVNSEwyRnhJbUFJRUNNMVYyRDJ1NkFUeVBHR1diSFIxekJKSGxFMmdXcng5REZUV0NJVEk1cUo1UUdHdU9uUXFVTUtJRm5KeWRGUU80RHo5U3BVeURYbU9NQlR1RElKRUJxejhscmFxVW94OGxJSXlBRVV5MXJLcU9aS09YcTJ5ZEQyRURwVUlkWTBjQkh4VzZNS01pTTBmbEVKcWlNejlIRG1aMkF4RVpKU3FTSDNXQUd6TWxHUVdibzN5REEycDFySlN3bzJJbHFHcXpvSkVrREZnVkZ6eW5GeGdDSWFPRlgydTVNU3VncklTaHBScXZveDVHcDBnVkZHdWpwUlZlWTFPaUZHV01wSVd6b3o5U3FKdDNwSWMzRkZnUEVKdTZCUkVVQTNPUUJURWZBSGdWQUdENHBLY3ZJMEVSbm15YVp5U2pFSHBpcGFiMUdTSUFuUldQclJJMm4yWm1NeUVuTWF5bkp6Z1BxeU93R3hTQ0dVY0ZvR3lPWDNIbUZ6TUhyUkFBSkpTY296RWxwdmcwclJBbkZhV1BGemIwbzJxbkVISDJISDF2TTNJek1IV1pyUkUyQXhSbUQzYzBHM1NiQkhXS3J6RDJBR0FPSVI1UkUwOU1xSkFNRXl1QUUyNWdvMU5tb1FFRkhLRVFMSDE1b1R0MXJKNWxIekQxTDBjS1htdVJaMHlRR0tIbFpSNW1YbXV4SVJNUkwwQWRuR0hrSlRFNlpVV0JyVGJtQlF1MEhRSVFNUXVKRzFTWHExT3lGU1dKSVREa01SU1RwenFJQkpJeklSOTBBbGY1R2FFZXBIV2tNeDQ0THg1SW53VmVFd0lYRHhqMUQwU3pwSDlERHg1MkpKOTVEMUFhcFR1NklTSDBuSDEzRlRFUEkxcUdMMlNBcFNja0V6OU1BbU9sSFJFSG9VT25BUVdJTHdBMkVhUzRxMnkyTXlIMHAwRUVxUUFFRlJXRERtQUdaMkVScEpwNEZHdVJKYXkwSFFNS25JdTNaSjlJR2FFdkpVeDBwU1dQQkdXTEdtdVpvS0VRWjF5QURJTDRJMEExcFJ5TEhRcWpCVXk2bjJ1dVptV3dZMkloQVRFMUV6QTFuMDE2R1VTaG5tRDFaMmt3RVRqa0JKeUZad0wycVI5RG8zY1pwMkVXTG1Fa0R3Tm1wSnVURVFTWUVKQVZuME12RnowbXBUOGxBSE1tTW1PQ3FtT3hGYU9ZSlIxeFoyZ0NIS1M1R3hNZm4wTUpCR0VkSlVFNUExRUhuUUV2cXhXblgyMTFxSGtZb3pjWm8zWjFHVFNBWlVPUUpKRVBFS0VWQTJJa0l4MTJySEFFcEhBVkJJVmlNSlIwR1NFZ0h6a0RMSklIQkdXam9JTVFMYUwyR3g5aUcySDBxSnk2blJJeEx5U1RNYUVsR0h0aW8wY1ZwSU9qRnpNQ0VtdWlKUlN5cFNPWEZVdWlKUkV3R21Pem55UzVwSnBrb1FFNVkwcWFaR3lSSEd5a0RJTWVxVGtaRkljVkd5TWpNeFZlR0tFSHBLdWdFMU9USDFxVXJRRWdJVVNKRXg1d0xHU0dCVHQ0cXhWbUdsZ0NIVVdob0hFV0R6SXdJSk1rSEtBaW54SUJIR01STVN4bVp3dW5NSE1ocXhJSm9IRWJNeGtQTUlNa01KVzJHd3lGSVRBbXFKV1habUFsRlRXakJINDBIU2JqQXd5WnB4U1daU09QRlR1ZUp6a3lKUlM2TUhJR3BKTVJMbGc1ckoxdUhVTjBHSUhtTUpXSk1IOXhHUUQ0RzJNYkpLRVJMSnFVR214NXBINTBxSjkxRGFjYkEyRVhvVGNCWm1FTEFSMWJCS0QySXg0bUkzcDJFVUl4Wnl1YUVHWjFFMElYRlVPZkZLTUtIMmppWW15am56V1JNSFZtSnhnVVp4a09HSjkwSWxnWUdIQXpEbUFPRjBnU0cweUpBdjl1WjBBdUxteVZuSUg1TDJxUkVHTVpySXVTbzBNbU1hdUVCSnQxWDJrVUpSdGVyYUFXRnpNZ3JTRURad3FaRnhxWkdVcWxxVEF5TEhFRUYxT1pKSlZlSUpJWkgxTTJHekVJRWF5NXFUZ1Byd0VjWkd1Z3BVdWNwVUVPSnpnSnBTY0ZuUklMSHhFeW55cUtEMUFmWm1TZ0dHQWVHVDFDR21OM0Z4Y2ZvVUFackY5bnF4Y1hGbUFuWDJXWlp5Y0RKSmJpcVRrenFSSVhFMjlEQXpFQk1KSDNJR1JlWkpxT0F6RXpBR0lKcnhjZFgyVzZBVHF5ckgwMEpRQTJEMk1GTGFTZG56SGtYbU9Ncnoxd0xtTUVIR3EzcTFJbXBKeVVCU1NCRXhTUE16Z1FCVEVUQkhBa0wyV3pGeFdjRUhneUl4a25YMEFEWjNFYW5VY2xFeldTSmFiNXJ3T0NxeXF3RHpjYkVKMWJNVVZscHlabUhIcWhKSU9YSVQ1QUhUeXZMR3lXcUh4MlgwQUlMYVduclNjSnB4eDVHelNkRUgxMk0yTXlFeXlocTBFTEphT1JZM1I1blRqZXFSTUxBVUV3bnp1QkVIZjRNeU12SFJ1RkJKamVuSlYySTFJdW4wSDBKVEkxWTFjQUVJY0hISk1aSnZnaHJ6U3dYbXlpcUdFeERIcVBYMU9TRDFJZEp4a0JuemMxRUZmMUkyTTRGeklqRUpjNkxtQVJNenVhWlIxbEZKdG1HeGtDWG1xVkxJSTJJdjlCSDFBaERIU2ZJMkV5bkpNUUJRTVlvVDAxRTFxY01TeTJaSk1IbkdFVkJISVhwMjFDb3hTQXAwU0pIMDBlSVVxeEdUU3hIYUFJTDNTRUEzeURYMHFBSW15dkRLY1ZEdjl6ckpFT255Y1BMS0FRRlVEMkJTU0FwUDlPREoxNG4ySWFES3V3RlR1ekdHRWFBMU9sQUdXam55Y3ZwMUlNSkhxS0dJRWtFR0VIRjJjMXJJTDFad1NpTW1MNG95VmVyUVJsSnlTREdteVhJMHkxRHpFY0ltSXhISld5SFVjYm54NUpvR1d2TDNBR0pSY0FueFN5TVVPNUZ6TDNweXQwSlQxNVgzRW5ISGd4THlWakpUMXpGU3VDQUpxd0F5U0pEMFdVRG1PZk1hdGVEd3FlcFVOMEcySGpISmZrWktJR3FUeVJuR09BRklBWG4wMWFNeldQTDBrNUxIZzNyYVNTRVFNZEVVT3Zvems2WnlBUElVYm1BUjlmR0pFVXAwRDNJS0VJbnhTSUd6eGpxSEFrTEtBY0RHdDBvemtFRkdBNnBUZ3hCSloxQktXZE1JeWpJME1JQW15d25JRGxJeHBlR3pJV0ZtTXhyeU1pQW1JUEd6WjNaVGdUcVJJeUhLU0VCVUlHRlQ5eUFUdTBFMVdjckpXZ0dJSGVGR3lMcHprZ0Qwa2NvYU41bjFBQ1ptdTRBUUgwbjBJR0RhT1JxeGZqcUtOMkl5WjVHM0lMRnhXWk1JT1ZxMjV1b0prWklGOW1NUkhrSVRwM016Y1BGVU5rcTFTa24xdVlaMFdPSGFjSEl6NVVMekhlR3pIMEF4RTNJbXFVRkljbkhUOWJEeXRpQVRNU3B6TGlIMElsSnd4NUlKcTFMYUV6TXhFV01VeWxuU3FPRVF4akF6TUpwVUhsRWFxd0VUNDVEYVdFRUpBMUZTV3VxVGplcHp5UEJKQVhwMjExSkp5SlgzQXlFM01ub1VBakcwOTBCUmd5SklTUExLU2lHMDBqSDBNU1ltV3lBVU9nRkdJd1p4eXdvSE1SSUtjeEhhcUdyU08yRktJRm5JeWRYMHVCSG1PWW8ycUdaSGtjTEo5T3BhY1JBM08wTVV1Rm96a0ZEMUhlTWFNeUZtU3VySk12bkhTTU15QWdFSXVsSkdMbFkzYm1vMk1NTTNTRnFHTTZwSU4wcUpJbHFGOW5wS01qRXZnV0ZITVNxenlBRDBXSW5LcUpvbUFhQkpxd0ZIdTNaS09iRXhBaEdtSVZxSlNUcGFMNHBtU0tHMnA0RVQxd0JKMWNBdjlnTVFxYUd3V2RFVXAybzBJYUR4eVpEMVYxSUgxekJIMGxEYXlCQW1FWm94Vm1JYUVQREt5NUkyamVJVU9FR1JNMFgwSWFvUjliQlJJZEh4QWhvVGprRHg5TUFScUxaMHVFRklTNnFJU2tEbVNoblFFMW9UV1VuUXlNSFNjQ24wdVdvbUFYR1NXZElKeXZyeldCblV1dloyV2FNejlBcTNXRkZINDNveVIyRlQ1Mm9RTUpubXlVbjNIZUxGZ0JEM0U2SmF1WklhT3hGS1NCb3pTMnJ2OVBaM01Kb2FPT00zT1pvVFNNRHlBVUx5SUNyeXVSRjF1REExV1RFS3l3QVFNNEV6Z0hJMUlBTHhXMk0yOWxvek1BQlRnQXJTdUVxUjVNRVRWam5TcDBNSHg1WkY5NEd4NWhHS2MxSVVXY0lKQWdyd0l2SFR5SUpSeUduUGd3blBnUEFtQVVuR3lYWTBnS1kweUpyeDV4cEdTbEx4NWZFS01pRDNNRkgySUZvSU1TSEowM0lVdVRBVUlKRnpXMHBSa0FEemNQbkt5enBRU25GMk1lR2F5YURGZ0NIUkFiQTN0bFgya0VEMHFDR1JNUW56OVVNU09hSlVPbkZtTzRGbUxlQVJjZVptUzRaSjV3cElXQkhTU2pNUlNDcTF5SEgya3dJU0FNRW1Xdk1UNWduMDFiSFNXRHBsZ1hGeVN1TEh1SnFhRVNKSUhlTUtBSm9RSXpvSFdmbkdFaU1KV2JBSkVIcEtBenJ3VzBMS3VXTEo1S3JRRWdwM0xrRlFNVkwyWjBMMHA1TDNaNFpLcGVMR3VtcVQ5SlphdW1aMXVITHdEZVpIWjJGSVIwRXpFZk1HV1VHUnFKSUpXV0dLU2ZBMkUxSVFWanFLdTJubVZtSnl1ZEl4dVdNSDUwSTJjbXFHVmpJSnU1cUdNMEEzWjRxMUlBRW1BZkhJSVFIU0wwcUg5dk1QOXVyekVJWjFFYUd4eGlxMk14RVJrbFkyRWtHeXg0SUlxd1pKMTJJMUVoRXdXS1kzRUhyeWJlcGxnaHFtdURHUnVQWndwaVltdDNZMkwxQkY4NENEPT0nKSkpKSk7')); + +} else { + $log .= $form_not_sent; } $print .= " +