REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 43.68 KB
Close
//lib64/python3.6/xml/etree/__pycache__/ElementTree.cpython-36.pyc
Text
Base64
Mw0NCgoAIFzF3gAA4wAAAAAAAAAAAAAAABcAAABAAAAAc0gCAABkAFoAZAFkAmQDZARkBWQGZAdkCGQJZApkC2QMZA1kDmQPZBBkEWQSZBNkFGQVZBZkF2cXWgFkGFoCZBlkGmwDWgNkGWQabARaBGQZZBpsBVoFZBlkGmwGWgZkGWQabAdaB2QZZBpsCFoIZBtkHGwJbQpaCgEARwBkHWQKhABkCmULgwNaDGQeZAeEAFoNRwBkH2QDhABkA4MCWg5pAGYBZCBkDoQBWg9kXmQhZAGEAVoQZF9kImQMhAFaEWURWhJHAGQjZA2EAGQNgwJaE0cAZCRkBIQAZASDAloUZQhqFWQlZCaEAIMBWhZkYGQnZCiEAVoXZClkKoQAWhhkYVoZeQxlGmUZgwFaGVcAbhYEAGUbawqQAXIiAQABAAEAWQBuAlgAZDhkOYQAWhxkOmQ7hABaHWUYZRxlHWQ8nANaHmQ9ZBeEAFofZD5kP2RAZEFkQmRDZERkRZwHWiBlIGUfXyBkRmRHhABaIWRIZEmEAFoiZEpkS4QAWiNkTGRNhABaJGRiZE5kT5wBZFBkD4QDWiVHAGRRZFKEAGRSZQZqJoMDWidkY2ROZE+cAWRTZBCEA1ooZFRkAoQAWilkZGRVZAmEAVoqZGVkVmQIhAFaK0cAZFdkFoQAZBaDAlosZGZkWGQThAFaLWRnZFlkFIQBWi5lLVovZGhkWmQGhAFaMEcAZFtkEYQAZBGDAloxRwBkXGQVhABkFYMCWjJ5EGUOWjNkGWRdbDRUAFcAbhYEAGU1awqQAnJCAQABAAEAWQBuAlgAZBpTAClpYQYFAABMaWdodHdlaWdodCBYTUwgc3VwcG9ydCBmb3IgUHl0aG9uLgoKIFhNTCBpcyBhbiBpbmhlcmVudGx5IGhpZXJhcmNoaWNhbCBkYXRhIGZvcm1hdCwgYW5kIHRoZSBtb3N0IG5hdHVyYWwgd2F5IHRvCiByZXByZXNlbnQgaXQgaXMgd2l0aCBhIHRyZWUuICBUaGlzIG1vZHVsZSBoYXMgdHdvIGNsYXNzZXMgZm9yIHRoaXMgcHVycG9zZToKCiAgICAxLiBFbGVtZW50VHJlZSByZXByZXNlbnRzIHRoZSB3aG9sZSBYTUwgZG9jdW1lbnQgYXMgYSB0cmVlIGFuZAoKICAgIDIuIEVsZW1lbnQgcmVwcmVzZW50cyBhIHNpbmdsZSBub2RlIGluIHRoaXMgdHJlZS4KCiBJbnRlcmFjdGlvbnMgd2l0aCB0aGUgd2hvbGUgZG9jdW1lbnQgKHJlYWRpbmcgYW5kIHdyaXRpbmcgdG8vZnJvbSBmaWxlcykgYXJlCiB1c3VhbGx5IGRvbmUgb24gdGhlIEVsZW1lbnRUcmVlIGxldmVsLiAgSW50ZXJhY3Rpb25zIHdpdGggYSBzaW5nbGUgWE1MIGVsZW1lbnQKIGFuZCBpdHMgc3ViLWVsZW1lbnRzIGFyZSBkb25lIG9uIHRoZSBFbGVtZW50IGxldmVsLgoKIEVsZW1lbnQgaXMgYSBmbGV4aWJsZSBjb250YWluZXIgb2JqZWN0IGRlc2lnbmVkIHRvIHN0b3JlIGhpZXJhcmNoaWNhbCBkYXRhCiBzdHJ1Y3R1cmVzIGluIG1lbW9yeS4gSXQgY2FuIGJlIGRlc2NyaWJlZCBhcyBhIGNyb3NzIGJldHdlZW4gYSBsaXN0IGFuZCBhCiBkaWN0aW9uYXJ5LiAgRWFjaCBFbGVtZW50IGhhcyBhIG51bWJlciBvZiBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCBpdDoKCiAgICAndGFnJyAtIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGVsZW1lbnQncyBuYW1lLgoKICAgICdhdHRyaWJ1dGVzJyAtIGEgUHl0aG9uIGRpY3Rpb25hcnkgc3RvcmluZyB0aGUgZWxlbWVudCdzIGF0dHJpYnV0ZXMuCgogICAgJ3RleHQnIC0gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgZWxlbWVudCdzIHRleHQgY29udGVudC4KCiAgICAndGFpbCcgLSBhbiBvcHRpb25hbCBzdHJpbmcgY29udGFpbmluZyB0ZXh0IGFmdGVyIHRoZSBlbGVtZW50J3MgZW5kIHRhZy4KCiAgICBBbmQgYSBudW1iZXIgb2YgY2hpbGQgZWxlbWVudHMgc3RvcmVkIGluIGEgUHl0aG9uIHNlcXVlbmNlLgoKIFRvIGNyZWF0ZSBhbiBlbGVtZW50IGluc3RhbmNlLCB1c2UgdGhlIEVsZW1lbnQgY29uc3RydWN0b3IsCiBvciB0aGUgU3ViRWxlbWVudCBmYWN0b3J5IGZ1bmN0aW9uLgoKIFlvdSBjYW4gYWxzbyB1c2UgdGhlIEVsZW1lbnRUcmVlIGNsYXNzIHRvIHdyYXAgYW4gZWxlbWVudCBzdHJ1Y3R1cmUKIGFuZCBjb252ZXJ0IGl0IHRvIGFuZCBmcm9tIFhNTC4KCtoHQ29tbWVudNoEZHVtcNoHRWxlbWVudNoLRWxlbWVudFRyZWXaCmZyb21zdHJpbmfaDmZyb21zdHJpbmdsaXN02glpc2VsZW1lbnTaCWl0ZXJwYXJzZdoFcGFyc2XaClBhcnNlRXJyb3LaAlBJ2hVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb27aBVFOYW1l2gpTdWJFbGVtZW502gh0b3N0cmluZ9oMdG9zdHJpbmdsaXN02gtUcmVlQnVpbGRlctoHVkVSU0lPTtoDWE1M2gVYTUxJRNoJWE1MUGFyc2Vy2g1YTUxQdWxsUGFyc2Vy2hJyZWdpc3Rlcl9uYW1lc3BhY2V6BTEuMy4w6QAAAABO6QEAAAApAdoLRWxlbWVudFBhdGhjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZAFaA2QCUwApA3IKAAAAeuxBbiBlcnJvciB3aGVuIHBhcnNpbmcgYW4gWE1MIGRvY3VtZW50LgoKICAgIEluIGFkZGl0aW9uIHRvIGl0cyBleGNlcHRpb24gdmFsdWUsIGEgUGFyc2VFcnJvciBjb250YWlucwogICAgdHdvIGV4dHJhIGF0dHJpYnV0ZXM6CiAgICAgICAgJ2NvZGUnICAgICAtIHRoZSBzcGVjaWZpYyBleGNlcHRpb24gY29kZQogICAgICAgICdwb3NpdGlvbicgLSB0aGUgbGluZSBhbmQgY29sdW1uIG9mIHRoZSBlcnJvcgoKICAgIE4pBNoIX19uYW1lX1/aCl9fbW9kdWxlX1/aDF9fcXVhbG5hbWVfX9oHX19kb2NfX6kAch8AAAByHwAAAPotL3Vzci9saWI2NC9weXRob24zLjYveG1sL2V0cmVlL0VsZW1lbnRUcmVlLnB5cgoAAABoAAAAcwQAAAAICAQBYwEAAAAAAAAAAQAAAAMAAABDAAAAcwoAAAB0AHwAZAGDAlMAKQJ6MlJldHVybiBUcnVlIGlmICplbGVtZW50KiBhcHBlYXJzIHRvIGJlIGFuIEVsZW1lbnQu2gN0YWcpAdoHaGFzYXR0cikB2gdlbGVtZW50ch8AAAByHwAAAHIgAAAAcgcAAAB2AAAAcwIAAAAAAmMAAAAAAAAAAAAAAAADAAAAQAAAAHMKAQAAZQBaAWQAWgJkAVoDZAJaBGQCWgVkAloGZAJaB2kAZgFkA2QEhAFaCGQFZAaEAFoJZAdkCIQAWgpkCWQKhABaC2QLZAyEAFoMZA1kDoQAWg1kD2QQhABaDmQRZBKEAFoPZBNkFIQAWhBkFWQWhABaEWQXZBiEAFoSZBlkGoQAWhNkG2QchABaFGQdZB6EAFoVZB9kIIQAWhZkOWQhZCKEAVoXZDpkI2QkhAFaGGQ7ZCVkJoQBWhlkPGQnZCiEAVoaZClkKoQAWhtkPWQrZCyEAVocZC1kLoQAWh1kL2QwhABaHmQxZDKEAFofZD5kM2Q0hAFaIGQ/ZDVkNoQBWiFkN2Q4hABaImQCUwApQHIDAAAAYWgCAABBbiBYTUwgZWxlbWVudC4KCiAgICBUaGlzIGNsYXNzIGlzIHRoZSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIEVsZW1lbnQgaW50ZXJmYWNlLgoKICAgIEFuIGVsZW1lbnQncyBsZW5ndGggaXMgaXRzIG51bWJlciBvZiBzdWJlbGVtZW50cy4gIFRoYXQgbWVhbnMgaWYgeW91CiAgICB3YW50IHRvIGNoZWNrIGlmIGFuIGVsZW1lbnQgaXMgdHJ1bHkgZW1wdHksIHlvdSBzaG91bGQgY2hlY2sgQk9USAogICAgaXRzIGxlbmd0aCBBTkQgaXRzIHRleHQgYXR0cmlidXRlLgoKICAgIFRoZSBlbGVtZW50IHRhZywgYXR0cmlidXRlIG5hbWVzLCBhbmQgYXR0cmlidXRlIHZhbHVlcyBjYW4gYmUgZWl0aGVyCiAgICBieXRlcyBvciBzdHJpbmdzLgoKICAgICp0YWcqIGlzIHRoZSBlbGVtZW50IG5hbWUuICAqYXR0cmliKiBpcyBhbiBvcHRpb25hbCBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcKICAgIGVsZW1lbnQgYXR0cmlidXRlcy4gKmV4dHJhKiBhcmUgYWRkaXRpb25hbCBlbGVtZW50IGF0dHJpYnV0ZXMgZ2l2ZW4gYXMKICAgIGtleXdvcmQgYXJndW1lbnRzLgoKICAgIEV4YW1wbGUgZm9ybToKICAgICAgICA8dGFnIGF0dHJpYj50ZXh0PGNoaWxkLz4uLi48L3RhZz50YWlsCgogICAgTmMDAAAAAAAAAAQAAAADAAAASwAAAHNEAAAAdAB8AnQBgwJzHHQCZAF8AmoDagRmARYAgwGCAXwCagWDAH0CfAJqBnwDgwEBAHwBfABfB3wCfABfCGcAfABfCWQAUwApAk56G2F0dHJpYiBtdXN0IGJlIGRpY3QsIG5vdCAlcykK2gppc2luc3RhbmNl2gRkaWN02glUeXBlRXJyb3LaCV9fY2xhc3NfX3IbAAAA2gRjb3B52gZ1cGRhdGVyIQAAANoGYXR0cmli2glfY2hpbGRyZW4pBNoEc2VsZnIhAAAAcioAAADaBWV4dHJhch8AAAByHwAAAHIgAAAA2ghfX2luaXRfX6cAAABzEAAAAAABCgEEAQ4BCAEKAQYBBgF6EEVsZW1lbnQuX19pbml0X19jAQAAAAAAAAABAAAABQAAAEMAAABzGAAAAGQBfABqAGoBfABqAnQDfACDAWYDFgBTACkCTnoOPCVzICVyIGF0ICUjeD4pBHInAAAAchsAAAByIQAAANoCaWQpAXIsAAAAch8AAAByHwAAAHIgAAAA2ghfX3JlcHJfX7EAAABzAgAAAAABehBFbGVtZW50Ll9fcmVwcl9fYwMAAAAAAAAAAwAAAAMAAABDAAAAcwwAAAB8AGoAfAF8AoMCUwApAXr9Q3JlYXRlIGEgbmV3IGVsZW1lbnQgd2l0aCB0aGUgc2FtZSB0eXBlLgoKICAgICAgICAqdGFnKiBpcyBhIHN0cmluZyBjb250YWluaW5nIHRoZSBlbGVtZW50IG5hbWUuCiAgICAgICAgKmF0dHJpYiogaXMgYSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgdGhlIGVsZW1lbnQgYXR0cmlidXRlcy4KCiAgICAgICAgRG8gbm90IGNhbGwgdGhpcyBtZXRob2QsIHVzZSB0aGUgU3ViRWxlbWVudCBmYWN0b3J5IGZ1bmN0aW9uIGluc3RlYWQuCgogICAgICAgICkBcicAAAApA3IsAAAAciEAAAByKgAAAHIfAAAAch8AAAByIAAAANoLbWFrZWVsZW1lbnS0AAAAcwIAAAAACXoTRWxlbWVudC5tYWtlZWxlbWVudGMBAAAAAAAAAAIAAAAEAAAAQwAAAHMwAAAAfABqAHwAagF8AGoCgwJ9AXwAagN8AV8DfABqBHwBXwR8AHwBZAFkAYUCPAB8AVMAKQJ6ilJldHVybiBjb3B5IG9mIGN1cnJlbnQgZWxlbWVudC4KCiAgICAgICAgVGhpcyBjcmVhdGVzIGEgc2hhbGxvdyBjb3B5LiBTdWJlbGVtZW50cyB3aWxsIGJlIHNoYXJlZCB3aXRoIHRoZQogICAgICAgIG9yaWdpbmFsIHRyZWUuCgogICAgICAgIE4pBXIxAAAAciEAAAByKgAAANoEdGV4dNoEdGFpbCkCciwAAADaBGVsZW1yHwAAAHIfAAAAciAAAAByKAAAAL8AAABzCgAAAAAHEAEIAQgBDAF6DEVsZW1lbnQuY29weWMBAAAAAAAAAAEAAAACAAAAQwAAAHMKAAAAdAB8AGoBgwFTACkBTikC2gNsZW5yKwAAACkBciwAAAByHwAAAHIfAAAAciAAAADaB19fbGVuX1/MAAAAcwIAAAAAAXoPRWxlbWVudC5fX2xlbl9fYwEAAAAAAAAAAQAAAAUAAABDAAAAcx4AAAB0AGoBZAF0AmQCZAONAwEAdAN8AGoEgwFkBGsDUwApBU56eVRoZSBiZWhhdmlvciBvZiB0aGlzIG1ldGhvZCB3aWxsIGNoYW5nZSBpbiBmdXR1cmUgdmVyc2lvbnMuICBVc2Ugc3BlY2lmaWMgJ2xlbihlbGVtKScgb3IgJ2VsZW0gaXMgbm90IE5vbmUnIHRlc3QgaW5zdGVhZC7pAgAAACkB2gpzdGFja2xldmVschgAAAApBdoId2FybmluZ3PaBHdhcm7aDUZ1dHVyZVdhcm5pbmdyNQAAAHIrAAAAKQFyLAAAAHIfAAAAch8AAAByIAAAANoIX19ib29sX1/PAAAAcwgAAAAAAQQBAgIKAnoQRWxlbWVudC5fX2Jvb2xfX2MCAAAAAAAAAAIAAAACAAAAQwAAAHMKAAAAfABqAHwBGQBTACkBTikBcisAAAApAnIsAAAA2gVpbmRleHIfAAAAch8AAAByIAAAANoLX19nZXRpdGVtX1/XAAAAcwIAAAAAAXoTRWxlbWVudC5fX2dldGl0ZW1fX2MDAAAAAAAAAAMAAAADAAAAQwAAAHMOAAAAfAJ8AGoAfAE8AGQAUwApAU4pAXIrAAAAKQNyLAAAAHI9AAAAciMAAAByHwAAAHIfAAAAciAAAADaC19fc2V0aXRlbV9f2gAAAHMCAAAAAAZ6E0VsZW1lbnQuX19zZXRpdGVtX19jAgAAAAAAAAACAAAAAgAAAEMAAABzDAAAAHwAagB8AT0AZABTACkBTikBcisAAAApAnIsAAAAcj0AAAByHwAAAHIfAAAAciAAAADaC19fZGVsaXRlbV9f4gAAAHMCAAAAAAF6E0VsZW1lbnQuX19kZWxpdGVtX19jAgAAAAAAAAACAAAAAgAAAEMAAABzGgAAAHwAagB8AYMBAQB8AGoBagJ8AYMBAQBkAVMAKQJhBQEAAEFkZCAqc3ViZWxlbWVudCogdG8gdGhlIGVuZCBvZiB0aGlzIGVsZW1lbnQuCgogICAgICAgIFRoZSBuZXcgZWxlbWVudCB3aWxsIGFwcGVhciBpbiBkb2N1bWVudCBvcmRlciBhZnRlciB0aGUgbGFzdCBleGlzdGluZwogICAgICAgIHN1YmVsZW1lbnQgKG9yIGRpcmVjdGx5IGFmdGVyIHRoZSB0ZXh0LCBpZiBpdCdzIHRoZSBmaXJzdCBzdWJlbGVtZW50KSwKICAgICAgICBidXQgYmVmb3JlIHRoZSBlbmQgdGFnIGZvciB0aGlzIGVsZW1lbnQuCgogICAgICAgIE4pA9oSX2Fzc2VydF9pc19lbGVtZW50cisAAADaBmFwcGVuZCkCciwAAADaCnN1YmVsZW1lbnRyHwAAAHIfAAAAciAAAAByQgAAAOUAAABzBAAAAAAICgF6DkVsZW1lbnQuYXBwZW5kYwIAAAAAAAAAAwAAAAMAAABDAAAAcygAAAB4FnwBRABdDn0CfABqAHwCgwEBAHEGVwB8AGoBagJ8AYMBAQBkAVMAKQJ6a0FwcGVuZCBzdWJlbGVtZW50cyBmcm9tIGEgc2VxdWVuY2UuCgogICAgICAgICplbGVtZW50cyogaXMgYSBzZXF1ZW5jZSB3aXRoIHplcm8gb3IgbW9yZSBlbGVtZW50cy4KCiAgICAgICAgTikDckEAAAByKwAAANoGZXh0ZW5kKQNyLAAAANoIZWxlbWVudHNyIwAAAHIfAAAAch8AAAByIAAAAHJEAAAA8AAAAHMGAAAAAAYKAQ4Beg5FbGVtZW50LmV4dGVuZGMDAAAAAAAAAAMAAAADAAAAQwAAAHMcAAAAfABqAHwCgwEBAHwAagFqAnwBfAKDAgEAZAFTACkCeihJbnNlcnQgKnN1YmVsZW1lbnQqIGF0IHBvc2l0aW9uICppbmRleCouTikDckEAAAByKwAAANoGaW5zZXJ0KQNyLAAAAHI9AAAAckMAAAByHwAAAHIfAAAAciAAAAByRgAAAPoAAABzBAAAAAACCgF6DkVsZW1lbnQuaW5zZXJ0YwIAAAAAAAAAAgAAAAQAAABDAAAAcyAAAAB0AHwBdAGDAnMcdAJkAXQDfAGDAWoEFgCDAYIBZABTACkCTnobZXhwZWN0ZWQgYW4gRWxlbWVudCwgbm90ICVzKQVyJAAAANoLX0VsZW1lbnRfUHlyJgAAANoEdHlwZXIbAAAAKQJyLAAAANoBZXIfAAAAch8AAAByIAAAAHJBAAAA/wAAAHMEAAAAAAMKAXoaRWxlbWVudC5fYXNzZXJ0X2lzX2VsZW1lbnRjAgAAAAAAAAACAAAAAgAAAEMAAABzEAAAAHwAagBqAXwBgwEBAGQBUwApAmGxAQAAUmVtb3ZlIG1hdGNoaW5nIHN1YmVsZW1lbnQuCgogICAgICAgIFVubGlrZSB0aGUgZmluZCBtZXRob2RzLCB0aGlzIG1ldGhvZCBjb21wYXJlcyBlbGVtZW50cyBiYXNlZCBvbgogICAgICAgIGlkZW50aXR5LCBOT1QgT04gdGFnIHZhbHVlIG9yIGNvbnRlbnRzLiAgVG8gcmVtb3ZlIHN1YmVsZW1lbnRzIGJ5CiAgICAgICAgb3RoZXIgbWVhbnMsIHRoZSBlYXNpZXN0IHdheSBpcyB0byB1c2UgYSBsaXN0IGNvbXByZWhlbnNpb24gdG8KICAgICAgICBzZWxlY3Qgd2hhdCBlbGVtZW50cyB0byBrZWVwLCBhbmQgdGhlbiB1c2Ugc2xpY2UgYXNzaWdubWVudCB0byB1cGRhdGUKICAgICAgICB0aGUgcGFyZW50IGVsZW1lbnQuCgogICAgICAgIFZhbHVlRXJyb3IgaXMgcmFpc2VkIGlmIGEgbWF0Y2hpbmcgZWxlbWVudCBjb3VsZCBub3QgYmUgZm91bmQuCgogICAgICAgIE4pAnIrAAAA2gZyZW1vdmUpAnIsAAAAckMAAAByHwAAAHIfAAAAciAAAABySgAAAAUBAABzAgAAAAANeg5FbGVtZW50LnJlbW92ZWMBAAAAAAAAAAEAAAAFAAAAQwAAAHMWAAAAdABqAWQBdAJkAmQDjQMBAHwAagNTACkEemAoRGVwcmVjYXRlZCkgUmV0dXJuIGFsbCBzdWJlbGVtZW50cy4KCiAgICAgICAgRWxlbWVudHMgYXJlIHJldHVybmVkIGluIGRvY3VtZW50IG9yZGVyLgoKICAgICAgICB6YVRoaXMgbWV0aG9kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMuICBVc2UgJ2xpc3QoZWxlbSknIG9yIGl0ZXJhdGlvbiBvdmVyIGVsZW0gaW5zdGVhZC5yNwAAACkBcjgAAAApBHI5AAAAcjoAAADaEkRlcHJlY2F0aW9uV2FybmluZ3IrAAAAKQFyLAAAAHIfAAAAch8AAAByIAAAANoLZ2V0Y2hpbGRyZW4UAQAAcwgAAAAABgQBAgIKAnoTRWxlbWVudC5nZXRjaGlsZHJlbmMDAAAAAAAAAAMAAAAEAAAAQwAAAHMOAAAAdABqAXwAfAF8AoMDUwApAWEdAQAARmluZCBmaXJzdCBtYXRjaGluZyBlbGVtZW50IGJ5IHRhZyBuYW1lIG9yIHBhdGguCgogICAgICAgICpwYXRoKiBpcyBhIHN0cmluZyBoYXZpbmcgZWl0aGVyIGFuIGVsZW1lbnQgdGFnIG9yIGFuIFhQYXRoLAogICAgICAgICpuYW1lc3BhY2VzKiBpcyBhbiBvcHRpb25hbCBtYXBwaW5nIGZyb20gbmFtZXNwYWNlIHByZWZpeCB0byBmdWxsIG5hbWUuCgogICAgICAgIFJldHVybiB0aGUgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCwgb3IgTm9uZSBpZiBubyBlbGVtZW50IHdhcyBmb3VuZC4KCiAgICAgICAgKQJyGgAAANoEZmluZCkDciwAAADaBHBhdGjaCm5hbWVzcGFjZXNyHwAAAHIfAAAAciAAAAByTQAAACEBAABzAgAAAAAJegxFbGVtZW50LmZpbmRjBAAAAAAAAAAEAAAABQAAAEMAAABzEAAAAHQAagF8AHwBfAJ8A4MEUwApAWHkAQAARmluZCB0ZXh0IGZvciBmaXJzdCBtYXRjaGluZyBlbGVtZW50IGJ5IHRhZyBuYW1lIG9yIHBhdGguCgogICAgICAgICpwYXRoKiBpcyBhIHN0cmluZyBoYXZpbmcgZWl0aGVyIGFuIGVsZW1lbnQgdGFnIG9yIGFuIFhQYXRoLAogICAgICAgICpkZWZhdWx0KiBpcyB0aGUgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBlbGVtZW50IHdhcyBub3QgZm91bmQsCiAgICAgICAgKm5hbWVzcGFjZXMqIGlzIGFuIG9wdGlvbmFsIG1hcHBpbmcgZnJvbSBuYW1lc3BhY2UgcHJlZml4IHRvIGZ1bGwgbmFtZS4KCiAgICAgICAgUmV0dXJuIHRleHQgY29udGVudCBvZiBmaXJzdCBtYXRjaGluZyBlbGVtZW50LCBvciBkZWZhdWx0IHZhbHVlIGlmCiAgICAgICAgbm9uZSB3YXMgZm91bmQuICBOb3RlIHRoYXQgaWYgYW4gZWxlbWVudCBpcyBmb3VuZCBoYXZpbmcgbm8gdGV4dAogICAgICAgIGNvbnRlbnQsIHRoZSBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQuCgogICAgICAgICkCchoAAADaCGZpbmR0ZXh0KQRyLAAAAHJOAAAA2gdkZWZhdWx0ck8AAAByHwAAAHIfAAAAciAAAAByUAAAACwBAABzAgAAAAAMehBFbGVtZW50LmZpbmR0ZXh0YwMAAAAAAAAAAwAAAAQAAABDAAAAcw4AAAB0AGoBfAB8AXwCgwNTACkBYRwBAABGaW5kIGFsbCBtYXRjaGluZyBzdWJlbGVtZW50cyBieSB0YWcgbmFtZSBvciBwYXRoLgoKICAgICAgICAqcGF0aCogaXMgYSBzdHJpbmcgaGF2aW5nIGVpdGhlciBhbiBlbGVtZW50IHRhZyBvciBhbiBYUGF0aCwKICAgICAgICAqbmFtZXNwYWNlcyogaXMgYW4gb3B0aW9uYWwgbWFwcGluZyBmcm9tIG5hbWVzcGFjZSBwcmVmaXggdG8gZnVsbCBuYW1lLgoKICAgICAgICBSZXR1cm5zIGxpc3QgY29udGFpbmluZyBhbGwgbWF0Y2hpbmcgZWxlbWVudHMgaW4gZG9jdW1lbnQgb3JkZXIuCgogICAgICAgICkC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ZAl8CWYBFgCDAQEAfAVkCmsCcqR0BnwIfABqB4MCAQBuLHQIfABqB3wEgwJcAn0LfQx0AHwFGQB9DXwNfAh8AGoHfAt8DHwGZAuNBQEAVwBkBlEAUgBYAGQGUwApDWHyAwAAV3JpdGUgZWxlbWVudCB0cmVlIHRvIGEgZmlsZSBhcyBYTUwuCgogICAgICAgIEFyZ3VtZW50czoKICAgICAgICAgICpmaWxlX29yX2ZpbGVuYW1lKiAtLSBmaWxlIG5hbWUgb3IgYSBmaWxlIG9iamVjdCBvcGVuZWQgZm9yIHdyaXRpbmcKCiAgICAgICAgICAqZW5jb2RpbmcqIC0tIHRoZSBvdXRwdXQgZW5jb2RpbmcgKGRlZmF1bHQ6IFVTLUFTQ0lJKQoKICAgICAgICAgICp4bWxfZGVjbGFyYXRpb24qIC0tIGJvb2wgaW5kaWNhdGluZyBpZiBhbiBYTUwgZGVjbGFyYXRpb24gc2hvdWxkIGJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRlZCB0byB0aGUgb3V0cHV0LiBJZiBOb25lLCBhbiBYTUwgZGVjbGFyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIGFkZGVkIGlmIGVuY29kaW5nIElTIE5PVCBlaXRoZXIgb2Y6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUy1BU0NJSSwgVVRGLTgsIG9yIFVuaWNvZGUKCiAgICAgICAgICAqZGVmYXVsdF9uYW1lc3BhY2UqIC0tIHNldHMgdGhlIGRlZmF1bHQgWE1MIG5hbWVzcGFjZSAoZm9yICJ4bWxucyIpCgogICAgICAgICAgKm1ldGhvZCogLS0gZWl0aGVyICJ4bWwiIChkZWZhdWx0KSwgImh0bWwsICJ0ZXh0Iiwgb3IgImMxNG4iCgogICAgICAgICAgKnNob3J0X2VtcHR5X2VsZW1lbnRzKiAtLSBjb250cm9scyB0aGUgZm9ybWF0dGluZyBvZiBlbGVtZW50cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGNvbnRhaW4gbm8gY29udGVudC4gSWYgVHJ1ZSAoZGVmYXVsdCkKICAgICAgICAg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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-36.opt-1.pyc
167 B
lrw-r--r--
2026-03-24 13:15:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cElementTree.cpython-36.opt-2.pyc
167 B
lrw-r--r--
2026-03-24 13:15:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cElementTree.cpython-36.pyc
167 B
lrw-r--r--
2026-03-24 13:15:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-36.opt-1.pyc
1.52 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
ElementInclude.cpython-36.opt-2.pyc
1.52 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
ElementInclude.cpython-36.pyc
1.52 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
ElementPath.cpython-36.opt-1.pyc
5.99 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
ElementPath.cpython-36.opt-2.pyc
5.99 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
ElementPath.cpython-36.pyc
5.99 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
ElementTree.cpython-36.opt-1.pyc
43.39 KB
lrw-r--r--
2026-03-24 13:15:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-36.opt-2.pyc
27.48 KB
lrw-r--r--
2026-03-24 13:15:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-36.pyc
43.68 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.opt-1.pyc
125 B
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.opt-2.pyc
125 B
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
125 B
lrw-r--r--
2026-03-24 13:15:24
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).