IyEgL2Jpbi9zaAouICIke3NyY2Rpcj0ufS9pbml0LnNoIjsgcGF0aF9wcmVwZW5kXyAuIC4uL3NyYwoKIyBWZXJpZnkgbXNnY2F0IG9mIHR3byBmaWxlcywgd2hlbiB0aGUgaGVhZGVyIGVudHJpZXMgaGF2ZSB0aGUgc2FtZSBjb21tZW50cwojIGJ1dCBkaWZmZXJlbnQgY29udGVudHMuIFRoZSByZXN1bHRpbmcgaGVhZGVyIGVudHJ5IG11c3QgYmUgbWFya2VkIGZ1enp5LgoKY2F0IDw8XEVPRiA+IG1jYXQtdGVzdDkuaW4xCiMgR2VybWFuIG1lc3NhZ2UgZmlsZSBmb3IgeHl6LgojIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSB4eXouCiMgS2FiIERlZiA8a2VAenp6LnV1Y3A+LCAyMDAwLgojCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiB4eXpcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDAxLTExLTExIDEyOjUxOjM0KzAyMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDEtMTEtMTEgMTM6MDIrMDI6MDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogS2FiIERlZiA8a2VAenp6LnV1Y3A+XG4iCiJMYW5ndWFnZS1UZWFtOiBHZXJtYW4gPGkxOG5Aenp6LnV1Y3A+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKCiMuIEhlbHAgdGV4dCAoSFRNTC1saWtlKSBTVEFSVAojOiBjbGllbnRzL2luc3RfYXNrX2NvbmZpZy55Y3A6MTE5Cm1zZ2lkICIiCiJDb25ncmF0dWxhdGlvbnMhIgptc2dzdHIgIiIKIkds/GNrd3Vuc2NoISIKRU9GCgpjYXQgPDxcRU9GID4gbWNhdC10ZXN0OS5pbjIKIyBHZXJtYW4gbWVzc2FnZSBmaWxlIGZvciB4eXouCiMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxIHh5ei4KIyBLYWIgRGVmIDxrZUB6enoudXVjcD4sIDIwMDAuCiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IHh5elxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDEtMDQtMjQgMTI6NTE6MzQrMDIwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAwMS0wNC0yNCAxMzowMiswMjowMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBLYWIgRGVmIDxrZUB6enoudXVjcD5cbiIKIkxhbmd1YWdlLVRlYW06IEdlcm1hbiA8aTE4bkB6enoudXVjcD5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoKIy4gSGVscCB0ZXh0IChIVE1MLWxpa2UpIFNUQVJUCiM6IGNsaWVudHMvaW5zdF9hc2tfY29uZmlnLnljcDoxMTkKbXNnaWQgIiIKIkNvbmdyYXR1bGF0aW9ucyEiCm1zZ3N0ciAiIgoiR2z8Y2t3dW5zY2ghIgpFT0YKCnJtIC1mIG1jYXQtdGVzdDkudG1wCgo6ICR7TVNHQ0FUPW1zZ2NhdH0KJHtNU0dDQVR9IC0tbW9yZS10aGFuPTAgLW8gbWNhdC10ZXN0OS50bXAgXAogICAgbWNhdC10ZXN0OS5pbjEgbWNhdC10ZXN0OS5pbjIgfHwgRXhpdCAxCkxDX0FMTD1DIHRyIC1kICdccicgPCBtY2F0LXRlc3Q5LnRtcCA+IG1jYXQtdGVzdDkub3V0IHx8IEV4aXQgMQoKY2F0IDw8XEVPRiA+IG1jYXQtdGVzdDkub2sKIyBHZXJtYW4gbWVzc2FnZSBmaWxlIGZvciB4eXouCiMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxIHh5ei4KIyBLYWIgRGVmIDxrZUB6enoudXVjcD4sIDIwMDAuCiMKIywgZnV6enkKbXNnaWQgIiIKbXNnc3RyICIiCiIjLSMtIy0jLSMgIG1jYXQtdGVzdDkuaW4xICh4eXopICAjLSMtIy0jLSNcbiIKIlByb2plY3QtSWQtVmVyc2lvbjogeHl6XG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMS0xMS0xMSAxMjo1MTozNCswMjAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTExLTExIDEzOjAyKzAyOjAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEthYiBEZWYgPGtlQHp6ei51dWNwPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxpMThuQHp6ei51dWNwPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiIjLSMtIy0jLSMgIG1jYXQtdGVzdDkuaW4yICh4eXopICAjLSMtIy0jLSNcbiIKIlByb2plY3QtSWQtVmVyc2lvbjogeHl6XG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMS0wNC0yNCAxMjo1MTozNCswMjAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTA0LTI0IDEzOjAyKzAyOjAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEthYiBEZWYgPGtlQHp6ei51dWNwPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxpMThuQHp6ei51dWNwPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojLiBIZWxwIHRleHQgKEhUTUwtbGlrZSkgU1RBUlQKIzogY2xpZW50cy9pbnN0X2Fza19jb25maWcueWNwOjExOQptc2dpZCAiQ29uZ3JhdHVsYXRpb25zISIKbXNnc3RyICJHbPxja3d1bnNjaCEiCkVPRgoKOiAke0RJRkY9ZGlmZn0KJHtESUZGfSBtY2F0LXRlc3Q5Lm9rIG1jYXQtdGVzdDkub3V0CnJlc3VsdD0kPwoKZXhpdCAkcmVzdWx0Cg==