IyBEYW5pc2ggbWVzc2FnZXMgZm9yIGdwcm9mLgojIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgYmludXRpbHMgcGFja2FnZS4KIyBLZWxkIFNpbW9uc2VuIDxrZWxkQGRrdXVnLmRrPiwgMjAwMiwyMDExCiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IGdwcm9mIDIuMjAuOTBcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctYmludXRpbHNAZ251Lm9yZ1xuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMTEtMDUgMTE6MzQrMDEwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAxMS0wMS0wOCAxNDowMSswMTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEtlbGQgU2ltb25zZW4gPGtlbGRAa2VsZGl4LmNvbT5cbiIKIkxhbmd1YWdlLVRlYW06IERhbmlzaCA8ZGFuc2tAZGFuc2stZ3J1cHBlbi5kaz5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoKIzogYWxwaGEuYzoxMDIgbWlwcy5jOjU0Cm1zZ2lkICI8aW5kaXJlY3QgY2hpbGQ+Igptc2dzdHIgIjxpbmRpcmVrdGUgYmFybj4iCgojOiBhbHBoYS5jOjEwNyBtaXBzLmM6NTkKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdICVzOiAweCVseCB0byAweCVseFxuIgptc2dzdHIgIltmaW5kX2NhbGxdICVzOiAweCVseCB0aWwgMHglbHhcbiIKCiM6IGFscGhhLmM6MTI5CiMsIGMtZm9ybWF0Cm1zZ2lkICJbZmluZF9jYWxsXSAweCVseDoganNyJXMgPGluZGlyZWN0X2NoaWxkPlxuIgptc2dzdHIgIltmaW5kX2NhbGxdIDB4JWx4OiBqc3IlcyA8aW5kaXJla3RlX2Jhcm4+XG4iCgojOiBhbHBoYS5jOjEzOQojLCBjLWZvcm1hdAptc2dpZCAiW2ZpbmRfY2FsbF0gMHglbHg6IGJzciIKbXNnc3RyICJbZmluZF9jYWxsXSAweCVseDogYnNyIgoKIzogYmFzaWNfYmxvY2tzLmM6MTI4IGNhbGxfZ3JhcGguYzo4OSBoaXN0LmM6MTA3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogJXM6IHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGVcbiIKbXNnc3RyICIlczogJXM6IHV2ZW50ZXQgZmlsc2x1dG5pbmdcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjE5NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHdhcm5pbmc6IGlnbm9yaW5nIGJhc2ljLWJsb2NrIGV4ZWMgY291bnRzICh1c2UgLWwgb3IgLS1saW5lKVxuIgptc2dzdHIgIiVzOiBhZHZhcnNlbDogaWdub3JlcmVyIGVrc2VrdmVyaW5nc3JlZ25pbmcgZm9yIGdydW5kYmxvayAoYnJ1ZyAtbCBlbGxlciAtLWxpbmUpXG4iCgojLiBGSVhNRTogVGhpcyBvbmx5IHdvcmtzIGlmIGJmZF92bWEgaXMgdW5zaWduZWQgbG9uZy4KIzogYmFzaWNfYmxvY2tzLmM6Mjg5IGJhc2ljX2Jsb2Nrcy5jOjI5OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6JWQ6ICglczoweCVseCkgJWx1IGV4ZWN1dGlvbnNcbiIKbXNnc3RyICIlczolZDogKCVzOjB4JWx4KSAlbHUgZWtzZWt2ZXJpbmdlclxuIgoKIzogYmFzaWNfYmxvY2tzLmM6MjkwIGJhc2ljX2Jsb2Nrcy5jOjMwMAptc2dpZCAiPHVua25vd24+Igptc2dzdHIgIjx1a2VuZHQ+IgoKIzogYmFzaWNfYmxvY2tzLmM6NTQzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIlxuIgoiVG9wICVkIExpbmVzOlxuIgoiXG4iCiIgICAgIExpbmUgICAgICBDb3VudFxuIgoiXG4iCm1zZ3N0ciAiIgoiXG4iCiJcbiIKIth2ZXJzdGUgJWQgbGluamVyOlxuIgoiXG4iCiIgICAgIExpbmplICAgICBBbnRhbFxuIgoiXG4iCgojOiBiYXNpY19ibG9ja3MuYzo1NjcKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiRXhlY3V0aW9uIFN1bW1hcnk6XG4iCiJcbiIKbXNnc3RyICIiCiJcbiIKIkVrc2VrdmVyaW5nc292ZXJzaWd0OlxuIgoiXG4iCgojOiBiYXNpY19ibG9ja3MuYzo1NjgKIywgYy1mb3JtYXQKbXNnaWQgIiU5bGQgICBFeGVjdXRhYmxlIGxpbmVzIGluIHRoaXMgZmlsZVxuIgptc2dzdHIgIiU5bGQgICBFa3Nla3ZlcmJhcmUgbGluamVyIGkgZGVubmUgZmlsXG4iCgojOiBiYXNpY19ibG9ja3MuYzo1NzAKIywgYy1mb3JtYXQKbXNnaWQgIiU5bGQgICBMaW5lcyBleGVjdXRlZFxuIgptc2dzdHIgIiU5bGQgICBFa3Nla3ZlcmVkZSBsaW5qZXJcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3MQojLCBjLWZvcm1hdAptc2dpZCAiJTkuMmYgICBQZXJjZW50IG9mIHRoZSBmaWxlIGV4ZWN1dGVkXG4iCm1zZ3N0ciAiJTkuMmYgICBQcm9jZW50IGFmIGZpbGVuIGVrc2VrdmVyZXRcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3NQojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiIlOWx1ICAgVG90YWwgbnVtYmVyIG9mIGxpbmUgZXhlY3V0aW9uc1xuIgptc2dzdHIgIiIKIlxuIgoiJTlsdSAgIFRvdGFsdCBhbnRhbCBsaW5qZWVrc2VrdmVyaW5nZXJcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3NwojLCBjLWZvcm1hdAptc2dpZCAiJTkuMmYgICBBdmVyYWdlIGV4ZWN1dGlvbnMgcGVyIGxpbmVcbiIKbXNnc3RyICIlOS4yZiAgIEdlbm5lbXNuaXRla3Nla3ZlcmluZ2VyIHBlciBsaW5qZVxuIgoKIzogY2FsbF9ncmFwaC5jOjY4CiMsIGMtZm9ybWF0Cm1zZ2lkICJbY2dfdGFsbHldIGFyYyBmcm9tICVzIHRvICVzIHRyYXZlcnNlZCAlbHUgdGltZXNcbiIKbXNnc3RyICJbY2dfdGFsbHldIGdyZW4gZnJhICVzIHRpbCAlcyBnZW5uZW1s+GJldCAlbHUgZ2FuZ2VcbiIKCiM6IGNnX3ByaW50LmM6NzQKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlx0XHQgICAgIENhbGwgZ3JhcGggKGV4cGxhbmF0aW9uIGZvbGxvd3MpXG4iCiJcbiIKbXNnc3RyICIiCiJcdFx0ICAgICBLYWxkc2dyYWYgKGZvcmtsYXJpbmcgZvhsZ2VyKVxuIgoiXG4iCgojOiBjZ19wcmludC5jOjc2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcdFx0XHRDYWxsIGdyYXBoXG4iCiJcbiIKbXNnc3RyICIiCiJcdFx0XHRLYWxkc2dyYWZcbiIKIlxuIgoKIzogY2dfcHJpbnQuYzo3OSBoaXN0LmM6NDY4CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKImdyYW51bGFyaXR5OiBlYWNoIHNhbXBsZSBoaXQgY292ZXJzICVsZCBieXRlKHMpIgptc2dzdHIgIiIKIlxuIgoib3Bs+HNuaW5nOiBodmVyIHN0aWtwcvh2ZSBk5mtrZXIgJWxkIGJ5dGUiCgojOiBjZ19wcmludC5jOjgzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgZm9yICUuMmYlJSBvZiAlLjJmIHNlY29uZHNcbiIKIlxuIgptc2dzdHIgIiIKIiBmb3IgJS4yZiUlIHDlICUuMmYgc2VrdW5kZXJcbiIKIlxuIgoKIzogY2dfcHJpbnQuYzo4NwojLCBjLWZvcm1hdAptc2dpZCAiIgoiIG5vIHRpbWUgcHJvcGFnYXRlZFxuIgoiXG4iCm1zZ3N0ciAiIgoiIGluZ2VuIHRpZCBwcm9wYWdlcmV0XG4iCiJcbiIKCiM6IGNnX3ByaW50LmM6OTYgY2dfcHJpbnQuYzo5OSBjZ19wcmludC5jOjEwMQptc2dpZCAiY2FsbGVkIgptc2dzdHIgImthbGR0IgoKIzogY2dfcHJpbnQuYzo5NiBjZ19wcmludC5jOjEwMQptc2dpZCAidG90YWwiCm1zZ3N0ciAidG90YWx0IgoKIzogY2dfcHJpbnQuYzo5Ngptc2dpZCAicGFyZW50cyIKbXNnc3RyICJmb3LmbGRyZSIKCiM6IGNnX3ByaW50LmM6OTggY2dfcHJpbnQuYzo5OQptc2dpZCAiaW5kZXgiCm1zZ3N0ciAiaW5kZWtzIgoKIzogY2dfcHJpbnQuYzo5OAojLCBjLWZvcm1hdAptc2dpZCAiJXRpbWUiCm1zZ3N0ciAiJXRpZCIKCiM6IGNnX3ByaW50LmM6OTggY2dfcHJpbnQuYzo5OQptc2dpZCAic2VsZiIKbXNnc3RyICJzZWx2IgoKIzogY2dfcHJpbnQuYzo5OAptc2dpZCAiZGVzY2VuZGFudHMiCm1zZ3N0ciAiYWZrb20iCgojOiBjZ19wcmludC5jOjk5IGhpc3QuYzo0OTQKbXNnaWQgIm5hbWUiCm1zZ3N0ciAibmF2biIKCiM6IGNnX3ByaW50LmM6MTAxCm1zZ2lkICJjaGlsZHJlbiIKbXNnc3RyICJi+HJuIgoKIzogY2dfcHJpbnQuYzoxMDYKIywgYy1mb3JtYXQKbXNnaWQgImluZGV4ICUlIHRpbWUgICAgc2VsZiAgY2hpbGRyZW4gICAgY2FsbGVkICAgICBuYW1lXG4iCm1zZ3N0ciAiaW5kZWtzICUlIHRpZCAgICBzZWx2ICBi+HJuICAgICAgICBrYWxkdCAgICAgIG5hdm5cbiIKCiM6IGNnX3ByaW50LmM6MTI5CiMsIGMtZm9ybWF0Cm1zZ2lkICIgPGN5Y2xlICVkIGFzIGEgd2hvbGU+IFslZF1cbiIKbXNnc3RyICIgPGhlbGUgY3lrbHVzZW4gJWQ+IFslZF1cbiIKCiM6IGNnX3ByaW50LmM6MzU1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlNi42cyAlNS41cyAlNy43cyAlMTEuMTFzICU3LjdzICU3LjdzICAgICA8c3BvbnRhbmVvdXM+XG4iCm1zZ3N0ciAiJTYuNnMgJTUuNXMgJTcuN3MgJTExLjExcyAlNy43cyAlNy43cyAgICAgPHNwb250YW50PlxuIgoKIzogY2dfcHJpbnQuYzozNTYKIywgYy1mb3JtYXQKbXNnaWQgIiU2LjZzICU1LjVzICU3LjdzICU3LjdzICU3LjdzICU3LjdzICAgICA8c3BvbnRhbmVvdXM+XG4iCm1zZ3N0ciAiJTYuNnMgJTUuNXMgJTcuN3MgJTcuN3MgJTcuN3MgJTcuN3MgICAgIDxzcG9udGFudD5cbiIKCiM6IGNnX3ByaW50LmM6NTkwCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJJbmRleCBieSBmdW5jdGlvbiBuYW1lXG4iCiJcbiIKbXNnc3RyICIiCiJJbmRla3MgZWZ0ZXIgZnVua3Rpb25zbmF2blxuIgoiXG4iCgojOiBjZ19wcmludC5jOjY0NyBjZ19wcmludC5jOjY1NgojLCBjLWZvcm1hdAptc2dpZCAiPGN5Y2xlICVkPiIKbXNnc3RyICI8Y3lrbHVzICVkPiIKCiM6IGNvcmVmaWxlLmM6NjAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmFibGUgdG8gcGFyc2UgbWFwcGluZyBmaWxlICVzLlxuIgptc2dzdHIgIiVzOiBrYW4gaWtrZSB0b2xrZSBtYXBwaW5nc2ZpbGVuICVzLlxuIgoKIzogY29yZWZpbGUuYzo4NCBjb3JlZmlsZS5jOjUwNAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNvdWxkIG5vdCBvcGVuICVzLlxuIgptc2dzdHIgIiVzOiBrdW5uZSBpa2tlIOVibmUgJXMuXG4iCgojOiBjb3JlZmlsZS5jOjE4MwojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzOiBub3QgaW4gZXhlY3V0YWJsZSBmb3JtYXRcbiIKbXNnc3RyICIlczogJXM6IGlra2UgaSB1ZGb4cmJhcnQgZm9ybWF0XG4iCgojOiBjb3JlZmlsZS5jOjE5NAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbid0IGZpbmQgLnRleHQgc2VjdGlvbiBpbiAlc1xuIgptc2dzdHIgIiVzOiBrYW4gaWtrZSBmaW5kZSAudGV4dC1zZWt0aW9uIGkgJXNcbiIKCiM6IGNvcmVmaWxlLmM6MjY5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogcmFuIG91dCByb29tIGZvciAlbHUgYnl0ZXMgb2YgdGV4dCBzcGFjZVxuIgptc2dzdHIgIiVzOiBzbHV0IHDlIHBsYWRzIGZvciAlbHUgYnl0ZSB0ZWtzdHBsYWRzXG4iCgojOiBjb3JlZmlsZS5jOjI4MwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbid0IGRvIC1jXG4iCm1zZ3N0ciAiJXM6IGthbiBpa2tlIGxhdmUgLWNcbiIKCiM6IGNvcmVmaWxlLmM6MzIyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogLWMgbm90IHN1cHBvcnRlZCBvbiBhcmNoaXRlY3R1cmUgJXNcbiIKbXNnc3RyICIlczogLWMgdW5kZXJzdPh0dGVzIGlra2UgcOUgYXJraXRla3R1cmVuICVzXG4iCgojOiBjb3JlZmlsZS5jOjUxMyBjb3JlZmlsZS5jOjU5OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZpbGUgYCVzJyBoYXMgbm8gc3ltYm9sc1xuIgptc2dzdHIgIiVzOiBmaWxlbiBcIiVzXCIgaGFyIGluZ2VuIHN5bWJvbGVyXG4iCgojOiBjb3JlZmlsZS5jOjg1OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHNvbWVib2R5IG1pc2NvdW50ZWQ6IGx0YWIubGVuPSVkIGluc3RlYWQgb2YgJWxkXG4iCm1zZ3N0ciAiJXM6IG5vZ2VuIHJlZ25lZGUgZm9ya2VydDogbHRhYi5sZW49JWQgaSBzdGVkZXQgZm9yICVsZFxuIgoKIzogZ21vbl9pby5jOjg0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogYWRkcmVzcyBzaXplIGhhcyB1bmV4cGVjdGVkIHZhbHVlIG9mICV1XG4iCm1zZ3N0ciAiJXM6c3T4cnJlbHNlIHDlIGFkcmVzc2UgaGFyIGVuIHV2ZW50ZXQgduZyZGkgcOUgJXVcbiIKCiM6IGdtb25faW8uYzozMTkgZ21vbl9pby5jOjQxNQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZpbGUgdG9vIHNob3J0IHRvIGJlIGEgZ21vbiBmaWxlXG4iCm1zZ3N0ciAiJXM6IGZpbGVuIGVyIGZvciBrb3J0IHRpbCBhdCB25nJlIGVuIGdtb24tZmlsXG4iCgojOiBnbW9uX2lvLmM6MzI5IGdtb25faW8uYzo0NTgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlIGAlcycgaGFzIGJhZCBtYWdpYyBjb29raWVcbiIKbXNnc3RyICIlczogZmlsZW4gXCIlc1wiIGhhciBmZWpsYWd0aWd0IG1hZ2lzayB0YWxcbiIKCiM6IGdtb25faW8uYzozNDAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlIGAlcycgaGFzIHVuc3VwcG9ydGVkIHZlcnNpb24gJWRcbiIKbXNnc3RyICIlczogZmlsZW4gXCIlc1wiIGhhciB2ZXJzaW9uICVkIHNvbSBpa2tlIHVuZGVyc3T4dHRlc1xuIgoKIzogZ21vbl9pby5jOjM3MAojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzOiBmb3VuZCBiYWQgdGFnICVkIChmaWxlIGNvcnJ1cHRlZD8pXG4iCm1zZ3N0ciAiJXM6ICVzOiBmYW5kdCBmZWpsYWd0aWcgbeZya2UgJWQgKGVyIGZpbGVuIGJlc2thZGlnZXQ/KVxuIgoKIzogZ21vbl9pby5jOjQzNwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHByb2ZpbGluZyByYXRlIGluY29tcGF0aWJsZSB3aXRoIGZpcnN0IGdtb24gZmlsZVxuIgptc2dzdHIgIiVzOiBwcm9maWxlcmluZ3NoYXN0aWdoZWQgZXIgaW5rb21wYXRpYmVsIG1lZCBm+HJzdGUgZ21vbi1maWxcbiIKCiM6IGdtb25faW8uYzo0ODgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBpbmNvbXBhdGlibGUgd2l0aCBmaXJzdCBnbW9uIGZpbGVcbiIKbXNnc3RyICIlczogaW5rb21wYXRpYmVsIG1lZCBm+HJzdGUgZ21vbi1maWxcbiIKCiM6IGdtb25faW8uYzo1MTgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlICclcycgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGluIGdtb24ub3V0IGZvcm1hdFxuIgptc2dzdHIgIiVzOiBmaWxlbiBcIiVzXCIgc2VyIGlra2UgdWQgdGlsIGF0IHbmcmUgaSBnbW9uLm91dC1mb3JtYXRcbiIKCiM6IGdtb25faW8uYzo1MzEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmV4cGVjdGVkIEVPRiBhZnRlciByZWFkaW5nICVkLyVkIGJpbnNcbiIKbXNnc3RyICIlczogdXZlbnRldCBmaWxzbHV0IGVmdGVyIGzmc25pbmcgYWYgJWQvJWQgcG9zdGVyXG4iCgojOiBnbW9uX2lvLmM6NTYzCiMsIGMtZm9ybWF0Cm1zZ2lkICJ0aW1lIGlzIGluIHRpY2tzLCBub3Qgc2Vjb25kc1xuIgptc2dzdHIgInRpZGVuIGVyIGkgdGljaywgaWtrZSBzZWt1bmRlclxuIgoKIzogZ21vbl9pby5jOjU2OSBnbW9uX2lvLmM6NzQ5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZG9uJ3Qga25vdyBob3cgdG8gZGVhbCB3aXRoIGZpbGUgZm9ybWF0ICVkXG4iCm1zZ3N0ciAiJXM6IHZlZCBpa2tlIGh2b3JkYW4gZmlsZm9ybWF0ICVkIHNrYWwgaOVuZHRlcmVzXG4iCgojOiBnbW9uX2lvLmM6NTc5CiMsIGMtZm9ybWF0Cm1zZ2lkICJGaWxlIGAlcycgKHZlcnNpb24gJWQpIGNvbnRhaW5zOlxuIgptc2dzdHIgIkZpbGVuIFwiJXNcIiAodmVyc2lvbiAlZCkgaW5kZWhvbGRlcjpcbiIKCiM6IGdtb25faW8uYzo1ODIKIywgYy1mb3JtYXQKbXNnaWQgIlx0JWQgaGlzdG9ncmFtIHJlY29yZFxuIgptc2dzdHIgIlx0JWQgaGlzdG9ncmFtcG9zdFxuIgoKIzogZ21vbl9pby5jOjU4MwojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBoaXN0b2dyYW0gcmVjb3Jkc1xuIgptc2dzdHIgIlx0JWQgaGlzdG9ncmFtcG9zdGVyXG4iCgojOiBnbW9uX2lvLmM6NTg1CiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGNhbGwtZ3JhcGggcmVjb3JkXG4iCm1zZ3N0ciAiXHQlZCBrYWxkc2dyYWZwb3N0XG4iCgojOiBnbW9uX2lvLmM6NTg2CiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGNhbGwtZ3JhcGggcmVjb3Jkc1xuIgptc2dzdHIgIlx0JWQga2FsZHNncmFmcG9zdGVyXG4iCgojOiBnbW9uX2lvLmM6NTg4CiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGJhc2ljLWJsb2NrIGNvdW50IHJlY29yZFxuIgptc2dzdHIgIlx0JWQgZ3J1bmRibG9rc3JlZ25pbmdzcG9zdFxuIgoKIzogZ21vbl9pby5jOjU4OQojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBiYXNpYy1ibG9jayBjb3VudCByZWNvcmRzXG4iCm1zZ3N0ciAiXHQlZCBncnVuZGJsb2tzcmVnbmluZ3Nwb3N0ZXJcbiIKCiM6IGdwcm9mLmM6MTU5CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJVc2FnZTogJXMgWy1bYWJjRGhpbExzVHZ3eHl6XV0gWy1bQUNlRWZGSm5OT3BQcVNRWl1bbmFtZV1dIFstSSBkaXJzXVxuIgoiXHRbLWRbbnVtXV0gWy1rIGZyb20vdG9dIFstbSBtaW4tY291bnRdIFstdCB0YWJsZS1sZW5ndGhdXG4iCiJcdFstLVtuby1dYW5ub3RhdGVkLXNvdXJjZVs9bmFtZV1dIFstLVtuby1dZXhlYy1jb3VudHNbPW5hbWVdXVxuIgoiXHRbLS1bbm8tXWZsYXQtcHJvZmlsZVs9bmFtZV1dIFstLVtuby1dZ3JhcGhbPW5hbWVdXVxuIgoiXHRbLS1bbm8tXXRpbWU9bmFtZV0gWy0tYWxsLWxpbmVzXSBbLS1icmllZl0gWy0tZGVidWdbPWxldmVsXV1cbiIKIlx0Wy0tZnVuY3Rpb24tb3JkZXJpbmddIFstLWZpbGUtb3JkZXJpbmddXG4iCiJcdFstLWRpcmVjdG9yeS1wYXRoPWRpcnNdIFstLWRpc3BsYXktdW51c2VkLWZ1bmN0aW9uc11cbiIKIlx0Wy0tZmlsZS1mb3JtYXQ9bmFtZV0gWy0tZmlsZS1pbmZvXSBbLS1oZWxwXSBbLS1saW5lXSBbLS1taW4tY291bnQ9bl1cbiIKIlx0Wy0tbm8tc3RhdGljXSBbLS1wcmludC1wYXRoXSBbLS1zZXBhcmF0ZS1maWxlc11cbiIKIlx0Wy0tc3RhdGljLWNhbGwtZ3JhcGhdIFstLXN1bV0gWy0tdGFibGUtbGVuZ3RoPWxlbl0gWy0tdHJhZGl0aW9uYWxdXG4iCiJcdFstLXZlcnNpb25dIFstLXdpZHRoPW5dIFstLWlnbm9yZS1ub24tZnVuY3Rpb25zXVxuIgoiXHRbLS1kZW1hbmdsZVs9U1RZTEVdXSBbLS1uby1kZW1hbmdsZV0gWy0tZXh0ZXJuYWwtc3ltYm9sLXRhYmxlPW5hbWVdIFtARklMRV1cbiIKIlx0W2ltYWdlLWZpbGVdIFtwcm9maWxlLWZpbGUuLi5dXG4iCm1zZ3N0ciAiIgoiQnJ1ZzogJXMgWy1bYWJjRGhpbExzVHZ3eHl6XV0gWy1bQUNlRWZGSm5OT3BQcVNRWl1bbmFtZV1dXG4iCiJcdFstSSBrYXRhbG9nZXJdIFstZFt0YWxdXSBbLWsgZnJhL3RpbF0gWy1tIG1pbmRzdGUtYW50YWxdXG4iCiJcdFstdCB0YWJlbC1s5m5ndGVdIFstLVtuby1dYW5ub3RhdGVkLXNvdXJjZVs9bmF2bl1dXG4iCiJcdFstLVtuby1dZXhlYy1jb3VudHNbPW5hdm5dXSBbLS1bbm8tXWZsYXQtcHJvZmlsZVs9bmF2bl1dXG4iCiJcdFstLVtuby1dZ3JhcGhbPW5hdm5dXSBbLS1bbm8tXXRpbWU9bmF2bl0gWy0tYWxsLWxpbmVzXSBbLS1icmllZl1cbiIKIlx0Wy0tZGVidWdbPW5pdmVhdV1dIFstLWZ1bmN0aW9uLW9yZGVyaW5nXSBbLS1maWxlLW9yZGVyaW5nXVxuIgoiXHRbLS1kaXJlY3RvcnktcGF0aD1rYXRhbG9nZXJdIFstLWRpc3BsYXktdW51c2VkLWZ1bmN0aW9uc11cbiIKIlx0Wy0tZmlsZS1mb3JtYXQ9bmF2bl0gWy0tZmlsZS1pbmZvXSBbLS1oZWxwXSBbLS1saW5lXSBbLS1taW4tY291bnQ9bl1cbiIKIlx0Wy0tbm8tc3RhdGljXSBbLS1wcmludC1wYXRoXSBbLS1zZXBhcmF0ZS1maWxlc11cbiIKIlx0Wy0tc3RhdGljLWNhbGwtZ3JhcGhdIFstLXN1bV0gWy0tdGFibGUtbGVuZ3RoPWzmbmdkZV0gWy0tdHJhZGl0aW9uYWxdXG4iCiJcdFstLXZlcnNpb25dIFstLXdpZHRoPW5dIFstLWlnbm9yZS1ub24tZnVuY3Rpb25zXVxuIgoiXHRbLS1kZW1hbmdsZVs9U1RJTF1dIFstLW5vLWRlbWFuZ2xlXVxuIgoiXHRbIFstLWV4dGVybmFsLXN5bWJvbC10YWJsZT1uYXZuXSBbQEZJTF1cbiIKIlx0W2JpbGxlZGZpbF0gW3Byb2ZpbGZpbC4uLl1cbiIKCiM6IGdwcm9mLmM6MTc1CiMsIGMtZm9ybWF0Cm1zZ2lkICJSZXBvcnQgYnVncyB0byAlc1xuIgptc2dzdHIgIiIKIlJhcHBvcnTpciBmZWpsIHRpbCAlcyxcbiIKIm9nIHN5bnB1bmt0ZXIgcOUgb3ZlcnPmdHRlbHNlbiB0aWwgZGFuc2tAZGFuc2stZ3J1cHBlbi5ka1xuIgoKIzogZ3Byb2YuYzoyNTEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBkZWJ1Z2dpbmcgbm90IHN1cHBvcnRlZDsgLWQgaWdub3JlZFxuIgptc2dzdHIgIiVzOiBmZWpsc/hnbmluZyB1bmRlcnN0+HR0ZXMgaWtrZTsgLWQgaWdub3JlcmVkZXNcbiIKCiM6IGdwcm9mLmM6MzMxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdW5rbm93biBmaWxlIGZvcm1hdCAlc1xuIgptc2dzdHIgIiVzOiB1a2VuZHQgZmlsZm9ybWF0ICVzXG4iCgojLiBUaGlzIG91dHB1dCBpcyBpbnRlbmRlZCB0byBmb2xsb3cgdGhlIEdOVSBzdGFuZGFyZHMgZG9jdW1lbnQuCiM6IGdwcm9mLmM6NDE5CiMsIGMtZm9ybWF0Cm1zZ2lkICJHTlUgZ3Byb2YgJXNcbiIKbXNnc3RyICJHTlUgZ3Byb2YgJXNcbiIKCiM6IGdwcm9mLmM6NDIwCiMsIGMtZm9ybWF0Cm1zZ2lkICJCYXNlZCBvbiBCU0QgZ3Byb2YsIGNvcHlyaWdodCAxOTgzIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS5cbiIKbXNnc3RyICJCYXNlcmV0IHDlIEJTRCBncHJvZiwgY29weXJpZ2h0IDE5ODMgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLlxuIgoKIzogZ3Byb2YuYzo0MjEKIywgYy1mb3JtYXQKbXNnaWQgIlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlLiAgVGhpcyBwcm9ncmFtIGhhcyBhYnNvbHV0ZWx5IG5vIHdhcnJhbnR5LlxuIgptc2dzdHIgIkRldHRlIHByb2dyYW0gZXIgZnJpdCBwcm9ncmFtbWVsLiBEZXR0ZSBwcm9ncmFtIGhhciBpbmdlbiBzb20gaGVsc3QgZ2FyYW50aS5cbiIKCiM6IGdwcm9mLmM6NDYyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdW5rbm93biBkZW1hbmdsaW5nIHN0eWxlIGAlcydcbiIKbXNnc3RyICIlczogdWtlbmR0IGRlbWFuZ2xpbmdzc3RpbCBcIiVzXCJcbiIKCiM6IGdwcm9mLmM6NDgyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogT25seSBvbmUgb2YgLS1mdW5jdGlvbi1vcmRlcmluZyBhbmQgLS1maWxlLW9yZGVyaW5nIG1heSBiZSBzcGVjaWZpZWQuXG4iCm1zZ3N0ciAiJXM6IEt1biBlbiBhZiAtLWZ1bmN0aW9uLW9yZGVyaW5nIG9nIC0tZmlsZS1vcmRlcmluZyBrYW4gYW5naXZlcy5cbiIKCiM6IGdwcm9mLmM6NTM0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogc29ycnksIGZpbGUgZm9ybWF0IGBwcm9mJyBpcyBub3QgeWV0IHN1cHBvcnRlZFxuIgptc2dzdHIgIiVzOiBkZXN25nJyZSwgZmlsZm9ybWF0ZXQgXCJwcm9mXCIgdW5kZXJzdPh0dGVzIGlra2UgZW5kbnVcbiIKCiM6IGdwcm9mLmM6NTg4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZ21vbi5vdXQgZmlsZSBpcyBtaXNzaW5nIGhpc3RvZ3JhbVxuIgptc2dzdHIgIiVzOiBnbW9uLm91dC1maWxlbiBtYW5nbGVyIGhpc3RvZ3JhbVxuIgoKIzogZ3Byb2YuYzo1OTUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBnbW9uLm91dCBmaWxlIGlzIG1pc3NpbmcgY2FsbC1ncmFwaCBkYXRhXG4iCm1zZ3N0ciAiJXM6IGdtb24ub3V0LWZpbGVuIG1hbmdsZXIga2FsZHNncmFmZGF0YVxuIgoKIzogaGlzdC5jOjEzNQojLCBjLWZvcm1hdAptc2dpZCAiIgoiJXM6IGRpbWVuc2lvbiB1bml0IGNoYW5nZWQgYmV0d2VlbiBoaXN0b2dyYW0gcmVjb3Jkc1xuIgoiJXM6IGZyb20gJyVzJ1xuIgoiJXM6IHRvICclcydcbiIKbXNnc3RyICIiCiIlczogZW5oZWQgZm9yIGRpbWVuc2lvbiDmbmRyZWRlcyBtZWxsZW0gaGlzdG9ncmFtcG9zdGVyXG4iCiIlczogZnJhICclcydcbiIKIiVzOiB0aWwgJyVzJ1xuIgoKIzogaGlzdC5jOjE0NQojLCBjLWZvcm1hdAptc2dpZCAiIgoiJXM6IGRpbWVuc2lvbiBhYmJyZXZpYXRpb24gY2hhbmdlZCBiZXR3ZWVuIGhpc3RvZ3JhbSByZWNvcmRzXG4iCiIlczogZnJvbSAnJWMnXG4iCiIlczogdG8gJyVjJ1xuIgptc2dzdHIgIiIKIiVzOiBmb3Jrb3J0ZWxzZSBmb3IgZGltZW5zaW9uIOZuZHJlZGVzIG1lbGxlbSBoaXN0b2dyYW1wb3N0ZXJcbiIKIiVzOiBmcmEgJyVjJ1xuIgoiJXM6IHRpbCAnJWMnXG4iCgojOiBoaXN0LmM6MTU5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZGlmZmVyZW50IHNjYWxlcyBpbiBoaXN0b2dyYW0gcmVjb3JkcyIKbXNnc3RyICIlczogZm9yc2tlbGxpZ2Ugc2thbGFlciBpIGhpc3RvZ3JhbXBvc3RlciIKCiM6IGhpc3QuYzoxOTYKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvdmVybGFwcGluZyBoaXN0b2dyYW0gcmVjb3Jkc1xuIgptc2dzdHIgIiVzIG92ZXJsYXBwZW5kZSBoaXN0b2dyYW1wb3N0ZXJcbiIKCiM6IGhpc3QuYzoyMzAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAlczogdW5leHBlY3RlZCBFT0YgYWZ0ZXIgcmVhZGluZyAldSBvZiAldSBzYW1wbGVzXG4iCm1zZ3N0ciAiJXM6ICVzOiB1dmVudGV0IGZpbHNsdXQgZWZ0ZXIgbOZzbmluZyBhZiAldSBhZiAldSBzdGlrcHL4dmVyXG4iCgojOiBoaXN0LmM6NDY0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlYyVjL2NhbGwiCm1zZ3N0ciAiJWMlYy9rYWxkIgoKIzogaGlzdC5jOjQ3MgojLCBjLWZvcm1hdAptc2dpZCAiIgoiIGZvciAlLjJmJSUgb2YgJS4yZiAlc1xuIgoiXG4iCm1zZ3N0ciAiIgoiIGZvciAlLjJmJSUgYWYgJS4yZiAlc1xuIgoiXG4iCgojOiBoaXN0LmM6NDc4CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIkVhY2ggc2FtcGxlIGNvdW50cyBhcyAlZyAlcy5cbiIKbXNnc3RyICIiCiJcbiIKIkh2ZXIgc3Rpa3By+HZlIHJlZ25lcyBzb20gJWcgJXMuXG4iCgojOiBoaXN0LmM6NDgzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgbm8gdGltZSBhY2N1bXVsYXRlZFxuIgoiXG4iCm1zZ3N0ciAiIgoiIGluZ2VuIHRpZCBha2t1bXVsZXJldFxuIgoiXG4iCgojOiBoaXN0LmM6NDkwCm1zZ2lkICJjdW11bGF0aXZlIgptc2dzdHIgImt1bXVsYXRpdiIKCiM6IGhpc3QuYzo0OTAKbXNnaWQgInNlbGYgICIKbXNnc3RyICJzZWx2IgoKIzogaGlzdC5jOjQ5MAptc2dpZCAidG90YWwgIgptc2dzdHIgInRvdGFsdCIKCiM6IGhpc3QuYzo0OTMKbXNnaWQgInRpbWUiCm1zZ3N0ciAidGlkIgoKIzogaGlzdC5jOjQ5Mwptc2dpZCAiY2FsbHMiCm1zZ3N0ciAia2FsZCIKCiM6IGhpc3QuYzo1ODIKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiXG4iCiJcbiIKImZsYXQgcHJvZmlsZTpcbiIKbXNnc3RyICIiCiJcbiIKIlxuIgoiXG4iCiJmbGFkIHByb2ZpbDpcbiIKCiM6IGhpc3QuYzo1ODgKIywgYy1mb3JtYXQKbXNnaWQgIkZsYXQgcHJvZmlsZTpcbiIKbXNnc3RyICJGbGFkIHByb2ZpbDpcbiIKCiM6IGhpc3QuYzo3MDkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmb3VuZCBhIHN5bWJvbCB0aGF0IGNvdmVycyBzZXZlcmFsIGhpc3RvZ3JhbSByZWNvcmRzIgptc2dzdHIgIiVzOiBmYW5kdCBldCBzeW1ib2wgZGVyIGTma2tlciBmbGVyZSBoaXNvZ3JhbXBvc3RlciIKCiM6IG1pcHMuYzo3MQojLCBjLWZvcm1hdAptc2dpZCAiW2ZpbmRfY2FsbF0gMHglbHg6IGphbCIKbXNnc3RyICJbZmluZF9jYWxsXSAweCVseDogamFsIgoKIzogbWlwcy5jOjk5CiMsIGMtZm9ybWF0Cm1zZ2lkICJbZmluZF9jYWxsXSAweCVseDogamFsclxuIgptc2dzdHIgIltmaW5kX2NhbGxdIDB4JWx4OiBqYWxyXG4iCgojOiBzb3VyY2UuYzoxNjIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjb3VsZCBub3QgbG9jYXRlIGAlcydcbiIKbXNnc3RyICIlczoga3VubmUgaWtrZSBmaW5kZSBcIiVzXCJcbiIKCiM6IHNvdXJjZS5jOjIzNwojLCBjLWZvcm1hdAptc2dpZCAiKioqIEZpbGUgJXM6XG4iCm1zZ3N0ciAiKioqIEZpbCAlczpcbiIKCiM6IHV0aWxzLmM6OTkKIywgYy1mb3JtYXQKbXNnaWQgIiA8Y3ljbGUgJWQ+Igptc2dzdHIgIiA8Y3lrbHVzICVkPiIKCiN+IG1zZ2lkICIlczogYCVzJyBpcyBpbmNvbXBhdGlibGUgd2l0aCBmaXJzdCBnbW9uIGZpbGVcbiIKI34gbXNnc3RyICIlczogXCIlc1wiIGVyIGlua29tcGF0aWJlbCBtZWQgZvhyc3RlIGdtb24tZmlsXG4iCgojfiBtc2dpZCAiJXM6IGJmZF92bWEgaGFzIHVuZXhwZWN0ZWQgc2l6ZSBvZiAlbGQgYnl0ZXNcbiIKI34gbXNnc3RyICIlczogYmZkX3ZtYSBoYXIgZW4gdXZlbnRldCBzdPhycmVsc2UgcOUgJWxkIGJ5dGVcbiIK