IyBCZXN0IFBhY2thZ2UKCiogW0V4YW1wbGVzXSgjZXhhbXBsZXMpCiogW0Fub3RoZXIgU2VjdGlvbl0oI2Fub3RoZXItc2VjdGlvbikKClRoaXMgaXMgYW4gYW1hemluZyBwYWNrYWdlLgoKIyMgSGVyZSBpcyBzb21lIG1lc3NlZCB1cCBVVEYtOC4Kw4PCkGbDg8KRw4bCksN6g8KRw6LCgMKwCgojIyBFeGFtcGxlcwoKRm9yIGV4YW1wbGUsIGl0OgoKKiBJcyB2ZXJ5IGZhc3QKKiBIYXMgemVybyBidWdzCiogSXMgZnJlZQoKSXQgYWxzbyBoYXMgc29tZSBhd2Vzb21lIGNvZGUKCmBgYGRhcnQKdm9pZCBtYWluKCkgewogIC8vIGluIERhcnQhCn0KCi8qCjgwLWNoYXJhY3RlcnM6IHRvIGVuc3VyZSBkZWZhdWx0IHN0eWxlcyBhY2NvbW1vZGF0ZSBEYXJ0IGxpbmUgbGVuZ3RoIGNvbnZlbnRpb24uCjAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiovCmBgYAoKYGBgeWFtbAphbmRfeWFtbDoKICAtIHZhbHVlCiAgLSAidmFsdWUiCiAgLSAzLjE0CmBgYAoKYGBgY3NzCi8qIGlzc3VlIDE0ODQgcmVncmVzc2lvbiAqLwojaWQgewogIGJhY2tncm91bmQ6IGdyZWVuOwp9CgouY2xhc3MgewogIGJhY2tncm91bmQ6IHJlZDsKfQoKZGl2IHsKICBiYWNrZ3JvdW5kOiBncmVlbjsKfQpgYGAKCmBgYGh0bWwKPGRpdj4KICA8c3Ryb25nPkhlbGxvITwvc3Ryb25nPgogIDxoMT5Xb3JsZCE8L2gxPgo8L2Rpdj4KYGBgCgpgYGBqcwp2YXIgZiA9IGZ1bmN0aW9uKGEsIGIpIHsKICByZXR1cm4gYSArIGI7ICAKfTsKYGBgCgojIyBBbm90aGVyIFNlY3Rpb24KCkl0IHNvbWV0aW1lcyBnZW5lcmF0ZXMgd2FybmluZ3MgaW4gY29tbWVudFJlZnMgbGlrZSB0aGlzOiBbdW5rbm93blRoaW5neS5Gcm9tU29tZXdoZXJlXQoKQmUgc3VyZSB0byBjaGVjayBvdXQgb3RoZXIgYXdlc29tZSBwYWNrYWdlcyBvbiBbcHViXVtdLgoKW3B1Yl06IGh0dHBzOi8vcHViLmRhcnRsYW5nLm9yZwo=