Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php $_F=__FILE__;$_X='P3l7PzhTOGlpYWE9RDlbMjVaSVUyNUZpY0Y1OW5qeDVJRFpVajVVMjVGKCRMMmIyTC..

Decoded Output download

?><?php

//backend menu
function adminmenu($level,$group) {
	global $cfg_app_path,$cfg_app_url,$lang,$heatmapurl,$gaurl;
	$sql = "SELECT id, nama, judul, access FROM module WHERE grup='$group' ORDER BY grup, judul";
	$result=mysql_query($sql);
	
	$menu = "<ul id=\"adminmenu$group\">
";
	while (list($id, $nama, $judulmodul, $access)=mysql_fetch_row($result)) {		
		$splitaccess = explode(",",$access);
		foreach ($splitaccess as $assigned) {
			if ($nama=='pseudo') {
				switch ($judulmodul) {
					case 'Click Heat Map':
						if ($level==$assigned) $menu .= "<li><a href=\"$cfg_app_url/aplikasi/klik\" id=\"heatmap\"><span>$judulmodul<span></a></li>
";
						break;
					case 'Google Analytics':
						if ($level==$assigned) $menu .= "<li><a href=\"https://www.google.com/analytics/reporting/login\" id=\"google\"><span>$judulmodul<span></a></li>
";
						break;
				}
			} else {
				if ($level==$assigned) {
					if ($nama!='member' || ($nama=='member' && $level==0)) $menu .= "<li><a href=\"$cfg_app_url/kelola/index.php?p=$nama\" id=\"$nama\"><span>$judulmodul</span></a></li>
";
				}
			}
		}		
	}
	$menu .= "</ul>
";
	return $menu;
}

//frontend menu
function menustructure() {
	global $cfg_app_url, $cfg_app_path, $urlfunc;
	$sql = "SELECT id, parent, type, judul, isi FROM menu ORDER BY urutan";
	$cats = new categories();
	$mycats = array();
	$result = mysql_query($sql);
	while($row = mysql_fetch_array($result)) {
		$sql1 = "SELECT urlpattern, modul, jenis FROM menutype WHERE id='".$row['type']."'";
		$result1 = mysql_query($sql1);
		list($urlpattern, $modulmenu, $jenismenu) = mysql_fetch_row($result1);
		$url = str_replace('[var]',$row['isi'],$urlpattern);
		
		$titleurl = array();
		if(substr_count($url, "pid=")>0)
		{	if($modulmenu=="page")
			{	$tabel = $modulmenu;
				$kolom = "judul";
			}
			else
			{	$tabel = $modulmenu."data";
				$kolom = (($modulmenu=="news")?"judulberita":"title");
			}			
			$sqljudul = "SELECT $kolom FROM $tabel WHERE id='".$row['isi']."' ";
			$resultjudul = mysql_query($sqljudul);
			list($itemname) = mysql_fetch_row($resultjudul);
			$titleurl["pid"] = $itemname;
		}
		elseif(substr_count($url, "cat_id=")>0)
		{	$sqljudul = "SELECT nama FROM ".$modulmenu."cat WHERE id='".$row['isi']."' ";
			$resultjudul = mysql_query($sqljudul);
			list($catname) = mysql_fetch_row($resultjudul);
			$titleurl["cat_id"] = $catname;
		}
		
		if(strlen($url)>0)
		{	$url = $urlfunc->makePretty($url, $titleurl);
		}
		$mycats[] = array('id'=>$row['id'],'parent'=>$row['parent'],'type'=>$row['type'],'judul'=>$row['judul'],'url'=>$url,'level'=>0);
		
		
		//if($modulmenu=="catalog" and strlen($url)==0)
		//{	
			if (file_exists("$cfg_app_path/modul/$modulmenu/menuaksi.php")) include ("$cfg_app_path/modul/$modulmenu/menuaksi.php");
		//}	
			
	}
	$cats->get_cats($mycats);

	$currlevel = 1;
	$catcontent .= "<ul id=\"nav\">
";
	for ($i=0; $i<count($cats->cats); $i++) {
		$rightAlign = 0;
		if ($cats->cats[$i]['url'] == '') {
			if ($cats->cats[$i]['level'] == 1) 
				$menuitem = "<li class=\"top\"><a href=\"#\" class=\"top_link\"><span class=\"down\">".$cats->cats[$i]['judul']."</span></a>";
			else
				$menuitem = "<li><a href=\"#\" class=\"fly\">".$cats->cats[$i]['judul']."</a>";
		} else {
			if ($cats->cats[$i]['level'] == 1) 
				$menuitem = "<li class=\"top\"><a href=\"".$cats->cats[$i]['url']."\" class=\"top_link\"><span>".$cats->cats[$i]['judul']."</span></a></li>
";
			else {
				$menuitem = "<li><a href=\"".$cats->cats[$i]['url']."\">".$cats->cats[$i]['judul']."</a></li>
";
			}
		}
		$selisihlevel=$cats->cats[$i]['level']-$currlevel;
		if ($selisihlevel>0) {
			if ($cats->cats[$i]['level'] <= 2) 
				$catcontent .= "<ul class=\"sub\">
";
			else
				$catcontent .= "<ul>";
			$catcontent .= "$menuitem
";
		}
		if ($selisihlevel==0) {
			$catcontent .= "$menuitem
";
		}
		if ($selisihlevel<0) {
			for ($j=0; $j<-$selisihlevel; $j++) {
				$catcontent .= "</ul></li>
";
				if ($cats->cats[$i]['tipe']=='0') $catcontent .= "</li>
";
			}
			$catcontent .= "$menuitem
";
		}
		$currlevel=$cats->cats[$i]['level'];
	}	
	$catcontent .= "</ul>";
	return $catcontent;
}

function verifyaccess($level,$tobeverified) {
	global $rooturl,$cfg_app_url;
	$sql = "SELECT access FROM module WHERE nama='$tobeverified'";
	$result=mysql_query($sql);
	list($access)=mysql_fetch_row($result);
	$splitaccess = explode(",",$access);
	foreach ($splitaccess as $assigned) {
		if ($level==$assigned) {
			return TRUE;
		}
	}
	return FALSE;
}

function pagination($namamodul,$screen='',$prmtr='', $title=array() ) {
	global $pages, $cfg_app_url, $urlfunc;
	$hal .=  _PAGE;
	$tambahan =	((substr_count($prmtr, 'action')==0)?"&action=":"");
	
	if (!isset($screen)){
		$screen = 0;
	}
	if ($screen > 0) {
		$prev = $screen - 1;
		if ($prmtr=="") {
			$hal .=  "<a href=\"".$urlfunc->makePretty("?p=$namamodul$tambahan&screen=$prev", $title)."\">&lt;</a>
";
		} else {
			$hal .=  "<a href=\"".$urlfunc->makePretty("?p=$namamodul$tambahan&$prmtr&screen=$prev", $title)."\">&lt;</a>
";
			
		}
	} 
	for ($i = 0; $i < $pages; $i++) {
		$display_num= ($i + 1);
		if ($screen == $i){
			$hal .=  " <b>$display_num</b>";
		} else {
			if ($prmtr=="") {
				$hal .=  " <a href=\"".$urlfunc->makePretty("?p=$namamodul$tambahan&screen=$i", $title)."\">$display_num</a>";
			} else {
				$hal .=  " <a href=\"".$urlfunc->makePretty("?p=$namamodul$tambahan&$prmtr&screen=$i", $title)."\">$display_num</a>";
			}
		}
	}
	if ($screen < $pages) {
		$next = $screen + 1;
		if ($next < $pages ){
			if ($prmtr=="") {
				$hal .=  " <a href=\"".$urlfunc->makePretty("?p=$namamodul$tambahan&screen=$next", $title)."\">&gt;</a>
";
			} else {
				$hal .=  " <a href=\"".$urlfunc->makePretty("?p=$namamodul$tambahan&$prmtr&screen=$next", $title)."\">&gt;</a>
";
			}
		}
	}
	if ($pages == 1) {
		$hal .=  "<br>"._TOTAL.$pages._PAGESINGULAR;
	} else {
		$hal .=  "<br>"._TOTAL.$pages._PAGEPLURAL;
	}
	return $hal;
}

function getrandomnumber() {
	$hasil='';
	for ($i=0;$i<9;$i++) {
		$hasil.=rand(0,9);
	}
	return $hasil;
}

function fiestoupload($fieldname,$destdir,$destfile,$maxsize,$allowedtypes="gif,jpg,jpeg,png") {

/*
$fieldname : field name di form
$destdir : direktori tujuan
$destfile : nama file (minus extension, which is always the same as uploaded)
$maxsize : ukuran maksimum dalam byte (harus konsisten dengan MAX_FILE_SIZE di html)
$lang : (optional) bahasa. default="id".
$allowedtypes : (optional) jenis extension yang diizinkan, dipisahkan tanda koma. default = "gif,jpg,jpeg,png".
*/

	if ($_FILES[$fieldname]['name'] != '') {
		$maxsizeinkb = intval($maxsize/1000);

	//Filter 1: cek apakah file terupload dengan benar
		switch ($_FILES[$fieldname]['error']) {
			case UPLOAD_ERR_INI_SIZE:
			case UPLOAD_ERR_FORM_SIZE:
				return _FILETOOBIG." $maxsizeinkb kbytes.";
				break;
			case UPLOAD_ERR_PARTIAL:
				return _FILEPARTIAL;
				break;
			case UPLOAD_ERR_NO_FILE:
				return _FILEERROR1;
				break;
		}

	//Filter 2: cek apakah ukuran sesuai yang diizinkan. Beda dengan filter 1 yang membandingkan terhadap setting php.ini, sekarang dibandingkan dengan aturan yang dibuat sendiri di config
		if ($_FILES[$fieldname]['size'] > $maxsize) {
			return _FILETOOBIG." $maxsizeinkb kbytes.";
		}

	//Filter 3: cek apakah extension sesuai yang diizinkan

		$rallowedtypes = explode(',',$allowedtypes);
		$temp = explode('.',$_FILES[$fieldname]['name']);
		$extension = strtolower($temp[count($temp)-1]);

		$isallowed = false;
		foreach ($rallowedtypes as $allowedtype) {
			if ($extension == $allowedtype) $isallowed = true;
			
			
		}

		if (!$isallowed) {
			return _ALLOWEDTYPE." $allowedtypes.";
			
		}

	//Filter 4: cek apakah benar-benar file gambar (hanya jika $allowedtypes="gif,jpg,jpeg,png")
	//Tidak cek MIME-type karena barubah-ubah terus
	//Tidak cek extension karena nanti dipaksa berubah
	//Cek dilakukan sebelum dipindah ke destination dir (masih di temp)

		if ($extension=="gif" || $extension=="jpg" || $extension=="jpeg" || $extension=="png") {
			$size = getimagesize($_FILES[$fieldname]['tmp_name']);
			if ($size==FALSE) {
				return _ALLOWEDTYPE." $allowedtypes.";
			}
		}

	//Filter 5: Jalankan
		$thelastdestination = ($destfile=='') ? "$destdir/".$_FILES[$fieldname]['name'] : "$destdir/$destfile.$extension";
		if (!move_uploaded_file($_FILES[$fieldname]['tmp_name'],$thelastdestination)) {
			return _MAYBEPERMISSION;
		}
		return _SUCCESS;
	} else{
		return _FILEPARTIAL;
	}
}
function fiestouploadslide($fieldname,$destdir,$destfile,$maxsize,$allowedtypes="gif,jpg,jpeg,png") {
	if ($_FILES[$fieldname]['name'] != '') {
		$maxsizeinkb = intval($maxsize/1000);

	//Filter 1: cek apakah file terupload dengan benar
		switch ($_FILES[$fieldname]['error']) {
			case UPLOAD_ERR_INI_SIZE:
			case UPLOAD_ERR_FORM_SIZE:
				return _FILETOOBIG." $maxsizeinkb kbytes.";
				break;
			case UPLOAD_ERR_PARTIAL:
				return _FILEPARTIAL;
				break;
			case UPLOAD_ERR_NO_FILE:
				return _FILEERROR1;
				break;
		}

	//Filter 2: cek apakah ukuran sesuai yang diizinkan. Beda dengan filter 1 yang membandingkan terhadap setting php.ini, sekarang dibandingkan dengan aturan yang dibuat sendiri di config
		if ($_FILES[$fieldname]['size'] > $maxsize) {
			return _FILETOOBIG." $maxsizeinkb kbytes.";
		}

	//Filter 3: cek apakah extension sesuai yang diizinkan

		$rallowedtypes = explode(',',$allowedtypes);
		$temp = explode('.',$_FILES[$fieldname]['name']);
		$extension = strtolower($temp[count($temp)-1]);

		$isallowed = false;
		foreach ($rallowedtypes as $allowedtype) {
			if ($extension == $allowedtype) $isallowed = true;
		}

		if (!$isallowed) {
			return _ALLOWEDTYPE." $allowedtypes.";
		}

	//Filter 4: cek apakah benar-benar file gambar (hanya jika $allowedtypes="gif,jpg,jpeg,png")
	//Tidak cek MIME-type karena barubah-ubah terus
	//Tidak cek extension karena nanti dipaksa berubah
	//Cek dilakukan sebelum dipindah ke destination dir (masih di temp)

		if ($extension=="gif" || $extension=="jpg" || $extension=="jpeg" || $extension=="png") {
			$size = getimagesize($_FILES[$fieldname]['tmp_name']);
			if ($size==FALSE) {
				return _ALLOWEDTYPE." $allowedtypes.";
			}
		}
	$new_name = date("H-i-s").$_FILES[$fieldname]['name'];
	//Filter 5: Jalankan
		$thelastdestination = ($destfile=='') ? "$destdir/".$new_name : "$destdir/$destfile.$extension";
		if (!move_uploaded_file($_FILES[$fieldname]['tmp_name'],$thelastdestination)) {
			return _MAYBEPERMISSION;
		}
		return _SUCCESS;
	} else{
		return _FILEPARTIAL;
	}
}
function fiestoresize($srcimgfile,$dstimgfile,$thumbcalcbase,$thumbcalcpx,$thumbcalcpxheight=100) {
/*
Resize gambar (misalnya bikin thumbnail)

string $scrimgfile : nama file asal
string $dstimgfile : nama file tujuan
string enum('s'|'l'|'w'|'h') $thumbcalcbase : dasar perhitungan resize menjadi thumbnail (shorter side, longer side, width, height).
int $thumbcalcpx : thumbnail image width/height in pixel

16:14 14/02/2010 tambahan:
string enum('b'|'f') $thumbcalcbase : dasar perhitungan resize menjadi thumbnail
b = both = maxwidth dan maxweight dua2nya ditentukan, ukuran hasil dimaksimalkan namun dipertahankan proporsional
f = fixed = maxwidth dan maxweight dua2nya ditentukan, ukuran hasil dipaksa mengikuti ketentuan meskipun terpaksa tidak proporsional
int $thumbcalcpxheight : thumbnail image height in pixel, hanya jika tambahan dipakai. default = 100 pixel.
*/

	$temp = explode('.',$srcimgfile);
	$extension = strtolower($temp[count($temp)-1]);
	switch ($extension) {
		case 'jpg':
		case 'jpeg':
			$srcimg = imagecreatefromjpeg($srcimgfile);
			list($dstw,$dsth) = resizecalc($srcimg,$thumbcalcbase,$thumbcalcpx,$thumbcalcpxheight);
			$dstimg = imagecreatetruecolor($dstw,$dsth);
			if (!imagecopyresampled($dstimg,$srcimg,0,0,0,0,$dstw,$dsth,imagesx($srcimg),imagesy($srcimg))) pesan(_ERROR,_CANTRESAMPLE);
			if (!imagejpeg($dstimg,$dstimgfile,100)) return _MAYBEPERMISSION;
			break;
		case 'gif':
			$srcimg = imagecreatefromgif($srcimgfile); 
			list($dstw,$dsth) = resizecalc($srcimg,$thumbcalcbase,$thumbcalcpx,$thumbcalcpxheight);
			$dstimg = imagecreate($dstw,$dsth); 
			if (!imagecopyresampled($dstimg,$srcimg,0,0,0,0,$dstw,$dsth,imagesx($srcimg),imagesy($srcimg))) pesan(_ERROR,_CANTRESAMPLE);
			if (!imagegif($dstimg,$dstimgfile)) return _MAYBEPERMISSION;
			break;
		case 'png':
			$srcimg = imagecreatefrompng($srcimgfile); 
			list($dstw,$dsth) = resizecalc($srcimg,$thumbcalcbase,$thumbcalcpx,$thumbcalcpxheight);
			$dstimg = imagecreatetruecolor($dstw,$dsth); 
			if (!imagecopyresampled($dstimg,$srcimg,0,0,0,0,$dstw,$dsth,imagesx($srcimg),imagesy($srcimg))) pesan(_ERROR,_CANTRESAMPLE);
			if (!imagepng($dstimg,$dstimgfile)) return _MAYBEPERMISSION;
			break;
	}
	return _SUCCESS;

}

function resizecalc($srcimg,$thumbcalcbase,$thumbcalcpx,$thumbcalcpxheight) {
	switch ($thumbcalcbase) {
		case 'h':
			$dsth = $thumbcalcpx;
			$dstw = round(imagesx($srcimg)/imagesy($srcimg)*$dsth);
			break;
		case 'w':
			$dstw = $thumbcalcpx;
			$dsth = round(imagesy($srcimg)/imagesx($srcimg)*$dstw);
			break;
		case 'l':
			if (imagesx($srcimg) <= imagesy($srcimg)) { //portrait
				$dsth = $thumbcalcpx;
				$dstw = round(imagesx($srcimg)/imagesy($srcimg)*$dsth);
			} else { //landscape
				$dstw = $thumbcalcpx;
				$dsth = round(imagesy($srcimg)/imagesx($srcimg)*$dstw);
			}
			break;
		case 's':
			if (imagesx($srcimg) <= imagesy($srcimg)) { //portrait
				$dstw = $thumbcalcpx;
				$dsth = round(imagesy($srcimg)/imagesx($srcimg)*$dstw);
			} else { //landscape
				$dsth = $thumbcalcpx;
				$dstw = round(imagesx($srcimg)/imagesy($srcimg)*$dsth);
			}
			break;
		case 'b':
			if ($thumbcalcpx/imagesx($srcimg) <= $thumbcalcpxheight/imagesy($srcimg)) { //ikuti x
				$dstw = $thumbcalcpx;
				$dsth = round(imagesy($srcimg)/imagesx($srcimg)*$dstw);
			} else { //ikuti y
				$dsth = $thumbcalcpxheight;
				$dstw = round(imagesx($srcimg)/imagesy($srcimg)*$dsth);
			}
			break;
		case 'f':
			$dstw = $thumbcalcpx;
			$dsth = $thumbcalcpxheight;
			break;
	}
	return array ($dstw,$dsth);
}

function tglformat($str,$displaytime=TRUE) {
	global $namabulan,$lang;
	if (($timestamp = strtotime($str)) !== -1) {
		$i=getdate($timestamp);
		$angkabulan=$i['mon']-1;
		if ($lang=='id') {
			$angkabulan = $i['mon']-1;
			$j = "$i[mday] $namabulan[$angkabulan] $i[year]";
		} else {
			$j = "$i[month] $i[mday], $i[year]";
		}
		if ($displaytime) $j .= " ".date("H:i",$timestamp);
		return $j;
	} else {
		return "(Invalid date)";
	}
}

class categories {
	var $cats = array();
	var $subs = num;
	var $cat_map = array();

	function get_cats_($cats_result, $parent_id = 0, $level = 1) 	{
		for ($i=0; $i<count($cats_result); $i++) {
			if($cats_result[$i]['parent'] == $parent_id) {
				$cats_result[$i]['level'] = $level;
				$this->cats[] = $cats_result[$i];
				$this->get_cats_($cats_result, $cats_result[$i]['id'], $level+1, $type);
			}
		}
	}

	function get_cats($cats_result, $parent_id = 0, $level = 1) {
		$this->cats = array();
		$this->tmp_cats = array();
		$this->get_cats_($cats_result,$parent_id, $level);
	}

	function count_subs($id, $cats_result) {
		$this->tmp_cats = array();
		$this->subs = NULL;
		$this->get_cats($cats_result, $id, 1);
		$this->subs = count($this->tmp_cats);
	}

	function cat_map_($id, $cats_result) {
		for ($i=0; $i<count($cats_result); $i++) {
			$cats_result_[$cats_result[$i]['id']] = $cats_result[$i];
		}
		while(list($a,$b) = @each($cats_result_)) {
			if($cats_result_[$id]['parent'] > 0 && $cats_result_[$id]['parent'] == $cats_result_[$a]['id']) {
				$this->cat_map[] = $cats_result_[$a];
				if($cats_result_[$a]['parent'] > 0) {
					$this->cat_map_($cats_result_[$a]['id'], $cats_result, $type);
				}
			}
		}
	}

	function cat_map($id, $cats_result) {
		@$this->cat_map = array();
		@$this->tmp_cat_map = array();
		$this->cat_map_($id, $cats_result);
		$this->cat_map = @array_reverse($this->cat_map);
	}
}

function fiestolaundry($fieldvalue,$maxlength=0,$allowhtml=FALSE) {
/*
Field laundry. Return cleaned up field.

string $fieldvalue : nilai field
int $maxlength : panjang max yang diperbolehkan //harus konsisten dengan form html atau field database
*/
	// Trim field
	$fieldvalue=trim($fieldvalue);

	//Pengamanan: Potong string sebatas yang diizinkan
	if ($maxlength>0) {
		$fieldvalue = substr($fieldvalue,0,$maxlength);
	}

	//Pengamanan: Hilangkan HTML dan PHP tag
	if (!$allowhtml) {
		$fieldvalue = strip_tags($fieldvalue);
	}

	$fieldvalue = str_replace('?>','',$fieldvalue);
	$fieldvalue = str_replace('<?','',$fieldvalue);
	$fieldvalue = str_replace('<script','',$fieldvalue);
	$fieldvalue = str_replace('--','',$fieldvalue);
	$fieldvalue = str_replace('1=1','',$fieldvalue);
	$fieldvalue = addslashes($fieldvalue);
	return $fieldvalue;
}

function checkrequired($fieldvalue,$humanfieldname) {
/*
string $fieldvalue : nilai field
string $humanfieldname : nama field manusiawi
*/
	if ($fieldvalue=='') {
		pesan("Error #2","<span class=\"fieldname\">$humanfieldname</span> "._ISREQUIRED);
	} else {
		return $fieldvalue;
	}
}

function pesan($judul,$isi,$backnum='-1',$backmsg=_BACK,$tulislog='') {
/*
Display error message sekaligus (optional) log percobaan attack.

string $judul : judul error message
string $isi : isi error message
mix $backnum: jumlah halaman yang di-skip untuk link "back" (jika diisi integer), atau URL
string $backmsg : teks link untuk link back
string $tulislog : (optional) nama file log. jika kosong berarti log tidak ditulis.
*/
global $cfg_app_url, $cfg_app_path, $lang, $adminmenu1, $adminmenu2, $adminmenu3;

	if ($tulislog != '') {
		$somecontent = date("Y-m-d H:i:s")."	".$_SERVER['REMOTE_ADDR'].$judul."	$isi

";
		if ($handle = fopen($filename, 'a')) {
			if (fwrite($handle, $somecontent)) {
				fclose($handle);
			}
		} else {
			$judul .= "+log";
		}
	}

	$admintitle = "<h1>$judul</h1>
";
	$admincontent = "<p>$isi</p>
";

	if (is_numeric($backnum)) {
		$admincontent .= "<p><a href=\"javascript:history.go($backnum)\">$backmsg</a></p>

";
	} else {
		$admincontent .= "<p><a href=\"$backnum\">$backmsg</a></p>

";
	}

	$thefile = implode("", file("$cfg_app_path/kelola/lang/$lang/viewadmin.html"));
	$thefile = addslashes($thefile);
	$thefile = "\$r_file=\"".$thefile."\";";
	eval($thefile);
	print $r_file;
	exit();
}

function adminlistcategories($namatabel,$namamodul) {
	$sql = "SELECT id,nama,urutan FROM $namatabel ORDER BY urutan";
	$result = mysql_query($sql);
	$admincontent .= "<ul>
";
	while (list($cat_id,$nama,$urutan) = mysql_fetch_row($result)) {
		$admincontent .= "<li><a href=\"?p=$namamodul&action=viewcat&cat_id=$cat_id\">$nama</a>  
		<a href=\"?p=$namamodul&action=viewcat&cat_id=$cat_id\">
		<img alt=\""._OPEN."\" border=\"0\" src=\"../images/open.gif\"></a>
		<a href=\"?p=$namamodul&action=catedit&cat_id=$cat_id\">
		<img alt=\""._EDIT."\" border=\"0\" src=\"../images/modify.gif\"></a> 
		<a href=\"?p=$namamodul&action=catdel&cat_id=$cat_id\">
		<img alt=\""._DEL."\" border=\"0\" src=\"../images/delete.gif\"></a></li>";
	}
	$admincontent .= "</ul>
";
	return $admincontent;
}

function adminselectcategories($namatabel,$selected='') {
	$sql = "SELECT id,nama FROM $namatabel ORDER BY urutan";
	$result = mysql_query($sql);
	$catselect .= "<select name=\"cat_id\">

";
	while (list($cat_id,$nama) = mysql_fetch_row($result)) {
		if ($selected==$cat_id) {
			$catselect .= "<option value=\"$cat_id\" selected>$nama</option>

";
		} else {
			$catselect .= "<option value=\"$cat_id\">$nama</option>

";
		}
	}
	$catselect .= "</select>

";
	return $catselect;
}

function convertbyte($size) {
	if ($size>=pow(2,30)) {
		$stringsize = number_format($size/pow(2,30),1,',','.')." GB";
	} elseif ($size>=pow(2,20)) {
		$stringsize = number_format($size/pow(2,20),1,',','.')." MB";
	} elseif ($size>=pow(2,10)) {
		$stringsize = number_format($size/pow(2,10),1,',','.')." KB";
	} else {
		$stringsize = number_format($size,1,',','.')." bytes";
	}
	return $stringsize;
}

function showwidget($posisi) {
	global $cfg_app_url, $cfg_img_url, $cfg_app_path, $cfg_img_path, $lang, $namabulan, 
		$config_site_templatefolder, $widgetawidth, $widgetbwidth, $rooturl, $urlfunc, 
		$cfg_max_width, $cfg_thumb_width, $cfg_carousel_height, $mainblockwidth,
		$cfg_max_cols, $jumlahtampilanmarquee, $carousel_bgcolor;
		
	$sql1 = "SELECT w.type, w.judul, w.isi, w.isborder, wt.modul, wt.jenis FROM widget w, widgettype wt WHERE w.posisi='$posisi' AND w.type=wt.id ORDER BY w.urutan";
	$result1 = mysql_query($sql1);
	$i=0;
	while (list($type, $judul, $isi, $isborder, $namamodul, $jenis)=mysql_fetch_row($result1)) {
		$i++;
		if ($isborder) {
			$widget .= "<div class=\"widget$posisi\" id=\"$posisi$i\">
";
			$widget .= "	<div class=\"widgettitle\"><div class=\"wrapper\">$judul</div></div>
";
			$widget .= "		<div class=\"widgetcontent\">
";
			$widget .= "			<div class=\"wrapper\">
";
			if (file_exists("modul/$namamodul/urasi.php")) include ("modul/$namamodul/urasi.php");
			$sql = "SELECT konstanta, terjemahan FROM translation WHERE modul='$namamodul'";
			$result = mysql_query($sql);
			while (list($konstanta, $terjemahan) = mysql_fetch_row($result)) {
				define($konstanta,$terjemahan);
			}
			if (file_exists("modul/$namamodul/widgetaksi.php")) include ("modul/$namamodul/widgetaksi.php");
			$widget .= "			</div>
";	//end wrapper
			$widget .= "		</div>
";	//end widgetcontent
			$widget .= "	<div class=\"widgetfooter\"></div>
";
			$widget .= "</div>
";	//end widget
			$widget .= "<div class=\"widgetseparator\"></div>
";
		} else {
			$widget .= "<div class=\"widget$posisi\" id=\"$posisi$i\">
";
			$widget .= "	<div class=\"widgetnoborder\">
";
			if (file_exists("modul/$namamodul/urasi.php")) include ("modul/$namamodul/urasi.php");
			$sql = "SELECT konstanta, terjemahan FROM translation WHERE modul='$namamodul'";
			$result = mysql_query($sql);
			while (list($konstanta, $terjemahan) = mysql_fetch_row($result)) {
				define($konstanta,$terjemahan);
			}
			if (file_exists("modul/$namamodul/widgetaksi.php")) include ("modul/$namamodul/widgetaksi.php");
			$widget .= "	</div>
";	//end widgetcontent
			$widget .= "</div>
";	//end widget
			$widget .= "<div class=\"widgetseparator\"></div>
";
		}
	}
	return $widget;
}

function showhome($posisi) {
	global $lang,$cfg_img_path, $cfg_fullsizepics_path, $cfg_thumb_url, $cfg_thumb_path, 
		$cfg_max_cols, $cfg_max_width, $cfg_thumb_width, $cfg_img_url, $mainblockwidth, 
		$rooturl, $cfg_carousel_height, $urlfunc, $jumlahtampilanmarquee, $cfg_app_url,
		$carousel_bgcolor, $config_site_templatefolder, $cfg_app_path, $namabulan;
	
		
	$sql1 = "SELECT h.id, h.type, h.judul, h.isi, h.isborder, ht.modul, ht.jenis FROM home h, hometype ht WHERE h.posisi='$posisi' AND h.type=ht.id ORDER BY h.urutan";
	$result1 = mysql_query($sql1);
	$i=0;
	while (list($homeblockid, $type, $judul, $isi, $isborder, $namamodul, $jenis)=mysql_fetch_row($result1)) {
		$i++;
		if ($isborder) {
			$home .= "<div class=\"block\" id=\"$posisi$i\">
";
			$home .= "	<div class=\"blocktitle\"><div class=\"wrapper\">$judul</div></div>
";
			$home .= "		<div class=\"blockcontent\">
";
			$home .= "			<div class=\"wrapper\">
";
			if (file_exists("modul/$namamodul/urasi.php")) include ("modul/$namamodul/urasi.php");
			$sql = "SELECT konstanta, terjemahan FROM translation WHERE modul='$namamodul'";
			$result = mysql_query($sql);
			while (list($konstanta, $terjemahan) = mysql_fetch_row($result)) {
				define($konstanta,$terjemahan);
			}
			if (file_exists("modul/$namamodul/homeaksi.php")) include ("modul/$namamodul/homeaksi.php");
			$home .= "			</div>
";	//end wrapper
			$home .= "		</div>
";	//end content
			$home .= "	<div class=\"blockfooter\"></div>
";
			$home .= "</div>
";	//end block
			$home .= "<div class=\"blockseparator\"></div>
";
		} else {
			//$home .= "<div class=\"block\">
";
			$home .= "	<div class=\"blocknoborder\">
";
			if (file_exists("modul/$namamodul/urasi.php")) include ("modul/$namamodul/urasi.php");
			$sql = "SELECT konstanta, terjemahan FROM translation WHERE modul='$namamodul'";
			$result = mysql_query($sql);
			while (list($konstanta, $terjemahan) = mysql_fetch_row($result)) {
				define($konstanta,$terjemahan);
			}
			if (file_exists("modul/$namamodul/homeaksi.php")) include ("modul/$namamodul/homeaksi.php");
			$home .= "	</div>
";	//end blockcontent
			//$home .= "</div>
";	//end block
			$home .= "<div class=\"blockseparator\"></div>
";
		}
	}
	return $home;
}
function mshowhome($posisi) {
	global $lang,$cfg_img_path, $cfg_fullsizepics_path, $cfg_thumb_url, $cfg_thumb_path, 
		$cfg_max_cols, $cfg_max_width, $cfg_thumb_width, $cfg_img_url, $mainblockwidth, 
		$rooturl, $cfg_carousel_height, $urlfunc, $jumlahtampilanmarquee, $cfg_app_url,
		$carousel_bgcolor, $config_site_templatefolder, $cfg_app_path, $namabulan;
	
	$sql1 = "SELECT h.id, h.type, h.judul, h.isi, h.isborder, ht.modul, ht.jenis FROM home h, hometype ht WHERE h.posisi='$posisi' AND h.type=ht.id ORDER BY h.urutan";
	$result1 = mysql_query($sql1);
	$i=0;
	while (list($homeblockid, $type, $judul, $isi, $isborder, $namamodul, $jenis)=mysql_fetch_row($result1)) {
		$i++;
		if ($isborder) {
			$home .= "<div class=\"block\" id=\"$posisi$i\">
";
			$home .= "	<div class=\"blocktitle\"><div class=\"wrapper\">$judul</div></div>
";
			$home .= "		<div class=\"blockcontent\">
";
			$home .= "			<div class=\"wrapper\">
";
			if (file_exists("$cfg_app_path/modul/$namamodul/urasi.php")) include ("$cfg_app_path/modul/$namamodul/urasi.php");
			$sql = "SELECT konstanta, terjemahan FROM translation WHERE modul='$namamodul'";
			$result = mysql_query($sql);
			while (list($konstanta, $terjemahan) = mysql_fetch_row($result)) {
				define($konstanta,$terjemahan);
			}
			if (file_exists("$cfg_app_path/modul/$namamodul/mhomeaksi.php")) 
				include ("$cfg_app_path/modul/$namamodul/mhomeaksi.php");
			else
				include ("$cfg_app_path/modul/$namamodul/homeaksi.php");
			$home .= "			</div>
";	//end wrapper
			$home .= "		</div>
";	//end content
			$home .= "	<div class=\"blockfooter\"></div>
";
			$home .= "</div>
";	//end block
			$home .= "<div class=\"blockseparator\"></div>
";
		} else {
			//$home .= "<div class=\"block\">
";
			$home .= "	<div class=\"blocknoborder\">
";
			if (file_exists("$cfg_app_path/modul/$namamodul/urasi.php")) include ("$cfg_app_path/modul/$namamodul/urasi.php");
			$sql = "SELECT konstanta, terjemahan FROM translation WHERE modul='$namamodul'";
			$result = mysql_query($sql);
			while (list($konstanta, $terjemahan) = mysql_fetch_row($result)) {
				define($konstanta,$terjemahan);
			}
			if (($type==2)||($type==19)){	//type untuk produk unggulan | poll
				if (file_exists("$cfg_app_path/modul/$namamodul/mhomeaksi.php")) include ("$cfg_app_path/modul/$namamodul/mhomeaksi.php");
			}else{
				if (file_exists("$cfg_app_path/modul/$namamodul/homeaksi.php")) include ("$cfg_app_path/modul/$namamodul/homeaksi.php");
			}
			$home .= "	</div>
";	//end blockcontent
			//$home .= "</div>
";	//end block
			$home .= "<div class=\"blockseparator\"></div>
";
		}
	}
	return $home;
}


function searchbox($namamodul) {
	global $urlfunc;
	if($urlfunc->is_permalink)
	{	$event = "submitSearchForm('".$urlfunc->makePretty("?p=$namamodul&action=search")."'); return false;";
		$searchform  = "<form method=\"GET\" action=\"$thisfile\" onsubmit=\"$event\" >
";
		$searchform .= "<input type=\"hidden\" name=\"action\" value=\"search\" />
";
		$searchform .= "<input type=\"hidden\" name=\"p\" value=\"$namamodul\" />
";
		$searchform .= "<input type=\"text\" name=\"keyword\" id=\"keyword\" class=\"searchboxtext\" /> <input type=\"submit\" value=\""._SEARCH."\" class=\"searchboxsubmit\" />
";
		$searchform .= "</form>
";
		
	}
	else
	{	$searchform  = "<form method=\"GET\" action=\"$thisfile\">
";
		$searchform .= "<input type=\"hidden\" name=\"action\" value=\"search\" />
";
		$searchform .= "<input type=\"hidden\" name=\"p\" value=\"$namamodul\" />
";
		$searchform .= "<input type=\"text\" name=\"keyword\" id=\"keyword\" class=\"searchboxtext\" /> <input type=\"submit\" value=\""._SEARCH."\" class=\"searchboxsubmit\" />
";
		$searchform .= "</form>
";
	}
	return $searchform;
}

function fiestopass($raw) {
//md5 is 32 digit,max symbol is 2 digit so password should be varchar(64)
    $symbol['0'] = "_^";
    $symbol['1'] = "^";
    $symbol['2'] = "[";
    $symbol['3'] = "}_";
    $symbol['4'] = "[]";
    $symbol['5'] = "_}";
    $symbol['6'] = "]";    
    $symbol['7'] = "^_";
    $symbol['8'] = "{";
    $symbol['9'] = "^{";    
    $symbol['a'] = "]_";
    $symbol['b'] = "]}";
    $symbol['c'] = "_";
    $symbol['d'] = "}";
    $symbol['e'] = "^}";
    $symbol['f'] = "{_";
	$pwd = 'F!#'.$raw.'5t0'.'bumbunyaswu'.strlen($raw);
	$pwd = md5(sha1($pwd));
	for($i=0; $i<strlen($pwd);$i++){
        $cooked .= $symbol[substr($pwd,$i,1)];
    }
    return $cooked;
}

function validatemail($email) 
{	if (preg_match("/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/",$email) || !preg_match("/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/",$email)) 
	{	return false;
	} else
	{	return true;
	}
}

function fiestomail($to, $subject, $message, $option, $islocal=TRUE, $addreply) {
global $cfg_app_path, $cfg_app_name, $smtpsecure, $smtphost, $smtpport, $smtpuser, $smtppass;
	if ($islocal) {
		$r_kepada = explode(',',$to);
		foreach ($r_kepada as $kepada) {
			$somecontent .= "To: $kepada
";
			$somecontent .= "Subject: $subject
";
			$somecontent .= "Message: $message
";
			$somecontent .= "Option: $option
";
			fiestolog($somecontent,'email.txt');
			$rec = date("d/m/y H:i:s")."	$kepada	$subject
";
			fiestolog($rec,'logmail.txt');
		}
		return true;
	} else {

		include("$cfg_app_path/aplikasi/phpmailer/class.phpmailer.php");
		include("$cfg_app_path/aplikasi/phpmailer/class.smtp.php"); // note, this is optional - gets called from main class if not already loaded

		$emailpengirim = explode(' ',$option);
		
		$mail = new PHPMailer();

		$r_kepada = explode(',',$to);
		foreach ($r_kepada as $kepada) {
			$mail->IsSMTP();
			$mail->SMTPAuth   = true;                  // enable SMTP authentication
			if ($smtpsecure!='') $mail->SMTPSecure = $smtpsecure;                 // sets the prefix to the servier
			$mail->Host       = $smtphost;  // sets GMAIL as the SMTP server
			$mail->Port       = $smtpport;  // set the SMTP port
			$mail->Username   = $smtpuser;  // GMAIL username
			$mail->Password   = $smtppass;	// GMAIL password

			$mail->From       = $emailpengirim[1];
			$mail->FromName   = $emailpengirim[1];
			$mail->Subject    = $subject;
			$mail->WordWrap   = 50; // set word wrap

			//$mail->MsgHTML($message);
			$mail->Body = $message;
			$mail->AddReplyTo($addreply,$emailpengirim[1]);
			$mail->AddAddress(trim($to));
			if($mail->Send()) {
				$rec = date("d/m/y H:i:s")."	$to	$subject
";
				fiestolog($rec,'logmail.txt');
			} else {
				return false;
			}
		}
		return true;
	}
}

function fiestolog($string,$filename) {
	global $cfg_app_path;
	$handle = fopen("$cfg_app_path/logs/$filename","a");
	fwrite($handle, $string);
	fclose($handle);
	return true;
}

function logcounter() {
	$sql = "SELECT DISTINCT visitor FROM counter";
	$result = mysql_query($sql);
	$visitor = '';
	while (list($visitor)=mysql_fetch_row($result)) {
		if (strpos($visitor,$_COOKIE['countertrack']) > -1) break;
	}
	if (isset($visitor)) {
		$sql = "UPDATE counter SET kunjungan=kunjungan+1 WHERE visitor='$visitor'";
		mysql_query($sql);
	} else {
		$visitor = md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].time());
		setCookie("countertrack",$visitor,time()+60*30);	//definisi unique visitor = 30 menit
		$sql = "INSERT INTO counter(visitor, kunjungan, tanggal) VALUES ('$visitor','1', NOW())";
		mysql_query($sql);
	}	
}

function delcounter()
{	
	$sql = "SELECT COUNT(kunjungan), SUM(kunjungan) FROM counter WHERE tanggal <= DATE_SUB(NOW(), INTERVAL 60 DAY)";
	$result = mysql_query($sql);
	list($visitors,$hits) = mysql_fetch_row($result);
	$sql = "UPDATE counterhistory SET nilai=nilai+$visitors WHERE nama='pasttimevisitors'";
	mysql_query($sql);
	$sql = "UPDATE counterhistory SET nilai=nilai+$hits WHERE nama='pasttimehits'";
	mysql_query($sql);
	$sql = "DELETE FROM counter WHERE tanggal <= DATE_SUB(NOW(), INTERVAL 60 DAY)";
	mysql_query($sql);
}

function createurutan($tabel, $parent_id="", $id="")
{	if($tabel=="menu")
	{	$kolom = "id, judul, urutan ";
		$kondisi = "parent='".$parent_id."' ";
		$sql = "SELECT $kolom FROM $tabel WHERE parent='".$parent_id."' AND id!='".$id."' ORDER BY urutan ASC ";
		
	}
	if($tabel=="home" or $tabel=="widget")
	{	$kolom = "id, judul, urutan ";
		$kondisi = "posisi='".$parent_id."' ";
		$sql = "SELECT $kolom FROM $tabel WHERE posisi='".$parent_id."' AND id!='".$id."' ORDER BY urutan ASC ";
	}
	if($tabel=="bannercat" or $tabel=="filecat" or $tabel=="linkcat" or $tabel=="newscat" or $tabel=="soundcat")
	{	$kolom = "id, nama, urutan ";
		$kondisi = "";
		$sql = "SELECT $kolom FROM $tabel WHERE id!='".$id."' ORDER BY urutan ASC ";
	}
	if($tabel=="gallerycat" or $tabel=="catalogcat")
	{	$kolom = "id, nama, urutan ";
		$kondisi = "parent='".$parent_id."' ";
		$sql = "SELECT $kolom FROM $tabel WHERE parent='".$parent_id."' AND id!='".$id."' ORDER BY urutan ASC ";
		
	}
	
	$result = mysql_query($sql);
	$total = mysql_num_rows($result);
	
	$bottomval = 1;
	
	$sqlurut = "SELECT id FROM $tabel 
				WHERE urutan<(
					SELECT urutan FROM $tabel WHERE id='".$id."' ";
	$sqlurut .= ((strlen($kondisi)>0)?"AND $kondisi ":"");
	$sqlurut .= ") ";
	$sqlurut .= ((strlen($kondisi)>0)?"AND $kondisi ":"");
	$sqlurut .= "ORDER BY urutan DESC LIMIT 1 ";
	
	$resulturut = mysql_query($sqlurut);
	list($idprev) = mysql_fetch_row($resulturut);
		
	$hasil = "<select name=\"urutan\" id=\"urutan\">";
		
	if($total>0)
	{	$hasilopsi = "";
		while(list($iddt, $judul, $urutan) = mysql_fetch_row($result))
		{	$selected = (($iddt==$idprev)?"selected=\"selected\" ":"");
			$hasilopsi .= "<option value=\"".($urutan+1)."\" $selected >"._BELOW." ".$judul."</option>";
			$bottomval = $urutan+1;
		}
	}
		
	if($total>0 )
	{	$selected = ((strlen($idprev)==0 and $total>0)?"selected=\"selected\" ":"");
		if(strlen($id)>0)
		{	$sqlmax = "SELECT MAX(urutan) as maximum FROM $tabel ";
			$sqlmax .= ((strlen($kondisi)>0)?"WHERE $kondisi ":"");
			$resultmax = mysql_query($sqlmax);
			if(mysql_num_rows($resultmax)>0)
			{	list($maxurutan) = mysql_fetch_row($resultmax);
				if($maxurutan>0)
				{	$sqlmaxid = "SELECT id FROM $tabel WHERE urutan='$maxurutan' ";
					$sqlmaxid .= ((strlen($kondisi)>0)?"AND $kondisi ":"");
					$resultmaxid = mysql_query($sqlmaxid);
					if(mysql_num_rows($resultmaxid)>0)
					{	list($maxurutanid) = mysql_fetch_row($resultmaxid);
						if($maxurutanid==$id and $maxurutanid>0 and $total<=1)
						{	$selected = "selected=\"selected\" ";
						}
						else
						{	$selected = "";
						}
						
					}
				}
			}
		}
		
		$hasil .= "<option value=\"$bottomval\" $selected>"._BOTTOMMOST."</option>";
	}
	
	$selected = ((strlen($idprev)==0 and $total==0)?"selected=\"selected\" ":"");
	if(strlen($selected)==0 and strlen($idprev)==0 and strlen($id)>0)
	{	$sqlpalingatas = "SELECT id FROM $tabel WHERE id='".$id."' ";
		$sqlpalingatas .= ((strlen($kondisi)>0)?"AND $kondisi ":"");
		$resultpalingatas = mysql_query($sqlpalingatas);
		if(mysql_num_rows($resultpalingatas)>0)
		{	$selected = "selected=\"selected\" ";
		}
	}
	$hasil .= "<option value=\"1\" $selected>"._TOPMOST."</option>";
	if($total>1)
	{	$hasil .= $hasilopsi;
	}
	/*
	elseif(strlen($id)>0)
	{	$hasil .= $hasilopsi;
	}
	*/
	$hasil .= "</select>";
	return $hasil;
}


function urutkan($tabel, $urutan, $kondisi="", $id="", $kondisiprev="")
{	$urutansebelumnya = "";
	$kondisi = trim($kondisi);
	$kondisiprev = trim($kondisiprev);
	if(strlen($id)>0)
	{	$sqlurut = "SELECT urutan FROM $tabel WHERE id='".$id."'";
		$resulturut = mysql_query($sqlurut);
		list($urutansebelumnya) = mysql_fetch_row($resulturut);
		$mx = getMaxNumber($tabel, 'urutan')+5;
		$sql = "UPDATE $tabel SET urutan='$mx' WHERE id='".$id."'";
		$result = mysql_query($sql);
	}
	$sql = "UPDATE $tabel SET urutan=urutan+1 WHERE ";
	$sql .= "urutan>='".$urutan."' ";	
	$sql .= ((strlen($kondisi)>0)?"AND $kondisi":"");
	$result = mysql_query($sql);
	if(strlen($urutansebelumnya)>0 and $kondisi==$kondisiprev)
	{	$sql = "UPDATE $tabel SET urutan=urutan-1 WHERE urutan>='".($urutansebelumnya+1)."' ".((strlen($kondisi)>0)?"AND $kondisi":"");
		$result = mysql_query($sql);
	}
	
	$sql = "select * FROM $tabel ".((strlen($kondisi)>0)?"WHERE $kondisi":"");
	$total = mysql_num_rows(mysql_query($sql));
	//echo $sql;
	
	if(strlen($urutansebelumnya)>0 and $kondisi==$kondisiprev and $urutansebelumnya<$urutan)
	{	if($urutan>($total+1))
		{	$urutan = $total;
		}
		$sql = "UPDATE $tabel SET urutan='".($urutan-1)."' WHERE id='".$id."'";
	}
	else
	{	if($urutan>$total)
		{	$urutan = $total;
		}
		$sql = "UPDATE $tabel SET urutan='".$urutan."' WHERE id='".$id."'";
	}
	$result = mysql_query($sql);
	return $result;
}

function getMaxNumber($tabel, $kolom, $kondisi="")
{	$sql = "SELECT max($kolom) FROM $tabel ";
	if(strlen($kondisi)>0)
	{	$sql .= "WHERE $kondisi ";
	}
	$result = mysql_query($sql);
	list($max) = mysql_fetch_row($result);
	return $max;
}

function urutkansetelahhapus($tabel, $kondisi="")
{	$sql = "SELECT id, urutan FROM $tabel ".((strlen($kondisi)>0)?"WHERE $kondisi":"")." ORDER BY urutan ASC ";
	$result = mysql_query($sql);
	$index = 1;
	while(list($id, $urutan) = mysql_fetch_row($result))
	{	if($urutan!=$index)
		{	$sqlupdate = "UPDATE $tabel SET urutan='".$index."' WHERE id='".$id."'";
			mysql_query($sqlupdate);
		}
		$index++;
	}
}

// Function Ping (Update) Google Sitemaps Otomatis
function pingGoogleSitemaps( $url_xml )
{
   $status = 0;
   $google = 'www.google.com';
   if( $fp=@fsockopen($google, 80) )
   {
      $req =  'GET /webmasters/sitemaps/ping?sitemap=' .
              urlencode( $url_xml ) . " HTTP/1.1
" .
              "Host: $google
" .
              "User-Agent: Mozilla/5.0 (compatible; " .
              PHP_OS . ") PHP/" . PHP_VERSION . "
" .
              "Connection: Close

";
      fwrite( $fp, $req );
      while( !feof($fp) )
      {
         if( @preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m) )
         {
            $status = intval( $m[1] );
            break;
         }
      }
      fclose( $fp );
   }
	if( 200 === $status )
	{	$content .= "Ping to Google Sitemaps successful.

Status code: $status.";
	}
	else
	{	$content .= "Cannot ping/connect to Google Sitemaps.

Status code: $status.";
	}
	//echo $content;
   return( $status );
}

function getNextAutoIncrement($tablename)
{	$query = mysql_query("SHOW TABLE STATUS LIKE '$tablename' ");
	$row = mysql_fetch_array($query);
	$next_id = $row["Auto_increment"] ;
	return $next_id;
}

function ftp_sync ($dir) {

    global $conn_id;

    if ($dir != ".") {
        if (ftp_chdir($conn_id, $dir) == false) {
            echo ("<p>Change Dir Failed: $dir</p>
");
            return;
        }
        if (!(is_dir($dir)))
            mkdir($dir);
        chdir ($dir);
    }

    $contents = ftp_nlist($conn_id, ".");
    foreach ($contents as $file) {
   
        if ($file == '.' || $file == '..')
            continue;
       
        if (@ftp_chdir($conn_id, $file)) {
            ftp_chdir ($conn_id, "..");
            ftp_sync ($file);
        }
        else
            ftp_get($conn_id, $file, $file, FTP_BINARY);
    }
       
    ftp_chdir ($conn_id, "..");
    chdir ("..");

} 

function smartcopy($source, $dest, $options=array('folderPermission'=>0755,'filePermission'=>0644))
{
/**
 * Copy file or folder from source to destination, it can do
 * recursive copy as well and is very smart
 * It recursively creates the dest file or directory path if there weren't exists
 * Situtaions :
 * - Src:/home/test/file.txt ,Dst:/home/test/b ,Result:/home/test/b -> If source was file copy file.txt name with b as name to destination
 * - Src:/home/test/file.txt ,Dst:/home/test/b/ ,Result:/home/test/b/file.txt -> If source was file Creates b directory if does not exsits and copy file.txt into it
 * - Src:/home/test ,Dst:/home/ ,Result:/home/test/** -> If source was directory copy test directory and all of its content into dest     
 * - Src:/home/test/ ,Dst:/home/ ,Result:/home/**-> if source was direcotry copy its content to dest
 * - Src:/home/test ,Dst:/home/test2 ,Result:/home/test2/** -> if source was directoy copy it and its content to dest with test2 as name
 * - Src:/home/test/ ,Dst:/home/test2 ,Result:->/home/test2/** if source was directoy copy it and its content to dest with test2 as name
 * @todo
 *     - Should have rollback technique so it can undo the copy when it wasn't successful
 *  - Auto destination technique should be possible to turn off
 *  - Supporting callback function
 *  - May prevent some issues on shared enviroments : http://us3.php.net/umask
 * @param $source //file or folder
 * @param $dest ///file or folder
 * @param $options //folderPermission,filePermission
 * @return boolean
 */
	$result=false;
   
	if (is_file($source)) {
		if ($dest[strlen($dest)-1]=='/') {
			if (!file_exists($dest)) {
				cmfcDirectory::makeAll($dest,$options['folderPermission'],true);
			}
			$__dest=$dest."/".basename($source);
		} else {
			$__dest=$dest;
		}
		$result=copy($source, $__dest);
		chmod($__dest,$options['filePermission']);
	   
	} elseif(is_dir($source)) {
		if ($dest[strlen($dest)-1]=='/') {
			if ($source[strlen($source)-1]=='/') {
				//Copy only contents
			} else {
				//Change parent itself and its contents
				$dest=$dest.basename($source);
				@mkdir($dest);
				chmod($dest,$options['filePermission']);
			}
		} else {
			if ($source[strlen($source)-1]=='/') {
				//Copy parent directory with new name and all its content
				@mkdir($dest,$options['folderPermission']);
				chmod($dest,$options['filePermission']);
			} else {
				//Copy parent directory with new name and all its content
				@mkdir($dest,$options['folderPermission']);
				chmod($dest,$options['filePermission']);
			}
		}

		$dirHandle=opendir($source);
		while($file=readdir($dirHandle))
		{
			if($file!="." && $file!="..")
			{
				 if(!is_dir($source."/".$file)) {
					$__dest=$dest."/".$file;
				} else {
					$__dest=$dest."/".$file;
				}
				//echo "$source/$file ||| $__dest<br />";
				$result=smartCopy($source."/".$file, $__dest, $options);
			}
		}
		closedir($dirHandle);
	   
	} else {
		$result=false;
	}
	return $result;
} 

function deltree($dir) {
    $files = glob( $dir . '*', GLOB_MARK );
    foreach( $files as $file ){
        if( is_dir( $file ) )
            deltree( $file );
        else
            unlink( $file );
    }
    if (is_dir($dir)) rmdir( $dir );
}
?>

Did this file decode correctly?

Original Code

<?php $_F=__FILE__;$_X='P3l7PzhTOGlpYWE9RDlbMjVaSVUyNUZpY0Y1OW5qeDVJRFpVajVVMjVGKCRMMmIyTCwkUlB4RjgpSWVpCVJMeD1ETEkkOWNSX0Q4OF84RG5TLCQ5Y1JfRDg4X0ZQTCwkTEQ1UiwkUzJEblVEOEZQTCwkUkRGUEw7aQkkL3BMSXpJIksuaC43WUlqWixJNURVRCxJckZaRkwsSUQ5OTIvL0lxRW1HSVV4WkZMMklYQy5FLklSUEY4eickUlB4RjgnSW1FQS5FSTEgSVJQRjgsSXJGWkZMIjtpCSRQMi9GTG56VTwvcExfcEYyUDwoJC9wTCk7aQlpCSRVMjVGSXpJIntGTElqWnpcIkRaVWo1VTI1RiRSUHhGOFwieVxQXDUiO2kJMFNqTDJJKExqL24oJGpaLEkkNURVRCxJJHJGWkZMVXhaRkwsSSREOTkyLy8pelU8L3BMX2MybjlTX1B4MCgkUDIvRkxuKSlJZQkJaQkJJC84TGpuRDk5Mi8vSXpJMlE4THhaMigiLCIsJEQ5OTIvLyk7aQkJY3hQMkQ5U0koJC84TGpuRDk5Mi8vSUQvSSRELy9qUjUyWilJZWkJCQlqY0koJDVEVUR6eic4LzJGWngnKUllaQkJCQkvMGpuOVNJKCRyRlpGTFV4WkZMKUllaQkJCQkJOUQvMkknN0xqOVtJQzJEbklHRDgnOmkJCQkJCQlqY0koJEwyYjJMenokRC8valI1MlopSSRVMjVGSVR6SSJ7TGp5e0RJU1AyY3pcIiQ5Y1JfRDg4X0ZQTGFEOExqW0QvamFbTGpbXCJJalp6XCJTMkRuVUQ4XCJ5ey84RDV5JHJGWkZMVXhaRkx7LzhENXl7YUR5e2FManlcUFw1IjtpCQkJCQkJPVAyRFs7aQkJCQkJOUQvMkkna3h4UkwySW81REw8bmo5Lyc6aQkJCQkJCWpjSSgkTDJiMkx6eiRELy9qUjUyWilJJFUyNUZJVHpJIntManl7RElTUDJjelwiU25uOC86YWEwMDBUUnh4UkwyVDl4VWFENURMPG5qOS9hUDI4eFBuajVSYUx4Umo1XCJJalp6XCJSeHhSTDJcInl7LzhENXkkckZaRkxVeFpGTHsvOEQ1eXthRHl7YUxqeVxQXDUiO2kJCQkJCQk9UDJEWztpCQkJCTZpCQkJNkkyTC8ySWVpCQkJCWpjSSgkTDJiMkx6eiRELy9qUjUyWilJZWkJCQkJCWpjSSgkNURVRCF6J1UyVT0yUCdJfHxJKCQ1RFVEenonVTJVPTJQJ0kmJkkkTDJiMkx6ekIpKUkkVTI1RklUekkie0xqeXtESVNQMmN6XCIkOWNSX0Q4OF9GUExhWzJMeExEYWo1WjJRVDhTOD84eiQ1RFVEXCJJalp6XCIkNURVRFwieXsvOEQ1eSRyRlpGTFV4WkZMe2EvOEQ1eXthRHl7YUxqeVxQXDUiO2kJCQkJNmkJCQk2aQkJNgkJaQk2aQkkVTI1RklUekkie2FGTHlcUFw1IjtpCVAybkZQNUkkVTI1RjtpNmlpYWFjUHg1bjI1WklVMjVGaWNGNTluang1SVUyNUYvblBGOW5GUDIoKUllaQlSTHg9RExJJDljUl9EODhfRlBMLEkkOWNSX0Q4OF84RG5TLEkkRlBMY0Y1OTtpCSQvcExJekkiSy5oLjdZSWpaLEk4RFAyNW4sSW48ODIsSXJGWkZMLElqL2pJcUVtR0lVMjVGSW1FQS5FSTEgSUZQRm5ENSI7aQkkOURuL0l6STUyMEk5RG4yUnhQajIvKCk7aQkkVTw5RG4vSXpJRFBQRDwoKTtpCSRQMi9GTG5JeklVPC9wTF9wRjJQPCgkL3BMKTtpCTBTakwyKCRQeDBJeklVPC9wTF9jMm45U19EUFBEPCgkUDIvRkxuKSlJZWkJCSQvcEx2SXpJIksuaC43WUlGUEw4RG5uMlA1LElVeFpGTCxJcjI1ai9JcUVtR0lVMjVGbjw4MklYQy5FLklqWnonIlQkUHgwdCduPDgyJ0pUIiciO2kJCSRQMi9GTG52SXpJVTwvcExfcEYyUDwoJC9wTHYpO2kJCUxqL24oJEZQTDhEbm4yUDUsSSRVeFpGTFUyNUYsSSRyMjVqL1UyNUYpSXpJVTwvcExfYzJuOVNfUHgwKCRQMi9GTG52KTtpCQkkRlBMSXpJL25QX1AyOExEOTIoJ3RiRFBKJywkUHgwdCdqL2onSiwkRlBMOERubjJQNSk7aQkJaQkJJG5qbkwyRlBMSXpJRFBQRDwoKTtpCQlqYygvRj0vblBfOXhGNW4oJEZQTCxJIjhqWnoiKXlCKWkJCWUJamMoJFV4WkZMVTI1Rnp6IjhEUjIiKWkJCQllCSRuRD0yTEl6SSRVeFpGTFUyNUY7aQkJCQkkW3hMeFVJekkickZaRkwiO2kJCQk2aQkJCTJMLzJpCQkJZQkkbkQ9MkxJekkkVXhaRkxVMjVGVCJaRG5EIjtpCQkJCSRbeEx4VUl6SSgoJFV4WkZMVTI1Rnp6IjUyMC8iKT8ickZaRkw9MlBqbkQiOiJuam5MMiIpO2kJCQk2CQkJaQkJCSQvcExyRlpGTEl6SSJLLmguN1lJJFt4THhVSXFFbUdJJG5EPTJMSVhDLkUuSWpaeiciVCRQeDB0J2ovaidKVCInSSI7aQkJCSRQMi9GTG5yRlpGTEl6SVU8L3BMX3BGMlA8KCQvcExyRlpGTCk7aQkJCUxqL24oJGpuMlU1RFUyKUl6SVU8L3BMX2MybjlTX1B4MCgkUDIvRkxuckZaRkwpO2kJCQkkbmpuTDJGUEx0IjhqWiJKSXpJJGpuMlU1RFUyO2kJCTZpCQkyTC8yamMoL0Y9L25QXzl4RjVuKCRGUEwsSSI5RG5falp6Iil5QilpCQllCSQvcExyRlpGTEl6SSJLLmguN1lJNURVRElxRW1HSSJUJFV4WkZMVTI1RlQiOURuSVhDLkUuSWpaeiciVCRQeDB0J2ovaidKVCInSSI7aQkJCSRQMi9GTG5yRlpGTEl6SVU8L3BMX3BGMlA8KCQvcExyRlpGTCk7aQkJCUxqL24oJDlEbjVEVTIpSXpJVTwvcExfYzJuOVNfUHgwKCRQMi9GTG5yRlpGTCk7aQkJCSRuam5MMkZQTHQiOURuX2paIkpJekkkOURuNURVMjtpCQk2aQkJaQkJamMoL25QTDI1KCRGUEwpeUIpaQkJZQkkRlBMSXpJJEZQTGNGNTkteVVEWzI0UDJubjwoJEZQTCxJJG5qbkwyRlBMKTtpCQk2aQkJJFU8OURuL3RKSXpJRFBQRDwoJ2paJ3p5JFB4MHQnalonSiwnOERQMjVuJ3p5JFB4MHQnOERQMjVuJ0osJ248ODInenkkUHgwdCduPDgyJ0osJ3JGWkZMJ3p5JFB4MHQnckZaRkwnSiwnRlBMJ3p5JEZQTCwnTDJiMkwnenlCKTtpCQlpCQlpCQlhYWpjKCRVeFpGTFUyNUZ6eiI5RG5ETHhSIklENVpJL25QTDI1KCRGUEwpenpCKWkJCWFhZQlpCQkJamNJKGNqTDJfMlFqL24vKCIkOWNSX0Q4OF84RG5TYVV4WkZMYSRVeFpGTFUyNUZhVTI1RkRbL2pUOFM4IikpSWo1OUxGWjJJKCIkOWNSX0Q4OF84RG5TYVV4WkZMYSRVeFpGTFUyNUZhVTI1RkRbL2pUOFM4Iik7aQkJYWE2CWkJCQlpCTZpCSQ5RG4vLXlSMm5fOURuLygkVTw5RG4vKTtpaQkkOUZQUEwyYjJMSXpJdjtpCSQ5RG45eDVuMjVuSVR6SSJ7RkxJalp6XCI1RGJcInlcUFw1IjtpCWN4UEkoJGp6QjtJJGp7OXhGNW4oJDlEbi8teTlEbi8pO0kkaisrKUllaQkJJFBqUlNub0xqUjVJeklCO2kJCWpjSSgkOURuLy15OURuL3Qkakp0J0ZQTCdKSXp6SScnKUllaQkJCWpjSSgkOURuLy15OURuL3Qkakp0J0wyYjJMJ0pJenpJdilJaQkJCQkkVTI1RmpuMlVJekkie0xqSTlMRC8velwibng4XCJ5e0RJU1AyY3pcIiNcIkk5TEQvL3pcIm54OF9MajVbXCJ5ey84RDVJOUxELy96XCJaeDA1XCJ5IlQkOURuLy15OURuL3Qkakp0J3JGWkZMJ0pUInthLzhENXl7YUR5IjtpCQkJMkwvMmkJCQkJJFUyNUZqbjJVSXpJIntManl7RElTUDJjelwiI1wiSTlMRC8velwiY0w8XCJ5IlQkOURuLy15OURuL3Qkakp0J3JGWkZMJ0pUInthRHkiO2kJCTZJMkwvMkllaQkJCWpjSSgkOURuLy15OURuL3Qkakp0J0wyYjJMJ0pJenpJdilJaQkJCQkkVTI1RmpuMlVJekkie0xqSTlMRC8velwibng4XCJ5e0RJU1AyY3pcIiJUJDlEbi8teTlEbi90JGpKdCdGUEwnSlQiXCJJOUxELy96XCJueDhfTGo1W1wieXsvOEQ1eSJUJDlEbi8teTlEbi90JGpKdCdyRlpGTCdKVCJ7YS84RDV5e2FEeXthTGp5XFBcNSI7aQkJCTJMLzJJZWkJCQkJJFUyNUZqbjJVSXpJIntManl7RElTUDJjelwiIlQkOURuLy15OURuL3Qkakp0J0ZQTCdKVCJcInkiVCQ5RG4vLXk5RG4vdCRqSnQnckZaRkwnSlQie2FEeXthTGp5XFBcNSI7aQkJCTZpCQk2aQkJJC8yTGovalNMMmIyTHokOURuLy15OURuL3Qkakp0J0wyYjJMJ0otJDlGUFBMMmIyTDtpCQlqY0koJC8yTGovalNMMmIyTHlCKUllaQkJCWpjSSgkOURuLy15OURuL3Qkakp0J0wyYjJMJ0pJe3pJCilJaQkJCQkkOURuOXg1bjI1bklUekkie0ZMSTlMRC8velwiL0Y9XCJ5XFBcNSI7aQkJCTJMLzJpCQkJCSQ5RG45eDVuMjVuSVR6SSJ7Rkx5IjtpCQkJJDlEbjl4NW4yNW5JVHpJIiRVMjVGam4yVVxQXDUiO2kJCTZpCQlqY0koJC8yTGovalNMMmIyTHp6QilJZWkJCQkkOURuOXg1bjI1bklUekkiJFUyNUZqbjJVXFBcNSI7aQkJNmkJCWpjSSgkLzJMai9qU0wyYjJMe0IpSWVpCQkJY3hQSSgkcnpCO0kkcnstJC8yTGovalNMMmIyTDtJJHIrKylJZWkJCQkJJDlEbjl4NW4yNW5JVHpJInthRkx5e2FManlcUFw1IjtpCQkJCWpjSSgkOURuLy15OURuL3Qkakp0J25qODInSnp6J0InKUkkOURuOXg1bjI1bklUekkie2FManlcUFw1IjtpCQkJNmkJCQkkOURuOXg1bjI1bklUekkiJFUyNUZqbjJVXFBcNSI7aQkJNmkJCSQ5RlBQTDJiMkx6JDlEbi8teTlEbi90JGpKdCdMMmIyTCdKO2kJNglpCSQ5RG45eDVuMjVuSVR6SSJ7YUZMeSI7aQlQMm5GUDVJJDlEbjl4NW4yNW47aTZpaWNGNTluang1SWIyUGpjPEQ5OTIvLygkTDJiMkwsJG54PTJiMlBqY2oyWilJZWkJUkx4PURMSSRQeHhuRlBMLCQ5Y1JfRDg4X0ZQTDtpCSQvcExJekkiSy5oLjdZSUQ5OTIvL0lxRW1HSVV4WkZMMklYQy5FLkk1RFVEeickbng9MmIyUGpjajJaJyI7aQkkUDIvRkxuelU8L3BMX3BGMlA8KCQvcEwpO2kJTGovbigkRDk5Mi8vKXpVPC9wTF9jMm45U19QeDAoJFAyL0ZMbik7aQkkLzhMam5EOTkyLy9JekkyUThMeFoyKCIsIiwkRDk5Mi8vKTtpCWN4UDJEOVNJKCQvOExqbkQ5OTIvL0lEL0kkRC8valI1MlopSWVpCQlqY0koJEwyYjJMenokRC8valI1MlopSWVpCQkJUDJuRlA1SVlFVy47aQkJNmkJNmkJUDJuRlA1SXFvaEsuO2k2aWljRjU5bmp4NUk4RFJqNURuang1KCQ1RFVEVXhaRkwsJC85UDIyNXonJywkOFBVblB6JycsSSRuam5MMnpEUFBEPCgpSSlJZWkJUkx4PURMSSQ4RFIyLyxJJDljUl9EODhfRlBMLEkkRlBMY0Y1OTtpCSRTRExJVHpJSV80b2suO2kJJG5EVT1EU0Q1SXoJKCgvRj0vblBfOXhGNW4oJDhQVW5QLEknRDluang1Jyl6ekIpPyImRDluang1eiI6IiIpO2kJaQlqY0koIWovLzJuKCQvOVAyMjUpKWVpCQkkLzlQMjI1SXpJQjtpCTZpCWpjSSgkLzlQMjI1SXlJQilJZWkJCSQ4UDJiSXpJJC85UDIyNUktSXY7aQkJamNJKCQ4UFVuUHp6IiIpSWVpCQkJJFNETElUeklJIntESVNQMmN6XCIiVCRGUExjRjU5LXlVRFsyNFAybm48KCI/OHokNURVRFV4WkZMJG5EVT1EU0Q1Ji85UDIyNXokOFAyYiIsSSRuam5MMilUIlwieSZMbjt7YUR5XFBcNSI7aQkJNkkyTC8ySWVpCQkJJFNETElUeklJIntESVNQMmN6XCIiVCRGUExjRjU5LXlVRFsyNFAybm48KCI/OHokNURVRFV4WkZMJG5EVT1EU0Q1JiQ4UFVuUCYvOVAyMjV6JDhQMmIiLEkkbmpuTDIpVCJcInkmTG47e2FEeVxQXDUiO2kJCQlpCQk2aQk2SWkJY3hQSSgkakl6SUI7SSRqSXtJJDhEUjIvO0kkaisrKUllaQkJJFpqLzhMRDxfNUZVekkoJGpJK0l2KTtpCQlqY0koJC85UDIyNUl6ekkkaillaQkJCSRTRExJVHpJSSJJez15JFpqLzhMRDxfNUZVe2E9eSI7aQkJNkkyTC8ySWVpCQkJamNJKCQ4UFVuUHp6IiIpSWVpCQkJCSRTRExJVHpJSSJJe0RJU1AyY3pcIiJUJEZQTGNGNTkteVVEWzI0UDJubjwoIj84eiQ1RFVEVXhaRkwkbkRVPURTRDUmLzlQMjI1eiRqIixJJG5qbkwyKVQiXCJ5JFpqLzhMRDxfNUZVe2FEeSI7aQkJCTZJMkwvMkllaQkJCQkkU0RMSVR6SUkiSXtESVNQMmN6XCIiVCRGUExjRjU5LXlVRFsyNFAybm48KCI/OHokNURVRFV4WkZMJG5EVT1EU0Q1JiQ4UFVuUCYvOVAyMjV6JGoiLEkkbmpuTDIpVCJcInkkWmovOExEPF81RlV7YUR5IjtpCQkJNmkJCTZpCTZpCWpjSSgkLzlQMjI1SXtJJDhEUjIvKUllaQkJJDUyUW5JekkkLzlQMjI1SStJdjtpCQlqY0koJDUyUW5Je0kkOERSMi9JKWVpCQkJamNJKCQ4UFVuUHp6IiIpSWVpCQkJCSRTRExJVHpJSSJJe0RJU1AyY3pcIiJUJEZQTGNGNTkteVVEWzI0UDJubjwoIj84eiQ1RFVEVXhaRkwkbkRVPURTRDUmLzlQMjI1eiQ1MlFuIixJJG5qbkwyKVQiXCJ5JlJuO3thRHlcUFw1IjtpCQkJNkkyTC8ySWVpCQkJCSRTRExJVHpJSSJJe0RJU1AyY3pcIiJUJEZQTGNGNTkteVVEWzI0UDJubjwoIj84eiQ1RFVEVXhaRkwkbkRVPURTRDUmJDhQVW5QJi85UDIyNXokNTJRbiIsSSRuam5MMilUIlwieSZSbjt7YUR5XFBcNSI7aQkJCTZpCQk2aQk2aQlqY0koJDhEUjIvSXp6SXYpSWVpCQkkU0RMSVR6SUkiez1QeSJUX1ltWW9oVCQ4RFIyL1RfNG9rLktkZ2tXaG9FO2kJNkkyTC8ySWVpCQkkU0RMSVR6SUkiez1QeSJUX1ltWW9oVCQ4RFIyL1RfNG9rLjRoV0VvaDtpCTZpCVAybkZQNUkkU0RMO2k2aWljRjU5bmp4NUlSMm5QRDVaeFU1RlU9MlAoKUllaQkkU0Qvakx6Jyc7aQljeFBJKCRqekI7JGp7dTskaisrKUllaQkJJFNEL2pMVHpQRDVaKEIsdSk7aQk2aQlQMm5GUDVJJFNEL2pMO2k2aWljRjU5bmp4NUljajIvbnhGOEx4RFooJGNqMkxaNURVMiwkWjIvblpqUCwkWjIvbmNqTDIsJFVEUS9qfTIsJERMTHgwMlpuPDgyL3oiUmpjLHI4UixyODJSLDg1UiIpSWVpaWEqaSRjajJMWjVEVTJJOkljajJMWkk1RFUySVpqSWN4UFVpJFoyL25aalBJOklaalAyW254UGpJbkZyRkQ1aSRaMi9uY2pMMkk6STVEVURJY2pMMkkoVWo1Ri9JMlFuMjUvang1LEkwU2o5U0lqL0lETDBEPC9JblMySS9EVTJJRC9JRjhMeERaMlopaSRVRFEvan0ySTpJRltGUEQ1SVVEWy9qVUZVSVpETERVST08bjJJKFNEUEYvSVt4NS9qL24yNUlaMjVSRDVJR29NX3FkaC5fS2RILklaaklTblVMKWkkTEQ1Ukk6SSh4OG5qeDVETClJPURTRC9EVElaMmNERkxueiJqWiJUaSRETEx4MDJabjw4Mi9JOkkoeDhuang1REwpSXIyNWovSTJRbjI1L2p4NUk8RDVSSVpqan1qNVtENSxJWmo4ai9EU1tENUluRDVaRElbeFVEVElaMmNERkxuSXpJIlJqYyxyOFIscjgyUiw4NVIiVGkqYWlpCWpjSSgkX3FkaC5LdCRjajJMWjVEVTJKdCc1RFUyJ0pJIXpJJycpSWVpCQkkVURRL2p9Mmo1Wz1JeklqNW5iREwoJFVEUS9qfTJhdkJCQik7aWkJYWFxakxuMlBJdjpJOTJbSUQ4RFtEU0ljakwySW4yUEY4THhEWklaMjVSRDVJPTI1RFBpCQkvMGpuOVNJKCRfcWRoLkt0JGNqMkxaNURVMkp0JzJQUHhQJ0opSWVpCQkJOUQvMklXNGhtb0FfLkVFX2RnZF9LZEguOmkJCQk5RC8ySVc0aG1vQV8uRUVfcW1FR19LZEguOmkJCQkJUDJuRlA1SV9xZGguWW1tMWRrVCJJJFVEUS9qfTJqNVs9SVs9PG4yL1QiO2kJCQkJPVAyRFs7aQkJCTlELzJJVzRobW9BXy5FRV80b0VZZG9oOmkJCQkJUDJuRlA1SV9xZGguNG9FWWRvaDtpCQkJCT1QMkRbO2kJCQk5RC8ySVc0aG1vQV8uRUVfZ21fcWRoLjppCQkJCVAybkZQNUlfcWRoLi5FRW1FdjtpCQkJCT1QMkRbO2kJCTZpaQlhYXFqTG4yUEkKOkk5MltJRDhEW0RTSUZbRlBENUkvMi9GRGpJPEQ1Uklaamp9ajVbRDVUSTEyWkRJWjI1UkQ1SWNqTG4yUEl2STxENVJJVTJVPUQ1Wmo1UltENUluMlBTRFpEOEkvMm5uajVSSThTOFRqNWosSS8yW0RQRDVSSVpqPUQ1Wmo1UltENUlaMjVSRDVJRG5GUEQ1STxENVJJWmo9RkRuSS8yNVpqUGpJWmpJOXg1Y2pSaQkJamNJKCRfcWRoLkt0JGNqMkxaNURVMkp0Jy9qfTInSkl5SSRVRFEvan0yKUllaQkJCVAybkZQNUlfcWRoLlltbTFka1QiSSRVRFEvan0yajVbPUlbPTxuMi9UIjtpCQk2aWkJYWFxakxuMlBJZjpJOTJbSUQ4RFtEU0kyUW4yNS9qeDVJLzIvRkRqSTxENVJJWmpqfWo1W0Q1aWkJCSRQRExMeDAyWm48ODIvSXpJMlE4THhaMignLCcsJERMTHgwMlpuPDgyLyk7aQkJJG4yVThJekkyUThMeFoyKCdUJywkX3FkaC5LdCRjajJMWjVEVTJKdCc1RFUyJ0opO2kJCSQyUW4yNS9qeDVJekkvblBueEx4MDJQKCRuMlU4dDl4RjVuKCRuMlU4KS12Sik7aWkJCSRqL0RMTHgwMlpJekljREwvMjtpCQljeFAyRDlTSSgkUERMTHgwMlpuPDgyL0lEL0kkRExMeDAyWm48ODIpSWVpCQkJamNJKCQyUW4yNS9qeDVJenpJJERMTHgwMlpuPDgyKUkkai9ETEx4MDJaSXpJblBGMjtpCQkJaQkJCWkJCTZpaQkJamNJKCEkai9ETEx4MDJaKUllaQkJCVAybkZQNUlfb2hobVguQVkgNC5UIkkkRExMeDAyWm48ODIvVCI7aQkJCWkJCTZpaQlhYXFqTG4yUElPOkk5MltJRDhEW0RTST0yNURQLT0yNURQSWNqTDJJUkRVPURQSShTRDU8RElyaltESSRETEx4MDJabjw4Mi96IlJqYyxyOFIscjgyUiw4NVIiKWkJYWFZalpEW0k5MltJR2RHLi1uPDgySVtEUDI1REk9RFBGPURTLUY9RFNJbjJQRi9pCWFhWWpaRFtJOTJbSTJRbjI1L2p4NUlbRFAyNURJNUQ1bmpJWmo4RFsvREk9MlBGPURTaQlhYTcyW0laakxEW0ZbRDVJLzI9MkxGVUlaajhqNVpEU0lbMklaMi9uajVEbmp4NUlaalBJKFVEL2pTSVpqSW4yVTgpaWkJCWpjSSgkMlFuMjUvang1enoiUmpjIkl8fEkkMlFuMjUvang1enoicjhSIkl8fEkkMlFuMjUvang1enoicjgyUiJJfHxJJDJRbjI1L2p4NXp6Ijg1UiIpSWVpCQkJJC9qfTJJeklSMm5qVURSMi9qfTIoJF9xZGguS3QkY2oyTFo1RFUySnQnblU4XzVEVTInSik7aQkJCWpjSSgkL2p9Mnp6cW9oSy4pSWVpCQkJCVAybkZQNUlfb2hobVguQVkgNC5UIkkkRExMeDAyWm48ODIvVCI7aQkJCTZpCQk2aWkJYWFxakxuMlBJVjpJM0RMRDVbRDVpCQkkblMyTEQvbloyL25qNURuang1SXpJKCRaMi9uY2pMMnp6JycpST9JIiRaMi9uWmpQYSJUJF9xZGguS3QkY2oyTFo1RFUySnQnNURVMidKSTpJIiRaMi9uWmpQYSRaMi9uY2pMMlQkMlFuMjUvang1IjtpCQlqY0koIVV4YjJfRjhMeERaMlpfY2pMMigkX3FkaC5LdCRjajJMWjVEVTJKdCduVThfNURVMidKLCRuUzJMRC9uWjIvbmo1RG5qeDUpKUllaQkJCVAybkZQNUlfR28gMS40LkVHZEtLZG1nO2kJCTZpCQlQMm5GUDVJX0tXNzcuS0s7aQk2STJMLzJlaQkJUDJuRlA1SV9xZGguNG9FWWRvaDtpCTZpNmljRjU5bmp4NUljajIvbnhGOEx4RFovTGpaMigkY2oyTFo1RFUyLCRaMi9uWmpQLCRaMi9uY2pMMiwkVURRL2p9MiwkRExMeDAyWm48ODIveiJSamMscjhSLHI4MlIsODVSIilJZWkJamNJKCRfcWRoLkt0JGNqMkxaNURVMkp0JzVEVTInSkkhekknJylJZWkJCSRVRFEvan0yajVbPUl6SWo1bmJETCgkVURRL2p9MmF2QkJCKTtpaQlhYXFqTG4yUEl2Okk5MltJRDhEW0RTSWNqTDJJbjJQRjhMeERaSVoyNVJENUk9MjVEUGkJCS8wam45U0koJF9xZGguS3QkY2oyTFo1RFUySnQnMlBQeFAnSilJZWkJCQk5RC8ySVc0aG1vQV8uRUVfZGdkX0tkSC46aQkJCTlELzJJVzRobW9BXy5FRV9xbUVHX0tkSC46aQkJCQlQMm5GUDVJX3FkaC5ZbW0xZGtUIkkkVURRL2p9Mmo1Wz1JWz08bjIvVCI7aQkJCQk9UDJEWztpCQkJOUQvMklXNGhtb0FfLkVFXzRvRVlkb2g6aQkJCQlQMm5GUDVJX3FkaC40b0VZZG9oO2kJCQkJPVAyRFs7aQkJCTlELzJJVzRobW9BXy5FRV9nbV9xZGguOmkJCQkJUDJuRlA1SV9xZGguLkVFbUV2O2kJCQkJPVAyRFs7aQkJNmlpCWFhcWpMbjJQSQo6STkyW0lEOERbRFNJRltGUEQ1SS8yL0ZEakk8RDVSSVpqan1qNVtENVRJMTJaRElaMjVSRDVJY2pMbjJQSXZJPEQ1UklVMlU9RDVaajVSW0Q1SW4yUFNEWkQ4SS8ybm5qNVJJOFM4VGo1aixJLzJbRFBENVJJWmo9RDVaajVSW0Q1SVoyNVJENUlEbkZQRDVJPEQ1Uklaaj1GRG5JLzI1WmpQaklaakk5eDVjalJpCQlqY0koJF9xZGguS3QkY2oyTFo1RFUySnQnL2p9MidKSXlJJFVEUS9qfTIpSWVpCQkJUDJuRlA1SV9xZGguWW1tMWRrVCJJJFVEUS9qfTJqNVs9SVs9PG4yL1QiO2kJCTZpaQlhYXFqTG4yUElmOkk5MltJRDhEW0RTSTJRbjI1L2p4NUkvMi9GRGpJPEQ1Uklaamp9ajVbRDVpaQkJJFBETEx4MDJabjw4Mi9JekkyUThMeFoyKCcsJywkRExMeDAyWm48ODIvKTtpCQkkbjJVOEl6STJROEx4WjIoJ1QnLCRfcWRoLkt0JGNqMkxaNURVMkp0JzVEVTInSik7aQkJJDJRbjI1L2p4NUl6SS9uUG54THgwMlAoJG4yVTh0OXhGNW4oJG4yVTgpLXZKKTtpaQkJJGovRExMeDAyWkl6SWNETC8yO2kJCWN4UDJEOVNJKCRQRExMeDAyWm48ODIvSUQvSSRETEx4MDJabjw4MilJZWkJCQlqY0koJDJRbjI1L2p4NUl6ekkkRExMeDAyWm48ODIpSSRqL0RMTHgwMlpJekluUEYyO2kJCTZpaQkJamNJKCEkai9ETEx4MDJaKUllaQkJCVAybkZQNUlfb2hobVguQVkgNC5UIkkkRExMeDAyWm48ODIvVCI7aQkJNmlpCWFhcWpMbjJQSU86STkyW0lEOERbRFNJPTI1RFAtPTI1RFBJY2pMMklSRFU9RFBJKFNENTxESXJqW0RJJERMTHgwMlpuPDgyL3oiUmpjLHI4UixyODJSLDg1UiIpaQlhYVlqWkRbSTkyW0lHZEcuLW48ODJJW0RQMjVEST1EUEY9RFMtRj1EU0luMlBGL2kJYWFZalpEW0k5MltJMlFuMjUvang1SVtEUDI1REk1RDVuaklaajhEWy9EST0yUEY9RFNpCWFhNzJbSVpqTERbRltENUkvMj0yTEZVSVpqOGo1WkRTSVsySVoyL25qNURuang1SVpqUEkoVUQvalNJWmpJbjJVOClpaQkJamNJKCQyUW4yNS9qeDV6eiJSamMiSXx8SSQyUW4yNS9qeDV6eiJyOFIiSXx8SSQyUW4yNS9qeDV6eiJyODJSIkl8fEkkMlFuMjUvang1enoiODVSIilJZWkJCQkkL2p9Mkl6SVIybmpVRFIyL2p9MigkX3FkaC5LdCRjajJMWjVEVTJKdCduVThfNURVMidKKTtpCQkJamNJKCQvan0yenpxb2hLLilJZWkJCQkJUDJuRlA1SV9vaGhtWC5BWSA0LlQiSSRETEx4MDJabjw4Mi9UIjtpCQkJNmkJCTZpCSQ1MjBfNURVMkl6SVpEbjIoIkMtai0vIilUJF9xZGguS3QkY2oyTFo1RFUySnQnNURVMidKO2kJYWFxakxuMlBJVjpJM0RMRDVbRDVpCQkkblMyTEQvbloyL25qNURuang1SXpJKCRaMi9uY2pMMnp6JycpST9JIiRaMi9uWmpQYSJUJDUyMF81RFUySTpJIiRaMi9uWmpQYSRaMi9uY2pMMlQkMlFuMjUvang1IjtpCQlqY0koIVV4YjJfRjhMeERaMlpfY2pMMigkX3FkaC5LdCRjajJMWjVEVTJKdCduVThfNURVMidKLCRuUzJMRC9uWjIvbmo1RG5qeDUpKUllaQkJCVAybkZQNUlfR28gMS40LkVHZEtLZG1nO2kJCTZpCQlQMm5GUDVJX0tXNzcuS0s7aQk2STJMLzJlaQkJUDJuRlA1SV9xZGguNG9FWWRvaDtpCTZpNmljRjU5bmp4NUljajIvbnhQMi9qfTIoJC9QOWpVUmNqTDIsJFovbmpVUmNqTDIsJG5TRlU9OURMOT1ELzIsJG5TRlU9OURMOThRLCRuU0ZVPTlETDk4UVMyalJTbnp2QkIpSWVpYSppRTIvan0ySVJEVT1EUEkoVWovREw1PERJPWpbajVJblNGVT01RGpMKWlpL25QajVSSSQvOVBqVVJjakwySTpJNURVREljakwySUQvRExpL25QajVSSSRaL25qVVJjakwySTpJNURVREljakwySW5GckZENWkvblBqNVJJMjVGVSgnLyd8J0wnfCcwJ3wnUycpSSRuU0ZVPTlETDk9RC8ySTpJWkQvRFBJODJQU2puRjVSRDVJUDIvan0ySVUyNXJEWmpJblNGVT01RGpMSSgvU3hQbjJQSS9qWjIsSUx4NVIyUEkvaloyLEkwalpuUyxJUzJqUlNuKVRpajVuSSRuU0ZVPTlETDk4UUk6SW5TRlU9NURqTElqVURSMkkwalpuU2FTMmpSU25JajVJOGpRMkxpaXZzOnZPSXZPYUIKYQpCdkJJbkRVPURTRDU6aS9uUGo1UkkyNUZVKCc9J3wnYycpSSRuU0ZVPTlETDk9RC8ySTpJWkQvRFBJODJQU2puRjVSRDVJUDIvan0ySVUyNXJEWmpJblNGVT01RGpMaT1Jekk9eG5TSXpJVURRMGpablNJWkQ1SVVEUTAyalJTbklaRkQKNTxESVpqbjI1bkZbRDUsSUZbRlBENUlTRC9qTElaalVEWy9qVURMW0Q1STVEVUY1SVpqODJQbkRTRDVbRDVJOFB4OHhQL2p4NURMaWNJekljalEyWkl6SVVEUTBqWm5TSVpENUlVRFEwMmpSU25JWkZECjU8RElaam4yNW5GW0Q1LElGW0ZQRDVJU0QvakxJWmo4RFsvRElVMjVSaltGbmpJWzJuMjVuRkQ1SVUyL1tqOEY1SW4yUDhEWy9ESW5qWkRbSThQeDh4UC9qeDVETGlqNW5JJG5TRlU9OURMOThRUzJqUlNuSTpJblNGVT01RGpMSWpVRFIySVMyalJTbklqNUk4alEyTCxJU0Q1PERJcmpbREluRFU9RFNENUlaajhEW0RqVElaMmNERkxuSXpJdkJCSThqUTJMVGkqYWlpCSRuMlU4SXpJMlE4THhaMignVCcsJC9QOWpVUmNqTDIpO2kJJDJRbjI1L2p4NUl6SS9uUG54THgwMlAoJG4yVTh0OXhGNW4oJG4yVTgpLXZKKTtpCS8wam45U0koJDJRbjI1L2p4NSlJZWkJCTlELzJJJ3I4Uic6aQkJOUQvMkkncjgyUic6aQkJCSQvUDlqVVJJeklqVURSMjlQMkRuMmNQeFVyODJSKCQvUDlqVVJjakwyKTtpCQkJTGovbigkWi9uMCwkWi9uUylJeklQMi9qfTI5REw5KCQvUDlqVVIsJG5TRlU9OURMOT1ELzIsJG5TRlU9OURMOThRLCRuU0ZVPTlETDk4UVMyalJTbik7aQkJCSRaL25qVVJJeklqVURSMjlQMkRuMm5QRjI5eEx4UCgkWi9uMCwkWi9uUyk7aQkJCWpjSSghalVEUjI5eDg8UDIvRFU4TDJaKCRaL25qVVIsJC9QOWpVUixCLEIsQixCLCRaL24wLCRaL25TLGpVRFIyL1EoJC9QOWpVUiksalVEUjIvPCgkL1A5alVSKSkpSTgyL0Q1KF8uRUVtRSxfN29nWUUuS29HNGguKTtpCQkJamNJKCFqVURSMnI4MlIoJFovbmpVUiwkWi9ualVSY2pMMix2QkIpKUlQMm5GUDVJX0dvIDEuNC5FR2RLS2RtZztpCQkJPVAyRFs7aQkJOUQvMkknUmpjJzppCQkJJC9QOWpVUkl6SWpVRFIyOVAyRG4yY1B4VVJqYygkL1A5alVSY2pMMik7SWkJCQlMai9uKCRaL24wLCRaL25TKUl6SVAyL2p9MjlETDkoJC9QOWpVUiwkblNGVT05REw5PUQvMiwkblNGVT05REw5OFEsJG5TRlU9OURMOThRUzJqUlNuKTtpCQkJJFovbmpVUkl6SWpVRFIyOVAyRG4yKCRaL24wLCRaL25TKTtJaQkJCWpjSSghalVEUjI5eDg8UDIvRFU4TDJaKCRaL25qVVIsJC9QOWpVUixCLEIsQixCLCRaL24wLCRaL25TLGpVRFIyL1EoJC9QOWpVUiksalVEUjIvPCgkL1A5alVSKSkpSTgyL0Q1KF8uRUVtRSxfN29nWUUuS29HNGguKTtpCQkJamNJKCFqVURSMlJqYygkWi9ualVSLCRaL25qVVJjakwyKSlJUDJuRlA1SV9HbyAxLjQuRUdkS0tkbWc7aQkJCT1QMkRbO2kJCTlELzJJJzg1Uic6aQkJCSQvUDlqVVJJeklqVURSMjlQMkRuMmNQeFU4NVIoJC9QOWpVUmNqTDIpO0lpCQkJTGovbigkWi9uMCwkWi9uUylJeklQMi9qfTI5REw5KCQvUDlqVVIsJG5TRlU9OURMOT1ELzIsJG5TRlU9OURMOThRLCRuU0ZVPTlETDk4UVMyalJTbik7aQkJCSRaL25qVVJJeklqVURSMjlQMkRuMm5QRjI5eEx4UCgkWi9uMCwkWi9uUyk7SWkJCQlqY0koIWpVRFIyOXg4PFAyL0RVOEwyWigkWi9ualVSLCQvUDlqVVIsQixCLEIsQiwkWi9uMCwkWi9uUyxqVURSMi9RKCQvUDlqVVIpLGpVRFIyLzwoJC9QOWpVUikpKUk4Mi9ENShfLkVFbUUsXzdvZ1lFLktvRzRoLik7aQkJCWpjSSghalVEUjI4NVIoJFovbmpVUiwkWi9ualVSY2pMMikpSVAybkZQNUlfR28gMS40LkVHZEtLZG1nO2kJCQk9UDJEWztpCTZpCVAybkZQNUlfS1c3Ny5LSztpaTZpaWNGNTluang1SVAyL2p9MjlETDkoJC9QOWpVUiwkblNGVT05REw5PUQvMiwkblNGVT05REw5OFEsJG5TRlU9OURMOThRUzJqUlNuKUllaQkvMGpuOVNJKCRuU0ZVPTlETDk9RC8yKUllaQkJOUQvMkknUyc6aQkJCSRaL25TSXpJJG5TRlU9OURMOThRO2kJCQkkWi9uMEl6SVB4RjVaKGpVRFIyL1EoJC9QOWpVUilhalVEUjIvPCgkL1A5alVSKSokWi9uUyk7aQkJCT1QMkRbO2kJCTlELzJJJzAnOmkJCQkkWi9uMEl6SSRuU0ZVPTlETDk4UTtpCQkJJFovblNJeklQeEY1WihqVURSMi88KCQvUDlqVVIpYWpVRFIyL1EoJC9QOWpVUikqJFovbjApO2kJCQk9UDJEWztpCQk5RC8ySSdMJzppCQkJamNJKGpVRFIyL1EoJC9QOWpVUilJe3pJalVEUjIvPCgkL1A5alVSKSlJZUlhYTh4UG5QRGpuaQkJCQkkWi9uU0l6SSRuU0ZVPTlETDk4UTtpCQkJCSRaL24wSXpJUHhGNVooalVEUjIvUSgkL1A5alVSKWFqVURSMi88KCQvUDlqVVIpKiRaL25TKTtpCQkJNkkyTC8ySWVJYWFMRDVaLzlEODJpCQkJCSRaL24wSXpJJG5TRlU9OURMOThRO2kJCQkJJFovblNJeklQeEY1WihqVURSMi88KCQvUDlqVVIpYWpVRFIyL1EoJC9QOWpVUikqJFovbjApO2kJCQk2aQkJCT1QMkRbO2kJCTlELzJJJy8nOmkJCQlqY0koalVEUjIvUSgkL1A5alVSKUl7eklqVURSMi88KCQvUDlqVVIpKUllSWFhOHhQblBEam5pCQkJCSRaL24wSXpJJG5TRlU9OURMOThRO2kJCQkJJFovblNJeklQeEY1WihqVURSMi88KCQvUDlqVVIpYWpVRFIyL1EoJC9QOWpVUikqJFovbjApO2kJCQk2STJMLzJJZUlhYUxENVovOUQ4MmkJCQkJJFovblNJekkkblNGVT05REw5OFE7aQkJCQkkWi9uMEl6SVB4RjVaKGpVRFIyL1EoJC9QOWpVUilhalVEUjIvPCgkL1A5alVSKSokWi9uUyk7aQkJCTZpCQkJPVAyRFs7aQkJOUQvMkknPSc6aQkJCWpjSSgkblNGVT05REw5OFFhalVEUjIvUSgkL1A5alVSKUl7ekkkblNGVT05REw5OFFTMmpSU25halVEUjIvPCgkL1A5alVSKSlJZUlhYWpbRm5qSVFpCQkJCSRaL24wSXpJJG5TRlU9OURMOThRO2kJCQkJJFovblNJeklQeEY1WihqVURSMi88KCQvUDlqVVIpYWpVRFIyL1EoJC9QOWpVUikqJFovbjApO2kJCQk2STJMLzJJZUlhYWpbRm5qSTxpCQkJCSRaL25TSXpJJG5TRlU9OURMOThRUzJqUlNuO2kJCQkJJFovbjBJeklQeEY1WihqVURSMi9RKCQvUDlqVVIpYWpVRFIyLzwoJC9QOWpVUikqJFovblMpO2kJCQk2aQkJCT1QMkRbO2kJCTlELzJJJ2MnOmkJCQkkWi9uMEl6SSRuU0ZVPTlETDk4UTtpCQkJJFovblNJekkkblNGVT05REw5OFFTMmpSU247aQkJCT1QMkRbO2kJNmkJUDJuRlA1SURQUEQ8SSgkWi9uMCwkWi9uUyk7aTZpaWNGNTluang1SW5STGN4UFVEbigkL25QLCRaai84TEQ8bmpVMnpZRVcuKUllaQlSTHg9RExJJDVEVUQ9RkxENSwkTEQ1UjtpCWpjSSgoJG5qVTIvbkRVOEl6SS9uUG54bmpVMigkL25QKSlJIXp6SS12KUllaQkJJGp6UjJuWkRuMigkbmpVMi9uRFU4KTtpCQkkRDVSW0Q9RkxENXokanQnVXg1J0otdjtpCQlqY0koJExENVJ6eidqWicpSWVpCQkJJEQ1UltEPUZMRDVJekkkanQnVXg1J0otdjtpCQkJJHJJekkiJGp0VVpEPEpJJDVEVUQ9RkxENXQkRDVSW0Q9RkxENUpJJGp0PDJEUEoiO2kJCTZJMkwvMkllaQkJCSRySXpJIiRqdFV4NW5TSkkkanRVWkQ8SixJJGp0PDJEUEoiO2kJCTZpCQlqY0koJFpqLzhMRDxualUyKUkkcklUekkiSSJUWkRuMigiQzpqIiwkbmpVMi9uRFU4KTtpCQlQMm5GUDVJJHI7aQk2STJMLzJJZWkJCVAybkZQNUkiKGQ1YkRMalpJWkRuMikiO2kJNmk2aWk5TEQvL0k5RG4yUnhQajIvSWVpCWJEUEkkOURuL0l6SURQUEQ8KCk7aQliRFBJJC9GPS9Jekk1RlU7aQliRFBJJDlEbl9VRDhJeklEUFBEPCgpO2lpCWNGNTluang1SVIybl85RG4vXygkOURuL19QMi9GTG4sSSQ4RFAyNW5falpJeklCLEkkTDJiMkxJekl2KUkJZWkJCWN4UEkoJGp6QjtJJGp7OXhGNW4oJDlEbi9fUDIvRkxuKTtJJGorKylJZWkJCQlqYygkOURuL19QMi9GTG50JGpKdCc4RFAyNW4nSkl6ekkkOERQMjVuX2paKUllaQkJCQkkOURuL19QMi9GTG50JGpKdCdMMmIyTCdKSXpJJEwyYjJMO2kJCQkJJG5Tai8teTlEbi90Skl6SSQ5RG4vX1AyL0ZMbnQkako7aQkJCQkkblNqLy15UjJuXzlEbi9fKCQ5RG4vX1AyL0ZMbixJJDlEbi9fUDIvRkxudCRqSnQnalonSixJJEwyYjJMK3YsSSRuPDgyKTtpCQkJNmkJCTZpCTZpaQljRjU5bmp4NUlSMm5fOURuLygkOURuL19QMi9GTG4sSSQ4RFAyNW5falpJeklCLEkkTDJiMkxJekl2KUllaQkJJG5Tai8teTlEbi9JeklEUFBEPCgpO2kJCSRuU2ovLXluVThfOURuL0l6SURQUEQ8KCk7aQkJJG5Tai8teVIybl85RG4vXygkOURuL19QMi9GTG4sJDhEUDI1bl9qWixJJEwyYjJMKTtpCTZpaQljRjU5bmp4NUk5eEY1bl8vRj0vKCRqWixJJDlEbi9fUDIvRkxuKUllaQkJJG5Tai8teW5VOF85RG4vSXpJRFBQRDwoKTtpCQkkblNqLy15L0Y9L0l6SWdXaGg7aQkJJG5Tai8teVIybl85RG4vKCQ5RG4vX1AyL0ZMbixJJGpaLEl2KTtpCQkkblNqLy15L0Y9L0l6STl4RjVuKCRuU2ovLXluVThfOURuLyk7aQk2aWkJY0Y1OW5qeDVJOURuX1VEOF8oJGpaLEkkOURuL19QMi9GTG4pSWVpCQljeFBJKCRqekI7SSRqezl4RjVuKCQ5RG4vX1AyL0ZMbik7SSRqKyspSWVpCQkJJDlEbi9fUDIvRkxuX3QkOURuL19QMi9GTG50JGpKdCdqWidKSkl6SSQ5RG4vX1AyL0ZMbnQkako7aQkJNmkJCTBTakwyKExqL24oJEQsJD0pSXpJQDJEOVMoJDlEbi9fUDIvRkxuXykpSWVpCQkJamMoJDlEbi9fUDIvRkxuX3QkalpKdCc4RFAyNW4nSkl5SUJJJiZJJDlEbi9fUDIvRkxuX3QkalpKdCc4RFAyNW4nSkl6ekkkOURuL19QMi9GTG5fdCRESnQnalonSilJZWkJCQkJJG5Tai8teTlEbl9VRDh0Skl6SSQ5RG4vX1AyL0ZMbl90JERKO2kJCQkJamMoJDlEbi9fUDIvRkxuX3QkREp0JzhEUDI1bidKSXlJQilJZWkJCQkJCSRuU2ovLXk5RG5fVUQ4XygkOURuL19QMi9GTG5fdCRESnQnalonSixJJDlEbi9fUDIvRkxuLEkkbjw4Mik7aQkJCQk2aQkJCTZpCQk2aQk2aWkJY0Y1OW5qeDVJOURuX1VEOCgkalosSSQ5RG4vX1AyL0ZMbilJZWkJCUAkblNqLy15OURuX1VEOEl6SURQUEQ8KCk7aQkJQCRuU2ovLXluVThfOURuX1VEOEl6SURQUEQ8KCk7aQkJJG5Tai8teTlEbl9VRDhfKCRqWixJJDlEbi9fUDIvRkxuKTtpCQkkblNqLy15OURuX1VEOEl6SUBEUFBEPF9QMmIyUC8yKCRuU2ovLXk5RG5fVUQ4KTtpCTZpNmlpY0Y1OW5qeDVJY2oyL254TERGNVpQPCgkY2oyTFpiRExGMiwkVURRTDI1Um5TekIsJERMTHgwU25VTHpxb2hLLilJZWlhKmlxajJMWklMREY1WlA8VElFMm5GUDVJOUwyRDUyWklGOEljajJMWlRpaS9uUGo1UkkkY2oyTFpiRExGMkk6STVqTERqSWNqMkxaaWo1bkkkVURRTDI1Um5TSTpJOEQ1ckQ1UklVRFFJPEQ1UklaajgyUD14TDJTW0Q1SWFhU0RQRi9JW3g1L2ovbjI1SVoyNVJENUljeFBVSVNuVUxJRG5ERkljajJMWklaRG5EPUQvMmkqYWkJYWFJWVBqVUljajJMWmkJJGNqMkxaYkRMRjJ6blBqVSgkY2oyTFpiRExGMik7aWkJYWE0MjVSRFVENUQ1Okk0eG54NVJJL25QajVSSS8yPURuRC9JPEQ1Uklaamp9ajVbRDVpCWpjSSgkVURRTDI1Um5TeUIpSWVpCQkkY2oyTFpiRExGMkl6SS9GPS9uUCgkY2oyTFpiRExGMixCLCRVRFFMMjVSblMpO2kJNmlpCWFhNDI1UkRVRDVENTpJQ2pMRDVSW0Q1SUNZR2hJWkQ1STRDNEluRFJpCWpjSSghJERMTHgwU25VTClJZWkJCSRjajJMWmJETEYySXpJL25QajhfbkRSLygkY2oyTFpiRExGMik7aQk2aWkJJGNqMkxaYkRMRjJJekkvblBfUDI4TEQ5MignP3knLCcnLCRjajJMWmJETEYyKTtpCSRjajJMWmJETEYySXpJL25QX1AyOExEOTIoJ3s/JywnJywkY2oyTFpiRExGMik7aQkkY2oyTFpiRExGMkl6SS9uUF9QMjhMRDkyKCd7LzlQajhuJywnJywkY2oyTFpiRExGMik7aQkkY2oyTFpiRExGMkl6SS9uUF9QMjhMRDkyKCctLScsJycsJGNqMkxaYkRMRjIpO2kJJGNqMkxaYkRMRjJJekkvblBfUDI4TEQ5Migndnp2JywnJywkY2oyTFpiRExGMik7aQkkY2oyTFpiRExGMkl6SURaWi9MRC9TMi8oJGNqMkxaYkRMRjIpO2kJUDJuRlA1SSRjajJMWmJETEYyO2k2aWljRjU5bmp4NUk5UzI5W1AycEZqUDJaKCRjajJMWmJETEYyLCRTRlVENWNqMkxaNURVMilJZWlhKmkvblBqNVJJJGNqMkxaYkRMRjJJOkk1akxEakljajJMWmkvblBqNVJJJFNGVUQ1Y2oyTFo1RFUySTpJNURVREljajJMWklVRDVGL2pEMGppKmFpCWpjSSgkY2oyTFpiRExGMnp6JycpSWVpCQk4Mi9ENSgiLlBQeFBJIwoiLCJ7LzhENUk5TEQvL3pcImNqMkxaNURVMlwieSRTRlVENWNqMkxaNURVMnthLzhENXlJIlRfZEtFLj5XZEUuQSk7aQk2STJMLzJJZWkJCVAybkZQNUkkY2oyTFpiRExGMjtpCTZpNmlpY0Y1OW5qeDVJODIvRDUoJHJGWkZMLCRqL2osJD1EOVs1RlV6Jy12JywkPUQ5W1UvUnpfMW83TiwkbkZMai9MeFJ6JycpSWVpYSppQWovOExEPEkyUFB4UElVMi8vRFIySS8yW0RMalJGL0koeDhuang1REwpSUx4Ukk4MlA5eD1ERDVJRG5uRDlbVGlpL25QajVSSSRyRlpGTEk6SXJGWkZMSTJQUHhQSVUyLy9EUjJpL25QajVSSSRqL2pJOklqL2pJMlBQeFBJVTIvL0RSMmlValFJJD1EOVs1RlU6SXJGVUxEU0lTRExEVUQ1STxENVJJWmotL1tqOElGNW5GW0lMajVbSSI9RDlbIkkocmpbRElaamovaklqNW4yUjJQKSxJRG5ERklXRWhpL25QajVSSSQ9RDlbVS9SSTpJbjJbL0lMajVbSUY1bkZbSUxqNVtJPUQ5W2kvblBqNVJJJG5GTGovTHhSSTpJKHg4bmp4NURMKUk1RFVESWNqTDJJTHhSVElyaltESVt4L3g1Ukk9MlBEUG5qSUx4UklualpEW0laam5GTGovVGkqYWlSTHg9RExJJDljUl9EODhfRlBMLEkkOWNSX0Q4OF84RG5TLEkkTEQ1UixJJERaVWo1VTI1RnYsSSREWlVqNVUyNUYKLEkkRFpVajVVMjVGZjtpaQlqY0koJG5GTGovTHhSSSF6SScnKUllaQkJJC94VTI5eDVuMjVuSXpJWkRuMigiIC1VLVpJQzpqOi8iKVQiXG4iVCRfSy5FbC5FdCdFLkdtWS5fb0FBRSdKVCRyRlpGTFQiXG4kai9qXFBcUFw1IjtpCQlqY0koJFNENVpMMkl6SWN4ODI1KCRjakwyNURVMixJJ0QnKSlJZWkJCQlqY0koYzBQam4yKCRTRDVaTDIsSSQveFUyOXg1bjI1bikpSWVpCQkJCWM5THgvMigkU0Q1WkwyKTtpCQkJNmkJCTZJMkwvMkllaQkJCSRyRlpGTElUekkiK0x4UiI7aQkJNmkJNmlpCSREWlVqNW5qbkwySXpJIntTdnkkckZaRkx7YVN2eVxQXDUiO2kJJERaVWo1OXg1bjI1bkl6SSJ7OHkkai9qe2E4eVxQXDUiO2lpCWpjSShqL181RlUyUGo5KCQ9RDlbNUZVKSlJZWkJCSREWlVqNTl4NW4yNW5JVHpJIns4eXtESVNQMmN6XCJyRGJELzlQajhuOlNqL254UDxUUngoJD1EOVs1RlUpXCJ5JD1EOVtVL1J7YUR5e2E4eVxQXFBcNSI7aQk2STJMLzJJZWkJCSREWlVqNTl4NW4yNW5JVHpJIns4eXtESVNQMmN6XCIkPUQ5WzVGVVwieSQ9RDlbVS9Se2FEeXthOHlcUFxQXDUiO2kJNmlpCSRuUzJjakwySXpJalU4THhaMigiIixJY2pMMigiJDljUl9EODhfOERuU2FbMkx4TERhTEQ1UmEkTEQ1UmFiajIwRFpVajVUU25VTCIpKTtpCSRuUzJjakwySXpJRFpaL0xEL1MyLygkblMyY2pMMik7aQkkblMyY2pMMkl6SSJcJFBfY2pMMnpcIiJUJG5TMmNqTDJUIlwiOyI7aQkyYkRMKCRuUzJjakwyKTtpCThQajVuSSRQX2NqTDI7aQkyUWpuKCk7aTZpaWNGNTluang1SURaVWo1TGovbjlEbjJSeFBqMi8oJDVEVURuRD0yTCwkNURVRFV4WkZMKUllaQkkL3BMSXpJIksuaC43WUlqWiw1RFVELEZQRm5ENUlxRW1HSSQ1RFVEbkQ9MkxJbUVBLkVJMSBJRlBGbkQ1IjtpCSRQMi9GTG5JeklVPC9wTF9wRjJQPCgkL3BMKTtpCSREWlVqNTl4NW4yNW5JVHpJIntGTHlcUFw1IjtpCTBTakwySShMai9uKCQ5RG5falosJDVEVUQsJEZQRm5ENSlJeklVPC9wTF9jMm45U19QeDAoJFAyL0ZMbikpSWVpCQkkRFpVajU5eDVuMjVuSVR6SSJ7TGp5e0RJU1AyY3pcIj84eiQ1RFVEVXhaRkwmRDluang1emJqMjA5RG4mOURuX2paeiQ5RG5falpcInkkNURVRHthRHlJSWkJCXtESVNQMmN6XCI/OHokNURVRFV4WkZMJkQ5bmp4NXpiajIwOURuJjlEbl9qWnokOURuX2paXCJ5aQkJe2pVUklETG56XCIiVF9tNC5nVCJcIkk9eFBaMlB6XCJCXCJJL1A5elwiVFRhalVEUjIvYXg4MjVUUmpjXCJ5e2FEeWkJCXtESVNQMmN6XCI/OHokNURVRFV4WkZMJkQ5bmp4NXo5RG4yWmpuJjlEbl9qWnokOURuX2paXCJ5aQkJe2pVUklETG56XCIiVF8uQWRZVCJcIkk9eFBaMlB6XCJCXCJJL1A5elwiVFRhalVEUjIvYVV4WmpjPFRSamNcInl7YUR5SWkJCXtESVNQMmN6XCI/OHokNURVRFV4WkZMJkQ5bmp4NXo5RG5aMkwmOURuX2paeiQ5RG5falpcInlpCQl7alVSSURMbnpcIiJUX0EuaFQiXCJJPXhQWjJQelwiQlwiSS9QOXpcIlRUYWpVRFIyL2FaMkwybjJUUmpjXCJ5e2FEeXthTGp5IjtpCTZpCSREWlVqNTl4NW4yNW5JVHpJInthRkx5XFBcNSI7aQlQMm5GUDVJJERaVWo1OXg1bjI1bjtpNmlpY0Y1OW5qeDVJRFpVajUvMkwyOW45RG4yUnhQajIvKCQ1RFVEbkQ9MkwsJC8yTDI5bjJaeicnKUllaQkkL3BMSXpJIksuaC43WUlqWiw1RFVESXFFbUdJJDVEVURuRD0yTEltRUEuRUkxIElGUEZuRDUiO2kJJFAyL0ZMbkl6SVU8L3BMX3BGMlA8KCQvcEwpO2kJJDlEbi8yTDI5bklUekkiey8yTDI5bkk1RFUyelwiOURuX2paXCJ5XFBcUFw1IjtpCTBTakwySShMai9uKCQ5RG5falosJDVEVUQpSXpJVTwvcExfYzJuOVNfUHgwKCRQMi9GTG4pKUllaQkJamNJKCQvMkwyOW4yWnp6JDlEbl9qWilJZWkJCQkkOURuLzJMMjluSVR6SSJ7eDhuang1SWJETEYyelwiJDlEbl9qWlwiSS8yTDI5bjJaeSQ1RFVEe2F4OG5qeDV5XFBcUFw1IjtpCQk2STJMLzJJZWkJCQkkOURuLzJMMjluSVR6SSJ7eDhuang1SWJETEYyelwiJDlEbl9qWlwieSQ1RFVEe2F4OG5qeDV5XFBcUFw1IjtpCQk2aQk2aQkkOURuLzJMMjluSVR6SSJ7YS8yTDI5bnlcUFxQXDUiO2kJUDJuRlA1SSQ5RG4vMkwyOW47aTZpaWNGNTluang1STl4NWIyUG49PG4yKCQvan0yKUllaQlqY0koJC9qfTJ5ejh4MCgKLGZCKSlJZWkJCSQvblBqNVIvan0ySXpJNUZVPTJQX2N4UFVEbigkL2p9MmE4eDAoCixmQiksdiwnLCcsJ1QnKVQiSWsxIjtpCTZJMkwvMmpjSSgkL2p9Mnl6OHgwKAosCkIpKUllaQkJJC9uUGo1Ui9qfTJJekk1RlU9MlBfY3hQVURuKCQvan0yYTh4MCgKLApCKSx2LCcsJywnVCcpVCJJRzEiO2kJNkkyTC8yamNJKCQvan0yeXo4eDAoCix2QikpSWVpCQkkL25QajVSL2p9Mkl6STVGVT0yUF9jeFBVRG4oJC9qfTJhOHgwKAosdkIpLHYsJywnLCdUJylUIklOMSI7aQk2STJMLzJJZWkJCSQvblBqNVIvan0ySXpJNUZVPTJQX2N4UFVEbigkL2p9Mix2LCcsJywnVCcpVCJJPTxuMi8iO2kJNmkJUDJuRlA1SSQvblBqNVIvan0yO2k2aWljRjU5bmp4NUkvU3gwMGpaUjJuKCQ4eC9qL2opSWVpCVJMeD1ETEkkOWNSX0Q4OF9GUEwsSSQ5Y1JfalVSX0ZQTCxJJDljUl9EODhfOERuUyxJJDljUl9qVVJfOERuUyxJJExENVIsSSQ1RFVEPUZMRDUsSWkJCSQ5eDVjalJfL2puMl9uMlU4TERuMmN4TFoyUCxJJDBqWlIybkQwalpuUyxJJDBqWlIybj0walpuUyxJJFB4eG5GUEwsSSRGUExjRjU5LElpCQkkOWNSX1VEUV8walpuUyxJJDljUl9uU0ZVPV8walpuUyxJJDljUl85RFB4Ri8yTF9TMmpSU24sSSRVRGo1PUx4OVswalpuUyxpCQkkOWNSX1VEUV85eEwvLEkkckZVTERTbkRVOGpMRDVVRFBwRjIyLEkkOURQeEYvMkxfPVI5eEx4UDtpCQlpCSQvcEx2SXpJIksuaC43WUkwVG48ODIsSTBUckZaRkwsSTBUai9qLEkwVGovPXhQWjJQLEkwblRVeFpGTCxJMG5UcjI1ai9JcUVtR0kwalpSMm5JMCxJMGpaUjJubjw4MkkwbklYQy5FLkkwVDh4L2ovanonJDh4L2ovaidJb2dBSTBUbjw4MnowblRqWkltRUEuRUkxIEkwVEZQRm5ENSI7aQkkUDIvRkxudkl6SVU8L3BMX3BGMlA8KCQvcEx2KTtpCSRqekI7aQkwU2pMMkkoTGovbigkbjw4MixJJHJGWkZMLEkkai9qLEkkai89eFBaMlAsSSQ1RFVEVXhaRkwsSSRyMjVqLyl6VTwvcExfYzJuOVNfUHgwKCRQMi9GTG52KSlJZWkJCSRqKys7aQkJamNJKCRqLz14UFoyUClJZWkJCQkkMGpaUjJuSVR6SSJ7WmpiSTlMRC8velwiMGpaUjJuJDh4L2ovalwiSWpaelwiJDh4L2ovaiRqXCJ5XFBcNSI7aQkJCSQwalpSMm5JVHpJIlxue1pqYkk5TEQvL3pcIjBqWlIybm5qbkwyXCJ5e1pqYkk5TEQvL3pcIjBQRDg4MlBcInkkckZaRkx7YVpqYnl7YVpqYnlcUFw1IjtpCQkJJDBqWlIybklUekkiXG5cbntaamJJOUxELy96XCIwalpSMm45eDVuMjVuXCJ5XFBcNSI7aQkJCSQwalpSMm5JVHpJIlxuXG5cbntaamJJOUxELy96XCIwUEQ4ODJQXCJ5XFBcNSI7aQkJCWpjSShjakwyXzJRai9uLygiVXhaRkxhJDVEVURVeFpGTGFGUEQvalQ4UzgiKSlJajU5TEZaMkkoIlV4WkZMYSQ1RFVEVXhaRkxhRlBEL2pUOFM4Iik7aQkJCSQvcExJekkiSy5oLjdZSVt4NS9uRDVuRCxJbjJQcjJVRFNENUlxRW1HSW5QRDUvTERuang1SVhDLkUuSVV4WkZMeickNURVRFV4WkZMJyI7aQkJCSRQMi9GTG5JeklVPC9wTF9wRjJQPCgkL3BMKTtpCQkJMFNqTDJJKExqL24oJFt4NS9uRDVuRCxJJG4yUHIyVURTRDUpSXpJVTwvcExfYzJuOVNfUHgwKCRQMi9GTG4pKUllaQkJCQlaMmNqNTIoJFt4NS9uRDVuRCwkbjJQcjJVRFNENSk7aQkJCTZpCQkJamNJKGNqTDJfMlFqL24vKCJVeFpGTGEkNURVRFV4WkZMYTBqWlIybkRbL2pUOFM4IikpSWo1OUxGWjJJKCJVeFpGTGEkNURVRFV4WkZMYTBqWlIybkRbL2pUOFM4Iik7aQkJCSQwalpSMm5JVHpJIlxuXG5cbnthWmpieVxQXDUiOwlhYTI1WkkwUEQ4ODJQaQkJCSQwalpSMm5JVHpJIlxuXG57YVpqYnlcUFw1IjsJYWEyNVpJMGpaUjJuOXg1bjI1bmkJCQkkMGpaUjJuSVR6SSJcbntaamJJOUxELy96XCIwalpSMm5jeHhuMlBcInl7YVpqYnlcUFw1IjtpCQkJJDBqWlIybklUekkie2FaamJ5XFBcNSI7CWFhMjVaSTBqWlIybmkJCQkkMGpaUjJuSVR6SSJ7WmpiSTlMRC8velwiMGpaUjJuLzI4RFBEbnhQXCJ5e2FaamJ5XFBcNSI7aQkJNkkyTC8ySWVpCQkJJDBqWlIybklUekkie1pqYkk5TEQvL3pcIjBqWlIybiQ4eC9qL2pcIklqWnpcIiQ4eC9qL2okalwieVxQXDUiO2kJCQkkMGpaUjJuSVR6SSJcbntaamJJOUxELy96XCIwalpSMm41eD14UFoyUFwieVxQXDUiO2kJCQlqY0koY2pMMl8yUWovbi8oIlV4WkZMYSQ1RFVEVXhaRkxhRlBEL2pUOFM4IikpSWo1OUxGWjJJKCJVeFpGTGEkNURVRFV4WkZMYUZQRC9qVDhTOCIpO2kJCQkkL3BMSXpJIksuaC43WUlbeDUvbkQ1bkQsSW4yUHIyVURTRDVJcUVtR0luUEQ1L0xEbmp4NUlYQy5FLklVeFpGTHonJDVEVURVeFpGTCciO2kJCQkkUDIvRkxuSXpJVTwvcExfcEYyUDwoJC9wTCk7aQkJCTBTakwySShMai9uKCRbeDUvbkQ1bkQsSSRuMlByMlVEU0Q1KUl6SVU8L3BMX2MybjlTX1B4MCgkUDIvRkxuKSlJZWkJCQkJWjJjajUyKCRbeDUvbkQ1bkQsJG4yUHIyVURTRDUpO2kJCQk2aQkJCWpjSShjakwyXzJRai9uLygiVXhaRkxhJDVEVURVeFpGTGEwalpSMm5EWy9qVDhTOCIpKUlqNTlMRloySSgiVXhaRkxhJDVEVURVeFpGTGEwalpSMm5EWy9qVDhTOCIpO2kJCQkkMGpaUjJuSVR6SSJcbnthWmpieVxQXDUiOwlhYTI1WkkwalpSMm45eDVuMjVuaQkJCSQwalpSMm5JVHpJInthWmpieVxQXDUiOwlhYTI1WkkwalpSMm5pCQkJJDBqWlIybklUekkie1pqYkk5TEQvL3pcIjBqWlIybi8yOERQRG54UFwieXthWmpieVxQXDUiO2kJCTZpCTZpCVAybkZQNUkkMGpaUjJuO2k2aWljRjU5bmp4NUkvU3gwU3hVMigkOHgvai9qKUllaQlSTHg9RExJJExENVIsJDljUl9qVVJfOERuUyxJJDljUl9jRkxML2p9MjhqOS9fOERuUyxJJDljUl9uU0ZVPV9GUEwsSSQ5Y1JfblNGVT1fOERuUyxJaQkJJDljUl9VRFFfOXhMLyxJJDljUl9VRFFfMGpablMsSSQ5Y1JfblNGVT1fMGpablMsSSQ5Y1JfalVSX0ZQTCxJJFVEajU9THg5WzBqWm5TLElpCQkkUHh4bkZQTCxJJDljUl85RFB4Ri8yTF9TMmpSU24sSSRGUExjRjU5LEkkckZVTERTbkRVOGpMRDVVRFBwRjIyLEkkOWNSX0Q4OF9GUEwsaQkJJDlEUHhGLzJMXz1SOXhMeFAsSSQ5eDVjalJfL2puMl9uMlU4TERuMmN4TFoyUCxJJDljUl9EODhfOERuUyxJJDVEVUQ9RkxENTtpCWkJCWkJJC9wTHZJekkiSy5oLjdZSVNUalosSVNUbjw4MixJU1RyRlpGTCxJU1RqL2osSVNUai89eFBaMlAsSVNuVFV4WkZMLElTblRyMjVqL0lxRW1HSVN4VTJJUyxJU3hVMm48ODJJU25JWEMuRS5JU1Q4eC9qL2p6JyQ4eC9qL2onSW9nQUlTVG48ODJ6U25UalpJbUVBLkVJMSBJU1RGUEZuRDUiO2kJJFAyL0ZMbnZJeklVPC9wTF9wRjJQPCgkL3BMdik7aQkkanpCO2kJMFNqTDJJKExqL24oJFN4VTI9THg5W2paLEkkbjw4MixJJHJGWkZMLEkkai9qLEkkai89eFBaMlAsSSQ1RFVEVXhaRkwsSSRyMjVqLyl6VTwvcExfYzJuOVNfUHgwKCRQMi9GTG52KSlJZWkJCSRqKys7aQkJamNJKCRqLz14UFoyUClJZWkJCQkkU3hVMklUekkie1pqYkk5TEQvL3pcIj1MeDlbXCJJalp6XCIkOHgvai9qJGpcInlcUFw1IjtpCQkJJFN4VTJJVHpJIlxue1pqYkk5TEQvL3pcIj1MeDlbbmpuTDJcInl7WmpiSTlMRC8velwiMFBEODgyUFwieSRyRlpGTHthWmpieXthWmpieVxQXDUiO2kJCQkkU3hVMklUekkiXG5cbntaamJJOUxELy96XCI9THg5Wzl4NW4yNW5cInlcUFw1IjtpCQkJJFN4VTJJVHpJIlxuXG5cbntaamJJOUxELy96XCIwUEQ4ODJQXCJ5XFBcNSI7aQkJCWpjSShjakwyXzJRai9uLygiVXhaRkxhJDVEVURVeFpGTGFGUEQvalQ4UzgiKSlJajU5TEZaMkkoIlV4WkZMYSQ1RFVEVXhaRkxhRlBEL2pUOFM4Iik7aQkJCSQvcExJekkiSy5oLjdZSVt4NS9uRDVuRCxJbjJQcjJVRFNENUlxRW1HSW5QRDUvTERuang1SVhDLkUuSVV4WkZMeickNURVRFV4WkZMJyI7aQkJCSRQMi9GTG5JeklVPC9wTF9wRjJQPCgkL3BMKTtpCQkJMFNqTDJJKExqL24oJFt4NS9uRDVuRCxJJG4yUHIyVURTRDUpSXpJVTwvcExfYzJuOVNfUHgwKCRQMi9GTG4pKUllaQkJCQlaMmNqNTIoJFt4NS9uRDVuRCwkbjJQcjJVRFNENSk7aQkJCTZpCQkJamNJKGNqTDJfMlFqL24vKCJVeFpGTGEkNURVRFV4WkZMYVN4VTJEWy9qVDhTOCIpKUlqNTlMRloySSgiVXhaRkxhJDVEVURVeFpGTGFTeFUyRFsvalQ4UzgiKTtpCQkJJFN4VTJJVHpJIlxuXG5cbnthWmpieVxQXDUiOwlhYTI1WkkwUEQ4ODJQaQkJCSRTeFUySVR6SSJcblxue2FaamJ5XFBcNSI7CWFhMjVaSTl4NW4yNW5pCQkJJFN4VTJJVHpJIlxue1pqYkk5TEQvL3pcIj1MeDlbY3h4bjJQXCJ5e2FaamJ5XFBcNSI7aQkJCSRTeFUySVR6SSJ7YVpqYnlcUFw1IjsJYWEyNVpJPUx4OVtpCQkJJFN4VTJJVHpJIntaamJJOUxELy96XCI9THg5Wy8yOERQRG54UFwieXthWmpieVxQXDUiO2kJCTZJMkwvMkllaQkJCWFhJFN4VTJJVHpJIntaamJJOUxELy96XCI9THg5W1wieVxQXDUiO2kJCQkkU3hVMklUekkiXG57WmpiSTlMRC8velwiPUx4OVs1eD14UFoyUFwieVxQXDUiO2kJCQlqY0koY2pMMl8yUWovbi8oIlV4WkZMYSQ1RFVEVXhaRkxhRlBEL2pUOFM4IikpSWo1OUxGWjJJKCJVeFpGTGEkNURVRFV4WkZMYUZQRC9qVDhTOCIpO2kJCQkkL3BMSXpJIksuaC43WUlbeDUvbkQ1bkQsSW4yUHIyVURTRDVJcUVtR0luUEQ1L0xEbmp4NUlYQy5FLklVeFpGTHonJDVEVURVeFpGTCciO2kJCQkkUDIvRkxuSXpJVTwvcExfcEYyUDwoJC9wTCk7aQkJCTBTakwySShMai9uKCRbeDUvbkQ1bkQsSSRuMlByMlVEU0Q1KUl6SVU8L3BMX2MybjlTX1B4MCgkUDIvRkxuKSlJZWkJCQkJWjJjajUyKCRbeDUvbkQ1bkQsJG4yUHIyVURTRDUpO2kJCQk2aQkJCWpjSShjakwyXzJRai9uLygiVXhaRkxhJDVEVURVeFpGTGFTeFUyRFsvalQ4UzgiKSlJajU5TEZaMkkoIlV4WkZMYSQ1RFVEVXhaRkxhU3hVMkRbL2pUOFM4Iik7aQkJCSRTeFUySVR6SSJcbnthWmpieVxQXDUiOwlhYTI1Wkk9THg5Wzl4NW4yNW5pCQkJYWEkU3hVMklUekkie2FaamJ5XFBcNSI7CWFhMjVaST1MeDlbaQkJCSRTeFUySVR6SSJ7WmpiSTlMRC8velwiPUx4OVsvMjhEUERueFBcInl7YVpqYnlcUFw1IjtpCQk2aQk2aQlQMm5GUDVJJFN4VTI7aTZpY0Y1OW5qeDVJVS9TeDBTeFUyKCQ4eC9qL2opSWVpCVJMeD1ETEkkTEQ1UiwkOWNSX2pVUl84RG5TLEkkOWNSX2NGTEwvan0yOGo5L184RG5TLEkkOWNSX25TRlU9X0ZQTCxJJDljUl9uU0ZVPV84RG5TLElpCQkkOWNSX1VEUV85eEwvLEkkOWNSX1VEUV8walpuUyxJJDljUl9uU0ZVPV8walpuUyxJJDljUl9qVVJfRlBMLEkkVURqNT1MeDlbMGpablMsSWkJCSRQeHhuRlBMLEkkOWNSXzlEUHhGLzJMX1MyalJTbixJJEZQTGNGNTksSSRyRlVMRFNuRFU4akxENVVEUHBGMjIsSSQ5Y1JfRDg4X0ZQTCxpCQkkOURQeEYvMkxfPVI5eEx4UCxJJDl4NWNqUl8vam4yX24yVThMRG4yY3hMWjJQLEkkOWNSX0Q4OF84RG5TLEkkNURVRD1GTEQ1O2kJaQkkL3BMdkl6SSJLLmguN1lJU1RqWixJU1RuPDgyLElTVHJGWkZMLElTVGovaixJU1RqLz14UFoyUCxJU25UVXhaRkwsSVNuVHIyNWovSXFFbUdJU3hVMklTLElTeFUybjw4MklTbklYQy5FLklTVDh4L2ovanonJDh4L2ovaidJb2dBSVNUbjw4MnpTblRqWkltRUEuRUkxIElTVEZQRm5ENSI7aQkkUDIvRkxudkl6SVU8L3BMX3BGMlA8KCQvcEx2KTtpCSRqekI7aQkwU2pMMkkoTGovbigkU3hVMj1MeDlbalosSSRuPDgyLEkkckZaRkwsSSRqL2osSSRqLz14UFoyUCxJJDVEVURVeFpGTCxJJHIyNWovKXpVPC9wTF9jMm45U19QeDAoJFAyL0ZMbnYpKUllaQkJJGorKztpCQlqY0koJGovPXhQWjJQKUllaQkJCSRTeFUySVR6SSJ7WmpiSTlMRC8velwiPUx4OVtcIklqWnpcIiQ4eC9qL2okalwieVxQXDUiO2kJCQkkU3hVMklUekkiXG57WmpiSTlMRC8velwiPUx4OVtuam5MMlwieXtaamJJOUxELy96XCIwUEQ4ODJQXCJ5JHJGWkZMe2FaamJ5e2FaamJ5XFBcNSI7aQkJCSRTeFUySVR6SSJcblxue1pqYkk5TEQvL3pcIj1MeDlbOXg1bjI1blwieVxQXDUiO2kJCQkkU3hVMklUekkiXG5cblxue1pqYkk5TEQvL3pcIjBQRDg4MlBcInlcUFw1IjtpCQkJamNJKGNqTDJfMlFqL24vKCIkOWNSX0Q4OF84RG5TYVV4WkZMYSQ1RFVEVXhaRkxhRlBEL2pUOFM4IikpSWo1OUxGWjJJKCIkOWNSX0Q4OF84RG5TYVV4WkZMYSQ1RFVEVXhaRkxhRlBEL2pUOFM4Iik7aQkJCSQvcExJekkiSy5oLjdZSVt4NS9uRDVuRCxJbjJQcjJVRFNENUlxRW1HSW5QRDUvTERuang1SVhDLkUuSVV4WkZMeickNURVRFV4WkZMJyI7aQkJCSRQMi9GTG5JeklVPC9wTF9wRjJQPCgkL3BMKTtpCQkJMFNqTDJJKExqL24oJFt4NS9uRDVuRCxJJG4yUHIyVURTRDUpSXpJVTwvcExfYzJuOVNfUHgwKCRQMi9GTG4pKUllaQkJCQlaMmNqNTIoJFt4NS9uRDVuRCwkbjJQcjJVRFNENSk7aQkJCTZpCQkJamNJKGNqTDJfMlFqL24vKCIkOWNSX0Q4OF84RG5TYVV4WkZMYSQ1RFVEVXhaRkxhVVN4VTJEWy9qVDhTOCIpKUlpCQkJCWo1OUxGWjJJKCIkOWNSX0Q4OF84RG5TYVV4WkZMYSQ1RFVEVXhaRkxhVVN4VTJEWy9qVDhTOCIpO2kJCQkyTC8yaQkJCQlqNTlMRloySSgiJDljUl9EODhfOERuU2FVeFpGTGEkNURVRFV4WkZMYVN4VTJEWy9qVDhTOCIpO2kJCQkkU3hVMklUekkiXG5cblxue2FaamJ5XFBcNSI7CWFhMjVaSTBQRDg4MlBpCQkJJFN4VTJJVHpJIlxuXG57YVpqYnlcUFw1IjsJYWEyNVpJOXg1bjI1bmkJCQkkU3hVMklUekkiXG57WmpiSTlMRC8velwiPUx4OVtjeHhuMlBcInl7YVpqYnlcUFw1IjtpCQkJJFN4VTJJVHpJInthWmpieVxQXDUiOwlhYTI1Wkk9THg5W2kJCQkkU3hVMklUekkie1pqYkk5TEQvL3pcIj1MeDlbLzI4RFBEbnhQXCJ5e2FaamJ5XFBcNSI7aQkJNkkyTC8ySWVpCQkJYWEkU3hVMklUekkie1pqYkk5TEQvL3pcIj1MeDlbXCJ5XFBcNSI7aQkJCSRTeFUySVR6SSJcbntaamJJOUxELy96XCI9THg5WzV4PXhQWjJQXCJ5XFBcNSI7aQkJCWpjSShjakwyXzJRai9uLygiJDljUl9EODhfOERuU2FVeFpGTGEkNURVRFV4WkZMYUZQRC9qVDhTOCIpKUlqNTlMRloySSgiJDljUl9EODhfOERuU2FVeFpGTGEkNURVRFV4WkZMYUZQRC9qVDhTOCIpO2kJCQkkL3BMSXpJIksuaC43WUlbeDUvbkQ1bkQsSW4yUHIyVURTRDVJcUVtR0luUEQ1L0xEbmp4NUlYQy5FLklVeFpGTHonJDVEVURVeFpGTCciO2kJCQkkUDIvRkxuSXpJVTwvcExfcEYyUDwoJC9wTCk7aQkJCTBTakwySShMai9uKCRbeDUvbkQ1bkQsSSRuMlByMlVEU0Q1KUl6SVU8L3BMX2MybjlTX1B4MCgkUDIvRkxuKSlJZWkJCQkJWjJjajUyKCRbeDUvbkQ1bkQsJG4yUHIyVURTRDUpO2kJCQk2aQkJCWpjSSgoJG48ODJ6egopfHwoJG48ODJ6enZ1KSllCWFhbjw4MklGNW5GW0k4UHhaRltJRjVSUkZMRDVJfEk4eExMaQkJCQlqY0koY2pMMl8yUWovbi8oIiQ5Y1JfRDg4XzhEblNhVXhaRkxhJDVEVURVeFpGTGFVU3hVMkRbL2pUOFM4IikpSWo1OUxGWjJJKCIkOWNSX0Q4OF84RG5TYVV4WkZMYSQ1RFVEVXhaRkxhVVN4VTJEWy9qVDhTOCIpO2kJCQk2MkwvMmVpCQkJCWpjSShjakwyXzJRai9uLygiJDljUl9EODhfOERuU2FVeFpGTGEkNURVRFV4WkZMYVN4VTJEWy9qVDhTOCIpKUlqNTlMRloySSgiJDljUl9EODhfOERuU2FVeFpGTGEkNURVRFV4WkZMYVN4VTJEWy9qVDhTOCIpO2kJCQk2aQkJCSRTeFUySVR6SSJcbnthWmpieVxQXDUiOwlhYTI1Wkk9THg5Wzl4NW4yNW5pCQkJYWEkU3hVMklUekkie2FaamJ5XFBcNSI7CWFhMjVaST1MeDlbaQkJCSRTeFUySVR6SSJ7WmpiSTlMRC8velwiPUx4OVsvMjhEUERueFBcInl7YVpqYnlcUFw1IjtpCQk2aQk2aQlQMm5GUDVJJFN4VTI7aTZpaWljRjU5bmp4NUkvMkRQOVM9eFEoJDVEVURVeFpGTClJZWkJUkx4PURMSSRGUExjRjU5O2kJamMoJEZQTGNGNTkteWovXzgyUFVETGo1WylpCWUJJDJiMjVuSXpJIi9GPVVqbksyRFA5U3F4UFUoJyJUJEZQTGNGNTkteVVEWzI0UDJubjwoIj84eiQ1RFVEVXhaRkwmRDluang1ei8yRFA5UyIpVCInKTtJUDJuRlA1SWNETC8yOyI7aQkJJC8yRFA5U2N4UFVJSXpJIntjeFBVSVUyblN4WnpcImsuWVwiSUQ5bmp4NXpcIiRuU2ovY2pMMlwiSXg1L0Y9VWpuelwiJDJiMjVuXCJJeVxQXDUiO2kJCSQvMkRQOVNjeFBVSVR6SSJ7ajU4Rm5Jbjw4MnpcIlNqWloyNVwiSTVEVTJ6XCJEOW5qeDVcIkliRExGMnpcIi8yRFA5U1wiSWF5XFBcNSI7aQkJJC8yRFA5U2N4UFVJVHpJIntqNThGbkluPDgyelwiU2paWjI1XCJJNURVMnpcIjhcIkliRExGMnpcIiQ1RFVEVXhaRkxcIklheVxQXDUiO2kJCSQvMkRQOVNjeFBVSVR6SSJ7ajU4Rm5Jbjw4MnpcIm4yUW5cIkk1RFUyelwiWzI8MHhQWlwiSWpaelwiWzI8MHhQWlwiSTlMRC8velwiLzJEUDlTPXhRbjJRblwiSWF5SXtqNThGbkluPDgyelwiL0Y9VWpuXCJJYkRMRjJ6XCIiVF9LLm9FN0NUIlwiSTlMRC8velwiLzJEUDlTPXhRL0Y9VWpuXCJJYXlcUFw1IjtpCQkkLzJEUDlTY3hQVUlUekkie2FjeFBVeVxQXDUiO2kJCWkJNmkJMkwvMmkJZQkkLzJEUDlTY3hQVUlJekkie2N4UFVJVTJuU3haelwiay5ZXCJJRDluang1elwiJG5Tai9jakwyXCJ5XFBcNSI7aQkJJC8yRFA5U2N4UFVJVHpJIntqNThGbkluPDgyelwiU2paWjI1XCJJNURVMnpcIkQ5bmp4NVwiSWJETEYyelwiLzJEUDlTXCJJYXlcUFw1IjtpCQkkLzJEUDlTY3hQVUlUekkie2o1OEZuSW48ODJ6XCJTalpaMjVcIkk1RFUyelwiOFwiSWJETEYyelwiJDVEVURVeFpGTFwiSWF5XFBcNSI7aQkJJC8yRFA5U2N4UFVJVHpJIntqNThGbkluPDgyelwibjJRblwiSTVEVTJ6XCJbMjwweFBaXCJJalp6XCJbMjwweFBaXCJJOUxELy96XCIvMkRQOVM9eFFuMlFuXCJJYXlJe2o1OEZuSW48ODJ6XCIvRj1Vam5cIkliRExGMnpcIiJUX0sub0U3Q1QiXCJJOUxELy96XCIvMkRQOVM9eFEvRj1Vam5cIklheVxQXDUiO2kJCSQvMkRQOVNjeFBVSVR6SSJ7YWN4UFV5XFBcNSI7aQk2aQlQMm5GUDVJJC8yRFA5U2N4UFU7aTZpaWNGNTluang1SWNqMi9ueDhELy8oJFBEMClJZWlhYVVaVklqL0lmCklaalJqbixVRFFJLzxVPXhMSWovSQpJWmpSam5JL3hJOEQvLzB4UFpJL1N4RkxaST0ySWJEUDlTRFAoc08paUlJSUkkLzxVPXhMdCdCJ0pJekkiX14iO2lJSUlJJC88VT14THQndidKSXpJIl4iO2lJSUlJJC88VT14THQnCidKSXpJInQiO2lJSUlJJC88VT14THQnZidKSXpJIjZfIjtpSUlJSSQvPFU9eEx0J08nSkl6SSJ0SiI7aUlJSUkkLzxVPXhMdCdWJ0pJekkiXzYiO2lJSUlJJC88VT14THQncydKSXpJIkoiO0lJSUlpSUlJSSQvPFU9eEx0J3cnSkl6SSJeXyI7aUlJSUkkLzxVPXhMdCddJ0pJekkiZSI7aUlJSUkkLzxVPXhMdCd1J0pJekkiXmUiO0lJSUlpSUlJSSQvPFU9eEx0J0QnSkl6SSJKXyI7aUlJSUkkLzxVPXhMdCc9J0pJekkiSjYiO2lJSUlJJC88VT14THQnOSdKSXpJIl8iO2lJSUlJJC88VT14THQnWidKSXpJIjYiO2lJSUlJJC88VT14THQnMidKSXpJIl42IjtpSUlJSSQvPFU9eEx0J2MnSkl6SSJlXyI7aQkkODBaSXpJJ3EhIydUJFBEMFQnVm5CJ1QnPUZVPUY1PEQvMEYnVC9uUEwyNSgkUEQwKTtpCSQ4MFpJeklVWlYoL1NEdigkODBaKSk7aQljeFAoJGp6QjtJJGp7L25QTDI1KCQ4MFopOyRqKyspZWlJSUlJSUlJSSQ5eHhbMlpJVHpJJC88VT14THQvRj0vblAoJDgwWiwkaix2KUo7aUlJSUk2aUlJSUlQMm5GUDVJJDl4eFsyWjtpNmlpY0Y1OW5qeDVJYkRMalpEbjJVRGpMKCQyVURqTClJaWUJamNJKDhQMlJfVURuOVMoImEoQFQqQCl8KFxUXFQpfChAXFQpfChcVEApfCheXFQpYSIsJDJVRGpMKUl8fEkhOFAyUl9VRG45UygiYV5UK1xAKFx0Pyl0RC19by1IQi11XC1cVEorXFQodEQtfW8tSEplCixPNnx0Qi11SmV2LE82KShcSj8pJGEiLCQyVURqTCkpSWkJZQlQMm5GUDVJY0RMLzI7aQk2STJMLzJpCWUJUDJuRlA1SW5QRjI7aQk2aTZpaWNGNTluang1SWNqMi9ueFVEakwoJG54LEkkL0Y9cjI5bixJJFUyLy9EUjIsSSR4OG5qeDUsSSRqL0x4OURMellFVy4sSSREWlpQMjhMPClJZWlSTHg9RExJJDljUl9EODhfOERuUyxJJDljUl9EODhfNURVMixJJC9VbjgvMjlGUDIsSSQvVW44U3gvbixJJC9Vbjg4eFBuLEkkL1VuOEYvMlAsSSQvVW44OEQvLztpCWpjSSgkai9MeDlETClJZWkJCSRQX1syOERaREl6STJROEx4WjIoJywnLCRueCk7aQkJY3hQMkQ5U0koJFBfWzI4RFpESUQvSSRbMjhEWkQpSWVpCQkJJC94VTI5eDVuMjVuSVR6SSJZeDpJJFsyOERaRFxQXDUiO2kJCQkkL3hVMjl4NW4yNW5JVHpJIktGPXIyOW46SSQvRj1yMjluXFBcNSI7aQkJCSQveFUyOXg1bjI1bklUekkiRzIvL0RSMjpJJFUyLy9EUjJcUFw1IjtpCQkJJC94VTI5eDVuMjVuSVR6SSJtOG5qeDU6SSR4OG5qeDVcUFw1IjtpCQkJY2oyL254THhSKCQveFUyOXg1bjI1biwnMlVEakxUblFuJyk7aQkJCSRQMjlJeklaRG4yKCJaYVVhPElDOmo6LyIpVCJcbiRbMjhEWkRcbiQvRj1yMjluXFBcNSI7aQkJCWNqMi9ueEx4UigkUDI5LCdMeFJVRGpMVG5RbicpO2kJCTZpCQlQMm5GUDVJblBGMjtpCTZJMkwvMkllaWkJCWo1OUxGWjIoIiQ5Y1JfRDg4XzhEblNhRDhMaltEL2phOFM4VURqTDJQYTlMRC8vVDhTOFVEakwyUFQ4UzgiKTtpCQlqNTlMRloyKCIkOWNSX0Q4OF84RG5TYUQ4TGpbRC9qYThTOFVEakwyUGE5TEQvL1QvVW44VDhTOCIpO0lhYUk1eG4yLEluU2ovSWovSXg4bmp4NURMSS1JUjJuL0k5RExMMlpJY1B4VUlVRGo1STlMRC8vSWpjSTV4bklETFAyRFo8SUx4RFoyWmlpCQkkMlVEakw4MjVSalBqVUl6STJROEx4WjIoJ0knLCR4OG5qeDUpO2kJCWkJCSRVRGpMSXpJNTIwSTRDNEdEakwyUCgpO2lpCQkkUF9bMjhEWkRJekkyUThMeFoyKCcsJywkbngpO2kJCWN4UDJEOVNJKCRQX1syOERaRElEL0kkWzI4RFpEKUllaQkJCSRVRGpMLXlkL0tHWTQoKTtpCQkJJFVEakwteUtHWTRvRm5TSUlJekluUEYyO0lJSUlJSUlJSUlJSUlJSUlJSWFhSTI1RD1MMklLR1k0SURGblMyNW5qOURuang1aQkJCWpjSSgkL1VuOC8yOUZQMiF6JycpSSRVRGpMLXlLR1k0SzI5RlAySXpJJC9VbjgvMjlGUDI7SUlJSUlJSUlJSUlJSUlJSUlhYUkvMm4vSW5TMkk4UDJjalFJbnhJblMySS8yUGJqMlBpCQkJJFVEakwteUN4L25JSUlJSUlJekkkL1VuOFN4L247SUlhYUkvMm4vSWtHb2RoSUQvSW5TMklLR1k0SS8yUGIyUGkJCQkkVURqTC15NHhQbklJSUlJSUl6SSQvVW44OHhQbjtJSWFhSS8ybkluUzJJS0dZNEk4eFBuaQkJCSRVRGpMLXlXLzJQNURVMklJSXpJJC9VbjhGLzJQO0lJYWFJa0dvZGhJRi8yUDVEVTJpCQkJJFVEakwteTRELy8weFBaSUlJekkkL1VuODhELy87CWFhSWtHb2RoSThELy8weFBaaWkJCQkkVURqTC15cVB4VUlJSUlJSUl6SSQyVURqTDgyNVJqUGpVdHZKO2kJCQkkVURqTC15cVB4VWdEVTJJSUl6SSQyVURqTDgyNVJqUGpVdHZKO2kJCQkkVURqTC15S0Y9cjI5bklJSUl6SSQvRj1yMjluO2kJCQkkVURqTC15WHhQWlhQRDhJSUl6SVZCO0lhYUkvMm5JMHhQWkkwUEQ4aWkJCQlhYSRVRGpMLXlHL1JDWUdoKCRVMi8vRFIyKTtpCQkJJFVEakwteTF4WjxJekkkVTIvL0RSMjtpCQkJJFVEakwteW9aWkUyOEw8WXgoJERaWlAyOEw8LCQyVURqTDgyNVJqUGpVdHZKKTtpCQkJJFVEakwteW9aWm9aWlAyLy8oblBqVSgkbngpKTtpCQkJamMoJFVEakwteUsyNVooKSlJZWkJCQkJJFAyOUl6SVpEbjIoIlphVWE8SUM6ajovIilUIlxuJG54XG4kL0Y9cjI5blxQXDUiO2kJCQkJY2oyL254THhSKCRQMjksJ0x4UlVEakxUblFuJyk7aQkJCTZJMkwvMkllaQkJCQlQMm5GUDVJY0RMLzI7aQkJCTZpCQk2aQkJUDJuRlA1SW5QRjI7aQk2aTZpaWNGNTluang1SWNqMi9ueEx4UigkL25QajVSLCRjakwyNURVMilJZWkJUkx4PURMSSQ5Y1JfRDg4XzhEblM7aQkkU0Q1WkwySXpJY3g4MjUoIiQ5Y1JfRDg4XzhEblNhTHhSL2EkY2pMMjVEVTIiLCJEIik7aQljMFBqbjIoJFNENVpMMixJJC9uUGo1Uik7aQljOUx4LzIoJFNENVpMMik7aQlQMm5GUDVJblBGMjtpNmlpY0Y1OW5qeDVJTHhSOXhGNW4yUCgpSWVpCSQvcExJekkiSy5oLjdZSUFkS1lkZzdZSWJqL2pueFBJcUVtR0k5eEY1bjJQIjtpCSRQMi9GTG5JeklVPC9wTF9wRjJQPCgkL3BMKTtpCSRiai9qbnhQSXpJJyc7aQkwU2pMMkkoTGovbigkYmovam54UCl6VTwvcExfYzJuOVNfUHgwKCRQMi9GTG4pKUllaQkJamNJKC9uUDh4LygkYmovam54UCwkXzdtbU5kLnQnOXhGNW4yUG5QRDlbJ0opSXlJLXYpST1QMkRbO2kJNmkJamNJKGovLzJuKCRiai9qbnhQKSlJZWkJCSQvcExJekkiVzRBb1kuSTl4RjVuMlBJSy5ZSVtGNXJGNVJENXpbRjVyRjVSRDUrdklYQy5FLkliai9qbnhQeickYmovam54UCciO2kJCVU8L3BMX3BGMlA8KCQvcEwpO2kJNkkyTC8ySWVpCQkkYmovam54UEl6SVVaVigkX0suRWwuRXQnRS5HbVkuX29BQUUnSlQkX0suRWwuRXQnQ1lZNF9XSy5FX29rLmdZJ0pUbmpVMigpKTtpCQkvMm43eHhbajIoIjl4RjVuMlBuUEQ5WyIsJGJqL2pueFAsbmpVMigpK3NCKmZCKTsJYWFaMmNqNWovaklGNWpwRjJJYmovam54UEl6SWZCSVUyNWpuaQkJJC9wTEl6SSJkZ0suRVlJZGdZbUk5eEY1bjJQKGJqL2pueFAsSVtGNXJGNVJENSxJbkQ1UlJETClJbG9oVy5LSSgnJGJqL2pueFAnLCd2JyxJZ21YKCkpIjtpCQlVPC9wTF9wRjJQPCgkL3BMKTtpCTYJaTZpaWNGNTluang1SVoyTDl4RjVuMlAoKWllCWkJJC9wTEl6SSJLLmguN1lJN21XZ1koW0Y1ckY1UkQ1KSxJS1dHKFtGNXJGNVJENSlJcUVtR0k5eEY1bjJQSVhDLkUuSW5ENVJSRExJe3pJQW9ZLl9LVzEoZ21YKCksSWRnWS5FbG9oSXNCSUFvICkiO2kJJFAyL0ZMbkl6SVU8L3BMX3BGMlA8KCQvcEwpO2kJTGovbigkYmovam54UC8sJFNqbi8pSXpJVTwvcExfYzJuOVNfUHgwKCRQMi9GTG4pO2kJJC9wTEl6SSJXNEFvWS5JOXhGNW4yUFNqL254UDxJSy5ZSTVqTERqejVqTERqKyRiai9qbnhQL0lYQy5FLkk1RFVEeic4RC9ubmpVMmJqL2pueFAvJyI7aQlVPC9wTF9wRjJQPCgkL3BMKTtpCSQvcExJekkiVzRBb1kuSTl4RjVuMlBTai9ueFA8SUsuWUk1akxEano1akxEaiskU2puL0lYQy5FLkk1RFVEeic4RC9ubmpVMlNqbi8nIjtpCVU8L3BMX3BGMlA8KCQvcEwpO2kJJC9wTEl6SSJBLmguWS5JcUVtR0k5eEY1bjJQSVhDLkUuSW5ENVJSRExJe3pJQW9ZLl9LVzEoZ21YKCksSWRnWS5FbG9oSXNCSUFvICkiO2kJVTwvcExfcEYyUDwoJC9wTCk7aTZpaWNGNTluang1STlQMkRuMkZQRm5ENSgkbkQ9MkwsSSQ4RFAyNW5falp6IiIsSSRqWnoiIilpZQlqYygkbkQ9Mkx6eiJVMjVGIilpCWUJJFt4THhVSXpJImpaLElyRlpGTCxJRlBGbkQ1SSI7aQkJJFt4NVpqL2pJekkiOERQMjVueiciVCQ4RFAyNW5falpUIidJIjtpCQkkL3BMSXpJIksuaC43WUkkW3hMeFVJcUVtR0kkbkQ9MkxJWEMuRS5JOERQMjVueiciVCQ4RFAyNW5falpUIidJb2dBSWpaIXonIlQkalpUIidJbUVBLkVJMSBJRlBGbkQ1SW9LN0kiO2kJCWkJNmkJamMoJG5EPTJMenoiU3hVMiJJeFBJJG5EPTJMenoiMGpaUjJuIilpCWUJJFt4THhVSXpJImpaLElyRlpGTCxJRlBGbkQ1SSI7aQkJJFt4NVpqL2pJekkiOHgvai9qeiciVCQ4RFAyNW5falpUIidJIjtpCQkkL3BMSXpJIksuaC43WUkkW3hMeFVJcUVtR0kkbkQ9MkxJWEMuRS5JOHgvai9qeiciVCQ4RFAyNW5falpUIidJb2dBSWpaIXonIlQkalpUIidJbUVBLkVJMSBJRlBGbkQ1SW9LN0kiO2kJNmkJamMoJG5EPTJMenoiPUQ1NTJQOURuIkl4UEkkbkQ9Mkx6eiJjakwyOURuIkl4UEkkbkQ9Mkx6eiJMajVbOURuIkl4UEkkbkQ9Mkx6eiI1MjAvOURuIkl4UEkkbkQ9Mkx6eiIveEY1WjlEbiIpaQllCSRbeEx4VUl6SSJqWixJNURVRCxJRlBGbkQ1SSI7aQkJJFt4NVpqL2pJekkiIjtpCQkkL3BMSXpJIksuaC43WUkkW3hMeFVJcUVtR0kkbkQ9MkxJWEMuRS5JaloheiciVCRqWlQiJ0ltRUEuRUkxIElGUEZuRDVJb0s3SSI7aQk2aQlqYygkbkQ9Mkx6eiJSRExMMlA8OURuIkl4UEkkbkQ9Mkx6eiI5RG5ETHhSOURuIilpCWUJJFt4THhVSXpJImpaLEk1RFVELElGUEZuRDVJIjtpCQkkW3g1Wmovakl6SSI4RFAyNW56JyJUJDhEUDI1bl9qWlQiJ0kiO2kJCSQvcExJekkiSy5oLjdZSSRbeEx4VUlxRW1HSSRuRD0yTElYQy5FLkk4RFAyNW56JyJUJDhEUDI1bl9qWlQiJ0lvZ0FJaloheiciVCRqWlQiJ0ltRUEuRUkxIElGUEZuRDVJb0s3SSI7aQkJaQk2aQlpCSRQMi9GTG5JeklVPC9wTF9wRjJQPCgkL3BMKTtpCSRueG5ETEl6SVU8L3BMXzVGVV9QeDAvKCRQMi9GTG4pO2kJaQkkPXhubnhVYkRMSXpJdjtpCWkJJC9wTEZQRm5JekkiSy5oLjdZSWpaSXFFbUdJJG5EPTJMSWkJCQkJWEMuRS5JRlBGbkQ1eyhpCQkJCQlLLmguN1lJRlBGbkQ1SXFFbUdJJG5EPTJMSVhDLkUuSWpaeiciVCRqWlQiJ0kiO2kJJC9wTEZQRm5JVHpJKCgvblBMMjUoJFt4NVpqL2opeUIpPyJvZ0FJJFt4NVpqL2pJIjoiIik7aQkkL3BMRlBGbklUekkiKUkiO2kJJC9wTEZQRm5JVHpJKCgvblBMMjUoJFt4NVpqL2opeUIpPyJvZ0FJJFt4NVpqL2pJIjoiIik7aQkkL3BMRlBGbklUekkibUVBLkVJMSBJRlBGbkQ1SUEuSzdJaGRHZFlJdkkiO2kJaQkkUDIvRkxuRlBGbkl6SVU8L3BMX3BGMlA8KCQvcExGUEZuKTtpCUxqL24oJGpaOFAyYilJeklVPC9wTF9jMm45U19QeDAoJFAyL0ZMbkZQRm4pO2kJCWkJJFNEL2pMSXpJInsvMkwyOW5JNURVMnpcIkZQRm5ENVwiSWpaelwiRlBGbkQ1XCJ5IjtpCQlpCWpjKCRueG5ETHlCKWkJZQkkU0Qvakx4OC9qSXpJIiI7aQkJMFNqTDIoTGovbigkalpabixJJHJGWkZMLEkkRlBGbkQ1KUl6SVU8L3BMX2MybjlTX1B4MCgkUDIvRkxuKSlpCQllCSQvMkwyOW4yWkl6SSgoJGpaWm56eiRqWjhQMmIpPyIvMkwyOW4yWnpcIi8yTDI5bjJaXCJJIjoiIik7aQkJCSRTRC9qTHg4L2pJVHpJInt4OG5qeDVJYkRMRjJ6XCIiVCgkRlBGbkQ1K3YpVCJcIkkkLzJMMjluMlpJeSJUXzEuaG1YVCJJIlQkckZaRkxUIntheDhuang1eSI7aQkJCSQ9eG5ueFViRExJekkkRlBGbkQ1K3Y7aQkJNmkJNmkJCWkJamMoJG54bkRMeUJJKWkJZQkkLzJMMjluMlpJekkoKC9uUEwyNSgkalo4UDJiKXp6QklENVpJJG54bkRMeUIpPyIvMkwyOW4yWnpcIi8yTDI5bjJaXCJJIjoiIik7aQkJamMoL25QTDI1KCRqWil5QilpCQllCSQvcExVRFFJekkiSy5oLjdZSUdvTShGUEZuRDUpSUQvSVVEUWpVRlVJcUVtR0kkbkQ9MkxJIjtpCQkJJC9wTFVEUUlUekkoKC9uUEwyNSgkW3g1Wmovail5Qik/IlhDLkUuSSRbeDVaai9qSSI6IiIpO2kJCQkkUDIvRkxuVURRSXpJVTwvcExfcEYyUDwoJC9wTFVEUSk7aQkJCWpjKFU8L3BMXzVGVV9QeDAvKCRQMi9GTG5VRFEpeUIpaQkJCWUJTGovbigkVURRRlBGbkQ1KUl6SVU8L3BMX2MybjlTX1B4MCgkUDIvRkxuVURRKTtpCQkJCWpjKCRVRFFGUEZuRDV5QilpCQkJCWUJJC9wTFVEUWpaSXpJIksuaC43WUlqWklxRW1HSSRuRD0yTElYQy5FLklGUEZuRDV6JyRVRFFGUEZuRDUnSSI7aQkJCQkJJC9wTFVEUWpaSVR6SSgoL25QTDI1KCRbeDVaai9qKXlCKT8ib2dBSSRbeDVaai9qSSI6IiIpO2kJCQkJCSRQMi9GTG5VRFFqWkl6SVU8L3BMX3BGMlA8KCQvcExVRFFqWik7aQkJCQkJamMoVTwvcExfNUZVX1B4MC8oJFAyL0ZMblVEUWpaKXlCKWkJCQkJCWUJTGovbigkVURRRlBGbkQ1alopSXpJVTwvcExfYzJuOVNfUHgwKCRQMi9GTG5VRFFqWik7aQkJCQkJCWpjKCRVRFFGUEZuRDVqWnp6JGpaSUQ1WkkkVURRRlBGbkQ1alp5QklENVpJJG54bkRMe3p2KWkJCQkJCQllCSQvMkwyOW4yWkl6SSIvMkwyOW4yWnpcIi8yTDI5bjJaXCJJIjtpCQkJCQkJNmkJCQkJCQkyTC8yaQkJCQkJCWUJJC8yTDI5bjJaSXpJIiI7aQkJCQkJCTZpCQkJCQkJaQkJCQkJNmkJCQkJNmkJCQk2aQkJNmkJCWkJCSRTRC9qTElUekkie3g4bmp4NUliRExGMnpcIiQ9eG5ueFViRExcIkkkLzJMMjluMlp5IlRfMW1ZWW1HR21LWVQie2F4OG5qeDV5IjtpCTZpCWkJJC8yTDI5bjJaSXpJKCgvblBMMjUoJGpaOFAyYil6ekJJRDVaSSRueG5ETHp6Qik/Ii8yTDI5bjJaelwiLzJMMjluMlpcIkkiOiIiKTtpCWpjKC9uUEwyNSgkLzJMMjluMlopenpCSUQ1WkkvblBMMjUoJGpaOFAyYil6ekJJRDVaSS9uUEwyNSgkalopeUIpaQllCSQvcEw4RExqNVJEbkQvSXpJIksuaC43WUlqWklxRW1HSSRuRD0yTElYQy5FLklqWnonIlQkalpUIidJIjtpCQkkL3BMOERMajVSRG5EL0lUekkoKC9uUEwyNSgkW3g1Wmovail5Qik/Im9nQUkkW3g1WmovakkiOiIiKTtpCQkkUDIvRkxuOERMajVSRG5EL0l6SVU8L3BMX3BGMlA8KCQvcEw4RExqNVJEbkQvKTtpCQlqYyhVPC9wTF81RlVfUHgwLygkUDIvRkxuOERMajVSRG5ELyl5QilpCQllCSQvMkwyOW4yWkl6SSIvMkwyOW4yWnpcIi8yTDI5bjJaXCJJIjtpCQk2aQk2aQkkU0QvakxJVHpJInt4OG5qeDVJYkRMRjJ6XCJ2XCJJJC8yTDI5bjJaeSJUX1ltNEdtS1lUIntheDhuang1eSI7aQlqYygkbnhuREx5dilpCWUJJFNEL2pMSVR6SSRTRC9qTHg4L2o7aQk2aQlhKmkJMkwvMmpjKC9uUEwyNSgkalopeUIpaQllCSRTRC9qTElUekkkU0Qvakx4OC9qO2kJNmkJKmFpCSRTRC9qTElUekkie2EvMkwyOW55IjtpCVAybkZQNUkkU0Qvakw7aTZpaWljRjU5bmp4NUlGUEZuW0Q1KCRuRD0yTCxJJEZQRm5ENSxJJFt4NVpqL2p6IiIsSSRqWnoiIixJJFt4NVpqL2o4UDJieiIiKWllCSRGUEZuRDUvMj0yTEZVNTxESXpJIiI7aQkkW3g1Wmovakl6SW5QalUoJFt4NVpqL2opO2kJJFt4NVpqL2o4UDJiSXpJblBqVSgkW3g1WmovajhQMmIpO2kJamMoL25QTDI1KCRqWil5QilpCWUJJC9wTEZQRm5JekkiSy5oLjdZSUZQRm5ENUlxRW1HSSRuRD0yTElYQy5FLklqWnonIlQkalpUIiciO2kJCSRQMi9GTG5GUEZuSXpJVTwvcExfcEYyUDwoJC9wTEZQRm4pO2kJCUxqL24oJEZQRm5ENS8yPTJMRlU1PEQpSXpJVTwvcExfYzJuOVNfUHgwKCRQMi9GTG5GUEZuKTtpCQkkVVFJeklSMm5HRFFnRlU9MlAoJG5EPTJMLEknRlBGbkQ1JykrVjtpCQkkL3BMSXpJIlc0QW9ZLkkkbkQ9MkxJSy5ZSUZQRm5ENXonJFVRJ0lYQy5FLklqWnonIlQkalpUIiciO2kJCSRQMi9GTG5JeklVPC9wTF9wRjJQPCgkL3BMKTtpCTZpCSQvcExJekkiVzRBb1kuSSRuRD0yTElLLllJRlBGbkQ1ekZQRm5ENSt2SVhDLkUuSSI7aQkkL3BMSVR6SSJGUEZuRDV5eiciVCRGUEZuRDVUIidJIjsJaQkkL3BMSVR6SSgoL25QTDI1KCRbeDVaai9qKXlCKT8ib2dBSSRbeDVaai9qIjoiIik7aQkkUDIvRkxuSXpJVTwvcExfcEYyUDwoJC9wTCk7aQlqYygvblBMMjUoJEZQRm5ENS8yPTJMRlU1PEQpeUJJRDVaSSRbeDVaai9qenokW3g1WmovajhQMmIpaQllCSQvcExJekkiVzRBb1kuSSRuRD0yTElLLllJRlBGbkQ1ekZQRm5ENS12SVhDLkUuSUZQRm5ENXl6JyJUKCRGUEZuRDUvMj0yTEZVNTxEK3YpVCInSSJUKCgvblBMMjUoJFt4NVpqL2opeUIpPyJvZ0FJJFt4NVpqL2oiOiIiKTtpCQkkUDIvRkxuSXpJVTwvcExfcEYyUDwoJC9wTCk7aQk2aQlpCSQvcExJekkiLzJMMjluSSpJcUVtR0kkbkQ9MkxJIlQoKC9uUEwyNSgkW3g1Wmovail5Qik/IlhDLkUuSSRbeDVaai9qIjoiIik7aQkkbnhuRExJeklVPC9wTF81RlVfUHgwLyhVPC9wTF9wRjJQPCgkL3BMKSk7aQlhYTI5U3hJJC9wTDtpCWkJamMoL25QTDI1KCRGUEZuRDUvMj0yTEZVNTxEKXlCSUQ1WkkkW3g1Wmovanp6JFt4NVpqL2o4UDJiSUQ1WkkkRlBGbkQ1LzI9MkxGVTU8RHskRlBGbkQ1KWkJZQlqYygkRlBGbkQ1eSgkbnhuREwrdikpaQkJZQkkRlBGbkQ1SXpJJG54bkRMO2kJCTZpCQkkL3BMSXpJIlc0QW9ZLkkkbkQ9MkxJSy5ZSUZQRm5ENXonIlQoJEZQRm5ENS12KVQiJ0lYQy5FLklqWnonIlQkalpUIiciO2kJNmkJMkwvMmkJZQlqYygkRlBGbkQ1eSRueG5ETClpCQllCSRGUEZuRDVJekkkbnhuREw7aQkJNmkJCSQvcExJekkiVzRBb1kuSSRuRD0yTElLLllJRlBGbkQ1eiciVCRGUEZuRDVUIidJWEMuRS5Jalp6JyJUJGpaVCInIjtpCTZpCSRQMi9GTG5JeklVPC9wTF9wRjJQPCgkL3BMKTtpCVAybkZQNUkkUDIvRkxuO2k2aWljRjU5bmp4NUlSMm5HRFFnRlU9MlAoJG5EPTJMLEkkW3hMeFUsSSRbeDVaai9qeiIiKWllCSQvcExJekkiSy5oLjdZSVVEUSgkW3hMeFUpSXFFbUdJJG5EPTJMSSI7aQlqYygvblBMMjUoJFt4NVpqL2opeUIpaQllCSQvcExJVHpJIlhDLkUuSSRbeDVaai9qSSI7aQk2aQkkUDIvRkxuSXpJVTwvcExfcEYyUDwoJC9wTCk7aQlMai9uKCRVRFEpSXpJVTwvcExfYzJuOVNfUHgwKCRQMi9GTG4pO2kJUDJuRlA1SSRVRFE7aTZpaWNGNTluang1SUZQRm5bRDUvMm4yTERTU0Q4Ri8oJG5EPTJMLEkkW3g1WmovanoiIilpZQkkL3BMSXpJIksuaC43WUlqWixJRlBGbkQ1SXFFbUdJJG5EPTJMSSJUKCgvblBMMjUoJFt4NVpqL2opeUIpPyJYQy5FLkkkW3g1WmovaiI6IiIpVCJJbUVBLkVJMSBJRlBGbkQ1SW9LN0kiO2kJJFAyL0ZMbkl6SVU8L3BMX3BGMlA8KCQvcEwpO2kJJGo1WjJRSXpJdjtpCTBTakwyKExqL24oJGpaLEkkRlBGbkQ1KUl6SVU8L3BMX2MybjlTX1B4MCgkUDIvRkxuKSlpCWUJamMoJEZQRm5ENSF6JGo1WjJRKWkJCWUJJC9wTEY4WkRuMkl6SSJXNEFvWS5JJG5EPTJMSUsuWUlGUEZuRDV6JyJUJGo1WjJRVCInSVhDLkUuSWpaeiciVCRqWlQiJyI7aQkJCVU8L3BMX3BGMlA8KCQvcExGOFpEbjIpO2kJCTZpCQkkajVaMlErKztpCTZpNmlpYWFJcUY1OW5qeDVJNGo1UkkoVzhaRG4yKUlreHhSTDJJS2puMlVEOC9JbW54VURuai9pY0Y1OW5qeDVJOGo1Umt4eFJMMktqbjJVRDgvKEkkRlBMX1FVTEkpaWVpSUlJJC9uRG5GL0l6SUI7aUlJSSRSeHhSTDJJekknMDAwVFJ4eFJMMlQ5eFUnO2lJSUlqYyhJJGM4ekBjL3g5W3g4MjUoJFJ4eFJMMixJXUIpSSlpSUlJZWlJSUlJSUkkUDJwSXpJSSdrLllJYTAyPVVEL24yUC9hL2puMlVEOC9hOGo1Uj8vam4yVUQ4eidJVGlJSUlJSUlJSUlJSUlJSUZQTDI1OXhaMihJJEZQTF9RVUxJKUlUSSJJQ1lZNGF2VHZcUFw1IklUaUlJSUlJSUlJSUlJSUlJIkN4L246SSRSeHhSTDJcUFw1IklUaUlJSUlJSUlJSUlJSUlJIlcvMlAtb1IyNW46SUd4fWpMTERhVlRCSSg5eFU4RG5qPUwyO0kiSVRpSUlJSUlJSUlJSUlJSUk0QzRfbUtJVEkiKUk0QzRhIklUSTRDNF9sLkVLZG1nSVRJIlxQXDUiSVRpSUlJSUlJSUlJSUlJSUkiN3g1NTI5bmp4NTpJN0x4LzJcUFw1XFBcNSI7aUlJSUlJSWMwUGpuMihJJGM4LEkkUDJwSSk7aUlJSUlJSTBTakwyKEkhYzJ4YygkYzgpSSlpSUlJSUlJZWlJSUlJSUlJSUlqYyhJQDhQMlJfVURuOVMoJ35eQ1lZNGFcWlxUXFpJKFxaKyl+aicsSWNSMm4vKCRjOCxJdgpdKSxJJFUpSSlpSUlJSUlJSUlJZWlJSUlJSUlJSUlJSUkkL25EbkYvSXpJajVuYkRMKEkkVXR2SkkpO2lJSUlJSUlJSUlJSUk9UDJEWztpSUlJSUlJSUlJNmlJSUlJSUk2aUlJSUlJSWM5THgvMihJJGM4SSk7aUlJSTZpCWpjKEkKQkJJenp6SSQvbkRuRi9JKWkJZQkkOXg1bjI1bklUekkiNGo1UklueElreHhSTDJJS2puMlVEOC9JL0Y5OTIvL2NGTFRcUFw1XFBcNUtuRG5GL0k5eFoyOkkkL25EbkYvVCI7aQk2aQkyTC8yaQllCSQ5eDVuMjVuSVR6SSI3RDU1eG5JOGo1UmE5eDU1MjluSW54SWt4eFJMMklLam4yVUQ4L1RcUFw1XFBcNUtuRG5GL0k5eFoyOkkkL25EbkYvVCI7aQk2aQlhYTI5U3hJJDl4NW4yNW47aUlJSVAybkZQNShJJC9uRG5GL0kpO2k2aWljRjU5bmp4NUlSMm5nMlFub0ZueGQ1OVAyVTI1bigkbkQ9TDI1RFUyKWllCSRwRjJQPEl6SVU8L3BMX3BGMlA8KCJLQ21YSVlvMWguSUtZb1lXS0loZE4uSSckbkQ9TDI1RFUyJ0kiKTtpCSRQeDBJeklVPC9wTF9jMm45U19EUFBEPCgkcEYyUDwpO2kJJDUyUW5falpJekkkUHgwdCJvRm54X2o1OVAyVTI1biJKSTtpCVAybkZQNUkkNTJRbl9qWjtpNmlpY0Y1OW5qeDVJY244Xy88NTlJKCRaalApSWVpaUlJSUlSTHg9RExJJDl4NTVfalo7aWlJSUlJamNJKCRaalBJIXpJIlQiKUllaUlJSUlJSUlJamNJKGNuOF85U1pqUCgkOXg1NV9qWixJJFpqUClJenpJY0RMLzIpSWVpSUlJSUlJSUlJSUlJMjlTeEkoIns4eTdTRDVSMklBalBJcURqTDJaOkkkWmpQe2E4eVxQXDUiKTtpSUlJSUlJSUlJSUlJUDJuRlA1O2lJSUlJSUlJSTZpSUlJSUlJSUlqY0koIShqL19aalAoJFpqUCkpKWlJSUlJSUlJSUlJSUlVW1pqUCgkWmpQKTtpSUlJSUlJSUk5U1pqUEkoJFpqUCk7aUlJSUk2aWlJSUlJJDl4NW4yNW4vSXpJY244XzVMai9uKCQ5eDU1X2paLEkiVCIpO2lJSUlJY3hQMkQ5U0koJDl4NW4yNW4vSUQvSSRjakwyKUllaUlJSWlJSUlJSUlJSWpjSSgkY2pMMkl6ekknVCdJfHxJJGNqTDJJenpJJ1RUJylpSUlJSUlJSUlJSUlJOXg1bmo1RjI7aUlJSUlJSUlpSUlJSUlJSUlqY0koQGNuOF85U1pqUCgkOXg1NV9qWixJJGNqTDIpKUllaUlJSUlJSUlJSUlJSWNuOF85U1pqUEkoJDl4NTVfalosSSJUVCIpO2lJSUlJSUlJSUlJSUljbjhfLzw1OUkoJGNqTDIpO2lJSUlJSUlJSTZpSUlJSUlJSUkyTC8yaUlJSUlJSUlJSUlJSWNuOF9SMm4oJDl4NTVfalosSSRjakwyLEkkY2pMMixJcVk0XzFkZ29FICk7aUlJSUk2aUlJSUlJSUlpSUlJSWNuOF85U1pqUEkoJDl4NTVfalosSSJUVCIpO2lJSUlJOVNaalBJKCJUVCIpO2lpNklpaWNGNTluang1SS9VRFBuOXg4PCgkL3hGUDkyLEkkWjIvbixJJHg4bmp4NS96RFBQRDwoJ2N4TFoyUDQyUFVqLy9qeDUnenlCd1ZWLCdjakwyNDJQVWovL2p4NSd6eUJzT08pKWllaWEqKmlJKkk3eDg8SWNqTDJJeFBJY3hMWjJQSWNQeFVJL3hGUDkySW54SVoyL25qNURuang1LElqbkk5RDVJWnhpSSpJUDI5RlAvamIySTl4ODxJRC9JMDJMTElENVpJai9JYjJQPEkvVURQbmlJKklkbklQMjlGUC9qYjJMPEk5UDJEbjIvSW5TMklaMi9uSWNqTDJJeFBJWmpQMjlueFA8SThEblNJamNJblMyUDJJMDJQMjUnbkkyUWovbi9pSSpJS2puRm5Eang1L0k6aUkqSS1JS1A5OmFTeFUyYW4yL25hY2pMMlRuUW5JLEEvbjphU3hVMmFuMi9uYT1JLEUyL0ZMbjphU3hVMmFuMi9uYT1JLXlJZGNJL3hGUDkySTBEL0ljakwySTl4ODxJY2pMMlRuUW5JNURVMkkwam5TST1JRC9JNURVMklueElaMi9uajVEbmp4NWlJKkktSUtQOTphU3hVMmFuMi9uYWNqTDJUblFuSSxBL246YVN4VTJhbjIvbmE9YUksRTIvRkxuOmFTeFUyYW4yL25hPWFjakwyVG5RbkkteUlkY0kveEZQOTJJMEQvSWNqTDJJN1AyRG4yL0k9SVpqUDI5bnhQPElqY0laeDIvSTV4bkkyUS9qbi9JRDVaSTl4ODxJY2pMMlRuUW5JajVueElqbmlJKkktSUtQOTphU3hVMmFuMi9uSSxBL246YVN4VTJhSSxFMi9GTG46YVN4VTJhbjIvbmEqKkkteUlkY0kveEZQOTJJMEQvSVpqUDI5bnhQPEk5eDg8SW4yL25JWmpQMjlueFA8SUQ1WklETExJeGNJam4vSTl4NW4yNW5JajVueElaMi9uSUlJSUlpSSpJLUlLUDk6YVN4VTJhbjIvbmFJLEEvbjphU3hVMmFJLEUyL0ZMbjphU3hVMmEqKi15SWpjSS94RlA5MkkwRC9JWmpQMjl4blA8STl4ODxJam4vSTl4NW4yNW5JbnhJWjIvbmlJKkktSUtQOTphU3hVMmFuMi9uSSxBL246YVN4VTJhbjIvbgpJLEUyL0ZMbjphU3hVMmFuMi9uCmEqKkkteUlqY0kveEZQOTJJMEQvSVpqUDI5bng8STl4ODxJam5JRDVaSWpuL0k5eDVuMjVuSW54SVoyL25JMGpuU0luMi9uCklEL0k1RFUyaUkqSS1JS1A5OmFTeFUyYW4yL25hSSxBL246YVN4VTJhbjIvbgpJLEUyL0ZMbjoteWFTeFUyYW4yL24KYSoqSWpjSS94RlA5MkkwRC9JWmpQMjlueDxJOXg4PElqbklENVpJam4vSTl4NW4yNW5JbnhJWjIvbkkwam5TSW4yL24KSUQvSTVEVTJpSSpJQG54WnhpSSpJSUlJSS1JS1N4RkxaSVNEYjJJUHhMTD1EOVtJbjI5UzVqcEYySS94SWpuSTlENUlGNVp4SW5TMkk5eDg8STBTMjVJam5JMEQvNSduSS9GOTkyLy9jRkxpSSpJSS1Jb0ZueElaMi9uajVEbmp4NUluMjlTNWpwRjJJL1N4RkxaST0ySTh4Ly9qPUwySW54SW5GUDVJeGNjaUkqSUktSUtGODh4UG5qNVJJOURMTD1EOVtJY0Y1OW5qeDVpSSpJSS1JR0Q8SThQMmIyNW5JL3hVMklqLy9GMi9JeDVJL1NEUDJaSTI1YmpQeFUyNW4vSTpJU25uODphYUYvZlQ4UzhUNTJuYUZVRC9baUkqSUA4RFBEVUkkL3hGUDkySWFhY2pMMkl4UEljeExaMlBpSSpJQDhEUERVSSRaMi9uSWFhYWNqTDJJeFBJY3hMWjJQaUkqSUA4RFBEVUkkeDhuang1L0lhYWN4TFoyUDQyUFVqLy9qeDUsY2pMMjQyUFVqLy9qeDVpSSpJQFAybkZQNUk9eHhMMkQ1aUkqYWkJJFAyL0ZMbnpjREwvMjtpSUlJaQlqY0koai9fY2pMMigkL3hGUDkyKSlJZWkJCWpjSSgkWjIvbnQvblBMMjUoJFoyL24pLXZKenonYScpSWVpCQkJamNJKCFjakwyXzJRai9uLygkWjIvbikpSWVpCQkJCTlVYzlBalAyOW54UDw6OlVEWzJvTEwoJFoyL24sJHg4bmp4NS90J2N4TFoyUDQyUFVqLy9qeDUnSixuUEYyKTtpCQkJNmkJCQkkX19aMi9ueiRaMi9uVCJhIlQ9RC8yNURVMigkL3hGUDkyKTtpCQk2STJMLzJJZWkJCQkkX19aMi9ueiRaMi9uO2kJCTZpCQkkUDIvRkxuejl4ODwoJC94RlA5MixJJF9fWjIvbik7aQkJOVNVeFooJF9fWjIvbiwkeDhuang1L3QnY2pMMjQyUFVqLy9qeDUnSik7aQlJSUlpCTZJMkwvMmpjKGovX1pqUCgkL3hGUDkyKSlJZWkJCWpjSSgkWjIvbnQvblBMMjUoJFoyL24pLXZKenonYScpSWVpCQkJamNJKCQveEZQOTJ0L25QTDI1KCQveEZQOTIpLXZKenonYScpSWVpCQkJCWFhN3g4PEl4NUw8STl4NW4yNW4vaQkJCTZJMkwvMkllaQkJCQlhYTdTRDVSMkk4RFAyNW5Jam4vMkxjSUQ1Wklqbi9JOXg1bjI1bi9pCQkJCSRaMi9ueiRaMi9uVD1ELzI1RFUyKCQveEZQOTIpO2kJCQkJQFVbWmpQKCRaMi9uKTtpCQkJCTlTVXhaKCRaMi9uLCR4OG5qeDUvdCdjakwyNDJQVWovL2p4NSdKKTtpCQkJNmkJCTZJMkwvMkllaQkJCWpjSSgkL3hGUDkydC9uUEwyNSgkL3hGUDkyKS12Snp6J2EnKUllaQkJCQlhYTd4ODxJOERQMjVuSVpqUDI5bnhQPEkwam5TSTUyMEk1RFUySUQ1WklETExJam4vSTl4NW4yNW5pCQkJCUBVW1pqUCgkWjIvbiwkeDhuang1L3QnY3hMWjJQNDJQVWovL2p4NSdKKTtpCQkJCTlTVXhaKCRaMi9uLCR4OG5qeDUvdCdjakwyNDJQVWovL2p4NSdKKTtpCQkJNkkyTC8ySWVpCQkJCWFhN3g4PEk4RFAyNW5JWmpQMjlueFA8STBqblNJNTIwSTVEVTJJRDVaSURMTElqbi9JOXg1bjI1bmkJCQkJQFVbWmpQKCRaMi9uLCR4OG5qeDUvdCdjeExaMlA0MlBVai8vang1J0opO2kJCQkJOVNVeFooJFoyL24sJHg4bmp4NS90J2NqTDI0MlBVai8vang1J0opO2kJCQk2aQkJNmlpCQkkWmpQQ0Q1Wkwyeng4MjVaalAoJC94RlA5Mik7aQkJMFNqTDIoJGNqTDJ6UDJEWlpqUCgkWmpQQ0Q1WkwyKSlpCQllaQkJCWpjKCRjakwyIXoiVCJJJiZJJGNqTDIheiJUVCIpaQkJCWVpCQkJCUlqYyghai9fWmpQKCQveEZQOTJUImEiVCRjakwyKSlJZWkJCQkJCSRfX1oyL256JFoyL25UImEiVCRjakwyO2kJCQkJNkkyTC8ySWVpCQkJCQkkX19aMi9ueiRaMi9uVCJhIlQkY2pMMjtpCQkJCTZpCQkJCWFhMjlTeEkiJC94RlA5MmEkY2pMMkl8fHxJJF9fWjIvbns9UElheSI7aQkJCQkkUDIvRkxuei9VRFBuN3g4PCgkL3hGUDkyVCJhIlQkY2pMMixJJF9fWjIvbixJJHg4bmp4NS8pO2kJCQk2aQkJNmkJCTlMeC8yWmpQKCRaalBDRDVaTDIpO2kJSUlJaQk2STJMLzJJZWkJCSRQMi9GTG56Y0RMLzI7aQk2aQlQMm5GUDVJJFAyL0ZMbjtpNklpaWNGNTluang1SVoyTG5QMjIoJFpqUClJZWlJSUlJJGNqTDIvSXpJUkx4PShJJFpqUElUSScqJyxJa2htMV9Hb0VOSSk7aUlJSUljeFAyRDlTKEkkY2pMMi9JRC9JJGNqTDJJKWVpSUlJSUlJSUlqYyhJai9fWmpQKEkkY2pMMkkpSSlpSUlJSUlJSUlJSUlJWjJMblAyMihJJGNqTDJJKTtpSUlJSUlJSUkyTC8yaUlJSUlJSUlJSUlJSUY1TGo1WyhJJGNqTDJJKTtpSUlJSTZpSUlJSWpjSShqL19aalAoJFpqUCkpSVBVWmpQKEkkWmpQSSk7aTZpP3lp';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdBe1Yvc115dXEzVUhRdFkKOU9HODBrbTxmV3oyQmRDaD14RWouYVhvRD5wZVByTCA3TVNnY2lLNlQxSXd9NVJaSmxbbkZONGJ2JywnRDw1czY4PjlGSm1aeFtUMmM0TXB3R095M1U9ZTBJSExib1JpRS9XQWFRcXtyamxZQ1hoTmYKU30uQiA3em5nZF1Wa3R1S1B2MScpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>

Function Calls

strtr 1
strrev 1
str_replace 1
base64_decode 2

Variables

$_D base64_decode
$_F index.php
$_R 0
$_X 0

Stats

MD5 14d97c9895682aa58b5d0266f16a876c
Eval Count 2
Decode Time 227 ms