REDROOM
PHP 8.0.30
Path:
Logout
Edit File
Size: 150.55 KB
Close
/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/dialects/postgresql/__pycache__/base.cpython-311.pyc
Text
Base64
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AAAAAAAApgMAAKsDAAAAAAAAAABaZwIARwBkcIQAZHFlFWpoAAAAAAAAAACmAwAAqwMAAAAAAAAAAFppAgBHAGRyhABkc2UQamoAAAAAAAAAAKYDAACrAwAAAAAAAAAAWmsCAEcAZHSEAGR1ZRBqagAAAAAAAAAApgMAAKsDAAAAAAAAAABabAIARwBkdoQAZHdlFGptAAAAAAAAAACmAwAAqwMAAAAAAAAAAFpuAgBHAGR4hABkeWUUam8AAAAAAAAAAKYDAACrAwAAAAAAAAAAWnBkA1MAKXphs4kAAAouLiBkaWFsZWN0OjogcG9zdGdyZXNxbAogICAgOm5hbWU6IFBvc3RncmVTUUwKCi4uIF9wb3N0Z3Jlc3FsX3NlcXVlbmNlczoKClNlcXVlbmNlcy9TRVJJQUwvSURFTlRJVFkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKUG9zdGdyZVNRTCBzdXBwb3J0cyBzZXF1ZW5jZXMsIGFuZCBTUUxBbGNoZW15IHVzZXMgdGhlc2UgYXMgdGhlIGRlZmF1bHQgbWVhbnMKb2YgY3JlYXRpbmcgbmV3IHByaW1hcnkga2V5IHZhbHVlcyBmb3IgaW50ZWdlci1iYXNlZCBwcmltYXJ5IGtleSBjb2x1bW5zLiBXaGVuCmNyZWF0aW5nIHRhYmxlcywgU1FMQWxjaGVteSB3aWxsIGlzc3VlIHRoZSBgYFNFUklBTGBgIGRhdGF0eXBlIGZvcgppbnRlZ2VyLWJhc2VkIHByaW1hcnkga2V5IGNvbHVtbnMsIHdoaWNoIGdlbmVyYXRlcyBhIHNlcXVlbmNlIGFuZCBzZXJ2ZXIgc2lkZQpkZWZhdWx0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNvbHVtbi4KClRvIHNwZWNpZnkgYSBzcGVjaWZpYyBuYW1lZCBzZXF1ZW5jZSB0byBiZSB1c2VkIGZvciBwcmltYXJ5IGtleSBnZW5lcmF0aW9uLAp1c2UgdGhlIDpmdW5jOmB+c3FsYWxjaGVteS5zY2hlbWEuU2VxdWVuY2VgIGNvbnN0cnVjdDo6CgogICAgVGFibGUoJ3NvbWV0YWJsZScsIG1ldGFkYXRhLAogICAgICAgICAgICBDb2x1bW4oJ2lkJywgSW50ZWdlciwgU2VxdWVuY2UoJ3NvbWVfaWRfc2VxJyksIHByaW1hcnlfa2V5PVRydWUpCiAgICAgICAgKQoKV2hlbiBTUUxBbGNoZW15IGlzc3VlcyBhIHNpbmdsZSBJTlNFUlQgc3RhdGVtZW50LCB0byBmdWxmaWxsIHRoZSBjb250cmFjdCBvZgpoYXZpbmcgdGhlICJsYXN0IGluc2VydCBpZGVudGlmaWVyIiBhdmFpbGFibGUsIGEgUkVUVVJOSU5HIGNsYXVzZSBpcyBhZGRlZCB0bwp0aGUgSU5TRVJUIHN0YXRlbWVudCB3aGljaCBzcGVjaWZpZXMgdGhlIHByaW1hcnkga2V5IGNvbHVtbnMgc2hvdWxkIGJlCnJldHVybmVkIGFmdGVyIHRoZSBzdGF0ZW1lbnQgY29tcGxldGVzLiBUaGUgUkVUVVJOSU5HIGZ1bmN0aW9uYWxpdHkgb25seSB0YWtlcwpwbGFjZSBpZiBQb3N0Z3JlU1FMIDguMiBvciBsYXRlciBpcyBpbiB1c2UuIEFzIGEgZmFsbGJhY2sgYXBwcm9hY2gsIHRoZQpzZXF1ZW5jZSwgd2hldGhlciBzcGVjaWZpZWQgZXhwbGljaXRseSBvciBpbXBsaWNpdGx5IHZpYSBgYFNFUklBTGBgLCBpcwpleGVjdXRlZCBpbmRlcGVuZGVudGx5IGJlZm9yZWhhbmQsIHRoZSByZXR1cm5lZCB2YWx1ZSB0byBiZSB1c2VkIGluIHRoZQpzdWJzZXF1ZW50IGluc2VydC4gTm90ZSB0aGF0IHdoZW4gYW4KOmZ1bmM6YH5zcWxhbGNoZW15LnNxbC5leHByZXNzaW9uLmluc2VydCgpYCBjb25zdHJ1Y3QgaXMgZXhlY3V0ZWQgdXNpbmcKImV4ZWN1dGVtYW55IiBzZW1hbnRpY3MsIHRoZSAibGFzdCBpbnNlcnRlZCBpZGVudGlmaWVyIiBmdW5jdGlvbmFsaXR5IGRvZXMgbm90CmFwcGx5OyBubyBSRVRVUk5JTkcgY2xhdXNlIGlzIGVtaXR0ZWQgbm9yIGlzIHRoZSBzZXF1ZW5jZSBwcmUtZXhlY3V0ZWQgaW4gdGhpcwpjYXNlLgoKVG8gZm9yY2UgdGhlIHVzYWdlIG9mIFJFVFVSTklORyBieSBkZWZhdWx0IG9mZiwgc3BlY2lmeSB0aGUgZmxhZwpgYGltcGxpY2l0X3JldHVybmluZz1GYWxzZWBgIHRvIDpmdW5jOmBfc2EuY3JlYXRlX2VuZ2luZWAuCgpQb3N0Z3JlU1FMIDEwIElERU5USVRZIGNvbHVtbnMKXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCgpQb3N0Z3JlU1FMIDEwIGhhcyBhIG5ldyBJREVOVElUWSBmZWF0dXJlIHRoYXQgc3VwZXJzZWRlcyB0aGUgdXNlIG9mIFNFUklBTC4KQnVpbHQtaW4gc3VwcG9ydCBmb3IgcmVuZGVyaW5nIG9mIElERU5USVRZIGlzIG5vdCBhdmFpbGFibGUgeWV0LCBob3dldmVyIHRoZQpmb2xsb3dpbmcgY29tcGlsYXRpb24gaG9vayBtYXkgYmUgdXNlZCB0byByZXBsYWNlIG9jY3VycmVuY2VzIG9mIFNFUklBTCB3aXRoCklERU5USVRZOjoKCiAgICBmcm9tIHNxbGFsY2hlbXkuc2NoZW1hIGltcG9ydCBDcmVhdGVDb2x1bW4KICAgIGZyb20gc3FsYWxjaGVteS5leHQuY29tcGlsZXIgaW1wb3J0IGNvbXBpbGVzCgoKICAgIEBjb21waWxlcyhDcmVhdGVDb2x1bW4sICdwb3N0Z3Jlc3FsJykKICAgIGRlZiB1c2VfaWRlbnRpdHkoZWxlbWVudCwgY29tcGlsZXIsICoqa3cpOgogICAgICAgIHRleHQgPSBjb21waWxlci52aXNpdF9jcmVhdGVfY29sdW1uKGVsZW1lbnQsICoqa3cpCiAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgiU0VSSUFMIiwgIklOVCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyBJREVOVElUWSIpCiAgICAgICAgcmV0dXJuIHRleHQKClVzaW5nIHRoZSBhYm92ZSwgYSB0YWJsZSBzdWNoIGFzOjoKCiAgICB0ID0gVGFibGUoCiAgICAgICAgJ3QnLCBtLAogICAgICAgIENvbHVtbignaWQnLCBJbnRlZ2VyLCBwcmltYXJ5X2tleT1UcnVlKSwKICAgICAgICBDb2x1bW4oJ2RhdGEnLCBTdHJpbmcpCiAgICApCgpXaWxsIGdlbmVyYXRlIG9uIHRoZSBiYWNraW5nIGRhdGFiYXNlIGFzOjoKCiAgICBDUkVBVEUgVEFCTEUgdCAoCiAgICAgICAgaWQgSU5UIEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIElERU5USVRZIE5PVCBOVUxMLAogICAgICAgIGRhdGEgVkFSQ0hBUiwKICAgICAgICBQUklNQVJZIEtFWSAoaWQpCiAgICApCgouLiBfcG9zdGdyZXNxbF9pc29sYXRpb25fbGV2ZWw6CgpUcmFuc2FjdGlvbiBJc29sYXRpb24gTGV2ZWwKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpNb3N0IFNRTEFsY2hlbXkgZGlhbGVjdHMgc3VwcG9ydCBzZXR0aW5nIG9mIHRyYW5zYWN0aW9uIGlzb2xhdGlvbiBsZXZlbAp1c2luZyB0aGUgOnBhcmFtcmVmOmBfc2EuY3JlYXRlX2VuZ2luZS5leGVjdXRpb25fb3B0aW9uc2AgcGFyYW1ldGVyCmF0IHRoZSA6ZnVuYzpgX3NhLmNyZWF0ZV9lbmdpbmVgIGxldmVsLCBhbmQgYXQgdGhlIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYApsZXZlbCB2aWEgdGhlIDpwYXJhbXJlZjpgLkNvbm5lY3Rpb24uZXhlY3V0aW9uX29wdGlvbnMuaXNvbGF0aW9uX2xldmVsYApwYXJhbWV0ZXIuCgpGb3IgUG9zdGdyZVNRTCBkaWFsZWN0cywgdGhpcyBmZWF0dXJlIHdvcmtzIGVpdGhlciBieSBtYWtpbmcgdXNlIG9mIHRoZQpEQkFQSS1zcGVjaWZpYyBmZWF0dXJlcywgc3VjaCBhcyBwc3ljb3BnMidzIGlzb2xhdGlvbiBsZXZlbCBmbGFncyB3aGljaCB3aWxsCmVtYmVkIHRoZSBpc29sYXRpb24gbGV2ZWwgc2V0dGluZyBpbmxpbmUgd2l0aCB0aGUgYGAiQkVHSU4iYGAgc3RhdGVtZW50LCBvciBmb3IKREJBUElzIHdpdGggbm8gZGlyZWN0IHN1cHBvcnQgYnkgZW1pdHRpbmcgYGBTRVQgU0VTU0lPTiBDSEFSQUNURVJJU1RJQ1MgQVMKVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIDxsZXZlbD5gYCBhaGVhZCBvZiB0aGUgYGAiQkVHSU4iYGAgc3RhdGVtZW50CmVtaXR0ZWQgYnkgdGhlIERCQVBJLiAgIEZvciB0aGUgc3BlY2lhbCBBVVRPQ09NTUlUIGlzb2xhdGlvbiBsZXZlbCwKREJBUEktc3BlY2lmaWMgdGVjaG5pcXVlcyBhcmUgdXNlZCB3aGljaCBpcyB0eXBpY2FsbHkgYW4gYGAuYXV0b2NvbW1pdGBgCmZsYWcgb24gdGhlIERCQVBJIGNvbm5lY3Rpb24gb2JqZWN0LgoKVG8gc2V0IGlzb2xhdGlvbiBsZXZlbCB1c2luZyA6ZnVuYzpgX3NhLmNyZWF0ZV9lbmdpbmVgOjoKCiAgICBlbmdpbmUgPSBjcmVhdGVfZW5naW5lKAogICAgICAgICJwb3N0Z3Jlc3FsK3BnODAwMDovL3Njb3R0OnRpZ2VyQGxvY2FsaG9zdC90ZXN0IiwKICAgICAgICBleGVjdXRpb25fb3B0aW9ucz17CiAgICAgICAgICAgICJpc29sYXRpb25fbGV2ZWwiOiAiUkVQRUFUQUJMRSBSRUFEIgogICAgICAgIH0KICAgICkKClRvIHNldCB1c2luZyBwZXItY29ubmVjdGlvbiBleGVjdXRpb24gb3B0aW9uczo6CgogICAgd2l0aCBlbmdpbmUuY29ubmVjdCgpIGFzIGNvbm46CiAgICAgICAgY29ubiA9IGNvbm4uZXhlY3V0aW9uX29wdGlvbnMoCiAgICAgICAgICAgIGlzb2xhdGlvbl9sZXZlbD0iUkVQRUFUQUJMRSBSRUFEIgogICAgICAgICkKICAgICAgICB3aXRoIGNvbm4uYmVnaW4oKToKICAgICAgICAgICAgIyAuLi4gd29yayB3aXRoIHRyYW5zYWN0aW9uCgpWYWxpZCB2YWx1ZXMgZm9yIGBgaXNvbGF0aW9uX2xldmVsYGAgb24gbW9zdCBQb3N0Z3JlU1FMIGRpYWxlY3RzIGluY2x1ZGU6CgoqIGBgUkVBRCBDT01NSVRURURgYAoqIGBgUkVBRCBVTkNPTU1JVFRFRGBgCiogYGBSRVBFQVRBQkxFIFJFQURgYAoqIGBgU0VSSUFMSVpBQkxFYGAKKiBgYEFVVE9DT01NSVRgYAoKLi4gc2VlYWxzbzo6CgogICAgOnJlZjpgZGJhcGlfYXV0b2NvbW1pdGAKCiAgICA6cmVmOmBwc3ljb3BnMl9pc29sYXRpb25fbGV2ZWxgCgogICAgOnJlZjpgcGc4MDAwX2lzb2xhdGlvbl9sZXZlbGAKCi4uIF9wb3N0Z3Jlc3FsX3NjaGVtYV9yZWZsZWN0aW9uOgoKUmVtb3RlLVNjaGVtYSBUYWJsZSBJbnRyb3NwZWN0aW9uIGFuZCBQb3N0Z3JlU1FMIHNlYXJjaF9wYXRoCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKKipUTDtEUjsqKjoga2VlcCB0aGUgYGBzZWFyY2hfcGF0aGBgIHZhcmlhYmxlIHNldCB0byBpdHMgZGVmYXVsdCBvZiBgYHB1YmxpY2BgLApuYW1lIHNjaGVtYXMgKipvdGhlcioqIHRoYW4gYGBwdWJsaWNgYCBleHBsaWNpdGx5IHdpdGhpbiBgYFRhYmxlYGAgZGVmaW5pdGlvbnMuCgpUaGUgUG9zdGdyZVNRTCBkaWFsZWN0IGNhbiByZWZsZWN0IHRhYmxlcyBmcm9tIGFueSBzY2hlbWEuICBUaGUKOnBhcmFtcmVmOmBfc2NoZW1hLlRhYmxlLnNjaGVtYWAgYXJndW1lbnQsIG9yIGFsdGVybmF0aXZlbHkgdGhlCjpwYXJhbXJlZjpgLk1ldGFEYXRhLnJlZmxlY3Quc2NoZW1hYCBhcmd1bWVudCBkZXRlcm1pbmVzIHdoaWNoIHNjaGVtYSB3aWxsCmJlIHNlYXJjaGVkIGZvciB0aGUgdGFibGUgb3IgdGFibGVzLiAgIFRoZSByZWZsZWN0ZWQgOmNsYXNzOmBfc2NoZW1hLlRhYmxlYApvYmplY3RzCndpbGwgaW4gYWxsIGNhc2VzIHJldGFpbiB0aGlzIGBgLnNjaGVtYWBgIGF0dHJpYnV0ZSBhcyB3YXMgc3BlY2lmaWVkLgpIb3dldmVyLCB3aXRoIHJlZ2FyZHMgdG8gdGFibGVzIHdoaWNoIHRoZXNlIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAKb2JqZWN0cyByZWZlciB0bwp2aWEgZm9yZWlnbiBrZXkgY29uc3RyYWludCwgYSBkZWNpc2lvbiBtdXN0IGJlIG1hZGUgYXMgdG8gaG93IHRoZSBgYC5zY2hlbWFgYAppcyByZXByZXNlbnRlZCBpbiB0aG9zZSByZW1vdGUgdGFibGVzLCBpbiB0aGUgY2FzZSB3aGVyZSB0aGF0IHJlbW90ZQpzY2hlbWEgbmFtZSBpcyBhbHNvIGEgbWVtYmVyIG9mIHRoZSBjdXJyZW50CmBQb3N0Z3JlU1FMIHNlYXJjaCBwYXRoCjxodHRwOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9zdGF0aWMvZGRsLXNjaGVtYXMuaHRtbCNEREwtU0NIRU1BUy1QQVRIPmBfLgoKQnkgZGVmYXVsdCwgdGhlIFBvc3RncmVTUUwgZGlhbGVjdCBtaW1pY3MgdGhlIGJlaGF2aW9yIGVuY291cmFnZWQgYnkKUG9zdGdyZVNRTCdzIG93biBgYHBnX2dldF9jb25zdHJhaW50ZGVmKClgYCBidWlsdGluIHByb2NlZHVyZS4gIFRoaXMgZnVuY3Rpb24KcmV0dXJucyBhIHNhbXBsZSBkZWZpbml0aW9uIGZvciBhIHBhcnRpY3VsYXIgZm9yZWlnbiBrZXkgY29uc3RyYWludCwKb21pdHRpbmcgdGhlIHJlZmVyZW5jZWQgc2NoZW1hIG5hbWUgZnJvbSB0aGF0IGRlZmluaXRpb24gd2hlbiB0aGUgbmFtZSBpcwphbHNvIGluIHRoZSBQb3N0Z3JlU1FMIHNjaGVtYSBzZWFyY2ggcGF0aC4gIFRoZSBpbnRlcmFjdGlvbiBiZWxvdwppbGx1c3RyYXRlcyB0aGlzIGJlaGF2aW9yOjoKCiAgICB0ZXN0PT4gQ1JFQVRFIFRBQkxFIHRlc3Rfc2NoZW1hLnJlZmVycmVkKGlkIElOVEVHRVIgUFJJTUFSWSBLRVkpOwogICAgQ1JFQVRFIFRBQkxFCiAgICB0ZXN0PT4gQ1JFQVRFIFRBQkxFIHJlZmVycmluZygKICAgIHRlc3QoPiAgICAgICAgIGlkIElOVEVHRVIgUFJJTUFSWSBLRVksCiAgICB0ZXN0KD4gICAgICAgICByZWZlcnJlZF9pZCBJTlRFR0VSIFJFRkVSRU5DRVMgdGVzdF9zY2hlbWEucmVmZXJyZWQoaWQpKTsKICAgIENSRUFURSBUQUJMRQogICAgdGVzdD0+IFNFVCBzZWFyY2hfcGF0aCBUTyBwdWJsaWMsIHRlc3Rfc2NoZW1hOwogICAgdGVzdD0+IFNFTEVDVCBwZ19jYXRhbG9nLnBnX2dldF9jb25zdHJhaW50ZGVmKHIub2lkLCB0cnVlKSBGUk9NCiAgICB0ZXN0LT4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbgogICAgdGVzdC0+IE9OIG4ub2lkID0gYy5yZWxuYW1lc3BhY2UKICAgIHRlc3QtPiBKT0lOIHBnX2NhdGFsb2cucGdfY29uc3RyYWludCByICBPTiBjLm9pZCA9IHIuY29ucmVsaWQKICAgIHRlc3QtPiBXSEVSRSBjLnJlbG5hbWU9J3JlZmVycmluZycgQU5EIHIuY29udHlwZSA9ICdmJwogICAgdGVzdC0+IDsKICAgICAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBGT1JFSUdOIEtFWSAocmVmZXJyZWRfaWQpIFJFRkVSRU5DRVMgcmVmZXJyZWQoaWQpCiAgICAoMSByb3cpCgpBYm92ZSwgd2UgY3JlYXRlZCBhIHRhYmxlIGBgcmVmZXJyZWRgYCBhcyBhIG1lbWJlciBvZiB0aGUgcmVtb3RlIHNjaGVtYQpgYHRlc3Rfc2NoZW1hYGAsIGhvd2V2ZXIgd2hlbiB3ZSBhZGRlZCBgYHRlc3Rfc2NoZW1hYGAgdG8gdGhlClBHIGBgc2VhcmNoX3BhdGhgYCBhbmQgdGhlbiBhc2tlZCBgYHBnX2dldF9jb25zdHJhaW50ZGVmKClgYCBmb3IgdGhlCmBgRk9SRUlHTiBLRVlgYCBzeW50YXgsIGBgdGVzdF9zY2hlbWFgYCB3YXMgbm90IGluY2x1ZGVkIGluIHRoZSBvdXRwdXQgb2YKdGhlIGZ1bmN0aW9uLgoKT24gdGhlIG90aGVyIGhhbmQsIGlmIHdlIHNldCB0aGUgc2VhcmNoIHBhdGggYmFjayB0byB0aGUgdHlwaWNhbCBkZWZhdWx0Cm9mIGBgcHVibGljYGA6OgoKICAgIHRlc3Q9PiBTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOwogICAgU0VUCgpUaGUgc2FtZSBxdWVyeSBhZ2FpbnN0IGBgcGdfZ2V0X2NvbnN0cmFpbnRkZWYoKWBgIG5vdyByZXR1cm5zIHRoZSBmdWxseQpzY2hlbWEtcXVhbGlmaWVkIG5hbWUgZm9yIHVzOjoKCiAgICB0ZXN0PT4gU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X2NvbnN0cmFpbnRkZWYoci5vaWQsIHRydWUpIEZST00KICAgIHRlc3QtPiBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuCiAgICB0ZXN0LT4gT04gbi5vaWQgPSBjLnJlbG5hbWVzcGFjZQogICAgdGVzdC0+IEpPSU4gcGdfY2F0YWxvZy5wZ19jb25zdHJhaW50IHIgIE9OIGMub2lkID0gci5jb25yZWxpZAogICAgdGVzdC0+IFdIRVJFIGMucmVsbmFtZT0ncmVmZXJyaW5nJyBBTkQgci5jb250eXBlID0gJ2YnOwogICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIEZPUkVJR04gS0VZIChyZWZlcnJlZF9pZCkgUkVGRVJFTkNFUyB0ZXN0X3NjaGVtYS5yZWZlcnJlZChpZCkKICAgICgxIHJvdykKClNRTEFsY2hlbXkgd2lsbCBieSBkZWZhdWx0IHVzZSB0aGUgcmV0dXJuIHZhbHVlIG9mIGBgcGdfZ2V0X2NvbnN0cmFpbnRkZWYoKWBgCmluIG9yZGVyIHRvIGRldGVybWluZSB0aGUgcmVtb3RlIHNjaGVtYSBuYW1lLiAgVGhhdCBpcywgaWYgb3VyIGBgc2VhcmNoX3BhdGhgYAp3ZXJlIHNldCB0byBpbmNsdWRlIGBgdGVzdF9zY2hlbWFgYCwgYW5kIHdlIGludm9rZWQgYSB0YWJsZQpyZWZsZWN0aW9uIHByb2Nlc3MgYXMgZm9sbG93czo6CgogICAgPj4+IGZyb20gc3FsYWxjaGVteSBpbXBvcnQgVGFibGUsIE1ldGFEYXRhLCBjcmVhdGVfZW5naW5lCiAgICA+Pj4gZW5naW5lID0gY3JlYXRlX2VuZ2luZSgicG9zdGdyZXNxbDovL3Njb3R0OnRpZ2VyQGxvY2FsaG9zdC90ZXN0IikKICAgID4+PiB3aXRoIGVuZ2luZS5jb25uZWN0KCkgYXMgY29ubjoKICAgIC4uLiAgICAgY29ubi5leGVjdXRlKCJTRVQgc2VhcmNoX3BhdGggVE8gdGVzdF9zY2hlbWEsIHB1YmxpYyIpCiAgICAuLi4gICAgIG1ldGEgPSBNZXRhRGF0YSgpCiAgICAuLi4gICAgIHJlZmVycmluZyA9IFRhYmxlKCdyZWZlcnJpbmcnLCBtZXRhLAogICAgLi4uICAgICAgICAgICAgICAgICAgICAgICBhdXRvbG9hZD1UcnVlLCBhdXRvbG9hZF93aXRoPWNvbm4pCiAgICAuLi4KICAgIDxzcWxhbGNoZW15LmVuZ2luZS5yZXN1bHQuUmVzdWx0UHJveHkgb2JqZWN0IGF0IDB4MTAxNjEyZWQwPgoKVGhlIGFib3ZlIHByb2Nlc3Mgd291bGQgZGVsaXZlciB0byB0aGUgOmF0dHI6YF9zY2hlbWEuTWV0YURhdGEudGFibGVzYApjb2xsZWN0aW9uCmBgcmVmZXJyZWRgYCB0YWJsZSBuYW1lZCAqKndpdGhvdXQqKiB0aGUgc2NoZW1hOjoKCiAgICA+Pj4gbWV0YS50YWJsZXNbJ3JlZmVycmVkJ10uc2NoZW1hIGlzIE5vbmUKICAgIFRydWUKClRvIGFsdGVyIHRoZSBiZWhhdmlvciBvZiByZWZsZWN0aW9uIHN1Y2ggdGhhdCB0aGUgcmVmZXJyZWQgc2NoZW1hIGlzCm1haW50YWluZWQgcmVnYXJkbGVzcyBvZiB0aGUgYGBzZWFyY2hfcGF0aGBgIHNldHRpbmcsIHVzZSB0aGUKYGBwb3N0Z3Jlc3FsX2lnbm9yZV9zZWFyY2hfcGF0aGBgIG9wdGlvbiwgd2hpY2ggY2FuIGJlIHNwZWNpZmllZCBhcyBhCmRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnQgdG8gYm90aCA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgIGFzIHdlbGwgYXMKOm1ldGg6YF9zY2hlbWEuTWV0YURhdGEucmVmbGVjdGA6OgoKICAgID4+PiB3aXRoIGVuZ2luZS5jb25uZWN0KCkgYXMgY29ubjoKICAgIC4uLiAgICAgY29ubi5leGVjdXRlKCJTRVQgc2VhcmNoX3BhdGggVE8gdGVzdF9zY2hlbWEsIHB1YmxpYyIpCiAgICAuLi4gICAgIG1ldGEgPSBNZXRhRGF0YSgpCiAgICAuLi4gICAgIHJlZmVycmluZyA9IFRhYmxlKCdyZWZlcnJpbmcnLCBtZXRhLCBhdXRvbG9hZD1UcnVlLAogICAgLi4uICAgICAgICAgICAgICAgICAgICAgICBhdXRvbG9hZF93aXRoPWNvbm4sCiAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgIHBvc3RncmVzcWxfaWdub3JlX3NlYXJjaF9wYXRoPVRydWUpCiAgICAuLi4KICAgIDxzcWxhbGNoZW15LmVuZ2luZS5yZXN1bHQuUmVzdWx0UHJveHkgb2JqZWN0IGF0IDB4MTAxNjEyNmQwPgoKV2Ugd2lsbCBub3cgaGF2ZSBgYHRlc3Rfc2NoZW1hLnJlZmVycmVkYGAgc3RvcmVkIGFzIHNjaGVtYS1xdWFsaWZpZWQ6OgoKICAgID4+PiBtZXRhLnRhYmxlc1sndGVzdF9zY2hlbWEucmVmZXJyZWQnXS5zY2hlbWEKICAgICd0ZXN0X3NjaGVtYScKCi4uIHNpZGViYXI6OiBCZXN0IFByYWN0aWNlcyBmb3IgUG9zdGdyZVNRTCBTY2hlbWEgcmVmbGVjdGlvbgoKICAgIFRoZSBkZXNjcmlwdGlvbiBvZiBQb3N0Z3JlU1FMIHNjaGVtYSByZWZsZWN0aW9uIGJlaGF2aW9yIGlzIGNvbXBsZXgsIGFuZAogICAgaXMgdGhlIHByb2R1Y3Qgb2YgbWFueSB5ZWFycyBvZiBkZWFsaW5nIHdpdGggd2lkZWx5IHZhcmllZCB1c2UgY2FzZXMgYW5kCiAgICB1c2VyIHByZWZlcmVuY2VzLiBCdXQgaW4gZmFjdCwgdGhlcmUncyBubyBuZWVkIHRvIHVuZGVyc3RhbmQgYW55IG9mIGl0IGlmCiAgICB5b3UganVzdCBzdGljayB0byB0aGUgc2ltcGxlc3QgdXNlIHBhdHRlcm46IGxlYXZlIHRoZSBgYHNlYXJjaF9wYXRoYGAgc2V0CiAgICB0byBpdHMgZGVmYXVsdCBvZiBgYHB1YmxpY2BgIG9ubHksIG5ldmVyIHJlZmVyIHRvIHRoZSBuYW1lIGBgcHVibGljYGAgYXMKICAgIGFuIGV4cGxpY2l0IHNjaGVtYSBuYW1lIG90aGVyd2lzZSwgYW5kIHJlZmVyIHRvIGFsbCBvdGhlciBzY2hlbWEgbmFtZXMKICAgIGV4cGxpY2l0bHkgd2hlbiBidWlsZGluZyB1cCBhIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAgb2JqZWN0LiAgVGhlIG9wdGlvbnMKICAgIGRlc2NyaWJlZCBoZXJlIGFyZSBvbmx5IGZvciB0aG9zZSB1c2VycyB3aG8gY2FuJ3QsIG9yIHByZWZlciBub3QgdG8sIHN0YXkKICAgIHdpdGhpbiB0aGVzZSBndWlkZWxpbmVzLgoKTm90ZSB0aGF0ICoqaW4gYWxsIGNhc2VzKiosIHRoZSAiZGVmYXVsdCIgc2NoZW1hIGlzIGFsd2F5cyByZWZsZWN0ZWQgYXMKYGBOb25lYGAuIFRoZSAiZGVmYXVsdCIgc2NoZW1hIG9uIFBvc3RncmVTUUwgaXMgdGhhdCB3aGljaCBpcyByZXR1cm5lZCBieSB0aGUKUG9zdGdyZVNRTCBgYGN1cnJlbnRfc2NoZW1hKClgYCBmdW5jdGlvbi4gIE9uIGEgdHlwaWNhbCBQb3N0Z3JlU1FMCmluc3RhbGxhdGlvbiwgdGhpcyBpcyB0aGUgbmFtZSBgYHB1YmxpY2BgLiAgU28gYSB0YWJsZSB0aGF0IHJlZmVycyB0byBhbm90aGVyCndoaWNoIGlzIGluIHRoZSBgYHB1YmxpY2BgIChpLmUuIGRlZmF1bHQpIHNjaGVtYSB3aWxsIGFsd2F5cyBoYXZlIHRoZQpgYC5zY2hlbWFgYCBhdHRyaWJ1dGUgc2V0IHRvIGBgTm9uZWBgLgoKLi4gdmVyc2lvbmFkZGVkOjogMC45LjIgQWRkZWQgdGhlIGBgcG9zdGdyZXNxbF9pZ25vcmVfc2VhcmNoX3BhdGhgYAogICBkaWFsZWN0LWxldmVsIG9wdGlvbiBhY2NlcHRlZCBieSA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgIGFuZAogICA6bWV0aDpgX3NjaGVtYS5NZXRhRGF0YS5yZWZsZWN0YC4KCgouLiBzZWVhbHNvOjoKCiAgICBgVGhlIFNjaGVtYSBTZWFyY2ggUGF0aAogICAgPGh0dHA6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy85LjAvc3RhdGljL2RkbC1zY2hlbWFzLmh0bWwjRERMLVNDSEVNQVMtUEFUSD5gXwogICAgLSBvbiB0aGUgUG9zdGdyZVNRTCB3ZWJzaXRlLgoKSU5TRVJUL1VQREFURS4uLlJFVFVSTklORwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGUgZGlhbGVjdCBzdXBwb3J0cyBQRyA4LjIncyBgYElOU0VSVC4uUkVUVVJOSU5HYGAsIGBgVVBEQVRFLi5SRVRVUk5JTkdgYCBhbmQKYGBERUxFVEUuLlJFVFVSTklOR2BgIHN5bnRheGVzLiAgIGBgSU5TRVJULi5SRVRVUk5JTkdgYCBpcyB1c2VkIGJ5IGRlZmF1bHQKZm9yIHNpbmdsZS1yb3cgSU5TRVJUIHN0YXRlbWVudHMgaW4gb3JkZXIgdG8gZmV0Y2ggbmV3bHkgZ2VuZXJhdGVkCnByaW1hcnkga2V5IGlkZW50aWZpZXJzLiAgIFRvIHNwZWNpZnkgYW4gZXhwbGljaXQgYGBSRVRVUk5JTkdgYCBjbGF1c2UsCnVzZSB0aGUgOm1ldGg6YC5fVXBkYXRlQmFzZS5yZXR1cm5pbmdgIG1ldGhvZCBvbiBhIHBlci1zdGF0ZW1lbnQgYmFzaXM6OgoKICAgICMgSU5TRVJULi5SRVRVUk5JTkcKICAgIHJlc3VsdCA9IHRhYmxlLmluc2VydCgpLnJldHVybmluZyh0YWJsZS5jLmNvbDEsIHRhYmxlLmMuY29sMikuXAogICAgICAgIHZhbHVlcyhuYW1lPSdmb28nKQogICAgcHJpbnQocmVzdWx0LmZldGNoYWxsKCkpCgogICAgIyBVUERBVEUuLlJFVFVSTklORwogICAgcmVzdWx0ID0gdGFibGUudXBkYXRlKCkucmV0dXJuaW5nKHRhYmxlLmMuY29sMSwgdGFibGUuYy5jb2wyKS5cCiAgICAgICAgd2hlcmUodGFibGUuYy5uYW1lPT0nZm9vJykudmFsdWVzKG5hbWU9J2JhcicpCiAgICBwcmludChyZXN1bHQuZmV0Y2hhbGwoKSkKCiAgICAjIERFTEVURS4uUkVUVVJOSU5HCiAgICByZXN1bHQgPSB0YWJsZS5kZWxldGUoKS5yZXR1cm5pbmcodGFibGUuYy5jb2wxLCB0YWJsZS5jLmNvbDIpLlwKICAgICAgICB3aGVyZSh0YWJsZS5jLm5hbWU9PSdmb28nKQogICAgcHJpbnQocmVzdWx0LmZldGNoYWxsKCkpCgouLiBfcG9zdGdyZXNxbF9pbnNlcnRfb25fY29uZmxpY3Q6CgpJTlNFUlQuLi5PTiBDT05GTElDVCAoVXBzZXJ0KQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClN0YXJ0aW5nIHdpdGggdmVyc2lvbiA5LjUsIFBvc3RncmVTUUwgYWxsb3dzICJ1cHNlcnRzIiAodXBkYXRlIG9yIGluc2VydCkgb2YKcm93cyBpbnRvIGEgdGFibGUgdmlhIHRoZSBgYE9OIENPTkZMSUNUYGAgY2xhdXNlIG9mIHRoZSBgYElOU0VSVGBgIHN0YXRlbWVudC4gQQpjYW5kaWRhdGUgcm93IHdpbGwgb25seSBiZSBpbnNlcnRlZCBpZiB0aGF0IHJvdyBkb2VzIG5vdCB2aW9sYXRlIGFueSB1bmlxdWUKY29uc3RyYWludHMuICBJbiB0aGUgY2FzZSBvZiBhIHVuaXF1ZSBjb25zdHJhaW50IHZpb2xhdGlvbiwgYSBzZWNvbmRhcnkgYWN0aW9uCmNhbiBvY2N1ciB3aGljaCBjYW4gYmUgZWl0aGVyICJETyBVUERBVEUiLCBpbmRpY2F0aW5nIHRoYXQgdGhlIGRhdGEgaW4gdGhlCnRhcmdldCByb3cgc2hvdWxkIGJlIHVwZGF0ZWQsIG9yICJETyBOT1RISU5HIiwgd2hpY2ggaW5kaWNhdGVzIHRvIHNpbGVudGx5IHNraXAKdGhpcyByb3cuCgpDb25mbGljdHMgYXJlIGRldGVybWluZWQgdXNpbmcgZXhpc3RpbmcgdW5pcXVlIGNvbnN0cmFpbnRzIGFuZCBpbmRleGVzLiAgVGhlc2UKY29uc3RyYWludHMgbWF5IGJlIGlkZW50aWZpZWQgZWl0aGVyIHVzaW5nIHRoZWlyIG5hbWUgYXMgc3RhdGVkIGluIERETCwKb3IgdGhleSBtYXkgYmUgKmluZmVycmVkKiBieSBzdGF0aW5nIHRoZSBjb2x1bW5zIGFuZCBjb25kaXRpb25zIHRoYXQgY29tcHJpc2UKdGhlIGluZGV4ZXMuCgpTUUxBbGNoZW15IHByb3ZpZGVzIGBgT04gQ09ORkxJQ1RgYCBzdXBwb3J0IHZpYSB0aGUgUG9zdGdyZVNRTC1zcGVjaWZpYwo6ZnVuYzpgX3Bvc3RncmVzcWwuaW5zZXJ0KClgIGZ1bmN0aW9uLCB3aGljaCBwcm92aWRlcwp0aGUgZ2VuZXJhdGl2ZSBtZXRob2RzIDptZXRoOmB+LnBvc3RncmVzcWwuSW5zZXJ0Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZWAKYW5kIDptZXRoOmB+LnBvc3RncmVzcWwuSW5zZXJ0Lm9uX2NvbmZsaWN0X2RvX25vdGhpbmdgOjoKCiAgICBmcm9tIHNxbGFsY2hlbXkuZGlhbGVjdHMucG9zdGdyZXNxbCBpbXBvcnQgaW5zZXJ0CgogICAgaW5zZXJ0X3N0bXQgPSBpbnNlcnQobXlfdGFibGUpLnZhbHVlcygKICAgICAgICBpZD0nc29tZV9leGlzdGluZ19pZCcsCiAgICAgICAgZGF0YT0naW5zZXJ0ZWQgdmFsdWUnKQoKICAgIGRvX25vdGhpbmdfc3RtdCA9IGluc2VydF9zdG10Lm9uX2NvbmZsaWN0X2RvX25vdGhpbmcoCiAgICAgICAgaW5kZXhfZWxlbWVudHM9WydpZCddCiAgICApCgogICAgY29ubi5leGVjdXRlKGRvX25vdGhpbmdfc3RtdCkKCiAgICBkb191cGRhdGVfc3RtdCA9IGluc2VydF9zdG10Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZSgKICAgICAgICBjb25zdHJhaW50PSdwa19teV90YWJsZScsCiAgICAgICAgc2V0Xz1kaWN0KGRhdGE9J3VwZGF0ZWQgdmFsdWUnKQogICAgKQoKICAgIGNvbm4uZXhlY3V0ZShkb191cGRhdGVfc3RtdCkKCkJvdGggbWV0aG9kcyBzdXBwbHkgdGhlICJ0YXJnZXQiIG9mIHRoZSBjb25mbGljdCB1c2luZyBlaXRoZXIgdGhlCm5hbWVkIGNvbnN0cmFpbnQgb3IgYnkgY29sdW1uIGluZmVyZW5jZToKCiogVGhlIDpwYXJhbXJlZjpgLkluc2VydC5vbl9jb25mbGljdF9kb191cGRhdGUuaW5kZXhfZWxlbWVudHNgIGFyZ3VtZW50CiAgc3BlY2lmaWVzIGEgc2VxdWVuY2UgY29udGFpbmluZyBzdHJpbmcgY29sdW1uIG5hbWVzLCA6Y2xhc3M6YF9zY2hlbWEuQ29sdW1uYAogIG9iamVjdHMsIGFuZC9vciBTUUwgZXhwcmVzc2lvbiBlbGVtZW50cywgd2hpY2ggd291bGQgaWRlbnRpZnkgYSB1bmlxdWUKICBpbmRleDo6CgogICAgZG9fdXBkYXRlX3N0bXQgPSBpbnNlcnRfc3RtdC5vbl9jb25mbGljdF9kb191cGRhdGUoCiAgICAgICAgaW5kZXhfZWxlbWVudHM9WydpZCddLAogICAgICAgIHNldF89ZGljdChkYXRhPSd1cGRhdGVkIHZhbHVlJykKICAgICkKCiAgICBkb191cGRhdGVfc3RtdCA9IGluc2VydF9zdG10Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZSgKICAgICAgICBpbmRleF9lbGVtZW50cz1bbXlfdGFibGUuYy5pZF0sCiAgICAgICAgc2V0Xz1kaWN0KGRhdGE9J3VwZGF0ZWQgdmFsdWUnKQogICAgKQoKKiBXaGVuIHVzaW5nIDpwYXJhbXJlZjpgLkluc2VydC5vbl9jb25mbGljdF9kb191cGRhdGUuaW5kZXhfZWxlbWVudHNgIHRvCiAgaW5mZXIgYW4gaW5kZXgsIGEgcGFydGlhbCBpbmRleCBjYW4gYmUgaW5mZXJyZWQgYnkgYWxzbyBzcGVjaWZ5aW5nIHRoZQogIHVzZSB0aGUgOnBhcmFtcmVmOmAuSW5zZXJ0Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZS5pbmRleF93aGVyZWAgcGFyYW1ldGVyOjoKCiAgICBmcm9tIHNxbGFsY2hlbXkuZGlhbGVjdHMucG9zdGdyZXNxbCBpbXBvcnQgaW5zZXJ0CgogICAgc3RtdCA9IGluc2VydChteV90YWJsZSkudmFsdWVzKHVzZXJfZW1haWw9J2FAYi5jb20nLCBkYXRhPSdpbnNlcnRlZCBkYXRhJykKICAgIHN0bXQgPSBzdG10Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZSgKICAgICAgICBpbmRleF9lbGVtZW50cz1bbXlfdGFibGUuYy51c2VyX2VtYWlsXSwKICAgICAgICBpbmRleF93aGVyZT1teV90YWJsZS5jLnVzZXJfZW1haWwubGlrZSgnJUBnbWFpbC5jb20nKSwKICAgICAgICBzZXRfPWRpY3QoZGF0YT1zdG10LmV4Y2x1ZGVkLmRhdGEpCiAgICAgICAgKQogICAgY29ubi5leGVjdXRlKHN0bXQpCgoqIFRoZSA6cGFyYW1yZWY6YC5JbnNlcnQub25fY29uZmxpY3RfZG9fdXBkYXRlLmNvbnN0cmFpbnRgIGFyZ3VtZW50IGlzCiAgdXNlZCB0byBzcGVjaWZ5IGFuIGluZGV4IGRpcmVjdGx5IHJhdGhlciB0aGFuIGluZmVycmluZyBpdC4gIFRoaXMgY2FuIGJlCiAgdGhlIG5hbWUgb2YgYSBVTklRVUUgY29uc3RyYWludCwgYSBQUklNQVJZIEtFWSBjb25zdHJhaW50LCBvciBhbiBJTkRFWDo6CgogICAgZG9fdXBkYXRlX3N0bXQgPSBpbnNlcnRfc3RtdC5vbl9jb25mbGljdF9kb191cGRhdGUoCiAgICAgICAgY29uc3RyYWludD0nbXlfdGFibGVfaWR4XzEnLAogICAgICAgIHNldF89ZGljdChkYXRhPSd1cGRhdGVkIHZhbHVlJykKICAgICkKCiAgICBkb191cGRhdGVfc3RtdCA9IGluc2VydF9zdG10Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZSgKICAgICAgICBjb25zdHJhaW50PSdteV90YWJsZV9waycsCiAgICAgICAgc2V0Xz1kaWN0KGRhdGE9J3VwZGF0ZWQgdmFsdWUnKQogICAgKQoKKiBUaGUgOnBhcmFtcmVmOmAuSW5zZXJ0Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZS5jb25zdHJhaW50YCBhcmd1bWVudCBtYXkKICBhbHNvIHJlZmVyIHRvIGEgU1FMQWxjaGVteSBjb25zdHJ1Y3QgcmVwcmVzZW50aW5nIGEgY29uc3RyYWludCwKICBlLmcuIDpjbGFzczpgLlVuaXF1ZUNvbnN0cmFpbnRgLCA6Y2xhc3M6YC5QcmltYXJ5S2V5Q29uc3RyYWludGAsCiAgOmNsYXNzOmAuSW5kZXhgLCBvciA6Y2xhc3M6YC5FeGNsdWRlQ29uc3RyYWludGAuICAgSW4gdGhpcyB1c2UsCiAgaWYgdGhlIGNvbnN0cmFpbnQgaGFzIGEgbmFtZSwgaXQgaXMgdXNlZCBkaXJlY3RseS4gIE90aGVyd2lzZSwgaWYgdGhlCiAgY29uc3RyYWludCBpcyB1bm5hbWVkLCB0aGVuIGluZmVyZW5jZSB3aWxsIGJlIHVzZWQsIHdoZXJlIHRoZSBleHByZXNzaW9ucwogIGFuZCBvcHRpb25hbCBXSEVSRSBjbGF1c2Ugb2YgdGhlIGNvbnN0cmFpbnQgd2lsbCBiZSBzcGVsbGVkIG91dCBpbiB0aGUKICBjb25zdHJ1Y3QuICBUaGlzIHVzZSBpcyBlc3BlY2lhbGx5IGNvbnZlbmllbnQKICB0byByZWZlciB0byB0aGUgbmFtZWQgb3IgdW5uYW1lZCBwcmltYXJ5IGtleSBvZiBhIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAKICB1c2luZyB0aGUKICA6YXR0cjpgX3NjaGVtYS5UYWJsZS5wcmltYXJ5X2tleWAgYXR0cmlidXRlOjoKCiAgICBkb191cGRhdGVfc3RtdCA9IGluc2VydF9zdG10Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZSgKICAgICAgICBjb25zdHJhaW50PW15X3RhYmxlLnByaW1hcnlfa2V5LAogICAgICAgIHNldF89ZGljdChkYXRhPSd1cGRhdGVkIHZhbHVlJykKICAgICkKCmBgT04gQ09ORkxJQ1QuLi5ETyBVUERBVEVgYCBpcyB1c2VkIHRvIHBlcmZvcm0gYW4gdXBkYXRlIG9mIHRoZSBhbHJlYWR5CmV4aXN0aW5nIHJvdywgdXNpbmcgYW55IGNvbWJpbmF0aW9uIG9mIG5ldyB2YWx1ZXMgYXMgd2VsbCBhcyB2YWx1ZXMKZnJvbSB0aGUgcHJvcG9zZWQgaW5zZXJ0aW9uLiAgIFRoZXNlIHZhbHVlcyBhcmUgc3BlY2lmaWVkIHVzaW5nIHRoZQo6cGFyYW1yZWY6YC5JbnNlcnQub25fY29uZmxpY3RfZG9fdXBkYXRlLnNldF9gIHBhcmFtZXRlci4gIFRoaXMKcGFyYW1ldGVyIGFjY2VwdHMgYSBkaWN0aW9uYXJ5IHdoaWNoIGNvbnNpc3RzIG9mIGRpcmVjdCB2YWx1ZXMKZm9yIFVQREFURTo6CgogICAgZnJvbSBzcWxhbGNoZW15LmRpYWxlY3RzLnBvc3RncmVzcWwgaW1wb3J0IGluc2VydAoKICAgIHN0bXQgPSBpbnNlcnQobXlfdGFibGUpLnZhbHVlcyhpZD0nc29tZV9pZCcsIGRhdGE9J2luc2VydGVkIHZhbHVlJykKICAgIGRvX3VwZGF0ZV9zdG10ID0gc3RtdC5vbl9jb25mbGljdF9kb191cGRhdGUoCiAgICAgICAgaW5kZXhfZWxlbWVudHM9WydpZCddLAogICAgICAgIHNldF89ZGljdChkYXRhPSd1cGRhdGVkIHZhbHVlJykKICAgICAgICApCiAgICBjb25uLmV4ZWN1dGUoZG9fdXBkYXRlX3N0bXQpCgouLiB3YXJuaW5nOjoKCiAgICBUaGUgOm1ldGg6YF9leHByZXNzaW9uLkluc2VydC5vbl9jb25mbGljdF9kb191cGRhdGVgCiAgICBtZXRob2QgZG9lcyAqKm5vdCoqIHRha2UgaW50bwogICAgYWNjb3VudCBQeXRob24tc2lkZSBkZWZhdWx0IFVQREFURSB2YWx1ZXMgb3IgZ2VuZXJhdGlvbiBmdW5jdGlvbnMsIGUuZy4KICAgIHRob3NlIHNwZWNpZmllZCB1c2luZyA6cGFyYW1yZWY6YF9zY2hlbWEuQ29sdW1uLm9udXBkYXRlYC4KICAgIFRoZXNlIHZhbHVlcyB3aWxsIG5vdCBiZSBleGVyY2lzZWQgZm9yIGFuIE9OIENPTkZMSUNUIHN0eWxlIG9mIFVQREFURSwKICAgIHVubGVzcyB0aGV5IGFyZSBtYW51YWxseSBzcGVjaWZpZWQgaW4gdGhlCiAgICA6cGFyYW1yZWY6YC5JbnNlcnQub25fY29uZmxpY3RfZG9fdXBkYXRlLnNldF9gIGRpY3Rpb25hcnkuCgpJbiBvcmRlciB0byByZWZlciB0byB0aGUgcHJvcG9zZWQgaW5zZXJ0aW9uIHJvdywgdGhlIHNwZWNpYWwgYWxpYXMKOmF0dHI6YH4ucG9zdGdyZXNxbC5JbnNlcnQuZXhjbHVkZWRgIGlzIGF2YWlsYWJsZSBhcyBhbiBhdHRyaWJ1dGUgb24KdGhlIDpjbGFzczpgX3Bvc3RncmVzcWwuSW5zZXJ0YCBvYmplY3Q7IHRoaXMgb2JqZWN0IGlzIGEKOmNsYXNzOmBfZXhwcmVzc2lvbi5Db2x1bW5Db2xsZWN0aW9uYAp3aGljaCBhbGlhcyBjb250YWlucyBhbGwgY29sdW1ucyBvZiB0aGUgdGFyZ2V0CnRhYmxlOjoKCiAgICBmcm9tIHNxbGFsY2hlbXkuZGlhbGVjdHMucG9zdGdyZXNxbCBpbXBvcnQgaW5zZXJ0CgogICAgc3RtdCA9IGluc2VydChteV90YWJsZSkudmFsdWVzKAogICAgICAgIGlkPSdzb21lX2lkJywKICAgICAgICBkYXRhPSdpbnNlcnRlZCB2YWx1ZScsCiAgICAgICAgYXV0aG9yPSdqbGgnKQogICAgZG9fdXBkYXRlX3N0bXQgPSBzdG10Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZSgKICAgICAgICBpbmRleF9lbGVtZW50cz1bJ2lkJ10sCiAgICAgICAgc2V0Xz1kaWN0KGRhdGE9J3VwZGF0ZWQgdmFsdWUnLCBhdXRob3I9c3RtdC5leGNsdWRlZC5hdXRob3IpCiAgICAgICAgKQogICAgY29ubi5leGVjdXRlKGRvX3VwZGF0ZV9zdG10KQoKVGhlIDptZXRoOmBfZXhwcmVzc2lvbi5JbnNlcnQub25fY29uZmxpY3RfZG9fdXBkYXRlYCBtZXRob2QgYWxzbyBhY2NlcHRzCmEgV0hFUkUgY2xhdXNlIHVzaW5nIHRoZSA6cGFyYW1yZWY6YC5JbnNlcnQub25fY29uZmxpY3RfZG9fdXBkYXRlLndoZXJlYApwYXJhbWV0ZXIsIHdoaWNoIHdpbGwgbGltaXQgdGhvc2Ugcm93cyB3aGljaCByZWNlaXZlIGFuIFVQREFURTo6CgogICAgZnJvbSBzcWxhbGNoZW15LmRpYWxlY3RzLnBvc3RncmVzcWwgaW1wb3J0IGluc2VydAoKICAgIHN0bXQgPSBpbnNlcnQobXlfdGFibGUpLnZhbHVlcygKICAgICAgICBpZD0nc29tZV9pZCcsCiAgICAgICAgZGF0YT0naW5zZXJ0ZWQgdmFsdWUnLAogICAgICAgIGF1dGhvcj0namxoJykKICAgIG9uX3VwZGF0ZV9zdG10ID0gc3RtdC5vbl9jb25mbGljdF9kb191cGRhdGUoCiAgICAgICAgaW5kZXhfZWxlbWVudHM9WydpZCddLAogICAgICAgIHNldF89ZGljdChkYXRhPSd1cGRhdGVkIHZhbHVlJywgYXV0aG9yPXN0bXQuZXhjbHVkZWQuYXV0aG9yKQogICAgICAgIHdoZXJlPShteV90YWJsZS5jLnN0YXR1cyA9PSAyKQogICAgICAgICkKICAgIGNvbm4uZXhlY3V0ZShvbl91cGRhdGVfc3RtdCkKCmBgT04gQ09ORkxJQ1RgYCBtYXkgYWxzbyBiZSB1c2VkIHRvIHNraXAgaW5zZXJ0aW5nIGEgcm93IGVudGlyZWx5CmlmIGFueSBjb25mbGljdCB3aXRoIGEgdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG9jY3VyczsgYmVsb3cKdGhpcyBpcyBpbGx1c3RyYXRlZCB1c2luZyB0aGUKOm1ldGg6YH4ucG9zdGdyZXNxbC5JbnNlcnQub25fY29uZmxpY3RfZG9fbm90aGluZ2AgbWV0aG9kOjoKCiAgICBmcm9tIHNxbGFsY2hlbXkuZGlhbGVjdHMucG9zdGdyZXNxbCBpbXBvcnQgaW5zZXJ0CgogICAgc3RtdCA9IGluc2VydChteV90YWJsZSkudmFsdWVzKGlkPSdzb21lX2lkJywgZGF0YT0naW5zZXJ0ZWQgdmFsdWUnKQogICAgc3RtdCA9IHN0bXQub25fY29uZmxpY3RfZG9fbm90aGluZyhpbmRleF9lbGVtZW50cz1bJ2lkJ10pCiAgICBjb25uLmV4ZWN1dGUoc3RtdCkKCklmIGBgRE8gTk9USElOR2BgIGlzIHVzZWQgd2l0aG91dCBzcGVjaWZ5aW5nIGFueSBjb2x1bW5zIG9yIGNvbnN0cmFpbnQsCml0IGhhcyB0aGUgZWZmZWN0IG9mIHNraXBwaW5nIHRoZSBJTlNFUlQgZm9yIGFueSB1bmlxdWUgb3IgZXhjbHVzaW9uCmNvbnN0cmFpbnQgdmlvbGF0aW9uIHdoaWNoIG9jY3Vyczo6CgogICAgZnJvbSBzcWxhbGNoZW15LmRpYWxlY3RzLnBvc3RncmVzcWwgaW1wb3J0IGluc2VydAoKICAgIHN0bXQgPSBpbnNlcnQobXlfdGFibGUpLnZhbHVlcyhpZD0nc29tZV9pZCcsIGRhdGE9J2luc2VydGVkIHZhbHVlJykKICAgIHN0bXQgPSBzdG10Lm9uX2NvbmZsaWN0X2RvX25vdGhpbmcoKQogICAgY29ubi5leGVjdXRlKHN0bXQpCgouLiB2ZXJzaW9uYWRkZWQ6OiAxLjEgQWRkZWQgc3VwcG9ydCBmb3IgUG9zdGdyZVNRTCBPTiBDT05GTElDVCBjbGF1c2VzCgouLiBzZWVhbHNvOjoKCiAgICBgSU5TRVJUIC4uIE9OIENPTkZMSUNUCiAgICA8aHR0cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvc3RhdGljL3NxbC1pbnNlcnQuaHRtbCNTUUwtT04tQ09ORkxJQ1Q+YF8KICAgIC0gaW4gdGhlIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbi4KCi4uIF9wb3N0Z3Jlc3FsX21hdGNoOgoKRnVsbCBUZXh0IFNlYXJjaAotLS0tLS0tLS0tLS0tLS0tCgpTUUxBbGNoZW15IG1ha2VzIGF2YWlsYWJsZSB0aGUgUG9zdGdyZVNRTCBgYEBAYGAgb3BlcmF0b3IgdmlhIHRoZQo6bWV0aDpgX2V4cHJlc3Npb24uQ29sdW1uRWxlbWVudC5tYXRjaGAKbWV0aG9kIG9uIGFueSB0ZXh0dWFsIGNvbHVtbiBleHByZXNzaW9uLgpPbiBhIFBvc3RncmVTUUwgZGlhbGVjdCwgYW4gZXhwcmVzc2lvbiBsaWtlIHRoZSBmb2xsb3dpbmc6OgoKICAgIHNlbGVjdChbc29tZXRhYmxlLmMudGV4dC5tYXRjaCgic2VhcmNoIHN0cmluZyIpXSkKCndpbGwgZW1pdCB0byB0aGUgZGF0YWJhc2U6OgoKICAgIFNFTEVDVCB0ZXh0IEBAIHRvX3RzcXVlcnkoJ3NlYXJjaCBzdHJpbmcnKSBGUk9NIHRhYmxlCgpUaGUgUG9zdGdyZVNRTCB0ZXh0IHNlYXJjaCBmdW5jdGlvbnMgc3VjaCBhcyBgYHRvX3RzcXVlcnkoKWBgCmFuZCBgYHRvX3RzdmVjdG9yKClgYCBhcmUgYXZhaWxhYmxlCmV4cGxpY2l0bHkgdXNpbmcgdGhlIHN0YW5kYXJkIDpkYXRhOmAuZnVuY2AgY29uc3RydWN0LiAgRm9yIGV4YW1wbGU6OgoKICAgIHNlbGVjdChbCiAgICAgICAgZnVuYy50b190c3ZlY3RvcignZmF0IGNhdHMgYXRlIHJhdHMnKS5tYXRjaCgnY2F0ICYgcmF0JykKICAgIF0pCgpFbWl0cyB0aGUgZXF1aXZhbGVudCBvZjo6CgogICAgU0VMRUNUIHRvX3RzdmVjdG9yKCdmYXQgY2F0cyBhdGUgcmF0cycpIEBAIHRvX3RzcXVlcnkoJ2NhdCAmIHJhdCcpCgpUaGUgOmNsYXNzOmBfcG9zdGdyZXNxbC5UU1ZFQ1RPUmAgdHlwZSBjYW4gcHJvdmlkZSBmb3IgZXhwbGljaXQgQ0FTVDo6CgogICAgZnJvbSBzcWxhbGNoZW15LmRpYWxlY3RzLnBvc3RncmVzcWwgaW1wb3J0IFRTVkVDVE9SCiAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IHNlbGVjdCwgY2FzdAogICAgc2VsZWN0KFtjYXN0KCJzb21lIHRleHQiLCBUU1ZFQ1RPUildKQoKcHJvZHVjZXMgYSBzdGF0ZW1lbnQgZXF1aXZhbGVudCB0bzo6CgogICAgU0VMRUNUIENBU1QoJ3NvbWUgdGV4dCcgQVMgVFNWRUNUT1IpIEFTIGFub25fMQoKRnVsbCBUZXh0IFNlYXJjaGVzIGluIFBvc3RncmVTUUwgYXJlIGluZmx1ZW5jZWQgYnkgYSBjb21iaW5hdGlvbiBvZjogdGhlClBvc3RncmVTUUwgc2V0dGluZyBvZiBgYGRlZmF1bHRfdGV4dF9zZWFyY2hfY29uZmlnYGAsIHRoZSBgYHJlZ2NvbmZpZ2BgIHVzZWQKdG8gYnVpbGQgdGhlIEdJTi9HaVNUIGluZGV4ZXMsIGFuZCB0aGUgYGByZWdjb25maWdgYCBvcHRpb25hbGx5IHBhc3NlZCBpbgpkdXJpbmcgYSBxdWVyeS4KCldoZW4gcGVyZm9ybWluZyBhIEZ1bGwgVGV4dCBTZWFyY2ggYWdhaW5zdCBhIGNvbHVtbiB0aGF0IGhhcyBhIEdJTiBvcgpHaVNUIGluZGV4IHRoYXQgaXMgYWxyZWFkeSBwcmUtY29tcHV0ZWQgKHdoaWNoIGlzIGNvbW1vbiBvbiBmdWxsIHRleHQKc2VhcmNoZXMpIG9uZSBtYXkgbmVlZCB0byBleHBsaWNpdGx5IHBhc3MgaW4gYSBwYXJ0aWN1bGFyIFBvc3RncmVTUUwKYGByZWdjb25maWdgYCB2YWx1ZSB0byBlbnN1cmUgdGhlIHF1ZXJ5LXBsYW5uZXIgdXRpbGl6ZXMgdGhlIGluZGV4IGFuZCBkb2VzCm5vdCByZS1jb21wdXRlIHRoZSBjb2x1bW4gb24gZGVtYW5kLgoKSW4gb3JkZXIgdG8gcHJvdmlkZSBmb3IgdGhpcyBleHBsaWNpdCBxdWVyeSBwbGFubmluZywgb3IgdG8gdXNlIGRpZmZlcmVudApzZWFyY2ggc3RyYXRlZ2llcywgdGhlIGBgbWF0Y2hgYCBtZXRob2QgYWNjZXB0cyBhIGBgcG9zdGdyZXNxbF9yZWdjb25maWdgYAprZXl3b3JkIGFyZ3VtZW50OjoKCiAgICBzZWxlY3QoW215dGFibGUuYy5pZF0pLndoZXJlKAogICAgICAgIG15dGFibGUuYy50aXRsZS5tYXRjaCgnc29tZXN0cmluZycsIHBvc3RncmVzcWxfcmVnY29uZmlnPSdlbmdsaXNoJykKICAgICkKCkVtaXRzIHRoZSBlcXVpdmFsZW50IG9mOjoKCiAgICBTRUxFQ1QgbXl0YWJsZS5pZCBGUk9NIG15dGFibGUKICAgIFdIRVJFIG15dGFibGUudGl0bGUgQEAgdG9fdHNxdWVyeSgnZW5nbGlzaCcsICdzb21lc3RyaW5nJykKCk9uZSBjYW4gYWxzbyBzcGVjaWZpY2FsbHkgcGFzcyBpbiBhIGAncmVnY29uZmlnJ2AgdmFsdWUgdG8gdGhlCmBgdG9fdHN2ZWN0b3IoKWBgIGNvbW1hbmQgYXMgdGhlIGluaXRpYWwgYXJndW1lbnQ6OgoKICAgIHNlbGVjdChbbXl0YWJsZS5jLmlkXSkud2hlcmUoCiAgICAgICAgICAgIGZ1bmMudG9fdHN2ZWN0b3IoJ2VuZ2xpc2gnLCBteXRhYmxlLmMudGl0bGUgKVwKICAgICAgICAgICAgLm1hdGNoKCdzb21lc3RyaW5nJywgcG9zdGdyZXNxbF9yZWdjb25maWc9J2VuZ2xpc2gnKQogICAgICAgICkKCnByb2R1Y2VzIGEgc3RhdGVtZW50IGVxdWl2YWxlbnQgdG86OgoKICAgIFNFTEVDVCBteXRhYmxlLmlkIEZST00gbXl0YWJsZQogICAgV0hFUkUgdG9fdHN2ZWN0b3IoJ2VuZ2xpc2gnLCBteXRhYmxlLnRpdGxlKSBAQAogICAgICAgIHRvX3RzcXVlcnkoJ2VuZ2xpc2gnLCAnc29tZXN0cmluZycpCgpJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSB1c2UgdGhlIGBgRVhQTEFJTiBBTkFMWVpFLi4uYGAgdG9vbCBmcm9tClBvc3RncmVTUUwgdG8gZW5zdXJlIHRoYXQgeW91IGFyZSBnZW5lcmF0aW5nIHF1ZXJpZXMgd2l0aCBTUUxBbGNoZW15IHRoYXQKdGFrZSBmdWxsIGFkdmFudGFnZSBvZiBhbnkgaW5kZXhlcyB5b3UgbWF5IGhhdmUgY3JlYXRlZCBmb3IgZnVsbCB0ZXh0IHNlYXJjaC4KCkZST00gT05MWSAuLi4KLS0tLS0tLS0tLS0tLQoKVGhlIGRpYWxlY3Qgc3VwcG9ydHMgUG9zdGdyZVNRTCdzIE9OTFkga2V5d29yZCBmb3IgdGFyZ2V0aW5nIG9ubHkgYSBwYXJ0aWN1bGFyCnRhYmxlIGluIGFuIGluaGVyaXRhbmNlIGhpZXJhcmNoeS4gVGhpcyBjYW4gYmUgdXNlZCB0byBwcm9kdWNlIHRoZQpgYFNFTEVDVCAuLi4gRlJPTSBPTkxZYGAsIGBgVVBEQVRFIE9OTFkgLi4uYGAsIGFuZCBgYERFTEVURSBGUk9NIE9OTFkgLi4uYGAKc3ludGF4ZXMuIEl0IHVzZXMgU1FMQWxjaGVteSdzIGhpbnRzIG1lY2hhbmlzbTo6CgogICAgIyBTRUxFQ1QgLi4uIEZST00gT05MWSAuLi4KICAgIHJlc3VsdCA9IHRhYmxlLnNlbGVjdCgpLndpdGhfaGludCh0YWJsZSwgJ09OTFknLCAncG9zdGdyZXNxbCcpCiAgICBwcmludChyZXN1bHQuZmV0Y2hhbGwoKSkKCiAgICAjIFVQREFURSBPTkxZIC4uLgogICAgdGFibGUudXBkYXRlKHZhbHVlcz1kaWN0KGZvbz0nYmFyJykpLndpdGhfaGludCgnT05MWScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxlY3RfbmFtZT0ncG9zdGdyZXNxbCcpCgogICAgIyBERUxFVEUgRlJPTSBPTkxZIC4uLgogICAgdGFibGUuZGVsZXRlKCkud2l0aF9oaW50KCdPTkxZJywgZGlhbGVjdF9uYW1lPSdwb3N0Z3Jlc3FsJykKCgouLiBfcG9zdGdyZXNxbF9pbmRleGVzOgoKUG9zdGdyZVNRTC1TcGVjaWZpYyBJbmRleCBPcHRpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKU2V2ZXJhbCBleHRlbnNpb25zIHRvIHRoZSA6Y2xhc3M6YC5JbmRleGAgY29uc3RydWN0IGFyZSBhdmFpbGFibGUsIHNwZWNpZmljCnRvIHRoZSBQb3N0Z3JlU1FMIGRpYWxlY3QuCgouLiBfcG9zdGdyZXNxbF9wYXJ0aWFsX2luZGV4ZXM6CgpQYXJ0aWFsIEluZGV4ZXMKXl5eXl5eXl5eXl5eXl5eCgpQYXJ0aWFsIGluZGV4ZXMgYWRkIGNyaXRlcmlvbiB0byB0aGUgaW5kZXggZGVmaW5pdGlvbiBzbyB0aGF0IHRoZSBpbmRleCBpcwphcHBsaWVkIHRvIGEgc3Vic2V0IG9mIHJvd3MuICAgVGhlc2UgY2FuIGJlIHNwZWNpZmllZCBvbiA6Y2xhc3M6YC5JbmRleGAKdXNpbmcgdGhlIGBgcG9zdGdyZXNxbF93aGVyZWBgIGtleXdvcmQgYXJndW1lbnQ6OgoKICBJbmRleCgnbXlfaW5kZXgnLCBteV90YWJsZS5jLmlkLCBwb3N0Z3Jlc3FsX3doZXJlPW15X3RhYmxlLmMudmFsdWUgPiAxMCkKCi4uIF9wb3N0Z3Jlc3FsX29wZXJhdG9yX2NsYXNzZXM6CgpPcGVyYXRvciBDbGFzc2VzCl5eXl5eXl5eXl5eXl5eXl4KClBvc3RncmVTUUwgYWxsb3dzIHRoZSBzcGVjaWZpY2F0aW9uIG9mIGFuICpvcGVyYXRvciBjbGFzcyogZm9yIGVhY2ggY29sdW1uIG9mCmFuIGluZGV4IChzZWUKaHR0cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzguMy9pbnRlcmFjdGl2ZS9pbmRleGVzLW9wY2xhc3MuaHRtbCkuClRoZSA6Y2xhc3M6YC5JbmRleGAgY29uc3RydWN0IGFsbG93cyB0aGVzZSB0byBiZSBzcGVjaWZpZWQgdmlhIHRoZQpgYHBvc3RncmVzcWxfb3BzYGAga2V5d29yZCBhcmd1bWVudDo6CgogICAgSW5kZXgoCiAgICAgICAgJ215X2luZGV4JywgbXlfdGFibGUuYy5pZCwgbXlfdGFibGUuYy5kYXRhLAogICAgICAgIHBvc3RncmVzcWxfb3BzPXsKICAgICAgICAgICAgJ2RhdGEnOiAndGV4dF9wYXR0ZXJuX29wcycsCiAgICAgICAgICAgICdpZCc6ICdpbnQ0X29wcycKICAgICAgICB9KQoKTm90ZSB0aGF0IHRoZSBrZXlzIGluIHRoZSBgYHBvc3RncmVzcWxfb3BzYGAgZGljdGlvbmFyaWVzIGFyZSB0aGUKImtleSIgbmFtZSBvZiB0aGUgOmNsYXNzOmBfc2NoZW1hLkNvbHVtbmAsIGkuZS4gdGhlIG5hbWUgdXNlZCB0byBhY2Nlc3MgaXQgZnJvbQp0aGUgYGAuY2BgIGNvbGxlY3Rpb24gb2YgOmNsYXNzOmBfc2NoZW1hLlRhYmxlYCwgd2hpY2ggY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYmUKZGlmZmVyZW50IHRoYW4gdGhlIGFjdHVhbCBuYW1lIG9mIHRoZSBjb2x1bW4gYXMgZXhwcmVzc2VkIGluIHRoZSBkYXRhYmFzZS4KCklmIGBgcG9zdGdyZXNxbF9vcHNgYCBpcyB0byBiZSB1c2VkIGFnYWluc3QgYSBjb21wbGV4IFNRTCBleHByZXNzaW9uIHN1Y2gKYXMgYSBmdW5jdGlvbiBjYWxsLCB0aGVuIHRvIGFwcGx5IHRvIHRoZSBjb2x1bW4gaXQgbXVzdCBiZSBnaXZlbiBhIGxhYmVsCnRoYXQgaXMgaWRlbnRpZmllZCBpbiB0aGUgZGljdGlvbmFyeSBieSBuYW1lLCBlLmcuOjoKCiAgICBJbmRleCgKICAgICAgICAnbXlfaW5kZXgnLCBteV90YWJsZS5jLmlkLAogICAgICAgIGZ1bmMubG93ZXIobXlfdGFibGUuYy5kYXRhKS5sYWJlbCgnZGF0YV9sb3dlcicpLAogICAgICAgIHBvc3RncmVzcWxfb3BzPXsKICAgICAgICAgICAgJ2RhdGFfbG93ZXInOiAndGV4dF9wYXR0ZXJuX29wcycsCiAgICAgICAgICAgICdpZCc6ICdpbnQ0X29wcycKICAgICAgICB9KQoKT3BlcmF0b3IgY2xhc3NlcyBhcmUgYWxzbyBzdXBwb3J0ZWQgYnkgdGhlCjpjbGFzczpgX3Bvc3RncmVzcWwuRXhjbHVkZUNvbnN0cmFpbnRgIGNvbnN0cnVjdCB1c2luZyB0aGUKOnBhcmFtcmVmOmBfcG9zdGdyZXNxbC5FeGNsdWRlQ29uc3RyYWludC5vcHNgIHBhcmFtZXRlci4gU2VlIHRoYXQgcGFyYW1ldGVyIGZvcgpkZXRhaWxzLgoKLi4gdmVyc2lvbmFkZGVkOjogMS4zLjIxIGFkZGVkIHN1cHBvcnQgZm9yIG9wZXJhdG9yIGNsYXNzZXMgd2l0aAogICA6Y2xhc3M6YF9wb3N0Z3Jlc3FsLkV4Y2x1ZGVDb25zdHJhaW50YC4KCgpJbmRleCBUeXBlcwpeXl5eXl5eXl5eXgoKUG9zdGdyZVNRTCBwcm92aWRlcyBzZXZlcmFsIGluZGV4IHR5cGVzOiBCLVRyZWUsIEhhc2gsIEdpU1QsIGFuZCBHSU4sIGFzIHdlbGwKYXMgdGhlIGFiaWxpdHkgZm9yIHVzZXJzIHRvIGNyZWF0ZSB0aGVpciBvd24gKHNlZQpodHRwOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvOC4zL3N0YXRpYy9pbmRleGVzLXR5cGVzLmh0bWwpLiBUaGVzZSBjYW4gYmUKc3BlY2lmaWVkIG9uIDpjbGFzczpgLkluZGV4YCB1c2luZyB0aGUgYGBwb3N0Z3Jlc3FsX3VzaW5nYGAga2V5d29yZCBhcmd1bWVudDo6CgogICAgSW5kZXgoJ215X2luZGV4JywgbXlfdGFibGUuYy5kYXRhLCBwb3N0Z3Jlc3FsX3VzaW5nPSdnaW4nKQoKVGhlIHZhbHVlIHBhc3NlZCB0byB0aGUga2V5d29yZCBhcmd1bWVudCB3aWxsIGJlIHNpbXBseSBwYXNzZWQgdGhyb3VnaCB0byB0aGUKdW5kZXJseWluZyBDUkVBVEUgSU5ERVggY29tbWFuZCwgc28gaXQgKm11c3QqIGJlIGEgdmFsaWQgaW5kZXggdHlwZSBmb3IgeW91cgp2ZXJzaW9uIG9mIFBvc3RncmVTUUwuCgouLiBfcG9zdGdyZXNxbF9pbmRleF9zdG9yYWdlOgoKSW5kZXggU3RvcmFnZSBQYXJhbWV0ZXJzCl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgoKUG9zdGdyZVNRTCBhbGxvd3Mgc3RvcmFnZSBwYXJhbWV0ZXJzIHRvIGJlIHNldCBvbiBpbmRleGVzLiBUaGUgc3RvcmFnZQpwYXJhbWV0ZXJzIGF2YWlsYWJsZSBkZXBlbmQgb24gdGhlIGluZGV4IG1ldGhvZCB1c2VkIGJ5IHRoZSBpbmRleC4gU3RvcmFnZQpwYXJhbWV0ZXJzIGNhbiBiZSBzcGVjaWZpZWQgb24gOmNsYXNzOmAuSW5kZXhgIHVzaW5nIHRoZSBgYHBvc3RncmVzcWxfd2l0aGBgCmtleXdvcmQgYXJndW1lbnQ6OgoKICAgIEluZGV4KCdteV9pbmRleCcsIG15X3RhYmxlLmMuZGF0YSwgcG9zdGdyZXNxbF93aXRoPXsiZmlsbGZhY3RvciI6IDUwfSkKCi4uIHZlcnNpb25hZGRlZDo6IDEuMC42CgpQb3N0Z3JlU1FMIGFsbG93cyB0byBkZWZpbmUgdGhlIHRhYmxlc3BhY2UgaW4gd2hpY2ggdG8gY3JlYXRlIHRoZSBpbmRleC4KVGhlIHRhYmxlc3BhY2UgY2FuIGJlIHNwZWNpZmllZCBvbiA6Y2xhc3M6YC5JbmRleGAgdXNpbmcgdGhlCmBgcG9zdGdyZXNxbF90YWJsZXNwYWNlYGAga2V5d29yZCBhcmd1bWVudDo6CgogICAgSW5kZXgoJ215X2luZGV4JywgbXlfdGFibGUuYy5kYXRhLCBwb3N0Z3Jlc3FsX3RhYmxlc3BhY2U9J215X3RhYmxlc3BhY2UnKQoKLi4gdmVyc2lvbmFkZGVkOjogMS4xCgpOb3RlIHRoYXQgdGhlIHNhbWUgb3B0aW9uIGlzIGF2YWlsYWJsZSBvbiA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgIGFzIHdlbGwuCgouLiBfcG9zdGdyZXNxbF9pbmRleF9jb25jdXJyZW50bHk6CgpJbmRleGVzIHdpdGggQ09OQ1VSUkVOVExZCl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KClRoZSBQb3N0Z3JlU1FMIGluZGV4IG9wdGlvbiBDT05DVVJSRU5UTFkgaXMgc3VwcG9ydGVkIGJ5IHBhc3NpbmcgdGhlCmZsYWcgYGBwb3N0Z3Jlc3FsX2NvbmN1cnJlbnRseWBgIHRvIHRoZSA6Y2xhc3M6YC5JbmRleGAgY29uc3RydWN0OjoKCiAgICB0YmwgPSBUYWJsZSgndGVzdHRibCcsIG0sIENvbHVtbignZGF0YScsIEludGVnZXIpKQoKICAgIGlkeDEgPSBJbmRleCgndGVzdF9pZHgxJywgdGJsLmMuZGF0YSwgcG9zdGdyZXNxbF9jb25jdXJyZW50bHk9VHJ1ZSkKClRoZSBhYm92ZSBpbmRleCBjb25zdHJ1Y3Qgd2lsbCByZW5kZXIgRERMIGZvciBDUkVBVEUgSU5ERVgsIGFzc3VtaW5nClBvc3RncmVTUUwgOC4yIG9yIGhpZ2hlciBpcyBkZXRlY3RlZCBvciBmb3IgYSBjb25uZWN0aW9uLWxlc3MgZGlhbGVjdCwgYXM6OgoKICAgIENSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgdGVzdF9pZHgxIE9OIHRlc3R0YmwgKGRhdGEpCgpGb3IgRFJPUCBJTkRFWCwgYXNzdW1pbmcgUG9zdGdyZVNRTCA5LjIgb3IgaGlnaGVyIGlzIGRldGVjdGVkIG9yIGZvcgphIGNvbm5lY3Rpb24tbGVzcyBkaWFsZWN0LCBpdCB3aWxsIGVtaXQ6OgoKICAgIERST1AgSU5ERVggQ09OQ1VSUkVOVExZIHRlc3RfaWR4MQoKLi4gdmVyc2lvbmFkZGVkOjogMS4xIHN1cHBvcnQgZm9yIENPTkNVUlJFTlRMWSBvbiBEUk9QIElOREVYLiAgVGhlCiAgIENPTkNVUlJFTlRMWSBrZXl3b3JkIGlzIG5vdyBvbmx5IGVtaXR0ZWQgaWYgYSBoaWdoIGVub3VnaCB2ZXJzaW9uCiAgIG9mIFBvc3RncmVTUUwgaXMgZGV0ZWN0ZWQgb24gdGhlIGNvbm5lY3Rpb24gKG9yIGZvciBhIGNvbm5lY3Rpb24tbGVzcwogICBkaWFsZWN0KS4KCldoZW4gdXNpbmcgQ09OQ1VSUkVOVExZLCB0aGUgUG9zdGdyZVNRTCBkYXRhYmFzZSByZXF1aXJlcyB0aGF0IHRoZSBzdGF0ZW1lbnQKYmUgaW52b2tlZCBvdXRzaWRlIG9mIGEgdHJhbnNhY3Rpb24gYmxvY2suICAgVGhlIFB5dGhvbiBEQkFQSSBlbmZvcmNlcyB0aGF0CmV2ZW4gZm9yIGEgc2luZ2xlIHN0YXRlbWVudCwgYSB0cmFuc2FjdGlvbiBpcyBwcmVzZW50LCBzbyB0byB1c2UgdGhpcwpjb25zdHJ1Y3QsIHRoZSBEQkFQSSdzICJhdXRvY29tbWl0IiBtb2RlIG11c3QgYmUgdXNlZDo6CgogICAgbWV0YWRhdGEgPSBNZXRhRGF0YSgpCiAgICB0YWJsZSA9IFRhYmxlKAogICAgICAgICJmb28iLCBtZXRhZGF0YSwKICAgICAgICBDb2x1bW4oImlkIiwgU3RyaW5nKSkKICAgIGluZGV4ID0gSW5kZXgoCiAgICAgICAgImZvb19pZHgiLCB0YWJsZS5jLmlkLCBwb3N0Z3Jlc3FsX2NvbmN1cnJlbnRseT1UcnVlKQoKICAgIHdpdGggZW5naW5lLmNvbm5lY3QoKSBhcyBjb25uOgogICAgICAgIHdpdGggY29ubi5leGVjdXRpb25fb3B0aW9ucyhpc29sYXRpb25fbGV2ZWw9J0FVVE9DT01NSVQnKToKICAgICAgICAgICAgdGFibGUuY3JlYXRlKGNvbm4pCgouLiBzZWVhbHNvOjoKCiAgICA6cmVmOmBwb3N0Z3Jlc3FsX2lzb2xhdGlvbl9sZXZlbGAKCi4uIF9wb3N0Z3Jlc3FsX2luZGV4X3JlZmxlY3Rpb246CgpQb3N0Z3JlU1FMIEluZGV4IFJlZmxlY3Rpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGUgUG9zdGdyZVNRTCBkYXRhYmFzZSBjcmVhdGVzIGEgVU5JUVVFIElOREVYIGltcGxpY2l0bHkgd2hlbmV2ZXIgdGhlClVOSVFVRSBDT05TVFJBSU5UIGNvbnN0cnVjdCBpcyB1c2VkLiAgIFdoZW4gaW5zcGVjdGluZyBhIHRhYmxlIHVzaW5nCjpjbGFzczpgX3JlZmxlY3Rpb24uSW5zcGVjdG9yYCwgdGhlIDptZXRoOmBfcmVmbGVjdGlvbi5JbnNwZWN0b3IuZ2V0X2luZGV4ZXNgCmFuZCB0aGUgOm1ldGg6YF9yZWZsZWN0aW9uLkluc3BlY3Rvci5nZXRfdW5pcXVlX2NvbnN0cmFpbnRzYAp3aWxsIHJlcG9ydCBvbiB0aGVzZQp0d28gY29uc3RydWN0cyBkaXN0aW5jdGx5OyBpbiB0aGUgY2FzZSBvZiB0aGUgaW5kZXgsIHRoZSBrZXkKYGBkdXBsaWNhdGVzX2NvbnN0cmFpbnRgYCB3aWxsIGJlIHByZXNlbnQgaW4gdGhlIGluZGV4IGVudHJ5IGlmIGl0IGlzCmRldGVjdGVkIGFzIG1pcnJvcmluZyBhIGNvbnN0cmFpbnQuICAgV2hlbiBwZXJmb3JtaW5nIHJlZmxlY3Rpb24gdXNpbmcKYGBUYWJsZSguLi4sIGF1dG9sb2FkPVRydWUpYGAsIHRoZSBVTklRVUUgSU5ERVggaXMgKipub3QqKiByZXR1cm5lZAppbiA6YXR0cjpgX3NjaGVtYS5UYWJsZS5pbmRleGVzYCB3aGVuIGl0IGlzIGRldGVjdGVkIGFzIG1pcnJvcmluZyBhCjpjbGFzczpgLlVuaXF1ZUNvbnN0cmFpbnRgIGluIHRoZSA6YXR0cjpgX3NjaGVtYS5UYWJsZS5jb25zdHJhaW50c2AgY29sbGVjdGlvbgouCgouLiB2ZXJzaW9uY2hhbmdlZDo6IDEuMC4wIC0gOmNsYXNzOmBfc2NoZW1hLlRhYmxlYCByZWZsZWN0aW9uIG5vdyBpbmNsdWRlcwogICA6Y2xhc3M6YC5VbmlxdWVDb25zdHJhaW50YCBvYmplY3RzIHByZXNlbnQgaW4gdGhlCiAgIDphdHRyOmBfc2NoZW1hLlRhYmxlLmNvbnN0cmFpbnRzYAogICBjb2xsZWN0aW9uOyB0aGUgUG9zdGdyZVNRTCBiYWNrZW5kIHdpbGwgbm8gbG9uZ2VyIGluY2x1ZGUgYSAibWlycm9yZWQiCiAgIDpjbGFzczpgLkluZGV4YCBjb25zdHJ1Y3QgaW4gOmF0dHI6YF9zY2hlbWEuVGFibGUuaW5kZXhlc2AKICAgaWYgaXQgaXMgZGV0ZWN0ZWQKICAgYXMgY29ycmVzcG9uZGluZyB0byBhIHVuaXF1ZSBjb25zdHJhaW50LgoKU3BlY2lhbCBSZWZsZWN0aW9uIE9wdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSA6Y2xhc3M6YF9yZWZsZWN0aW9uLkluc3BlY3RvcmAKdXNlZCBmb3IgdGhlIFBvc3RncmVTUUwgYmFja2VuZCBpcyBhbiBpbnN0YW5jZQpvZiA6Y2xhc3M6YC5QR0luc3BlY3RvcmAsIHdoaWNoIG9mZmVycyBhZGRpdGlvbmFsIG1ldGhvZHM6OgoKICAgIGZyb20gc3FsYWxjaGVteSBpbXBvcnQgY3JlYXRlX2VuZ2luZSwgaW5zcGVjdAoKICAgIGVuZ2luZSA9IGNyZWF0ZV9lbmdpbmUoInBvc3RncmVzcWwrcHN5Y29wZzI6Ly9sb2NhbGhvc3QvdGVzdCIpCiAgICBpbnNwID0gaW5zcGVjdChlbmdpbmUpICAjIHdpbGwgYmUgYSBQR0luc3BlY3RvcgoKICAgIHByaW50KGluc3AuZ2V0X2VudW1zKCkpCgouLiBhdXRvY2xhc3M6OiBQR0luc3BlY3RvcgogICAgOm1lbWJlcnM6CgouLiBfcG9zdGdyZXNxbF90YWJsZV9vcHRpb25zOgoKUG9zdGdyZVNRTCBUYWJsZSBPcHRpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKU2V2ZXJhbCBvcHRpb25zIGZvciBDUkVBVEUgVEFCTEUgYXJlIHN1cHBvcnRlZCBkaXJlY3RseSBieSB0aGUgUG9zdGdyZVNRTApkaWFsZWN0IGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAgY29uc3RydWN0OgoKKiBgYFRBQkxFU1BBQ0VgYDo6CgogICAgVGFibGUoInNvbWVfdGFibGUiLCBtZXRhZGF0YSwgLi4uLCBwb3N0Z3Jlc3FsX3RhYmxlc3BhY2U9J3NvbWVfdGFibGVzcGFjZScpCgogIFRoZSBhYm92ZSBvcHRpb24gaXMgYWxzbyBhdmFpbGFibGUgb24gdGhlIDpjbGFzczpgLkluZGV4YCBjb25zdHJ1Y3QuCgoqIGBgT04gQ09NTUlUYGA6OgoKICAgIFRhYmxlKCJzb21lX3RhYmxlIiwgbWV0YWRhdGEsIC4uLiwgcG9zdGdyZXNxbF9vbl9jb21taXQ9J1BSRVNFUlZFIFJPV1MnKQoKKiBgYFdJVEggT0lEU2BgOjoKCiAgICBUYWJsZSgic29tZV90YWJsZSIsIG1ldGFkYXRhLCAuLi4sIHBvc3RncmVzcWxfd2l0aF9vaWRzPVRydWUpCgoqIGBgV0lUSE9VVCBPSURTYGA6OgoKICAgIFRhYmxlKCJzb21lX3RhYmxlIiwgbWV0YWRhdGEsIC4uLiwgcG9zdGdyZXNxbF93aXRoX29pZHM9RmFsc2UpCgoqIGBgSU5IRVJJVFNgYDo6CgogICAgVGFibGUoInNvbWVfdGFibGUiLCBtZXRhZGF0YSwgLi4uLCBwb3N0Z3Jlc3FsX2luaGVyaXRzPSJzb21lX3N1cGVydGFibGUiKQoKICAgIFRhYmxlKCJzb21lX3RhYmxlIiwgbWV0YWRhdGEsIC4uLiwgcG9zdGdyZXNxbF9pbmhlcml0cz0oInQxIiwgInQyIiwgLi4uKSkKCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjAuMAoKKiBgYFBBUlRJVElPTiBCWWBgOjoKCiAgICBUYWJsZSgic29tZV90YWJsZSIsIG1ldGFkYXRhLCAuLi4sCiAgICAgICAgICBwb3N0Z3Jlc3FsX3BhcnRpdGlvbl9ieT0nTElTVCAocGFydF9jb2x1bW4pJykKCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjIuNgoKLi4gc2VlYWxzbzo6CgogICAgYFBvc3RncmVTUUwgQ1JFQVRFIFRBQkxFIG9wdGlvbnMKICAgIDxodHRwOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9zdGF0aWMvc3FsLWNyZWF0ZXRhYmxlLmh0bWw+YF8KClRhYmxlIHZhbHVlcywgUm93IGFuZCBUdXBsZSBvYmplY3RzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpSb3cgVHlwZXMKXl5eXl5eXl5eCgpCdWlsdC1pbiBzdXBwb3J0IGZvciByZW5kZXJpbmcgYSBgYFJPV2BgIGlzIG5vdCBhdmFpbGFibGUgeWV0LCBob3dldmVyIHRoZQo6ZnVuYzpgX2V4cHJlc3Npb24udHVwbGVfYCBtYXkgYmUgdXNlZCBpbiBpdHMgcGxhY2UuIEFub3RoZXIgYWx0ZXJuYXRpdmUgaXMKdG8gdXNlIHRoZSA6YXR0cjpgX3NhLmZ1bmNgIGdlbmVyYXRvciB3aXRoIGBgZnVuYy5ST1dgYCA6OgoKICAgIHRhYmxlLnNlbGVjdCgpLndoZXJlKAogICAgICAgIHR1cGxlXyh0YWJsZS5jLmlkLCB0YWJsZS5jLmZrKSA+ICgxLDIpCiAgICApLndoZXJlKGZ1bmMuUk9XKHRhYmxlLmMuaWQsIHRhYmxlLmMuZmspIDwgZnVuYy5ST1coMywgNykpCgpXaWxsIGdlbmVyYXRlIHRoZSByb3ctd2lzZSBjb21wYXJpc29uOjoKCiAgICBTRUxFQ1QgKgogICAgRlJPTSB0YWJsZQogICAgV0hFUkUgKGlkLCBmaykgPiAoMSwgMikKICAgIEFORCBST1coaWQsIGZrKSA8IFJPVygzLCA3KQoKLi4gc2VlYWxzbzo6CgogICAgYFBvc3RncmVTUUwgUm93IENvbnN0cnVjdG9ycwogICAgPGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9zcWwtZXhwcmVzc2lvbnMuaHRtbCNTUUwtU1lOVEFYLVJPVy1DT05TVFJVQ1RPUlM+YF8KCiAgICBgUG9zdGdyZVNRTCBSb3cgQ29uc3RydWN0b3IgQ29tcGFyaXNvbgogICAgPGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9mdW5jdGlvbnMtY29tcGFyaXNvbnMuaHRtbCNST1ctV0lTRS1DT01QQVJJU09OPmBfCgpUYWJsZSBUeXBlcwpeXl5eXl5eXl5eXgoKUG9zdGdyZVNRTCBhbHNvIHN1cHBvcnRzIHBhc3NpbmcgYSB0YWJsZSBhcyBhbiBhcmd1bWVudCB0byBhIGZ1bmN0aW9uLiBUaGlzCmlzIG5vdCBhdmFpbGFibGUgeWV0IGluIHNxbGFsY2hlbXksIGhvd2V2ZXIgdGhlCjpmdW5jOmBfZXhwcmVzc2lvbi5saXRlcmFsX2NvbHVtbmAgZnVuY3Rpb24gd2l0aCB0aGUgbmFtZSBvZiB0aGUgdGFibGUgbWF5IGJlCnVzZWQgaW4gaXRzIHBsYWNlOjoKCiAgICBzZWxlY3QoWycqJ10pLnNlbGVjdF9mcm9tKGZ1bmMubXlfZnVuY3Rpb24obGl0ZXJhbF9jb2x1bW4oJ215X3RhYmxlJykpKQoKV2lsbCBnZW5lcmF0ZSB0aGUgU1FMOjoKCiAgICBTRUxFQ1QgKgogICAgRlJPTSBteV9mdW5jdGlvbihteV90YWJsZSkKCkFSUkFZIFR5cGVzCi0tLS0tLS0tLS0tCgpUaGUgUG9zdGdyZVNRTCBkaWFsZWN0IHN1cHBvcnRzIGFycmF5cywgYm90aCBhcyBtdWx0aWRpbWVuc2lvbmFsIGNvbHVtbiB0eXBlcwphcyB3ZWxsIGFzIGFycmF5IGxpdGVyYWxzOgoKKiA6Y2xhc3M6YF9wb3N0Z3Jlc3FsLkFSUkFZYCAtIEFSUkFZIGRhdGF0eXBlCgoqIDpjbGFzczpgX3Bvc3RncmVzcWwuYXJyYXlgIC0gYXJyYXkgbGl0ZXJhbAoKKiA6ZnVuYzpgX3Bvc3RncmVzcWwuYXJyYXlfYWdnYCAtIEFSUkFZX0FHRyBTUUwgZnVuY3Rpb24KCiogOmNsYXNzOmBfcG9zdGdyZXNxbC5hZ2dyZWdhdGVfb3JkZXJfYnlgIC0gaGVscGVyIGZvciBQRydzIE9SREVSIEJZIGFnZ3JlZ2F0ZQogIGZ1bmN0aW9uIHN5bnRheC4KCkpTT04gVHlwZXMKLS0tLS0tLS0tLQoKVGhlIFBvc3RncmVTUUwgZGlhbGVjdCBzdXBwb3J0cyBib3RoIEpTT04gYW5kIEpTT05CIGRhdGF0eXBlcywgaW5jbHVkaW5nCnBzeWNvcGcyJ3MgbmF0aXZlIHN1cHBvcnQgYW5kIHN1cHBvcnQgZm9yIGFsbCBvZiBQb3N0Z3JlU1FMJ3Mgc3BlY2lhbApvcGVyYXRvcnM6CgoqIDpjbGFzczpgX3Bvc3RncmVzcWwuSlNPTmAKCiogOmNsYXNzOmBfcG9zdGdyZXNxbC5KU09OQmAKCkhTVE9SRSBUeXBlCi0tLS0tLS0tLS0tCgpUaGUgUG9zdGdyZVNRTCBIU1RPUkUgdHlwZSBhcyB3ZWxsIGFzIGhzdG9yZSBsaXRlcmFscyBhcmUgc3VwcG9ydGVkOgoKKiA6Y2xhc3M6YF9wb3N0Z3Jlc3FsLkhTVE9SRWAgLSBIU1RPUkUgZGF0YXR5cGUKCiogOmNsYXNzOmBfcG9zdGdyZXNxbC5oc3RvcmVgIC0gaHN0b3JlIGxpdGVyYWwKCkVOVU0gVHlwZXMKLS0tLS0tLS0tLQoKUG9zdGdyZVNRTCBoYXMgYW4gaW5kZXBlbmRlbnRseSBjcmVhdGFibGUgVFlQRSBzdHJ1Y3R1cmUgd2hpY2ggaXMgdXNlZAp0byBpbXBsZW1lbnQgYW4gZW51bWVyYXRlZCB0eXBlLiAgIFRoaXMgYXBwcm9hY2ggaW50cm9kdWNlcyBzaWduaWZpY2FudApjb21wbGV4aXR5IG9uIHRoZSBTUUxBbGNoZW15IHNpZGUgaW4gdGVybXMgb2Ygd2hlbiB0aGlzIHR5cGUgc2hvdWxkIGJlCkNSRUFURUQgYW5kIERST1BQRUQuICAgVGhlIHR5cGUgb2JqZWN0IGlzIGFsc28gYW4gaW5kZXBlbmRlbnRseSByZWZsZWN0YWJsZQplbnRpdHkuICAgVGhlIGZvbGxvd2luZyBzZWN0aW9ucyBzaG91bGQgYmUgY29uc3VsdGVkOgoKKiA6Y2xhc3M6YF9wb3N0Z3Jlc3FsLkVOVU1gIC0gRERMIGFuZCB0eXBpbmcgc3VwcG9ydCBmb3IgRU5VTS4KCiogOm1ldGg6YC5QR0luc3BlY3Rvci5nZXRfZW51bXNgIC0gcmV0cmlldmUgYSBsaXN0aW5nIG9mIGN1cnJlbnQgRU5VTSB0eXBlcwoKKiA6bWV0aDpgLnBvc3RncmVzcWwuRU5VTS5jcmVhdGVgICwgOm1ldGg6YC5wb3N0Z3Jlc3FsLkVOVU0uZHJvcGAgLSBpbmRpdmlkdWFsCiAgQ1JFQVRFIGFuZCBEUk9QIGNvbW1hbmRzIGZvciBFTlVNLgoKLi4gX3Bvc3RncmVzcWxfYXJyYXlfb2ZfZW51bToKClVzaW5nIEVOVU0gd2l0aCBBUlJBWQpeXl5eXl5eXl5eXl5eXl5eXl5eXl4KClRoZSBjb21iaW5hdGlvbiBvZiBFTlVNIGFuZCBBUlJBWSBpcyBub3QgZGlyZWN0bHkgc3VwcG9ydGVkIGJ5IGJhY2tlbmQKREJBUElzIGF0IHRoaXMgdGltZS4gICBQcmlvciB0byBTUUxBbGNoZW15IDEuMy4xNywgYSBzcGVjaWFsIHdvcmthcm91bmQKd2FzIG5lZWRlZCBpbiBvcmRlciB0byBhbGxvdyB0aGlzIGNvbWJpbmF0aW9uIHRvIHdvcmssIGRlc2NyaWJlZCBiZWxvdy4KCi4uIHZlcnNpb25jaGFuZ2VkOjogMS4zLjE3IFRoZSBjb21iaW5hdGlvbiBvZiBFTlVNIGFuZCBBUlJBWSBpcyBub3cgZGlyZWN0bHkKICAgaGFuZGxlZCBieSBTUUxBbGNoZW15J3MgaW1wbGVtZW50YXRpb24gd2l0aG91dCBhbnkgd29ya2Fyb3VuZHMgbmVlZGVkLgoKLi4gc291cmNlY29kZTo6IHB5dGhvbgoKICAgIGZyb20gc3FsYWxjaGVteSBpbXBvcnQgVHlwZURlY29yYXRvcgogICAgZnJvbSBzcWxhbGNoZW15LmRpYWxlY3RzLnBvc3RncmVzcWwgaW1wb3J0IEFSUkFZCgogICAgY2xhc3MgQXJyYXlPZkVudW0oVHlwZURlY29yYXRvcik6CiAgICAgICAgaW1wbCA9IEFSUkFZCgogICAgICAgIGRlZiBiaW5kX2V4cHJlc3Npb24oc2VsZiwgYmluZHZhbHVlKToKICAgICAgICAgICAgcmV0dXJuIHNhLmNhc3QoYmluZHZhbHVlLCBzZWxmKQoKICAgICAgICBkZWYgcmVzdWx0X3Byb2Nlc3NvcihzZWxmLCBkaWFsZWN0LCBjb2x0eXBlKToKICAgICAgICAgICAgc3VwZXJfcnAgPSBzdXBlcihBcnJheU9mRW51bSwgc2VsZikucmVzdWx0X3Byb2Nlc3NvcigKICAgICAgICAgICAgICAgIGRpYWxlY3QsIGNvbHR5cGUpCgogICAgICAgICAgICBkZWYgaGFuZGxlX3Jhd19zdHJpbmcodmFsdWUpOgogICAgICAgICAgICAgICAgaW5uZXIgPSByZS5tYXRjaChyIl57KC4qKX0kIiwgdmFsdWUpLmdyb3VwKDEpCiAgICAgICAgICAgICAgICByZXR1cm4gaW5uZXIuc3BsaXQoIiwiKSBpZiBpbm5lciBlbHNlIFtdCgogICAgICAgICAgICBkZWYgcHJvY2Vzcyh2YWx1ZSk6CiAgICAgICAgICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXJfcnAoaGFuZGxlX3Jhd19zdHJpbmcodmFsdWUpKQogICAgICAgICAgICByZXR1cm4gcHJvY2VzcwoKRS5nLjo6CgogICAgVGFibGUoCiAgICAgICAgJ215ZGF0YScsIG1ldGFkYXRhLAogICAgICAgIENvbHVtbignaWQnLCBJbnRlZ2VyLCBwcmltYXJ5X2tleT1UcnVlKSwKICAgICAgICBDb2x1bW4oJ2RhdGEnLCBBcnJheU9mRW51bShFTlVNKCdhJywgJ2IsICdjJywgbmFtZT0nbXllbnVtJykpKQoKICAgICkKClRoaXMgdHlwZSBpcyBub3QgaW5jbHVkZWQgYXMgYSBidWlsdC1pbiB0eXBlIGFzIGl0IHdvdWxkIGJlIGluY29tcGF0aWJsZQp3aXRoIGEgREJBUEkgdGhhdCBzdWRkZW5seSBkZWNpZGVzIHRvIHN1cHBvcnQgQVJSQVkgb2YgRU5VTSBkaXJlY3RseSBpbgphIG5ldyB2ZXJzaW9uLgoKLi4gX3Bvc3RncmVzcWxfYXJyYXlfb2ZfanNvbjoKClVzaW5nIEpTT04vSlNPTkIgd2l0aCBBUlJBWQpeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KClNpbWlsYXIgdG8gdXNpbmcgRU5VTSwgcHJpb3IgdG8gU1FMQWxjaGVteSAxLjMuMTcsIGZvciBhbiBBUlJBWSBvZiBKU09OL0pTT05CCndlIG5lZWQgdG8gcmVuZGVyIHRoZSBhcHByb3ByaWF0ZSBDQVNULiAgIEN1cnJlbnQgcHN5Y29wZzIgZHJpdmVycyBhY2NvbW9kYXRlCnRoZSByZXN1bHQgc2V0IGNvcnJlY3RseSB3aXRob3V0IGFueSBzcGVjaWFsIHN0ZXBzLgoKLi4gdmVyc2lvbmNoYW5nZWQ6OiAxLjMuMTcgVGhlIGNvbWJpbmF0aW9uIG9mIEpTT04vSlNPTkIgYW5kIEFSUkFZIGlzIG5vdwogICBkaXJlY3RseSBoYW5kbGVkIGJ5IFNRTEFsY2hlbXkncyBpbXBsZW1lbnRhdGlvbiB3aXRob3V0IGFueSB3b3JrYXJvdW5kcwogICBuZWVkZWQuCgouLiBzb3VyY2Vjb2RlOjogcHl0aG9uCgogICAgY2xhc3MgQ2FzdGluZ0FycmF5KEFSUkFZKToKICAgICAgICBkZWYgYmluZF9leHByZXNzaW9uKHNlbGYsIGJpbmR2YWx1ZSk6CiAgICAgICAgICAgIHJldHVybiBzYS5jYXN0KGJpbmR2YWx1ZSwgc2VsZikKCkUuZy46OgoKICAgIFRhYmxlKAogICAgICAgICdteWRhdGEnLCBtZXRhZGF0YSwKICAgICAgICBDb2x1bW4oJ2lkJywgSW50ZWdlciwgcHJpbWFyeV9rZXk9VHJ1ZSksCiAgICAgICAgQ29sdW1uKCdkYXRhJywgQ2FzdGluZ0FycmF5KEpTT05CKSkKICAgICkKCgrpAAAAACkB2gtkZWZhdWx0ZGljdE7pAQAAACkB2gVhcnJheSkB2gZoc3RvcmUpAdoEanNvbikB2gZyYW5nZXPpAwAAACkB2gNleGOpAdoGc2NoZW1hKQHaA3NxbCkB2gR1dGlsKQHaB2RlZmF1bHQpAdoKcmVmbGVjdGlvbikB2ghjb21waWxlcikB2ghlbGVtZW50cykB2gpleHByZXNzaW9uKQHaCHNxbHR5cGVzKQHaB0RETEJhc2UpAdoGQklHSU5UKQHaB0JPT0xFQU4pAdoEQ0hBUikB2gREQVRFKQHaBUZMT0FUKQHaB0lOVEVHRVIpAdoHTlVNRVJJQykB2gRSRUFMKQHaCFNNQUxMSU5UKQHaBFRFWFQpAdoHVkFSQ0hBUikB2gRVVUlEeiBeKD86YnRyZWV8aGFzaHxnaXN0fGdpbnxbXHdfXSspJHpzXHMqKD86VVBEQVRFfElOU0VSVHxDUkVBVEV8REVMRVRFfERST1B8QUxURVJ8R1JBTlR8UkVWT0tFfElNUE9SVCBGT1JFSUdOIFNDSEVNQXxSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXfFRSVU5DQVRFKSlm2gNhbGzaB2FuYWx5c2XaB2FuYWx5emXaA2FuZNoDYW55cgUAAADaAmFz2gNhc2PaCmFzeW1tZXRyaWPaBGJvdGjaBGNhc2XaBGNhc3TaBWNoZWNr2gdjb2xsYXRl2gZjb2x1bW7aCmNvbnN0cmFpbnTaBmNyZWF0ZdoPY3VycmVudF9jYXRhbG9n2gxjdXJyZW50X2RhdGXaDGN1cnJlbnRfcm9sZdoMY3VycmVudF90aW1l2hFjdXJyZW50X3RpbWVzdGFtcNoMY3VycmVudF91c2Vycg8AAADaCmRlZmVycmFibGXaBGRlc2PaCGRpc3RpbmN02gJkb9oEZWxzZdoDZW5k2gZleGNlcHTaBWZhbHNl2gVmZXRjaNoDZm9y2gdmb3JlaWdu2gRmcm9t2gVncmFudNoFZ3JvdXDaBmhhdmluZ9oCaW7aCWluaXRpYWxsedoJaW50ZXJzZWN02gRpbnRv2gdsZWFkaW5n2gVsaW1pdNoJbG9jYWx0aW1l2g5sb2NhbHRpbWVzdGFtcNoDbmV32gNub3TaBG51bGzaAm9m2gNvZmbaBm9mZnNldNoDb2xk2gJvbtoEb25sedoCb3LaBW9yZGVy2gdwbGFjaW5n2gdwcmltYXJ52gpyZWZlcmVuY2Vz2glyZXR1cm5pbmfaBnNlbGVjdNoMc2Vzc2lvbl91c2Vy2gRzb21l2glzeW1tZXRyaWPaBXRhYmxl2gR0aGVu2gJ0b9oIdHJhaWxpbmfaBHRydWXaBXVuaW9u2gZ1bmlxdWXaBHVzZXLaBXVzaW5n2gh2YXJpYWRpY9oEd2hlbtoFd2hlcmXaBndpbmRvd9oEd2l0aNoNYXV0aG9yaXphdGlvbtoHYmV0d2VlbtoGYmluYXJ52gVjcm9zc9oOY3VycmVudF9zY2hlbWHaBmZyZWV6ZdoEZnVsbNoFaWxpa2XaBWlubmVy2gJpc9oGaXNudWxs2gRqb2lu2gRsZWZ02gRsaWtl2gduYXR1cmFs2gdub3RudWxs2gVvdXRlctoEb3ZlctoIb3ZlcmxhcHPaBXJpZ2h02gdzaW1pbGFy2gd2ZXJib3NlKQJpzwQAAGmkBgAAKQRpvAIAAGm9AgAAaf0DAABp/gMAACkH6RQAAADpFQAAAOkXAAAA6RoAAABp7QMAAGnvAwAAafgDAABjAAAAAAAAAAAAAAAAAQAAAAAAAADzEgAAAJcAZQBaAWQAWgJkAFoDZAFTACkC2gVCWVRFQU6pBNoIX19uYW1lX1/aCl9fbW9kdWxlX1/aDF9fcXVhbG5hbWVfX9oOX192aXNpdF9uYW1lX1+pAPMAAAAA+ncvYnVpbGRkaXIvYnVpbGQvQlVJTEQvY2xvdWRsaW51eC12ZW52LTEuMC4xMS92ZW52L2xpYjY0L3B5dGhvbjMuMTEvc2l0ZS1wYWNrYWdlcy9zcWxhbGNoZW15L2RpYWxlY3RzL3Bvc3RncmVzcWwvYmFzZS5weXKLAAAAcosAAACQBAAAcxMAAACAAIAAgACAAIAA2BUcgE6AToBOcpIAAAByiwAAAGMAAAAAAAAAAAAAAAABAAAAAAAAAPMSAAAAlwBlAFoBZABaAmQAWgNkAVMAKQLaEERPVUJMRV9QUkVDSVNJT05OcowAAABykQAAAHKSAAAAcpMAAABylQAAAHKVAAAAlAQAAPMTAAAAgACAAIAAgACAANgVJ4BOgE6ATnKSAAAAcpUAAABjAAAAAAAAAAAAAAAAAQAAAAAAAADzEgAAAJcAZQBaAWQAWgJkAFoDZAFTACkC2gRJTkVUTnKMAAAAcpEAAABykgAAAHKTAAAAcpgAAABymAAAAJgEAADzEwAAAIAAgACAAIAAgADYFRuAToBOgE5ykgAAAHKYAAAAYwAAAAAAAAAAAAAAAAEAAAAAAAAA8xIAAACXAGUAWgFkAFoCZABaA2QBUwApAtoEQ0lEUk5yjAAAAHKRAAAAcpIAAABykwAAAHKbAAAAcpsAAACfBAAAcpkAAABykgAAAHKbAAAAYwAAAAAAAAAAAAAAAAEAAAAAAAAA8xIAAACXAGUAWgFkAFoCZABaA2QBUwApAtoHTUFDQUREUk5yjAAAAHKRAAAAcpIAAABykwAAAHKdAAAAcp0AAACmBAAAcxMAAACAAIAAgACAAIAA2BUegE6AToBOcpIAAABynQAAAGMAAAAAAAAAAAAAAAABAAAAAAAAAPMWAAAAlwBlAFoBZABaAmQBWgNkAFoEZAJTACkD2gVNT05FWWHnBAAAUHJvdmlkZSB0aGUgUG9zdGdyZVNRTCBNT05FWSB0eXBlLgoKICAgIERlcGVuZGluZyBvbiBkcml2ZXIsIHJlc3VsdCByb3dzIHVzaW5nIHRoaXMgdHlwZSBtYXkgcmV0dXJuIGEKICAgIHN0cmluZyB2YWx1ZSB3aGljaCBpbmNsdWRlcyBjdXJyZW5jeSBzeW1ib2xzLgoKICAgIEZvciB0aGlzIHJlYXNvbiwgaXQgbWF5IGJlIHByZWZlcmFibGUgdG8gcHJvdmlkZSBjb252ZXJzaW9uIHRvIGEKICAgIG51bWVyaWNhbGx5LWJhc2VkIGN1cnJlbmN5IGRhdGF0eXBlIHVzaW5nIDpjbGFzczpgX3R5cGVzLlR5cGVEZWNvcmF0b3JgOjoKCiAgICAgICAgaW1wb3J0IHJlCiAgICAgICAgaW1wb3J0IGRlY2ltYWwKICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IFR5cGVEZWNvcmF0b3IKCiAgICAgICAgY2xhc3MgTnVtZXJpY01vbmV5KFR5cGVEZWNvcmF0b3IpOgogICAgICAgICAgICBpbXBsID0gTU9ORVkKCiAgICAgICAgICAgIGRlZiBwcm9jZXNzX3Jlc3VsdF92YWx1ZShzZWxmLCB2YWx1ZTogQW55LCBkaWFsZWN0OiBBbnkpIC0+IE5vbmU6CiAgICAgICAgICAgICAgICBpZiB2YWx1ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICAgICAjIGFkanVzdCB0aGlzIGZvciB0aGUgY3VycmVuY3kgYW5kIG51bWVyaWMKICAgICAgICAgICAgICAgICAgICBtID0gcmUubWF0Y2gociJcJChbXGQuXSspIiwgdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgaWYgbToKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkZWNpbWFsLkRlY2ltYWwobS5ncm91cCgxKSkKICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZQoKICAgIEFsdGVybmF0aXZlbHksIHRoZSBjb252ZXJzaW9uIG1heSBiZSBhcHBsaWVkIGFzIGEgQ0FTVCB1c2luZwogICAgdGhlIDptZXRoOmBfdHlwZXMuVHlwZURlY29yYXRvci5jb2x1bW5fZXhwcmVzc2lvbmAgbWV0aG9kIGFzIGZvbGxvd3M6OgoKICAgICAgICBpbXBvcnQgZGVjaW1hbAogICAgICAgIGZyb20gc3FsYWxjaGVteSBpbXBvcnQgY2FzdAogICAgICAgIGZyb20gc3FsYWxjaGVteSBpbXBvcnQgVHlwZURlY29yYXRvcgoKICAgICAg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c3RncmVzcWwuRU5VTWAKICAgIHR5cGUgYXMgdGhlIGltcGxlbWVudGF0aW9uLCBzbyB0aGUgc3BlY2lhbCBjcmVhdGUvZHJvcCBydWxlcwogICAgd2lsbCBiZSB1c2VkLgoKICAgIFRoZSBjcmVhdGUvZHJvcCBiZWhhdmlvciBvZiBFTlVNIGlzIG5lY2Vzc2FyaWx5IGludHJpY2F0ZSwgZHVlIHRvIHRoZQogICAgYXdrd2FyZCByZWxhdGlvbnNoaXAgdGhlIEVOVU0gdHlwZSBoYXMgaW4gcmVsYXRpb25zaGlwIHRvIHRoZQogICAgcGFyZW50IHRhYmxlLCBpbiB0aGF0IGl0IG1heSBiZSAib3duZWQiIGJ5IGp1c3QgYSBzaW5nbGUgdGFibGUsIG9yCiAgICBtYXkgYmUgc2hhcmVkIGFtb25nIG1hbnkgdGFibGVzLgoKICAgIFdoZW4gdXNpbmcgOmNsYXNzOmBfdHlwZXMuRW51bWAgb3IgOmNsYXNzOmBfcG9zdGdyZXNxbC5FTlVNYAogICAgaW4gYW4gImlubGluZSIgZmFzaGlvbiwgdGhlIGBgQ1JFQVRFIFRZUEVgYCBhbmQgYGBEUk9QIFRZUEVgYCBpcyBlbWl0dGVkCiAgICBjb3JyZXNwb25kaW5nIHRvIHdoZW4gdGhlIDptZXRoOmBfc2NoZW1hLlRhYmxlLmNyZWF0ZWAgYW5kCiAgICA6bWV0aDpgX3NjaGVtYS5UYWJsZS5kcm9wYAogICAgbWV0aG9kcyBhcmUgY2FsbGVkOjoKCiAgICAgICAgdGFibGUgPSBUYWJsZSgnc29tZXRhYmxlJywgbWV0YWRhdGEsCiAgICAgICAgICAgIENvbHVtbignc29tZV9lbnVtJywgRU5VTSgnYScsICdiJywgJ2MnLCBuYW1lPSdteWVudW0nKSkKICAgICAgICApCgogICAgICAgIHRhYmxlLmNyZWF0ZShlbmdpbmUpICAjIHdpbGwgZW1pdCBDUkVBVEUgRU5VTSBhbmQgQ1JFQVRFIFRBQkxFCiAgICAgICAgdGFibGUuZHJvcChlbmdpbmUpICAjIHdpbGwgZW1pdCBEUk9QIFRBQkxFIGFuZCBEUk9QIEVOVU0KCiAgICBUbyB1c2UgYSBjb21tb24gZW51bWVyYXRlZCB0eXBlIGJldHdlZW4gbXVsdGlwbGUgdGFibGVzLCB0aGUgYmVzdAogICAgcHJhY3RpY2UgaXMgdG8gZGVjbGFyZSB0aGUgOmNsYXNzOmBfdHlwZXMuRW51bWAgb3IKICAgIDpjbGFzczpgX3Bvc3RncmVzcWwuRU5VTWAgaW5kZXBlbmRlbnRseSwgYW5kIGFzc29jaWF0ZSBpdCB3aXRoIHRoZQogICAgOmNsYXNzOmBfc2NoZW1hLk1ldGFEYXRhYCBvYmplY3QgaXRzZWxmOjoKCiAgICAgICAgbXlfZW51bSA9IEVOVU0oJ2EnLCAnYicsICdjJywgbmFtZT0nbXllbnVtJywgbWV0YWRhdGE9bWV0YWRhdGEpCgogICAgICAgIHQxID0gVGFibGUoJ3NvbWV0YWJsZV9vbmUnLCBtZXRhZGF0YSwKICAgICAgICAgICAgQ29sdW1uKCdzb21lX2VudW0nLCBteWVudW0pCiAgICAgICAgKQoKICAgICAgICB0MiA9IFRhYmxlKCdzb21ldGFibGVfdHdvJywgbWV0YWRhdGEsCiAgICAgICAgICAgIENvbHVtbignc29tZV9lbnVtJywgbXllbnVtKQogICAgICAgICkKCiAgICBXaGVuIHRoaXMgcGF0dGVybiBpcyB1c2VkLCBjYXJlIG11c3Qgc3RpbGwgYmUgdGFrZW4gYXQgdGhlIGxldmVsCiAgICBvZiBpbmRpdmlkdWFsIHRhYmxlIGNyZWF0ZXMuICBFbWl0dGluZyBDUkVBVEUgVEFCTEUgd2l0aG91dCBhbHNvCiAgICBzcGVjaWZ5aW5nIGBgY2hlY2tmaXJzdD1UcnVlYGAgd2lsbCBzdGlsbCBjYXVzZSBpc3N1ZXM6OgoKICAgICAgICB0MS5jcmVhdGUoZW5naW5lKSAjIHdpbGwgZmFpbDogbm8gc3VjaCB0eXBlICdteWVudW0nCgogICAgSWYgd2Ugc3BlY2lmeSBgYGNoZWNrZmlyc3Q9VHJ1ZWBgLCB0aGUgaW5kaXZpZHVhbCB0YWJsZS1sZXZlbCBjcmVhdGUKICAgIG9wZXJhdGlvbiB3aWxsIGNoZWNrIGZvciB0aGUgYGBFTlVNYGAgYW5kIGNyZWF0ZSBpZiBub3QgZXhpc3RzOjoKCiAgICAgICAgIyB3aWxsIGNoZWNrIGlmIGVudW0gZXhpc3RzLCBhbmQgZW1pdCBDUkVBVEUgVFlQRSBpZiBub3QKICAgICAgICB0MS5jcmVhdGUoZW5naW5lLCBjaGVja2ZpcnN0PVRydWUpCgogICAgV2hlbiB1c2luZyBhIG1ldGFkYXRhLWxldmVsIEVOVU0gdHlwZSwgdGhlIHR5cGUgd2lsbCBhbHdheXMgYmUgY3JlYXRlZAogICAgYW5kIGRyb3BwZWQgaWYgZWl0aGVyIHRoZSBtZXRhZGF0YS13aWRlIGNyZWF0ZS9kcm9wIGlzIGNhbGxlZDo6CgogICAgICAgIG1ldGFkYXRhLmNyZWF0ZV9hbGwoZW5naW5lKSAgIyB3aWxsIGVtaXQgQ1JFQVRFIFRZUEUKICAgICAgICBtZXRhZGF0YS5kcm9wX2FsbChlbmdpbmUpICAjIHdpbGwgZW1pdCBEUk9QIFRZUEUKCiAgICBUaGUgdHlwZSBjYW4gYWxzbyBiZSBjcmVhdGVkIGFuZCBkcm9wcGVkIGRpcmVjdGx5OjoKCiAgICAgICAgbXlfZW51bS5jcmVhdGUoZW5naW5lKQogICAgICAgIG15X2VudW0uZHJvcChlbmdpbmUpCgogICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAxLjAuMCBUaGUgUG9zdGdyZVNRTCA6Y2xhc3M6YF9wb3N0Z3Jlc3FsLkVOVU1gIHR5cGUKICAgICAgIG5vdyBiZWhhdmVzIG1vcmUgc3RyaWN0bHkgd2l0aCByZWdhcmRzIHRvIENSRUFURS9EUk9QLiAgQSBtZXRhZGF0YS1sZXZlbAogICAgICAgRU5VTSB0eXBlIHdpbGwgb25seSBiZSBjcmVhdGVkIGFuZCBkcm9wcGVkIGF0IHRoZSBtZXRhZGF0YSBsZXZlbCwKICAgICAgIG5vdCB0aGUgdGFibGUgbGV2ZWwsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZgogICAgICAgYGB0YWJsZS5jcmVhdGUoY2hlY2tmaXJzdD1UcnVlKWBgLgogICAgICAgVGhlIGBgdGFibGUuZHJvcCgpYGAgY2FsbCB3aWxsIG5vdyBlbWl0IGEgRFJPUCBUWVBFIGZvciBhIHRhYmxlLWxldmVsCiAgICAgICBlbnVtZXJhdGVkIHR5cGUuCgog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YXR0bmFtZQogICAgICAgICAgICAgICAgRlJPTQogICAgICAgICAgICAgICAgICAgIHBnX2NsYXNzIHQKICAgICAgICAgICAgICAgICAgICBqb2luIHBnX2luZGV4IGl4IG9uIHQub2lkID0gaXguaW5kcmVsaWQKICAgICAgICAgICAgICAgICAgICBqb2luIHBnX2F0dHJpYnV0ZSBhCiAgICAgICAgICAgICAgICAgICAgICAgIG9uIHQub2lkPWEuYXR0cmVsaWQgQU5EICVzCiAgICAgICAgICAgICAgICAgV0hFUkUKICAgICAgICAgICAgICAgICAgdC5vaWQgPSA6dGFibGVfb2lkIGFuZCBpeC5pbmRpc3ByaW1hcnkgPSAndCcKICAgICAgICAgICAgICAgIE9SREVSIEJZIGEuYXR0bnVtCiAgICAgICAgICAgIPoIYS5hdHRudW36CWl4LmluZGtleWG1AQAACiAgICAgICAgICAgICAgICBTRUxFQ1QgYS5hdHRuYW1lCiAgICAgICAgICAgICAgICBGUk9NIHBnX2F0dHJpYnV0ZSBhIEpPSU4gKAogICAgICAgICAgICAgICAgICAgIFNFTEVDVCB1bm5lc3QoaXguaW5ka2V5KSBhdHRudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlX3N1YnNjcmlwdHMoaXguaW5ka2V5LCAxKSBvcmQKICAgICAgICAgICAgICAgICAgICBGUk9NIHBnX2luZGV4IGl4CiAgICAgICAgICAgICAgICAgICAgV0hFUkUgaXguaW5kcmVsaWQgPSA6dGFibGVfb2lkIEFORCBpeC5pbmRpc3ByaW1hcnkKICAgICAgICAgICAgICAgICAgICApIGsgT04gYS5hdHRudW09ay5hdHRudW0KICAgICAgICAgICAgICAgIFdIRVJFIGEuYXR0cmVsaWQgPSA6dGFibGVfb2lkCiAgICAgICAgICAgICAgICBPUkRFUiBCWSBrLm9yZAogICAgICAgICAgICCpAXKZAwAAcpoDAABjAQAAAAAAAAAAAAAABAAAABMAAADzHgAAAJcAZwB8AF0KfQF8AWQAGQAAAAAAAAAAAJECjAtTAHJVAwAAcpEAAAApAnKUAQAA2gFycwIAAAAg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AACrAAAAAAAAAAAARACmAAAAqwAAAAAAAAAAAKYBAACrAQAAAAAAAAAAfCFkMDwAAABkKokidgByH4kiZCoZAAAAAAAAAAAAfCGgFAAAAAAAAAAAAAAAAAAAAAAAAAAAZDFpAKYCAACrAgAAAAAAAAAAZDI8AAAAZCyJInYAch+JImQsGQAAAAAAAAAAAHwhoBQAAAAAAAAAAAAAAAAAAAAAAAAAAGQxaQCmAgAAqwIAAAAAAAAAAGQzPAAAAHwfoBUAAAAAAAAAAAAAAAAAAAAAAAAAAHwhpgEAAKsBAAAAAAAAAAABAIzIfB9TACk0TnLqAgAAcukCAAApAnImAwAA6QUAAAB6rwogICAgICAgICAgICAgIFNFTEVDVAogICAgICAgICAgICAgICAgICBpLnJlbG5hbWUgYXMgcmVsbmFtZSwKICAgICAgICAgICAgICAgICAgaXguaW5kaXN1bmlxdWUsIGl4LmluZGV4cHJzLCBpeC5pbmRwcmVkLAogICAgICAgICAgICAgICAgICBhLmF0dG5hbWUsIGEuYXR0bnVtLCBOVUxMLCBpeC5pbmRrZXlyKAMAAHoJOjp2YXJjaGFycooBAAB6FCwKICAgICAgICAgICAgICAgICAgehVpeC5pbmRvcHRpb246OnZhcmNoYXLaBE5VTExygAEAAHIlAwAAegxpLnJlbG9wdGlvbnNhbQEAACwgYW0uYW1uYW1lLAogICAgICAgICAgICAgICAgICBOVUxMIGFzIGluZG5rZXlhdHRzCiAgICAgICAgICAgICAgRlJPTQogICAgICAgICAgICAgICAgICBwZ19jbGFzcyB0CiAgICAgICAgICAgICAgICAgICAgICAgIGpvaW4gcGdfaW5kZXggaXggb24gdC5vaWQgPSBpeC5pbmRyZWxpZAogICAgICAgICAgICAgICAgICAgICAgICBqb2luIHBnX2NsYXNzIGkgb24gaS5vaWQgPSBpeC5pbmRleHJlbGlkCiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgb3V0ZXIgam9pbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfYXR0cmlidXRlIGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uIHQub2lkID0gYS5hdHRyZWxpZCBhbmQgcsgDAAByyQMAAGF3AQAACiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgb3V0ZXIgam9pbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfYW0gYW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uIGkucmVsYW0gPSBhbS5vaWQKICAgICAgICAgICAgICBXSEVSRQogICAgICAgICAgICAgICAgICB0LnJlbGtpbmQgSU4gKCdyJywgJ3YnLCAnZicsICdtJykKICAgICAgICAgICAgICAgICAgYW5kIHQub2lkID0gOnRhYmxlX29pZAogICAgICAgICAgICAgICAgICBhbmQgaXguaW5kaXNwcmltYXJ5ID0gJ2YnCiAgICAgICAgICAgICAgT1JERVIgQlkKICAgICAgICAgICAgICAgICAgdC5yZWxuYW1lLAogICAgICAgICAgICAgICAgICBpLnJlbG5hbWUKICAgICAgICAgICAgYRQBAAAKICAgICAgICAgICAgICBTRUxFQ1QKICAgICAgICAgICAgICAgICAgaS5yZWxuYW1lIGFzIHJlbG5hbWUsCiAgICAgICAgICAgICAgICAgIGl4LmluZGlzdW5pcXVlLCBpeC5pbmRleHBycywgaXguaW5kcHJlZCwKICAgICAgICAgICAgICAgICAgYS5hdHRuYW1lLCBhLmF0dG51bSwgYy5jb25yZWxpZCwgaXguaW5ka2V5Ojp2YXJjaGFyLAogICAgICAgICAgICAgICAgICBpeC5pbmRvcHRpb246OnZhcmNoYXIsIGkucmVsb3B0aW9ucywgYW0uYW1uYW1lLAogICAgICAgICAgICAgICAgICApAukLAAAAcgIAAAB6Dml4LmluZG5rZXlhdHRzYe0DAAAgYXMgaW5kbmtleWF0dHMKICAgICAgICAgICAgICBGUk9NCiAgICAgICAgICAgICAgICAgIHBnX2NsYXNzIHQKICAgICAgICAgICAgICAgICAgICAgICAgam9pbiBwZ19pbmRleCBpeCBvbiB0Lm9pZCA9IGl4LmluZHJlbGlkCiAgICAgICAgICAgICAgICAgICAgICAgIGpvaW4gcGdfY2xhc3MgaSBvbiBpLm9pZCA9IGl4LmluZGV4cmVsaWQKICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCBvdXRlciBqb2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19hdHRyaWJ1dGUgYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb24gdC5vaWQgPSBhLmF0dHJlbGlkIGFuZCBhLmF0dG51bSA9IEFOWShpeC5pbmRrZXkpCiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgb3V0ZXIgam9pbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfY29uc3RyYWludCBjCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbiAoaXguaW5kcmVsaWQgPSBjLmNvbnJlbGlkIGFuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl4LmluZGV4cmVsaWQgPSBjLmNvbmluZGlkIGFuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuY29udHlwZSBpbiAoJ3AnLCAndScsICd4JykpCiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgb3V0ZXIgam9pbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfYW0gYW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uIGkucmVsYW0gPSBhbS5vaWQKICAgICAgICAgICAgICBXSEVSRQogICAgICAgICAgICAgICAgICB0LnJlbGtpbmQgSU4gKCdyJywgJ3YnLCAnZicsICdtJywgJ3AnKQogICAgICAgICAgICAgICAgICBhbmQgdC5vaWQgPSA6dGFibGVfb2lkCiAgICAgICAgICAgICAgICAgIGFuZCBpeC5pbmRpc3ByaW1hcnkgPSAnZicKICAgICAgICAgICAgICBPUkRFUiBCWQogICAgICAgICAgICAgICAgICB0LnJlbG5hbWUsCiAgICAgICAgICAgICAgICAgIGkucmVsbmFtZQogICAgICAgICAgICApAnKBAwAAcpkDAABymgMAAGMAAAAAAAAAAAAAAAADAAAAEwAAAPMqAAAAlwB0AQAAAAAAAAAAAAB0AgAAAAAAAAAAAACmAQAAqwEAAAAAAAAAAFMA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2gVGbG9hdHKVAAAA2gpUeXBlRW5naW5lcpgAAADaBlBHSW5ldHKbAAAA2gZQR0NpZHJynQAAANoJUEdNYWNBZGRycp8AAAByowAAAHKlAAAAcqcAAABytwAAANoRTmF0aXZlRm9yRW11bGF0ZWTaEV9BYnN0cmFjdEludGVydmFscroAAADaClBHSW50ZXJ2YWxy0QAAANoFUEdCaXTaBlBHVXVpZHLrAAAAcjYCAABy7QAAAHI0AgAAcsYAAABycAEAANoMSlNPTlBhdGhUeXBlci0DAABymgIAAHKfAgAAcqICAABypgIAAHKpAgAAcqwCAAByrwIAAHKyAgAA2gZTdHJpbmdyugMAANoLU1FMQ29tcGlsZXJyYAEAANoLRERMQ29tcGlsZXJyHQIAANoTR2VuZXJpY1R5cGVDb21waWxlcnJ+AgAA2hJJZGVudGlmaWVyUHJlcGFyZXJy1wIAAHLmAgAAcuQCAADaD19DcmVhdGVEcm9wQmFzZXIXAQAAciABAADaF0RlZmF1bHRFeGVjdXRpb25Db250ZXh0cgEDAAByHgMAAHIYAwAAcpEAAABykgAAAHKTAAAA+gg8bW9kdWxlPnJsBAAAAQAAAHOoCQAA8AMBAQHwEGgPAQTwAGgPAQTwUh8AASTQACPQACPQACPQACPQACPYABXQABXQABXQABXYAAmACYAJgAngAB3QAB3QAB3QAB3QAB3QAB3YAB/QAB/QAB/QAB/QAB/QAB/YABvQABvQABvQABvQABvQABvYAB/QAB/QAB/QAB/QAB/QAB/YABPQABPQABPQABPQABPQABPYABbQABbQABbQABbQABbQABbYABPQABPQABPQABPQABPQABPYABTQABTQABTQABTQABTQABTYAB3QAB3QAB3QAB3QAB3QAB3YACDQACDQACDQACDQACDQACDYABvQABvQABvQABvQABvQABvYABvQABvQABvQABvQABvQABvYAB3QAB3QAB3QAB3QAB3QAB3YABvQABvQABvQABvQABvQABvYACPQACPQACPQACPQACPQACPYAB7QAB7QAB7QAB7QAB7QAB7YABvQABvQABvQABvQABvQABvYABzQABzQABzQABzQABzQABzYABnQABnQABnQABnQABnQABnYABnQABnQABnQABnQABnQABnYABrQABrQABrQABrQABrQABrYABzQABzQABzQABzQABzQABzYABzQABzQABzQABzQABzQABzYABnQABnQABnQABnQABnQABnYAB3QAB3QAB3QAB3QAB3QAB3YABnQABnQABnQABnQABnQABnYABzQABzQABzQABzQABzQABzwBgMBGNgEKdAEKdAEKdAEKdAEKdAEKdAEKfjYBxLwAAEBGPAAAQEY8AABARjYExeATIBMgEzwAwEBGPj4+PAIAA0XiEKMStAXOrhCvETRDEHUDEGACeAUHpBClErwAgEFQAHgBAaERIgyjDrRBBXxBwQVAvQABBUC0AAR8AwAEhWQE/ACZwEFBvAAZwEFBvAAZwEFBvEDaQESAvQAaQESAoAO8FYDABIegA7YDyWADNgNL4AK8AYBAR3wAAEBHfAAAQEd8AABAR3wAAEBHYhI1Awg8QABAR30AAEBHfAAAQEd8AgBASjwAAEBKPAAAQEo8AABASjwAAEBKJB4lH7xAAEBKPQAAQEo8AABASjwCAEBHPAAAQEc8AABARzwAAEBHPAAAQEciDjUCx7xAAEBHPQAAQEc8AABARzwCAAKDoAG8AYBARzwAAEBHPAAAQEc8AABARzwAAEBHIg41Ase8QABARz0AAEBHPAAAQEc8AgACg6ABvAGAQEf8AABAR/wAAEBH/AAAQEf8AABAR+IaNQOIfEAAQEf9AABAR/wAAEBH/AIAA0UgAnwBioBHfAAKgEd8AAqAR3wACoBHfAAKgEdiEjUDB/xACoBHfQAKgEd8AAqAR3wWgEIARvwAAgBG/AACAEb8AAIARvwAAgBG4go1Aod8QAIARv0AAgBG/AACAEb8BYIASDwAAgBIPAACAEg8AAIASDwAAgBIIh41A8i8QAIASD0AAgBIPAACAEg8BYDASPwAAMBI/AAAwEj8AADASPwAAMBI5AI1BAi8QADASP0AAMBI/AAAwEj8AwDASPwAAMBI/AAAwEj8AADASPwAAMBI4g4jD3xAAMBI/QAAwEj8AADASPwDCQBHPAAJAEc8AAkARzwACQBHPAAJAEciHjUDymoONQrRfEAJAEc9AAkARzwACQBHPBOAQAOFoAK8AYKAR/wAAoBH/AACgEf8AAKAR/wAAoBH4go1Aod8QAKAR/0AAoBH/AACgEf8BoACQyABfAGNQEY8AA1ARjwADUBGPAANQEY8AA1ARiIONQLHvEANQEY9AA1ARjwADUBGPBwAQAKDoAG8AYQASDwABABIPAAEAEg8AAQASDwABABIIh41A8i8QAQASD0ABABIPAAEAEg8CZBBAE48ABBBAE48ABBBAE48ABBBAE48ABBBAE4iDjUCyWgeKR98QBBBAE49ABBBAE48ABBBAE48EoIAAUNhE6QRpRM2AQM1AQVkHjYBAyETZA02AQMhE3UBB6gBdQgMtgEDIRNkDWUOvALBgwCgAjwECsRAtgEDIhmjGzwAysRAuAEDIhnjG7wBSsRAvAGAAULiEWMSvAHKxEC8AgABQyIVYxb8AkrEQLwCgAFEJAX1BEi8AsrEQLwDAAFEJAX1BEi8A0rEQLwDgAFD5AH1BAg8A8rEQLwEAAFEJAX1BEi8BErEQLwEgAFDoh3jH/wEysRAvAUAAUQkBfUESLwFSsRAvAWAAUOiHfwFysRAvAYAAUNiGbwGSsRAvAaAAUPkAjwGysRAvAcAAUYmBfwHSsRAvAeAAUQkBTwHysRAvAgAAUNiGiMb/AhKxEC8CIABQuISIxP8CMrEQLwACsRAvAkAAULiETwJSsRAvAmAAUOiHfwJysRAvAoAAUMiFXwKSsRAvAqAAULiETwKysRAvAsAAULiETwLSsRAvAuAAULiETwLysRAvAwAAULiETwMSsRAvAyAAUKiDPwMysRAvA0AAUSkDPwNSsRAvA2AAUOiHfwNysRAvA4AAUMiFXwOSsRAvA6AAUKiDPwOysRAvA8AAUPkAjwPSsRAvA+AAUX0Bgo8D8rEQLwQAEABRCQGfBBASsRAvBCAQAFH6AJ8EMBKxEC8EQBAAUioDnwRQErEQLwACsRAvBGAQAcINgeItgMENgMENgNEtgPFtgQGNgQGPBVASsRAvAAKxEC8AArEQKADfBcAXUEAQrwAHUEAQrwAHUEAQrwAHUEAQrwAHUEAQqQGNQRJfEAdQQBCvQAdQQBCvAAdQQBCvBwCXIDAQrwAHIDAQrwAHIDAQrwAHIDAQrwAHIDAQqQSNQUKPEAcgMBCvQAcgMBCvAAcgMBCvBqB0UCAQrwAEUCAQrwAEUCAQrwAEUCAQrwAEUCAQqQWNQVMfEARQIBCvQARQIBCvAARQIBCvBQBBgBFPAAGAEU8AAYARTwABgBFPAAGAEUmDjUGzbxABgBFPQAGAEU8AAYARTwNj4BCvAAPgEK8AA+AQrwAD4BCvAAPgEKkCrUEibxAD4BCvQAPgEK8AA+AQrwQgIBASjwAAEBKPAAAQEo8AABASjwAAEBKJBW1BUr8QABASj0AAEBKPAAAQEo8AgBASbwAAEBJvAAAQEm8AABASbwAAEBJpA21BMp8QABASb0AAEBJvAAAQEm8Ag5ATLwADkBMvAAOQEy8AA5ATLwADkBMpgX1Bk48QA5ATL0ADkBMvAAOQEy8HgBdBMBF/AAdBMBF/AAdBMBF/AAdBMBF/AAdBMBF5AH1BAm8QB0EwEX9AB0EwEX8AB0EwEX8AB0EwEX8AB0EwEXcxIAAADCNAZCOwDCOwdDBQPDBAFDBQM=
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
array.cpython-311.pyc
15.09 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
base.cpython-311.pyc
150.55 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
dml.cpython-311.pyc
8.84 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ext.cpython-311.pyc
9.76 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
hstore.cpython-311.pyc
17.15 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
json.cpython-311.pyc
12.65 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pg8000.cpython-311.pyc
15.53 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
provision.cpython-311.pyc
3.29 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
psycopg2.cpython-311.pyc
41.41 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
psycopg2cffi.cpython-311.pyc
2.15 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pygresql.cpython-311.pyc
12.90 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pypostgresql.cpython-311.pyc
4.44 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ranges.cpython-311.pyc
7.17 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
zxjdbc.cpython-311.pyc
2.69 KB
lrw-r--r--
2026-06-16 08:49:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-311.pyc
2.99 KB
lrw-r--r--
2026-06-16 08:49:16
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).