IyEgL2Jpbi9zaAouICIke3NyY2Rpcj0ufS9pbml0LnNoIjsgcGF0aF9wcmVwZW5kXyAuIC4uL3NyYwoKIyBUZXN0IHJlY29nbml0aW9uIG9mIFNoZWxsIGZvcm1hdCBzdHJpbmdzLgoKY2F0IDw8XEVPRiA+IGYtc2gtMS5kYXRhCiMgSW52YWxpZDogbm8gYXJndW1lbnQKImFiYyIKIyBWYWxpZDogb25lIGFyZ3VtZW50CiJhYmMkZmlsZSIKIyBWYWxpZDogb25lIGFyZ3VtZW50CiJhYmMkZl94IgojIEludmFsaWQ6IGNvbnRleHQgZGVwZW5kZW50IHZhcmlhYmxlCiJhYmMkMCIKIyBJbnZhbGlkOiBjb250ZXh0IGRlcGVuZGVudCB2YXJpYWJsZQoiYWJjJCQiCiMgSW52YWxpZDogY29tcGxleCBzaGVsbCBzeW50YXgKImFiYyR7dG1wZGlyLS90bXB9IgojIEludmFsaWQ6IHVudGVybWluYXRlZAoiYWJjJCIKIyBJbnZhbGlkOiB1bnRlcm1pbmF0ZWQgbmFtZQoiYWJjJHtBIgojIEludmFsaWQ6IG5vbi1BU0NJSSBjaGFyYWN0ZXIKImFiYyTfIgojIEludmFsaWQ6IG5vbi1BU0NJSSBjaGFyYWN0ZXIKImFiYyR7330iCiMgSW52YWxpZDogYW4gZW1wdHkgbmFtZQoiYWJjJHt9IgojIFZhbGlkOiB0aHJlZSBhcmd1bWVudHMKImFiYyRkaXIkZmlsZSIKIyBWYWxpZDogdGhyZWUgYXJndW1lbnRzLCB0d28gd2l0aCBlcXVhbCBuYW1lcwoiYWJjJGFkZHIkY2hhciRhZGRyIgpFT0YKCjogJHtYR0VUVEVYVD14Z2V0dGV4dH0Kbj0wCndoaWxlIHJlYWQgY29tbWVudDsgZG8KICByZWFkIHN0cmluZwogIG49YGV4cHIgJG4gKyAxYAogIExDX0FMTD1DIHNlZCAtZSAncyxcJCxcXCQsZycgPDxFT0YgPiBmLXNoLTEtJG4uaW4KZ2V0dGV4dCAke3N0cmluZ307CkVPRgogICR7WEdFVFRFWFR9IC1MIFNoZWxsIC0tZnJvbS1jb2RlPUlTTy04ODU5LTEgLW8gZi1zaC0xLSRuLnBvIGYtc2gtMS0kbi5pbiB8fCBFeGl0IDEKICB0ZXN0IC1mIGYtc2gtMS0kbi5wbyB8fCBFeGl0IDEKICBmYWlsPQogIGlmIGVjaG8gIiRjb21tZW50IiB8IGdyZXAgJ1ZhbGlkOicgPiAvZGV2L251bGw7IHRoZW4KICAgIGlmIGdyZXAgc2gtZm9ybWF0IGYtc2gtMS0kbi5wbyA+IC9kZXYvbnVsbDsgdGhlbgogICAgICA6CiAgICBlbHNlCiAgICAgIGZhaWw9eWVzCiAgICBmaQogIGVsc2UKICAgIGlmIGdyZXAgc2gtZm9ybWF0IGYtc2gtMS0kbi5wbyA+IC9kZXYvbnVsbDsgdGhlbgogICAgICBmYWlsPXllcwogICAgZWxzZQogICAgICA6CiAgICBmaQogIGZpCiAgaWYgdGVzdCAtbiAiJGZhaWwiOyB0aGVuCiAgICBlY2hvICJGb3JtYXQgc3RyaW5nIHJlY29nbml0aW9uIGVycm9yOiIgMT4mMgogICAgY2F0IGYtc2gtMS0kbi5pbiAxPiYyCiAgICBlY2hvICJHb3Q6IiAxPiYyCiAgICBjYXQgZi1zaC0xLSRuLnBvIDE+JjIKICAgIEV4aXQgMQogIGZpCiAgcm0gLWYgZi1zaC0xLSRuLmluIGYtc2gtMS0kbi5wbwpkb25lIDwgZi1zaC0xLmRhdGEKCkV4aXQgMAo=