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 @eval("?>".base64_decode("PD9waHANCi8qKg0KICogQGF1dGhvciBTdXJlc2gNCiAqIEBjb3B5cmlnaH..

Decoded Output download

?>b'<?php
/**
 * @author Suresh
 * @copyright 2017
 */
include(\'dbconfig.php\');
include(\'functions.php\');
$getupdate = db_select("SELECT a.version,a.build,a.download,a.file_path,a.file_size,a.deploy FROM `app_updates` a WHERE a.deploy =\'N\' ORDER BY a.build");

if(count($getupdate)>0)
{
 foreach($getupdate as $key=>$app)
 {  
    $content = file_get_contents($app[\'file_path\']);
    if($content === FALSE)
    {
     echo \'\';    
    }
    //Store in the filesystem.
    $FilePath = "temp/".$app[\'version\'].\'.zip\';
    //$fp = fopen("update/2.6.5.zip", "w");
    $fp = fopen($FilePath, "w");
    fwrite($fp, $content);
    fclose($fp);
    // get the absolute path to $file
    $fileSize = round(filesize($FilePath)/1024);
    $abs_diff = abs( $app[\'file_size\'] - $fileSize );
   // if($abs_diff <= 5)
   // {
        //$file = \'update/2.6.5.zip\';
        $realPath = realpath($FilePath);
        $path = pathinfo(realpath($file), PATHINFO_DIRNAME);
        //$page_directory = dirname($page_file_temp);
        //echo dirname(".") . PHP_EOL;
       // echo realpath($file);
        $zip = new ZipArchive;
        $res = $zip->open($realPath);
        if ($res === TRUE) {
          // extract it to the path we determined above
          $currentPath = dirname(__FILE__);
          $zip->extractTo($currentPath."/update/");
          $zip->close();
          echo "WOOT! $file extracted to $realPath";
        } else {
          echo "Doh! I couldn\'t open $realPath";
        }
      //  echo \'Current File Path:\'.dirname(__FILE__);
        
        db_query("UPDATE `app_updates` SET download=\'Y\',down_completed=CURRENT_TIMESTAMP WHERE build=\'$app[build]\'");
       // unlink($FilePath);
      // } 
    //File Download and Extract END //
    
  /*}  else
  {
    echo \'AWS Files ERROR:<br/>\'; 
  } */
 }
}



//Auto Update Files
$app_auto = db_select("SELECT a.name,a.value FROM app a WHERE a.name=\'version_update\'");
if($app_auto[0][\'value\']==\'AUTO\')
{
$getupdate = db_select("SELECT a.version,a.build,a.download,a.file_path,a.file_size,a.deploy FROM `app_updates` a WHERE a.download=\'Y\' AND a.deploy =\'N\' ORDER BY a.build");
if(count($getupdate)>0)
{
 // File Backup  
$db_app = db_select("SELECT a.name,a.value FROM app a WHERE a.name=\'version\'");    
$dir = ($db_app[0][\'value\']?$db_app[0][\'value\']:\'BK\');
$dir = $dir.\'_\'.date("Ymd");
$fulldir = \'./backup/\'.$dir;

if(!(file_exists($fulldir))) 
{
mkdir($fulldir, 0777);
}

//echo \'BASE:\'.getcwd();

copydir("modules",$fulldir."/modules");
//echo "Direct done";
$full_directory = \'backup\';
copyfiles(getcwd(),$fulldir);

      //ENTER THE RELEVANT INFO BELOW
        $mysqlUserName      = DB_USER;
        $mysqlPassword      = DB_PASSWORD;
        $mysqlHostName      = DB_HOST;
        $DbName             = DB_NAME;
        $backup_name        = "mybackup.sql";
        $tables             = \'*\';
    
   define("BACKUP_PATH", $fulldir);
   Export_Database($mysqlHostName,$mysqlUserName,$mysqlPassword,$DbName,  $tables=false, $backup_name=false,$dir);
   echo "OK";
 }

 // File Backup  END
 
 //Deploy Start
  $getupdate = db_select("SELECT a.version,a.build,a.download,a.file_path,a.file_size,a.deploy FROM `app_updates` a WHERE a.download=\'Y\' AND a.deploy =\'N\' ORDER BY a.build");
  if(count($getupdate)>0)
  {  
     foreach($getupdate as $keyup=>$valup)
     {
       $zip = new ZipArchive;
       $FilePath = "update/".$valup[\'version\']."/hotel.zip";
       $realPath = realpath($FilePath);
      // echo $FilePath;
       $res = $zip->open($realPath);
       if ($res === TRUE) {
      $currentPath = dirname(__FILE__);  
      $zip->extractTo($currentPath);
      $zip->close();
       }
      }
      echo "OK";

      foreach($getupdate as $keyup=>$valup)
      {
        //  Table Script START
        $conn =new mysqli(DB_HOST, DB_USER, DB_PASSWORD , DB_NAME);
        $query = \'\';
        $sqlScript = file("./update/$valup[version]/script.sql");
        foreach ($sqlScript as $line)	{
        	
        	$startWith = substr(trim($line), 0 ,2);
        	$endWith = substr(trim($line), -1 ,1);
        	
        	if (empty($line) || $startWith == \'--\' || $startWith == \'/*\' || $startWith == \'//\') {
        		continue;
        	}
        		
        	$query = $query . $line;
        	if ($endWith == \';\') {
        		mysqli_query($conn,$query) or print(\'\');
        		$query= \'\';		
        	}
        }
        
        //  Table Script END
        //VIew Script Start
        
        
        
            try
               {
                 $db = new PDO(\'mysql:dbname=\'.DB_NAME.\';host=\'.DB_HOST,DB_USER,DB_PASSWORD);
                 $sql = implode(array_map(function ($v) {
                    return file_get_contents($v);
                    }, glob(__DIR__ . "/update/$valup[version]/views.sql")));
             
                 $qr = $db->exec($sql); 
                // echo "Import action - 100% successfull";
               }
               catch (PDOException $e) 
               {
                // echo \'Connection failed: \' . $e->getMessage();
                echo \'\';
            }
             //VIew Script END  
        db_query("UPDATE app_updates SET deploy=\'Y\',deploy_time=NOW(),deploy_by=\'AUTO\' WHERE build=\'$valup[build]\'");  
      }  
      echo "OK";
     
     //Email & Version Updates Triggers
            $db_app = db_select("SELECT a.name,a.value FROM app a");
            $build = $system_mode = $last_updated = $server_path = $release_date=$version_update=$version=\'\';
            foreach($db_app as $key_app=>$app)
            {
                
                switch($app[\'name\'])
                {
                    case \'build\':
                    $build = $app[\'value\']; break;
                    case \'system_mode\':
                    $system_mode = $app[\'value\']; break;
                    case \'last_updated\':
                    $last_updated = $app[\'value\']; break;
                    case \'version\':
                    $version = $app[\'value\']; break;
                    case \'version_update\':
                    $versionupdate = $app[\'value\']; break;
                    case \'date\':
                    $release_date = $app[\'value\']; break;
                    case \'server_path\':
                    $server_path = $app[\'value\']; break;
                }
          }
        $_SESSION[\'version\'] = $version;  
        $exbuild = $build;
        $hotel_details = db_select("SELECT hotel_id,branch_id,access_key,hotel_name,email FROM ciar_ms_hotel_config LIMIT 1");
        $Hotel = $hotel_details[0]; 
          
        $TestData = array(\'build\'=>$build,\'system_mode\'=>$system_mode,\'hotel_id\'=>$Hotel[\'hotel_id\'],\'branch_id\'=>$Hotel[\'branch_id\'],\'access_key\'=>$Hotel[\'access_key\'],\'exbuild\'=>$exbuild,\'hotel_name\'=>$Hotel[\'hotel_name\'],\'email\'=>$Hotel[\'email\'],\'version\'=>$version,\'last_updated\'=>hotel_datetime($last_updated),\'release_date\'=>$release_date,\'updatedby\'=>\'AUTO UPDATE\');
        $data_string = json_encode($TestData);                                                                                   
                                                                                                               
        $ch = curl_init($server_path.\'PMSVersion.php?updatesuc=Y\');                                                           
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
        \'Content-Type: application/json\',                                                                                
        \'Content-Length: \' . strlen($data_string))                                                                       
        );                                                                                                                                                                                                            
        $result = curl_exec($ch);
        
        $data_stringemail = json_encode($TestData);                                                                          
        $chh = curl_init(\'http://hoteldeskhms.com/version_success_mail.php?updatesuc=Y\');                                                           
        curl_setopt($chh, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
        curl_setopt($chh, CURLOPT_POSTFIELDS, $data_stringemail);
        curl_setopt($chh, CURLOPT_RETURNTRANSFER, true);                                                                      
        curl_setopt($chh, CURLOPT_HTTPHEADER, array(                                                                          
        \'Content-Type: application/json\',                                                                                
        \'Content-Length: \' . strlen($data_stringemail))                                                                       
        );                                                                                                                                                                                                            
        $result1 = curl_exec($chh);

   }    
    
}
?>'

Did this file decode correctly?

Original Code

<?php @eval("?>".base64_decode("PD9waHANCi8qKg0KICogQGF1dGhvciBTdXJlc2gNCiAqIEBjb3B5cmlnaHQgMjAxNw0KICovDQppbmNsdWRlKCdkYmNvbmZpZy5waHAnKTsNCmluY2x1ZGUoJ2Z1bmN0aW9ucy5waHAnKTsNCiRnZXR1cGRhdGUgPSBkYl9zZWxlY3QoIlNFTEVDVCBhLnZlcnNpb24sYS5idWlsZCxhLmRvd25sb2FkLGEuZmlsZV9wYXRoLGEuZmlsZV9zaXplLGEuZGVwbG95IEZST00gYGFwcF91cGRhdGVzYCBhIFdIRVJFIGEuZGVwbG95ID0nTicgT1JERVIgQlkgYS5idWlsZCIpOw0KDQppZihjb3VudCgkZ2V0dXBkYXRlKT4wKQ0Kew0KIGZvcmVhY2goJGdldHVwZGF0ZSBhcyAka2V5PT4kYXBwKQ0KIHsgIA0KICAgICRjb250ZW50ID0gZmlsZV9nZXRfY29udGVudHMoJGFwcFsnZmlsZV9wYXRoJ10pOw0KICAgIGlmKCRjb250ZW50ID09PSBGQUxTRSkNCiAgICB7DQogICAgIGVjaG8gJyc7ICAgIA0KICAgIH0NCiAgICAvL1N0b3JlIGluIHRoZSBmaWxlc3lzdGVtLg0KICAgICRGaWxlUGF0aCA9ICJ0ZW1wLyIuJGFwcFsndmVyc2lvbiddLicuemlwJzsNCiAgICAvLyRmcCA9IGZvcGVuKCJ1cGRhdGUvMi42LjUuemlwIiwgInciKTsNCiAgICAkZnAgPSBmb3BlbigkRmlsZVBhdGgsICJ3Iik7DQogICAgZndyaXRlKCRmcCwgJGNvbnRlbnQpOw0KICAgIGZjbG9zZSgkZnApOw0KICAgIC8vIGdldCB0aGUgYWJzb2x1dGUgcGF0aCB0byAkZmlsZQ0KICAgICRmaWxlU2l6ZSA9IHJvdW5kKGZpbGVzaXplKCRGaWxlUGF0aCkvMTAyNCk7DQogICAgJGFic19kaWZmID0gYWJzKCAkYXBwWydmaWxlX3NpemUnXSAtICRmaWxlU2l6ZSApOw0KICAgLy8gaWYoJGFic19kaWZmIDw9IDUpDQogICAvLyB7DQogICAgICAgIC8vJGZpbGUgPSAndXBkYXRlLzIuNi41LnppcCc7DQogICAgICAgICRyZWFsUGF0aCA9IHJlYWxwYXRoKCRGaWxlUGF0aCk7DQogICAgICAgICRwYXRoID0gcGF0aGluZm8ocmVhbHBhdGgoJGZpbGUpLCBQQVRISU5GT19ESVJOQU1FKTsNCiAgICAgICAgLy8kcGFnZV9kaXJlY3RvcnkgPSBkaXJuYW1lKCRwYWdlX2ZpbGVfdGVtcCk7DQogICAgICAgIC8vZWNobyBkaXJuYW1lKCIuIikgLiBQSFBfRU9MOw0KICAgICAgIC8vIGVjaG8gcmVhbHBhdGgoJGZpbGUpOw0KICAgICAgICAkemlwID0gbmV3IFppcEFyY2hpdmU7DQogICAgICAgICRyZXMgPSAkemlwLT5vcGVuKCRyZWFsUGF0aCk7DQogICAgICAgIGlmICgkcmVzID09PSBUUlVFKSB7DQogICAgICAgICAgLy8gZXh0cmFjdCBpdCB0byB0aGUgcGF0aCB3ZSBkZXRlcm1pbmVkIGFib3ZlDQogICAgICAgICAgJGN1cnJlbnRQYXRoID0gZGlybmFtZShfX0ZJTEVfXyk7DQogICAgICAgICAgJHppcC0+ZXh0cmFjdFRvKCRjdXJyZW50UGF0aC4iL3VwZGF0ZS8iKTsNCiAgICAgICAgICAkemlwLT5jbG9zZSgpOw0KICAgICAgICAgIGVjaG8gIldPT1QhICRmaWxlIGV4dHJhY3RlZCB0byAkcmVhbFBhdGgiOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIGVjaG8gIkRvaCEgSSBjb3VsZG4ndCBvcGVuICRyZWFsUGF0aCI7DQogICAgICAgIH0NCiAgICAgIC8vICBlY2hvICdDdXJyZW50IEZpbGUgUGF0aDonLmRpcm5hbWUoX19GSUxFX18pOw0KICAgICAgICANCiAgICAgICAgZGJfcXVlcnkoIlVQREFURSBgYXBwX3VwZGF0ZXNgIFNFVCBkb3dubG9hZD0nWScsZG93bl9jb21wbGV0ZWQ9Q1VSUkVOVF9USU1FU1RBTVAgV0hFUkUgYnVpbGQ9JyRhcHBbYnVpbGRdJyIpOw0KICAgICAgIC8vIHVubGluaygkRmlsZVBhdGgpOw0KICAgICAgLy8gfSANCiAgICAvL0ZpbGUgRG93bmxvYWQgYW5kIEV4dHJhY3QgRU5EIC8vDQogICAgDQogIC8qfSAgZWxzZQ0KICB7DQogICAgZWNobyAnQVdTIEZpbGVzIEVSUk9SOjxici8+JzsgDQogIH0gKi8NCiB9DQp9DQoNCg0KDQovL0F1dG8gVXBkYXRlIEZpbGVzDQokYXBwX2F1dG8gPSBkYl9zZWxlY3QoIlNFTEVDVCBhLm5hbWUsYS52YWx1ZSBGUk9NIGFwcCBhIFdIRVJFIGEubmFtZT0ndmVyc2lvbl91cGRhdGUnIik7DQppZigkYXBwX2F1dG9bMF1bJ3ZhbHVlJ109PSdBVVRPJykNCnsNCiRnZXR1cGRhdGUgPSBkYl9zZWxlY3QoIlNFTEVDVCBhLnZlcnNpb24sYS5idWlsZCxhLmRvd25sb2FkLGEuZmlsZV9wYXRoLGEuZmlsZV9zaXplLGEuZGVwbG95IEZST00gYGFwcF91cGRhdGVzYCBhIFdIRVJFIGEuZG93bmxvYWQ9J1knIEFORCBhLmRlcGxveSA9J04nIE9SREVSIEJZIGEuYnVpbGQiKTsNCmlmKGNvdW50KCRnZXR1cGRhdGUpPjApDQp7DQogLy8gRmlsZSBCYWNrdXAgIA0KJGRiX2FwcCA9IGRiX3NlbGVjdCgiU0VMRUNUIGEubmFtZSxhLnZhbHVlIEZST00gYXBwIGEgV0hFUkUgYS5uYW1lPSd2ZXJzaW9uJyIpOyAgICANCiRkaXIgPSAoJGRiX2FwcFswXVsndmFsdWUnXT8kZGJfYXBwWzBdWyd2YWx1ZSddOidCSycpOw0KJGRpciA9ICRkaXIuJ18nLmRhdGUoIlltZCIpOw0KJGZ1bGxkaXIgPSAnLi9iYWNrdXAvJy4kZGlyOw0KDQppZighKGZpbGVfZXhpc3RzKCRmdWxsZGlyKSkpIA0Kew0KbWtkaXIoJGZ1bGxkaXIsIDA3NzcpOw0KfQ0KDQovL2VjaG8gJ0JBU0U6Jy5nZXRjd2QoKTsNCg0KY29weWRpcigibW9kdWxlcyIsJGZ1bGxkaXIuIi9tb2R1bGVzIik7DQovL2VjaG8gIkRpcmVjdCBkb25lIjsNCiRmdWxsX2RpcmVjdG9yeSA9ICdiYWNrdXAnOw0KY29weWZpbGVzKGdldGN3ZCgpLCRmdWxsZGlyKTsNCg0KICAgICAgLy9FTlRFUiBUSEUgUkVMRVZBTlQgSU5GTyBCRUxPVw0KICAgICAgICAkbXlzcWxVc2VyTmFtZSAgICAgID0gREJfVVNFUjsNCiAgICAgICAgJG15c3FsUGFzc3dvcmQgICAgICA9IERCX1BBU1NXT1JEOw0KICAgICAgICAkbXlzcWxIb3N0TmFtZSAgICAgID0gREJfSE9TVDsNCiAgICAgICAgJERiTmFtZSAgICAgICAgICAgICA9IERCX05BTUU7DQogICAgICAgICRiYWNrdXBfbmFtZSAgICAgICAgPSAibXliYWNrdXAuc3FsIjsNCiAgICAgICAgJHRhYmxlcyAgICAgICAgICAgICA9ICcqJzsNCiAgICANCiAgIGRlZmluZSgiQkFDS1VQX1BBVEgiLCAkZnVsbGRpcik7DQogICBFeHBvcnRfRGF0YWJhc2UoJG15c3FsSG9zdE5hbWUsJG15c3FsVXNlck5hbWUsJG15c3FsUGFzc3dvcmQsJERiTmFtZSwgICR0YWJsZXM9ZmFsc2UsICRiYWNrdXBfbmFtZT1mYWxzZSwkZGlyKTsNCiAgIGVjaG8gIk9LIjsNCiB9DQoNCiAvLyBGaWxlIEJhY2t1cCAgRU5EDQogDQogLy9EZXBsb3kgU3RhcnQNCiAgJGdldHVwZGF0ZSA9IGRiX3NlbGVjdCgiU0VMRUNUIGEudmVyc2lvbixhLmJ1aWxkLGEuZG93bmxvYWQsYS5maWxlX3BhdGgsYS5maWxlX3NpemUsYS5kZXBsb3kgRlJPTSBgYXBwX3VwZGF0ZXNgIGEgV0hFUkUgYS5kb3dubG9hZD0nWScgQU5EIGEuZGVwbG95ID0nTicgT1JERVIgQlkgYS5idWlsZCIpOw0KICBpZihjb3VudCgkZ2V0dXBkYXRlKT4wKQ0KICB7ICANCiAgICAgZm9yZWFjaCgkZ2V0dXBkYXRlIGFzICRrZXl1cD0+JHZhbHVwKQ0KICAgICB7DQogICAgICAgJHppcCA9IG5ldyBaaXBBcmNoaXZlOw0KICAgICAgICRGaWxlUGF0aCA9ICJ1cGRhdGUvIi4kdmFsdXBbJ3ZlcnNpb24nXS4iL2hvdGVsLnppcCI7DQogICAgICAgJHJlYWxQYXRoID0gcmVhbHBhdGgoJEZpbGVQYXRoKTsNCiAgICAgIC8vIGVjaG8gJEZpbGVQYXRoOw0KICAgICAgICRyZXMgPSAkemlwLT5vcGVuKCRyZWFsUGF0aCk7DQogICAgICAgaWYgKCRyZXMgPT09IFRSVUUpIHsNCiAgICAgICRjdXJyZW50UGF0aCA9IGRpcm5hbWUoX19GSUxFX18pOyAgDQogICAgICAkemlwLT5leHRyYWN0VG8oJGN1cnJlbnRQYXRoKTsNCiAgICAgICR6aXAtPmNsb3NlKCk7DQogICAgICAgfQ0KICAgICAgfQ0KICAgICAgZWNobyAiT0siOw0KDQogICAgICBmb3JlYWNoKCRnZXR1cGRhdGUgYXMgJGtleXVwPT4kdmFsdXApDQogICAgICB7DQogICAgICAgIC8vICBUYWJsZSBTY3JpcHQgU1RBUlQNCiAgICAgICAgJGNvbm4gPW5ldyBteXNxbGkoREJfSE9TVCwgREJfVVNFUiwgREJfUEFTU1dPUkQgLCBEQl9OQU1FKTsNCiAgICAgICAgJHF1ZXJ5ID0gJyc7DQogICAgICAgICRzcWxTY3JpcHQgPSBmaWxlKCIuL3VwZGF0ZS8kdmFsdXBbdmVyc2lvbl0vc2NyaXB0LnNxbCIpOw0KICAgICAgICBmb3JlYWNoICgkc3FsU2NyaXB0IGFzICRsaW5lKQl7DQogICAgICAgIAkNCiAgICAgICAgCSRzdGFydFdpdGggPSBzdWJzdHIodHJpbSgkbGluZSksIDAgLDIpOw0KICAgICAgICAJJGVuZFdpdGggPSBzdWJzdHIodHJpbSgkbGluZSksIC0xICwxKTsNCiAgICAgICAgCQ0KICAgICAgICAJaWYgKGVtcHR5KCRsaW5lKSB8fCAkc3RhcnRXaXRoID09ICctLScgfHwgJHN0YXJ0V2l0aCA9PSAnLyonIHx8ICRzdGFydFdpdGggPT0gJy8vJykgew0KICAgICAgICAJCWNvbnRpbnVlOw0KICAgICAgICAJfQ0KICAgICAgICAJCQ0KICAgICAgICAJJHF1ZXJ5ID0gJHF1ZXJ5IC4gJGxpbmU7DQogICAgICAgIAlpZiAoJGVuZFdpdGggPT0gJzsnKSB7DQogICAgICAgIAkJbXlzcWxpX3F1ZXJ5KCRjb25uLCRxdWVyeSkgb3IgcHJpbnQoJycpOw0KICAgICAgICAJCSRxdWVyeT0gJyc7CQkNCiAgICAgICAgCX0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLy8gIFRhYmxlIFNjcmlwdCBFTkQNCiAgICAgICAgLy9WSWV3IFNjcmlwdCBTdGFydA0KICAgICAgICANCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICAgICAgdHJ5DQogICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICRkYiA9IG5ldyBQRE8oJ215c3FsOmRibmFtZT0nLkRCX05BTUUuJztob3N0PScuREJfSE9TVCxEQl9VU0VSLERCX1BBU1NXT1JEKTsNCiAgICAgICAgICAgICAgICAgJHNxbCA9IGltcGxvZGUoYXJyYXlfbWFwKGZ1bmN0aW9uICgkdikgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoJHYpOw0KICAgICAgICAgICAgICAgICAgICB9LCBnbG9iKF9fRElSX18gLiAiL3VwZGF0ZS8kdmFsdXBbdmVyc2lvbl0vdmlld3Muc3FsIikpKTsNCiAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgJHFyID0gJGRiLT5leGVjKCRzcWwpOyANCiAgICAgICAgICAgICAgICAvLyBlY2hvICJJbXBvcnQgYWN0aW9uIC0gMTAwJSBzdWNjZXNzZnVsbCI7DQogICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSANCiAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyBlY2hvICdDb25uZWN0aW9uIGZhaWxlZDogJyAuICRlLT5nZXRNZXNzYWdlKCk7DQogICAgICAgICAgICAgICAgZWNobyAnJzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAvL1ZJZXcgU2NyaXB0IEVORCAgDQogICAgICAgIGRiX3F1ZXJ5KCJVUERBVEUgYXBwX3VwZGF0ZXMgU0VUIGRlcGxveT0nWScsZGVwbG95X3RpbWU9Tk9XKCksZGVwbG95X2J5PSdBVVRPJyBXSEVSRSBidWlsZD0nJHZhbHVwW2J1aWxkXSciKTsgIA0KICAgICAgfSAgDQogICAgICBlY2hvICJPSyI7DQogICAgIA0KICAgICAvL0VtYWlsICYgVmVyc2lvbiBVcGRhdGVzIFRyaWdnZXJzDQogICAgICAgICAgICAkZGJfYXBwID0gZGJfc2VsZWN0KCJTRUxFQ1QgYS5uYW1lLGEudmFsdWUgRlJPTSBhcHAgYSIpOw0KICAgICAgICAgICAgJGJ1aWxkID0gJHN5c3RlbV9tb2RlID0gJGxhc3RfdXBkYXRlZCA9ICRzZXJ2ZXJfcGF0aCA9ICRyZWxlYXNlX2RhdGU9JHZlcnNpb25fdXBkYXRlPSR2ZXJzaW9uPScnOw0KICAgICAgICAgICAgZm9yZWFjaCgkZGJfYXBwIGFzICRrZXlfYXBwPT4kYXBwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIHN3aXRjaCgkYXBwWyduYW1lJ10pDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICdidWlsZCc6DQogICAgICAgICAgICAgICAgICAgICRidWlsZCA9ICRhcHBbJ3ZhbHVlJ107IGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdzeXN0ZW1fbW9kZSc6DQogICAgICAgICAgICAgICAgICAgICRzeXN0ZW1fbW9kZSA9ICRhcHBbJ3ZhbHVlJ107IGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdsYXN0X3VwZGF0ZWQnOg0KICAgICAgICAgICAgICAgICAgICAkbGFzdF91cGRhdGVkID0gJGFwcFsndmFsdWUnXTsgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ZlcnNpb24nOg0KICAgICAgICAgICAgICAgICAgICAkdmVyc2lvbiA9ICRhcHBbJ3ZhbHVlJ107IGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICd2ZXJzaW9uX3VwZGF0ZSc6DQogICAgICAgICAgICAgICAgICAgICR2ZXJzaW9udXBkYXRlID0gJGFwcFsndmFsdWUnXTsgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGUnOg0KICAgICAgICAgICAgICAgICAgICAkcmVsZWFzZV9kYXRlID0gJGFwcFsndmFsdWUnXTsgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NlcnZlcl9wYXRoJzoNCiAgICAgICAgICAgICAgICAgICAgJHNlcnZlcl9wYXRoID0gJGFwcFsndmFsdWUnXTsgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgJF9TRVNTSU9OWyd2ZXJzaW9uJ10gPSAkdmVyc2lvbjsgIA0KICAgICAgICAkZXhidWlsZCA9ICRidWlsZDsNCiAgICAgICAgJGhvdGVsX2RldGFpbHMgPSBkYl9zZWxlY3QoIlNFTEVDVCBob3RlbF9pZCxicmFuY2hfaWQsYWNjZXNzX2tleSxob3RlbF9uYW1lLGVtYWlsIEZST00gY2lhcl9tc19ob3RlbF9jb25maWcgTElNSVQgMSIpOw0KICAgICAgICAkSG90ZWwgPSAkaG90ZWxfZGV0YWlsc1swXTsgDQogICAgICAgICAgDQogICAgICAgICRUZXN0RGF0YSA9IGFycmF5KCdidWlsZCc9PiRidWlsZCwnc3lzdGVtX21vZGUnPT4kc3lzdGVtX21vZGUsJ2hvdGVsX2lkJz0+JEhvdGVsWydob3RlbF9pZCddLCdicmFuY2hfaWQnPT4kSG90ZWxbJ2JyYW5jaF9pZCddLCdhY2Nlc3Nfa2V5Jz0+JEhvdGVsWydhY2Nlc3Nfa2V5J10sJ2V4YnVpbGQnPT4kZXhidWlsZCwnaG90ZWxfbmFtZSc9PiRIb3RlbFsnaG90ZWxfbmFtZSddLCdlbWFpbCc9PiRIb3RlbFsnZW1haWwnXSwndmVyc2lvbic9PiR2ZXJzaW9uLCdsYXN0X3VwZGF0ZWQnPT5ob3RlbF9kYXRldGltZSgkbGFzdF91cGRhdGVkKSwncmVsZWFzZV9kYXRlJz0+JHJlbGVhc2VfZGF0ZSwndXBkYXRlZGJ5Jz0+J0FVVE8gVVBEQVRFJyk7DQogICAgICAgICRkYXRhX3N0cmluZyA9IGpzb25fZW5jb2RlKCRUZXN0RGF0YSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAkY2ggPSBjdXJsX2luaXQoJHNlcnZlcl9wYXRoLidQTVNWZXJzaW9uLnBocD91cGRhdGVzdWM9WScpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DVVNUT01SRVFVRVNULCAiUE9TVCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgJGRhdGFfc3RyaW5nKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCBhcnJheSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAnQ29udGVudC1MZW5ndGg6ICcgLiBzdHJsZW4oJGRhdGFfc3RyaW5nKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAkcmVzdWx0ID0gY3VybF9leGVjKCRjaCk7DQogICAgICAgIA0KICAgICAgICAkZGF0YV9zdHJpbmdlbWFpbCA9IGpzb25fZW5jb2RlKCRUZXN0RGF0YSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgJGNoaCA9IGN1cmxfaW5pdCgnaHR0cDovL2hvdGVsZGVza2htcy5jb20vdmVyc2lvbl9zdWNjZXNzX21haWwucGhwP3VwZGF0ZXN1Yz1ZJyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgY3VybF9zZXRvcHQoJGNoaCwgQ1VSTE9QVF9DVVNUT01SRVFVRVNULCAiUE9TVCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICBjdXJsX3NldG9wdCgkY2hoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRkYXRhX3N0cmluZ2VtYWlsKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICBjdXJsX3NldG9wdCgkY2hoLCBDVVJMT1BUX0hUVFBIRUFERVIsIGFycmF5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICdDb250ZW50LUxlbmd0aDogJyAuIHN0cmxlbigkZGF0YV9zdHJpbmdlbWFpbCkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgJHJlc3VsdDEgPSBjdXJsX2V4ZWMoJGNoaCk7DQoNCiAgIH0gICAgDQogICAgDQp9DQo/Pg=="));//Generated by Ampare PHP Encoder. For more security please use php protect before encode the php program

Function Calls

base64_decode 1

Variables

None

Stats

MD5 7a7d9da114ce25cdfceec2524e8a6c59
Eval Count 1
Decode Time 90 ms