REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 78.40 KB
Close
//opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/engine/__pycache__/reflection.cpython-312.pyc
Text
Base64
yw0NCgAAAAD5ke9ndyYBAOMAAAAAAAAAAAAAAAAHAAAAAAAAAfNAAwAAlwBkAFoAZAFkAmwBbQJaAgEAZAFkA2wDWgNkAWQEbARtBVoFAQBkAWQFbAZtB1oHAQBkAWQGbAZtCFoIAQBkAWQHbAZtCVoJAQBkAWQIbAptC1oLAQBkAWQJbAptDFoMAQBkAWQKbAptDVoNAQBkAWQLbAptDloOAQBkAWQMbAptD1oPAQBkAWQNbAptEFoQAQBkAWQObAptEVoRAQBkAWQPbAptEloSAQBkAWQQbAptE1oTAQBkAWQRbAptFFoUAQBkAWQSbAptFVoVAQBkAWQTbAptFloWAQBkAWQUbAptF1oXAQBkAWQVbAptGFoYAQBkFmQXbBltGloaAQBkFmQYbBltG1obAQBkGWQabBxtHVodAQBkGWQbbBxtHloeAQBkGWQcbBxtH1ofAQBkGWQdbBxtIFogAQBkGWQebB9tIVohAQBkGWQfbB9tIlojAQBkGWQgbCRtJVolAQBkGWQhbCZtJ1onAQBkGWQibCZtKFooAQBkGWQjbCltKloqAQBkGWQkbCttLFosAQBkGWQlbCBtLVotAQBkGWQmbC5tL1ovAQBlFnI2ZBZkJ2wwbTFaMQEAZBZkKGwwbTJaMgEAZBZkKWwwbTNaMwEAZBZkKmwwbTRaNAEAZBZkK2wwbTVaNQEAZBZkLGwwbTZaNgEAZBZkLWwwbTdaNwEAZBZkLmwwbThaOAEAZBZkL2wwbTlaOQEAAgBlF2QwqwEAAAAAAABaOmUganYAAAAAAAAAAAAAAAAAAAAAAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQBkPWQxhASrAAAAAAAAAFo8CQAJAAkACQBkPmQyhARaPWUJAgBHAGQzhABkNGUIqwMAAAAAAACrAAAAAAAAAFo+ZQkCAEcAZDWEAGQ2ZQirAwAAAAAAAKsAAAAAAAAAWj9lHmqAAAAAAAAAAAAAAAAAAAAAAAAAAgBHAGQ3hABkOGUeaoIAAAAAAAAAAAAAAAAAAAAAAABkOBkAAACrAwAAAAAAAKsAAAAAAAAAWkJlLwIARwBkOYQAZDqrAgAAAAAAAKsAAAAAAAAAWkNlBQIARwBkO4QAZDyrAgAAAAAAAKsAAAAAAAAAWkR5Ayk/YeMCAABQcm92aWRlcyBhbiBhYnN0cmFjdGlvbiBmb3Igb2J0YWluaW5nIGRhdGFiYXNlIHNjaGVtYSBpbmZvcm1hdGlvbi4KClVzYWdlIE5vdGVzOgoKSGVyZSBhcmUgc29tZSBnZW5lcmFsIGNvbnZlbnRpb25zIHdoZW4gYWNjZXNzaW5nIHRoZSBsb3cgbGV2ZWwgaW5zcGVjdG9yCm1ldGhvZHMgc3VjaCBhcyBnZXRfdGFibGVfbmFtZXMsIGdldF9jb2x1bW5zLCBldGMuCgoxLiBJbnNwZWN0b3IgbWV0aG9kcyByZXR1cm4gbGlzdHMgb2YgZGljdHMgaW4gbW9zdCBjYXNlcyBmb3IgdGhlIGZvbGxvd2luZwogICByZWFzb25zOgoKICAgKiBUaGV5J3JlIGJvdGggc3RhbmRhcmQgdHlwZXMgdGhhdCBjYW4gYmUgc2VyaWFsaXplZC4KICAgKiBVc2luZyBhIGRpY3QgaW5zdGVhZCBvZiBhIHR1cGxlIGFsbG93cyBlYXN5IGV4cGFuc2lvbiBvZiBhdHRyaWJ1dGVzLgogICAqIFVzaW5nIGEgbGlzdCBmb3IgdGhlIG91dGVyIHN0cnVjdHVyZSBtYWludGFpbnMgb3JkZXIgYW5kIGlzIGVhc3kgdG8gd29yawogICAgIHdpdGggKGUuZy4gbGlzdCBjb21wcmVoZW5zaW9uIFtkWyduYW1lJ10gZm9yIGQgaW4gY29sc10pLgoKMi4gUmVjb3JkcyB0aGF0IGNvbnRhaW4gYSBuYW1lLCBzdWNoIGFzIHRoZSBjb2x1bW4gbmFtZSBpbiBhIGNvbHVtbiByZWNvcmQKICAgdXNlIHRoZSBrZXkgJ25hbWUnLiBTbyBmb3IgbW9zdCByZXR1cm4gdmFsdWVzLCBlYWNoIHJlY29yZCB3aWxsIGhhdmUgYQogICAnbmFtZScgYXR0cmlidXRlLi4K6QAAAAApAdoLYW5ub3RhdGlvbnNOKQHaCWRhdGFjbGFzcykB2gRhdXRvKQHaBEZsYWcpAdoGdW5pcXVlKQHaA0FueSkB2ghDYWxsYWJsZSkB2gpDb2xsZWN0aW9uKQHaBERpY3QpAdoJR2VuZXJhdG9yKQHaCEl0ZXJhYmxlKQHaBExpc3QpAdoIT3B0aW9uYWwpAdoIU2VxdWVuY2UpAdoDU2V0KQHaBVR1cGxlKQHaDVRZ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AAAAAAIAAAAAAAAB81wAAACXAGUAWgFkAFoCZAFaAwIAZQSrAAAAAAAAAFoFCQACAGUEqwAAAAAAAABaBgkAAgBlBKsAAAAAAAAAWgcJAGUGZQd6BwAAWggJAGUFZQZ6BwAAZQd6BwAAWgl5AikD2gpPYmplY3RLaW5kYd4CAABFbnVtZXJhdG9yIHRoYXQgaW5kaWNhdGVzIHdoaWNoIGtpbmQgb2Ygb2JqZWN0IHRvIHJldHVybiB3aGVuIGNhbGxpbmcKICAgIHRoZSBgYGdldF9tdWx0aWBgIG1ldGhvZHMuCgogICAgVGhpcyBpcyBhIEZsYWcgZW51bSwgc28gY3VzdG9tIGNvbWJpbmF0aW9ucyBjYW4gYmUgcGFzc2VkLiBGb3IgZXhhbXBsZSwKICAgIHRvIHJlZmxlY3QgdGFibGVzIGFuZCBwbGFpbiB2aWV3cyBgYE9iamVjdEtpbmQuVEFCTEUgfCBPYmplY3RLaW5kLlZJRVdgYAogICAgbWF5IGJlIHVzZWQuCgogICAgLi4gbm90ZTo6CiAgICAgIE5vdCBhbGwgZGlhbGVjdCBtYXkgc3VwcG9ydCBhbGwga2luZCBvZiBvYmplY3QuIElmIGEgZGlhbGVjdCBkb2VzCiAgICAgIG5vdCBzdXBwb3J0IGEgcGFydGljdWxhciBvYmplY3QgYW4gZW1wdHkgZGljdCBpcyByZXR1cm5lZC4KICAgICAgSW4gY2FzZSBhIGRpYWxlY3Qgc3VwcG9ydHMgYW4gb2JqZWN0LCBidXQgdGhlIHJlcXVlc3RlZCBtZXRob2QKICAgICAgaXMgbm90IGFwcGxpY2FibGUgZm9yIHRoZSBzcGVjaWZpZWQga2luZCB0aGUgZGVmYXVsdCB2YWx1ZQogICAgICB3aWxsIGJlIHJldHVybmVkIGZvciBlYWNoIHJlZmxlY3RlZCBvYmplY3QuIEZvciBleGFtcGxlIHJlZmxlY3RpbmcKICAgICAgY2hlY2sgY29uc3RyYWludHMgb2YgdmlldyByZXR1cm4gYSBkaWN0IHdpdGggYWxsIHRoZSB2aWV3cyB3aXRoCiAgICAgIGVtcHR5IGxpc3RzIGFzIHZhbHVlcy4KICAgIE4pCnJCAAAA2gpfX21vZHVsZV9f2gxfX3F1YWxuYW1lX1/aB19f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ZmFjZXMuRGlhbGVjdGAsIHByb3ZpZGluZyBhCiAgICBjb25zaXN0ZW50IGludGVyZmFjZSBhcyB3ZWxsIGFzIGNhY2hpbmcgc3VwcG9ydCBmb3IgcHJldmlvdXNseQogICAgZmV0Y2hlZCBtZXRhZGF0YS4KCiAgICBBIDpjbGFzczpgX3JlZmxlY3Rpb24uSW5zcGVjdG9yYCBvYmplY3QgaXMgdXN1YWxseSBjcmVhdGVkIHZpYSB0aGUKICAgIDpmdW5jOmBfc2EuaW5zcGVjdGAgZnVuY3Rpb24sIHdoaWNoIG1heSBiZSBwYXNzZWQgYW4KICAgIDpjbGFzczpgX2VuZ2luZS5FbmdpbmVgCiAgICBvciBhIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYDo6CgogICAgICAgIGZyb20gc3FsYWxjaGVteSBpbXBvcnQgaW5zcGVjdCwgY3JlYXRlX2VuZ2luZQoKICAgICAgICBlbmdpbmUgPSBjcmVhdGVfZW5naW5lKCIuLi4iKQogICAgICAgIGluc3AgPSBpbnNwZWN0KGVuZ2luZSkKCiAgICBXaGVyZSBhYm92ZSwgdGhlIDpjbGFzczpgfnNxbGFsY2hlbXkuZW5naW5lLmludGVyZmFjZXMuRGlhbGVjdGAgYXNzb2NpYXRlZAogICAgd2l0aCB0aGUgZW5naW5lIG1heSBvcHQgdG8gcmV0dXJuIGFuIDpjbGFzczpgX3JlZmxlY3Rpb24uSW5zcGVjdG9yYAogICAgc3ViY2xhc3MgdGhhdAogICAgcHJvdmlkZXMgYWRkaXRpb25hbCBtZXRob2RzIHNwZWNpZmljIHRvIHRoZSBkaWFsZWN0J3MgdGFyZ2V0IGRhdGFiYXNlLgoKICAgIPoZVW5pb25bRW5naW5lLCBDb25uZWN0aW9uXdoEYmluZHIYAAAA2gZlbmdpbmXaBGJvb2zaHF9vcF9jb250ZXh0X3JlcXVpcmVzX2Nvbm5lY3RyJwAAANoHZGlhbGVjdHoORGljdFtBbnksIEFueV1yMgAAAHoDMS40YRcBAABUaGUgX19pbml0X18oKSBtZXRob2Qgb24gOmNsYXNzOmBfcmVmbGVjdGlvbi5JbnNwZWN0b3JgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVt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bmVgIG9yIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBpbiBvcmRlciB0byBhY3F1aXJlIGFuIDpjbGFzczpgX3JlZmxlY3Rpb24uSW5zcGVjdG9yYC5jAgAAAAAAAAAAAAAABAAAAAMAAAHzOgAAAJcAfABqAQAAAAAAAAAAAAAAAAAAAAAAAHwAagIAAAAAAAAAAAAAAAAAAAAAAAB8AasCAAAAAAAAUwApAWFaAgAAQ29uc3RydWN0IGEgbmV3IGRpYWxlY3Qtc3BlY2lmaWMgSW5zcGVjdG9yIG9iamVjdCBmcm9tIHRoZSBnaXZlbgogICAgICAgIGVuZ2luZSBvciBjb25uZWN0aW9uLgoKICAgICAgICA6cGFyYW0gYmluZDogYSA6Y2xhc3M6YH5zcWxhbGNoZW15LmVuZ2luZS5Db25uZWN0aW9uYAogICAgICAgICBvciA6Y2xhc3M6YH5zcWxhbGNoZW15LmVuZ2luZS5FbmdpbmVgLgoKICAgICAgICBUaGlzIG1ldGhvZCBkaWZmZXJzIGZyb20gZGlyZWN0IGEgZGlyZWN0IGNvbnN0cnVjdG9yIGNhbGwgb2YKICAgICAgICA6Y2xhc3M6YF9yZWZsZWN0aW9uLkluc3BlY3RvcmAgaW4gdGhhdCB0aGUKICAgICAgICA6Y2xhc3M6YH5zcWxhbGNoZW15LmVuZ2luZS5pbnRlcmZhY2VzLkRpYWxlY3RgIGlzIGdpdmVuIGEgY2hhbmNlIHRvCiAgICAgICAgcHJvdmlkZSBhIGRpYWxlY3Qtc3BlY2lmaWMgOmNsYXNzOmBfcmVmbGVjdGlvbi5JbnNwZWN0b3JgIGluc3RhbmNlLAogICAgICAgIHdoaWNoIG1heQogICAgICAgIHByb3ZpZGUgYWRkaXRpb25hbCBtZXRob2RzLgoKICAgICAgICBTZWUgdGhlIGV4YW1wbGUgYXQgOmNsYXNzOmBfcmVmbGVjdGlvbi5JbnNwZWN0b3JgLgoKICAgICAgICApAnJ3AAAAcm4AAAApAnJ1AAAAcmgAAABzAgAAACAgcjsAAADaC2Zyb21fZW5naW5lehVJbnNwZWN0b3IuZnJvbV9lbmdpbmUYAQAAcxsAAACAAPA6ABATj36Jfphj1x4u0R4usATTDzXQCDVyTQAAAGMBAAAA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ICAgICAgdGFibGUgb2YgdGhlIGdpdmVuIG5hbWUuCgogICAgICAgIDpwYXJhbSB0YWJsZV9uYW1lOiBuYW1lIG9mIHRoZSB0YWJsZSB0byBjaGVjawogICAgICAgIDpwYXJhbSBzY2hlbWE6IHNjaGVtYSBuYW1lIHRvIHF1ZXJ5LCBpZiBub3QgdGhlIGRlZmF1bHQgc2NoZW1hLgogICAgICAgIDpwYXJhbSBcKiprdzogQWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50IHRvIHBhc3MgdG8gdGhlIGRpYWxlY3QKICAgICAgICAgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24uIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZGlhbGVjdAogICAgICAgICBpbiB1c2UgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuNCAtIHRoZSA6bWV0aDpgLkluc3BlY3Rvci5oYXNfdGFibGVgIG1ldGhvZAogICAgICAgICAgIHJlcGxhY2VzIHRoZSA6bWV0aDpgX2VuZ2luZS5FbmdpbmUuaGFzX3RhYmxlYCBtZXRob2QuCgogICAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMi4wOjogOm1ldGg6YC5JbnNwZWN0b3IuaGFzX3RhYmxlYCBub3cgZm9ybWFsbHkKICAgICAgICAgICBzdXBwb3J0cyBjaGVja2luZyBmb3IgYWRkaXRpb25hbCB0YWJsZS1saWtlIG9iamVjdHM6CgogICAgICAgICAgICogYW55IHR5cGUgb2Ygdmlld3MgKHBsYWluIG9yIG1hdGVyaWFsaXplZCkKICAgICAgICAgICAqIHRlbXBvcmFyeSB0YWJsZXMgb2YgYW55IGtpbmQKCiAgICAgICAgICAgUHJldmlvdXNseSwgdGhlc2UgdHdvIGNoZWNrcyB3ZXJlIG5vdCBmb3JtYWxseSBzcGVjaWZpZWQgYW5kCiAgICAgICAgICAgZGlmZmVyZW50IGRpYWxlY3RzIHdvdWxkIHZhcnkgaW4gdGhlaXIgYmVoYXZpb3IuICAgVGhlIGRpYWxlY3QKICAgICAgICAgICB0ZXN0aW5nIHN1aXRlIG5vdyBpbmNsdWRl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IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgbmFtZXMgdGhhdCB3b3VsZCByZXF1aXJlIGEgc2VwYXJhdGUgQ1JFQVRFCiAgICAgICAgc3RlcCBhZnRlci10aGUtZmFjdCwgYmFzZWQgb24gZGVwZW5kZW5jaWVzIGJldHdlZW4gdGFibGVzLgoKICAgICAgICA6cGFyYW0gc2NoZW1hOiBzY2hlbWEgbmFtZSB0byBxdWVyeSwgaWYgbm90IHRoZSBkZWZhdWx0IHNjaGVtYS4KICAgICAgICA6cGFyYW0gXCoqa3c6IEFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVudCB0byBwYXNzIHRvIHRoZSBkaWFsZWN0CiAgICAgICAgIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGRpYWxlY3QKICAgICAgICAgaW4gdXNlIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDptZXRoOmBfcmVmbGVjdGlvbi5JbnNwZWN0b3IuZ2V0X3RhYmxlX25hbWVzYAoKICAgICAgICAgICAgOmZ1bmM6YC5zb3J0X3RhYmxlc19hbmRfY29uc3RyYWludHNgIC0gc2ltaWxhciBtZXRob2Qgd2hpY2ggd29ya3MKICAgICAgICAgICAgd2l0aCBhbiBhbHJlYWR5LWdpdmVuIDpjbGFzczpgX3NjaGVtYS5NZXRhRGF0YWAuCgogICAgICAgICkB2hBjb25zaWRlcl9zY2hlbWFzchYAAABOKQHaJXNvcnRfdGFibGVzX29uX2ZvcmVpZ25fa2V5X2RlcGVuZGVuY3kpCHJGAAAAch8AAABySQAAANoJdGFibGVfa2V52g1ma19jb2xsZWN0aW9u2gFf2gV0bmFtZdoDZmtzcwgAAAAgICAgICAgIHI7AAAA2h5nZXRfc29ydGVkX3RhYmxlX2FuZF9ma2NfbmFtZXN6KEluc3BlY3Rvci5nZXRfc29ydGVkX3RhYmxlX2FuZF9ma2NfbmFtZXP7AQAAc30AAACAAPBQAQASFtcRO9ERO9giKKAZ8AMAEjz0AAISDvcRCxAK8RACEg7xBwMRDtgQGdgQHfELACEq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IE15U1FMIGFuZCBPcmFjbGUKICAgICAgICB0YWJsZXMuCgogICAgICAgIDpwYXJhbSBzY2hlbWE6IHN0cmluZyBzY2hlbWEgbmFtZTsgaWYgb21pdHRlZCwgdXNlcyB0aGUgZGVmYXVsdCBzY2hlbWEKICAgICAgICAgb2YgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24uICBGb3Igc3BlY2lhbCBxdW90aW5nLAogICAgICAgICB1c2UgOmNsYXNzOmAucXVvdGVkX25hbWVgLgoKICAgICAgICA6cGFyYW0gZmlsdGVyX25hbWVzOiBvcHRpb25hbGx5IHJldHVybiBpbmZvcm1hdGlvbiBvbmx5IGZvciB0aGUKICAgICAgICAgb2JqZWN0cyBsaXN0ZWQgaGVyZS4KCiAgICAgICAgOnBhcmFtIGtpbmQ6IGEgOmNsYXNzOmAuT2JqZWN0S2luZGAgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUgb2Ygb2JqZWN0cwogICAgICAgICB0byByZWZsZWN0LiBEZWZhdWx0cyB0byBgYE9iamVjdEtpbmQuVEFCTEVgYC4KCiAgICAgICAgOnBhcmFtIHNjb3BlOiBhIDpjbGFzczpgLk9iamVjdFNjb3BlYCB0aGF0IHNwZWNpZmllcyBpZiBvcHRpb25zIG9mCiAgICAgICAgIGRlZmF1bHQsIHRlbXBvcmFyeSBvciBhbnkgdGFibGVzIHNob3VsZCBiZSByZWZsZWN0ZWQuCiAgICAgICAgIERlZmF1bHRzIHRvIGBgT2JqZWN0U2NvcGUuREVGQVVMVGBgLgoKICAgICAgICA6cGFyYW0gXCoqa3c6IEFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVudCB0byBwYXNzIHRvIHRoZSBkaWFsZWN0CiAgICAgICAgIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGRpYWxlY3QKICAgICAgICAgaW4gdXNlIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKICAgICAgICA6cmV0dXJuOiBhIGRpY3Rpb25hcnkgd2hlcmUgdGhlIGtleXMgYXJlIHR3by10dXBsZSBzY2hlbWEsdGFibGUtbmFtZQogICAgICAgICBhbmQgdGhlIHZhbHVlcyBhcmUgZGljdGlvbmFyaWVzIHdpdGggdGhlIHRhYmxlIG9wdGlvbnMuCiAgICAgICAgIFRoZSByZXR1cm5lZCBrZXlzIGluIGVhY2ggZGljdCBkZXBlbmQgb24gdGhlCiAgICAgICAgIGRpYWxlY3QgaW4gdXNlLiBFYWNoIG9uZSBpcyBwcmVmaXhlZCB3aXRoIHRoZSBkaWFsZWN0IG5hbWUuCiAgICAgICAgIFRoZSBzY2hlbWEgaXMgYGBOb25lYGAgaWYgbm8gc2NoZW1hIGlzIHByb3ZpZGVkLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAyLjAKCiAgICAgICAgLi4gc2VlYWxzbzo6IDptZXRoOmBJbnNwZWN0b3IuZ2V0X3RhYmxlX29wdGlvbnNgCiAgICAgICAgqQVyHwAAANoMZmlsdGVyX25hbWVz2gRraW5k2gVzY29wZXIyAAAATikFco4AAABybAAAANoXZ2V0X211bHRpX3RhYmxlX29wdGlvbnNyMgAAANoEZGljdCkIckYAAAByHwAAAHLbAAAActwAAABy3QAAAHJJAAAAco0AAADaA3Jlc3MIAAAAICAgICAgICByOwAAAHLeAAAAeiFJbnNwZWN0b3IuZ2V0X211bHRpX3RhYmxlX29wdGlvbnO2AgAAc2MAAACAAPBaAQAOEtcNJNENJNQNJqgk2BI2kCSXLJEs1xI20RI22BAU8AMIEw7gFx3YHSnYFRnYFhvYGx+fP5k/8Q0IEw7wDgATFfEPCBMOiEP0EgAUGJgDkzn3FQAOJ9cNJtINJvpzCwAAAJE4QRMDwRMFQRwHYwIAAAAAAAAAAAAAAAYAAAALAAAB86IAAACXAHwAagEAAAAAAAAAAAAAAAAAAAAAAACrAAAAAAAAADUAfQMCAHwAagIAAAAAAAAAAAAAAAAAAAAAAABqBAAAAAAAAAAAAAAAAAAAAAAAAHwDfAFmAmQBfABqBgAAAAAAAAAAAAAAAAAAAAAAAGkBfAKkAY4BYwJkAmQCZAKrAgAAAAAAAAEAUwAjADEAcwF3AgEAWQABAAEAeQJ4A1kAdwEpA2EbAwAAUmV0dXJuIGFsbCBub24tbWF0ZXJpYWxpemVkIHZpZXcgbmFtZXMgaW4gYHNjaGVtYWAuCgogICAgICAgIDpwYXJhbSBzY2hlbWE6IE9wdGlvbmFsLCByZXRyaWV2ZSBuYW1lcyBmcm9tIGEgbm9uLWRlZmF1bHQgc2NoZW1hLgogICAgICAgICBGb3Igc3BlY2lhbCBxdW90aW5nLCB1c2UgOmNsYXNzOmAucXVvdGVkX25hbWVgLgogICAgICAgIDpwYXJhbSBcKiprdzogQWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50IHRvIHBhc3MgdG8gdGhlIGRpYWxlY3QKICAgICAgICAgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24uIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZGlhbGVjdAogICAgICAgICBpbiB1c2UgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgoKICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDIuMCAgRm9yIHRob3NlIGRpYWxlY3RzIHRoYXQgcHJldmlvdXNseSBpbmNsdWRlZAogICAgICAgICAgIHRoZSBuYW1lcyBvZiBtYXRlcmlhbGl6ZWQgdmlld3MgaW4gdGhpcyBsaXN0IChjdXJyZW50bHkgUG9zdGdyZVNRTCksCiAgICAgICAgICAgdGhpcyBtZXRob2Qgbm8gbG9uZ2VyIHJldHVybnMgdGhlIG5hbWVzIG9mIG1hdGVyaWFsaXplZCB2aWV3cy4KICAgICAgICAgICB0aGUgOm1ldGg6YC5JbnNwZWN0b3IuZ2V0X21hdGVyaWFsaXplZF92aWV3X25hbWVzYCBtZXRob2Qgc2hvdWxkCiAgICAgICAgICAgYmUgdXNlZCBpbnN0ZWFkLgoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDptZXRoOmAuSW5zcGVjdG9yLmdldF9tYXRlcmlhbGl6ZWRfdmlld19uYW1lc2AKCiAgICAgICAgcjIAAABOKQRyjgAAAHJsAAAA2g5nZXRfdmlld19uYW1lc3IyAAAAcpsAAABzBAAAACAgICByOwAAAHLiAAAAehhJbnNwZWN0b3IuZ2V0X3ZpZXdfbmFtZXPvAgAAc0sAAACAAPAwAA4S1w0k0Q0k1A0mqCTYEy6QNJc8kTzXEy7REy7YEBSQZvEDAhQO2Cktrx+pH/ADAhQO2Dw+8QMCFA73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AQB8BVMAIwAxAHMBdwIBAFkAAQABAIwfeANZAHcBKQNhSgMAAFJldHVybiBpbmZvcm1hdGlvbiBhYm91dCBjb2x1bW5zIGluIGBgdGFibGVfbmFtZWBgLgoKICAgICAgICBHaXZlbiBhIHN0cmluZyBgYHRhYmxlX25hbWVgYCBhbmQgYW4gb3B0aW9uYWwgc3RyaW5nIGBgc2NoZW1hYGAsCiAgICAgICAgcmV0dXJuIGNvbHVtbiBpbmZvcm1hdGlvbiBhcyBhIGxpc3Qgb2YgOmNsYXNzOmAuUmVmbGVjdGVkQ29sdW1uYC4KCiAgICAgICAgOnBhcmFtIHRhYmxlX25hbWU6IHN0cmluZyBuYW1lIG9mIHRoZSB0YWJsZS4gIEZvciBzcGVjaWFsIHF1b3RpbmcsCiAgICAgICAgIHVzZSA6Y2xhc3M6YC5xdW90ZWRfbmFtZWAuCgogICAgICAgIDpwYXJhbSBzY2hlbWE6IHN0cmluZyBzY2hlbWEgbmFtZTsgaWYgb21pdHRlZCwgdXNlcyB0aGUgZGVmYXVsdCBzY2hlbWEKICAgICAgICAgb2YgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24uICBGb3Igc3BlY2lhbCBxdW90aW5nLAogICAgICAgICB1c2UgOmNsYXNzOmAucXVvdGVkX25hbWVgLgoKICAgICAgICA6cGFyYW0gXCoqa3c6IEFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVudCB0byBwYXNzIHRvIHRoZSBkaWFsZWN0CiAgICAgICAgIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGRpYWxlY3QKICAgICAgICAgaW4gdXNlIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKICAgICAgICA6cmV0dXJuOiBsaXN0IG9mIGRpY3Rpb25hcmllcywgZWFjaCByZXByZXNlbnRpbmcgdGhlIGRlZmluaXRpb24gb2YKICAgICAgICAgYSBkYXRhYmFzZSBjb2x1bW4uCgogICAgICAgIC4uIHNlZWFsc286OiA6bWV0aDpgSW5zcGVjdG9yLmdldF9tdWx0aV9jb2x1bW5zYC4KCiAgICAgICAgcjIAAABOKQVyjgAAAHJsAAAA2gtnZXRfY29sdW1uc3IyAAAA2hJfaW5zdGFudGlhdGVfdHlwZXMpBnJGAAAAcqAAAAByHwAAAHJJAAAAco0AAADaCGNvbF9kZWZzcwYAAAAgICAgICByOwAAAHLrAAAAehVJbnNwZWN0b3IuZ2V0X2NvbHVtbnNKAwAAc2sAAACAAPA0AA4S1w0k0Q0k1A0mqCTYFy+QdJd8kXzXFy/RFy/YEBSQaqAm8QMCGA7YNTm3X7Ff8AMCGA7YSErxAwIYDohI9wMADifxCAAMFNgMENcMI9EMI6BYoErUDC/YDxeID/cNAA4n0A0m+nMLAAAAkSxBGwPBGwVBJAdjAgAAAAAAAAAAAAAABgAAAAMAAAHzYAAAAJcAfAFEAF0pAAB9AnwCRABdIgAAfQN8A2QBGQAAAH0EdAEAAAAAAAAAAHwEdAIAAAAAAAAAAKsCAAAAAAAAcgGMGQIAfASrAAAAAAAAAHwDZAE8AAAAjCQEAIwrBAB5ACkCTtoEdHlwZSkCcjYAAAByIwAAACkFckYAAADaBGRhdGFy7QAAANoHY29sX2RlZtoHY29sdHlwZXMFAAAAICAgICByOwAAAHLsAAAAehxJbnNwZWN0b3IuX2luc3RhbnRpYXRlX3R5cGVzbAMAAHM2AAAAgADzCAAZHYhI2xsjkAfYGiGgJpkvkAfcFyGgJ6w61Rc22SYto2mQR5hGkk/xBwAcJPEDABkdck0AAABjBQAAAAAAAAAAAAAADAAAAAsAAAHz+gAAAJcAfABqAQAAAAAAAAAAAAAAAAAAAAAAAKsAAAAAAAAANQB9BnQDAAAAAAAAAAACAHwAagQAAAAAAAAAAAAAAAAAAAAAAABqBgAAAAAAAAAAAAAAAAAAAAAAAHwGZgF8AXwCfAN8BHwAaggAAAAAAAAAAAAAAAAAAAAAAABkAZwFfAWkAY4BqwEAAAAAAAB9B2QCZAJkAqsCAAAAAAAAAQB8AGoLAAAAAAAAAAAAAAAAAAAAAAAAfwdqDQAAAAAAAAAAAAAAAAAAAAAAAKsAAAAAAAAAqwEAAAAAAAABAHwHUwAjADEAcwF3AgEAWQABAAEAjCp4A1kAdwEpA2FXBQAAUmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IGNvbHVtbnMgaW4gYWxsIG9iamVjdHMgaW4gdGhlIGdpdmVuCiAgICAgICAgc2NoZW1hLgoKICAgICAgICBUaGUgb2JqZWN0cyBjYW4gYmUgZmlsdGVyZWQgYnkgcGFzc2luZyB0aGUgbmFtZXMgdG8gdXNlIHRvCiAgICAgICAgYGBmaWx0ZXJfbmFtZXNgYC4KCiAgICAgICAgRm9yIGVhY2ggdGFibGUgdGhlIHZhbHVlIGlzIGEgbGlzdCBvZiA6Y2xhc3M6YC5SZWZsZWN0ZWRDb2x1bW5gLgoKICAgICAgICA6cGFyYW0gc2NoZW1hOiBzdHJpbmcgc2NoZW1hIG5hbWU7IGlmIG9taXR0ZWQsIHVzZXMgdGhlIGRlZmF1bHQgc2NoZW1hCiAgICAgICAgIG9mIHRoZSBkYXRhYmFzZSBjb25uZWN0aW9uLiAgRm9yIHNwZWNpYWwgcXVvdGluZywKICAgICAgICAgdXNlIDpjbGFzczpgLnF1b3RlZF9uYW1lYC4KCiAgICAgICAgOnBhcmFtIGZpbHRlcl9uYW1lczogb3B0aW9uYWxseSByZXR1cm4gaW5mb3JtYXRpb24gb25seSBmb3IgdGhlCiAgICAgICAgIG9iamVjdHMgbGlzdGVkIGhlcmUuCgogICAgICAgIDpwYXJhbSBraW5kOiBhIDpjbGFzczpgLk9iamVjdEtpbmRgIHRoYXQgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIG9iamVjdHMKICAgICAgICAgdG8gcmVmbGVjdC4gRGVmYXVsdHMgdG8gYGBPYmplY3RLaW5kLlRBQkxFYGAuCgogICAgICAgIDpwYXJhbSBzY29wZTogYSA6Y2xhc3M6YC5PYmplY3RTY29wZWAgdGhhdCBzcGVjaWZpZXMgaWYgY29sdW1ucyBvZgogICAgICAgICBkZWZhdWx0LCB0ZW1wb3Jhcnkgb3IgYW55IHRhYmxlcyBzaG91bGQgYmUgcmVmbGVjdGVkLgogICAgICAgICBEZWZhdWx0cyB0byBgYE9iamVjdFNjb3BlLkRFRkFVTFRgYC4KCiAgICAgICAgOnBhcmFtIFwqKmt3OiBBZGRpdGlvbmFsIGtleXdvcmQgYXJndW1lbnQgdG8gcGFzcyB0byB0aGUgZGlhbGVjdAogICAgICAgICBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbi4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBkaWFsZWN0CiAgICAgICAgIGluIHVzZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiAgICAgICAgOnJldHVybjogYSBkaWN0aW9uYXJ5IHdoZXJlIHRoZSBrZXlzIGFyZSB0d28tdHVwbGUgc2NoZW1hLHRhYmxlLW5hbWUKICAgICAgICAgYW5kIHRoZSB2YWx1ZXMgYXJlIGxpc3Qgb2YgZGljdGlvbmFyaWVzLCBlYWNoIHJlcHJlc2VudGluZyB0aGUKICAgICAgICAgZGVmaW5pdGlvbiBvZiBhIGRhdGFiYXNlIGNvbHVtbi4KICAgICAgICAgVGhlIHNjaGVtYSBpcyBgYE5vbmVgYCBpZiBubyBzY2hlbWEgaXMgcHJvdmlkZWQuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDIuMAoKICAgICAgICAuLiBzZWVhbHNvOjogOm1ldGg6YEluc3BlY3Rvci5nZXRfY29sdW1uc2AKICAgICAgICBy2gAAAE4pB3KOAAAAct8AAABybAAAANoRZ2V0X211bHRpX2NvbHVtbnNyMgAAAHLsAAAA2gZ2YWx1ZXMpCHJGAAAAch8AAABy2wAAAHLcAAAAct0AAABySQAAAHKNAAAA2g50YWJsZV9jb2xfZGVmc3MIAAAAICAgICAgICByOwAAAHL0AAAAehtJbnNwZWN0b3IuZ2V0X211bHRpX2NvbHVtbnN2AwAAc4MAAACAAPBYAQAOEtcNJNENJNQNJqgk3B0h2BAukASXDJEM1xAu0RAu2BQY8AMIERLgGyHYIS3YGR3YGh/YHyOff5l/8Q0IERLwDgAXGfEPCBES8wMKHg6ITvcDAA4n8BgACQ3XCB/RCB+gDtcgNdEgNdMgN9QIONgPHdAIHfcbAA4n0A0m+nMLAAAAkTdBMQPBMQVBOgdjAwAAAAAAAAAAAAAABgAAAAsAAAHzpAAAAJcAfABqAQAAAAAAAAAAAAAAAAAAAAAAAKsAAAAAAAAANQB9BAIAfABqAgAAAAAAAAAAAAAAAAAAAAAAAGoEAAAAAAAAAAAAAAAAAAAAAAAAfAR8AXwCZgNkAXwAagYAAAAAAAAAAAAAAAAAAAAAAABpAXwDpAGOAWMCZAJkAmQCqwIAAAAAAAABAFMAIwAxAHMBdwIBAFkAAQABAHkCeANZAHcBKQNhYAMAAFJldHVybiBpbmZvcm1hdGlvbiBhYm91dCBwcmltYXJ5IGtleSBjb25zdHJhaW50IGluIGBgdGFibGVfbmFtZWBgLgoKICAgICAgICBHaXZlbiBhIHN0cmluZyBgYHRhYmxlX25hbWVgYCwgYW5kIGFuIG9wdGlvbmFsIHN0cmluZyBgc2NoZW1hYCwgcmV0dXJuCiAgICAgICAgcHJpbWFyeSBrZXkgaW5mb3JtYXRpb24gYXMgYSA6Y2xhc3M6YC5SZWZsZWN0ZWRQcmltYXJ5S2V5Q29uc3RyYWludGAuCgogICAgICAgIDpwYXJhbSB0YWJsZV9uYW1lOiBzdHJpbmcgbmFtZSBvZiB0aGUgdGFibGUuICBGb3Igc3BlY2lhbCBxdW90aW5nLAogICAgICAgICB1c2UgOmNsYXNzOmAucXVvdGVkX25hbWVgLgoKICAgICAgICA6cGFyYW0gc2NoZW1hOiBzdHJpbmcgc2NoZW1hIG5hbWU7IGlmIG9taXR0ZWQsIHVzZXMgdGhlIGRlZmF1bHQgc2NoZW1hCiAgICAgICAgIG9mIHRoZSBkYXRhYmFzZSBjb25uZWN0aW9uLiAgRm9yIHNwZWNpYWwgcXVvdGluZywKICAgICAgICAgdXNlIDpjbGFzczpgLnF1b3RlZF9uYW1lYC4KCiAgICAgICAgOnBhcmFtIFwqKmt3OiBBZGRpdGlvbmFsIGtleXdvcmQgYXJndW1lbnQgdG8gcGFzcyB0byB0aGUgZGlhbGVjdAogICAgICAgICBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbi4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBkaWFsZWN0CiAgICAgICAgIGluIHVzZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiAgICAgICAgOnJldHVybjogYSBkaWN0aW9uYXJ5IHJlcHJlc2VudGluZyB0aGUgZGVmaW5pdGlvbiBvZgogICAgICAgICBhIHByaW1hcnkga2V5IGNvbnN0cmFpbnQuCgogICAgICAgIC4uIHNlZWFsc286OiA6bWV0aDpgSW5zcGVjdG9yLmdldF9tdWx0aV9wa19jb25zdHJhaW50YAogICAgICAgIHIyAAAATikEco4AAABybAAAANoRZ2V0X3BrX2NvbnN0cmFpbnRyMgAAAHKfAAAAcwUAAAAgICAgIHI7AAAAcvgAAAB6G0luc3BlY3Rvci5nZXRfcGtfY29uc3RyYWludLEDAABzTQAAAIAA8DAADhLXDSTRDSTUDSaoJNgTMZA0lzyRPNcTMdETMdgQFJBqoCbxAwIUDtg1ObdfsV/wAwIUDthISvEDAhQO9wMADifXDSbSDSb6cqEAAABjBQAAAAAAAAAAAAAADAAAAAsAAAHzugAAAJcAfABqAQAAAAAAAAAAAAAAAAAAAAAAAKsAAAAAAAAANQB9BnQDAAAAAAAAAAACAHwAagQAAAAAAAAAAAAAAAAAAAAAAABqBgAAAAAAAAAAAAAAAAAAAAAAAHwGZgF8AXwCfAN8BHwAaggAAAAAAAAAAAAAAAAAAAAAAABkAZwFfAWkAY4BqwEAAAAAAABjAmQCZAJkAqsCAAAAAAAAAQBTACMAMQBzAXcCAQBZAAEAAQB5AngDWQB3ASkDYXUFAABSZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgcHJpbWFyeSBrZXkgY29uc3RyYWludHMgaW4KICAgICAgICBhbGwgdGFibGVzIGluIHRoZSBnaXZlbiBzY2hlbWEuCgogICAgICAgIFRoZSB0YWJsZXMgY2FuIGJlIGZpbHRlcmVkIGJ5IHBhc3NpbmcgdGhlIG5hbWVzIHRvIHVzZSB0bwogICAgICAgIGBgZmlsdGVyX25hbWVzYGAuCgogICAgICAgIEZvciBlYWNoIHRhYmxlIHRoZSB2YWx1ZSBpcyBhIDpjbGFzczpgLlJlZmxlY3RlZFByaW1hcnlLZXlDb25zdHJhaW50YC4KCiAgICAgICAgOnBhcmFtIHNjaGVtYTogc3RyaW5nIHNjaGVtYSBuYW1lOyBpZiBvbWl0dGVkLCB1c2VzIHRoZSBkZWZhdWx0IHNjaGVtYQogICAgICAgICBvZiB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbi4gIEZvciBzcGVjaWFsIHF1b3RpbmcsCiAgICAgICAgIHVzZSA6Y2xhc3M6YC5xdW90ZWRfbmFtZWAuCgogICAgICAgIDpwYXJhbSBmaWx0ZXJfbmFtZXM6IG9wdGlvbmFsbHkgcmV0dXJuIGluZm9ybWF0aW9uIG9ubHkgZm9yIHRoZQogICAgICAgICBvYmplY3RzIGxpc3RlZCBoZXJlLgoKICAgICAgICA6cGFyYW0ga2luZDogYSA6Y2xhc3M6YC5PYmplY3RLaW5kYCB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBvYmplY3RzCiAgICAgICAgIHRvIHJlZmxlY3QuIERlZmF1bHRzIHRvIGBgT2JqZWN0S2luZC5UQUJMRWBgLgoKICAgICAgICA6cGFyYW0gc2NvcGU6IGEgOmNsYXNzOmAuT2JqZWN0U2NvcGVgIHRoYXQgc3BlY2lmaWVzIGlmIHByaW1hcnkga2V5cyBvZgogICAgICAgICBkZWZhdWx0LCB0ZW1wb3Jhcnkgb3IgYW55IHRhYmxlcyBzaG91bGQgYmUgcmVmbGVjdGVkLgogICAgICAgICBEZWZhdWx0cyB0byBgYE9iamVjdFNjb3BlLkRFRkFVTFRgYC4KCiAgICAgICAgOnBhcmFtIFwqKmt3OiBBZGRpdGlvbmFsIGtleXdvcmQgYXJndW1lbnQgdG8gcGFzcyB0byB0aGUgZGlhbGVjdAogICAgICAgICBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbi4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBkaWFsZWN0CiAgICAgICAgIGluIHVzZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiAgICAgICAgOnJldHVybjogYSBkaWN0aW9uYXJ5IHdoZXJlIHRoZSBrZXlzIGFyZSB0d28tdHVwbGUgc2NoZW1hLHRhYmxlLW5hbWUKICAgICAgICAgYW5kIHRoZSB2YWx1ZXMgYXJlIGRpY3Rpb25hcmllcywgZWFjaCByZXByZXNlbnRpbmcgdGhlCiAgICAgICAgIGRlZmluaXRpb24gb2YgYSBwcmltYXJ5IGtleSBjb25zdHJhaW50LgogICAgICAgICBUaGUgc2NoZW1hIGlzIGBgTm9uZWBgIGlmIG5vIHNjaGVtYSBpcyBwcm92aWRlZC4KCiAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMi4wCgogICAgICAgIC4uIHNlZWFsc286OiA6bWV0aDpgSW5zcGVjdG9yLmdldF9wa19jb25zdHJhaW50YAogICAgICAgIHLaAAAATikFco4AAABy3wAAAHJsAAAA2hdnZXRfbXVsdGlfcGtfY29uc3RyYWludHIyAAAAqQdyRgAAAHIfAAAActsAAABy3AAAAHLdAAAAckkAAAByjQAAAHMHAAAAICAgICAgIHI7AAAAcvoAAAB6IUluc3BlY3Rvci5nZXRfbXVsdGlfcGtfY29uc3RyYWludM4DAABzYAAAAIAA8FYBAA4S1w0k0Q0k1A0mqCTcExfYEDSQBJcMkQzXEDTREDTYFBjwAwgREuAbIdghLdgZHdgaH9gfI59/mX/xDQgREvAOABcZ8Q8IERLzAwoUDvcDAA4n1w0m0g0m+vMLAAAAkTZBEQPBEQVBGgdjAwAAAAAAAAAAAAAABgAAAAsAAAHzpAAAAJcAfABqAQAAAAAAAAAAAAAAAAAAAAAAAKsAAAAAAAAANQB9BAIAfABqAgAAAAAAAAAAAAAAAAAAAAAAAGoEAAAAAAAAAAAAAAAAAAAAAAAAfAR8AXwCZgNkAXwAagYAAAAAAAAAAAAAAAAAAAAAAABpAXwDpAGOAWMCZAJkAmQCqwIAAAAAAAABAFMAIwAxAHMBdwIBAFkAAQABAHkCeANZAHcBKQNhZwMAAFJldHVybiBpbmZvcm1hdGlvbiBhYm91dCBmb3JlaWduX2tleXMgaW4gYGB0YWJsZV9uYW1lYGAuCgogICAgICAgIEdpdmVuIGEgc3RyaW5nIGBgdGFibGVfbmFtZWBgLCBhbmQgYW4gb3B0aW9uYWwgc3RyaW5nIGBzY2hlbWFgLCByZXR1cm4KICAgICAgICBmb3JlaWduIGtleSBpbmZvcm1hdGlvbiBhcyBhIGxpc3Qgb2YKICAgICAgICA6Y2xhc3M6YC5SZWZsZWN0ZWRGb3JlaWduS2V5Q29uc3RyYWludGAuCgogICAgICAgIDpwYXJhbSB0YWJsZV9uYW1lOiBzdHJpbmcgbmFtZSBvZiB0aGUgdGFibGUuICBGb3Igc3BlY2lhbCBxdW90aW5nLAogICAgICAgICB1c2UgOmNsYXNzOmAucXVvdGVkX25hbWVgLgoKICAgICAgICA6cGFyYW0gc2NoZW1hOiBzdHJpbmcgc2NoZW1hIG5hbWU7IGlmIG9taXR0ZWQsIHVzZXMgdGhlIGRlZmF1bHQgc2NoZW1hCiAgICAgICAgIG9mIHRoZSBkYXRhYmFzZSBjb25uZWN0aW9uLiAgRm9yIHNwZWNpYWwgcXVvdGluZywKICAgICAgICAgdXNlIDpjbGFzczpgLnF1b3RlZF9uYW1lYC4KCiAgICAgICAgOnBhcmFtIFwqKmt3OiBBZGRpdGlvbmFsIGtleXdvcmQgYXJndW1lbnQgdG8gcGFzcyB0byB0aGUgZGlhbGVjdAogICAgICAgICBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbi4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBkaWFsZWN0CiAgICAgICAgIGluIHVzZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiAgICAgICAgOnJldHVybjogYSBsaXN0IG9mIGRpY3Rpb25hcmllcywgZWFjaCByZXByZXNlbnRpbmcgdGhlCiAgICAgICAgIGEgZm9yZWlnbiBrZXkgZGVmaW5pdGlvbi4KCiAgICAgICAgLi4gc2VlYWxzbzo6IDptZXRoOmBJbnNwZWN0b3IuZ2V0X211bHRpX2ZvcmVpZ25fa2V5c2AKICAgICAgICByMgAAAE4pBHKOAAAAcmwAAADaEGdldF9mb3JlaWduX2tleXNyMgAAAHKfAAAAcwUAAAAgICAgIHI7AAAAcv4AAAB6Gkluc3BlY3Rvci5nZXRfZm9yZWlnbl9rZXlzBgQAAHNNAAAAgADwNAAOEtcNJNENJNQNJqgk2BMwkDSXPJE81xMw0RMw2BAUkGqgJvEDAhQO2DU5t1+xX/ADAhQO2EhK8QMCFA73AwAOJ9cNJtINJvpyoQAAAGMFAAAAAAAAAAAAAAAMAAAACwAAAfO6AAAAlwB8AGoBAAAAAAAAAAAAAAAAAAAAAAAAqwAAAAAAAAA1AH0GdAMAAAAAAAAAAAIAfABqBAAAAAAAAAAAAAAAAAAAAAAAAGoGAAAAAAAAAAAAAAAAAAAAAAAAfAZmAXwBfAJ8A3wEfABqCAAAAAAAAAAAAAAAAAAAAAAAAGQBnAV8BaQBjgGrAQAAAAAAAGMCZAJkAmQCqwIAAAAAAAABAFMAIwAxAHMBdwIBAFkAAQABAHkCeANZAHcBKQNhbwUAAFJldHVybiBpbmZvcm1hdGlvbiBhYm91dCBmb3JlaWduX2tleXMgaW4gYWxsIHRhYmxlcwogICAgICAgIGluIHRoZSBnaXZlbiBzY2hlbWEuCgogICAgICAgIFRoZSB0YWJsZXMgY2FuIGJlIGZpbHRlcmVkIGJ5IHBhc3NpbmcgdGhlIG5hbWVzIHRvIHVzZSB0bwogICAgICAgIGBgZmlsdGVyX25hbWVzYGAuCgogICAgICAgIEZvciBlYWNoIHRhYmxlIHRoZSB2YWx1ZSBpcyBhIGxpc3Qgb2YKICAgICAgICA6Y2xhc3M6YC5SZWZsZWN0ZWRGb3JlaWduS2V5Q29uc3RyYWludGAuCgogICAgICAgIDpwYXJhbSBzY2hlbWE6IHN0cmluZyBzY2hlbWEgbmFtZTsgaWYgb21pdHRlZCwgdXNlcyB0aGUgZGVmYXVsdCBzY2hlbWEKICAgICAgICAgb2YgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24uICBGb3Igc3BlY2lhbCBxdW90aW5nLAogICAgICAgICB1c2UgOmNsYXNzOmAucXVvdGVkX25hbWVgLgoKICAgICAgICA6cGFyYW0gZmlsdGVyX25hbWVzOiBvcHRpb25hbGx5IHJldHVybiBpbmZvcm1hdGlvbiBvbmx5IGZvciB0aGUKICAgICAgICAgb2JqZWN0cyBsaXN0ZWQgaGVyZS4KCiAgICAgICAgOnBhcmFtIGtpbmQ6IGEgOmNsYXNzOmAuT2JqZWN0S2luZGAgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUgb2Ygb2JqZWN0cwogICAgICAgICB0byByZWZsZWN0LiBEZWZhdWx0cyB0byBgYE9iamVjdEtpbmQuVEFCTEVgYC4KCiAgICAgICAgOnBhcmFtIHNjb3BlOiBhIDpjbGFzczpgLk9iamVjdFNjb3BlYCB0aGF0IHNwZWNpZmllcyBpZiBmb3JlaWduIGtleXMgb2YKICAgICAgICAgZGVmYXVsdCwgdGVtcG9yYXJ5IG9yIGFueSB0YWJsZXMgc2hvdWxkIGJlIHJlZmxlY3RlZC4KICAgICAgICAgRGVmYXVsdHMgdG8gYGBPYmplY3RTY29wZS5ERUZBVUxUYGAuCgogICAgICAgIDpwYXJhbSBcKiprdzogQWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50IHRvIHBhc3MgdG8gdGhlIGRpYWxlY3QKICAgICAgICAgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24uIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZGlhbGVjdAogICAgICAgICBpbiB1c2UgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgogICAgICAgIDpyZXR1cm46IGEgZGljdGlvbmFyeSB3aGVyZSB0aGUga2V5cyBhcmUgdHdvLXR1cGxlIHNjaGVtYSx0YWJsZS1uYW1lCiAgICAgICAgIGFuZCB0aGUgdmFsdWVzIGFyZSBsaXN0IG9mIGRpY3Rpb25hcmllcywgZWFjaCByZXByZXNlbnRpbmcKICAgICAgICAgYSBmb3JlaWduIGtleSBkZWZpbml0aW9uLgogICAgICAgICBUaGUgc2NoZW1hIGlzIGBgTm9uZWBgIGlmIG5vIHNjaGVtYSBpcyBwcm92aWRlZC4KCiAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMi4wCgogICAgICAgIC4uIHNlZWFsc286OiA6bWV0aDpgSW5zcGVjdG9yLmdldF9mb3JlaWduX2tleXNgCiAgICAgICAgctoAAABOKQVyjgAAAHLfAAAAcmwAAAByvQAAAHIyAAAAcvsAAABzBwAAACAgICAgICByOwAAAHK9AAAAeiBJbnNwZWN0b3IuZ2V0X211bHRpX2ZvcmVpZ25fa2V5cyUEAABzYAAAAIAA8FoBAA4S1w0k0Q0k1A0mqCTcExfYEDOQBJcMkQzXEDPREDPYFBjwAwgREuAbIdghLdgZHdgaH9gfI59/mX/xDQgREvAOABcZ8Q8IERLzAwoUDvcDAA4n1w0m0g0m+nL8AAAAYwMAAAAAAAAAAAAAAAYAAAALAAAB86QAAACXAHwAagEAAAAAAAAAAAAAAAAAAAAAAACrAAAAAAAAADUAfQQCAHwAagIAAAAAAAAAAAAAAAAAAAAAAABqBAAAAAAAAAAAAAAAAAAAAAAAAHwEfAF8AmYDZAF8AGoGAAAAAAAAAAAAAAAAAAAAAAAAaQF8A6QBjgFjAmQCZAJkAqsCAAAAAAAAAQBTACMAMQBzAXcCAQBZAAEAAQB5AngDWQB3ASkDYT0DAABSZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgaW5kZXhlcyBpbiBgYHRhYmxlX25hbWVgYC4KCiAgICAgICAgR2l2ZW4gYSBzdHJpbmcgYGB0YWJsZV9uYW1lYGAgYW5kIGFuIG9wdGlvbmFsIHN0cmluZyBgc2NoZW1hYCwgcmV0dXJuCiAgICAgICAgaW5kZXggaW5mb3JtYXRpb24gYXMgYSBsaXN0IG9mIDpjbGFzczpgLlJlZmxlY3RlZEluZGV4YC4KCiAgICAgICAgOnBhcmFtIHRhYmxlX25hbWU6IHN0cmluZyBuYW1lIG9mIHRoZSB0YWJsZS4gIEZvciBzcGVjaWFsIHF1b3RpbmcsCiAgICAgICAgIHVzZSA6Y2xhc3M6YC5xdW90ZWRfbmFtZWAuCgogICAgICAgIDpwYXJhbSBzY2hlbWE6IHN0cmluZyBzY2hlbWEgbmFtZTsgaWYgb21pdHRlZCwgdXNlcyB0aGUgZGVmYXVsdCBzY2hlbWEKICAgICAgICAgb2YgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24uICBGb3Igc3BlY2lhbCBxdW90aW5nLAogICAgICAgICB1c2UgOmNsYXNzOmAucXVvdGVkX25hbWVgLgoKICAgICAgICA6cGFyYW0gXCoqa3c6IEFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVudCB0byBwYXNzIHRvIHRoZSBkaWFsZWN0CiAgICAgICAgIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGRpYWxlY3QKICAgICAgICAgaW4gdXNlIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKICAgICAgICA6cmV0dXJuOiBhIGxpc3Qgb2YgZGljdGlvbmFyaWVzLCBlYWNoIHJlcHJlc2VudGluZyB0aGUKICAgICAgICAgZGVmaW5pdGlvbiBvZiBhbiBpbmRleC4KCiAgICAgICAgLi4gc2VlYWxzbzo6IDptZXRoOmBJbnNwZWN0b3IuZ2V0X211bHRpX2luZGV4ZXNgCiAgICAgICAgcjIAAABOKQRyjgAAAHJsAAAA2gtnZXRfaW5kZXhlc3IyAAAAcp8AAABzBQAAACAgICAgcjsAAAByAQEAAHoVSW5zcGVjdG9yLmdldF9pbmRleGVzXwQAAHNNAAAAgADwMgAOEtcNJNENJNQNJqgk2BMrkDSXPJE81xMr0RMr2BAUkGqgJvEDAhQO2DU5t1+xX/ADAhQO2EhK8QMCFA73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YW0gc2NoZW1hOiBzdHJpbmcgc2NoZW1hIG5hbWU7IGlmIG9taXR0ZWQsIHVzZXMgdGhlIGRlZmF1bHQgc2NoZW1hCiAgICAgICAgIG9mIHRoZSBkYXRhYmFzZSBjb25uZWN0aW9uLiAgRm9yIHNwZWNpYWwgcXVvdGluZywKICAgICAgICAgdXNlIDpjbGFzczpgLnF1b3RlZF9uYW1lYC4KCiAgICAgICAgOnBhcmFtIGZpbHRlcl9uYW1lczogb3B0aW9uYWxseSByZXR1cm4gaW5mb3JtYXRpb24gb25seSBmb3IgdGhlCiAgICAgICAgIG9iamVjdHMgbGlzdGVkIGhlcmUuCgogICAgICAgIDpwYXJhbSBraW5kOiBhIDpjbGFzczpgLk9iamVjdEtpbmRgIHRoYXQgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIG9iamVjdHMKICAgICAgICAgdG8gcmVmbGVjdC4gRGVmYXVsdHMgdG8gYGBPYmplY3RLaW5kLlRBQkxFYGAuCgogICAgICAgIDpwYXJhbSBzY29wZTogYSA6Y2xhc3M6YC5PYmplY3RTY29wZWAgdGhhdCBzcGVjaWZpZXMgaWYgY29uc3RyYWludHMgb2YKICAgICAgICAgZGVmYXVsdCwgdGVtcG9yYXJ5IG9yIGFueSB0YWJsZXMgc2hvdWxkIGJlIHJlZmxlY3RlZC4KICAgICAgICAgRGVmYXVsdHMgdG8gYGBPYmplY3RTY29wZS5ERUZBVUxUYGAuCgogICAgICAgIDpwYXJhbSBcKiprdzogQWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50IHRvIHBhc3MgdG8gdGhlIGRpYWxlY3QKICAgICAgICAgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24uIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZGlhbGVjdAogICAgICAgICBpbiB1c2UgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgogICAgICAgIDpyZXR1cm46IGEgZGljdGlvbmFyeSB3aGVyZSB0aGUga2V5cyBhcmUgdHdvLXR1cGxlIHNjaGVtYSx0YWJsZS1uYW1lCiAgICAgICAgIGFuZCB0aGUgdmFsdWVzIGFyZSBsaXN0IG9mIGRpY3Rpb25hcmllcywg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IG9iamVjdHMKICAgICAgICAgdG8gcmVmbGVjdC4gRGVmYXVsdHMgdG8gYGBPYmplY3RLaW5kLlRBQkxFYGAuCgogICAgICAgIDpwYXJhbSBzY29wZTogYSA6Y2xhc3M6YC5PYmplY3RTY29wZWAgdGhhdCBzcGVjaWZpZXMgaWYgY29tbWVudHMgb2YKICAgICAgICAgZGVmYXVsdCwgdGVtcG9yYXJ5IG9yIGFueSB0YWJsZXMgc2hvdWxkIGJlIHJlZmxlY3RlZC4KICAgICAgICAgRGVmYXVsdHMgdG8gYGBPYmplY3RTY29wZS5ERUZBVUxUYGAuCgogICAgICAgIDpwYXJhbSBcKiprdzogQWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50IHRvIHBhc3MgdG8gdGhlIGRpYWxlY3QKICAgICAgICAgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24uIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZGlhbGVjdAogICAgICAgICBpbiB1c2UgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgogICAgICAgIDpyZXR1cm46IGEgZGljdGlvbmFyeSB3aGVyZSB0aGUga2V5cyBhcmUgdHdvLXR1cGxlIHNjaGVtYSx0YWJsZS1uYW1lCiAgICAgICAgIGFuZCB0aGUgdmFsdWVzIGFyZSBkaWN0aW9uYXJpZXMsIHJlcHJlc2VudGluZyB0aGUKICAgICAgICAgdGFibGUgY29tbWVudHMuCiAgICAgICAgIFRoZSBzY2hlbWEgaXMgYGBOb25lYGAgaWYgbm8gc2NoZW1hIGlzIHByb3ZpZGVkLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAyLjAKCiAgICAgICAgLi4gc2VlYWxzbzo6IDptZXRoOmBJbnNwZWN0b3IuZ2V0X3RhYmxlX2NvbW1lbnRgCiAgICAgICAgctoAAABOKQVyjgAAAHLfAAAAcmwAAADaF2dldF9tdWx0aV90YWJsZV9jb21tZW50cjIAAABy+wAAAHMHAAAAICAgICAgIHI7AAAAcgsBAAB6IUluc3BlY3Rvci5nZXRfbXVsdGlfdGFibGVfY29tbWVudDEFAABzYAAAAIAA8F4BAA4S1w0k0Q0k1A0mqCTcExfYEDSQ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CiAgICAgICAgOmNsYXNzOmAuUmVmbGVjdGVkQ2hlY2tDb25zdHJhaW50YC4KCiAgICAgICAgOnBhcmFtIHNjaGVtYTogc3RyaW5nIHNjaGVtYSBuYW1lOyBpZiBvbWl0dGVkLCB1c2VzIHRoZSBkZWZhdWx0IHNjaGVtYQogICAgICAgICBvZiB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbi4gIEZvciBzcGVjaWFsIHF1b3RpbmcsCiAgICAgICAgIHVzZSA6Y2xhc3M6YC5xdW90ZWRfbmFtZWAuCgogICAgICAgIDpwYXJhbSBmaWx0ZXJfbmFtZXM6IG9wdGlvbmFsbHkgcmV0dXJuIGluZm9ybWF0aW9uIG9ubHkgZm9yIHRoZQogICAgICAgICBvYmplY3RzIGxpc3RlZCBoZXJlLgoKICAgICAgICA6cGFyYW0ga2luZDogYSA6Y2xhc3M6YC5PYmplY3RLaW5kYCB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBvYmplY3RzCiAgICAgICAgIHRvIHJlZmxlY3QuIERlZmF1bHRzIHRvIGBgT2JqZWN0S2luZC5UQUJMRWBgLgoKICAgICAgICA6cGFyYW0gc2NvcGU6IGEgOmNsYXNzOmAuT2JqZWN0U2NvcGVgIHRoYXQgc3BlY2lmaWVzIGlmIGNvbnN0cmFpbnRzIG9mCiAgICAgICAgIGRlZmF1bHQsIHRlbXBvcmFyeSBvciBhbnkgdGFibGVzIHNob3VsZCBiZSByZWZsZWN0ZWQuCiAgICAgICAgIERlZmF1bHRzIHRvIGBgT2JqZWN0U2NvcGUuREVGQVVMVGBgLgoKICAgICAgICA6cGFyYW0gXCoqa3c6IEFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVudCB0byBwYXNzIHRvIHRoZSBkaWFsZWN0CiAgICAgICAgIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGRpYWxlY3QKICAgICAgICAgaW4gdXNlIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKICAgICAgICA6cmV0dXJuOiBhIGRpY3Rpb25hcnkgd2hlcmUgdGhlIGtleXMgYXJlIHR3by10dXBsZSBzY2hlbWEsdGFi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YWJsZWAgb2JqZWN0LCBsb2FkIGl0cyBpbnRlcm5hbAogICAgICAgIGNvbnN0cnVjdHMgYmFzZWQgb24gaW50cm9zcGVjdGlvbi4KCiAgICAgICAgVGhpcyBpcyB0aGUgdW5kZXJseWluZyBtZXRob2QgdXNlZCBieSBtb3N0IGRpYWxlY3RzIHRvIHByb2R1Y2UKICAgICAgICB0YWJsZSByZWZsZWN0aW9uLiAgRGlyZWN0IHVzYWdlIGlzIGxpa2U6OgoKICAgICAgICAgICAgZnJvbSBzcWxhbGNoZW15IGltcG9ydCBjcmVhdGVfZW5naW5lLCBNZXRhRGF0YSwgVGFibGUKICAgICAgICAgICAgZnJvbSBzcWxhbGNoZW15IGltcG9ydCBpbnNwZWN0CgogICAgICAgICAgICBlbmdpbmUgPSBjcmVhdGVfZW5naW5lKCIuLi4iKQogICAgICAgICAgICBtZXRhID0gTWV0YURhdGEoKQogICAgICAgICAgICB1c2VyX3RhYmxlID0gVGFibGUoInVzZXIiLCBtZXRhKQogICAgICAgICAgICBpbnNwID0gaW5zcGVjdChlbmdpbmUpCiAgICAgICAgICAgIGluc3AucmVmbGVjdF90YWJsZSh1c2VyX3RhYmxlLCBOb25lKQoKICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDEuNCBSZW5hbWVkIGZyb20gYGByZWZsZWN0dGFibGVgYCB0bwogICAgICAgICAgIGBgcmVmbGVjdF90YWJsZWBgCgogICAgICAgIDpwYXJhbSB0YWJsZTogYSA6Y2xhc3M6YH5zcWxhbGNoZW15LnNjaGVtYS5UYWJsZWAgaW5zdGFuY2UuCiAgICAgICAgOnBhcmFtIGluY2x1ZGVfY29sdW1uczogYSBsaXN0IG9mIHN0cmluZyBjb2x1bW4gbmFtZXMgdG8gaW5jbHVkZQogICAgICAgICAgaW4gdGhlIHJlZmxlY3Rpb24gcHJvY2Vzcy4gIElmIGBgTm9uZWBgLCBhbGwgY29sdW1ucyBhcmUgcmVmbGVjdGVkLgoKICAgICAgICBOKQRy2wAAAHLcAAAAct0AAADaDV9yZWZsZWN0X2luZm9GVCkbcr8AAAByaAAAAHJsAAAAco4AAADaEXNjaGVtYV9m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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 19
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
base.cpython-312.pyc
126.90 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
characteristics.cpython-312.pyc
6.66 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
create.cpython-312.pyc
33.50 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cursor.cpython-312.pyc
77.50 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
default.cpython-312.pyc
86.01 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
events.cpython-312.pyc
38.97 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
interfaces.cpython-312.pyc
97.25 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
mock.cpython-312.pyc
5.54 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
processors.cpython-312.pyc
1.24 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
reflection.cpython-312.pyc
78.40 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
result.cpython-312.pyc
89.07 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
row.cpython-312.pyc
17.01 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
strategies.cpython-312.pyc
539 B
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
url.cpython-312.pyc
33.58 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
util.cpython-312.pyc
6.46 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_py_processors.cpython-312.pyc
4.37 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_py_row.cpython-312.pyc
5.61 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_py_util.cpython-312.pyc
2.11 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-312.pyc
2.20 KB
lrw-r--r--
2025-04-04 08:02:02
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).