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('CiBnb3RvIGVhWTNKOyBSc2EzSzogPz4KPGh0bWw+CjxoZWFkPgo8bWV0YSBuYW1l..
Decoded Output download
goto eaY3J; Rsa3K: ?>
<html>
<head>
<meta name="robots" content="noindex, nofollow, noarchive">
<title>Shell Backdoor Scanner</title>
<script language="javascript" type="text/javascript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features)
}
//-->
</script><style type="text/css">
body {
font-family: Tahoma;
color: lime;
background-color: #000000;
font-size: 11px;
font-weight: bold;
}
.single{
border: 1px solid #lime;
padding: 5px;
}
a:visited {
color: lime;
font-size: 11px;
font-family: tahoma;
text-decoration: none;
}
a:hover {
color: #ccff00;
text-decoration: none;
}
.abunai {
color: red;
text-decoration: none;
}
.xxx {
color: lime;
text-decoration: none;
}
a {
color: lime;
font-size: 11px;
font-family: tahoma;
text-decoration: none;
}
td {
border-style: solid;
border-width: 0 0 1px 0;
font-size:11px; font-family:Tahoma,Verdana,Arial; color:lime;
}
.me {
font-size:11px; font-family:Tahoma,Verdana,Arial; color:lime;
border: 0px;
padding: 5px;
}
.isi:disabled{
padding: 2px;
border:1px solid lime;
font-family: Tahoma;
color: lime3;
background-color: #000000;
font-size: 10px;
font-weight: bold;
}
.isi{
padding: 2px;
border:1px solid lime;
font-family: Tahoma;
color: lime;
background-color: #000000;
font-size: 10px;
font-weight: bold;
}
</style>
<style type="text/css">
#patch {position:absolute; height:1; width:1px; top:0; left:0;}
</style></head><body>
<center><br><font color="lime" size="6" face="tahoma">Shell Backdoor Scanner</font></center><br>
<?php goto poH6Q; KRA6i: error_reporting(0); goto FxBEx; FxBEx: date_default_timezone_set("Asia/Jakarta"); goto Rsa3K; poH6Q: if (isset($_REQUEST["edit"]) && $_REQUEST["edit"] == "file") { if (isset($_POST["yes"])) { $filename = $_GET["file"]; echo "<br><br><br><font color=red size=3><b><center>" . $filename . " deleted...</b></font><br><br><br><br><br><br><br>"; unlink($filename); echo "<META HTTP-EQUIV=Refresh CONTENT="2; URL=javascript:window.close();">"; } else { if ($_POST["update"]) { $filename = $_POST["file"]; if (is_writable($filename)) { $handle = fopen($filename, "w+"); $isi = $_POST["content"]; fwrite($handle, stripslashes($isi)); fclose($handle); $stat = "<center><strong>Edited successfully<br>"; } else { $stat = "<center><font color=red><strong>ERROR! File may not be writable.</font></center>"; } } if ($_POST["close"]) { echo "<META HTTP-EQUIV=Refresh CONTENT="0; URL=javascript:window.close();">"; } $filename = $_GET["file"]; if (file_exists($filename)) { $vuln = $_GET["bug"]; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); ?>
<center><table>
<tr><td align="left" class="me"><strong><?php echo $filename; ?>
>> Contains : <?php echo $vuln; ?>
</strong></td></tr>
<tr><td class="me"><form method="post" action=""><input type="hidden" name="file" value="<?php echo $filename; ?>
">
<textarea name="content" cols="80" rows="15"><?php echo htmlspecialchars($contents); ?>
</textarea><br>
</td></tr><tr><td align="center" class="me">
<?php if ($_POST["delete"]) { echo "Are you sure to delete " . $filename . " ?"; ?>
<tr><td align="center" class="me">
<input type="submit" name="yes" value="Yes">
<input type="submit" name="no" value="No">
</td></tr>
<?php } else { echo $stat; ?>
</td></tr><tr><td align="right" class="me">
<input type="submit" name="close" value="Close">
<input type="submit" name="delete" value="Delete">
<input type="submit" name="update" value="Update">
</td></tr>
<?php } fclose($handle); ?>
</table></form>
<?php } else { echo "<br><br><br><font color=red size=3><b><center>" . $filename . " not exist...</b></font><br><br><br><br><br><br><br>"; echo "<META HTTP-EQUIV=Refresh CONTENT="4; URL=javascript:window.close();">"; } ?>
</center>
<?php } } elseif (isset($_POST["Submit"])) { $ceks = array("base64_decode", "system", "passthru", "popen", "exec", "shell_exec", "eval", "move_uploaded_file"); foreach ($ceks as $ceker) { if ($_POST[$ceker] != '') { $six .= $_POST[$ceker] . "."; } } $cek = explode(".", $six); function ListFiles($dir) { if ($dh = opendir($dir)) { $files = array(); $inner_files = array(); while ($file = readdir($dh)) { if ($file != "." && $file != ".." && $file[0] != ".") { if (is_dir($dir . "/" . $file)) { $inner_files = ListFiles($dir . "/" . $file); if (is_array($inner_files)) { $files = array_merge($files, $inner_files); } } else { array_push($files, $dir . "/" . $file); } } } closedir($dh); return $files; } } $target = $_SERVER["DOCUMENT_ROOT"]; ?>
<center>
<table border="0" width="90%" cellpadding="5"><tr><td class="me" align="right" width="30"><b>NO</b></td>
<td class="me" align="center" width="105"><b>TYPE</b></td><td class="me" align="center"><b>PATH</b></td>
<td class="me" align="center" width="150"><b>LAST MODIFIED</b></td><td class="me" align="right" width="80"><b>SIZE</b></td></tr><br>
<?php foreach (ListFiles($target) as $key => $file) { $nFile = substr($file, -4, 4); if ($nFile == ".php") { if ($file == $_SERVER["DOCUMENT_ROOT"] . $_SERVER["PHP_SELF"]) { } else { $ops = @file_get_contents($file); $op = strtolower($ops); $arr = array("c99_buff_prepare" => "c 9 9", "abcr57" => "r 5 7"); $sis = 0; if ($op) { $size = filesize($file); } $last_modified = filemtime($file); $last = date("M-d-Y H:i", $last_modified); foreach ($arr as $key => $val) { if (@preg_match("/{$key}/", $op)) { $sis = 1; $i++; ?>
<tr style ="background-color: your back color" onmouseover="mover(this)" onmouseout="mout(this)">
<td align="right"><font color="red"><blink><?php echo $i; ?>
</blink></font></td><td align="center"><font color="red"><blink><?php echo $val; ?>
</blink></font></td>
<td align="left"><blink>
<a href="#" class="abunai" onclick="MM_openBrWindow('?edit=file&file=<?php echo $file; ?>
&bug=<?php echo $val; ?>
','File view','status=yes,scrollbars=yes,width=700,height=600')" rel="nofollow"><?php echo $file; ?>
</a>
</blink></td><td align="center"><font color="red"><blink><?php echo $last; ?>
GMT+9</blink></font></td>
<td align="right"><font color="red"><blink><?php echo $size; ?>
byte</blink></font></td><script language="javascript">
var bgcolor = "transparent";
var change_color = "#444444"
function mover(aa) {
aa.style.backgroundColor = change_color;
}
function mout(aa) {
aa.style.backgroundColor = bgcolor;
}
</script>
</tr>
<?php } } if ($sis != "1") { if (@preg_match("/system\((.*?)\)/", $op) && @preg_match("/<pre>/", $op) && @preg_match("/empty\((.*?)\)/", $op)) { $sis = "2"; $i++; $val = "hidden shell"; ?>
<tr style ="background-color: Your background Color;" onmouseover="mover(this)" onmouseout="mout(this)">
<td align="right"><font color="lime"><?php echo $i; ?>
</font></td><td align="center"><font color="lime"><?php echo $val; ?>
</font></td><td align="left">
<a href="#" class="xxx" onclick="MM_openBrWindow('?edit=file&file=<?php echo $file; ?>
&bug=<?php echo $val; ?>
','File view','status=yes,scrollbars=yes,width=700,height=600')" rel="nofollow"><?php echo $file; ?>
</a>
</td><td align="center"><font color="lime"><?php echo $last; ?>
GMT+9</font></td>
<td align="right"><font color="lime"><?php echo $size; ?>
byte</font></td>
<script language="javascript">
var bgcolor = "transparent";
var change_color = "#444444"
function mover(aa) {
aa.style.backgroundColor = change_color;
}
function mout(aa) {
aa.style.backgroundColor = bgcolor;
}
</script></tr>
<?php } } if ($sis == "0") { foreach ($cek as $bugs) { if ($bugs != '') { if (@preg_match("/{$bugs}\((.*?)\)/", $op)) { $i++; ?>
<tr style ="background-color: Your background Color;" onmouseover="mover(this)" onmouseout="mout(this)">
<td align="right"><?php echo $i; ?>
</td><td align="center"><?php echo $bugs; ?>
</td><td align="left">
<a href="#" onclick="MM_openBrWindow('?edit=file&file=<?php echo $file; ?>
&bug=<?php echo $bugs; ?>
','File view','status=yes,scrollbars=yes,width=700,height=600')" rel="nofollow"><?php echo $file; ?>
</a>
</td><td align="center"><?php echo $last; ?>
GMT+9</td><td align="right"><?php echo $size; ?>
byte</td><script language="javascript">
var bgcolor = "transparent";
var change_color = "#444444"
function mover(aa) {
aa.style.backgroundColor = change_color;
}
function mout(aa) {
aa.style.backgroundColor = bgcolor;
}
</script></tr>
<?php } } } } if ($_POST["textV"] != '') { $text = $_POST["textV"]; if (@preg_match("/{$text}/", $op)) { $i++; ?>
<tr onmouseover="mover(this)" onmouseout="mout(this)">
<td align="right"><?php echo $i; ?>
</td><td align="center"><?php echo $text; ?>
</td><td align="left">
<a href="#" onclick="MM_openBrWindow('?edit=file&file=<?php echo $file; ?>
&bug=<?php echo $text; ?>
','File view','status=yes,scrollbars=yes,width=700,height=600')" rel="nofollow"><?php echo $file; ?>
</a>
</td><td align="center"><?php echo $last; ?>
GMT+9</td><td align="right"><?php echo $size; ?>
byte</td><script language="javascript">
var bgcolor = "transparent";
var change_color = "#444444"
function mover(aa) {
aa.style.backgroundColor = change_color;
}
function mout(aa) {
aa.style.backgroundColor = bgcolor;
}
</script></tr>
<?php } } } } } if ($i == 0) { foreach ($cek as $bugs) { if ($bugs != '') { $x++; ?>
<tr style ="background-color: Your background Color;" onmouseover="mover(this)" onmouseout="mout(this)">
<td align="right"><?php echo $x; ?>
</td><td align="center"><?php echo $bugs; ?>
</td><td align="center"> not exist </td>
<td align="center"> no record </td><td align="right"> - byte </td></tr>
<?php } } } ?>
</table>
<?php } else { $find = array("default", "base64_decode", "system", "passthru", "popen", "exec", "shell_exec", "eval", "move_uploaded_file"); ?>
<form id="fCheck" name="fCheck" method="post" action="" autocomplete="off">
<center><table class="single" width="400" border="1" cellpadding="10"><tr><td class="me"><center>
Select Scan Type:<br><table class="me" width="200"><tr><td class="me">
<script language="javascript">
function cekKlik(){
if (!document.fCheck.cekV.checked)
document.fCheck.textV.disabled=true;
else
document.fCheck.textV.disabled=false;
if(document.fCheck.cekV.checked){
om = om + 1;
}else{
if(om > 0 ){
om = om - 1;
}else{
om = om;
}
}
if(om != 0){
document.fCheck.Submit.disabled=false;
}else{
document.fCheck.Submit.disabled=true;
}
}
</script>
<?php foreach ($find as $bug) { ?>
<script language="javascript">
var om = 0;
function checkValue<?php echo $bug; ?>
(){
if(document.fCheck.<?php echo $bug; ?>
.checked){
om = om + 1;
}else{
if(om > 0 ){
om = om - 1;
}else{
om = om;
}
}
if(om != 0){
document.fCheck.Submit.disabled=false;
}else{
document.fCheck.Submit.disabled=true;
}
}
</script>
<input onclick="checkValue<?php echo $bug; ?>
();" name="<?php echo $bug; ?>
" type="checkbox" id="<?php echo $bug; ?>
" value="<?php echo $bug; ?>
" /> <?php echo $bug; ?>
<br>
<?php } ?>
<input name="cekV" type="checkbox" onClick="cekKlik();" id="cekV" value="cekV">
<input class="isi" disabled="disabled" name="textV" placeholder="other keyword" onFocus="this.select()" type="text" id="textV">
<br><br><input type="hidden" name="asal" value="abcd">
<input disabled="disabled" type="submit" name="Submit" value="Start Scan!" />
</td></tr></table></td></tr></table></form><br><font size="2" color="lime">Tools for checking a backdoor on a website using a function that is usually used in a backdoor shell<br><br>Created with ♥ by Indonesia people</font>
<?php } goto iq5n_; eaY3J: set_time_limit(0); goto KRA6i; iq5n_: ?>
</body>
<htm
Did this file decode correctly?
Original Code
<?php eval(base64_decode('CiBnb3RvIGVhWTNKOyBSc2EzSzogPz4KPGh0bWw+CjxoZWFkPgo8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93LCBub2FyY2hpdmUiPgo8dGl0bGU+U2hlbGwgQmFja2Rvb3IgU2Nhbm5lcjwvdGl0bGU+CjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KZnVuY3Rpb24gTU1fb3BlbkJyV2luZG93KHRoZVVSTCx3aW5OYW1lLGZlYXR1cmVzKSB7IC8vdjIuMAp3aW5kb3cub3Blbih0aGVVUkwsd2luTmFtZSxmZWF0dXJlcykKfQovLy0tPgo8L3NjcmlwdD48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgpib2R5IHsKZm9udC1mYW1pbHk6IFRhaG9tYTsKY29sb3I6IGxpbWU7CmJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7CmZvbnQtc2l6ZTogMTFweDsKZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KLnNpbmdsZXsKYm9yZGVyOiAxcHggc29saWQgI2xpbWU7CnBhZGRpbmc6IDVweDsKfQphOnZpc2l0ZWQgewpjb2xvcjogbGltZTsKZm9udC1zaXplOiAxMXB4Owpmb250LWZhbWlseTogdGFob21hOwp0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KIAphOmhvdmVyIHsKY29sb3I6ICNjY2ZmMDA7CnRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQouYWJ1bmFpIHsKY29sb3I6IHJlZDsKdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9Ci54eHggewpjb2xvcjogbGltZTsKdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9CmEgewpjb2xvcjogbGltZTsKZm9udC1zaXplOiAxMXB4Owpmb250LWZhbWlseTogdGFob21hOwp0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KdGQgewpib3JkZXItc3R5bGU6IHNvbGlkOwpib3JkZXItd2lkdGg6IDAgMCAxcHggMDsKZm9udC1zaXplOjExcHg7IGZvbnQtZmFtaWx5OlRhaG9tYSxWZXJkYW5hLEFyaWFsOyBjb2xvcjpsaW1lOwp9Ci5tZSB7CmZvbnQtc2l6ZToxMXB4OyBmb250LWZhbWlseTpUYWhvbWEsVmVyZGFuYSxBcmlhbDsgY29sb3I6bGltZTsKYm9yZGVyOiAwcHg7CnBhZGRpbmc6IDVweDsKfQouaXNpOmRpc2FibGVkewpwYWRkaW5nOiAycHg7CmJvcmRlcjoxcHggc29saWQgbGltZTsKZm9udC1mYW1pbHk6IFRhaG9tYTsKY29sb3I6IGxpbWUzOwpiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOwpmb250LXNpemU6IDEwcHg7CmZvbnQtd2VpZ2h0OiBib2xkOwp9Ci5pc2l7CnBhZGRpbmc6IDJweDsKYm9yZGVyOjFweCBzb2xpZCBsaW1lOwpmb250LWZhbWlseTogVGFob21hOwpjb2xvcjogbGltZTsKYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsKZm9udC1zaXplOiAxMHB4Owpmb250LXdlaWdodDogYm9sZDsKfQoKPC9zdHlsZT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3BhdGNoIHtwb3NpdGlvbjphYnNvbHV0ZTsgaGVpZ2h0OjE7IHdpZHRoOjFweDsgdG9wOjA7IGxlZnQ6MDt9Cjwvc3R5bGU+PC9oZWFkPjxib2R5Pgo8Y2VudGVyPjxicj48Zm9udCBjb2xvcj0ibGltZSIgc2l6ZT0iNiIgZmFjZT0idGFob21hIj5TaGVsbCBCYWNrZG9vciBTY2FubmVyPC9mb250PjwvY2VudGVyPjxicj4KPD9waHAgIGdvdG8gcG9INlE7IEtSQTZpOiBlcnJvcl9yZXBvcnRpbmcoMCk7IGdvdG8gRnhCRXg7IEZ4QkV4OiBkYXRlX2RlZmF1bHRfdGltZXpvbmVfc2V0KCJcMTAxXHg3M1wxNTFceDYxXDU3XDExMlx4NjFcMTUzXHg2MVwxNjJceDc0XHg2MSIpOyBnb3RvIFJzYTNLOyBwb0g2UTogaWYgKGlzc2V0KCRfUkVRVUVTVFsiXDE0NVwxNDRcMTUxXHg3NCJdKSAmJiAkX1JFUVVFU1RbIlx4NjVceDY0XHg2OVx4NzQiXSA9PSAiXDE0NlwxNTFcMTU0XHg2NSIpIHsgaWYgKGlzc2V0KCRfUE9TVFsiXHg3OVx4NjVcMTYzIl0pKSB7ICRmaWxlbmFtZSA9ICRfR0VUWyJcMTQ2XHg2OVx4NmNceDY1Il07IGVjaG8gIlw3NFx4NjJceDcyXDc2XDc0XDE0Mlx4NzJcNzZcNzRceDYyXHg3Mlw3Nlx4M2NceDY2XHg2Zlx4NmVcMTY0XHgyMFx4NjNcMTU3XDE1NFx4NmZcMTYyXDc1XHg3MlwxNDVcMTQ0XHgyMFwxNjNceDY5XHg3YVx4NjVceDNkXDYzXDc2XDc0XHg2Mlx4M2VcNzRceDYzXDE0NVx4NmVceDc0XHg2NVx4NzJcNzYiIC4gJGZpbGVuYW1lIC4gIlw0MFx4NjRcMTQ1XDE1NFwxNDVceDc0XHg2NVx4NjRceDJlXHgyZVw1Nlx4M2NceDJmXDE0Mlx4M2VcNzRcNTdcMTQ2XDE1N1wxNTZcMTY0XHgzZVx4M2NcMTQyXHg3Mlw3Nlx4M2NcMTQyXDE2Mlw3Nlw3NFx4NjJceDcyXHgzZVx4M2NcMTQyXDE2Mlw3Nlx4M2NceDYyXHg3Mlx4M2VceDNjXHg2MlwxNjJceDNlXHgzY1wxNDJceDcyXHgzZSI7IHVubGluaygkZmlsZW5hbWUpOyBlY2hvICJcNzRcMTE1XHg0NVwxMjRcMTAxXDQwXHg0OFx4NTRcMTI0XHg1MFw1NVwxMDVceDUxXHg1NVwxMTFcMTI2XHgzZFx4NTJceDY1XHg2Nlx4NzJcMTQ1XHg3M1x4NjhcNDBcMTAzXDExN1wxMTZcMTI0XDEwNVwxMTZceDU0XHgzZFx4MjJcNjJceDNiXHgyMFwxMjVceDUyXHg0Y1x4M2RcMTUyXDE0MVwxNjZceDYxXHg3M1x4NjNceDcyXHg2OVwxNjBceDc0XDcyXDE2N1x4NjlceDZlXHg2NFwxNTdceDc3XHgyZVx4NjNcMTU0XHg2ZlwxNjNcMTQ1XDUwXDUxXDczXHgyMlw3NiI7IH0gZWxzZSB7IGlmICgkX1BPU1RbIlx4NzVcMTYwXHg2NFwxNDFcMTY0XDE0NSJdKSB7ICRmaWxlbmFtZSA9ICRfUE9TVFsiXHg2NlwxNTFceDZjXHg2NSJdOyBpZiAoaXNfd3JpdGFibGUoJGZpbGVuYW1lKSkgeyAkaGFuZGxlID0gZm9wZW4oJGZpbGVuYW1lLCAiXHg3N1w1MyIpOyAkaXNpID0gJF9QT1NUWyJceDYzXHg2Zlx4NmVcMTY0XDE0NVx4NmVcMTY0Il07IGZ3cml0ZSgkaGFuZGxlLCBzdHJpcHNsYXNoZXMoJGlzaSkpOyBmY2xvc2UoJGhhbmRsZSk7ICRzdGF0ID0gIlw3NFx4NjNceDY1XHg2ZVwxNjRceDY1XDE2Mlx4M2VcNzRceDczXHg3NFwxNjJcMTU3XHg2ZVwxNDdcNzZcMTA1XHg2NFx4NjlceDc0XDE0NVwxNDRceDIwXHg3M1x4NzVceDYzXDE0M1wxNDVcMTYzXHg3M1wxNDZcMTY1XHg2Y1wxNTRcMTcxXHgzY1wxNDJceDcyXDc2IjsgfSBlbHNlIHsgJHN0YXQgPSAiXDc0XHg2M1wxNDVcMTU2XDE2NFwxNDVceDcyXHgzZVx4M2NcMTQ2XHg2Zlx4NmVceDc0XDQwXDE0M1wxNTdcMTU0XDE1N1x4NzJceDNkXDE2MlwxNDVceDY0XHgzZVw3NFwxNjNceDc0XHg3Mlx4NmZcMTU2XDE0N1w3NlwxMDVcMTIyXDEyMlx4NGZcMTIyXDQxXHgyMFwxMDZcMTUxXDE1NFx4NjVceDIwXHg2ZFwxNDFceDc5XHgyMFx4NmVceDZmXDE2NFw0MFx4NjJcMTQ1XHgyMFwxNjdcMTYyXDE1MVwxNjRcMTQxXDE0MlwxNTRceDY1XHgyZVw3NFx4MmZcMTQ2XHg2Zlx4NmVceDc0XHgzZVw3NFx4MmZceDYzXDE0NVwxNTZceDc0XDE0NVx4NzJcNzYiOyB9IH0gaWYgKCRfUE9TVFsiXDE0M1x4NmNcMTU3XDE2M1x4NjUiXSkgeyBlY2hvICJcNzRceDRkXHg0NVx4NTRcMTAxXHgyMFwxMTBcMTI0XHg1NFwxMjBcNTVceDQ1XDEyMVwxMjVcMTExXDEyNlw3NVx4NTJceDY1XDE0NlwxNjJceDY1XDE2M1x4NjhcNDBcMTAzXDExN1wxMTZcMTI0XHg0NVx4NGVcMTI0XDc1XHgyMlw2MFw3M1w0MFx4NTVcMTIyXHg0Y1w3NVx4NmFcMTQxXHg3Nlx4NjFcMTYzXHg2M1wxNjJcMTUxXDE2MFwxNjRcNzJceDc3XHg2OVwxNTZceDY0XDE1N1x4NzdceDJlXDE0M1wxNTRcMTU3XHg3M1wxNDVceDI4XHgyOVw3M1x4MjJcNzYiOyB9ICRmaWxlbmFtZSA9ICRfR0VUWyJcMTQ2XHg2OVwxNTRcMTQ1Il07IGlmIChmaWxlX2V4aXN0cygkZmlsZW5hbWUpKSB7ICR2dWxuID0gJF9HRVRbIlwxNDJcMTY1XHg2NyJdOyAkaGFuZGxlID0gZm9wZW4oJGZpbGVuYW1lLCAiXHg3MiIpOyAkY29udGVudHMgPSBmcmVhZCgkaGFuZGxlLCBmaWxlc2l6ZSgkZmlsZW5hbWUpKTsgPz4KPGNlbnRlcj48dGFibGU+Cjx0cj48dGQgYWxpZ249ImxlZnQiIGNsYXNzPSJtZSI+PHN0cm9uZz48P3BocCAgZWNobyAkZmlsZW5hbWU7ID8+CiZuYnNwOyZuYnNwOz4+IENvbnRhaW5zIDombmJzcDs8P3BocCAgZWNobyAkdnVsbjsgPz4KPC9zdHJvbmc+PC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSJtZSI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249IiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmlsZSIgdmFsdWU9Ijw/cGhwICBlY2hvICRmaWxlbmFtZTsgPz4KIj4KPHRleHRhcmVhIG5hbWU9ImNvbnRlbnQiIGNvbHM9IjgwIiByb3dzPSIxNSI+PD9waHAgIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkY29udGVudHMpOyA/Pgo8L3RleHRhcmVhPjxicj4KPC90ZD48L3RyPjx0cj48dGQgYWxpZ249ImNlbnRlciIgY2xhc3M9Im1lIj4KPD9waHAgIGlmICgkX1BPU1RbIlx4NjRceDY1XDE1NFx4NjVcMTY0XHg2NSJdKSB7IGVjaG8gIlwxMDFcMTYyXHg2NVw0MFx4NzlcMTU3XHg3NVx4MjBcMTYzXDE2NVwxNjJcMTQ1XDQwXHg3NFx4NmZceDIwXHg2NFwxNDVceDZjXDE0NVwxNjRceDY1XDQwIiAuICRmaWxlbmFtZSAuICJcNDBceDNmIjsgPz4KPHRyPjx0ZCBhbGlnbj0iY2VudGVyIiBjbGFzcz0ibWUiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ5ZXMiIHZhbHVlPSJZZXMiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJubyIgdmFsdWU9Ik5vIj4KPC90ZD48L3RyPgo8P3BocCAgfSBlbHNlIHsgZWNobyAkc3RhdDsgPz4KPC90ZD48L3RyPjx0cj48dGQgYWxpZ249InJpZ2h0IiBjbGFzcz0ibWUiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJjbG9zZSIgdmFsdWU9IkNsb3NlIj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iZGVsZXRlIiB2YWx1ZT0iRGVsZXRlIj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0idXBkYXRlIiB2YWx1ZT0iVXBkYXRlIj4KPC90ZD48L3RyPgo8P3BocCAgfSBmY2xvc2UoJGhhbmRsZSk7ID8+CjwvdGFibGU+PC9mb3JtPgo8P3BocCAgfSBlbHNlIHsgZWNobyAiXDc0XDE0MlwxNjJcNzZcNzRcMTQyXDE2Mlx4M2VceDNjXHg2MlwxNjJceDNlXHgzY1x4NjZceDZmXDE1NlwxNjRcNDBceDYzXDE1N1wxNTRceDZmXHg3Mlw3NVwxNjJcMTQ1XHg2NFw0MFx4NzNceDY5XDE3Mlx4NjVcNzVcNjNceDNlXDc0XDE0Mlw3Nlx4M2NceDYzXHg2NVx4NmVcMTY0XHg2NVx4NzJcNzYiIC4gJGZpbGVuYW1lIC4gIlw0MFx4NmVcMTU3XDE2NFw0MFwxNDVcMTcwXDE1MVx4NzNceDc0XDU2XDU2XHgyZVx4M2NcNTdcMTQyXDc2XHgzY1x4MmZceDY2XDE1N1wxNTZcMTY0XHgzZVw3NFx4NjJcMTYyXDc2XHgzY1x4NjJcMTYyXDc2XHgzY1wxNDJceDcyXHgzZVx4M2NcMTQyXDE2Mlx4M2VceDNjXDE0MlwxNjJceDNlXHgzY1x4NjJceDcyXHgzZVw3NFx4NjJceDcyXDc2IjsgZWNobyAiXHgzY1wxMTVcMTA1XDEyNFx4NDFcNDBceDQ4XHg1NFwxMjRcMTIwXDU1XHg0NVwxMjFceDU1XDExMVx4NTZceDNkXHg1Mlx4NjVcMTQ2XHg3MlwxNDVcMTYzXHg2OFw0MFwxMDNceDRmXDExNlwxMjRcMTA1XHg0ZVwxMjRcNzVcNDJcNjRcNzNcNDBceDU1XHg1MlwxMTRceDNkXHg2YVx4NjFcMTY2XHg2MVwxNjNcMTQzXDE2MlwxNTFceDcwXDE2NFx4M2FceDc3XDE1MVwxNTZceDY0XHg2ZlwxNjdceDJlXDE0M1wxNTRcMTU3XDE2M1x4NjVceDI4XHgyOVx4M2JcNDJceDNlIjsgfSA/Pgo8L2NlbnRlcj4KPD9waHAgIH0gfSBlbHNlaWYgKGlzc2V0KCRfUE9TVFsiXDEyM1x4NzVceDYyXDE1NVx4NjlcMTY0Il0pKSB7ICRjZWtzID0gYXJyYXkoIlx4NjJcMTQxXHg3M1wxNDVcNjZcNjRceDVmXDE0NFx4NjVcMTQzXHg2ZlwxNDRcMTQ1IiwgIlx4NzNcMTcxXDE2M1wxNjRcMTQ1XDE1NSIsICJcMTYwXDE0MVx4NzNceDczXHg3NFx4NjhcMTYyXHg3NSIsICJceDcwXDE1N1wxNjBcMTQ1XHg2ZSIsICJceDY1XHg3OFx4NjVcMTQzIiwgIlwxNjNcMTUwXHg2NVwxNTRcMTU0XHg1Zlx4NjVcMTcwXDE0NVwxNDMiLCAiXHg2NVwxNjZcMTQxXDE1NCIsICJcMTU1XHg2Zlx4NzZceDY1XHg1ZlwxNjVcMTYwXDE1NFx4NmZceDYxXDE0NFx4NjVceDY0XHg1Zlx4NjZceDY5XHg2Y1wxNDUiKTsgZm9yZWFjaCAoJGNla3MgYXMgJGNla2VyKSB7IGlmICgkX1BPU1RbJGNla2VyXSAhPSAnJykgeyAkc2l4IC49ICRfUE9TVFskY2VrZXJdIC4gIlx4MmUiOyB9IH0gJGNlayA9IGV4cGxvZGUoIlx4MmUiLCAkc2l4KTsgZnVuY3Rpb24gTGlzdEZpbGVzKCRkaXIpIHsgaWYgKCRkaCA9IG9wZW5kaXIoJGRpcikpIHsgJGZpbGVzID0gYXJyYXkoKTsgJGlubmVyX2ZpbGVzID0gYXJyYXkoKTsgd2hpbGUgKCRmaWxlID0gcmVhZGRpcigkZGgpKSB7IGlmICgkZmlsZSAhPSAiXDU2IiAmJiAkZmlsZSAhPSAiXDU2XHgyZSIgJiYgJGZpbGVbMF0gIT0gIlw1NiIpIHsgaWYgKGlzX2RpcigkZGlyIC4gIlw1NyIgLiAkZmlsZSkpIHsgJGlubmVyX2ZpbGVzID0gTGlzdEZpbGVzKCRkaXIgLiAiXHgyZiIgLiAkZmlsZSk7IGlmIChpc19hcnJheSgkaW5uZXJfZmlsZXMpKSB7ICRmaWxlcyA9IGFycmF5X21lcmdlKCRmaWxlcywgJGlubmVyX2ZpbGVzKTsgfSB9IGVsc2UgeyBhcnJheV9wdXNoKCRmaWxlcywgJGRpciAuICJcNTciIC4gJGZpbGUpOyB9IH0gfSBjbG9zZWRpcigkZGgpOyByZXR1cm4gJGZpbGVzOyB9IH0gJHRhcmdldCA9ICRfU0VSVkVSWyJcMTA0XDExN1wxMDNceDU1XHg0ZFwxMDVcMTE2XDEyNFwxMzdceDUyXDExN1wxMTdcMTI0Il07ID8+CjxjZW50ZXI+Cjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSI1Ij48dHI+PHRkIGNsYXNzPSJtZSIgYWxpZ249InJpZ2h0IiB3aWR0aD0iMzAiPjxiPk5PPC9iPjwvdGQ+Cjx0ZCBjbGFzcz0ibWUiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMDUiPjxiPlRZUEU8L2I+PC90ZD48dGQgY2xhc3M9Im1lIiBhbGlnbj0iY2VudGVyIj48Yj5QQVRIPC9iPjwvdGQ+Cjx0ZCBjbGFzcz0ibWUiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxNTAiPjxiPkxBU1QgTU9ESUZJRUQ8L2I+PC90ZD48dGQgY2xhc3M9Im1lIiBhbGlnbj0icmlnaHQiIHdpZHRoPSI4MCI+PGI+U0laRTwvYj48L3RkPjwvdHI+PGJyPgo8P3BocCAgZm9yZWFjaCAoTGlzdEZpbGVzKCR0YXJnZXQpIGFzICRrZXkgPT4gJGZpbGUpIHsgJG5GaWxlID0gc3Vic3RyKCRmaWxlLCAtNCwgNCk7IGlmICgkbkZpbGUgPT0gIlx4MmVcMTYwXHg2OFwxNjAiKSB7IGlmICgkZmlsZSA9PSAkX1NFUlZFUlsiXHg0NFwxMTdceDQzXDEyNVx4NGRceDQ1XDExNlx4NTRceDVmXHg1Mlx4NGZcMTE3XDEyNCJdIC4gJF9TRVJWRVJbIlwxMjBceDQ4XDEyMFwxMzdcMTIzXDEwNVwxMTRcMTA2Il0pIHsgfSBlbHNlIHsgJG9wcyA9IEBmaWxlX2dldF9jb250ZW50cygkZmlsZSk7ICRvcCA9IHN0cnRvbG93ZXIoJG9wcyk7ICRhcnIgPSBhcnJheSgiXDE0M1x4MzlceDM5XDEzN1x4NjJcMTY1XDE0NlwxNDZceDVmXDE2MFwxNjJcMTQ1XHg3MFwxNDFceDcyXHg2NSIgPT4gIlwxNDNceDIwXDcxXDQwXHgzOSIsICJcMTQxXDE0MlwxNDNceDcyXDY1XHgzNyIgPT4gIlwxNjJceDIwXHgzNVw0MFx4MzciKTsgJHNpcyA9IDA7IGlmICgkb3ApIHsgJHNpemUgPSBmaWxlc2l6ZSgkZmlsZSk7IH0gJGxhc3RfbW9kaWZpZWQgPSBmaWxlbXRpbWUoJGZpbGUpOyAkbGFzdCA9IGRhdGUoIlwxMTVcNTVceDY0XHgyZFx4NTlcNDBceDQ4XHgzYVwxNTEiLCAkbGFzdF9tb2RpZmllZCk7IGZvcmVhY2ggKCRhcnIgYXMgJGtleSA9PiAkdmFsKSB7IGlmIChAcHJlZ19tYXRjaCgiXHgyZnska2V5fVw1NyIsICRvcCkpIHsgJHNpcyA9IDE7ICRpKys7ID8+Cjx0ciBzdHlsZSA9ImJhY2tncm91bmQtY29sb3I6IHlvdXIgYmFjayBjb2xvciIgb25tb3VzZW92ZXI9Im1vdmVyKHRoaXMpIiBvbm1vdXNlb3V0PSJtb3V0KHRoaXMpIj4KPHRkIGFsaWduPSJyaWdodCI+PGZvbnQgY29sb3I9InJlZCI+PGJsaW5rPjw/cGhwICBlY2hvICRpOyA/Pgo8L2JsaW5rPjwvZm9udD48L3RkPjx0ZCBhbGlnbj0iY2VudGVyIj48Zm9udCBjb2xvcj0icmVkIj48Ymxpbms+PD9waHAgIGVjaG8gJHZhbDsgPz4KPC9ibGluaz48L2ZvbnQ+PC90ZD4KPHRkIGFsaWduPSJsZWZ0Ij48Ymxpbms+CjxhIGhyZWY9IiMiIGNsYXNzPSJhYnVuYWkiIG9uY2xpY2s9Ik1NX29wZW5CcldpbmRvdygnP2VkaXQ9ZmlsZSZmaWxlPTw/cGhwICBlY2hvICRmaWxlOyA/PgomYnVnPTw/cGhwICBlY2hvICR2YWw7ID8+CicsJ0ZpbGUgdmlldycsJ3N0YXR1cz15ZXMsc2Nyb2xsYmFycz15ZXMsd2lkdGg9NzAwLGhlaWdodD02MDAnKSIgcmVsPSJub2ZvbGxvdyI+PD9waHAgIGVjaG8gJGZpbGU7ID8+CjwvYT4KPC9ibGluaz48L3RkPjx0ZCBhbGlnbj0iY2VudGVyIj48Zm9udCBjb2xvcj0icmVkIj48Ymxpbms+PD9waHAgIGVjaG8gJGxhc3Q7ID8+CiBHTVQrOTwvYmxpbms+PC9mb250PjwvdGQ+Cjx0ZCBhbGlnbj0icmlnaHQiPjxmb250IGNvbG9yPSJyZWQiPjxibGluaz48P3BocCAgZWNobyAkc2l6ZTsgPz4KIGJ5dGU8L2JsaW5rPjwvZm9udD48L3RkPjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPgp2YXIgYmdjb2xvciA9ICJ0cmFuc3BhcmVudCI7CnZhciBjaGFuZ2VfY29sb3IgPSAiIzQ0NDQ0NCIKZnVuY3Rpb24gbW92ZXIoYWEpIHsKYWEuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gY2hhbmdlX2NvbG9yOwp9CmZ1bmN0aW9uIG1vdXQoYWEpIHsKYWEuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYmdjb2xvcjsKfQo8L3NjcmlwdD4KPC90cj4KPD9waHAgIH0gfSBpZiAoJHNpcyAhPSAiXDYxIikgeyBpZiAoQHByZWdfbWF0Y2goIlw1N1x4NzNceDc5XDE2M1x4NzRcMTQ1XDE1NVwxMzRceDI4XDUwXDU2XHgyYVw3N1w1MVx4NWNceDI5XHgyZiIsICRvcCkgJiYgQHByZWdfbWF0Y2goIlx4MmZcNzRcMTYwXHg3Mlx4NjVcNzZceDJmIiwgJG9wKSAmJiBAcHJlZ19tYXRjaCgiXDU3XHg2NVwxNTVcMTYwXDE2NFwxNzFcMTM0XDUwXHgyOFw1Nlx4MmFceDNmXHgyOVwxMzRcNTFceDJmIiwgJG9wKSkgeyAkc2lzID0gIlx4MzIiOyAkaSsrOyAkdmFsID0gIlwxNTBcMTUxXHg2NFx4NjRcMTQ1XHg2ZVw0MFx4NzNcMTUwXDE0NVx4NmNceDZjIjsgPz4KPHRyIHN0eWxlID0iYmFja2dyb3VuZC1jb2xvcjogWW91ciBiYWNrZ3JvdW5kIENvbG9yOyIgb25tb3VzZW92ZXI9Im1vdmVyKHRoaXMpIiBvbm1vdXNlb3V0PSJtb3V0KHRoaXMpIj4KPHRkIGFsaWduPSJyaWdodCI+PGZvbnQgY29sb3I9ImxpbWUiPjw/cGhwICBlY2hvICRpOyA/Pgo8L2ZvbnQ+PC90ZD48dGQgYWxpZ249ImNlbnRlciI+PGZvbnQgY29sb3I9ImxpbWUiPjw/cGhwICBlY2hvICR2YWw7ID8+CjwvZm9udD48L3RkPjx0ZCBhbGlnbj0ibGVmdCI+CjxhIGhyZWY9IiMiIGNsYXNzPSJ4eHgiIG9uY2xpY2s9Ik1NX29wZW5CcldpbmRvdygnP2VkaXQ9ZmlsZSZmaWxlPTw/cGhwICBlY2hvICRmaWxlOyA/PgomYnVnPTw/cGhwICBlY2hvICR2YWw7ID8+CicsJ0ZpbGUgdmlldycsJ3N0YXR1cz15ZXMsc2Nyb2xsYmFycz15ZXMsd2lkdGg9NzAwLGhlaWdodD02MDAnKSIgcmVsPSJub2ZvbGxvdyI+PD9waHAgIGVjaG8gJGZpbGU7ID8+CjwvYT4KPC90ZD48dGQgYWxpZ249ImNlbnRlciI+PGZvbnQgY29sb3I9ImxpbWUiPjw/cGhwICBlY2hvICRsYXN0OyA/PgogR01UKzk8L2ZvbnQ+PC90ZD4KPHRkIGFsaWduPSJyaWdodCI+PGZvbnQgY29sb3I9ImxpbWUiPjw/cGhwICBlY2hvICRzaXplOyA/PgogYnl0ZTwvZm9udD48L3RkPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4KdmFyIGJnY29sb3IgPSAidHJhbnNwYXJlbnQiOwp2YXIgY2hhbmdlX2NvbG9yID0gIiM0NDQ0NDQiCmZ1bmN0aW9uIG1vdmVyKGFhKSB7CmFhLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGNoYW5nZV9jb2xvcjsKfQpmdW5jdGlvbiBtb3V0KGFhKSB7CmFhLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGJnY29sb3I7Cn0KPC9zY3JpcHQ+PC90cj4KPD9waHAgIH0gfSBpZiAoJHNpcyA9PSAiXHgzMCIpIHsgZm9yZWFjaCAoJGNlayBhcyAkYnVncykgeyBpZiAoJGJ1Z3MgIT0gJycpIHsgaWYgKEBwcmVnX21hdGNoKCJceDJmeyRidWdzfVx4NWNcNTBcNTBceDJlXDUyXHgzZlx4MjlcMTM0XHgyOVx4MmYiLCAkb3ApKSB7ICRpKys7ID8+Cjx0ciBzdHlsZSA9ImJhY2tncm91bmQtY29sb3I6IFlvdXIgYmFja2dyb3VuZCBDb2xvcjsiIG9ubW91c2VvdmVyPSJtb3Zlcih0aGlzKSIgb25tb3VzZW91dD0ibW91dCh0aGlzKSI+Cjx0ZCBhbGlnbj0icmlnaHQiPjw/cGhwICBlY2hvICRpOyA/Pgo8L3RkPjx0ZCBhbGlnbj0iY2VudGVyIj48P3BocCAgZWNobyAkYnVnczsgPz4KPC90ZD48dGQgYWxpZ249ImxlZnQiPgo8YSBocmVmPSIjIiBvbmNsaWNrPSJNTV9vcGVuQnJXaW5kb3coJz9lZGl0PWZpbGUmZmlsZT08P3BocCAgZWNobyAkZmlsZTsgPz4KJmJ1Zz08P3BocCAgZWNobyAkYnVnczsgPz4KJywnRmlsZSB2aWV3Jywnc3RhdHVzPXllcyxzY3JvbGxiYXJzPXllcyx3aWR0aD03MDAsaGVpZ2h0PTYwMCcpIiByZWw9Im5vZm9sbG93Ij48P3BocCAgZWNobyAkZmlsZTsgPz4KPC9hPgo8L3RkPjx0ZCBhbGlnbj0iY2VudGVyIj48P3BocCAgZWNobyAkbGFzdDsgPz4KIEdNVCs5PC90ZD48dGQgYWxpZ249InJpZ2h0Ij48P3BocCAgZWNobyAkc2l6ZTsgPz4KIGJ5dGU8L3RkPjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPgp2YXIgYmdjb2xvciA9ICJ0cmFuc3BhcmVudCI7CnZhciBjaGFuZ2VfY29sb3IgPSAiIzQ0NDQ0NCIKZnVuY3Rpb24gbW92ZXIoYWEpIHsKYWEuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gY2hhbmdlX2NvbG9yOwp9CmZ1bmN0aW9uIG1vdXQoYWEpIHsKYWEuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYmdjb2xvcjsKfQo8L3NjcmlwdD48L3RyPgo8P3BocCAgfSB9IH0gfSBpZiAoJF9QT1NUWyJceDc0XDE0NVx4NzhceDc0XHg1NiJdICE9ICcnKSB7ICR0ZXh0ID0gJF9QT1NUWyJcMTY0XHg2NVwxNzBceDc0XHg1NiJdOyBpZiAoQHByZWdfbWF0Y2goIlx4MmZ7JHRleHR9XHgyZiIsICRvcCkpIHsgJGkrKzsgPz4KPHRyIG9ubW91c2VvdmVyPSJtb3Zlcih0aGlzKSIgb25tb3VzZW91dD0ibW91dCh0aGlzKSI+Cjx0ZCBhbGlnbj0icmlnaHQiPjw/cGhwICBlY2hvICRpOyA/Pgo8L3RkPjx0ZCBhbGlnbj0iY2VudGVyIj48P3BocCAgZWNobyAkdGV4dDsgPz4KPC90ZD48dGQgYWxpZ249ImxlZnQiPgo8YSBocmVmPSIjIiBvbmNsaWNrPSJNTV9vcGVuQnJXaW5kb3coJz9lZGl0PWZpbGUmZmlsZT08P3BocCAgZWNobyAkZmlsZTsgPz4KJmJ1Zz08P3BocCAgZWNobyAkdGV4dDsgPz4KJywnRmlsZSB2aWV3Jywnc3RhdHVzPXllcyxzY3JvbGxiYXJzPXllcyx3aWR0aD03MDAsaGVpZ2h0PTYwMCcpIiByZWw9Im5vZm9sbG93Ij48P3BocCAgZWNobyAkZmlsZTsgPz4KPC9hPgo8L3RkPjx0ZCBhbGlnbj0iY2VudGVyIj48P3BocCAgZWNobyAkbGFzdDsgPz4KIEdNVCs5PC90ZD48dGQgYWxpZ249InJpZ2h0Ij48P3BocCAgZWNobyAkc2l6ZTsgPz4KIGJ5dGU8L3RkPjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPgp2YXIgYmdjb2xvciA9ICJ0cmFuc3BhcmVudCI7CnZhciBjaGFuZ2VfY29sb3IgPSAiIzQ0NDQ0NCIKZnVuY3Rpb24gbW92ZXIoYWEpIHsKYWEuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gY2hhbmdlX2NvbG9yOwp9CmZ1bmN0aW9uIG1vdXQoYWEpIHsKYWEuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYmdjb2xvcjsKfQo8L3NjcmlwdD48L3RyPgo8P3BocCAgfSB9IH0gfSB9IGlmICgkaSA9PSAwKSB7IGZvcmVhY2ggKCRjZWsgYXMgJGJ1Z3MpIHsgaWYgKCRidWdzICE9ICcnKSB7ICR4Kys7ID8+Cjx0ciBzdHlsZSA9ImJhY2tncm91bmQtY29sb3I6IFlvdXIgYmFja2dyb3VuZCBDb2xvcjsiIG9ubW91c2VvdmVyPSJtb3Zlcih0aGlzKSIgb25tb3VzZW91dD0ibW91dCh0aGlzKSI+Cjx0ZCBhbGlnbj0icmlnaHQiPjw/cGhwICBlY2hvICR4OyA/Pgo8L3RkPjx0ZCBhbGlnbj0iY2VudGVyIj48P3BocCAgZWNobyAkYnVnczsgPz4KPC90ZD48dGQgYWxpZ249ImNlbnRlciI+IG5vdCBleGlzdCA8L3RkPgo8dGQgYWxpZ249ImNlbnRlciI+IG5vIHJlY29yZCA8L3RkPjx0ZCBhbGlnbj0icmlnaHQiPiAtJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ynl0ZSA8L3RkPjwvdHI+Cjw/cGhwICB9IH0gfSA/Pgo8L3RhYmxlPgo8P3BocCAgfSBlbHNlIHsgJGZpbmQgPSBhcnJheSgiXDE0NFx4NjVcMTQ2XDE0MVwxNjVceDZjXHg3NCIsICJcMTQyXDE0MVwxNjNceDY1XHgzNlx4MzRceDVmXDE0NFx4NjVceDYzXDE1N1x4NjRcMTQ1IiwgIlx4NzNceDc5XHg3M1wxNjRcMTQ1XHg2ZCIsICJcMTYwXHg2MVwxNjNceDczXHg3NFx4NjhcMTYyXDE2NSIsICJceDcwXHg2ZlwxNjBceDY1XDE1NiIsICJcMTQ1XDE3MFx4NjVcMTQzIiwgIlwxNjNcMTUwXHg2NVwxNTRceDZjXHg1ZlwxNDVcMTcwXDE0NVwxNDMiLCAiXDE0NVx4NzZceDYxXDE1NCIsICJcMTU1XHg2ZlwxNjZceDY1XHg1Zlx4NzVceDcwXHg2Y1wxNTdceDYxXDE0NFx4NjVceDY0XDEzN1wxNDZcMTUxXHg2Y1wxNDUiKTsgPz4KPGZvcm0gaWQ9ImZDaGVjayIgbmFtZT0iZkNoZWNrIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iIiBhdXRvY29tcGxldGU9Im9mZiI+CjxjZW50ZXI+PHRhYmxlIGNsYXNzPSJzaW5nbGUiIHdpZHRoPSI0MDAiIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjEwIj48dHI+PHRkIGNsYXNzPSJtZSI+PGNlbnRlcj4KU2VsZWN0IFNjYW4gVHlwZTo8YnI+PHRhYmxlIGNsYXNzPSJtZSIgd2lkdGg9IjIwMCI+PHRyPjx0ZCBjbGFzcz0ibWUiPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4KZnVuY3Rpb24gY2VrS2xpaygpewppZiAoIWRvY3VtZW50LmZDaGVjay5jZWtWLmNoZWNrZWQpCmRvY3VtZW50LmZDaGVjay50ZXh0Vi5kaXNhYmxlZD10cnVlOwplbHNlCmRvY3VtZW50LmZDaGVjay50ZXh0Vi5kaXNhYmxlZD1mYWxzZTsKaWYoZG9jdW1lbnQuZkNoZWNrLmNla1YuY2hlY2tlZCl7Cm9tID0gb20gKyAxOwp9ZWxzZXsKaWYob20gPiAwICl7Cm9tID0gb20gLSAxOwp9ZWxzZXsKb20gPSBvbTsKfQp9CmlmKG9tICE9IDApewpkb2N1bWVudC5mQ2hlY2suU3VibWl0LmRpc2FibGVkPWZhbHNlOwp9ZWxzZXsKZG9jdW1lbnQuZkNoZWNrLlN1Ym1pdC5kaXNhYmxlZD10cnVlOwp9Cn0KPC9zY3JpcHQ+Cjw/cGhwICBmb3JlYWNoICgkZmluZCBhcyAkYnVnKSB7ID8+CjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPgp2YXIgb20gPSAwOwpmdW5jdGlvbiBjaGVja1ZhbHVlPD9waHAgIGVjaG8gJGJ1ZzsgPz4KKCl7CmlmKGRvY3VtZW50LmZDaGVjay48P3BocCAgZWNobyAkYnVnOyA/PgouY2hlY2tlZCl7Cm9tID0gb20gKyAxOwp9ZWxzZXsKaWYob20gPiAwICl7Cm9tID0gb20gLSAxOwp9ZWxzZXsKb20gPSBvbTsKfQp9CmlmKG9tICE9IDApewpkb2N1bWVudC5mQ2hlY2suU3VibWl0LmRpc2FibGVkPWZhbHNlOwp9ZWxzZXsKZG9jdW1lbnQuZkNoZWNrLlN1Ym1pdC5kaXNhYmxlZD10cnVlOwp9Cn0KPC9zY3JpcHQ+CjxpbnB1dCBvbmNsaWNrPSJjaGVja1ZhbHVlPD9waHAgIGVjaG8gJGJ1ZzsgPz4KKCk7IiBuYW1lPSI8P3BocCAgZWNobyAkYnVnOyA/PgoiIHR5cGU9ImNoZWNrYm94IiBpZD0iPD9waHAgIGVjaG8gJGJ1ZzsgPz4KIiB2YWx1ZT0iPD9waHAgIGVjaG8gJGJ1ZzsgPz4KIiAvPiZuYnNwOzw/cGhwICBlY2hvICRidWc7ID8+Cjxicj4KPD9waHAgIH0gPz4KPGlucHV0IG5hbWU9ImNla1YiIHR5cGU9ImNoZWNrYm94IiBvbkNsaWNrPSJjZWtLbGlrKCk7IiBpZD0iY2VrViIgdmFsdWU9ImNla1YiPgo8aW5wdXQgY2xhc3M9ImlzaSIgZGlzYWJsZWQ9ImRpc2FibGVkIiBuYW1lPSJ0ZXh0ViIgcGxhY2Vob2xkZXI9Im90aGVyIGtleXdvcmQiIG9uRm9jdXM9InRoaXMuc2VsZWN0KCkiIHR5cGU9InRleHQiIGlkPSJ0ZXh0ViI+Cjxicj48YnI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYXNhbCIgdmFsdWU9ImFiY2QiPgo8aW5wdXQgZGlzYWJsZWQ9ImRpc2FibGVkIiB0eXBlPSJzdWJtaXQiIG5hbWU9IlN1Ym1pdCIgdmFsdWU9IlN0YXJ0IFNjYW4hIiAvPgo8L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2Zvcm0+PGJyPjxmb250IHNpemU9IjIiIGNvbG9yPSJsaW1lIj5Ub29scyBmb3IgY2hlY2tpbmcgYSBiYWNrZG9vciBvbiBhIHdlYnNpdGUgdXNpbmcgYSBmdW5jdGlvbiB0aGF0IGlzIHVzdWFsbHkgdXNlZCBpbiBhIGJhY2tkb29yIHNoZWxsPGJyPjxicj5DcmVhdGVkIHdpdGggJmhlYXJ0czsgYnkgSW5kb25lc2lhIHBlb3BsZTwvZm9udD4KPD9waHAgIH0gZ290byBpcTVuXzsgZWFZM0o6IHNldF90aW1lX2xpbWl0KDApOyBnb3RvIEtSQTZpOyBpcTVuXzogPz4KPC9ib2R5Pgo8aHRt')); ?>
Function Calls
base64_decode | 1 |
Stats
MD5 | 607c2701fc958b99a6a93a2979e8dc96 |
Eval Count | 1 |
Decode Time | 61 ms |