IwojICRJZCAkCiMKIyBDb3B5cmlnaHQgqSAyMDAzIEtlaXRoIFBhY2thcmQKIwojIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUsIGFuZCBzZWxsIHRoaXMgc29mdHdhcmUgYW5kIGl0cwojIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlzIGhlcmVieSBncmFudGVkIHdpdGhvdXQgZmVlLCBwcm92aWRlZCB0aGF0CiMgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQgYm90aCB0aGF0CiMgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gc3VwcG9ydGluZwojIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9mIEtlaXRoIFBhY2thcmQgbm90IGJlIHVzZWQgaW4KIyBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3YXJlIHdpdGhvdXQKIyBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAgS2VpdGggUGFja2FyZCBtYWtlcyBubwojIHJlcHJlc2VudGF0aW9ucyBhYm91dCB0aGUgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UuICBJdAojIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkuCiMKIyBLRUlUSCBQQUNLQVJEIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLAojIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUywgSU4gTk8KIyBFVkVOVCBTSEFMTCBLRUlUSCBQQUNLQVJEIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIElORElSRUNUIE9SCiMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsCiMgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUgojIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IKIyBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgojCgpJTkNMVURFUz0tSSR7dG9wX3NyY2Rpcn0vc3JjIC1JJHt0b3Bfc3JjZGlyfSAkKEZSRUVUWVBFX0NGTEFHUykgJChXQVJOX0NGTEFHUykKClRNUEw9ZmNnbHlwaG5hbWUudG1wbC5oClNUTVBMPSR7dG9wX3NyY2Rpcn0vZmMtZ2x5cGhuYW1lLyR7VE1QTH0KVEFSRz1mY2dseXBobmFtZS5oCgpub2luc3RfUFJPR1JBTVM9ZmMtZ2x5cGhuYW1lCgpub2luc3RfSEVBREVSUz0kKFRBUkcpCgpub2luc3RfTUFOUz1mYy1nbHlwaG5hbWUubWFuCgpHTFlQSE5BTUU9emFwZmRpbmdiYXRzLnR4dApTR0xZUEhOQU1FPSR7dG9wX3NyY2Rpcn0vZmMtZ2x5cGhuYW1lL3phcGZkaW5nYmF0cy50eHQKCkVYVFJBX0RJU1Q9JChUTVBMKSAkKEdMWVBITkFNRSkKCiQoVEFSRyk6ICQoU1RNUEwpIGZjLWdseXBobmFtZSAkKFNHTFlQSE5BTUUpCglybSAtZiAkKFRBUkcpCgkuL2ZjLWdseXBobmFtZSAkKFNHTFlQSE5BTUUpIDwgJChTVE1QTCkgPiAkKFRBUkcpCgpDTEVBTkZJTEVTPSQoVEFSRykKCg==