IyBFc3RvbmlhbiB0cmFuc2xhdGlvbnMgZm9yIGxpYmljb252LgojIENvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgbGliaWNvbnYgcGFja2FnZS4KIyBUb29tYXMgU29vbWUgPFRvb21hcy5Tb29tZUBtaWNyb2xpbmsuZWU+LCAyMDAzLgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBsaWJpY29udiAxLjkuMVxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IGJ1Zy1nbnUtbGliaWNvbnZAZ251Lm9yZ1xuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDMtMDUtMDYgMTM6MzIrMDIwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwMy0wNS0yOSAxMDozNSswMzAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IFRvb21hcyBTb29tZSA8VG9vbWFzLlNvb21lQG1pY3JvbGluay5lZT5cbiIKIkxhbmd1YWdlLVRlYW06IEVzdG9uaWFuIDxldEBsaS5vcmc+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTE1XG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojOiBzcmMvaWNvbnYuYzo1OQptc2dpZCAiVXNhZ2U6IGljb252IFstLWJpbmFyeV0gWy1jXSBbLXNdIFstZiBmcm9tY29kZV0gWy10IHRvY29kZV0gW2ZpbGUgLi4uXSIKbXNnc3RyICIiCiJLYXN1dGFtaW5lOiBpY29udiBbLS1iaW5hcnldIFstY10gWy1zXSBbLWYga29vZGlzdF0gWy10IGtvb2RpXSBbZmFpbCAuLi5dIgoKIzogc3JjL2ljb252LmM6NjEKbXNnaWQgIlVzYWdlOiBpY29udiBbLWNdIFstc10gWy1mIGZyb21jb2RlXSBbLXQgdG9jb2RlXSBbZmlsZSAuLi5dIgptc2dzdHIgIkthc3V0YW1pbmU6IGljb252IFstY10gWy1zXSBbLWYga29vZGlzdF0gWy10IGtvb2RpXSBbZmFpbCAuLi5dIgoKIzogc3JjL2ljb252LmM6NjQKbXNnaWQgIm9yOiAgICBpY29udiAtbCIKbXNnc3RyICJ29Wk6ICAgIGljb252IC1sIgoKIzogc3JjL2ljb252LmM6NzQKbXNnaWQgIiIKIlRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PXG4iCiJ3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS5cbiIKbXNnc3RyICIiCiJTZWUgb24gdmFiYSB0YXJrdmFyYTsga29wZWVyaW1pc2UgdGluZ2ltdXNlZCBsZWlhdGUgbORodGV0ZWtzdGlzdC4gR2FyYW50aWlcbiIKIlBVVURVQjsga2Egbfz8Z2lrcyB29WkgbWluZ2lsIGVlc23kcmdpbCBrYXN1dGFtaXNla3MsIHZhc3RhdmFsdCBzZWFkdXN0ZWdhXG4iCiJsdWJhdHVkIHBpaXJpZGVsZS5cbiIKCiM6IHNyYy9pY29udi5jOjc3CiMsIGMtZm9ybWF0Cm1zZ2lkICJXcml0dGVuIGJ5ICVzLlxuIgptc2dzdHIgIktpcmp1dGFudWQgJXMuXG4iCgojOiBzcmMvaWNvbnYuYzoxMTQgc3JjL2ljb252LmM6MTQ2IHNyYy9pY29udi5jOjE5NgojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiBpbmNvbXBsZXRlIGNoYXJhY3RlciBvciBzaGlmdCBzZXF1ZW5jZVxuIgptc2dzdHIgImljb252OiAlczogbWl0dGV05GllbGlrIHP8bWJvbCB29Wkgbmloa2Vq5HJqZW5kXG4iCgojOiBzcmMvaWNvbnYuYzoxNDAgc3JjL2ljb252LmM6MTkxCiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogJXM6IGNhbm5vdCBjb252ZXJ0XG4iCm1zZ3N0ciAiaWNvbnY6ICVzOiBlaSBzYWEgdGVpc2VuZGFkYVxuIgoKIzogc3JjL2ljb252LmM6MTYyIHNyYy9pY29udi5jOjIwMSBzcmMvaWNvbnYuYzozMjAKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiAlczogIgptc2dzdHIgImljb252OiAlczogIgoKIzogc3JjL2ljb252LmM6MjEwCiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogJXM6IEkvTyBlcnJvclxuIgptc2dzdHIgImljb252OiAlczogUy9WIHZpZ2FcbiIKCiM6IHNyYy9pY29udi5jOjMwNAojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6IGNvbnZlcnNpb24gZnJvbSAlcyB1bnN1cHBvcnRlZFxuIgptc2dzdHIgImljb252OiB0ZWlzZW5kdXN0IHRhYmVsaXN0ICVzIGVpIHRvZXRhdGFcbiIKCiM6IHNyYy9pY29udi5jOjMwNgojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6IGNvbnZlcnNpb24gdG8gJXMgdW5zdXBwb3J0ZWRcbiIKbXNnc3RyICJpY29udjogdGVpc2VuZHVzdCB0YWJlbGlzc2UgJXMgZWkgdG9ldGF0YVxuIgoKIzogc3JjL2ljb252LmM6MzA4CiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogY29udmVyc2lvbiBmcm9tICVzIHRvICVzIHVuc3VwcG9ydGVkXG4iCm1zZ3N0ciAiaWNvbnY6IHRlaXNlbmR1c3QgJXMgLT4gJXMgZWkgdG9ldGF0YVxuIgoKIzogc3JjL2ljb252LmM6MzEyCm1zZ2lkICIoc3RkaW4pIgptc2dzdHIgIihzdGFuZGFyZHNpc2VuZCkiCgojOiBzcmMvaWNvbnYuYzozMzMKbXNnaWQgImljb252OiBJL08gZXJyb3JcbiIKbXNnc3RyICJpY29udjogUy9WIHZpZ2FcbiIK