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='P1g+PzhiOG08Km1TU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1..

Decoded Output download

?><?php
/*
=====================================================
 DataLife Engine - by SoftNews Media Group 
-----------------------------------------------------
 https://dle-news.ru/
-----------------------------------------------------
 Copyright (c) 2004-2024 SoftNews Media Group
=====================================================
 This code is protected by copyright
=====================================================
 File: functions.inc.php
=====================================================
*/

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

if ( isset($config['auth_domain']) AND $config['auth_domain'] ) {

	$domain_cookie = explode (".", clean_url( $_SERVER['HTTP_HOST'] ));
	$domain_cookie_count = count($domain_cookie);
	$domain_allow_count = -2;
	
	if ( $domain_cookie_count > 2 ) {
	
		if ( in_array($domain_cookie[$domain_cookie_count-2], array('com', 'net', 'org') )) $domain_allow_count = -3;
		if ( $domain_cookie[$domain_cookie_count-1] == 'ua' ) $domain_allow_count = -3;
		
		$domain_cookie = array_slice($domain_cookie, $domain_allow_count);
	}
	
	$domain_cookie = "." . implode (".", $domain_cookie);
	
	if( ip2long($_SERVER['HTTP_HOST']) == -1 OR ip2long($_SERVER['HTTP_HOST']) === false) define( 'DOMAIN', $domain_cookie );
	else define( 'DOMAIN', '' );

} else define( 'DOMAIN', '' );

function dle_session( $sid = false ) {
	global $config;
	
	$params = session_get_cookie_params();

	if ( DOMAIN ) $params['domain'] = DOMAIN;
	
	if (isset($config['only_ssl']) AND $config['only_ssl']) $params['secure'] = true;

	session_set_cookie_params($params['lifetime'], "/", $params['domain'], $params['secure'], true);

	if ( $sid ) session_id( $sid );

	session_start();

}

function set_cookie($name, $value, $expires) {
	global $config;
	
	if( $expires ) {
		
		$expires = time() + ($expires * 86400);
	
	} else {
		
		$expires = FALSE;
	
	}
	
	if (isset($config['only_ssl']) AND $config['only_ssl']) setcookie( $name, $value, $expires, "/", DOMAIN, TRUE, TRUE );
	else setcookie( $name, $value, $expires, "/", DOMAIN, FALSE, TRUE );

}

function check_login($username, $md5_password, $post = true, $check_log = false) {
	global $member_id, $db, $user_group, $lang, $_IP, $_TIME, $config;

	if( $username == "" OR $md5_password == "" ) return false;
	
	$result = false;
	
	if( $post ) {
		
		$username = $db->safesql( $username );
		if( strlen($md5_password) > 72 ) $md5_password = substr($md5_password, 0, 72);

		if ($config['auth_metod']) {

			if ( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\/|\|\&\~\*\+]/", $username) ) return false;	
			$where_name = "email='{$username}'";
	
		} else {

			if ( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\@|\/|\|\&\~\*\+]/", $username) ) return false;
			$where_name = "name='{$username}'";
	
		}

		$member_id = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users WHERE {$where_name}" );
		
		if( isset($member_id['user_id']) AND $member_id['user_id'] AND $member_id['password'] AND $member_id['banned'] != 'yes' AND $user_group[$member_id['user_group']]['allow_admin'] ) {
			
			if( is_md5hash( $member_id['password'] ) ) {
				
				if($member_id['password'] == md5( md5($md5_password) ) ) {
					$result = true;
				}
				
			} else {
				
				if(password_verify($md5_password, $member_id['password'] ) ) {
					$result = true;
				}
				
			}
			
		}
		
		if( !$result ) {

			$member_id = array ();
	
			$username = $db->safesql(trim( htmlspecialchars( stripslashes($username), ENT_QUOTES, $config['charset'])));
	
			if( version_compare($config['version_id'], "9.3", '>') ) $db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$username."', '{$_TIME}', '{$_IP}', '89', '')" );

		}

	} else {
		
		$username = intval( $username );
		
		$member_id = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users WHERE user_id='{$username}'" );
		
		if( $member_id['user_id'] AND $member_id['password'] AND md5($member_id['password']) == $md5_password AND $user_group[$member_id['user_group']]['allow_admin'] AND $member_id['banned'] != 'yes' ) {

			$result = true;

		} else {

			$username = $db->safesql(trim( htmlspecialchars( stripslashes($member_id['name']), ENT_QUOTES, $config['charset'])));

			$member_id = array ();
	
			if( version_compare($config['version_id'], "9.3", '>') ) $db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$username."', '{$_TIME}', '{$_IP}', '90', '')" );

		}
	
	}

	if( $result ) {
		
		if( !allowed_ip( $member_id['allowed_ip'] ) OR !allowed_ip( $config['admin_allowed_ip'] ) ) {
			
			$member_id = array ();
			$result = false;

			if (isset($_COOKIE) and is_array($_COOKIE) and count($_COOKIE)) {
				foreach ($_COOKIE as $key => $value) {
					set_cookie($key, '', 0);
				}
			}

			session_unset();
			session_destroy();
			
			msg( "info", $lang['index_msge'], $lang['ip_block'] );
		
		}
	}

	if ( !$result ) { 

		if ($config['login_log']) $db->query( "INSERT INTO " . PREFIX . "_login_log (ip, count, date) VALUES('{$_IP}', '1', '".time()."') ON DUPLICATE KEY UPDATE count=count+1, date='".time()."'" );

	} else {

		if ( $check_log AND !isset($_SESSION['check_log']) ) {

			if( $post ) { $a_id = 82; $extr =""; } else { $a_id = 86; if (isset($_SERVER['HTTP_REFERER']) AND $_SERVER['HTTP_REFERER']) $extr = $db->safesql(htmlspecialchars($_SERVER['HTTP_REFERER'], ENT_QUOTES)); else $extr = "Direct DLE Adminpanel"; }

			if( version_compare($config['version_id'], "9.3", '>') )  $db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$db->safesql($member_id['name'])."', '{$_TIME}', '{$_IP}', '{$a_id}', '{$extr}')" );
			
			$_SESSION['check_log'] = 1;
		}

	}

	return $result;
}


function deletenewsbyid( $id ) {
	global $config, $db;
	
	$id = intval($id);
	DLEFiles::init();
	
	$row = $db->super_query( "SELECT user_id FROM " . PREFIX . "_post_extras WHERE news_id = '{$id}'" );
	
	$db->query( "UPDATE " . USERPREFIX . "_users SET news_num=news_num-1 WHERE user_id='{$row['user_id']}'" );
	
	$db->query( "DELETE FROM " . PREFIX . "_post WHERE id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_post_extras WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_post_extras_cats WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_poll WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_poll_log WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_post_log WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_post_pass WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_tags WHERE news_id = '{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_xfsearch WHERE news_id = '{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_logs WHERE news_id = '{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_subscribe WHERE news_id='{$id}'");

	deletecommentsbynewsid( $id );

	$row = $db->super_query( "SELECT images  FROM " . PREFIX . "_images WHERE news_id = '{$id}'" );

	if( isset($row['images']) AND $row['images']) {
		
		$listimages = explode( "|||", $row['images'] );
	
		foreach ( $listimages as $dataimage ) {
			
			$dataimage = get_uploaded_image_info($dataimage);
		
			$query = $db->safesql( $dataimage->path );
			$row = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%'");

			if( isset($row['count']) AND $row['count'] ) {
				continue;
			}
			
			if( $dataimage->remote ) $disk = DLEFiles::FindDriver($dataimage->url);
			else $disk = 0;

			DLEFiles::Delete( "posts/" . $dataimage->path, $disk );

			if ($dataimage->hidpi) {
				DLEFiles::Delete("posts/{$dataimage->folder}/{$dataimage->hidpi}", $disk);
			}

			if( $dataimage->thumb ) {
				
				DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $disk );

				if ($dataimage->hidpi) {
					DLEFiles::Delete("posts/{$dataimage->folder}/thumbs/{$dataimage->hidpi}", $disk);
				}
				
			}
			
			if( $dataimage->medium ) {
				
				DLEFiles::Delete( "posts/{$dataimage->folder}/medium/{$dataimage->name}", $disk );
				
				if ($dataimage->hidpi) {
					DLEFiles::Delete("posts/{$dataimage->folder}/medium/{$dataimage->hidpi}", $disk);
				}
			}
						
		}
	
		$db->query( "DELETE FROM " . PREFIX . "_images WHERE news_id = '{$id}'" );
	
	}

	$db->query( "SELECT * FROM " . PREFIX . "_files WHERE news_id = '{$id}'" );

	while ( $row = $db->get_row() ) {
		
		if( trim($row['onserver']) == ".htaccess") die("Hacking attempt!");
		
		if( $row['is_public'] ) $uploaded_path = 'public_files/'; else $uploaded_path = 'files/';

		DLEFiles::Delete( $uploaded_path.$row['onserver'], $row['driver'] );

	}

	$db->query( "DELETE FROM " . PREFIX . "_files WHERE news_id = '{$id}'" );

	$sql_result = $db->query( "SELECT user_id, favorites FROM " . USERPREFIX . "_users WHERE favorites LIKE '%{$id}%'" );
	
	while ( $row = $db->get_row($sql_result) ) {
		
		$temp_fav = explode( ",", $row['favorites'] );
		$new_fav = array();
		
		foreach ( $temp_fav as $value ) {
			$value = intval($value);
			if($value != $id ) $new_fav[] = $value;
		}
		
		if(count($new_fav)) $new_fav = $db->safesql(implode(",", $new_fav));
		else $new_fav = "";
		
		$db->query( "UPDATE " . USERPREFIX . "_users SET favorites='{$new_fav}' WHERE user_id='{$row['user_id']}'" );

	}
}

function deleteuserbyid( $id ) {
	global $config, $db;
	
	$id = intval($id);

	$row = $db->super_query("SELECT user_id, name, foto FROM " . USERPREFIX . "_users WHERE user_id='{$id}'");

	if (isset($row['user_id']) AND $row['user_id']) {

		if($row['foto'] AND count(explode("@", $row['foto'])) != 2) {

			$url = @parse_url($row['foto']);
			$row['foto'] = basename($url['path']);

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

			DLEFiles::init($driver);
			DLEFiles::Delete("fotos/" . totranslit($row['foto']));

		}

		$db->query("DELETE FROM " . USERPREFIX . "_pm WHERE user_from = '{$row['name']}' AND folder = 'outbox'");
		$db->query("DELETE FROM " . USERPREFIX . "_pm WHERE user='{$row['user_id']}'");
		$db->query("DELETE FROM " . USERPREFIX . "_social_login WHERE uid='{$row['user_id']}'");
		$db->query("DELETE FROM " . USERPREFIX . "_banned WHERE users_id='{$row['user_id']}'");
		$db->query("DELETE FROM " . USERPREFIX . "_ignore_list WHERE user='{$row['user_id']}' OR user_from='{$row['name']}'");
		$db->query("DELETE FROM " . PREFIX . "_notice WHERE user_id = '{$row['user_id']}'");
		$db->query("DELETE FROM " . PREFIX . "_subscribe WHERE user_id='{$row['user_id']}'");
		$db->query("DELETE FROM " . PREFIX . "_logs WHERE `member` = '{$row['name']}'");
		$db->query("DELETE FROM " . PREFIX . "_comment_rating_log WHERE `member` = '{$row['name']}'");
		$db->query("DELETE FROM " . PREFIX . "_vote_result WHERE name = '{$row['name']}'");
		$db->query("DELETE FROM " . PREFIX . "_poll_log WHERE `member` = '{$row['user_id']}'");
		$db->query("DELETE FROM " . USERPREFIX . "_users WHERE user_id='{$row['user_id']}'");
		$db->query("DELETE FROM " . USERPREFIX . "_users_delete WHERE user_id='{$row['user_id']}'");

	}

}

function deletecomments( $id ) {
	global $config, $db;
	
	$id = intval($id);
	DLEFiles::init();
	
	$row = $db->super_query( "SELECT id, post_id, user_id, is_register, approve FROM " . PREFIX . "_comments WHERE id = '{$id}'" );
	
	$db->query( "DELETE FROM " . PREFIX . "_comments WHERE id = '{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_comment_rating_log WHERE c_id = '{$id}'" );	

	if( $row['is_register'] ) {
		$db->query( "UPDATE " . USERPREFIX . "_users SET comm_num=comm_num-1 WHERE user_id ='{$row['user_id']}'" );
	}
	
	if($row['approve']) $db->query( "UPDATE " . PREFIX . "_post SET comm_num=comm_num-1 WHERE id='{$row['post_id']}'" );

	$db->query( "SELECT id, name, driver FROM " . PREFIX . "_comments_files WHERE c_id = '{$id}'" );
	
	while ( $row = $db->get_row() ) {
		
		$dataimage = get_uploaded_image_info( $row['name'] );
		
		DLEFiles::Delete( "posts/" . $dataimage->path, $row['driver'] );
		
		if( $dataimage->thumb ) {
			
			DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $row['driver'] );
			
		}
			
	}
	
	$db->query( "DELETE FROM " . PREFIX . "_comments_files WHERE c_id = '{$id}'" );
	
	if ( $config['tree_comments'] ) {

		$sql_result = $db->query( "SELECT id FROM " . PREFIX . "_comments WHERE parent = '{$id}'" );
	
		while ( $row = $db->get_row( $sql_result ) ) {
			deletecomments( $row['id'] );
		}

	}

}

function deletecommentsbynewsid( $id ) {
	global $config, $db;
	
	$id = intval($id);
	DLEFiles::init();
	
	$result = $db->query( "SELECT id FROM " . PREFIX . "_comments WHERE post_id='{$id}'" );
	
	while ( $row = $db->get_array( $result ) ) {
		
		$db->query( "DELETE FROM " . PREFIX . "_comment_rating_log WHERE c_id = '{$row['id']}'" );

		$sub_result = $db->query( "SELECT id, name, driver FROM " . PREFIX . "_comments_files WHERE c_id = '{$row['id']}'" );
		
		while ( $file = $db->get_row( $sub_result ) ) {
			
			$dataimage = get_uploaded_image_info( $file['name'] );
			
			DLEFiles::Delete( "posts/" . $dataimage->path, $file['driver'] );
			
			if( $dataimage->thumb ) {
				
				DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $file['driver'] );
				
			}

		}
		
		$db->query( "DELETE FROM " . PREFIX . "_comments_files WHERE c_id = '{$row['id']}'" );
	
	}
	
	$result = $db->query( "SELECT COUNT(*) as count, user_id FROM " . PREFIX . "_comments WHERE post_id='{$id}' AND is_register='1' GROUP BY user_id" );
	
	while ( $row = $db->get_array( $result ) ) {
		
		$db->query( "UPDATE " . USERPREFIX . "_users SET comm_num=comm_num-{$row['count']} WHERE user_id='{$row['user_id']}'" );
	
	}
	
	$db->query( "DELETE FROM " . PREFIX . "_comments WHERE post_id='{$id}'" );


}

function deletecommentsbyuserid( $id, $ip = false ) {
	global $config, $db;
	
	$id = intval($id);
	DLEFiles::init();
	
	if($ip) {
		$ip = $db->safesql($ip);
		$result = $db->query( "SELECT id, post_id, user_id, is_register, approve FROM " . PREFIX . "_comments WHERE ip='{$ip}' AND is_register='0'" );
	} else {
		$result = $db->query( "SELECT id, post_id, user_id, is_register, approve FROM " . PREFIX . "_comments WHERE user_id='{$id}' AND is_register='1'" );
	}
	
	while ( $row = $db->get_array( $result ) ) {
		
		$db->query( "DELETE FROM " . PREFIX . "_comment_rating_log WHERE c_id = '{$row['id']}'" );

		$sub_result = $db->query( "SELECT id, name, driver FROM " . PREFIX . "_comments_files WHERE c_id = '{$row['id']}'" );
		
		while ( $file = $db->get_row( $sub_result ) ) {
			$dataimage = get_uploaded_image_info( $file['name'] );
			
			DLEFiles::Delete( "posts/" . $dataimage->path, $file['driver'] );
			
			if( $dataimage->thumb ) {
				
				DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $file['driver'] );
				
			}
		}
		
		$db->query( "DELETE FROM " . PREFIX . "_comments_files WHERE c_id = '{$row['id']}'" );
	
	}
	
	if($ip) {
		
		$result = $db->query( "SELECT COUNT(*) as count, post_id FROM " . PREFIX . "_comments WHERE ip='{$ip}' AND is_register='0' AND approve='1' GROUP BY post_id" );
			
		while ( $row = $db->get_array( $result ) ) {
			
			$db->query( "UPDATE " . PREFIX . "_post SET comm_num=comm_num-{$row['count']} WHERE id='{$row['post_id']}'" );
		
		}
		$db->free( $result );
			
		$db->query( "DELETE FROM " . PREFIX . "_comments WHERE ip='{$ip}' AND is_register='0'" );
		
	} else {
		
		$result = $db->query( "SELECT COUNT(*) as count, post_id FROM " . PREFIX . "_comments WHERE user_id='{$id}' AND is_register='1' AND approve='1' GROUP BY post_id" );
			
		while ( $row = $db->get_array( $result ) ) {
	
			$db->query( "UPDATE " . PREFIX . "_post SET comm_num=comm_num-{$row['count']} WHERE id='{$row['post_id']}'" );
			
		}

		$db->free( $result );

		$db->query( "DELETE FROM " . PREFIX . "_comments WHERE user_id='{$id}' AND is_register='1'" );
	}


}

function formatsize($file_size) {
	
	if( !$file_size OR $file_size < 1) return '0 b';
	
    $prefix = array("b", "Kb", "Mb", "Gb", "Tb");
    $exp = floor(log($file_size, 1024)) | 0;

    $file_size = round($file_size / (pow(1024, $exp)), 2).' '.$prefix[$exp];
	$file_size = str_replace(",", ".", $file_size);

    return $file_size;

}

function CheckCanGzip() {
	
	if( headers_sent() || connection_aborted() || ! function_exists( 'ob_gzhandler' ) || ini_get( 'zlib.output_compression' ) ) return 0;
	
	if( isset($_SERVER['HTTP_ACCEPT_ENCODING']) AND strpos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip' ) !== false ) return "x-gzip";
	if( isset($_SERVER['HTTP_ACCEPT_ENCODING']) AND strpos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip' ) !== false ) return "gzip";
	
	return 0;
}

function GzipOut() {
	
	$ENCODING = CheckCanGzip();
	
	if( $ENCODING ) {
		$Contents = ob_get_contents();
		ob_end_clean();
		
		header( "Content-Encoding: $ENCODING" );
		
		$Contents = gzencode( $Contents, 1, FORCE_GZIP );
		echo $Contents;
		
		exit();
	} else {
		
		ob_end_flush(); 
		exit();
	}
}

function allowed_ip($ip_array) {
	
	$ip_array = trim( $ip_array );

	$_IP = get_ip();

	if( !$ip_array ) {
		return true;
	}
	
	if( strpos($_IP, ":") === false ) {
		$delimiter = ".";
	} else $delimiter = ":";
	
	$db_ip_split = explode( $delimiter, $_IP );
	$ip_lenght = count($db_ip_split);
	
	$ip_array = explode( "|", $ip_array );
	
	foreach ( $ip_array as $ip ) {
		
		$ip = trim( $ip );
		
		if( $ip == $_IP ) {
			
			return true;
		
		} elseif( count(explode ('/', $ip)) == 2 ) {
				
			if( maskmatch($_IP, $ip) ) return true;
				
		} else {
			
			$ip_check_matches = 0;
			$this_ip_split = explode( $delimiter, $ip );
			
			for($i_i = 0; $i_i < $ip_lenght; $i_i ++) {
				if( $this_ip_split[$i_i] == $db_ip_split[$i_i] OR $this_ip_split[$i_i] == '*' ) {
					$ip_check_matches += 1;
				}
			
			}
			
			if( $ip_check_matches == $ip_lenght ) return true;
		}
	
	}
	
	return false;
}


function maskmatch($IP, $CIDR) {
	
    list ($address, $netmask) = explode('/', $CIDR, 2);

	if( strpos($IP, ".") !== false AND strpos($CIDR, ".") !== false ) {
		
		return ( ip2long($IP) & ~((1 << (32 - $netmask)) - 1) ) == ip2long ($address);
	
	} elseif( strpos($IP, ":") !== false AND strpos($CIDR, ":") !== false ) {
		
        if (!((extension_loaded('sockets') && defined('AF_INET6')) || @inet_pton('::1'))) {
          return false;
        }
		
        $bytesAddr = unpack('n*', @inet_pton($address));
        $bytesTest = unpack('n*', @inet_pton($IP));

        if (!$bytesAddr || !$bytesTest) {
            return false;
        }

        for ($i = 1, $ceil = ceil($netmask / 16); $i <= $ceil; ++$i) {
            $left = $netmask - 16 * ($i - 1);
            $left = ($left <= 16) ? $left : 16;
            $mask = ~(0xffff >> $left) & 0xffff;
            if (($bytesAddr[$i] & $mask) != ($bytesTest[$i] & $mask)) {
                return false;
            }
        }
		
		return true;
		
	}
	
	return false;

}

function msg($type, $title, $text, $back = false) {
	global $lang;
	
	$buttons = array();
	
	if(is_array( $back )) {
		$bc = 1;
		
		foreach ($back as $key => $value) {
			
			if($bc == 1) $color="teal";
			elseif($bc == 2) $color="slate-600";
			elseif($bc == 3) $color="brown-600";
			else $color="primary-600";
			
			if( $value == $lang['add_s_5'] ) $target = " target=\"_blank\"";
			else $target="";
			
			$buttons[] = "<a class=\"btn btn-sm bg-{$color} btn-raised position-left\" href=\"{$key}\"{$target}>{$value}</a>";
			
			$bc++;
			
			if($bc > 4) $bc = 1;
		}
	} elseif( $back ) {
		$buttons[] = "<a class=\"btn btn-sm bg-teal btn-raised position-left\" href=\"{$back}\">{$lang['func_msg']}</a>";
	}
	
	if(count($buttons) ) {
		$back = "<div class=\"panel-footer\"><div class=\"text-center\">".implode('', $buttons)."</div></div>";
	} else $back ="";
	
	
	if ($title == "error") $title = $lang['addnews_error'];
	
	echoheader( "<i class=\"fa fa-comment-o position-left\"></i><span class=\"text-semibold\">{$lang['header_box_title']}</span>", $title );

	if($type == "error") {
		$type = "alert-danger";
	} elseif ( $type == "warning" ) {
		$type = "alert-warning";
	} elseif ( $type == "success" ) {
		$type = "alert-success";
	} else $type = "alert-info";
	
	if( is_array( $title ) ) {
		$title = end($title);
	}

	echo <<<HTML
<div class="alert {$type} alert-styled-left alert-arrow-left alert-component message_box">
  <h4>{$title}</h4>
  <div class="panel-body">
		<table width="100%">
		    <tr>
		        <td height="80" class="text-center">{$text}</td>
		    </tr>
		</table>
	</div>
	{$back}
</div>
HTML;
	
	echofooter();
	die();
}

function echoheader($header_title, $header_subtitle) {
	global $skin_header, $skin_footer, $skin_not_logged_header, $member_id, $user_group, $js_array, $css_array, $config, $lang, $is_loged_in, $mod, $action, $langdate, $db, $dle_login_hash;

	if( !is_array( $header_subtitle )) $header_subtitle = array ( '' => $header_subtitle);
	
	$breadcrumb = array( "<li><a href=\"?mod=main\"><i class=\"fa fa-home position-left\"></i>{$lang['skin_main']}</a></li>" );

	foreach ($header_subtitle as $key => $value) {
		
		if($key) {
			$breadcrumb[] = "<li><a href=\"{$key}\">{$value}</a></li>";
		} else {
			$breadcrumb[] = "<li class=\"active\">{$value}</li>";
		}
	}

	$breadcrumb = implode('', $breadcrumb);

	include_once (DLEPlugins::Check(ENGINE_DIR . '/skins/default.skin.php'));
	
	$js = build_js($js_array);
	$css = build_css($css_array);
	
	$skin_header = str_replace( "{js_files}", $js, $skin_header );
	$skin_header = str_replace( "{css_files}", $css, $skin_header );
	$skin_not_logged_header = str_replace( "{js_files}", $js, $skin_not_logged_header );
	$skin_not_logged_header = str_replace( "{css_files}", $css, $skin_not_logged_header );
	
	if( $is_loged_in ) echo $skin_header;
	else echo $skin_not_logged_header;
}

function echofooter() {
	global $is_loged_in, $skin_footer, $skin_not_logged_footer;

	if( $is_loged_in ) echo $skin_footer;
	else echo $skin_not_logged_footer;

}

function listdir($dir) {
	
	if( is_dir($dir) ) {

		$current_dir = @opendir( $dir );
		
		if($current_dir !== false ) {
			while ( $entryname = readdir( $current_dir ) ) {
				if( is_dir( $dir."/".$entryname ) AND ($entryname != "." AND $entryname != "..") ) {
					listdir( $dir."/".$entryname );
				} elseif( $entryname != "." AND $entryname != ".." ) {
					@unlink( $dir."/".$entryname );
				}
			}
			@closedir( $current_dir );
			@rmdir( $dir );
		}

	}

}

function totranslit($var, $lower = true, $punkt = true, $translit = true ) {
	global $langtranslit;
	
	if ( !is_string($var) ) return "";

	$bads = array( '!', '*', '\'', '(', ')', ';', ':', '@', '&', '=', '+', '$', ',', '/', '?', '#', '[', ']', '%', '\', '"', '<', '>', '^', '{', '}', '|', '`', '.php' );

	$var = html_entity_decode($var, ENT_QUOTES | ENT_HTML5, 'utf-8');

	$var = strip_tags( $var );
	$var = str_replace(chr(0), '', $var);
	
	if ( $lower ) {
		$var = dle_strtolower($var);	
	}
	
	$var = str_replace( array( "
", "
", "
" ), ' ', $var );
	$var = preg_replace( "/\s+/u", "-", $var );

	if ( !$punkt ) {
		$bads[] = '.';
	}
	
	$var = str_ireplace( $bads, '', $var );
	
	if( $translit ) {
		
		if (is_array($langtranslit) AND count($langtranslit) ) {
			$var = strtr($var, $langtranslit);
		}
		
		if ( $punkt ) {
			
			$var = preg_replace( "/[^a-z0-9\_\-.]+/mi", '', $var );
			$var = preg_replace( '#[.]+#i', '.', $var );
			
		} else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", '', $var );
	
	}
	
	$var = str_ireplace( ".php", ".ppp", $var );
	$var = preg_replace( '/\-+/', '-', $var );
	
	if( dle_strlen( $var ) > 150 ) {
		
		$var = dle_substr( $var, 0, 150 );
		
		if( ($temp_max = dle_strrpos( $var, '-' )) ) $var = dle_substr( $var, 0, $temp_max );
	
	}
    
	$var = trim( $var, '-' );
    $var = trim( $var );
	
	return $var;
}

function timezone_list(){
	static $timezones = null;

	if ($timezones === null) {
		$timezones = [];
		$offsets = [];
		$now = new DateTime('now', new DateTimeZone('UTC'));

		foreach (DateTimeZone::listIdentifiers() as $timezone) {
			$now->setTimezone(new DateTimeZone($timezone));
			$offsets[] = $offset = $now->getOffset();
			$timezones[$timezone] = '(' . format_GMT_offset($offset) . ') ' . format_timezone_name($timezone);
		}

		array_multisort($offsets, $timezones);
	}

	return $timezones;
}

function format_GMT_offset($offset) {
	$hours = intval($offset / 3600);
	$minutes = abs(intval($offset % 3600 / 60));
	return 'GMT' . ($offset !== false ? sprintf('%+03d:%02d', $hours, $minutes) : '');
}

function format_timezone_name($name) {
	$name = str_replace('/', ', ', $name);
	$name = str_replace('_', ' ', $name);
	$name = str_replace('St ', 'St. ', $name);
	return $name;
}

function langdate($format, $stamp, $servertime = false, $custom = false ) {
	global $langdate, $member_id, $customlangdate;

	if( is_array($custom) ) $locallangdate = $customlangdate; else $locallangdate = $langdate;

	if (!$stamp) { $stamp = time(); }
	
	$local = new DateTime('@'.$stamp);

	if (isset($member_id['timezone']) AND $member_id['timezone'] AND !$servertime) {
		$localzone = $member_id['timezone'];

	} else {

		$localzone = date_default_timezone_get();
	}

	if ( !in_array( $localzone, DateTimeZone::listIdentifiers() ) ) $localzone = 'Europe/Moscow';

	$local->setTimeZone(new DateTimeZone($localzone));

	return strtr( $local->format($format), $locallangdate );

}

function difflangdate($format, $stamp) {
	global $_TIME, $langdate, $member_id, $lang, $langcommentsweekdays;

	if (!is_array($langdate)) {
		$langdate = array();
	}

	if (!is_array($langcommentsweekdays)) {
		$langcommentsweekdays = array();
	}

	if (!$stamp) {
		$stamp = $_TIME;
	}

	$olddate = new DateTime('@' . $stamp);
	$nowdate = new DateTime('@' . $_TIME);
	$yesterdaydate = new DateTime('-1 day');

	if (isset($member_id['timezone']) and $member_id['timezone']) {
		$localzone = $member_id['timezone'];
	} else {

		$localzone = date_default_timezone_get();
	}

	if ( !in_array( $localzone, DateTimeZone::listIdentifiers() ) ) $localzone = 'Europe/Moscow';

	$olddate->setTimeZone(new DateTimeZone($localzone));
	$nowdate->setTimeZone(new DateTimeZone($localzone));
	$yesterdaydate->setTimeZone(new DateTimeZone($localzone));

	$diff = $olddate->diff($nowdate);

	$days    = intval($diff->format('%a'));
	$hours   = intval($diff->format('%h'));
	$minutes = intval($diff->format('%i'));

	if ($olddate->format('Ymd') == $yesterdaydate->format('Ymd')) {

		$lang_format = str_replace('{date}', $lang['time_gestern'], $lang['diffs_format']);
		$lang_format = str_replace('{time}', $olddate->format('H:i'), $lang_format);

		return $lang_format;
	} elseif ($days < 1) {

		if ($hours < 1) {

			if ($minutes < 1) {

				return $lang['now_diffs'];
			} else {

				return $minutes . ' ' . declination(array('', $minutes, $lang['minutes_diffs'])) . ' ' . $lang['time_diffs'];
			}
		} elseif ($hours <= 12) {

			return $hours . ' ' . declination(array('', $hours, $lang['hours_diffs'])) . ' ' . $lang['time_diffs'];
		} else {

			$lang_format = str_replace('{date}', $lang['time_heute'], $lang['diffs_format']);
			$lang_format = str_replace('{time}', $olddate->format('H:i'), $lang_format);

			return $lang_format;
		}
	} else {

		if ($days < 6) {

			$lang_format = str_replace('{date}', $olddate->format('l'), $lang['diffs_format']);
			$lang_format = str_replace('{time}', $olddate->format('H:i'), $lang_format);

			return strtr($lang_format, $langcommentsweekdays);
		} else return strtr($olddate->format($format), $langdate);
	}
}

function declination($matches = array())
{

	$matches[1] = strip_tags($matches[1]);
	$matches[1] = str_replace(' ', '', $matches[1]);

	$matches[1] = intval($matches[1]);
	$words = explode('|', trim($matches[2]));
	$parts_word = array();

	switch (count($words)) {
		case 1:
			$parts_word[0] = $words[0];
			$parts_word[1] = $words[0];
			$parts_word[2] = $words[0];
			break;
		case 2:
			$parts_word[0] = $words[0];
			$parts_word[1] = $words[0] . $words[1];
			$parts_word[2] = $words[0] . $words[1];
			break;
		case 3:
			$parts_word[0] = $words[0];
			$parts_word[1] = $words[0] . $words[1];
			$parts_word[2] = $words[0] . $words[2];
			break;
		case 4:
			$parts_word[0] = $words[0] . $words[1];
			$parts_word[1] = $words[0] . $words[2];
			$parts_word[2] = $words[0] . $words[3];
			break;
	}

	$word = $matches[1] % 10 == 1 && $matches[1] % 100 != 11 ? $parts_word[0] : ($matches[1] % 10 >= 2 && $matches[1] % 10 <= 4 && ($matches[1] % 100 < 10 || $matches[1] % 100 >= 20) ? $parts_word[1] : $parts_word[2]);

	return $word;
}

function CategoryNewsSelection($categoryid = 0, $parentid = 0, $nocat = TRUE, $sublevelmarker = '', $returnstring = '') {
	global $cat_info, $member_id, $user_group, $mod;
	
	if ($mod == "addnews" OR $mod == "editnews") {
		
		if($member_id['cat_allow_addnews']) {
			$allow_list = explode( ',', $member_id['cat_allow_addnews'] );
		} else $allow_list = explode( ',', $user_group[$member_id['user_group']]['cat_allow_addnews'] );
		
	} else {
		
		$allow_list = explode( ',', $user_group[$member_id['user_group']]['allow_cats'] );
		
	}
	
	if( $mod != "usergroup" AND $mod != "editusers") {
		
		$not_allow_list = explode( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );
		
	} else $not_allow_list = array();
	
	if( $parentid == 0 ) {
		if( $nocat ) $returnstring .= '<option value="0"></option>';
	} else {
		$sublevelmarker .= '&nbsp;&nbsp;&nbsp;&nbsp;';
	}
	
	if( count( $cat_info ) ) {
		
		$root_category = array();
		
		foreach ( $cat_info as $cats ) {
			if( $cats['parentid'] == $parentid ) $root_category[] = $cats['id'];
		}

		if( count( $root_category ) ) {
			
			foreach ( $root_category as $id ) {
				
				if( ( $allow_list[0] == "all" OR in_array( $id, $allow_list ) ) OR $mod == "usergroup" OR $mod == "editusers" ) {
					
					if( in_array( $id, $not_allow_list ) ) continue;
					
					$returnstring .= "<option value=\"" . $id . '" ';
					
					if( is_array( $categoryid ) ) {
						foreach ( $categoryid as $element ) {
							if( $element == $id ) $returnstring .= 'selected';
						}
					} elseif( $categoryid == $id ) $returnstring .= 'selected';
					
					$returnstring .= '>' . $sublevelmarker . $cat_info[$id]['name'] . '</option>';
				}
				
				$returnstring = CategoryNewsSelection( $categoryid, $id, $nocat, $sublevelmarker, $returnstring );
			}
		}
	}
	
	return $returnstring;
}


function array_selection($array_list, $selid = 0, $parentid = 0, $sublevelmarker = '', $returnstring = '') {

	$root_category = array ();
	
	if( $parentid == 0 ) {
		$returnstring .= '<option value="0"></option>';
	} else {
		$sublevelmarker .= '&nbsp;&nbsp;&nbsp;';
	}
	
	if( count( $array_list ) ) {
		
		foreach ( $array_list as $list ) {
			if( $list['parentid'] == $parentid ) $root_category[] = $list['id'];
		}
		
		if( count( $root_category ) ) {
			foreach ( $root_category as $id ) {
					
				$returnstring .= "<option value=\"" . $id . '" ';
					
				if( is_array( $selid ) ) {
					foreach ( $selid as $element ) {
						
						$element = intval($element);
						
						if( $element == $id ) $returnstring .= 'selected';
						
					}
				} elseif( intval($selid) == $id ) $returnstring .= 'selected';
					
				$returnstring .= '>' . $sublevelmarker . $array_list[$id]['title'] . '</option>';
				
				$returnstring = array_selection($array_list, $selid, $id, $sublevelmarker, $returnstring );
			}
		}
	}
	
	return $returnstring;
}

function dle_cache($prefix, $cache_id = false, $member_prefix = false) {
	global $config, $is_logged, $member_id, $dlefastcache;
	
	if( !$config['allow_cache'] ) return false;

	$config['clear_cache'] = (intval($config['clear_cache']) > 1) ? intval($config['clear_cache']) : 0;

	if( $is_logged ) $end_file = $member_id['user_group'];
	else $end_file = "0";
	
	if( ! $cache_id ) {
		
		$key = $prefix;
	
	} else {
		
		$cache_id = md5( $cache_id );
		
		if( $member_prefix ) $key = $prefix . "_" . $cache_id . "_" . $end_file;
		else $key = $prefix . "_" . $cache_id;
	
	}
	
	if( $config['cache_type'] ) {
		if( $dlefastcache->connection > 0 ) {
			return $dlefastcache->get($key);
		}
	}

	$buffer = @file_get_contents( ENGINE_DIR . "/cache/" . $key . ".tmp" );

	if ( $buffer !== false AND $config['clear_cache'] ) {

		$file_date = @filemtime( ENGINE_DIR . "/cache/" . $key . ".tmp" );
		$file_date = time()-$file_date;

		if ( $file_date > ( $config['clear_cache'] * 60 ) ) {
			$buffer = false;
			@unlink( ENGINE_DIR . "/cache/" . $key . ".tmp" );
		}

		return $buffer;

	} else return $buffer;

}

function create_cache($prefix, $cache_text, $cache_id = false, $member_prefix = false) {
	global $config, $is_logged, $member_id, $dlefastcache;
	
	if( !$config['allow_cache'] ) return false;
	
	if( $is_logged ) $end_file = $member_id['user_group'];
	else $end_file = "0";
	
	if( ! $cache_id ) {
		
		$key = $prefix;
		
	} else {
		
		$cache_id = md5( $cache_id );
		
		if( $member_prefix ) $key = $prefix . "_" . $cache_id . "_" . $end_file;
		else $key = $prefix . "_" . $cache_id;
	
	}
	
	if($cache_text === false) $cache_text = '';

	if( $config['cache_type'] ) {
		if( $dlefastcache->connection > 0 ) {
			$dlefastcache->set( $key, $cache_text );
			return true;
		}
	}

	file_put_contents (ENGINE_DIR . "/cache/" . $key . ".tmp", $cache_text, LOCK_EX);
	@chmod( ENGINE_DIR . "/cache/" . $key . ".tmp", 0666 );
	
	return true;
	
}

function clear_cache($cache_areas = false) {
	global $dlefastcache, $config;

	if( $config['cache_type'] ) {
		if( $dlefastcache->connection > 0 ) {
			$dlefastcache->clear( $cache_areas );
			return true;
		}
	}

	if ( $cache_areas ) {
		if(!is_array($cache_areas)) {
			$cache_areas = array($cache_areas);
		}
	}
		
	$fdir = opendir( ENGINE_DIR . '/cache' );
		
	while ( $file = readdir( $fdir ) ) {
		if( $file != '.htaccess' AND !is_dir(ENGINE_DIR . '/cache/' . $file) ) {
			
			if( $cache_areas ) {
				
				foreach($cache_areas as $cache_area) if( stripos( $file, $cache_area ) === 0 ) @unlink( ENGINE_DIR . '/cache/' . $file );
			
			} else {
				
				@unlink( ENGINE_DIR . '/cache/' . $file );
			
			}
		}
	}
}

function clear_all_caches() {
	global $config;
	
	listdir( ENGINE_DIR . '/cache/system/CSS' );
	listdir( ENGINE_DIR . '/cache/system/HTML' );
	listdir( ENGINE_DIR . '/cache/system/URI' );
	listdir( ENGINE_DIR . '/cache/system/plugins' );
	
	$fdir = opendir( ENGINE_DIR . '/cache/system/' );
	while ( $file = readdir( $fdir ) ) {
		if( !is_dir(ENGINE_DIR . '/cache/system/' . $file ) AND $file != '.htaccess' AND $file != 'cron.php' ) {
			@unlink( ENGINE_DIR . '/cache/system/' . $file );
		
		}
	}
	
	if( $config['cache_type'] ) {
		$fdir = opendir( ENGINE_DIR . '/cache' );
		while ( $file = readdir( $fdir ) ) {
			if( $file != '.htaccess' AND !is_dir(ENGINE_DIR . '/cache/' . $file)  ) {
					@unlink( ENGINE_DIR . '/cache/' . $file );
			}
		}
	}
	
	clear_cache();
	
	if (function_exists('opcache_reset')) {
		opcache_reset();
	}
	
}

function clear_static_cache_id( $save = true ) {

	$salt = str_shuffle("abchefghjkmnpqrstuvwxyz0123456789");

	$new_cache_id = "";

	for ($i = 0; $i < 5; $i++) {
		$new_cache_id .= $salt[random_int(0, 32)];
	}

	if ($save AND is_writable(ENGINE_DIR . '/data/config.php')) {

		include(ENGINE_DIR . '/data/config.php');

		$config['cache_id'] = $new_cache_id;

		$handler = fopen(ENGINE_DIR . '/data/config.php', "w");

		if ($handler !== false ) {
			
			fwrite($handler, "<?php 

//System Configurations

\$config = array (

");

			foreach ($config as $name => $value) {
				fwrite($handler, "'{$name}' => '{$value}',

");
			}

			fwrite($handler, ");

?>");
			fclose($handler);
		}

	}

	return $new_cache_id;

}

function xfieldsdataload($id) {
	
	if( $id == "" ) return;
	
	$xfieldsdata = explode( "||", $id );
	foreach ( $xfieldsdata as $xfielddata ) {
		list ( $xfielddataname, $xfielddatavalue ) = explode( "|", $xfielddata );
		$xfielddataname = str_replace( "&#124;", "|", $xfielddataname );
		$xfielddataname = str_replace( "__NEWL__", "
", $xfielddataname );
		$xfielddatavalue = str_replace( "&#124;", "|", $xfielddatavalue );
		$xfielddatavalue = str_replace( "__NEWL__", "
", $xfielddatavalue );
		$data[$xfielddataname] = $xfielddatavalue;
	}
	
	return $data;
}

function xfieldsload() {
	global $lang, $config;
	
	$path = ENGINE_DIR . '/data/xfields.txt';
	$filecontents = file( $path );
	$fields = array();
	$tmp_arr = array();

	if( !is_array( $filecontents ) ) {
		
		return array();
	
	} elseif( count($filecontents) ) {
		
		foreach ( $filecontents as $name => $value ) {
			
			if( trim($value) ) {
				
				$tmp_arr = explode( "|", trim($value, "	

") );
				
				foreach ( $tmp_arr as $name2 => $value2 ) {
					$value2 = str_replace( "&#124;", "|", $value2 );
					$value2 = str_replace( "__NEWL__", "
", $value2 );
					$value2 = html_entity_decode($value2, ENT_QUOTES, $config['charset']);
					$fields[$name][$name2] = $value2;
				}
				
			}
		}

		return $fields;

	}
	
	return array();
}

function clear_content ( $content, $len = 300, $replace_single_quote = true ) {
	
	global $config;
	
	if(!$content OR !is_string($content) ) {
		return '';
	}
	
	$remove = array ("`", "	", "
", "
", '	', '
', '
', "{PAGEBREAK}", "&nbsp;", "<br />", "<br>", " ," );
	$len = intval($len);
	
	$content = stripslashes($content);
	
	$content = html_entity_decode($content, ENT_QUOTES | ENT_HTML5, $config['charset'] );

	$content = preg_replace( "#\[hide(.*?)\](.+?)\[/hide\]#is", "", $content );
	$content = preg_replace( "'\[attachment=(.*?)\]'si", "", $content );
	$content = preg_replace( "'\[page=(.*?)\](.*?)\[/page\]'si", "", $content );
	$content = preg_replace( "#<!--dle_spoiler(.+?)<!--spoiler_text-->#is", "", $content );
	$content = preg_replace( "#<!--spoiler_text_end-->(.+?)<!--/dle_spoiler-->#is", "", $content );
	$content = preg_replace( "'{banner_(.*?)}'si", "", $content );
	$content = preg_replace( "'\[banner_(.*?)\](.*?)\[/banner_(.*?)\]'si", "", $content );
	$content = preg_replace( "#<pre(.*?)>(.+?)</pre>#is", "", $content );
	$content = str_replace( "&#1072;", "a", $content );
	$content = str_replace( "&#111;", "o", $content );
	$content = str_replace( "><", "> <", $content );

	$content = str_replace( $remove, ' ', $content );
	$content = strip_tags($content);

	$content = preg_replace("#(^|\s|>)((http|https)://\w+[^\s\[\]\<]+)#i", '', $content);

	if ($replace_single_quote) {
		$content = str_replace("&amp;amp;", "&amp;", htmlspecialchars($content, ENT_QUOTES, $config['charset']));
	} else {
		$content = str_replace("&amp;amp;", "&amp;", htmlspecialchars($content, ENT_COMPAT, $config['charset']));
	}
	
	$content = preg_replace('/\s+/u', ' ', $content);

	if( $len AND $len > 1 ) {

		if(dle_strlen( $content, $config['charset'] ) > $len ) {
	
			$content = dle_substr( $content, 0, $len, $config['charset'] );
				
			if( ($temp_dmax = dle_strrpos( $content, ' ', $config['charset'] )) ) $content = dle_substr( $content, 0, $temp_dmax, $config['charset'] );
				
		}

	}
	
	return trim($content);
}

function create_metatags($story, $ajax = false) {
	global $config, $db;
	
	$keyword_count = 20;
	$newarr = array ();
	$headers = array ();

	$bad_keywords_symbol = array (",", ".", "/", "#", ":", "@", "~", "=", "-", "+", "*", "^", "%", "$", "?", "!");
	$remove = array ('	', '
', '
' );
	
	$story = explode( "{PAGEBREAK}", $story );
	$story = $story[0];

	$story = str_replace( $remove, ' ', $story );

	$_REQUEST['meta_title'] = isset($_REQUEST['meta_title']) ? trim( str_replace($remove, ' ', $_REQUEST['meta_title']) ) : '';
	$_REQUEST['descr'] = isset($_REQUEST['descr']) ? trim( str_replace($remove, ' ', $_REQUEST['descr']) ) : '';
	$_REQUEST['keywords'] = isset($_REQUEST['keywords']) ? trim( str_replace($remove, ' ', $_REQUEST['keywords']) ) : '';

	if( $_REQUEST['meta_title'] ) {
	
		$headers['title'] = clear_content( $_REQUEST['meta_title'], 300, false );
		
		$headers['title'] = $db->safesql( $headers['title']  );
		

	} else $headers['title'] = "";
	
	if( $_REQUEST['descr'] ) {
		
		$headers['description'] = clear_content( $_REQUEST['descr'], 300, false );
		
		$headers['description'] = $db->safesql( $headers['description'] );
		
	} elseif($config['create_metatags'] OR $ajax) {

		$headers['description'] = clear_content(stripslashes($story), 0, false);
		
		if( dle_strlen( $headers['description'], $config['charset'] ) > 300 ) {
			
			$headers['description'] = dle_substr( $headers['description'], 0, 300, $config['charset'] );
			
			if( ($temp_dmax = dle_strrpos( $headers['description'], ' ', $config['charset'] )) ) $headers['description'] = dle_substr( $headers['description'], 0, $temp_dmax, $config['charset'] );

		}
		
		$headers['description'] = $db->safesql( $headers['description'] );

	} else {

		$headers['description'] = '';

	}
	
	if( $_REQUEST['keywords'] ) {
		
		$arr = explode( ",", clear_content($_REQUEST['keywords'], 0, false) );
		$newarr = array();

		foreach ( $arr as $word ) {
			$newarr[] = trim(str_replace($bad_keywords_symbol, '', $word));
		}

		$_REQUEST['keywords'] = implode( ", ", $newarr );

		$headers['keywords'] = $db->safesql( $_REQUEST['keywords'] );

	} elseif( $config['create_metatags'] OR $ajax) {

		$story = clear_content(str_replace($bad_keywords_symbol, '', stripslashes($story)), 0, false);

		$arr = explode(" ", $story );
		
		foreach ( $arr as $word ) {
			$word = str_replace("&amp;", "&", $word);
			if( dle_strlen( $word, $config['charset'] ) > 4 ) $newarr[] = $word;
		}
		
		$arr = array_count_values( $newarr );
		arsort( $arr );
		
		$arr = array_keys( $arr );
		
		$offset = 0;
		
		$arr = array_slice( $arr, $offset, $keyword_count );
		
		$headers['keywords'] = $db->safesql( implode( ", ", $arr ) );
		
	} else {

		$headers['keywords'] = '';

	}

	return $headers;
}

function set_vars($file, $data) {
	
	$file = totranslit($file, true, false);
	
	if ( is_array($data) OR is_int($data) OR is_string($data) ) {
		
		file_put_contents (ENGINE_DIR . '/cache/system/' . $file . '.php', json_encode( $data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ), LOCK_EX);
		@chmod( ENGINE_DIR . '/cache/system/' . $file . '.php', 0666 );
		
	}
}

function get_vars($file) {
	$file = totranslit($file, true, false);

	$data = @file_get_contents( ENGINE_DIR . '/cache/system/' . $file . '.php' );

	if ( $data !== false ) {

		$data = json_decode( $data, true );
		if ( is_array($data) OR is_int($data) OR is_string($data) ) return $data;

	} 

	return false;	
}

function get_folder_list( $folder = 'language' ) {
	global $lang;
	$allowed_folder = array( 'language', 'templates' );
	
	$list = array ();
	
	if( !in_array($folder, $allowed_folder) ) {
		return $list;
	}
	
	if( !$handle = opendir( ROOT_DIR . "/". $folder ) ) {
		$list[]['name'] = $lang['opt_errfo']." ".$folder;
		return $list;
	}
	
	while ( false !== ($file = readdir( $handle )) ) {
		
		if( is_dir( ROOT_DIR . "/".$folder."/".$file ) AND ($file != "." and $file != "..") ) {
			
			if( is_file( ROOT_DIR . "/".$folder."/".$file."/info.json" ) ) {
				
				$data = json_decode( trim(file_get_contents( ROOT_DIR . "/".$folder."/".$file."/info.json" ) ), true );
				
				if( isset($data['name']) AND $data['name'] ) {
					$list[$file] = $data;
					continue;
				}
			}
			
			$list[$file]['name'] = $file;
		}
		
	}

	closedir( $handle );
	ksort($list);

	return $list;

	
}

function get_groups($id = false) {
	global $user_group;
	
	$returnstring = "";
	
	foreach ( $user_group as $group ) {
		$returnstring .= '<option value="' . $group['id'] . '" ';
		
		if( is_array( $id ) ) {
			foreach ( $id as $element ) {
				if( $element == $group['id'] ) $returnstring .= 'SELECTED';
			}
		} elseif( $id and $id == $group['id'] ) $returnstring .= 'SELECTED';
		
		$returnstring .= ">" . $group['group_name'] . "</option>
";
	}
	
	return $returnstring;

}
function permload($id) {
	
	if( $id == "" ) return;
	
	$data = array ();
	
	$groups = explode( "|", $id );
	foreach ( $groups as $group ) {
		list ( $groupid, $groupvalue ) = explode( ":", $group );
		$data[$groupid][1] = ($groupvalue == 1) ? "selected" : "";
		$data[$groupid][2] = ($groupvalue == 2) ? "selected" : "";
		$data[$groupid][3] = ($groupvalue == 3) ? "selected" : "";
	}
	return $data;
}

function check_xss() {

	if (isset($_GET['mod']) AND isset($_GET['action']) AND $_GET['mod'] == "editnews" AND $_GET['action'] == "list") return;
	if (isset($_GET['mod']) AND isset($_GET['action']) AND $_GET['mod'] == "static" AND $_GET['action'] == "list") return;
	if (isset($_GET['mod']) AND ($_GET['mod'] == "tagscloud" OR $_GET['mod'] == "links" OR $_GET['mod'] == "redirects"  OR $_GET['mod'] == "metatags") ) return;
	
	$url = html_entity_decode( urldecode( $_SERVER['QUERY_STRING'] ), ENT_QUOTES, 'ISO-8859-1' );

	$url = str_replace( "\", "/", $url );

	if( $url ) {
		
		if( (strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, '"' ) !== false) || (strpos( $url, './' ) !== false) || (strpos( $url, '../' ) !== false) || (strpos( $url, '\'' ) !== false) || (strpos( $url, '.php' ) !== false) ) {

			header( "HTTP/1.1 403 Forbidden" );
			die( "Hacking attempt!" );
		
		}
	
	}
	
	$url = html_entity_decode( urldecode( $_SERVER['REQUEST_URI'] ), ENT_QUOTES, 'ISO-8859-1' );
	$url = str_replace( "\", "/", $url );
	
	if( $url ) {
		
		if( (strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, '"' ) !== false) || (strpos( $url, '\'' ) !== false) ) {
			header( "HTTP/1.1 403 Forbidden" );
			die( "Hacking attempt!" );
		
		}
	
	}

}

function clean_url($url) {
	
	if( $url == '' ) return;
	
	$url = str_replace( "http://", "", $url );
	$url = str_replace( "https://", "", $url );
	if( strtolower( substr( $url, 0, 4 ) ) == 'www.' ) $url = substr( $url, 4 );
	$url = explode( '/', $url );
	$url = reset( $url );
	$url = explode( ':', $url );
	$url = reset( $url );
	
	return $url;
}

function get_url($id) {
	
	global $cat_info;

	$cat_id = false;
	
	if( !$id ) return "";

	$id = explode (",", $id);

	foreach ($id as $val) {
		
		$val = intval($val);
		
		if ( isset($cat_info[$val]['id']) AND $cat_info[$val]['id'] AND $val ) {
			$cat_id = $val;
			break;
		}
		
	}
	
	if( !$cat_id ) return "";
	
	$id = $cat_id;
	
	$parent_id = $cat_info[$id]['parentid'];
	
	$url = $cat_info[$id]['alt_name'];
	
	while ( $parent_id ) {
		
		if( !$cat_info[$parent_id]['id'] ) {
			break;
		}
		
		$url = $cat_info[$parent_id]['alt_name'] . "/" . $url;
		
		$parent_id = $cat_info[$parent_id]['parentid'];

		if($parent_id) {	
			if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
		}
	
	}
	
	return $url;
}

function convert_unicode($t, $to = '') {
// deprecated
	return $t;
}

function check_netz($ip1, $ip2) {
	
	if( strpos($ip1, ":") === false ) {
		$delimiter = ".";
	} else $delimiter = ":";
	
	$ip1 = explode( $delimiter, $ip1 );
	$ip2 = explode( $delimiter, $ip2 );
	
	if( $ip1[0] != $ip2[0] ) return false;
	if( $ip1[1] != $ip2[1] ) return false;
	
	if($delimiter == ":") {
		if( $ip1[2] != $ip2[2] ) return false;
		if( $ip1[3] != $ip2[3] ) return false;
	}
	
	return true;

}

function compare_filter($a, $b) {
	
	$a = explode( "|", $a );
	$b = explode( "|", $b );
	
	if( $a[1] == $b[1] ) return 0;
	
	return strcasecmp( $a[1], $b[1] );

}

function build_js($js) {
	global $config;

	$js_array = array();
	$i=0;
	$defer = "";
	
	if ($config['js_min']) {

		$js_array[] = "<script src=\"engine/classes/min/index.php?charset={$config['charset']}&amp;g=admin&amp;v={$config['cache_id']}\"></script>";

		if ( count($js) ) $js_array[] = "<script src=\"engine/classes/min/index.php?charset={$config['charset']}&amp;f=".implode(",", $js)."&amp;v={$config['cache_id']}\" defer></script>";

		return implode("
", $js_array);

	} else {

		$default_array = array (
			'engine/skins/javascripts/application.js',
		);

		if ( count($js) ) $js = array_merge($default_array, $js); else $js = $default_array;

		foreach ($js as $value) {
			
			if($i > 0) $defer =" defer";
			
			$js_array[] = "<script src=\"{$value}?v={$config['cache_id']}\"{$defer}></script>";
			
			$i++;
		
		}

		return implode("
", $js_array);
	}

}


function build_css($css) {
	global $config, $lang;

	if($lang['direction'] == 'rtl') $rtl_prefix ='_rtl'; else $rtl_prefix = '';

	$default_array = array (
		"engine/skins/fonts/fontawesome/styles.min.css",
		"engine/skins/stylesheets/application{$rtl_prefix}.css"
	);
	
	$css_array = array();

	if ( count($css) ) $css = array_merge($default_array, $css); else $css = $default_array;

	if ($config['js_min']) {

		return "<link href=\"engine/classes/min/index.php?charset={$config['charset']}&amp;f=".implode(",", $css)."&amp;v={$config['cache_id']}\" rel=\"stylesheet\" type=\"text/css\">";

	} else {

		foreach ($css as $value) {
		
			$css_array[] = "<link href=\"{$value}?v={$config['cache_id']}\" rel=\"stylesheet\" type=\"text/css\">";
		
		}

		return implode("
", $css_array);
	}

}

function dle_strlen($value, $charset = "utf-8" ) {

	if( function_exists( 'mb_strlen' ) ) {
		return mb_strlen( $value, $charset );
	} elseif( function_exists( 'iconv_strlen' ) ) {
		return iconv_strlen($value, $charset);
	}

	return strlen($value);
}

function dle_substr($str, $start, $length, $charset = "utf-8" ) {

	if( function_exists( 'mb_substr' ) ) {
		return mb_substr( $str, $start, $length, $charset );
	
	} elseif( function_exists( 'iconv_substr' ) ) {
		return iconv_substr($str, $start, $length, $charset);
	}

	return substr($str, $start, $length);

}

function dle_strrpos($str, $needle, $charset = "utf-8" ) {

	if( function_exists( 'mb_strrpos' ) ) {
		return mb_strrpos( $str, $needle, 0, $charset );
	
	} elseif( function_exists( 'iconv_strrpos' ) ) {
		return iconv_strrpos($str, $needle, $charset);
	}

	return strrpos($str, $needle);

}

function dle_strpos($str, $needle, $charset = "utf-8" ) {

	if( function_exists( 'mb_strpos' ) ) {
		return mb_strpos( $str, $needle, 0, $charset );
	} elseif( function_exists( 'iconv_strrpos' ) ) {
		return iconv_strpos($str, $needle, 0, $charset);
	}

	return strpos($str, $needle);

}

function dle_strtolower($str, $charset = "utf-8" ) {

	if( function_exists( 'mb_strtolower' ) ) {
		return mb_strtolower( $str, $charset );
	}

	return strtolower($str);

}

function check_allow_login($ip, $max ) {
	global $db, $config;

	$config['login_ban_timeout'] = intval($config['login_ban_timeout']);
	
	$max = intval($max);
	
	if( $max < 2 ) $max = 2;
	
	$block_date = time()-($config['login_ban_timeout'] * 60);

	$row = $db->super_query( "SELECT * FROM " . PREFIX . "_login_log WHERE ip='{$ip}'" );

	if ( isset($row['count']) AND $row['count'] AND $row['date'] < $block_date ) {
		$db->query( "DELETE FROM " . PREFIX . "_login_log WHERE ip = '{$ip}'" );
		return true;
	}

	if ( isset($row['count']) AND $row['count'] >= $max AND $row['date'] > $block_date ) return false;
	else return true;

}

function detect_encoding($string) {  
  static $list = array('utf-8', 'windows-1251');
   
  foreach ($list as $item) {

	if( function_exists( 'mb_convert_encoding' ) ) {

		$sample = mb_convert_encoding( $string, $item, $item );

	} elseif( function_exists( 'iconv' ) ) {
	
		$sample = iconv($item, $item, $string);
	
	}

	if (md5($sample) == md5($string)) return $item;
   }

   return null;
}

function get_ip() {
	global $config;
	
	if (isset($config['own_ip']) AND $config['own_ip']) $ip = $_SERVER[$config['own_ip']]; else $ip = $_SERVER['REMOTE_ADDR'];

	$temp_ip = explode(",", $ip);

	if(count($temp_ip) > 1) $ip = trim($temp_ip[0]);

	if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) {
		return filter_var( $ip , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
	}

	if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) {
		return filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
	}

	return 'not detected';
}

function http_get_contents( $file, $post_params = false ) {
		
	$data = false;

	if (stripos($file, "http://") !== 0 AND stripos($file, "https://") !== 0) {
		return false;
	}
		
	if( function_exists( 'curl_init' ) ) {
			
		$ch = curl_init();
		curl_setopt( $ch, CURLOPT_URL, $file );

		if( is_array($post_params) ) {

			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_params));

		}
		
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
		curl_setopt($ch, CURLOPT_TIMEOUT, 5 );
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
		curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
			
		$data = curl_exec( $ch );
		curl_close( $ch );

		if( $data !== false ) return $data;
		
	} 

	if( preg_match('/1|yes|on|true/i', ini_get('allow_url_fopen')) ) {

		if( is_array($post_params) ) {

			$file .= '?'.http_build_query($post_params);
		}

		$data = @file_get_contents( $file );
			
		if( $data !== false ) return $data;

	}

	return false;	
}

function cleanpath($path) {
	$path = trim(str_replace(chr(0), '', (string)$path));
	$path = str_replace(array('/', '\'), '/', $path);
	$path = str_replace(array('"', "'"), '', $path);
	
	if (preg_match('#\p{C}+#u', $path)) {
        return '';
    }
	
	$path = strip_tags($path);
	
	$parts = array_filter(explode('/', $path), 'strlen');
	$absolutes = array();
	foreach ($parts as $part) {
		if ('.' == $part OR !$part) continue;
		if ('..' == $part) {
			array_pop($absolutes);
		} else {
			$absolutes[] = $part;
		}
	}

	return implode('/', $absolutes);
}

function is_md5hash( $md5 = '' ) {
  return strlen($md5) == 32 && ctype_xdigit($md5);
}

function generate_pin(){
	
	$pin = "";
	
	for($i = 0; $i < 5; $i ++) {

		$pin .= random_int(0, 9);
	}
	
    return $pin;
}

function send_activation( $query ) {
	
	$data = http_get_contents("https://dle-news.ru/extras/activate2009.php?".$query);

	if( $data !== false ) {	
		if( stripos( $data, "antw:activated" ) !== false ) return "1";
		elseif( stripos( $data, "antw:denied;expires" ) !== false ) return "-4";
		elseif( stripos( $data, "antw:denied" ) !== false ) return "0";
	}

	return "-1";
}

function get_domen_hash() {
	$domen_md5 = explode( '.', $_SERVER['HTTP_HOST'] );
	$count_key = count( $domen_md5 ) - 1;
	unset( $domen_md5[$count_key] );
	if( end( $domen_md5 ) == "com" OR end( $domen_md5 ) == "net" ) $count_key --;
	$domen_md5 = $domen_md5[$count_key - 1];
	$domen_md5 = md5( md5( $domen_md5 . "780918" ) );
	return $domen_md5;
}

function dle_activation($key, $domen_md5, $config, $offline = false) {	
	global $lang;
	
	$domain = urlencode( strip_tags( $_SERVER['HTTP_HOST'] ) );
	$key = trim( strip_tags( $key ) );
	@header( "Content-type: text/html; charset=utf-8" );

	if ( $offline ) {

		if( $key == md5( $domen_md5 . DINITVERSION ) ) {
			
			$buffer = "1";
		
		} else {
			
			$buffer = "-2";
		
		}

	} else {

		if( strlen( $key ) == 32 ) {

			$buffer = "-3";

		} else {

			$buffer = send_activation( "domain={$domain}&key={$key}&site_key={$domen_md5}&c_id=" . VERSIONID );

		}
	}

	switch ($buffer) {
		
		case "-4" :
			$buffer = $lang['trial_act7'];
			break;
		
		case "-3" :
			$buffer = $lang['trial_act6']." ".$lang['key_format']." <b>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</b>";
			break;
		
		case "-2" :
			$buffer = $lang['trial_act5'];
			break;
		
		case "-1" :
			$buffer = $lang['trial_act1'] . $lang['get_offline_key'] . " <a href=\"https://dle-news.ru/index.php?do=offlinekey&domain={$domain}&key={$key}&site_key={$domen_md5}&c_id=" . VERSIONID . "\" class=\"status-error\" target=\"_blank\">" . $lang['get_key'] . "</a> " . $lang['key_activation'];
			$buffer .= "<br /><br /><b>$lang[site_code]</b><span class=\"sitecodefield\"><input class=\"classic width-400 mr-10 ml-10\" type=\"text\" name=\"sitecode\" id=\"sitecode\"> <button onclick=\"dle_activation( 'code' ); return false;\" class=\"btn bg-teal btn-raised btn-sm\">{$lang['trial_act']}</button></span><div id=\"result_info\" style=\"color:red;\"></div>";
			break;
		
		case "0" :
			$buffer = $lang['trial_act2'];
			break;
		
		case "1" :

			include(ENGINE_DIR . '/data/config.php');
			
			$config['key'] = md5( $domen_md5 . DINITVERSION );
			
			$handler = fopen( ENGINE_DIR . '/data/config.php', "w" );
			fwrite( $handler, "<?php 

//System Configurations

\$config = array (

" );
			foreach ( $config as $name => $value ) {
				fwrite( $handler, "'{$name}' => '{$value}',

" );
			}
			fwrite( $handler, ");

?>" );
			fclose( $handler );
			
			if (function_exists('opcache_reset')) {
				opcache_reset();
			}
			
			$buffer = $lang['trial_act3'];
			break;
		
		default :
			$buffer = $lang['trial_act4'] . $lang['get_offline_key'] . " <a href=\"https://dle-news.ru/index.php?do=offlinekey&domain={$domain}&key={$key}&site_key={$domen_md5}&c_id=" . VERSIONID . "\" >" . $lang['get_key'] . "</a> " . $lang['key_activation'];
	}
	
	echo $buffer;
	die();
}

function normalize_name($var, $punkt = true) {
	
	if ( !is_string($var) ) return;

	$var = str_replace(chr(0), '', $var);
	
	$var = trim( strip_tags( $var ) );
	$var = preg_replace( "/\s+/u", "-", $var );
	$var = str_replace( "/", "-", $var );
	
	if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var );
	else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var );

	$var = preg_replace( '#[\-]+#i', '-', $var );
	$var = preg_replace( '#[.]+#i', '.', $var );
	
	return $var;
}

function clearfilepath( $file, $ext=array() ) {

	$file = trim(str_replace(chr(0), '', (string)$file));
	$file = str_replace(array('/', '\'), '/', $file);
	
	$path_parts = pathinfo( $file );

	if( count($ext) ) {
		if ( !isset($path_parts['extension']) OR !in_array( $path_parts['extension'], $ext ) ) return '';
	}
	
	$filename = normalize_name($path_parts['basename'], true);
	
	if( !$filename) return '';
	
	$parts = array_filter(explode('/', $path_parts['dirname']), 'strlen');
	
	$absolutes = array();
	
	foreach ($parts as $part) {
		if ('.' == $part) continue;
		if ('..' == $part) {
			array_pop($absolutes);
		} else {
			$absolutes[] = normalize_name($part, false);
		}
	}

	$path = implode('/', $absolutes);
	
	if ( $path ) return implode('/', $absolutes).'/'.$filename;
	else return '';

}

function execute_query($id, $query) {
	global $config, $db;

	if(!$query) return;
	
	if( version_compare($db->mysql_version, '5.6.4', '<') ) {
		$storage_engine = "MyISAM";
	} else $storage_engine = "InnoDB";
	
	$query = str_ireplace(array("{prefix}", "{userprefix}", "{charset}", "{engine}"), array(PREFIX, USERPREFIX, COLLATE, $storage_engine), $query);

	$db->query_errors_list = array();
		
	$db->multi_query( trim($query), false );
	
	$id = intval($id);

	if( count($db->query_errors_list) ){

		foreach($db->query_errors_list as $error) {
			$db->query( "INSERT INTO " . PREFIX . "_plugins_logs (plugin_id, area, error, type) values ('{$id}', '".$db->safesql( htmlspecialchars( $error['query'], ENT_QUOTES, $config['charset'] ), false)."', '".$db->safesql( htmlspecialchars( $error['error'], ENT_QUOTES, $config['charset'] ) )."', 'mysql')" );
		}
		
	}
	
	$db->query_errors_list = array();
	
}

function check_referer( $current_path ) {

	if( !isset($_SERVER['HTTP_REFERER']) OR !$_SERVER['HTTP_REFERER']) return false;
	
	$ref = parse_url($_SERVER['HTTP_REFERER']);
	$ref['host'] = clean_url($ref['host']);
	$ref['path'] = basename($ref['path']);
	
	$current_path = html_entity_decode($current_path, ENT_QUOTES | ENT_XML1, 'UTF-8');
	$curr = parse_url($current_path);
	$curr['host'] = clean_url($_SERVER['HTTP_HOST']);
	$curr['path'] = basename($curr['path']);
	
	if( $ref['path'] AND $curr['path'] AND $ref['host'] AND $curr['host'] AND $ref['path'] == $curr['path'] AND $ref['host'] == $curr['host'] ) {
		if( strpos($ref['query'], $curr['query']) !== false) {
			return true;
		}
	}
	
	return false;
	
}

function isSSL() {
    if( (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off')
        || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
        || (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && strtolower($_SERVER['HTTP_X_FORWARDED_SSL']) == 'on')
        || (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443)
        || (isset($_SERVER['HTTP_X_FORWARDED_PORT']) && $_SERVER['HTTP_X_FORWARDED_PORT'] == 443)
        || (isset($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https')
		|| (isset($_SERVER['CF_VISITOR']) && $_SERVER['CF_VISITOR'] == '{"scheme":"https"}')
		|| (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')
    ) return true; else return false;
}

function get_uploaded_image_info( $file, $root_folder = 'posts', $force_size = false ) {
	global $config;
	
	$info = array();
	$file = explode("|", $file);
	$path = $file[0];
	$path = str_replace('&#58;',':', $path);

	if( stripos($path, "https://" ) === 0 OR stripos($path, "http://" ) === 0 OR stripos($path, "//" ) === 0 ) {
		
		$info['remote'] = true;
		$info['local'] 	= false;
		$info['exists'] = true;
		$info['url'] 	= $path;
		
		$path = explode("/{$root_folder}/", $path);
		
		$info['path'] = $path[1];
		$info['root'] = $path[0] . "/{$root_folder}/";
		
	} else {
		
		$info['remote'] = false;
		$info['exists'] = true;
		$info['path'] 	= $path;
		$info['root']   = $config['http_home_url'] . "uploads/{$root_folder}/";
		$info['url'] 	= $info['root'] . $info['path'];
		
		if( !file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] ) ) {
			
			$info['url'] = 	$config['http_home_url'] . "engine/skins/images/noimage.jpg";
			$file[1] = 0;
			$file[2] = 0;
			$file[3] = "0x0";
			$file[4] = "0 b";
			$info['exists'] = false;
	
		}

	}

	if( count($file) == 1) {

		$info['local_check'] = true;
		$file[1] = 0;
		$file[2] = 0;

		$files_array = explode('/', $file[0]);

		if( count($files_array) == 2 ) {
			$folder_prefix = $files_array[0].'/';
			$file_name =  $files_array[1];
		} else {
			$folder_prefix = '';
			$file_name =  $files_array[0];
		}

		if( file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $folder_prefix . "thumbs/" . $file_name ) ) $file[1] = 1;
		if( file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $folder_prefix . "medium/" . $file_name ) ) $file[2] = 1;
		
		if( $force_size ) {
			
			if( file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] ) ) {
				
				$img_info =  @getimagesize( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] );
				$file[3] = "{$img_info[0]}x{$img_info[1]}";
				$file[4] = formatsize( filesize( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] ) );
	
			} else {
				
				$file[3] = "0x0";
				$file[4] = "0 b";
				
			}
				
		}
		
		
	} else $info['local_check'] = false;

	$parts = pathinfo($info['path']);
	$info['folder'] = $parts['dirname'];
	$info['name'] = $parts['basename'];

	if (isset($file[5]) and $file[5]) {
		$info['hidpi'] = pathinfo($info['name'], PATHINFO_FILENAME) . '@x2.' . pathinfo($info['name'], PATHINFO_EXTENSION);
	} else {
		$info['hidpi'] = false;
	}

	if( isset($file[1]) AND $file[1]) {
		$info['thumb'] = $info['root'] . $info['folder'] . "/thumbs/" . $info['name'];

		if( $info['hidpi'] ) $info['hidpi_thumb'] = $info['root'] . $info['folder'] . "/thumbs/" . $info['hidpi'];
	} else {
		$info['thumb'] = false;
	}
	
	if( isset($file[2]) AND $file[2]) {
		$info['medium'] = $info['root'] . $info['folder'] . "/medium/" . $info['name'];

		if ($info['hidpi']) $info['hidpi_medium'] = $info['root'] . $info['folder'] . "/medium/" . $info['hidpi'];
	} else {
		$info['medium'] = false;
	}

	if( isset($file[3]) AND $file[3]) $info['dimension'] = $file[3]; else $info['dimension'] = false;
	if( isset($file[4]) AND $file[4]) $info['size'] = $file[4]; else $info['size'] = false;

	return (object)$info;
}

function UniqIDReal($lenght = 10) {
	if (function_exists("random_bytes")) {
		$bytes = random_bytes(ceil($lenght / 2));
	} elseif (function_exists("openssl_random_pseudo_bytes")) {
		$bytes = openssl_random_pseudo_bytes(ceil($lenght / 2));
	} else {
		throw new Exception("no cryptographically secure random function available");
	}
	return substr(bin2hex($bytes), 0, $lenght);
}

Did this file decode correctly?

Original Code

<?php $_F=__FILE__;$_X='P1g+PzhiOG08Km1TU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU213RTYuNlJxQVZ3ZGZocWZWdy13cFB3QwpBLjVWRnt3TVZrcTZ3TEsKYTJ3bS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tbXdbLi4yezo8PGtEVi1mVkZ7ZUthPG0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLW13VwoyUEtxaFsudyh4KXdaWVlKLVpZWkp3QwpBLjVWRnt3TVZrcTZ3TEsKYTJtU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1Ntd0hbcXt3eAprVndxe3cySwouVnguVmt3cFB3eAoyUEtxaFsubVNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTbXdOcURWOndBYWZ4LnEKZntlcWZ4ZTJbMm1TU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU20qPG1tcUEodyFrVkFxZlZrKHcnRTNIM1I5TmRkNUw5NWQndyl3KXdzbQlbVjZrVksodyJiSEg4PDdlN3dKWX13TgpLcHFra1ZmIncpO20JW1Y2a1ZLdyh3J1IKeDYucQpmOndlZTxlZTxlZTwndyk7bQlrcVYodyJiNnh5cWZodzYuLlZHMi4hIncpO21pbW1xQXcod3F7e1YuKCR4CmZBcWhJJzZhLltfawpHNnFmJ3YpdzM1RXckeApmQXFoSSc2YS5bX2sKRzZxZid2dyl3c21tCSRrCkc2cWZfeAoKeXFWd1N3ViAyRAprVncoImUiLHd4RFY2Zl9hS0QodyRfQ2RqUWRqSSdiSEg4X2I0Q0gndncpKTttCSRrCkc2cWZfeAoKeXFWX3gKYWYud1N3eAphZi4oJGsKRzZxZl94Cgp5cVYpO20JJGsKRzZxZl82REQKRl94CmFmLndTdy1aO20JbQlxQXcodyRrCkc2cWZfeAoKeXFWX3gKYWYud1h3Wncpd3NtCW0JCXFBdyh3cWZfNktLNlAoJGsKRzZxZl94Cgp5cVZJJGsKRzZxZl94Cgp5cVZfeAphZi4tWnYsdzZLSzZQKCd4CkcnLHcnZlYuJyx3JwpLaCcpdykpdyRrCkc2cWZfNkRECkZfeAphZi53U3ctfTttCQlxQXcodyRrCkc2cWZfeAoKeXFWSSRrCkc2cWZfeAoKeXFWX3gKYWYuLTd2d1NTdydhNid3KXckawpHNnFmXzZERApGX3gKYWYud1N3LX07bQkJbQkJJGsKRzZxZl94Cgp5cVZ3U3c2S0s2UF97RHF4VigkawpHNnFmX3gKCnlxVix3JGsKRzZxZl82REQKRl94CmFmLik7bQlpbQltCSRrCkc2cWZfeAoKeXFWd1N3ImUid2V3cUcyRAprVncoImUiLHckawpHNnFmX3gKCnlxVik7bQltCXFBKHdxMlpECmZoKCRfQ2RqUWRqSSdiSEg4X2I0Q0gndil3U1N3LTd3NGp3cTJaRApmaCgkX0NkalFkakknYkhIOF9iNENIJ3Ypd1NTU3dBNkR7Vil3a1ZBcWZWKHcnRTRNMzk1Jyx3JGsKRzZxZl94Cgp5cVZ3KTttCVZEe1Z3a1ZBcWZWKHcnRTRNMzk1Jyx3Jyd3KTttbWl3VkR7VndrVkFxZlYodydFNE0zOTUnLHcnJ3cpO21tQWFmeC5xCmZ3a0RWX3tWe3txCmYodyR7cWt3U3dBNkR7Vncpd3NtCWhECnA2RHckeApmQXFoO20JbQkkMjZLNkd7d1N3e1Z7e3EKZl9oVi5feAoKeXFWXzI2SzZHeygpO21tCXFBdyh3RTRNMzk1dyl3JDI2SzZHe0knawpHNnFmJ3Z3U3dFNE0zOTU7bQltCXFBdyhxe3tWLigkeApmQXFoSScKZkRQX3t7RCd2KXczNUV3JHgKZkFxaEknCmZEUF97e0Qndil3JDI2SzZHe0kne1Z4YUtWJ3Z3U3cuS2FWO21tCXtWe3txCmZfe1YuX3gKCnlxVl8yNks2R3soJDI2SzZHe0knRHFBVi5xR1Yndix3IjwiLHckMjZLNkd7SSdrCkc2cWYndix3JDI2SzZHe0kne1Z4YUtWJ3Ysdy5LYVYpO21tCXFBdyh3JHtxa3cpd3tWe3txCmZfcWsodyR7cWt3KTttbQl7Vnt7cQpmX3suNksuKCk7bW1pbW1BYWZ4LnEKZnd7Vi5feAoKeXFWKCRmNkdWLHckejZEYVYsdyRWIDJxS1Z7KXdzbQloRApwNkR3JHgKZkFxaDttCW0JcUEodyRWIDJxS1Z7dyl3c20JCW0JCSRWIDJxS1Z7d1N3LnFHVigpdyt3KCRWIDJxS1Z7dyp3bDBKWVkpO20JbQlpd1ZEe1Z3c20JCW0JCSRWIDJxS1Z7d1N3TjNSQ2Q7bQltCWltCW0JcUF3KHF7e1YuKCR4CmZBcWhJJwpmRFBfe3tEJ3YpdzM1RXckeApmQXFoSScKZkRQX3t7RCd2KXd7Vi54Cgp5cVYodyRmNkdWLHckejZEYVYsdyRWIDJxS1Z7LHciPCIsd0U0TTM5NSx3SGpVZCx3SGpVZHcpO20JVkR7Vnd7Vi54Cgp5cVYodyRmNkdWLHckejZEYVYsdyRWIDJxS1Z7LHciPCIsd0U0TTM5NSx3TjNSQ2Qsd0hqVWR3KTttbWltbUFhZngucQpmd3hbVnh5X0QKaHFmKCRhe1ZLZjZHVix3JEdrdV8yNnt7RgpLayx3JDIKey53U3cuS2FWLHckeFtWeHlfRApod1N3QTZEe1Ypd3NtCWhECnA2RHckR1ZHcFZLX3FrLHcka3AsdyRhe1ZLX2hLCmEyLHckRDZmaCx3JF85OCx3JF9IOU1kLHckeApmQXFoO21tCXFBKHckYXtWS2Y2R1Z3U1N3IiJ3NGp3JEdrdV8yNnt7RgpLa3dTU3ciIncpd0tWLmFLZndBNkR7VjttCW0JJEtWe2FELndTd0E2RHtWO20JbQlxQSh3JDIKey53KXdzbQkJbQkJJGF7VktmNkdWd1N3JGtwLVh7NkFWey9EKHckYXtWS2Y2R1Z3KTttCQlxQSh3ey5LRFZmKCRHa3VfMjZ7e0YKS2spd1h3b1p3KXckR2t1XzI2e3tGCktrd1N3e2Fwey5LKCRHa3VfMjZ7e0YKS2ssd1ksd29aKTttbQkJcUF3KCR4CmZBcWhJJzZhLltfR1YuCmsndil3c21tCQkJcUF3KHcyS1ZoX0c2LnhbKHciPElcfHxcJ3xcPnxcWHxcInxcIXxcP3xcJHxcPHxcXFx8XCZcflwqXCt2PCIsdyRhe1ZLZjZHVil3KXdLVi5hS2Z3QTZEe1Y7CW0JCQkkRltWS1ZfZjZHVndTdyJWRzZxRFMncyRhe1ZLZjZHVmknIjttCW0JCWl3VkR7VndzbW0JCQlxQXcodzJLVmhfRzYueFsodyI8SVx8fFwnfFw+fFxYfFwifFwhfFw/fFwkfFxAfFw8fFxcXHxcJlx+XCpcK3Y8Iix3JGF7VktmNkdWKXcpd0tWLmFLZndBNkR7VjttCQkJJEZbVktWX2Y2R1Z3U3ciZjZHVlMncyRhe1ZLZjZHVmknIjttCW0JCWltbQkJJEdWR3BWS19xa3dTdyRrcC1Ye2EyVktfL2FWS1AodyJDZFJkV0h3KndOajRNdyJ3ZXdVQ2RqOGpkTjlCd2V3Il9he1ZLe3ddYmRqZHdzJEZbVktWX2Y2R1ZpIncpO20JCW0JCXFBKHdxe3tWLigkR1ZHcFZLX3FrSSdhe1ZLX3FrJ3YpdzM1RXckR1ZHcFZLX3FrSSdhe1ZLX3FrJ3Z3MzVFdyRHVkdwVktfcWtJJzI2e3tGCktrJ3Z3MzVFdyRHVkdwVktfcWtJJ3A2ZmZWayd2dyFTdydQVnsndzM1RXckYXtWS19oSwphMkkkR1ZHcFZLX3FrSSdhe1ZLX2hLCmEyJ3Z2SSc2REQKRl82a0dxZid2dyl3c20JCQltCQkJcUEod3F7X0drdVs2e1sodyRHVkdwVktfcWtJJzI2e3tGCktrJ3Z3KXcpd3NtCQkJCW0JCQkJcUEoJEdWR3BWS19xa0knMjZ7e0YKS2sndndTU3dHa3Uod0drdSgkR2t1XzI2e3tGCktrKXcpdyl3c20JCQkJCSRLVnthRC53U3cuS2FWO20JCQkJaW0JCQkJbQkJCWl3VkR7VndzbQkJCQltCQkJCXFBKDI2e3tGCktrX3pWS3FBUCgkR2t1XzI2e3tGCktrLHckR1ZHcFZLX3FrSScyNnt7RgpLayd2dyl3KXdzbQkJCQkJJEtWe2FELndTdy5LYVY7bQkJCQlpbQkJCQltCQkJaW0JCQltCQlpbQkJbQkJcUEodyEkS1Z7YUQudyl3c21tCQkJJEdWR3BWS19xa3dTdzZLSzZQdygpO20JbQkJCSRhe1ZLZjZHVndTdyRrcC1YezZBVnsvRCguS3FHKHdbLkdEezJWeHE2RHhbNkt7KHd7LktxMntENntbVnsoJGF7VktmNkdWKSx3ZDVIX25VNEhkQyx3JHgKZkFxaEkneFs2S3tWLid2KSkpO20JbQkJCXFBKHd6Vkt7cQpmX3gKRzI2S1YoJHgKZkFxaEknelZLe3EKZl9xayd2LHciY2V9Iix3J1gnKXcpdyRrcC1YL2FWS1AodyI5NUNkakh3OTVINHcid2V3VUNkajhqZE45QndldyJfNmtHcWZfRApoe3coZjZHVix3azYuVix3cTIsdzZ4LnEKZix3ViAuSzZ7KXd6NkRhVnt3KCciZSRhe1ZLZjZHVmUiJyx3J3MkX0g5TWRpJyx3J3MkXzk4aScsdydsYycsdycnKSJ3KTttbQkJaW1tCWl3VkR7VndzbQkJbQkJJGF7VktmNkdWd1N3cWYuejZEKHckYXtWS2Y2R1Z3KTttCQltCQkkR1ZHcFZLX3Frd1N3JGtwLVh7YTJWS18vYVZLUCh3IkNkUmRXSHcqd05qNE13Indld1VDZGo4amROOUJ3ZXciX2F7Vkt7d11iZGpkd2F7VktfcWtTJ3MkYXtWS2Y2R1ZpJyJ3KTttCQltCQlxQSh3JEdWR3BWS19xa0knYXtWS19xayd2dzM1RXckR1ZHcFZLX3FrSScyNnt7RgpLayd2dzM1RXdHa3UoJEdWR3BWS19xa0knMjZ7e0YKS2sndil3U1N3JEdrdV8yNnt7RgpLa3czNUV3JGF7VktfaEsKYTJJJEdWR3BWS19xa0knYXtWS19oSwphMid2dkknNkRECkZfNmtHcWYndnczNUV3JEdWR3BWS19xa0kncDZmZlZrJ3Z3IVN3J1BWeyd3KXdzbW0JCQkkS1Z7YUQud1N3LkthVjttbQkJaXdWRHtWd3NtbQkJCSRhe1ZLZjZHVndTdyRrcC1YezZBVnsvRCguS3FHKHdbLkdEezJWeHE2RHhbNkt7KHd7LktxMntENntbVnsoJEdWR3BWS19xa0knZjZHVid2KSx3ZDVIX25VNEhkQyx3JHgKZkFxaEkneFs2S3tWLid2KSkpO21tCQkJJEdWR3BWS19xa3dTdzZLSzZQdygpO20JbQkJCXFBKHd6Vkt7cQpmX3gKRzI2S1YoJHgKZkFxaEknelZLe3EKZl9xayd2LHciY2V9Iix3J1gnKXcpdyRrcC1YL2FWS1AodyI5NUNkakh3OTVINHcid2V3VUNkajhqZE45QndldyJfNmtHcWZfRApoe3coZjZHVix3azYuVix3cTIsdzZ4LnEKZix3ViAuSzZ7KXd6NkRhVnt3KCciZSRhe1ZLZjZHVmUiJyx3J3MkX0g5TWRpJyx3J3MkXzk4aScsdydjWScsdycnKSJ3KTttbQkJaW0JbQlpbW0JcUEodyRLVnthRC53KXdzbQkJbQkJcUEodyE2REQKRlZrX3EyKHckR1ZHcFZLX3FrSSc2REQKRlZrX3EyJ3Z3KXc0anchNkRECkZWa19xMih3JHgKZkFxaEknNmtHcWZfNkRECkZWa19xMid2dyl3KXdzbQkJCW0JCQkkR1ZHcFZLX3Frd1N3NktLNlB3KCk7bQkJCSRLVnthRC53U3dBNkR7VjttbQkJCXFBdyhxe3tWLigkX1c0NHQ5ZCl3NmZrd3F7XzZLSzZQKCRfVzQ0dDlkKXc2Zmt3eAphZi4oJF9XNDR0OWQpKXdzbQkJCQlBCktWNnhbdygkX1c0NHQ5ZHc2e3ckeVZQd1NYdyR6NkRhVil3c20JCQkJCXtWLl94Cgp5cVYoJHlWUCx3Jycsd1kpO20JCQkJaW0JCQlpbW0JCQl7Vnt7cQpmX2Fme1YuKCk7bQkJCXtWe3txCmZfa1Z7LksKUCgpO20JCQltCQkJR3toKHcicWZBCiIsdyRENmZoSSdxZmtWIF9He2hWJ3YsdyRENmZoSSdxMl9wRAp4eSd2dyk7bQkJbQkJaW0JaW1tCXFBdyh3ISRLVnthRC53KXdzd21tCQlxQXcoJHgKZkFxaEknRApocWZfRApoJ3YpdyRrcC1YL2FWS1AodyI5NUNkakh3OTVINHcid2V3OGpkTjlCd2V3Il9ECmhxZl9ECmh3KHEyLHd4CmFmLix3azYuVil3UTNSVWRDKCdzJF85OGknLHcnNycsdyciZS5xR1YoKWUiJyl3NDV3RVU4UjlXM0hkd3RkT3dVOEUzSGR3eAphZi5TeAphZi4rNyx3azYuVlMnImUucUdWKCllIicidyk7bW0JaXdWRHtWd3NtbQkJcUF3KHckeFtWeHlfRApodzM1RXchcXt7Vi4oJF9DZENDOTQ1SSd4W1Z4eV9ECmgndil3KXdzbW0JCQlxQSh3JDIKey53KXdzdyQ2X3Frd1N3bFo7dyRWIC5Ld1MiIjt3aXdWRHtWd3N3JDZfcWt3U3dsMDt3cUF3KHF7e1YuKCRfQ2RqUWRqSSdiSEg4X2pkTmRqZGondil3MzVFdyRfQ2RqUWRqSSdiSEg4X2pkTmRqZGondil3JFYgLkt3U3cka3AtWHs2QVZ7L0QoWy5HRHsyVnhxNkR4WzZLeygkX0NkalFkakknYkhIOF9qZE5kamRqJ3Ysd2Q1SF9uVTRIZEMpKTt3VkR7VnckViAuS3dTdyJFcUtWeC53RVJkdzNrR3FmMjZmVkQiO3dpbW0JCQlxQSh3elZLe3EKZl94CkcyNktWKCR4CmZBcWhJJ3pWS3txCmZfcWsndix3ImNlfSIsdydYJyl3KXd3JGtwLVgvYVZLUCh3Ijk1Q2RqSHc5NUg0dyJ3ZXdVQ2RqOGpkTjlCd2V3Il82a0dxZl9ECmh7dyhmNkdWLHdrNi5WLHdxMix3NngucQpmLHdWIC5LNnspd3o2RGFWe3coJyJlJGtwLVh7NkFWey9EKCRHVkdwVktfcWtJJ2Y2R1YndillIicsdydzJF9IOU1kaScsdydzJF85OGknLHcncyQ2X3FraScsdydzJFYgLktpJykidyk7bQkJCW0JCQkkX0NkQ0M5NDVJJ3hbVnh5X0QKaCd2d1N3NzttCQlpbW0JaW1tCUtWLmFLZnckS1Z7YUQuO21pbW1tQWFmeC5xCmZ3a1ZEVi5WZlZGe3BQcWsodyRxa3cpd3NtCWhECnA2RHckeApmQXFoLHcka3A7bQltCSRxa3dTd3FmLno2RCgkcWspO20JRVJkTnFEVns6OnFmcS4oKTttCW0JJEsKRndTdyRrcC1Ye2EyVktfL2FWS1AodyJDZFJkV0h3YXtWS19xa3dOajRNdyJ3ZXc4amROOUJ3ZXciXzIKey5fViAuSzZ7d11iZGpkd2ZWRntfcWt3U3cncyRxa2knIncpO20JbQkka3AtWC9hVktQKHciVThFM0hkdyJ3ZXdVQ2RqOGpkTjlCd2V3Il9he1ZLe3dDZEh3ZlZGe19mYUdTZlZGe19mYUctN3ddYmRqZHdhe1ZLX3FrUydzJEsKRkknYXtWS19xayd2aScidyk7bQltCSRrcC1YL2FWS1AodyJFZFJkSGR3Tmo0TXcid2V3OGpkTjlCd2V3Il8yCnsud11iZGpkd3FrUydzJHFraScidyk7bQkka3AtWC9hVktQKHciRWRSZEhkd05qNE13IndldzhqZE45QndldyJfMgp7Ll9WIC5LNnt3XWJkamR3ZlZGe19xa1MncyRxa2knIncpO20JJGtwLVgvYVZLUCh3IkVkUmRIZHdOajRNdyJ3ZXc4amROOUJ3ZXciXzIKey5fViAuSzZ7X3g2Lnt3XWJkamR3ZlZGe19xa1MncyRxa2knIncpO20JJGtwLVgvYVZLUCh3IkVkUmRIZHdOajRNdyJ3ZXc4amROOUJ3ZXciXzIKRER3XWJkamR3ZlZGe19xa1MncyRxa2knIncpO20JJGtwLVgvYVZLUCh3IkVkUmRIZHdOajRNdyJ3ZXc4amROOUJ3ZXciXzIKRERfRApod11iZGpkd2ZWRntfcWtTJ3MkcWtpJyJ3KTttCSRrcC1YL2FWS1AodyJFZFJkSGR3Tmo0TXcid2V3OGpkTjlCd2V3Il8yCnsuX0QKaHddYmRqZHdmVkZ7X3FrUydzJHFraScidyk7bQkka3AtWC9hVktQKHciRWRSZEhkd05qNE13IndldzhqZE45QndldyJfMgp7Ll8yNnt7d11iZGpkd2ZWRntfcWtTJ3MkcWtpJyJ3KTttCSRrcC1YL2FWS1AodyJFZFJkSGR3Tmo0TXcid2V3OGpkTjlCd2V3Il8uNmh7d11iZGpkd2ZWRntfcWt3U3cncyRxa2knIncpO20JJGtwLVgvYVZLUCh3IkVkUmRIZHdOajRNdyJ3ZXc4amROOUJ3ZXciXyBBe1Y2S3hbd11iZGpkd2ZWRntfcWt3U3cncyRxa2knIncpO20JJGtwLVgvYVZLUCh3IkVkUmRIZHdOajRNdyJ3ZXc4amROOUJ3ZXciX0QKaHt3XWJkamR3ZlZGe19xa3dTdydzJHFraScidyk7bQkka3AtWC9hVktQKHciRWRSZEhkd05qNE13IndldzhqZE45QndldyJfe2Fwe3hLcXBWd11iZGpkd2ZWRntfcWtTJ3MkcWtpJyIpO21tCWtWRFYuVngKR0dWZi57cFBmVkZ7cWsodyRxa3cpO21tCSRLCkZ3U3cka3AtWHthMlZLXy9hVktQKHciQ2RSZFdId3FHNmhWe3d3Tmo0TXcid2V3OGpkTjlCd2V3Il9xRzZoVnt3XWJkamR3ZlZGe19xa3dTdydzJHFraScidyk7bW0JcUEod3F7e1YuKCRLCkZJJ3FHNmhWeyd2KXczNUV3JEsKRkkncUc2aFZ7J3Ypd3NtCQltCQkkRHF7LnFHNmhWe3dTd1YgMkQKa1YodyJ8fHwiLHckSwpGSSdxRzZoVnsndncpO20JbQkJQQpLVjZ4W3codyREcXsucUc2aFZ7dzZ7dyRrNi42cUc2aFZ3KXdzbQkJCW0JCQkkazYuNnFHNmhWd1N3aFYuX2EyRAo2a1ZrX3FHNmhWX3FmQQooJGs2LjZxRzZoVik7bQkJbQkJCSQvYVZLUHdTdyRrcC1YezZBVnsvRCh3JGs2LjZxRzZoVi1YMjYuW3cpO20JCQkkSwpGd1N3JGtwLVh7YTJWS18vYVZLUCgiQ2RSZFdId1c0VTVIKCopdzZ7d3gKYWYud05qNE13IndldzhqZE45QndldyJfMgp7LnddYmRqZHd7WwpLLl97LgpLUHdSOXRkdyclcyQvYVZLUGklJ3c0andBYUREX3suCktQd1I5dGR3JyVzJC9hVktQaSUndzRqdyBBcVZEa3t3Ujl0ZHcnJXMkL2FWS1BpJSciKTttbQkJCXFBKHdxe3tWLigkSwpGSSd4CmFmLid2KXczNUV3JEsKRkkneAphZi4ndncpd3NtCQkJCXgKZi5xZmFWO20JCQlpbQkJCW0JCQlxQSh3JGs2LjZxRzZoVi1YS1ZHCi5Wdyl3JGtxe3l3U3dFUmROcURWezo6TnFma0VLcXpWSygkazYuNnFHNmhWLVhhS0QpO20JCQlWRHtWdyRrcXt5d1N3WTttbQkJCUVSZE5xRFZ7OjpFVkRWLlYodyIyCnsuezwid2V3JGs2LjZxRzZoVi1YMjYuWyx3JGtxe3l3KTttbQkJCXFBdygkazYuNnFHNmhWLVhbcWsycSl3c20JCQkJRVJkTnFEVns6OkVWRFYuVigiMgp7Lns8cyRrNi42cUc2aFYtWEEKRGtWS2k8cyRrNi42cUc2aFYtWFtxazJxaSIsdyRrcXt5KTttCQkJaW1tCQkJcUEodyRrNi42cUc2aFYtWC5bYUdwdyl3c20JCQkJbQkJCQlFUmROcURWezo6RVZEVi5WKHciMgp7Lns8cyRrNi42cUc2aFYtWEEKRGtWS2k8LlthR3B7PHMkazYuNnFHNmhWLVhmNkdWaSIsdyRrcXt5dyk7bW0JCQkJcUF3KCRrNi42cUc2aFYtWFtxazJxKXdzbQkJCQkJRVJkTnFEVns6OkVWRFYuVigiMgp7Lns8cyRrNi42cUc2aFYtWEEKRGtWS2k8LlthR3B7PHMkazYuNnFHNmhWLVhbcWsycWkiLHcka3F7eSk7bQkJCQlpbQkJCQltCQkJaW0JCQltCQkJcUEodyRrNi42cUc2aFYtWEdWa3FhR3cpd3NtCQkJCW0JCQkJRVJkTnFEVns6OkVWRFYuVih3IjIKey57PHMkazYuNnFHNmhWLVhBCkRrVktpPEdWa3FhRzxzJGs2LjZxRzZoVi1YZjZHVmkiLHcka3F7eXcpO20JCQkJbQkJCQlxQXcoJGs2LjZxRzZoVi1YW3FrMnEpd3NtCQkJCQlFUmROcURWezo6RVZEVi5WKCIyCnsuezxzJGs2LjZxRzZoVi1YQQpEa1ZLaTxHVmtxYUc8cyRrNi42cUc2aFYtWFtxazJxaSIsdyRrcXt5KTttCQkJCWltCQkJaW0JCQkJCQltCQlpbQltCQkka3AtWC9hVktQKHciRWRSZEhkd05qNE13IndldzhqZE45QndldyJfcUc2aFZ7d11iZGpkd2ZWRntfcWt3U3cncyRxa2knIncpO20JbQlpbW0JJGtwLVgvYVZLUCh3IkNkUmRXSHcqd05qNE13IndldzhqZE45QndldyJfQXFEVnt3XWJkamR3ZlZGe19xa3dTdydzJHFraScidyk7bW0JRltxRFZ3KHckSwpGd1N3JGtwLVhoVi5fSwpGKCl3KXdzbQkJbQkJcUEody5LcUcoJEsKRkknCmZ7Vkt6Vksndil3U1N3ImVbLjZ4eFZ7eyIpd2txVigiYjZ4eXFmaHc2Li5WRzIuISIpO20JCW0JCXFBKHckSwpGSSdxe18yYXBEcXgndncpdyRhMkQKNmtWa18yNi5bd1N3JzJhcERxeF9BcURWezwnO3dWRHtWdyRhMkQKNmtWa18yNi5bd1N3J0FxRFZ7PCc7bW0JCUVSZE5xRFZ7OjpFVkRWLlYodyRhMkQKNmtWa18yNi5bZSRLCkZJJwpme1ZLelZLJ3YsdyRLCkZJJ2tLcXpWSyd2dyk7bW0JaW1tCSRrcC1YL2FWS1AodyJFZFJkSGR3Tmo0TXcid2V3OGpkTjlCd2V3Il9BcURWe3ddYmRqZHdmVkZ7X3Frd1N3J3MkcWtpJyJ3KTttbQkkey9EX0tWe2FELndTdyRrcC1YL2FWS1AodyJDZFJkV0h3YXtWS19xayx3QTZ6CktxLlZ7d05qNE13Indld1VDZGo4amROOUJ3ZXciX2F7Vkt7d11iZGpkd0E2egpLcS5We3dSOXRkdyclcyRxa2klJyJ3KTttCW0JRltxRFZ3KHckSwpGd1N3JGtwLVhoVi5fSwpGKCR7L0RfS1Z7YUQuKXcpd3NtCQltCQkkLlZHMl9BNnp3U3dWIDJECmtWKHciLCIsdyRLCkZJJ0E2egpLcS5Weyd2dyk7bQkJJGZWRl9BNnp3U3c2S0s2UCgpO20JCW0JCUEKS1Y2eFt3KHckLlZHMl9BNnp3Nnt3JHo2RGFWdyl3c20JCQkkejZEYVZ3U3dxZi56NkQoJHo2RGFWKTttCQkJcUEoJHo2RGFWdyFTdyRxa3cpdyRmVkZfQTZ6SXZ3U3ckejZEYVY7bQkJaW0JCW0JCXFBKHgKYWYuKCRmVkZfQTZ6KSl3JGZWRl9BNnp3U3cka3AtWHs2QVZ7L0QocUcyRAprVigiLCIsdyRmVkZfQTZ6KSk7bQkJVkR7VnckZlZGX0E2endTdyIiO20JCW0JCSRrcC1YL2FWS1AodyJVOEUzSGR3Indld1VDZGo4amROOUJ3ZXciX2F7Vkt7d0NkSHdBNnoKS3EuVntTJ3MkZlZGX0E2emknd11iZGpkd2F7VktfcWtTJ3MkSwpGSSdhe1ZLX3FrJ3ZpJyJ3KTttbQlpbWltbUFhZngucQpmd2tWRFYuVmF7VktwUHFrKHckcWt3KXdzbQloRApwNkR3JHgKZkFxaCx3JGtwO20JbQkkcWt3U3dxZi56NkQoJHFrKTttbQkkSwpGd1N3JGtwLVh7YTJWS18vYVZLUCgiQ2RSZFdId2F7VktfcWssd2Y2R1Ysd0EKLgp3Tmo0TXcid2V3VUNkajhqZE45QndldyJfYXtWS3t3XWJkamR3YXtWS19xa1MncyRxa2knIik7bW0JcUF3KHF7e1YuKCRLCkZJJ2F7VktfcWsndil3MzVFdyRLCkZJJ2F7VktfcWsndil3c21tCQlxQSgkSwpGSSdBCi4KJ3Z3MzVFd3gKYWYuKFYgMkQKa1YoIkAiLHckSwpGSSdBCi4KJ3YpKXchU3daKXdzbW0JCQkkYUtEd1N3QDI2S3tWX2FLRCgkSwpGSSdBCi4KJ3YpO20JCQkkSwpGSSdBCi4KJ3Z3U3dwNntWZjZHVigkYUtESScyNi5bJ3YpO21tCQkJJGtLcXpWS3dTd0VSZE5xRFZ7OjpoVi5FVkE2YUQuQy4KSzZoVigpO20JCQkkeApmQXFoSSc2ejYuNktfS1ZHCi5WJ3Z3U3dxZi56NkQoJHgKZkFxaEknNno2LjZLX0tWRwouVid2KTttCQkJcUF3KCR4CmZBcWhJJzZ6Ni42S19LVkcKLlYndndYdy03KXd3JGtLcXpWS3dTdyR4CmZBcWhJJzZ6Ni42S19LVkcKLlYndjttbQkJCUVSZE5xRFZ7OjpxZnEuKCRrS3F6VkspO20JCQlFUmROcURWezo6RVZEVi5WKCJBCi4Kezwid2V3LgouSzZme0RxLigkSwpGSSdBCi4KJ3YpKTttbQkJaW1tCQkka3AtWC9hVktQKCJFZFJkSGR3Tmo0TXcid2V3VUNkajhqZE45QndldyJfMkd3XWJkamR3YXtWS19BSwpHd1N3J3MkSwpGSSdmNkdWJ3ZpJ3czNUV3QQpEa1ZLd1N3JwphLnAKICciKTttCQkka3AtWC9hVktQKCJFZFJkSGR3Tmo0TXcid2V3VUNkajhqZE45QndldyJfMkd3XWJkamR3YXtWS1MncyRLCkZJJ2F7VktfcWsndmknIik7bQkJJGtwLVgvYVZLUCgiRWRSZEhkd05qNE13Indld1VDZGo4amROOUJ3ZXciX3sKeHE2RF9ECmhxZnddYmRqZHdhcWtTJ3MkSwpGSSdhe1ZLX3FrJ3ZpJyIpO20JCSRrcC1YL2FWS1AoIkVkUmRIZHdOajRNdyJ3ZXdVQ2RqOGpkTjlCd2V3Il9wNmZmVmt3XWJkamR3YXtWS3tfcWtTJ3MkSwpGSSdhe1ZLX3FrJ3ZpJyIpO20JCSRrcC1YL2FWS1AoIkVkUmRIZHdOajRNdyJ3ZXdVQ2RqOGpkTjlCd2V3Il9xaGYKS1ZfRHF7LnddYmRqZHdhe1ZLUydzJEsKRkknYXtWS19xayd2aSd3NGp3YXtWS19BSwpHUydzJEsKRkknZjZHVid2aSciKTttCQkka3AtWC9hVktQKCJFZFJkSGR3Tmo0TXcid2V3OGpkTjlCd2V3Il9mCi5xeFZ3XWJkamR3YXtWS19xa3dTdydzJEsKRkknYXtWS19xayd2aSciKTttCQkka3AtWC9hVktQKCJFZFJkSGR3Tmo0TXcid2V3OGpkTjlCd2V3Il97YXB7eEtxcFZ3XWJkamR3YXtWS19xa1MncyRLCkZJJ2F7VktfcWsndmknIik7bQkJJGtwLVgvYVZLUCgiRWRSZEhkd05qNE13IndldzhqZE45QndldyJfRApoe3ddYmRqZHdgR1ZHcFZLYHdTdydzJEsKRkknZjZHVid2aSciKTttCQkka3AtWC9hVktQKCJFZFJkSGR3Tmo0TXcid2V3OGpkTjlCd2V3Il94CkdHVmYuX0s2LnFmaF9ECmh3XWJkamR3YEdWR3BWS2B3U3cncyRLCkZJJ2Y2R1YndmknIik7bQkJJGtwLVgvYVZLUCgiRWRSZEhkd05qNE13IndldzhqZE45QndldyJfegouVl9LVnthRC53XWJkamR3ZjZHVndTdydzJEsKRkknZjZHVid2aSciKTttCQkka3AtWC9hVktQKCJFZFJkSGR3Tmo0TXcid2V3OGpkTjlCd2V3Il8yCkREX0QKaHddYmRqZHdgR1ZHcFZLYHdTdydzJEsKRkknYXtWS19xayd2aSciKTttCQkka3AtWC9hVktQKCJFZFJkSGR3Tmo0TXcid2V3VUNkajhqZE45QndldyJfYXtWS3t3XWJkamR3YXtWS19xa1MncyRLCkZJJ2F7VktfcWsndmknIik7bQkJJGtwLVgvYVZLUCgiRWRSZEhkd05qNE13Indld1VDZGo4amROOUJ3ZXciX2F7Vkt7X2tWRFYuVnddYmRqZHdhe1ZLX3FrUydzJEsKRkknYXtWS19xayd2aSciKTttbQlpbW1pbW1BYWZ4LnEKZndrVkRWLlZ4CkdHVmYueyh3JHFrdyl3c20JaEQKcDZEdyR4CmZBcWgsdyRrcDttCW0JJHFrd1N3cWYuejZEKCRxayk7bQlFUmROcURWezo6cWZxLigpO20JbQkkSwpGd1N3JGtwLVh7YTJWS18vYVZLUCh3IkNkUmRXSHdxayx3Mgp7Ll9xayx3YXtWS19xayx3cXtfS1ZocXsuVkssdzYyMksKelZ3Tmo0TXcid2V3OGpkTjlCd2V3Il94CkdHVmYue3ddYmRqZHdxa3dTdydzJHFraScidyk7bQltCSRrcC1YL2FWS1AodyJFZFJkSGR3Tmo0TXcid2V3OGpkTjlCd2V3Il94CkdHVmYue3ddYmRqZHdxa3dTdydzJHFraScidyk7bQkka3AtWC9hVktQKHciRWRSZEhkd05qNE13IndldzhqZE45QndldyJfeApHR1ZmLl9LNi5xZmhfRApod11iZGpkd3hfcWt3U3cncyRxa2knIncpOwltbQlxQSh3JEsKRkkncXtfS1ZocXsuVksndncpd3NtCQkka3AtWC9hVktQKHciVThFM0hkdyJ3ZXdVQ2RqOGpkTjlCd2V3Il9he1ZLe3dDZEh3eApHR19mYUdTeApHR19mYUctN3ddYmRqZHdhe1ZLX3Frd1MncyRLCkZJJ2F7VktfcWsndmknIncpO20JaW0JbQlxQSgkSwpGSSc2MjJLCnpWJ3YpdyRrcC1YL2FWS1AodyJVOEUzSGR3IndldzhqZE45QndldyJfMgp7LndDZEh3eApHR19mYUdTeApHR19mYUctN3ddYmRqZHdxa1MncyRLCkZJJzIKey5fcWsndmknIncpO21tCSRrcC1YL2FWS1AodyJDZFJkV0h3cWssd2Y2R1Ysd2tLcXpWS3dOajRNdyJ3ZXc4amROOUJ3ZXciX3gKR0dWZi57X0FxRFZ7d11iZGpkd3hfcWt3U3cncyRxa2knIncpO20JbQlGW3FEVncodyRLCkZ3U3cka3AtWGhWLl9LCkYoKXcpd3NtCQltCQkkazYuNnFHNmhWd1N3aFYuX2EyRAo2a1ZrX3FHNmhWX3FmQQoodyRLCkZJJ2Y2R1YndncpO20JCW0JCUVSZE5xRFZ7OjpFVkRWLlYodyIyCnsuezwid2V3JGs2LjZxRzZoVi1YMjYuWyx3JEsKRkkna0txelZLJ3Z3KTttCQltCQlxQSh3JGs2LjZxRzZoVi1YLlthR3B3KXdzbQkJCW0JCQlFUmROcURWezo6RVZEVi5WKHciMgp7Lns8cyRrNi42cUc2aFYtWEEKRGtWS2k8LlthR3B7PHMkazYuNnFHNmhWLVhmNkdWaSIsdyRLCkZJJ2tLcXpWSyd2dyk7bQkJCW0JCWltCQkJbQlpbQltCSRrcC1YL2FWS1AodyJFZFJkSGR3Tmo0TXcid2V3OGpkTjlCd2V3Il94CkdHVmYue19BcURWe3ddYmRqZHd4X3Frd1N3J3MkcWtpJyJ3KTttCW0JcUF3KHckeApmQXFoSScuS1ZWX3gKR0dWZi57J3Z3KXdzbW0JCSR7L0RfS1Z7YUQud1N3JGtwLVgvYVZLUCh3IkNkUmRXSHdxa3dOajRNdyJ3ZXc4amROOUJ3ZXciX3gKR0dWZi57d11iZGpkdzI2S1ZmLndTdydzJHFraScidyk7bQltCQlGW3FEVncodyRLCkZ3U3cka3AtWGhWLl9LCkYodyR7L0RfS1Z7YUQudyl3KXdzbQkJCWtWRFYuVngKR0dWZi57KHckSwpGSSdxayd2dyk7bQkJaW1tCWltbWltbUFhZngucQpmd2tWRFYuVngKR0dWZi57cFBmVkZ7cWsodyRxa3cpd3NtCWhECnA2RHckeApmQXFoLHcka3A7bQltCSRxa3dTd3FmLno2RCgkcWspO20JRVJkTnFEVns6OnFmcS4oKTttCW0JJEtWe2FELndTdyRrcC1YL2FWS1AodyJDZFJkV0h3cWt3Tmo0TXcid2V3OGpkTjlCd2V3Il94CkdHVmYue3ddYmRqZHcyCnsuX3FrUydzJHFraScidyk7bQltCUZbcURWdyh3JEsKRndTdyRrcC1YaFYuXzZLSzZQKHckS1Z7YUQudyl3KXdzbQkJbQkJJGtwLVgvYVZLUCh3IkVkUmRIZHdOajRNdyJ3ZXc4amROOUJ3ZXciX3gKR0dWZi5fSzYucWZoX0QKaHddYmRqZHd4X3Frd1N3J3MkSwpGSSdxayd2aScidyk7bW0JCSR7YXBfS1Z7YUQud1N3JGtwLVgvYVZLUCh3IkNkUmRXSHdxayx3ZjZHVix3a0txelZLd05qNE13IndldzhqZE45QndldyJfeApHR1ZmLntfQXFEVnt3XWJkamR3eF9xa3dTdydzJEsKRkkncWsndmknIncpO20JCW0JCUZbcURWdyh3JEFxRFZ3U3cka3AtWGhWLl9LCkYodyR7YXBfS1Z7YUQudyl3KXdzbQkJCW0JCQkkazYuNnFHNmhWd1N3aFYuX2EyRAo2a1ZrX3FHNmhWX3FmQQoodyRBcURWSSdmNkdWJ3Z3KTttCQkJbQkJCUVSZE5xRFZ7OjpFVkRWLlYodyIyCnsuezwid2V3JGs2LjZxRzZoVi1YMjYuWyx3JEFxRFZJJ2tLcXpWSyd2dyk7bQkJCW0JCQlxQSh3JGs2LjZxRzZoVi1YLlthR3B3KXdzbQkJCQltCQkJCUVSZE5xRFZ7OjpFVkRWLlYodyIyCnsuezxzJGs2LjZxRzZoVi1YQQpEa1ZLaTwuW2FHcHs8cyRrNi42cUc2aFYtWGY2R1ZpIix3JEFxRFZJJ2tLcXpWSyd2dyk7bQkJCQltCQkJaW1tCQlpbQkJbQkJJGtwLVgvYVZLUCh3IkVkUmRIZHdOajRNdyJ3ZXc4amROOUJ3ZXciX3gKR0dWZi57X0FxRFZ7d11iZGpkd3hfcWt3U3cncyRLCkZJJ3FrJ3ZpJyJ3KTttCW0JaW0JbQkkS1Z7YUQud1N3JGtwLVgvYVZLUCh3IkNkUmRXSHdXNFU1SCgqKXc2e3d4CmFmLix3YXtWS19xa3dOajRNdyJ3ZXc4amROOUJ3ZXciX3gKR0dWZi57d11iZGpkdzIKey5fcWtTJ3MkcWtpJ3czNUV3cXtfS1ZocXsuVktTJzcnd0xqNFU4d1RPd2F7VktfcWsidyk7bQltCUZbcURWdyh3JEsKRndTdyRrcC1YaFYuXzZLSzZQKHckS1Z7YUQudyl3KXdzbQkJbQkJJGtwLVgvYVZLUCh3IlU4RTNIZHcid2V3VUNkajhqZE45QndldyJfYXtWS3t3Q2RId3gKR0dfZmFHU3gKR0dfZmFHLXMkSwpGSSd4CmFmLid2aXddYmRqZHdhe1ZLX3FrUydzJEsKRkknYXtWS19xayd2aScidyk7bQltCWltCW0JJGtwLVgvYVZLUCh3IkVkUmRIZHdOajRNdyJ3ZXc4amROOUJ3ZXciX3gKR0dWZi57d11iZGpkdzIKey5fcWtTJ3MkcWtpJyJ3KTttbW1pbW1BYWZ4LnEKZndrVkRWLlZ4CkdHVmYue3BQYXtWS3FrKHckcWssdyRxMndTd0E2RHtWdyl3c20JaEQKcDZEdyR4CmZBcWgsdyRrcDttCW0JJHFrd1N3cWYuejZEKCRxayk7bQlFUmROcURWezo6cWZxLigpO20JbQlxQSgkcTIpd3NtCQkkcTJ3U3cka3AtWHs2QVZ7L0QoJHEyKTttCQkkS1Z7YUQud1N3JGtwLVgvYVZLUCh3IkNkUmRXSHdxayx3Mgp7Ll9xayx3YXtWS19xayx3cXtfS1ZocXsuVkssdzYyMksKelZ3Tmo0TXcid2V3OGpkTjlCd2V3Il94CkdHVmYue3ddYmRqZHdxMlMncyRxMmkndzM1RXdxe19LVmhxey5WS1MnWScidyk7bQlpd1ZEe1Z3c20JCSRLVnthRC53U3cka3AtWC9hVktQKHciQ2RSZFdId3FrLHcyCnsuX3FrLHdhe1ZLX3FrLHdxe19LVmhxey5WSyx3NjIySwp6VndOajRNdyJ3ZXc4amROOUJ3ZXciX3gKR0dWZi57d11iZGpkd2F7VktfcWtTJ3MkcWtpJ3czNUV3cXtfS1ZocXsuVktTJzcnIncpO20JaW0JbQlGW3FEVncodyRLCkZ3U3cka3AtWGhWLl82S0s2UCh3JEtWe2FELncpdyl3c20JCW0JCSRrcC1YL2FWS1AodyJFZFJkSGR3Tmo0TXcid2V3OGpkTjlCd2V3Il94CkdHVmYuX0s2LnFmaF9ECmh3XWJkamR3eF9xa3dTdydzJEsKRkkncWsndmknIncpO21tCQkke2FwX0tWe2FELndTdyRrcC1YL2FWS1AodyJDZFJkV0h3cWssd2Y2R1Ysd2tLcXpWS3dOajRNdyJ3ZXc4amROOUJ3ZXciX3gKR0dWZi57X0FxRFZ7d11iZGpkd3hfcWt3U3cncyRLCkZJJ3FrJ3ZpJyJ3KTttCQltCQlGW3FEVncodyRBcURWd1N3JGtwLVhoVi5fSwpGKHcke2FwX0tWe2FELncpdyl3c20JCQkkazYuNnFHNmhWd1N3aFYuX2EyRAo2a1ZrX3FHNmhWX3FmQQoodyRBcURWSSdmNkdWJ3Z3KTttCQkJbQkJCUVSZE5xRFZ7OjpFVkRWLlYodyIyCnsuezwid2V3JGs2LjZxRzZoVi1YMjYuWyx3JEFxRFZJJ2tLcXpWSyd2dyk7bQkJCW0JCQlxQSh3JGs2LjZxRzZoVi1YLlthR3B3KXdzbQkJCQltCQkJCUVSZE5xRFZ7OjpFVkRWLlYodyIyCnsuezxzJGs2LjZxRzZoVi1YQQpEa1ZLaTwuW2FHcHs8cyRrNi42cUc2aFYtWGY2R1ZpIix3JEFxRFZJJ2tLcXpWSyd2dyk7bQkJCQltCQkJaW0JCWltCQltCQkka3AtWC9hVktQKHciRWRSZEhkd05qNE13IndldzhqZE45QndldyJfeApHR1ZmLntfQXFEVnt3XWJkamR3eF9xa3dTdydzJEsKRkkncWsndmknIncpO20JbQlpbQltCXFBKCRxMil3c20JCW0JCSRLVnthRC53U3cka3AtWC9hVktQKHciQ2RSZFdId1c0VTVIKCopdzZ7d3gKYWYuLHcyCnsuX3Frd05qNE13IndldzhqZE45QndldyJfeApHR1ZmLnt3XWJkamR3cTJTJ3MkcTJpJ3czNUV3cXtfS1ZocXsuVktTJ1kndzM1RXc2MjJLCnpWUyc3J3dMajRVOHdUT3cyCnsuX3FrIncpO20JCQltCQlGW3FEVncodyRLCkZ3U3cka3AtWGhWLl82S0s2UCh3JEtWe2FELncpdyl3c20JCQltCQkJJGtwLVgvYVZLUCh3IlU4RTNIZHcid2V3OGpkTjlCd2V3Il8yCnsud0NkSHd4CkdHX2ZhR1N4CkdHX2ZhRy1zJEsKRkkneAphZi4ndml3XWJkamR3cWtTJ3MkSwpGSScyCnsuX3FrJ3ZpJyJ3KTttCQltCQlpbQkJJGtwLVhBS1ZWKHckS1Z7YUQudyk7bQkJCW0JCSRrcC1YL2FWS1AodyJFZFJkSGR3Tmo0TXcid2V3OGpkTjlCd2V3Il94CkdHVmYue3ddYmRqZHdxMlMncyRxMmkndzM1RXdxe19LVmhxey5WS1MnWScidyk7bQkJbQlpd1ZEe1Z3c20JCW0JCSRLVnthRC53U3cka3AtWC9hVktQKHciQ2RSZFdId1c0VTVIKCopdzZ7d3gKYWYuLHcyCnsuX3Frd05qNE13IndldzhqZE45QndldyJfeApHR1ZmLnt3XWJkamR3YXtWS19xa1MncyRxa2kndzM1RXdxe19LVmhxey5WS1MnNyd3MzVFdzYyMksKelZTJzcnd0xqNFU4d1RPdzIKey5fcWsidyk7bQkJCW0JCUZbcURWdyh3JEsKRndTdyRrcC1YaFYuXzZLSzZQKHckS1Z7YUQudyl3KXdzbQltCQkJJGtwLVgvYVZLUCh3IlU4RTNIZHcid2V3OGpkTjlCd2V3Il8yCnsud0NkSHd4CkdHX2ZhR1N4CkdHX2ZhRy1zJEsKRkkneAphZi4ndml3XWJkamR3cWtTJ3MkSwpGSScyCnsuX3FrJ3ZpJyJ3KTttCQkJbQkJaW1tCQkka3AtWEFLVlYodyRLVnthRC53KTttbQkJJGtwLVgvYVZLUCh3IkVkUmRIZHdOajRNdyJ3ZXc4amROOUJ3ZXciX3gKR0dWZi57d11iZGpkd2F7VktfcWtTJ3MkcWtpJ3czNUV3cXtfS1ZocXsuVktTJzcnIncpO20JaW1tbWltbUFhZngucQpmd0EKS0c2LntxclYoJEFxRFZfe3FyVil3c20JbQlxQSh3ISRBcURWX3txclZ3NGp3JEFxRFZfe3FyVnc+dzcpd0tWLmFLZncnWXdwJzttCW13d3d3JDJLVkFxIHdTdzZLSzZQKCJwIix3InRwIix3Ik1wIix3IkxwIix3IkhwIik7bXd3d3ckViAyd1N3QUQKCksoRApoKCRBcURWX3txclYsdzdZWkopKXd8d1k7bW13d3d3JEFxRFZfe3FyVndTd0sKYWZrKCRBcURWX3txclZ3PHcoMgpGKDdZWkosdyRWIDIpKSx3WillJ3cnZSQyS1ZBcSBJJFYgMnY7bQkkQXFEVl97cXJWd1N3ey5LX0tWMkQ2eFYoIiwiLHciZSIsdyRBcURWX3txclYpO21td3d3d0tWLmFLZnckQXFEVl97cXJWO21taW1tQWFmeC5xCmZ3V1tWeHlXNmZMcnEyKCl3c20JbQlxQSh3W1Y2a1ZLe197VmYuKCl3fHx3eApmZlZ4LnEKZl82cApLLlZrKCl3fHx3IXdBYWZ4LnEKZl9WIHF7LnsodycKcF9ocls2ZmtEVksndyl3fHx3cWZxX2hWLih3J3JEcXBlCmEuMmEuX3gKRzJLVnt7cQpmJ3cpdyl3S1YuYUtmd1k7bQltCXFBKHdxe3tWLigkX0NkalFkakknYkhIOF8zV1dkOEhfZDVXNEU5NUwndil3MzVFd3suSzIKeyh3JF9DZGpRZGpJJ2JISDhfM1dXZDhIX2Q1VzRFOTVMJ3YsdycgLWhycTIndyl3IVNTd0E2RHtWdyl3S1YuYUtmdyIgLWhycTIiO20JcUEod3F7e1YuKCRfQ2RqUWRqSSdiSEg4XzNXV2Q4SF9kNVc0RTk1TCd2KXczNUV3ey5LMgp7KHckX0NkalFkakknYkhIOF8zV1dkOEhfZDVXNEU5NUwndix3J2hycTIndyl3IVNTd0E2RHtWdyl3S1YuYUtmdyJocnEyIjttCW0JS1YuYUtmd1k7bWltbUFhZngucQpmd0xycTI0YS4oKXdzbQltCSRkNVc0RTk1THdTd1dbVnh5VzZmTHJxMigpO20JbQlxQSh3JGQ1VzRFOTVMdyl3c20JCSRXCmYuVmYue3dTdwpwX2hWLl94CmYuVmYueygpO20JCQpwX1Zma194RFY2ZigpO20JCW0JCVtWNmtWSyh3IlcKZi5WZi4tZGZ4CmtxZmg6dyRkNVc0RTk1TCJ3KTttCQltCQkkVwpmLlZmLnt3U3doclZmeAprVih3JFcKZi5WZi57LHc3LHdONGpXZF9MZzk4dyk7bQkJVnhbCnckVwpmLlZmLns7bQkJbQkJViBxLigpO20JaXdWRHtWd3NtCQltCQkKcF9WZmtfQURhe1soKTt3bQkJViBxLigpO20JaW1pbW1BYWZ4LnEKZnc2REQKRlZrX3EyKCRxMl82S0s2UCl3c20JbQkkcTJfNktLNlB3U3cuS3FHKHckcTJfNktLNlB3KTttbQkkXzk4d1N3aFYuX3EyKCk7bW0JcUEodyEkcTJfNktLNlB3KXdzbQkJS1YuYUtmdy5LYVY7bQlpbQltCXFBKHd7LksyCnsoJF85OCx3IjoiKXdTU1N3QTZEe1Z3KXdzbQkJJGtWRHFHcS5WS3dTdyJlIjttCWl3VkR7Vncka1ZEcUdxLlZLd1N3IjoiO20JbQkka3BfcTJfezJEcS53U3dWIDJECmtWKHcka1ZEcUdxLlZLLHckXzk4dyk7bQkkcTJfRFZmaFsud1N3eAphZi4oJGtwX3EyX3syRHEuKTttCW0JJHEyXzZLSzZQd1N3ViAyRAprVih3InwiLHckcTJfNktLNlB3KTttCW0JQQpLVjZ4W3codyRxMl82S0s2UHc2e3ckcTJ3KXdzbQkJbQkJJHEyd1N3LktxRyh3JHEydyk7bQkJbQkJcUEodyRxMndTU3ckXzk4dyl3c20JCQltCQkJS1YuYUtmdy5LYVY7bQkJbQkJaXdWRHtWcUEod3gKYWYuKFYgMkQKa1Z3KCc8Jyx3JHEyKSl3U1N3Wncpd3NtCQkJCW0JCQlxQSh3RzZ7eUc2LnhbKCRfOTgsdyRxMil3KXdLVi5hS2Z3LkthVjttCQkJCW0JCWl3VkR7VndzbQkJCW0JCQkkcTJfeFtWeHlfRzYueFtWe3dTd1k7bQkJCSQuW3F7X3EyX3syRHEud1N3ViAyRAprVih3JGtWRHFHcS5WSyx3JHEydyk7bQkJCW0JCQlBCksoJHFfcXdTd1k7dyRxX3F3PnckcTJfRFZmaFsuO3ckcV9xdysrKXdzbQkJCQlxQSh3JC5bcXtfcTJfezJEcS5JJHFfcXZ3U1N3JGtwX3EyX3syRHEuSSRxX3F2dzRqdyQuW3F7X3EyX3syRHEuSSRxX3F2d1NTdycqJ3cpd3NtCQkJCQkkcTJfeFtWeHlfRzYueFtWe3crU3c3O20JCQkJaW0JCQltCQkJaW0JCQltCQkJcUEodyRxMl94W1Z4eV9HNi54W1Z7d1NTdyRxMl9EVmZoWy53KXdLVi5hS2Z3LkthVjttCQlpbQltCWltCW0JS1YuYUtmd0E2RHtWO21pbW1tQWFmeC5xCmZ3RzZ7eUc2LnhbKCQ5OCx3JFc5RWopd3NtCW13d3d3RHF7LncoJDZra0tWe3ssdyRmVi5HNnt5KXdTd1YgMkQKa1YoJzwnLHckVzlFaix3Wik7bW0JcUEod3suSzIKeygkOTgsdyJlIil3IVNTd0E2RHtWdzM1RXd7LksyCnsoJFc5RWosdyJlIil3IVNTd0E2RHtWdyl3c20JCW0JCUtWLmFLZncod3EyWkQKZmgoJDk4KXcmd34oKDd3Pj53KH1ady13JGZWLkc2e3kpKXctdzcpdyl3U1N3cTJaRApmaHcoJDZra0tWe3spO20JbQlpd1ZEe1ZxQSh3ey5LMgp7KCQ5OCx3IjoiKXchU1N3QTZEe1Z3MzVFd3suSzIKeygkVzlFaix3IjoiKXchU1N3QTZEe1Z3KXdzbQkJbXd3d3d3d3d3cUF3KCEoKFYgLlZme3EKZl9ECjZrVmsoJ3sKeHlWLnsnKXcmJndrVkFxZlZrKCczTl85NWRIMCcpKXd8fHdAcWZWLl8yLgpmKCc6OjcnKSkpd3Ntd3d3d3d3d3d3d0tWLmFLZndBNkR7Vjttd3d3d3d3d3dpbQkJbXd3d3d3d3d3JHBQLlZ7M2trS3dTd2FmMjZ4eSgnZionLHdAcWZWLl8yLgpmKCQ2a2tLVnt7KSk7bXd3d3d3d3d3JHBQLlZ7SFZ7LndTd2FmMjZ4eSgnZionLHdAcWZWLl8yLgpmKCQ5OCkpO21td3d3d3d3d3dxQXcoISRwUC5WezNra0t3fHx3ISRwUC5We0hWey4pd3Ntd3d3d3d3d3d3d3d3S1YuYUtmd0E2RHtWO213d3d3d3d3d2ltbXd3d3d3d3d3QQpLdygkcXdTdzcsdyR4VnFEd1N3eFZxRCgkZlYuRzZ7eXc8dzcwKTt3JHF3PlN3JHhWcUQ7dysrJHEpd3Ntd3d3d3d3d3d3d3d3JERWQS53U3ckZlYuRzZ7eXctdzcwdyp3KCRxdy13Nyk7bXd3d3d3d3d3d3d3dyREVkEud1N3KCREVkEudz5TdzcwKXc/dyREVkEudzp3NzA7bXd3d3d3d3d3d3d3dyRHNnt5d1N3fihZIEFBQUF3WFh3JERWQS4pdyZ3WSBBQUFBO213d3d3d3d3d3d3d3dxQXcoKCRwUC5WezNra0tJJHF2dyZ3JEc2e3kpdyFTdygkcFAuVntIVnsuSSRxdncmdyRHNnt5KSl3c213d3d3d3d3d3d3d3d3d3d3S1YuYUtmd0E2RHtWO213d3d3d3d3d3d3d3dpbXd3d3d3d3d3aW0JCW0JCUtWLmFLZncuS2FWO20JCW0JaW0JbQlLVi5hS2Z3QTZEe1Y7bW1pbW1BYWZ4LnEKZndHe2goJC5QMlYsdyQucS5EVix3JC5WIC4sdyRwNnh5d1N3QTZEe1Ypd3NtCWhECnA2RHckRDZmaDttCW0JJHBhLi4KZnt3U3c2S0s2UCgpO20JbQlxQShxe182S0s2UCh3JHA2eHl3KSl3c20JCSRweHdTdzc7bQkJbQkJQQpLVjZ4W3coJHA2eHl3Nnt3JHlWUHdTWHckejZEYVYpd3NtCQkJbQkJCXFBKCRweHdTU3c3KXckeApECktTIi5WNkQiO20JCQlWRHtWcUEoJHB4d1NTd1opdyR4CkQKS1Mie0Q2LlYtMFlZIjttCQkJVkR7VnFBKCRweHdTU3d9KXckeApECktTInBLCkZmLTBZWSI7bQkJCVZEe1Z3JHgKRApLUyIyS3FHNktQLTBZWSI7bQkJCW0JCQlxQSh3JHo2RGFWd1NTdyRENmZoSSc2a2tfe191J3Z3KXckLjZLaFYud1N3IncuNktoVi5TXCJfcEQ2ZnlcIiI7bQkJCVZEe1Z3JC42S2hWLlMiIjttCQkJbQkJCSRwYS4uCmZ7SXZ3U3ciPjZ3eEQ2e3tTXCJwLmZ3cC5mLXtHd3BoLXMkeApECktpd3AuZi1LNnF7Vmt3Mgp7cS5xCmYtRFZBLlwid1tLVkFTXCJzJHlWUGlcInMkLjZLaFYuaVhzJHo2RGFWaT48NlgiO20JCQltCQkJJHB4Kys7bQkJCW0JCQlxQSgkcHh3WHdKKXckcHh3U3c3O20JCWltCWl3VkR7VnFBKHckcDZ4eXcpd3NtCQkkcGEuLgpme0l2d1N3Ij42d3hENnt7U1wicC5md3AuZi17R3dwaC0uVjZEd3AuZi1LNnF7Vmt3Mgp7cS5xCmYtRFZBLlwid1tLVkFTXCJzJHA2eHlpXCJYcyRENmZoSSdBYWZ4X0d7aCd2aT48NlgiO20JaW0JbQlxQSh4CmFmLigkcGEuLgpmeyl3KXdzbQkJJHA2eHl3U3ciPmtxend4RDZ7e1NcIjI2ZlZELUEKCi5WS1wiWD5rcXp3eEQ2e3tTXCIuViAuLXhWZi5WS1wiWCJlcUcyRAprVignJyx3JHBhLi4KZnspZSI+PGtxelg+PGtxelgiO20JaXdWRHtWdyRwNnh5d1MiIjttCW0JbQlxQXcoJC5xLkRWd1NTdyJWS0sKSyIpdyQucS5EVndTdyRENmZoSSc2a2tmVkZ7X1ZLSwpLJ3Y7bQltCVZ4WwpbVjZrVksodyI+cXd4RDZ7e1NcIkE2d0E2LXgKR0dWZi4tCncyCntxLnEKZi1EVkEuXCJYPjxxWD57MjZmd3hENnt7U1wiLlYgLi17VkdxcApEa1wiWHMkRDZmaEknW1Y2a1ZLX3AKIF8ucS5EVid2aT48ezI2ZlgiLHckLnEuRFZ3KTttbQlxQSgkLlAyVndTU3ciVktLCksiKXdzbQkJJC5QMlZ3U3ciNkRWSy4tazZmaFZLIjttCWl3VkR7VnFBdyh3JC5QMlZ3U1N3IkY2S2ZxZmgidyl3c20JCSQuUDJWd1N3IjZEVksuLUY2S2ZxZmgiO20JaXdWRHtWcUF3KHckLlAyVndTU3cie2F4eFZ7eyJ3KXdzbQkJJC5QMlZ3U3ciNkRWSy4te2F4eFZ7eyI7bQlpd1ZEe1Z3JC5QMlZ3U3ciNkRWSy4tcWZBCiI7bQltCXFBKHdxe182S0s2UCh3JC5xLkRWdyl3KXdzbQkJJC5xLkRWd1N3VmZrKCQucS5EVik7bQlpbW0JVnhbCnc+Pj5iSE1SbT5rcXp3eEQ2e3tTIjZEVksud3MkLlAyVml3NkRWSy4tey5QRFZrLURWQS53NkRWSy4tNktLCkYtRFZBLnc2RFZLLi14CkcyCmZWZi53R1Z7ezZoVl9wCiAiWG13dz5bSlhzJC5xLkRWaT48W0pYbXd3Pmtxend4RDZ7e1MiMjZmVkQtcAprUCJYbQkJPi42cERWd0Zxay5bUyI3WVklIlhtCQl3d3d3Pi5LWG0JCXd3d3d3d3d3Pi5rd1tWcWhbLlMibFkid3hENnt7UyIuViAuLXhWZi5WSyJYcyQuViAuaT48LmtYbQkJd3d3dz48LktYbQkJPjwuNnBEVlhtCT48a3F6WG0JcyRwNnh5aW0+PGtxelhtYkhNUjttCW0JVnhbCkEKCi5WSygpO20Ja3FWKCk7bWltbUFhZngucQpmd1Z4WwpbVjZrVksoJFtWNmtWS18ucS5EVix3JFtWNmtWS197YXAucS5EVil3c20JaEQKcDZEdyR7eXFmX1tWNmtWSyx3JHt5cWZfQQoKLlZLLHcke3lxZl9mCi5fRApoaFZrX1tWNmtWSyx3JEdWR3BWS19xayx3JGF7VktfaEsKYTIsdyQxe182S0s2UCx3JHh7e182S0s2UCx3JHgKZkFxaCx3JEQ2ZmgsdyRxe19ECmhWa19xZix3JEcKayx3JDZ4LnEKZix3JEQ2ZmhrNi5WLHcka3AsdyRrRFZfRApocWZfWzZ7WzttbQlxQSh3IXF7XzZLSzZQKHckW1Y2a1ZLX3thcC5xLkRWdykpdyRbVjZrVktfe2FwLnEuRFZ3U3c2S0s2UHcodycnd1NYdyRbVjZrVktfe2FwLnEuRFYpO20JbQkkcEtWNmt4S2FHcHdTdzZLSzZQKHciPkRxWD42d1tLVkFTXCI/RwprU0c2cWZcIlg+cXd4RDZ7e1NcIkE2d0E2LVsKR1Z3Mgp7cS5xCmYtRFZBLlwiWD48cVhzJEQ2ZmhJJ3t5cWZfRzZxZid2aT48Nlg+PERxWCJ3KTttbQlBCktWNnhbdygkW1Y2a1ZLX3thcC5xLkRWdzZ7dyR5VlB3U1h3JHo2RGFWKXdzbQkJbQkJcUEoJHlWUCl3c20JCQkkcEtWNmt4S2FHcEl2d1N3Ij5EcVg+NndbS1ZBU1wicyR5VlBpXCJYcyR6NkRhVmk+PDZYPjxEcVgiO20JCWl3VkR7VndzbQkJCSRwS1Y2a3hLYUdwSXZ3U3ciPkRxd3hENnt7U1wiNngucXpWXCJYcyR6NkRhVmk+PERxWCI7bQkJaW0JaW1tCSRwS1Y2a3hLYUdwd1N3cUcyRAprVignJyx3JHBLVjZreEthR3ApO21tCXFmeERha1ZfCmZ4VncoRVJkOERhaHFmezo6V1tWeHkoZDVMOTVkX0U5andldyc8e3lxZns8a1ZBNmFELmV7eXFmZTJbMicpKTttCW0JJDF7d1N3cGFxRGtfMXsoJDF7XzZLSzZQKTttCSR4e3t3U3dwYXFEa194e3soJHh7e182S0s2UCk7bQltCSR7eXFmX1tWNmtWS3dTd3suS19LVjJENnhWKHciczF7X0FxRFZ7aSIsdyQxeyx3JHt5cWZfW1Y2a1ZLdyk7bQkke3lxZl9bVjZrVkt3U3d7LktfS1YyRDZ4Vih3InN4e3tfQXFEVntpIix3JHh7eyx3JHt5cWZfW1Y2a1ZLdyk7bQkke3lxZl9mCi5fRApoaFZrX1tWNmtWS3dTd3suS19LVjJENnhWKHciczF7X0FxRFZ7aSIsdyQxeyx3JHt5cWZfZgouX0QKaGhWa19bVjZrVkt3KTttCSR7eXFmX2YKLl9ECmhoVmtfW1Y2a1ZLd1N3ey5LX0tWMkQ2eFYodyJzeHt7X0FxRFZ7aSIsdyR4e3ssdyR7eXFmX2YKLl9ECmhoVmtfW1Y2a1ZLdyk7bQltCXFBKHckcXtfRApoVmtfcWZ3KXdWeFsKdyR7eXFmX1tWNmtWSzttCVZEe1Z3VnhbCncke3lxZl9mCi5fRApoaFZrX1tWNmtWSzttaW1tQWFmeC5xCmZ3VnhbCkEKCi5WSygpd3NtCWhECnA2RHckcXtfRApoVmtfcWYsdyR7eXFmX0EKCi5WSyx3JHt5cWZfZgouX0QKaGhWa19BCgouVks7bW0JcUEodyRxe19ECmhWa19xZncpd1Z4Wwp3JHt5cWZfQQoKLlZLO20JVkR7VndWeFsKdyR7eXFmX2YKLl9ECmhoVmtfQQoKLlZLO21taW1tQWFmeC5xCmZ3RHF7LmtxSygka3FLKXdzbQltCXFBKHdxe19rcUsoJGtxSyl3KXdzbW0JCSR4YUtLVmYuX2txS3dTd0AKMlZma3FLKHcka3FLdyk7bQkJbQkJcUEoJHhhS0tWZi5fa3FLdyFTU3dBNkR7Vncpd3NtCQkJRltxRFZ3KHckVmYuS1BmNkdWd1N3S1Y2a2txSyh3JHhhS0tWZi5fa3FLdyl3KXdzbQkJCQlxQSh3cXtfa3FLKHcka3FLZSI8ImUkVmYuS1BmNkdWdyl3MzVFdygkVmYuS1BmNkdWdyFTdyJlInczNUV3JFZmLktQZjZHVnchU3ciZWUiKXcpd3NtCQkJCQlEcXsua3FLKHcka3FLZSI8ImUkVmYuS1BmNkdWdyk7bQkJCQlpd1ZEe1ZxQSh3JFZmLktQZjZHVnchU3ciZSJ3MzVFdyRWZi5LUGY2R1Z3IVN3ImVlIncpd3NtCQkJCQlAYWZEcWZ5KHcka3FLZSI8ImUkVmYuS1BmNkdWdyk7bQkJCQlpbQkJCWltCQkJQHhECntWa3FLKHckeGFLS1ZmLl9rcUt3KTttCQkJQEtHa3FLKHcka3FLdyk7bQkJaW1tCWltbWltbUFhZngucQpmdy4KLks2ZntEcS4oJHo2Syx3JEQKRlZLd1N3LkthVix3JDJhZnkud1N3LkthVix3JC5LNmZ7RHEud1N3LkthVncpd3NtCWhECnA2RHckRDZmaC5LNmZ7RHEuO20JbQlxQXcodyFxe197LktxZmgoJHo2Syl3KXdLVi5hS2Z3IiI7bW0JJHA2a3t3U3c2S0s2UCh3JyEnLHcnKicsdydcJycsdycoJyx3JyknLHcnOycsdyc6Jyx3J0AnLHcnJicsdydTJyx3JysnLHcnJCcsdycsJyx3JzwnLHcnPycsdycjJyx3J0knLHcndicsdyclJyx3J1xcJyx3JyInLHcnPicsdydYJyx3J14nLHcncycsdydpJyx3J3wnLHcnYCcsdydlMlsyJ3cpO21tCSR6Nkt3U3dbLkdEX1ZmLnEuUF9rVngKa1YoJHo2Syx3ZDVIX25VNEhkQ3d8d2Q1SF9iSE1SdSx3J2EuQS1sJyk7bW0JJHo2S3dTd3suS3EyXy42aHsodyR6Nkt3KTttCSR6Nkt3U3d7LktfS1YyRDZ4Vih4W0soWSksdycnLHckejZLKTttCW0JcUF3KHckRApGVkt3KXdzbQkJJHo2S3dTd2tEVl97LksuCkQKRlZLKCR6NkspOwltCWltCW0JJHo2S3dTd3suS19LVjJENnhWKHc2S0s2UCh3IlxLXGYiLHciXEsiLHciXGYidyksdyd3Jyx3JHo2S3cpO20JJHo2S3dTdzJLVmhfS1YyRDZ4Vih3Ijxceys8YSIsdyItIix3JHo2S3cpO21tCXFBdyh3ISQyYWZ5Lncpd3NtCQkkcDZre0l2d1N3J2UnO20JaW0JbQkkejZLd1N3ey5LX3FLVjJENnhWKHckcDZreyx3JycsdyR6Nkt3KTttCW0JcUEodyQuSzZme0RxLncpd3NtCQltCQlxQXcocXtfNktLNlAoJEQ2ZmguSzZme0RxLil3MzVFd3gKYWYuKCRENmZoLks2ZntEcS4pdyl3c20JCQkkejZLd1N3ey5LLksoJHo2Syx3JEQ2ZmguSzZme0RxLik7bQkJaW0JCW0JCXFBdyh3JDJhZnkudyl3c20JCQltCQkJJHo2S3dTdzJLVmhfS1YyRDZ4Vih3IjxJXjYtclktY1xfXC1ldis8R3EiLHcnJyx3JHo2S3cpO20JCQkkejZLd1N3MktWaF9LVjJENnhWKHcnI0lldisjcScsdydlJyx3JHo2S3cpO20JCQltCQlpd1ZEe1Z3JHo2S3dTdzJLVmhfS1YyRDZ4Vih3IjxJXjYtclktY1xfXC12KzxHcSIsdycnLHckejZLdyk7bQltCWltCW0JJHo2S3dTd3suS19xS1YyRDZ4Vih3ImUyWzIiLHciZTIyMiIsdyR6Nkt3KTttCSR6Nkt3U3cyS1ZoX0tWMkQ2eFYodyc8XC0rPCcsdyctJyx3JHo2S3cpO20JbQlxQSh3a0RWX3suS0RWZih3JHo2S3cpd1h3N3VZdyl3c20JCW0JCSR6Nkt3U3drRFZfe2Fwey5LKHckejZLLHdZLHc3dVl3KTttCQltCQlxQSh3KCQuVkcyX0c2IHdTd2tEVl97LktLMgp7KHckejZLLHcnLSd3KSl3KXckejZLd1N3a0RWX3thcHsuSyh3JHo2Syx3WSx3JC5WRzJfRzYgdyk7bQltCWltd3d3d20JJHo2S3dTdy5LcUcodyR6NkssdyctJ3cpO213d3d3JHo2S3dTdy5LcUcodyR6Nkt3KTttCW0JS1YuYUtmdyR6Nks7bWltbUFhZngucQpmdy5xR1ZyCmZWX0Rxey4oKXNtCXsuNi5xeHckLnFHVnIKZlZ7d1N3ZmFERDttbQlxQXcoJC5xR1ZyCmZWe3dTU1N3ZmFERCl3c20JCSQucUdWcgpmVnt3U3dJdjttCQkkCkFBe1Yue3dTd0l2O20JCSRmCkZ3U3dmVkZ3RTYuVkhxR1YoJ2YKRicsd2ZWRndFNi5WSHFHVmcKZlYoJ1VIVycpKTttbQkJQQpLVjZ4W3coRTYuVkhxR1ZnCmZWOjpEcXsuOWtWZi5xQXFWS3soKXc2e3ckLnFHVnIKZlYpd3NtCQkJJGYKRi1Ye1YuSHFHVnIKZlYoZlZGd0U2LlZIcUdWZwpmVigkLnFHVnIKZlYpKTttCQkJJApBQXtWLntJdndTdyQKQUF7Vi53U3ckZgpGLVhoVi40QUF7Vi4oKTttCQkJJC5xR1ZyCmZWe0kkLnFHVnIKZlZ2d1N3Jygnd2V3QQpLRzYuX0xNSF8KQUF7Vi4oJApBQXtWLil3ZXcnKXcnd2V3QQpLRzYuXy5xR1ZyCmZWX2Y2R1YoJC5xR1ZyCmZWKTttCQlpbW0JCTZLSzZQX0dhRC5xewpLLigkCkFBe1Yueyx3JC5xR1ZyCmZWeyk7bQlpbW0JS1YuYUtmdyQucUdWcgpmVns7bWltbUFhZngucQpmd0EKS0c2Ll9MTUhfCkFBe1YuKCQKQUF7Vi4pd3NtCSRbCmFLe3dTd3FmLno2RCgkCkFBe1Yudzx3fTBZWSk7bQkkR3FmYS5We3dTdzZweyhxZi56NkQoJApBQXtWLncld30wWVl3PHcwWSkpO20JS1YuYUtmdydMTUgnd2V3KCQKQUF7Vi53IVNTd0E2RHtWdz93ezJLcWYuQSgnJStZfWs6JVlaaycsdyRbCmFLeyx3JEdxZmEuVnspdzp3JycpO21pbW1BYWZ4LnEKZndBCktHNi5fLnFHVnIKZlZfZjZHVigkZjZHVil3c20JJGY2R1Z3U3d7LktfS1YyRDZ4VignPCcsdycsdycsdyRmNkdWKTttCSRmNkdWd1N3ey5LX0tWMkQ2eFYoJ18nLHcndycsdyRmNkdWKTttCSRmNkdWd1N3ey5LX0tWMkQ2eFYoJ0MudycsdydDLmV3Jyx3JGY2R1YpO20JS1YuYUtmdyRmNkdWO21pbW1BYWZ4LnEKZndENmZoazYuVigkQQpLRzYuLHckey42RzIsdyR7Vkt6VksucUdWd1N3QTZEe1YsdyR4YXsuCkd3U3dBNkR7Vncpd3NtCWhECnA2RHckRDZmaGs2LlYsdyRHVkdwVktfcWssdyR4YXsuCkdENmZoazYuVjttbQlxQSh3cXtfNktLNlAoJHhhey4KRyl3KXckRAp4NkRENmZoazYuVndTdyR4YXsuCkdENmZoazYuVjt3VkR7VnckRAp4NkRENmZoazYuVndTdyRENmZoazYuVjttbQlxQXcoISR7LjZHMil3c3ckey42RzJ3U3cucUdWKCk7d2ltCW0JJEQKeDZEd1N3ZlZGd0U2LlZIcUdWKCdAJ2Ukey42RzIpO21tCXFBdyhxe3tWLigkR1ZHcFZLX3FrSScucUdWcgpmVid2KXczNUV3JEdWR3BWS19xa0knLnFHVnIKZlYndnczNUV3ISR7Vkt6VksucUdWKXdzbQkJJEQKeDZEcgpmVndTdyRHVkdwVktfcWtJJy5xR1ZyCmZWJ3Y7bW0JaXdWRHtWd3NtbQkJJEQKeDZEcgpmVndTd2s2LlZfa1ZBNmFELl8ucUdWcgpmVl9oVi4oKTttCWltbQlxQXcodyFxZl82S0s2UCh3JEQKeDZEcgpmVix3RTYuVkhxR1ZnCmZWOjpEcXsuOWtWZi5xQXFWS3soKXcpdyl3JEQKeDZEcgpmVndTdydkYUsKMlY8TQp7eApGJzttbQkkRAp4NkQtWHtWLkhxR1ZnCmZWKGZWRndFNi5WSHFHVmcKZlYoJEQKeDZEcgpmVikpO21tCUtWLmFLZnd7LksuSyh3JEQKeDZELVhBCktHNi4oJEEKS0c2LiksdyRECng2REQ2ZmhrNi5Wdyk7bW1pbW1BYWZ4LnEKZndrcUFBRDZmaGs2LlYoJEEKS0c2Lix3JHsuNkcyKXdzbQloRApwNkR3JF9IOU1kLHckRDZmaGs2LlYsdyRHVkdwVktfcWssdyRENmZoLHckRDZmaHgKR0dWZi57RlZWeWs2UHs7bW0JcUF3KCFxe182S0s2UCgkRDZmaGs2LlYpKXdzbQkJJEQ2ZmhrNi5Wd1N3NktLNlAoKTttCWltbQlxQXcoIXF7XzZLSzZQKCRENmZoeApHR1ZmLntGVlZ5azZQeykpd3NtCQkkRDZmaHgKR0dWZi57RlZWeWs2UHt3U3c2S0s2UCgpO20JaW1tCXFBdyghJHsuNkcyKXdzbQkJJHsuNkcyd1N3JF9IOU1kO20JaW1tCSQKRGtrNi5Wd1N3ZlZGd0U2LlZIcUdWKCdAJ3dldyR7LjZHMik7bQkkZgpGazYuVndTd2ZWRndFNi5WSHFHVignQCd3ZXckX0g5TWQpO20JJFBWey5WS2s2UGs2LlZ3U3dmVkZ3RTYuVkhxR1YoJy03d2s2UCcpO21tCXFBdyhxe3tWLigkR1ZHcFZLX3FrSScucUdWcgpmVid2KXc2Zmt3JEdWR3BWS19xa0knLnFHVnIKZlYndil3c20JCSRECng2RHIKZlZ3U3ckR1ZHcFZLX3FrSScucUdWcgpmVid2O20JaXdWRHtWd3NtbQkJJEQKeDZEcgpmVndTd2s2LlZfa1ZBNmFELl8ucUdWcgpmVl9oVi4oKTttCWltbQlxQXcodyFxZl82S0s2UCh3JEQKeDZEcgpmVix3RTYuVkhxR1ZnCmZWOjpEcXsuOWtWZi5xQXFWS3soKXcpdyl3JEQKeDZEcgpmVndTdydkYUsKMlY8TQp7eApGJzttbQkkCkRrazYuVi1Ye1YuSHFHVmcKZlYoZlZGd0U2LlZIcUdWZwpmVigkRAp4NkRyCmZWKSk7bQkkZgpGazYuVi1Ye1YuSHFHVmcKZlYoZlZGd0U2LlZIcUdWZwpmVigkRAp4NkRyCmZWKSk7bQkkUFZ7LlZLazZQazYuVi1Ye1YuSHFHVmcKZlYoZlZGd0U2LlZIcUdWZwpmVigkRAp4NkRyCmZWKSk7bW0JJGtxQUF3U3ckCkRrazYuVi1Ya3FBQSgkZgpGazYuVik7bW0JJGs2UHt3d3d3U3dxZi56NkQoJGtxQUEtWEEKS0c2LignJTYnKSk7bQkkWwphS3t3d3dTd3FmLno2RCgka3FBQS1YQQpLRzYuKCclWycpKTttCSRHcWZhLlZ7d1N3cWYuejZEKCRrcUFBLVhBCktHNi4oJyVxJykpO21tCXFBdygkCkRrazYuVi1YQQpLRzYuKCdPR2snKXdTU3ckUFZ7LlZLazZQazYuVi1YQQpLRzYuKCdPR2snKSl3c21tCQkkRDZmaF9BCktHNi53U3d7LktfS1YyRDZ4Vignc2s2LlZpJyx3JEQ2ZmhJJy5xR1ZfaFZ7LlZLZid2LHckRDZmaEkna3FBQXtfQQpLRzYuJ3YpO20JCSRENmZoX0EKS0c2LndTd3suS19LVjJENnhWKCdzLnFHVmknLHckCkRrazYuVi1YQQpLRzYuKCdiOnEnKSx3JEQ2ZmhfQQpLRzYuKTttbQkJS1YuYUtmdyRENmZoX0EKS0c2LjttCWl3VkR7VnFBdygkazZQe3c+dzcpd3NtbQkJcUF3KCRbCmFLe3c+dzcpd3NtbQkJCXFBdygkR3FmYS5We3c+dzcpd3NtbQkJCQlLVi5hS2Z3JEQ2ZmhJJ2YKRl9rcUFBeyd2O20JCQlpd1ZEe1Z3c21tCQkJCUtWLmFLZnckR3FmYS5We3dldyd3J3dld2tWeERxZjYucQpmKDZLSzZQKCcnLHckR3FmYS5Weyx3JEQ2ZmhJJ0dxZmEuVntfa3FBQXsndikpd2V3J3cnd2V3JEQ2ZmhJJy5xR1Zfa3FBQXsndjttCQkJaW0JCWl3VkR7VnFBdygkWwphS3t3PlN3N1opd3NtbQkJCUtWLmFLZnckWwphS3t3ZXcndyd3ZXdrVnhEcWY2LnEKZig2S0s2UCgnJyx3JFsKYUt7LHckRDZmaEknWwphS3tfa3FBQXsndikpd2V3J3cnd2V3JEQ2ZmhJJy5xR1Zfa3FBQXsndjttCQlpd1ZEe1Z3c21tCQkJJEQ2ZmhfQQpLRzYud1N3ey5LX0tWMkQ2eFYoJ3NrNi5WaScsdyRENmZoSScucUdWX1tWYS5WJ3YsdyRENmZoSSdrcUFBe19BCktHNi4ndik7bQkJCSRENmZoX0EKS0c2LndTd3suS19LVjJENnhWKCdzLnFHVmknLHckCkRrazYuVi1YQQpLRzYuKCdiOnEnKSx3JEQ2ZmhfQQpLRzYuKTttbQkJCUtWLmFLZnckRDZmaF9BCktHNi47bQkJaW0JaXdWRHtWd3NtbQkJcUF3KCRrNlB7dz53MCl3c21tCQkJJEQ2ZmhfQQpLRzYud1N3ey5LX0tWMkQ2eFYoJ3NrNi5WaScsdyQKRGtrNi5WLVhBCktHNi4oJ0QnKSx3JEQ2ZmhJJ2txQUF7X0EKS0c2Lid2KTttCQkJJEQ2ZmhfQQpLRzYud1N3ey5LX0tWMkQ2eFYoJ3MucUdWaScsdyQKRGtrNi5WLVhBCktHNi4oJ2I6cScpLHckRDZmaF9BCktHNi4pO21tCQkJS1YuYUtmd3suSy5LKCRENmZoX0EKS0c2Lix3JEQ2Zmh4CkdHVmYue0ZWVnlrNlB7KTttCQlpd1ZEe1Z3S1YuYUtmd3suSy5LKCQKRGtrNi5WLVhBCktHNi4oJEEKS0c2LiksdyRENmZoazYuVik7bQlpbWltbUFhZngucQpmd2tWeERxZjYucQpmKCRHNi54W1Z7d1N3NktLNlAoKSltc21tCSRHNi54W1Z7STd2d1N3ey5LcTJfLjZoeygkRzYueFtWe0k3dik7bQkkRzYueFtWe0k3dndTd3suS19LVjJENnhWKCd3Jyx3JycsdyRHNi54W1Z7STd2KTttbQkkRzYueFtWe0k3dndTd3FmLno2RCgkRzYueFtWe0k3dik7bQkkRgpLa3t3U3dWIDJECmtWKCd8Jyx3LktxRygkRzYueFtWe0ladikpO20JJDI2Sy57X0YKS2t3U3c2S0s2UCgpO21tCXtGcS54W3coeAphZi4oJEYKS2t7KSl3c20JCXg2e1Z3NzptCQkJJDI2Sy57X0YKS2tJWXZ3U3ckRgpLa3tJWXY7bQkJCSQyNksue19GCktrSTd2d1N3JEYKS2t7SVl2O20JCQkkMjZLLntfRgpLa0ladndTdyRGCktre0lZdjttCQkJcEtWNnk7bQkJeDZ7VndaOm0JCQkkMjZLLntfRgpLa0lZdndTdyRGCktre0lZdjttCQkJJDI2Sy57X0YKS2tJN3Z3U3ckRgpLa3tJWXZ3ZXckRgpLa3tJN3Y7bQkJCSQyNksue19GCktrSVp2d1N3JEYKS2t7SVl2d2V3JEYKS2t7STd2O20JCQlwS1Y2eTttCQl4NntWd306bQkJCSQyNksue19GCktrSVl2d1N3JEYKS2t7SVl2O20JCQkkMjZLLntfRgpLa0k3dndTdyRGCktre0lZdndldyRGCktre0k3djttCQkJJDI2Sy57X0YKS2tJWnZ3U3ckRgpLa3tJWXZ3ZXckRgpLa3tJWnY7bQkJCXBLVjZ5O20JCXg2e1Z3SjptCQkJJDI2Sy57X0YKS2tJWXZ3U3ckRgpLa3tJWXZ3ZXckRgpLa3tJN3Y7bQkJCSQyNksue19GCktrSTd2d1N3JEYKS2t7SVl2d2V3JEYKS2t7SVp2O20JCQkkMjZLLntfRgpLa0ladndTdyRGCktre0lZdndldyRGCktre0l9djttCQkJcEtWNnk7bQlpbW0JJEYKS2t3U3ckRzYueFtWe0k3dncldzdZd1NTdzd3JiZ3JEc2LnhbVntJN3Z3JXc3WVl3IVN3Nzd3P3ckMjZLLntfRgpLa0lZdnc6dygkRzYueFtWe0k3dncldzdZd1hTd1p3JiZ3JEc2LnhbVntJN3Z3JXc3WXc+U3dKdyYmdygkRzYueFtWe0k3dncldzdZWXc+dzdZd3x8dyRHNi54W1Z7STd2dyV3N1lZd1hTd1pZKXc/dyQyNksue19GCktrSTd2dzp3JDI2Sy57X0YKS2tJWnYpO21tCUtWLmFLZnckRgpLazttaW1tQWFmeC5xCmZ3VzYuVmgKS1A1VkZ7Q1ZEVngucQpmKCR4Ni5WaApLUHFrd1N3WSx3JDI2S1ZmLnFrd1N3WSx3JGYKeDYud1N3SGpVZCx3JHthcERWelZERzZLeVZLd1N3JycsdyRLVi5hS2Z7LktxZmh3U3cnJyl3c20JaEQKcDZEdyR4Ni5fcWZBCix3JEdWR3BWS19xayx3JGF7VktfaEsKYTIsdyRHCms7bQltCXFBdygkRwprd1NTdyI2a2tmVkZ7Inc0anckRwprd1NTdyJWa3EuZlZGeyIpd3NtCQltCQlxQSgkR1ZHcFZLX3FrSSd4Ni5fNkRECkZfNmtrZlZGeyd2KXdzbQkJCSQ2REQKRl9EcXsud1N3ViAyRAprVih3JywnLHckR1ZHcFZLX3FrSSd4Ni5fNkRECkZfNmtrZlZGeyd2dyk7bQkJaXdWRHtWdyQ2REQKRl9EcXsud1N3ViAyRAprVih3JywnLHckYXtWS19oSwphMkkkR1ZHcFZLX3FrSSdhe1ZLX2hLCmEyJ3Z2SSd4Ni5fNkRECkZfNmtrZlZGeyd2dyk7bQkJbQlpd1ZEe1Z3c20JCW0JCSQ2REQKRl9EcXsud1N3ViAyRAprVih3JywnLHckYXtWS19oSwphMkkkR1ZHcFZLX3FrSSdhe1ZLX2hLCmEyJ3Z2SSc2REQKRl94Ni57J3Z3KTttCQltCWltCW0JcUEodyRHCmt3IVN3ImF7VktoSwphMiJ3MzVFdyRHCmt3IVN3IlZrcS5he1ZLeyIpd3NtCQltCQkkZgouXzZERApGX0Rxey53U3dWIDJECmtWKHcnLCcsdyRhe1ZLX2hLCmEySSRHVkdwVktfcWtJJ2F7VktfaEsKYTIndnZJJ2YKLl82REQKRl94Ni57J3Z3KTttCQltCWl3VkR7VnckZgouXzZERApGX0Rxey53U3c2S0s2UCgpO20JbQlxQSh3JDI2S1ZmLnFrd1NTd1l3KXdzbQkJcUEodyRmCng2LncpdyRLVi5hS2Z7LktxZmh3ZVN3Jz4KMi5xCmZ3ejZEYVZTIlkiWD48CjIucQpmWCc7bQlpd1ZEe1Z3c20JCSR7YXBEVnpWREc2S3lWS3dlU3cnJmZwezI7JmZwezI7JmZwezI7JmZwezI7JzttCWltCW0JcUEod3gKYWYuKHckeDYuX3FmQQp3KXcpd3NtCQltCQkkSwoKLl94Ni5WaApLUHdTdzZLSzZQKCk7bQkJbQkJQQpLVjZ4W3codyR4Ni5fcWZBCnc2e3ckeDYue3cpd3NtCQkJcUEodyR4Ni57SScyNktWZi5xayd2d1NTdyQyNktWZi5xa3cpdyRLCgouX3g2LlZoCktQSXZ3U3ckeDYue0kncWsndjttCQlpbW0JCXFBKHd4CmFmLih3JEsKCi5feDYuVmgKS1B3KXcpd3NtCQkJbQkJCUEKS1Y2eFt3KHckSwoKLl94Ni5WaApLUHc2e3ckcWt3KXdzbQkJCQltCQkJCXFBKHcodyQ2REQKRl9EcXsuSVl2d1NTdyI2REQidzRqd3FmXzZLSzZQKHckcWssdyQ2REQKRl9EcXsudyl3KXc0anckRwprd1NTdyJhe1ZLaEsKYTIidzRqdyRHCmt3U1N3IlZrcS5he1ZLeyJ3KXdzbQkJCQkJbQkJCQkJcUEod3FmXzZLSzZQKHckcWssdyRmCi5fNkRECkZfRHF7Lncpdyl3eApmLnFmYVY7bQkJCQkJbQkJCQkJJEtWLmFLZnsuS3FmaHdlU3ciPgoyLnEKZnd6NkRhVlNcIiJ3ZXckcWt3ZXcnIncnO20JCQkJCW0JCQkJCXFBKHdxe182S0s2UCh3JHg2LlZoCktQcWt3KXcpd3NtCQkJCQkJQQpLVjZ4W3codyR4Ni5WaApLUHFrdzZ7dyRWRFZHVmYudyl3c20JCQkJCQkJcUEodyRWRFZHVmYud1NTdyRxa3cpdyRLVi5hS2Z7LktxZmh3ZVN3J3tWRFZ4LlZrJzttCQkJCQkJaW0JCQkJCWl3VkR7VnFBKHckeDYuVmgKS1Bxa3dTU3ckcWt3KXckS1YuYUtmey5LcWZod2VTdyd7VkRWeC5Wayc7bQkJCQkJbQkJCQkJJEtWLmFLZnsuS3FmaHdlU3cnWCd3ZXcke2FwRFZ6VkRHNkt5Vkt3ZXckeDYuX3FmQQpJJHFrdkknZjZHVid2d2V3Jz48CjIucQpmWCc7bQkJCQlpbQkJCQltCQkJCSRLVi5hS2Z7LktxZmh3U3dXNi5WaApLUDVWRntDVkRWeC5xCmYodyR4Ni5WaApLUHFrLHckcWssdyRmCng2Lix3JHthcERWelZERzZLeVZLLHckS1YuYUtmey5LcWZodyk7bQkJCWltCQlpbQlpbQltCUtWLmFLZnckS1YuYUtmey5LcWZoO21pbW1tQWFmeC5xCmZ3NktLNlBfe1ZEVngucQpmKCQ2S0s2UF9EcXsuLHcke1ZEcWt3U3dZLHckMjZLVmYucWt3U3dZLHcke2FwRFZ6VkRHNkt5Vkt3U3cnJyx3JEtWLmFLZnsuS3FmaHdTdycnKXdzbW0JJEsKCi5feDYuVmgKS1B3U3c2S0s2UHcoKTttCW0JcUEodyQyNktWZi5xa3dTU3dZdyl3c20JCSRLVi5hS2Z7LktxZmh3ZVN3Jz4KMi5xCmZ3ejZEYVZTIlkiWD48CjIucQpmWCc7bQlpd1ZEe1Z3c20JCSR7YXBEVnpWREc2S3lWS3dlU3cnJmZwezI7JmZwezI7JmZwezI7JzttCWltCW0JcUEod3gKYWYuKHckNktLNlBfRHF7Lncpdyl3c20JCW0JCUEKS1Y2eFt3KHckNktLNlBfRHF7Lnc2e3ckRHF7Lncpd3NtCQkJcUEodyREcXsuSScyNktWZi5xayd2d1NTdyQyNktWZi5xa3cpdyRLCgouX3g2LlZoCktQSXZ3U3ckRHF7LkkncWsndjttCQlpbQkJbQkJcUEod3gKYWYuKHckSwoKLl94Ni5WaApLUHcpdyl3c20JCQlBCktWNnhbdyh3JEsKCi5feDYuVmgKS1B3Nnt3JHFrdyl3c20JCQkJCW0JCQkJJEtWLmFLZnsuS3FmaHdlU3ciPgoyLnEKZnd6NkRhVlNcIiJ3ZXckcWt3ZXcnIncnO20JCQkJCW0JCQkJcUEod3F7XzZLSzZQKHcke1ZEcWt3KXcpd3NtCQkJCQlBCktWNnhbdyh3JHtWRHFrdzZ7dyRWRFZHVmYudyl3c20JCQkJCQltCQkJCQkJJFZEVkdWZi53U3dxZi56NkQoJFZEVkdWZi4pO20JCQkJCQltCQkJCQkJcUEodyRWRFZHVmYud1NTdyRxa3cpdyRLVi5hS2Z7LktxZmh3ZVN3J3tWRFZ4LlZrJzttCQkJCQkJbQkJCQkJaW0JCQkJaXdWRHtWcUEod3FmLno2RCgke1ZEcWspd1NTdyRxa3cpdyRLVi5hS2Z7LktxZmh3ZVN3J3tWRFZ4LlZrJzttCQkJCQltCQkJCSRLVi5hS2Z7LktxZmh3ZVN3J1gnd2V3JHthcERWelZERzZLeVZLd2V3JDZLSzZQX0Rxey5JJHFrdkknLnEuRFYndndldyc+PAoyLnEKZlgnO20JCQkJbQkJCQkkS1YuYUtmey5LcWZod1N3NktLNlBfe1ZEVngucQpmKCQ2S0s2UF9EcXsuLHcke1ZEcWssdyRxayx3JHthcERWelZERzZLeVZLLHckS1YuYUtmey5LcWZodyk7bQkJCWltCQlpbQlpbQltCUtWLmFLZnckS1YuYUtmey5LcWZoO21pbW1BYWZ4LnEKZndrRFZfeDZ4W1YoJDJLVkFxICx3JHg2eFtWX3Frd1N3QTZEe1YsdyRHVkdwVktfMktWQXEgd1N3QTZEe1Ypd3NtCWhECnA2RHckeApmQXFoLHckcXtfRApoaFZrLHckR1ZHcFZLX3FrLHcka0RWQTZ7Lng2eFtWO20JbQlxQSh3ISR4CmZBcWhJJzZERApGX3g2eFtWJ3Z3KXdLVi5hS2Z3QTZEe1Y7bW0JJHgKZkFxaEkneERWNktfeDZ4W1YndndTdyhxZi56NkQoJHgKZkFxaEkneERWNktfeDZ4W1Yndil3WHc3KXc/d3FmLno2RCgkeApmQXFoSSd4RFY2S194NnhbVid2KXc6d1k7bW0JcUEodyRxe19ECmhoVmt3KXckVmZrX0FxRFZ3U3ckR1ZHcFZLX3FrSSdhe1ZLX2hLCmEyJ3Y7bQlWRHtWdyRWZmtfQXFEVndTdyJZIjttCW0JcUEodyF3JHg2eFtWX3Frdyl3c20JCW0JCSR5VlB3U3ckMktWQXEgO20JbQlpd1ZEe1Z3c20JCW0JCSR4NnhbVl9xa3dTd0drdSh3JHg2eFtWX3Frdyk7bQkJbQkJcUEodyRHVkdwVktfMktWQXEgdyl3JHlWUHdTdyQyS1ZBcSB3ZXciXyJ3ZXckeDZ4W1ZfcWt3ZXciXyJ3ZXckVmZrX0FxRFY7bQkJVkR7VnckeVZQd1N3JDJLVkFxIHdldyJfIndldyR4NnhbVl9xazttCW0JaW0JbQlxQSh3JHgKZkFxaEkneDZ4W1ZfLlAyVid2dyl3c20JCXFBKHcka0RWQTZ7Lng2eFtWLVh4CmZmVngucQpmd1h3WXcpd3NtCQkJS1YuYUtmdyRrRFZBNnsueDZ4W1YtWGhWLigkeVZQKTttCQlpbQlpbW0JJHBhQUFWS3dTd0BBcURWX2hWLl94CmYuVmYueyh3ZDVMOTVkX0U5andldyI8eDZ4W1Y8IndldyR5VlB3ZXciZS5HMiJ3KTttbQlxQXcodyRwYUFBVkt3IVNTd0E2RHtWdzM1RXckeApmQXFoSSd4RFY2S194NnhbVid2dyl3c21tCQkkQXFEVl9rNi5Wd1N3QEFxRFZHLnFHVih3ZDVMOTVkX0U5andldyI8eDZ4W1Y8IndldyR5VlB3ZXciZS5HMiJ3KTttCQkkQXFEVl9rNi5Wd1N3LnFHVigpLSRBcURWX2s2LlY7bW0JCXFBdyh3JEFxRFZfazYuVndYdyh3JHgKZkFxaEkneERWNktfeDZ4W1YndncqdzBZdyl3KXdzbQkJCSRwYUFBVkt3U3dBNkR7VjttCQkJQGFmRHFmeSh3ZDVMOTVkX0U5andldyI8eDZ4W1Y8IndldyR5VlB3ZXciZS5HMiJ3KTttCQlpbW0JCUtWLmFLZnckcGFBQVZLO21tCWl3VkR7VndLVi5hS2Z3JHBhQUFWSzttbWltbUFhZngucQpmd3hLVjYuVl94NnhbVigkMktWQXEgLHckeDZ4W1ZfLlYgLix3JHg2eFtWX3Frd1N3QTZEe1YsdyRHVkdwVktfMktWQXEgd1N3QTZEe1Ypd3NtCWhECnA2RHckeApmQXFoLHckcXtfRApoaFZrLHckR1ZHcFZLX3FrLHcka0RWQTZ7Lng2eFtWO20JbQlxQSh3ISR4CmZBcWhJJzZERApGX3g2eFtWJ3Z3KXdLVi5hS2Z3QTZEe1Y7bQltCXFBKHckcXtfRApoaFZrdyl3JFZma19BcURWd1N3JEdWR3BWS19xa0knYXtWS19oSwphMid2O20JVkR7VnckVmZrX0FxRFZ3U3ciWSI7bQltCXFBKHchdyR4NnhbVl9xa3cpd3NtCQltCQkkeVZQd1N3JDJLVkFxIDttCQltCWl3VkR7VndzbQkJbQkJJHg2eFtWX3Frd1N3R2t1KHckeDZ4W1ZfcWt3KTttCQltCQlxQSh3JEdWR3BWS18yS1ZBcSB3KXckeVZQd1N3JDJLVkFxIHdldyJfIndldyR4NnhbVl9xa3dldyJfIndldyRWZmtfQXFEVjttCQlWRHtWdyR5VlB3U3ckMktWQXEgd2V3Il8id2V3JHg2eFtWX3FrO20JbQlpbQltCXFBKCR4NnhbVl8uViAud1NTU3dBNkR7Vil3JHg2eFtWXy5WIC53U3cnJzttbQlxQSh3JHgKZkFxaEkneDZ4W1ZfLlAyVid2dyl3c20JCXFBKHcka0RWQTZ7Lng2eFtWLVh4CmZmVngucQpmd1h3WXcpd3NtCQkJJGtEVkE2ey54NnhbVi1Ye1YuKHckeVZQLHckeDZ4W1ZfLlYgLncpO20JCQlLVi5hS2Z3LkthVjttCQlpbQlpbW0JQXFEVl8yYS5feApmLlZmLnt3KGQ1TDk1ZF9FOWp3ZXciPHg2eFtWPCJ3ZXckeVZQd2V3ImUuRzIiLHckeDZ4W1ZfLlYgLix3UjRXdF9kQik7bQlAeFtHCmsod2Q1TDk1ZF9FOWp3ZXciPHg2eFtWPCJ3ZXckeVZQd2V3ImUuRzIiLHdZMDAwdyk7bQltCUtWLmFLZncuS2FWO20JbWltbUFhZngucQpmd3hEVjZLX3g2eFtWKCR4NnhbVl82S1Y2e3dTd0E2RHtWKXdzbQloRApwNkR3JGtEVkE2ey54NnhbVix3JHgKZkFxaDttbQlxQSh3JHgKZkFxaEkneDZ4W1ZfLlAyVid2dyl3c20JCXFBKHcka0RWQTZ7Lng2eFtWLVh4CmZmVngucQpmd1h3WXcpd3NtCQkJJGtEVkE2ey54NnhbVi1YeERWNksodyR4NnhbVl82S1Y2e3cpO20JCQlLVi5hS2Z3LkthVjttCQlpbQlpbW0JcUF3KHckeDZ4W1ZfNktWNnt3KXdzbQkJcUEoIXF7XzZLSzZQKCR4NnhbVl82S1Y2eykpd3NtCQkJJHg2eFtWXzZLVjZ7d1N3NktLNlAoJHg2eFtWXzZLVjZ7KTttCQlpbQlpbQkJbQkkQWtxS3dTdwoyVmZrcUsod2Q1TDk1ZF9FOWp3ZXcnPHg2eFtWJ3cpO20JCW0JRltxRFZ3KHckQXFEVndTd0tWNmtrcUsodyRBa3FLdyl3KXdzbQkJcUEodyRBcURWdyFTdydlWy42eHhWe3sndzM1RXchcXtfa3FLKGQ1TDk1ZF9FOWp3ZXcnPHg2eFtWPCd3ZXckQXFEVil3KXdzbQkJCW0JCQlxQSh3JHg2eFtWXzZLVjZ7dyl3c20JCQkJbQkJCQlBCktWNnhbKCR4NnhbVl82S1Y2e3c2e3ckeDZ4W1ZfNktWNil3cUEod3suS3EyCnsodyRBcURWLHckeDZ4W1ZfNktWNncpd1NTU3dZdyl3QGFmRHFmeSh3ZDVMOTVkX0U5andldyc8eDZ4W1Y8J3dldyRBcURWdyk7bQkJCW0JCQlpd1ZEe1Z3c20JCQkJbQkJCQlAYWZEcWZ5KHdkNUw5NWRfRTlqd2V3Jzx4NnhbVjwnd2V3JEFxRFZ3KTttCQkJbQkJCWltCQlpbQlpbWltbUFhZngucQpmd3hEVjZLXzZERF94NnhbVnsoKXdzbQloRApwNkR3JHgKZkFxaDttCW0JRHF7LmtxSyh3ZDVMOTVkX0U5andldyc8eDZ4W1Y8e1B7LlZHPFdDQyd3KTttCURxey5rcUsod2Q1TDk1ZF9FOWp3ZXcnPHg2eFtWPHtQey5WRzxiSE1SJ3cpO20JRHF7LmtxSyh3ZDVMOTVkX0U5andldyc8eDZ4W1Y8e1B7LlZHPFVqOSd3KTttCURxey5rcUsod2Q1TDk1ZF9FOWp3ZXcnPHg2eFtWPHtQey5WRzwyRGFocWZ7J3cpO20JbQkkQWtxS3dTdwoyVmZrcUsod2Q1TDk1ZF9FOWp3ZXcnPHg2eFtWPHtQey5WRzwndyk7bQlGW3FEVncodyRBcURWd1N3S1Y2a2txSyh3JEFrcUt3KXcpd3NtCQlxQSh3IXF7X2txSyhkNUw5NWRfRTlqd2V3Jzx4NnhbVjx7UHsuVkc8J3dldyRBcURWdyl3MzVFdyRBcURWdyFTdydlWy42eHhWe3sndzM1RXckQXFEVnchU3cneEsKZmUyWzIndyl3c20JCQlAYWZEcWZ5KHdkNUw5NWRfRTlqd2V3Jzx4NnhbVjx7UHsuVkc8J3dldyRBcURWdyk7bQkJbQkJaW0JaW0JbQlxQSh3JHgKZkFxaEkneDZ4W1ZfLlAyVid2dyl3c20JCSRBa3FLd1N3CjJWZmtxSyh3ZDVMOTVkX0U5andldyc8eDZ4W1Yndyk7bQkJRltxRFZ3KHckQXFEVndTd0tWNmtrcUsodyRBa3FLdyl3KXdzbQkJCXFBKHckQXFEVnchU3cnZVsuNnh4Vnt7J3czNUV3IXF7X2txSyhkNUw5NWRfRTlqd2V3Jzx4NnhbVjwnd2V3JEFxRFYpd3cpd3NtCQkJCQlAYWZEcWZ5KHdkNUw5NWRfRTlqd2V3Jzx4NnhbVjwnd2V3JEFxRFZ3KTttCQkJaW0JCWltCWltCW0JeERWNktfeDZ4W1YoKTttCW0JcUF3KEFhZngucQpmX1YgcXsueygnCjJ4NnhbVl9LVntWLicpKXdzbQkJCjJ4NnhbVl9LVntWLigpO20JaW0JbWltbUFhZngucQpmd3hEVjZLX3suNi5xeF94NnhbVl9xayh3JHs2elZ3U3cuS2FWdyl3c21tCSR7NkQud1N3ey5LX3tbYUFBRFYoIjZweFtWQWhbMXlHZjIvS3suYXpGIFByWTdafUp1MG9sYyIpO21tCSRmVkZfeDZ4W1ZfcWt3U3ciIjttbQlBCkt3KCRxd1N3WTt3JHF3Pnd1O3ckcSsrKXdzbQkJJGZWRl94NnhbVl9xa3dlU3ckezZELklLNmZrCkdfcWYuKFksd31aKXY7bQlpbW0JcUF3KCR7NnpWdzM1RXdxe19GS3EuNnBEVihkNUw5NWRfRTlqd2V3JzxrNi42PHgKZkFxaGUyWzInKSl3c21tCQlxZnhEYWtWKGQ1TDk1ZF9FOWp3ZXcnPGs2LjY8eApmQXFoZTJbMicpO21tCQkkeApmQXFoSSd4NnhbVl9xayd2d1N3JGZWRl94NnhbVl9xazttbQkJJFs2ZmtEVkt3U3dBCjJWZihkNUw5NWRfRTlqd2V3JzxrNi42PHgKZkFxaGUyWzInLHciRiIpO21tCQlxQXcoJFs2ZmtEVkt3IVNTd0E2RHtWdyl3c20JCQltCQkJQUZLcS5WKCRbNmZrRFZLLHciPj84Yjh3XGZcZjw8Q1B7LlZHd1cKZkFxaGFLNi5xCmZ7XGZcZlwkeApmQXFod1N3NktLNlB3KFxmXGYiKTttbQkJCUEKS1Y2eFt3KCR4CmZBcWh3Nnt3JGY2R1Z3U1h3JHo2RGFWKXdzbQkJCQlBRktxLlYoJFs2ZmtEVkssdyIncyRmNkdWaSd3U1h3J3MkejZEYVZpJyxcZlxmIik7bQkJCWltbQkJCUFGS3EuVigkWzZma0RWSyx3Iik7XGZcZj9YIik7bQkJCUF4RAp7VigkWzZma0RWSyk7bQkJaW1tCWltbQlLVi5hS2Z3JGZWRl94NnhbVl9xazttbWltbUFhZngucQpmdyBBcVZEa3trNi42RAo2aygkcWspd3NtCW0JcUEodyRxa3dTU3ciIncpd0tWLmFLZjttCW0JJCBBcVZEa3trNi42d1N3ViAyRAprVih3Inx8Iix3JHFrdyk7bQlBCktWNnhbdyh3JCBBcVZEa3trNi42dzZ7dyQgQXFWRGtrNi42dyl3c20JCURxey53KHckIEFxVkRrazYuNmY2R1YsdyQgQXFWRGtrNi42ejZEYVZ3KXdTd1YgMkQKa1YodyJ8Iix3JCBBcVZEa2s2LjZ3KTttCQkkIEFxVkRrazYuNmY2R1Z3U3d7LktfS1YyRDZ4Vih3IiYjN1pKOyIsdyJ8Iix3JCBBcVZEa2s2LjZmNkdWdyk7bQkJJCBBcVZEa2s2LjZmNkdWd1N3ey5LX0tWMkQ2eFYodyJfXzVkXVJfXyIsdyJcS1xmIix3JCBBcVZEa2s2LjZmNkdWdyk7bQkJJCBBcVZEa2s2LjZ6NkRhVndTd3suS19LVjJENnhWKHciJiM3Wko7Iix3InwiLHckIEFxVkRrazYuNno2RGFWdyk7bQkJJCBBcVZEa2s2LjZ6NkRhVndTd3suS19LVjJENnhWKHciX181ZF1SX18iLHciXEtcZiIsdyQgQXFWRGtrNi42ejZEYVZ3KTttCQkkazYuNkkkIEFxVkRrazYuNmY2R1Z2d1N3JCBBcVZEa2s2LjZ6NkRhVjttCWltCW0JS1YuYUtmdyRrNi42O21pbW1BYWZ4LnEKZncgQXFWRGt7RAo2aygpd3NtCWhECnA2RHckRDZmaCx3JHgKZkFxaDttCW0JJDI2Llt3U3dkNUw5NWRfRTlqd2V3JzxrNi42PCBBcVZEa3tlLiAuJzttCSRBcURWeApmLlZmLnt3U3dBcURWKHckMjYuW3cpO20JJEFxVkRre3dTdzZLSzZQKCk7bQkkLkcyXzZLS3dTdzZLSzZQKCk7bW0JcUEodyFxe182S0s2UCh3JEFxRFZ4CmYuVmYue3cpdyl3c20JCW0JCUtWLmFLZnc2S0s2UCgpO20JbQlpd1ZEe1ZxQSh3eAphZi4oJEFxRFZ4CmYuVmYueyl3KXdzbQkJbQkJQQpLVjZ4W3codyRBcURWeApmLlZmLnt3Nnt3JGY2R1Z3U1h3JHo2RGFWdyl3c20JCQltCQkJcUEody5LcUcoJHo2RGFWKXcpd3NtCQkJCW0JCQkJJC5HMl82S0t3U3dWIDJECmtWKHcifCIsdy5LcUcoJHo2RGFWLHciXC5cZlxLXFlcIFlUIil3KTttCQkJCW0JCQkJQQpLVjZ4W3codyQuRzJfNktLdzZ7dyRmNkdWWndTWHckejZEYVZadyl3c20JCQkJCSR6NkRhVlp3U3d7LktfS1YyRDZ4Vih3IiYjN1pKOyIsdyJ8Iix3JHo2RGFWWncpO20JCQkJCSR6NkRhVlp3U3d7LktfS1YyRDZ4Vih3Il9fNWRdUl9fIix3IlxLXGYiLHckejZEYVZadyk7bQkJCQkJJHo2RGFWWndTd1suR0RfVmYucS5QX2tWeAprVigkejZEYVZaLHdkNUhfblU0SGRDLHckeApmQXFoSSd4WzZLe1YuJ3YpO20JCQkJCSRBcVZEa3tJJGY2R1Z2SSRmNkdWWnZ3U3ckejZEYVZaO20JCQkJaW0JCQkJbQkJCWltCQlpbW0JCUtWLmFLZnckQXFWRGt7O21tCWltCW0JS1YuYUtmdzZLSzZQKCk7bWltbUFhZngucQpmd3hEVjZLX3gKZi5WZi53KHckeApmLlZmLix3JERWZndTd31ZWSx3JEtWMkQ2eFZfe3FmaERWXy9hCi5Wd1N3LkthVncpd3NtCW0JaEQKcDZEdyR4CmZBcWg7bQltCXFBKCEkeApmLlZmLnc0anchcXtfey5LcWZoKCR4CmYuVmYuKXcpd3NtCQlLVi5hS2Z3Jyc7bQlpbQltCSRLVkcKelZ3U3c2S0s2UHcoIlwgMFkiLHciXC4iLHciXGYiLHciXEsiLHcnXC4nLHcnXGYnLHcnXEsnLHciczgzTGRUamQzdGkiLHciJmZwezI7Iix3Ij5wS3c8WCIsdyI+cEtYIix3IncsIncpO20JJERWZndTd3FmLno2RCgkRFZmKTttCW0JJHgKZi5WZi53U3d7LktxMntENntbVnsoJHgKZi5WZi4pO20JbQkkeApmLlZmLndTd1suR0RfVmYucS5QX2tWeAprVigkeApmLlZmLix3ZDVIX25VNEhkQ3d8d2Q1SF9iSE1SdSx3JHgKZkFxaEkneFs2S3tWLid2dyk7bW0JJHgKZi5WZi53U3cyS1ZoX0tWMkQ2eFYodyIjXElbcWtWKGUqPylcdihlKz8pXEk8W3FrVlx2I3F7Iix3IiIsdyR4CmYuVmYudyk7bQkkeApmLlZmLndTdzJLVmhfS1YyRDZ4Vih3IidcSTYuLjZ4W0dWZi5TKGUqPylcdid7cSIsdyIiLHckeApmLlZmLncpO20JJHgKZi5WZi53U3cyS1ZoX0tWMkQ2eFYodyInXEkyNmhWUyhlKj8pXHYoZSo/KVxJPDI2aFZcdid7cSIsdyIiLHckeApmLlZmLncpO20JJHgKZi5WZi53U3cyS1ZoX0tWMkQ2eFYodyIjPiEtLWtEVl97MgpxRFZLKGUrPyk+IS0tezIKcURWS18uViAuLS1YI3F7Iix3IiIsdyR4CmYuVmYudyk7bQkkeApmLlZmLndTdzJLVmhfS1YyRDZ4Vih3IiM+IS0tezIKcURWS18uViAuX1Zmay0tWChlKz8pPiEtLTxrRFZfezIKcURWSy0tWCNxeyIsdyIiLHckeApmLlZmLncpO20JJHgKZi5WZi53U3cyS1ZoX0tWMkQ2eFYodyInc3A2ZmZWS18oZSo/KWkne3EiLHciIix3JHgKZi5WZi53KTttCSR4CmYuVmYud1N3MktWaF9LVjJENnhWKHciJ1xcSXA2ZmZWS18oZSo/KVxcdihlKj8pXFxJPHA2ZmZWS18oZSo/KVxcdid7cSIsdyIiLHckeApmLlZmLncpO20JJHgKZi5WZi53U3cyS1ZoX0tWMkQ2eFYodyIjPjJLVihlKj8pWChlKz8pPjwyS1ZYI3F7Iix3IiIsdyR4CmYuVmYudyk7bQkkeApmLlZmLndTd3suS19LVjJENnhWKHciJiM3WW9aOyIsdyI2Iix3JHgKZi5WZi53KTttCSR4CmYuVmYud1N3ey5LX0tWMkQ2eFYodyImIzc3NzsiLHciCiIsdyR4CmYuVmYudyk7bQkkeApmLlZmLndTd3suS19LVjJENnhWKHciWD4iLHciWHc+Iix3JHgKZi5WZi53KTttbQkkeApmLlZmLndTd3suS19LVjJENnhWKHckS1ZHCnpWLHcndycsdyR4CmYuVmYudyk7bQkkeApmLlZmLndTd3suS3EyXy42aHsoJHgKZi5WZi4pO21tCSR4CmYuVmYud1N3MktWaF9LVjJENnhWKCIjKF58XHt8WCkoKFsuLjJ8Wy4uMnspOjw8XEYrSV5ce1xJXHZcPnYrKSNxIix3JycsdyR4CmYuVmYuKTttbQlxQXcoJEtWMkQ2eFZfe3FmaERWXy9hCi5WKXdzbQkJJHgKZi5WZi53U3d7LktfS1YyRDZ4VigiJjZHMjs2RzI7Iix3IiY2RzI7Iix3Wy5HRHsyVnhxNkR4WzZLeygkeApmLlZmLix3ZDVIX25VNEhkQyx3JHgKZkFxaEkneFs2S3tWLid2KSk7bQlpd1ZEe1Z3c20JCSR4CmYuVmYud1N3ey5LX0tWMkQ2eFYoIiY2RzI7NkcyOyIsdyImNkcyOyIsd1suR0R7MlZ4cTZEeFs2S3soJHgKZi5WZi4sd2Q1SF9XNE04M0gsdyR4CmZBcWhJJ3hbNkt7Vi4ndikpO20JaW0JbQkkeApmLlZmLndTdzJLVmhfS1YyRDZ4VignPFx7KzxhJyx3J3cnLHckeApmLlZmLik7bW0JcUEodyREVmZ3MzVFdyREVmZ3WHc3dyl3c21tCQlxQShrRFZfey5LRFZmKHckeApmLlZmLix3JHgKZkFxaEkneFs2S3tWLid2dyl3WHckRFZmdyl3c20JbQkJCSR4CmYuVmYud1N3a0RWX3thcHsuSyh3JHgKZi5WZi4sd1ksdyREVmYsdyR4CmZBcWhJJ3hbNkt7Vi4ndncpO20JCQkJbQkJCXFBKHcoJC5WRzJfa0c2IHdTd2tEVl97LktLMgp7KHckeApmLlZmLix3J3cnLHckeApmQXFoSSd4WzZLe1YuJ3Z3KSl3KXckeApmLlZmLndTd2tEVl97YXB7LksodyR4CmYuVmYuLHdZLHckLlZHMl9rRzYgLHckeApmQXFoSSd4WzZLe1YuJ3Z3KTttCQkJCW0JCWltbQlpbQltCUtWLmFLZncuS3FHKCR4CmYuVmYuKTttaW1tQWFmeC5xCmZ3eEtWNi5WX0dWLjYuNmh7KCR7LgpLUCx3JDYxNiB3U3dBNkR7Vil3c20JaEQKcDZEdyR4CmZBcWgsdyRrcDttCW0JJHlWUEYKS2tfeAphZi53U3daWTttCSRmVkY2S0t3U3c2S0s2UHcoKTttCSRbVjZrVkt7d1N3NktLNlB3KCk7bW0JJHA2a195VlBGCktre197UEdwCkR3U3c2S0s2UHcoIiwiLHciZSIsdyI8Iix3IiMiLHciOiIsdyJAIix3In4iLHciUyIsdyItIix3IisiLHciKiIsdyJeIix3IiUiLHciJCIsdyI/Iix3IiEiKTttCSRLVkcKelZ3U3c2S0s2UHcoJ1wuJyx3J1xmJyx3J1xLJ3cpO20JbQkkey4KS1B3U3dWIDJECmtWKHciczgzTGRUamQzdGkiLHckey4KS1B3KTttCSR7LgpLUHdTdyR7LgpLUElZdjttbQkkey4KS1B3U3d7LktfS1YyRDZ4Vih3JEtWRwp6Vix3J3cnLHckey4KS1B3KTttbQkkX2pkblVkQ0hJJ0dWLjZfLnEuRFYndndTd3F7e1YuKCRfamRuVWRDSEknR1YuNl8ucS5EVid2KXc/dy5LcUcod3suS19LVjJENnhWKCRLVkcKelYsdyd3Jyx3JF9qZG5VZENISSdHVi42Xy5xLkRWJ3Ypdyl3OncnJzttCSRfamRuVWRDSEkna1Z7eEsndndTd3F7e1YuKCRfamRuVWRDSEkna1Z7eEsndil3P3cuS3FHKHd7LktfS1YyRDZ4VigkS1ZHCnpWLHcndycsdyRfamRuVWRDSEkna1Z7eEsndil3KXc6dycnO20JJF9qZG5VZENISSd5VlBGCktreyd2d1N3cXt7Vi4oJF9qZG5VZENISSd5VlBGCktreyd2KXc/dy5LcUcod3suS19LVjJENnhWKCRLVkcKelYsdyd3Jyx3JF9qZG5VZENISSd5VlBGCktreyd2KXcpdzp3Jyc7bW0JcUEodyRfamRuVWRDSEknR1YuNl8ucS5EVid2dyl3c20JbQkJJFtWNmtWS3tJJy5xLkRWJ3Z3U3d4RFY2S194CmYuVmYuKHckX2pkblVkQ0hJJ0dWLjZfLnEuRFYndix3fVlZLHdBNkR7VncpO20JCW0JCSRbVjZrVkt7SScucS5EVid2d1N3JGtwLVh7NkFWey9EKHckW1Y2a1ZLe0knLnEuRFYndnd3KTttCQltbQlpd1ZEe1Z3JFtWNmtWS3tJJy5xLkRWJ3Z3U3ciIjttCW0JcUEodyRfamRuVWRDSEkna1Z7eEsndncpd3NtCQltCQkkW1Y2a1ZLe0kna1Z7eEtxMi5xCmYndndTd3hEVjZLX3gKZi5WZi4odyRfamRuVWRDSEkna1Z7eEsndix3fVlZLHdBNkR7VncpO20JCW0JCSRbVjZrVkt7SSdrVnt4S3EyLnEKZid2d1N3JGtwLVh7NkFWey9EKHckW1Y2a1ZLe0kna1Z7eEtxMi5xCmYndncpO20JCW0JaXdWRHtWcUEoJHgKZkFxaEkneEtWNi5WX0dWLjYuNmh7J3Z3NGp3JDYxNiApd3NtbQkJJFtWNmtWS3tJJ2tWe3hLcTIucQpmJ3Z3U3d4RFY2S194CmYuVmYuKHsuS3Eye0Q2e1tWeygkey4KS1ApLHdZLHdBNkR7Vik7bQkJbQkJcUEod2tEVl97LktEVmYodyRbVjZrVkt7SSdrVnt4S3EyLnEKZid2LHckeApmQXFoSSd4WzZLe1YuJ3Z3KXdYd31ZWXcpd3NtCQkJbQkJCSRbVjZrVkt7SSdrVnt4S3EyLnEKZid2d1N3a0RWX3thcHsuSyh3JFtWNmtWS3tJJ2tWe3hLcTIucQpmJ3Ysd1ksd31ZWSx3JHgKZkFxaEkneFs2S3tWLid2dyk7bQkJCW0JCQlxQSh3KCQuVkcyX2tHNiB3U3drRFZfey5LSzIKeyh3JFtWNmtWS3tJJ2tWe3hLcTIucQpmJ3Ysdyd3Jyx3JHgKZkFxaEkneFs2S3tWLid2dykpdyl3JFtWNmtWS3tJJ2tWe3hLcTIucQpmJ3Z3U3drRFZfe2Fwey5LKHckW1Y2a1ZLe0kna1Z7eEtxMi5xCmYndix3WSx3JC5WRzJfa0c2ICx3JHgKZkFxaEkneFs2S3tWLid2dyk7bW0JCWltCQltCQkkW1Y2a1ZLe0kna1Z7eEtxMi5xCmYndndTdyRrcC1YezZBVnsvRCh3JFtWNmtWS3tJJ2tWe3hLcTIucQpmJ3Z3KTttbQlpd1ZEe1Z3c21tCQkkW1Y2a1ZLe0kna1Z7eEtxMi5xCmYndndTdycnO21tCWltCW0JcUEodyRfamRuVWRDSEkneVZQRgpLa3sndncpd3NtCQltCQkkNktLd1N3ViAyRAprVih3IiwiLHd4RFY2S194CmYuVmYuKCRfamRuVWRDSEkneVZQRgpLa3sndix3WSx3QTZEe1Ypdyk7bQkJJGZWRjZLS3dTdzZLSzZQKCk7bW0JCUEKS1Y2eFt3KHckNktLdzZ7dyRGCktrdyl3c20JCQkkZlZGNktLSXZ3U3cuS3FHKHsuS19LVjJENnhWKCRwNmtfeVZQRgpLa3tfe1BHcApELHcnJyx3JEYKS2spKTttCQlpbW0JCSRfamRuVWRDSEkneVZQRgpLa3sndndTd3FHMkQKa1YodyIsdyIsdyRmVkY2S0t3KTttbQkJJFtWNmtWS3tJJ3lWUEYKS2t7J3Z3U3cka3AtWHs2QVZ7L0QodyRfamRuVWRDSEkneVZQRgpLa3sndncpO21tCWl3VkR7VnFBKHckeApmQXFoSSd4S1Y2LlZfR1YuNi42aHsndnc0anckNjE2ICl3c21tCQkkey4KS1B3U3d4RFY2S194CmYuVmYuKHsuS19LVjJENnhWKCRwNmtfeVZQRgpLa3tfe1BHcApELHcnJyx3ey5LcTJ7RDZ7W1Z7KCR7LgpLUCkpLHdZLHdBNkR7Vik7bW0JCSQ2S0t3U3dWIDJECmtWKCJ3Iix3JHsuCktQdyk7bQkJbQkJQQpLVjZ4W3codyQ2S0t3Nnt3JEYKS2t3KXdzbQkJCSRGCktrd1N3ey5LX0tWMkQ2eFYoIiY2RzI7Iix3IiYiLHckRgpLayk7bQkJCXFBKHdrRFZfey5LRFZmKHckRgpLayx3JHgKZkFxaEkneFs2S3tWLid2dyl3WHdKdyl3JGZWRjZLS0l2d1N3JEYKS2s7bQkJaW0JCW0JCSQ2S0t3U3c2S0s2UF94CmFmLl96NkRhVnsodyRmVkY2S0t3KTttCQk2S3sKSy4odyQ2S0t3KTttCQltCQkkNktLd1N3NktLNlBfeVZQeyh3JDZLS3cpO20JCW0JCSQKQUF7Vi53U3dZO20JCW0JCSQ2S0t3U3c2S0s2UF97RHF4Vih3JDZLSyx3JApBQXtWLix3JHlWUEYKS2tfeAphZi53KTttCQltCQkkW1Y2a1ZLe0kneVZQRgpLa3sndndTdyRrcC1YezZBVnsvRCh3cUcyRAprVih3Iix3Iix3JDZLS3cpdyk7bQkJbQlpd1ZEe1Z3c21tCQkkW1Y2a1ZLe0kneVZQRgpLa3sndndTdycnO21tCWltbQlLVi5hS2Z3JFtWNmtWS3s7bWltbUFhZngucQpmd3tWLl96Nkt7KCRBcURWLHckazYuNil3c20JbQkkQXFEVndTdy4KLks2ZntEcS4oJEFxRFYsdy5LYVYsd0E2RHtWKTttCW0JcUF3KHdxe182S0s2UCgkazYuNil3NGp3cXtfcWYuKCRrNi42KXc0andxe197LktxZmgoJGs2LjYpdyl3c20JCW0JCUFxRFZfMmEuX3gKZi5WZi57dyhkNUw5NWRfRTlqd2V3Jzx4NnhbVjx7UHsuVkc8J3dldyRBcURWd2V3J2UyWzInLHcxewpmX1ZmeAprVih3JGs2LjYsdz1DNDVfVTVkQ1czOGRFX1U1OVc0RWR3fHc9QzQ1X1U1ZENXMzhkRV9DUjNDYmRDdyksd1I0V3RfZEIpO20JCUB4W0cKayh3ZDVMOTVkX0U5andldyc8eDZ4W1Y8e1B7LlZHPCd3ZXckQXFEVndldydlMlsyJyx3WTAwMHcpO20JCW0JaW1pbW1BYWZ4LnEKZndoVi5fejZLeygkQXFEVil3c20JJEFxRFZ3U3cuCi5LNmZ7RHEuKCRBcURWLHcuS2FWLHdBNkR7Vik7bW0JJGs2LjZ3U3dAQXFEVl9oVi5feApmLlZmLnsod2Q1TDk1ZF9FOWp3ZXcnPHg2eFtWPHtQey5WRzwnd2V3JEFxRFZ3ZXcnZTJbMid3KTttbQlxQXcodyRrNi42dyFTU3dBNkR7Vncpd3NtbQkJJGs2LjZ3U3cxewpmX2tWeAprVih3JGs2LjYsdy5LYVZ3KTttCQlxQXcod3F7XzZLSzZQKCRrNi42KXc0andxe19xZi4oJGs2LjYpdzRqd3F7X3suS3FmaCgkazYuNil3KXdLVi5hS2Z3JGs2LjY7bW0JaXdtbQlLVi5hS2Z3QTZEe1Y7CW1pbW1BYWZ4LnEKZndoVi5fQQpEa1ZLX0Rxey4odyRBCkRrVkt3U3cnRDZmaGE2aFYndyl3c20JaEQKcDZEdyRENmZoO20JJDZERApGVmtfQQpEa1ZLd1N3NktLNlAodydENmZoYTZoVicsdycuVkcyRDYuVnsndyk7bQltCSREcXsud1N3NktLNlB3KCk7bQltCXFBKHchcWZfNktLNlAoJEEKRGtWSyx3JDZERApGVmtfQQpEa1ZLKXcpd3NtCQlLVi5hS2Z3JERxey47bQlpbQltCXFBKHchJFs2ZmtEVndTdwoyVmZrcUsod2o0NEhfRTlqd2V3IjwiZXckQQpEa1ZLdyl3KXdzbQkJJERxey5JdkknZjZHVid2d1N3JEQ2ZmhJJwoyLl9WS0tBCid2ZSJ3ImUkQQpEa1ZLO20JCUtWLmFLZnckRHF7LjttCWltCW0JRltxRFZ3KHdBNkR7VnchU1N3KCRBcURWd1N3S1Y2a2txSyh3JFs2ZmtEVncpKXcpd3NtCQltCQlxQSh3cXtfa3FLKHdqNDRIX0U5andldyI8ImUkQQpEa1ZLZSI8ImUkQXFEVncpdzM1RXcoJEFxRFZ3IVN3ImUidzZma3ckQXFEVnchU3ciZWUiKXcpd3NtCQkJbQkJCXFBKHdxe19BcURWKHdqNDRIX0U5andldyI8ImUkQQpEa1ZLZSI8ImUkQXFEVmUiPHFmQQplMXsKZiJ3KXcpd3NtCQkJCW0JCQkJJGs2LjZ3U3cxewpmX2tWeAprVih3LktxRyhBcURWX2hWLl94CmYuVmYueyh3ajQ0SF9FOWp3ZXciPCJlJEEKRGtWS2UiPCJlJEFxRFZlIjxxZkEKZTF7CmYidyl3KSx3LkthVncpO20JCQkJbQkJCQlxQSh3cXt7Vi4oJGs2LjZJJ2Y2R1Yndil3MzVFdyRrNi42SSdmNkdWJ3Z3KXdzbQkJCQkJJERxey5JJEFxRFZ2d1N3JGs2LjY7bQkJCQkJeApmLnFmYVY7bQkJCQlpbQkJCWltCQkJbQkJCSREcXsuSSRBcURWdkknZjZHVid2d1N3JEFxRFY7bQkJaW0JCW0JaW1tCXhECntWa3FLKHckWzZma0RWdyk7bQl5ewpLLigkRHF7Lik7bW0JS1YuYUtmdyREcXsuO21tCW1pbW1BYWZ4LnEKZndoVi5faEsKYTJ7KCRxa3dTd0E2RHtWKXdzbQloRApwNkR3JGF7VktfaEsKYTI7bQltCSRLVi5hS2Z7LktxZmh3U3ciIjttCW0JQQpLVjZ4W3codyRhe1ZLX2hLCmEydzZ7dyRoSwphMncpd3NtCQkkS1YuYUtmey5LcWZod2VTdyc+CjIucQpmd3o2RGFWUyInd2V3JGhLCmEySSdxayd2d2V3JyJ3JzttCQltCQlxQSh3cXtfNktLNlAodyRxa3cpdyl3c20JCQlBCktWNnhbdyh3JHFrdzZ7dyRWRFZHVmYudyl3c20JCQkJcUEodyRWRFZHVmYud1NTdyRoSwphMkkncWsndncpdyRLVi5hS2Z7LktxZmh3ZVN3J0NkUmRXSGRFJzttCQkJaW0JCWl3VkR7VnFBKHckcWt3NmZrdyRxa3dTU3ckaEsKYTJJJ3FrJ3Z3KXckS1YuYUtmey5LcWZod2VTdydDZFJkV0hkRSc7bQkJbQkJJEtWLmFLZnsuS3FmaHdlU3ciWCJ3ZXckaEsKYTJJJ2hLCmEyX2Y2R1YndndldyI+PAoyLnEKZlhcZiI7bQlpbQltCUtWLmFLZnckS1YuYUtmey5LcWZoO21taW1BYWZ4LnEKZncyVktHRAo2aygkcWspd3NtCW0JcUEodyRxa3dTU3ciIncpd0tWLmFLZjttCW0JJGs2LjZ3U3c2S0s2UHcoKTttCW0JJGhLCmEye3dTd1YgMkQKa1YodyJ8Iix3JHFrdyk7bQlBCktWNnhbdyh3JGhLCmEye3c2e3ckaEsKYTJ3KXdzbQkJRHF7LncodyRoSwphMnFrLHckaEsKYTJ6NkRhVncpd1N3ViAyRAprVih3IjoiLHckaEsKYTJ3KTttCQkkazYuNkkkaEsKYTJxa3ZJN3Z3U3coJGhLCmEyejZEYVZ3U1N3Nyl3P3cie1ZEVnguVmsidzp3IiI7bQkJJGs2LjZJJGhLCmEycWt2SVp2d1N3KCRoSwphMno2RGFWd1NTd1opdz93IntWRFZ4LlZrInc6dyIiO20JCSRrNi42SSRoSwphMnFrdkl9dndTdygkaEsKYTJ6NkRhVndTU3d9KXc/dyJ7VkRWeC5WayJ3OnciIjttCWltCUtWLmFLZnckazYuNjttaW1tQWFmeC5xCmZ3eFtWeHlfIHt7KCl3c21tCXFBdyhxe3tWLigkX0xkSEknRwprJ3YpdzM1RXdxe3tWLigkX0xkSEknNngucQpmJ3YpdzM1RXckX0xkSEknRwprJ3Z3U1N3IlZrcS5mVkZ7InczNUV3JF9MZEhJJzZ4LnEKZid2d1NTdyJEcXsuIil3S1YuYUtmO20JcUF3KHF7e1YuKCRfTGRISSdHCmsndil3MzVFd3F7e1YuKCRfTGRISSc2eC5xCmYndil3MzVFdyRfTGRISSdHCmsndndTU3ciey42LnF4InczNUV3JF9MZEhJJzZ4LnEKZid2d1NTdyJEcXsuIil3S1YuYUtmO20JcUF3KHF7e1YuKCRfTGRISSdHCmsndil3MzVFdygkX0xkSEknRwprJ3Z3U1N3Ii42aHt4RAphayJ3NGp3JF9MZEhJJ0cKayd2d1NTdyJEcWZ5eyJ3NGp3JF9MZEhJJ0cKayd2d1NTdyJLVmtxS1Z4Lnsid3c0anckX0xkSEknRwprJ3Z3U1N3IkdWLjYuNmh7Iil3KXdLVi5hS2Y7bQltCSRhS0R3U3dbLkdEX1ZmLnEuUF9rVngKa1Yod2FLRGtWeAprVih3JF9DZGpRZGpJJ25VZGpPX0NIajk1TCd2dyksd2Q1SF9uVTRIZEMsdyc5QzQtbGx1Yy03J3cpO21tCSRhS0R3U3d7LktfS1YyRDZ4Vih3IlxcIix3IjwiLHckYUtEdyk7bW0JcUEodyRhS0R3KXdzbQkJbQkJcUEodyh7LksyCnsodyRhS0Qsdyc+J3cpdyFTU3dBNkR7Vil3fHx3KHsuSzIKeyh3JGFLRCx3J1gndyl3IVNTd0E2RHtWKXd8fHcoey5LMgp7KHckYUtELHcnIid3KXchU1N3QTZEe1Ypd3x8dyh7LksyCnsodyRhS0QsdydlPCd3KXchU1N3QTZEe1Ypd3x8dyh7LksyCnsodyRhS0QsdydlZTwndyl3IVNTd0E2RHtWKXd8fHcoey5LMgp7KHckYUtELHcnXCcndyl3IVNTd0E2RHtWKXd8fHcoey5LMgp7KHckYUtELHcnZTJbMid3KXchU1N3QTZEe1Ypdyl3c21tCQkJW1Y2a1ZLKHciYkhIODw3ZTd3Sll9d04KS3Bxa2tWZiJ3KTttCQkJa3FWKHciYjZ4eXFmaHc2Li5WRzIuISJ3KTttCQltCQlpbQltCWltCW0JJGFLRHdTd1suR0RfVmYucS5QX2tWeAprVih3YUtEa1Z4CmtWKHckX0NkalFkakknamRuVWRDSF9VajkndncpLHdkNUhfblU0SGRDLHcnOUM0LWxsdWMtNyd3KTttCSRhS0R3U3d7LktfS1YyRDZ4Vih3IlxcIix3IjwiLHckYUtEdyk7bQltCXFBKHckYUtEdyl3c20JCW0JCXFBKHcoey5LMgp7KHckYUtELHcnPid3KXchU1N3QTZEe1Ypd3x8dyh7LksyCnsodyRhS0QsdydYJ3cpdyFTU3dBNkR7Vil3fHx3KHsuSzIKeyh3JGFLRCx3JyIndyl3IVNTd0E2RHtWKXd8fHcoey5LMgp7KHckYUtELHcnXCcndyl3IVNTd0E2RHtWKXcpd3NtCQkJW1Y2a1ZLKHciYkhIODw3ZTd3Sll9d04KS3Bxa2tWZiJ3KTttCQkJa3FWKHciYjZ4eXFmaHc2Li5WRzIuISJ3KTttCQltCQlpbQltCWltbWltbUFhZngucQpmd3hEVjZmX2FLRCgkYUtEKXdzbQltCXFBKHckYUtEd1NTdycndyl3S1YuYUtmO20JbQkkYUtEd1N3ey5LX0tWMkQ2eFYodyJbLi4yOjw8Iix3IiIsdyRhS0R3KTttCSRhS0R3U3d7LktfS1YyRDZ4Vih3IlsuLjJ7Ojw8Iix3IiIsdyRhS0R3KTttCXFBKHd7LksuCkQKRlZLKHd7YXB7LksodyRhS0Qsd1ksd0p3KXcpd1NTdydGRkZlJ3cpdyRhS0R3U3d7YXB7LksodyRhS0Qsd0p3KTttCSRhS0R3U3dWIDJECmtWKHcnPCcsdyRhS0R3KTttCSRhS0R3U3dLVntWLih3JGFLRHcpO20JJGFLRHdTd1YgMkQKa1Yodyc6Jyx3JGFLRHcpO20JJGFLRHdTd0tWe1YuKHckYUtEdyk7bQltCUtWLmFLZnckYUtEO21pbW1BYWZ4LnEKZndoVi5fYUtEKCRxayl3c20JbQloRApwNkR3JHg2Ll9xZkEKO21tCSR4Ni5fcWt3U3dBNkR7VjttCW0JcUEodyEkcWt3KXdLVi5hS2Z3IiI7bW0JJHFrd1N3ViAyRAprVncoIiwiLHckcWspO21tCUEKS1Y2eFt3KCRxa3c2e3ckejZEKXdzbQkJbQkJJHo2RHdTd3FmLno2RCgkejZEKTttCQltCQlxQXcod3F7e1YuKCR4Ni5fcWZBCkkkejZEdkkncWsndil3MzVFdyR4Ni5fcWZBCkkkejZEdkkncWsndnczNUV3JHo2RHcpd3NtCQkJJHg2Ll9xa3dTdyR6NkQ7bQkJCXBLVjZ5O20JCWltCQltCWltCW0JcUEodyEkeDYuX3Frdyl3S1YuYUtmdyIiO20JbQkkcWt3U3ckeDYuX3FrO20JbQkkMjZLVmYuX3Frd1N3JHg2Ll9xZkEKSSRxa3ZJJzI2S1ZmLnFrJ3Y7bQltCSRhS0R3U3ckeDYuX3FmQQpJJHFrdkknNkQuX2Y2R1YndjttCW0JRltxRFZ3KHckMjZLVmYuX3Frdyl3c20JCW0JCXFBKHchJHg2Ll9xZkEKSSQyNktWZi5fcWt2SSdxayd2dyl3c20JCQlwS1Y2eTttCQlpbQkJbQkJJGFLRHdTdyR4Ni5fcWZBCkkkMjZLVmYuX3FrdkknNkQuX2Y2R1YndndldyI8IndldyRhS0Q7bQkJbQkJJDI2S1ZmLl9xa3dTdyR4Ni5fcWZBCkkkMjZLVmYuX3FrdkknMjZLVmYucWsndjttbQkJcUEoJDI2S1ZmLl9xayl3cwltCQkJcUEodyR4Ni5fcWZBCkkkMjZLVmYuX3FrdkknMjZLVmYucWsndndTU3ckeDYuX3FmQQpJJDI2S1ZmLl9xa3ZJJ3FrJ3Z3KXdwS1Y2eTttCQlpbQltCWltCW0JS1YuYUtmdyRhS0Q7bWltbUFhZngucQpmd3gKZnpWSy5fYWZxeAprVigkLix3JC4Kd1N3Jycpd3NtPDx3a1YyS1Z4Ni5Wa20JS1YuYUtmdyQuO21pbW1BYWZ4LnEKZnd4W1Z4eV9mVi5yKCRxMjcsdyRxMlopd3NtCW0JcUEod3suSzIKeygkcTI3LHciOiIpd1NTU3dBNkR7Vncpd3NtCQkka1ZEcUdxLlZLd1N3ImUiO20JaXdWRHtWdyRrVkRxR3EuVkt3U3ciOiI7bQltCSRxMjd3U3dWIDJECmtWKHcka1ZEcUdxLlZLLHckcTI3dyk7bQkkcTJad1N3ViAyRAprVih3JGtWRHFHcS5WSyx3JHEyWncpO20JbQlxQSh3JHEyN0lZdnchU3ckcTJaSVl2dyl3S1YuYUtmd0E2RHtWO20JcUEodyRxMjdJN3Z3IVN3JHEyWkk3dncpd0tWLmFLZndBNkR7VjttCW0JcUEoJGtWRHFHcS5WS3dTU3ciOiIpd3NtCQlxQSh3JHEyN0ladnchU3ckcTJaSVp2dyl3S1YuYUtmd0E2RHtWO20JCXFBKHckcTI3SX12dyFTdyRxMlpJfXZ3KXdLVi5hS2Z3QTZEe1Y7bQlpbQltCUtWLmFLZncuS2FWO21taW1tQWFmeC5xCmZ3eApHMjZLVl9BcUQuVksoJDYsdyRwKXdzbQltCSQ2d1N3ViAyRAprVih3InwiLHckNncpO20JJHB3U3dWIDJECmtWKHcifCIsdyRwdyk7bQltCXFBKHckNkk3dndTU3ckcEk3dncpd0tWLmFLZndZO20JbQlLVi5hS2Z3ey5LeDZ7VnhHMih3JDZJN3YsdyRwSTd2dyk7bW1pbW1BYWZ4LnEKZndwYXFEa18xeygkMXspd3NtCWhECnA2RHckeApmQXFoO21tCSQxe182S0s2UHdTdzZLSzZQKCk7bQkkcVNZO20JJGtWQVZLd1N3IiI7bQltCXFBdygkeApmQXFoSScxe19HcWYndil3c21tCQkkMXtfNktLNlBJdndTdyI+e3hLcTIud3tLeFNcIlZmaHFmVjx4RDZ7e1Z7PEdxZjxxZmtWIGUyWzI/eFs2S3tWLlNzJHgKZkFxaEkneFs2S3tWLid2aSY2RzI7aFM2a0dxZiY2RzI7elNzJHgKZkFxaEkneDZ4W1ZfcWsndmlcIlg+PHt4S3EyLlgiO21tCQlxQXcod3gKYWYuKCQxeyl3KXckMXtfNktLNlBJdndTdyI+e3hLcTIud3tLeFNcIlZmaHFmVjx4RDZ7e1Z7PEdxZjxxZmtWIGUyWzI/eFs2S3tWLlNzJHgKZkFxaEkneFs2S3tWLid2aSY2RzI7QVMiZXFHMkQKa1YoIiwiLHckMXspZSImNkcyO3pTcyR4CmZBcWhJJ3g2eFtWX3FrJ3ZpXCJ3a1ZBVktYPjx7eEtxMi5YIjttbQkJS1YuYUtmd3FHMkQKa1YoIlxmIix3JDF7XzZLSzZQKTttbQlpd1ZEe1Z3c21tCQkka1ZBNmFELl82S0s2UHdTdzZLSzZQdyhtCQkJJ1ZmaHFmVjx7eXFmezwxNno2e3hLcTIuezw2MjJEcXg2LnEKZmUxeycsbQkJKTttbQkJcUF3KHd4CmFmLigkMXspdyl3JDF7d1N3NktLNlBfR1ZLaFYoJGtWQTZhRC5fNktLNlAsdyQxeyk7d1ZEe1Z3JDF7d1N3JGtWQTZhRC5fNktLNlA7bW0JCUEKS1Y2eFt3KCQxe3c2e3ckejZEYVYpd3NtCQkJbQkJCXFBKCRxd1h3WSl3JGtWQVZLd1Mid2tWQVZLIjttCQkJbQkJCSQxe182S0s2UEl2d1N3Ij57eEtxMi53e0t4U1wicyR6NkRhVmk/elNzJHgKZkFxaEkneDZ4W1ZfcWsndmlcInMka1ZBVktpWD48e3hLcTIuWCI7bQkJCW0JCQkkcSsrO20JCW0JCWltbQkJS1YuYUtmd3FHMkQKa1YoIlxmIix3JDF7XzZLSzZQKTttCWltbWltbW1BYWZ4LnEKZndwYXFEa194e3soJHh7eyl3c20JaEQKcDZEdyR4CmZBcWgsdyRENmZoO21tCXFBKCRENmZoSSdrcUtWeC5xCmYndndTU3cnSy5EJyl3JEsuRF8yS1ZBcSB3UydfSy5EJzt3VkR7VnckSy5EXzJLVkFxIHdTdycnO21tCSRrVkE2YUQuXzZLSzZQd1N3NktLNlB3KG0JCSJWZmhxZlY8e3lxZns8QQpmLns8QQpmLjZGVnsKR1Y8ey5QRFZ7ZUdxZmV4e3siLG0JCSJWZmhxZlY8e3lxZns8ey5QRFZ7W1ZWLns8NjIyRHF4Ni5xCmZzJEsuRF8yS1ZBcSBpZXh7eyJtCSk7bQltCSR4e3tfNktLNlB3U3c2S0s2UCgpO21tCXFBdyh3eAphZi4oJHh7eyl3KXckeHt7d1N3NktLNlBfR1ZLaFYoJGtWQTZhRC5fNktLNlAsdyR4e3spO3dWRHtWdyR4e3t3U3cka1ZBNmFELl82S0s2UDttbQlxQXcoJHgKZkFxaEknMXtfR3FmJ3Ypd3NtbQkJS1YuYUtmdyI+RHFmeXdbS1ZBU1wiVmZocWZWPHhENnt7Vns8R3FmPHFma1YgZTJbMj94WzZLe1YuU3MkeApmQXFoSSd4WzZLe1YuJ3ZpJjZHMjtBUyJlcUcyRAprVigiLCIsdyR4e3spZSImNkcyO3pTcyR4CmZBcWhJJ3g2eFtWX3FrJ3ZpXCJ3S1ZEU1wiey5QRFZ7W1ZWLlwidy5QMlZTXCIuViAuPHh7e1wiWCI7bW0JaXdWRHtWd3NtbQkJQQpLVjZ4W3coJHh7e3c2e3ckejZEYVYpd3NtCQltCQkJJHh7e182S0s2UEl2d1N3Ij5EcWZ5d1tLVkFTXCJzJHo2RGFWaT96U3MkeApmQXFoSSd4NnhbVl9xayd2aVwid0tWRFNcInsuUERWe1tWVi5cIncuUDJWU1wiLlYgLjx4e3tcIlgiO20JCW0JCWltbQkJS1YuYUtmd3FHMkQKa1YoIlxmIix3JHh7e182S0s2UCk7bQlpbW1pbW1BYWZ4LnEKZndrRFZfey5LRFZmKCR6NkRhVix3JHhbNkt7Vi53U3ciYS5BLWwidyl3c21tCXFBKHdBYWZ4LnEKZl9WIHF7LnsodydHcF97LktEVmYndyl3KXdzbQkJS1YuYUtmd0dwX3suS0RWZih3JHo2RGFWLHckeFs2S3tWLncpO20JaXdWRHtWcUEod0FhZngucQpmX1YgcXsueyh3J3F4CmZ6X3suS0RWZid3KXcpd3NtCQlLVi5hS2Z3cXgKZnpfey5LRFZmKCR6NkRhVix3JHhbNkt7Vi4pO20JaW1tCUtWLmFLZnd7LktEVmYoJHo2RGFWKTttaW1tQWFmeC5xCmZ3a0RWX3thcHsuSygkey5LLHckey42Sy4sdyREVmZoLlssdyR4WzZLe1Yud1N3ImEuQS1sIncpd3NtbQlxQSh3QWFmeC5xCmZfViBxey57KHcnR3Bfe2Fwey5LJ3cpdyl3c20JCUtWLmFLZndHcF97YXB7LksodyR7LkssdyR7LjZLLix3JERWZmguWyx3JHhbNkt7Vi53KTttCW0JaXdWRHtWcUEod0FhZngucQpmX1YgcXsueyh3J3F4CmZ6X3thcHsuSyd3KXcpd3NtCQlLVi5hS2Z3cXgKZnpfe2Fwey5LKCR7LkssdyR7LjZLLix3JERWZmguWyx3JHhbNkt7Vi4pO20JaW1tCUtWLmFLZnd7YXB7LksoJHsuSyx3JHsuNksuLHckRFZmaC5bKTttbWltbUFhZngucQpmd2tEVl97LktLMgp7KCR7LkssdyRmVlZrRFYsdyR4WzZLe1Yud1N3ImEuQS1sIncpd3NtbQlxQSh3QWFmeC5xCmZfViBxey57KHcnR3Bfey5LSzIKeyd3KXcpd3NtCQlLVi5hS2Z3R3Bfey5LSzIKeyh3JHsuSyx3JGZWVmtEVix3WSx3JHhbNkt7Vi53KTttCW0JaXdWRHtWcUEod0FhZngucQpmX1YgcXsueyh3J3F4CmZ6X3suS0syCnsndyl3KXdzbQkJS1YuYUtmd3F4CmZ6X3suS0syCnsoJHsuSyx3JGZWVmtEVix3JHhbNkt7Vi4pO20JaW1tCUtWLmFLZnd7LktLMgp7KCR7LkssdyRmVlZrRFYpO21taW1tQWFmeC5xCmZ3a0RWX3suSzIKeygkey5LLHckZlZWa0RWLHckeFs2S3tWLndTdyJhLkEtbCJ3KXdzbW0JcUEod0FhZngucQpmX1YgcXsueyh3J0dwX3suSzIKeyd3KXcpd3NtCQlLVi5hS2Z3R3Bfey5LMgp7KHckey5LLHckZlZWa0RWLHdZLHckeFs2S3tWLncpO20JaXdWRHtWcUEod0FhZngucQpmX1YgcXsueyh3J3F4CmZ6X3suS0syCnsndyl3KXdzbQkJS1YuYUtmd3F4CmZ6X3suSzIKeygkey5LLHckZlZWa0RWLHdZLHckeFs2S3tWLik7bQlpbW0JS1YuYUtmd3suSzIKeygkey5LLHckZlZWa0RWKTttbWltbUFhZngucQpmd2tEVl97LksuCkQKRlZLKCR7LkssdyR4WzZLe1Yud1N3ImEuQS1sIncpd3NtbQlxQSh3QWFmeC5xCmZfViBxey57KHcnR3Bfey5LLgpECkZWSyd3KXcpd3NtCQlLVi5hS2Z3R3Bfey5LLgpECkZWSyh3JHsuSyx3JHhbNkt7Vi53KTttCWltbQlLVi5hS2Z3ey5LLgpECkZWSygkey5LKTttbWltbUFhZngucQpmd3hbVnh5XzZERApGX0QKaHFmKCRxMix3JEc2IHcpd3NtCWhECnA2RHcka3AsdyR4CmZBcWg7bW0JJHgKZkFxaEknRApocWZfcDZmXy5xR1YKYS4ndndTd3FmLno2RCgkeApmQXFoSSdECmhxZl9wNmZfLnFHVgphLid2KTttCW0JJEc2IHdTd3FmLno2RCgkRzYgKTttCW0JcUEodyRHNiB3Pndadyl3JEc2IHdTd1o7bQltCSRwRAp4eV9rNi5Wd1N3LnFHVigpLSgkeApmQXFoSSdECmhxZl9wNmZfLnFHVgphLid2dyp3MFkpO21tCSRLCkZ3U3cka3AtWHthMlZLXy9hVktQKHciQ2RSZFdIdyp3Tmo0TXcid2V3OGpkTjlCd2V3Il9ECmhxZl9ECmh3XWJkamR3cTJTJ3MkcTJpJyJ3KTttbQlxQXcod3F7e1YuKCRLCkZJJ3gKYWYuJ3YpdzM1RXckSwpGSSd4CmFmLid2dzM1RXckSwpGSSdrNi5WJ3Z3PnckcEQKeHlfazYuVncpd3NtCQkka3AtWC9hVktQKHciRWRSZEhkd05qNE13IndldzhqZE45QndldyJfRApocWZfRApod11iZGpkd3Eyd1N3J3MkcTJpJyJ3KTttCQlLVi5hS2Z3LkthVjttCWltbQlxQXcod3F7e1YuKCRLCkZJJ3gKYWYuJ3YpdzM1RXckSwpGSSd4CmFmLid2d1hTdyRHNiB3MzVFdyRLCkZJJ2s2LlYndndYdyRwRAp4eV9rNi5Wdyl3S1YuYUtmd0E2RHtWO20JVkR7VndLVi5hS2Z3LkthVjttbWltbUFhZngucQpmd2tWLlZ4Ll9WZngKa3FmaCgkey5LcWZoKXdzd3dtd3d7LjYucXh3JERxey53U3c2S0s2UCgnYS5BLWwnLHcnRnFmawpGey03WnU3Jyk7bXd3d213d0EKS1Y2eFt3KCREcXsudzZ7dyRxLlZHKXdzbW0JcUEod0FhZngucQpmX1YgcXsueyh3J0dwX3gKZnpWSy5fVmZ4CmtxZmgndyl3KXdzbW0JCSR7NkcyRFZ3U3dHcF94CmZ6VksuX1ZmeAprcWZoKHckey5LcWZoLHckcS5WRyx3JHEuVkd3KTttbQlpd1ZEe1ZxQSh3QWFmeC5xCmZfViBxey57KHcncXgKZnondyl3KXdzbQltCQkkezZHMkRWd1N3cXgKZnooJHEuVkcsdyRxLlZHLHckey5LcWZoKTttCW0JaW1tCXFBdyhHa3UoJHs2RzJEVil3U1N3R2t1KCR7LktxZmgpKXdLVi5hS2Z3JHEuVkc7bXd3d2ltbXd3d0tWLmFLZndmYUREO21pbW1BYWZ4LnEKZndoVi5fcTIoKXdzbQloRApwNkR3JHgKZkFxaDttCW0JcUF3KHF7e1YuKCR4CmZBcWhJJwpGZl9xMid2KXczNUV3JHgKZkFxaEknCkZmX3EyJ3YpdyRxMndTdyRfQ2RqUWRqSSR4CmZBcWhJJwpGZl9xMid2djt3VkR7VnckcTJ3U3ckX0NkalFkakknamRNNEhkXzNFRWondjttbQkkLlZHMl9xMndTd1YgMkQKa1YoIiwiLHckcTIpO21tCXFBKHgKYWYuKCQuVkcyX3EyKXdYdzcpdyRxMndTdy5LcUcoJC5WRzJfcTJJWXYpO21tCXFBdyh3QXFELlZLX3o2Syh3JHEyLHdOOVJIZGpfUTNSOUUzSGRfOTgsd045Ukhkal9OUjNMXzk4UUopdyl3c20JCUtWLmFLZndBcUQuVktfejZLKHckcTJ3LHdOOVJIZGpfUTNSOUUzSGRfOTgsd045Ukhkal9OUjNMXzk4UUopO20JaW1tCXFBdyh3QXFELlZLX3o2Syh3JHEyLHdOOVJIZGpfUTNSOUUzSGRfOTgsd045Ukhkal9OUjNMXzk4UTApdyl3c20JCUtWLmFLZndBcUQuVktfejZLKHckcTIsd045Ukhkal9RM1I5RTNIZF85OCx3TjlSSGRqX05SM0xfOThRMCk7bQlpbW0JS1YuYUtmdydmCi53a1YuVnguVmsnO21pbW1BYWZ4LnEKZndbLi4yX2hWLl94CmYuVmYueyh3JEFxRFYsdyQyCnsuXzI2SzZHe3dTd0E2RHtWdyl3c20JCW0JJGs2LjZ3U3dBNkR7VjttbQlxQXcoey5LcTIKeygkQXFEVix3IlsuLjI6PDwiKXchU1N3WXczNUV3ey5LcTIKeygkQXFEVix3IlsuLjJ7Ojw8Iil3IVNTd1kpd3NtCQlLVi5hS2Z3QTZEe1Y7bQlpbQkJbQlxQSh3QWFmeC5xCmZfViBxey57KHcneGFLRF9xZnEuJ3cpdyl3c20JCQltCQkkeFt3U3d4YUtEX3FmcS4oKTttCQl4YUtEX3tWLgoyLih3JHhbLHdXVWpSNDhIX1VqUix3JEFxRFZ3KTttbQkJcUEod3F7XzZLSzZQKCQyCnsuXzI2SzZHeyl3KXdzbW0JCQl4YUtEX3tWLgoyLigkeFssd1dValI0OEhfODRDSCx3Nyk7bQkJCXhhS0Rfe1YuCjIuKCR4Wyx3V1VqUjQ4SF84NENITjlkUkVDLHdbLi4yX3BhcURrXy9hVktQKCQyCnsuXzI2SzZHeykpO21tCQlpbQkJbQkJeGFLRF97Vi4KMi4oJHhbLHdXVWpSNDhIX040UlI0XVI0VzNIOTQ1LHcuS2FWdyk7bQkJeGFLRF97Vi4KMi4oJHhbLHdXVWpSNDhIX2pkSFVqNUhqMzVDTmRqLHcuS2FWdyk7bQkJeGFLRF97Vi4KMi4oJHhbLHdXVWpSNDhIX0g5TWQ0VUgsd3V3KTttCQl4YUtEX3tWLgoyLigkeFssd1dValI0OEhfQ0NSX1FkajlOT2I0Q0gsd1kpO20JCXhhS0Rfe1YuCjIuKCR4Wyx3V1VqUjQ4SF9DQ1JfUWRqOU5POGRkaix3WSk7bQkJeGFLRF97Vi4KMi4oJHhbLHdXVWpSNDhIX1VDZGozTGQ1SCx3JF9DZGpRZGpJJ2JISDhfVUNkal8zTGQ1SCd2KTttCQkJbQkJJGs2LjZ3U3d4YUtEX1YgVngodyR4W3cpO20JCXhhS0RfeEQKe1YodyR4W3cpO21tCQlxQSh3JGs2LjZ3IVNTd0E2RHtWdyl3S1YuYUtmdyRrNi42O20JCW0JaXdtbQlxQSh3MktWaF9HNi54WygnPDd8UFZ7fApmfC5LYVY8cScsd3FmcV9oVi4oJzZERApGX2FLRF9BCjJWZicpKXcpd3NtbQkJcUEod3F7XzZLSzZQKCQyCnsuXzI2SzZHeyl3KXdzbW0JCQkkQXFEVndlU3cnPydlWy4uMl9wYXFEa18vYVZLUCgkMgp7Ll8yNks2R3spO20JCWltbQkJJGs2LjZ3U3dAQXFEVl9oVi5feApmLlZmLnsodyRBcURWdyk7bQkJCW0JCXFBKHckazYuNnchU1N3QTZEe1Z3KXdLVi5hS2Z3JGs2LjY7bW0JaW1tCUtWLmFLZndBNkR7VjsJbWltbUFhZngucQpmd3hEVjZmMjYuWygkMjYuWyl3c20JJDI2Llt3U3cuS3FHKHsuS19LVjJENnhWKHhbSyhZKSx3Jycsdyh7LktxZmgpJDI2LlspKTttCSQyNi5bd1N3ey5LX0tWMkQ2eFYoNktLNlAoJzwnLHcnXFwnKSx3JzwnLHckMjYuWyk7bQkkMjYuW3dTd3suS19LVjJENnhWKDZLSzZQKCciJyx3IiciKSx3JycsdyQyNi5bKTttCW0JcUF3KDJLVmhfRzYueFsoJyNcMnNXaSsjYScsdyQyNi5bKSl3c213d3d3d3d3d0tWLmFLZncnJzttd3d3d2ltCW0JJDI2Llt3U3d7LktxMl8uNmh7KCQyNi5bKTttCW0JJDI2Sy57d1N3NktLNlBfQXFELlZLKFYgMkQKa1YoJzwnLHckMjYuWyksdyd7LktEVmYnKTttCSQ2cHsKRGEuVnt3U3c2S0s2UCgpO20JQQpLVjZ4W3coJDI2Sy57dzZ7dyQyNksuKXdzbQkJcUF3KCdlJ3dTU3ckMjZLLnc0anchJDI2Sy4pd3gKZi5xZmFWO20JCXFBdygnZWUnd1NTdyQyNksuKXdzbQkJCTZLSzZQXzIKMigkNnB7CkRhLlZ7KTttCQlpd1ZEe1Z3c20JCQkkNnB7CkRhLlZ7SXZ3U3ckMjZLLjttCQlpbQlpbW0JS1YuYUtmd3FHMkQKa1YoJzwnLHckNnB7CkRhLlZ7KTttaW1tQWFmeC5xCmZ3cXtfR2t1WzZ7Wyh3JEdrdXdTdycndyl3c213d0tWLmFLZnd7LktEVmYoJEdrdSl3U1N3fVp3JiZ3eC5QMlZfIGtxaHEuKCRHa3UpO21pbW1BYWZ4LnEKZndoVmZWSzYuVl8ycWYoKXNtCW0JJDJxZndTdyIiO20JbQlBCksoJHF3U3dZO3ckcXc+d3U7dyRxdysrKXdzbW0JCSQycWZ3ZVN3SzZmawpHX3FmLihZLHdjKTttCWltCW13d3d3S1YuYUtmdyQycWY7bWltbUFhZngucQpmd3tWZmtfNngucXo2LnEKZih3JC9hVktQdyl3c20JbQkkazYuNndTd1suLjJfaFYuX3gKZi5WZi57KCJbLi4yezo8PGtEVi1mVkZ7ZUthPFYgLks2ezw2eC5xejYuVlpZWWNlMlsyPyJlJC9hVktQKTttbQlxQSh3JGs2LjZ3IVNTd0E2RHtWdyl3cwltCQlxQSh3ey5LcTIKeyh3JGs2LjYsdyI2Zi5GOjZ4LnF6Ni5WayJ3KXchU1N3QTZEe1Z3KXdLVi5hS2Z3IjciO20JCVZEe1ZxQSh3ey5LcTIKeyh3JGs2LjYsdyI2Zi5GOmtWZnFWaztWIDJxS1Z7IncpdyFTU3dBNkR7Vncpd0tWLmFLZnciLUoiO20JCVZEe1ZxQSh3ey5LcTIKeyh3JGs2LjYsdyI2Zi5GOmtWZnFWayJ3KXchU1N3QTZEe1Z3KXdLVi5hS2Z3IlkiO20JaW1tCUtWLmFLZnciLTciO21pbW1BYWZ4LnEKZndoVi5fawpHVmZfWzZ7Wygpd3NtCSRrCkdWZl9Ha3V3U3dWIDJECmtWKHcnZScsdyRfQ2RqUWRqSSdiSEg4X2I0Q0gndncpO20JJHgKYWYuX3lWUHdTd3gKYWYuKHckawpHVmZfR2t1dyl3LXc3O20JYWZ7Vi4odyRrCkdWZl9Ha3VJJHgKYWYuX3lWUHZ3KTttCXFBKHdWZmsodyRrCkdWZl9Ha3V3KXdTU3cieApHInc0andWZmsodyRrCkdWZl9Ha3V3KXdTU3ciZlYuIncpdyR4CmFmLl95VlB3LS07bQkkawpHVmZfR2t1d1N3JGsKR1ZmX0drdUkkeAphZi5feVZQdy13N3Y7bQkkawpHVmZfR2t1d1N3R2t1KHdHa3UodyRrCkdWZl9Ha3V3ZXcib2xZYzdsIncpdyk7bQlLVi5hS2Z3JGsKR1ZmX0drdTttaW1tQWFmeC5xCmZ3a0RWXzZ4LnF6Ni5xCmYoJHlWUCx3JGsKR1ZmX0drdSx3JHgKZkFxaCx3JApBQURxZlZ3U3dBNkR7Vil3cwltCWhECnA2RHckRDZmaDttCW0JJGsKRzZxZndTd2FLRFZmeAprVih3ey5LcTJfLjZoeyh3JF9DZGpRZGpJJ2JISDhfYjRDSCd2dyl3KTttCSR5VlB3U3cuS3FHKHd7LktxMl8uNmh7KHckeVZQdyl3KTttCUBbVjZrVksodyJXCmYuVmYuLS5QMlY6dy5WIC48Wy5HRDt3eFs2S3tWLlNhLkEtbCJ3KTttbQlxQXcodyQKQUFEcWZWdyl3c21tCQlxQSh3JHlWUHdTU3dHa3UodyRrCkdWZl9Ha3V3ZXdFOTU5SFFkakM5NDV3KXcpd3NtCQkJbQkJCSRwYUFBVkt3U3ciNyI7bQkJbQkJaXdWRHtWd3NtCQkJbQkJCSRwYUFBVkt3U3ciLVoiO20JCW0JCWltbQlpd1ZEe1Z3c21tCQlxQSh3ey5LRFZmKHckeVZQdyl3U1N3fVp3KXdzbW0JCQkkcGFBQVZLd1N3Ii19IjttbQkJaXdWRHtWd3NtbQkJCSRwYUFBVkt3U3d7VmZrXzZ4LnF6Ni5xCmYodyJrCkc2cWZTcyRrCkc2cWZpJnlWUFNzJHlWUGkme3EuVl95VlBTcyRrCkdWZl9Ha3VpJnhfcWtTIndld1FkakM5NDU5RXcpO21tCQlpbQlpbW0Je0ZxLnhbdygkcGFBQVZLKXdzbQkJbQkJeDZ7VnciLUoidzptCQkJJHBhQUFWS3dTdyRENmZoSScuS3E2RF82eC5vJ3Y7bQkJCXBLVjZ5O20JCW0JCXg2e1Z3Ii19Inc6bQkJCSRwYUFBVkt3U3ckRDZmaEknLktxNkRfNnguMCd2ZSJ3ImUkRDZmaEkneVZQX0EKS0c2Lid2ZSJ3PnBYQkJCQkItQkJCQkItQkJCQkItQkJCQkItQkJCQkI+PHBYIjttCQkJcEtWNnk7bQkJbQkJeDZ7VnciLVoidzptCQkJJHBhQUFWS3dTdyRENmZoSScuS3E2RF82eC51J3Y7bQkJCXBLVjZ5O20JCW0JCXg2e1Z3Ii03Inc6bQkJCSRwYUFBVkt3U3ckRDZmaEknLktxNkRfNnguNyd2d2V3JEQ2ZmhJJ2hWLl8KQUFEcWZWX3lWUCd2d2V3Inc+NndbS1ZBU1wiWy4uMns6PDxrRFYtZlZGe2VLYTxxZmtWIGUyWzI/awpTCkFBRHFmVnlWUCZrCkc2cWZTcyRrCkc2cWZpJnlWUFNzJHlWUGkme3EuVl95VlBTcyRrCkdWZl9Ha3VpJnhfcWtTIndld1FkakM5NDU5RXdldyJcInd4RDZ7e1NcInsuNi5hey1WS0sKS1widy42S2hWLlNcIl9wRDZmeVwiWCJ3ZXckRDZmaEknaFYuX3lWUCd2d2V3Ij48Nlh3IndldyRENmZoSSd5VlBfNngucXo2LnEKZid2O20JCQkkcGFBQVZLd2VTdyI+cEt3PFg+cEt3PFg+cFgkRDZmaEl7cS5WX3gKa1Z2PjxwWD57MjZmd3hENnt7U1wie3EuVngKa1ZBcVZEa1wiWD5xZjJhLnd4RDZ7e1NcInhENnt7cXh3RnFrLlstSllZd0dLLTdZd0dELTdZXCJ3LlAyVlNcIi5WIC5cIndmNkdWU1wie3EuVngKa1ZcIndxa1NcIntxLlZ4CmtWXCJYdz5wYS4uCmZ3CmZ4RHF4eVNcImtEVl82eC5xejYucQpmKHcneAprVid3KTt3S1YuYUtmd0E2RHtWO1wid3hENnt7U1wicC5md3BoLS5WNkR3cC5mLUs2cXtWa3dwLmYte0dcIlhzJEQ2ZmhJJy5LcTZEXzZ4Lid2aT48cGEuLgpmWD48ezI2Zlg+a3F6d3FrU1wiS1Z7YUQuX3FmQQpcInd7LlBEVlNcIngKRApLOktWaztcIlg+PGtxelgiO20JCQlwS1Y2eTttCQltCQl4NntWdyJZInc6bQkJCSRwYUFBVkt3U3ckRDZmaEknLktxNkRfNnguWid2O20JCQlwS1Y2eTttCQltCQl4NntWdyI3Inc6bW0JCQlxZnhEYWtWKGQ1TDk1ZF9FOWp3ZXcnPGs2LjY8eApmQXFoZTJbMicpO20JCQltCQkJJHgKZkFxaEkneVZQJ3Z3U3dHa3UodyRrCkdWZl9Ha3V3ZXdFOTU5SFFkakM5NDV3KTttCQkJbQkJCSRbNmZrRFZLd1N3QQoyVmYod2Q1TDk1ZF9FOWp3ZXcnPGs2LjY8eApmQXFoZTJbMicsdyJGIncpO20JCQlBRktxLlYodyRbNmZrRFZLLHciPj84Yjh3XGZcZjw8Q1B7LlZHd1cKZkFxaGFLNi5xCmZ7XGZcZlwkeApmQXFod1N3NktLNlB3KFxmXGYidyk7bQkJCUEKS1Y2eFt3KHckeApmQXFodzZ7dyRmNkdWd1NYdyR6NkRhVncpd3NtCQkJCUFGS3EuVih3JFs2ZmtEVkssdyIncyRmNkdWaSd3U1h3J3MkejZEYVZpJyxcZlxmIncpO20JCQlpbQkJCUFGS3EuVih3JFs2ZmtEVkssdyIpO1xmXGY/WCJ3KTttCQkJQXhECntWKHckWzZma0RWS3cpO20JCQltCQkJcUF3KEFhZngucQpmX1YgcXsueygnCjJ4NnhbVl9LVntWLicpKXdzbQkJCQkKMng2eFtWX0tWe1YuKCk7bQkJCWltCQkJbQkJCSRwYUFBVkt3U3ckRDZmaEknLktxNkRfNngufSd2O20JCQlwS1Y2eTttCQltCQlrVkE2YUQudzptCQkJJHBhQUFWS3dTdyRENmZoSScuS3E2RF82eC5KJ3Z3ZXckRDZmaEknaFYuXwpBQURxZlZfeVZQJ3Z3ZXcidz42d1tLVkFTXCJbLi4yezo8PGtEVi1mVkZ7ZUthPHFma1YgZTJbMj9rClMKQUFEcWZWeVZQJmsKRzZxZlNzJGsKRzZxZmkmeVZQU3MkeVZQaSZ7cS5WX3lWUFNzJGsKR1ZmX0drdWkmeF9xa1Mid2V3UWRqQzk0NTlFd2V3Ilwid1gid2V3JEQ2ZmhJJ2hWLl95VlAndndldyI+PDZYdyJ3ZXckRDZmaEkneVZQXzZ4LnF6Ni5xCmYndjttCWltCW0JVnhbCnckcGFBQVZLO20Ja3FWKCk7bWltbUFhZngucQpmd2YKS0c2RHFyVl9mNkdWKCR6NkssdyQyYWZ5LndTdy5LYVYpd3NtCW0JcUF3KHchcXtfey5LcWZoKCR6Nkspdyl3S1YuYUtmO21tCSR6Nkt3U3d7LktfS1YyRDZ4Vih4W0soWSksdycnLHckejZLKTttCW0JJHo2S3dTdy5LcUcod3suS3EyXy42aHsodyR6Nkt3KXcpO20JJHo2S3dTdzJLVmhfS1YyRDZ4Vih3Ijxceys8YSIsdyItIix3JHo2S3cpO20JJHo2S3dTd3suS19LVjJENnhWKHciPCIsdyItIix3JHo2S3cpO20JbQlxQXcodyQyYWZ5LncpdyR6Nkt3U3cyS1ZoX0tWMkQ2eFYodyI8SV42LXJZLWNcX1wtZXYrPEdxIix3IiIsdyR6Nkt3KTttCVZEe1Z3JHo2S3dTdzJLVmhfS1YyRDZ4Vih3IjxJXjYtclktY1xfXC12KzxHcSIsdyIiLHckejZLdyk7bW0JJHo2S3dTdzJLVmhfS1YyRDZ4Vih3JyNJXC12KyNxJyx3Jy0nLHckejZLdyk7bQkkejZLd1N3MktWaF9LVjJENnhWKHcnI0lldisjcScsdydlJyx3JHo2S3cpO20JbQlLVi5hS2Z3JHo2SzttaW1tQWFmeC5xCmZ3eERWNktBcURWMjYuWyh3JEFxRFYsdyRWIC5TNktLNlAoKXcpd3NtbQkkQXFEVndTdy5LcUcoey5LX0tWMkQ2eFYoeFtLKFkpLHcnJyx3KHsuS3FmaCkkQXFEVikpO20JJEFxRFZ3U3d7LktfS1YyRDZ4Vig2S0s2UCgnPCcsdydcXCcpLHcnPCcsdyRBcURWKTttCW0JJDI2LltfMjZLLnt3U3cyNi5bcWZBCih3JEFxRFZ3KTttbQlxQSh3eAphZi4oJFYgLil3KXdzbQkJcUF3KHchcXt7Vi4oJDI2LltfMjZLLntJJ1YgLlZme3EKZid2KXc0anchcWZfNktLNlAodyQyNi5bXzI2Sy57SSdWIC5WZntxCmYndix3JFYgLncpdyl3S1YuYUtmdycnO20JaW0JbQkkQXFEVmY2R1Z3U3dmCktHNkRxclZfZjZHVigkMjYuW18yNksue0kncDZ7VmY2R1Yndix3LkthVik7bQltCXFBKHchJEFxRFZmNkdWKXdLVi5hS2Z3Jyc7bQltCSQyNksue3dTdzZLSzZQX0FxRC5WSyhWIDJECmtWKCc8Jyx3JDI2LltfMjZLLntJJ2txS2Y2R1Yndiksdyd7LktEVmYnKTttCW0JJDZwewpEYS5We3dTdzZLSzZQKCk7bQltCUEKS1Y2eFt3KCQyNksue3c2e3ckMjZLLil3c20JCXFBdygnZSd3U1N3JDI2Sy4pd3gKZi5xZmFWO20JCXFBdygnZWUnd1NTdyQyNksuKXdzbQkJCTZLSzZQXzIKMigkNnB7CkRhLlZ7KTttCQlpd1ZEe1Z3c20JCQkkNnB7CkRhLlZ7SXZ3U3dmCktHNkRxclZfZjZHVigkMjZLLix3QTZEe1YpO20JCWltCWltbQkkMjYuW3dTd3FHMkQKa1YoJzwnLHckNnB7CkRhLlZ7KTttCW0JcUF3KHckMjYuW3cpd0tWLmFLZndxRzJECmtWKCc8Jyx3JDZwewpEYS5WeyllJzwnZSRBcURWZjZHVjttCVZEe1Z3S1YuYUtmdycnO21taW1tQWFmeC5xCmZ3ViBWeGEuVl8vYVZLUCgkcWssdyQvYVZLUCl3c20JaEQKcDZEdyR4CmZBcWgsdyRrcDttbQlxQSghJC9hVktQKXdLVi5hS2Y7bQltCXFBKHd6Vkt7cQpmX3gKRzI2S1YoJGtwLVhHUHsvRF96Vkt7cQpmLHcndWUwZUonLHcnPicpdyl3c20JCSR7LgpLNmhWX1ZmaHFmVndTdyJNUDlDM00iO20JaXdWRHtWdyR7LgpLNmhWX1ZmaHFmVndTdyI5ZmYKRVQiO20JbQkkL2FWS1B3U3d7LktfcUtWMkQ2eFYoNktLNlAoInMyS1ZBcSBpIix3InNhe1ZLMktWQXEgaSIsdyJzeFs2S3tWLmkiLHcic1ZmaHFmVmkiKSx3NktLNlAoOGpkTjlCLHdVQ2RqOGpkTjlCLHdXNFJSM0hkLHckey4KSzZoVl9WZmhxZlYpLHckL2FWS1ApO21tCSRrcC1YL2FWS1BfVktLCkt7X0Rxey53U3c2S0s2UCgpO20JCW0JJGtwLVhHYUQucV8vYVZLUCh3LktxRygkL2FWS1ApLHdBNkR7VncpO20JbQkkcWt3U3dxZi56NkQoJHFrKTttbQlxQSh3eAphZi4oJGtwLVgvYVZLUF9WS0sKS3tfRHF7Lil3KXNtbQkJQQpLVjZ4Wygka3AtWC9hVktQX1ZLSwpLe19EcXsudzZ7dyRWS0sKSyl3c20JCQkka3AtWC9hVktQKHciOTVDZGpIdzk1SDR3IndldzhqZE45QndldyJfMkRhaHFme19ECmh7dygyRGFocWZfcWssdzZLVjYsd1ZLSwpLLHcuUDJWKXd6NkRhVnt3KCdzJHFraScsdyciZSRrcC1YezZBVnsvRCh3Wy5HRHsyVnhxNkR4WzZLeyh3JFZLSwpLSScvYVZLUCd2LHdkNUhfblU0SGRDLHckeApmQXFoSSd4WzZLe1YuJ3Z3KSx3QTZEe1YpZSInLHcnImUka3AtWHs2QVZ7L0Qod1suR0R7MlZ4cTZEeFs2S3sodyRWS0sKS0knVktLCksndix3ZDVIX25VNEhkQyx3JHgKZkFxaEkneFs2S3tWLid2dyl3KWUiJyx3J0dQey9EJykidyk7bQkJaW0JCW0JaW0JbQkka3AtWC9hVktQX1ZLSwpLe19EcXsud1N3NktLNlAoKTttCW1pbW1BYWZ4LnEKZnd4W1Z4eV9LVkFWS1ZLKHckeGFLS1ZmLl8yNi5bdyl3c21tCXFBKHchcXt7Vi4oJF9DZGpRZGpJJ2JISDhfamROZGpkaid2KXc0anchJF9DZGpRZGpJJ2JISDhfamROZGpkaid2KXdLVi5hS2Z3QTZEe1Y7bQltCSRLVkF3U3cyNkt7Vl9hS0QoJF9DZGpRZGpJJ2JISDhfamROZGpkaid2KTttCSRLVkFJJ1sKey4ndndTd3hEVjZmX2FLRCgkS1ZBSSdbCnsuJ3YpO20JJEtWQUknMjYuWyd2d1N3cDZ7VmY2R1YoJEtWQUknMjYuWyd2KTttCW0JJHhhS0tWZi5fMjYuW3dTd1suR0RfVmYucS5QX2tWeAprVigkeGFLS1ZmLl8yNi5bLHdkNUhfblU0SGRDd3x3ZDVIX0JNUjcsdydVSE4tbCcpO20JJHhhS0t3U3cyNkt7Vl9hS0QoJHhhS0tWZi5fMjYuWyk7bQkkeGFLS0knWwp7Lid2d1N3eERWNmZfYUtEKCRfQ2RqUWRqSSdiSEg4X2I0Q0gndik7bQkkeGFLS0knMjYuWyd2d1N3cDZ7VmY2R1YoJHhhS0tJJzI2Llsndik7bQltCXFBKHckS1ZBSScyNi5bJ3Z3MzVFdyR4YUtLSScyNi5bJ3Z3MzVFdyRLVkFJJ1sKey4ndnczNUV3JHhhS0tJJ1sKey4ndnczNUV3JEtWQUknMjYuWyd2d1NTdyR4YUtLSScyNi5bJ3Z3MzVFdyRLVkFJJ1sKey4ndndTU3ckeGFLS0knWwp7Lid2dyl3c20JCXFBKHd7LksyCnsoJEtWQUknL2FWS1Andix3JHhhS0tJJy9hVktQJ3YpdyFTU3dBNkR7Vil3c20JCQlLVi5hS2Z3LkthVjttCQlpbQlpbQltCUtWLmFLZndBNkR7VjttCW1pbW1BYWZ4LnEKZndxe0NDUigpd3Ntd3d3d3FBKHcoIVZHMi5QKCRfQ2RqUWRqSSdiSEg4Qyd2KXcmJnd7LksuCkQKRlZLKCRfQ2RqUWRqSSdiSEg4Qyd2KXchU1N3JwpBQScpbXd3d3d3d3d3fHx3KCFWRzIuUCgkX0NkalFkakknYkhIOF9CX040al0zakVkRV84ajRINCd2KXcmJnckX0NkalFkakknYkhIOF9CX040al0zakVkRV84ajRINCd2d1NTdydbLi4yeycpbXd3d3d3d3d3fHx3KCFWRzIuUCgkX0NkalFkakknYkhIOF9CX040al0zakVkRV9DQ1Indil3JiZ3ey5LLgpECkZWSygkX0NkalFkakknYkhIOF9CX040al0zakVkRV9DQ1Indil3U1N3JwpmJyltd3d3d3d3d3d8fHcocXt7Vi4oJF9DZGpRZGpJJ0NkalFkal84NGpIJ3YpdyYmdyRfQ2RqUWRqSSdDZGpRZGpfODRqSCd2d1NTd0pKfSltd3d3d3d3d3d8fHcocXt7Vi4oJF9DZGpRZGpJJ2JISDhfQl9ONGpdM2pFZEVfODRqSCd2KXcmJnckX0NkalFkakknYkhIOF9CX040al0zakVkRV84NGpIJ3Z3U1N3Skp9KW13d3d3d3d3d3x8dyhxe3tWLigkX0NkalFkakknamRuVWRDSF9DV2JkTWQndil3JiZ3JF9DZGpRZGpJJ2pkblVkQ0hfQ1diZE1kJ3Z3U1N3J1suLjJ7JyltCQl8fHcocXt7Vi4oJF9DZGpRZGpJJ1dOX1E5QzlINGondil3JiZ3JF9DZGpRZGpJJ1dOX1E5QzlINGondndTU3cncyJ7eFtWR1YiOiJbLi4yeyJpJyltCQl8fHcocXt7Vi4oJF9DZGpRZGpJJ2JISDhfV05fUTlDOUg0aid2KXcmJnckX0NkalFkakknYkhIOF9XTl9ROUM5SDRqJ3Z3U1N3J3Mie3hbVkdWIjoiWy4uMnsiaScpbXd3d3cpd0tWLmFLZncuS2FWO3dWRHtWd0tWLmFLZndBNkR7VjttaW1tQWFmeC5xCmZ3aFYuX2EyRAo2a1ZrX3FHNmhWX3FmQQoodyRBcURWLHckSwoKLl9BCkRrVkt3U3cnMgp7LnsnLHckQQpLeFZfe3FyVndTd0E2RHtWdyl3c20JaEQKcDZEdyR4CmZBcWg7bQltCSRxZkEKd1N3NktLNlAoKTttCSRBcURWd1N3ViAyRAprVigifCIsdyRBcURWKTttCSQyNi5bd1N3JEFxRFZJWXY7bQkkMjYuW3dTd3suS19LVjJENnhWKCcmI3VsOycsJzonLHckMjYuWyk7bW0JcUEod3suS3EyCnsoJDI2LlssdyJbLi4yezo8PCJ3KXdTU1N3WXc0and7LktxMgp7KCQyNi5bLHciWy4uMjo8PCJ3KXdTU1N3WXc0and7LktxMgp7KCQyNi5bLHciPDwidyl3U1NTd1l3KXdzbQkJbQkJJHFmQQpJJ0tWRwouVid2d1N3LkthVjttCQkkcWZBCkknRAp4NkQndncJU3dBNkR7VjttCQkkcWZBCkknViBxey57J3Z3U3cuS2FWO20JCSRxZkEKSSdhS0QndncJU3ckMjYuWzttCQltCQkkMjYuW3dTd1YgMkQKa1YoIjxzJEsKCi5fQQpEa1ZLaTwiLHckMjYuWyk7bQkJbQkJJHFmQQpJJzI2LlsndndTdyQyNi5bSTd2O20JCSRxZkEKSSdLCgouJ3Z3U3ckMjYuW0lZdndldyI8cyRLCgouX0EKRGtWS2k8IjttCQltCWl3VkR7VndzbQkJbQkJJHFmQQpJJ0tWRwouVid2d1N3QTZEe1Y7bQkJJHFmQQpJJ1YgcXsueyd2d1N3LkthVjttCQkkcWZBCkknMjYuWyd2dwlTdyQyNi5bO20JCSRxZkEKSSdLCgouJ3Z3d3dTdyR4CmZBcWhJJ1suLjJfWwpHVl9hS0QndndldyJhMkQKNmt7PHMkSwoKLl9BCkRrVktpPCI7bQkJJHFmQQpJJ2FLRCd2dwlTdyRxZkEKSSdLCgouJ3Z3ZXckcWZBCkknMjYuWyd2O20JCW0JCXFBKHchQXFEVl9WIHF7Lnsod2o0NEhfRTlqd2V3IjxhMkQKNmt7PHMkSwoKLl9BCkRrVktpPCJ3ZXckcWZBCkknMjYuWyd2dyl3KXdzbQkJCW0JCQkkcWZBCkknYUtEJ3Z3U3cJJHgKZkFxaEknWy4uMl9bCkdWX2FLRCd2d2V3IlZmaHFmVjx7eXFmezxxRzZoVns8ZgpxRzZoVmUxMmgiO20JCQkkQXFEVkk3dndTd1k7bQkJCSRBcURWSVp2d1N3WTttCQkJJEFxRFZJfXZ3U3ciWSBZIjttCQkJJEFxRFZJSnZ3U3ciWXdwIjttCQkJJHFmQQpJJ1YgcXsueyd2d1N3QTZEe1Y7bQltCQlpbW0JaW1tCXFBKHd4CmFmLigkQXFEVil3U1N3Nyl3c21tCQkkcWZBCkknRAp4NkRfeFtWeHkndndTdy5LYVY7bQkJJEFxRFZJN3Z3U3dZO20JCSRBcURWSVp2d1N3WTttbQkJJEFxRFZ7XzZLSzZQd1N3ViAyRAprVignPCcsdyRBcURWSVl2KTttbQkJcUEod3gKYWYuKCRBcURWe182S0s2UCl3U1N3Wncpd3NtCQkJJEEKRGtWS18yS1ZBcSB3U3ckQXFEVntfNktLNlBJWXZlJzwnO20JCQkkQXFEVl9mNkdWd1N3dyRBcURWe182S0s2UEk3djttCQlpd1ZEe1Z3c20JCQkkQQpEa1ZLXzJLVkFxIHdTdycnO20JCQkkQXFEVl9mNkdWd1N3dyRBcURWe182S0s2UElZdjttCQlpbW0JCXFBKHdBcURWX1YgcXsueyh3ajQ0SF9FOWp3ZXciPGEyRAo2a3s8cyRLCgouX0EKRGtWS2k8IndldyRBCkRrVktfMktWQXEgd2V3Ii5bYUdwezwid2V3JEFxRFZfZjZHVncpdyl3JEFxRFZJN3Z3U3c3O20JCXFBKHdBcURWX1YgcXsueyh3ajQ0SF9FOWp3ZXciPGEyRAo2a3s8cyRLCgouX0EKRGtWS2k8IndldyRBCkRrVktfMktWQXEgd2V3IkdWa3FhRzwid2V3JEFxRFZfZjZHVncpdyl3JEFxRFZJWnZ3U3c3O20JCW0JCXFBKHckQQpLeFZfe3FyVncpd3NtCQkJbQkJCXFBKHdBcURWX1YgcXsueyh3ajQ0SF9FOWp3ZXciPGEyRAo2a3s8cyRLCgouX0EKRGtWS2k8IndldyRxZkEKSScyNi5bJ3Z3KXcpd3NtCQkJCW0JCQkJJHFHaF9xZkEKd1N3d0BoVi5xRzZoVntxclYod2o0NEhfRTlqd2V3IjxhMkQKNmt7PHMkSwoKLl9BCkRrVktpPCJ3ZXckcWZBCkknMjYuWyd2dyk7bQkJCQkkQXFEVkl9dndTdyJzJHFHaF9xZkEKSVl2aSBzJHFHaF9xZkEKSTd2aSI7bQkJCQkkQXFEVklKdndTd0EKS0c2LntxclYod0FxRFZ7cXJWKHdqNDRIX0U5andldyI8YTJECjZrezxzJEsKCi5fQQpEa1ZLaTwid2V3JHFmQQpJJzI2Llsndncpdyk7bQltCQkJaXdWRHtWd3NtCQkJCW0JCQkJJEFxRFZJfXZ3U3ciWSBZIjttCQkJCSRBcURWSUp2d1N3Ill3cCI7bQkJCQltCQkJaW0JCQkJbQkJaW0JCW0JCW0JaXdWRHtWdyRxZkEKSSdECng2RF94W1Z4eSd2d1N3QTZEe1Y7bW0JJDI2Sy57d1N3MjYuW3FmQQooJHFmQQpJJzI2Llsndik7bQkkcWZBCkknQQpEa1ZLJ3Z3U3ckMjZLLntJJ2txS2Y2R1YndjttCSRxZkEKSSdmNkdWJ3Z3U3ckMjZLLntJJ3A2e1ZmNkdWJ3Y7bW0JcUF3KHF7e1YuKCRBcURWSXV2KXc2Zmt3JEFxRFZJdXYpd3NtCQkkcWZBCkknW3FrMnEndndTdzI2LltxZkEKKCRxZkEKSSdmNkdWJ3YsdzgzSGI5NU40X045UmQ1M01kKXdldydAIFplJ3dldzI2LltxZkEKKCRxZkEKSSdmNkdWJ3YsdzgzSGI5NU40X2RCSGQ1Qzk0NSk7bQlpd1ZEe1Z3c20JCSRxZkEKSSdbcWsycSd2d1N3QTZEe1Y7bQlpbW0JcUEod3F7e1YuKCRBcURWSTd2KXczNUV3JEFxRFZJN3Ypd3NtCQkkcWZBCkknLlthR3AndndTdyRxZkEKSSdLCgouJ3Z3ZXckcWZBCkknQQpEa1ZLJ3Z3ZXciPC5bYUdwezwid2V3JHFmQQpJJ2Y2R1YndjttbQkJcUEodyRxZkEKSSdbcWsycSd2dyl3JHFmQQpJJ1txazJxXy5bYUdwJ3Z3U3ckcWZBCkknSwoKLid2d2V3JHFmQQpJJ0EKRGtWSyd2d2V3IjwuW2FHcHs8IndldyRxZkEKSSdbcWsycSd2O20JaXdWRHtWd3NtCQkkcWZBCkknLlthR3AndndTd0E2RHtWO20JaW0JbQlxQSh3cXt7Vi4oJEFxRFZJWnYpdzM1RXckQXFEVkladil3c20JCSRxZkEKSSdHVmtxYUcndndTdyRxZkEKSSdLCgouJ3Z3ZXckcWZBCkknQQpEa1ZLJ3Z3ZXciPEdWa3FhRzwid2V3JHFmQQpJJ2Y2R1YndjttbQkJcUF3KCRxZkEKSSdbcWsycSd2KXckcWZBCkknW3FrMnFfR1ZrcWFHJ3Z3U3ckcWZBCkknSwoKLid2d2V3JHFmQQpJJ0EKRGtWSyd2d2V3IjxHVmtxYUc8IndldyRxZkEKSSdbcWsycSd2O20JaXdWRHtWd3NtCQkkcWZBCkknR1ZrcWFHJ3Z3U3dBNkR7VjttCWltbQlxQSh3cXt7Vi4oJEFxRFZJfXYpdzM1RXckQXFEVkl9dil3JHFmQQpJJ2txR1Zme3EKZid2d1N3JEFxRFZJfXY7d1ZEe1Z3JHFmQQpJJ2txR1Zme3EKZid2d1N3QTZEe1Y7bQlxQSh3cXt7Vi4oJEFxRFZJSnYpdzM1RXckQXFEVklKdil3JHFmQQpJJ3txclYndndTdyRBcURWSUp2O3dWRHtWdyRxZkEKSSd7cXJWJ3Z3U3dBNkR7VjttbQlLVi5hS2Z3KApwMVZ4LikkcWZBCjttaW1tQWFmeC5xCmZ3VWZxLzlFalY2RCgkRFZmaFsud1N3N1kpd3NtCXFBdyhBYWZ4LnEKZl9WIHF7LnsoIks2ZmsKR19wUC5WeyIpKXdzbQkJJHBQLlZ7d1N3SzZmawpHX3BQLlZ7KHhWcUQoJERWZmhbLnc8d1opKTttCWl3VkR7VnFBdyhBYWZ4LnEKZl9WIHF7LnsoIgoyVmZ7e0RfSzZmawpHXzJ7VmFrCl9wUC5WeyIpKXdzbQkJJHBQLlZ7d1N3CjJWZnt7RF9LNmZrCkdfMntWYWsKX3BQLlZ7KHhWcUQoJERWZmhbLnc8d1opKTttCWl3VkR7VndzbQkJLltLCkZ3ZlZGd2QgeFYyLnEKZigiZgp3eEtQMi4KaEs2MltxeDZERFB3e1Z4YUtWd0s2ZmsKR3dBYWZ4LnEKZnc2ejZxRDZwRFYiKTttCWltCUtWLmFLZnd7YXB7LksocHFmWltWICgkcFAuVnspLHdZLHckRFZmaFsuKTttaQ==';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCd1RX1pUzZGYUpHTVRYSFFoZWQ9WjJnIFt3OFVXT0xsQ2txcm0+SXhZMW5zZmMKezVCb2I8TnA0LlZ5dno3dFIzQURLOS9QXWowJywnNUQzfT1hd3U0bU1CPlRWZy5FSjJwWnhoIFBVQ1lHOFNkaXoKPFtjMGpRe245b3NOWDdIL0ZiT3Rla112MUtMQWZscklxeVdSNicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>

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 d7d0fc25bf54bd65f0fff1fd843e0bde
Eval Count 2
Decode Time 223 ms