REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 79.86 KB
Close
/lib64/python3.6/test/support/__pycache__/__init__.cpython-36.pyc
Text
Base64
Mw0NCjSNwmmdkwEA4wAAAAAAAAAAAAAAAJwAAABAAAAAc2wNAABkAFoAZQFkAWsDchRlAmQCgwGCAWQDZARsA1oEZANkBGwFWgVkA2QEbAZaBmQDZARsB1oHZANkBGwIWghkA2QEbAlaCWQDZARsCloKZANkBGwLWgtkA2QEbAxaDGQDZARsDVoNZANkBGwOWg1kA2QEbA9aD2QDZARsEFoRZANkBGwSWhJkA2QEbBNaE2QDZARsFFoUZANkBGwVWhVkA2QEbBZaFmQDZARsF1oXZANkBGwYWhhkA2QEbBlaGWQDZARsGloaZANkBGwbWhtkA2QEbBxaHGQDZARsHVodZANkBGweWh5kA2QEbB9aH2QDZARsIFogZANkBGwhWiJkA2QEbCNaI2QFZAZsJG0lWiUBAHkUZANkBGwmWiZkA2QEbCdaJ1cAbh4EAGUCawqQAXJCAQABAAEAZARaJmQEWidZAG4CWAB5DGQDZARsKFopVwBuGgQAZQJrCpABcmoBAAEAAQBkBFopWQBuAlgAeQxkA2QEbCpaKlcAbhoEAGUCawqQAXKSAQABAAEAZARaKlkAbgJYAHkMZANkBGwrWitXAG4aBABlAmsKkAFyugEAAQABAGQEWitZAG4CWAB5DGQDZARsLFosVwBuGgQAZQJrCpABcuIBAAEAAQBkBFosWQBuAlgAeQxkA2QEbC1aLVcAbhoEAGUCawqQAnIKAQABAAEAZARaLVkAbgJYAHkMZANkBGwuWi5XAG4aBABlAmsKkAJyMgEAAQABAGQEWi5ZAG4CWAB5DGQDZARsL1ovVwBuGgQAZQJrCpACcloBAAEAAQBkBFovWQBuAlgAZAdkCGQJZApkC2QMZA1kDmQPZBBkEWQSZBNkFGQVZBZkF2QYZBlkGmQbZBxkHWQeZB9kIGQhZCJkI2QkZCVkJmQnZChkKWQqZCtkLGQtZC5kL2QwZDFkMmQzZDRkNWQ2ZDdkOGQ5ZDpkO2Q8ZD1kPmQ/ZEBkQWRCZENkRGRFZEZkR2RIZElkSmRLZExkTWROZE9kUGRRZFJkU2RUZFVkVmRXZFhkWWRaZFtkXGRdZF5kX2RgZGFkYmdcWjBHAGRjZAyEAGQMZTGDA1oyRwBkZGQNhABkDWUygwNaM0cAZGVkDoQAZA5lMoMDWjRHAGRmZA+EAGQPZSBqNYMDWjZlBWo3kAFkaGRoZGmEAYMBWjiQAWRpZgBka5wBZGxkEIQDWjlkbWRuhABaOmRvZHCEAFo7ZHFkPYQAWjxkcmQ+hABaPWYAZgBkamYDZHNkEYQBWj5kdGQ5hABaP2QFWkBkBFpBZANhQmQDYUNkBFpEZGpaRWQEYUZkdWQVhABaR2R2ZBaEAFpIZHdkE4QAWklkeGR5hABaSmUbahRqS2R6gwGQBHIukAFkamR7ZHyEAVpMZH1kfoQAWk1kf2SAhABaTmSBZIKEAFpPZINkhIQAWlBuHGUTalFaTWUTalJaTmSFZIKEAFpPZIZkhIQAWlBkh2QchABaUWSIZImEAFpSZIpkHYQAWlNki2SMhABaVGSNZBSEAFpVZI5kj4QAWlZkkGQjhABaV5ABZGtkkWQkhAFaWGSSZJOEAFpZZJRkJYQAWlpklWQmhABaW2SWZCeEAFpckAFkbGSXZCiEAVpdZJhaXmSZWl9lF2pgZRdqYWYCZJpkSoQBWmJlXmYBZJtkS4QBWmNknGRNhABaZGSdZJ6EAFplZWWDAFpmZJ9koIQAWmeQAWRvWmiQAWRyWmllIGpqZWtqbGSkgwFqS2SlgwFkpoMCWm1lIGpqZSpkp4MCWm5lIGpqZStkqIMCWm9lIGpqZSxkqYMCWnBlIGpqZS1kqoMCWnFlG2oUaktkq4MBWnJlHGpzZKyDAVp0ZXRkBGsJkAVveGV0ZANrBFp1ZRtqFGStawOQBXKWZXWQBXKQZK5uAmSvWnZuBGQEWnZlE2p3ZKtrApAFcqxksFp4bgRksVp4ZLJqeWV4ZRNqeoMAgwJaeGQEWnt4TJABZHNEAF1CWnx5HmUTan1lE2p+ZXyDAYMBZXxrA5AFcuxlf4IBVwBuFgQAZX9rCpAGcgQBAAEAAQBZAG4IWABlfFp7UACQBXHMVwBleGS+FwBagGUbahRkv2sCkAZyOmQDZARsgVqBZYFqgmTAZYCDAlqAZRtqg4MAWoRkBFqFZRNqd2TBawKQBnKmZRtqhoMAahRkwmsFkAZy6GV4ZMMXAFqFeQ5lhWqHZYSDAQEAVwBuFgQAZYhrCpAGco4BAAEAAQBZAG4WWABliWTEZYVlhGYCFgCDAQEAZARahW5CZRtqFGS/awOQBnLoeQ5kxWqKZYSDAQEAVwBuJgQAZYtrCpAGcuYBAAEAAQBleGTGaoplhGTHgwIXAFqFWQBuAlgAZARajHhGkAFkdEQAXTxad3kOZXdqimWEgwEBAFcAbiYEAGWLawqQB3IsAQABAAEAZRNqfmV4gwFldxcAWoxQAFkAbgJYAJAGcfRXAGV7kAdySGV4ZMwXAGV7FwBajW4EZARajWUTao6DAFqPZGpakGRqWpFlBWo3kAFkdWTNZM6EAYMBWpJlBWo3kAFkdmTPZNCEAYMBWpNlBWo3kAFkd2TSZB6EAYMBWpRllWUTZNODApAHcqxlBWo3ZNRkToQAgwFalmUTapdqmGUTapdqmWWagwGDAVqbZRNql2qYZZuDAVqcZRNql2qdZZxk1YMCWp6QAWR4ZNZkH4QBWp9k12QghABaoGTYZF6EAFqhZNlk2oQAWqJkBGQEZNucAmTcZCmEAlqjZN1kTIQAWqRHAGTeZN+EAGTfZaWDA1qmkAFkeWTgZOGEAVqnZQVqN2TiZFWEAIMBWqhlBWo3ZONlqWRqZgNk5GTlhAGDAVqqZQVqN2TmZFaEAIMBWqtHAGTnZBKEAGQSZaWDA1qsRwBk6GRXhABkV2UEaq1qroMDWq9HAGTpZOqEAGTqZaWDA1qwRwBk62QqhABkKmWlgwNasWWxZbJlB2qzZOyNAlq0ZbFlsmUHarVk7I0CWrZlsWWyZQdqtWTsjQJat2UFajdk7WYAZO6cAmTvZC6EAoMBWrhlBWo3ZPBk8YQAgwFauWTyZBeEAFq6ZPNkGYQAWrtk9GQYhABavGT1ZPaEAFq9ZQVqN2T3ZPiEAIMBWr5k+WT6hABav2T7WsBk/FrBZZVlG2T9gwKQCXJMZP5lwBcAWsBk/1rBZcCQAWQAFwBawpABZAGQAWQChABaw5ABZAOQAWQEhABaxJABZHpaxZABZHtaxpABZAeQAWQIhABax5ABZAlkWIQAWsiQAWQKZF+EAFrJkAFkfFrKZKJlyhQAWstkwmXLFABazGShZcsUAFrNZRtqzlrPkAFkC2RchABa0EcAkAFkDJABZA2EAJABZA2DAlrRkAFkfZABZA5kNoQBWtKQAWQPZDeEAFrTRwCQAWQQZC+EAGQvgwJa1JABZBGQAWQShABa1ZABZBOQAWQUhABa1pABZBVkQYQAWteQAWQWZDiEAFrYkAFkfpABZBeQAWQYhAFa2WQEYdqQAWQZZEKEAFrbkAFkGpABZBuEAFrckAFkHGRFhABa3ZABZB2QAWQehABa3pABZB+QAWQghABa35ABZCGQAWQihABa4JABZCOQAWQkhABa4WQEYeJkBGHjkAFkJZABZCaEAFrkkAFkJ5ABZCiEAFrlkAFkKZABZCqEAFrmkAFkK2QwhABa55ABZCyQAWQthABa6GXdgwCQCm/2ZRtqFGStawOQCm/2ZRxqc5ABZC6DAQwAWull6GoAZARrCZALbwhl6QwAWuplIGpqZeqQAWQvgwJa65ABZH+QAWQwZDGEAVrskAFkMZABZDKEAFrtkAFkM5ABZDSEAFruZGpa75ABZDVkUYQAWvCQAWQ2ZFKEAFrxkAFkN2RThABa8mUFajeQAWSAkAFkOZABZDqEAYMBWvOQAWQ7ZE+EAFr0ZQVqN5ABZIGQAWQ8ZFSEAYMBWvVlBWo3kAFkPWRahACDAVr2ZQVqN5ABZD5kWYQAgwFa95ABZD+QAWRAhABa+GUgavlllWUbkAFkQYMCkAFkQoMCWvqQAWRDkAFkRIQAWvuQAWRFkAFkRoQAWvxHAJABZEdkUIQAZFBlEWr9av6DA1r/RwCQAWRIZFuEAGRbZaWDA5ABWgBkBJABYQGQAWRJZCGEAJABWgKQAWRKZDKEAJABWgNkBJABYQSQAWRLkAFkTIQAkAFaBZABZE1kO4QAkAFaBpABZE6QAWRPhACQAVoHkAFkUGQihACQAVoIZgCQAWRRnAGQAWRSZD+EApABWglkBGYAZgBmA5ABZFNkQIQBkAFaCkcAkAFkVGRdhABkXYMCkAFaC5ABZFWQAWRWhACQAVoMkAFkV5ABZFiEAJABWg1mAGYBkAFkWZABZFqEAZABWg5nAGYBkAFkW2RhhAGQAVoPZASQAWEQkAFkXGRHhACQAVoRZQVqN5ABZF2QAWRehACDAZABWhKQAWRfZGKEAJABWhNHAJABZGCQAWRhhACQAWRhgwKQAVoURwCQAWRikAFkY4QAkAFkY4MCkAFaFWUFajeQAWRkkAFkZYQAgwGQAVoWkAFkZpABZGeEAJABWhdkBFMAKIIBAAB6N1N1cHBvcnRpbmcgZGVmaW5pdGlvbnMgZm9yIHRoZSBQeXRob24gcmVncmVzc2lvbiB0ZXN0cy56DHRlc3Quc3VwcG9ydHouc3VwcG9ydCBtdXN0IGJlIGltcG9ydGVkIGZyb20gdGhlIHRlc3QgcGFja2FnZekAAAAATukBAAAAKQHaD2dldF90ZXN0X3J1bm5lctoNUElQRV9NQVhfU0laRdoHdmVyYm9zZdoKbWF4X21lbXVzZdoNdXNlX3Jlc291cmNlc9oIZmFpbGZhc3TaBUVycm9y2gpUZXN0RmFpbGVk2g1UZXN0RGlkTm90UnVu2g5SZXNvdXJjZURlbmllZNoNaW1wb3J0X21vZHVsZdoTaW1wb3J0X2ZyZXNoX21vZHVsZdoLQ2xlYW5JbXBvcnTaBnVubG9hZNoGZm9yZ2V02hZyZWNvcmRfb3JpZ2luYWxfc3Rkb3V02hNnZXRfb3JpZ2luYWxfc3Rkb3V02g9jYXB0dXJlZF9zdGRvdXTaDmNhcHR1cmVkX3N0ZGlu2g9jYXB0dXJlZF9zdGRlcnLaBlRFU1RGTtoIU0FWRURDV0TaBnVubGlua9oGcm10cmVl2gh0ZW1wX2N3ZNoIZmluZGZpbGXaEWNyZWF0ZV9lbXB0eV9maWxl2gtjYW5fc3ltbGlua9oWZnNfaXNfY2FzZV9pbnNlbnNpdGl2ZdoTaXNfcmVzb3VyY2VfZW5hYmxlZNoIcmVxdWlyZXPaGHJlcXVpcmVzX2ZyZWVic2RfdmVyc2lvbtoWcmVxdWlyZXNfbGludXhfdmVyc2lvbtoQcmVxdWlyZXNfbWFjX3ZlctoTcmVxdWlyZXNfaGFzaGRpZ2VzdNoSY2hlY2tfc3ludGF4X2Vycm9y2hFUcmFuc2llbnRSZXNvdXJjZdoIdGltZV9vdXTaEXNvY2tldF9wZWVyX3Jlc2V02hJpb2Vycm9yX3BlZXJfcmVzZXTaEnRyYW5zaWVudF9pbnRlcm5ldNoPQmFzaWNUZXN0UnVubmVy2gxydW5fdW5pdHRlc3TaC3J1bl9kb2N0ZXN02hNza2lwX3VubGVzc19zeW1saW5r2g1yZXF1aXJlc19nemlw2gxyZXF1aXJlc19iejLaDXJlcXVpcmVzX2x6bWHaCmJpZ21lbXRlc3TaEGJpZ2FkZHJzcGFjZXRlc3TaDGNweXRob25fb25sedoNZ2V0X2F0dHJpYnV0ZdoRcmVxdWlyZXNfSUVFRV83NTTaEXNraXBfdW5sZXNzX3hhdHRy2g1yZXF1aXJlc196bGli2hJhbnRpY2lwYXRlX2ZhaWx1cmXaEmxvYWRfcGFja2FnZV90ZXN0c9oTZGV0ZWN0X2FwaV9taXNtYXRjaNoMY2hlY2tfX2FsbF9f2hZyZXF1aXJlc19hbmRyb2lkX2xldmVs2h5yZXF1aXJlc19tdWx0aXByb2Nlc3NpbmdfcXVldWXaCWlzX2p5dGhvbtoKaXNfYW5kcm9pZNoRY2hlY2tfaW1wbF9kZXRhaWzaCnVuaXhfc2hlbGzaEXNldHN3aXRjaGludGVydmFs2gRIT1NU2gxJUFY2X0VOQUJMRUTaEGZpbmRfdW51c2VkX3BvcnTaCWJpbmRfcG9ydNoQb3Blbl91cmxyZXNvdXJjZdoQYmluZF91bml4X3NvY2tldNoKdGVtcF91bWFza9oNcmVhcF9jaGlsZHJlbtoLVGVzdEhhbmRsZXLaD3RocmVhZGluZ19zZXR1cNoRdGhyZWFkaW5nX2NsZWFudXDaDHJlYXBfdGhyZWFkc9oNc3RhcnRfdGhyZWFkc9oOY2hlY2tfd2FybmluZ3PaGWNoZWNrX25vX3Jlc291cmNlX3dhcm5pbmfaE0Vudmlyb25tZW50VmFyR3VhcmTaD3J1bl93aXRoX2xvY2FsZdoJc3dhcF9pdGVt2glzd2FwX2F0dHLaB01hdGNoZXLaDHNldF9tZW1saW1pdNoTU3VwcHJlc3NDcmFzaFJlcG9ydNoIc29ydGRpY3TaC3J1bl93aXRoX3R62gNQR0/aG21pc3NpbmdfY29tcGlsZXJfZXhlY3V0YWJsZdoIZmRfY291bnRjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZAFaA2QCUwApA3IJAAAAeipCYXNlIGNsYXNzIGZvciByZWdyZXNzaW9uIHRlc3QgZXhjZXB0aW9ucy5OKQTaCF9fbmFtZV9f2gpfX21vZHVsZV9f2gxfX3F1YWxuYW1lX1/aB19fZG9jX1+pAHJkAAAAcmQAAAD6LS91c3IvbGliNjQvcHl0aG9uMy42L3Rlc3Qvc3VwcG9ydC9fX2luaXRfXy5weXIJAAAAfAAAAHMCAAAACAFjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZAFaA2QCUwApA3IKAAAAegxUZXN0IGZhaWxlZC5OKQRyYAAAAHJhAAAAcmIAAAByYwAAAHJkAAAAcmQAAAByZAAAAHJlAAAAcgoAAAB/AAAAcwIA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ZiB0aGUgbmFtZWQgUHl0aG9uIG1vZHVsZQogICAgYnkgcmVtb3ZpbmcgdGhlIG5hbWVkIG1vZHVsZSBmcm9tIHN5cy5tb2R1bGVzIGJlZm9yZSBkb2luZyB0aGUgaW1wb3J0LgogICAgTm90ZSB0aGF0IHVubGlrZSByZWxvYWQsIHRoZSBvcmlnaW5hbCBtb2R1bGUgaXMgbm90IGFmZmVjdGVkIGJ5CiAgICB0aGlzIG9wZXJhdGlvbi4KCiAgICAqZnJlc2gqIGlzIGFuIGl0ZXJhYmxlIG9mIGFkZGl0aW9uYWwgbW9kdWxlIG5hbWVzIHRoYXQgYXJlIGFsc28gcmVtb3ZlZAogICAgZnJvbSB0aGUgc3lzLm1vZHVsZXMgY2FjaGUgYmVmb3JlIGRvaW5nIHRoZSBpbXBvcnQuCgogICAgKmJsb2NrZWQqIGlzIGFuIGl0ZXJhYmxlIG9mIG1vZHVsZSBuYW1lcyB0aGF0IGFyZSByZXBsYWNlZCB3aXRoIE5vbmUKICAgIGluIHRoZSBtb2R1bGUgY2FjaGUgZHVyaW5nIHRoZSBpbXBvcnQgdG8gZW5zdXJlIHRoYXQgYXR0ZW1wdHMgdG8gaW1wb3J0CiAgICB0aGVtIHJhaXNlIEltcG9ydEVycm9yLgoKICAgIFRoZSBuYW1lZCBtb2R1bGUgYW5kIGFueSBtb2R1bGVzIG5hbWVkIGluIHRoZSAqZnJlc2gqIGFuZCAqYmxvY2tlZCoKICAgIHBhcmFtZXRlcnMgYXJlIHNhdmVkIGJlZm9yZSBzdGFydGluZyB0aGUgaW1wb3J0IGFuZCB0aGVuIHJlaW5zZXJ0ZWQgaW50bwogICAgc3lzLm1vZHVsZXMgd2hlbiB0aGUgZnJlc2ggaW1wb3J0IGlzIGNvbXBsZXRlLgoKICAgIE1vZHVsZSBhbmQgcGFja2FnZSBkZXByZWNhdGlvbiBtZXNzYWdlcyBhcmUgc3VwcHJlc3NlZCBkdXJpbmcgdGhpcyBpbXBvcnQKICAgIGlmICpkZXByZWNhdGVkKiBpcyBUcnVlLgoKICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByYWlzZSBJbXBvcnRFcnJvciBpZiB0aGUgbmFtZWQgbW9kdWxlIGNhbm5vdCBiZQogICAgaW1wb3J0ZWQuCiAgICBO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bmRzIG9uIHdoZXRoZXIgdGhlIGNhbGxpbmcgY29kZSBpcyBjcmVhdGluZwogICAgYSBweXRob24gc29ja2V0LCBvciBpZiBhbiB1bnVzZWQgcG9ydCBuZWVkcyB0byBiZSBwcm92aWRlZCBpbiBhIGNvbnN0cnVjdG9yCiAgICBvciBwYXNzZWQgdG8gYW4gZXh0ZXJuYWwgcHJvZ3JhbSAoaS5lLiB0aGUgLWFjY2VwdCBhcmd1bWVudCB0byBvcGVuc3NsJ3MKICAgIHNfc2VydmVyIG1vZGUpLiAgQWx3YXlzIHByZWZlciBiaW5kX3BvcnQoKSBvdmVyIGZpbmRfdW51c2VkX3BvcnQoKSB3aGVyZQogICAgcG9zc2libGUuICBIYXJkIGNvZGVkIHBvcnRzIHNob3VsZCAqTkVWRVIqIGJlIHVzZWQuICBBcyBzb29uIGFzIGEgc2VydmVyCiAgICBzb2NrZXQgaXMgYm91bmQgdG8gYSBoYXJkIGNvZGVkIHBvcnQsIHRoZSBhYmlsaXR5IHRvIHJ1biBtdWx0aXBsZSBpbnN0YW5jZXMKICAgIG9mIHRoZSB0ZXN0IHNpbXVsdGFuZW91c2x5IG9uIHRoZSBzYW1lIGhvc3QgaXMgY29tcHJvbWlzZWQsIHdoaWNoIG1ha2VzIHRoZQogICAgdGVzdCBhIHRpY2tpbmcgdGltZSBib21iIGluIGEgYnVpbGRib3QgZW52aXJvbm1lbnQuIE9uIFVuaXggYnVpbGRib3RzLCB0aGlzCiAgICBtYXkgc2ltcGx5IG1hbmlmZXN0IGFzIGEgZmFpbGVkIHRlc3QsIHdoaWNoIGNhbiBiZSByZWNvdmVyZWQgZnJvbSB3aXRob3V0CiAgICBpbnRlcnZlbnRpb24gaW4gbW9zdCBjYXNlcywgYnV0IG9uIFdpbmRvd3MsIHRoZSBlbnRpcmUgcHl0aG9uIHByb2Nlc3MgY2FuCiAgICBjb21wbGV0ZWx5IGFuZCB1dHRlcmx5IHdlZGdlLCByZXF1aXJpbmcgc29tZW9uZSB0byBsb2cgaW4gdG8gdGhlIGJ1aWxkYm90CiAgICBhbmQgbWFudWFsbHkga2lsbCB0aGUgYWZmZWN0ZWQgcHJvY2Vzcy4KCiAgICAoVGhpcyBpcyBlYXN5IHRvIHJlcHJvZHVjZSBvbiBXaW5kb3dzLCB1bmZvcnR1bmF0ZWx5LCBhbmQgY2FuIGJlIHRyYWNlZCB0bwogICAgdGhlIFNPX1JFVVNFQUREUiBzb2NrZXQgb3B0aW9uIGhhdmluZyBkaWZmZXJlbnQgc2VtYW50aWNzIG9uIFdpbmRvd3MgdmVyc3VzCiAgICBVbml4L0xpbnV4LiAgT24gVW5peCwgeW91IGNhbid0IGhhdmUgdHdvIEFGX0lORVQgU09DS19TVFJFQU0gc29ja2V0cyBiaW5kLAogICAgbGlzdGVuIGFuZCB0aGVuIGFjY2VwdCBjb25uZWN0aW9ucyBvbiBpZGVudGljYWwgaG9zdC9wb3J0cy4gIEFuIEVBRERSSU5VU0UKICAgIE9TRXJyb3Igd2lsbCBiZSByYWlzZWQgYXQgc29tZSBwb2ludCAoZGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybSBhbmQKICAgIHRoZSBvcmRlciBiaW5kIGFuZCBsaXN0ZW4gd2VyZSBjYWxsZWQgb24gZWFjaCBzb2NrZXQpLgoKICAgIEhvd2V2ZXIsIG9uIFdpbmRvd3MsIGlmIFNPX1JFVVNFQUREUiBpcyBzZXQgb24gdGhlIHNvY2tldHMsIG5vIEVBRERSSU5VU0UKICAgIHdpbGwgZXZlciBiZSByYWlzZWQgd2hlbiBhdHRlbXB0aW5nIHRvIGJpbmQgdHdvIGlkZW50aWNhbCBob3N0L3BvcnRzLiBXaGVuCiAgICBhY2NlcHQoKSBpcyBjYWxsZWQgb24gZWFjaCBzb2NrZXQsIHRoZSBzZWNvbmQgY2FsbGVyJ3MgcHJvY2VzcyB3aWxsIHN0ZWFsCiAgICB0aGUgcG9ydCBmcm9tIHRoZSBmaXJzdCBjYWxsZXIsIGxlYXZpbmcgdGhlbSBib3RoIGluIGFuIGF3a3dhcmRseSB3ZWRnZWQKICAgIHN0YXRlIHdoZXJlIHRoZXknbGwgbm8gbG9uZ2VyIHJlc3BvbmQgdG8gYW55IHNpZ25hbHMgb3IgZ3JhY2VmdWwga2lsbHMsIGFuZAogICAgbXVzdCBiZSBmb3JjaWJseSBraWxsZWQgdmlhIE9wZW5Qcm9jZXNzKCkvVGVybWluYXRlUHJvY2VzcygpLgoKICAgIFRoZSBzb2x1dGlvbiBvbiBXaW5kb3dzIGlzIHRvIHVzZSB0aGUgU09fRVhDTFVTSVZFQUREUlVTRSBzb2NrZXQgb3B0aW9uCiAgICBpbnN0ZWFkIG9mIFNPX1JFVVNFQUREUiwgd2hpY2ggZWZmZWN0aXZlbHkgYWZmb3JkcyB0aGUgc2FtZSBzZW1hbnRpY3MgYXMKICAgIFNPX1JFVVNFQUREUiBvbiBVbml4LiAgR2l2ZW4gdGhlIHByb3BlbnNpdHkgb2YgVW5peCBkZXZlbG9wZXJzIGluIHRoZSBPcGVuCiAgICBTb3VyY2Ugd29ybGQgY29tcGFyZWQgdG8gV2luZG93cyBvbmVzLCB0aGlzIGlzIGEgY29tbW9uIG1pc3Rha2UuICBBIHF1aWNrCiAgICBsb29rIG92ZXIgT3BlblNTTCdzIDAuOS44ZyBzb3VyY2Ugc2hvd3MgdGhhdCB0aGV5IHVzZSBTT19SRVVTRUFERFIgd2hlbgogICAgb3BlbnNzbC5leGUgaXMgY2FsbGVkIHdpdGggdGhlICdzX3NlcnZlcicgb3B0aW9uLCBmb3IgZXhhbXBsZS4gU2VlCiAgICBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMjU1MCBmb3IgbW9yZSBpbmZvLiAgVGhlIGZvbGxvd2luZyBzaXRlIGFsc28KICAgIGhhcyBhIHZlcnkgdGhvcm91Z2ggZGVzY3JpcHRpb24gYWJvdXQgdGhlIGltcGxpY2F0aW9ucyBvZiBib3RoIFJFVVNFQUREUgogICAgYW5kIEVYQ0xVU0lWRUFERFJVU0Ugb24gV2luZG93czoKICAgIGh0dHA6Ly9tc2RuMi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXM3NDA2MjEoVlMuODUpLmFzcHgpCgogICAgWFhYOiBhbHRob3VnaCB0aGlzIGFwcHJvYWNoIGlzIGEgdmFzdCBpbXByb3ZlbWVudCBvbiBwcmV2aW91cyBhdHRlbXB0cyB0bwogICAgZWxpY2l0IHVudXNlZCBwb3J0cywgaXQgcmVzdHMgaGVhdmlseSBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZSBlcGhlbWVyYWwKICAgIHBvcnQgcmV0dXJuZWQgdG8gdXMgYnkgdGhlIE9TIHdvbid0IGltbWVkaWF0ZWx5IGJlIGRpc2hlZCBiYWNrIG91dCB0byBzb21lCiAgICBvdGhlciBwcm9jZXNzIHdoZW4gd2UgY2xvc2UgYW5kIGRlbGV0ZSBvdXIgdGVtcG9yYXJ5IHNvY2tldCBidXQgYmVmb3JlIG91cgogICAgY2FsbGluZyBjb2RlIGhhcyBhIGNoYW5jZSB0byBiaW5kIHRoZSByZXR1cm5lZCBwb3J0LiAgV2UgY2FuIGRlYWwgd2l0aCB0aGlzCiAgICBpc3N1ZSBpZi93aGVuIHdlIGNvbWUgYWNyb3NzIGl0LgogICAgKQPaBnNvY2tldHJIAAAA2gVjbG9zZSkE2gZmYW1pbHlaCHNvY2t0eXBlWgh0ZW1wc29ja9oEcG9ydHJkAAAAcmQAAAByZQAAAHJHAAAAoAIAAHMKAAAAADgMAQgBCAECAWMCAAAAAAAAAAMAAAAMAAAAQwAAAHO4AAAAfABqAHQBagJrAnKafABqA3QBagRrAnKadAV0AWQBgwJyPnwAagZ0AWoHdAFqCIMCZAJrAnI+dAlkA4MBggF0BXQBZASDAnJ+eSB8AGoGdAFqB3QBagqDAmQCawJyZnQJZAWDAYIBVwBuFAQAdAtrCnJ8AQABAAEAWQBuAlgAdAV0AWQGgwJymnwAagx0AWoHdAFqDWQCgwMBAHwAag58AWQHZgKDAQEAfABqD4MAZAIZAH0CfAJTACkIYSUDAABCaW5kIHRoZSBzb2NrZXQgdG8gYSBmcmVlIHBvcnQgYW5kIHJldHVybiB0aGUgcG9ydCBudW1iZXIuICBSZWxpZXMgb24KICAgIGVwaGVtZXJhbCBwb3J0cyBpbiBvcmRlciB0byBlbnN1cmUgd2UgYXJlIHVzaW5nIGFuIHVuYm91bmQgcG9ydC4gIFRoaXMgaXMKICAgIGltcG9ydGFudCBhcyBtYW55IHRlc3RzIG1heSBiZSBydW5uaW5nIHNpbXVsdGFuZW91c2x5LCBlc3BlY2lhbGx5IGluIGEKICAgIGJ1aWxkYm90IGVudmlyb25tZW50LiAgVGhpcyBtZXRob2QgcmFpc2VzIGFuIGV4Y2VwdGlvbiBpZiB0aGUgc29jay5mYW1pbHkKICAgIGlzIEFGX0lORVQgYW5kIHNvY2sudHlwZSBpcyBTT0NLX1NUUkVBTSwgKmFuZCogdGhlIHNvY2tldCBoYXMgU09fUkVVU0VBRERSCiAgICBvciBTT19SRVVTRVBPUlQgc2V0IG9uIGl0LiAgVGVzdHMgc2hvdWxkICpuZXZlciogc2V0IHRoZXNlIHNvY2tldCBvcHRpb25zCiAgICBmb3IgVENQL0lQIHNvY2tldHMuICBUaGUgb25seSBjYXNlIGZvciBzZXR0aW5nIHRoZXNlIG9wdGlvbnMgaXMgdGVzdGluZwogICAgbXVsdGljYXN0aW5nIHZpYSBtdWx0aXBsZSBVRFAgc29ja2V0cy4KCiAgICBBZGRpdGlvbmFsbHksIGlmIHRoZSBTT19FWENMVVNJVkVBRERSVVNFIHNvY2tldCBvcHRpb24gaXMgYXZhaWxhYmxlIChpLmUuCiAgICBvbiBXaW5kb3dzKSwgaXQgd2lsbCBiZSBzZXQgb24gdGhlIHNvY2tldC4gIFRoaXMgd2lsbCBwcmV2ZW50IGFueW9uZSBlbHNlCiAgICBmcm9tIGJpbmQoKSdpbmcgdG8gb3VyIGhvc3QvcG9ydCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSB0ZXN0LgogICAg2gxTT19SRVVTRUFERFJyAgAAAHpIdGVzdHMgc2hvdWxkIG5ldmVyIHNldCB0aGUgU09fUkVVU0VBRERSIHNvY2tldCBvcHRpb24gb24gVENQL0lQIHNvY2tldHMh2gxTT19SRVVTRVBPUlR6SHRlc3RzIHNob3VsZCBuZXZlciBzZXQgdGhlIFNPX1JFVVNFUE9SVCBzb2NrZXQgb3B0aW9uIG9uIFRDUC9JUCBzb2NrZXRzIdoTU09fRVhDTFVTSVZFQUREUlVTRXIBAAAAKRByBAEAAHICAQAA2gdBRl9JTkVUcuMAAADaC1NPQ0tfU1RSRUFNct0AAABaCmdldHNvY2tvcHRaClNPTF9TT0NLRVRyBgEAAHIKAAAAcgcBAABykwAAAFoKc2V0c29ja29wdHIIAQAA2gRiaW5kWgtnZXRzb2NrbmFtZSkD2gRzb2Nr2gRob3N0cgUBAAByZAAAAHJkAAAAcmUAAABySAAAAN4CAABzHgAAAAAPGAEKARQBCAIKAQIBFAEMAg4EBgEKARICDgEMAWMCAAAAAAAAAAIAAAALAAAAQwAAAHNKAAAAfABqAHQBagJrAnMQ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gwABAHEmVwBYAGQBUwApCWFIAgAACiAgICBicG8tMzEyMzQ6IENvbnRleHQgbWFuYWdlciB0byB3YWl0IHVudGlsIGFsbCB0aHJlYWRzIGNyZWF0ZWQgaW4gdGhlIHdpdGgKICAgIHN0YXRlbWVudCBleGl0LgoKICAgIFVzZSBfdGhyZWFkLmNvdW50KCkgdG8gY2hlY2sgaWYgdGhyZWFkcyBleGl0ZWQuIEluZGlyZWN0bHksIHdhaXQgdW50aWwKICAgIHRocmVhZHMgZXhpdCB0aGUgaW50ZXJuYWwgdF9ib290c3RyYXAoKSBDIGZ1bmN0aW9uIG9mIHRoZSBfdGhyZWFkIG1vZHVsZS4KCiAgICB0aHJlYWRpbmdfc2V0dXAoKSBhbmQgdGhyZWFkaW5nX2NsZWFudXAoKSBhcmUgZGVzaWduZWQgdG8gZW1pdCBhIHdhcm5pbmcKICAgIGlmIGEgdGVzdCBsZWF2ZXMgcnVubmluZyB0aHJlYWRzIGluIHRoZSBiYWNrZ3JvdW5kLiBUaGlzIGNvbnRleHQgbWFuYWdlcgogICAgaXMgZGVzaWduZWQgdG8gY2xlYW51cCB0aHJlYWRzIHN0YXJ0ZWQgYnkgdGhlIF90aHJlYWQuc3RhcnRfbmV3X3RocmVhZCgpCiAgICB3aGljaCBkb2Vzbid0IGFsbG93IHRvIHdhaXQgZm9yIHRocmVhZCBleGl0LCB3aGVyZWFzIHRocmVhZC5UaHJlYWQgaGFzIGEKICAgIGpvaW4oKSBtZXRob2QuCiAgICBOeiF3YWl0X3RocmVhZHMoKSBmYWlsZWQgdG8gY2xlYW51cCB6DyB0aHJlYWRzIGFmdGVyIHoDLjFmehEgc2Vjb25kcyAoY291bnQ6IHoNLCBvbGQgY291bnQ6IPoBKWd7FK5H4XqEPykHckoCAABySwIAAHKiAAAAWgltb25vdG9uaWNyDgEAAHKjAAAAcoUBAAApB3KoAAAAWglvbGRfY291bnRaCnN0YXJ0X3RpbWVaCGRlYWRsaW5lclACAABaAmR0cngAAAByZAAAAHJkAAAAcmUAAADaEXdhaXRfdGhyZWFkc19leGl0nggAAHMeAAAAAA8IAQIBCgIIAQgBAgEIAQgBAgEMAQwBJAMIAQoBclQCAABjAAAAAAAAAAADAAAACgAA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aW1wb3J0cyBwYXJ0IG9mIGl0cyBwdWJsaWMKICAgIEFQSSBmcm9tIG90aGVyIG1vZHVsZXMsIHBvc3NpYmx5IGEgQyBiYWNrZW5kIChsaWtlICdjc3YnIGFuZCBpdHMgJ19jc3YnKS4KCiAgICBUaGUgJ2V4dHJhJyBhcmd1bWVudCBjYW4gYmUgYSBzZXQgb2YgbmFtZXMgdGhhdCB3b3VsZG4ndCBvdGhlcndpc2UgYmUKICAgIGF1dG9tYXRpY2FsbHkgZGV0ZWN0ZWQgYXMgInB1YmxpYyIsIGxpa2Ugb2JqZWN0cyB3aXRob3V0IGEgcHJvcGVyCiAgICAnX19tb2R1bGVfXycgYXR0cmlidXRlLiBJZiBwcm92aWRlZCwgaXQgd2lsbCBiZSBhZGRlZCB0byB0aGUKICAgIGF1dG9tYXRpY2FsbHkgZGV0ZWN0ZWQgb25lcy4KCiAgICBUaGUgJ2JsYWNrbGlzdCcgYXJndW1lbnQgY2FuIGJlIGEgc2V0IG9mIG5hbWVzIHRoYXQgbXVzdCBub3QgYmUgdHJlYXRlZAogICAgYXMgcGFydCBvZiB0aGUgcHVibGljIEFQSSBldmVuIHRob3VnaCB0aGVpciBuYW1lcyBpbmRpY2F0ZSBvdGhlcndpc2UuCgogICAgVXNhZ2U6CiAgICAgICAgaW1wb3J0IGJhcgogICAgICAgIGltcG9ydCBmb28KICAgICAgICBpbXBvcnQgdW5pdHRlc3QKICAgICAgICBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKCiAgICAgICAgY2xhc3MgTWlzY1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgZGVmIHRlc3RfX2FsbF9fKHNlbGYpOgogICAgICAgICAgICAgICAgc3VwcG9ydC5jaGVja19fYWxsX18oc2VsZiwgZm9vKQoKICAgICAgICBjbGFzcyBPdGhlclRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgZGVmIHRlc3RfX2FsbF9fKHNlbGYpOgogICAgICAgICAgICAgICAgZXh0cmEgPSB7J0JBUl9DT05TVCcsICdGT09fQ09OU1QnfQogICAgICAgICAgICAgICAgYmxhY2tsaXN0ID0g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AHLLAgAAcs8CAAByZAAAAHJkAAAAcmQAAAByZQAAANoIPG1vZHVsZT4BAAAAc9YCAAAEAggBCAIIAQgBCAEIAQgBCAEIAQgBCAEIAQgBCAEIAQgBCAEIAQgBCAEIAQgBCAEIAQgBCAEIAQgBCAEIAQgBCAIMAgIBFAEQAQQBCgECAQwBEAEKAgIBDAEQAQoCAgEMARABCgICAQwBEAEKAgIBDAEQAQoCAgEMARABCgICAQwBEAEKBAoCCAIGAgQCBgEEAgwBBgIGAQYBAgEIAQgBCAEIAQYBBgEGAggBAgIKAQICBAICAggCBgEEAQoBDAMQAxADEAMSCAQBDg8SEggOCA4ICggUEDIICQQBBAEEAgQBBAEEBQQBCAQIAwgGCAoOAQwhCAMIAwgSCg4GAQYCCBYIAwgGCAYIBggNCBAISggIDAkIGwgJCAkIGwwfBAEEAxI+DCUICQgPBgIIEgYHBgMEAQ4BBgIMAgwCDAIMAgwCCgESAgwBEAIEAwwCBgIEBBAEBAECBgACAAIAAgACAAIAAgACAAIABwACCgICBBYBCAEQAQYCBAEIAwgBDAQIAQwBCAUEAQwCEAMIAQIBDgEQAQYCBAIMAQYCDAECAg4BEAICARQMBAECBQACAAMAAgADCgICAQ4BEAEOAQ4CBgEOAgQDCAQEBAQCBAEOJQQBDhoEAQ4SDAEOCxQBDAMOAgwSCAUIBwgMEAsIMhAXDCcOGAQBEhcOFRAgFDUQGRAcDgEOAQ4DBAESTQ4MCAkICQgNCBAOCwgKBAEEAQwBCAEEAQoCDAMMBAYBBgIMDwokCiMGAQgBCAEIAgYCChUUHg4wChIQBgwDDAgKBwoGEA0EAQoPDAoKCwwQDAsMDAwZBAEEAwwIDAoMKAoXDAMIAQwBDgIMAQYCBgEIBg4bDAMMGQQKCgYKDAoSBAESIgoVBAEQIxAfEB8MCg4BCAIMBQwJFhwUIgYBDA8MBgYBDh4MBg4GDA0UDwQBEDoSXw4iDhQSExAZBgEMDhQQDDsWJxYRFAs=
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
script_helper.cpython-36.opt-1.pyc
6.94 KB
lrw-r--r--
2026-03-24 13:15:20
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
script_helper.cpython-36.opt-2.pyc
5.24 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
script_helper.cpython-36.pyc
6.94 KB
lrw-r--r--
2026-03-24 13:15:20
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
testresult.cpython-36.opt-1.pyc
7.59 KB
lrw-r--r--
2026-03-24 13:15:20
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
testresult.cpython-36.opt-2.pyc
7.51 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
testresult.cpython-36.pyc
7.59 KB
lrw-r--r--
2026-03-24 13:15:20
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-36.opt-1.pyc
79.71 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-2.pyc
56.38 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.pyc
79.86 KB
lrw-r--r--
2026-03-24 13:15:20
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).