REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 54.01 KB
Close
/proc/thread-self/root/usr/lib64/python3.8/xml/etree/__pycache__/ElementTree.cpython-38.opt-1.pyc
Text
Base64
VQ0NCgAAAABlNX9k2RwBAOMAAAAAAAAAAAAAAAAAAAAAGQAAAEAAAABzsgIAAGQAWgBkAWQCZANkBGQFZAZkB2QIZAlkCmQLZAxkDWQOZA9kEGQRZBJkE2QUZBVkFmQXZBhkGWcZWgFkGloCZBtkHGwDWgNkG2QcbARaBGQbZBxsBVoFZBtkHGwGWgZkG2QcbAdaB2QbZBxsCFoHZBtkHGwJWglkHWQebAptC1oLAQBHAGQfZAqEAGQKZQyDA1oNZCBkB4QAWg5HAGQhZAOEAGQDgwJaD2kAZgFkImQOhAFaEGRdZCNkAYQBWhFkXmQkZAyEAVoSZRJaE0cAZCVkDYQAZA2DAloURwBkJmQEhABkBIMCWhVlCWoWZCdkKIQAgwFaF2RfZClkKoQBWhhkK2QshABaGWQtWhp6DGUbZRqDAVoaVwBuFgQAZRxrCpABci4BAAEAAQBZAG4CWABkLmQvhABaHWQwZDGEAFoeZRllHWUeZDKcA1ofZDNkF4QAWiBkNGQ1ZDZkN2Q4ZDlkOmQ7nAdaIWUhZSBfIWQ8ZD2EAFoiZD5kP4QAWiNkQGRBhABaJGRCZEOEAFolZGBkHGQcZERkRZwDZEZkD4QDWiZHAGRHZEiEAGRIZQZqJ4MDWihkYWQcZBxkRGRFnANkSWQQhANaKWRKZAKEAFoqZGJkS2QJhAFaK2RjZExkCIQBWixHAGRNZBaEAGQWgwJaLWRkZE5kE4QBWi5kZWRPZBSEAVovZS5aMGRmZFBkBoQBWjFHAGRRZBGEAGQRgwJaMkcAZFJkFYQAZBWDAlozZGdkHGQcZFOcAmRUZBiEA1o0ZQSgNWRVZQRqNqECajdaOEcAZFZkGYQAZBmDAlo5ZFdkWIQAWjpkWWRahABaO3ocZQ9aPGQbZFtsPVQAZBtkXGw9bT5aPgEAVwBuFgQAZT9rCpACcqIBAAEAAQBZAG4MWABlPmURZRKDAgEAZBxTACloYQYFAABMaWdodHdlaWdodCBYTUwgc3VwcG9ydCBmb3IgUHl0aG9uLgoKIFhNTCBpcyBhbiBpbmhlcmVudGx5IGhpZXJhcmNoaWNhbCBkYXRhIGZvcm1hdCwgYW5kIHRoZSBtb3N0IG5hdHVyYWwgd2F5IHRvCiByZXByZXNlbnQgaXQgaXMgd2l0aCBhIHRyZWUuICBUaGlzIG1vZHVsZSBoYXMgdHdvIGNsYXNzZXMgZm9yIHRoaXMgcHVycG9zZToKCiAgICAxLiBFbGVtZW50VHJlZSByZXByZXNlbnRzIHRoZSB3aG9sZSBYTUwgZG9jdW1lbnQgYXMgYSB0cmVlIGFuZAoKICAgIDIuIEVsZW1lbnQgcmVwcmVzZW50cyBhIHNpbmdsZSBub2RlIGluIHRoaXMgdHJlZS4KCiBJbnRlcmFjdGlvbnMgd2l0aCB0aGUgd2hvbGUgZG9jdW1lbnQgKHJlYWRpbmcgYW5kIHdyaXRpbmcgdG8vZnJvbSBmaWxlcykgYXJlCiB1c3VhbGx5IGRvbmUgb24gdGhlIEVsZW1lbnRUcmVlIGxldmVsLiAgSW50ZXJhY3Rpb25zIHdpdGggYSBzaW5nbGUgWE1MIGVsZW1lbnQKIGFuZCBpdHMgc3ViLWVsZW1lbnRzIGFyZSBkb25lIG9uIHRoZSBFbGVtZW50IGxldmVsLgoKIEVsZW1lbnQgaXMgYSBmbGV4aWJsZSBjb250YWluZXIgb2JqZWN0IGRlc2lnbmVkIHRvIHN0b3JlIGhpZXJhcmNoaWNhbCBkYXRhCiBzdHJ1Y3R1cmVzIGluIG1lbW9yeS4gSXQgY2FuIGJlIGRlc2NyaWJlZCBhcyBhIGNyb3NzIGJldHdlZW4gYSBsaXN0IGFuZCBhCiBkaWN0aW9uYXJ5LiAgRWFjaCBFbGVtZW50IGhhcyBhIG51bWJlciBvZiBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCBpdDoKCiAgICAndGFnJyAtIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGVsZW1lbnQncyBuYW1lLgoKICAgICdhdHRyaWJ1dGVzJyAtIGEgUHl0aG9uIGRpY3Rpb25hcnkgc3RvcmluZyB0aGUgZWxlbWVudCdzIGF0dHJpYnV0ZXMuCgogICAgJ3RleHQnIC0gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgZWxlbWVudCdzIHRleHQgY29udGVudC4KCiAgICAndGFpbCcgLSBhbiBvcHRpb25hbCBzdHJpbmcgY29udGFpbmluZyB0ZXh0IGFmdGVyIHRoZSBlbGVtZW50J3MgZW5kIHRhZy4KCiAgICBBbmQgYSBudW1iZXIgb2YgY2hpbGQgZWxlbWVudHMgc3RvcmVkIGluIGEgUHl0aG9uIHNlcXVlbmNlLgoKIFRvIGNyZWF0ZSBhbiBlbGVtZW50IGluc3RhbmNlLCB1c2UgdGhlIEVsZW1lbnQgY29uc3RydWN0b3IsCiBvciB0aGUgU3ViRWxlbWVudCBmYWN0b3J5IGZ1bmN0aW9uLgoKIFlvdSBjYW4gYWxzbyB1c2UgdGhlIEVsZW1lbnRUcmVlIGNsYXNzIHRvIHdyYXAgYW4gZWxlbWVudCBzdHJ1Y3R1cmUKIGFuZCBjb252ZXJ0IGl0IHRvIGFuZCBmcm9tIFhNTC4KCtoHQ29tbWVudNoEZHVtcNoHRWxlbWVudNoLRWxlbWVudFRyZWXaCmZyb21zdHJpbmfaDmZyb21zdHJpbmdsaXN02glpc2VsZW1lbnTaCWl0ZXJwYXJzZdoFcGFyc2XaClBhcnNlRXJyb3LaAlBJ2hVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb27aBVFOYW1l2gpTdWJFbGVtZW502gh0b3N0cmluZ9oMdG9zdHJpbmdsaXN02gtUcmVlQnVpbGRlctoHVkVSU0lPTtoDWE1M2gVYTUxJRNoJWE1MUGFyc2Vy2g1YTUxQdWxsUGFyc2Vy2hJyZWdpc3Rlcl9uYW1lc3BhY2XaDGNhbm9uaWNhbGl6ZdoQQzE0TldyaXRlclRhcmdldHoFMS4zLjDpAAAAAE7pAQAAACkB2gtFbGVtZW50UGF0aGMAAAAAAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZAFaA2QCUwApA3IKAAAAeuxBbiBlcnJvciB3aGVuIHBhcnNpbmcgYW4gWE1MIGRvY3VtZW50LgoKICAgIEluIGFkZGl0aW9uIHRvIGl0cyBleGNlcHRpb24gdmFsdWUsIGEgUGFyc2VFcnJvciBjb250YWlucwogICAgdHdvIGV4dHJhIGF0dHJpYnV0ZXM6CiAgICAgICAgJ2NvZGUnICAgICAtIHRoZSBzcGVjaWZpYyBleGNlcHRpb24gY29kZQogICAgICAgICdwb3NpdGlvbicgLSB0aGUgbGluZSBhbmQgY29sdW1uIG9mIHRoZSBlcnJvcgoKICAgIE4pBNoIX19uYW1lX1/aCl9fbW9kdWxlX1/aDF9fcXVhbG5hbWVfX9oHX19kb2NfX6kAciEAAAByIQAA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ICAgICAgICAgKmVuY29kaW5nKiAtLSB0aGUgb3V0cHV0IGVuY29kaW5nIChkZWZhdWx0OiBVUy1BU0NJSSkKCiAgICAgICAgICAqeG1sX2RlY2xhcmF0aW9uKiAtLSBib29sIGluZGljYXRpbmcgaWYgYW4gWE1MIGRlY2xhcmF0aW9uIHNob3VsZCBiZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIG91dHB1dC4gSWYgTm9uZSwgYW4gWE1MIGRlY2xhcmF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBhZGRlZCBpZiBlbmNvZGluZyBJUyBOT1QgZWl0aGVyIG9mOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVMtQVNDSUksIFVURi04LCBvciBVbmljb2RlCgogICAgICAgICAgKmRlZmF1bHRfbmFtZXNwYWNlKiAtLSBzZXRzIHRoZSBkZWZhdWx0IFhNTCBuYW1lc3BhY2UgKGZvciAieG1sbnMiKQoKICAgICAgICAgICptZXRob2QqIC0tIGVpdGhlciAieG1sIiAoZGVmYXVsdCksICJodG1sLCAidGV4dCIsIG9yICJjMTRuIgoKICAgICAgICAgICpzaG9ydF9lbXB0eV9lbGVtZW50cyogLS0gY29udHJvbHMgdGhlIGZvcm1hdHRpbmcgb2YgZWxlbWVudHMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBjb250YWluIG5vIGNvbnRlbnQuIElmIFRydWUgKGRlZmF1bHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZXkgYXJlIGVtaXR0ZWQgYXMgYSBzaW5nbGUgc2VsZi1jbG9zZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnLCBvdGhlcndpc2UgdGhleSBhcmUgZW1pdHRlZCBhcyBhIHBhaXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Ygc3RhcnQvZW5kIHRhZ3MKCiAgICAgICAg2gN4bWx6EXVua25vd24gbWV0aG9kICVy2gRj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ZAx8BF8eZAx8BF8fZAx8BF8gZAB8AF8haQB8AF8iehBkDXwDaiMWAHwAXyRXAG4WBAB0JWsKkAFyXgEAAQABAFkAbgJYAGQAUwApDk5yGgAAAKkB2gVleHBhdHo3Tm8gbW9kdWxlIG5hbWVkIGV4cGF0OyB1c2UgU2ltcGxlWE1MVHJlZUJ1aWxkZXIgaW5zdGVhZHK+AAAAcikBAAByDQEAANoIc3RhcnRfbnPaBmVuZF9uc3KMAAAAciwBAAByLQEAAHIbAAAAeg5FeHBhdCAlZC4lZC4lZCkm2gt4bWwucGFyc2Vyc3IxAQAA2gtJbXBvcnRFcnJvcloHcHlleHBhdFoMUGFyc2VyQ3JlYXRlchEAAAByigAAAHIAAQAAcnEAAADaB190YXJnZXTaBWVycm9y2gZfZXJyb3LaBl9uYW1lc9oIX2RlZmF1bHRaFERlZmF1bHRIYW5kbGVyRXhwYW5kciQAAADaBl9zdGFydNoTU3RhcnRFbGVtZW50SGFuZGxlctoEX2VuZNoRRW5kRWxlbWVudEhhbmRsZXLaCV9zdGFydF9uc9oZU3RhcnROYW1lc3BhY2VEZWNsSGFuZGxlctoHX2VuZF9uc9oXRW5kTmFtZXNwYWNlRGVjbEhhbmRsZXJyjAAAAFoUQ2hhcmFjdGVyRGF0YUhhbmRsZXJyLAEAANoOQ29tbWVudEhhbmRsZXJyLQEAANocUHJvY2Vzc2luZ0luc3RydWN0aW9uSGFuZGxlcloLYnVmZmVyX3RleHTaEm9yZGVyZWRfYXR0cmlidXRlc9oUc3BlY2lmaWVkX2F0dHJpYnV0ZXPaCF9kb2N0eXBl2gZlbnRpdHnaDHZlcnNpb25faW5mb9oHdmVyc2lvbnKuAAAAKQVyLAAAAHJxAAAAcp8AAAByMQEAAHKKAAAAciEAAAByIQAAAHIiAAAAci4AAADaBQAAc1AAAAAAAQIBEAEOAQIBDAEOAQIBAv8QAwwBCAEGAgwBDAEIAQYCCAEKAQgBCgEIAQoBCAEKAQgBCgEIAgwBCAEMAQgCBgEGAQYBBgEGAQIBEAEQAXoSWE1MUGFyc2VyLl9faW5pdF9fYwMAAAAAAAAAAAAAAAcAAAAEAAAAQwAAAHM4AQAAfABqAH0DfAFqAX0EfAJEAJABXSB9BXwFZAFrAnJEZAJ8A18CZAJ8A18D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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 15
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
cElementTree.cpython-38.opt-1.pyc
175 B
lrw-r--r--
2023-10-17 18:13:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cElementTree.cpython-38.opt-2.pyc
175 B
lrw-r--r--
2023-10-17 18:13:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cElementTree.cpython-38.pyc
175 B
lrw-r--r--
2023-10-17 18:13:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-38.opt-1.pyc
1.54 KB
lrw-r--r--
2023-10-17 18:13:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-38.opt-2.pyc
1.54 KB
lrw-r--r--
2023-10-17 18:13:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-38.pyc
1.54 KB
lrw-r--r--
2023-10-17 18:13:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementPath.cpython-38.opt-1.pyc
8.24 KB
lrw-r--r--
2023-10-17 18:13:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementPath.cpython-38.opt-2.pyc
8.24 KB
lrw-r--r--
2023-10-17 18:13:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementPath.cpython-38.pyc
8.24 KB
lrw-r--r--
2023-10-17 18:13:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-38.opt-1.pyc
54.01 KB
lrw-r--r--
2023-10-17 18:13:07
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-38.opt-2.pyc
36.05 KB
lrw-r--r--
2023-10-17 18:13:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-38.pyc
54.32 KB
lrw-r--r--
2023-10-17 18:13:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-38.opt-1.pyc
133 B
lrw-r--r--
2023-10-17 18:13:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-38.opt-2.pyc
133 B
lrw-r--r--
2023-10-17 18:13:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-38.pyc
133 B
lrw-r--r--
2023-10-17 18:13:06
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).