IyB0cmFkdXppb25lIGRpIHNlZAojIENvcHlyaWdodCAoQykgMTk5OSwgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgc2VkIHBhY2thZ2UuCiMgUGFvbG8gQm9uemluaSA8Ym9uemluaUBnbnUub3JnPiwgMjAwOAojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBzZWQgNC4yLjBcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctZ251LXV0aWxzQGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEyLTEyLTIyIDE0OjM2KzAxMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDgtMDEtMTYgMTI6NDQrMDEwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBQYW9sbyBCb256aW5pIDxib256aW5pQGdudS5vcmc+XG4iCiJMYW5ndWFnZS1UZWFtOiBJdGFsaWFuIDx0cEBsaXN0cy5saW51eC5pdD5cbiIKIkxhbmd1YWdlOiBpdFxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4LWJpdFxuIgoiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9biAhPSAxO1xuIgoKIyBzZWQvY29tcGlsZS5jOjE2NgojOiBzZWQvY29tcGlsZS5jOjE0NAptc2dpZCAibXVsdGlwbGUgYCEncyIKbXNnc3RyICJgIScgbXVsdGlwbGkiCgojIHNlZC9jb21waWxlLmM6MTY3CiM6IHNlZC9jb21waWxlLmM6MTQ1Cm1zZ2lkICJ1bmV4cGVjdGVkIGAsJyIKbXNnc3RyICJgLCcgaW5hdHRlc2EiCgojIHNlZC9jb21waWxlLmM6MTY5CiM6IHNlZC9jb21waWxlLmM6MTQ2Cm1zZ2lkICJpbnZhbGlkIHVzYWdlIG9mICtOIG9yIH5OIGFzIGZpcnN0IGFkZHJlc3MiCm1zZ3N0ciAiaW1wb3NzaWJpbGUgdXNhcmUgK04gbyB+TiBjb21lIHByaW1vIGluZGlyaXp6byIKCiMgc2VkL2NvbXBpbGUuYzoxNzAKIzogc2VkL2NvbXBpbGUuYzoxNDcKbXNnaWQgInVubWF0Y2hlZCBgeyciCm1zZ3N0ciAiYHsnIG5vbiBiaWxhbmNpYXRhIgoKIyBzZWQvY29tcGlsZS5jOjE3MQojOiBzZWQvY29tcGlsZS5jOjE0OAptc2dpZCAidW5leHBlY3RlZCBgfSciCm1zZ3N0ciAiYH0nIGluYXR0ZXNhIgoKIyBzZWQvY29tcGlsZS5jOjE3MgojOiBzZWQvY29tcGlsZS5jOjE0OQptc2dpZCAiZXh0cmEgY2hhcmFjdGVycyBhZnRlciBjb21tYW5kIgptc2dzdHIgImNpIHNvbm8gYWx0cmkgY2FyYXR0ZXJpIGRvcG8gaWwgY29tYW5kbyIKCiMgc2VkL2NvbXBpbGUuYzoxNzMKIzogc2VkL2NvbXBpbGUuYzoxNTAKbXNnaWQgImV4cGVjdGVkIFxcIGFmdGVyIGBhJywgYGMnIG9yIGBpJyIKbXNnc3RyICJhdHRlc28gXFwgZG9wbyBgYScsIGBjJyBvIGBpJyIKCiMgc2VkL2NvbXBpbGUuYzoxNzQKIzogc2VkL2NvbXBpbGUuYzoxNTEKbXNnaWQgImB9JyBkb2Vzbid0IHdhbnQgYW55IGFkZHJlc3NlcyIKbXNnc3RyICJgfScgbm9uIGFjY2V0dGEgaW5kaXJpenppIgoKIyBzZWQvY29tcGlsZS5jOjE3NQojOiBzZWQvY29tcGlsZS5jOjE1Mgptc2dpZCAiOiBkb2Vzbid0IHdhbnQgYW55IGFkZHJlc3NlcyIKbXNnc3RyICI6IG5vbiBhY2NldHRhIGluZGlyaXp6aSIKCiMgc2VkL2NvbXBpbGUuYzoxNzYKIzogc2VkL2NvbXBpbGUuYzoxNTMKbXNnaWQgImNvbW1lbnRzIGRvbid0IGFjY2VwdCBhbnkgYWRkcmVzc2VzIgptc2dzdHIgImkgY29tbWVudGkgbm9uIGFjY2V0dGFubyBpbmRpcml6emkiCgojIHNlZC9jb21waWxlLmM6MTc3CiM6IHNlZC9jb21waWxlLmM6MTU0Cm1zZ2lkICJtaXNzaW5nIGNvbW1hbmQiCm1zZ3N0ciAibWFuY2EgaWwgY29tYW5kbyIKCiMgc2VkL2NvbXBpbGUuYzoxNzgKIzogc2VkL2NvbXBpbGUuYzoxNTUKbXNnaWQgImNvbW1hbmQgb25seSB1c2VzIG9uZSBhZGRyZXNzIgptc2dzdHIgImlsIGNvbWFuZG8gdXNhIHNvbG8gdW4gaW5kaXJpenpvIgoKIyBzZWQvY29tcGlsZS5jOjE3OQojOiBzZWQvY29tcGlsZS5jOjE1Ngptc2dpZCAidW50ZXJtaW5hdGVkIGFkZHJlc3MgcmVnZXgiCm1zZ3N0ciAiZXNwcmVzc2lvbmUgcmVnb2xhcmUgbm9uIHRlcm1pbmF0YSBuZWxsJ2luZGlyaXp6byIKCiMgc2VkL2NvbXBpbGUuYzoxODAKIzogc2VkL2NvbXBpbGUuYzoxNTcKbXNnaWQgInVudGVybWluYXRlZCBgcycgY29tbWFuZCIKbXNnc3RyICJjb21hbmRvIGBzJyBub24gdGVybWluYXRvIgoKIyBzZWQvY29tcGlsZS5jOjE4MQojOiBzZWQvY29tcGlsZS5jOjE1OAptc2dpZCAidW50ZXJtaW5hdGVkIGB5JyBjb21tYW5kIgptc2dzdHIgImNvbWFuZG8gYHknIG5vbiB0ZXJtaW5hdG8iCgojIHNlZC9jb21waWxlLmM6MTgyCiM6IHNlZC9jb21waWxlLmM6MTU5Cm1zZ2lkICJ1bmtub3duIG9wdGlvbiB0byBgcyciCm1zZ3N0ciAib3B6aW9uZSBkaSBgcycgc2Nvbm9zY2l1dGEiCgojIHNlZC9jb21waWxlLmM6MTgzCiM6IHNlZC9jb21waWxlLmM6MTYwCm1zZ2lkICJtdWx0aXBsZSBgcCcgb3B0aW9ucyB0byBgcycgY29tbWFuZCIKbXNnc3RyICJvcHppb25pIGBwJyBtdWx0aXBsZSBhbCBjb21hbmRvIGBzJyIKCiMgc2VkL2NvbXBpbGUuYzoxODQKIzogc2VkL2NvbXBpbGUuYzoxNjEKbXNnaWQgIm11bHRpcGxlIGBnJyBvcHRpb25zIHRvIGBzJyBjb21tYW5kIgptc2dzdHIgIm9wemlvbmkgYGcnIG11bHRpcGxlIGFsIGNvbWFuZG8gYHMnIgoKIyBzZWQvY29tcGlsZS5jOjE4NgojOiBzZWQvY29tcGlsZS5jOjE2Mgptc2dpZCAibXVsdGlwbGUgbnVtYmVyIG9wdGlvbnMgdG8gYHMnIGNvbW1hbmQiCm1zZ3N0ciAib3B6aW9uaSBudW1lcmljaGUgbXVsdGlwbGUgYWwgY29tYW5kbyBgcyciCgojIHNlZC9jb21waWxlLmM6MTg4CiM6IHNlZC9jb21waWxlLmM6MTYzCm1zZ2lkICJudW1iZXIgb3B0aW9uIHRvIGBzJyBjb21tYW5kIG1heSBub3QgYmUgemVybyIKbXNnc3RyICJsJ29wemlvbmUgbnVtZXJpY2EgZGVsIGNvbWFuZG8gYHMnIG5vbiBwdfIgZXNzZXJlIHplcm8iCgojIHNlZC9jb21waWxlLmM6MTkwCiM6IHNlZC9jb21waWxlLmM6MTY0Cm1zZ2lkICJzdHJpbmdzIGZvciBgeScgY29tbWFuZCBhcmUgZGlmZmVyZW50IGxlbmd0aHMiCm1zZ3N0ciAibGUgc3RyaW5naGUgcGVyIGlsIGNvbWFuZGkgYHknIGhhbm5vIGx1bmdoZXp6ZSBkaXZlcnNlIgoKIzogc2VkL2NvbXBpbGUuYzoxNjUKbXNnaWQgImRlbGltaXRlciBjaGFyYWN0ZXIgaXMgbm90IGEgc2luZ2xlLWJ5dGUgY2hhcmFjdGVyIgptc2dzdHIgImlsIGNhcmF0dGVyZSBkZWxpbWl0YXRvcmUg6CBtdWx0aS1ieXRlIgoKIzogc2VkL2NvbXBpbGUuYzoxNjYKbXNnaWQgImV4cGVjdGVkIG5ld2VyIHZlcnNpb24gb2Ygc2VkIgptc2dzdHIgImF0dGVzYSB1bmEgdmVyc2lvbmUgcGl1JyByZWNlbnRlIGRpIHNlZCIKCiMgc2VkL2NvbXBpbGUuYzoxNzgKIzogc2VkL2NvbXBpbGUuYzoxNjcKbXNnaWQgImludmFsaWQgdXNhZ2Ugb2YgbGluZSBhZGRyZXNzIDAiCm1zZ3N0ciAidXRpbGl6em8gbm9uIHZhbGlkbyBkZWxsJ2luZGlyaXp6byAwIgoKIyBzZWQvY29tcGlsZS5jOjEzMTkKIzogc2VkL2NvbXBpbGUuYzoxNjgKIywgYy1mb3JtYXQKbXNnaWQgInVua25vd24gY29tbWFuZDogYCVjJyIKbXNnc3RyICJjb21hbmRvIHNjb25vc2NpdXRvOiBgJWMnIgoKIyBzZWQvY29tcGlsZS5jOjE3NwojOiBzZWQvY29tcGlsZS5jOjE2OQojLCBmdXp6eQptc2dpZCAiaW5jb21wbGV0ZSBjb21tYW5kIgptc2dzdHIgIm1hbmNhIGlsIGNvbWFuZG8iCgojIHNlZC9jb21waWxlLmM6MTM0MAojOiBzZWQvY29tcGlsZS5jOjE5MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZpbGUgJXMgbGluZSAlbHU6ICVzXG4iCm1zZ3N0ciAiJXM6IGZpbGUgJXMgcmlnYSAlbHU6ICVzXG4iCgojIHNlZC9jb21waWxlLmM6MTM0MwojOiBzZWQvY29tcGlsZS5jOjE5NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IC1lIGV4cHJlc3Npb24gIyVsdSwgY2hhciAlbHU6ICVzXG4iCm1zZ3N0ciAiJXM6IGVzcHJlc3Npb25lIC1lICMlbHUsIGNhcmF0dGVyZSAlbHU6ICVzXG4iCgojIHNlZC9jb21waWxlLmM6MTU0MwojOiBzZWQvY29tcGlsZS5jOjE2NTcKIywgYy1mb3JtYXQKbXNnaWQgImNhbid0IGZpbmQgbGFiZWwgZm9yIGp1bXAgdG8gYCVzJyIKbXNnc3RyICJpbXBvc3NpYmlsZSB0cm92YXJlIHVuJ2V0aWNoZXR0YSBwZXIgaWwgc2FsdG8gYSBgJXMnIgoKIyBzZWQvZXhlY3V0ZS5jOjUxNgojOiBzZWQvZXhlY3V0ZS5jOjU5NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNhbid0IHJlYWQgJXM6ICVzXG4iCm1zZ3N0ciAiJXM6IGltcG9zc2liaWxlIGxlZ2dlcmUgJXM6ICVzXG4iCgojIHNlZC9leGVjdXRlLmM6Njc1CiM6IHNlZC9leGVjdXRlLmM6NjI0CiMsIGMtZm9ybWF0Cm1zZ2lkICJjb3VsZG4ndCBlZGl0ICVzOiBpcyBhIHRlcm1pbmFsIgptc2dzdHIgImltcG9zc2liaWxlIG1vZGlmaWNhcmUgJXM6IOggdW4gdGVybWluYWxlIgoKIzogc2VkL2V4ZWN1dGUuYzo2MjkKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IGVkaXQgJXM6IG5vdCBhIHJlZ3VsYXIgZmlsZSIKbXNnc3RyICJpbXBvc3NpYmlsZSBtb2RpZmljYXJlICVzOiBub24g6CB1biBmaWxlIG5vcm1hbGUiCgojOiBzZWQvZXhlY3V0ZS5jOjY0MAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHdhcm5pbmc6IGZhaWxlZCB0byBzZXQgZGVmYXVsdCBmaWxlIGNyZWF0aW9uIGNvbnRleHQgdG8gJXM6ICVzIgptc2dzdHIgIiIKCiM6IHNlZC9leGVjdXRlLmM6NjQ3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogd2FybmluZzogZmFpbGVkIHRvIGdldCBzZWN1cml0eSBjb250ZXh0IG9mICVzOiAlcyIKbXNnc3RyICIiCgojIGxpYi91dGlscy5jOjEzMQojOiBzZWQvZXhlY3V0ZS5jOjY2NCBzZWQvdXRpbHMuYzoyMTEKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IG9wZW4gdGVtcG9yYXJ5IGZpbGUgJXM6ICVzIgptc2dzdHIgImltcG9zc2liaWxlIGFwcmlyZSBpbCBmaWxlIHRlbXBvcmFuZW8gJXM6ICVzIgoKIyBzZWQvZXhlY3V0ZS5jOjEwMDMgc2VkL2V4ZWN1dGUuYzoxMTgzCiM6IHNlZC9leGVjdXRlLmM6MTE5MyBzZWQvZXhlY3V0ZS5jOjEzNzMKbXNnaWQgImVycm9yIGluIHN1YnByb2Nlc3MiCm1zZ3N0ciAiZXJyb3JlIGluIHVuIHNvdHRvcHJvY2Vzc28iCgojIHNlZC9leGVjdXRlLmM6MTAwNQojOiBzZWQvZXhlY3V0ZS5jOjExOTUKbXNnaWQgIm9wdGlvbiBgZScgbm90IHN1cHBvcnRlZCIKbXNnc3RyICJvcHppb25lIGBlJyBub24gc3VwcG9ydGF0YSIKCiMgc2VkL2V4ZWN1dGUuYzoxMTg1CiM6IHNlZC9leGVjdXRlLmM6MTM3NQptc2dpZCAiYGUnIGNvbW1hbmQgbm90IHN1cHBvcnRlZCIKbXNnc3RyICJjb21hbmRvIGBlJyBub24gc3VwcG9ydGF0byIKCiM6IHNlZC9leGVjdXRlLmM6MTcyNQptc2dpZCAibm8gaW5wdXQgZmlsZXMiCm1zZ3N0ciAibmVzc3VuIGZpbGUgaW4gaW5ncmVzc28iCgojIGxpYi9yZWdjb21wLmM6NjU4IHNlZC9yZWdleC5jOjQ3CiM6IHNlZC9yZWdleHAuYzozOQptc2dpZCAibm8gcHJldmlvdXMgcmVndWxhciBleHByZXNzaW9uIgptc2dzdHIgIm9jY29ycmUgdW4nZXNwcmVzc2lvbmUgcmVnb2xhcmUgcHJlY2VkZW50ZSIKCiMgc2VkL3JlZ2V4LmM6NDgKIzogc2VkL3JlZ2V4cC5jOjQwCm1zZ2lkICJjYW5ub3Qgc3BlY2lmeSBtb2RpZmllcnMgb24gZW1wdHkgcmVnZXhwIgptc2dzdHIgIm5vbiDoIHBvc3NpYmlsZSBzcGVjaWZpY2FyZSBkZWkgbW9kaWZpY2F0b3JpIHBlciBsJ2VzcHJlc3Npb25lIHZ1b3RhIgoKIyBzZWQvcmVnZXguYzoxNDYKIzogc2VkL3JlZ2V4cC5jOjEyOQojLCBjLWZvcm1hdAptc2dpZCAiaW52YWxpZCByZWZlcmVuY2UgXFwlZCBvbiBgcycgY29tbWFuZCdzIFJIUyIKbXNnc3RyICJyaWZlcmltZW50byBub24gdmFsaWRvIFxcJWQgbmVsIHNlY29uZG8gbWVtYnJvIGRlbCBjb21hbmRvIGBzJyIKCiM6IHNlZC9zZWQuYzozMgptc2dpZCAiSmF5IEZlbmxhc29uIgptc2dzdHIgIiIKCiM6IHNlZC9zZWQuYzozMwptc2dpZCAiVG9tIExvcmQiCm1zZ3N0ciAiIgoKIzogc2VkL3NlZC5jOjM0Cm1zZ2lkICJLZW4gUGl6emluaSIKbXNnc3RyICIiCgojOiBzZWQvc2VkLmM6MzUKbXNnaWQgIlBhb2xvIEJvbnppbmkiCm1zZ3N0ciAiIgoKIzogc2VkL3NlZC5jOjc5CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJHTlUgc2VkIGhvbWUgcGFnZTogPGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9zZWQvPi5cbiIKIkdlbmVyYWwgaGVscCB1c2luZyBHTlUgc29mdHdhcmU6IDxodHRwOi8vd3d3LmdudS5vcmcvZ2V0aGVscC8+LlxuIgptc2dzdHIgIiIKCiMgc2VkL3NlZC5jOjEzMgojOiBzZWQvc2VkLmM6ODYKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIiCiJFLW1haWwgYnVnIHJlcG9ydHMgdG86IDwlcz4uXG4iCiJCZSBzdXJlIHRvIGluY2x1ZGUgdGhlIHdvcmQgYGAlcycnIHNvbWV3aGVyZSBpbiB0aGUgYGBTdWJqZWN0OicnIGZpZWxkLlxuIgptc2dzdHIgIiIKIlNlZ25hbGFyZSBldmVudHVhbGkgYnVnIGE6ICVzIC5cbiIKIkFzc2ljdXJhcnNpIGRpIGluY2x1ZGVyZSBsYSBwYXJvbGEgYGAlcycnIG5lbGwnb2dnZXR0byBkZWwgbWVzc2FnZ2lvLlxuIgoKIyBzZWQvc2VkLmM6OTgKIzogc2VkL3NlZC5jOjk5Cm1zZ2lkICIiCiIgIC1SLCAtLXJlZ2V4cC1wZXJsXG4iCiIgICAgICAgICAgICAgICAgIHVzZSBQZXJsIDUncyByZWd1bGFyIGV4cHJlc3Npb25zIHN5bnRheCBpbiB0aGUgc2NyaXB0LlxuIgptc2dzdHIgIiIKIiAgLVIsIC0tcmVnZXhwLXBlcmxcbiIKIiAgICAgICAgICAgICAgICAgdXNhIGxhIHNpbnRhc3NpIFBlcmwgNSBwZXIgbGUgZXNwcmVzc2lvbmkgcmVnb2xhcmlcbiIKCiM6IHNlZC9zZWQuYzoxMDQKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlVzYWdlOiAlcyBbT1BUSU9OXS4uLiB7c2NyaXB0LW9ubHktaWYtbm8tb3RoZXItc2NyaXB0fSBbaW5wdXQtZmlsZV0uLi5cbiIKIlxuIgptc2dzdHIgIiIKIlV0aWxpenpvOiAlcyBbT1BaSU9ORV0uLi4ge3NjcmlwdC1zZS1uZXNzdW4tYWx0cm8tc3BlY2lmaWNhdG99IFtpbnB1dC0iCiJmaWxlXS4uLlxuIgoiXG4iCgojOiBzZWQvc2VkLmM6MTA4CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1uLCAtLXF1aWV0LCAtLXNpbGVudFxuIgoiICAgICAgICAgICAgICAgICBzdXBwcmVzcyBhdXRvbWF0aWMgcHJpbnRpbmcgb2YgcGF0dGVybiBzcGFjZVxuIgptc2dzdHIgIiIKIiAgLW4sIC0tcXVpZXQsIC0tc2lsZW50XG4iCiIgICAgICAgICAgICAgICAgIHNvcHByaW1lIGxhIHN0YW1wYSBhdXRvbWF0aWNhIGRlbCBwYXR0ZXJuIHNwYWNlXG4iCgojOiBzZWQvc2VkLmM6MTEwCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1lIHNjcmlwdCwgLS1leHByZXNzaW9uPXNjcmlwdFxuIgoiICAgICAgICAgICAgICAgICBhZGQgdGhlIHNjcmlwdCB0byB0aGUgY29tbWFuZHMgdG8gYmUgZXhlY3V0ZWRcbiIKbXNnc3RyICIiCiIgIC1lIHNjcmlwdCwgLS1leHByZXNzaW9uPXNjcmlwdFxuIgoiICAgICAgICAgICAgICAgICBhZ2dpdW5nZSBsbyBzY3JpcHQgYWkgY29tYW5kaSBkYSBlc2VndWlyZVxuIgoKIzogc2VkL3NlZC5jOjExMgojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtZiBzY3JpcHQtZmlsZSwgLS1maWxlPXNjcmlwdC1maWxlXG4iCiIgICAgICAgICAgICAgICAgIGFkZCB0aGUgY29udGVudHMgb2Ygc2NyaXB0LWZpbGUgdG8gdGhlIGNvbW1hbmRzIHRvIGJlICIKImV4ZWN1dGVkXG4iCm1zZ3N0ciAiIgoiICAtZiBzY3JpcHQtZmlsZSwgLS1maWxlPWZpbGUtc2NyaXB0XG4iCiIgICAgICAgICAgICAgICAgIGFnZ2l1bmdlIGlsIGNvbnRlbnV0byBkaSBmaWxlLXNjcmlwdCBhaSBjb21hbmRpIGRhICIKImVzZWd1aXJlXG4iCgojOiBzZWQvc2VkLmM6MTE1CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC0tZm9sbG93LXN5bWxpbmtzXG4iCiIgICAgICAgICAgICAgICAgIGZvbGxvdyBzeW1saW5rcyB3aGVuIHByb2Nlc3NpbmcgaW4gcGxhY2VcbiIKbXNnc3RyICIiCiIgIC0tZm9sbG93LXN5bWxpbmtzXG4iCiIgICAgICAgICAgICAgICAgIHNlZ3VlIGkgbGluayBzaW1ib2xpY2kgcXVhbmRvIHZpZW5lIHV0aWxpenphdG8gLWlcbiIKCiM6IHNlZC9zZWQuYzoxMTgKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1pW1NVRkZJWF0sIC0taW4tcGxhY2VbPVNVRkZJWF1cbiIKIiAgICAgICAgICAgICAgICAgZWRpdCBmaWxlcyBpbiBwbGFjZSAobWFrZXMgYmFja3VwIGlmIFNVRkZJWCBzdXBwbGllZClcbiIKbXNnc3RyICIiCiIgIC1pW1NVRkZJWF0sIC0taW4tcGxhY2VbPVNVRkZJWF1cbiIKIiAgICAgICAgICAgICAgICAgc2NyaXZlIGlsIHJpc3VsdGF0byBzdWwgZmlsZSBvcmlnaW5hbGUgKGZhY2VuZG8gdW5hIGNvcGlhXG4iCiIgICAgICAgICAgICAgICAgIHNlIOggZm9ybml0YSB1bidlc3RlbnNpb25lKVxuIgoKIzogc2VkL3NlZC5jOjEyMQojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtYiwgLS1iaW5hcnlcbiIKIiAgICAgICAgICAgICAgICAgb3BlbiBmaWxlcyBpbiBiaW5hcnkgbW9kZSAoQ1IrTEZzIGFyZSBub3QgcHJvY2Vzc2VkICIKInNwZWNpYWxseSlcbiIKbXNnc3RyICIiCiIgIC1iLCAtLWJpbmFyeVxuIgoiICAgICAgICAgICAgICAgICBhcHJlIGkgZmlsZSBpbiBtb2RvIGJpbmFyaW8gKGxhc2NpYW5kbyBsZSBzZXF1ZW56ZSBDUitMRiAiCiJpbW11dGF0ZSlcbiIKCiM6IHNlZC9zZWQuYzoxMjQKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLWwgTiwgLS1saW5lLWxlbmd0aD1OXG4iCiIgICAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIGRlc2lyZWQgbGluZS13cmFwIGxlbmd0aCBmb3IgdGhlIGBsJyBjb21tYW5kXG4iCm1zZ3N0ciAiIgoiICAtbCBOLCAtLWxpbmUtbGVuZ3RoPU5cbiIKIiAgICAgICAgICAgICAgICAgc3BlY2lmaWNhIGxhIGx1bmdoZXp6YSBkZWxsZSBsaW5lZSBnZW5lcmF0ZSBkYWwgY29tYW5kbyAiCiJgbCdcbiIKCiM6IHNlZC9zZWQuYzoxMjYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLS1wb3NpeFxuIgoiICAgICAgICAgICAgICAgICBkaXNhYmxlIGFsbCBHTlUgZXh0ZW5zaW9ucy5cbiIKbXNnc3RyICIiCiIgIC0tcG9zaXhcbiIKIiAgICAgICAgICAgICAgICAgZGlzYWJpbGl0YSB0dXR0ZSBsZSBlc3RlbnNpb25pIEdOVS5cbiIKCiMgc2VkL3NlZC5jOjk4CiM6IHNlZC9zZWQuYzoxMjgKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXIsIC0tcmVnZXhwLWV4dGVuZGVkXG4iCiIgICAgICAgICAgICAgICAgIHVzZSBleHRlbmRlZCByZWd1bGFyIGV4cHJlc3Npb25zIGluIHRoZSBzY3JpcHQuXG4iCm1zZ3N0ciAiIgoiICAtciwgLS1yZWdleHAtZXh0ZW5kZWRcbiIKIiAgICAgICAgICAgICAgICAgdXNhIGxhIHNpbnRhc3NpIGRpIGBlZ3JlcCcgcGVyIGxlIGVzcHJlc3Npb25pIHJlZ29sYXJpXG4iCgojOiBzZWQvc2VkLmM6MTMzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1zLCAtLXNlcGFyYXRlXG4iCiIgICAgICAgICAgICAgICAgIGNvbnNpZGVyIGZpbGVzIGFzIHNlcGFyYXRlIHJhdGhlciB0aGFuIGFzIGEgc2luZ2xlICIKImNvbnRpbnVvdXNcbiIKIiAgICAgICAgICAgICAgICAgbG9uZyBzdHJlYW0uXG4iCm1zZ3N0ciAiIgoiICAtcywgLS1zZXBhcmF0ZVxuIgoiICAgICAgICAgICAgICAgICBjb25zaWRlcmEgaSBmaWxlIGRpIGlucHV0IGNvbWUgc2VwYXJhdGkgaW52ZWNlIGNoZSBjb21lIHVuXG4iCiIgICAgICAgICAgICAgICAgIHVuaWNvIGZpbGUgbHVuZ28uXG4iCgojOiBzZWQvc2VkLmM6MTM2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC11LCAtLXVuYnVmZmVyZWRcbiIKIiAgICAgICAgICAgICAgICAgbG9hZCBtaW5pbWFsIGFtb3VudHMgb2YgZGF0YSBmcm9tIHRoZSBpbnB1dCBmaWxlcyBhbmQgIgoiZmx1c2hcbiIKIiAgICAgICAgICAgICAgICAgdGhlIG91dHB1dCBidWZmZXJzIG1vcmUgb2Z0ZW5cbiIKbXNnc3RyICIiCiIgIC11LCAtLXVuYnVmZmVyZWRcbiIKIiAgICAgICAgICAgICAgICAgY2FyaWNhIGUgdmlzdWFsaXp6YSBpIGRhdGkgdW5hIGEgcGV6emV0dGkgcGl1JyBwaWNjb2xpXG4iCgojOiBzZWQvc2VkLmM6MTM5CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC16LCAtLW51bGwtZGF0YVxuIgoiICAgICAgICAgICAgICAgICBzZXBhcmF0ZSBsaW5lcyBieSBOVUwgY2hhcmFjdGVyc1xuIgptc2dzdHIgIiIKCiM6IHNlZC9zZWQuYzoxNDEKIywgYy1mb3JtYXQKbXNnaWQgIiAgICAgIC0taGVscCAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXRcbiIKbXNnc3RyICIgICAgICAtLWhlbHAgICAgIG1vc3RyYSBxdWVzdG8gYWl1dG8gZWQgZXNjZVxuIgoKIzogc2VkL3NlZC5jOjE0MgojLCBjLWZvcm1hdAptc2dpZCAiICAgICAgLS12ZXJzaW9uICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdFxuIgptc2dzdHIgIiAgICAgIC0tdmVyc2lvbiAgc3RhbXBhIGxlIGluZm9ybWF6aW9uaSBzdWxsYSB2ZXJzaW9uZSBlZCBlc2NlXG4iCgojOiBzZWQvc2VkLmM6MTQzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIklmIG5vIC1lLCAtLWV4cHJlc3Npb24sIC1mLCBvciAtLWZpbGUgb3B0aW9uIGlzIGdpdmVuLCB0aGVuIHRoZSBmaXJzdFxuIgoibm9uLW9wdGlvbiBhcmd1bWVudCBpcyB0YWtlbiBhcyB0aGUgc2VkIHNjcmlwdCB0byBpbnRlcnByZXQuICBBbGxcbiIKInJlbWFpbmluZyBhcmd1bWVudHMgYXJlIG5hbWVzIG9mIGlucHV0IGZpbGVzOyBpZiBubyBpbnB1dCBmaWxlcyBhcmVcbiIKInNwZWNpZmllZCwgdGhlbiB0aGUgc3RhbmRhcmQgaW5wdXQgaXMgcmVhZC5cbiIKIlxuIgptc2dzdHIgIiIKIlxuIgoiU2Ugbm9uIOggdXNhdGEgbmVzc3VuYSBkZWxsZSBvcHppb25pIC1lLCAtLWV4cHJlc3Npb24sIC1mIG8gLS1maWxlIGFsbG9yYSAiCiJpbFxuIgoicHJpbW8gYXJnb21lbnRvIGNoZSBub24g6CB1bmEgb3B6aW9uZSBzYXLgIHVzYXRvIGNvbWUgbG8gc2NyaXB0IHNlZCBkYVxuIgoiaW50ZXJwcmV0YXJlLiBUdXR0aSBnbGkgYXJnb21lbnRpIHJpbWFuZW50aSBzb25vIG5vbWkgZGkgZmlsZSBkaSBpbnB1dDsgc2UgIgoibm9uXG4iCiJzb25vIHNwZWNpZmljYXRpIGZpbGUgZGkgaW5wdXQgc2Fy4CBsZXR0byBsbyBzdGFuZGFyZCBpbnB1dC5cbiIKIlxuIgoKIyBzZWQvZXhlY3V0ZS5jOjUxNgojOiBzZWQvdXRpbHMuYzo3NCBzZWQvdXRpbHMuYzo0MzIKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCByZW1vdmUgJXM6ICVzIgptc2dzdHIgImltcG9zc2liaWxlIHJpbXVvdmVyZSAlczogJXMiCgojIGxpYi91dGlscy5jOjEzMQojOiBzZWQvdXRpbHMuYzoxNDQKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IG9wZW4gZmlsZSAlczogJXMiCm1zZ3N0ciAiaW1wb3NzaWJpbGUgYXByaXJlIGlsIGZpbGUgJXM6ICVzIgoKIyBsaWIvdXRpbHMuYzoxNjEKIzogc2VkL3V0aWxzLmM6MTY3CiMsIGMtZm9ybWF0Cm1zZ2lkICJjb3VsZG4ndCBhdHRhY2ggdG8gJXM6ICVzIgptc2dzdHIgImltcG9zc2liaWxlIGFjY2VkZXJlIGEgJXM6ICVzIgoKIyBsaWIvdXRpbHMuYzoxNjEKIzogc2VkL3V0aWxzLmM6MjI5CiMsIGMtZm9ybWF0Cm1zZ2lkICJjb3VsZG4ndCB3cml0ZSAlZCBpdGVtIHRvICVzOiAlcyIKbXNnaWRfcGx1cmFsICJjb3VsZG4ndCB3cml0ZSAlZCBpdGVtcyB0byAlczogJXMiCm1zZ3N0clswXSAiaW1wb3NzaWJpbGUgc2NyaXZlcmUgJWQgZWxlbWVudG8gc3UgJXM6ICVzIgptc2dzdHJbMV0gImltcG9zc2liaWxlIHNjcml2ZXJlICVkIGVsZW1lbnRpIHN1ICVzOiAlcyIKCiMgbGliL3V0aWxzLmM6MTc2CiM6IHNlZC91dGlscy5jOjI0NCBzZWQvdXRpbHMuYzoyNjcKIywgYy1mb3JtYXQKbXNnaWQgInJlYWQgZXJyb3Igb24gJXM6ICVzIgptc2dzdHIgImVycm9yZSBkaSBsZXR0dXJhIHN1ICVzOiAlcyIKCiMgbGliL3V0aWxzLmM6MTMxCiM6IHNlZC91dGlscy5jOjM3MgojLCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3QgZm9sbG93IHN5bWxpbmsgJXM6ICVzIgptc2dzdHIgImltcG9zc2liaWxlIHNlZ3VpcmUgaWwgbGluayBzaW1ib2xpY28gJXM6ICVzIgoKIyBzZWQvZXhlY3V0ZS5jOjUxNgojOiBzZWQvdXRpbHMuYzo0MDYKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCBzdGF0ICVzOiAlcyIKbXNnc3RyICJpbXBvc3NpYmlsZSBvdHRlbmVyZSBpbmZvcm1hemlvbmkgc3UgJXM6ICVzIgoKIyBzZWQvZXhlY3V0ZS5jOjUxNgojOiBzZWQvdXRpbHMuYzo0MzcKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCByZW5hbWUgJXM6ICVzIgptc2dzdHIgImltcG9zc2liaWxlIHJpbm9taW5hcmUgJXM6ICVzIgoKIyBsaWIvcmVnY29tcC5jOjE3OQojOiBsaWIvcmVnY29tcC5jOjEzMgptc2dpZCAiU3VjY2VzcyIKbXNnc3RyICJTdWNjZXNzbyIKCiMgbGliL3JlZ2NvbXAuYzoxODIKIzogbGliL3JlZ2NvbXAuYzoxMzUKbXNnaWQgIk5vIG1hdGNoIgptc2dzdHIgIk5lc3N1bmEgY29ycmlzcG9uZGVuemEgdHJvdmF0YSIKCiMgbGliL3JlZ2NvbXAuYzoxODUKIzogbGliL3JlZ2NvbXAuYzoxMzgKbXNnaWQgIkludmFsaWQgcmVndWxhciBleHByZXNzaW9uIgptc2dzdHIgIkVzcHJlc3Npb25lIHJlZ29sYXJlIG5vbiB2YWxpZGEiCgojIGxpYi9yZWdjb21wLmM6MTg4CiM6IGxpYi9yZWdjb21wLmM6MTQxCm1zZ2lkICJJbnZhbGlkIGNvbGxhdGlvbiBjaGFyYWN0ZXIiCm1zZ3N0ciAiQ2FyYXR0ZXJlIGRpIG9yZGluYW1lbnRvIG5vbiB2YWxpZG8iCgojIGxpYi9yZWdjb21wLmM6MTkxCiM6IGxpYi9yZWdjb21wLmM6MTQ0Cm1zZ2lkICJJbnZhbGlkIGNoYXJhY3RlciBjbGFzcyBuYW1lIgptc2dzdHIgIk5vbWUgbm9uIHZhbGlkbyBwZXIgdW5hIGNsYXNzZSBkaSBjYXJhdHRlcmkiCgojIGxpYi9yZWdjb21wLmM6MTk0CiM6IGxpYi9yZWdjb21wLmM6MTQ3Cm1zZ2lkICJUcmFpbGluZyBiYWNrc2xhc2giCm1zZ3N0ciAiQmFycmEgcm92ZXNjaWF0YSBhbGxhIGZpbmUgZGVsbCdlc3ByZXNzaW9uZSByZWdvbGFyZSIKCiMgbGliL3JlZ2NvbXAuYzoxOTcKIzogbGliL3JlZ2NvbXAuYzoxNTAKbXNnaWQgIkludmFsaWQgYmFjayByZWZlcmVuY2UiCm1zZ3N0ciAiUmlmZXJpbWVudG8gbm9uIHZhbGlkbyIKCiMgbGliL3JlZ2NvbXAuYzoyMDAKIzogbGliL3JlZ2NvbXAuYzoxNTMKbXNnaWQgIlVubWF0Y2hlZCBbIG9yIFteIgptc2dzdHIgImBbJyBub24gYmlsYW5jaWF0YSIKCiMgbGliL3JlZ2NvbXAuYzoyMDMKIzogbGliL3JlZ2NvbXAuYzoxNTYKbXNnaWQgIlVubWF0Y2hlZCAoIG9yIFxcKCIKbXNnc3RyICJgKCcgbyBgXFwoJyBub24gYmlsYW5jaWF0YSIKCiMgbGliL3JlZ2NvbXAuYzoyMDYKIzogbGliL3JlZ2NvbXAuYzoxNTkKbXNnaWQgIlVubWF0Y2hlZCBcXHsiCm1zZ3N0ciAiYFxceycgbm9uIGJpbGFuY2lhdGEiCgojIGxpYi9yZWdjb21wLmM6MjA5CiM6IGxpYi9yZWdjb21wLmM6MTYyCm1zZ2lkICJJbnZhbGlkIGNvbnRlbnQgb2YgXFx7XFx9Igptc2dzdHIgIm51bWVybyBkaSByaXBldGl6aW9uaSBzcGVjaWZpY2F0byB0cmEgZ3JhZmZlIG5vbiB2YWxpZG8iCgojIGxpYi9yZWdjb21wLmM6MjEyCiM6IGxpYi9yZWdjb21wLmM6MTY1Cm1zZ2lkICJJbnZhbGlkIHJhbmdlIGVuZCIKbXNnc3RyICJGaW5lIGRlbGwnaW50ZXJ2YWxsbyBub24gdmFsaWRhIgoKIyBsaWIvcmVnY29tcC5jOjIxNQojOiBsaWIvcmVnY29tcC5jOjE2OAptc2dpZCAiTWVtb3J5IGV4aGF1c3RlZCIKbXNnc3RyICJNZW1vcmlhIGVzYXVyaXRhIgoKIyBsaWIvcmVnY29tcC5jOjIxOAojOiBsaWIvcmVnY29tcC5jOjE3MQptc2dpZCAiSW52YWxpZCBwcmVjZWRpbmcgcmVndWxhciBleHByZXNzaW9uIgptc2dzdHIgIkVzcHJlc3Npb25lIHJlZ29sYXJlIHByZWNlZGVudGUgbm9uIHZhbGlkYSIKCiMgbGliL3JlZ2NvbXAuYzoyMjEKIzogbGliL3JlZ2NvbXAuYzoxNzQKbXNnaWQgIlByZW1hdHVyZSBlbmQgb2YgcmVndWxhciBleHByZXNzaW9uIgptc2dzdHIgIkZpbmUgcHJlbWF0dXJhIGRlbGwnZXNwcmVzc2lvbmUgcmVnb2xhcmUiCgojIGxpYi9yZWdjb21wLmM6MjI0CiM6IGxpYi9yZWdjb21wLmM6MTc3Cm1zZ2lkICJSZWd1bGFyIGV4cHJlc3Npb24gdG9vIGJpZyIKbXNnc3RyICJFc3ByZXNzaW9uZSByZWdvbGFyZSB0cm9wcG8gZ3JhbmRlIgoKIyBsaWIvcmVnY29tcC5jOjIyNwojOiBsaWIvcmVnY29tcC5jOjE4MAptc2dpZCAiVW5tYXRjaGVkICkgb3IgXFwpIgptc2dzdHIgImApJyBvIGBcXCknIG5vbiBiaWxhbmNpYXRhIgoKIyBsaWIvcmVnY29tcC5jOjY1OCBzZWQvcmVnZXguYzo0NwojOiBsaWIvcmVnY29tcC5jOjcwNQptc2dpZCAiTm8gcHJldmlvdXMgcmVndWxhciBleHByZXNzaW9uIgptc2dzdHIgIk9jY29ycmUgdW4nZXNwcmVzc2lvbmUgcmVnb2xhcmUgcHJlY2VkZW50ZSIKCiMgc2VkL3NlZC5jOjI1NQojfiBtc2dpZCAic3VwZXItc2VkIHZlcnNpb24gJXNcbiIKI34gbXNnc3RyICJzdXBlci1zZWQgdmVyc2lvbmUgJXNcbiIKCiMgc2VkL3NlZC5jOjI1NgojfiBtc2dpZCAiIgojfiAiYmFzZWQgb24gR05VIHNlZCB2ZXJzaW9uICVzXG4iCiN+ICJcbiIKI34gbXNnc3RyICIiCiN+ICJiYXNhdG8gc3UgR05VIHNlZCB2ZXJzaW9uZSAlc1xuIgojfiAiXG4iCgojIHNlZC9zZWQuYzoyNTgKI34gbXNnaWQgIkdOVSBzZWQgdmVyc2lvbiAlc1xuIgojfiBtc2dzdHIgIkdOVSBzZWQgdmVyc2lvbmUgJXNcbiIKCiMgc2VkL3NlZC5jOjI2MAojfiBtc2dpZCAiIgojfiAiJXNcbiIKI34gIlRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzICIKI34gIk5PXG4iCiN+ICJ3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgIgojfiAiUFVSUE9TRSxcbiIKI34gInRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdy5cbiIKI34gbXNnc3RyICIiCiN+ICIlc1xuIgojfiAiUXVlc3RvIOggc29mdHdhcmUgbGliZXJvOyBzaSB2ZWRhIGlsIHNvcmdlbnRlIHBlciBsZSBjb25kaXppb25pIGRpICIKI34gImNvcGlhdHVyYS5cbiIKI34gIk5PTiBjJ+ggZ2FyYW56aWE7IG5lcHB1cmUgZGkgQ09NTUVSQ0lBQklMSVRBJyBvIElET05FSVRBJyBBRCBVTiAiCiN+ICJQQVJUSUNPTEFSRVxuIgojfiAiU0NPUE8sIG5laSBsaW1pdGkgcGVybWVzc2kgZGFsbGEgbGVnZ2UuXG4iCg==