REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 57.74 KB
Close
//opt/alt/python27/lib64/python2.7/logging/__init__.pyc
Text
Base64
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ICBSZXR1cm4gdGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgbG9nZ2luZyBsZXZlbCAnbGV2ZWwnLgoKICAgIElmIHRoZSBsZXZlbCBpcyBvbmUgb2YgdGhlIHByZWRlZmluZWQgbGV2ZWxzIChDUklUSUNBTCwgRVJST1IsIFdBUk5JTkcsCiAgICBJTkZPLCBERUJVRykgdGhlbiB5b3UgZ2V0IHRoZSBjb3JyZXNwb25kaW5nIHN0cmluZy4gSWYgeW91IGhhdmUKICAgIGFzc29jaWF0ZWQgbGV2ZWxzIHdpdGggbmFtZXMgdXNpbmcgYWRkTGV2ZWxOYW1lIHRoZW4gdGhlIG5hbWUgeW91IGhhdmUKICAgIGFzc29jaWF0ZWQgd2l0aCAnbGV2ZWwnIGlzIHJldHVybmVkLgoKICAgIElmIGEgbnVtZXJpYyB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgZGVmaW5lZCBsZXZlbHMgaXMgcGFzc2VkCiAgICBpbiwgdGhlIGNvcnJlc3BvbmRpbmcgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGlzIHJldHVybmVkLgoKICAgIE90aGVyd2lzZSwgdGhlIHN0cmluZyAiTGV2ZWwgJXMiICUgbGV2ZWwgaXMgcmV0dXJuZWQuCiAgICBzCAAAAExldmVsICVzKAIAAAB0CwAAAF9sZXZlbE5hbWVzdAMAAABnZXQoAQAAAHQFAAAAbGV2ZWwoAAAAACgAAAAAczUAAAAvb3B0L2FsdC9weXRob24yNy9saWI2NC9weXRob24yLjcvbG9nZ2luZy9fX2luaXRfXy5weVIcAAAAlAAAAHMCAAAAAA5jAgAAAAIAAAAEAAAAQwAAAHMuAAAAdAAAgwAAAXoYAHwBAHQBAHwAADx8AAB0AQB8AQA8V2QBAHQCAIMAAAFYZAEAUygCAAAAc3kAAAAKICAgIEFzc29jaWF0ZSAnbGV2ZWxOYW1lJyB3aXRoICdsZXZlbCcuCgogICAgVGhpcyBpcyB1c2VkIHdoZW4gY29udmVydGluZyBsZXZlbHMgdG8gdGV4dCBkdXJpbmcgbWVzc2FnZSBmb3JtYXR0aW5nLgogICAgTigDAAAAdAwAAABfYWNxdWlyZUxvY2tSLwAAAHQMAAAAX3Jl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AAAATigAAAAAKAQAAABSCwAAAFJUAAAAdAgAAABfX2RpY3RfX3QGAAAAdXBkYXRlKAIAAAB0BAAAAGRpY3RSOwAAACgAAAAAKAAAAABzNQAAAC9vcHQvYWx0L3B5dGhvbjI3L2xpYjY0L3B5dGhvbjIuNy9sb2dnaW5nL19faW5pdF9fLnB5UiEAAABMAQAAcwYAAAAAByEBEAFjAAAAAAAAAAADAAAAQgAAAHNNAAAAZQAAWgEAZAAAWgIAZQMAagQAWgUAZAYAZAYAZAEAhAIAWgcAZAYAZAIAhAEAWggAZAMAhAAAWgkAZAQAhAAAWgoAZAUAhAAAWgsAUlMoBwAAAHOpCAAACiAgICBGb3JtYXR0ZXIgaW5zdGFuY2VzIGFyZSB1c2VkIHRvIGNvbnZlcnQgYSBMb2dSZWNvcmQgdG8gdGV4dC4KCiAgICBGb3JtYXR0ZXJzIG5lZWQgdG8ga25vdyBob3cgYSBMb2dSZWNvcmQgaXMgY29uc3RydWN0ZWQuIFRoZXkgYXJlCiAgICByZXNwb25zaWJsZSBmb3IgY29udmVydGluZyBhIExvZ1JlY29yZCB0byAodXN1YWxseSkgYSBzdHJpbmcgd2hpY2ggY2FuCiAgICBiZSBpbnRlcnByZXRlZCBieSBlaXRoZXIgYSBodW1hbiBvciBhbiBleHRlcm5hbCBzeXN0ZW0uIFRoZSBiYXNlIEZvcm1hdHRlcgogICAgYWxsb3dzIGEgZm9ybWF0dGluZyBzdHJpbmcgdG8gYmUgc3BlY2lmaWVkLiBJZiBub25lIGlzIHN1cHBsaWVkLCB0aGUKICAgIGRlZmF1bHQgdmFsdWUgb2YgIiVzKG1lc3NhZ2UpXG4iIGlzIHVzZWQuCgogICAgVGhlIEZvcm1hdHRlciBjYW4gYmUgaW5pdGlhbGl6ZWQgd2l0aCBhIGZvcm1hdCBzdHJpbmcgd2hpY2ggbWFrZXMgdXNlIG9mCiAgICBrbm93bGVkZ2Ugb2YgdGhlIExvZ1JlY29yZCBhdHRyaWJ1dGVzIC0gZS5nLiB0aGUgZGVmYXVsdCB2YWx1ZSBtZW50aW9uZWQKICAgIGFib3ZlIG1ha2VzIHVzZSBvZiB0aGUgZmFjdCB0aGF0IHRoZSB1c2VyJ3MgbWVzc2FnZSBhbmQgYXJndW1lbnRzIGFyZSBwcmUtCiAgICBmb3JtYXR0ZWQgaW50byBhIExvZ1JlY29yZCdzIG1lc3NhZ2UgYXR0cmlidXRlLiBDdXJyZW50bHksIHRoZSB1c2VmdWwKICAgIGF0dHJpYnV0ZXMgaW4gYSBMb2dSZWNvcmQgYXJlIGRlc2NyaWJlZCBieToKCiAgICAlKG5hbWUpcyAgICAgICAgICAgIE5hbWUgb2YgdGhlIGxvZ2dlciAobG9nZ2luZyBjaGFubmVsKQogICAgJShsZXZlbG5vKXMgICAgICAgICBOdW1lcmljIGxvZ2dpbmcgbGV2ZWwgZm9yIHRoZSBtZXNzYWdlIChERUJVRywgSU5GTywKICAgICAgICAgICAgICAgICAgICAgICAgV0FSTklORywgRVJST1IsIENSSVRJQ0FMKQogICAgJShsZXZlbG5hbWUpcyAgICAgICBUZXh0IGxvZ2dpbmcgbGV2ZWwgZm9yIHRoZSBtZXNzYWdlICgiREVCVUciLCAiSU5GTyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJXQVJOSU5HIiwgIkVSUk9SIiwgIkNSSVRJQ0FMIikKICAgICUocGF0aG5hbWUpcyAgICAgICAgRnVsbCBwYXRobmFtZSBvZiB0aGUgc291cmNlIGZpbGUgd2hlcmUgdGhlIGxvZ2dpbmcKICAgICAgICAgICAgICAgICAgICAgICAgY2FsbCB3YXMgaXNzdWVkIChpZiBhdmFpbGFibGUpCiAgICAlKGZpbGVuYW1lKXMgICAgICAgIEZpbGVuYW1lIHBvcnRpb24gb2YgcGF0aG5hbWUKICAgICUobW9kdWxlKXMgICAgICAgICAgTW9kdWxlIChuYW1lIHBvcnRpb24gb2YgZmlsZW5hbWUpCiAgICAlKGxpbmVubylkICAgICAgICAgIFNvdXJjZSBsaW5lIG51bWJlciB3aGVyZSB0aGUgbG9nZ2luZyBjYWxsIHdhcyBpc3N1ZWQKICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGF2YWlsYWJsZSkKICAgICUoZnVuY05hbWUpcyAgICAgICAgRnVuY3Rpb24gbmFtZQogICAgJShjcmVhdGVkKWYgICAgICAgICBUaW1lIHdoZW4gdGhlIExvZ1JlY29yZCB3YXMgY3Jl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AAAAKAAAAAAoAAAAAHM1AAAAL29wdC9hbHQvcHl0aG9uMjcvbGliNjQvcHl0aG9uMi43L2xvZ2dpbmcvX19pbml0X18ucHlSAQAAAPcBAABzCgAAAAYDBgEMCgkGCQZjAAAAAAAAAAACAAAAQgAAAHMjAAAAZQAAWgEAZAAAWgIAZAEAZAIAhAEAWgMAZAMAhAAAWgQAUlMoBAAAAHP2AQAACiAgICBGaWx0ZXIgaW5zdGFuY2VzIGFyZSB1c2VkIHRvIHBlcmZvcm0gYXJiaXRyYXJ5IGZpbHRlcmluZyBvZiBMb2dSZWNvcmRzLgoKICAgIExvZ2dlcnMgYW5kIEhhbmRsZXJzIGNhbiBvcHRpb25hbGx5IHVzZSBGaWx0ZXIgaW5zdGFuY2VzIHRvIGZpbHRlcgogICAgcmVjb3JkcyBhcyBkZXNpcmVkLiBUaGUgYmFzZSBmaWx0ZXIgY2xhc3Mgb25seSBhbGxvd3MgZXZlbnRzIHdoaWNoIGFyZQogICAgYmVsb3cgYSBjZXJ0YWluIHBvaW50IGluIHRoZSBsb2dnZXIgaGllcmFyY2h5LiBGb3IgZXhhbXBsZSwgYSBmaWx0ZXIKICAgIGluaXRpYWxpemVkIHdpdGggIkEuQiIgd2lsbCBhbGxvdyBldmVudHMgbG9nZ2VkIGJ5IGxvZ2dlcnMgIkEuQiIsCiAgICAiQS5CLkMiLCAiQS5CLkMuRCIsICJBLkIuRCIgZXRjLiBidXQgbm90ICJBLkJCIiwgIkIuQS5CIiBldGMuIElmCiAgICBpbml0aWFsaXplZCB3aXRoIHRoZSBlbXB0eSBzdHJpbmcsIGFsbCBldmVudHMgYXJlIHBhc3NlZC4KICAgIFIuAAAAYwIAAAACAAAAAgAAAEMAAABzHAAAAHwBAHwAAF8AAHQBAHwBAIMBAHwAAF8CAGQBAFMoAgAAAHPmAAAACiAgICAgICAgSW5pdGlhbGl6ZSBhIGZpbHRlci4KCiAgICAgICAgSW5pdGlhbGl6ZSB3aXRoIHRoZSBuYW1lIG9mIHRoZSBsb2dnZXIgd2hpY2gsIHRvZ2V0aGVyIHdpdGggaXRzCiAgICAgICAgY2hpbGRyZW4sIHdpbGwgaGF2ZSBpdHMgZXZlbnRzIGFsbG93ZWQgdGhyb3VnaCB0aGUgZmlsdGVyLiBJ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eSBiZSBzcGVjaWZpZWQsIHdoaWNoIGNhbiBhbHRlcgogICAgdGhlIGRlZmF1bHQgYmVoYXZpb3VyLgoKICAgIGZpbGVuYW1lICBTcGVjaWZpZXMgdGhhdCBhIEZpbGVIYW5kbGVyIGJlIGNyZWF0ZWQsIHVzaW5nIHRoZSBzcGVjaWZpZWQKICAgICAgICAgICAgICBmaWxlbmFtZSwgcmF0aGVyIHRoYW4gYSBTdHJlYW1IYW5kbGVyLgogICAgZmlsZW1vZGUgIFNwZWNpZmllcyB0aGUgbW9kZSB0byBvcGVuIHRoZSBmaWxlLCBpZiBmaWxlbmFtZSBpcyBzcGVjaWZpZWQKICAgICAgICAgICAgICAoaWYgZmlsZW1vZGUgaXMgdW5zcGVjaWZpZWQsIGl0IGRlZmF1bHRzIHRvICdhJykuCiAgICBmb3JtYXQgICAgVXNlIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZyBmb3IgdGhlIGhhbmRsZXIuCiAgICBkYXRlZm10ICAgVXNlIHRoZSBzcGVjaWZpZWQgZGF0ZS90aW1lIGZvcm1hdC4KICAgIGxldmVsICAgICBTZXQgdGhlIHJvb3QgbG9nZ2VyIGxldmVsIHRvIHRoZSBzcGVjaWZpZWQgbGV2ZWwuCiAgICBzdHJlYW0gICAgVXNlIHRoZSBzcGVjaWZpZWQgc3RyZWFtIHRvIGluaXRpYWxpemUgdGhlIFN0cmVhbUhhbmRsZXIuIE5vdGUKICAgICAgICAgICAgICB0aGF0IHRoaXMgYXJndW1lbnQgaXMgaW5jb21wYXRpYmxlIHdpdGggJ2ZpbGVuYW1lJyAtIGlmIGJvdGgKICAgICAgICAgICAgICBhcmUgcHJlc2VudCwgJ3N0cmVhbScgaXMgaWdub3JlZC4KCiAgICBOb3RlIHRoYXQgeW91IGNvdWxkIHNwZWNpZnkgYSBzdHJlYW0gY3JlYXRlZCB1c2luZyBvcGVuKGZpbGVuYW1lLCBtb2RlKQogICAgcmF0aGVyIHRoYW4gcGFzc2luZyB0aGUgZmlsZW5hbWUgYW5kIG1vZGUgaW4uIEhvd2V2ZXIsIGl0IHNob3VsZCBiZQogICAgcmVtZW1iZXJlZCB0aGF0IFN0cmVhbUhhbmRsZXIgZG9lcyBub3QgY2xvc2UgaXRzIHN0cmVhbSAoc2luY2UgaXQgbWF5IGJlCiAgICB1c2luZyBzeXMuc3Rkb3V0IG9yIHN5cy5zdGRlcnIpLCB3aGVyZWFzIEZpbGVIYW5kbGVyIGNsb3NlcyBpdHMgc3RyZWFtCiAgICB3aGVuIHRoZSBoYW5kbGVyIGlzIGNsb3NlZC4KICAgIGkAAAAAUlAAAAB0CAAAAGZpbGVtb2RlUswAAABSwgAAAFKVAAAAUnsAAABSMQAAAE4oDgAAAFIyAAAAUkYAAABS2wAAAFKoAAAAUjAAAABSBgAAAFIQAAAAUgAAAABSVAAAAFIIAAAAUroAAABSAwEAAFK2AAAAUjMAAAAoCQAAAFLxAAAAUlAAAABS0AAAAFICAQAAUsIAAABSygAAAHQDAAAAZGZzUnwAAABSMQAAACgAAAAAKAAAAABzNQAAAC9vcHQvYWx0L3B5dGhvbjI3L2xpYjY0L3B5dGhvbjIuNy9sb2dnaW5nL19faW5pdF9fLnB5UhQAAADqBQAAcyQAAAAAIgcBAwEVAQ8BBgESARICDwEMARIBEgEPAQ0BDQEPAQwBFwJjAQAAAAEAAAACAAAAQwAAAHMeAAAAfAAAchYAdAAAagEAagIAfAAAgwEAU3QDAFNkAQBTKAIAAABzggAAAAogICAgUmV0dXJuIGEgbG9nZ2VyIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLCBjcmVhdGluZyBpdCBpZiBuZWNlc3NhcnkuCgogICAgSWYgbm8gbmFtZSBpcyBzcGVjaWZpZWQsIHJldHVybiB0aGUgcm9vdCBsb2dnZXIuCiAgICBOKAQAAABSDAAAAFLgAAAAUh0AAABS2wAAACgBAAAAUkQAAAAoAAAAACgAAAAAczUAAAAvb3B0L2FsdC9weXRob24yNy9saWI2NC9weXRob24yLjcvbG9nZ2luZy9fX2luaXRfXy5weVIdAAAAJgYAAHMGAAAAAAYGARACYwEAAAADAAAABAAAAE8AAABzNgAAAHQAAHQBAGoCAIMBAGQBAGsCAHIfAHQDAIMAAAFuAAB0AQBqBAB8AAB8AQB8AgCOAQABZAIAUygDAAAAc0QAAAAKICAgIExvZyBhIG1lc3NhZ2Ugd2l0aCBzZXZlcml0eSAnQ1JJVElDQUwnIG9uIHRoZSByb290IGxvZ2dlci4KICAgIGkAAAAATigFAAAAUkYAAABS2wAAAFKoAAAAUhQAAABSFgAAACgDAAAAUkUAAABSSQAAAFLxAAAAKAAAAAAoAAAAAHM1AAAAL29wdC9hbHQvcHl0aG9uMjcvbGliNjQvcHl0aG9uMi43L2xvZ2dpbmcvX19pbml0X18ucHlSFgAAADoGAABzBgAAAAAEFQEKAWMBAAAAAwAAAAQAAABPAAAAczYAAAB0AAB0AQBqAgCDAQBkAQBrAgByHwB0AwCDAAABbgAAdAEAagQAfAAAfAEAfAIAjgEAAWQCAFMoAwAAAHNBAAAACiAgICBMb2cgYSBtZXNzYWdlIHdpdGggc2V2ZXJpdHkgJ0VSUk9SJyBvbiB0aGUgcm9vdCBsb2dnZXIuCiAgICBpAAAAAE4oBQAAAFJGAAAAUtsAAABSqAAAAFIUAAAAUhkAAAAoAwAAAFJFAAAAUkkAAABS8QAAACgAAAAAKAAAAABzNQAAAC9vcHQvYWx0L3B5dGhvbjI3L2xpYjY0L3B5dGhvbjIuNy9sb2dnaW5nL19faW5pdF9fLnB5UhkAAABEBgAAcwYAAAAABBUBCgFjAQAAAAMAAAAEAAAATwAAAHMeAAAAZAEAfAIAZAIAPHQAAHwAAHwBAHwCAI4BAAFkAwBTKAQAAABzYQAAAAogICAgTG9nIGEgbWVzc2FnZSB3aXRoIHNldmVyaXR5ICdFUlJPUicgb24gdGhlIHJvb3QgbG9nZ2VyLAogICAgd2l0aCBleGNlcHRpb24gaW5mb3JtYXRpb24uCiAgICBpAQAAAFIoAAAATigBAAAAUhkAAAAoAwAAAFJFAAAAUkkAAABS8QAAACgAAAAAKAAAAABzNQAAAC9vcHQvYWx0L3B5dGhvbjI3L2xpYjY0L3B5dGhvbjIuNy9sb2dnaW5nL19faW5pdF9fLnB5UhoAAABMBgAAcwQAAAAABQoBYwEAAAADAAAABAAAAE8AAABzNgAAAHQAAHQBAGoCAIMBAGQBAGsCAHIfAHQDAIMAAAFuAAB0AQBqBAB8AAB8AQB8AgCOAQABZAIAUygDAAAAc0MAAAAKICAgIExvZyBhIG1lc3NhZ2Ugd2l0aCBzZXZlcml0eSAnV0FSTklORycgb24gdGhlIHJvb3QgbG9nZ2VyLgogICAgaQAAAABOKAUAAABSRgAAAFLbAAAAUqgAAABSFAAAAFIkAAAAKAMAAABSRQAAAFJJAAAAUvEAAAAoAAAAACgAAAAAczUAAAAvb3B0L2FsdC9weXRob24yNy9saWI2NC9weXRob24yLjcvbG9nZ2luZy9fX2luaXRfXy5weVIkAAAAVAYAAHMGAAAAAAQVAQoBYwEAAAADAAAABAAAAE8AAABzNgAAAHQAAHQBAGoCAIMBAGQBAGsCAHIfAHQDAIMAAAFuAAB0AQBqBAB8AAB8AQB8AgCOAQABZAIAUygDAAAAc0AAAAAKICAgIExvZyBhIG1lc3NhZ2Ugd2l0aCBzZXZlcml0eSAnSU5GTycgb24gdGhlIHJvb3QgbG9nZ2VyLgogICAgaQAAAABOKAUAAABSRgAAAFLbAAAAUqgAAABSFAAAAFIfAAAAKAMAAABSRQAAAFJJAAAAUvEAAAAoAAAAACgAAAAAczUAAAAvb3B0L2FsdC9weXRob24yNy9saWI2NC9weXRob24yLjcvbG9nZ2luZy9fX2luaXRfXy5weVIfAAAAXgYAAHMGAAAAAAQVAQoBYwEAAAADAAAABAAAAE8AAABzNgAAAHQAAHQBAGoCAIMBAGQBAGsCAHIfAHQDAIMAAAFuAAB0AQBqBAB8AAB8AQB8AgCOAQABZAIAUygDAAAAc0EAAAAKICAgIExvZyBhIG1lc3NhZ2Ugd2l0aCBzZXZlcml0eSAnREVCVUcnIG9uIHRoZSByb290IGxvZ2dlci4KICAgIGkAAAAATigFAAAAUkYAAABS2wAAAFKoAAAAUhQAAABSFwAAACgDAAAAUkUAAABSSQAAAFLxAAAAKAAAAAAoAAAAAHM1AAAAL29wdC9hbHQvcHl0aG9uMjcvbGliNjQvcHl0aG9uMi43L2xvZ2dpbmcvX19pbml0X18ucHlSFwAAAGYGAABzBgAAAAAEFQEKAWMCAAAABAAAAAUAAABPAAAAczkAAAB0AAB0AQBqAgCDAQBkAQBrAgByHwB0AwCDAAABbgAAdAEAagQAfAAAfAEAfAIAfAMAjgIAAWQCAFMoAwAAAHNQAAAACiAgICBMb2cgJ21zZyAlIGFyZ3MnIHdpdGggdGhlIGludGVnZXIgc2V2ZXJpdHkgJ2xldmVsJyBvbiB0aGUgcm9vdCBsb2dnZXIuCiAgICBpAAAAAE4oBQAAAFJGAAAAUtsAAABSqAAAAFIUAAAAUiAAAAAoBAAAAFIxAAAAUkUAAABSSQAAAFLxAAAAKAAAAAAoAAAAAHM1AAAAL29wdC9hbHQvcHl0aG9uMjcvbGliNjQvcHl0aG9uMi43L2xvZ2dpbmcvX19pbml0X18ucHlSIAAAAG4GAABzBgAAAAAEFQEKAWMBAAAAAQAAAAIAAABDAAAAcxAAAAB8AAB0AABqAQBfAgBkAQBTKAIAAABzQgAAAAogICAgRGlzYWJsZSBhbGwgbG9nZ2luZyBjYWxscyBvZiBzZXZlcml0eSAnbGV2ZWwnIGFuZCBiZWxvdy4KICAgIE4oAwAAAFLbAAAAUuAAAABSGAAAACgBAAAAUjEAAAAoAAAAACgAAAAAczUAAAAvb3B0L2FsdC9weXRob24yNy9saWI2NC9weXRob24yLjcvbG9nZ2luZy9fX2luaXRfXy5weVIYAAAAdgYAAHMCAAAAAARjAQAAAAMAAAAHAAAAQwAAAHOWAAAAeI8AdAAAfAAAHoMBAERdgAB9AQB5ZAB8AQCDAAB9AgB8AgBydwB6QAB5IgB8AgBqAQCDAAABfAIAagIAgwAAAXwCAGoDAIMAAAFXbhcABHQEAHQFAGYCAGsKAHJkAAEBAW4BAFhXZAEAfAIAagYAgwAAAVhuAABXcQ4AAQEBdAcAco4AggAAcY4AcQ4AWHEOAFdkAQBTKAIAAABzgwAAAAogICAgUGVyZm9ybSBhbnkgY2xlYW51cCBhY3Rpb25zIGluIHRoZSBsb2dnaW5nIHN5c3RlbSAoZS5nLiBmbHVzaGluZwogICAgYnVmZmVycykuCgogICAgU2hvdWxkIGJlIGNhbGxlZCBhdCBhcHBsaWNhdGlvbiBleGl0LgogICAgTigIAAAAdAgAAAByZXZlcnNlZFI+AAAAUrsAAABSiAAAAFK/AAAAUjkAAABSPwAAAFK8AAAAKAMAAAB0CwAAAGhhbmRsZXJMaXN0UqcAAAB0AQAAAGgoAAAAACgAAAAAczUAAAAvb3B0L2FsdC9weXRob24yNy9saWI2NC9weXRob24yLjcvbG9nZ2luZy9fX2luaXRfXy5weXQIAAAAc2h1dGRvd258BgAAcx4AAAAABxQDAwEJAQYBAwADAQoBCgEOARMFCAISAQMBBgFjAAAAAAAAAAABAAAAQgAAAHMpAAAAZQAAWgEAZAAAWgIAZAEAhAAAWgMAZAIAhAAAWgQAZAMAhAAAWgUAUlMoBAAAAHPZAQAACiAgICBUaGlzIGhhbmRsZXIgZG9lcyBub3RoaW5nLiBJdCdzIGludGVuZGVkIHRvIGJlIHVzZWQgdG8gYXZvaWQgdGhlCiAgICAiTm8gaGFuZGxlcnMgY291bGQgYmUgZm91bmQgZm9yIGxvZ2dlciBYWFgiIG9uZS1vZmYgd2FybmluZy4gVGhpcyBpcwogICAgaW1wb3J0YW50IGZvciBsaWJyYXJ5IGNvZGUsIHdoaWNoIG1heSBjb250YWluIGNvZGUgdG8gbG9nIGV2ZW50cy4gSWYgYSB1c2VyCiAgICBvZiB0aGUgbGlicmFyeSBkb2VzIG5vdCBjb25maWd1cmUgbG9nZ2luZywgdGhlIG9uZS1vZmYgd2FybmluZyBtaWdodCBiZQogICAgcHJvZHVjZWQ7IHRvIGF2b2lkIHRoaXMsIHRoZSBsaWJyYXJ5IGRldmVsb3BlciBzaW1wbHkgbmVlZHMgdG8gaW5zdGFudGlhdGUKICAgIGEgTnVsbEhhbmRsZXIgYW5kIGFkZCBpdCB0byB0aGUgdG9wLWxldmVsIGxvZ2dlciBvZiB0aGUgbGlicmFyeSBtb2R1bGUgb3IKICAgIHBhY2thZ2UuCiAgICBjAgAAAAIAAAABAAAAQwAAAHMEAAAAZAAAUygBAAAATigAAAAAKAIAAABSagAAAFJ/AAAAKAAAAAAoAAAAAHM1AAAAL29wdC9hbHQvcHl0aG9uMjcvbGliNjQvcHl0aG9uMi43L2xvZ2dpbmcvX19pbml0X18ucHlSuQAAAKoGAABzAgAAAAABYwIAAAACAAAAAQAAAEMAAABzBAAAAGQAAFMoAQAAAE4oAAAAACgCAAAAUmoAAABSfwAAACgAAAAAKAAAAABzNQAAAC9vcHQvYWx0L3B5dGhvbjI3L2xpYjY0L3B5dGhvbjIuNy9sb2dnaW5nL19faW5pdF9fLnB5UrgAAACtBgAAcwIAAAAAAWMBAAAAAQAAAAIAAABDAAAAcw0AAABkAAB8AABfAQBkAABTKAEAAABOKAIAAABSVAAAAFK1AAAAKAEAAABSagAAACgAAAAAKAAAAABzNQAAAC9vcHQvYWx0L3B5dGhvbjI3L2xpYjY0L3B5dGhvbjIuNy9sb2dnaW5nL19faW5pdF9fLnB5UrAAAACwBgAAcwIAAAAAASgGAAAAUnQAAABSdQAAAFJ2AAAAUrkAAABSuAAAAFKwAAAAKAAAAAAoAAAAACgAAAAAczUAAAAvb3B0L2FsdC9weXRob24yNy9saWI2NC9weXRob24yLjcvbG9nZ2luZy9fX2luaXRfXy5weVIPAAAAoAYAAHMIAAAABgkGAQkDCQNjBgAAAAgAAAAHAAAAQwAAAHOOAAAAfAQAZAMAawkAcjcAdAEAZAMAawkAcooAdAEAfAAAfAEAfAIAfAMAfAQAfAUAgwYAAXGKAG5TAHQCAGoDAHwAAHwBAHwCAHwDAHwFAIMFAH0GAHQEAGQBAIMBAH0HAHwHAGoFAHN6AHwHAGoGAHQHAIMAAIMBAAFuAAB8BwBqCABkAgB8BgCDAgABZAMAUygEAAAAc4gBAAAKICAgIEltcGxlbWVudGF0aW9uIG9mIHNob3d3YXJuaW5ncyB3aGljaCByZWRpcmVjdHMgdG8gbG9nZ2luZywgd2hpY2ggd2lsbCBmaXJzdAogICAgY2hlY2sgdG8gc2VlIGlmIHRoZSBmaWxlIHBhcmFtZXRlciBpcyBOb25lLiBJZiBhIGZpbGUgaXMgc3BlY2lmaWVkLCBpdCB3aWxsCiAgICBkZWxlZ2F0ZSB0byB0aGUgb3JpZ2luYWwgd2FybmluZ3MgaW1wbGVtZW50YXRpb24gb2Ygc2hvd3dhcm5pbmcuIE90aGVyd2lzZSwKICAgIGl0IHdpbGwgY2FsbCB3YXJuaW5ncy5mb3JtYXR3YXJuaW5nIGFuZCB3aWxsIGxvZyB0aGUgcmVzdWx0aW5nIHN0cmluZyB0byBhCiAgICB3YXJuaW5ncyBsb2dnZXIgbmFtZWQgInB5Lndhcm5pbmdzIiB3aXRoIGxldmVsIGxvZ2dpbmcuV0FSTklORy4KICAgIHMLAAAAcHkud2FybmluZ3NzAgAAACVzTigJAAAAUlQAAAB0FQAAAF93YXJuaW5nc19zaG93d2FybmluZ3QIAAAAd2FybmluZ3N0DQAAAGZvcm1hdHdhcm5pbmdSHQAAAFKoAAAAUgMBAABSDwAAAFIkAAAAKAgAAABSjwAAAHQIAAAAY2F0ZWdvcnlSUAAAAFJWAAAAdAQAAABmaWxldAQAAABsaW5lUoAAAABSBgEAACgAAAAAKAAAAABzNQAAAC9vcHQvYWx0L3B5dGhvbjI3L2xpYjY0L3B5dGhvbjIuNy9sb2dnaW5nL19faW5pdF9fLnB5dAwAAABfc2hvd3dhcm5pbme3BgAAcxAAAAAACAwBDAEfAhsBDAEJARMBYwEAAAABAAAAAgAAAEMAAABzTAAAAHwAAHIqAHQAAGQBAGsIAHJIAHQCAGoDAGEAAHQEAHQCAF8DAHFIAG4eAHQAAGQBAGsJAHJIAHQAAHQCAF8DAGQBAGEAAG4AAGQBAFMoAgAAAHO/AAAACiAgICBJZiBjYXB0dXJlIGlzIHRydWUsIHJlZGlyZWN0IGFsbCB3YXJuaW5ncyB0byB0aGUgbG9nZ2luZyBwYWNrYWdlLgogICAgSWYgY2FwdHVyZSBpcyBGYWxzZSwgZW5zdXJlIHRoYXQgd2FybmluZ3MgYXJlIG5vdCByZWRpcmVjdGVkIHRvIGxvZ2dpbmcKICAgIGJ1dCB0byB0aGVpciBvcmlnaW5hbCBkZXN0aW5hdGlvbnMuCiAgICBOKAUAAABSEgEAAFJUAAAAUhMBAAB0CwAAAHNob3d3YXJuaW5nUhgBAAAoAQAAAHQHAAAAY2FwdHVyZSgAAAAAKAAAAABzNQAAAC9vcHQvYWx0L3B5dGhvbjI3L2xpYjY0L3B5dGhvbjIuNy9sb2dnaW5nL19faW5pdF9fLnB5UhUAAADJBgAAcw4AAAAABwYBDAEJAQ8CDAEJAShiAAAAUnYAAABSJwAAAFJNAAAAUkMAAABSgwAAAFKFAAAAUhMBAABSqgAAAFJHAAAAdAcAAABfX2FsbF9fUs0AAAB0CwAAAEltcG9ydEVycm9yUlQAAABSXQAAAFJfAAAAdAoAAABfX2F1dGhvcl9fdAoAAABfX3N0YXR1c19fdAsAAABfX3ZlcnNpb25fX3QIAAAAX19kYXRlX19SxAAAAHQEAAAAVHJ1ZVJwAAAAdAkAAABOYW1lRXJyb3J0BQAAAEZhbHNlUisAAABSaAAAAFJOAAAAUvMAAAB0CAAAAF9fY29kZV9fUvQAAABS9QAAAFJaAAAAUrwAAABSXAAAAFJiAAAAUmcAAABSAgAAAFIFAAAAUgQAAABSEgAAAFIRAAAAUgoAAABSAwAAAFIOAAAAUi8AAABSHAAAAFITAAAAUjwAAABStAAAAFI9AAAAUjIAAABSMwAAAHQGAAAAb2JqZWN0UgsAAABSIQAAAFIIAAAAUpgAAABSAQAAAFIHAAAAUp8AAAB0EwAAAFdlYWtWYWx1ZURpY3Rpb25hcnlSsgAAAFKmAAAAUqkAAABSrQAAAFIJAAAAUhAAAABSBgAAAFLUAAAAUtgAAABSIgAAAFIeAAAAUtoAAABSDAAAAFILAQAAUg0AAABS2wAAAFLgAAAAUgAAAABSFAAAAFIdAAAAUhYAAABSGwAAAFIZAAAAUhoAAABSJAAAAFIjAAAAUh8AAABSFwAAAFIgAAAAUhgAAABSEQEAAHQGAAAAYXRleGl0dAgAAAByZWdpc3RlclIPAAAAUhIBAABSGAEAAFIVAAAAKAAAAAAoAAAAACgAAAAAczUAAAAvb3B0L2FsdC9weXRob24yNy9saWI2NC9weXRob24yLjcvbG9nZ2luZy9fX2luaXRfXy5weXQIAAAAPG1vZHVsZT4YAAAAc+AAAAAGAmACDwESAQ8BDwEPAQ8BGAIDARABDQEKAgMBDAEQAQ0BCgIGAQYCBgEGBQMBBAEKAQ0BCgMJBw8ADAcYDAwGBgUGBQYFBg0GAQYBBgEGAQYBBgEGAQYCAwEHAQcBBwEHAQcBBwEHAQcBBwEHAQcBBwEKAwkQCQ0JFwYBDwIGAgkJCQsWawkPFpoJAhYqFiUWLAwBBgIJGAkKFqQWRxZIFhkGAgkNCQcWZhb/ABQWDAYCFmAMAQkBEgYGAgk8DBQJCAYCCQgJCAkIBgIJCAkICQgJBgwfDAENBBYVBgIPEg==
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--
2025-01-08 10:43:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
config.pyc
26.00 KB
lrw-r--r--
2025-01-08 10:43:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
config.pyo
25.95 KB
lrw-r--r--
2025-01-08 10:43:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.py
47.17 KB
lrw-r--r--
2025-01-08 10:43:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.pyc
39.52 KB
lrw-r--r--
2025-01-08 10:43:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.pyo
39.52 KB
lrw-r--r--
2025-01-08 10:43:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.py
60.22 KB
lrw-r--r--
2025-01-08 10:43:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.pyc
57.74 KB
lrw-r--r--
2025-01-08 10:43:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.pyo
57.70 KB
lrw-r--r--
2025-01-08 10:43:40
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).