REDROOM
PHP 7.4.33
Path:
Logout
Edit File
Size: 56.19 KB
Close
/lib64/python2.7/logging/__init__.pyo
Text
Base64
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c2VudGF0aW9uIG9mIGxvZ2dpbmcgbGV2ZWwgJ2xldmVsJy4KCiAgICBJZiB0aGUgbGV2ZWwgaXMgb25lIG9mIHRoZSBwcmVkZWZpbmVkIGxldmVscyAoQ1JJVElDQUwsIEVSUk9SLCBXQVJOSU5HLAogICAgSU5GTywgREVCVUcpIHRoZW4geW91IGdldCB0aGUgY29ycmVzcG9uZGluZyBzdHJpbmcuIElmIHlvdSBoYXZlCiAgICBhc3NvY2lhdGVkIGxldmVscyB3aXRoIG5hbWVzIHVzaW5nIGFkZExldmVsTmFtZSB0aGVuIHRoZSBuYW1lIHlvdSBoYXZlCiAgICBhc3NvY2lhdGVkIHdpdGggJ2xldmVsJyBpcyByZXR1cm5lZC4KCiAgICBJZiBhIG51bWVyaWMgdmFsdWUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIGRlZmluZWQgbGV2ZWxzIGlzIHBhc3NlZAogICAgaW4sIHRoZSBjb3JyZXNwb25kaW5nIHN0cmluZyByZXByZXNlbnRhdGlvbiBpcyByZXR1cm5lZC4KCiAgICBPdGhlcndpc2UsIHRoZSBzdHJpbmcgIkxldmVsICVzIiAlIGxldmVsIGlzIHJldHVybmVkLgogICAgcwgAAABMZXZlbCAlcygCAAAAdAsAAABfbGV2ZWxOYW1lc3QDAAAAZ2V0KAEAAAB0BQAAAGxldmVsKAAAAAAoAAAAAHMoAAAAL3Vzci9saWI2NC9weXRob24yLjcvbG9nZ2luZy9fX2luaXRfXy5weVIcAAAAlAAAAHMCAAAAAA5jAgAAAAIAAAAEAAAAQwAAAHMuAAAAdAAAgwAAAXoYAHwBAHQBAHwAADx8AAB0AQB8AQA8V2QBAHQCAIMAAAFYZAEAUygCAAAAc3kAAAAKICAgIEFzc29jaWF0ZSAnbGV2ZWxOYW1lJyB3aXRoICdsZXZlbCcuCgogICAgVGhpcyBpcyB1c2VkIHdoZW4gY29udmVydGluZyBsZXZlbHMgdG8gdGV4dCBkdXJpbmcgbWVzc2FnZSBmb3JtYXR0aW5nLgogICAgTigDAAAAdAwAAABfYWNxdWlyZUxvY2tSLwAAAHQMAAAAX3JlbGVhc2VMb2NrKAIAAABSMQAAAHQJAAAAbGV2ZWxOYW1lKAAAAAAo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AAAAAAAAAAADAAAAQgAAAHNNAAAAZQAAWgEAZAAAWgIAZQMAagQAWgUAZAYAZAYAZAEAhAIAWgcAZAYAZAIAhAEAWggAZAMAhAAAWgkAZAQAhAAAWgoAZAUAhAAAWgsAUlMoBwAAAHOpCAAACiAgICBGb3JtYXR0ZXIgaW5zdGFuY2VzIGFyZSB1c2VkIHRvIGNvbnZlcnQgYSBMb2dSZWNvcmQgdG8gdGV4dC4KCiAgICBGb3JtYXR0ZXJzIG5lZWQgdG8ga25vdyBob3cgYSBMb2dSZWNvcmQgaXMgY29uc3RydWN0ZWQuIFRoZXkgYXJlCiAgICByZXNwb25zaWJsZSBmb3IgY29udmVydGluZyBhIExvZ1JlY29yZCB0byAodXN1YWxseSkgYSBzdHJpbmcgd2hpY2ggY2FuCiAgICBiZSBpbnRlcnByZXRlZCBieSBlaXRoZXIgYSBodW1hbiBvciBhbiBleHRlcm5hbCBzeXN0ZW0uIFRoZSBiYXNlIEZvcm1hdHRlcgogICAgYWxsb3dzIGEgZm9ybWF0dGluZyBzdHJpbmcgdG8gYmUgc3BlY2lmaWVkLiBJZiBub25lIGlzIHN1cHBsaWVkLCB0aGUKICAgIGRlZmF1bHQgdmFsdWUgb2YgIiVzKG1lc3NhZ2UpXG4iIGlzIHVzZWQuCgogICAgVGhlIEZvcm1hdHRlciBjYW4gYmUgaW5pdGlhbGl6ZWQgd2l0aCBhIGZvcm1hdCBzdHJpbmcgd2hpY2ggbWFrZXMgdXNlIG9mCiAgICBrbm93bGVkZ2Ugb2YgdGhlIExvZ1JlY29yZCBhdHRyaWJ1dGVzIC0gZS5nLiB0aGUgZGVmYXVsdCB2YWx1ZSBtZW50aW9uZWQKICAgIGFib3ZlIG1ha2VzIHVzZSBvZiB0aGUgZmFjdCB0aGF0IHRoZSB1c2VyJ3MgbWVzc2FnZSBhbmQgYXJndW1lbnRzIGFyZSBwcmUtCiAgICBmb3JtYXR0ZWQgaW50byBhIExvZ1JlY29yZCdzIG1lc3NhZ2UgYXR0cmlidXRlLiBDdXJyZW50bHksIHRoZSB1c2VmdWwKICAgIGF0dHJpYnV0ZXMgaW4gYSBMb2dSZWNvcmQgYXJlIGRlc2NyaWJlZCBieToKCiAgICAlKG5hbWUpcyAgICAgICAgICAgIE5hbWUgb2YgdGhlIGxvZ2dlciAobG9nZ2luZyBjaGFubmVsKQogICAgJShsZXZlbG5vKXMgICAgICAgICBOdW1lcmljIGxvZ2dpbmcgbGV2ZWwgZm9yIHRoZSBtZXNzYWdlIChERUJVRywgSU5GTywKICAgICAgICAgICAgICAgICAgICAgICAgV0FSTklORywgRVJST1IsIENSSVRJQ0FMKQogICAgJShsZXZlbG5hbWUpcyAgICAgICBUZXh0IGxvZ2dpbmcgbGV2ZWwgZm9yIHRoZSBtZXNzYWdlICgiREVCVUciLCAiSU5GTyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJXQVJOSU5HIiwgIkVSUk9SIiwgIkNSSVRJQ0FMIikKICAgICUocGF0aG5hbWUpcyAgICAgICAgRnVsbCBwYXRobmFtZSBvZiB0aGUgc291cmNlIGZpbGUgd2hlcmUgdGhlIGxvZ2dpbmcKICAgICAgICAgICAgICAgICAgICAgICAgY2FsbCB3YXMgaXNzdWVkIChpZiBhdmFpbGFibGUpCiAgICAlKGZpbGVuYW1lKXMgICAgICAgIEZpbGVuYW1lIHBvcnRpb24gb2YgcGF0aG5hbWUKICAgICUobW9kdWxlKXMgICAgICAgICAgTW9kdWxlIChuYW1lIHBvcnRpb24gb2YgZmlsZW5hbWUpCiAgICAlKGxpbmVubylkICAgICAgICAgIFNvdXJjZSBsaW5lIG51bWJlciB3aGVyZSB0aGUgbG9nZ2luZyBjYWxsIHdhcyBpc3N1ZWQKICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGF2YWlsYWJsZSkKICAgICUoZnVuY05hbWUpcyAgICAgICAgRnVuY3Rpb24gbmFtZQogICAgJShjcmVhdGVkKWYgICAgICAgICBUaW1lIHdoZW4gdGhlIExvZ1JlY29yZCB3YXMgY3JlYXRlZCAodGltZS50aW1lKCkKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlKQogICAgJShhc2N0aW1lKXMgICAgICAgICBUZXh0dWFsIHRpbWUgd2hlbiB0aGUgTG9nUmVjb3JkIHdhcyBjcmVhdGVkCiAgICAlKG1zZWNzKWQgICAgICAgICAgIE1pbGxpc2Vjb25kIHBvcnRpb24gb2YgdGhlIGNyZWF0aW9uIHRpbWUKICAgICUocmVsYXRpdmVDcmVhdGVkKWQgVGltZSBpbiBtaWxsaXNlY29uZHMgd2hlbiB0aGUgTG9nUmVjb3JkIHdhcyBjcmVhdGVkLAogICAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZSB0byB0aGUgdGltZSB0aGUgbG9nZ2luZyBtb2R1bGUgd2FzIGxvYWRlZAogICAgICAgICAgICAgICAgICAgICAgICAodHlwaWNhbGx5IGF0IGFwcGxpY2F0aW9uIHN0YXJ0dXAgdGltZSkKICAgICUodGhyZWFkKWQgICAgICAgICAgVGhyZWFkIElEIChpZiBhdmFpbGFibGUpCiAgICAlKHRocmVhZE5hbWUpcyAgICAgIFRocmVhZCBuYW1lIChpZiBhdmFpbGFibGUpCiAgICAlKHByb2Nlc3MpZCAgICAgICAgIFByb2Nlc3MgSUQgKGlmIGF2YWlsYWJsZSkKICAgICUobWVzc2FnZSlzICAgICAgICAgVGhlIHJlc3VsdCBvZiByZWNvcmQuZ2V0TWVzc2FnZSgpLCBjb21wdXRlZCBqdXN0IGFzCiAgICAgICAgICAgICAgICAgICAgICAgIHRoZSByZWNvcmQgaXMgZW1pdHRlZAogICAgYwMAAAADAAAAAgAAAEMAAABzKAAAAHwBAHISAHwBAHwAAF8AAG4JAGQBAHwAAF8AAHwCAHwAAF8BAGQCAFMoAwAAAHM4AQAACiAgICAgICAgSW5pdGlhbGl6ZSB0aGUgZm9ybWF0dGVyIHdpdGggc3BlY2lmaWVkIGZvcm1hdCBzdHJpbmdzLgoKICAgICAgICBJbml0aWFsaXplIHRoZSBmb3JtYXR0ZXIgZWl0aGVyIHdpdGggdGhlIHNwZWNpZmllZCBmb3JtYXQgc3RyaW5nLCBvciBhCiAgICAgICAgZGVmYXVsdCBhcyBkZXNjcmliZWQgYWJvdmUuIEFsbG93IGZvciBzcGVjaWFsaXplZCBkYXRlIGZvcm1hdHRpbmcgd2l0aAogICAgICAgIHRoZSBvcHRpb25hbCBkYXRlZm10IGFyZ3VtZW50IChpZiBvbWl0dGVkLCB5b3UgZ2V0IHRoZSBJU084NjAxIGZvcm1hdCku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IHRoZSBzcGVjaWZpZWQgcmVjb3JkIGFzIHRleHQuCgogICAgICAgIFRoZSByZWNvcmQncyBhdHRyaWJ1dGUgZGljdGlvbmFyeSBpcyB1c2VkIGFzIHRoZSBvcGVyYW5kIHRvIGEKICAgICAgICBzdHJpbmcgZm9ybWF0dGluZyBvcGVyYXRpb24gd2hpY2ggeWllbGRzIHRoZSByZXR1cm5lZCBzdHJpbmcuCiAgICAgICAgQmVmb3JlIGZvcm1hdHRpbmcgdGhlIGRpY3Rpb25hcnksIGEgY291cGxlIG9mIHByZXBhcmF0b3J5IHN0ZXBzCiAgICAgICAgYXJlIGNhcnJpZWQgb3V0LiBUaGUgbWVzc2FnZSBhdHRyaWJ1dGUgb2YgdGhlIHJlY29yZCBpcyBjb21wdXRlZAogICAgICAgIHVzaW5nIExvZ1JlY29yZC5nZXRNZXNzYWdlKCkuIElmIHRoZSBmb3JtYXR0aW5nIHN0cmluZyB1c2VzIHRoZQogICAgICAgIHRpbWUgKGFzIGRldGVybWluZWQgYnkgYSBjYWxsIHRvIHVzZXNUaW1lKCksIGZvcm1hdFRpbWUoKSBpcwogICAgICAgIGNhbGxlZCB0byBmb3JtYXQgdGhlIGV2ZW50IHRpbWUuIElmIHRoZXJlIGlzIGV4Y2VwdGlvbiBpbmZvcm1hdGlvbiwKICAgICAgICBpdCBpcyBmb3JtYXR0ZWQgdXNpbmcgZm9ybWF0RXhjZXB0aW9uKCkgYW5kIGFwcGVuZGVkIHRvIHRoZSBtZXNzYWdlLgogICAgICAgIHMFAAAAdXRmLThp/////3MBAAAACnQHAAAAcmVwbGFjZSgRAAAAUnMAAAB0BwAAAG1lc3NhZ2VSjQAAAFKCAAAAUnsAAAB0BwAAAGFzY3RpbWVSegAAAFJ3AAAAdBIAAABVbmljb2RlRGVjb2RlRXJyb3JSRAAAAHQGAAAAZGVjb2RlUigAAABSVQAAAFKLAAAAUnIAAABSJwAAAHQVAAAAZ2V0ZmlsZXN5c3RlbWVuY29kaW5nKAQAAABSagAAAFJ/AAAAUoAAAAB0AQAAAGUoAAAAACgAAAAAcygAAAAvdXNyL2xpYjY0L3B5dGhvbjIuNy9sb2dnaW5nL19faW5pdF9fLnB5dAYAAABmb3JtYXTEAQAAcy4A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c3RlbS4KCiAgICBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90aGluZyBpZiB0aGUgcm9vdCBsb2dnZXIgYWxyZWFkeSBoYXMgaGFuZGxlcnMKICAgIGNvbmZpZ3VyZWQuIEl0IGlzIGEgY29udmVuaWVuY2UgbWV0aG9kIGludGVuZGVkIGZvciB1c2UgYnkgc2ltcGxlIHNjcmlwdHMKICAgIHRvIGRvIG9uZS1zaG90IGNvbmZpZ3VyYXRpb24gb2YgdGhlIGxvZ2dpbmcgcGFja2FnZS4KCiAgICBUaGUgZGVmYXVsdCBiZWhhdmlvdXIgaXMgdG8gY3JlYXRlIGEgU3RyZWFtSGFuZGxlciB3aGljaCB3cml0ZXMgdG8KICAgIHN5cy5zdGRlcnIsIHNldCBhIGZvcm1hdHRlciB1c2luZyB0aGUgQkFTSUNfRk9STUFUIGZvcm1hdCBzdHJpbmcsIGFuZAogICAgYWRkIHRoZSBoYW5kbGVyIHRvIHRoZSByb290IGxvZ2dlci4KCiAgICBBIG51bWJlciBvZiBvcHRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cyBtYXkgYmUgc3BlY2lmaWVkLCB3aGljaCBjYW4gYWx0ZXIKICAgIHRoZSBkZWZhdWx0IGJlaGF2aW91ci4KCiAgICBmaWxlbmFtZSAgU3BlY2lmaWVzIHRoYXQgYSBGaWxlSGFuZGxlciBiZSBjcmVhdGVkLCB1c2luZyB0aGUgc3BlY2lmaWVkCiAgICAgICAgICAgICAgZmlsZW5hbWUsIHJhdGhlciB0aGFuIGEgU3RyZWFtSGFuZGxlci4KICAgIGZpbGVtb2RlICBTcGVjaWZpZXMgdGhlIG1vZGUgdG8gb3BlbiB0aGUgZmlsZSwgaWYgZmlsZW5hbWUgaXMgc3BlY2lmaWVkCiAgICAgICAgICAgICAgKGlmIGZpbGVtb2RlIGlzIHVuc3BlY2lmaWVkLCBpdCBkZWZhdWx0cyB0byAnYScpLgogICAgZm9ybWF0ICAgIFVzZSB0aGUgc3BlY2lmaWVkIGZvcm1hdCBzdHJpbmcgZm9yIHRoZSBoYW5kbGVyLgogICAgZGF0ZWZtdCAgIFVzZSB0aGUgc3BlY2lmaWVkIGRhdGUvdGltZSBmb3JtYXQuCiAgICBsZXZlbCAgICAg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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.py
33.96 KB
lrw-r--r--
2024-04-10 04:58:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
config.pyc
25.34 KB
lrw-r--r--
2024-04-10 04:58:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
config.pyo
25.29 KB
lrw-r--r--
2024-04-10 04:58:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.py
47.17 KB
lrw-r--r--
2024-04-10 04:58:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.pyc
38.70 KB
lrw-r--r--
2024-04-10 04:58:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.pyo
38.70 KB
lrw-r--r--
2024-04-10 04:58:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.py
60.22 KB
lrw-r--r--
2024-04-10 04:58:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.pyc
56.23 KB
lrw-r--r--
2024-04-10 04:58:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.pyo
56.19 KB
lrw-r--r--
2024-04-10 04:58:43
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).