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

Signing you up...

Thank you for signing up!

PHP Decode

$_F=__FILE__;$_X='PzUgPy93L2h6KmhbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tb..

Decoded Output download

?><?php
/*
=====================================================
 Sypex Dumper - by BINOVATOR
-----------------------------------------------------
 https://sypex.net/
-----------------------------------------------------
 Copyright (c) 2004-2023
=====================================================
 This code is protected by copyright
=====================================================
 File: dumper.php
-----------------------------------------------------
 Use: DB backub
=====================================================
*/


if( !defined( 'DATALIFEENGINE' ) OR !defined( 'LOGGED_IN' ) ) {
	header( "HTTP/1.1 403 Forbidden" );
	header ( 'Location: ../../' );
	die( "Hacking attempt!" );
}

header("Content-type: text/html; charset=utf-8");
header('X-Accel-Buffering: no');

if($member_id['user_group'] !=1){ msg("error", $lang['addnews_denied'], $lang['db_denied']); }

if( !defined('AUTOMODE') ) {
	if( !isset($_REQUEST['user_hash']) OR !$_REQUEST['user_hash'] OR $_REQUEST['user_hash'] != $dle_login_hash ) {
		echo $lang['sess_error']; die();
	}
}

@ini_set('max_execution_time', 0);
@ini_set('max_execution_time', 0);
@ini_set('implicit_flush', true);
@ini_set('output_buffering', 0);

@set_time_limit(0);

ob_end_flush();
ob_implicit_flush();
ob_ignore();

$db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$db->safesql($member_id['name'])."', '{$_TIME}', '{$_IP}', '24', '')" );

define('PATH', ROOT_DIR.'/backup/');
define('URL',  'backup/');
define('LIMIT', 1);
define('DBNAMES', DBNAME);
define('DBNUSER', DBUSER);
define('DBPREFIX',PREFIX);

if(!defined('VERSIONID')) {
	define( 'VERSIONID', $config['version_id'] );
}

define('CHARSET', 'auto');

define('RESTORE_CHARSET', 'utf8');

define('SC', 0);

define('ONLY_CREATE', 'MRG_MyISAM,MERGE,HEAP,MEMORY');

$timer = array_sum(explode(' ', microtime()));

$auth = 0;
$error = '';
$db_location = explode(":", DBHOST);

if (isset($db_location[1])) {

	$dblink = @mysqli_connect($db_location[0], DBNUSER, DBPASS, DBNAME, $db_location[1]);

} else {

	$dblink = @mysqli_connect($db_location[0], DBNUSER, DBPASS, DBNAME);

}

if ( $dblink ){
		$auth = 1;
}	else{
		$error = '#' . mysqli_connect_error();
}

$SK = new dumper();
define('C_DEFAULT', 1);
define('C_RESULT', 2);
define('C_ERROR', 3);
define('C_WARNING', 4);

$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';

switch($action){
	case 'backup':
		$SK->backup();
		break;
	case 'restore':
		$SK->restore();
		break;
	default:
		$SK->main();
}

mysqli_close( $dblink );

		if(!defined('AUTOMODE'))
		{
			echo "<SCRIPT>document.getElementById('timer').innerHTML = '" . round(array_sum(explode(' ', microtime())) - $timer, 4) . " sec.'</SCRIPT>";
		}

class dumper {

	public $SET = array();
	public $tabs = 0;
	public $records = 0;
	public $size = 0;
	public $comp = 0;

	public $only_create = array();
	public $forced_charset = false;
	public $restore_charset = '';
	public $restore_collate = '';
	public $mysql_version = '';
	public $filename = '';
	public $file_cache = '';

	function __construct() {
		global $dblink;

		$this->SET['last_action'] = 0;
		$this->SET['last_db_backup'] = '';
		$this->SET['tables'] = '';
		$this->SET['comp_method'] = 2;
		$this->SET['comp_level']  = 7;
		$this->SET['last_db_restore'] = '';
		$this->tabs = 0;
		$this->records = 0;
		$this->size = 0;
		$this->comp = 0;

		//  MySQL  40101
		preg_match("/^(\d+)\.(\d+)\.(\d+)/", mysqli_get_server_info($dblink), $m);
		$this->mysql_version = sprintf("%d%02d%02d", $m[1], $m[2], $m[3]);

		$this->only_create = explode(',', ONLY_CREATE);
		$this->forced_charset  = false;
		$this->restore_charset = $this->restore_collate = '';

		if (preg_match("/^(forced->)?(([a-z0-9]+)(\_\w+)?)$/", RESTORE_CHARSET, $matches)) {
			$this->forced_charset  = $matches[1] == 'forced->';
			$this->restore_charset = $matches[3];
			$this->restore_collate = !empty($matches[4]) ? ' COLLATE ' . $matches[2] : '';
		}
	}

	function backup() {
		global $lang, $config, $dblink;
		if (!isset($_POST['comp_method'])) $_POST['comp_method'] = $_GET['comp_method'];

		@set_error_handler("SXD_errorHandler", E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
		$buttons = "<span id='save' STYLE='display: none;'>{$lang['dumper_1']}</span>";
		echo tpl_page(tpl_process($lang['dumper_2']), $buttons);

		$this->SET['last_action']     = 0;
		$this->SET['last_db_backup']  = DBNAMES;
		$this->SET['tables_exclude']  = 0;
		$this->SET['tables']          = DBPREFIX.'*';
		$this->SET['comp_method']     = isset($_POST['comp_method']) ? intval($_POST['comp_method']) : 0;
		$this->SET['comp_level']      = 5;

		$this->SET['tables']          = explode(",", $this->SET['tables']);

		    foreach($this->SET['tables'] AS $table){
    			$table = preg_replace("/[^\w*?^]/", "", $table);
				$pattern = array( "/\?/", "/\*/");
				$replace = array( ".", ".*?");
				$tbls[] = preg_replace($pattern, $replace, $table);
    		}

		if ($this->SET['comp_level'] == 0) {
		    $this->SET['comp_method'] = 0;
		}
		$db = $this->SET['last_db_backup'];

		if (!$db) {
			echo tpl_l($lang['dumper_3'], C_ERROR);
		    exit;
		}
		echo tpl_l("{$lang['dumper_20']} `{$db}`.");

		$tables = array();
        $result = mysqli_query($dblink, "SHOW TABLES");
		$all = 0;
        while($row = mysqli_fetch_array($result)) {
			$status = 0;
			if (!empty($tbls)) {
			    foreach($tbls AS $table){
    				$exclude = preg_match("/^\^/", $table) ? true : false;
    				if (!$exclude) {
    					if (preg_match("/^{$table}$/i", $row[0])) {
    					    $status = 1;
    					}
    					$all = 1;
    				}
    				if ($exclude && preg_match("/{$table}$/i", $row[0])) {
    				    $status = -1;
    				}
    			}
			}
			else {
				$status = 1;
			}
			if ($status >= $all) {
    			$tables[] = $row[0];
    		}
        }

		$tabs = count($tables);

		$result = mysqli_query($dblink, "SHOW TABLE STATUS");
		$tabinfo = array();
		$tab_charset = array();
		$tab_type = array();
		$tabinfo[0] = 0;
		$info = '';
		while($item = mysqli_fetch_assoc($result)){

			if(in_array($item['Name'], $tables)) {
				$res_rows = mysqli_query($dblink, "SELECT COUNT(*) as count FROM {$item['Name']}");
				$item_rows = mysqli_fetch_assoc($res_rows);
				
				$item['Rows'] = $item_rows['count'];
				$tabinfo[0] += $item['Rows'];
				$tabinfo[$item['Name']] = $item['Rows'];
				$this->size += $item['Data_length'];
				$tabsize[$item['Name']] = 1 + round(LIMIT * 1048576 / ($item['Avg_row_length'] + 1));
				if($item['Rows']) $info .= "|" . $item['Rows'];
				if (!empty($item['Collation']) && preg_match("/^([a-z0-9]+)_/i", $item['Collation'], $m)) {
					$tab_charset[$item['Name']] = $m[1];
				}
				$tab_type[$item['Name']] = isset($item['Engine']) ? $item['Engine'] : $item['Type'];
			}
		}
		$info = $tabinfo[0] . $info;

		$salt = str_shuffle("abchefghjkmnpqrstuvwxyz0123456789".sha1( random_bytes(32) ));

		$rand = "";

		for($i=0;$i < 9; $i++) {
			$rand .= $salt[random_int(0,72)];
		}

		if(!defined('AUTOMODE'))
		{

		  $name = $db . '_' . date("Y-m-d_H-i"). '_' . substr( md5(date("Y-m-d_H-i").DBHOST . DBNAME), 0, 5);

		} else {

		   $name = date("Y-m-d_H-i") . '_' . $db . '_' . md5($rand);

		}


        $fp = $this->fn_open($name, "w");
		echo tpl_l($lang['dumper_5']);
		$this->fn_write($fp, "#DLE|".VERSIONID."

");
		$this->fn_write($fp, "#SKD101|{$db}|{$tabs}|" . date("Y.m.d H:i:s") ."|{$info}

");
		$t=0;
		echo tpl_l(str_repeat("-", 60));
		$result = mysqli_query($dblink, "SET SQL_QUOTE_SHOW_CREATE = 1");

		if ($this->mysql_version > 40101 && CHARSET != 'auto') {
			mysqli_query($dblink, "SET NAMES '" . CHARSET . "'") or trigger_error ($lang['dumper_6'] . mysqli_error($dblink), E_USER_ERROR);
			$last_charset = CHARSET;
		}
		else{
			$last_charset = '';
		}
        foreach ($tables AS $table){

			if ($this->mysql_version > 40101 && $tab_charset[$table] != $last_charset && $tab_charset[$table] ) {
				if ( CHARSET == 'auto') {
					mysqli_query($dblink, "SET NAMES '" . $tab_charset[$table] . "'") or trigger_error ($lang['dumper_6'] . mysqli_error($dblink), E_USER_ERROR);
					echo tpl_l("{$lang['dumper_7']} `" . $tab_charset[$table] . "`.", C_WARNING);
					$last_charset = $tab_charset[$table];
				}
				else{
					echo tpl_l($lang['dumper_8'], C_ERROR);
					echo tpl_l($lang['dumper_9'].' `'. $table .'` -> ' . $tab_charset[$table] . ' ('.$lang['dumper_10'].' '  . CHARSET . ')', C_ERROR);
				}
			}
			echo tpl_l("{$lang['dumper_11']} `{$table}` [" . fn_int($tabinfo[$table]) . "].");

			$result = mysqli_query($dblink, "SHOW CREATE TABLE `{$table}`");
        	$tab = mysqli_fetch_array($result);
			
			$tab[1] = str_replace("utf8mb4_0900_ai_ci", "utf8mb4_general_ci", $tab[1]);
			
        	$this->fn_write($fp, "DROP TABLE IF EXISTS `{$table}`;
{$tab[1]};

");

        	if (in_array($tab_type[$table], $this->only_create)) {
				continue;
			}

            $NumericColumn = array();
            $result = mysqli_query($dblink, "SHOW COLUMNS FROM `{$table}`");
            $field = 0;
            while($col = mysqli_fetch_row($result)) {
            	$NumericColumn[$field++] = preg_match("/^(\w*int|year)/", $col[1]) ? 1 : 0;
            }
			$fields = $field;
            $from = 0;
			$limit = $tabsize[$table];
			$limit2 = round($limit / 3);
			if ($tabinfo[$table] > 0) {
			if ($tabinfo[$table] > $limit2) {
			    echo tpl_s(0, $t / $tabinfo[0]);
			}
			$i = 0;
			$this->fn_write($fp, "INSERT INTO `{$table}` VALUES");
            while(($result = mysqli_query($dblink, "SELECT * FROM `{$table}` LIMIT {$from}, {$limit}")) && ($total = mysqli_num_rows($result))){
            		while($row = mysqli_fetch_row($result)) {
                    	$i++;
    					$t++;

						for($k = 0; $k < $fields; $k++){
                    		if ($NumericColumn[$k])
                    		    $row[$k] = isset($row[$k]) ? $row[$k] : "NULL";
                    		else
                    			$row[$k] = isset($row[$k]) ? "'" . mysqli_real_escape_string($dblink, $row[$k]) . "'" : "NULL";
                    	}

    					$this->fn_write($fp, ($i == 1 ? "" : ",") . "
(" . implode(", ", $row) . ")");
    					if ($i % $limit2 == 0)
    						echo tpl_s($i / $tabinfo[$table], $t / $tabinfo[0]);
               		}
					mysqli_free_result($result);
					if ($total < $limit) {
					    break;
					}
    				$from += $limit;
            }

			$this->fn_write($fp, ";

");
    		echo tpl_s(1, $t / $tabinfo[0]);}
		}
		$this->tabs = $tabs;
		$this->records = $tabinfo[0];
		$this->comp = $this->SET['comp_method'] * 10 + $this->SET['comp_level'];
        echo tpl_s(1, 1);
        echo tpl_l(str_repeat("-", 60));
        $this->fn_close($fp);
		echo tpl_l("{$lang['dumper_12']} `{$db}` {$lang['dumper_13']}", C_RESULT);
		echo tpl_l("{$lang['dumper_14']}       " . round($this->size / 1048576, 2) . " MB", C_RESULT);
		$filesize = round(filesize(PATH . $this->filename) / 1048576, 2) . " MB";
		echo tpl_l("{$lang['dumper_15']} {$filesize}", C_RESULT);
		echo tpl_l("{$lang['dumper_16']} {$tabs}", C_RESULT);
		echo tpl_l("{$lang['dumper_17']}   " . fn_int($tabinfo[0]), C_RESULT);

		$disk = DLEFiles::getDefaultStorage();
		$config['backup_remote'] = intval($config['backup_remote']);
		if( $config['backup_remote'] > -1 )  $disk = $config['backup_remote'];

		if( $disk ) {

			echo tpl_l($lang['dumper_33'], C_RESULT);

			DLEFiles::init( $disk );

			if (!DLEFiles::$error) {

				$stream = @fopen(PATH . $this->filename, 'rb');

				if (is_resource($stream)) {

					DLEFiles::WriteStream(URL . $this->filename, $stream);

				} else {

					DLEFiles::$error = 'PHP Error: Unable to open the stream with uploaded file';
				}

				if (is_resource($stream)) {
					fclose($stream);
				}

				if (DLEFiles::$error) {
					echo tpl_l(DLEFiles::$error, C_ERROR);
				} else {
					unlink(PATH . $this->filename);
				}

			} else echo tpl_l(DLEFiles::$error, C_ERROR);

			echo tpl_l($lang['dumper_34'], C_RESULT);
		}

		if(!defined('AUTOMODE'))
		{
			echo "<script>if (document.getElementById('save')) {document.getElementById('save').style.display = ''; }</script>";
		}

	}

	function restore(){
		global $config, $lang, $dblink;

		if (!isset($_POST['file'])) $_POST['file'] = $_GET['file'];

		@set_error_handler("SXD_errorHandler", E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
		$buttons = "";
		echo tpl_page(tpl_process($lang['dumper_18']), $buttons);

		$this->SET['last_action']     = 1;
		$this->SET['last_db_restore'] = DBNAMES;
		$file = isset($_POST['file']) ? $_POST['file'] : '';

		$file = str_replace( "\", "/", $file );
		$file = str_replace( "..", "", $file );
		$file = str_replace( "/", "", $file );

		if( stripos ( $file, "php" ) !== false ) die("Hacking attempt!");

		$db = $this->SET['last_db_restore'];

		if (!$db) {
			echo tpl_l($lang['dumper_19'], C_ERROR);
		    exit;
		}

		$disk = DLEFiles::getDefaultStorage();
		$config['backup_remote'] = intval($config['backup_remote']);
		if ($config['backup_remote'] > -1)  $disk = $config['backup_remote'];

		if ( $disk ) {
			DLEFiles::init( $disk );

			if (!DLEFiles::FileExists(URL . $file)) {
				echo tpl_l($lang['dumper_21'], C_ERROR);
				exit;
			}

			$handle = DLEFiles::ReadStream(URL . $file);

			if (DLEFiles::$error) {
				echo tpl_l(DLEFiles::$error, C_ERROR);
				exit;
			}

			$stream = @fopen(PATH . $file, 'wb');

			if (!is_resource($stream)) {
				echo tpl_l($lang['dumper_35'], C_ERROR);
				exit;
			}

			if (is_resource($handle)) {

				while (!feof($handle)) {

					fwrite($stream, fread($handle, 8192));

				}

				fclose($handle);
			}

			if (is_resource($stream)) {
				fclose($stream);
			}

			if (is_resource($handle)) {
				fclose($handle);
			}

		}

		echo tpl_l("{$lang['dumper_20']} `{$db}`.");


		if(preg_match("/^(.+?)\.sql(\.(bz2|gz))?$/", $file, $matches)) {
			if (isset($matches[3]) && $matches[3] == 'bz2') {
			    $this->SET['comp_method'] = 2;
			}
			elseif (isset($matches[2]) &&$matches[3] == 'gz'){
				$this->SET['comp_method'] = 1;
			}
			else{
				$this->SET['comp_method'] = 0;
			}
			
			$this->SET['comp_level'] = 0;
			
			if (!file_exists(PATH . "/{$file}")) {
    		    echo tpl_l($lang['dumper_21'], C_ERROR);
    		    exit;
    		}

			echo tpl_l("{$lang['dumper_22']} `{$file}`.");
			$file = $matches[1];
		}
		else {
			echo tpl_l($lang['dumper_21'], C_ERROR);
		    exit;
		}

		echo tpl_l(str_repeat("-", 60));
		$fp = $this->fn_open($file, "r");
		$this->file_cache = $sql = $table = $insert = '';
        $is_skd = $is_dle = $query_len = $execute = $q =$t = $i = $aff_rows = 0;
		$limit = 300;
        $index = 4;
		$tabs = 0;
		$info = array();
		$convert=false;

		if ($this->mysql_version > 40101 && (CHARSET != 'auto' || $this->forced_charset)) { 
			mysqli_query($dblink, "SET NAMES '" . $this->restore_charset . "'") or trigger_error ($lang['dumper_6'] . mysqli_error($dblink), E_USER_ERROR);
			echo tpl_l("{$lang['dumper_7']} `" . $this->restore_charset . "`.", C_WARNING);
			$last_charset = $this->restore_charset;
		}
		else {
			$last_charset = '';
		}
		
		$last_showed = '';
		
		while(($str = $this->fn_read_str($fp)) !== false){
			if (empty($str) || preg_match("/^(#|--)/", $str)) {
				if( !$is_dle AND !empty($str) ) {
					$dle_info = explode("|", $str);
					if($dle_info[0] == "#DLE" AND $dle_info[1] == VERSIONID) $is_dle = 1; else { echo tpl_l($lang['dumper_32'], C_ERROR); exit; }

				}

				if (!$is_skd && preg_match("/^#SKD101\|/", $str)) {
				    $info = explode("|", $str);
					echo tpl_s(0, $t / $info[4]);
					$is_skd = 1;
				}
        	    continue;
        	}
			$query_len += strlen($str);

			if (!$insert && preg_match("/^(INSERT INTO `?([^` ]+)`? .*?VALUES)(.*)$/i", $str, $m)) {
				if ($table != $m[2]) {
				    $table = $m[2];
					$tabs++;
					echo tpl_l("Table `{$table}`.");
					$last_showed = $table;
					$i = 0;
					if ($is_skd)
					    echo tpl_s(100 , $t / $info[4]);
				}
        	    $insert = $m[1] . ' ';
				$sql .= $m[3];
				$index++;
				$info[$index] = isset($info[$index]) ? $info[$index] : 0;
				$limit = round($info[$index] / 20);
				$limit = $limit < 300 ? 300 : $limit;
				if ($info[$index] > $limit){

					echo tpl_s(0 / $info[$index], $t / $info[4]);
				}
        	}
			else{
        		$sql .= $str;
				if ($insert) {
				    $i++;
    				$t++;
    				if ($is_skd && $info[$index] > $limit && $t % $limit == 0){
    					echo tpl_s($i / $info[$index], $t / $info[4]);
    				}
				}
        	}

			if (!$insert && preg_match("/^CREATE TABLE (IF NOT EXISTS )?`?([^` ]+)`?/i", $str, $m) && $table != $m[2]){
				$table = $m[2];
				$insert = '';
				$tabs++;
				$is_create = true;
				$i = 0;
			}
			if ($sql) {
			    if (preg_match("/;$/", $str)) {
            		$sql = rtrim($insert . $sql, ";");
					if (empty($insert)) {
						if ($this->mysql_version < 40101) {
				    		$sql = preg_replace("/ENGINE\s?=/", "TYPE=", $sql);
						}
						elseif (preg_match("/CREATE TABLE/i", $sql)){

							if (preg_match("/(CHARACTER SET|CHARSET)[=\s]+(\w+)/i", $sql, $charset)) {
								if (!$this->forced_charset && $charset[2] != $last_charset) {
									if (CHARSET == 'auto') {

										if ($config['charset'] == "utf-8" AND $charset[2] == "cp1251" ) { $convert=true; $charset[2] = "utf8"; $this->restore_charset = "utf8"; }

										mysqli_query($dblink, "SET NAMES '" . $charset[2] . "'") or trigger_error ("{$lang['dumper_6']}{$sql}<BR>" . mysqli_error($dblink), E_USER_ERROR);
										echo tpl_l("{$lang['dumper_7']} `" . $charset[2] . "`.", C_WARNING);
										$last_charset = $charset[2];
									}
									else{
										echo tpl_l($lang['dumper_8'], C_ERROR);
										echo tpl_l($lang['dumper_9'].' `'. $table .'` -> ' . $charset[2] . ' ('.$lang['dumper_10'].' '  . $this->restore_charset . ')', C_ERROR);
									}
								}

								if ($this->forced_charset OR $convert) {
									$sql = preg_replace("/(\/\*!\d+\s)?((COLLATE)[=\s]+)\w+(\s+\*\/)?/i", '', $sql);
									$sql = preg_replace("/((CHARACTER SET|CHARSET)[=\s]+)\w+/i", "" . $this->restore_charset . $this->restore_collate, $sql);
								}
							}
							elseif(CHARSET == 'auto'){ 
								$sql .= ' DEFAULT CHARSET=' . $this->restore_charset . $this->restore_collate;
								if ($this->restore_charset != $last_charset) {
									mysqli_query($dblink, "SET NAMES '" . $this->restore_charset . "'") or trigger_error ("{$lang['dumper_6']}{$sql}<BR>" . mysqli_error($dblink), E_USER_ERROR);
									echo tpl_l("{$lang['dumper_7']} `" . $this->restore_charset . "`.", C_WARNING);
									$last_charset = $this->restore_charset;
								}
							}
						}
						if ($last_showed != $table) {echo tpl_l("{$lang['dumper_9']} `{$table}`."); $last_showed = $table;}
					}
					elseif($this->mysql_version > 40101 && empty($last_charset)) {
						mysqli_query($dblink, "SET $this->restore_charset '" . $this->restore_charset . "'") or trigger_error ("{$lang['dumper_6']}{$sql}<BR>" . mysqli_error($dblink), E_USER_ERROR);
						echo tpl_l("{$lang['dumper_7']} `" . $this->restore_charset . "`.", C_WARNING);
						$last_charset = $this->restore_charset;
					}
            		$insert = '';
            	    $execute = 1;
            	}
            	if ($query_len >= 65536 && preg_match("/,$/", $str)) {
            		$sql = rtrim($insert . $sql, ",");
            	    $execute = 1;
            	}
    			if ($execute) {
            		$q++;

					if ($convert) {

						if( function_exists( 'mb_convert_encoding' ) ) {
					
							$sql = mb_convert_encoding( $sql, 'UTF-8', 'WINDOWS-1251' );
					
						} elseif( function_exists( 'iconv' ) ) {
						
							$sql = iconv( 'WINDOWS-1251', 'UTF-8', $sql );
						
						}

					}


            		mysqli_query($dblink, $sql) or trigger_error ($lang['dumper_23'] . mysqli_error($dblink), E_USER_ERROR);
					if (preg_match("/^insert/i", $sql)) {
            		    $aff_rows += mysqli_affected_rows($dblink);
            		}
            		$sql = '';
            		$query_len = 0;
            		$execute = 0;
            	}
			}
		}

		echo tpl_s(1 , 1);
		echo tpl_l(str_repeat("-", 60));
		echo tpl_l($lang['dumper_24'], C_RESULT);
		if (isset($info[3])) echo tpl_l("{$lang['dumper_25']} {$info[3]}", C_RESULT);
		echo tpl_l("{$lang['dumper_26']} {$q}", C_RESULT);
		echo tpl_l("{$lang['dumper_27']} {$tabs}", C_RESULT);
		echo tpl_l("{$lang['dumper_28']} {$aff_rows}", C_RESULT);

		$this->tabs = $tabs;
		$this->records = $aff_rows;
		$this->size = filesize(PATH . $this->filename);
		$this->comp = $this->SET['comp_method'] * 10 + $this->SET['comp_level'];

		$this->fn_close($fp);

		if ( $disk ) {
			unlink(PATH . $this->filename);
		}

		clear_all_caches();
	}

	function main(){
		die("Hacking attempt!");
	}

	function file_select(){
		$files = array('' => ' ');
		if (is_dir(PATH) && $handle = opendir(PATH)) {
            while (false !== ($file = readdir($handle))) {
                if (preg_match("/^.+?\.sql(\.(gz|bz2))?$/", $file)) {
                    $files[$file] = $file;
                }
            }
            closedir($handle);
        }
        ksort($files);
		return $files;
	}

	function fn_open($name, $mode) {
		global $lang;

		if ($this->SET['comp_method'] == 2) {
			$this->filename = "{$name}.sql.bz2";
			$fp = bzopen(PATH . $this->filename, "{$mode}");
		}
		elseif ($this->SET['comp_method'] == 1) {
			$this->filename = "{$name}.sql.gz";
			$fp = gzopen(PATH . $this->filename, "{$mode}b{$this->SET['comp_level']}");
		}
		else{
			$this->filename = "{$name}.sql";
			$fp = fopen(PATH . $this->filename, "{$mode}b");
		}
		if (is_resource($fp)) {

			return $fp;

		} else {

			echo tpl_l($lang['dumper_35'], C_ERROR);
			exit;

		}
	}

	function fn_write($fp, $str){
		if ($this->SET['comp_method'] == 2) {
		    bzwrite($fp, $str);
		}
		elseif ($this->SET['comp_method'] == 1) {
		    gzwrite($fp, $str);
		}
		else{
			fwrite($fp, $str);
		}
	}

	function fn_read($fp){
		if ($this->SET['comp_method'] == 2) {
		    return bzread($fp, 4096);
		}
		elseif ($this->SET['comp_method'] == 1) {
		    return gzread($fp, 4096);
		}
		else{
			return fread($fp, 4096);
		}
	}

	function fn_read_str($fp){
		$string = '';
		$this->file_cache = ltrim($this->file_cache);
		$pos = strpos($this->file_cache, "
", 0);
		if ($pos < 1) {
			while (!$string && ($str = $this->fn_read($fp))){
    			$pos = strpos($str, "
", 0);
    			if ($pos === false) {
    			    $this->file_cache .= $str;
    			}
    			else{
    				$string = $this->file_cache . substr($str, 0, $pos);
    				$this->file_cache = substr($str, $pos + 1);
    			}
    		}
			if (!$str) {
			    if ($this->file_cache) {
					$string = $this->file_cache;
					$this->file_cache = '';
				    return trim($string);
				}
			    return false;
			}
		}
		else {
  			$string = substr($this->file_cache, 0, $pos);
  			$this->file_cache = substr($this->file_cache, $pos + 1);
		}
		return trim($string);
	}

	function fn_close($fp){
		if ($this->SET['comp_method'] == 2) {
		    bzclose($fp);
		}
		elseif ($this->SET['comp_method'] == 1) {
		    gzclose($fp);
		}
		else{
			fclose($fp);
		}
	}

	function fn_select($items, $selected){
		$select = '';
		foreach($items AS $key => $value){
			$select .= $key == $selected ? "<OPTION VALUE='{$key}' SELECTED>{$value}" : "<OPTION VALUE='{$key}'>{$value}";
		}
		return $select;
	}

	function fn_save(){
		return;
	}

}

function fn_int($num){
	return number_format($num, 0, ',', ' ');
}

function tpl_page($content = '', $buttons = ''){
	global $config, $lang;

	if(defined('AUTOMODE'))
	{
	
	  return;
	
	}

return <<<HTML
<!doctype html>
<html lang="{$lang['language_code']}" dir="{$lang['direction']}">
<head>
<meta charset={$config['charset']}">
<style type="text/css">
<!--
body{
	overflow: auto;
}
form {
	margin:0px;
	padding: 0px;
}

table{
	border:0px;
	border-collapse:collapse;
}

table td{
	padding:0px;
	font-size: 11px;
	font-family: tahoma;
}

input, select, div {
	font: 11px tahoma, verdana, arial;
}
input.text, select {
	width: 100%;
}
fieldset {
	margin-bottom: 10px;
}
.progress-bar {
    float:left;
    width:0%;
    font-size:12px;
    line-height:20px;
    color:white;
    text-align:center;
    background-color:#428bca;
    -webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);
    box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);
    -webkit-transition:width 0.6s ease;
    transition:width 0.6s ease;
    -webkit-border-radius:8px;
    -moz-border-radius:8px;
    -ms-border-radius:8px;
    -o-border-radius:8px;
    border-radius:8px;
    -webkit-box-shadow:none;
    box-shadow:none;
    height:8px;
}
-->
</style>
</head>
<body>

<table width="100%">
    <tr>
        <td>
<TD VALIGN=TOP STYLE="padding: 8px 8px;">
{$content}
<TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=2>
<TR>
<TD STYLE='color: #CECECE' id='timer'></TD>
<TD ALIGN=RIGHT>{$buttons}</TD>
</TR>
</TABLE></TD>
</td>
    </tr>
</table>



</body>
</HTML>
HTML;
}

function tpl_process($title){
	global $lang;

	if(defined('AUTOMODE'))
	{
	
	  return;
	
	}
	
ob_ignore();

return <<<HTML
<TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=2>
<TR><TD COLSPAN=2 style="padding:2px;"><DIV ID=logarea STYLE="width: 100%; height: 140px; border: 1px solid #7F9DB9; padding: 3px; overflow: auto;"></DIV></TD></TR>
<TR><TD WIDTH=31% style="padding:2px; width:100px;">{$lang['dumper_29']}</TD><TD><TABLE WIDTH=100% style="border: 1px solid #7F9DB9;" CELLPADDING=0 CELLSPACING=0>
<TR><TD BGCOLOR=#FFFFFF><TABLE WIDTH=1 BORDER=0 CELLPADDING=0 CELLSPACING=0 BGCOLOR=#5555CC ID=st_tab
STYLE="background-image:-webkit-gradient(linear, left 0%, left 100%, from(#9bcff5), to(#6db9f0));background-image:-webkit-linear-gradient(top, #9bcff5, 0%, #6db9f0, 100%);background-image:-moz-linear-gradient(top, #9bcff5 0%, #6db9f0 100%);background-image:linear-gradient(to bottom, #9bcff5 0%, #6db9f0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF9BCFF5', endColorstr='#FF6DB9F0', GradientType=0);"><TR><TD HEIGHT=12></TD></TR></TABLE></TD></TR></TABLE></TD></TR>
<TR><TD style="padding:2px; width:100px;">{$lang['dumper_30']}</TD><TD><TABLE WIDTH=100% style="border: 1px solid #7F9DB9;" CELLSPACING=0 CELLPADDING=0>
<TR><TD BGCOLOR=#FFFFFF><TABLE WIDTH=1 BORDER=0 CELLPADDING=0 CELLSPACING=0 BGCOLOR=#00AA00 ID=so_tab
STYLE="background-image:-webkit-gradient(linear, left 0%, left 100%, from(#9bcff5), to(#6db9f0));background-image:-webkit-linear-gradient(top, #9bcff5, 0%, #6db9f0, 100%);background-image:-moz-linear-gradient(top, #9bcff5 0%, #6db9f0 100%);background-image:linear-gradient(to bottom, #9bcff5 0%, #6db9f0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF9BCFF5', endColorstr='#FF6DB9F0', GradientType=0);"><TR><TD HEIGHT=12></TD></TR></TABLE></TD>
</TR></TABLE></TD></TR></TABLE>
<SCRIPT>
var WidthLocked = false;
function s(st, so){
	document.getElementById('st_tab').width = st ? st + '%' : '1';
	document.getElementById('so_tab').width = so ? so + '%' : '1';
}
function l(str, color){
	switch(color){
		case 2: color = 'navy'; break;
		case 3: color = 'red'; break;
		case 4: color = 'maroon'; break;
		default: color = '';
	}
	with(document.getElementById('logarea')){
		if (!WidthLocked){
			style.width = clientWidth;
			WidthLocked = true;
		}
		if(color){
		   str = '<span style="color:' + color + ';">' + str + '</span>';
		}

		innerHTML += innerHTML ? "<BR>
" + str : str;
		scrollTop += 14;
	}
}
</SCRIPT>
HTML;
}

function tpl_l($str, $color = C_DEFAULT){

if(defined('AUTOMODE'))
{

  return;

}

ob_ignore();

$str = preg_replace("/\s{2}/", " &nbsp;", $str);
return <<<HTML
<SCRIPT>l('{$str}', $color);</SCRIPT>

HTML;
}

function tpl_s($st, $so){

if(defined('AUTOMODE'))
{

  return;

}

ob_ignore();

$st = round($st * 100);
$st = $st > 100 ? 100 : $st;
$so = round($so * 100);
$so = $so > 100 ? 100 : $so;
return <<<HTML
<SCRIPT>s({$st},{$so});</SCRIPT>

HTML;
}

function tpl_backup_index(){

if(defined('AUTOMODE'))
{

  return;

}

return <<<HTML
<CENTER>
<H1>access denied</H1>
</CENTER>

HTML;
}

function tpl_error($error){

if(defined('AUTOMODE'))
{

  return;

}

return <<<HTML
<TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=2>
<TR>
<TD ALIGN=center>{$error}</TD>
</TR>
</TABLE>
HTML;
}

function SXD_errorHandler($errno, $errmsg, $filename, $linenum) {
	global $lang;
	if ($errno == 2048) return true;
	if (strpos ( $errmsg, "date():" ) !== false) return true;
    $dt = date("Y.m.d H:i:s");
    $errmsg = addslashes($errmsg);

	echo tpl_l("{$dt}<BR><B>{$lang['dumper_31']}</B>", C_ERROR);
	echo tpl_l("{$errmsg} ({$errno}) at the file {$filename} ({$linenum})", C_ERROR);
	die();
}

function ob_ignore() {

	$data = str_repeat(' ', 1000);

    $ob = array();
    while (ob_get_level()) {
        array_unshift($ob, ob_get_contents());
        ob_end_clean();
    }
    
    echo $data;
    
    foreach ($ob as $ob_data) {
        ob_start();
        echo $ob_data;
    }
	
    return count($ob);
}
?>

Did this file decode correctly?

Original Code

$_F=__FILE__;$_X='PzUgPy93L2h6KmhbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW2hXbzkvNlBXYU1tLzZMVy1XYjlXeTN1ST1wMUk8aC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0taFd3NDQvczp6enM5LzZQU3Q2NHpoLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1oVz5GLzlMN2N3NFcoUSlXVnFxCi1WcVYuaFtbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbaFcxdzdzV1FGajZXN3NXL0xGNDZRNDZqV2I5V1FGLzlMN2N3NGhbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW2hXezdYNjpXak1tLzZMUy93L2gtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLWhXQ3M2OldheVdibFFVTWJoW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1toKnpoaGg3dihXIWo2djd0NmooVydhcDFwWjN7XV11ZjN1XSdXKVdJPFchajZ2N3Q2aihXJ1pJZmZdYV8zdSdXKVcpV1loCXc2bGo2TChXIn0xMWR6aVNpVwpxLld7RkxiN2pqNnQiVyk7aAl3NmxqNkxXKFcnWkZRbDQ3RnQ6V1NTelNTeidXKTtoCWo3NihXIn1sUVU3dGNXbDQ0Nm0vNCEiVyk7aHJoaHc2bGo2TCgiPkZ0NDZ0NC00OS82Olc0NlA0enc0bVg7V1F3bExzNjRbTTR2LWsiKTtodzZsajZMKCdELXBRUTZYLXlNdnY2TDd0YzpXdEYnKTtoaDd2KCRtNm1iNkxfN2owJ01zNkxfY0xGTS8nTlchW2kpWVdtc2MoIjZMTEZMIixXJFhsdGMwJ2xqanQ2ZXNfajZ0NzZqJ04sVyRYbHRjMCdqYl9qNnQ3NmonTik7V3JoaDd2KFchajZ2N3Q2aigncEMxSU9JYV0nKVcpV1loCTd2KFchN3NzNjQoJF88XUFDXW8xMCdNczZMX3dsc3cnTilXSTxXISRfPF1BQ11vMTAnTXM2TF93bHN3J05XSTxXJF88XUFDXW8xMCdNczZMX3dsc3cnTlchW1ckalg2X1hGYzd0X3dsc3dXKVdZaAkJNlF3RlckWGx0YzAnczZzc182TExGTCdOO1dqNzYoKTtoCXJocmhoQDd0N19zNjQoJ21sUF82UDZRTTQ3RnRfNDdtNicsV3EpO2hAN3Q3X3M2NCgnbWxQXzZQNlFNNDdGdF80N202JyxXcSk7aEA3dDdfczY0KCc3bS9YN1E3NF92WE1zdycsVzRMTTYpO2hAN3Q3X3M2NCgnRk00L000X2JNdnY2TDd0YycsV3EpO2hoQHM2NF80N202X1g3bTc0KHEpO2hoRmJfNnRqX3ZYTXN3KCk7aEZiXzdtL1g3UTc0X3ZYTXN3KCk7aEZiXzdjdEZMNigpO2hoJGpiLTVHTTZMOShXIjN1b108MVczdTFJVyJXU1dDb108ZDxdezNEV1NXIl9sam03dF9YRmNzVyh0bG02LFdqbDQ2LFc3LyxXbFE0N0Z0LFc2UDRMbHMpV1JsWE02c1coJyJTJGpiLTVzbHY2c0dYKCRtNm1iNkxfN2owJ3RsbTYnTilTIicsVydZJF8xM09dcicsVydZJF8zZHInLFcnVgonLFcnJykiVyk7aGhqNnY3dDYoJ2RwMX0nLFc8SUkxX2EzPFMnemJsUVVNL3onKTtoajZ2N3Q2KCdDPFonLFdXJ2JsUVVNL3onKTtoajZ2N3Q2KCdaM08zMScsV2kpO2hqNnY3dDYoJ2F5dXBPXW8nLFdheXVwT10pO2hqNnY3dDYoJ2F5dUNvXTwnLFdheUNvXTwpO2hqNnY3dDYoJ2F5ZDxdezNEJyxkPF17M0QpO2hoN3YoIWo2djd0NmooJz1dPG8zSXUzYScpKVdZaAlqNnY3dDYoVyc9XTxvM0l1M2EnLFckUUZ0djdjMCdSNkxzN0Z0XzdqJ05XKTtocmhoajZ2N3Q2KCc+fXA8b10xJyxXJ2xNNEYnKTtoaGo2djd0NignPF1vMUk8XV8+fXA8b10xJyxXJ000dmsnKTtoaGo2djd0Nignbz4nLFdxKTtoaGo2djd0NignSXVaRV8+PF1wMV0nLFcnTzxmX085M29wTyxPXTxmXSx9XXBkLE9dT0k8RScpO2hoJDQ3bTZMV1tXbExMbDlfc01tKDZQL1hGajYoJ1cnLFdtN1FMRjQ3bTYoKSkpO2hoJGxNNHdXW1dxO2gkNkxMRkxXW1cnJztoJGpiX1hGUWw0N0Z0V1tXNlAvWEZqNigiOiIsV2F5fUlvMSk7aGg3dlcoN3NzNjQoJGpiX1hGUWw0N0Z0MGlOKSlXWWhoCSRqYlg3dFVXW1dAbTlzR1g3X1FGdHQ2UTQoJGpiX1hGUWw0N0Z0MHFOLFdheXVDb108LFdheWRwb28sV2F5dXBPXSxXJGpiX1hGUWw0N0Z0MGlOKTtoaHJXNlhzNldZaGgJJGpiWDd0VVdbV0BtOXNHWDdfUUZ0dDZRNCgkamJfWEZRbDQ3RnQwcU4sV2F5dUNvXTwsV2F5ZHBvbyxXYXl1cE9dKTtoaHJoaDd2VyhXJGpiWDd0VVcpWWgJCSRsTTR3V1tXaTtocgk2WHM2WWgJCSQ2TExGTFdbVycjJ1dTV205c0dYN19RRnR0NlE0XzZMTEZMKCk7aHJoaCRvQldbV3Q2ZVdqTW0vNkwoKTtoajZ2N3Q2KCc+X2Fde3BDWjEnLFdpKTtoajZ2N3Q2KCc+Xzxdb0NaMScsV1YpO2hqNnY3dDYoJz5fXTw8STwnLFcuKTtoajZ2N3Q2KCc+XzJwPHUzdWYnLFcKKTtoaCRsUTQ3RnRXW1c3c3M2NCgkXzxdQUNdbzEwJ2xRNDdGdCdOKVc/VyRfPF1BQ11vMTAnbFE0N0Z0J05XOlcnJztoaHNlNzRRdygkbFE0N0Z0KVloCVFsczZXJ2JsUVVNLyc6aAkJJG9CLTVibFFVTS8oKTtoCQliTDZsVTtoCVFsczZXJ0w2czRGTDYnOmgJCSRvQi01TDZzNEZMNigpO2gJCWJMNmxVO2gJajZ2bE1YNDpoCQkkb0ItNW1sN3QoKTtocmhobTlzR1g3X1FYRnM2KFckamJYN3RVVyk7aGgJCTd2KCFqNnY3dDZqKCdwQzFJT0lhXScpKWgJCVloCQkJNlF3RlciIG8+PDNkMTVqRlFNbTZ0NFNjNjRdWDZtNnQ0eTkzaignNDdtNkwnKVM3dHQ2TH0xT1pXW1cnIldTV0xGTXRqKGxMTGw5X3NNbSg2UC9YRmo2KCdXJyxXbTdRTEY0N202KCkpKVctVyQ0N202TCxXCilXU1ciV3M2UVMnIHpvPjwzZDE1IjtoCQlyaGhRWGxzc1dqTW0vNkxXWWhoCS9NYlg3UVckb10xV1tXbExMbDkoKTtoCS9NYlg3UVckNGxic1dbV3E7aAkvTWJYN1FXJEw2UUZManNXW1dxO2gJL01iWDdRVyRzN2c2V1tXcTtoCS9NYlg3UVckUUZtL1dbV3E7aGgJL01iWDdRVyRGdFg5X1FMNmw0NldbV2xMTGw5KCk7aAkvTWJYN1FXJHZGTFE2al9Rd2xMczY0V1tXdmxYczY7aAkvTWJYN1FXJEw2czRGTDZfUXdsTHM2NFdbVycnO2gJL01iWDdRVyRMNnM0Rkw2X1FGWFhsNDZXW1cnJztoCS9NYlg3UVckbTlzR1hfUjZMczdGdFdbVycnO2gJL01iWDdRVyR2N1g2dGxtNldbVycnO2gJL01iWDdRVyR2N1g2X1FsUXc2V1tXJyc7aGgJdk10UTQ3RnRXX19RRnRzNExNUTQoKVdZaAkJY1hGYmxYVyRqYlg3dFU7aGgJCSQ0dzdzLTVvXTEwJ1hsczRfbFE0N0Z0J05XW1dxO2gJCSQ0dzdzLTVvXTEwJ1hsczRfamJfYmxRVU0vJ05XW1cnJztoCQkkNHc3cy01b10xMCc0bGJYNnMnTldbVycnO2gJCSQ0dzdzLTVvXTEwJ1FGbS9fbTY0d0ZqJ05XW1dWO2gJCSQ0dzdzLTVvXTEwJ1FGbS9fWDZSNlgnTldXW1dUO2gJCSQ0dzdzLTVvXTEwJ1hsczRfamJfTDZzNEZMNidOV1tXJyc7aAkJJDR3N3MtNTRsYnNXW1dxO2gJCSQ0dzdzLTVMNlFGTGpzV1tXcTtoCQkkNHc3cy01czdnNldbV3E7aAkJJDR3N3MtNVFGbS9XW1dxO2hoCQl6elfQktC10YDRgdC40Y9XTzlvQVpX0LLQuNC00LBXCnFpcWloCQkvTDZjX21sNFF3KCJ6XihcaispXFMoXGorKVxTKFxqKyl6IixXbTlzR1g3X2M2NF9zNkxSNkxfN3R2RigkamJYN3RVKSxXJG0pO2gJCSQ0dzdzLTVtOXNHWF9SNkxzN0Z0V1tXcy9MN3Q0digiJWolcVZqJXFWaiIsVyRtMGlOLFckbTBWTixXJG0wLk4pO2hoCQkkNHc3cy01RnRYOV9RTDZsNDZXW1c2UC9YRmo2KCcsJyxXSXVaRV8+PF1wMV0pO2gJCSQ0dzdzLTV2RkxRNmpfUXdsTHM2NFdXW1d2bFhzNjtoCQkkNHc3cy01TDZzNEZMNl9Rd2xMczY0V1tXJDR3N3MtNUw2czRGTDZfUUZYWGw0NldbVycnO2hoCQk3dlcoL0w2Y19tbDRRdygiel4odkZMUTZqLTUpPygoMGwtZ3EtS04rKShcX1xlKyk/KSR6IixXPF1vMUk8XV8+fXA8b10xLFckbWw0UXc2cykpV1loCQkJJDR3N3MtNXZGTFE2al9Rd2xMczY0V1dbVyRtbDRRdzZzMGlOV1tbVyd2RkxRNmotNSc7aAkJCSQ0dzdzLTVMNnM0Rkw2X1F3bExzNjRXW1ckbWw0UXc2czAuTjtoCQkJJDR3N3MtNUw2czRGTDZfUUZYWGw0NldbVyE2bS80OSgkbWw0UXc2czAKTilXP1cnVz5JWlpwMV1XJ1dTVyRtbDRRdzZzMFZOVzpXJyc7aAkJcmgJcmhoCXZNdFE0N0Z0V2JsUVVNLygpV1loCQljWEZibFhXJFhsdGMsVyRRRnR2N2MsVyRqYlg3dFU7aAkJN3ZXKCE3c3M2NCgkX2RJbzEwJ1FGbS9fbTY0d0ZqJ04pKVckX2RJbzEwJ1FGbS9fbTY0d0ZqJ05XW1ckX2ZdMTAnUUZtL19tNjR3RmonTjtoaAkJQHM2NF82TExGTF93bHRqWDZMKCJvRGFfNkxMRkx9bHRqWDZMIixXXV9wWlpXXlddXzJwPHUzdWZXXlddX2FdZDxdPnAxXWFXXlddX3VJMTM+XSk7aAkJJGJNNDRGdHNXW1ciIHMvbHRXN2pbJ3NsUjYnV28xRVpdWydqN3MvWGw5Old0RnQ2Oyc1WSRYbHRjMCdqTW0vNkxfaSdOciB6cy9sdDUiO2gJCTZRd0ZXNC9YXy9sYzYoNC9YXy9MRlE2c3MoJFhsdGMwJ2pNbS82TF9WJ04pLFckYk00NEZ0cyk7aGgJCSQ0dzdzLTVvXTEwJ1hsczRfbFE0N0Z0J05XV1dXV1tXcTtoCQkkNHc3cy01b10xMCdYbHM0X2piX2JsUVVNLydOV1dbV2F5dXBPXW87aAkJJDR3N3MtNW9dMTAnNGxiWDZzXzZQUVhNajYnTldXW1dxO2gJCSQ0dzdzLTVvXTEwJzRsYlg2cydOV1dXV1dXV1dXV1tXYXlkPF17M0RTJyonO2gJCSQ0dzdzLTVvXTEwJ1FGbS9fbTY0d0ZqJ05XV1dXV1tXN3NzNjQoJF9kSW8xMCdRRm0vX202NHdGaidOKVc/Vzd0NFJsWCgkX2RJbzEwJ1FGbS9fbTY0d0ZqJ04pVzpXcTtoCQkkNHc3cy01b10xMCdRRm0vX1g2UjZYJ05XV1dXV1dbVzg7aGgJCSQ0dzdzLTVvXTEwJzRsYlg2cydOV1dXV1dXV1dXV1tXNlAvWEZqNigiLCIsVyQ0dzdzLTVvXTEwJzRsYlg2cydOKTtoaAkJV1dXV3ZGTDZsUXcoJDR3N3MtNW9dMTAnNGxiWDZzJ05XcG9XJDRsYlg2KVloV1dXVwkJCSQ0bGJYNldbVy9MNmNfTDYvWGxRNigiejBeXGUqP15OeiIsVyIiLFckNGxiWDYpO2gJCQkJJC9sNDQ2THRXW1dsTExsOShXInpcP3oiLFcielwqeiIpO2gJCQkJJEw2L1hsUTZXW1dsTExsOShXIlMiLFciUyo/Iik7aAkJCQkkNGJYczBOV1tXL0w2Y19MNi9YbFE2KCQvbDQ0Nkx0LFckTDYvWGxRNixXJDRsYlg2KTtoV1dXVwkJcmhoCQk3dlcoJDR3N3MtNW9dMTAnUUZtL19YNlI2WCdOV1tbV3EpV1loCQlXV1dXJDR3N3MtNW9dMTAnUUZtL19tNjR3RmonTldbV3E7aAkJcmgJCSRqYldbVyQ0dzdzLTVvXTEwJ1hsczRfamJfYmxRVU0vJ047aGgJCTd2VyghJGpiKVdZaAkJCTZRd0ZXNC9YX1goJFhsdGMwJ2pNbS82TF8uJ04sVz5fXTw8STwpO2gJCVdXV1c2UDc0O2gJCXJoCQk2UXdGVzQvWF9YKCJZJFhsdGMwJ2pNbS82TF9WcSdOcldgWSRqYnJgUyIpO2hoCQkkNGxiWDZzV1tXbExMbDkoKTtoV1dXV1dXV1ckTDZzTVg0V1tXbTlzR1g3X0dNNkw5KCRqYlg3dFUsVyJvfUkyVzFweVpdbyIpO2gJCSRsWFhXW1dxO2hXV1dXV1dXV2V3N1g2KCRMRmVXW1dtOXNHWDdfdjY0UXdfbExMbDkoJEw2c01YNCkpV1loCQkJJHM0bDRNc1dbV3E7aAkJCTd2VyghNm0vNDkoJDRiWHMpKVdZaAkJCVdXV1d2Rkw2bFF3KCQ0YlhzV3BvVyQ0bGJYNilZaFdXV1cJCQkJJDZQUVhNajZXW1cvTDZjX21sNFF3KCJ6XlxeeiIsVyQ0bGJYNilXP1c0TE02VzpXdmxYczY7aFdXV1cJCQkJN3ZXKCEkNlBRWE1qNilXWWhXV1dXCQkJCQk3dlcoL0w2Y19tbDRRdygiel5ZJDRsYlg2ciR6NyIsVyRMRmUwcU4pKVdZaFdXV1cJCQkJCVdXV1ckczRsNE1zV1tXaTtoV1dXVwkJCQkJcmhXV1dXCQkJCQkkbFhYV1tXaTtoV1dXVwkJCQlyaFdXV1cJCQkJN3ZXKCQ2UFFYTWo2VyYmVy9MNmNfbWw0UXcoInpZJDRsYlg2ciR6NyIsVyRMRmUwcU4pKVdZaFdXV1cJCQkJV1dXVyRzNGw0TXNXW1ctaTtoV1dXVwkJCQlyaFdXV1cJCQlyaAkJCXJoCQkJNlhzNldZaAkJCQkkczRsNE1zV1tXaTtoCQkJcmgJCQk3dlcoJHM0bDRNc1c1W1ckbFhYKVdZaFdXV1cJCQkkNGxiWDZzME5XW1ckTEZlMHFOO2hXV1dXCQlyaFdXV1dXV1dXcmhoCQkkNGxic1dbV1FGTXQ0KCQ0bGJYNnMpO2hoCQkkTDZzTVg0V1tXbTlzR1g3X0dNNkw5KCRqYlg3dFUsVyJvfUkyVzFweVpdV28xcDFDbyIpO2gJCSQ0bGI3dHZGV1tXbExMbDkoKTtoCQkkNGxiX1F3bExzNjRXW1dsTExsOSgpO2gJCSQ0bGJfNDkvNldbV2xMTGw5KCk7aAkJJDRsYjd0dkYwcU5XW1dxO2gJCSQ3dHZGV1tXJyc7aAkJZXc3WDYoJDc0Nm1XW1dtOXNHWDdfdjY0UXdfbHNzRlEoJEw2c01YNCkpWWhoCQkJN3YoN3RfbExMbDkoJDc0Nm0wJ3VsbTYnTixXJDRsYlg2cykpV1loCQkJCSRMNnNfTEZlc1dbV205c0dYN19HTTZMOSgkamJYN3RVLFcib11aXT4xVz5JQ3UxKCopV2xzV1FGTXQ0V3s8SU9XWSQ3NDZtMCd1bG02J05yIik7aAkJCQkkNzQ2bV9MRmVzV1tXbTlzR1g3X3Y2NFF3X2xzc0ZRKCRMNnNfTEZlcyk7aAkJCQloCQkJCSQ3NDZtMCc8RmVzJ05XW1ckNzQ2bV9MRmVzMCdRRk10NCdOO2gJCQkJJDRsYjd0dkYwcU5XK1tXJDc0Nm0wJzxGZXMnTjtoCQkJCSQ0bGI3dHZGMCQ3NDZtMCd1bG02J05OV1tXJDc0Nm0wJzxGZXMnTjtoCQkJCSQ0dzdzLTVzN2c2VytbVyQ3NDZtMCdhbDRsX1g2dGM0dydOO2gJCQkJJDRsYnM3ZzYwJDc0Nm0wJ3VsbTYnTk5XW1dpVytXTEZNdGooWjNPMzFXKldpcQprOFR4V3pXKCQ3NDZtMCdwUmNfTEZlX1g2dGM0dydOVytXaSkpO2gJCQkJN3YoJDc0Nm0wJzxGZXMnTilXJDd0dkZXU1tXInwiV1NXJDc0Nm0wJzxGZXMnTjtoCQkJCTd2VyghNm0vNDkoJDc0Nm0wJz5GWFhsNDdGdCdOKVcmJlcvTDZjX21sNFF3KCJ6XigwbC1ncS1LTispX3o3IixXJDc0Nm0wJz5GWFhsNDdGdCdOLFckbSkpV1loCQkJCQkkNGxiX1F3bExzNjQwJDc0Nm0wJ3VsbTYnTk5XW1ckbTBpTjtoCQkJCXJoCQkJCSQ0bGJfNDkvNjAkNzQ2bTAndWxtNidOTldbVzdzczY0KCQ3NDZtMCdddGM3dDYnTilXP1ckNzQ2bTAnXXRjN3Q2J05XOlckNzQ2bTAnMTkvNidOO2gJCQlyaAkJcmgJCSQ3dHZGV1tXJDRsYjd0dkYwcU5XU1ckN3R2RjtoaAkJJHNsWDRXW1dzNExfc3dNdnZYNigibGJRdzZ2Y3dKVW10L0dMczRNUmVQOWdxaVYuCjh4VGtLIlNzd2xpKFdMbHRqRm1fYjk0NnMoLlYpVykpO2hoCQkkTGx0aldbVyIiO2hoCQl2RkwoJDdbcTskN1cgV0s7VyQ3KyspV1loCQkJJExsdGpXU1tXJHNsWDQwTGx0akZtXzd0NChxLFRWKU47aAkJcmhoCQk3dighajZ2N3Q2aigncEMxSU9JYV0nKSloCQlZaGgJCVdXJHRsbTZXW1ckamJXU1cnXydXU1dqbDQ2KCJFLW0tal99LTciKVNXJ18nV1NXc01iczRMKFdtajgoamw0NigiRS1tLWpffS03IilTYXl9SW8xV1NXYXl1cE9dKSxXcSxXOCk7aGgJCXJXNlhzNldZaGgJCVdXVyR0bG02V1tXamw0NigiRS1tLWpffS03IilXU1cnXydXU1ckamJXU1cnXydXU1dtajgoJExsdGopO2hoCQlyaGhoV1dXV1dXV1ckdi9XW1ckNHc3cy01dnRfRi82dCgkdGxtNixXImUiKTtoCQk2UXdGVzQvWF9YKCRYbHRjMCdqTW0vNkxfOCdOKTtoCQkkNHc3cy01dnRfZUw3NDYoJHYvLFciI2FaXXwiUz1dPG8zSXUzYVMiXHRcdCIpO2gJCSQ0dzdzLTV2dF9lTDc0Nigkdi8sVyIjb0JhaXFpfFkkamJyfFkkNGxic3J8IldTV2psNDYoIkVTbVNqV306NzpzIilXUyJ8WSQ3dHZGclx0XHQiKTtoCQkkNFtxO2gJCTZRd0ZXNC9YX1goczRMX0w2LzZsNCgiLSIsV3hxKSk7aAkJJEw2c01YNFdbV205c0dYN19HTTZMOSgkamJYN3RVLFcib10xV29BWl9BQ0kxXV9vfUkyXz48XXAxXVdbV2kiKTtoaAkJN3ZXKCQ0dzdzLTVtOXNHWF9SNkxzN0Z0VzVXCnFpcWlXJiZXPn1wPG9dMVchW1cnbE00RicpV1loCQkJbTlzR1g3X0dNNkw5KCRqYlg3dFUsVyJvXTFXdXBPXW9XJyJXU1c+fXA8b10xV1NXIiciKVdGTFc0TDdjYzZMXzZMTEZMVygkWGx0YzAnak1tLzZMX3gnTldTV205c0dYN182TExGTCgkamJYN3RVKSxXXV9Db108X108PEk8KTtoCQkJJFhsczRfUXdsTHM2NFdbVz59cDxvXTE7aAkJcmgJCTZYczZZaAkJCSRYbHM0X1F3bExzNjRXW1cnJztoCQlyaFdXV1dXV1dXdkZMNmxRd1coJDRsYlg2c1dwb1ckNGxiWDYpWWhoCQkJN3ZXKCQ0dzdzLTVtOXNHWF9SNkxzN0Z0VzVXCnFpcWlXJiZXJDRsYl9Rd2xMczY0MCQ0bGJYNk5XIVtXJFhsczRfUXdsTHM2NFcmJlckNGxiX1F3bExzNjQwJDRsYlg2TlcpV1loCQkJCTd2VyhXPn1wPG9dMVdbW1cnbE00RicpV1loCQkJCQltOXNHWDdfR002TDkoJGpiWDd0VSxXIm9dMVd1cE9db1cnIldTVyQ0bGJfUXdsTHM2NDAkNGxiWDZOV1NXIiciKVdGTFc0TDdjYzZMXzZMTEZMVygkWGx0YzAnak1tLzZMX3gnTldTV205c0dYN182TExGTCgkamJYN3RVKSxXXV9Db108X108PEk8KTtoCQkJCQk2UXdGVzQvWF9YKCJZJFhsdGMwJ2pNbS82TF9UJ05yV2AiV1NXJDRsYl9Rd2xMczY0MCQ0bGJYNk5XU1ciYFMiLFc+XzJwPHUzdWYpO2gJCQkJCSRYbHM0X1F3bExzNjRXW1ckNGxiX1F3bExzNjQwJDRsYlg2TjtoCQkJCXJoCQkJCTZYczZZaAkJCQkJNlF3Rlc0L1hfWCgkWGx0YzAnak1tLzZMX2snTixXPl9dPDxJPCk7aAkJCQkJNlF3Rlc0L1hfWCgkWGx0YzAnak1tLzZMX0snTlMnV2AnU1ckNGxiWDZXUydgVy01VydXU1ckNGxiX1F3bExzNjQwJDRsYlg2TldTVydXKCdTJFhsdGMwJ2pNbS82TF9pcSdOUydXJ1dXU1c+fXA8b10xV1NXJyknLFc+X108PEk8KTtoCQkJCXJoCQkJcmgJCQk2UXdGVzQvWF9YKCJZJFhsdGMwJ2pNbS82TF9paSdOcldgWSQ0bGJYNnJgVzAiV1NXdnRfN3Q0KCQ0bGI3dHZGMCQ0bGJYNk4pV1NXIk5TIik7aGgJCQkkTDZzTVg0V1tXbTlzR1g3X0dNNkw5KCRqYlg3dFUsVyJvfUkyVz48XXAxXVcxcHlaXVdgWSQ0bGJYNnJgIik7aFdXV1dXV1dXCSQ0bGJXW1dtOXNHWDdfdjY0UXdfbExMbDkoJEw2c01YNCk7aAkJCWgJCQkkNGxiMGlOV1tXczRMX0w2L1hsUTYoIk00dmttYgpfcUtxcV9sN19RNyIsVyJNNHZrbWIKX2M2dDZMbFhfUTciLFckNGxiMGlOKTtoCQkJaFdXV1dXV1dXCSQ0dzdzLTV2dF9lTDc0Nigkdi8sVyJhPElkVzFweVpdVzN7V11EM28xb1dgWSQ0bGJYNnJgO1x0WSQ0bGIwaU5yO1x0XHQiKTtoaFdXV1dXV1dXCTd2Vyg3dF9sTExsOSgkNGxiXzQ5LzYwJDRsYlg2TixXJDR3N3MtNUZ0WDlfUUw2bDQ2KSlXWWgJCQkJUUZ0NDd0TTY7aAkJCXJoaFdXV1dXV1dXV1dXVyR1TW02TDdRPkZYTW10V1tXbExMbDkoKTtoV1dXV1dXV1dXV1dXJEw2c01YNFdbV205c0dYN19HTTZMOSgkamJYN3RVLFcib31JMlc+SVpDT3VvV3s8SU9XYFkkNGxiWDZyYCIpO2hXV1dXV1dXV1dXV1ckdjc2WGpXW1dxO2hXV1dXV1dXV1dXV1dldzdYNigkUUZYV1tXbTlzR1g3X3Y2NFF3X0xGZSgkTDZzTVg0KSlXWWhXV1dXV1dXV1dXV1cJJHVNbTZMN1E+RlhNbXQwJHY3NlhqKytOV1tXL0w2Y19tbDRRdygiel4oXGUqN3Q0fDk2bEwpeiIsVyRRRlgwaU4pVz9XaVc6V3E7aFdXV1dXV1dXV1dXV3JoCQkJJHY3Nlhqc1dbVyR2NzZYajtoV1dXV1dXV1dXV1dXJHZMRm1XW1dxO2gJCQkkWDdtNzRXW1ckNGxiczdnNjAkNGxiWDZOO2gJCQkkWDdtNzRWV1tXTEZNdGooJFg3bTc0V3pXLik7aAkJCTd2VygkNGxiN3R2RjAkNGxiWDZOVzVXcSlXWWgJCQk3dlcoJDRsYjd0dkYwJDRsYlg2Tlc1VyRYN203NFYpV1loCQkJV1dXVzZRd0ZXNC9YX3MocSxXJDRXelckNGxiN3R2RjBxTik7aAkJCXJoCQkJJDdXW1dxO2gJCQkkNHc3cy01dnRfZUw3NDYoJHYvLFciM3VvXTwxVzN1MUlXYFkkNGxiWDZyYFc9cFpDXW8iKTtoV1dXV1dXV1dXV1dXZXc3WDYoKCRMNnNNWDRXW1dtOXNHWDdfR002TDkoJGpiWDd0VSxXIm9dWl0+MVcqV3s8SU9XYFkkNGxiWDZyYFdaM08zMVdZJHZMRm1yLFdZJFg3bTc0ciIpKVcmJlcoJDRGNGxYV1tXbTlzR1g3X3RNbV9MRmVzKCRMNnNNWDQpKSlZaFdXV1dXV1dXV1dXVwkJZXc3WDYoJExGZVdbV205c0dYN192NjRRd19MRmUoJEw2c01YNCkpV1loV1dXV1dXV1dXV1dXV1dXV1dXV1cJJDcrKztoV1dXVwkJCQkJJDQrKztoaAkJCQkJCXZGTCgkVVdbV3E7VyRVVyBXJHY3NlhqcztXJFUrKylZaFdXV1dXV1dXV1dXV1dXV1dXV1dXCQk3dlcoJHVNbTZMN1E+RlhNbXQwJFVOKWhXV1dXV1dXV1dXV1dXV1dXV1dXVwkJV1dXVyRMRmUwJFVOV1tXN3NzNjQoJExGZTAkVU4pVz9XJExGZTAkVU5XOlcidUNaWiI7aFdXV1dXV1dXV1dXV1dXV1dXV1dXCQk2WHM2aFdXV1dXV1dXV1dXV1dXV1dXV1dXCQkJJExGZTAkVU5XW1c3c3M2NCgkTEZlMCRVTilXP1ciJyJXU1dtOXNHWDdfTDZsWF82c1FsLzZfczRMN3RjKCRqYlg3dFUsVyRMRmUwJFVOKVdTVyInIlc6VyJ1Q1paIjtoV1dXV1dXV1dXV1dXV1dXV1dXV1cJcmhoV1dXVwkJCQkJJDR3N3MtNXZ0X2VMNzQ2KCR2LyxXKCQ3V1tbV2lXP1ciIlc6VyIsIilXU1ciXHQoIldTVzdtL1hGajYoIixXIixXJExGZSlXU1ciKSIpO2hXV1dXCQkJCQk3dlcoJDdXJVckWDdtNzRWV1tbV3EpaFdXV1cJCQkJCQk2UXdGVzQvWF9zKCQ3V3pXJDRsYjd0dkYwJDRsYlg2TixXJDRXelckNGxiN3R2RjBxTik7aFdXV1dXV1dXV1dXV1dXVwkJcmgJCQkJCW05c0dYN192TDY2X0w2c01YNCgkTDZzTVg0KTtoCQkJCQk3dlcoJDRGNGxYVyBXJFg3bTc0KVdZaAkJCQkJV1dXV2JMNmxVO2gJCQkJCXJoV1dXVwkJCQkkdkxGbVcrW1ckWDdtNzQ7aFdXV1dXV1dXV1dXV3JoaAkJCSQ0dzdzLTV2dF9lTDc0Nigkdi8sVyI7XHRcdCIpO2hXV1dXCQk2UXdGVzQvWF9zKGksVyQ0V3pXJDRsYjd0dkYwcU4pO3JoCQlyaAkJJDR3N3MtNTRsYnNXW1ckNGxicztoCQkkNHc3cy01TDZRRkxqc1dbVyQ0bGI3dHZGMHFOO2gJCSQ0dzdzLTVRRm0vV1tXJDR3N3MtNW9dMTAnUUZtL19tNjR3RmonTlcqV2lxVytXJDR3N3MtNW9dMTAnUUZtL19YNlI2WCdOO2hXV1dXV1dXVzZRd0ZXNC9YX3MoaSxXaSk7aFdXV1dXV1dXNlF3Rlc0L1hfWChzNExfTDYvNmw0KCItIixXeHEpKTtoV1dXV1dXV1ckNHc3cy01dnRfUVhGczYoJHYvKTtoCQk2UXdGVzQvWF9YKCJZJFhsdGMwJ2pNbS82TF9pVidOcldgWSRqYnJgV1kkWGx0YzAnak1tLzZMX2kuJ05yIixXPl88XW9DWjEpO2gJCTZRd0ZXNC9YX1goIlkkWGx0YzAnak1tLzZMX2kKJ05yV1dXV1dXVyJXU1dMRk10aigkNHc3cy01czdnNld6V2lxCms4VHgsV1YpV1NXIldPeSIsVz5fPF1vQ1oxKTtoCQkkdjdYNnM3ZzZXW1dMRk10aih2N1g2czdnNihkcDF9V1NXJDR3N3MtNXY3WDZ0bG02KVd6V2lxCms4VHgsV1YpV1NXIldPeSI7aAkJNlF3Rlc0L1hfWCgiWSRYbHRjMCdqTW0vNkxfaTgnTnJXWSR2N1g2czdnNnIiLFc+Xzxdb0NaMSk7aAkJNlF3Rlc0L1hfWCgiWSRYbHRjMCdqTW0vNkxfaXgnTnJXWSQ0bGJzciIsVz5fPF1vQ1oxKTtoCQk2UXdGVzQvWF9YKCJZJFhsdGMwJ2pNbS82TF9pVCdOcldXVyJXU1d2dF83dDQoJDRsYjd0dkYwcU4pLFc+Xzxdb0NaMSk7aGgJCSRqN3NVV1tXYVpdezdYNnM6OmM2NGE2dmxNWDRvNEZMbGM2KCk7aAkJJFFGdHY3YzAnYmxRVU0vX0w2bUY0NidOV1tXN3Q0UmxYKCRRRnR2N2MwJ2JsUVVNL19MNm1GNDYnTik7aAkJN3YoVyRRRnR2N2MwJ2JsUVVNL19MNm1GNDYnTlc1Vy1pVylXVyRqN3NVV1tXJFFGdHY3YzAnYmxRVU0vX0w2bUY0NidOO2hoCQk3dihXJGo3c1VXKVdZaGgJCQk2UXdGVzQvWF9YKCRYbHRjMCdqTW0vNkxfLi4nTixXPl88XW9DWjEpO2hoCQkJYVpdezdYNnM6Ojd0NzQoVyRqN3NVVyk7aGgJCQk3dlcoIWFaXXs3WDZzOjokNkxMRkwpV1loaAkJCQkkczRMNmxtV1tXQHZGLzZ0KGRwMX1XU1ckNHc3cy01djdYNnRsbTYsVydMYicpO2hoCQkJCTd2Vyg3c19MNnNGTUxRNigkczRMNmxtKSlXWWhoCQkJCQlhWl17N1g2czo6Mkw3NDZvNEw2bG0oQzxaV1NXJDR3N3MtNXY3WDZ0bG02LFckczRMNmxtKTtoaAkJCQlyVzZYczZXWWhoCQkJCQlhWl17N1g2czo6JDZMTEZMV1tXJ2R9ZFddTExGTDpXQ3RsYlg2VzRGV0YvNnRXNHc2V3M0TDZsbVdlNzR3V00vWEZsajZqV3Y3WDYnO2gJCQkJcmhoCQkJCTd2Vyg3c19MNnNGTUxRNigkczRMNmxtKSlXWWgJCQkJCXZRWEZzNigkczRMNmxtKTtoCQkJCXJoaAkJCQk3dlcoYVpdezdYNnM6OiQ2TExGTClXWWgJCQkJCTZRd0ZXNC9YX1goYVpdezdYNnM6OiQ2TExGTCxXPl9dPDxJPCk7aAkJCQlyVzZYczZXWWgJCQkJCU10WDd0VShkcDF9V1NXJDR3N3MtNXY3WDZ0bG02KTtoCQkJCXJoaAkJCXJXNlhzNlc2UXdGVzQvWF9YKGFaXXs3WDZzOjokNkxMRkwsVz5fXTw8STwpO2hoCQkJNlF3Rlc0L1hfWCgkWGx0YzAnak1tLzZMXy4KJ04sVz5fPF1vQ1oxKTtoCQlyaGgJCTd2KCFqNnY3dDZqKCdwQzFJT0lhXScpKWgJCVloCQkJNlF3RlciIHNRTDcvNDU3dlcoakZRTW02dDRTYzY0XVg2bTZ0NHk5M2ooJ3NsUjYnKSlXWWpGUU1tNnQ0U2M2NF1YNm02dDR5OTNqKCdzbFI2JylTczQ5WDZTajdzL1hsOVdbVycnO1dyIHpzUUw3LzQ1IjtoCQlyaGgJcmhoCXZNdFE0N0Z0V0w2czRGTDYoKVloCQljWEZibFhXJFFGdHY3YyxXJFhsdGMsVyRqYlg3dFU7aGgJCTd2VyghN3NzNjQoJF9kSW8xMCd2N1g2J04pKVckX2RJbzEwJ3Y3WDYnTldbVyRfZl0xMCd2N1g2J047aGgJCUBzNjRfNkxMRkxfd2x0alg2TCgib0RhXzZMTEZMfWx0alg2TCIsV11fcFpaV15XXV8ycDx1M3VmV15XXV9hXWQ8XT5wMV1hV15XXV91STEzPl0pO2gJCSRiTTQ0RnRzV1tXIiI7aAkJNlF3Rlc0L1hfL2xjNig0L1hfL0xGUTZzcygkWGx0YzAnak1tLzZMX2lrJ04pLFckYk00NEZ0cyk7aGgJCSQ0dzdzLTVvXTEwJ1hsczRfbFE0N0Z0J05XV1dXV1tXaTtoCQkkNHc3cy01b10xMCdYbHM0X2piX0w2czRGTDYnTldbV2F5dXBPXW87aAkJJHY3WDZXW1c3c3M2NCgkX2RJbzEwJ3Y3WDYnTilXP1ckX2RJbzEwJ3Y3WDYnTlc6VycnO2hoCQkkdjdYNldbV3M0TF9MNi9YbFE2KFciXFwiLFcieiIsVyR2N1g2Vyk7aAkJJHY3WDZXW1dzNExfTDYvWGxRNihXIlNTIixXIiIsVyR2N1g2Vyk7aAkJJHY3WDZXW1dzNExfTDYvWGxRNihXInoiLFciIixXJHY3WDZXKTtoaAkJN3YoV3M0TDcvRnNXKFckdjdYNixXIi93LyJXKVchW1tXdmxYczZXKVdqNzYoIn1sUVU3dGNXbDQ0Nm0vNCEiKTtoaAkJJGpiV1tXJDR3N3MtNW9dMTAnWGxzNF9qYl9MNnM0Rkw2J047aGgJCTd2VyghJGpiKVdZaAkJCTZRd0ZXNC9YX1goJFhsdGMwJ2pNbS82TF9pSydOLFc+X108PEk8KTtoCQlXV1dXNlA3NDtoCQlyaGgJCSRqN3NVV1tXYVpdezdYNnM6OmM2NGE2dmxNWDRvNEZMbGM2KCk7aAkJJFFGdHY3YzAnYmxRVU0vX0w2bUY0NidOV1tXN3Q0UmxYKCRRRnR2N2MwJ2JsUVVNL19MNm1GNDYnTik7aAkJN3ZXKCRRRnR2N2MwJ2JsUVVNL19MNm1GNDYnTlc1Vy1pKVdXJGo3c1VXW1ckUUZ0djdjMCdibFFVTS9fTDZtRjQ2J047aGgJCTd2VyhXJGo3c1VXKVdZaAkJCWFaXXs3WDZzOjo3dDc0KFckajdzVVcpO2hoCQkJN3ZXKCFhWl17N1g2czo6ezdYNl1QN3M0cyhDPFpXU1ckdjdYNikpV1loCQkJCTZRd0ZXNC9YX1goJFhsdGMwJ2pNbS82TF9WaSdOLFc+X108PEk8KTtoCQkJCTZQNzQ7aAkJCXJoaAkJCSR3bHRqWDZXW1dhWl17N1g2czo6PDZsam80TDZsbShDPFpXU1ckdjdYNik7aGgJCQk3dlcoYVpdezdYNnM6OiQ2TExGTClXWWgJCQkJNlF3Rlc0L1hfWChhWl17N1g2czo6JDZMTEZMLFc+X108PEk8KTtoCQkJCTZQNzQ7aAkJCXJoaAkJCSRzNEw2bG1XW1dAdkYvNnQoZHAxfVdTVyR2N1g2LFcnZWInKTtoaAkJCTd2VyghN3NfTDZzRk1MUTYoJHM0TDZsbSkpV1loCQkJCTZRd0ZXNC9YX1goJFhsdGMwJ2pNbS82TF8uOCdOLFc+X108PEk8KTtoCQkJCTZQNzQ7aAkJCXJoaAkJCTd2Vyg3c19MNnNGTUxRNigkd2x0alg2KSlXWWhoCQkJCWV3N1g2VyghdjZGdigkd2x0alg2KSlXWWhoCQkJCQl2ZUw3NDYoJHM0TDZsbSxXdkw2bGooJHdsdGpYNixXa2lLVikpO2hoCQkJCXJoaAkJCQl2UVhGczYoJHdsdGpYNik7aAkJCXJoaAkJCTd2Vyg3c19MNnNGTUxRNigkczRMNmxtKSlXWWgJCQkJdlFYRnM2KCRzNEw2bG0pO2gJCQlyaGgJCQk3dlcoN3NfTDZzRk1MUTYoJHdsdGpYNikpV1loCQkJCXZRWEZzNigkd2x0alg2KTtoCQkJcmhoCQlyaGgJCTZRd0ZXNC9YX1goIlkkWGx0YzAnak1tLzZMX1ZxJ05yV2BZJGpicmBTIik7aGhoCQk3digvTDZjX21sNFF3KCJ6XihTKz8pXFNzR1goXFMoYmdWfGNnKSk/JHoiLFckdjdYNixXJG1sNFF3NnMpKVdZaAkJCTd2Vyg3c3M2NCgkbWw0UXc2czAuTilXJiZXJG1sNFF3NnMwLk5XW1tXJ2JnVicpV1loCQkJV1dXVyQ0dzdzLTVvXTEwJ1FGbS9fbTY0d0ZqJ05XW1dWO2gJCQlyaAkJCTZYczY3dlcoN3NzNjQoJG1sNFF3NnMwVk4pVyYmJG1sNFF3NnMwLk5XW1tXJ2NnJylZaAkJCQkkNHc3cy01b10xMCdRRm0vX202NHdGaidOV1tXaTtoCQkJcmgJCQk2WHM2WWgJCQkJJDR3N3MtNW9dMTAnUUZtL19tNjR3RmonTldbV3E7aAkJCXJoCQkJaAkJCSQ0dzdzLTVvXTEwJ1FGbS9fWDZSNlgnTldbV3E7aAkJCWgJCQk3dlcoIXY3WDZfNlA3czRzKGRwMX1XU1cielkkdjdYNnIiKSlXWWhXV1dXCQlXV1dXNlF3Rlc0L1hfWCgkWGx0YzAnak1tLzZMX1ZpJ04sVz5fXTw8STwpO2hXV1dXCQlXV1dXNlA3NDtoV1dXVwkJcmhoCQkJNlF3Rlc0L1hfWCgiWSRYbHRjMCdqTW0vNkxfVlYnTnJXYFkkdjdYNnJgUyIpO2gJCQkkdjdYNldbVyRtbDRRdzZzMGlOO2gJCXJoCQk2WHM2V1loCQkJNlF3Rlc0L1hfWCgkWGx0YzAnak1tLzZMX1ZpJ04sVz5fXTw8STwpO2gJCVdXV1c2UDc0O2gJCXJoaAkJNlF3Rlc0L1hfWChzNExfTDYvNmw0KCItIixXeHEpKTtoCQkkdi9XW1ckNHc3cy01dnRfRi82dCgkdjdYNixXIkwiKTtoCQkkNHc3cy01djdYNl9RbFF3NldbVyRzR1hXW1ckNGxiWDZXW1ckN3RzNkw0V1tXJyc7aFdXV1dXV1dXJDdzX3NValdbVyQ3c19qWDZXW1ckR002TDlfWDZ0V1tXJDZQNlFNNDZXW1ckR1dbJDRXW1ckN1dbVyRsdnZfTEZlc1dbV3E7aAkJJFg3bTc0V1tXLnFxO2hXV1dXV1dXVyQ3dGo2UFdbVwo7aAkJJDRsYnNXW1dxO2gJCSQ3dHZGV1tXbExMbDkoKTtoCQkkUUZ0UjZMNFt2bFhzNjtoaAkJN3ZXKCQ0dzdzLTVtOXNHWF9SNkxzN0Z0VzVXCnFpcWlXJiZXKD59cDxvXTFXIVtXJ2xNNEYnV3x8VyQ0dzdzLTV2RkxRNmpfUXdsTHM2NCkpV1lXaAkJCW05c0dYN19HTTZMOSgkamJYN3RVLFcib10xV3VwT11vVyciV1NXJDR3N3MtNUw2czRGTDZfUXdsTHM2NFdTVyInIilXRkxXNEw3Y2M2TF82TExGTFcoJFhsdGMwJ2pNbS82TF94J05XU1dtOXNHWDdfNkxMRkwoJGpiWDd0VSksV11fQ29dPF9dPDxJPCk7aAkJCTZRd0ZXNC9YX1goIlkkWGx0YzAnak1tLzZMX1QnTnJXYCJXU1ckNHc3cy01TDZzNEZMNl9Rd2xMczY0V1NXImBTIixXPl8ycDx1M3VmKTtoCQkJJFhsczRfUXdsTHM2NFdbVyQ0dzdzLTVMNnM0Rkw2X1F3bExzNjQ7aAkJcmgJCTZYczZXWWgJCQkkWGxzNF9Rd2xMczY0V1tXJyc7aAkJcmgJCWgJCSRYbHM0X3N3RmU2aldbVycnO2gJCWgJCWV3N1g2KCgkczRMV1tXJDR3N3MtNXZ0X0w2bGpfczRMKCR2LykpVyFbW1d2bFhzNilZaAkJCTd2Vyg2bS80OSgkczRMKVd8fFcvTDZjX21sNFF3KCJ6XigjfC0tKXoiLFckczRMKSlXWWgJCQkJN3YoVyEkN3Nfalg2V3B1YVchNm0vNDkoJHM0TClXKVdZaAkJCQkJJGpYNl83dHZGV1tXNlAvWEZqNigifCIsVyRzNEwpO2gJCQkJCTd2KCRqWDZfN3R2RjBxTldbW1ciI2FaXSJXcHVhVyRqWDZfN3R2RjBpTldbW1c9XTxvM0l1M2EpVyQ3c19qWDZXW1dpO1c2WHM2V1lXNlF3Rlc0L1hfWCgkWGx0YzAnak1tLzZMXy5WJ04sVz5fXTw8STwpO1c2UDc0O1dyaGgJCQkJcmhoCQkJCTd2VyghJDdzX3NValcmJlcvTDZjX21sNFF3KCJ6XiNvQmFpcWlcfHoiLFckczRMKSlXWWgJCQkJV1dXVyQ3dHZGV1tXNlAvWEZqNigifCIsVyRzNEwpO2gJCQkJCTZRd0ZXNC9YX3MocSxXJDRXelckN3R2RjAKTik7aAkJCQkJJDdzX3NValdbV2k7aAkJCQlyaFdXV1dXV1dXCVdXV1dRRnQ0N3RNNjtoV1dXV1dXV1cJcmgJCQkkR002TDlfWDZ0VytbV3M0TFg2dCgkczRMKTtoaAkJCTd2VyghJDd0czZMNFcmJlcvTDZjX21sNFF3KCJ6XigzdW9dPDFXM3UxSVdgPygwXmBXTispYD9XUyo/PXBaQ11vKShTKikkejciLFckczRMLFckbSkpV1loCQkJCTd2VygkNGxiWDZXIVtXJG0wVk4pV1loCQkJCVdXV1ckNGxiWDZXW1ckbTBWTjtoCQkJCQkkNGxicysrO2gJCQkJCTZRd0ZXNC9YX1goIjFsYlg2V2BZJDRsYlg2cmBTIik7aAkJCQkJJFhsczRfc3dGZTZqV1tXJDRsYlg2O2gJCQkJCSQ3V1tXcTtoCQkJCQk3dlcoJDdzX3NVailoCQkJCQlXV1dXNlF3Rlc0L1hfcyhpcXFXLFckNFd6VyQ3dHZGMApOKTtoCQkJCXJoV1dXV1dXV1cJV1dXVyQ3dHM2TDRXW1ckbTBpTldTVydXJztoCQkJCSRzR1hXU1tXJG0wLk47aAkJCQkkN3RqNlArKztoCQkJCSQ3dHZGMCQ3dGo2UE5XW1c3c3M2NCgkN3R2RjAkN3RqNlBOKVc/VyQ3dHZGMCQ3dGo2UE5XOldxO2gJCQkJJFg3bTc0V1tXTEZNdGooJDd0dkYwJDd0ajZQTld6V1ZxKTtoCQkJCSRYN203NFdbVyRYN203NFcgVy5xcVc/Vy5xcVc6VyRYN203NDtoCQkJCTd2VygkN3R2RjAkN3RqNlBOVzVXJFg3bTc0KVloaAkJCQkJNlF3Rlc0L1hfcyhxV3pXJDd0dkYwJDd0ajZQTixXJDRXelckN3R2RjAKTik7aAkJCQlyaFdXV1dXV1dXCXJoCQkJNlhzNlloV1dXV1dXV1cJCSRzR1hXU1tXJHM0TDtoCQkJCTd2VygkN3RzNkw0KVdZaAkJCQlXV1dXJDcrKztoV1dXVwkJCQkkNCsrO2hXV1dXCQkJCTd2VygkN3Nfc1VqVyYmVyQ3dHZGMCQ3dGo2UE5XNVckWDdtNzRXJiZXJDRXJVckWDdtNzRXW1tXcSlZaFdXV1cJCQkJCTZRd0ZXNC9YX3MoJDdXelckN3R2RjAkN3RqNlBOLFckNFd6VyQ3dHZGMApOKTtoV1dXVwkJCQlyaAkJCQlyaFdXV1dXV1dXCXJoaAkJCTd2VyghJDd0czZMNFcmJlcvTDZjX21sNFF3KCJ6Xj48XXAxXVcxcHlaXVcoM3tXdUkxV11EM28xb1cpP2A/KDBeYFdOKylgP3o3IixXJHM0TCxXJG0pVyYmVyQ0bGJYNlchW1ckbTBWTilZaAkJCQkkNGxiWDZXW1ckbTBWTjtoCQkJCSQ3dHM2TDRXW1cnJztoCQkJCSQ0bGJzKys7aAkJCQkkN3NfUUw2bDQ2V1tXNExNNjtoCQkJCSQ3V1tXcTtoCQkJcmgJCQk3dlcoJHNHWClXWWgJCQlXV1dXN3ZXKC9MNmNfbWw0UXcoIno7JHoiLFckczRMKSlXWWhXV1dXV1dXV1dXV1cJCSRzR1hXW1dMNEw3bSgkN3RzNkw0V1NXJHNHWCxXIjsiKTtoCQkJCQk3dlcoNm0vNDkoJDd0czZMNCkpV1loCQkJCQkJN3ZXKCQ0dzdzLTVtOXNHWF9SNkxzN0Z0VyBXCnFpcWkpV1loCQkJCVdXV1cJCSRzR1hXW1cvTDZjX0w2L1hsUTYoInpddWYzdV1ccz9beiIsVyIxRWRdWyIsVyRzR1gpO2gJCQkJCQlyaAkJCQkJCTZYczY3dlcoL0w2Y19tbDRRdygiej48XXAxXVcxcHlaXXo3IixXJHNHWCkpWWhoCQkJCQkJCTd2VygvTDZjX21sNFF3KCJ6KD59cDxwPjFdPFdvXTF8Pn1wPG9dMSkwW1xzTisoXGUrKXo3IixXJHNHWCxXJFF3bExzNjQpKVdZaAkJCQkJCQkJN3ZXKCEkNHc3cy01dkZMUTZqX1F3bExzNjRXJiZXJFF3bExzNjQwVk5XIVtXJFhsczRfUXdsTHM2NClXWWgJCQkJCQkJCQk3dlcoPn1wPG9dMVdbW1cnbE00RicpV1loaAkJCQkJCQkJCQk3dlcoJFFGdHY3YzAnUXdsTHM2NCdOV1tbVyJNNHYtayJXcHVhVyRRd2xMczY0MFZOV1tbVyJRL2lWOGkiVylXWVckUUZ0UjZMNFs0TE02O1ckUXdsTHM2NDBWTldbVyJNNHZrIjtXJDR3N3MtNUw2czRGTDZfUXdsTHM2NFdbVyJNNHZrIjtXcmhoCQkJCQkJCQkJCW05c0dYN19HTTZMOSgkamJYN3RVLFcib10xV3VwT11vVyciV1NXJFF3bExzNjQwVk5XU1ciJyIpV0ZMVzRMN2NjNkxfNkxMRkxXKCJZJFhsdGMwJ2pNbS82TF94J05yWSRzR1hyIHk8NSJXU1dtOXNHWDdfNkxMRkwoJGpiWDd0VSksV11fQ29dPF9dPDxJPCk7aAkJCQkJCQkJCQk2UXdGVzQvWF9YKCJZJFhsdGMwJ2pNbS82TF9UJ05yV2AiV1NXJFF3bExzNjQwVk5XU1ciYFMiLFc+XzJwPHUzdWYpO2gJCQkJCQkJCQkJJFhsczRfUXdsTHM2NFdbVyRRd2xMczY0MFZOO2gJCQkJCQkJCQlyaAkJCQkJCQkJCTZYczZZaAkJCQkJCQkJCQk2UXdGVzQvWF9YKCRYbHRjMCdqTW0vNkxfaydOLFc+X108PEk8KTtoCQkJCQkJCQkJCTZRd0ZXNC9YX1goJFhsdGMwJ2pNbS82TF9LJ05TJ1dgJ1NXJDRsYlg2V1MnYFctNVcnV1NXJFF3bExzNjQwVk5XU1cnVygnUyRYbHRjMCdqTW0vNkxfaXEnTlMnVydXV1NXJDR3N3MtNUw2czRGTDZfUXdsTHM2NFdTVycpJyxXPl9dPDxJPCk7aAkJCQkJCQkJCXJoCQkJCQkJCQlyaGgJCQkJCQkJCTd2VygkNHc3cy01dkZMUTZqX1F3bExzNjRXSTxXJFFGdFI2TDQpV1loCQkJCQkJCQkJJHNHWFdbVy9MNmNfTDYvWGxRNigieihcelwqIVxqK1xzKT8oKD5JWlpwMV0pMFtcc04rKVxlKyhccytcKlx6KT96NyIsVycnLFckc0dYKTtoCQkJCQkJCQkJJHNHWFdbVy9MNmNfTDYvWGxRNigieigoPn1wPHA+MV08V29dMXw+fXA8b10xKTBbXHNOKylcZSt6NyIsVyJcXGkiV1NXJDR3N3MtNUw2czRGTDZfUXdsTHM2NFdTVyQ0dzdzLTVMNnM0Rkw2X1FGWFhsNDYsVyRzR1gpO2gJCQkJCQkJCXJoCQkJCQkJCXJoCQkJCQkJCTZYczY3dig+fXA8b10xV1tbVydsTTRGJylZV2gJCQkJCQkJCSRzR1hXU1tXJ1dhXXtwQ1oxVz59cDxvXTFbJ1dTVyQ0dzdzLTVMNnM0Rkw2X1F3bExzNjRXU1ckNHc3cy01TDZzNEZMNl9RRlhYbDQ2O2gJCQkJCQkJCTd2VygkNHc3cy01TDZzNEZMNl9Rd2xMczY0VyFbVyRYbHM0X1F3bExzNjQpV1loCQkJCQkJCQkJbTlzR1g3X0dNNkw5KCRqYlg3dFUsVyJvXTFXdXBPXW9XJyJXU1ckNHc3cy01TDZzNEZMNl9Rd2xMczY0V1NXIiciKVdGTFc0TDdjYzZMXzZMTEZMVygiWSRYbHRjMCdqTW0vNkxfeCdOclkkc0dYciB5PDUiV1NXbTlzR1g3XzZMTEZMKCRqYlg3dFUpLFddX0NvXTxfXTw8STwpO2gJCQkJCQkJCQk2UXdGVzQvWF9YKCJZJFhsdGMwJ2pNbS82TF9UJ05yV2AiV1NXJDR3N3MtNUw2czRGTDZfUXdsTHM2NFdTVyJgUyIsVz5fMnA8dTN1Zik7aAkJCQkJCQkJCSRYbHM0X1F3bExzNjRXW1ckNHc3cy01TDZzNEZMNl9Rd2xMczY0O2gJCQkJCQkJCXJoCQkJCQkJCXJoCQkJCQkJcmgJCQkJCQk3dlcoJFhsczRfc3dGZTZqVyFbVyQ0bGJYNilXWTZRd0ZXNC9YX1goIlkkWGx0YzAnak1tLzZMX0snTnJXYFkkNGxiWDZyYFMiKTtXJFhsczRfc3dGZTZqV1tXJDRsYlg2O3JoCQkJCQlyaAkJCQkJNlhzNjd2KCQ0dzdzLTVtOXNHWF9SNkxzN0Z0VzVXCnFpcWlXJiZXNm0vNDkoJFhsczRfUXdsTHM2NCkpV1loCQkJCQkJbTlzR1g3X0dNNkw5KCRqYlg3dFUsVyJvXTFXJDR3N3MtNUw2czRGTDZfUXdsTHM2NFcnIldTVyQ0dzdzLTVMNnM0Rkw2X1F3bExzNjRXU1ciJyIpV0ZMVzRMN2NjNkxfNkxMRkxXKCJZJFhsdGMwJ2pNbS82TF94J05yWSRzR1hyIHk8NSJXU1dtOXNHWDdfNkxMRkwoJGpiWDd0VSksV11fQ29dPF9dPDxJPCk7aAkJCQkJCTZRd0ZXNC9YX1goIlkkWGx0YzAnak1tLzZMX1QnTnJXYCJXU1ckNHc3cy01TDZzNEZMNl9Rd2xMczY0V1NXImBTIixXPl8ycDx1M3VmKTtoCQkJCQkJJFhsczRfUXdsTHM2NFdbVyQ0dzdzLTVMNnM0Rkw2X1F3bExzNjQ7aAkJCQkJcmhXV1dXV1dXV1dXV1cJCSQ3dHM2TDRXW1cnJztoV1dXV1dXV1dXV1dXCVdXV1ckNlA2UU00NldbV2k7aFdXV1dXV1dXV1dXVwlyaFdXV1dXV1dXV1dXVwk3dlcoJEdNNkw5X1g2dFc1W1d4ODgueFcmJlcvTDZjX21sNFF3KCJ6LCR6IixXJHM0TCkpV1loV1dXV1dXV1dXV1dXCQkkc0dYV1tXTDRMN20oJDd0czZMNFdTVyRzR1gsVyIsIik7aFdXV1dXV1dXV1dXVwlXV1dXJDZQNlFNNDZXW1dpO2hXV1dXV1dXV1dXV1cJcmhXV1dXCQkJN3ZXKCQ2UDZRTTQ2KVdZaFdXV1dXV1dXV1dXVwkJJEcrKztoaAkJCQkJN3ZXKCRRRnRSNkw0KVdZaGgJCQkJCQk3dihXdk10UTQ3RnRfNlA3czRzKFcnbWJfUUZ0UjZMNF82dFFGajd0YydXKVcpV1loCQkJCQloCQkJCQkJCSRzR1hXW1dtYl9RRnRSNkw0XzZ0UUZqN3RjKFckc0dYLFcnQzF7LWsnLFcnMjN1YUkyby1pVjhpJ1cpO2gJCQkJCWgJCQkJCQlyVzZYczY3dihXdk10UTQ3RnRfNlA3czRzKFcnN1FGdFInVylXKVdZaAkJCQkJCWgJCQkJCQkJJHNHWFdbVzdRRnRSKFcnMjN1YUkyby1pVjhpJyxXJ0Mxey1rJyxXJHNHWFcpO2gJCQkJCQloCQkJCQkJcmhoCQkJCQlyaGhoV1dXV1dXV1dXV1dXCQltOXNHWDdfR002TDkoJGpiWDd0VSxXJHNHWClXRkxXNEw3Y2M2TF82TExGTFcoJFhsdGMwJ2pNbS82TF9WLidOV1NXbTlzR1g3XzZMTEZMKCRqYlg3dFUpLFddX0NvXTxfXTw8STwpO2gJCQkJCTd2VygvTDZjX21sNFF3KCJ6Xjd0czZMNHo3IixXJHNHWCkpV1loV1dXV1dXV1dXV1dXCQlXV1dXJGx2dl9MRmVzVytbV205c0dYN19sdnY2UTQ2al9MRmVzKCRqYlg3dFUpO2hXV1dXV1dXV1dXV1cJCXJoV1dXV1dXV1dXV1dXCQkkc0dYV1tXJyc7aFdXV1dXV1dXV1dXVwkJJEdNNkw5X1g2dFdbV3E7aFdXV1dXV1dXV1dXVwkJJDZQNlFNNDZXW1dxO2hXV1dXV1dXV1dXV1cJcmgJCQlyaAkJcmhoCQk2UXdGVzQvWF9zKGlXLFdpKTtoCQk2UXdGVzQvWF9YKHM0TF9MNi82bDQoIi0iLFd4cSkpO2gJCTZRd0ZXNC9YX1goJFhsdGMwJ2pNbS82TF9WCidOLFc+Xzxdb0NaMSk7aAkJN3ZXKDdzczY0KCQ3dHZGMC5OKSlXNlF3Rlc0L1hfWCgiWSRYbHRjMCdqTW0vNkxfVjgnTnJXWSQ3dHZGMC5OciIsVz5fPF1vQ1oxKTtoCQk2UXdGVzQvWF9YKCJZJFhsdGMwJ2pNbS82TF9WeCdOcldZJEdyIixXPl88XW9DWjEpO2gJCTZRd0ZXNC9YX1goIlkkWGx0YzAnak1tLzZMX1ZUJ05yV1kkNGxic3IiLFc+Xzxdb0NaMSk7aAkJNlF3Rlc0L1hfWCgiWSRYbHRjMCdqTW0vNkxfVmsnTnJXWSRsdnZfTEZlc3IiLFc+Xzxdb0NaMSk7aGgJCSQ0dzdzLTU0bGJzV1tXJDRsYnM7aAkJJDR3N3MtNUw2UUZManNXW1ckbHZ2X0xGZXM7aAkJJDR3N3MtNXM3ZzZXW1d2N1g2czdnNihkcDF9V1NXJDR3N3MtNXY3WDZ0bG02KTtoCQkkNHc3cy01UUZtL1dbVyQ0dzdzLTVvXTEwJ1FGbS9fbTY0d0ZqJ05XKldpcVcrVyQ0dzdzLTVvXTEwJ1FGbS9fWDZSNlgnTjtoaAkJJDR3N3MtNXZ0X1FYRnM2KCR2Lyk7aGgJCTd2VyhXJGo3c1VXKVdZaAkJCU10WDd0VShkcDF9V1NXJDR3N3MtNXY3WDZ0bG02KTtoCQlyaGgJCVFYNmxMX2xYWF9RbFF3NnMoKTtoCXJoaAl2TXRRNDdGdFdtbDd0KClZaAkJajc2KCJ9bFFVN3RjV2w0NDZtLzQhIik7aAlyaGgJdk10UTQ3RnRXdjdYNl9zNlg2UTQoKVloCQkkdjdYNnNXW1dsTExsOSgnJ1dbNVcnVycpO2gJCTd2Vyg3c19qN0woZHAxfSlXJiZXJHdsdGpYNldbV0YvNnRqN0woZHAxfSkpV1loV1dXV1dXV1dXV1dXZXc3WDZXKHZsWHM2VyFbW1coJHY3WDZXW1dMNmxqajdMKCR3bHRqWDYpKSlXWWhXV1dXV1dXV1dXV1dXV1dXN3ZXKC9MNmNfbWw0UXcoInpeUys/XFNzR1goXFMoY2d8YmdWKSk/JHoiLFckdjdYNikpV1loV1dXV1dXV1dXV1dXV1dXV1dXV1ckdjdYNnMwJHY3WDZOV1tXJHY3WDY7aFdXV1dXV1dXV1dXV1dXV1dyaFdXV1dXV1dXV1dXV3JoV1dXV1dXV1dXV1dXUVhGczZqN0woJHdsdGpYNik7aFdXV1dXV1dXcmhXV1dXV1dXV1VzRkw0KCR2N1g2cyk7aAkJTDY0TUx0VyR2N1g2cztoCXJoaAl2TXRRNDdGdFd2dF9GLzZ0KCR0bG02LFckbUZqNilXWWgJCWNYRmJsWFckWGx0YztoaAkJN3ZXKCQ0dzdzLTVvXTEwJ1FGbS9fbTY0d0ZqJ05XW1tXVilXWWgJCQkkNHc3cy01djdYNnRsbTZXW1ciWSR0bG02clNzR1hTYmdWIjtoCQkJJHYvV1tXYmdGLzZ0KGRwMX1XU1ckNHc3cy01djdYNnRsbTYsVyJZJG1GajZyIik7aAkJcmgJCTZYczY3dlcoJDR3N3MtNW9dMTAnUUZtL19tNjR3RmonTldbW1dpKVdZaAkJCSQ0dzdzLTV2N1g2dGxtNldbVyJZJHRsbTZyU3NHWFNjZyI7aAkJCSR2L1dbV2NnRi82dChkcDF9V1NXJDR3N3MtNXY3WDZ0bG02LFciWSRtRmo2cmJZJDR3N3MtNW9dMTAnUUZtL19YNlI2WCdOciIpO2gJCXJoCQk2WHM2WWgJCQkkNHc3cy01djdYNnRsbTZXW1ciWSR0bG02clNzR1giO2gJCQkkdi9XW1d2Ri82dChkcDF9V1NXJDR3N3MtNXY3WDZ0bG02LFciWSRtRmo2cmIiKTtoCQlyaAkJN3ZXKDdzX0w2c0ZNTFE2KCR2LykpV1loaAkJCUw2NE1MdFckdi87aGgJCXJXNlhzNldZaGgJCQk2UXdGVzQvWF9YKCRYbHRjMCdqTW0vNkxfLjgnTixXPl9dPDxJPCk7aAkJCTZQNzQ7aGgJCXJoCXJoaAl2TXRRNDdGdFd2dF9lTDc0Nigkdi8sVyRzNEwpWWgJCTd2VygkNHc3cy01b10xMCdRRm0vX202NHdGaidOV1tbV1YpV1loCQlXV1dXYmdlTDc0Nigkdi8sVyRzNEwpO2gJCXJoCQk2WHM2N3ZXKCQ0dzdzLTVvXTEwJ1FGbS9fbTY0d0ZqJ05XW1tXaSlXWWgJCVdXV1djZ2VMNzQ2KCR2LyxXJHM0TCk7aAkJcmgJCTZYczZZaAkJCXZlTDc0Nigkdi8sVyRzNEwpO2gJCXJoCXJoaAl2TXRRNDdGdFd2dF9MNmxqKCR2LylZaAkJN3ZXKCQ0dzdzLTVvXTEwJ1FGbS9fbTY0d0ZqJ05XW1tXVilXWWgJCVdXV1dMNjRNTHRXYmdMNmxqKCR2LyxXCnFLeCk7aAkJcmgJCTZYczY3dlcoJDR3N3MtNW9dMTAnUUZtL19tNjR3RmonTldbW1dpKVdZaAkJV1dXV0w2NE1MdFdjZ0w2bGooJHYvLFcKcUt4KTtoCQlyaAkJNlhzNlloCQkJTDY0TUx0V3ZMNmxqKCR2LyxXCnFLeCk7aAkJcmgJcmhoCXZNdFE0N0Z0V3Z0X0w2bGpfczRMKCR2LylZaAkJJHM0TDd0Y1dbVycnO2gJCSQ0dzdzLTV2N1g2X1FsUXc2V1tXWDRMN20oJDR3N3MtNXY3WDZfUWxRdzYpO2gJCSQvRnNXW1dzNEwvRnMoJDR3N3MtNXY3WDZfUWxRdzYsVyJcdCIsV3EpO2gJCTd2VygkL0ZzVyBXaSlXWWgJCQlldzdYNlcoISRzNEw3dGNXJiZXKCRzNExXW1ckNHc3cy01dnRfTDZsaigkdi8pKSlZaFdXV1cJCQkkL0ZzV1tXczRML0ZzKCRzNEwsVyJcdCIsV3EpO2hXV1dXCQkJN3ZXKCQvRnNXW1tbV3ZsWHM2KVdZaFdXV1cJCQlXV1dXJDR3N3MtNXY3WDZfUWxRdzZXU1tXJHM0TDtoV1dXVwkJCXJoV1dXVwkJCTZYczZZaFdXV1cJCQkJJHM0TDd0Y1dbVyQ0dzdzLTV2N1g2X1FsUXc2V1NXc01iczRMKCRzNEwsV3EsVyQvRnMpO2hXV1dXCQkJCSQ0dzdzLTV2N1g2X1FsUXc2V1tXc01iczRMKCRzNEwsVyQvRnNXK1dpKTtoV1dXVwkJCXJoV1dXVwkJcmgJCQk3dlcoISRzNEwpV1loCQkJV1dXVzd2VygkNHc3cy01djdYNl9RbFF3NilXWWgJCQkJCSRzNEw3dGNXW1ckNHc3cy01djdYNl9RbFF3NjtoCQkJCQkkNHc3cy01djdYNl9RbFF3NldbVycnO2gJCQkJV1dXV0w2NE1MdFc0TDdtKCRzNEw3dGMpO2gJCQkJcmgJCQlXV1dXTDY0TUx0V3ZsWHM2O2gJCQlyaAkJcmgJCTZYczZXWWhXVwkJCSRzNEw3dGNXW1dzTWJzNEwoJDR3N3MtNXY3WDZfUWxRdzYsV3EsVyQvRnMpO2hXVwkJCSQ0dzdzLTV2N1g2X1FsUXc2V1tXc01iczRMKCQ0dzdzLTV2N1g2X1FsUXc2LFckL0ZzVytXaSk7aAkJcmgJCUw2NE1MdFc0TDdtKCRzNEw3dGMpO2gJcmhoCXZNdFE0N0Z0V3Z0X1FYRnM2KCR2LylZaAkJN3ZXKCQ0dzdzLTVvXTEwJ1FGbS9fbTY0d0ZqJ05XW1tXVilXWWgJCVdXV1diZ1FYRnM2KCR2Lyk7aAkJcmgJCTZYczY3dlcoJDR3N3MtNW9dMTAnUUZtL19tNjR3RmonTldbW1dpKVdZaAkJV1dXV2NnUVhGczYoJHYvKTtoCQlyaAkJNlhzNlloCQkJdlFYRnM2KCR2Lyk7aAkJcmgJcmhoCXZNdFE0N0Z0V3Z0X3M2WDZRNCgkNzQ2bXMsVyRzNlg2UTQ2ailZaAkJJHM2WDZRNFdbVycnO2gJCXZGTDZsUXcoJDc0Nm1zV3BvVyRVNjlXWzVXJFJsWE02KVloCQkJJHM2WDZRNFdTW1ckVTY5V1tbVyRzNlg2UTQ2alc/VyIgSWQxM0l1Vz1wWkNdWydZJFU2OXInV29dWl0+MV1hNVkkUmxYTTZyIlc6VyIgSWQxM0l1Vz1wWkNdWydZJFU2OXInNVkkUmxYTTZyIjtoCQlyaAkJTDY0TUx0VyRzNlg2UTQ7aAlyaGgJdk10UTQ3RnRXdnRfc2xSNigpWWgJCUw2NE1MdDtoCXJoaHJoaHZNdFE0N0Z0V3Z0Xzd0NCgkdE1tKVloCUw2NE1MdFd0TW1iNkxfdkZMbWw0KCR0TW0sV3EsVycsJyxXJ1cnKTtocmhodk10UTQ3RnRXNC9YXy9sYzYoJFFGdDQ2dDRXW1cnJyxXJGJNNDRGdHNXW1cnJylZaAljWEZibFhXJFFGdHY3YyxXJFhsdGM7aGgJN3YoajZ2N3Q2aigncEMxSU9JYV0nKSloCVloCWgJV1dMNjRNTHQ7aAloCXJoaEw2NE1MdFcgICB9MU9aaCAhakZRNDkvNld3NG1YNWggdzRtWFdYbHRjWyJZJFhsdGMwJ1hsdGNNbGM2X1FGajYnTnIiV2o3TFsiWSRYbHRjMCdqN0w2UTQ3RnQnTnIiNWggdzZsajVoIG02NGxXUXdsTHM2NFtZJFFGdHY3YzAnUXdsTHM2NCdOciI1aCBzNDlYNlc0OS82WyI0NlA0elFzcyI1aCAhLS1oYkZqOVloCUZSNkx2WEZlOldsTTRGO2hyaHZGTG1XWWgJbWxMYzd0OnEvUDtoCS9samo3dGM6V3EvUDtocmhoNGxiWDZZaAliRkxqNkw6cS9QO2gJYkZMajZMLVFGWFhsL3M2OlFGWFhsL3M2O2hyaGg0bGJYNlc0alloCS9samo3dGM6cS9QO2gJdkZ0NC1zN2c2OldpaS9QO2gJdkZ0NC12bG03WDk6VzRsd0ZtbDtocmhoN3QvTTQsV3M2WDZRNCxXajdSV1loCXZGdDQ6V2lpL1BXNGx3Rm1sLFdSNkxqbHRsLFdsTDdsWDtocmg3dC9NNFM0NlA0LFdzNlg2UTRXWWgJZTdqNHc6V2lxcSU7aHJodjc2WGpzNjRXWWgJbWxMYzd0LWJGNDRGbTpXaXEvUDtocmhTL0xGY0w2c3MtYmxMV1loV1dXV3ZYRmw0Olg2djQ7aFdXV1dlN2o0dzpxJTtoV1dXV3ZGdDQtczdnNjppVi9QO2hXV1dXWDd0Ni13NjdjdzQ6VnEvUDtoV1dXV1FGWEZMOmV3NzQ2O2hXV1dXNDZQNC1sWDdjdDpRNnQ0Nkw7aFdXV1dibFFVY0xGTXRqLVFGWEZMOiMKVmtiUWw7aFdXV1ctZTZiVTc0LWJGUC1zd2xqRmU6N3RzNjRXcVctaS9QV3FXTGNibChxLFdxLFdxLFdxU2k4KTtoV1dXV2JGUC1zd2xqRmU6N3RzNjRXcVctaS9QV3FXTGNibChxLFdxLFdxLFdxU2k4KTtoV1dXVy1lNmJVNzQtNExsdHM3NDdGdDplN2o0d1dxU3hzVzZsczY7aFdXV1c0TGx0czc0N0Z0OmU3ajR3V3FTeHNXNmxzNjtoV1dXVy1lNmJVNzQtYkZMajZMLUxsajdNczprL1A7aFdXV1ctbUZnLWJGTGo2TC1MbGo3TXM6ay9QO2hXV1dXLW1zLWJGTGo2TC1MbGo3TXM6ay9QO2hXV1dXLUYtYkZMajZMLUxsajdNczprL1A7aFdXV1diRkxqNkwtTGxqN01zOmsvUDtoV1dXVy1lNmJVNzQtYkZQLXN3bGpGZTp0RnQ2O2hXV1dXYkZQLXN3bGpGZTp0RnQ2O2hXV1dXdzY3Y3c0OmsvUDtocmgtLTVoIHpzNDlYNjVoIHp3NmxqNWggYkZqOTVoaCA0bGJYNldlN2o0d1siaXFxJSI1aFdXV1cgNEw1aFdXV1dXV1dXIDRqNWggMWFXPXBaM2Z1WzFJZFdvMUVaXVsiL2xqajd0YzpXay9QV2svUDsiNWhZJFFGdDQ2dDRyaCAxcHlaXVcyM2ExfVtpcXElV3lJPGFdPFtxVz5dWlpvZHA+M3VmW3FXPl1aWmRwYWEzdWZbVjVoIDE8NWggMWFXbzFFWl1bJ1FGWEZMOlcjPl0+XT5dJ1c3alsnNDdtNkwnNSB6MWE1aCAxYVdwWjNmdVs8M2Z9MTVZJGJNNDRGdHNyIHoxYTVoIHoxPDVoIHoxcHlaXTUgejFhNWggejRqNWhXV1dXIHo0TDVoIHo0bGJYNjVoaGhoIHpiRmo5NWggen0xT1o1aH0xT1o7aHJoaHZNdFE0N0Z0VzQvWF8vTEZRNnNzKCQ0NzRYNilZaAljWEZibFhXJFhsdGM7aGgJN3YoajZ2N3Q2aigncEMxSU9JYV0nKSloCVloCWgJV1dMNjRNTHQ7aAloCXJoCWhGYl83Y3RGTDYoKTtoaEw2NE1MdFcgICB9MU9aaCAxcHlaXVcyM2ExfVtpcXElV3lJPGFdPFtxVz5dWlpvZHA+M3VmW3FXPl1aWmRwYWEzdWZbVjVoIDE8NSAxYVc+SVpvZHB1W1ZXczQ5WDZbIi9samo3dGM6Vi9QOyI1IGEzPVczYVtYRmNsTDZsV28xRVpdWyJlN2o0dzpXaXFxJTtXdzY3Y3c0OldpCnEvUDtXYkZMajZMOldpL1BXc0ZYN2pXI1R7S2F5SztXL2xqajd0YzpXLi9QO1dGUjZMdlhGZTpXbE00RjsiNSB6YTM9NSB6MWE1IHoxPDVoIDE8NSAxYVcyM2ExfVsuaSVXczQ5WDZbIi9samo3dGM6Vi9QO1dlN2o0dzppcXEvUDsiNVkkWGx0YzAnak1tLzZMX1ZLJ05yIHoxYTUgMWE1IDFweVpdVzIzYTF9W2lxcSVXczQ5WDZbImJGTGo2TDpXaS9QV3NGWDdqVyNUe0theUs7Ilc+XVpaZHBhYTN1ZltxVz5dWlpvZHA+M3VmW3E1aCAxPDUgMWFXeWY+SVpJPFsje3t7e3t7NSAxcHlaXVcyM2ExfVtpV3lJPGFdPFtxVz5dWlpkcGFhM3VmW3FXPl1aWm9kcD4zdWZbcVd5Zj5JWkk8WyM4ODg4Pj5XM2FbczRfNGxiaG8xRVpdWyJibFFVY0xGTXRqLTdtbGM2Oi1lNmJVNzQtY0xsajc2dDQoWDd0NmxMLFdYNnY0V3ElLFdYNnY0V2lxcSUsV3ZMRm0oI0tiUXZ2OCksVzRGKCN4amJLdnEpKTtibFFVY0xGTXRqLTdtbGM2Oi1lNmJVNzQtWDd0NmxMLWNMbGo3NnQ0KDRGLyxXI0tiUXZ2OCxXcSUsVyN4amJLdnEsV2lxcSUpO2JsUVVjTEZNdGotN21sYzY6LW1GZy1YN3Q2bEwtY0xsajc2dDQoNEYvLFcjS2JRdnY4V3ElLFcjeGpiS3ZxV2lxcSUpO2JsUVVjTEZNdGotN21sYzY6WDd0NmxMLWNMbGo3NnQ0KDRGV2JGNDRGbSxXI0tiUXZ2OFdxJSxXI3hqYkt2cVdpcXElKTtibFFVY0xGTXRqLUw2LzZsNDpMNi82bDQtUDt2N1g0Nkw6L0xGYzdqOmFEM21sYzYxTGx0c3ZGTG1TTzdRTEZzRnY0U2NMbGo3NnQ0KHM0bEw0PkZYRkxzNExbJyN7e0t5Pnt7OCcsVzZ0aj5GWEZMczRMWycje3t4YXlLe3EnLFdmTGxqNzZ0NDE5LzZbcSk7IjUgMTw1IDFhV31dM2Z9MVtpVjUgejFhNSB6MTw1IHoxcHlaXTUgejFhNSB6MTw1IHoxcHlaXTUgejFhNSB6MTw1aCAxPDUgMWFXczQ5WDZbIi9samo3dGM6Vi9QO1dlN2o0dzppcXEvUDsiNVkkWGx0YzAnak1tLzZMXy5xJ05yIHoxYTUgMWE1IDFweVpdVzIzYTF9W2lxcSVXczQ5WDZbImJGTGo2TDpXaS9QV3NGWDdqVyNUe0theUs7Ilc+XVpab2RwPjN1ZltxVz5dWlpkcGFhM3VmW3E1aCAxPDUgMWFXeWY+SVpJPFsje3t7e3t7NSAxcHlaXVcyM2ExfVtpV3lJPGFdPFtxVz5dWlpkcGFhM3VmW3FXPl1aWm9kcD4zdWZbcVd5Zj5JWkk8WyNxcXBwcXFXM2Fbc0ZfNGxiaG8xRVpdWyJibFFVY0xGTXRqLTdtbGM2Oi1lNmJVNzQtY0xsajc2dDQoWDd0NmxMLFdYNnY0V3ElLFdYNnY0V2lxcSUsV3ZMRm0oI0tiUXZ2OCksVzRGKCN4amJLdnEpKTtibFFVY0xGTXRqLTdtbGM2Oi1lNmJVNzQtWDd0NmxMLWNMbGo3NnQ0KDRGLyxXI0tiUXZ2OCxXcSUsVyN4amJLdnEsV2lxcSUpO2JsUVVjTEZNdGotN21sYzY6LW1GZy1YN3Q2bEwtY0xsajc2dDQoNEYvLFcjS2JRdnY4V3ElLFcjeGpiS3ZxV2lxcSUpO2JsUVVjTEZNdGotN21sYzY6WDd0NmxMLWNMbGo3NnQ0KDRGV2JGNDRGbSxXI0tiUXZ2OFdxJSxXI3hqYkt2cVdpcXElKTtibFFVY0xGTXRqLUw2LzZsNDpMNi82bDQtUDt2N1g0Nkw6L0xGYzdqOmFEM21sYzYxTGx0c3ZGTG1TTzdRTEZzRnY0U2NMbGo3NnQ0KHM0bEw0PkZYRkxzNExbJyN7e0t5Pnt7OCcsVzZ0aj5GWEZMczRMWycje3t4YXlLe3EnLFdmTGxqNzZ0NDE5LzZbcSk7IjUgMTw1IDFhV31dM2Z9MVtpVjUgejFhNSB6MTw1IHoxcHlaXTUgejFhNWggejE8NSB6MXB5Wl01IHoxYTUgejE8NSB6MXB5Wl01aCBvPjwzZDE1aFJsTFcyN2o0d1pGUVU2aldbV3ZsWHM2O2h2TXRRNDdGdFdzKHM0LFdzRilZaAlqRlFNbTZ0NFNjNjRdWDZtNnQ0eTkzaignczRfNGxiJylTZTdqNHdXW1dzNFc/V3M0VytXJyUnVzpXJ2knO2gJakZRTW02dDRTYzY0XVg2bTZ0NHk5M2ooJ3NGXzRsYicpU2U3ajR3V1tXc0ZXP1dzRlcrVyclJ1c6VydpJztocmh2TXRRNDdGdFdYKHM0TCxXUUZYRkwpWWgJc2U3NFF3KFFGWEZMKVloCQlRbHM2V1Y6V1FGWEZMV1tXJ3RsUjknO1diTDZsVTtoCQlRbHM2Vy46V1FGWEZMV1tXJ0w2aic7V2JMNmxVO2gJCVFsczZXCjpXUUZYRkxXW1cnbWxMRkZ0JztXYkw2bFU7aAkJajZ2bE1YNDpXUUZYRkxXW1cnJztoCXJoCWU3NHcoakZRTW02dDRTYzY0XVg2bTZ0NHk5M2ooJ1hGY2xMNmwnKSlZaAkJN3ZXKCEyN2o0d1pGUVU2ailZaAkJCXM0OVg2U2U3ajR3V1tXUVg3NnQ0MjdqNHc7aAkJCTI3ajR3WkZRVTZqV1tXNExNNjtoCQlyaAkJN3YoUUZYRkwpWWgJCVdXV3M0TFdbVycgcy9sdFdzNDlYNlsiUUZYRkw6J1crV1FGWEZMVytXJzsiNSdXK1dzNExXK1cnIHpzL2x0NSc7aAkJcmhoCQk3dHQ2TH0xT1pXK1tXN3R0Nkx9MU9aVz9XIiB5PDVcXHQiVytXczRMVzpXczRMO2gJCXNRTEZYWDFGL1crW1dpCjtoCXJocmggem8+PDNkMTVofTFPWjtocmhodk10UTQ3RnRXNC9YX1goJHM0TCxXJFFGWEZMV1tXPl9hXXtwQ1oxKVloaDd2KGo2djd0NmooJ3BDMUlPSWFdJykpaFloaFdXTDY0TUx0O2hocmhoRmJfN2N0Rkw2KCk7aGgkczRMV1tXL0w2Y19MNi9YbFE2KCJ6XHNZVnJ6IixXIlcmdGJzLzsiLFckczRMKTtoTDY0TUx0VyAgIH0xT1poIG8+PDNkMTVYKCdZJHM0THInLFckUUZYRkwpOyB6bz48M2QxNWhofTFPWjtocmhodk10UTQ3RnRXNC9YX3MoJHM0LFckc0YpWWhoN3YoajZ2N3Q2aigncEMxSU9JYV0nKSloWWhoV1dMNjRNTHQ7aGhyaGhGYl83Y3RGTDYoKTtoaCRzNFdbV0xGTXRqKCRzNFcqV2lxcSk7aCRzNFdbVyRzNFc1V2lxcVc/V2lxcVc6VyRzNDtoJHNGV1tXTEZNdGooJHNGVypXaXFxKTtoJHNGV1tXJHNGVzVXaXFxVz9XaXFxVzpXJHNGO2hMNjRNTHRXICAgfTFPWmggbz48M2QxNXMoWSRzNHIsWSRzRnIpOyB6bz48M2QxNWhofTFPWjtocmhodk10UTQ3RnRXNC9YX2JsUVVNL183dGo2UCgpWWhoN3YoajZ2N3Q2aigncEMxSU9JYV0nKSloWWhoV1dMNjRNTHQ7aGhyaGhMNjRNTHRXICAgfTFPWmggPl11MV08NWggfWk1bFFRNnNzV2o2dDc2aiB6fWk1aCB6Pl11MV08NWhofTFPWjtocmhodk10UTQ3RnRXNC9YXzZMTEZMKCQ2TExGTClZaGg3dihqNnY3dDZqKCdwQzFJT0lhXScpKWhZaGhXV0w2NE1MdDtoaHJoaEw2NE1MdFcgICB9MU9aaCAxcHlaXVcyM2ExfVtpcXElV3lJPGFdPFtxVz5dWlpvZHA+M3VmW3FXPl1aWmRwYWEzdWZbVjVoIDE8NWggMWFXcFozZnVbUTZ0NDZMNVkkNkxMRkxyIHoxYTVoIHoxPDVoIHoxcHlaXTVofTFPWjtocmhodk10UTQ3RnRXb0RhXzZMTEZMfWx0alg2TCgkNkxMdEYsVyQ2TExtc2MsVyR2N1g2dGxtNixXJFg3dDZ0TW0pV1loCWNYRmJsWFckWGx0YztoCTd2VygkNkxMdEZXW1tXVnEKaylXTDY0TUx0VzRMTTY7aAk3dlcoczRML0ZzVyhXJDZMTG1zYyxXImpsNDYoKToiVylXIVtbV3ZsWHM2KVdMNjRNTHRXNExNNjtoV1dXVyRqNFdbV2psNDYoIkVTbVNqV306NzpzIik7aFdXV1ckNkxMbXNjV1tXbGpqc1hsc3c2cygkNkxMbXNjKTtoaAk2UXdGVzQvWF9YKCJZJGo0ciB5PDUgeTVZJFhsdGMwJ2pNbS82TF8uaSdOciB6eTUiLFc+X108PEk8KTtoCTZRd0ZXNC9YX1goIlkkNkxMbXNjclcoWSQ2TEx0RnIpV2w0VzR3Nld2N1g2V1kkdjdYNnRsbTZyVyhZJFg3dDZ0TW1yKSIsVz5fXTw8STwpO2gJajc2KCk7aHJoaHZNdFE0N0Z0V0ZiXzdjdEZMNigpV1loaAkkamw0bFdbV3M0TF9MNi82bDQoJ1cnLFdpcXFxKTtoaFdXV1ckRmJXW1dsTExsOSgpO2hXV1dXZXc3WDZXKEZiX2M2NF9YNlI2WCgpKVdZaFdXV1dXV1dXbExMbDlfTXRzdzd2NCgkRmIsV0ZiX2M2NF9RRnQ0NnQ0cygpKTtoV1dXV1dXV1dGYl82dGpfUVg2bHQoKTtoV1dXV3JoV1dXV2hXV1dXNlF3Rlckamw0bDtoV1dXV2hXV1dXdkZMNmxRd1coJEZiV2xzVyRGYl9qbDRsKVdZaFdXV1dXV1dXRmJfczRsTDQoKTtoV1dXV1dXV1c2UXdGVyRGYl9qbDRsO2hXV1dXcmgJaFdXV1dMNjRNTHRXUUZNdDQoJEZiKTtocmg/NQ==';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCc0OQpLLzdnMGVXUlZsR1NdTTUzWkVBc0hCfVkgZlRiezxOSThjT2F6RD1odG1Kd0xQMi52eENYbnlxa3JvZGo2MVVbUT5wRml1JywndHk0OXBpelt3IHYyYXEuRXU+SUxZUXNKS0h7PEc3YkZSXU81Z01EL1hWCm5tamhyeFczZjZVbFpCMDh9U1BkZVRrPWNDQW8xTicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));

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 c576bece2f6246bb728d8f33e69830c5
Eval Count 2
Decode Time 116 ms