IyB0cmFkdXppb25lIGRpIHNlZAojIENvcHlyaWdodCAoQykgMTk5OSwgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgc2VkIHBhY2thZ2UuCiMgUGFvbG8gQm9uemluaSA8Ym9uemluaUBnbnUub3JnPiwgMjAwOAojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBzZWQgNC4yLjBcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctZ251LXV0aWxzQGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA5LTA2LTI3IDE1OjA4KzAyMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDgtMDEtMTYgMTI6NDQrMDEwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBQYW9sbyBCb256aW5pIDxib256aW5pQGdudS5vcmc+XG4iCiJMYW5ndWFnZS1UZWFtOiBJdGFsaWFuIDx0cEBsaXN0cy5saW51eC5pdD5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOC1iaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPW4gIT0gMTtcbiIKCiMgc2VkL2NvbXBpbGUuYzoxNjYKIzogc2VkL2NvbXBpbGUuYzoxNjEKbXNnaWQgIm11bHRpcGxlIGAhJ3MiCm1zZ3N0ciAiYCEnIG11bHRpcGxpIgoKIyBzZWQvY29tcGlsZS5jOjE2NwojOiBzZWQvY29tcGlsZS5jOjE2Mgptc2dpZCAidW5leHBlY3RlZCBgLCciCm1zZ3N0ciAiYCwnIGluYXR0ZXNhIgoKIyBzZWQvY29tcGlsZS5jOjE2OQojOiBzZWQvY29tcGlsZS5jOjE2Mwptc2dpZCAiaW52YWxpZCB1c2FnZSBvZiArTiBvciB+TiBhcyBmaXJzdCBhZGRyZXNzIgptc2dzdHIgImltcG9zc2liaWxlIHVzYXJlICtOIG8gfk4gY29tZSBwcmltbyBpbmRpcml6em8iCgojIHNlZC9jb21waWxlLmM6MTcwCiM6IHNlZC9jb21waWxlLmM6MTY0Cm1zZ2lkICJ1bm1hdGNoZWQgYHsnIgptc2dzdHIgImB7JyBub24gYmlsYW5jaWF0YSIKCiMgc2VkL2NvbXBpbGUuYzoxNzEKIzogc2VkL2NvbXBpbGUuYzoxNjUKbXNnaWQgInVuZXhwZWN0ZWQgYH0nIgptc2dzdHIgImB9JyBpbmF0dGVzYSIKCiMgc2VkL2NvbXBpbGUuYzoxNzIKIzogc2VkL2NvbXBpbGUuYzoxNjYKbXNnaWQgImV4dHJhIGNoYXJhY3RlcnMgYWZ0ZXIgY29tbWFuZCIKbXNnc3RyICJjaSBzb25vIGFsdHJpIGNhcmF0dGVyaSBkb3BvIGlsIGNvbWFuZG8iCgojIHNlZC9jb21waWxlLmM6MTczCiM6IHNlZC9jb21waWxlLmM6MTY3Cm1zZ2lkICJleHBlY3RlZCBcXCBhZnRlciBgYScsIGBjJyBvciBgaSciCm1zZ3N0ciAiYXR0ZXNvIFxcIGRvcG8gYGEnLCBgYycgbyBgaSciCgojIHNlZC9jb21waWxlLmM6MTc0CiM6IHNlZC9jb21waWxlLmM6MTY4Cm1zZ2lkICJgfScgZG9lc24ndCB3YW50IGFueSBhZGRyZXNzZXMiCm1zZ3N0ciAiYH0nIG5vbiBhY2NldHRhIGluZGlyaXp6aSIKCiMgc2VkL2NvbXBpbGUuYzoxNzUKIzogc2VkL2NvbXBpbGUuYzoxNjkKbXNnaWQgIjogZG9lc24ndCB3YW50IGFueSBhZGRyZXNzZXMiCm1zZ3N0ciAiOiBub24gYWNjZXR0YSBpbmRpcml6emkiCgojIHNlZC9jb21waWxlLmM6MTc2CiM6IHNlZC9jb21waWxlLmM6MTcwCm1zZ2lkICJjb21tZW50cyBkb24ndCBhY2NlcHQgYW55IGFkZHJlc3NlcyIKbXNnc3RyICJpIGNvbW1lbnRpIG5vbiBhY2NldHRhbm8gaW5kaXJpenppIgoKIyBzZWQvY29tcGlsZS5jOjE3NwojOiBzZWQvY29tcGlsZS5jOjE3MQptc2dpZCAibWlzc2luZyBjb21tYW5kIgptc2dzdHIgIm1hbmNhIGlsIGNvbWFuZG8iCgojIHNlZC9jb21waWxlLmM6MTc4CiM6IHNlZC9jb21waWxlLmM6MTcyCm1zZ2lkICJjb21tYW5kIG9ubHkgdXNlcyBvbmUgYWRkcmVzcyIKbXNnc3RyICJpbCBjb21hbmRvIHVzYSBzb2xvIHVuIGluZGlyaXp6byIKCiMgc2VkL2NvbXBpbGUuYzoxNzkKIzogc2VkL2NvbXBpbGUuYzoxNzMKbXNnaWQgInVudGVybWluYXRlZCBhZGRyZXNzIHJlZ2V4Igptc2dzdHIgImVzcHJlc3Npb25lIHJlZ29sYXJlIG5vbiB0ZXJtaW5hdGEgbmVsbCdpbmRpcml6em8iCgojIHNlZC9jb21waWxlLmM6MTgwCiM6IHNlZC9jb21waWxlLmM6MTc0Cm1zZ2lkICJ1bnRlcm1pbmF0ZWQgYHMnIGNvbW1hbmQiCm1zZ3N0ciAiY29tYW5kbyBgcycgbm9uIHRlcm1pbmF0byIKCiMgc2VkL2NvbXBpbGUuYzoxODEKIzogc2VkL2NvbXBpbGUuYzoxNzUKbXNnaWQgInVudGVybWluYXRlZCBgeScgY29tbWFuZCIKbXNnc3RyICJjb21hbmRvIGB5JyBub24gdGVybWluYXRvIgoKIyBzZWQvY29tcGlsZS5jOjE4MgojOiBzZWQvY29tcGlsZS5jOjE3Ngptc2dpZCAidW5rbm93biBvcHRpb24gdG8gYHMnIgptc2dzdHIgIm9wemlvbmUgZGkgYHMnIHNjb25vc2NpdXRhIgoKIyBzZWQvY29tcGlsZS5jOjE4MwojOiBzZWQvY29tcGlsZS5jOjE3Nwptc2dpZCAibXVsdGlwbGUgYHAnIG9wdGlvbnMgdG8gYHMnIGNvbW1hbmQiCm1zZ3N0ciAib3B6aW9uaSBgcCcgbXVsdGlwbGUgYWwgY29tYW5kbyBgcyciCgojIHNlZC9jb21waWxlLmM6MTg0CiM6IHNlZC9jb21waWxlLmM6MTc4Cm1zZ2lkICJtdWx0aXBsZSBgZycgb3B0aW9ucyB0byBgcycgY29tbWFuZCIKbXNnc3RyICJvcHppb25pIGBnJyBtdWx0aXBsZSBhbCBjb21hbmRvIGBzJyIKCiMgc2VkL2NvbXBpbGUuYzoxODYKIzogc2VkL2NvbXBpbGUuYzoxNzkKbXNnaWQgIm11bHRpcGxlIG51bWJlciBvcHRpb25zIHRvIGBzJyBjb21tYW5kIgptc2dzdHIgIm9wemlvbmkgbnVtZXJpY2hlIG11bHRpcGxlIGFsIGNvbWFuZG8gYHMnIgoKIyBzZWQvY29tcGlsZS5jOjE4OAojOiBzZWQvY29tcGlsZS5jOjE4MAptc2dpZCAibnVtYmVyIG9wdGlvbiB0byBgcycgY29tbWFuZCBtYXkgbm90IGJlIHplcm8iCm1zZ3N0ciAibCdvcHppb25lIG51bWVyaWNhIGRlbCBjb21hbmRvIGBzJyBub24gcHXyIGVzc2VyZSB6ZXJvIgoKIyBzZWQvY29tcGlsZS5jOjE5MAojOiBzZWQvY29tcGlsZS5jOjE4MQptc2dpZCAic3RyaW5ncyBmb3IgYHknIGNvbW1hbmQgYXJlIGRpZmZlcmVudCBsZW5ndGhzIgptc2dzdHIgImxlIHN0cmluZ2hlIHBlciBpbCBjb21hbmRpIGB5JyBoYW5ubyBsdW5naGV6emUgZGl2ZXJzZSIKCiM6IHNlZC9jb21waWxlLmM6MTgyCm1zZ2lkICJkZWxpbWl0ZXIgY2hhcmFjdGVyIGlzIG5vdCBhIHNpbmdsZS1ieXRlIGNoYXJhY3RlciIKbXNnc3RyICJpbCBjYXJhdHRlcmUgZGVsaW1pdGF0b3JlIOggbXVsdGktYnl0ZSIKCiM6IHNlZC9jb21waWxlLmM6MTgzCm1zZ2lkICJleHBlY3RlZCBuZXdlciB2ZXJzaW9uIG9mIHNlZCIKbXNnc3RyICJhdHRlc2EgdW5hIHZlcnNpb25lIHBpdScgcmVjZW50ZSBkaSBzZWQiCgojIHNlZC9jb21waWxlLmM6MTc4CiM6IHNlZC9jb21waWxlLmM6MTg0Cm1zZ2lkICJpbnZhbGlkIHVzYWdlIG9mIGxpbmUgYWRkcmVzcyAwIgptc2dzdHIgInV0aWxpenpvIG5vbiB2YWxpZG8gZGVsbCdpbmRpcml6em8gMCIKCiMgc2VkL2NvbXBpbGUuYzoxMzE5CiM6IHNlZC9jb21waWxlLmM6MTg1CiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmtub3duIGNvbW1hbmQ6IGAlYyciCm1zZ3N0ciAiY29tYW5kbyBzY29ub3NjaXV0bzogYCVjJyIKCiMgc2VkL2NvbXBpbGUuYzoxMzQwCiM6IHNlZC9jb21waWxlLmM6MjA4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSAlcyBsaW5lICVsdTogJXNcbiIKbXNnc3RyICIlczogZmlsZSAlcyByaWdhICVsdTogJXNcbiIKCiMgc2VkL2NvbXBpbGUuYzoxMzQzCiM6IHNlZC9jb21waWxlLmM6MjExCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogLWUgZXhwcmVzc2lvbiAjJWx1LCBjaGFyICVsdTogJXNcbiIKbXNnc3RyICIlczogZXNwcmVzc2lvbmUgLWUgIyVsdSwgY2FyYXR0ZXJlICVsdTogJXNcbiIKCiMgc2VkL2NvbXBpbGUuYzoxNTQzCiM6IHNlZC9jb21waWxlLmM6MTY2NQojLCBjLWZvcm1hdAptc2dpZCAiY2FuJ3QgZmluZCBsYWJlbCBmb3IganVtcCB0byBgJXMnIgptc2dzdHIgImltcG9zc2liaWxlIHRyb3ZhcmUgdW4nZXRpY2hldHRhIHBlciBpbCBzYWx0byBhIGAlcyciCgojIHNlZC9leGVjdXRlLmM6NTE2CiM6IHNlZC9leGVjdXRlLmM6NzA5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2FuJ3QgcmVhZCAlczogJXNcbiIKbXNnc3RyICIlczogaW1wb3NzaWJpbGUgbGVnZ2VyZSAlczogJXNcbiIKCiMgc2VkL2V4ZWN1dGUuYzo2NzUKIzogc2VkL2V4ZWN1dGUuYzo3NDAKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IGVkaXQgJXM6IGlzIGEgdGVybWluYWwiCm1zZ3N0ciAiaW1wb3NzaWJpbGUgbW9kaWZpY2FyZSAlczog6CB1biB0ZXJtaW5hbGUiCgojOiBzZWQvZXhlY3V0ZS5jOjc0NQojLCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3QgZWRpdCAlczogbm90IGEgcmVndWxhciBmaWxlIgptc2dzdHIgImltcG9zc2liaWxlIG1vZGlmaWNhcmUgJXM6IG5vbiDoIHVuIGZpbGUgbm9ybWFsZSIKCiM6IHNlZC9leGVjdXRlLmM6NzU3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogd2FybmluZzogZmFpbGVkIHRvIHNldCBkZWZhdWx0IGZpbGUgY3JlYXRpb24gY29udGV4dCB0byAlczogJXMiCm1zZ3N0ciAiIgoKIzogc2VkL2V4ZWN1dGUuYzo3NjQKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB3YXJuaW5nOiBmYWlsZWQgdG8gZ2V0IHNlY3VyaXR5IGNvbnRleHQgb2YgJXM6ICVzIgptc2dzdHIgIiIKCiMgbGliL3V0aWxzLmM6MTMxCiM6IHNlZC9leGVjdXRlLmM6NzgzIHNlZC91dGlscy5jOjIyNwojLCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZSAlczogJXMiCm1zZ3N0ciAiaW1wb3NzaWJpbGUgYXByaXJlIGlsIGZpbGUgdGVtcG9yYW5lbyAlczogJXMiCgojIHNlZC9leGVjdXRlLmM6MTAwMyBzZWQvZXhlY3V0ZS5jOjExODMKIzogc2VkL2V4ZWN1dGUuYzoxMzE3IHNlZC9leGVjdXRlLmM6MTQ5Nwptc2dpZCAiZXJyb3IgaW4gc3VicHJvY2VzcyIKbXNnc3RyICJlcnJvcmUgaW4gdW4gc290dG9wcm9jZXNzbyIKCiMgc2VkL2V4ZWN1dGUuYzoxMDA1CiM6IHNlZC9leGVjdXRlLmM6MTMxOQptc2dpZCAib3B0aW9uIGBlJyBub3Qgc3VwcG9ydGVkIgptc2dzdHIgIm9wemlvbmUgYGUnIG5vbiBzdXBwb3J0YXRhIgoKIyBzZWQvZXhlY3V0ZS5jOjExODUKIzogc2VkL2V4ZWN1dGUuYzoxNDk5Cm1zZ2lkICJgZScgY29tbWFuZCBub3Qgc3VwcG9ydGVkIgptc2dzdHIgImNvbWFuZG8gYGUnIG5vbiBzdXBwb3J0YXRvIgoKIzogc2VkL2V4ZWN1dGUuYzoxODQzCm1zZ2lkICJubyBpbnB1dCBmaWxlcyIKbXNnc3RyICJuZXNzdW4gZmlsZSBpbiBpbmdyZXNzbyIKCiMgbGliL3JlZ2NvbXAuYzo2NTggc2VkL3JlZ2V4LmM6NDcKIzogc2VkL3JlZ2V4cC5jOjQxCm1zZ2lkICJubyBwcmV2aW91cyByZWd1bGFyIGV4cHJlc3Npb24iCm1zZ3N0ciAib2Njb3JyZSB1bidlc3ByZXNzaW9uZSByZWdvbGFyZSBwcmVjZWRlbnRlIgoKIyBzZWQvcmVnZXguYzo0OAojOiBzZWQvcmVnZXhwLmM6NDIKbXNnaWQgImNhbm5vdCBzcGVjaWZ5IG1vZGlmaWVycyBvbiBlbXB0eSByZWdleHAiCm1zZ3N0ciAibm9uIOggcG9zc2liaWxlIHNwZWNpZmljYXJlIGRlaSBtb2RpZmljYXRvcmkgcGVyIGwnZXNwcmVzc2lvbmUgdnVvdGEiCgojIHNlZC9yZWdleC5jOjE0NgojOiBzZWQvcmVnZXhwLmM6MTMxCiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkIHJlZmVyZW5jZSBcXCVkIG9uIGBzJyBjb21tYW5kJ3MgUkhTIgptc2dzdHIgInJpZmVyaW1lbnRvIG5vbiB2YWxpZG8gXFwlZCBuZWwgc2Vjb25kbyBtZW1icm8gZGVsIGNvbWFuZG8gYHMnIgoKIzogc2VkL3NlZC5jOjk3CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJHTlUgc2VkIGhvbWUgcGFnZTogPGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9zZWQvPi5cbiIKIkdlbmVyYWwgaGVscCB1c2luZyBHTlUgc29mdHdhcmU6IDxodHRwOi8vd3d3LmdudS5vcmcvZ2V0aGVscC8+LlxuIgptc2dzdHIgIiIKCiMgc2VkL3NlZC5jOjEzMgojOiBzZWQvc2VkLmM6MTA0CiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiIgoiRS1tYWlsIGJ1ZyByZXBvcnRzIHRvOiA8JXM+LlxuIgoiQmUgc3VyZSB0byBpbmNsdWRlIHRoZSB3b3JkIGBgJXMnJyBzb21ld2hlcmUgaW4gdGhlIGBgU3ViamVjdDonJyBmaWVsZC5cbiIKbXNnc3RyICIiCiJTZWduYWxhcmUgZXZlbnR1YWxpIGJ1ZyBhOiAlcyAuXG4iCiJBc3NpY3VyYXJzaSBkaSBpbmNsdWRlcmUgbGEgcGFyb2xhIGBgJXMnJyBuZWxsJ29nZ2V0dG8gZGVsIG1lc3NhZ2dpby5cbiIKCiMgc2VkL3NlZC5jOjk4CiM6IHNlZC9zZWQuYzoxMTcKbXNnaWQgIiIKIiAgLVIsIC0tcmVnZXhwLXBlcmxcbiIKIiAgICAgICAgICAgICAgICAgdXNlIFBlcmwgNSdzIHJlZ3VsYXIgZXhwcmVzc2lvbnMgc3ludGF4IGluIHRoZSBzY3JpcHQuXG4iCm1zZ3N0ciAiIgoiICAtUiwgLS1yZWdleHAtcGVybFxuIgoiICAgICAgICAgICAgICAgICB1c2EgbGEgc2ludGFzc2kgUGVybCA1IHBlciBsZSBlc3ByZXNzaW9uaSByZWdvbGFyaVxuIgoKIzogc2VkL3NlZC5jOjEyMgojLCBjLWZvcm1hdAptc2dpZCAiIgoiVXNhZ2U6ICVzIFtPUFRJT05dLi4uIHtzY3JpcHQtb25seS1pZi1uby1vdGhlci1zY3JpcHR9IFtpbnB1dC1maWxlXS4uLlxuIgoiXG4iCm1zZ3N0ciAiIgoiVXRpbGl6em86ICVzIFtPUFpJT05FXS4uLiB7c2NyaXB0LXNlLW5lc3N1bi1hbHRyby1zcGVjaWZpY2F0b30gW2lucHV0LSIKImZpbGVdLi4uXG4iCiJcbiIKCiM6IHNlZC9zZWQuYzoxMjYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLW4sIC0tcXVpZXQsIC0tc2lsZW50XG4iCiIgICAgICAgICAgICAgICAgIHN1cHByZXNzIGF1dG9tYXRpYyBwcmludGluZyBvZiBwYXR0ZXJuIHNwYWNlXG4iCm1zZ3N0ciAiIgoiICAtbiwgLS1xdWlldCwgLS1zaWxlbnRcbiIKIiAgICAgICAgICAgICAgICAgc29wcHJpbWUgbGEgc3RhbXBhIGF1dG9tYXRpY2EgZGVsIHBhdHRlcm4gc3BhY2VcbiIKCiM6IHNlZC9zZWQuYzoxMjgKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLWUgc2NyaXB0LCAtLWV4cHJlc3Npb249c2NyaXB0XG4iCiIgICAgICAgICAgICAgICAgIGFkZCB0aGUgc2NyaXB0IHRvIHRoZSBjb21tYW5kcyB0byBiZSBleGVjdXRlZFxuIgptc2dzdHIgIiIKIiAgLWUgc2NyaXB0LCAtLWV4cHJlc3Npb249c2NyaXB0XG4iCiIgICAgICAgICAgICAgICAgIGFnZ2l1bmdlIGxvIHNjcmlwdCBhaSBjb21hbmRpIGRhIGVzZWd1aXJlXG4iCgojOiBzZWQvc2VkLmM6MTMwCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1mIHNjcmlwdC1maWxlLCAtLWZpbGU9c2NyaXB0LWZpbGVcbiIKIiAgICAgICAgICAgICAgICAgYWRkIHRoZSBjb250ZW50cyBvZiBzY3JpcHQtZmlsZSB0byB0aGUgY29tbWFuZHMgdG8gYmUgIgoiZXhlY3V0ZWRcbiIKbXNnc3RyICIiCiIgIC1mIHNjcmlwdC1maWxlLCAtLWZpbGU9ZmlsZS1zY3JpcHRcbiIKIiAgICAgICAgICAgICAgICAgYWdnaXVuZ2UgaWwgY29udGVudXRvIGRpIGZpbGUtc2NyaXB0IGFpIGNvbWFuZGkgZGEgIgoiZXNlZ3VpcmVcbiIKCiM6IHNlZC9zZWQuYzoxMzMKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLS1mb2xsb3ctc3ltbGlua3NcbiIKIiAgICAgICAgICAgICAgICAgZm9sbG93IHN5bWxpbmtzIHdoZW4gcHJvY2Vzc2luZyBpbiBwbGFjZVxuIgptc2dzdHIgIiIKIiAgLS1mb2xsb3ctc3ltbGlua3NcbiIKIiAgICAgICAgICAgICAgICAgc2VndWUgaSBsaW5rIHNpbWJvbGljaSBxdWFuZG8gdmllbmUgdXRpbGl6emF0byAtaVxuIgoKIzogc2VkL3NlZC5jOjEzNgojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtaVtTVUZGSVhdLCAtLWluLXBsYWNlWz1TVUZGSVhdXG4iCiIgICAgICAgICAgICAgICAgIGVkaXQgZmlsZXMgaW4gcGxhY2UgKG1ha2VzIGJhY2t1cCBpZiBleHRlbnNpb24gc3VwcGxpZWQpXG4iCm1zZ3N0ciAiIgoiICAtaVtTVUZGSVhdLCAtLWluLXBsYWNlWz1TVUZGSVhdXG4iCiIgICAgICAgICAgICAgICAgIHNjcml2ZSBpbCByaXN1bHRhdG8gc3VsIGZpbGUgb3JpZ2luYWxlIChmYWNlbmRvIHVuYSBjb3BpYVxuIgoiICAgICAgICAgICAgICAgICBzZSDoIGZvcm5pdGEgdW4nZXN0ZW5zaW9uZSlcbiIKCiM6IHNlZC9zZWQuYzoxMzkKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLWIsIC0tYmluYXJ5XG4iCiIgICAgICAgICAgICAgICAgIG9wZW4gZmlsZXMgaW4gYmluYXJ5IG1vZGUgKENSK0xGcyBhcmUgbm90IHByb2Nlc3NlZCAiCiJzcGVjaWFsbHkpXG4iCm1zZ3N0ciAiIgoiICAtYiwgLS1iaW5hcnlcbiIKIiAgICAgICAgICAgICAgICAgYXByZSBpIGZpbGUgaW4gbW9kbyBiaW5hcmlvIChsYXNjaWFuZG8gbGUgc2VxdWVuemUgQ1IrTEYgIgoiaW1tdXRhdGUpXG4iCgojOiBzZWQvc2VkLmM6MTQyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1sIE4sIC0tbGluZS1sZW5ndGg9TlxuIgoiICAgICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBkZXNpcmVkIGxpbmUtd3JhcCBsZW5ndGggZm9yIHRoZSBgbCcgY29tbWFuZFxuIgptc2dzdHIgIiIKIiAgLWwgTiwgLS1saW5lLWxlbmd0aD1OXG4iCiIgICAgICAgICAgICAgICAgIHNwZWNpZmljYSBsYSBsdW5naGV6emEgZGVsbGUgbGluZWUgZ2VuZXJhdGUgZGFsIGNvbWFuZG8gIgoiYGwnXG4iCgojOiBzZWQvc2VkLmM6MTQ0CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC0tcG9zaXhcbiIKIiAgICAgICAgICAgICAgICAgZGlzYWJsZSBhbGwgR05VIGV4dGVuc2lvbnMuXG4iCm1zZ3N0ciAiIgoiICAtLXBvc2l4XG4iCiIgICAgICAgICAgICAgICAgIGRpc2FiaWxpdGEgdHV0dGUgbGUgZXN0ZW5zaW9uaSBHTlUuXG4iCgojIHNlZC9zZWQuYzo5OAojOiBzZWQvc2VkLmM6MTQ2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1yLCAtLXJlZ2V4cC1leHRlbmRlZFxuIgoiICAgICAgICAgICAgICAgICB1c2UgZXh0ZW5kZWQgcmVndWxhciBleHByZXNzaW9ucyBpbiB0aGUgc2NyaXB0LlxuIgptc2dzdHIgIiIKIiAgLXIsIC0tcmVnZXhwLWV4dGVuZGVkXG4iCiIgICAgICAgICAgICAgICAgIHVzYSBsYSBzaW50YXNzaSBkaSBgZWdyZXAnIHBlciBsZSBlc3ByZXNzaW9uaSByZWdvbGFyaVxuIgoKIzogc2VkL3NlZC5jOjE1MQojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtcywgLS1zZXBhcmF0ZVxuIgoiICAgICAgICAgICAgICAgICBjb25zaWRlciBmaWxlcyBhcyBzZXBhcmF0ZSByYXRoZXIgdGhhbiBhcyBhIHNpbmdsZSAiCiJjb250aW51b3VzXG4iCiIgICAgICAgICAgICAgICAgIGxvbmcgc3RyZWFtLlxuIgptc2dzdHIgIiIKIiAgLXMsIC0tc2VwYXJhdGVcbiIKIiAgICAgICAgICAgICAgICAgY29uc2lkZXJhIGkgZmlsZSBkaSBpbnB1dCBjb21lIHNlcGFyYXRpIGludmVjZSBjaGUgY29tZSB1blxuIgoiICAgICAgICAgICAgICAgICB1bmljbyBmaWxlIGx1bmdvLlxuIgoKIzogc2VkL3NlZC5jOjE1NAojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtdSwgLS11bmJ1ZmZlcmVkXG4iCiIgICAgICAgICAgICAgICAgIGxvYWQgbWluaW1hbCBhbW91bnRzIG9mIGRhdGEgZnJvbSB0aGUgaW5wdXQgZmlsZXMgYW5kICIKImZsdXNoXG4iCiIgICAgICAgICAgICAgICAgIHRoZSBvdXRwdXQgYnVmZmVycyBtb3JlIG9mdGVuXG4iCm1zZ3N0ciAiIgoiICAtdSwgLS11bmJ1ZmZlcmVkXG4iCiIgICAgICAgICAgICAgICAgIGNhcmljYSBlIHZpc3VhbGl6emEgaSBkYXRpIHVuYSBhIHBlenpldHRpIHBpdScgcGljY29saVxuIgoKIzogc2VkL3NlZC5jOjE1NwojLCBjLWZvcm1hdAptc2dpZCAiICAgICAgLS1oZWxwICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdFxuIgptc2dzdHIgIiAgICAgIC0taGVscCAgICAgbW9zdHJhIHF1ZXN0byBhaXV0byBlZCBlc2NlXG4iCgojOiBzZWQvc2VkLmM6MTU4CiMsIGMtZm9ybWF0Cm1zZ2lkICIgICAgICAtLXZlcnNpb24gIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0XG4iCm1zZ3N0ciAiICAgICAgLS12ZXJzaW9uICBzdGFtcGEgbGUgaW5mb3JtYXppb25pIHN1bGxhIHZlcnNpb25lIGVkIGVzY2VcbiIKCiM6IHNlZC9zZWQuYzoxNTkKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiSWYgbm8gLWUsIC0tZXhwcmVzc2lvbiwgLWYsIG9yIC0tZmlsZSBvcHRpb24gaXMgZ2l2ZW4sIHRoZW4gdGhlIGZpcnN0XG4iCiJub24tb3B0aW9uIGFyZ3VtZW50IGlzIHRha2VuIGFzIHRoZSBzZWQgc2NyaXB0IHRvIGludGVycHJldC4gIEFsbFxuIgoicmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgbmFtZXMgb2YgaW5wdXQgZmlsZXM7IGlmIG5vIGlucHV0IGZpbGVzIGFyZVxuIgoic3BlY2lmaWVkLCB0aGVuIHRoZSBzdGFuZGFyZCBpbnB1dCBpcyByZWFkLlxuIgoiXG4iCm1zZ3N0ciAiIgoiXG4iCiJTZSBub24g6CB1c2F0YSBuZXNzdW5hIGRlbGxlIG9wemlvbmkgLWUsIC0tZXhwcmVzc2lvbiwgLWYgbyAtLWZpbGUgYWxsb3JhICIKImlsXG4iCiJwcmltbyBhcmdvbWVudG8gY2hlIG5vbiDoIHVuYSBvcHppb25lIHNhcuAgdXNhdG8gY29tZSBsbyBzY3JpcHQgc2VkIGRhXG4iCiJpbnRlcnByZXRhcmUuIFR1dHRpIGdsaSBhcmdvbWVudGkgcmltYW5lbnRpIHNvbm8gbm9taSBkaSBmaWxlIGRpIGlucHV0OyBzZSAiCiJub25cbiIKInNvbm8gc3BlY2lmaWNhdGkgZmlsZSBkaSBpbnB1dCBzYXLgIGxldHRvIGxvIHN0YW5kYXJkIGlucHV0LlxuIgoiXG4iCgojIHNlZC9zZWQuYzoyNTUKIzogc2VkL3NlZC5jOjMxNQojLCBjLWZvcm1hdAptc2dpZCAic3VwZXItc2VkIHZlcnNpb24gJXNcbiIKbXNnc3RyICJzdXBlci1zZWQgdmVyc2lvbmUgJXNcbiIKCiMgc2VkL3NlZC5jOjI1NgojOiBzZWQvc2VkLmM6MzE2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJiYXNlZCBvbiBHTlUgc2VkIHZlcnNpb24gJXNcbiIKIlxuIgptc2dzdHIgIiIKImJhc2F0byBzdSBHTlUgc2VkIHZlcnNpb25lICVzXG4iCiJcbiIKCiMgc2VkL3NlZC5jOjI1OAojOiBzZWQvc2VkLmM6MzE4CiMsIGMtZm9ybWF0Cm1zZ2lkICJHTlUgc2VkIHZlcnNpb24gJXNcbiIKbXNnc3RyICJHTlUgc2VkIHZlcnNpb25lICVzXG4iCgojIHNlZC9zZWQuYzoyNjAKIzogc2VkL3NlZC5jOjMyMAojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgIiIKIkNvcHlyaWdodCAoQykgJWQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuXG4iCiJUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOT1xuIgoid2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsXG4iCiJ0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXcuXG4iCm1zZ3N0ciAiIgoiJXNcbiIKIlF1ZXN0byDoIHNvZnR3YXJlIGxpYmVybzsgc2kgdmVkYSBpbCBzb3JnZW50ZSBwZXIgbGUgY29uZGl6aW9uaSBkaSAiCiJjb3BpYXR1cmEuXG4iCiJOT04gYyfoIGdhcmFuemlhOyBuZXBwdXJlIGRpIENPTU1FUkNJQUJJTElUQScgbyBJRE9ORUlUQScgQUQgVU4gUEFSVElDT0xBUkVcbiIKIlNDT1BPLCBuZWkgbGltaXRpIHBlcm1lc3NpIGRhbGxhIGxlZ2dlLlxuIgoKIyBzZWQvZXhlY3V0ZS5jOjUxNgojOiBzZWQvdXRpbHMuYzo5MyBzZWQvdXRpbHMuYzo0MzgKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCByZW1vdmUgJXM6ICVzIgptc2dzdHIgImltcG9zc2liaWxlIHJpbXVvdmVyZSAlczogJXMiCgojIGxpYi91dGlscy5jOjEzMQojOiBzZWQvdXRpbHMuYzoxNjMKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IG9wZW4gZmlsZSAlczogJXMiCm1zZ3N0ciAiaW1wb3NzaWJpbGUgYXByaXJlIGlsIGZpbGUgJXM6ICVzIgoKIyBsaWIvdXRpbHMuYzoxNjEKIzogc2VkL3V0aWxzLmM6MTg2CiMsIGMtZm9ybWF0Cm1zZ2lkICJjb3VsZG4ndCBhdHRhY2ggdG8gJXM6ICVzIgptc2dzdHIgImltcG9zc2liaWxlIGFjY2VkZXJlIGEgJXM6ICVzIgoKIyBsaWIvdXRpbHMuYzoxNjEKIzogc2VkL3V0aWxzLmM6MjQ1CiMsIGMtZm9ybWF0Cm1zZ2lkICJjb3VsZG4ndCB3cml0ZSAlZCBpdGVtIHRvICVzOiAlcyIKbXNnaWRfcGx1cmFsICJjb3VsZG4ndCB3cml0ZSAlZCBpdGVtcyB0byAlczogJXMiCm1zZ3N0clswXSAiaW1wb3NzaWJpbGUgc2NyaXZlcmUgJWQgZWxlbWVudG8gc3UgJXM6ICVzIgptc2dzdHJbMV0gImltcG9zc2liaWxlIHNjcml2ZXJlICVkIGVsZW1lbnRpIHN1ICVzOiAlcyIKCiMgbGliL3V0aWxzLmM6MTc2CiM6IHNlZC91dGlscy5jOjI2MCBzZWQvdXRpbHMuYzoyNzYKIywgYy1mb3JtYXQKbXNnaWQgInJlYWQgZXJyb3Igb24gJXM6ICVzIgptc2dzdHIgImVycm9yZSBkaSBsZXR0dXJhIHN1ICVzOiAlcyIKCiMgbGliL3V0aWxzLmM6MTMxCiM6IHNlZC91dGlscy5jOjM3OAojLCBjLWZvcm1hdAptc2dpZCAiY291bGRuJ3QgZm9sbG93IHN5bWxpbmsgJXM6ICVzIgptc2dzdHIgImltcG9zc2liaWxlIHNlZ3VpcmUgaWwgbGluayBzaW1ib2xpY28gJXM6ICVzIgoKIyBzZWQvZXhlY3V0ZS5jOjUxNgojOiBzZWQvdXRpbHMuYzo0MTIKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCBzdGF0ICVzOiAlcyIKbXNnc3RyICJpbXBvc3NpYmlsZSBvdHRlbmVyZSBpbmZvcm1hemlvbmkgc3UgJXM6ICVzIgoKIyBzZWQvZXhlY3V0ZS5jOjUxNgojOiBzZWQvdXRpbHMuYzo0NDMKIywgYy1mb3JtYXQKbXNnaWQgImNhbm5vdCByZW5hbWUgJXM6ICVzIgptc2dzdHIgImltcG9zc2liaWxlIHJpbm9taW5hcmUgJXM6ICVzIgoKIyBsaWIvcmVnY29tcC5jOjE3OQojOiBsaWIvcmVnY29tcC5jOjEzNAptc2dpZCAiU3VjY2VzcyIKbXNnc3RyICJTdWNjZXNzbyIKCiMgbGliL3JlZ2NvbXAuYzoxODIKIzogbGliL3JlZ2NvbXAuYzoxMzcKbXNnaWQgIk5vIG1hdGNoIgptc2dzdHIgIk5lc3N1bmEgY29ycmlzcG9uZGVuemEgdHJvdmF0YSIKCiMgbGliL3JlZ2NvbXAuYzoxODUKIzogbGliL3JlZ2NvbXAuYzoxNDAKbXNnaWQgIkludmFsaWQgcmVndWxhciBleHByZXNzaW9uIgptc2dzdHIgIkVzcHJlc3Npb25lIHJlZ29sYXJlIG5vbiB2YWxpZGEiCgojIGxpYi9yZWdjb21wLmM6MTg4CiM6IGxpYi9yZWdjb21wLmM6MTQzCm1zZ2lkICJJbnZhbGlkIGNvbGxhdGlvbiBjaGFyYWN0ZXIiCm1zZ3N0ciAiQ2FyYXR0ZXJlIGRpIG9yZGluYW1lbnRvIG5vbiB2YWxpZG8iCgojIGxpYi9yZWdjb21wLmM6MTkxCiM6IGxpYi9yZWdjb21wLmM6MTQ2Cm1zZ2lkICJJbnZhbGlkIGNoYXJhY3RlciBjbGFzcyBuYW1lIgptc2dzdHIgIk5vbWUgbm9uIHZhbGlkbyBwZXIgdW5hIGNsYXNzZSBkaSBjYXJhdHRlcmkiCgojIGxpYi9yZWdjb21wLmM6MTk0CiM6IGxpYi9yZWdjb21wLmM6MTQ5Cm1zZ2lkICJUcmFpbGluZyBiYWNrc2xhc2giCm1zZ3N0ciAiQmFycmEgcm92ZXNjaWF0YSBhbGxhIGZpbmUgZGVsbCdlc3ByZXNzaW9uZSByZWdvbGFyZSIKCiMgbGliL3JlZ2NvbXAuYzoxOTcKIzogbGliL3JlZ2NvbXAuYzoxNTIKbXNnaWQgIkludmFsaWQgYmFjayByZWZlcmVuY2UiCm1zZ3N0ciAiUmlmZXJpbWVudG8gbm9uIHZhbGlkbyIKCiMgbGliL3JlZ2NvbXAuYzoyMDAKIzogbGliL3JlZ2NvbXAuYzoxNTUKbXNnaWQgIlVubWF0Y2hlZCBbIG9yIFteIgptc2dzdHIgImBbJyBub24gYmlsYW5jaWF0YSIKCiMgbGliL3JlZ2NvbXAuYzoyMDMKIzogbGliL3JlZ2NvbXAuYzoxNTgKbXNnaWQgIlVubWF0Y2hlZCAoIG9yIFxcKCIKbXNnc3RyICJgKCcgbyBgXFwoJyBub24gYmlsYW5jaWF0YSIKCiMgbGliL3JlZ2NvbXAuYzoyMDYKIzogbGliL3JlZ2NvbXAuYzoxNjEKbXNnaWQgIlVubWF0Y2hlZCBcXHsiCm1zZ3N0ciAiYFxceycgbm9uIGJpbGFuY2lhdGEiCgojIGxpYi9yZWdjb21wLmM6MjA5CiM6IGxpYi9yZWdjb21wLmM6MTY0Cm1zZ2lkICJJbnZhbGlkIGNvbnRlbnQgb2YgXFx7XFx9Igptc2dzdHIgIm51bWVybyBkaSByaXBldGl6aW9uaSBzcGVjaWZpY2F0byB0cmEgZ3JhZmZlIG5vbiB2YWxpZG8iCgojIGxpYi9yZWdjb21wLmM6MjEyCiM6IGxpYi9yZWdjb21wLmM6MTY3Cm1zZ2lkICJJbnZhbGlkIHJhbmdlIGVuZCIKbXNnc3RyICJGaW5lIGRlbGwnaW50ZXJ2YWxsbyBub24gdmFsaWRhIgoKIyBsaWIvcmVnY29tcC5jOjIxNQojOiBsaWIvcmVnY29tcC5jOjE3MAptc2dpZCAiTWVtb3J5IGV4aGF1c3RlZCIKbXNnc3RyICJNZW1vcmlhIGVzYXVyaXRhIgoKIyBsaWIvcmVnY29tcC5jOjIxOAojOiBsaWIvcmVnY29tcC5jOjE3Mwptc2dpZCAiSW52YWxpZCBwcmVjZWRpbmcgcmVndWxhciBleHByZXNzaW9uIgptc2dzdHIgIkVzcHJlc3Npb25lIHJlZ29sYXJlIHByZWNlZGVudGUgbm9uIHZhbGlkYSIKCiMgbGliL3JlZ2NvbXAuYzoyMjEKIzogbGliL3JlZ2NvbXAuYzoxNzYKbXNnaWQgIlByZW1hdHVyZSBlbmQgb2YgcmVndWxhciBleHByZXNzaW9uIgptc2dzdHIgIkZpbmUgcHJlbWF0dXJhIGRlbGwnZXNwcmVzc2lvbmUgcmVnb2xhcmUiCgojIGxpYi9yZWdjb21wLmM6MjI0CiM6IGxpYi9yZWdjb21wLmM6MTc5Cm1zZ2lkICJSZWd1bGFyIGV4cHJlc3Npb24gdG9vIGJpZyIKbXNnc3RyICJFc3ByZXNzaW9uZSByZWdvbGFyZSB0cm9wcG8gZ3JhbmRlIgoKIyBsaWIvcmVnY29tcC5jOjIyNwojOiBsaWIvcmVnY29tcC5jOjE4Mgptc2dpZCAiVW5tYXRjaGVkICkgb3IgXFwpIgptc2dzdHIgImApJyBvIGBcXCknIG5vbiBiaWxhbmNpYXRhIgoKIyBsaWIvcmVnY29tcC5jOjY1OCBzZWQvcmVnZXguYzo0NwojOiBsaWIvcmVnY29tcC5jOjcwMwptc2dpZCAiTm8gcHJldmlvdXMgcmVndWxhciBleHByZXNzaW9uIgptc2dzdHIgIk9jY29ycmUgdW4nZXNwcmVzc2lvbmUgcmVnb2xhcmUgcHJlY2VkZW50ZSIK