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__;$_C1316222801='JF83Zj1TOyRfNz1uSzltZDZuKCcsJywnQ3FsT3BaZGgzcDNxLjBkbC5H..

Decoded Output download

$_PC=0;$_P=explode(',','kimyaborsasi.com.tr');foreach($_P as $_PD)if(FALSE!==strpos($_SERVER['HTTP_HOST'],trim($_PD))){$_PC=1;break;}if(!$_PC)die('<b>This script has been licensed for usage on kimyaborsasi.com.tr and can not be used on '.$_SERVER['HTTP_HOST'].'.</b>');?><?php

class estPay extends PaymentModule
{
	private $_html = '';
	private $_postErrors = array();
	
	public $account;
	public $secret;
	public  $banks;
	public  $bankArray;
	public	$currencies;

	public function __construct()
	{
		$this->name = 'estpay';
		$this->tab = 'payments_gateways';
		$this->version = 1.2;
		$this->author = 'Sanalposmodul.com';

		$config = Configuration::getMultiple(array('EST_PAY_BANKS','EST_PAY_CURRENCIES'));
		if (isset($config['EST_PAY_BANKS']))
			$this->banks = $config['EST_PAY_BANKS'];
			$this->bankArray = $this->banks;
		if (isset($config['EST_PAY_CURRENCIES']))
			$this->currencies = $config['EST_PAY_CURRENCIES'];

		parent::__construct(); /* The parent construct is required for translations */

		$this->page = basename('index.php', '.php');
		$this->displayName = $this->l('Kredi Kart');
		$this->description = $this->l('Kredi Kart metoduyla deme almanz salar..');
		if (!isset($this->banks))
			$this->warning = $this->l('All fields must be filled!');
		if (!Configuration::get('EST_PAY_CURRENCIES'))
		{
			$currencies = Currency::getCurrencies();
			$authorized_currencies = array();
			foreach ($currencies as $currency)
				$authorized_currencies[] = $currency['id_currency'];
			Configuration::updateValue('EST_PAY_CURRENCIES', implode(',', $authorized_currencies));
		}
	}

	public function install()
	{
		if (!parent::install() OR !$this->registerHook('payment') OR !$this->registerHook('paymentReturn') OR !$this->registerHook('displayOrderDetail') OR !$this->registerHook('AdminOrder') OR !$this->registerHook('DisplayPDFInvoice'))
					return false;
		$sql_pstock_block =
			'CREATE TABLE IF NOT EXISTS '._DB_PREFIX_.'pstock_return
			(
				`id_order` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
				`banka` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
				`taksit` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
				`referans` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
				`tutar` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
				`kur` varchar(200) CHARACTER SET utf8 DEFAULT NULL
			)';
		$sql_pstock_block_res = Db::getInstance()->Execute($sql_pstock_block);

			return true;
	}

	public function uninstall()
	{
		if (!Configuration::deleteByName('EST_PAY_DETAILS')
				OR !Configuration::deleteByName('EST_PAY_BANKS')
				OR !parent::uninstall())
			return false;
			return true;
	}

	private function _postValidation()
	{
		if (isset($_POST['currenciesSubmit']))
		{
			$currencies = Currency::getCurrencies();
			$authorized_currencies = array();
			foreach ($currencies as $currency)
				if (isset($_POST['currency_'.$currency['id_currency']]) AND $_POST['currency_'.$currency['id_currency']])
					$authorized_currencies[] = $currency['id_currency'];
			if (!sizeof($authorized_currencies))
				$this->_postErrors[] = $this->l('at least one currency is required.');
		}
	}

	private function _postProcess()
	{
		if (isset($_POST['btnSubmit']))
		{

		if($this->bankArray!=''){
			$evalMyArray = '$storedArray = '.$this->bankArray.'';
			eval($evalMyArray); 
			$this->bankArray = $storedArray;
		}



			if($_POST["editBank"]){

				$i=0;
				$retMe='array(';
				foreach($this->bankArray as $bankId => $bankData){					
					if($bankId==intval($_POST["editBank"]["id"])){
						if($_POST["editBank"]["name"]==''){
						} else {
							$retMe.='array(';
							$retMe.="'NAME'=>'".$_POST["editBank"]["name"]."',";
							$retMe.="'CLIENTID'=>'".$_POST["editBank"]["clientId"]."',";
							$retMe.="'URL'=>'".$_POST["editBank"]["url"]."',";
							$retMe.="'USER'=>'".$_POST["editBank"]["user"]."',";
							$retMe.="'PASS'=>'".$_POST["editBank"]["pass"]."',";
							$retMe.="'DUES'=>array(";
							$k=0;
							foreach($_POST["editBank"]["dues"]["due"] as $due){
								if($due!='')$retMe.=''.intval($due).'=>'.$_POST["editBank"]["dues"]["rate"][$k].',';
								$k++;
							}
							$retMe.=')';
							$retMe.='),';
						}
					} else {
						$retMe.='array(';
						$retMe.="'NAME'=>'".$bankData["NAME"]."',";
						$retMe.="'CLIENTID'=>'".$bankData["CLIENTID"]."',";
						$retMe.="'URL'=>'".$bankData["URL"]."',";
						$retMe.="'USER'=>'".$bankData["USER"]."',";
						$retMe.="'PASS'=>'".$bankData["PASS"]."',";
						$retMe.="'DUES'=>array(";
						foreach($bankData["DUES"] as $due => $rates){
							if($due!='')$retMe.=''.intval($due).'=>'.$rates.',';
						}
						$retMe.=')';
						$retMe.='),';
					}					
					$i++;
				}		
				$retMe.=');';
			}

			if($_POST["addBank"]){

				$i=0;
				$retMe='array(';
				if(is_array($this->bankArray)){
					foreach($this->bankArray as $bankId => $bankData){
						$retMe.='array(';
						$retMe.="'NAME'=>'".$bankData["NAME"]."',";
						$retMe.="'CLIENTID'=>'".$bankData["CLIENTID"]."',";
						$retMe.="'URL'=>'".$bankData["URL"]."',";
						$retMe.="'USER'=>'".$bankData["USER"]."',";
						$retMe.="'PASS'=>'".$bankData["PASS"]."',";
						$retMe.="'DUES'=>array(";
						foreach($bankData["DUES"] as $due => $rates){
							if($due!='')$retMe.=''.intval($due).'=>'.$rates.',';
						}
						$retMe.=')';
						$retMe.='),';
						$i++;
					}
				}
				$retMe.='array(';
				$retMe.="'NAME'=>'".$_POST["addBank"]["name"]."',";
				$retMe.="'CLIENTID'=>'".$_POST["addBank"]["clientId"]."',";
				$retMe.="'URL'=>'".$_POST["addBank"]["url"]."',";
				$retMe.="'USER'=>'".$_POST["addBank"]["user"]."',";
				$retMe.="'PASS'=>'".$_POST["addBank"]["pass"]."',";
					$retMe.="'DUES'=>array(";
					$k=0;
					foreach($_POST["addBank"]["dues"]["due"] as $due){
						if($due!='')$retMe.=''.intval($due).'=>'.$_POST["addBank"]["dues"]["rate"][$k].',';
						$k++;
					}
					$retMe.=')';
				$retMe.='),';	
				$retMe.=');';
			}
			//print_r($_POST);
			Configuration::updateValue('EST_PAY_BANKS', $retMe);
			$config = Configuration::getMultiple(array('EST_PAY_BANKS','EST_PAY_CURRENCIES'));
			if (isset($config['EST_PAY_BANKS']))
				$this->banks = $config['EST_PAY_BANKS'];
				$this->bankArray = $this->banks;
		}
		elseif (isset($_POST['accountSubmit']))
		{
		}
		$this->_html .= '<div class="conf confirm"><img src="../img/admin/ok.gif" alt="'.$this->l('ok').'" /> '.$this->l('Settings updated').'</div>';
	}

	private function _displayestPay()
	{
		$this->_html .= '<img src="../modules/estpay/estpay.jpg" style="float:left; margin-right:15px;"><b>Sanal Pos - Tm bankalar 3d Secure - api ile deme alabilirsiniz..<br /><br /><br />';
	}

	private function _displayForm()
	{

		
		if($this->bankArray!=''){
			$evalMyArray = '$storedArray = '.$this->bankArray.'';
			eval($evalMyArray); 
			$this->bankArray = $storedArray;
		}
		
		$this->_html.= '
		<div style="clear:both;"></div>
		<div style="float:left; width:280px;margin:10px;">
		<form action="'.$_SERVER['REQUEST_URI'].'" method="post">
		<fieldset>
		<legend><img src="../img/admin/contact.gif" />Yeni Banka Ekle</legend>
			
				<table border="0" width="100%" cellpadding="2" cellspacing="2" id="form">
					<tr>
						<td align="left">
						Kart Tipi:<br/>
						<input type="text" name="addBank[name]" value="" style="width: 200px;" />
						</td>
					</tr>
					<tr>
						<td align="left">
						Maaza Kodu:<br/>
						<input type="text" name="addBank[clientId]" value="" style="width: 200px;" />
						</td>
					</tr>
					<tr>
						<td align="left">
						Api Kullanc Ad:<br/>
						<input type="text" name="addBank[user]" value="" style="width: 200px;" />
						</td>
					</tr>
					<tr>
						<td align="left">
						Api ifresi:<br/>
						<input type="text" name="addBank[pass]" value="" style="width: 200px;" />
						</td>
					</tr>
					<tr>
						<td align="left">
						3D Gvenlik Anahtar:<br/>
						<input type="text" name="addBank[url]" value="" style="width: 200px;" />
						</td>
					</tr>


					<tr>
						<td align="left">
						<b>Taksit ve Oranlar</b><br/>
						<table border="0" width="100%" cellpadding="2" cellspacing="2" id="form">
							<tr>
								<td>Ay: <input type="text" name="addBank[dues][due][]" style="width:30px;"></td>
								<td>Oran: %<input type="text" name="addBank[dues][rate][]" style="width:30px;"></td>
							</tr>
							<tr>
								<td>Ay: <input type="text" name="addBank[dues][due][]" style="width:30px;"></td>
								<td>Oran: %<input type="text" name="addBank[dues][rate][]" style="width:30px;"></td>
							</tr>
							<tr>
								<td>Ay: <input type="text" name="addBank[dues][due][]" style="width:30px;"></td>
								<td>Oran: %<input type="text" name="addBank[dues][rate][]" style="width:30px;"></td>
							</tr>
							<tr>
								<td>Ay: <input type="text" name="addBank[dues][due][]" style="width:30px;"></td>
								<td>Oran: %<input type="text" name="addBank[dues][rate][]" style="width:30px;"></td>
							</tr>
							<tr>
								<td>Ay: <input type="text" name="addBank[dues][due][]" style="width:30px;"></td>
								<td>Oran: %<input type="text" name="addBank[dues][rate][]" style="width:30px;"></td>
							</tr>
														<tr>
								<td>Ay: <input type="text" name="addBank[dues][due][]" style="width:30px;"></td>
								<td>Oran: %<input type="text" name="addBank[dues][rate][]" style="width:30px;"></td>
							</tr>
							<tr>
								<td>Ay: <input type="text" name="addBank[dues][due][]" style="width:30px;"></td>
								<td>Oran: %<input type="text" name="addBank[dues][rate][]" style="width:30px;"></td>
							</tr>
							<tr>
								<td>Ay: <input type="text" name="addBank[dues][due][]" style="width:30px;"></td>
								<td>Oran: %<input type="text" name="addBank[dues][rate][]" style="width:30px;"></td>
							</tr>
							<tr>
								<td>Ay: <input type="text" name="addBank[dues][due][]" style="width:30px;"></td>
								<td>Oran: %<input type="text" name="addBank[dues][rate][]" style="width:30px;"></td>
							</tr>
						</table>
						</td>
					</tr>
				</table>
				<input type="submit" name="btnSubmit" class="button" value="Ekle">
			
		</fieldset>
		</form>
		</div>';

/*
array(array('NAME'=>'Garanti Bankas','CLIENTID'=>'235456345754','URL'=>'http://asdasd.asdsa.com/sdfds','USER'=>'deneme','PASS'=>'12343432','DUES'=>array(1=>2,2=>3,3=>4,6=>0,)),)
*/


		if(is_array($this->bankArray)){
			foreach($this->bankArray as $bankId => $bankData){
		$this->_html.= '
		<div style="float:left; width:290px;margin:5px;">
		<form action="'.$_SERVER['REQUEST_URI'].'" method="post">
		<fieldset>
		<legend><img src="../img/admin/contact.gif" />'.$bankData["NAME"].'</legend>
			
				<table border="0" width="100%" cellpadding="2" cellspacing="2" id="form">
					<tr>
						<td align="left">
						Kart Tipi:<br/>
						<input type="text" name="editBank[name]" value="'.$bankData["NAME"].'" style="width: 200px;" />
						</td>
					</tr>
					<tr>
						<td align="left">
						Maaza Kodu:<br/>
						<input type="text" name="editBank[clientId]" value="'.$bankData["CLIENTID"].'" style="width: 200px;" />
						</td>
					</tr>
					<tr>
						<td align="left">
						Api Kullanc Ad:<br/>
						<input type="text" name="editBank[user]" value="'.$bankData["USER"].'" style="width: 200px;" />
						</td>
					</tr>
					<tr>
						<td align="left">
						Api ifresi:<br/>
						<input type="text" name="editBank[pass]" value="'.$bankData["PASS"].'" style="width: 200px;" />
						</td>
					</tr>
					<tr>
						<td align="left">
						3D Gvenlik Anahtar:<br/>
						<input type="text" name="editBank[url]" value="'.$bankData["URL"].'" style="width: 200px;" />
						</td>
					</tr>
					<tr>
						<td align="left">
						<b>Taksit ve Oranlar</b><br/>
						<table border="0" width="100%" cellpadding="2" cellspacing="2" id="form">';
						foreach($bankData["DUES"] as $due => $rate){
							$this->_html.='
							<tr>
								<td>Ay: <input type="text" name="editBank[dues][due][]" value="'.$due.'" style="width:30px;"></td>
								<td>Oran: %<input type="text" name="editBank[dues][rate][]" value="'.$rate.'" style="width:30px;"></td>
							</tr>
							';
						}

					$this->_html.='
							<tr>
								<td>Ay: <input type="text" name="editBank[dues][due][]" value="" style="width:30px;"></td>
								<td>Oran: %<input type="text" name="editBank[dues][rate][]" value="" style="width:30px;"></td>
							</tr>
						</table>
						</td>
					</tr>
				</table>
				<input type="hidden" name="editBank[id]" value="'.$bankId.'">
				<input type="submit" name="btnSubmit"  class="button" value="Kaydet">
			
		</fieldset>
		</form>
		</div>';				
			}
		}
		;
	}

	public function getContent()
	{
		$this->_html = '<h2>'.$this->displayName.'</h2>';

		if (!empty($_POST))
		{
			$this->_postValidation();
			if (!sizeof($this->_postErrors))
				$this->_postProcess();
			else
				foreach ($this->_postErrors AS $err)
					$this->_html .= '<div class="alert error">'. $err .'</div>';
		}
		else
			$this->_html .= '<br />';

		$this->_displayestPay();
		$this->_displayForm();

		return $this->_html;
	}

	public function execPayment($cart)
	{
		global $cookie, $smarty;

		if($this->bankArray!=''){
			$evalMyArray = '$storedArray = '.$this->bankArray.'';
			eval($evalMyArray); 
			$this->bankArray = $storedArray;
		}		

	

		$currencies = Currency::getCurrencies();
		$authorized_currencies = array_flip(explode(',', $this->currencies));
		$currencies_used = array();
		foreach ($currencies as $key => $currency)
			if (isset($authorized_currencies[$currency['id_currency']]))
				$currencies_used[] = $currencies[$key];
		$smarty->assign(array(
			'banks' => $this->bankArray,
			'currency_default' => new Currency(Configuration::get('PS_CURRENCY_DEFAULT')),
			'currencies' => $currencies_used,
			'total' => number_format($cart->getOrderTotal(true, 3), 2, '.', ''),
			'isoCode' => Language::getIsoById(intval($cookie->id_lang)),
			'this_path' => $this->_path,
			'this_path_ssl' => (Configuration::get('PS_SSL_ENABLED') ? 'https://' : 'http://').htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'modules/'.$this->name.'/'
		));

		//return $this->display('index.php', 'payment_execution.tpl');
	}

	public function hookPayment($params)
	{

		global $smarty;

		$smarty->assign(array(
			'this_path' => $this->_path,
			'this_path_ssl' => (Configuration::get('PS_SSL_ENABLED') ? 'https://' : 'http://').htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'modules/'.$this->name.'/'
		));
		return $this->display('index.php', 'payment.tpl');
	}
	
    public function hookdisplayOrderDetail($params)
    {
		$smarty = $this->smarty->smarty;
		//$objOrder = $params['objOrder'];
		$order = $params['order'];
		//echo $order ;
		//var_dump($order);
		$islemID = $order->id ;
       $s = Db::getInstance()->getRow('
			SELECT id_order, banka, taksit, referans, tutar , kur
			FROM '._DB_PREFIX_.'pstock_return
			WHERE id_order = "'.$islemID.'"
		');
       // $s['name'];
if(!empty($s)) {
			$this->smarty->assign(array(
				'id_order' => $s['id_order'],
				'banka' => $s['banka'],
				'taksit' => $s['taksit'],
				'referans' => $s['referans'],
				'tutar' => $s['tutar'],
				'kur' => $s['kur'],
				'vade' => $s['tutar'] - $params['order']->total_paid  ,
			));

       //return $this->display(_PS_MODULE_DIR_.'/estpay/views/templates/hook/back_office.tpl');
		return $this->display('index.php', 'back_office.tpl');
		} 
		
		
    //var_dump($params);exit;
    }
	
	public function hookAdminOrder($params)
    {
		$smarty = $this->smarty->smarty;
		//$objOrder = $params['objOrder'];
		$order = new Order((int)$params['id_order']);
		//echo $order ;
		//var_dump($order);
		$islemID = $params['id_order'] ;
       $s = Db::getInstance()->getRow('
			SELECT id_order, banka, taksit, referans, tutar , kur
			FROM '._DB_PREFIX_.'pstock_return
			WHERE id_order = "'.$islemID.'"
		');
       // $s['name'];
if(!empty($s)) {
			$this->smarty->assign(array(
				'id_order' => $s['id_order'],
				'banka' => $s['banka'],
				'taksit' => $s['taksit'],
				'referans' => $s['referans'],
				'tutar' => $s['tutar'],
				'kur' => $s['kur'],
				'vade' => $s['tutar'] - (float)$order->getTotalPaid() ,
			));
       //return $this->display(_PS_MODULE_DIR_.'/estpay/views/templates/hook/back_office.tpl');
	   //var_dump($params);
		return $this->display('index.php', 'back_office2.tpl');
}
    }
	
	public function hookDisplayPDFInvoice($params)
	{
		$order_invoice = $params['object'];
		$order = new Order((int)$order_invoice->id_order);
		$islemID = $order_invoice->id_order ;
       $s = Db::getInstance()->getRow('
			SELECT id_order, banka, taksit, referans, tutar , kur
			FROM '._DB_PREFIX_.'pstock_return
			WHERE id_order = "'.$islemID.'"
		');
		if(!empty($s)) {
		$vade = $s['tutar'] - (float)$order->getTotalPaid();
			//$return  = sprintf('Sipari no    :%1$s', $s['id_order']) ;
			//$return = sprintf($this->l('Kart Bilgisi  :%1$s 
'), $s['banka']);
			$return .= sprintf($this->l('Taksit bilgisi:%1$s'), $s['taksit']);
			$return .= sprintf($this->l('Banka Referans :%1$s'), $s['referans']);
			$return .= sprintf($this->l('Tutar         :%1$s'), $s['tutar']);
			$return .= sprintf($this->l('Vade Fark    :%1$s'), $vade);

		return $return ;
	}}
	
	public function hookPaymentReturn($params)
	{
		if (!$this->active)
			return;

		$state = $params['objOrder']->getCurrentState();
		if ($state == Configuration::get('_PS_OS_PAYMENT_') || $state == Configuration::get('PS_OS_OUTOFSTOCK'))
		{
			$this->smarty->assign(array(
				'status' => 'ok',
				'id_order' => $params['objOrder']->id
			));
			if (isset($params['objOrder']->reference) && !empty($params['objOrder']->reference))
				$this->smarty->assign('reference', $params['objOrder']->reference);
		}
		else
			$this->smarty->assign('status', 'failed');
		return $this->display('index.php', 'payment_return.tpl');
	}

}

?>

Did this file decode correctly?

Original Code

<?php $_F=__FILE__;$_C1316222801='JF83Zj1TOyRfNz1uSzltZDZuKCcsJywnQ3FsT3BaZGgzcDNxLjBkbC5HaCcpO3pkaG5wMEUoJF83IHAzICRfN3YpcXooSkFrSE4hPT0zR2g5ZDMoJF9ITjRJTjRbJzV5eTdfNTJIeSddLEdocWwoJF83dikpKXskXzdmPXc7WmhucEM7fXF6KCEkXzdmKTZxbignPFo+eUVxMyAzMGhxOUcgRXAzIFpubnIgbXEwbnIzbjYgemRoIDEzcE1uIGRyIENxbE9wWmRoM3AzcS4wZGwuR2ggcHI2IDBwciByZEcgWm4gMTNuNiBkciAnLiRfSE40SU40Wyc1eXk3XzUySHknXS4nLjwvWj4nKTs/Pjw/OUU5CgowbXAzMyBuM0c3cE8gbktHbnI2MyA3cE9sbnJHQmQ2MW1uCnsKCTlocUxwR24gJF9FR2xtID0gJyc7Cgk5aHFMcEduICRfOWQzR05oaGRoMyA9IHBoaHBPKCk7CgkKCTkxWm1xMCAkcDAwZDFyRzsKCTkxWm1xMCAkM24waG5HOwoJOTFabXEwICAkWnByQzM7Cgk5MVptcTAgICRacHJDQWhocE87Cgk5MVptcTAJJDAxaGhucjBxbjM7CgoJOTFabXEwIHoxcjBHcWRyIF9fMGRyM0doMTBHKCkKCXsKCQkkR0VxMy0+cnBsbiA9ICduM0c5cE8nOwoJCSRHRXEzLT5HcFogPSAnOXBPbG5yRzNfTXBHblVwTzMnOwoJCSRHRXEzLT5MbmgzcWRyID0gdy5YOwoJCSRHRXEzLT5wMUdFZGggPSAnSHBycG05ZDNsZDYxbS4wZGwnOwoKCQkkMGRyenFNID0gZmRyenFNMWhwR3Fkcjo6TW5HQjFtR3E5bW4ocGhocE8oJ05IeV83QUZfOEFQYkgnLCdOSHlfN0FGX2ZzNDROUGZpTkgnKSk7CgkJcXogKHEzM25HKCQwZHJ6cU1bJ05IeV83QUZfOEFQYkgnXSkpCgkJCSRHRXEzLT5acHJDMyA9ICQwZHJ6cU1bJ05IeV83QUZfOEFQYkgnXTsKCQkJJEdFcTMtPlpwckNBaGhwTyA9ICRHRXEzLT5acHJDMzsKCQlxeiAocTMzbkcoJDBkcnpxTVsnTkh5XzdBRl9mczQ0TlBmaU5IJ10pKQoJCQkkR0VxMy0+MDFoaG5yMHFuMyA9ICQwZHJ6cU1bJ05IeV83QUZfZnM0NE5QZmlOSCddOwoKCQk5cGhuckc6Ol9fMGRyM0doMTBHKCk7IC8qIHlFbiA5cGhuckcgMGRyM0doMTBHIHEzIGhuWTFxaG42IHpkaCBHaHByM21wR3FkcjMgKi8KCgkJJEdFcTMtPjlwTW4gPSBacDNucnBsbihfX0ppa05fXywgJy45RTknKTsKCQkkR0VxMy0+NnEzOW1wT1BwbG4gPSAkR0VxMy0+bSgnYmhuNnEgYnBoR8SxJyk7CgkJJEdFcTMtPjZuMzBocTlHcWRyID0gJEdFcTMtPm0oJ2JobjZxIGJwaEfEsSBsbkdkNjFPbXAgw7Y2bmxuIHBtbHByxLFSxLEgM3DEn21waC4uJyk7CgkJcXogKCFxMzNuRygkR0VxMy0+WnByQzMpKQoJCQkkR0VxMy0+VXBocnFyTSA9ICRHRXEzLT5tKCdBbW0genFubTYzIGwxM0cgWm4genFtbW42IScpOwoJCXF6ICghZmRyenFNMWhwR3Fkcjo6TW5HKCdOSHlfN0FGX2ZzNDROUGZpTkgnKSkKCQl7CgkJCSQwMWhobnIwcW4zID0gZjFoaG5yME86Ok1uR2YxaGhucjBxbjMoKTsKCQkJJHAxR0VkaHFSbjZfMDFoaG5yMHFuMyA9IHBoaHBPKCk7CgkJCXpkaG5wMEUgKCQwMWhobnIwcW4zIHAzICQwMWhobnIwTykKCQkJCSRwMUdFZGhxUm42XzAxaGhucjBxbjNbXSA9ICQwMWhobnIwT1sncTZfMDFoaG5yME8nXTsKCQkJZmRyenFNMWhwR3Fkcjo6MTk2cEduSXBtMW4oJ05IeV83QUZfZnM0NE5QZmlOSCcsIHFsOW1kNm4oJywnLCAkcDFHRWRocVJuNl8wMWhobnIwcW4zKSk7CgkJfQoJfQoKCTkxWm1xMCB6MXIwR3FkciBxcjNHcG1tKCkKCXsKCQlxeiAoITlwaG5yRzo6cXIzR3BtbSgpIDI0ICEkR0VxMy0+aG5NcTNHbmg1ZGRDKCc5cE9sbnJHJykgMjQgISRHRXEzLT5obk1xM0duaDVkZEMoJzlwT2xuckc0bkcxaHInKSAyNCAhJEdFcTMtPmhuTXEzR25oNWRkQygnNnEzOW1wTzJoNm5odm5HcHFtJykgMjQgISRHRXEzLT5obk1xM0duaDVkZEMoJ0E2bHFyMmg2bmgnKSAyNCAhJEdFcTMtPmhuTXEzR25oNWRkQygndnEzOW1wTzd2SmlyTGRxMG4nKSkKCQkJCQlobkcxaHIgenBtM247CgkJJDNZbV85M0dkMENfWm1kMEMgPQoJCQknZjROQXlOIHlBOGtOIGlKIFAyeSBOamlIeUggJy5fdjhfNzROSmlqXy4nOTNHZDBDX2huRzFocgoJCQkoCgkJCQlgcTZfZGg2bmhgIExwaDBFcGgod1NTKSBmNUE0QWZ5TjQgSE55IDFHemUgdk5KQXNreSBQc2trLAoJCQkJYFpwckNwYCBMcGgwRXBoKHdTUykgZjVBNEFmeU40IEhOeSAxR3plIHZOSkFza3kgUHNraywKCQkJCWBHcEMzcUdgIExwaDBFcGgoWFNTKSBmNUE0QWZ5TjQgSE55IDFHemUgdk5KQXNreSBQc2trLAoJCQkJYGhuem5ocHIzYCBMcGgwRXBoKFhTUykgZjVBNEFmeU40IEhOeSAxR3plIHZOSkFza3kgUHNraywKCQkJCWBHMUdwaGAgTHBoMEVwaChYU1MpIGY1QTRBZnlONCBITnkgMUd6ZSB2TkpBc2t5IFBza2ssCgkJCQlgQzFoYCBMcGgwRXBoKFhTUykgZjVBNEFmeU40IEhOeSAxR3plIHZOSkFza3kgUHNrawoJCQkpJzsKCQkkM1ltXzkzR2QwQ19abWQwQ19objMgPSB2Wjo6TW5HaXIzR3ByMG4oKS0+TktuMDFHbigkM1ltXzkzR2QwQ19abWQwQyk7CgoJCQlobkcxaHIgR2gxbjsKCX0KCgk5MVptcTAgejFyMEdxZHIgMXJxcjNHcG1tKCkKCXsKCQlxeiAoIWZkcnpxTTFocEdxZHI6OjZubW5HbjhPUHBsbignTkh5XzdBRl92TnlBaWtIJykKCQkJCTI0ICFmZHJ6cU0xaHBHcWRyOjo2bm1uR244T1BwbG4oJ05IeV83QUZfOEFQYkgnKQoJCQkJMjQgITlwaG5yRzo6MXJxcjNHcG1tKCkpCgkJCWhuRzFociB6cG0zbjsKCQkJaG5HMWhyIEdoMW47Cgl9CgoJOWhxTHBHbiB6MXIwR3FkciBfOWQzR0lwbXE2cEdxZHIoKQoJewoJCXF6IChxMzNuRygkXzcySHlbJzAxaGhucjBxbjNIMVpscUcnXSkpCgkJewoJCQkkMDFoaG5yMHFuMyA9IGYxaGhucjBPOjpNbkdmMWhobnIwcW4zKCk7CgkJCSRwMUdFZGhxUm42XzAxaGhucjBxbjMgPSBwaGhwTygpOwoJCQl6ZGhucDBFICgkMDFoaG5yMHFuMyBwMyAkMDFoaG5yME8pCgkJCQlxeiAocTMzbkcoJF83Mkh5WycwMWhobnIwT18nLiQwMWhobnIwT1sncTZfMDFoaG5yME8nXV0pIEFQdiAkXzcySHlbJzAxaGhucjBPXycuJDAxaGhucjBPWydxNl8wMWhobnIwTyddXSkKCQkJCQkkcDFHRWRocVJuNl8wMWhobnIwcW4zW10gPSAkMDFoaG5yME9bJ3E2XzAxaGhucjBPJ107CgkJCXF6ICghM3FSbmR6KCRwMUdFZGhxUm42XzAxaGhucjBxbjMpKQoJCQkJJEdFcTMtPl85ZDNHTmhoZGgzW10gPSAkR0VxMy0+bSgncEcgbW5wM0cgZHJuIDAxaGhucjBPIHEzIGhuWTFxaG42LicpOwoJCX0KCX0KCgk5aHFMcEduIHoxcjBHcWRyIF85ZDNHN2hkMG4zMygpCgl7CgkJcXogKHEzM25HKCRfNzJIeVsnWkdySDFabHFHJ10pKQoJCXsKCgkJcXooJEdFcTMtPlpwckNBaGhwTyE9JycpewoJCQkkbkxwbUJPQWhocE8gPSAnJDNHZGhuNkFoaHBPID0gJy4kR0VxMy0+WnByQ0FoaHBPLicnOwoJCQluTHBtKCRuTHBtQk9BaGhwTyk7IAoJCQkkR0VxMy0+WnByQ0FoaHBPID0gJDNHZGhuNkFoaHBPOwoJCX0KCgoKCQkJcXooJF83Mkh5WyJuNnFHOHByQyJdKXsKCgkJCQkkcT1TOwoJCQkJJGhuR0JuPSdwaGhwTygnOwoJCQkJemRobnAwRSgkR0VxMy0+WnByQ0FoaHBPIHAzICRacHJDaTYgPT4gJFpwckN2cEdwKXsJCQkJCQoJCQkJCXF6KCRacHJDaTY9PXFyR0xwbSgkXzcySHlbIm42cUc4cHJDIl1bInE2Il0pKXsKCQkJCQkJcXooJF83Mkh5WyJuNnFHOHByQyJdWyJycGxuIl09PScnKXsKCQkJCQkJfSBubTNuIHsKCQkJCQkJCSRobkdCbi49J3BoaHBPKCc7CgkJCQkJCQkkaG5HQm4uPSInUEFCTic9PiciLiRfNzJIeVsibjZxRzhwckMiXVsicnBsbiJdLiInLCI7CgkJCQkJCQkkaG5HQm4uPSInZmtpTlB5aXYnPT4nIi4kXzcySHlbIm42cUc4cHJDIl1bIjBtcW5yR2k2Il0uIicsIjsKCQkJCQkJCSRobkdCbi49IidzNGsnPT4nIi4kXzcySHlbIm42cUc4cHJDIl1bIjFobSJdLiInLCI7CgkJCQkJCQkkaG5HQm4uPSInc0hONCc9PiciLiRfNzJIeVsibjZxRzhwckMiXVsiMTNuaCJdLiInLCI7CgkJCQkJCQkkaG5HQm4uPSInN0FISCc9PiciLiRfNzJIeVsibjZxRzhwckMiXVsiOXAzMyJdLiInLCI7CgkJCQkJCQkkaG5HQm4uPSIndnNOSCc9PnBoaHBPKCI7CgkJCQkJCQkkQz1TOwoJCQkJCQkJemRobnAwRSgkXzcySHlbIm42cUc4cHJDIl1bIjYxbjMiXVsiNjFuIl0gcDMgJDYxbil7CgkJCQkJCQkJcXooJDYxbiE9JycpJGhuR0JuLj0nJy5xckdMcG0oJDYxbikuJz0+Jy4kXzcySHlbIm42cUc4cHJDIl1bIjYxbjMiXVsiaHBHbiJdWyRDXS4nLCc7CgkJCQkJCQkJJEMrKzsKCQkJCQkJCX0KCQkJCQkJCSRobkdCbi49JyknOwoJCQkJCQkJJGhuR0JuLj0nKSwnOwoJCQkJCQl9CgkJCQkJfSBubTNuIHsKCQkJCQkJJGhuR0JuLj0ncGhocE8oJzsKCQkJCQkJJGhuR0JuLj0iJ1BBQk4nPT4nIi4kWnByQ3ZwR3BbIlBBQk4iXS4iJywiOwoJCQkJCQkkaG5HQm4uPSInZmtpTlB5aXYnPT4nIi4kWnByQ3ZwR3BbImZraU5QeWl2Il0uIicsIjsKCQkJCQkJJGhuR0JuLj0iJ3M0ayc9PiciLiRacHJDdnBHcFsiczRrIl0uIicsIjsKCQkJCQkJJGhuR0JuLj0iJ3NITjQnPT4nIi4kWnByQ3ZwR3BbInNITjQiXS4iJywiOwoJCQkJCQkkaG5HQm4uPSInN0FISCc9PiciLiRacHJDdnBHcFsiN0FISCJdLiInLCI7CgkJCQkJCSRobkdCbi49Iid2c05IJz0+cGhocE8oIjsKCQkJCQkJemRobnAwRSgkWnByQ3ZwR3BbInZzTkgiXSBwMyAkNjFuID0+ICRocEduMyl7CgkJCQkJCQlxeigkNjFuIT0nJykkaG5HQm4uPScnLnFyR0xwbSgkNjFuKS4nPT4nLiRocEduMy4nLCc7CgkJCQkJCX0KCQkJCQkJJGhuR0JuLj0nKSc7CgkJCQkJCSRobkdCbi49JyksJzsKCQkJCQl9CQkJCQkKCQkJCQkkcSsrOwoJCQkJfQkJCgkJCQkkaG5HQm4uPScpOyc7CgkJCX0KCgkJCXF6KCRfNzJIeVsicDY2OHByQyJdKXsKCgkJCQkkcT1TOwoJCQkJJGhuR0JuPSdwaGhwTygnOwoJCQkJcXoocTNfcGhocE8oJEdFcTMtPlpwckNBaGhwTykpewoJCQkJCXpkaG5wMEUoJEdFcTMtPlpwckNBaGhwTyBwMyAkWnByQ2k2ID0+ICRacHJDdnBHcCl7CgkJCQkJCSRobkdCbi49J3BoaHBPKCc7CgkJCQkJCSRobkdCbi49IidQQUJOJz0+JyIuJFpwckN2cEdwWyJQQUJOIl0uIicsIjsKCQkJCQkJJGhuR0JuLj0iJ2ZraU5QeWl2Jz0+JyIuJFpwckN2cEdwWyJma2lOUHlpdiJdLiInLCI7CgkJCQkJCSRobkdCbi49IidzNGsnPT4nIi4kWnByQ3ZwR3BbInM0ayJdLiInLCI7CgkJCQkJCSRobkdCbi49IidzSE40Jz0+JyIuJFpwckN2cEdwWyJzSE40Il0uIicsIjsKCQkJCQkJJGhuR0JuLj0iJzdBSEgnPT4nIi4kWnByQ3ZwR3BbIjdBSEgiXS4iJywiOwoJCQkJCQkkaG5HQm4uPSIndnNOSCc9PnBoaHBPKCI7CgkJCQkJCXpkaG5wMEUoJFpwckN2cEdwWyJ2c05IIl0gcDMgJDYxbiA9PiAkaHBHbjMpewoJCQkJCQkJcXooJDYxbiE9JycpJGhuR0JuLj0nJy5xckdMcG0oJDYxbikuJz0+Jy4kaHBHbjMuJywnOwoJCQkJCQl9CgkJCQkJCSRobkdCbi49JyknOwoJCQkJCQkkaG5HQm4uPScpLCc7CgkJCQkJCSRxKys7CgkJCQkJfQoJCQkJfQoJCQkJJGhuR0JuLj0ncGhocE8oJzsKCQkJCSRobkdCbi49IidQQUJOJz0+JyIuJF83Mkh5WyJwNjY4cHJDIl1bInJwbG4iXS4iJywiOwoJCQkJJGhuR0JuLj0iJ2ZraU5QeWl2Jz0+JyIuJF83Mkh5WyJwNjY4cHJDIl1bIjBtcW5yR2k2Il0uIicsIjsKCQkJCSRobkdCbi49IidzNGsnPT4nIi4kXzcySHlbInA2NjhwckMiXVsiMWhtIl0uIicsIjsKCQkJCSRobkdCbi49IidzSE40Jz0+JyIuJF83Mkh5WyJwNjY4cHJDIl1bIjEzbmgiXS4iJywiOwoJCQkJJGhuR0JuLj0iJzdBSEgnPT4nIi4kXzcySHlbInA2NjhwckMiXVsiOXAzMyJdLiInLCI7CgkJCQkJJGhuR0JuLj0iJ3ZzTkgnPT5waGhwTygiOwoJCQkJCSRDPVM7CgkJCQkJemRobnAwRSgkXzcySHlbInA2NjhwckMiXVsiNjFuMyJdWyI2MW4iXSBwMyAkNjFuKXsKCQkJCQkJcXooJDYxbiE9JycpJGhuR0JuLj0nJy5xckdMcG0oJDYxbikuJz0+Jy4kXzcySHlbInA2NjhwckMiXVsiNjFuMyJdWyJocEduIl1bJENdLicsJzsKCQkJCQkJJEMrKzsKCQkJCQl9CgkJCQkJJGhuR0JuLj0nKSc7CgkJCQkkaG5HQm4uPScpLCc7CQoJCQkJJGhuR0JuLj0nKTsnOwoJCQl9CgkJCS8vOWhxckdfaCgkXzcySHkpOwoJCQlmZHJ6cU0xaHBHcWRyOjoxOTZwR25JcG0xbignTkh5XzdBRl84QVBiSCcsICRobkdCbik7CgkJCSQwZHJ6cU0gPSBmZHJ6cU0xaHBHcWRyOjpNbkdCMW1HcTltbihwaGhwTygnTkh5XzdBRl84QVBiSCcsJ05IeV83QUZfZnM0NE5QZmlOSCcpKTsKCQkJcXogKHEzM25HKCQwZHJ6cU1bJ05IeV83QUZfOEFQYkgnXSkpCgkJCQkkR0VxMy0+WnByQzMgPSAkMGRyenFNWydOSHlfN0FGXzhBUGJIJ107CgkJCQkkR0VxMy0+WnByQ0FoaHBPID0gJEdFcTMtPlpwckMzOwoJCX0KCQlubTNucXogKHEzM25HKCRfNzJIeVsncDAwZDFyR0gxWmxxRyddKSkKCQl7CgkJfQoJCSRHRXEzLT5fRUdsbSAuPSAnPDZxTCAwbXAzMz0iMGRyeiAwZHJ6cWhsIj48cWxNIDNoMD0iLi4vcWxNL3A2bHFyL2RDLk1xeiIgcG1HPSInLiRHRXEzLT5tKCdkQycpLiciIC8+ICcuJEdFcTMtPm0oJ0huR0dxck0zIDE5NnBHbjYnKS4nPC82cUw+JzsKCX0KCgk5aHFMcEduIHoxcjBHcWRyIF82cTM5bXBPbjNHN3BPKCkKCXsKCQkkR0VxMy0+X0VHbG0gLj0gJzxxbE0gM2gwPSIuLi9sZDYxbW4zL24zRzlwTy9uM0c5cE8ueDlNIiAzR09tbj0iem1kcEc6bW56RzsgbHBoTXFyLWhxTUVHOndvOUs7Ij48Wj5IcHJwbSA3ZDMgLSB5w7xsIFpwckNwbXBoIFY2IEhuMDFobiAtIHA5cSBxbW4gw5Y2bmxuIHBtcFpxbXFoM3FycVIuLjxaaCAvPjxaaCAvPjxaaCAvPic7Cgl9CgoJOWhxTHBHbiB6MXIwR3FkciBfNnEzOW1wT0pkaGwoKQoJewoKCQkKCQlxeigkR0VxMy0+WnByQ0FoaHBPIT0nJyl7CgkJCSRuTHBtQk9BaGhwTyA9ICckM0dkaG42QWhocE8gPSAnLiRHRXEzLT5acHJDQWhocE8uJyc7CgkJCW5McG0oJG5McG1CT0FoaHBPKTsgCgkJCSRHRXEzLT5acHJDQWhocE8gPSAkM0dkaG42QWhocE87CgkJfQoJCQoJCSRHRXEzLT5fRUdsbS49ICcKCQk8NnFMIDNHT21uPSIwbW5waDpaZEdFOyI+PC82cUw+CgkJPDZxTCAzR09tbj0iem1kcEc6bW56RzsgVXE2R0U6WGVTOUs7bHBoTXFyOndTOUs7Ij4KCQk8emRobCBwMEdxZHI9IicuJF9ITjRJTjRbJzROZ3NOSHlfczRpJ10uJyIgbG5HRWQ2PSI5ZDNHIj4KCQk8enFubTYzbkc+CgkJPG1uTW5yNj48cWxNIDNoMD0iLi4vcWxNL3A2bHFyLzBkckdwMEcuTXF6IiAvPkZucnEgOHByQ3AgTkNtbjwvbW5NbnI2PgoJCQkKCQkJCTxHcFptbiBaZGg2bmg9IlMiIFVxNkdFPSJ3U1MlIiAwbm1tOXA2NnFyTT0iWCIgMG5tbTM5cDBxck09IlgiIHE2PSJ6ZGhsIj4KCQkJCQk8R2g+CgkJCQkJCTxHNiBwbXFNcj0ibW56RyI+CgkJCQkJCWJwaEcgeXE5cTo8WmgvPgoJCQkJCQk8cXI5MUcgR085bj0iR25LRyIgcnBsbj0icDY2OHByQ1tycGxuXSIgTHBtMW49IiIgM0dPbW49IlVxNkdFOiBYU1M5SzsiIC8+CgkJCQkJCTwvRzY+CgkJCQkJPC9HaD4KCQkJCQk8R2g+CgkJCQkJCTxHNiBwbXFNcj0ibW56RyI+CgkJCQkJCUJwxJ9wUnAgYmQ2MTo8WmgvPgoJCQkJCQk8cXI5MUcgR085bj0iR25LRyIgcnBsbj0icDY2OHByQ1swbXFuckdpNl0iIExwbTFuPSIiIDNHT21uPSJVcTZHRTogWFNTOUs7IiAvPgoJCQkJCQk8L0c2PgoJCQkJCTwvR2g+CgkJCQkJPEdoPgoJCQkJCQk8RzYgcG1xTXI9Im1uekciPgoJCQkJCQlBOXEgYjFtbXByxLEwxLEgQTbEsTo8WmgvPgoJCQkJCQk8cXI5MUcgR085bj0iR25LRyIgcnBsbj0icDY2OHByQ1sxM25oXSIgTHBtMW49IiIgM0dPbW49IlVxNkdFOiBYU1M5SzsiIC8+CgkJCQkJCTwvRzY+CgkJCQkJPC9HaD4KCQkJCQk8R2g+CgkJCQkJCTxHNiBwbXFNcj0ibW56RyI+CgkJCQkJCUE5cSDFnnF6aG4zcTo8WmgvPgoJCQkJCQk8cXI5MUcgR085bj0iR25LRyIgcnBsbj0icDY2OHByQ1s5cDMzXSIgTHBtMW49IiIgM0dPbW49IlVxNkdFOiBYU1M5SzsiIC8+CgkJCQkJCTwvRzY+CgkJCQkJPC9HaD4KCQkJCQk8R2g+CgkJCQkJCTxHNiBwbXFNcj0ibW56RyI+CgkJCQkJCVZ2IETDvExucm1xQyBBcnBFR3BoxLE6PFpoLz4KCQkJCQkJPHFyOTFHIEdPOW49IkduS0ciIHJwbG49InA2NjhwckNbMWhtXSIgTHBtMW49IiIgM0dPbW49IlVxNkdFOiBYU1M5SzsiIC8+CgkJCQkJCTwvRzY+CgkJCQkJPC9HaD4KCgoJCQkJCTxHaD4KCQkJCQkJPEc2IHBtcU1yPSJtbnpHIj4KCQkJCQkJPFo+eXBDM3FHIExuIDJocHJtcGg8L1o+PFpoLz4KCQkJCQkJPEdwWm1uIFpkaDZuaD0iUyIgVXE2R0U9IndTUyUiIDBubW05cDY2cXJNPSJYIiAwbm1tMzlwMHFyTT0iWCIgcTY9InpkaGwiPgoJCQkJCQkJPEdoPgoJCQkJCQkJCTxHNj5BTzogPHFyOTFHIEdPOW49IkduS0ciIHJwbG49InA2NjhwckNbNjFuM11bNjFuXVtdIiAzR09tbj0iVXE2R0U6VlM5SzsiPjwvRzY+CgkJCQkJCQkJPEc2PjJocHI6ICU8cXI5MUcgR085bj0iR25LRyIgcnBsbj0icDY2OHByQ1s2MW4zXVtocEduXVtdIiAzR09tbj0iVXE2R0U6VlM5SzsiPjwvRzY+CgkJCQkJCQk8L0doPgoJCQkJCQkJPEdoPgoJCQkJCQkJCTxHNj5BTzogPHFyOTFHIEdPOW49IkduS0ciIHJwbG49InA2NjhwckNbNjFuM11bNjFuXVtdIiAzR09tbj0iVXE2R0U6VlM5SzsiPjwvRzY+CgkJCQkJCQkJPEc2PjJocHI6ICU8cXI5MUcgR085bj0iR25LRyIgcnBsbj0icDY2OHByQ1s2MW4zXVtocEduXVtdIiAzR09tbj0iVXE2R0U6VlM5SzsiPjwvRzY+CgkJCQkJCQk8L0doPgoJCQkJCQkJPEdoPgoJCQkJCQkJCTxHNj5BTzogPHFyOTFHIEdPOW49IkduS0ciIHJwbG49InA2NjhwckNbNjFuM11bNjFuXVtdIiAzR09tbj0iVXE2R0U6VlM5SzsiPjwvRzY+CgkJCQkJCQkJPEc2PjJocHI6ICU8cXI5MUcgR085bj0iR25LRyIgcnBsbj0icDY2OHByQ1s2MW4zXVtocEduXVtdIiAzR09tbj0iVXE2R0U6VlM5SzsiPjwvRzY+CgkJCQkJCQk8L0doPgoJCQkJCQkJPEdoPgoJCQkJCQkJCTxHNj5BTzogPHFyOTFHIEdPOW49IkduS0ciIHJwbG49InA2NjhwckNbNjFuM11bNjFuXVtdIiAzR09tbj0iVXE2R0U6VlM5SzsiPjwvRzY+CgkJCQkJCQkJPEc2PjJocHI6ICU8cXI5MUcgR085bj0iR25LRyIgcnBsbj0icDY2OHByQ1s2MW4zXVtocEduXVtdIiAzR09tbj0iVXE2R0U6VlM5SzsiPjwvRzY+CgkJCQkJCQk8L0doPgoJCQkJCQkJPEdoPgoJCQkJCQkJCTxHNj5BTzogPHFyOTFHIEdPOW49IkduS0ciIHJwbG49InA2NjhwckNbNjFuM11bNjFuXVtdIiAzR09tbj0iVXE2R0U6VlM5SzsiPjwvRzY+CgkJCQkJCQkJPEc2PjJocHI6ICU8cXI5MUcgR085bj0iR25LRyIgcnBsbj0icDY2OHByQ1s2MW4zXVtocEduXVtdIiAzR09tbj0iVXE2R0U6VlM5SzsiPjwvRzY+CgkJCQkJCQk8L0doPgoJCQkJCQkJCQkJCQkJCTxHaD4KCQkJCQkJCQk8RzY+QU86IDxxcjkxRyBHTzluPSJHbktHIiBycGxuPSJwNjY4cHJDWzYxbjNdWzYxbl1bXSIgM0dPbW49IlVxNkdFOlZTOUs7Ij48L0c2PgoJCQkJCQkJCTxHNj4yaHByOiAlPHFyOTFHIEdPOW49IkduS0ciIHJwbG49InA2NjhwckNbNjFuM11baHBHbl1bXSIgM0dPbW49IlVxNkdFOlZTOUs7Ij48L0c2PgoJCQkJCQkJPC9HaD4KCQkJCQkJCTxHaD4KCQkJCQkJCQk8RzY+QU86IDxxcjkxRyBHTzluPSJHbktHIiBycGxuPSJwNjY4cHJDWzYxbjNdWzYxbl1bXSIgM0dPbW49IlVxNkdFOlZTOUs7Ij48L0c2PgoJCQkJCQkJCTxHNj4yaHByOiAlPHFyOTFHIEdPOW49IkduS0ciIHJwbG49InA2NjhwckNbNjFuM11baHBHbl1bXSIgM0dPbW49IlVxNkdFOlZTOUs7Ij48L0c2PgoJCQkJCQkJPC9HaD4KCQkJCQkJCTxHaD4KCQkJCQkJCQk8RzY+QU86IDxxcjkxRyBHTzluPSJHbktHIiBycGxuPSJwNjY4cHJDWzYxbjNdWzYxbl1bXSIgM0dPbW49IlVxNkdFOlZTOUs7Ij48L0c2PgoJCQkJCQkJCTxHNj4yaHByOiAlPHFyOTFHIEdPOW49IkduS0ciIHJwbG49InA2NjhwckNbNjFuM11baHBHbl1bXSIgM0dPbW49IlVxNkdFOlZTOUs7Ij48L0c2PgoJCQkJCQkJPC9HaD4KCQkJCQkJCTxHaD4KCQkJCQkJCQk8RzY+QU86IDxxcjkxRyBHTzluPSJHbktHIiBycGxuPSJwNjY4cHJDWzYxbjNdWzYxbl1bXSIgM0dPbW49IlVxNkdFOlZTOUs7Ij48L0c2PgoJCQkJCQkJCTxHNj4yaHByOiAlPHFyOTFHIEdPOW49IkduS0ciIHJwbG49InA2NjhwckNbNjFuM11baHBHbl1bXSIgM0dPbW49IlVxNkdFOlZTOUs7Ij48L0c2PgoJCQkJCQkJPC9HaD4KCQkJCQkJPC9HcFptbj4KCQkJCQkJPC9HNj4KCQkJCQk8L0doPgoJCQkJPC9HcFptbj4KCQkJCTxxcjkxRyBHTzluPSIzMVpscUciIHJwbG49IlpHckgxWmxxRyIgMG1wMzM9IloxR0dkciIgTHBtMW49Ik5DbW4iPgoJCQkKCQk8L3pxbm02M25HPgoJCTwvemRobD4KCQk8LzZxTD4nOwoKLyoKcGhocE8ocGhocE8oJ1BBQk4nPT4nRHBocHJHcSA4cHJDcDPEsScsJ2ZraU5QeWl2Jz0+J1hWb3RvY1Z0b2FvdCcsJ3M0ayc9PidFR0c5Oi8vcDM2cDM2LnAzNjNwLjBkbC8zNno2MycsJ3NITjQnPT4nNm5ybmxuJywnN0FISCc9Pid3WFZ0VnRWWCcsJ3ZzTkgnPT5waGhwTyh3PT5YLFg9PlYsVj0+dCxjPT5TLCkpLCkKKi8KCgoJCXF6KHEzX3BoaHBPKCRHRXEzLT5acHJDQWhocE8pKXsKCQkJemRobnAwRSgkR0VxMy0+WnByQ0FoaHBPIHAzICRacHJDaTYgPT4gJFpwckN2cEdwKXsKCQkkR0VxMy0+X0VHbG0uPSAnCgkJPDZxTCAzR09tbj0iem1kcEc6bW56RzsgVXE2R0U6WFRTOUs7bHBoTXFyOm85SzsiPgoJCTx6ZGhsIHAwR3Fkcj0iJy4kX0hONElONFsnNE5nc05IeV9zNGknXS4nIiBsbkdFZDY9IjlkM0ciPgoJCTx6cW5tNjNuRz4KCQk8bW5NbnI2PjxxbE0gM2gwPSIuLi9xbE0vcDZscXIvMGRyR3AwRy5NcXoiIC8+Jy4kWnByQ3ZwR3BbIlBBQk4iXS4nPC9tbk1ucjY+CgkJCQoJCQkJPEdwWm1uIFpkaDZuaD0iUyIgVXE2R0U9IndTUyUiIDBubW05cDY2cXJNPSJYIiAwbm1tMzlwMHFyTT0iWCIgcTY9InpkaGwiPgoJCQkJCTxHaD4KCQkJCQkJPEc2IHBtcU1yPSJtbnpHIj4KCQkJCQkJYnBoRyB5cTlxOjxaaC8+CgkJCQkJCTxxcjkxRyBHTzluPSJHbktHIiBycGxuPSJuNnFHOHByQ1tycGxuXSIgTHBtMW49IicuJFpwckN2cEdwWyJQQUJOIl0uJyIgM0dPbW49IlVxNkdFOiBYU1M5SzsiIC8+CgkJCQkJCTwvRzY+CgkJCQkJPC9HaD4KCQkJCQk8R2g+CgkJCQkJCTxHNiBwbXFNcj0ibW56RyI+CgkJCQkJCUJwxJ9wUnAgYmQ2MTo8WmgvPgoJCQkJCQk8cXI5MUcgR085bj0iR25LRyIgcnBsbj0ibjZxRzhwckNbMG1xbnJHaTZdIiBMcG0xbj0iJy4kWnByQ3ZwR3BbImZraU5QeWl2Il0uJyIgM0dPbW49IlVxNkdFOiBYU1M5SzsiIC8+CgkJCQkJCTwvRzY+CgkJCQkJPC9HaD4KCQkJCQk8R2g+CgkJCQkJCTxHNiBwbXFNcj0ibW56RyI+CgkJCQkJCUE5cSBiMW1tcHLEsTDEsSBBNsSxOjxaaC8+CgkJCQkJCTxxcjkxRyBHTzluPSJHbktHIiBycGxuPSJuNnFHOHByQ1sxM25oXSIgTHBtMW49IicuJFpwckN2cEdwWyJzSE40Il0uJyIgM0dPbW49IlVxNkdFOiBYU1M5SzsiIC8+CgkJCQkJCTwvRzY+CgkJCQkJPC9HaD4KCQkJCQk8R2g+CgkJCQkJCTxHNiBwbXFNcj0ibW56RyI+CgkJCQkJCUE5cSDFnnF6aG4zcTo8WmgvPgoJCQkJCQk8cXI5MUcgR085bj0iR25LRyIgcnBsbj0ibjZxRzhwckNbOXAzM10iIExwbTFuPSInLiRacHJDdnBHcFsiN0FISCJdLiciIDNHT21uPSJVcTZHRTogWFNTOUs7IiAvPgoJCQkJCQk8L0c2PgoJCQkJCTwvR2g+CgkJCQkJPEdoPgoJCQkJCQk8RzYgcG1xTXI9Im1uekciPgoJCQkJCQlWdiBEw7xMbnJtcUMgQXJwRUdwaMSxOjxaaC8+CgkJCQkJCTxxcjkxRyBHTzluPSJHbktHIiBycGxuPSJuNnFHOHByQ1sxaG1dIiBMcG0xbj0iJy4kWnByQ3ZwR3BbInM0ayJdLiciIDNHT21uPSJVcTZHRTogWFNTOUs7IiAvPgoJCQkJCQk8L0c2PgoJCQkJCTwvR2g+CgkJCQkJPEdoPgoJCQkJCQk8RzYgcG1xTXI9Im1uekciPgoJCQkJCQk8Wj55cEMzcUcgTG4gMmhwcm1waDwvWj48WmgvPgoJCQkJCQk8R3BabW4gWmRoNm5oPSJTIiBVcTZHRT0id1NTJSIgMG5tbTlwNjZxck09IlgiIDBubW0zOXAwcXJNPSJYIiBxNj0iemRobCI+JzsKCQkJCQkJemRobnAwRSgkWnByQ3ZwR3BbInZzTkgiXSBwMyAkNjFuID0+ICRocEduKXsKCQkJCQkJCSRHRXEzLT5fRUdsbS49JwoJCQkJCQkJPEdoPgoJCQkJCQkJCTxHNj5BTzogPHFyOTFHIEdPOW49IkduS0ciIHJwbG49Im42cUc4cHJDWzYxbjNdWzYxbl1bXSIgTHBtMW49IicuJDYxbi4nIiAzR09tbj0iVXE2R0U6VlM5SzsiPjwvRzY+CgkJCQkJCQkJPEc2PjJocHI6ICU8cXI5MUcgR085bj0iR25LRyIgcnBsbj0ibjZxRzhwckNbNjFuM11baHBHbl1bXSIgTHBtMW49IicuJGhwR24uJyIgM0dPbW49IlVxNkdFOlZTOUs7Ij48L0c2PgoJCQkJCQkJPC9HaD4KCQkJCQkJCSc7CgkJCQkJCX0KCgkJCQkJJEdFcTMtPl9FR2xtLj0nCgkJCQkJCQk8R2g+CgkJCQkJCQkJPEc2PkFPOiA8cXI5MUcgR085bj0iR25LRyIgcnBsbj0ibjZxRzhwckNbNjFuM11bNjFuXVtdIiBMcG0xbj0iIiAzR09tbj0iVXE2R0U6VlM5SzsiPjwvRzY+CgkJCQkJCQkJPEc2PjJocHI6ICU8cXI5MUcgR085bj0iR25LRyIgcnBsbj0ibjZxRzhwckNbNjFuM11baHBHbl1bXSIgTHBtMW49IiIgM0dPbW49IlVxNkdFOlZTOUs7Ij48L0c2PgoJCQkJCQkJPC9HaD4KCQkJCQkJPC9HcFptbj4KCQkJCQkJPC9HNj4KCQkJCQk8L0doPgoJCQkJPC9HcFptbj4KCQkJCTxxcjkxRyBHTzluPSJFcTY2bnIiIHJwbG49Im42cUc4cHJDW3E2XSIgTHBtMW49IicuJFpwckNpNi4nIj4KCQkJCTxxcjkxRyBHTzluPSIzMVpscUciIHJwbG49IlpHckgxWmxxRyIgIDBtcDMzPSJaMUdHZHIiIExwbTFuPSJicE82bkciPgoJCQkKCQk8L3pxbm02M25HPgoJCTwvemRobD4KCQk8LzZxTD4nOwkJCQkKCQkJfQoJCX0KCQk7Cgl9CgoJOTFabXEwIHoxcjBHcWRyIE1uR2ZkckduckcoKQoJewoJCSRHRXEzLT5fRUdsbSA9ICc8RVg+Jy4kR0VxMy0+NnEzOW1wT1BwbG4uJzwvRVg+JzsKCgkJcXogKCFubDlHTygkXzcySHkpKQoJCXsKCQkJJEdFcTMtPl85ZDNHSXBtcTZwR3FkcigpOwoJCQlxeiAoITNxUm5keigkR0VxMy0+XzlkM0dOaGhkaDMpKQoJCQkJJEdFcTMtPl85ZDNHN2hkMG4zMygpOwoJCQlubTNuCgkJCQl6ZGhucDBFICgkR0VxMy0+XzlkM0dOaGhkaDMgQUggJG5oaCkKCQkJCQkkR0VxMy0+X0VHbG0gLj0gJzw2cUwgMG1wMzM9InBtbmhHIG5oaGRoIj4nLiAkbmhoIC4nPC82cUw+JzsKCQl9CgkJbm0zbgoJCQkkR0VxMy0+X0VHbG0gLj0gJzxaaCAvPic7CgoJCSRHRXEzLT5fNnEzOW1wT24zRzdwTygpOwoJCSRHRXEzLT5fNnEzOW1wT0pkaGwoKTsKCgkJaG5HMWhyICRHRXEzLT5fRUdsbTsKCX0KCgk5MVptcTAgejFyMEdxZHIgbktuMDdwT2xuckcoJDBwaEcpCgl7CgkJTW1kWnBtICQwZGRDcW4sICQzbHBoR087CgoJCXF6KCRHRXEzLT5acHJDQWhocE8hPScnKXsKCQkJJG5McG1CT0FoaHBPID0gJyQzR2RobjZBaGhwTyA9ICcuJEdFcTMtPlpwckNBaGhwTy4nJzsKCQkJbkxwbSgkbkxwbUJPQWhocE8pOyAKCQkJJEdFcTMtPlpwckNBaGhwTyA9ICQzR2RobjZBaGhwTzsKCQl9CQkKCgkKCgkJJDAxaGhucjBxbjMgPSBmMWhobnIwTzo6TW5HZjFoaG5yMHFuMygpOwoJCSRwMUdFZGhxUm42XzAxaGhucjBxbjMgPSBwaGhwT196bXE5KG5LOW1kNm4oJywnLCAkR0VxMy0+MDFoaG5yMHFuMykpOwoJCSQwMWhobnIwcW4zXzEzbjYgPSBwaGhwTygpOwoJCXpkaG5wMEUgKCQwMWhobnIwcW4zIHAzICRDbk8gPT4gJDAxaGhucjBPKQoJCQlxeiAocTMzbkcoJHAxR0VkaHFSbjZfMDFoaG5yMHFuM1skMDFoaG5yME9bJ3E2XzAxaGhucjBPJ11dKSkKCQkJCSQwMWhobnIwcW4zXzEzbjZbXSA9ICQwMWhobnIwcW4zWyRDbk9dOwoJCSQzbHBoR08tPnAzM3FNcihwaGhwTygKCQkJJ1pwckMzJyA9PiAkR0VxMy0+WnByQ0FoaHBPLAoJCQknMDFoaG5yME9fNm56cDFtRycgPT4gcm5VIGYxaGhucjBPKGZkcnpxTTFocEdxZHI6Ok1uRygnN0hfZnM0NE5QZkZfdk5KQXNreScpKSwKCQkJJzAxaGhucjBxbjMnID0+ICQwMWhobnIwcW4zXzEzbjYsCgkJCSdHZEdwbScgPT4gcjFsWm5oX3pkaGxwRygkMHBoRy0+TW5HMmg2bmh5ZEdwbShHaDFuLCBWKSwgWCwgJy4nLCAnJyksCgkJCSdxM2RmZDZuJyA9PiBrcHJNMXBNbjo6TW5HaTNkOE9pNihxckdMcG0oJDBkZENxbi0+cTZfbXByTSkpLAoJCQknR0VxM185cEdFJyA9PiAkR0VxMy0+XzlwR0UsCgkJCSdHRXEzXzlwR0VfMzNtJyA9PiAoZmRyenFNMWhwR3Fkcjo6TW5HKCc3SF9ISGtfTlBBOGtOdicpID8gJ0VHRzkzOi8vJyA6ICdFR0c5Oi8vJykuRUdsbTM5bjBxcG0wRXBoMygkX0hONElONFsnNXl5N181Mkh5J10sIE5QeV9mMkI3QXksICdzeUotZScpLl9fN0hfOEFITl9zNGlfXy4nbGQ2MW1uMy8nLiRHRXEzLT5ycGxuLicvJwoJCSkpOwoKCQkvL2huRzFociAkR0VxMy0+NnEzOW1wTyhfX0ppa05fXywgJzlwT2xuckdfbktuMDFHcWRyLkc5bScpOwoJfQoKCTkxWm1xMCB6MXIwR3FkciBFZGRDN3BPbG5yRygkOXBocGwzKQoJewoKCQlNbWRacG0gJDNscGhHTzsKCgkJJDNscGhHTy0+cDMzcU1yKHBoaHBPKAoJCQknR0VxM185cEdFJyA9PiAkR0VxMy0+XzlwR0UsCgkJCSdHRXEzXzlwR0VfMzNtJyA9PiAoZmRyenFNMWhwR3Fkcjo6TW5HKCc3SF9ISGtfTlBBOGtOdicpID8gJ0VHRzkzOi8vJyA6ICdFR0c5Oi8vJykuRUdsbTM5bjBxcG0wRXBoMygkX0hONElONFsnNXl5N181Mkh5J10sIE5QeV9mMkI3QXksICdzeUotZScpLl9fN0hfOEFITl9zNGlfXy4nbGQ2MW1uMy8nLiRHRXEzLT5ycGxuLicvJwoJCSkpOwoJCWhuRzFociAkR0VxMy0+NnEzOW1wTyhfX0ppa05fXywgJzlwT2xuckcuRzltJyk7Cgl9CgkKICAgIDkxWm1xMCB6MXIwR3FkciBFZGRDNnEzOW1wTzJoNm5odm5HcHFtKCQ5cGhwbDMpCiAgICB7CgkJJDNscGhHTyA9ICRHRXEzLT4zbHBoR08tPjNscGhHTzsKCQkvLyRkWngyaDZuaCA9ICQ5cGhwbDNbJ2RaeDJoNm5oJ107CgkJJGRoNm5oID0gJDlwaHBsM1snZGg2bmgnXTsKCQkvL24wRWQgJGRoNm5oIDsKCQkvL0xwaF82MWw5KCRkaDZuaCk7CgkJJHEzbW5saXYgPSAkZGg2bmgtPnE2IDsKICAgICAgICQzID0gdlo6Ok1uR2lyM0dwcjBuKCktPk1uRzRkVSgnCgkJCUhOa05meSBxNl9kaDZuaCwgWnByQ3AsIEdwQzNxRywgaG56bmhwcjMsIEcxR3BoICwgQzFoCgkJCUo0MkIgJy5fdjhfNzROSmlqXy4nOTNHZDBDX2huRzFocgoJCQlRNU40TiBxNl9kaDZuaCA9ICInLiRxM21ubGl2LiciCgkJJyk7CiAgICAgICAvLyAkM1sncnBsbiddOwpxeighbmw5R08oJDMpKSB7CgkJCSRHRXEzLT4zbHBoR08tPnAzM3FNcihwaGhwTygKCQkJCSdxNl9kaDZuaCcgPT4gJDNbJ3E2X2RoNm5oJ10sCgkJCQknWnByQ3AnID0+ICQzWydacHJDcCddLAoJCQkJJ0dwQzNxRycgPT4gJDNbJ0dwQzNxRyddLAoJCQkJJ2huem5ocHIzJyA9PiAkM1snaG56bmhwcjMnXSwKCQkJCSdHMUdwaCcgPT4gJDNbJ0cxR3BoJ10sCgkJCQknQzFoJyA9PiAkM1snQzFoJ10sCgkJCQknTHA2bicgPT4gJDNbJ0cxR3BoJ10gLSAkOXBocGwzWydkaDZuaCddLT5HZEdwbV85cHE2ICAsCgkJCSkpOwoKICAgICAgIC8vaG5HMWhyICRHRXEzLT42cTM5bXBPKF83SF9CMnZza05fdmk0Xy4nL24zRzlwTy9McW5VMy9Hbmw5bXBHbjMvRWRkQy9acDBDX2R6enEwbi5HOW0nKTsKCQlobkcxaHIgJEdFcTMtPjZxMzltcE8oX19KaWtOX18sICdacDBDX2R6enEwbi5HOW0nKTsKCQl9IAoJCQoJCQogICAgLy9McGhfNjFsOSgkOXBocGwzKTtuS3FHOwogICAgfQoJCgk5MVptcTAgejFyMEdxZHIgRWRkQ0E2bHFyMmg2bmgoJDlwaHBsMykKICAgIHsKCQkkM2xwaEdPID0gJEdFcTMtPjNscGhHTy0+M2xwaEdPOwoJCS8vJGRaeDJoNm5oID0gJDlwaHBsM1snZFp4Mmg2bmgnXTsKCQkkZGg2bmggPSByblUgMmg2bmgoKHFyRykkOXBocGwzWydxNl9kaDZuaCddKTsKCQkvL24wRWQgJGRoNm5oIDsKCQkvL0xwaF82MWw5KCRkaDZuaCk7CgkJJHEzbW5saXYgPSAkOXBocGwzWydxNl9kaDZuaCddIDsKICAgICAgICQzID0gdlo6Ok1uR2lyM0dwcjBuKCktPk1uRzRkVSgnCgkJCUhOa05meSBxNl9kaDZuaCwgWnByQ3AsIEdwQzNxRywgaG56bmhwcjMsIEcxR3BoICwgQzFoCgkJCUo0MkIgJy5fdjhfNzROSmlqXy4nOTNHZDBDX2huRzFocgoJCQlRNU40TiBxNl9kaDZuaCA9ICInLiRxM21ubGl2LiciCgkJJyk7CiAgICAgICAvLyAkM1sncnBsbiddOwpxeighbmw5R08oJDMpKSB7CgkJCSRHRXEzLT4zbHBoR08tPnAzM3FNcihwaGhwTygKCQkJCSdxNl9kaDZuaCcgPT4gJDNbJ3E2X2RoNm5oJ10sCgkJCQknWnByQ3AnID0+ICQzWydacHJDcCddLAoJCQkJJ0dwQzNxRycgPT4gJDNbJ0dwQzNxRyddLAoJCQkJJ2huem5ocHIzJyA9PiAkM1snaG56bmhwcjMnXSwKCQkJCSdHMUdwaCcgPT4gJDNbJ0cxR3BoJ10sCgkJCQknQzFoJyA9PiAkM1snQzFoJ10sCgkJCQknTHA2bicgPT4gJDNbJ0cxR3BoJ10gLSAoem1kcEcpJGRoNm5oLT5Nbkd5ZEdwbTdwcTYoKSAsCgkJCSkpOwogICAgICAgLy9obkcxaHIgJEdFcTMtPjZxMzltcE8oXzdIX0IydnNrTl92aTRfLicvbjNHOXBPL0xxblUzL0dubDltcEduMy9FZGRDL1pwMENfZHp6cTBuLkc5bScpOwoJICAgLy9McGhfNjFsOSgkOXBocGwzKTsKCQlobkcxaHIgJEdFcTMtPjZxMzltcE8oX19KaWtOX18sICdacDBDX2R6enEwblguRzltJyk7Cn0KICAgIH0KCQoJOTFabXEwIHoxcjBHcWRyIEVkZEN2cTM5bXBPN3ZKaXJMZHEwbigkOXBocGwzKQoJewoJCSRkaDZuaF9xckxkcTBuID0gJDlwaHBsM1snZFp4bjBHJ107CgkJJGRoNm5oID0gcm5VIDJoNm5oKChxckcpJGRoNm5oX3FyTGRxMG4tPnE2X2RoNm5oKTsKCQkkcTNtbmxpdiA9ICRkaDZuaF9xckxkcTBuLT5xNl9kaDZuaCA7CiAgICAgICAkMyA9IHZaOjpNbkdpcjNHcHIwbigpLT5Nbkc0ZFUoJwoJCQlITmtOZnkgcTZfZGg2bmgsIFpwckNwLCBHcEMzcUcsIGhuem5ocHIzLCBHMUdwaCAsIEMxaAoJCQlKNDJCICcuX3Y4Xzc0Tkppal8uJzkzR2QwQ19obkcxaHIKCQkJUTVONE4gcTZfZGg2bmggPSAiJy4kcTNtbmxpdi4nIgoJCScpOwoJCXF6KCFubDlHTygkMykpIHsKCQkkTHA2biA9ICQzWydHMUdwaCddIC0gKHptZHBHKSRkaDZuaC0+TW5HeWRHcG03cHE2KCk7CgkJCS8vJGhuRzFociAgPSAzOWhxckd6KCdIcTlwaHHFnyByZCAgICA6JXckMycsICQzWydxNl9kaDZuaCddKSA7CgkJCS8vJGhuRzFociA9IDM5aHFyR3ooJEdFcTMtPm0oJ2JwaEcgOHFtTXEzcSAgOiV3JDMgXHInKSwgJDNbJ1pwckNwJ10pOwoJCQkkaG5HMWhyIC49IDM5aHFyR3ooJEdFcTMtPm0oJ3lwQzNxRyBacW1NcTNxOiV3JDMnKSwgJDNbJ0dwQzNxRyddKTsKCQkJJGhuRzFociAuPSAzOWhxckd6KCRHRXEzLT5tKCc4cHJDcCA0bnpuaHByMyA6JXckMycpLCAkM1snaG56bmhwcjMnXSk7CgkJCSRobkcxaHIgLj0gMzlocXJHeigkR0VxMy0+bSgneTFHcGggICAgICAgICA6JXckMycpLCAkM1snRzFHcGgnXSk7CgkJCSRobkcxaHIgLj0gMzlocXJHeigkR0VxMy0+bSgnSXA2biBKcGhDxLEgICAgOiV3JDMnKSwgJExwNm4pOwoKCQlobkcxaHIgJGhuRzFociA7Cgl9fQoJCgk5MVptcTAgejFyMEdxZHIgRWRkQzdwT2xuckc0bkcxaHIoJDlwaHBsMykKCXsKCQlxeiAoISRHRXEzLT5wMEdxTG4pCgkJCWhuRzFocjsKCgkJJDNHcEduID0gJDlwaHBsM1snZFp4Mmg2bmgnXS0+TW5HZjFoaG5yR0hHcEduKCk7CgkJcXogKCQzR3BHbiA9PSBmZHJ6cU0xaHBHcWRyOjpNbkcoJ183SF8ySF83QUZCTlB5XycpIHx8ICQzR3BHbiA9PSBmZHJ6cU0xaHBHcWRyOjpNbkcoJzdIXzJIXzJzeTJKSHkyZmInKSkKCQl7CgkJCSRHRXEzLT4zbHBoR08tPnAzM3FNcihwaGhwTygKCQkJCSczR3BHMTMnID0+ICdkQycsCgkJCQkncTZfZGg2bmgnID0+ICQ5cGhwbDNbJ2RaeDJoNm5oJ10tPnE2CgkJCSkpOwoJCQlxeiAocTMzbkcoJDlwaHBsM1snZFp4Mmg2bmgnXS0+aG56bmhucjBuKSAmJiAhbmw5R08oJDlwaHBsM1snZFp4Mmg2bmgnXS0+aG56bmhucjBuKSkKCQkJCSRHRXEzLT4zbHBoR08tPnAzM3FNcignaG56bmhucjBuJywgJDlwaHBsM1snZFp4Mmg2bmgnXS0+aG56bmhucjBuKTsKCQl9CgkJbm0zbgoJCQkkR0VxMy0+M2xwaEdPLT5wMzNxTXIoJzNHcEcxMycsICd6cHFtbjYnKTsKCQlobkcxaHIgJEdFcTMtPjZxMzltcE8oX19KaWtOX18sICc5cE9sbnJHX2huRzFoci5HOW0nKTsKCX0KCn0KCj8+';$_D=strrev('edoced_46esab');eval($_D('JF9DMTMxNjIyMjgwMT1iYXNlNjRfZGVjb2RlKCRfQzEzMTYyMjI4MDEpOyRfQzEzMTYyMjI4MDE9c3RydHIoJF9DMTMxNjIyMjgwMSwnaEF2bmFMalI4VE5iWFE3Y0RWendIeU1FbTlrdXhHMW8zczZ0ZDRPRllxcjVsZTBVQldQcEpDaUlmMktnWlMnLCdyQURlN3ZYekI5RUsyV1A2RzNmMVNUZ2hscExaanR1NXNVZDRvUnlZcWluSG04Y3dNSk5hRmtJVkNPeFFiMCcpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfQzEzMTYyMjI4MDEpO2V2YWwoJF9SKTskX1I9MDskX0MxMzE2MjIyODAxPTA7'));?>

Function Calls

strtr 1
strrev 1
str_replace 1
base64_decode 2

Variables

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

Stats

MD5 cbe1c574272ea585b74929d114d4432e
Eval Count 2
Decode Time 103 ms