IyBHZXJtYW4gdHJhbnNsYXRpb24gb2YgZ3Byb2YKIyBDb3B5cmlnaHQgKEMpIDE5OTcsIDE5OTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIGdwcm9mIHBhY2thZ2UuCiMgUm9sYW5kIFN0aWdnZSA8c3RpZ2dlQGFudGNvbS5kZT4sIDIwMDMuCiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IGdwcm9mIDIuMTRyZWwwMzA3MTJcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDAzLTA3LTExIDEzOjU4KzA5MzBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDMtMDgtMDIgMTI6MTMrMDIwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBSb2xhbmQgU3RpZ2dlIDxzdGlnZ2VAYW50Y29tLmRlPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxkZUBsaS5vcmc+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTE1XG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojOiBhbHBoYS5jOjEwMyBtaXBzLmM6NTcKbXNnaWQgIjxpbmRpcmVjdCBjaGlsZD4iCm1zZ3N0ciAiPGluZGlyZWt0ZXMgS2luZD4iCgojOiBhbHBoYS5jOjEyMCBtaXBzLmM6NzQKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdICVzOiAweCVseCB0byAweCVseFxuIgptc2dzdHIgIltmaW5kX2NhbGxdICVzOiAweCVseCBiaXMgMHglbHhcbiIKCiM6IGFscGhhLmM6MTQyCiMsIGMtZm9ybWF0Cm1zZ2lkICJbZmluZF9jYWxsXSAweCVseDoganNyJXMgPGluZGlyZWN0X2NoaWxkPlxuIgptc2dzdHIgIltmaW5kX2NhbGxdIDB4JWx4OiBqc3IlcyA8aW5kaXJla3RlcyBLaW5kPlxuIgoKIzogYWxwaGEuYzoxNTIKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdIDB4JWx4OiBic3IiCm1zZ3N0ciAiW2ZpbmRfY2FsbF0gMHglbHg6IGJzciIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjEzNCBjYWxsX2dyYXBoLmM6OTQgaGlzdC5jOjk4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogJXM6IHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGVcbiIKbXNnc3RyICIlczogJXM6IHVuZXJ3YXJ0ZXRlcyBEYXRlaWVuZGVcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjIwMgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHdhcm5pbmc6IGlnbm9yaW5nIGJhc2ljLWJsb2NrIGV4ZWMgY291bnRzICh1c2UgLWwgb3IgLS1saW5lKVxuIgptc2dzdHIgIiVzOiBXYXJudW5nOiBpZ25vcmllcmUgYmFzaWMtYmxvY2sgQmVmZWhsc3rkaGxlciAoYmVudXR6ZW4gU2llIC1sIG9kZXIgLS1saW5lKVxuIgoKIy4gRklYTUU6IFRoaXMgb25seSB3b3JrcyBpZiBiZmRfdm1hIGlzIHVuc2lnbmVkIGxvbmcuCiM6IGJhc2ljX2Jsb2Nrcy5jOjI5NSBiYXNpY19ibG9ja3MuYzozMDUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiVkOiAoJXM6MHglbHgpICVsdSBleGVjdXRpb25zXG4iCm1zZ3N0ciAiJXM6JWQ6ICglczoweCVseCkgJWx1IEF1c2b8aHJ1bmdlblxuIgoKIzogYmFzaWNfYmxvY2tzLmM6Mjk2IGJhc2ljX2Jsb2Nrcy5jOjMwNgptc2dpZCAiPHVua25vd24+Igptc2dzdHIgIjx1bmJla2FubnQ+IgoKIzogYmFzaWNfYmxvY2tzLmM6NTUzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIlxuIgoiVG9wICVkIExpbmVzOlxuIgoiXG4iCiIgICAgIExpbmUgICAgICBDb3VudFxuIgoiXG4iCm1zZ3N0ciAiIgoiXG4iCiJcbiIKIkVyc3RlICVkIFplaWxlbjpcbiIKIlxuIgoiICAgICBaZWlsZSAgICAgQW56YWhsXG4iCiJcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3Nwptc2dpZCAiIgoiXG4iCiJFeGVjdXRpb24gU3VtbWFyeTpcbiIKIlxuIgptc2dzdHIgIiIKIlxuIgoiQXVzZvxocnVuZ3N6dXNhbW1lbmZhc3N1bmc6XG4iCiJcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3OAojLCBjLWZvcm1hdAptc2dpZCAiJTlsZCAgIEV4ZWN1dGFibGUgbGluZXMgaW4gdGhpcyBmaWxlXG4iCm1zZ3N0ciAiJTlsZCAgIEF1c2b8aHJiYXJlIFplaWxlbiBpbiBkaWVzZXIgRGF0ZWlcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU4MAojLCBjLWZvcm1hdAptc2dpZCAiJTlsZCAgIExpbmVzIGV4ZWN1dGVkXG4iCm1zZ3N0ciAiJTlsZCAgIFplaWxlbiBhdXNnZWb8aHJ0XG4iCgojOiBiYXNpY19ibG9ja3MuYzo1ODEKIywgYy1mb3JtYXQKbXNnaWQgIiU5LjJmICAgUGVyY2VudCBvZiB0aGUgZmlsZSBleGVjdXRlZFxuIgptc2dzdHIgIiU5LjJmICAgUHJvemVudCBkZXIgRGF0ZWkgYXVzZ2Vm/GhydFxuIgoKIzogYmFzaWNfYmxvY2tzLmM6NTg1CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIiU5bHUgICBUb3RhbCBudW1iZXIgb2YgbGluZSBleGVjdXRpb25zXG4iCm1zZ3N0ciAiIgoiXG4iCiIlOWx1ICAgR2VzYW10emFobCBhdXNnZWb8aHJ0ZXIgWmVpbGVuXG4iCgojOiBiYXNpY19ibG9ja3MuYzo1ODcKIywgYy1mb3JtYXQKbXNnaWQgIiU5LjJmICAgQXZlcmFnZSBleGVjdXRpb25zIHBlciBsaW5lXG4iCm1zZ3N0ciAiJTkuMmYgICBEdXJjaHNjaG5pdHRsaWNoZSBBdXNm/GhydW5nZW4gcHJvIFplaWxlXG4iCgojOiBjYWxsX2dyYXBoLmM6NzEKIywgYy1mb3JtYXQKbXNnaWQgIltjZ190YWxseV0gYXJjIGZyb20gJXMgdG8gJXMgdHJhdmVyc2VkICVsdSB0aW1lc1xuIgptc2dzdHIgIltjZ190YWxseV0gQm9nZW4gdm9uICVzIGJpcyAlcyB3dXJkZSAlbHUgbWFsIGR1cmNobGF1ZmVuXG4iCgojOiBjZ19wcmludC5jOjczCm1zZ2lkICIiCiJcdFx0ICAgICBDYWxsIGdyYXBoIChleHBsYW5hdGlvbiBmb2xsb3dzKVxuIgoiXG4iCm1zZ3N0ciAiIgoiXHRcdCAgICAgQXVmcnVmZ3JhcGggKEVya2zkcnVuZyBmb2xndClcbiIKIlxuIgoKIzogY2dfcHJpbnQuYzo3NQptc2dpZCAiIgoiXHRcdFx0Q2FsbCBncmFwaFxuIgoiXG4iCm1zZ3N0ciAiIgoiXHRcdFx0QXVmcnVmZ3JhcGhcbiIKIlxuIgoKIzogY2dfcHJpbnQuYzo3OCBoaXN0LmM6MzYzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKImdyYW51bGFyaXR5OiBlYWNoIHNhbXBsZSBoaXQgY292ZXJzICVsZCBieXRlKHMpIgptc2dzdHIgIiIKIlxuIgoiR3JhbnVsYXJpdOR0OiBqZWRlciBTdGljaHByb2JlbnRyZWZmZXIgZGVja3QgJWxkIEJ5dGUocykgYWIiCgojOiBjZ19wcmludC5jOjgyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgZm9yICUuMmYlJSBvZiAlLjJmIHNlY29uZHNcbiIKIlxuIgptc2dzdHIgIiIKIiBm/HIgJS4yZiUlIHZvbiAlLjJmIFNla3VuZGVuXG4iCiJcbiIKCiM6IGNnX3ByaW50LmM6ODYKbXNnaWQgIiIKIiBubyB0aW1lIHByb3BhZ2F0ZWRcbiIKIlxuIgptc2dzdHIgIiIKIiBrZWluZSBaZWl0IHdlaXRlcmdlcmVpY2h0XG4iCiJcbiIKCiM6IGNnX3ByaW50LmM6OTUgY2dfcHJpbnQuYzo5OCBjZ19wcmludC5jOjEwMAptc2dpZCAiY2FsbGVkIgptc2dzdHIgImF1ZmdlcnVmZW4iCgojOiBjZ19wcmludC5jOjk1IGNnX3ByaW50LmM6MTAwCm1zZ2lkICJ0b3RhbCIKbXNnc3RyICJnZXNhbXQiCgojOiBjZ19wcmludC5jOjk1Cm1zZ2lkICJwYXJlbnRzIgptc2dzdHIgIkVsdGVybiIKCiM6IGNnX3ByaW50LmM6OTcgY2dfcHJpbnQuYzo5OAptc2dpZCAiaW5kZXgiCm1zZ3N0ciAiSW5kZXgiCgojIGMtZm9ybWF0ID8/PwojOiBjZ19wcmludC5jOjk3CiMsIGMtZm9ybWF0Cm1zZ2lkICIldGltZSIKbXNnc3RyICIldGltZSIKCiM6IGNnX3ByaW50LmM6OTcgY2dfcHJpbnQuYzo5OAptc2dpZCAic2VsZiIKbXNnc3RyICJzZWxic3QiCgojOiBjZ19wcmludC5jOjk3Cm1zZ2lkICJkZXNjZW5kYW50cyIKbXNnc3RyICJOYWNoZmFocmVuIgoKIzogY2dfcHJpbnQuYzo5OCBoaXN0LmM6Mzg5Cm1zZ2lkICJuYW1lIgptc2dzdHIgIk5hbWUiCgojOiBjZ19wcmludC5jOjEwMAptc2dpZCAiY2hpbGRyZW4iCm1zZ3N0ciAiS2luZGVyIgoKIzogY2dfcHJpbnQuYzoxMDUKIywgYy1mb3JtYXQKbXNnaWQgImluZGV4ICUlIHRpbWUgICAgc2VsZiAgY2hpbGRyZW4gICAgY2FsbGVkICAgICBuYW1lXG4iCm1zZ3N0ciAiSW5kZXggJSUgWmVpdCAgIFNlbGIuIEtpbmRlciAgICAgIGF1ZmdlcnVmZW4gTmFtZVxuIgoKIzogY2dfcHJpbnQuYzoxMjkKIywgYy1mb3JtYXQKbXNnaWQgIiA8Y3ljbGUgJWQgYXMgYSB3aG9sZT4gWyVkXVxuIgptc2dzdHIgIiA8WnlrbHVzICVkIGFscyBHYW56ZXM+IFslZF1cbiIKCiM6IGNnX3ByaW50LmM6MzYzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlNi42cyAlNS41cyAlNy43cyAlMTEuMTFzICU3LjdzICU3LjdzICAgICA8c3BvbnRhbmVvdXM+XG4iCm1zZ3N0ciAiJTYuNnMgJTUuNXMgJTcuN3MgJTExLjExcyAlNy43cyAlNy43cyAgICAgPHNwb250YW4+XG4iCgojOiBjZ19wcmludC5jOjM2NAojLCBjLWZvcm1hdAptc2dpZCAiJTYuNnMgJTUuNXMgJTcuN3MgJTcuN3MgJTcuN3MgJTcuN3MgICAgIDxzcG9udGFuZW91cz5cbiIKbXNnc3RyICIlNi42cyAlNS41cyAlNy43cyAlNy43cyAlNy43cyAlNy43cyAgICAgPHNwb250YW4+XG4iCgojOiBjZ19wcmludC5jOjYwNAptc2dpZCAiIgoiSW5kZXggYnkgZnVuY3Rpb24gbmFtZVxuIgoiXG4iCm1zZ3N0ciAiIgoiSW5kZXggbmFjaCBGdW5rdGlvbnNuYW1lblxuIgoiXG4iCgojOiBjZ19wcmludC5jOjY2MSBjZ19wcmludC5jOjY3MAojLCBjLWZvcm1hdAptc2dpZCAiPGN5Y2xlICVkPiIKbXNnc3RyICI8WnlrbHVzICVkPiIKCiM6IGNvcmVmaWxlLmM6NjQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjb3VsZCBub3Qgb3BlbiAlcy5cbiIKbXNnc3RyICIlczogS29ubnRlICVzIG5pY2h0IPZmZm5lbi5cbiIKCiM6IGNvcmVmaWxlLmM6NzggY29yZWZpbGUuYzoxMTIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmFibGUgdG8gcGFyc2UgbWFwcGluZyBmaWxlICVzLlxuIgptc2dzdHIgIiVzOiBLb25udGUgTWFwcGluZy1EYXRlaSAlcyBuaWNodCBhbmFseXNpZXJlbi5cbiIKCiM6IGNvcmVmaWxlLmM6MTU1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogJXM6IG5vdCBpbiBhLm91dCBmb3JtYXRcbiIKbXNnc3RyICIlczogJXM6IG5pY2h0IGltIGEub3V0LUZvcm1hdFxuIgoKIzogY29yZWZpbGUuYzoxNjYKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW4ndCBmaW5kIC50ZXh0IHNlY3Rpb24gaW4gJXNcbiIKbXNnc3RyICIlczoga2FubiBkZW4gLnRleHQtQWJzY2huaXR0IGluICVzIG5pY2h0IGZpbmRlblxuIgoKIzogY29yZWZpbGUuYzoyMjUKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiByYW4gb3V0IHJvb20gZm9yICVsdSBieXRlcyBvZiB0ZXh0IHNwYWNlXG4iCm1zZ3N0ciAiJXM6IFBsYXR6bWFuZ2VsIGb8ciAlbHUgQnl0ZXMgZGVzIFRleHRyYXVtZXNcbiIKCiM6IGNvcmVmaWxlLmM6MjM5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2FuJ3QgZG8gLWNcbiIKbXNnc3RyICIlczoga2FubiAtYyBuaWNodCBhdXNm/GhyZW5cbiIKCiM6IGNvcmVmaWxlLmM6Mjc2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogLWMgbm90IHN1cHBvcnRlZCBvbiBhcmNoaXRlY3R1cmUgJXNcbiIKbXNnc3RyICIlczogLWMgbmljaHQgdW50ZXJzdPx0enQgYXVmIEFyY2hpdGVrdHVyICVzXG4iCgojOiBjb3JlZmlsZS5jOjQ0NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZpbGUgYCVzJyBoYXMgbm8gc3ltYm9sc1xuIgptc2dzdHIgIiVzOiBEYXRlaSBgJXMnIGhhdCBrZWluZSBTeW1ib2xlXG4iCgojOiBjb3JlZmlsZS5jOjc1OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHNvbWVib2R5IG1pc2NvdW50ZWQ6IGx0YWIubGVuPSVkIGluc3RlYWQgb2YgJWxkXG4iCm1zZ3N0ciAiJXM6IGplbWFuZCBoYXQgc2ljaCB2ZXJ65GhsdDogbHRhYi5sZW49JWQgYW5zdGVsbGUgdm9uICVsZFxuIgoKIzogZ21vbl9pby5jOjgyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogYWRkcmVzcyBzaXplIGhhcyB1bmV4cGVjdGVkIHZhbHVlIG9mICV1XG4iCm1zZ3N0ciAiJXM6IEFkcmVzc2JyZWl0ZSBoYXQgdW5lcndhcnRldGVuIFdlcnQgdm9uICV1XG4iCgojOiBnbW9uX2lvLmM6MzQ1IGdtb25faW8uYzo0NDAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlIHRvbyBzaG9ydCB0byBiZSBhIGdtb24gZmlsZVxuIgptc2dzdHIgIiVzOiBEYXRlaSB6dSBrdXJ6IHVtIGVpbmUgZ21vbi1EYXRlaSB6dSBzZWluXG4iCgojOiBnbW9uX2lvLmM6MzU1IGdtb25faW8uYzo0ODMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlIGAlcycgaGFzIGJhZCBtYWdpYyBjb29raWVcbiIKbXNnc3RyICIlczogRGF0ZWkgYCVzJyBoYXQgdW5n/Gx0aWdlcyBtYWdpc2NoZXMgQ29va2llXG4iCgojOiBnbW9uX2lvLmM6MzY2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSBgJXMnIGhhcyB1bnN1cHBvcnRlZCB2ZXJzaW9uICVkXG4iCm1zZ3N0ciAiJXM6IERhdGVpIGAlcycgaGF0IG5pY2h0IHVudGVyc3T8dHp0ZSBWZXJzaW9uICVkXG4iCgojOiBnbW9uX2lvLmM6Mzk2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogJXM6IGZvdW5kIGJhZCB0YWcgJWQgKGZpbGUgY29ycnVwdGVkPylcbiIKbXNnc3RyICIlczogJXM6IHNjaGxlY2h0ZSBNYXJraWVydW5nICVkIGdlZnVuZGVuIChEYXRlaSBiZXNjaORkaWd0PylcbiIKCiM6IGdtb25faW8uYzo0NjIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBwcm9maWxpbmcgcmF0ZSBpbmNvbXBhdGlibGUgd2l0aCBmaXJzdCBnbW9uIGZpbGVcbiIKbXNnc3RyICIlczogUHJvZmlsaW5ncmF0ZSBpbmtvbXBhdGliZWwgbWl0IGVyc3RlciBnbW9uLURhdGVpXG4iCgojOiBnbW9uX2lvLmM6NTEwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW5jb21wYXRpYmxlIHdpdGggZmlyc3QgZ21vbiBmaWxlXG4iCm1zZ3N0ciAiJXM6IGlua29tcGF0aWJlbCBtaXQgZXJzdGVyIGdtb24tRGF0ZWlcbiIKCiM6IGdtb25faW8uYzo1MzgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlICclcycgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGluIGdtb24ub3V0IGZvcm1hdFxuIgptc2dzdHIgIiVzOiBEYXRlaSAnJXMnIGlzdCBuaWNodCBpbSBnbW9uLm91dC1Gb3JtYXRcbiIKCiM6IGdtb25faW8uYzo1NTkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmV4cGVjdGVkIEVPRiBhZnRlciByZWFkaW5nICVkLyVkIGJpbnNcbiIKbXNnc3RyICIlczogdW5lcndhcnRldGVzIERhdGVpZW5kZSBuYWNoIGRlbSBMZXNlbiB2b24gJWQvJWQgS+RzdGVuXG4iCgojOiBnbW9uX2lvLmM6NTkyCm1zZ2lkICJ0aW1lIGlzIGluIHRpY2tzLCBub3Qgc2Vjb25kc1xuIgptc2dzdHIgIlplaXQgaW4gVGFrdGVuLCBuaWNodCBTZWt1bmRlblxuIgoKIzogZ21vbl9pby5jOjU5OCBnbW9uX2lvLmM6Nzc1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZG9uJ3Qga25vdyBob3cgdG8gZGVhbCB3aXRoIGZpbGUgZm9ybWF0ICVkXG4iCm1zZ3N0ciAiJXM6IGtlaW5lIEJlaGFuZGx1bmcgZGVzIERhdGVpZm9ybWF0ZXMgJWQgYmVrYW5udFxuIgoKIzogZ21vbl9pby5jOjYwNQojLCBjLWZvcm1hdAptc2dpZCAiRmlsZSBgJXMnICh2ZXJzaW9uICVkKSBjb250YWluczpcbiIKbXNnc3RyICJEYXRlaSBgJXMnICh2ZXJzaW9uICVkKSBlbnRo5Gx0OlxuIgoKIzogZ21vbl9pby5jOjYwOAojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBoaXN0b2dyYW0gcmVjb3JkXG4iCm1zZ3N0ciAiXHQlZCBIaXN0b2dyYW1tZGF0ZW5zYXR6XG4iCgojOiBnbW9uX2lvLmM6NjA5CiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGhpc3RvZ3JhbSByZWNvcmRzXG4iCm1zZ3N0ciAiXHQlZCBIaXN0b2dyYW1tZGF0ZW5z5HR6ZVxuIgoKIzogZ21vbl9pby5jOjYxMQojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBjYWxsLWdyYXBoIHJlY29yZFxuIgptc2dzdHIgIlx0JWQgQXVmcnVmZ3JhcGgtRGF0ZW5zYXR6XG4iCgojOiBnbW9uX2lvLmM6NjEyCiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGNhbGwtZ3JhcGggcmVjb3Jkc1xuIgptc2dzdHIgIlx0JWQgQXVmcnVmZ3JhcGgtRGF0ZW5z5HR6ZVxuIgoKIzogZ21vbl9pby5jOjYxNAojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBiYXNpYy1ibG9jayBjb3VudCByZWNvcmRcbiIKbXNnc3RyICJcdCVkIGJhc2ljLWJsb2NrIEFuemFobGRhdGVuc2F0elxuIgoKIzogZ21vbl9pby5jOjYxNQojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBiYXNpYy1ibG9jayBjb3VudCByZWNvcmRzXG4iCm1zZ3N0ciAiXHQlZCBiYXNpYy1ibG9jayBBbnphaGxkYXRlbnPkdHplXG4iCgojOiBncHJvZi5jOjE2MwojLCBjLWZvcm1hdAptc2dpZCAiIgoiVXNhZ2U6ICVzIFstW2FiY0RoaWxMc1R2d3h5el1dIFstW0FDZUVmRkpuTk9wUHFRWl1bbmFtZV1dIFstSSBkaXJzXVxuIgoiXHRbLWRbbnVtXV0gWy1rIGZyb20vdG9dIFstbSBtaW4tY291bnRdIFstdCB0YWJsZS1sZW5ndGhdXG4iCiJcdFstLVtuby1dYW5ub3RhdGVkLXNvdXJjZVs9bmFtZV1dIFstLVtuby1dZXhlYy1jb3VudHNbPW5hbWVdXVxuIgoiXHRbLS1bbm8tXWZsYXQtcHJvZmlsZVs9bmFtZV1dIFstLVtuby1dZ3JhcGhbPW5hbWVdXVxuIgoiXHRbLS1bbm8tXXRpbWU9bmFtZV0gWy0tYWxsLWxpbmVzXSBbLS1icmllZl0gWy0tZGVidWdbPWxldmVsXV1cbiIKIlx0Wy0tZnVuY3Rpb24tb3JkZXJpbmddIFstLWZpbGUtb3JkZXJpbmddXG4iCiJcdFstLWRpcmVjdG9yeS1wYXRoPWRpcnNdIFstLWRpc3BsYXktdW51c2VkLWZ1bmN0aW9uc11cbiIKIlx0Wy0tZmlsZS1mb3JtYXQ9bmFtZV0gWy0tZmlsZS1pbmZvXSBbLS1oZWxwXSBbLS1saW5lXSBbLS1taW4tY291bnQ9bl1cbiIKIlx0Wy0tbm8tc3RhdGljXSBbLS1wcmludC1wYXRoXSBbLS1zZXBhcmF0ZS1maWxlc11cbiIKIlx0Wy0tc3RhdGljLWNhbGwtZ3JhcGhdIFstLXN1bV0gWy0tdGFibGUtbGVuZ3RoPWxlbl0gWy0tdHJhZGl0aW9uYWxdXG4iCiJcdFstLXZlcnNpb25dIFstLXdpZHRoPW5dIFstLWlnbm9yZS1ub24tZnVuY3Rpb25zXVxuIgoiXHRbLS1kZW1hbmdsZVs9U1RZTEVdXSBbLS1uby1kZW1hbmdsZV1cbiIKIlx0W2ltYWdlLWZpbGVdIFtwcm9maWxlLWZpbGUuLi5dXG4iCm1zZ3N0ciAiIgoiQXVmcnVmOiAlcyBbLVthYmNEaGlsTHNUdnd4eXpdXSBbLVtBQ2VFZkZKbk5PcFBxUVpdW05hbWVdXSBbLUkgVmVyemVpY2huaXNzZV1cbiIKIlx0Wy1kW0Fuei5dXSBbLWsgdm9uL2Jpc10gWy1tIG1pbi1BbnouXSBbLXQgVGFiZWxsZW5s5G5nZV1cbiIKIlx0Wy0tW25vLV1hbm5vdGF0ZWQtc291cmNlWz1OYW1lXV0gWy0tW25vLV1leGVjLWNvdW50c1s9TmFtZV1dXG4iCiJcdFstLVtuby1dZmxhdC1wcm9maWxlWz1OYW1lXV0gWy0tW25vLV1ncmFwaFs9TmFtZV1dXG4iCiJcdFstLVtuby1ddGltZT1OYW1lXSBbLS1hbGwtbGluZXNdIFstLWJyaWVmXSBbLS1kZWJ1Z1s9TGV2ZWxdXVxuIgoiXHRbLS1mdW5jdGlvbi1vcmRlcmluZ10gWy0tZmlsZS1vcmRlcmluZ11cbiIKIlx0Wy0tZGlyZWN0b3J5LXBhdGg9VmVyei5dIFstLWRpc3BsYXktdW51c2VkLWZ1bmN0aW9uc11cbiIKIlx0Wy0tZmlsZS1mb3JtYXQ9TmFtZV0gWy0tZmlsZS1pbmZvXSBbLS1oZWxwXSBbLS1saW5lXSBbLS1taW4tY291bnQ9bl1cbiIKIlx0Wy0tbm8tc3RhdGljXSBbLS1wcmludC1wYXRoXSBbLS1zZXBhcmF0ZS1maWxlc11cbiIKIlx0Wy0tc3RhdGljLWNhbGwtZ3JhcGhdIFstLXN1bV0gWy0tdGFibGUtbGVuZ3RoPWxlbl0gWy0tdHJhZGl0aW9uYWxdXG4iCiJcdFstLXZlcnNpb25dIFstLXdpZHRoPW5dIFstLWlnbm9yZS1ub24tZnVuY3Rpb25zXVxuIgoiXHRbLS1kZW1hbmdsZVs9U1RJTF1dIFstLW5vLWRlbWFuZ2xlXVxuIgoiXHRbaW1hZ2UtZmlsZV0gW3Byb2ZpbGUtRGF0ZWkuLi5dXG4iCgojOiBncHJvZi5jOjE3OQojLCBjLWZvcm1hdAptc2dpZCAiUmVwb3J0IGJ1Z3MgdG8gJXNcbiIKbXNnc3RyICJNZWxkZW4gU2llIEZlaGxlciBhbiAlc1xuIgoKIzogZ3Byb2YuYzoyNTMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBkZWJ1Z2dpbmcgbm90IHN1cHBvcnRlZDsgLWQgaWdub3JlZFxuIgptc2dzdHIgIiVzOiBEZWJ1Z2dpbmcgbmljaHQgdW50ZXJzdPx0enQ7IC1kIGlnbm9yaWVydFxuIgoKIzogZ3Byb2YuYzozMzMKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmtub3duIGZpbGUgZm9ybWF0ICVzXG4iCm1zZ3N0ciAiJXM6IHVuYmVrYW5udGVzIERhdGVpZm9ybWF0ICVzXG4iCgojLiBUaGlzIG91dHB1dCBpcyBpbnRlbmRlZCB0byBmb2xsb3cgdGhlIEdOVSBzdGFuZGFyZHMgZG9jdW1lbnQuCiM6IGdwcm9mLmM6NDE3CiMsIGMtZm9ybWF0Cm1zZ2lkICJHTlUgZ3Byb2YgJXNcbiIKbXNnc3RyICJHTlUgZ3Byb2YgJXNcbiIKCiM6IGdwcm9mLmM6NDE4Cm1zZ2lkICJCYXNlZCBvbiBCU0QgZ3Byb2YsIGNvcHlyaWdodCAxOTgzIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS5cbiIKbXNnc3RyICJCYXNpZXJlbmQgYXVmIEJTRCBncHJvZiwgY29weXJpZ2h0IDE5ODMgUmVnZW50ZW4gZGVyIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS5cbiIKCiM6IGdwcm9mLmM6NDE5Cm1zZ2lkICJUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZS4gIFRoaXMgcHJvZ3JhbSBoYXMgYWJzb2x1dGVseSBubyB3YXJyYW50eS5cbiIKbXNnc3RyICJEaWVzZXMgUHJvZ3JhbW0gaXN0IEZyZWllIFNvZnR3YXJlLiBFcyBrb21tdCBhYnNvbHV0IG9obmUgR2FyYW50aWUuXG4iCgojOiBncHJvZi5jOjQ2MAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHVua25vd24gZGVtYW5nbGluZyBzdHlsZSBgJXMnXG4iCm1zZ3N0ciAiJXM6IHVuYmVrYW5udGVyIEF1Zmz2c3VuZ3NzdGlsIGAlcydcbiIKCiM6IGdwcm9mLmM6NDgwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogT25seSBvbmUgb2YgLS1mdW5jdGlvbi1vcmRlcmluZyBhbmQgLS1maWxlLW9yZGVyaW5nIG1heSBiZSBzcGVjaWZpZWQuXG4iCm1zZ3N0ciAiJXM6IE51ciBlbnR3ZWRlciAtLWZ1bmN0aW9uLW9yZGVyaW5nIG9kZXIgLS1maWxlLW9yZGVyaW5nIGthbm4gYW5nZWdlYmVuIHdlcmRlbi5cbiIKCiM6IGdwcm9mLmM6NTc4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogc29ycnksIGZpbGUgZm9ybWF0IGBwcm9mJyBpcyBub3QgeWV0IHN1cHBvcnRlZFxuIgptc2dzdHIgIiVzOiBTb3JyeSwgRGF0ZWlmb3JtYXQgYGdwcm9mJyB3aXJkIG5vY2ggbmljaHQgdW50ZXJzdPx0enRcbiIKCiM6IGdwcm9mLmM6NjM5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZ21vbi5vdXQgZmlsZSBpcyBtaXNzaW5nIGhpc3RvZ3JhbVxuIgptc2dzdHIgIiVzOiBnbW9uLm91dC1EYXRlaSBoYXQga2VpbiBIaXN0b2dyYW1tXG4iCgojOiBncHJvZi5jOjY0NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGdtb24ub3V0IGZpbGUgaXMgbWlzc2luZyBjYWxsLWdyYXBoIGRhdGFcbiIKbXNnc3RyICIlczogZ21vbi5vdXQtRGF0ZWkgaGF0IGtlaW5lIEF1ZnJ1ZmdyYXBoLURhdGVuXG4iCgojOiBoaXN0LmM6MTI3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogYCVzJyBpcyBpbmNvbXBhdGlibGUgd2l0aCBmaXJzdCBnbW9uIGZpbGVcbiIKbXNnc3RyICIlczogYCVzJyBpc3QgaW5rb21wYXRpYmVsIG1pdCBlcnN0ZXIgZ21vbi1EYXRlaVxuIgoKIzogaGlzdC5jOjE0MwojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzOiB1bmV4cGVjdGVkIEVPRiBhZnRlciByZWFkaW5nICVkIG9mICVkIHNhbXBsZXNcbiIKbXNnc3RyICIlczogJXM6IHVuZXJ3YXJ0ZXRlcyBEYXRlaWVuZGUgbmFjaCBkZW0gTGVzZW4gdm9uICVkIHZvbiAlZCBNdXN0ZXJuXG4iCgojOiBoaXN0LmM6MzU5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlYyVjL2NhbGwiCm1zZ3N0ciAiJWMlYy9BdWZydWYiCgojOiBoaXN0LmM6MzY3CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgZm9yICUuMmYlJSBvZiAlLjJmICVzXG4iCiJcbiIKbXNnc3RyICIiCiIgZvxyICUuMmYlJSB2b24gJS4yZiAlc1xuIgoiXG4iCgojOiBoaXN0LmM6MzczCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIkVhY2ggc2FtcGxlIGNvdW50cyBhcyAlZyAlcy5cbiIKbXNnc3RyICIiCiJcbiIKIkplZGVzIE11c3RlciB65GhsdCBhbHMgJWcgJXMuXG4iCgojOiBoaXN0LmM6Mzc4Cm1zZ2lkICIiCiIgbm8gdGltZSBhY2N1bXVsYXRlZFxuIgoiXG4iCm1zZ3N0ciAiIgoiIGtlaW5lIFplaXQgYW5nZXNhbW1lbHRcbiIKIlxuIgoKIzogaGlzdC5jOjM4NQptc2dpZCAiY3VtdWxhdGl2ZSIKbXNnc3RyICJrdW11bGF0aXYiCgojOiBoaXN0LmM6Mzg1Cm1zZ2lkICJzZWxmICAiCm1zZ3N0ciAiU2VsYnN0IgoKIzogaGlzdC5jOjM4NQptc2dpZCAidG90YWwgIgptc2dzdHIgIkdlc2FtdCIKCiM6IGhpc3QuYzozODgKbXNnaWQgInRpbWUiCm1zZ3N0ciAiWmVpdCIKCiM6IGhpc3QuYzozODgKbXNnaWQgImNhbGxzIgptc2dzdHIgIkF1ZnJ1ZmUiCgojOiBoaXN0LmM6NDgxCm1zZ2lkICIiCiJcbiIKIlxuIgoiXG4iCiJmbGF0IHByb2ZpbGU6XG4iCm1zZ3N0ciAiIgoiXG4iCiJcbiIKIlxuIgoiRmxhY2hlcyBQcm9maWw6XG4iCgojOiBoaXN0LmM6NDg3Cm1zZ2lkICJGbGF0IHByb2ZpbGU6XG4iCm1zZ3N0ciAiRmxhY2hlcyBQcm9maWw6XG4iCgojOiBtaXBzLmM6ODUKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdIDB4JWx4OiBqYWwiCm1zZ3N0ciAiW2ZpbmRfY2FsbF0gMHglbHg6IGphbCIKCiM6IG1pcHMuYzoxMTAKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdIDB4JWx4OiBqYWxyXG4iCm1zZ3N0ciAiW2ZpbmRfY2FsbF0gMHglbHg6IGphbHJcbiIKCiM6IHNvdXJjZS5jOjE2NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNvdWxkIG5vdCBsb2NhdGUgYCVzJ1xuIgptc2dzdHIgIiVzOiBLb25udGUgYCVzJyBuaWNodCBmaW5kZW5cbiIKCiM6IHNvdXJjZS5jOjI0MQojLCBjLWZvcm1hdAptc2dpZCAiKioqIEZpbGUgJXM6XG4iCm1zZ3N0ciAiKioqIERhdGVpICVzOlxuIgoKIzogdXRpbHMuYzoxMDkKIywgYy1mb3JtYXQKbXNnaWQgIiA8Y3ljbGUgJWQ+Igptc2dzdHIgIiA8WnlrbHVzICVkPiIK