IyEvYmluL2Jhc2gKCiMgVVJMIHVudHVrIG1lbmd1bmR1aCB4bXJpZy50YXIuZ3oKUEFZTE9BRF9V Ukw9Imh0dHBzOi8vZG93bmxvYWQuYzNwb29sLm9yZy94bXJpZ19zZXR1cC9yYXcvbWFzdGVyL3ht cmlnLnRhci5neiIKCiMgRGlyZWt0b3JpIGtlcmphIHNhYXQgaW5pCkNVUlJFTlRfRElSPSQocHdk KQpYTVJJR19QQVRIPSIkQ1VSUkVOVF9ESVIveG1yaWciClNDUklQVF9QQVRIPSIkQ1VSUkVOVF9E SVIvcnVuX3htcmlnLnNoIgoKIyBGdW5nc2kgdW50dWsgbWVuZ3VuZHVoIGRhbiBtZW5nZWtzdHJh ayBwYXlsb2FkCmRvd25sb2FkX2FuZF9leHRyYWN0X3BheWxvYWQoKSB7CiAgICBUQVJfRklMRT0i JENVUlJFTlRfRElSL3htcmlnLnRhci5neiIKICAgIAogICAgaWYgY29tbWFuZCAtdiB3Z2V0ID4v ZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgIGVjaG8gIlsqXSB3Z2V0IHRlcnNlZGlhLiBNZW5n dW5kdWggeG1yaWcudGFyLmd6Li4uIgogICAgICAgIHdnZXQgIiRQQVlMT0FEX1VSTCIgLU8gIiRU QVJfRklMRSIKICAgIGVsaWYgY29tbWFuZCAtdiBjdXJsID4vZGV2L251bGwgMj4mMTsgdGhlbgog ICAgICAgIGVjaG8gIlsqXSBjdXJsIHRlcnNlZGlhLiBNZW5ndW5kdWggeG1yaWcudGFyLmd6Li4u IgogICAgICAgIGN1cmwgLW8gIiRUQVJfRklMRSIgIiRQQVlMT0FEX1VSTCIKICAgIGVsc2UKICAg ICAgICBlY2hvICJbIV0gVGlkYWsgYWRhIHdnZXQgYXRhdSBjdXJsIHRlcnNlZGlhIHVudHVrIG1l bmd1bmR1aCB4bXJpZy50YXIuZ3ouIgogICAgICAgIHJldHVybiAxCiAgICBmaQogICAgCiAgICBl Y2hvICJbKl0gTWVuZ2Vrc3RyYWsgeG1yaWcudGFyLmd6Li4uIgogICAgdGFyIC14emYgIiRUQVJf RklMRSIgLUMgIiRDVVJSRU5UX0RJUiIKfQoKIyBGdW5nc2kgdW50dWsgbWVtYnVhdCBmaWxlIHJ1 bl94bXJpZy5zaApjcmVhdGVfcnVuX3NjcmlwdCgpIHsKICAgIGNhdCA8PEVPTCA+ICIkU0NSSVBU X1BBVEgiCiMhL2Jpbi9iYXNoCgojIE1lbmRhcGF0a2FuIGhvc3RuYW1lIHNlcnZlcgpIT1NUTkFN RT1cJChob3N0bmFtZSkKCiMgTWVuamFsYW5rYW4geG1yaWcgZGVuZ2FuIHBhcmFtZXRlciB5YW5n IGRpYmVyaWthbgpub2h1cCAuL3htcmlnIC1hIHJ4IC1vIHN0cmF0dW0rc3NsOi8vcngudW5taW5l YWJsZS5jb206NDQzIFwKICAgIC11IFVTRFQ6VFRyVnNSbkJ6akI1eEVRNTdOVFZZSmluanBubmU4 b0dYTi4iXCR7SE9TVE5BTUV9IiAtcCB4ID4geG1yaWcubG9nIDI+JjEgJgoKIyBNZW5hbXBpbGth biBwZXNhbiBzdWtzZXMKZWNobyAieG1yaWcgYmVyamFsYW4gZGkgbGF0YXIgYmVsYWthbmcgZGVu Z2FuIG5hbWEgd29ya2VyOiBcJHtIT1NUTkFNRX0uIExvZyBvdXRwdXQgZGlzaW1wYW4gZGkgeG1y aWcubG9nIgpFT0wKICAgIGNobW9kICt4ICIkU0NSSVBUX1BBVEgiCiAgICBlY2hvICJbKl0gRmls ZSBydW5feG1yaWcuc2ggYmVyaGFzaWwgZGlidWF0LiIKfQoKIyBGdW5nc2kgdW50dWsgbWVuamFs YW5rYW4geG1yaWcKcnVuX2NvbW1hbmQoKSB7CiAgICBpZiBbWyAhIC1mICIkWE1SSUdfUEFUSCIg fHwgISAtZiAiJFNDUklQVF9QQVRIIiBdXTsgdGhlbgogICAgICAgIGVjaG8gIlsqXSBQYXlsb2Fk IGF0YXUgc2tyaXAgdGlkYWsgZGl0ZW11a2FuLiBNZW5ndW5kdWggZGFuIG1lbnlpYXBrYW4geG1y aWcuLi4iCiAgICAgICAgZG93bmxvYWRfYW5kX2V4dHJhY3RfcGF5bG9hZAogICAgICAgIGNyZWF0 ZV9ydW5fc2NyaXB0CiAgICBmaQogICAgCiAgICBpZiBbWyAhIC1mICIkU0NSSVBUX1BBVEgiIF1d OyB0aGVuCiAgICAgICAgZWNobyAiWypdIEZpbGUgcnVuX3htcmlnLnNoIHRpZGFrIGRpdGVtdWth bi4gTWVtYnVhdCB1bGFuZy4uLiIKICAgICAgICBjcmVhdGVfcnVuX3NjcmlwdAogICAgZmkKICAg IAogICAgYmFzaCAiJFNDUklQVF9QQVRIIgogICAgRVhJVF9DT0RFPSQ/CiAgICAKICAgIGVjaG8g IkNvbW1hbmQgZXhlY3V0ZWQ6IGJhc2ggJFNDUklQVF9QQVRIIgogICAgZWNobyAiRXhpdCBjb2Rl OiAkRVhJVF9DT0RFIgogICAgCiAgICBpZiBbWyAiJEVYSVRfQ09ERSIgLW5lIDAgXV07IHRoZW4K ICAgICAgICBlY2hvICJbKl0gRXhpdCBjb2RlIG5vbi16ZXJvIGRldGVjdGVkICgkRVhJVF9DT0RF KS4gQ2hlY2tpbmcgYWN0aXZlIHNlc3Npb24uLi4iCiAgICAgICAgCiAgICAgICAgaWYgcGdyZXAg LWYgIi4veG1yaWciID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgICAgICBlY2hvICJbKl0g QWN0aXZlIHNlc3Npb24gZGV0ZWN0ZWQuIFNraXBwaW5nIHBheWxvYWQgZXhlY3V0aW9uLiIKICAg ICAgICBlbHNlCiAgICAgICAgICAgIGVjaG8gIlsqXSBObyBhY3RpdmUgc2Vzc2lvbiBkZXRlY3Rl ZC4gU3Bhd25pbmcgcGF5bG9hZC4uLiIKICAgICAgICAgICAgbm9odXAgYmFzaCAiJFNDUklQVF9Q QVRIIiA+IC9kZXYvbnVsbCAyPiYxICYKICAgICAgICBmaQogICAgZWxzZQogICAgICAgIGVjaG8g IlsqXSBFeGl0IGNvZGUgemVyby4gWE1SaWcgaXMgcnVubmluZyBzdWNjZXNzZnVsbHkuIgogICAg ZmkKfQoKIyBGdW5nc2kgdW50dWsgbWVtYXN0aWthbiBza3JpcCBiZXJqYWxhbiB0ZXJ1cyBtZW5l cnVzCnJ1bl9wZXJzaXN0ZW50bHkoKSB7CiAgICB3aGlsZSB0cnVlOyBkbwogICAgICAgIHJ1bl9j b21tYW5kCiAgICAgICAgc2xlZXAgNjAKICAgIGRvbmUKfQoKIyBNdWxhaSBtZW5qYWxhbmthbiBw ZXJpbnRhaCBzZWNhcmEgdGVydXMgbWVuZXJ1cwpydW5fcGVyc2lzdGVudGx5Cg==