IyBTd2VkaXNoIG1lc3NhZ2VzIGZvciBncHJvZi4KIyBDb3B5cmlnaHQgKEMpIDIwMDEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgQ2hyaXN0aWFuIFJvc2UgPG1lbnRob3NAbWVudGhvcy5jb20+LCAyMDAxLgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBncHJvZiAyLjExXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMC0wNy0yNyAxNjozMi0wNzAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTEyLTE3IDE2OjA4KzAxMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogQ2hyaXN0aWFuIFJvc2UgPG1lbnRob3NAbWVudGhvcy5jb20+XG4iCiJMYW5ndWFnZS1UZWFtOiBTd2VkaXNoIDxzdkBsaS5vcmc+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKCiM6IGFscGhhLmM6ODkKbXNnaWQgIjxpbmRpcmVjdCBjaGlsZD4iCm1zZ3N0ciAiPGluZGlyZWt0IGJhcm4+IgoKIzogYWxwaGEuYzoxMDYKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdICVzOiAweCVseCB0byAweCVseFxuIgptc2dzdHIgIltmaW5kX2NhbGxdICVzOiAweCVseCB0aWxsIDB4JWx4XG4iCgojOiBhbHBoYS5jOjEyOAojLCBjLWZvcm1hdAptc2dpZCAiW2ZpbmRfY2FsbF0gMHglbHg6IGpzciVzIDxpbmRpcmVjdF9jaGlsZD5cbiIKbXNnc3RyICJbZmluZF9jYWxsXSAweCVseDoganNyJXMgPGluZGlyZWt0X2Jhcm4+XG4iCgojOiBhbHBoYS5jOjEzNwojLCBjLWZvcm1hdAptc2dpZCAiW2ZpbmRfY2FsbF0gMHglbHg6IGJzciIKbXNnc3RyICJbZmluZF9jYWxsXSAweCVseDogYnNyIgoKIzogYmFzaWNfYmxvY2tzLmM6MTIzIGNhbGxfZ3JhcGguYzo4NiBoaXN0LmM6MTIyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogJXM6IHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGVcbiIKbXNnc3RyICIlczogJXM6IG925G50YXQgZmlsc2x1dFxuIgoKIzogYmFzaWNfYmxvY2tzLmM6MTk4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogd2FybmluZzogaWdub3JpbmcgYmFzaWMtYmxvY2sgZXhlYyBjb3VudHMgKHVzZSAtbCBvciAtLWxpbmUpXG4iCm1zZ3N0ciAiJXM6IHZhcm5pbmc6IGlnbm9yZXJhciBleGVrdmVyaW5nc3Lka25pbmcgZvZyIGdydW5kYmxvY2sgKGFuduRuZCAtbCBlbGxlciAtLWxpbmUpXG4iCgojLiBGSVhNRTogVGhpcyBvbmx5IHdvcmtzIGlmIGJmZF92bWEgaXMgdW5zaWduZWQgbG9uZy4KIzogYmFzaWNfYmxvY2tzLmM6Mjk2IGJhc2ljX2Jsb2Nrcy5jOjMwNgojLCBjLWZvcm1hdAptc2dpZCAiJXM6JWQ6ICglczoweCVseCkgJWx1IGV4ZWN1dGlvbnNcbiIKbXNnc3RyICIlczolZDogKCVzOjB4JWx4KSAlbHUgZXhla3ZlcmluZ2FyXG4iCgojOiBiYXNpY19ibG9ja3MuYzoyOTcgYmFzaWNfYmxvY2tzLmM6MzA3Cm1zZ2lkICI8dW5rbm93bj4iCm1zZ3N0ciAiPG9r5G5kPiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU1MQojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiJcbiIKIlRvcCAlZCBMaW5lczpcbiIKIlxuIgoiICAgICBMaW5lICAgICAgQ291bnRcbiIKIlxuIgptc2dzdHIgIiIKIlxuIgoiXG4iCiLWdmVyc3RhICVkIHJhZGVybmE6XG4iCiJcbiIKIiAgICAgUmFkICAgICAgIEFudGFsXG4iCiJcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3NQptc2dpZCAiXG5FeGVjdXRpb24gU3VtbWFyeTpcblxuIgptc2dzdHIgIlxuRXhla3ZlcmluZ3NzYW1tYW5mYXR0bmluZzpcblxuIgoKIzogYmFzaWNfYmxvY2tzLmM6NTc2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlOWxkICAgRXhlY3V0YWJsZSBsaW5lcyBpbiB0aGlzIGZpbGVcbiIKbXNnc3RyICIlOWxkICAgRXhla3ZlcmJhcmEgcmFkZXIgaSBkZW5uYSBmaWxcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3OAojLCBjLWZvcm1hdAptc2dpZCAiJTlsZCAgIExpbmVzIGV4ZWN1dGVkXG4iCm1zZ3N0ciAiJTlsZCAgIEV4ZWt2ZXJhZGUgcmFkZXJcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU3OQojLCBjLWZvcm1hdAptc2dpZCAiJTkuMmYgICBQZXJjZW50IG9mIHRoZSBmaWxlIGV4ZWN1dGVkXG4iCm1zZ3N0ciAiJTkuMmYgICBQcm9jZW50IGF2IGZpbGVuIHNvbSBleGVrdmVyYXRzXG4iCgojOiBiYXNpY19ibG9ja3MuYzo1ODMKIywgYy1mb3JtYXQKbXNnaWQgIlxuJTlsdSAgIFRvdGFsIG51bWJlciBvZiBsaW5lIGV4ZWN1dGlvbnNcbiIKbXNnc3RyICJcbiU5bHUgICBUb3RhbGEgYW50YWxldCByYWRleGVrdmVyaW5nYXJcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU4NQojLCBjLWZvcm1hdAptc2dpZCAiJTkuMmYgICBBdmVyYWdlIGV4ZWN1dGlvbnMgcGVyIGxpbmVcbiIKbXNnc3RyICIlOS4yZiAgIE1lZGVsZXhla3ZlcmluZ2FyIHBlciByYWRcbiIKCiM6IGNhbGxfZ3JhcGguYzo2NgojLCBjLWZvcm1hdAptc2dpZCAiW2NnX3RhbGx5XSBhcmMgZnJvbSAlcyB0byAlcyB0cmF2ZXJzZWQgJWx1IHRpbWVzXG4iCm1zZ3N0ciAiW2NnX3RhbGx5XSBi5WdlIGZy5W4gJXMgdGlsbCAlcyB0cmF2ZXJzZXJhZCAlbHUgZ+VuZ2VyXG4iCgojOiBjZ19wcmludC5jOjU0Cm1zZ2lkICJcdFx0ICAgICBDYWxsIGdyYXBoIChleHBsYW5hdGlvbiBmb2xsb3dzKVxuXG4iCm1zZ3N0ciAiXHRcdCAgICAgQW5ncm9wc2dyYWYgKGb2cmtsYXJpbmcgZvZsamVyKVxuXG4iCgojOiBjZ19wcmludC5jOjU2Cm1zZ2lkICJcdFx0XHRDYWxsIGdyYXBoXG5cbiIKbXNnc3RyICJcdFx0XHRBbnJvcHNncmFmXG5cbiIKCiM6IGNnX3ByaW50LmM6NTkgaGlzdC5jOjM5MQojLCBjLWZvcm1hdAptc2dpZCAiXG5ncmFudWxhcml0eTogZWFjaCBzYW1wbGUgaGl0IGNvdmVycyAlbGQgYnl0ZShzKSIKbXNnc3RyICJcbnVwcGz2c25pbmc6IHZhcmplIHN0aWNrcHJvdiB05GNrZXIgJWxkIGJ5dGUiCgojOiBjZ19wcmludC5jOjYzCm1zZ2lkICIgZm9yICUuMmYlJSBvZiAlLjJmIHNlY29uZHNcblxuIgptc2dzdHIgIiBm9nIgJS4yZiUlIHDlICUuMmYgc2VrdW5kZXJcblxuIgoKIzogY2dfcHJpbnQuYzo2Nwptc2dpZCAiIG5vIHRpbWUgcHJvcGFnYXRlZFxuXG4iCm1zZ3N0ciAiIGluZ2VuIHRpZCBwcm9wYWdlcmFkXG5cbiIKCiM6IGNnX3ByaW50LmM6NzYgY2dfcHJpbnQuYzo3OSBjZ19wcmludC5jOjgxCm1zZ2lkICJjYWxsZWQiCm1zZ3N0ciAiYW5yb3BhZCIKCiM6IGNnX3ByaW50LmM6NzYgY2dfcHJpbnQuYzo4MQptc2dpZCAidG90YWwiCm1zZ3N0ciAidG90YWx0IgoKIzogY2dfcHJpbnQuYzo3Ngptc2dpZCAicGFyZW50cyIKbXNnc3RyICJm9nLkbGRyYXIiCgojOiBjZ19wcmludC5jOjc4IGNnX3ByaW50LmM6NzkKbXNnaWQgImluZGV4Igptc2dzdHIgImluZGV4IgoKIzogY2dfcHJpbnQuYzo3OAptc2dpZCAiJXRpbWUiCm1zZ3N0ciAiJXRpZCIKCiM6IGNnX3ByaW50LmM6NzggY2dfcHJpbnQuYzo3OQptc2dpZCAic2VsZiIKbXNnc3RyICJzauRsdiIKCiMgSmFnIHRyb3IgYXR0IGRldHRhIGVnZW50bGlnZW4gc2thIHZhcmEgImRlc2NlbmRhbnRzIi4KIwojOiBjZ19wcmludC5jOjc4Cm1zZ2lkICJkZXNjZW5kZW50cyIKbXNnc3RyICLkdHRsaW5nYXIiCgojOiBjZ19wcmludC5jOjc5IGhpc3QuYzo0MTYKbXNnaWQgIm5hbWUiCm1zZ3N0ciAibmFtbiIKCiM6IGNnX3ByaW50LmM6ODEKbXNnaWQgImNoaWxkcmVuIgptc2dzdHIgImJhcm4iCgojOiBjZ19wcmludC5jOjg2Cm1zZ2lkICJpbmRleCAlJSB0aW1lICAgIHNlbGYgIGNoaWxkcmVuICAgIGNhbGxlZCAgICAgbmFtZVxuIgptc2dzdHIgImluZGV4ICUlIHRpZCAgICAgc2rkbHYgYmFybiAgICAgICAgYW5yb3BhZCAgICBuYW1uXG4iCgojOiBjZ19wcmludC5jOjEwOQojLCBjLWZvcm1hdAptc2dpZCAiIDxjeWNsZSAlZCBhcyBhIHdob2xlPiBbJWRdXG4iCm1zZ3N0ciAiIDxoZWxhIGN5a2VsICVkPiBbJWRdXG4iCgojOiBjZ19wcmludC5jOjMzNQojLCBjLWZvcm1hdAptc2dpZCAiJTYuNnMgJTUuNXMgJTcuN3MgJTExLjExcyAlNy43cyAlNy43cyAgICAgPHNwb250YW5lb3VzPlxuIgptc2dzdHIgIiU2LjZzICU1LjVzICU3LjdzICUxMS4xMXMgJTcuN3MgJTcuN3MgICAgIDxzcG9udGFudD5cbiIKCiM6IGNnX3ByaW50LmM6MzM2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlNi42cyAlNS41cyAlNy43cyAlNy43cyAlNy43cyAlNy43cyAgICAgPHNwb250YW5lb3VzPlxuIgptc2dzdHIgIiU2LjZzICU1LjVzICU3LjdzICU3LjdzICU3LjdzICU3LjdzICAgICA8c3BvbnRhbnQ+XG4iCgojOiBjZ19wcmludC5jOjU3MAptc2dpZCAiSW5kZXggYnkgZnVuY3Rpb24gbmFtZVxuXG4iCm1zZ3N0ciAiSW5kZXhlcmFkIGVmdGVyIGZ1bmt0aW9uc25hbW5cblxuIgoKIzogY2dfcHJpbnQuYzo2MjcgY2dfcHJpbnQuYzo2MzYKIywgYy1mb3JtYXQKbXNnaWQgIjxjeWNsZSAlZD4iCm1zZ3N0ciAiPGN5a2VsICVkPiIKCiM6IGNvcmVmaWxlLmM6NjEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjb3VsZCBub3Qgb3BlbiAlcy5cbiIKbXNnc3RyICIlczoga3VuZGUgaW50ZSD2cHBuYSAlcy5cbiIKCiM6IGNvcmVmaWxlLmM6NzUgY29yZWZpbGUuYzoxMDkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmFibGUgdG8gcGFyc2UgbWFwcGluZyBmaWxlICVzLlxuIgptc2dzdHIgIiVzOiBrYW4gaW50ZSB0b2xrYSBtYXBwZmlsZW4gJXMuXG4iCgojOiBjb3JlZmlsZS5jOjE1MQojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzOiBub3QgaW4gYS5vdXQgZm9ybWF0XG4iCm1zZ3N0ciAiJXM6ICVzOiBpbnRlIGkgYS5vdXQtZm9ybWF0XG4iCgojOiBjb3JlZmlsZS5jOjE2MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbid0IGZpbmQgLnRleHQgc2VjdGlvbiBpbiAlc1xuIgptc2dzdHIgIiVzOiBrYW4gaW50ZSBoaXR0YSAudGV4dC1zZWt0aW9uIGkgJXNcbiIKCiM6IGNvcmVmaWxlLmM6MjIwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogcmFuIG91dCByb29tIGZvciAlbHUgYnl0ZXMgb2YgdGV4dCBzcGFjZVxuIgptc2dzdHIgIiVzOiBzbHV0IHDlIHV0cnltbWUgZvZyICVsdSBieXRlIHRleHR1dHJ5bW1lXG4iCgojOiBjb3JlZmlsZS5jOjIzNAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbid0IGRvIC1jXG4iCm1zZ3N0ciAiJXM6IGthbiBpbnRlIGf2cmEgLWNcbiIKCiM6IGNvcmVmaWxlLmM6MjY1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogLWMgbm90IHN1cHBvcnRlZCBvbiBhcmNoaXRlY3R1cmUgJXNcbiIKbXNnc3RyICIlczogLWMgc3T2ZHMgaW50ZSBw5SBhcmtpdGVrdHVyZW4gJXNcbiIKCiM6IGNvcmVmaWxlLmM6NDMyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSBgJXMnIGhhcyBubyBzeW1ib2xzXG4iCm1zZ3N0ciAiJXM6IGZpbGVuIFwiJXNcIiBoYXIgaW5nYSBzeW1ib2xlclxuIgoKIzogY29yZWZpbGUuYzo3MzIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBzb21lYm9keSBtaXNjb3VudGVkOiBsdGFiLmxlbj0lZCBpbnN0ZWFkIG9mICVsZFxuIgptc2dzdHIgIiVzOiBu5WdvbiBy5GtuYWRlIGZlbDogbHRhYi5sZW49JWQgaXN05GxsZXQgZvZyICVsZFxuIgoKIzogZ21vbl9pby5jOjUwIGdtb25faW8uYzo3MQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGJmZF92bWEgaGFzIHVuZXhwZWN0ZWQgc2l6ZSBvZiAlbGQgYnl0ZXNcbiIKbXNnc3RyICIlczogYmZkX3ZtYSBoYXIgZW4gb3bkbnRhZCBzdG9ybGVrIHDlICVsZCBieXRlXG4iCgojOiBnbW9uX2lvLmM6MTA3IGdtb25faW8uYzoxOTkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlIHRvbyBzaG9ydCB0byBiZSBhIGdtb24gZmlsZVxuIgptc2dzdHIgIiVzOiBmaWxlbiDkciBm9nIga29ydCBm9nIgYXR0IHZhcmEgZW4gZ21vbi1maWxcbiIKCiM6IGdtb25faW8uYzoxMTcgZ21vbl9pby5jOjIzMwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZpbGUgYCVzJyBoYXMgYmFkIG1hZ2ljIGNvb2tpZVxuIgptc2dzdHIgIiVzOiBmaWxlbiBcIiVzXCIgaGFyIGZlbGFrdGlndCBtYWdpc2t0IHRhbFxuIgoKIzogZ21vbl9pby5jOjEyOAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZpbGUgYCVzJyBoYXMgdW5zdXBwb3J0ZWQgdmVyc2lvbiAlZFxuIgptc2dzdHIgIiVzOiBmaWxlbiBcIiVzXCIgaGFyIHZlcnNpb24gJWQgc29tIGludGUgc3T2ZHNcbiIKCiM6IGdtb25faW8uYzoxNTgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAlczogZm91bmQgYmFkIHRhZyAlZCAoZmlsZSBjb3JydXB0ZWQ/KVxuIgptc2dzdHIgIiVzOiAlczogaGl0dGFkZSBmZWxha3RpZyB0YWdnICVkICjkciBmaWxlbiBza2FkYWQ/KVxuIgoKIzogZ21vbl9pby5jOjIyMQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHByb2ZpbGluZyByYXRlIGluY29tcGF0aWJsZSB3aXRoIGZpcnN0IGdtb24gZmlsZVxuIgptc2dzdHIgIiVzOiBwcm9maWxlcmluZ3NoYXN0aWdoZXQg5HIgaW5rb21wYXRpYmVsIG1lZCBm9nJzdGEgZ21vbi1maWxlblxuIgoKIzogZ21vbl9pby5jOjI1MAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGluY29tcGF0aWJsZSB3aXRoIGZpcnN0IGdtb24gZmlsZVxuIgptc2dzdHIgIiVzOiBpbmtvbXBhdGliZWwgbWVkIGb2cnN0YSBnbW9uLWZpbGVuXG4iCgojOiBnbW9uX2lvLmM6Mjc4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSAnJXMnIGRvZXMgbm90IGFwcGVhciB0byBiZSBpbiBnbW9uLm91dCBmb3JtYXRcbiIKbXNnc3RyICIlczogZmlsZW4gXCIlc1wiIHZlcmthciBpbnRlIHZhcmEgaSBnbW9uLm91dC1mb3JtYXRcbiIKCiMgTWFuIGJydWthciB0YWxhIG9tICJiaW5zIiBpIGhhc2h0YWJlbGxlcgojCiM6IGdtb25faW8uYzoyOTkKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmV4cGVjdGVkIEVPRiBhZnRlciByZWFkaW5nICVkLyVkIGJpbnNcbiIKbXNnc3RyICIlczogb3bkbnRhdCBmaWxzbHV0IGVmdGVyIGzkc25pbmcgYXYgJWQvJWQgcG9zdGVyXG4iCgojOiBnbW9uX2lvLmM6MzM1Cm1zZ2lkICJ0aW1lIGlzIGluIHRpY2tzLCBub3Qgc2Vjb25kc1xuIgptc2dzdHIgInRpZGVuIORyIGkgdGljaywgaW50ZSBzZWt1bmRlclxuIgoKIzogZ21vbl9pby5jOjM0MSBnbW9uX2lvLmM6NDc1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZG9uJ3Qga25vdyBob3cgdG8gZGVhbCB3aXRoIGZpbGUgZm9ybWF0ICVkXG4iCm1zZ3N0ciAiJXM6IHZldCBpbnRlIGh1ciBmaWxlZm9ybWF0ICVkIHNrYSBoYW50ZXJhc1xuIgoKIzogZ21vbl9pby5jOjM0OAojLCBjLWZvcm1hdAptc2dpZCAiRmlsZSBgJXMnICh2ZXJzaW9uICVkKSBjb250YWluczpcbiIKbXNnc3RyICJGaWxlbiBcIiVzXCIgKHZlcnNpb24gJWQpIGlubmVo5WxsZXI6XG4iCgojICAgICAgcHJpbnRmIChfKCJcdCVkIGhpc3RvZ3JhbSByZWNvcmQlc1xuIiksCiMgICAgICAgICAgICAgIG5oaXN0LCBuaGlzdCA9PSAxID8gIiIgOiAicyIpOwojICAgICAgcHJpbnRmIChfKCJcdCVkIGNhbGwtZ3JhcGggcmVjb3JkJXNcbiIpLAojICAgICAgICAgICAgICBuYXJjcywgbmFyY3MgPT0gMSA/ICIiIDogInMiKTsKIyAgICAgIHByaW50ZiAoXygiXHQlZCBiYXNpYy1ibG9jayBjb3VudCByZWNvcmQlc1xuIiksCiMgICAgICAgICAgICAgIG5iYnMsIG5iYnMgPT0gMSA/ICIiIDogInMiKTsKIwojIERldHRhIORyIHRyYXNpZ3QgLSB0aGlzIGlzIGJyb2tlbgojIC0KIyBM5GdnIGFsZHJpZyB0aWxsIHMgZvZyIGF0dCBiaWxkYSBwbHVyYWwsIGFuduRuZCBpc3TkbGxldCB0duUgbWVkZGVsYW5kZW4KIyAtCiMgTmV2ZXIgYWRkIHMgdG8gZm9ybSBwbHVyYWwsIHVzZSB0d28gbWVzc2FnZXMgaW5zdGVhZAojIChvciwgZXZlbiBiZXR0ZXIsIHVzZSBuZ2V0dGV4dCkKIwojOiBnbW9uX2lvLmM6MzUwCiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGhpc3RvZ3JhbSByZWNvcmQlc1xuIgptc2dzdHIgIlx0JWQgaGlzdG9ncmFtcG9zdGVyJS4wc1xuIgoKIyBUaGlzIGlzIGJyb2tlbiBmb3IgdGhlIHNhbWUgcmVhc29uCiMKIzogZ21vbl9pby5jOjM1MgojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBjYWxsLWdyYXBoIHJlY29yZCVzXG4iCm1zZ3N0ciAiXHQlZCBhbnJvcHNncmFmcG9zdGVyJS4wc1xuIgoKIyBUaGlzIGlzIGJyb2tlbiBmb3IgdGhlIHNhbWUgcmVhc29uCiMKIzogZ21vbl9pby5jOjM1NAojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBiYXNpYy1ibG9jayBjb3VudCByZWNvcmQlc1xuIgptc2dzdHIgIlx0JWQgZ3J1bmRibG9ja3Ny5GtuaW5nc3Bvc3RlciUuMHNcbiIKCiM6IGdwcm9mLmM6MTQ1CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJVc2FnZTogJXMgWy1bYWJjRGhpbExzVHZ3eHl6XV0gWy1bQUNlRWZGSm5OT3BQcVFaXVtuYW1lXV0gWy1JIGRpcnNdXG4iCiJcdFstZFtudW1dXSBbLWsgZnJvbS90b10gWy1tIG1pbi1jb3VudF0gWy10IHRhYmxlLWxlbmd0aF1cbiIKIlx0Wy0tW25vLV1hbm5vdGF0ZWQtc291cmNlWz1uYW1lXV0gWy0tW25vLV1leGVjLWNvdW50c1s9bmFtZV1dXG4iCiJcdFstLVtuby1dZmxhdC1wcm9maWxlWz1uYW1lXV0gWy0tW25vLV1ncmFwaFs9bmFtZV1dXG4iCiJcdFstLVtuby1ddGltZT1uYW1lXSBbLS1hbGwtbGluZXNdIFstLWJyaWVmXSBbLS1kZWJ1Z1s9bGV2ZWxdXVxuIgoiXHRbLS1mdW5jdGlvbi1vcmRlcmluZ10gWy0tZmlsZS1vcmRlcmluZ11cbiIKIlx0Wy0tZGlyZWN0b3J5LXBhdGg9ZGlyc10gWy0tZGlzcGxheS11bnVzZWQtZnVuY3Rpb25zXVxuIgoiXHRbLS1maWxlLWZvcm1hdD1uYW1lXSBbLS1maWxlLWluZm9dIFstLWhlbHBdIFstLWxpbmVdIFstLW1pbi1jb3VudD1uXVxuIgoiXHRbLS1uby1zdGF0aWNdIFstLXByaW50LXBhdGhdIFstLXNlcGFyYXRlLWZpbGVzXVxuIgoiXHRbLS1zdGF0aWMtY2FsbC1ncmFwaF0gWy0tc3VtXSBbLS10YWJsZS1sZW5ndGg9bGVuXSBbLS10cmFkaXRpb25hbF1cbiIKIlx0Wy0tdmVyc2lvbl0gWy0td2lkdGg9bl0gWy0taWdub3JlLW5vbi1mdW5jdGlvbnNdXG4iCiJcdFstLWRlbWFuZ2xlWz1TVFlMRV1dIFstLW5vLWRlbWFuZ2xlXVxuIgoiXHRbaW1hZ2UtZmlsZV0gW3Byb2ZpbGUtZmlsZS4uLl1cbiIKbXNnc3RyICIiCiJBbnbkbmRuaW5nOiAlcyBbLVthYmNEaGlsTHNUdnd4eXpdXSBbLVtBQ2VFZkZKbk5PcFBxUVpdW25hbW5dXVxuIgoiXHRbLUkga2F0YWxvZ2VyXSBbLWRbdGFsXV0gWy1rIGZy5W4vdGlsbF0gWy1tIG1pbnN0YS1hbnRhbF1cbiIKIlx0Wy10IHRhYmxlLWxlbmd0aF0gWy0tW25vLV1hbm5vdGF0ZWQtc291cmNlWz1uYW1uXV1cbiIKIlx0Wy0tW25vLV1leGVjLWNvdW50c1s9bmFtbl1dIFstLVtuby1dZmxhdC1wcm9maWxlWz1uYW1uXV1cbiIKIlx0Wy0tW25vLV1ncmFwaFs9bmFtbl1dIFstLVtuby1ddGltZT1uYW1uXSBbLS1hbGwtbGluZXNdIFstLWJyaWVmXVxuIgoiXHRbLS1kZWJ1Z1s9bml25V1dIFstLWZ1bmN0aW9uLW9yZGVyaW5nXSBbLS1maWxlLW9yZGVyaW5nXVxuIgoiXHRbLS1kaXJlY3RvcnktcGF0aD1rYXRhbG9nZXJdIFstLWRpc3BsYXktdW51c2VkLWZ1bmN0aW9uc11cbiIKIlx0Wy0tZmlsZS1mb3JtYXQ9bmFtbl0gWy0tZmlsZS1pbmZvXSBbLS1oZWxwXSBbLS1saW5lXSBbLS1taW4tY291bnQ9bl1cbiIKIlx0Wy0tbm8tc3RhdGljXSBbLS1wcmludC1wYXRoXSBbLS1zZXBhcmF0ZS1maWxlc11cbiIKIlx0Wy0tc3RhdGljLWNhbGwtZ3JhcGhdIFstLXN1bV0gWy0tdGFibGUtbGVuZ3RoPWzkbmdkXSBbLS10cmFkaXRpb25hbF1cbiIKIlx0Wy0tdmVyc2lvbl0gWy0td2lkdGg9bl0gWy0taWdub3JlLW5vbi1mdW5jdGlvbnNdXG4iCiJcdFstLWRlbWFuZ2xlWz1TVElMXV0gWy0tbm8tZGVtYW5nbGVdXG4iCiJcdFtiaWxkZmlsXSBbcHJvZmlsZmlsLi4uXVxuIgoKIzogZ3Byb2YuYzoxNjEKIywgYy1mb3JtYXQKbXNnaWQgIlJlcG9ydCBidWdzIHRvICVzXG4iCm1zZ3N0ciAiIgoiUmFwcG9ydGVyYSBmZWwgdGlsbCAlcyxcbiIKIm9jaCBzeW5wdW5rdGVyIHDlIPZ2ZXJz5HR0bmluZ2VuIHRpbGwgc3ZAbGkub3JnXG4iCgojOiBncHJvZi5jOjIzMAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGRlYnVnZ2luZyBub3Qgc3VwcG9ydGVkOyAtZCBpZ25vcmVkXG4iCm1zZ3N0ciAiJXM6IGZlbHP2a25pbmcgc3T2ZHMgaW50ZTsgLWQgaWdub3JlcmFkZXNcbiIKCiM6IGdwcm9mLmM6MzEwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdW5rbm93biBmaWxlIGZvcm1hdCAlc1xuIgptc2dzdHIgIiVzOiBva+RudCBmaWxmb3JtYXQgJXNcbiIKCiMuIFRoaXMgb3V0cHV0IGlzIGludGVuZGVkIHRvIGZvbGxvdyB0aGUgR05VIHN0YW5kYXJkcyBkb2N1bWVudC4KIzogZ3Byb2YuYzozOTQKIywgYy1mb3JtYXQKbXNnaWQgIkdOVSBncHJvZiAlc1xuIgptc2dzdHIgIkdOVSBncHJvZiAlc1xuIgoKIzogZ3Byb2YuYzozOTUKbXNnaWQgIkJhc2VkIG9uIEJTRCBncHJvZiwgY29weXJpZ2h0IDE5ODMgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLlxuIgptc2dzdHIgIkJhc2VyYXQgcOUgQlNEIGdwcm9mLCBjb3B5cmlnaHQgMTk4MyBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuXG4iCgojOiBncHJvZi5jOjM5Ngptc2dpZCAiVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmUuICBUaGlzIHByb2dyYW0gaGFzIGFic29sdXRlbHkgbm8gd2FycmFudHkuXG4iCm1zZ3N0ciAiRGV0dGEgcHJvZ3JhbSDkciBmcmkgcHJvZ3JhbXZhcmEuIERldHRhIHByb2dyYW0gaGFyIGluZ2VuIHNvbSBoZWxzdCBnYXJhbnRpLlxuIgoKIzogZ3Byb2YuYzo0MzcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bmtub3duIGRlbWFuZ2xpbmcgc3R5bGUgYCVzJ1xuIgptc2dzdHIgIiVzOiBva+RuZCBhdm1hbmdsaW5nc3N0aWwgXCIlc1wiXG4iCgojOiBncHJvZi5jOjQ1NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IE9ubHkgb25lIG9mIC0tZnVuY3Rpb24tb3JkZXJpbmcgYW5kIC0tZmlsZS1vcmRlcmluZyBtYXkgYmUgc3BlY2lmaWVkLlxuIgptc2dzdHIgIiVzOiBFbmRhc3QgZW4gYXYgLS1mdW5jdGlvbi1vcmRlcmluZyBvY2ggLS1maWxlLW9yZGVyaW5nIGthbiBhbmdlcy5cbiIKCiM6IGdwcm9mLmM6NTU3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogc29ycnksIGZpbGUgZm9ybWF0IGBwcm9mJyBpcyBub3QgeWV0IHN1cHBvcnRlZFxuIgptc2dzdHIgIiVzOiB0eXbkcnIsIGZpbGZvcm1hdGV0IFwicHJvZlwiIHN09mRzIGludGUg5G5cbiIKCiM6IGdwcm9mLmM6NjE4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZ21vbi5vdXQgZmlsZSBpcyBtaXNzaW5nIGhpc3RvZ3JhbVxuIgptc2dzdHIgIiVzOiBnbW9uLm91dC1maWxlbiBzYWtuYXIgaGlzdG9ncmFtXG4iCgojOiBncHJvZi5jOjYyNQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGdtb24ub3V0IGZpbGUgaXMgbWlzc2luZyBjYWxsLWdyYXBoIGRhdGFcbiIKbXNnc3RyICIlczogZ21vbi5vdXQtZmlsZW4gc2FrbmFyIGFucm9wc2dyYWZkYXRhXG4iCgojOiBoaXN0LmM6MTU4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogYCVzJyBpcyBpbmNvbXBhdGlibGUgd2l0aCBmaXJzdCBnbW9uIGZpbGVcbiIKbXNnc3RyICIlczogXCIlc1wiIORyIGlua29tcGF0aWJlbCBtZWQgZvZyc3RhIGdtb24tZmlsZW5cbiIKCiM6IGhpc3QuYzoxNzQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAlczogdW5leHBlY3RlZCBFT0YgYWZ0ZXIgcmVhZGluZyAlZCBvZiAlZCBzYW1wbGVzXG4iCm1zZ3N0ciAiJXM6ICVzOiBvduRudGF0IGZpbHNsdXQgZWZ0ZXIgbORzbmluZyBhdiAlZCBhdiAlZCBzdGlja3Byb3ZcbiIKCiM6IGhpc3QuYzozODcKIywgYy1mb3JtYXQKbXNnaWQgIiVjJWMvY2FsbCIKbXNnc3RyICIlYyVjL2Fucm9wIgoKIzogaGlzdC5jOjM5NQptc2dpZCAiIGZvciAlLjJmJSUgb2YgJS4yZiAlc1xuXG4iCm1zZ3N0ciAiIGb2ciAlLjJmJSUgYXYgJS4yZiAlc1xuXG4iCgojOiBoaXN0LmM6NDAxCiMsIGMtZm9ybWF0Cm1zZ2lkICJcbkVhY2ggc2FtcGxlIGNvdW50cyBhcyAlZyAlcy5cbiIKbXNnc3RyICJcblZhcmplIHN0aWNrcHJvdiBy5GtuYXMgc29tICVnICVzLlxuIgoKIzogaGlzdC5jOjQwNgptc2dpZCAiIG5vIHRpbWUgYWNjdW11bGF0ZWRcblxuIgptc2dzdHIgIiBpbmdlbiBhY2t1bXVsZXJhZCB0aWRcblxuIgoKIzogaGlzdC5jOjQxMwptc2dpZCAiY3VtdWxhdGl2ZSIKbXNnc3RyICJrdW11bGF0aXYiCgojOiBoaXN0LmM6NDEzCm1zZ2lkICJzZWxmICAiCm1zZ3N0ciAic2rkbHYiCgojOiBoaXN0LmM6NDEzCm1zZ2lkICJ0b3RhbCAiCm1zZ3N0ciAidG90YWx0IgoKIzogaGlzdC5jOjQxNQptc2dpZCAidGltZSIKbXNnc3RyICJ0aWQiCgojOiBoaXN0LmM6NDE1Cm1zZ2lkICJjYWxscyIKbXNnc3RyICJhbnJvcCIKCiM6IGhpc3QuYzo1MDQKbXNnaWQgIlxuXG5cbmZsYXQgcHJvZmlsZTpcbiIKbXNnc3RyICJcblxuXG5wbGF0dCBwcm9maWw6XG4iCgojOiBoaXN0LmM6NTEwCm1zZ2lkICJGbGF0IHByb2ZpbGU6XG4iCm1zZ3N0ciAiUGxhdHQgcHJvZmlsOlxuIgoKIzogc291cmNlLmM6MTYzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY291bGQgbm90IGxvY2F0ZSBgJXMnXG4iCm1zZ3N0ciAiJXM6IGt1bmRlIGludGUgaGl0dGEgXCIlc1wiXG4iCgojOiBzb3VyY2UuYzoyMzgKIywgYy1mb3JtYXQKbXNnaWQgIioqKiBGaWxlICVzOlxuIgptc2dzdHIgIioqKiBGaWwgJXM6XG4iCgojOiB1dGlscy5jOjkzCiMsIGMtZm9ybWF0Cm1zZ2lkICIgPGN5Y2xlICVkPiIKbXNnc3RyICIgPGN5a2VsICVkPiIK