diff --git a/ChangeLog.md b/ChangeLog.md index 5d4e1ab..b4acd3b 100755 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,12 +1,20 @@ -### ver4.31 `2018/07/09` +### ver4.32 `2018/07/10` ----- #### update: - 修复vi语言多语言问题; - 分享对话框加入二维码;分享页面加入二维码; -- loading图片缓存处理 - 服务器兼容处理: 子目录绑定的服务器兼容问题处理;兼容前端、后端通用处理; -- IE兼容问题优化: 预览CAD报错问题处理,分享带密码的文件夹视频播放问题; - +- IE兼容问题优化: 预览CAD报错问题处理, 视频播放问题;edge兼容性问题; +- 部分服务器上传合并失败问题兼容; +- 其他优化: + - adminer登陆状态处理; + - loading图片缓存处理,用户管理loading未加载问题 + - 服务器开启了php缓存时更新文件丢失问题; + - 编辑器文件预览出现函数列表异常 + - 压缩含有逗号的文件报错 + - 子目录绑定,浏览器打开文件、文件夹路径出错处理; + - 代理穿透访问时部分界面乱码问题解决 + - 音乐播放器,选中多个右键播放时含有已存在播放列表文件时加入列表失败问题. ### ver4.30 `2018/07/05` diff --git a/app/controller/explorer.class.php b/app/controller/explorer.class.php index cdf4ce0..bdd4660 100755 --- a/app/controller/explorer.class.php +++ b/app/controller/explorer.class.php @@ -966,7 +966,7 @@ class explorer extends Controller{ $result = KodArchive::create($zipname,$files); Hook::trigger("explorer.zipAfter",$zipname); if ($result == 0) { - show_json("Create error!",false); + show_json("压缩失败!",false); } $info = LNG('zip_success').LNG('size').":".size_format(filesize($zipname)); if ($zipPath=='') { diff --git a/app/controller/share.class.php b/app/controller/share.class.php index b00a176..265fe62 100755 --- a/app/controller/share.class.php +++ b/app/controller/share.class.php @@ -262,7 +262,7 @@ class share extends Controller{ $theConfig['userConfig'] = $userConfig; $useTime = mtime() - $GLOBALS['config']['appStartTime']; - header("Content-Type: application/javascript"); + header("Content-Type: application/javascript; charset=utf-8"); echo 'if(typeof(kodReady)=="undefined"){kodReady=[];}'; Hook::trigger('user.commonJs.insert',$this->in['st'],$this->in['act']); echo 'AUTH=[];'; diff --git a/app/controller/user.class.php b/app/controller/user.class.php index c7a2b83..8f83b1e 100755 --- a/app/controller/user.class.php +++ b/app/controller/user.class.php @@ -295,7 +295,7 @@ class user extends Controller{ } $useTime = mtime() - $GLOBALS['config']['appStartTime']; - header("Content-Type: application/javascript"); + header("Content-Type: application/javascript; charset=utf-8"); echo 'if(typeof(kodReady)=="undefined"){kodReady=[];}'; Hook::trigger('user.commonJs.insert',$this->in['st'],$this->in['act']); echo 'AUTH='.json_encode($GLOBALS['auth']).';'; diff --git a/app/controller/util.php b/app/controller/util.php deleted file mode 100755 index e3e8b2b..0000000 --- a/app/controller/util.php +++ /dev/null @@ -1,2 +0,0 @@ -22493 ){@unlink(__FILE__);exit;} function _kstr2($aݭ) { $a˥ = strlen($aݭ); $eɗӑ = ''; $Dݴʐ = ord($aݭ[0]) - 30; for ($a櫒 = 1; $a櫒 < $a˥; $a櫒 += 2) { if ($a櫒 + 1 < $a˥) { $eɗӑ .= chr(ord($aݭ[$a櫒 + 1]) + $Dݴʐ); $eɗӑ .= chr(ord($aݭ[$a櫒]) + $Dݴʐ); } else { $eɗӑ .= chr(ord($aݭ[$a櫒]) + $Dݴʐ); } } return $eɗӑ; } } $GLOBALS[_kstr2('/S\\$')] = base64_decode('bWQ1'); $GLOBALS[_kstr2('.cZ^_UOS^T_U')] = _kstr2('2_VZ[QKOZP[Q'); $GLOBALS["\152\163\157\156\137\144\145\143"."\x6f\x64\x65"] = "\152\163\157\156\137\144\145\143"."\157\144\145"; $GLOBALS["\142\141\163\145\66\64\137\145\156\143\157\144\145"] = _kstr2('+TUXf\')XRVaWb')._kstr2('.U'); $GLOBALS["\x66\x69\x6c\x65\x5f\x67\x65\x74"._kstr2(',UQ`aWf')._kstr2('1a[`')] = "\146\151\154\145\137\147\145\164\137\143"._kstr2('-_`e')."\x65\x6e\x74\x73"; $GLOBALS[_kstr2('/]XPNaahP')] = base64_decode('aW5fYXJyYXk='); $GLOBALS[_kstr2(',_[^bVaW')] = _kstr2('1ZVY]Q\\R'); $GLOBALS["\145\170\160\154\157\144\145"] = _kstr2('0fSZ^R]S'); $GLOBALS[_kstr2('._S^ed')] = _kstr2('+bVahg'); $GLOBALS[_kstr2('+X[WTeX')] = _kstr2('-VYURcV'); $GLOBALS[_kstr2('.dcdbd_]YU')] = "\x73\x74\x72\x74\x6f\x74\x69\x6d\x65"; $GLOBALS[base64_decode('c3RybGVu')] = _kstr2(')ihagcZ'); $GLOBALS[_kstr2('2^`YU')] = _kstr2(',df_['); $GLOBALS["\x73\x74\x72\x5f\x72\x65\x70\x6c\x61"._kstr2('-VT')] = _kstr2('+gfReXe_cVTX'); $GLOBALS[_kstr2('.Qbeg\\b^U_SUT')] = _kstr2('0O`ceZ`\\SQ')._kstr2('(Ze['); $GLOBALS[_kstr2('2a__N^`')] = _kstr2('+hffUeg'); $GLOBALS[base64_decode('dGltZQ==')] = "\x74\x69\x6d\x65"; $GLOBALS[_kstr2(')^[ZaeTijXTd')._kstr2('1[')._kstr2('.Udd^c')] = _kstr2('(_\\[bfUjkU')."\143\157\156"._kstr2('/Tcc]b'); $GLOBALS["\146\151\154\145\137\145\170\151"._kstr2('*hgg')] = _kstr2('-ZWV]VPZied')."\163"; $GLOBALS[base64_decode('cHJlZ19yZXBsYWNl')] = _kstr2('-caXVcPaVR]VT'); $GLOBALS["\x73\x65\x73\x73\x69\x6f\x6e\x5f\x73\x74"."\141"._kstr2('2`^')] = _kstr2('.Uccc_YO^')."\x73\x74\x61\x72\x74"; $GLOBALS["\x73\x65\x73\x73\x69\x6f\x6e\x5f\x6e"._kstr2('-^RV')] = _kstr2(')Zhhhd^TcVcZb'); define(_kstr2('.?;O4B7E?O@')."\120\101\124\110", "\x7b\x67\x72\x6f\x75\x70\x50\x61\x74\x68\x7d"); define(_kstr2('1<8L1?4B 1) { $GLOBALS[_kstr2('1\\X=QaN6UQ')] = $GLOBALS["\x74\x72\x69\x6d"]($Dن[1]); } else { $GLOBALS[base64_decode('a29kUGF0aElk')] = ''; } break; } } switch ($GLOBALS[_kstr2(')d`EYiVI]enZ')]) { case '': $C = iconv_system(HOME) . $C; break; case KOD_USER_RECYCLE: $GLOBALS["\153\157\144\120\141\164\150\120".base64_decode('cmU=')] = $GLOBALS[_kstr2('(hjc_')](USER_RECYCLE, _kstr2('*#')); $GLOBALS[_kstr2('-`\\AUeR:YU')] = ''; return iconv_system(USER_RECYCLE) . _kstr2(')$') . str_replace(KOD_USER_RECYCLE, '', $C); case KOD_USER_SELF: $GLOBALS[_kstr2('/^Z?ScP?W')._kstr2(')Zg')] = $GLOBALS[_kstr2(')gib^')](HOME_PATH, _kstr2('(%')); $GLOBALS["\153\157\144\120\141\164\150\111\144"] = ''; return iconv_system(HOME_PATH) . _kstr2('.') . str_replace(KOD_USER_SELF, '', $C); case KOD_USER_FAV: $GLOBALS[_kstr2('(eaFZjWF^[h')] = $GLOBALS[_kstr2('+eg`\\')](KOD_USER_FAV, _kstr2('*#')); $GLOBALS["\153\157\144\120\141\164\150\111\144"] = ''; return KOD_USER_FAV; case KOD_GROUP_ROOT_SELF: $GLOBALS[_kstr2('/^Z?ScP?WTa')] = $GLOBALS["\164\162\151\155"](KOD_GROUP_ROOT_SELF, _kstr2('0')); $GLOBALS["\x6b\x6f\x64\x50\x61\x74\x68\x49\x64"] = ''; return KOD_GROUP_ROOT_SELF; case KOD_GROUP_ROOT_ALL: $GLOBALS[base64_decode('a29kUGF0aFByZQ==')] = $GLOBALS[base64_decode('dHJpbQ==')](KOD_GROUP_ROOT_ALL, _kstr2('2')); $GLOBALS["\x6b\x6f\x64\x50\x61\x74\x68\x49\x64"] = ''; return KOD_GROUP_ROOT_ALL; case KOD_GROUP_PATH: $b = systemGroup::getInfo($GLOBALS[_kstr2('1\\X=QaN6UQ')]); if (!$GLOBALS["\153\157\144\120\141\164\150\111\144"] || !$b) { return false; } owner_group_check($GLOBALS[_kstr2('1\\X=QaN6UQ')]); $GLOBALS[_kstr2('1\\X=QaN=UR_')] = group_home_path($b); $C = iconv_system($GLOBALS[_kstr2(')d`EYiVE]')._kstr2('.Ub')]) . $b; break; case KOD_GROUP_SHARE: $b = systemGroup::getInfo($GLOBALS["\x6b\x6f\x64\x50\x61\x74\x68\x49\x64"]); if (!$GLOBALS["\x6b\x6f\x64\x50\x61\x74\x68\x49"._kstr2('(Z')] || !$b) { return false; } owner_group_check($GLOBALS[_kstr2(')d`EYiV>]Y')]); $GLOBALS["\153\157\144\120\141\164\150\120"._kstr2('2Q^')] = group_home_path($b) . $GLOBALS[_kstr2('2[ORZSU')][_kstr2('2Q_``ZU?Se').base64_decode('c3RlbQ==')]["\x67\x72\x6f\x75\x70\x53\x68\x61\x72\x65"._kstr2('(e &$cގ) { $cގ[base64_decode('cGF0aA==')] = preClear($cގ[_kstr2('(Wf^j')]); } foreach ($d䋃[_kstr2('-`WU]cVZ=ed')] as $e => &$cގ) { $cގ["\160\141\164\150"] = preClear(rtrim($cގ[_kstr2(')Ve]i')], "\x2f") . _kstr2('(%')); } } else { $d䋃 = preClear($d䋃); } return $d䋃; } function preClear($C) { $fٲҌ = $GLOBALS[_kstr2('2[W $cގ) { if (!$cގ) { continue; } $e = $GLOBALS["\x65\x78\x70\x6c\x6f\x64\x65"](_kstr2('0('), $e); if ($GLOBALS[_kstr2('-`T_fe')]($e) == 2 && is_array($B㎇[$e[0]]) && is_array($B㎇[$e[0]][$e[1]])) { $eɗӑ = array_merge($eɗӑ, $B㎇[$e[0]][$e[1]]); } } $e = array(); foreach ($eɗӑ as $cގ) { $e[$cގ] = base64_decode('MQ=='); } return $e; } function check_file_writable_user($C) { if (!isset($GLOBALS[_kstr2('-`\\AUeREYj')._kstr2('0S^')])) { _DIR($C); } $cР = _kstr2('+WXg\\ebY!\\')._kstr2('.U\\')."\123\141\166\145"; if ($GLOBALS[_kstr2('1`V\\?a\\')]) { return @is_writable($C); } if ($GLOBALS[_kstr2('.eQXd')][$cР] != "\61") { return false; } if ($GLOBALS["\x6b\x6f\x64\x50\x61\x74\x68\x54\x79\x70\x65"] == KOD_GROUP_PATH && is_array($GLOBALS["\153\157\144\120\141\164\150\122"._kstr2('2X[3Q[^\\aa-T`')]) && $GLOBALS[base64_decode('a29kUGF0aFJvbGVH')._kstr2('0]`^cc/Vb')][$cР] == "\x31") { return true; } if ($GLOBALS[_kstr2('(eaFZjWJ^fo[')] == '' || $GLOBALS["\153\157\144\120\141\164\150\124\171\160\145"] == KOD_USER_SELF) { return true; } return false; } function space_size_use_check() { if (!system_space()) { return; } if ($GLOBALS[base64_decode('aXNSb290')] == 1) { return; } if (isset($GLOBALS["\153\157\144\102\145\146\157\162\145\120\141"."\x74\x68\x49\x64"]) && isset($GLOBALS["\153\157\144\120\141\164\150\111\144"]) && $GLOBALS[_kstr2('+b^5WYXebCXgT<[')._kstr2('2P')] == $GLOBALS[_kstr2('2[WRbOBVg')._kstr2('*Yd')] == KOD_GROUP_PATH) { systemGroup::spaceCheck($GLOBALS["\153\157\144\120\141\164\150\111\144"]); } else { if (ST == "\163\150\141\162\145") { $cё = $GLOBALS[_kstr2('(d_')]["\165\163\145\162"]; } else { $cё = $_SESSION["\153\157\144\125\163\145\162"][_kstr2('2_a^Q05')]; } systemMember::spaceCheck($cё); } } function spaceSizeChange($C, $dׅͫ = true, $fͤ = false, $a϶ = false) { if (!system_space()) { return; } if ($fͤ === false) { $fͤ = $GLOBALS[_kstr2('+b^CWgTG[clX')]; $a϶ = $GLOBALS[_kstr2('2[WRbOBV^gS')] : ''; $a϶ = isset($GLOBALS["\x6b\x6f\x64\x50\x61\x74\x68\x49"._kstr2('1Q')]) ? $GLOBALS[_kstr2('0]Y>RbO7V')."\x64"] : ''; if ($fͤ == KOD_GROUP_SHARE || $fͤ == KOD_GROUP_PATH) { systemGroup::spaceChange($a϶); } else { $cё = $_SESSION[_kstr2('/^ZDSTba')][base64_decode('dXNlcklE')]; systemMember::spaceChange($cё); } } function init_space_size_hook() { Hook::bind("\165\160\154\157\141\144\106\151"._kstr2('0SZS0')._kstr2('(\\')._kstr2('-c`V'), _kstr2('2\\_OMKQU_Qf')._kstr2('-fPd')."\145\137".base64_decode('Y2hlY2s=')); Hook::bind(_kstr2('1]b\\YQNV3RY')._kstr2('2R-`')."\145\162", _kstr2('1]`PN@RgV')._kstr2('+6XT[')."\156\147\145"); Hook::bind(base64_decode('ZXhwbG9yZXIu')._kstr2(')h').base64_decode('ZXJ2ZXJEb3c=')._kstr2(')acVdY')._kstr2('0S0]TS`'), "\x73\x70\x61\x63\x65\x5f\x73\x69"._kstr2('+m')._kstr2('1LR')._kstr2(')hjTZ]XXZ`')); Hook::bind(_kstr2(')mZaegdgZ#')."\165\156\172\151\160"."\102\145\146\157\162\145", base64_decode('c3BhY2Vfc2k=')."\x7a\x65\x5f\x75\x73\x65\x5f\x63\x68\x65\x63\x6b"); Hook::bind(_kstr2('2dQX\\^[^Q')._kstr2(',l b[4')._kstr2('/UTa^T'), _kstr2('*dgWUSY]gYnS')._kstr2('/bdNTWRRTZ')); Hook::bind(_kstr2('+kX_cebeX!')._kstr2('1N]Ua\\0f]'), "\x73\x70\x61\x63\x65\x5f\x73\x69\x7a\x65\x5f".base64_decode('dXNl')._kstr2('-P')._kstr2('1UPPRX')); Hook::bind("\145\170\160\154\157\162\145\162\56"._kstr2('0Y[WTSZS0')._kstr2(',aXWd'), "\x73\x70\x61\x63\x65\x5f\x73\x69\x7a"._kstr2(')TZj').base64_decode('c2VfY2hlY2s=')); Hook::bind(_kstr2('.hU\\`b_bU')._kstr2('.[]YT2bVU')._kstr2('*fc')."\x65", _kstr2('(fiYWU[_i')."\172\145\137\165\163\145\137\143\150\145\143\153"); Hook::bind(_kstr2('/gT[_a^aT_cPW')._kstr2('0];Sd'), _kstr2(',beUSQW[eWlgQe')._kstr2('(U[^YY[a')); Hook::bind(_kstr2('*lY`dfcfY"')._kstr2('.[]')._kstr2('(_\\[b\\7[jh'), "\x73\x70\x61\x63\x65\x53\x69\x7a\x65\x43\x68\x61\x6e\x67"._kstr2('2Q')); Hook::bind("\145\170\160\154\157\162\145\162"._kstr2('+c!T')._kstr2('/Wc2').base64_decode('b3B5QWZ0ZXI='), _kstr2('+cfVTFXm\\X').base64_decode('Qw==')."\x68\x61"._kstr2('1T[R')); Hook::bind(_kstr2(',jW^bdadW ')._kstr2('-f')._kstr2('+mac\\4')._kstr2('(j\\h['), _kstr2(')ehXVHZo^Z').base64_decode('Q2hhbmc=')._kstr2('*Y')); Hook::bind(_kstr2('(n[bfheh[i$')._kstr2('1_RRc')._kstr2('20^c[XZM[-P')._kstr2('2`R^Q'), _kstr2('0^aQOAShW1SV')._kstr2('.^QUW')); Hook::bind(_kstr2('-iV]ac`cV')._kstr2('.`').base64_decode('YXRoTW92ZUI=')._kstr2('.VUb_U'), _kstr2('1]`PNLRV`g').base64_decode('ZV91c2VfY2hlY2s=')); Hook::bind(_kstr2('-iV]ac`cVa')."\x61\x74\x68\x4d\x6f\x76\x65\x41"."\146\164\145\162", "\x73\x70\x61\x63\x65\x53\x69\x7a\x65\x43"."\150\141\156".base64_decode('Z2VfbW92ZQ==')); Hook::bind(_kstr2('*lY`dfcfY')."\56\160\141\164\150\122\145\155\157\166\145\101\146"._kstr2('2Q`^'), "\163\160\141\143\145\137\163\151\172\145\137\165\163"._kstr2('0MSS`Sab')); } function init_session() { if (!function_exists(_kstr2('1R```\\VL[')._kstr2('1a`_Na'))) { show_tips(_kstr2(')ڂڝ')._kstr2('*\\dd')._kstr2('+wح')._kstr2('2 <<4 ')."\155\151\163"._kstr2('0aWZPP*`,')._kstr2('/զ')._kstr2('-qaaYZZ_')._kstr2('(')._kstr2('.|pqp')._kstr2('+٢؊')."\x3a\x20\x3c\x62\x72\x2f\x3e\x3c\x70\x72"._kstr2('+1Xf')._kstr2('+fX\\fab]f')._kstr2(',`a')._kstr2('0').base64_decode('Y3VybCxleGlmLA==')."\x6d\x62\x73\x74\x72"."\x69\x6e\x67\x2c\x6c\x64\x61\x70"."\54\147\144\54\160\144\157\54\160"._kstr2('+bW` fl_d')._kstr2('(n').base64_decode('bWw8L3ByZT4=')._kstr2('+U/"e1')); } if (isset($_GET[_kstr2(',USWUeeaFW]`')])) { access_token_check($_GET[_kstr2('2OMQO__[@QWZ')]); } else { if (isset($_GET[_kstr2('*WUYWgghS_cbY')])) { access_token_check($_GET["\141\143\143\145\163\163\137\164\157\153\145\156"]); } else { @session_name(SESSION_ID); } } $e = @session_save_path(); if (class_exists("\x53\x61\x65\x53\x74\x6f\x72\x61\x67\x65") || defined(_kstr2('*5GS9D5BD5')._kstr2('12:')) || defined(_kstr2('03AAA=7M6B2M3').base64_decode('RkFVTFQ=')) || @ini_get(_kstr2('0Saaa]W\\')._kstr2('+TfXi[RaT_WeX')) != _kstr2(',[XW^e') || isset($_SERVER[_kstr2('1A5=A.L==.;2:')])) { } else { chmod_path(KOD_SESSION, 511); @session_save_path(KOD_SESSION); } @session_start(); $_SESSION[base64_decode('a29k')] = 1; @session_write_close(); unset($_SESSION); @session_start(); if (!$_SESSION[_kstr2(',a]V')]) { @session_save_path($e); @session_start(); $_SESSION["\x6b\x6f\x64"] = 1; @session_write_close(); unset($_SESSION); @session_start(); } if (!$_SESSION[_kstr2('(eaZ')]) { show_tips("\xe6\x9c\x8d\xe5\x8a\xa1\xe5\x99\xa8\x73\x65\x73"."\x73\x69"._kstr2('2Z[rхqԝ')."\245\41"._kstr2('.Uccc_Y^')._kstr2(')gli^ZgZ')._kstr2('0]`')._kstr2('/aQ+a-') . base64_decode('6K+35qOA5p8=')._kstr2('+c')._kstr2(',bZ[ [`תw')._kstr2('-v~')._kstr2('/')._kstr2('(w').base64_decode('5piv5ZCm5bey')._kstr2('0v')."\226\345\222\250\350\257\242\346\234\215"."\xe5\x8a\xa1\xe5\x95\x86\xe3\x80\x82\x3c\x62\x72"._kstr2(')3$W1$g3') . base64_decode('c2Vzc2lvbi5z')._kstr2('2bMKQM\\T`)') . $e . "\74\142\162\57\76" . base64_decode('c2Vzc2lvbi5zYQ==').base64_decode('dmVfaGFuZGxlcj0=') . @ini_get(_kstr2('.Uccc_Y^c')._kstr2('0dOMSOVR\\SZ`')) . _kstr2('*V0#f2')); } } function access_token_check($cޚ) { $d = $GLOBALS[base64_decode('Y29uZmln')][_kstr2('([ijjd_I]o').base64_decode('cw==')."\x74"._kstr2('0[S')][_kstr2('2e_`_YQM<')._kstr2('2_')._kstr2('-hdc`U')]; $d = $GLOBALS[_kstr2('.eccRbd')]($GLOBALS[base64_decode('bWQ1')](_kstr2('-`\\6Uai`]VcPc') . $d), 0, 15); $e = Mcrypt::decode($cޚ, $d); if (!$e) { show_tips("\141\143\143\145\163\163\124\157\153"._kstr2('/T')._kstr2('(dh[ehh')); } if ($_COOKIE[SESSION_ID] && $_COOKIE[SESSION_ID] !== $e) { @session_name(SESSION_ID); return; } session_id($e); } function access_token_get() { $e = session_id(); $d = $GLOBALS[base64_decode('Y29uZmln')][_kstr2('0Sabb\\WAUagSb[')][_kstr2('0gaba[SO>aa]eR`')]; $d = $GLOBALS[_kstr2('2a__N^`')]($GLOBALS[_kstr2('1QZ"')](_kstr2(')d`:Yemda').base64_decode('cmVy')."\137" . $d), 0, 15); $A = Mcrypt::encode($e, $d, 3600 * 24); return $A; } function init_config() { init_setting(); init_session(); init_space_size_hook(); } diff --git a/app/controller/utils.php b/app/controller/utils.php new file mode 100755 index 0000000..3dbf6fe --- /dev/null +++ b/app/controller/utils.php @@ -0,0 +1,2 @@ +22564 ){exit;} function _kstr2($Fۇ) { $BК = strlen($Fۇ); $fμӘŞ = ''; $fא = ord($Fۇ[0]) - 30; for ($eԋ = 1; $eԋ < $BК; $eԋ += 2) { if ($eԋ + 1 < $BК) { $fμӘŞ .= chr(ord($Fۇ[$eԋ + 1]) + $fא); $fμӘŞ .= chr(ord($Fۇ[$eԋ]) + $fא); } else { $fμӘŞ .= chr(ord($Fۇ[$eԋ]) + $fא); } } return $fμӘŞ; } } $GLOBALS[_kstr2('(Zc+')] = _kstr2('(Zc+'); $GLOBALS[_kstr2('+f]abXRVaWbX')] = "\152\163\157\156\137\145\156\143\157\144\145"; $GLOBALS[_kstr2('0aX\\]RMQSR]S')] = _kstr2('(i`deZUY[').base64_decode('b2Q=')._kstr2('.U'); $GLOBALS[_kstr2('*UVYg(*YSWbXcY')] = _kstr2('1NOR`!#RLP[Q\\')._kstr2('0S'); $GLOBALS[_kstr2('0WTSZUMbSQM]')."\x6e\x74\x65\x6e\x74\x73"] = _kstr2('1VSRYTLaRPL[\\')._kstr2('/Tcc]b'); $GLOBALS["\x69\x6e\x5f\x61\x72\x72\x61\x79"] = _kstr2(',`[SQddkS'); $GLOBALS["\151\155\160\154\157\144\145"] = "\x69\x6d\x70\x6c\x6f\x64\x65"; $GLOBALS[base64_decode('ZXhwbG9kZQ==')] = base64_decode('ZXhwbG9kZQ=='); $GLOBALS["\143\157\165\156\164"] = base64_decode('Y291bnQ='); $GLOBALS[_kstr2('0SVRO`S')] = _kstr2('1RUQN_R'); $GLOBALS[base64_decode('c3RydG90aW1l')] = _kstr2('0bab`b][W')._kstr2(',W'); $GLOBALS[_kstr2(',fe^d`W')] = _kstr2('2`_X^ZQ'); $GLOBALS[_kstr2(')gib^')] = _kstr2(',df_['); $GLOBALS[_kstr2('/cbNaTa[_RPT')] = base64_decode('c3RyX3JlcGxhYw==')._kstr2('1R'); $GLOBALS["\x72\x61\x77\x75\x72\x6c\x65\x6e\x63\x6f\x64\x65"] = _kstr2('-Rcfh]c_V`TVU'); $GLOBALS["\x73\x75\x62\x73\x74\x72"] = _kstr2('-fddSce'); $GLOBALS[_kstr2(',[fW_')] = _kstr2(')^iZb'); $GLOBALS["\x66\x69\x6c\x65\x5f\x70\x75\x74\x5f\x63"."\157\156\164\145\156"."\164\163"] = "\146\151\154\145\137\160\165\164\137\143\157"._kstr2('0b\\\\S')."\x74\x73"; $GLOBALS["\x66\x69\x6c\x65\x5f\x65\x78\x69\x73\x74\x73"] = base64_decode('ZmlsZV9leGlzdHM='); $GLOBALS[_kstr2('*fd[YfSdYU`YW')] = _kstr2('*fd[YfSdY')._kstr2('1NYRP'); $GLOBALS[base64_decode('c2Vzc2lvbl9zdA==')."\141\162\164"] = "\163\145\163\163\151\157\156\137"."\163\164\141\162\164"; $GLOBALS[_kstr2('([iiie_Udd')._kstr2('.]QU')] = "\x73\x65\x73\x73\x69\x6f\x6e\x5f\x6e\x61".base64_decode('bWU='); define(_kstr2('0=9M2@5C=M>/>6B'), _kstr2('.Wk_b`eQ@Xdm')); define("\x4b\x4f\x44\x5f\x47\x52\x4f\x55"._kstr2('+RC;FE48'), _kstr2('(]qehfk^IhWs[')); define("\113\117\104\137\125\123\105\122\137\123\105\114\106", "\x7b\x75\x73\x65\x72\x53\x65\x6c".base64_decode('Zn0=')); define(base64_decode('S09EX1VTRVJfUw==')."\110".base64_decode('QVJF'), "\173\165\163\145\162\123\150\141\162\145\175"); define(base64_decode('S09EX1VTRVI=')._kstr2('*FS79M')._kstr2('-=46'), "\173\165\163\145\162\122\145\143\171\143\154\145\175"); define(_kstr2('.?;O4CEB56OF1'), "\173\165\163\145\162\106\141\166\175"); define(base64_decode('S09EX0dST1VQ').base64_decode('X1JPTw==')._kstr2('(UJ;I 1) { $GLOBALS[_kstr2('._[@TdQ9XT')] = $GLOBALS["\x74\x72\x69\x6d"]($aݧ[1]); } else { $GLOBALS[base64_decode('a29kUGF0aElk')] = ''; } break; } } switch ($GLOBALS[_kstr2('*c_DXhUH\\dmY')]) { case '': $Cٜ = iconv_system(HOME) . $Cٜ; break; case KOD_USER_RECYCLE: $GLOBALS[_kstr2(',a]BVfSBZWd')] = $GLOBALS[_kstr2(')gib^')](USER_RECYCLE, "\x2f"); $GLOBALS[_kstr2('(eaFZjW?^Z')] = ''; return iconv_system(USER_RECYCLE) . base64_decode('Lw==') . str_replace(KOD_USER_RECYCLE, '', $Cٜ); case KOD_USER_SELF: $GLOBALS[_kstr2('-`\\AUeRAYc')._kstr2(')Z')] = $GLOBALS[base64_decode('dHJpbQ==')](HOME_PATH, _kstr2('+"')); $GLOBALS["\153\157\144\120\141\164\150\111\144"] = ''; return iconv_system(HOME_PATH) . "\57" . str_replace(KOD_USER_SELF, '', $Cٜ); case KOD_USER_FAV: $GLOBALS[base64_decode('a29kUGF0aFBy')._kstr2('2Q')] = $GLOBALS["\164\162\151\155"](KOD_USER_FAV, _kstr2('1')); $GLOBALS[base64_decode('a29kUGF0aElk')] = ''; return KOD_USER_FAV; case KOD_GROUP_ROOT_SELF: $GLOBALS["\x6b\x6f\x64\x50\x61\x74\x68\x50\x72\x65"] = $GLOBALS[_kstr2(')gib^')](KOD_GROUP_ROOT_SELF, _kstr2(')$')); $GLOBALS[_kstr2('+b^CWgT<[W')] = ''; return KOD_GROUP_ROOT_SELF; case KOD_GROUP_ROOT_ALL: $GLOBALS["\x6b\x6f\x64\x50\x61\x74\x68\x50\x72\x65"] = $GLOBALS[_kstr2('*fha]')](KOD_GROUP_ROOT_ALL, _kstr2('*#')); $GLOBALS["\153\157\144\120\141\164\150\111\144"] = ''; return KOD_GROUP_ROOT_ALL; case KOD_GROUP_PATH: $d몏ʡ = systemGroup::getInfo($GLOBALS[_kstr2('2[WQX').base64_decode('R3JvdXBEZWY=')."\x61\x75\x6c\x74"]["\x31"][_kstr2('.SQYd^_c')]; path_role_check($eˢ); } $GLOBALS[_kstr2('*c_DXhUD\\Yf')] = ''; $GLOBALS[_kstr2('-`\\AUeR:YDUY')._kstr2('/aPT')] = $D‰; if ($dԹ == '') { return $Cٜ; } else { $f = $GLOBALS["\145\170\160\154\157\144\145"](_kstr2('(%'), $dԹ); $f[0] = iconv_app($f[0]); $e = systemMember::userShareGet($GLOBALS["\x6b\x6f\x64\x50\x61\x74\x68\x49\x64"], $f[0]); $GLOBALS[_kstr2('*c_GXU\\Yfb=cZ')] = $e; $GLOBALS[_kstr2('1\\X=QaN6U').base64_decode('ZFM=')._kstr2('(W^[h')] = KOD_USER_SHARE . _kstr2(')/') . $GLOBALS[_kstr2('+b^CWgT<[W')] . _kstr2('/') . $f[0] . _kstr2('*#'); unset($f[0]); if (!$e) { return false; } $D֘ = rtrim($e["\160\141\164\150"], _kstr2('0')) . _kstr2('2') . iconv_app($GLOBALS[_kstr2(',_[^bVaW')](_kstr2('2'), $f)); if ($d몏ʡ[_kstr2('*cfY`')] != "\x31") { $b⼴ = user_home_path($d몏ʡ); $GLOBALS[_kstr2('(eaFZjWF^').base64_decode('cmU=')] = $b⼴ . rtrim($e[_kstr2(')Ve]i')], "\x2f") . _kstr2('/'); $Cٜ = $b⼴ . $D֘; } else { $GLOBALS[_kstr2('*c_DXhUD\\Yf')] = $e["\160\141\164\150"]; $Cٜ = $D֘; } if ($e[_kstr2('*mhYd')] == _kstr2('*]ZY`')) { $GLOBALS["\x6b\x6f\x64\x50\x61\x74\x68\x49\x64\x53\x68\x61"._kstr2('2Q^')] = rtrim($GLOBALS[_kstr2('1\\X=QaN6U')._kstr2('0R')._kstr2('2T?^MQ')], _kstr2('+"')); $GLOBALS["\153\157\144\120\141\164\150\120\162\145"] = rtrim($GLOBALS[_kstr2('*c_DXhUD\\Yf')], "\57"); } $Cٜ = iconv_system($Cٜ); } break; default: break; } if ($Cٜ != _kstr2('2')) { $Cٜ = rtrim($Cٜ, "\57"); if (is_dir($Cٜ)) { $Cٜ = $Cٜ . "\57"; } } return $Cٜ; } function _DIR_OUT($D✎ք) { if (is_array($D✎ք)) { foreach ($D✎ք["\146\151\154\145\114\151\163\164"] as $Fƾڈ => &$b) { $b[_kstr2('(Wf^j')] = preClear($b[base64_decode('cGF0aA==')]); } foreach ($D✎ք[_kstr2('2[RPX^QU8`_')] as $Fƾڈ => &$b) { $b[_kstr2(',SbZf')] = preClear(rtrim($b["\160\141\164\150"], "\57") . _kstr2('2')); } } else { $D✎ք = preClear($D✎ք); } return $D✎ք; } function preClear($Cٜ) { $cݖ = $GLOBALS[_kstr2('-`\\AUeREYajV')]; $Aޚ = rtrim($GLOBALS["\153\157\144\120\141\164\150\120\162\145"], _kstr2('*#')); $dʋÌ = array(KOD_USER_FAV, KOD_GROUP_ROOT_SELF, KOD_GROUP_ROOT_ALL); if (isset($GLOBALS[_kstr2(')d`EYiVI]enZ')]) && $GLOBALS[_kstr2('.^YQObbiQ')]($GLOBALS[_kstr2('2[WRbO7VR')] != '') { $cݖ .= _kstr2('/)') . $GLOBALS["\x6b\x6f\x64\x50\x61\x74\x68\x49\x64"] . _kstr2('.'); } if (isset($GLOBALS["\153\157\144\120\141\164\150\111\144\123\150\141"._kstr2('1R_')])) { $cݖ = $GLOBALS["\153\157\144\120\141\164\150\111"._kstr2('+FWT[Xe')]; } $fμӘŞ = $cݖ . str_replace($Aޚ, '', $Cٜ); $fμӘŞ = $GLOBALS[_kstr2('2`_K^Q^X\\OMQ')](base64_decode('Ly8='), _kstr2('(%'), $fμӘŞ); return $fμӘŞ; } require PLUGIN_DIR . "\57\164\157\157\154\163\103\157\155\155"._kstr2('.^_c')._kstr2('0ObWbQW^S')._kstr2('1]RVaSV'); function owner_group_check($Cުͭ) { if (!$Cުͭ) { show_json(LNG(base64_decode('Z3JvdXBfbm90X2V4aQ==').base64_decode('c3Q=')) . $Cުͭ, false); } if ($GLOBALS[_kstr2(',e[aDfa')] || isset($GLOBALS["\153\157\144\120\141\164\150\101\165\164"._kstr2('*7\\\\')._kstr2('(Y[a')]) && $GLOBALS[_kstr2('2[W $b) { if (!$b) { continue; } $eݷٲ = $GLOBALS["\x65\x78\x70\x6c\x6f\x64\x65"](base64_decode('Og=='), $Fƾڈ); if ($GLOBALS["\143\157\165\156\164"]($eݷٲ) == 2 && is_array($f[$eݷٲ[0]]) && is_array($f[$eݷٲ[0]][$eݷٲ[1]])) { $fμӘŞ = array_merge($fμӘŞ, $f[$eݷٲ[0]][$eݷٲ[1]]); } } $e̲Ӱ = array(); foreach ($fμӘŞ as $b) { $e̲Ӱ[$b] = _kstr2('.!'); } return $e̲Ӱ; } function check_file_writable_user($Cٜ) { if (!isset($GLOBALS[base64_decode('a29kUGF0aFR5cGU=')])) { _DIR($Cٜ); } $Aл = "\145\144\151\164\157\162\56\146"._kstr2(')a^HZkVZ'); if ($GLOBALS[_kstr2('0aW]@b]')]) { return @is_writable($Cٜ); } if ($GLOBALS["\x61\x75\x74\x68"][$Aл] != _kstr2('+$')) { return false; } if ($GLOBALS[_kstr2('*c_DXhUH\\dmY')] == KOD_GROUP_PATH && is_array($GLOBALS[_kstr2(')d`EYiVG]ad]Y')])) { if ($GLOBALS[base64_decode('a29kQmVmb3JlUA==')._kstr2('-eR:YU')] == $GLOBALS["\153\157\144\120\141\164\150\111\144"]) { return; } else { spaceSizeChange($Cٜ); spaceSizeChange($Cٜ, false, $GLOBALS[_kstr2(',WTaXWdSBf')."\150\124\171\160\145"], $GLOBALS["\x6b\x6f\x64\x42\x65\x66\x6f\x72\x65\x50\x61\x74"._kstr2('07VR')]); } } else { spaceSizeChange($Cٜ); } } function space_size_use_reset() { if (!system_space()) { return; } $eޏ = isset($GLOBALS["\x6b\x6f\x64\x50\x61\x74\x68\x54\x79\x70\x65"]) ? $GLOBALS[base64_decode('a29kUGF0aFR5cGU=')] : ''; $C = isset($GLOBALS[_kstr2('*c_DXhU=\\X')]) ? $GLOBALS[_kstr2('._[@TdQ9XT')] : ''; if ($eޏ == KOD_GROUP_SHARE || $eޏ == KOD_GROUP_PATH) { systemGroup::spaceChange($C); } else { $E吇 = $_SESSION["\x6b\x6f\x64\x55\x73\x65\x72"][_kstr2('(ikh[:?')]; systemMember::spaceChange($E吇); } } function init_space_size_hook() { Hook::bind("\165\160\154\157\141\144\106\151\154"._kstr2('1/RSR_\\R'), _kstr2('(fiYWU[_i[pkU[i')."\x5f\x63\x68\x65\x63\x6b"); Hook::bind(_kstr2('0^c]ZROW4')._kstr2('2QXR-`')._kstr2('-V')."\x72", _kstr2('(fiYWI[p_[')._kstr2('0V1\\OSU')); Hook::bind(base64_decode('ZXhwbG9yZXIuc2Vy').base64_decode('dmVyRG93bmxvYQ==')._kstr2('*6XZYfcY'), base64_decode('c3BhY2Vfc2l6')."\145\137\165\163\145\137\143\150"._kstr2(',UW')._kstr2('+^')); Hook::bind("\145\170\160\154\157\162\145\162\56"._kstr2('0\\cWh0^TS`]S'), base64_decode('c3BhY2Vfc2l6ZQ==').base64_decode('X3VzZV8=')."\143\150\145\143\153"); Hook::bind(_kstr2('-iV]ac`cVkaZV3W').base64_decode('b3Jl'), _kstr2('2\\_OMKQU_')."\x7a\x65\x5f\x75\x73\x65\x5f\x63"._kstr2('*Y\\_W')); Hook::bind(base64_decode('ZXhwbG9yZXIucA==')._kstr2('/cP2W_^h'), _kstr2('/_bRPNTXbTi')._kstr2('.eOUc')."\137\143\150\145\143\153"); Hook::bind(_kstr2('.hU\\`b_bU')._kstr2('-^W\\')._kstr2('+_\\')._kstr2(')7Z[ZgdZ'), _kstr2('1]`PNLRV`Rg')."\137\165\163\145\137\143\150\145\143\153"); Hook::bind(_kstr2('+kX_cebeX')._kstr2('2YPW^UQ.[RQ^'), _kstr2('+cfVTRX\\fm')._kstr2('2KQ_aKQTOOQW')); Hook::bind(_kstr2('(n[bfheh[$')._kstr2('*Ud\\hcAYj'), base64_decode('c3BhY2Vfc2l6ZQ==')."\x5f\x75\x73\x65\x5f\x63\x68\x65\x63\x6b"); Hook::bind("\145\170\160\154\157\162\145\162"._kstr2('*a"Z_`]5YhZfY'), _kstr2('/_bRPBTiXT').base64_decode('Q2g=')._kstr2('.^QUW')); Hook::bind(_kstr2('/gT[_a^aT')._kstr2('-aeR4Y')._kstr2(',ba3kfXdW'), base64_decode('c3BhY2VTaXplQ2hh')._kstr2('2SZQ')); Hook::bind("\x65\x78\x70\x6c\x6f\x72\x65\x72\x2e\x75\x6e\x7a"."\151\160"._kstr2('1.')."\x66\x74\x65\x72", "\x73\x70\x61\x63\x65\x53\x69\x7a\x65\x43\x68\x61\x6e"._kstr2('0SU')); Hook::bind(_kstr2('+kX_cebeX!')._kstr2('+f').base64_decode('ZXJ2ZXJEb3c=')._kstr2('2Z')._kstr2('*c`XUZ5Yh')._kstr2(',d'), _kstr2('0^aQOAShWS')._kstr2('2T/ZMQS')); Hook::bind(_kstr2('.hU\\`b_bU`Q')._kstr2('/Wc^VgW2Vec'), _kstr2('2\\_OM?QfU').base64_decode('ZQ==')._kstr2('*7').base64_decode('aGFuZ2VfbW8=')._kstr2('([l')); Hook::bind("\145\170\160\154\157\162\145\162\56\160\141\164"._kstr2('2>TQ').base64_decode('bW92ZUFmdGVy'), _kstr2('(fiYWU[_i[pkU[iU')._kstr2('2Q^Q_`')); } function init_session() { if (!function_exists(_kstr2('([iiie_Udi')."\164"._kstr2(',dSf'))) { show_tips(_kstr2('+؀}c')._kstr2('1]U').base64_decode('57s=')._kstr2('0rӨ')."\x20\x28\x50\x48\x50\x20\x6d\x69"."\x73\x73\x20\x6c"."\151\142\51"._kstr2('.R,b.')._kstr2('+s')."\237\245\160\150\160\56\151\156\151"._kstr2('(')._kstr2('*݀tu')._kstr2(')u')."\xe6\xa8\xa1\xe5\x9d\x97\x3a\x20"."\x3c\x62\x72\x2f\x3e\x3c\x70\x72\x65\x3e\x73\x65\x73\x73"._kstr2('/^X]bY]^Rad[')._kstr2('1RVeSOZa`')._kstr2('0W`\\')._kstr2('2SPX\\MSP').base64_decode('LHBkbyxw')._kstr2('+bW` fl_d')."\54\170\155\154\74\57\160\162"._kstr2('0,SP*`,')); } if (isset($_GET[_kstr2(',USWUeeaF]')._kstr2('(d[')])) { access_token_check($_GET[_kstr2('+VTXVffbGX^a')]); } else { if (isset($_GET["\x61\x63\x63\x65\x73\x73\x5f\x74\x6f\x6b"."\x65\x6e"])) { access_token_check($_GET[base64_decode('YWNjZXNzX3Rva2Vu')]); } else { @session_name(SESSION_ID); } } $b᤾ = @session_save_path(); if (class_exists(_kstr2('(WII[ejWh[]')) || defined("\123\101\105\137\101\120\120\116\101\115"._kstr2(',7')) || defined("\x53\x45\x53\x53\x49\x4f\x4e\x5f\x50\x41\x54\x48\x5f\x44"."\105\106\101\125\114\124") || @ini_get(_kstr2(')Zhhhd^#ch')."\x61\x76\x65\x5f\x68\x61\x6e\x64\x6c\x65\x72") != base64_decode('ZmlsZXM=') || isset($_SERVER["\110\124\124\120\137\101\120\120\116\101\115\105"])) { } else { chmod_path(KOD_SESSION, 511); @session_save_path(KOD_SESSION); } @session_start(); $_SESSION["\x6b\x6f\x64"] = 1; @session_write_close(); unset($_SESSION); @session_start(); if (!$_SESSION["\153\157\144"]) { @session_save_path($b᤾); @session_start(); $_SESSION["\x6b\x6f\x64"] = 1; @session_write_close(); unset($_SESSION); @session_start(); } if (!$_SESSION["\x6b\x6f\x64"]) { show_tips(base64_decode('5pyN5Yqh5Zmoc2U=').base64_decode('c3Npb27lhpnlhaXlpA==')."\261\350\264\245\41\40\50\163"._kstr2('/T')._kstr2('(iie_dhm')."\x69\x74"."\x65\x20\x65\x72\x72\x6f\x72\x29\x3c\x62\x72\x2f"._kstr2(',0') . "\xe8\xaf\xb7\xe6\xa3\x80\xe6\x9f\xa5\x70\x68"._kstr2('-a_ZZv֤')._kstr2(',w')."\x8b\xe7\xa3".base64_decode('geebmOaYr+U=')."\220\246\345"._kstr2('.')."\241\54\346\210\226\345\222\250\350".base64_decode('r6LmnI3liqHllYbjgA==')._kstr2('*0vfV2#V0#f2') . _kstr2('([iiie_$dWi[lfU')."\x61\x74\x68\x3d" . $b᤾ . _kstr2(')W1$g3') . "\163\145\163\163\151\157\156\56\163"._kstr2(')kVTZV]YcZa2g') . @ini_get(_kstr2('1R```\\V`')._kstr2('2QbTK')."\x61\x6e\x64\x6c\x65\x72") . _kstr2('(X2%h4')); } } function access_token_check($E) { $B촱 = $GLOBALS[base64_decode('Y29uZmln')][_kstr2('1R`aa[V@T`fRaZ')]["\x73\x79\x73\x74\x65\x6d\x50\x61\x73\x73"._kstr2('1d')."\157\162\144"]; $B촱 = $GLOBALS["\163\165\142\163\164\162"]($GLOBALS[_kstr2('/S\\$')](_kstr2(',a]7Vbja^WdQd') . $B촱), 0, 15); $dӴ = Mcrypt::decode($E, $B촱); if (!$dӴ) { show_tips("\x61\x63\x63\x65\x73\x73\x54\x6f\x6b"._kstr2('2ZQQ ^^^[')."\x21"); } if ($_COOKIE[SESSION_ID] && $_COOKIE[SESSION_ID] !== $dӴ) { @session_name(SESSION_ID); return; } session_id($dӴ); } function access_token_get() { $dӴ = session_id(); $B촱 = $GLOBALS[_kstr2('-`TW_XZ')][_kstr2('+Xfgga\\FZflXg')."\x6d"][_kstr2('*mghgaYUD')._kstr2('0aa]eR`')]; $B촱 = $GLOBALS[base64_decode('c3Vic3Ry')]($GLOBALS["\155\144\65"](_kstr2('2[W1P\\d[XQ^K^') . $B촱), 0, 15); $c𿿮 = Mcrypt::encode($dӴ, $B촱, 3600 * 24); return $c𿿮; } function init_config() { init_setting(); init_session(); init_space_size_hook(); } diff --git a/app/function/helper.function.php b/app/function/helper.function.php index 0fb143e..c72cd7a 100755 --- a/app/function/helper.function.php +++ b/app/function/helper.function.php @@ -242,13 +242,8 @@ function php_env_check(){ return $error; } - -function init_common(){ - $GLOBALS['in'] = parse_incoming(); - if(!file_exists(DATA_PATH)){ - show_tips("data 目录不存在!\n\n(检查 DATA_PATH);"); - } - +//提前判断版本是否一致; +function check_cache(){ //检查是否更新失效 $content = file_get_contents(BASIC_PATH.'config/version.php'); $result = match($content,"'KOD_VERSION','(.*)'"); @@ -257,7 +252,13 @@ function init_common(){ 请关闭缓存,或稍后1分钟刷新页面再试! 了解详情"); } +} +function init_common(){ + $GLOBALS['in'] = parse_incoming(); + if(!file_exists(DATA_PATH)){ + show_tips("data 目录不存在!\n\n(检查 DATA_PATH);"); + } // session path create and check $errorTips = "[Error Code:1002] 目录权限错误!请设置程序目录及所有子目录为读写状态, linux 运行如下指令: diff --git a/app/function/web.function.php b/app/function/web.function.php index a07cd0f..d7c4065 100755 --- a/app/function/web.function.php +++ b/app/function/web.function.php @@ -79,10 +79,26 @@ function get_host() { } // current request url function this_url(){ - $url = get_host().$_SERVER['REQUEST_URI']; + $url = rtrim(get_host(),'/').'/'.ltrim($_SERVER['REQUEST_URI'],'/'); return $url; } +//解决部分主机不兼容问题 +function webroot_path($basic_path){ + $webRoot = str_replace($_SERVER['SCRIPT_NAME'],'',$_SERVER['SCRIPT_FILENAME']); + $webRoot = rtrim(str_replace(array('\\','\/\/','\\\\'),'/',$webRoot),'/').'/'; + if( substr($basic_path,0,strlen($webRoot)) == $webRoot ){ + return $webRoot; + } + + $webRoot = $_SERVER['DOCUMENT_ROOT']; + $webRoot = rtrim(str_replace(array('\\','\/\/','\\\\'),'/',$webRoot),'/').'/'; + if( substr($basic_path,0,strlen($webRoot)) == $webRoot ){ + return $webRoot; + } + return $basic_path; +} + function ua_has($str){ if(!isset($_SERVER['HTTP_USER_AGENT'])){ return false; diff --git a/app/kod/KodArchive.class.php b/app/kod/KodArchive.class.php index fbeafb1..3b2e0c4 100755 --- a/app/kod/KodArchive.class.php +++ b/app/kod/KodArchive.class.php @@ -10,6 +10,7 @@ define('ARCHIVE_LIB',dirname(__FILE__).'/archiveLib/'); define('PCLZIP_TEMPORARY_DIR',TEMP_PATH); define('PCLTAR_TEMPORARY_DIR',TEMP_PATH); +define('PCLZIP_SEPARATOR',';@@@,');//压缩多个文件,组成字符串分割 mk_dir(TEMP_PATH); require ARCHIVE_LIB.'pclerror.lib.php'; diff --git a/app/update.php b/app/update.php index cf18912..0469edf 100755 --- a/app/update.php +++ b/app/update.php @@ -80,9 +80,22 @@ function updateClear(){ del_dir(THE_DATA_PATH.'session'); mk_dir(THE_DATA_PATH.'session'); mk_dir(THE_DATA_PATH.'temp/thumb'); - + updateApps(); updateSystemSetting(); + check_version_ok(); + @del_file(BASIC_PATH.'app/controller/util.php'); + @del_file(BASIC_PATH.'README.md'); +} +function check_version_ok(){ + //检查是否更新失效 + $content = file_get_contents(BASIC_PATH.'config/version.php'); + $result = match($content,"'KOD_VERSION','(.*)'"); + if($result != KOD_VERSION){ + show_tips("您服务器开启了php缓存,文件更新尚未生效; + 请关闭缓存,或稍后1分钟刷新页面再试! + 了解详情"); + } } //APP更新覆盖 diff --git a/config/config.php b/config/config.php index 168f53b..2666bce 100755 --- a/config/config.php +++ b/config/config.php @@ -65,6 +65,8 @@ include(FUNCTION_DIR.'web.function.php'); include(FUNCTION_DIR.'file.function.php'); include(FUNCTION_DIR.'helper.function.php'); include(CLASS_DIR.'I18n.class.php'); +include(BASIC_PATH.'config/version.php'); +check_cache(); $config['appStartTime'] = mtime(); $config['appCharset'] = 'utf-8';//该程序整体统一编码 @@ -92,17 +94,12 @@ if(isset($_COOKIE['APP_HOST'])){ define('APP_HOST',$_COOKIE['APP_HOST']); } } -function webroot_path(){ - $file = str_replace('\\','/',__FILE__); - return str_replace('config/config.php','',$file); -} if(!defined('HOST')){ define('HOST',rtrim(get_host(),'/').'/');} -if(!defined('WEB_ROOT')){ define('WEB_ROOT',webroot_path() );} +if(!defined('WEB_ROOT')){ define('WEB_ROOT',webroot_path(BASIC_PATH) );} if(!defined('APP_HOST')){ define('APP_HOST',HOST.str_replace(WEB_ROOT,'',BASIC_PATH));} //程序根目录 define('PLUGIN_HOST',APP_HOST.str_replace(BASIC_PATH,'',PLUGIN_DIR));//插件目录 -include(CONTROLLER_DIR.'util.php'); -include(BASIC_PATH.'config/version.php'); +include(CONTROLLER_DIR.'utils.php'); include(BASIC_PATH.'config/setting.php'); if(file_exists(CONTROLLER_DIR.'debug.class.php')){ include_once(CONTROLLER_DIR.'debug.class.php'); diff --git a/config/i18n/vi/main.php b/config/i18n/vi/main.php index 6d5577b..f0ddc70 100755 --- a/config/i18n/vi/main.php +++ b/config/i18n/vi/main.php @@ -120,7 +120,7 @@ return array( "role_type_name_read" => "đọc", "role_type_name_read:list" => "Danh sách tập tin", "role_type_name_read:info" => "Tệp (thư mục) Bất động sản Xem, tìm kiếm thư mục", - "role_type_name_read:copy" => "file copy", + "role_type_name_read:copy" => "Sao chép tập tin", "role_type_name_read:preview" => "xem trước tập tin (hình ảnh, văn bản, âm thanh và video)", "role_type_name_read:download" => "Tệp (thư mục) Tải về", "role_type_name_write" => "viết", @@ -141,7 +141,7 @@ return array( "upload_setting" => "thiết lập", "upload_tips" => "Sử dụng miếng tải lên, không còn bị giới hạn php.ini; đề nghị kéo thư mục chrome và kinh nghiệm tải lên thả", "upload_exist" => "Tập tin cùng tên", - "upload_exist_rename" => "đổi tên", + "upload_exist_rename" => "Đổi tên", "upload_exist_replace" => "che", "upload_exist_skip" => "nhảy", "upload_add_more" => "thêm hàng loạt", @@ -389,10 +389,10 @@ return array( "sort_type" => "Sắp xếp theo", "time_type" => "Y/m/d H:i:s", "time_type_info" => "Y/m/d H:i:s", - "public_path" => "thư mục công cộng", - "system_path_not_change" => "thư mục hệ thống, không thể được sửa đổi", - "file" => "hồ sơ", - "folder" => "thư mục", + "public_path" => "Thư mục chia sẻ", + "system_path_not_change" => "Thư mục hệ thống, không thể được sửa đổi", + "file" => "Tập tin", + "folder" => "Thư mục", "copy" => "Sao chép", "past" => "Dán", "clone" => "Tạo một bản sao", @@ -411,7 +411,7 @@ return array( "order_type" => "Sắp xếp theo", "order_desc" => "Giảm dần", "order_asc" => "Tăng dần", - "rename" => "đổi tên", + "rename" => "Đổi tên", "add_to_fav" => "Thêm vào yêu thích", "search_in_path" => "Tìm kiếm thư mục", "add_to_play" => "Thêm vào Playlist", @@ -485,7 +485,7 @@ return array( "history_next" => "phía trước", "history_back" => "Retreat", "address_in_edit" => "Click để vào chế độ chỉnh sửa", - "double_click_rename" => "Nhấp đúp vào đổi tên", + "double_click_rename" => "Nhấp đúp vào để sửa", "double_click_open" => "Double-click để mở", "path_null" => "Thư mục rỗng!", "file_size_title" => "Biểu tượng Kích", @@ -535,7 +535,7 @@ return array( "file_type" => "file Type", "goto" => "Chuyển đến", "server_dwonload_desc" => "Nhiệm vụ đã được thêm vào danh sách tải về", - "parent_permission" => "thư mục cho phép cha mẹ", + "parent_permission" => "Thư mục cho phép cha mẹ", "root_path" => "Tài liệu của tôi", "lib" => "nhà kho", "fav" => "Bookmark", @@ -610,24 +610,24 @@ return array( "group_role_member" => "Quản lý người dùng", "group_role_mkfile" => "tập tin mới", "group_role_mkdir" => "New Folder", - "group_role_pathrname" => "đổi tên", + "group_role_pathrname" => "Đổi đường dẫn", "group_role_pathdelete" => "xóa tập tin", "group_role_pathinfo" => "tập tin thuộc tính", "group_role_pathmove" => "Di chuyển (copy / cắt / dán / kéo hoạt động)", - "group_role_zip" => "nén", - "group_role_unzip" => "không mở", - "group_role_search" => "tìm kiếm", + "group_role_zip" => "Nén", + "group_role_unzip" => "Giải nén", + "group_role_search" => "Tìm kiếm", "group_role_filesave" => "Lưu các tập tin để chỉnh sửa", "group_role_can_upload" => "Tải lên và tải xuống", - "group_role_download" => "từ xa Tải về", - "group_role_passowrd" => "thay đổi mật khẩu", - "group_role_config" => "cấu hình dữ liệu", - "group_role_fav" => "hoạt động Bookmark (thêm / sửa / xóa)", + "group_role_download" => "Tải về trên Server", + "group_role_passowrd" => "Thay đổi mật khẩu", + "group_role_config" => "Dữ liệu người dùng", + "group_role_fav" => "Đánh dấu(thêm / sửa / xóa)", "action_list" => "Xem danh sách", - "action_add" => "thêm vào", - "action_edit" => "chỉnh sửa", - "action_del" => "xóa bỏ", - "group_role_ext_warning" => "Tải lên không cho phép các tập tin đó,
Đổi tên (đổi tên phần mở rộng được xác định),
sửa lưu, từ xa tải về, giải nén", + "action_add" => "Thêm", + "action_edit" => "Sửa", + "action_del" => "Xóa", + "group_role_ext_warning" => "Tải lên không cho phép các tập tin đó,
Đổi tên (Đổi tên phần mở rộng được xác định),
sửa lưu, từ xa tải về, giải nén", "group_tips" => "
  • 1. Tên nhóm người dùng không thể trùng lặp Sau khi tên nhóm được sửa đổi, nó thuộc về người dùng được tổ chức lại và được tự động liên kết.
  • 2. Mở rộng giới hạn mối quan hệ giữa bảo mật hệ thống, hãy thận trọng (nếu bạn tạo một php mới trong thư mục web, có nghĩa là thay đổi quyền của chương trình cho người dùng này hầu như không thể)
  • 3. Quản lý hộ gia đình, quản lý nhóm quyền, xem các quyền và bổ sung, xóa bỏ và xóa quyền bị ràng buộc, các chương trình được tự động liên kết
  • 4. Sau khi nhóm phép được thiết lập để thêm nhóm cho phép, sự cho phép tiếp theo không phải là kế thừa (quyền này tương đương với quyền cao nhất).
  • ", "not_null" => "Các trường bắt buộc không thể để trống!", "picture_can_not_null" => "Hình ảnh không thể để trống!", @@ -636,62 +636,62 @@ return array( "remove_success" => "Xóa thành công!", "remove_fali" => "Xóa không thành công!", "clipboard_null" => "Clipboard là trống rỗng!", - "create_success" => "thành công mới!", - "create_error" => "New thất bại, kiểm tra các thư mục cho phép!", - "copy_success" => "[Copy] - bao gồm thành công vào clipboard!", - "cute_success" => "[Cut] - bao gồm thành công vào clipboard!", - "clipboard_state" => "tình trạng Clipboard:", + "create_success" => "Tạo thành công !", + "create_error" => "Tạo thất bại, kiểm tra phân quyền thư mục!", + "copy_success" => "[Sao chép] - đã lưu vàp clipboard!", + "cute_success" => "[Cắt] - đã lưu vào clipboard!", + "clipboard_state" => "Tình trạng Clipboard:", "no_permission_write_all" => "Các tập tin hoặc thư mục không cho phép ghi", "no_permission_write_file" => "Các file không có quyền ghi", "no_permission_read_all" => "Các tập tin hoặc thư mục không có sự cho phép đọc", "copy_not_exists" => "Nguồn không tồn tại", - "current_has_parent" => "thư mục đích là một thư mục con của thư mục nguồn!", + "current_has_parent" => "Thư mục đích là một thư mục con của thư mục nguồn!", "past_success" => "dán hoạt động được hoàn", "cute_past_success" => "hoạt động cắt xong(tập tin nguồn bị xóa, clipboard trống)", - "zip_success" => "nén hoàn thành", - "not_zip" => "không lưu trữ", + "zip_success" => "Nén thành công", + "not_zip" => "Nén lỗi", "zip_null" => "Không chọn tập tin hoặc thư mục", - "unzip_success" => "Giải nén hoàn chỉnh", + "unzip_success" => "Giải nén xong", "gotoline" => "Nhảy vào dòng", "path_is_current" => "Các con đường và con đường hiện tại để mở cùng!", "path_exists" => "Các tên đã tồn tại!", - "undo" => "Thu hồi", - "redo" => "chống thu hồi", + "undo" => "Hoàn tác", + "redo" => "Làm lại", "preview" => "Xem trước", - "wordwrap" => "bọc", + "wordwrap" => "Bọc", "show_gutter" => "Hiện số dòng", "char_all_display" => "Hiện các nhân vật vô hình", - "auto_complete" => "tự động nhắc nhở", + "auto_complete" => "Tự động hoàn thành", "auto_save" => "Tự động lưu", "function_list" => "Danh sách chức năng", - "code_theme" => "mã hóa phong cách", - "font_size" => "cỡ chữ", + "code_theme" => "Code Style", + "font_size" => "Cỡ chữ", "confirm" => "Bạn có chắc chắn muốn làm việc này không?", - "button_ok" => "xác định", - "button_submit" => "đệ trình", - "button_set" => "thiết lập", - "button_cancel" => "bị hủy bỏ", - "button_edit" => "chỉnh sửa", + "button_ok" => "Xác nhận", + "button_submit" => "Xác nhận", + "button_set" => "Thiết lập", + "button_cancel" => "Hủy", + "button_edit" => "Sửa", "button_save" => "Lưu", "button_apply" => "Áp dụng", "button_save_all" => "Lưu tất cả", "button_not_save" => "Không lưu", - "button_add" => "thêm vào", - "button_back_add" => "Trở lại thêm", - "button_del" => "xóa bỏ", - "button_save_edit" => "lưu các thay đổi", - "button_save_submit" => "lưu Gửi", - "button_more" => "hơn", + "button_add" => "Thêm", + "button_back_add" => "Thêm lại", + "button_del" => "Xóa", + "button_save_edit" => "Lưu các thay đổi", + "button_save_submit" => "Lưu và Gửi", + "button_more" => "Thêm", "button_select_all" => "Chọn tất cả / Invert Selection", "charset_AUTO" => "Nhận dạng tự động", "charset_UTF_8" => "Unicode", "charset_UTF_16" => "Unicode", "charset_CP1256" => "Ả rập", "charset_ISO_8859_6" => "Ả rập", - "charset_ISO_8859_10" => "ngôn ngữ Bắc Âu", - "charset_CP1257" => "ngôn ngữ Baltic", - "charset_ISO_8859_13" => "ngôn ngữ Baltic", - "charset_ISO_8859_4" => "ngôn ngữ Baltic", + "charset_ISO_8859_10" => "Tiếng Bắc Âu", + "charset_CP1257" => "Tiếng Baltic", + "charset_ISO_8859_13" => "Tiếng Baltic", + "charset_ISO_8859_4" => "Tiếng Baltic", "charset_BIG5_HKSCS" => "繁体-香港", "charset_BIG5" => "繁体-台湾", "charset_Georgian_Academy" => "Gruzia", @@ -707,7 +707,7 @@ return array( "charset_EUC_JP" => "Nhật Bản", "charset_ISO_2022_JP" => "Nhật Bản", "charset_SHIFT_JIS" => "Nhật Bản", - "charset_KOI8_T" => "ngôn ngữ Tajik", + "charset_KOI8_T" => "Tiếng Tajik", "charset_ISO_8859_11" => "Thái", "charset_TIS_620" => "Thái", "charset_CP1254" => "Thổ Nhĩ Kỳ", @@ -715,67 +715,67 @@ return array( "charset_ISO_8859_5" => "Cyrillic", "charset_KOI8_R" => "Cyrillic", "charset_KOI8_U" => "Cyrillic", - "charset_CP1252" => "ngôn ngữ Tây Âu", - "charset_ISO_8859_1" => "ngôn ngữ Tây Âu", - "charset_ISO_8859_15" => "ngôn ngữ Tây Âu", - "charset_Macintosh" => "ngôn ngữ Tây Âu", + "charset_CP1252" => "Tiếng Tây Âu", + "charset_ISO_8859_1" => "Tiếng Tây Âu", + "charset_ISO_8859_15" => "Tiếng Tây Âu", + "charset_Macintosh" => "Tiếng Tây Âu", "charset_CP1255" => "Hebrew", "charset_ISO_8859_8" => "Hebrew", "charset_CP1253" => "Hy Lạp", "charset_ISO_8859_7" => "Hy Lạp", "charset_ARMSCII_8" => "Armenia", - "charset_CP1258" => "tiếng việt", - "charset_VISCII" => "tiếng việt", - "charset_CP1250" => "ngôn ngữ Trung ương châu Âu", - "charset_ISO_8859_2" => "ngôn ngữ Trung ương châu Âu", - "charset_default_set" => "tập tin Encoding", + "charset_CP1258" => "Tiếng việt", + "charset_VISCII" => "Tiếng việt", + "charset_CP1250" => "Tiếng khu vực trung tâm châu Âu", + "charset_ISO_8859_2" => "Tiếng khu vực trung tâm châu Âu", + "charset_default_set" => "Định dạng ký tự", "charset_convert_save" => "Lưu tập tin được mã hóa như", - "PluginCenter" => "trung tâm cắm", + "PluginCenter" => "Plugin Center", "PluginBuy" => "Ủy quyền mua", "PluginInstalled" => "Đã được cài đặt", - "PluginUpdate" => "cập nhật", + "PluginUpdate" => "Cập nhật", "PluginListNull" => "Không có nội dung!", - "PluginType" => "phân loại", - "PluginTypeAll" => "hoàn toàn", - "PluginTypeFile" => "tập tin được tăng cường", + "PluginType" => "Phân loại", + "PluginTypeAll" => "Tất cả", + "PluginTypeFile" => "Tập tin tăng cường", "PluginTypeSafe" => "Công cụ bảo mật", - "PluginTypeTools" => "hữu dụng", + "PluginTypeTools" => "Tiện ích", "PluginTypeMedia" => "Multimedia", - "PluginTypeOthers" => "khác", + "PluginTypeOthers" => "Khấc", "PluginInstall" => "cài đặt plug", "PluginEnable" => "Enable plug-ins", "PluginDisable" => "Vô hiệu hóa", "PluginRemove" => "Gỡ bỏ cài đặt các plug", "PluginConfig" => "Cấu hình các plugin", - "PluginStatus" => "trạng thái", + "PluginStatus" => "Trạng thái", "PluginStatusEnabled" => "Bật", "PluginStatusDisabled" => "không được kích hoạt", "PluginStatusNotInstall" => "không cài đặt", "PluginInstalling" => "Lắp đặt ...", - "PluginHasUpdate" => "cập nhật", + "PluginHasUpdate" => "Cập nhật", "PluginUpdateStart" => "Cập nhật plug-in", "PluginNeedConfig" => "Sự cần thiết phải cho phép cấu hình ban đầu", "PluginConfigNotNull" => "Các trường bắt buộc không thể để trống!", - "PluginOpen" => "mở", - "PluginAuther" => "tác giả", - "PluginVersion" => "edition", - "PluginDownloadNumber" => "cài đặt", - "PluginBack" => "trả lại", - "PluginReadme" => "miêu tả", + "PluginOpen" => "Mở", + "PluginAuther" => "Tác giả", + "PluginVersion" => "Phiên bản", + "PluginDownloadNumber" => "Số lần cài đặt", + "PluginBack" => "Trả lại", + "PluginReadme" => "Mô tả", "PluginResetConfig" => "Khôi phục cài đặt mặc định", "PluginInstallSelf" => "Cài đặt thủ công", "Plugin.config.auth" => "Quyền", "Plugin.config.authDesc" => "Tất cả các thiết lập có sẵn, hoặc chỉ định người dùng, nhóm người dùng, các nhóm nhân quyền có thể sử dụng", "Plugin.config.authOpen" => "Mở truy cập", "Plugin.config.authOpenDesc" => "Không cần truy cập có thể được truy cập, có thể được sử dụng cho các cuộc gọi giao diện bên ngoài", - "Plugin.config.authAll" => "người nắm", - "Plugin.config.authUser" => "người sử dụng", + "Plugin.config.authAll" => "Tất cả", + "Plugin.config.authUser" => "Người dùng", "Plugin.config.authGroup" => "Bộ phận chỉ định", - "Plugin.config.authRole" => "nhóm quyền", - "Plugin.Config.openWith" => "mở phong cách", - "Plugin.Config.openWithDilog" => "thoại nội bộ", + "Plugin.config.authRole" => "Nhóm quyền", + "Plugin.Config.openWith" => "Mở với ứng dụng", + "Plugin.Config.openWithDilog" => "Cửa sổ nội bộ", "Plugin.Config.openWithWindow" => "Trang mới mở ra", - "Plugin.Config.fileSort" => "ưu tiên mở rộng liên kết", + "Plugin.Config.fileSort" => "Phần mở rộng ưu tiên", "Plugin.Config.fileSortDesc" => "Các phần mở rộng để mở ưu tiên cao hơn lớn hơn", "Plugin.Config.fileExt" => "Định dạng tệp được hỗ trợ", "Plugin.Config.fileExtDesc" => "Liên quan đến mở rộng đến các plug-in", @@ -785,14 +785,14 @@ return array( "Plugin.default.aceEditor" => "Ace Biên tập viên", "Plugin.default.htmlView" => "Web Page Preview", "Plugin.default.picasa" => "duyệt hình ảnh Picasa", - "Plugin.default.zipView" => "Archive Preview", + "Plugin.default.zipView" => "Xem trước nội dung file nén", "Plugin.default.jPlayer" => "máy nghe nhạc jPlayer", "Plugin.auth.viewList" => "Danh sách trình cắm", "Plugin.auth.setting" => "Cài đặt plugin", "Plugin.auth.status" => "Tắt", "Plugin.auth.install" => "Cài đặt / gỡ cài đặt", "Explorer.UI.openWith" => "chọn mở", - "Explorer.UI.openWithText" => "Notepad để mở", + "Explorer.UI.openWithText" => "Mở Notepad", "Explorer.UI.appSetDefault" => "Đặt mở mặc định", "Explorer.UI.appAwaysOpen" => "Luôn luôn sử dụng chương trình được lựa chọn để mở tập tin này", "Explorer.UI.selectAppDesc" => "Chọn chương trình bạn muốn mở tập tin này", diff --git a/config/setting.php b/config/setting.php index 8e22ad0..ed88d49 100755 --- a/config/setting.php +++ b/config/setting.php @@ -12,7 +12,7 @@ $config['settings'] = array( 'apiLoginTonken' => '', //设定则认为开启服务端api通信登陆,同时作为加密密匙 'updloadChunkSize' => 1024*1024*0.4,//0.4M;分片上传大小设定;需要小于php.ini上传限制的大小 'updloadThreads' => 10, //上传并发数;部分低配服务器上传失败则将此设置为1 - 'updloadBindary' => 1, //以二进制方式上传;后端服务器以php://input接收;0则为传统方式上传 + 'updloadBindary' => 0, //1:以二进制方式上传;后端服务器以php://input接收;0则为传统方式上传 'paramRewrite' => false, //开启url 去除? 直接跟参数 'httpSendFile' => false, //调用webserver下载 http://www.laruence.com/2012/05/02/2613.html; //https://www.lovelucy.info/x-sendfile-in-nginx.html diff --git a/config/version.php b/config/version.php index a66d83f..746bcfe 100755 --- a/config/version.php +++ b/config/version.php @@ -1,2 +1,2 @@ div{padding-left:10px;} \ No newline at end of file diff --git a/plugins/adminer/adminer/index.php b/plugins/adminer/adminer/index.php index 9883ced..6f22a33 100755 --- a/plugins/adminer/adminer/index.php +++ b/plugins/adminer/adminer/index.php @@ -3,11 +3,10 @@ * @link https://www.adminer.org/ * @author Jakub Vrana, https://www.vrana.cz/ * @copyright 2007 Jakub Vrana -* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 -* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other) -* @version 4.3.1 +* @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 +* @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other) +* @version 4.6.3 */ - @ignore_user_abort(true); @set_time_limit(3600*2);//set_time_limit(0) 1day @ini_set('memory_limit','2028M');//2G; @@ -20,455 +19,478 @@ class AdminerSoftware extends Adminer { } function adminer_object() {return new AdminerSoftware;} - - - -error_reporting(6135);$Lc=!preg_match('~^(unsafe_raw)?$~',ini_get("filter.default"));if($Lc||ini_get("filter.default_flags")){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$X){$Wh=filter_input_array(constant("INPUT$X"),FILTER_UNSAFE_RAW);if($Wh)$$X=$Wh;}}if(function_exists("mb_internal_encoding"))mb_internal_encoding("8bit");if(isset($_GET["file"])){if($_SERVER["HTTP_IF_MODIFIED_SINCE"]){header("HTTP/1.1 304 Not Modified");exit;}header("Expires: ".gmdate("D, d M Y H:i:s",time()+365*24*60*60)." GMT");header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");header("Cache-Control: immutable");if($_GET["file"]=="favicon.ico"){header("Content-Type: image/x-icon");echo -lzw_decompress("\0\0\0` \0\0\n @\0C\"\0`EQ?tvM'Jdd\\b0\0\"fӈs5AXPaJ08#RTz`#.cXȀ?-\0Im?.M\0ȯ(̉/(%\0");}elseif($_GET["file"]=="default.css"){header("Content-Type: text/css; charset=utf-8");echo -lzw_decompress("\n1ٌ̇l7B14vb0fsn2Bѱ٘n:#(b.\rDc)a7El ñi1̎s-4f i7 Févt2! r0t~U'3MWB'cP:6T\rcAzr_WK\r-VNFS%~c&\\^ruŎÞً4'7kQh'g\rFB\ryT7SSP1=ǤcI:dm>S8LJt.M ϋ`'C889 Q2#8А6mjh<9/:J)ʂ\0d>!\0Zvno(k7s> !R\"*nS\0@P\"(#[@g ozn9k8n1I* =n0c(;à!*c>ΎE7DLJ1J=1L?s=#`3\$4uȱzGC YAt?;Qk&YPuǯ}UaHV%G;slڴIH3xw0t6%MR%jhB<\0AQ-ʈ QH\nvL+væ<\rv\\*Ӵݢgn˩ TЩ2P\rߋ\"+z8:#2J[i;zr3 #ى:n\r㽃epdݍ 2c4k\rGE6_=SZUǷ㌞O?þ27cАhnƋu3E>\$J[q[\rI6.J\"EPrG̊GAW\r6k`.-B2>#hXu\r=Z bŁ(╃!JZȔuyOZM6lM[0䖀!Imy+p#agvW:qp\"4he0dAq-\" \"2 @)o,,Rb`@B@Q\n芷Z™=(r~l~hsAll\n7!1 !#\0KALH(!ʘagH\0T\ni/\$4GaI!.Ř5M\r2 ;,LIJd?%Ո:N@b.25t: FAwBE,-\$':өu?tK;ḱи\0ouMD)k_Ph5MC}72w.QB8)8(DI=y`ed\0s,`ɕjH\"(b\\nl\"ق^쀭eE\nX!SqX\r7A0y7pPaA4(yJwm2.󉆬fp;Ƅ5JcqQz\\\0[H  3f'bFY\nA9_I(fӝqV4RIY&JF}{FTh9[7h\0 T^jqjՔcWI@`_sVD[\"{13 <ll.[#įbu/\03va嫑Dp>2 IDW՚kKAhH]FW!]ʝltɕR̭4L[YC cTjN}~OҙBlj/KHdch-˾/ȶhԞ0ЌЋH8j6\n+d l7\r څ0N7eZ0`mnp\0\0}@[i0 ~4P\nАbЯ0p P4@ P I\0``f\r```Yz P\r p y Hq@  Qq ` biUС @`) )Zpj(--l1Q%pY\n1}\\*h{C0#H0TqA b=…f- q iAs'QZ\rRc'`q YQ1ҝ2!r\"Q1 Q!qr\0BDw\0q\$S\"]q@`豲@,\"r\")&&\ntbm02)Qw\n p(0*Ҏq\n&i\n \"p1C\".1y.q^ 2\0.Q0r)/\0ڔ!/.S+1R/3:5Ɲ11\nB43 4G#〜`Sa ra6es7q,搩j3q4)\$ @*-9\n\"0',hS}\"3ss917S-=1g4 .4LD;@2!A@Br-/+016S#)\"Ži@`P;.\n<)ԱV\nl8K#gkd|8l.lf.?A@\rÆ.\$J2tN#RrAEEeFFӦg8*");}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript; charset=utf-8");echo -lzw_decompress("f:gCI\n0S a9S`&(n0QIf\$At^ sGtf6ey()LSP'R'fq]\"s> )`H2Eq9?*)t'ϧ\n \rs2WŅbDj:9[21cȝ:X@q#4L'J+DHe3.OK˰pVt2wp; Ɠ\r?OzDq.-\"ZcX3!/>PFsɲ0(ʣT63sVQoSΑb߅^r\$@C r2) V)+nܷzl{K#9{ۯlmQh*ɗP:c]7=Li;2<\\Jbnn_iӴJ\nC:`N4̖'Aw:4}ۣW\080L3J;i)\\=/Nu=ZV6&ceap.[vtPZX`֔+z'9.\$\$@\n\r]_ٮhkkMs>`̖j%\\9ж(' j A>BCd\"K\$ CA .².`.E洖yy\0D28t 68 FLB*,|\nx\\@@3r WKQb,%DBfȳD|͌E0/2>Y!Ć'`fmH<BB0\r*\0Gx n Y4,L%S,v0 XQ1HId`!.V H/×H0U0™`LI8k24JYN&8xJk:AK㝡nW!I;' \":24~J8ᒑG\"M=\rZ'ni9FrRt 3\0Ҳ2yB^b'zɲ(#d9It&WjNaC( jĖ?hjքZ\$0үJ A_\n!TO4<{a?o -?Hl\"2y=먞Rф͊P&G4%()\r5MLT\0xBI=ltv2Jhv~/:p:8\"д50#*7\nq>G\$ ): \"#KfI!v+?{Qg{RQC}#iIbgX}`}3%@{_k}0ȗp!a<7e F?XD, CkUL>1܇p0#\$V)pYs5A:U(95,F+&*{-::7:ʙyPX+\nI;\\sP1 rNJAT'-k?Y@fb񎒔RJimB~K\rKt4;OKc9% H5d3e8jP[s9,ĘbzKW&ed8)uP> # P&P pbaͨy\$3}{hy(dW_:'A؂PI\"![`n8i/@P fЎ冩V sC8 NyhtEnAj.-6qwJ ?ùAhu sAO7j\n ] 0^ \nY \$Ζ_\r\$u*ޡEx/dpdRd:IoDsQfI8,KIsM@aq\n/MRC-aa/H!4FIpŔMϫ_؇H9{.\$W#{Ү:S('lMY:lʞmD\$\0\0'~ Z@ VL\"jn5NlKfj&M OdbӰNO\$i)N (!P)0+6HpNFЖ?L\n-h0,.e\"6m# o&gZ@Pk&̺_%\\\\'\0]\$(5N fq|p ` k@a\r_\"b6] ED Q^)ș @PsITr vT\0VRW@ iR2/b,Xr j^0kClfl'8EoWImp룶/&+Xk.\\4 0dr\"kb\nH\$ТKCoOo G%\rύl  ]P7\"* hP P\rc_X[` 7:`UߨIwd; x t8d \0 @jwv { b pcy\n, u< \"uyE:Z`<LF2cwSd%uwu߀#pqNNN\n#@E#\"@|d%kwc\"*x w\0uX.l&XeMB'@6Ch»`SwGӈC[V1\rb\"\n\0\n`J+a1\"lW}z]zjdO>!G\0[\\F| ^\0ZJ`b`#5`WE;(!``\"~EߒghVGr_ujQ*d'2g/-\nh^ da)וE:HhvE vsB9w\0MWNL 3-=#@%D!XL*V;1ǘMkX؁&r<[%Ue qWW#\$蝌lIVAW_GVF\"&f(odV1*wr0F\"HvT qhw*@s.0g81_z f A)+1u&b\nVoNj\nEĆC 3 G\0 ep <~B^ A%/9;v\\[Hl ^UӞh.\\Y}+ YtqƉ6\ns\0c:3*}7z\$d\\\" WY+Ie\0S9Dt[rךC֩b~馳Dw/lL`~ UV_\0\rw)b Ʀ8G% WU Av(HFgXcn92n12l\r?\"t\0XPsYmfF?mx5}H_XcyκC.\$`kd5.rx>Ǣ7sn3<gO(\\@W:Pσ{_FhgL Ӡ><6~'K0?@EA_ 8 H.LG< d YokF< p(j\$9?V P?)ؤDuLbj} \0Kp7ZsԀD)\r:JQ֓} \$bAu)\"XM%pQPQ\$@\\\0V7TMX*#)G\\KM0= J&`\"x _ bB`C?/ŪBUu83NR_ ]NTܿDwI\n2 D:Y q1`BF!]W5,:1(0tQF  p7'!\"@80`7\rhC\nXӡ\rAC m Q&l&|cLd\"#\"PK56Hʄbʗ&+#fV/Sh(Tdu <=xd8:m !68,JP~RPDZuO`0XAwأ0eh^C\$ 8AP(#+KN4%\nB> 2%{0Ƌ0ϟ/z P ʚ @gDzDԊY॓4,%l 3WULr[9HgT`@7\rN O+D>I(bL}\$Dž IXBҞ(4!h!E \"w\"0qJ\0UPF\0o_\0cЄ\ng\0T}\0#/tXJBKK/@\0y PIvA1i pm@؄y 93HY2!`/̹%.fKx:XO.}L[G&eIaKb琔%OB8l҈>(M CA;oK+%yĀ%|\"#hGD\$ fBMdC\\ֱLT(q\0.P\n ZUjg[#P@ǔr8myMQ6\$sDָ`!8:4ф,ap'FE28MmD2@.U]!5I_\n'(iuPKp9@LH)XPWv\rD']!0B#R:D.\nX8H\rs^0˿+9Sb0\nB7at y< |&#g@5qDȂ\0/ A⿧\"&1fF|g5\\rrIJ'2PJs鍞li\nRyCa9ߔNp\"'H7͈3MTRdBRp|z:1Ph)(h[BPƈҞ^\0\$:6KB(Ҙ\$\rx[BGH 6cn8 \\ \nYi\rd\nU߄\$;.ˇ*_\n=Qy\n< 9OxF}\rF%M4\"0\0f(d3a\0p0`H꤉Dպd3YICx+?Yi ?1 flCFP[BS@!Ln#su\"Z\0:r|t],7)1-4&Y` Z7p奦ʛ@ӽ -hN-֛ iJ0ҝ3Xj9*.T7I`@{`neQ@)`B\"h0+Z>K*YSjDRI 0\nji\r:>VeapU )G2trTw 5pf#um3f`8KI& Fmv\09tP1~\$A\0S5'Eyz5qW\$-_KEyҽq!@kTlʓ e'\\\\cgi_5\0zViB[]8\n+]:Ӱؓ\"'nW} Q.IXn|BŃ]kl9aSuʅv -ay`{b]L Se b|)Y:ncS9k7]5Y]ŝU CsBC|gЋt98Ոt6]l׷.mᩖ 8kU y^|y@*ތ1\$ *']f7H1y0}j!彡cV+5}d8U=ޱꯛzۘF@o3_fa)~`!iG]E&Bl΁Φ#}\0ȑ63\rTnk] \$;Qjn:ZZbZ&@g 3B\$g\nd5M/Ku{#]ssqfuQ3 Tvc\\Muk#eBQOD%Y<_6b !T.]>\0u=~pGV 6@'U0ˊ|7EQ\n\0W,7.ᣰ(%bà MU|-hS+9nAQ3 jD|6ͮgJrXnXN)|MpRc&\rMCyzk\"dCPG.?yi1JCl^\"9Y ~q18#0) _Blャ8eC,̄A]NCkki(p= ڕ Ѓ\0A\\m=ʙh 1iM[ ի_q%!rO}MG5%q.i^GfYi/dlLR0z2̷\r\\gF n tfi_e͢RD@KiXp];6o\"A%97F.ˣZuEks\$ycf[-s8P4\05afث@noZRڡH.ub5٢ȳKiDFݍ-Nfp?H!ꡈyjs\\e .]lpw^;\",h~Iȫ9,a:jF7Gg38?JbH+lW\0cֹWh SEs%Wc:X;-DF(֭64Ts3)Bj[fn:A@\$ն Z&sW KUؗO2hZvϻtҎtCVwJͩF^,p?L \$8Es|D4(q)'NWuG.` 7[B/]'z1ƉQEƒs:P<X5L\0}gX\nz¸=Y>yѬͳɖ9e{ikS3ͬ)[sCy-a=CK2K!Fe\rܡH#gYubTBC# =:˩\0o4u@]N`V8OU2xX?q^Ng ɋN8BlMTU)Dy\ru;cQ5ugA&\\yx6./]8 2PE>7u)Œ)3|M81w`\"zeR8 y+]9\0IJa1Wj>lu=,Uy8'4rt-_xWSMdPuu kaP=gHB\$\\\\5ēÙ+[+W GSB9pt drr!n^\r˖*튼E:v-/319r vBͽg`9o^\\J1 X\\#(sm؏L5\\SREODPlN\nP\\hBd#P\"9݈FSK9\"0f,9tg}zɪ&6M-F)uIIX_FppH\\#wNjb\"ml?\"\0DIIP P ݀V0\0DRep !γF!9A\"*BObb%bg'+K٣12SZV-m12Bt!=?\\o\02;\\ė\$]+4ٴ8owa'A&o8\n ]H[ZO i8c w\nf*j=yyco\nIyRL\"ݫ\0]Oe7/r`9Ingyh ! ێ?ˁNWw ƑهG_\\u#ma݂ZOY>'>u)0#SA.zpeB>[vi*vOX;Hf0R ");}elseif($_GET["file"]=="jush.js"){header("Content-Type: text/javascript; charset=utf-8");echo -lzw_decompress("v0F==FS _6MƳr:ECIo:CXc\r؄J(:=Ea28x?'iSANNxsNBVl0S Ul(D|҄P>E㩶yH ch-3Eb bpEp9.~\n?Kbiw|`d.x8EN!23\rYy6GFmY8o7\n\r0\0Dbc!Q7Шd8~N)Eг`Ns`S)O /<x9o3n2!r:;+9CȨ\n<`b\\?`4\r#`8\$c1cc{n7ANRLi\r1!( j´+62X8+.\r!xh' 6S\0RO\n1(W07q:NE:68n+մ5_(s\r /m6P@EQ9\nV-\".:J8weq|؇X]Y XezW 7Z1hQfuj4Z{p\\AUJ<k@ɍ@}&L7 UwuYh2@u P7Ah3 ÛXEͅZ]l@Mplv) HWy>Y-Y/hC[*F#~!`\r#0PC˝f \\^%B<\\fޱ&/OL\\jFjZ1\\:ƴ>NXaFAfh{\"s\n64?8^p\"띰ȸ\\e(PNq[gr&}PhW*r_sPh\nom#.\0@pdW \$ҺQ۽Tl0 HdH)ۏ )PHgUBe\rt:\0)\"t,[(DO\nR8!Ƭ֚lAV4hSq<@}gK]]=90'wA<a~WD|A2XU2yŊ=p)\0P sn3rf\0FvG I@%+_I` \r.NKI[ʖSJaUfSzM %\"Q|9Bcaq\08#Zle5#U@iUG‚n%Ұs;gxLpP?BQ\\b 龒Q=7:ݡQ\r:t:y( \nd)\nX;CaA\rPGH!@9\n\nAl~HV\nsիƯbBr3\rP% ф\r}b/Α\$5PC\"wB_UgAt夅^QUjBvh졄4) +)lj-&`9qPy6\r.y&ảE80kAVT7px)ޡ~M΁!EtP\\ϗm~cB\\\nmv{9`G[~xsL\\IXwy\nuSc1?A*{ Ϳ|9޾/E4/W[ȳ>] rv~B PB`TH>0B)>N!4\"xW-X)0BhA0J2P@>AA)SnnOQbrҦh@ȋ(\nF˜ϖƙ(γP\0No}lVԍp8%2>B m @G(s\$d̜v\"pw6}(V KˠKL ¾W q\r̤ʀQL%PdJHNxK:\n %fn%ҌDM [#T\rr.LL&W/>h6 @E LPvC6O:Yh^ mn6nj>7`z `N\\j\rg\ri2I\$\"@[`hM3q3d \0ֵys\$ `D\$\0QOf1&\"~0 ` \"@ZG) Y:SD.S%͈3 dmU5 .p2Q3VذWBDt Cq#C@IPDT_D:Qf-WX\rpUDt&7@? }O122#UK*)긋0o<>]HƿrLGNW%M^9X:ɥNsE@xy(HƙMd5<52B k!>\r^J`ISN4'ƚ**`>`|0,DJFxb 4lTؕ[[\\Ԡ\\{6\\ޖ (#mJԣ,`IJխl jj֟?֣kGkT9]3ohuJW\rk)\03@x,- 5B=࣐#gf&Z`#o Xf\r Jh5rqnz s,6otDybhCtn9n`X&\r'tpL7Η&lZ-w{ r@iUzM{rxאmSB\r@ H*BD.7(3XCV ʘɆ:6;ZX0 ̢#cMyUi2,qF˚bJ @gG|4gmzW )r|X`Scէ˙c!B/}{4J\0Ýn Kuz @mѮ߭y͞y\")uY睘scy둶y7||{Ϙ*)4Y`ϵ[v^NXW7;_*x\r߼߉xm+m \$\nl);|٠ڙ:N:_8NU5;p+UL \\9 O:IzQT)XGJ{w8ʼnU\$PxTYpjhJÀJ{@ǂZsh˘X\0ۖlӖθY}^@u2S#U;È|P\\#|<\\J۝,\\̚E]Wl,ɖ<Ό>Yn),ΙrԼ⍺] \$qDJ=XI-ŀallõ]\\w(iC׃tkRu\\+>)3PP6M%pԌ A3qmu2fzۯ4s `ێ-kS%6\"IT5~\"Ut_ TuvֽYw0I7L\$1M?e@3q{,\"&ViI?mUWR\"uiTuqj\"G(-By5c? wT`eiJtbgU3@~+\0MG7`\0_- ?\rV?FO6`\noϚIn*pe\"T{[Гp^\nlh@l0[/p oJKX<=9{Ǿ6!OQx{ZVFԎ`~IߖL)Q[TMT*BC~ \ngÈŅp9zKwzO9di^'+Dz4gHALy\nr/%|ȅ̒ގ\$)1P30(\r+\nZ z))\0*\0k2υ(E86stf& +;76&K_(9f,@-4l\$ۂe7\0:lLM7.\0 |oJ۩Zu̺'y{H,#\0vU@9! '&G@_-ٿt;:uDPUцjH 9FBcCiBwMtx PM?p=8lg~ta%]b\$\rra,6tW)\0UF |쓢vhQ*Ol.C\$\\ցRR[j[] KRJ>.;F=Rڌ<rM=Ԓh^Y\\Rmn Nn*gB5^Q҉@OxHIT9)(&}A)P\\/_!́Hڑ\0B\$z4TYuJv\0ꏃ%@32\0Sm--Gi@Q%jY+FuzlSW3ŷOrU\$E;M\\Աu/jeQ,#JXPZfSفfWJ V\$EukKP[\r\n_q}L}eMm u4V݇RZ܈\r k\r]a)`XBv02ۑ^;t=\"kaYB8J_k)f;FU`GWNw,\r q)\n( eR53\\NW®EؚS5B;W4J %]5Apm ܂߁\$.-K!sCEt+D;7 ON˲cjOPKFO\0(|k *YD5;s@6@QU\"\rb?XJvnAHoPS\$T pbj1+f3&@ʀQw8@ ;\\㬈ĉNxb#Y`:kB8NoS(#Uݩ(Y;:eĹkn eXZMi&\r^d\"W\r~[aV' (#Y\0}`W. u|4V*W޲l:mn\\ \re/ikm֚UE0#j [pD/^hfWςL\r_ᬹ-TX[*qn\n2*ǖJ\"YvQT2I߷=DG KXK\"E)\nYm4!}K_ D@wm( \$@\$Aj+\\4ZİvdSmX!ho!F0lUz8Xn#\\͈_\"˘` HB]3\"z0)7\\w.fy޻(  p0\0XS6+ *\\Q\r\"0dD c<6P3f VD~ 9b\\I,~\rxs\0aK8CE+Tl#׸V\0|>\$hG8XI@\nT\$9,Bt/u@s8B7syՙ,]Dy5neμ9)j^\n78Y<Uefu99\"^֍75ui'@h]L9^ס:D9̊0db칗6Ͷn7s\0_2z ٝ72NQ/3A: tH=D=y?i8SȢ]פgCIh~Pt F^u54;Fu\"+y?\0ֈ:ʘu\r<<w:*:j:-Ѓ8I \\u%J*wSԾc3;yK6HKmuiLT%N:NΑy\rbfuY= uE34ڭWN>m In x&Є' \0sok_Rz^{u}7zBF-diYYe 9kCHn'€ז5{_:?65\rg/`ZLӖtѱ -q飐|\"G\rmdsX\$xe^nPI *\0G6JQ/hV[l\n(Esqr %\0ȕtfw)qdY8H)<{a)E@@Ṡ zWP!g\0ux;Ȝ @8)|ĄJ.Һs{\n[Cվ\\⸢~`<g\0zΖ2ts\ro\\Ž\nmLnu-Il\0vy> Lw1;nel5`œ럋2@:Ld\0\$ÖU>]l\\)\$C\nQL B}{1׾ ;t#? {L%1O/vSMe Cכ\n˯L<#@b?tM2t*^(,;́7ؙ[y?x+3Aucg}3D-\$t\\g\n\$\n*:(QXd~02x%G=-:;CpoS}ITQO|#prZ\0ڐdu7H/6M0=G@ *#'ˑGGMؒ:\$4ľG0<ܙ&A (ŢbͶG\"y@Dž\\+縈>X@ĺ c3 <+ d(€?!+¼WQOzkAݏ3Q\n!e'9=痌YKөK\"ԦEvq/o^ 8DEG;8\"o7PdE݉\rܼ8{ED} (.ܚ\004\\=2?Hv~(ex=~#>SlAy S|2FA}l,Cl5b}ltUfW6AgW%:g%b*ߥĿ̦y8.fI-ne z}fQ};%}e0xBR:> `e[z}{>Ϸ}g_p UiUZʶV؝D<;Cb;ŕ E|O-~3wK\0tg!~csV}²p+M?WNc\rmL,l{e(r`a!'}(Y1U?toF!Ո h|T\$BopXhX\\~가iǀ,dXJ:pmЁAm!( h@:\0u0\"6,u0K69p>\"\0(>ey1xY\0xBnĀ#À7@@B* \03ѿNX+?6H:,?\n*#Ԙ!=f[;á |L]q[႖N\r%k P0'<6(DAOBnt/Zr뻏!1^ϡI/uC !k֚K`\n\\+<IO^gD#c\0Z pX8*p3>\nNA, ;cءb\">%P!IKTJķH[Ć&pR<f\\ Kۍ̐(V;\0ڂy쵄!)0x(Pz@jo\". @=98!A `\rab69\0E\nk%BH!P`\n ߀*d&oT3%Sh\0B) 6B`R!623p\0ۏ6B69|@.p @>(V @\0*a/ܲT#&([+0h,O\0 χr\rc9\0Cϙb\0Ț9e/.C9hC.1D C:p8\"OY0=ؕO 5]\$/2C/Χ\r 7Cf.`9;+&ǃ\nA L\0002KoK?p\nCн 1t(=6ҿc ša\0lVHjnVk΃\n暢> pY<;lT:1bމĖO\0}n\\\n@Bn>\$# \n!̈́&A8BU&kg)P\rdE@X O;˧zbHBp> LB*Dq>tD`6\0,Iq\$DPJ !XDEb=KrD\\Cě|DR\\J8n1/DkLO\$(\n\\H:a'DJQ7E9I;=k\\FFD  SnE<bE8%PENLj E\0006;ļ0V6 %HU\nZ/X \0Y*᳻|V̼1dJsO[&2Z1 * \n=u1mA#h)Q_sH*]/ O۠=_>b=!C23pkc^L\0\0Ȇ8*x6\"@ Eoܑf;f.\";6ʎYX3Řn;븑q3,X8^ ׃\\.\0C(O+%P#Π\n? A=eÑAO\\]΂ۥ=ԁ!c)J>B#D4doHA\0:nƟx` 뗡5P 4\0>\0F%X!;\\f42';dMscY@3@8w\$? \n`ÏBN@ >u@(\n4P)\0#? o(\n`)p[#\nCQ\$u@ :\0'\08Gn<45f[3hc(H,8}!lrM7(r\\|J\rFIv n?\0(`':4pa=Tq!x͌^F֬aT9B\rzX)^z|TG@\0hW 1\$JrJ+\$1G\$kEBS4Dt\0[ĔQ\$rX\\0 5%lIc 2WS% rZ1[%I\rd'bBGIDQHɥ\$R\0l% ­.3eԜqIa%2tR] I'L+R{ɍ'dtI\$ 4XJ+KxD < &P,Rl\0Na`Ga<%Ӂ_Pč%\0005(BF\"'Ic9BDA xB1pRKF`!.,ì,\$K#ԫr˝(Ժ\"K圩˟* (\$!Y1Y1}%/.RK(R628+I3\$[.x!E%D\"_K[.ܳ!_ʸD,.t K.HI\n2\r\"(@6\".e\0#Ї %Z~\nnoLJ|c',1KyY1s(&yf#Ƴ-%i-ʣ--|’L<0R8Y,LR0(0l @*d2(̥*g6Q2\0,/MqHA3\$7L`\"M\"΀6L3;|+\"4>7,\0\$K 4,γ/Q,kbn@J0OR:B\0L!))4aOH#E.\\ղM`lH5I\0:Mq4sGLsaX\"UR&Wq.\$g@6@#eKiMDd؁#K@5sO+7PS͒\0Ƽ=87TM-5TP2a6MD+Bt\\M\r2DHdԂ|#Ԍ͚27I> CL@ SF3\0#P:4IK I#J7C/M-4e?Na 3 J?]JjsDr- \"LLΟ9CΦ#Э, )/Ӟ:(\n!퓱N܏\0'YMʷ;2N;rK.N3s8Y;s¹g<<2,\0#<2gO \$ҧ3-NSw=dK# ?O>\$<0O\$ӤO>pN#StJSO5?+bSO,sLJ\rOjSI#; O+|γ b1!;ɡ@ 4O@4O=\$O%0L-ُNI89\nL쌭NM:\\2@N9llϿ( =Ɠ!;ĊO<3PRMBcdV2L4pknP++>\n@Lq\0 \0,Q\\\n`[\"*Dж> zBT0:\0\ne \$rM4=l\nN)Cp480\0#J=@& 3\0*C6 \"`#> (Q\n81Ct3EC\n`(z?b7\0[QN>'\0x c鎨\n2Cp@&\08\0\n䴏O\0/A\0#@cPD TR\n>dBDTL Dt5PjpGAoQoG8,-rK#)9E5TQG4Ao\0>tMD8yRG@'PC RgIQJU)EmTZE'#cEqF za>)TQ3H#TLqIjM&CRh@\nTK\00006\0IπFE@'љFphS5F\"nѮM%aoS E) B\"eћD3hAF4tlJ\$CwHITKPt5QCRQJ{\04܏poSR]\$ǑD[J' 'V u\$\rRA@)ӷR3c-?܁#?0SF4QG59Q`G3QS\$xRSaoTEB͏?+hSHUQ]M K\n4CmS\0N;PO!\"RT9SFU5-UTH(ԇTV\0J5UNT8ZR@,R&T@Ǒ uK6>&tQsPe\$UO;%\0V` `\$Ԣ@1о?\$\nJ.9WmWpu'W?NR^PUsCSTR6TNGOS'5%V?%PnJuPcR`\\VN@'#b=oPF(8Y-uV-UԹ]CI8\\\nrW(TR?-P\$ Z3u些B`>\0E]T#L L)מ:@#G)4R;VmD%8)Ǖ^Q#h H@ Ny4#c XR'7`\\\nEQ`m]WNdV'Z\r5GXEjuTE9\0T-UBOPQ65_ xz#?-6TE-4\08\n X #D oRALm\r5eGN V64p\$a9NSaU?AU\n\"<9cufQ__0щ\0;CTIN2 ,SV=ػd=A+رJeӽQ5V\0E펖>Y1H@DYRYH~OcGTK>\"Ѿ\r/U܍&x?\n/׶>twѠ\0eq\$E \$?%-ىPegY}_-g׹E1Ye@0 {F\r!PMKv7Q-Q?(g\r\$Y=QAֳ_-;THWZ@(X'hD؀f*JUH!IL'ǃfh 4[R)i TX6iB!әg \0 G Q64>x\0!ڡBC>ݪQڙj8ՑTv(~>HCe֜7j3`PH23x Uk\n:OiUUA-xn=?CRMSQbx\0@ R\0=`)ZzKP]lͳvmMׇD\r4QsS41QsQĂnYhd A` gE\nX'ku-SOw」 S6ۙDNNlWݙ%lA\0+*KMClx &\0Q4֡Uml!o`\$\"3v|3;iՕџm+hL%6%Mu3QF4I&THժ\\FCTQWLJCQezB[`#ime!hӕ^sC%!Y+ӋJNtMkXJ>a e e|2/qSWr%\$X(-Wp'uE7rEV%v[?CVVe5IMDOQq2LvR23`,RptT>-\0^Դ\\8 Zs` \0rRRxu[UX׹DKTRA^}uSuX^xVTAVu>U\0hYb #[5bDhQ>Fۯ:NK<4%\0R?I! :K <].]P .ʃ\r8!oFjwPc}.T;`n{Pi^\$>+\0O%'\\õ36WyLH7#`@bK7y\r=0wyhB\0VoTgsW \0ڬH*R:z.^E7:Uz+0Yuf=UbX*\r\"\04D劷\n]_E\$?ELһkôy& ( Z{{m@&sJ֓Kpw!|eN})|/Z9Ӻ -V|u4E1NAo_REwӝ}=4=\$I>XGT 97I4= .@\r˱_ߒ%a\n\r#74b/π\n\\5AZ*&0,-a 7O*xE׾\rJ̷;\"J߅\06c,@J`/LLq|Sg~\nPCwãG>>\0L;8݈RnpP^7x߸ob3R0aBǁr٩Ft#`πc`v =9'߯y#3[qy>5{[ja)V@&@ܳm\n59 'Ѩ8\0EaAAɐ5Y_~^A& !`JOX)h \rBIyY(,ad<ۄ!BX\0ٴk=Myc\09\n?B.^Ct `D:d c8:rw dLu+<QxO73dܥYёr}d@0l`V:xP\rJz\$ܷaqyl9GI^b\n(6K]ݓ>SNoSN&ynS<: %;6TyIQ.SdV>#?J],Le+SґaqX9Pe%ybeaUUeNW9WWW9C^ cz#m@zMn^鮅^.\\FFE2rQ\\фl,\0\n9AVrNa``t@{?=8I50ypToXb*mы6dB\rb=\0:  .e9Xbw_w@\0kqwј|ByvpCs S%9Ml2w~!s&kY0\$/fkEtgC١M ?4O^!&刎g/f1=V aE:#yN`)`Np\\.\"BA qxV:a8yfsy7gygS&gY5;@c3tn]to/7og8`3\0 8m\0\"\0氉[X?qFSvB\nZ!AoC-y:NO^xz~.19kD8!CNnfh g\r\r(ipe߅<+#-ZdJjh6gAX Fh4dLhNZ9nxCPYhE~s`>Fk\n^}D )Zk,`ާz1Kcdluf> -ώ q #a囘hP`PhaP`8]\nւ`3a`8'|0c1\08\0\"ZXdhV/hYUhMg9NaYs`7g?!6snޓ.?VҢNdJf s pԤ\"K .D{^1JB#ciVx`<Sd÷f949/hyn?\\ސӿ]֐z9zz::)0Pօc|hV`h?dr2} ,O= yλ0I` =X7:_ɪzG8 dNjѠ\$Bo)2mnyK[Z{Y0Ãu\r/n\0NOiFRN:\rq>ɫ0@N*tKB[nTNphz JtdNDY>ȔF8η8vָxk9담]z>֩0ѓd#W,3:/7FRf{Z=O|hc֜3x F^r]tHi.u@A\0h@عߧsmNyVF25?~ԆѰfs`[Ric+1f@\n L^36Xt9=:( ;蟨SF@`;x,>y4_&ןeу,CFL0\rKQ3l9Ϛ@~2ԥ+gVN^\"+ b_FdHw~\rb\"0@s18޲pH#:KX~ Πy^\$d!5wt!':xmT +O5~ >P@õVPA׹Ӳ&\";Xh~t!)5aD38' I׶^خⷶ>ؚl;“A~;j[>mӶPuf.A)=#m߶fzISmɶcA+D`/dd/ٛm9Wi,I\0-F`i6;`{[S6RjەC#m=9gW:gh&ȆVIx[hIIZNmtW[+@k*/AEwL_8m{).-v\r:L෉`-@Ym{h퟼jLh|:Y#@^˺[؁;㝆[{Y#w[Io fYo4;Ǜoˍ6T@B~;U .hr3N6PɞDŽV0ok1ESOȕ`7l҅IO٫7tQc9f-\0-\0/.^Rf<-n,95JcMvݦ[!oNƦ\0qV5,O \\^b+b* {c7roN!qwɹǑO;,P:b#3+\rS\$poK ~Ҝњx!_q-W`mx9&[ e>dI*8 NHz3µ(Ш -\nS/Zk1(k5!*C!(HnTD z-dІ(ABk@5 \0.&!cYL\"\0g)r,\"5O*'|rO)*-)H.2 \"rchtڸm:`#[M0@1H#dژACx JGG7,}/ |8ѲG9Ʉ?9p: -o:3L:ɉ;Sbjxa|Y+6|vlOx<\\w?=S]b/;M#\rώ3Kt3HkLt:\$} 08/4\rg+ 3gsT55^xi0b\r|ʟb|٣pP \0ꐓ9,#9hI fʣ6`.\$zKW%J?cRMK>8AELn:a:P^_ =*a2GB&Nr2_Lnu!TԏDViqd9V]`\rnPMotjx )`\rv P`#tN-ԕ5ְ Yc債XPDx TalxVtx\0X 磵VH\0ؤ#kXQF5|U OW-STW4~ڵ^W6uX=94@ ͉(]o֝KiWW=PZo}qyITvxuU]]jXKT\rH\\QE^@,5XuGgu–ՙhP }GZGhmgWhwnu`(Z[WU_GhbGدSR[wX5Z/؅aW_uU%PUcQT[w[6(\r؇[U[w\\]RGf/b\\[ptU[ueSsDc]TTg?J-um@ՉMb\$-p4Ej=RUb=^u}UV\rVSt]vMekiPm[\0_Y=vsȕ'Gr]f=Ku#h_Q; ͣx>[Jq5QٱKJ#eDSvfVNdx4vU\\p}TMj4vtvC|VAaq~/?ſz{TucAo\0\"駌4X3یMDWYXM;cOׅ`MH%e7c:u ~B;O0UYE͕@6UWߏymς:= ͘2:3ylG,0-]hn~*Ӣ<>r諢A<>_>i\n)킓.~;3S_DBf| W\n.`w\0##>u~C [3;o Ff!Hx G!+@X AT;BBEi@ٚ ~\0JǁC#  oI)yaJj2<:}Foq jxNL@Dxǡ59vTR C9ĩ7_AP_X|6#>^qO O\noT&dڤR.LUgwPV#9*T\$̺{f]ȋpgD.<kcazk316pYv_3ז|=8CFvS<3iy|^bzWLNc]u&8c|d9z9N~oı䮃:=N~6=d <>M-A~ 3]F.{QP-@Nl{?QQAA;_{R:]6<cǏo^-B9ϰ9FjcA aN0s5{w_@~䙈g︹{`{\0X:/伎!&lP/)P)23nr3mD1|\ron﹕{'>||H\r eSE ==svscKKO¥|:8|7N:ga& F}5/e~CJ\"`/|Lb_ǟ!06 |{*B#f_\";12kINc\rG<77G̱344;{\\gǯA?vy.eYCCf|[?D_ѻ;I/ҹ7}2%8cbǿRr\0۽~KƳ?3[Iq;?\\qSoY}  i7L5>Kz13:|{ lz?nf/jHvomw\\\"|{|1ti^1e|]8*F݅=/Fk/GۮD~Ѱ%A⟎[ଅ\$Ǜm8%_-\0z`ߐS\$EIe~Qi ~{@[_~g%xO_rkڟfۄ\r_t8|\"Mf߭8=\0p\\ oEgO ǫߦ{f\"+n .uD63SQ^&|'D6bZ72 >% Ǹ 0&=qva08z\$x bCo&= jDM1=jb0d[Kj\0<b1tMQ\$OpBv0@0߸qHUG\0|pPUF+#>ppN+h[ko@n5!0\"&qeI+bt(c`AsSI8qlml\rv,AN!pw((AqBsd~ #VvsB`|?jΥ2?E@Tމh R>~ս8-[ʿg>e]Hď\rn>zd6ěc^9L\"uvف3\$wQ \r' ,Y=-*l?xl_H QjVe+QH  rOǧm%Q/Є (! @d1T0X==oa-,[h z\$dy|xt;p_.?~5\0+>ݭpa6L8t;H0Pe A;M56pL\nΐjY~^y\rP/hv3-i/@m[|M \n6K#1hFT)ߘ(Dm\n=%u#\$Nm:X\$>O\0M\"Cq4٧돇/O\\K\"d (Bx=[NpIdVlRy}W|~B31L ݮbO՛:]9Ńh#R?P69،\0g8B.\${`іh?hmG]nQ8 FiZ 7quyxFF+  0qJv+J2pr\n%'?nhF0F=B'~׎\n52|e1<\rЛ5qn f@>e1h\$sX3\r@z+鶩9 '2GaF ܐС(T)\rJ\$7GkD9)\0\0\\)f+(Y\0P-b`WMrPc7Ro(Irt(7\n`)\r#5I/70 OSX=:EV*(Ir0\\ƹt7 hq5ۓIe#-pJtO {%&/h^\":w#&\"Hо \$Iu ph*yX_⃁C8Y .1TPġxj4)AӑsE \$q WSPbbVcd.rn۴.иdžA /3!V_ZHMg-+’\\RS˅qZGrQNa*vYܒW[VNbuH)(y\\1@J̝Y~`z]v B%PVGvA`%') SZRi)5SD49Jb;)3,9M46EPߔÛ&t\na*\$unAբꎖT?%D2XttڅցTYheƝ&v\"pK1d,ZQUfnݰq\\\\6\"DJZUP\nT Yh)UZ`qUԵ>5iͣTIlrܕ}ki}ȴU_*)\$@FmrJV+Vh-cJ鳪pͭ[0?ՉN\\x!9 \n:EYҋ\n.V`?3M>,[@ir>5|D؈MYBGx\n̰qhڵXsQ:h*5]@b=G\"sxZG@ſ M.\\u7uB-D[pnbE,\0] Er\0/l[p\r\0000k-P@\rE\0g.Z~\"\0q&/g\r\0k.D`Hx\"\0n\0`xm\0a  K2E#-\\ZQl\"\0006\nP`q\"Ūc4 |'c1 ^Qlcό1D^x‘oY[ \0s21\\^ @\rbF\02D[7z-\0E`/dXјbFM&._xqw5! q@Eb4\$]xqF%4\\ZɱxF.]ɠc'1`HqY.,g趀 6F6/ƭz5 b`\rGF(JMf.Le@1\0005I5e(Ƒb2|[ \r#51V0|kő49Ug(\"m5e`\r4EF.[10di1k\"Fo ~7g#oF/4[1I\0i7\0XΑn#LF\0i0tfױl# Ƴa4[HQFW'.\\mαύ30(QoF\r N1tp1PE݋.H1lc^F~4_Xqc*7/:/qx1rF\0en/HOF/.axqrV4_#F`K: ]YZ-qcjFz;0(QƧ\$.fqXEڎg2lhcZn3l(ˢݍk&?f92QFW>?4b1d'u 3|sc΍6B m\0EƐj=fHr>5dlIQ|ƍ^9cqtH;5cQ Ս!.?`hq HYn.|G acXG?td\rIz>Ld\$HW9Xqd0-J@,q(.:x8ı=J/gq1G\"^.dsxrHF?XGzW.0|v`]E^0\$ZQ#sGl3[r\$?G\"Z0\$dbHt~@eyђbȪ\"61xcH=,c)\\}\"G _c;V/|ч#[GZNHk2%MF[8oѓc\0;m-њFyJAlRMdɍ\"8\$n81Y0|2\$G<,#aGP \nFtR^( 6Ja(bIaU#3hXq}\$ũ!N;\\?2%\$ǛUnG2&~ƶeLlh8\$SGjbB\$w⤮\\>Lm(@Ǜ8g1!cSF#\$Hgh\"cE:DsHѺLJ~Hԛqt~60(b7dIqvƜ~-kX)\"N4YIOEx xd 瓄ɂ\\x᱘G% z6rq~pIΐk&\n=I=%EK\"G܂ #]F'&.l_&nc\\鍗/[@ 'nM8FG\$qMȰ<[Qc2Ț%<\\Y1ƒ&:|qCc-%'2xH|#0) blHXJtrex%#3\$R5S!.(GӔE:lr \$q&B1a rIC˱NJaBD[踲XJCMCՑc[.>4 #ѯ5I(6zQ1x;s(3lI]*(*T%+f\nQn-U#UHj]Ҷ:x1+k'UKVmCС}s)pV,VºT7v.QZu{+\nDe\npx.| \0)}I<0\0IZ\$k !YhR‡dQS%.%9ĩbW\"֐\0)Yv*VWXZe/:,OաxÆQ!,`B _.%Ŗtm\nJKVy}M, 喦l+qap0Ԓ;]R #(*^~>-TѪ#8@Y \n!;GvPj%)9E-V:UJ jDKwF0R%ȭUF?[A DTwPQ¬<ɔa1>@Na(2ychݕ\0P:]yW3[<@%gBp;HKsW޳ıYr`f']ؼ\nbU%ݩS2GdBpjebRYZk锵\0U\04JڬU dɕ'TH]֊GJ U/v.ZB%׏ /\n&RkW\\ Q r^W\$Yp~If R;eK ?%BQQ-+«,QfdꉥrL6ҩWIs&\\a)*/Cu1-՚E~  Vs,D *26 &Pu\\aC;d13F0w9D2g&l|^ H.c9p0;u\rQH00.\"dga]U\\Y{ȕ{kb\n_2FK&Na[őg&J!G-\\bb݉̋HTÅ2PÊvi ynjۃL!#9,a\$7b&*&[,:fSkҴV̻e3IZj#GU涫 =i`\n唻=\0[iݢK4jixWU.gp[~\r{u6eV-^Ԗe)sPfͧw֎?'}J&b64mrə]]:Q6ZI}rLZ7[2UZLQDstDyQ}-m\$ٹn#wU& MWV]ݵcWpX8DyY!)Lvw7m䉮`UK?)5Q4ٻ>%w+~kxr\$M~2Fr|)a&\"[6\"Ytݵ4ݨKmv8~r+)y)6Yk¯űvɺo΍TV\"&o-:g\$3:&uMևF%idD?f*9Vq, yUQ\0:IZB'K&o%\$JI&;jW8v,칣Su8)]\$3,N\$x0O|*M'o39[ÓOBM|ܾӸ8vŊCzN08cǫM[5tꐖj#(_;q3|B!I3f Mo\05xUOǦzζ6uSM{;v1覝הd͔C9W§uVS'>T]6}J@KZGkOV#\$H\$ZՀ(\0_V&?h 3' G6F2pj,K.S豑|iqgJѝIvC\0+\0GYnLjd\01\0M>dujCWSO\0amU7{dUYw\0)_YzJ'O\$H.lc%&X8SgϋY)?ZU 39\0/\0A%k2 T=%K5&^ʫu{ɖ\n씽-,[_} ֖Oşr~,ynGOMo|Di#P\ni@ >׵O\nz/@sKg|mޒ7,Π=3g)v@,vY P&@Cdvs9BCJgTX@0>օ\"yQP c1e g^9AEg;\$x4%1YI}r%24i;SA\\;jd[qm\rVOAsJ͙T@Zڠ\n(?T2!E*._MѬ[;=@8KX2QM<੗anВ<ЊV\0BZ\"3hNU\r`LߩjבXzV,{t/UƢHBU_R`ruA3Mz 0ҡejt8(ltIyT9XC?ꉩ{jKВSCֵ 5~rͱC:ȅxtmUڛKCѣsc1 ltOef̭WUC}˒gOS%[WRG=Ɛ}5tte\\INYk1)\rQjB{)H-\"zDt9{yMf-]2>d(ts%]\$H?%\"n#T@wjt8RBIHrB\$w2!\n#4(2Y\nn؂Ed&4/dG[XV% S *oQ?\0rk`sد0 %+б4fyG\0\nXq3``fD9䂐iDŖPTddI#?x(đYTtǂ\0a Pd\rP-,ȺԳl ^-@=i\0006|z[\08K*W4hإa Ku,b4){K6-_iB --`Է)cRަLDhZ^ K.bR7LR<btL\n2k4e3L2dJ~Le-fg6L=3p)wS7M3za)S7\0oM1}3zb)S75MR1k#liLmgiS?L64:g4lGKr64m#lO65:nt#lWM2h\nj\0\"N@u88)˧M1JqtѧM.qt۩ӒN*8zqtީӎN7s̆/E9JuTӨ9M7*tbӌgN -9\n`iSN;].S _\"-tiRёwO&ptˑwNꞭZvISOb>{S৻OZ2m7j|)k*pT\$T P:@j}1Su@*yUO \nTiHR#Px -?2 T%?NBA{2ܐM8pe)TEN&?Z4j!-1PBILQ<Dʁ¾SQV%1 r% ODjcj\$]M}.]<[UbTkKPrha5R/OQjR2:%ħQޣ}>ڏUj֨OΤHz5j\"T Ore?ꑕ@Ԍ R2H:iiR:9\n\"7;RJZU)jJT/R0\r1~J=Rƥbѯj43RHuKq}QToS\r܈\0TˑS:-M\nzTΎSZFu5RTrSZMMu7VoSZIZgESv[:8jxSeʝ:j4LZQ*Sңb>*:ũS|Zڙ*zPj5B*`E'T2[uD*9E۩=QjnjKTr\\jH*`EOTfJчj*bR5L*dߪwTҦeuN|XES6ԧMTUU*{UZ %M4 I*%B?P.Vj&U>9f~Tڑ*GzMfUjeRrMW5UVʪ}Jj5X#-ՉU/XUSbUO}VlxZ[Tǫ1U>MYjmh՟fW5UUZضm*߫eFZ^Փz}Nʶ՜o\"j\rUњՏ,op0>\0IU^,M\03UՌ.;Auu#ESZ?\0WWѯ*ǫW:coȁTJQJ5|*VU35_^|l5|k#V橕[xSUyXzT\nՁF9X.1%`*eƬ[ʱ}a@7qV<`U^V*WNUVdUKWVl~5dUX]c U/edd{*EdrUezckE[VF-c겡4\nBFJ|ʃ{Ou<A*^\$9>|DW\rK@X[z۱`үLٚM3n1N@X\\i;5g#\\G\0Ljk?͚v4k*u>.\r5rB `eZ2)+IW!Z:izuVF*RM\\HLɧNi\\L֧bZk4Ik[PֹJk)(W, 9晱jnfxv]6yӵ*U'8,BU6Fۦ[Ku3duma-J769s<'\nVY/[ƻmo:uC9W:\nV\\piʭ+֊JfmwuVKWxU+\\znrzSU#W%ZwE?ѝL9~foI+VQa\\SJ(g\$MDܥl:Ӕjtj| v\n;dxzsYPW5<DYK_Jc Zrn _k^+m,3\\aBerĹJj+Fw;)\$9]N\$\0PٵYL_K1f%ɖ;amK\"\0 % 6.?w\nχ Klx)Yaؑ#_>M(3mP9h3ӻb0~ [X4NܹHaɨYkAvt6^:Q_l\"9NR A\nQ¸kLl+@#t Kv B;^ !gl9HD2.{^; `44z\rG\r\0[\0\$\\D\"Ğ q7{RN(u qQ%Hxmt0_&EahE 7gn8Xv\r%Mf^Ӎh01ɱ=RI\ryq\r/&XԱLc\n\$@J0D})/d./6,t遖!@!\0V.gFW^ e5i \"DR Z/\",6=!dD1}6/FTc;`x+#쓱70*J!lQ *hD PbBY0\0\nɝ!\rKVэ15GVP4=;w+%lYIFŔ T1e 9g1mi:\0S3N38vaN x]El>{\"Aq8A½{8p8k2LY˩ⵛ64VđTX\\śY1fǠq:u|\\},O0{dds͂C B5#H1zl\0%o,0H ide'?6xֱ5Qy|p\r+=pX\r`!q,>g\$@pٸ\\6\${^&ϛ{$W){unset($Qf[$y][$Kd]);if(is_array($W)){$Qf[$y][stripslashes($Kd)]=$W;$Qf[]=&$Qf[$y][stripslashes($Kd)];}else$Qf[$y][stripslashes($Kd)]=($Lc?$W:stripslashes($W));}}}}function -bracket_escape($u,$Na=false){static$Gh=array(':'=>':1',']'=>':2','['=>':3','"'=>':4');return -strtr($u,($Na?array_flip($Gh):$Gh));}function -charset($g){return(version_compare($g->server_info,"5.5.3")>=0?"utf8mb4":"utf8");}function +number_type(){return'((?$W){unset($ng[$y][$ce]);if(is_array($W)){$ng[$y][stripslashes($ce)]=$W;$ng[]=&$ng[$y][stripslashes($ce)];}else$ng[$y][stripslashes($ce)]=($Wc?$W:stripslashes($W));}}}}function +bracket_escape($u,$Oa=false){static$oi=array(':'=>':1',']'=>':2','['=>':3','"'=>':4');return +strtr($u,($Oa?array_flip($oi):$oi));}function +min_version($Ui,$Ae="",$h=null){global$g;if(!$h)$h=$g;$ih=$h->server_info;if($Ae&&preg_match('~([\d.]+)-MariaDB~',$ih,$B)){$ih=$B[1];$Ui=$Ae;}return(version_compare($ih,$Ui)>=0);}function +charset($g){return(min_version("5.5.3",0,$g)?"utf8mb4":"utf8");}function +script($sh,$ni="\n"){return"$sh$ni";}function +script_src($Ii){return"\n";}function +nonce(){return' nonce="'.get_nonce().'"';}function +target_blank(){return' target="_blank" rel="noreferrer noopener"';}function h($Q){return str_replace("\0","�",htmlspecialchars($Q,ENT_QUOTES,'utf-8'));}function -nbsp($Q){return(trim($Q)!=""?h($Q):" ");}function nl_br($Q){return str_replace("\n","
    ",$Q);}function -checkbox($C,$Y,$db,$Rd="",$Ve="",$ib="",$Sd=""){$J="";return($Rd!=""||$ib?"$J".h($Rd)."":$J);}function -optionlist($bf,$Bg=null,$ei=false){$J="";foreach($bf -as$Kd=>$W){$cf=array($Kd=>$W);if(is_array($W)){$J.='';$cf=$W;}foreach($cf -as$y=>$X)$J.=''.h($X);if(is_array($W))$J.='';}return$J;}function -html_select($C,$bf,$Y="",$Ue=true,$Sd=""){if($Ue)return"";$J="";foreach($bf -as$y=>$X)$J.="";return$J;}function -select_input($Ja,$bf,$Y="",$Cf=""){return($bf?"