REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 103.06 KB
Close
//opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/testing/_private/__pycache__/utils.cpython-311.pyc
Text
Base64
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BWlzbmFu2gVpc2luZikB2ghTdHJpbmdJTykq2gxhc3NlcnRfZXF1YWzaE2Fzc2VydF9hbG1vc3RfZXF1YWzaE2Fzc2VydF9hcHByb3hfZXF1YWzaEmFzc2VydF9hcnJheV9lcXVhbNoRYXNzZXJ0X2FycmF5X2xlc3PaE2Fzc2VydF9zdHJpbmdfZXF1YWzaGWFzc2VydF9hcnJheV9hbG1vc3RfZXF1YWzaDWFzc2VydF9yYWlzZXPaDWJ1aWxkX2Vycl9tc2faEGRlY29yYXRlX21ldGhvZHPaB2ppZmZpZXPaCG1lbXVzYWdl2hJwcmludF9hc3NlcnRfZXF1YWzaB3J1bmRvY3PaCXJ1bnN0cmluZ9oHdmVyYm9zZdoHbWVhc3VyZdoHYXNzZXJ0X9oeYXNzZXJ0X2FycmF5X2FsbW9zdF9lcXVhbF9udWxw2hNhc3NlcnRfcmFpc2VzX3JlZ2V42hRhc3NlcnRfYXJyYXlfbWF4X3VscNoMYXNzZXJ0X3dhcm5z2hJhc3NlcnRfbm9fd2FybmluZ3PaD2Fzc2VydF9hbGxjbG9zZdoPSWdub3JlRXhjZXB0aW9u2hhjbGVhcl9hbmRfY2F0Y2hfd2FybmluZ3NyBwAAANoVS25vd25GYWlsdXJlRXhjZXB0aW9u2gh0ZW1wcGF0aNoHdGVtcGRpctoHSVNfUFlQWdoMSEFTX1JFRkNPVU5U2gdJU19XQVNN2hFzdXBwcmVzc193YXJuaW5nc9oUYXNzZXJ0X2FycmF5X2NvbXBhcmXaE2Fzc2VydF9ub19nY19jeWNsZXPaDGJyZWFrX2N5Y2xlc9oMSEFTX0xBUEFDSzY02glJU19QWVNUT07aDl9PTERfUFJPTU9USU9O2gdJU19NVVNM2g1fU1VQUE9SVFNfU1ZFYwAAAAAAAAAAAAAAAAEAAAAAAAAA8xIAAACXAGUAWgFkAFoCZAFaA2QCUwApA3IvAAAAejxSYWlzZSB0aGlzIGV4Y2VwdGlvbiB0byBtYXJrIGEgdGVzdCBhcyBhIGtub3duIGZhaWxpbmcgdGVzdC5OqQTaCF9fbmFtZV9f2gpfX21vZHVsZV9f2gxfX3F1YWxuYW1lX1/aB19fZG9jX1+pAPMAAAAA+nAvYnVpbGRkaXIvYnVpbGQvQlVJTEQvY2xvdWRsaW51eC12ZW52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dCBvZiB0aGUgYXJyYXlfbGlrZSBvYmplY3QgaXMgZXF1YWwgdG8KICAgIHRoZSBzY2FsYXIuCgogICAgVGhpcyBmdW5jdGlvbiBoYW5kbGVzIE5hTiBjb21wYXJpc29ucyBhcyBpZiBOYU4gd2FzIGEgIm5vcm1hbCIgbnVtYmVyLgogICAgVGhhdCBpcywgQXNzZXJ0aW9uRXJyb3IgaXMgbm90IHJhaXNlZCBpZiBib3RoIG9iamVjdHMgaGF2ZSBOYU5zIGluIHRoZSBzYW1lCiAgICBwb3NpdGlvbnMuICBUaGlzIGlzIGluIGNvbnRyYXN0IHRvIHRoZSBJRUVFIHN0YW5kYXJkIG9uIE5hTnMsIHdoaWNoIHNheXMKICAgIHRoYXQgTmFOIGNvbXBhcmVkIHRvIGFueXRoaW5nIG11c3QgcmV0dXJuIEZhbHNlLgoKICAgIFBhcmFtZXRlcnMKICAgIC0tLS0tLS0tLS0KICAgIGFjdHVhbCA6IGFycmF5X2xpa2UKICAgICAgICBUaGUgb2JqZWN0IHRvIGNoZWNrLgogICAgZGVzaXJlZCA6IGFycmF5X2xpa2UKICAgICAgICBUaGUgZXhwZWN0ZWQgb2JqZWN0LgogICAgZXJyX21zZyA6IHN0ciwgb3B0aW9uYWwKICAgICAgICBUaGUgZXJyb3IgbWVzc2FnZSB0byBiZSBwcmludGVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KICAgIHZlcmJvc2UgOiBib29sLCBvcHRpb25hbAogICAgICAgIElmIFRydWUsIHRoZSBjb25mbGljdGluZyB2YWx1ZXMgYXJlIGFwcGVuZGVkIHRvIHRoZSBlcnJvciBtZXNzYWdlLgoKICAgIFJhaXNlcwogICAgLS0tLS0tCiAgICBBc3NlcnRpb25FcnJvcgogICAgICAgIElmIGFjdHVhbCBhbmQgZGVzaXJlZCBhcmUgbm90IGVxdWFsLgoKICAgIEV4YW1wbGVzCiAgICAtLS0tLS0tLQogICAgPj4+IG5wLnRlc3RpbmcuYXNzZXJ0X2VxdWFsKFs0LDVdLCBbNCw2XSkKICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAgICAuLi4KICAgIEFzc2VydGlvbkVycm9yOgogICAgSXRlbXMgYXJlIG5vdCBlcXVhbDoKICAgIGl0ZW09MQogICAgIEFDVFVBTDogNQogICAgIERFU0lSRUQ6IDYKCiAgICBUaGUgZm9sbG93aW5nIGNvbXBhcmlzb24gZG9lcyBub3QgcmFpc2UgYW4gZXhjZXB0aW9uLiAgVGhlcmUgYXJlIE5hTnMKICAgIGluIHRoZSBpbnB1dHMsIGJ1dCB0aGV5IGFyZSBpbiB0aGUgc2FtZSBwb3NpdGlvbnMuCgogICAgPj4+IG5wLnRlc3RpbmcuYXNzZXJ0X2VxdWFsKG5wLmFycmF5KFsxLjAsIDIuMCwgbnAubmFuXSksIFsxLCAyLCBucC5uYW5dKQoKICAgIFR6BGtleT1ykwAAAE56BWl0ZW09cgIAAAApA3IOAAAA2ghpc3NjYWxhctoHc2lnbmJpdKkD2gxpc2NvbXBsZXhvYmraBHJlYWzaBGltYWepAXIkAAAARtoCTW16MGNhbm5vdCBjb21wYXJlIHRvIGEgc2NhbGFyIHdpdGggYSBkaWZmZXJlbnQgdHlwZXoZZWxlbWVudHdpc2UgPT0gY29tcGFyaXNvbikhcpwAAADaBGRpY3RyVgAAAHKdAAAAcnAAAAByFQAAAHKaAAAA2gVpdGVtc9oEbGlzdNoFdHVwbGXaBXJhbmdl2gpudW1weS5jb3Jlcg4AAAByqwAAAHKsAAAA2gludW1weS5saWJyrgAAAHKvAAAAcrAAAAByGAAAAHIdAAAA2gpWYWx1ZUVycm9yclUAAAByDwAAAHJOAAAA2gdhc2FycmF52gVkdHlwZXKEAAAAchIAAADaBGNoYXLaEkRlcHJlY2F0aW9uV2FybmluZ9oNRnV0dXJlV2FybmluZ9oEYXJncykb2gZhY3R1YWzaB2Rlc2lyZWRyogAAAHIkAAAAclkAAADaAWtypQAAAHIOAAAAcqsAAAByrAAAAHKuAAAAcq8AAABysAAAAHJYAAAA2gp1c2Vjb21wbGV42gdhY3R1YWxy2gdhY3R1YWxp2ghkZXNpcmVkctoIZGVzaXJlZGnaCGlzZGVzbmF02ghpc2FjdG5hdNoMZHR5cGVzX21hdGNo2ghpc2Rlc25hbtoIaXNhY3RuYW7aDGFycmF5X2FjdHVhbNoNYXJyYXlfZGVzaXJlZNoBZXMbAAAAICAg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IGxvb3NlciB0ZXN0IHRoYW4gb3JpZ2luYWxseSBkb2N1bWVudGVkLCBidXQgYWdyZWVzIHdpdGggd2hhdCB0aGUKICAgIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBpbiBgYXNzZXJ0X2FycmF5X2FsbW9zdF9lcXVhbGAgZGlkIHVwIHRvIHJvdW5kaW5nCiAgICB2YWdhcmllcy4gQW4gZXhjZXB0aW9uIGlzIHJhaXNlZCBhdCBjb25mbGljdGluZyB2YWx1ZXMuIEZvciBuZGFycmF5cyB0aGlzCiAgICBkZWxlZ2F0ZXMgdG8gYXNzZXJ0X2FycmF5X2FsbW9zdF9lcXVhbAoKICAgIFBhcmFtZXRlcnMKICAgIC0tLS0tLS0tLS0KICAgIGFjdHVhbCA6IGFycmF5X2xpa2UKICAgICAgICBUaGUgb2JqZWN0IHRvIGNoZWNrLgogICAgZGVzaXJlZCA6IGFycmF5X2xpa2UKICAgICAgICBUaGUgZXhwZWN0ZWQgb2JqZWN0LgogICAgZGVjaW1hbCA6IGludCwgb3B0aW9uYWwKICAgICAgICBEZXNpcmVkIHByZWNpc2lvbiwgZGVmYXVsdCBpcyA3LgogICAgZXJyX21zZyA6IHN0ciwgb3B0aW9uYWwKICAgICAgICBUaGUgZXJyb3IgbWVzc2FnZSB0byBiZSBwcmludGVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KICAgIHZlcmJvc2UgOiBib29sLCBvcHRpb25hbAogICAgICAgIElmIFRydWUsIHRoZSBjb25mbGljdGluZyB2YWx1ZXMgYXJlIGFwcGVuZGVkIHRvIHRoZSBlcnJvciBtZXNzYWdlLgoKICAgIFJhaXNlcwogICAgLS0tLS0tCiAgICBBc3NlcnRpb25FcnJvcgogICAgICBJZiBhY3R1YWwgYW5kIGRlc2lyZWQgYXJlIG5vdCBlcXVhbCB1cCB0byBzcGVjaWZpZWQgcHJlY2lzaW9uLgoKICAgIFNlZSBBbHNvCiAgICAtLS0tLS0tLQogICAgYXNzZXJ0X2FsbGNsb3NlOiBDb21wYXJlIHR3byBhcnJheV9saWtlIG9iamVjdHMgZm9yIGVxdWFsaXR5IHdpdGggZGVzaXJlZAogICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZSBhbmQvb3IgYWJzb2x1dGUgcHJlY2lzaW9uLgogICAgYXNzZXJ0X2FycmF5X2FsbW9zdF9lcXVhbF9udWxwLCBhc3NlcnRfYXJyYXlfbWF4X3VscCwgYXNzZXJ0X2VxdWFsCgogICAgRXhhbXBsZXMKICAgIC0tLS0tLS0tCiAgICA+Pj4gZnJvbSBudW1weS50ZXN0aW5nIGltcG9ydCBhc3NlcnRfYWxtb3N0X2VxdWFsCiAgICA+Pj4gYXNzZXJ0X2FsbW9zdF9lcXVhbCgyLjMzMzMzMzMzMzMzMzMsIDIuMzMzMzMzMzQpCiAgICA+Pj4gYXNzZXJ0X2FsbW9zdF9lcXVhbCgyLjMzMzMzMzMzMzMzMzMsIDIuMzMzMzMzMzQsIGRlY2ltYWw9MTApCiAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgICAgLi4uCiAgICBBc3NlcnRpb25FcnJvcjoKICAgIEFycmF5cyBhcmUgbm90IGFsbW9zdCBlcXVhbCB0byAxMCBkZWNpbWFscwogICAgIEFDVFVBTDogMi4zMzMzMzMzMzMzMzMzCiAgICAgREVTSVJFRDogMi4zMzMzMzMzNAoKICAgID4+PiBhc3NlcnRfYWxtb3N0X2VxdWFsKG5wLmFycmF5KFsxLjAsMi4zMzMzMzMzMzMzMzMzXSksCiAgICAuLi4gICAgICAgICAgICAgICAgICAgICBucC5hcnJheShbMS4wLDIuMzMzMzMzMzRdKSwgZGVjaW1hbD05KQogICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgIC4uLgogICAgQXNzZXJ0aW9uRXJyb3I6CiAgICBBcnJheXMgYXJlIG5vdCBhbG1vc3QgZXF1YWwgdG8gOSBkZWNpbWFscwogICAgPEJMQU5LTElORT4KICAgIE1pc21hdGNoZWQgZWxlbWVudHM6IDEgLyAyICg1MCUpCiAgICBNYXggYWJzb2x1dGUgZGlmZmVyZW5jZTogNi42NjY2OTk2NGUtMDkKICAgIE1heCByZWxhdGl2ZSBkaWZmZXJlbmNlOiAyLjg1NzE1Njk4ZS0wOQogICAgIHg6IGFycmF5KFsxLiAgICAgICAgICwg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ICAgICAgICAgICAgICBjb21wYXJpc29ucy4KCiAgICBHaXZlbiB0d28gbnVtYmVycywgY2hlY2sgdGhhdCB0aGV5IGFyZSBhcHByb3hpbWF0ZWx5IGVxdWFsLgogICAgQXBwcm94aW1hdGVseSBlcXVhbCBpcyBkZWZpbmVkIGFzIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzCiAgICB0aGF0IGFncmVlLgoKICAgIFBhcmFtZXRlcnMKICAgIC0tLS0tLS0tLS0KICAgIGFjdHVhbCA6IHNjYWxhcgogICAgICAgIFRoZSBvYmplY3QgdG8gY2hlY2suCiAgICBkZXNpcmVkIDogc2NhbGFyCiAgICAgICAgVGhlIGV4cGVjdGVkIG9iamVjdC4KICAgIHNpZ25pZmljYW50IDogaW50LCBvcHRpb25hbAogICAgICAgIERlc2lyZWQgcHJlY2lzaW9uLCBkZWZhdWx0IGlzIDcuCiAgICBlcnJfbXNnIDogc3RyLCBvcHRpb25hbAogICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIHRvIGJlIHByaW50ZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgogICAgdmVyYm9zZSA6IGJvb2wsIG9wdGlvbmFsCiAgICAgICAgSWYgVHJ1ZSwgdGhlIGNvbmZsaWN0aW5nIHZhbHVlcyBhcmUgYXBwZW5kZWQgdG8gdGhlIGVycm9yIG1lc3NhZ2UuCgogICAgUmFpc2VzCiAgICAtLS0tLS0KICAgIEFzc2VydGlvbkVycm9yCiAgICAgIElmIGFjdHVhbCBhbmQgZGVzaXJlZCBhcmUgbm90IGVxdWFsIHVwIHRvIHNwZWNpZmllZCBwcmVjaXNpb24uCgogICAgU2VlIEFsc28KICAgIC0tLS0tLS0tCiAgICBhc3NlcnRfYWxsY2xvc2U6IENvbXBhcmUgdHdvIGFycmF5X2xpa2Ugb2JqZWN0cyBmb3IgZXF1YWxpdHkgd2l0aCBkZXNpcmVkCiAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlIGFuZC9vciBhYnNvbHV0ZSBwcmVjaXNpb24uCiAgICBhc3NlcnRfYXJyYXlfYWxtb3N0X2VxdWFsX251bHAsIGFzc2VydF9hcnJheV9tYXhf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ZCBpbiBjYXNlIG9mIGZhaWx1cmUuCiAgICB2ZXJib3NlIDogYm9vbCwgb3B0aW9uYWwKICAgICAgICBJZiBUcnVlLCB0aGUgY29uZmxpY3RpbmcgdmFsdWVzIGFyZSBhcHBlbmRlZCB0byB0aGUgZXJyb3IgbWVzc2FnZS4KICAgIHN0cmljdCA6IGJvb2wsIG9wdGlvbmFsCiAgICAgICAgSWYgVHJ1ZSwgcmFpc2UgYW4gQXNzZXJ0aW9uRXJyb3Igd2hlbiBlaXRoZXIgdGhlIHNoYXBlIG9yIHRoZSBkYXRhCiAgICAgICAgdHlwZSBvZiB0aGUgYXJyYXlfbGlrZSBvYmplY3RzIGRvZXMgbm90IG1hdGNoLiBUaGUgc3BlY2lhbAogICAgICAgIGhhbmRsaW5nIGZvciBzY2FsYXJzIG1lbnRpb25lZCBpbiB0aGUgTm90ZXMgc2VjdGlvbiBpcyBkaXNhYmxlZC4KCiAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMS4yNC4wCgogICAgUmFpc2VzCiAgICAtLS0tLS0KICAgIEFzc2VydGlvbkVycm9yCiAgICAgICAgSWYgYWN0dWFsIGFuZCBkZXNpcmVkIG9iamVjdHMgYXJlIG5vdCBlcXVhbC4KCiAgICBTZWUgQWxzbwogICAgLS0tLS0tLS0KICAgIGFzc2VydF9hbGxjbG9zZTogQ29tcGFyZSB0d28gYXJyYXlfbGlrZSBvYmplY3RzIGZvciBlcXVhbGl0eSB3aXRoIGRlc2lyZWQKICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmUgYW5kL29yIGFic29sdXRlIHByZWNpc2lvbi4KICAgIGFzc2VydF9hcnJheV9hbG1vc3RfZXF1YWxfbnVscCwgYXNzZXJ0X2FycmF5X21heF91bHAsIGFzc2VydF9lcXVhbAoKICAgIE5vdGVzCiAgICAtLS0tLQogICAgV2hlbiBvbmUgb2YgYHhgIGFuZCBgeWAgaXMgYSBzY2FsYXIgYW5kIHRoZSBvdGhlciBpcyBhcnJheV9saWtlLCB0aGUKICAgIGZ1bmN0aW9uIGNoZWNrcyB0aGF0IGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXlfbGlrZSBvYmplY3QgaXMgZXF1YWwgdG8KICAgIHRoZSBzY2FsYXIuIFRoaXMgYmVoYXZpb3VyIGNhbiBiZSBkaXNhYmxlZCB3aXRoIHRoZSBgc3RyaWN0YCBwYXJhbWV0ZXIuCgogICAgRXhhbXBsZXMKICAgIC0tLS0tLS0tCiAgICBUaGUgZmlyc3QgYXNzZXJ0IGRvZXMgbm90IHJhaXNlIGFuIGV4Y2VwdGlvbjoKCiAgICA+Pj4gbnAudGVzdGluZy5hc3NlcnRfYXJyYXlfZXF1YWwoWzEuMCwyLjMzMzMzLG5wLm5hbl0sCiAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25wLmV4cCgwKSwyLjMzMzMzLCBucC5uYW5dKQoKICAgIEFzc2VydCBmYWlscyB3aXRoIG51bWVyaWNhbCBpbXByZWNpc2lvbiB3aXRoIGZsb2F0czoKCiAgICA+Pj4gbnAudGVzdGluZy5hc3NlcnRfYXJyYXlfZXF1YWwoWzEuMCxucC5waSxucC5uYW5dLAogICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxLCBucC5zcXJ0KG5wLnBpKSoqMiwgbnAubmFuXSkKICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAgICAuLi4KICAgIEFzc2VydGlvbkVycm9yOgogICAgQXJyYXlzIGFyZSBub3QgZXF1YWwKICAgIDxCTEFOS0xJTkU+CiAgICBNaXNtYXRjaGVkIGVsZW1lbnRzOiAxIC8gMyAoMzMuMyUpCiAgICBNYXggYWJzb2x1dGUgZGlmZmVyZW5jZTogNC40NDA4OTIxZS0xNgogICAgTWF4IHJlbGF0aXZlIGRpZmZlcmVuY2U6IDEuNDEzNTc5ODZlLTE2CiAgICAgeDogYXJyYXkoWzEuICAgICAgLCAzLjE0MTU5MywgICAgICBuYW5dKQogICAgIHk6IGFycmF5KFsxLiAgICAgICwgMy4xNDE1OTMsICAgICAgbmFuXSkKCiAgICBVc2UgYGFzc2VydF9hbGxjbG9zZWAgb3Igb25lIG9mIHRoZSBudWxwIChudW1iZXIgb2YgZmxvYXRpbmcgcG9pbnQgdmFsdWVzKQogICAgZnVuY3Rpb25zIGZvciB0aGVzZSBjYXNlcyBpbnN0ZWFkOgoKICAgID4+PiBucC50ZXN0aW5nLmFzc2VydF9hbGxjbG9zZShbMS4wLG5wLnBpLG5wLm5hbl0sCiAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEsIG5wLnNxcnQobnAucGkpKioyLCBucC5uYW5dLAogICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0b2w9MWUtMTAsIGF0b2w9MCkKCiAgICBBcyBtZW50aW9uZWQgaW4gdGhlIE5vdGVzIHNlY3Rpb24sIGBhc3NlcnRfYXJyYXlfZXF1YWxgIGhhcyBzcGVjaWFsCiAgICBoYW5kbGluZyBmb3Igc2NhbGFycy4gSGVyZSB0aGUgdGVzdCBjaGVja3MgdGhhdCBlYWNoIHZhbHVlIGluIGB4YCBpcyAzOgoKICAgID4+PiB4ID0gbnAuZnVsbCgoMiwgNSksIGZpbGxfdmFsdWU9MykKICAgID4+PiBucC50ZXN0aW5nLmFzc2VydF9hcnJheV9lcXVhbCh4LCAzKQoKICAgIFVzZSBgc3RyaWN0YCB0byByYWlzZSBhbiBBc3NlcnRpb25FcnJvciB3aGVuIGNvbXBhcmluZyBhIHNjYWxhciB3aXRoIGFuCiAgICBhcnJheToKCiAgICA+Pj4gbnAudGVzdGluZy5hc3NlcnRfYXJyYXlfZXF1YWwoeCwgMywgc3RyaWN0PVRydWUpCiAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgICAgLi4uCiAgICBBc3NlcnRpb25FcnJvcjoKICAgIEFycmF5cyBhcmUgbm90IGVxdWFsCiAgICA8QkxBTktMSU5FPgogICAgKHNoYXBlcyAoMiwgNSksICgpIG1pc21hdGNoKQogICAgIHg6IGFycmF5KFtbMywgMywgMywgMywgM10sCiAgICAgICAgICAgWzMsIDMsIDMsIDMsIDNdXSkKICAgICB5OiBhcnJheSgzKQoKICAgIFRoZSBgc3RyaWN0YCBwYXJhbWV0ZXIgYWxzbyBlbnN1cmVzIHRoYXQgdGhlIGFycmF5IGRhdGEgdHlwZXMgbWF0Y2g6CgogICAgPj4+IHggPSBucC5hcnJheShbMiwgMiwgMl0pCiAgICA+Pj4geSA9IG5wLmFycmF5KFsyLiwgMi4sIDIuXSwgZHR5cGU9bnAuZmxvYXQzMikKICAgID4+PiBucC50ZXN0aW5nLmFzc2VydF9hcnJheV9lcXVhbCh4LCB5LCBzdHJpY3Q9VHJ1ZSkKICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAgICAuLi4KICAgIEFzc2VydGlvbkVycm9yOgogICAgQXJyYXlzIGFyZSBub3QgZXF1YWwKICAgIDxCTEFOS0xJTkU+CiAgICAoZHR5cGVzIGludDY0LCBmbG9hdDMyIG1pc21hdGNoKQogICAgIHg6IGFycmF5KFsyLCAyLCAyXSkKICAgICB5OiBhcnJheShbMi4sIDIuLCAyLl0sIGR0eXBlPWZsb2F0MzIpCiAgICBUehRBcnJheXMgYXJlIG5vdCBlcXVhbCkEcqIAAAByJAAAAHKjAAAAcvIAAABOKQNyNgAAANoIb3BlcmF0b3LaBl9fZXFfXykGcv0AAAByBAEAAHKiAAAAciQAAABy8gAAAHJZAAAAcwYAAAAgICAgICByRgAAAHIYAAAAchgAAAAoAwAAcz8AAACAAPBeAwAZHdAEFd0EGJ0YnB+oIahRuAfYISjQMUfYICbwBQIFKPEAAgUo9AACBSjwAAIFKPAAAgUo8AACBShyRQAAAGMFAAAAAAAAAAAAAAAJAAAAAwAAAPOIAAAAhwKHB4cIhwmHCocLlwBkAX0FZAJkA2wAbQGKCm0CigdtA4oLAQBkAmQEbARtBYoIAQBkAmQFbAZtB4oJAQCIAogHiAiICYgKiAtmBmQGhAh9BnQRAAAAAAAAAAAAAHwGfAB8AXwDfARkB4kCegYAAIkCrAimBwAAqwcAAAAAAAAAAAEAZAlTACkKYYAKAAAKICAgIFJhaXNlcyBhbiBBc3NlcnRpb25FcnJvciBpZiB0d28gb2JqZWN0cyBhcmUgbm90IGVxdWFsIHVwIHRvIGRlc2lyZWQKICAgIHByZWNpc2lvbi4KCiAgICAuLiBub3RlOjogSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIG9uZSBvZiBgYXNzZXJ0X2FsbGNsb3NlYCwKICAgICAgICAgICAgICBgYXNzZXJ0X2FycmF5X2FsbW9zdF9lcXVhbF9udWxwYCBvciBgYXNzZXJ0X2FycmF5X21heF91bHBgCiAgICAgICAgICAgICAgaW5zdGVhZCBvZiB0aGlzIGZ1bmN0aW9uIGZvciBtb3JlIGNvbnNpc3RlbnQgZmxvYXRpbmcgcG9pbnQKICAgICAgICAgICAgICBjb21wYXJpc29ucy4KCiAgICBUaGUgdGVzdCB2ZXJpZmllcyBpZGVudGljYWwgc2hhcGVzIGFuZCB0aGF0IHRoZSBlbGVtZW50cyBvZiBgYGFjdHVhbGBgIGFuZAogICAgYGBkZXNpcmVkYGAgc2F0aXNmeS4KCiAgICAgICAgYGBhYnMoZGVzaXJlZC1hY3R1YWwpIDwgMS41ICogMTAqKigtZGVjaW1hbClgYAoKICAgIFRoYXQgaXMgYSBsb29zZXIgdGVzdCB0aGFuIG9yaWdpbmFsbHkgZG9jdW1lbnRlZCwgYnV0IGFncmVlcyB3aXRoIHdoYXQgdGhlCiAgICBhY3R1YWwgaW1wbGVtZW50YXRpb24gZGlkIHVwIHRvIHJvdW5kaW5nIHZhZ2FyaWVzLiBBbiBleGNlcHRpb24gaXMgcmFpc2VkCiAgICBhdCBzaGFwZSBtaXNtYXRjaCBvciBjb25mbGljdGluZyB2YWx1ZXMuIEluIGNvbnRyYXN0IHRvIHRoZSBzdGFuZGFyZCB1c2FnZQogICAgaW4gbnVtcHksIE5hTnMgYXJlIGNvbXBhcmVkIGxpa2UgbnVtYmVycywgbm8gYXNzZXJ0aW9uIGlzIHJhaXNlZCBpZiBib3RoCiAgICBvYmplY3RzIGhhdmUgTmFOcyBpbiB0aGUgc2FtZSBwb3NpdGlvbnMuCgogICAgUGFyYW1ldGVycwogICAgLS0tLS0tLS0tLQogICAgeCA6IGFycmF5X2xpa2UKICAgICAgICBUaGUgYWN0dWFsIG9iamVjdCB0byBjaGVjay4KICAgIHkgOiBhcnJheV9saWtlCiAgICAgICAgVGhlIGRlc2lyZWQsIGV4cGVjdGVkIG9iamVjdC4KICAgIGRlY2ltYWwgOiBpbnQsIG9wdGlvbmFsCiAgICAgICAgRGVzaXJlZCBwcmVjaXNpb24sIGRlZmF1bHQgaXMgNi4KICAgIGVycl9tc2cgOiBzdHIsIG9wdGlvbmFsCiAgICAgIFRoZSBlcnJvciBtZXNzYWdlIHRvIGJlIHByaW50ZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgogICAgdmVyYm9zZSA6IGJvb2wsIG9wdGlvbmFsCiAgICAgICAgSWYgVHJ1ZSwgdGhlIGNvbmZsaWN0aW5nIHZhbHVlcyBhcmUgYXBwZW5kZWQgdG8gdGhlIGVycm9yIG1lc3NhZ2UuCgogICAgUmFpc2VzCiAgICAtLS0tLS0KICAgIEFzc2VydGlvbkVycm9yCiAgICAgICAgSWYgYWN0dWFsIGFuZCBkZXNpcmVkIGFyZSBub3QgZXF1YWwgdXAgdG8gc3BlY2lmaWVkIHByZWNpc2lvbi4KCiAgICBTZWUgQWxzbwogICAgLS0tLS0tLS0KICAgIGFzc2VydF9hbGxjbG9zZTogQ29tcGFyZSB0d28gYXJyYXlfbGlrZSBvYmplY3RzIGZvciBlcXVhbGl0eSB3aXRoIGRlc2lyZWQKICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmUgYW5kL29yIGFic29sdXRlIHByZWNpc2lvbi4KICAgIGFzc2VydF9hcnJheV9hbG1vc3RfZXF1YWxfbnVscCwgYXNzZXJ0X2FycmF5X21heF91bHAsIGFzc2VydF9lcXVhbAoKICAgIEV4YW1wbGVzCiAgICAtLS0tLS0tLQogICAgdGhlIGZpcnN0IGFzc2VydCBkb2VzIG5vdCByYWlzZSBhbiBleGNlcHRpb24KCiAgICA+Pj4gbnAudGVzdGluZy5hc3NlcnRfYXJyYXlfYWxtb3N0X2VxdWFsKFsxLjAsMi4zMzMsbnAubmFuXSwKICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEuMCwyLjMzMyxucC5uYW5dKQoKICAgID4+PiBucC50ZXN0aW5nLmFzc2VydF9hcnJheV9hbG1vc3RfZXF1YWwoWzEuMCwyLjMzMzMzLG5wLm5hbl0sCiAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxLjAsMi4zMzMzOSxucC5uYW5dLCBkZWNpbWFsPTUpCiAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6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ZCBvYmplY3QuIEFuIGV4Y2VwdGlvbiBpcyByYWlzZWQgYXQgc2hhcGUgbWlzbWF0Y2ggb3IgaW5jb3JyZWN0bHkKICAgIG9yZGVyZWQgdmFsdWVzLiBTaGFwZSBtaXNtYXRjaCBkb2VzIG5vdCByYWlzZSBpZiBhbiBvYmplY3QgaGFzIHplcm8KICAgIGRpbWVuc2lvbi4gSW4gY29udHJhc3QgdG8gdGhlIHN0YW5kYXJkIHVzYWdlIGluIG51bXB5LCBOYU5zIGFyZQogICAgY29tcGFyZWQsIG5vIGFzc2VydGlvbiBpcyByYWlzZWQgaWYgYm90aCBvYmplY3RzIGhhdmUgTmFOcyBpbiB0aGUgc2FtZQogICAgcG9zaXRpb25zLgoKICAgIFBhcmFtZXRlcnMKICAgIC0tLS0tLS0tLS0KICAgIHggOiBhcnJheV9saWtlCiAgICAgIFRoZSBzbWFsbGVyIG9iamVjdCB0byBjaGVjay4KICAgIHkgOiBhcnJheV9saWtlCiAgICAgIFRoZSBsYXJnZXIgb2JqZWN0IHRvIGNvbXBhcmUuCiAgICBlcnJfbXNnIDogc3RyaW5nCiAgICAgIFRoZSBlcnJvciBtZXNzYWdlIHRvIGJlIHByaW50ZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgogICAgdmVyYm9zZSA6IGJvb2wKICAgICAgICBJZiBUcnVlLCB0aGUgY29uZmxpY3RpbmcgdmFsdWVzIGFyZSBhcHBlbmRlZCB0byB0aGUgZXJyb3IgbWVzc2FnZS4KCiAgICBSYWlzZXMKICAgIC0tLS0tLQogICAgQXNzZXJ0aW9uRXJyb3IKICAgICAgSWYgeCBpcyBub3Qgc3RyaWN0bHkgc21hbGxlciB0aGFuIHksIGVsZW1lbnQtd2lzZS4KCiAgICBTZWUgQWxzbwogICAgLS0tLS0tLS0KICAgIGFzc2VydF9hcnJheV9lcXVhbDogdGVzdHMgb2JqZWN0cyBmb3IgZXF1YWxpdHkKICAgIGFzc2VydF9hcnJheV9hbG1vc3RfZXF1YWw6IHRlc3Qgb2JqZWN0cyBmb3IgZXF1YWxpdHkgdXAgdG8gcHJlY2lzaW9uCgogICAgRXhhbXBsZXMKICAgIC0tLS0tLS0tCiAgICA+Pj4gbnAudGVzdGluZy5hc3NlcnRfYXJyYXlfbGVzcyhbMS4wLCAxLjAsIG5wLm5hbl0sIFsxLjEsIDIuMCwgbnAubmFuXSkKICAgID4+PiBucC50ZXN0aW5nLmFzc2VydF9hcnJheV9sZXNzKFsxLjAsIDEuMCwgbnAubmFuXSwgWzEsIDIuMCwgbnAubmFuXSkKICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAgICAuLi4KICAgIEFzc2VydGlvbkVycm9yOgogICAgQXJyYXlzIGFyZSBub3QgbGVzcy1vcmRlcmVkCiAgICA8QkxBTktMSU5FPgogICAgTWlzbWF0Y2hlZCBlbGVtZW50czogMSAvIDMgKDMzLjMlKQogICAgTWF4IGFic29sdXRlIGRpZmZlcmVuY2U6IDEuCiAgICBNYXggcmVsYXRpdmUgZGlmZmVyZW5jZTogMC41CiAgICAgeDogYXJyYXkoWyAxLiwgIDEuLCBuYW5dKQogICAgIHk6IGFycmF5KFsgMS4sICAyLiwgbmFuXSkKCiAgICA+Pj4gbnAudGVzdGluZy5hc3NlcnRfYXJyYXlfbGVzcyhbMS4wLCA0LjBdLCAzKQogICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgIC4uLgogICAgQXNzZXJ0aW9uRXJyb3I6CiAgICBBcnJheXMgYXJlIG5vdCBsZXNzLW9yZGVyZWQKICAgIDxCTEFOS0xJTkU+CiAgICBNaXNtYXRjaGVkIGVsZW1lbnRzOiAxIC8gMiAoNTAlKQogICAgTWF4IGFic29sdXRlIGRpZmZlcmVuY2U6IDIuCiAgICBNYXggcmVsYXRpdmUgZGlmZmVyZW5jZTogMC42NjY2NjY2NwogICAgIHg6IGFycmF5KFsxLiwgNC5dKQogICAgIHk6IGFycmF5KDMpCgogICAgPj4+IG5wLnRlc3RpbmcuYXNzZXJ0X2FycmF5X2xlc3MoWzEuMCwgMi4wLCAzLjBdLCBbNF0pCiAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgICAgLi4uCiAgICBBc3NlcnRpb25FcnJvcjoKICAgIEFycmF5cyBhcmUgbm90IGxlc3Mt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ZXNpcmVkYCB0byBgYGF0b2wgKyBydG9sICogYWJzKGRlc2lyZWQpYGAuCgogICAgLi4gdmVyc2lvbmFkZGVkOjogMS41LjAKCiAgICBQYXJhbWV0ZXJzCiAgICAtLS0tLS0tLS0tCiAgICBhY3R1YWwgOiBhcnJheV9saWtlCiAgICAgICAgQXJyYXkgb2J0YWluZWQuCiAgICBkZXNpcmVkIDogYXJyYXlfbGlrZQogICAgICAgIEFycmF5IGRlc2lyZWQuCiAgICBydG9sIDogZmxvYXQsIG9wdGlvbmFsCiAgICAgICAgUmVsYXRpdmUgdG9sZXJhbmNlLgogICAgYXRvbCA6IGZsb2F0LCBvcHRpb25hbAogICAgICAgIEFic29sdXRlIHRvbGVyYW5jZS4KICAgIGVxdWFsX25hbiA6IGJvb2wsIG9wdGlvbmFsLgogICAgICAgIElmIFRydWUsIE5hTnMgd2lsbCBjb21wYXJlIGVxdWFsLgogICAgZXJyX21zZyA6IHN0ciwgb3B0aW9uYWwKICAgICAgICBUaGUgZXJyb3IgbWVzc2FnZSB0byBiZSBwcmludGVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KICAgIHZlcmJvc2UgOiBib29sLCBvcHRpb25hbAogICAgICAgIElmIFRydWUsIHRoZSBjb25mbGljdGluZyB2YWx1ZXMgYXJlIGFwcGVuZGVkIHRvIHRoZSBlcnJvciBtZXNzYWdlLgoKICAgIFJhaXNlcwogICAgLS0tLS0tCiAgICBBc3NlcnRpb25FcnJvcgogICAgICAgIElmIGFjdHVhbCBhbmQgZGVzaXJlZCBhcmUgbm90IGVxdWFsIHVwIHRvIHNwZWNpZmllZCBwcmVjaXNpb24uCgogICAgU2VlIEFsc28KICAgIC0tLS0tLS0tCiAgICBhc3NlcnRfYXJyYXlfYWxtb3N0X2VxdWFsX251bHAsIGFzc2VydF9hcnJheV9tYXhfdWxwCgogICAgTm90ZXMKICAgIC0tLS0tCiAgICBXaGVuIG9uZSBvZiBgYWN0dWFsYCBhbmQgYGRlc2lyZWRgIGlzIGEgc2NhbGFyIGFuZCB0aGUgb3RoZXIgaXMKICAgIGFycmF5X2xpa2UsIHRoZSBmdW5jdGlvbiBjaGVja3MgdGhh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ZyBiZXR3ZWVuIGB4YCBhbmQgYHlgIGZvciBvbmUgb3IgbW9yZSBlbGVtZW50cyBpcyBsYXJnZXIKICAgICAgICB0aGFuIGBudWxwYC4KCiAgICBTZWUgQWxzbwogICAgLS0tLS0tLS0KICAgIGFzc2VydF9hcnJheV9tYXhfdWxwIDogQ2hlY2sgdGhhdCBhbGwgaXRlbXMgb2YgYXJyYXlzIGRpZmZlciBpbiBhdCBtb3N0CiAgICAgICAgTiBVbml0cyBpbiB0aGUgTGFzdCBQbGFjZS4KICAgIHNwYWNpbmcgOiBSZXR1cm4gdGhlIGRpc3RhbmNlIGJldHdlZW4geCBhbmQgdGhlIG5lYXJlc3QgYWRqYWNlbnQgbnVtYmVyLgoKICAgIE5vdGVzCiAgICAtLS0tLQogICAgQW4gYXNzZXJ0aW9uIGlzIHJhaXNlZCBpZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbiBpcyBub3QgbWV0OjoKCiAgICAgICAgYWJzKHggLSB5KSA8PSBudWxwICogc3BhY2luZyhtYXhpbXVtKGFicyh4KSwgYWJzKHkpKSkKCiAgICBFeGFtcGxlcwogICAgLS0tLS0tLS0KICAgID4+PiB4ID0gbnAuYXJyYXkoWzEuLCAxZS0xMCwgMWUtMjBdKQogICAgPj4+IGVwcyA9IG5wLmZpbmZvKHguZHR5cGUpLmVwcwogICAgPj4+IG5wLnRlc3RpbmcuYXNzZXJ0X2FycmF5X2FsbW9zdF9lcXVhbF9udWxwKHgsIHgqZXBzLzIgKyB4KQoKICAgID4+PiBucC50ZXN0aW5nLmFzc2VydF9hcnJheV9hbG1vc3RfZXF1YWxfbnVscCh4LCB4KmVwcyArIHgpCiAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgIC4uLgogICAgQXNzZXJ0aW9uRXJyb3I6IFggYW5kIFkgYXJlIG5vdCBlcXVhbCB0byAxIFVMUCAobWF4IGlzIDIpCgogICAgVHICAAAATnofWCBhbmQgWSBhcmUgbm90IGVxdWFsIHRvICVkIFVMUHorWCBhbmQgWSBhcmUgbm90IGVxdWFsIHRvICVkIFVMUCAobWF4IGlzICVnKSkJcuUAAABy3gAAANoHc3BhY2luZ9oFd2hlcmVy9wAAAHKuAAAAcvgAAADaCW51bHBfZGlmZnJWAAAAKQpy/QAAAHIEAQAA2gRudWxwclkAAAByTgAAANoCYXjaAmF52gNyZWZyWAAAANoIbWF4X251bHBzCgAAACAgICAgICAgICByRgAAAHInAAAAcicAAADkBQAAc/sAAACAAPBiAQAZHdAEFdgEFtAEFtAEFtAEFtgJD4gSjBaQAYkZjBmAQtgJD4gSjBaQAYkZjBmAQtgKDpAakBKUGphImEKcSKBSqCKiV6hisCLRHDXUHDXRETbUETbRCjaAQ9gLEYgyjDaQJpAilCaYEZgxmRORK5QroBPSEiTRCyXUCyXwAAYFItgLGogyjD+YMdELHdQLHfAABAlTAaAfoBKkH7AR0SEz1CEz8AAECVMB2BIzsGTREjqIQ4hD4BcdkHKUdp1pqAGoMZlvnG/RFy7UFy6ISNgSP8A0yBjQQlLRElKIQ90OHJhT0Q4h1A4h0Agh8A0GBSLwAAYFInJFAAAAYwQAAAAAAAAAAAAAAAcAAAADAAAA86AAAACXAGQBfQRkAmQDbAB9BXQDAAAAAAAAAAAAAHwAfAF8A6YDAACrAwAAAAAAAAAAfQYCAHwFagIAAAAAAAAAAHwGfAJrAQAAAACmAQAAqwEAAAAAAAAAAHMidAcAAAAAAAAAAAAAZAR8AgIAfAVqBAAAAAAAAAAAfAamAQAAqwEAAAAAAAAAAGYCegYAAKYBAACrAQAAAAAAAAAAggF8BlMAKQVhaQQAAAogICAgQ2hlY2sgdGhhdCBhbGwgaXRlbXMgb2YgYXJyYXlzIGRpZmZlciBpbiBhdCBtb3N0IE4gVW5pdHMgaW4gdGhlIExhc3QgUGxhY2UuCgogICAgUGFyYW1ldGVycwogICAgLS0tLS0tLS0tLQogICAgYSwgYiA6IGFycmF5X2xpa2UKICAgICAgICBJbnB1dCBhcnJheXMgdG8gYmUgY29tcGFyZWQuCiAgICBtYXh1bHAgOiBpbnQsIG9wdGlvbmFsCiAgICAgICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIHVuaXRzIGluIHRoZSBsYXN0IHBsYWNlIHRoYXQgZWxlbWVudHMgb2YgYGFgIGFuZAogICAgICAgIGBiYCBjYW4gZGlmZmVyLiBEZWZhdWx0IGlzIDEuCiAgICBkdHlwZSA6IGR0eXBlLCBvcHRpb25hbAogICAgICAgIERhdGEtdHlwZSB0byBjb252ZXJ0IGBhYCBhbmQgYGJgIHRvIGlmIGdpdmVuLiBEZWZhdWx0IGlzIE5vbmUuCgogICAgUmV0dXJucwogICAgLS0tLS0tLQogICAgcmV0IDogbmRhcnJheQogICAgICAgIEFycmF5IGNvbnRhaW5pbmcgbnVtYmVyIG9mIHJlcHJlc2VudGFibGUgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBiZXR3ZWVuCiAgICAgICAgaXRlbXMgaW4gYGFgIGFuZCBgYmAuCgogICAgUmFpc2VzCiAgICAtLS0tLS0KICAgIEFzc2VydGlvbkVycm9yCiAgICAgICAgSWYgb25lIG9yIG1vcmUgZWxlbWVudHMgZGlmZmVyIGJ5IG1vcmUgdGhhbiBgbWF4dWxwYC4KCiAgICBOb3RlcwogICAgLS0tLS0KICAgIEZvciBjb21wdXRpbmcgdGhlIFVMUCBkaWZmZXJlbmNlLCB0aGlzIEFQSSBkb2VzIG5vdCBkaWZmZXJlbnRpYXRlIGJldHdlZW4KICAgIHZhcmlvdXMgcmVwcmVzZW50YXRpb25zIG9mIE5BTiAoVUxQIGRpZmZlcmVuY2UgYmV0d2VlbiAweDdmYzAwMDAwIGFuZCAweGZmYzAwMDAwCiAgICBpcyB6ZXJvKS4KCiAgICBTZWUgQWxzbwogICAgLS0tLS0tLS0KICAgIGFzc2VydF9hcnJheV9hbG1vc3RfZXF1YWxfbnVscCA6IENvbXBhcmUgdHdvIGFycmF5cyByZWxhdGl2ZWx5IHRvIHRoZWlyCiAgICAgICAgc3BhY2luZy4KCiAgICBFeGFtcGxlcwogICAgLS0tLS0tLS0KICAgID4+PiBhID0gbnAubGluc3BhY2UoMC4sIDEuLCAxMDApCiAgICA+Pj4gcmVzID0gbnAudGVzdGluZy5hc3NlcnRfYXJyYXlfbWF4X3VscChhLCBucC5hcmNzaW4obnAuc2luKGEpKSkKCiAgICBUcgIAAABOekNBcnJheXMgYXJlIG5vdCBhbG1vc3QgZXF1YWwgdXAgdG8gJWcgVUxQIChtYXggZGlmZmVyZW5jZSBpcyAlZyBVTFApKQVy5QAAAHLIAQAAcvcAAAByVgAAAHL4AAAAKQdypgAAAHK2AQAA2gZtYXh1bHByvAAAAHJZAAAAck4AAADaA3JldHMHAAAAICAgICAgIHJGAAAAcikAAAByKQAAACMGAABzdQAAAIAA8FQBABkd0AQV2AQW0AQW0AQW0AQW3QoTkEGQcZgl0Qog1AoggEPYCxGIMow2kCOYFpIt0Qsg1Asg8AADBTTdDhzwAAEePuAeJKBmoGKkZqhToWuka9AdMvEFAh4z8QACDzT0AAIPNPAAAgk08AYADA+ASnJFAAAAYwMAAAAAAAAAAAAAAAYAAAADAAAA84QCAACHB5cAZAFkAmwAigd8AnIlAgCJB2oBAAAAAAAAAAB8AHwCrAOmAgAAqwIAAAAAAAAAAH0AAgCJB2oBAAAAAAAAAAB8AXwCrAOmAgAAqwIAAAAAAAAAAH0BbiACAIkHagEAAAAAAAAAAHwApgEAAKsBAAAAAAAAAAB9AAIAiQdqAQAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAH0BAgCJB2oCAAAAAAAAAAB8AHwBpgIAAKsCAAAAAAAAAAB9AwIAiQdqAwAAAAAAAAAAfACmAQAAqwEAAAAAAAAAAHMQAgCJB2oDAAAAAAAAAAB8AaYBAACrAQAAAAAAAAAAcg90CQAAAAAAAAAAAABkBKYBAACrAQAAAAAAAAAAggECAIkHagUAAAAAAAAAAHwAZwF8A6wDpgIAAKsCAAAAAAAAAAB9AAIAiQdqBQAAAAAAAAAAfAFnAXwDrAOmAgAAqwIAAAAAAAAAAH0BiQdqBgAAAAAAAAAAfAACAIkHagcAAAAAAAAAAHwApgEAAKsBAAAAAAAAAAA8AAAAiQdqBgAAAAAAAAAAfAECAIkHagcAAAAAAAAAAHwBpgEAAKsBAAAAAAAAAAA8AAAAfABqCAAAAAAAAAAAfAFqCAAAAAAAAAAAawIAAAAAcx90EwAAAAAAAAAAAABkBXwAaggAAAAAAAAAAJsBZAZ8AWoIAAAAAAAAAACbAZ0EpgEAAKsBAAAAAAAAAACCAYgHZgFkB4QIfQR0FQAAAAAAAAAAAAB8AKYBAACrAQAAAAAAAAAAfQV0FQAAAAAAAAAAAAB8AaYBAACrAQAAAAAAAAAAfQYCAHwEfAV8BnwDpgMAAKsDAAAAAAAAAABTACkIYW4DAABGb3IgZWFjaCBpdGVtIGluIHggYW5kIHksIHJldHVybiB0aGUgbnVtYmVyIG9mIHJlcHJlc2VudGFibGUgZmxvYXRpbmcKICAgIHBvaW50cyBiZXR3ZWVuIHRoZW0uCgogICAgUGFyYW1ldGVycwogICAgLS0tLS0tLS0tLQogICAgeCA6IGFycmF5X2xpa2UKICAgICAgICBmaXJzdCBpbnB1dCBhcnJheQogICAgeSA6IGFycmF5X2xpa2UKICAgICAgICBzZWNvbmQgaW5wdXQgYXJyYXkKICAgIGR0eXBlIDogZHR5cGUsIG9wdGlvbmFsCiAgICAgICAgRGF0YS10eXBlIHRvIGNvbnZlcnQgYHhgIGFuZCBgeWAgdG8gaWYgZ2l2ZW4uIERlZmF1bHQgaXMgTm9uZS4KCiAgICBSZXR1cm5zCiAgICAtLS0tLS0tCiAgICBudWxwIDogYXJyYXlfbGlrZQogICAgICAgIG51bWJlciBvZiByZXByZXNlbnRhYmxlIGZsb2F0aW5nIHBvaW50IG51bWJlcnMgYmV0d2VlbiBlYWNoIGl0ZW0gaW4geAogICAgICAgIGFuZCB5LgoKICAgIE5vdGVzCiAgICAtLS0tLQogICAgRm9yIGNvbXB1dGluZyB0aGUgVUxQIGRpZmZlcmVuY2UsIHRoaXMgQVBJIGRvZXMgbm90IGRpZmZlcmVudGlhdGUgYmV0d2VlbgogICAgdmFyaW91cyByZXByZXNlbnRhdGlvbnMgb2YgTkFOIChVTFAgZGlmZmVyZW5jZSBiZXR3ZWVuIDB4N2ZjMDAwMDAgYW5kIDB4ZmZjMDAwMDAKICAgIGlzIHplcm8pLgoKICAgIEV4YW1wbGVzCiAgICAtLS0tLS0tLQogICAgIyBCeSBkZWZpbml0aW9uLCBlcHNpbG9uIGlzIHRoZSBzbWFsbGVzdCBudW1iZXIgc3VjaCBhcyAxICsgZXBzICE9IDEsIHNvCiAgICAjIHRoZXJlIHNob3VsZCBiZSBleGFjdGx5IG9uZSBVTFAgYmV0d2VlbiAxIGFuZCAxICsgZXBzCiAgICA+Pj4gbnVscF9kaWZmKDEsIDEgKyBucC5maW5mbyh4LmR0eXBlKS5lcHMpCiAgICAxLjAKICAgIHICAAAATnIUAQAAeidfbnVscCBub3QgaW1wbGVtZW50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aXRzIHByZXZpb3VzIHN0YXRlIG9uIGV4aXQuCgogICAgVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byB0cmlnZ2VyIGFueSB3YXJuaW5nIGFmcmVzaCBpbnNpZGUgdGhlIGNvbnRleHQKICAgIG1hbmFnZXIgd2l0aG91dCBkaXN0dXJiaW5nIHRoZSBzdGF0ZSBvZiB3YXJuaW5ncyBvdXRzaWRlLgoKICAgIEZvciBjb21wYXRpYmlsaXR5IHdpdGggUHl0aG9uIDMuMCwgcGxlYXNlIGNvbnNpZGVyIGFsbCBhcmd1bWVudHMgdG8gYmUKICAgIGtleXdvcmQtb25seS4KCiAgICBQYXJhbWV0ZXJzCiAgICAtLS0tLS0tLS0tCiAgICByZWNvcmQgOiBib29sLCBvcHRpb25hbAogICAgICAgIFNwZWNpZmllcyB3aGV0aGVyIHdhcm5pbmdzIHNob3VsZCBiZSBjYXB0dXJlZCBieSBhIGN1c3RvbQogICAgICAgIGltcGxlbWVudGF0aW9uIG9mIGBgd2FybmluZ3Muc2hvd3dhcm5pbmcoKWBgIGFuZCBiZSBhcHBlbmRlZCB0byBhIGxpc3QKICAgICAgICByZXR1cm5lZCBieSB0aGUgY29udGV4dCBtYW5hZ2VyLiBPdGhlcndpc2UgTm9uZSBpcyByZXR1cm5lZCBieSB0aGUKICAgICAgICBjb250ZXh0IG1hbmFnZXIuIFRoZSBvYmplY3RzIGFwcGVuZGVkIHRvIHRoZSBsaXN0IGFyZSBhcmd1bWVudHMgd2hvc2UKICAgICAgICBhdHRyaWJ1dGVzIG1pcnJvciB0aGUgYXJndW1lbnRzIHRvIGBgc2hvd3dhcm5pbmcoKWBgLgogICAgbW9kdWxlcyA6IHNlcXVlbmNlLCBvcHRpb25hbAogICAgICAgIFNlcXVlbmNlIG9mIG1vZHVsZXMgZm9yIHdoaWNoIHRvIHJlc2V0IHdhcm5pbmdzIHJlZ2lzdHJ5IG9uIGVudHJ5IGFuZAogICAgICAgIHJlc3RvcmUgb24gZXhpdC4gVG8gd29yayBjb3JyZWN0bHksIGFsbCAnaWdub3JlJyBmaWx0ZXJzIHNob3VsZAogICAgICAgIGZpbHRlciBieSBvbmUgb2YgdGhlc2UgbW9kdWxl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Y2FuIGJlIHVzZWQgZWFzaWx5LCBzaW5jZSBmb2xsb3dpbmcKICAgIHRlc3RzIG1pZ2h0IG5lZWQgdG8gc2VlIHRoZSB3YXJuaW5nLiBBZGRpdGlvbmFsbHkgaXQgYWxsb3dzIGVhc2llcgogICAgc3BlY2lmaWNpdHkgZm9yIHRlc3Rpbmcgd2FybmluZ3MgYW5kIGNhbiBiZSBuZXN0ZWQuCgogICAgUGFyYW1ldGVycwogICAgLS0tLS0tLS0tLQogICAgZm9yd2FyZGluZ19ydWxlIDogc3RyLCBvcHRpb25hbAogICAgICAgIE9uZSBvZiAiYWx3YXlzIiwgIm9uY2UiLCAibW9kdWxlIiwgb3IgImxvY2F0aW9uIi4gQW5hbG9nb3VzIHRvCiAgICAgICAgdGhlIHVzdWFsIHdhcm5pbmdzIG1vZHVsZSBmaWx0ZXIgbW9kZSwgaXQgaXMgdXNlZnVsIHRvIHJlZHVjZQogICAgICAgIG5vaXNlIG1vc3RseSBvbiB0aGUgb3V0bW9zdCBsZXZlbC4gVW5zdXBwcmVzc2VkIGFuZCB1bnJlY29yZGVkCiAgICAgICAgd2FybmluZ3Mgd2lsbCBiZSBmb3J3YXJkZWQgYmFzZWQgb24gdGhpcyBydWxlLiBEZWZhdWx0cyB0byAiYWx3YXlzIi4KICAgICAgICAibG9jYXRpb24iIGlzIGVxdWl2YWxlbnQgdG8gdGhlIHdhcm5pbmdzICJkZWZhdWx0IiwgbWF0Y2ggYnkgZXhhY3QKICAgICAgICBsb2NhdGlvbiB0aGUgd2FybmluZyB3YXJuaW5nIG9yaWdpbmF0ZWQgZnJvbS4KCiAgICBOb3RlcwogICAgLS0tLS0KICAgIEZpbHRlcnMgYWRkZWQgaW5zaWRlIHRoZSBjb250ZXh0IG1hbmFnZXIgd2lsbCBiZSBkaXNjYXJkZWQgYWdhaW4KICAgIHdoZW4gbGVhdmluZyBpdC4gVXBvbiBlbnRlcmluZyBhbGwgZmlsdGVycyBkZWZpbmVkIG91dHNpZGUgYQogICAgY29udGV4dCB3aWxsIGJlIGFwcGxpZWQgYXV0b21hdGljYWxseS4KCiAgICBXaGVuIGEgcmVjb3JkaW5nIGZpbHRlciBpcyBhZGRlZCwgbWF0Y2hpbmcgd2FybmluZ3MgYXJlIHN0b3JlZCBpbiB0aGUKICAgIGBgbG9nYGAgYXR0cmlidXRlIGFzIHdlbGwgYXMgaW4gdGhlIGxpc3QgcmV0dXJuZWQgYnkgYGByZWNvcmRgYC4KCiAgICBJZiBmaWx0ZXJzIGFyZSBhZGRlZCBhbmQgdGhlIGBgbW9kdWxlYGAga2V5d29yZCBpcyBnaXZlbiwgdGhlCiAgICB3YXJuaW5nIHJlZ2lzdHJ5IG9mIHRoaXMgbW9kdWxlIHdpbGwgYWRkaXRpb25hbGx5IGJlIGNsZWFyZWQgd2hlbgogICAgYXBwbHlpbmcgaXQsIGVudGVyaW5nIHRoZSBjb250ZXh0LCBvciBleGl0aW5nIGl0LiBUaGlzIGNvdWxkIGNhdXNlCiAgICB3YXJuaW5ncyB0byBhcHBlYXIgYSBzZWNvbmQgdGltZSBhZnRlciBsZWF2aW5nIHRoZSBjb250ZXh0IGlmIHRoZXkKICAgIHdlcmUgY29uZmlndXJlZCB0byBiZSBwcmludGVkIG9uY2UgKGRlZmF1bHQpIGFuZCB3ZXJlIGFscmVhZHkKICAgIHByaW50ZWQgYmVmb3JlIHRoZSBjb250ZXh0IHdhcyBlbnRlcmVkLgoKICAgIE5lc3RpbmcgdGhpcyBjb250ZXh0IG1hbmFnZXIgd2lsbCB3b3JrIGFzIGV4cGVjdGVkIHdoZW4gdGhlCiAgICBmb3J3YXJkaW5nIHJ1bGUgaXMgImFsd2F5cyIgKGRlZmF1bHQpLiBVbmZpbHRlcmVkIGFuZCB1bnJlY29yZGVkCiAgICB3YXJuaW5ncyB3aWxsIGJlIHBhc3NlZCBvdXQgYW5kIGJlIG1hdGNoZWQgYnkgdGhlIG91dGVyIGxldmVsLgogICAgT24gdGhlIG91dG1vc3QgbGV2ZWwgdGhleSB3aWxsIGJlIHByaW50ZWQgKG9yIGNhdWdodCBieSBhbm90aGVyCiAgICB3YXJuaW5ncyBjb250ZXh0KS4gVGhlIGZvcndhcmRpbmcgcnVsZSBhcmd1bWVudCBjYW4gbW9kaWZ5IHRoaXMKICAgIGJlaGF2aW91ci4KCiAgICBMaWtlIGBgY2F0Y2hfd2FybmluZ3NgYCB0aGlzIGNvbnRleHQgbWFuYWdlciBpcyBub3QgdGhyZWFkc2FmZS4KCiAgICBFeGFtcGxlcwogICAgLS0tLS0tLS0KCiAgICBXaXRoIGEgY29udGV4dCBtYW5hZ2VyOjoKCiAgICAgICAgd2l0aCBucC50ZXN0aW5nLnN1cHByZXNzX3dhcm5pbmdzKCkgYXMgc3VwOgogICAgICAgICAgICBzdXAuZmlsdGVyKERlcHJlY2F0aW9uV2FybmluZywgIlNvbWUgdGV4dCIpCiAgICAgICAgICAgIHN1cC5maWx0ZXIobW9kdWxlPW5wLm1hLmNvcmUpCiAgICAgICAgICAgIGxvZyA9IHN1cC5yZWNvcmQoRnV0dXJlV2FybmluZywgIkRvZXMgdGhpcyBvY2N1cj8iKQogICAgICAgICAgICBjb21tYW5kX2dpdmluZ193YXJuaW5ncygpCiAgICAgICAgICAgICMgVGhlIEZ1dHVyZVdhcm5pbmcgd2FzIGdpdmVuIG9uY2UsIHRoZSBmaWx0ZXJlZCB3YXJuaW5ncyB3ZXJlCiAgICAgICAgICAgICMgaWdub3JlZC4gQWxsIG90aGVyIHdhcm5pbmdzIGFiaWRlIG91dHNpZGUgc2V0dGluZ3MgKG1heSBiZQogICAgICAgICAgICAjIHByaW50ZWQvZXJyb3IpCiAgICAgICAgICAgIGFzc2VydF8obGVuKGxvZykgPT0gMSkKICAgICAgICAgICAgYXNzZXJ0XyhsZW4oc3VwLmxvZykgPT0gMSkgICMgYWxzbyBzdG9yZWQgaW4gbG9nIGF0dHJpYnV0ZQoKICAgIE9yIGFzIGEgZGVjb3JhdG9yOjoKCiAgICAgICAgc3VwID0gbnAudGVzdGluZy5zdXBwcmVzc193YXJuaW5ncygpCiAgICAgICAgc3VwLmZpbHRlcihtb2R1bGU9bnAubWEuY29yZSkgICMgbW9kdWxlIG11c3QgbWF0Y2ggZXhhY3RseQogICAgICAgIEBzdXAKICAgICAgICBkZWYgc29tZV9mdW5jdGlvbigpOgogICAgICAgICAgICAjIGRvIHNvbWV0aGluZyB3aGljaCBjYXVzZXMgYSB3YXJuaW5nIGluIG5wLm1hLmNvcmUKICAgICAgICAgICAgcGFzcwogICAgcu8BAABjAgAAAAAAAAAAAAAAAwAAAAMAAADzVgAAAJcAZAF8AF8AAAAA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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 3
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
extbuild.cpython-311.pyc
10.45 KB
lrw-r--r--
2026-01-20 13:01:48
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
utils.cpython-311.pyc
103.06 KB
lrw-r--r--
2026-01-20 13:01:48
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-311.pyc
224 B
lrw-r--r--
2026-01-20 13:01:48
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).