REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 42.36 KB
Close
//lib64/python3.6/logging/__pycache__/handlers.cpython-36.opt-1.pyc
Text
Base64
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AAAAehB3aW4zMnNlcnZpY2UucHlkeldUaGUgUHl0aG9uIFdpbjMyIGV4dGVuc2lvbnMgZm9yIE5UIChzZXJ2aWNlLCBldmVudCBsb2dnaW5nKSBhcHBlYXIgbm90IHRvIGJlIGF2YWlsYWJsZS4pG3IIAAAAcn4AAAByCgAAANoPd2luMzJldnRsb2d1dGls2gt3aW4zMmV2dGxvZ9oHYXBwbmFtZdoFX3dlbHVyHQAAAHIeAAAAcmoAAADaCF9fZmlsZV9fcm4AAADaB2RsbG5hbWXaB2xvZ3R5cGVaE0FkZFNvdXJjZVRvUmVnaXN0cnlaE0VWRU5UTE9HX0VSUk9SX1RZUEXaB2RlZnR5cGVyuAAAAFoZRVZFTlRMT0dfSU5GT1JNQVRJT05fVFlQRXK5AAAAcroAAABaFUVWRU5UTE9HX1dBUk5JTkdfVFlQRXK7AAAAcrwAAADaB3R5cGVtYXDaC0ltcG9ydEVycm9y2gVwcmludCkGcg8AAABy6QAAAHLsAAAAcu0AAABy5wAAAHLoAAAAchIAAAByEgAAAHITAAAAcgoAAAAUBAAAcyoAAAAAAQwBAgEQAQYBBgEEARABEAESAQYBBgEQAQgCCAEIAQgBCAESAg4BCAJ6Gk5URXZlbnRMb2dIYW5kbGVyLl9faW5pdF9fYwIAAAAAAAAAAgAAAAEAAABDAAAAcwQAAABkAVMAKQJheQEAAAogICAgICAgIFJldHVybiB0aGUgbWVzc2FnZSBJRCBmb3IgdGhlIGV2ZW50IHJlY29yZC4gSWYgeW91IGFyZSB1c2luZyB5b3VyCiAgICAgICAgb3duIG1lc3NhZ2VzLCB5b3UgY291bGQgZG8gdGhpcyBieSBoYXZpbmcgdGhlIG1zZyBwYXNzZWQgdG8gdGhlCiAgICAgICAgbG9nZ2VyIGJlaW5nIGFuIElEIHJhdGhlciB0aGFuIGEgZm9ybWF0dGluZyBzdHJpbmcuIFRoZW4sIGluIGhlcmUsCiAgICAgICAgeW91IGNvdWxkIHVzZSBhIGRpY3Rpb25hcnkgbG9va3VwIHRvIGdldCB0aGUgbWVzc2FnZSBJRC4gVGhpcwogICAgICAgIHZlcnNpb24gcmV0dXJucyAxLCB3aGljaCBpcyB0aGUgYmFzZSBtZXNzYWdlIElEIGluIHdpbjMy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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 9
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
config.cpython-36.opt-1.pyc
22.79 KB
lrw-r--r--
2026-03-24 13:15:23
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
config.cpython-36.opt-2.pyc
18.77 KB
lrw-r--r--
2026-03-24 13:15:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
config.cpython-36.pyc
22.84 KB
lrw-r--r--
2026-03-24 13:15:21
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.cpython-36.opt-1.pyc
42.36 KB
lrw-r--r--
2026-03-24 13:15:21
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.cpython-36.opt-2.pyc
23.82 KB
lrw-r--r--
2026-03-24 13:15:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.cpython-36.pyc
42.36 KB
lrw-r--r--
2026-03-24 13:15:21
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-36.opt-1.pyc
58.95 KB
lrw-r--r--
2026-03-24 13:15:23
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-36.opt-2.pyc
31.76 KB
lrw-r--r--
2026-03-24 13:15:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-36.pyc
58.98 KB
lrw-r--r--
2026-03-24 13:15:21
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).