IyAtKi0gbW9kZTpwbzsgY29kaW5nOmlzby1sYXRpbi0yOyAtKi0gU2xvdmVuaWFuIG1lc3NhZ2VzIGZvciBsaWJpY29udi4KIyBDb3B5cmlnaHQgKEMpIDIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgUHJpbW++IFBldGVybGluIDxwcmltb3oucGV0ZXJsaW5AYmlvZml6Lm1mLnVuaS1sai5zaT4sIDIwMDIuCiMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIGxpYmljb252IHBhY2thZ2UuCiMgJElkJAojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBsaWJpY29udiAxLjhcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBidWctZ251LWxpYmljb252QGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA1LTA3LTA3IDE0OjU0KzAyMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDItMDgtMTMgMTU6MDkrMDIwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBQcmltb74gUGV0ZXJsaW4gPHByaW1vei5wZXRlcmxpbkBiaW9maXoubWYudW5pLWxqLnNpPlxuIgoiTGFuZ3VhZ2UtVGVhbTogU2xvdmVuaWFuIDx0cmFuc2xhdGlvbi10ZWFtLXNsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMlxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoKIzogc3JjL2ljb252LmM6NTYKbXNnaWQgIlVzYWdlOiBpY29udiBbLWNdIFstc10gWy1mIGZyb21jb2RlXSBbLXQgdG9jb2RlXSBbZmlsZSAuLi5dIgptc2dzdHIgIlVwb3JhYmE6IGljb252IFstY10gWy1zXSBbLWYgdmhfbmFib3JdIFstdCBpemhfbmFib3JdIFtkYXRvdGVrYSAuLi5dPCIKCiM6IHNyYy9pY29udi5jOjU4Cm1zZ2lkICJvcjogICAgaWNvbnYgLWwiCm1zZ3N0ciAiYWxpOiAgIGljb252IC1sIgoKIzogc3JjL2ljb252LmM6NjgKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PXG4iCiJ3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS5cbiIKbXNnc3RyICIiCiJUbyBqZSBwcm9zdCBwcm9ncmFtOyBwb2dvamksIHBvZCBrYXRlcmltaSBnYSBsYWhrbyByYXptbm++dWpldGUgaW5cbiIKInJherlpcmphdGUsIHNvIG5hdmVkZW5pIHYgaXp2b3JuaSBrb2RpLiBaYSBwcm9ncmFtIG5pIE5PQkVORUdBIGphbXN0dmEsXG4iCiJuaXRpIGphbXN0ZXYgVVNUUkVaTk9TVEkgWkEgUFJPREFKTyBhbGkgUFJJTUVSTk9TVEkgWkEgVVBPUkFCTy5cbiIKCiM6IHNyYy9pY29udi5jOjcxCiMsIGMtZm9ybWF0Cm1zZ2lkICJXcml0dGVuIGJ5ICVzLlxuIgptc2dzdHIgIkF2dG9yICVzLlxuIgoKIzogc3JjL2ljb252LmM6MTMxIHNyYy9pY29udi5jOjE3MSBzcmMvaWNvbnYuYzoyMzIKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogJXM6JXU6JXU6IGluY29tcGxldGUgY2hhcmFjdGVyIG9yIHNoaWZ0IHNlcXVlbmNlXG4iCm1zZ3N0ciAiaWNvbnY6ICVzOiBuZXBvcG9sbmkgem5hayBhbGkgcG9taehubyB6YXBvcmVkamVcbiIKCiM6IHNyYy9pY29udi5jOjE2MSBzcmMvaWNvbnYuYzoyMjMKIywgZnV6enksIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogJXM6JXU6JXU6IGNhbm5vdCBjb252ZXJ0XG4iCm1zZ3N0ciAiaWNvbnY6ICVzOiBwcmV0dm9yYmEgbmkgbW9nb+hhXG4iCgojOiBzcmMvaWNvbnYuYzoxOTEgc3JjL2ljb252LmM6MjQxCiMsIGZ1enp5LCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiV1OiV1OiAiCm1zZ3N0ciAiaWNvbnY6ICVzOiAiCgojOiBzcmMvaWNvbnYuYzoyNTMKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiAlczogSS9PIGVycm9yXG4iCm1zZ3N0ciAiaWNvbnY6ICVzOiBWL0kgbmFwYWthXG4iCgojOiBzcmMvaWNvbnYuYzozNTEKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiBjb252ZXJzaW9uIGZyb20gJXMgdW5zdXBwb3J0ZWRcbiIKbXNnc3RyICJpY29udjogcHJldHZvcmJhIGl6IG5hYm9yYSAlcyBuaSBwb2RwcnRhXG4iCgojOiBzcmMvaWNvbnYuYzozNTMKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiBjb252ZXJzaW9uIHRvICVzIHVuc3VwcG9ydGVkXG4iCm1zZ3N0ciAiaWNvbnY6IHByZXR2b3JiYSB2IG5hYm9yICVzIG5pIHBvZHBydGFcbiIKCiM6IHNyYy9pY29udi5jOjM1NQojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6IGNvbnZlcnNpb24gZnJvbSAlcyB0byAlcyB1bnN1cHBvcnRlZFxuIgptc2dzdHIgImljb252OiBwcmV0dm9yYmEgaXogbmFib3JhICVzIHYgbmFib3IgJXMgbmkgcG9kcHJ0YVxuIgoKIzogc3JjL2ljb252LmM6MzU2CiMsIGMtZm9ybWF0Cm1zZ2lkICJpY29udjogdHJ5ICclcyAtbCcgdG8gZ2V0IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBlbmNvZGluZ3NcbiIKbXNnc3RyICIiCgojOiBzcmMvaWNvbnYuYzozNzAKbXNnaWQgIihzdGRpbikiCm1zZ3N0ciAiKHN0ZGluKSIKCiM6IHNyYy9pY29udi5jOjM3OAojLCBjLWZvcm1hdAptc2dpZCAiaWNvbnY6ICVzOiAiCm1zZ3N0ciAiaWNvbnY6ICVzOiAiCgojOiBzcmMvaWNvbnYuYzozOTEKIywgYy1mb3JtYXQKbXNnaWQgImljb252OiBJL08gZXJyb3JcbiIKbXNnc3RyICJpY29udjogVi9JIG5hcGFrYVxuIgoKI34gbXNnaWQgIiIKI34gIlVzYWdlOiBpY29udiBbLS1iaW5hcnldIFstY10gWy1zXSBbLWYgZnJvbWNvZGVdIFstdCB0b2NvZGVdIFtmaWxlIC4uLl0iCiN+IG1zZ3N0ciAiIgojfiAiVXBvcmFiYTogaWNvbnYgWy0tYmluYXJ5XSBbLWNdIFstc10gWy1mIHZoX25hYm9yXSBbLXQgaXpoX25hYm9yXSAiCiN+ICJbZGF0b3Rla2EgLi4uXSIK