ZGlmZiAtLWdpdCBhL0FuZHJvaWQuYnAgYi9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5MzkzNWYKLS0tIC9kZXYvbnVsbAorKysgYi9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjExIEBACisvKgorICAgLS0tIFRvIHN5bmMgd2l0aCB1cHN0cmVhbToKKworICAgICMgVXBkYXRlIHNvdXJjZSBhbmQgcmVnZW5lcmF0ZSBnZW5lcmF0ZWQgZmlsZXMuCisgICAgZ2l0IHJlbW90ZSBhZGQgdG95Ym94IGh0dHBzOi8vZ2l0aHViLmNvbS9sYW5kbGV5L3RveWJveC5naXQKKyAgICBnaXQgZmV0Y2ggdG95Ym94ICYmIGdpdCBtZXJnZSB0b3lib3gvbWFzdGVyICYmIC4vcmVnZW5lcmF0ZS5zaAorCisgICAgIyBNYWtlIGFueSBuZWNlc3NhcnkgQW5kcm9pZC5icCBjaGFuZ2VzIGFuZCByZWJ1aWxkLgorICAgIG1tIC1qMzIKKworICAgICMgUnVuIGFsbCB0aGUgdGVzdHMuCisgICAgLi9ydW4tdGVzdHMtb24tYW5kcm9pZC5zaAorICAgICMgUnVuIGEgc2luZ2xlIHRlc3QuCisgICAgLi9ydW4tdGVzdHMtb24tYW5kcm9pZC5zaCB3YworCisgICAgIyBVcGxvYWQgY2hhbmdlcy4KKyAgICBnaXQgY29tbWl0IC1hIC0tYW1lbmQKKyAgICBnaXQgcHVzaCBhb3NwIEhFQUQ6cmVmcy9mb3IvbWFzdGVyICAjIFB1c2ggdG8gZ2Vycml0IGZvciByZXZpZXcuCisgICAgZ2l0IHB1c2ggYW9zcCBIRUFEOm1hc3RlciAgICAgICAgICAgIyBQdXNoIGRpcmVjdGx5LCBhdm9pZGluZyBnZXJyaXQuCisKKworICAgLS0tIFRvIGFkZCBhIHRveToKKworICAgICMgRWRpdCB0aGUgdGhyZWUgLmNvbmZpZy0qIGZpbGVzIHRvIGVuYWJsZSB0aGUgdG95IHlvdSB3YW50IGZvciB0aGUgdGFyZ2V0cworICAgICMgeW91IHdhbnQgaXQgb24sIGFuZCByZWdlbmVyYXRlIHRoZSBnZW5lcmF0ZWQgZmlsZXM6CisgICAgLi9wb3N0X3VwZGF0ZS5zaCAuCisKKyAgICAjIEVkaXQgdGhlIHJlbGV2YW50IGBzcmNzYCBiZWxvdywgZGVwZW5kaW5nIG9uIHdoZXJlIHRoZSB0b3kgc2hvdWxkIGJlCisgICAgIyBhdmFpbGFibGUuCisKKyAgICAjIElmIHlvdSBqdXN0IHdhbnQgdG8gdXNlIHRoZSB0b3kgdmlhICJ0b3lib3ggeCIgcmF0aGVyIHRoYW4gIngiLCB5b3UgY2FuCisgICAgIyBzdG9wIG5vdy4gSWYgeW91IHdhbnQgdGhpcyB0b3kgdG8gaGF2ZSBhIHN5bWJvbGljIGxpbmsgaW4gL3N5c3RlbS9iaW4sCisgICAgIyBhZGQgdGhlIHRveSB0byBgc3ltbGlua3NgIGJlbG93LgorCisqLworCitwYWNrYWdlIHsKKyAgICBkZWZhdWx0X2FwcGxpY2FibGVfbGljZW5zZXM6IFsiZXh0ZXJuYWxfdG95Ym94X2xpY2Vuc2UiXSwKK30KKworbGljZW5zZSB7CisgICAgbmFtZTogImV4dGVybmFsX3RveWJveF9saWNlbnNlIiwKKyAgICB2aXNpYmlsaXR5OiBbIjpfX3N1YnBhY2thZ2VzX18iXSwKKyAgICBsaWNlbnNlX2tpbmRzOiBbCisgICAgICAgICJTUERYLWxpY2Vuc2UtaWRlbnRpZmllci0wQlNEIiwKKyAgICAgICAgIlNQRFgtbGljZW5zZS1pZGVudGlmaWVyLUNDMC0xLjAiLAorICAgICAgICAiU1BEWC1saWNlbnNlLWlkZW50aWZpZXItVW5saWNlbnNlIiwKKyAgICAgICAgImxlZ2FjeV91bmVuY3VtYmVyZWQiLAorICAgIF0sCisgICAgbGljZW5zZV90ZXh0OiBbCisgICAgICAgICJMSUNFTlNFIiwKKyAgICBdLAorfQorCithbGxfc3JjcyA9IFsKKyAgICAibGliL2FyZ3MuYyIsCisgICAgImxpYi9jb21tYXMuYyIsCisgICAgImxpYi9kaXJ0cmVlLmMiLAorICAgICJsaWIvZWxmLmMiLAorICAgICJsaWIvZW52LmMiLAorICAgICJsaWIvaGFzaC5jIiwKKyAgICAibGliL2xpYi5jIiwKKyAgICAibGliL2xsaXN0LmMiLAorICAgICJsaWIvbmV0LmMiLAorICAgICJsaWIvcG9ydGFiaWxpdHkuYyIsCisgICAgImxpYi90dHkuYyIsCisgICAgImxpYi91dGY4LmMiLAorICAgICJsaWIveHdyYXAuYyIsCisgICAgIm1haW4uYyIsCisgICAgInRveXMvbHNiL2d6aXAuYyIsCisgICAgInRveXMvbHNiL2hvc3RuYW1lLmMiLAorICAgICJ0b3lzL2xzYi9tZDVzdW0uYyIsCisgICAgInRveXMvbHNiL21rdGVtcC5jIiwKKyAgICAidG95cy9sc2Ivc2VxLmMiLAorICAgICJ0b3lzL25ldC9taWNyb2NvbS5jIiwKKyAgICAidG95cy9vdGhlci9kb3MydW5peC5jIiwKKyAgICAidG95cy9vdGhlci9nZXRvcHQuYyIsCisgICAgInRveXMvb3RoZXIvcmVhZGxpbmsuYyIsCisgICAgInRveXMvb3RoZXIvc2V0c2lkLmMiLAorICAgICJ0b3lzL290aGVyL3N0YXQuYyIsCisgICAgInRveXMvb3RoZXIvdGltZW91dC5jIiwKKyAgICAidG95cy9vdGhlci90cnVuY2F0ZS5jIiwKKyAgICAidG95cy9vdGhlci93aGljaC5jIiwKKyAgICAidG95cy9vdGhlci94eGQuYyIsCisgICAgInRveXMvb3RoZXIveWVzLmMiLAorICAgICJ0b3lzL3BlbmRpbmcvZGlmZi5jIiwKKyAgICAidG95cy9wZW5kaW5nL2V4cHIuYyIsCisgICAgInRveXMvcGVuZGluZy90ci5jIiwKKyAgICAidG95cy9wb3NpeC9iYXNlbmFtZS5jIiwKKyAgICAidG95cy9wb3NpeC9jYXQuYyIsCisgICAgInRveXMvcG9zaXgvY2htb2QuYyIsCisgICAgInRveXMvcG9zaXgvY21wLmMiLAorICAgICJ0b3lzL3Bvc2l4L2NvbW0uYyIsCisgICAgInRveXMvcG9zaXgvY3AuYyIsCisgICAgInRveXMvcG9zaXgvY3Bpby5jIiwKKyAgICAidG95cy9wb3NpeC9jdXQuYyIsCisgICAgInRveXMvcG9zaXgvZGF0ZS5jIiwKKyAgICAidG95cy9wb3NpeC9kZC5jIiwKKyAgICAidG95cy9wb3NpeC9kaXJuYW1lLmMiLAorICAgICJ0b3lzL3Bvc2l4L2R1LmMiLAorICAgICJ0b3lzL3Bvc2l4L2VjaG8uYyIsCisgICAgInRveXMvcG9zaXgvZW52LmMiLAorICAgICJ0b3lzL3Bvc2l4L2ZpbGUuYyIsCisgICAgInRveXMvcG9zaXgvZmluZC5jIiwKKyAgICAidG95cy9wb3NpeC9nZXRjb25mLmMiLAorICAgICJ0b3lzL3Bvc2l4L2dyZXAuYyIsCisgICAgInRveXMvcG9zaXgvaGVhZC5jIiwKKyAgICAidG95cy9wb3NpeC9pZC5jIiwKKyAgICAidG95cy9wb3NpeC9sbi5jIiwKKyAgICAidG95cy9wb3NpeC9scy5jIiwKKyAgICAidG95cy9wb3NpeC9ta2Rpci5jIiwKKyAgICAidG95cy9wb3NpeC9ubC5jIiwKKyAgICAidG95cy9wb3NpeC9vZC5jIiwKKyAgICAidG95cy9wb3NpeC9wYXN0ZS5jIiwKKyAgICAidG95cy9wb3NpeC9wYXRjaC5jIiwKKyAgICAidG95cy9wb3NpeC9wcmludGYuYyIsCisgICAgInRveXMvcG9zaXgvcHdkLmMiLAorICAgICJ0b3lzL3Bvc2l4L3JtLmMiLAorICAgICJ0b3lzL3Bvc2l4L3JtZGlyLmMiLAorICAgICJ0b3lzL3Bvc2l4L3NlZC5jIiwKKyAgICAidG95cy9wb3NpeC9zbGVlcC5jIiwKKyAgICAidG95cy9wb3NpeC9zb3J0LmMiLAorICAgICJ0b3lzL3Bvc2l4L3RhaWwuYyIsCisgICAgInRveXMvcG9zaXgvdGFyLmMiLAorICAgICJ0b3lzL3Bvc2l4L3RlZS5jIiwKKyAgICAidG95cy9wb3NpeC90ZXN0LmMiLAorICAgICJ0b3lzL3Bvc2l4L3RvdWNoLmMiLAorICAgICJ0b3lzL3Bvc2l4L3RydWUuYyIsCisgICAgInRveXMvcG9zaXgvdW5hbWUuYyIsCisgICAgInRveXMvcG9zaXgvdW5pcS5jIiwKKyAgICAidG95cy9wb3NpeC93Yy5jIiwKKyAgICAidG95cy9wb3NpeC94YXJncy5jIiwKK10KKworbGludXhfc3JjcyA9IFsKKyAgICAidG95cy9sc2IvbW91bnQuYyIsCisgICAgInRveXMvbHNiL3Vtb3VudC5jIiwKKyAgICAidG95cy9wb3NpeC9wcy5jIiwKKyAgICAidG95cy9vdGhlci9mbG9jay5jIiwKKyAgICAidG95cy9vdGhlci9uc2VudGVyLmMiLAorICAgICJ0b3lzL290aGVyL3Rhc2tzZXQuYyIsCitdCisKK2RldmljZV9zcmNzID0gWworICAgICJ0b3lzL2FuZHJvaWQvZ2V0ZW5mb3JjZS5jIiwKKyAgICAidG95cy9hbmRyb2lkL2xvYWRfcG9saWN5LmMiLAorICAgICJ0b3lzL2FuZHJvaWQvbG9nLmMiLAorICAgICJ0b3lzL2FuZHJvaWQvcmVzdG9yZWNvbi5jIiwKKyAgICAidG95cy9hbmRyb2lkL3J1bmNvbi5jIiwKKyAgICAidG95cy9hbmRyb2lkL3NlbmRldmVudC5jIiwKKyAgICAidG95cy9hbmRyb2lkL3NldGVuZm9yY2UuYyIsCisgICAgInRveXMvbHNiL2RtZXNnLmMiLAorICAgICJ0b3lzL2xzYi9raWxsYWxsLmMiLAorICAgICJ0b3lzL2xzYi9ta25vZC5jIiwKKyAgICAidG95cy9sc2IvcGlkb2YuYyIsCisgICAgInRveXMvbHNiL3N5bmMuYyIsCisgICAgInRveXMvbmV0L2lmY29uZmlnLmMiLAorICAgICJ0b3lzL25ldC9uZXRjYXQuYyIsCisgICAgInRveXMvbmV0L25ldHN0YXQuYyIsCisgICAgInRveXMvbmV0L3BpbmcuYyIsCisgICAgInRveXMvbmV0L3Jma2lsbC5jIiwKKyAgICAidG95cy9uZXQvdHVuY3RsLmMiLAorICAgICJ0b3lzL290aGVyL2FjcGkuYyIsCisgICAgInRveXMvb3RoZXIvYmFzZTY0LmMiLAorICAgICJ0b3lzL290aGVyL2Jsa2Rpc2NhcmQuYyIsCisgICAgInRveXMvb3RoZXIvYmxraWQuYyIsCisgICAgInRveXMvb3RoZXIvYmxvY2tkZXYuYyIsCisgICAgInRveXMvb3RoZXIvY2hjb24uYyIsCisgICAgInRveXMvb3RoZXIvY2hyb290LmMiLAorICAgICJ0b3lzL290aGVyL2NocnQuYyIsCisgICAgInRveXMvb3RoZXIvY2xlYXIuYyIsCisgICAgInRveXMvb3RoZXIvZGV2bWVtLmMiLAorICAgICJ0b3lzL290aGVyL2ZhbGxvY2F0ZS5jIiwKKyAgICAidG95cy9vdGhlci9mbXQuYyIsCisgICAgInRveXMvb3RoZXIvZnJlZS5jIiwKKyAgICAidG95cy9vdGhlci9mcmVlcmFtZGlzay5jIiwKKyAgICAidG95cy9vdGhlci9mc2ZyZWV6ZS5jIiwKKyAgICAidG95cy9vdGhlci9mc3luYy5jIiwKKyAgICAidG95cy9vdGhlci9ncGlvZC5jIiwKKyAgICAidG95cy9vdGhlci9oZWxwLmMiLAorICAgICJ0b3lzL290aGVyL2h3Y2xvY2suYyIsCisgICAgInRveXMvb3RoZXIvaTJjdG9vbHMuYyIsCisgICAgInRveXMvb3RoZXIvaW5vdGlmeWQuYyIsCisgICAgInRveXMvb3RoZXIvaW5zbW9kLmMiLAorICAgICJ0b3lzL290aGVyL2lvbmljZS5jIiwKKyAgICAidG95cy9vdGhlci9sb3NldHVwLmMiLAorICAgICJ0b3lzL290aGVyL2xzYXR0ci5jIiwKKyAgICAidG95cy9vdGhlci9sc21vZC5jIiwKKyAgICAidG95cy9vdGhlci9sc3VzYi5jIiwKKyAgICAidG95cy9vdGhlci9tYWtlZGV2cy5jIiwKKyAgICAidG95cy9vdGhlci9tZW1lYXRlci5jIiwKKyAgICAidG95cy9vdGhlci9ta3N3YXAuYyIsCisgICAgInRveXMvb3RoZXIvbW9kaW5mby5jIiwKKyAgICAidG95cy9vdGhlci9tb3VudHBvaW50LmMiLAorICAgICJ0b3lzL290aGVyL25iZF9jbGllbnQuYyIsCisgICAgInRveXMvb3RoZXIvcGFydHByb2JlLmMiLAorICAgICJ0b3lzL290aGVyL3Bpdm90X3Jvb3QuYyIsCisgICAgInRveXMvb3RoZXIvcG1hcC5jIiwKKyAgICAidG95cy9vdGhlci9wcmludGVudi5jIiwKKyAgICAidG95cy9vdGhlci9wd2R4LmMiLAorICAgICJ0b3lzL290aGVyL3JlYWRlbGYuYyIsCisgICAgInRveXMvb3RoZXIvcmV2LmMiLAorICAgICJ0b3lzL290aGVyL3JtbW9kLmMiLAorICAgICJ0b3lzL290aGVyL3J0Y3dha2UuYyIsCisgICAgInRveXMvb3RoZXIvc2V0ZmF0dHIuYyIsCisgICAgInRveXMvb3RoZXIvc3dhcG9mZi5jIiwKKyAgICAidG95cy9vdGhlci9zd2Fwb24uYyIsCisgICAgInRveXMvb3RoZXIvc3lzY3RsLmMiLAorICAgICJ0b3lzL290aGVyL3RhYy5jIiwKKyAgICAidG95cy9vdGhlci91Y2xhbXBzZXQuYyIsCisgICAgInRveXMvb3RoZXIvdXB0aW1lLmMiLAorICAgICJ0b3lzL290aGVyL3VzbGVlcC5jIiwKKyAgICAidG95cy9vdGhlci91dWlkZ2VuLmMiLAorICAgICJ0b3lzL290aGVyL3Zjb25maWcuYyIsCisgICAgInRveXMvb3RoZXIvdm1zdGF0LmMiLAorICAgICJ0b3lzL290aGVyL3dhdGNoLmMiLAorICAgICJ0b3lzL3BlbmRpbmcvYnJjdGwuYyIsCisgICAgInRveXMvcGVuZGluZy9nZXRmYXR0ci5jIiwKKyAgICAidG95cy9wZW5kaW5nL2xzb2YuYyIsCisgICAgInRveXMvcGVuZGluZy9tb2Rwcm9iZS5jIiwKKyAgICAidG95cy9wZW5kaW5nL21vcmUuYyIsCisgICAgInRveXMvcGVuZGluZy9zdHR5LmMiLAorICAgICJ0b3lzL3BlbmRpbmcvdHJhY2Vyb3V0ZS5jIiwKKyAgICAidG95cy9wZW5kaW5nL3ZpLmMiLAorICAgICJ0b3lzL3Bvc2l4L2NhbC5jIiwKKyAgICAidG95cy9wb3NpeC9jaGdycC5jIiwKKyAgICAidG95cy9wb3NpeC9ja3N1bS5jIiwKKyAgICAidG95cy9wb3NpeC9kZi5jIiwKKyAgICAidG95cy9wb3NpeC9leHBhbmQuYyIsCisgICAgInRveXMvcG9zaXgvZmFsc2UuYyIsCisgICAgInRveXMvcG9zaXgvaWNvbnYuYyIsCisgICAgInRveXMvcG9zaXgva2lsbC5jIiwKKyAgICAidG95cy9wb3NpeC9sb2dnZXIuYyIsCisgICAgInRveXMvcG9zaXgvbWtmaWZvLmMiLAorICAgICJ0b3lzL3Bvc2l4L25pY2UuYyIsCisgICAgInRveXMvcG9zaXgvbm9odXAuYyIsCisgICAgInRveXMvcG9zaXgvcmVuaWNlLmMiLAorICAgICJ0b3lzL3Bvc2l4L3NwbGl0LmMiLAorICAgICJ0b3lzL3Bvc2l4L3N0cmluZ3MuYyIsCisgICAgInRveXMvcG9zaXgvdGltZS5jIiwKKyAgICAidG95cy9wb3NpeC90dHkuYyIsCisgICAgInRveXMvcG9zaXgvdWxpbWl0LmMiLAorICAgICJ0b3lzL3Bvc2l4L3VubGluay5jIiwKKyAgICAidG95cy9wb3NpeC91dWRlY29kZS5jIiwKKyAgICAidG95cy9wb3NpeC91dWVuY29kZS5jIiwKK10KKwordG95Ym94X3N5bWxpbmtzID0gWworICAgICJbIiwKKyAgICAiYWNwaSIsCisgICAgImJhc2U2NCIsCisgICAgImJhc2VuYW1lIiwKKyAgICAiYmxvY2tkZXYiLAorICAgICJicmN0bCIsCisgICAgImNhbCIsCisgICAgImNhdCIsCisgICAgImNoYXR0ciIsCisgICAgImNoY29uIiwKKyAgICAiY2hncnAiLAorICAgICJjaG1vZCIsCisgICAgImNob3duIiwKKyAgICAiY2hyb290IiwKKyAgICAiY2hydCIsCisgICAgImNrc3VtIiwKKyAgICAiY2xlYXIiLAorICAgICJjb21tIiwKKyAgICAiY21wIiwKKyAgICAiY3AiLAorICAgICJjcGlvIiwKKyAgICAiY3V0IiwKKyAgICAiZGF0ZSIsCisgICAgImRkIiwKKyAgICAiZGV2bWVtIiwKKyAgICAiZGYiLAorICAgICJkaWZmIiwKKyAgICAiZGlybmFtZSIsCisgICAgImRtZXNnIiwKKyAgICAiZG9zMnVuaXgiLAorICAgICJkdSIsCisgICAgImVjaG8iLAorICAgICJlZ3JlcCIsCisgICAgImVudiIsCisgICAgImV4cGFuZCIsCisgICAgImV4cHIiLAorICAgICJmYWxsb2NhdGUiLAorICAgICJmYWxzZSIsCisgICAgImZncmVwIiwKKyAgICAiZmlsZSIsCisgICAgImZpbmQiLAorICAgICJmbG9jayIsCisgICAgImZtdCIsCisgICAgImZyZWUiLAorICAgICJmc3luYyIsCisgICAgImdldGNvbmYiLAorICAgICJnZXRlbmZvcmNlIiwKKyAgICAiZ2V0ZmF0dHIiLAorICAgICJnZXRvcHQiLAorICAgICJncGlvZGV0ZWN0IiwKKyAgICAiZ3Bpb2ZpbmQiLAorICAgICJncGlvZ2V0IiwKKyAgICAiZ3Bpb2luZm8iLAorICAgICJncGlvc2V0IiwKKyAgICAiZ3JlcCIsCisgICAgImdyb3VwcyIsCisgICAgImd1bnppcCIsCisgICAgImd6aXAiLAorICAgICJoZWFkIiwKKyAgICAiaG9zdG5hbWUiLAorICAgICJod2Nsb2NrIiwKKyAgICAiaTJjZGV0ZWN0IiwKKyAgICAiaTJjZHVtcCIsCisgICAgImkyY2dldCIsCisgICAgImkyY3NldCIsCisgICAgImkyY3RyYW5zZmVyIiwKKyAgICAiaWNvbnYiLAorICAgICJpZCIsCisgICAgImlmY29uZmlnIiwKKyAgICAiaW5vdGlmeWQiLAorICAgICJpbnNtb2QiLAorICAgICJpbnN0YWxsIiwKKyAgICAiaW9uaWNlIiwKKyAgICAiaW9yZW5pY2UiLAorICAgICJraWxsIiwKKyAgICAia2lsbGFsbCIsCisgICAgImxvYWRfcG9saWN5IiwKKyAgICAibG4iLAorICAgICJsb2ciLAorICAgICJsb2dnZXIiLAorICAgICJsb2duYW1lIiwKKyAgICAibG9zZXR1cCIsCisgICAgImxzIiwKKyAgICAibHNhdHRyIiwKKyAgICAibHNtb2QiLAorICAgICJsc29mIiwKKyAgICAibHNwY2kiLAorICAgICJsc3VzYiIsCisgICAgIm1kNXN1bSIsCisgICAgIm1lbWVhdGVyIiwKKyAgICAibWtkaXIiLAorICAgICJta2ZpZm8iLAorICAgICJta25vZCIsCisgICAgIm1rc3dhcCIsCisgICAgIm1rdGVtcCIsCisgICAgIm1pY3JvY29tIiwKKyAgICAibW9kaW5mbyIsCisgICAgIm1vcmUiLAorICAgICJtb3VudCIsCisgICAgIm1vdW50cG9pbnQiLAorICAgICJtdiIsCisgICAgIm5jIiwKKyAgICAibmV0Y2F0IiwKKyAgICAibmV0c3RhdCIsCisgICAgIm5pY2UiLAorICAgICJubCIsCisgICAgIm5vaHVwIiwKKyAgICAibnByb2MiLAorICAgICJuc2VudGVyIiwKKyAgICAib2QiLAorICAgICJwYXN0ZSIsCisgICAgInBhdGNoIiwKKyAgICAicGdyZXAiLAorICAgICJwaWRvZiIsCisgICAgInBraWxsIiwKKyAgICAicG1hcCIsCisgICAgInByaW50ZW52IiwKKyAgICAicHJpbnRmIiwKKyAgICAicHMiLAorICAgICJwd2QiLAorICAgICJyZWFkZWxmIiwKKyAgICAicmVhZGxpbmsiLAorICAgICJyZWFscGF0aCIsCisgICAgInJlbmljZSIsCisgICAgInJlc3RvcmVjb24iLAorICAgICJybSIsCisgICAgInJtZGlyIiwKKyAgICAicm1tb2QiLAorICAgICJydGN3YWtlIiwKKyAgICAicnVuY29uIiwKKyAgICAic2VkIiwKKyAgICAic2VuZGV2ZW50IiwKKyAgICAic2VxIiwKKyAgICAic2V0ZW5mb3JjZSIsCisgICAgInNldGZhdHRyIiwKKyAgICAic2V0c2lkIiwKKyAgICAic2hhMXN1bSIsCisgICAgInNoYTIyNHN1bSIsCisgICAgInNoYTI1NnN1bSIsCisgICAgInNoYTM4NHN1bSIsCisgICAgInNoYTUxMnN1bSIsCisgICAgInNsZWVwIiwKKyAgICAic29ydCIsCisgICAgInNwbGl0IiwKKyAgICAic3RhdCIsCisgICAgInN0cmluZ3MiLAorICAgICJzdHR5IiwKKyAgICAic3dhcG9mZiIsCisgICAgInN3YXBvbiIsCisgICAgInN5bmMiLAorICAgICJzeXNjdGwiLAorICAgICJ0YWMiLAorICAgICJ0YWlsIiwKKyAgICAidGFyIiwKKyAgICAidGFza3NldCIsCisgICAgInRlZSIsCisgICAgInRlc3QiLAorICAgICJ0aW1lIiwKKyAgICAidGltZW91dCIsCisgICAgInRvcCIsCisgICAgInRvdWNoIiwKKyAgICAidHIiLAorICAgICJ0cnVlIiwKKyAgICAidHJ1bmNhdGUiLAorICAgICJ0dHkiLAorICAgICJ1Y2xhbXBzZXQiLAorICAgICJ1bGltaXQiLAorICAgICJ1bW91bnQiLAorICAgICJ1bmFtZSIsCisgICAgInVuaXEiLAorICAgICJ1bml4MmRvcyIsCisgICAgInVubGluayIsCisgICAgInVuc2hhcmUiLAorICAgICJ1cHRpbWUiLAorICAgICJ1c2xlZXAiLAorICAgICJ1dWRlY29kZSIsCisgICAgInV1ZW5jb2RlIiwKKyAgICAidXVpZGdlbiIsCisgICAgInZpIiwKKyAgICAidm1zdGF0IiwKKyAgICAid2F0Y2giLAorICAgICJ3YyIsCisgICAgIndoaWNoIiwKKyAgICAid2hvYW1pIiwKKyAgICAieGFyZ3MiLAorICAgICJ4eGQiLAorICAgICJ5ZXMiLAorICAgICJ6Y2F0IiwKK10KKworY2NfZGVmYXVsdHMgeworICAgIG5hbWU6ICJ0b3lib3gtZGVmYXVsdHMiLAorICAgIHNyY3M6IGFsbF9zcmNzLAorCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItT3MiLAorICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgICAgICItV25vLWNoYXItc3Vic2NyaXB0cyIsCisgICAgICAgICItV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIiwKKyAgICAgICAgIi1Xbm8taW52YWxpZC1zb3VyY2UtZW5jb2RpbmciLAorICAgICAgICAiLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyIsCisgICAgICAgICItV25vLXBvaW50ZXItYXJpdGgiLAorICAgICAgICAiLVduby1zaWduLWNvbXBhcmUiLAorICAgICAgICAiLVduby1zdHJpbmctcGx1cy1pbnQiLAorICAgICAgICAiLVduby11bnVzZWQtcGFyYW1ldGVyIiwKKyAgICAgICAgIi1Xbm8tdW51c2VkLXZhcmlhYmxlIiwKKyAgICAgICAgIi1mdW5zaWduZWQtY2hhciIsCisgICAgICAgICItZmZ1bmN0aW9uLXNlY3Rpb25zIiwKKyAgICAgICAgIi1mZGF0YS1zZWN0aW9ucyIsCisgICAgICAgICItZm5vLWFzeW5jaHJvbm91cy11bndpbmQtdGFibGVzIiwKKyAgICAgICAgIi1EVE9ZQk9YX1ZFTkRPUj1cIi1hbmRyb2lkXCIiLAorICAgIF0sCisKKyAgICB0YXJnZXQ6IHsKKyAgICAgICAgaG9zdF9saW51eDogeworICAgICAgICAgICAgbG9jYWxfaW5jbHVkZV9kaXJzOiBbImFuZHJvaWQvbGludXgiXSwKKyAgICAgICAgfSwKKworICAgICAgICBkYXJ3aW46IHsKKyAgICAgICAgICAgIGxvY2FsX2luY2x1ZGVfZGlyczogWyJhbmRyb2lkL21hYyJdLAorICAgICAgICAgICAgY2ZsYWdzOiBbCisgICAgICAgICAgICAgICAgLy8gbWFjT1MnIGdldGdyb3VwcygzKSBzaWduYXR1cmUgZGlmZmVycy4KKyAgICAgICAgICAgICAgICAiLVduby1wb2ludGVyLXNpZ24iLAorICAgICAgICAgICAgICAgIC8vIGRpZmYuYyBkZWZpbmVzIE1JTiBhbmQgTUFYIHdoaWNoIChvbmx5IG9uIG1hY09TKSB3ZSdyZQorICAgICAgICAgICAgICAgIC8vIGFsc28gZ2V0dGluZyBmcm9tIDxzeXMvcGFyYW0uaD4uCisgICAgICAgICAgICAgICAgIi1Xbm8tbWFjcm8tcmVkZWZpbmVkIiwKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBsZGZsYWdzOiBbCisgICAgICAgICAgICAgICAgIi1XbCwtZGVhZF9zdHJpcCIsCisgICAgICAgICAgICBdLAorICAgICAgICB9LAorCisgICAgICAgIGxpbnV4OiB7CisgICAgICAgICAgICBzcmNzOiBsaW51eF9zcmNzLAorICAgICAgICB9LAorCisgICAgICAgIGFuZHJvaWQ6IHsKKyAgICAgICAgICAgIGxvY2FsX2luY2x1ZGVfZGlyczogWyJhbmRyb2lkL2RldmljZSJdLAorICAgICAgICAgICAgc3JjczogZGV2aWNlX3NyY3MsCisgICAgICAgIH0sCisgICAgfSwKK30KKworLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisvLyB0b3lib3ggZm9yIC9zeXN0ZW0sIC92ZW5kb3IsIGFuZCAvcmVjb3ZlcnkKKy8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitjY19kZWZhdWx0cyB7CisgICAgbmFtZTogInRveWJveC1zaGFyZWQtZGVmYXVsdHMiLAorICAgIGRlZmF1bHRzOiBbInRveWJveC1kZWZhdWx0cyJdLAorCisgICAgLy8gVGhpcyBkb2Vzbid0IGFjdHVhbGx5IHByZXZlbnQgdXMgZnJvbSBkcmFnZ2luZyBpbiBsaWJjKysgYXQgcnVudGltZQorICAgIC8vIG9uIHRoZSBkZXZpY2UgYmVjYXVzZSBsaWJuZXRkX2NsaWVudC5zbyBpcyBDKyssIGJ1dCBpdCBpbXByb3ZlcyBob3N0CisgICAgLy8gc3RhcnR1cCB0aW1lLgorICAgIHN0bDogIm5vbmUiLAorCisgICAgdGFyZ2V0OiB7CisgICAgICAgIGFuZHJvaWQ6IHsKKyAgICAgICAgICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICAgICAgICAgImxpYmNyeXB0byIsCisgICAgICAgICAgICAgICAgImxpYmxvZyIsCisgICAgICAgICAgICAgICAgImxpYnByb2Nlc3Nncm91cCIsCisgICAgICAgICAgICAgICAgImxpYnNlbGludXgiLAorICAgICAgICAgICAgICAgICJsaWJ6IiwKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBzeW1saW5rczogdG95Ym94X3N5bWxpbmtzLAorICAgICAgICB9LAorICAgICAgICBob3N0OiB7CisgICAgICAgICAgICBzdGF0aWNfbGliczogWworICAgICAgICAgICAgICAgICJsaWJjcnlwdG8iLAorICAgICAgICAgICAgICAgICJsaWJ6IiwKKyAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAgfSwKK30KKworY2NfYmluYXJ5IHsKKyAgICBuYW1lOiAidG95Ym94IiwKKyAgICBkZWZhdWx0czogWyJ0b3lib3gtc2hhcmVkLWRlZmF1bHRzIl0sCisgICAgaG9zdF9zdXBwb3J0ZWQ6IHRydWUsCisgICAgcmVjb3ZlcnlfYXZhaWxhYmxlOiB0cnVlLAorICAgIHZlbmRvcl9yYW1kaXNrX2F2YWlsYWJsZTogdHJ1ZSwKK30KKworY2NfYmluYXJ5IHsKKyAgICBuYW1lOiAidG95Ym94X3ZlbmRvciIsCisgICAgZGVmYXVsdHM6IFsidG95Ym94LXNoYXJlZC1kZWZhdWx0cyJdLAorICAgIHZlbmRvcjogdHJ1ZSwKK30KKworLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisvLyBTdGF0aWMgdG95Ym94IGJpbmFyaWVzIGZvciBsZWdhY3kgZGV2aWNlcworLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2NjX2JpbmFyeSB7CisgICAgbmFtZTogInRveWJveC1zdGF0aWMiLAorICAgIGRlZmF1bHRzOiBbInRveWJveC1kZWZhdWx0cyJdLAorICAgIHN0YXRpY19leGVjdXRhYmxlOiB0cnVlLAorICAgIGNvbXBpbGVfbXVsdGlsaWI6ICJib3RoIiwKKyAgICBtdWx0aWxpYjogeworICAgICAgICBsaWIzMjogeworICAgICAgICAgICAgc3VmZml4OiAiMzIiLAorICAgICAgICB9LAorICAgICAgICBsaWI2NDogeworICAgICAgICAgICAgc3VmZml4OiAiNjQiLAorICAgICAgICB9LAorICAgIH0sCisgICAgc3RsOiAibGliYysrX3N0YXRpYyIsCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgImxpYmMiLAorICAgICAgICAibGlibSIsCisgICAgICAgICJsaWJ6IiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliY2dyb3VwcmMiLAorICAgICAgICAibGliY2dyb3VwcmNfZm9ybWF0IiwKKyAgICAgICAgImxpYmNyeXB0b19zdGF0aWMiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnByb2Nlc3Nncm91cCIsCisgICAgICAgICJsaWJzZWxpbnV4IiwKKyAgICBdLAorICAgIGRpc3Q6IHsKKyAgICAgICAgdGFyZ2V0czogWworICAgICAgICAgICAgInNkayIsCisgICAgICAgIF0sCisgICAgfSwKK30KKworLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisvLyBSdW5uaW5nIHRoZSB0b3lib3ggdGVzdHMKKy8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitzaF90ZXN0IHsKKyAgICBuYW1lOiAidG95Ym94LXRlc3RzIiwKKyAgICBzcmM6ICJydW4tdGVzdHMtb24tYW5kcm9pZC5zaCIsCisgICAgZmlsZW5hbWU6ICJydW4tdGVzdHMtb24tYW5kcm9pZC5zaCIsCisgICAgdGVzdF9zdWl0ZXM6IFsiZ2VuZXJhbC10ZXN0cyJdLAorICAgIGhvc3Rfc3VwcG9ydGVkOiB0cnVlLAorICAgIGRldmljZV9zdXBwb3J0ZWQ6IGZhbHNlLAorICAgIHJlcXVpcmVfcm9vdDogdHJ1ZSwKKyAgICBkYXRhOiBbCisgICAgICAgICJ0ZXN0cy8qKi8qIiwKKyAgICAgICAgInNjcmlwdHMvcnVudGVzdC5zaCIsCisgICAgXSwKK30KKworY2NfdGVzdCB7CisgICAgbmFtZTogInRveWJveC1ndGVzdHMiLAorICAgIGNvbXBpbGVfbXVsdGlsaWI6ICJmaXJzdCIsCisgICAgc3JjczogWworICAgICAgICAidG95Ym94LWd0ZXN0cy5jcHAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICBdLAorICAgIHRlc3Rfc3VpdGVzOiBbImRldmljZS10ZXN0cyJdLAorICAgIHJlcXVpcmVfcm9vdDogdHJ1ZSwKKyAgICBkYXRhOiBbCisgICAgICAgICJ0ZXN0cy8qKi8qIiwKKyAgICAgICAgInNjcmlwdHMvcnVudGVzdC5zaCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL01FVEFEQVRBIGIvTUVUQURBVEEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNlZjdhMwotLS0gL2Rldi9udWxsCisrKyBiL01FVEFEQVRBCkBAIC0wLDAgKzEsMjAgQEAKKyMgVGhpcyBwcm9qZWN0IHdhcyB1cGdyYWRlZCB3aXRoIGV4dGVybmFsX3VwZGF0ZXIuCisjIFVzYWdlOiB0b29scy9leHRlcm5hbF91cGRhdGVyL3VwZGF0ZXIuc2ggdXBkYXRlIGV4dGVybmFsL3RveWJveAorIyBGb3IgbW9yZSBpbmZvLCBjaGVjayBodHRwczovL2NzLmFuZHJvaWQuY29tL2FuZHJvaWQvcGxhdGZvcm0vc3VwZXJwcm9qZWN0LysvbWFpbjp0b29scy9leHRlcm5hbF91cGRhdGVyL1JFQURNRS5tZAorCituYW1lOiAidG95Ym94IgorZGVzY3JpcHRpb246ICJUb3lib3g6IGFsbC1pbi1vbmUgTGludXggY29tbWFuZCBsaW5lLiIKK3RoaXJkX3BhcnR5IHsKKyAgbGljZW5zZV90eXBlOiBVTkVOQ1VNQkVSRUQKKyAgbGFzdF91cGdyYWRlX2RhdGUgeworICAgIHllYXI6IDIwMjQKKyAgICBtb250aDogNQorICAgIGRheTogMjAKKyAgfQorICBob21lcGFnZTogImh0dHBzOi8vbGFuZGxleS5uZXQvdG95Ym94LyIKKyAgaWRlbnRpZmllciB7CisgICAgdHlwZTogIkdpdCIKKyAgICB2YWx1ZTogImh0dHBzOi8vZ2l0aHViLmNvbS9sYW5kbGV5L3RveWJveCIKKyAgICB2ZXJzaW9uOiAiM2FkMmE4Nzk5MWFhZTI2ZjQwNDEwMzFjMjdkYmJmNjNkNWVjMWNhNyIKKyAgfQorfQpkaWZmIC0tZ2l0IGEvTU9EVUxFX0xJQ0VOU0VfQlNEIGIvTU9EVUxFX0xJQ0VOU0VfQlNECm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9NT0RVTEVfTElDRU5TRV9CU0QKZGlmZiAtLWdpdCBhL09XTkVSUyBiL09XTkVSUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTI5Y2I5Ci0tLSAvZGV2L251bGwKKysrIGIvT1dORVJTCkBAIC0wLDAgKzEgQEAKK2luY2x1ZGUgcGxhdGZvcm0vc3lzdGVtL2NvcmU6L2phbml0b3JzL09XTkVSUwpkaWZmIC0tZ2l0IGEvVEVTVF9NQVBQSU5HIGIvVEVTVF9NQVBQSU5HCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiMTEwZjkKLS0tIC9kZXYvbnVsbAorKysgYi9URVNUX01BUFBJTkcKQEAgLTAsMCArMSwyNSBAQAoreworICAicHJlc3VibWl0IjogWworICAgIHsKKyAgICAgICJuYW1lIjogInRveWJveC10ZXN0cyIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImFpZGxfaW50ZWdyYXRpb25fdGVzdCIKKyAgICB9CisgIF0sCisgICJwb3N0c3VibWl0IjogWworICAgIHsKKyAgICAgICJuYW1lIjogInRveWJveC1ndGVzdHMiCisgICAgfQorICBdLAorICAiaHdhc2FuLXBvc3RzdWJtaXQiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAidG95Ym94LXRlc3RzIgorICAgIH0KKyAgXSwKKyAgImtlcm5lbC1wcmVzdWJtaXQiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAidG95Ym94LXRlc3RzIgorICAgIH0KKyAgXQorfQpkaWZmIC0tZ2l0IGEvYW5kcm9pZC9kZXZpY2UvZ2VuZXJhdGVkL2NvbmZpZy5oIGIvYW5kcm9pZC9kZXZpY2UvZ2VuZXJhdGVkL2NvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkY2EzODMKLS0tIC9kZXYvbnVsbAorKysgYi9hbmRyb2lkL2RldmljZS9nZW5lcmF0ZWQvY29uZmlnLmgKQEAgLTAsMCArMSw2NzggQEAKKyNkZWZpbmUgQ0ZHX1RPWUJPWCAxCisjZGVmaW5lIFVTRV9UT1lCT1goLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVE9ZQk9YX0RFQlVHIDAKKyNkZWZpbmUgVVNFX1RPWUJPWF9ERUJVRyguLi4pCisjZGVmaW5lIENGR19UT1lCT1hfRkxPQVQgMQorI2RlZmluZSBVU0VfVE9ZQk9YX0ZMT0FUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RPWUJPWF9GT1JLIDEKKyNkZWZpbmUgVVNFX1RPWUJPWF9GT1JLKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RPWUJPWF9GUkVFIDAKKyNkZWZpbmUgVVNFX1RPWUJPWF9GUkVFKC4uLikKKyNkZWZpbmUgQ0ZHX1RPWUJPWF9IRUxQX0RBU0hEQVNIIDEKKyNkZWZpbmUgVVNFX1RPWUJPWF9IRUxQX0RBU0hEQVNIKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RPWUJPWF9IRUxQIDEKKyNkZWZpbmUgVVNFX1RPWUJPWF9IRUxQKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RPWUJPWF9MSUJDUllQVE8gMQorI2RlZmluZSBVU0VfVE9ZQk9YX0xJQkNSWVBUTyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfTElCWiAxCisjZGVmaW5lIFVTRV9UT1lCT1hfTElCWiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfTFNNX05PTkUgMAorI2RlZmluZSBVU0VfVE9ZQk9YX0xTTV9OT05FKC4uLikKKyNkZWZpbmUgQ0ZHX1RPWUJPWF9OT1JFQ1VSU0UgMQorI2RlZmluZSBVU0VfVE9ZQk9YX05PUkVDVVJTRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfT05fQU5EUk9JRCAxCisjZGVmaW5lIFVTRV9UT1lCT1hfT05fQU5EUk9JRCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfU0VMSU5VWCAxCisjZGVmaW5lIFVTRV9UT1lCT1hfU0VMSU5VWCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfU01BQ0sgMAorI2RlZmluZSBVU0VfVE9ZQk9YX1NNQUNLKC4uLikKKyNkZWZpbmUgQ0ZHX1RPWUJPWF9TVUlEIDAKKyNkZWZpbmUgVVNFX1RPWUJPWF9TVUlEKC4uLikKKyNkZWZpbmUgQ0ZHX1RPWUJPWF9VSURfU1lTIDEwMAorI2RlZmluZSBDRkdfVE9ZQk9YX1VJRF9VU1IgNTAwCisjZGVmaW5lIENGR19UT1lCT1hfWkhFTFAgMAorI2RlZmluZSBVU0VfVE9ZQk9YX1pIRUxQKC4uLikKKyNkZWZpbmUgQ0ZHX0FDUEkgMQorI2RlZmluZSBVU0VfQUNQSSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19BUkNIIDAKKyNkZWZpbmUgVVNFX0FSQ0goLi4uKQorI2RlZmluZSBDRkdfQVJQSU5HIDAKKyNkZWZpbmUgVVNFX0FSUElORyguLi4pCisjZGVmaW5lIENGR19BUlAgMAorI2RlZmluZSBVU0VfQVJQKC4uLikKKyNkZWZpbmUgQ0ZHX0FTQ0lJIDAKKyNkZWZpbmUgVVNFX0FTQ0lJKC4uLikKKyNkZWZpbmUgQ0ZHX0JBU0UzMiAwCisjZGVmaW5lIFVTRV9CQVNFMzIoLi4uKQorI2RlZmluZSBDRkdfQkFTRTY0IDEKKyNkZWZpbmUgVVNFX0JBU0U2NCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19CQVNFTkFNRSAxCisjZGVmaW5lIFVTRV9CQVNFTkFNRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19CQyAwCisjZGVmaW5lIFVTRV9CQyguLi4pCisjZGVmaW5lIENGR19CTEtESVNDQVJEIDEKKyNkZWZpbmUgVVNFX0JMS0RJU0NBUkQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQkxLSUQgMQorI2RlZmluZSBVU0VfQkxLSUQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQkxPQ0tERVYgMQorI2RlZmluZSBVU0VfQkxPQ0tERVYoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQk9PVENIQVJURCAwCisjZGVmaW5lIFVTRV9CT09UQ0hBUlREKC4uLikKKyNkZWZpbmUgQ0ZHX0JSQ1RMIDEKKyNkZWZpbmUgVVNFX0JSQ1RMKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0JVTlpJUDIgMAorI2RlZmluZSBVU0VfQlVOWklQMiguLi4pCisjZGVmaW5lIENGR19CWkNBVCAwCisjZGVmaW5lIFVTRV9CWkNBVCguLi4pCisjZGVmaW5lIENGR19DQUwgMQorI2RlZmluZSBVU0VfQ0FMKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0NBVCAxCisjZGVmaW5lIFVTRV9DQVQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQ0QgMAorI2RlZmluZSBVU0VfQ0QoLi4uKQorI2RlZmluZSBDRkdfQ0hBVFRSIDEKKyNkZWZpbmUgVVNFX0NIQVRUUiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19DSENPTiAxCisjZGVmaW5lIFVTRV9DSENPTiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19DSEdSUCAxCisjZGVmaW5lIFVTRV9DSEdSUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19DSE1PRCAxCisjZGVmaW5lIFVTRV9DSE1PRCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19DSE9XTiAxCisjZGVmaW5lIFVTRV9DSE9XTiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19DSFJPT1QgMQorI2RlZmluZSBVU0VfQ0hST09UKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0NIUlQgMQorI2RlZmluZSBVU0VfQ0hSVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19DSFNIIDAKKyNkZWZpbmUgVVNFX0NIU0goLi4uKQorI2RlZmluZSBDRkdfQ0hWVCAwCisjZGVmaW5lIFVTRV9DSFZUKC4uLikKKyNkZWZpbmUgQ0ZHX0NLU1VNIDEKKyNkZWZpbmUgVVNFX0NLU1VNKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0NMRUFSIDEKKyNkZWZpbmUgVVNFX0NMRUFSKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0NNUCAxCisjZGVmaW5lIFVTRV9DTVAoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQ09NTSAxCisjZGVmaW5lIFVTRV9DT01NKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0NPVU5UIDAKKyNkZWZpbmUgVVNFX0NPVU5UKC4uLikKKyNkZWZpbmUgQ0ZHX0NQSU8gMQorI2RlZmluZSBVU0VfQ1BJTyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19DUCAxCisjZGVmaW5lIFVTRV9DUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19DUkMzMiAwCisjZGVmaW5lIFVTRV9DUkMzMiguLi4pCisjZGVmaW5lIENGR19DUk9ORCAwCisjZGVmaW5lIFVTRV9DUk9ORCguLi4pCisjZGVmaW5lIENGR19DUk9OVEFCIDAKKyNkZWZpbmUgVVNFX0NST05UQUIoLi4uKQorI2RlZmluZSBDRkdfQ1NQTElUIDAKKyNkZWZpbmUgVVNFX0NTUExJVCguLi4pCisjZGVmaW5lIENGR19DVVQgMQorI2RlZmluZSBVU0VfQ1VUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0RBVEUgMQorI2RlZmluZSBVU0VfREFURSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19ERCAxCisjZGVmaW5lIFVTRV9ERCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19ERUFMTE9DVlQgMAorI2RlZmluZSBVU0VfREVBTExPQ1ZUKC4uLikKKyNkZWZpbmUgQ0ZHX0RFQlVHX0RIQ1AgMAorI2RlZmluZSBVU0VfREVCVUdfREhDUCguLi4pCisjZGVmaW5lIENGR19ERU1PX01BTllfT1BUSU9OUyAwCisjZGVmaW5lIFVTRV9ERU1PX01BTllfT1BUSU9OUyguLi4pCisjZGVmaW5lIENGR19ERU1PX05VTUJFUiAwCisjZGVmaW5lIFVTRV9ERU1PX05VTUJFUiguLi4pCisjZGVmaW5lIENGR19ERU1PX1NDQU5LRVkgMAorI2RlZmluZSBVU0VfREVNT19TQ0FOS0VZKC4uLikKKyNkZWZpbmUgQ0ZHX0RFTU9fVVRGOFRPV0MgMAorI2RlZmluZSBVU0VfREVNT19VVEY4VE9XQyguLi4pCisjZGVmaW5lIENGR19ERVZNRU0gMQorI2RlZmluZSBVU0VfREVWTUVNKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0RGIDEKKyNkZWZpbmUgVVNFX0RGKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0RIQ1A2IDAKKyNkZWZpbmUgVVNFX0RIQ1A2KC4uLikKKyNkZWZpbmUgQ0ZHX0RIQ1BEIDAKKyNkZWZpbmUgVVNFX0RIQ1BEKC4uLikKKyNkZWZpbmUgQ0ZHX0RIQ1AgMAorI2RlZmluZSBVU0VfREhDUCguLi4pCisjZGVmaW5lIENGR19ESUZGIDEKKyNkZWZpbmUgVVNFX0RJRkYoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfRElSTkFNRSAxCisjZGVmaW5lIFVTRV9ESVJOQU1FKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0RNRVNHIDEKKyNkZWZpbmUgVVNFX0RNRVNHKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0ROU0RPTUFJTk5BTUUgMAorI2RlZmluZSBVU0VfRE5TRE9NQUlOTkFNRSguLi4pCisjZGVmaW5lIENGR19ET1MyVU5JWCAxCisjZGVmaW5lIFVTRV9ET1MyVU5JWCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19EVU1QTEVBU0VTIDAKKyNkZWZpbmUgVVNFX0RVTVBMRUFTRVMoLi4uKQorI2RlZmluZSBDRkdfRFUgMQorI2RlZmluZSBVU0VfRFUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfRUNITyAxCisjZGVmaW5lIFVTRV9FQ0hPKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0VHUkVQIDEKKyNkZWZpbmUgVVNFX0VHUkVQKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0VKRUNUIDAKKyNkZWZpbmUgVVNFX0VKRUNUKC4uLikKKyNkZWZpbmUgQ0ZHX0VOViAxCisjZGVmaW5lIFVTRV9FTlYoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfRVhJVCAwCisjZGVmaW5lIFVTRV9FWElUKC4uLikKKyNkZWZpbmUgQ0ZHX0VYUEFORCAxCisjZGVmaW5lIFVTRV9FWFBBTkQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfRVhQUiAxCisjZGVmaW5lIFVTRV9FWFBSKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0ZBQ1RPUiAwCisjZGVmaW5lIFVTRV9GQUNUT1IoLi4uKQorI2RlZmluZSBDRkdfRkFMTE9DQVRFIDEKKyNkZWZpbmUgVVNFX0ZBTExPQ0FURSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19GQUxTRSAxCisjZGVmaW5lIFVTRV9GQUxTRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19GRElTSyAwCisjZGVmaW5lIFVTRV9GRElTSyguLi4pCisjZGVmaW5lIENGR19GR1JFUCAxCisjZGVmaW5lIFVTRV9GR1JFUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19GSUxFIDEKKyNkZWZpbmUgVVNFX0ZJTEUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfRklORCAxCisjZGVmaW5lIFVTRV9GSU5EKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0ZMT0NLIDEKKyNkZWZpbmUgVVNFX0ZMT0NLKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0ZNVCAxCisjZGVmaW5lIFVTRV9GTVQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfRk9MRCAwCisjZGVmaW5lIFVTRV9GT0xEKC4uLikKKyNkZWZpbmUgQ0ZHX0ZSRUVSQU1ESVNLIDEKKyNkZWZpbmUgVVNFX0ZSRUVSQU1ESVNLKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0ZSRUUgMQorI2RlZmluZSBVU0VfRlJFRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19GU0NLIDAKKyNkZWZpbmUgVVNFX0ZTQ0soLi4uKQorI2RlZmluZSBDRkdfRlNGUkVFWkUgMQorI2RlZmluZSBVU0VfRlNGUkVFWkUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfRlNUWVBFIDAKKyNkZWZpbmUgVVNFX0ZTVFlQRSguLi4pCisjZGVmaW5lIENGR19GU1lOQyAxCisjZGVmaW5lIFVTRV9GU1lOQyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19GVFBHRVQgMAorI2RlZmluZSBVU0VfRlRQR0VUKC4uLikKKyNkZWZpbmUgQ0ZHX0ZUUFBVVCAwCisjZGVmaW5lIFVTRV9GVFBQVVQoLi4uKQorI2RlZmluZSBDRkdfR0VUQ09ORiAxCisjZGVmaW5lIFVTRV9HRVRDT05GKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0dFVEVORk9SQ0UgMQorI2RlZmluZSBVU0VfR0VURU5GT1JDRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19HRVRGQVRUUiAxCisjZGVmaW5lIFVTRV9HRVRGQVRUUiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19HRVRPUFQgMQorI2RlZmluZSBVU0VfR0VUT1BUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0dFVFRZIDAKKyNkZWZpbmUgVVNFX0dFVFRZKC4uLikKKyNkZWZpbmUgQ0ZHX0dJVENIRUNLT1VUIDAKKyNkZWZpbmUgVVNFX0dJVENIRUNLT1VUKC4uLikKKyNkZWZpbmUgQ0ZHX0dJVENMT05FIDAKKyNkZWZpbmUgVVNFX0dJVENMT05FKC4uLikKKyNkZWZpbmUgQ0ZHX0dJVENPTVBBVCAwCisjZGVmaW5lIFVTRV9HSVRDT01QQVQoLi4uKQorI2RlZmluZSBDRkdfR0lURkVUQ0ggMAorI2RlZmluZSBVU0VfR0lURkVUQ0goLi4uKQorI2RlZmluZSBDRkdfR0lUSU5JVCAwCisjZGVmaW5lIFVTRV9HSVRJTklUKC4uLikKKyNkZWZpbmUgQ0ZHX0dJVFJFTU9URSAwCisjZGVmaW5lIFVTRV9HSVRSRU1PVEUoLi4uKQorI2RlZmluZSBDRkdfR1BJT0RFVEVDVCAxCisjZGVmaW5lIFVTRV9HUElPREVURUNUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0dQSU9GSU5EIDEKKyNkZWZpbmUgVVNFX0dQSU9GSU5EKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0dQSU9HRVQgMQorI2RlZmluZSBVU0VfR1BJT0dFVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19HUElPSU5GTyAxCisjZGVmaW5lIFVTRV9HUElPSU5GTyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19HUElPU0VUIDEKKyNkZWZpbmUgVVNFX0dQSU9TRVQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfR1JFUCAxCisjZGVmaW5lIFVTRV9HUkVQKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0dST1VQQUREIDAKKyNkZWZpbmUgVVNFX0dST1VQQUREKC4uLikKKyNkZWZpbmUgQ0ZHX0dST1VQREVMIDAKKyNkZWZpbmUgVVNFX0dST1VQREVMKC4uLikKKyNkZWZpbmUgQ0ZHX0dST1VQUyAxCisjZGVmaW5lIFVTRV9HUk9VUFMoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfR1VOWklQIDEKKyNkZWZpbmUgVVNFX0dVTlpJUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19HWklQIDEKKyNkZWZpbmUgVVNFX0daSVAoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfSEVBRCAxCisjZGVmaW5lIFVTRV9IRUFEKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0hFTExPIDAKKyNkZWZpbmUgVVNFX0hFTExPKC4uLikKKyNkZWZpbmUgQ0ZHX0hFTFAgMQorI2RlZmluZSBVU0VfSEVMUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19IRVhEVU1QIDAKKyNkZWZpbmUgVVNFX0hFWERVTVAoLi4uKQorI2RlZmluZSBDRkdfSEVYRURJVCAwCisjZGVmaW5lIFVTRV9IRVhFRElUKC4uLikKKyNkZWZpbmUgQ0ZHX0hEIDAKKyNkZWZpbmUgVVNFX0hEKC4uLikKKyNkZWZpbmUgQ0ZHX0hPU1RJRCAwCisjZGVmaW5lIFVTRV9IT1NUSUQoLi4uKQorI2RlZmluZSBDRkdfSE9TVCAwCisjZGVmaW5lIFVTRV9IT1NUKC4uLikKKyNkZWZpbmUgQ0ZHX0hPU1ROQU1FIDEKKyNkZWZpbmUgVVNFX0hPU1ROQU1FKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0hUVFBEIDAKKyNkZWZpbmUgVVNFX0hUVFBEKC4uLikKKyNkZWZpbmUgQ0ZHX0hXQ0xPQ0sgMQorI2RlZmluZSBVU0VfSFdDTE9DSyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19JMkNERVRFQ1QgMQorI2RlZmluZSBVU0VfSTJDREVURUNUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0kyQ0RVTVAgMQorI2RlZmluZSBVU0VfSTJDRFVNUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19JMkNHRVQgMQorI2RlZmluZSBVU0VfSTJDR0VUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0kyQ1NFVCAxCisjZGVmaW5lIFVTRV9JMkNTRVQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfSTJDVFJBTlNGRVIgMQorI2RlZmluZSBVU0VfSTJDVFJBTlNGRVIoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfSUNPTlYgMQorI2RlZmluZSBVU0VfSUNPTlYoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfSUQgMQorI2RlZmluZSBVU0VfSUQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfSURfWiAxCisjZGVmaW5lIFVTRV9JRF9aKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0lGQ09ORklHIDEKKyNkZWZpbmUgVVNFX0lGQ09ORklHKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0lOSVQgMAorI2RlZmluZSBVU0VfSU5JVCguLi4pCisjZGVmaW5lIENGR19JTk9USUZZRCAxCisjZGVmaW5lIFVTRV9JTk9USUZZRCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19JTlNNT0QgMQorI2RlZmluZSBVU0VfSU5TTU9EKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0lOU1RBTEwgMQorI2RlZmluZSBVU0VfSU5TVEFMTCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19JT05JQ0UgMQorI2RlZmluZSBVU0VfSU9OSUNFKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0lPUkVOSUNFIDEKKyNkZWZpbmUgVVNFX0lPUkVOSUNFKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0lPVE9QIDEKKyNkZWZpbmUgVVNFX0lPVE9QKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0lQQ1JNIDAKKyNkZWZpbmUgVVNFX0lQQ1JNKC4uLikKKyNkZWZpbmUgQ0ZHX0lQQ1MgMAorI2RlZmluZSBVU0VfSVBDUyguLi4pCisjZGVmaW5lIENGR19JUCAwCisjZGVmaW5lIFVTRV9JUCguLi4pCisjZGVmaW5lIENGR19LSUxMQUxMNSAwCisjZGVmaW5lIFVTRV9LSUxMQUxMNSguLi4pCisjZGVmaW5lIENGR19LSUxMQUxMIDEKKyNkZWZpbmUgVVNFX0tJTExBTEwoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfS0lMTCAxCisjZGVmaW5lIFVTRV9LSUxMKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0tMT0dEIDAKKyNkZWZpbmUgVVNFX0tMT0dEKC4uLikKKyNkZWZpbmUgQ0ZHX0tMT0dEX1NPVVJDRV9SSU5HX0JVRkZFUiAwCisjZGVmaW5lIFVTRV9LTE9HRF9TT1VSQ0VfUklOR19CVUZGRVIoLi4uKQorI2RlZmluZSBDRkdfTEFTVCAwCisjZGVmaW5lIFVTRV9MQVNUKC4uLikKKyNkZWZpbmUgQ0ZHX0xJTksgMAorI2RlZmluZSBVU0VfTElOSyguLi4pCisjZGVmaW5lIENGR19MSU5VWDMyIDAKKyNkZWZpbmUgVVNFX0xJTlVYMzIoLi4uKQorI2RlZmluZSBDRkdfTE4gMQorI2RlZmluZSBVU0VfTE4oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTE9BRF9QT0xJQ1kgMQorI2RlZmluZSBVU0VfTE9BRF9QT0xJQ1koLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTE9HR0VSIDEKKyNkZWZpbmUgVVNFX0xPR0dFUiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19MT0dJTiAwCisjZGVmaW5lIFVTRV9MT0dJTiguLi4pCisjZGVmaW5lIENGR19MT0dOQU1FIDEKKyNkZWZpbmUgVVNFX0xPR05BTUUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTE9HUEFUSCAwCisjZGVmaW5lIFVTRV9MT0dQQVRIKC4uLikKKyNkZWZpbmUgQ0ZHX0xPRyAxCisjZGVmaW5lIFVTRV9MT0coLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTE9TRVRVUCAxCisjZGVmaW5lIFVTRV9MT1NFVFVQKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0xTQVRUUiAxCisjZGVmaW5lIFVTRV9MU0FUVFIoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTFNNT0QgMQorI2RlZmluZSBVU0VfTFNNT0QoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTFNPRiAxCisjZGVmaW5lIFVTRV9MU09GKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0xTUENJIDEKKyNkZWZpbmUgVVNFX0xTUENJKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0xTVVNCIDEKKyNkZWZpbmUgVVNFX0xTVVNCKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0xTIDEKKyNkZWZpbmUgVVNFX0xTKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX01BS0VERVZTIDEKKyNkZWZpbmUgVVNFX01BS0VERVZTKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX01BTiAwCisjZGVmaW5lIFVTRV9NQU4oLi4uKQorI2RlZmluZSBDRkdfTUNPT0tJRSAwCisjZGVmaW5lIFVTRV9NQ09PS0lFKC4uLikKKyNkZWZpbmUgQ0ZHX01ENVNVTSAxCisjZGVmaW5lIFVTRV9NRDVTVU0oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTURFVl9DT05GIDAKKyNkZWZpbmUgVVNFX01ERVZfQ09ORiguLi4pCisjZGVmaW5lIENGR19NREVWIDAKKyNkZWZpbmUgVVNFX01ERVYoLi4uKQorI2RlZmluZSBDRkdfTUVNRUFURVIgMQorI2RlZmluZSBVU0VfTUVNRUFURVIoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTUlDUk9DT00gMQorI2RlZmluZSBVU0VfTUlDUk9DT00oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTUlYIDAKKyNkZWZpbmUgVVNFX01JWCguLi4pCisjZGVmaW5lIENGR19NS0RJUiAxCisjZGVmaW5lIFVTRV9NS0RJUiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19NS0RJUl9aIDEKKyNkZWZpbmUgVVNFX01LRElSX1ooLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTUtFMkZTX0VYVEVOREVEIDAKKyNkZWZpbmUgVVNFX01LRTJGU19FWFRFTkRFRCguLi4pCisjZGVmaW5lIENGR19NS0UyRlNfR0VOIDAKKyNkZWZpbmUgVVNFX01LRTJGU19HRU4oLi4uKQorI2RlZmluZSBDRkdfTUtFMkZTIDAKKyNkZWZpbmUgVVNFX01LRTJGUyguLi4pCisjZGVmaW5lIENGR19NS0UyRlNfSk9VUk5BTCAwCisjZGVmaW5lIFVTRV9NS0UyRlNfSk9VUk5BTCguLi4pCisjZGVmaW5lIENGR19NS0UyRlNfTEFCRUwgMAorI2RlZmluZSBVU0VfTUtFMkZTX0xBQkVMKC4uLikKKyNkZWZpbmUgQ0ZHX01LRklGTyAxCisjZGVmaW5lIFVTRV9NS0ZJRk8oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTUtGSUZPX1ogMQorI2RlZmluZSBVU0VfTUtGSUZPX1ooLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTUtOT0QgMQorI2RlZmluZSBVU0VfTUtOT0QoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTUtOT0RfWiAxCisjZGVmaW5lIFVTRV9NS05PRF9aKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX01LUEFTU1dEIDAKKyNkZWZpbmUgVVNFX01LUEFTU1dEKC4uLikKKyNkZWZpbmUgQ0ZHX01LU1dBUCAxCisjZGVmaW5lIFVTRV9NS1NXQVAoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTUtURU1QIDEKKyNkZWZpbmUgVVNFX01LVEVNUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19NT0RJTkZPIDEKKyNkZWZpbmUgVVNFX01PRElORk8oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTU9EUFJPQkUgMQorI2RlZmluZSBVU0VfTU9EUFJPQkUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTU9SRSAxCisjZGVmaW5lIFVTRV9NT1JFKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX01PVU5UUE9JTlQgMQorI2RlZmluZSBVU0VfTU9VTlRQT0lOVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19NT1VOVCAxCisjZGVmaW5lIFVTRV9NT1VOVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19NViAxCisjZGVmaW5lIFVTRV9NViguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19OQkRfQ0xJRU5UIDEKKyNkZWZpbmUgVVNFX05CRF9DTElFTlQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTkJEX1NFUlZFUiAwCisjZGVmaW5lIFVTRV9OQkRfU0VSVkVSKC4uLikKKyNkZWZpbmUgQ0ZHX05FVENBVCAxCisjZGVmaW5lIFVTRV9ORVRDQVQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTkVUU1RBVCAxCisjZGVmaW5lIFVTRV9ORVRTVEFUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX05JQ0UgMQorI2RlZmluZSBVU0VfTklDRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19OTCAxCisjZGVmaW5lIFVTRV9OTCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19OT0hVUCAxCisjZGVmaW5lIFVTRV9OT0hVUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19OUFJPQyAxCisjZGVmaW5lIFVTRV9OUFJPQyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19OU0VOVEVSIDEKKyNkZWZpbmUgVVNFX05TRU5URVIoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfT0QgMQorI2RlZmluZSBVU0VfT0QoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfT05FSVQgMAorI2RlZmluZSBVU0VfT05FSVQoLi4uKQorI2RlZmluZSBDRkdfT1BFTlZUIDAKKyNkZWZpbmUgVVNFX09QRU5WVCguLi4pCisjZGVmaW5lIENGR19QQVJUUFJPQkUgMQorI2RlZmluZSBVU0VfUEFSVFBST0JFKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1BBU1NXRCAwCisjZGVmaW5lIFVTRV9QQVNTV0QoLi4uKQorI2RlZmluZSBDRkdfUEFTVEUgMQorI2RlZmluZSBVU0VfUEFTVEUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfUEFUQ0ggMQorI2RlZmluZSBVU0VfUEFUQ0goLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfUEdSRVAgMQorI2RlZmluZSBVU0VfUEdSRVAoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfUElET0YgMQorI2RlZmluZSBVU0VfUElET0YoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfUElORyAxCisjZGVmaW5lIFVTRV9QSU5HKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1BJVk9UX1JPT1QgMQorI2RlZmluZSBVU0VfUElWT1RfUk9PVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19QS0lMTCAxCisjZGVmaW5lIFVTRV9QS0lMTCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19QTUFQIDEKKyNkZWZpbmUgVVNFX1BNQVAoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfUFJJTlRFTlYgMQorI2RlZmluZSBVU0VfUFJJTlRFTlYoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfUFJJTlRGIDEKKyNkZWZpbmUgVVNFX1BSSU5URiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19QUyAxCisjZGVmaW5lIFVTRV9QUyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19QV0RYIDEKKyNkZWZpbmUgVVNFX1BXRFgoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfUFdEIDEKKyNkZWZpbmUgVVNFX1BXRCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19QV0dFTiAwCisjZGVmaW5lIFVTRV9QV0dFTiguLi4pCisjZGVmaW5lIENGR19SRUFEQUhFQUQgMAorI2RlZmluZSBVU0VfUkVBREFIRUFEKC4uLikKKyNkZWZpbmUgQ0ZHX1JFQURFTEYgMQorI2RlZmluZSBVU0VfUkVBREVMRiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19SRUFETElOSyAxCisjZGVmaW5lIFVTRV9SRUFETElOSyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19SRUFMUEFUSCAxCisjZGVmaW5lIFVTRV9SRUFMUEFUSCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19SRUJPT1QgMAorI2RlZmluZSBVU0VfUkVCT09UKC4uLikKKyNkZWZpbmUgQ0ZHX1JFTklDRSAxCisjZGVmaW5lIFVTRV9SRU5JQ0UoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfUkVTRVQgMAorI2RlZmluZSBVU0VfUkVTRVQoLi4uKQorI2RlZmluZSBDRkdfUkVTVE9SRUNPTiAxCisjZGVmaW5lIFVTRV9SRVNUT1JFQ09OKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1JFViAxCisjZGVmaW5lIFVTRV9SRVYoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfUkZLSUxMIDEKKyNkZWZpbmUgVVNFX1JGS0lMTCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19STURJUiAxCisjZGVmaW5lIFVTRV9STURJUiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19STU1PRCAxCisjZGVmaW5lIFVTRV9STU1PRCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19STSAxCisjZGVmaW5lIFVTRV9STSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19ST1VURSAwCisjZGVmaW5lIFVTRV9ST1VURSguLi4pCisjZGVmaW5lIENGR19SVENXQUtFIDEKKyNkZWZpbmUgVVNFX1JUQ1dBS0UoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfUlVOQ09OIDEKKyNkZWZpbmUgVVNFX1JVTkNPTiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TRUQgMQorI2RlZmluZSBVU0VfU0VEKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NFTkRFVkVOVCAxCisjZGVmaW5lIFVTRV9TRU5ERVZFTlQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU0VRIDEKKyNkZWZpbmUgVVNFX1NFUSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TRVRFTkZPUkNFIDEKKyNkZWZpbmUgVVNFX1NFVEVORk9SQ0UoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU0VURkFUVFIgMQorI2RlZmluZSBVU0VfU0VURkFUVFIoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU0VUU0lEIDEKKyNkZWZpbmUgVVNFX1NFVFNJRCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TSEExU1VNIDEKKyNkZWZpbmUgVVNFX1NIQTFTVU0oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU0hBMjI0U1VNIDEKKyNkZWZpbmUgVVNFX1NIQTIyNFNVTSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TSEEyNTZTVU0gMQorI2RlZmluZSBVU0VfU0hBMjU2U1VNKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NIQTNTVU0gMAorI2RlZmluZSBVU0VfU0hBM1NVTSguLi4pCisjZGVmaW5lIENGR19TSEEzODRTVU0gMQorI2RlZmluZSBVU0VfU0hBMzg0U1VNKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NIQTUxMlNVTSAxCisjZGVmaW5lIFVTRV9TSEE1MTJTVU0oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU0ggMAorI2RlZmluZSBVU0VfU0goLi4uKQorI2RlZmluZSBDRkdfU0hSRUQgMAorI2RlZmluZSBVU0VfU0hSRUQoLi4uKQorI2RlZmluZSBDRkdfU0hVRiAwCisjZGVmaW5lIFVTRV9TSFVGKC4uLikKKyNkZWZpbmUgQ0ZHX1NLRUxFVE9OX0FMSUFTIDAKKyNkZWZpbmUgVVNFX1NLRUxFVE9OX0FMSUFTKC4uLikKKyNkZWZpbmUgQ0ZHX1NLRUxFVE9OIDAKKyNkZWZpbmUgVVNFX1NLRUxFVE9OKC4uLikKKyNkZWZpbmUgQ0ZHX1NMRUVQIDEKKyNkZWZpbmUgVVNFX1NMRUVQKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NOVFAgMAorI2RlZmluZSBVU0VfU05UUCguLi4pCisjZGVmaW5lIENGR19TT1JUX0ZMT0FUIDEKKyNkZWZpbmUgVVNFX1NPUlRfRkxPQVQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU09SVCAxCisjZGVmaW5lIFVTRV9TT1JUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NQTElUIDEKKyNkZWZpbmUgVVNFX1NQTElUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NUQVQgMQorI2RlZmluZSBVU0VfU1RBVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TVFJBQ0UgMAorI2RlZmluZSBVU0VfU1RSQUNFKC4uLikKKyNkZWZpbmUgQ0ZHX1NUUklOR1MgMQorI2RlZmluZSBVU0VfU1RSSU5HUyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TVFRZIDEKKyNkZWZpbmUgVVNFX1NUVFkoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU1UgMAorI2RlZmluZSBVU0VfU1UoLi4uKQorI2RlZmluZSBDRkdfU1VMT0dJTiAwCisjZGVmaW5lIFVTRV9TVUxPR0lOKC4uLikKKyNkZWZpbmUgQ0ZHX1NXQVBPRkYgMQorI2RlZmluZSBVU0VfU1dBUE9GRiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TV0FQT04gMQorI2RlZmluZSBVU0VfU1dBUE9OKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NXSVRDSF9ST09UIDAKKyNkZWZpbmUgVVNFX1NXSVRDSF9ST09UKC4uLikKKyNkZWZpbmUgQ0ZHX1NZTkMgMQorI2RlZmluZSBVU0VfU1lOQyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TWVNDVEwgMQorI2RlZmluZSBVU0VfU1lTQ1RMKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NZU0xPR0QgMAorI2RlZmluZSBVU0VfU1lTTE9HRCguLi4pCisjZGVmaW5lIENGR19UQUMgMQorI2RlZmluZSBVU0VfVEFDKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RBSUwgMQorI2RlZmluZSBVU0VfVEFJTCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UQVIgMQorI2RlZmluZSBVU0VfVEFSKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RBU0tTRVQgMQorI2RlZmluZSBVU0VfVEFTS1NFVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UQ1BTVkQgMAorI2RlZmluZSBVU0VfVENQU1ZEKC4uLikKKyNkZWZpbmUgQ0ZHX1RFRSAxCisjZGVmaW5lIFVTRV9URUUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVEVMTkVURCAwCisjZGVmaW5lIFVTRV9URUxORVREKC4uLikKKyNkZWZpbmUgQ0ZHX1RFTE5FVCAwCisjZGVmaW5lIFVTRV9URUxORVQoLi4uKQorI2RlZmluZSBDRkdfVEVTVCAxCisjZGVmaW5lIFVTRV9URVNUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RFU1RfR0xVRSAxCisjZGVmaW5lIFVTRV9URVNUX0dMVUUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVEZUUEQgMAorI2RlZmluZSBVU0VfVEZUUEQoLi4uKQorI2RlZmluZSBDRkdfVEZUUCAwCisjZGVmaW5lIFVTRV9URlRQKC4uLikKKyNkZWZpbmUgQ0ZHX1RJTUVPVVQgMQorI2RlZmluZSBVU0VfVElNRU9VVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19USU1FIDEKKyNkZWZpbmUgVVNFX1RJTUUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVE9QIDEKKyNkZWZpbmUgVVNFX1RPUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1VDSCAxCisjZGVmaW5lIFVTRV9UT1VDSCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UUkFDRVJPVVRFIDEKKyNkZWZpbmUgVVNFX1RSQUNFUk9VVEUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVFJVRSAxCisjZGVmaW5lIFVTRV9UUlVFKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RSVU5DQVRFIDEKKyNkZWZpbmUgVVNFX1RSVU5DQVRFKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RSIDEKKyNkZWZpbmUgVVNFX1RSKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RTIDAKKyNkZWZpbmUgVVNFX1RTKC4uLikKKyNkZWZpbmUgQ0ZHX1RTT1JUIDAKKyNkZWZpbmUgVVNFX1RTT1JUKC4uLikKKyNkZWZpbmUgQ0ZHX1RUWSAxCisjZGVmaW5lIFVTRV9UVFkoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVFVOQ1RMIDEKKyNkZWZpbmUgVVNFX1RVTkNUTCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19VQ0xBTVBTRVQgMQorI2RlZmluZSBVU0VfVUNMQU1QU0VUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1VMSU1JVCAxCisjZGVmaW5lIFVTRV9VTElNSVQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVU1PVU5UIDEKKyNkZWZpbmUgVVNFX1VNT1VOVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19VTkFNRSAxCisjZGVmaW5lIFVTRV9VTkFNRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19VTklDT0RFIDAKKyNkZWZpbmUgVVNFX1VOSUNPREUoLi4uKQorI2RlZmluZSBDRkdfVU5JUSAxCisjZGVmaW5lIFVTRV9VTklRKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1VOSVgyRE9TIDEKKyNkZWZpbmUgVVNFX1VOSVgyRE9TKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1VOTElOSyAxCisjZGVmaW5lIFVTRV9VTkxJTksoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVU5TSEFSRSAxCisjZGVmaW5lIFVTRV9VTlNIQVJFKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1VQVElNRSAxCisjZGVmaW5lIFVTRV9VUFRJTUUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVVNFUkFERCAwCisjZGVmaW5lIFVTRV9VU0VSQUREKC4uLikKKyNkZWZpbmUgQ0ZHX1VTRVJERUwgMAorI2RlZmluZSBVU0VfVVNFUkRFTCguLi4pCisjZGVmaW5lIENGR19VU0xFRVAgMQorI2RlZmluZSBVU0VfVVNMRUVQKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1VVREVDT0RFIDEKKyNkZWZpbmUgVVNFX1VVREVDT0RFKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1VVRU5DT0RFIDEKKyNkZWZpbmUgVVNFX1VVRU5DT0RFKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1VVSURHRU4gMQorI2RlZmluZSBVU0VfVVVJREdFTiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19WQ09ORklHIDEKKyNkZWZpbmUgVVNFX1ZDT05GSUcoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVkkgMQorI2RlZmluZSBVU0VfVkkoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVk1TVEFUIDEKKyNkZWZpbmUgVVNFX1ZNU1RBVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19XQVRDSCAxCisjZGVmaW5lIFVTRV9XQVRDSCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19XQVRDSERPRyAwCisjZGVmaW5lIFVTRV9XQVRDSERPRyguLi4pCisjZGVmaW5lIENGR19XQyAxCisjZGVmaW5lIFVTRV9XQyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19XR0VUIDAKKyNkZWZpbmUgVVNFX1dHRVQoLi4uKQorI2RlZmluZSBDRkdfV0hJQ0ggMQorI2RlZmluZSBVU0VfV0hJQ0goLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfV0hPQU1JIDEKKyNkZWZpbmUgVVNFX1dIT0FNSSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19XSE8gMAorI2RlZmluZSBVU0VfV0hPKC4uLikKKyNkZWZpbmUgQ0ZHX1cgMAorI2RlZmluZSBVU0VfVyguLi4pCisjZGVmaW5lIENGR19YQVJHUyAxCisjZGVmaW5lIFVTRV9YQVJHUyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19YWEQgMQorI2RlZmluZSBVU0VfWFhEKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1haQ0FUIDAKKyNkZWZpbmUgVVNFX1haQ0FUKC4uLikKKyNkZWZpbmUgQ0ZHX1lFUyAxCisjZGVmaW5lIFVTRV9ZRVMoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfWkNBVCAxCisjZGVmaW5lIFVTRV9aQ0FUKC4uLikgX19WQV9BUkdTX18KZGlmZiAtLWdpdCBhL2FuZHJvaWQvZGV2aWNlL2dlbmVyYXRlZC9mbGFncy5oIGIvYW5kcm9pZC9kZXZpY2UvZ2VuZXJhdGVkL2ZsYWdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA2ZTNmNgotLS0gL2Rldi9udWxsCisrKyBiL2FuZHJvaWQvZGV2aWNlL2dlbmVyYXRlZC9mbGFncy5oCkBAIC0wLDAgKzEsNzU0MCBAQAorI3VuZGVmIEZPUkNFRF9GTEFHCisjaWZkZWYgRk9SQ0VfRkxBR1MKKyNkZWZpbmUgRk9SQ0VEX0ZMQUcgMUxMCisjZWxzZQorI2RlZmluZSBGT1JDRURfRkxBRyAwTEwKKyNlbmRpZgorCisvLyBhY3BpIGFiY3RWIGFiY3RWCisjdW5kZWYgT1BUU1RSX2FjcGkKKyNkZWZpbmUgT1BUU1RSX2FjcGkgImFiY3RWIgorI2lmZGVmIENMRUFOVVBfYWNwaQorI3VuZGVmIENMRUFOVVBfYWNwaQorI3VuZGVmIEZPUl9hY3BpCisjdW5kZWYgRkxBR19WCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gYXJjaCAgICAKKyN1bmRlZiBPUFRTVFJfYXJjaAorI2RlZmluZSBPUFRTVFJfYXJjaCAwCisjaWZkZWYgQ0xFQU5VUF9hcmNoCisjdW5kZWYgQ0xFQU5VUF9hcmNoCisjdW5kZWYgRk9SX2FyY2gKKyNlbmRpZgorCisvLyBhcnAgICB2aTpuRHNkYXA6QTpIOlsrQXBdWyFzZF0KKyN1bmRlZiBPUFRTVFJfYXJwCisjZGVmaW5lIE9QVFNUUl9hcnAgInZpOm5Ec2RhcDpBOkg6WytBcF1bIXNkXSIKKyNpZmRlZiBDTEVBTlVQX2FycAorI3VuZGVmIENMRUFOVVBfYXJwCisjdW5kZWYgRk9SX2FycAorI3VuZGVmIEZMQUdfSAorI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfRAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfdgorI2VuZGlmCisKKy8vIGFycGluZyAgIDwxPjFzOkk6dyM8MGMjPDBBVURicWZbK0FVXVsrRGZdCisjdW5kZWYgT1BUU1RSX2FycGluZworI2RlZmluZSBPUFRTVFJfYXJwaW5nICI8MT4xczpJOncjPDBjIzwwQVVEYnFmWytBVV1bK0RmXSIKKyNpZmRlZiBDTEVBTlVQX2FycGluZworI3VuZGVmIENMRUFOVVBfYXJwaW5nCisjdW5kZWYgRk9SX2FycGluZworI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfRAorI3VuZGVmIEZMQUdfVQorI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfSQorI3VuZGVmIEZMQUdfcworI2VuZGlmCisKKy8vIGFzY2lpICAgIAorI3VuZGVmIE9QVFNUUl9hc2NpaQorI2RlZmluZSBPUFRTVFJfYXNjaWkgMAorI2lmZGVmIENMRUFOVVBfYXNjaWkKKyN1bmRlZiBDTEVBTlVQX2FzY2lpCisjdW5kZWYgRk9SX2FzY2lpCisjZW5kaWYKKworLy8gYmFzZTMyICAgZGl3IzwwPTc2WyFkd10KKyN1bmRlZiBPUFRTVFJfYmFzZTMyCisjZGVmaW5lIE9QVFNUUl9iYXNlMzIgImRpdyM8MD03NlshZHddIgorI2lmZGVmIENMRUFOVVBfYmFzZTMyCisjdW5kZWYgQ0xFQU5VUF9iYXNlMzIKKyN1bmRlZiBGT1JfYmFzZTMyCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19kCisjZW5kaWYKKworLy8gYmFzZTY0IGRpdyM8MD03NlshZHddIGRpdyM8MD03NlshZHddCisjdW5kZWYgT1BUU1RSX2Jhc2U2NAorI2RlZmluZSBPUFRTVFJfYmFzZTY0ICJkaXcjPDA9NzZbIWR3XSIKKyNpZmRlZiBDTEVBTlVQX2Jhc2U2NAorI3VuZGVmIENMRUFOVVBfYmFzZTY0CisjdW5kZWYgRk9SX2Jhc2U2NAorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIGJhc2VuYW1lIF48MWFzOiBePDFhczoKKyN1bmRlZiBPUFRTVFJfYmFzZW5hbWUKKyNkZWZpbmUgT1BUU1RSX2Jhc2VuYW1lICJePDFhczoiCisjaWZkZWYgQ0xFQU5VUF9iYXNlbmFtZQorI3VuZGVmIENMRUFOVVBfYmFzZW5hbWUKKyN1bmRlZiBGT1JfYmFzZW5hbWUKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBiYyAgIGkoaW50ZXJhY3RpdmUpbChtYXRobGliKXEocXVpZXQpcyhzdGFuZGFyZCl3KHdhcm4pCisjdW5kZWYgT1BUU1RSX2JjCisjZGVmaW5lIE9QVFNUUl9iYyAiaShpbnRlcmFjdGl2ZSlsKG1hdGhsaWIpcShxdWlldClzKHN0YW5kYXJkKXcod2FybikiCisjaWZkZWYgQ0xFQU5VUF9iYworI3VuZGVmIENMRUFOVVBfYmMKKyN1bmRlZiBGT1JfYmMKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2kKKyNlbmRpZgorCisvLyBibGtkaXNjYXJkIDwxPjFmKGZvcmNlKWwobGVuZ3RoKSM8MG8ob2Zmc2V0KSM8MHMoc2VjdXJlKXooemVyb291dClbIXN6XSA8MT4xZihmb3JjZSlsKGxlbmd0aCkjPDBvKG9mZnNldCkjPDBzKHNlY3VyZSl6KHplcm9vdXQpWyFzel0KKyN1bmRlZiBPUFRTVFJfYmxrZGlzY2FyZAorI2RlZmluZSBPUFRTVFJfYmxrZGlzY2FyZCAiPDE+MWYoZm9yY2UpbChsZW5ndGgpIzwwbyhvZmZzZXQpIzwwcyhzZWN1cmUpeih6ZXJvb3V0KVshc3pdIgorI2lmZGVmIENMRUFOVVBfYmxrZGlzY2FyZAorI3VuZGVmIENMRUFOVVBfYmxrZGlzY2FyZAorI3VuZGVmIEZPUl9ibGtkaXNjYXJkCisjdW5kZWYgRkxBR196CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19mCisjZW5kaWYKKworLy8gYmxraWQgVUxvOnMqWyFMVV0gVUxvOnMqWyFMVV0KKyN1bmRlZiBPUFRTVFJfYmxraWQKKyNkZWZpbmUgT1BUU1RSX2Jsa2lkICJVTG86cypbIUxVXSIKKyNpZmRlZiBDTEVBTlVQX2Jsa2lkCisjdW5kZWYgQ0xFQU5VUF9ibGtpZAorI3VuZGVmIEZPUl9ibGtpZAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfVQorI2VuZGlmCisKKy8vIGJsb2NrZGV2IDwxPjEoc2V0cm8pKHNldHJ3KShnZXRybykoZ2V0c3MpKGdldGJzeikoc2V0YnN6KSM8MChnZXRzeikoZ2V0c2l6ZSkoZ2V0c2l6ZTY0KShnZXRyYSkoc2V0cmEpIzwwKGZsdXNoYnVmcykocmVyZWFkcHQpIDwxPjEoc2V0cm8pKHNldHJ3KShnZXRybykoZ2V0c3MpKGdldGJzeikoc2V0YnN6KSM8MChnZXRzeikoZ2V0c2l6ZSkoZ2V0c2l6ZTY0KShnZXRyYSkoc2V0cmEpIzwwKGZsdXNoYnVmcykocmVyZWFkcHQpCisjdW5kZWYgT1BUU1RSX2Jsb2NrZGV2CisjZGVmaW5lIE9QVFNUUl9ibG9ja2RldiAiPDE+MShzZXRybykoc2V0cncpKGdldHJvKShnZXRzcykoZ2V0YnN6KShzZXRic3opIzwwKGdldHN6KShnZXRzaXplKShnZXRzaXplNjQpKGdldHJhKShzZXRyYSkjPDAoZmx1c2hidWZzKShyZXJlYWRwdCkiCisjaWZkZWYgQ0xFQU5VUF9ibG9ja2RldgorI3VuZGVmIENMRUFOVVBfYmxvY2tkZXYKKyN1bmRlZiBGT1JfYmxvY2tkZXYKKyN1bmRlZiBGTEFHX3JlcmVhZHB0CisjdW5kZWYgRkxBR19mbHVzaGJ1ZnMKKyN1bmRlZiBGTEFHX3NldHJhCisjdW5kZWYgRkxBR19nZXRyYQorI3VuZGVmIEZMQUdfZ2V0c2l6ZTY0CisjdW5kZWYgRkxBR19nZXRzaXplCisjdW5kZWYgRkxBR19nZXRzegorI3VuZGVmIEZMQUdfc2V0YnN6CisjdW5kZWYgRkxBR19nZXRic3oKKyN1bmRlZiBGTEFHX2dldHNzCisjdW5kZWYgRkxBR19nZXRybworI3VuZGVmIEZMQUdfc2V0cncKKyN1bmRlZiBGTEFHX3NldHJvCisjZW5kaWYKKworLy8gYm9vdGNoYXJ0ZCAgICAKKyN1bmRlZiBPUFRTVFJfYm9vdGNoYXJ0ZAorI2RlZmluZSBPUFRTVFJfYm9vdGNoYXJ0ZCAwCisjaWZkZWYgQ0xFQU5VUF9ib290Y2hhcnRkCisjdW5kZWYgQ0xFQU5VUF9ib290Y2hhcnRkCisjdW5kZWYgRk9SX2Jvb3RjaGFydGQKKyNlbmRpZgorCisvLyBicmN0bCA8MSA8MQorI3VuZGVmIE9QVFNUUl9icmN0bAorI2RlZmluZSBPUFRTVFJfYnJjdGwgIjwxIgorI2lmZGVmIENMRUFOVVBfYnJjdGwKKyN1bmRlZiBDTEVBTlVQX2JyY3RsCisjdW5kZWYgRk9SX2JyY3RsCisjZW5kaWYKKworLy8gYnVuemlwMiAgIGNmdGt2CisjdW5kZWYgT1BUU1RSX2J1bnppcDIKKyNkZWZpbmUgT1BUU1RSX2J1bnppcDIgImNmdGt2IgorI2lmZGVmIENMRUFOVVBfYnVuemlwMgorI3VuZGVmIENMRUFOVVBfYnVuemlwMgorI3VuZGVmIEZPUl9idW56aXAyCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gYnpjYXQgICAgCisjdW5kZWYgT1BUU1RSX2J6Y2F0CisjZGVmaW5lIE9QVFNUUl9iemNhdCAwCisjaWZkZWYgQ0xFQU5VUF9iemNhdAorI3VuZGVmIENMRUFOVVBfYnpjYXQKKyN1bmRlZiBGT1JfYnpjYXQKKyNlbmRpZgorCisvLyBjYWwgPjNoID4zaAorI3VuZGVmIE9QVFNUUl9jYWwKKyNkZWZpbmUgT1BUU1RSX2NhbCAiPjNoIgorI2lmZGVmIENMRUFOVVBfY2FsCisjdW5kZWYgQ0xFQU5VUF9jYWwKKyN1bmRlZiBGT1JfY2FsCisjdW5kZWYgRkxBR19oCisjZW5kaWYKKworLy8gY2F0IHV2dGUgdXZ0ZQorI3VuZGVmIE9QVFNUUl9jYXQKKyNkZWZpbmUgT1BUU1RSX2NhdCAidXZ0ZSIKKyNpZmRlZiBDTEVBTlVQX2NhdAorI3VuZGVmIENMRUFOVVBfY2F0CisjdW5kZWYgRk9SX2NhdAorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfdQorI2VuZGlmCisKKy8vIGNkICAgPjFMUFstTFBdCisjdW5kZWYgT1BUU1RSX2NkCisjZGVmaW5lIE9QVFNUUl9jZCAiPjFMUFstTFBdIgorI2lmZGVmIENMRUFOVVBfY2QKKyN1bmRlZiBDTEVBTlVQX2NkCisjdW5kZWYgRk9SX2NkCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19MCisjZW5kaWYKKworLy8gY2hhdHRyID9wI3YjUiA/cCN2I1IKKyN1bmRlZiBPUFRTVFJfY2hhdHRyCisjZGVmaW5lIE9QVFNUUl9jaGF0dHIgIj9wI3YjUiIKKyNpZmRlZiBDTEVBTlVQX2NoYXR0cgorI3VuZGVmIENMRUFOVVBfY2hhdHRyCisjdW5kZWYgRk9SX2NoYXR0cgorI3VuZGVmIEZMQUdfUgorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIGNoY29uIDwyaHZSIDwyaHZSCisjdW5kZWYgT1BUU1RSX2NoY29uCisjZGVmaW5lIE9QVFNUUl9jaGNvbiAiPDJodlIiCisjaWZkZWYgQ0xFQU5VUF9jaGNvbgorI3VuZGVmIENMRUFOVVBfY2hjb24KKyN1bmRlZiBGT1JfY2hjb24KKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2gKKyNlbmRpZgorCisvLyBjaGdycCA8Mmgobm8tZGVyZWZlcmVuY2UpUExIUmZ2Wy1ITFBdIDwyaChuby1kZXJlZmVyZW5jZSlQTEhSZnZbLUhMUF0KKyN1bmRlZiBPUFRTVFJfY2hncnAKKyNkZWZpbmUgT1BUU1RSX2NoZ3JwICI8Mmgobm8tZGVyZWZlcmVuY2UpUExIUmZ2Wy1ITFBdIgorI2lmZGVmIENMRUFOVVBfY2hncnAKKyN1bmRlZiBDTEVBTlVQX2NoZ3JwCisjdW5kZWYgRk9SX2NoZ3JwCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19oCisjZW5kaWYKKworLy8gY2htb2QgPDI/dmZSWy12Zl0gPDI/dmZSWy12Zl0KKyN1bmRlZiBPUFRTVFJfY2htb2QKKyNkZWZpbmUgT1BUU1RSX2NobW9kICI8Mj92ZlJbLXZmXSIKKyNpZmRlZiBDTEVBTlVQX2NobW9kCisjdW5kZWYgQ0xFQU5VUF9jaG1vZAorI3VuZGVmIEZPUl9jaG1vZAorI3VuZGVmIEZMQUdfUgorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfdgorI2VuZGlmCisKKy8vIGNocm9vdCBePDEgXjwxCisjdW5kZWYgT1BUU1RSX2Nocm9vdAorI2RlZmluZSBPUFRTVFJfY2hyb290ICJePDEiCisjaWZkZWYgQ0xFQU5VUF9jaHJvb3QKKyN1bmRlZiBDTEVBTlVQX2Nocm9vdAorI3VuZGVmIEZPUl9jaHJvb3QKKyNlbmRpZgorCisvLyBjaHJ0IF5tcCM8MGlSYnJmb1shaWJyZm9dIF5tcCM8MGlSYnJmb1shaWJyZm9dCisjdW5kZWYgT1BUU1RSX2NocnQKKyNkZWZpbmUgT1BUU1RSX2NocnQgIl5tcCM8MGlSYnJmb1shaWJyZm9dIgorI2lmZGVmIENMRUFOVVBfY2hydAorI3VuZGVmIENMRUFOVVBfY2hydAorI3VuZGVmIEZPUl9jaHJ0CisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19tCisjZW5kaWYKKworLy8gY2hzaCAgID4xUjpzOmEKKyN1bmRlZiBPUFRTVFJfY2hzaAorI2RlZmluZSBPUFRTVFJfY2hzaCAiPjFSOnM6YSIKKyNpZmRlZiBDTEVBTlVQX2Noc2gKKyN1bmRlZiBDTEVBTlVQX2Noc2gKKyN1bmRlZiBGT1JfY2hzaAorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfUgorI2VuZGlmCisKKy8vIGNodnQgICA8MT4xCisjdW5kZWYgT1BUU1RSX2NodnQKKyNkZWZpbmUgT1BUU1RSX2NodnQgIjwxPjEiCisjaWZkZWYgQ0xFQU5VUF9jaHZ0CisjdW5kZWYgQ0xFQU5VUF9jaHZ0CisjdW5kZWYgRk9SX2NodnQKKyNlbmRpZgorCisvLyBja3N1bSBISVBMTiBISVBMTgorI3VuZGVmIE9QVFNUUl9ja3N1bQorI2RlZmluZSBPUFRTVFJfY2tzdW0gIkhJUExOIgorI2lmZGVmIENMRUFOVVBfY2tzdW0KKyN1bmRlZiBDTEVBTlVQX2Nrc3VtCisjdW5kZWYgRk9SX2Nrc3VtCisjdW5kZWYgRkxBR19OCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19JCisjdW5kZWYgRkxBR19ICisjZW5kaWYKKworLy8gY2xlYXIgICAgCisjdW5kZWYgT1BUU1RSX2NsZWFyCisjZGVmaW5lIE9QVFNUUl9jbGVhciAwCisjaWZkZWYgQ0xFQU5VUF9jbGVhcgorI3VuZGVmIENMRUFOVVBfY2xlYXIKKyN1bmRlZiBGT1JfY2xlYXIKKyNlbmRpZgorCisvLyBjbXAgPDE+NGxzKHNpbGVudCkocXVpZXQpbiM8MVshbHNdIDwxPjRscyhzaWxlbnQpKHF1aWV0KW4jPDFbIWxzXQorI3VuZGVmIE9QVFNUUl9jbXAKKyNkZWZpbmUgT1BUU1RSX2NtcCAiPDE+NGxzKHNpbGVudCkocXVpZXQpbiM8MVshbHNdIgorI2lmZGVmIENMRUFOVVBfY21wCisjdW5kZWYgQ0xFQU5VUF9jbXAKKyN1bmRlZiBGT1JfY21wCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19sCisjZW5kaWYKKworLy8gY29tbSA8Mj4yMzIxIDwyPjIzMjEKKyN1bmRlZiBPUFRTVFJfY29tbQorI2RlZmluZSBPUFRTVFJfY29tbSAiPDI+MjMyMSIKKyNpZmRlZiBDTEVBTlVQX2NvbW0KKyN1bmRlZiBDTEVBTlVQX2NvbW0KKyN1bmRlZiBGT1JfY29tbQorI3VuZGVmIEZMQUdfMQorI3VuZGVmIEZMQUdfMgorI3VuZGVmIEZMQUdfMworI2VuZGlmCisKKy8vIGNvdW50ICAgPDA+MGwKKyN1bmRlZiBPUFRTVFJfY291bnQKKyNkZWZpbmUgT1BUU1RSX2NvdW50ICI8MD4wbCIKKyNpZmRlZiBDTEVBTlVQX2NvdW50CisjdW5kZWYgQ0xFQU5VUF9jb3VudAorI3VuZGVmIEZPUl9jb3VudAorI3VuZGVmIEZMQUdfbAorI2VuZGlmCisKKy8vIGNwIDwxKHByZXNlcnZlKTo7RChwYXJlbnRzKVJITFBwcnVkYXNsdih2ZXJib3NlKW5GKHJlbW92ZS1kZXN0aW5hdGlvbilmaXQ6VFstSExQZF1bLW5pdV1bK1JyXSA8MShwcmVzZXJ2ZSk6O0QocGFyZW50cylSSExQcHJ1ZGFzbHYodmVyYm9zZSluRihyZW1vdmUtZGVzdGluYXRpb24pZml0OlRbLUhMUGRdWy1uaXVdWytScl0KKyN1bmRlZiBPUFRTVFJfY3AKKyNkZWZpbmUgT1BUU1RSX2NwICI8MShwcmVzZXJ2ZSk6O0QocGFyZW50cylSSExQcHJ1ZGFzbHYodmVyYm9zZSluRihyZW1vdmUtZGVzdGluYXRpb24pZml0OlRbLUhMUGRdWy1uaXVdWytScl0iCisjaWZkZWYgQ0xFQU5VUF9jcAorI3VuZGVmIENMRUFOVVBfY3AKKyN1bmRlZiBGT1JfY3AKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX3ByZXNlcnZlCisjZW5kaWYKKworLy8gY3BpbyAoaWdub3JlLWRldm5vKShyZW51bWJlci1pbm9kZXMpKHF1aWV0KShuby1wcmVzZXJ2ZS1vd25lcilSKG93bmVyKTptZChtYWtlLWRpcmVjdG9yaWVzKXVMSDpwfGl8dHxGOnYodmVyYm9zZSlvfFshcGlvXVshcG90XVshcEZdIChpZ25vcmUtZGV2bm8pKHJlbnVtYmVyLWlub2RlcykocXVpZXQpKG5vLXByZXNlcnZlLW93bmVyKVIob3duZXIpOm1kKG1ha2UtZGlyZWN0b3JpZXMpdUxIOnB8aXx0fEY6dih2ZXJib3NlKW98WyFwaW9dWyFwb3RdWyFwRl0KKyN1bmRlZiBPUFRTVFJfY3BpbworI2RlZmluZSBPUFRTVFJfY3BpbyAiKGlnbm9yZS1kZXZubykocmVudW1iZXItaW5vZGVzKShxdWlldCkobm8tcHJlc2VydmUtb3duZXIpUihvd25lcik6bWQobWFrZS1kaXJlY3Rvcmllcyl1TEg6cHxpfHR8Rjp2KHZlcmJvc2Upb3xbIXBpb11bIXBvdF1bIXBGXSIKKyNpZmRlZiBDTEVBTlVQX2NwaW8KKyN1bmRlZiBDTEVBTlVQX2NwaW8KKyN1bmRlZiBGT1JfY3BpbworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfRgorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfSAorI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfUgorI3VuZGVmIEZMQUdfbm9fcHJlc2VydmVfb3duZXIKKyN1bmRlZiBGTEFHX3F1aWV0CisjdW5kZWYgRkxBR19yZW51bWJlcl9pbm9kZXMKKyN1bmRlZiBGTEFHX2lnbm9yZV9kZXZubworI2VuZGlmCisKKy8vIGNyYzMyICAgIAorI3VuZGVmIE9QVFNUUl9jcmMzMgorI2RlZmluZSBPUFRTVFJfY3JjMzIgMAorI2lmZGVmIENMRUFOVVBfY3JjMzIKKyN1bmRlZiBDTEVBTlVQX2NyYzMyCisjdW5kZWYgRk9SX2NyYzMyCisjZW5kaWYKKworLy8gY3JvbmQgICBmYlNsIzwwPThkIzwwTDpjOlstYmZdWy1MU11bLWxkXQorI3VuZGVmIE9QVFNUUl9jcm9uZAorI2RlZmluZSBPUFRTVFJfY3JvbmQgImZiU2wjPDA9OGQjPDBMOmM6Wy1iZl1bLUxTXVstbGRdIgorI2lmZGVmIENMRUFOVVBfY3JvbmQKKyN1bmRlZiBDTEVBTlVQX2Nyb25kCisjdW5kZWYgRk9SX2Nyb25kCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19mCisjZW5kaWYKKworLy8gY3JvbnRhYiAgIGM6dTplbHJbIWVscl0KKyN1bmRlZiBPUFRTVFJfY3JvbnRhYgorI2RlZmluZSBPUFRTVFJfY3JvbnRhYiAiYzp1OmVsclshZWxyXSIKKyNpZmRlZiBDTEVBTlVQX2Nyb250YWIKKyN1bmRlZiBDTEVBTlVQX2Nyb250YWIKKyN1bmRlZiBGT1JfY3JvbnRhYgorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfYworI2VuZGlmCisKKy8vIGNzcGxpdCAgIDwyc2tmOm4jCisjdW5kZWYgT1BUU1RSX2NzcGxpdAorI2RlZmluZSBPUFRTVFJfY3NwbGl0ICI8MnNrZjpuIyIKKyNpZmRlZiBDTEVBTlVQX2NzcGxpdAorI3VuZGVmIENMRUFOVVBfY3NwbGl0CisjdW5kZWYgRk9SX2NzcGxpdAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfcworI2VuZGlmCisKKy8vIGN1dCBiKnxjKnxmKnxGKHJlZ2V4LWZpZWxkcykqfEMqfE8ob3V0cHV0LWRlbGltaXRlcik6ZDpzRChhbGxvdy1kdXBsaWNhdGVzKW5bIWNiZkZdIGIqfGMqfGYqfEYocmVnZXgtZmllbGRzKSp8Qyp8TyhvdXRwdXQtZGVsaW1pdGVyKTpkOnNEKGFsbG93LWR1cGxpY2F0ZXMpblshY2JmRl0KKyN1bmRlZiBPUFRTVFJfY3V0CisjZGVmaW5lIE9QVFNUUl9jdXQgImIqfGMqfGYqfEYocmVnZXgtZmllbGRzKSp8Qyp8TyhvdXRwdXQtZGVsaW1pdGVyKTpkOnNEKGFsbG93LWR1cGxpY2F0ZXMpblshY2JmRl0iCisjaWZkZWYgQ0xFQU5VUF9jdXQKKyN1bmRlZiBDTEVBTlVQX2N1dAorI3VuZGVmIEZPUl9jdXQKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX08KKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2IKKyNlbmRpZgorCisvLyBkYXRlID4xZDpEOkkoaXNvLTg2MDEpOjtyOnM6dSh1dGMpWyFkcl0gPjFkOkQ6SShpc28tODYwMSk6O3I6czp1KHV0YylbIWRyXQorI3VuZGVmIE9QVFNUUl9kYXRlCisjZGVmaW5lIE9QVFNUUl9kYXRlICI+MWQ6RDpJKGlzby04NjAxKTo7cjpzOnUodXRjKVshZHJdIgorI2lmZGVmIENMRUFOVVBfZGF0ZQorI3VuZGVmIENMRUFOVVBfZGF0ZQorI3VuZGVmIEZPUl9kYXRlCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19JCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19kCisjZW5kaWYKKworLy8gZGQgICAgCisjdW5kZWYgT1BUU1RSX2RkCisjZGVmaW5lIE9QVFNUUl9kZCAwCisjaWZkZWYgQ0xFQU5VUF9kZAorI3VuZGVmIENMRUFOVVBfZGQKKyN1bmRlZiBGT1JfZGQKKyNlbmRpZgorCisvLyBkZWFsbG9jdnQgICA+MQorI3VuZGVmIE9QVFNUUl9kZWFsbG9jdnQKKyNkZWZpbmUgT1BUU1RSX2RlYWxsb2N2dCAiPjEiCisjaWZkZWYgQ0xFQU5VUF9kZWFsbG9jdnQKKyN1bmRlZiBDTEVBTlVQX2RlYWxsb2N2dAorI3VuZGVmIEZPUl9kZWFsbG9jdnQKKyNlbmRpZgorCisvLyBkZWNsYXJlICAgcEFhaWx1bnhyCisjdW5kZWYgT1BUU1RSX2RlY2xhcmUKKyNkZWZpbmUgT1BUU1RSX2RlY2xhcmUgInBBYWlsdW54ciIKKyNpZmRlZiBDTEVBTlVQX2RlY2xhcmUKKyN1bmRlZiBDTEVBTlVQX2RlY2xhcmUKKyN1bmRlZiBGT1JfZGVjbGFyZQorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIGRlbW9fbWFueV9vcHRpb25zICAgWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkF6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYQorI3VuZGVmIE9QVFNUUl9kZW1vX21hbnlfb3B0aW9ucworI2RlZmluZSBPUFRTVFJfZGVtb19tYW55X29wdGlvbnMgIlpZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBenl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmEiCisjaWZkZWYgQ0xFQU5VUF9kZW1vX21hbnlfb3B0aW9ucworI3VuZGVmIENMRUFOVVBfZGVtb19tYW55X29wdGlvbnMKKyN1bmRlZiBGT1JfZGVtb19tYW55X29wdGlvbnMKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2oKKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX3kKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX0IKKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX0UKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX0cKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX0kKKyN1bmRlZiBGTEFHX0oKKyN1bmRlZiBGTEFHX0sKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX00KKyN1bmRlZiBGTEFHX04KKyN1bmRlZiBGTEFHX08KKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX1EKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX1YKKyN1bmRlZiBGTEFHX1cKKyN1bmRlZiBGTEFHX1gKKyN1bmRlZiBGTEFHX1kKKyN1bmRlZiBGTEFHX1oKKyNlbmRpZgorCisvLyBkZW1vX251bWJlciAgIEQjPTM8M00jPDBoY2RicworI3VuZGVmIE9QVFNUUl9kZW1vX251bWJlcgorI2RlZmluZSBPUFRTVFJfZGVtb19udW1iZXIgIkQjPTM8M00jPDBoY2RicyIKKyNpZmRlZiBDTEVBTlVQX2RlbW9fbnVtYmVyCisjdW5kZWYgQ0xFQU5VUF9kZW1vX251bWJlcgorI3VuZGVmIEZPUl9kZW1vX251bWJlcgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfTQorI3VuZGVmIEZMQUdfRAorI2VuZGlmCisKKy8vIGRlbW9fc2NhbmtleSAgICAKKyN1bmRlZiBPUFRTVFJfZGVtb19zY2Fua2V5CisjZGVmaW5lIE9QVFNUUl9kZW1vX3NjYW5rZXkgMAorI2lmZGVmIENMRUFOVVBfZGVtb19zY2Fua2V5CisjdW5kZWYgQ0xFQU5VUF9kZW1vX3NjYW5rZXkKKyN1bmRlZiBGT1JfZGVtb19zY2Fua2V5CisjZW5kaWYKKworLy8gZGVtb191dGY4dG93YyAgICAKKyN1bmRlZiBPUFRTVFJfZGVtb191dGY4dG93YworI2RlZmluZSBPUFRTVFJfZGVtb191dGY4dG93YyAwCisjaWZkZWYgQ0xFQU5VUF9kZW1vX3V0Zjh0b3djCisjdW5kZWYgQ0xFQU5VUF9kZW1vX3V0Zjh0b3djCisjdW5kZWYgRk9SX2RlbW9fdXRmOHRvd2MKKyNlbmRpZgorCisvLyBkZXZtZW0gPDE+MyA8MT4zCisjdW5kZWYgT1BUU1RSX2Rldm1lbQorI2RlZmluZSBPUFRTVFJfZGV2bWVtICI8MT4zIgorI2lmZGVmIENMRUFOVVBfZGV2bWVtCisjdW5kZWYgQ0xFQU5VUF9kZXZtZW0KKyN1bmRlZiBGT1JfZGV2bWVtCisjZW5kaWYKKworLy8gZGYgSFBraGl0KmFbLUhQaF0gSFBraGl0KmFbLUhQaF0KKyN1bmRlZiBPUFRTVFJfZGYKKyNkZWZpbmUgT1BUU1RSX2RmICJIUGtoaXQqYVstSFBoXSIKKyNpZmRlZiBDTEVBTlVQX2RmCisjdW5kZWYgQ0xFQU5VUF9kZgorI3VuZGVmIEZPUl9kZgorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfSAorI2VuZGlmCisKKy8vIGRoY3AgICBWOkg6Rjp4KnI6TypBIzwwPTIwVCM8MD0zdCM8MD0zczpwOmk6U0JSQ2FvdnFuYmYKKyN1bmRlZiBPUFRTVFJfZGhjcAorI2RlZmluZSBPUFRTVFJfZGhjcCAiVjpIOkY6eCpyOk8qQSM8MD0yMFQjPDA9M3QjPDA9M3M6cDppOlNCUkNhb3ZxbmJmIgorI2lmZGVmIENMRUFOVVBfZGhjcAorI3VuZGVmIENMRUFOVVBfZGhjcAorI3VuZGVmIEZPUl9kaGNwCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19CCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19WCisjZW5kaWYKKworLy8gZGhjcDYgICByOkEjPDBUIzwwdCM8MHM6cDppOlNSdnFuYmYKKyN1bmRlZiBPUFRTVFJfZGhjcDYKKyNkZWZpbmUgT1BUU1RSX2RoY3A2ICJyOkEjPDBUIzwwdCM8MHM6cDppOlNSdnFuYmYiCisjaWZkZWYgQ0xFQU5VUF9kaGNwNgorI3VuZGVmIENMRUFOVVBfZGhjcDYKKyN1bmRlZiBGT1JfZGhjcDYKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX3IKKyNlbmRpZgorCisvLyBkaGNwZCAgID4xUCM8MD42NTUzNWZpOlM0NlshNDZdCisjdW5kZWYgT1BUU1RSX2RoY3BkCisjZGVmaW5lIE9QVFNUUl9kaGNwZCAiPjFQIzwwPjY1NTM1Zmk6UzQ2WyE0Nl0iCisjaWZkZWYgQ0xFQU5VUF9kaGNwZAorI3VuZGVmIENMRUFOVVBfZGhjcGQKKyN1bmRlZiBGT1JfZGhjcGQKKyN1bmRlZiBGTEFHXzYKKyN1bmRlZiBGTEFHXzQKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX1AKKyNlbmRpZgorCisvLyBkaWZmIDwyPjIodW5jaGFuZ2VkLWxpbmUtZm9ybWF0KTo7KG9sZC1saW5lLWZvcm1hdCk6OyhuZXctbGluZS1mb3JtYXQpOjsoY29sb3IpKHN0cmlwLXRyYWlsaW5nLWNyKUIoaWdub3JlLWJsYW5rLWxpbmVzKWQobWluaW1hbCliKGlnbm9yZS1zcGFjZS1jaGFuZ2UpdXQoZXhwYW5kLXRhYnMpdyhpZ25vcmUtYWxsLXNwYWNlKWkoaWdub3JlLWNhc2UpVChpbml0aWFsLXRhYilzKHJlcG9ydC1pZGVudGljYWwtZmlsZXMpcShicmllZilhKHRleHQpUyhzdGFydGluZy1maWxlKTpGKHNob3ctZnVuY3Rpb24tbGluZSk6O0wobGFiZWwpKk4obmV3LWZpbGUpcihyZWN1cnNpdmUpVSh1bmlmaWVkKSM8MD0zIDwyPjIodW5jaGFuZ2VkLWxpbmUtZm9ybWF0KTo7KG9sZC1saW5lLWZvcm1hdCk6OyhuZXctbGluZS1mb3JtYXQpOjsoY29sb3IpKHN0cmlwLXRyYWlsaW5nLWNyKUIoaWdub3JlLWJsYW5rLWxpbmVzKWQobWluaW1hbCliKGlnbm9yZS1zcGFjZS1jaGFuZ2UpdXQoZXhwYW5kLXRhYnMpdyhpZ25vcmUtYWxsLXNwYWNlKWkoaWdub3JlLWNhc2UpVChpbml0aWFsLXRhYilzKHJlcG9ydC1pZGVudGljYWwtZmlsZXMpcShicmllZilhKHRleHQpUyhzdGFydGluZy1maWxlKTpGKHNob3ctZnVuY3Rpb24tbGluZSk6O0wobGFiZWwpKk4obmV3LWZpbGUpcihyZWN1cnNpdmUpVSh1bmlmaWVkKSM8MD0zCisjdW5kZWYgT1BUU1RSX2RpZmYKKyNkZWZpbmUgT1BUU1RSX2RpZmYgIjwyPjIodW5jaGFuZ2VkLWxpbmUtZm9ybWF0KTo7KG9sZC1saW5lLWZvcm1hdCk6OyhuZXctbGluZS1mb3JtYXQpOjsoY29sb3IpKHN0cmlwLXRyYWlsaW5nLWNyKUIoaWdub3JlLWJsYW5rLWxpbmVzKWQobWluaW1hbCliKGlnbm9yZS1zcGFjZS1jaGFuZ2UpdXQoZXhwYW5kLXRhYnMpdyhpZ25vcmUtYWxsLXNwYWNlKWkoaWdub3JlLWNhc2UpVChpbml0aWFsLXRhYilzKHJlcG9ydC1pZGVudGljYWwtZmlsZXMpcShicmllZilhKHRleHQpUyhzdGFydGluZy1maWxlKTpGKHNob3ctZnVuY3Rpb24tbGluZSk6O0wobGFiZWwpKk4obmV3LWZpbGUpcihyZWN1cnNpdmUpVSh1bmlmaWVkKSM8MD0zIgorI2lmZGVmIENMRUFOVVBfZGlmZgorI3VuZGVmIENMRUFOVVBfZGlmZgorI3VuZGVmIEZPUl9kaWZmCisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19OCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19CCisjdW5kZWYgRkxBR19zdHJpcF90cmFpbGluZ19jcgorI3VuZGVmIEZMQUdfY29sb3IKKyN1bmRlZiBGTEFHX25ld19saW5lX2Zvcm1hdAorI3VuZGVmIEZMQUdfb2xkX2xpbmVfZm9ybWF0CisjdW5kZWYgRkxBR191bmNoYW5nZWRfbGluZV9mb3JtYXQKKyNlbmRpZgorCisvLyBkaXJuYW1lIDwxIDwxCisjdW5kZWYgT1BUU1RSX2Rpcm5hbWUKKyNkZWZpbmUgT1BUU1RSX2Rpcm5hbWUgIjwxIgorI2lmZGVmIENMRUFOVVBfZGlybmFtZQorI3VuZGVmIENMRUFOVVBfZGlybmFtZQorI3VuZGVmIEZPUl9kaXJuYW1lCisjZW5kaWYKKworLy8gZG1lc2cgdyhmb2xsb3cpQ1NUdHJzIzwxbiNjWyFUdHJdWyFDY11bIVN3XSB3KGZvbGxvdylDU1R0cnMjPDFuI2NbIVR0cl1bIUNjXVshU3ddCisjdW5kZWYgT1BUU1RSX2RtZXNnCisjZGVmaW5lIE9QVFNUUl9kbWVzZyAidyhmb2xsb3cpQ1NUdHJzIzwxbiNjWyFUdHJdWyFDY11bIVN3XSIKKyNpZmRlZiBDTEVBTlVQX2RtZXNnCisjdW5kZWYgQ0xFQU5VUF9kbWVzZworI3VuZGVmIEZPUl9kbWVzZworI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfVAorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfQworI3VuZGVmIEZMQUdfdworI2VuZGlmCisKKy8vIGRuc2RvbWFpbm5hbWUgICA+MAorI3VuZGVmIE9QVFNUUl9kbnNkb21haW5uYW1lCisjZGVmaW5lIE9QVFNUUl9kbnNkb21haW5uYW1lICI+MCIKKyNpZmRlZiBDTEVBTlVQX2Ruc2RvbWFpbm5hbWUKKyN1bmRlZiBDTEVBTlVQX2Ruc2RvbWFpbm5hbWUKKyN1bmRlZiBGT1JfZG5zZG9tYWlubmFtZQorI2VuZGlmCisKKy8vIGRvczJ1bml4ICAgIAorI3VuZGVmIE9QVFNUUl9kb3MydW5peAorI2RlZmluZSBPUFRTVFJfZG9zMnVuaXggMAorI2lmZGVmIENMRUFOVVBfZG9zMnVuaXgKKyN1bmRlZiBDTEVBTlVQX2RvczJ1bml4CisjdW5kZWYgRk9SX2RvczJ1bml4CisjZW5kaWYKKworLy8gZHUgZCM8MD0tMWhtbGNhSGtLTHN4YlstSExdWy1rS21oXSBkIzwwPS0xaG1sY2FIa0tMc3hiWy1ITF1bLWtLbWhdCisjdW5kZWYgT1BUU1RSX2R1CisjZGVmaW5lIE9QVFNUUl9kdSAiZCM8MD0tMWhtbGNhSGtLTHN4YlstSExdWy1rS21oXSIKKyNpZmRlZiBDTEVBTlVQX2R1CisjdW5kZWYgQ0xFQU5VUF9kdQorI3VuZGVmIEZPUl9kdQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfSworI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfSAorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIGR1bXBsZWFzZXMgICA+MGFyZjpbIWFyXQorI3VuZGVmIE9QVFNUUl9kdW1wbGVhc2VzCisjZGVmaW5lIE9QVFNUUl9kdW1wbGVhc2VzICI+MGFyZjpbIWFyXSIKKyNpZmRlZiBDTEVBTlVQX2R1bXBsZWFzZXMKKyN1bmRlZiBDTEVBTlVQX2R1bXBsZWFzZXMKKyN1bmRlZiBGT1JfZHVtcGxlYXNlcworI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIGVjaG8gXj9FZW5bLWVFXSBeP0VlblstZUVdCisjdW5kZWYgT1BUU1RSX2VjaG8KKyNkZWZpbmUgT1BUU1RSX2VjaG8gIl4/RWVuWy1lRV0iCisjaWZkZWYgQ0xFQU5VUF9lY2hvCisjdW5kZWYgQ0xFQU5VUF9lY2hvCisjdW5kZWYgRk9SX2VjaG8KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX0UKKyNlbmRpZgorCisvLyBlamVjdCAgID4xc3RUWyF0VF0KKyN1bmRlZiBPUFRTVFJfZWplY3QKKyNkZWZpbmUgT1BUU1RSX2VqZWN0ICI+MXN0VFshdFRdIgorI2lmZGVmIENMRUFOVVBfZWplY3QKKyN1bmRlZiBDTEVBTlVQX2VqZWN0CisjdW5kZWYgRk9SX2VqZWN0CisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19zCisjZW5kaWYKKworLy8gZW52IF5lOmkwdSogXmU6aTB1KgorI3VuZGVmIE9QVFNUUl9lbnYKKyNkZWZpbmUgT1BUU1RSX2VudiAiXmU6aTB1KiIKKyNpZmRlZiBDTEVBTlVQX2VudgorI3VuZGVmIENMRUFOVVBfZW52CisjdW5kZWYgRk9SX2VudgorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfMAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZQorI2VuZGlmCisKKy8vIGV2YWwgICAgCisjdW5kZWYgT1BUU1RSX2V2YWwKKyNkZWZpbmUgT1BUU1RSX2V2YWwgMAorI2lmZGVmIENMRUFOVVBfZXZhbAorI3VuZGVmIENMRUFOVVBfZXZhbAorI3VuZGVmIEZPUl9ldmFsCisjZW5kaWYKKworLy8gZXhlYyAgIF5jbGE6CisjdW5kZWYgT1BUU1RSX2V4ZWMKKyNkZWZpbmUgT1BUU1RSX2V4ZWMgIl5jbGE6IgorI2lmZGVmIENMRUFOVVBfZXhlYworI3VuZGVmIENMRUFOVVBfZXhlYworI3VuZGVmIEZPUl9leGVjCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gZXhpdCAgICAKKyN1bmRlZiBPUFRTVFJfZXhpdAorI2RlZmluZSBPUFRTVFJfZXhpdCAwCisjaWZkZWYgQ0xFQU5VUF9leGl0CisjdW5kZWYgQ0xFQU5VUF9leGl0CisjdW5kZWYgRk9SX2V4aXQKKyNlbmRpZgorCisvLyBleHBhbmQgdCogdCoKKyN1bmRlZiBPUFRTVFJfZXhwYW5kCisjZGVmaW5lIE9QVFNUUl9leHBhbmQgInQqIgorI2lmZGVmIENMRUFOVVBfZXhwYW5kCisjdW5kZWYgQ0xFQU5VUF9leHBhbmQKKyN1bmRlZiBGT1JfZXhwYW5kCisjdW5kZWYgRkxBR190CisjZW5kaWYKKworLy8gZXhwb3J0ICAgbnAKKyN1bmRlZiBPUFRTVFJfZXhwb3J0CisjZGVmaW5lIE9QVFNUUl9leHBvcnQgIm5wIgorI2lmZGVmIENMRUFOVVBfZXhwb3J0CisjdW5kZWYgQ0xFQU5VUF9leHBvcnQKKyN1bmRlZiBGT1JfZXhwb3J0CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19uCisjZW5kaWYKKworLy8gZXhwciAgICAKKyN1bmRlZiBPUFRTVFJfZXhwcgorI2RlZmluZSBPUFRTVFJfZXhwciAwCisjaWZkZWYgQ0xFQU5VUF9leHByCisjdW5kZWYgQ0xFQU5VUF9leHByCisjdW5kZWYgRk9SX2V4cHIKKyNlbmRpZgorCisvLyBmYWN0b3IgICA/aHgKKyN1bmRlZiBPUFRTVFJfZmFjdG9yCisjZGVmaW5lIE9QVFNUUl9mYWN0b3IgIj9oeCIKKyNpZmRlZiBDTEVBTlVQX2ZhY3RvcgorI3VuZGVmIENMRUFOVVBfZmFjdG9yCisjdW5kZWYgRk9SX2ZhY3RvcgorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfaAorI2VuZGlmCisKKy8vIGZhbGxvY2F0ZSA+MWwjfG8jID4xbCN8byMKKyN1bmRlZiBPUFRTVFJfZmFsbG9jYXRlCisjZGVmaW5lIE9QVFNUUl9mYWxsb2NhdGUgIj4xbCN8byMiCisjaWZkZWYgQ0xFQU5VUF9mYWxsb2NhdGUKKyN1bmRlZiBDTEVBTlVQX2ZhbGxvY2F0ZQorI3VuZGVmIEZPUl9mYWxsb2NhdGUKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBmYWxzZSAgICAKKyN1bmRlZiBPUFRTVFJfZmFsc2UKKyNkZWZpbmUgT1BUU1RSX2ZhbHNlIDAKKyNpZmRlZiBDTEVBTlVQX2ZhbHNlCisjdW5kZWYgQ0xFQU5VUF9mYWxzZQorI3VuZGVmIEZPUl9mYWxzZQorI2VuZGlmCisKKy8vIGZkaXNrICAgQyM8MEgjPDBTIzwwYiM8NTEydWwKKyN1bmRlZiBPUFRTVFJfZmRpc2sKKyNkZWZpbmUgT1BUU1RSX2ZkaXNrICJDIzwwSCM8MFMjPDBiIzw1MTJ1bCIKKyNpZmRlZiBDTEVBTlVQX2ZkaXNrCisjdW5kZWYgQ0xFQU5VUF9mZGlzaworI3VuZGVmIEZPUl9mZGlzaworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfSAorI3VuZGVmIEZMQUdfQworI2VuZGlmCisKKy8vIGZpbGUgPDFiKGJyaWVmKWhMc1shaExdIDwxYihicmllZiloTHNbIWhMXQorI3VuZGVmIE9QVFNUUl9maWxlCisjZGVmaW5lIE9QVFNUUl9maWxlICI8MWIoYnJpZWYpaExzWyFoTF0iCisjaWZkZWYgQ0xFQU5VUF9maWxlCisjdW5kZWYgQ0xFQU5VUF9maWxlCisjdW5kZWYgRk9SX2ZpbGUKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2IKKyNlbmRpZgorCisvLyBmaW5kID9eSExbLUhMXSA/XkhMWy1ITF0KKyN1bmRlZiBPUFRTVFJfZmluZAorI2RlZmluZSBPUFRTVFJfZmluZCAiP15ITFstSExdIgorI2lmZGVmIENMRUFOVVBfZmluZAorI3VuZGVmIENMRUFOVVBfZmluZAorI3VuZGVmIEZPUl9maW5kCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19ICisjZW5kaWYKKworLy8gZmxvY2sgPDE+MW5zdXhbLXN1eF0gPDE+MW5zdXhbLXN1eF0KKyN1bmRlZiBPUFRTVFJfZmxvY2sKKyNkZWZpbmUgT1BUU1RSX2Zsb2NrICI8MT4xbnN1eFstc3V4XSIKKyNpZmRlZiBDTEVBTlVQX2Zsb2NrCisjdW5kZWYgQ0xFQU5VUF9mbG9jaworI3VuZGVmIEZPUl9mbG9jaworI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIGZtdCB3IzwwPTc1IHcjPDA9NzUKKyN1bmRlZiBPUFRTVFJfZm10CisjZGVmaW5lIE9QVFNUUl9mbXQgIncjPDA9NzUiCisjaWZkZWYgQ0xFQU5VUF9mbXQKKyN1bmRlZiBDTEVBTlVQX2ZtdAorI3VuZGVmIEZPUl9mbXQKKyN1bmRlZiBGTEFHX3cKKyNlbmRpZgorCisvLyBmb2xkICAgYnN3IzwxPTgwCisjdW5kZWYgT1BUU1RSX2ZvbGQKKyNkZWZpbmUgT1BUU1RSX2ZvbGQgImJzdyM8MT04MCIKKyNpZmRlZiBDTEVBTlVQX2ZvbGQKKyN1bmRlZiBDTEVBTlVQX2ZvbGQKKyN1bmRlZiBGT1JfZm9sZAorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIGZyZWUgaGdta2JbIWhnbWtiXSBoZ21rYlshaGdta2JdCisjdW5kZWYgT1BUU1RSX2ZyZWUKKyNkZWZpbmUgT1BUU1RSX2ZyZWUgImhnbWtiWyFoZ21rYl0iCisjaWZkZWYgQ0xFQU5VUF9mcmVlCisjdW5kZWYgQ0xFQU5VUF9mcmVlCisjdW5kZWYgRk9SX2ZyZWUKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX2gKKyNlbmRpZgorCisvLyBmcmVlcmFtZGlzayA8MT4xIDwxPjEKKyN1bmRlZiBPUFRTVFJfZnJlZXJhbWRpc2sKKyNkZWZpbmUgT1BUU1RSX2ZyZWVyYW1kaXNrICI8MT4xIgorI2lmZGVmIENMRUFOVVBfZnJlZXJhbWRpc2sKKyN1bmRlZiBDTEVBTlVQX2ZyZWVyYW1kaXNrCisjdW5kZWYgRk9SX2ZyZWVyYW1kaXNrCisjZW5kaWYKKworLy8gZnNjayAgID90OkFOUFJUVnNDIworI3VuZGVmIE9QVFNUUl9mc2NrCisjZGVmaW5lIE9QVFNUUl9mc2NrICI/dDpBTlBSVFZzQyMiCisjaWZkZWYgQ0xFQU5VUF9mc2NrCisjdW5kZWYgQ0xFQU5VUF9mc2NrCisjdW5kZWYgRk9SX2ZzY2sKKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX1YKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX04KKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX3QKKyNlbmRpZgorCisvLyBmc2ZyZWV6ZSA8MT4xZnx1fFshZnVdIDwxPjFmfHV8WyFmdV0KKyN1bmRlZiBPUFRTVFJfZnNmcmVlemUKKyNkZWZpbmUgT1BUU1RSX2ZzZnJlZXplICI8MT4xZnx1fFshZnVdIgorI2lmZGVmIENMRUFOVVBfZnNmcmVlemUKKyN1bmRlZiBDTEVBTlVQX2ZzZnJlZXplCisjdW5kZWYgRk9SX2ZzZnJlZXplCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19mCisjZW5kaWYKKworLy8gZnN0eXBlICAgPDEKKyN1bmRlZiBPUFRTVFJfZnN0eXBlCisjZGVmaW5lIE9QVFNUUl9mc3R5cGUgIjwxIgorI2lmZGVmIENMRUFOVVBfZnN0eXBlCisjdW5kZWYgQ0xFQU5VUF9mc3R5cGUKKyN1bmRlZiBGT1JfZnN0eXBlCisjZW5kaWYKKworLy8gZnN5bmMgPDFkIDwxZAorI3VuZGVmIE9QVFNUUl9mc3luYworI2RlZmluZSBPUFRTVFJfZnN5bmMgIjwxZCIKKyNpZmRlZiBDTEVBTlVQX2ZzeW5jCisjdW5kZWYgQ0xFQU5VUF9mc3luYworI3VuZGVmIEZPUl9mc3luYworI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIGZ0cGdldCAgIDwyPjNQOmNwOnU6dmdzbExtTWREWy1nc11bIWdzbExtTWREXVshY2xMXQorI3VuZGVmIE9QVFNUUl9mdHBnZXQKKyNkZWZpbmUgT1BUU1RSX2Z0cGdldCAiPDI+M1A6Y3A6dTp2Z3NsTG1NZERbLWdzXVshZ3NsTG1NZERdWyFjbExdIgorI2lmZGVmIENMRUFOVVBfZnRwZ2V0CisjdW5kZWYgQ0xFQU5VUF9mdHBnZXQKKyN1bmRlZiBGT1JfZnRwZ2V0CisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19NCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19QCisjZW5kaWYKKworLy8gZ2V0Y29uZiA+MmFsID4yYWwKKyN1bmRlZiBPUFRTVFJfZ2V0Y29uZgorI2RlZmluZSBPUFRTVFJfZ2V0Y29uZiAiPjJhbCIKKyNpZmRlZiBDTEVBTlVQX2dldGNvbmYKKyN1bmRlZiBDTEVBTlVQX2dldGNvbmYKKyN1bmRlZiBGT1JfZ2V0Y29uZgorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIGdldGVuZm9yY2UgPjAgPjAKKyN1bmRlZiBPUFRTVFJfZ2V0ZW5mb3JjZQorI2RlZmluZSBPUFRTVFJfZ2V0ZW5mb3JjZSAiPjAiCisjaWZkZWYgQ0xFQU5VUF9nZXRlbmZvcmNlCisjdW5kZWYgQ0xFQU5VUF9nZXRlbmZvcmNlCisjdW5kZWYgRk9SX2dldGVuZm9yY2UKKyNlbmRpZgorCisvLyBnZXRmYXR0ciAob25seS12YWx1ZXMpZGhuOiAob25seS12YWx1ZXMpZGhuOgorI3VuZGVmIE9QVFNUUl9nZXRmYXR0cgorI2RlZmluZSBPUFRTVFJfZ2V0ZmF0dHIgIihvbmx5LXZhbHVlcylkaG46IgorI2lmZGVmIENMRUFOVVBfZ2V0ZmF0dHIKKyN1bmRlZiBDTEVBTlVQX2dldGZhdHRyCisjdW5kZWYgRk9SX2dldGZhdHRyCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19vbmx5X3ZhbHVlcworI2VuZGlmCisKKy8vIGdldG9wdCBeYShhbHRlcm5hdGl2ZSluOihuYW1lKW86KG9wdGlvbnMpbCoobG9uZykobG9uZ29wdGlvbnMpVHUgXmEoYWx0ZXJuYXRpdmUpbjoobmFtZSlvOihvcHRpb25zKWwqKGxvbmcpKGxvbmdvcHRpb25zKVR1CisjdW5kZWYgT1BUU1RSX2dldG9wdAorI2RlZmluZSBPUFRTVFJfZ2V0b3B0ICJeYShhbHRlcm5hdGl2ZSluOihuYW1lKW86KG9wdGlvbnMpbCoobG9uZykobG9uZ29wdGlvbnMpVHUiCisjaWZkZWYgQ0xFQU5VUF9nZXRvcHQKKyN1bmRlZiBDTEVBTlVQX2dldG9wdAorI3VuZGVmIEZPUl9nZXRvcHQKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBnZXR0eSAgIDwydCM8MEg6STpsOmY6aXdubUxoCisjdW5kZWYgT1BUU1RSX2dldHR5CisjZGVmaW5lIE9QVFNUUl9nZXR0eSAiPDJ0IzwwSDpJOmw6Zjppd25tTGgiCisjaWZkZWYgQ0xFQU5VUF9nZXR0eQorI3VuZGVmIENMRUFOVVBfZ2V0dHkKKyN1bmRlZiBGT1JfZ2V0dHkKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX0kKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX3QKKyNlbmRpZgorCisvLyBnaXRjaGVja291dCAgIDwxCisjdW5kZWYgT1BUU1RSX2dpdGNoZWNrb3V0CisjZGVmaW5lIE9QVFNUUl9naXRjaGVja291dCAiPDEiCisjaWZkZWYgQ0xFQU5VUF9naXRjaGVja291dAorI3VuZGVmIENMRUFOVVBfZ2l0Y2hlY2tvdXQKKyN1bmRlZiBGT1JfZ2l0Y2hlY2tvdXQKKyNlbmRpZgorCisvLyBnaXRjbG9uZSAgIDwxCisjdW5kZWYgT1BUU1RSX2dpdGNsb25lCisjZGVmaW5lIE9QVFNUUl9naXRjbG9uZSAiPDEiCisjaWZkZWYgQ0xFQU5VUF9naXRjbG9uZQorI3VuZGVmIENMRUFOVVBfZ2l0Y2xvbmUKKyN1bmRlZiBGT1JfZ2l0Y2xvbmUKKyNlbmRpZgorCisvLyBnaXRmZXRjaCAgICAKKyN1bmRlZiBPUFRTVFJfZ2l0ZmV0Y2gKKyNkZWZpbmUgT1BUU1RSX2dpdGZldGNoIDAKKyNpZmRlZiBDTEVBTlVQX2dpdGZldGNoCisjdW5kZWYgQ0xFQU5VUF9naXRmZXRjaAorI3VuZGVmIEZPUl9naXRmZXRjaAorI2VuZGlmCisKKy8vIGdpdGluaXQgICA8MQorI3VuZGVmIE9QVFNUUl9naXRpbml0CisjZGVmaW5lIE9QVFNUUl9naXRpbml0ICI8MSIKKyNpZmRlZiBDTEVBTlVQX2dpdGluaXQKKyN1bmRlZiBDTEVBTlVQX2dpdGluaXQKKyN1bmRlZiBGT1JfZ2l0aW5pdAorI2VuZGlmCisKKy8vIGdpdHJlbW90ZSAgIDwxCisjdW5kZWYgT1BUU1RSX2dpdHJlbW90ZQorI2RlZmluZSBPUFRTVFJfZ2l0cmVtb3RlICI8MSIKKyNpZmRlZiBDTEVBTlVQX2dpdHJlbW90ZQorI3VuZGVmIENMRUFOVVBfZ2l0cmVtb3RlCisjdW5kZWYgRk9SX2dpdHJlbW90ZQorI2VuZGlmCisKKy8vIGdwaW9kZXRlY3QgPjAgPjAKKyN1bmRlZiBPUFRTVFJfZ3Bpb2RldGVjdAorI2RlZmluZSBPUFRTVFJfZ3Bpb2RldGVjdCAiPjAiCisjaWZkZWYgQ0xFQU5VUF9ncGlvZGV0ZWN0CisjdW5kZWYgQ0xFQU5VUF9ncGlvZGV0ZWN0CisjdW5kZWYgRk9SX2dwaW9kZXRlY3QKKyNlbmRpZgorCisvLyBncGlvZmluZCA8MT4xIDwxPjEKKyN1bmRlZiBPUFRTVFJfZ3Bpb2ZpbmQKKyNkZWZpbmUgT1BUU1RSX2dwaW9maW5kICI8MT4xIgorI2lmZGVmIENMRUFOVVBfZ3Bpb2ZpbmQKKyN1bmRlZiBDTEVBTlVQX2dwaW9maW5kCisjdW5kZWYgRk9SX2dwaW9maW5kCisjZW5kaWYKKworLy8gZ3Bpb2dldCA8MmwgPDJsCisjdW5kZWYgT1BUU1RSX2dwaW9nZXQKKyNkZWZpbmUgT1BUU1RSX2dwaW9nZXQgIjwybCIKKyNpZmRlZiBDTEVBTlVQX2dwaW9nZXQKKyN1bmRlZiBDTEVBTlVQX2dwaW9nZXQKKyN1bmRlZiBGT1JfZ3Bpb2dldAorI3VuZGVmIEZMQUdfbAorI2VuZGlmCisKKy8vIGdwaW9pbmZvICAgIAorI3VuZGVmIE9QVFNUUl9ncGlvaW5mbworI2RlZmluZSBPUFRTVFJfZ3Bpb2luZm8gMAorI2lmZGVmIENMRUFOVVBfZ3Bpb2luZm8KKyN1bmRlZiBDTEVBTlVQX2dwaW9pbmZvCisjdW5kZWYgRk9SX2dwaW9pbmZvCisjZW5kaWYKKworLy8gZ3Bpb3NldCA8MmwgPDJsCisjdW5kZWYgT1BUU1RSX2dwaW9zZXQKKyNkZWZpbmUgT1BUU1RSX2dwaW9zZXQgIjwybCIKKyNpZmRlZiBDTEVBTlVQX2dwaW9zZXQKKyN1bmRlZiBDTEVBTlVQX2dwaW9zZXQKKyN1bmRlZiBGT1JfZ3Bpb3NldAorI3VuZGVmIEZMQUdfbAorI2VuZGlmCisKKy8vIGdyZXAgKGxpbmUtYnVmZmVyZWQpKGNvbG9yKTo7KGV4Y2x1ZGUtZGlyKSpTKGV4Y2x1ZGUpKk0oaW5jbHVkZSkqWnpFRkhJYWIoYnl0ZS1vZmZzZXQpaChuby1maWxlbmFtZSlpbm8ob25seS1tYXRjaGluZylyUnN2d2MoY291bnQpTChmaWxlcy13aXRob3V0LW1hdGNoKWwoZmlsZXMtd2l0aC1tYXRjaGVzKXEocXVpZXQpKHNpbGVudCllKmYqQyNCI0EjbSN4WyF3eF1bIUVGXSAobGluZS1idWZmZXJlZCkoY29sb3IpOjsoZXhjbHVkZS1kaXIpKlMoZXhjbHVkZSkqTShpbmNsdWRlKSpaekVGSElhYihieXRlLW9mZnNldCloKG5vLWZpbGVuYW1lKWlubyhvbmx5LW1hdGNoaW5nKXJSc3Z3Yyhjb3VudClMKGZpbGVzLXdpdGhvdXQtbWF0Y2gpbChmaWxlcy13aXRoLW1hdGNoZXMpcShxdWlldCkoc2lsZW50KWUqZipDI0IjQSNtI3hbIXd4XVshRUZdCisjdW5kZWYgT1BUU1RSX2dyZXAKKyNkZWZpbmUgT1BUU1RSX2dyZXAgIihsaW5lLWJ1ZmZlcmVkKShjb2xvcik6OyhleGNsdWRlLWRpcikqUyhleGNsdWRlKSpNKGluY2x1ZGUpKlp6RUZISWFiKGJ5dGUtb2Zmc2V0KWgobm8tZmlsZW5hbWUpaW5vKG9ubHktbWF0Y2hpbmcpclJzdndjKGNvdW50KUwoZmlsZXMtd2l0aG91dC1tYXRjaClsKGZpbGVzLXdpdGgtbWF0Y2hlcylxKHF1aWV0KShzaWxlbnQpZSpmKkMjQiNBI20jeFshd3hdWyFFRl0iCisjaWZkZWYgQ0xFQU5VUF9ncmVwCisjdW5kZWYgQ0xFQU5VUF9ncmVwCisjdW5kZWYgRk9SX2dyZXAKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX0IKKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX0kKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX0UKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX1oKKyN1bmRlZiBGTEFHX00KKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX2V4Y2x1ZGVfZGlyCisjdW5kZWYgRkxBR19jb2xvcgorI3VuZGVmIEZMQUdfbGluZV9idWZmZXJlZAorI2VuZGlmCisKKy8vIGdyb3VwYWRkICAgPDE+MlI6ZyM8MD4yMTQ3NDgzNjQ3UworI3VuZGVmIE9QVFNUUl9ncm91cGFkZAorI2RlZmluZSBPUFRTVFJfZ3JvdXBhZGQgIjwxPjJSOmcjPDA+MjE0NzQ4MzY0N1MiCisjaWZkZWYgQ0xFQU5VUF9ncm91cGFkZAorI3VuZGVmIENMRUFOVVBfZ3JvdXBhZGQKKyN1bmRlZiBGT1JfZ3JvdXBhZGQKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX1IKKyNlbmRpZgorCisvLyBncm91cGRlbCAgIDwxPjI/CisjdW5kZWYgT1BUU1RSX2dyb3VwZGVsCisjZGVmaW5lIE9QVFNUUl9ncm91cGRlbCAiPDE+Mj8iCisjaWZkZWYgQ0xFQU5VUF9ncm91cGRlbAorI3VuZGVmIENMRUFOVVBfZ3JvdXBkZWwKKyN1bmRlZiBGT1JfZ3JvdXBkZWwKKyNlbmRpZgorCisvLyBncm91cHMgICAgCisjdW5kZWYgT1BUU1RSX2dyb3VwcworI2RlZmluZSBPUFRTVFJfZ3JvdXBzIDAKKyNpZmRlZiBDTEVBTlVQX2dyb3VwcworI3VuZGVmIENMRUFOVVBfZ3JvdXBzCisjdW5kZWYgRk9SX2dyb3VwcworI2VuZGlmCisKKy8vIGd1bnppcCBjZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XSBjZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XQorI3VuZGVmIE9QVFNUUl9ndW56aXAKKyNkZWZpbmUgT1BUU1RSX2d1bnppcCAiY2Rma3QxMjM0NTY3ODlbLTEyMzQ1Njc4OV0iCisjaWZkZWYgQ0xFQU5VUF9ndW56aXAKKyN1bmRlZiBDTEVBTlVQX2d1bnppcAorI3VuZGVmIEZPUl9ndW56aXAKKyN1bmRlZiBGTEFHXzkKKyN1bmRlZiBGTEFHXzgKKyN1bmRlZiBGTEFHXzcKKyN1bmRlZiBGTEFHXzYKKyN1bmRlZiBGTEFHXzUKKyN1bmRlZiBGTEFHXzQKKyN1bmRlZiBGTEFHXzMKKyN1bmRlZiBGTEFHXzIKKyN1bmRlZiBGTEFHXzEKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBnemlwIG4obm8tbmFtZSljZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XSBuKG5vLW5hbWUpY2Rma3QxMjM0NTY3ODlbLTEyMzQ1Njc4OV0KKyN1bmRlZiBPUFRTVFJfZ3ppcAorI2RlZmluZSBPUFRTVFJfZ3ppcCAibihuby1uYW1lKWNkZmt0MTIzNDU2Nzg5Wy0xMjM0NTY3ODldIgorI2lmZGVmIENMRUFOVVBfZ3ppcAorI3VuZGVmIENMRUFOVVBfZ3ppcAorI3VuZGVmIEZPUl9nemlwCisjdW5kZWYgRkxBR185CisjdW5kZWYgRkxBR184CisjdW5kZWYgRkxBR183CisjdW5kZWYgRkxBR182CisjdW5kZWYgRkxBR181CisjdW5kZWYgRkxBR180CisjdW5kZWYgRkxBR18zCisjdW5kZWYgRkxBR18yCisjdW5kZWYgRkxBR18xCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19uCisjZW5kaWYKKworLy8gaGVhZCA/bihsaW5lcykjPDA9MTBjKGJ5dGVzKSM8MHF2Wy1uY10gP24obGluZXMpIzwwPTEwYyhieXRlcykjPDBxdlstbmNdCisjdW5kZWYgT1BUU1RSX2hlYWQKKyNkZWZpbmUgT1BUU1RSX2hlYWQgIj9uKGxpbmVzKSM8MD0xMGMoYnl0ZXMpIzwwcXZbLW5jXSIKKyNpZmRlZiBDTEVBTlVQX2hlYWQKKyN1bmRlZiBDTEVBTlVQX2hlYWQKKyN1bmRlZiBGT1JfaGVhZAorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIGhlbGxvICAgIAorI3VuZGVmIE9QVFNUUl9oZWxsbworI2RlZmluZSBPUFRTVFJfaGVsbG8gMAorI2lmZGVmIENMRUFOVVBfaGVsbG8KKyN1bmRlZiBDTEVBTlVQX2hlbGxvCisjdW5kZWYgRk9SX2hlbGxvCisjZW5kaWYKKworLy8gaGVscCBhaHUgYWh1CisjdW5kZWYgT1BUU1RSX2hlbHAKKyNkZWZpbmUgT1BUU1RSX2hlbHAgImFodSIKKyNpZmRlZiBDTEVBTlVQX2hlbHAKKyN1bmRlZiBDTEVBTlVQX2hlbHAKKyN1bmRlZiBGT1JfaGVscAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIGhleGR1bXAgICBiY0NkbiM8MG9zIzwwdnhbIWJjQ2RveF0KKyN1bmRlZiBPUFRTVFJfaGV4ZHVtcAorI2RlZmluZSBPUFRTVFJfaGV4ZHVtcCAiYmNDZG4jPDBvcyM8MHZ4WyFiY0Nkb3hdIgorI2lmZGVmIENMRUFOVVBfaGV4ZHVtcAorI3VuZGVmIENMRUFOVVBfaGV4ZHVtcAorI3VuZGVmIEZPUl9oZXhkdW1wCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19iCisjZW5kaWYKKworLy8gaGV4ZWRpdCAgIDwxPjFyCisjdW5kZWYgT1BUU1RSX2hleGVkaXQKKyNkZWZpbmUgT1BUU1RSX2hleGVkaXQgIjwxPjFyIgorI2lmZGVmIENMRUFOVVBfaGV4ZWRpdAorI3VuZGVmIENMRUFOVVBfaGV4ZWRpdAorI3VuZGVmIEZPUl9oZXhlZGl0CisjdW5kZWYgRkxBR19yCisjZW5kaWYKKworLy8gaG9zdCAgIDwxPjJhdnQ6CisjdW5kZWYgT1BUU1RSX2hvc3QKKyNkZWZpbmUgT1BUU1RSX2hvc3QgIjwxPjJhdnQ6IgorI2lmZGVmIENMRUFOVVBfaG9zdAorI3VuZGVmIENMRUFOVVBfaG9zdAorI3VuZGVmIEZPUl9ob3N0CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gaG9zdGlkICAgPjAKKyN1bmRlZiBPUFRTVFJfaG9zdGlkCisjZGVmaW5lIE9QVFNUUl9ob3N0aWQgIj4wIgorI2lmZGVmIENMRUFOVVBfaG9zdGlkCisjdW5kZWYgQ0xFQU5VUF9ob3N0aWQKKyN1bmRlZiBGT1JfaG9zdGlkCisjZW5kaWYKKworLy8gaG9zdG5hbWUgPjFiZHNmRjpbIWJkc2ZdID4xYmRzZkY6WyFiZHNmXQorI3VuZGVmIE9QVFNUUl9ob3N0bmFtZQorI2RlZmluZSBPUFRTVFJfaG9zdG5hbWUgIj4xYmRzZkY6WyFiZHNmXSIKKyNpZmRlZiBDTEVBTlVQX2hvc3RuYW1lCisjdW5kZWYgQ0xFQU5VUF9ob3N0bmFtZQorI3VuZGVmIEZPUl9ob3N0bmFtZQorI3VuZGVmIEZMQUdfRgorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIGh0dHBkICAgPjF2CisjdW5kZWYgT1BUU1RSX2h0dHBkCisjZGVmaW5lIE9QVFNUUl9odHRwZCAiPjF2IgorI2lmZGVmIENMRUFOVVBfaHR0cGQKKyN1bmRlZiBDTEVBTlVQX2h0dHBkCisjdW5kZWYgRk9SX2h0dHBkCisjdW5kZWYgRkxBR192CisjZW5kaWYKKworLy8gaHdjbG9jayA+MChmYXN0KWYocnRjKTp1KHV0YylsKGxvY2FsdGltZSl0KHN5c3R6KXMoaGN0b3N5cylyKHNob3cpdyhzeXN0b2hjKVstdWxdWyFydHN3XSA+MChmYXN0KWYocnRjKTp1KHV0YylsKGxvY2FsdGltZSl0KHN5c3R6KXMoaGN0b3N5cylyKHNob3cpdyhzeXN0b2hjKVstdWxdWyFydHN3XQorI3VuZGVmIE9QVFNUUl9od2Nsb2NrCisjZGVmaW5lIE9QVFNUUl9od2Nsb2NrICI+MChmYXN0KWYocnRjKTp1KHV0YylsKGxvY2FsdGltZSl0KHN5c3R6KXMoaGN0b3N5cylyKHNob3cpdyhzeXN0b2hjKVstdWxdWyFydHN3XSIKKyNpZmRlZiBDTEVBTlVQX2h3Y2xvY2sKKyN1bmRlZiBDTEVBTlVQX2h3Y2xvY2sKKyN1bmRlZiBGT1JfaHdjbG9jaworI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZmFzdAorI2VuZGlmCisKKy8vIGkyY2RldGVjdCA+M2FGIzwwPjYzbHFyeVshcXJdWyFGbF0gPjNhRiM8MD42M2xxcnlbIXFyXVshRmxdCisjdW5kZWYgT1BUU1RSX2kyY2RldGVjdAorI2RlZmluZSBPUFRTVFJfaTJjZGV0ZWN0ICI+M2FGIzwwPjYzbHFyeVshcXJdWyFGbF0iCisjaWZkZWYgQ0xFQU5VUF9pMmNkZXRlY3QKKyN1bmRlZiBDTEVBTlVQX2kyY2RldGVjdAorI3VuZGVmIEZPUl9pMmNkZXRlY3QKKyN1bmRlZiBGTEFHX3kKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBpMmNkdW1wIDwyPjJmeSA8Mj4yZnkKKyN1bmRlZiBPUFRTVFJfaTJjZHVtcAorI2RlZmluZSBPUFRTVFJfaTJjZHVtcCAiPDI+MmZ5IgorI2lmZGVmIENMRUFOVVBfaTJjZHVtcAorI3VuZGVmIENMRUFOVVBfaTJjZHVtcAorI3VuZGVmIEZPUl9pMmNkdW1wCisjdW5kZWYgRkxBR195CisjdW5kZWYgRkxBR19mCisjZW5kaWYKKworLy8gaTJjZ2V0IDwyPjNmeSA8Mj4zZnkKKyN1bmRlZiBPUFRTVFJfaTJjZ2V0CisjZGVmaW5lIE9QVFNUUl9pMmNnZXQgIjwyPjNmeSIKKyNpZmRlZiBDTEVBTlVQX2kyY2dldAorI3VuZGVmIENMRUFOVVBfaTJjZ2V0CisjdW5kZWYgRk9SX2kyY2dldAorI3VuZGVmIEZMQUdfeQorI3VuZGVmIEZMQUdfZgorI2VuZGlmCisKKy8vIGkyY3NldCA8NGZ5IDw0ZnkKKyN1bmRlZiBPUFRTVFJfaTJjc2V0CisjZGVmaW5lIE9QVFNUUl9pMmNzZXQgIjw0ZnkiCisjaWZkZWYgQ0xFQU5VUF9pMmNzZXQKKyN1bmRlZiBDTEVBTlVQX2kyY3NldAorI3VuZGVmIEZPUl9pMmNzZXQKKyN1bmRlZiBGTEFHX3kKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyBpMmN0cmFuc2ZlciA8MnZmeSA8MnZmeQorI3VuZGVmIE9QVFNUUl9pMmN0cmFuc2ZlcgorI2RlZmluZSBPUFRTVFJfaTJjdHJhbnNmZXIgIjwydmZ5IgorI2lmZGVmIENMRUFOVVBfaTJjdHJhbnNmZXIKKyN1bmRlZiBDTEVBTlVQX2kyY3RyYW5zZmVyCisjdW5kZWYgRk9SX2kyY3RyYW5zZmVyCisjdW5kZWYgRkxBR195CisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR192CisjZW5kaWYKKworLy8gaWNvbnYgY3N0OmY6IGNzdDpmOgorI3VuZGVmIE9QVFNUUl9pY29udgorI2RlZmluZSBPUFRTVFJfaWNvbnYgImNzdDpmOiIKKyNpZmRlZiBDTEVBTlVQX2ljb252CisjdW5kZWYgQ0xFQU5VUF9pY29udgorI3VuZGVmIEZPUl9pY29udgorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfYworI2VuZGlmCisKKy8vIGlkID4xWm5HZ3J1WyFaR2d1XSA+MVpuR2dydVshWkdndV0KKyN1bmRlZiBPUFRTVFJfaWQKKyNkZWZpbmUgT1BUU1RSX2lkICI+MVpuR2dydVshWkdndV0iCisjaWZkZWYgQ0xFQU5VUF9pZAorI3VuZGVmIENMRUFOVVBfaWQKKyN1bmRlZiBGT1JfaWQKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX0cKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX1oKKyNlbmRpZgorCisvLyBpZmNvbmZpZyBeP2FTIF4/YVMKKyN1bmRlZiBPUFRTVFJfaWZjb25maWcKKyNkZWZpbmUgT1BUU1RSX2lmY29uZmlnICJeP2FTIgorI2lmZGVmIENMRUFOVVBfaWZjb25maWcKKyN1bmRlZiBDTEVBTlVQX2lmY29uZmlnCisjdW5kZWYgRk9SX2lmY29uZmlnCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gaW5pdCAgICAKKyN1bmRlZiBPUFRTVFJfaW5pdAorI2RlZmluZSBPUFRTVFJfaW5pdCAwCisjaWZkZWYgQ0xFQU5VUF9pbml0CisjdW5kZWYgQ0xFQU5VUF9pbml0CisjdW5kZWYgRk9SX2luaXQKKyNlbmRpZgorCisvLyBpbm90aWZ5ZCA8MiA8MgorI3VuZGVmIE9QVFNUUl9pbm90aWZ5ZAorI2RlZmluZSBPUFRTVFJfaW5vdGlmeWQgIjwyIgorI2lmZGVmIENMRUFOVVBfaW5vdGlmeWQKKyN1bmRlZiBDTEVBTlVQX2lub3RpZnlkCisjdW5kZWYgRk9SX2lub3RpZnlkCisjZW5kaWYKKworLy8gaW5zbW9kIDwxIDwxCisjdW5kZWYgT1BUU1RSX2luc21vZAorI2RlZmluZSBPUFRTVFJfaW5zbW9kICI8MSIKKyNpZmRlZiBDTEVBTlVQX2luc21vZAorI3VuZGVmIENMRUFOVVBfaW5zbW9kCisjdW5kZWYgRk9SX2luc21vZAorI2VuZGlmCisKKy8vIGluc3RhbGwgPDFjZERwKHByZXNlcnZlLXRpbWVzdGFtcHMpc3Z0Om06bzpnOiA8MWNkRHAocHJlc2VydmUtdGltZXN0YW1wcylzdnQ6bTpvOmc6CisjdW5kZWYgT1BUU1RSX2luc3RhbGwKKyNkZWZpbmUgT1BUU1RSX2luc3RhbGwgIjwxY2REcChwcmVzZXJ2ZS10aW1lc3RhbXBzKXN2dDptOm86ZzoiCisjaWZkZWYgQ0xFQU5VUF9pbnN0YWxsCisjdW5kZWYgQ0xFQU5VUF9pbnN0YWxsCisjdW5kZWYgRk9SX2luc3RhbGwKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBpb25pY2UgXnRjIzwwPjM9Mm4jPDA+Nz01cCMgXnRjIzwwPjM9Mm4jPDA+Nz01cCMKKyN1bmRlZiBPUFRTVFJfaW9uaWNlCisjZGVmaW5lIE9QVFNUUl9pb25pY2UgIl50YyM8MD4zPTJuIzwwPjc9NXAjIgorI2lmZGVmIENMRUFOVVBfaW9uaWNlCisjdW5kZWYgQ0xFQU5VUF9pb25pY2UKKyN1bmRlZiBGT1JfaW9uaWNlCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR190CisjZW5kaWYKKworLy8gaW9yZW5pY2UgPDE+MyA8MT4zCisjdW5kZWYgT1BUU1RSX2lvcmVuaWNlCisjZGVmaW5lIE9QVFNUUl9pb3JlbmljZSAiPDE+MyIKKyNpZmRlZiBDTEVBTlVQX2lvcmVuaWNlCisjdW5kZWYgQ0xFQU5VUF9pb3JlbmljZQorI3VuZGVmIEZPUl9pb3JlbmljZQorI2VuZGlmCisKKy8vIGlvdG9wID4wQWFLT0hrKm8qcCp1KnMjPDE9N2QlPDEwMD0zMDAwbSNuIzwxYnEgPjBBYUtPSGsqbypwKnUqcyM8MT03ZCU8MTAwPTMwMDBtI24jPDFicQorI3VuZGVmIE9QVFNUUl9pb3RvcAorI2RlZmluZSBPUFRTVFJfaW90b3AgIj4wQWFLT0hrKm8qcCp1KnMjPDE9N2QlPDEwMD0zMDAwbSNuIzwxYnEiCisjaWZkZWYgQ0xFQU5VUF9pb3RvcAorI3VuZGVmIENMRUFOVVBfaW90b3AKKyN1bmRlZiBGT1JfaW90b3AKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX08KKyN1bmRlZiBGTEFHX0sKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX0EKKyNlbmRpZgorCisvLyBpcCAgICAKKyN1bmRlZiBPUFRTVFJfaXAKKyNkZWZpbmUgT1BUU1RSX2lwIDAKKyNpZmRlZiBDTEVBTlVQX2lwCisjdW5kZWYgQ0xFQU5VUF9pcAorI3VuZGVmIEZPUl9pcAorI2VuZGlmCisKKy8vIGlwY3JtICAgbSpNKnMqUypxKlEqCisjdW5kZWYgT1BUU1RSX2lwY3JtCisjZGVmaW5lIE9QVFNUUl9pcGNybSAibSpNKnMqUypxKlEqIgorI2lmZGVmIENMRUFOVVBfaXBjcm0KKyN1bmRlZiBDTEVBTlVQX2lwY3JtCisjdW5kZWYgRk9SX2lwY3JtCisjdW5kZWYgRkxBR19RCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19NCisjdW5kZWYgRkxBR19tCisjZW5kaWYKKworLy8gaXBjcyAgIGFjcHR1bHNxbWkjCisjdW5kZWYgT1BUU1RSX2lwY3MKKyNkZWZpbmUgT1BUU1RSX2lwY3MgImFjcHR1bHNxbWkjIgorI2lmZGVmIENMRUFOVVBfaXBjcworI3VuZGVmIENMRUFOVVBfaXBjcworI3VuZGVmIEZPUl9pcGNzCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gam9icyAgIGxucHJzCisjdW5kZWYgT1BUU1RSX2pvYnMKKyNkZWZpbmUgT1BUU1RSX2pvYnMgImxucHJzIgorI2lmZGVmIENMRUFOVVBfam9icworI3VuZGVmIENMRUFOVVBfam9icworI3VuZGVmIEZPUl9qb2JzCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19sCisjZW5kaWYKKworLy8ga2lsbCA/bHM6ICA/bHM6IAorI3VuZGVmIE9QVFNUUl9raWxsCisjZGVmaW5lIE9QVFNUUl9raWxsICI/bHM6ICIKKyNpZmRlZiBDTEVBTlVQX2tpbGwKKyN1bmRlZiBDTEVBTlVQX2tpbGwKKyN1bmRlZiBGT1Jfa2lsbAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbAorI2VuZGlmCisKKy8vIGtpbGxhbGwgP3M6aWxxdncgP3M6aWxxdncKKyN1bmRlZiBPUFRTVFJfa2lsbGFsbAorI2RlZmluZSBPUFRTVFJfa2lsbGFsbCAiP3M6aWxxdnciCisjaWZkZWYgQ0xFQU5VUF9raWxsYWxsCisjdW5kZWYgQ0xFQU5VUF9raWxsYWxsCisjdW5kZWYgRk9SX2tpbGxhbGwKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyBraWxsYWxsNSAgID9vKmxzOiBbIWxvXVshbHNdCisjdW5kZWYgT1BUU1RSX2tpbGxhbGw1CisjZGVmaW5lIE9QVFNUUl9raWxsYWxsNSAiP28qbHM6IFshbG9dWyFsc10iCisjaWZkZWYgQ0xFQU5VUF9raWxsYWxsNQorI3VuZGVmIENMRUFOVVBfa2lsbGFsbDUKKyN1bmRlZiBGT1Jfa2lsbGFsbDUKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX28KKyNlbmRpZgorCisvLyBrbG9nZCAgIGMjPDE+OG4KKyN1bmRlZiBPUFRTVFJfa2xvZ2QKKyNkZWZpbmUgT1BUU1RSX2tsb2dkICJjIzwxPjhuIgorI2lmZGVmIENMRUFOVVBfa2xvZ2QKKyN1bmRlZiBDTEVBTlVQX2tsb2dkCisjdW5kZWYgRk9SX2tsb2dkCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gbGFzdCAgIGY6VworI3VuZGVmIE9QVFNUUl9sYXN0CisjZGVmaW5lIE9QVFNUUl9sYXN0ICJmOlciCisjaWZkZWYgQ0xFQU5VUF9sYXN0CisjdW5kZWYgQ0xFQU5VUF9sYXN0CisjdW5kZWYgRk9SX2xhc3QKKyN1bmRlZiBGTEFHX1cKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyBsaW5rICAgPDI+MgorI3VuZGVmIE9QVFNUUl9saW5rCisjZGVmaW5lIE9QVFNUUl9saW5rICI8Mj4yIgorI2lmZGVmIENMRUFOVVBfbGluaworI3VuZGVmIENMRUFOVVBfbGluaworI3VuZGVmIEZPUl9saW5rCisjZW5kaWYKKworLy8gbGludXgzMiAgICAKKyN1bmRlZiBPUFRTVFJfbGludXgzMgorI2RlZmluZSBPUFRTVFJfbGludXgzMiAwCisjaWZkZWYgQ0xFQU5VUF9saW51eDMyCisjdW5kZWYgQ0xFQU5VUF9saW51eDMyCisjdW5kZWYgRk9SX2xpbnV4MzIKKyNlbmRpZgorCisvLyBsbiA8MXJ0OlR2bmZzIDwxcnQ6VHZuZnMKKyN1bmRlZiBPUFRTVFJfbG4KKyNkZWZpbmUgT1BUU1RSX2xuICI8MXJ0OlR2bmZzIgorI2lmZGVmIENMRUFOVVBfbG4KKyN1bmRlZiBDTEVBTlVQX2xuCisjdW5kZWYgRk9SX2xuCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19yCisjZW5kaWYKKworLy8gbG9hZF9wb2xpY3kgPDE+MSA8MT4xCisjdW5kZWYgT1BUU1RSX2xvYWRfcG9saWN5CisjZGVmaW5lIE9QVFNUUl9sb2FkX3BvbGljeSAiPDE+MSIKKyNpZmRlZiBDTEVBTlVQX2xvYWRfcG9saWN5CisjdW5kZWYgQ0xFQU5VUF9sb2FkX3BvbGljeQorI3VuZGVmIEZPUl9sb2FkX3BvbGljeQorI2VuZGlmCisKKy8vIGxvY2FsICAgIAorI3VuZGVmIE9QVFNUUl9sb2NhbAorI2RlZmluZSBPUFRTVFJfbG9jYWwgMAorI2lmZGVmIENMRUFOVVBfbG9jYWwKKyN1bmRlZiBDTEVBTlVQX2xvY2FsCisjdW5kZWYgRk9SX2xvY2FsCisjZW5kaWYKKworLy8gbG9nIHA6dDogcDp0OgorI3VuZGVmIE9QVFNUUl9sb2cKKyNkZWZpbmUgT1BUU1RSX2xvZyAicDp0OiIKKyNpZmRlZiBDTEVBTlVQX2xvZworI3VuZGVmIENMRUFOVVBfbG9nCisjdW5kZWYgRk9SX2xvZworI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIGxvZ2dlciB0OnA6cyB0OnA6cworI3VuZGVmIE9QVFNUUl9sb2dnZXIKKyNkZWZpbmUgT1BUU1RSX2xvZ2dlciAidDpwOnMiCisjaWZkZWYgQ0xFQU5VUF9sb2dnZXIKKyN1bmRlZiBDTEVBTlVQX2xvZ2dlcgorI3VuZGVmIEZPUl9sb2dnZXIKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3QKKyNlbmRpZgorCisvLyBsb2dpbiAgID4xZjpwaDoKKyN1bmRlZiBPUFRTVFJfbG9naW4KKyNkZWZpbmUgT1BUU1RSX2xvZ2luICI+MWY6cGg6IgorI2lmZGVmIENMRUFOVVBfbG9naW4KKyN1bmRlZiBDTEVBTlVQX2xvZ2luCisjdW5kZWYgRk9SX2xvZ2luCisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19mCisjZW5kaWYKKworLy8gbG9nbmFtZSA+MCA+MAorI3VuZGVmIE9QVFNUUl9sb2duYW1lCisjZGVmaW5lIE9QVFNUUl9sb2duYW1lICI+MCIKKyNpZmRlZiBDTEVBTlVQX2xvZ25hbWUKKyN1bmRlZiBDTEVBTlVQX2xvZ25hbWUKKyN1bmRlZiBGT1JfbG9nbmFtZQorI2VuZGlmCisKKy8vIGxvZ3BhdGggICAgCisjdW5kZWYgT1BUU1RSX2xvZ3BhdGgKKyNkZWZpbmUgT1BUU1RSX2xvZ3BhdGggMAorI2lmZGVmIENMRUFOVVBfbG9ncGF0aAorI3VuZGVmIENMRUFOVVBfbG9ncGF0aAorI3VuZGVmIEZPUl9sb2dwYXRoCisjZW5kaWYKKworLy8gbG9zZXR1cCA+MlMoc2l6ZWxpbWl0KSNzKHNob3cpcm8jajpmZGNhRFshYWZqXSA+MlMoc2l6ZWxpbWl0KSNzKHNob3cpcm8jajpmZGNhRFshYWZqXQorI3VuZGVmIE9QVFNUUl9sb3NldHVwCisjZGVmaW5lIE9QVFNUUl9sb3NldHVwICI+MlMoc2l6ZWxpbWl0KSNzKHNob3cpcm8jajpmZGNhRFshYWZqXSIKKyNpZmRlZiBDTEVBTlVQX2xvc2V0dXAKKyN1bmRlZiBDTEVBTlVQX2xvc2V0dXAKKyN1bmRlZiBGT1JfbG9zZXR1cAorI3VuZGVmIEZMQUdfRAorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfagorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfUworI2VuZGlmCisKKy8vIGxzIChzb3J0KTooY29sb3IpOjsoZnVsbC10aW1lKShzaG93LWNvbnRyb2wtY2hhcnMp/yhibG9jay1zaXplKSM9MTAyNDwxoShncm91cC1kaXJlY3Rvcmllcy1maXJzdCn+WmdvQUNGSExOUlNVWGFiY2RmaGlrbEBtbnBxcnN0dXcjPTgwPDB4MVstQ3htMV1bLUN4bWxdWy1DeG1vXVstQ3htZ11bLWN1XVstZnRTXVstSExdWy1OcWJdWy1r/10gKHNvcnQpOihjb2xvcik6OyhmdWxsLXRpbWUpKHNob3ctY29udHJvbC1jaGFycyn/KGJsb2NrLXNpemUpIz0xMDI0PDGhKGdyb3VwLWRpcmVjdG9yaWVzLWZpcnN0Kf5aZ29BQ0ZITE5SU1VYYWJjZGZoaWtsQG1ucHFyc3R1dyM9ODA8MHgxWy1DeG0xXVstQ3htbF1bLUN4bW9dWy1DeG1nXVstY3VdWy1mdFNdWy1ITF1bLU5xYl1bLWv/XQorI3VuZGVmIE9QVFNUUl9scworI2RlZmluZSBPUFRTVFJfbHMgIihzb3J0KTooY29sb3IpOjsoZnVsbC10aW1lKShzaG93LWNvbnRyb2wtY2hhcnMp/yhibG9jay1zaXplKSM9MTAyNDwxoShncm91cC1kaXJlY3Rvcmllcy1maXJzdCn+WmdvQUNGSExOUlNVWGFiY2RmaGlrbEBtbnBxcnN0dXcjPTgwPDB4MVstQ3htMV1bLUN4bWxdWy1DeG1vXVstQ3htZ11bLWN1XVstZnRTXVstSExdWy1OcWJdWy1r/10iCisjaWZkZWYgQ0xFQU5VUF9scworI3VuZGVmIENMRUFOVVBfbHMKKyN1bmRlZiBGT1JfbHMKKyN1bmRlZiBGTEFHXzEKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX1gKKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX04KKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX1oKKyN1bmRlZiBGTEFHX1g3RQorI3VuZGVmIEZMQUdfWDIxCisjdW5kZWYgRkxBR19YN0YKKyN1bmRlZiBGTEFHX3Nob3dfY29udHJvbF9jaGFycworI3VuZGVmIEZMQUdfZnVsbF90aW1lCisjdW5kZWYgRkxBR19jb2xvcgorI3VuZGVmIEZMQUdfc29ydAorI2VuZGlmCisKKy8vIGxzYXR0ciBsZGFwdlIgbGRhcHZSCisjdW5kZWYgT1BUU1RSX2xzYXR0cgorI2RlZmluZSBPUFRTVFJfbHNhdHRyICJsZGFwdlIiCisjaWZkZWYgQ0xFQU5VUF9sc2F0dHIKKyN1bmRlZiBDTEVBTlVQX2xzYXR0cgorI3VuZGVmIEZPUl9sc2F0dHIKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBsc21vZCAgICAKKyN1bmRlZiBPUFRTVFJfbHNtb2QKKyNkZWZpbmUgT1BUU1RSX2xzbW9kIDAKKyNpZmRlZiBDTEVBTlVQX2xzbW9kCisjdW5kZWYgQ0xFQU5VUF9sc21vZAorI3VuZGVmIEZPUl9sc21vZAorI2VuZGlmCisKKy8vIGxzb2YgbHAqdCBscCp0CisjdW5kZWYgT1BUU1RSX2xzb2YKKyNkZWZpbmUgT1BUU1RSX2xzb2YgImxwKnQiCisjaWZkZWYgQ0xFQU5VUF9sc29mCisjdW5kZWYgQ0xFQU5VUF9sc29mCisjdW5kZWYgRk9SX2xzb2YKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBsc3BjaSBlbWtuQHhAaTogZW1rbkB4QGk6CisjdW5kZWYgT1BUU1RSX2xzcGNpCisjZGVmaW5lIE9QVFNUUl9sc3BjaSAiZW1rbkB4QGk6IgorI2lmZGVmIENMRUFOVVBfbHNwY2kKKyN1bmRlZiBDTEVBTlVQX2xzcGNpCisjdW5kZWYgRk9SX2xzcGNpCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19lCisjZW5kaWYKKworLy8gbHN1c2IgaTogaToKKyN1bmRlZiBPUFRTVFJfbHN1c2IKKyNkZWZpbmUgT1BUU1RSX2xzdXNiICJpOiIKKyNpZmRlZiBDTEVBTlVQX2xzdXNiCisjdW5kZWYgQ0xFQU5VUF9sc3VzYgorI3VuZGVmIEZPUl9sc3VzYgorI3VuZGVmIEZMQUdfaQorI2VuZGlmCisKKy8vIG1ha2VkZXZzIDwxPjFkOiA8MT4xZDoKKyN1bmRlZiBPUFRTVFJfbWFrZWRldnMKKyNkZWZpbmUgT1BUU1RSX21ha2VkZXZzICI8MT4xZDoiCisjaWZkZWYgQ0xFQU5VUF9tYWtlZGV2cworI3VuZGVmIENMRUFOVVBfbWFrZWRldnMKKyN1bmRlZiBGT1JfbWFrZWRldnMKKyN1bmRlZiBGTEFHX2QKKyNlbmRpZgorCisvLyBtYW4gICBrOk06CisjdW5kZWYgT1BUU1RSX21hbgorI2RlZmluZSBPUFRTVFJfbWFuICJrOk06IgorI2lmZGVmIENMRUFOVVBfbWFuCisjdW5kZWYgQ0xFQU5VUF9tYW4KKyN1bmRlZiBGT1JfbWFuCisjdW5kZWYgRkxBR19NCisjdW5kZWYgRkxBR19rCisjZW5kaWYKKworLy8gbWNvb2tpZSAgIHYodmVyYm9zZSlWKHZlcnNpb24pCisjdW5kZWYgT1BUU1RSX21jb29raWUKKyNkZWZpbmUgT1BUU1RSX21jb29raWUgInYodmVyYm9zZSlWKHZlcnNpb24pIgorI2lmZGVmIENMRUFOVVBfbWNvb2tpZQorI3VuZGVmIENMRUFOVVBfbWNvb2tpZQorI3VuZGVmIEZPUl9tY29va2llCisjdW5kZWYgRkxBR19WCisjdW5kZWYgRkxBR192CisjZW5kaWYKKworLy8gbWQ1c3VtIGJjKGNoZWNrKXMoc3RhdHVzKVshYmNdIGJjKGNoZWNrKXMoc3RhdHVzKVshYmNdCisjdW5kZWYgT1BUU1RSX21kNXN1bQorI2RlZmluZSBPUFRTVFJfbWQ1c3VtICJiYyhjaGVjaylzKHN0YXR1cylbIWJjXSIKKyNpZmRlZiBDTEVBTlVQX21kNXN1bQorI3VuZGVmIENMRUFOVVBfbWQ1c3VtCisjdW5kZWYgRk9SX21kNXN1bQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIG1kZXYgICBzCisjdW5kZWYgT1BUU1RSX21kZXYKKyNkZWZpbmUgT1BUU1RSX21kZXYgInMiCisjaWZkZWYgQ0xFQU5VUF9tZGV2CisjdW5kZWYgQ0xFQU5VUF9tZGV2CisjdW5kZWYgRk9SX21kZXYKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyBtZW1lYXRlciA8MT4xTSA8MT4xTQorI3VuZGVmIE9QVFNUUl9tZW1lYXRlcgorI2RlZmluZSBPUFRTVFJfbWVtZWF0ZXIgIjwxPjFNIgorI2lmZGVmIENMRUFOVVBfbWVtZWF0ZXIKKyN1bmRlZiBDTEVBTlVQX21lbWVhdGVyCisjdW5kZWYgRk9SX21lbWVhdGVyCisjdW5kZWYgRkxBR19NCisjZW5kaWYKKworLy8gbWljcm9jb20gPDE+MXMjPTExNTIwMFggPDE+MXMjPTExNTIwMFgKKyN1bmRlZiBPUFRTVFJfbWljcm9jb20KKyNkZWZpbmUgT1BUU1RSX21pY3JvY29tICI8MT4xcyM9MTE1MjAwWCIKKyNpZmRlZiBDTEVBTlVQX21pY3JvY29tCisjdW5kZWYgQ0xFQU5VUF9taWNyb2NvbQorI3VuZGVmIEZPUl9taWNyb2NvbQorI3VuZGVmIEZMQUdfWAorI3VuZGVmIEZMQUdfcworI2VuZGlmCisKKy8vIG1peCAgIGM6ZDpsI3IjCisjdW5kZWYgT1BUU1RSX21peAorI2RlZmluZSBPUFRTVFJfbWl4ICJjOmQ6bCNyIyIKKyNpZmRlZiBDTEVBTlVQX21peAorI3VuZGVmIENMRUFOVVBfbWl4CisjdW5kZWYgRk9SX21peAorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYworI2VuZGlmCisKKy8vIG1rZGlyIDwxWjp2cChwYXJlbnQpKHBhcmVudHMpbTogPDFaOnZwKHBhcmVudCkocGFyZW50cyltOgorI3VuZGVmIE9QVFNUUl9ta2RpcgorI2RlZmluZSBPUFRTVFJfbWtkaXIgIjwxWjp2cChwYXJlbnQpKHBhcmVudHMpbToiCisjaWZkZWYgQ0xFQU5VUF9ta2RpcgorI3VuZGVmIENMRUFOVVBfbWtkaXIKKyN1bmRlZiBGT1JfbWtkaXIKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX1oKKyNlbmRpZgorCisvLyBta2UyZnMgICA8MT4yZzpGbnFtI04jaSNiIworI3VuZGVmIE9QVFNUUl9ta2UyZnMKKyNkZWZpbmUgT1BUU1RSX21rZTJmcyAiPDE+Mmc6Rm5xbSNOI2kjYiMiCisjaWZkZWYgQ0xFQU5VUF9ta2UyZnMKKyN1bmRlZiBDTEVBTlVQX21rZTJmcworI3VuZGVmIEZPUl9ta2UyZnMKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX04KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX2cKKyNlbmRpZgorCisvLyBta2ZpZm8gPDFaOm06IDwxWjptOgorI3VuZGVmIE9QVFNUUl9ta2ZpZm8KKyNkZWZpbmUgT1BUU1RSX21rZmlmbyAiPDFaOm06IgorI2lmZGVmIENMRUFOVVBfbWtmaWZvCisjdW5kZWYgQ0xFQU5VUF9ta2ZpZm8KKyN1bmRlZiBGT1JfbWtmaWZvCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19aCisjZW5kaWYKKworLy8gbWtub2QgPDI+NG0obW9kZSk6WjogPDI+NG0obW9kZSk6WjoKKyN1bmRlZiBPUFRTVFJfbWtub2QKKyNkZWZpbmUgT1BUU1RSX21rbm9kICI8Mj40bShtb2RlKTpaOiIKKyNpZmRlZiBDTEVBTlVQX21rbm9kCisjdW5kZWYgQ0xFQU5VUF9ta25vZAorI3VuZGVmIEZPUl9ta25vZAorI3VuZGVmIEZMQUdfWgorI3VuZGVmIEZMQUdfbQorI2VuZGlmCisKKy8vIG1rcGFzc3dkICAgPjJTOm06UCM9MDwwCisjdW5kZWYgT1BUU1RSX21rcGFzc3dkCisjZGVmaW5lIE9QVFNUUl9ta3Bhc3N3ZCAiPjJTOm06UCM9MDwwIgorI2lmZGVmIENMRUFOVVBfbWtwYXNzd2QKKyN1bmRlZiBDTEVBTlVQX21rcGFzc3dkCisjdW5kZWYgRk9SX21rcGFzc3dkCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19TCisjZW5kaWYKKworLy8gbWtzd2FwIDwxPjFMOiA8MT4xTDoKKyN1bmRlZiBPUFRTVFJfbWtzd2FwCisjZGVmaW5lIE9QVFNUUl9ta3N3YXAgIjwxPjFMOiIKKyNpZmRlZiBDTEVBTlVQX21rc3dhcAorI3VuZGVmIENMRUFOVVBfbWtzd2FwCisjdW5kZWYgRk9SX21rc3dhcAorI3VuZGVmIEZMQUdfTAorI2VuZGlmCisKKy8vIG1rdGVtcCA+MSh0bXBkaXIpOzp1cWQoZGlyZWN0b3J5KXA6dCA+MSh0bXBkaXIpOzp1cWQoZGlyZWN0b3J5KXA6dAorI3VuZGVmIE9QVFNUUl9ta3RlbXAKKyNkZWZpbmUgT1BUU1RSX21rdGVtcCAiPjEodG1wZGlyKTs6dXFkKGRpcmVjdG9yeSlwOnQiCisjaWZkZWYgQ0xFQU5VUF9ta3RlbXAKKyN1bmRlZiBDTEVBTlVQX21rdGVtcAorI3VuZGVmIEZPUl9ta3RlbXAKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3RtcGRpcgorI2VuZGlmCisKKy8vIG1vZGluZm8gPDFiOms6RjowIDwxYjprOkY6MAorI3VuZGVmIE9QVFNUUl9tb2RpbmZvCisjZGVmaW5lIE9QVFNUUl9tb2RpbmZvICI8MWI6azpGOjAiCisjaWZkZWYgQ0xFQU5VUF9tb2RpbmZvCisjdW5kZWYgQ0xFQU5VUF9tb2RpbmZvCisjdW5kZWYgRk9SX21vZGluZm8KKyN1bmRlZiBGTEFHXzAKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX2IKKyNlbmRpZgorCisvLyBtb2Rwcm9iZSBhbHJxdnNEYmQqIGFscnF2c0RiZCoKKyN1bmRlZiBPUFRTVFJfbW9kcHJvYmUKKyNkZWZpbmUgT1BUU1RSX21vZHByb2JlICJhbHJxdnNEYmQqIgorI2lmZGVmIENMRUFOVVBfbW9kcHJvYmUKKyN1bmRlZiBDTEVBTlVQX21vZHByb2JlCisjdW5kZWYgRk9SX21vZHByb2JlCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gbW9yZSAgICAKKyN1bmRlZiBPUFRTVFJfbW9yZQorI2RlZmluZSBPUFRTVFJfbW9yZSAwCisjaWZkZWYgQ0xFQU5VUF9tb3JlCisjdW5kZWYgQ0xFQU5VUF9tb3JlCisjdW5kZWYgRk9SX21vcmUKKyNlbmRpZgorCisvLyBtb3VudCA/Uk86YWZucnZ3dDpvKlstcnddID9STzphZm5ydnd0Om8qWy1yd10KKyN1bmRlZiBPUFRTVFJfbW91bnQKKyNkZWZpbmUgT1BUU1RSX21vdW50ICI/Uk86YWZucnZ3dDpvKlstcnddIgorI2lmZGVmIENMRUFOVVBfbW91bnQKKyN1bmRlZiBDTEVBTlVQX21vdW50CisjdW5kZWYgRk9SX21vdW50CisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19SCisjZW5kaWYKKworLy8gbW91bnRwb2ludCA8MXFkeFstZHhdIDwxcWR4Wy1keF0KKyN1bmRlZiBPUFRTVFJfbW91bnRwb2ludAorI2RlZmluZSBPUFRTVFJfbW91bnRwb2ludCAiPDFxZHhbLWR4XSIKKyNpZmRlZiBDTEVBTlVQX21vdW50cG9pbnQKKyN1bmRlZiBDTEVBTlVQX21vdW50cG9pbnQKKyN1bmRlZiBGT1JfbW91bnRwb2ludAorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfcQorI2VuZGlmCisKKy8vIG12IDwxeChzd2FwKXYodmVyYm9zZSluRihyZW1vdmUtZGVzdGluYXRpb24pZml0OlRbLW5pXSA8MXgoc3dhcCl2KHZlcmJvc2UpbkYocmVtb3ZlLWRlc3RpbmF0aW9uKWZpdDpUWy1uaV0KKyN1bmRlZiBPUFRTVFJfbXYKKyNkZWZpbmUgT1BUU1RSX212ICI8MXgoc3dhcCl2KHZlcmJvc2UpbkYocmVtb3ZlLWRlc3RpbmF0aW9uKWZpdDpUWy1uaV0iCisjaWZkZWYgQ0xFQU5VUF9tdgorI3VuZGVmIENMRUFOVVBfbXYKKyN1bmRlZiBGT1JfbXYKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3gKKyNlbmRpZgorCisvLyBuYmRfY2xpZW50IDwzPjNiIzwxPjQyOTQ5NjcyOTU9NDA5Nm5zIDwzPjNiIzwxPjQyOTQ5NjcyOTU9NDA5Nm5zCisjdW5kZWYgT1BUU1RSX25iZF9jbGllbnQKKyNkZWZpbmUgT1BUU1RSX25iZF9jbGllbnQgIjwzPjNiIzwxPjQyOTQ5NjcyOTU9NDA5Nm5zIgorI2lmZGVmIENMRUFOVVBfbmJkX2NsaWVudAorI3VuZGVmIENMRUFOVVBfbmJkX2NsaWVudAorI3VuZGVmIEZPUl9uYmRfY2xpZW50CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19iCisjZW5kaWYKKworLy8gbmJkX3NlcnZlciAgIDwxPjFyCisjdW5kZWYgT1BUU1RSX25iZF9zZXJ2ZXIKKyNkZWZpbmUgT1BUU1RSX25iZF9zZXJ2ZXIgIjwxPjFyIgorI2lmZGVmIENMRUFOVVBfbmJkX3NlcnZlcgorI3VuZGVmIENMRUFOVVBfbmJkX3NlcnZlcgorI3VuZGVmIEZPUl9uYmRfc2VydmVyCisjdW5kZWYgRkxBR19yCisjZW5kaWYKKworLy8gbmV0Y2F0IF50RWxMdyM8MVcjPDFwIzwxPjY1NTM1cSM8MU86bzpzOmY6NDZ1VW56WyF0bExdWyFMd11bIUx1XVshNDZVXVshb09dIF50RWxMdyM8MVcjPDFwIzwxPjY1NTM1cSM8MU86bzpzOmY6NDZ1VW56WyF0bExdWyFMd11bIUx1XVshNDZVXVshb09dCisjdW5kZWYgT1BUU1RSX25ldGNhdAorI2RlZmluZSBPUFRTVFJfbmV0Y2F0ICJedEVsTHcjPDFXIzwxcCM8MT42NTUzNXEjPDFPOm86czpmOjQ2dVVuelshdGxMXVshTHddWyFMdV1bITQ2VV1bIW9PXSIKKyNpZmRlZiBDTEVBTlVQX25ldGNhdAorI3VuZGVmIENMRUFOVVBfbmV0Y2F0CisjdW5kZWYgRk9SX25ldGNhdAorI3VuZGVmIEZMQUdfegorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfVQorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfNgorI3VuZGVmIEZMQUdfNAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfTworI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfVworI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfRQorI3VuZGVmIEZMQUdfdAorI2VuZGlmCisKKy8vIG5ldHN0YXQgcFdyeHd1dG5lYWwgcFdyeHd1dG5lYWwKKyN1bmRlZiBPUFRTVFJfbmV0c3RhdAorI2RlZmluZSBPUFRTVFJfbmV0c3RhdCAicFdyeHd1dG5lYWwiCisjaWZkZWYgQ0xFQU5VUF9uZXRzdGF0CisjdW5kZWYgQ0xFQU5VUF9uZXRzdGF0CisjdW5kZWYgRk9SX25ldHN0YXQKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX1cKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyBuaWNlIF48MW4jIF48MW4jCisjdW5kZWYgT1BUU1RSX25pY2UKKyNkZWZpbmUgT1BUU1RSX25pY2UgIl48MW4jIgorI2lmZGVmIENMRUFOVVBfbmljZQorI3VuZGVmIENMRUFOVVBfbmljZQorI3VuZGVmIEZPUl9uaWNlCisjdW5kZWYgRkxBR19uCisjZW5kaWYKKworLy8gbmwgdiM9MWwjdyM8MD02YjpuOnM6RSB2Iz0xbCN3IzwwPTZiOm46czpFCisjdW5kZWYgT1BUU1RSX25sCisjZGVmaW5lIE9QVFNUUl9ubCAidiM9MWwjdyM8MD02YjpuOnM6RSIKKyNpZmRlZiBDTEVBTlVQX25sCisjdW5kZWYgQ0xFQU5VUF9ubAorI3VuZGVmIEZPUl9ubAorI3VuZGVmIEZMQUdfRQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfdgorI2VuZGlmCisKKy8vIG5vaHVwIDwxXiA8MV4KKyN1bmRlZiBPUFRTVFJfbm9odXAKKyNkZWZpbmUgT1BUU1RSX25vaHVwICI8MV4iCisjaWZkZWYgQ0xFQU5VUF9ub2h1cAorI3VuZGVmIENMRUFOVVBfbm9odXAKKyN1bmRlZiBGT1Jfbm9odXAKKyNlbmRpZgorCisvLyBucHJvYyAoYWxsKSAoYWxsKQorI3VuZGVmIE9QVFNUUl9ucHJvYworI2RlZmluZSBPUFRTVFJfbnByb2MgIihhbGwpIgorI2lmZGVmIENMRUFOVVBfbnByb2MKKyN1bmRlZiBDTEVBTlVQX25wcm9jCisjdW5kZWYgRk9SX25wcm9jCisjdW5kZWYgRkxBR19hbGwKKyNlbmRpZgorCisvLyBuc2VudGVyIDwxYShhbGwpRihuby1mb3JrKXQjPDEodGFyZ2V0KUMoY2dyb3VwKTo7IGkoaXBjKTo7IG0obW91bnQpOjsgbihuZXQpOjsgcChwaWQpOjsgdSh1dHMpOjsgVSh1c2VyKTo7ICA8MWEoYWxsKUYobm8tZm9yayl0IzwxKHRhcmdldClDKGNncm91cCk6OyBpKGlwYyk6OyBtKG1vdW50KTo7IG4obmV0KTo7IHAocGlkKTo7IHUodXRzKTo7IFUodXNlcik6OyAKKyN1bmRlZiBPUFRTVFJfbnNlbnRlcgorI2RlZmluZSBPUFRTVFJfbnNlbnRlciAiPDFhKGFsbClGKG5vLWZvcmspdCM8MSh0YXJnZXQpQyhjZ3JvdXApOjsgaShpcGMpOjsgbShtb3VudCk6OyBuKG5ldCk6OyBwKHBpZCk6OyB1KHV0cyk6OyBVKHVzZXIpOjsgIgorI2lmZGVmIENMRUFOVVBfbnNlbnRlcgorI3VuZGVmIENMRUFOVVBfbnNlbnRlcgorI3VuZGVmIEZPUl9uc2VudGVyCisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gb2QgaiN2dyM8MT0xNk4jeHNvZGNiQTp0KiBqI3Z3IzwxPTE2TiN4c29kY2JBOnQqCisjdW5kZWYgT1BUU1RSX29kCisjZGVmaW5lIE9QVFNUUl9vZCAiaiN2dyM8MT0xNk4jeHNvZGNiQTp0KiIKKyNpZmRlZiBDTEVBTlVQX29kCisjdW5kZWYgQ0xFQU5VUF9vZAorI3VuZGVmIEZPUl9vZAorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfTgorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfagorI2VuZGlmCisKKy8vIG9uZWl0ICAgXjwxbmM6cDNbIXBuXQorI3VuZGVmIE9QVFNUUl9vbmVpdAorI2RlZmluZSBPUFRTVFJfb25laXQgIl48MW5jOnAzWyFwbl0iCisjaWZkZWYgQ0xFQU5VUF9vbmVpdAorI3VuZGVmIENMRUFOVVBfb25laXQKKyN1bmRlZiBGT1Jfb25laXQKKyN1bmRlZiBGTEFHXzMKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX24KKyNlbmRpZgorCisvLyBvcGVudnQgICBePDFjIzwxPjYzc3cKKyN1bmRlZiBPUFRTVFJfb3BlbnZ0CisjZGVmaW5lIE9QVFNUUl9vcGVudnQgIl48MWMjPDE+NjNzdyIKKyNpZmRlZiBDTEVBTlVQX29wZW52dAorI3VuZGVmIENMRUFOVVBfb3BlbnZ0CisjdW5kZWYgRk9SX29wZW52dAorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfYworI2VuZGlmCisKKy8vIHBhcnRwcm9iZSA8MSA8MQorI3VuZGVmIE9QVFNUUl9wYXJ0cHJvYmUKKyNkZWZpbmUgT1BUU1RSX3BhcnRwcm9iZSAiPDEiCisjaWZkZWYgQ0xFQU5VUF9wYXJ0cHJvYmUKKyN1bmRlZiBDTEVBTlVQX3BhcnRwcm9iZQorI3VuZGVmIEZPUl9wYXJ0cHJvYmUKKyNlbmRpZgorCisvLyBwYXNzd2QgICA+MWE6ZGx1CisjdW5kZWYgT1BUU1RSX3Bhc3N3ZAorI2RlZmluZSBPUFRTVFJfcGFzc3dkICI+MWE6ZGx1IgorI2lmZGVmIENMRUFOVVBfcGFzc3dkCisjdW5kZWYgQ0xFQU5VUF9wYXNzd2QKKyN1bmRlZiBGT1JfcGFzc3dkCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gcGFzdGUgZDpzIGQ6cworI3VuZGVmIE9QVFNUUl9wYXN0ZQorI2RlZmluZSBPUFRTVFJfcGFzdGUgImQ6cyIKKyNpZmRlZiBDTEVBTlVQX3Bhc3RlCisjdW5kZWYgQ0xFQU5VUF9wYXN0ZQorI3VuZGVmIEZPUl9wYXN0ZQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIHBhdGNoID4yKG5vLWJhY2t1cC1pZi1taXNtYXRjaCkoZHJ5LXJ1bilGI2cjZnVscCN2KHZlcmJvc2UpQGQ6aTpScyhxdWlldClbIXN2XSA+Mihuby1iYWNrdXAtaWYtbWlzbWF0Y2gpKGRyeS1ydW4pRiNnI2Z1bHAjdih2ZXJib3NlKUBkOmk6UnMocXVpZXQpWyFzdl0KKyN1bmRlZiBPUFRTVFJfcGF0Y2gKKyNkZWZpbmUgT1BUU1RSX3BhdGNoICI+Mihuby1iYWNrdXAtaWYtbWlzbWF0Y2gpKGRyeS1ydW4pRiNnI2Z1bHAjdih2ZXJib3NlKUBkOmk6UnMocXVpZXQpWyFzdl0iCisjaWZkZWYgQ0xFQU5VUF9wYXRjaAorI3VuZGVmIENMRUFOVVBfcGF0Y2gKKyN1bmRlZiBGT1JfcGF0Y2gKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX2RyeV9ydW4KKyN1bmRlZiBGTEFHX25vX2JhY2t1cF9pZl9taXNtYXRjaAorI2VuZGlmCisKKy8vIHBncmVwID9jbGQ6dSpVKnQqcypQKmcqRypmbm92eEw6Wy1ub10gP2NsZDp1KlUqdCpzKlAqZypHKmZub3Z4TDpbLW5vXQorI3VuZGVmIE9QVFNUUl9wZ3JlcAorI2RlZmluZSBPUFRTVFJfcGdyZXAgIj9jbGQ6dSpVKnQqcypQKmcqRypmbm92eEw6Wy1ub10iCisjaWZkZWYgQ0xFQU5VUF9wZ3JlcAorI3VuZGVmIENMRUFOVVBfcGdyZXAKKyN1bmRlZiBGT1JfcGdyZXAKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX0cKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBwaWRvZiBzbzp4IHNvOngKKyN1bmRlZiBPUFRTVFJfcGlkb2YKKyNkZWZpbmUgT1BUU1RSX3BpZG9mICJzbzp4IgorI2lmZGVmIENMRUFOVVBfcGlkb2YKKyN1bmRlZiBDTEVBTlVQX3BpZG9mCisjdW5kZWYgRk9SX3BpZG9mCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19zCisjZW5kaWYKKworLy8gcGluZyA8MT4xbSN0IzwwPjI1NT02NGMjPDA9M3MjPDA+NDA2ND01NmklVyM8MD0zdyM8MHFmNDZJOlstNDZdIDwxPjFtI3QjPDA+MjU1PTY0YyM8MD0zcyM8MD40MDY0PTU2aSVXIzwwPTN3IzwwcWY0Nkk6Wy00Nl0KKyN1bmRlZiBPUFRTVFJfcGluZworI2RlZmluZSBPUFRTVFJfcGluZyAiPDE+MW0jdCM8MD4yNTU9NjRjIzwwPTNzIzwwPjQwNjQ9NTZpJVcjPDA9M3cjPDBxZjQ2STpbLTQ2XSIKKyNpZmRlZiBDTEVBTlVQX3BpbmcKKyN1bmRlZiBDTEVBTlVQX3BpbmcKKyN1bmRlZiBGT1JfcGluZworI3VuZGVmIEZMQUdfSQorI3VuZGVmIEZMQUdfNgorI3VuZGVmIEZMQUdfNAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfVworI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfbQorI2VuZGlmCisKKy8vIHBpdm90X3Jvb3QgPDI+MiA8Mj4yCisjdW5kZWYgT1BUU1RSX3Bpdm90X3Jvb3QKKyNkZWZpbmUgT1BUU1RSX3Bpdm90X3Jvb3QgIjwyPjIiCisjaWZkZWYgQ0xFQU5VUF9waXZvdF9yb290CisjdW5kZWYgQ0xFQU5VUF9waXZvdF9yb290CisjdW5kZWYgRk9SX3Bpdm90X3Jvb3QKKyNlbmRpZgorCisvLyBwa2lsbCA/VnUqVSp0KnMqUCpnKkcqZm5vdnhsOlstbm9dID9WdSpVKnQqcypQKmcqRypmbm92eGw6Wy1ub10KKyN1bmRlZiBPUFRTVFJfcGtpbGwKKyNkZWZpbmUgT1BUU1RSX3BraWxsICI/VnUqVSp0KnMqUCpnKkcqZm5vdnhsOlstbm9dIgorI2lmZGVmIENMRUFOVVBfcGtpbGwKKyN1bmRlZiBDTEVBTlVQX3BraWxsCisjdW5kZWYgRk9SX3BraWxsCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19HCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19WCisjZW5kaWYKKworLy8gcG1hcCA8MXBxeCA8MXBxeAorI3VuZGVmIE9QVFNUUl9wbWFwCisjZGVmaW5lIE9QVFNUUl9wbWFwICI8MXBxeCIKKyNpZmRlZiBDTEVBTlVQX3BtYXAKKyN1bmRlZiBDTEVBTlVQX3BtYXAKKyN1bmRlZiBGT1JfcG1hcAorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIHByaW50ZW52IChudWxsKTAgKG51bGwpMAorI3VuZGVmIE9QVFNUUl9wcmludGVudgorI2RlZmluZSBPUFRTVFJfcHJpbnRlbnYgIihudWxsKTAiCisjaWZkZWYgQ0xFQU5VUF9wcmludGVudgorI3VuZGVmIENMRUFOVVBfcHJpbnRlbnYKKyN1bmRlZiBGT1JfcHJpbnRlbnYKKyN1bmRlZiBGTEFHXzAKKyN1bmRlZiBGTEFHX251bGwKKyNlbmRpZgorCisvLyBwcmludGYgPDE/XiA8MT9eCisjdW5kZWYgT1BUU1RSX3ByaW50ZgorI2RlZmluZSBPUFRTVFJfcHJpbnRmICI8MT9eIgorI2lmZGVmIENMRUFOVVBfcHJpbnRmCisjdW5kZWYgQ0xFQU5VUF9wcmludGYKKyN1bmRlZiBGT1JfcHJpbnRmCisjZW5kaWYKKworLy8gcHMgayhzb3J0KSpQKHBwaWQpKmFBZGVmbE1ubypPKnAocGlkKSpzKnQqVHUqVSpnKkcqd1pbIW9sXVsrQWVdWyFvT10gayhzb3J0KSpQKHBwaWQpKmFBZGVmbE1ubypPKnAocGlkKSpzKnQqVHUqVSpnKkcqd1pbIW9sXVsrQWVdWyFvT10KKyN1bmRlZiBPUFRTVFJfcHMKKyNkZWZpbmUgT1BUU1RSX3BzICJrKHNvcnQpKlAocHBpZCkqYUFkZWZsTW5vKk8qcChwaWQpKnMqdCpUdSpVKmcqRyp3Wlshb2xdWytBZV1bIW9PXSIKKyNpZmRlZiBDTEVBTlVQX3BzCisjdW5kZWYgQ0xFQU5VUF9wcworI3VuZGVmIEZPUl9wcworI3VuZGVmIEZMQUdfWgorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfRworI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfVQorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfVAorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfTworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfTQorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfaworI2VuZGlmCisKKy8vIHB3ZCA+MExQWy1MUF0gPjBMUFstTFBdCisjdW5kZWYgT1BUU1RSX3B3ZAorI2RlZmluZSBPUFRTVFJfcHdkICI+MExQWy1MUF0iCisjaWZkZWYgQ0xFQU5VUF9wd2QKKyN1bmRlZiBDTEVBTlVQX3B3ZAorI3VuZGVmIEZPUl9wd2QKKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX0wKKyNlbmRpZgorCisvLyBwd2R4IDwxYSA8MWEKKyN1bmRlZiBPUFRTVFJfcHdkeAorI2RlZmluZSBPUFRTVFJfcHdkeCAiPDFhIgorI2lmZGVmIENMRUFOVVBfcHdkeAorI3VuZGVmIENMRUFOVVBfcHdkeAorI3VuZGVmIEZPUl9wd2R4CisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gcHdnZW4gICA+MnIocmVtb3ZlKTpjKGNhcGl0YWxpemUpbihudW1lcmFscyl5KHN5bWJvbHMpcyhzZWN1cmUpQihhbWJpZ3VvdXMpaChoZWxwKUMxdkEobm8tY2FwaXRhbGl6ZSkwKG5vLW51bWVyYWxzKVstY0FdWy1uMF1bLUMxXQorI3VuZGVmIE9QVFNUUl9wd2dlbgorI2RlZmluZSBPUFRTVFJfcHdnZW4gIj4ycihyZW1vdmUpOmMoY2FwaXRhbGl6ZSluKG51bWVyYWxzKXkoc3ltYm9scylzKHNlY3VyZSlCKGFtYmlndW91cyloKGhlbHApQzF2QShuby1jYXBpdGFsaXplKTAobm8tbnVtZXJhbHMpWy1jQV1bLW4wXVstQzFdIgorI2lmZGVmIENMRUFOVVBfcHdnZW4KKyN1bmRlZiBDTEVBTlVQX3B3Z2VuCisjdW5kZWYgRk9SX3B3Z2VuCisjdW5kZWYgRkxBR18wCisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR18xCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19CCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR195CisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19yCisjZW5kaWYKKworLy8gcmVhZGFoZWFkICAgIAorI3VuZGVmIE9QVFNUUl9yZWFkYWhlYWQKKyNkZWZpbmUgT1BUU1RSX3JlYWRhaGVhZCAwCisjaWZkZWYgQ0xFQU5VUF9yZWFkYWhlYWQKKyN1bmRlZiBDTEVBTlVQX3JlYWRhaGVhZAorI3VuZGVmIEZPUl9yZWFkYWhlYWQKKyNlbmRpZgorCisvLyByZWFkZWxmIDwxKGR5bi1zeW1zKUFhZGVobG5wOlNzV3g6IDwxKGR5bi1zeW1zKUFhZGVobG5wOlNzV3g6CisjdW5kZWYgT1BUU1RSX3JlYWRlbGYKKyNkZWZpbmUgT1BUU1RSX3JlYWRlbGYgIjwxKGR5bi1zeW1zKUFhZGVobG5wOlNzV3g6IgorI2lmZGVmIENMRUFOVVBfcmVhZGVsZgorI3VuZGVmIENMRUFOVVBfcmVhZGVsZgorI3VuZGVmIEZPUl9yZWFkZWxmCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19XCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR19keW5fc3ltcworI2VuZGlmCisKKy8vIHJlYWRsaW5rIDwxdm5mKGNhbm9uaWNhbGl6ZSllbXF6Wy1tZWZdWy1xdl0gPDF2bmYoY2Fub25pY2FsaXplKWVtcXpbLW1lZl1bLXF2XQorI3VuZGVmIE9QVFNUUl9yZWFkbGluaworI2RlZmluZSBPUFRTVFJfcmVhZGxpbmsgIjwxdm5mKGNhbm9uaWNhbGl6ZSllbXF6Wy1tZWZdWy1xdl0iCisjaWZkZWYgQ0xFQU5VUF9yZWFkbGluaworI3VuZGVmIENMRUFOVVBfcmVhZGxpbmsKKyN1bmRlZiBGT1JfcmVhZGxpbmsKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3YKKyNlbmRpZgorCisvLyByZWFscGF0aCA8MShyZWxhdGl2ZS1iYXNlKTpSKHJlbGF0aXZlLXRvKTpzKG5vLXN5bWxpbmtzKUxQZW1xelstUHNdWy1MUF1bLW1lXSA8MShyZWxhdGl2ZS1iYXNlKTpSKHJlbGF0aXZlLXRvKTpzKG5vLXN5bWxpbmtzKUxQZW1xelstUHNdWy1MUF1bLW1lXQorI3VuZGVmIE9QVFNUUl9yZWFscGF0aAorI2RlZmluZSBPUFRTVFJfcmVhbHBhdGggIjwxKHJlbGF0aXZlLWJhc2UpOlIocmVsYXRpdmUtdG8pOnMobm8tc3ltbGlua3MpTFBlbXF6Wy1Qc11bLUxQXVstbWVdIgorI2lmZGVmIENMRUFOVVBfcmVhbHBhdGgKKyN1bmRlZiBDTEVBTlVQX3JlYWxwYXRoCisjdW5kZWYgRk9SX3JlYWxwYXRoCisjdW5kZWYgRkxBR196CisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19yZWxhdGl2ZV9iYXNlCisjZW5kaWYKKworLy8gcmVib290ICAgZDpmbgorI3VuZGVmIE9QVFNUUl9yZWJvb3QKKyNkZWZpbmUgT1BUU1RSX3JlYm9vdCAiZDpmbiIKKyNpZmRlZiBDTEVBTlVQX3JlYm9vdAorI3VuZGVmIENMRUFOVVBfcmVib290CisjdW5kZWYgRk9SX3JlYm9vdAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIHJlbmljZSA8MWdwdW4jfCA8MWdwdW4jfAorI3VuZGVmIE9QVFNUUl9yZW5pY2UKKyNkZWZpbmUgT1BUU1RSX3JlbmljZSAiPDFncHVuI3wiCisjaWZkZWYgQ0xFQU5VUF9yZW5pY2UKKyN1bmRlZiBDTEVBTlVQX3JlbmljZQorI3VuZGVmIEZPUl9yZW5pY2UKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2cKKyNlbmRpZgorCisvLyByZXNldCAgICAKKyN1bmRlZiBPUFRTVFJfcmVzZXQKKyNkZWZpbmUgT1BUU1RSX3Jlc2V0IDAKKyNpZmRlZiBDTEVBTlVQX3Jlc2V0CisjdW5kZWYgQ0xFQU5VUF9yZXNldAorI3VuZGVmIEZPUl9yZXNldAorI2VuZGlmCisKKy8vIHJlc3RvcmVjb24gPDFERm5ScnYgPDFERm5ScnYKKyN1bmRlZiBPUFRTVFJfcmVzdG9yZWNvbgorI2RlZmluZSBPUFRTVFJfcmVzdG9yZWNvbiAiPDFERm5ScnYiCisjaWZkZWYgQ0xFQU5VUF9yZXN0b3JlY29uCisjdW5kZWYgQ0xFQU5VUF9yZXN0b3JlY29uCisjdW5kZWYgRk9SX3Jlc3RvcmVjb24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX0QKKyNlbmRpZgorCisvLyByZXYgICAgCisjdW5kZWYgT1BUU1RSX3JldgorI2RlZmluZSBPUFRTVFJfcmV2IDAKKyNpZmRlZiBDTEVBTlVQX3JldgorI3VuZGVmIENMRUFOVVBfcmV2CisjdW5kZWYgRk9SX3JldgorI2VuZGlmCisKKy8vIHJma2lsbCA8MT4yIDwxPjIKKyN1bmRlZiBPUFRTVFJfcmZraWxsCisjZGVmaW5lIE9QVFNUUl9yZmtpbGwgIjwxPjIiCisjaWZkZWYgQ0xFQU5VUF9yZmtpbGwKKyN1bmRlZiBDTEVBTlVQX3Jma2lsbAorI3VuZGVmIEZPUl9yZmtpbGwKKyNlbmRpZgorCisvLyBybSBmKGZvcmNlKWlScnZbLWZpXSBmKGZvcmNlKWlScnZbLWZpXQorI3VuZGVmIE9QVFNUUl9ybQorI2RlZmluZSBPUFRTVFJfcm0gImYoZm9yY2UpaVJydlstZmldIgorI2lmZGVmIENMRUFOVVBfcm0KKyN1bmRlZiBDTEVBTlVQX3JtCisjdW5kZWYgRk9SX3JtCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19mCisjZW5kaWYKKworLy8gcm1kaXIgPDEoaWdub3JlLWZhaWwtb24tbm9uLWVtcHR5KXAocGFyZW50cykgPDEoaWdub3JlLWZhaWwtb24tbm9uLWVtcHR5KXAocGFyZW50cykKKyN1bmRlZiBPUFRTVFJfcm1kaXIKKyNkZWZpbmUgT1BUU1RSX3JtZGlyICI8MShpZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkpcChwYXJlbnRzKSIKKyNpZmRlZiBDTEVBTlVQX3JtZGlyCisjdW5kZWYgQ0xFQU5VUF9ybWRpcgorI3VuZGVmIEZPUl9ybWRpcgorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfaWdub3JlX2ZhaWxfb25fbm9uX2VtcHR5CisjZW5kaWYKKworLy8gcm1tb2QgPDF3ZiA8MXdmCisjdW5kZWYgT1BUU1RSX3JtbW9kCisjZGVmaW5lIE9QVFNUUl9ybW1vZCAiPDF3ZiIKKyNpZmRlZiBDTEVBTlVQX3JtbW9kCisjdW5kZWYgQ0xFQU5VUF9ybW1vZAorI3VuZGVmIEZPUl9ybW1vZAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfdworI2VuZGlmCisKKy8vIHJvdXRlICAgP25lQToKKyN1bmRlZiBPUFRTVFJfcm91dGUKKyNkZWZpbmUgT1BUU1RSX3JvdXRlICI/bmVBOiIKKyNpZmRlZiBDTEVBTlVQX3JvdXRlCisjdW5kZWYgQ0xFQU5VUF9yb3V0ZQorI3VuZGVmIEZPUl9yb3V0ZQorI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIHJ0Y3dha2UgKGxpc3QtbW9kZXMpOyhhdXRvKWEoZGV2aWNlKWQ6KGxvY2FsKWwobW9kZSltOihzZWNvbmRzKXMjKHRpbWUpdCModXRjKXUodmVyYm9zZSl2WyFhbHVdIChsaXN0LW1vZGVzKTsoYXV0bylhKGRldmljZSlkOihsb2NhbClsKG1vZGUpbTooc2Vjb25kcylzIyh0aW1lKXQjKHV0Yyl1KHZlcmJvc2UpdlshYWx1XQorI3VuZGVmIE9QVFNUUl9ydGN3YWtlCisjZGVmaW5lIE9QVFNUUl9ydGN3YWtlICIobGlzdC1tb2Rlcyk7KGF1dG8pYShkZXZpY2UpZDoobG9jYWwpbChtb2RlKW06KHNlY29uZHMpcyModGltZSl0Iyh1dGMpdSh2ZXJib3NlKXZbIWFsdV0iCisjaWZkZWYgQ0xFQU5VUF9ydGN3YWtlCisjdW5kZWYgQ0xFQU5VUF9ydGN3YWtlCisjdW5kZWYgRk9SX3J0Y3dha2UKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX2F1dG8KKyN1bmRlZiBGTEFHX2xpc3RfbW9kZXMKKyNlbmRpZgorCisvLyBydW5jb24gXjwyIF48MgorI3VuZGVmIE9QVFNUUl9ydW5jb24KKyNkZWZpbmUgT1BUU1RSX3J1bmNvbiAiXjwyIgorI2lmZGVmIENMRUFOVVBfcnVuY29uCisjdW5kZWYgQ0xFQU5VUF9ydW5jb24KKyN1bmRlZiBGT1JfcnVuY29uCisjZW5kaWYKKworLy8gc2VkIChoZWxwKSh2ZXJzaW9uKSh0YXJ4Zm9ybSllKmYqaTo7bkVyeihudWxsLWRhdGEpc1srRXJdIChoZWxwKSh2ZXJzaW9uKSh0YXJ4Zm9ybSllKmYqaTo7bkVyeihudWxsLWRhdGEpc1srRXJdCisjdW5kZWYgT1BUU1RSX3NlZAorI2RlZmluZSBPUFRTVFJfc2VkICIoaGVscCkodmVyc2lvbikodGFyeGZvcm0pZSpmKmk6O25FcnoobnVsbC1kYXRhKXNbK0VyXSIKKyNpZmRlZiBDTEVBTlVQX3NlZAorI3VuZGVmIENMRUFOVVBfc2VkCisjdW5kZWYgRk9SX3NlZAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfegorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfRQorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfdGFyeGZvcm0KKyN1bmRlZiBGTEFHX3ZlcnNpb24KKyN1bmRlZiBGTEFHX2hlbHAKKyNlbmRpZgorCisvLyBzZW5kZXZlbnQgPDQ+NCA8ND40CisjdW5kZWYgT1BUU1RSX3NlbmRldmVudAorI2RlZmluZSBPUFRTVFJfc2VuZGV2ZW50ICI8ND40IgorI2lmZGVmIENMRUFOVVBfc2VuZGV2ZW50CisjdW5kZWYgQ0xFQU5VUF9zZW5kZXZlbnQKKyN1bmRlZiBGT1Jfc2VuZGV2ZW50CisjZW5kaWYKKworLy8gc2VxIDwxPjM/ZjpzOndbIWZ3XSA8MT4zP2Y6czp3WyFmd10KKyN1bmRlZiBPUFRTVFJfc2VxCisjZGVmaW5lIE9QVFNUUl9zZXEgIjwxPjM/ZjpzOndbIWZ3XSIKKyNpZmRlZiBDTEVBTlVQX3NlcQorI3VuZGVmIENMRUFOVVBfc2VxCisjdW5kZWYgRk9SX3NlcQorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfZgorI2VuZGlmCisKKy8vIHNldCAgICAKKyN1bmRlZiBPUFRTVFJfc2V0CisjZGVmaW5lIE9QVFNUUl9zZXQgMAorI2lmZGVmIENMRUFOVVBfc2V0CisjdW5kZWYgQ0xFQU5VUF9zZXQKKyN1bmRlZiBGT1Jfc2V0CisjZW5kaWYKKworLy8gc2V0ZW5mb3JjZSA8MT4xIDwxPjEKKyN1bmRlZiBPUFRTVFJfc2V0ZW5mb3JjZQorI2RlZmluZSBPUFRTVFJfc2V0ZW5mb3JjZSAiPDE+MSIKKyNpZmRlZiBDTEVBTlVQX3NldGVuZm9yY2UKKyN1bmRlZiBDTEVBTlVQX3NldGVuZm9yY2UKKyN1bmRlZiBGT1Jfc2V0ZW5mb3JjZQorI2VuZGlmCisKKy8vIHNldGZhdHRyIGhuOnx2Ong6fFsheHZdIGhuOnx2Ong6fFsheHZdCisjdW5kZWYgT1BUU1RSX3NldGZhdHRyCisjZGVmaW5lIE9QVFNUUl9zZXRmYXR0ciAiaG46fHY6eDp8WyF4dl0iCisjaWZkZWYgQ0xFQU5VUF9zZXRmYXR0cgorI3VuZGVmIENMRUFOVVBfc2V0ZmF0dHIKKyN1bmRlZiBGT1Jfc2V0ZmF0dHIKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2gKKyNlbmRpZgorCisvLyBzZXRzaWQgXjwxd2NAZFshZGNdIF48MXdjQGRbIWRjXQorI3VuZGVmIE9QVFNUUl9zZXRzaWQKKyNkZWZpbmUgT1BUU1RSX3NldHNpZCAiXjwxd2NAZFshZGNdIgorI2lmZGVmIENMRUFOVVBfc2V0c2lkCisjdW5kZWYgQ0xFQU5VUF9zZXRzaWQKKyN1bmRlZiBGT1Jfc2V0c2lkCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR193CisjZW5kaWYKKworLy8gc2ggICAwXihub2VkaXRpbmcpKG5vcHJvZmlsZSkobm9yYylzYzppCisjdW5kZWYgT1BUU1RSX3NoCisjZGVmaW5lIE9QVFNUUl9zaCAiMF4obm9lZGl0aW5nKShub3Byb2ZpbGUpKG5vcmMpc2M6aSIKKyNpZmRlZiBDTEVBTlVQX3NoCisjdW5kZWYgQ0xFQU5VUF9zaAorI3VuZGVmIEZPUl9zaAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbm9yYworI3VuZGVmIEZMQUdfbm9wcm9maWxlCisjdW5kZWYgRkxBR19ub2VkaXRpbmcKKyNlbmRpZgorCisvLyBzaGEzc3VtICAgYlNhIzwxMjg+NTEyPTIyNAorI3VuZGVmIE9QVFNUUl9zaGEzc3VtCisjZGVmaW5lIE9QVFNUUl9zaGEzc3VtICJiU2EjPDEyOD41MTI9MjI0IgorI2lmZGVmIENMRUFOVVBfc2hhM3N1bQorI3VuZGVmIENMRUFOVVBfc2hhM3N1bQorI3VuZGVmIEZPUl9zaGEzc3VtCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19iCisjZW5kaWYKKworLy8gc2hpZnQgICA+MQorI3VuZGVmIE9QVFNUUl9zaGlmdAorI2RlZmluZSBPUFRTVFJfc2hpZnQgIj4xIgorI2lmZGVmIENMRUFOVVBfc2hpZnQKKyN1bmRlZiBDTEVBTlVQX3NoaWZ0CisjdW5kZWYgRk9SX3NoaWZ0CisjZW5kaWYKKworLy8gc2hyZWQgICA8MXp4dXMjPDFuIzwxbyM8MGYKKyN1bmRlZiBPUFRTVFJfc2hyZWQKKyNkZWZpbmUgT1BUU1RSX3NocmVkICI8MXp4dXMjPDFuIzwxbyM8MGYiCisjaWZkZWYgQ0xFQU5VUF9zaHJlZAorI3VuZGVmIENMRUFOVVBfc2hyZWQKKyN1bmRlZiBGT1Jfc2hyZWQKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX3oKKyNlbmRpZgorCisvLyBzaHVmICAgemVuIzwwCisjdW5kZWYgT1BUU1RSX3NodWYKKyNkZWZpbmUgT1BUU1RSX3NodWYgInplbiM8MCIKKyNpZmRlZiBDTEVBTlVQX3NodWYKKyN1bmRlZiBDTEVBTlVQX3NodWYKKyN1bmRlZiBGT1Jfc2h1ZgorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfegorI2VuZGlmCisKKy8vIHNrZWxldG9uICAgKHdhbHJ1cykoYmx1YmJlcik6OyhhbHNvKTpoKGhsb25nKTo7IGcoZ2xvbmcpOiBmKGxvbmdmKTo7ZUBkKmMjYjphCisjdW5kZWYgT1BUU1RSX3NrZWxldG9uCisjZGVmaW5lIE9QVFNUUl9za2VsZXRvbiAiKHdhbHJ1cykoYmx1YmJlcik6OyhhbHNvKTpoKGhsb25nKTo7IGcoZ2xvbmcpOiBmKGxvbmdmKTo7ZUBkKmMjYjphIgorI2lmZGVmIENMRUFOVVBfc2tlbGV0b24KKyN1bmRlZiBDTEVBTlVQX3NrZWxldG9uCisjdW5kZWYgRk9SX3NrZWxldG9uCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19hbHNvCisjdW5kZWYgRkxBR19ibHViYmVyCisjdW5kZWYgRkxBR193YWxydXMKKyNlbmRpZgorCisvLyBza2VsZXRvbl9hbGlhcyAgIGIjZHEKKyN1bmRlZiBPUFRTVFJfc2tlbGV0b25fYWxpYXMKKyNkZWZpbmUgT1BUU1RSX3NrZWxldG9uX2FsaWFzICJiI2RxIgorI2lmZGVmIENMRUFOVVBfc2tlbGV0b25fYWxpYXMKKyN1bmRlZiBDTEVBTlVQX3NrZWxldG9uX2FsaWFzCisjdW5kZWYgRk9SX3NrZWxldG9uX2FsaWFzCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19iCisjZW5kaWYKKworLy8gc2xlZXAgPDEgPDEKKyN1bmRlZiBPUFRTVFJfc2xlZXAKKyNkZWZpbmUgT1BUU1RSX3NsZWVwICI8MSIKKyNpZmRlZiBDTEVBTlVQX3NsZWVwCisjdW5kZWYgQ0xFQU5VUF9zbGVlcAorI3VuZGVmIEZPUl9zbGVlcAorI2VuZGlmCisKKy8vIHNudHAgICA+MU0gOm0gOlNwOnQjPDA9MT4xNmFzZERxciM8ND4xNz0xMFshYXNdCisjdW5kZWYgT1BUU1RSX3NudHAKKyNkZWZpbmUgT1BUU1RSX3NudHAgIj4xTSA6bSA6U3A6dCM8MD0xPjE2YXNkRHFyIzw0PjE3PTEwWyFhc10iCisjaWZkZWYgQ0xFQU5VUF9zbnRwCisjdW5kZWYgQ0xFQU5VUF9zbnRwCisjdW5kZWYgRk9SX3NudHAKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX00KKyNlbmRpZgorCisvLyBzb3J0IGdTOlQ6bW86ayp0OnhWYk1DY3N6ZGZpcnVuIGdTOlQ6bW86ayp0OnhWYk1DY3N6ZGZpcnVuCisjdW5kZWYgT1BUU1RSX3NvcnQKKyNkZWZpbmUgT1BUU1RSX3NvcnQgImdTOlQ6bW86ayp0OnhWYk1DY3N6ZGZpcnVuIgorI2lmZGVmIENMRUFOVVBfc29ydAorI3VuZGVmIENMRUFOVVBfc29ydAorI3VuZGVmIEZPUl9zb3J0CisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR196CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19NCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19WCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19nCisjZW5kaWYKKworLy8gc291cmNlICAgPDEKKyN1bmRlZiBPUFRTVFJfc291cmNlCisjZGVmaW5lIE9QVFNUUl9zb3VyY2UgIjwxIgorI2lmZGVmIENMRUFOVVBfc291cmNlCisjdW5kZWYgQ0xFQU5VUF9zb3VyY2UKKyN1bmRlZiBGT1Jfc291cmNlCisjZW5kaWYKKworLy8gc3BsaXQgPjJhIzwxPTI+OWIjPDFsIzwxbiM8MVshYmxdWyFibl1bIWxuXSA+MmEjPDE9Mj45YiM8MWwjPDFuIzwxWyFibF1bIWJuXVshbG5dCisjdW5kZWYgT1BUU1RSX3NwbGl0CisjZGVmaW5lIE9QVFNUUl9zcGxpdCAiPjJhIzwxPTI+OWIjPDFsIzwxbiM8MVshYmxdWyFibl1bIWxuXSIKKyNpZmRlZiBDTEVBTlVQX3NwbGl0CisjdW5kZWYgQ0xFQU5VUF9zcGxpdAorI3VuZGVmIEZPUl9zcGxpdAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIHN0YXQgPDFjOihmb3JtYXQpZkx0IDwxYzooZm9ybWF0KWZMdAorI3VuZGVmIE9QVFNUUl9zdGF0CisjZGVmaW5lIE9QVFNUUl9zdGF0ICI8MWM6KGZvcm1hdClmTHQiCisjaWZkZWYgQ0xFQU5VUF9zdGF0CisjdW5kZWYgQ0xFQU5VUF9zdGF0CisjdW5kZWYgRk9SX3N0YXQKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBzdHJhY2UgICBecCNzI3YKKyN1bmRlZiBPUFRTVFJfc3RyYWNlCisjZGVmaW5lIE9QVFNUUl9zdHJhY2UgIl5wI3MjdiIKKyNpZmRlZiBDTEVBTlVQX3N0cmFjZQorI3VuZGVmIENMRUFOVVBfc3RyYWNlCisjdW5kZWYgRk9SX3N0cmFjZQorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIHN0cmluZ3MgdDphbiM9NDwxZm8gdDphbiM9NDwxZm8KKyN1bmRlZiBPUFRTVFJfc3RyaW5ncworI2RlZmluZSBPUFRTVFJfc3RyaW5ncyAidDphbiM9NDwxZm8iCisjaWZkZWYgQ0xFQU5VUF9zdHJpbmdzCisjdW5kZWYgQ0xFQU5VUF9zdHJpbmdzCisjdW5kZWYgRk9SX3N0cmluZ3MKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX3QKKyNlbmRpZgorCisvLyBzdHR5ID9hRjpnWyFhZ10gP2FGOmdbIWFnXQorI3VuZGVmIE9QVFNUUl9zdHR5CisjZGVmaW5lIE9QVFNUUl9zdHR5ICI/YUY6Z1shYWddIgorI2lmZGVmIENMRUFOVVBfc3R0eQorI3VuZGVmIENMRUFOVVBfc3R0eQorI3VuZGVmIEZPUl9zdHR5CisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gc3UgICBebG1wdTpnOmM6czpbIWxtcF0KKyN1bmRlZiBPUFRTVFJfc3UKKyNkZWZpbmUgT1BUU1RSX3N1ICJebG1wdTpnOmM6czpbIWxtcF0iCisjaWZkZWYgQ0xFQU5VUF9zdQorI3VuZGVmIENMRUFOVVBfc3UKKyN1bmRlZiBGT1Jfc3UKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBzdWxvZ2luICAgdCM8MD0wCisjdW5kZWYgT1BUU1RSX3N1bG9naW4KKyNkZWZpbmUgT1BUU1RSX3N1bG9naW4gInQjPDA9MCIKKyNpZmRlZiBDTEVBTlVQX3N1bG9naW4KKyN1bmRlZiBDTEVBTlVQX3N1bG9naW4KKyN1bmRlZiBGT1Jfc3Vsb2dpbgorI3VuZGVmIEZMQUdfdAorI2VuZGlmCisKKy8vIHN3YXBvZmYgPDE+MWF2IDwxPjFhdgorI3VuZGVmIE9QVFNUUl9zd2Fwb2ZmCisjZGVmaW5lIE9QVFNUUl9zd2Fwb2ZmICI8MT4xYXYiCisjaWZkZWYgQ0xFQU5VUF9zd2Fwb2ZmCisjdW5kZWYgQ0xFQU5VUF9zd2Fwb2ZmCisjdW5kZWYgRk9SX3N3YXBvZmYKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBzd2Fwb24gPDE+MXAjPDA+MzI3NjdkIDwxPjFwIzwwPjMyNzY3ZAorI3VuZGVmIE9QVFNUUl9zd2Fwb24KKyNkZWZpbmUgT1BUU1RSX3N3YXBvbiAiPDE+MXAjPDA+MzI3NjdkIgorI2lmZGVmIENMRUFOVVBfc3dhcG9uCisjdW5kZWYgQ0xFQU5VUF9zd2Fwb24KKyN1bmRlZiBGT1Jfc3dhcG9uCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19wCisjZW5kaWYKKworLy8gc3dpdGNoX3Jvb3QgICA8MmM6aAorI3VuZGVmIE9QVFNUUl9zd2l0Y2hfcm9vdAorI2RlZmluZSBPUFRTVFJfc3dpdGNoX3Jvb3QgIjwyYzpoIgorI2lmZGVmIENMRUFOVVBfc3dpdGNoX3Jvb3QKKyN1bmRlZiBDTEVBTlVQX3N3aXRjaF9yb290CisjdW5kZWYgRk9SX3N3aXRjaF9yb290CisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gc3luYyAgICAKKyN1bmRlZiBPUFRTVFJfc3luYworI2RlZmluZSBPUFRTVFJfc3luYyAwCisjaWZkZWYgQ0xFQU5VUF9zeW5jCisjdW5kZWYgQ0xFQU5VUF9zeW5jCisjdW5kZWYgRk9SX3N5bmMKKyNlbmRpZgorCisvLyBzeXNjdGwgXm5lTnF3cGFBWyFhcF1bIWFxXVshYXddWythQV0gXm5lTnF3cGFBWyFhcF1bIWFxXVshYXddWythQV0KKyN1bmRlZiBPUFRTVFJfc3lzY3RsCisjZGVmaW5lIE9QVFNUUl9zeXNjdGwgIl5uZU5xd3BhQVshYXBdWyFhcV1bIWF3XVsrYUFdIgorI2lmZGVmIENMRUFOVVBfc3lzY3RsCisjdW5kZWYgQ0xFQU5VUF9zeXNjdGwKKyN1bmRlZiBGT1Jfc3lzY3RsCisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19OCisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR19uCisjZW5kaWYKKworLy8gc3lzbG9nZCAgID4wbCM8MT44PThSOmIjPDA+OTk9MXMjPDA9MjAwbSM8MD43MTU4Mjc4Nz0yME86cDpmOmE6blNLTEQKKyN1bmRlZiBPUFRTVFJfc3lzbG9nZAorI2RlZmluZSBPUFRTVFJfc3lzbG9nZCAiPjBsIzwxPjg9OFI6YiM8MD45OT0xcyM8MD0yMDBtIzwwPjcxNTgyNzg3PTIwTzpwOmY6YTpuU0tMRCIKKyNpZmRlZiBDTEVBTlVQX3N5c2xvZ2QKKyN1bmRlZiBDTEVBTlVQX3N5c2xvZ2QKKyN1bmRlZiBGT1Jfc3lzbG9nZAorI3VuZGVmIEZMQUdfRAorI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfSworI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfTworI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfUgorI3VuZGVmIEZMQUdfbAorI2VuZGlmCisKKy8vIHRhYyAgICAKKyN1bmRlZiBPUFRTVFJfdGFjCisjZGVmaW5lIE9QVFNUUl90YWMgMAorI2lmZGVmIENMRUFOVVBfdGFjCisjdW5kZWYgQ0xFQU5VUF90YWMKKyN1bmRlZiBGT1JfdGFjCisjZW5kaWYKKworLy8gdGFpbCA/ZkZzOmMoYnl0ZXMpLW4obGluZXMpLVstY25dWy1mRl0gP2ZGczpjKGJ5dGVzKS1uKGxpbmVzKS1bLWNuXVstZkZdCisjdW5kZWYgT1BUU1RSX3RhaWwKKyNkZWZpbmUgT1BUU1RSX3RhaWwgIj9mRnM6YyhieXRlcyktbihsaW5lcyktWy1jbl1bLWZGXSIKKyNpZmRlZiBDTEVBTlVQX3RhaWwKKyN1bmRlZiBDTEVBTlVQX3RhaWwKKyN1bmRlZiBGT1JfdGFpbAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfRgorI3VuZGVmIEZMQUdfZgorI2VuZGlmCisKKy8vIHRhciAmKG9uZS1maWxlLXN5c3RlbSkobm8taWdub3JlLWNhc2UpKGlnbm9yZS1jYXNlKShuby1hbmNob3JlZCkoYW5jaG9yZWQpKG5vLXdpbGRjYXJkcykod2lsZGNhcmRzKShuby13aWxkY2FyZHMtbWF0Y2gtc2xhc2gpKHdpbGRjYXJkcy1tYXRjaC1zbGFzaCkoc2hvdy10cmFuc2Zvcm1lZC1uYW1lcykoc2VsaW51eCkocmVzdHJpY3QpKGZ1bGwtdGltZSkobm8tcmVjdXJzaW9uKShudWxsKShudW1lcmljLW93bmVyKShuby1zYW1lLXBlcm1pc3Npb25zKShvdmVyd3JpdGUpKGV4Y2x1ZGUpKihzb3J0KTs6KG1vZGUpOihtdGltZSk6KGdyb3VwKToob3duZXIpOih0by1jb21tYW5kKTp+KHN0cmlwLWNvbXBvbmVudHMpKHN0cmlwKSN+KHRyYW5zZm9ybSkoeGZvcm0pKm8obm8tc2FtZS1vd25lcilwKHNhbWUtcGVybWlzc2lvbnMpayhrZWVwLW9sZCljKGNyZWF0ZSl8aChkZXJlZmVyZW5jZSl4KGV4dHJhY3QpfHQobGlzdCl8dih2ZXJib3NlKUooeHopaihiemlwMil6KGd6aXApUyhzcGFyc2UpTyh0by1zdGRvdXQpUChhYnNvbHV0ZS1uYW1lcyltKHRvdWNoKVgoZXhjbHVkZS1mcm9tKSpUKGZpbGVzLWZyb20pKkkodXNlLWNvbXByZXNzLXByb2dyYW0pOkMoZGlyZWN0b3J5KTpmKGZpbGUpOmFzWyF0eGNdWyFqekphXSAmKG9uZS1maWxlLXN5c3RlbSkobm8taWdub3JlLWNhc2UpKGlnbm9yZS1jYXNlKShuby1hbmNob3JlZCkoYW5jaG9yZWQpKG5vLXdpbGRjYXJkcykod2lsZGNhcmRzKShuby13aWxkY2FyZHMtbWF0Y2gtc2xhc2gpKHdpbGRjYXJkcy1tYXRjaC1zbGFzaCkoc2hvdy10cmFuc2Zvcm1lZC1uYW1lcykoc2VsaW51eCkocmVzdHJpY3QpKGZ1bGwtdGltZSkobm8tcmVjdXJzaW9uKShudWxsKShudW1lcmljLW93bmVyKShuby1zYW1lLXBlcm1pc3Npb25zKShvdmVyd3JpdGUpKGV4Y2x1ZGUpKihzb3J0KTs6KG1vZGUpOihtdGltZSk6KGdyb3VwKToob3duZXIpOih0by1jb21tYW5kKTp+KHN0cmlwLWNvbXBvbmVudHMpKHN0cmlwKSN+KHRyYW5zZm9ybSkoeGZvcm0pKm8obm8tc2FtZS1vd25lcilwKHNhbWUtcGVybWlzc2lvbnMpayhrZWVwLW9sZCljKGNyZWF0ZSl8aChkZXJlZmVyZW5jZSl4KGV4dHJhY3QpfHQobGlzdCl8dih2ZXJib3NlKUooeHopaihiemlwMil6KGd6aXApUyhzcGFyc2UpTyh0by1zdGRvdXQpUChhYnNvbHV0ZS1uYW1lcyltKHRvdWNoKVgoZXhjbHVkZS1mcm9tKSpUKGZpbGVzLWZyb20pKkkodXNlLWNvbXByZXNzLXByb2dyYW0pOkMoZGlyZWN0b3J5KTpmKGZpbGUpOmFzWyF0eGNdWyFqekphXQorI3VuZGVmIE9QVFNUUl90YXIKKyNkZWZpbmUgT1BUU1RSX3RhciAiJihvbmUtZmlsZS1zeXN0ZW0pKG5vLWlnbm9yZS1jYXNlKShpZ25vcmUtY2FzZSkobm8tYW5jaG9yZWQpKGFuY2hvcmVkKShuby13aWxkY2FyZHMpKHdpbGRjYXJkcykobm8td2lsZGNhcmRzLW1hdGNoLXNsYXNoKSh3aWxkY2FyZHMtbWF0Y2gtc2xhc2gpKHNob3ctdHJhbnNmb3JtZWQtbmFtZXMpKHNlbGludXgpKHJlc3RyaWN0KShmdWxsLXRpbWUpKG5vLXJlY3Vyc2lvbikobnVsbCkobnVtZXJpYy1vd25lcikobm8tc2FtZS1wZXJtaXNzaW9ucykob3ZlcndyaXRlKShleGNsdWRlKSooc29ydCk7Oihtb2RlKToobXRpbWUpOihncm91cCk6KG93bmVyKToodG8tY29tbWFuZCk6fihzdHJpcC1jb21wb25lbnRzKShzdHJpcCkjfih0cmFuc2Zvcm0pKHhmb3JtKSpvKG5vLXNhbWUtb3duZXIpcChzYW1lLXBlcm1pc3Npb25zKWsoa2VlcC1vbGQpYyhjcmVhdGUpfGgoZGVyZWZlcmVuY2UpeChleHRyYWN0KXx0KGxpc3QpfHYodmVyYm9zZSlKKHh6KWooYnppcDIpeihnemlwKVMoc3BhcnNlKU8odG8tc3Rkb3V0KVAoYWJzb2x1dGUtbmFtZXMpbSh0b3VjaClYKGV4Y2x1ZGUtZnJvbSkqVChmaWxlcy1mcm9tKSpJKHVzZS1jb21wcmVzcy1wcm9ncmFtKTpDKGRpcmVjdG9yeSk6ZihmaWxlKTphc1shdHhjXVshanpKYV0iCisjaWZkZWYgQ0xFQU5VUF90YXIKKyN1bmRlZiBDTEVBTlVQX3RhcgorI3VuZGVmIEZPUl90YXIKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX0kKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX1gKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX08KKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX2oKKyN1bmRlZiBGTEFHX0oKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX3hmb3JtCisjdW5kZWYgRkxBR19zdHJpcAorI3VuZGVmIEZMQUdfdG9fY29tbWFuZAorI3VuZGVmIEZMQUdfb3duZXIKKyN1bmRlZiBGTEFHX2dyb3VwCisjdW5kZWYgRkxBR19tdGltZQorI3VuZGVmIEZMQUdfbW9kZQorI3VuZGVmIEZMQUdfc29ydAorI3VuZGVmIEZMQUdfZXhjbHVkZQorI3VuZGVmIEZMQUdfb3ZlcndyaXRlCisjdW5kZWYgRkxBR19ub19zYW1lX3Blcm1pc3Npb25zCisjdW5kZWYgRkxBR19udW1lcmljX293bmVyCisjdW5kZWYgRkxBR19udWxsCisjdW5kZWYgRkxBR19ub19yZWN1cnNpb24KKyN1bmRlZiBGTEFHX2Z1bGxfdGltZQorI3VuZGVmIEZMQUdfcmVzdHJpY3QKKyN1bmRlZiBGTEFHX3NlbGludXgKKyN1bmRlZiBGTEFHX3Nob3dfdHJhbnNmb3JtZWRfbmFtZXMKKyN1bmRlZiBGTEFHX3dpbGRjYXJkc19tYXRjaF9zbGFzaAorI3VuZGVmIEZMQUdfbm9fd2lsZGNhcmRzX21hdGNoX3NsYXNoCisjdW5kZWYgRkxBR193aWxkY2FyZHMKKyN1bmRlZiBGTEFHX25vX3dpbGRjYXJkcworI3VuZGVmIEZMQUdfYW5jaG9yZWQKKyN1bmRlZiBGTEFHX25vX2FuY2hvcmVkCisjdW5kZWYgRkxBR19pZ25vcmVfY2FzZQorI3VuZGVmIEZMQUdfbm9faWdub3JlX2Nhc2UKKyN1bmRlZiBGTEFHX29uZV9maWxlX3N5c3RlbQorI2VuZGlmCisKKy8vIHRhc2tzZXQgPDFecGEgPDFecGEKKyN1bmRlZiBPUFRTVFJfdGFza3NldAorI2RlZmluZSBPUFRTVFJfdGFza3NldCAiPDFecGEiCisjaWZkZWYgQ0xFQU5VUF90YXNrc2V0CisjdW5kZWYgQ0xFQU5VUF90YXNrc2V0CisjdW5kZWYgRk9SX3Rhc2tzZXQKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyB0Y3BzdmQgICBePDNjIz0zMDwxYiM9MjA8MEM6dTpsOmhFdgorI3VuZGVmIE9QVFNUUl90Y3BzdmQKKyNkZWZpbmUgT1BUU1RSX3RjcHN2ZCAiXjwzYyM9MzA8MWIjPTIwPDBDOnU6bDpoRXYiCisjaWZkZWYgQ0xFQU5VUF90Y3BzdmQKKyN1bmRlZiBDTEVBTlVQX3RjcHN2ZAorI3VuZGVmIEZPUl90Y3BzdmQKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX0UKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyB0ZWUgaWEgaWEKKyN1bmRlZiBPUFRTVFJfdGVlCisjZGVmaW5lIE9QVFNUUl90ZWUgImlhIgorI2lmZGVmIENMRUFOVVBfdGVlCisjdW5kZWYgQ0xFQU5VUF90ZWUKKyN1bmRlZiBGT1JfdGVlCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19pCisjZW5kaWYKKworLy8gdGVsbmV0ICAgPDE+MgorI3VuZGVmIE9QVFNUUl90ZWxuZXQKKyNkZWZpbmUgT1BUU1RSX3RlbG5ldCAiPDE+MiIKKyNpZmRlZiBDTEVBTlVQX3RlbG5ldAorI3VuZGVmIENMRUFOVVBfdGVsbmV0CisjdW5kZWYgRk9SX3RlbG5ldAorI2VuZGlmCisKKy8vIHRlbG5ldGQgICB3IzwwYjpwIzwwPjY1NTM1PTIzZjpsOkZTS2lbIXdpXQorI3VuZGVmIE9QVFNUUl90ZWxuZXRkCisjZGVmaW5lIE9QVFNUUl90ZWxuZXRkICJ3IzwwYjpwIzwwPjY1NTM1PTIzZjpsOkZTS2lbIXdpXSIKKyNpZmRlZiBDTEVBTlVQX3RlbG5ldGQKKyN1bmRlZiBDTEVBTlVQX3RlbG5ldGQKKyN1bmRlZiBGT1JfdGVsbmV0ZAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfSworI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfRgorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfdworI2VuZGlmCisKKy8vIHRlc3QgICAgCisjdW5kZWYgT1BUU1RSX3Rlc3QKKyNkZWZpbmUgT1BUU1RSX3Rlc3QgMAorI2lmZGVmIENMRUFOVVBfdGVzdAorI3VuZGVmIENMRUFOVVBfdGVzdAorI3VuZGVmIEZPUl90ZXN0CisjZW5kaWYKKworLy8gdGZ0cCAgIDwxYiM8OD42NTQ2NHI6bDpnfHB8WyFncF0KKyN1bmRlZiBPUFRTVFJfdGZ0cAorI2RlZmluZSBPUFRTVFJfdGZ0cCAiPDFiIzw4PjY1NDY0cjpsOmd8cHxbIWdwXSIKKyNpZmRlZiBDTEVBTlVQX3RmdHAKKyN1bmRlZiBDTEVBTlVQX3RmdHAKKyN1bmRlZiBGT1JfdGZ0cAorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIHRmdHBkICAgcmN1OmwKKyN1bmRlZiBPUFRTVFJfdGZ0cGQKKyNkZWZpbmUgT1BUU1RSX3RmdHBkICJyY3U6bCIKKyNpZmRlZiBDTEVBTlVQX3RmdHBkCisjdW5kZWYgQ0xFQU5VUF90ZnRwZAorI3VuZGVmIEZPUl90ZnRwZAorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfcgorI2VuZGlmCisKKy8vIHRpbWUgPDFecHZbLXB2XSA8MV5wdlstcHZdCisjdW5kZWYgT1BUU1RSX3RpbWUKKyNkZWZpbmUgT1BUU1RSX3RpbWUgIjwxXnB2Wy1wdl0iCisjaWZkZWYgQ0xFQU5VUF90aW1lCisjdW5kZWYgQ0xFQU5VUF90aW1lCisjdW5kZWYgRk9SX3RpbWUKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyB0aW1lb3V0IDwyXihmb3JlZ3JvdW5kKShwcmVzZXJ2ZS1zdGF0dXMpdms6cyhzaWduYWwpOmkgPDJeKGZvcmVncm91bmQpKHByZXNlcnZlLXN0YXR1cyl2azpzKHNpZ25hbCk6aQorI3VuZGVmIE9QVFNUUl90aW1lb3V0CisjZGVmaW5lIE9QVFNUUl90aW1lb3V0ICI8Ml4oZm9yZWdyb3VuZCkocHJlc2VydmUtc3RhdHVzKXZrOnMoc2lnbmFsKTppIgorI2lmZGVmIENMRUFOVVBfdGltZW91dAorI3VuZGVmIENMRUFOVVBfdGltZW91dAorI3VuZGVmIEZPUl90aW1lb3V0CisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19wcmVzZXJ2ZV9zdGF0dXMKKyN1bmRlZiBGTEFHX2ZvcmVncm91bmQKKyNlbmRpZgorCisvLyB0b3AgPjBPKmhIaypvKnAqdSpzIzwxZCU8MTAwPTMwMDBtI24jPDFicVshb09dID4wTypoSGsqbypwKnUqcyM8MWQlPDEwMD0zMDAwbSNuIzwxYnFbIW9PXQorI3VuZGVmIE9QVFNUUl90b3AKKyNkZWZpbmUgT1BUU1RSX3RvcCAiPjBPKmhIaypvKnAqdSpzIzwxZCU8MTAwPTMwMDBtI24jPDFicVshb09dIgorI2lmZGVmIENMRUFOVVBfdG9wCisjdW5kZWYgQ0xFQU5VUF90b3AKKyN1bmRlZiBGT1JfdG9wCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19PCisjZW5kaWYKKworLy8gdG91Y2ggPDFhY2Q6Zm1yOnQ6aFshZHRyXSA8MWFjZDpmbXI6dDpoWyFkdHJdCisjdW5kZWYgT1BUU1RSX3RvdWNoCisjZGVmaW5lIE9QVFNUUl90b3VjaCAiPDFhY2Q6Zm1yOnQ6aFshZHRyXSIKKyNpZmRlZiBDTEVBTlVQX3RvdWNoCisjdW5kZWYgQ0xFQU5VUF90b3VjaAorI3VuZGVmIEZPUl90b3VjaAorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIHRveWJveCAgICAKKyN1bmRlZiBPUFRTVFJfdG95Ym94CisjZGVmaW5lIE9QVFNUUl90b3lib3ggMAorI2lmZGVmIENMRUFOVVBfdG95Ym94CisjdW5kZWYgQ0xFQU5VUF90b3lib3gKKyN1bmRlZiBGT1JfdG95Ym94CisjZW5kaWYKKworLy8gdHIgXjwxPjJDY3N0ZFsrY0NdIF48MT4yQ2NzdGRbK2NDXQorI3VuZGVmIE9QVFNUUl90cgorI2RlZmluZSBPUFRTVFJfdHIgIl48MT4yQ2NzdGRbK2NDXSIKKyNpZmRlZiBDTEVBTlVQX3RyCisjdW5kZWYgQ0xFQU5VUF90cgorI3VuZGVmIEZPUl90cgorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfQworI2VuZGlmCisKKy8vIHRyYWNlcm91dGUgPDE+Mmk6ZiM8MT4yNTU9MXojPDA+ODY0MDA9MGcqdyM8MD44NjQwMD01dCM8MD4yNTU9MHM6cSM8MT4yNTU9M3AjPDE+NjU1MzU9MzM0MzRtIzwxPjI1NT0zMHJ2bmRsSVVGNjQgPDE+Mmk6ZiM8MT4yNTU9MXojPDA+ODY0MDA9MGcqdyM8MD44NjQwMD01dCM8MD4yNTU9MHM6cSM8MT4yNTU9M3AjPDE+NjU1MzU9MzM0MzRtIzwxPjI1NT0zMHJ2bmRsSVVGNjQKKyN1bmRlZiBPUFRTVFJfdHJhY2Vyb3V0ZQorI2RlZmluZSBPUFRTVFJfdHJhY2Vyb3V0ZSAiPDE+Mmk6ZiM8MT4yNTU9MXojPDA+ODY0MDA9MGcqdyM8MD44NjQwMD01dCM8MD4yNTU9MHM6cSM8MT4yNTU9M3AjPDE+NjU1MzU9MzM0MzRtIzwxPjI1NT0zMHJ2bmRsSVVGNjQiCisjaWZkZWYgQ0xFQU5VUF90cmFjZXJvdXRlCisjdW5kZWYgQ0xFQU5VUF90cmFjZXJvdXRlCisjdW5kZWYgRk9SX3RyYWNlcm91dGUKKyN1bmRlZiBGTEFHXzQKKyN1bmRlZiBGTEFHXzYKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX0kKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2kKKyNlbmRpZgorCisvLyB0cnVlICAgIAorI3VuZGVmIE9QVFNUUl90cnVlCisjZGVmaW5lIE9QVFNUUl90cnVlIDAKKyNpZmRlZiBDTEVBTlVQX3RydWUKKyN1bmRlZiBDTEVBTlVQX3RydWUKKyN1bmRlZiBGT1JfdHJ1ZQorI2VuZGlmCisKKy8vIHRydW5jYXRlIDwxczp8YyA8MXM6fGMKKyN1bmRlZiBPUFRTVFJfdHJ1bmNhdGUKKyNkZWZpbmUgT1BUU1RSX3RydW5jYXRlICI8MXM6fGMiCisjaWZkZWYgQ0xFQU5VUF90cnVuY2F0ZQorI3VuZGVmIENMRUFOVVBfdHJ1bmNhdGUKKyN1bmRlZiBGT1JfdHJ1bmNhdGUKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyB0cyAgIGltcworI3VuZGVmIE9QVFNUUl90cworI2RlZmluZSBPUFRTVFJfdHMgImltcyIKKyNpZmRlZiBDTEVBTlVQX3RzCisjdW5kZWYgQ0xFQU5VUF90cworI3VuZGVmIEZPUl90cworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfaQorI2VuZGlmCisKKy8vIHRzb3J0ICAgPjEKKyN1bmRlZiBPUFRTVFJfdHNvcnQKKyNkZWZpbmUgT1BUU1RSX3Rzb3J0ICI+MSIKKyNpZmRlZiBDTEVBTlVQX3Rzb3J0CisjdW5kZWYgQ0xFQU5VUF90c29ydAorI3VuZGVmIEZPUl90c29ydAorI2VuZGlmCisKKy8vIHR0eSBzIHMKKyN1bmRlZiBPUFRTVFJfdHR5CisjZGVmaW5lIE9QVFNUUl90dHkgInMiCisjaWZkZWYgQ0xFQU5VUF90dHkKKyN1bmRlZiBDTEVBTlVQX3R0eQorI3VuZGVmIEZPUl90dHkKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyB0dW5jdGwgPDE+MXR8ZHx1OlRbIXRkXSA8MT4xdHxkfHU6VFshdGRdCisjdW5kZWYgT1BUU1RSX3R1bmN0bAorI2RlZmluZSBPUFRTVFJfdHVuY3RsICI8MT4xdHxkfHU6VFshdGRdIgorI2lmZGVmIENMRUFOVVBfdHVuY3RsCisjdW5kZWYgQ0xFQU5VUF90dW5jdGwKKyN1bmRlZiBGT1JfdHVuY3RsCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR190CisjZW5kaWYKKworLy8gdWNsYW1wc2V0IHAjYW0jPC0xPjEwMjRNIzwtMT4xMDI0UiBwI2FtIzwtMT4xMDI0TSM8LTE+MTAyNFIKKyN1bmRlZiBPUFRTVFJfdWNsYW1wc2V0CisjZGVmaW5lIE9QVFNUUl91Y2xhbXBzZXQgInAjYW0jPC0xPjEwMjRNIzwtMT4xMDI0UiIKKyNpZmRlZiBDTEVBTlVQX3VjbGFtcHNldAorI3VuZGVmIENMRUFOVVBfdWNsYW1wc2V0CisjdW5kZWYgRk9SX3VjbGFtcHNldAorI3VuZGVmIEZMQUdfUgorI3VuZGVmIEZMQUdfTQorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIHVsaW1pdCA+MVAjPDFTSGF2dXRzclJxcG5tbGlmZWRjWy1TSF1bIWFwdnV0c3JScW5tbGlmZWRjXSA+MVAjPDFTSGF2dXRzclJxcG5tbGlmZWRjWy1TSF1bIWFwdnV0c3JScW5tbGlmZWRjXQorI3VuZGVmIE9QVFNUUl91bGltaXQKKyNkZWZpbmUgT1BUU1RSX3VsaW1pdCAiPjFQIzwxU0hhdnV0c3JScXBubWxpZmVkY1stU0hdWyFhcHZ1dHNyUnFubWxpZmVkY10iCisjaWZkZWYgQ0xFQU5VUF91bGltaXQKKyN1bmRlZiBDTEVBTlVQX3VsaW1pdAorI3VuZGVmIEZPUl91bGltaXQKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX1AKKyNlbmRpZgorCisvLyB1bW91bnQgY25kRGZscmF0KnZbIW5hXSBjbmREZmxyYXQqdlshbmFdCisjdW5kZWYgT1BUU1RSX3Vtb3VudAorI2RlZmluZSBPUFRTVFJfdW1vdW50ICJjbmREZmxyYXQqdlshbmFdIgorI2lmZGVmIENMRUFOVVBfdW1vdW50CisjdW5kZWYgQ0xFQU5VUF91bW91bnQKKyN1bmRlZiBGT1JfdW1vdW50CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gdW5hbWUgcGFvbXZybnMgcGFvbXZybnMKKyN1bmRlZiBPUFRTVFJfdW5hbWUKKyNkZWZpbmUgT1BUU1RSX3VuYW1lICJwYW9tdnJucyIKKyNpZmRlZiBDTEVBTlVQX3VuYW1lCisjdW5kZWYgQ0xFQU5VUF91bmFtZQorI3VuZGVmIEZPUl91bmFtZQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIHVuaWNvZGUgICA8MQorI3VuZGVmIE9QVFNUUl91bmljb2RlCisjZGVmaW5lIE9QVFNUUl91bmljb2RlICI8MSIKKyNpZmRlZiBDTEVBTlVQX3VuaWNvZGUKKyN1bmRlZiBDTEVBTlVQX3VuaWNvZGUKKyN1bmRlZiBGT1JfdW5pY29kZQorI2VuZGlmCisKKy8vIHVuaXEgZiNzI3cjemljZHUgZiNzI3cjemljZHUKKyN1bmRlZiBPUFRTVFJfdW5pcQorI2RlZmluZSBPUFRTVFJfdW5pcSAiZiNzI3cjemljZHUiCisjaWZkZWYgQ0xFQU5VUF91bmlxCisjdW5kZWYgQ0xFQU5VUF91bmlxCisjdW5kZWYgRk9SX3VuaXEKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyB1bml4MmRvcyAgICAKKyN1bmRlZiBPUFRTVFJfdW5peDJkb3MKKyNkZWZpbmUgT1BUU1RSX3VuaXgyZG9zIDAKKyNpZmRlZiBDTEVBTlVQX3VuaXgyZG9zCisjdW5kZWYgQ0xFQU5VUF91bml4MmRvcworI3VuZGVmIEZPUl91bml4MmRvcworI2VuZGlmCisKKy8vIHVubGluayA8MT4xIDwxPjEKKyN1bmRlZiBPUFRTVFJfdW5saW5rCisjZGVmaW5lIE9QVFNUUl91bmxpbmsgIjwxPjEiCisjaWZkZWYgQ0xFQU5VUF91bmxpbmsKKyN1bmRlZiBDTEVBTlVQX3VubGluaworI3VuZGVmIEZPUl91bmxpbmsKKyNlbmRpZgorCisvLyB1bnNldCAgIGZ2blshZnZdCisjdW5kZWYgT1BUU1RSX3Vuc2V0CisjZGVmaW5lIE9QVFNUUl91bnNldCAiZnZuWyFmdl0iCisjaWZkZWYgQ0xFQU5VUF91bnNldAorI3VuZGVmIENMRUFOVVBfdW5zZXQKKyN1bmRlZiBGT1JfdW5zZXQKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyB1bnNoYXJlIDwxXmEoYWxsKWYoZm9yaylyKG1hcC1yb290LXVzZXIpQyhjZ3JvdXApOjsgaShpcGMpOjsgbShtb3VudCk6OyBuKG5ldCk6OyBwKHBpZCk6OyB1KHV0cyk6OyBVKHVzZXIpOjsgIDwxXmEoYWxsKWYoZm9yaylyKG1hcC1yb290LXVzZXIpQyhjZ3JvdXApOjsgaShpcGMpOjsgbShtb3VudCk6OyBuKG5ldCk6OyBwKHBpZCk6OyB1KHV0cyk6OyBVKHVzZXIpOjsgCisjdW5kZWYgT1BUU1RSX3Vuc2hhcmUKKyNkZWZpbmUgT1BUU1RSX3Vuc2hhcmUgIjwxXmEoYWxsKWYoZm9yaylyKG1hcC1yb290LXVzZXIpQyhjZ3JvdXApOjsgaShpcGMpOjsgbShtb3VudCk6OyBuKG5ldCk6OyBwKHBpZCk6OyB1KHV0cyk6OyBVKHVzZXIpOjsgIgorI2lmZGVmIENMRUFOVVBfdW5zaGFyZQorI3VuZGVmIENMRUFOVVBfdW5zaGFyZQorI3VuZGVmIEZPUl91bnNoYXJlCisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gdXB0aW1lID4wcHMgPjBwcworI3VuZGVmIE9QVFNUUl91cHRpbWUKKyNkZWZpbmUgT1BUU1RSX3VwdGltZSAiPjBwcyIKKyNpZmRlZiBDTEVBTlVQX3VwdGltZQorI3VuZGVmIENMRUFOVVBfdXB0aW1lCisjdW5kZWYgRk9SX3VwdGltZQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIHVzZXJhZGQgICA8MT4ydSM8MEc6czpnOmg6U0RICisjdW5kZWYgT1BUU1RSX3VzZXJhZGQKKyNkZWZpbmUgT1BUU1RSX3VzZXJhZGQgIjwxPjJ1IzwwRzpzOmc6aDpTREgiCisjaWZkZWYgQ0xFQU5VUF91c2VyYWRkCisjdW5kZWYgQ0xFQU5VUF91c2VyYWRkCisjdW5kZWYgRk9SX3VzZXJhZGQKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX0cKKyN1bmRlZiBGTEFHX3UKKyNlbmRpZgorCisvLyB1c2VyZGVsICAgPDE+MXIKKyN1bmRlZiBPUFRTVFJfdXNlcmRlbAorI2RlZmluZSBPUFRTVFJfdXNlcmRlbCAiPDE+MXIiCisjaWZkZWYgQ0xFQU5VUF91c2VyZGVsCisjdW5kZWYgQ0xFQU5VUF91c2VyZGVsCisjdW5kZWYgRk9SX3VzZXJkZWwKKyN1bmRlZiBGTEFHX3IKKyNlbmRpZgorCisvLyB1c2xlZXAgPDE+MSA8MT4xCisjdW5kZWYgT1BUU1RSX3VzbGVlcAorI2RlZmluZSBPUFRTVFJfdXNsZWVwICI8MT4xIgorI2lmZGVmIENMRUFOVVBfdXNsZWVwCisjdW5kZWYgQ0xFQU5VUF91c2xlZXAKKyN1bmRlZiBGT1JfdXNsZWVwCisjZW5kaWYKKworLy8gdXVkZWNvZGUgPjFvOiA+MW86CisjdW5kZWYgT1BUU1RSX3V1ZGVjb2RlCisjZGVmaW5lIE9QVFNUUl91dWRlY29kZSAiPjFvOiIKKyNpZmRlZiBDTEVBTlVQX3V1ZGVjb2RlCisjdW5kZWYgQ0xFQU5VUF91dWRlY29kZQorI3VuZGVmIEZPUl91dWRlY29kZQorI3VuZGVmIEZMQUdfbworI2VuZGlmCisKKy8vIHV1ZW5jb2RlIDwxPjJtIDwxPjJtCisjdW5kZWYgT1BUU1RSX3V1ZW5jb2RlCisjZGVmaW5lIE9QVFNUUl91dWVuY29kZSAiPDE+Mm0iCisjaWZkZWYgQ0xFQU5VUF91dWVuY29kZQorI3VuZGVmIENMRUFOVVBfdXVlbmNvZGUKKyN1bmRlZiBGT1JfdXVlbmNvZGUKKyN1bmRlZiBGTEFHX20KKyNlbmRpZgorCisvLyB1dWlkZ2VuID4wcihyYW5kb20pID4wcihyYW5kb20pCisjdW5kZWYgT1BUU1RSX3V1aWRnZW4KKyNkZWZpbmUgT1BUU1RSX3V1aWRnZW4gIj4wcihyYW5kb20pIgorI2lmZGVmIENMRUFOVVBfdXVpZGdlbgorI3VuZGVmIENMRUFOVVBfdXVpZGdlbgorI3VuZGVmIEZPUl91dWlkZ2VuCisjdW5kZWYgRkxBR19yCisjZW5kaWYKKworLy8gdmNvbmZpZyA8Mj40IDwyPjQKKyN1bmRlZiBPUFRTVFJfdmNvbmZpZworI2RlZmluZSBPUFRTVFJfdmNvbmZpZyAiPDI+NCIKKyNpZmRlZiBDTEVBTlVQX3Zjb25maWcKKyN1bmRlZiBDTEVBTlVQX3Zjb25maWcKKyN1bmRlZiBGT1JfdmNvbmZpZworI2VuZGlmCisKKy8vIHZpID4xczogPjFzOgorI3VuZGVmIE9QVFNUUl92aQorI2RlZmluZSBPUFRTVFJfdmkgIj4xczoiCisjaWZkZWYgQ0xFQU5VUF92aQorI3VuZGVmIENMRUFOVVBfdmkKKyN1bmRlZiBGT1JfdmkKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyB2bXN0YXQgPjJuID4ybgorI3VuZGVmIE9QVFNUUl92bXN0YXQKKyNkZWZpbmUgT1BUU1RSX3Ztc3RhdCAiPjJuIgorI2lmZGVmIENMRUFOVVBfdm1zdGF0CisjdW5kZWYgQ0xFQU5VUF92bXN0YXQKKyN1bmRlZiBGT1Jfdm1zdGF0CisjdW5kZWYgRkxBR19uCisjZW5kaWYKKworLy8gdyAgICAKKyN1bmRlZiBPUFRTVFJfdworI2RlZmluZSBPUFRTVFJfdyAwCisjaWZkZWYgQ0xFQU5VUF93CisjdW5kZWYgQ0xFQU5VUF93CisjdW5kZWYgRk9SX3cKKyNlbmRpZgorCisvLyB3YWl0ICAgbgorI3VuZGVmIE9QVFNUUl93YWl0CisjZGVmaW5lIE9QVFNUUl93YWl0ICJuIgorI2lmZGVmIENMRUFOVVBfd2FpdAorI3VuZGVmIENMRUFOVVBfd2FpdAorI3VuZGVmIEZPUl93YWl0CisjdW5kZWYgRkxBR19uCisjZW5kaWYKKworLy8gd2F0Y2ggXjwxbiU8MTAwPTIwMDB0ZWJ4IF48MW4lPDEwMD0yMDAwdGVieAorI3VuZGVmIE9QVFNUUl93YXRjaAorI2RlZmluZSBPUFRTVFJfd2F0Y2ggIl48MW4lPDEwMD0yMDAwdGVieCIKKyNpZmRlZiBDTEVBTlVQX3dhdGNoCisjdW5kZWYgQ0xFQU5VUF93YXRjaAorI3VuZGVmIEZPUl93YXRjaAorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIHdhdGNoZG9nICAgPDE+MUZ0Iz00PDFUIz02MDwxCisjdW5kZWYgT1BUU1RSX3dhdGNoZG9nCisjZGVmaW5lIE9QVFNUUl93YXRjaGRvZyAiPDE+MUZ0Iz00PDFUIz02MDwxIgorI2lmZGVmIENMRUFOVVBfd2F0Y2hkb2cKKyN1bmRlZiBDTEVBTlVQX3dhdGNoZG9nCisjdW5kZWYgRk9SX3dhdGNoZG9nCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19GCisjZW5kaWYKKworLy8gd2MgTGNtd2wgTGNtd2wKKyN1bmRlZiBPUFRTVFJfd2MKKyNkZWZpbmUgT1BUU1RSX3djICJMY213bCIKKyNpZmRlZiBDTEVBTlVQX3djCisjdW5kZWYgQ0xFQU5VUF93YworI3VuZGVmIEZPUl93YworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfTAorI2VuZGlmCisKKy8vIHdnZXQgICA8MT4xKG1heC1yZWRpcmVjdCkjPDA9MjBkKGRlYnVnKU8ob3V0cHV0LWRvY3VtZW50KTpwKHBvc3QtZGF0YSk6CisjdW5kZWYgT1BUU1RSX3dnZXQKKyNkZWZpbmUgT1BUU1RSX3dnZXQgIjwxPjEobWF4LXJlZGlyZWN0KSM8MD0yMGQoZGVidWcpTyhvdXRwdXQtZG9jdW1lbnQpOnAocG9zdC1kYXRhKToiCisjaWZkZWYgQ0xFQU5VUF93Z2V0CisjdW5kZWYgQ0xFQU5VUF93Z2V0CisjdW5kZWYgRk9SX3dnZXQKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX08KKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX21heF9yZWRpcmVjdAorI2VuZGlmCisKKy8vIHdoaWNoIDwxYSA8MWEKKyN1bmRlZiBPUFRTVFJfd2hpY2gKKyNkZWZpbmUgT1BUU1RSX3doaWNoICI8MWEiCisjaWZkZWYgQ0xFQU5VUF93aGljaAorI3VuZGVmIENMRUFOVVBfd2hpY2gKKyN1bmRlZiBGT1Jfd2hpY2gKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyB3aG8gICBhCisjdW5kZWYgT1BUU1RSX3dobworI2RlZmluZSBPUFRTVFJfd2hvICJhIgorI2lmZGVmIENMRUFOVVBfd2hvCisjdW5kZWYgQ0xFQU5VUF93aG8KKyN1bmRlZiBGT1Jfd2hvCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8geGFyZ3MgXkU6UCM8MChudWxsKT0xb3B0cihuby1ydW4taWYtZW1wdHkpbiM8MShtYXgtYXJncylzIzBbITBFXSBeRTpQIzwwKG51bGwpPTFvcHRyKG5vLXJ1bi1pZi1lbXB0eSluIzwxKG1heC1hcmdzKXMjMFshMEVdCisjdW5kZWYgT1BUU1RSX3hhcmdzCisjZGVmaW5lIE9QVFNUUl94YXJncyAiXkU6UCM8MChudWxsKT0xb3B0cihuby1ydW4taWYtZW1wdHkpbiM8MShtYXgtYXJncylzIzBbITBFXSIKKyNpZmRlZiBDTEVBTlVQX3hhcmdzCisjdW5kZWYgQ0xFQU5VUF94YXJncworI3VuZGVmIEZPUl94YXJncworI3VuZGVmIEZMQUdfMAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfRQorI2VuZGlmCisKKy8vIHh4ZCA+MWMjPDA+MjU2bCNvI2cjPDA9MmVpcHJzI1shcnNdWyFyZV0gPjFjIzwwPjI1NmwjbyNnIzwwPTJlaXBycyNbIXJzXVshcmVdCisjdW5kZWYgT1BUU1RSX3h4ZAorI2RlZmluZSBPUFRTVFJfeHhkICI+MWMjPDA+MjU2bCNvI2cjPDA9MmVpcHJzI1shcnNdWyFyZV0iCisjaWZkZWYgQ0xFQU5VUF94eGQKKyN1bmRlZiBDTEVBTlVQX3h4ZAorI3VuZGVmIEZPUl94eGQKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyB4emNhdCAgICAKKyN1bmRlZiBPUFRTVFJfeHpjYXQKKyNkZWZpbmUgT1BUU1RSX3h6Y2F0IDAKKyNpZmRlZiBDTEVBTlVQX3h6Y2F0CisjdW5kZWYgQ0xFQU5VUF94emNhdAorI3VuZGVmIEZPUl94emNhdAorI2VuZGlmCisKKy8vIHllcyAgICAKKyN1bmRlZiBPUFRTVFJfeWVzCisjZGVmaW5lIE9QVFNUUl95ZXMgMAorI2lmZGVmIENMRUFOVVBfeWVzCisjdW5kZWYgQ0xFQU5VUF95ZXMKKyN1bmRlZiBGT1JfeWVzCisjZW5kaWYKKworLy8gemNhdCBjZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XSBjZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XQorI3VuZGVmIE9QVFNUUl96Y2F0CisjZGVmaW5lIE9QVFNUUl96Y2F0ICJjZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XSIKKyNpZmRlZiBDTEVBTlVQX3pjYXQKKyN1bmRlZiBDTEVBTlVQX3pjYXQKKyN1bmRlZiBGT1JfemNhdAorI3VuZGVmIEZMQUdfOQorI3VuZGVmIEZMQUdfOAorI3VuZGVmIEZMQUdfNworI3VuZGVmIEZMQUdfNgorI3VuZGVmIEZMQUdfNQorI3VuZGVmIEZMQUdfNAorI3VuZGVmIEZMQUdfMworI3VuZGVmIEZMQUdfMgorI3VuZGVmIEZMQUdfMQorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYworI2VuZGlmCisKKyNpZmRlZiBGT1JfYWNwaQorI2RlZmluZSBDTEVBTlVQX2FjcGkKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5hY3BpCisjZW5kaWYKKyNkZWZpbmUgRkxBR19WICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19iICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYXJjaAorI2RlZmluZSBDTEVBTlVQX2FyY2gKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5hcmNoCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2FycAorI2RlZmluZSBDTEVBTlVQX2FycAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmFycAorI2VuZGlmCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfQSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfRCAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDkpCisjZW5kaWYKKworI2lmZGVmIEZPUl9hcnBpbmcKKyNkZWZpbmUgQ0xFQU5VUF9hcnBpbmcKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5hcnBpbmcKKyNlbmRpZgorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX0QgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX1UgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX0kgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYXNjaWkKKyNkZWZpbmUgQ0xFQU5VUF9hc2NpaQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmFzY2lpCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Jhc2UzMgorI2RlZmluZSBDTEVBTlVQX2Jhc2UzMgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJhc2UzMgorI2VuZGlmCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9iYXNlNjQKKyNkZWZpbmUgQ0xFQU5VUF9iYXNlNjQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5iYXNlNjQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3cgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19pICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYmFzZW5hbWUKKyNkZWZpbmUgQ0xFQU5VUF9iYXNlbmFtZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJhc2VuYW1lCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zICgxTEw8PDApCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYmMKKyNkZWZpbmUgQ0xFQU5VUF9iYworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJjCisjZW5kaWYKKyNkZWZpbmUgRkxBR193IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Jsa2Rpc2NhcmQKKyNkZWZpbmUgQ0xFQU5VUF9ibGtkaXNjYXJkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuYmxrZGlzY2FyZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfeiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3MgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Jsa2lkCisjZGVmaW5lIENMRUFOVVBfYmxraWQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ibGtpZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX28gKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19MICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfVSAoMUxMPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYmxvY2tkZXYKKyNkZWZpbmUgQ0xFQU5VUF9ibG9ja2RldgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJsb2NrZGV2CisjZW5kaWYKKyNkZWZpbmUgRkxBR19yZXJlYWRwdCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2ZsdXNoYnVmcyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3NldHJhICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfZ2V0cmEgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19nZXRzaXplNjQgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19nZXRzaXplICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfZ2V0c3ogKDFMTDw8NikKKyNkZWZpbmUgRkxBR19zZXRic3ogKDFMTDw8NykKKyNkZWZpbmUgRkxBR19nZXRic3ogKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19nZXRzcyAoMUxMPDw5KQorI2RlZmluZSBGTEFHX2dldHJvICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX3NldHJ3ICgxTEw8PDExKQorI2RlZmluZSBGTEFHX3NldHJvICgxTEw8PDEyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYm9vdGNoYXJ0ZAorI2RlZmluZSBDTEVBTlVQX2Jvb3RjaGFydGQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ib290Y2hhcnRkCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2JyY3RsCisjZGVmaW5lIENMRUFOVVBfYnJjdGwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5icmN0bAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9idW56aXAyCisjZGVmaW5lIENMRUFOVVBfYnVuemlwMgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJ1bnppcDIKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2sgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYnpjYXQKKyNkZWZpbmUgQ0xFQU5VUF9iemNhdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJ6Y2F0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NhbAorI2RlZmluZSBDTEVBTlVQX2NhbAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNhbAorI2VuZGlmCisjZGVmaW5lIEZMQUdfaCAoMUxMPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY2F0CisjZGVmaW5lIENMRUFOVVBfY2F0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2F0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19lICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MikKKyNkZWZpbmUgRkxBR191ICgxTEw8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jZAorI2RlZmluZSBDTEVBTlVQX2NkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2QKKyNlbmRpZgorI2RlZmluZSBGTEFHX1AgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX0wgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY2hhdHRyCisjZGVmaW5lIENMRUFOVVBfY2hhdHRyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2hhdHRyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19SICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3AgKDFMTDw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NoY29uCisjZGVmaW5lIENMRUFOVVBfY2hjb24KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jaGNvbgorI2VuZGlmCisjZGVmaW5lIEZMQUdfUiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19oICgxTEw8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jaGdycAorI2RlZmluZSBDTEVBTlVQX2NoZ3JwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2hncnAKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfUiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX0ggKDFMTDw8MykKKyNkZWZpbmUgRkxBR19MICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfUCAoMUxMPDw1KQorI2RlZmluZSBGTEFHX2ggKDFMTDw8NikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NobW9kCisjZGVmaW5lIENMRUFOVVBfY2htb2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jaG1vZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfUiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jaHJvb3QKKyNkZWZpbmUgQ0xFQU5VUF9jaHJvb3QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jaHJvb3QKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfY2hydAorI2RlZmluZSBDTEVBTlVQX2NocnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jaHJ0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19vICgxTEw8PDApCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19iICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfUiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2kgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDw3KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY2hzaAorI2RlZmluZSBDTEVBTlVQX2Noc2gKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jaHNoCisjZW5kaWYKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19SIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NodnQKKyNkZWZpbmUgQ0xFQU5VUF9jaHZ0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2h2dAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9ja3N1bQorI2RlZmluZSBDTEVBTlVQX2Nrc3VtCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2tzdW0KKyNlbmRpZgorI2RlZmluZSBGTEFHX04gKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19MICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfUCAoMUxMPDwyKQorI2RlZmluZSBGTEFHX0kgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19IICgxTEw8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jbGVhcgorI2RlZmluZSBDTEVBTlVQX2NsZWFyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2xlYXIKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfY21wCisjZGVmaW5lIENMRUFOVVBfY21wCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY21wCisjZW5kaWYKKyNkZWZpbmUgRkxBR19uICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2wgKDFMTDw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NvbW0KKyNkZWZpbmUgQ0xFQU5VUF9jb21tCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY29tbQorI2VuZGlmCisjZGVmaW5lIEZMQUdfMSAoMUxMPDwwKQorI2RlZmluZSBGTEFHXzIgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR18zICgxTEw8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jb3VudAorI2RlZmluZSBDTEVBTlVQX2NvdW50CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY291bnQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY3AKKyNkZWZpbmUgQ0xFQU5VUF9jcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNwCisjZW5kaWYKKyNkZWZpbmUgRkxBR19UICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19mICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX24gKDFMTDw8NSkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDw3KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19hICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR191ICgxTEw8PDExKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDwxMykKKyNkZWZpbmUgRkxBR19QICgxTEw8PDE0KQorI2RlZmluZSBGTEFHX0wgKDFMTDw8MTUpCisjZGVmaW5lIEZMQUdfSCAoMUxMPDwxNikKKyNkZWZpbmUgRkxBR19SICgxTEw8PDE3KQorI2RlZmluZSBGTEFHX0QgKDFMTDw8MTgpCisjZGVmaW5lIEZMQUdfcHJlc2VydmUgKDFMTDw8MTkpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jcGlvCisjZGVmaW5lIENMRUFOVVBfY3BpbworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNwaW8KKyNlbmRpZgorI2RlZmluZSBGTEFHX28gKDFMTDw8MCkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19pICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDw1KQorI2RlZmluZSBGTEFHX0ggKDFMTDw8NikKKyNkZWZpbmUgRkxBR19MICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfdSAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2QgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfbm9fcHJlc2VydmVfb3duZXIgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfcXVpZXQgKDFMTDw8MTMpCisjZGVmaW5lIEZMQUdfcmVudW1iZXJfaW5vZGVzICgxTEw8PDE0KQorI2RlZmluZSBGTEFHX2lnbm9yZV9kZXZubyAoMUxMPDwxNSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NyYzMyCisjZGVmaW5lIENMRUFOVVBfY3JjMzIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jcmMzMgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9jcm9uZAorI2RlZmluZSBDTEVBTlVQX2Nyb25kCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY3JvbmQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX0wgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw2KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY3JvbnRhYgorI2RlZmluZSBDTEVBTlVQX2Nyb250YWIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jcm9udGFiCisjZW5kaWYKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19lIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NzcGxpdAorI2RlZmluZSBDTEVBTlVQX2NzcGxpdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNzcGxpdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfayAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jdXQKKyNkZWZpbmUgQ0xFQU5VUF9jdXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jdXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19EICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19PICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfQyAoMUxMPDw1KQorI2RlZmluZSBGTEFHX0YgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19mICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2IgKDFMTDw8OSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RhdGUKKyNkZWZpbmUgQ0xFQU5VUF9kYXRlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGF0ZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfdSAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3MgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfSSAoMUxMPDwzKQorI2RlZmluZSBGTEFHX0QgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9kZAorI2RlZmluZSBDTEVBTlVQX2RkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGVhbGxvY3Z0CisjZGVmaW5lIENMRUFOVVBfZGVhbGxvY3Z0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGVhbGxvY3Z0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RlY2xhcmUKKyNkZWZpbmUgQ0xFQU5VUF9kZWNsYXJlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGVjbGFyZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfeCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfQSAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl9kZW1vX21hbnlfb3B0aW9ucworI2RlZmluZSBDTEVBTlVQX2RlbW9fbWFueV9vcHRpb25zCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGVtb19tYW55X29wdGlvbnMKKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2UgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX2ogKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX2sgKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDEyKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwxMykKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8MTQpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDE1KQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwxNikKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MTcpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDE4KQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxOSkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MjApCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDIxKQorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDwyMikKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MjMpCisjZGVmaW5lIEZMQUdfeSAoRk9SQ0VEX0ZMQUc8PDI0KQorI2RlZmluZSBGTEFHX3ogKEZPUkNFRF9GTEFHPDwyNSkKKyNkZWZpbmUgRkxBR19BIChGT1JDRURfRkxBRzw8MjYpCisjZGVmaW5lIEZMQUdfQiAoRk9SQ0VEX0ZMQUc8PDI3KQorI2RlZmluZSBGTEFHX0MgKEZPUkNFRF9GTEFHPDwyOCkKKyNkZWZpbmUgRkxBR19EIChGT1JDRURfRkxBRzw8MjkpCisjZGVmaW5lIEZMQUdfRSAoRk9SQ0VEX0ZMQUc8PDMwKQorI2RlZmluZSBGTEFHX0YgKEZPUkNFRF9GTEFHPDwzMSkKKyNkZWZpbmUgRkxBR19HIChGT1JDRURfRkxBRzw8MzIpCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDMzKQorI2RlZmluZSBGTEFHX0kgKEZPUkNFRF9GTEFHPDwzNCkKKyNkZWZpbmUgRkxBR19KIChGT1JDRURfRkxBRzw8MzUpCisjZGVmaW5lIEZMQUdfSyAoRk9SQ0VEX0ZMQUc8PDM2KQorI2RlZmluZSBGTEFHX0wgKEZPUkNFRF9GTEFHPDwzNykKKyNkZWZpbmUgRkxBR19NIChGT1JDRURfRkxBRzw8MzgpCisjZGVmaW5lIEZMQUdfTiAoRk9SQ0VEX0ZMQUc8PDM5KQorI2RlZmluZSBGTEFHX08gKEZPUkNFRF9GTEFHPDw0MCkKKyNkZWZpbmUgRkxBR19QIChGT1JDRURfRkxBRzw8NDEpCisjZGVmaW5lIEZMQUdfUSAoRk9SQ0VEX0ZMQUc8PDQyKQorI2RlZmluZSBGTEFHX1IgKEZPUkNFRF9GTEFHPDw0MykKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8NDQpCisjZGVmaW5lIEZMQUdfVCAoRk9SQ0VEX0ZMQUc8PDQ1KQorI2RlZmluZSBGTEFHX1UgKEZPUkNFRF9GTEFHPDw0NikKKyNkZWZpbmUgRkxBR19WIChGT1JDRURfRkxBRzw8NDcpCisjZGVmaW5lIEZMQUdfVyAoRk9SQ0VEX0ZMQUc8PDQ4KQorI2RlZmluZSBGTEFHX1ggKEZPUkNFRF9GTEFHPDw0OSkKKyNkZWZpbmUgRkxBR19ZIChGT1JDRURfRkxBRzw8NTApCisjZGVmaW5lIEZMQUdfWiAoRk9SQ0VEX0ZMQUc8PDUxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGVtb19udW1iZXIKKyNkZWZpbmUgQ0xFQU5VUF9kZW1vX251bWJlcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRlbW9fbnVtYmVyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19NIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19EIChGT1JDRURfRkxBRzw8NikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RlbW9fc2NhbmtleQorI2RlZmluZSBDTEVBTlVQX2RlbW9fc2NhbmtleQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRlbW9fc2NhbmtleQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9kZW1vX3V0Zjh0b3djCisjZGVmaW5lIENMRUFOVVBfZGVtb191dGY4dG93YworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRlbW9fdXRmOHRvd2MKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGV2bWVtCisjZGVmaW5lIENMRUFOVVBfZGV2bWVtCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGV2bWVtCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RmCisjZGVmaW5lIENMRUFOVVBfZGYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kZgorI2VuZGlmCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19pICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfaCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2sgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19QICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfSCAoMUxMPDw2KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGhjcAorI2RlZmluZSBDTEVBTlVQX2RoY3AKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kaGNwCisjZW5kaWYKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19DIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19SIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19CIChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDExKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwxMikKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MTMpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDE0KQorI2RlZmluZSBGTEFHX1QgKEZPUkNFRF9GTEFHPDwxNSkKKyNkZWZpbmUgRkxBR19BIChGT1JDRURfRkxBRzw8MTYpCisjZGVmaW5lIEZMQUdfTyAoRk9SQ0VEX0ZMQUc8PDE3KQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwxOCkKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MTkpCisjZGVmaW5lIEZMQUdfRiAoRk9SQ0VEX0ZMQUc8PDIwKQorI2RlZmluZSBGTEFHX0ggKEZPUkNFRF9GTEFHPDwyMSkKKyNkZWZpbmUgRkxBR19WIChGT1JDRURfRkxBRzw8MjIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9kaGNwNgorI2RlZmluZSBDTEVBTlVQX2RoY3A2CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGhjcDYKKyNlbmRpZgorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX1IgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19UIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfQSAoRk9SQ0VEX0ZMQUc8PDEyKQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwxMykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RoY3BkCisjZGVmaW5lIENMRUFOVVBfZGhjcGQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kaGNwZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfNiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfNCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfUCAoRk9SQ0VEX0ZMQUc8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9kaWZmCisjZGVmaW5lIENMRUFOVVBfZGlmZgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRpZmYKKyNlbmRpZgorI2RlZmluZSBGTEFHX1UgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfTiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX0wgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19GICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfUyAoMUxMPDw1KQorI2RlZmluZSBGTEFHX2EgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19xICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw4KQorI2RlZmluZSBGTEFHX1QgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19pICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX3cgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR191ICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX2IgKDFMTDw8MTQpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwxNSkKKyNkZWZpbmUgRkxBR19CICgxTEw8PDE2KQorI2RlZmluZSBGTEFHX3N0cmlwX3RyYWlsaW5nX2NyICgxTEw8PDE3KQorI2RlZmluZSBGTEFHX2NvbG9yICgxTEw8PDE4KQorI2RlZmluZSBGTEFHX25ld19saW5lX2Zvcm1hdCAoMUxMPDwxOSkKKyNkZWZpbmUgRkxBR19vbGRfbGluZV9mb3JtYXQgKDFMTDw8MjApCisjZGVmaW5lIEZMQUdfdW5jaGFuZ2VkX2xpbmVfZm9ybWF0ICgxTEw8PDIxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGlybmFtZQorI2RlZmluZSBDTEVBTlVQX2Rpcm5hbWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kaXJuYW1lCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RtZXNnCisjZGVmaW5lIENMRUFOVVBfZG1lc2cKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kbWVzZworI2VuZGlmCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfciAoMUxMPDwzKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19UICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfUyAoMUxMPDw2KQorI2RlZmluZSBGTEFHX0MgKDFMTDw8NykKKyNkZWZpbmUgRkxBR193ICgxTEw8PDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl9kbnNkb21haW5uYW1lCisjZGVmaW5lIENMRUFOVVBfZG5zZG9tYWlubmFtZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRuc2RvbWFpbm5hbWUKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZG9zMnVuaXgKKyNkZWZpbmUgQ0xFQU5VUF9kb3MydW5peAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRvczJ1bml4CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2R1CisjZGVmaW5lIENMRUFOVVBfZHUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kdQorI2VuZGlmCisjZGVmaW5lIEZMQUdfYiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3ggKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfTCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX0sgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19rICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfSCAoMUxMPDw2KQorI2RlZmluZSBGTEFHX2EgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19jICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDw5KQorI2RlZmluZSBGTEFHX20gKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfaCAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDEyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZHVtcGxlYXNlcworI2RlZmluZSBDTEVBTlVQX2R1bXBsZWFzZXMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kdW1wbGVhc2VzCisjZW5kaWYKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2VjaG8KKyNkZWZpbmUgQ0xFQU5VUF9lY2hvCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZWNobworI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2UgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19FICgxTEw8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9lamVjdAorI2RlZmluZSBDTEVBTlVQX2VqZWN0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZWplY3QKKyNlbmRpZgorI2RlZmluZSBGTEFHX1QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZW52CisjZGVmaW5lIENMRUFOVVBfZW52CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZW52CisjZW5kaWYKKyNkZWZpbmUgRkxBR191ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfMCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19lICgxTEw8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ldmFsCisjZGVmaW5lIENMRUFOVVBfZXZhbAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmV2YWwKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZXhlYworI2RlZmluZSBDTEVBTlVQX2V4ZWMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5leGVjCisjZW5kaWYKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2V4aXQKKyNkZWZpbmUgQ0xFQU5VUF9leGl0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZXhpdAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9leHBhbmQKKyNkZWZpbmUgQ0xFQU5VUF9leHBhbmQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5leHBhbmQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3QgKDFMTDw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2V4cG9ydAorI2RlZmluZSBDTEVBTlVQX2V4cG9ydAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmV4cG9ydAorI2VuZGlmCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9leHByCisjZGVmaW5lIENMRUFOVVBfZXhwcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmV4cHIKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZmFjdG9yCisjZGVmaW5lIENMRUFOVVBfZmFjdG9yCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZmFjdG9yCisjZW5kaWYKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZhbGxvY2F0ZQorI2RlZmluZSBDTEVBTlVQX2ZhbGxvY2F0ZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZhbGxvY2F0ZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfbyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2wgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZhbHNlCisjZGVmaW5lIENMRUFOVVBfZmFsc2UKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5mYWxzZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9mZGlzaworI2RlZmluZSBDTEVBTlVQX2ZkaXNrCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZmRpc2sKKyNlbmRpZgorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX0ggKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX0MgKEZPUkNFRF9GTEFHPDw1KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZmlsZQorI2RlZmluZSBDTEVBTlVQX2ZpbGUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5maWxlCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zICgxTEw8PDApCisjZGVmaW5lIEZMQUdfTCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2ggKDFMTDw8MikKKyNkZWZpbmUgRkxBR19iICgxTEw8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9maW5kCisjZGVmaW5lIENMRUFOVVBfZmluZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZpbmQKKyNlbmRpZgorI2RlZmluZSBGTEFHX0wgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19IICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9mbG9jaworI2RlZmluZSBDTEVBTlVQX2Zsb2NrCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZmxvY2sKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ggKDFMTDw8MCkKKyNkZWZpbmUgRkxBR191ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZtdAorI2RlZmluZSBDTEVBTlVQX2ZtdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZtdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZm9sZAorI2RlZmluZSBDTEVBTlVQX2ZvbGQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5mb2xkCisjZW5kaWYKKyNkZWZpbmUgRkxBR193IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZyZWUKKyNkZWZpbmUgQ0xFQU5VUF9mcmVlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZnJlZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfYiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2sgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfZyAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2ggKDFMTDw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZyZWVyYW1kaXNrCisjZGVmaW5lIENMRUFOVVBfZnJlZXJhbWRpc2sKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5mcmVlcmFtZGlzaworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9mc2NrCisjZGVmaW5lIENMRUFOVVBfZnNjaworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZzY2sKKyNlbmRpZgorI2RlZmluZSBGTEFHX0MgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX1YgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX1QgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX1IgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX1AgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX04gKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDw4KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZnNmcmVlemUKKyNkZWZpbmUgQ0xFQU5VUF9mc2ZyZWV6ZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZzZnJlZXplCisjZW5kaWYKKyNkZWZpbmUgRkxBR191ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZnN0eXBlCisjZGVmaW5lIENMRUFOVVBfZnN0eXBlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZnN0eXBlCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZzeW5jCisjZGVmaW5lIENMRUFOVVBfZnN5bmMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5mc3luYworI2VuZGlmCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZnRwZ2V0CisjZGVmaW5lIENMRUFOVVBfZnRwZ2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZnRwZ2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19EIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19NIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19MIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19nIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDExKQorI2RlZmluZSBGTEFHX1AgKEZPUkNFRF9GTEFHPDwxMikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dldGNvbmYKKyNkZWZpbmUgQ0xFQU5VUF9nZXRjb25mCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2V0Y29uZgorI2VuZGlmCisjZGVmaW5lIEZMQUdfbCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2EgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dldGVuZm9yY2UKKyNkZWZpbmUgQ0xFQU5VUF9nZXRlbmZvcmNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2V0ZW5mb3JjZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9nZXRmYXR0cgorI2RlZmluZSBDTEVBTlVQX2dldGZhdHRyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2V0ZmF0dHIKKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19oICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwyKQorI2RlZmluZSBGTEFHX29ubHlfdmFsdWVzICgxTEw8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9nZXRvcHQKKyNkZWZpbmUgQ0xFQU5VUF9nZXRvcHQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5nZXRvcHQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3UgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19UICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDwyKQorI2RlZmluZSBGTEFHX28gKDFMTDw8MykKKyNkZWZpbmUgRkxBR19uICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw1KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ2V0dHkKKyNkZWZpbmUgQ0xFQU5VUF9nZXR0eQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdldHR5CisjZW5kaWYKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19MIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR193IChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19JIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19IIChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MTApCisjZW5kaWYKKworI2lmZGVmIEZPUl9naXRjaGVja291dAorI2RlZmluZSBDTEVBTlVQX2dpdGNoZWNrb3V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2l0Y2hlY2tvdXQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ2l0Y2xvbmUKKyNkZWZpbmUgQ0xFQU5VUF9naXRjbG9uZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdpdGNsb25lCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dpdGZldGNoCisjZGVmaW5lIENMRUFOVVBfZ2l0ZmV0Y2gKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5naXRmZXRjaAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9naXRpbml0CisjZGVmaW5lIENMRUFOVVBfZ2l0aW5pdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdpdGluaXQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ2l0cmVtb3RlCisjZGVmaW5lIENMRUFOVVBfZ2l0cmVtb3RlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2l0cmVtb3RlCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dwaW9kZXRlY3QKKyNkZWZpbmUgQ0xFQU5VUF9ncGlvZGV0ZWN0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ3Bpb2RldGVjdAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9ncGlvZmluZAorI2RlZmluZSBDTEVBTlVQX2dwaW9maW5kCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ3Bpb2ZpbmQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ3Bpb2dldAorI2RlZmluZSBDTEVBTlVQX2dwaW9nZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ncGlvZ2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19sICgxTEw8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9ncGlvaW5mbworI2RlZmluZSBDTEVBTlVQX2dwaW9pbmZvCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ3Bpb2luZm8KKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ3Bpb3NldAorI2RlZmluZSBDTEVBTlVQX2dwaW9zZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ncGlvc2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19sICgxTEw8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9ncmVwCisjZGVmaW5lIENMRUFOVVBfZ3JlcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdyZXAKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ggKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfQSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX0IgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19DICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw1KQorI2RlZmluZSBGTEFHX2UgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19xICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDw4KQorI2RlZmluZSBGTEFHX0wgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19jICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX3cgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MTQpCisjZGVmaW5lIEZMQUdfciAoMUxMPDwxNSkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDE2KQorI2RlZmluZSBGTEFHX24gKDFMTDw8MTcpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwxOCkKKyNkZWZpbmUgRkxBR19oICgxTEw8PDE5KQorI2RlZmluZSBGTEFHX2IgKDFMTDw8MjApCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwyMSkKKyNkZWZpbmUgRkxBR19JICgxTEw8PDIyKQorI2RlZmluZSBGTEFHX0ggKDFMTDw8MjMpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDwyNCkKKyNkZWZpbmUgRkxBR19FICgxTEw8PDI1KQorI2RlZmluZSBGTEFHX3ogKDFMTDw8MjYpCisjZGVmaW5lIEZMQUdfWiAoMUxMPDwyNykKKyNkZWZpbmUgRkxBR19NICgxTEw8PDI4KQorI2RlZmluZSBGTEFHX1MgKDFMTDw8MjkpCisjZGVmaW5lIEZMQUdfZXhjbHVkZV9kaXIgKDFMTDw8MzApCisjZGVmaW5lIEZMQUdfY29sb3IgKDFMTDw8MzEpCisjZGVmaW5lIEZMQUdfbGluZV9idWZmZXJlZCAoMUxMPDwzMikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dyb3VwYWRkCisjZGVmaW5lIENMRUFOVVBfZ3JvdXBhZGQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ncm91cGFkZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ncm91cGRlbAorI2RlZmluZSBDTEVBTlVQX2dyb3VwZGVsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ3JvdXBkZWwKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ3JvdXBzCisjZGVmaW5lIENMRUFOVVBfZ3JvdXBzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ3JvdXBzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2d1bnppcAorI2RlZmluZSBDTEVBTlVQX2d1bnppcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmd1bnppcAorI2VuZGlmCisjZGVmaW5lIEZMQUdfOSAoMUxMPDwwKQorI2RlZmluZSBGTEFHXzggKDFMTDw8MSkKKyNkZWZpbmUgRkxBR183ICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfNiAoMUxMPDwzKQorI2RlZmluZSBGTEFHXzUgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR180ICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfMyAoMUxMPDw2KQorI2RlZmluZSBGTEFHXzIgKDFMTDw8NykKKyNkZWZpbmUgRkxBR18xICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDw5KQorI2RlZmluZSBGTEFHX2sgKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDEyKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MTMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9nemlwCisjZGVmaW5lIENMRUFOVVBfZ3ppcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmd6aXAKKyNlbmRpZgorI2RlZmluZSBGTEFHXzkgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR184ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfNyAoMUxMPDwyKQorI2RlZmluZSBGTEFHXzYgKDFMTDw8MykKKyNkZWZpbmUgRkxBR181ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfNCAoMUxMPDw1KQorI2RlZmluZSBGTEFHXzMgKDFMTDw8NikKKyNkZWZpbmUgRkxBR18yICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfMSAoMUxMPDw4KQorI2RlZmluZSBGTEFHX3QgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19rICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR19jICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MTQpCisjZW5kaWYKKworI2lmZGVmIEZPUl9oZWFkCisjZGVmaW5lIENMRUFOVVBfaGVhZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmhlYWQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19xICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2hlbGxvCisjZGVmaW5lIENMRUFOVVBfaGVsbG8KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5oZWxsbworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9oZWxwCisjZGVmaW5lIENMRUFOVVBfaGVscAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmhlbHAKKyNlbmRpZgorI2RlZmluZSBGTEFHX3UgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19oICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaGV4ZHVtcAorI2RlZmluZSBDTEVBTlVQX2hleGR1bXAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5oZXhkdW1wCisjZW5kaWYKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19DIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8OCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2hleGVkaXQKKyNkZWZpbmUgQ0xFQU5VUF9oZXhlZGl0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaGV4ZWRpdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9ob3N0CisjZGVmaW5lIENMRUFOVVBfaG9zdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmhvc3QKKyNlbmRpZgorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaG9zdGlkCisjZGVmaW5lIENMRUFOVVBfaG9zdGlkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaG9zdGlkCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2hvc3RuYW1lCisjZGVmaW5lIENMRUFOVVBfaG9zdG5hbWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ob3N0bmFtZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfRiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2IgKDFMTDw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2h0dHBkCisjZGVmaW5lIENMRUFOVVBfaHR0cGQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5odHRwZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9od2Nsb2NrCisjZGVmaW5lIENMRUFOVVBfaHdjbG9jaworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmh3Y2xvY2sKKyNlbmRpZgorI2RlZmluZSBGTEFHX3cgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19sICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfdSAoMUxMPDw1KQorI2RlZmluZSBGTEFHX2YgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19mYXN0ICgxTEw8PDcpCisjZW5kaWYKKworI2lmZGVmIEZPUl9pMmNkZXRlY3QKKyNkZWZpbmUgQ0xFQU5VUF9pMmNkZXRlY3QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5pMmNkZXRlY3QKKyNlbmRpZgorI2RlZmluZSBGTEFHX3kgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2wgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19GICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw1KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaTJjZHVtcAorI2RlZmluZSBDTEVBTlVQX2kyY2R1bXAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5pMmNkdW1wCisjZW5kaWYKKyNkZWZpbmUgRkxBR195ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaTJjZ2V0CisjZGVmaW5lIENMRUFOVVBfaTJjZ2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaTJjZ2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR195ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaTJjc2V0CisjZGVmaW5lIENMRUFOVVBfaTJjc2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaTJjc2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR195ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaTJjdHJhbnNmZXIKKyNkZWZpbmUgQ0xFQU5VUF9pMmN0cmFuc2ZlcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmkyY3RyYW5zZmVyCisjZW5kaWYKKyNkZWZpbmUgRkxBR195ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ljb252CisjZGVmaW5lIENMRUFOVVBfaWNvbnYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5pY29udgorI2VuZGlmCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaWQKKyNkZWZpbmUgQ0xFQU5VUF9pZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmlkCisjZW5kaWYKKyNkZWZpbmUgRkxBR191ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfciAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2cgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19HICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX1ogKDFMTDw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2lmY29uZmlnCisjZGVmaW5lIENMRUFOVVBfaWZjb25maWcKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5pZmNvbmZpZworI2VuZGlmCisjZGVmaW5lIEZMQUdfUyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2EgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2luaXQKKyNkZWZpbmUgQ0xFQU5VUF9pbml0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW5pdAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9pbm90aWZ5ZAorI2RlZmluZSBDTEVBTlVQX2lub3RpZnlkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW5vdGlmeWQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfaW5zbW9kCisjZGVmaW5lIENMRUFOVVBfaW5zbW9kCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW5zbW9kCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2luc3RhbGwKKyNkZWZpbmUgQ0xFQU5VUF9pbnN0YWxsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW5zdGFsbAorI2VuZGlmCisjZGVmaW5lIEZMQUdfZyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX28gKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDw2KQorI2RlZmluZSBGTEFHX0QgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19kICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaW9uaWNlCisjZGVmaW5lIENMRUFOVVBfaW9uaWNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW9uaWNlCisjZW5kaWYKKyNkZWZpbmUgRkxBR19wICgxTEw8PDApCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MikKKyNkZWZpbmUgRkxBR190ICgxTEw8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9pb3JlbmljZQorI2RlZmluZSBDTEVBTlVQX2lvcmVuaWNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW9yZW5pY2UKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfaW90b3AKKyNkZWZpbmUgQ0xFQU5VUF9pb3RvcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmlvdG9wCisjZW5kaWYKKyNkZWZpbmUgRkxBR19xICgxTEw8PDApCisjZGVmaW5lIEZMQUdfYiAoMUxMPDwxKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MikKKyNkZWZpbmUgRkxBR19tICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDw0KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR191ICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDw3KQorI2RlZmluZSBGTEFHX28gKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19rICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfSCAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR19PICgxTEw8PDExKQorI2RlZmluZSBGTEFHX0sgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwxMykKKyNkZWZpbmUgRkxBR19BICgxTEw8PDE0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaXAKKyNkZWZpbmUgQ0xFQU5VUF9pcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmlwCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2lwY3JtCisjZGVmaW5lIENMRUFOVVBfaXBjcm0KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5pcGNybQorI2VuZGlmCisjZGVmaW5lIEZMQUdfUSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfTSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9pcGNzCisjZGVmaW5lIENMRUFOVVBfaXBjcworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmlwY3MKKyNlbmRpZgorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfam9icworI2RlZmluZSBDTEVBTlVQX2pvYnMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5qb2JzCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2tpbGwKKyNkZWZpbmUgQ0xFQU5VUF9raWxsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMua2lsbAorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2wgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2tpbGxhbGwKKyNkZWZpbmUgQ0xFQU5VUF9raWxsYWxsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMua2lsbGFsbAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19xICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9raWxsYWxsNQorI2RlZmluZSBDTEVBTlVQX2tpbGxhbGw1CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMua2lsbGFsbDUKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfa2xvZ2QKKyNkZWZpbmUgQ0xFQU5VUF9rbG9nZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmtsb2dkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xhc3QKKyNkZWZpbmUgQ0xFQU5VUF9sYXN0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubGFzdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfVyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9saW5rCisjZGVmaW5lIENMRUFOVVBfbGluaworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxpbmsKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfbGludXgzMgorI2RlZmluZSBDTEVBTlVQX2xpbnV4MzIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5saW51eDMyCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xuCisjZGVmaW5lIENMRUFOVVBfbG4KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sbgorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19uICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwzKQorI2RlZmluZSBGTEFHX1QgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfciAoMUxMPDw2KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbG9hZF9wb2xpY3kKKyNkZWZpbmUgQ0xFQU5VUF9sb2FkX3BvbGljeQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxvYWRfcG9saWN5CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xvY2FsCisjZGVmaW5lIENMRUFOVVBfbG9jYWwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sb2NhbAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9sb2cKKyNkZWZpbmUgQ0xFQU5VUF9sb2cKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sb2cKKyNlbmRpZgorI2RlZmluZSBGTEFHX3QgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9sb2dnZXIKKyNkZWZpbmUgQ0xFQU5VUF9sb2dnZXIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sb2dnZXIKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbG9naW4KKyNkZWZpbmUgQ0xFQU5VUF9sb2dpbgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxvZ2luCisjZW5kaWYKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xvZ25hbWUKKyNkZWZpbmUgQ0xFQU5VUF9sb2duYW1lCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubG9nbmFtZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9sb2dwYXRoCisjZGVmaW5lIENMRUFOVVBfbG9ncGF0aAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxvZ3BhdGgKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfbG9zZXR1cAorI2RlZmluZSBDTEVBTlVQX2xvc2V0dXAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sb3NldHVwCisjZW5kaWYKKyNkZWZpbmUgRkxBR19EICgxTEw8PDApCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19kICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2ogKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfciAoMUxMPDw3KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19TICgxTEw8PDkpCisjZW5kaWYKKworI2lmZGVmIEZPUl9scworI2RlZmluZSBDTEVBTlVQX2xzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubHMKKyNlbmRpZgorI2RlZmluZSBGTEFHXzEgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR194ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3UgKDFMTDw8MykKKyNkZWZpbmUgRkxBR190ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3IgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19xICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDw4KQorI2RlZmluZSBGTEFHX24gKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX2wgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfayAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR19pICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX2ggKDFMTDw8MTQpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxNSkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDE2KQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MTcpCisjZGVmaW5lIEZMQUdfYiAoMUxMPDwxOCkKKyNkZWZpbmUgRkxBR19hICgxTEw8PDE5KQorI2RlZmluZSBGTEFHX1ggKDFMTDw8MjApCisjZGVmaW5lIEZMQUdfVSAoMUxMPDwyMSkKKyNkZWZpbmUgRkxBR19TICgxTEw8PDIyKQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MjMpCisjZGVmaW5lIEZMQUdfTiAoMUxMPDwyNCkKKyNkZWZpbmUgRkxBR19MICgxTEw8PDI1KQorI2RlZmluZSBGTEFHX0ggKDFMTDw8MjYpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDwyNykKKyNkZWZpbmUgRkxBR19DICgxTEw8PDI4KQorI2RlZmluZSBGTEFHX0EgKDFMTDw8MjkpCisjZGVmaW5lIEZMQUdfbyAoMUxMPDwzMCkKKyNkZWZpbmUgRkxBR19nICgxTEw8PDMxKQorI2RlZmluZSBGTEFHX1ogKDFMTDw8MzIpCisjZGVmaW5lIEZMQUdfWDdFICgxTEw8PDMzKQorI2RlZmluZSBGTEFHX1gyMSAoMUxMPDwzNCkKKyNkZWZpbmUgRkxBR19YN0YgKDFMTDw8MzUpCisjZGVmaW5lIEZMQUdfc2hvd19jb250cm9sX2NoYXJzICgxTEw8PDM2KQorI2RlZmluZSBGTEFHX2Z1bGxfdGltZSAoMUxMPDwzNykKKyNkZWZpbmUgRkxBR19jb2xvciAoMUxMPDwzOCkKKyNkZWZpbmUgRkxBR19zb3J0ICgxTEw8PDM5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbHNhdHRyCisjZGVmaW5lIENMRUFOVVBfbHNhdHRyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubHNhdHRyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19SICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3AgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19hICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2wgKDFMTDw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xzbW9kCisjZGVmaW5lIENMRUFOVVBfbHNtb2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sc21vZAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9sc29mCisjZGVmaW5lIENMRUFOVVBfbHNvZgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxzb2YKKyNlbmRpZgorI2RlZmluZSBGTEFHX3QgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbHNwY2kKKyNkZWZpbmUgQ0xFQU5VUF9sc3BjaQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxzcGNpCisjZW5kaWYKKyNkZWZpbmUgRkxBR19pICgxTEw8PDApCisjZGVmaW5lIEZMQUdfeCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MikKKyNkZWZpbmUgRkxBR19rICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2UgKDFMTDw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xzdXNiCisjZGVmaW5lIENMRUFOVVBfbHN1c2IKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sc3VzYgorI2VuZGlmCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWFrZWRldnMKKyNkZWZpbmUgQ0xFQU5VUF9tYWtlZGV2cworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1ha2VkZXZzCisjZW5kaWYKKyNkZWZpbmUgRkxBR19kICgxTEw8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9tYW4KKyNkZWZpbmUgQ0xFQU5VUF9tYW4KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tYW4KKyNlbmRpZgorI2RlZmluZSBGTEFHX00gKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2sgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWNvb2tpZQorI2RlZmluZSBDTEVBTlVQX21jb29raWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tY29va2llCisjZW5kaWYKKyNkZWZpbmUgRkxBR19WIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX21kNXN1bQorI2RlZmluZSBDTEVBTlVQX21kNXN1bQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1kNXN1bQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19iICgxTEw8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9tZGV2CisjZGVmaW5lIENMRUFOVVBfbWRldgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1kZXYKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWVtZWF0ZXIKKyNkZWZpbmUgQ0xFQU5VUF9tZW1lYXRlcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1lbWVhdGVyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19NICgxTEw8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9taWNyb2NvbQorI2RlZmluZSBDTEVBTlVQX21pY3JvY29tCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWljcm9jb20KKyNlbmRpZgorI2RlZmluZSBGTEFHX1ggKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9taXgKKyNkZWZpbmUgQ0xFQU5VUF9taXgKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5taXgKKyNlbmRpZgorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWtkaXIKKyNkZWZpbmUgQ0xFQU5VUF9ta2RpcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1rZGlyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19tICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19aICgxTEw8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ta2UyZnMKKyNkZWZpbmUgQ0xFQU5VUF9ta2UyZnMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ta2UyZnMKKyNlbmRpZgorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX04gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX0YgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDw3KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWtmaWZvCisjZGVmaW5lIENMRUFOVVBfbWtmaWZvCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWtmaWZvCisjZW5kaWYKKyNkZWZpbmUgRkxBR19tICgxTEw8PDApCisjZGVmaW5lIEZMQUdfWiAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWtub2QKKyNkZWZpbmUgQ0xFQU5VUF9ta25vZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1rbm9kCisjZW5kaWYKKyNkZWZpbmUgRkxBR19aICgxTEw8PDApCisjZGVmaW5lIEZMQUdfbSAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWtwYXNzd2QKKyNkZWZpbmUgQ0xFQU5VUF9ta3Bhc3N3ZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1rcGFzc3dkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19QIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX21rc3dhcAorI2RlZmluZSBDTEVBTlVQX21rc3dhcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1rc3dhcAorI2VuZGlmCisjZGVmaW5lIEZMQUdfTCAoMUxMPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWt0ZW1wCisjZGVmaW5lIENMRUFOVVBfbWt0ZW1wCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWt0ZW1wCisjZW5kaWYKKyNkZWZpbmUgRkxBR190ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19xICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfdSAoMUxMPDw0KQorI2RlZmluZSBGTEFHX3RtcGRpciAoMUxMPDw1KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbW9kaW5mbworI2RlZmluZSBDTEVBTlVQX21vZGluZm8KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tb2RpbmZvCisjZW5kaWYKKyNkZWZpbmUgRkxBR18wICgxTEw8PDApCisjZGVmaW5lIEZMQUdfRiAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2sgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19iICgxTEw8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9tb2Rwcm9iZQorI2RlZmluZSBDTEVBTlVQX21vZHByb2JlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubW9kcHJvYmUKKyNlbmRpZgorI2RlZmluZSBGTEFHX2QgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19iICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfRCAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3MgKDFMTDw8MykKKyNkZWZpbmUgRkxBR192ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfcSAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3IgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19sICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw4KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbW9yZQorI2RlZmluZSBDTEVBTlVQX21vcmUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tb3JlCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX21vdW50CisjZGVmaW5lIENMRUFOVVBfbW91bnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tb3VudAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR193ICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwzKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19uICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw2KQorI2RlZmluZSBGTEFHX2EgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19PICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfUiAoMUxMPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbW91bnRwb2ludAorI2RlZmluZSBDTEVBTlVQX21vdW50cG9pbnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tb3VudHBvaW50CisjZW5kaWYKKyNkZWZpbmUgRkxBR194ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3EgKDFMTDw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX212CisjZGVmaW5lIENMRUFOVVBfbXYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tdgorI2VuZGlmCisjZGVmaW5lIEZMQUdfVCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19pICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwzKQorI2RlZmluZSBGTEFHX0YgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19uICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDw2KQorI2RlZmluZSBGTEFHX3ggKDFMTDw8NykKKyNlbmRpZgorCisjaWZkZWYgRk9SX25iZF9jbGllbnQKKyNkZWZpbmUgQ0xFQU5VUF9uYmRfY2xpZW50CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubmJkX2NsaWVudAorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19iICgxTEw8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9uYmRfc2VydmVyCisjZGVmaW5lIENMRUFOVVBfbmJkX3NlcnZlcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm5iZF9zZXJ2ZXIKKyNlbmRpZgorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbmV0Y2F0CisjZGVmaW5lIENMRUFOVVBfbmV0Y2F0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubmV0Y2F0CisjZW5kaWYKKyNkZWZpbmUgRkxBR196ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwxKQorI2RlZmluZSBGTEFHX1UgKDFMTDw8MikKKyNkZWZpbmUgRkxBR191ICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfNiAoMUxMPDw0KQorI2RlZmluZSBGTEFHXzQgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw3KQorI2RlZmluZSBGTEFHX28gKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19PICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfcSAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDExKQorI2RlZmluZSBGTEFHX1cgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwxMykKKyNkZWZpbmUgRkxBR19MICgxTEw8PDE0KQorI2RlZmluZSBGTEFHX2wgKDFMTDw8MTUpCisjZGVmaW5lIEZMQUdfRSAoMUxMPDwxNikKKyNkZWZpbmUgRkxBR190ICgxTEw8PDE3KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbmV0c3RhdAorI2RlZmluZSBDTEVBTlVQX25ldHN0YXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5uZXRzdGF0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19sICgxTEw8PDApCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2UgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19uICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDw0KQorI2RlZmluZSBGTEFHX3UgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR193ICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfeCAoMUxMPDw3KQorI2RlZmluZSBGTEFHX3IgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19XICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDwxMCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX25pY2UKKyNkZWZpbmUgQ0xFQU5VUF9uaWNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubmljZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbmwKKyNkZWZpbmUgQ0xFQU5VUF9ubAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm5sCisjZW5kaWYKKyNkZWZpbmUgRkxBR19FICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MikKKyNkZWZpbmUgRkxBR19iICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfdyAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2wgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDYpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ub2h1cAorI2RlZmluZSBDTEVBTlVQX25vaHVwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubm9odXAKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfbnByb2MKKyNkZWZpbmUgQ0xFQU5VUF9ucHJvYworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm5wcm9jCisjZW5kaWYKKyNkZWZpbmUgRkxBR19hbGwgKDFMTDw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX25zZW50ZXIKKyNkZWZpbmUgQ0xFQU5VUF9uc2VudGVyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubnNlbnRlcgorI2VuZGlmCisjZGVmaW5lIEZMQUdfVSAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3UgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwzKQorI2RlZmluZSBGTEFHX20gKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19pICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfQyAoMUxMPDw2KQorI2RlZmluZSBGTEFHX3QgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19GICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfb2QKKyNkZWZpbmUgQ0xFQU5VUF9vZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm9kCisjZW5kaWYKKyNkZWZpbmUgRkxBR190ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfQSAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2IgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19jICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDw0KQorI2RlZmluZSBGTEFHX28gKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfeCAoMUxMPDw3KQorI2RlZmluZSBGTEFHX04gKDFMTDw8OCkKKyNkZWZpbmUgRkxBR193ICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR19qICgxTEw8PDExKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfb25laXQKKyNkZWZpbmUgQ0xFQU5VUF9vbmVpdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm9uZWl0CisjZW5kaWYKKyNkZWZpbmUgRkxBR18zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX29wZW52dAorI2RlZmluZSBDTEVBTlVQX29wZW52dAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm9wZW52dAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wYXJ0cHJvYmUKKyNkZWZpbmUgQ0xFQU5VUF9wYXJ0cHJvYmUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5wYXJ0cHJvYmUKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfcGFzc3dkCisjZGVmaW5lIENMRUFOVVBfcGFzc3dkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucGFzc3dkCisjZW5kaWYKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Bhc3RlCisjZGVmaW5lIENMRUFOVVBfcGFzdGUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5wYXN0ZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3BhdGNoCisjZGVmaW5lIENMRUFOVVBfcGF0Y2gKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5wYXRjaAorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19pICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDw2KQorI2RlZmluZSBGTEFHX3UgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19mICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfZyAoMUxMPDw5KQorI2RlZmluZSBGTEFHX0YgKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfZHJ5X3J1biAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR19ub19iYWNrdXBfaWZfbWlzbWF0Y2ggKDFMTDw8MTIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wZ3JlcAorI2RlZmluZSBDTEVBTlVQX3BncmVwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucGdyZXAKKyNlbmRpZgorI2RlZmluZSBGTEFHX0wgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR194ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX28gKDFMTDw8MykKKyNkZWZpbmUgRkxBR19uICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw1KQorI2RlZmluZSBGTEFHX0cgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19nICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfUCAoMUxMPDw4KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX1UgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfdSAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR19kICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX2wgKDFMTDw8MTQpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwxNSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3BpZG9mCisjZGVmaW5lIENMRUFOVVBfcGlkb2YKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5waWRvZgorI2VuZGlmCisjZGVmaW5lIEZMQUdfeCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX28gKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9waW5nCisjZGVmaW5lIENMRUFOVVBfcGluZworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnBpbmcKKyNlbmRpZgorI2RlZmluZSBGTEFHX0kgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR182ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfNCAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19xICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfdyAoMUxMPDw1KQorI2RlZmluZSBGTEFHX1cgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19pICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2MgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX20gKDFMTDw8MTEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9waXZvdF9yb290CisjZGVmaW5lIENMRUFOVVBfcGl2b3Rfcm9vdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnBpdm90X3Jvb3QKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfcGtpbGwKKyNkZWZpbmUgQ0xFQU5VUF9wa2lsbAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnBraWxsCisjZW5kaWYKKyNkZWZpbmUgRkxBR19sICgxTEw8PDApCisjZGVmaW5lIEZMQUdfeCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19vICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2YgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19HICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfZyAoMUxMPDw3KQorI2RlZmluZSBGTEFHX1AgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR19VICgxTEw8PDExKQorI2RlZmluZSBGTEFHX3UgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfViAoMUxMPDwxMykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3BtYXAKKyNkZWZpbmUgQ0xFQU5VUF9wbWFwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucG1hcAorI2VuZGlmCisjZGVmaW5lIEZMQUdfeCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3EgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wcmludGVudgorI2RlZmluZSBDTEVBTlVQX3ByaW50ZW52CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucHJpbnRlbnYKKyNlbmRpZgorI2RlZmluZSBGTEFHXzAgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19udWxsICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wcmludGYKKyNkZWZpbmUgQ0xFQU5VUF9wcmludGYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5wcmludGYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfcHMKKyNkZWZpbmUgQ0xFQU5VUF9wcworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnBzCisjZW5kaWYKKyNkZWZpbmUgRkxBR19aICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX0cgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19nICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfVSAoMUxMPDw0KQorI2RlZmluZSBGTEFHX3UgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19UICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDw3KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfTyAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDExKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfTSAoMUxMPDwxMykKKyNkZWZpbmUgRkxBR19sICgxTEw8PDE0KQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MTUpCisjZGVmaW5lIEZMQUdfZSAoMUxMPDwxNikKKyNkZWZpbmUgRkxBR19kICgxTEw8PDE3KQorI2RlZmluZSBGTEFHX0EgKDFMTDw8MTgpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwxOSkKKyNkZWZpbmUgRkxBR19QICgxTEw8PDIwKQorI2RlZmluZSBGTEFHX2sgKDFMTDw8MjEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wd2QKKyNkZWZpbmUgQ0xFQU5VUF9wd2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5wd2QKKyNlbmRpZgorI2RlZmluZSBGTEFHX1AgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19MICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wd2R4CisjZGVmaW5lIENMRUFOVVBfcHdkeAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnB3ZHgKKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKDFMTDw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3B3Z2VuCisjZGVmaW5lIENMRUFOVVBfcHdnZW4KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5wd2dlbgorI2VuZGlmCisjZGVmaW5lIEZMQUdfMCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfQSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfMSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfQyAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfQiAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfeSAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDEwKQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwxMSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3JlYWRhaGVhZAorI2RlZmluZSBDTEVBTlVQX3JlYWRhaGVhZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJlYWRhaGVhZAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9yZWFkZWxmCisjZGVmaW5lIENMRUFOVVBfcmVhZGVsZgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJlYWRlbGYKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ggKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19XICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX1MgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19wICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw1KQorI2RlZmluZSBGTEFHX2wgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19oICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfZSAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2QgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19hICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX0EgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfZHluX3N5bXMgKDFMTDw8MTIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9yZWFkbGluaworI2RlZmluZSBDTEVBTlVQX3JlYWRsaW5rCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucmVhZGxpbmsKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ogKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19xICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2UgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19mICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3YgKDFMTDw8NikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3JlYWxwYXRoCisjZGVmaW5lIENMRUFOVVBfcmVhbHBhdGgKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5yZWFscGF0aAorI2VuZGlmCisjZGVmaW5lIEZMQUdfeiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3EgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfZSAoMUxMPDwzKQorI2RlZmluZSBGTEFHX1AgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19MICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw2KQorI2RlZmluZSBGTEFHX1IgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19yZWxhdGl2ZV9iYXNlICgxTEw8PDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl9yZWJvb3QKKyNkZWZpbmUgQ0xFQU5VUF9yZWJvb3QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5yZWJvb3QKKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcmVuaWNlCisjZGVmaW5lIENMRUFOVVBfcmVuaWNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucmVuaWNlCisjZW5kaWYKKyNkZWZpbmUgRkxBR19uICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdSAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3AgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19nICgxTEw8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9yZXNldAorI2RlZmluZSBDTEVBTlVQX3Jlc2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucmVzZXQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfcmVzdG9yZWNvbgorI2RlZmluZSBDTEVBTlVQX3Jlc3RvcmVjb24KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5yZXN0b3JlY29uCisjZW5kaWYKKyNkZWZpbmUgRkxBR192ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfciAoMUxMPDwxKQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19uICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX0QgKDFMTDw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3JldgorI2RlZmluZSBDTEVBTlVQX3JldgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJldgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9yZmtpbGwKKyNkZWZpbmUgQ0xFQU5VUF9yZmtpbGwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5yZmtpbGwKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1Jfcm0KKyNkZWZpbmUgQ0xFQU5VUF9ybQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJtCisjZW5kaWYKKyNkZWZpbmUgRkxBR192ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfciAoMUxMPDwxKQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19pICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfcm1kaXIKKyNkZWZpbmUgQ0xFQU5VUF9ybWRpcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJtZGlyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19wICgxTEw8PDApCisjZGVmaW5lIEZMQUdfaWdub3JlX2ZhaWxfb25fbm9uX2VtcHR5ICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ybW1vZAorI2RlZmluZSBDTEVBTlVQX3JtbW9kCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucm1tb2QKKyNlbmRpZgorI2RlZmluZSBGTEFHX2YgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR193ICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9yb3V0ZQorI2RlZmluZSBDTEVBTlVQX3JvdXRlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucm91dGUKKyNlbmRpZgorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2UgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcnRjd2FrZQorI2RlZmluZSBDTEVBTlVQX3J0Y3dha2UKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ydGN3YWtlCisjZW5kaWYKKyNkZWZpbmUgRkxBR192ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdSAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19zICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2wgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw3KQorI2RlZmluZSBGTEFHX2F1dG8gKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19saXN0X21vZGVzICgxTEw8PDkpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ydW5jb24KKyNkZWZpbmUgQ0xFQU5VUF9ydW5jb24KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ydW5jb24KKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2VkCisjZGVmaW5lIENMRUFOVVBfc2VkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2VkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zICgxTEw8PDApCisjZGVmaW5lIEZMQUdfeiAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19FICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2kgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfZSAoMUxMPDw3KQorI2RlZmluZSBGTEFHX3Rhcnhmb3JtICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfdmVyc2lvbiAoMUxMPDw5KQorI2RlZmluZSBGTEFHX2hlbHAgKDFMTDw8MTApCisjZW5kaWYKKworI2lmZGVmIEZPUl9zZW5kZXZlbnQKKyNkZWZpbmUgQ0xFQU5VUF9zZW5kZXZlbnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zZW5kZXZlbnQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2VxCisjZGVmaW5lIENMRUFOVVBfc2VxCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2VxCisjZW5kaWYKKyNkZWZpbmUgRkxBR193ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NldAorI2RlZmluZSBDTEVBTlVQX3NldAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNldAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9zZXRlbmZvcmNlCisjZGVmaW5lIENMRUFOVVBfc2V0ZW5mb3JjZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNldGVuZm9yY2UKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2V0ZmF0dHIKKyNkZWZpbmUgQ0xFQU5VUF9zZXRmYXR0cgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNldGZhdHRyCisjZW5kaWYKKyNkZWZpbmUgRkxBR194ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwxKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MikKKyNkZWZpbmUgRkxBR19oICgxTEw8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zZXRzaWQKKyNkZWZpbmUgQ0xFQU5VUF9zZXRzaWQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zZXRzaWQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2QgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19jICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2gKKyNkZWZpbmUgQ0xFQU5VUF9zaAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNoCisjZW5kaWYKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19ub3JjIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19ub3Byb2ZpbGUgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX25vZWRpdGluZyAoRk9SQ0VEX0ZMQUc8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zaGEzc3VtCisjZGVmaW5lIENMRUFOVVBfc2hhM3N1bQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNoYTNzdW0KKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2hpZnQKKyNkZWZpbmUgQ0xFQU5VUF9zaGlmdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNoaWZ0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NocmVkCisjZGVmaW5lIENMRUFOVVBfc2hyZWQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zaHJlZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfeCAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfeiAoRk9SQ0VEX0ZMQUc8PDYpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zaHVmCisjZGVmaW5lIENMRUFOVVBfc2h1ZgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNodWYKKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2UgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3ogKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2tlbGV0b24KKyNkZWZpbmUgQ0xFQU5VUF9za2VsZXRvbgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNrZWxldG9uCisjZW5kaWYKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19lIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19nIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19hbHNvIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19ibHViYmVyIChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR193YWxydXMgKEZPUkNFRF9GTEFHPDwxMCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NrZWxldG9uX2FsaWFzCisjZGVmaW5lIENMRUFOVVBfc2tlbGV0b25fYWxpYXMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5za2VsZXRvbl9hbGlhcworI2VuZGlmCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zbGVlcAorI2RlZmluZSBDTEVBTlVQX3NsZWVwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2xlZXAKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc250cAorI2RlZmluZSBDTEVBTlVQX3NudHAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zbnRwCisjZW5kaWYKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19EIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR19NIChGT1JDRURfRkxBRzw8MTApCisjZW5kaWYKKworI2lmZGVmIEZPUl9zb3J0CisjZGVmaW5lIENMRUFOVVBfc29ydAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNvcnQKKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKDFMTDw8MCkKKyNkZWZpbmUgRkxBR191ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfciAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19mICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3ogKDFMTDw8NikKKyNkZWZpbmUgRkxBR19zICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDw4KQorI2RlZmluZSBGTEFHX0MgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19NICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX2IgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfViAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR194ICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MTQpCisjZGVmaW5lIEZMQUdfayAoMUxMPDwxNSkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDE2KQorI2RlZmluZSBGTEFHX20gKDFMTDw8MTcpCisjZGVmaW5lIEZMQUdfVCAoMUxMPDwxOCkKKyNkZWZpbmUgRkxBR19TICgxTEw8PDE5KQorI2RlZmluZSBGTEFHX2cgKDFMTDw8MjApCisjZW5kaWYKKworI2lmZGVmIEZPUl9zb3VyY2UKKyNkZWZpbmUgQ0xFQU5VUF9zb3VyY2UKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zb3VyY2UKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc3BsaXQKKyNkZWZpbmUgQ0xFQU5VUF9zcGxpdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNwbGl0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19uICgxTEw8PDApCisjZGVmaW5lIEZMQUdfbCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2IgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19hICgxTEw8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zdGF0CisjZGVmaW5lIENMRUFOVVBfc3RhdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN0YXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3QgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19MICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3N0cmFjZQorI2RlZmluZSBDTEVBTlVQX3N0cmFjZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN0cmFjZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zdHJpbmdzCisjZGVmaW5lIENMRUFOVVBfc3RyaW5ncworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN0cmluZ3MKKyNlbmRpZgorI2RlZmluZSBGTEFHX28gKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2EgKDFMTDw8MykKKyNkZWZpbmUgRkxBR190ICgxTEw8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zdHR5CisjZGVmaW5lIENMRUFOVVBfc3R0eQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN0dHkKKyNlbmRpZgorI2RlZmluZSBGTEFHX2cgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19GICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc3UKKyNkZWZpbmUgQ0xFQU5VUF9zdQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN1CisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19nIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3N1bG9naW4KKyNkZWZpbmUgQ0xFQU5VUF9zdWxvZ2luCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc3Vsb2dpbgorI2VuZGlmCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9zd2Fwb2ZmCisjZGVmaW5lIENMRUFOVVBfc3dhcG9mZgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN3YXBvZmYKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19hICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zd2Fwb24KKyNkZWZpbmUgQ0xFQU5VUF9zd2Fwb24KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zd2Fwb24KKyNlbmRpZgorI2RlZmluZSBGTEFHX2QgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zd2l0Y2hfcm9vdAorI2RlZmluZSBDTEVBTlVQX3N3aXRjaF9yb290CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc3dpdGNoX3Jvb3QKKyNlbmRpZgorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc3luYworI2RlZmluZSBDTEVBTlVQX3N5bmMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zeW5jCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3N5c2N0bAorI2RlZmluZSBDTEVBTlVQX3N5c2N0bAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN5c2N0bAorI2VuZGlmCisjZGVmaW5lIEZMQUdfQSAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2EgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwzKQorI2RlZmluZSBGTEFHX3EgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19OICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfZSAoMUxMPDw2KQorI2RlZmluZSBGTEFHX24gKDFMTDw8NykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3N5c2xvZ2QKKyNkZWZpbmUgQ0xFQU5VUF9zeXNsb2dkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc3lzbG9nZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfRCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfTCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfSyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfTyAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDEwKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwxMSkKKyNkZWZpbmUgRkxBR19SIChGT1JDRURfRkxBRzw8MTIpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDEzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGFjCisjZGVmaW5lIENMRUFOVVBfdGFjCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudGFjCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RhaWwKKyNkZWZpbmUgQ0xFQU5VUF90YWlsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudGFpbAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RhcgorI2RlZmluZSBDTEVBTlVQX3RhcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRhcgorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2EgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfQyAoMUxMPDwzKQorI2RlZmluZSBGTEFHX0kgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19UICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfWCAoMUxMPDw2KQorI2RlZmluZSBGTEFHX20gKDFMTDw8NykKKyNkZWZpbmUgRkxBR19QICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfTyAoMUxMPDw5KQorI2RlZmluZSBGTEFHX1MgKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfeiAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR19qICgxTEw8PDEyKQorI2RlZmluZSBGTEFHX0ogKDFMTDw8MTMpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwxNCkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDE1KQorI2RlZmluZSBGTEFHX3ggKDFMTDw8MTYpCisjZGVmaW5lIEZMQUdfaCAoMUxMPDwxNykKKyNkZWZpbmUgRkxBR19jICgxTEw8PDE4KQorI2RlZmluZSBGTEFHX2sgKDFMTDw8MTkpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDwyMCkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDIxKQorI2RlZmluZSBGTEFHX3hmb3JtICgxTEw8PDIyKQorI2RlZmluZSBGTEFHX3N0cmlwICgxTEw8PDIzKQorI2RlZmluZSBGTEFHX3RvX2NvbW1hbmQgKDFMTDw8MjQpCisjZGVmaW5lIEZMQUdfb3duZXIgKDFMTDw8MjUpCisjZGVmaW5lIEZMQUdfZ3JvdXAgKDFMTDw8MjYpCisjZGVmaW5lIEZMQUdfbXRpbWUgKDFMTDw8MjcpCisjZGVmaW5lIEZMQUdfbW9kZSAoMUxMPDwyOCkKKyNkZWZpbmUgRkxBR19zb3J0ICgxTEw8PDI5KQorI2RlZmluZSBGTEFHX2V4Y2x1ZGUgKDFMTDw8MzApCisjZGVmaW5lIEZMQUdfb3ZlcndyaXRlICgxTEw8PDMxKQorI2RlZmluZSBGTEFHX25vX3NhbWVfcGVybWlzc2lvbnMgKDFMTDw8MzIpCisjZGVmaW5lIEZMQUdfbnVtZXJpY19vd25lciAoMUxMPDwzMykKKyNkZWZpbmUgRkxBR19udWxsICgxTEw8PDM0KQorI2RlZmluZSBGTEFHX25vX3JlY3Vyc2lvbiAoMUxMPDwzNSkKKyNkZWZpbmUgRkxBR19mdWxsX3RpbWUgKDFMTDw8MzYpCisjZGVmaW5lIEZMQUdfcmVzdHJpY3QgKDFMTDw8MzcpCisjZGVmaW5lIEZMQUdfc2VsaW51eCAoMUxMPDwzOCkKKyNkZWZpbmUgRkxBR19zaG93X3RyYW5zZm9ybWVkX25hbWVzICgxTEw8PDM5KQorI2RlZmluZSBGTEFHX3dpbGRjYXJkc19tYXRjaF9zbGFzaCAoMUxMPDw0MCkKKyNkZWZpbmUgRkxBR19ub193aWxkY2FyZHNfbWF0Y2hfc2xhc2ggKDFMTDw8NDEpCisjZGVmaW5lIEZMQUdfd2lsZGNhcmRzICgxTEw8PDQyKQorI2RlZmluZSBGTEFHX25vX3dpbGRjYXJkcyAoMUxMPDw0MykKKyNkZWZpbmUgRkxBR19hbmNob3JlZCAoMUxMPDw0NCkKKyNkZWZpbmUgRkxBR19ub19hbmNob3JlZCAoMUxMPDw0NSkKKyNkZWZpbmUgRkxBR19pZ25vcmVfY2FzZSAoMUxMPDw0NikKKyNkZWZpbmUgRkxBR19ub19pZ25vcmVfY2FzZSAoMUxMPDw0NykKKyNkZWZpbmUgRkxBR19vbmVfZmlsZV9zeXN0ZW0gKDFMTDw8NDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl90YXNrc2V0CisjZGVmaW5lIENMRUFOVVBfdGFza3NldAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRhc2tzZXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl90Y3BzdmQKKyNkZWZpbmUgQ0xFQU5VUF90Y3BzdmQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50Y3BzdmQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX0UgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX0MgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDw3KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGVlCisjZGVmaW5lIENMRUFOVVBfdGVlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudGVlCisjZW5kaWYKKyNkZWZpbmUgRkxBR19hICgxTEw8PDApCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGVsbmV0CisjZGVmaW5lIENMRUFOVVBfdGVsbmV0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudGVsbmV0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RlbG5ldGQKKyNkZWZpbmUgQ0xFQU5VUF90ZWxuZXRkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudGVsbmV0ZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfSyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfRiAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl90ZXN0CisjZGVmaW5lIENMRUFOVVBfdGVzdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRlc3QKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGZ0cAorI2RlZmluZSBDTEVBTlVQX3RmdHAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50ZnRwCisjZW5kaWYKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19nIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RmdHBkCisjZGVmaW5lIENMRUFOVVBfdGZ0cGQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50ZnRwZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl90aW1lCisjZGVmaW5lIENMRUFOVVBfdGltZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRpbWUKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl90aW1lb3V0CisjZGVmaW5lIENMRUFOVVBfdGltZW91dAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRpbWVvdXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2kgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfayAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19wcmVzZXJ2ZV9zdGF0dXMgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19mb3JlZ3JvdW5kICgxTEw8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl90b3AKKyNkZWZpbmUgQ0xFQU5VUF90b3AKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50b3AKKyNlbmRpZgorI2RlZmluZSBGTEFHX3EgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19iICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX20gKDFMTDw8MykKKyNkZWZpbmUgRkxBR19kICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3UgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19wICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfbyAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2sgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19IICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX2ggKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfTyAoMUxMPDwxMikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RvdWNoCisjZGVmaW5lIENMRUFOVVBfdG91Y2gKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50b3VjaAorI2VuZGlmCisjZGVmaW5lIEZMQUdfaCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDw2KQorI2RlZmluZSBGTEFHX2EgKDFMTDw8NykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RveWJveAorI2RlZmluZSBDTEVBTlVQX3RveWJveAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRveWJveAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl90cgorI2RlZmluZSBDTEVBTlVQX3RyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudHIKKyNlbmRpZgorI2RlZmluZSBGTEFHX2QgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19DICgxTEw8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl90cmFjZXJvdXRlCisjZGVmaW5lIENMRUFOVVBfdHJhY2Vyb3V0ZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRyYWNlcm91dGUKKyNlbmRpZgorI2RlZmluZSBGTEFHXzQgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR182ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX1UgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19JICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDw1KQorI2RlZmluZSBGTEFHX2QgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19uICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDw4KQorI2RlZmluZSBGTEFHX3IgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX3AgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfcSAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MTQpCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwxNSkKKyNkZWZpbmUgRkxBR19nICgxTEw8PDE2KQorI2RlZmluZSBGTEFHX3ogKDFMTDw8MTcpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxOCkKKyNkZWZpbmUgRkxBR19pICgxTEw8PDE5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdHJ1ZQorI2RlZmluZSBDTEVBTlVQX3RydWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50cnVlCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RydW5jYXRlCisjZGVmaW5lIENMRUFOVVBfdHJ1bmNhdGUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50cnVuY2F0ZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3MgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RzCisjZGVmaW5lIENMRUFOVVBfdHMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50cworI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl90c29ydAorI2RlZmluZSBDTEVBTlVQX3Rzb3J0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudHNvcnQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfdHR5CisjZGVmaW5lIENMRUFOVVBfdHR5CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudHR5CisjZW5kaWYKKyNkZWZpbmUgRkxBR19zICgxTEw8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl90dW5jdGwKKyNkZWZpbmUgQ0xFQU5VUF90dW5jdGwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50dW5jdGwKKyNlbmRpZgorI2RlZmluZSBGTEFHX1QgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR191ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VjbGFtcHNldAorI2RlZmluZSBDTEVBTlVQX3VjbGFtcHNldAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVjbGFtcHNldAorI2VuZGlmCisjZGVmaW5lIEZMQUdfUiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX00gKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwzKQorI2RlZmluZSBGTEFHX3AgKDFMTDw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VsaW1pdAorI2RlZmluZSBDTEVBTlVQX3VsaW1pdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVsaW1pdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19lICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19sICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDw2KQorI2RlZmluZSBGTEFHX24gKDFMTDw8NykKKyNkZWZpbmUgRkxBR19wICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfcSAoMUxMPDw5KQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfciAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEyKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MTMpCisjZGVmaW5lIEZMQUdfdSAoMUxMPDwxNCkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDE1KQorI2RlZmluZSBGTEFHX2EgKDFMTDw8MTYpCisjZGVmaW5lIEZMQUdfSCAoMUxMPDwxNykKKyNkZWZpbmUgRkxBR19TICgxTEw8PDE4KQorI2RlZmluZSBGTEFHX1AgKDFMTDw8MTkpCisjZW5kaWYKKworI2lmZGVmIEZPUl91bW91bnQKKyNkZWZpbmUgQ0xFQU5VUF91bW91bnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51bW91bnQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19sICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw1KQorI2RlZmluZSBGTEFHX0QgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19kICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2MgKDFMTDw8OSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VuYW1lCisjZGVmaW5lIENMRUFOVVBfdW5hbWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51bmFtZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwzKQorI2RlZmluZSBGTEFHX20gKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw2KQorI2RlZmluZSBGTEFHX3AgKDFMTDw8NykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VuaWNvZGUKKyNkZWZpbmUgQ0xFQU5VUF91bmljb2RlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudW5pY29kZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl91bmlxCisjZGVmaW5lIENMRUFOVVBfdW5pcQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVuaXEKKyNlbmRpZgorI2RlZmluZSBGTEFHX3UgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8MykKKyNkZWZpbmUgRkxBR196ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfdyAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19mICgxTEw8PDcpCisjZW5kaWYKKworI2lmZGVmIEZPUl91bml4MmRvcworI2RlZmluZSBDTEVBTlVQX3VuaXgyZG9zCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudW5peDJkb3MKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfdW5saW5rCisjZGVmaW5lIENMRUFOVVBfdW5saW5rCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudW5saW5rCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Vuc2V0CisjZGVmaW5lIENMRUFOVVBfdW5zZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51bnNldAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl91bnNoYXJlCisjZGVmaW5lIENMRUFOVVBfdW5zaGFyZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVuc2hhcmUKKyNlbmRpZgorI2RlZmluZSBGTEFHX1UgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR191ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDwyKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MykKKyNkZWZpbmUgRkxBR19tICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDw1KQorI2RlZmluZSBGTEFHX0MgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19yICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2EgKDFMTDw8OSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VwdGltZQorI2RlZmluZSBDTEVBTlVQX3VwdGltZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVwdGltZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3AgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VzZXJhZGQKKyNkZWZpbmUgQ0xFQU5VUF91c2VyYWRkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudXNlcmFkZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfRCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfZyAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfRyAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDcpCisjZW5kaWYKKworI2lmZGVmIEZPUl91c2VyZGVsCisjZGVmaW5lIENMRUFOVVBfdXNlcmRlbAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVzZXJkZWwKKyNlbmRpZgorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdXNsZWVwCisjZGVmaW5lIENMRUFOVVBfdXNsZWVwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudXNsZWVwCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3V1ZGVjb2RlCisjZGVmaW5lIENMRUFOVVBfdXVkZWNvZGUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51dWRlY29kZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfbyAoMUxMPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdXVlbmNvZGUKKyNkZWZpbmUgQ0xFQU5VUF91dWVuY29kZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnV1ZW5jb2RlCisjZW5kaWYKKyNkZWZpbmUgRkxBR19tICgxTEw8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl91dWlkZ2VuCisjZGVmaW5lIENMRUFOVVBfdXVpZGdlbgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnV1aWRnZW4KKyNlbmRpZgorI2RlZmluZSBGTEFHX3IgKDFMTDw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Zjb25maWcKKyNkZWZpbmUgQ0xFQU5VUF92Y29uZmlnCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudmNvbmZpZworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl92aQorI2RlZmluZSBDTEVBTlVQX3ZpCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudmkKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKDFMTDw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Ztc3RhdAorI2RlZmluZSBDTEVBTlVQX3Ztc3RhdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnZtc3RhdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdworI2RlZmluZSBDTEVBTlVQX3cKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy53CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3dhaXQKKyNkZWZpbmUgQ0xFQU5VUF93YWl0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMud2FpdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl93YXRjaAorI2RlZmluZSBDTEVBTlVQX3dhdGNoCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMud2F0Y2gKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ggKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19iICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfZSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19uICgxTEw8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl93YXRjaGRvZworI2RlZmluZSBDTEVBTlVQX3dhdGNoZG9nCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMud2F0Y2hkb2cKKyNlbmRpZgorI2RlZmluZSBGTEFHX1QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX0YgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfd2MKKyNkZWZpbmUgQ0xFQU5VUF93YworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLndjCisjZW5kaWYKKyNkZWZpbmUgRkxBR19sICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX20gKDFMTDw8MikKKyNkZWZpbmUgRkxBR19jICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfTCAoMUxMPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfd2dldAorI2RlZmluZSBDTEVBTlVQX3dnZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy53Z2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19PIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19tYXhfcmVkaXJlY3QgKEZPUkNFRF9GTEFHPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfd2hpY2gKKyNkZWZpbmUgQ0xFQU5VUF93aGljaAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLndoaWNoCisjZW5kaWYKKyNkZWZpbmUgRkxBR19hICgxTEw8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl93aG8KKyNkZWZpbmUgQ0xFQU5VUF93aG8KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy53aG8KKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfeGFyZ3MKKyNkZWZpbmUgQ0xFQU5VUF94YXJncworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnhhcmdzCisjZW5kaWYKKyNkZWZpbmUgRkxBR18wICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MikKKyNkZWZpbmUgRkxBR19yICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDw0KQorI2RlZmluZSBGTEFHX3AgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfUCAoMUxMPDw3KQorI2RlZmluZSBGTEFHX0UgKDFMTDw8OCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3h4ZAorI2RlZmluZSBDTEVBTlVQX3h4ZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnh4ZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2UgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19nICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfbyAoMUxMPDw2KQorI2RlZmluZSBGTEFHX2wgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19jICgxTEw8PDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl94emNhdAorI2RlZmluZSBDTEVBTlVQX3h6Y2F0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMueHpjYXQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfeWVzCisjZGVmaW5lIENMRUFOVVBfeWVzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMueWVzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3pjYXQKKyNkZWZpbmUgQ0xFQU5VUF96Y2F0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuemNhdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfOSAoMUxMPDwwKQorI2RlZmluZSBGTEFHXzggKDFMTDw8MSkKKyNkZWZpbmUgRkxBR183ICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfNiAoMUxMPDwzKQorI2RlZmluZSBGTEFHXzUgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR180ICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfMyAoMUxMPDw2KQorI2RlZmluZSBGTEFHXzIgKDFMTDw8NykKKyNkZWZpbmUgRkxBR18xICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDw5KQorI2RlZmluZSBGTEFHX2sgKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDEyKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MTMpCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvYW5kcm9pZC9kZXZpY2UvZ2VuZXJhdGVkL2dsb2JhbHMuaCBiL2FuZHJvaWQvZGV2aWNlL2dlbmVyYXRlZC9nbG9iYWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMxYmMzNQotLS0gL2Rldi9udWxsCisrKyBiL2FuZHJvaWQvZGV2aWNlL2dlbmVyYXRlZC9nbG9iYWxzLmgKQEAgLTAsMCArMSw5MTUgQEAKK3N0cnVjdCBsb2dfZGF0YSB7CisgIGNoYXIgKnQsICpwOworCisgIGludCBwcmk7Cit9OworCitzdHJ1Y3QgZG1lc2dfZGF0YSB7CisgIGxvbmcgbiwgczsKKworICBpbnQgdXNlX2NvbG9yOworICB0aW1lX3QgdGVhOworfTsKKworc3RydWN0IGd6aXBfZGF0YSB7CisgIGludCBsZXZlbDsKK307CisKK3N0cnVjdCBob3N0bmFtZV9kYXRhIHsKKyAgY2hhciAqRjsKK307CisKK3N0cnVjdCBraWxsYWxsX2RhdGEgeworICBjaGFyICpzOworCisgIGludCBzaWdudW07CisgIHBpZF90IGN1cl9waWQ7CisgIGNoYXIgKipuYW1lczsKKyAgc2hvcnQgKmVycjsKKyAgc3RydWN0IGludF9saXN0IHsgc3RydWN0IGludF9saXN0ICpuZXh0OyBpbnQgdmFsOyB9ICpwaWRzOworfTsKKworc3RydWN0IG1kNXN1bV9kYXRhIHsKKyAgaW50IHNhd2xpbmU7Cit9OworCitzdHJ1Y3QgbWtub2RfZGF0YSB7CisgIGNoYXIgKlosICptOworfTsKKworc3RydWN0IG1rdGVtcF9kYXRhIHsKKyAgY2hhciAqcCwgKnRtcGRpcjsKK307CisKK3N0cnVjdCBtb3VudF9kYXRhIHsKKyAgc3RydWN0IGFyZ19saXN0ICpvOworICBjaGFyICp0LCAqTzsKKworICB1bnNpZ25lZCBsb25nIGZsYWdzOworICBjaGFyICpvcHRzOworICBpbnQgb2t1c2VyOworfTsKKworc3RydWN0IHBpZG9mX2RhdGEgeworICBjaGFyICpvOworfTsKKworc3RydWN0IHNlcV9kYXRhIHsKKyAgY2hhciAqcywgKmY7CisKKyAgaW50IHByZWNpc2lvbiwgYnVmbGVuOworfTsKKworc3RydWN0IHVtb3VudF9kYXRhIHsKKyAgc3RydWN0IGFyZ19saXN0ICp0OworCisgIGNoYXIgKnR5cGVzOworfTsKKworc3RydWN0IGlmY29uZmlnX2RhdGEgeworICBpbnQgc29ja2ZkOworfTsKKworc3RydWN0IG1pY3JvY29tX2RhdGEgeworICBsb25nIHM7CisKKyAgaW50IGZkLCBzdG9rOworICBzdHJ1Y3QgdGVybWlvcyBvbGRfc3RkaW4sIG9sZF9mZDsKK307CisKK3N0cnVjdCBuZXRjYXRfZGF0YSB7CisgIGNoYXIgKmYsICpzLCAqbywgKk87CisgIGxvbmcgcSwgcCwgVywgdzsKKworICB1bnNpZ25lZCBvZmQsIG9sYXN0LCBvcG9zLCBvY291bnRbMl07CisgIGNoYXIgb2J1ZlsxNl07Cit9OworCitzdHJ1Y3QgbmV0c3RhdF9kYXRhIHsKKyAgc3RydWN0IG51bV9jYWNoZSAqaW5vZGVzOworICBpbnQgd3BhZDsKK307CisKK3N0cnVjdCBwaW5nX2RhdGEgeworICBjaGFyICpJOworICBsb25nIHcsIFcsIGksIHMsIGMsIHQsIG07CisKKyAgc3RydWN0IHNvY2thZGRyICpzYTsKKyAgaW50IHNvY2s7CisgIHVuc2lnbmVkIGxvbmcgc2VudCwgcmVjdiwgZnVnaXQsIG1pbiwgbWF4OworfTsKKworc3RydWN0IHR1bmN0bF9kYXRhIHsKKyAgY2hhciAqdTsKK307CisKK3N0cnVjdCBiYXNlNjRfZGF0YSB7CisgIGxvbmcgdzsKKworICB1bnNpZ25lZCB0b3RhbDsKKyAgdW5zaWduZWQgbjsgIC8vIG51bWJlciBvZiBiaXRzIHVzZWQgaW4gZW5jb2RpbmcuIDUgZm9yIGJhc2UzMiwgNiBmb3IgYmFzZTY0CisgIHVuc2lnbmVkIGFsaWduOyAgLy8gbnVtYmVyIG9mIGJpdHMgdG8gYWxpZ24gdG8KK307CisKK3N0cnVjdCBibGtkaXNjYXJkX2RhdGEgeworICBsb25nIG8sIGw7Cit9OworCitzdHJ1Y3QgYmxraWRfZGF0YSB7CisgIHN0cnVjdCBhcmdfbGlzdCAqczsKKyAgY2hhciAqbzsKK307CisKK3N0cnVjdCBibG9ja2Rldl9kYXRhIHsKKyAgbG9uZyBzZXRyYSwgc2V0YnN6OworfTsKKworc3RydWN0IGNocnRfZGF0YSB7CisgIGxvbmcgcDsKK307CisKK3N0cnVjdCBkb3MydW5peF9kYXRhIHsKKyAgY2hhciAqdGVtcGZpbGU7Cit9OworCitzdHJ1Y3QgZmFsbG9jYXRlX2RhdGEgeworICBsb25nIG8sIGw7Cit9OworCitzdHJ1Y3QgZm10X2RhdGEgeworICBsb25nIHdpZHRoOworCisgIGludCBsZXZlbCwgcG9zOworfTsKKworc3RydWN0IGZyZWVfZGF0YSB7CisgIHVuc2lnbmVkIGJpdHM7CisgIHVuc2lnbmVkIGxvbmcgbG9uZyB1bml0czsKKyAgY2hhciAqYnVmOworfTsKKworc3RydWN0IGdldG9wdF9kYXRhIHsKKyAgc3RydWN0IGFyZ19saXN0ICpsOworICBjaGFyICpvLCAqbjsKK307CisKK3N0cnVjdCBncGlvZGV0ZWN0X2RhdGEgeworICBzdHJ1Y3QgZG91YmxlX2xpc3QgKmNoaXBzOworICBpbnQgY2hpcF9jb3VudDsKK307CisKK3N0cnVjdCBod2Nsb2NrX2RhdGEgeworICBjaGFyICpmOworfTsKKworc3RydWN0IGkyY2RldGVjdF9kYXRhIHsKKyAgbG9uZyBGOworfTsKKworc3RydWN0IGlvbmljZV9kYXRhIHsKKyAgbG9uZyBwLCBuLCBjOworfTsKKworc3RydWN0IGxvc2V0dXBfZGF0YSB7CisgIGNoYXIgKmo7CisgIGxvbmcgbywgUzsKKworICBpbnQgb3BlbmZsYWdzOworICBkZXZfdCBqZGV2OworICBpbm9fdCBqaW5vOworICBjaGFyICpkaXI7Cit9OworCitzdHJ1Y3QgbHNhdHRyX2RhdGEgeworICBsb25nIHYsIHA7CisKKyAgdW5zaWduZWQgYWRkLCBybSwgc2V0OworICAvLyAhYWRkIGFuZCAhcm0gdGVsbCB1cyB3aGV0aGVyIHRoZXkgd2VyZSB1c2VkLCBidXQgYGNoYXR0ciA9YCBpcyBtZWFuaW5nZnVsLgorICBpbnQgaGF2ZV9zZXQ7Cit9OworCitzdHJ1Y3QgbHN1c2JfZGF0YSB7CisgIGNoYXIgKmk7CisgIGxvbmcgeCwgbjsKKworICB2b2lkICppZHMsICpjbGFzczsKKyAgaW50IGNvdW50OworfTsKKworc3RydWN0IG1ha2VkZXZzX2RhdGEgeworICBjaGFyICpkOworfTsKKworc3RydWN0IG1rc3dhcF9kYXRhIHsKKyAgY2hhciAqTDsKK307CisKK3N0cnVjdCBtb2RpbmZvX2RhdGEgeworICBjaGFyICpGLCAqaywgKmI7CisKKyAgbG9uZyBtb2Q7CisgIGludCBjb3VudDsKK307CisKK3N0cnVjdCBuYmRfY2xpZW50X2RhdGEgeworICBsb25nIGI7CisKKyAgaW50IG5iZDsKK307CisKK3N0cnVjdCBuc2VudGVyX2RhdGEgeworICBjaGFyICpVdXBubWlDWzddOworICBsb25nIHQ7Cit9OworCitzdHJ1Y3QgcmVhZGVsZl9kYXRhIHsKKyAgY2hhciAqeCwgKnA7CisKKyAgY2hhciAqZWxmLCAqc2hzdHJ0YWIsICpmOworICB1bnNpZ25lZCBsb25nIGxvbmcgc2hvZmYsIHBob2ZmLCBzaXplLCBzaHN0cnRhYnN6OworICBpbnQgYml0cywgZW5kaWFuLCBzaG51bSwgc2hlbnRzaXplLCBwaGVudHNpemU7Cit9OworCitzdHJ1Y3QgcmVhbHBhdGhfZGF0YSB7CisgIGNoYXIgKlIsICpyZWxhdGl2ZV9iYXNlOworfTsKKworc3RydWN0IHJ0Y3dha2VfZGF0YSB7CisgIGxvbmcgdCwgczsKKyAgY2hhciAqbSwgKmQ7Cit9OworCitzdHJ1Y3Qgc2V0ZmF0dHJfZGF0YSB7CisgIGNoYXIgKngsICp2LCAqbjsKK307CisKK3N0cnVjdCBzZXRzaWRfZGF0YSB7CisgIGxvbmcgYzsKK307CisKK3N0cnVjdCBzdGF0X2RhdGEgeworICBjaGFyICpjOworCisgIHVuaW9uIHsKKyAgICBzdHJ1Y3Qgc3RhdCBzdDsKKyAgICBzdHJ1Y3Qgc3RhdGZzIHNmOworICB9IHN0YXQ7CisgIGNoYXIgKmZpbGUsICpwYXR0ZXJuOworICBpbnQgcGF0bGVuOworfTsKKworc3RydWN0IHN3YXBvbl9kYXRhIHsKKyAgbG9uZyBwOworfTsKKworc3RydWN0IHRhY19kYXRhIHsKKyAgc3RydWN0IGRvdWJsZV9saXN0ICpkbDsKK307CisKK3N0cnVjdCB0aW1lb3V0X2RhdGEgeworICBjaGFyICpzLCAqazsKKworICBzdHJ1Y3QgcG9sbGZkIHBmZDsKKyAgc2lnam1wX2J1ZiBzajsKKyAgaW50IGZkc1syXSwgcGlkLCByYzsKK307CisKK3N0cnVjdCB0cnVuY2F0ZV9kYXRhIHsKKyAgY2hhciAqczsKKworICBsb25nIGxvbmcgc2l6ZTsKKyAgaW50IHR5cGU7Cit9OworCitzdHJ1Y3QgdWNsYW1wc2V0X2RhdGEgeworICBsb25nIE0sIG0sIHA7Cit9OworCitzdHJ1Y3Qgd2F0Y2hfZGF0YSB7CisgIGludCBuOworCisgIHBpZF90IHBpZCwgb2xkcGlkOworfTsKKworc3RydWN0IHh4ZF9kYXRhIHsKKyAgbG9uZyBzLCBnLCBvLCBsLCBjOworfTsKKworc3RydWN0IGJyY3RsX2RhdGEgeworICAgIGludCBzb2NrZmQ7Cit9OworCitzdHJ1Y3QgZGlmZl9kYXRhIHsKKyAgbG9uZyBVOworICBzdHJ1Y3QgYXJnX2xpc3QgKkw7CisgIGNoYXIgKkYsICpTLCAqbmV3X2xpbmVfZm9ybWF0LCAqb2xkX2xpbmVfZm9ybWF0LCAqdW5jaGFuZ2VkX2xpbmVfZm9ybWF0OworCisgIGludCBkaXJfbnVtLCBzaXplLCBpc19iaW5hcnksIGRpZmZlciwgY2hhbmdlLCBsZW5bMl0sICpvZmZzZXRbMl07CisgIHN0cnVjdCBzdGF0IHN0WzJdOworICBzdHJ1Y3QgeworICAgIGNoYXIgKipsaXN0OworICAgIGludCBucl9lbG07CisgIH0gZGlyWzJdOworICBzdHJ1Y3QgeworICAgIEZJTEUgKmZwOworICAgIGludCBsZW47CisgIH0gZmlsZVsyXTsKK307CisKK3N0cnVjdCBleHByX2RhdGEgeworICBjaGFyICoqdG9rLCAqZGVsZXRlOworfTsKKworc3RydWN0IGdldGZhdHRyX2RhdGEgeworICBjaGFyICpuOworfTsKKworc3RydWN0IGxzb2ZfZGF0YSB7CisgIHN0cnVjdCBhcmdfbGlzdCAqcDsKKworICBzdHJ1Y3Qgc3RhdCAqc291Z2h0X2ZpbGVzOworICBzdHJ1Y3QgZG91YmxlX2xpc3QgKmFsbF9zb2NrZXRzLCAqZmlsZXM7CisgIGludCBsYXN0X3Nob3duX3BpZCwgc2hvd25faGVhZGVyOworfTsKKworc3RydWN0IG1vZHByb2JlX2RhdGEgeworICBzdHJ1Y3QgYXJnX2xpc3QgKmRpcnM7CisKKyAgc3RydWN0IGFyZ19saXN0ICpwcm9iZXMsICpkYmFzZVsyNTZdOworICBjaGFyICpjbWRvcHRzOworICBpbnQgbnVkZXBzLCBzeW1yZXE7Cit9OworCitzdHJ1Y3QgbW9yZV9kYXRhIHsKKyAgc3RydWN0IHRlcm1pb3MgaW5mOworICBpbnQgY2luX2ZkOworfTsKKworc3RydWN0IHN0dHlfZGF0YSB7CisgIGNoYXIgKkY7CisKKyAgaW50IGZkLCBjb2w7CisgIHVuc2lnbmVkIG91dHB1dF9jb2xzOworfTsKKworc3RydWN0IHRyX2RhdGEgeworICBzaG9ydCAqbWFwOworICBpbnQgbGVuMSwgbGVuMjsKK307CisKK3N0cnVjdCB0cmFjZXJvdXRlX2RhdGEgeworICBsb25nIG1heF90dGw7CisgIGxvbmcgcG9ydDsKKyAgbG9uZyB0dGxfcHJvYmVzOworICBjaGFyICpzcmNfaXA7CisgIGxvbmcgdG9zOworICBsb25nIHdhaXRfdGltZTsKKyAgc3RydWN0IGFyZ19saXN0ICpsb29zZV9zb3VyY2U7CisgIGxvbmcgcGF1c2VfdGltZTsKKyAgbG9uZyBmaXJzdF90dGw7CisgIGNoYXIgKmlmYWNlOworCisgIHVpbnQzMl90IGd3X2xpc3RbOV07CisgIGludCByZWN2X3NvY2s7CisgIGludCBzbmRfc29jazsKKyAgdW5zaWduZWQgbXNnX2xlbjsKKyAgY2hhciAqcGFja2V0OworICB1aW50MzJfdCBpZGVudDsKKyAgaW50IGlzdHJhY2Vyb3V0ZTY7Cit9OworCitzdHJ1Y3QgdmlfZGF0YSB7CisgIGNoYXIgKnM7CisKKyAgY2hhciAqZmlsZW5hbWU7CisgIGludCB2aV9tb2RlLCB0YWJzdG9wLCBsaXN0OworICBpbnQgY3VyX2NvbCwgY3VyX3Jvdywgc2NyX3JvdzsKKyAgaW50IGRyYXduX3JvdywgZHJhd25fY29sOworICBpbnQgY291bnQwLCBjb3VudDEsIHZpX21vdl9mbGFnOworICB1bnNpZ25lZCBzY3JlZW5faGVpZ2h0LCBzY3JlZW5fd2lkdGg7CisgIGNoYXIgdmlfcmVnLCAqbGFzdF9zZWFyY2g7CisgIHN0cnVjdCBzdHJfbGluZSB7CisgICAgaW50IGFsbG9jOworICAgIGludCBsZW47CisgICAgY2hhciAqZGF0YTsKKyAgfSAqaWw7CisgIHNpemVfdCBzY3JlZW4sIGN1cnNvcjsgLy9vZmZzZXRzCisgIC8veWFuayBidWZmZXIKKyAgc3RydWN0IHlhbmtfYnVmIHsKKyAgICBjaGFyIHJlZzsKKyAgICBpbnQgYWxsb2M7CisgICAgY2hhciogZGF0YTsKKyAgfSB5YW5rOworCisgIHNpemVfdCBmaWxlc2l6ZTsKKy8vIG1lbV9ibG9jayBjb250YWlucyBSTyBkYXRhIHRoYXQgaXMgZWl0aGVyIG9yaWdpbmFsIGZpbGUgYXMgbW1hcAorLy8gb3IgaGVhcCBhbGxvY2F0ZWQgaW5zZXJ0ZWQgZGF0YQorICBzdHJ1Y3QgYmxvY2tfbGlzdCB7CisgICAgc3RydWN0IGJsb2NrX2xpc3QgKm5leHQsICpwcmV2OworICAgIHN0cnVjdCBtZW1fYmxvY2sgeworICAgICAgc2l6ZV90IHNpemU7CisgICAgICBzaXplX3QgbGVuOworICAgICAgZW51bSBhbGxvY19mbGFnIHsKKyAgICAgICAgTU1BUCwgIC8vY2FuIGJlIG11bm1hcCgpIGJlZm9yZSBleGl0KCkKKyAgICAgICAgSEVBUCwgIC8vY2FuIGJlIGZyZWUoKSBiZWZvcmUgZXhpdCgpCisgICAgICAgIFNUQUNLLCAvL2dsb2JhbCBvciBzdGFjayBwZXJoYXBzIHRveWJ1ZgorICAgICAgfSBhbGxvYzsKKyAgICAgIGNvbnN0IGNoYXIgKmRhdGE7CisgICAgfSAqbm9kZTsKKyAgfSAqdGV4dDsKKworLy8gc2xpY2VzIGRvIG5vdCBjb250YWluIGFjdHVhbCBhbGxvY2F0ZWQgZGF0YSBidXQgc2xpY2VzIG9mIGRhdGEgaW4gbWVtX2Jsb2NrCisvLyB3aGVuIGZpbGUgaXMgZmlyc3Qgb3BlbmVkIGl0IGhhcyBvbmx5IG9uZSBzbGljZS4KKy8vIGFmdGVyIGluc2VydGluZyBkYXRhIGludG8gbWlkZGxlIG5ldyBtZW1fYmxvY2sgaXMgYWxsb2NhdGVkIGZvciBpbnNlcnQgZGF0YQorLy8gYW5kIDMgc2xpY2VzIGFyZSBjcmVhdGVkLCB3aGVyZSBmaXJzdCBhbmQgbGFzdCBzbGljZSBhcmUgcG9pbnRpbmcgdG8gb3JpZ2luYWwKKy8vIG1lbV9ibG9jayB3aXRoIG9mZnNldHMsIGFuZCBtaWRkbGUgc2xpY2UgaXMgcG9pbnRpbmcgdG8gbmV3bHkgYWxsb2NhdGVkIGJsb2NrCisvLyBXaGVuIGRlbGV0aW5nLCBkYXRhIGlzIG5vdCBmcmVlZCBidXQgbWVtX2Jsb2NrcyBhcmUgc2xpY2VkIG1vcmUgc3VjaCB3YXkgdGhhdAorLy8gZGVsZXRlZCBkYXRhIGxlZnQgYmV0d2VlbiAyIHNsaWNlcworICBzdHJ1Y3Qgc2xpY2VfbGlzdCB7CisgICAgc3RydWN0IHNsaWNlX2xpc3QgKm5leHQsICpwcmV2OworICAgIHN0cnVjdCBzbGljZSB7CisgICAgICBzaXplX3QgbGVuOworICAgICAgY29uc3QgY2hhciAqZGF0YTsKKyAgICB9ICpub2RlOworICB9ICpzbGljZXM7Cit9OworCitzdHJ1Y3QgYmFzZW5hbWVfZGF0YSB7CisgIGNoYXIgKnM7Cit9OworCitzdHJ1Y3QgY2FsX2RhdGEgeworICBzdHJ1Y3QgdG0gKm5vdzsKK307CisKK3N0cnVjdCBjaGdycF9kYXRhIHsKKyAgdWlkX3Qgb3duZXI7CisgIGdpZF90IGdyb3VwOworICBjaGFyICpvd25lcl9uYW1lLCAqZ3JvdXBfbmFtZTsKKyAgaW50IHN5bWZvbGxvdzsKK307CisKK3N0cnVjdCBjaG1vZF9kYXRhIHsKKyAgY2hhciAqbW9kZTsKK307CisKK3N0cnVjdCBjbXBfZGF0YSB7CisgIGxvbmcgbjsKKworICBpbnQgZmQ7CisgIGNoYXIgKm5hbWU7Cit9OworCitzdHJ1Y3QgY3BfZGF0YSB7CisgIHVuaW9uIHsKKyAgICAvLyBpbnN0YWxsJ3Mgb3B0aW9ucworICAgIHN0cnVjdCB7CisgICAgICBjaGFyICpnLCAqbywgKm0sICp0OworICAgIH0gaTsKKyAgICAvLyBjcCdzIG9wdGlvbnMKKyAgICBzdHJ1Y3QgeworICAgICAgY2hhciAqdCwgKnByZXNlcnZlOworICAgIH0gYzsKKyAgfTsKKworICBjaGFyICpkZXN0bmFtZTsKKyAgc3RydWN0IHN0YXQgdG9wOworICBpbnQgKCpjYWxsYmFjaykoc3RydWN0IGRpcnRyZWUgKnRyeSk7CisgIHVpZF90IHVpZDsKKyAgZ2lkX3QgZ2lkOworICBpbnQgcGZsYWdzOworfTsKKworc3RydWN0IGNwaW9fZGF0YSB7CisgIGNoYXIgKkYsICpILCAqUjsKK307CisKK3N0cnVjdCBjdXRfZGF0YSB7CisgIGNoYXIgKmQsICpPOworICBzdHJ1Y3QgYXJnX2xpc3QgKnNlbGVjdFs1XTsgLy8gd2UgdHJlYXQgdGhlbSB0aGUgc2FtZSwgc28gbG9vcCB0aHJvdWdoCisKKyAgdW5zaWduZWQgbGluZTsKKyAgaW50IHBhaXJzOworICByZWdleF90IHJlZzsKK307CisKK3N0cnVjdCBkYXRlX2RhdGEgeworICBjaGFyICpzLCAqciwgKkksICpELCAqZDsKKworICB1bnNpZ25lZCBuYW5vOworfTsKKworc3RydWN0IGRkX2RhdGEgeworICAvLyBEaXNwbGF5IGZpZWxkcworICBpbnQgc2hvd194ZmVyLCBzaG93X3JlY29yZHM7CisgIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlcywgaW5fZnVsbCwgaW5fcGFydCwgb3V0X2Z1bGwsIG91dF9wYXJ0LCBzdGFydDsKK307CisKK3N0cnVjdCBkZl9kYXRhIHsKKyAgc3RydWN0IGFyZ19saXN0ICp0OworCisgIGludCB1bml0cywgd2lkdGhbNl07Cit9OworCitzdHJ1Y3QgZHVfZGF0YSB7CisgIGxvbmcgZDsKKworICB1bnNpZ25lZCBsb25nIGRlcHRoLCB0b3RhbDsKKyAgZGV2X3Qgc3RfZGV2OworICB2b2lkICppbm9kZXM7Cit9OworCitzdHJ1Y3QgZW52X2RhdGEgeworICBzdHJ1Y3QgYXJnX2xpc3QgKnU7CisgIGNoYXIgKmU7Cit9OworCitzdHJ1Y3QgZXhwYW5kX2RhdGEgeworICBzdHJ1Y3QgYXJnX2xpc3QgKnQ7CisKKyAgdW5zaWduZWQgdGFiY291bnQsICp0YWI7Cit9OworCitzdHJ1Y3QgZmlsZV9kYXRhIHsKKyAgaW50IG1heF9uYW1lX2xlbjsKKyAgb2ZmX3QgbGVuOworfTsKKworc3RydWN0IGZpbmRfZGF0YSB7CisgIGNoYXIgKipmaWx0ZXI7CisgIHN0cnVjdCBkb3VibGVfbGlzdCAqYXJnZGF0YTsKKyAgaW50IHRvcGRpciwgeGRldiwgZGVwdGg7CisgIHRpbWVfdCBub3c7CisgIGxvbmcgbWF4X2J5dGVzOworICBjaGFyICpzdGFydDsKK307CisKK3N0cnVjdCBncmVwX2RhdGEgeworICBsb25nIG0sIEEsIEIsIEM7CisgIHN0cnVjdCBhcmdfbGlzdCAqZiwgKmUsICpNLCAqUywgKmV4Y2x1ZGVfZGlyOworICBjaGFyICpjb2xvcjsKKworICBjaGFyICpwdXJwbGUsICpjeWFuLCAqcmVkLCAqZ3JlZW4sICpncmV5OworICBzdHJ1Y3QgZG91YmxlX2xpc3QgKnJlZzsKKyAgaW50IGZvdW5kLCB0cmllZCwgZGVsaW07CisgIHN0cnVjdCBhcmdfbGlzdCAqKmZpeGVkOworfTsKKworc3RydWN0IGhlYWRfZGF0YSB7CisgIGxvbmcgYywgbjsKKworICBpbnQgZmlsZV9ubzsKK307CisKK3N0cnVjdCBpY29udl9kYXRhIHsKKyAgY2hhciAqZiwgKnQ7CisKKyAgdm9pZCAqaWM7Cit9OworCitzdHJ1Y3QgaWRfZGF0YSB7CisgIGludCBpc19ncm91cHM7Cit9OworCitzdHJ1Y3Qga2lsbF9kYXRhIHsKKyAgY2hhciAqczsKKyAgc3RydWN0IGFyZ19saXN0ICpvOworfTsKKworc3RydWN0IGxuX2RhdGEgeworICBjaGFyICp0OworfTsKKworc3RydWN0IGxvZ2dlcl9kYXRhIHsKKyAgY2hhciAqcCwgKnQ7CisKKyAgaW50IHByaW9yaXR5OworfTsKKworc3RydWN0IGxzX2RhdGEgeworICBsb25nIHcsIGwsIGJsb2NrX3NpemU7CisgIGNoYXIgKmNvbG9yLCAqc29ydDsKKworICBzdHJ1Y3QgZGlydHJlZSAqZmlsZXMsICpzaW5nbGVkaXI7CisgIHVuc2lnbmVkIHNjcmVlbl93aWR0aDsKKyAgaW50IG5sX3RpdGxlOworICBjaGFyICplc2Ntb3JlOworfTsKKworc3RydWN0IG1rZGlyX2RhdGEgeworICBjaGFyICptLCAqWjsKK307CisKK3N0cnVjdCBta2ZpZm9fZGF0YSB7CisgIGNoYXIgKm0sICpaOworCisgIG1vZGVfdCBtb2RlOworfTsKKworc3RydWN0IG5pY2VfZGF0YSB7CisgIGxvbmcgbjsKK307CisKK3N0cnVjdCBubF9kYXRhIHsKKyAgY2hhciAqcywgKm4sICpiOworICBsb25nIHcsIGwsIHY7CisKKyAgLy8gQ291bnQgb2YgY29uc2VjdXRpdmUgYmxhbmsgbGluZXMgZm9yIC1sIGhhcyB0byBwZXJzaXN0IGJldHdlZW4gZmlsZXMKKyAgbG9uZyBsY291bnQsIHNsZW47Cit9OworCitzdHJ1Y3Qgb2RfZGF0YSB7CisgIHN0cnVjdCBhcmdfbGlzdCAqdDsKKyAgY2hhciAqQTsKKyAgbG9uZyBOLCB3LCBqOworCisgIGludCBhZGRyZXNzX2lkeDsKKyAgdW5zaWduZWQgdHlwZXMsIGxlZnRvdmVyLCBzdGFyOworICBjaGFyICpidWY7IC8vIFBvaW50cyB0byBidWZmZXJzWzBdIG9yIGJ1ZmZlcnNbMV0uCisgIGNoYXIgKmJ1ZnNbMl07IC8vIFVzZWQgdG8gZGV0ZWN0IGR1cGxpY2F0ZSBsaW5lcy4KKyAgb2ZmX3QgcG9zOworfTsKKworc3RydWN0IHBhc3RlX2RhdGEgeworICBjaGFyICpkOworCisgIGludCBmaWxlczsKK307CisKK3N0cnVjdCBwYXRjaF9kYXRhIHsKKyAgY2hhciAqaSwgKmQ7CisgIGxvbmcgdiwgcCwgZywgRjsKKworICB2b2lkICpjdXJyZW50X2h1bms7CisgIGxvbmcgb2xkbGluZSwgb2xkbGVuLCBuZXdsaW5lLCBuZXdsZW4sIGxpbmVudW0sIG91dG51bTsKKyAgaW50IGNvbnRleHQsIHN0YXRlLCBmaWxlaW4sIGZpbGVvdXQsIGZpbGVwYXRjaCwgaHVua251bTsKKyAgY2hhciAqdGVtcG5hbWU7Cit9OworCitzdHJ1Y3QgcHNfZGF0YSB7CisgIHVuaW9uIHsKKyAgICBzdHJ1Y3QgeworICAgICAgc3RydWN0IGFyZ19saXN0ICpHLCAqZywgKlUsICp1LCAqdCwgKnMsICpwLCAqTywgKm8sICpQLCAqazsKKyAgICB9IHBzOworICAgIHN0cnVjdCB7CisgICAgICBsb25nIG4sIG0sIGQsIHM7CisgICAgICBzdHJ1Y3QgYXJnX2xpc3QgKnUsICpwLCAqbywgKmssICpPOworICAgIH0gdG9wOworICAgIHN0cnVjdCB7CisgICAgICBjaGFyICpMOworICAgICAgc3RydWN0IGFyZ19saXN0ICpHLCAqZywgKlAsICpzLCAqdCwgKlUsICp1OworICAgICAgY2hhciAqZDsKKworICAgICAgdm9pZCAqcmVnZXhlcywgKnNuYXBzaG90OworICAgICAgaW50IHNpZ25hbDsKKyAgICAgIHBpZF90IHNlbGYsIG1hdGNoOworICAgIH0gcGdyZXA7CisgIH07CisKKyAgc3RydWN0IHBzX3B0cl9sZW4geworICAgIHZvaWQgKnB0cjsKKyAgICBsb25nIGxlbjsKKyAgfSBnZywgR0csIHBwLCBQUCwgc3MsIHR0LCB1dSwgVVU7CisgIHN0cnVjdCBkaXJ0cmVlICp0aHJlYWRwYXJlbnQ7CisgIHVuc2lnbmVkIHdpZHRoLCBoZWlnaHQsIHNjcm9sbDsKKyAgZGV2X3QgdHR5OworICB2b2lkICpmaWVsZHMsICprZmllbGRzOworICBsb25nIGxvbmcgdGlja3MsIGJpdHMsIHRpbWU7CisgIGludCBrY291bnQsIGZvcmNlaywgc29ydHBvcywgcGlkbGVuOworICBpbnQgKCptYXRjaF9wcm9jZXNzKShsb25nIGxvbmcgKnNsb3QpOworICB2b2lkICgqc2hvd19wcm9jZXNzKSh2b2lkICp0Yik7Cit9OworCitzdHJ1Y3QgcmVuaWNlX2RhdGEgeworICBsb25nIG47Cit9OworCitzdHJ1Y3Qgc2VkX2RhdGEgeworICBjaGFyICppOworICBzdHJ1Y3QgYXJnX2xpc3QgKmYsICplOworCisgIC8vIHByb2Nlc3NlZCBwYXR0ZXJuIGxpc3QKKyAgc3RydWN0IGRvdWJsZV9saXN0ICpwYXR0ZXJuOworCisgIGNoYXIgKm5leHRsaW5lLCAqcmVtZW1iZXIsICp0YXJ4Zm9ybTsKKyAgdm9pZCAqcmVzdGFydCwgKmxhc3RyZWdleDsKKyAgbG9uZyBuZXh0bGVuLCByZW1lbWJlcmxlbiwgY291bnQ7CisgIGludCBmZG91dCwgbm9lb2w7CisgIHVuc2lnbmVkIHh4LCB0YXJ4bGVuLCB4ZmxhZ3M7CisgIGNoYXIgZGVsaW0sIHhmdHlwZTsKK307CisKK3N0cnVjdCBzb3J0X2RhdGEgeworICBjaGFyICp0OworICBzdHJ1Y3QgYXJnX2xpc3QgKms7CisgIGNoYXIgKm8sICpULCBTOworCisgIHZvaWQgKmtleV9saXN0OworICB1bnNpZ25lZCBsaW5lY291bnQ7CisgIGNoYXIgKipsaW5lcywgKm5hbWU7Cit9OworCitzdHJ1Y3Qgc3BsaXRfZGF0YSB7CisgIGxvbmcgbiwgbCwgYiwgYTsKKworICBjaGFyICpvdXRmaWxlOworfTsKKworc3RydWN0IHN0cmluZ3NfZGF0YSB7CisgIGxvbmcgbjsKKyAgY2hhciAqdDsKK307CisKK3N0cnVjdCB0YWlsX2RhdGEgeworICBsb25nIG4sIGM7CisgIGNoYXIgKnM7CisKKyAgaW50IGZpbGVfbm8sIGxhc3RfZmQsIHNzOworICBzdHJ1Y3QgeG5vdGlmeSAqbm90OworICBzdHJ1Y3QgeworICAgIGNoYXIgKnBhdGg7CisgICAgaW50IGZkOworICAgIHN0cnVjdCBkZXZfaW5vIGRpOworICB9ICpGOworfTsKKworc3RydWN0IHRhcl9kYXRhIHsKKyAgY2hhciAqZiwgKkMsICpJOworICBzdHJ1Y3QgYXJnX2xpc3QgKlQsICpYLCAqeGZvcm07CisgIGxvbmcgc3RyaXA7CisgIGNoYXIgKnRvX2NvbW1hbmQsICpvd25lciwgKmdyb3VwLCAqbXRpbWUsICptb2RlLCAqc29ydDsKKyAgc3RydWN0IGFyZ19saXN0ICpleGNsdWRlOworCisgIHN0cnVjdCBkb3VibGVfbGlzdCAqaW5jbCwgKmV4Y2wsICpzZWVuOworICBzdHJ1Y3Qgc3RyaW5nX2xpc3QgKmRpcnM7CisgIGNoYXIgKmN3ZCwgKip4ZnNlZDsKKyAgaW50IGZkLCBvdWlkLCBnZ2lkLCBobGMsIHdhcm4sIHNwYXJzZWxlbiwgcGlkLCB4ZnBpcGVbMl07CisgIHN0cnVjdCBkZXZfaW5vIGFyY2hpdmVfZGk7CisgIGxvbmcgbG9uZyAqc3BhcnNlOworICB0aW1lX3QgbXR0OworCisgIC8vIGhhcmRsaW5rcyBzZWVuIHNvIGZhciAoaGxjIG1hbnkpCisgIHN0cnVjdCB7CisgICAgY2hhciAqYXJnOworICAgIHN0cnVjdCBkZXZfaW5vIGRpOworICB9ICpobHg7CisKKyAgLy8gUGFyc2VkIGluZm9ybWF0aW9uIGFib3V0IGEgdGFyIGhlYWRlci4KKyAgc3RydWN0IHRhcl9oZWFkZXIgeworICAgIGNoYXIgKm5hbWUsICpsaW5rX3RhcmdldCwgKnVuYW1lLCAqZ25hbWU7CisgICAgbG9uZyBsb25nIHNpemUsIHNzaXplOworICAgIHVpZF90IHVpZDsKKyAgICBnaWRfdCBnaWQ7CisgICAgbW9kZV90IG1vZGU7CisgICAgdGltZV90IG10aW1lOworICAgIGRldl90IGRldmljZTsKKyAgfSBoZHI7Cit9OworCitzdHJ1Y3QgdGVlX2RhdGEgeworICB2b2lkICpvdXRwdXRzOworICBpbnQgb3V0OworfTsKKworc3RydWN0IHRvdWNoX2RhdGEgeworICBjaGFyICp0LCAqciwgKmQ7Cit9OworCitzdHJ1Y3QgdWxpbWl0X2RhdGEgeworICBsb25nIFA7Cit9OworCitzdHJ1Y3QgdW5pcV9kYXRhIHsKKyAgbG9uZyB3LCBzLCBmOworCisgIGxvbmcgcmVwZWF0czsKK307CisKK3N0cnVjdCB1dWRlY29kZV9kYXRhIHsKKyAgY2hhciAqbzsKK307CisKK3N0cnVjdCB3Y19kYXRhIHsKKyAgdW5zaWduZWQgbG9uZyB0b3RhbHNbNV07Cit9OworCitzdHJ1Y3QgeGFyZ3NfZGF0YSB7CisgIGxvbmcgcywgbiwgUDsKKyAgY2hhciAqRTsKKworICBsb25nIGVudHJpZXMsIGJ5dGVzLCBucDsKKyAgY2hhciBkZWxpbTsKKyAgRklMRSAqdHR5OworfTsKK2V4dGVybiB1bmlvbiBnbG9iYWxfdW5pb24geworCXN0cnVjdCBsb2dfZGF0YSBsb2c7CisJc3RydWN0IGRtZXNnX2RhdGEgZG1lc2c7CisJc3RydWN0IGd6aXBfZGF0YSBnemlwOworCXN0cnVjdCBob3N0bmFtZV9kYXRhIGhvc3RuYW1lOworCXN0cnVjdCBraWxsYWxsX2RhdGEga2lsbGFsbDsKKwlzdHJ1Y3QgbWQ1c3VtX2RhdGEgbWQ1c3VtOworCXN0cnVjdCBta25vZF9kYXRhIG1rbm9kOworCXN0cnVjdCBta3RlbXBfZGF0YSBta3RlbXA7CisJc3RydWN0IG1vdW50X2RhdGEgbW91bnQ7CisJc3RydWN0IHBpZG9mX2RhdGEgcGlkb2Y7CisJc3RydWN0IHNlcV9kYXRhIHNlcTsKKwlzdHJ1Y3QgdW1vdW50X2RhdGEgdW1vdW50OworCXN0cnVjdCBpZmNvbmZpZ19kYXRhIGlmY29uZmlnOworCXN0cnVjdCBtaWNyb2NvbV9kYXRhIG1pY3JvY29tOworCXN0cnVjdCBuZXRjYXRfZGF0YSBuZXRjYXQ7CisJc3RydWN0IG5ldHN0YXRfZGF0YSBuZXRzdGF0OworCXN0cnVjdCBwaW5nX2RhdGEgcGluZzsKKwlzdHJ1Y3QgdHVuY3RsX2RhdGEgdHVuY3RsOworCXN0cnVjdCBiYXNlNjRfZGF0YSBiYXNlNjQ7CisJc3RydWN0IGJsa2Rpc2NhcmRfZGF0YSBibGtkaXNjYXJkOworCXN0cnVjdCBibGtpZF9kYXRhIGJsa2lkOworCXN0cnVjdCBibG9ja2Rldl9kYXRhIGJsb2NrZGV2OworCXN0cnVjdCBjaHJ0X2RhdGEgY2hydDsKKwlzdHJ1Y3QgZG9zMnVuaXhfZGF0YSBkb3MydW5peDsKKwlzdHJ1Y3QgZmFsbG9jYXRlX2RhdGEgZmFsbG9jYXRlOworCXN0cnVjdCBmbXRfZGF0YSBmbXQ7CisJc3RydWN0IGZyZWVfZGF0YSBmcmVlOworCXN0cnVjdCBnZXRvcHRfZGF0YSBnZXRvcHQ7CisJc3RydWN0IGdwaW9kZXRlY3RfZGF0YSBncGlvZGV0ZWN0OworCXN0cnVjdCBod2Nsb2NrX2RhdGEgaHdjbG9jazsKKwlzdHJ1Y3QgaTJjZGV0ZWN0X2RhdGEgaTJjZGV0ZWN0OworCXN0cnVjdCBpb25pY2VfZGF0YSBpb25pY2U7CisJc3RydWN0IGxvc2V0dXBfZGF0YSBsb3NldHVwOworCXN0cnVjdCBsc2F0dHJfZGF0YSBsc2F0dHI7CisJc3RydWN0IGxzdXNiX2RhdGEgbHN1c2I7CisJc3RydWN0IG1ha2VkZXZzX2RhdGEgbWFrZWRldnM7CisJc3RydWN0IG1rc3dhcF9kYXRhIG1rc3dhcDsKKwlzdHJ1Y3QgbW9kaW5mb19kYXRhIG1vZGluZm87CisJc3RydWN0IG5iZF9jbGllbnRfZGF0YSBuYmRfY2xpZW50OworCXN0cnVjdCBuc2VudGVyX2RhdGEgbnNlbnRlcjsKKwlzdHJ1Y3QgcmVhZGVsZl9kYXRhIHJlYWRlbGY7CisJc3RydWN0IHJlYWxwYXRoX2RhdGEgcmVhbHBhdGg7CisJc3RydWN0IHJ0Y3dha2VfZGF0YSBydGN3YWtlOworCXN0cnVjdCBzZXRmYXR0cl9kYXRhIHNldGZhdHRyOworCXN0cnVjdCBzZXRzaWRfZGF0YSBzZXRzaWQ7CisJc3RydWN0IHN0YXRfZGF0YSBzdGF0OworCXN0cnVjdCBzd2Fwb25fZGF0YSBzd2Fwb247CisJc3RydWN0IHRhY19kYXRhIHRhYzsKKwlzdHJ1Y3QgdGltZW91dF9kYXRhIHRpbWVvdXQ7CisJc3RydWN0IHRydW5jYXRlX2RhdGEgdHJ1bmNhdGU7CisJc3RydWN0IHVjbGFtcHNldF9kYXRhIHVjbGFtcHNldDsKKwlzdHJ1Y3Qgd2F0Y2hfZGF0YSB3YXRjaDsKKwlzdHJ1Y3QgeHhkX2RhdGEgeHhkOworCXN0cnVjdCBicmN0bF9kYXRhIGJyY3RsOworCXN0cnVjdCBkaWZmX2RhdGEgZGlmZjsKKwlzdHJ1Y3QgZXhwcl9kYXRhIGV4cHI7CisJc3RydWN0IGdldGZhdHRyX2RhdGEgZ2V0ZmF0dHI7CisJc3RydWN0IGxzb2ZfZGF0YSBsc29mOworCXN0cnVjdCBtb2Rwcm9iZV9kYXRhIG1vZHByb2JlOworCXN0cnVjdCBtb3JlX2RhdGEgbW9yZTsKKwlzdHJ1Y3Qgc3R0eV9kYXRhIHN0dHk7CisJc3RydWN0IHRyX2RhdGEgdHI7CisJc3RydWN0IHRyYWNlcm91dGVfZGF0YSB0cmFjZXJvdXRlOworCXN0cnVjdCB2aV9kYXRhIHZpOworCXN0cnVjdCBiYXNlbmFtZV9kYXRhIGJhc2VuYW1lOworCXN0cnVjdCBjYWxfZGF0YSBjYWw7CisJc3RydWN0IGNoZ3JwX2RhdGEgY2hncnA7CisJc3RydWN0IGNobW9kX2RhdGEgY2htb2Q7CisJc3RydWN0IGNtcF9kYXRhIGNtcDsKKwlzdHJ1Y3QgY3BfZGF0YSBjcDsKKwlzdHJ1Y3QgY3Bpb19kYXRhIGNwaW87CisJc3RydWN0IGN1dF9kYXRhIGN1dDsKKwlzdHJ1Y3QgZGF0ZV9kYXRhIGRhdGU7CisJc3RydWN0IGRkX2RhdGEgZGQ7CisJc3RydWN0IGRmX2RhdGEgZGY7CisJc3RydWN0IGR1X2RhdGEgZHU7CisJc3RydWN0IGVudl9kYXRhIGVudjsKKwlzdHJ1Y3QgZXhwYW5kX2RhdGEgZXhwYW5kOworCXN0cnVjdCBmaWxlX2RhdGEgZmlsZTsKKwlzdHJ1Y3QgZmluZF9kYXRhIGZpbmQ7CisJc3RydWN0IGdyZXBfZGF0YSBncmVwOworCXN0cnVjdCBoZWFkX2RhdGEgaGVhZDsKKwlzdHJ1Y3QgaWNvbnZfZGF0YSBpY29udjsKKwlzdHJ1Y3QgaWRfZGF0YSBpZDsKKwlzdHJ1Y3Qga2lsbF9kYXRhIGtpbGw7CisJc3RydWN0IGxuX2RhdGEgbG47CisJc3RydWN0IGxvZ2dlcl9kYXRhIGxvZ2dlcjsKKwlzdHJ1Y3QgbHNfZGF0YSBsczsKKwlzdHJ1Y3QgbWtkaXJfZGF0YSBta2RpcjsKKwlzdHJ1Y3QgbWtmaWZvX2RhdGEgbWtmaWZvOworCXN0cnVjdCBuaWNlX2RhdGEgbmljZTsKKwlzdHJ1Y3QgbmxfZGF0YSBubDsKKwlzdHJ1Y3Qgb2RfZGF0YSBvZDsKKwlzdHJ1Y3QgcGFzdGVfZGF0YSBwYXN0ZTsKKwlzdHJ1Y3QgcGF0Y2hfZGF0YSBwYXRjaDsKKwlzdHJ1Y3QgcHNfZGF0YSBwczsKKwlzdHJ1Y3QgcmVuaWNlX2RhdGEgcmVuaWNlOworCXN0cnVjdCBzZWRfZGF0YSBzZWQ7CisJc3RydWN0IHNvcnRfZGF0YSBzb3J0OworCXN0cnVjdCBzcGxpdF9kYXRhIHNwbGl0OworCXN0cnVjdCBzdHJpbmdzX2RhdGEgc3RyaW5nczsKKwlzdHJ1Y3QgdGFpbF9kYXRhIHRhaWw7CisJc3RydWN0IHRhcl9kYXRhIHRhcjsKKwlzdHJ1Y3QgdGVlX2RhdGEgdGVlOworCXN0cnVjdCB0b3VjaF9kYXRhIHRvdWNoOworCXN0cnVjdCB1bGltaXRfZGF0YSB1bGltaXQ7CisJc3RydWN0IHVuaXFfZGF0YSB1bmlxOworCXN0cnVjdCB1dWRlY29kZV9kYXRhIHV1ZGVjb2RlOworCXN0cnVjdCB3Y19kYXRhIHdjOworCXN0cnVjdCB4YXJnc19kYXRhIHhhcmdzOworfSB0aGlzOwpkaWZmIC0tZ2l0IGEvYW5kcm9pZC9kZXZpY2UvZ2VuZXJhdGVkL2hlbHAuaCBiL2FuZHJvaWQvZGV2aWNlL2dlbmVyYXRlZC9oZWxwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWMwMDA5MQotLS0gL2Rldi9udWxsCisrKyBiL2FuZHJvaWQvZGV2aWNlL2dlbmVyYXRlZC9oZWxwLmgKQEAgLTAsMCArMSw2ODYgQEAKKyNkZWZpbmUgSEVMUF90b3lib3hfZm9yY2Vfbm9tbXUgIldoZW4gdXNpbmcgbXVzbC1saWJjIG9uIGEgbm9tbXUgc3lzdGVtLCB5b3UnbGwgbmVlZCB0byBzYXkgXCJ5XCIgaGVyZVxudW5sZXNzIHlvdSB1c2VkIHRoZSBwYXRjaCBpbiB0aGUgbWNtLWJ1aWxkYWxsLnNoIHNjcmlwdC4gWW91IGNhbiBhbHNvXG5zYXkgXCJ5XCIgaGVyZSB0byB0ZXN0IHRoZSBub21tdSBjb2RlcGF0aHMgb24gYW4gbW11IHN5c3RlbS5cblxuQSBub21tdSBzeXN0ZW0gY2FuJ3QgdXNlIGZvcmsoKSwgaXQgY2FuIG9ubHkgdmZvcmsoKSB3aGljaCBzdXNwZW5kc1xudGhlIHBhcmVudCB1bnRpbCB0aGUgY2hpbGQgY2FsbHMgZXhlYygpIG9yIGV4aXRzLiBXaGVuIGEgcHJvZ3JhbVxubmVlZHMgYSBzZWNvbmQgaW5zdGFuY2Ugb2YgaXRzZWxmIHRvIHJ1biBzcGVjaWZpYyBjb2RlIGF0IHRoZSBzYW1lXG50aW1lIGFzIHRoZSBwYXJlbnQsIGl0IG11c3QgdXNlIGEgbW9yZSBjb21wbGljYXRlZCBhcHByb2FjaCAoc3VjaCBhc1xuZXhlYyhcIi9wcm9jL3NlbGYvZXhlXCIpIHRoZW4gcGFzcyBkYXRhIHRvIHRoZSBuZXcgY2hpbGQgdGhyb3VnaCBhIHBpcGUpXG53aGljaCBpcyBsYXJnZXIgYW5kIHNsb3dlciwgZXNwZWNpYWxseSBmb3IgdGhpbmdzIGxpa2UgdG95c2ggc3Vic2hlbGxzXG50aGF0IG5lZWQgdG8gZHVwbGljYXRlIGEgbG90IG9mIGludGVybmFsIHN0YXRlIGluIHRoZSBjaGlsZCBwcm9jZXNzXG5mb3JrKCkgZ2l2ZXMgeW91IGZvciBmcmVlLlxuXG5MaWJyYXJpZXMgbGlrZSB1Y2xpYmMgb21pdCBmb3JrKCkgb24gbm9tbXUgc3lzdGVtcywgYWxsb3dpbmdcbmNvbXBpbGUtdGltZSBwcm9iZXMgdG8gc2VsZWN0IHdoaWNoIGNvZGVwYXRoIHRvIHVzZS4gQnV0IG11c2xcbmludGVudGlvbmFsbHkgaW5jbHVkZXMgYSBicm9rZW4gdmVyc2lvbiBvZiBmb3JrKCkgdGhhdCBhbHdheXMgcmV0dXJuc1xuLUVOT1NZUyBvbiBub21tdSBzeXN0ZW1zLCBhbmQgZ29lcyBvdXQgb2YgaXRzIHdheSB0byBwcmV2ZW50IGFueVxuY3Jvc3MtY29tcGlsZSBjb21wYXRpYmxlIGNvbXBpbGUtdGltZSBwcm9iZXMgZm9yIGEgbm9tbXUgc3lzdGVtLlxuKEl0IGRvZXNuJ3QgZXZlbiAjZGVmaW5lIF9fTVVTTF9fIGluIGZlYXR1cmVzLmguKSBNdXNsIGRvZXMgdGhpc1xuZGVzcGl0ZSB0aGUgZmFjdCB0aGF0IGEgbm9tbXUgc3lzdGVtIGNhbid0IGV2ZW4gcnVuIHN0YW5kYXJkIEVMRlxuYmluYXJpZXMgKHJlcXVpcmluZyBzcGVjaWFsbHkgcGFja2FnZWQgZXhlY3V0YWJsZXMpIGJlY2F1c2UgaXQgd2FudHNcbnRvIGZvcmNlIGV2ZXJ5IHByb2dyYW0gdG8gZWl0aGVyIGluY2x1ZGUgYWxsIG5vbW11IGNvZGUgaW4gZXZlcnlcbmluc3RhbmNlIGV2ZXIgYnVpbHQsIG9yIGRyb3Agbm9tbXUgc3VwcG9ydCBhbHRvZ2V0aGVyLlxuXG5CdWlsZGluZyBhIHNjcmlwdHMvbWNtLWJ1aWxkYWxsLnNoIHRvb2xjaGFpbiBwYXRjaGVzIG11c2wgdG8gZml4IHRoaXMuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X3VpZF91c3IgIldoZW4gY29tbWFuZHMgbGlrZSB1c2VyYWRkL2dyb3VwYWRkIGFsbG9jYXRlIHVzZXIgSURzLCBzdGFydCBoZXJlLiIKKworI2RlZmluZSBIRUxQX3RveWJveF91aWRfc3lzICJXaGVuIGNvbW1hbmRzIGxpa2UgdXNlcmFkZC9ncm91cGFkZCBhbGxvY2F0ZSBzeXN0ZW0gSURzLCBzdGFydCBoZXJlLiIKKworI2RlZmluZSBIRUxQX3RveWJveF9kZWJ1ZyAiRW5hYmxlIGV4dHJhIGNoZWNrcyBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLiBBbGwgb2YgdGhlbSBjYXRjaFxudGhpbmdzIHRoYXQgY2FuIG9ubHkgZ28gd3JvbmcgYXQgZGV2ZWxvcG1lbnQgdGltZSwgbm90IHJ1bnRpbWUuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X25vcmVjdXJzZSAiV2hlbiBvbmUgdG95Ym94IGNvbW1hbmQgY2FsbHMgYW5vdGhlciwgdXN1YWxseSBpdCBqdXN0IGNhbGxzIHRoZSBuZXdcbmNvbW1hbmQncyBtYWluKCkgZnVuY3Rpb24gcmF0aGVyIHRoYW4gc2VhcmNoaW5nIHRoZSAkUEFUSCBhbmQgY2FsbGluZ1xuZXhlYyBvbiBhbm90aGVyIGZpbGUgKHdoaWNoIGlzIG11Y2ggc2xvd2VyKS5cblxuVGhpcyBkaXNhYmxlcyB0aGF0IG9wdGltaXphdGlvbiwgc28gdG95Ym94IHdpbGwgcnVuIGV4dGVybmFsIGNvbW1hbmRzXG4gICAgICAgZXZlbiB3aGVuIGl0IGhhcyBhIGJ1aWx0LWluIHZlcnNpb24gb2YgdGhhdCBjb21tYW5kLiBUaGlzIHJlcXVpcmVzXG4gICAgICAgdG95Ym94IHN5bWxpbmtzIHRvIGJlIGluc3RhbGxlZCBpbiB0aGUgJFBBVEgsIG9yIHJlLWludm9raW5nIHRoZVxuICAgICAgIFwidG95Ym94XCIgbXVsdGlwbGV4ZXIgY29tbWFuZCBieSBuYW1lLiIKKworI2RlZmluZSBIRUxQX3RveWJveF9mcmVlICJXaGVuIGEgcHJvZ3JhbSBleGl0cywgdGhlIG9wZXJhdGluZyBzeXN0ZW0gd2lsbCBjbGVhbiB1cCBhZnRlciBpdFxuKGZyZWUgbWVtb3J5LCBjbG9zZSBmaWxlcywgZXRjKS4gVG8gc2F2ZSBzaXplLCB0b3lib3ggdXN1YWxseSByZWxpZXNcbm9uIHRoaXMgYmVoYXZpb3IuIElmIHlvdSdyZSBydW5uaW5nIHRveWJveCB1bmRlciBhIGRlYnVnZ2VyIG9yXG53aXRob3V0IGEgcmVhbCBPUyAoYWxhIG5ld2xpYitsaWJnbG9zcyksIGVuYWJsZSB0aGlzIHRvIG1ha2UgdG95Ym94XG5jbGVhbiB1cCBhZnRlciBpdHNlbGYuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X3poZWxwICJDb21wcmVzcyBoZWxwIHdpdGggZ3ppcCAtOSwgZGVmbGF0aW5nIHdoZW4gZGlzcGxheWVkLiBUaGlzIG1ha2VzIHRoZVxuYmluYXJ5IHNtYWxsZXIgYnV0IGNhbiBpbmNyZWFzZSBydW50aW1lIG1lbW9yeSB1c2FnZS4iCisKKyNkZWZpbmUgSEVMUF90b3lib3hfaGVscF9kYXNoZGFzaCAiU3VwcG9ydCAtLWhlbHAgYXJndW1lbnQgaW4gYWxsIGNvbW1hbmRzLCBldmVuIG9uZXMgd2l0aCBhIE5VTExcbm9wdHN0cmluZy4gKFVzZSBUT1lGTEFHX05PSEVMUCB0byBkaXNhYmxlLikgUHJvZHVjZXMgdGhlIHNhbWUgb3V0cHV0XG5hcyBcImhlbHAgY29tbWFuZFwiLiAtLXZlcnNpb24gc2hvd3MgdG95Ym94IHZlcnNpb24uIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X2hlbHAgIkluY2x1ZGUgaGVscCB0ZXh0IGZvciBlYWNoIGNvbW1hbmQuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X2Zsb2F0ICJJbmNsdWRlIGZsb2F0aW5nIHBvaW50IHN1cHBvcnQgaW5mcmFzdHJ1Y3R1cmUgYW5kIGNvbW1hbmRzIHRoYXRcbnJlcXVpcmUgaXQuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X2xpYnogIlVzZSBsaWJ6IGZvciBneiBzdXBwb3J0LiIKKworI2RlZmluZSBIRUxQX3RveWJveF9saWJjcnlwdG8gIlVzZSBmYXN0ZXIgaGFzaCBmdW5jdGlvbnMgb3V0IG9mIGV4dGVybmFsIC1sY3J5cHRvIGxpYnJhcnkuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X3NtYWNrICJJbmNsdWRlIFNNQUNLIG9wdGlvbnMgaW4gY29tbWFuZHMgbGlrZSBscyBmb3Igc3lzdGVtcyBsaWtlIFRpemVuLiIKKworI2RlZmluZSBIRUxQX3RveWJveF9zZWxpbnV4ICJJbmNsdWRlIFNFTGludXggb3B0aW9ucyBpbiBjb21tYW5kcyBzdWNoIGFzIGxzLCBhbmQgYWRkXG5TRUxpbnV4LXNwZWNpZmljIGNvbW1hbmRzIHN1Y2ggYXMgY2hjb24gdG8gdGhlIEFuZHJvaWQgbWVudS4iCisKKyNkZWZpbmUgSEVMUF90b3lib3hfbHNtX25vbmUgIkRvbid0IHRyeSB0byBhY2hpZXZlIFwid2F0ZXJ0aWdodFwiIGJ5IHBsdWdnaW5nIHRoZSBob2xlcyBpbiBhXG5jb2xsYW5kZXIsIGluc3RlYWQgdXNlIGNvbnZlbnRpb25hbCB1bml4IHNlY3VyaXR5IChhbmQgcG9zc2libHlcbkxpbnV4IENvbnRhaW5lcnMpIGZvciBhIHNpbXBsZSBzdHJhaWdodGZvcndhcmQgc3lzdGVtLiIKKworI2RlZmluZSBIRUxQX3RveWJveF9zdWlkICJTdXBwb3J0IGZvciB0aGUgU2V0IFVzZXIgSUQgYml0LCB0byBpbnN0YWxsIHRveWJveCBzdWlkIHJvb3QgYW5kIGRyb3BcbnBlcm1pc3Npb25zIGZvciBjb21tYW5kcyB3aGljaCBkbyBub3QgcmVxdWlyZSByb290IGFjY2Vzcy4gVG8gdXNlXG50aGlzIGNoYW5nZSBvd25lcnNoaXAgb2YgdGhlIGZpbGUgdG8gdGhlIHJvb3QgdXNlciBhbmQgc2V0IHRoZSBzdWlkXG5iaXQgaW4gdGhlIGZpbGUgcGVybWlzc2lvbnM6XG5cbmNob3duIHJvb3Q6cm9vdCB0b3lib3g7IGNobW9kICtzIHRveWJveFxuXG5wcm9tcHQgXCJTZWN1cml0eSBCbGFua2V0XCJcbmRlZmF1bHQgVE9ZQk9YX0xTTV9OT05FXG5oZWxwXG5TZWxlY3QgYSBMaW51eCBTZWN1cml0eSBNb2R1bGUgdG8gY29tcGxpY2F0ZSB5b3VyIHN5c3RlbVxudW50aWwgeW91IGNhbid0IGZpbmQgaG9sZXMgaW4gaXQuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94ICJ1c2FnZTogdG95Ym94IFstLWxvbmcgfCAtLWhlbHAgfCAtLXZlcnNpb24gfCBbQ09NTUFORF0gW0FSR1VNRU5UUy4uLl1dXG5cbldpdGggbm8gYXJndW1lbnRzLCBcInRveWJveFwiIHNob3dzIGF2YWlsYWJsZSBDT01NQU5EIG5hbWVzLiBBZGQgLS1sb25nXG50byBpbmNsdWRlIHN1Z2dlc3RlZCBpbnN0YWxsIHBhdGggZm9yIGVhY2ggY29tbWFuZCwgc2VlXG5odHRwczovL2xhbmRsZXkubmV0L3RveWJveC9mYXEuaHRtbCNpbnN0YWxsIGZvciBkZXRhaWxzLlxuXG5GaXJzdCBhcmd1bWVudCBpcyBuYW1lIG9mIGEgQ09NTUFORCB0byBydW4sIGZvbGxvd2VkIGJ5IGFueSBBUkdVTUVOVFNcbnRvIHRoYXQgY29tbWFuZC4gTW9zdCB0b3lib3ggY29tbWFuZHMgYWxzbyB1bmRlcnN0YW5kOlxuXG4tLWhlbHAJCVNob3cgY29tbWFuZCBoZWxwIChvbmx5KVxuLS12ZXJzaW9uCVNob3cgdG95Ym94IHZlcnNpb24gKG9ubHkpXG5cblRoZSBmaWxlbmFtZSBcIi1cIiBtZWFucyBzdGRpbi9zdGRvdXQsIGFuZCBcIi0tXCIgc3RvcHMgYXJndW1lbnQgcGFyc2luZy5cblxuTnVtZXJpY2FsIGFyZ3VtZW50cyBhY2NlcHQgYSBzaW5nbGUgbGV0dGVyIHN1ZmZpeCBmb3JcbmtpbG8sIG1lZ2EsIGdpZ2EsIHRlcmEsIHBldGEsIGFuZCBleGFieXRlcywgcGx1cyBhbiBhZGRpdGlvbmFsXG5cImRcIiB0byBpbmRpY2F0ZSBkZWNpbWFsIDEwMDAncyBpbnN0ZWFkIG9mIDEwMjQuXG5cbkR1cmF0aW9ucyBjYW4gYmUgZGVjaW1hbCBmcmFjdGlvbnMgYW5kIGFjY2VwdCBtaW51dGUgKFwibVwiKSwgaG91ciAoXCJoXCIpLFxub3IgZGF5IChcImRcIikgc3VmZml4ZXMgKHNvIDAuMW0gPSA2cykuIgorCisjZGVmaW5lIEhFTFBfc2V0ZW5mb3JjZSAidXNhZ2U6IHNldGVuZm9yY2UgW2VuZm9yY2luZ3xwZXJtaXNzaXZlfDF8MF1cblxuU2V0cyB3aGV0aGVyIFNFTGludXggaXMgZW5mb3JjaW5nICgxKSBvciBwZXJtaXNzaXZlICgwKS4iCisKKyNkZWZpbmUgSEVMUF9zZW5kZXZlbnQgInVzYWdlOiBzZW5kZXZlbnQgREVWSUNFIFRZUEUgQ09ERSBWQUxVRVxuXG5TZW5kcyBhIExpbnV4IGlucHV0IGV2ZW50LiIKKworI2RlZmluZSBIRUxQX3J1bmNvbiAidXNhZ2U6IHJ1bmNvbiBDT05URVhUIENPTU1BTkQgW0FSR1MuLi5dXG5cblJ1biBhIGNvbW1hbmQgaW4gYSBzcGVjaWZpZWQgc2VjdXJpdHkgY29udGV4dC4iCisKKyNkZWZpbmUgSEVMUF9yZXN0b3JlY29uICJ1c2FnZTogcmVzdG9yZWNvbiBbLURdIFstRl0gWy1SXSBbLW5dIFstdl0gRklMRS4uLlxuXG5SZXN0b3JlcyB0aGUgZGVmYXVsdCBzZWN1cml0eSBjb250ZXh0cyBmb3IgdGhlIGdpdmVuIGZpbGVzLlxuXG4tRAlBcHBseSB0byAvZGF0YS9kYXRhIHRvb1xuLUYJRm9yY2UgcmVzZXRcbi1SCVJlY3Vyc2UgaW50byBkaXJlY3Rvcmllc1xuLW4JRG9uJ3QgbWFrZSBhbnkgY2hhbmdlczsgdXNlZnVsIHdpdGggLXYgdG8gc2VlIHdoYXQgd291bGQgY2hhbmdlXG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfbG9nICJ1c2FnZTogbG9nIFstcCBQUkldIFstdCBUQUddIFtNRVNTQUdFLi4uXVxuXG5Mb2dzIG1lc3NhZ2UgKG9yIHN0ZGluKSB0byBsb2djYXQuXG5cbi1wCVVzZSB0aGUgZ2l2ZW4gcHJpb3JpdHkgaW5zdGVhZCBvZiBJTkZPOlxuCWQ6IERFQlVHICBlOiBFUlJPUiAgZjogRkFUQUwgIGk6IElORk8gIHY6IFZFUkJPU0UgIHc6IFdBUk4gIHM6IFNJTEVOVFxuLXQJVXNlIHRoZSBnaXZlbiB0YWcgaW5zdGVhZCBvZiBcImxvZ1wiIgorCisjZGVmaW5lIEhFTFBfbG9hZF9wb2xpY3kgInVzYWdlOiBsb2FkX3BvbGljeSBGSUxFXG5cbkxvYWQgdGhlIHNwZWNpZmllZCBTRUxpbnV4IHBvbGljeSBmaWxlLiIKKworI2RlZmluZSBIRUxQX2dldGVuZm9yY2UgInVzYWdlOiBnZXRlbmZvcmNlXG5cblNob3dzIHdoZXRoZXIgU0VMaW51eCBpcyBkaXNhYmxlZCwgZW5mb3JjaW5nLCBvciBwZXJtaXNzaXZlLiIKKworI2RlZmluZSBIRUxQX3NrZWxldG9uX2FsaWFzICJ1c2FnZTogc2tlbGV0b25fYWxpYXMgWy1kcV0gWy1iIE5VTUJFUl1cblxuRXhhbXBsZSBvZiBhIHNlY29uZCBjb21tYW5kIHdpdGggZGlmZmVyZW50IGFyZ3VtZW50cyBpbiB0aGUgc2FtZSBzb3VyY2VcbmZpbGUgYXMgdGhlIGZpcnN0LiBUaGlzIGFsbG93cyBzaGFyZWQgaW5mcmFzdHJ1Y3R1cmUgb3V0c2lkZSBvZiBsaWIvLiIKKworI2RlZmluZSBIRUxQX3NrZWxldG9uICJ1c2FnZTogc2tlbGV0b24gWy1hXSBbLWIgU1RSSU5HXSBbLWMgTlVNQkVSXSBbLWQgTElTVF0gWy1lIENPVU5UXSBbLi4uXVxuXG5UZW1wbGF0ZSBmb3IgbmV3IGNvbW1hbmRzLiBZb3UgZG9uJ3QgbmVlZCB0aGlzLlxuXG5XaGVuIGNyZWF0aW5nIGEgbmV3IGNvbW1hbmQsIGNvcHkgdGhpcyBmaWxlIGFuZCBkZWxldGUgdGhlIHBhcnRzIHlvdVxuZG9uJ3QgbmVlZC4gQmUgc3VyZSB0byByZXBsYWNlIGFsbCBpbnN0YW5jZXMgb2YgXCJza2VsZXRvblwiICh1cHBlciBhbmQgbG93ZXJcbmNhc2UpIHdpdGggeW91ciBuZXcgY29tbWFuZCBuYW1lLlxuXG5Gb3Igc2ltcGxlIGNvbW1hbmRzLCBcImhlbGxvLmNcIiBpcyBwcm9iYWJseSBhIGJldHRlciBzdGFydGluZyBwb2ludC4iCisKKyNkZWZpbmUgSEVMUF9sb2dwYXRoICJ1c2FnZTogbG9ncGF0aCAuLi5cblxuQXBwZW5kIGNvbW1hbmQgbGluZSB0byAkTE9HUEFUSCwgdGhlbiBjYWxsIHNlY29uZCBpbnN0YW5jZVxub2YgY29tbWFuZCBpbiAkUEFUSC4iCisKKyNkZWZpbmUgSEVMUF9ob3N0aWQgInVzYWdlOiBob3N0aWRcblxuUHJpbnQgdGhlIG51bWVyaWMgaWRlbnRpZmllciBmb3IgdGhlIGN1cnJlbnQgaG9zdC4iCisKKyNkZWZpbmUgSEVMUF9oZWxsbyAidXNhZ2U6IGhlbGxvXG5cbkEgaGVsbG8gd29ybGQgcHJvZ3JhbS5cblxuTW9zdGx5IHVzZWQgYXMgYSBzaW1wbGUgdGVtcGxhdGUgZm9yIGFkZGluZyBuZXcgY29tbWFuZHMuXG5PY2Nhc2lvbmFsbHkgbmljZSB0byBzbW9rZXRlc3Qga2VybmVsIGJvb3RpbmcgdmlhIFwiaW5pdD0vdXNyL2Jpbi9oZWxsb1wiLiIKKworI2RlZmluZSBIRUxQX2RlbW9fdXRmOHRvd2MgInVzYWdlOiBkZW1vX3V0Zjh0b3djXG5cblByaW50IGRpZmZlcmVuY2VzIGJldHdlZW4gdG95Ym94J3MgdXRmOCBjb252ZXJzaW9uIHJvdXRpbmVzIHZzIGxpYmMgZHUgam91ci4iCisKKyNkZWZpbmUgSEVMUF9kZW1vX3NjYW5rZXkgInVzYWdlOiBkZW1vX3NjYW5rZXlcblxuTW92ZSBhIGxldHRlciBhcm91bmQgdGhlIHNjcmVlbi4gSGl0IEVTQyB0byBleGl0LiIKKworI2RlZmluZSBIRUxQX2RlbW9fbnVtYmVyICJ1c2FnZTogZGVtb19udW1iZXIgWy1oc2JpXSBbLUQgTEVOXSBOVU1CRVIuLi5cblxuLUQJb3V0cHV0IGZpZWxkIGlzIExFTiBjaGFyc1xuLU0JaW5wdXQgdW5pdHMgKGluZGV4IGludG8gYmttZ3RwZSlcbi1jCUNvbW1hIGNvbW1hIGRvd24gZG8gYmUgZG8gZG93biBkb3duXG4tYglVc2UgXCJCXCIgZm9yIHNpbmdsZSBieXRlIHVuaXRzIChIUl9CKVxuLWQJRGVjaW1hbCB1bml0c1xuLWgJSHVtYW4gcmVhZGFibGVcbi1zCVNwYWNlIGJldHdlZW4gbnVtYmVyIGFuZCB1bml0cyAoSFJfU1BBQ0UpIgorCisjZGVmaW5lIEhFTFBfZGVtb19tYW55X29wdGlvbnMgInVzYWdlOiBkZW1vX21hbnlfb3B0aW9ucyAtW2EtekEtWl1cblxuUHJpbnQgdGhlIG9wdGZsYWdzIHZhbHVlIG9mIHRoZSBjb21tYW5kIGFyZ3VtZW50cywgaW4gaGV4LiIKKworI2RlZmluZSBIRUxQX3Vtb3VudCAidXNhZ2U6IHVtb3VudCBbLWEgWy10IFRZUEVbLFRZUEUuLi5dXV0gWy12cmZEXSBbRElSLi4uXVxuXG5Vbm1vdW50IHRoZSBsaXN0ZWQgZmlsZXN5c3RlbXMuXG5cbi1hCVVubW91bnQgYWxsIG1vdW50cyBpbiAvcHJvYy9tb3VudHMgaW5zdGVhZCBvZiBjb21tYW5kIGxpbmUgbGlzdFxuLUQJRG9uJ3QgZnJlZSBsb29wYmFjayBkZXZpY2Uocylcbi1mCUZvcmNlIHVubW91bnRcbi1sCUxhenkgdW5tb3VudCAoZGV0YWNoIGZyb20gZmlsZXN5c3RlbSBub3csIGNsb3NlIHdoZW4gbGFzdCB1c2VyIGRvZXMpXG4tbglEb24ndCB1c2UgL3Byb2MvbW91bnRzXG4tcglSZW1vdW50IHJlYWQgb25seSBpZiB1bm1vdW50aW5nIGZhaWxzXG4tdAlSZXN0cmljdCBcImFsbFwiIHRvIG1vdW50cyBvZiBUWVBFIChvciB1c2UgXCJub1RZUEVcIiB0byBza2lwKVxuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX3N5bmMgInVzYWdlOiBzeW5jXG5cbldyaXRlIHBlbmRpbmcgY2FjaGVkIGRhdGEgdG8gZGlzayAoc3luY2hyb25pemUpLCBibG9ja2luZyB1bnRpbCBkb25lLiIKKworI2RlZmluZSBIRUxQX3N1ICJ1c2FnZTogc3UgWy1scF0gWy11IFVJRF0gWy1nIEdJRCwuLi5dIFstcyBTSEVMTF0gWy1jIENNRF0gW1VTRVIgW0NPTU1BTkQuLi5dXVxuXG5Td2l0Y2ggdXNlciwgcHJvbXB0aW5nIGZvciBwYXNzd29yZCBvZiBuZXcgdXNlciB3aGVuIG5vdCBydW4gYXMgcm9vdC5cblxuV2l0aCBvbmUgYXJndW1lbnQsIHN3aXRjaCB0byBVU0VSIGFuZCBydW4gdXNlcidzIHNoZWxsIGZyb20gL2V0Yy9wYXNzd2QuXG5XaXRoIG5vIGFyZ3VtZW50cywgVVNFUiBpcyByb290LiBJZiBDT01NQU5EIGxpbmUgcHJvdmlkZWQgYWZ0ZXIgVVNFUixcbmV4ZWMoKSBpdCBhcyBuZXcgVVNFUiAoYnlwYXNzaW5nIHNoZWxsKS4gSWYgLXUgb3IgLWcgc3BlY2lmaWVkLCBmaXJzdFxuYXJndW1lbnQgKGlmIGFueSkgaXNuJ3QgVVNFUiAoaXQncyBDT01NQU5EKS5cblxuZmlyc3QgYXJndW1lbnQgaXMgVVNFUiBuYW1lIHRvIHN3aXRjaCB0byAod2hpY2ggbXVzdCBleGlzdCkuXG5Ob24tcm9vdCB1c2VycyBhcmUgcHJvbXB0ZWQgZm9yIG5ldyB1c2VyJ3MgcGFzc3dvcmQuXG5cbi1zCVNoZWxsIHRvIHVzZSAoZGVmYXVsdCBpcyB1c2VyJ3Mgc2hlbGwgZnJvbSAvZXRjL3Bhc3N3ZClcbi1jCUNvbW1hbmQgbGluZSB0byBwYXNzIHRvIC1zIHNoZWxsIChhbGEgc2ggLWMgXCJDTURcIilcbi1sCVJlc2V0IGVudmlyb25tZW50IGFzIGlmIG5ldyBsb2dpbi5cbi11CVN3aXRjaCB0byBVSUQgaW5zdGVhZCBvZiBVU0VSXG4tZwlTd2l0Y2ggdG8gR0lEIChvbmx5IHJvb3QgYWxsb3dlZCwgY2FuIGJlIGNvbW1hIHNlcGFyYXRlZCBsaXN0KVxuLXAJUHJlc2VydmUgZW52aXJvbm1lbnQgKGV4Y2VwdCBmb3IgJFBBVEggYW5kICRJRlMpIgorCisjZGVmaW5lIEhFTFBfc2VxICJ1c2FnZTogc2VxIFstd3wtZiBmbXRfc3RyXSBbLXMgc2VwX3N0cl0gW2ZpcnN0XSBbaW5jcmVtZW50XSBsYXN0XG5cbkNvdW50IGZyb20gZmlyc3QgdG8gbGFzdCwgYnkgaW5jcmVtZW50LiBPbWl0dGVkIGFyZ3VtZW50cyBkZWZhdWx0XG50byAxLiBUd28gYXJndW1lbnRzIGFyZSB1c2VkIGFzIGZpcnN0IGFuZCBsYXN0LiBBcmd1bWVudHMgY2FuIGJlXG5uZWdhdGl2ZSBvciBmbG9hdGluZyBwb2ludC5cblxuLWYJVXNlIGZtdF9zdHIgYXMgYSBwcmludGYtc3R5bGUgZmxvYXRpbmcgcG9pbnQgZm9ybWF0IHN0cmluZ1xuLXMJVXNlIHNlcF9zdHIgYXMgc2VwYXJhdG9yLCBkZWZhdWx0IGlzIGEgbmV3bGluZSBjaGFyYWN0ZXJcbi13CVBhZCB0byBlcXVhbCB3aWR0aCB3aXRoIGxlYWRpbmcgemVyb2VzIgorCisjZGVmaW5lIEhFTFBfcGlkb2YgInVzYWdlOiBwaWRvZiBbLXNdIFstbyBvbWl0cGlkWyxvbWl0cGlkLi4uXV0gW05BTUUuLi5dXG5cblByaW50IHRoZSBQSURzIG9mIGFsbCBwcm9jZXNzZXMgd2l0aCB0aGUgZ2l2ZW4gbmFtZXMuXG5cbi1vCU9taXQgUElEKHMpXG4tcwlTaW5nbGUgc2hvdCwgb25seSByZXR1cm4gb25lIHBpZFxuLXgJTWF0Y2ggc2hlbGwgc2NyaXB0cyB0b28iCisKKyNkZWZpbmUgSEVMUF9wYXNzd2Rfc2FkICJQYXNzd29yZCBjaGFuZ2VzIGFyZSBjaGVja2VkIHRvIG1ha2Ugc3VyZSB0aGV5J3JlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZyxcbmRvbid0IGluY2x1ZGUgdGhlIGVudGlyZSB1c2VybmFtZSAoYnV0IG5vdCBhIHN1YnNldCBvZiBpdCksIG9yIHRoZSBlbnRpcmVcbnByZXZpb3VzIHBhc3N3b3JkIChidXQgY2hhbmdpbmcgcGFzc3dvcmQxLCBwYXNzd29yZDIsIHBhc3N3b3JkMyBpcyBmaW5lKS5cblRoaXMgaGV1cmlzdGljIGFjY2VwdHMgXCJhYWFhYWFcIiBhbmQgXCIxMjM0NTZcIi4iCisKKyNkZWZpbmUgSEVMUF9wYXNzd2QgInVzYWdlOiBwYXNzd2QgWy1hIEFMR09dIFstZGx1XSBbVVNFUl1cblxuVXBkYXRlIHVzZXIncyBsb2dpbiBwYXNzd29yZC4gRGVmYXVsdHMgdG8gY3VycmVudCB1c2VyLlxuXG4tYSBBTEdPCUVuY3J5cHRpb24gbWV0aG9kIChkZXMsIG1kNSwgc2hhMjU2LCBzaGE1MTIpIGRlZmF1bHQ6IG1kNVxuLWQJCVNldCBwYXNzd29yZCB0byAnJ1xuLWwJCUxvY2sgKGRpc2FibGUpIGFjY291bnRcbi11CQlVbmxvY2sgKGVuYWJsZSkgYWNjb3VudCIKKworI2RlZmluZSBIRUxQX21vdW50ICJ1c2FnZTogbW91bnQgWy1hZkZyc3Z3XSBbLXQgVFlQRV0gWy1vIE9QVElPTixdIFtbREVWSUNFXSBESVJdXG5cbk1vdW50IG5ldyBmaWxlc3lzdGVtKHMpIG9uIGRpcmVjdG9yaWVzLiBXaXRoIG5vIGFyZ3VtZW50cywgZGlzcGxheSBleGlzdGluZ1xubW91bnRzLlxuXG4tYQlNb3VudCBhbGwgZW50cmllcyBpbiAvZXRjL2ZzdGFiICh3aXRoIC10LCBvbmx5IGVudHJpZXMgb2YgdGhhdCBUWVBFKVxuLU8JT25seSBtb3VudCAtYSBlbnRyaWVzIHRoYXQgaGF2ZSB0aGlzIG9wdGlvblxuLWYJRmFrZSBpdCAoZG9uJ3QgYWN0dWFsbHkgbW91bnQpXG4tcglSZWFkIG9ubHkgKHNhbWUgYXMgLW8gcm8pXG4tdwlSZWFkL3dyaXRlIChkZWZhdWx0LCBzYW1lIGFzIC1vIHJ3KVxuLXQJU3BlY2lmeSBmaWxlc3lzdGVtIHR5cGVcbi12CVZlcmJvc2VcblxuT1BUSU9OUyBpcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIG9wdGlvbnMsIHdoaWNoIGNhbiBhbHNvIGJlIHN1cHBsaWVkXG5hcyAtLWxvbmdvcHRzLlxuXG5BdXRvZGV0ZWN0cyBsb29wYmFjayBtb3VudHMgKGEgZmlsZSBvbiBhIGRpcmVjdG9yeSkgYW5kIGJpbmQgbW91bnRzIChmaWxlXG5vbiBmaWxlLCBkaXJlY3Rvcnkgb24gZGlyZWN0b3J5KSwgc28geW91IGRvbid0IG5lZWQgdG8gc2F5IC0tYmluZCBvciAtLWxvb3AuXG5Zb3UgY2FuIGFsc28gXCJtb3VudCAtYSAvcGF0aFwiIHRvIG1vdW50IGV2ZXJ5dGhpbmcgaW4gL2V0Yy9mc3RhYiB1bmRlciAvcGF0aCxcbmV2ZW4gaWYgaXQncyBub2F1dG8uIERFVklDRSBzdGFydGluZyB3aXRoIFVVSUQ9IGlzIGlkZW50aWZpZWQgYnkgYmxraWQgLVUuIgorCisjZGVmaW5lIEhFTFBfbWt0ZW1wICJ1c2FnZTogbWt0ZW1wIFstZHF0dV0gWy1wIERJUl0gW1RFTVBMQVRFXVxuXG5TYWZlbHkgY3JlYXRlIGEgbmV3IGZpbGUgXCJESVIvVEVNUExBVEVcIiBhbmQgcHJpbnQgaXRzIG5hbWUuXG5cbi1kCUNyZWF0ZSBkaXJlY3RvcnkgaW5zdGVhZCBvZiBmaWxlICgtLWRpcmVjdG9yeSlcbi1wCVB1dCBuZXcgZmlsZSBpbiBESVIgKC0tdG1wZGlyKVxuLXEJUXVpZXQsIG5vIGVycm9yIG1lc3NhZ2VzXG4tdAlQcmVmZXIgJFRNUERJUiA+IERJUiA+IC90bXAgKGRlZmF1bHQgRElSID4gJFRNUERJUiA+IC90bXApXG4tdQlEb24ndCBjcmVhdGUgYW55dGhpbmcsIGp1c3QgcHJpbnQgd2hhdCB3b3VsZCBiZSBjcmVhdGVkXG5cbkVhY2ggWCBpbiBURU1QTEFURSBpcyByZXBsYWNlZCB3aXRoIGEgcmFuZG9tIHByaW50YWJsZSBjaGFyYWN0ZXIuIFRoZVxuZGVmYXVsdCBURU1QTEFURSBpcyB0bXAuWFhYWFhYWFhYWC4iCisKKyNkZWZpbmUgSEVMUF9ta25vZCAidXNhZ2U6IG1rbm9kIFstWiBDT05URVhUXSAuLi4gWy1tIE1PREVdIE5BTUUgVFlQRSBbTUFKT1IgTUlOT1JdXG5cbkNyZWF0ZSBhIHNwZWNpYWwgZmlsZSBOQU1FIHdpdGggYSBnaXZlbiB0eXBlLiBUWVBFIGlzIGIgZm9yIGJsb2NrIGRldmljZSxcbmMgb3IgdSBmb3IgY2hhcmFjdGVyIGRldmljZSwgcCBmb3IgbmFtZWQgcGlwZSAod2hpY2ggaWdub3JlcyBNQUpPUi9NSU5PUikuXG4tWglTZXQgc2VjdXJpdHkgY29udGV4dCB0byBjcmVhdGVkIGZpbGVcbi1tCU1vZGUgKGZpbGUgcGVybWlzc2lvbnMpIG9mIG5ldyBkZXZpY2UsIGluIG9jdGFsIG9yIHUreCBmb3JtYXQiCisKKyNkZWZpbmUgSEVMUF9zaGE1MTJzdW0gIlNlZSBtZDVzdW0iCisKKyNkZWZpbmUgSEVMUF9zaGEzODRzdW0gIlNlZSBtZDVzdW0iCisKKyNkZWZpbmUgSEVMUF9zaGEyNTZzdW0gIlNlZSBtZDVzdW0iCisKKyNkZWZpbmUgSEVMUF9zaGEyMjRzdW0gIlNlZSBtZDVzdW0iCisKKyNkZWZpbmUgSEVMUF9zaGExc3VtICJTZWUgbWQ1c3VtIgorCisjZGVmaW5lIEhFTFBfbWQ1c3VtICJ1c2FnZTogPz8/c3VtIFstYmNzXSBbRklMRV0uLi5cblxuQ2FsY3VsYXRlIGhhc2ggZm9yIGVhY2ggaW5wdXQgZmlsZSwgcmVhZGluZyBmcm9tIHN0ZGluIGlmIG5vbmUsIHdyaXRpbmdcbmhleGFkZWNpbWFsIGRpZ2l0cyB0byBzdGRvdXQgZm9yIGVhY2ggaW5wdXQgZmlsZSAobWQ1PTMyIGhleCBkaWdpdHMsXG5zaGExPTQwLCBzaGEyMjQ9NTYsIHNoYTI1Nj02NCwgc2hhMzg0PTk2LCBzaGE1MTI9MTI4KSBmb2xsb3dlZCBieSBmaWxlbmFtZS5cblxuLWIJQnJpZWYgKGhhc2ggb25seSwgbm8gZmlsZW5hbWUpXG4tYwlDaGVjayBlYWNoIGxpbmUgb2YgZWFjaCBGSUxFIGlzIHRoZSBzYW1lIGhhc2grZmlsZW5hbWUgd2UnZCBvdXRwdXRcbi1zCU5vIG91dHB1dCwgZXhpdCBzdGF0dXMgMCBpZiBhbGwgaGFzaGVzIG1hdGNoLCAxIG90aGVyd2lzZSIKKworI2RlZmluZSBIRUxQX2tpbGxhbGwgInVzYWdlOiBraWxsYWxsIFstbF0gWy1pcXZdIFstU0lHTkFMfC1zIFNJR05BTF0gUFJPQ0VTU19OQU1FLi4uXG5cblNlbmQgYSBzaWduYWwgKGRlZmF1bHQ6IFRFUk0pIHRvIGFsbCBwcm9jZXNzZXMgd2l0aCB0aGUgZ2l2ZW4gbmFtZXMuXG5cbi1pCUFzayBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSBraWxsaW5nXG4tbAlQcmludCBsaXN0IG9mIGFsbCBhdmFpbGFibGUgc2lnbmFsc1xuLXEJRG9uJ3QgcHJpbnQgYW55IHdhcm5pbmdzIG9yIGVycm9yIG1lc3NhZ2VzXG4tcwlTZW5kIFNJR05BTCBpbnN0ZWFkIG9mIFNJR1RFUk1cbi12CVJlcG9ydCBpZiB0aGUgc2lnbmFsIHdhcyBzdWNjZXNzZnVsbHkgc2VudFxuLXcJV2FpdCB1bnRpbCBhbGwgc2lnbmFsZWQgcHJvY2Vzc2VzIGFyZSBkZWFkIgorCisjZGVmaW5lIEhFTFBfZG5zZG9tYWlubmFtZSAidXNhZ2U6IGRuc2RvbWFpbm5hbWVcblxuU2hvdyBkb21haW4gdGhpcyBzeXN0ZW0gYmVsb25ncyB0byAoc2FtZSBhcyBob3N0bmFtZSAtZCkuIgorCisjZGVmaW5lIEhFTFBfaG9zdG5hbWUgInVzYWdlOiBob3N0bmFtZSBbLWJkc2ZdIFstRiBGSUxFTkFNRV0gW25ld25hbWVdXG5cbkdldC9zZXQgdGhlIGN1cnJlbnQgaG9zdG5hbWUuXG5cbi1iCVNldCBob3N0bmFtZSB0byAnbG9jYWxob3N0JyBpZiBvdGhlcndpc2UgdW5zZXRcbi1kCVNob3cgRE5TIGRvbWFpbiBuYW1lIChubyBob3N0KVxuLWYJU2hvdyBmdWxseS1xdWFsaWZpZWQgbmFtZSAoaG9zdCtkb21haW4sIEZRRE4pXG4tRglTZXQgaG9zdG5hbWUgdG8gY29udGVudHMgb2YgRklMRU5BTUVcbi1zCVNob3cgc2hvcnQgaG9zdCBuYW1lIChubyBkb21haW4pIgorCisjZGVmaW5lIEhFTFBfemNhdCAidXNhZ2U6IHpjYXQgWy1mXSBbRklMRS4uLl1cblxuRGVjb21wcmVzcyBmaWxlcyB0byBzdGRvdXQuIExpa2UgYGd6aXAgLWRjYC5cblxuLWYJRm9yY2U6IGFsbG93IHJlYWQgZnJvbSB0dHkiCisKKyNkZWZpbmUgSEVMUF9ndW56aXAgInVzYWdlOiBndW56aXAgWy1jZmt0XSBbRklMRS4uLl1cblxuRGVjb21wcmVzcyBmaWxlcy4gV2l0aCBubyBmaWxlcywgZGVjb21wcmVzc2VzIHN0ZGluIHRvIHN0ZG91dC5cbk9uIHN1Y2Nlc3MsIHRoZSBpbnB1dCBmaWxlcyBhcmUgcmVtb3ZlZCBhbmQgcmVwbGFjZWQgYnkgbmV3XG5maWxlcyB3aXRob3V0IHRoZSAuZ3ogc3VmZml4LlxuXG4tYwlPdXRwdXQgdG8gc3Rkb3V0IChhY3QgYXMgemNhdClcbi1mCUZvcmNlOiBhbGxvdyByZWFkIGZyb20gdHR5XG4tawlLZWVwIGlucHV0IGZpbGVzIChkZWZhdWx0IGlzIHRvIHJlbW92ZSlcbi10CVRlc3QgaW50ZWdyaXR5IgorCisjZGVmaW5lIEhFTFBfZ3ppcCAidXNhZ2U6IGd6aXAgWy0xOWNkZmt0XSBbRklMRS4uLl1cblxuQ29tcHJlc3MgZmlsZXMuIFdpdGggbm8gZmlsZXMsIGNvbXByZXNzZXMgc3RkaW4gdG8gc3Rkb3V0LlxuT24gc3VjY2VzcywgdGhlIGlucHV0IGZpbGVzIGFyZSByZW1vdmVkIGFuZCByZXBsYWNlZCBieSBuZXdcbmZpbGVzIHdpdGggdGhlIC5neiBzdWZmaXguXG5cbi1jCU91dHB1dCB0byBzdGRvdXRcbi1kCURlY29tcHJlc3MgKGFjdCBhcyBndW56aXApXG4tZglGb3JjZTogYWxsb3cgb3ZlcndyaXRlIG9mIG91dHB1dCBmaWxlXG4tawlLZWVwIGlucHV0IGZpbGVzIChkZWZhdWx0IGlzIHRvIHJlbW92ZSlcbi10CVRlc3QgaW50ZWdyaXR5XG4tIwlDb21wcmVzc2lvbiBsZXZlbCAxLTkgKDE6ZmFzdGVzdCwgNjpkZWZhdWx0LCA5OmJlc3QpIgorCisjZGVmaW5lIEhFTFBfZG1lc2cgInVzYWdlOiBkbWVzZyBbLUNjXSBbLXJ8LXR8LVRdIFstbiBMRVZFTF0gWy1zIFNJWkVdIFstd11cblxuUHJpbnQgb3IgY29udHJvbCB0aGUga2VybmVsIHJpbmcgYnVmZmVyLlxuXG4tQwlDbGVhciByaW5nIGJ1ZmZlciB3aXRob3V0IHByaW50aW5nXG4tYwlDbGVhciByaW5nIGJ1ZmZlciBhZnRlciBwcmludGluZ1xuLW4JU2V0IGtlcm5lbCBsb2dnaW5nIExFVkVMICgxLTgpXG4tcglSYXcgb3V0cHV0ICh3aXRoIDxsZXZlbCBtYXJrZXJzPilcbi1TCVVzZSBzeXNsb2coMikgcmF0aGVyIHRoYW4gL2Rldi9rbXNnXG4tcwlTaG93IHRoZSBsYXN0IFNJWkUgbWFueSBieXRlc1xuLVQJSHVtYW4gcmVhZGFibGUgdGltZXN0YW1wc1xuLXQJRG9uJ3QgcHJpbnQgdGltZXN0YW1wc1xuLXcJS2VlcCB3YWl0aW5nIGZvciBtb3JlIG91dHB1dCAoYWthIC0tZm9sbG93KSIKKworI2RlZmluZSBIRUxQX3dnZXRfbGlidGxzICJFbmFibGUgSFRUUFMgc3VwcG9ydCBmb3Igd2dldCBieSBsaW5raW5nIHRvIExpYlRMUy5cblN1cHBvcnRzIHVzaW5nIGxpYnRscywgbGlicmV0bHMgb3IgbGlidGxzLWJlYXJzc2wuXG5cblVzZSBUT1lCT1hfTElCQ1JZUFRPIHRvIGVuYWJsZSBIVFRQUyBzdXBwb3J0IHZpYSBPcGVuU1NMLiIKKworI2RlZmluZSBIRUxQX3dnZXQgInVzYWdlOiB3Z2V0IFtPUFRJT05TXS4uLiBbVVJMXVxuICAgIC0tbWF4LXJlZGlyZWN0ICAgICAgICAgIG1heGltdW0gcmVkaXJlY3Rpb25zIGFsbG93ZWRcbi1kLCAtLWRlYnVnICAgICAgICAgICAgICAgICBwcmludCBsb3RzIG9mIGRlYnVnZ2luZyBpbmZvcm1hdGlvblxuLU8sIC0tb3V0cHV0LWRvY3VtZW50PUZJTEUgIHNwZWNpZnkgb3V0cHV0IGZpbGVuYW1lXG4tcCwgLS1wb3N0LWRhdGE9REFUQSAgICAgICAgc2VuZCBkYXRhIGluIGJvZHkgb2YgUE9TVCByZXF1ZXN0XG5cbmV4YW1wbGVzOlxuICB3Z2V0IGh0dHA6Ly93d3cuZXhhbXBsZS5jb20iCisKKyNkZWZpbmUgSEVMUF90dW5jdGwgInVzYWdlOiB0dW5jdGwgWy1kdFRdIFstdSBVU0VSXSBOQU1FXG5cbkNyZWF0ZSBhbmQgZGVsZXRlIHR1bi90YXAgdmlydHVhbCBldGhlcm5ldCBkZXZpY2VzLlxuXG4tVAlVc2UgdGFwIChldGhlcm5ldCBmcmFtZXMpIGluc3RlYWQgb2YgdHVuIChpcCBwYWNrZXRzKVxuLWQJRGVsZXRlIHR1bi90YXAgZGV2aWNlXG4tdAlDcmVhdGUgdHVuL3RhcCBkZXZpY2Vcbi11CVNldCBvd25lciAodXNlciB3aG8gY2FuIHJlYWQvd3JpdGUgZGV2aWNlIHdpdGhvdXQgcm9vdCBhY2Nlc3MpIgorCisjZGVmaW5lIEhFTFBfc250cCAidXNhZ2U6IHNudHAgWy1zYVNkRHFdIFstciBTSElGVF0gWy1tTVtBRERSRVNTXV0gWy1wIFBPUlRdIFtTRVJWRVJdXG5cblNpbXBsZSBOZXR3b3JrIFRpbWUgUHJvdG9jb2wgY2xpZW50LiBRdWVyeSBTRVJWRVIgYW5kIGRpc3BsYXkgdGltZS5cblxuLXAJVXNlIFBPUlQgKGRlZmF1bHQgMTIzKVxuLXMJU2V0IHN5c3RlbSBjbG9jayBzdWRkZW5seVxuLWEJQWRqdXN0IHN5c3RlbSBjbG9jayBncmFkdWFsbHlcbi1TCVNlcnZlIHRpbWUgaW5zdGVhZCBvZiBxdWVyeWluZyAoYmluZCB0byBTRVJWRVIgYWRkcmVzcyBpZiBzcGVjaWZpZWQpXG4tbQlXYWl0IGZvciB1cGRhdGVzIGZyb20gbXVsdGljYXN0IEFERFJFU1MgKFJGQyA0MzMwIHN1Z2dlc3RzIDIyNC4wLjEuMSlcbi1NCU11bHRpY2FzdCBzZXJ2ZXIgb24gQUREUkVTUyAoUkZDIDQzMzAgc3VnZ2VzdHMgMjI0LjAuMS4xKVxuLXQJVFRMIChtdWx0aWNhc3Qgb25seSwgZGVmYXVsdCAxKVxuLWQJRGFlbW9uaXplIChydW4gaW4gYmFja2dyb3VuZCByZS1xdWVyeWluZylcbi1ECURhZW1vbml6ZSBidXQgc3RheSBpbiBmb3JlZ3JvdW5kOiByZS1xdWVyeSB0aW1lIGV2ZXJ5IDEwMDAgc2Vjb25kc1xuLXIJUmV0cnkgc2hpZnQgKGV2ZXJ5IDE8PFNISUZUIHNlY29uZHMpXG4tcQlRdWlldCAoZG9uJ3QgZGlzcGxheSB0aW1lKSIKKworI2RlZmluZSBIRUxQX3Jma2lsbCAidXNhZ2U6IHJma2lsbCBDT01NQU5EIFtERVZJQ0VdXG5cbkVuYWJsZS9kaXNhYmxlIHdpcmVsZXNzIGRldmljZXMuXG5cbkNvbW1hbmRzOlxubGlzdCBbREVWSUNFXSAgIExpc3QgY3VycmVudCBzdGF0ZVxuYmxvY2sgREVWSUNFICAgIERpc2FibGUgZGV2aWNlXG51bmJsb2NrIERFVklDRSAgRW5hYmxlIGRldmljZVxuXG5ERVZJQ0UgaXMgYW4gaW5kZXggbnVtYmVyLCBvciBvbmUgb2Y6XG5hbGwsIHdsYW4od2lmaSksIGJsdWV0b290aCwgdXdiKHVsdHJhd2lkZWJhbmQpLCB3aW1heCwgd3dhbiwgZ3BzLCBmbS4iCisKKyNkZWZpbmUgSEVMUF9waW5nICJ1c2FnZTogcGluZyBbT1BUSU9OU10gSE9TVFxuXG5DaGVjayBuZXR3b3JrIGNvbm5lY3Rpdml0eSBieSBzZW5kaW5nIHBhY2tldHMgdG8gYSBob3N0IGFuZCByZXBvcnRpbmdcbml0cyByZXNwb25zZS5cblxuU2VuZCBJQ01QIEVDSE9fUkVRVUVTVCBwYWNrZXRzIHRvIGlwdjQgb3IgaXB2NiBhZGRyZXNzZXMgYW5kIHByaW50cyBlYWNoXG5lY2hvIGl0IHJlY2VpdmVzIGJhY2ssIHdpdGggcm91bmQgdHJpcCB0aW1lLiBSZXR1cm5zIHRydWUgaWYgaG9zdCBhbGl2ZS5cblxuT3B0aW9uczpcbi00LCAtNgkJRm9yY2UgSVB2NCBvciBJUHY2XG4tYyBDTlQJCVNlbmQgQ05UIG1hbnkgcGFja2V0cyAoZGVmYXVsdCAzLCAwID0gaW5maW5pdGUpXG4tZgkJRmxvb2QgKHByaW50IC4gYW5kIFxcYiB0byBzaG93IGRyb3BzLCBkZWZhdWx0IC1jIDE1IC1pIDAuMilcbi1pIFRJTUUJCUludGVydmFsIGJldHdlZW4gcGFja2V0cyAoZGVmYXVsdCAxLCBuZWVkIHJvb3QgZm9yIDwgLjIpXG4tSSBJRkFDRS9JUAlTb3VyY2UgaW50ZXJmYWNlIG9yIGFkZHJlc3Ncbi1tIE1BUksJCVRhZyBvdXRnb2luZyBwYWNrZXRzIHVzaW5nIFNPX01BUktcbi1xCQlRdWlldCAoc3RvcHMgYWZ0ZXIgb25lIHJldHVybnMgdHJ1ZSBpZiBob3N0IGlzIGFsaXZlKVxuLXMgU0laRQkJRGF0YSBTSVpFIGluIGJ5dGVzIChkZWZhdWx0IDU2KVxuLXQgVFRMCQlTZXQgVGltZSBUbyBMaXZlIChudW1iZXIgb2YgaG9wcylcbi1XIFNFQwkJU2Vjb25kcyB0byB3YWl0IGZvciByZXNwb25zZSBhZnRlciBsYXN0IC1jIHBhY2tldCAoZGVmYXVsdCAzKVxuLXcgU0VDCQlFeGl0IGFmdGVyIHRoaXMgbWFueSBzZWNvbmRzIgorCisjZGVmaW5lIEhFTFBfbmV0c3RhdCAidXNhZ2U6IG5ldHN0YXQgWy1wV3J4d3V0bmVhbF1cblxuRGlzcGxheSBuZXR3b3JraW5nIGluZm9ybWF0aW9uLiBEZWZhdWx0IGlzIG5ldHN0YXQgLXR1d3hcblxuLXIJUm91dGluZyB0YWJsZVxuLWEJQWxsIHNvY2tldHMgKG5vdCBqdXN0IGNvbm5lY3RlZClcbi1sCUxpc3RlbmluZyBzZXJ2ZXIgc29ja2V0c1xuLXQJVENQIHNvY2tldHNcbi11CVVEUCBzb2NrZXRzXG4tdwlSYXcgc29ja2V0c1xuLXgJVW5peCBzb2NrZXRzXG4tZQlFeHRlbmRlZCBpbmZvXG4tbglEb24ndCByZXNvbHZlIG5hbWVzXG4tVwlXaWRlIGRpc3BsYXlcbi1wCVNob3cgUElEL3Byb2dyYW0gbmFtZSBvZiBzb2NrZXRzIgorCisjZGVmaW5lIEhFTFBfbmV0Y2F0ICJ1c2FnZTogbmV0Y2F0IFstNDZFTGxudFV1XSBbLXBxV3cgI10gWy1zIGFkZHJdIFstbyBGSUxFXSB7SVBBRERSIFBPUlROVU18LWYgRklMRU5BTUV8Q09NTUFORC4uLn1cblxuRm9yd2FyZCBzdGRpbi9zdGRvdXQgdG8gYSBmaWxlIG9yIG5ldHdvcmsgY29ubmVjdGlvbi5cblxuLTQJRm9yY2UgSVB2NFxuLTYJRm9yY2UgSVB2NlxuLUUJRm9yd2FyZCBzdGRlcnJcbi1mCVVzZSBGSUxFTkFNRSAoYWxhIC9kZXYvdHR5UzApIGluc3RlYWQgb2YgbmV0d29ya1xuLUwJTGlzdGVuIGFuZCBiYWNrZ3JvdW5kIGVhY2ggaW5jb21pbmcgY29ubmVjdGlvbiAoc2VydmVyIG1vZGUpXG4tbAlMaXN0ZW4gZm9yIG9uZSBpbmNvbWluZyBjb25uZWN0aW9uLCB0aGVuIGV4aXRcbi1uCU5vIEROUyBsb29rdXBcbi1vCUhleCBkdW1wIHRvIEZJTEUgKC1vLSB3cml0ZXMgaGV4IG9ubHkgdG8gc3Rkb3V0KVxuLU8JSGV4IGR1bXAgdG8gRklMRSAoY29sbGF0ZWQpXG4tcAlMb2NhbCBwb3J0IG51bWJlclxuLXEJUXVpdCBTRUNPTkRTIGFmdGVyIEVPRiBvbiBzdGRpbiwgZXZlbiBpZiBzdGRvdXQgaGFzbid0IGNsb3NlZCB5ZXRcbi1zCUxvY2FsIHNvdXJjZSBhZGRyZXNzXG4tdAlBbGxvY2F0ZSB0dHlcbi11CVVzZSBVRFBcbi1VCVVzZSBhIFVOSVggZG9tYWluIHNvY2tldFxuLVcJU0VDT05EUyB0aW1lb3V0IGZvciBtb3JlIGRhdGEgb24gYW4gaWRsZSBjb25uZWN0aW9uXG4tdwlTRUNPTkRTIHRpbWVvdXQgdG8gZXN0YWJsaXNoIGNvbm5lY3Rpb25cbi16CXplcm8tSS9PIG1vZGUgW3VzZWQgZm9yIHNjYW5uaW5nXVxuXG5XaGVuIGxpc3RlbmluZyB0aGUgQ09NTUFORCBsaW5lIGlzIGV4ZWN1dGVkIGFzIGEgY2hpbGQgcHJvY2VzcyB0byBoYW5kbGVcbmFuIGluY29taW5nIGNvbm5lY3Rpb24uIFdpdGggbm8gQ09NTUFORCAtbCBmb3J3YXJkcyB0aGUgY29ubmVjdGlvblxudG8gc3RkaW4vc3Rkb3V0LiBJZiBubyAtcCBzcGVjaWZpZWQsIC1sIHByaW50cyB0aGUgcG9ydCBpdCBib3VuZCB0byBhbmRcbmJhY2tncm91bmRzIGl0c2VsZiAocmV0dXJuaW5nIGltbWVkaWF0ZWx5KS5cblxuRm9yIGEgcXVpY2stYW5kLWRpcnR5IHNlcnZlciwgdHJ5IHNvbWV0aGluZyBsaWtlOlxubmV0Y2F0IC1zIDEyNy4wLjAuMSAtcCAxMjM0IC10TCBzaCAtbFxuXG5PciB1c2UgXCJzdHR5IDExNTIwMCAtRiAvZGV2L3R0eVMwICYmIHN0dHkgcmF3IC1lY2hvIC1jdGxlY2hvXCIgd2l0aFxubmV0Y2F0IC1mIHRvIGNvbm5lY3QgdG8gYSBzZXJpYWwgcG9ydC4iCisKKyNkZWZpbmUgSEVMUF9taWNyb2NvbSAidXNhZ2U6IG1pY3JvY29tIFstcyBTUEVFRF0gWy1YXSBERVZJQ0VcblxuU2ltcGxlIHNlcmlhbCBjb25zb2xlLiBIaXQgQ1RSTC1dIGZvciBtZW51LlxuXG4tcwlTZXQgYmF1ZCByYXRlIHRvIFNQRUVEIChkZWZhdWx0IDExNTIwMClcbi1YCUlnbm9yZSBeXSBtZW51IGVzY2FwZSIKKworI2RlZmluZSBIRUxQX2lmY29uZmlnICJ1c2FnZTogaWZjb25maWcgWy1hU10gW0lOVEVSRkFDRSBbQUNUSU9OLi4uXV1cblxuRGlzcGxheSBvciBjb25maWd1cmUgbmV0d29yayBpbnRlcmZhY2UuXG5cbldpdGggbm8gYXJndW1lbnRzLCBkaXNwbGF5IGFjdGl2ZSBpbnRlcmZhY2VzLiBGaXJzdCBhcmd1bWVudCBpcyBpbnRlcmZhY2VcbnRvIG9wZXJhdGUgb24sIG9uZSBhcmd1bWVudCBieSBpdHNlbGYgZGlzcGxheXMgdGhhdCBpbnRlcmZhY2UuXG5cbi1hCUFsbCBpbnRlcmZhY2VzIGRpc3BsYXllZCwgbm90IGp1c3QgYWN0aXZlIG9uZXNcbi1TCVNob3J0IHZpZXcsIG9uZSBsaW5lIHBlciBpbnRlcmZhY2VcblxuU3RhbmRhcmQgQUNUSU9OcyB0byBwZXJmb3JtIG9uIGFuIElOVEVSRkFDRTpcblxuQUREUlsvTUFTS10gICAgICAgIC0gc2V0IElQdjQgYWRkcmVzcyAoMS4yLjMuNC81KSBhbmQgYWN0aXZhdGUgaW50ZXJmYWNlXG5hZGR8ZGVsIEFERFJbL0xFTl0gLSBhZGQvcmVtb3ZlIElQdjYgYWRkcmVzcyAoMTExMTo6ODg4OC8xMjgpXG51cHxkb3duICAgICAgICAgICAgLSBhY3RpdmF0ZSBvciBkZWFjdGl2YXRlIGludGVyZmFjZVxuXG5BZHZhbmNlZCBBQ1RJT05zIChkZWZhdWx0IHZhbHVlcyB1c3VhbGx5IHN1ZmZpY2UpOlxuXG5kZWZhdWx0ICAgICAgICAgIC0gcmVtb3ZlIElQdjQgYWRkcmVzc1xubmV0bWFzayBBRERSICAgICAtIHNldCBJUHY0IG5ldG1hc2sgdmlhIDI1NS4yNTUuMjU1LjAgaW5zdGVhZCBvZiAvMjRcbnR4cXVldWVsZW4gTEVOICAgLSBudW1iZXIgb2YgYnVmZmVyZWQgcGFja2V0cyBiZWZvcmUgb3V0cHV0IGJsb2Nrc1xubXR1IExFTiAgICAgICAgICAtIHNpemUgb2Ygb3V0Z29pbmcgcGFja2V0cyAoTWF4aW11bSBUcmFuc21pc3Npb24gVW5pdClcbmJyb2FkY2FzdCBBRERSICAgLSBTZXQgYnJvYWRjYXN0IGFkZHJlc3NcbnBvaW50b3BvaW50IEFERFIgLSBQUFAgYW5kIFBQUE9FIHVzZSB0aGlzIGluc3RlYWQgb2YgXCJyb3V0ZSBhZGQgZGVmYXVsdCBnd1wiXG5odyBUWVBFIEFERFIgICAgIC0gc2V0IGhhcmR3YXJlIChtYWMpIGFkZHJlc3MgKHR5cGUgPSBldGhlcnxpbmZpbmliYW5kKVxucmVuYW1lIE5FV05BTUUgICAtIHJlbmFtZSBpbnRlcmZhY2VcblxuRmxhZ3MgeW91IGNhbiBzZXQgb24gYW4gaW50ZXJmYWNlIChvciAtcmVtb3ZlIGJ5IHByZWZpeGluZyB3aXRoIC0pOlxuXG5hcnAgICAgICAgLSBkb24ndCB1c2UgQWRkcmVzcyBSZXNvbHV0aW9uIFByb3RvY29sIHRvIG1hcCBMQU4gcm91dGVzXG5wcm9taXNjICAgLSBkb24ndCBkaXNjYXJkIHBhY2tldHMgdGhhdCBhcmVuJ3QgdG8gdGhpcyBMQU4gaGFyZHdhcmUgYWRkcmVzc1xubXVsdGljYXN0IC0gZm9yY2UgaW50ZXJmYWNlIGludG8gbXVsdGljYXN0IG1vZGUgaWYgdGhlIGRyaXZlciBkb2Vzbid0XG5hbGxtdWx0aSAgLSBwcm9taXNjIGZvciBtdWx0aWNhc3QgcGFja2V0cyIKKworI2RlZmluZSBIRUxQX2h0dHBkICJ1c2FnZTogaHR0cGQgWy1kZSBTVFJdIFstdl0gW0RJUl1cblxuU2VydmUgY29udGVudHMgb2YgZGlyZWN0b3J5IGFzIHN0YXRpYyB3ZWIgcGFnZXMuXG5cbi1lCUVzY2FwZSBTVFIgYXMgVVJMLCBwcmludGluZyByZXN1bHQgYW5kIGV4aXRpbmcuXG4tZAlEZWNvZGUgZXNjYXBlZCBTVFIsIHByaW50aW5nIHJlc3VsdCBhbmQgZXhpdGluZy5cbi12CVZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9ob3N0ICJ1c2FnZTogaG9zdCBbLXZdIFstdCBUWVBFXSBOQU1FIFtTRVJWRVJdXG5cbkxvb2sgdXAgRE5TIHJlY29yZHMgZm9yIE5BTUUsIGVpdGhlciBkb21haW4gbmFtZSBvciBJUHY0L0lQdjYgYWRkcmVzcyB0b1xucmV2ZXJzZSBsb29rdXAsIGZyb20gU0VSVkVSIG9yIGRlZmF1bHQgRE5TIHNlcnZlcihzKS5cblxuLWEJQWxsIHJlY29yZHNcbi10IFRZUEUJUmVjb3JkIFRZUEUgKG51bWJlciBvciBBTlkgQSBBQUFBIENOQU1FIE1YIE5TIFBUUiBTT0EgU1JWIFRYVClcbi12CVZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9mdHBwdXQgIkFuIGZ0cGdldCB0aGF0IGRlZmF1bHRzIHRvIC1zIGluc3RlYWQgb2YgLWciCisKKyNkZWZpbmUgSEVMUF9mdHBnZXQgInVzYWdlOiBmdHBnZXQgWy1jdmdzbExtTWREXSBbLVAgUE9SVF0gWy1wIFBBU1NXT1JEXSBbLXUgVVNFUl0gSE9TVCBbTE9DQUxdIFJFTU9URVxuXG5UYWxrIHRvIGZ0cCBzZXJ2ZXIuIEJ5IGRlZmF1bHQgZ2V0IFJFTU9URSBmaWxlIHZpYSBwYXNzaXZlIGFub255bW91c1xudHJhbnNmZXIsIG9wdGlvbmFsbHkgc2F2aW5nIHVuZGVyIGEgTE9DQUwgbmFtZS4gQ2FuIGFsc28gc2VuZCwgbGlzdCwgZXRjLlxuXG4tYwlDb250aW51ZSBwYXJ0aWFsIHRyYW5zZmVyXG4tcAlVc2UgUE9SVCBpbnN0ZWFkIG9mIFwiMjFcIlxuLVAJVXNlIFBBU1NXT1JEIGluc3RlYWQgb2YgXCJmdHBnZXRAXCJcbi11CVVzZSBVU0VSIGluc3RlYWQgb2YgXCJhbm9ueW1vdXNcIlxuLXYJVmVyYm9zZVxuXG5XYXlzIHRvIGludGVyYWN0IHdpdGggRlRQIHNlcnZlcjpcbi1kCURlbGV0ZSBmaWxlXG4tRAlSZW1vdmUgZGlyZWN0b3J5XG4tZwlHZXQgZmlsZSAoZGVmYXVsdClcbi1sCUxpc3QgZGlyZWN0b3J5XG4tTAlMaXN0IChmaWxlbmFtZXMgb25seSlcbi1tCU1vdmUgZmlsZSBvbiBzZXJ2ZXIgZnJvbSBMT0NBTCB0byBSRU1PVEVcbi1NCW1rZGlyXG4tcwlTZW5kIGZpbGUiCisKKyNkZWZpbmUgSEVMUF95ZXMgInVzYWdlOiB5ZXMgW2FyZ3MuLi5dXG5cblJlcGVhdGVkbHkgb3V0cHV0IGxpbmUgdW50aWwga2lsbGVkLiBJZiBubyBhcmdzLCBvdXRwdXQgJ3knLiIKKworI2RlZmluZSBIRUxQX3h4ZCAidXNhZ2U6IHh4ZCBbLWVpcHJdIFstY2dsb3MgTl0gW2ZpbGVdXG5cbkhleGR1bXAgYSBmaWxlIHRvIHN0ZG91dC4gSWYgbm8gZmlsZSBpcyBsaXN0ZWQsIGNvcHkgZnJvbSBzdGRpbi5cbkZpbGVuYW1lIFwiLVwiIGlzIGEgc3lub255bSBmb3Igc3RkaW4uXG5cbi1jIE4JU2hvdyBOIGJ5dGVzIHBlciBsaW5lIChkZWZhdWx0IDE2KVxuLWUJTGl0dGxlLWVuZGlhblxuLWcgTglHcm91cCBieXRlcyBieSBhZGRpbmcgYSAnICcgZXZlcnkgTiBieXRlcyAoZGVmYXVsdCAyKVxuLWkJT3V0cHV0IGluY2x1ZGUgZmlsZSAoQ1NWIGhleCBieXRlcywgcGx1cyBDIGhlYWRlci9mb290ZXIgaWYgbm90IHN0ZGluKVxuLWwgTglMaW1pdCBvZiBOIGJ5dGVzIGJlZm9yZSBzdG9wcGluZyAoZGVmYXVsdCBpcyBubyBsaW1pdClcbi1vIE4JQWRkIE4gdG8gZGlzcGxheSBvZmZzZXRcbi1wCVBsYWluIGhleGR1bXAgKDMwIGJ5dGVzL2xpbmUsIG5vIGdyb3VwaW5nLiBXaXRoIC1jIDAgbm8gd3JhcC9ncm91cClcbi1yCVJldmVyc2Ugb3BlcmF0aW9uOiB0dXJuIGEgaGV4ZHVtcCBpbnRvIGEgYmluYXJ5IGZpbGVcbi1zIE4JU2tpcCB0byBvZmZzZXQgTiIKKworI2RlZmluZSBIRUxQX3doaWNoICJ1c2FnZTogd2hpY2ggWy1hXSBmaWxlbmFtZSAuLi5cblxuU2VhcmNoICRQQVRIIGZvciBleGVjdXRhYmxlIGZpbGVzIG1hdGNoaW5nIGZpbGVuYW1lKHMpLlxuXG4tYQlTaG93IGFsbCBtYXRjaGVzIgorCisjZGVmaW5lIEhFTFBfd2F0Y2hkb2cgInVzYWdlOiB3YXRjaGRvZyBbLUZdIFstdCBVUERBVEVdIFstVCBERUFETElORV0gREVWXG5cblN0YXJ0IHRoZSB3YXRjaGRvZyB0aW1lciBhdCBERVYgd2l0aCBvcHRpb25hbCB0aW1lb3V0IHBhcmFtZXRlcnMuXG5cbi1GCXJ1biBpbiB0aGUgZm9yZWdyb3VuZCAoZG8gbm90IGRhZW1vbml6ZSlcbi10CXBva2Ugd2F0Y2hkb2cgZXZlcnkgVVBEQVRFIHNlY29uZHMgKGRlZmF1bHQgNClcbi1UCXJlYm9vdCBpZiBub3QgcG9rZWQgZm9yIERFQURMSU5FIHNlY29uZHMgKGRlZmF1bHQgNjApIgorCisjZGVmaW5lIEhFTFBfd2F0Y2ggInVzYWdlOiB3YXRjaCBbLXRlYnhdIFstbiBTRUNdIENPTU1BTkQuLi5cblxuUnVuIENPTU1BTkQgZXZlcnkgLW4gc2Vjb25kcywgc2hvd2luZyBvdXRwdXQgdGhhdCBmaXRzIHRlcm1pbmFsLCBxIHRvIHF1aXQuXG5cbi1uCU51bWJlciBvZiBzZWNvbmRzIGJldHdlZW4gcmVwZWF0cyAoZGVmYXVsdCAyLjApXG4tdAlEb24ndCBwcmludCBoZWFkZXJcbi1lCUV4aXQgb24gZXJyb3Jcbi1iCUJlZXAgb24gY29tbWFuZCBlcnJvclxuLXgJRXhlYyBjb21tYW5kIGRpcmVjdGx5ICh3aXRob3V0IFwic2ggLWNcIikiCisKKyNkZWZpbmUgSEVMUF93ICJ1c2FnZTogd1xuXG5TaG93IHdobyBpcyBsb2dnZWQgb24gYW5kIHNpbmNlIGhvdyBsb25nIHRoZXkgbG9nZ2VkIGluLiIKKworI2RlZmluZSBIRUxQX3Ztc3RhdCAidXNhZ2U6IHZtc3RhdCBbLW5dIFtERUxBWSBbQ09VTlRdXVxuXG5QcmludCB2aXJ0dWFsIG1lbW9yeSBzdGF0aXN0aWNzLCByZXBlYXRpbmcgZWFjaCBERUxBWSBzZWNvbmRzLCBDT1VOVCB0aW1lcy5cbihXaXRoIG5vIERFTEFZLCBwcmludHMgb25lIGxpbmUuIFdpdGggbm8gQ09VTlQsIHJlcGVhdHMgdW50aWwga2lsbGVkLilcblxuU2hvdyBwcm9jZXNzZXMgcnVubmluZyBhbmQgYmxvY2tlZCwga2lsb2J5dGVzIHN3YXBwZWQsIGZyZWUsIGJ1ZmZlcmVkLCBhbmRcbmNhY2hlZCwga2lsb2J5dGVzIHN3YXBwZWQgaW4gYW5kIG91dCBwZXIgc2Vjb25kLCBmaWxlIGRpc2sgYmxvY2tzIGlucHV0IGFuZFxub3V0cHV0IHBlciBzZWNvbmQsIGludGVycnVwdHMgYW5kIGNvbnRleHQgc3dpdGNoZXMgcGVyIHNlY29uZCwgcGVyY2VudFxub2YgQ1BVIHRpbWUgc3BlbnQgcnVubmluZyB1c2VyIGNvZGUsIHN5c3RlbSBjb2RlLCBpZGxlLCBhbmQgYXdhaXRpbmcgSS9PLlxuRmlyc3QgbGluZSBpcyBzaW5jZSBzeXN0ZW0gc3RhcnRlZCwgbGF0ZXIgbGluZXMgYXJlIHNpbmNlIGxhc3QgbGluZS5cblxuLW4JRGlzcGxheSB0aGUgaGVhZGVyIG9ubHkgb25jZSIKKworI2RlZmluZSBIRUxQX3Zjb25maWcgInVzYWdlOiB2Y29uZmlnIENPTU1BTkQgW09QVElPTlNdXG5cbkNyZWF0ZSBhbmQgcmVtb3ZlIHZpcnR1YWwgZXRoZXJuZXQgZGV2aWNlc1xuXG5hZGQgICAgICAgICAgICAgW2ludGVyZmFjZS1uYW1lXSBbdmxhbl9pZF1cbnJlbSAgICAgICAgICAgICBbdmxhbi1uYW1lXVxuc2V0X2ZsYWcgICAgICAgIFtpbnRlcmZhY2UtbmFtZV0gW2ZsYWctbnVtXSAgICAgICBbMCB8IDFdXG5zZXRfZWdyZXNzX21hcCAgW3ZsYW4tbmFtZV0gICAgICBbc2tiX3ByaW9yaXR5XSAgIFt2bGFuX3Fvc11cbnNldF9pbmdyZXNzX21hcCBbdmxhbi1uYW1lXSAgICAgIFtza2JfcHJpb3JpdHldICAgW3ZsYW5fcW9zXVxuc2V0X25hbWVfdHlwZSAgIFtuYW1lLXR5cGVdIgorCisjZGVmaW5lIEhFTFBfdXVpZGdlbiAidXNhZ2U6IHV1aWRnZW5cblxuQ3JlYXRlIGFuZCBwcmludCBhIG5ldyBSRkM0MTIyIHJhbmRvbSBVVUlELiIKKworI2RlZmluZSBIRUxQX3VzbGVlcCAidXNhZ2U6IHVzbGVlcCBNSUNST1NFQ09ORFNcblxuUGF1c2UgZm9yIE1JQ1JPU0VDT05EUyBtaWNyb3NlY29uZHMuIgorCisjZGVmaW5lIEhFTFBfdXB0aW1lICJ1c2FnZTogdXB0aW1lIFstcHNdXG5cblRlbGwgdGhlIGN1cnJlbnQgdGltZSwgaG93IGxvbmcgdGhlIHN5c3RlbSBoYXMgYmVlbiBydW5uaW5nLCB0aGUgbnVtYmVyXG5vZiB1c2VycywgYW5kIHRoZSBzeXN0ZW0gbG9hZCBhdmVyYWdlcyBmb3IgdGhlIHBhc3QgMSwgNSBhbmQgMTUgbWludXRlcy5cblxuLXAJUHJldHR5IChodW1hbiByZWFkYWJsZSkgdXB0aW1lXG4tcwlTaW5jZSB3aGVuIGhhcyB0aGUgc3lzdGVtIGJlZW4gdXA/IgorCisjZGVmaW5lIEhFTFBfdWNsYW1wc2V0ICJ1c2FnZTogdWNsYW1wc2V0IFstbSBNSU5dIFstTSBNQVhdIHstcCBQSUQgfCBDT01NQU5ELi4ufVxuXG5TZXQgb3IgcXVlcnkgcHJvY2VzcyB1dGlsaXphdGlvbiBsaW1pdHMgcmFuZ2luZyBmcm9tIDAgdG8gMTAyNCwgb3IgLTEgdG9cbnJlc2V0IHRvIHN5c3RlbSBkZWZhdWx0LiBXaXRoIG5vIGFyZ3VtZW50cywgcHJpbnRzIGN1cnJlbnQgdmFsdWVzLlxuXG4tbSBNSU4gICAgICBSZXNlcnZlIGF0IGxlYXN0IHRoaXMgbXVjaCBDUFUgdXRpbGl6YXRpb24gZm9yIHRhc2tcbi1NIE1BWCAgICAgIExpbWl0IHRhc2sgdG8gYXQgbW9zdCB0aGlzIG11Y2ggQ1BVIHV0aWxpemF0aW9uXG4tcCBQSUQJQXBwbHkgdG8gUElEIHJhdGhlciB0aGFuIG5ldyBDT01NQU5EXG4tUglSZXNldCBjaGlsZCBwcm9jZXNzZXMgdG8gZGVmYXVsdCB2YWx1ZXMgb24gZm9ya1xuLWEJQXBwbHkgdG8gYWxsIHRocmVhZHMgZm9yIHRoZSBnaXZlbiBQSUQiCisKKyNkZWZpbmUgSEVMUF90cyAidXNhZ2U6IHRzIFstaXNdIFtGT1JNQVRdXG5cbkFkZCB0aW1lc3RhbXBzIHRvIGVhY2ggbGluZSBpbiBwaXBlbGluZS4gRGVmYXVsdCBmb3JtYXQgd2l0aG91dCBvcHRpb25zXG5cIiViICVkICVIOiVNOiVTXCIsIHdpdGggLWkgb3IgLXMgXCIlSDolTTolU1wiLlxuXG4taQlJbmNyZW1lbnRhbCAoc2luY2UgcHJldmlvdXMgbGluZSlcbi1tCUFkZCBtaWxsaXNlY29uZHNcbi1zCVNpbmNlIHN0YXJ0IgorCisjZGVmaW5lIEhFTFBfdHJ1bmNhdGUgInVzYWdlOiB0cnVuY2F0ZSBbLWNdIC1zIFNJWkUgZmlsZS4uLlxuXG5TZXQgbGVuZ3RoIG9mIGZpbGUocyksIGV4dGVuZGluZyBzcGFyc2VseSBpZiBuZWNlc3NhcnkuXG5cbi1jCURvbid0IGNyZWF0ZSBmaWxlIGlmIGl0IGRvZXNuJ3QgZXhpc3Rcbi1zCU5ldyBzaXplICh3aXRoIG9wdGlvbmFsIHByZWZpeCBhbmQgc3VmZml4KVxuXG5TSVpFIHByZWZpeDogKyBhZGQsIC0gc3VidHJhY3QsIDwgc2hyaW5rIHRvLCA+IGV4cGFuZCB0byxcbiAgICAgICAgICAgICAvIG11bHRpcGxlIHJvdW5kaW5nIGRvd24sICUgbXVsdGlwbGUgcm91bmRpbmcgdXBcblNJWkUgc3VmZml4OiBrPTEwMjQsIG09MTAyNF4yLCBnPTEwMjReMywgdD0xMDI0XjQsIHA9MTAyNF41LCBlPTEwMjReNiIKKworI2RlZmluZSBIRUxQX3RpbWVvdXQgInVzYWdlOiB0aW1lb3V0IFstaXZdIFstayBEVVJBVElPTl0gWy1zIFNJR05BTF0gRFVSQVRJT04gQ09NTUFORC4uLlxuXG5SdW4gY29tbWFuZCBsaW5lIGFzIGEgY2hpbGQgcHJvY2Vzcywgc2VuZGluZyBjaGlsZCBhIHNpZ25hbCBpZiB0aGVcbmNvbW1hbmQgZG9lc24ndCBleGl0IHNvb24gZW5vdWdoLlxuXG5EVVJBVElPTiBjYW4gYmUgYSBkZWNpbWFsIGZyYWN0aW9uLiBBbiBvcHRpb25hbCBzdWZmaXggY2FuIGJlIFwibVwiXG4obWludXRlcyksIFwiaFwiIChob3VycyksIFwiZFwiIChkYXlzKSwgb3IgXCJzXCIgKHNlY29uZHMsIHRoZSBkZWZhdWx0KS5cblxuLWkJT25seSBraWxsIGZvciBpbmFjdGl2aXR5IChyZXN0YXJ0IHRpbWVvdXQgd2hlbiBjb21tYW5kIHByb2R1Y2VzIG91dHB1dClcbi1rCVNlbmQgS0lMTCBzaWduYWwgaWYgY2hpbGQgc3RpbGwgcnVubmluZyB0aGlzIGxvbmcgYWZ0ZXIgZmlyc3Qgc2lnbmFsXG4tcwlTZW5kIHNwZWNpZmllZCBzaWduYWwgKGRlZmF1bHQgVEVSTSlcbi12CVZlcmJvc2Vcbi0tZm9yZWdyb3VuZCAgICAgICBEb24ndCBjcmVhdGUgbmV3IHByb2Nlc3MgZ3JvdXBcbi0tcHJlc2VydmUtc3RhdHVzICBFeGl0IHdpdGggdGhlIGNoaWxkJ3MgZXhpdCBzdGF0dXMiCisKKyNkZWZpbmUgSEVMUF90YXNrc2V0ICJ1c2FnZTogdGFza3NldCBbLWFwXSBbbWFza10gW1BJRCB8IGNtZCBbYXJncy4uLl1dXG5cbkxhdW5jaCBhIG5ldyB0YXNrIHdoaWNoIG1heSBvbmx5IHJ1biBvbiBjZXJ0YWluIHByb2Nlc3NvcnMsIG9yIGNoYW5nZVxudGhlIHByb2Nlc3NvciBhZmZpbml0eSBvZiBhbiBleGlzdGluZyBQSUQuXG5cbk1hc2sgaXMgYSBoZXggc3RyaW5nIHdoZXJlIGVhY2ggYml0IHJlcHJlc2VudHMgYSBwcm9jZXNzb3IgdGhlIHByb2Nlc3NcbmlzIGFsbG93ZWQgdG8gcnVuIG9uLiBQSUQgd2l0aG91dCBhIG1hc2sgZGlzcGxheXMgZXhpc3RpbmcgYWZmaW5pdHkuXG5cbi1wCVNldC9nZXQgdGhlIGFmZmluaXR5IG9mIGdpdmVuIFBJRCBpbnN0ZWFkIG9mIGEgbmV3IGNvbW1hbmRcbi1hCVNldC9nZXQgdGhlIGFmZmluaXR5IG9mIGFsbCB0aHJlYWRzIG9mIHRoZSBQSUQiCisKKyNkZWZpbmUgSEVMUF9ucHJvYyAidXNhZ2U6IG5wcm9jIFstLWFsbF1cblxuUHJpbnQgbnVtYmVyIG9mIHByb2Nlc3NvcnMuXG5cbi0tYWxsCVNob3cgYWxsIHByb2Nlc3NvcnMsIG5vdCBqdXN0IG9uZXMgdGhpcyB0YXNrIGNhbiBydW4gb24iCisKKyNkZWZpbmUgSEVMUF90YWMgInVzYWdlOiB0YWMgW0ZJTEUuLi5dXG5cbk91dHB1dCBsaW5lcyBpbiByZXZlcnNlIG9yZGVyLiIKKworI2RlZmluZSBIRUxQX3N5c2N0bCAidXNhZ2U6IHN5c2N0bCBbLWFlTm5xd10gWy1wIFtGSUxFXSB8IEtFWVs9VkFMVUVdLi4uXVxuXG5SZWFkL3dyaXRlIHN5c3RlbSBjb250cm9sIGRhdGEgKHVuZGVyIC9wcm9jL3N5cykuXG5cbi1hCVNob3cgYWxsIHZhbHVlc1xuLWUJRG9uJ3Qgd2FybiBhYm91dCB1bmtub3duIGtleXNcbi1OCURvbid0IHByaW50IGtleSB2YWx1ZXNcbi1uCURvbid0IHByaW50IGtleSBuYW1lc1xuLXAJUmVhZCB2YWx1ZXMgZnJvbSBGSUxFIChkZWZhdWx0IC9ldGMvc3lzY3RsLmNvbmYpXG4tcQlEb24ndCBzaG93IHZhbHVlIGFmdGVyIHdyaXRlXG4tdwlPbmx5IHdyaXRlIHZhbHVlcyAob2JqZWN0IHRvIHJlYWRpbmcpIgorCisjZGVmaW5lIEhFTFBfc3dpdGNoX3Jvb3QgInVzYWdlOiBzd2l0Y2hfcm9vdCBbLWMgL2Rldi9jb25zb2xlXSBORVdfUk9PVCBORVdfSU5JVC4uLlxuXG5Vc2UgZnJvbSBQSUQgMSB1bmRlciBpbml0cmFtZnMgdG8gZnJlZSBpbml0cmFtZnMsIGNocm9vdCB0byBORVdfUk9PVCxcbmFuZCBleGVjIE5FV19JTklULlxuXG4tYwlSZWRpcmVjdCBjb25zb2xlIHRvIGRldmljZSBpbiBORVdfUk9PVFxuLWgJSGFuZyBpbnN0ZWFkIG9mIGV4aXRpbmcgb24gZmFpbHVyZSAoYXZvaWRzIGtlcm5lbCBwYW5pYykiCisKKyNkZWZpbmUgSEVMUF9zd2Fwb24gInVzYWdlOiBzd2Fwb24gWy1kXSBbLXAgcHJpb3JpdHldIGZpbGVuYW1lXG5cbkVuYWJsZSBzd2FwcGluZyBvbiBhIGdpdmVuIGRldmljZS9maWxlLlxuXG4tZAlEaXNjYXJkIGZyZWVkIFNTRCBwYWdlc1xuLXAJUHJpb3JpdHkgKGhpZ2hlc3QgcHJpb3JpdHkgYXJlYXMgYWxsb2NhdGVkIGZpcnN0KSIKKworI2RlZmluZSBIRUxQX3N3YXBvZmYgInVzYWdlOiBzd2Fwb2ZmIEZJTEVcblxuRGlzYWJsZSBzd2FwcGluZyBvbiBhIGRldmljZSBvciBmaWxlLiIKKworI2RlZmluZSBIRUxQX3N0YXQgInVzYWdlOiBzdGF0IFstdGZMXSBbLWMgRk9STUFUXSBGSUxFLi4uXG5cbkRpc3BsYXkgc3RhdHVzIG9mIGZpbGVzIG9yIGZpbGVzeXN0ZW1zLlxuXG4tYwlPdXRwdXQgc3BlY2lmaWVkIEZPUk1BVCBzdHJpbmcgaW5zdGVhZCBvZiBkZWZhdWx0XG4tZglEaXNwbGF5IGZpbGVzeXN0ZW0gc3RhdHVzIGluc3RlYWQgb2YgZmlsZSBzdGF0dXNcbi1MCUZvbGxvdyBzeW1saW5rc1xuLXQJdGVyc2UgKC1jIFwiJW4gJXMgJWIgJWYgJXUgJWcgJUQgJWkgJWggJXQgJVQgJVggJVkgJVogJW9cIilcbgkgICAgICAod2l0aCAtZiA9IC1jIFwiJW4gJWkgJWwgJXQgJXMgJVMgJWIgJWYgJWEgJWMgJWRcIilcblxuVGhlIHZhbGlkIGZvcm1hdCBlc2NhcGUgc2VxdWVuY2VzIGZvciBmaWxlczpcbiVhICBBY2Nlc3MgYml0cyAob2N0YWwpIHwlQSAgQWNjZXNzIGJpdHMgKGZsYWdzKXwlYiAgU2l6ZS81MTJcbiVCICBCeXRlcyBwZXIgJWIgKDUxMikgIHwlQyAgU2VjdXJpdHkgY29udGV4dCAgIHwlZCAgRGV2aWNlIElEIChkZWMpXG4lRCAgRGV2aWNlIElEIChoZXgpICAgICB8JWYgIEFsbCBtb2RlIGJpdHMgKGhleCl8JUYgIEZpbGUgdHlwZVxuJWcgIEdyb3VwIElEICAgICAgICAgICAgfCVHICBHcm91cCBuYW1lICAgICAgICAgfCVoICBIYXJkIGxpbmtzXG4laSAgSW5vZGUgICAgICAgICAgICAgICB8JW0gIE1vdW50IHBvaW50ICAgICAgICB8JW4gIEZpbGVuYW1lXG4lTiAgTG9uZyBmaWxlbmFtZSAgICAgICB8JW8gIEkvTyBibG9jayBzaXplICAgICB8JXMgIFNpemUgKGJ5dGVzKVxuJXQgIERldnR5cGUgbWFqb3IgKGhleCkgfCVUICBEZXZ0eXBlIG1pbm9yIChoZXgpfCV1ICBVc2VyIElEXG4lVSAgVXNlciBuYW1lICAgICAgICAgICB8JXggIEFjY2VzcyB0aW1lICAgICAgICB8JVggIEFjY2VzcyB1bml4IHRpbWVcbiV5ICBNb2RpZmljYXRpb24gdGltZSAgIHwlWSAgTW9kIHVuaXggdGltZSAgICAgIHwleiAgQ3JlYXRpb24gdGltZVxuJVogIENyZWF0aW9uIHVuaXggdGltZVxuXG5UaGUgdmFsaWQgZm9ybWF0IGVzY2FwZSBzZXF1ZW5jZXMgZm9yIGZpbGVzeXN0ZW1zOlxuJWEgIEF2YWlsYWJsZSBibG9ja3MgICAgfCViICBUb3RhbCBibG9ja3MgICAgICAgfCVjICBUb3RhbCBpbm9kZXNcbiVkICBGcmVlIGlub2RlcyAgICAgICAgIHwlZiAgRnJlZSBibG9ja3MgICAgICAgIHwlaSAgRmlsZSBzeXN0ZW0gSURcbiVsICBNYXggZmlsZW5hbWUgbGVuZ3RoIHwlbiAgRmlsZSBuYW1lICAgICAgICAgIHwlcyAgQmVzdCB0cmFuc2ZlciBzaXplXG4lUyAgQWN0dWFsIGJsb2NrIHNpemUgICB8JXQgIEZTIHR5cGUgKGhleCkgICAgICB8JVQgIEZTIHR5cGUgKGRyaXZlciBuYW1lKSIKKworI2RlZmluZSBIRUxQX3NodWYgInVzYWdlOiBzaHVmIFstemVdIFstbiBDT1VOVF0gW0ZJTEUuLi5dXG5cbldyaXRlIGxpbmVzIG9mIGlucHV0IHRvIG91dHB1dCBpbiByYW5kb20gb3JkZXIuXG5cbi16CUlucHV0L291dHB1dCBsaW5lcyBhcmUgTlVMIHRlcm1pbmF0ZWQuXG4tbglTdG9wIGFmdGVyIENPVU5UIG1hbnkgb3V0cHV0IGxpbmVzLlxuLWUJRWNobyBtb2RlOiBhcmd1bWVudHMgYXJlIGlucHV0cyB0byBzaHVmZmxlLCBub3QgZmlsZXMgdG8gcmVhZC4iCisKKyNkZWZpbmUgSEVMUF9zaHJlZCAidXNhZ2U6IHNocmVkIFstZnV4el0gWy1uIENPVU5UXSBbLW8gT0ZGU0VUXSBbLXMgU0laRV0gRklMRS4uLlxuXG5TZWN1cmVseSBkZWxldGUgYSBmaWxlIGJ5IG92ZXJ3cml0aW5nIGl0cyBjb250ZW50cyB3aXRoIHJhbmRvbSBkYXRhLlxuXG4tZgkJRm9yY2UgKGNobW9kIGlmIG5lY2Vzc2FyeSlcbi1uIENPVU5UCVJhbmRvbSBvdmVyd3JpdGUgaXRlcmF0aW9ucyAoZGVmYXVsdCAxKVxuLW8gT0ZGU0VUCVN0YXJ0IGF0IE9GRlNFVFxuLXMgU0laRQkJVXNlIFNJWkUgaW5zdGVhZCBvZiBkZXRlY3RpbmcgZmlsZSBzaXplXG4tdQkJVW5saW5rIChhY3R1YWxseSBkZWxldGUgZmlsZSB3aGVuIGRvbmUpXG4teAkJVXNlIGV4YWN0IHNpemUgKGRlZmF1bHQgd2l0aG91dCAtcyByb3VuZHMgdXAgdG8gbmV4dCA0aylcbi16CQlaZXJvIGF0IGVuZFxuXG5Ob3RlOiBkYXRhIGpvdXJuYWxpbmcgZmlsZXN5c3RlbXMgcmVuZGVyIHRoaXMgY29tbWFuZCB1c2VsZXNzLCB5b3UgbXVzdFxub3ZlcndyaXRlIGFsbCBmcmVlIHNwYWNlIChmaWxsIHVwIGRpc2spIHRvIGVyYXNlIG9sZCBkYXRhIG9uIHRob3NlLiIKKworI2RlZmluZSBIRUxQX3NoYTNzdW0gInVzYWdlOiBzaGEzc3VtIFstYlNdIFstYSBCSVRTXSBbRklMRS4uLl1cblxuSGFzaCBmdW5jdGlvbiBkdSBqb3VyLlxuXG4tYQlQcm9kdWNlIGEgaGFzaCBCSVRTIGxvbmcgKGRlZmF1bHQgMjI0KVxuLWIJQnJpZWYgKGhhc2ggb25seSwgbm8gZmlsZW5hbWUpXG4tUwlVc2UgU0hBS0UgdGVybWluYXRpb24gYnl0ZSBpbnN0ZWFkIG9mIFNIQTMgKGFzayBGSVBTIHdoeSkiCisKKyNkZWZpbmUgSEVMUF9zZXRzaWQgInVzYWdlOiBzZXRzaWQgWy1jZHddIGNvbW1hbmQgW2FyZ3MuLi5dXG5cblJ1biBwcm9jZXNzIGluIGEgbmV3IHNlc3Npb24uXG5cbi1kCURldGFjaCBmcm9tIHR0eVxuLWMJQ29udHJvbCB0dHkgKHJlcGVhdCB0byBzdGVhbClcbi13CVdhaXQgZm9yIGNoaWxkIChhbmQgZXhpdCB3aXRoIGl0cyBzdGF0dXMpIgorCisjZGVmaW5lIEhFTFBfc2V0ZmF0dHIgInVzYWdlOiBzZXRmYXR0ciBbLWhdIFsteHwtbiBOQU1FXSBbLXYgVkFMVUVdIEZJTEUuLi5cblxuV3JpdGUgUE9TSVggZXh0ZW5kZWQgYXR0cmlidXRlcy5cblxuLWgJRG8gbm90IGRlcmVmZXJlbmNlIHN5bWxpbmtcbi1uCVNldCBnaXZlbiBhdHRyaWJ1dGVcbi14CVJlbW92ZSBnaXZlbiBhdHRyaWJ1dGVcbi12CVNldCB2YWx1ZSBmb3IgYXR0cmlidXRlIC1uIChkZWZhdWx0IGlzIGVtcHR5KSIKKworI2RlZmluZSBIRUxQX3J0Y3dha2UgInVzYWdlOiBydGN3YWtlIFstYWx1dl0gWy1kIEZJTEVdIFstbSBNT0RFXSBbLXMgU0VDU10gWy10IFVOSVhdXG5cbkVudGVyIHRoZSBnaXZlbiBzbGVlcCBzdGF0ZSB1bnRpbCB0aGUgZ2l2ZW4gdGltZS5cblxuLWEJUlRDIHVzZXMgdGltZSBzcGVjaWZpZWQgaW4gL2V0Yy9hZGp0aW1lXG4tZCBGSUxFCURldmljZSB0byB1c2UgKGRlZmF1bHQgL2Rldi9ydGMpXG4tbAlSVEMgdXNlcyBsb2NhbCB0aW1lXG4tbQlNb2RlICgtLWxpc3QtbW9kZXMgdG8gc2VlIHRob3NlIHN1cHBvcnRlZCBieSB5b3VyIGtlcm5lbCk6XG4JICBzdGFuZGJ5ICBTMTogZGVmYXVsdCAgICAgICAgICAgICAgbWVtICAgICBTMzogc3VzcGVuZCB0byBSQU1cbgkgIGRpc2sgICAgIFM0OiBzdXNwZW5kIHRvIGRpc2sgICAgICBvZmYgICAgIFM1OiBwb3dlciBvZmZcbgkgIGRpc2FibGUgIENhbmNlbCBjdXJyZW50IGFsYXJtICAgICBmcmVlemUgIHN0b3AgcHJvY2Vzc2VzL3Byb2Nlc3NvcnNcbgkgIG5vICAgICAgIGp1c3Qgc2V0IHdha2V1cCB0aW1lICAgICBvbiAgICAgIGp1c3QgcG9sbCBSVEMgZm9yIGFsYXJtXG4JICBzaG93ICAgICBqdXN0IHNob3cgY3VycmVudCBhbGFybVxuLXMgU0VDUwlXYWtlIFNFQ1Mgc2Vjb25kcyBmcm9tIG5vd1xuLXQgVU5JWAlXYWtlIFVOSVggc2Vjb25kcyBmcm9tIGVwb2NoXG4tdQlSVEMgdXNlcyBVVENcbi12CVZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9ybW1vZCAidXNhZ2U6IHJtbW9kIFstd2ZdIE1PRFVMRS4uLlxuXG5VbmxvYWQgdGhlIGdpdmVuIGtlcm5lbCBtb2R1bGVzLlxuXG4tZglGb3JjZSB1bmxvYWQgb2YgYSBtb2R1bGVcbi13CVdhaXQgdW50aWwgdGhlIG1vZHVsZSBpcyBubyBsb25nZXIgdXNlZCIKKworI2RlZmluZSBIRUxQX3JldiAidXNhZ2U6IHJldiBbRklMRS4uLl1cblxuT3V0cHV0IGVhY2ggbGluZSByZXZlcnNlZCwgd2hlbiBubyBmaWxlcyBhcmUgZ2l2ZW4gc3RkaW4gaXMgdXNlZC4iCisKKyNkZWZpbmUgSEVMUF9yZXNldCAidXNhZ2U6IHJlc2V0XG5cblJlc2V0IHRoZSB0ZXJtaW5hbC4iCisKKyNkZWZpbmUgSEVMUF9yZWJvb3QgInVzYWdlOiByZWJvb3QvaGFsdC9wb3dlcm9mZiBbLWZuXSBbLWQgREVMQVldXG5cblJlc3RhcnQsIGhhbHQsIG9yIHBvd2VyIG9mZiB0aGUgc3lzdGVtLlxuXG4tZAlXYWl0IERFTEFZIGJlZm9yZSBwcm9jZWVkaW5nIChpbiBzZWNvbmRzIG9yIG0vaC9kIHN1ZmZpeDogLWQgMS41bSA9IDkwcylcbi1mCUZvcmNlIHJlYm9vdCAoZG9uJ3Qgc2lnbmFsIGluaXQsIHJlYm9vdCBkaXJlY3RseSlcbi1uCURvbid0IHN5bmMgZmlsZXN5c3RlbXMgYmVmb3JlIHJlYm9vdCIKKworI2RlZmluZSBIRUxQX3JlYWxwYXRoICJ1c2FnZTogcmVhbHBhdGggWy1MUGVtcXN6XSBbLS1yZWxhdGl2ZS1iYXNlIERJUl0gWy1SIERJUl0gRklMRS4uLlxuXG5EaXNwbGF5IHRoZSBjYW5vbmljYWwgYWJzb2x1dGUgcGF0aG5hbWVcblxuLVIgU2hvdyAuLi9wYXRoIHJlbGF0aXZlIHRvIERJUiAoLS1yZWxhdGl2ZS10bylcbi1MIExvZ2ljYWwgcGF0aCAocmVzb2x2ZSAuLiBiZWZvcmUgc3ltbGlua3MpXG4tUCBQaHlzaWNhbCBwYXRoIChkZWZhdWx0KVxuLWUgQ2Fub25pY2FsIHBhdGggdG8gZXhpc3RpbmcgZW50cnkgKGZhaWwgaWYgbWlzc2luZylcbi1tIElnbm9yZSBtaXNzaW5nIGVudHJpZXMsIHNob3cgd2hlcmUgaXQgd291bGQgYmVcbi1xIFF1aWV0IChubyBlcnJvciBtZXNzYWdlcylcbi1zIERvbid0IGV4cGFuZCBzeW1saW5rc1xuLXogTlVMIGluc3RlYWQgb2YgbmV3bGluZVxuLS1yZWxhdGl2ZS1iYXNlICBJZiBwYXRoIHVuZGVyIERJUiB0cmltIG9mZiBwcmVmaXgiCisKKyNkZWZpbmUgSEVMUF9yZWFkbGluayAidXNhZ2U6IHJlYWRsaW5rIFstZWZtbnF6XSBGSUxFLi4uXG5cbldpdGggbm8gb3B0aW9ucywgc2hvdyB3aGF0IHN5bWxpbmsgcG9pbnRzIHRvLCByZXR1cm4gZXJyb3IgaWYgbm90IHN5bWxpbmsuXG5cbk9wdGlvbnMgZm9yIHByb2R1Y2luZyBjYW5vbmljYWwgcGF0aHMgKGFsbCBzeW1saW5rcy8uLy4uIHJlc29sdmVkKTpcblxuLWUJQ2Fub25pY2FsIHBhdGggdG8gZXhpc3RpbmcgZW50cnkgKGZhaWwgaWYgbWlzc2luZylcbi1mCUZ1bGwgcGF0aCAoZmFpbCBpZiBkaXJlY3RvcnkgbWlzc2luZylcbi1tCUlnbm9yZSBtaXNzaW5nIGVudHJpZXMsIHNob3cgd2hlcmUgaXQgd291bGQgYmVcbi1uCU5vIHRyYWlsaW5nIG5ld2xpbmVcbi1xCVF1aWV0IChubyBlcnJvciBtZXNzYWdlcylcbi16CU5VTCBpbnN0ZWFkIG9mIG5ld2xpbmUiCisKKyNkZWZpbmUgSEVMUF9yZWFkZWxmICJ1c2FnZTogcmVhZGVsZiBbLUFhZGVobG5Tc10gWy1wIFNFQ1RJT05dIFsteCBTRUNUSU9OXSBbZmlsZS4uLl1cblxuRGlzcGxheXMgaW5mb3JtYXRpb24gYWJvdXQgRUxGIGZpbGVzLlxuXG4tQQlTaG93IGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBpbmZvXG4tYQlFcXVpdmFsZW50IHRvIC1BZGhsblNzXG4tZAlTaG93IGR5bmFtaWMgc2VjdGlvblxuLWUJSGVhZGVycyAoZXF1aXZhbGVudCB0byAtaGxTKVxuLWgJU2hvdyBFTEYgaGVhZGVyXG4tbAlTaG93IHByb2dyYW0gaGVhZGVyc1xuLW4JU2hvdyBub3Rlc1xuLXAgUwlEdW1wIHN0cmluZ3MgZm91bmQgaW4gbmFtZWQvbnVtYmVyZWQgc2VjdGlvblxuLVMJU2hvdyBzZWN0aW9uIGhlYWRlcnNcbi1zCVNob3cgc3ltYm9sIHRhYmxlcyAoLmR5bnN5bSBhbmQgLnN5bXRhYilcbi14IFMJSGV4IGR1bXAgb2YgbmFtZWQvbnVtYmVyZWQgc2VjdGlvblxuXG4tLWR5bi1zeW1zCVNob3cganVzdCAuZHluc3ltIHN5bWJvbCB0YWJsZSIKKworI2RlZmluZSBIRUxQX3JlYWRhaGVhZCAidXNhZ2U6IHJlYWRhaGVhZCBGSUxFLi4uXG5cblByZWxvYWQgZmlsZXMgaW50byBkaXNrIGNhY2hlLiIKKworI2RlZmluZSBIRUxQX3B3Z2VuICJ1c2FnZTogcHdnZW4gWy1jQW4weXJzQkMxdl0gWy1yIENIQVJTXSBbTEVOR1RIXSBbQ09VTlRdXG5cbkdlbmVyYXRlIGh1bWFuLXJlYWRhYmxlIHJhbmRvbSBwYXNzd29yZHMuIERlZmF1bHQgb3V0cHV0IHRvIHR0eSBmaWxscyBzY3JlZW5cbndpdGggcGFzc3dvcmRzIHRvIGRlZmVhdCBzaG91bGRlciBzdXJmaW5nIChwaWNrIG9uZSBhbmQgY2xlYXIgdGhlIHNjcmVlbikuXG5cbi0wCU5vIG51bWJlcnMgKC0tbm8tbnVtZXJhbHMpXG4tMQlPdXRwdXQgb25lIHBlciBsaW5lXG4tQQlObyBjYXBpdGFsIGxldHRlcnMgKC0tbm8tY2FwaXRhbGl6ZSlcbi1CCUF2b2lkIGFtYmlndW91cyBjaGFyYWN0ZXJzIGxpa2UgME8gYW5kIDFsSSAoLS1hbWJpZ3VvdXMpXG4tQwlPdXRwdXQgaW4gY29sdW1uc1xuLWMJQWRkIGNhcGl0YWwgbGV0dGVycyAoLS1jYXBpdGFsaXplKVxuLW4JQWRkIG51bWJlcnMgKC0tbnVtZXJhbHMpXG4tcglEb24ndCBpbmNsdWRlIHRoZSBnaXZlbiBDSEFSUyAoLS1yZW1vdmUpXG4tdglObyB2b3dlbHMuXG4teQlBZGQgcHVuY3R1YXRpb24gKC0tc3ltYm9scykiCisKKyNkZWZpbmUgSEVMUF9wd2R4ICJ1c2FnZTogcHdkeCBQSUQuLi5cblxuUHJpbnQgd29ya2luZyBkaXJlY3Rvcnkgb2YgcHJvY2Vzc2VzIGxpc3RlZCBvbiBjb21tYW5kIGxpbmUuIgorCisjZGVmaW5lIEhFTFBfcHJpbnRlbnYgInVzYWdlOiBwcmludGVudiBbLTBdIFtlbnZfdmFyLi4uXVxuXG5QcmludCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG5cbi0wCVVzZSBcXDAgYXMgZGVsaW1pdGVyIGluc3RlYWQgb2YgXFxuIgorCisjZGVmaW5lIEhFTFBfcG1hcCAidXNhZ2U6IHBtYXAgWy1wcXhdIFBJRC4uLlxuXG5SZXBvcnQgdGhlIG1lbW9yeSBtYXAgb2YgYSBwcm9jZXNzIG9yIHByb2Nlc3Nlcy5cblxuLXAJU2hvdyBmdWxsIHBhdGhzXG4tcQlEbyBub3Qgc2hvdyBoZWFkZXIgb3IgZm9vdGVyXG4teAlTaG93IHRoZSBleHRlbmRlZCBmb3JtYXQiCisKKyNkZWZpbmUgSEVMUF9waXZvdF9yb290ICJ1c2FnZTogcGl2b3Rfcm9vdCBPTEQgTkVXXG5cblN3YXAgT0xEIGFuZCBORVcgZmlsZXN5c3RlbXMgKGFzIGlmIGJ5IHNpbXVsdGFuZW91cyBtb3VudCAtLW1vdmUpLCBhbmRcbm1vdmUgYWxsIHByb2Nlc3NlcyB3aXRoIGNoZGlyIG9yIGNocm9vdCB1bmRlciBPTEQgaW50byBORVcgKGluY2x1ZGluZ1xua2VybmVsIHRocmVhZHMpIHNvIE9MRCBtYXkgYmUgdW5tb3VudGVkLlxuXG5UaGUgZGlyZWN0b3J5IE5FVyBtdXN0IGV4aXN0IHVuZGVyIE9MRC4gVGhpcyBkb2Vzbid0IHdvcmsgb24gaW5pdHJhbWZzLFxud2hpY2ggY2FuJ3QgYmUgbW92ZWQgKGFib3V0IHRoZSBzYW1lIHdheSBQSUQgMSBjYW4ndCBiZSBraWxsZWQ7IHNlZVxuc3dpdGNoX3Jvb3QgaW5zdGVhZCkuIgorCisjZGVmaW5lIEhFTFBfcGFydHByb2JlICJ1c2FnZTogcGFydHByb2JlIERFVklDRS4uLlxuXG5UZWxsIHRoZSBrZXJuZWwgYWJvdXQgcGFydGl0aW9uIHRhYmxlIGNoYW5nZXNcblxuQXNrIHRoZSBrZXJuZWwgdG8gcmUtcmVhZCB0aGUgcGFydGl0aW9uIHRhYmxlIG9uIHRoZSBzcGVjaWZpZWQgZGV2aWNlcy4iCisKKyNkZWZpbmUgSEVMUF9kZWFsbG9jdnQgInVzYWdlOiBkZWFsbG9jdnQgW05VTV1cblxuRGVhbGxvY2F0ZSB1bnVzZWQgdmlydHVhbCB0ZXJtaW5hbHMsIGVpdGhlciBhIHNwZWNpZmljIC9kZXYvdHR5TlVNLCBvciBhbGwuIgorCisjZGVmaW5lIEhFTFBfY2h2dCAidXNhZ2U6IGNodnQgTlVNXG5cbkNoYW5nZSB0byB2aXJ0dWFsIHRlcm1pbmFsIG51bWJlciBOVU0uIChUaGlzIG9ubHkgd29ya3MgaW4gdGV4dCBtb2RlLilcblxuVmlydHVhbCB0ZXJtaW5hbHMgYXJlIHRoZSBMaW51eCBWR0EgdGV4dCBtb2RlIChvciBmcmFtZWJ1ZmZlcikgZGlzcGxheXMsXG5zd2l0Y2hlZCBiZXR3ZWVuIHZpYSBhbHQtRjEsIGFsdC1GMiwgZXRjLiBVc2UgY3RybC1hbHQtRjEgdG8gc3dpdGNoXG5mcm9tIFgxMSB0byBhIHZpcnR1YWwgdGVybWluYWwsIGFuZCBhbHQtRjYgKG9yIEY3LCBvciBGOCkgdG8gZ2V0IGJhY2suIgorCisjZGVmaW5lIEhFTFBfb3BlbnZ0ICJ1c2FnZTogb3BlbnZ0IFstYyBOVU1dIFstc3ddIENPTU1BTkQuLi5cblxuUnVuIENPTU1BTkQgb24gYSBuZXcgdmlydHVhbCB0ZXJtaW5hbC5cblxuLWMgTlVNICBVc2UgVlQgTlVNXG4tcyAgICBTd2l0Y2ggdG8gdGhlIG5ldyBWVFxuLXcgICAgV2FpdCBmb3IgY29tbWFuZCB0byBleGl0ICh3aXRoIC1zLCBkZWFsbG9jYXRlcyBWVCBvbiBleGl0KSIKKworI2RlZmluZSBIRUxQX29uZWl0ICJ1c2FnZTogb25laXQgWy1wcm4zXSBbLWMgQ09OU09MRV0gW0NPTU1BTkQuLi5dXG5cblNpbXBsZSBpbml0IHByb2dyYW0gdGhhdCBydW5zIGEgc2luZ2xlIHN1cHBsaWVkIGNvbW1hbmQgbGluZSB3aXRoIGFcbmNvbnRyb2xsaW5nIHR0eSAoc28gQ1RSTC1DIGNhbiBraWxsIGl0KS5cblxuLWMJV2hpY2ggY29uc29sZSBkZXZpY2UgdG8gdXNlICgvZGV2L2NvbnNvbGUgZG9lc24ndCBkbyBDVFJMLUMsIGV0Yylcbi1wCVBvd2VyIG9mZiBpbnN0ZWFkIG9mIHJlYm9vdGluZyB3aGVuIGNvbW1hbmQgZXhpdHNcbi1yCVJlc3RhcnQgY2hpbGQgd2hlbiBpdCBleGl0c1xuLW4JTm8gcmVib290LCBqdXN0IHJlbGF1bmNoIGNvbW1hbmQgbGluZVxuLTMJV3JpdGUgMzIgYml0IFBJRCBvZiBlYWNoIGV4aXRpbmcgcmVwYXJlbnRlZCBwcm9jZXNzIHRvIGZkIDMgb2YgY2hpbGRcbgkoQmxvY2tpbmcgd3JpdGVzLCBjaGlsZCBtdXN0IHJlYWQgdG8gYXZvaWQgZXZlbnR1YWwgZGVhZGxvY2suKVxuXG5TcGF3bnMgYSBzaW5nbGUgY2hpbGQgcHJvY2VzcyAoYmVjYXVzZSBQSUQgMSBoYXMgc2lnbmFscyBibG9ja2VkKVxuaW4gaXRzIG93biBzZXNzaW9uLCByZWFwcyB6b21iaWVzIHVudGlsIHRoZSBjaGlsZCBleGl0cywgdGhlblxucmVib290cyB0aGUgc3lzdGVtIChvciBwb3dlcnMgb2ZmIHdpdGggLXAsIG9yIHJlc3RhcnRzIHRoZSBjaGlsZCB3aXRoIC1yKS5cblxuUmVzcG9uZHMgdG8gU0lHVVNSMSBieSBoYWx0aW5nIHRoZSBzeXN0ZW0sIFNJR1VTUjIgYnkgcG93ZXJpbmcgb2ZmLFxuYW5kIFNJR1RFUk0gb3IgU0lHSU5UIHJlYm9vdC4iCisKKyNkZWZpbmUgSEVMUF9uc2VudGVyICJ1c2FnZTogbnNlbnRlciBbLXQgcGlkXSBbLUZdIFstaV0gWy1tXSBbLW5dIFstcF0gWy11XSBbLVVdIENPTU1BTkQuLi5cblxuUnVuIENPTU1BTkQgaW4gYW4gZXhpc3RpbmcgKHNldCBvZikgbmFtZXNwYWNlKHMpLlxuXG4tYQlFbnRlciBhbGwgc3VwcG9ydGVkIG5hbWVzcGFjZXMgKC0tYWxsKVxuLUYJZG9uJ3QgZm9yaywgZXZlbiBpZiAtcCBpcyB1c2VkICgtLW5vLWZvcmspXG4tdAlQSUQgdG8gdGFrZSBuYW1lc3BhY2VzIGZyb20gICAgKC0tdGFyZ2V0KVxuXG5UaGUgbmFtZXNwYWNlcyB0byBzd2l0Y2ggYXJlOlxuXG4tQwlDb250cm9sIGdyb3VwcyAoLS1jZ3JvdXApXG4taQlTeXNWIElQQzogbWVzc2FnZSBxdWV1ZXMsIHNlbWFwaG9yZXMsIHNoYXJlZCBtZW1vcnkgKC0taXBjKVxuLW0JTW91bnQvdW5tb3VudCB0cmVlICgtLW1vdW50KVxuLW4JTmV0d29yayBhZGRyZXNzLCBzb2NrZXRzLCByb3V0aW5nLCBpcHRhYmxlcyAoLS1uZXQpXG4tcAlQcm9jZXNzIElEcyBhbmQgaW5pdCwgd2lsbCBmb3JrIHVubGVzcyAtRiBpcyB1c2VkICgtLXBpZClcbi11CUhvc3QgYW5kIGRvbWFpbiBuYW1lcyAoLS11dHMpXG4tVQlVSURzLCBHSURzLCBjYXBhYmlsaXRpZXMgKC0tdXNlcilcblxuSWYgLXQgaXNuJ3Qgc3BlY2lmaWVkLCBlYWNoIG5hbWVzcGFjZSBhcmd1bWVudCBtdXN0IHByb3ZpZGUgYSBwYXRoXG50byBhIG5hbWVzcGFjZSBmaWxlLCBhbGEgXCItaT0vcHJvYy8kUElEL25zL2lwY1wiIgorCisjZGVmaW5lIEhFTFBfdW5zaGFyZSAidXNhZ2U6IHVuc2hhcmUgWy1pbW5wdVVyXSBDT01NQU5ELi4uXG5cbkNyZWF0ZSBuZXcgY29udGFpbmVyIG5hbWVzcGFjZShzKSBmb3IgdGhpcyBwcm9jZXNzIGFuZCBpdHMgY2hpbGRyZW4sIGFsbG93aW5nXG50aGUgbmV3IHNldCBvZiBwcm9jZXNzZXMgdG8gaGF2ZSBhIGRpZmZlcmVudCB2aWV3IG9mIHRoZSBzeXN0ZW0gdGhhbiB0aGVcbnBhcmVudCBwcm9jZXNzLlxuXG4tYQlVbnNoYXJlIGFsbCBzdXBwb3J0ZWQgbmFtZXNwYWNlc1xuLWYJRm9yayBjb21tYW5kIGluIHRoZSBiYWNrZ3JvdW5kICgtLWZvcmspXG4tcglCZWNvbWUgcm9vdCAobWFwIGN1cnJlbnQgZXVpZC9lZ2lkIHRvIDAvMCwgaW1wbGllcyAtVSkgKC0tbWFwLXJvb3QtdXNlcilcblxuQXZhaWxhYmxlIG5hbWVzcGFjZXM6XG4tQwlDb250cm9sIGdyb3VwcyAoLS1jZ3JvdXApXG4taQlTeXNWIElQQyAobWVzc2FnZSBxdWV1ZXMsIHNlbWFwaG9yZXMsIHNoYXJlZCBtZW1vcnkpICgtLWlwYylcbi1tCU1vdW50L3VubW91bnQgdHJlZSAoLS1tb3VudClcbi1uCU5ldHdvcmsgYWRkcmVzcywgc29ja2V0cywgcm91dGluZywgaXB0YWJsZXMgKC0tbmV0KVxuLXAJUHJvY2VzcyBJRHMgYW5kIGluaXQgKC0tcGlkKVxuLXUJSG9zdCBhbmQgZG9tYWluIG5hbWVzICgtLXV0cylcbi1VCVVJRHMsIEdJRHMsIGNhcGFiaWxpdGllcyAoLS11c2VyKVxuXG5FYWNoIG5hbWVzcGFjZSBjYW4gdGFrZSBhbiBvcHRpb25hbCBhcmd1bWVudCwgYSBwZXJzaXN0ZW50IG1vdW50cG9pbnQgdXNhYmxlXG5ieSB0aGUgbnNlbnRlciBjb21tYW5kIHRvIGFkZCBuZXcgcHJvY2Vzc2VzIHRvIHRoYXQgdGhlIG5hbWVzcGFjZS4gKFNwZWNpZnlcbm11bHRpcGxlIG5hbWVzcGFjZXMgdG8gdW5zaGFyZSBzZXBhcmF0ZWx5LCBhbGEgLWMgLWkgLW0gYmVjYXVzZSAtY2ltIGlzIC1jXG53aXRoIHBlcnNpc3RlbnQgbW91bnQgXCJpbVwiLikiCisKKyNkZWZpbmUgSEVMUF9uYmRfc2VydmVyICJ1c2FnZTogbmJkLXNlcnZlciBbLXJdIEZJTEVcblxuU2VydmUgYSBOZXR3b3JrIEJsb2NrIERldmljZSBmcm9tIEZJTEUgb24gc3RkaW4vb3V0IChhbGEgaW5ldGQpLlxuXG4tcglSZWFkIG9ubHkgZXhwb3J0IgorCisjZGVmaW5lIEhFTFBfbmJkX2NsaWVudCAidXNhZ2U6IG5iZC1jbGllbnQgWy1uc10gWy1iIEJMS1NaXSBIT1NUIFBPUlQgREVWSUNFXG5cbi1iCUJsb2NrIHNpemUgKGRlZmF1bHQgNDA5Nilcbi1uCURvIG5vdCBkYWVtb25pemVcbi1zCW5iZCBzd2FwIHN1cHBvcnQgKGxvY2sgc2VydmVyIGludG8gbWVtb3J5KSIKKworI2RlZmluZSBIRUxQX21vdW50cG9pbnQgInVzYWdlOiBtb3VudHBvaW50IFstcWRdIERJUlxuICAgICAgIG1vdW50cG9pbnQgWy1xeF0gREVWSUNFXG5cbkNoZWNrIHdoZXRoZXIgdGhlIGRpcmVjdG9yeSBvciBkZXZpY2UgaXMgYSBtb3VudHBvaW50LlxuXG4tcQlCZSBxdWlldCwgcmV0dXJuIHplcm8gaWYgZGlyZWN0b3J5IGlzIGEgbW91bnRwb2ludFxuLWQJUHJpbnQgbWFqb3IvbWlub3IgZGV2aWNlIG51bWJlciBvZiB0aGUgZGlyZWN0b3J5XG4teAlQcmludCBtYWpvci9taW5vciBkZXZpY2UgbnVtYmVyIG9mIHRoZSBibG9jayBkZXZpY2UiCisKKyNkZWZpbmUgSEVMUF9tb2RpbmZvICJ1c2FnZTogbW9kaW5mbyBbLTBdIFstYiBiYXNlZGlyXSBbLWsga2VybmVsXSBbLUYgZmllbGRdIFttb2R1bGV8ZmlsZS4uLl1cblxuRGlzcGxheSBtb2R1bGUgZmllbGRzIGZvciBtb2R1bGVzIHNwZWNpZmllZCBieSBuYW1lIG9yIC5rbyBwYXRoLlxuXG4tRiAgT25seSBzaG93IHRoZSBnaXZlbiBmaWVsZFxuLTAgIFNlcGFyYXRlIGZpZWxkcyB3aXRoIE5VTCByYXRoZXIgdGhhbiBuZXdsaW5lXG4tYiAgVXNlIDxiYXNlZGlyPiBhcyByb290IGZvciAvbGliL21vZHVsZXMvXG4tayAgTG9vayBpbiBnaXZlbiBkaXJlY3RvcnkgdW5kZXIgL2xpYi9tb2R1bGVzLyIKKworI2RlZmluZSBIRUxQX21rc3dhcCAidXNhZ2U6IG1rc3dhcCBbLUwgTEFCRUxdIERFVklDRVxuXG5TZXQgdXAgYSBMaW51eCBzd2FwIGFyZWEgb24gYSBkZXZpY2Ugb3IgZmlsZS4iCisKKyNkZWZpbmUgSEVMUF9ta3Bhc3N3ZCAidXNhZ2U6IG1rcGFzc3dkIFstUCBGRF0gWy1tIFRZUEVdIFstUyBTQUxUXSBbUEFTU1dPUkRdIFtTQUxUXVxuXG5FbmNyeXB0IFBBU1NXT1JEIHVzaW5nIGNyeXB0KDMpLCB3aXRoIGVpdGhlciByYW5kb20gb3IgcHJvdmlkZWQgU0FMVC5cblxuLVAgRkQJUmVhZCBwYXNzd29yZCBmcm9tIGZpbGUgZGVzY3JpcHRvciBGRFxuLW0gVFlQRQlFbmNyeXB0aW9uIG1ldGhvZCAoZGVzLCBtZDUsIHNoYTI1Niwgb3Igc2hhNTEyOyBkZWZhdWx0IGlzIGRlcykiCisKKyNkZWZpbmUgSEVMUF9taXggInVzYWdlOiBtaXggWy1kIERFVl0gWy1jIENIQU5ORUxdIFstbCBWT0xdIFstciBSSUdIVF1cblxuTGlzdCBPU1Mgc291bmQgY2hhbm5lbHMgKG1vZHVsZSBzbmQtbWl4ZXItb3NzKSwgb3Igc2V0IHZvbHVtZShzKS5cblxuLWMgQ0hBTk5FTAlTZXQvc2hvdyB2b2x1bWUgb2YgQ0hBTk5FTCAoZGVmYXVsdCBmaXJzdCBjaGFubmVsIGZvdW5kKVxuLWQgREVWCQlEZXZpY2Ugbm9kZSAoZGVmYXVsdCAvZGV2L21peGVyKVxuLWwgVk9MCQlWb2x1bWUgbGV2ZWxcbi1yIFJJR0hUCVZvbHVtZSBvZiByaWdodCBzdGVyZW8gY2hhbm5lbCAod2l0aCAtciwgLWwgc2V0cyBsZWZ0IHZvbHVtZSkiCisKKyNkZWZpbmUgSEVMUF9tZW1lYXRlciAidXNhZ2U6IG1lbWVhdGVyIFstTV0gQllURVNcblxuQ29uc3VtZSB0aGUgc3BlY2lmaWVkIGFtb3VudCBvZiBtZW1vcnkgYW5kIHdhaXQgdG8gYmUga2lsbGVkLlxuXG4tTQlEb24ndCBtbG9jaygpIHRoZSBtZW1vcnkgKGxldCBpdCBzd2FwIG91dCkuIgorCisjZGVmaW5lIEhFTFBfbWNvb2tpZSAidXNhZ2U6IG1jb29raWUgWy12Vl1cblxuR2VuZXJhdGUgYSAxMjgtYml0IHN0cm9uZyByYW5kb20gbnVtYmVyLlxuXG4tdiAgc2hvdyBlbnRyb3B5IHNvdXJjZSAodmVyYm9zZSlcbi1WICBzaG93IHZlcnNpb24iCisKKyNkZWZpbmUgSEVMUF9tYWtlZGV2cyAidXNhZ2U6IG1ha2VkZXZzIFstZCBkZXZpY2VfdGFibGVdIHJvb3RkaXJcblxuQ3JlYXRlIGEgcmFuZ2Ugb2Ygc3BlY2lhbCBmaWxlcyBhcyBzcGVjaWZpZWQgaW4gYSBkZXZpY2UgdGFibGUuXG5cbi1kCUZpbGUgY29udGFpbmluZyBkZXZpY2UgdGFibGUgKGRlZmF1bHQgcmVhZHMgZnJvbSBzdGRpbilcblxuRWFjaCBsaW5lIG9mIHRoZSBkZXZpY2UgdGFibGUgaGFzIHRoZSBmaWVsZHM6XG48bmFtZT4gPHR5cGU+IDxtb2RlPiA8dWlkPiA8Z2lkPiA8bWFqb3I+IDxtaW5vcj4gPHN0YXJ0PiA8aW5jcmVtZW50PiA8Y291bnQ+XG5XaGVyZSBuYW1lIGlzIHRoZSBmaWxlIG5hbWUsIGFuZCB0eXBlIGlzIG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuXG5iCUJsb2NrIGRldmljZVxuYwlDaGFyYWN0ZXIgZGV2aWNlXG5kCURpcmVjdG9yeVxuZglSZWd1bGFyIGZpbGVcbnAJTmFtZWQgcGlwZSAoZmlmbylcblxuT3RoZXIgZmllbGRzIHNwZWNpZnkgcGVybWlzc2lvbnMsIHVzZXIgYW5kIGdyb3VwIGlkIG93bmluZyB0aGUgZmlsZSxcbmFuZCBhZGRpdGlvbmFsIGZpZWxkcyBmb3IgZGV2aWNlIHNwZWNpYWwgZmlsZXMuIFVzZSAnLScgZm9yIGJsYW5rIGVudHJpZXMsXG51bnNwZWNpZmllZCBmaWVsZHMgYXJlIHRyZWF0ZWQgYXMgJy0nLiIKKworI2RlZmluZSBIRUxQX2xzdXNiICJ1c2FnZTogbHN1c2IgWy1pXVxuXG5MaXN0IFVTQiBob3N0cy9kZXZpY2VzLlxuXG4taQlJRCBkYXRhYmFzZSAoZGVmYXVsdCAvZXRjL3VzYi5pZHNbLmd6XSkiCisKKyNkZWZpbmUgSEVMUF9sc3BjaSAidXNhZ2U6IGxzcGNpIFstZWttbl0gWy1pIEZJTEVdXG5cbkxpc3QgUENJIGRldmljZXMuXG5cbi1lCUV4dGVuZGVkICg2IGRpZ2l0KSBjbGFzc1xuLWkJSUQgZGF0YWJhc2UgKGRlZmF1bHQgL2V0Yy9wY2kuaWRzWy5nel0pXG4tawlTaG93IGtlcm5lbCBkcml2ZXJcbi1tCU1hY2hpbmUgcmVhZGFibGVcbi1uCU51bWVyaWMgb3V0cHV0ICgtbm4gZm9yIGJvdGgpXG4teAlIZXggZHVtcCBvZiBjb25maWcgc3BhY2UgKDY0IGJ5dGVzOyAteHh4IGZvciAyNTYsIC14eHh4IGZvciA0MDk2KSIKKworI2RlZmluZSBIRUxQX2xzbW9kICJ1c2FnZTogbHNtb2RcblxuRGlzcGxheSB0aGUgY3VycmVudGx5IGxvYWRlZCBtb2R1bGVzLCB0aGVpciBzaXplcyBhbmQgdGhlaXIgZGVwZW5kZW5jaWVzLiIKKworI2RlZmluZSBIRUxQX2NoYXR0ciAidXNhZ2U6IGNoYXR0ciBbLVJdIFstKz1BYWNEZGlqc1N0VHVdIFstcCBQUk9KSURdIFstdiBWRVJTSU9OXSBbRklMRS4uLl1cblxuQ2hhbmdlIGZpbGUgYXR0cmlidXRlcyBvbiBhIExpbnV4IGZpbGUgc3lzdGVtLlxuXG4tUglSZWN1cnNlXG4tcAlTZXQgdGhlIGZpbGUncyBwcm9qZWN0IG51bWJlclxuLXYJU2V0IHRoZSBmaWxlJ3MgdmVyc2lvbi9nZW5lcmF0aW9uIG51bWJlclxuXG5PcGVyYXRvcnM6XG4gICctJyBSZW1vdmUgYXR0cmlidXRlc1xuICAnKycgQWRkIGF0dHJpYnV0ZXNcbiAgJz0nIFNldCBhdHRyaWJ1dGVzXG5cbkF0dHJpYnV0ZXM6XG4gIEEgIE5vIGF0aW1lICAgICAgICAgICAgICAgICAgICAgYSAgQXBwZW5kIG9ubHlcbiAgQyAgTm8gQ09XICAgICAgICAgICAgICAgICAgICAgICBjICBDb21wcmVzc2lvblxuICBEICBTeW5jaHJvbm91cyBkaXIgdXBkYXRlcyAgICAgIGQgIE5vIGR1bXBcbiAgRSAgRW5jcnlwdGVkICAgICAgICAgICAgICAgICAgICBlICBFeHRlbnRzXG4gIEYgIENhc2UtaW5zZW5zaXRpdmUgKGNhc2Vmb2xkKVxuICBJICBJbmRleGVkIGRpcmVjdG9yeSAgICAgICAgICAgIGkgIEltbXV0YWJsZVxuICBqICBKb3VybmFsIGRhdGFcbiAgTiAgSW5saW5lIGRhdGEgaW4gaW5vZGVcbiAgUCAgUHJvamVjdCBoaWVyYXJjaHlcbiAgUyAgU3luY2hyb25vdXMgZmlsZSB1cGRhdGVzICAgICBzICBTZWN1cmUgZGVsZXRlXG4gIFQgIFRvcCBvZiBkaXIgaGllcmFyY2h5ICAgICAgICAgdCAgTm8gdGFpbC1tZXJnaW5nXG4gIHUgIEFsbG93IHVuZGVsZXRlXG4gIFYgIFZlcml0eSIKKworI2RlZmluZSBIRUxQX2xzYXR0ciAidXNhZ2U6IGxzYXR0ciBbLVJhZGxwdl0gW0ZJTEUuLi5dXG5cbkxpc3QgZmlsZSBhdHRyaWJ1dGVzIG9uIGEgTGludXggZmlsZSBzeXN0ZW0uXG5GbGFnIGxldHRlcnMgYXJlIGRlZmluZWQgaW4gY2hhdHRyIGhlbHAuXG5cbi1SCVJlY3Vyc2l2ZWx5IGxpc3QgYXR0cmlidXRlcyBvZiBkaXJlY3RvcmllcyBhbmQgdGhlaXIgY29udGVudHNcbi1hCUxpc3QgYWxsIGZpbGVzIGluIGRpcmVjdG9yaWVzLCBpbmNsdWRpbmcgZmlsZXMgdGhhdCBzdGFydCB3aXRoICcuJ1xuLWQJTGlzdCBkaXJlY3RvcmllcyBsaWtlIG90aGVyIGZpbGVzLCByYXRoZXIgdGhhbiBsaXN0aW5nIHRoZWlyIGNvbnRlbnRzXG4tbAlMaXN0IGxvbmcgZmxhZyBuYW1lc1xuLXAJTGlzdCB0aGUgZmlsZSdzIHByb2plY3QgbnVtYmVyXG4tdglMaXN0IHRoZSBmaWxlJ3MgdmVyc2lvbi9nZW5lcmF0aW9uIG51bWJlciIKKworI2RlZmluZSBIRUxQX2xvc2V0dXAgInVzYWdlOiBsb3NldHVwIFstY2Ryc10gWy1vIE9GRlNFVF0gWy1TIFNJWkVdIHstZCBERVZJQ0UuLi58LWogRklMRXwtYWZ8e0RFVklDRSBGSUxFfX1cblxuQXNzb2NpYXRlIGEgbG9vcGJhY2sgZGV2aWNlIHdpdGggYSBmaWxlLCBvciBzaG93IGN1cnJlbnQgZmlsZSAoaWYgYW55KVxuYXNzb2NpYXRlZCB3aXRoIGEgbG9vcCBkZXZpY2UuXG5cbkluc3RlYWQgb2YgYSBkZXZpY2U6XG4tYQlJdGVyYXRlIHRocm91Z2ggYWxsIGxvb3BiYWNrIGRldmljZXNcbi1mCUZpbmQgZmlyc3QgdW51c2VkIGxvb3AgZGV2aWNlIChtYXkgY3JlYXRlIG9uZSlcbi1qIEZJTEUJSXRlcmF0ZSB0aHJvdWdoIGFsbCBsb29wYmFjayBkZXZpY2VzIGFzc29jaWF0ZWQgd2l0aCBGSUxFXG5cbmV4aXN0aW5nOlxuLWMJQ2hlY2sgY2FwYWNpdHkgKGZpbGUgc2l6ZSBjaGFuZ2VkKVxuLWQgREVWCURldGFjaCBsb29wYmFjayBkZXZpY2Vcbi1ECURldGFjaCBhbGwgbG9vcGJhY2sgZGV2aWNlc1xuXG5uZXc6XG4tcwlTaG93IGRldmljZSBuYW1lIChhbGlhcyAtLXNob3cpXG4tbyBPRkYJU3RhcnQgYXNzb2NpYXRpb24gYXQgb2Zmc2V0IE9GRiBpbnRvIEZJTEVcbi1yCVJlYWQgb25seVxuLVMgU0laRQlMaW1pdCBTSVpFIG9mIGxvb3BiYWNrIGFzc29jaWF0aW9uIChhbGlhcyAtLXNpemVsaW1pdCkiCisKKyNkZWZpbmUgSEVMUF9sb2dpbiAidXNhZ2U6IGxvZ2luIFstcF0gWy1oIGhvc3RdIFstZiBVU0VSTkFNRV0gW1VTRVJOQU1FXVxuXG5Mb2cgaW4gYXMgYSB1c2VyLCBwcm9tcHRpbmcgZm9yIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBpZiBuZWNlc3NhcnkuXG5cbi1wCVByZXNlcnZlIGVudmlyb25tZW50XG4taAlUaGUgbmFtZSBvZiB0aGUgcmVtb3RlIGhvc3QgZm9yIHRoaXMgbG9naW5cbi1mCWxvZ2luIGFzIFVTRVJOQU1FIHdpdGhvdXQgYXV0aGVudGljYXRpb24iCisKKyNkZWZpbmUgSEVMUF9saW51eDMyICJ1c2FnZTogbGludXgzMiBbQ09NTUFORC4uLl1cblxuVGVsbCB1bmFtZSAtbSB0byBsaWUgdG8gYXV0b2NvbmYgKHRvIGJ1aWxkIDMyIGJpdCBiaW5hcmllcyBvbiA2NCBiaXQga2VybmVsKS4iCisKKyNkZWZpbmUgSEVMUF9pb3JlbmljZSAidXNhZ2U6IGlvcmVuaWNlIFBJRCBbQ0xBU1NdIFtQUklPUklUWV1cblxuRGlzcGxheSBvciBjaGFuZ2UgSS9PIHByaW9yaXR5IG9mIGV4aXN0aW5nIHByb2Nlc3MuIENMQVNTIGNhbiBiZVxuXCJydFwiIGZvciByZWFsdGltZSwgXCJiZVwiIGZvciBiZXN0IGVmZm9ydCwgXCJpZGxlXCIgZm9yIG9ubHkgd2hlbiBpZGxlLCBvclxuXCJub25lXCIgdG8gbGVhdmUgaXQgYWxvbmUuIFBSSU9SSVRZIGNhbiBiZSAwLTcgKDAgaXMgaGlnaGVzdCwgZGVmYXVsdCA0KS4iCisKKyNkZWZpbmUgSEVMUF9pb25pY2UgInVzYWdlOiBpb25pY2UgWy10XSBbLWMgQ0xBU1NdIFstbiBMRVZFTF0gW0NPTU1BTkQuLi58LXAgUElEXVxuXG5DaGFuZ2UgdGhlIEkvTyBzY2hlZHVsaW5nIHByaW9yaXR5IG9mIGEgcHJvY2Vzcy4gV2l0aCBubyBhcmd1bWVudHNcbihvciBqdXN0IC1wKSwgZGlzcGxheSBwcm9jZXNzJyBleGlzdGluZyBJL08gY2xhc3MvcHJpb3JpdHkuXG5cbi1jCUNMQVNTID0gMS0zOiAxKHJlYWx0aW1lKSwgMihiZXN0LWVmZm9ydCwgZGVmYXVsdCksIDMod2hlbi1pZGxlKVxuLW4JTEVWRUwgPSAwLTc6ICgwIGlzIGhpZ2hlc3QgcHJpb3JpdHksIGRlZmF1bHQgPSA1KVxuLXAJQWZmZWN0IGV4aXN0aW5nIFBJRCBpbnN0ZWFkIG9mIHNwYXduaW5nIG5ldyBjaGlsZFxuLXQJSWdub3JlIGZhaWx1cmUgdG8gc2V0IEkvTyBwcmlvcml0eVxuXG5TeXN0ZW0gZGVmYXVsdCBpb3ByaW9yaXR5IGlzIGdlbmVyYWxseSAtYyAyIC1uIDQuIgorCisjZGVmaW5lIEhFTFBfaW5zbW9kICJ1c2FnZTogaW5zbW9kIE1PRFVMRSBbT1BUSU9OLi4uXVxuXG5Mb2FkIHRoZSBtb2R1bGUgbmFtZWQgTU9EVUxFIHBhc3Npbmcgb3B0aW9ucyBpZiBnaXZlbi4iCisKKyNkZWZpbmUgSEVMUF9pbm90aWZ5ZCAidXNhZ2U6IGlub3RpZnlkIFBST0cgRklMRVs6TUFTS10gLi4uXG5cbldoZW4gYSBmaWxlc3lzdGVtIGV2ZW50IG1hdGNoaW5nIE1BU0sgb2NjdXJzIHRvIGEgRklMRSwgcnVuIFBST0cgYXM6XG5cbiAgUFJPRyBFVkVOVFMgRklMRSBbRElSRklMRV1cblxuSWYgUFJPRyBpcyBcIi1cIiBldmVudHMgYXJlIHNlbnQgdG8gc3Rkb3V0LlxuXG5UaGlzIGZpbGUgaXM6XG4gIGEgIGFjY2Vzc2VkICAgIGMgIG1vZGlmaWVkICAgIGUgIG1ldGFkYXRhIGNoYW5nZSAgdyAgY2xvc2VkICh3cml0YWJsZSlcbiAgciAgb3BlbmVkICAgICAgRCAgZGVsZXRlZCAgICAgTSAgbW92ZWQgICAgICAgICAgICAwICBjbG9zZWQgKHVud3JpdGFibGUpXG4gIHUgIHVubW91bnRlZCAgIG8gIG92ZXJmbG93ICAgIHggIHVud2F0Y2hhYmxlXG5cbkEgZmlsZSBpbiB0aGlzIGRpcmVjdG9yeSBpczpcbiAgbSAgbW92ZWQgaW4gICAgeSAgbW92ZWQgb3V0ICAgbiAgY3JlYXRlZCAgICAgICAgICBkICBkZWxldGVkXG5cbldoZW4geCBldmVudCBoYXBwZW5zIGZvciBhbGwgRklMRXMsIGlub3RpZnlkIGV4aXRzIChhZnRlciB3YWl0aW5nIGZvciBQUk9HKS4iCisKKyNkZWZpbmUgSEVMUF9pMmN0cmFuc2ZlciAidXNhZ2U6IGkyY3RyYW5zZmVyIFstZnldIEJVUyBERVNDIFtEQVRBLi4uXS4uLlxuXG5NYWtlIGkyYyB0cmFuc2ZlcnMuIERFU0MgaXMgJ3InIGZvciByZWFkIG9yICd3JyBmb3Igd3JpdGUsIGZvbGxvd2VkIGJ5XG50aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQgb3Igd3JpdGUsIGZvbGxvd2VkIGJ5ICdAJyBhbmQgYSA3LWJpdCBhZGRyZXNzLlxuRm9yIGFueSBtZXNzYWdlIGFmdGVyIHRoZSBmaXJzdCwgdGhlICdAJyBhbmQgYWRkcmVzcyBjYW4gYmUgb21pdHRlZCB0b1xucmV1c2UgdGhlIHByZXZpb3VzIGFkZHJlc3MuIEEgJ3cnIERFU0MgbXVzdCBiZSBmb2xsb3dlZCBieSB0aGUgbnVtYmVyIG9mXG5EQVRBIGJ5dGVzIHRoYXQgd2FzIHNwZWNpZmllZCBpbiB0aGUgREVTQy5cblxuLWYJRm9yY2UgYWNjZXNzIHRvIGJ1c3kgZGV2aWNlc1xuLXYJVmVyYm9zZSAoc2hvdyBtZXNzYWdlcyBzZW50LCBub3QganVzdCByZWNlaXZlZClcbi15CVNraXAgY29uZmlybWF0aW9uIHByb21wdHMgKHllcyB0byBhbGwpIgorCisjZGVmaW5lIEhFTFBfaTJjc2V0ICJ1c2FnZTogaTJjc2V0IFstZnldIEJVUyBDSElQIEFERFIgVkFMVUUuLi4gTU9ERVxuXG5Xcml0ZSBhbiBpMmMgcmVnaXN0ZXIuIE1PREUgaXMgYiBmb3IgYnl0ZSwgdyBmb3IgMTYtYml0IHdvcmQsIGkgZm9yIEkyQyBibG9jay5cblxuLWYJRm9yY2UgYWNjZXNzIHRvIGJ1c3kgZGV2aWNlc1xuLXkJU2tpcCBjb25maXJtYXRpb24gcHJvbXB0cyAoeWVzIHRvIGFsbCkiCisKKyNkZWZpbmUgSEVMUF9pMmNnZXQgInVzYWdlOiBpMmNnZXQgWy1meV0gQlVTIENISVAgW0FERFJdXG5cblJlYWQgYW4gaTJjIHJlZ2lzdGVyLlxuXG4tZglGb3JjZSBhY2Nlc3MgdG8gYnVzeSBkZXZpY2VzXG4teQlTa2lwIGNvbmZpcm1hdGlvbiBwcm9tcHRzICh5ZXMgdG8gYWxsKSIKKworI2RlZmluZSBIRUxQX2kyY2R1bXAgInVzYWdlOiBpMmNkdW1wIFstZnldIEJVUyBDSElQXG5cbkR1bXAgaTJjIHJlZ2lzdGVycy5cblxuLWYJRm9yY2UgYWNjZXNzIHRvIGJ1c3kgZGV2aWNlc1xuLXkJU2tpcCBjb25maXJtYXRpb24gcHJvbXB0cyAoeWVzIHRvIGFsbCkiCisKKyNkZWZpbmUgSEVMUF9pMmNkZXRlY3QgInVzYWdlOiBpMmNkZXRlY3QgWy1hcXJ5XSBCVVMgW0ZJUlNUIExBU1RdXG51c2FnZTogaTJjZGV0ZWN0IC1GIEJVU1xudXNhZ2U6IGkyY2RldGVjdCAtbFxuXG5EZXRlY3QgaTJjIGRldmljZXMuXG5cbi1hCUFsbCBhZGRyZXNzZXMgKDB4MDAtMHg3ZiByYXRoZXIgdGhhbiAweDAzLTB4Nzcgb3IgRklSU1QtTEFTVClcbi1GCVNob3cgZnVuY3Rpb25hbGl0eVxuLWwJTGlzdCBhdmFpbGFibGUgYnVzZXNcbi1xCVByb2JlIHdpdGggU01CdXMgUXVpY2sgV3JpdGUgKGRlZmF1bHQpXG4tcglQcm9iZSB3aXRoIFNNQnVzIFJlYWQgQnl0ZVxuLXkJU2tpcCBjb25maXJtYXRpb24gcHJvbXB0cyAoeWVzIHRvIGFsbCkiCisKKyNkZWZpbmUgSEVMUF9od2Nsb2NrICJ1c2FnZTogaHdjbG9jayBbLXJzd3RsdV0gWy1mIEZJTEVdXG5cbkdldC9zZXQgdGhlIGhhcmR3YXJlIGNsb2NrLiBEZWZhdWx0IGlzIGh3Y2xvY2sgLXJ1ZiAvZGV2L3J0YzBcblxuLWYJVXNlIHNwZWNpZmllZCBkZXZpY2UgRklMRSBpbnN0ZWFkIG9mIC9kZXYvcnRjMCAoLS1ydGMpXG4tbAlIYXJkd2FyZSBjbG9jayB1c2VzIGxvY2FsdGltZSAoLS1sb2NhbHRpbWUpXG4tcglTaG93IGhhcmR3YXJlIGNsb2NrIHRpbWUgKC0tc2hvdylcbi1zCVNldCBzeXN0ZW0gdGltZSBmcm9tIGhhcmR3YXJlIGNsb2NrICgtLWhjdG9zeXMpXG4tdAlJbmZvcm0ga2VybmVsIG9mIG5vbi1VVEMgY2xvY2sncyB0aW1lem9uZSBzbyBpdCByZXR1cm5zIFVUQyAoLS1zeXN0eilcbi11CUhhcmR3YXJlIGNsb2NrIHVzZXMgVVRDICgtLXV0Yylcbi13CVNldCBoYXJkd2FyZSBjbG9jayBmcm9tIHN5c3RlbSB0aW1lICgtLXN5c3RvaGMpIgorCisjZGVmaW5lIEhFTFBfaGV4ZWRpdCAidXNhZ2U6IGhleGVkaXQgWy1yXSBGSUxFXG5cbkhleGFkZWNpbWFsIGZpbGUgZWRpdG9yL3ZpZXdlci4gQWxsIGNoYW5nZXMgYXJlIHdyaXR0ZW4gdG8gZGlzayBpbW1lZGlhdGVseS5cblxuLXIJUmVhZCBvbmx5IChkaXNwbGF5IGJ1dCBkb24ndCBlZGl0KVxuXG5LZXlzOlxuQXJyb3dzICAgICAgICAgTW92ZSBsZWZ0L3JpZ2h0L3VwL2Rvd24gYnkgb25lIGxpbmUvY29sdW1uXG5QZ1VwL1BnRG4gICAgICBNb3ZlIHVwL2Rvd24gYnkgb25lIHBhZ2VcbkhvbWUvRW5kICAgICAgIFN0YXJ0L2VuZCBvZiBsaW5lIChzdGFydC9lbmQgb2YgZmlsZSB3aXRoIGN0cmwpXG4wLTksIGEtZiAgICAgICBDaGFuZ2UgY3VycmVudCBoYWxmLWJ5dGUgdG8gaGV4YWRlY2ltYWwgdmFsdWVcbl5KIG9yIDogICAgICAgIEp1bXAgKCsvLSBmb3IgcmVsYXRpdmUgb2Zmc2V0LCBvdGhlcndpc2UgYWJzb2x1dGUgYWRkcmVzcylcbl5GIG9yIC8gICAgICAgIEZpbmQgc3RyaW5nICheRy9uOiBuZXh0LCBeRC9wOiBwcmV2aW91cyBtYXRjaClcbnUgICAgICAgICAgICAgIFVuZG9cbnggICAgICAgICAgICAgIFRvZ2dsZSBidy9jb2xvciBkaXNwbGF5XG5xL15DL15RL0VzYyAgICBRdWl0IgorCisjZGVmaW5lIEhFTFBfaGVscCAidXNhZ2U6IGhlbHAgWy1haHVdIFtDT01NQU5EXVxuXG4tYQlBbGwgY29tbWFuZHNcbi11CVVzYWdlIG9ubHlcbi1oCUhUTUwgb3V0cHV0XG5cblNob3cgdXNhZ2UgaW5mb3JtYXRpb24gZm9yIHRveWJveCBjb21tYW5kcy5cblJ1biBcInRveWJveFwiIHdpdGggbm8gYXJndW1lbnRzIGZvciBhIGxpc3Qgb2YgYXZhaWxhYmxlIGNvbW1hbmRzLiIKKworI2RlZmluZSBIRUxQX2dwaW9zZXQgInVzYWdlOiBncGlvc2V0IFstbF0gQ0hJUCBMSU5FPVZBTFVFLi4uXG5cblNldCB0aGUgbGluZXMgb24gQ0hJUCB0byB0aGUgZ2l2ZW4gdmFsdWVzLiBVc2UgZ3Bpb2ZpbmQgdG8gY29udmVydCBsaW5lXG5uYW1lcyB0byBudW1iZXJzLlxuXG4tbAlBY3RpdmUgbG93IgorCisjZGVmaW5lIEhFTFBfZ3Bpb2dldCAidXNhZ2U6IGdwaW9nZXQgWy1sXSBDSElQIExJTkUuLi5cblxuR2V0cyB0aGUgdmFsdWVzIG9mIHRoZSBnaXZlbiBsaW5lcyBvbiBDSElQLiBVc2UgZ3Bpb2ZpbmQgdG8gY29udmVydCBsaW5lXG5uYW1lcyB0byBudW1iZXJzLlxuXG4tbAlBY3RpdmUgbG93IgorCisjZGVmaW5lIEhFTFBfZ3Bpb2luZm8gInVzYWdlOiBncGlvaW5mbyBbQ0hJUC4uLl1cblxuU2hvdyBncGlvIGNoaXBzJyBsaW5lcy4iCisKKyNkZWZpbmUgSEVMUF9ncGlvZmluZCAidXNhZ2U6IGdwaW9maW5kIE5BTUVcblxuU2hvdyB0aGUgY2hpcCBhbmQgbGluZSBudW1iZXIgZm9yIHRoZSBnaXZlbiBsaW5lIG5hbWUuIgorCisjZGVmaW5lIEhFTFBfZ3Bpb2RldGVjdCAidXNhZ2U6IGdwaW9kZXRlY3RcblxuU2hvdyBhbGwgZ3BpbyBjaGlwcycgbmFtZXMsIGxhYmVscywgYW5kIG51bWJlciBvZiBsaW5lcy4iCisKKyNkZWZpbmUgSEVMUF9nZXRvcHQgInVzYWdlOiBnZXRvcHQgWy1hVHVdIFstbG8gT1BUSU9OU10gWy1uIE5BTUVdIFtPUFRJT05TXSBBUkcuLi5cblxuT3V0cHV0cyBjb21tYW5kIGxpbmUgd2l0aCByZWNvZ25pemVkIE9QVElPTlMgY2hhcmFjdGVyIGFyZ3VtZW50cyBtb3ZlZCB0b1xuZnJvbnQsIHRoZW4gXCItLVwiLCB0aGVuIG5vbi1vcHRpb24gYXJndW1lbnRzLiBSZXR1cm5zIDEgaWYgdW5rbm93biBvcHRpb25zLlxuT1BUSU9OUyBmb2xsb3dlZCBieSA6IHRha2UgYW4gYXJndW1lbnQsIG9yIDo6IGZvciBvcHRpb25hbCBhcmd1bWVudHMgKHdoaWNoXG5tdXN0IGJlIGF0dGFjaGVkLCBhbGEgLXhibGFoIG9yIC0tbG9uZz1ibGFoKS5cblxuLWEJQWxsb3cgbG9uZyBvcHRpb25zIHN0YXJ0aW5nIHdpdGggYSBzaW5nbGUgLVxuLWwJTG9uZyBPUFRJT05TIChyZXBlYXRlZCBvciBjb21tYSBzZXBhcmF0ZWQpXG4tbglDb21tYW5kIE5BTUUgZm9yIGVycm9yIG1lc3NhZ2VzXG4tbwlTaG9ydCBPUFRJT05TIChpbnN0ZWFkIG9mIHVzaW5nIGZpcnN0IGFyZ3VtZW50KVxuLVQJVGVzdCB3aGV0aGVyIHRoaXMgaXMgYSBtb2Rlcm4gZ2V0b3B0XG4tdQlVbnF1b3RlZCBvdXRwdXQgKGRlZmF1bHQgaWYgbm8gb3RoZXIgb3B0aW9ucyBzZXQpXG5cbkV4YW1wbGU6XG4gICQgZ2V0b3B0IC1sIGxvbmc6LGFyZzo6IGFiYyBjb21tYW5kIC0tbG9uZyAtYiB0aGVyZSAtLWFyZ1xuICAtLWxvbmcgJy1iJyAtLWFyZyAnJyAtLSAnY29tbWFuZCcgJ3RoZXJlJyIKKworI2RlZmluZSBIRUxQX2ZzeW5jICJ1c2FnZTogZnN5bmMgWy1kXSBbRklMRS4uLl1cblxuRmx1c2ggZGlzayBjYWNoZSBmb3IgRklMRShzKSwgd3JpdGluZyBjYWNoZWQgZGF0YSB0byBzdG9yYWdlIGRldmljZS5cblxuLWQJU2tpcCBkaXJlY3RvcnkgaW5mbyAoc3luYyBmaWxlIGNvbnRlbnRzIG9ubHkpLiIKKworI2RlZmluZSBIRUxQX2ZzZnJlZXplICJ1c2FnZTogZnNmcmVlemUgey1mIHwgLXV9IE1PVU5UUE9JTlRcblxuRnJlZXplIG9yIHVuZnJlZXplIGEgZmlsZXN5c3RlbS5cblxuLWYJRnJlZXplXG4tdQlVbmZyZWV6ZSIKKworI2RlZmluZSBIRUxQX2ZyZWVyYW1kaXNrICJ1c2FnZTogZnJlZXJhbWRpc2sgW1JBTSBkZXZpY2VdXG5cbkZyZWUgYWxsIG1lbW9yeSBhbGxvY2F0ZWQgdG8gc3BlY2lmaWVkIHJhbWRpc2siCisKKyNkZWZpbmUgSEVMUF9mcmVlICJ1c2FnZTogZnJlZSBbLWJrbWd0XVxuXG5EaXNwbGF5IHRoZSB0b3RhbCwgZnJlZSBhbmQgdXNlZCBhbW91bnQgb2YgcGh5c2ljYWwgbWVtb3J5IGFuZCBzd2FwIHNwYWNlLlxuXG4tYmttZwlPdXRwdXQgdW5pdHMgKGRlZmF1bHQgaXMgYnl0ZXMpXG4taAlIdW1hbiByZWFkYWJsZSAoSz0xMDI0KSIKKworI2RlZmluZSBIRUxQX2ZtdCAidXNhZ2U6IGZtdCBbLXcgV0lEVEhdIFtGSUxFLi4uXVxuXG5SZWZvcm1hdCBpbnB1dCB0byB3b3Jkd3JhcCBhdCBhIGdpdmVuIGxpbmUgbGVuZ3RoLCBwcmVzZXJ2aW5nIGV4aXN0aW5nXG5pbmRlbnRhdGlvbiBsZXZlbCwgd3JpdGluZyB0byBzdGRvdXQuXG5cbi13IFdJRFRICU1heGltdW0gY2hhcmFjdGVycyBwZXIgbGluZSAoZGVmYXVsdCA3NSkiCisKKyNkZWZpbmUgSEVMUF9mbG9jayAidXNhZ2U6IGZsb2NrIFstc3h1bl0gZmRcblxuTWFuYWdlIGFkdmlzb3J5IGZpbGUgbG9ja3MuXG5cbi1zCVNoYXJlZCBsb2NrXG4teAlFeGNsdXNpdmUgbG9jayAoZGVmYXVsdClcbi11CVVubG9ja1xuLW4JTm9uLWJsb2NraW5nOiBmYWlsIHJhdGhlciB0aGFuIHdhaXQgZm9yIHRoZSBsb2NrIgorCisjZGVmaW5lIEhFTFBfZmFsbG9jYXRlICJ1c2FnZTogZmFsbG9jYXRlIFstbyBPRkZTRVRdIC1sIFNJWkUgRklMRVxuXG5UZWxsIHRoZSBmaWxlc3lzdGVtIHRvIGFsbG9jYXRlIHNwYWNlIGZvciBhIHJhbmdlIGluIGEgZmlsZS5cblxuLWwJTnVtYmVyIG9mIGJ5dGVzIGluIHJhbmdlXG4tbwlTdGFydCBvZmZzZXQgb2YgcmFuZ2UgKGRlZmF1bHQgMCkiCisKKyNkZWZpbmUgSEVMUF9mYWN0b3IgInVzYWdlOiBmYWN0b3IgWy1oeF0gTlVNQkVSLi4uXG5cbkZhY3RvciBpbnRlZ2Vycy5cblxuLWgJSHVtYW4gcmVhZGFibGU6IHNob3cgcmVwZWF0ZWQgZmFjdG9ycyBhcyB4Xm5cbi14CUhleGFkZWNpbWFsIG91dHB1dCIKKworI2RlZmluZSBIRUxQX2VqZWN0ICJ1c2FnZTogZWplY3QgWy1zdFRdIFtERVZJQ0VdXG5cbkVqZWN0IERFVklDRSBvciBkZWZhdWx0IC9kZXYvY2Ryb21cblxuLXMJU0NTSSBkZXZpY2Vcbi10CUNsb3NlIHRyYXlcbi1UCU9wZW4vY2xvc2UgdHJheSAodG9nZ2xlKSIKKworI2RlZmluZSBIRUxQX3VuaXgyZG9zICJ1c2FnZTogdW5peDJkb3MgW0ZJTEUuLi5dXG5cbkNvbnZlcnQgbmV3bGluZSBmb3JtYXQgZnJvbSB1bml4IFwiXFxuXCIgdG8gZG9zIFwiXFxyXFxuXCIuXG5JZiBubyBmaWxlcyBsaXN0ZWQgY29weSBmcm9tIHN0ZGluLCBcIi1cIiBpcyBhIHN5bm9ueW0gZm9yIHN0ZGluLiIKKworI2RlZmluZSBIRUxQX2RvczJ1bml4ICJ1c2FnZTogZG9zMnVuaXggW0ZJTEUuLi5dXG5cbkNvbnZlcnQgbmV3bGluZSBmb3JtYXQgZnJvbSBkb3MgXCJcXHJcXG5cIiB0byB1bml4IFwiXFxuXCIuXG5JZiBubyBmaWxlcyBsaXN0ZWQgY29weSBmcm9tIHN0ZGluLCBcIi1cIiBpcyBhIHN5bm9ueW0gZm9yIHN0ZGluLiIKKworI2RlZmluZSBIRUxQX2Rldm1lbSAidXNhZ2U6IGRldm1lbSBBRERSIFtXSURUSCBbREFUQV1dXG5cblJlYWQvd3JpdGUgcGh5c2ljYWwgYWRkcmVzcy4gV0lEVEggaXMgMSwgMiwgNCwgb3IgOCBieXRlcyAoZGVmYXVsdCA0KS5cblByZWZpeCBBRERSIHdpdGggMHggZm9yIGhleGFkZWNpbWFsLCBvdXRwdXQgaXMgaW4gc2FtZSBiYXNlIGFzIGFkZHJlc3MuIgorCisjZGVmaW5lIEhFTFBfY291bnQgInVzYWdlOiBjb3VudCBbLWxdXG5cbi1sCUxvbmcgb3V0cHV0ICh0b3RhbCBieXRlcywgaHVtYW4gcmVhZGFibGUsIHRyYW5zZmVyIHJhdGUsIGVsYXBzZWQgdGltZSlcblxuQ29weSBzdGRpbiB0byBzdGRvdXQsIGRpc3BsYXlpbmcgc2ltcGxlIHByb2dyZXNzIGluZGljYXRvciB0byBzdGRlcnIuIgorCisjZGVmaW5lIEhFTFBfY2xlYXIgIkNsZWFyIHRoZSBzY3JlZW4uIgorCisjZGVmaW5lIEhFTFBfY2hydCAidXNhZ2U6IGNocnQgWy1SbW9mcmJpXSB7LXAgUElEIFtQUklPUklUWV0gfCBbUFJJT1JJVFkgQ09NTUFORC4uLl19XG5cbkdldC9zZXQgYSBwcm9jZXNzJyByZWFsLXRpbWUgc2NoZWR1bGluZyBwb2xpY3kgYW5kIHByaW9yaXR5LlxuXG4tcAlTZXQvcXVlcnkgZ2l2ZW4gcGlkIChpbnN0ZWFkIG9mIHJ1bm5pbmcgQ09NTUFORClcbi1SCVNldCBTQ0hFRF9SRVNFVF9PTl9GT1JLXG4tbQlTaG93IG1pbi9tYXggcHJpb3JpdGllcyBhdmFpbGFibGVcblxuU2V0IHBvbGljeSAoZGVmYXVsdCAtcik6XG5cbiAgLW8gIFNDSEVEX09USEVSICAgIC1mICBTQ0hFRF9GSUZPICAgIC1yICBTQ0hFRF9SUlxuICAtYiAgU0NIRURfQkFUQ0ggICAgLWkgIFNDSEVEX0lETEUiCisKKyNkZWZpbmUgSEVMUF9jaHJvb3QgInVzYWdlOiBjaHJvb3QgTkVXUk9PVCBbQ09NTUFORCBbQVJHLi4uXV1cblxuUnVuIGNvbW1hbmQgd2l0aGluIGEgbmV3IHJvb3QgZGlyZWN0b3J5LiBJZiBubyBjb21tYW5kLCBydW4gL2Jpbi9zaC4iCisKKyNkZWZpbmUgSEVMUF9jaGNvbiAidXNhZ2U6IGNoY29uIFstaFJ2XSBDT05URVhUIEZJTEUuLi5cblxuQ2hhbmdlIHRoZSBTRUxpbnV4IHNlY3VyaXR5IGNvbnRleHQgb2YgbGlzdGVkIGZpbGVbc10uXG5cbi1oCUNoYW5nZSBzeW1saW5rcyBpbnN0ZWFkIG9mIHdoYXQgdGhleSBwb2ludCB0b1xuLVIJUmVjdXJzZSBpbnRvIHN1YmRpcmVjdG9yaWVzXG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfYnpjYXQgInVzYWdlOiBiemNhdCBbRklMRS4uLl1cblxuRGVjb21wcmVzcyBsaXN0ZWQgZmlsZXMgdG8gc3Rkb3V0LiBVc2Ugc3RkaW4gaWYgbm8gZmlsZXMgbGlzdGVkLiIKKworI2RlZmluZSBIRUxQX2J1bnppcDIgInVzYWdlOiBidW56aXAyIFstY2Z0a3ZdIFtGSUxFLi4uXVxuXG5EZWNvbXByZXNzIGxpc3RlZCBmaWxlcyAoZmlsZS5ieiBiZWNvbWVzIGZpbGUpIGRlbGV0aW5nIGFyY2hpdmUgZmlsZShzKS5cblJlYWQgZnJvbSBzdGRpbiBpZiBubyBmaWxlcyBsaXN0ZWQuXG5cbi1jCUZvcmNlIG91dHB1dCB0byBzdGRvdXRcbi1mCUZvcmNlIGRlY29tcHJlc3Npb24gKGlmIEZJTEUgZG9lc24ndCBlbmQgaW4gLmJ6LCByZXBsYWNlIG9yaWdpbmFsKVxuLWsJS2VlcCBpbnB1dCBmaWxlcyAoLWMgYW5kIC10IGltcGx5IHRoaXMpXG4tdAlUZXN0IGludGVncml0eVxuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX2Jsb2NrZGV2ICJ1c2FnZTogYmxvY2tkZXYgLS1PUFRJT04uLi4gQkxPQ0tERVYuLi5cblxuQ2FsbCBpb2N0bChzKSBvbiBlYWNoIGxpc3RlZCBibG9jayBkZXZpY2VcblxuLS1zZXRybwkJU2V0IHJlYWQgb25seVxuLS1zZXRydwkJU2V0IHJlYWQgd3JpdGVcbi0tZ2V0cm8JCUdldCByZWFkIG9ubHlcbi0tZ2V0c3MJCUdldCBzZWN0b3Igc2l6ZVxuLS1nZXRic3oJR2V0IGJsb2NrIHNpemVcbi0tc2V0YnN6IEJZVEVTCVNldCBibG9jayBzaXplXG4tLWdldHN6CQlHZXQgZGV2aWNlIHNpemUgaW4gNTEyLWJ5dGUgc2VjdG9yc1xuLS1nZXRzaXplCUdldCBkZXZpY2Ugc2l6ZSBpbiBzZWN0b3JzIChkZXByZWNhdGVkKVxuLS1nZXRzaXplNjQJR2V0IGRldmljZSBzaXplIGluIGJ5dGVzXG4tLWdldHJhCQlHZXQgcmVhZGFoZWFkIGluIDUxMi1ieXRlIHNlY3RvcnNcbi0tc2V0cmEgU0VDVE9SUwlTZXQgcmVhZGFoZWFkXG4tLWZsdXNoYnVmcwlGbHVzaCBidWZmZXJzXG4tLXJlcmVhZHB0CVJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCisKKyNkZWZpbmUgSEVMUF9mc3R5cGUgInVzYWdlOiBmc3R5cGUgREVWLi4uXG5cblByaW50IHR5cGUgb2YgZmlsZXN5c3RlbSBvbiBhIGJsb2NrIGRldmljZSBvciBpbWFnZS4iCisKKyNkZWZpbmUgSEVMUF9ibGtpZCAidXNhZ2U6IGJsa2lkIFstbyBUWVBFXSBbLXMgVEFHXSBbLVVMXSBERVYuLi5cblxuUHJpbnQgdHlwZSwgbGFiZWwgYW5kIFVVSUQgb2YgZmlsZXN5c3RlbSBvbiBhIGJsb2NrIGRldmljZSBvciBpbWFnZS5cblxuLVUJU2hvdyBVVUlEIG9ubHkgKG9yIGRldmljZSB3aXRoIHRoYXQgVVVJRClcbi1MCVNob3cgTEFCRUwgb25seSAob3IgZGV2aWNlIHdpdGggdGhhdCBMQUJFTClcbi1vIFRZUEUJT3V0cHV0IGZvcm1hdCAoZnVsbCwgdmFsdWUsIGV4cG9ydClcbi1zIFRBRwlPbmx5IHNob3cgbWF0Y2hpbmcgdGFncyAoZGVmYXVsdCBhbGwpIgorCisjZGVmaW5lIEhFTFBfYmxrZGlzY2FyZCAidXNhZ2U6IGJsa2Rpc2NhcmQgWy1zemZdIFstbyBPRkZTRVRdIFstbCBMRU5HVEhdIERFVklDRVxuXG5EaXNjYXJkIGRldmljZSBzZWN0b3JzIChwZXJtYW5ldGx5IGRlbGV0aW5nIGRhdGEpLiBGcmVlIHNwYWNlIGNhbiBpbXByb3ZlXG5mbGFzaCBwZXJmb3JtYW5jZSBhbmQgbGlmZXRpbWUgYnkgd2VhciBsZXZlbGluZyBhbmQgY29sbGF0aW5nIGRhdGEuXG4oU29tZSBmaWxlc3lzdGVtL2RyaXZlciBjb21iaW5hdGlvbnMgY2FuIGRvIHRoaXMgYXV0b21hdGljYWxseS4pXG5cbi1vCVN0YXJ0IGF0IE9GRlNFVCAoLS1vZmZzZXQsIGRlZmF1bHQgMClcbi1sCUxFTkdUSCB0byBkaXNjYXJkICgtLWxlbmd0aCwgZGVmYXVsdCBhbGwpXG4tcwlPdmVyd3JpdGUgZGlzY2FyZGVkIGRhdGEgKC0tc2VjdXJlKVxuLXoJWmVyby1maWxsIHJhdGhlciB0aGFuIGRpc2NhcmQgKC0temVyb291dClcbi1mCURpc2FibGUgY2hlY2sgZm9yIG1vdW50ZWQgZmlsZXN5c3RlbSAoLS1mb3JjZSlcblxuT0ZGU0VUIGFuZCBMRU5HVEggbXVzdCBiZSBhbGlnbmVkIHRvIHRoZSBkZXZpY2Ugc2VjdG9yIHNpemUuIERlZmF1bHRcbndpdGhvdXQgLW8vLWwgZGlzY2FyZHMgdGhlIGVudGlyZSBkZXZpY2UuIChZb3UgaGF2ZSBiZWVuIHdhcm5lZC4pIgorCisjZGVmaW5lIEhFTFBfYmFzZTMyICJ1c2FnZTogYmFzZTMyIFstZGldIFstdyBDT0xVTU5TXSBbRklMRS4uLl1cblxuRW5jb2RlIG9yIGRlY29kZSBpbiBiYXNlMzIuXG5cbi1kCURlY29kZVxuLWkJSWdub3JlIG5vbi1hbHBoYWJldGljIGNoYXJhY3RlcnNcbi13CVdyYXAgb3V0cHV0IGF0IENPTFVNTlMgKGRlZmF1bHQgNzYgb3IgMCBmb3Igbm8gd3JhcCkiCisKKyNkZWZpbmUgSEVMUF9iYXNlNjQgInVzYWdlOiBiYXNlNjQgWy1kaV0gWy13IENPTFVNTlNdIFtGSUxFLi4uXVxuXG5FbmNvZGUgb3IgZGVjb2RlIGluIGJhc2U2NC5cblxuLWQJRGVjb2RlXG4taQlJZ25vcmUgbm9uLWFscGhhYmV0aWMgY2hhcmFjdGVyc1xuLXcJV3JhcCBvdXRwdXQgYXQgQ09MVU1OUyAoZGVmYXVsdCA3NiBvciAwIGZvciBubyB3cmFwKSIKKworI2RlZmluZSBIRUxQX3VuaWNvZGUgInVzYWdlOiB1bmljb2RlIENPREVbLUVORF0uLi5cblxuQ29udmVydCBiZXR3ZWVuIFVuaWNvZGUgY29kZSBwb2ludHMgYW5kIFVURi04LCBpbiBib3RoIGRpcmVjdGlvbnMuXG5DT0RFIGNhbiBiZSBvbmUgb3IgbW9yZSBjaGFyYWN0ZXJzIChzaG93IFUrWFhYWCksIGhleCBudW1iZXJzXG4oc2hvdyBjaGFyYWN0ZXIpLCBvciBkYXNoIHNlcGFyYXRlZCByYW5nZS4iCisKKyNkZWZpbmUgSEVMUF9hc2NpaSAidXNhZ2U6IGFzY2lpXG5cbkRpc3BsYXkgYXNjaWkgY2hhcmFjdGVyIHNldC4iCisKKyNkZWZpbmUgSEVMUF9hY3BpICJ1c2FnZTogYWNwaSBbLWFiY3RWXVxuXG5TaG93IHN0YXR1cyBvZiBwb3dlciBzb3VyY2VzIGFuZCB0aGVybWFsIGRldmljZXMuXG5cbi1hCVNob3cgcG93ZXIgYWRhcHRlcnNcbi1iCVNob3cgYmF0dGVyaWVzXG4tYwlTaG93IGNvb2xpbmcgZGV2aWNlIHN0YXRlXG4tdAlTaG93IHRlbXBlcmF0dXJlc1xuLVYJU2hvdyBldmVyeXRoaW5nIgorCisjZGVmaW5lIEhFTFBfeHpjYXQgInVzYWdlOiB4emNhdCBbRklMRS4uLl1cblxuRGVjb21wcmVzcyBsaXN0ZWQgZmlsZXMgdG8gc3Rkb3V0LiBVc2Ugc3RkaW4gaWYgbm8gZmlsZXMgbGlzdGVkLiIKKworI2RlZmluZSBIRUxQX3ZpICJ1c2FnZTogdmkgWy1zIFNDUklQVF0gRklMRVxuXG5WaXN1YWwgdGV4dCBlZGl0b3IuIFByZWRhdGVzIGtleWJvYXJkcyB3aXRoIHN0YW5kYXJkaXplZCBjdXJzb3Iga2V5cy5cbklmIHlvdSBkb24ndCBrbm93IGhvdyB0byB1c2UgaXQsIGhpdCB0aGUgRVNDIGtleSwgdHlwZSA6cSEgYW5kIHByZXNzIEVOVEVSLlxuXG4tcwlydW4gU0NSSVBUIG9mIGNvbW1hbmRzIG9uIEZJTEVcblxudmkgbW9kZSBjb21tYW5kczpcblxuICBbY291bnRdW2NtZF1bbW90aW9uXVxuICBjbWQ6IGMgZCB5XG4gIG1vdGlvbjogMCBiIGUgRyBIIGggaiBrIEwgbCBNIHcgJCBmIEZcblxuICBbY291bnRdW2NtZF1cbiAgY21kOiBEIEkgSiBPIG4gbyBwIHggZGQgeXlcblxuICBbY21kXVxuICBjbWQ6IC8gPyA6IEEgYSBpIENUUkxfRCBDVFJMX0IgQ1RSTF9FIENUUkxfRiBDVFJMX1kgXFxlIFxcYlxuXG5leCBtb2RlIGNvbW1hbmRzOlxuXG4gIFtjbWRdXG4gIFxcYiBcXGUgXFxuIHcgd3EgcSEgJ3NldCBsaXN0JyAnc2V0IG5vbGlzdCcgZCAkICUgZyB2IgorCisjZGVmaW5lIEhFTFBfdXNlcmRlbCAidXNhZ2U6IHVzZXJkZWwgWy1yXSBVU0VSXG51c2FnZTogZGVsdXNlciBbLXJdIFVTRVJcblxuRGVsZXRlIFVTRVIgZnJvbSB0aGUgU1lTVEVNXG5cbi1yCXJlbW92ZSBob21lIGRpcmVjdG9yeSIKKworI2RlZmluZSBIRUxQX3VzZXJhZGQgInVzYWdlOiB1c2VyYWRkIFstU0RIXSBbLWggRElSXSBbLXMgU0hFTExdIFstRyBHUlBdIFstZyBOQU1FXSBbLXUgVUlEXSBVU0VSIFtHUk9VUF1cblxuQ3JlYXRlIG5ldyB1c2VyLCBvciBhZGQgVVNFUiB0byBHUk9VUFxuXG4tRCAgICAgICBEb24ndCBhc3NpZ24gYSBwYXNzd29yZFxuLWcgTkFNRSAgUmVhbCBuYW1lXG4tRyBHUlAgICBBZGQgdXNlciB0byBleGlzdGluZyBncm91cFxuLWggRElSICAgSG9tZSBkaXJlY3Rvcnlcbi1IICAgICAgIERvbid0IGNyZWF0ZSBob21lIGRpcmVjdG9yeVxuLXMgU0hFTEwgTG9naW4gc2hlbGxcbi1TICAgICAgIENyZWF0ZSBhIHN5c3RlbSB1c2VyXG4tdSBVSUQgICBVc2VyIGlkIgorCisjZGVmaW5lIEhFTFBfdHJhY2Vyb3V0ZSAidXNhZ2U6IHRyYWNlcm91dGUgWy00NkZVSWxkbnZyXSBbLWYgMVNUX1RUTF0gWy1tIE1BWFRUTF0gWy1wIFBPUlRdIFstcSBQUk9CRVNdXG5bLXMgU1JDX0lQXSBbLXQgVE9TXSBbLXcgV0FJVF9TRUNdIFstZyBHQVRFV0FZXSBbLWkgSUZBQ0VdIFsteiBQQVVTRV9NU0VDXSBIT1NUIFtCWVRFU11cblxudHJhY2Vyb3V0ZTYgWy1kbnJ2XSBbLW0gTUFYVFRMXSBbLXAgUE9SVF0gWy1xIFBST0JFU11bLXMgU1JDX0lQXSBbLXQgVE9TXSBbLXcgV0FJVF9TRUNdXG4gIFstaSBJRkFDRV0gSE9TVCBbQllURVNdXG5cblRyYWNlIHRoZSByb3V0ZSB0byBIT1NUXG5cbi00LC02IEZvcmNlIElQIG9yIElQdjYgbmFtZSByZXNvbHV0aW9uXG4tRiAgICBTZXQgdGhlIGRvbid0IGZyYWdtZW50IGJpdCAoc3VwcG9ydHMgSVBWNCBvbmx5KVxuLVUgICAgVXNlIFVEUCBkYXRhZ3JhbXMgaW5zdGVhZCBvZiBJQ01QIEVDSE8gKHN1cHBvcnRzIElQVjQgb25seSlcbi1JICAgIFVzZSBJQ01QIEVDSE8gaW5zdGVhZCBvZiBVRFAgZGF0YWdyYW1zIChzdXBwb3J0cyBJUFY0IG9ubHkpXG4tbCAgICBEaXNwbGF5IHRoZSBUVEwgdmFsdWUgb2YgdGhlIHJldHVybmVkIHBhY2tldCAoc3VwcG9ydHMgSVBWNCBvbmx5KVxuLWQgICAgU2V0IFNPX0RFQlVHIG9wdGlvbnMgdG8gc29ja2V0XG4tbiAgICBQcmludCBudW1lcmljIGFkZHJlc3Nlc1xuLXYgICAgdmVyYm9zZVxuLXIgICAgQnlwYXNzIHJvdXRpbmcgdGFibGVzLCBzZW5kIGRpcmVjdGx5IHRvIEhPU1Rcbi1tICAgIE1heCB0aW1lLXRvLWxpdmUgKG1heCBudW1iZXIgb2YgaG9wcykoUkFOR0UgMSB0byAyNTUpXG4tcCAgICBCYXNlIFVEUCBwb3J0IG51bWJlciB1c2VkIGluIHByb2JlcyhkZWZhdWx0IDMzNDM0KShSQU5HRSAxIHRvIDY1NTM1KVxuLXEgICAgTnVtYmVyIG9mIHByb2JlcyBwZXIgVFRMIChkZWZhdWx0IDMpKFJBTkdFIDEgdG8gMjU1KVxuLXMgICAgSVAgYWRkcmVzcyB0byB1c2UgYXMgdGhlIHNvdXJjZSBhZGRyZXNzXG4tdCAgICBUeXBlLW9mLXNlcnZpY2UgaW4gcHJvYmUgcGFja2V0cyAoZGVmYXVsdCAwKShSQU5HRSAwIHRvIDI1NSlcbi13ICAgIFRpbWUgaW4gc2Vjb25kcyB0byB3YWl0IGZvciBhIHJlc3BvbnNlIChkZWZhdWx0IDMpKFJBTkdFIDAgdG8gODY0MDApXG4tZyAgICBMb29zZSBzb3VyY2Ugcm91dGUgZ2F0ZXdheSAoOCBtYXgpIChzdXBwb3J0cyBJUFY0IG9ubHkpXG4teiAgICBQYXVzZSBUaW1lIGluIG1zIChkZWZhdWx0IDApKFJBTkdFIDAgdG8gODY0MDApIChzdXBwb3J0cyBJUFY0IG9ubHkpXG4tZiAgICBTdGFydCBmcm9tIHRoZSAxU1RfVFRMIGhvcCAoaW5zdGVhZCBmcm9tIDEpKFJBTkdFIDEgdG8gMjU1KSAoc3VwcG9ydHMgSVBWNCBvbmx5KVxuLWkgICAgU3BlY2lmeSBhIG5ldHdvcmsgaW50ZXJmYWNlIHRvIG9wZXJhdGUgd2l0aCIKKworI2RlZmluZSBIRUxQX3RyICJ1c2FnZTogdHIgWy1jZHN0XSBTRVQxIFtTRVQyXVxuXG5UcmFuc2xhdGUsIHNxdWVlemUsIG9yIGRlbGV0ZSBjaGFyYWN0ZXJzIGZyb20gc3RkaW4sIHdyaXRpbmcgdG8gc3Rkb3V0XG5cbi1jLy1DICBUYWtlIGNvbXBsZW1lbnQgb2YgU0VUMVxuLWQgICAgIERlbGV0ZSBpbnB1dCBjaGFyYWN0ZXJzIGNvZGVkIFNFVDFcbi1zICAgICBTcXVlZXplIG11bHRpcGxlIG91dHB1dCBjaGFyYWN0ZXJzIG9mIFNFVDIgaW50byBvbmUgY2hhcmFjdGVyXG4tdCAgICAgVHJ1bmNhdGUgU0VUMSB0byBsZW5ndGggb2YgU0VUMiIKKworI2RlZmluZSBIRUxQX3RmdHBkICJ1c2FnZTogdGZ0cGQgWy1jcl0gWy11IFVTRVJdIFtESVJdXG5cblRyYW5zZmVyIGZpbGUgZnJvbS90byB0ZnRwIHNlcnZlci5cblxuLXIJcmVhZCBvbmx5XG4tYwlBbGxvdyBmaWxlIGNyZWF0aW9uIHZpYSB1cGxvYWRcbi11CXJ1biBhcyBVU0VSXG4tbAlMb2cgdG8gc3lzbG9nIChpbmV0ZCBtb2RlIHJlcXVpcmVzIHRoaXMpIgorCisjZGVmaW5lIEhFTFBfdGZ0cCAidXNhZ2U6IHRmdHAgW09QVElPTlNdIEhPU1QgW1BPUlRdXG5cblRyYW5zZmVyIGZpbGUgZnJvbS90byB0ZnRwIHNlcnZlci5cblxuLWwgRklMRSBMb2NhbCBGSUxFXG4tciBGSUxFIFJlbW90ZSBGSUxFXG4tZyAgICBHZXQgZmlsZVxuLXAgICAgUHV0IGZpbGVcbi1iIFNJWkUgVHJhbnNmZXIgYmxvY2tzIG9mIFNJWkUgb2N0ZXRzKDggPD0gU0laRSA8PSA2NTQ2NCkiCisKKyNkZWZpbmUgSEVMUF90ZWxuZXRkICJIYW5kbGUgaW5jb21pbmcgdGVsbmV0IGNvbm5lY3Rpb25zXG5cbi1sIExPR0lOICBFeGVjIExPR0lOIG9uIGNvbm5lY3Rcbi1mIElTU1VFX0ZJTEUgRGlzcGxheSBJU1NVRV9GSUxFIGluc3RlYWQgb2YgL2V0Yy9pc3N1ZVxuLUsgQ2xvc2UgY29ubmVjdGlvbiBhcyBzb29uIGFzIGxvZ2luIGV4aXRzXG4tcCBQT1JUICAgUG9ydCB0byBsaXN0ZW4gb25cbi1iIEFERFJbOlBPUlRdICBBZGRyZXNzIHRvIGJpbmQgdG9cbi1GIFJ1biBpbiBmb3JlZ3JvdW5kXG4taSBJbmV0ZCBtb2RlXG4tdyBTRUMgICAgSW5ldGQgJ3dhaXQnIG1vZGUsIGxpbmdlciB0aW1lIFNFQ1xuLVMgTG9nIHRvIHN5c2xvZyAoaW1wbGllZCBieSAtaSBvciB3aXRob3V0IC1GIGFuZCAtdykiCisKKyNkZWZpbmUgSEVMUF90ZWxuZXQgInVzYWdlOiB0ZWxuZXQgSE9TVCBbUE9SVF1cblxuQ29ubmVjdCB0byB0ZWxuZXQgc2VydmVyLiIKKworI2RlZmluZSBIRUxQX3RjcHN2ZCAidXNhZ2U6IHRjcHN2ZCBbLWhFdl0gWy1jIE5dIFstQyBOWzpNU0ddXSBbLWIgTl0gWy11IFVzZXJdIFstbCBOYW1lXSBJUCBQb3J0IFByb2dcbnVzYWdlOiB1ZHBzdmQgWy1oRXZdIFstYyBOXSBbLXUgVXNlcl0gWy1sIE5hbWVdIElQIFBvcnQgUHJvZ1xuXG5DcmVhdGUgVENQL1VEUCBzb2NrZXQsIGJpbmQgdG8gSVA6UE9SVCBhbmQgbGlzdGVuIGZvciBpbmNvbWluZyBjb25uZWN0aW9uLlxuUnVuIFBST0cgZm9yIGVhY2ggY29ubmVjdGlvbi5cblxuSVAgICAgICAgICAgICBJUCB0byBsaXN0ZW4gb24sIDAgPSBhbGxcblBPUlQgICAgICAgICAgUG9ydCB0byBsaXN0ZW4gb25cblBST0cgQVJHUyAgICAgUHJvZ3JhbSB0byBydW5cbi1sIE5BTUUgICAgICAgTG9jYWwgaG9zdG5hbWUgKGVsc2UgbG9va3MgdXAgbG9jYWwgaG9zdG5hbWUgaW4gRE5TKVxuLXUgVVNFUls6R1JQXSBDaGFuZ2UgdG8gdXNlci9ncm91cCBhZnRlciBiaW5kXG4tYyBOICAgICAgICAgIEhhbmRsZSB1cCB0byBOICg+IDApIGNvbm5lY3Rpb25zIHNpbXVsdGFuZW91c2x5XG4tYiBOICAgICAgICAgIChUQ1AgT25seSkgQWxsb3cgYSBiYWNrbG9nIG9mIGFwcHJveGltYXRlbHkgTiBUQ1AgU1lOc1xuLUMgTls6TVNHXSAgICAoVENQIE9ubHkpIEFsbG93IG9ubHkgdXAgdG8gTiAoPiAwKSBjb25uZWN0aW9ucyBmcm9tIHRoZSBzYW1lIElQXG4gICAgICAgICAgICAgIE5ldyBjb25uZWN0aW9ucyBmcm9tIHRoaXMgSVAgYWRkcmVzcyBhcmUgY2xvc2VkXG4gICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBNU0cgaXMgd3JpdHRlbiB0byB0aGUgcGVlciBiZWZvcmUgY2xvc2Vcbi1oICAgICAgICAgICAgTG9vayB1cCBwZWVyJ3MgaG9zdG5hbWVcbi1FICAgICAgICAgICAgRG9uJ3Qgc2V0IHVwIGVudmlyb25tZW50IHZhcmlhYmxlc1xuLXYgICAgICAgICAgICBWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfc3lzbG9nZCAidXNhZ2U6IHN5c2xvZ2QgIFstYSBzb2NrZXRdIFstTyBsb2dmaWxlXSBbLWYgY29uZmlnIGZpbGVdIFstbSBpbnRlcnZhbF1cbiAgICAgICAgICAgICAgICBbLXAgc29ja2V0XSBbLXMgU0laRV0gWy1iIE5dIFstUiBIT1NUXSBbLWwgTl0gWy1uU0xLRF1cblxuU3lzdGVtIGxvZ2dpbmcgdXRpbGl0eVxuXG4tYSAgICAgIEV4dHJhIHVuaXggc29ja2V0IGZvciBsaXN0ZW5cbi1PIEZJTEUgRGVmYXVsdCBsb2cgZmlsZSA8REVGQVVMVDogL3Zhci9sb2cvbWVzc2FnZXM+XG4tZiBGSUxFIENvbmZpZyBmaWxlIDxERUZBVUxUOiAvZXRjL3N5c2xvZy5jb25mPlxuLXAgICAgICBBbHRlcm5hdGl2ZSB1bml4IGRvbWFpbiBzb2NrZXQgPERFRkFVTFQgOiAvZGV2L2xvZz5cbi1uICAgICAgQXZvaWQgYXV0by1iYWNrZ3JvdW5kaW5nXG4tUyAgICAgIFNtYWxsZXIgb3V0cHV0XG4tbSBNQVJLIGludGVydmFsIDxERUZBVUxUOiAyMCBtaW51dGVzPiAoUkFOR0U6IDAgdG8gNzE1ODI3ODcpXG4tUiBIT1NUIExvZyB0byBJUCBvciBob3N0bmFtZSBvbiBQT1JUIChkZWZhdWx0IFBPUlQ9NTE0L1VEUClcIlxuLUwgICAgICBMb2cgbG9jYWxseSBhbmQgdmlhIG5ldHdvcmsgKGRlZmF1bHQgaXMgbmV0d29yayBvbmx5IGlmIC1SKVwiXG4tcyBTSVpFIE1heCBzaXplIChLQikgYmVmb3JlIHJvdGF0aW9uIChkZWZhdWx0OjIwMEtCLCAwPW9mZilcbi1iIE4gICAgcm90YXRlZCBsb2dzIHRvIGtlZXAgKGRlZmF1bHQ6MSwgbWF4PTk5LCAwPXB1cmdlKVxuLUsgICAgICBMb2cgdG8ga2VybmVsIHByaW50ayBidWZmZXIgKHVzZSBkbWVzZyB0byByZWFkIGl0KVxuLWwgTiAgICBMb2cgb25seSBtZXNzYWdlcyBtb3JlIHVyZ2VudCB0aGFuIHByaW8oZGVmYXVsdDo4IG1heDo4IG1pbjoxKVxuLUQgICAgICBEcm9wIGR1cGxpY2F0ZXMiCisKKyNkZWZpbmUgSEVMUF9zdWxvZ2luICJ1c2FnZTogc3Vsb2dpbiBbLXQgdGltZV0gW3R0eV1cblxuU2luZ2xlIFVzZXIgTG9naW4uXG4tdAlEZWZhdWx0IFRpbWUgZm9yIFNpbmdsZSBVc2VyIExvZ2luIgorCisjZGVmaW5lIEhFTFBfc3R0eSAidXNhZ2U6IHN0dHkgWy1hZ10gWy1GIGRldmljZV0gU0VUVElORy4uLlxuXG5HZXQvc2V0IHRlcm1pbmFsIGNvbmZpZ3VyYXRpb24uXG5cbi1GCU9wZW4gZGV2aWNlIGluc3RlYWQgb2Ygc3RkaW5cbi1hCVNob3cgYWxsIGN1cnJlbnQgc2V0dGluZ3MgKGRlZmF1bHQgZGlmZmVyZW5jZXMgZnJvbSBcInNhbmVcIilcbi1nCVNob3cgYWxsIGN1cnJlbnQgc2V0dGluZ3MgdXNhYmxlIGFzIGlucHV0IHRvIHN0dHlcblxuU3BlY2lhbCBjaGFyYWN0ZXJzIChzeW50YXggXmMgb3IgdW5kZWYpOiBpbnRyIHF1aXQgZXJhc2Uga2lsbCBlb2YgZW9sIGVvbDJcbnN3dGNoIHN0YXJ0IHN0b3Agc3VzcCBycHJudCB3ZXJhc2UgbG5leHQgZGlzY2FyZFxuXG5Db250cm9sL2lucHV0L291dHB1dC9sb2NhbCBzZXR0aW5ncyBhcyBzaG93biBieSAtYSwgJy0nIHByZWZpeCB0byBkaXNhYmxlXG5cbkNvbWJvIHNldHRpbmdzOiBjb29rZWQvcmF3LCBldmVucC9vZGRwL3Bhcml0eSwgbmwsIGVrLCBzYW5lXG5cbk4Jc2V0IGlucHV0IGFuZCBvdXRwdXQgc3BlZWQgKGlzcGVlZCBOIG9yIG9zcGVlZCBOIGZvciBqdXN0IG9uZSlcbmNvbHMgTglzZXQgbnVtYmVyIG9mIGNvbHVtbnNcbnJvd3MgTglzZXQgbnVtYmVyIG9mIHJvd3NcbmxpbmUgTglzZXQgbGluZSBkaXNjaXBsaW5lXG5taW4gTglzZXQgbWluaW11bSBjaGFycyBwZXIgcmVhZFxudGltZSBOCXNldCByZWFkIHRpbWVvdXRcbnNwZWVkCXNob3cgc3BlZWQgb25seVxuc2l6ZQlzaG93IHNpemUgb25seSIKKworI2RlZmluZSBIRUxQX3N0cmFjZSAidXNhZ2U6IHN0cmFjZSBbLWZ2XSBbLXAgUElEXSBbLXMgTlVNXSBDT01NQU5EIFtBUkdTLi4uXVxuXG5UcmFjZSBzeXN0ZW1zIGNhbGxzIG1hZGUgYnkgYSBwcm9jZXNzLlxuXG4tcwlTdHJpbmcgbGVuZ3RoIGxpbWl0LlxuLXYJRHVtcCBhbGwgb2YgbGFyZ2Ugc3RydWN0cy9hcnJheXMuIgorCisjZGVmaW5lIEhFTFBfd2FpdCAidXNhZ2U6IHdhaXQgWy1uXSBbSUQuLi5dXG5cbldhaXQgZm9yIGJhY2tncm91bmQgcHJvY2Vzc2VzIHRvIGV4aXQsIHJldHVybmluZyBpdHMgZXhpdCBjb2RlLlxuSUQgY2FuIGJlIFBJRCBvciBqb2IsIHdpdGggbm8gSURzIHdhaXRzIGZvciBhbGwgYmFja2dyb3VuZGVkIHByb2Nlc3Nlcy5cblxuLW4JV2FpdCBmb3IgbmV4dCBwcm9jZXNzIHRvIGV4aXQiCisKKyNkZWZpbmUgSEVMUF9zb3VyY2UgInVzYWdlOiBzb3VyY2UgRklMRSBbQVJHUy4uLl1cblxuUmVhZCBGSUxFIGFuZCBleGVjdXRlIGNvbW1hbmRzLiBBbnkgQVJHUyBiZWNvbWUgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLiIKKworI2RlZmluZSBIRUxQX3NoaWZ0ICJ1c2FnZTogc2hpZnQgW05dXG5cblNraXAgTiAoZGVmYXVsdCAxKSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIG1vdmluZyAkMSBhbmQgZnJpZW5kcyBhbG9uZyB0aGUgbGlzdC5cbkRvZXMgbm90IGFmZmVjdCAkMC4iCisKKyNkZWZpbmUgSEVMUF9sb2NhbCAidXNhZ2U6IGxvY2FsIFtOQU1FWz1WQUxVRV0uLi5dXG5cbkNyZWF0ZSBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgbGFzdHMgdW50aWwgcmV0dXJuIGZyb20gdGhpcyBmdW5jdGlvbi5cbldpdGggbm8gYXJndW1lbnRzIGxpc3RzIGxvY2FsIHZhcmlhYmxlcyBpbiBjdXJyZW50IGZ1bmN0aW9uIGNvbnRleHQuXG5UT0RPOiBpbXBsZW1lbnQgXCJkZWNsYXJlXCIgb3B0aW9ucy4iCisKKyNkZWZpbmUgSEVMUF9qb2JzICJ1c2FnZTogam9icyBbLWxucHJzXSBbJUpPQiB8IC14IENPTU1BTkQuLi5dXG5cbkxpc3QgcnVubmluZy9zdG9wcGVkIGJhY2tncm91bmQgam9icy5cblxuLWwgSW5jbHVkZSBwcm9jZXNzIElEIGluIGxpc3Rcbi1uIFNob3cgb25seSBuZXcvY2hhbmdlZCBwcm9jZXNzZXNcbi1wIFNob3cgcHJvY2VzcyBJRHMgb25seVxuLXIgU2hvdyBydW5uaW5nIHByb2Nlc3Nlc1xuLXMgU2hvdyBzdG9wcGVkIHByb2Nlc3NlcyIKKworI2RlZmluZSBIRUxQX2V4cG9ydCAidXNhZ2U6IGV4cG9ydCBbLW5dIFtOQU1FWz1WQUxVRV0uLi5dXG5cbk1ha2UgdmFyaWFibGVzIGF2YWlsYWJsZSB0byBjaGlsZCBwcm9jZXNzZXMuIE5BTUUgZXhwb3J0cyBleGlzdGluZyBsb2NhbFxudmFyaWFibGUocyksIE5BTUU9VkFMVUUgc2V0cyBhbmQgZXhwb3J0cy5cblxuLW4JVW5leHBvcnQuIFR1cm4gbGlzdGVkIHZhcmlhYmxlKHMpIGludG8gbG9jYWwgdmFyaWFibGVzLlxuXG5XaXRoIG5vIGFyZ3VtZW50cyBsaXN0IGV4cG9ydGVkIHZhcmlhYmxlcy9hdHRyaWJ1dGVzIGFzIFwiZGVjbGFyZVwiIHN0YXRlbWVudHMuIgorCisjZGVmaW5lIEhFTFBfZXhlYyAidXNhZ2U6IGV4ZWMgWy1jbF0gWy1hIE5BTUVdIENPTU1BTkQuLi5cblxuLWEJc2V0IGFyZ3ZbMF0gdG8gTkFNRVxuLWMJY2xlYXIgZW52aXJvbm1lbnRcbi1sCXByZXBlbmQgLSB0byBhcmd2WzBdIgorCisjZGVmaW5lIEhFTFBfZXZhbCAidXNhZ2U6IGV2YWwgQ09NTUFORC4uLlxuXG5FeGVjdXRlIChjb21iaW5lZCkgYXJndW1lbnRzIGFzIGEgc2hlbGwgY29tbWFuZC4iCisKKyNkZWZpbmUgSEVMUF91bnNldCAidXNhZ2U6IHVuc2V0IFstZnZuXSBOQU1FLi4uXG5cbi1mCU5BTUUgaXMgYSBmdW5jdGlvblxuLXYJTkFNRSBpcyBhIHZhcmlhYmxlXG4tbglkZXJlZmVyZW5jZSBOQU1FIGFuZCB1bnNldCB0aGF0IgorCisjZGVmaW5lIEhFTFBfc2V0ICJ1c2FnZTogc2V0IFsrYV0gWytvIE9QVElPTl0gW1ZBUi4uLl1cblxuU2V0IHZhcmlhYmxlcyBhbmQgc2hlbGwgYXR0cmlidXRlcy4gVXNlICsgdG8gZGlzYWJsZSBhbmQgLSB0byBlbmFibGUuXG5OQU1FPVZBTFVFIGFyZ3VtZW50cyBhc3NpZ24gdG8gdGhlIHZhcmlhYmxlLCBhbnkgbGVmdG92ZXJzIHNldCAkMSwgJDIuLi5cbldpdGggbm8gYXJndW1lbnRzLCBwcmludHMgY3VycmVudCB2YXJpYWJsZXMuXG5cbi1mCU5BTUUgaXMgYSBmdW5jdGlvblxuLXYJTkFNRSBpcyBhIHZhcmlhYmxlXG4tbglkb24ndCBmb2xsb3cgbmFtZSByZWZlcmVuY2VcblxuT1BUSU9OczpcbiAgaGlzdG9yeSAtIGVuYWJsZSBjb21tYW5kIGhpc3RvcnkiCisKKyNkZWZpbmUgSEVMUF9leGl0ICJ1c2FnZTogZXhpdCBbc3RhdHVzXVxuXG5FeGl0IHNoZWxsLiAgSWYgbm8gcmV0dXJuIHZhbHVlIHN1cHBsaWVkIG9uIGNvbW1hbmQgbGluZSwgdXNlIHZhbHVlXG5vZiBtb3N0IHJlY2VudCBjb21tYW5kLCBvciAwIGlmIG5vbmUuIgorCisjZGVmaW5lIEhFTFBfZGVjbGFyZSAidXNhZ2U6IGRlY2xhcmUgWy1wQWFpbHVueHJdIFtOQU1FLi4uXVxuXG5TZXQgb3IgcHJpbnQgdmFyaWFibGUgYXR0cmlidXRlcyBhbmQgdmFsdWVzLlxuXG4tcAlQcmludCB2YXJpYWJsZXMgaW5zdGVhZCBvZiBzZXR0aW5nXG4tQQlBc3NvY2lhdGl2ZSBhcnJheVxuLWEJSW5kZXhlZCBhcnJheVxuLWkJSW50ZWdlclxuLWwJTG93ZXIgY2FzZVxuLW4JTmFtZSByZWZlcmVuY2UgKHN5bWxpbmspXG4tcglSZWFkb25seVxuLXUJVXBwZXJjYXNlXG4teAlFeHBvcnQiCisKKyNkZWZpbmUgSEVMUF9jZCAidXNhZ2U6IGNkIFstUExdIFstXSBbcGF0aF1cblxuQ2hhbmdlIGN1cnJlbnQgZGlyZWN0b3J5LiBXaXRoIG5vIGFyZ3VtZW50cywgZ28gJEhPTUUuIFNldHMgJE9MRFBXRCB0b1xucHJldmlvdXMgZGlyZWN0b3J5OiBjZCAtIHRvIHJldHVybiB0byAkT0xEUFdELlxuXG4tUAlQaHlzaWNhbCBwYXRoOiByZXNvbHZlIHN5bWxpbmtzIGluIHBhdGhcbi1MCUxvY2FsIHBhdGg6IC4uIHRyaW1zIGRpcmVjdG9yaWVzIG9mZiAkUFdEIChkZWZhdWx0KSIKKworI2RlZmluZSBIRUxQX3NoICJ1c2FnZTogc2ggWy1jIGNvbW1hbmRdIFtzY3JpcHRdXG5cbkNvbW1hbmQgc2hlbGwuICBSdW5zIGEgc2hlbGwgc2NyaXB0LCBvciByZWFkcyBpbnB1dCBpbnRlcmFjdGl2ZWx5XG5hbmQgcmVzcG9uZHMgdG8gaXQuIFJvdWdobHkgY29tcGF0aWJsZSB3aXRoIFwiYmFzaFwiLiBSdW4gXCJoZWxwXCIgZm9yXG5saXN0IG9mIGJ1aWx0LWluIGNvbW1hbmRzLlxuXG4tYwljb21tYW5kIGxpbmUgdG8gZXhlY3V0ZVxuLWkJaW50ZXJhY3RpdmUgbW9kZSAoZGVmYXVsdCB3aGVuIFNURElOIGlzIGEgdHR5KVxuLXMJZG9uJ3QgcnVuIHNjcmlwdCAoYXJncyBzZXQgJCogcGFyYW1ldGVycyBidXQgcmVhZCBjb21tYW5kcyBmcm9tIHN0ZGluKVxuXG5Db21tYW5kIHNoZWxscyBwYXJzZSBlYWNoIGxpbmUgb2YgaW5wdXQgKHByb21wdGluZyB3aGVuIGludGVyYWN0aXZlKSwgcGVyZm9ybVxudmFyaWFibGUgZXhwYW5zaW9uIGFuZCByZWRpcmVjdGlvbiwgZXhlY3V0ZSBjb21tYW5kcyAoc3Bhd25pbmcgY2hpbGQgcHJvY2Vzc2VzXG5hbmQgYmFja2dyb3VuZCBqb2JzKSwgYW5kIHBlcmZvcm0gZmxvdyBjb250cm9sIGJhc2VkIG9uIHRoZSByZXR1cm4gY29kZS5cblxuUGFyc2luZzpcbiAgc3ludGF4IGVycm9yc1xuXG5JbnRlcmFjdGl2ZSBwcm9tcHRzOlxuICBsaW5lIGNvbnRpbnVhdGlvblxuXG5WYXJpYWJsZSBleHBhbnNpb246XG4gIE5vdGU6IGNhbiBjYXVzZSBzeW50YXggZXJyb3JzIGF0IHJ1bnRpbWVcblxuUmVkaXJlY3Rpb246XG4gIEhFUkUgZG9jdW1lbnRzIChwYXJzaW5nKVxuICBQaXBlbGluZXMgKGZsb3cgY29udHJvbCBhbmQgam9iIGNvbnRyb2wpXG5cblJ1bm5pbmcgY29tbWFuZHM6XG4gIHByb2Nlc3Mgc3RhdGVcbiAgYnVpbHRpbnNcbiAgICBjZCBbWyBdXSAoKCApKVxuICAgICEgOiBbICMgVE9ETzogaGVscCBmb3IgdGhlc2U/XG4gICAgdHJ1ZSBmYWxzZSBoZWxwIGVjaG8ga2lsbCBwcmludGYgcHdkIHRlc3RcbiAgY2hpbGQgcHJvY2Vzc2VzXG5cbkpvYiBjb250cm9sOlxuICAmICAgIEJhY2tncm91bmQgcHJvY2Vzc1xuICBDdHJsLUMga2lsbCBwcm9jZXNzXG4gIEN0cmwtWiBzdXNwZW5kIHByb2Nlc3NcbiAgYmcgZmcgam9icyBraWxsXG5cbkZsb3cgY29udHJvbDpcbjsgICAgRW5kIHN0YXRlbWVudCAoc2FtZSBhcyBuZXdsaW5lKVxuJiAgICBCYWNrZ3JvdW5kIHByb2Nlc3MgKHJldHVybnMgdHJ1ZSB1bmxlc3Mgc3ludGF4IGVycm9yKVxuJiYgICBJZiB0aGlzIGZhaWxzLCBuZXh0IGNvbW1hbmQgZmFpbHMgd2l0aG91dCBydW5uaW5nXG58fCAgIElmIHRoaXMgc3VjY2VlZHMsIG5leHQgY29tbWFuZCBzdWNjZWVkcyB3aXRob3V0IHJ1bm5pbmdcbnwgICAgUGlwZWxpbmVzISAoQ2FuIG9mIHdvcm1zLi4uKVxuZm9yIHtuYW1lIFtpbi4uLl19fCgoOzspKSBkbzsgQk9EWTsgZG9uZVxuaWYgVEVTVDsgdGhlbiBCT0RZOyBmaVxud2hpbGUgVEVTVDsgZG8gQk9EWTsgZG9uZVxuY2FzZSBhIGluIFgpOzsgZXNhY1xuW1sgVEVTVCBdXVxuKChNQVRIKSlcblxuSm9iIGNvbnRyb2w6XG4mICAgIEJhY2tncm91bmQgcHJvY2Vzc1xuQ3RybC1DIGtpbGwgcHJvY2Vzc1xuQ3RybC1aIHN1c3BlbmQgcHJvY2Vzc1xuYmcgZmcgam9icyBraWxsIgorCisjZGVmaW5lIEhFTFBfcm91dGUgInVzYWdlOiByb3V0ZSBbLW5lXSBbLUEgW2luZXR8aW5ldDZdXSBbYWRkfGRlbCBUQVJHRVQgW09QVElPTlNdXVxuXG5EaXNwbGF5LCBhZGQgb3IgZGVsZXRlIG5ldHdvcmsgcm91dGVzIGluIHRoZSBcIkZvcndhcmRpbmcgSW5mb3JtYXRpb24gQmFzZVwiLFxud2hpY2ggc2VuZCBwYWNrZXRzIG91dCBhIG5ldHdvcmsgaW50ZXJmYWNlIHRvIGFuIGFkZHJlc3MuXG5cbi1uCVNob3cgbnVtZXJpY2FsIGFkZHJlc3NlcyAobm8gRE5TIGxvb2t1cHMpXG4tZQlkaXNwbGF5IG5ldHN0YXQgZmllbGRzXG5cbkFzc2lnbmluZyBhbiBhZGRyZXNzIHRvIGFuIGludGVyZmFjZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYW4gYXBwcm9wcmlhdGVcbm5ldHdvcmsgcm91dGUgKFwiaWZjb25maWcgZXRoMCAxMC4wLjIuMTUvOFwiIGRvZXMgXCJyb3V0ZSBhZGQgMTAuMC4wLjAvOCBldGgwXCJcbmZvciB5b3UpLCBhbHRob3VnaCBzb21lIGRldmljZXMgKHN1Y2ggYXMgbG9vcGJhY2spIHdvbid0IHNob3cgaXQgaW4gdGhlXG50YWJsZS4gRm9yIG1hY2hpbmVzIG1vcmUgdGhhbiBvbmUgaG9wIGF3YXksIHlvdSBuZWVkIHRvIHNwZWNpZnkgYSBnYXRld2F5XG4oYWxhIFwicm91dGUgYWRkIGRlZmF1bHQgZ3cgMTAuMC4yLjJcIikuXG5cblRoZSBhZGRyZXNzIFwiZGVmYXVsdFwiIGlzIGEgd2lsZGNhcmQgYWRkcmVzcyAoMC4wLjAuMC8wKSBtYXRjaGluZyBhbGxcbnBhY2tldHMgd2l0aG91dCBhIG1vcmUgc3BlY2lmaWMgcm91dGUuXG5cbkF2YWlsYWJsZSBPUFRJT05TIGluY2x1ZGU6XG5yZWplY3QgICAtIGJsb2NraW5nIHJvdXRlIChmb3JjZSBtYXRjaCBmYWlsdXJlKVxuZGV2IE5BTUUgLSBmb3JjZSBtYXRjaGluZyBwYWNrZXRzIG91dCB0aGlzIGludGVyZmFjZSAoYWxhIFwiZXRoMFwiKVxubmV0bWFzayAgLSBvbGQgd2F5IG9mIHNheWluZyB0aGluZ3MgbGlrZSBBRERSLzI0XG5ndyBBRERSICAtIGZvcndhcmQgcGFja2V0cyB0byBnYXRld2F5IEFERFIiCisKKyNkZWZpbmUgSEVMUF9tb3JlICJ1c2FnZTogbW9yZSBbRklMRS4uLl1cblxuVmlldyBGSUxFKHMpIChvciBzdGRpbikgb25lIHNjcmVlbmZ1bGwgYXQgYSB0aW1lLiIKKworI2RlZmluZSBIRUxQX21vZHByb2JlICJ1c2FnZTogbW9kcHJvYmUgWy1hbHJxdnNEYl0gWy1kIERJUl0gTU9EVUxFIFtzeW1ib2w9dmFsdWVdWy4uLl1cblxubW9kcHJvYmUgdXRpbGl0eSAtIGluc2VydHMgbW9kdWxlcyBhbmQgZGVwZW5kZW5jaWVzLlxuXG4tYSAgTG9hZCBtdWx0aXBsZSBNT0RVTEVzXG4tYiAgQXBwbHkgYmxhY2tsaXN0IHRvIG1vZHVsZSBuYW1lcyB0b29cbi1EICBTaG93IGRlcGVuZGVuY2llc1xuLWQgIExvYWQgbW9kdWxlcyBmcm9tIERJUiwgb3B0aW9uIG1heSBiZSB1c2VkIG11bHRpcGxlIHRpbWVzXG4tbCAgTGlzdCAoTU9EVUxFIGlzIGEgcGF0dGVybilcbi1xICBRdWlldFxuLXIgIFJlbW92ZSBNT0RVTEUgKHN0YWNrcykgb3IgZG8gYXV0b2NsZWFuXG4tcyAgTG9nIHRvIHN5c2xvZ1xuLXYgIFZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9ta2UyZnNfZXh0ZW5kZWQgInVzYWdlOiBta2UyZnMgWy1FIHN0cmlkZT0jIyNdIFstTyBvcHRpb25bLG9wdGlvbl1dXG5cbi1FIHN0cmlkZT0gU2V0IFJBSUQgc3RyaXBlIHNpemUgKGluIGJsb2Nrcylcbi1PIFtvcHRzXSAgU3BlY2lmeSBmZXdlciBleHQyIG9wdGlvbiBmbGFncyAoZm9yIG9sZCBrZXJuZWxzKVxuICAgICAgICAgICBBbGwgb2YgdGhlc2UgYXJlIG9uIGJ5IGRlZmF1bHQgKGFzIGFwcHJvcHJpYXRlKVxuICAgbm9uZSAgICAgICAgIENsZWFyIGRlZmF1bHQgb3B0aW9ucyAoYWxsIGJ1dCBqb3VybmFsaW5nKVxuICAgZGlyX2luZGV4ICAgIFVzZSBodHJlZSBpbmRleGVzIGZvciBsYXJnZSBkaXJlY3Rvcmllc1xuICAgZmlsZXR5cGUgICAgIFN0b3JlIGZpbGUgdHlwZSBpbmZvIGluIGRpcmVjdG9yeSBlbnRyeVxuICAgaGFzX2pvdXJuYWwgIFNldCBieSAtalxuICAgam91cm5hbF9kZXYgIFNldCBieSAtSiBkZXZpY2U9WFhYXG4gICBzcGFyc2Vfc3VwZXIgRG9uJ3QgYWxsb2NhdGUgaHVnZSBudW1iZXJzIG9mIHJlZHVuZGFudCBzdXBlcmJsb2NrcyIKKworI2RlZmluZSBIRUxQX21rZTJmc19sYWJlbCAidXNhZ2U6IG1rZTJmcyBbLUwgbGFiZWxdIFstTSBwYXRoXSBbLW8gc3RyaW5nXVxuXG4tTCAgICAgICAgIFZvbHVtZSBsYWJlbFxuLU0gICAgICAgICBQYXRoIHRvIG1vdW50IHBvaW50XG4tbyAgICAgICAgIENyZWF0ZWQgYnkiCisKKyNkZWZpbmUgSEVMUF9ta2UyZnNfZ2VuICJ1c2FnZTogZ2VuZTJmcyBbb3B0aW9uc10gZGV2aWNlIGZpbGVuYW1lXG5cblRoZSBbb3B0aW9uc10gYXJlIHRoZSBzYW1lIGFzIG1rZTJmcy4iCisKKyNkZWZpbmUgSEVMUF9ta2UyZnNfam91cm5hbCAidXNhZ2U6IG1rZTJmcyBbLWpdIFstSiBzaXplPSMjIyxkZXZpY2U9WFhYXVxuXG4taiAgICAgICAgIENyZWF0ZSBqb3VybmFsIChleHQzKVxuLUogICAgICAgICBKb3VybmFsIG9wdGlvbnNcbiAgICAgICAgICAgc2l6ZTogTnVtYmVyIG9mIGJsb2NrcyAoMTAyNC0xMDI0MDApXG4gICAgICAgICAgIGRldmljZTogU3BlY2lmeSBhbiBleHRlcm5hbCBqb3VybmFsIgorCisjZGVmaW5lIEhFTFBfbWtlMmZzICJ1c2FnZTogbWtlMmZzIFstRm5xXSBbLWIgIyMjXSBbLU58aSAjIyNdIFstbSAjIyNdIGRldmljZVxuXG5DcmVhdGUgYW4gZXh0MiBmaWxlc3lzdGVtIG9uIGEgYmxvY2sgZGV2aWNlIG9yIGZpbGVzeXN0ZW0gaW1hZ2UuXG5cbi1GICAgICAgICAgRm9yY2UgdG8gcnVuIG9uIGEgbW91bnRlZCBkZXZpY2Vcbi1uICAgICAgICAgRG9uJ3Qgd3JpdGUgdG8gZGV2aWNlXG4tcSAgICAgICAgIFF1aWV0IChubyBvdXRwdXQpXG4tYiBzaXplICAgIEJsb2NrIHNpemUgKDEwMjQsIDIwNDgsIG9yIDQwOTYpXG4tTiBpbm9kZXMgIEFsbG9jYXRlIHRoaXMgbWFueSBpbm9kZXNcbi1pIGJ5dGVzICAgQWxsb2NhdGUgb25lIGlub2RlIGZvciBldmVyeSBYWFggYnl0ZXMgb2YgZGV2aWNlXG4tbSBwZXJjZW50IFJlc2VydmUgdGhpcyBwZXJjZW50IG9mIGZpbGVzeXN0ZW0gc3BhY2UgZm9yIHJvb3QgdXNlciIKKworI2RlZmluZSBIRUxQX21kZXZfY29uZiAiVGhlIG1kZXYgY29uZmlnIGZpbGUgKC9ldGMvbWRldi5jb25mKSBjb250YWlucyBsaW5lcyB0aGF0IGxvb2sgbGlrZTpcbmhkW2Etel1bMC05XSogMDozIDY2MFxuKHNkW2Etel0pIHJvb3Q6ZGlzayA2NjAgPXVzYl9zdG9yYWdlXG5cbkVhY2ggbGluZSBtdXN0IGNvbnRhaW4gdGhyZWUgd2hpdGVzcGFjZSBzZXBhcmF0ZWQgZmllbGRzLiBUaGUgZmlyc3RcbmZpZWxkIGlzIGEgcmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nIG9uZSBvciBtb3JlIGRldmljZSBuYW1lcyxcbnRoZSBzZWNvbmQgYW5kIHRoaXJkIGZpZWxkcyBhcmUgdWlkOmdpZCBhbmQgZmlsZSBwZXJtaXNzaW9ucyBmb3Jcbm1hdGNoaW5nIGRldmljZXMuIEZvdXJ0aCBmaWVsZCBpcyBvcHRpb25hbC4gSXQgY291bGQgYmUgdXNlZCB0byBjaGFuZ2VcbmRldmljZSBuYW1lIChwcmVmaXggJz0nKSwgcGF0aCAocHJlZml4ICc9JyBhbmQgcG9zdGZpeCAnLycpIG9yIGNyZWF0ZSBhXG5zeW1saW5rIChwcmVmaXggJz4nKS4iCisKKyNkZWZpbmUgSEVMUF9tZGV2ICJ1c2FnZTogbWRldiBbLXNdXG5cbkNyZWF0ZSBkZXZpY2VzIGluIC9kZXYgdXNpbmcgaW5mb3JtYXRpb24gZnJvbSAvc3lzLlxuXG4tcwlTY2FuIGFsbCBlbnRyaWVzIGluIC9zeXMgdG8gcG9wdWxhdGUgL2RldiIKKworI2RlZmluZSBIRUxQX21hbiAidXNhZ2U6IG1hbiBbLU0gUEFUSF0gWy1rIFNUUklOR10gfCBbU0VDVElPTl0gQ09NTUFORFxuXG5SZWFkIG1hbnVhbCBwYWdlIGZvciBzeXN0ZW0gY29tbWFuZC5cblxuLWsJTGlzdCBwYWdlcyB3aXRoIFNUUklORyBpbiB0aGVpciBzaG9ydCBkZXNjcmlwdGlvblxuLU0JT3ZlcnJpZGUgJE1BTlBBVEhcblxuTWFuIHBhZ2VzIGFyZSBkaXZpZGVkIGludG8gOCBzZWN0aW9uczpcbjEgY29tbWFuZHMgICAgICAyIHN5c3RlbSBjYWxscyAgMyBsaWJyYXJ5IGZ1bmN0aW9ucyAgNCAvZGV2IGZpbGVzXG41IGZpbGUgZm9ybWF0cyAgNiBnYW1lcyAgICAgICAgIDcgbWlzY2VsbGFuZW91cyAgICAgIDggc3lzdGVtIG1hbmFnZW1lbnRcblxuU2VjdGlvbnMgYXJlIHNlYXJjaGVkIGluIHRoZSBvcmRlciAxIDggMyAyIDUgNCA2IDcgdW5sZXNzIHlvdSBzcGVjaWZ5IGFcbnNlY3Rpb24uIEVhY2ggc2VjdGlvbiBoYXMgYSBwYWdlIGNhbGxlZCBcImludHJvXCIsIGFuZCB0aGVyZSdzIGEgZ2xvYmFsXG5pbnRyb2R1Y3Rpb24gdW5kZXIgXCJtYW4tcGFnZXNcIi4iCisKKyNkZWZpbmUgSEVMUF9sc29mICJ1c2FnZTogbHNvZiBbLWx0XSBbLXAgUElEMSxQSUQyLC4uLl0gW0ZJTEUuLi5dXG5cbkxpc3QgYWxsIG9wZW4gZmlsZXMgYmVsb25naW5nIHRvIGFsbCBhY3RpdmUgcHJvY2Vzc2VzLCBvciBwcm9jZXNzZXMgdXNpbmdcbmxpc3RlZCBGSUxFKHMpLlxuXG4tbAlsaXN0IHVpZHMgbnVtZXJpY2FsbHlcbi1wCWZvciBnaXZlbiBjb21tYS1zZXBhcmF0ZWQgcGlkcyBvbmx5IChkZWZhdWx0IGFsbCBwaWRzKVxuLXQJdGVyc2UgKHBpZCBvbmx5KSBvdXRwdXQiCisKKyNkZWZpbmUgSEVMUF9sYXN0ICJ1c2FnZTogbGFzdCBbLVddIFstZiBGSUxFXVxuXG5TaG93IGxpc3Rpbmcgb2YgbGFzdCBsb2dnZWQgaW4gdXNlcnMuXG5cbi1XICAgICAgRGlzcGxheSB0aGUgaW5mb3JtYXRpb24gd2l0aG91dCBob3N0LWNvbHVtbiB0cnVuY2F0aW9uXG4tZiBGSUxFIFJlYWQgZnJvbSBmaWxlIEZJTEUgaW5zdGVhZCBvZiAvdmFyL2xvZy93dG1wIgorCisjZGVmaW5lIEhFTFBfa2xvZ2QgInVzYWdlOiBrbG9nZCBbLW5dIFstYyBOXVxuXG4tYyAgTiAgIFByaW50IHRvIGNvbnNvbGUgbWVzc2FnZXMgbW9yZSB1cmdlbnQgdGhhbiBwcmlvIE4gKDEtOClcIlxuLW4gICAgUnVuIGluIGZvcmVncm91bmQiCisKKyNkZWZpbmUgSEVMUF9pcGNzICJ1c2FnZTogaXBjcyBbWy1zbXFdIC1pIHNobWlkXSB8IFtbLWFzbXFdIFstdGNwbHVdXVxuXG4taSBTaG93IHNwZWNpZmljIHJlc291cmNlXG5SZXNvdXJjZSBzcGVjaWZpY2F0aW9uOlxuLWEgQWxsIChkZWZhdWx0KVxuLW0gU2hhcmVkIG1lbW9yeSBzZWdtZW50c1xuLXEgTWVzc2FnZSBxdWV1ZXNcbi1zIFNlbWFwaG9yZSBhcnJheXNcbk91dHB1dCBmb3JtYXQ6XG4tYyBDcmVhdG9yXG4tbCBMaW1pdHNcbi1wIFBpZFxuLXQgVGltZVxuLXUgU3VtbWFyeSIKKworI2RlZmluZSBIRUxQX2lwY3JtICJ1c2FnZTogaXBjcm0gWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG5cbi1tTSBSZW1vdmUgbWVtb3J5IHNlZ21lbnQgYWZ0ZXIgbGFzdCBkZXRhY2hcbi1xUSBSZW1vdmUgbWVzc2FnZSBxdWV1ZVxuLXNTIFJlbW92ZSBzZW1hcGhvcmUiCisKKyNkZWZpbmUgSEVMUF9pcCAidXNhZ2U6IGlwIFsgT1BUSU9OUyBdIE9CSkVDVCB7IENPTU1BTkQgfVxuXG5TaG93IC8gbWFuaXB1bGF0ZSByb3V0aW5nLCBkZXZpY2VzLCBwb2xpY3kgcm91dGluZyBhbmQgdHVubmVscy5cblxud2hlcmUgT0JKRUNUIDo9IHthZGRyZXNzIHwgbGluayB8IHJvdXRlIHwgcnVsZSB8IHR1bm5lbH1cbk9QVElPTlMgOj0geyAtZlthbWlseV0geyBpbmV0IHwgaW5ldDYgfCBsaW5rIH0gfCAtb1tuZWxpbmVdIH0iCisKKyNkZWZpbmUgSEVMUF9pbml0ICJ1c2FnZTogaW5pdFxuXG5TeXN0ZW0gViBzdHlsZSBpbml0LlxuXG5GaXJzdCBwcm9ncmFtIHRvIHJ1biAoYXMgUElEIDEpIHdoZW4gdGhlIHN5c3RlbSBjb21lcyB1cCwgcmVhZGluZ1xuL2V0Yy9pbml0dGFiIHRvIGRldGVybWluZSBhY3Rpb25zLiIKKworI2RlZmluZSBIRUxQX2hkICJ1c2FnZTogaGQgW0ZJTEUuLi5dXG5cbkRpc3BsYXkgZmlsZShzKSBpbiBjYW5ub25pY2FsIGhleCtBU0NJSSBmb3JtYXQuIgorCisjZGVmaW5lIEhFTFBfaGV4ZHVtcCAidXNhZ2U6IGhleGR1bXAgWy1iY0Nkb3Z4XSBbLW4gTEVOXSBbLXMgU0tJUF0gW0ZJTEUuLi5dXG5cbkR1bXAgZmlsZShzKSBpbiBoZXhhZGVjaW1hbCBmb3JtYXQuXG5cbi1uIExFTglTaG93IExFTiBieXRlcyBvZiBvdXRwdXRcbi1zIFNLSVAJU2tpcCBieXRlcyBvZiBpbnB1dFxuLXYJVmVyYm9zZSAoZG9uJ3QgY29tYmluZSBpZGVudGljYWwgbGluZXMpXG5cbkRpc3BsYXkgdHlwZTpcbi1iIE9uZSBieXRlIG9jdGFsICAgLWMgT25lIGJ5dGUgY2hhcmFjdGVyIC1DIENhbm9uaWNhbCAoaGV4ICsgQVNDSUkpXG4tZCBUd28gYnl0ZSBkZWNpbWFsIC1vIFR3byBieXRlIG9jdGFsICAgICAteCBUd28gYnl0ZSBoZXhhZGVjaW1hbCAoZGVmYXVsdCkiCisKKyNkZWZpbmUgSEVMUF9ncm91cGRlbCAidXNhZ2U6IGdyb3VwZGVsIFtVU0VSXSBHUk9VUFxuXG5EZWxldGUgYSBncm91cCBvciByZW1vdmUgYSB1c2VyIGZyb20gYSBncm91cCIKKworI2RlZmluZSBIRUxQX2dyb3VwYWRkICJ1c2FnZTogZ3JvdXBhZGQgWy1TXSBbLWcgR0lEXSBbVVNFUl0gR1JPVVBcblxuQWRkIGEgdXNlciB0byBhIGdyb3VwLCBvciBjcmVhdGUgYSBuZXcgZ3JvdXAuXG5cbi1nIEdJRAlHcm91cCBpZFxuLVIJT3BlcmF0ZSB3aXRoaW4gY2hyb290XG4tUwlDcmVhdGUgYSBzeXN0ZW0gZ3JvdXAiCisKKyNkZWZpbmUgSEVMUF9naXRjaGVja291dCAidXNhZ2U6IGdpdGNoZWNrb3V0IDxicmFuY2g+XG5BIG1pbmltYWwgZ2l0IGNoZWNrb3V0LiIKKworI2RlZmluZSBIRUxQX2dpdGZldGNoICJ1c2FnZTogZ2l0ZmV0Y2hcbkEgbWluaW1hbCBnaXQgZmV0Y2guIgorCisjZGVmaW5lIEhFTFBfZ2l0cmVtb3RlICJ1c2FnZTogZ2l0cmVtb3RlIFVSTFxuQSBtaW5pbWFsIGdpdCByZW1vdGUgYWRkIG9yaWdpbi4iCisKKyNkZWZpbmUgSEVMUF9naXRpbml0ICJ1c2FnZTogZ2l0aW5pdCBOQU1FXG5BIG1pbmltYWwgZ2l0IGluaXQuIgorCisjZGVmaW5lIEhFTFBfZ2l0Y2xvbmUgInVzYWdlOiBnaXRjbG9uZSBVUkxcbkEgbWluaW1hbCBnaXQgY2xvbmUuIgorCisjZGVmaW5lIEhFTFBfZ2l0Y29tcGF0ICJFbmFibGUgZ2l0IGNvbXBhdGlibGUgcmVwb3MgaW5zdGVhZCBvZiBtaW5pbWFsIGNsb25lIGRvd25sb2FkZXIuIgorCisjZGVmaW5lIEhFTFBfZ2V0dHkgInVzYWdlOiBnZXR0eSBbT1BUSU9OU10gQkFVRF9SQVRFWyxCQVVEX1JBVEVdLi4uIFRUWSBbVEVSTVRZUEVdXG5cbldhaXQgZm9yIGEgbW9kZW0gdG8gZGlhbCBpbnRvIHNlcmlhbCBwb3J0LCBhZGp1c3QgYmF1ZCByYXRlLCBjYWxsIGxvZ2luLlxuXG4taCAgICBFbmFibGUgaGFyZHdhcmUgUlRTL0NUUyBmbG93IGNvbnRyb2xcbi1MICAgIFNldCBDTE9DQUwgKGlnbm9yZSBDYXJyaWVyIERldGVjdCBzdGF0ZSlcbi1tICAgIEdldCBiYXVkIHJhdGUgZnJvbSBtb2RlbSdzIENPTk5FQ1Qgc3RhdHVzIG1lc3NhZ2Vcbi1uICAgIERvbid0IHByb21wdCBmb3IgbG9naW4gbmFtZVxuLXcgICAgV2FpdCBmb3IgQ1Igb3IgTEYgYmVmb3JlIHNlbmRpbmcgL2V0Yy9pc3N1ZVxuLWkgICAgRG9uJ3QgZGlzcGxheSAvZXRjL2lzc3VlXG4tZiBJU1NVRV9GSUxFICBEaXNwbGF5IElTU1VFX0ZJTEUgaW5zdGVhZCBvZiAvZXRjL2lzc3VlXG4tbCBMT0dJTiAgSW52b2tlIExPR0lOIGluc3RlYWQgb2YgL2Jpbi9sb2dpblxuLXQgU0VDICAgIFRlcm1pbmF0ZSBhZnRlciBTRUMgaWYgbm8gbG9naW4gbmFtZSBpcyByZWFkXG4tSSBJTklUU1RSICBTZW5kIElOSVRTVFIgYmVmb3JlIGFueXRoaW5nIGVsc2Vcbi1IIEhPU1QgICAgTG9nIEhPU1QgaW50byB0aGUgdXRtcCBmaWxlIGFzIHRoZSBob3N0bmFtZSIKKworI2RlZmluZSBIRUxQX2dldGZhdHRyICJ1c2FnZTogZ2V0ZmF0dHIgWy1kXSBbLWhdIFstbiBOQU1FXSBGSUxFLi4uXG5cblJlYWQgUE9TSVggZXh0ZW5kZWQgYXR0cmlidXRlcy5cblxuLWQJU2hvdyB2YWx1ZXMgYXMgd2VsbCBhcyBuYW1lc1xuLWgJRG8gbm90IGRlcmVmZXJlbmNlIHN5bWJvbGljIGxpbmtzXG4tbglTaG93IG9ubHkgYXR0cmlidXRlcyB3aXRoIHRoZSBnaXZlbiBuYW1lXG4tLW9ubHktdmFsdWVzCURvbid0IHNob3cgbmFtZXMiCisKKyNkZWZpbmUgSEVMUF9mc2NrICJ1c2FnZTogZnNjayBbLUFOUFJUVl0gWy1DIEZEXSBbLXQgRlNUWVBFXSBbRlNfT1BUU10gW0JMT0NLREVWXS4uLlxuXG5DaGVjayBhbmQgcmVwYWlyIGZpbGVzeXN0ZW1zXG5cbi1BICAgICAgV2FsayAvZXRjL2ZzdGFiIGFuZCBjaGVjayBhbGwgZmlsZXN5c3RlbXNcbi1OICAgICAgRG9uJ3QgZXhlY3V0ZSwganVzdCBzaG93IHdoYXQgd291bGQgYmUgZG9uZVxuLVAgICAgICBXaXRoIC1BLCBjaGVjayBmaWxlc3lzdGVtcyBpbiBwYXJhbGxlbFxuLVIgICAgICBXaXRoIC1BLCBza2lwIHRoZSByb290IGZpbGVzeXN0ZW1cbi1UICAgICAgRG9uJ3Qgc2hvdyB0aXRsZSBvbiBzdGFydHVwXG4tViAgICAgIFZlcmJvc2Vcbi1DIG4gICAgV3JpdGUgc3RhdHVzIGluZm9ybWF0aW9uIHRvIHNwZWNpZmllZCBmaWxlIGRlc2NyaXB0b3Jcbi10IFRZUEUgTGlzdCBvZiBmaWxlc3lzdGVtIHR5cGVzIHRvIGNoZWNrIgorCisjZGVmaW5lIEhFTFBfZmRpc2sgInVzYWdlOiBmZGlzayBbLWx1XSBbLUMgQ1lMSU5ERVJTXSBbLUggSEVBRFNdIFstUyBTRUNUT1JTXSBbLWIgU0VDVFNaXSBESVNLXG5cbkNoYW5nZSBwYXJ0aXRpb24gdGFibGVcblxuLXUgICAgICAgICAgICBTdGFydCBhbmQgRW5kIGFyZSBpbiBzZWN0b3JzIChpbnN0ZWFkIG9mIGN5bGluZGVycylcbi1sICAgICAgICAgICAgU2hvdyBwYXJ0aXRpb24gdGFibGUgZm9yIGVhY2ggRElTSywgdGhlbiBleGl0XG4tYiBzaXplICAgICAgIHNlY3RvciBzaXplICg1MTIsIDEwMjQsIDIwNDggb3IgNDA5Nilcbi1DIENZTElOREVSUyAgU2V0IG51bWJlciBvZiBjeWxpbmRlcnMvaGVhZHMvc2VjdG9yc1xuLUggSEVBRFNcbi1TIFNFQ1RPUlMiCisKKyNkZWZpbmUgSEVMUF9leHByICJ1c2FnZTogZXhwciBBUkcxIE9QRVJBVE9SIEFSRzIuLi5cblxuRXZhbHVhdGUgZXhwcmVzc2lvbiBhbmQgcHJpbnQgcmVzdWx0LiBGb3IgZXhhbXBsZSwgXCJleHByIDEgKyAyXCIgcHJpbnRzIFwiM1wiLlxuXG5UaGUgc3VwcG9ydGVkIG9wZXJhdG9ycyBhcmUgKGdyb3VwZWQgZnJvbSBoaWdoZXN0IHRvIGxvd2VzdCBwcmlvcml0eSk6XG5cbiAgKCApICAgIDogICAgKiAvICUgICAgKyAtICAgICE9IDw9IDwgPj0gPiA9ICAgICYgICAgfFxuXG5FYWNoIGNvbnN0YW50IGFuZCBvcGVyYXRvciBtdXN0IGJlIGEgc2VwYXJhdGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50LlxuQWxsIG9wZXJhdG9ycyBhcmUgaW5maXgsIHJlcXVpcmluZyBhIHZhbHVlIG9uIGVhY2ggc2lkZSBvZiB0aGUgb3BlcmF0b3IuXG5PcGVyYXRvcnMgb2YgdGhlIHNhbWUgcHJpb3JpdHkgYXJlIGV2YWx1YXRlZCBsZWZ0IHRvIHJpZ2h0LiBQYXJlbnRoZXNlc1xuZWxldmF0ZSB0aGUgcHJpb3JpdHkgb2YgZXhwcmVzc2lvbiB0aGV5IGNvbnRhaW4uIFRoZSAmIGFuZCB8IG9wZXJhdG9yc1xuYXJlIGxvZ2ljYWwgKG5vdCBiaXR3aXNlKS5cblxuQWxsIG9wZXJhdG9ycyB5aWVsZCBpbnRlZ2VycywgYW5kIG1vc3Qgb3BlcmF0b3JzIGV4cGVjdCBpbnRlZ2VyIGFyZ3VtZW50cy5cbkNvbXBhcmlzb25zIG1heSBhbHBoYWJldGljYWxseSBjb21wYXJlIHN0cmluZ3MsIGxvZ2ljYWwgb3BlcmF0b3JzIHRyZWF0IGFcbmJsYW5rIHN0cmluZyBhcyBmYWxzZSBhbmQgbm9uYmxhbmsgYXMgdHJ1ZSwgYW5kIHRoZSByZWdleCBvcGVyYXRvclxuKHN0ciA6IHBhdHRlcm4pIHlpZWxkcyB0aGUgaW5pdGlhbCBudW1iZXIgb2YgbWF0Y2hpbmcgYnl0ZXMuIChTb1xuXCJhYmMgOiBhYlwiIGlzIDIsIGJ1dCBcImFiYyA6IGJjXCIgaXMgMC4pXG5cbkNhbGxpbmcgZXhwciBmcm9tIGEgY29tbWFuZCBzaGVsbCByZXF1aXJlcyBhIGxvdCBvZiBcXCggb3IgJyonIGVzY2FwaW5nXG50byBhdm9pZCBpbnRlcnByZXRpbmcgc2hlbGwgY29udHJvbCBjaGFyYWN0ZXJzLCB2cyB0aGUgc2hlbGwncyBcIiQoKDErNi8zKSlcIi4iCisKKyNkZWZpbmUgSEVMUF9kdW1wbGVhc2VzICJ1c2FnZTogZHVtcGxlYXNlcyBbLXJ8LWFdIFstZiBMRUFTRUZJTEVdXG5cbkRpc3BsYXkgREhDUCBsZWFzZXMgZ3JhbnRlZCBieSB1ZGhjcGRcbi1mIEZJTEUsICBMZWFzZSBmaWxlXG4tciAgICAgICAgU2hvdyByZW1haW5pbmcgdGltZVxuLWEgICAgICAgIFNob3cgZXhwaXJhdGlvbiB0aW1lIgorCisjZGVmaW5lIEhFTFBfZGlmZiAidXNhZ2U6IGRpZmYgWy1hYkJkaU5xclRzdHddIFstTCBMQUJFTF0gWy1TIEZJTEVdIFstVSBMSU5FU10gWy1GIFJFR0VYIF0gRklMRTEgRklMRTJcblxuLWEJVHJlYXQgYWxsIGZpbGVzIGFzIHRleHRcbi1iCUlnbm9yZSBjaGFuZ2VzIGluIHRoZSBhbW91bnQgb2Ygd2hpdGVzcGFjZVxuLUIJSWdub3JlIGNoYW5nZXMgd2hvc2UgbGluZXMgYXJlIGFsbCBibGFua1xuLWQJVHJ5IGhhcmQgdG8gZmluZCBhIHNtYWxsZXIgc2V0IG9mIGNoYW5nZXNcbi1GIAlTaG93IHRoZSBtb3N0IHJlY2VudCBsaW5lIG1hdGNoaW5nIHRoZSByZWdleFxuLWkJSWdub3JlIGNhc2UgZGlmZmVyZW5jZXNcbi1MCVVzZSBMQUJFTCBpbnN0ZWFkIG9mIHRoZSBmaWxlbmFtZSBpbiB0aGUgdW5pZmllZCBoZWFkZXJcbi1OCVRyZWF0IGFic2VudCBmaWxlcyBhcyBlbXB0eVxuLXEJT3V0cHV0IG9ubHkgd2hldGhlciBmaWxlcyBkaWZmZXJcbi1yCVJlY3Vyc2Vcbi1TCVN0YXJ0IHdpdGggRklMRSB3aGVuIGNvbXBhcmluZyBkaXJlY3Rvcmllc1xuLXMJUmVwb3J0IHdoZW4gdHdvIGZpbGVzIGFyZSB0aGUgc2FtZVxuLVQJTWFrZSB0YWJzIGxpbmUgdXAgYnkgcHJlZml4aW5nIGEgdGFiIHdoZW4gbmVjZXNzYXJ5XG4tdAlFeHBhbmQgdGFicyB0byBzcGFjZXMgaW4gb3V0cHV0XG4tdQlVbmlmaWVkIGRpZmZcbi1VCU91dHB1dCBMSU5FUyBsaW5lcyBvZiBjb250ZXh0XG4tdwlJZ25vcmUgYWxsIHdoaXRlc3BhY2VcblxuLS1jb2xvciAgICAgQ29sb3Igb3V0cHV0ICAgLS1zdHJpcC10cmFpbGluZy1jciAgIFN0cmlwICdcXHInIGZyb20gaW5wdXQgbGluZXNcbi0tVFlQRS1saW5lLWZvcm1hdD1GT1JNQVQgIERpc3BsYXkgVFlQRSAodW5jaGFuZ2VkL29sZC9uZXcpIGxpbmVzIHVzaW5nIEZPUk1BVFxuICBGT1JNQVQgdXNlcyBwcmludGYgaW50ZWdlciBlc2NhcGVzIChhbGEgJS0yLjR4KSBmb2xsb3dlZCBieSBMRVRURVI6IEZFTE1OblxuU3VwcG9ydGVkIGZvcm1hdCBzcGVjaWZpZXJzIGFyZTpcbiogJWwsIHRoZSBjb250ZW50cyBvZiB0aGUgbGluZSwgd2l0aG91dCB0aGUgdHJhaWxpbmcgbmV3bGluZVxuKiAlTCwgdGhlIGNvbnRlbnRzIG9mIHRoZSBsaW5lLCBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nIG5ld2xpbmVcbiogJSUsIHRoZSBjaGFyYWN0ZXIgJyUnIgorCisjZGVmaW5lIEhFTFBfZGhjcGQgInVzYWdlOiBkaGNwZCBbLTQ2ZlNdIFstaSBJRkFDRV0gWy1QIE5dIFtDT05GRklMRV1cblxuIC1mICAgIFJ1biBpbiBmb3JlZ3JvdW5kXG4gLWkgSW50ZXJmYWNlIHRvIHVzZVxuIC1TICAgIExvZyB0byBzeXNsb2cgdG9vXG4gLVAgTiAgVXNlIHBvcnQgTiAoZGVmYXVsdCBpcHY0IDY3LCBpcHY2IDU0NylcbiAtNCwgLTYgICAgUnVuIGFzIGEgREhDUHY0IG9yIERIQ1B2NiBzZXJ2ZXIiCisKKyNkZWZpbmUgSEVMUF9kaGNwNiAidXNhZ2U6IGRoY3A2IFstZmJucXZSXSBbLWkgSUZBQ0VdIFstciBJUF0gWy1zIFBST0ddIFstcCBQSURGSUxFXVxuXG5Db25maWd1cmUgbmV0d29yayBkeW5hbWljYWxseSB1c2luZyBESENQLlxuXG4taSBJbnRlcmZhY2UgdG8gdXNlIChkZWZhdWx0IGV0aDApXG4tcCBDcmVhdGUgcGlkZmlsZVxuLXMgUnVuIFBST0cgYXQgREhDUCBldmVudHNcbi10IFNlbmQgdXAgdG8gTiBTb2xpY2l0IHBhY2tldHNcbi1UIFBhdXNlIGJldHdlZW4gcGFja2V0cyAoZGVmYXVsdCAzIHNlY29uZHMpXG4tQSBXYWl0IE4gc2Vjb25kcyBhZnRlciBmYWlsdXJlIChkZWZhdWx0IDIwKVxuLWYgUnVuIGluIGZvcmVncm91bmRcbi1iIEJhY2tncm91bmQgaWYgbGVhc2UgaXMgbm90IG9idGFpbmVkXG4tbiBFeGl0IGlmIGxlYXNlIGlzIG5vdCBvYnRhaW5lZFxuLXEgRXhpdCBhZnRlciBvYnRhaW5pbmcgbGVhc2Vcbi1SIFJlbGVhc2UgSVAgb24gZXhpdFxuLVMgTG9nIHRvIHN5c2xvZyB0b29cbi1yIFJlcXVlc3QgdGhpcyBJUCBhZGRyZXNzXG4tdiBWZXJib3NlXG5cblNpZ25hbHM6XG5VU1IxICBSZW5ldyBjdXJyZW50IGxlYXNlXG5VU1IyICBSZWxlYXNlIGN1cnJlbnQgbGVhc2UiCisKKyNkZWZpbmUgSEVMUF9kaGNwICJ1c2FnZTogZGhjcCBbLWZibnF2b0NSQl0gWy1pIElGQUNFXSBbLXIgSVBdIFstcyBQUk9HXSBbLXAgUElERklMRV1cbiAgICAgICAgICAgIFstSCBIT1NUTkFNRV0gWy1WIFZFTkRPUl0gWy14IE9QVDpWQUxdIFstTyBPUFRdXG5cbiAgICAgQ29uZmlndXJlIG5ldHdvcmsgZHluYW1pY2FsbHkgdXNpbmcgREhDUC5cblxuICAgLWkgSW50ZXJmYWNlIHRvIHVzZSAoZGVmYXVsdCBldGgwKVxuICAgLXAgQ3JlYXRlIHBpZGZpbGVcbiAgIC1zIFJ1biBQUk9HIGF0IERIQ1AgZXZlbnRzIChkZWZhdWx0IC91c3Ivc2hhcmUvZGhjcC9kZWZhdWx0LnNjcmlwdClcbiAgIC1CIFJlcXVlc3QgYnJvYWRjYXN0IHJlcGxpZXNcbiAgIC10IFNlbmQgdXAgdG8gTiBkaXNjb3ZlciBwYWNrZXRzXG4gICAtVCBQYXVzZSBiZXR3ZWVuIHBhY2tldHMgKGRlZmF1bHQgMyBzZWNvbmRzKVxuICAgLUEgV2FpdCBOIHNlY29uZHMgYWZ0ZXIgZmFpbHVyZSAoZGVmYXVsdCAyMClcbiAgIC1mIFJ1biBpbiBmb3JlZ3JvdW5kXG4gICAtYiBCYWNrZ3JvdW5kIGlmIGxlYXNlIGlzIG5vdCBvYnRhaW5lZFxuICAgLW4gRXhpdCBpZiBsZWFzZSBpcyBub3Qgb2J0YWluZWRcbiAgIC1xIEV4aXQgYWZ0ZXIgb2J0YWluaW5nIGxlYXNlXG4gICAtUiBSZWxlYXNlIElQIG9uIGV4aXRcbiAgIC1TIExvZyB0byBzeXNsb2cgdG9vXG4gICAtYSBVc2UgYXJwaW5nIHRvIHZhbGlkYXRlIG9mZmVyZWQgYWRkcmVzc1xuICAgLU8gUmVxdWVzdCBvcHRpb24gT1BUIGZyb20gc2VydmVyIChjdW11bGF0aXZlKVxuICAgLW8gRG9uJ3QgcmVxdWVzdCBhbnkgb3B0aW9ucyAodW5sZXNzIC1PIGlzIGdpdmVuKVxuICAgLXIgUmVxdWVzdCB0aGlzIElQIGFkZHJlc3NcbiAgIC14IE9QVDpWQUwgIEluY2x1ZGUgb3B0aW9uIE9QVCBpbiBzZW50IHBhY2tldHMgKGN1bXVsYXRpdmUpXG4gICAtRiBBc2sgc2VydmVyIHRvIHVwZGF0ZSBETlMgbWFwcGluZyBmb3IgTkFNRVxuICAgLUggU2VuZCBOQU1FIGFzIGNsaWVudCBob3N0bmFtZSAoZGVmYXVsdCBub25lKVxuICAgLVYgVkVORE9SIFZlbmRvciBpZGVudGlmaWVyIChkZWZhdWx0ICd0b3lib3ggVkVSU0lPTicpXG4gICAtQyBEb24ndCBzZW5kIE1BQyBhcyBjbGllbnQgaWRlbnRpZmllclxuICAgLXYgVmVyYm9zZVxuXG4gICBTaWduYWxzOlxuICAgVVNSMSAgUmVuZXcgY3VycmVudCBsZWFzZVxuICAgVVNSMiAgUmVsZWFzZSBjdXJyZW50IGxlYXNlIgorCisjZGVmaW5lIEhFTFBfY3NwbGl0ICJ1c2FnZTogY3NwbGl0IFsta3NdIFstZiBQUkVGSVhdIFstbiBJTlRFR0VSXSBmaWxlIGFyZy4uLlxuXG5TcGxpdCBmaWxlcyBpbnRvIG11bHRpcGxlIGZpbGVzIGJhc2VkIG9uIGxpc3Qgb2YgcnVsZXNcblxuLWsJRG9lcyBub3QgZGVsZXRlIEZpbGVzIG9uIGVycm9yXG4tcwlObyBmaWxlIG91dHB1dCBzaXplIG1lc3NhZ2VzXG4tZiBbUFJFRklYXSBVc2UgW1BSRUZJWF0gYXMgZmlsZW5hbWUgcHJlZml4IGluc3RlYWQgb2YgXCJ4eFwiXG4tbiBbSU5URUdFUl0gTWFrZSBhbGwgZmlsZW5hbWUgbnVtYmVycyBbSU5URUdFUl0gY2hhcmFjdGVycyBsb25nXG5cblZhbGlkIFJ1bGVzOlxuL3JlZ2V4cC9bSU5URUdFUl0gQnJlYWsgZmlsZSBiZWZvcmUgbGluZSB0aGF0IHJlZ2V4cCBtYXRjaGVzLFxuJXJlZ2V4cCVbSU5URUdFUl0gRXhjbHVkZSB1bnRpbGwgbGluZSBtYXRjaGVzIHJlZ2V4cFxuSWYgYSBvZmZzZXQgaXMgc3BlY2lmaWVkIGZvciB0aGVzZSBydWxlcywgdGhlIGJyZWFrIHdpbGwgaGFwcGVuIFtJTlRFR0VSXVxubGluZXMgYWZ0ZXIgdGhlIHJlZ2V4cCBtYXRjaFxuaWYgYSBvZmZzZXQgaXMgc3BlY2lmaWVkLCBpdCB3aWxsIGJyZWFrIGF0IFtJTlRFR0VSXSBsaW5lcyBhZnRlciB0aGUgb2Zmc2V0XG5bSU5URUdFUl0gQnJlYWsgZmlsZSBhdCBsaW5lIGJlZm9yZSBbSU5URUdFUl1cbntJTlRFR0VSfSBSZXBlYXQgUHJldmlvdXMgUGF0dGVybiBJTlRFR0VSIE51bWJlciBvZiB0aW1lcyBpZiBJTlRFR0VSIGlzICpcblRoZSBwYXR0ZXJuIHJlcGVhdHMgZm9yZXZlciIKKworI2RlZmluZSBIRUxQX2Nyb250YWIgInVzYWdlOiBjcm9udGFiIFstdSB1c2VyXSBGSUxFXG4gICAgICAgICAgICAgICBbLXUgdXNlcl0gWy1lIHwgLWwgfCAtcl1cbiAgICAgICAgICAgICAgIFstYyBkaXJdXG5cbkZpbGVzIHVzZWQgdG8gc2NoZWR1bGUgdGhlIGV4ZWN1dGlvbiBvZiBwcm9ncmFtcy5cblxuLWMgY3JvbnRhYiBkaXJcbi1lIGVkaXQgdXNlcidzIGNyb250YWJcbi1sIGxpc3QgdXNlcidzIGNyb250YWJcbi1yIGRlbGV0ZSB1c2VyJ3MgY3JvbnRhYlxuLXUgdXNlclxuRklMRSBSZXBsYWNlIGNyb250YWIgYnkgRklMRSAoJy0nOiBzdGRpbikiCisKKyNkZWZpbmUgSEVMUF9jcm9uZCAidXNhZ2U6IGNyb25kIFstZmJTXSBbLWwgTl0gWy1kIE5dIFstTCBMT0dGSUxFXSBbLWMgRElSXVxuXG5BIGRhZW1vbiB0byBleGVjdXRlIHNjaGVkdWxlZCBjb21tYW5kcy5cblxuLWIgQmFja2dyb3VuZCAoZGVmYXVsdClcbi1jIGNyb250YWIgZGlyXG4tZCBTZXQgbG9nIGxldmVsLCBsb2cgdG8gc3RkZXJyXG4tZiBGb3JlZ3JvdW5kXG4tbCBTZXQgbG9nIGxldmVsLiAwIGlzIHRoZSBtb3N0IHZlcmJvc2UsIGRlZmF1bHQgOFxuLVMgTG9nIHRvIHN5c2xvZyAoZGVmYXVsdClcbi1MIExvZyB0byBmaWxlIgorCisjZGVmaW5lIEhFTFBfY2hzaCAidXNhZ2U6IGNoc2ggWy1zIFNIRUxMXSBbLVIgQ0hST09UX0RJUl0gW1VTRVJdXG5cbkNoYW5nZSB1c2VyJ3MgbG9naW4gc2hlbGwuXG5cbi1zCVVzZSBTSEVMTCBpbnN0ZWFkIG9mIHByb21wdGluZ1xuLVIJQWN0IG9uIENIUk9PVF9ESVIgaW5zdGVhZCBvZiBob3N0XG5cbk5vbi1yb290IHVzZXJzIGNhbiBvbmx5IGNoYW5nZSB0aGVpciBvd24gc2hlbGwgdG8gb25lIGxpc3RlZCBpbiAvZXRjL3NoZWxscy4iCisKKyNkZWZpbmUgSEVMUF9icmN0bCAidXNhZ2U6IGJyY3RsIENPTU1BTkQgW0JSSURHRSBbSU5URVJGQUNFXV1cblxuTWFuYWdlIGV0aGVybmV0IGJyaWRnZXNcblxuQ29tbWFuZHM6XG5zaG93ICAgICAgICAgICAgICAgICAgU2hvdyBhIGxpc3Qgb2YgYnJpZGdlc1xuYWRkYnIgQlJJREdFICAgICAgICAgIENyZWF0ZSBCUklER0VcbmRlbGJyIEJSSURHRSAgICAgICAgICBEZWxldGUgQlJJREdFXG5hZGRpZiBCUklER0UgSUZBQ0UgICAgQWRkIElGQUNFIHRvIEJSSURHRVxuZGVsaWYgQlJJREdFIElGQUNFICAgIERlbGV0ZSBJRkFDRSBmcm9tIEJSSURHRVxuc2V0YWdlaW5nIEJSSURHRSBUSU1FIFNldCBhZ2VpbmcgdGltZVxuc2V0ZmQgQlJJREdFIFRJTUUgICAgIFNldCBicmlkZ2UgZm9yd2FyZCBkZWxheVxuc2V0aGVsbG8gQlJJREdFIFRJTUUgIFNldCBoZWxsbyB0aW1lXG5zZXRtYXhhZ2UgQlJJREdFIFRJTUUgU2V0IG1heCBtZXNzYWdlIGFnZVxuc2V0cGF0aGNvc3QgQlJJREdFIFBPUlQgQ09TVCAgIFNldCBwYXRoIGNvc3RcbnNldHBvcnRwcmlvIEJSSURHRSBQT1JUIFBSSU8gICBTZXQgcG9ydCBwcmlvcml0eVxuc2V0YnJpZGdlcHJpbyBCUklER0UgUFJJTyAgICAgIFNldCBicmlkZ2UgcHJpb3JpdHlcbnN0cCBCUklER0UgWzEveWVzL29ufDAvbm8vb2ZmXSBTVFAgb24vb2ZmIgorCisjZGVmaW5lIEhFTFBfYm9vdGNoYXJ0ZCAidXNhZ2U6IGJvb3RjaGFydGQge3N0YXJ0IFtQUk9HIEFSR1NdfXxzdG9wfGluaXRcblxuUmVjb3JkIGJvb3QgY2hhcnQgZGF0YSBpbnRvIC92YXIvbG9nL2Jvb3Rsb2cudGd6XG5cbnN0YXJ0OiBzdGFydCBiYWNrZ3JvdW5kIGxvZ2dpbmc7IHdpdGggUFJPRywgcnVuIFBST0csXG4gICAgICAgdGhlbiBraWxsIGxvZ2dpbmcgd2l0aCBTSUdVU1IxXG5zdG9wOiAgc2VuZCBTSUdVU1IxIHRvIGFsbCBib290Y2hhcnRkIHByb2Nlc3Nlc1xuaW5pdDogIHN0YXJ0IGJhY2tncm91bmQgbG9nZ2luZzsgc3RvcCB3aGVuIGdldHR5L3hkbSBpcyBzZWVuXG4gICAgICAoZm9yIGluaXQgc2NyaXB0cylcblxuVW5kZXIgUElEIDE6IGFzIGluaXQsIHRoZW4gZXhlYyAkYm9vdGNoYXJ0X2luaXQsIC9pbml0LCAvc2Jpbi9pbml0IgorCisjZGVmaW5lIEhFTFBfYmMgInVzYWdlOiBiYyBbLWlscXN3XSBbZmlsZSAuLi5dXG5cbmJjIGlzIGEgY29tbWFuZC1saW5lIGNhbGN1bGF0b3Igd2l0aCBhIFR1cmluZy1jb21wbGV0ZSBsYW5ndWFnZS5cblxub3B0aW9uczpcblxuICAtaSAgLS1pbnRlcmFjdGl2ZSAgZm9yY2UgaW50ZXJhY3RpdmUgbW9kZVxuICAtbCAgLS1tYXRobGliICAgICAgdXNlIHByZWRlZmluZWQgbWF0aCByb3V0aW5lczpcblxuICAgICAgICAgICAgICAgICAgICAgcyhleHByKSAgPSAgc2luZSBvZiBleHByIGluIHJhZGlhbnNcbiAgICAgICAgICAgICAgICAgICAgIGMoZXhwcikgID0gIGNvc2luZSBvZiBleHByIGluIHJhZGlhbnNcbiAgICAgICAgICAgICAgICAgICAgIGEoZXhwcikgID0gIGFyY3RhbmdlbnQgb2YgZXhwciwgcmV0dXJuaW5nIHJhZGlhbnNcbiAgICAgICAgICAgICAgICAgICAgIGwoZXhwcikgID0gIG5hdHVyYWwgbG9nIG9mIGV4cHJcbiAgICAgICAgICAgICAgICAgICAgIGUoZXhwcikgID0gIHJhaXNlcyBlIHRvIHRoZSBwb3dlciBvZiBleHByXG4gICAgICAgICAgICAgICAgICAgICBqKG4sIHgpICA9ICBCZXNzZWwgZnVuY3Rpb24gb2YgaW50ZWdlciBvcmRlciBuIG9mIHhcblxuICAtcSAgLS1xdWlldCAgICAgICAgZG9uJ3QgcHJpbnQgdmVyc2lvbiBhbmQgY29weXJpZ2h0XG4gIC1zICAtLXN0YW5kYXJkICAgICBlcnJvciBpZiBhbnkgbm9uLVBPU0lYIGV4dGVuc2lvbnMgYXJlIHVzZWRcbiAgLXcgIC0td2FybiAgICAgICAgIHdhcm4gaWYgYW55IG5vbi1QT1NJWCBleHRlbnNpb25zIGFyZSB1c2VkIgorCisjZGVmaW5lIEhFTFBfYXJwaW5nICJ1c2FnZTogYXJwaW5nIFstZnFiRFVBXSBbLWMgQ05UXSBbLXcgVElNRU9VVF0gWy1JIElGQUNFXSBbLXMgU1JDX0lQXSBEU1RfSVBcblxuU2VuZCBBUlAgcmVxdWVzdHMvcmVwbGllc1xuXG4tZiAgICAgICAgIFF1aXQgb24gZmlyc3QgQVJQIHJlcGx5XG4tcSAgICAgICAgIFF1aWV0XG4tYiAgICAgICAgIEtlZXAgYnJvYWRjYXN0aW5nLCBkb24ndCBnbyB1bmljYXN0XG4tRCAgICAgICAgIER1cGxpY2F0ZWQgYWRkcmVzcyBkZXRlY3Rpb24gbW9kZVxuLVUgICAgICAgICBVbnNvbGljaXRlZCBBUlAgbW9kZSwgdXBkYXRlIHlvdXIgbmVpZ2hib3JzXG4tQSAgICAgICAgIEFSUCBhbnN3ZXIgbW9kZSwgdXBkYXRlIHlvdXIgbmVpZ2hib3JzXG4tYyBOICAgICAgIFN0b3AgYWZ0ZXIgc2VuZGluZyBOIEFSUCByZXF1ZXN0c1xuLXcgVElNRU9VVCBUaW1lIHRvIHdhaXQgZm9yIEFSUCByZXBseSwgc2Vjb25kc1xuLUkgSUZBQ0UgICBJbnRlcmZhY2UgdG8gdXNlIChkZWZhdWx0IGV0aDApXG4tcyBTUkNfSVAgIFNlbmRlciBJUCBhZGRyZXNzXG5EU1RfSVAgICAgIFRhcmdldCBJUCBhZGRyZXNzIgorCisjZGVmaW5lIEhFTFBfYXJwICJ1c2FnZTogYXJwXG5bLXZuXSBbLUggSFdUWVBFXSBbLWkgSUZdIC1hIFtIT1NUTkFNRV1cblstdl0gICAgICAgICAgICAgIFstaSBJRl0gLWQgSE9TVE5BTUUgW3B1Yl1cblstdl0gIFstSCBIV1RZUEVdIFstaSBJRl0gLXMgSE9TVE5BTUUgSFdBRERSIFt0ZW1wXVxuWy12XSAgWy1IIEhXVFlQRV0gWy1pIElGXSAtcyBIT1NUTkFNRSBIV0FERFIgW25ldG1hc2sgTUFTS10gcHViXG5bLXZdICBbLUggSFdUWVBFXSBbLWkgSUZdIC1EcyBIT1NUTkFNRSBJRkFDRSBbbmV0bWFzayBNQVNLXSBwdWJcblxuTWFuaXB1bGF0ZSBBUlAgY2FjaGUuXG5cbi1hCURpc3BsYXkgKGFsbCkgaG9zdHNcbi1zCVNldCBuZXcgQVJQIGVudHJ5XG4tZAlEZWxldGUgYSBzcGVjaWZpZWQgZW50cnlcbi12CVZlcmJvc2Vcbi1uCURvbid0IHJlc29sdmUgbmFtZXNcbi1pIElGQUNFCU5ldHdvcmsgaW50ZXJmYWNlXG4tRAlSZWFkIDxod2FkZHI+IGZyb20gZ2l2ZW4gZGV2aWNlXG4tQSwtcCBBRglQcm90b2NvbCBmYW1pbHlcbi1IIEhXVFlQRQlIYXJkd2FyZSBhZGRyZXNzIHR5cGUiCisKKyNkZWZpbmUgSEVMUF94YXJncyAidXNhZ2U6IHhhcmdzIFstMFBwcnRdIFstc25FIFNUUl0gQ09NTUFORC4uLlxuXG5SdW4gY29tbWFuZCBsaW5lIG9uZSBvciBtb3JlIHRpbWVzLCBhcHBlbmRpbmcgYXJndW1lbnRzIGZyb20gc3RkaW4uXG5cbklmIENPTU1BTkQgZXhpdHMgd2l0aCAyNTUsIGRvbid0IGxhdW5jaCBhbm90aGVyIGV2ZW4gaWYgYXJndW1lbnRzIHJlbWFpbi5cblxuLTAJRWFjaCBhcmd1bWVudCBpcyBOVUxMIHRlcm1pbmF0ZWQsIG5vIHdoaXRlc3BhY2Ugb3IgcXVvdGUgcHJvY2Vzc2luZ1xuLUUJU3RvcCBhdCBsaW5lIG1hdGNoaW5nIHN0cmluZ1xuLW4JTWF4IG51bWJlciBvZiBhcmd1bWVudHMgcGVyIGNvbW1hbmRcbi1vCU9wZW4gdHR5IGZvciBDT01NQU5EJ3Mgc3RkaW4gKGRlZmF1bHQgL2Rldi9udWxsKVxuLVAJUGFyYWxsZWwgcHJvY2Vzc2VzIChkZWZhdWx0IDEpXG4tcAlQcm9tcHQgZm9yIHkvbiBmcm9tIHR0eSBiZWZvcmUgcnVubmluZyBlYWNoIGNvbW1hbmRcbi1yCURvbid0IHJ1biB3aXRoIGVtcHR5IGlucHV0IChvdGhlcndpc2UgYWx3YXlzIHJ1biBjb21tYW5kIG9uY2UpXG4tcwlTaXplIGluIGJ5dGVzIHBlciBjb21tYW5kIGxpbmVcbi10CVRyYWNlLCBwcmludCBjb21tYW5kIGxpbmUgdG8gc3RkZXJyIgorCisjZGVmaW5lIEhFTFBfd2hvICJ1c2FnZTogd2hvXG5cblByaW50IGluZm9ybWF0aW9uIGFib3V0IGxvZ2dlZCBpbiB1c2Vycy4iCisKKyNkZWZpbmUgSEVMUF93YyAidXNhZ2U6IHdjIFstTGx3Y21dIFtGSUxFLi4uXVxuXG5Db3VudCBsaW5lcywgd29yZHMsIGFuZCBjaGFyYWN0ZXJzIGluIGlucHV0LlxuXG4tTAlTaG93IG1heCBsaW5lIGxlbmd0aFxuLWwJU2hvdyBsaW5lc1xuLXcJU2hvdyB3b3Jkc1xuLWMJU2hvdyBieXRlc1xuLW0JU2hvdyBjaGFyYWN0ZXJzXG5cbkJ5IGRlZmF1bHQgb3V0cHV0cyBsaW5lcywgd29yZHMsIGJ5dGVzLCBhbmQgZmlsZW5hbWUgZm9yIGVhY2hcbmFyZ3VtZW50IChvciBmcm9tIHN0ZGluIGlmIG5vbmUpLiBEaXNwbGF5cyBvbmx5IGVpdGhlciBieXRlc1xub3IgY2hhcmFjdGVycy4iCisKKyNkZWZpbmUgSEVMUF91dWVuY29kZSAidXNhZ2U6IHV1ZW5jb2RlIFstbV0gW0lORklMRV0gRU5DT0RFX0ZJTEVOQU1FXG5cblV1ZW5jb2RlIHN0ZGluIChvciBJTkZJTEUpIHRvIHN0ZG91dCwgd2l0aCBFTkNPREVfRklMRU5BTUUgaW4gdGhlIG91dHB1dC5cblxuLW0JQmFzZTY0IgorCisjZGVmaW5lIEhFTFBfdXVkZWNvZGUgInVzYWdlOiB1dWRlY29kZSBbLW8gT1VURklMRV0gW0lORklMRV1cblxuRGVjb2RlIGZpbGUgZnJvbSBzdGRpbiAob3IgSU5GSUxFKS5cblxuLW8JV3JpdGUgdG8gT1VURklMRSBpbnN0ZWFkIG9mIGZpbGVuYW1lIGluIGhlYWRlciIKKworI2RlZmluZSBIRUxQX3VubGluayAidXNhZ2U6IHVubGluayBGSUxFXG5cbkRlbGV0ZSBvbmUgZmlsZS4iCisKKyNkZWZpbmUgSEVMUF91bmlxICJ1c2FnZTogdW5pcSBbLWNkdWl6XSBbLXcgTUFYQ0hBUlNdIFstZiBGSUVMRFNdIFstcyBDSEFSXSBbSU5GSUxFIFtPVVRGSUxFXV1cblxuUmVwb3J0IG9yIGZpbHRlciBvdXQgcmVwZWF0ZWQgbGluZXMgaW4gYSBmaWxlXG5cbi1jCVNob3cgY291bnRzIGJlZm9yZSBlYWNoIGxpbmVcbi1kCVNob3cgb25seSBsaW5lcyB0aGF0IGFyZSByZXBlYXRlZFxuLXUJU2hvdyBvbmx5IGxpbmVzIHRoYXQgYXJlIHVuaXF1ZVxuLWkJSWdub3JlIGNhc2Ugd2hlbiBjb21wYXJpbmcgbGluZXNcbi16CUxpbmVzIGVuZCB3aXRoIFxcMCBub3QgXFxuXG4tdwlDb21wYXJlIG1heGltdW0gWCBjaGFycyBwZXIgbGluZVxuLWYJSWdub3JlIGZpcnN0IFggZmllbGRzXG4tcwlJZ25vcmUgZmlyc3QgWCBjaGFycyIKKworI2RlZmluZSBIRUxQX3VuYW1lICJ1c2FnZTogdW5hbWUgWy1hc25ydm1vXVxuXG5QcmludCBzeXN0ZW0gaW5mb3JtYXRpb24uXG5cbi1zCVN5c3RlbSBuYW1lXG4tbglOZXR3b3JrIChkb21haW4pIG5hbWVcbi1yCUtlcm5lbCBSZWxlYXNlIG51bWJlclxuLXYJS2VybmVsIFZlcnNpb25cbi1tCU1hY2hpbmUgKGhhcmR3YXJlKSBuYW1lXG4tYQlBbGwgb2YgdGhlIGFib3ZlIChpbiBvcmRlcilcblxuLW8JVXNlcnNwYWNlIHR5cGUiCisKKyNkZWZpbmUgSEVMUF9hcmNoICJ1c2FnZTogYXJjaFxuXG5QcmludCBtYWNoaW5lIChoYXJkd2FyZSkgbmFtZSwgc2FtZSBhcyB1bmFtZSAtbS4iCisKKyNkZWZpbmUgSEVMUF91bGltaXQgInVzYWdlOiB1bGltaXQgWy1QIFBJRF0gWy1TSFJhY2RlZmlsbW5wcXJzdHV2XSBbTElNSVRdXG5cblByaW50IG9yIHNldCByZXNvdXJjZSBsaW1pdHMgZm9yIHByb2Nlc3MgbnVtYmVyIFBJRC4gSWYgbm8gTElNSVQgc3BlY2lmaWVkXG4ob3IgcmVhZC1vbmx5IC1hcCBzZWxlY3RlZCkgZGlzcGxheSBjdXJyZW50IHZhbHVlIChzaXplcyBpbiBieXRlcykuXG5EZWZhdWx0IGlzIHVsaW1pdCAtUCAkUFBJRCAtU2ZcIiAoc2hvdyBzb2Z0IGZpbGVzaXplIG9mIHlvdXIgc2hlbGwpLlxuXG4tUCAgUElEIHRvIGFmZmVjdCAoZGVmYXVsdCAkUFBJRCkgIC1hICBTaG93IGFsbCBsaW1pdHNcbi1TICBTZXQvc2hvdyBzb2Z0IGxpbWl0ICAgICAgICAgICAgLUggIFNldC9zaG93IGhhcmQgKG1heGltdW0pIGxpbWl0XG5cbi1jICBDb3JlIGZpbGUgc2l6ZSAoYmxvY2tzKSAgICAgICAgLWQgIFByb2Nlc3MgZGF0YSBzZWdtZW50IChLaUIpXG4tZSAgTWF4IHNjaGVkdWxpbmcgcHJpb3JpdHkgICAgICAgIC1mICBGaWxlIHNpemUgKEtpQilcbi1pICBQZW5kaW5nIHNpZ25hbCBjb3VudCAgICAgICAgICAgLWwgIExvY2tlZCBtZW1vcnkgKEtpQilcbi1tICBSZXNpZGVudCBTZXQgU2l6ZSAoS2lCKSAgICAgICAgLW4gIE51bWJlciBvZiBvcGVuIGZpbGVzXG4tcCAgUGlwZSBidWZmZXIgKDUxMiBieXRlcykgICAgICAgIC1xICBQT1NJWCBtZXNzYWdlIHF1ZXVlc1xuLXIgIE1heCByZWFsdGltZSBwcmlvcml0eSAgICAgICAgICAtUiAgUmVhbHRpbWUgbGF0ZW5jeSAodXMpXG4tcyAgU3RhY2sgc2l6ZSAoS2lCKSAgICAgICAgICAgICAgIC10ICBUb3RhbCBDUFUgdGltZSAocylcbi11ICBNYXhpbXVtIHByb2Nlc3NlcyAodGhpcyBVSUQpICAgLXYgIFZpcnR1YWwgbWVtb3J5IHNpemUgKEtpQikiCisKKyNkZWZpbmUgSEVMUF90dHkgInVzYWdlOiB0dHkgWy1zXVxuXG5TaG93IGZpbGVuYW1lIG9mIHRlcm1pbmFsIGNvbm5lY3RlZCB0byBzdGRpbi4gSWYgbm9uZSBwcmludCBcIm5vdCBhIHR0eVwiXG5hbmQgZXhpdCB3aXRoIG5vbnplcm8gc3RhdHVzLlxuXG4tcwlTaWxlbnQsIGV4aXQgY29kZSBvbmx5IgorCisjZGVmaW5lIEhFTFBfdHNvcnQgInVzYWdlOiB0c29ydCBbRklMRV1cblxuVG9wb2xvZ2ljYWwgc29ydCBkZXBlbmRlbmN5IHJlc29sdmVyLlxuXG5SZWFkIHBhaXJzIG9mIGlucHV0IHN0cmluZ3MgaW5kaWNhdGluZyBiZWZvcmUvYWZ0ZXIgZGVwZW5kZW5jeSByZWxhdGlvbnNoaXBzXG5hbmQgZmluZCBhbiBvcmRlcmluZyB0aGF0IHJlc3BlY3RzIGFsbCBkZXBlbmRlbmNpZXMuIE9uIHN1Y2Nlc3Mgb3V0cHV0IGVhY2hcbnN0cmluZyBvbmNlIHRvIHN0ZG91dCwgb24gZmFpbHVyZSBwcmludCBlcnJvciBhbmQgb3V0cHV0IGN5Y2xlIHBhaXJzLiIKKworI2RlZmluZSBIRUxQX3RydWUgInVzYWdlOiB0cnVlXG5cblJldHVybiB6ZXJvLiIKKworI2RlZmluZSBIRUxQX3RvdWNoICJ1c2FnZTogdG91Y2ggWy1hbWNoXSBbLWQgREFURV0gWy10IFRJTUVdIFstciBGSUxFXSBGSUxFLi4uXG5cblVwZGF0ZSB0aGUgYWNjZXNzIGFuZCBtb2RpZmljYXRpb24gdGltZXMgb2YgZWFjaCBGSUxFIHRvIHRoZSBjdXJyZW50IHRpbWUuXG5cbi1hCUNoYW5nZSBhY2Nlc3MgdGltZVxuLW0JQ2hhbmdlIG1vZGlmaWNhdGlvbiB0aW1lXG4tYwlEb24ndCBjcmVhdGUgZmlsZVxuLWgJQ2hhbmdlIHN5bWxpbmtcbi1kCVNldCB0aW1lIHRvIERBVEUgKGluIFlZWVktTU0tRERUaGg6bW06U1NbLmZyYWNdW3R6XSBmb3JtYXQpXG4tdAlTZXQgdGltZSB0byBUSU1FIChpbiBbW0NDXVlZXU1NRERoaG1tWy5zc11bZnJhY10gZm9ybWF0KVxuLXIJU2V0IHRpbWUgc2FtZSBhcyByZWZlcmVuY2UgRklMRSIKKworI2RlZmluZSBIRUxQX3RpbWUgInVzYWdlOiB0aW1lIFstcHZdIENPTU1BTkQuLi5cblxuUnVuIGNvbW1hbmQgbGluZSBhbmQgcmVwb3J0IHJlYWwsIHVzZXIsIGFuZCBzeXN0ZW0gdGltZSBlbGFwc2VkIGluIHNlY29uZHMuXG4ocmVhbCA9IGNsb2NrIG9uIHRoZSB3YWxsLCB1c2VyID0gY3B1IHVzZWQgYnkgY29tbWFuZCdzIGNvZGUsXG5zeXN0ZW0gPSBjcHUgdXNlZCBieSBPUyBvbiBiZWhhbGYgb2YgY29tbWFuZC4pXG5cbi1wCVBPU0lYIGZvcm1hdCBvdXRwdXRcbi12CVZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF90ZXN0ICJ1c2FnZTogdGVzdCBbLWJjZGVmZ2hrTHByU3N1d3ggUEFUSF0gWy1ueiBTVFJJTkddIFstdCBGRF0gW1ggPz8gWV1cblxuUmV0dXJuIHRydWUgb3IgZmFsc2UgYnkgcGVyZm9ybWluZyB0ZXN0cy4gTm8gYXJndW1lbnRzIGlzIGZhbHNlLCBvbmUgYXJndW1lbnRcbmlzIHRydWUgaWYgbm90IGVtcHR5IHN0cmluZy5cblxuLS0tIFRlc3RzIHdpdGggYSBzaW5nbGUgYXJndW1lbnQgKGFmdGVyIHRoZSBvcHRpb24pOlxuUEFUSCBpcy9oYXM6XG4gIC1iICBibG9jayBkZXZpY2UgICAtZiAgcmVndWxhciBmaWxlICAgLXAgIGZpZm8gICAgICAgICAgIC11ICBzZXR1aWQgYml0XG4gIC1jICBjaGFyIGRldmljZSAgICAtZyAgc2V0Z2lkICAgICAgICAgLXIgIHJlYWRhYmxlICAgICAgIC13ICB3cml0YWJsZVxuICAtZCAgZGlyZWN0b3J5ICAgICAgLWggIHN5bWxpbmsgICAgICAgIC1TICBzb2NrZXQgICAgICAgICAteCAgZXhlY3V0YWJsZVxuICAtZSAgZXhpc3RzICAgICAgICAgLUwgIHN5bWxpbmsgICAgICAgIC1zICBub256ZXJvIHNpemUgICAtayAgc3RpY2t5IGJpdFxuU1RSSU5HIGlzOlxuICAtbiAgbm9uemVybyBzaXplICAgLXogIHplcm8gc2l6ZVxuRkQgKGludGVnZXIgZmlsZSBkZXNjcmlwdG9yKSBpczpcbiAgLXQgIGEgVFRZXG5cbi0tLSBUZXN0cyB3aXRoIG9uZSBhcmd1bWVudCBvbiBlYWNoIHNpZGUgb2YgYW4gb3BlcmF0b3I6XG5Ud28gc3RyaW5nczpcbiAgPSAgYXJlIGlkZW50aWNhbCAgICE9ICBkaWZmZXIgICAgICAgICA9fiAgc3RyaW5nIG1hdGNoZXMgcmVnZXhcbkFscGhhYmV0aWNhbCBzb3J0OlxuICA8ICBmaXJzdCBpcyBsb3dlciAgPiAgIGZpcnN0IGhpZ2hlclxuVHdvIGludGVnZXJzOlxuICAtZXEgIGVxdWFsICAgICAgICAgLWd0ICBmaXJzdCA+IHNlY29uZCAgICAtbHQgIGZpcnN0IDwgc2Vjb25kXG4gIC1uZSAgbm90IGVxdWFsICAgICAtZ2UgIGZpcnN0ID49IHNlY29uZCAgIC1sZSAgZmlyc3QgPD0gc2Vjb25kXG5cbi0tLSBNb2RpZnkgb3IgY29tYmluZSB0ZXN0czpcbiAgISBFWFBSICAgICBub3QgKHN3YXAgdHJ1ZS9mYWxzZSkgICBFWFBSIC1hIEVYUFIgICAgYW5kIChhcmUgYm90aCB0cnVlKVxuICAoIEVYUFIgKSAgIGV2YWx1YXRlIHRoaXMgZmlyc3QgICAgIEVYUFIgLW8gRVhQUiAgICBvciAoaXMgZWl0aGVyIHRydWUpIgorCisjZGVmaW5lIEhFTFBfdGVlICJ1c2FnZTogdGVlIFstYWldIFtGSUxFLi4uXVxuXG5Db3B5IHN0ZGluIHRvIGVhY2ggbGlzdGVkIGZpbGUsIGFuZCBhbHNvIHRvIHN0ZG91dC5cbkZpbGVuYW1lIFwiLVwiIGlzIGEgc3lub255bSBmb3Igc3Rkb3V0LlxuXG4tYQlBcHBlbmQgdG8gZmlsZXNcbi1pCUlnbm9yZSBTSUdJTlQiCisKKyNkZWZpbmUgSEVMUF90YXIgInVzYWdlOiB0YXIgWy1jeHRdIFstZnZvaG1qa09TXSBbLVhUQ2YgTkFNRV0gWy0tc2VsaW51eF0gW0ZJTEUuLi5dXG5cbkNyZWF0ZSwgZXh0cmFjdCwgb3IgbGlzdCBmaWxlcyBpbiBhIC50YXIgKG9yIGNvbXByZXNzZWQgdD96KSBmaWxlLlxuXG5PcHRpb25zOlxuYyAgQ3JlYXRlICAgICAgICAgICAgICAgIHggIEV4dHJhY3QgICAgICAgICAgICAgICB0ICBUZXN0IChsaXN0KVxuZiAgdGFyIEZJTEUgKGRlZmF1bHQgLSkgIEMgIENoYW5nZSB0byBESVIgZmlyc3QgICB2ICBWZXJib3NlIGRpc3BsYXlcbkogIHh6IGNvbXByZXNzaW9uICAgICAgICBqICBiemlwMiBjb21wcmVzc2lvbiAgICAgeiAgZ3ppcCBjb21wcmVzc2lvblxubyAgSWdub3JlIG93bmVyICAgICAgICAgIGggIEZvbGxvdyBzeW1saW5rcyAgICAgICBtICBJZ25vcmUgbXRpbWVcbk8gIEV4dHJhY3QgdG8gc3Rkb3V0ICAgICBYICBleGNsdWRlIG5hbWVzIGluIEZJTEUgVCAgaW5jbHVkZSBuYW1lcyBpbiBGSUxFXG5zICBTb3J0IGRpcnMgKC0tc29ydClcblxuLS1leGNsdWRlICAgICAgICBGSUxFTkFNRSB0byBleGNsdWRlICAtLWZ1bGwtdGltZSAgICAgICAgIFNob3cgc2Vjb25kcyB3aXRoIC10dlxuLS1tb2RlIE1PREUgICAgICBBZGp1c3QgcGVybWlzc2lvbnMgICAtLW93bmVyIE5BTUVbOlVJRF0gIFNldCBmaWxlIG93bmVyc2hpcFxuLS1tdGltZSBUSU1FICAgICBPdmVycmlkZSB0aW1lc3RhbXBzICAtLWdyb3VwIE5BTUVbOkdJRF0gIFNldCBmaWxlIGdyb3VwXG4tLXNwYXJzZSAgICAgICAgIFJlY29yZCBzcGFyc2UgZmlsZXMgIC0tc2VsaW51eCAgICAgICAgICAgU2F2ZS9yZXN0b3JlIGxhYmVsc1xuLS1yZXN0cmljdCAgICAgICBBbGwgdW5kZXIgb25lIGRpciAgICAtLW5vLXJlY3Vyc2lvbiAgICAgIFNraXAgZGlyIGNvbnRlbnRzXG4tLW51bWVyaWMtb3duZXIgIFVzZSBudW1lcmljIHVpZC9naWQsIG5vdCB1c2VyL2dyb3VwIG5hbWVzXG4tLW51bGwgICAgICAgICAgIEZpbGVuYW1lcyBpbiAtVCBGSUxFIGFyZSBudWxsLXNlcGFyYXRlZCwgbm90IG5ld2xpbmVcbi0tc3RyaXAtY29tcG9uZW50cyBOVU0gIElnbm9yZSBmaXJzdCBOVU0gZGlyZWN0b3J5IGNvbXBvbmVudHMgd2hlbiBleHRyYWN0aW5nXG4tLXhmb3JtPVNFRCAgICAgIE1vZGlmeSBmaWxlbmFtZXMgdmlhIFNFRCBleHByZXNzaW9uIChhbGEgcy9maW5kL3JlcGxhY2UvZylcbi1JIFBST0cgICAgICAgICAgRmlsdGVyIHRocm91Z2ggUFJPRyB0byBjb21wcmVzcyBvciBQUk9HIC1kIHRvIGRlY29tcHJlc3NcblxuRmlsZW5hbWUgZmlsdGVyIHR5cGVzLiBDcmVhdGUgY29tbWFuZCBsaW5lIGFyZ3MgYXJlbid0IGZpbHRlcmVkLCBleHRyYWN0XG5kZWZhdWx0cyB0byAtLWFuY2hvcmVkLCAtLWV4Y2x1ZGUgZGVmYXVsdHMgdG8gLS13aWxkY2FyZHMtbWF0Y2gtc2xhc2gsXG51c2Ugbm8tIHByZWZpeCB0byBkaXNhYmxlOlxuXG4tLWFuY2hvcmVkICBNYXRjaCBuYW1lIG5vdCBwYXRoICAgICAgIC0taWdub3JlLWNhc2UgICAgICAgQ2FzZSBpbnNlbnNpdGl2ZVxuLS13aWxkY2FyZHMgRXhwYW5kICo/W10gbGlrZSBzaGVsbCAgICAtLXdpbGRjYXJkcy1tYXRjaC1zbGFzaCIKKworI2RlZmluZSBIRUxQX3RhaWwgInVzYWdlOiB0YWlsIFstbnxjIE5VTUJFUl0gWy1mfEZdIFstcyBTRUNPTkRTXSBbRklMRS4uLl1cblxuQ29weSBsYXN0IGxpbmVzIGZyb20gZmlsZXMgdG8gc3Rkb3V0LiBJZiBubyBmaWxlcyBsaXN0ZWQsIGNvcHkgZnJvbVxuc3RkaW4uIEZpbGVuYW1lIFwiLVwiIGlzIGEgc3lub255bSBmb3Igc3RkaW4uXG5cbi1uCU91dHB1dCB0aGUgbGFzdCBOVU1CRVIgbGluZXMgKGRlZmF1bHQgMTApLCArWCBjb3VudHMgZnJvbSBzdGFydFxuLWMJT3V0cHV0IHRoZSBsYXN0IE5VTUJFUiBieXRlcywgK05VTUJFUiBjb3VudHMgZnJvbSBzdGFydFxuLWYJRm9sbG93IEZJTEUocykgYnkgZGVzY3JpcHRvciwgd2FpdGluZyBmb3IgbW9yZSBkYXRhIHRvIGJlIGFwcGVuZGVkXG4tRglGb2xsb3cgRklMRShzKSBieSBmaWxlbmFtZSwgd2FpdGluZyBmb3IgbW9yZSBkYXRhLCBhbmQgcmV0cnlpbmdcbi1zCVVzZWQgd2l0aCAtRiwgc2xlZXAgU0VDT05EUyBiZXR3ZWVuIHJldHJpZXMgKGRlZmF1bHQgMSkiCisKKyNkZWZpbmUgSEVMUF9zdHJpbmdzICJ1c2FnZTogc3RyaW5ncyBbLWZvXSBbLXQgb3hkXSBbLW4gTEVOXSBbRklMRS4uLl1cblxuRGlzcGxheSBwcmludGFibGUgc3RyaW5ncyBpbiBhIGJpbmFyeSBmaWxlXG5cbi1mCVNob3cgZmlsZW5hbWVcbi1uCUF0IGxlYXN0IExFTiBjaGFyYWN0ZXJzIGZvcm0gYSBzdHJpbmcgKGRlZmF1bHQgNClcbi1vCVNob3cgb2Zmc2V0IChhbGEgLXQgZClcbi10CVNob3cgb2Zmc2V0IHR5cGUgKG89b2N0YWwsIGQ9ZGVjaW1hbCwgeD1oZXhhZGVjaW1hbCkiCisKKyNkZWZpbmUgSEVMUF9zcGxpdCAidXNhZ2U6IHNwbGl0IFstYSBTVUZGSVhfTEVOXSBbLWIgQllURVNdIFstbCBMSU5FU10gWy1uIFBBUlRTXSBbSU5QVVQgW09VVFBVVF1dXG5cbkNvcHkgSU5QVVQgKG9yIHN0ZGluKSBkYXRhIHRvIGEgc2VyaWVzIG9mIE9VVFBVVCAob3IgXCJ4XCIpIGZpbGVzIHdpdGhcbmFscGhhYmV0aWNhbGx5IGluY3JlYXNpbmcgc3VmZml4IChhYSwgYWIsIGFjLi4uIGF6LCBiYSwgYmIuLi4pLlxuXG4tYQlTdWZmaXggbGVuZ3RoIChkZWZhdWx0IDIpXG4tYglCWVRFUy9maWxlICgxMCwgMTBrLCAxMG0sIDEwZy4uLilcbi1sCUxJTkVTL2ZpbGUgKGRlZmF1bHQgMTAwMClcbi1uCVBBUlRTIG1hbnkgZXF1YWwgbGVuZ3RoIGZpbGVzIgorCisjZGVmaW5lIEhFTFBfc29ydCAidXNhZ2U6IHNvcnQgWy1DTVZiY2RmZ2lucnN1eHpdIFtGSUxFLi4uXSBbLWsjWywjW3hdXSBbLXQgWF1dIFstbyBGSUxFXVxuXG5Tb3J0IGFsbCBsaW5lcyBvZiB0ZXh0IGZyb20gaW5wdXQgZmlsZXMgKG9yIHN0ZGluKSB0byBzdGRvdXQuXG4tZwlHZW5lcmFsIG51bWVyaWMgc29ydCAoZG91YmxlIHByZWNpc2lvbiB3aXRoIG5hbiBhbmQgaW5mKVxuLW4JTnVtZXJpYyBvcmRlciAoaW5zdGVhZCBvZiBhbHBoYWJldGljYWwpXG4tcglSZXZlcnNlXG4tdQlVbmlxdWUgbGluZXMgb25seVxuXG4tYglJZ25vcmUgbGVhZGluZyBibGFua3MgKG9yIHRyYWlsaW5nIGJsYW5rcyBpbiBzZWNvbmQgcGFydCBvZiBrZXkpXG4tQwlDaGVjayB3aGV0aGVyIGlucHV0IGlzIHNvcnRlZFxuLWMJV2FybiBpZiBpbnB1dCBpcyB1bnNvcnRlZFxuLWQJRGljdGlvbmFyeSBvcmRlciAodXNlIGFscGhhbnVtZXJpYyBhbmQgd2hpdGVzcGFjZSBjaGFycyBvbmx5KVxuLWYJRm9yY2UgdXBwZXJjYXNlIChjYXNlIGluc2Vuc2l0aXZlIHNvcnQpXG4taQlJZ25vcmUgbm9ucHJpbnRpbmcgY2hhcmFjdGVyc1xuLWsJU29ydCBieSBcImtleVwiIChzZWUgYmVsb3cpXG4tTQlNb250aCBzb3J0IChqYW4sIGZlYiwgZXRjKVxuLW8JT3V0cHV0IHRvIEZJTEUgaW5zdGVhZCBvZiBzdGRvdXRcbi1zCVNraXAgZmFsbGJhY2sgc29ydCAob25seSBzb3J0IHdpdGgga2V5cylcbi10CVVzZSBhIGtleSBzZXBhcmF0b3Igb3RoZXIgdGhhbiB3aGl0ZXNwYWNlXG4teAlIZXhhZGVjaW1hbCBudW1lcmljYWwgc29ydFxuLVYJVmVyc2lvbiBudW1iZXJzIChuYW1lLTEuMjM0LXJjNi41Yi50Z3opXG4teglaZXJvIChudWxsKSB0ZXJtaW5hdGVkIGxpbmVzXG5cblNvcnRpbmcgYnkga2V5IGxvb2tzIGF0IGEgc3Vic2V0IG9mIHRoZSB3b3JkcyBvbiBlYWNoIGxpbmUuIC1rMiB1c2VzIHRoZVxuc2Vjb25kIHdvcmQgdG8gdGhlIGVuZCBvZiB0aGUgbGluZSwgLWsyLDIgbG9va3MgYXQgb25seSB0aGUgc2Vjb25kIHdvcmQsXG4tazIsNCBsb29rcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUgc2Vjb25kIHRvIHRoZSBlbmQgb2YgdGhlIGZvdXJ0aCB3b3JkLlxuLWsyLjQsNSBzdGFydHMgZnJvbSB0aGUgZm91cnRoIGNoYXJhY3RlciBvZiB0aGUgc2Vjb25kIHdvcmQsIHRvIHRoZSBlbmRcbm9mIHRoZSBmaWZ0aCB3b3JkLiBOZWdhdGl2ZSB2YWx1ZXMgY291bnQgZnJvbSB0aGUgZW5kLiBTcGVjaWZ5aW5nIG11bHRpcGxlXG5rZXlzIHVzZXMgdGhlIGxhdGVyIGtleXMgYXMgdGllIGJyZWFrZXJzLCBpbiBvcmRlci4gQSB0eXBlIHNwZWNpZmllclxuYXBwZW5kZWQgdG8gYSBzb3J0IGtleSAoc3VjaCBhcyAtMiwybikgYXBwbGllcyBvbmx5IHRvIHNvcnRpbmcgdGhhdCBrZXkuIgorCisjZGVmaW5lIEhFTFBfc2xlZXAgInVzYWdlOiBzbGVlcCBEVVJBVElPTi4uLlxuXG5XYWl0IGJlZm9yZSBleGl0aW5nLlxuXG5EVVJBVElPTiBjYW4gYmUgYSBkZWNpbWFsIGZyYWN0aW9uLiBBbiBvcHRpb25hbCBzdWZmaXggY2FuIGJlIFwibVwiXG4obWludXRlcyksIFwiaFwiIChob3VycyksIFwiZFwiIChkYXlzKSwgb3IgXCJzXCIgKHNlY29uZHMsIHRoZSBkZWZhdWx0KS4iCisKKyNkZWZpbmUgSEVMUF9zZWQgInVzYWdlOiBzZWQgWy1pbnJzekVdIFstZSBTQ1JJUFRdLi4ufFNDUklQVCBbLWYgU0NSSVBUX0ZJTEVdLi4uIFtGSUxFLi4uXVxuXG5TdHJlYW0gZWRpdG9yLiBBcHBseSBlZGl0aW5nIFNDUklQVHMgdG8gbGluZXMgb2YgaW5wdXQuXG5cbi1lCUFkZCBTQ1JJUFQgdG8gbGlzdFxuLWYJQWRkIGNvbnRlbnRzIG9mIFNDUklQVF9GSUxFIHRvIGxpc3Rcbi1pCUVkaXQgZWFjaCBmaWxlIGluIHBsYWNlICgtaUVYVCBrZWVwcyBiYWNrdXAgZmlsZSB3aXRoIGV4dGVuc2lvbiBFWFQpXG4tbglObyBkZWZhdWx0IG91dHB1dCAodXNlIHRoZSBwIGNvbW1hbmQgdG8gb3V0cHV0IG1hdGNoZWQgbGluZXMpXG4tcglVc2UgZXh0ZW5kZWQgcmVndWxhciBleHByZXNzaW9uIHN5bnRheFxuLUUJUE9TSVggYWxpYXMgZm9yIC1yXG4tcwlUcmVhdCBpbnB1dCBmaWxlcyBzZXBhcmF0ZWx5IChpbXBsaWVkIGJ5IC1pKVxuLXoJVXNlIFxcMCByYXRoZXIgdGhhbiBcXG4gYXMgaW5wdXQgbGluZSBzZXBhcmF0b3JcblxuQSBTQ1JJUFQgaXMgb25lIG9yIG1vcmUgQ09NTUFORHMgc2VwYXJhdGVkIGJ5IG5ld2xpbmVzIG9yIHNlbWljb2xvbnMuXG5BbGwgLWUgU0NSSVBUcyBhbmQgLWYgU0NSSVBUX0ZJTEUgY29udGVudHMgYXJlIGNvbWJpbmVkIGluIG9yZGVyIGFzIGlmXG5zZXBhcmF0ZWQgYnkgbmV3bGluZXMuIElmIG5vIC1lIG9yIC1mIHRoZW4gZmlyc3QgYXJndW1lbnQgaXMgdGhlIFNDUklQVC5cblxuQ09NTUFORHMgYXBwbHkgdG8gZXZlcnkgbGluZSB1bmxlc3MgcHJlZml4ZWQgd2l0aCBhbiBBRERSRVNTIG9mIHRoZSBmb3JtOlxuXG4gIFtBRERSRVNTWyxBRERSRVNTXV1bIV1DT01NQU5EXG5cbkFERFJFU1MgaXMgYSBsaW5lIG51bWJlciAoc3RhcnRpbmcgYXQgMSksIGEgL1JFR1VMQVIgRVhQUkVTU0lPTi8sIG9yICQgZm9yXG5sYXN0IGxpbmUgKC1zIG9yIC1pIG1ha2VzIGl0IGxhc3QgbGluZSBvZiBlYWNoIGZpbGUpLiBPbmUgYWRkcmVzcyBtYXRjaGVzIG9uZVxubGluZSwgQUREUkVTUyxBRERSRVNTIG1hdGNoZXMgZnJvbSBmaXJzdCB0byBzZWNvbmQgaW5jbHVzaXZlLiBUd28gcmVnZXhlcyBjYW5cbm1hdGNoIG11bHRpcGxlIHJhbmdlcy4gQUREUkVTUywrTiBlbmRzIE4gbGluZXMgbGF0ZXIuICEgaW52ZXJ0cyB0aGUgbWF0Y2guXG5cblJFR1VMQVIgRVhQUkVTU0lPTlMgc3RhcnQgYW5kIGVuZCB3aXRoIHRoZSBzYW1lIGNoYXJhY3RlciAoYW55dGhpbmcgYnV0XG5iYWNrc2xhc2ggb3IgbmV3bGluZSkuIFRvIHVzZSB0aGUgZGVsaW1pdGVyIGluIHRoZSByZWdleCBlc2NhcGUgaXQgd2l0aCBhXG5iYWNrc2xhc2gsIGFuZCBwcmludGYgZXNjYXBlcyAoXFxhYmNlZm5ydHYgYW5kIG9jdGFsLCBoZXgsIGFuZCB1bmljb2RlKSB3b3JrLlxuQW4gZW1wdHkgcmVnZXggcmVwZWF0cyB0aGUgcHJldmlvdXMgb25lLiBBRERSRVNTIHJlZ2V4ZXMgcmVxdWlyZSBhbnlcbmZpcnN0IGRlbGltaXRlciBleGNlcHQgLyB0byBiZSBcXGVzY2FwZWQgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSBDT01NQU5Ecy5cblxuU2VkIHJlYWRzIGVhY2ggbGluZSBvZiBpbnB1dCwgcHJvY2Vzc2VzIGl0LCBhbmQgd3JpdGVzIGl0IG91dCBvciBkaXNjYXJkcyBpdFxuYmVmb3JlIHJlYWRpbmcgdGhlIG5leHQuIFNlZCBjYW4gcmVtZW1iZXIgb25lIGFkZGl0aW9uYWwgbGluZSBpbiBhIHNlcGFyYXRlXG5idWZmZXIgKHRoZSBoLCBILCBnLCBHLCBhbmQgeCBjb21tYW5kcyksIGFuZCBjYW4gcmVhZCB0aGUgbmV4dCBsaW5lIG9mIGlucHV0XG5lYXJseSAodGhlIG4gYW5kIE4gY29tbWFuZHMpLCBidXQgb3RoZXJ3aXNlIG9wZXJhdGVzIG9uIGluZGl2aWR1YWwgbGluZXMuXG5cbkVhY2ggQ09NTUFORCBzdGFydHMgd2l0aCBhIHNpbmdsZSBjaGFyYWN0ZXIuIENvbW1hbmRzIHdpdGggbm8gYXJndW1lbnRzIGFyZTpcblxuICAhICBSdW4gdGhpcyBjb21tYW5kIHdoZW4gdGhlIEFERFJFU1MgX2RpZG4ndF8gbWF0Y2guXG4gIHsgIFN0YXJ0IG5ldyBjb21tYW5kIGJsb2NrLCBjb250aW51aW5nIHVudGlsIGEgY29ycmVzcG9uZGluZyBcIn1cIi5cbiAgICAgQ29tbWFuZCBibG9ja3MgbmVzdCBhbmQgY2FuIGhhdmUgQUREUkVTU2VzIGFwcGx5aW5nIHRvIHRoZSB3aG9sZSBibG9jay5cbiAgfSAgRW5kIGNvbW1hbmQgYmxvY2sgKHRoaXMgQ09NTUFORCBjYW5ub3QgaGF2ZSBhbiBhZGRyZXNzKVxuICBkICBEZWxldGUgdGhpcyBsaW5lIGFuZCBtb3ZlIG9uIHRvIHRoZSBuZXh0IG9uZVxuICAgICAoaWdub3JlcyByZW1haW5pbmcgQ09NTUFORHMpXG4gIEQgIERlbGV0ZSBvbmUgbGluZSBvZiBpbnB1dCBhbmQgcmVzdGFydCBjb21tYW5kIFNDUklQVCAoc2FtZSBhcyBcImRcIlxuICAgICB1bmxlc3MgeW91J3ZlIGdsdWVkIGxpbmVzIHRvZ2V0aGVyIHdpdGggXCJOXCIgb3Igc2ltaWxhcilcbiAgZyAgR2V0IHJlbWVtYmVyZWQgbGluZSAob3ZlcndyaXRpbmcgY3VycmVudCBsaW5lKVxuICBHICBHZXQgcmVtZW1iZXJlZCBsaW5lIChhcHBlbmRpbmcgdG8gY3VycmVudCBsaW5lKVxuICBoICBSZW1lbWJlciB0aGlzIGxpbmUgKG92ZXJ3cml0aW5nIHJlbWVtYmVyZWQgbGluZSlcbiAgSCAgUmVtZW1iZXIgdGhpcyBsaW5lIChhcHBlbmRpbmcgdG8gcmVtZW1iZXJlZCBsaW5lLCBpZiBhbnkpXG4gIGwgIFByaW50IGxpbmUgZXNjYXBpbmcgXFxhYmZydHZuLCBvY3RhbCBlc2NhcGUgb3RoZXIgbm9ucHJpbnRuZyBjaGFycyxcbiAgICAgd3JhcCBsaW5lcyB0byB0ZXJtaW5hbCB3aWR0aCB3aXRoIFxcLCBhcHBlbmQgJCB0byBlbmQgb2YgbGluZS5cbiAgbiAgUHJpbnQgZGVmYXVsdCBvdXRwdXQgYW5kIHJlYWQgbmV4dCBsaW5lIG92ZXIgY3VycmVudCBsaW5lIChxdWl0IGF0IEVPRilcbiAgTiAgQXBwZW5kIFxcbiBhbmQgbmV4dCBsaW5lIG9mIGlucHV0IHRvIHRoaXMgbGluZS4gUXVpdCBhdCBFT0Ygd2l0aG91dFxuICAgICBkZWZhdWx0IG91dHB1dC4gQWR2YW5jZXMgbGluZSBjb3VudGVyIGZvciBBRERSRVNTIGFuZCBcIj1cIi5cbiAgcCAgUHJpbnQgdGhpcyBsaW5lXG4gIFAgIFByaW50IHRoaXMgbGluZSB1cCB0byBmaXJzdCBuZXdsaW5lIChmcm9tIFwiTlwiKVxuICBxICBRdWl0IChwcmludCBkZWZhdWx0IG91dHB1dCwgbm8gbW9yZSBjb21tYW5kcyBwcm9jZXNzZWQgb3IgbGluZXMgcmVhZClcbiAgeCAgRXhjaGFuZ2UgdGhpcyBsaW5lIHdpdGggcmVtZW1iZXJlZCBsaW5lIChvdmVyd3JpdGUgaW4gYm90aCBkaXJlY3Rpb25zKVxuICA9ICBQcmludCB0aGUgY3VycmVudCBsaW5lIG51bWJlciAocGx1cyBuZXdsaW5lKVxuICAjICBDb21tZW50LCBpZ25vcmVzIHJlc3Qgb2YgdGhpcyBsaW5lIG9mIFNDUklQVCAodW50aWwgbmV3bGluZSlcblxuQ29tbWFuZHMgdGhhdCB0YWtlIGFuIGFyZ3VtZW50OlxuXG4gIDogTEFCRUwgICAgVGFyZ2V0IGZvciBqdW1wIGNvbW1hbmRzXG4gIGEgVEVYVCAgICAgQXBwZW5kIHRleHQgdG8gb3V0cHV0IGJlZm9yZSByZWFkaW5nIG5leHQgbGluZVxuICBiIExBQkVMICAgIEJyYW5jaCwganVtcHMgdG8gOkxBQkVMICh3aXRoIG5vIExBQkVMIHRvIGVuZCBvZiBTQ1JJUFQpXG4gIGMgVEVYVCAgICAgRGVsZXRlIG1hdGNoaW5nIEFERFJFU1MgcmFuZ2UgYW5kIG91dHB1dCBURVhUIGluc3RlYWRcbiAgaSBURVhUICAgICBJbnNlcnQgdGV4dCAob3V0cHV0IGltbWVkaWF0ZWx5KVxuICByIEZJTEUgICAgIEFwcGVuZCBjb250ZW50cyBvZiBGSUxFIHRvIG91dHB1dCBiZWZvcmUgcmVhZGluZyBuZXh0IGxpbmUuXG4gIHMvUy9SL0YgICAgU2VhcmNoIGZvciByZWdleCBTIHJlcGxhY2UgbWF0Y2ggd2l0aCBSIHVzaW5nIGZsYWdzIEYuIERlbGltaXRlclxuICAgICAgICAgICAgIGlzIGFueXRoaW5nIGJ1dCBcXG4gb3IgXFwsIGVzY2FwZSB3aXRoIFxcIHRvIHVzZSBpbiBTIG9yIFIuIFByaW50ZlxuICAgICAgICAgICAgIGVzY2FwZXMgd29yay4gVW5lc2NhcGVkICYgaW4gUiBiZWNvbWVzIGZ1bGwgbWF0Y2hlZCB0ZXh0LCBcXDFcbiAgICAgICAgICAgICB0aHJvdWdoIFxcOSA9IHBhcmVudGhldGljYWwgc3ViZXhwcmVzc2lvbiBmcm9tIFMuIFxcIGF0IGVuZCBvZlxuICAgICAgICAgICAgIGxpbmUgYXBwZW5kcyBuZXh0IGxpbmUgb2YgU0NSSVBULiBUaGUgZmxhZ3MgaW4gRiBhcmU6XG4gICAgICAgICAgICAgWzAtOV0gICAgQSBudW1iZXIgTiwgc3Vic3RpdHV0ZSBvbmx5IE50aCBtYXRjaFxuICAgICAgICAgICAgIGcgICAgICAgIEdsb2JhbCwgc3Vic3RpdHV0ZSBhbGwgbWF0Y2hlc1xuICAgICAgICAgICAgIGkvSSAgICAgIElnbm9yZSBjYXNlIHdoZW4gbWF0Y2hpbmdcbiAgICAgICAgICAgICBwICAgICAgICBQcmludCByZXN1bHRpbmcgbGluZSB3aGVuIG1hdGNoIGZvdW5kIGFuZCByZXBsYWNlZFxuICAgICAgICAgICAgIHcgW2ZpbGVdIFdyaXRlIChhcHBlbmQpIGxpbmUgdG8gZmlsZSB3aGVuIG1hdGNoIHJlcGxhY2VkXG4gIHQgTEFCRUwgICAgVGVzdCwganVtcCBpZiBzLy8vIGNvbW1hbmQgbWF0Y2hlZCB0aGlzIGxpbmUgc2luY2UgbGFzdCB0ZXN0XG4gIFQgTEFCRUwgICAgVGVzdCBmYWxzZSwganVtcCB0byA6TEFCRUwgb25seSBpZiBubyBzLy8vIGZvdW5kIGEgbWF0Y2hcbiAgdyBGSUxFICAgICBXcml0ZSAoYXBwZW5kKSBsaW5lIHRvIGZpbGVcbiAgeS9vbGQvbmV3LyBDaGFuZ2UgZWFjaCBjaGFyYWN0ZXIgaW4gJ29sZCcgdG8gY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJcbiAgICAgICAgICAgICBpbiAnbmV3JyAod2l0aCBzdGFuZGFyZCBiYWNrc2xhc2ggZXNjYXBlcywgZGVsaW1pdGVyIGNhbiBiZVxuICAgICAgICAgICAgIGFueSByZXBlYXRlZCBjaGFyYWN0ZXIgZXhjZXB0IFxcIG9yIFxcbilcblxuVGhlIFRFWFQgYXJndW1lbnRzICh0byBhIGMgaSkgbWF5IGVuZCB3aXRoIGFuIHVuZXNjYXBlZCBcIlxcXCIgdG8gYXBwZW5kXG50aGUgbmV4dCBsaW5lIChsZWFkaW5nIHdoaXRlc3BhY2UgaXMgbm90IHNraXBwZWQpLCBhbmQgdHJlYXQgXCI7XCIgYXMgYVxubGl0ZXJhbCBjaGFyYWN0ZXIgKHVzZSBcIlxcO1wiIGluc3RlYWQpLiIKKworI2RlZmluZSBIRUxQX3JtZGlyICJ1c2FnZTogcm1kaXIgWy1wXSBbRElSLi4uXVxuXG5SZW1vdmUgb25lIG9yIG1vcmUgZGlyZWN0b3JpZXMuXG5cbi1wCVJlbW92ZSBwYXRoXG4tLWlnbm9yZS1mYWlsLW9uLW5vbi1lbXB0eQlJZ25vcmUgZmFpbHVyZXMgY2F1c2VkIGJ5IG5vbi1lbXB0eSBkaXJlY3RvcmllcyIKKworI2RlZmluZSBIRUxQX3JtICJ1c2FnZTogcm0gWy1maVJydl0gRklMRS4uLlxuXG5SZW1vdmUgZWFjaCBhcmd1bWVudCBmcm9tIHRoZSBmaWxlc3lzdGVtLlxuXG4tZglGb3JjZTogcmVtb3ZlIHdpdGhvdXQgY29uZmlybWF0aW9uLCBubyBlcnJvciBpZiBpdCBkb2Vzbid0IGV4aXN0XG4taQlJbnRlcmFjdGl2ZTogcHJvbXB0IGZvciBjb25maXJtYXRpb25cbi1yUglSZWN1cnNpdmU6IHJlbW92ZSBkaXJlY3RvcnkgY29udGVudHNcbi12CVZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9yZW5pY2UgInVzYWdlOiByZW5pY2UgWy1ncHVdIC1uIElOQ1JFTUVOVCBJRC4uLlxuXG4tZwlHcm91cCBpZHNcbi1wCVByb2Nlc3MgaWRzIChkZWZhdWx0KVxuLXUJVXNlciBpZHMiCisKKyNkZWZpbmUgSEVMUF9wd2QgInVzYWdlOiBwd2QgWy1MfC1QXVxuXG5QcmludCB3b3JraW5nIChjdXJyZW50KSBkaXJlY3RvcnkuXG5cbi1MCVVzZSBzaGVsbCdzIHBhdGggZnJvbSAkUFdEICh3aGVuIGFwcGxpY2FibGUpXG4tUAlQcmludCBjYW5vbmljYWwgYWJzb2x1dGUgcGF0aCIKKworI2RlZmluZSBIRUxQX3BraWxsICJ1c2FnZTogcGtpbGwgWy1mbm92eF0gWy1TSUdOQUx8LWwgU0lHTkFMXSBbUEFUVEVSTl0gWy1HIEdJRCxdIFstZyBQR1JQLF0gWy1QIFBQSUQsXSBbLXMgU0lELF0gWy10IFRFUk0sXSBbLVUgVUlELF0gWy11IEVVSUQsXVxuXG4tbAlTZW5kIFNJR05BTCAoZGVmYXVsdCBTSUdURVJNKVxuLVYJVmVyYm9zZVxuLWYJQ2hlY2sgZnVsbCBjb21tYW5kIGxpbmUgZm9yIFBBVFRFUk5cbi1HCU1hdGNoIHJlYWwgR3JvdXAgSUQocylcbi1nCU1hdGNoIFByb2Nlc3MgR3JvdXAocykgKDAgaXMgY3VycmVudCB1c2VyKVxuLW4JTmV3ZXN0IG1hdGNoIG9ubHlcbi1vCU9sZGVzdCBtYXRjaCBvbmx5XG4tUAlNYXRjaCBQYXJlbnQgUHJvY2VzcyBJRChzKVxuLXMJTWF0Y2ggU2Vzc2lvbiBJRChzKSAoMCBmb3IgY3VycmVudClcbi10CU1hdGNoIFRlcm1pbmFsKHMpXG4tVQlNYXRjaCByZWFsIFVzZXIgSUQocylcbi11CU1hdGNoIGVmZmVjdGl2ZSBVc2VyIElEKHMpXG4tdglOZWdhdGUgdGhlIG1hdGNoXG4teAlNYXRjaCB3aG9sZSBjb21tYW5kIChub3Qgc3Vic3RyaW5nKSIKKworI2RlZmluZSBIRUxQX3BncmVwICJ1c2FnZTogcGdyZXAgWy1jbGZub3Z4XSBbLWQgREVMSU1dIFstTCBTSUdOQUxdIFtQQVRURVJOXSBbLUcgR0lELF0gWy1nIFBHUlAsXSBbLVAgUFBJRCxdIFstcyBTSUQsXSBbLXQgVEVSTSxdIFstVSBVSUQsXSBbLXUgRVVJRCxdXG5cblNlYXJjaCBmb3IgcHJvY2VzcyhlcykuIFBBVFRFUk4gaXMgYW4gZXh0ZW5kZWQgcmVndWxhciBleHByZXNzaW9uIGNoZWNrZWRcbmFnYWluc3QgY29tbWFuZCBuYW1lcy5cblxuLWMJU2hvdyBvbmx5IGNvdW50IG9mIG1hdGNoZXNcbi1kCVVzZSBERUxJTSBpbnN0ZWFkIG9mIG5ld2xpbmVcbi1MCVNlbmQgU0lHTkFMIGluc3RlYWQgb2YgcHJpbnRpbmcgbmFtZVxuLWwJU2hvdyBjb21tYW5kIG5hbWVcbi1mCUNoZWNrIGZ1bGwgY29tbWFuZCBsaW5lIGZvciBQQVRURVJOXG4tRwlNYXRjaCByZWFsIEdyb3VwIElEKHMpXG4tZwlNYXRjaCBQcm9jZXNzIEdyb3VwKHMpICgwIGlzIGN1cnJlbnQgdXNlcilcbi1uCU5ld2VzdCBtYXRjaCBvbmx5XG4tbwlPbGRlc3QgbWF0Y2ggb25seVxuLVAJTWF0Y2ggUGFyZW50IFByb2Nlc3MgSUQocylcbi1zCU1hdGNoIFNlc3Npb24gSUQocykgKDAgZm9yIGN1cnJlbnQpXG4tdAlNYXRjaCBUZXJtaW5hbChzKVxuLVUJTWF0Y2ggcmVhbCBVc2VyIElEKHMpXG4tdQlNYXRjaCBlZmZlY3RpdmUgVXNlciBJRChzKVxuLXYJTmVnYXRlIHRoZSBtYXRjaFxuLXgJTWF0Y2ggd2hvbGUgY29tbWFuZCAobm90IHN1YnN0cmluZykiCisKKyNkZWZpbmUgSEVMUF9pb3RvcCAidXNhZ2U6IGlvdG9wIFstQWFLT2JxXSBbLW4gTlVNQkVSXSBbLWQgU0VDT05EU10gWy1wIFBJRCxdIFstdSBVU0VSLF1cblxuUmFuayBwcm9jZXNzZXMgYnkgSS9PLlxuXG4tQQlBbGwgSS9PLCBub3QganVzdCBkaXNrXG4tYQlBY2N1bXVsYXRlZCBJL08gKG5vdCBwZXJjZW50YWdlKVxuLUgJU2hvdyB0aHJlYWRzXG4tSwlLaWxvYnl0ZXNcbi1rCUZhbGxiYWNrIHNvcnQgRklFTERTIChkZWZhdWx0IC1bRF1JTywtRVRJTUUsLVBJRClcbi1tCU1heGltdW0gbnVtYmVyIG9mIHRhc2tzIHRvIHNob3dcbi1PCU9ubHkgc2hvdyBwcm9jZXNzZXMgZG9pbmcgSS9PXG4tbwlTaG93IEZJRUxEUyAoZGVmYXVsdCBQSUQsUFIsVVNFUixbRF1SRUFELFtEXVdSSVRFLFNXQVAsW0RdSU8sQ09NTSlcbi1zCVNvcnQgYnkgZmllbGQgbnVtYmVyICgwLVgsIGRlZmF1bHQgNilcbi1iCUJhdGNoIG1vZGUgKG5vIHR0eSlcbi1kCURlbGF5IFNFQ09ORFMgYmV0d2VlbiBlYWNoIGN5Y2xlIChkZWZhdWx0IDMpXG4tbglFeGl0IGFmdGVyIE5VTUJFUiBpdGVyYXRpb25zXG4tcAlTaG93IHRoZXNlIFBJRHNcbi11CVNob3cgdGhlc2UgVVNFUnNcbi1xCVF1aWV0IChubyBoZWFkZXIgbGluZXMpXG5cbkN1cnNvciBMRUZUL1JJR0hUIHRvIGNoYW5nZSBzb3J0LCBVUC9ET1dOIG1vdmUgbGlzdCwgc3BhY2UgdG8gZm9yY2VcbnVwZGF0ZSwgUiB0byByZXZlcnNlIHNvcnQsIFEgdG8gZXhpdC4iCisKKyNkZWZpbmUgSEVMUF90b3AgInVzYWdlOiB0b3AgWy1IaGJxXSBbLWsgRklFTEQsXSBbLW8gRklFTEQsXSBbLXMgU09SVF0gWy1uIE5VTUJFUl0gWy1tIExJTkVTXSBbLWQgU0VDT05EU10gWy1wIFBJRCxdIFstdSBVU0VSLF1cblxuU2hvdyBwcm9jZXNzIGFjdGl2aXR5IGluIHJlYWwgdGltZS5cblxuLUgJU2hvdyB0aHJlYWRzXG4taAlVc2FnZSBncmFwaHMgaW5zdGVhZCBvZiB0ZXh0XG4tawlGYWxsYmFjayBzb3J0IEZJRUxEUyAoZGVmYXVsdCAtUywtJUNQVSwtRVRJTUUsLVBJRClcbi1vCVNob3cgRklFTERTIChkZWYgUElELFVTRVIsUFIsTkksVklSVCxSRVMsU0hSLFMsJUNQVSwlTUVNLFRJTUUrLENNRExJTkUpXG4tTwlBZGQgRklFTERTIChyZXBsYWNpbmcgUFIsTkksVklSVCxSRVMsU0hSLFMgZnJvbSBkZWZhdWx0KVxuLXMJU29ydCBieSBmaWVsZCBudW1iZXIgKDEtWCwgZGVmYXVsdCA5KVxuLWIJQmF0Y2ggbW9kZSAobm8gdHR5KVxuLWQJRGVsYXkgU0VDT05EUyBiZXR3ZWVuIGVhY2ggY3ljbGUgKGRlZmF1bHQgMylcbi1tCU1heGltdW0gbnVtYmVyIG9mIHRhc2tzIHRvIHNob3dcbi1uCUV4aXQgYWZ0ZXIgTlVNQkVSIGl0ZXJhdGlvbnNcbi1wCVNob3cgdGhlc2UgUElEc1xuLXUJU2hvdyB0aGVzZSBVU0VSc1xuLXEJUXVpZXQgKG5vIGhlYWRlciBsaW5lcylcblxuQ3Vyc29yIFVQL0RPV04gb3IgTEVGVC9SSUdIVCB0byBtb3ZlIGxpc3QsIFNISUZUIExFRlQvUklHSFQgdG8gY2hhbmdlIHNvcnQsXG5zcGFjZSB0byBmb3JjZSB1cGRhdGUsIFIgdG8gcmV2ZXJzZSBzb3J0LCBRIHRvIGV4aXQuIgorCisjZGVmaW5lIEhFTFBfcHMgInVzYWdlOiBwcyBbLUFhZGVmTGxud1pdIFstZ0cgR1JPVVAsXSBbLWsgRklFTEQsXSBbLW8gRklFTEQsXSBbLXAgUElELF0gWy10IFRUWSxdIFstdVUgVVNFUixdXG5cbkxpc3QgcHJvY2Vzc2VzLlxuXG5XaGljaCBwcm9jZXNzZXMgdG8gc2hvdyAoLWdHdVVwUHQgc2VsZWN0aW9ucyBtYXkgYmUgY29tbWEgc2VwYXJhdGVkIGxpc3RzKTpcblxuLUEgIEFsbAkJCQkJLWEgIEhhcyB0ZXJtaW5hbCBub3Qgc2Vzc2lvbiBsZWFkZXJcbi1kICBBbGwgYnV0IHNlc3Npb24gbGVhZGVycwkJLWUgIFN5bm9ueW0gZm9yIC1BXG4tZyAgSW4gR1JPVVBzCQkJCS1HICBJbiByZWFsIEdST1VQcyAoYmVmb3JlIHNnaWQpXG4tcCAgUElEcyAoLS1waWQpCQkJLVAgIFBhcmVudCBQSURzICgtLXBwaWQpXG4tcyAgSW4gc2Vzc2lvbiBJRHMJCQktdCAgQXR0YWNoZWQgdG8gc2VsZWN0ZWQgVFRZc1xuLVQgIFNob3cgdGhyZWFkcyBhbHNvCQkJLXUgIE93bmVkIGJ5IHNlbGVjdGVkIFVTRVJzXG4tVSAgUmVhbCBVU0VScyAoYmVmb3JlIHN1aWQpXG5cbk91dHB1dCBtb2RpZmllcnM6XG5cbi1rICBTb3J0IEZJRUxEcyAoLUZJRUxEIHRvIHJldmVyc2UpCS1NICBNZWFzdXJlL3BhZCBmdXR1cmUgZmllbGQgd2lkdGhzXG4tbiAgU2hvdyBudW1lcmljIFVTRVIgYW5kIEdST1VQCQktdyAgV2lkZSBvdXRwdXQgKGRvbid0IHRydW5jYXRlIGZpZWxkcylcblxuV2hpY2ggRklFTERzIHRvIHNob3cuICgtbyBIRUxQIGZvciBsaXN0LCBkZWZhdWx0ID0gLW8gUElELFRUWSxUSU1FLENNRClcblxuLWYgIEZ1bGwgbGlzdGluZyAoLW8gVVNFUjoxMj1VSUQsUElELFBQSUQsQyxTVElNRSxUVFksVElNRSxBUkdTPUNNRClcbi1sICBMb25nIGxpc3RpbmcgKC1vIEYsUyxVSUQsUElELFBQSUQsQyxQUkksTkksQUREUixTWixXQ0hBTixUVFksVElNRSxDTUQpXG4tbyAgT3V0cHV0IEZJRUxEcyBpbnN0ZWFkIG9mIGRlZmF1bHRzLCBlYWNoIHdpdGggb3B0aW9uYWwgOnNpemUgYW5kID10aXRsZVxuLU8gIEFkZCBGSUVMRFMgdG8gZGVmYXVsdHNcbi1aICBJbmNsdWRlIExBQkVMIgorCisjZGVmaW5lIEhFTFBfcHJpbnRmICJ1c2FnZTogcHJpbnRmIEZPUk1BVCBbQVJHVU1FTlQuLi5dXG5cbkZvcm1hdCBhbmQgcHJpbnQgQVJHVU1FTlQocykgYWNjb3JkaW5nIHRvIEZPUk1BVCwgdXNpbmcgQyBwcmludGYgc3ludGF4XG4oJSBlc2NhcGVzIGZvciBjZGVFZmdHaW9zdXhYLCBcXCBlc2NhcGVzIGZvciBhYmVmbnJ0djAgb3IgXFxPQ1RBTCBvciBcXHhIRVgpLiIKKworI2RlZmluZSBIRUxQX3BhdGNoICJ1c2FnZTogcGF0Y2ggWy1SbHN1dl0gWy1kIERJUl0gWy1pIEZJTEVdIFstcCBERVBUSF0gWy1GIEZVWlpdIFstLWRyeS1ydW5dIFtGSUxFIFtQQVRDSF1dXG5cbkFwcGx5IGEgdW5pZmllZCBkaWZmIHRvIG9uZSBvciBtb3JlIGZpbGVzLlxuXG4tZAlNb2RpZnkgZmlsZXMgaW4gRElSXG4tRglGdXp6IGZhY3RvciAobnVtYmVyIG9mIG5vbi1tYXRjaGluZyBjb250ZXh0IGxpbmVzIGFsbG93ZWQgcGVyIGh1bmspXG4taQlJbnB1dCBwYXRjaCBmcm9tIEZJTEUgKGRlZmF1bHQ9c3RkaW4pXG4tbAlMb29zZSBtYXRjaCAoaWdub3JlIHdoaXRlc3BhY2UpXG4tcAlOdW1iZXIgb2YgJy8nIHRvIHN0cmlwIGZyb20gc3RhcnQgb2YgZmlsZSBwYXRocyAoZGVmYXVsdD1hbGwpXG4tUglSZXZlcnNlIHBhdGNoXG4tcwlTaWxlbnQgZXhjZXB0IGZvciBlcnJvcnNcbi12CVZlcmJvc2UgKC12diB0byBzZWUgZGVjaXNpb25zKVxuLS1kcnktcnVuIERvbid0IGNoYW5nZSBmaWxlcywganVzdCBjb25maXJtIHBhdGNoIGFwcGxpZXNcblxuT25seSBoYW5kbGVzIFwidW5pZmllZFwiIGRpZmYgZm9ybWF0ICgtdSBpcyBhc3N1bWVkIGFuZCBpZ25vcmVkKS4gT25seVxubW9kaWZpZXMgZmlsZXMgd2hlbiBhbGwgaHVua3MgdG8gdGhhdCBmaWxlIGFwcGx5LiBQcmludHMgZmFpbGVkIGh1bmtzXG50byBzdGRlcnIsIGFuZCBleGl0cyB3aXRoIG5vbnplcm8gc3RhdHVzIGlmIGFueSBodW5rcyBmYWlsLlxuXG5GaWxlcyBjb21wYXJlZCBhZ2FpbnN0IC9kZXYvbnVsbCAob3Igd2l0aCBhIGRhdGUgPD0gdGhlIHVuaXggZXBvY2gpIGFyZVxuY3JlYXRlZC9kZWxldGVkIGFzIGFwcHJvcHJpYXRlLiBEZWZhdWx0IC1GIHZhbHVlIGlzIHRoZSBudW1iZXIgb2ZcbmxlYWRpbmcvdHJhaWxpbmcgY29udGV4dCBsaW5lcyBtaW51cyBvbmUgKHVzdWFsbHkgMikuIgorCisjZGVmaW5lIEhFTFBfcGFzdGUgInVzYWdlOiBwYXN0ZSBbLXNdIFstZCBERUxJTUlURVJTXSBbRklMRS4uLl1cblxuTWVyZ2UgY29ycmVzcG9uZGluZyBsaW5lcyBmcm9tIGVhY2ggaW5wdXQgZmlsZS5cblxuLWQJTGlzdCBvZiBkZWxpbWl0ZXIgY2hhcmFjdGVycyB0byBzZXBhcmF0ZSBmaWVsZHMgd2l0aCAoZGVmYXVsdCBpcyBcXHQpXG4tcwlTZXF1ZW50aWFsIG1vZGU6IHR1cm4gZWFjaCBpbnB1dCBmaWxlIGludG8gb25lIGxpbmUgb2Ygb3V0cHV0IgorCisjZGVmaW5lIEhFTFBfb2QgInVzYWdlOiBvZCBbLWJjZG9zeHZdIFstaiAjXSBbLU4gI10gWy13ICNdIFstQSBkb3huXSBbLXQgYWNkZm91eFsjXV1cblxuRHVtcCBkYXRhIGluIG9jdGFsL2hleC5cblxuLUEJQWRkcmVzcyBiYXNlIChkZWNpbWFsLCBvY3RhbCwgaGV4YWRlY2ltYWwsIG5vbmUpXG4taglTa2lwIHRoaXMgbWFueSBieXRlcyBvZiBpbnB1dFxuLU4JU3RvcCBkdW1waW5nIGFmdGVyIHRoaXMgbWFueSBieXRlc1xuLXQJT3V0cHV0IHR5cGUgYShzY2lpKSBjKGhhcikgZChlY2ltYWwpIGYobG9hdCkgbyhjdGFsKSB1KG5zaWduZWQpIChoZSl4XG4JcGx1cyBvcHRpb25hbCBzaXplIGluIGJ5dGVzXG4JYWxpYXNlczogLWI9LXQgbzEsIC1jPS10IGMsIC1kPS10IHUyLCAtbz0tdCBvMiwgLXM9LXQgZDIsIC14PS10IHgyXG4tdglEb24ndCBjb2xsYXBzZSByZXBlYXRlZCBsaW5lcyB0b2dldGhlclxuLXcJVG90YWwgbGluZSB3aWR0aCBpbiBieXRlcyAoZGVmYXVsdCAxNikiCisKKyNkZWZpbmUgSEVMUF9ub2h1cCAidXNhZ2U6IG5vaHVwIENPTU1BTkQuLi5cblxuUnVuIGEgY29tbWFuZCB0aGF0IHN1cnZpdmVzIHRoZSBlbmQgb2YgaXRzIHRlcm1pbmFsLlxuXG5SZWRpcmVjdCB0dHkgb24gc3RkaW4gdG8gL2Rldi9udWxsLCB0dHkgb24gc3Rkb3V0IHRvIFwibm9odXAub3V0XCIuIgorCisjZGVmaW5lIEhFTFBfbmwgInVzYWdlOiBubCBbLUVdIFstbCAjXSBbLWIgTU9ERV0gWy1uIFNUWUxFXSBbLXMgU0VQQVJBVE9SXSBbLXYgI10gWy13IFdJRFRIXSBbRklMRS4uLl1cblxuTnVtYmVyIGxpbmVzIG9mIGlucHV0LlxuXG4tRQlVc2UgZXh0ZW5kZWQgcmVnZXggc3ludGF4ICh3aGVuIGRvaW5nIC1iIHBSRUdFWClcbi1iCVdoaWNoIGxpbmVzIHRvIG51bWJlcjogYSAoYWxsKSB0IChub24tZW1wdHksIGRlZmF1bHQpIHBSRUdFWCAocGF0dGVybilcbi1sCU9ubHkgY291bnQgbGFzdCBvZiB0aGlzIG1hbnkgY29uc2VjdXRpdmUgYmxhbmsgbGluZXNcbi1uCU51bWJlciBTVFlMRTogbG4gKGxlZnQganVzdGlmaWVkKSBybiAocmlnaHQganVzdGlmaWVkKSByeiAoemVybyBwYWQpXG4tcwlTZXBhcmF0b3IgdG8gdXNlIGJldHdlZW4gbnVtYmVyIGFuZCBsaW5lIChpbnN0ZWFkIG9mIFRBQilcbi12CVN0YXJ0aW5nIGxpbmUgbnVtYmVyIGZvciBlYWNoIHNlY3Rpb24gKGRlZmF1bHQgMSlcbi13CVdpZHRoIG9mIGxpbmUgbnVtYmVycyAoZGVmYXVsdCA2KSIKKworI2RlZmluZSBIRUxQX25pY2UgInVzYWdlOiBuaWNlIFstbiBQUklPUklUWV0gQ09NTUFORC4uLlxuXG5SdW4gYSBjb21tYW5kIGxpbmUgYXQgYW4gaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBzY2hlZHVsaW5nIHByaW9yaXR5LlxuXG5IaWdoZXIgbnVtYmVycyBtYWtlIGEgcHJvZ3JhbSB5aWVsZCBtb3JlIENQVSB0aW1lLCBmcm9tIC0yMCAoaGlnaGVzdFxucHJpb3JpdHkpIHRvIDE5IChsb3dlc3QpLiAgQnkgZGVmYXVsdCBwcm9jZXNzZXMgaW5oZXJpdCB0aGVpciBwYXJlbnQnc1xubmljZW5lc3MgKHVzdWFsbHkgMCkuICBCeSBkZWZhdWx0IHRoaXMgY29tbWFuZCBhZGRzIDEwIHRvIHRoZSBwYXJlbnQnc1xucHJpb3JpdHkuICBPbmx5IHJvb3QgY2FuIHNldCBhIG5lZ2F0aXZlIG5pY2VuZXNzIGxldmVsLlxuXG4tbglBZGQgZ2l2ZW4gYWRqdXN0bWVudCB0byBwcmlvcml0eSAoZGVmYXVsdCAxMCkiCisKKyNkZWZpbmUgSEVMUF9ta2ZpZm8gInVzYWdlOiBta2ZpZm8gWy1aIENPTlRFWFRdIFtOQU1FLi4uXVxuXG5DcmVhdGUgRklGT3MgKG5hbWVkIHBpcGVzKS5cblxuLVoJU2VjdXJpdHkgY29udGV4dCIKKworI2RlZmluZSBIRUxQX21rZGlyX3ogInVzYWdlOiBbLVogY29udGV4dF1cblxuLVoJU2V0IHNlY3VyaXR5IGNvbnRleHQiCisKKyNkZWZpbmUgSEVMUF9ta2RpciAidXNhZ2U6IG1rZGlyIFstdnBdIFstbSBNT0RFXSBbRElSLi4uXVxuXG5DcmVhdGUgb25lIG9yIG1vcmUgZGlyZWN0b3JpZXMuXG5cbi1tCVNldCBwZXJtaXNzaW9ucyBvZiBkaXJlY3RvcnkgdG8gbW9kZVxuLXAJTWFrZSBwYXJlbnQgZGlyZWN0b3JpZXMgYXMgbmVlZGVkXG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfbHMgInVzYWdlOiBscyBbLTFBQ0ZITE5SU1VYWmFiY2RmZ2hpbG1ub3BxcnN0dXd4XSBbLS1jb2xvcls9YXV0b11dIFtGSUxFLi4uXVxuXG5MaXN0IGZpbGVzXG5cbndoYXQgdG8gc2hvdzpcbi1BICBhbGwgZmlsZXMgZXhjZXB0IC4gYW5kIC4uICAgICAgLWEgIGFsbCBmaWxlcyBpbmNsdWRpbmcgLmhpZGRlblxuLWIgIGVzY2FwZSBub25ncmFwaGljIGNoYXJzICAgICAgICAtZCAgZGlyZWN0b3J5LCBub3QgY29udGVudHNcbi1GICBhcHBlbmQgL2RpciAqZXhlIEBzeW0gfEZJRk8gICAgLWYgIGZpbGVzIChubyBzb3J0L2ZpbHRlci9mb3JtYXQpXG4tSCAgZm9sbG93IGNvbW1hbmQgbGluZSBzeW1saW5rcyAgIC1pICBpbm9kZSBudW1iZXJcbi1MICBmb2xsb3cgc3ltbGlua3MgICAgICAgICAgICAgICAgLU4gIG5vIGVzY2FwaW5nLCBldmVuIG9uIHR0eVxuLXAgIHB1dCAnLycgYWZ0ZXIgZGlyIG5hbWVzICAgICAgICAtcSAgdW5wcmludGFibGUgY2hhcnMgYXMgJz8nXG4tUiAgcmVjdXJzaXZlbHkgbGlzdCBpbiBzdWJkaXJzICAgIC1zICBzdG9yYWdlIHVzZWQgKGluIC0tYmxvY2stc2l6ZSlcbi1aICBzZWN1cml0eSBjb250ZXh0XG5cbm91dHB1dCBmb3JtYXRzOlxuLTEgIGxpc3Qgb25lIGZpbGUgcGVyIGxpbmUgICAgICAgICAtQyAgY29sdW1ucyAoc29ydGVkIHZlcnRpY2FsbHkpXG4tZyAgbGlrZSAtbCBidXQgbm8gb3duZXIgICAgICAgICAgIC1oICBodW1hbiByZWFkYWJsZSBzaXplc1xuLWsgIHJlc2V0IC0tYmxvY2stc2l6ZSB0byBkZWZhdWx0ICAtbCAgbG9uZyAoc2hvdyBmdWxsIGRldGFpbHMpXG4tbSAgY29tbWEgc2VwYXJhdGVkICAgICAgICAgICAgICAgIC1sbCBsb25nIHdpdGggbmFub3NlY29uZHMgKC0tZnVsbC10aW1lKVxuLW4gIGxvbmcgd2l0aCBudW1lcmljIHVpZC9naWQgICAgICAtbyAgbG9uZyB3aXRob3V0IGdyb3VwIGNvbHVtblxuLXIgIHJldmVyc2Ugb3JkZXIgICAgICAgICAgICAgICAgICAtdyAgc2V0IGNvbHVtbiB3aWR0aFxuLXggIGNvbHVtbnMgKGhvcml6b250YWwgc29ydClcblxuc29ydCBieTogIChhbHNvIC0tc29ydD1sb25nbmFtZSxsb25nbmFtZS4uLiBlbmRzIHdpdGggYWxwaGFiZXRpY2FsKVxuLWMgIGN0aW1lICAgICAgLXIgIHJldmVyc2UgICAgLVMgIHNpemUgICAgIC10ICB0aW1lICAgIC11ICBhdGltZSAgICAtVSAgbm9uZVxuLVggIGV4dGVuc2lvbiAgLSEgIGRpcmZpcnN0ICAgLX4gIG5vY2FzZVxuXG4tLWJsb2NrLXNpemUgTglibG9jayBzaXplIChkZWZhdWx0IDEwMjQsIC1rIHJlc2V0cyB0byAxMDI0KVxuLS1jb2xvciAgPWFsd2F5cyAoZGVmYXVsdCkgID1hdXRvICh3aGVuIHN0ZG91dCBpcyB0dHkpID1uZXZlclxuICAgIGV4ZT1ncmVlbiAgc3VpZD1yZWQgIHN1aWRmaWxlPXJlZGJhY2sgIHN0aWNreWRpcj1ncmVlbmJhY2tcbiAgICBkZXZpY2U9eWVsbG93ICBzeW1saW5rPXR1cnF1b2lzZS9yZWQgIGRpcj1ibHVlICBzb2NrZXQ9cHVycGxlXG5cbkxvbmcgb3V0cHV0IHVzZXMgLWN1IGZvciBkaXNwbGF5LCB1c2UgLWx0Yy8tbHR1IHRvIGFsc28gc29ydCBieSBjdGltZS9hdGltZS4iCisKKyNkZWZpbmUgSEVMUF9sb2dnZXIgInVzYWdlOiBsb2dnZXIgWy1zXSBbLXQgVEFHXSBbLXAgW0ZBQ0lMSVRZLl1QUklPUklUWV0gW01FU1NBR0UuLi5dXG5cbkxvZyBtZXNzYWdlIChvciBzdGRpbikgdG8gc3lzbG9nLlxuXG4tcwlBbHNvIHdyaXRlIG1lc3NhZ2UgdG8gc3RkZXJyXG4tdAlVc2UgVEFHIGluc3RlYWQgb2YgdXNlcm5hbWUgdG8gaWRlbnRpZnkgbWVzc2FnZSBzb3VyY2Vcbi1wCVNwZWNpZnkgUFJJT1JJVFkgd2l0aCBvcHRpb25hbCBGQUNJTElUWS4gRGVmYXVsdCBpcyBcInVzZXIubm90aWNlXCIiCisKKyNkZWZpbmUgSEVMUF9sbiAidXNhZ2U6IGxuIFstZm5yc1R2XSBbLXQgRElSXSBbRlJPTS4uLl0gVE9cblxuQ3JlYXRlIGEgbGluayBiZXR3ZWVuIEZST00gYW5kIFRPLlxuT25lL3R3by9tYW55IGFyZ3VtZW50cyB3b3JrIGxpa2UgXCJtdlwiIG9yIFwiY3BcIi5cblxuLWYJRm9yY2UgdGhlIGNyZWF0aW9uIG9mIHRoZSBsaW5rLCBldmVuIGlmIFRPIGFscmVhZHkgZXhpc3RzXG4tbglTeW1saW5rIGF0IFRPIHRyZWF0ZWQgYXMgZmlsZVxuLXIJQ3JlYXRlIHJlbGF0aXZlIHN5bWxpbmsgZnJvbSAtPiB0b1xuLXMJQ3JlYXRlIGEgc3ltYm9saWMgbGlua1xuLXQJQ3JlYXRlIGxpbmtzIGluIERJUlxuLVQJVE8gYWx3YXlzIHRyZWF0ZWQgYXMgZmlsZSwgbWF4IDIgYXJndW1lbnRzXG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfbGluayAidXNhZ2U6IGxpbmsgRklMRSBORVdMSU5LXG5cbkNyZWF0ZSBoYXJkbGluayB0byBhIGZpbGUuIgorCisjZGVmaW5lIEhFTFBfa2lsbGFsbDUgInVzYWdlOiBraWxsYWxsNSBbLWwgW1NJR05BTF1dIFstU0lHTkFMfC1zIFNJR05BTF0gWy1vIFBJRF0uLi5cblxuU2VuZCBhIHNpZ25hbCB0byBhbGwgcHJvY2Vzc2VzIG91dHNpZGUgY3VycmVudCBzZXNzaW9uLlxuXG4tbAlMaXN0IHNpZ25hbCBuYW1lKHMpIGFuZCBudW1iZXIocylcbi1vIFBJRAlPbWl0IFBJRFxuLXMJU2VuZCBTSUdOQUwgKGRlZmF1bHQgU0lHVEVSTSkiCisKKyNkZWZpbmUgSEVMUF9raWxsICJ1c2FnZToga2lsbCBbLWwgW1NJR05BTF0gfCAtcyBTSUdOQUwgfCAtU0lHTkFMXSBQSUQuLi5cblxuU2VuZCBzaWduYWwgdG8gcHJvY2VzcyhlcykuXG5cbi1sCUxpc3Qgc2lnbmFsIG5hbWUocykgYW5kIG51bWJlcihzKVxuLXMJU2VuZCBTSUdOQUwgKGRlZmF1bHQgU0lHVEVSTSkiCisKKyNkZWZpbmUgSEVMUF93aG9hbWkgInVzYWdlOiB3aG9hbWlcblxuUHJpbnQgdGhlIGN1cnJlbnQgdXNlciBuYW1lLiIKKworI2RlZmluZSBIRUxQX2xvZ25hbWUgInVzYWdlOiBsb2duYW1lXG5cblByaW50IHRoZSBjdXJyZW50IHVzZXIgbmFtZS4iCisKKyNkZWZpbmUgSEVMUF9ncm91cHMgInVzYWdlOiBncm91cHMgW3VzZXJdXG5cblByaW50IHRoZSBncm91cHMgYSB1c2VyIGlzIGluLiIKKworI2RlZmluZSBIRUxQX2lkICJ1c2FnZTogaWQgWy1HWmducnVdIFtVU0VSLi4uXVxuXG5QcmludCB1c2VyIGFuZCBncm91cCBJRC5cbi1HCVNob3cgYWxsIGdyb3VwIElEc1xuLVoJU2hvdyBvbmx5IHNlY3VyaXR5IGNvbnRleHRcbi1nCVNob3cgb25seSB0aGUgZWZmZWN0aXZlIGdyb3VwIElEXG4tbglQcmludCBuYW1lcyBpbnN0ZWFkIG9mIG51bWVyaWMgSURzICh0byBiZSB1c2VkIHdpdGggLUdndSlcbi1yCVNob3cgcmVhbCBJRCBpbnN0ZWFkIG9mIGVmZmVjdGl2ZSBJRFxuLXUJU2hvdyBvbmx5IHRoZSBlZmZlY3RpdmUgdXNlciBJRCIKKworI2RlZmluZSBIRUxQX2ljb252ICJ1c2FnZTogaWNvbnYgWy1mIEZST01dIFstdCBUT10gW0ZJTEUuLi5dXG5cbkNvbnZlcnQgY2hhcmFjdGVyIGVuY29kaW5nIG9mIGZpbGVzLlxuXG4tYwlPbWl0IGludmFsaWQgY2hhcnNcbi1mCUNvbnZlcnQgZnJvbSAoZGVmYXVsdCBVVEYtOClcbi10CUNvbnZlcnQgdG8gICAoZGVmYXVsdCBVVEYtOCkiCisKKyNkZWZpbmUgSEVMUF9oZWFkICJ1c2FnZTogaGVhZCBbLWNuIE5VTV0gWy1xdl0gW0ZJTEUuLi5dXG5cbkNvcHkgZmlyc3QgbGluZXMgZnJvbSBmaWxlcyB0byBzdGRvdXQuIElmIG5vIGZpbGVzIGxpc3RlZCwgY29weSBmcm9tXG5zdGRpbi4gRmlsZW5hbWUgXCItXCIgaXMgYSBzeW5vbnltIGZvciBzdGRpbi5cblxuLW4JTnVtYmVyIG9mIGxpbmVzIHRvIGNvcHlcbi1jCU51bWJlciBvZiBieXRlcyB0byBjb3B5XG4tcQlOZXZlciBwcmludCBoZWFkZXJzXG4tdglBbHdheXMgcHJpbnQgaGVhZGVycyIKKworI2RlZmluZSBIRUxQX2dyZXAgInVzYWdlOiBncmVwIFstYWJjRUZIaElpTGxub3Fyc3Z3eFp6XSBbLUFCQyBOVU1dIFstbSBNQVhdIFstZSBSRUdFWF0uLi4gWy1NUyBQQVRURVJOXS4uLiBbLWYgUkVHRklMRV0uLi4gW0ZJTEVdLi4uXG5cblNob3cgbGluZXMgbWF0Y2hpbmcgcmVndWxhciBleHByZXNzaW9ucy4gSWYgbm8gLWUsIGZpcnN0IGFyZ3VtZW50IGlzXG5yZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2guIFdpdGggbm8gZmlsZXMgKG9yIFwiLVwiIGZpbGVuYW1lKSByZWFkIHN0ZGluLlxuUmV0dXJucyAwIGlmIG1hdGNoZWQsIDEgaWYgbm8gbWF0Y2ggZm91bmQsIDIgZm9yIGNvbW1hbmQgZXJyb3JzLlxuXG4tZSAgUmVnZXgoZXMpIHRvIG1hdGNoLiAgICAgICAtZiAgRmlsZShzKSBvZiByZWdleGVzIHRvIG1hdGNoICgxIHBlciBsaW5lKS5cblxuZmlsZSBzZWFyY2g6XG4tciAgUmVjdXJzZSBpbnRvIHN1YmRpcnMgICAgIC1SICBSZWN1cnNlIGZvbGxvd2luZyBzeW1saW5rc1xuLU0gIE1hdGNoIGZpbGVzICgtLWluY2x1ZGUpICAtUyAgU2tpcCBmaWxlcyAoLS1leGNsdWRlKVxuLUkgIElnbm9yZSBiaW5hcnkgZmlsZXMgICAgICAtLWV4Y2x1ZGUtZGlyPVBBVFRFUk4gIFNraXAgZGlyZWN0b3JpZXNcblxubWF0Y2ggdHlwZTpcbi1BICBTaG93IE5VTSBsaW5lcyBhZnRlciAgICAgLUIgIFNob3cgTlVNIGxpbmVzIGJlZm9yZSBtYXRjaFxuLUMgIE5VTSBsaW5lcyBjb250ZXh0IChBK0IpICAtRSAgZXh0ZW5kZWQgcmVnZXggc3ludGF4XG4tRiAgZml4ZWQgKGxpdGVyYWwgbWF0Y2gpICAgIC1hICBhbHdheXMgdGV4dCAobm90IGJpbmFyeSlcbi1pICBjYXNlIGluc2Vuc2l0aXZlICAgICAgICAgLW0gIG1hdGNoIE1BWCBtYW55IGxpbmVzXG4tdiAgaW52ZXJ0IG1hdGNoICAgICAgICAgICAgIC13ICB3aG9sZSB3b3JkIChpbXBsaWVzIC1FKVxuLXggIHdob2xlIGxpbmUgICAgICAgICAgICAgICAteiAgaW5wdXQgTlVMIHRlcm1pbmF0ZWRcblxuZGlzcGxheSBtb2RlczogKGRlZmF1bHQ6IG1hdGNoZWQgbGluZSlcbi1MICBmaWxlbmFtZXMgd2l0aCBubyBtYXRjaCAgLVogIG91dHB1dCBpcyBOVUwgdGVybWluYXRlZFxuLWMgIGNvdW50IG9mIG1hdGNoaW5nIGxpbmVzICAtbCAgZmlsZW5hbWVzIHdpdGggYSBtYXRjaFxuLW8gIG9ubHkgbWF0Y2hpbmcgcGFydCAgICAgICAtcSAgcXVpZXQgKGVycm9ycyBvbmx5KVxuLXMgIHNpbGVudCAobm8gZXJyb3IgbXNnKVxuXG5vdXRwdXQgcHJlZml4IChkZWZhdWx0OiBmaWxlbmFtZSBpZiBjaGVja2luZyBtb3JlIHRoYW4gMSBmaWxlKVxuLUggIGZvcmNlIGZpbGVuYW1lICAgICAgICAgICAtYiAgYnl0ZSBvZmZzZXQgb2YgbWF0Y2hcbi1oICBoaWRlIGZpbGVuYW1lICAgICAgICAgICAgLW4gIGxpbmUgbnVtYmVyIG9mIG1hdGNoIgorCisjZGVmaW5lIEhFTFBfZ2V0Y29uZiAidXNhZ2U6IGdldGNvbmYgLWEgW1BBVEhdIHwgLWwgfCBOQU1FIFtQQVRIXVxuXG5HZXQgc3lzdGVtIGNvbmZpZ3VyYXRpb24gdmFsdWVzLiBWYWx1ZXMgZnJvbSBwYXRoY29uZigzKSByZXF1aXJlIGEgcGF0aC5cblxuLWEJU2hvdyBhbGwgKGRlZmF1bHRzIHRvIFwiL1wiIGlmIG5vIHBhdGggZ2l2ZW4pXG4tbAlMaXN0IGF2YWlsYWJsZSB2YWx1ZSBuYW1lcyAoZ3JvdXBlZCBieSBzb3VyY2UpIgorCisjZGVmaW5lIEhFTFBfZm9sZCAidXNhZ2U6IGZvbGQgWy1ic10gWy13IFdJRFRIXSBbRklMRS4uLl1cblxuQnJlYWsgbG9uZyBsaW5lcyBieSBpbnNlcnRpbmcgbmV3bGluZXMuXG5cbi1iCUNvdW50IGJ5dGVzIGluc3RlYWQgb2YgdXRmLTggdW5pY29kZSBjb2x1bW5zXG4tcwlXcmFwIGF0IHdoaXRlc3BhY2Ugd2hlbiBwb3NzaWJsZVxuLXcJQnJlYWsgYXQgV0lEVEggY29sdW1ucyAoZGVmYXVsdCA4MCkiCisKKyNkZWZpbmUgSEVMUF9maW5kICJ1c2FnZTogZmluZCBbLUhMXSBbRElSLi4uXSBbPG9wdGlvbnM+XVxuXG5TZWFyY2ggZGlyZWN0b3JpZXMgZm9yIG1hdGNoaW5nIGZpbGVzLlxuRGVmYXVsdDogc2VhcmNoIFwiLlwiLCBtYXRjaCBhbGwsIC1wcmludCBtYXRjaGVzLlxuXG4tSCAgRm9sbG93IGNvbW1hbmQgbGluZSBzeW1saW5rcyAgICAgICAgIC1MICBGb2xsb3cgYWxsIHN5bWxpbmtzXG5cbk1hdGNoIGZpbHRlcnM6XG4tbmFtZSAgUEFUVEVSTiAgIGZpbGVuYW1lIHdpdGggd2lsZGNhcmRzICAgLWluYW1lICAgICAgaWdub3JlIGNhc2UgLW5hbWVcbi1wYXRoICBQQVRURVJOICAgcGF0aCBuYW1lIHdpdGggd2lsZGNhcmRzICAtaXBhdGggICAgICBpZ25vcmUgY2FzZSAtcGF0aFxuLXVzZXIgIFVOQU1FICAgICBiZWxvbmdzIHRvIHVzZXIgVU5BTUUgICAgIC1ub3VzZXIgICAgIHVzZXIgSUQgbm90IGtub3duXG4tZ3JvdXAgR1JPVVAgICAgIGJlbG9uZ3MgdG8gZ3JvdXAgR1JPVVAgICAgLW5vZ3JvdXAgICAgZ3JvdXAgSUQgbm90IGtub3duXG4tcGVybSAgWy0vXU1PREUgIHBlcm1pc3Npb25zICgtPW1pbiAvPWFueSkgLXBydW5lICAgICAgaWdub3JlIGRpciBjb250ZW50c1xuLXNpemUgIE5bY10gICAgICA1MTIgYnl0ZSBibG9ja3MgKGM9Ynl0ZXMpIC14ZGV2ICAgICAgIG9ubHkgdGhpcyBmaWxlc3lzdGVtXG4tbGlua3MgTiAgICAgICAgIGhhcmRsaW5rIGNvdW50ICAgICAgICAgICAgLWVtcHR5ICAgICAgZW1wdHkgZmlsZXMgYW5kIGRpcnNcbi1hdGltZSBOW3VdICAgICAgYWNjZXNzZWQgTiB1bml0cyBhZ28gICAgICAtdHJ1ZSAgICAgICBhbHdheXMgdHJ1ZVxuLWN0aW1lIE5bdV0gICAgICBjcmVhdGVkIE4gdW5pdHMgYWdvICAgICAgIC1mYWxzZSAgICAgIGFsd2F5cyBmYWxzZVxuLW10aW1lIE5bdV0gICAgICBtb2RpZmllZCBOIHVuaXRzIGFnbyAgICAgIC1leGVjdXRhYmxlIGFjY2VzcyhYX09LKSBwZXJtK0FDTFxuLWludW0gIE4gICAgICAgICBpbm9kZSBudW1iZXIgTiAgICAgICAgICAgIC1yZWFkYWJsZSAgIGFjY2VzcyhSX09LKSBwZXJtK0FDTFxuLWNvbnRleHQgUEFUVEVSTiBzZWN1cml0eSBjb250ZXh0ICAgICAgICAgIC1kZXB0aCAgICAgIGNvbnRlbnRzIGJlZm9yZSBkaXJcbi1zYW1lZmlsZSBGSUxFICAgaGFyZGxpbmsgdG8gRklMRSAgICAgICAgICAtbWF4ZGVwdGggTiBhdCBtb3N0IE4gZGlycyBkb3duXG4tbmV3ZXIgICAgRklMRSAgIG5ld2VyIG10aW1lIHRoYW4gRklMRSAgICAgLW1pbmRlcHRoIE4gYXQgbGVhc3QgTiBkaXJzIGRvd25cbi1uZXdlclhZICBGSUxFICAgWD1hY20gdGltZSA+IEZJTEUncyBZPWFjbSB0aW1lIChZPXQ6IEZJTEUgaXMgbGl0ZXJhbCB0aW1lKVxuLXR5cGUgW2JjZGZscHNdICB0eXBlIGlzIChibG9jaywgY2hhciwgZGlyLCBmaWxlLCBzeW1saW5rLCBwaXBlLCBzb2NrZXQpXG5cbk51bWJlcnMgTiBtYXkgYmUgcHJlZml4ZWQgYnkgLSAobGVzcyB0aGFuKSBvciArIChncmVhdGVyIHRoYW4pLiBVbml0cyBmb3Jcbi1bYWNtXXRpbWUgYXJlIGQgKGRheXMsIGRlZmF1bHQpLCBoIChob3VycyksIG0gKG1pbnV0ZXMpLCBvciBzIChzZWNvbmRzKS5cblxuQ29tYmluZSBtYXRjaGVzIHdpdGg6XG4hLCAtYSwgLW8sICggKSAgICBub3QsIGFuZCwgb3IsIGdyb3VwIGV4cHJlc3Npb25zXG5cbkFjdGlvbnM6XG4tcHJpbnQgIFByaW50IG1hdGNoIHdpdGggbmV3bGluZSAgLXByaW50MCAgICAgICAgUHJpbnQgbWF0Y2ggd2l0aCBudWxsXG4tZXhlYyAgIFJ1biBjb21tYW5kIHdpdGggcGF0aCAgICAgLWV4ZWNkaXIgICAgICAgUnVuIGNvbW1hbmQgaW4gZmlsZSdzIGRpclxuLW9rICAgICBBc2sgYmVmb3JlIGV4ZWMgICAgICAgICAgIC1va2RpciAgICAgICAgIEFzayBiZWZvcmUgZXhlY2RpclxuLWRlbGV0ZSBSZW1vdmUgbWF0Y2hpbmcgZmlsZS9kaXIgIC1wcmludGYgRk9STUFUIFByaW50IHVzaW5nIGZvcm1hdCBzdHJpbmdcbi1xdWl0ICAgRXhpdCBpbW1lZGlhdGVseVxuXG5Db21tYW5kcyBzdWJzdGl0dXRlIFwie31cIiB3aXRoIG1hdGNoZWQgZmlsZS4gRW5kIHdpdGggXCI7XCIgdG8gcnVuIGVhY2ggZmlsZSxcbm9yIFwiK1wiIChuZXh0IGFyZ3VtZW50IGFmdGVyIFwie31cIikgdG8gY29sbGVjdCBhbmQgcnVuIHdpdGggbXVsdGlwbGUgZmlsZXMuXG5cbi1wcmludGYgRk9STUFUIGNoYXJhY3RlcnMgYXJlIFxcIGVzY2FwZXMgYW5kOlxuJWIgIDUxMiBieXRlIGJsb2NrcyB1c2VkXG4lZiAgYmFzZW5hbWUgICAgICAgICAgICAlZyAgdGV4dHVhbCBnaWQgICAgICAgICAgJUcgIG51bWVyaWMgZ2lkXG4laSAgZGVjaW1hbCBpbm9kZSAgICAgICAlbCAgdGFyZ2V0IG9mIHN5bWxpbmsgICAgJW0gIG9jdGFsIG1vZGVcbiVNICBscyBmb3JtYXQgdHlwZS9tb2RlICVwICBwYXRoIHRvIGZpbGUgICAgICAgICAlUCAgcGF0aCB0byBmaWxlIG1pbnVzIERJUlxuJXMgIHNpemUgaW4gYnl0ZXMgICAgICAgJVRAIG1vZCB0aW1lIGFzIHVuaXh0aW1lXG4ldSAgdXNlcm5hbWUgICAgICAgICAgICAlVSAgbnVtZXJpYyB1aWQgICAgICAgICAgJVogIHNlY3VyaXR5IGNvbnRleHQiCisKKyNkZWZpbmUgSEVMUF9maWxlICJ1c2FnZTogZmlsZSBbLWJoTHNdIFtGSUxFLi4uXVxuXG5FeGFtaW5lIHRoZSBnaXZlbiBmaWxlcyBhbmQgZGVzY3JpYmUgdGhlaXIgY29udGVudCB0eXBlcy5cblxuLWIJQnJpZWYgKG5vIGZpbGVuYW1lKVxuLWgJRG9uJ3QgZm9sbG93IHN5bWxpbmtzIChkZWZhdWx0KVxuLUwJRm9sbG93IHN5bWxpbmtzXG4tcwlTaG93IGJsb2NrL2NoYXIgZGV2aWNlIGNvbnRlbnRzIgorCisjZGVmaW5lIEhFTFBfZmFsc2UgInVzYWdlOiBmYWxzZVxuXG5SZXR1cm4gbm9uemVyby4iCisKKyNkZWZpbmUgSEVMUF9leHBhbmQgInVzYWdlOiBleHBhbmQgWy10IFRBQkxJU1RdIFtGSUxFLi4uXVxuXG5FeHBhbmQgdGFicyB0byBzcGFjZXMgYWNjb3JkaW5nIHRvIHRhYnN0b3BzLlxuXG4tdAlUQUJMSVNUXG5cblNwZWNpZnkgdGFiIHN0b3BzLCBlaXRoZXIgYSBzaW5nbGUgbnVtYmVyIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgOCxcbm9yIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaW5jcmVhc2luZyBudW1iZXJzIHJlcHJlc2VudGluZyB0YWJzdG9wXG5wb3NpdGlvbnMgKGFic29sdXRlLCBub3QgaW5jcmVtZW50cykgd2l0aCBlYWNoIGFkZGl0aW9uYWwgdGFiIGJleW9uZFxudGhhdCBiZWNvbWluZyBvbmUgc3BhY2UuIgorCisjZGVmaW5lIEhFTFBfZW52ICJ1c2FnZTogZW52IFstMGldIFstZSBGSUxFXSBbLXUgTkFNRV0gW05BTUU9VkFMVUUuLi5dIFtDT01NQU5ELi4uXVxuXG5TZXQgdGhlIGVudmlyb25tZW50IGZvciBjb21tYW5kIGludm9jYXRpb24sIG9yIGxpc3QgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuXG4tZQlFeGVjdXRlIEZJTEUgaW5zdGVhZCBvZiBhcmd2WzBdIGluIENPTU1BTkQgbGlzdFxuLWkJQ2xlYXIgZXhpc3RpbmcgZW52aXJvbm1lbnRcbi11IE5BTUUJUmVtb3ZlIE5BTUUgZnJvbSB0aGUgZW52aXJvbm1lbnRcbi0wCVVzZSBudWxsIGluc3RlYWQgb2YgbmV3bGluZSBpbiBvdXRwdXQiCisKKyNkZWZpbmUgSEVMUF9lY2hvICJ1c2FnZTogZWNobyBbLUVlbl0gW0FSRy4uLl1cblxuV3JpdGUgZWFjaCBhcmd1bWVudCB0byBzdGRvdXQsIG9uZSBzcGFjZSBiZXR3ZWVuIGVhY2gsIGZvbGxvd2VkIGJ5IGEgbmV3bGluZS5cblxuLUUJUHJpbnQgZXNjYXBlIHNlcXVlbmNlcyBsaXRlcmFsbHkgKGRlZmF1bHQpXG4tZQlQcm9jZXNzIHRoZSBmb2xsb3dpbmcgZXNjYXBlIHNlcXVlbmNlczpcbglcXFxcICBCYWNrc2xhc2gJCVxcME5OTiBPY3RhbCAoMS0zIGRpZ2l0KQlcXHhISCBIZXggKDEtMiBkaWdpdClcbglcXGEgIEFsZXJ0IChiZWVwL2ZsYXNoKQlcXGIgIEJhY2tzcGFjZQkJXFxjICBTdG9wIGhlcmUgKG5vIFxcbilcbglcXGYgIEZvcm0gZmVlZAkJXFxuICBOZXdsaW5lCQlcXHIgIENhcnJpYWdlIHJldHVyblxuCVxcdCAgSG9yaXpvbnRhbCB0YWIJXFx2ICBWZXJ0aWNhbCB0YWJcbi1uCU5vIHRyYWlsaW5nIG5ld2xpbmUiCisKKyNkZWZpbmUgSEVMUF9kdSAidXNhZ2U6IGR1IFstZCBOXSBbLWFiY0hLa0xsbXN4XSBbRklMRS4uLl1cblxuU2hvdyBkaXNrIHVzYWdlLCBzcGFjZSBjb25zdW1lZCBieSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMuXG5cblNpemUgaW46XG4tYglBcHBhcmVudCBieXRlcyAoZGlyZWN0b3J5IGxpc3Rpbmcgc2l6ZSwgbm90IHNwYWNlIHVzZWQpXG4taAlIdW1hbiByZWFkYWJsZSAoZS5nLiwgMUsgMjQzTSAyRylcbi1rCTEwMjQgYnl0ZSBibG9ja3MgKGRlZmF1bHQpXG4tSwk1MTIgYnl0ZSBibG9ja3MgKHBvc2l4KVxuLW0JTWVnYWJ5dGVzXG5cbldoYXQgdG8gc2hvdzpcbi1hCUFsbCBmaWxlcywgbm90IGp1c3QgZGlyZWN0b3JpZXNcbi1jCUN1bXVsYXRpdmUgdG90YWxcbi1kIE4JT25seSBkZXB0aCA8IE5cbi1ICUZvbGxvdyBzeW1saW5rcyBvbiBjbWRsaW5lXG4tTAlGb2xsb3cgYWxsIHN5bWxpbmtzXG4tbAlEaXNhYmxlIGhhcmRsaW5rIGZpbHRlclxuLXMJT25seSB0b3RhbCBzaXplIG9mIGVhY2ggYXJndW1lbnRcbi14CURvbid0IGxlYXZlIHRoaXMgZmlsZXN5c3RlbSIKKworI2RlZmluZSBIRUxQX2Rpcm5hbWUgInVzYWdlOiBkaXJuYW1lIFBBVEguLi5cblxuU2hvdyBkaXJlY3RvcnkgcG9ydGlvbiBvZiBwYXRoLiIKKworI2RlZmluZSBIRUxQX2RmICJ1c2FnZTogZGYgWy1hSGhpa1BdIFstdCBUWVBFXSBbRklMRS4uLl1cblxuVGhlIFwiZGlzayBmcmVlXCIgY29tbWFuZCBzaG93cyB0b3RhbC91c2VkL2F2YWlsYWJsZSBkaXNrIHNwYWNlIGZvclxuZWFjaCBmaWxlc3lzdGVtIGxpc3RlZCBvbiB0aGUgY29tbWFuZCBsaW5lLCBvciBhbGwgY3VycmVudGx5IG1vdW50ZWRcbmZpbGVzeXN0ZW1zLlxuXG4tYQlTaG93IGFsbCAoaW5jbHVkaW5nIC9wcm9jIGFuZCBmcmllbmRzKVxuLUgJSHVtYW4gcmVhZGFibGUgKGs9MTAwMClcbi1oCUh1bWFuIHJlYWRhYmxlIChLPTEwMjQpXG4taQlTaG93IGlub2RlcyBpbnN0ZWFkIG9mIGJsb2Nrc1xuLWsJU2V0cyB1bml0cyBiYWNrIHRvIDEwMjQgYnl0ZXMgKHRoZSBkZWZhdWx0IHdpdGhvdXQgLVApXG4tUAlUaGUgU1VTdjMgXCJQZWRhbnRpY1wiIG9wdGlvbiAoNTEyIGJ5dGUgYmxvY2tzKVxuLXQgVFlQRQlEaXNwbGF5IG9ubHkgZmlsZXN5c3RlbXMgb2YgdGhpcyB0eXBlXG5cblBlZGFudGljIHByb3ZpZGVzIGEgc2xpZ2h0bHkgbGVzcyB1c2VmdWwgb3V0cHV0IGZvcm1hdCBkaWN0YXRlZCBieSBQT1NJWCxcbmFuZCBzZXRzIHRoZSB1bml0cyB0byA1MTIgYnl0ZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCAxMDI0IGJ5dGVzLiIKKworI2RlZmluZSBIRUxQX2RkICJ1c2FnZTogZGQgW2lmfG9mPUZJTEVdIFtpYnN8b2JzfGJzfGNvdW50fHNlZWt8c2tpcD1OXSBbY29udnxzdGF0dXN8aWZsYWd8b2ZsYWc9RkxBR1ssRkxBRy4uLl1dXG5cbkNvcHkvY29udmVydCBibG9ja3Mgb2YgZGF0YSBmcm9tIGlucHV0IHRvIG91dHB1dCwgd2l0aCB0aGUgZm9sbG93aW5nXG5rZXl3b3JkPXZhbHVlIG1vZGlmaWVycyAoYW5kIHRoZWlyIGRlZmF1bHQgdmFsdWVzKTpcblxuaWY9RklMRSAgUmVhZCBGSUxFIChzdGRpbikgICAgICAgICAgb2Y9RklMRSAgV3JpdGUgdG8gRklMRSAoc3Rkb3V0KVxuICAgYnM9TiAgQmxvY2sgc2l6ZSBpbiBieXRlcyAoNTEyKSAgY291bnQ9TiAgU3RvcCBhZnRlciBjb3B5aW5nIE4gYmxvY2tzIChhbGwpXG4gIGlicz1OICBJbnB1dCBibG9jayBzaXplIChicz0pICAgICAgIG9icz1OICBPdXRwdXQgYmxvY2sgc2l6ZSAoYnM9KVxuIHNraXA9TiAgU2tpcCBOIGlucHV0IGJsb2NrcyAoMCkgICAgIHNlZWs9TiAgU2tpcCBOIG91dHB1dCBibG9ja3MgKDApXG5cbkVhY2ggPU4gdmFsdWUgYWNjZXB0cyB0aGUgbm9ybWFsIHVuaXQgc3VmZml4ZXMgKHNlZSB0b3lib3ggLS1oZWxwKS5cblxuVGhlc2UgbW9kaWZpZXJzIHRha2UgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwb3RlbnRpYWwgb3B0aW9uczpcblxuaWZsYWc9Y291bnRfYnl0ZXMsc2tpcF9ieXRlcyAgIGNvdW50PU4gb3Igc2tpcD1OIGlzIGluIGJ5dGVzIG5vdCBibG9ja3Ncbm9mbGFnPXNlZWtfYnl0ZXMsYXBwZW5kICAgICAgICBzZWVrPU4gaXMgaW4gYnl0ZXMsIGFwcGVuZCBvdXRwdXQgdG8gZmlsZVxuc3RhdHVzPW5veGZlcixub25lICAgICAgICAgICAgIGRvbid0IHNob3cgdHJhbnNmZXIgcmF0ZSwgbm8gc3VtbWFyeSBpbmZvXG5jb252PVxuICBub3RydW5jICBEb24ndCB0cnVuY2F0ZSBvdXRwdXQgICAgbm9lcnJvciAgQ29udGludWUgYWZ0ZXIgcmVhZCBlcnJvcnNcbiAgc3luYyAgICAgWmVybyBwYWQgc2hvcnQgcmVhZHMgICAgIGZzeW5jICAgIEZsdXNoIG91dHB1dCB0byBkaXNrIGF0IGVuZFxuICBzcGFyc2UgICBTZWVrIHBhc3QgemVyb2VkIG91dHB1dCAgZXhjbCAgICAgRmFpbCBpZiBvdXRwdXQgZmlsZSBleGlzdHNcbiAgbm9jcmVhdCAgRmFpbCBpZiBvZj1GSUxFIG1pc3NpbmciCisKKyNkZWZpbmUgSEVMUF9kYXRlICJ1c2FnZTogZGF0ZSBbLXVdIFstSSBSRVNdIFstciBGSUxFXSBbLWQgREFURV0gWytESVNQTEFZX0ZPUk1BVF0gWy1EIFNFVF9GT1JNQVRdIFtTRVRdXG5cblNldC9nZXQgdGhlIGN1cnJlbnQgZGF0ZS90aW1lLiBXaXRoIG5vIFNFVCBzaG93cyB0aGUgY3VycmVudCBkYXRlLlxuXG4tZAlTaG93IERBVEUgaW5zdGVhZCBvZiBjdXJyZW50IHRpbWUgKGNvbnZlcnQgZGF0ZSBmb3JtYXQpXG4tRAkrRk9STUFUIGZvciBTRVQgb3IgLWQgKGluc3RlYWQgb2YgTU1ERGhobW1bW0NDXVlZXVsuc3NdKVxuLUkgUkVTCUlTTyA4NjAxIHdpdGggUkVTb2x1dGlvbiBkPWRhdGUvaD1ob3Vycy9tPW1pbnV0ZXMvcz1zZWNvbmRzL249bnNcbi1yCVVzZSBtb2RpZmljYXRpb24gdGltZSBvZiBGSUxFIGluc3RlYWQgb2YgY3VycmVudCBkYXRlXG4tcyBEQVRFCVNldCB0aGUgc3lzdGVtIGNsb2NrIHRvIERBVEUuXG4tdQlVc2UgVVRDIGluc3RlYWQgb2YgY3VycmVudCB0aW1lem9uZVxuXG5TdXBwb3J0ZWQgaW5wdXQgZm9ybWF0czpcblxuTU1ERGhobW1bW0NDXVlZXVsuc3NdICAgICBQT1NJWFxuQFVOSVhUSU1FWy5GUkFDVElPTl0gICAgICBzZWNvbmRzIHNpbmNlIG1pZG5pZ2h0IDE5NzAtMDEtMDFcbllZWVktTU0tREQgW2hoOm1tWzpzc11dICAgSVNPIDg2MDFcbmhoOm1tWzpzc10gICAgICAgICAgICAgICAgMjQtaG91ciB0aW1lIHRvZGF5XG5cbkFsbCBpbnB1dCBmb3JtYXRzIGNhbiBiZSBmb2xsb3dlZCBieSBmcmFjdGlvbmFsIHNlY29uZHMsIGFuZC9vciBhIFVUQ1xub2Zmc2V0IHN1Y2ggYXMgLTA4MDAuXG5cbkFsbCBpbnB1dCBmb3JtYXRzIGNhbiBiZSBwcmVjZWRlZCBieSBUWj1cImlkXCIgdG8gc2V0IHRoZSBpbnB1dCB0aW1lIHpvbmVcbnNlcGFyYXRlbHkgZnJvbSB0aGUgb3V0cHV0IHRpbWUgem9uZS4gT3RoZXJ3aXNlICRUWiBzZXRzIGJvdGguXG5cbitGT1JNQVQgc3BlY2lmaWVzIGRpc3BsYXkgZm9ybWF0IHN0cmluZyB1c2luZyBzdHJmdGltZSgzKSBzeW50YXg6XG5cbiUlIGxpdGVyYWwgJSAgICAgICAgICAgICAlbiBuZXdsaW5lICAgICAgICAgICAgICAldCB0YWJcbiVTIHNlY29uZHMgKDAwLTYwKSAgICAgICAlTSBtaW51dGUgKDAwLTU5KSAgICAgICAlbSBtb250aCAoMDEtMTIpXG4lSCBob3VyICgwLTIzKSAgICAgICAgICAgJUkgaG91ciAoMDEtMTIpICAgICAgICAgJXAgQU0vUE1cbiV5IHNob3J0IHllYXIgKDAwLTk5KSAgICAlWSB5ZWFyICAgICAgICAgICAgICAgICAlQyBjZW50dXJ5XG4lYSBzaG9ydCB3ZWVrZGF5IG5hbWUgICAgJUEgd2Vla2RheSBuYW1lICAgICAgICAgJXUgZGF5IG9mIHdlZWsgKDEtNywgMT1tb24pXG4lYiBzaG9ydCBtb250aCBuYW1lICAgICAgJUIgbW9udGggbmFtZSAgICAgICAgICAgJVogdGltZXpvbmUgbmFtZVxuJWogZGF5IG9mIHllYXIgKDAwMS0zNjYpICVkIGRheSBvZiBtb250aCAoMDEtMzEpICVlIGRheSBvZiBtb250aCAoIDEtMzEpXG4lTiBuYW5vc2VjIChvdXRwdXQgb25seSlcblxuJVUgV2VlayBvZiB5ZWFyICgwLTUzIHN0YXJ0IFN1bmRheSkgICAlVyBXZWVrIG9mIHllYXIgKDAtNTMgc3RhcnQgTW9uZGF5KVxuJVYgV2VlayBvZiB5ZWFyICgxLTUzIHN0YXJ0IE1vbmRheSwgd2VlayA8IDQgZGF5cyBub3QgcGFydCBvZiB0aGlzIHllYXIpXG5cbiVGIFwiJVktJW0tJWRcIiAgICVSIFwiJUg6JU1cIiAgICAgICAgJVQgXCIlSDolTTolU1wiICAgICAgICAleiAgdGltZXpvbmUgKC0wODAwKVxuJUQgXCIlbS8lZC8leVwiICAgJXIgXCIlSTolTTolUyAlcFwiICAlaCBcIiViXCIgICAgICAgICAgICAgICU6eiB0aW1lem9uZSAoLTA4OjAwKVxuJXggbG9jYWxlIGRhdGUgICVYIGxvY2FsZSB0aW1lICAgICVjIGxvY2FsZSBkYXRlL3RpbWUgICVzICB1bml4IGVwb2NoIHRpbWUiCisKKyNkZWZpbmUgSEVMUF9jdXQgInVzYWdlOiBjdXQgWy1Ec10gWy1iY0NmRiBMSVNUXSBbLWRPIERFTElNXSBbRklMRS4uLl1cblxuUHJpbnQgc2VsZWN0ZWQgcGFydHMgb2YgbGluZXMgZnJvbSBlYWNoIEZJTEUgdG8gc3RhbmRhcmQgb3V0cHV0LlxuXG5FYWNoIHNlbGVjdGlvbiBMSVNUIGlzIGNvbW1hIHNlcGFyYXRlZCwgZWl0aGVyIG51bWJlcnMgKGNvdW50aW5nIGZyb20gMSlcbm9yIGRhc2ggc2VwYXJhdGVkIHJhbmdlcyAoaW5jbHVzaXZlLCB3aXRoIFgtIG1lYW5pbmcgdG8gZW5kIG9mIGxpbmUgYW5kIC1YXG5mcm9tIHN0YXJ0KS4gQnkgZGVmYXVsdCBzZWxlY3Rpb24gcmFuZ2VzIGFyZSBzb3J0ZWQgYW5kIGNvbGxhdGVkLCB1c2UgLURcbnRvIHByZXZlbnQgdGhhdC5cblxuLWIJU2VsZWN0IGJ5dGVzICh3aXRoIC1uIHJvdW5kIHN0YXJ0L2VuZCBkb3duIHRvIHN0YXJ0IG9mIHV0ZjggY2hhcilcbi1jCVNlbGVjdCBVVEYtOCBjaGFyYWN0ZXJzXG4tQwlTZWxlY3QgdW5pY29kZSBjb2x1bW5zXG4tZAlJbnB1dCBkZWxpbWl0ZXIgKGRlZmF1bHQgaXMgVEFCIGZvciAtZiwgcnVuIG9mIHdoaXRlc3BhY2UgZm9yIC1GKVxuLUQJRG9uJ3Qgc29ydC9jb2xsYXRlIHNlbGVjdGlvbnMgb3IgbWF0Y2ggLWZGIGxpbmVzIHdpdGhvdXQgZGVsaW1pdGVyXG4tZglTZWxlY3QgZmllbGRzICh3b3Jkcykgc2VwYXJhdGVkIGJ5IHNpbmdsZSBERUxJTSBjaGFyYWN0ZXJcbi1GCVNlbGVjdCBmaWVsZHMgc2VwYXJhdGVkIGJ5IERFTElNIHJlZ2V4XG4tTwlPdXRwdXQgc2VwYXJhdG9yIChkZWZhdWx0IG9uZSBzcGFjZSBmb3IgLUYsIGlucHV0IGRlbGltIGZvciAtZilcbi1zCVNraXAgbGluZXMgd2l0aG91dCBkZWxpbWl0ZXJzIgorCisjZGVmaW5lIEhFTFBfY3BpbyAidXNhZ2U6IGNwaW8gLXtvfHR8aXxwIERFU1R9IFstZEx0dXZdIFstLXZlcmJvc2VdIFstRiBGSUxFXSBbLVIgW1VTRVJdWzpHUk9VUF0gWy0tbm8tcHJlc2VydmUtb3duZXJdXG5cbkNvcHkgZmlsZXMgaW50byBhbmQgb3V0IG9mIGEgXCJuZXdjXCIgZm9ybWF0IGNwaW8gYXJjaGl2ZS5cblxuLWQJQ3JlYXRlIGRpcmVjdG9yaWVzIGlmIG5lZWRlZFxuLUYgRklMRQlVc2UgYXJjaGl2ZSBGSUxFIGluc3RlYWQgb2Ygc3RkaW4vc3Rkb3V0XG4taQlFeHRyYWN0IGZyb20gYXJjaGl2ZSBpbnRvIGZpbGUgc3lzdGVtIChzdGRpbj1hcmNoaXZlKVxuLUwJRm9sbG93IHN5bWxpbmtzXG4tbwlDcmVhdGUgYXJjaGl2ZSAoc3RkaW49bGlzdCBvZiBmaWxlcywgc3Rkb3V0PWFyY2hpdmUpXG4tcCBERVNUCUNvcHktcGFzcyBtb2RlLCBjb3B5IHN0ZGluIGZpbGUgbGlzdCB0byBkaXJlY3RvcnkgREVTVFxuLVIgVVNFUglSZXBsYWNlIG93bmVyIHdpdGggVVNFUls6R1JPVVBdXG4tdAlUZXN0IGZpbGVzIChsaXN0IG9ubHksIHN0ZGluPWFyY2hpdmUsIHN0ZG91dD1saXN0IG9mIGZpbGVzKVxuLXUJVW5saW5rIGV4aXN0aW5nIGZpbGVzIHdoZW4gZXh0cmFjdGluZ1xuLXYJVmVyYm9zZVxuLS1uby1wcmVzZXJ2ZS1vd25lciAgICAgRG9uJ3Qgc2V0IG93bmVyc2hpcCBkdXJpbmcgZXh0cmFjdCIKKworI2RlZmluZSBIRUxQX2luc3RhbGwgInVzYWdlOiBpbnN0YWxsIFstZERwc3ZdIFstbyBVU0VSXSBbLWcgR1JPVVBdIFstbSBNT0RFXSBbLXQgVEFSR0VUXSBbU09VUkNFLi4uXSBbREVTVF1cblxuQ29weSBmaWxlcyBhbmQgc2V0IGF0dHJpYnV0ZXMuXG5cbi1kCUFjdCBsaWtlIG1rZGlyIC1wXG4tRAlDcmVhdGUgbGVhZGluZyBkaXJlY3RvcmllcyBmb3IgREVTVFxuLWcJTWFrZSBjb3B5IGJlbG9uZyB0byBHUk9VUFxuLW0JU2V0IHBlcm1pc3Npb25zIHRvIE1PREVcbi1vCU1ha2UgY29weSBiZWxvbmcgdG8gVVNFUlxuLXAJUHJlc2VydmUgdGltZXN0YW1wc1xuLXMJQ2FsbCBcInN0cmlwIC1wXCJcbi10CUNvcHkgZmlsZXMgdG8gVEFSR0VUIGRpciAobm8gREVTVClcbi12CVZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9tdiAidXNhZ2U6IG12IFstRmZpblR2eF0gWy10IFRBUkdFVF0gU09VUkNFLi4uIFtERVNUXVxuXG4tRglEZWxldGUgYW55IGV4aXN0aW5nIERFU1QgZmlyc3QgKC0tcmVtb3ZlLWRlc3RpbmF0aW9uKVxuLWYJRm9yY2UgY29weSBieSBkZWxldGluZyBkZXN0aW5hdGlvbiBmaWxlXG4taQlJbnRlcmFjdGl2ZSwgcHJvbXB0IGJlZm9yZSBvdmVyd3JpdGluZyBleGlzdGluZyBERVNUXG4tbglObyBjbG9iYmVyIChkb24ndCBvdmVyd3JpdGUgREVTVClcbi10CU1vdmUgdG8gVEFSR0VUIGRpciAobm8gREVTVClcbi1UCURFU1QgYWx3YXlzIHRyZWF0ZWQgYXMgZmlsZSwgbWF4IDIgYXJndW1lbnRzXG4tdglWZXJib3NlXG4teAlBdG9taWNhbGx5IGV4Y2hhbmdlIHNvdXJjZS9kZXN0ICgtLXN3YXApIgorCisjZGVmaW5lIEhFTFBfY3AgInVzYWdlOiBjcCBbLWFEZEZmSGlMbG5QcFJyc1R1dl0gWy0tcHJlc2VydmU9bW90Y3hhXSBbLXQgVEFSR0VUXSBTT1VSQ0UuLi4gW0RFU1RdXG5cbkNvcHkgZmlsZXMgZnJvbSBTT1VSQ0UgdG8gREVTVC4gIElmIG1vcmUgdGhhbiBvbmUgU09VUkNFLCBERVNUIG11c3RcbmJlIGEgZGlyZWN0b3J5LlxuXG4tYQlTYW1lIGFzIC1kcHJcbi1ECUNyZWF0ZSBsZWFkaW5nIGRpcnMgdW5kZXIgREVTVCAoLS1wYXJlbnRzKVxuLWQJRG9uJ3QgZGVyZWZlcmVuY2Ugc3ltbGlua3Ncbi1GCURlbGV0ZSBhbnkgZXhpc3RpbmcgREVTVCBmaXJzdCAoLS1yZW1vdmUtZGVzdGluYXRpb24pXG4tZglEZWxldGUgZGVzdGluYXRpb24gZmlsZXMgd2UgY2FuJ3Qgd3JpdGUgdG9cbi1ICUZvbGxvdyBzeW1saW5rcyBsaXN0ZWQgb24gY29tbWFuZCBsaW5lXG4taQlJbnRlcmFjdGl2ZSwgcHJvbXB0IGJlZm9yZSBvdmVyd3JpdGluZyBleGlzdGluZyBERVNUXG4tTAlGb2xsb3cgYWxsIHN5bWxpbmtzXG4tbAlIYXJkIGxpbmsgaW5zdGVhZCBvZiBjb3B5XG4tbglObyBjbG9iYmVyIChkb24ndCBvdmVyd3JpdGUgREVTVClcbi1QCURvIG5vdCBmb2xsb3cgc3ltbGlua3Ncbi1wCVByZXNlcnZlIHRpbWVzdGFtcHMsIG93bmVyc2hpcCwgYW5kIG1vZGVcbi1SCVJlY3Vyc2UgaW50byBzdWJkaXJlY3RvcmllcyAoREVTVCBtdXN0IGJlIGEgZGlyZWN0b3J5KVxuLXIJU3lub255bSBmb3IgLVJcbi1zCVN5bWxpbmsgaW5zdGVhZCBvZiBjb3B5XG4tVAlERVNUIGFsd2F5cyB0cmVhdGVkIGFzIGZpbGUsIG1heCAyIGFyZ3VtZW50c1xuLXQJQ29weSB0byBUQVJHRVQgZGlyIChubyBERVNUKVxuLXUJVXBkYXRlIChrZWVwIG5ld2VzdCBtdGltZSlcbi12CVZlcmJvc2VcblxuQXJndW1lbnRzIHRvIC0tcHJlc2VydmUgYXJlIHRoZSBmaXJzdCBsZXR0ZXIocykgb2Y6XG5cbiAgICAgICAgbW9kZSAtIHBlcm1pc3Npb25zIChpZ25vcmUgdW1hc2sgZm9yIHJ3eCwgY29weSBzdWlkIGFuZCBzdGlja3kgYml0KVxuICAgb3duZXJzaGlwIC0gdXNlciBhbmQgZ3JvdXBcbiAgdGltZXN0YW1wcyAtIGZpbGUgY3JlYXRpb24sIG1vZGlmaWNhdGlvbiwgYW5kIGFjY2VzcyB0aW1lcy5cbiAgICAgY29udGV4dCAtIHNlY3VyaXR5IGNvbnRleHRcbiAgICAgICB4YXR0ciAtIGV4dGVuZGVkIGF0dHJpYnV0ZXNcbiAgICAgICAgIGFsbCAtIGFsbCBvZiB0aGUgYWJvdmUiCisKKyNkZWZpbmUgSEVMUF9jb21tICJ1c2FnZTogY29tbSBbLTEyM10gRklMRTEgRklMRTJcblxuUmVhZCBGSUxFMSBhbmQgRklMRTIsIHdoaWNoIHNob3VsZCBiZSBvcmRlcmVkLCBhbmQgcHJvZHVjZSB0aHJlZSB0ZXh0XG5jb2x1bW5zIGFzIG91dHB1dDogbGluZXMgb25seSBpbiBGSUxFMTsgbGluZXMgb25seSBpbiBGSUxFMjsgYW5kIGxpbmVzXG5pbiBib3RoIGZpbGVzLiBGaWxlbmFtZSBcIi1cIiBpcyBhIHN5bm9ueW0gZm9yIHN0ZGluLlxuXG4tMQlTdXBwcmVzcyB0aGUgb3V0cHV0IGNvbHVtbiBvZiBsaW5lcyB1bmlxdWUgdG8gRklMRTFcbi0yCVN1cHByZXNzIHRoZSBvdXRwdXQgY29sdW1uIG9mIGxpbmVzIHVuaXF1ZSB0byBGSUxFMlxuLTMJU3VwcHJlc3MgdGhlIG91dHB1dCBjb2x1bW4gb2YgbGluZXMgZHVwbGljYXRlZCBpbiBGSUxFMSBhbmQgRklMRTIiCisKKyNkZWZpbmUgSEVMUF9jbXAgInVzYWdlOiBjbXAgWy1sc10gWy1uIExFTl0gRklMRTEgW0ZJTEUyIFtTS0lQMSBbU0tJUDJdXV1cblxuQ29tcGFyZSB0aGUgY29udGVudHMgb2YgZmlsZXMgKHZzIHN0ZGluIGlmIG9ubHkgb25lIGdpdmVuKSwgb3B0aW9uYWxseVxuc2tpcHBpbmcgYnl0ZXMgYXQgc3RhcnQuXG5cbi1sCVNob3cgYWxsIGRpZmZlcmluZyBieXRlc1xuLW4gTEVOCUNvbXBhcmUgYXQgbW9zdCBMRU4gYnl0ZXNcbi1zCVNpbGVudCIKKworI2RlZmluZSBIRUxQX2NyYzMyICJ1c2FnZTogY3JjMzIgW2ZpbGUuLi5dXG5cbk91dHB1dCBjcmMzMiBjaGVja3N1bSBmb3IgZWFjaCBmaWxlLiIKKworI2RlZmluZSBIRUxQX2Nrc3VtICJ1c2FnZTogY2tzdW0gWy1ISVBMTl0gW0ZJTEUuLi5dXG5cbkZvciBlYWNoIGZpbGUsIG91dHB1dCBjcmMzMiBjaGVja3N1bSB2YWx1ZSwgbGVuZ3RoIGFuZCBuYW1lIG9mIGZpbGUuXG5JZiBubyBmaWxlcyBsaXN0ZWQsIGNvcHkgZnJvbSBzdGRpbi4gIEZpbGVuYW1lIFwiLVwiIGlzIGEgc3lub255bSBmb3Igc3RkaW4uXG5cbi1ICUhleGFkZWNpbWFsIGNoZWNrc3VtIChkZWZhdWx0cyB0byBkZWNpbWFsKVxuLUkJU2tpcCBwb3N0LWludmVyc2lvblxuLVAJUHJlLWludmVyc2lvblxuLUwJTGl0dGxlIGVuZGlhbiAoZGVmYXVsdHMgdG8gYmlnIGVuZGlhbilcbi1OCURvIG5vdCBpbmNsdWRlIGxlbmd0aCBpbiBDUkMgY2FsY3VsYXRpb24gKG9yIG91dHB1dCkiCisKKyNkZWZpbmUgSEVMUF9jaG1vZCAidXNhZ2U6IGNobW9kIFstUl0gTU9ERSBGSUxFLi4uXG5cbkNoYW5nZSBtb2RlIG9mIGxpc3RlZCBmaWxlW3NdIChyZWN1cnNpdmVseSB3aXRoIC1SKS5cblxuTU9ERSBjYW4gYmUgKGNvbW1hLXNlcGFyYXRlZCkgc3RhbnphczogW3Vnb2FdWystPV1bcnd4c3RYdWdvXVxuXG5TdGFuemFzIGFyZSBhcHBsaWVkIGluIG9yZGVyOiBGb3IgZWFjaCBjYXRlZ29yeSAodSA9IHVzZXIsXG5nID0gZ3JvdXAsIG8gPSBvdGhlciwgYSA9IGFsbCB0aHJlZSwgaWYgbm9uZSBzcGVjaWZpZWQgZGVmYXVsdCBpcyBhKSxcbnNldCAoKyksIGNsZWFyICgtKSwgb3IgY29weSAoPSksIHIgPSByZWFkLCB3ID0gd3JpdGUsIHggPSBleGVjdXRlLlxucyA9IHUrcyA9IHN1aWQsIGcrcyA9IHNnaWQsICt0ID0gc3RpY2t5LiAobytzIGlnbm9yZWQgc28gYStzIGRvZXNuJ3Qgc2V0ICt0KVxuc3VpZC9zZ2lkOiBleGVjdXRlIGFzIHRoZSB1c2VyL2dyb3VwIHdobyBvd25zIHRoZSBmaWxlLlxuc3RpY2t5OiBjYW4ndCBkZWxldGUgZmlsZXMgeW91IGRvbid0IG93biBvdXQgb2YgdGhpcyBkaXJlY3RvcnlcblggPSB4IGZvciBkaXJlY3RvcmllcyBvciBpZiBhbnkgY2F0ZWdvcnkgYWxyZWFkeSBoYXMgeCBzZXQuXG5cbk9yIE1PREUgY2FuIGJlIGFuIG9jdGFsIHZhbHVlIHVwIHRvIDc3NzcJdWcgdXV1Z2dnb29vCXRvcCArXG5iaXQgMSA9IG8reCwgYml0IDE8PDggPSB1K3csIDE8PDExID0gZysxCXNzdHJ3eHJ3eHJ3eAlib3R0b21cblxuRXhhbXBsZXM6XG5jaG1vZCB1K3cgZmlsZSAtIGFsbG93IG93bmVyIG9mIFwiZmlsZVwiIHRvIHdyaXRlIHRvIGl0LlxuY2htb2QgNzQ0IGZpbGUgLSB1c2VyIGNhbiByZWFkL3dyaXRlL2V4ZWN1dGUsIGV2ZXJ5b25lIGVsc2UgcmVhZCBvbmx5IgorCisjZGVmaW5lIEhFTFBfY2hvd24gInNlZTogY2hncnAiCisKKyNkZWZpbmUgSEVMUF9jaGdycCAidXNhZ2U6IGNoZ3JwL2Nob3duIFstUkhMUF0gWy1mdmhdIEdST1VQIEZJTEUuLi5cblxuQ2hhbmdlIGdyb3VwIG9mIG9uZSBvciBtb3JlIGZpbGVzLlxuXG4tZglTdXBwcmVzcyBtb3N0IGVycm9yIG1lc3NhZ2VzXG4taAlDaGFuZ2Ugc3ltbGlua3MgaW5zdGVhZCBvZiB3aGF0IHRoZXkgcG9pbnQgdG9cbi1SCVJlY3Vyc2UgaW50byBzdWJkaXJlY3RvcmllcyAoaW1wbGllcyAtaClcbi1ICVdpdGggLVIgY2hhbmdlIHRhcmdldCBvZiBzeW1saW5rLCBmb2xsb3cgY29tbWFuZCBsaW5lIHN5bWxpbmtzXG4tTAlXaXRoIC1SIGNoYW5nZSB0YXJnZXQgb2Ygc3ltbGluaywgZm9sbG93IGFsbCBzeW1saW5rc1xuLVAJV2l0aCAtUiBjaGFuZ2Ugc3ltbGluaywgZG8gbm90IGZvbGxvdyBzeW1saW5rcyAoZGVmYXVsdClcbi12CVZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9jYXQgInVzYWdlOiBjYXQgWy1ldHV2XSBbRklMRS4uLl1cblxuQ29weSAoY29uY2F0ZW5hdGUpIGZpbGVzIHRvIHN0ZG91dC4gIElmIG5vIGZpbGVzIGxpc3RlZCwgY29weSBmcm9tIHN0ZGluLlxuRmlsZW5hbWUgXCItXCIgaXMgYSBzeW5vbnltIGZvciBzdGRpbi5cblxuLWUJTWFyayBlYWNoIG5ld2xpbmUgd2l0aCAkXG4tdAlTaG93IHRhYnMgYXMgXklcbi11CUNvcHkgb25lIGJ5dGUgYXQgYSB0aW1lIChzbG93KVxuLXYJRGlzcGxheSBub25wcmludGluZyBjaGFyYWN0ZXJzIGFzIGVzY2FwZSBzZXF1ZW5jZXMgd2l0aCBNLXggZm9yXG4JaGlnaCBhc2NpaSBjaGFyYWN0ZXJzICg+MTI3KSwgYW5kIF54IGZvciBvdGhlciBub25wcmludGluZyBjaGFycyIKKworI2RlZmluZSBIRUxQX2NhbCAidXNhZ2U6IGNhbCBbLWhdIFtbW0RBWV0gTU9OVEhdIFlFQVJdXG5cblByaW50IGEgY2FsZW5kYXIuXG5cbldpdGggb25lIGFyZ3VtZW50LCBwcmludHMgYWxsIG1vbnRocyBvZiB0aGUgc3BlY2lmaWVkIHllYXIuXG5XaXRoIHR3byBhcmd1bWVudHMsIHByaW50cyBjYWxlbmRhciBmb3IgbW9udGggYW5kIHllYXIuXG5XaXRoIHRocmVlIGFyZ3VtZW50cywgaGlnaGxpZ2h0cyBkYXkgd2l0aGluIG1vbnRoIGFuZCB5ZWFyLlxuXG4taAlEb24ndCBoaWdobGlnaHQgdG9kYXkiCisKKyNkZWZpbmUgSEVMUF9iYXNlbmFtZSAidXNhZ2U6IGJhc2VuYW1lIFstYV0gWy1zIFNVRkZJWF0gTkFNRS4uLiB8IE5BTUUgW1NVRkZJWF1cblxuUmV0dXJuIG5vbi1kaXJlY3RvcnkgcG9ydGlvbiBvZiBhIHBhdGhuYW1lIHJlbW92aW5nIHN1ZmZpeC5cblxuLWEJCUFsbCBhcmd1bWVudHMgYXJlIG5hbWVzXG4tcyBTVUZGSVgJUmVtb3ZlIHN1ZmZpeCAoaW1wbGllcyAtYSkiCisKZGlmZiAtLWdpdCBhL2FuZHJvaWQvZGV2aWNlL2dlbmVyYXRlZC9uZXd0b3lzLmggYi9hbmRyb2lkL2RldmljZS9nZW5lcmF0ZWQvbmV3dG95cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4NzMwNzEKLS0tIC9kZXYvbnVsbAorKysgYi9hbmRyb2lkL2RldmljZS9nZW5lcmF0ZWQvbmV3dG95cy5oCkBAIC0wLDAgKzEsMzQ3IEBACitVU0VfVE9ZQk9YKE5FV1RPWSh0b3lib3gsIDAsIFRPWUZMQUdfU1RBWVJPT1R8VE9ZRkxBR19OT0hFTFApKQorVVNFX1NIKE9MRFRPWSgtYmFzaCwgc2gsIDApKQorVVNFX1NIKE9MRFRPWSgtc2gsIHNoLCAwKSkKK1VTRV9TSChPTERUT1koLXRveXNoLCBzaCwgMCkpCitVU0VfU0goT0xEVE9ZKC4sIHNvdXJjZSwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX1RSVUUoT0xEVE9ZKDosIHRydWUsIFRPWUZMQUdfTk9GT1JLfFRPWUZMQUdfTk9IRUxQKSkKK1VTRV9URVNUX0dMVUUoT0xEVE9ZKFssIHRlc3QsIFRPWUZMQUdfQklOfFRPWUZMQUdfTUFZRk9SS3xUT1lGTEFHX05PSEVMUCkpCitVU0VfU0goT0xEVE9ZKFtbLCB0ZXN0LCBUT1lGTEFHX05PRk9SS3xUT1lGTEFHX05PSEVMUCkpCitVU0VfQUNQSShORVdUT1koYWNwaSwgImFiY3RWIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dST1VQQUREKE9MRFRPWShhZGRncm91cCwgZ3JvdXBhZGQsIFRPWUZMQUdfTkVFRFJPT1R8VE9ZRkxBR19TQklOKSkKK1VTRV9VU0VSQUREKE9MRFRPWShhZGR1c2VyLCB1c2VyYWRkLCBUT1lGTEFHX05FRURST09UfFRPWUZMQUdfVU1BU0t8VE9ZRkxBR19TQklOKSkKK1VTRV9BUkNIKE5FV1RPWShhcmNoLCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfQVJQKE5FV1RPWShhcnAsICJ2aTpuRHNkYXA6QTpIOlsrQXBdWyFzZF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfQVJQSU5HKE5FV1RPWShhcnBpbmcsICI8MT4xczpJOncjPDBjIzwwQVVEYnFmWytBVV1bK0RmXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfQVNDSUkoTkVXVE9ZKGFzY2lpLCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0JBU0UzMihORVdUT1koYmFzZTMyLCAiZGl3IzwwPTc2WyFkd10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0JBU0U2NChORVdUT1koYmFzZTY0LCAiZGl3IzwwPTc2WyFkd10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0JBU0VOQU1FKE5FV1RPWShiYXNlbmFtZSwgIl48MWFzOiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSChPTERUT1koYmFzaCwgc2gsIFRPWUZMQUdfQklOKSkKK1VTRV9CQyhORVdUT1koYmMsICJpKGludGVyYWN0aXZlKWwobWF0aGxpYilxKHF1aWV0KXMoc3RhbmRhcmQpdyh3YXJuKSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9CTEtESVNDQVJEKE5FV1RPWShibGtkaXNjYXJkLCAiPDE+MWYoZm9yY2UpbChsZW5ndGgpIzwwbyhvZmZzZXQpIzwwcyhzZWN1cmUpeih6ZXJvb3V0KVshc3pdIiwgVE9ZRkxBR19CSU4pKQorVVNFX0JMS0lEKE5FV1RPWShibGtpZCwgIlVMbzpzKlshTFVdIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9CTE9DS0RFVihORVdUT1koYmxvY2tkZXYsICI8MT4xKHNldHJvKShzZXRydykoZ2V0cm8pKGdldHNzKShnZXRic3opKHNldGJzeikjPDAoZ2V0c3opKGdldHNpemUpKGdldHNpemU2NCkoZ2V0cmEpKHNldHJhKSM8MChmbHVzaGJ1ZnMpKHJlcmVhZHB0KSIsVE9ZRkxBR19TQklOKSkKK1VTRV9CT09UQ0hBUlREKE5FV1RPWShib290Y2hhcnRkLCAwLCBUT1lGTEFHX1NUQVlST09UfFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9CUkNUTChORVdUT1koYnJjdGwsICI8MSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfQlVOWklQMihORVdUT1koYnVuemlwMiwgImNmdGt2IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0JaQ0FUKE5FV1RPWShiemNhdCwgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NBTChORVdUT1koY2FsLCAiPjNoIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NBVChORVdUT1koY2F0LCAidXZ0ZSIsIFRPWUZMQUdfQklOKSkKK1VTRV9TSChORVdUT1koY2QsICI+MUxQWy1MUF0iLCBUT1lGTEFHX05PRk9SSykpCitVU0VfQ0hBVFRSKE5FV1RPWShjaGF0dHIsICI/cCN2I1IiLCBUT1lGTEFHX0JJTikpCitVU0VfQ0hDT04oTkVXVE9ZKGNoY29uLCAiPDJodlIiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfQ0hHUlAoTkVXVE9ZKGNoZ3JwLCAiPDJoKG5vLWRlcmVmZXJlbmNlKVBMSFJmdlstSExQXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9DSE1PRChORVdUT1koY2htb2QsICI8Mj92ZlJbLXZmXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9DSE9XTihPTERUT1koY2hvd24sIGNoZ3JwLCBUT1lGTEFHX0JJTikpCitVU0VfQ0hST09UKE5FV1RPWShjaHJvb3QsICJePDEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU58VE9ZRkxBR19BUkdGQUlMKDEyNSkpKQorVVNFX0NIUlQoTkVXVE9ZKGNocnQsICJebXAjPDBpUmJyZm9bIWlicmZvXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9DSFNIKE5FV1RPWShjaHNoLCAiPjFSOnM6YSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfU1RBWVJPT1QpKQorVVNFX0NIVlQoTkVXVE9ZKGNodnQsICI8MT4xIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NLU1VNKE5FV1RPWShja3N1bSwgIkhJUExOIiwgVE9ZRkxBR19CSU4pKQorVVNFX0NMRUFSKE5FV1RPWShjbGVhciwgTlVMTCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NNUChORVdUT1koY21wLCAiPDE+NGxzKHNpbGVudCkocXVpZXQpbiM8MVshbHNdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19BUkdGQUlMKDIpKSkKK1VTRV9DT01NKE5FV1RPWShjb21tLCAiPDI+MjMyMSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9DT1VOVChORVdUT1koY291bnQsICI8MD4wbCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9DUChORVdUT1koY3AsICI8MShwcmVzZXJ2ZSk6O0QocGFyZW50cylSSExQcHJ1ZGFzbHYodmVyYm9zZSluRihyZW1vdmUtZGVzdGluYXRpb24pZml0OlRbLUhMUGRdWy1uaXVdWytScl0iLCBUT1lGTEFHX0JJTikpCitVU0VfQ1BJTyhORVdUT1koY3BpbywgIihpZ25vcmUtZGV2bm8pKHJlbnVtYmVyLWlub2RlcykocXVpZXQpKG5vLXByZXNlcnZlLW93bmVyKVIob3duZXIpOm1kKG1ha2UtZGlyZWN0b3JpZXMpdUxIOnB8aXx0fEY6dih2ZXJib3NlKW98WyFwaW9dWyFwb3RdWyFwRl0iLCBUT1lGTEFHX0JJTikpCitVU0VfQ1JDMzIoTkVXVE9ZKGNyYzMyLCAwLCBUT1lGTEFHX0JJTikpCitVU0VfQ1JPTkQoTkVXVE9ZKGNyb25kLCAiZmJTbCM8MD04ZCM8MEw6YzpbLWJmXVstTFNdWy1sZF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfQ1JPTlRBQihORVdUT1koY3JvbnRhYiwgImM6dTplbHJbIWVscl0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX1NUQVlST09UKSkKK1VTRV9DU1BMSVQoTkVXVE9ZKGNzcGxpdCwgIjwyc2tmOm4jIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NVVChORVdUT1koY3V0LCAiYip8Yyp8Zip8RihyZWdleC1maWVsZHMpKnxDKnxPKG91dHB1dC1kZWxpbWl0ZXIpOmQ6c0QoYWxsb3ctZHVwbGljYXRlcyluWyFjYmZGXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9EQVRFKE5FV1RPWShkYXRlLCAiPjFkOkQ6SShpc28tODYwMSk6O3I6czp1KHV0YylbIWRyXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9ERChORVdUT1koZGQsIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9ERUFMTE9DVlQoTkVXVE9ZKGRlYWxsb2N2dCwgIj4xIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfU0goTkVXVE9ZKGRlY2xhcmUsICJwQWFpbHVueHIiLCBUT1lGTEFHX05PRk9SSykpCitVU0VfR1JPVVBERUwoT0xEVE9ZKGRlbGdyb3VwLCBncm91cGRlbCwgVE9ZRkxBR19ORUVEUk9PVHxUT1lGTEFHX1NCSU4pKQorVVNFX1VTRVJERUwoT0xEVE9ZKGRlbHVzZXIsIHVzZXJkZWwsIFRPWUZMQUdfTkVFRFJPT1R8VE9ZRkxBR19TQklOKSkKK1VTRV9ERU1PX01BTllfT1BUSU9OUyhORVdUT1koZGVtb19tYW55X29wdGlvbnMsICJaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQXp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhIiwgVE9ZRkxBR19CSU4pKQorVVNFX0RFTU9fTlVNQkVSKE5FV1RPWShkZW1vX251bWJlciwgIkQjPTM8M00jPDBoY2RicyIsIFRPWUZMQUdfQklOKSkKK1VTRV9ERU1PX1NDQU5LRVkoTkVXVE9ZKGRlbW9fc2NhbmtleSwgMCwgVE9ZRkxBR19CSU4pKQorVVNFX0RFTU9fVVRGOFRPV0MoTkVXVE9ZKGRlbW9fdXRmOHRvd2MsIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9ERVZNRU0oTkVXVE9ZKGRldm1lbSwgIjwxPjMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX0RGKE5FV1RPWShkZiwgIkhQa2hpdCphWy1IUGhdIiwgVE9ZRkxBR19CSU4pKQorVVNFX0RIQ1AoTkVXVE9ZKGRoY3AsICJWOkg6Rjp4KnI6TypBIzwwPTIwVCM8MD0zdCM8MD0zczpwOmk6U0JSQ2FvdnFuYmYiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19ST09UT05MWSkpCitVU0VfREhDUDYoTkVXVE9ZKGRoY3A2LCAicjpBIzwwVCM8MHQjPDBzOnA6aTpTUnZxbmJmIiwgVE9ZRkxBR19TQklOfFRPWUZMQUdfUk9PVE9OTFkpKQorVVNFX0RIQ1BEKE5FV1RPWShkaGNwZCwgIj4xUCM8MD42NTUzNWZpOlM0NlshNDZdIiwgVE9ZRkxBR19TQklOfFRPWUZMQUdfUk9PVE9OTFkpKQorVVNFX0RJRkYoTkVXVE9ZKGRpZmYsICI8Mj4yKHVuY2hhbmdlZC1saW5lLWZvcm1hdCk6OyhvbGQtbGluZS1mb3JtYXQpOjsobmV3LWxpbmUtZm9ybWF0KTo7KGNvbG9yKShzdHJpcC10cmFpbGluZy1jcilCKGlnbm9yZS1ibGFuay1saW5lcylkKG1pbmltYWwpYihpZ25vcmUtc3BhY2UtY2hhbmdlKXV0KGV4cGFuZC10YWJzKXcoaWdub3JlLWFsbC1zcGFjZSlpKGlnbm9yZS1jYXNlKVQoaW5pdGlhbC10YWIpcyhyZXBvcnQtaWRlbnRpY2FsLWZpbGVzKXEoYnJpZWYpYSh0ZXh0KVMoc3RhcnRpbmctZmlsZSk6RihzaG93LWZ1bmN0aW9uLWxpbmUpOjtMKGxhYmVsKSpOKG5ldy1maWxlKXIocmVjdXJzaXZlKVUodW5pZmllZCkjPDA9MyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfQVJHRkFJTCgyKSkpCitVU0VfRElSTkFNRShORVdUT1koZGlybmFtZSwgIjwxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0RNRVNHKE5FV1RPWShkbWVzZywgIncoZm9sbG93KUNTVHRycyM8MW4jY1shVHRyXVshQ2NdWyFTd10iLCBUT1lGTEFHX0JJTikpCitVU0VfRE5TRE9NQUlOTkFNRShORVdUT1koZG5zZG9tYWlubmFtZSwgIj4wIiwgVE9ZRkxBR19CSU4pKQorVVNFX0RPUzJVTklYKE5FV1RPWShkb3MydW5peCwgMCwgVE9ZRkxBR19CSU4pKQorVVNFX0RVKE5FV1RPWShkdSwgImQjPDA9LTFobWxjYUhrS0xzeGJbLUhMXVsta0ttaF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfRFVNUExFQVNFUyhORVdUT1koZHVtcGxlYXNlcywgIj4wYXJmOlshYXJdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0VDSE8oTkVXVE9ZKGVjaG8sICJeP0VlblstZUVdIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19NQVlGT1JLfFRPWUZMQUdfTElORUJVRikpCitVU0VfRUdSRVAoT0xEVE9ZKGVncmVwLCBncmVwLCBUT1lGTEFHX0JJTnxUT1lGTEFHX0FSR0ZBSUwoMil8VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9FSkVDVChORVdUT1koZWplY3QsICI+MXN0VFshdFRdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0VOVihORVdUT1koZW52LCAiXmU6aTB1KiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfQVJHRkFJTCgxMjUpKSkKK1VTRV9TSChORVdUT1koZXZhbCwgMCwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX1NIKE5FV1RPWShleGVjLCAiXmNsYToiLCBUT1lGTEFHX05PRk9SSykpCitVU0VfU0goTkVXVE9ZKGV4aXQsIDAsIFRPWUZMQUdfTk9GT1JLKSkKK1VTRV9FWFBBTkQoTkVXVE9ZKGV4cGFuZCwgInQqIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIKE5FV1RPWShleHBvcnQsICJucCIsIFRPWUZMQUdfTk9GT1JLKSkKK1VTRV9FWFBSKE5FV1RPWShleHByLCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0FSR0ZBSUwoMikpKQorVVNFX0ZBQ1RPUihORVdUT1koZmFjdG9yLCAiP2h4IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZBTExPQ0FURShORVdUT1koZmFsbG9jYXRlLCAiPjFsI3xvIyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9GQUxTRShORVdUT1koZmFsc2UsIE5VTEwsIFRPWUZMQUdfQklOfFRPWUZMQUdfTk9IRUxQfFRPWUZMQUdfTUFZRk9SSykpCitVU0VfRkRJU0soTkVXVE9ZKGZkaXNrLCAiQyM8MEgjPDBTIzwwYiM8NTEydWwiLCBUT1lGTEFHX1NCSU4pKQorVVNFX0ZHUkVQKE9MRFRPWShmZ3JlcCwgZ3JlcCwgVE9ZRkxBR19CSU58VE9ZRkxBR19BUkdGQUlMKDIpfFRPWUZMQUdfTElORUJVRikpCitVU0VfRklMRShORVdUT1koZmlsZSwgIjwxYihicmllZiloTHNbIWhMXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9GSU5EKE5FV1RPWShmaW5kLCAiP15ITFstSExdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZMT0NLKE5FV1RPWShmbG9jaywgIjwxPjFuc3V4Wy1zdXhdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZNVChORVdUT1koZm10LCAidyM8MD03NSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9GT0xEKE5FV1RPWShmb2xkLCAiYnN3IzwxPTgwIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZSRUUoTkVXVE9ZKGZyZWUsICJoZ21rYlshaGdta2JdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZSRUVSQU1ESVNLKE5FV1RPWShmcmVlcmFtZGlzaywgIjwxPjEiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfRlNDSyhORVdUT1koZnNjaywgIj90OkFOUFJUVnNDIyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9GU0ZSRUVaRShORVdUT1koZnNmcmVlemUsICI8MT4xZnx1fFshZnVdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9GU1RZUEUoTkVXVE9ZKGZzdHlwZSwgIjwxIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9GU1lOQyhORVdUT1koZnN5bmMsICI8MWQiLCBUT1lGTEFHX0JJTikpCitVU0VfRlRQR0VUKE5FV1RPWShmdHBnZXQsICI8Mj4zUDpjcDp1OnZnc2xMbU1kRFstZ3NdWyFnc2xMbU1kRF1bIWNsTF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfRlRQUFVUKE9MRFRPWShmdHBwdXQsIGZ0cGdldCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dFVENPTkYoTkVXVE9ZKGdldGNvbmYsICI+MmFsIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dFVEVORk9SQ0UoTkVXVE9ZKGdldGVuZm9yY2UsICI+MCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfR0VURkFUVFIoTkVXVE9ZKGdldGZhdHRyLCAiKG9ubHktdmFsdWVzKWRobjoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR0VUT1BUKE5FV1RPWShnZXRvcHQsICJeYShhbHRlcm5hdGl2ZSluOihuYW1lKW86KG9wdGlvbnMpbCoobG9uZykobG9uZ29wdGlvbnMpVHUiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR0VUVFkoTkVXVE9ZKGdldHR5LCAiPDJ0IzwwSDpJOmw6Zjppd25tTGgiLCBUT1lGTEFHX1NCSU4pKQorVVNFX0dJVENIRUNLT1VUKE5FV1RPWShnaXRjaGVja291dCwgIjwxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dJVENMT05FKE5FV1RPWShnaXRjbG9uZSwgIjwxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dJVEZFVENIKE5FV1RPWShnaXRmZXRjaCwgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dJVElOSVQoTkVXVE9ZKGdpdGluaXQsICI8MSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9HSVRSRU1PVEUoTkVXVE9ZKGdpdHJlbW90ZSwgIjwxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dQSU9ERVRFQ1QoTkVXVE9ZKGdwaW9kZXRlY3QsICI+MCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9HUElPRklORChORVdUT1koZ3Bpb2ZpbmQsICI8MT4xIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dQSU9HRVQoTkVXVE9ZKGdwaW9nZXQsICI8MmwiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR1BJT0lORk8oTkVXVE9ZKGdwaW9pbmZvLCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR1BJT1NFVChORVdUT1koZ3Bpb3NldCwgIjwybCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9HUkVQKE5FV1RPWShncmVwLCAiKGxpbmUtYnVmZmVyZWQpKGNvbG9yKTo7KGV4Y2x1ZGUtZGlyKSpTKGV4Y2x1ZGUpKk0oaW5jbHVkZSkqWnpFRkhJYWIoYnl0ZS1vZmZzZXQpaChuby1maWxlbmFtZSlpbm8ob25seS1tYXRjaGluZylyUnN2d2MoY291bnQpTChmaWxlcy13aXRob3V0LW1hdGNoKWwoZmlsZXMtd2l0aC1tYXRjaGVzKXEocXVpZXQpKHNpbGVudCllKmYqQyNCI0EjbSN4WyF3eF1bIUVGXSIsIFRPWUZMQUdfQklOfFRPWUZMQUdfQVJHRkFJTCgyKXxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0dST1VQQUREKE5FV1RPWShncm91cGFkZCwgIjwxPjJSOmcjPDA+MjE0NzQ4MzY0N1MiLCBUT1lGTEFHX05FRURST09UfFRPWUZMQUdfU0JJTikpCitVU0VfR1JPVVBERUwoTkVXVE9ZKGdyb3VwZGVsLCAiPDE+Mj8iLCBUT1lGTEFHX05FRURST09UfFRPWUZMQUdfU0JJTikpCitVU0VfR1JPVVBTKE5FV1RPWShncm91cHMsIE5VTEwsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9HVU5aSVAoTkVXVE9ZKGd1bnppcCwgImNkZmt0MTIzNDU2Nzg5Wy0xMjM0NTY3ODldIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0daSVAoTkVXVE9ZKGd6aXAsICAgICJuKG5vLW5hbWUpY2Rma3QxMjM0NTY3ODlbLTEyMzQ1Njc4OV0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUkVCT09UKE9MRFRPWShoYWx0LCByZWJvb3QsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9IRChPTERUT1koaGQsIGhleGR1bXAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9IRUFEKE5FV1RPWShoZWFkLCAiP24obGluZXMpIzwwPTEwYyhieXRlcykjPDBxdlstbmNdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9IRUxMTyhORVdUT1koaGVsbG8sIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9IRUxQKE5FV1RPWShoZWxwLCAiYWh1IiwgVE9ZRkxBR19CSU58VE9ZRkxBR19NQVlGT1JLKSkKK1VTRV9IRVhEVU1QKE5FV1RPWShoZXhkdW1wLCAiYmNDZG4jPDBvcyM8MHZ4WyFiY0Nkb3hdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0hFWEVESVQoTkVXVE9ZKGhleGVkaXQsICI8MT4xciIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9IT1NUKE5FV1RPWShob3N0LCAiPDE+MmF2dDoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfSE9TVElEKE5FV1RPWShob3N0aWQsICI+MCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9IT1NUTkFNRShORVdUT1koaG9zdG5hbWUsICI+MWJkc2ZGOlshYmRzZl0iLCBUT1lGTEFHX0JJTikpCitVU0VfSFRUUEQoTkVXVE9ZKGh0dHBkLCAiPjF2IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9IV0NMT0NLKE5FV1RPWShod2Nsb2NrLCAiPjAoZmFzdClmKHJ0Yyk6dSh1dGMpbChsb2NhbHRpbWUpdChzeXN0eilzKGhjdG9zeXMpcihzaG93KXcoc3lzdG9oYylbLXVsXVshcnRzd10iLCBUT1lGTEFHX1NCSU4pKQorVVNFX0kyQ0RFVEVDVChORVdUT1koaTJjZGV0ZWN0LCAiPjNhRiM8MD42M2xxcnlbIXFyXVshRmxdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9JMkNEVU1QKE5FV1RPWShpMmNkdW1wLCAiPDI+MmZ5IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9JMkNHRVQoTkVXVE9ZKGkyY2dldCwgIjwyPjNmeSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfSTJDU0VUKE5FV1RPWShpMmNzZXQsICI8NGZ5IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9JMkNUUkFOU0ZFUihORVdUT1koaTJjdHJhbnNmZXIsICI8MnZmeSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfSUNPTlYoTkVXVE9ZKGljb252LCAiY3N0OmY6IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0lEKE5FV1RPWShpZCwgIj4xIlVTRV9JRF9aKCJaIikibkdncnVbISJVU0VfSURfWigiWiIpIkdndV0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfSUZDT05GSUcoTkVXVE9ZKGlmY29uZmlnLCAiXj9hUyIsIFRPWUZMQUdfU0JJTikpCitVU0VfSU5JVChORVdUT1koaW5pdCwgIiIsIFRPWUZMQUdfU0JJTikpCitVU0VfSU5PVElGWUQoTkVXVE9ZKGlub3RpZnlkLCAiPDIiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0lOU01PRChORVdUT1koaW5zbW9kLCAiPDEiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfSU5TVEFMTChORVdUT1koaW5zdGFsbCwgIjwxY2REcChwcmVzZXJ2ZS10aW1lc3RhbXBzKXN2dDptOm86ZzoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfSU9OSUNFKE5FV1RPWShpb25pY2UsICJedGMjPDA+Mz0ybiM8MD43PTVwIyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9JT1JFTklDRShORVdUT1koaW9yZW5pY2UsICI8MT4zIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0lPVE9QKE5FV1RPWShpb3RvcCwgIj4wQWFLTyIgIkhrKm8qcCp1KnMjPDE9N2QlPDEwMD0zMDAwbSNuIzwxYnEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX1NUQVlST09UKSkKK1VTRV9JUChORVdUT1koaXAsIE5VTEwsIFRPWUZMQUdfU0JJTikpCitVU0VfSVAoT0xEVE9ZKGlwYWRkciwgaXAsIFRPWUZMQUdfU0JJTikpCitVU0VfSVBDUk0oTkVXVE9ZKGlwY3JtLCAibSpNKnMqUypxKlEqIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0lQQ1MoTkVXVE9ZKGlwY3MsICJhY3B0dWxzcW1pIyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9JUChPTERUT1koaXBsaW5rLCBpcCwgVE9ZRkxBR19TQklOKSkKK1VTRV9JUChPTERUT1koaXByb3V0ZSwgaXAsIFRPWUZMQUdfU0JJTikpCitVU0VfSVAoT0xEVE9ZKGlwcnVsZSwgaXAsIFRPWUZMQUdfU0JJTikpCitVU0VfSVAoT0xEVE9ZKGlwdHVubmVsLCBpcCwgVE9ZRkxBR19TQklOKSkKK1VTRV9TSChORVdUT1koam9icywgImxucHJzIiwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX0tJTEwoTkVXVE9ZKGtpbGwsICI/bHM6ICIsIFRPWUZMQUdfQklOfFRPWUZMQUdfTUFZRk9SSykpCitVU0VfS0lMTEFMTChORVdUT1koa2lsbGFsbCwgIj9zOmlscXZ3IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0tJTExBTEw1KE5FV1RPWShraWxsYWxsNSwgIj9vKmxzOiBbIWxvXVshbHNdIiwgVE9ZRkxBR19TQklOKSkKK1VTRV9LTE9HRChORVdUT1koa2xvZ2QsICJjIzwxPjhuIiwgVE9ZRkxBR19TQklOKSkKK1VTRV9MQVNUKE5FV1RPWShsYXN0LCAiZjpXIiwgVE9ZRkxBR19CSU4pKQorVVNFX0xJTksoTkVXVE9ZKGxpbmssICI8Mj4yIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0xJTlVYMzIoTkVXVE9ZKGxpbnV4MzIsIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9MTihORVdUT1kobG4sICI8MXJ0OlR2bmZzIiwgVE9ZRkxBR19CSU4pKQorVVNFX0xPQURfUE9MSUNZKE5FV1RPWShsb2FkX3BvbGljeSwgIjwxPjEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX1NIKE5FV1RPWShsb2NhbCwgMCwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX0xPRyhORVdUT1kobG9nLCAicDp0OiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfTE9HR0VSKE5FV1RPWShsb2dnZXIsICJ0OnA6cyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9MT0dJTihORVdUT1kobG9naW4sICI+MWY6cGg6IiwgVE9ZRkxBR19CSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfTE9HTkFNRShORVdUT1kobG9nbmFtZSwgIj4wIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0xPR1BBVEgoTkVXVE9ZKGxvZ3BhdGgsIDAsIFRPWUZMQUdfTk9IRUxQfFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9MT1NFVFVQKE5FV1RPWShsb3NldHVwLCAiPjJTKHNpemVsaW1pdCkjcyhzaG93KXJvI2o6ZmRjYURbIWFmal0iLCBUT1lGTEFHX1NCSU4pKQorVVNFX0xTKE5FV1RPWShscywgIihzb3J0KTooY29sb3IpOjsoZnVsbC10aW1lKShzaG93LWNvbnRyb2wtY2hhcnMpXDM3NyhibG9jay1zaXplKSM9MTAyNDwxXDI0MShncm91cC1kaXJlY3Rvcmllcy1maXJzdClcMzc2WmdvQUNGSExOUlNVWGFiY2RmaGlrbEBtbnBxcnN0dXcjPTgwPDB4MVstQ3htMV1bLUN4bWxdWy1DeG1vXVstQ3htZ11bLWN1XVstZnRTXVstSExdWy1OcWJdWy1rXDM3N10iLCBUT1lGTEFHX0JJTikpCitVU0VfTFNBVFRSKE5FV1RPWShsc2F0dHIsICJsZGFwdlIiLCBUT1lGTEFHX0JJTikpCitVU0VfTFNNT0QoTkVXVE9ZKGxzbW9kLCBOVUxMLCBUT1lGTEFHX1NCSU4pKQorVVNFX0xTT0YoTkVXVE9ZKGxzb2YsICJscCp0IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0xTUENJKE5FV1RPWShsc3BjaSwgImVta25AeEBpOiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9MU1VTQihORVdUT1kobHN1c2IsICJpOiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9NQUtFREVWUyhORVdUT1kobWFrZWRldnMsICI8MT4xZDoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTUFOKE5FV1RPWShtYW4sICJrOk06IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01DT09LSUUoTkVXVE9ZKG1jb29raWUsICJ2KHZlcmJvc2UpVih2ZXJzaW9uKSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9NRDVTVU0oTkVXVE9ZKG1kNXN1bSwgImJjKGNoZWNrKXMoc3RhdHVzKVshYmNdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01ERVYoTkVXVE9ZKG1kZXYsICJzIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19VTUFTSykpCitVU0VfTUVNRUFURVIoTkVXVE9ZKG1lbWVhdGVyLCAiPDE+MU0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTUlDUk9DT00oTkVXVE9ZKG1pY3JvY29tLCAiPDE+MXMjPTExNTIwMFgiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX05PQlVGKSkKK1VTRV9NSVgoTkVXVE9ZKG1peCwgImM6ZDpsI3IjIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01LRElSKE5FV1RPWShta2RpciwgIjwxIlVTRV9NS0RJUl9aKCJaOiIpInZwKHBhcmVudCkocGFyZW50cyltOiIsIFRPWUZMQUdfQklOfFRPWUZMQUdfVU1BU0spKQorVVNFX01LRTJGUyhORVdUT1kobWtlMmZzLCAiPDE+Mmc6Rm5xbSNOI2kjYiMiLCBUT1lGTEFHX1NCSU4pKQorVVNFX01LRklGTyhORVdUT1kobWtmaWZvLCAiPDEiVVNFX01LRklGT19aKCJaOiIpIm06IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01LTk9EKE5FV1RPWShta25vZCwgIjwyPjRtKG1vZGUpOiJVU0VfTUtOT0RfWigiWjoiKSwgVE9ZRkxBR19CSU58VE9ZRkxBR19VTUFTSykpCitVU0VfTUtQQVNTV0QoTkVXVE9ZKG1rcGFzc3dkLCAiPjJTOm06UCM9MDwwIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01LU1dBUChORVdUT1kobWtzd2FwLCAiPDE+MUw6IiwgVE9ZRkxBR19TQklOKSkKK1VTRV9NS1RFTVAoTkVXVE9ZKG1rdGVtcCwgIj4xKHRtcGRpcik7OnVxZChkaXJlY3RvcnkpcDp0IiwgVE9ZRkxBR19CSU4pKQorVVNFX01PRElORk8oTkVXVE9ZKG1vZGluZm8sICI8MWI6azpGOjAiLCBUT1lGTEFHX1NCSU4pKQorVVNFX01PRFBST0JFKE5FV1RPWShtb2Rwcm9iZSwgImFscnF2c0RiZCoiLCBUT1lGTEFHX1NCSU4pKQorVVNFX01PUkUoTkVXVE9ZKG1vcmUsIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9NT1VOVChORVdUT1kobW91bnQsICI/Uk86YWZucnZ3dDpvKlstcnddIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19TVEFZUk9PVCkpCitVU0VfTU9VTlRQT0lOVChORVdUT1kobW91bnRwb2ludCwgIjwxcWR4Wy1keF0iLCBUT1lGTEFHX0JJTikpCitVU0VfTVYoTkVXVE9ZKG12LCAiPDF4KHN3YXApdih2ZXJib3NlKW5GKHJlbW92ZS1kZXN0aW5hdGlvbilmaXQ6VFstbmldIiwgVE9ZRkxBR19CSU4pKQorVVNFX05CRF9DTElFTlQoT0xEVE9ZKG5iZC1jbGllbnQsIG5iZF9jbGllbnQsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9OQkRfU0VSVkVSKE9MRFRPWShuYmQtc2VydmVyLCBuYmRfc2VydmVyLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTkJEX0NMSUVOVChORVdUT1kobmJkX2NsaWVudCwgIjwzPjNiIzwxPjQyOTQ5NjcyOTU9NDA5Nm5zIiwgMCkpCitVU0VfTkJEX1NFUlZFUihORVdUT1kobmJkX3NlcnZlciwgIjwxPjFyIiwgMCkpCitVU0VfTkVUQ0FUKE9MRFRPWShuYywgbmV0Y2F0LCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTkVUQ0FUKE5FV1RPWShuZXRjYXQsICJedEVsTHcjPDFXIzwxcCM8MT42NTUzNXEjPDFPOm86czpmOjQ2dVVuelshdGxMXVshTHddWyFMdV1bITQ2VV1bIW9PXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9ORVRTVEFUKE5FV1RPWShuZXRzdGF0LCAicFdyeHd1dG5lYWwiLCBUT1lGTEFHX0JJTikpCitVU0VfTklDRShORVdUT1kobmljZSwgIl48MW4jIiwgVE9ZRkxBR19CSU4pKQorVVNFX05MKE5FV1RPWShubCwgInYjPTFsI3cjPDA9NmI6bjpzOkUiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTk9IVVAoTkVXVE9ZKG5vaHVwLCAiPDFeIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19BUkdGQUlMKDEyNSkpKQorVVNFX05QUk9DKE5FV1RPWShucHJvYywgIihhbGwpIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX05TRU5URVIoTkVXVE9ZKG5zZW50ZXIsICI8MWEoYWxsKUYobm8tZm9yayl0IzwxKHRhcmdldClDKGNncm91cCk6OyBpKGlwYyk6OyBtKG1vdW50KTo7IG4obmV0KTo7IHAocGlkKTo7IHUodXRzKTo7IFUodXNlcik6OyAiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX1NUQVlST09UKSkKK1VTRV9PRChORVdUT1kob2QsICJqI3Z3IzwxPTE2TiN4c29kY2JBOnQqIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX09ORUlUKE5FV1RPWShvbmVpdCwgIl48MW5jOnAzWyFwbl0iLCBUT1lGTEFHX1NCSU4pKQorVVNFX09QRU5WVChORVdUT1kob3BlbnZ0LCAiXjwxYyM8MT42M3N3IiwgVE9ZRkxBR19CSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfUEFSVFBST0JFKE5FV1RPWShwYXJ0cHJvYmUsICI8MSIsIFRPWUZMQUdfU0JJTikpCitVU0VfUEFTU1dEKE5FV1RPWShwYXNzd2QsICI+MWE6ZGx1IiwgVE9ZRkxBR19TVEFZUk9PVHxUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUEFTVEUoTkVXVE9ZKHBhc3RlLCAiZDpzIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1BBVENIKE5FV1RPWShwYXRjaCwgIj4yKG5vLWJhY2t1cC1pZi1taXNtYXRjaCkoZHJ5LXJ1bilGI2cjZnVscCN2KHZlcmJvc2UpQGQ6aTpScyhxdWlldClbIXN2XSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9QR1JFUChORVdUT1kocGdyZXAsICI/Y2xkOnUqVSp0KnMqUCpnKkcqZm5vdnhMOlstbm9dIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1BJRE9GKE5FV1RPWShwaWRvZiwgInNvOngiLCBUT1lGTEFHX0JJTikpCitVU0VfUElORyhORVdUT1kocGluZywgIjwxPjFtI3QjPDA+MjU1PTY0YyM8MD0zcyM8MD40MDY0PTU2aSVXIzwwPTN3IzwwcWY0Nkk6Wy00Nl0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX1BJTkcoT0xEVE9ZKHBpbmc2LCBwaW5nLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX1BJVk9UX1JPT1QoTkVXVE9ZKHBpdm90X3Jvb3QsICI8Mj4yIiwgVE9ZRkxBR19TQklOKSkKK1VTRV9QS0lMTChORVdUT1kocGtpbGwsICAgICI/VnUqVSp0KnMqUCpnKkcqZm5vdnhsOlstbm9dIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1BNQVAoTkVXVE9ZKHBtYXAsICI8MXBxeCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9SRUJPT1QoT0xEVE9ZKHBvd2Vyb2ZmLCByZWJvb3QsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9QUklOVEVOVihORVdUT1kocHJpbnRlbnYsICIobnVsbCkwIiwgVE9ZRkxBR19CSU4pKQorVVNFX1BSSU5URihORVdUT1kocHJpbnRmLCAiPDE/XiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfTUFZRk9SSykpCitVU0VfVUxJTUlUKE9MRFRPWShwcmxpbWl0LCB1bGltaXQsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9QUyhORVdUT1kocHMsICJrKHNvcnQpKlAocHBpZCkqYUFkZWZsTW5vKk8qcChwaWQpKnMqdCpUdSpVKmcqRyp3Wlshb2xdWytBZV1bIW9PXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9QV0QoTkVXVE9ZKHB3ZCwgIj4wTFBbLUxQXSIsIFRPWUZMQUdfQklOfFRPWUZMQUdfTUFZRk9SSykpCitVU0VfUFdEWChORVdUT1kocHdkeCwgIjwxYSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9QV0dFTihORVdUT1kocHdnZW4sICI+MnIocmVtb3ZlKTpjKGNhcGl0YWxpemUpbihudW1lcmFscyl5KHN5bWJvbHMpcyhzZWN1cmUpQihhbWJpZ3VvdXMpaChoZWxwKUMxdkEobm8tY2FwaXRhbGl6ZSkwKG5vLW51bWVyYWxzKVstY0FdWy1uMF1bLUMxXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9SRUFEQUhFQUQoTkVXVE9ZKHJlYWRhaGVhZCwgTlVMTCwgVE9ZRkxBR19CSU4pKQorVVNFX1JFQURFTEYoTkVXVE9ZKHJlYWRlbGYsICI8MShkeW4tc3ltcylBYWRlaGxucDpTc1d4OiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9SRUFETElOSyhORVdUT1kocmVhZGxpbmssICI8MXZuZihjYW5vbmljYWxpemUpZW1xelstbWVmXVstcXZdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1JFQUxQQVRIKE5FV1RPWShyZWFscGF0aCwgIjwxKHJlbGF0aXZlLWJhc2UpOlIocmVsYXRpdmUtdG8pOnMobm8tc3ltbGlua3MpTFBlbXF6Wy1Qc11bLUxQXVstbWVdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1JFQk9PVChORVdUT1kocmVib290LCAiZDpmbiIsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9SRU5JQ0UoTkVXVE9ZKHJlbmljZSwgIjwxZ3B1biN8IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1JFU0VUKE5FV1RPWShyZXNldCwgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1JFU1RPUkVDT04oTkVXVE9ZKHJlc3RvcmVjb24sICI8MURGblJydiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfUkVWKE5FV1RPWShyZXYsIE5VTEwsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9SRktJTEwoTkVXVE9ZKHJma2lsbCwgIjwxPjIiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX1JNKE5FV1RPWShybSwgImYoZm9yY2UpaVJydlstZmldIiwgVE9ZRkxBR19CSU4pKQorVVNFX1JNRElSKE5FV1RPWShybWRpciwgIjwxKGlnbm9yZS1mYWlsLW9uLW5vbi1lbXB0eSlwKHBhcmVudHMpIiwgVE9ZRkxBR19CSU4pKQorVVNFX1JNTU9EKE5FV1RPWShybW1vZCwgIjwxd2YiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfUk9VVEUoTkVXVE9ZKHJvdXRlLCAiP25lQToiLCBUT1lGTEFHX1NCSU4pKQorVVNFX1JUQ1dBS0UoTkVXVE9ZKHJ0Y3dha2UsICIobGlzdC1tb2Rlcyk7KGF1dG8pYShkZXZpY2UpZDoobG9jYWwpbChtb2RlKW06KHNlY29uZHMpcyModGltZSl0Iyh1dGMpdSh2ZXJib3NlKXZbIWFsdV0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUlVOQ09OKE5FV1RPWShydW5jb24sICJePDIiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX1NFRChORVdUT1koc2VkLCAiKGhlbHApKHZlcnNpb24pKHRhcnhmb3JtKWUqZippOjtuRXJ6KG51bGwtZGF0YSlzWytFcl0iLCBUT1lGTEFHX0JJTnxUT1lGTEFHX05PSEVMUCkpCitVU0VfU0VOREVWRU5UKE5FV1RPWShzZW5kZXZlbnQsICI8ND40IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9TRVEoTkVXVE9ZKHNlcSwgIjwxPjM/ZjpzOndbIWZ3XSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSChORVdUT1koc2V0LCAwLCBUT1lGTEFHX05PRk9SSykpCitVU0VfU0VURU5GT1JDRShORVdUT1koc2V0ZW5mb3JjZSwgIjwxPjEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX1NFVEZBVFRSKE5FV1RPWShzZXRmYXR0ciwgImhuOnx2Ong6fFsheHZdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NFVFNJRChORVdUT1koc2V0c2lkLCAiXjwxd2NAZFshZGNdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIKE5FV1RPWShzaCwgIjBeKG5vZWRpdGluZykobm9wcm9maWxlKShub3JjKXNjOmkiLCBUT1lGTEFHX0JJTikpCitVU0VfU0hBMVNVTShPTERUT1koc2hhMXN1bSwgbWQ1c3VtLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0hBMjI0U1VNKE9MRFRPWShzaGEyMjRzdW0sIG1kNXN1bSwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIQTI1NlNVTShPTERUT1koc2hhMjU2c3VtLCBtZDVzdW0sIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSEEzODRTVU0oT0xEVE9ZKHNoYTM4NHN1bSwgbWQ1c3VtLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0hBM1NVTShORVdUT1koc2hhM3N1bSwgImJTYSM8MTI4PjUxMj0yMjQiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0hBNTEyU1VNKE9MRFRPWShzaGE1MTJzdW0sIG1kNXN1bSwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIKE5FV1RPWShzaGlmdCwgIj4xIiwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX1NIUkVEKE5FV1RPWShzaHJlZCwgIjwxenh1cyM8MW4jPDFvIzwwZiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSFVGKE5FV1RPWShzaHVmLCAiemVuIzwwIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NLRUxFVE9OKE5FV1RPWShza2VsZXRvbiwgIih3YWxydXMpKGJsdWJiZXIpOjsoYWxzbyk6aChobG9uZyk6OyBnKGdsb25nKTogZihsb25nZik6O2VAZCpjI2I6YSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TS0VMRVRPTl9BTElBUyhORVdUT1koc2tlbGV0b25fYWxpYXMsICJiI2RxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NMRUVQKE5FV1RPWShzbGVlcCwgIjwxIiwgVE9ZRkxBR19CSU4pKQorVVNFX1NOVFAoTkVXVE9ZKHNudHAsICI+MU0gOm0gOlNwOnQjPDA9MT4xNmFzZERxciM8ND4xNz0xMFshYXNdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NPUlQoTkVXVE9ZKHNvcnQsIFVTRV9TT1JUX0ZMT0FUKCJnIikiUzpUOm0iICJvOmsqdDoiICJ4VmJNQ2NzemRmaXJ1biIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfQVJHRkFJTCgyKSkpCitVU0VfU0goTkVXVE9ZKHNvdXJjZSwgIjwxIiwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX1NQTElUKE5FV1RPWShzcGxpdCwgIj4yYSM8MT0yPjliIzwxbCM8MW4jPDFbIWJsXVshYm5dWyFsbl0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU1RBVChORVdUT1koc3RhdCwgIjwxYzooZm9ybWF0KWZMdCIsIFRPWUZMQUdfQklOKSkKK1VTRV9TVFJBQ0UoTkVXVE9ZKHN0cmFjZSwgIl5wI3MjdiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfU1RSSU5HUyhORVdUT1koc3RyaW5ncywgInQ6YW4jPTQ8MWZvIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NUVFkoTkVXVE9ZKHN0dHksICI/YUY6Z1shYWddIiwgVE9ZRkxBR19CSU4pKQorVVNFX1NVKE5FV1RPWShzdSwgIl5sbXB1Omc6YzpzOlshbG1wXSIsIFRPWUZMQUdfQklOfFRPWUZMQUdfUk9PVE9OTFkpKQorVVNFX1NVTE9HSU4oTkVXVE9ZKHN1bG9naW4sICJ0IzwwPTAiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfU1dBUE9GRihORVdUT1koc3dhcG9mZiwgIjwxPjFhdiIsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9TV0FQT04oTkVXVE9ZKHN3YXBvbiwgIjwxPjFwIzwwPjMyNzY3ZCIsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9TV0lUQ0hfUk9PVChORVdUT1koc3dpdGNoX3Jvb3QsICI8MmM6aCIsIFRPWUZMQUdfU0JJTikpCitVU0VfU1lOQyhORVdUT1koc3luYywgTlVMTCwgVE9ZRkxBR19CSU4pKQorVVNFX1NZU0NUTChORVdUT1koc3lzY3RsLCAiXm5lTnF3cGFBWyFhcF1bIWFxXVshYXddWythQV0iLCBUT1lGTEFHX1NCSU4pKQorVVNFX1NZU0xPR0QoTkVXVE9ZKHN5c2xvZ2QsIj4wbCM8MT44PThSOmIjPDA+OTk9MXMjPDA9MjAwbSM8MD43MTU4Mjc4Nz0yME86cDpmOmE6blNLTEQiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19TVEFZUk9PVCkpCitVU0VfVEFDKE5FV1RPWSh0YWMsIE5VTEwsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UQUlMKE5FV1RPWSh0YWlsLCAiP2ZGczpjKGJ5dGVzKS1uKGxpbmVzKS1bLWNuXVstZkZdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9UQVIoTkVXVE9ZKHRhciwgIiYob25lLWZpbGUtc3lzdGVtKShuby1pZ25vcmUtY2FzZSkoaWdub3JlLWNhc2UpKG5vLWFuY2hvcmVkKShhbmNob3JlZCkobm8td2lsZGNhcmRzKSh3aWxkY2FyZHMpKG5vLXdpbGRjYXJkcy1tYXRjaC1zbGFzaCkod2lsZGNhcmRzLW1hdGNoLXNsYXNoKShzaG93LXRyYW5zZm9ybWVkLW5hbWVzKShzZWxpbnV4KShyZXN0cmljdCkoZnVsbC10aW1lKShuby1yZWN1cnNpb24pKG51bGwpKG51bWVyaWMtb3duZXIpKG5vLXNhbWUtcGVybWlzc2lvbnMpKG92ZXJ3cml0ZSkoZXhjbHVkZSkqKHNvcnQpOzoobW9kZSk6KG10aW1lKTooZ3JvdXApOihvd25lcik6KHRvLWNvbW1hbmQpOn4oc3RyaXAtY29tcG9uZW50cykoc3RyaXApI34odHJhbnNmb3JtKSh4Zm9ybSkqbyhuby1zYW1lLW93bmVyKXAoc2FtZS1wZXJtaXNzaW9ucylrKGtlZXAtb2xkKWMoY3JlYXRlKXxoKGRlcmVmZXJlbmNlKXgoZXh0cmFjdCl8dChsaXN0KXx2KHZlcmJvc2UpSih4eilqKGJ6aXAyKXooZ3ppcClTKHNwYXJzZSlPKHRvLXN0ZG91dClQKGFic29sdXRlLW5hbWVzKW0odG91Y2gpWChleGNsdWRlLWZyb20pKlQoZmlsZXMtZnJvbSkqSSh1c2UtY29tcHJlc3MtcHJvZ3JhbSk6QyhkaXJlY3RvcnkpOmYoZmlsZSk6YXNbIXR4Y11bIWp6SmFdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1RBU0tTRVQoTkVXVE9ZKHRhc2tzZXQsICI8MV5wYSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UQ1BTVkQoTkVXVE9ZKHRjcHN2ZCwgIl48M2MjPTMwPDFiIz0yMDwwQzp1Omw6aEV2IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1RFRShORVdUT1kodGVlLCAiaWEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVEVMTkVUKE5FV1RPWSh0ZWxuZXQsICI8MT4yIiwgVE9ZRkxBR19CSU4pKQorVVNFX1RFTE5FVEQoTkVXVE9ZKHRlbG5ldGQsICJ3IzwwYjpwIzwwPjY1NTM1PTIzZjpsOkZTS2lbIXdpXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9URVNUKE5FV1RPWSh0ZXN0LCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX05PSEVMUHxUT1lGTEFHX01BWUZPUkspKQorVVNFX1RGVFAoTkVXVE9ZKHRmdHAsICI8MWIjPDg+NjU0NjRyOmw6Z3xwfFshZ3BdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1RGVFBEKE5FV1RPWSh0ZnRwZCwgInJjdTpsIiwgVE9ZRkxBR19CSU4pKQorVVNFX1RJTUUoTkVXVE9ZKHRpbWUsICI8MV5wdlstcHZdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19NQVlGT1JLKSkKK1VTRV9USU1FT1VUKE5FV1RPWSh0aW1lb3V0LCAiPDJeKGZvcmVncm91bmQpKHByZXNlcnZlLXN0YXR1cyl2azpzKHNpZ25hbCk6aSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfQVJHRkFJTCgxMjUpKSkKK1VTRV9UT1AoTkVXVE9ZKHRvcCwgIj4wTypoIiAiSGsqbypwKnUqcyM8MWQlPDEwMD0zMDAwbSNuIzwxYnFbIW9PXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UT1VDSChORVdUT1kodG91Y2gsICI8MWFjZDpmbXI6dDpoWyFkdHJdIiwgVE9ZRkxBR19CSU4pKQorVVNFX1NIKE9MRFRPWSh0b3lzaCwgc2gsIFRPWUZMQUdfQklOKSkKK1VTRV9UUihORVdUT1kodHIsICJePDE+MkNjc3RkWytjQ10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVFJBQ0VST1VURShORVdUT1kodHJhY2Vyb3V0ZSwgIjwxPjJpOmYjPDE+MjU1PTF6IzwwPjg2NDAwPTBnKncjPDA+ODY0MDA9NXQjPDA+MjU1PTBzOnEjPDE+MjU1PTNwIzwxPjY1NTM1PTMzNDM0bSM8MT4yNTU9MzBydm5kbElVRjY0IiwgVE9ZRkxBR19TVEFZUk9PVHxUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVFJBQ0VST1VURShPTERUT1kodHJhY2Vyb3V0ZTYsdHJhY2Vyb3V0ZSwgVE9ZRkxBR19TVEFZUk9PVHxUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVFJVRShORVdUT1kodHJ1ZSwgTlVMTCwgVE9ZRkxBR19CSU58VE9ZRkxBR19OT0hFTFB8VE9ZRkxBR19NQVlGT1JLKSkKK1VTRV9UUlVOQ0FURShORVdUT1kodHJ1bmNhdGUsICI8MXM6fGMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVFMoTkVXVE9ZKHRzLCAiaW1zIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9UU09SVChORVdUT1kodHNvcnQsICI+MSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UVFkoTkVXVE9ZKHR0eSwgInMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVFVOQ1RMKE5FV1RPWSh0dW5jdGwsICI8MT4xdHxkfHU6VFshdGRdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1VDTEFNUFNFVChORVdUT1kodWNsYW1wc2V0LCAicCNhbSM8LTE+MTAyNE0jPC0xPjEwMjRSIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19TVEFZUk9PVCkpCitVU0VfVENQU1ZEKE9MRFRPWSh1ZHBzdmQsIHRjcHN2ZCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1VMSU1JVChORVdUT1kodWxpbWl0LCAiPjFQIzwxU0hhdnV0c3JScXBubWxpZmVkY1stU0hdWyFhcHZ1dHNyUnFubWxpZmVkY10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVU1PVU5UKE5FV1RPWSh1bW91bnQsICJjbmREZmxyYXQqdlshbmFdIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19TVEFZUk9PVCkpCitVU0VfVU5BTUUoTkVXVE9ZKHVuYW1lLCAicGFvbXZybnMiLCBUT1lGTEFHX0JJTikpCitVU0VfVU5JQ09ERShORVdUT1kodW5pY29kZSwgIjwxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1VOSVEoTkVXVE9ZKHVuaXEsICJmI3MjdyN6aWNkdSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9VTklYMkRPUyhORVdUT1kodW5peDJkb3MsIDAsIFRPWUZMQUdfQklOKSkKK1VTRV9VTkxJTksoTkVXVE9ZKHVubGluaywgIjwxPjEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0goTkVXVE9ZKHVuc2V0LCAiZnZuWyFmdl0iLCBUT1lGTEFHX05PRk9SSykpCitVU0VfVU5TSEFSRShORVdUT1kodW5zaGFyZSwgIjwxXmEoYWxsKWYoZm9yaylyKG1hcC1yb290LXVzZXIpQyhjZ3JvdXApOjsgaShpcGMpOjsgbShtb3VudCk6OyBuKG5ldCk6OyBwKHBpZCk6OyB1KHV0cyk6OyBVKHVzZXIpOjsgIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19TVEFZUk9PVCkpCitVU0VfVVBUSU1FKE5FV1RPWSh1cHRpbWUsICI+MHBzIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1VTRVJBREQoTkVXVE9ZKHVzZXJhZGQsICI8MT4ydSM8MEc6czpnOmg6U0RIIiwgVE9ZRkxBR19ORUVEUk9PVHxUT1lGTEFHX1VNQVNLfFRPWUZMQUdfU0JJTikpCitVU0VfVVNFUkRFTChORVdUT1kodXNlcmRlbCwgIjwxPjFyIiwgVE9ZRkxBR19ORUVEUk9PVHxUT1lGTEFHX1NCSU4pKQorVVNFX1VTTEVFUChORVdUT1kodXNsZWVwLCAiPDE+MSIsIFRPWUZMQUdfQklOKSkKK1VTRV9VVURFQ09ERShORVdUT1kodXVkZWNvZGUsICI+MW86IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19VTUFTSykpCitVU0VfVVVFTkNPREUoTkVXVE9ZKHV1ZW5jb2RlLCAiPDE+Mm0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVVVJREdFTihORVdUT1kodXVpZGdlbiwgIj4wcihyYW5kb20pIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1ZDT05GSUcoTkVXVE9ZKHZjb25maWcsICI8Mj40IiwgVE9ZRkxBR19ORUVEUk9PVHxUT1lGTEFHX1NCSU4pKQorVVNFX1ZJKE5FV1RPWSh2aSwgIj4xczoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVk1TVEFUKE5FV1RPWSh2bXN0YXQsICI+Mm4iLCBUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX1coTkVXVE9ZKHcsIE5VTEwsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSChORVdUT1kod2FpdCwgIm4iLCBUT1lGTEFHX05PRk9SSykpCitVU0VfV0FUQ0goTkVXVE9ZKHdhdGNoLCAiXjwxbiU8MTAwPTIwMDB0ZWJ4IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1dBVENIRE9HKE5FV1RPWSh3YXRjaGRvZywgIjwxPjFGdCM9NDwxVCM9NjA8MSIsIFRPWUZMQUdfTkVFRFJPT1R8VE9ZRkxBR19TQklOKSkKK1VTRV9XQyhORVdUT1kod2MsICJMY213bCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9XR0VUKE5FV1RPWSh3Z2V0LCAiPDE+MShtYXgtcmVkaXJlY3QpIzwwPTIwZChkZWJ1ZylPKG91dHB1dC1kb2N1bWVudCk6cChwb3N0LWRhdGEpOiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9XSElDSChORVdUT1kod2hpY2gsICI8MWEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfV0hPKE5FV1RPWSh3aG8sICJhIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1dIT0FNSShPTERUT1kod2hvYW1pLCBsb2duYW1lLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfWEFSR1MoTkVXVE9ZKHhhcmdzLCAiXkU6UCM8MChudWxsKT0xb3B0cihuby1ydW4taWYtZW1wdHkpbiM8MShtYXgtYXJncylzIzBbITBFXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9YWEQoTkVXVE9ZKHh4ZCwgIj4xYyM8MD4yNTZsI28jZyM8MD0yZWlwcnMjWyFyc11bIXJlXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9YWkNBVChORVdUT1koeHpjYXQsIE5VTEwsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9ZRVMoTkVXVE9ZKHllcywgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1pDQVQoTkVXVE9ZKHpjYXQsICAgICAiY2Rma3QxMjM0NTY3ODlbLTEyMzQ1Njc4OV0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCmRpZmYgLS1naXQgYS9hbmRyb2lkL2RldmljZS9nZW5lcmF0ZWQvdGFncy5oIGIvYW5kcm9pZC9kZXZpY2UvZ2VuZXJhdGVkL3RhZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDdlM2E1Ci0tLSAvZGV2L251bGwKKysrIGIvYW5kcm9pZC9kZXZpY2UvZ2VuZXJhdGVkL3RhZ3MuaApAQCAtMCwwICsxLDE0MCBAQAorI2RlZmluZSBDUF9tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIF9DUF9tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwwKQorI2RlZmluZSBDUF9vd25lcnNoaXAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIF9DUF9vd25lcnNoaXAgICAgICAgICAgICAgICAgICAgICgxPDwxKQorI2RlZmluZSBDUF90aW1lc3RhbXBzICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIF9DUF90aW1lc3RhbXBzICAgICAgICAgICAgICAgICAgICgxPDwyKQorI2RlZmluZSBDUF9jb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIF9DUF9jb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICgxPDwzKQorI2RlZmluZSBDUF94YXR0ciAgICAgICAgICAgICAgICAgICAgICAgICA0CisjZGVmaW5lIF9DUF94YXR0ciAgICAgICAgICAgICAgICAgICAgICAgICgxPDw0KQorI2RlZmluZSBERF9jb252X2ZzeW5jICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIF9ERF9jb252X2ZzeW5jICAgICAgICAgICAgICAgICAgICgxPDwwKQorI2RlZmluZSBERF9jb252X25vZXJyb3IgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIF9ERF9jb252X25vZXJyb3IgICAgICAgICAgICAgICAgICgxPDwxKQorI2RlZmluZSBERF9jb252X25vdHJ1bmMgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIF9ERF9jb252X25vdHJ1bmMgICAgICAgICAgICAgICAgICgxPDwyKQorI2RlZmluZSBERF9jb252X3N5bmMgICAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIF9ERF9jb252X3N5bmMgICAgICAgICAgICAgICAgICAgICgxPDwzKQorI2RlZmluZSBERF9pZmxhZ19jb3VudF9ieXRlcyAgICAgICAgICAgICAwCisjZGVmaW5lIF9ERF9pZmxhZ19jb3VudF9ieXRlcyAgICAgICAgICAgICgxPDwwKQorI2RlZmluZSBERF9pZmxhZ19za2lwX2J5dGVzICAgICAgICAgICAgICAxCisjZGVmaW5lIF9ERF9pZmxhZ19za2lwX2J5dGVzICAgICAgICAgICAgICgxPDwxKQorI2RlZmluZSBERF9vZmxhZ19zZWVrX2J5dGVzICAgICAgICAgICAgICAwCisjZGVmaW5lIF9ERF9vZmxhZ19zZWVrX2J5dGVzICAgICAgICAgICAgICgxPDwwKQorI2RlZmluZSBQU19QSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIF9QU19QSUQgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwwKQorI2RlZmluZSBQU19QUElEICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIF9QU19QUElEICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwxKQorI2RlZmluZSBQU19QUkkgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIF9QU19QUkkgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwyKQorI2RlZmluZSBQU19OSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIF9QU19OSSAgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwzKQorI2RlZmluZSBQU19BRERSICAgICAgICAgICAgICAgICAgICAgICAgICA0CisjZGVmaW5lIF9QU19BRERSICAgICAgICAgICAgICAgICAgICAgICAgICgxPDw0KQorI2RlZmluZSBQU19TWiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1CisjZGVmaW5lIF9QU19TWiAgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDw1KQorI2RlZmluZSBQU19SU1MgICAgICAgICAgICAgICAgICAgICAgICAgICA2CisjZGVmaW5lIF9QU19SU1MgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDw2KQorI2RlZmluZSBQU19QR0lEICAgICAgICAgICAgICAgICAgICAgICAgICA3CisjZGVmaW5lIF9QU19QR0lEICAgICAgICAgICAgICAgICAgICAgICAgICgxPDw3KQorI2RlZmluZSBQU19WU1ogICAgICAgICAgICAgICAgICAgICAgICAgICA4CisjZGVmaW5lIF9QU19WU1ogICAgICAgICAgICAgICAgICAgICAgICAgICgxPDw4KQorI2RlZmluZSBQU19NQUpGTCAgICAgICAgICAgICAgICAgICAgICAgICA5CisjZGVmaW5lIF9QU19NQUpGTCAgICAgICAgICAgICAgICAgICAgICAgICgxPDw5KQorI2RlZmluZSBQU19NSU5GTCAgICAgICAgICAgICAgICAgICAgICAgICAxMAorI2RlZmluZSBfUFNfTUlORkwgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MTApCisjZGVmaW5lIFBTX1BSICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExCisjZGVmaW5lIF9QU19QUiAgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwxMSkKKyNkZWZpbmUgUFNfUFNSICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgX1BTX1BTUiAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDEyKQorI2RlZmluZSBQU19SVFBSSU8gICAgICAgICAgICAgICAgICAgICAgICAxMworI2RlZmluZSBfUFNfUlRQUklPICAgICAgICAgICAgICAgICAgICAgICAoMTw8MTMpCisjZGVmaW5lIFBTX1NDSCAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0CisjZGVmaW5lIF9QU19TQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwxNCkKKyNkZWZpbmUgUFNfQ1BVICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUKKyNkZWZpbmUgX1BTX0NQVSAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDE1KQorI2RlZmluZSBQU19USUQgICAgICAgICAgICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBfUFNfVElEICAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MTYpCisjZGVmaW5lIFBTX1RDTlQgICAgICAgICAgICAgICAgICAgICAgICAgIDE3CisjZGVmaW5lIF9QU19UQ05UICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwxNykKKyNkZWZpbmUgUFNfQklUICAgICAgICAgICAgICAgICAgICAgICAgICAgMTgKKyNkZWZpbmUgX1BTX0JJVCAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDE4KQorI2RlZmluZSBQU19UVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAxOQorI2RlZmluZSBfUFNfVFRZICAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MTkpCisjZGVmaW5lIFBTX1dDSEFOICAgICAgICAgICAgICAgICAgICAgICAgIDIwCisjZGVmaW5lIF9QU19XQ0hBTiAgICAgICAgICAgICAgICAgICAgICAgICgxPDwyMCkKKyNkZWZpbmUgUFNfTEFCRUwgICAgICAgICAgICAgICAgICAgICAgICAgMjEKKyNkZWZpbmUgX1BTX0xBQkVMICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDIxKQorI2RlZmluZSBQU19DT01NICAgICAgICAgICAgICAgICAgICAgICAgICAyMgorI2RlZmluZSBfUFNfQ09NTSAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MjIpCisjZGVmaW5lIFBTX05BTUUgICAgICAgICAgICAgICAgICAgICAgICAgIDIzCisjZGVmaW5lIF9QU19OQU1FICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwyMykKKyNkZWZpbmUgUFNfQ09NTUFORCAgICAgICAgICAgICAgICAgICAgICAgMjQKKyNkZWZpbmUgX1BTX0NPTU1BTkQgICAgICAgICAgICAgICAgICAgICAgKDE8PDI0KQorI2RlZmluZSBQU19DTURMSU5FICAgICAgICAgICAgICAgICAgICAgICAyNQorI2RlZmluZSBfUFNfQ01ETElORSAgICAgICAgICAgICAgICAgICAgICAoMTw8MjUpCisjZGVmaW5lIFBTX0FSR1MgICAgICAgICAgICAgICAgICAgICAgICAgIDI2CisjZGVmaW5lIF9QU19BUkdTICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwyNikKKyNkZWZpbmUgUFNfQ01EICAgICAgICAgICAgICAgICAgICAgICAgICAgMjcKKyNkZWZpbmUgX1BTX0NNRCAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDI3KQorI2RlZmluZSBQU19VSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAyOAorI2RlZmluZSBfUFNfVUlEICAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MjgpCisjZGVmaW5lIFBTX1VTRVIgICAgICAgICAgICAgICAgICAgICAgICAgIDI5CisjZGVmaW5lIF9QU19VU0VSICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwyOSkKKyNkZWZpbmUgUFNfUlVJRCAgICAgICAgICAgICAgICAgICAgICAgICAgMzAKKyNkZWZpbmUgX1BTX1JVSUQgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDMwKQorI2RlZmluZSBQU19SVVNFUiAgICAgICAgICAgICAgICAgICAgICAgICAzMQorI2RlZmluZSBfUFNfUlVTRVIgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MzEpCisjZGVmaW5lIFBTX0dJRCAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyCisjZGVmaW5lIF9QU19HSUQgICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDMyKQorI2RlZmluZSBQU19HUk9VUCAgICAgICAgICAgICAgICAgICAgICAgICAzMworI2RlZmluZSBfUFNfR1JPVVAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDwzMykKKyNkZWZpbmUgUFNfUkdJRCAgICAgICAgICAgICAgICAgICAgICAgICAgMzQKKyNkZWZpbmUgX1BTX1JHSUQgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8MzQpCisjZGVmaW5lIFBTX1JHUk9VUCAgICAgICAgICAgICAgICAgICAgICAgIDM1CisjZGVmaW5lIF9QU19SR1JPVVAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDM1KQorI2RlZmluZSBQU19USU1FICAgICAgICAgICAgICAgICAgICAgICAgICAzNgorI2RlZmluZSBfUFNfVElNRSAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDwzNikKKyNkZWZpbmUgUFNfRUxBUFNFRCAgICAgICAgICAgICAgICAgICAgICAgMzcKKyNkZWZpbmUgX1BTX0VMQVBTRUQgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8MzcpCisjZGVmaW5lIFBTX1RJTUVfICAgICAgICAgICAgICAgICAgICAgICAgIDM4CisjZGVmaW5lIF9QU19USU1FXyAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDM4KQorI2RlZmluZSBQU19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzOQorI2RlZmluZSBfUFNfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDwzOSkKKyNkZWZpbmUgUFNfX1ZTWiAgICAgICAgICAgICAgICAgICAgICAgICAgNDAKKyNkZWZpbmUgX1BTX19WU1ogICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NDApCisjZGVmaW5lIFBTX19NRU0gICAgICAgICAgICAgICAgICAgICAgICAgIDQxCisjZGVmaW5lIF9QU19fTUVNICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDQxKQorI2RlZmluZSBQU19fQ1BVICAgICAgICAgICAgICAgICAgICAgICAgICA0MgorI2RlZmluZSBfUFNfX0NQVSAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw0MikKKyNkZWZpbmUgUFNfVklSVCAgICAgICAgICAgICAgICAgICAgICAgICAgNDMKKyNkZWZpbmUgX1BTX1ZJUlQgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NDMpCisjZGVmaW5lIFBTX1JFUyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0CisjZGVmaW5lIF9QU19SRVMgICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDQ0KQorI2RlZmluZSBQU19TSFIgICAgICAgICAgICAgICAgICAgICAgICAgICA0NQorI2RlZmluZSBfUFNfU0hSICAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw0NSkKKyNkZWZpbmUgUFNfUkVBRCAgICAgICAgICAgICAgICAgICAgICAgICAgNDYKKyNkZWZpbmUgX1BTX1JFQUQgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NDYpCisjZGVmaW5lIFBTX1dSSVRFICAgICAgICAgICAgICAgICAgICAgICAgIDQ3CisjZGVmaW5lIF9QU19XUklURSAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDQ3KQorI2RlZmluZSBQU19JTyAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OAorI2RlZmluZSBfUFNfSU8gICAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw0OCkKKyNkZWZpbmUgUFNfRFJFQUQgICAgICAgICAgICAgICAgICAgICAgICAgNDkKKyNkZWZpbmUgX1BTX0RSRUFEICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NDkpCisjZGVmaW5lIFBTX0RXUklURSAgICAgICAgICAgICAgICAgICAgICAgIDUwCisjZGVmaW5lIF9QU19EV1JJVEUgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDUwKQorI2RlZmluZSBQU19TV0FQICAgICAgICAgICAgICAgICAgICAgICAgICA1MQorI2RlZmluZSBfUFNfU1dBUCAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw1MSkKKyNkZWZpbmUgUFNfRElPICAgICAgICAgICAgICAgICAgICAgICAgICAgNTIKKyNkZWZpbmUgX1BTX0RJTyAgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NTIpCisjZGVmaW5lIFBTX1NUSU1FICAgICAgICAgICAgICAgICAgICAgICAgIDUzCisjZGVmaW5lIF9QU19TVElNRSAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDUzKQorI2RlZmluZSBQU19GICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1NAorI2RlZmluZSBfUFNfRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw1NCkKKyNkZWZpbmUgUFNfUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTUKKyNkZWZpbmUgX1BTX1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NTUpCisjZGVmaW5lIFBTX1NUQVQgICAgICAgICAgICAgICAgICAgICAgICAgIDU2CisjZGVmaW5lIF9QU19TVEFUICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDU2KQorI2RlZmluZSBQU19QQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICA1NworI2RlZmluZSBfUFNfUENZICAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw1NykKZGlmZiAtLWdpdCBhL2FuZHJvaWQvbGludXgvZ2VuZXJhdGVkL2NvbmZpZy5oIGIvYW5kcm9pZC9saW51eC9nZW5lcmF0ZWQvY29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzMwOTgyZAotLS0gL2Rldi9udWxsCisrKyBiL2FuZHJvaWQvbGludXgvZ2VuZXJhdGVkL2NvbmZpZy5oCkBAIC0wLDAgKzEsNjgwIEBACisjZGVmaW5lIENGR19UT1lCT1ggMQorI2RlZmluZSBVU0VfVE9ZQk9YKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RPWUJPWF9ERUJVRyAwCisjZGVmaW5lIFVTRV9UT1lCT1hfREVCVUcoLi4uKQorI2RlZmluZSBDRkdfVE9ZQk9YX0ZMT0FUIDEKKyNkZWZpbmUgVVNFX1RPWUJPWF9GTE9BVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfRk9SSyAxCisjZGVmaW5lIFVTRV9UT1lCT1hfRk9SSyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfRlJFRSAwCisjZGVmaW5lIFVTRV9UT1lCT1hfRlJFRSguLi4pCisjZGVmaW5lIENGR19UT1lCT1hfSEVMUF9EQVNIREFTSCAxCisjZGVmaW5lIFVTRV9UT1lCT1hfSEVMUF9EQVNIREFTSCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfSEVMUCAxCisjZGVmaW5lIFVTRV9UT1lCT1hfSEVMUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfTElCQ1JZUFRPIDEKKyNkZWZpbmUgVVNFX1RPWUJPWF9MSUJDUllQVE8oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVE9ZQk9YX0xJQlogMQorI2RlZmluZSBVU0VfVE9ZQk9YX0xJQlooLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVE9ZQk9YX0xTTV9OT05FIDEKKyNkZWZpbmUgVVNFX1RPWUJPWF9MU01fTk9ORSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfTk9SRUNVUlNFIDEKKyNkZWZpbmUgVVNFX1RPWUJPWF9OT1JFQ1VSU0UoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVE9ZQk9YX09OX0FORFJPSUQgMAorI2RlZmluZSBVU0VfVE9ZQk9YX09OX0FORFJPSUQoLi4uKQorI2RlZmluZSBDRkdfVE9ZQk9YX1NFTElOVVggMAorI2RlZmluZSBVU0VfVE9ZQk9YX1NFTElOVVgoLi4uKQorI2RlZmluZSBDRkdfVE9ZQk9YX1NNQUNLIDAKKyNkZWZpbmUgVVNFX1RPWUJPWF9TTUFDSyguLi4pCisjZGVmaW5lIENGR19UT1lCT1hfU1VJRCAwCisjZGVmaW5lIFVTRV9UT1lCT1hfU1VJRCguLi4pCisjZGVmaW5lIENGR19UT1lCT1hfVUlEX1NZUyAxMDAKKyNkZWZpbmUgQ0ZHX1RPWUJPWF9VSURfVVNSIDUwMAorI2RlZmluZSBDRkdfVE9ZQk9YX1pIRUxQIDAKKyNkZWZpbmUgVVNFX1RPWUJPWF9aSEVMUCguLi4pCisjZGVmaW5lIENGR19BQ1BJIDAKKyNkZWZpbmUgVVNFX0FDUEkoLi4uKQorI2RlZmluZSBDRkdfQVJDSCAwCisjZGVmaW5lIFVTRV9BUkNIKC4uLikKKyNkZWZpbmUgQ0ZHX0FSUElORyAwCisjZGVmaW5lIFVTRV9BUlBJTkcoLi4uKQorI2RlZmluZSBDRkdfQVJQIDAKKyNkZWZpbmUgVVNFX0FSUCguLi4pCisjZGVmaW5lIENGR19BU0NJSSAwCisjZGVmaW5lIFVTRV9BU0NJSSguLi4pCisjZGVmaW5lIENGR19CQVNFMzIgMAorI2RlZmluZSBVU0VfQkFTRTMyKC4uLikKKyNkZWZpbmUgQ0ZHX0JBU0U2NCAwCisjZGVmaW5lIFVTRV9CQVNFNjQoLi4uKQorI2RlZmluZSBDRkdfQkFTRU5BTUUgMQorI2RlZmluZSBVU0VfQkFTRU5BTUUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQkMgMAorI2RlZmluZSBVU0VfQkMoLi4uKQorI2RlZmluZSBDRkdfQkxLRElTQ0FSRCAwCisjZGVmaW5lIFVTRV9CTEtESVNDQVJEKC4uLikKKyNkZWZpbmUgQ0ZHX0JMS0lEIDAKKyNkZWZpbmUgVVNFX0JMS0lEKC4uLikKKyNkZWZpbmUgQ0ZHX0JMT0NLREVWIDAKKyNkZWZpbmUgVVNFX0JMT0NLREVWKC4uLikKKyNkZWZpbmUgQ0ZHX0JPT1RDSEFSVEQgMAorI2RlZmluZSBVU0VfQk9PVENIQVJURCguLi4pCisjZGVmaW5lIENGR19CUkNUTCAwCisjZGVmaW5lIFVTRV9CUkNUTCguLi4pCisjZGVmaW5lIENGR19CVU5aSVAyIDAKKyNkZWZpbmUgVVNFX0JVTlpJUDIoLi4uKQorI2RlZmluZSBDRkdfQlpDQVQgMAorI2RlZmluZSBVU0VfQlpDQVQoLi4uKQorI2RlZmluZSBDRkdfQ0FMIDAKKyNkZWZpbmUgVVNFX0NBTCguLi4pCisjZGVmaW5lIENGR19DQVQgMQorI2RlZmluZSBVU0VfQ0FUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0NEIDAKKyNkZWZpbmUgVVNFX0NEKC4uLikKKyNkZWZpbmUgQ0ZHX0NIQVRUUiAwCisjZGVmaW5lIFVTRV9DSEFUVFIoLi4uKQorI2RlZmluZSBDRkdfQ0hDT04gMAorI2RlZmluZSBVU0VfQ0hDT04oLi4uKQorI2RlZmluZSBDRkdfQ0hHUlAgMAorI2RlZmluZSBVU0VfQ0hHUlAoLi4uKQorI2RlZmluZSBDRkdfQ0hNT0QgMQorI2RlZmluZSBVU0VfQ0hNT0QoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQ0hPV04gMAorI2RlZmluZSBVU0VfQ0hPV04oLi4uKQorI2RlZmluZSBDRkdfQ0hST09UIDAKKyNkZWZpbmUgVVNFX0NIUk9PVCguLi4pCisjZGVmaW5lIENGR19DSFJUIDAKKyNkZWZpbmUgVVNFX0NIUlQoLi4uKQorI2RlZmluZSBDRkdfQ0hTSCAwCisjZGVmaW5lIFVTRV9DSFNIKC4uLikKKyNkZWZpbmUgQ0ZHX0NIVlQgMAorI2RlZmluZSBVU0VfQ0hWVCguLi4pCisjZGVmaW5lIENGR19DS1NVTSAwCisjZGVmaW5lIFVTRV9DS1NVTSguLi4pCisjZGVmaW5lIENGR19DTEVBUiAwCisjZGVmaW5lIFVTRV9DTEVBUiguLi4pCisjZGVmaW5lIENGR19DTVAgMQorI2RlZmluZSBVU0VfQ01QKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0NPTU0gMQorI2RlZmluZSBVU0VfQ09NTSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19DT1VOVCAwCisjZGVmaW5lIFVTRV9DT1VOVCguLi4pCisjZGVmaW5lIENGR19DUElPIDEKKyNkZWZpbmUgVVNFX0NQSU8oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQ1AgMQorI2RlZmluZSBVU0VfQ1AoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQ1JDMzIgMAorI2RlZmluZSBVU0VfQ1JDMzIoLi4uKQorI2RlZmluZSBDRkdfQ1JPTkQgMAorI2RlZmluZSBVU0VfQ1JPTkQoLi4uKQorI2RlZmluZSBDRkdfQ1JPTlRBQiAwCisjZGVmaW5lIFVTRV9DUk9OVEFCKC4uLikKKyNkZWZpbmUgQ0ZHX0NTUExJVCAwCisjZGVmaW5lIFVTRV9DU1BMSVQoLi4uKQorI2RlZmluZSBDRkdfQ1VUIDEKKyNkZWZpbmUgVVNFX0NVVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19EQVRFIDEKKyNkZWZpbmUgVVNFX0RBVEUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfREQgMQorI2RlZmluZSBVU0VfREQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfREVBTExPQ1ZUIDAKKyNkZWZpbmUgVVNFX0RFQUxMT0NWVCguLi4pCisjZGVmaW5lIENGR19ERUJVR19ESENQIDAKKyNkZWZpbmUgVVNFX0RFQlVHX0RIQ1AoLi4uKQorI2RlZmluZSBDRkdfREVNT19NQU5ZX09QVElPTlMgMAorI2RlZmluZSBVU0VfREVNT19NQU5ZX09QVElPTlMoLi4uKQorI2RlZmluZSBDRkdfREVNT19OVU1CRVIgMAorI2RlZmluZSBVU0VfREVNT19OVU1CRVIoLi4uKQorI2RlZmluZSBDRkdfREVNT19TQ0FOS0VZIDAKKyNkZWZpbmUgVVNFX0RFTU9fU0NBTktFWSguLi4pCisjZGVmaW5lIENGR19ERU1PX1VURjhUT1dDIDAKKyNkZWZpbmUgVVNFX0RFTU9fVVRGOFRPV0MoLi4uKQorI2RlZmluZSBDRkdfREVWTUVNIDAKKyNkZWZpbmUgVVNFX0RFVk1FTSguLi4pCisjZGVmaW5lIENGR19ERiAwCisjZGVmaW5lIFVTRV9ERiguLi4pCisjZGVmaW5lIENGR19ESENQNiAwCisjZGVmaW5lIFVTRV9ESENQNiguLi4pCisjZGVmaW5lIENGR19ESENQRCAwCisjZGVmaW5lIFVTRV9ESENQRCguLi4pCisjZGVmaW5lIENGR19ESENQIDAKKyNkZWZpbmUgVVNFX0RIQ1AoLi4uKQorI2RlZmluZSBDRkdfRElGRiAxCisjZGVmaW5lIFVTRV9ESUZGKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0RJUk5BTUUgMQorI2RlZmluZSBVU0VfRElSTkFNRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19ETUVTRyAwCisjZGVmaW5lIFVTRV9ETUVTRyguLi4pCisjZGVmaW5lIENGR19ETlNET01BSU5OQU1FIDAKKyNkZWZpbmUgVVNFX0ROU0RPTUFJTk5BTUUoLi4uKQorI2RlZmluZSBDRkdfRE9TMlVOSVggMQorI2RlZmluZSBVU0VfRE9TMlVOSVgoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfRFVNUExFQVNFUyAwCisjZGVmaW5lIFVTRV9EVU1QTEVBU0VTKC4uLikKKyNkZWZpbmUgQ0ZHX0RVIDEKKyNkZWZpbmUgVVNFX0RVKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0VDSE8gMQorI2RlZmluZSBVU0VfRUNITyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19FR1JFUCAxCisjZGVmaW5lIFVTRV9FR1JFUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19FSkVDVCAwCisjZGVmaW5lIFVTRV9FSkVDVCguLi4pCisjZGVmaW5lIENGR19FTlYgMQorI2RlZmluZSBVU0VfRU5WKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0VYSVQgMAorI2RlZmluZSBVU0VfRVhJVCguLi4pCisjZGVmaW5lIENGR19FWFBBTkQgMAorI2RlZmluZSBVU0VfRVhQQU5EKC4uLikKKyNkZWZpbmUgQ0ZHX0VYUFIgMQorI2RlZmluZSBVU0VfRVhQUiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19GQUNUT1IgMAorI2RlZmluZSBVU0VfRkFDVE9SKC4uLikKKyNkZWZpbmUgQ0ZHX0ZBTExPQ0FURSAwCisjZGVmaW5lIFVTRV9GQUxMT0NBVEUoLi4uKQorI2RlZmluZSBDRkdfRkFMU0UgMAorI2RlZmluZSBVU0VfRkFMU0UoLi4uKQorI2RlZmluZSBDRkdfRkRJU0sgMAorI2RlZmluZSBVU0VfRkRJU0soLi4uKQorI2RlZmluZSBDRkdfRkdSRVAgMQorI2RlZmluZSBVU0VfRkdSRVAoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfRklMRSAxCisjZGVmaW5lIFVTRV9GSUxFKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0ZJTkQgMQorI2RlZmluZSBVU0VfRklORCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19GTE9DSyAxCisjZGVmaW5lIFVTRV9GTE9DSyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19GTVQgMAorI2RlZmluZSBVU0VfRk1UKC4uLikKKyNkZWZpbmUgQ0ZHX0ZPTEQgMAorI2RlZmluZSBVU0VfRk9MRCguLi4pCisjZGVmaW5lIENGR19GUkVFIDAKKyNkZWZpbmUgVVNFX0ZSRUUoLi4uKQorI2RlZmluZSBDRkdfRlJFRVJBTURJU0sgMAorI2RlZmluZSBVU0VfRlJFRVJBTURJU0soLi4uKQorI2RlZmluZSBDRkdfRlNDSyAwCisjZGVmaW5lIFVTRV9GU0NLKC4uLikKKyNkZWZpbmUgQ0ZHX0ZTRlJFRVpFIDAKKyNkZWZpbmUgVVNFX0ZTRlJFRVpFKC4uLikKKyNkZWZpbmUgQ0ZHX0ZTVFlQRSAwCisjZGVmaW5lIFVTRV9GU1RZUEUoLi4uKQorI2RlZmluZSBDRkdfRlNZTkMgMAorI2RlZmluZSBVU0VfRlNZTkMoLi4uKQorI2RlZmluZSBDRkdfRlRQR0VUIDAKKyNkZWZpbmUgVVNFX0ZUUEdFVCguLi4pCisjZGVmaW5lIENGR19GVFBQVVQgMAorI2RlZmluZSBVU0VfRlRQUFVUKC4uLikKKyNkZWZpbmUgQ0ZHX0dFVENPTkYgMQorI2RlZmluZSBVU0VfR0VUQ09ORiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19HRVRFTkZPUkNFIDAKKyNkZWZpbmUgVVNFX0dFVEVORk9SQ0UoLi4uKQorI2RlZmluZSBDRkdfR0VURkFUVFIgMAorI2RlZmluZSBVU0VfR0VURkFUVFIoLi4uKQorI2RlZmluZSBDRkdfR0VUT1BUIDEKKyNkZWZpbmUgVVNFX0dFVE9QVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19HRVRUWSAwCisjZGVmaW5lIFVTRV9HRVRUWSguLi4pCisjZGVmaW5lIENGR19HSVRDSEVDS09VVCAwCisjZGVmaW5lIFVTRV9HSVRDSEVDS09VVCguLi4pCisjZGVmaW5lIENGR19HSVRDTE9ORSAwCisjZGVmaW5lIFVTRV9HSVRDTE9ORSguLi4pCisjZGVmaW5lIENGR19HSVRDT01QQVQgMAorI2RlZmluZSBVU0VfR0lUQ09NUEFUKC4uLikKKyNkZWZpbmUgQ0ZHX0dJVEZFVENIIDAKKyNkZWZpbmUgVVNFX0dJVEZFVENIKC4uLikKKyNkZWZpbmUgQ0ZHX0dJVElOSVQgMAorI2RlZmluZSBVU0VfR0lUSU5JVCguLi4pCisjZGVmaW5lIENGR19HSVRSRU1PVEUgMAorI2RlZmluZSBVU0VfR0lUUkVNT1RFKC4uLikKKyNkZWZpbmUgQ0ZHX0dQSU9ERVRFQ1QgMAorI2RlZmluZSBVU0VfR1BJT0RFVEVDVCguLi4pCisjZGVmaW5lIENGR19HUElPRklORCAwCisjZGVmaW5lIFVTRV9HUElPRklORCguLi4pCisjZGVmaW5lIENGR19HUElPR0VUIDAKKyNkZWZpbmUgVVNFX0dQSU9HRVQoLi4uKQorI2RlZmluZSBDRkdfR1BJT0lORk8gMAorI2RlZmluZSBVU0VfR1BJT0lORk8oLi4uKQorI2RlZmluZSBDRkdfR1BJT1NFVCAwCisjZGVmaW5lIFVTRV9HUElPU0VUKC4uLikKKyNkZWZpbmUgQ0ZHX0dSRVAgMQorI2RlZmluZSBVU0VfR1JFUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19HUk9VUEFERCAwCisjZGVmaW5lIFVTRV9HUk9VUEFERCguLi4pCisjZGVmaW5lIENGR19HUk9VUERFTCAwCisjZGVmaW5lIFVTRV9HUk9VUERFTCguLi4pCisjZGVmaW5lIENGR19HUk9VUFMgMAorI2RlZmluZSBVU0VfR1JPVVBTKC4uLikKKyNkZWZpbmUgQ0ZHX0dVTlpJUCAwCisjZGVmaW5lIFVTRV9HVU5aSVAoLi4uKQorI2RlZmluZSBDRkdfR1pJUCAxCisjZGVmaW5lIFVTRV9HWklQKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0hFQUQgMQorI2RlZmluZSBVU0VfSEVBRCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19IRUxMTyAwCisjZGVmaW5lIFVTRV9IRUxMTyguLi4pCisjZGVmaW5lIENGR19IRUxQIDAKKyNkZWZpbmUgVVNFX0hFTFAoLi4uKQorI2RlZmluZSBDRkdfSEVYRFVNUCAwCisjZGVmaW5lIFVTRV9IRVhEVU1QKC4uLikKKyNkZWZpbmUgQ0ZHX0hFWEVESVQgMAorI2RlZmluZSBVU0VfSEVYRURJVCguLi4pCisjZGVmaW5lIENGR19IRCAwCisjZGVmaW5lIFVTRV9IRCguLi4pCisjZGVmaW5lIENGR19IT1NUSUQgMAorI2RlZmluZSBVU0VfSE9TVElEKC4uLikKKyNkZWZpbmUgQ0ZHX0hPU1QgMAorI2RlZmluZSBVU0VfSE9TVCguLi4pCisjZGVmaW5lIENGR19IT1NUTkFNRSAxCisjZGVmaW5lIFVTRV9IT1NUTkFNRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19IVFRQRCAwCisjZGVmaW5lIFVTRV9IVFRQRCguLi4pCisjZGVmaW5lIENGR19IV0NMT0NLIDAKKyNkZWZpbmUgVVNFX0hXQ0xPQ0soLi4uKQorI2RlZmluZSBDRkdfSTJDREVURUNUIDAKKyNkZWZpbmUgVVNFX0kyQ0RFVEVDVCguLi4pCisjZGVmaW5lIENGR19JMkNEVU1QIDAKKyNkZWZpbmUgVVNFX0kyQ0RVTVAoLi4uKQorI2RlZmluZSBDRkdfSTJDR0VUIDAKKyNkZWZpbmUgVVNFX0kyQ0dFVCguLi4pCisjZGVmaW5lIENGR19JMkNTRVQgMAorI2RlZmluZSBVU0VfSTJDU0VUKC4uLikKKyNkZWZpbmUgQ0ZHX0kyQ1RSQU5TRkVSIDAKKyNkZWZpbmUgVVNFX0kyQ1RSQU5TRkVSKC4uLikKKyNkZWZpbmUgQ0ZHX0lDT05WIDAKKyNkZWZpbmUgVVNFX0lDT05WKC4uLikKKyNkZWZpbmUgQ0ZHX0lEIDEKKyNkZWZpbmUgVVNFX0lEKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0lEX1ogMAorI2RlZmluZSBVU0VfSURfWiguLi4pCisjZGVmaW5lIENGR19JRkNPTkZJRyAwCisjZGVmaW5lIFVTRV9JRkNPTkZJRyguLi4pCisjZGVmaW5lIENGR19JTklUIDAKKyNkZWZpbmUgVVNFX0lOSVQoLi4uKQorI2RlZmluZSBDRkdfSU5PVElGWUQgMAorI2RlZmluZSBVU0VfSU5PVElGWUQoLi4uKQorI2RlZmluZSBDRkdfSU5TTU9EIDAKKyNkZWZpbmUgVVNFX0lOU01PRCguLi4pCisjZGVmaW5lIENGR19JTlNUQUxMIDEKKyNkZWZpbmUgVVNFX0lOU1RBTEwoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfSU9OSUNFIDAKKyNkZWZpbmUgVVNFX0lPTklDRSguLi4pCisjZGVmaW5lIENGR19JT1JFTklDRSAwCisjZGVmaW5lIFVTRV9JT1JFTklDRSguLi4pCisjZGVmaW5lIENGR19JT1RPUCAwCisjZGVmaW5lIFVTRV9JT1RPUCguLi4pCisjZGVmaW5lIENGR19JUENSTSAwCisjZGVmaW5lIFVTRV9JUENSTSguLi4pCisjZGVmaW5lIENGR19JUENTIDAKKyNkZWZpbmUgVVNFX0lQQ1MoLi4uKQorI2RlZmluZSBDRkdfSVAgMAorI2RlZmluZSBVU0VfSVAoLi4uKQorI2RlZmluZSBDRkdfS0lMTEFMTDUgMAorI2RlZmluZSBVU0VfS0lMTEFMTDUoLi4uKQorI2RlZmluZSBDRkdfS0lMTEFMTCAwCisjZGVmaW5lIFVTRV9LSUxMQUxMKC4uLikKKyNkZWZpbmUgQ0ZHX0tJTEwgMAorI2RlZmluZSBVU0VfS0lMTCguLi4pCisjZGVmaW5lIENGR19LTE9HRCAwCisjZGVmaW5lIFVTRV9LTE9HRCguLi4pCisjZGVmaW5lIENGR19LTE9HRF9TT1VSQ0VfUklOR19CVUZGRVIgMAorI2RlZmluZSBVU0VfS0xPR0RfU09VUkNFX1JJTkdfQlVGRkVSKC4uLikKKyNkZWZpbmUgQ0ZHX0xBU1QgMAorI2RlZmluZSBVU0VfTEFTVCguLi4pCisjZGVmaW5lIENGR19MSU5LIDAKKyNkZWZpbmUgVVNFX0xJTksoLi4uKQorI2RlZmluZSBDRkdfTElOVVgzMiAwCisjZGVmaW5lIFVTRV9MSU5VWDMyKC4uLikKKyNkZWZpbmUgQ0ZHX0xOIDEKKyNkZWZpbmUgVVNFX0xOKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0xPQURfUE9MSUNZIDAKKyNkZWZpbmUgVVNFX0xPQURfUE9MSUNZKC4uLikKKyNkZWZpbmUgQ0ZHX0xPR0dFUiAwCisjZGVmaW5lIFVTRV9MT0dHRVIoLi4uKQorI2RlZmluZSBDRkdfTE9HSU4gMAorI2RlZmluZSBVU0VfTE9HSU4oLi4uKQorI2RlZmluZSBDRkdfTE9HIDAKKyNkZWZpbmUgVVNFX0xPRyguLi4pCisjZGVmaW5lIENGR19MT0dOQU1FIDAKKyNkZWZpbmUgVVNFX0xPR05BTUUoLi4uKQorI2RlZmluZSBDRkdfTE9HUEFUSCAwCisjZGVmaW5lIFVTRV9MT0dQQVRIKC4uLikKKyNkZWZpbmUgQ0ZHX0xPU0VUVVAgMAorI2RlZmluZSBVU0VfTE9TRVRVUCguLi4pCisjZGVmaW5lIENGR19MU0FUVFIgMAorI2RlZmluZSBVU0VfTFNBVFRSKC4uLikKKyNkZWZpbmUgQ0ZHX0xTTU9EIDAKKyNkZWZpbmUgVVNFX0xTTU9EKC4uLikKKyNkZWZpbmUgQ0ZHX0xTT0YgMAorI2RlZmluZSBVU0VfTFNPRiguLi4pCisjZGVmaW5lIENGR19MU1BDSSAwCisjZGVmaW5lIFVTRV9MU1BDSSguLi4pCisjZGVmaW5lIENGR19MU1VTQiAwCisjZGVmaW5lIFVTRV9MU1VTQiguLi4pCisjZGVmaW5lIENGR19MUyAxCisjZGVmaW5lIFVTRV9MUyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19NQUtFREVWUyAwCisjZGVmaW5lIFVTRV9NQUtFREVWUyguLi4pCisjZGVmaW5lIENGR19NQU4gMAorI2RlZmluZSBVU0VfTUFOKC4uLikKKyNkZWZpbmUgQ0ZHX01DT09LSUUgMAorI2RlZmluZSBVU0VfTUNPT0tJRSguLi4pCisjZGVmaW5lIENGR19NRDVTVU0gMQorI2RlZmluZSBVU0VfTUQ1U1VNKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX01ERVZfQ09ORiAwCisjZGVmaW5lIFVTRV9NREVWX0NPTkYoLi4uKQorI2RlZmluZSBDRkdfTURFViAwCisjZGVmaW5lIFVTRV9NREVWKC4uLikKKyNkZWZpbmUgQ0ZHX01FTUVBVEVSIDAKKyNkZWZpbmUgVVNFX01FTUVBVEVSKC4uLikKKyNkZWZpbmUgQ0ZHX01JQ1JPQ09NIDEKKyNkZWZpbmUgVVNFX01JQ1JPQ09NKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX01JWCAwCisjZGVmaW5lIFVTRV9NSVgoLi4uKQorI2RlZmluZSBDRkdfTUtESVIgMQorI2RlZmluZSBVU0VfTUtESVIoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTUtESVJfWiAwCisjZGVmaW5lIFVTRV9NS0RJUl9aKC4uLikKKyNkZWZpbmUgQ0ZHX01LRTJGU19FWFRFTkRFRCAwCisjZGVmaW5lIFVTRV9NS0UyRlNfRVhURU5ERUQoLi4uKQorI2RlZmluZSBDRkdfTUtFMkZTX0dFTiAwCisjZGVmaW5lIFVTRV9NS0UyRlNfR0VOKC4uLikKKyNkZWZpbmUgQ0ZHX01LRTJGUyAwCisjZGVmaW5lIFVTRV9NS0UyRlMoLi4uKQorI2RlZmluZSBDRkdfTUtFMkZTX0pPVVJOQUwgMAorI2RlZmluZSBVU0VfTUtFMkZTX0pPVVJOQUwoLi4uKQorI2RlZmluZSBDRkdfTUtFMkZTX0xBQkVMIDAKKyNkZWZpbmUgVVNFX01LRTJGU19MQUJFTCguLi4pCisjZGVmaW5lIENGR19NS0ZJRk8gMAorI2RlZmluZSBVU0VfTUtGSUZPKC4uLikKKyNkZWZpbmUgQ0ZHX01LRklGT19aIDAKKyNkZWZpbmUgVVNFX01LRklGT19aKC4uLikKKyNkZWZpbmUgQ0ZHX01LTk9EIDAKKyNkZWZpbmUgVVNFX01LTk9EKC4uLikKKyNkZWZpbmUgQ0ZHX01LTk9EX1ogMAorI2RlZmluZSBVU0VfTUtOT0RfWiguLi4pCisjZGVmaW5lIENGR19NS1BBU1NXRCAwCisjZGVmaW5lIFVTRV9NS1BBU1NXRCguLi4pCisjZGVmaW5lIENGR19NS1NXQVAgMAorI2RlZmluZSBVU0VfTUtTV0FQKC4uLikKKyNkZWZpbmUgQ0ZHX01LVEVNUCAxCisjZGVmaW5lIFVTRV9NS1RFTVAoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTU9ESU5GTyAwCisjZGVmaW5lIFVTRV9NT0RJTkZPKC4uLikKKyNkZWZpbmUgQ0ZHX01PRFBST0JFIDAKKyNkZWZpbmUgVVNFX01PRFBST0JFKC4uLikKKyNkZWZpbmUgQ0ZHX01PUkUgMAorI2RlZmluZSBVU0VfTU9SRSguLi4pCisjZGVmaW5lIENGR19NT1VOVCAxCisjZGVmaW5lIFVTRV9NT1VOVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19NT1VOVFBPSU5UIDAKKyNkZWZpbmUgVVNFX01PVU5UUE9JTlQoLi4uKQorI2RlZmluZSBDRkdfTVYgMQorI2RlZmluZSBVU0VfTVYoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTkJEX0NMSUVOVCAwCisjZGVmaW5lIFVTRV9OQkRfQ0xJRU5UKC4uLikKKyNkZWZpbmUgQ0ZHX05CRF9TRVJWRVIgMAorI2RlZmluZSBVU0VfTkJEX1NFUlZFUiguLi4pCisjZGVmaW5lIENGR19ORVRDQVQgMAorI2RlZmluZSBVU0VfTkVUQ0FUKC4uLikKKyNkZWZpbmUgQ0ZHX05FVFNUQVQgMAorI2RlZmluZSBVU0VfTkVUU1RBVCguLi4pCisjZGVmaW5lIENGR19OSUNFIDAKKyNkZWZpbmUgVVNFX05JQ0UoLi4uKQorI2RlZmluZSBDRkdfTkwgMQorI2RlZmluZSBVU0VfTkwoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTk9IVVAgMAorI2RlZmluZSBVU0VfTk9IVVAoLi4uKQorI2RlZmluZSBDRkdfTlBST0MgMQorI2RlZmluZSBVU0VfTlBST0MoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTlNFTlRFUiAwCisjZGVmaW5lIFVTRV9OU0VOVEVSKC4uLikKKyNkZWZpbmUgQ0ZHX09EIDEKKyNkZWZpbmUgVVNFX09EKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX09ORUlUIDAKKyNkZWZpbmUgVVNFX09ORUlUKC4uLikKKyNkZWZpbmUgQ0ZHX09QRU5WVCAwCisjZGVmaW5lIFVTRV9PUEVOVlQoLi4uKQorI2RlZmluZSBDRkdfUEFSVFBST0JFIDAKKyNkZWZpbmUgVVNFX1BBUlRQUk9CRSguLi4pCisjZGVmaW5lIENGR19QQVNTV0QgMAorI2RlZmluZSBVU0VfUEFTU1dEKC4uLikKKyNkZWZpbmUgQ0ZHX1BBU1NXRF9TQUQgMAorI2RlZmluZSBVU0VfUEFTU1dEX1NBRCguLi4pCisjZGVmaW5lIENGR19QQVNURSAxCisjZGVmaW5lIFVTRV9QQVNURSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19QQVRDSCAxCisjZGVmaW5lIFVTRV9QQVRDSCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19QR1JFUCAxCisjZGVmaW5lIFVTRV9QR1JFUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19QSURPRiAwCisjZGVmaW5lIFVTRV9QSURPRiguLi4pCisjZGVmaW5lIENGR19QSU5HIDAKKyNkZWZpbmUgVVNFX1BJTkcoLi4uKQorI2RlZmluZSBDRkdfUElWT1RfUk9PVCAwCisjZGVmaW5lIFVTRV9QSVZPVF9ST09UKC4uLikKKyNkZWZpbmUgQ0ZHX1BLSUxMIDEKKyNkZWZpbmUgVVNFX1BLSUxMKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1BNQVAgMAorI2RlZmluZSBVU0VfUE1BUCguLi4pCisjZGVmaW5lIENGR19QUklOVEVOViAwCisjZGVmaW5lIFVTRV9QUklOVEVOViguLi4pCisjZGVmaW5lIENGR19QUklOVEYgMQorI2RlZmluZSBVU0VfUFJJTlRGKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1BTIDEKKyNkZWZpbmUgVVNFX1BTKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1BXRFggMAorI2RlZmluZSBVU0VfUFdEWCguLi4pCisjZGVmaW5lIENGR19QV0QgMQorI2RlZmluZSBVU0VfUFdEKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1BXR0VOIDAKKyNkZWZpbmUgVVNFX1BXR0VOKC4uLikKKyNkZWZpbmUgQ0ZHX1JFQURBSEVBRCAwCisjZGVmaW5lIFVTRV9SRUFEQUhFQUQoLi4uKQorI2RlZmluZSBDRkdfUkVBREVMRiAwCisjZGVmaW5lIFVTRV9SRUFERUxGKC4uLikKKyNkZWZpbmUgQ0ZHX1JFQURMSU5LIDEKKyNkZWZpbmUgVVNFX1JFQURMSU5LKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1JFQUxQQVRIIDEKKyNkZWZpbmUgVVNFX1JFQUxQQVRIKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1JFQk9PVCAwCisjZGVmaW5lIFVTRV9SRUJPT1QoLi4uKQorI2RlZmluZSBDRkdfUkVOSUNFIDAKKyNkZWZpbmUgVVNFX1JFTklDRSguLi4pCisjZGVmaW5lIENGR19SRVNFVCAwCisjZGVmaW5lIFVTRV9SRVNFVCguLi4pCisjZGVmaW5lIENGR19SRVNUT1JFQ09OIDAKKyNkZWZpbmUgVVNFX1JFU1RPUkVDT04oLi4uKQorI2RlZmluZSBDRkdfUkVWIDAKKyNkZWZpbmUgVVNFX1JFViguLi4pCisjZGVmaW5lIENGR19SRktJTEwgMAorI2RlZmluZSBVU0VfUkZLSUxMKC4uLikKKyNkZWZpbmUgQ0ZHX1JNRElSIDEKKyNkZWZpbmUgVVNFX1JNRElSKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1JNTU9EIDAKKyNkZWZpbmUgVVNFX1JNTU9EKC4uLikKKyNkZWZpbmUgQ0ZHX1JNIDEKKyNkZWZpbmUgVVNFX1JNKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1JPVVRFIDAKKyNkZWZpbmUgVVNFX1JPVVRFKC4uLikKKyNkZWZpbmUgQ0ZHX1JUQ1dBS0UgMAorI2RlZmluZSBVU0VfUlRDV0FLRSguLi4pCisjZGVmaW5lIENGR19SVU5DT04gMAorI2RlZmluZSBVU0VfUlVOQ09OKC4uLikKKyNkZWZpbmUgQ0ZHX1NFRCAxCisjZGVmaW5lIFVTRV9TRUQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU0VOREVWRU5UIDAKKyNkZWZpbmUgVVNFX1NFTkRFVkVOVCguLi4pCisjZGVmaW5lIENGR19TRVEgMQorI2RlZmluZSBVU0VfU0VRKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NFVEVORk9SQ0UgMAorI2RlZmluZSBVU0VfU0VURU5GT1JDRSguLi4pCisjZGVmaW5lIENGR19TRVRGQVRUUiAwCisjZGVmaW5lIFVTRV9TRVRGQVRUUiguLi4pCisjZGVmaW5lIENGR19TRVRTSUQgMQorI2RlZmluZSBVU0VfU0VUU0lEKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NIQTFTVU0gMQorI2RlZmluZSBVU0VfU0hBMVNVTSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TSEEyMjRTVU0gMAorI2RlZmluZSBVU0VfU0hBMjI0U1VNKC4uLikKKyNkZWZpbmUgQ0ZHX1NIQTI1NlNVTSAxCisjZGVmaW5lIFVTRV9TSEEyNTZTVU0oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU0hBM1NVTSAwCisjZGVmaW5lIFVTRV9TSEEzU1VNKC4uLikKKyNkZWZpbmUgQ0ZHX1NIQTM4NFNVTSAwCisjZGVmaW5lIFVTRV9TSEEzODRTVU0oLi4uKQorI2RlZmluZSBDRkdfU0hBNTEyU1VNIDEKKyNkZWZpbmUgVVNFX1NIQTUxMlNVTSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TSCAwCisjZGVmaW5lIFVTRV9TSCguLi4pCisjZGVmaW5lIENGR19TSFJFRCAwCisjZGVmaW5lIFVTRV9TSFJFRCguLi4pCisjZGVmaW5lIENGR19TSFVGIDAKKyNkZWZpbmUgVVNFX1NIVUYoLi4uKQorI2RlZmluZSBDRkdfU0tFTEVUT05fQUxJQVMgMAorI2RlZmluZSBVU0VfU0tFTEVUT05fQUxJQVMoLi4uKQorI2RlZmluZSBDRkdfU0tFTEVUT04gMAorI2RlZmluZSBVU0VfU0tFTEVUT04oLi4uKQorI2RlZmluZSBDRkdfU0xFRVAgMQorI2RlZmluZSBVU0VfU0xFRVAoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU05UUCAwCisjZGVmaW5lIFVTRV9TTlRQKC4uLikKKyNkZWZpbmUgQ0ZHX1NPUlRfRkxPQVQgMQorI2RlZmluZSBVU0VfU09SVF9GTE9BVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TT1JUIDEKKyNkZWZpbmUgVVNFX1NPUlQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU1BMSVQgMAorI2RlZmluZSBVU0VfU1BMSVQoLi4uKQorI2RlZmluZSBDRkdfU1RBVCAxCisjZGVmaW5lIFVTRV9TVEFUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NUUkFDRSAwCisjZGVmaW5lIFVTRV9TVFJBQ0UoLi4uKQorI2RlZmluZSBDRkdfU1RSSU5HUyAwCisjZGVmaW5lIFVTRV9TVFJJTkdTKC4uLikKKyNkZWZpbmUgQ0ZHX1NUVFkgMAorI2RlZmluZSBVU0VfU1RUWSguLi4pCisjZGVmaW5lIENGR19TVSAwCisjZGVmaW5lIFVTRV9TVSguLi4pCisjZGVmaW5lIENGR19TVUxPR0lOIDAKKyNkZWZpbmUgVVNFX1NVTE9HSU4oLi4uKQorI2RlZmluZSBDRkdfU1dBUE9GRiAwCisjZGVmaW5lIFVTRV9TV0FQT0ZGKC4uLikKKyNkZWZpbmUgQ0ZHX1NXQVBPTiAwCisjZGVmaW5lIFVTRV9TV0FQT04oLi4uKQorI2RlZmluZSBDRkdfU1dJVENIX1JPT1QgMAorI2RlZmluZSBVU0VfU1dJVENIX1JPT1QoLi4uKQorI2RlZmluZSBDRkdfU1lOQyAwCisjZGVmaW5lIFVTRV9TWU5DKC4uLikKKyNkZWZpbmUgQ0ZHX1NZU0NUTCAwCisjZGVmaW5lIFVTRV9TWVNDVEwoLi4uKQorI2RlZmluZSBDRkdfU1lTTE9HRCAwCisjZGVmaW5lIFVTRV9TWVNMT0dEKC4uLikKKyNkZWZpbmUgQ0ZHX1RBQyAwCisjZGVmaW5lIFVTRV9UQUMoLi4uKQorI2RlZmluZSBDRkdfVEFJTCAxCisjZGVmaW5lIFVTRV9UQUlMKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RBUiAxCisjZGVmaW5lIFVTRV9UQVIoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVEFTS1NFVCAwCisjZGVmaW5lIFVTRV9UQVNLU0VUKC4uLikKKyNkZWZpbmUgQ0ZHX1RDUFNWRCAwCisjZGVmaW5lIFVTRV9UQ1BTVkQoLi4uKQorI2RlZmluZSBDRkdfVEVFIDEKKyNkZWZpbmUgVVNFX1RFRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19URUxORVREIDAKKyNkZWZpbmUgVVNFX1RFTE5FVEQoLi4uKQorI2RlZmluZSBDRkdfVEVMTkVUIDAKKyNkZWZpbmUgVVNFX1RFTE5FVCguLi4pCisjZGVmaW5lIENGR19URVNUIDEKKyNkZWZpbmUgVVNFX1RFU1QoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVEVTVF9HTFVFIDEKKyNkZWZpbmUgVVNFX1RFU1RfR0xVRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19URlRQRCAwCisjZGVmaW5lIFVTRV9URlRQRCguLi4pCisjZGVmaW5lIENGR19URlRQIDAKKyNkZWZpbmUgVVNFX1RGVFAoLi4uKQorI2RlZmluZSBDRkdfVElNRSAwCisjZGVmaW5lIFVTRV9USU1FKC4uLikKKyNkZWZpbmUgQ0ZHX1RJTUVPVVQgMQorI2RlZmluZSBVU0VfVElNRU9VVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1AgMAorI2RlZmluZSBVU0VfVE9QKC4uLikKKyNkZWZpbmUgQ0ZHX1RPVUNIIDEKKyNkZWZpbmUgVVNFX1RPVUNIKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RSQUNFUk9VVEUgMAorI2RlZmluZSBVU0VfVFJBQ0VST1VURSguLi4pCisjZGVmaW5lIENGR19UUlVFIDEKKyNkZWZpbmUgVVNFX1RSVUUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVFJVTkNBVEUgMQorI2RlZmluZSBVU0VfVFJVTkNBVEUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVFIgMQorI2RlZmluZSBVU0VfVFIoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVFMgMAorI2RlZmluZSBVU0VfVFMoLi4uKQorI2RlZmluZSBDRkdfVFNPUlQgMAorI2RlZmluZSBVU0VfVFNPUlQoLi4uKQorI2RlZmluZSBDRkdfVFRZIDAKKyNkZWZpbmUgVVNFX1RUWSguLi4pCisjZGVmaW5lIENGR19UVU5DVEwgMAorI2RlZmluZSBVU0VfVFVOQ1RMKC4uLikKKyNkZWZpbmUgQ0ZHX1VDTEFNUFNFVCAwCisjZGVmaW5lIFVTRV9VQ0xBTVBTRVQoLi4uKQorI2RlZmluZSBDRkdfVUxJTUlUIDAKKyNkZWZpbmUgVVNFX1VMSU1JVCguLi4pCisjZGVmaW5lIENGR19VTU9VTlQgMQorI2RlZmluZSBVU0VfVU1PVU5UKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1VOQU1FIDEKKyNkZWZpbmUgVVNFX1VOQU1FKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1VOSUNPREUgMAorI2RlZmluZSBVU0VfVU5JQ09ERSguLi4pCisjZGVmaW5lIENGR19VTklRIDEKKyNkZWZpbmUgVVNFX1VOSVEoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVU5JWDJET1MgMQorI2RlZmluZSBVU0VfVU5JWDJET1MoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVU5MSU5LIDAKKyNkZWZpbmUgVVNFX1VOTElOSyguLi4pCisjZGVmaW5lIENGR19VTlNIQVJFIDEKKyNkZWZpbmUgVVNFX1VOU0hBUkUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVVBUSU1FIDAKKyNkZWZpbmUgVVNFX1VQVElNRSguLi4pCisjZGVmaW5lIENGR19VU0VSQUREIDAKKyNkZWZpbmUgVVNFX1VTRVJBREQoLi4uKQorI2RlZmluZSBDRkdfVVNFUkRFTCAwCisjZGVmaW5lIFVTRV9VU0VSREVMKC4uLikKKyNkZWZpbmUgQ0ZHX1VTTEVFUCAwCisjZGVmaW5lIFVTRV9VU0xFRVAoLi4uKQorI2RlZmluZSBDRkdfVVVERUNPREUgMAorI2RlZmluZSBVU0VfVVVERUNPREUoLi4uKQorI2RlZmluZSBDRkdfVVVFTkNPREUgMAorI2RlZmluZSBVU0VfVVVFTkNPREUoLi4uKQorI2RlZmluZSBDRkdfVVVJREdFTiAwCisjZGVmaW5lIFVTRV9VVUlER0VOKC4uLikKKyNkZWZpbmUgQ0ZHX1ZDT05GSUcgMAorI2RlZmluZSBVU0VfVkNPTkZJRyguLi4pCisjZGVmaW5lIENGR19WSSAwCisjZGVmaW5lIFVTRV9WSSguLi4pCisjZGVmaW5lIENGR19WTVNUQVQgMAorI2RlZmluZSBVU0VfVk1TVEFUKC4uLikKKyNkZWZpbmUgQ0ZHX1dBVENIIDAKKyNkZWZpbmUgVVNFX1dBVENIKC4uLikKKyNkZWZpbmUgQ0ZHX1dBVENIRE9HIDAKKyNkZWZpbmUgVVNFX1dBVENIRE9HKC4uLikKKyNkZWZpbmUgQ0ZHX1dDIDEKKyNkZWZpbmUgVVNFX1dDKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1dHRVQgMAorI2RlZmluZSBVU0VfV0dFVCguLi4pCisjZGVmaW5lIENGR19XSElDSCAxCisjZGVmaW5lIFVTRV9XSElDSCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19XSE9BTUkgMQorI2RlZmluZSBVU0VfV0hPQU1JKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1dITyAwCisjZGVmaW5lIFVTRV9XSE8oLi4uKQorI2RlZmluZSBDRkdfVyAwCisjZGVmaW5lIFVTRV9XKC4uLikKKyNkZWZpbmUgQ0ZHX1hBUkdTIDEKKyNkZWZpbmUgVVNFX1hBUkdTKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1hYRCAxCisjZGVmaW5lIFVTRV9YWEQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfWFpDQVQgMAorI2RlZmluZSBVU0VfWFpDQVQoLi4uKQorI2RlZmluZSBDRkdfWUVTIDAKKyNkZWZpbmUgVVNFX1lFUyguLi4pCisjZGVmaW5lIENGR19aQ0FUIDEKKyNkZWZpbmUgVVNFX1pDQVQoLi4uKSBfX1ZBX0FSR1NfXwpkaWZmIC0tZ2l0IGEvYW5kcm9pZC9saW51eC9nZW5lcmF0ZWQvZmxhZ3MuaCBiL2FuZHJvaWQvbGludXgvZ2VuZXJhdGVkL2ZsYWdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2E2YWQyOAotLS0gL2Rldi9udWxsCisrKyBiL2FuZHJvaWQvbGludXgvZ2VuZXJhdGVkL2ZsYWdzLmgKQEAgLTAsMCArMSw3NTQwIEBACisjdW5kZWYgRk9SQ0VEX0ZMQUcKKyNpZmRlZiBGT1JDRV9GTEFHUworI2RlZmluZSBGT1JDRURfRkxBRyAxTEwKKyNlbHNlCisjZGVmaW5lIEZPUkNFRF9GTEFHIDBMTAorI2VuZGlmCisKKy8vIGFjcGkgICBhYmN0VgorI3VuZGVmIE9QVFNUUl9hY3BpCisjZGVmaW5lIE9QVFNUUl9hY3BpICJhYmN0ViIKKyNpZmRlZiBDTEVBTlVQX2FjcGkKKyN1bmRlZiBDTEVBTlVQX2FjcGkKKyN1bmRlZiBGT1JfYWNwaQorI3VuZGVmIEZMQUdfVgorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIGFyY2ggICAgCisjdW5kZWYgT1BUU1RSX2FyY2gKKyNkZWZpbmUgT1BUU1RSX2FyY2ggMAorI2lmZGVmIENMRUFOVVBfYXJjaAorI3VuZGVmIENMRUFOVVBfYXJjaAorI3VuZGVmIEZPUl9hcmNoCisjZW5kaWYKKworLy8gYXJwICAgdmk6bkRzZGFwOkE6SDpbK0FwXVshc2RdCisjdW5kZWYgT1BUU1RSX2FycAorI2RlZmluZSBPUFRTVFJfYXJwICJ2aTpuRHNkYXA6QTpIOlsrQXBdWyFzZF0iCisjaWZkZWYgQ0xFQU5VUF9hcnAKKyN1bmRlZiBDTEVBTlVQX2FycAorI3VuZGVmIEZPUl9hcnAKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3YKKyNlbmRpZgorCisvLyBhcnBpbmcgICA8MT4xczpJOncjPDBjIzwwQVVEYnFmWytBVV1bK0RmXQorI3VuZGVmIE9QVFNUUl9hcnBpbmcKKyNkZWZpbmUgT1BUU1RSX2FycGluZyAiPDE+MXM6STp3IzwwYyM8MEFVRGJxZlsrQVVdWytEZl0iCisjaWZkZWYgQ0xFQU5VUF9hcnBpbmcKKyN1bmRlZiBDTEVBTlVQX2FycGluZworI3VuZGVmIEZPUl9hcnBpbmcKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX0kKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyBhc2NpaSAgICAKKyN1bmRlZiBPUFRTVFJfYXNjaWkKKyNkZWZpbmUgT1BUU1RSX2FzY2lpIDAKKyNpZmRlZiBDTEVBTlVQX2FzY2lpCisjdW5kZWYgQ0xFQU5VUF9hc2NpaQorI3VuZGVmIEZPUl9hc2NpaQorI2VuZGlmCisKKy8vIGJhc2UzMiAgIGRpdyM8MD03NlshZHddCisjdW5kZWYgT1BUU1RSX2Jhc2UzMgorI2RlZmluZSBPUFRTVFJfYmFzZTMyICJkaXcjPDA9NzZbIWR3XSIKKyNpZmRlZiBDTEVBTlVQX2Jhc2UzMgorI3VuZGVmIENMRUFOVVBfYmFzZTMyCisjdW5kZWYgRk9SX2Jhc2UzMgorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIGJhc2U2NCAgIGRpdyM8MD03NlshZHddCisjdW5kZWYgT1BUU1RSX2Jhc2U2NAorI2RlZmluZSBPUFRTVFJfYmFzZTY0ICJkaXcjPDA9NzZbIWR3XSIKKyNpZmRlZiBDTEVBTlVQX2Jhc2U2NAorI3VuZGVmIENMRUFOVVBfYmFzZTY0CisjdW5kZWYgRk9SX2Jhc2U2NAorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIGJhc2VuYW1lIF48MWFzOiBePDFhczoKKyN1bmRlZiBPUFRTVFJfYmFzZW5hbWUKKyNkZWZpbmUgT1BUU1RSX2Jhc2VuYW1lICJePDFhczoiCisjaWZkZWYgQ0xFQU5VUF9iYXNlbmFtZQorI3VuZGVmIENMRUFOVVBfYmFzZW5hbWUKKyN1bmRlZiBGT1JfYmFzZW5hbWUKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBiYyAgIGkoaW50ZXJhY3RpdmUpbChtYXRobGliKXEocXVpZXQpcyhzdGFuZGFyZCl3KHdhcm4pCisjdW5kZWYgT1BUU1RSX2JjCisjZGVmaW5lIE9QVFNUUl9iYyAiaShpbnRlcmFjdGl2ZSlsKG1hdGhsaWIpcShxdWlldClzKHN0YW5kYXJkKXcod2FybikiCisjaWZkZWYgQ0xFQU5VUF9iYworI3VuZGVmIENMRUFOVVBfYmMKKyN1bmRlZiBGT1JfYmMKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2kKKyNlbmRpZgorCisvLyBibGtkaXNjYXJkICAgPDE+MWYoZm9yY2UpbChsZW5ndGgpIzwwbyhvZmZzZXQpIzwwcyhzZWN1cmUpeih6ZXJvb3V0KVshc3pdCisjdW5kZWYgT1BUU1RSX2Jsa2Rpc2NhcmQKKyNkZWZpbmUgT1BUU1RSX2Jsa2Rpc2NhcmQgIjwxPjFmKGZvcmNlKWwobGVuZ3RoKSM8MG8ob2Zmc2V0KSM8MHMoc2VjdXJlKXooemVyb291dClbIXN6XSIKKyNpZmRlZiBDTEVBTlVQX2Jsa2Rpc2NhcmQKKyN1bmRlZiBDTEVBTlVQX2Jsa2Rpc2NhcmQKKyN1bmRlZiBGT1JfYmxrZGlzY2FyZAorI3VuZGVmIEZMQUdfegorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfZgorI2VuZGlmCisKKy8vIGJsa2lkICAgVUxvOnMqWyFMVV0KKyN1bmRlZiBPUFRTVFJfYmxraWQKKyNkZWZpbmUgT1BUU1RSX2Jsa2lkICJVTG86cypbIUxVXSIKKyNpZmRlZiBDTEVBTlVQX2Jsa2lkCisjdW5kZWYgQ0xFQU5VUF9ibGtpZAorI3VuZGVmIEZPUl9ibGtpZAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfVQorI2VuZGlmCisKKy8vIGJsb2NrZGV2ICAgPDE+MShzZXRybykoc2V0cncpKGdldHJvKShnZXRzcykoZ2V0YnN6KShzZXRic3opIzwwKGdldHN6KShnZXRzaXplKShnZXRzaXplNjQpKGdldHJhKShzZXRyYSkjPDAoZmx1c2hidWZzKShyZXJlYWRwdCkKKyN1bmRlZiBPUFRTVFJfYmxvY2tkZXYKKyNkZWZpbmUgT1BUU1RSX2Jsb2NrZGV2ICI8MT4xKHNldHJvKShzZXRydykoZ2V0cm8pKGdldHNzKShnZXRic3opKHNldGJzeikjPDAoZ2V0c3opKGdldHNpemUpKGdldHNpemU2NCkoZ2V0cmEpKHNldHJhKSM8MChmbHVzaGJ1ZnMpKHJlcmVhZHB0KSIKKyNpZmRlZiBDTEVBTlVQX2Jsb2NrZGV2CisjdW5kZWYgQ0xFQU5VUF9ibG9ja2RldgorI3VuZGVmIEZPUl9ibG9ja2RldgorI3VuZGVmIEZMQUdfcmVyZWFkcHQKKyN1bmRlZiBGTEFHX2ZsdXNoYnVmcworI3VuZGVmIEZMQUdfc2V0cmEKKyN1bmRlZiBGTEFHX2dldHJhCisjdW5kZWYgRkxBR19nZXRzaXplNjQKKyN1bmRlZiBGTEFHX2dldHNpemUKKyN1bmRlZiBGTEFHX2dldHN6CisjdW5kZWYgRkxBR19zZXRic3oKKyN1bmRlZiBGTEFHX2dldGJzegorI3VuZGVmIEZMQUdfZ2V0c3MKKyN1bmRlZiBGTEFHX2dldHJvCisjdW5kZWYgRkxBR19zZXRydworI3VuZGVmIEZMQUdfc2V0cm8KKyNlbmRpZgorCisvLyBib290Y2hhcnRkICAgIAorI3VuZGVmIE9QVFNUUl9ib290Y2hhcnRkCisjZGVmaW5lIE9QVFNUUl9ib290Y2hhcnRkIDAKKyNpZmRlZiBDTEVBTlVQX2Jvb3RjaGFydGQKKyN1bmRlZiBDTEVBTlVQX2Jvb3RjaGFydGQKKyN1bmRlZiBGT1JfYm9vdGNoYXJ0ZAorI2VuZGlmCisKKy8vIGJyY3RsICAgPDEKKyN1bmRlZiBPUFRTVFJfYnJjdGwKKyNkZWZpbmUgT1BUU1RSX2JyY3RsICI8MSIKKyNpZmRlZiBDTEVBTlVQX2JyY3RsCisjdW5kZWYgQ0xFQU5VUF9icmN0bAorI3VuZGVmIEZPUl9icmN0bAorI2VuZGlmCisKKy8vIGJ1bnppcDIgICBjZnRrdgorI3VuZGVmIE9QVFNUUl9idW56aXAyCisjZGVmaW5lIE9QVFNUUl9idW56aXAyICJjZnRrdiIKKyNpZmRlZiBDTEVBTlVQX2J1bnppcDIKKyN1bmRlZiBDTEVBTlVQX2J1bnppcDIKKyN1bmRlZiBGT1JfYnVuemlwMgorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfYworI2VuZGlmCisKKy8vIGJ6Y2F0ICAgIAorI3VuZGVmIE9QVFNUUl9iemNhdAorI2RlZmluZSBPUFRTVFJfYnpjYXQgMAorI2lmZGVmIENMRUFOVVBfYnpjYXQKKyN1bmRlZiBDTEVBTlVQX2J6Y2F0CisjdW5kZWYgRk9SX2J6Y2F0CisjZW5kaWYKKworLy8gY2FsICAgPjNoCisjdW5kZWYgT1BUU1RSX2NhbAorI2RlZmluZSBPUFRTVFJfY2FsICI+M2giCisjaWZkZWYgQ0xFQU5VUF9jYWwKKyN1bmRlZiBDTEVBTlVQX2NhbAorI3VuZGVmIEZPUl9jYWwKKyN1bmRlZiBGTEFHX2gKKyNlbmRpZgorCisvLyBjYXQgdXZ0ZSB1dnRlCisjdW5kZWYgT1BUU1RSX2NhdAorI2RlZmluZSBPUFRTVFJfY2F0ICJ1dnRlIgorI2lmZGVmIENMRUFOVVBfY2F0CisjdW5kZWYgQ0xFQU5VUF9jYXQKKyN1bmRlZiBGT1JfY2F0CisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR191CisjZW5kaWYKKworLy8gY2QgICA+MUxQWy1MUF0KKyN1bmRlZiBPUFRTVFJfY2QKKyNkZWZpbmUgT1BUU1RSX2NkICI+MUxQWy1MUF0iCisjaWZkZWYgQ0xFQU5VUF9jZAorI3VuZGVmIENMRUFOVVBfY2QKKyN1bmRlZiBGT1JfY2QKKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX0wKKyNlbmRpZgorCisvLyBjaGF0dHIgICA/cCN2I1IKKyN1bmRlZiBPUFRTVFJfY2hhdHRyCisjZGVmaW5lIE9QVFNUUl9jaGF0dHIgIj9wI3YjUiIKKyNpZmRlZiBDTEVBTlVQX2NoYXR0cgorI3VuZGVmIENMRUFOVVBfY2hhdHRyCisjdW5kZWYgRk9SX2NoYXR0cgorI3VuZGVmIEZMQUdfUgorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIGNoY29uICAgPDJodlIKKyN1bmRlZiBPUFRTVFJfY2hjb24KKyNkZWZpbmUgT1BUU1RSX2NoY29uICI8Mmh2UiIKKyNpZmRlZiBDTEVBTlVQX2NoY29uCisjdW5kZWYgQ0xFQU5VUF9jaGNvbgorI3VuZGVmIEZPUl9jaGNvbgorI3VuZGVmIEZMQUdfUgorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfaAorI2VuZGlmCisKKy8vIGNoZ3JwICAgPDJoKG5vLWRlcmVmZXJlbmNlKVBMSFJmdlstSExQXQorI3VuZGVmIE9QVFNUUl9jaGdycAorI2RlZmluZSBPUFRTVFJfY2hncnAgIjwyaChuby1kZXJlZmVyZW5jZSlQTEhSZnZbLUhMUF0iCisjaWZkZWYgQ0xFQU5VUF9jaGdycAorI3VuZGVmIENMRUFOVVBfY2hncnAKKyN1bmRlZiBGT1JfY2hncnAKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX2gKKyNlbmRpZgorCisvLyBjaG1vZCA8Mj92ZlJbLXZmXSA8Mj92ZlJbLXZmXQorI3VuZGVmIE9QVFNUUl9jaG1vZAorI2RlZmluZSBPUFRTVFJfY2htb2QgIjwyP3ZmUlstdmZdIgorI2lmZGVmIENMRUFOVVBfY2htb2QKKyN1bmRlZiBDTEVBTlVQX2NobW9kCisjdW5kZWYgRk9SX2NobW9kCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR192CisjZW5kaWYKKworLy8gY2hyb290ICAgXjwxCisjdW5kZWYgT1BUU1RSX2Nocm9vdAorI2RlZmluZSBPUFRTVFJfY2hyb290ICJePDEiCisjaWZkZWYgQ0xFQU5VUF9jaHJvb3QKKyN1bmRlZiBDTEVBTlVQX2Nocm9vdAorI3VuZGVmIEZPUl9jaHJvb3QKKyNlbmRpZgorCisvLyBjaHJ0ICAgXm1wIzwwaVJicmZvWyFpYnJmb10KKyN1bmRlZiBPUFRTVFJfY2hydAorI2RlZmluZSBPUFRTVFJfY2hydCAiXm1wIzwwaVJicmZvWyFpYnJmb10iCisjaWZkZWYgQ0xFQU5VUF9jaHJ0CisjdW5kZWYgQ0xFQU5VUF9jaHJ0CisjdW5kZWYgRk9SX2NocnQKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX20KKyNlbmRpZgorCisvLyBjaHNoICAgPjFSOnM6YQorI3VuZGVmIE9QVFNUUl9jaHNoCisjZGVmaW5lIE9QVFNUUl9jaHNoICI+MVI6czphIgorI2lmZGVmIENMRUFOVVBfY2hzaAorI3VuZGVmIENMRUFOVVBfY2hzaAorI3VuZGVmIEZPUl9jaHNoCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19SCisjZW5kaWYKKworLy8gY2h2dCAgIDwxPjEKKyN1bmRlZiBPUFRTVFJfY2h2dAorI2RlZmluZSBPUFRTVFJfY2h2dCAiPDE+MSIKKyNpZmRlZiBDTEVBTlVQX2NodnQKKyN1bmRlZiBDTEVBTlVQX2NodnQKKyN1bmRlZiBGT1JfY2h2dAorI2VuZGlmCisKKy8vIGNrc3VtICAgSElQTE4KKyN1bmRlZiBPUFRTVFJfY2tzdW0KKyNkZWZpbmUgT1BUU1RSX2Nrc3VtICJISVBMTiIKKyNpZmRlZiBDTEVBTlVQX2Nrc3VtCisjdW5kZWYgQ0xFQU5VUF9ja3N1bQorI3VuZGVmIEZPUl9ja3N1bQorI3VuZGVmIEZMQUdfTgorI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfSQorI3VuZGVmIEZMQUdfSAorI2VuZGlmCisKKy8vIGNsZWFyICAgIAorI3VuZGVmIE9QVFNUUl9jbGVhcgorI2RlZmluZSBPUFRTVFJfY2xlYXIgMAorI2lmZGVmIENMRUFOVVBfY2xlYXIKKyN1bmRlZiBDTEVBTlVQX2NsZWFyCisjdW5kZWYgRk9SX2NsZWFyCisjZW5kaWYKKworLy8gY21wIDwxPjRscyhzaWxlbnQpKHF1aWV0KW4jPDFbIWxzXSA8MT40bHMoc2lsZW50KShxdWlldCluIzwxWyFsc10KKyN1bmRlZiBPUFRTVFJfY21wCisjZGVmaW5lIE9QVFNUUl9jbXAgIjwxPjRscyhzaWxlbnQpKHF1aWV0KW4jPDFbIWxzXSIKKyNpZmRlZiBDTEVBTlVQX2NtcAorI3VuZGVmIENMRUFOVVBfY21wCisjdW5kZWYgRk9SX2NtcAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbAorI2VuZGlmCisKKy8vIGNvbW0gPDI+MjMyMSA8Mj4yMzIxCisjdW5kZWYgT1BUU1RSX2NvbW0KKyNkZWZpbmUgT1BUU1RSX2NvbW0gIjwyPjIzMjEiCisjaWZkZWYgQ0xFQU5VUF9jb21tCisjdW5kZWYgQ0xFQU5VUF9jb21tCisjdW5kZWYgRk9SX2NvbW0KKyN1bmRlZiBGTEFHXzEKKyN1bmRlZiBGTEFHXzIKKyN1bmRlZiBGTEFHXzMKKyNlbmRpZgorCisvLyBjb3VudCAgIDwwPjBsCisjdW5kZWYgT1BUU1RSX2NvdW50CisjZGVmaW5lIE9QVFNUUl9jb3VudCAiPDA+MGwiCisjaWZkZWYgQ0xFQU5VUF9jb3VudAorI3VuZGVmIENMRUFOVVBfY291bnQKKyN1bmRlZiBGT1JfY291bnQKKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBjcCA8MShwcmVzZXJ2ZSk6O0QocGFyZW50cylSSExQcHJ1ZGFzbHYodmVyYm9zZSluRihyZW1vdmUtZGVzdGluYXRpb24pZml0OlRbLUhMUGRdWy1uaXVdWytScl0gPDEocHJlc2VydmUpOjtEKHBhcmVudHMpUkhMUHBydWRhc2x2KHZlcmJvc2UpbkYocmVtb3ZlLWRlc3RpbmF0aW9uKWZpdDpUWy1ITFBkXVstbml1XVsrUnJdCisjdW5kZWYgT1BUU1RSX2NwCisjZGVmaW5lIE9QVFNUUl9jcCAiPDEocHJlc2VydmUpOjtEKHBhcmVudHMpUkhMUHBydWRhc2x2KHZlcmJvc2UpbkYocmVtb3ZlLWRlc3RpbmF0aW9uKWZpdDpUWy1ITFBkXVstbml1XVsrUnJdIgorI2lmZGVmIENMRUFOVVBfY3AKKyN1bmRlZiBDTEVBTlVQX2NwCisjdW5kZWYgRk9SX2NwCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19wcmVzZXJ2ZQorI2VuZGlmCisKKy8vIGNwaW8gKGlnbm9yZS1kZXZubykocmVudW1iZXItaW5vZGVzKShxdWlldCkobm8tcHJlc2VydmUtb3duZXIpUihvd25lcik6bWQobWFrZS1kaXJlY3Rvcmllcyl1TEg6cHxpfHR8Rjp2KHZlcmJvc2Upb3xbIXBpb11bIXBvdF1bIXBGXSAoaWdub3JlLWRldm5vKShyZW51bWJlci1pbm9kZXMpKHF1aWV0KShuby1wcmVzZXJ2ZS1vd25lcilSKG93bmVyKTptZChtYWtlLWRpcmVjdG9yaWVzKXVMSDpwfGl8dHxGOnYodmVyYm9zZSlvfFshcGlvXVshcG90XVshcEZdCisjdW5kZWYgT1BUU1RSX2NwaW8KKyNkZWZpbmUgT1BUU1RSX2NwaW8gIihpZ25vcmUtZGV2bm8pKHJlbnVtYmVyLWlub2RlcykocXVpZXQpKG5vLXByZXNlcnZlLW93bmVyKVIob3duZXIpOm1kKG1ha2UtZGlyZWN0b3JpZXMpdUxIOnB8aXx0fEY6dih2ZXJib3NlKW98WyFwaW9dWyFwb3RdWyFwRl0iCisjaWZkZWYgQ0xFQU5VUF9jcGlvCisjdW5kZWYgQ0xFQU5VUF9jcGlvCisjdW5kZWYgRk9SX2NwaW8KKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX25vX3ByZXNlcnZlX293bmVyCisjdW5kZWYgRkxBR19xdWlldAorI3VuZGVmIEZMQUdfcmVudW1iZXJfaW5vZGVzCisjdW5kZWYgRkxBR19pZ25vcmVfZGV2bm8KKyNlbmRpZgorCisvLyBjcmMzMiAgICAKKyN1bmRlZiBPUFRTVFJfY3JjMzIKKyNkZWZpbmUgT1BUU1RSX2NyYzMyIDAKKyNpZmRlZiBDTEVBTlVQX2NyYzMyCisjdW5kZWYgQ0xFQU5VUF9jcmMzMgorI3VuZGVmIEZPUl9jcmMzMgorI2VuZGlmCisKKy8vIGNyb25kICAgZmJTbCM8MD04ZCM8MEw6YzpbLWJmXVstTFNdWy1sZF0KKyN1bmRlZiBPUFRTVFJfY3JvbmQKKyNkZWZpbmUgT1BUU1RSX2Nyb25kICJmYlNsIzwwPThkIzwwTDpjOlstYmZdWy1MU11bLWxkXSIKKyNpZmRlZiBDTEVBTlVQX2Nyb25kCisjdW5kZWYgQ0xFQU5VUF9jcm9uZAorI3VuZGVmIEZPUl9jcm9uZAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfZgorI2VuZGlmCisKKy8vIGNyb250YWIgICBjOnU6ZWxyWyFlbHJdCisjdW5kZWYgT1BUU1RSX2Nyb250YWIKKyNkZWZpbmUgT1BUU1RSX2Nyb250YWIgImM6dTplbHJbIWVscl0iCisjaWZkZWYgQ0xFQU5VUF9jcm9udGFiCisjdW5kZWYgQ0xFQU5VUF9jcm9udGFiCisjdW5kZWYgRk9SX2Nyb250YWIKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBjc3BsaXQgICA8MnNrZjpuIworI3VuZGVmIE9QVFNUUl9jc3BsaXQKKyNkZWZpbmUgT1BUU1RSX2NzcGxpdCAiPDJza2Y6biMiCisjaWZkZWYgQ0xFQU5VUF9jc3BsaXQKKyN1bmRlZiBDTEVBTlVQX2NzcGxpdAorI3VuZGVmIEZPUl9jc3BsaXQKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyBjdXQgYip8Yyp8Zip8RihyZWdleC1maWVsZHMpKnxDKnxPKG91dHB1dC1kZWxpbWl0ZXIpOmQ6c0QoYWxsb3ctZHVwbGljYXRlcyluWyFjYmZGXSBiKnxjKnxmKnxGKHJlZ2V4LWZpZWxkcykqfEMqfE8ob3V0cHV0LWRlbGltaXRlcik6ZDpzRChhbGxvdy1kdXBsaWNhdGVzKW5bIWNiZkZdCisjdW5kZWYgT1BUU1RSX2N1dAorI2RlZmluZSBPUFRTVFJfY3V0ICJiKnxjKnxmKnxGKHJlZ2V4LWZpZWxkcykqfEMqfE8ob3V0cHV0LWRlbGltaXRlcik6ZDpzRChhbGxvdy1kdXBsaWNhdGVzKW5bIWNiZkZdIgorI2lmZGVmIENMRUFOVVBfY3V0CisjdW5kZWYgQ0xFQU5VUF9jdXQKKyN1bmRlZiBGT1JfY3V0CisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19iCisjZW5kaWYKKworLy8gZGF0ZSA+MWQ6RDpJKGlzby04NjAxKTo7cjpzOnUodXRjKVshZHJdID4xZDpEOkkoaXNvLTg2MDEpOjtyOnM6dSh1dGMpWyFkcl0KKyN1bmRlZiBPUFRTVFJfZGF0ZQorI2RlZmluZSBPUFRTVFJfZGF0ZSAiPjFkOkQ6SShpc28tODYwMSk6O3I6czp1KHV0YylbIWRyXSIKKyNpZmRlZiBDTEVBTlVQX2RhdGUKKyN1bmRlZiBDTEVBTlVQX2RhdGUKKyN1bmRlZiBGT1JfZGF0ZQorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfSQorI3VuZGVmIEZMQUdfRAorI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIGRkICAgIAorI3VuZGVmIE9QVFNUUl9kZAorI2RlZmluZSBPUFRTVFJfZGQgMAorI2lmZGVmIENMRUFOVVBfZGQKKyN1bmRlZiBDTEVBTlVQX2RkCisjdW5kZWYgRk9SX2RkCisjZW5kaWYKKworLy8gZGVhbGxvY3Z0ICAgPjEKKyN1bmRlZiBPUFRTVFJfZGVhbGxvY3Z0CisjZGVmaW5lIE9QVFNUUl9kZWFsbG9jdnQgIj4xIgorI2lmZGVmIENMRUFOVVBfZGVhbGxvY3Z0CisjdW5kZWYgQ0xFQU5VUF9kZWFsbG9jdnQKKyN1bmRlZiBGT1JfZGVhbGxvY3Z0CisjZW5kaWYKKworLy8gZGVjbGFyZSAgIHBBYWlsdW54cgorI3VuZGVmIE9QVFNUUl9kZWNsYXJlCisjZGVmaW5lIE9QVFNUUl9kZWNsYXJlICJwQWFpbHVueHIiCisjaWZkZWYgQ0xFQU5VUF9kZWNsYXJlCisjdW5kZWYgQ0xFQU5VUF9kZWNsYXJlCisjdW5kZWYgRk9SX2RlY2xhcmUKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyBkZW1vX21hbnlfb3B0aW9ucyAgIFpZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBenl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmEKKyN1bmRlZiBPUFRTVFJfZGVtb19tYW55X29wdGlvbnMKKyNkZWZpbmUgT1BUU1RSX2RlbW9fbWFueV9vcHRpb25zICJaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQXp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhIgorI2lmZGVmIENMRUFOVVBfZGVtb19tYW55X29wdGlvbnMKKyN1bmRlZiBDTEVBTlVQX2RlbW9fbWFueV9vcHRpb25zCisjdW5kZWYgRk9SX2RlbW9fbWFueV9vcHRpb25zCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19qCisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR195CisjdW5kZWYgRkxBR196CisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR19CCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19FCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19HCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19JCisjdW5kZWYgRkxBR19KCisjdW5kZWYgRkxBR19LCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19NCisjdW5kZWYgRkxBR19OCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19RCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR19WCisjdW5kZWYgRkxBR19XCisjdW5kZWYgRkxBR19YCisjdW5kZWYgRkxBR19ZCisjdW5kZWYgRkxBR19aCisjZW5kaWYKKworLy8gZGVtb19udW1iZXIgICBEIz0zPDNNIzwwaGNkYnMKKyN1bmRlZiBPUFRTVFJfZGVtb19udW1iZXIKKyNkZWZpbmUgT1BUU1RSX2RlbW9fbnVtYmVyICJEIz0zPDNNIzwwaGNkYnMiCisjaWZkZWYgQ0xFQU5VUF9kZW1vX251bWJlcgorI3VuZGVmIENMRUFOVVBfZGVtb19udW1iZXIKKyN1bmRlZiBGT1JfZGVtb19udW1iZXIKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX00KKyN1bmRlZiBGTEFHX0QKKyNlbmRpZgorCisvLyBkZW1vX3NjYW5rZXkgICAgCisjdW5kZWYgT1BUU1RSX2RlbW9fc2NhbmtleQorI2RlZmluZSBPUFRTVFJfZGVtb19zY2Fua2V5IDAKKyNpZmRlZiBDTEVBTlVQX2RlbW9fc2NhbmtleQorI3VuZGVmIENMRUFOVVBfZGVtb19zY2Fua2V5CisjdW5kZWYgRk9SX2RlbW9fc2NhbmtleQorI2VuZGlmCisKKy8vIGRlbW9fdXRmOHRvd2MgICAgCisjdW5kZWYgT1BUU1RSX2RlbW9fdXRmOHRvd2MKKyNkZWZpbmUgT1BUU1RSX2RlbW9fdXRmOHRvd2MgMAorI2lmZGVmIENMRUFOVVBfZGVtb191dGY4dG93YworI3VuZGVmIENMRUFOVVBfZGVtb191dGY4dG93YworI3VuZGVmIEZPUl9kZW1vX3V0Zjh0b3djCisjZW5kaWYKKworLy8gZGV2bWVtICAgPDE+MworI3VuZGVmIE9QVFNUUl9kZXZtZW0KKyNkZWZpbmUgT1BUU1RSX2Rldm1lbSAiPDE+MyIKKyNpZmRlZiBDTEVBTlVQX2Rldm1lbQorI3VuZGVmIENMRUFOVVBfZGV2bWVtCisjdW5kZWYgRk9SX2Rldm1lbQorI2VuZGlmCisKKy8vIGRmICAgSFBraGl0KmFbLUhQaF0KKyN1bmRlZiBPUFRTVFJfZGYKKyNkZWZpbmUgT1BUU1RSX2RmICJIUGtoaXQqYVstSFBoXSIKKyNpZmRlZiBDTEVBTlVQX2RmCisjdW5kZWYgQ0xFQU5VUF9kZgorI3VuZGVmIEZPUl9kZgorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfSAorI2VuZGlmCisKKy8vIGRoY3AgICBWOkg6Rjp4KnI6TypBIzwwPTIwVCM8MD0zdCM8MD0zczpwOmk6U0JSQ2FvdnFuYmYKKyN1bmRlZiBPUFRTVFJfZGhjcAorI2RlZmluZSBPUFRTVFJfZGhjcCAiVjpIOkY6eCpyOk8qQSM8MD0yMFQjPDA9M3QjPDA9M3M6cDppOlNCUkNhb3ZxbmJmIgorI2lmZGVmIENMRUFOVVBfZGhjcAorI3VuZGVmIENMRUFOVVBfZGhjcAorI3VuZGVmIEZPUl9kaGNwCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19CCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19WCisjZW5kaWYKKworLy8gZGhjcDYgICByOkEjPDBUIzwwdCM8MHM6cDppOlNSdnFuYmYKKyN1bmRlZiBPUFRTVFJfZGhjcDYKKyNkZWZpbmUgT1BUU1RSX2RoY3A2ICJyOkEjPDBUIzwwdCM8MHM6cDppOlNSdnFuYmYiCisjaWZkZWYgQ0xFQU5VUF9kaGNwNgorI3VuZGVmIENMRUFOVVBfZGhjcDYKKyN1bmRlZiBGT1JfZGhjcDYKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX3IKKyNlbmRpZgorCisvLyBkaGNwZCAgID4xUCM8MD42NTUzNWZpOlM0NlshNDZdCisjdW5kZWYgT1BUU1RSX2RoY3BkCisjZGVmaW5lIE9QVFNUUl9kaGNwZCAiPjFQIzwwPjY1NTM1Zmk6UzQ2WyE0Nl0iCisjaWZkZWYgQ0xFQU5VUF9kaGNwZAorI3VuZGVmIENMRUFOVVBfZGhjcGQKKyN1bmRlZiBGT1JfZGhjcGQKKyN1bmRlZiBGTEFHXzYKKyN1bmRlZiBGTEFHXzQKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX1AKKyNlbmRpZgorCisvLyBkaWZmIDwyPjIodW5jaGFuZ2VkLWxpbmUtZm9ybWF0KTo7KG9sZC1saW5lLWZvcm1hdCk6OyhuZXctbGluZS1mb3JtYXQpOjsoY29sb3IpKHN0cmlwLXRyYWlsaW5nLWNyKUIoaWdub3JlLWJsYW5rLWxpbmVzKWQobWluaW1hbCliKGlnbm9yZS1zcGFjZS1jaGFuZ2UpdXQoZXhwYW5kLXRhYnMpdyhpZ25vcmUtYWxsLXNwYWNlKWkoaWdub3JlLWNhc2UpVChpbml0aWFsLXRhYilzKHJlcG9ydC1pZGVudGljYWwtZmlsZXMpcShicmllZilhKHRleHQpUyhzdGFydGluZy1maWxlKTpGKHNob3ctZnVuY3Rpb24tbGluZSk6O0wobGFiZWwpKk4obmV3LWZpbGUpcihyZWN1cnNpdmUpVSh1bmlmaWVkKSM8MD0zIDwyPjIodW5jaGFuZ2VkLWxpbmUtZm9ybWF0KTo7KG9sZC1saW5lLWZvcm1hdCk6OyhuZXctbGluZS1mb3JtYXQpOjsoY29sb3IpKHN0cmlwLXRyYWlsaW5nLWNyKUIoaWdub3JlLWJsYW5rLWxpbmVzKWQobWluaW1hbCliKGlnbm9yZS1zcGFjZS1jaGFuZ2UpdXQoZXhwYW5kLXRhYnMpdyhpZ25vcmUtYWxsLXNwYWNlKWkoaWdub3JlLWNhc2UpVChpbml0aWFsLXRhYilzKHJlcG9ydC1pZGVudGljYWwtZmlsZXMpcShicmllZilhKHRleHQpUyhzdGFydGluZy1maWxlKTpGKHNob3ctZnVuY3Rpb24tbGluZSk6O0wobGFiZWwpKk4obmV3LWZpbGUpcihyZWN1cnNpdmUpVSh1bmlmaWVkKSM8MD0zCisjdW5kZWYgT1BUU1RSX2RpZmYKKyNkZWZpbmUgT1BUU1RSX2RpZmYgIjwyPjIodW5jaGFuZ2VkLWxpbmUtZm9ybWF0KTo7KG9sZC1saW5lLWZvcm1hdCk6OyhuZXctbGluZS1mb3JtYXQpOjsoY29sb3IpKHN0cmlwLXRyYWlsaW5nLWNyKUIoaWdub3JlLWJsYW5rLWxpbmVzKWQobWluaW1hbCliKGlnbm9yZS1zcGFjZS1jaGFuZ2UpdXQoZXhwYW5kLXRhYnMpdyhpZ25vcmUtYWxsLXNwYWNlKWkoaWdub3JlLWNhc2UpVChpbml0aWFsLXRhYilzKHJlcG9ydC1pZGVudGljYWwtZmlsZXMpcShicmllZilhKHRleHQpUyhzdGFydGluZy1maWxlKTpGKHNob3ctZnVuY3Rpb24tbGluZSk6O0wobGFiZWwpKk4obmV3LWZpbGUpcihyZWN1cnNpdmUpVSh1bmlmaWVkKSM8MD0zIgorI2lmZGVmIENMRUFOVVBfZGlmZgorI3VuZGVmIENMRUFOVVBfZGlmZgorI3VuZGVmIEZPUl9kaWZmCisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19OCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19CCisjdW5kZWYgRkxBR19zdHJpcF90cmFpbGluZ19jcgorI3VuZGVmIEZMQUdfY29sb3IKKyN1bmRlZiBGTEFHX25ld19saW5lX2Zvcm1hdAorI3VuZGVmIEZMQUdfb2xkX2xpbmVfZm9ybWF0CisjdW5kZWYgRkxBR191bmNoYW5nZWRfbGluZV9mb3JtYXQKKyNlbmRpZgorCisvLyBkaXJuYW1lIDwxIDwxCisjdW5kZWYgT1BUU1RSX2Rpcm5hbWUKKyNkZWZpbmUgT1BUU1RSX2Rpcm5hbWUgIjwxIgorI2lmZGVmIENMRUFOVVBfZGlybmFtZQorI3VuZGVmIENMRUFOVVBfZGlybmFtZQorI3VuZGVmIEZPUl9kaXJuYW1lCisjZW5kaWYKKworLy8gZG1lc2cgICB3KGZvbGxvdylDU1R0cnMjPDFuI2NbIVR0cl1bIUNjXVshU3ddCisjdW5kZWYgT1BUU1RSX2RtZXNnCisjZGVmaW5lIE9QVFNUUl9kbWVzZyAidyhmb2xsb3cpQ1NUdHJzIzwxbiNjWyFUdHJdWyFDY11bIVN3XSIKKyNpZmRlZiBDTEVBTlVQX2RtZXNnCisjdW5kZWYgQ0xFQU5VUF9kbWVzZworI3VuZGVmIEZPUl9kbWVzZworI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfVAorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfQworI3VuZGVmIEZMQUdfdworI2VuZGlmCisKKy8vIGRuc2RvbWFpbm5hbWUgICA+MAorI3VuZGVmIE9QVFNUUl9kbnNkb21haW5uYW1lCisjZGVmaW5lIE9QVFNUUl9kbnNkb21haW5uYW1lICI+MCIKKyNpZmRlZiBDTEVBTlVQX2Ruc2RvbWFpbm5hbWUKKyN1bmRlZiBDTEVBTlVQX2Ruc2RvbWFpbm5hbWUKKyN1bmRlZiBGT1JfZG5zZG9tYWlubmFtZQorI2VuZGlmCisKKy8vIGRvczJ1bml4ICAgIAorI3VuZGVmIE9QVFNUUl9kb3MydW5peAorI2RlZmluZSBPUFRTVFJfZG9zMnVuaXggMAorI2lmZGVmIENMRUFOVVBfZG9zMnVuaXgKKyN1bmRlZiBDTEVBTlVQX2RvczJ1bml4CisjdW5kZWYgRk9SX2RvczJ1bml4CisjZW5kaWYKKworLy8gZHUgZCM8MD0tMWhtbGNhSGtLTHN4YlstSExdWy1rS21oXSBkIzwwPS0xaG1sY2FIa0tMc3hiWy1ITF1bLWtLbWhdCisjdW5kZWYgT1BUU1RSX2R1CisjZGVmaW5lIE9QVFNUUl9kdSAiZCM8MD0tMWhtbGNhSGtLTHN4YlstSExdWy1rS21oXSIKKyNpZmRlZiBDTEVBTlVQX2R1CisjdW5kZWYgQ0xFQU5VUF9kdQorI3VuZGVmIEZPUl9kdQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfSworI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfSAorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIGR1bXBsZWFzZXMgICA+MGFyZjpbIWFyXQorI3VuZGVmIE9QVFNUUl9kdW1wbGVhc2VzCisjZGVmaW5lIE9QVFNUUl9kdW1wbGVhc2VzICI+MGFyZjpbIWFyXSIKKyNpZmRlZiBDTEVBTlVQX2R1bXBsZWFzZXMKKyN1bmRlZiBDTEVBTlVQX2R1bXBsZWFzZXMKKyN1bmRlZiBGT1JfZHVtcGxlYXNlcworI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIGVjaG8gXj9FZW5bLWVFXSBeP0VlblstZUVdCisjdW5kZWYgT1BUU1RSX2VjaG8KKyNkZWZpbmUgT1BUU1RSX2VjaG8gIl4/RWVuWy1lRV0iCisjaWZkZWYgQ0xFQU5VUF9lY2hvCisjdW5kZWYgQ0xFQU5VUF9lY2hvCisjdW5kZWYgRk9SX2VjaG8KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX0UKKyNlbmRpZgorCisvLyBlamVjdCAgID4xc3RUWyF0VF0KKyN1bmRlZiBPUFRTVFJfZWplY3QKKyNkZWZpbmUgT1BUU1RSX2VqZWN0ICI+MXN0VFshdFRdIgorI2lmZGVmIENMRUFOVVBfZWplY3QKKyN1bmRlZiBDTEVBTlVQX2VqZWN0CisjdW5kZWYgRk9SX2VqZWN0CisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19zCisjZW5kaWYKKworLy8gZW52IF5lOmkwdSogXmU6aTB1KgorI3VuZGVmIE9QVFNUUl9lbnYKKyNkZWZpbmUgT1BUU1RSX2VudiAiXmU6aTB1KiIKKyNpZmRlZiBDTEVBTlVQX2VudgorI3VuZGVmIENMRUFOVVBfZW52CisjdW5kZWYgRk9SX2VudgorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfMAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZQorI2VuZGlmCisKKy8vIGV2YWwgICAgCisjdW5kZWYgT1BUU1RSX2V2YWwKKyNkZWZpbmUgT1BUU1RSX2V2YWwgMAorI2lmZGVmIENMRUFOVVBfZXZhbAorI3VuZGVmIENMRUFOVVBfZXZhbAorI3VuZGVmIEZPUl9ldmFsCisjZW5kaWYKKworLy8gZXhlYyAgIF5jbGE6CisjdW5kZWYgT1BUU1RSX2V4ZWMKKyNkZWZpbmUgT1BUU1RSX2V4ZWMgIl5jbGE6IgorI2lmZGVmIENMRUFOVVBfZXhlYworI3VuZGVmIENMRUFOVVBfZXhlYworI3VuZGVmIEZPUl9leGVjCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gZXhpdCAgICAKKyN1bmRlZiBPUFRTVFJfZXhpdAorI2RlZmluZSBPUFRTVFJfZXhpdCAwCisjaWZkZWYgQ0xFQU5VUF9leGl0CisjdW5kZWYgQ0xFQU5VUF9leGl0CisjdW5kZWYgRk9SX2V4aXQKKyNlbmRpZgorCisvLyBleHBhbmQgICB0KgorI3VuZGVmIE9QVFNUUl9leHBhbmQKKyNkZWZpbmUgT1BUU1RSX2V4cGFuZCAidCoiCisjaWZkZWYgQ0xFQU5VUF9leHBhbmQKKyN1bmRlZiBDTEVBTlVQX2V4cGFuZAorI3VuZGVmIEZPUl9leHBhbmQKKyN1bmRlZiBGTEFHX3QKKyNlbmRpZgorCisvLyBleHBvcnQgICBucAorI3VuZGVmIE9QVFNUUl9leHBvcnQKKyNkZWZpbmUgT1BUU1RSX2V4cG9ydCAibnAiCisjaWZkZWYgQ0xFQU5VUF9leHBvcnQKKyN1bmRlZiBDTEVBTlVQX2V4cG9ydAorI3VuZGVmIEZPUl9leHBvcnQKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX24KKyNlbmRpZgorCisvLyBleHByICAgIAorI3VuZGVmIE9QVFNUUl9leHByCisjZGVmaW5lIE9QVFNUUl9leHByIDAKKyNpZmRlZiBDTEVBTlVQX2V4cHIKKyN1bmRlZiBDTEVBTlVQX2V4cHIKKyN1bmRlZiBGT1JfZXhwcgorI2VuZGlmCisKKy8vIGZhY3RvciAgID9oeAorI3VuZGVmIE9QVFNUUl9mYWN0b3IKKyNkZWZpbmUgT1BUU1RSX2ZhY3RvciAiP2h4IgorI2lmZGVmIENMRUFOVVBfZmFjdG9yCisjdW5kZWYgQ0xFQU5VUF9mYWN0b3IKKyN1bmRlZiBGT1JfZmFjdG9yCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19oCisjZW5kaWYKKworLy8gZmFsbG9jYXRlICAgPjFsI3xvIworI3VuZGVmIE9QVFNUUl9mYWxsb2NhdGUKKyNkZWZpbmUgT1BUU1RSX2ZhbGxvY2F0ZSAiPjFsI3xvIyIKKyNpZmRlZiBDTEVBTlVQX2ZhbGxvY2F0ZQorI3VuZGVmIENMRUFOVVBfZmFsbG9jYXRlCisjdW5kZWYgRk9SX2ZhbGxvY2F0ZQorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfbAorI2VuZGlmCisKKy8vIGZhbHNlICAgIAorI3VuZGVmIE9QVFNUUl9mYWxzZQorI2RlZmluZSBPUFRTVFJfZmFsc2UgMAorI2lmZGVmIENMRUFOVVBfZmFsc2UKKyN1bmRlZiBDTEVBTlVQX2ZhbHNlCisjdW5kZWYgRk9SX2ZhbHNlCisjZW5kaWYKKworLy8gZmRpc2sgICBDIzwwSCM8MFMjPDBiIzw1MTJ1bAorI3VuZGVmIE9QVFNUUl9mZGlzaworI2RlZmluZSBPUFRTVFJfZmRpc2sgIkMjPDBIIzwwUyM8MGIjPDUxMnVsIgorI2lmZGVmIENMRUFOVVBfZmRpc2sKKyN1bmRlZiBDTEVBTlVQX2ZkaXNrCisjdW5kZWYgRk9SX2ZkaXNrCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19DCisjZW5kaWYKKworLy8gZmlsZSA8MWIoYnJpZWYpaExzWyFoTF0gPDFiKGJyaWVmKWhMc1shaExdCisjdW5kZWYgT1BUU1RSX2ZpbGUKKyNkZWZpbmUgT1BUU1RSX2ZpbGUgIjwxYihicmllZiloTHNbIWhMXSIKKyNpZmRlZiBDTEVBTlVQX2ZpbGUKKyN1bmRlZiBDTEVBTlVQX2ZpbGUKKyN1bmRlZiBGT1JfZmlsZQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIGZpbmQgP15ITFstSExdID9eSExbLUhMXQorI3VuZGVmIE9QVFNUUl9maW5kCisjZGVmaW5lIE9QVFNUUl9maW5kICI/XkhMWy1ITF0iCisjaWZkZWYgQ0xFQU5VUF9maW5kCisjdW5kZWYgQ0xFQU5VUF9maW5kCisjdW5kZWYgRk9SX2ZpbmQKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX0gKKyNlbmRpZgorCisvLyBmbG9jayA8MT4xbnN1eFstc3V4XSA8MT4xbnN1eFstc3V4XQorI3VuZGVmIE9QVFNUUl9mbG9jaworI2RlZmluZSBPUFRTVFJfZmxvY2sgIjwxPjFuc3V4Wy1zdXhdIgorI2lmZGVmIENMRUFOVVBfZmxvY2sKKyN1bmRlZiBDTEVBTlVQX2Zsb2NrCisjdW5kZWYgRk9SX2Zsb2NrCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19uCisjZW5kaWYKKworLy8gZm10ICAgdyM8MD03NQorI3VuZGVmIE9QVFNUUl9mbXQKKyNkZWZpbmUgT1BUU1RSX2ZtdCAidyM8MD03NSIKKyNpZmRlZiBDTEVBTlVQX2ZtdAorI3VuZGVmIENMRUFOVVBfZm10CisjdW5kZWYgRk9SX2ZtdAorI3VuZGVmIEZMQUdfdworI2VuZGlmCisKKy8vIGZvbGQgICBic3cjPDE9ODAKKyN1bmRlZiBPUFRTVFJfZm9sZAorI2RlZmluZSBPUFRTVFJfZm9sZCAiYnN3IzwxPTgwIgorI2lmZGVmIENMRUFOVVBfZm9sZAorI3VuZGVmIENMRUFOVVBfZm9sZAorI3VuZGVmIEZPUl9mb2xkCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19iCisjZW5kaWYKKworLy8gZnJlZSAgIGhnbWtiWyFoZ21rYl0KKyN1bmRlZiBPUFRTVFJfZnJlZQorI2RlZmluZSBPUFRTVFJfZnJlZSAiaGdta2JbIWhnbWtiXSIKKyNpZmRlZiBDTEVBTlVQX2ZyZWUKKyN1bmRlZiBDTEVBTlVQX2ZyZWUKKyN1bmRlZiBGT1JfZnJlZQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfaAorI2VuZGlmCisKKy8vIGZyZWVyYW1kaXNrICAgPDE+MQorI3VuZGVmIE9QVFNUUl9mcmVlcmFtZGlzaworI2RlZmluZSBPUFRTVFJfZnJlZXJhbWRpc2sgIjwxPjEiCisjaWZkZWYgQ0xFQU5VUF9mcmVlcmFtZGlzaworI3VuZGVmIENMRUFOVVBfZnJlZXJhbWRpc2sKKyN1bmRlZiBGT1JfZnJlZXJhbWRpc2sKKyNlbmRpZgorCisvLyBmc2NrICAgP3Q6QU5QUlRWc0MjCisjdW5kZWYgT1BUU1RSX2ZzY2sKKyNkZWZpbmUgT1BUU1RSX2ZzY2sgIj90OkFOUFJUVnNDIyIKKyNpZmRlZiBDTEVBTlVQX2ZzY2sKKyN1bmRlZiBDTEVBTlVQX2ZzY2sKKyN1bmRlZiBGT1JfZnNjaworI3VuZGVmIEZMQUdfQworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfVgorI3VuZGVmIEZMQUdfVAorI3VuZGVmIEZMQUdfUgorI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfTgorI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfdAorI2VuZGlmCisKKy8vIGZzZnJlZXplICAgPDE+MWZ8dXxbIWZ1XQorI3VuZGVmIE9QVFNUUl9mc2ZyZWV6ZQorI2RlZmluZSBPUFRTVFJfZnNmcmVlemUgIjwxPjFmfHV8WyFmdV0iCisjaWZkZWYgQ0xFQU5VUF9mc2ZyZWV6ZQorI3VuZGVmIENMRUFOVVBfZnNmcmVlemUKKyN1bmRlZiBGT1JfZnNmcmVlemUKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyBmc3R5cGUgICA8MQorI3VuZGVmIE9QVFNUUl9mc3R5cGUKKyNkZWZpbmUgT1BUU1RSX2ZzdHlwZSAiPDEiCisjaWZkZWYgQ0xFQU5VUF9mc3R5cGUKKyN1bmRlZiBDTEVBTlVQX2ZzdHlwZQorI3VuZGVmIEZPUl9mc3R5cGUKKyNlbmRpZgorCisvLyBmc3luYyAgIDwxZAorI3VuZGVmIE9QVFNUUl9mc3luYworI2RlZmluZSBPUFRTVFJfZnN5bmMgIjwxZCIKKyNpZmRlZiBDTEVBTlVQX2ZzeW5jCisjdW5kZWYgQ0xFQU5VUF9mc3luYworI3VuZGVmIEZPUl9mc3luYworI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIGZ0cGdldCAgIDwyPjNQOmNwOnU6dmdzbExtTWREWy1nc11bIWdzbExtTWREXVshY2xMXQorI3VuZGVmIE9QVFNUUl9mdHBnZXQKKyNkZWZpbmUgT1BUU1RSX2Z0cGdldCAiPDI+M1A6Y3A6dTp2Z3NsTG1NZERbLWdzXVshZ3NsTG1NZERdWyFjbExdIgorI2lmZGVmIENMRUFOVVBfZnRwZ2V0CisjdW5kZWYgQ0xFQU5VUF9mdHBnZXQKKyN1bmRlZiBGT1JfZnRwZ2V0CisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19NCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19QCisjZW5kaWYKKworLy8gZ2V0Y29uZiA+MmFsID4yYWwKKyN1bmRlZiBPUFRTVFJfZ2V0Y29uZgorI2RlZmluZSBPUFRTVFJfZ2V0Y29uZiAiPjJhbCIKKyNpZmRlZiBDTEVBTlVQX2dldGNvbmYKKyN1bmRlZiBDTEVBTlVQX2dldGNvbmYKKyN1bmRlZiBGT1JfZ2V0Y29uZgorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIGdldGVuZm9yY2UgICA+MAorI3VuZGVmIE9QVFNUUl9nZXRlbmZvcmNlCisjZGVmaW5lIE9QVFNUUl9nZXRlbmZvcmNlICI+MCIKKyNpZmRlZiBDTEVBTlVQX2dldGVuZm9yY2UKKyN1bmRlZiBDTEVBTlVQX2dldGVuZm9yY2UKKyN1bmRlZiBGT1JfZ2V0ZW5mb3JjZQorI2VuZGlmCisKKy8vIGdldGZhdHRyICAgKG9ubHktdmFsdWVzKWRobjoKKyN1bmRlZiBPUFRTVFJfZ2V0ZmF0dHIKKyNkZWZpbmUgT1BUU1RSX2dldGZhdHRyICIob25seS12YWx1ZXMpZGhuOiIKKyNpZmRlZiBDTEVBTlVQX2dldGZhdHRyCisjdW5kZWYgQ0xFQU5VUF9nZXRmYXR0cgorI3VuZGVmIEZPUl9nZXRmYXR0cgorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfb25seV92YWx1ZXMKKyNlbmRpZgorCisvLyBnZXRvcHQgXmEoYWx0ZXJuYXRpdmUpbjoobmFtZSlvOihvcHRpb25zKWwqKGxvbmcpKGxvbmdvcHRpb25zKVR1IF5hKGFsdGVybmF0aXZlKW46KG5hbWUpbzoob3B0aW9ucylsKihsb25nKShsb25nb3B0aW9ucylUdQorI3VuZGVmIE9QVFNUUl9nZXRvcHQKKyNkZWZpbmUgT1BUU1RSX2dldG9wdCAiXmEoYWx0ZXJuYXRpdmUpbjoobmFtZSlvOihvcHRpb25zKWwqKGxvbmcpKGxvbmdvcHRpb25zKVR1IgorI2lmZGVmIENMRUFOVVBfZ2V0b3B0CisjdW5kZWYgQ0xFQU5VUF9nZXRvcHQKKyN1bmRlZiBGT1JfZ2V0b3B0CisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gZ2V0dHkgICA8MnQjPDBIOkk6bDpmOml3bm1MaAorI3VuZGVmIE9QVFNUUl9nZXR0eQorI2RlZmluZSBPUFRTVFJfZ2V0dHkgIjwydCM8MEg6STpsOmY6aXdubUxoIgorI2lmZGVmIENMRUFOVVBfZ2V0dHkKKyN1bmRlZiBDTEVBTlVQX2dldHR5CisjdW5kZWYgRk9SX2dldHR5CisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19JCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR190CisjZW5kaWYKKworLy8gZ2l0Y2hlY2tvdXQgICA8MQorI3VuZGVmIE9QVFNUUl9naXRjaGVja291dAorI2RlZmluZSBPUFRTVFJfZ2l0Y2hlY2tvdXQgIjwxIgorI2lmZGVmIENMRUFOVVBfZ2l0Y2hlY2tvdXQKKyN1bmRlZiBDTEVBTlVQX2dpdGNoZWNrb3V0CisjdW5kZWYgRk9SX2dpdGNoZWNrb3V0CisjZW5kaWYKKworLy8gZ2l0Y2xvbmUgICA8MQorI3VuZGVmIE9QVFNUUl9naXRjbG9uZQorI2RlZmluZSBPUFRTVFJfZ2l0Y2xvbmUgIjwxIgorI2lmZGVmIENMRUFOVVBfZ2l0Y2xvbmUKKyN1bmRlZiBDTEVBTlVQX2dpdGNsb25lCisjdW5kZWYgRk9SX2dpdGNsb25lCisjZW5kaWYKKworLy8gZ2l0ZmV0Y2ggICAgCisjdW5kZWYgT1BUU1RSX2dpdGZldGNoCisjZGVmaW5lIE9QVFNUUl9naXRmZXRjaCAwCisjaWZkZWYgQ0xFQU5VUF9naXRmZXRjaAorI3VuZGVmIENMRUFOVVBfZ2l0ZmV0Y2gKKyN1bmRlZiBGT1JfZ2l0ZmV0Y2gKKyNlbmRpZgorCisvLyBnaXRpbml0ICAgPDEKKyN1bmRlZiBPUFRTVFJfZ2l0aW5pdAorI2RlZmluZSBPUFRTVFJfZ2l0aW5pdCAiPDEiCisjaWZkZWYgQ0xFQU5VUF9naXRpbml0CisjdW5kZWYgQ0xFQU5VUF9naXRpbml0CisjdW5kZWYgRk9SX2dpdGluaXQKKyNlbmRpZgorCisvLyBnaXRyZW1vdGUgICA8MQorI3VuZGVmIE9QVFNUUl9naXRyZW1vdGUKKyNkZWZpbmUgT1BUU1RSX2dpdHJlbW90ZSAiPDEiCisjaWZkZWYgQ0xFQU5VUF9naXRyZW1vdGUKKyN1bmRlZiBDTEVBTlVQX2dpdHJlbW90ZQorI3VuZGVmIEZPUl9naXRyZW1vdGUKKyNlbmRpZgorCisvLyBncGlvZGV0ZWN0ICAgPjAKKyN1bmRlZiBPUFRTVFJfZ3Bpb2RldGVjdAorI2RlZmluZSBPUFRTVFJfZ3Bpb2RldGVjdCAiPjAiCisjaWZkZWYgQ0xFQU5VUF9ncGlvZGV0ZWN0CisjdW5kZWYgQ0xFQU5VUF9ncGlvZGV0ZWN0CisjdW5kZWYgRk9SX2dwaW9kZXRlY3QKKyNlbmRpZgorCisvLyBncGlvZmluZCAgIDwxPjEKKyN1bmRlZiBPUFRTVFJfZ3Bpb2ZpbmQKKyNkZWZpbmUgT1BUU1RSX2dwaW9maW5kICI8MT4xIgorI2lmZGVmIENMRUFOVVBfZ3Bpb2ZpbmQKKyN1bmRlZiBDTEVBTlVQX2dwaW9maW5kCisjdW5kZWYgRk9SX2dwaW9maW5kCisjZW5kaWYKKworLy8gZ3Bpb2dldCAgIDwybAorI3VuZGVmIE9QVFNUUl9ncGlvZ2V0CisjZGVmaW5lIE9QVFNUUl9ncGlvZ2V0ICI8MmwiCisjaWZkZWYgQ0xFQU5VUF9ncGlvZ2V0CisjdW5kZWYgQ0xFQU5VUF9ncGlvZ2V0CisjdW5kZWYgRk9SX2dwaW9nZXQKKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBncGlvaW5mbyAgICAKKyN1bmRlZiBPUFRTVFJfZ3Bpb2luZm8KKyNkZWZpbmUgT1BUU1RSX2dwaW9pbmZvIDAKKyNpZmRlZiBDTEVBTlVQX2dwaW9pbmZvCisjdW5kZWYgQ0xFQU5VUF9ncGlvaW5mbworI3VuZGVmIEZPUl9ncGlvaW5mbworI2VuZGlmCisKKy8vIGdwaW9zZXQgICA8MmwKKyN1bmRlZiBPUFRTVFJfZ3Bpb3NldAorI2RlZmluZSBPUFRTVFJfZ3Bpb3NldCAiPDJsIgorI2lmZGVmIENMRUFOVVBfZ3Bpb3NldAorI3VuZGVmIENMRUFOVVBfZ3Bpb3NldAorI3VuZGVmIEZPUl9ncGlvc2V0CisjdW5kZWYgRkxBR19sCisjZW5kaWYKKworLy8gZ3JlcCAobGluZS1idWZmZXJlZCkoY29sb3IpOjsoZXhjbHVkZS1kaXIpKlMoZXhjbHVkZSkqTShpbmNsdWRlKSpaekVGSElhYihieXRlLW9mZnNldCloKG5vLWZpbGVuYW1lKWlubyhvbmx5LW1hdGNoaW5nKXJSc3Z3Yyhjb3VudClMKGZpbGVzLXdpdGhvdXQtbWF0Y2gpbChmaWxlcy13aXRoLW1hdGNoZXMpcShxdWlldCkoc2lsZW50KWUqZipDI0IjQSNtI3hbIXd4XVshRUZdIChsaW5lLWJ1ZmZlcmVkKShjb2xvcik6OyhleGNsdWRlLWRpcikqUyhleGNsdWRlKSpNKGluY2x1ZGUpKlp6RUZISWFiKGJ5dGUtb2Zmc2V0KWgobm8tZmlsZW5hbWUpaW5vKG9ubHktbWF0Y2hpbmcpclJzdndjKGNvdW50KUwoZmlsZXMtd2l0aG91dC1tYXRjaClsKGZpbGVzLXdpdGgtbWF0Y2hlcylxKHF1aWV0KShzaWxlbnQpZSpmKkMjQiNBI20jeFshd3hdWyFFRl0KKyN1bmRlZiBPUFRTVFJfZ3JlcAorI2RlZmluZSBPUFRTVFJfZ3JlcCAiKGxpbmUtYnVmZmVyZWQpKGNvbG9yKTo7KGV4Y2x1ZGUtZGlyKSpTKGV4Y2x1ZGUpKk0oaW5jbHVkZSkqWnpFRkhJYWIoYnl0ZS1vZmZzZXQpaChuby1maWxlbmFtZSlpbm8ob25seS1tYXRjaGluZylyUnN2d2MoY291bnQpTChmaWxlcy13aXRob3V0LW1hdGNoKWwoZmlsZXMtd2l0aC1tYXRjaGVzKXEocXVpZXQpKHNpbGVudCllKmYqQyNCI0EjbSN4WyF3eF1bIUVGXSIKKyNpZmRlZiBDTEVBTlVQX2dyZXAKKyN1bmRlZiBDTEVBTlVQX2dyZXAKKyN1bmRlZiBGT1JfZ3JlcAorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfQgorI3VuZGVmIEZMQUdfQworI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfUgorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfSQorI3VuZGVmIEZMQUdfSAorI3VuZGVmIEZMQUdfRgorI3VuZGVmIEZMQUdfRQorI3VuZGVmIEZMQUdfegorI3VuZGVmIEZMQUdfWgorI3VuZGVmIEZMQUdfTQorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfZXhjbHVkZV9kaXIKKyN1bmRlZiBGTEFHX2NvbG9yCisjdW5kZWYgRkxBR19saW5lX2J1ZmZlcmVkCisjZW5kaWYKKworLy8gZ3JvdXBhZGQgICA8MT4yUjpnIzwwPjIxNDc0ODM2NDdTCisjdW5kZWYgT1BUU1RSX2dyb3VwYWRkCisjZGVmaW5lIE9QVFNUUl9ncm91cGFkZCAiPDE+MlI6ZyM8MD4yMTQ3NDgzNjQ3UyIKKyNpZmRlZiBDTEVBTlVQX2dyb3VwYWRkCisjdW5kZWYgQ0xFQU5VUF9ncm91cGFkZAorI3VuZGVmIEZPUl9ncm91cGFkZAorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfUgorI2VuZGlmCisKKy8vIGdyb3VwZGVsICAgPDE+Mj8KKyN1bmRlZiBPUFRTVFJfZ3JvdXBkZWwKKyNkZWZpbmUgT1BUU1RSX2dyb3VwZGVsICI8MT4yPyIKKyNpZmRlZiBDTEVBTlVQX2dyb3VwZGVsCisjdW5kZWYgQ0xFQU5VUF9ncm91cGRlbAorI3VuZGVmIEZPUl9ncm91cGRlbAorI2VuZGlmCisKKy8vIGdyb3VwcyAgICAKKyN1bmRlZiBPUFRTVFJfZ3JvdXBzCisjZGVmaW5lIE9QVFNUUl9ncm91cHMgMAorI2lmZGVmIENMRUFOVVBfZ3JvdXBzCisjdW5kZWYgQ0xFQU5VUF9ncm91cHMKKyN1bmRlZiBGT1JfZ3JvdXBzCisjZW5kaWYKKworLy8gZ3VuemlwICAgY2Rma3QxMjM0NTY3ODlbLTEyMzQ1Njc4OV0KKyN1bmRlZiBPUFRTVFJfZ3VuemlwCisjZGVmaW5lIE9QVFNUUl9ndW56aXAgImNkZmt0MTIzNDU2Nzg5Wy0xMjM0NTY3ODldIgorI2lmZGVmIENMRUFOVVBfZ3VuemlwCisjdW5kZWYgQ0xFQU5VUF9ndW56aXAKKyN1bmRlZiBGT1JfZ3VuemlwCisjdW5kZWYgRkxBR185CisjdW5kZWYgRkxBR184CisjdW5kZWYgRkxBR183CisjdW5kZWYgRkxBR182CisjdW5kZWYgRkxBR181CisjdW5kZWYgRkxBR180CisjdW5kZWYgRkxBR18zCisjdW5kZWYgRkxBR18yCisjdW5kZWYgRkxBR18xCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gZ3ppcCBuKG5vLW5hbWUpY2Rma3QxMjM0NTY3ODlbLTEyMzQ1Njc4OV0gbihuby1uYW1lKWNkZmt0MTIzNDU2Nzg5Wy0xMjM0NTY3ODldCisjdW5kZWYgT1BUU1RSX2d6aXAKKyNkZWZpbmUgT1BUU1RSX2d6aXAgIm4obm8tbmFtZSljZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XSIKKyNpZmRlZiBDTEVBTlVQX2d6aXAKKyN1bmRlZiBDTEVBTlVQX2d6aXAKKyN1bmRlZiBGT1JfZ3ppcAorI3VuZGVmIEZMQUdfOQorI3VuZGVmIEZMQUdfOAorI3VuZGVmIEZMQUdfNworI3VuZGVmIEZMQUdfNgorI3VuZGVmIEZMQUdfNQorI3VuZGVmIEZMQUdfNAorI3VuZGVmIEZMQUdfMworI3VuZGVmIEZMQUdfMgorI3VuZGVmIEZMQUdfMQorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIGhlYWQgP24obGluZXMpIzwwPTEwYyhieXRlcykjPDBxdlstbmNdID9uKGxpbmVzKSM8MD0xMGMoYnl0ZXMpIzwwcXZbLW5jXQorI3VuZGVmIE9QVFNUUl9oZWFkCisjZGVmaW5lIE9QVFNUUl9oZWFkICI/bihsaW5lcykjPDA9MTBjKGJ5dGVzKSM8MHF2Wy1uY10iCisjaWZkZWYgQ0xFQU5VUF9oZWFkCisjdW5kZWYgQ0xFQU5VUF9oZWFkCisjdW5kZWYgRk9SX2hlYWQKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX24KKyNlbmRpZgorCisvLyBoZWxsbyAgICAKKyN1bmRlZiBPUFRTVFJfaGVsbG8KKyNkZWZpbmUgT1BUU1RSX2hlbGxvIDAKKyNpZmRlZiBDTEVBTlVQX2hlbGxvCisjdW5kZWYgQ0xFQU5VUF9oZWxsbworI3VuZGVmIEZPUl9oZWxsbworI2VuZGlmCisKKy8vIGhlbHAgICBhaHUKKyN1bmRlZiBPUFRTVFJfaGVscAorI2RlZmluZSBPUFRTVFJfaGVscCAiYWh1IgorI2lmZGVmIENMRUFOVVBfaGVscAorI3VuZGVmIENMRUFOVVBfaGVscAorI3VuZGVmIEZPUl9oZWxwCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gaGV4ZHVtcCAgIGJjQ2RuIzwwb3MjPDB2eFshYmNDZG94XQorI3VuZGVmIE9QVFNUUl9oZXhkdW1wCisjZGVmaW5lIE9QVFNUUl9oZXhkdW1wICJiY0NkbiM8MG9zIzwwdnhbIWJjQ2RveF0iCisjaWZkZWYgQ0xFQU5VUF9oZXhkdW1wCisjdW5kZWYgQ0xFQU5VUF9oZXhkdW1wCisjdW5kZWYgRk9SX2hleGR1bXAKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2IKKyNlbmRpZgorCisvLyBoZXhlZGl0ICAgPDE+MXIKKyN1bmRlZiBPUFRTVFJfaGV4ZWRpdAorI2RlZmluZSBPUFRTVFJfaGV4ZWRpdCAiPDE+MXIiCisjaWZkZWYgQ0xFQU5VUF9oZXhlZGl0CisjdW5kZWYgQ0xFQU5VUF9oZXhlZGl0CisjdW5kZWYgRk9SX2hleGVkaXQKKyN1bmRlZiBGTEFHX3IKKyNlbmRpZgorCisvLyBob3N0ICAgPDE+MmF2dDoKKyN1bmRlZiBPUFRTVFJfaG9zdAorI2RlZmluZSBPUFRTVFJfaG9zdCAiPDE+MmF2dDoiCisjaWZkZWYgQ0xFQU5VUF9ob3N0CisjdW5kZWYgQ0xFQU5VUF9ob3N0CisjdW5kZWYgRk9SX2hvc3QKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBob3N0aWQgICA+MAorI3VuZGVmIE9QVFNUUl9ob3N0aWQKKyNkZWZpbmUgT1BUU1RSX2hvc3RpZCAiPjAiCisjaWZkZWYgQ0xFQU5VUF9ob3N0aWQKKyN1bmRlZiBDTEVBTlVQX2hvc3RpZAorI3VuZGVmIEZPUl9ob3N0aWQKKyNlbmRpZgorCisvLyBob3N0bmFtZSA+MWJkc2ZGOlshYmRzZl0gPjFiZHNmRjpbIWJkc2ZdCisjdW5kZWYgT1BUU1RSX2hvc3RuYW1lCisjZGVmaW5lIE9QVFNUUl9ob3N0bmFtZSAiPjFiZHNmRjpbIWJkc2ZdIgorI2lmZGVmIENMRUFOVVBfaG9zdG5hbWUKKyN1bmRlZiBDTEVBTlVQX2hvc3RuYW1lCisjdW5kZWYgRk9SX2hvc3RuYW1lCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19iCisjZW5kaWYKKworLy8gaHR0cGQgICA+MXYKKyN1bmRlZiBPUFRTVFJfaHR0cGQKKyNkZWZpbmUgT1BUU1RSX2h0dHBkICI+MXYiCisjaWZkZWYgQ0xFQU5VUF9odHRwZAorI3VuZGVmIENMRUFOVVBfaHR0cGQKKyN1bmRlZiBGT1JfaHR0cGQKKyN1bmRlZiBGTEFHX3YKKyNlbmRpZgorCisvLyBod2Nsb2NrICAgPjAoZmFzdClmKHJ0Yyk6dSh1dGMpbChsb2NhbHRpbWUpdChzeXN0eilzKGhjdG9zeXMpcihzaG93KXcoc3lzdG9oYylbLXVsXVshcnRzd10KKyN1bmRlZiBPUFRTVFJfaHdjbG9jaworI2RlZmluZSBPUFRTVFJfaHdjbG9jayAiPjAoZmFzdClmKHJ0Yyk6dSh1dGMpbChsb2NhbHRpbWUpdChzeXN0eilzKGhjdG9zeXMpcihzaG93KXcoc3lzdG9oYylbLXVsXVshcnRzd10iCisjaWZkZWYgQ0xFQU5VUF9od2Nsb2NrCisjdW5kZWYgQ0xFQU5VUF9od2Nsb2NrCisjdW5kZWYgRk9SX2h3Y2xvY2sKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2Zhc3QKKyNlbmRpZgorCisvLyBpMmNkZXRlY3QgICA+M2FGIzwwPjYzbHFyeVshcXJdWyFGbF0KKyN1bmRlZiBPUFRTVFJfaTJjZGV0ZWN0CisjZGVmaW5lIE9QVFNUUl9pMmNkZXRlY3QgIj4zYUYjPDA+NjNscXJ5WyFxcl1bIUZsXSIKKyNpZmRlZiBDTEVBTlVQX2kyY2RldGVjdAorI3VuZGVmIENMRUFOVVBfaTJjZGV0ZWN0CisjdW5kZWYgRk9SX2kyY2RldGVjdAorI3VuZGVmIEZMQUdfeQorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfRgorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIGkyY2R1bXAgICA8Mj4yZnkKKyN1bmRlZiBPUFRTVFJfaTJjZHVtcAorI2RlZmluZSBPUFRTVFJfaTJjZHVtcCAiPDI+MmZ5IgorI2lmZGVmIENMRUFOVVBfaTJjZHVtcAorI3VuZGVmIENMRUFOVVBfaTJjZHVtcAorI3VuZGVmIEZPUl9pMmNkdW1wCisjdW5kZWYgRkxBR195CisjdW5kZWYgRkxBR19mCisjZW5kaWYKKworLy8gaTJjZ2V0ICAgPDI+M2Z5CisjdW5kZWYgT1BUU1RSX2kyY2dldAorI2RlZmluZSBPUFRTVFJfaTJjZ2V0ICI8Mj4zZnkiCisjaWZkZWYgQ0xFQU5VUF9pMmNnZXQKKyN1bmRlZiBDTEVBTlVQX2kyY2dldAorI3VuZGVmIEZPUl9pMmNnZXQKKyN1bmRlZiBGTEFHX3kKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyBpMmNzZXQgICA8NGZ5CisjdW5kZWYgT1BUU1RSX2kyY3NldAorI2RlZmluZSBPUFRTVFJfaTJjc2V0ICI8NGZ5IgorI2lmZGVmIENMRUFOVVBfaTJjc2V0CisjdW5kZWYgQ0xFQU5VUF9pMmNzZXQKKyN1bmRlZiBGT1JfaTJjc2V0CisjdW5kZWYgRkxBR195CisjdW5kZWYgRkxBR19mCisjZW5kaWYKKworLy8gaTJjdHJhbnNmZXIgICA8MnZmeQorI3VuZGVmIE9QVFNUUl9pMmN0cmFuc2ZlcgorI2RlZmluZSBPUFRTVFJfaTJjdHJhbnNmZXIgIjwydmZ5IgorI2lmZGVmIENMRUFOVVBfaTJjdHJhbnNmZXIKKyN1bmRlZiBDTEVBTlVQX2kyY3RyYW5zZmVyCisjdW5kZWYgRk9SX2kyY3RyYW5zZmVyCisjdW5kZWYgRkxBR195CisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR192CisjZW5kaWYKKworLy8gaWNvbnYgICBjc3Q6ZjoKKyN1bmRlZiBPUFRTVFJfaWNvbnYKKyNkZWZpbmUgT1BUU1RSX2ljb252ICJjc3Q6ZjoiCisjaWZkZWYgQ0xFQU5VUF9pY29udgorI3VuZGVmIENMRUFOVVBfaWNvbnYKKyN1bmRlZiBGT1JfaWNvbnYKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBpZCA+MW5HZ3J1WyFHZ3VdID4xWm5HZ3J1WyFaR2d1XQorI3VuZGVmIE9QVFNUUl9pZAorI2RlZmluZSBPUFRTVFJfaWQgIj4xAW5HZ3J1WyEBR2d1XSIKKyNpZmRlZiBDTEVBTlVQX2lkCisjdW5kZWYgQ0xFQU5VUF9pZAorI3VuZGVmIEZPUl9pZAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfRworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfWgorI2VuZGlmCisKKy8vIGlmY29uZmlnICAgXj9hUworI3VuZGVmIE9QVFNUUl9pZmNvbmZpZworI2RlZmluZSBPUFRTVFJfaWZjb25maWcgIl4/YVMiCisjaWZkZWYgQ0xFQU5VUF9pZmNvbmZpZworI3VuZGVmIENMRUFOVVBfaWZjb25maWcKKyN1bmRlZiBGT1JfaWZjb25maWcKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBpbml0ICAgIAorI3VuZGVmIE9QVFNUUl9pbml0CisjZGVmaW5lIE9QVFNUUl9pbml0IDAKKyNpZmRlZiBDTEVBTlVQX2luaXQKKyN1bmRlZiBDTEVBTlVQX2luaXQKKyN1bmRlZiBGT1JfaW5pdAorI2VuZGlmCisKKy8vIGlub3RpZnlkICAgPDIKKyN1bmRlZiBPUFRTVFJfaW5vdGlmeWQKKyNkZWZpbmUgT1BUU1RSX2lub3RpZnlkICI8MiIKKyNpZmRlZiBDTEVBTlVQX2lub3RpZnlkCisjdW5kZWYgQ0xFQU5VUF9pbm90aWZ5ZAorI3VuZGVmIEZPUl9pbm90aWZ5ZAorI2VuZGlmCisKKy8vIGluc21vZCAgIDwxCisjdW5kZWYgT1BUU1RSX2luc21vZAorI2RlZmluZSBPUFRTVFJfaW5zbW9kICI8MSIKKyNpZmRlZiBDTEVBTlVQX2luc21vZAorI3VuZGVmIENMRUFOVVBfaW5zbW9kCisjdW5kZWYgRk9SX2luc21vZAorI2VuZGlmCisKKy8vIGluc3RhbGwgPDFjZERwKHByZXNlcnZlLXRpbWVzdGFtcHMpc3Z0Om06bzpnOiA8MWNkRHAocHJlc2VydmUtdGltZXN0YW1wcylzdnQ6bTpvOmc6CisjdW5kZWYgT1BUU1RSX2luc3RhbGwKKyNkZWZpbmUgT1BUU1RSX2luc3RhbGwgIjwxY2REcChwcmVzZXJ2ZS10aW1lc3RhbXBzKXN2dDptOm86ZzoiCisjaWZkZWYgQ0xFQU5VUF9pbnN0YWxsCisjdW5kZWYgQ0xFQU5VUF9pbnN0YWxsCisjdW5kZWYgRk9SX2luc3RhbGwKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBpb25pY2UgICBedGMjPDA+Mz0ybiM8MD43PTVwIworI3VuZGVmIE9QVFNUUl9pb25pY2UKKyNkZWZpbmUgT1BUU1RSX2lvbmljZSAiXnRjIzwwPjM9Mm4jPDA+Nz01cCMiCisjaWZkZWYgQ0xFQU5VUF9pb25pY2UKKyN1bmRlZiBDTEVBTlVQX2lvbmljZQorI3VuZGVmIEZPUl9pb25pY2UKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX3QKKyNlbmRpZgorCisvLyBpb3JlbmljZSAgIDwxPjMKKyN1bmRlZiBPUFRTVFJfaW9yZW5pY2UKKyNkZWZpbmUgT1BUU1RSX2lvcmVuaWNlICI8MT4zIgorI2lmZGVmIENMRUFOVVBfaW9yZW5pY2UKKyN1bmRlZiBDTEVBTlVQX2lvcmVuaWNlCisjdW5kZWYgRk9SX2lvcmVuaWNlCisjZW5kaWYKKworLy8gaW90b3AgICA+MEFhS09IaypvKnAqdSpzIzwxPTdkJTwxMDA9MzAwMG0jbiM8MWJxCisjdW5kZWYgT1BUU1RSX2lvdG9wCisjZGVmaW5lIE9QVFNUUl9pb3RvcCAiPjBBYUtPSGsqbypwKnUqcyM8MT03ZCU8MTAwPTMwMDBtI24jPDFicSIKKyNpZmRlZiBDTEVBTlVQX2lvdG9wCisjdW5kZWYgQ0xFQU5VUF9pb3RvcAorI3VuZGVmIEZPUl9pb3RvcAorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfSAorI3VuZGVmIEZMQUdfTworI3VuZGVmIEZMQUdfSworI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfQQorI2VuZGlmCisKKy8vIGlwICAgIAorI3VuZGVmIE9QVFNUUl9pcAorI2RlZmluZSBPUFRTVFJfaXAgMAorI2lmZGVmIENMRUFOVVBfaXAKKyN1bmRlZiBDTEVBTlVQX2lwCisjdW5kZWYgRk9SX2lwCisjZW5kaWYKKworLy8gaXBjcm0gICBtKk0qcypTKnEqUSoKKyN1bmRlZiBPUFRTVFJfaXBjcm0KKyNkZWZpbmUgT1BUU1RSX2lwY3JtICJtKk0qcypTKnEqUSoiCisjaWZkZWYgQ0xFQU5VUF9pcGNybQorI3VuZGVmIENMRUFOVVBfaXBjcm0KKyN1bmRlZiBGT1JfaXBjcm0KKyN1bmRlZiBGTEFHX1EKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX00KKyN1bmRlZiBGTEFHX20KKyNlbmRpZgorCisvLyBpcGNzICAgYWNwdHVsc3FtaSMKKyN1bmRlZiBPUFRTVFJfaXBjcworI2RlZmluZSBPUFRTVFJfaXBjcyAiYWNwdHVsc3FtaSMiCisjaWZkZWYgQ0xFQU5VUF9pcGNzCisjdW5kZWYgQ0xFQU5VUF9pcGNzCisjdW5kZWYgRk9SX2lwY3MKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBqb2JzICAgbG5wcnMKKyN1bmRlZiBPUFRTVFJfam9icworI2RlZmluZSBPUFRTVFJfam9icyAibG5wcnMiCisjaWZkZWYgQ0xFQU5VUF9qb2JzCisjdW5kZWYgQ0xFQU5VUF9qb2JzCisjdW5kZWYgRk9SX2pvYnMKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBraWxsICAgP2xzOiAKKyN1bmRlZiBPUFRTVFJfa2lsbAorI2RlZmluZSBPUFRTVFJfa2lsbCAiP2xzOiAiCisjaWZkZWYgQ0xFQU5VUF9raWxsCisjdW5kZWYgQ0xFQU5VUF9raWxsCisjdW5kZWYgRk9SX2tpbGwKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBraWxsYWxsICAgP3M6aWxxdncKKyN1bmRlZiBPUFRTVFJfa2lsbGFsbAorI2RlZmluZSBPUFRTVFJfa2lsbGFsbCAiP3M6aWxxdnciCisjaWZkZWYgQ0xFQU5VUF9raWxsYWxsCisjdW5kZWYgQ0xFQU5VUF9raWxsYWxsCisjdW5kZWYgRk9SX2tpbGxhbGwKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyBraWxsYWxsNSAgID9vKmxzOiBbIWxvXVshbHNdCisjdW5kZWYgT1BUU1RSX2tpbGxhbGw1CisjZGVmaW5lIE9QVFNUUl9raWxsYWxsNSAiP28qbHM6IFshbG9dWyFsc10iCisjaWZkZWYgQ0xFQU5VUF9raWxsYWxsNQorI3VuZGVmIENMRUFOVVBfa2lsbGFsbDUKKyN1bmRlZiBGT1Jfa2lsbGFsbDUKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX28KKyNlbmRpZgorCisvLyBrbG9nZCAgIGMjPDE+OG4KKyN1bmRlZiBPUFRTVFJfa2xvZ2QKKyNkZWZpbmUgT1BUU1RSX2tsb2dkICJjIzwxPjhuIgorI2lmZGVmIENMRUFOVVBfa2xvZ2QKKyN1bmRlZiBDTEVBTlVQX2tsb2dkCisjdW5kZWYgRk9SX2tsb2dkCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gbGFzdCAgIGY6VworI3VuZGVmIE9QVFNUUl9sYXN0CisjZGVmaW5lIE9QVFNUUl9sYXN0ICJmOlciCisjaWZkZWYgQ0xFQU5VUF9sYXN0CisjdW5kZWYgQ0xFQU5VUF9sYXN0CisjdW5kZWYgRk9SX2xhc3QKKyN1bmRlZiBGTEFHX1cKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyBsaW5rICAgPDI+MgorI3VuZGVmIE9QVFNUUl9saW5rCisjZGVmaW5lIE9QVFNUUl9saW5rICI8Mj4yIgorI2lmZGVmIENMRUFOVVBfbGluaworI3VuZGVmIENMRUFOVVBfbGluaworI3VuZGVmIEZPUl9saW5rCisjZW5kaWYKKworLy8gbGludXgzMiAgICAKKyN1bmRlZiBPUFRTVFJfbGludXgzMgorI2RlZmluZSBPUFRTVFJfbGludXgzMiAwCisjaWZkZWYgQ0xFQU5VUF9saW51eDMyCisjdW5kZWYgQ0xFQU5VUF9saW51eDMyCisjdW5kZWYgRk9SX2xpbnV4MzIKKyNlbmRpZgorCisvLyBsbiA8MXJ0OlR2bmZzIDwxcnQ6VHZuZnMKKyN1bmRlZiBPUFRTVFJfbG4KKyNkZWZpbmUgT1BUU1RSX2xuICI8MXJ0OlR2bmZzIgorI2lmZGVmIENMRUFOVVBfbG4KKyN1bmRlZiBDTEVBTlVQX2xuCisjdW5kZWYgRk9SX2xuCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19yCisjZW5kaWYKKworLy8gbG9hZF9wb2xpY3kgICA8MT4xCisjdW5kZWYgT1BUU1RSX2xvYWRfcG9saWN5CisjZGVmaW5lIE9QVFNUUl9sb2FkX3BvbGljeSAiPDE+MSIKKyNpZmRlZiBDTEVBTlVQX2xvYWRfcG9saWN5CisjdW5kZWYgQ0xFQU5VUF9sb2FkX3BvbGljeQorI3VuZGVmIEZPUl9sb2FkX3BvbGljeQorI2VuZGlmCisKKy8vIGxvY2FsICAgIAorI3VuZGVmIE9QVFNUUl9sb2NhbAorI2RlZmluZSBPUFRTVFJfbG9jYWwgMAorI2lmZGVmIENMRUFOVVBfbG9jYWwKKyN1bmRlZiBDTEVBTlVQX2xvY2FsCisjdW5kZWYgRk9SX2xvY2FsCisjZW5kaWYKKworLy8gbG9nICAgcDp0OgorI3VuZGVmIE9QVFNUUl9sb2cKKyNkZWZpbmUgT1BUU1RSX2xvZyAicDp0OiIKKyNpZmRlZiBDTEVBTlVQX2xvZworI3VuZGVmIENMRUFOVVBfbG9nCisjdW5kZWYgRk9SX2xvZworI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIGxvZ2dlciAgIHQ6cDpzCisjdW5kZWYgT1BUU1RSX2xvZ2dlcgorI2RlZmluZSBPUFRTVFJfbG9nZ2VyICJ0OnA6cyIKKyNpZmRlZiBDTEVBTlVQX2xvZ2dlcgorI3VuZGVmIENMRUFOVVBfbG9nZ2VyCisjdW5kZWYgRk9SX2xvZ2dlcgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfdAorI2VuZGlmCisKKy8vIGxvZ2luICAgPjFmOnBoOgorI3VuZGVmIE9QVFNUUl9sb2dpbgorI2RlZmluZSBPUFRTVFJfbG9naW4gIj4xZjpwaDoiCisjaWZkZWYgQ0xFQU5VUF9sb2dpbgorI3VuZGVmIENMRUFOVVBfbG9naW4KKyN1bmRlZiBGT1JfbG9naW4KKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyBsb2duYW1lICAgPjAKKyN1bmRlZiBPUFRTVFJfbG9nbmFtZQorI2RlZmluZSBPUFRTVFJfbG9nbmFtZSAiPjAiCisjaWZkZWYgQ0xFQU5VUF9sb2duYW1lCisjdW5kZWYgQ0xFQU5VUF9sb2duYW1lCisjdW5kZWYgRk9SX2xvZ25hbWUKKyNlbmRpZgorCisvLyBsb2dwYXRoICAgIAorI3VuZGVmIE9QVFNUUl9sb2dwYXRoCisjZGVmaW5lIE9QVFNUUl9sb2dwYXRoIDAKKyNpZmRlZiBDTEVBTlVQX2xvZ3BhdGgKKyN1bmRlZiBDTEVBTlVQX2xvZ3BhdGgKKyN1bmRlZiBGT1JfbG9ncGF0aAorI2VuZGlmCisKKy8vIGxvc2V0dXAgICA+MlMoc2l6ZWxpbWl0KSNzKHNob3cpcm8jajpmZGNhRFshYWZqXQorI3VuZGVmIE9QVFNUUl9sb3NldHVwCisjZGVmaW5lIE9QVFNUUl9sb3NldHVwICI+MlMoc2l6ZWxpbWl0KSNzKHNob3cpcm8jajpmZGNhRFshYWZqXSIKKyNpZmRlZiBDTEVBTlVQX2xvc2V0dXAKKyN1bmRlZiBDTEVBTlVQX2xvc2V0dXAKKyN1bmRlZiBGT1JfbG9zZXR1cAorI3VuZGVmIEZMQUdfRAorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfagorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfUworI2VuZGlmCisKKy8vIGxzIChzb3J0KTooY29sb3IpOjsoZnVsbC10aW1lKShzaG93LWNvbnRyb2wtY2hhcnMp/yhibG9jay1zaXplKSM9MTAyNDwxoShncm91cC1kaXJlY3Rvcmllcy1maXJzdCn+WmdvQUNGSExOUlNVWGFiY2RmaGlrbEBtbnBxcnN0dXcjPTgwPDB4MVstQ3htMV1bLUN4bWxdWy1DeG1vXVstQ3htZ11bLWN1XVstZnRTXVstSExdWy1OcWJdWy1r/10gKHNvcnQpOihjb2xvcik6OyhmdWxsLXRpbWUpKHNob3ctY29udHJvbC1jaGFycyn/KGJsb2NrLXNpemUpIz0xMDI0PDGhKGdyb3VwLWRpcmVjdG9yaWVzLWZpcnN0Kf5aZ29BQ0ZITE5SU1VYYWJjZGZoaWtsQG1ucHFyc3R1dyM9ODA8MHgxWy1DeG0xXVstQ3htbF1bLUN4bW9dWy1DeG1nXVstY3VdWy1mdFNdWy1ITF1bLU5xYl1bLWv/XQorI3VuZGVmIE9QVFNUUl9scworI2RlZmluZSBPUFRTVFJfbHMgIihzb3J0KTooY29sb3IpOjsoZnVsbC10aW1lKShzaG93LWNvbnRyb2wtY2hhcnMp/yhibG9jay1zaXplKSM9MTAyNDwxoShncm91cC1kaXJlY3Rvcmllcy1maXJzdCn+WmdvQUNGSExOUlNVWGFiY2RmaGlrbEBtbnBxcnN0dXcjPTgwPDB4MVstQ3htMV1bLUN4bWxdWy1DeG1vXVstQ3htZ11bLWN1XVstZnRTXVstSExdWy1OcWJdWy1r/10iCisjaWZkZWYgQ0xFQU5VUF9scworI3VuZGVmIENMRUFOVVBfbHMKKyN1bmRlZiBGT1JfbHMKKyN1bmRlZiBGTEFHXzEKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX1gKKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX04KKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX1oKKyN1bmRlZiBGTEFHX1g3RQorI3VuZGVmIEZMQUdfWDIxCisjdW5kZWYgRkxBR19YN0YKKyN1bmRlZiBGTEFHX3Nob3dfY29udHJvbF9jaGFycworI3VuZGVmIEZMQUdfZnVsbF90aW1lCisjdW5kZWYgRkxBR19jb2xvcgorI3VuZGVmIEZMQUdfc29ydAorI2VuZGlmCisKKy8vIGxzYXR0ciAgIGxkYXB2UgorI3VuZGVmIE9QVFNUUl9sc2F0dHIKKyNkZWZpbmUgT1BUU1RSX2xzYXR0ciAibGRhcHZSIgorI2lmZGVmIENMRUFOVVBfbHNhdHRyCisjdW5kZWYgQ0xFQU5VUF9sc2F0dHIKKyN1bmRlZiBGT1JfbHNhdHRyCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19sCisjZW5kaWYKKworLy8gbHNtb2QgICAgCisjdW5kZWYgT1BUU1RSX2xzbW9kCisjZGVmaW5lIE9QVFNUUl9sc21vZCAwCisjaWZkZWYgQ0xFQU5VUF9sc21vZAorI3VuZGVmIENMRUFOVVBfbHNtb2QKKyN1bmRlZiBGT1JfbHNtb2QKKyNlbmRpZgorCisvLyBsc29mICAgbHAqdAorI3VuZGVmIE9QVFNUUl9sc29mCisjZGVmaW5lIE9QVFNUUl9sc29mICJscCp0IgorI2lmZGVmIENMRUFOVVBfbHNvZgorI3VuZGVmIENMRUFOVVBfbHNvZgorI3VuZGVmIEZPUl9sc29mCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19sCisjZW5kaWYKKworLy8gbHNwY2kgICBlbWtuQHhAaToKKyN1bmRlZiBPUFRTVFJfbHNwY2kKKyNkZWZpbmUgT1BUU1RSX2xzcGNpICJlbWtuQHhAaToiCisjaWZkZWYgQ0xFQU5VUF9sc3BjaQorI3VuZGVmIENMRUFOVVBfbHNwY2kKKyN1bmRlZiBGT1JfbHNwY2kKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2UKKyNlbmRpZgorCisvLyBsc3VzYiAgIGk6CisjdW5kZWYgT1BUU1RSX2xzdXNiCisjZGVmaW5lIE9QVFNUUl9sc3VzYiAiaToiCisjaWZkZWYgQ0xFQU5VUF9sc3VzYgorI3VuZGVmIENMRUFOVVBfbHN1c2IKKyN1bmRlZiBGT1JfbHN1c2IKKyN1bmRlZiBGTEFHX2kKKyNlbmRpZgorCisvLyBtYWtlZGV2cyAgIDwxPjFkOgorI3VuZGVmIE9QVFNUUl9tYWtlZGV2cworI2RlZmluZSBPUFRTVFJfbWFrZWRldnMgIjwxPjFkOiIKKyNpZmRlZiBDTEVBTlVQX21ha2VkZXZzCisjdW5kZWYgQ0xFQU5VUF9tYWtlZGV2cworI3VuZGVmIEZPUl9tYWtlZGV2cworI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIG1hbiAgIGs6TToKKyN1bmRlZiBPUFRTVFJfbWFuCisjZGVmaW5lIE9QVFNUUl9tYW4gIms6TToiCisjaWZkZWYgQ0xFQU5VUF9tYW4KKyN1bmRlZiBDTEVBTlVQX21hbgorI3VuZGVmIEZPUl9tYW4KKyN1bmRlZiBGTEFHX00KKyN1bmRlZiBGTEFHX2sKKyNlbmRpZgorCisvLyBtY29va2llICAgdih2ZXJib3NlKVYodmVyc2lvbikKKyN1bmRlZiBPUFRTVFJfbWNvb2tpZQorI2RlZmluZSBPUFRTVFJfbWNvb2tpZSAidih2ZXJib3NlKVYodmVyc2lvbikiCisjaWZkZWYgQ0xFQU5VUF9tY29va2llCisjdW5kZWYgQ0xFQU5VUF9tY29va2llCisjdW5kZWYgRk9SX21jb29raWUKKyN1bmRlZiBGTEFHX1YKKyN1bmRlZiBGTEFHX3YKKyNlbmRpZgorCisvLyBtZDVzdW0gYmMoY2hlY2spcyhzdGF0dXMpWyFiY10gYmMoY2hlY2spcyhzdGF0dXMpWyFiY10KKyN1bmRlZiBPUFRTVFJfbWQ1c3VtCisjZGVmaW5lIE9QVFNUUl9tZDVzdW0gImJjKGNoZWNrKXMoc3RhdHVzKVshYmNdIgorI2lmZGVmIENMRUFOVVBfbWQ1c3VtCisjdW5kZWYgQ0xFQU5VUF9tZDVzdW0KKyN1bmRlZiBGT1JfbWQ1c3VtCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19iCisjZW5kaWYKKworLy8gbWRldiAgIHMKKyN1bmRlZiBPUFRTVFJfbWRldgorI2RlZmluZSBPUFRTVFJfbWRldiAicyIKKyNpZmRlZiBDTEVBTlVQX21kZXYKKyN1bmRlZiBDTEVBTlVQX21kZXYKKyN1bmRlZiBGT1JfbWRldgorI3VuZGVmIEZMQUdfcworI2VuZGlmCisKKy8vIG1lbWVhdGVyICAgPDE+MU0KKyN1bmRlZiBPUFRTVFJfbWVtZWF0ZXIKKyNkZWZpbmUgT1BUU1RSX21lbWVhdGVyICI8MT4xTSIKKyNpZmRlZiBDTEVBTlVQX21lbWVhdGVyCisjdW5kZWYgQ0xFQU5VUF9tZW1lYXRlcgorI3VuZGVmIEZPUl9tZW1lYXRlcgorI3VuZGVmIEZMQUdfTQorI2VuZGlmCisKKy8vIG1pY3JvY29tIDwxPjFzIz0xMTUyMDBYIDwxPjFzIz0xMTUyMDBYCisjdW5kZWYgT1BUU1RSX21pY3JvY29tCisjZGVmaW5lIE9QVFNUUl9taWNyb2NvbSAiPDE+MXMjPTExNTIwMFgiCisjaWZkZWYgQ0xFQU5VUF9taWNyb2NvbQorI3VuZGVmIENMRUFOVVBfbWljcm9jb20KKyN1bmRlZiBGT1JfbWljcm9jb20KKyN1bmRlZiBGTEFHX1gKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyBtaXggICBjOmQ6bCNyIworI3VuZGVmIE9QVFNUUl9taXgKKyNkZWZpbmUgT1BUU1RSX21peCAiYzpkOmwjciMiCisjaWZkZWYgQ0xFQU5VUF9taXgKKyN1bmRlZiBDTEVBTlVQX21peAorI3VuZGVmIEZPUl9taXgKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBta2RpciA8MXZwKHBhcmVudCkocGFyZW50cyltOiA8MVo6dnAocGFyZW50KShwYXJlbnRzKW06CisjdW5kZWYgT1BUU1RSX21rZGlyCisjZGVmaW5lIE9QVFNUUl9ta2RpciAiPDEBdnAocGFyZW50KShwYXJlbnRzKW06IgorI2lmZGVmIENMRUFOVVBfbWtkaXIKKyN1bmRlZiBDTEVBTlVQX21rZGlyCisjdW5kZWYgRk9SX21rZGlyCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19aCisjZW5kaWYKKworLy8gbWtlMmZzICAgPDE+Mmc6Rm5xbSNOI2kjYiMKKyN1bmRlZiBPUFRTVFJfbWtlMmZzCisjZGVmaW5lIE9QVFNUUl9ta2UyZnMgIjwxPjJnOkZucW0jTiNpI2IjIgorI2lmZGVmIENMRUFOVVBfbWtlMmZzCisjdW5kZWYgQ0xFQU5VUF9ta2UyZnMKKyN1bmRlZiBGT1JfbWtlMmZzCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19OCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19nCisjZW5kaWYKKworLy8gbWtmaWZvICAgPDFaOm06CisjdW5kZWYgT1BUU1RSX21rZmlmbworI2RlZmluZSBPUFRTVFJfbWtmaWZvICI8MVo6bToiCisjaWZkZWYgQ0xFQU5VUF9ta2ZpZm8KKyN1bmRlZiBDTEVBTlVQX21rZmlmbworI3VuZGVmIEZPUl9ta2ZpZm8KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX1oKKyNlbmRpZgorCisvLyBta25vZCAgIDwyPjRtKG1vZGUpOlo6CisjdW5kZWYgT1BUU1RSX21rbm9kCisjZGVmaW5lIE9QVFNUUl9ta25vZCAiPDI+NG0obW9kZSk6WjoiCisjaWZkZWYgQ0xFQU5VUF9ta25vZAorI3VuZGVmIENMRUFOVVBfbWtub2QKKyN1bmRlZiBGT1JfbWtub2QKKyN1bmRlZiBGTEFHX1oKKyN1bmRlZiBGTEFHX20KKyNlbmRpZgorCisvLyBta3Bhc3N3ZCAgID4yUzptOlAjPTA8MAorI3VuZGVmIE9QVFNUUl9ta3Bhc3N3ZAorI2RlZmluZSBPUFRTVFJfbWtwYXNzd2QgIj4yUzptOlAjPTA8MCIKKyNpZmRlZiBDTEVBTlVQX21rcGFzc3dkCisjdW5kZWYgQ0xFQU5VUF9ta3Bhc3N3ZAorI3VuZGVmIEZPUl9ta3Bhc3N3ZAorI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfUworI2VuZGlmCisKKy8vIG1rc3dhcCAgIDwxPjFMOgorI3VuZGVmIE9QVFNUUl9ta3N3YXAKKyNkZWZpbmUgT1BUU1RSX21rc3dhcCAiPDE+MUw6IgorI2lmZGVmIENMRUFOVVBfbWtzd2FwCisjdW5kZWYgQ0xFQU5VUF9ta3N3YXAKKyN1bmRlZiBGT1JfbWtzd2FwCisjdW5kZWYgRkxBR19MCisjZW5kaWYKKworLy8gbWt0ZW1wID4xKHRtcGRpcik7OnVxZChkaXJlY3RvcnkpcDp0ID4xKHRtcGRpcik7OnVxZChkaXJlY3RvcnkpcDp0CisjdW5kZWYgT1BUU1RSX21rdGVtcAorI2RlZmluZSBPUFRTVFJfbWt0ZW1wICI+MSh0bXBkaXIpOzp1cWQoZGlyZWN0b3J5KXA6dCIKKyNpZmRlZiBDTEVBTlVQX21rdGVtcAorI3VuZGVmIENMRUFOVVBfbWt0ZW1wCisjdW5kZWYgRk9SX21rdGVtcAorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfdG1wZGlyCisjZW5kaWYKKworLy8gbW9kaW5mbyAgIDwxYjprOkY6MAorI3VuZGVmIE9QVFNUUl9tb2RpbmZvCisjZGVmaW5lIE9QVFNUUl9tb2RpbmZvICI8MWI6azpGOjAiCisjaWZkZWYgQ0xFQU5VUF9tb2RpbmZvCisjdW5kZWYgQ0xFQU5VUF9tb2RpbmZvCisjdW5kZWYgRk9SX21vZGluZm8KKyN1bmRlZiBGTEFHXzAKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX2IKKyNlbmRpZgorCisvLyBtb2Rwcm9iZSAgIGFscnF2c0RiZCoKKyN1bmRlZiBPUFRTVFJfbW9kcHJvYmUKKyNkZWZpbmUgT1BUU1RSX21vZHByb2JlICJhbHJxdnNEYmQqIgorI2lmZGVmIENMRUFOVVBfbW9kcHJvYmUKKyN1bmRlZiBDTEVBTlVQX21vZHByb2JlCisjdW5kZWYgRk9SX21vZHByb2JlCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gbW9yZSAgICAKKyN1bmRlZiBPUFRTVFJfbW9yZQorI2RlZmluZSBPUFRTVFJfbW9yZSAwCisjaWZkZWYgQ0xFQU5VUF9tb3JlCisjdW5kZWYgQ0xFQU5VUF9tb3JlCisjdW5kZWYgRk9SX21vcmUKKyNlbmRpZgorCisvLyBtb3VudCA/Uk86YWZucnZ3dDpvKlstcnddID9STzphZm5ydnd0Om8qWy1yd10KKyN1bmRlZiBPUFRTVFJfbW91bnQKKyNkZWZpbmUgT1BUU1RSX21vdW50ICI/Uk86YWZucnZ3dDpvKlstcnddIgorI2lmZGVmIENMRUFOVVBfbW91bnQKKyN1bmRlZiBDTEVBTlVQX21vdW50CisjdW5kZWYgRk9SX21vdW50CisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19SCisjZW5kaWYKKworLy8gbW91bnRwb2ludCAgIDwxcWR4Wy1keF0KKyN1bmRlZiBPUFRTVFJfbW91bnRwb2ludAorI2RlZmluZSBPUFRTVFJfbW91bnRwb2ludCAiPDFxZHhbLWR4XSIKKyNpZmRlZiBDTEVBTlVQX21vdW50cG9pbnQKKyN1bmRlZiBDTEVBTlVQX21vdW50cG9pbnQKKyN1bmRlZiBGT1JfbW91bnRwb2ludAorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfcQorI2VuZGlmCisKKy8vIG12IDwxeChzd2FwKXYodmVyYm9zZSluRihyZW1vdmUtZGVzdGluYXRpb24pZml0OlRbLW5pXSA8MXgoc3dhcCl2KHZlcmJvc2UpbkYocmVtb3ZlLWRlc3RpbmF0aW9uKWZpdDpUWy1uaV0KKyN1bmRlZiBPUFRTVFJfbXYKKyNkZWZpbmUgT1BUU1RSX212ICI8MXgoc3dhcCl2KHZlcmJvc2UpbkYocmVtb3ZlLWRlc3RpbmF0aW9uKWZpdDpUWy1uaV0iCisjaWZkZWYgQ0xFQU5VUF9tdgorI3VuZGVmIENMRUFOVVBfbXYKKyN1bmRlZiBGT1JfbXYKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3gKKyNlbmRpZgorCisvLyBuYmRfY2xpZW50ICAgPDM+M2IjPDE+NDI5NDk2NzI5NT00MDk2bnMKKyN1bmRlZiBPUFRTVFJfbmJkX2NsaWVudAorI2RlZmluZSBPUFRTVFJfbmJkX2NsaWVudCAiPDM+M2IjPDE+NDI5NDk2NzI5NT00MDk2bnMiCisjaWZkZWYgQ0xFQU5VUF9uYmRfY2xpZW50CisjdW5kZWYgQ0xFQU5VUF9uYmRfY2xpZW50CisjdW5kZWYgRk9SX25iZF9jbGllbnQKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2IKKyNlbmRpZgorCisvLyBuYmRfc2VydmVyICAgPDE+MXIKKyN1bmRlZiBPUFRTVFJfbmJkX3NlcnZlcgorI2RlZmluZSBPUFRTVFJfbmJkX3NlcnZlciAiPDE+MXIiCisjaWZkZWYgQ0xFQU5VUF9uYmRfc2VydmVyCisjdW5kZWYgQ0xFQU5VUF9uYmRfc2VydmVyCisjdW5kZWYgRk9SX25iZF9zZXJ2ZXIKKyN1bmRlZiBGTEFHX3IKKyNlbmRpZgorCisvLyBuZXRjYXQgICBedEVsTHcjPDFXIzwxcCM8MT42NTUzNXEjPDFPOm86czpmOjQ2dVVuelshdGxMXVshTHddWyFMdV1bITQ2VV1bIW9PXQorI3VuZGVmIE9QVFNUUl9uZXRjYXQKKyNkZWZpbmUgT1BUU1RSX25ldGNhdCAiXnRFbEx3IzwxVyM8MXAjPDE+NjU1MzVxIzwxTzpvOnM6Zjo0NnVVbnpbIXRsTF1bIUx3XVshTHVdWyE0NlVdWyFvT10iCisjaWZkZWYgQ0xFQU5VUF9uZXRjYXQKKyN1bmRlZiBDTEVBTlVQX25ldGNhdAorI3VuZGVmIEZPUl9uZXRjYXQKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHXzYKKyN1bmRlZiBGTEFHXzQKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX08KKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX1cKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX0UKKyN1bmRlZiBGTEFHX3QKKyNlbmRpZgorCisvLyBuZXRzdGF0ICAgcFdyeHd1dG5lYWwKKyN1bmRlZiBPUFRTVFJfbmV0c3RhdAorI2RlZmluZSBPUFRTVFJfbmV0c3RhdCAicFdyeHd1dG5lYWwiCisjaWZkZWYgQ0xFQU5VUF9uZXRzdGF0CisjdW5kZWYgQ0xFQU5VUF9uZXRzdGF0CisjdW5kZWYgRk9SX25ldHN0YXQKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX1cKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyBuaWNlICAgXjwxbiMKKyN1bmRlZiBPUFRTVFJfbmljZQorI2RlZmluZSBPUFRTVFJfbmljZSAiXjwxbiMiCisjaWZkZWYgQ0xFQU5VUF9uaWNlCisjdW5kZWYgQ0xFQU5VUF9uaWNlCisjdW5kZWYgRk9SX25pY2UKKyN1bmRlZiBGTEFHX24KKyNlbmRpZgorCisvLyBubCB2Iz0xbCN3IzwwPTZiOm46czpFIHYjPTFsI3cjPDA9NmI6bjpzOkUKKyN1bmRlZiBPUFRTVFJfbmwKKyNkZWZpbmUgT1BUU1RSX25sICJ2Iz0xbCN3IzwwPTZiOm46czpFIgorI2lmZGVmIENMRUFOVVBfbmwKKyN1bmRlZiBDTEVBTlVQX25sCisjdW5kZWYgRk9SX25sCisjdW5kZWYgRkxBR19FCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR192CisjZW5kaWYKKworLy8gbm9odXAgICA8MV4KKyN1bmRlZiBPUFRTVFJfbm9odXAKKyNkZWZpbmUgT1BUU1RSX25vaHVwICI8MV4iCisjaWZkZWYgQ0xFQU5VUF9ub2h1cAorI3VuZGVmIENMRUFOVVBfbm9odXAKKyN1bmRlZiBGT1Jfbm9odXAKKyNlbmRpZgorCisvLyBucHJvYyAoYWxsKSAoYWxsKQorI3VuZGVmIE9QVFNUUl9ucHJvYworI2RlZmluZSBPUFRTVFJfbnByb2MgIihhbGwpIgorI2lmZGVmIENMRUFOVVBfbnByb2MKKyN1bmRlZiBDTEVBTlVQX25wcm9jCisjdW5kZWYgRk9SX25wcm9jCisjdW5kZWYgRkxBR19hbGwKKyNlbmRpZgorCisvLyBuc2VudGVyICAgPDFhKGFsbClGKG5vLWZvcmspdCM8MSh0YXJnZXQpQyhjZ3JvdXApOjsgaShpcGMpOjsgbShtb3VudCk6OyBuKG5ldCk6OyBwKHBpZCk6OyB1KHV0cyk6OyBVKHVzZXIpOjsgCisjdW5kZWYgT1BUU1RSX25zZW50ZXIKKyNkZWZpbmUgT1BUU1RSX25zZW50ZXIgIjwxYShhbGwpRihuby1mb3JrKXQjPDEodGFyZ2V0KUMoY2dyb3VwKTo7IGkoaXBjKTo7IG0obW91bnQpOjsgbihuZXQpOjsgcChwaWQpOjsgdSh1dHMpOjsgVSh1c2VyKTo7ICIKKyNpZmRlZiBDTEVBTlVQX25zZW50ZXIKKyN1bmRlZiBDTEVBTlVQX25zZW50ZXIKKyN1bmRlZiBGT1JfbnNlbnRlcgorI3VuZGVmIEZMQUdfVQorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfQworI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfRgorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIG9kIGojdncjPDE9MTZOI3hzb2RjYkE6dCogaiN2dyM8MT0xNk4jeHNvZGNiQTp0KgorI3VuZGVmIE9QVFNUUl9vZAorI2RlZmluZSBPUFRTVFJfb2QgImojdncjPDE9MTZOI3hzb2RjYkE6dCoiCisjaWZkZWYgQ0xFQU5VUF9vZAorI3VuZGVmIENMRUFOVVBfb2QKKyN1bmRlZiBGT1Jfb2QKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX04KKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2oKKyNlbmRpZgorCisvLyBvbmVpdCAgIF48MW5jOnAzWyFwbl0KKyN1bmRlZiBPUFRTVFJfb25laXQKKyNkZWZpbmUgT1BUU1RSX29uZWl0ICJePDFuYzpwM1shcG5dIgorI2lmZGVmIENMRUFOVVBfb25laXQKKyN1bmRlZiBDTEVBTlVQX29uZWl0CisjdW5kZWYgRk9SX29uZWl0CisjdW5kZWYgRkxBR18zCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19uCisjZW5kaWYKKworLy8gb3BlbnZ0ICAgXjwxYyM8MT42M3N3CisjdW5kZWYgT1BUU1RSX29wZW52dAorI2RlZmluZSBPUFRTVFJfb3BlbnZ0ICJePDFjIzwxPjYzc3ciCisjaWZkZWYgQ0xFQU5VUF9vcGVudnQKKyN1bmRlZiBDTEVBTlVQX29wZW52dAorI3VuZGVmIEZPUl9vcGVudnQKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBwYXJ0cHJvYmUgICA8MQorI3VuZGVmIE9QVFNUUl9wYXJ0cHJvYmUKKyNkZWZpbmUgT1BUU1RSX3BhcnRwcm9iZSAiPDEiCisjaWZkZWYgQ0xFQU5VUF9wYXJ0cHJvYmUKKyN1bmRlZiBDTEVBTlVQX3BhcnRwcm9iZQorI3VuZGVmIEZPUl9wYXJ0cHJvYmUKKyNlbmRpZgorCisvLyBwYXNzd2QgICA+MWE6ZGx1CisjdW5kZWYgT1BUU1RSX3Bhc3N3ZAorI2RlZmluZSBPUFRTVFJfcGFzc3dkICI+MWE6ZGx1IgorI2lmZGVmIENMRUFOVVBfcGFzc3dkCisjdW5kZWYgQ0xFQU5VUF9wYXNzd2QKKyN1bmRlZiBGT1JfcGFzc3dkCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gcGFzdGUgZDpzIGQ6cworI3VuZGVmIE9QVFNUUl9wYXN0ZQorI2RlZmluZSBPUFRTVFJfcGFzdGUgImQ6cyIKKyNpZmRlZiBDTEVBTlVQX3Bhc3RlCisjdW5kZWYgQ0xFQU5VUF9wYXN0ZQorI3VuZGVmIEZPUl9wYXN0ZQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIHBhdGNoID4yKG5vLWJhY2t1cC1pZi1taXNtYXRjaCkoZHJ5LXJ1bilGI2cjZnVscCN2KHZlcmJvc2UpQGQ6aTpScyhxdWlldClbIXN2XSA+Mihuby1iYWNrdXAtaWYtbWlzbWF0Y2gpKGRyeS1ydW4pRiNnI2Z1bHAjdih2ZXJib3NlKUBkOmk6UnMocXVpZXQpWyFzdl0KKyN1bmRlZiBPUFRTVFJfcGF0Y2gKKyNkZWZpbmUgT1BUU1RSX3BhdGNoICI+Mihuby1iYWNrdXAtaWYtbWlzbWF0Y2gpKGRyeS1ydW4pRiNnI2Z1bHAjdih2ZXJib3NlKUBkOmk6UnMocXVpZXQpWyFzdl0iCisjaWZkZWYgQ0xFQU5VUF9wYXRjaAorI3VuZGVmIENMRUFOVVBfcGF0Y2gKKyN1bmRlZiBGT1JfcGF0Y2gKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX2RyeV9ydW4KKyN1bmRlZiBGTEFHX25vX2JhY2t1cF9pZl9taXNtYXRjaAorI2VuZGlmCisKKy8vIHBncmVwID9jbGQ6dSpVKnQqcypQKmcqRypmbm92eEw6Wy1ub10gP2NsZDp1KlUqdCpzKlAqZypHKmZub3Z4TDpbLW5vXQorI3VuZGVmIE9QVFNUUl9wZ3JlcAorI2RlZmluZSBPUFRTVFJfcGdyZXAgIj9jbGQ6dSpVKnQqcypQKmcqRypmbm92eEw6Wy1ub10iCisjaWZkZWYgQ0xFQU5VUF9wZ3JlcAorI3VuZGVmIENMRUFOVVBfcGdyZXAKKyN1bmRlZiBGT1JfcGdyZXAKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX0cKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBwaWRvZiAgIHNvOngKKyN1bmRlZiBPUFRTVFJfcGlkb2YKKyNkZWZpbmUgT1BUU1RSX3BpZG9mICJzbzp4IgorI2lmZGVmIENMRUFOVVBfcGlkb2YKKyN1bmRlZiBDTEVBTlVQX3BpZG9mCisjdW5kZWYgRk9SX3BpZG9mCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19zCisjZW5kaWYKKworLy8gcGluZyAgIDwxPjFtI3QjPDA+MjU1PTY0YyM8MD0zcyM8MD40MDY0PTU2aSVXIzwwPTN3IzwwcWY0Nkk6Wy00Nl0KKyN1bmRlZiBPUFRTVFJfcGluZworI2RlZmluZSBPUFRTVFJfcGluZyAiPDE+MW0jdCM8MD4yNTU9NjRjIzwwPTNzIzwwPjQwNjQ9NTZpJVcjPDA9M3cjPDBxZjQ2STpbLTQ2XSIKKyNpZmRlZiBDTEVBTlVQX3BpbmcKKyN1bmRlZiBDTEVBTlVQX3BpbmcKKyN1bmRlZiBGT1JfcGluZworI3VuZGVmIEZMQUdfSQorI3VuZGVmIEZMQUdfNgorI3VuZGVmIEZMQUdfNAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfVworI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfbQorI2VuZGlmCisKKy8vIHBpdm90X3Jvb3QgICA8Mj4yCisjdW5kZWYgT1BUU1RSX3Bpdm90X3Jvb3QKKyNkZWZpbmUgT1BUU1RSX3Bpdm90X3Jvb3QgIjwyPjIiCisjaWZkZWYgQ0xFQU5VUF9waXZvdF9yb290CisjdW5kZWYgQ0xFQU5VUF9waXZvdF9yb290CisjdW5kZWYgRk9SX3Bpdm90X3Jvb3QKKyNlbmRpZgorCisvLyBwa2lsbCA/VnUqVSp0KnMqUCpnKkcqZm5vdnhsOlstbm9dID9WdSpVKnQqcypQKmcqRypmbm92eGw6Wy1ub10KKyN1bmRlZiBPUFRTVFJfcGtpbGwKKyNkZWZpbmUgT1BUU1RSX3BraWxsICI/VnUqVSp0KnMqUCpnKkcqZm5vdnhsOlstbm9dIgorI2lmZGVmIENMRUFOVVBfcGtpbGwKKyN1bmRlZiBDTEVBTlVQX3BraWxsCisjdW5kZWYgRk9SX3BraWxsCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19HCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19WCisjZW5kaWYKKworLy8gcG1hcCAgIDwxcHF4CisjdW5kZWYgT1BUU1RSX3BtYXAKKyNkZWZpbmUgT1BUU1RSX3BtYXAgIjwxcHF4IgorI2lmZGVmIENMRUFOVVBfcG1hcAorI3VuZGVmIENMRUFOVVBfcG1hcAorI3VuZGVmIEZPUl9wbWFwCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19wCisjZW5kaWYKKworLy8gcHJpbnRlbnYgICAobnVsbCkwCisjdW5kZWYgT1BUU1RSX3ByaW50ZW52CisjZGVmaW5lIE9QVFNUUl9wcmludGVudiAiKG51bGwpMCIKKyNpZmRlZiBDTEVBTlVQX3ByaW50ZW52CisjdW5kZWYgQ0xFQU5VUF9wcmludGVudgorI3VuZGVmIEZPUl9wcmludGVudgorI3VuZGVmIEZMQUdfMAorI3VuZGVmIEZMQUdfbnVsbAorI2VuZGlmCisKKy8vIHByaW50ZiA8MT9eIDwxP14KKyN1bmRlZiBPUFRTVFJfcHJpbnRmCisjZGVmaW5lIE9QVFNUUl9wcmludGYgIjwxP14iCisjaWZkZWYgQ0xFQU5VUF9wcmludGYKKyN1bmRlZiBDTEVBTlVQX3ByaW50ZgorI3VuZGVmIEZPUl9wcmludGYKKyNlbmRpZgorCisvLyBwcyBrKHNvcnQpKlAocHBpZCkqYUFkZWZsTW5vKk8qcChwaWQpKnMqdCpUdSpVKmcqRyp3Wlshb2xdWytBZV1bIW9PXSBrKHNvcnQpKlAocHBpZCkqYUFkZWZsTW5vKk8qcChwaWQpKnMqdCpUdSpVKmcqRyp3Wlshb2xdWytBZV1bIW9PXQorI3VuZGVmIE9QVFNUUl9wcworI2RlZmluZSBPUFRTVFJfcHMgImsoc29ydCkqUChwcGlkKSphQWRlZmxNbm8qTypwKHBpZCkqcyp0KlR1KlUqZypHKndaWyFvbF1bK0FlXVshb09dIgorI2lmZGVmIENMRUFOVVBfcHMKKyN1bmRlZiBDTEVBTlVQX3BzCisjdW5kZWYgRk9SX3BzCisjdW5kZWYgRkxBR19aCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR19HCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19NCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19rCisjZW5kaWYKKworLy8gcHdkID4wTFBbLUxQXSA+MExQWy1MUF0KKyN1bmRlZiBPUFRTVFJfcHdkCisjZGVmaW5lIE9QVFNUUl9wd2QgIj4wTFBbLUxQXSIKKyNpZmRlZiBDTEVBTlVQX3B3ZAorI3VuZGVmIENMRUFOVVBfcHdkCisjdW5kZWYgRk9SX3B3ZAorI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfTAorI2VuZGlmCisKKy8vIHB3ZHggICA8MWEKKyN1bmRlZiBPUFRTVFJfcHdkeAorI2RlZmluZSBPUFRTVFJfcHdkeCAiPDFhIgorI2lmZGVmIENMRUFOVVBfcHdkeAorI3VuZGVmIENMRUFOVVBfcHdkeAorI3VuZGVmIEZPUl9wd2R4CisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gcHdnZW4gICA+MnIocmVtb3ZlKTpjKGNhcGl0YWxpemUpbihudW1lcmFscyl5KHN5bWJvbHMpcyhzZWN1cmUpQihhbWJpZ3VvdXMpaChoZWxwKUMxdkEobm8tY2FwaXRhbGl6ZSkwKG5vLW51bWVyYWxzKVstY0FdWy1uMF1bLUMxXQorI3VuZGVmIE9QVFNUUl9wd2dlbgorI2RlZmluZSBPUFRTVFJfcHdnZW4gIj4ycihyZW1vdmUpOmMoY2FwaXRhbGl6ZSluKG51bWVyYWxzKXkoc3ltYm9scylzKHNlY3VyZSlCKGFtYmlndW91cyloKGhlbHApQzF2QShuby1jYXBpdGFsaXplKTAobm8tbnVtZXJhbHMpWy1jQV1bLW4wXVstQzFdIgorI2lmZGVmIENMRUFOVVBfcHdnZW4KKyN1bmRlZiBDTEVBTlVQX3B3Z2VuCisjdW5kZWYgRk9SX3B3Z2VuCisjdW5kZWYgRkxBR18wCisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR18xCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19CCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR195CisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19yCisjZW5kaWYKKworLy8gcmVhZGFoZWFkICAgIAorI3VuZGVmIE9QVFNUUl9yZWFkYWhlYWQKKyNkZWZpbmUgT1BUU1RSX3JlYWRhaGVhZCAwCisjaWZkZWYgQ0xFQU5VUF9yZWFkYWhlYWQKKyN1bmRlZiBDTEVBTlVQX3JlYWRhaGVhZAorI3VuZGVmIEZPUl9yZWFkYWhlYWQKKyNlbmRpZgorCisvLyByZWFkZWxmICAgPDEoZHluLXN5bXMpQWFkZWhsbnA6U3NXeDoKKyN1bmRlZiBPUFRTVFJfcmVhZGVsZgorI2RlZmluZSBPUFRTVFJfcmVhZGVsZiAiPDEoZHluLXN5bXMpQWFkZWhsbnA6U3NXeDoiCisjaWZkZWYgQ0xFQU5VUF9yZWFkZWxmCisjdW5kZWYgQ0xFQU5VUF9yZWFkZWxmCisjdW5kZWYgRk9SX3JlYWRlbGYKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX1cKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX2R5bl9zeW1zCisjZW5kaWYKKworLy8gcmVhZGxpbmsgPDF2bmYoY2Fub25pY2FsaXplKWVtcXpbLW1lZl1bLXF2XSA8MXZuZihjYW5vbmljYWxpemUpZW1xelstbWVmXVstcXZdCisjdW5kZWYgT1BUU1RSX3JlYWRsaW5rCisjZGVmaW5lIE9QVFNUUl9yZWFkbGluayAiPDF2bmYoY2Fub25pY2FsaXplKWVtcXpbLW1lZl1bLXF2XSIKKyNpZmRlZiBDTEVBTlVQX3JlYWRsaW5rCisjdW5kZWYgQ0xFQU5VUF9yZWFkbGluaworI3VuZGVmIEZPUl9yZWFkbGluaworI3VuZGVmIEZMQUdfegorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfdgorI2VuZGlmCisKKy8vIHJlYWxwYXRoIDwxKHJlbGF0aXZlLWJhc2UpOlIocmVsYXRpdmUtdG8pOnMobm8tc3ltbGlua3MpTFBlbXF6Wy1Qc11bLUxQXVstbWVdIDwxKHJlbGF0aXZlLWJhc2UpOlIocmVsYXRpdmUtdG8pOnMobm8tc3ltbGlua3MpTFBlbXF6Wy1Qc11bLUxQXVstbWVdCisjdW5kZWYgT1BUU1RSX3JlYWxwYXRoCisjZGVmaW5lIE9QVFNUUl9yZWFscGF0aCAiPDEocmVsYXRpdmUtYmFzZSk6UihyZWxhdGl2ZS10byk6cyhuby1zeW1saW5rcylMUGVtcXpbLVBzXVstTFBdWy1tZV0iCisjaWZkZWYgQ0xFQU5VUF9yZWFscGF0aAorI3VuZGVmIENMRUFOVVBfcmVhbHBhdGgKKyN1bmRlZiBGT1JfcmVhbHBhdGgKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX3JlbGF0aXZlX2Jhc2UKKyNlbmRpZgorCisvLyByZWJvb3QgICBkOmZuCisjdW5kZWYgT1BUU1RSX3JlYm9vdAorI2RlZmluZSBPUFRTVFJfcmVib290ICJkOmZuIgorI2lmZGVmIENMRUFOVVBfcmVib290CisjdW5kZWYgQ0xFQU5VUF9yZWJvb3QKKyN1bmRlZiBGT1JfcmVib290CisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19kCisjZW5kaWYKKworLy8gcmVuaWNlICAgPDFncHVuI3wKKyN1bmRlZiBPUFRTVFJfcmVuaWNlCisjZGVmaW5lIE9QVFNUUl9yZW5pY2UgIjwxZ3B1biN8IgorI2lmZGVmIENMRUFOVVBfcmVuaWNlCisjdW5kZWYgQ0xFQU5VUF9yZW5pY2UKKyN1bmRlZiBGT1JfcmVuaWNlCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19nCisjZW5kaWYKKworLy8gcmVzZXQgICAgCisjdW5kZWYgT1BUU1RSX3Jlc2V0CisjZGVmaW5lIE9QVFNUUl9yZXNldCAwCisjaWZkZWYgQ0xFQU5VUF9yZXNldAorI3VuZGVmIENMRUFOVVBfcmVzZXQKKyN1bmRlZiBGT1JfcmVzZXQKKyNlbmRpZgorCisvLyByZXN0b3JlY29uICAgPDFERm5ScnYKKyN1bmRlZiBPUFRTVFJfcmVzdG9yZWNvbgorI2RlZmluZSBPUFRTVFJfcmVzdG9yZWNvbiAiPDFERm5ScnYiCisjaWZkZWYgQ0xFQU5VUF9yZXN0b3JlY29uCisjdW5kZWYgQ0xFQU5VUF9yZXN0b3JlY29uCisjdW5kZWYgRk9SX3Jlc3RvcmVjb24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX0QKKyNlbmRpZgorCisvLyByZXYgICAgCisjdW5kZWYgT1BUU1RSX3JldgorI2RlZmluZSBPUFRTVFJfcmV2IDAKKyNpZmRlZiBDTEVBTlVQX3JldgorI3VuZGVmIENMRUFOVVBfcmV2CisjdW5kZWYgRk9SX3JldgorI2VuZGlmCisKKy8vIHJma2lsbCAgIDwxPjIKKyN1bmRlZiBPUFRTVFJfcmZraWxsCisjZGVmaW5lIE9QVFNUUl9yZmtpbGwgIjwxPjIiCisjaWZkZWYgQ0xFQU5VUF9yZmtpbGwKKyN1bmRlZiBDTEVBTlVQX3Jma2lsbAorI3VuZGVmIEZPUl9yZmtpbGwKKyNlbmRpZgorCisvLyBybSBmKGZvcmNlKWlScnZbLWZpXSBmKGZvcmNlKWlScnZbLWZpXQorI3VuZGVmIE9QVFNUUl9ybQorI2RlZmluZSBPUFRTVFJfcm0gImYoZm9yY2UpaVJydlstZmldIgorI2lmZGVmIENMRUFOVVBfcm0KKyN1bmRlZiBDTEVBTlVQX3JtCisjdW5kZWYgRk9SX3JtCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19mCisjZW5kaWYKKworLy8gcm1kaXIgPDEoaWdub3JlLWZhaWwtb24tbm9uLWVtcHR5KXAocGFyZW50cykgPDEoaWdub3JlLWZhaWwtb24tbm9uLWVtcHR5KXAocGFyZW50cykKKyN1bmRlZiBPUFRTVFJfcm1kaXIKKyNkZWZpbmUgT1BUU1RSX3JtZGlyICI8MShpZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkpcChwYXJlbnRzKSIKKyNpZmRlZiBDTEVBTlVQX3JtZGlyCisjdW5kZWYgQ0xFQU5VUF9ybWRpcgorI3VuZGVmIEZPUl9ybWRpcgorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfaWdub3JlX2ZhaWxfb25fbm9uX2VtcHR5CisjZW5kaWYKKworLy8gcm1tb2QgICA8MXdmCisjdW5kZWYgT1BUU1RSX3JtbW9kCisjZGVmaW5lIE9QVFNUUl9ybW1vZCAiPDF3ZiIKKyNpZmRlZiBDTEVBTlVQX3JtbW9kCisjdW5kZWYgQ0xFQU5VUF9ybW1vZAorI3VuZGVmIEZPUl9ybW1vZAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfdworI2VuZGlmCisKKy8vIHJvdXRlICAgP25lQToKKyN1bmRlZiBPUFRTVFJfcm91dGUKKyNkZWZpbmUgT1BUU1RSX3JvdXRlICI/bmVBOiIKKyNpZmRlZiBDTEVBTlVQX3JvdXRlCisjdW5kZWYgQ0xFQU5VUF9yb3V0ZQorI3VuZGVmIEZPUl9yb3V0ZQorI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIHJ0Y3dha2UgICAobGlzdC1tb2Rlcyk7KGF1dG8pYShkZXZpY2UpZDoobG9jYWwpbChtb2RlKW06KHNlY29uZHMpcyModGltZSl0Iyh1dGMpdSh2ZXJib3NlKXZbIWFsdV0KKyN1bmRlZiBPUFRTVFJfcnRjd2FrZQorI2RlZmluZSBPUFRTVFJfcnRjd2FrZSAiKGxpc3QtbW9kZXMpOyhhdXRvKWEoZGV2aWNlKWQ6KGxvY2FsKWwobW9kZSltOihzZWNvbmRzKXMjKHRpbWUpdCModXRjKXUodmVyYm9zZSl2WyFhbHVdIgorI2lmZGVmIENMRUFOVVBfcnRjd2FrZQorI3VuZGVmIENMRUFOVVBfcnRjd2FrZQorI3VuZGVmIEZPUl9ydGN3YWtlCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19hdXRvCisjdW5kZWYgRkxBR19saXN0X21vZGVzCisjZW5kaWYKKworLy8gcnVuY29uICAgXjwyCisjdW5kZWYgT1BUU1RSX3J1bmNvbgorI2RlZmluZSBPUFRTVFJfcnVuY29uICJePDIiCisjaWZkZWYgQ0xFQU5VUF9ydW5jb24KKyN1bmRlZiBDTEVBTlVQX3J1bmNvbgorI3VuZGVmIEZPUl9ydW5jb24KKyNlbmRpZgorCisvLyBzZWQgKGhlbHApKHZlcnNpb24pKHRhcnhmb3JtKWUqZippOjtuRXJ6KG51bGwtZGF0YSlzWytFcl0gKGhlbHApKHZlcnNpb24pKHRhcnhmb3JtKWUqZippOjtuRXJ6KG51bGwtZGF0YSlzWytFcl0KKyN1bmRlZiBPUFRTVFJfc2VkCisjZGVmaW5lIE9QVFNUUl9zZWQgIihoZWxwKSh2ZXJzaW9uKSh0YXJ4Zm9ybSllKmYqaTo7bkVyeihudWxsLWRhdGEpc1srRXJdIgorI2lmZGVmIENMRUFOVVBfc2VkCisjdW5kZWYgQ0xFQU5VUF9zZWQKKyN1bmRlZiBGT1Jfc2VkCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR196CisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19FCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR190YXJ4Zm9ybQorI3VuZGVmIEZMQUdfdmVyc2lvbgorI3VuZGVmIEZMQUdfaGVscAorI2VuZGlmCisKKy8vIHNlbmRldmVudCAgIDw0PjQKKyN1bmRlZiBPUFRTVFJfc2VuZGV2ZW50CisjZGVmaW5lIE9QVFNUUl9zZW5kZXZlbnQgIjw0PjQiCisjaWZkZWYgQ0xFQU5VUF9zZW5kZXZlbnQKKyN1bmRlZiBDTEVBTlVQX3NlbmRldmVudAorI3VuZGVmIEZPUl9zZW5kZXZlbnQKKyNlbmRpZgorCisvLyBzZXEgPDE+Mz9mOnM6d1shZnddIDwxPjM/ZjpzOndbIWZ3XQorI3VuZGVmIE9QVFNUUl9zZXEKKyNkZWZpbmUgT1BUU1RSX3NlcSAiPDE+Mz9mOnM6d1shZnddIgorI2lmZGVmIENMRUFOVVBfc2VxCisjdW5kZWYgQ0xFQU5VUF9zZXEKKyN1bmRlZiBGT1Jfc2VxCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19mCisjZW5kaWYKKworLy8gc2V0ICAgIAorI3VuZGVmIE9QVFNUUl9zZXQKKyNkZWZpbmUgT1BUU1RSX3NldCAwCisjaWZkZWYgQ0xFQU5VUF9zZXQKKyN1bmRlZiBDTEVBTlVQX3NldAorI3VuZGVmIEZPUl9zZXQKKyNlbmRpZgorCisvLyBzZXRlbmZvcmNlICAgPDE+MQorI3VuZGVmIE9QVFNUUl9zZXRlbmZvcmNlCisjZGVmaW5lIE9QVFNUUl9zZXRlbmZvcmNlICI8MT4xIgorI2lmZGVmIENMRUFOVVBfc2V0ZW5mb3JjZQorI3VuZGVmIENMRUFOVVBfc2V0ZW5mb3JjZQorI3VuZGVmIEZPUl9zZXRlbmZvcmNlCisjZW5kaWYKKworLy8gc2V0ZmF0dHIgICBobjp8djp4OnxbIXh2XQorI3VuZGVmIE9QVFNUUl9zZXRmYXR0cgorI2RlZmluZSBPUFRTVFJfc2V0ZmF0dHIgImhuOnx2Ong6fFsheHZdIgorI2lmZGVmIENMRUFOVVBfc2V0ZmF0dHIKKyN1bmRlZiBDTEVBTlVQX3NldGZhdHRyCisjdW5kZWYgRk9SX3NldGZhdHRyCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19oCisjZW5kaWYKKworLy8gc2V0c2lkIF48MXdjQGRbIWRjXSBePDF3Y0BkWyFkY10KKyN1bmRlZiBPUFRTVFJfc2V0c2lkCisjZGVmaW5lIE9QVFNUUl9zZXRzaWQgIl48MXdjQGRbIWRjXSIKKyNpZmRlZiBDTEVBTlVQX3NldHNpZAorI3VuZGVmIENMRUFOVVBfc2V0c2lkCisjdW5kZWYgRk9SX3NldHNpZAorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfdworI2VuZGlmCisKKy8vIHNoICAgMF4obm9lZGl0aW5nKShub3Byb2ZpbGUpKG5vcmMpc2M6aQorI3VuZGVmIE9QVFNUUl9zaAorI2RlZmluZSBPUFRTVFJfc2ggIjBeKG5vZWRpdGluZykobm9wcm9maWxlKShub3JjKXNjOmkiCisjaWZkZWYgQ0xFQU5VUF9zaAorI3VuZGVmIENMRUFOVVBfc2gKKyN1bmRlZiBGT1Jfc2gKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX25vcmMKKyN1bmRlZiBGTEFHX25vcHJvZmlsZQorI3VuZGVmIEZMQUdfbm9lZGl0aW5nCisjZW5kaWYKKworLy8gc2hhM3N1bSAgIGJTYSM8MTI4PjUxMj0yMjQKKyN1bmRlZiBPUFRTVFJfc2hhM3N1bQorI2RlZmluZSBPUFRTVFJfc2hhM3N1bSAiYlNhIzwxMjg+NTEyPTIyNCIKKyNpZmRlZiBDTEVBTlVQX3NoYTNzdW0KKyN1bmRlZiBDTEVBTlVQX3NoYTNzdW0KKyN1bmRlZiBGT1Jfc2hhM3N1bQorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIHNoaWZ0ICAgPjEKKyN1bmRlZiBPUFRTVFJfc2hpZnQKKyNkZWZpbmUgT1BUU1RSX3NoaWZ0ICI+MSIKKyNpZmRlZiBDTEVBTlVQX3NoaWZ0CisjdW5kZWYgQ0xFQU5VUF9zaGlmdAorI3VuZGVmIEZPUl9zaGlmdAorI2VuZGlmCisKKy8vIHNocmVkICAgPDF6eHVzIzwxbiM8MW8jPDBmCisjdW5kZWYgT1BUU1RSX3NocmVkCisjZGVmaW5lIE9QVFNUUl9zaHJlZCAiPDF6eHVzIzwxbiM8MW8jPDBmIgorI2lmZGVmIENMRUFOVVBfc2hyZWQKKyN1bmRlZiBDTEVBTlVQX3NocmVkCisjdW5kZWYgRk9SX3NocmVkCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR196CisjZW5kaWYKKworLy8gc2h1ZiAgIHplbiM8MAorI3VuZGVmIE9QVFNUUl9zaHVmCisjZGVmaW5lIE9QVFNUUl9zaHVmICJ6ZW4jPDAiCisjaWZkZWYgQ0xFQU5VUF9zaHVmCisjdW5kZWYgQ0xFQU5VUF9zaHVmCisjdW5kZWYgRk9SX3NodWYKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX3oKKyNlbmRpZgorCisvLyBza2VsZXRvbiAgICh3YWxydXMpKGJsdWJiZXIpOjsoYWxzbyk6aChobG9uZyk6OyBnKGdsb25nKTogZihsb25nZik6O2VAZCpjI2I6YQorI3VuZGVmIE9QVFNUUl9za2VsZXRvbgorI2RlZmluZSBPUFRTVFJfc2tlbGV0b24gIih3YWxydXMpKGJsdWJiZXIpOjsoYWxzbyk6aChobG9uZyk6OyBnKGdsb25nKTogZihsb25nZik6O2VAZCpjI2I6YSIKKyNpZmRlZiBDTEVBTlVQX3NrZWxldG9uCisjdW5kZWYgQ0xFQU5VUF9za2VsZXRvbgorI3VuZGVmIEZPUl9za2VsZXRvbgorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfYWxzbworI3VuZGVmIEZMQUdfYmx1YmJlcgorI3VuZGVmIEZMQUdfd2FscnVzCisjZW5kaWYKKworLy8gc2tlbGV0b25fYWxpYXMgICBiI2RxCisjdW5kZWYgT1BUU1RSX3NrZWxldG9uX2FsaWFzCisjZGVmaW5lIE9QVFNUUl9za2VsZXRvbl9hbGlhcyAiYiNkcSIKKyNpZmRlZiBDTEVBTlVQX3NrZWxldG9uX2FsaWFzCisjdW5kZWYgQ0xFQU5VUF9za2VsZXRvbl9hbGlhcworI3VuZGVmIEZPUl9za2VsZXRvbl9hbGlhcworI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIHNsZWVwIDwxIDwxCisjdW5kZWYgT1BUU1RSX3NsZWVwCisjZGVmaW5lIE9QVFNUUl9zbGVlcCAiPDEiCisjaWZkZWYgQ0xFQU5VUF9zbGVlcAorI3VuZGVmIENMRUFOVVBfc2xlZXAKKyN1bmRlZiBGT1Jfc2xlZXAKKyNlbmRpZgorCisvLyBzbnRwICAgPjFNIDptIDpTcDp0IzwwPTE+MTZhc2REcXIjPDQ+MTc9MTBbIWFzXQorI3VuZGVmIE9QVFNUUl9zbnRwCisjZGVmaW5lIE9QVFNUUl9zbnRwICI+MU0gOm0gOlNwOnQjPDA9MT4xNmFzZERxciM8ND4xNz0xMFshYXNdIgorI2lmZGVmIENMRUFOVVBfc250cAorI3VuZGVmIENMRUFOVVBfc250cAorI3VuZGVmIEZPUl9zbnRwCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19NCisjZW5kaWYKKworLy8gc29ydCBnUzpUOm1vOmsqdDp4VmJNQ2NzemRmaXJ1biBnUzpUOm1vOmsqdDp4VmJNQ2NzemRmaXJ1bgorI3VuZGVmIE9QVFNUUl9zb3J0CisjZGVmaW5lIE9QVFNUUl9zb3J0ICJnUzpUOm1vOmsqdDp4VmJNQ2NzemRmaXJ1biIKKyNpZmRlZiBDTEVBTlVQX3NvcnQKKyN1bmRlZiBDTEVBTlVQX3NvcnQKKyN1bmRlZiBGT1Jfc29ydAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfegorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfQworI3VuZGVmIEZMQUdfTQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfVgorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfVAorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfZworI2VuZGlmCisKKy8vIHNvdXJjZSAgIDwxCisjdW5kZWYgT1BUU1RSX3NvdXJjZQorI2RlZmluZSBPUFRTVFJfc291cmNlICI8MSIKKyNpZmRlZiBDTEVBTlVQX3NvdXJjZQorI3VuZGVmIENMRUFOVVBfc291cmNlCisjdW5kZWYgRk9SX3NvdXJjZQorI2VuZGlmCisKKy8vIHNwbGl0ICAgPjJhIzwxPTI+OWIjPDFsIzwxbiM8MVshYmxdWyFibl1bIWxuXQorI3VuZGVmIE9QVFNUUl9zcGxpdAorI2RlZmluZSBPUFRTVFJfc3BsaXQgIj4yYSM8MT0yPjliIzwxbCM8MW4jPDFbIWJsXVshYm5dWyFsbl0iCisjaWZkZWYgQ0xFQU5VUF9zcGxpdAorI3VuZGVmIENMRUFOVVBfc3BsaXQKKyN1bmRlZiBGT1Jfc3BsaXQKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBzdGF0IDwxYzooZm9ybWF0KWZMdCA8MWM6KGZvcm1hdClmTHQKKyN1bmRlZiBPUFRTVFJfc3RhdAorI2RlZmluZSBPUFRTVFJfc3RhdCAiPDFjOihmb3JtYXQpZkx0IgorI2lmZGVmIENMRUFOVVBfc3RhdAorI3VuZGVmIENMRUFOVVBfc3RhdAorI3VuZGVmIEZPUl9zdGF0CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gc3RyYWNlICAgXnAjcyN2CisjdW5kZWYgT1BUU1RSX3N0cmFjZQorI2RlZmluZSBPUFRTVFJfc3RyYWNlICJecCNzI3YiCisjaWZkZWYgQ0xFQU5VUF9zdHJhY2UKKyN1bmRlZiBDTEVBTlVQX3N0cmFjZQorI3VuZGVmIEZPUl9zdHJhY2UKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyBzdHJpbmdzICAgdDphbiM9NDwxZm8KKyN1bmRlZiBPUFRTVFJfc3RyaW5ncworI2RlZmluZSBPUFRTVFJfc3RyaW5ncyAidDphbiM9NDwxZm8iCisjaWZkZWYgQ0xFQU5VUF9zdHJpbmdzCisjdW5kZWYgQ0xFQU5VUF9zdHJpbmdzCisjdW5kZWYgRk9SX3N0cmluZ3MKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX3QKKyNlbmRpZgorCisvLyBzdHR5ICAgP2FGOmdbIWFnXQorI3VuZGVmIE9QVFNUUl9zdHR5CisjZGVmaW5lIE9QVFNUUl9zdHR5ICI/YUY6Z1shYWddIgorI2lmZGVmIENMRUFOVVBfc3R0eQorI3VuZGVmIENMRUFOVVBfc3R0eQorI3VuZGVmIEZPUl9zdHR5CisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gc3UgICBebG1wdTpnOmM6czpbIWxtcF0KKyN1bmRlZiBPUFRTVFJfc3UKKyNkZWZpbmUgT1BUU1RSX3N1ICJebG1wdTpnOmM6czpbIWxtcF0iCisjaWZkZWYgQ0xFQU5VUF9zdQorI3VuZGVmIENMRUFOVVBfc3UKKyN1bmRlZiBGT1Jfc3UKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBzdWxvZ2luICAgdCM8MD0wCisjdW5kZWYgT1BUU1RSX3N1bG9naW4KKyNkZWZpbmUgT1BUU1RSX3N1bG9naW4gInQjPDA9MCIKKyNpZmRlZiBDTEVBTlVQX3N1bG9naW4KKyN1bmRlZiBDTEVBTlVQX3N1bG9naW4KKyN1bmRlZiBGT1Jfc3Vsb2dpbgorI3VuZGVmIEZMQUdfdAorI2VuZGlmCisKKy8vIHN3YXBvZmYgICA8MT4xYXYKKyN1bmRlZiBPUFRTVFJfc3dhcG9mZgorI2RlZmluZSBPUFRTVFJfc3dhcG9mZiAiPDE+MWF2IgorI2lmZGVmIENMRUFOVVBfc3dhcG9mZgorI3VuZGVmIENMRUFOVVBfc3dhcG9mZgorI3VuZGVmIEZPUl9zd2Fwb2ZmCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gc3dhcG9uICAgPDE+MXAjPDA+MzI3NjdkCisjdW5kZWYgT1BUU1RSX3N3YXBvbgorI2RlZmluZSBPUFRTVFJfc3dhcG9uICI8MT4xcCM8MD4zMjc2N2QiCisjaWZkZWYgQ0xFQU5VUF9zd2Fwb24KKyN1bmRlZiBDTEVBTlVQX3N3YXBvbgorI3VuZGVmIEZPUl9zd2Fwb24KKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyBzd2l0Y2hfcm9vdCAgIDwyYzpoCisjdW5kZWYgT1BUU1RSX3N3aXRjaF9yb290CisjZGVmaW5lIE9QVFNUUl9zd2l0Y2hfcm9vdCAiPDJjOmgiCisjaWZkZWYgQ0xFQU5VUF9zd2l0Y2hfcm9vdAorI3VuZGVmIENMRUFOVVBfc3dpdGNoX3Jvb3QKKyN1bmRlZiBGT1Jfc3dpdGNoX3Jvb3QKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBzeW5jICAgIAorI3VuZGVmIE9QVFNUUl9zeW5jCisjZGVmaW5lIE9QVFNUUl9zeW5jIDAKKyNpZmRlZiBDTEVBTlVQX3N5bmMKKyN1bmRlZiBDTEVBTlVQX3N5bmMKKyN1bmRlZiBGT1Jfc3luYworI2VuZGlmCisKKy8vIHN5c2N0bCAgIF5uZU5xd3BhQVshYXBdWyFhcV1bIWF3XVsrYUFdCisjdW5kZWYgT1BUU1RSX3N5c2N0bAorI2RlZmluZSBPUFRTVFJfc3lzY3RsICJebmVOcXdwYUFbIWFwXVshYXFdWyFhd11bK2FBXSIKKyNpZmRlZiBDTEVBTlVQX3N5c2N0bAorI3VuZGVmIENMRUFOVVBfc3lzY3RsCisjdW5kZWYgRk9SX3N5c2N0bAorI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfTgorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIHN5c2xvZ2QgICA+MGwjPDE+OD04UjpiIzwwPjk5PTFzIzwwPTIwMG0jPDA+NzE1ODI3ODc9MjBPOnA6ZjphOm5TS0xECisjdW5kZWYgT1BUU1RSX3N5c2xvZ2QKKyNkZWZpbmUgT1BUU1RSX3N5c2xvZ2QgIj4wbCM8MT44PThSOmIjPDA+OTk9MXMjPDA9MjAwbSM8MD43MTU4Mjc4Nz0yME86cDpmOmE6blNLTEQiCisjaWZkZWYgQ0xFQU5VUF9zeXNsb2dkCisjdW5kZWYgQ0xFQU5VUF9zeXNsb2dkCisjdW5kZWYgRk9SX3N5c2xvZ2QKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX0sKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX08KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyB0YWMgICAgCisjdW5kZWYgT1BUU1RSX3RhYworI2RlZmluZSBPUFRTVFJfdGFjIDAKKyNpZmRlZiBDTEVBTlVQX3RhYworI3VuZGVmIENMRUFOVVBfdGFjCisjdW5kZWYgRk9SX3RhYworI2VuZGlmCisKKy8vIHRhaWwgP2ZGczpjKGJ5dGVzKS1uKGxpbmVzKS1bLWNuXVstZkZdID9mRnM6YyhieXRlcyktbihsaW5lcyktWy1jbl1bLWZGXQorI3VuZGVmIE9QVFNUUl90YWlsCisjZGVmaW5lIE9QVFNUUl90YWlsICI/ZkZzOmMoYnl0ZXMpLW4obGluZXMpLVstY25dWy1mRl0iCisjaWZkZWYgQ0xFQU5VUF90YWlsCisjdW5kZWYgQ0xFQU5VUF90YWlsCisjdW5kZWYgRk9SX3RhaWwKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyB0YXIgJihvbmUtZmlsZS1zeXN0ZW0pKG5vLWlnbm9yZS1jYXNlKShpZ25vcmUtY2FzZSkobm8tYW5jaG9yZWQpKGFuY2hvcmVkKShuby13aWxkY2FyZHMpKHdpbGRjYXJkcykobm8td2lsZGNhcmRzLW1hdGNoLXNsYXNoKSh3aWxkY2FyZHMtbWF0Y2gtc2xhc2gpKHNob3ctdHJhbnNmb3JtZWQtbmFtZXMpKHNlbGludXgpKHJlc3RyaWN0KShmdWxsLXRpbWUpKG5vLXJlY3Vyc2lvbikobnVsbCkobnVtZXJpYy1vd25lcikobm8tc2FtZS1wZXJtaXNzaW9ucykob3ZlcndyaXRlKShleGNsdWRlKSooc29ydCk7Oihtb2RlKToobXRpbWUpOihncm91cCk6KG93bmVyKToodG8tY29tbWFuZCk6fihzdHJpcC1jb21wb25lbnRzKShzdHJpcCkjfih0cmFuc2Zvcm0pKHhmb3JtKSpvKG5vLXNhbWUtb3duZXIpcChzYW1lLXBlcm1pc3Npb25zKWsoa2VlcC1vbGQpYyhjcmVhdGUpfGgoZGVyZWZlcmVuY2UpeChleHRyYWN0KXx0KGxpc3QpfHYodmVyYm9zZSlKKHh6KWooYnppcDIpeihnemlwKVMoc3BhcnNlKU8odG8tc3Rkb3V0KVAoYWJzb2x1dGUtbmFtZXMpbSh0b3VjaClYKGV4Y2x1ZGUtZnJvbSkqVChmaWxlcy1mcm9tKSpJKHVzZS1jb21wcmVzcy1wcm9ncmFtKTpDKGRpcmVjdG9yeSk6ZihmaWxlKTphc1shdHhjXVshanpKYV0gJihvbmUtZmlsZS1zeXN0ZW0pKG5vLWlnbm9yZS1jYXNlKShpZ25vcmUtY2FzZSkobm8tYW5jaG9yZWQpKGFuY2hvcmVkKShuby13aWxkY2FyZHMpKHdpbGRjYXJkcykobm8td2lsZGNhcmRzLW1hdGNoLXNsYXNoKSh3aWxkY2FyZHMtbWF0Y2gtc2xhc2gpKHNob3ctdHJhbnNmb3JtZWQtbmFtZXMpKHNlbGludXgpKHJlc3RyaWN0KShmdWxsLXRpbWUpKG5vLXJlY3Vyc2lvbikobnVsbCkobnVtZXJpYy1vd25lcikobm8tc2FtZS1wZXJtaXNzaW9ucykob3ZlcndyaXRlKShleGNsdWRlKSooc29ydCk7Oihtb2RlKToobXRpbWUpOihncm91cCk6KG93bmVyKToodG8tY29tbWFuZCk6fihzdHJpcC1jb21wb25lbnRzKShzdHJpcCkjfih0cmFuc2Zvcm0pKHhmb3JtKSpvKG5vLXNhbWUtb3duZXIpcChzYW1lLXBlcm1pc3Npb25zKWsoa2VlcC1vbGQpYyhjcmVhdGUpfGgoZGVyZWZlcmVuY2UpeChleHRyYWN0KXx0KGxpc3QpfHYodmVyYm9zZSlKKHh6KWooYnppcDIpeihnemlwKVMoc3BhcnNlKU8odG8tc3Rkb3V0KVAoYWJzb2x1dGUtbmFtZXMpbSh0b3VjaClYKGV4Y2x1ZGUtZnJvbSkqVChmaWxlcy1mcm9tKSpJKHVzZS1jb21wcmVzcy1wcm9ncmFtKTpDKGRpcmVjdG9yeSk6ZihmaWxlKTphc1shdHhjXVshanpKYV0KKyN1bmRlZiBPUFRTVFJfdGFyCisjZGVmaW5lIE9QVFNUUl90YXIgIiYob25lLWZpbGUtc3lzdGVtKShuby1pZ25vcmUtY2FzZSkoaWdub3JlLWNhc2UpKG5vLWFuY2hvcmVkKShhbmNob3JlZCkobm8td2lsZGNhcmRzKSh3aWxkY2FyZHMpKG5vLXdpbGRjYXJkcy1tYXRjaC1zbGFzaCkod2lsZGNhcmRzLW1hdGNoLXNsYXNoKShzaG93LXRyYW5zZm9ybWVkLW5hbWVzKShzZWxpbnV4KShyZXN0cmljdCkoZnVsbC10aW1lKShuby1yZWN1cnNpb24pKG51bGwpKG51bWVyaWMtb3duZXIpKG5vLXNhbWUtcGVybWlzc2lvbnMpKG92ZXJ3cml0ZSkoZXhjbHVkZSkqKHNvcnQpOzoobW9kZSk6KG10aW1lKTooZ3JvdXApOihvd25lcik6KHRvLWNvbW1hbmQpOn4oc3RyaXAtY29tcG9uZW50cykoc3RyaXApI34odHJhbnNmb3JtKSh4Zm9ybSkqbyhuby1zYW1lLW93bmVyKXAoc2FtZS1wZXJtaXNzaW9ucylrKGtlZXAtb2xkKWMoY3JlYXRlKXxoKGRlcmVmZXJlbmNlKXgoZXh0cmFjdCl8dChsaXN0KXx2KHZlcmJvc2UpSih4eilqKGJ6aXAyKXooZ3ppcClTKHNwYXJzZSlPKHRvLXN0ZG91dClQKGFic29sdXRlLW5hbWVzKW0odG91Y2gpWChleGNsdWRlLWZyb20pKlQoZmlsZXMtZnJvbSkqSSh1c2UtY29tcHJlc3MtcHJvZ3JhbSk6QyhkaXJlY3RvcnkpOmYoZmlsZSk6YXNbIXR4Y11bIWp6SmFdIgorI2lmZGVmIENMRUFOVVBfdGFyCisjdW5kZWYgQ0xFQU5VUF90YXIKKyN1bmRlZiBGT1JfdGFyCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19JCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19YCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR196CisjdW5kZWYgRkxBR19qCisjdW5kZWYgRkxBR19KCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR194Zm9ybQorI3VuZGVmIEZMQUdfc3RyaXAKKyN1bmRlZiBGTEFHX3RvX2NvbW1hbmQKKyN1bmRlZiBGTEFHX293bmVyCisjdW5kZWYgRkxBR19ncm91cAorI3VuZGVmIEZMQUdfbXRpbWUKKyN1bmRlZiBGTEFHX21vZGUKKyN1bmRlZiBGTEFHX3NvcnQKKyN1bmRlZiBGTEFHX2V4Y2x1ZGUKKyN1bmRlZiBGTEFHX292ZXJ3cml0ZQorI3VuZGVmIEZMQUdfbm9fc2FtZV9wZXJtaXNzaW9ucworI3VuZGVmIEZMQUdfbnVtZXJpY19vd25lcgorI3VuZGVmIEZMQUdfbnVsbAorI3VuZGVmIEZMQUdfbm9fcmVjdXJzaW9uCisjdW5kZWYgRkxBR19mdWxsX3RpbWUKKyN1bmRlZiBGTEFHX3Jlc3RyaWN0CisjdW5kZWYgRkxBR19zZWxpbnV4CisjdW5kZWYgRkxBR19zaG93X3RyYW5zZm9ybWVkX25hbWVzCisjdW5kZWYgRkxBR193aWxkY2FyZHNfbWF0Y2hfc2xhc2gKKyN1bmRlZiBGTEFHX25vX3dpbGRjYXJkc19tYXRjaF9zbGFzaAorI3VuZGVmIEZMQUdfd2lsZGNhcmRzCisjdW5kZWYgRkxBR19ub193aWxkY2FyZHMKKyN1bmRlZiBGTEFHX2FuY2hvcmVkCisjdW5kZWYgRkxBR19ub19hbmNob3JlZAorI3VuZGVmIEZMQUdfaWdub3JlX2Nhc2UKKyN1bmRlZiBGTEFHX25vX2lnbm9yZV9jYXNlCisjdW5kZWYgRkxBR19vbmVfZmlsZV9zeXN0ZW0KKyNlbmRpZgorCisvLyB0YXNrc2V0ICAgPDFecGEKKyN1bmRlZiBPUFRTVFJfdGFza3NldAorI2RlZmluZSBPUFRTVFJfdGFza3NldCAiPDFecGEiCisjaWZkZWYgQ0xFQU5VUF90YXNrc2V0CisjdW5kZWYgQ0xFQU5VUF90YXNrc2V0CisjdW5kZWYgRk9SX3Rhc2tzZXQKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyB0Y3BzdmQgICBePDNjIz0zMDwxYiM9MjA8MEM6dTpsOmhFdgorI3VuZGVmIE9QVFNUUl90Y3BzdmQKKyNkZWZpbmUgT1BUU1RSX3RjcHN2ZCAiXjwzYyM9MzA8MWIjPTIwPDBDOnU6bDpoRXYiCisjaWZkZWYgQ0xFQU5VUF90Y3BzdmQKKyN1bmRlZiBDTEVBTlVQX3RjcHN2ZAorI3VuZGVmIEZPUl90Y3BzdmQKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX0UKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyB0ZWUgaWEgaWEKKyN1bmRlZiBPUFRTVFJfdGVlCisjZGVmaW5lIE9QVFNUUl90ZWUgImlhIgorI2lmZGVmIENMRUFOVVBfdGVlCisjdW5kZWYgQ0xFQU5VUF90ZWUKKyN1bmRlZiBGT1JfdGVlCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19pCisjZW5kaWYKKworLy8gdGVsbmV0ICAgPDE+MgorI3VuZGVmIE9QVFNUUl90ZWxuZXQKKyNkZWZpbmUgT1BUU1RSX3RlbG5ldCAiPDE+MiIKKyNpZmRlZiBDTEVBTlVQX3RlbG5ldAorI3VuZGVmIENMRUFOVVBfdGVsbmV0CisjdW5kZWYgRk9SX3RlbG5ldAorI2VuZGlmCisKKy8vIHRlbG5ldGQgICB3IzwwYjpwIzwwPjY1NTM1PTIzZjpsOkZTS2lbIXdpXQorI3VuZGVmIE9QVFNUUl90ZWxuZXRkCisjZGVmaW5lIE9QVFNUUl90ZWxuZXRkICJ3IzwwYjpwIzwwPjY1NTM1PTIzZjpsOkZTS2lbIXdpXSIKKyNpZmRlZiBDTEVBTlVQX3RlbG5ldGQKKyN1bmRlZiBDTEVBTlVQX3RlbG5ldGQKKyN1bmRlZiBGT1JfdGVsbmV0ZAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfSworI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfRgorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfdworI2VuZGlmCisKKy8vIHRlc3QgICAgCisjdW5kZWYgT1BUU1RSX3Rlc3QKKyNkZWZpbmUgT1BUU1RSX3Rlc3QgMAorI2lmZGVmIENMRUFOVVBfdGVzdAorI3VuZGVmIENMRUFOVVBfdGVzdAorI3VuZGVmIEZPUl90ZXN0CisjZW5kaWYKKworLy8gdGZ0cCAgIDwxYiM8OD42NTQ2NHI6bDpnfHB8WyFncF0KKyN1bmRlZiBPUFRTVFJfdGZ0cAorI2RlZmluZSBPUFRTVFJfdGZ0cCAiPDFiIzw4PjY1NDY0cjpsOmd8cHxbIWdwXSIKKyNpZmRlZiBDTEVBTlVQX3RmdHAKKyN1bmRlZiBDTEVBTlVQX3RmdHAKKyN1bmRlZiBGT1JfdGZ0cAorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIHRmdHBkICAgcmN1OmwKKyN1bmRlZiBPUFRTVFJfdGZ0cGQKKyNkZWZpbmUgT1BUU1RSX3RmdHBkICJyY3U6bCIKKyNpZmRlZiBDTEVBTlVQX3RmdHBkCisjdW5kZWYgQ0xFQU5VUF90ZnRwZAorI3VuZGVmIEZPUl90ZnRwZAorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfcgorI2VuZGlmCisKKy8vIHRpbWUgICA8MV5wdlstcHZdCisjdW5kZWYgT1BUU1RSX3RpbWUKKyNkZWZpbmUgT1BUU1RSX3RpbWUgIjwxXnB2Wy1wdl0iCisjaWZkZWYgQ0xFQU5VUF90aW1lCisjdW5kZWYgQ0xFQU5VUF90aW1lCisjdW5kZWYgRk9SX3RpbWUKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyB0aW1lb3V0IDwyXihmb3JlZ3JvdW5kKShwcmVzZXJ2ZS1zdGF0dXMpdms6cyhzaWduYWwpOmkgPDJeKGZvcmVncm91bmQpKHByZXNlcnZlLXN0YXR1cyl2azpzKHNpZ25hbCk6aQorI3VuZGVmIE9QVFNUUl90aW1lb3V0CisjZGVmaW5lIE9QVFNUUl90aW1lb3V0ICI8Ml4oZm9yZWdyb3VuZCkocHJlc2VydmUtc3RhdHVzKXZrOnMoc2lnbmFsKTppIgorI2lmZGVmIENMRUFOVVBfdGltZW91dAorI3VuZGVmIENMRUFOVVBfdGltZW91dAorI3VuZGVmIEZPUl90aW1lb3V0CisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19wcmVzZXJ2ZV9zdGF0dXMKKyN1bmRlZiBGTEFHX2ZvcmVncm91bmQKKyNlbmRpZgorCisvLyB0b3AgICA+ME8qaEhrKm8qcCp1KnMjPDFkJTwxMDA9MzAwMG0jbiM8MWJxWyFvT10KKyN1bmRlZiBPUFRTVFJfdG9wCisjZGVmaW5lIE9QVFNUUl90b3AgIj4wTypoSGsqbypwKnUqcyM8MWQlPDEwMD0zMDAwbSNuIzwxYnFbIW9PXSIKKyNpZmRlZiBDTEVBTlVQX3RvcAorI3VuZGVmIENMRUFOVVBfdG9wCisjdW5kZWYgRk9SX3RvcAorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfSAorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfTworI2VuZGlmCisKKy8vIHRvdWNoIDwxYWNkOmZtcjp0OmhbIWR0cl0gPDFhY2Q6Zm1yOnQ6aFshZHRyXQorI3VuZGVmIE9QVFNUUl90b3VjaAorI2RlZmluZSBPUFRTVFJfdG91Y2ggIjwxYWNkOmZtcjp0OmhbIWR0cl0iCisjaWZkZWYgQ0xFQU5VUF90b3VjaAorI3VuZGVmIENMRUFOVVBfdG91Y2gKKyN1bmRlZiBGT1JfdG91Y2gKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyB0b3lib3ggICAgCisjdW5kZWYgT1BUU1RSX3RveWJveAorI2RlZmluZSBPUFRTVFJfdG95Ym94IDAKKyNpZmRlZiBDTEVBTlVQX3RveWJveAorI3VuZGVmIENMRUFOVVBfdG95Ym94CisjdW5kZWYgRk9SX3RveWJveAorI2VuZGlmCisKKy8vIHRyIF48MT4yQ2NzdGRbK2NDXSBePDE+MkNjc3RkWytjQ10KKyN1bmRlZiBPUFRTVFJfdHIKKyNkZWZpbmUgT1BUU1RSX3RyICJePDE+MkNjc3RkWytjQ10iCisjaWZkZWYgQ0xFQU5VUF90cgorI3VuZGVmIENMRUFOVVBfdHIKKyN1bmRlZiBGT1JfdHIKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX0MKKyNlbmRpZgorCisvLyB0cmFjZXJvdXRlICAgPDE+Mmk6ZiM8MT4yNTU9MXojPDA+ODY0MDA9MGcqdyM8MD44NjQwMD01dCM8MD4yNTU9MHM6cSM8MT4yNTU9M3AjPDE+NjU1MzU9MzM0MzRtIzwxPjI1NT0zMHJ2bmRsSVVGNjQKKyN1bmRlZiBPUFRTVFJfdHJhY2Vyb3V0ZQorI2RlZmluZSBPUFRTVFJfdHJhY2Vyb3V0ZSAiPDE+Mmk6ZiM8MT4yNTU9MXojPDA+ODY0MDA9MGcqdyM8MD44NjQwMD01dCM8MD4yNTU9MHM6cSM8MT4yNTU9M3AjPDE+NjU1MzU9MzM0MzRtIzwxPjI1NT0zMHJ2bmRsSVVGNjQiCisjaWZkZWYgQ0xFQU5VUF90cmFjZXJvdXRlCisjdW5kZWYgQ0xFQU5VUF90cmFjZXJvdXRlCisjdW5kZWYgRk9SX3RyYWNlcm91dGUKKyN1bmRlZiBGTEFHXzQKKyN1bmRlZiBGTEFHXzYKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX0kKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2kKKyNlbmRpZgorCisvLyB0cnVlICAgIAorI3VuZGVmIE9QVFNUUl90cnVlCisjZGVmaW5lIE9QVFNUUl90cnVlIDAKKyNpZmRlZiBDTEVBTlVQX3RydWUKKyN1bmRlZiBDTEVBTlVQX3RydWUKKyN1bmRlZiBGT1JfdHJ1ZQorI2VuZGlmCisKKy8vIHRydW5jYXRlIDwxczp8YyA8MXM6fGMKKyN1bmRlZiBPUFRTVFJfdHJ1bmNhdGUKKyNkZWZpbmUgT1BUU1RSX3RydW5jYXRlICI8MXM6fGMiCisjaWZkZWYgQ0xFQU5VUF90cnVuY2F0ZQorI3VuZGVmIENMRUFOVVBfdHJ1bmNhdGUKKyN1bmRlZiBGT1JfdHJ1bmNhdGUKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyB0cyAgIGltcworI3VuZGVmIE9QVFNUUl90cworI2RlZmluZSBPUFRTVFJfdHMgImltcyIKKyNpZmRlZiBDTEVBTlVQX3RzCisjdW5kZWYgQ0xFQU5VUF90cworI3VuZGVmIEZPUl90cworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfaQorI2VuZGlmCisKKy8vIHRzb3J0ICAgPjEKKyN1bmRlZiBPUFRTVFJfdHNvcnQKKyNkZWZpbmUgT1BUU1RSX3Rzb3J0ICI+MSIKKyNpZmRlZiBDTEVBTlVQX3Rzb3J0CisjdW5kZWYgQ0xFQU5VUF90c29ydAorI3VuZGVmIEZPUl90c29ydAorI2VuZGlmCisKKy8vIHR0eSAgIHMKKyN1bmRlZiBPUFRTVFJfdHR5CisjZGVmaW5lIE9QVFNUUl90dHkgInMiCisjaWZkZWYgQ0xFQU5VUF90dHkKKyN1bmRlZiBDTEVBTlVQX3R0eQorI3VuZGVmIEZPUl90dHkKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyB0dW5jdGwgICA8MT4xdHxkfHU6VFshdGRdCisjdW5kZWYgT1BUU1RSX3R1bmN0bAorI2RlZmluZSBPUFRTVFJfdHVuY3RsICI8MT4xdHxkfHU6VFshdGRdIgorI2lmZGVmIENMRUFOVVBfdHVuY3RsCisjdW5kZWYgQ0xFQU5VUF90dW5jdGwKKyN1bmRlZiBGT1JfdHVuY3RsCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR190CisjZW5kaWYKKworLy8gdWNsYW1wc2V0ICAgcCNhbSM8LTE+MTAyNE0jPC0xPjEwMjRSCisjdW5kZWYgT1BUU1RSX3VjbGFtcHNldAorI2RlZmluZSBPUFRTVFJfdWNsYW1wc2V0ICJwI2FtIzwtMT4xMDI0TSM8LTE+MTAyNFIiCisjaWZkZWYgQ0xFQU5VUF91Y2xhbXBzZXQKKyN1bmRlZiBDTEVBTlVQX3VjbGFtcHNldAorI3VuZGVmIEZPUl91Y2xhbXBzZXQKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX00KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyB1bGltaXQgICA+MVAjPDFTSGF2dXRzclJxcG5tbGlmZWRjWy1TSF1bIWFwdnV0c3JScW5tbGlmZWRjXQorI3VuZGVmIE9QVFNUUl91bGltaXQKKyNkZWZpbmUgT1BUU1RSX3VsaW1pdCAiPjFQIzwxU0hhdnV0c3JScXBubWxpZmVkY1stU0hdWyFhcHZ1dHNyUnFubWxpZmVkY10iCisjaWZkZWYgQ0xFQU5VUF91bGltaXQKKyN1bmRlZiBDTEVBTlVQX3VsaW1pdAorI3VuZGVmIEZPUl91bGltaXQKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX1AKKyNlbmRpZgorCisvLyB1bW91bnQgY25kRGZscmF0KnZbIW5hXSBjbmREZmxyYXQqdlshbmFdCisjdW5kZWYgT1BUU1RSX3Vtb3VudAorI2RlZmluZSBPUFRTVFJfdW1vdW50ICJjbmREZmxyYXQqdlshbmFdIgorI2lmZGVmIENMRUFOVVBfdW1vdW50CisjdW5kZWYgQ0xFQU5VUF91bW91bnQKKyN1bmRlZiBGT1JfdW1vdW50CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gdW5hbWUgcGFvbXZybnMgcGFvbXZybnMKKyN1bmRlZiBPUFRTVFJfdW5hbWUKKyNkZWZpbmUgT1BUU1RSX3VuYW1lICJwYW9tdnJucyIKKyNpZmRlZiBDTEVBTlVQX3VuYW1lCisjdW5kZWYgQ0xFQU5VUF91bmFtZQorI3VuZGVmIEZPUl91bmFtZQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIHVuaWNvZGUgICA8MQorI3VuZGVmIE9QVFNUUl91bmljb2RlCisjZGVmaW5lIE9QVFNUUl91bmljb2RlICI8MSIKKyNpZmRlZiBDTEVBTlVQX3VuaWNvZGUKKyN1bmRlZiBDTEVBTlVQX3VuaWNvZGUKKyN1bmRlZiBGT1JfdW5pY29kZQorI2VuZGlmCisKKy8vIHVuaXEgZiNzI3cjemljZHUgZiNzI3cjemljZHUKKyN1bmRlZiBPUFRTVFJfdW5pcQorI2RlZmluZSBPUFRTVFJfdW5pcSAiZiNzI3cjemljZHUiCisjaWZkZWYgQ0xFQU5VUF91bmlxCisjdW5kZWYgQ0xFQU5VUF91bmlxCisjdW5kZWYgRk9SX3VuaXEKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyB1bml4MmRvcyAgICAKKyN1bmRlZiBPUFRTVFJfdW5peDJkb3MKKyNkZWZpbmUgT1BUU1RSX3VuaXgyZG9zIDAKKyNpZmRlZiBDTEVBTlVQX3VuaXgyZG9zCisjdW5kZWYgQ0xFQU5VUF91bml4MmRvcworI3VuZGVmIEZPUl91bml4MmRvcworI2VuZGlmCisKKy8vIHVubGluayAgIDwxPjEKKyN1bmRlZiBPUFRTVFJfdW5saW5rCisjZGVmaW5lIE9QVFNUUl91bmxpbmsgIjwxPjEiCisjaWZkZWYgQ0xFQU5VUF91bmxpbmsKKyN1bmRlZiBDTEVBTlVQX3VubGluaworI3VuZGVmIEZPUl91bmxpbmsKKyNlbmRpZgorCisvLyB1bnNldCAgIGZ2blshZnZdCisjdW5kZWYgT1BUU1RSX3Vuc2V0CisjZGVmaW5lIE9QVFNUUl91bnNldCAiZnZuWyFmdl0iCisjaWZkZWYgQ0xFQU5VUF91bnNldAorI3VuZGVmIENMRUFOVVBfdW5zZXQKKyN1bmRlZiBGT1JfdW5zZXQKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyB1bnNoYXJlIDwxXmEoYWxsKWYoZm9yaylyKG1hcC1yb290LXVzZXIpQyhjZ3JvdXApOjsgaShpcGMpOjsgbShtb3VudCk6OyBuKG5ldCk6OyBwKHBpZCk6OyB1KHV0cyk6OyBVKHVzZXIpOjsgIDwxXmEoYWxsKWYoZm9yaylyKG1hcC1yb290LXVzZXIpQyhjZ3JvdXApOjsgaShpcGMpOjsgbShtb3VudCk6OyBuKG5ldCk6OyBwKHBpZCk6OyB1KHV0cyk6OyBVKHVzZXIpOjsgCisjdW5kZWYgT1BUU1RSX3Vuc2hhcmUKKyNkZWZpbmUgT1BUU1RSX3Vuc2hhcmUgIjwxXmEoYWxsKWYoZm9yaylyKG1hcC1yb290LXVzZXIpQyhjZ3JvdXApOjsgaShpcGMpOjsgbShtb3VudCk6OyBuKG5ldCk6OyBwKHBpZCk6OyB1KHV0cyk6OyBVKHVzZXIpOjsgIgorI2lmZGVmIENMRUFOVVBfdW5zaGFyZQorI3VuZGVmIENMRUFOVVBfdW5zaGFyZQorI3VuZGVmIEZPUl91bnNoYXJlCisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gdXB0aW1lICAgPjBwcworI3VuZGVmIE9QVFNUUl91cHRpbWUKKyNkZWZpbmUgT1BUU1RSX3VwdGltZSAiPjBwcyIKKyNpZmRlZiBDTEVBTlVQX3VwdGltZQorI3VuZGVmIENMRUFOVVBfdXB0aW1lCisjdW5kZWYgRk9SX3VwdGltZQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIHVzZXJhZGQgICA8MT4ydSM8MEc6czpnOmg6U0RICisjdW5kZWYgT1BUU1RSX3VzZXJhZGQKKyNkZWZpbmUgT1BUU1RSX3VzZXJhZGQgIjwxPjJ1IzwwRzpzOmc6aDpTREgiCisjaWZkZWYgQ0xFQU5VUF91c2VyYWRkCisjdW5kZWYgQ0xFQU5VUF91c2VyYWRkCisjdW5kZWYgRk9SX3VzZXJhZGQKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX0cKKyN1bmRlZiBGTEFHX3UKKyNlbmRpZgorCisvLyB1c2VyZGVsICAgPDE+MXIKKyN1bmRlZiBPUFRTVFJfdXNlcmRlbAorI2RlZmluZSBPUFRTVFJfdXNlcmRlbCAiPDE+MXIiCisjaWZkZWYgQ0xFQU5VUF91c2VyZGVsCisjdW5kZWYgQ0xFQU5VUF91c2VyZGVsCisjdW5kZWYgRk9SX3VzZXJkZWwKKyN1bmRlZiBGTEFHX3IKKyNlbmRpZgorCisvLyB1c2xlZXAgICA8MT4xCisjdW5kZWYgT1BUU1RSX3VzbGVlcAorI2RlZmluZSBPUFRTVFJfdXNsZWVwICI8MT4xIgorI2lmZGVmIENMRUFOVVBfdXNsZWVwCisjdW5kZWYgQ0xFQU5VUF91c2xlZXAKKyN1bmRlZiBGT1JfdXNsZWVwCisjZW5kaWYKKworLy8gdXVkZWNvZGUgICA+MW86CisjdW5kZWYgT1BUU1RSX3V1ZGVjb2RlCisjZGVmaW5lIE9QVFNUUl91dWRlY29kZSAiPjFvOiIKKyNpZmRlZiBDTEVBTlVQX3V1ZGVjb2RlCisjdW5kZWYgQ0xFQU5VUF91dWRlY29kZQorI3VuZGVmIEZPUl91dWRlY29kZQorI3VuZGVmIEZMQUdfbworI2VuZGlmCisKKy8vIHV1ZW5jb2RlICAgPDE+Mm0KKyN1bmRlZiBPUFRTVFJfdXVlbmNvZGUKKyNkZWZpbmUgT1BUU1RSX3V1ZW5jb2RlICI8MT4ybSIKKyNpZmRlZiBDTEVBTlVQX3V1ZW5jb2RlCisjdW5kZWYgQ0xFQU5VUF91dWVuY29kZQorI3VuZGVmIEZPUl91dWVuY29kZQorI3VuZGVmIEZMQUdfbQorI2VuZGlmCisKKy8vIHV1aWRnZW4gICA+MHIocmFuZG9tKQorI3VuZGVmIE9QVFNUUl91dWlkZ2VuCisjZGVmaW5lIE9QVFNUUl91dWlkZ2VuICI+MHIocmFuZG9tKSIKKyNpZmRlZiBDTEVBTlVQX3V1aWRnZW4KKyN1bmRlZiBDTEVBTlVQX3V1aWRnZW4KKyN1bmRlZiBGT1JfdXVpZGdlbgorI3VuZGVmIEZMQUdfcgorI2VuZGlmCisKKy8vIHZjb25maWcgICA8Mj40CisjdW5kZWYgT1BUU1RSX3Zjb25maWcKKyNkZWZpbmUgT1BUU1RSX3Zjb25maWcgIjwyPjQiCisjaWZkZWYgQ0xFQU5VUF92Y29uZmlnCisjdW5kZWYgQ0xFQU5VUF92Y29uZmlnCisjdW5kZWYgRk9SX3Zjb25maWcKKyNlbmRpZgorCisvLyB2aSAgID4xczoKKyN1bmRlZiBPUFRTVFJfdmkKKyNkZWZpbmUgT1BUU1RSX3ZpICI+MXM6IgorI2lmZGVmIENMRUFOVVBfdmkKKyN1bmRlZiBDTEVBTlVQX3ZpCisjdW5kZWYgRk9SX3ZpCisjdW5kZWYgRkxBR19zCisjZW5kaWYKKworLy8gdm1zdGF0ICAgPjJuCisjdW5kZWYgT1BUU1RSX3Ztc3RhdAorI2RlZmluZSBPUFRTVFJfdm1zdGF0ICI+Mm4iCisjaWZkZWYgQ0xFQU5VUF92bXN0YXQKKyN1bmRlZiBDTEVBTlVQX3Ztc3RhdAorI3VuZGVmIEZPUl92bXN0YXQKKyN1bmRlZiBGTEFHX24KKyNlbmRpZgorCisvLyB3ICAgIAorI3VuZGVmIE9QVFNUUl93CisjZGVmaW5lIE9QVFNUUl93IDAKKyNpZmRlZiBDTEVBTlVQX3cKKyN1bmRlZiBDTEVBTlVQX3cKKyN1bmRlZiBGT1JfdworI2VuZGlmCisKKy8vIHdhaXQgICBuCisjdW5kZWYgT1BUU1RSX3dhaXQKKyNkZWZpbmUgT1BUU1RSX3dhaXQgIm4iCisjaWZkZWYgQ0xFQU5VUF93YWl0CisjdW5kZWYgQ0xFQU5VUF93YWl0CisjdW5kZWYgRk9SX3dhaXQKKyN1bmRlZiBGTEFHX24KKyNlbmRpZgorCisvLyB3YXRjaCAgIF48MW4lPDEwMD0yMDAwdGVieAorI3VuZGVmIE9QVFNUUl93YXRjaAorI2RlZmluZSBPUFRTVFJfd2F0Y2ggIl48MW4lPDEwMD0yMDAwdGVieCIKKyNpZmRlZiBDTEVBTlVQX3dhdGNoCisjdW5kZWYgQ0xFQU5VUF93YXRjaAorI3VuZGVmIEZPUl93YXRjaAorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIHdhdGNoZG9nICAgPDE+MUZ0Iz00PDFUIz02MDwxCisjdW5kZWYgT1BUU1RSX3dhdGNoZG9nCisjZGVmaW5lIE9QVFNUUl93YXRjaGRvZyAiPDE+MUZ0Iz00PDFUIz02MDwxIgorI2lmZGVmIENMRUFOVVBfd2F0Y2hkb2cKKyN1bmRlZiBDTEVBTlVQX3dhdGNoZG9nCisjdW5kZWYgRk9SX3dhdGNoZG9nCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19GCisjZW5kaWYKKworLy8gd2MgTGNtd2wgTGNtd2wKKyN1bmRlZiBPUFRTVFJfd2MKKyNkZWZpbmUgT1BUU1RSX3djICJMY213bCIKKyNpZmRlZiBDTEVBTlVQX3djCisjdW5kZWYgQ0xFQU5VUF93YworI3VuZGVmIEZPUl93YworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfTAorI2VuZGlmCisKKy8vIHdnZXQgICA8MT4xKG1heC1yZWRpcmVjdCkjPDA9MjBkKGRlYnVnKU8ob3V0cHV0LWRvY3VtZW50KTpwKHBvc3QtZGF0YSk6CisjdW5kZWYgT1BUU1RSX3dnZXQKKyNkZWZpbmUgT1BUU1RSX3dnZXQgIjwxPjEobWF4LXJlZGlyZWN0KSM8MD0yMGQoZGVidWcpTyhvdXRwdXQtZG9jdW1lbnQpOnAocG9zdC1kYXRhKToiCisjaWZkZWYgQ0xFQU5VUF93Z2V0CisjdW5kZWYgQ0xFQU5VUF93Z2V0CisjdW5kZWYgRk9SX3dnZXQKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX08KKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX21heF9yZWRpcmVjdAorI2VuZGlmCisKKy8vIHdoaWNoIDwxYSA8MWEKKyN1bmRlZiBPUFRTVFJfd2hpY2gKKyNkZWZpbmUgT1BUU1RSX3doaWNoICI8MWEiCisjaWZkZWYgQ0xFQU5VUF93aGljaAorI3VuZGVmIENMRUFOVVBfd2hpY2gKKyN1bmRlZiBGT1Jfd2hpY2gKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyB3aG8gICBhCisjdW5kZWYgT1BUU1RSX3dobworI2RlZmluZSBPUFRTVFJfd2hvICJhIgorI2lmZGVmIENMRUFOVVBfd2hvCisjdW5kZWYgQ0xFQU5VUF93aG8KKyN1bmRlZiBGT1Jfd2hvCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8geGFyZ3MgXkU6UCM8MChudWxsKT0xb3B0cihuby1ydW4taWYtZW1wdHkpbiM8MShtYXgtYXJncylzIzBbITBFXSBeRTpQIzwwKG51bGwpPTFvcHRyKG5vLXJ1bi1pZi1lbXB0eSluIzwxKG1heC1hcmdzKXMjMFshMEVdCisjdW5kZWYgT1BUU1RSX3hhcmdzCisjZGVmaW5lIE9QVFNUUl94YXJncyAiXkU6UCM8MChudWxsKT0xb3B0cihuby1ydW4taWYtZW1wdHkpbiM8MShtYXgtYXJncylzIzBbITBFXSIKKyNpZmRlZiBDTEVBTlVQX3hhcmdzCisjdW5kZWYgQ0xFQU5VUF94YXJncworI3VuZGVmIEZPUl94YXJncworI3VuZGVmIEZMQUdfMAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfRQorI2VuZGlmCisKKy8vIHh4ZCA+MWMjPDA+MjU2bCNvI2cjPDA9MmVpcHJzI1shcnNdWyFyZV0gPjFjIzwwPjI1NmwjbyNnIzwwPTJlaXBycyNbIXJzXVshcmVdCisjdW5kZWYgT1BUU1RSX3h4ZAorI2RlZmluZSBPUFRTVFJfeHhkICI+MWMjPDA+MjU2bCNvI2cjPDA9MmVpcHJzI1shcnNdWyFyZV0iCisjaWZkZWYgQ0xFQU5VUF94eGQKKyN1bmRlZiBDTEVBTlVQX3h4ZAorI3VuZGVmIEZPUl94eGQKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyB4emNhdCAgICAKKyN1bmRlZiBPUFRTVFJfeHpjYXQKKyNkZWZpbmUgT1BUU1RSX3h6Y2F0IDAKKyNpZmRlZiBDTEVBTlVQX3h6Y2F0CisjdW5kZWYgQ0xFQU5VUF94emNhdAorI3VuZGVmIEZPUl94emNhdAorI2VuZGlmCisKKy8vIHllcyAgICAKKyN1bmRlZiBPUFRTVFJfeWVzCisjZGVmaW5lIE9QVFNUUl95ZXMgMAorI2lmZGVmIENMRUFOVVBfeWVzCisjdW5kZWYgQ0xFQU5VUF95ZXMKKyN1bmRlZiBGT1JfeWVzCisjZW5kaWYKKworLy8gemNhdCBjZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XSBjZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XQorI3VuZGVmIE9QVFNUUl96Y2F0CisjZGVmaW5lIE9QVFNUUl96Y2F0ICJjZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XSIKKyNpZmRlZiBDTEVBTlVQX3pjYXQKKyN1bmRlZiBDTEVBTlVQX3pjYXQKKyN1bmRlZiBGT1JfemNhdAorI3VuZGVmIEZMQUdfOQorI3VuZGVmIEZMQUdfOAorI3VuZGVmIEZMQUdfNworI3VuZGVmIEZMQUdfNgorI3VuZGVmIEZMQUdfNQorI3VuZGVmIEZMQUdfNAorI3VuZGVmIEZMQUdfMworI3VuZGVmIEZMQUdfMgorI3VuZGVmIEZMQUdfMQorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYworI2VuZGlmCisKKyNpZmRlZiBGT1JfYWNwaQorI2RlZmluZSBDTEVBTlVQX2FjcGkKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5hY3BpCisjZW5kaWYKKyNkZWZpbmUgRkxBR19WIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2FyY2gKKyNkZWZpbmUgQ0xFQU5VUF9hcmNoCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuYXJjaAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9hcnAKKyNkZWZpbmUgQ0xFQU5VUF9hcnAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5hcnAKKyNlbmRpZgorI2RlZmluZSBGTEFHX0ggKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX0QgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYXJwaW5nCisjZGVmaW5lIENMRUFOVVBfYXJwaW5nCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuYXJwaW5nCisjZW5kaWYKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19EIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19VIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19BIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR193IChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19JIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8OSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2FzY2lpCisjZGVmaW5lIENMRUFOVVBfYXNjaWkKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5hc2NpaQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9iYXNlMzIKKyNkZWZpbmUgQ0xFQU5VUF9iYXNlMzIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5iYXNlMzIKKyNlbmRpZgorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYmFzZTY0CisjZGVmaW5lIENMRUFOVVBfYmFzZTY0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuYmFzZTY0CisjZW5kaWYKKyNkZWZpbmUgRkxBR193IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Jhc2VuYW1lCisjZGVmaW5lIENMRUFOVVBfYmFzZW5hbWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5iYXNlbmFtZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2EgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2JjCisjZGVmaW5lIENMRUFOVVBfYmMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5iYworI2VuZGlmCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ibGtkaXNjYXJkCisjZGVmaW5lIENMRUFOVVBfYmxrZGlzY2FyZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJsa2Rpc2NhcmQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ogKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYmxraWQKKyNkZWZpbmUgQ0xFQU5VUF9ibGtpZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJsa2lkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19MIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19VIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Jsb2NrZGV2CisjZGVmaW5lIENMRUFOVVBfYmxvY2tkZXYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ibG9ja2RldgorI2VuZGlmCisjZGVmaW5lIEZMQUdfcmVyZWFkcHQgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2ZsdXNoYnVmcyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfc2V0cmEgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2dldHJhIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19nZXRzaXplNjQgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2dldHNpemUgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2dldHN6IChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19zZXRic3ogKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX2dldGJzeiAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfZ2V0c3MgKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX2dldHJvIChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfc2V0cncgKEZPUkNFRF9GTEFHPDwxMSkKKyNkZWZpbmUgRkxBR19zZXRybyAoRk9SQ0VEX0ZMQUc8PDEyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYm9vdGNoYXJ0ZAorI2RlZmluZSBDTEVBTlVQX2Jvb3RjaGFydGQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ib290Y2hhcnRkCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2JyY3RsCisjZGVmaW5lIENMRUFOVVBfYnJjdGwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5icmN0bAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9idW56aXAyCisjZGVmaW5lIENMRUFOVVBfYnVuemlwMgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJ1bnppcDIKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2sgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYnpjYXQKKyNkZWZpbmUgQ0xFQU5VUF9iemNhdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJ6Y2F0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NhbAorI2RlZmluZSBDTEVBTlVQX2NhbAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNhbAorI2VuZGlmCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9jYXQKKyNkZWZpbmUgQ0xFQU5VUF9jYXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jYXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2UgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3UgKDFMTDw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NkCisjZGVmaW5lIENMRUFOVVBfY2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfUCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfTCAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jaGF0dHIKKyNkZWZpbmUgQ0xFQU5VUF9jaGF0dHIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jaGF0dHIKKyNlbmRpZgorI2RlZmluZSBGTEFHX1IgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY2hjb24KKyNkZWZpbmUgQ0xFQU5VUF9jaGNvbgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNoY29uCisjZW5kaWYKKyNkZWZpbmUgRkxBR19SIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NoZ3JwCisjZGVmaW5lIENMRUFOVVBfY2hncnAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jaGdycAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfTCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfUCAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDYpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jaG1vZAorI2RlZmluZSBDTEVBTlVQX2NobW9kCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2htb2QKKyNlbmRpZgorI2RlZmluZSBGTEFHX1IgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY2hyb290CisjZGVmaW5lIENMRUFOVVBfY2hyb290CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2hyb290CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NocnQKKyNkZWZpbmUgQ0xFQU5VUF9jaHJ0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2hydAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDcpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jaHNoCisjZGVmaW5lIENMRUFOVVBfY2hzaAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNoc2gKKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX1IgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY2h2dAorI2RlZmluZSBDTEVBTlVQX2NodnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jaHZ0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Nrc3VtCisjZGVmaW5lIENMRUFOVVBfY2tzdW0KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ja3N1bQorI2VuZGlmCisjZGVmaW5lIEZMQUdfTiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfTCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfSSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jbGVhcgorI2RlZmluZSBDTEVBTlVQX2NsZWFyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2xlYXIKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfY21wCisjZGVmaW5lIENMRUFOVVBfY21wCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY21wCisjZW5kaWYKKyNkZWZpbmUgRkxBR19uICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2wgKDFMTDw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NvbW0KKyNkZWZpbmUgQ0xFQU5VUF9jb21tCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY29tbQorI2VuZGlmCisjZGVmaW5lIEZMQUdfMSAoMUxMPDwwKQorI2RlZmluZSBGTEFHXzIgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR18zICgxTEw8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jb3VudAorI2RlZmluZSBDTEVBTlVQX2NvdW50CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY291bnQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY3AKKyNkZWZpbmUgQ0xFQU5VUF9jcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNwCisjZW5kaWYKKyNkZWZpbmUgRkxBR19UICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19mICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX24gKDFMTDw8NSkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDw3KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19hICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR191ICgxTEw8PDExKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDwxMykKKyNkZWZpbmUgRkxBR19QICgxTEw8PDE0KQorI2RlZmluZSBGTEFHX0wgKDFMTDw8MTUpCisjZGVmaW5lIEZMQUdfSCAoMUxMPDwxNikKKyNkZWZpbmUgRkxBR19SICgxTEw8PDE3KQorI2RlZmluZSBGTEFHX0QgKDFMTDw8MTgpCisjZGVmaW5lIEZMQUdfcHJlc2VydmUgKDFMTDw8MTkpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jcGlvCisjZGVmaW5lIENMRUFOVVBfY3BpbworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNwaW8KKyNlbmRpZgorI2RlZmluZSBGTEFHX28gKDFMTDw8MCkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19pICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDw1KQorI2RlZmluZSBGTEFHX0ggKDFMTDw8NikKKyNkZWZpbmUgRkxBR19MICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfdSAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2QgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfbm9fcHJlc2VydmVfb3duZXIgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfcXVpZXQgKDFMTDw8MTMpCisjZGVmaW5lIEZMQUdfcmVudW1iZXJfaW5vZGVzICgxTEw8PDE0KQorI2RlZmluZSBGTEFHX2lnbm9yZV9kZXZubyAoMUxMPDwxNSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NyYzMyCisjZGVmaW5lIENMRUFOVVBfY3JjMzIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jcmMzMgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9jcm9uZAorI2RlZmluZSBDTEVBTlVQX2Nyb25kCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY3JvbmQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX0wgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw2KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY3JvbnRhYgorI2RlZmluZSBDTEVBTlVQX2Nyb250YWIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jcm9udGFiCisjZW5kaWYKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19lIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NzcGxpdAorI2RlZmluZSBDTEVBTlVQX2NzcGxpdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNzcGxpdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfayAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jdXQKKyNkZWZpbmUgQ0xFQU5VUF9jdXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jdXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19EICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19PICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfQyAoMUxMPDw1KQorI2RlZmluZSBGTEFHX0YgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19mICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2IgKDFMTDw8OSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RhdGUKKyNkZWZpbmUgQ0xFQU5VUF9kYXRlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGF0ZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfdSAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3MgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfSSAoMUxMPDwzKQorI2RlZmluZSBGTEFHX0QgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9kZAorI2RlZmluZSBDTEVBTlVQX2RkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGVhbGxvY3Z0CisjZGVmaW5lIENMRUFOVVBfZGVhbGxvY3Z0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGVhbGxvY3Z0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RlY2xhcmUKKyNkZWZpbmUgQ0xFQU5VUF9kZWNsYXJlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGVjbGFyZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfeCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfQSAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl9kZW1vX21hbnlfb3B0aW9ucworI2RlZmluZSBDTEVBTlVQX2RlbW9fbWFueV9vcHRpb25zCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGVtb19tYW55X29wdGlvbnMKKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2UgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX2ogKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX2sgKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDEyKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwxMykKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8MTQpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDE1KQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwxNikKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MTcpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDE4KQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxOSkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MjApCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDIxKQorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDwyMikKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MjMpCisjZGVmaW5lIEZMQUdfeSAoRk9SQ0VEX0ZMQUc8PDI0KQorI2RlZmluZSBGTEFHX3ogKEZPUkNFRF9GTEFHPDwyNSkKKyNkZWZpbmUgRkxBR19BIChGT1JDRURfRkxBRzw8MjYpCisjZGVmaW5lIEZMQUdfQiAoRk9SQ0VEX0ZMQUc8PDI3KQorI2RlZmluZSBGTEFHX0MgKEZPUkNFRF9GTEFHPDwyOCkKKyNkZWZpbmUgRkxBR19EIChGT1JDRURfRkxBRzw8MjkpCisjZGVmaW5lIEZMQUdfRSAoRk9SQ0VEX0ZMQUc8PDMwKQorI2RlZmluZSBGTEFHX0YgKEZPUkNFRF9GTEFHPDwzMSkKKyNkZWZpbmUgRkxBR19HIChGT1JDRURfRkxBRzw8MzIpCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDMzKQorI2RlZmluZSBGTEFHX0kgKEZPUkNFRF9GTEFHPDwzNCkKKyNkZWZpbmUgRkxBR19KIChGT1JDRURfRkxBRzw8MzUpCisjZGVmaW5lIEZMQUdfSyAoRk9SQ0VEX0ZMQUc8PDM2KQorI2RlZmluZSBGTEFHX0wgKEZPUkNFRF9GTEFHPDwzNykKKyNkZWZpbmUgRkxBR19NIChGT1JDRURfRkxBRzw8MzgpCisjZGVmaW5lIEZMQUdfTiAoRk9SQ0VEX0ZMQUc8PDM5KQorI2RlZmluZSBGTEFHX08gKEZPUkNFRF9GTEFHPDw0MCkKKyNkZWZpbmUgRkxBR19QIChGT1JDRURfRkxBRzw8NDEpCisjZGVmaW5lIEZMQUdfUSAoRk9SQ0VEX0ZMQUc8PDQyKQorI2RlZmluZSBGTEFHX1IgKEZPUkNFRF9GTEFHPDw0MykKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8NDQpCisjZGVmaW5lIEZMQUdfVCAoRk9SQ0VEX0ZMQUc8PDQ1KQorI2RlZmluZSBGTEFHX1UgKEZPUkNFRF9GTEFHPDw0NikKKyNkZWZpbmUgRkxBR19WIChGT1JDRURfRkxBRzw8NDcpCisjZGVmaW5lIEZMQUdfVyAoRk9SQ0VEX0ZMQUc8PDQ4KQorI2RlZmluZSBGTEFHX1ggKEZPUkNFRF9GTEFHPDw0OSkKKyNkZWZpbmUgRkxBR19ZIChGT1JDRURfRkxBRzw8NTApCisjZGVmaW5lIEZMQUdfWiAoRk9SQ0VEX0ZMQUc8PDUxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGVtb19udW1iZXIKKyNkZWZpbmUgQ0xFQU5VUF9kZW1vX251bWJlcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRlbW9fbnVtYmVyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19NIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19EIChGT1JDRURfRkxBRzw8NikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RlbW9fc2NhbmtleQorI2RlZmluZSBDTEVBTlVQX2RlbW9fc2NhbmtleQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRlbW9fc2NhbmtleQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9kZW1vX3V0Zjh0b3djCisjZGVmaW5lIENMRUFOVVBfZGVtb191dGY4dG93YworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRlbW9fdXRmOHRvd2MKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGV2bWVtCisjZGVmaW5lIENMRUFOVVBfZGV2bWVtCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGV2bWVtCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RmCisjZGVmaW5lIENMRUFOVVBfZGYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kZgorI2VuZGlmCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfayAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfUCAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDYpCisjZW5kaWYKKworI2lmZGVmIEZPUl9kaGNwCisjZGVmaW5lIENMRUFOVVBfZGhjcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRoY3AKKyNlbmRpZgorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX0MgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX1IgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX0IgKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDEyKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwxMykKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MTQpCisjZGVmaW5lIEZMQUdfVCAoRk9SQ0VEX0ZMQUc8PDE1KQorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDwxNikKKyNkZWZpbmUgRkxBR19PIChGT1JDRURfRkxBRzw8MTcpCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDE4KQorI2RlZmluZSBGTEFHX3ggKEZPUkNFRF9GTEFHPDwxOSkKKyNkZWZpbmUgRkxBR19GIChGT1JDRURfRkxBRzw8MjApCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDIxKQorI2RlZmluZSBGTEFHX1YgKEZPUkNFRF9GTEFHPDwyMikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RoY3A2CisjZGVmaW5lIENMRUFOVVBfZGhjcDYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kaGNwNgorI2VuZGlmCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDEwKQorI2RlZmluZSBGTEFHX1QgKEZPUkNFRF9GTEFHPDwxMSkKKyNkZWZpbmUgRkxBR19BIChGT1JDRURfRkxBRzw8MTIpCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDEzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGhjcGQKKyNkZWZpbmUgQ0xFQU5VUF9kaGNwZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRoY3BkCisjZW5kaWYKKyNkZWZpbmUgRkxBR182IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR180IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19QIChGT1JDRURfRkxBRzw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RpZmYKKyNkZWZpbmUgQ0xFQU5VUF9kaWZmCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGlmZgorI2VuZGlmCisjZGVmaW5lIEZMQUdfVSAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19OICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfTCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX0YgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19TICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw2KQorI2RlZmluZSBGTEFHX3EgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19zICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfVCAoMUxMPDw5KQorI2RlZmluZSBGTEFHX2kgKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDEyKQorI2RlZmluZSBGTEFHX3UgKDFMTDw8MTMpCisjZGVmaW5lIEZMQUdfYiAoMUxMPDwxNCkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDE1KQorI2RlZmluZSBGTEFHX0IgKDFMTDw8MTYpCisjZGVmaW5lIEZMQUdfc3RyaXBfdHJhaWxpbmdfY3IgKDFMTDw8MTcpCisjZGVmaW5lIEZMQUdfY29sb3IgKDFMTDw8MTgpCisjZGVmaW5lIEZMQUdfbmV3X2xpbmVfZm9ybWF0ICgxTEw8PDE5KQorI2RlZmluZSBGTEFHX29sZF9saW5lX2Zvcm1hdCAoMUxMPDwyMCkKKyNkZWZpbmUgRkxBR191bmNoYW5nZWRfbGluZV9mb3JtYXQgKDFMTDw8MjEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9kaXJuYW1lCisjZGVmaW5lIENMRUFOVVBfZGlybmFtZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRpcm5hbWUKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZG1lc2cKKyNkZWZpbmUgQ0xFQU5VUF9kbWVzZworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRtZXNnCisjZW5kaWYKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19UIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19DIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR193IChGT1JDRURfRkxBRzw8OCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Ruc2RvbWFpbm5hbWUKKyNkZWZpbmUgQ0xFQU5VUF9kbnNkb21haW5uYW1lCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZG5zZG9tYWlubmFtZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9kb3MydW5peAorI2RlZmluZSBDTEVBTlVQX2RvczJ1bml4CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZG9zMnVuaXgKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZHUKKyNkZWZpbmUgQ0xFQU5VUF9kdQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmR1CisjZW5kaWYKKyNkZWZpbmUgRkxBR19iICgxTEw8PDApCisjZGVmaW5lIEZMQUdfeCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3MgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19MICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfSyAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2sgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19IICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw3KQorI2RlZmluZSBGTEFHX2MgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19sICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR19oICgxTEw8PDExKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MTIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9kdW1wbGVhc2VzCisjZGVmaW5lIENMRUFOVVBfZHVtcGxlYXNlcworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmR1bXBsZWFzZXMKKyNlbmRpZgorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZWNobworI2RlZmluZSBDTEVBTlVQX2VjaG8KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5lY2hvCisjZW5kaWYKKyNkZWZpbmUgRkxBR19uICgxTEw8PDApCisjZGVmaW5lIEZMQUdfZSAoMUxMPDwxKQorI2RlZmluZSBGTEFHX0UgKDFMTDw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2VqZWN0CisjZGVmaW5lIENMRUFOVVBfZWplY3QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5lamVjdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfVCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9lbnYKKyNkZWZpbmUgQ0xFQU5VUF9lbnYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5lbnYKKyNlbmRpZgorI2RlZmluZSBGTEFHX3UgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR18wICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2UgKDFMTDw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2V2YWwKKyNkZWZpbmUgQ0xFQU5VUF9ldmFsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZXZhbAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9leGVjCisjZGVmaW5lIENMRUFOVVBfZXhlYworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmV4ZWMKKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZXhpdAorI2RlZmluZSBDTEVBTlVQX2V4aXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5leGl0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2V4cGFuZAorI2RlZmluZSBDTEVBTlVQX2V4cGFuZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmV4cGFuZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9leHBvcnQKKyNkZWZpbmUgQ0xFQU5VUF9leHBvcnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5leHBvcnQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZXhwcgorI2RlZmluZSBDTEVBTlVQX2V4cHIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5leHByCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZhY3RvcgorI2RlZmluZSBDTEVBTlVQX2ZhY3RvcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZhY3RvcgorI2VuZGlmCisjZGVmaW5lIEZMQUdfeCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9mYWxsb2NhdGUKKyNkZWZpbmUgQ0xFQU5VUF9mYWxsb2NhdGUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5mYWxsb2NhdGUKKyNlbmRpZgorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZmFsc2UKKyNkZWZpbmUgQ0xFQU5VUF9mYWxzZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZhbHNlCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZkaXNrCisjZGVmaW5lIENMRUFOVVBfZmRpc2sKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5mZGlzaworI2VuZGlmCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfQyAoRk9SQ0VEX0ZMQUc8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9maWxlCisjZGVmaW5lIENMRUFOVVBfZmlsZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZpbGUKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19MICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfaCAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2IgKDFMTDw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZpbmQKKyNkZWZpbmUgQ0xFQU5VUF9maW5kCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZmluZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfTCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX0ggKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Zsb2NrCisjZGVmaW5lIENMRUFOVVBfZmxvY2sKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5mbG9jaworI2VuZGlmCisjZGVmaW5lIEZMQUdfeCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3UgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZm10CisjZGVmaW5lIENMRUFOVVBfZm10CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZm10CisjZW5kaWYKKyNkZWZpbmUgRkxBR193IChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZvbGQKKyNkZWZpbmUgQ0xFQU5VUF9mb2xkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZm9sZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9mcmVlCisjZGVmaW5lIENMRUFOVVBfZnJlZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZyZWUKKyNlbmRpZgorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2sgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZnJlZXJhbWRpc2sKKyNkZWZpbmUgQ0xFQU5VUF9mcmVlcmFtZGlzaworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZyZWVyYW1kaXNrCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZzY2sKKyNkZWZpbmUgQ0xFQU5VUF9mc2NrCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZnNjaworI2VuZGlmCisjZGVmaW5lIEZMQUdfQyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfViAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfVCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfUCAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfTiAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfQSAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl9mc2ZyZWV6ZQorI2RlZmluZSBDTEVBTlVQX2ZzZnJlZXplCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZnNmcmVlemUKKyNlbmRpZgorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZnN0eXBlCisjZGVmaW5lIENMRUFOVVBfZnN0eXBlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZnN0eXBlCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZzeW5jCisjZGVmaW5lIENMRUFOVVBfZnN5bmMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5mc3luYworI2VuZGlmCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9mdHBnZXQKKyNkZWZpbmUgQ0xFQU5VUF9mdHBnZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5mdHBnZXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX0QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX00gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX0wgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfUCAoRk9SQ0VEX0ZMQUc8PDEyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ2V0Y29uZgorI2RlZmluZSBDTEVBTlVQX2dldGNvbmYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5nZXRjb25mCisjZW5kaWYKKyNkZWZpbmUgRkxBR19sICgxTEw8PDApCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ2V0ZW5mb3JjZQorI2RlZmluZSBDTEVBTlVQX2dldGVuZm9yY2UKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5nZXRlbmZvcmNlCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dldGZhdHRyCisjZGVmaW5lIENMRUFOVVBfZ2V0ZmF0dHIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5nZXRmYXR0cgorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfb25seV92YWx1ZXMgKEZPUkNFRF9GTEFHPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ2V0b3B0CisjZGVmaW5lIENMRUFOVVBfZ2V0b3B0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2V0b3B0CisjZW5kaWYKKyNkZWZpbmUgRkxBR191ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfVCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2wgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19vICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2EgKDFMTDw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dldHR5CisjZGVmaW5lIENMRUFOVVBfZ2V0dHkKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5nZXR0eQorI2VuZGlmCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfTCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfSSAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDEwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ2l0Y2hlY2tvdXQKKyNkZWZpbmUgQ0xFQU5VUF9naXRjaGVja291dAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdpdGNoZWNrb3V0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dpdGNsb25lCisjZGVmaW5lIENMRUFOVVBfZ2l0Y2xvbmUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5naXRjbG9uZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9naXRmZXRjaAorI2RlZmluZSBDTEVBTlVQX2dpdGZldGNoCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2l0ZmV0Y2gKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ2l0aW5pdAorI2RlZmluZSBDTEVBTlVQX2dpdGluaXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5naXRpbml0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dpdHJlbW90ZQorI2RlZmluZSBDTEVBTlVQX2dpdHJlbW90ZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdpdHJlbW90ZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9ncGlvZGV0ZWN0CisjZGVmaW5lIENMRUFOVVBfZ3Bpb2RldGVjdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdwaW9kZXRlY3QKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ3Bpb2ZpbmQKKyNkZWZpbmUgQ0xFQU5VUF9ncGlvZmluZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdwaW9maW5kCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dwaW9nZXQKKyNkZWZpbmUgQ0xFQU5VUF9ncGlvZ2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ3Bpb2dldAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9ncGlvaW5mbworI2RlZmluZSBDTEVBTlVQX2dwaW9pbmZvCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ3Bpb2luZm8KKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ3Bpb3NldAorI2RlZmluZSBDTEVBTlVQX2dwaW9zZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ncGlvc2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dyZXAKKyNkZWZpbmUgQ0xFQU5VUF9ncmVwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ3JlcAorI2VuZGlmCisjZGVmaW5lIEZMQUdfeCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX20gKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19BICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfQiAoMUxMPDwzKQorI2RlZmluZSBGTEFHX0MgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfZSAoMUxMPDw2KQorI2RlZmluZSBGTEFHX3EgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19sICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfTCAoMUxMPDw5KQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDEyKQorI2RlZmluZSBGTEFHX3MgKDFMTDw8MTMpCisjZGVmaW5lIEZMQUdfUiAoMUxMPDwxNCkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDE1KQorI2RlZmluZSBGTEFHX28gKDFMTDw8MTYpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwxNykKKyNkZWZpbmUgRkxBR19pICgxTEw8PDE4KQorI2RlZmluZSBGTEFHX2ggKDFMTDw8MTkpCisjZGVmaW5lIEZMQUdfYiAoMUxMPDwyMCkKKyNkZWZpbmUgRkxBR19hICgxTEw8PDIxKQorI2RlZmluZSBGTEFHX0kgKDFMTDw8MjIpCisjZGVmaW5lIEZMQUdfSCAoMUxMPDwyMykKKyNkZWZpbmUgRkxBR19GICgxTEw8PDI0KQorI2RlZmluZSBGTEFHX0UgKDFMTDw8MjUpCisjZGVmaW5lIEZMQUdfeiAoMUxMPDwyNikKKyNkZWZpbmUgRkxBR19aICgxTEw8PDI3KQorI2RlZmluZSBGTEFHX00gKDFMTDw8MjgpCisjZGVmaW5lIEZMQUdfUyAoMUxMPDwyOSkKKyNkZWZpbmUgRkxBR19leGNsdWRlX2RpciAoMUxMPDwzMCkKKyNkZWZpbmUgRkxBR19jb2xvciAoMUxMPDwzMSkKKyNkZWZpbmUgRkxBR19saW5lX2J1ZmZlcmVkICgxTEw8PDMyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ3JvdXBhZGQKKyNkZWZpbmUgQ0xFQU5VUF9ncm91cGFkZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdyb3VwYWRkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19nIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19SIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dyb3VwZGVsCisjZGVmaW5lIENMRUFOVVBfZ3JvdXBkZWwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ncm91cGRlbAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9ncm91cHMKKyNkZWZpbmUgQ0xFQU5VUF9ncm91cHMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ncm91cHMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ3VuemlwCisjZGVmaW5lIENMRUFOVVBfZ3VuemlwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ3VuemlwCisjZW5kaWYKKyNkZWZpbmUgRkxBR185IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR184IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR183IChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR182IChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR181IChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR180IChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR18zIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR18yIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR18xIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR19rIChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDExKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwxMikKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MTMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9nemlwCisjZGVmaW5lIENMRUFOVVBfZ3ppcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmd6aXAKKyNlbmRpZgorI2RlZmluZSBGTEFHXzkgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR184ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfNyAoMUxMPDwyKQorI2RlZmluZSBGTEFHXzYgKDFMTDw8MykKKyNkZWZpbmUgRkxBR181ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfNCAoMUxMPDw1KQorI2RlZmluZSBGTEFHXzMgKDFMTDw8NikKKyNkZWZpbmUgRkxBR18yICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfMSAoMUxMPDw4KQorI2RlZmluZSBGTEFHX3QgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19rICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR19jICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MTQpCisjZW5kaWYKKworI2lmZGVmIEZPUl9oZWFkCisjZGVmaW5lIENMRUFOVVBfaGVhZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmhlYWQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19xICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2hlbGxvCisjZGVmaW5lIENMRUFOVVBfaGVsbG8KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5oZWxsbworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9oZWxwCisjZGVmaW5lIENMRUFOVVBfaGVscAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmhlbHAKKyNlbmRpZgorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaGV4ZHVtcAorI2RlZmluZSBDTEVBTlVQX2hleGR1bXAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5oZXhkdW1wCisjZW5kaWYKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19DIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8OCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2hleGVkaXQKKyNkZWZpbmUgQ0xFQU5VUF9oZXhlZGl0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaGV4ZWRpdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9ob3N0CisjZGVmaW5lIENMRUFOVVBfaG9zdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmhvc3QKKyNlbmRpZgorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaG9zdGlkCisjZGVmaW5lIENMRUFOVVBfaG9zdGlkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaG9zdGlkCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2hvc3RuYW1lCisjZGVmaW5lIENMRUFOVVBfaG9zdG5hbWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ob3N0bmFtZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfRiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2IgKDFMTDw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2h0dHBkCisjZGVmaW5lIENMRUFOVVBfaHR0cGQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5odHRwZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9od2Nsb2NrCisjZGVmaW5lIENMRUFOVVBfaHdjbG9jaworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmh3Y2xvY2sKKyNlbmRpZgorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2Zhc3QgKEZPUkNFRF9GTEFHPDw3KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaTJjZGV0ZWN0CisjZGVmaW5lIENMRUFOVVBfaTJjZGV0ZWN0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaTJjZGV0ZWN0CisjZW5kaWYKKyNkZWZpbmUgRkxBR195IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19GIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2kyY2R1bXAKKyNkZWZpbmUgQ0xFQU5VUF9pMmNkdW1wCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaTJjZHVtcAorI2VuZGlmCisjZGVmaW5lIEZMQUdfeSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9pMmNnZXQKKyNkZWZpbmUgQ0xFQU5VUF9pMmNnZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5pMmNnZXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3kgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaTJjc2V0CisjZGVmaW5lIENMRUFOVVBfaTJjc2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaTJjc2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR195IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2kyY3RyYW5zZmVyCisjZGVmaW5lIENMRUFOVVBfaTJjdHJhbnNmZXIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5pMmN0cmFuc2ZlcgorI2VuZGlmCisjZGVmaW5lIEZMQUdfeSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9pY29udgorI2RlZmluZSBDTEVBTlVQX2ljb252CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaWNvbnYKKyNlbmRpZgorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaWQKKyNkZWZpbmUgQ0xFQU5VUF9pZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmlkCisjZW5kaWYKKyNkZWZpbmUgRkxBR191ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfciAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2cgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19HICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX1ogKEZPUkNFRF9GTEFHPDw1KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaWZjb25maWcKKyNkZWZpbmUgQ0xFQU5VUF9pZmNvbmZpZworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmlmY29uZmlnCisjZW5kaWYKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2luaXQKKyNkZWZpbmUgQ0xFQU5VUF9pbml0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW5pdAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9pbm90aWZ5ZAorI2RlZmluZSBDTEVBTlVQX2lub3RpZnlkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW5vdGlmeWQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfaW5zbW9kCisjZGVmaW5lIENMRUFOVVBfaW5zbW9kCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW5zbW9kCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2luc3RhbGwKKyNkZWZpbmUgQ0xFQU5VUF9pbnN0YWxsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW5zdGFsbAorI2VuZGlmCisjZGVmaW5lIEZMQUdfZyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX28gKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDw2KQorI2RlZmluZSBGTEFHX0QgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19kICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaW9uaWNlCisjZGVmaW5lIENMRUFOVVBfaW9uaWNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW9uaWNlCisjZW5kaWYKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2lvcmVuaWNlCisjZGVmaW5lIENMRUFOVVBfaW9yZW5pY2UKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5pb3JlbmljZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9pb3RvcAorI2RlZmluZSBDTEVBTlVQX2lvdG9wCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW90b3AKKyNlbmRpZgorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX2sgKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX0ggKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19PIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfSyAoRk9SQ0VEX0ZMQUc8PDEyKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwxMykKKyNkZWZpbmUgRkxBR19BIChGT1JDRURfRkxBRzw8MTQpCisjZW5kaWYKKworI2lmZGVmIEZPUl9pcAorI2RlZmluZSBDTEVBTlVQX2lwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaXAKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfaXBjcm0KKyNkZWZpbmUgQ0xFQU5VUF9pcGNybQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmlwY3JtCisjZW5kaWYKKyNkZWZpbmUgRkxBR19RIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19NIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2lwY3MKKyNkZWZpbmUgQ0xFQU5VUF9pcGNzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaXBjcworI2VuZGlmCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDkpCisjZW5kaWYKKworI2lmZGVmIEZPUl9qb2JzCisjZGVmaW5lIENMRUFOVVBfam9icworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmpvYnMKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfa2lsbAorI2RlZmluZSBDTEVBTlVQX2tpbGwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5raWxsCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2tpbGxhbGwKKyNkZWZpbmUgQ0xFQU5VUF9raWxsYWxsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMua2lsbGFsbAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9raWxsYWxsNQorI2RlZmluZSBDTEVBTlVQX2tpbGxhbGw1CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMua2lsbGFsbDUKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfa2xvZ2QKKyNkZWZpbmUgQ0xFQU5VUF9rbG9nZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmtsb2dkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xhc3QKKyNkZWZpbmUgQ0xFQU5VUF9sYXN0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubGFzdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfVyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9saW5rCisjZGVmaW5lIENMRUFOVVBfbGluaworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxpbmsKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfbGludXgzMgorI2RlZmluZSBDTEVBTlVQX2xpbnV4MzIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5saW51eDMyCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xuCisjZGVmaW5lIENMRUFOVVBfbG4KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sbgorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19uICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwzKQorI2RlZmluZSBGTEFHX1QgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfciAoMUxMPDw2KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbG9hZF9wb2xpY3kKKyNkZWZpbmUgQ0xFQU5VUF9sb2FkX3BvbGljeQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxvYWRfcG9saWN5CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xvY2FsCisjZGVmaW5lIENMRUFOVVBfbG9jYWwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sb2NhbAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9sb2cKKyNkZWZpbmUgQ0xFQU5VUF9sb2cKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sb2cKKyNlbmRpZgorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbG9nZ2VyCisjZGVmaW5lIENMRUFOVVBfbG9nZ2VyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubG9nZ2VyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xvZ2luCisjZGVmaW5lIENMRUFOVVBfbG9naW4KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sb2dpbgorI2VuZGlmCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9sb2duYW1lCisjZGVmaW5lIENMRUFOVVBfbG9nbmFtZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxvZ25hbWUKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfbG9ncGF0aAorI2RlZmluZSBDTEVBTlVQX2xvZ3BhdGgKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sb2dwYXRoCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xvc2V0dXAKKyNkZWZpbmUgQ0xFQU5VUF9sb3NldHVwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubG9zZXR1cAorI2VuZGlmCisjZGVmaW5lIEZMQUdfRCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfaiAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfbyAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDkpCisjZW5kaWYKKworI2lmZGVmIEZPUl9scworI2RlZmluZSBDTEVBTlVQX2xzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubHMKKyNlbmRpZgorI2RlZmluZSBGTEFHXzEgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR194ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3UgKDFMTDw8MykKKyNkZWZpbmUgRkxBR190ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3IgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19xICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDw4KQorI2RlZmluZSBGTEFHX24gKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX2wgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfayAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR19pICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX2ggKDFMTDw8MTQpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxNSkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDE2KQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MTcpCisjZGVmaW5lIEZMQUdfYiAoMUxMPDwxOCkKKyNkZWZpbmUgRkxBR19hICgxTEw8PDE5KQorI2RlZmluZSBGTEFHX1ggKDFMTDw8MjApCisjZGVmaW5lIEZMQUdfVSAoMUxMPDwyMSkKKyNkZWZpbmUgRkxBR19TICgxTEw8PDIyKQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MjMpCisjZGVmaW5lIEZMQUdfTiAoMUxMPDwyNCkKKyNkZWZpbmUgRkxBR19MICgxTEw8PDI1KQorI2RlZmluZSBGTEFHX0ggKDFMTDw8MjYpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDwyNykKKyNkZWZpbmUgRkxBR19DICgxTEw8PDI4KQorI2RlZmluZSBGTEFHX0EgKDFMTDw8MjkpCisjZGVmaW5lIEZMQUdfbyAoMUxMPDwzMCkKKyNkZWZpbmUgRkxBR19nICgxTEw8PDMxKQorI2RlZmluZSBGTEFHX1ogKDFMTDw8MzIpCisjZGVmaW5lIEZMQUdfWDdFICgxTEw8PDMzKQorI2RlZmluZSBGTEFHX1gyMSAoMUxMPDwzNCkKKyNkZWZpbmUgRkxBR19YN0YgKDFMTDw8MzUpCisjZGVmaW5lIEZMQUdfc2hvd19jb250cm9sX2NoYXJzICgxTEw8PDM2KQorI2RlZmluZSBGTEFHX2Z1bGxfdGltZSAoMUxMPDwzNykKKyNkZWZpbmUgRkxBR19jb2xvciAoMUxMPDwzOCkKKyNkZWZpbmUgRkxBR19zb3J0ICgxTEw8PDM5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbHNhdHRyCisjZGVmaW5lIENMRUFOVVBfbHNhdHRyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubHNhdHRyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19SIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xzbW9kCisjZGVmaW5lIENMRUFOVVBfbHNtb2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sc21vZAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9sc29mCisjZGVmaW5lIENMRUFOVVBfbHNvZgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxzb2YKKyNlbmRpZgorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbHNwY2kKKyNkZWZpbmUgQ0xFQU5VUF9sc3BjaQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxzcGNpCisjZW5kaWYKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19rIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19lIChGT1JDRURfRkxBRzw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xzdXNiCisjZGVmaW5lIENMRUFOVVBfbHN1c2IKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sc3VzYgorI2VuZGlmCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9tYWtlZGV2cworI2RlZmluZSBDTEVBTlVQX21ha2VkZXZzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWFrZWRldnMKKyNlbmRpZgorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWFuCisjZGVmaW5lIENMRUFOVVBfbWFuCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWFuCisjZW5kaWYKKyNkZWZpbmUgRkxBR19NIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19rIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX21jb29raWUKKyNkZWZpbmUgQ0xFQU5VUF9tY29va2llCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWNvb2tpZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfViAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9tZDVzdW0KKyNkZWZpbmUgQ0xFQU5VUF9tZDVzdW0KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tZDVzdW0KKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19jICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfYiAoMUxMPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWRldgorI2RlZmluZSBDTEVBTlVQX21kZXYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tZGV2CisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX21lbWVhdGVyCisjZGVmaW5lIENMRUFOVVBfbWVtZWF0ZXIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tZW1lYXRlcgorI2VuZGlmCisjZGVmaW5lIEZMQUdfTSAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9taWNyb2NvbQorI2RlZmluZSBDTEVBTlVQX21pY3JvY29tCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWljcm9jb20KKyNlbmRpZgorI2RlZmluZSBGTEFHX1ggKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9taXgKKyNkZWZpbmUgQ0xFQU5VUF9taXgKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5taXgKKyNlbmRpZgorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWtkaXIKKyNkZWZpbmUgQ0xFQU5VUF9ta2RpcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1rZGlyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19tICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19aIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX21rZTJmcworI2RlZmluZSBDTEVBTlVQX21rZTJmcworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1rZTJmcworI2VuZGlmCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfTiAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfRiAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfZyAoRk9SQ0VEX0ZMQUc8PDcpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ta2ZpZm8KKyNkZWZpbmUgQ0xFQU5VUF9ta2ZpZm8KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ta2ZpZm8KKyNlbmRpZgorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX1ogKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWtub2QKKyNkZWZpbmUgQ0xFQU5VUF9ta25vZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1rbm9kCisjZW5kaWYKKyNkZWZpbmUgRkxBR19aIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX21rcGFzc3dkCisjZGVmaW5lIENMRUFOVVBfbWtwYXNzd2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ta3Bhc3N3ZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfUCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ta3N3YXAKKyNkZWZpbmUgQ0xFQU5VUF9ta3N3YXAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ta3N3YXAKKyNlbmRpZgorI2RlZmluZSBGTEFHX0wgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWt0ZW1wCisjZGVmaW5lIENMRUFOVVBfbWt0ZW1wCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWt0ZW1wCisjZW5kaWYKKyNkZWZpbmUgRkxBR190ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19xICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfdSAoMUxMPDw0KQorI2RlZmluZSBGTEFHX3RtcGRpciAoMUxMPDw1KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbW9kaW5mbworI2RlZmluZSBDTEVBTlVQX21vZGluZm8KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tb2RpbmZvCisjZW5kaWYKKyNkZWZpbmUgRkxBR18wIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19GIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19rIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX21vZHByb2JlCisjZGVmaW5lIENMRUFOVVBfbW9kcHJvYmUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tb2Rwcm9iZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfRCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl9tb3JlCisjZGVmaW5lIENMRUFOVVBfbW9yZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1vcmUKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfbW91bnQKKyNkZWZpbmUgQ0xFQU5VUF9tb3VudAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1vdW50CisjZW5kaWYKKyNkZWZpbmUgRkxBR19vICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3cgKDFMTDw8MikKKyNkZWZpbmUgRkxBR192ICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfciAoMUxMPDw0KQorI2RlZmluZSBGTEFHX24gKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw3KQorI2RlZmluZSBGTEFHX08gKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19SICgxTEw8PDkpCisjZW5kaWYKKworI2lmZGVmIEZPUl9tb3VudHBvaW50CisjZGVmaW5lIENMRUFOVVBfbW91bnRwb2ludAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1vdW50cG9pbnQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ggKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbXYKKyNkZWZpbmUgQ0xFQU5VUF9tdgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm12CisjZW5kaWYKKyNkZWZpbmUgRkxBR19UICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19mICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX24gKDFMTDw8NSkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfeCAoMUxMPDw3KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbmJkX2NsaWVudAorI2RlZmluZSBDTEVBTlVQX25iZF9jbGllbnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5uYmRfY2xpZW50CisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX25iZF9zZXJ2ZXIKKyNkZWZpbmUgQ0xFQU5VUF9uYmRfc2VydmVyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubmJkX3NlcnZlcgorI2VuZGlmCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9uZXRjYXQKKyNkZWZpbmUgQ0xFQU5VUF9uZXRjYXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5uZXRjYXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ogKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX1UgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHXzYgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHXzQgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX08gKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfVyAoRk9SQ0VEX0ZMQUc8PDEyKQorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDwxMykKKyNkZWZpbmUgRkxBR19MIChGT1JDRURfRkxBRzw8MTQpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDE1KQorI2RlZmluZSBGTEFHX0UgKEZPUkNFRF9GTEFHPDwxNikKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MTcpCisjZW5kaWYKKworI2lmZGVmIEZPUl9uZXRzdGF0CisjZGVmaW5lIENMRUFOVVBfbmV0c3RhdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm5ldHN0YXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2UgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3ggKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX1cgKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwxMCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX25pY2UKKyNkZWZpbmUgQ0xFQU5VUF9uaWNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubmljZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9ubAorI2RlZmluZSBDTEVBTlVQX25sCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubmwKKyNlbmRpZgorI2RlZmluZSBGTEFHX0UgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2IgKDFMTDw8MykKKyNkZWZpbmUgRkxBR193ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3YgKDFMTDw8NikKKyNlbmRpZgorCisjaWZkZWYgRk9SX25vaHVwCisjZGVmaW5lIENMRUFOVVBfbm9odXAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ub2h1cAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9ucHJvYworI2RlZmluZSBDTEVBTlVQX25wcm9jCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubnByb2MKKyNlbmRpZgorI2RlZmluZSBGTEFHX2FsbCAoMUxMPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbnNlbnRlcgorI2RlZmluZSBDTEVBTlVQX25zZW50ZXIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5uc2VudGVyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19VIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19DIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19GIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8OSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX29kCisjZGVmaW5lIENMRUFOVVBfb2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5vZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX0EgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19iICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw2KQorI2RlZmluZSBGTEFHX3ggKDFMTDw8NykKKyNkZWZpbmUgRkxBR19OICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfdyAoMUxMPDw5KQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfaiAoMUxMPDwxMSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX29uZWl0CisjZGVmaW5lIENMRUFOVVBfb25laXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5vbmVpdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfMyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9vcGVudnQKKyNkZWZpbmUgQ0xFQU5VUF9vcGVudnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5vcGVudnQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcGFydHByb2JlCisjZGVmaW5lIENMRUFOVVBfcGFydHByb2JlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucGFydHByb2JlCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Bhc3N3ZAorI2RlZmluZSBDTEVBTlVQX3Bhc3N3ZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnBhc3N3ZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wYXN0ZQorI2RlZmluZSBDTEVBTlVQX3Bhc3RlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucGFzdGUKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wYXRjaAorI2RlZmluZSBDTEVBTlVQX3BhdGNoCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucGF0Y2gKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19SICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MykKKyNkZWZpbmUgRkxBR192ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDw1KQorI2RlZmluZSBGTEFHX2wgKDFMTDw8NikKKyNkZWZpbmUgRkxBR191ICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2cgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19GICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX2RyeV9ydW4gKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfbm9fYmFja3VwX2lmX21pc21hdGNoICgxTEw8PDEyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcGdyZXAKKyNkZWZpbmUgQ0xFQU5VUF9wZ3JlcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnBncmVwCisjZW5kaWYKKyNkZWZpbmUgRkxBR19MICgxTEw8PDApCisjZGVmaW5lIEZMQUdfeCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19vICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2YgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19HICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfZyAoMUxMPDw3KQorI2RlZmluZSBGTEFHX1AgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR19VICgxTEw8PDExKQorI2RlZmluZSBGTEFHX3UgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwxMykKKyNkZWZpbmUgRkxBR19sICgxTEw8PDE0KQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MTUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9waWRvZgorI2RlZmluZSBDTEVBTlVQX3BpZG9mCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucGlkb2YKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ggKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcGluZworI2RlZmluZSBDTEVBTlVQX3BpbmcKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5waW5nCisjZW5kaWYKKyNkZWZpbmUgRkxBR19JIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR182IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR180IChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR193IChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19XIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDExKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcGl2b3Rfcm9vdAorI2RlZmluZSBDTEVBTlVQX3Bpdm90X3Jvb3QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5waXZvdF9yb290CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3BraWxsCisjZGVmaW5lIENMRUFOVVBfcGtpbGwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5wa2lsbAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3ggKDFMTDw8MSkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfbyAoMUxMPDwzKQorI2RlZmluZSBGTEFHX24gKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfRyAoMUxMPDw2KQorI2RlZmluZSBGTEFHX2cgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19QICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw5KQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfVSAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR191ICgxTEw8PDEyKQorI2RlZmluZSBGTEFHX1YgKDFMTDw8MTMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wbWFwCisjZGVmaW5lIENMRUFOVVBfcG1hcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnBtYXAKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ggKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcHJpbnRlbnYKKyNkZWZpbmUgQ0xFQU5VUF9wcmludGVudgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnByaW50ZW52CisjZW5kaWYKKyNkZWZpbmUgRkxBR18wIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19udWxsIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3ByaW50ZgorI2RlZmluZSBDTEVBTlVQX3ByaW50ZgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnByaW50ZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9wcworI2RlZmluZSBDTEVBTlVQX3BzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucHMKKyNlbmRpZgorI2RlZmluZSBGTEFHX1ogKDFMTDw8MCkKKyNkZWZpbmUgRkxBR193ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfRyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2cgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19VICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfdSAoMUxMPDw1KQorI2RlZmluZSBGTEFHX1QgKDFMTDw8NikKKyNkZWZpbmUgRkxBR190ICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw4KQorI2RlZmluZSBGTEFHX3AgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19PICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX28gKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR19NICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX2wgKDFMTDw8MTQpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxNSkKKyNkZWZpbmUgRkxBR19lICgxTEw8PDE2KQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MTcpCisjZGVmaW5lIEZMQUdfQSAoMUxMPDwxOCkKKyNkZWZpbmUgRkxBR19hICgxTEw8PDE5KQorI2RlZmluZSBGTEFHX1AgKDFMTDw8MjApCisjZGVmaW5lIEZMQUdfayAoMUxMPDwyMSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3B3ZAorI2RlZmluZSBDTEVBTlVQX3B3ZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnB3ZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfUCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX0wgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3B3ZHgKKyNkZWZpbmUgQ0xFQU5VUF9wd2R4CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucHdkeAorI2VuZGlmCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9wd2dlbgorI2RlZmluZSBDTEVBTlVQX3B3Z2VuCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucHdnZW4KKyNlbmRpZgorI2RlZmluZSBGTEFHXzAgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHXzEgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX0MgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX0IgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX3kgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MTEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9yZWFkYWhlYWQKKyNkZWZpbmUgQ0xFQU5VUF9yZWFkYWhlYWQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5yZWFkYWhlYWQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfcmVhZGVsZgorI2RlZmluZSBDTEVBTlVQX3JlYWRlbGYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5yZWFkZWxmCisjZW5kaWYKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19XIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19lIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfQSAoRk9SQ0VEX0ZMQUc8PDExKQorI2RlZmluZSBGTEFHX2R5bl9zeW1zIChGT1JDRURfRkxBRzw8MTIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9yZWFkbGluaworI2RlZmluZSBDTEVBTlVQX3JlYWRsaW5rCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucmVhZGxpbmsKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ogKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19xICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2UgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19mICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3YgKDFMTDw8NikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3JlYWxwYXRoCisjZGVmaW5lIENMRUFOVVBfcmVhbHBhdGgKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5yZWFscGF0aAorI2VuZGlmCisjZGVmaW5lIEZMQUdfeiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3EgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfZSAoMUxMPDwzKQorI2RlZmluZSBGTEFHX1AgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19MICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw2KQorI2RlZmluZSBGTEFHX1IgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19yZWxhdGl2ZV9iYXNlICgxTEw8PDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl9yZWJvb3QKKyNkZWZpbmUgQ0xFQU5VUF9yZWJvb3QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5yZWJvb3QKKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcmVuaWNlCisjZGVmaW5lIENMRUFOVVBfcmVuaWNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucmVuaWNlCisjZW5kaWYKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19nIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Jlc2V0CisjZGVmaW5lIENMRUFOVVBfcmVzZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5yZXNldAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9yZXN0b3JlY29uCisjZGVmaW5lIENMRUFOVVBfcmVzdG9yZWNvbgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJlc3RvcmVjb24KKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX1IgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX0YgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX0QgKEZPUkNFRF9GTEFHPDw1KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcmV2CisjZGVmaW5lIENMRUFOVVBfcmV2CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucmV2CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Jma2lsbAorI2RlZmluZSBDTEVBTlVQX3Jma2lsbAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJma2lsbAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9ybQorI2RlZmluZSBDTEVBTlVQX3JtCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucm0KKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfUiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19mICgxTEw8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ybWRpcgorI2RlZmluZSBDTEVBTlVQX3JtZGlyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucm1kaXIKKyNlbmRpZgorI2RlZmluZSBGTEFHX3AgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19pZ25vcmVfZmFpbF9vbl9ub25fZW1wdHkgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3JtbW9kCisjZGVmaW5lIENMRUFOVVBfcm1tb2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ybW1vZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9yb3V0ZQorI2RlZmluZSBDTEVBTlVQX3JvdXRlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucm91dGUKKyNlbmRpZgorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2UgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcnRjd2FrZQorI2RlZmluZSBDTEVBTlVQX3J0Y3dha2UKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ydGN3YWtlCisjZW5kaWYKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19hdXRvIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19saXN0X21vZGVzIChGT1JDRURfRkxBRzw8OSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3J1bmNvbgorI2RlZmluZSBDTEVBTlVQX3J1bmNvbgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJ1bmNvbgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9zZWQKKyNkZWZpbmUgQ0xFQU5VUF9zZWQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zZWQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR196ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfciAoMUxMPDwyKQorI2RlZmluZSBGTEFHX0UgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19uICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDw1KQorI2RlZmluZSBGTEFHX2YgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19lICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfdGFyeGZvcm0gKDFMTDw8OCkKKyNkZWZpbmUgRkxBR192ZXJzaW9uICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfaGVscCAoMUxMPDwxMCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NlbmRldmVudAorI2RlZmluZSBDTEVBTlVQX3NlbmRldmVudAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNlbmRldmVudAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9zZXEKKyNkZWZpbmUgQ0xFQU5VUF9zZXEKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zZXEKKyNlbmRpZgorI2RlZmluZSBGTEFHX3cgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2V0CisjZGVmaW5lIENMRUFOVVBfc2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2V0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NldGVuZm9yY2UKKyNkZWZpbmUgQ0xFQU5VUF9zZXRlbmZvcmNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2V0ZW5mb3JjZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9zZXRmYXR0cgorI2RlZmluZSBDTEVBTlVQX3NldGZhdHRyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2V0ZmF0dHIKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ggKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2V0c2lkCisjZGVmaW5lIENMRUFOVVBfc2V0c2lkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2V0c2lkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19kICgxTEw8PDApCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3cgKDFMTDw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NoCisjZGVmaW5lIENMRUFOVVBfc2gKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zaAorI2VuZGlmCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfbm9yYyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfbm9wcm9maWxlIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19ub2VkaXRpbmcgKEZPUkNFRF9GTEFHPDw1KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2hhM3N1bQorI2RlZmluZSBDTEVBTlVQX3NoYTNzdW0KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zaGEzc3VtCisjZW5kaWYKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NoaWZ0CisjZGVmaW5lIENMRUFOVVBfc2hpZnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zaGlmdAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9zaHJlZAorI2RlZmluZSBDTEVBTlVQX3NocmVkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2hyZWQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX3ggKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX3ogKEZPUkNFRF9GTEFHPDw2KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2h1ZgorI2RlZmluZSBDTEVBTlVQX3NodWYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zaHVmCisjZW5kaWYKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19lIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR196IChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NrZWxldG9uCisjZGVmaW5lIENMRUFOVVBfc2tlbGV0b24KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5za2VsZXRvbgorI2VuZGlmCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfZSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfZyAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfYWxzbyAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfYmx1YmJlciAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfd2FscnVzIChGT1JDRURfRkxBRzw8MTApCisjZW5kaWYKKworI2lmZGVmIEZPUl9za2VsZXRvbl9hbGlhcworI2RlZmluZSBDTEVBTlVQX3NrZWxldG9uX2FsaWFzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2tlbGV0b25fYWxpYXMKKyNlbmRpZgorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2xlZXAKKyNkZWZpbmUgQ0xFQU5VUF9zbGVlcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNsZWVwCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NudHAKKyNkZWZpbmUgQ0xFQU5VUF9zbnRwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc250cAorI2VuZGlmCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfRCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfTSAoRk9SQ0VEX0ZMQUc8PDEwKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc29ydAorI2RlZmluZSBDTEVBTlVQX3NvcnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zb3J0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19uICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdSAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19pICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2QgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR196ICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw3KQorI2RlZmluZSBGTEFHX2MgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19DICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfTSAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR19iICgxTEw8PDExKQorI2RlZmluZSBGTEFHX1YgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfeCAoMUxMPDwxMykKKyNkZWZpbmUgRkxBR190ICgxTEw8PDE0KQorI2RlZmluZSBGTEFHX2sgKDFMTDw8MTUpCisjZGVmaW5lIEZMQUdfbyAoMUxMPDwxNikKKyNkZWZpbmUgRkxBR19tICgxTEw8PDE3KQorI2RlZmluZSBGTEFHX1QgKDFMTDw8MTgpCisjZGVmaW5lIEZMQUdfUyAoMUxMPDwxOSkKKyNkZWZpbmUgRkxBR19nICgxTEw8PDIwKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc291cmNlCisjZGVmaW5lIENMRUFOVVBfc291cmNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc291cmNlCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NwbGl0CisjZGVmaW5lIENMRUFOVVBfc3BsaXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zcGxpdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zdGF0CisjZGVmaW5lIENMRUFOVVBfc3RhdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN0YXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3QgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19MICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3N0cmFjZQorI2RlZmluZSBDTEVBTlVQX3N0cmFjZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN0cmFjZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zdHJpbmdzCisjZGVmaW5lIENMRUFOVVBfc3RyaW5ncworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN0cmluZ3MKKyNlbmRpZgorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc3R0eQorI2RlZmluZSBDTEVBTlVQX3N0dHkKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zdHR5CisjZW5kaWYKKyNkZWZpbmUgRkxBR19nIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19GIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3N1CisjZGVmaW5lIENMRUFOVVBfc3UKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zdQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDYpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zdWxvZ2luCisjZGVmaW5lIENMRUFOVVBfc3Vsb2dpbgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN1bG9naW4KKyNlbmRpZgorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc3dhcG9mZgorI2RlZmluZSBDTEVBTlVQX3N3YXBvZmYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zd2Fwb2ZmCisjZW5kaWYKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3N3YXBvbgorI2RlZmluZSBDTEVBTlVQX3N3YXBvbgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN3YXBvbgorI2VuZGlmCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zd2l0Y2hfcm9vdAorI2RlZmluZSBDTEVBTlVQX3N3aXRjaF9yb290CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc3dpdGNoX3Jvb3QKKyNlbmRpZgorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc3luYworI2RlZmluZSBDTEVBTlVQX3N5bmMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zeW5jCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3N5c2N0bAorI2RlZmluZSBDTEVBTlVQX3N5c2N0bAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN5c2N0bAorI2VuZGlmCisjZGVmaW5lIEZMQUdfQSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfTiAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfZSAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDcpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zeXNsb2dkCisjZGVmaW5lIENMRUFOVVBfc3lzbG9nZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN5c2xvZ2QKKyNlbmRpZgorI2RlZmluZSBGTEFHX0QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX0wgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX0sgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX08gKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDEyKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwxMykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RhYworI2RlZmluZSBDTEVBTlVQX3RhYworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRhYworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl90YWlsCisjZGVmaW5lIENMRUFOVVBfdGFpbAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRhaWwKKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19jICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX0YgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19mICgxTEw8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl90YXIKKyNkZWZpbmUgQ0xFQU5VUF90YXIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50YXIKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19hICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX0MgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19JICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfVCAoMUxMPDw1KQorI2RlZmluZSBGTEFHX1ggKDFMTDw8NikKKyNkZWZpbmUgRkxBR19tICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfUCAoMUxMPDw4KQorI2RlZmluZSBGTEFHX08gKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19TICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX3ogKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfaiAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR19KICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MTQpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxNSkKKyNkZWZpbmUgRkxBR194ICgxTEw8PDE2KQorI2RlZmluZSBGTEFHX2ggKDFMTDw8MTcpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwxOCkKKyNkZWZpbmUgRkxBR19rICgxTEw8PDE5KQorI2RlZmluZSBGTEFHX3AgKDFMTDw8MjApCisjZGVmaW5lIEZMQUdfbyAoMUxMPDwyMSkKKyNkZWZpbmUgRkxBR194Zm9ybSAoMUxMPDwyMikKKyNkZWZpbmUgRkxBR19zdHJpcCAoMUxMPDwyMykKKyNkZWZpbmUgRkxBR190b19jb21tYW5kICgxTEw8PDI0KQorI2RlZmluZSBGTEFHX293bmVyICgxTEw8PDI1KQorI2RlZmluZSBGTEFHX2dyb3VwICgxTEw8PDI2KQorI2RlZmluZSBGTEFHX210aW1lICgxTEw8PDI3KQorI2RlZmluZSBGTEFHX21vZGUgKDFMTDw8MjgpCisjZGVmaW5lIEZMQUdfc29ydCAoMUxMPDwyOSkKKyNkZWZpbmUgRkxBR19leGNsdWRlICgxTEw8PDMwKQorI2RlZmluZSBGTEFHX292ZXJ3cml0ZSAoMUxMPDwzMSkKKyNkZWZpbmUgRkxBR19ub19zYW1lX3Blcm1pc3Npb25zICgxTEw8PDMyKQorI2RlZmluZSBGTEFHX251bWVyaWNfb3duZXIgKDFMTDw8MzMpCisjZGVmaW5lIEZMQUdfbnVsbCAoMUxMPDwzNCkKKyNkZWZpbmUgRkxBR19ub19yZWN1cnNpb24gKDFMTDw8MzUpCisjZGVmaW5lIEZMQUdfZnVsbF90aW1lICgxTEw8PDM2KQorI2RlZmluZSBGTEFHX3Jlc3RyaWN0ICgxTEw8PDM3KQorI2RlZmluZSBGTEFHX3NlbGludXggKDFMTDw8MzgpCisjZGVmaW5lIEZMQUdfc2hvd190cmFuc2Zvcm1lZF9uYW1lcyAoMUxMPDwzOSkKKyNkZWZpbmUgRkxBR193aWxkY2FyZHNfbWF0Y2hfc2xhc2ggKDFMTDw8NDApCisjZGVmaW5lIEZMQUdfbm9fd2lsZGNhcmRzX21hdGNoX3NsYXNoICgxTEw8PDQxKQorI2RlZmluZSBGTEFHX3dpbGRjYXJkcyAoMUxMPDw0MikKKyNkZWZpbmUgRkxBR19ub193aWxkY2FyZHMgKDFMTDw8NDMpCisjZGVmaW5lIEZMQUdfYW5jaG9yZWQgKDFMTDw8NDQpCisjZGVmaW5lIEZMQUdfbm9fYW5jaG9yZWQgKDFMTDw8NDUpCisjZGVmaW5lIEZMQUdfaWdub3JlX2Nhc2UgKDFMTDw8NDYpCisjZGVmaW5lIEZMQUdfbm9faWdub3JlX2Nhc2UgKDFMTDw8NDcpCisjZGVmaW5lIEZMQUdfb25lX2ZpbGVfc3lzdGVtICgxTEw8PDQ4KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGFza3NldAorI2RlZmluZSBDTEVBTlVQX3Rhc2tzZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50YXNrc2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RjcHN2ZAorI2RlZmluZSBDTEVBTlVQX3RjcHN2ZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRjcHN2ZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfRSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfQyAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDcpCisjZW5kaWYKKworI2lmZGVmIEZPUl90ZWUKKyNkZWZpbmUgQ0xFQU5VUF90ZWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50ZWUKKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19pICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl90ZWxuZXQKKyNkZWZpbmUgQ0xFQU5VUF90ZWxuZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50ZWxuZXQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGVsbmV0ZAorI2RlZmluZSBDTEVBTlVQX3RlbG5ldGQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50ZWxuZXRkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19LIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19GIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR193IChGT1JDRURfRkxBRzw8OCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Rlc3QKKyNkZWZpbmUgQ0xFQU5VUF90ZXN0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudGVzdAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl90ZnRwCisjZGVmaW5lIENMRUFOVVBfdGZ0cAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRmdHAKKyNlbmRpZgorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGZ0cGQKKyNkZWZpbmUgQ0xFQU5VUF90ZnRwZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRmdHBkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RpbWUKKyNkZWZpbmUgQ0xFQU5VUF90aW1lCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudGltZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl90aW1lb3V0CisjZGVmaW5lIENMRUFOVVBfdGltZW91dAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRpbWVvdXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2kgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfayAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19wcmVzZXJ2ZV9zdGF0dXMgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19mb3JlZ3JvdW5kICgxTEw8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl90b3AKKyNkZWZpbmUgQ0xFQU5VUF90b3AKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50b3AKKyNlbmRpZgorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX2sgKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX0ggKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfTyAoRk9SQ0VEX0ZMQUc8PDEyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdG91Y2gKKyNkZWZpbmUgQ0xFQU5VUF90b3VjaAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRvdWNoCisjZW5kaWYKKyNkZWZpbmUgRkxBR19oICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19tICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2QgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19jICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw3KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdG95Ym94CisjZGVmaW5lIENMRUFOVVBfdG95Ym94CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudG95Ym94CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RyCisjZGVmaW5lIENMRUFOVVBfdHIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50cgorI2VuZGlmCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwzKQorI2RlZmluZSBGTEFHX0MgKDFMTDw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RyYWNlcm91dGUKKyNkZWZpbmUgQ0xFQU5VUF90cmFjZXJvdXRlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudHJhY2Vyb3V0ZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfNCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfNiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfRiAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfVSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfSSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDEwKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwxMSkKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8MTIpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDEzKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxNCkKKyNkZWZpbmUgRkxBR193IChGT1JDRURfRkxBRzw8MTUpCisjZGVmaW5lIEZMQUdfZyAoRk9SQ0VEX0ZMQUc8PDE2KQorI2RlZmluZSBGTEFHX3ogKEZPUkNFRF9GTEFHPDwxNykKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MTgpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDE5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdHJ1ZQorI2RlZmluZSBDTEVBTlVQX3RydWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50cnVlCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RydW5jYXRlCisjZGVmaW5lIENMRUFOVVBfdHJ1bmNhdGUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50cnVuY2F0ZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3MgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RzCisjZGVmaW5lIENMRUFOVVBfdHMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50cworI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl90c29ydAorI2RlZmluZSBDTEVBTlVQX3Rzb3J0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudHNvcnQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfdHR5CisjZGVmaW5lIENMRUFOVVBfdHR5CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudHR5CisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3R1bmN0bAorI2RlZmluZSBDTEVBTlVQX3R1bmN0bAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnR1bmN0bAorI2VuZGlmCisjZGVmaW5lIEZMQUdfVCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl91Y2xhbXBzZXQKKyNkZWZpbmUgQ0xFQU5VUF91Y2xhbXBzZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51Y2xhbXBzZXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX1IgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX00gKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdWxpbWl0CisjZGVmaW5lIENMRUFOVVBfdWxpbWl0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudWxpbWl0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19lIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR19SIChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDExKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwxMikKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MTMpCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDE0KQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwxNSkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MTYpCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDE3KQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDwxOCkKKyNkZWZpbmUgRkxBR19QIChGT1JDRURfRkxBRzw8MTkpCisjZW5kaWYKKworI2lmZGVmIEZPUl91bW91bnQKKyNkZWZpbmUgQ0xFQU5VUF91bW91bnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51bW91bnQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19sICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw1KQorI2RlZmluZSBGTEFHX0QgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19kICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2MgKDFMTDw8OSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VuYW1lCisjZGVmaW5lIENMRUFOVVBfdW5hbWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51bmFtZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwzKQorI2RlZmluZSBGTEFHX20gKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw2KQorI2RlZmluZSBGTEFHX3AgKDFMTDw8NykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VuaWNvZGUKKyNkZWZpbmUgQ0xFQU5VUF91bmljb2RlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudW5pY29kZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl91bmlxCisjZGVmaW5lIENMRUFOVVBfdW5pcQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVuaXEKKyNlbmRpZgorI2RlZmluZSBGTEFHX3UgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8MykKKyNkZWZpbmUgRkxBR196ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfdyAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19mICgxTEw8PDcpCisjZW5kaWYKKworI2lmZGVmIEZPUl91bml4MmRvcworI2RlZmluZSBDTEVBTlVQX3VuaXgyZG9zCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudW5peDJkb3MKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfdW5saW5rCisjZGVmaW5lIENMRUFOVVBfdW5saW5rCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudW5saW5rCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Vuc2V0CisjZGVmaW5lIENMRUFOVVBfdW5zZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51bnNldAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl91bnNoYXJlCisjZGVmaW5lIENMRUFOVVBfdW5zaGFyZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVuc2hhcmUKKyNlbmRpZgorI2RlZmluZSBGTEFHX1UgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR191ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDwyKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MykKKyNkZWZpbmUgRkxBR19tICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDw1KQorI2RlZmluZSBGTEFHX0MgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19yICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2EgKDFMTDw8OSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VwdGltZQorI2RlZmluZSBDTEVBTlVQX3VwdGltZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVwdGltZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl91c2VyYWRkCisjZGVmaW5lIENMRUFOVVBfdXNlcmFkZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVzZXJhZGQKKyNlbmRpZgorI2RlZmluZSBGTEFHX0ggKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX0QgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX0cgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDw3KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdXNlcmRlbAorI2RlZmluZSBDTEVBTlVQX3VzZXJkZWwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51c2VyZGVsCisjZW5kaWYKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VzbGVlcAorI2RlZmluZSBDTEVBTlVQX3VzbGVlcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVzbGVlcAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl91dWRlY29kZQorI2RlZmluZSBDTEVBTlVQX3V1ZGVjb2RlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudXVkZWNvZGUKKyNlbmRpZgorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdXVlbmNvZGUKKyNkZWZpbmUgQ0xFQU5VUF91dWVuY29kZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnV1ZW5jb2RlCisjZW5kaWYKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3V1aWRnZW4KKyNkZWZpbmUgQ0xFQU5VUF91dWlkZ2VuCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudXVpZGdlbgorI2VuZGlmCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl92Y29uZmlnCisjZGVmaW5lIENMRUFOVVBfdmNvbmZpZworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnZjb25maWcKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfdmkKKyNkZWZpbmUgQ0xFQU5VUF92aQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnZpCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Ztc3RhdAorI2RlZmluZSBDTEVBTlVQX3Ztc3RhdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnZtc3RhdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl93CisjZGVmaW5lIENMRUFOVVBfdworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLncKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1Jfd2FpdAorI2RlZmluZSBDTEVBTlVQX3dhaXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy53YWl0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3dhdGNoCisjZGVmaW5lIENMRUFOVVBfd2F0Y2gKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy53YXRjaAorI2VuZGlmCisjZGVmaW5lIEZMQUdfeCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZSAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl93YXRjaGRvZworI2RlZmluZSBDTEVBTlVQX3dhdGNoZG9nCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMud2F0Y2hkb2cKKyNlbmRpZgorI2RlZmluZSBGTEFHX1QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX0YgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfd2MKKyNkZWZpbmUgQ0xFQU5VUF93YworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLndjCisjZW5kaWYKKyNkZWZpbmUgRkxBR19sICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX20gKDFMTDw8MikKKyNkZWZpbmUgRkxBR19jICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfTCAoMUxMPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfd2dldAorI2RlZmluZSBDTEVBTlVQX3dnZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy53Z2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19PIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19tYXhfcmVkaXJlY3QgKEZPUkNFRF9GTEFHPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfd2hpY2gKKyNkZWZpbmUgQ0xFQU5VUF93aGljaAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLndoaWNoCisjZW5kaWYKKyNkZWZpbmUgRkxBR19hICgxTEw8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl93aG8KKyNkZWZpbmUgQ0xFQU5VUF93aG8KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy53aG8KKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfeGFyZ3MKKyNkZWZpbmUgQ0xFQU5VUF94YXJncworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnhhcmdzCisjZW5kaWYKKyNkZWZpbmUgRkxBR18wICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MikKKyNkZWZpbmUgRkxBR19yICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDw0KQorI2RlZmluZSBGTEFHX3AgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfUCAoMUxMPDw3KQorI2RlZmluZSBGTEFHX0UgKDFMTDw8OCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3h4ZAorI2RlZmluZSBDTEVBTlVQX3h4ZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnh4ZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2UgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19nICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfbyAoMUxMPDw2KQorI2RlZmluZSBGTEFHX2wgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19jICgxTEw8PDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl94emNhdAorI2RlZmluZSBDTEVBTlVQX3h6Y2F0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMueHpjYXQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfeWVzCisjZGVmaW5lIENMRUFOVVBfeWVzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMueWVzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3pjYXQKKyNkZWZpbmUgQ0xFQU5VUF96Y2F0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuemNhdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfOSAoMUxMPDwwKQorI2RlZmluZSBGTEFHXzggKDFMTDw8MSkKKyNkZWZpbmUgRkxBR183ICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfNiAoMUxMPDwzKQorI2RlZmluZSBGTEFHXzUgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR180ICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfMyAoMUxMPDw2KQorI2RlZmluZSBGTEFHXzIgKDFMTDw8NykKKyNkZWZpbmUgRkxBR18xICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDw5KQorI2RlZmluZSBGTEFHX2sgKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfZiAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDEyKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MTMpCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvYW5kcm9pZC9saW51eC9nZW5lcmF0ZWQvZ2xvYmFscy5oIGIvYW5kcm9pZC9saW51eC9nZW5lcmF0ZWQvZ2xvYmFscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3YmRlYTYKLS0tIC9kZXYvbnVsbAorKysgYi9hbmRyb2lkL2xpbnV4L2dlbmVyYXRlZC9nbG9iYWxzLmgKQEAgLTAsMCArMSw0NzAgQEAKK3N0cnVjdCBnemlwX2RhdGEgeworICBpbnQgbGV2ZWw7Cit9OworCitzdHJ1Y3QgaG9zdG5hbWVfZGF0YSB7CisgIGNoYXIgKkY7Cit9OworCitzdHJ1Y3QgbWQ1c3VtX2RhdGEgeworICBpbnQgc2F3bGluZTsKK307CisKK3N0cnVjdCBta3RlbXBfZGF0YSB7CisgIGNoYXIgKnAsICp0bXBkaXI7Cit9OworCitzdHJ1Y3QgbW91bnRfZGF0YSB7CisgIHN0cnVjdCBhcmdfbGlzdCAqbzsKKyAgY2hhciAqdCwgKk87CisKKyAgdW5zaWduZWQgbG9uZyBmbGFnczsKKyAgY2hhciAqb3B0czsKKyAgaW50IG9rdXNlcjsKK307CisKK3N0cnVjdCBzZXFfZGF0YSB7CisgIGNoYXIgKnMsICpmOworCisgIGludCBwcmVjaXNpb24sIGJ1ZmxlbjsKK307CisKK3N0cnVjdCB1bW91bnRfZGF0YSB7CisgIHN0cnVjdCBhcmdfbGlzdCAqdDsKKworICBjaGFyICp0eXBlczsKK307CisKK3N0cnVjdCBtaWNyb2NvbV9kYXRhIHsKKyAgbG9uZyBzOworCisgIGludCBmZCwgc3RvazsKKyAgc3RydWN0IHRlcm1pb3Mgb2xkX3N0ZGluLCBvbGRfZmQ7Cit9OworCitzdHJ1Y3QgZG9zMnVuaXhfZGF0YSB7CisgIGNoYXIgKnRlbXBmaWxlOworfTsKKworc3RydWN0IGdldG9wdF9kYXRhIHsKKyAgc3RydWN0IGFyZ19saXN0ICpsOworICBjaGFyICpvLCAqbjsKK307CisKK3N0cnVjdCBuc2VudGVyX2RhdGEgeworICBjaGFyICpVdXBubWlDWzddOworICBsb25nIHQ7Cit9OworCitzdHJ1Y3QgcmVhbHBhdGhfZGF0YSB7CisgIGNoYXIgKlIsICpyZWxhdGl2ZV9iYXNlOworfTsKKworc3RydWN0IHNldHNpZF9kYXRhIHsKKyAgbG9uZyBjOworfTsKKworc3RydWN0IHN0YXRfZGF0YSB7CisgIGNoYXIgKmM7CisKKyAgdW5pb24geworICAgIHN0cnVjdCBzdGF0IHN0OworICAgIHN0cnVjdCBzdGF0ZnMgc2Y7CisgIH0gc3RhdDsKKyAgY2hhciAqZmlsZSwgKnBhdHRlcm47CisgIGludCBwYXRsZW47Cit9OworCitzdHJ1Y3QgdGltZW91dF9kYXRhIHsKKyAgY2hhciAqcywgKms7CisKKyAgc3RydWN0IHBvbGxmZCBwZmQ7CisgIHNpZ2ptcF9idWYgc2o7CisgIGludCBmZHNbMl0sIHBpZCwgcmM7Cit9OworCitzdHJ1Y3QgdHJ1bmNhdGVfZGF0YSB7CisgIGNoYXIgKnM7CisKKyAgbG9uZyBsb25nIHNpemU7CisgIGludCB0eXBlOworfTsKKworc3RydWN0IHh4ZF9kYXRhIHsKKyAgbG9uZyBzLCBnLCBvLCBsLCBjOworfTsKKworc3RydWN0IGRpZmZfZGF0YSB7CisgIGxvbmcgVTsKKyAgc3RydWN0IGFyZ19saXN0ICpMOworICBjaGFyICpGLCAqUywgKm5ld19saW5lX2Zvcm1hdCwgKm9sZF9saW5lX2Zvcm1hdCwgKnVuY2hhbmdlZF9saW5lX2Zvcm1hdDsKKworICBpbnQgZGlyX251bSwgc2l6ZSwgaXNfYmluYXJ5LCBkaWZmZXIsIGNoYW5nZSwgbGVuWzJdLCAqb2Zmc2V0WzJdOworICBzdHJ1Y3Qgc3RhdCBzdFsyXTsKKyAgc3RydWN0IHsKKyAgICBjaGFyICoqbGlzdDsKKyAgICBpbnQgbnJfZWxtOworICB9IGRpclsyXTsKKyAgc3RydWN0IHsKKyAgICBGSUxFICpmcDsKKyAgICBpbnQgbGVuOworICB9IGZpbGVbMl07Cit9OworCitzdHJ1Y3QgZXhwcl9kYXRhIHsKKyAgY2hhciAqKnRvaywgKmRlbGV0ZTsKK307CisKK3N0cnVjdCB0cl9kYXRhIHsKKyAgc2hvcnQgKm1hcDsKKyAgaW50IGxlbjEsIGxlbjI7Cit9OworCitzdHJ1Y3QgYmFzZW5hbWVfZGF0YSB7CisgIGNoYXIgKnM7Cit9OworCitzdHJ1Y3QgY2htb2RfZGF0YSB7CisgIGNoYXIgKm1vZGU7Cit9OworCitzdHJ1Y3QgY21wX2RhdGEgeworICBsb25nIG47CisKKyAgaW50IGZkOworICBjaGFyICpuYW1lOworfTsKKworc3RydWN0IGNwX2RhdGEgeworICB1bmlvbiB7CisgICAgLy8gaW5zdGFsbCdzIG9wdGlvbnMKKyAgICBzdHJ1Y3QgeworICAgICAgY2hhciAqZywgKm8sICptLCAqdDsKKyAgICB9IGk7CisgICAgLy8gY3AncyBvcHRpb25zCisgICAgc3RydWN0IHsKKyAgICAgIGNoYXIgKnQsICpwcmVzZXJ2ZTsKKyAgICB9IGM7CisgIH07CisKKyAgY2hhciAqZGVzdG5hbWU7CisgIHN0cnVjdCBzdGF0IHRvcDsKKyAgaW50ICgqY2FsbGJhY2spKHN0cnVjdCBkaXJ0cmVlICp0cnkpOworICB1aWRfdCB1aWQ7CisgIGdpZF90IGdpZDsKKyAgaW50IHBmbGFnczsKK307CisKK3N0cnVjdCBjcGlvX2RhdGEgeworICBjaGFyICpGLCAqSCwgKlI7Cit9OworCitzdHJ1Y3QgY3V0X2RhdGEgeworICBjaGFyICpkLCAqTzsKKyAgc3RydWN0IGFyZ19saXN0ICpzZWxlY3RbNV07IC8vIHdlIHRyZWF0IHRoZW0gdGhlIHNhbWUsIHNvIGxvb3AgdGhyb3VnaAorCisgIHVuc2lnbmVkIGxpbmU7CisgIGludCBwYWlyczsKKyAgcmVnZXhfdCByZWc7Cit9OworCitzdHJ1Y3QgZGF0ZV9kYXRhIHsKKyAgY2hhciAqcywgKnIsICpJLCAqRCwgKmQ7CisKKyAgdW5zaWduZWQgbmFubzsKK307CisKK3N0cnVjdCBkZF9kYXRhIHsKKyAgLy8gRGlzcGxheSBmaWVsZHMKKyAgaW50IHNob3dfeGZlciwgc2hvd19yZWNvcmRzOworICB1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXMsIGluX2Z1bGwsIGluX3BhcnQsIG91dF9mdWxsLCBvdXRfcGFydCwgc3RhcnQ7Cit9OworCitzdHJ1Y3QgZHVfZGF0YSB7CisgIGxvbmcgZDsKKworICB1bnNpZ25lZCBsb25nIGRlcHRoLCB0b3RhbDsKKyAgZGV2X3Qgc3RfZGV2OworICB2b2lkICppbm9kZXM7Cit9OworCitzdHJ1Y3QgZW52X2RhdGEgeworICBzdHJ1Y3QgYXJnX2xpc3QgKnU7CisgIGNoYXIgKmU7Cit9OworCitzdHJ1Y3QgZmlsZV9kYXRhIHsKKyAgaW50IG1heF9uYW1lX2xlbjsKKyAgb2ZmX3QgbGVuOworfTsKKworc3RydWN0IGZpbmRfZGF0YSB7CisgIGNoYXIgKipmaWx0ZXI7CisgIHN0cnVjdCBkb3VibGVfbGlzdCAqYXJnZGF0YTsKKyAgaW50IHRvcGRpciwgeGRldiwgZGVwdGg7CisgIHRpbWVfdCBub3c7CisgIGxvbmcgbWF4X2J5dGVzOworICBjaGFyICpzdGFydDsKK307CisKK3N0cnVjdCBncmVwX2RhdGEgeworICBsb25nIG0sIEEsIEIsIEM7CisgIHN0cnVjdCBhcmdfbGlzdCAqZiwgKmUsICpNLCAqUywgKmV4Y2x1ZGVfZGlyOworICBjaGFyICpjb2xvcjsKKworICBjaGFyICpwdXJwbGUsICpjeWFuLCAqcmVkLCAqZ3JlZW4sICpncmV5OworICBzdHJ1Y3QgZG91YmxlX2xpc3QgKnJlZzsKKyAgaW50IGZvdW5kLCB0cmllZCwgZGVsaW07CisgIHN0cnVjdCBhcmdfbGlzdCAqKmZpeGVkOworfTsKKworc3RydWN0IGhlYWRfZGF0YSB7CisgIGxvbmcgYywgbjsKKworICBpbnQgZmlsZV9ubzsKK307CisKK3N0cnVjdCBpZF9kYXRhIHsKKyAgaW50IGlzX2dyb3VwczsKK307CisKK3N0cnVjdCBsbl9kYXRhIHsKKyAgY2hhciAqdDsKK307CisKK3N0cnVjdCBsc19kYXRhIHsKKyAgbG9uZyB3LCBsLCBibG9ja19zaXplOworICBjaGFyICpjb2xvciwgKnNvcnQ7CisKKyAgc3RydWN0IGRpcnRyZWUgKmZpbGVzLCAqc2luZ2xlZGlyOworICB1bnNpZ25lZCBzY3JlZW5fd2lkdGg7CisgIGludCBubF90aXRsZTsKKyAgY2hhciAqZXNjbW9yZTsKK307CisKK3N0cnVjdCBta2Rpcl9kYXRhIHsKKyAgY2hhciAqbSwgKlo7Cit9OworCitzdHJ1Y3QgbmxfZGF0YSB7CisgIGNoYXIgKnMsICpuLCAqYjsKKyAgbG9uZyB3LCBsLCB2OworCisgIC8vIENvdW50IG9mIGNvbnNlY3V0aXZlIGJsYW5rIGxpbmVzIGZvciAtbCBoYXMgdG8gcGVyc2lzdCBiZXR3ZWVuIGZpbGVzCisgIGxvbmcgbGNvdW50LCBzbGVuOworfTsKKworc3RydWN0IG9kX2RhdGEgeworICBzdHJ1Y3QgYXJnX2xpc3QgKnQ7CisgIGNoYXIgKkE7CisgIGxvbmcgTiwgdywgajsKKworICBpbnQgYWRkcmVzc19pZHg7CisgIHVuc2lnbmVkIHR5cGVzLCBsZWZ0b3Zlciwgc3RhcjsKKyAgY2hhciAqYnVmOyAvLyBQb2ludHMgdG8gYnVmZmVyc1swXSBvciBidWZmZXJzWzFdLgorICBjaGFyICpidWZzWzJdOyAvLyBVc2VkIHRvIGRldGVjdCBkdXBsaWNhdGUgbGluZXMuCisgIG9mZl90IHBvczsKK307CisKK3N0cnVjdCBwYXN0ZV9kYXRhIHsKKyAgY2hhciAqZDsKKworICBpbnQgZmlsZXM7Cit9OworCitzdHJ1Y3QgcGF0Y2hfZGF0YSB7CisgIGNoYXIgKmksICpkOworICBsb25nIHYsIHAsIGcsIEY7CisKKyAgdm9pZCAqY3VycmVudF9odW5rOworICBsb25nIG9sZGxpbmUsIG9sZGxlbiwgbmV3bGluZSwgbmV3bGVuLCBsaW5lbnVtLCBvdXRudW07CisgIGludCBjb250ZXh0LCBzdGF0ZSwgZmlsZWluLCBmaWxlb3V0LCBmaWxlcGF0Y2gsIGh1bmtudW07CisgIGNoYXIgKnRlbXBuYW1lOworfTsKKworc3RydWN0IHBzX2RhdGEgeworICB1bmlvbiB7CisgICAgc3RydWN0IHsKKyAgICAgIHN0cnVjdCBhcmdfbGlzdCAqRywgKmcsICpVLCAqdSwgKnQsICpzLCAqcCwgKk8sICpvLCAqUCwgKms7CisgICAgfSBwczsKKyAgICBzdHJ1Y3QgeworICAgICAgbG9uZyBuLCBtLCBkLCBzOworICAgICAgc3RydWN0IGFyZ19saXN0ICp1LCAqcCwgKm8sICprLCAqTzsKKyAgICB9IHRvcDsKKyAgICBzdHJ1Y3QgeworICAgICAgY2hhciAqTDsKKyAgICAgIHN0cnVjdCBhcmdfbGlzdCAqRywgKmcsICpQLCAqcywgKnQsICpVLCAqdTsKKyAgICAgIGNoYXIgKmQ7CisKKyAgICAgIHZvaWQgKnJlZ2V4ZXMsICpzbmFwc2hvdDsKKyAgICAgIGludCBzaWduYWw7CisgICAgICBwaWRfdCBzZWxmLCBtYXRjaDsKKyAgICB9IHBncmVwOworICB9OworCisgIHN0cnVjdCBwc19wdHJfbGVuIHsKKyAgICB2b2lkICpwdHI7CisgICAgbG9uZyBsZW47CisgIH0gZ2csIEdHLCBwcCwgUFAsIHNzLCB0dCwgdXUsIFVVOworICBzdHJ1Y3QgZGlydHJlZSAqdGhyZWFkcGFyZW50OworICB1bnNpZ25lZCB3aWR0aCwgaGVpZ2h0LCBzY3JvbGw7CisgIGRldl90IHR0eTsKKyAgdm9pZCAqZmllbGRzLCAqa2ZpZWxkczsKKyAgbG9uZyBsb25nIHRpY2tzLCBiaXRzLCB0aW1lOworICBpbnQga2NvdW50LCBmb3JjZWssIHNvcnRwb3MsIHBpZGxlbjsKKyAgaW50ICgqbWF0Y2hfcHJvY2VzcykobG9uZyBsb25nICpzbG90KTsKKyAgdm9pZCAoKnNob3dfcHJvY2Vzcykodm9pZCAqdGIpOworfTsKKworc3RydWN0IHNlZF9kYXRhIHsKKyAgY2hhciAqaTsKKyAgc3RydWN0IGFyZ19saXN0ICpmLCAqZTsKKworICAvLyBwcm9jZXNzZWQgcGF0dGVybiBsaXN0CisgIHN0cnVjdCBkb3VibGVfbGlzdCAqcGF0dGVybjsKKworICBjaGFyICpuZXh0bGluZSwgKnJlbWVtYmVyLCAqdGFyeGZvcm07CisgIHZvaWQgKnJlc3RhcnQsICpsYXN0cmVnZXg7CisgIGxvbmcgbmV4dGxlbiwgcmVtZW1iZXJsZW4sIGNvdW50OworICBpbnQgZmRvdXQsIG5vZW9sOworICB1bnNpZ25lZCB4eCwgdGFyeGxlbiwgeGZsYWdzOworICBjaGFyIGRlbGltLCB4ZnR5cGU7Cit9OworCitzdHJ1Y3Qgc29ydF9kYXRhIHsKKyAgY2hhciAqdDsKKyAgc3RydWN0IGFyZ19saXN0ICprOworICBjaGFyICpvLCAqVCwgUzsKKworICB2b2lkICprZXlfbGlzdDsKKyAgdW5zaWduZWQgbGluZWNvdW50OworICBjaGFyICoqbGluZXMsICpuYW1lOworfTsKKworc3RydWN0IHRhaWxfZGF0YSB7CisgIGxvbmcgbiwgYzsKKyAgY2hhciAqczsKKworICBpbnQgZmlsZV9ubywgbGFzdF9mZCwgc3M7CisgIHN0cnVjdCB4bm90aWZ5ICpub3Q7CisgIHN0cnVjdCB7CisgICAgY2hhciAqcGF0aDsKKyAgICBpbnQgZmQ7CisgICAgc3RydWN0IGRldl9pbm8gZGk7CisgIH0gKkY7Cit9OworCitzdHJ1Y3QgdGFyX2RhdGEgeworICBjaGFyICpmLCAqQywgKkk7CisgIHN0cnVjdCBhcmdfbGlzdCAqVCwgKlgsICp4Zm9ybTsKKyAgbG9uZyBzdHJpcDsKKyAgY2hhciAqdG9fY29tbWFuZCwgKm93bmVyLCAqZ3JvdXAsICptdGltZSwgKm1vZGUsICpzb3J0OworICBzdHJ1Y3QgYXJnX2xpc3QgKmV4Y2x1ZGU7CisKKyAgc3RydWN0IGRvdWJsZV9saXN0ICppbmNsLCAqZXhjbCwgKnNlZW47CisgIHN0cnVjdCBzdHJpbmdfbGlzdCAqZGlyczsKKyAgY2hhciAqY3dkLCAqKnhmc2VkOworICBpbnQgZmQsIG91aWQsIGdnaWQsIGhsYywgd2Fybiwgc3BhcnNlbGVuLCBwaWQsIHhmcGlwZVsyXTsKKyAgc3RydWN0IGRldl9pbm8gYXJjaGl2ZV9kaTsKKyAgbG9uZyBsb25nICpzcGFyc2U7CisgIHRpbWVfdCBtdHQ7CisKKyAgLy8gaGFyZGxpbmtzIHNlZW4gc28gZmFyIChobGMgbWFueSkKKyAgc3RydWN0IHsKKyAgICBjaGFyICphcmc7CisgICAgc3RydWN0IGRldl9pbm8gZGk7CisgIH0gKmhseDsKKworICAvLyBQYXJzZWQgaW5mb3JtYXRpb24gYWJvdXQgYSB0YXIgaGVhZGVyLgorICBzdHJ1Y3QgdGFyX2hlYWRlciB7CisgICAgY2hhciAqbmFtZSwgKmxpbmtfdGFyZ2V0LCAqdW5hbWUsICpnbmFtZTsKKyAgICBsb25nIGxvbmcgc2l6ZSwgc3NpemU7CisgICAgdWlkX3QgdWlkOworICAgIGdpZF90IGdpZDsKKyAgICBtb2RlX3QgbW9kZTsKKyAgICB0aW1lX3QgbXRpbWU7CisgICAgZGV2X3QgZGV2aWNlOworICB9IGhkcjsKK307CisKK3N0cnVjdCB0ZWVfZGF0YSB7CisgIHZvaWQgKm91dHB1dHM7CisgIGludCBvdXQ7Cit9OworCitzdHJ1Y3QgdG91Y2hfZGF0YSB7CisgIGNoYXIgKnQsICpyLCAqZDsKK307CisKK3N0cnVjdCB1bmlxX2RhdGEgeworICBsb25nIHcsIHMsIGY7CisKKyAgbG9uZyByZXBlYXRzOworfTsKKworc3RydWN0IHdjX2RhdGEgeworICB1bnNpZ25lZCBsb25nIHRvdGFsc1s1XTsKK307CisKK3N0cnVjdCB4YXJnc19kYXRhIHsKKyAgbG9uZyBzLCBuLCBQOworICBjaGFyICpFOworCisgIGxvbmcgZW50cmllcywgYnl0ZXMsIG5wOworICBjaGFyIGRlbGltOworICBGSUxFICp0dHk7Cit9OworZXh0ZXJuIHVuaW9uIGdsb2JhbF91bmlvbiB7CisJc3RydWN0IGd6aXBfZGF0YSBnemlwOworCXN0cnVjdCBob3N0bmFtZV9kYXRhIGhvc3RuYW1lOworCXN0cnVjdCBtZDVzdW1fZGF0YSBtZDVzdW07CisJc3RydWN0IG1rdGVtcF9kYXRhIG1rdGVtcDsKKwlzdHJ1Y3QgbW91bnRfZGF0YSBtb3VudDsKKwlzdHJ1Y3Qgc2VxX2RhdGEgc2VxOworCXN0cnVjdCB1bW91bnRfZGF0YSB1bW91bnQ7CisJc3RydWN0IG1pY3JvY29tX2RhdGEgbWljcm9jb207CisJc3RydWN0IGRvczJ1bml4X2RhdGEgZG9zMnVuaXg7CisJc3RydWN0IGdldG9wdF9kYXRhIGdldG9wdDsKKwlzdHJ1Y3QgbnNlbnRlcl9kYXRhIG5zZW50ZXI7CisJc3RydWN0IHJlYWxwYXRoX2RhdGEgcmVhbHBhdGg7CisJc3RydWN0IHNldHNpZF9kYXRhIHNldHNpZDsKKwlzdHJ1Y3Qgc3RhdF9kYXRhIHN0YXQ7CisJc3RydWN0IHRpbWVvdXRfZGF0YSB0aW1lb3V0OworCXN0cnVjdCB0cnVuY2F0ZV9kYXRhIHRydW5jYXRlOworCXN0cnVjdCB4eGRfZGF0YSB4eGQ7CisJc3RydWN0IGRpZmZfZGF0YSBkaWZmOworCXN0cnVjdCBleHByX2RhdGEgZXhwcjsKKwlzdHJ1Y3QgdHJfZGF0YSB0cjsKKwlzdHJ1Y3QgYmFzZW5hbWVfZGF0YSBiYXNlbmFtZTsKKwlzdHJ1Y3QgY2htb2RfZGF0YSBjaG1vZDsKKwlzdHJ1Y3QgY21wX2RhdGEgY21wOworCXN0cnVjdCBjcF9kYXRhIGNwOworCXN0cnVjdCBjcGlvX2RhdGEgY3BpbzsKKwlzdHJ1Y3QgY3V0X2RhdGEgY3V0OworCXN0cnVjdCBkYXRlX2RhdGEgZGF0ZTsKKwlzdHJ1Y3QgZGRfZGF0YSBkZDsKKwlzdHJ1Y3QgZHVfZGF0YSBkdTsKKwlzdHJ1Y3QgZW52X2RhdGEgZW52OworCXN0cnVjdCBmaWxlX2RhdGEgZmlsZTsKKwlzdHJ1Y3QgZmluZF9kYXRhIGZpbmQ7CisJc3RydWN0IGdyZXBfZGF0YSBncmVwOworCXN0cnVjdCBoZWFkX2RhdGEgaGVhZDsKKwlzdHJ1Y3QgaWRfZGF0YSBpZDsKKwlzdHJ1Y3QgbG5fZGF0YSBsbjsKKwlzdHJ1Y3QgbHNfZGF0YSBsczsKKwlzdHJ1Y3QgbWtkaXJfZGF0YSBta2RpcjsKKwlzdHJ1Y3QgbmxfZGF0YSBubDsKKwlzdHJ1Y3Qgb2RfZGF0YSBvZDsKKwlzdHJ1Y3QgcGFzdGVfZGF0YSBwYXN0ZTsKKwlzdHJ1Y3QgcGF0Y2hfZGF0YSBwYXRjaDsKKwlzdHJ1Y3QgcHNfZGF0YSBwczsKKwlzdHJ1Y3Qgc2VkX2RhdGEgc2VkOworCXN0cnVjdCBzb3J0X2RhdGEgc29ydDsKKwlzdHJ1Y3QgdGFpbF9kYXRhIHRhaWw7CisJc3RydWN0IHRhcl9kYXRhIHRhcjsKKwlzdHJ1Y3QgdGVlX2RhdGEgdGVlOworCXN0cnVjdCB0b3VjaF9kYXRhIHRvdWNoOworCXN0cnVjdCB1bmlxX2RhdGEgdW5pcTsKKwlzdHJ1Y3Qgd2NfZGF0YSB3YzsKKwlzdHJ1Y3QgeGFyZ3NfZGF0YSB4YXJnczsKK30gdGhpczsKZGlmZiAtLWdpdCBhL2FuZHJvaWQvbGludXgvZ2VuZXJhdGVkL2hlbHAuaCBiL2FuZHJvaWQvbGludXgvZ2VuZXJhdGVkL2hlbHAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjA5NWMxCi0tLSAvZGV2L251bGwKKysrIGIvYW5kcm9pZC9saW51eC9nZW5lcmF0ZWQvaGVscC5oCkBAIC0wLDAgKzEsNjkyIEBACisjZGVmaW5lIEhFTFBfdG95Ym94X2ZvcmNlX25vbW11ICJXaGVuIHVzaW5nIG11c2wtbGliYyBvbiBhIG5vbW11IHN5c3RlbSwgeW91J2xsIG5lZWQgdG8gc2F5IFwieVwiIGhlcmVcbnVubGVzcyB5b3UgdXNlZCB0aGUgcGF0Y2ggaW4gdGhlIG1jbS1idWlsZGFsbC5zaCBzY3JpcHQuIFlvdSBjYW4gYWxzb1xuc2F5IFwieVwiIGhlcmUgdG8gdGVzdCB0aGUgbm9tbXUgY29kZXBhdGhzIG9uIGFuIG1tdSBzeXN0ZW0uXG5cbkEgbm9tbXUgc3lzdGVtIGNhbid0IHVzZSBmb3JrKCksIGl0IGNhbiBvbmx5IHZmb3JrKCkgd2hpY2ggc3VzcGVuZHNcbnRoZSBwYXJlbnQgdW50aWwgdGhlIGNoaWxkIGNhbGxzIGV4ZWMoKSBvciBleGl0cy4gV2hlbiBhIHByb2dyYW1cbm5lZWRzIGEgc2Vjb25kIGluc3RhbmNlIG9mIGl0c2VsZiB0byBydW4gc3BlY2lmaWMgY29kZSBhdCB0aGUgc2FtZVxudGltZSBhcyB0aGUgcGFyZW50LCBpdCBtdXN0IHVzZSBhIG1vcmUgY29tcGxpY2F0ZWQgYXBwcm9hY2ggKHN1Y2ggYXNcbmV4ZWMoXCIvcHJvYy9zZWxmL2V4ZVwiKSB0aGVuIHBhc3MgZGF0YSB0byB0aGUgbmV3IGNoaWxkIHRocm91Z2ggYSBwaXBlKVxud2hpY2ggaXMgbGFyZ2VyIGFuZCBzbG93ZXIsIGVzcGVjaWFsbHkgZm9yIHRoaW5ncyBsaWtlIHRveXNoIHN1YnNoZWxsc1xudGhhdCBuZWVkIHRvIGR1cGxpY2F0ZSBhIGxvdCBvZiBpbnRlcm5hbCBzdGF0ZSBpbiB0aGUgY2hpbGQgcHJvY2Vzc1xuZm9yaygpIGdpdmVzIHlvdSBmb3IgZnJlZS5cblxuTGlicmFyaWVzIGxpa2UgdWNsaWJjIG9taXQgZm9yaygpIG9uIG5vbW11IHN5c3RlbXMsIGFsbG93aW5nXG5jb21waWxlLXRpbWUgcHJvYmVzIHRvIHNlbGVjdCB3aGljaCBjb2RlcGF0aCB0byB1c2UuIEJ1dCBtdXNsXG5pbnRlbnRpb25hbGx5IGluY2x1ZGVzIGEgYnJva2VuIHZlcnNpb24gb2YgZm9yaygpIHRoYXQgYWx3YXlzIHJldHVybnNcbi1FTk9TWVMgb24gbm9tbXUgc3lzdGVtcywgYW5kIGdvZXMgb3V0IG9mIGl0cyB3YXkgdG8gcHJldmVudCBhbnlcbmNyb3NzLWNvbXBpbGUgY29tcGF0aWJsZSBjb21waWxlLXRpbWUgcHJvYmVzIGZvciBhIG5vbW11IHN5c3RlbS5cbihJdCBkb2Vzbid0IGV2ZW4gI2RlZmluZSBfX01VU0xfXyBpbiBmZWF0dXJlcy5oLikgTXVzbCBkb2VzIHRoaXNcbmRlc3BpdGUgdGhlIGZhY3QgdGhhdCBhIG5vbW11IHN5c3RlbSBjYW4ndCBldmVuIHJ1biBzdGFuZGFyZCBFTEZcbmJpbmFyaWVzIChyZXF1aXJpbmcgc3BlY2lhbGx5IHBhY2thZ2VkIGV4ZWN1dGFibGVzKSBiZWNhdXNlIGl0IHdhbnRzXG50byBmb3JjZSBldmVyeSBwcm9ncmFtIHRvIGVpdGhlciBpbmNsdWRlIGFsbCBub21tdSBjb2RlIGluIGV2ZXJ5XG5pbnN0YW5jZSBldmVyIGJ1aWx0LCBvciBkcm9wIG5vbW11IHN1cHBvcnQgYWx0b2dldGhlci5cblxuQnVpbGRpbmcgYSBzY3JpcHRzL21jbS1idWlsZGFsbC5zaCB0b29sY2hhaW4gcGF0Y2hlcyBtdXNsIHRvIGZpeCB0aGlzLiIKKworI2RlZmluZSBIRUxQX3RveWJveF91aWRfdXNyICJXaGVuIGNvbW1hbmRzIGxpa2UgdXNlcmFkZC9ncm91cGFkZCBhbGxvY2F0ZSB1c2VyIElEcywgc3RhcnQgaGVyZS4iCisKKyNkZWZpbmUgSEVMUF90b3lib3hfdWlkX3N5cyAiV2hlbiBjb21tYW5kcyBsaWtlIHVzZXJhZGQvZ3JvdXBhZGQgYWxsb2NhdGUgc3lzdGVtIElEcywgc3RhcnQgaGVyZS4iCisKKyNkZWZpbmUgSEVMUF90b3lib3hfZGVidWcgIkVuYWJsZSBleHRyYSBjaGVja3MgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4gQWxsIG9mIHRoZW0gY2F0Y2hcbnRoaW5ncyB0aGF0IGNhbiBvbmx5IGdvIHdyb25nIGF0IGRldmVsb3BtZW50IHRpbWUsIG5vdCBydW50aW1lLiIKKworI2RlZmluZSBIRUxQX3RveWJveF9ub3JlY3Vyc2UgIldoZW4gb25lIHRveWJveCBjb21tYW5kIGNhbGxzIGFub3RoZXIsIHVzdWFsbHkgaXQganVzdCBjYWxscyB0aGUgbmV3XG5jb21tYW5kJ3MgbWFpbigpIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHNlYXJjaGluZyB0aGUgJFBBVEggYW5kIGNhbGxpbmdcbmV4ZWMgb24gYW5vdGhlciBmaWxlICh3aGljaCBpcyBtdWNoIHNsb3dlcikuXG5cblRoaXMgZGlzYWJsZXMgdGhhdCBvcHRpbWl6YXRpb24sIHNvIHRveWJveCB3aWxsIHJ1biBleHRlcm5hbCBjb21tYW5kc1xuICAgICAgIGV2ZW4gd2hlbiBpdCBoYXMgYSBidWlsdC1pbiB2ZXJzaW9uIG9mIHRoYXQgY29tbWFuZC4gVGhpcyByZXF1aXJlc1xuICAgICAgIHRveWJveCBzeW1saW5rcyB0byBiZSBpbnN0YWxsZWQgaW4gdGhlICRQQVRILCBvciByZS1pbnZva2luZyB0aGVcbiAgICAgICBcInRveWJveFwiIG11bHRpcGxleGVyIGNvbW1hbmQgYnkgbmFtZS4iCisKKyNkZWZpbmUgSEVMUF90b3lib3hfZnJlZSAiV2hlbiBhIHByb2dyYW0gZXhpdHMsIHRoZSBvcGVyYXRpbmcgc3lzdGVtIHdpbGwgY2xlYW4gdXAgYWZ0ZXIgaXRcbihmcmVlIG1lbW9yeSwgY2xvc2UgZmlsZXMsIGV0YykuIFRvIHNhdmUgc2l6ZSwgdG95Ym94IHVzdWFsbHkgcmVsaWVzXG5vbiB0aGlzIGJlaGF2aW9yLiBJZiB5b3UncmUgcnVubmluZyB0b3lib3ggdW5kZXIgYSBkZWJ1Z2dlciBvclxud2l0aG91dCBhIHJlYWwgT1MgKGFsYSBuZXdsaWIrbGliZ2xvc3MpLCBlbmFibGUgdGhpcyB0byBtYWtlIHRveWJveFxuY2xlYW4gdXAgYWZ0ZXIgaXRzZWxmLiIKKworI2RlZmluZSBIRUxQX3RveWJveF96aGVscCAiQ29tcHJlc3MgaGVscCB3aXRoIGd6aXAgLTksIGRlZmxhdGluZyB3aGVuIGRpc3BsYXllZC4gVGhpcyBtYWtlcyB0aGVcbmJpbmFyeSBzbWFsbGVyIGJ1dCBjYW4gaW5jcmVhc2UgcnVudGltZSBtZW1vcnkgdXNhZ2UuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X2hlbHBfZGFzaGRhc2ggIlN1cHBvcnQgLS1oZWxwIGFyZ3VtZW50IGluIGFsbCBjb21tYW5kcywgZXZlbiBvbmVzIHdpdGggYSBOVUxMXG5vcHRzdHJpbmcuIChVc2UgVE9ZRkxBR19OT0hFTFAgdG8gZGlzYWJsZS4pIFByb2R1Y2VzIHRoZSBzYW1lIG91dHB1dFxuYXMgXCJoZWxwIGNvbW1hbmRcIi4gLS12ZXJzaW9uIHNob3dzIHRveWJveCB2ZXJzaW9uLiIKKworI2RlZmluZSBIRUxQX3RveWJveF9oZWxwICJJbmNsdWRlIGhlbHAgdGV4dCBmb3IgZWFjaCBjb21tYW5kLiIKKworI2RlZmluZSBIRUxQX3RveWJveF9mbG9hdCAiSW5jbHVkZSBmbG9hdGluZyBwb2ludCBzdXBwb3J0IGluZnJhc3RydWN0dXJlIGFuZCBjb21tYW5kcyB0aGF0XG5yZXF1aXJlIGl0LiIKKworI2RlZmluZSBIRUxQX3RveWJveF9saWJ6ICJVc2UgbGlieiBmb3IgZ3ogc3VwcG9ydC4iCisKKyNkZWZpbmUgSEVMUF90b3lib3hfbGliY3J5cHRvICJVc2UgZmFzdGVyIGhhc2ggZnVuY3Rpb25zIG91dCBvZiBleHRlcm5hbCAtbGNyeXB0byBsaWJyYXJ5LiIKKworI2RlZmluZSBIRUxQX3RveWJveF9zbWFjayAiSW5jbHVkZSBTTUFDSyBvcHRpb25zIGluIGNvbW1hbmRzIGxpa2UgbHMgZm9yIHN5c3RlbXMgbGlrZSBUaXplbi4iCisKKyNkZWZpbmUgSEVMUF90b3lib3hfc2VsaW51eCAiSW5jbHVkZSBTRUxpbnV4IG9wdGlvbnMgaW4gY29tbWFuZHMgc3VjaCBhcyBscywgYW5kIGFkZFxuU0VMaW51eC1zcGVjaWZpYyBjb21tYW5kcyBzdWNoIGFzIGNoY29uIHRvIHRoZSBBbmRyb2lkIG1lbnUuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X2xzbV9ub25lICJEb24ndCB0cnkgdG8gYWNoaWV2ZSBcIndhdGVydGlnaHRcIiBieSBwbHVnZ2luZyB0aGUgaG9sZXMgaW4gYVxuY29sbGFuZGVyLCBpbnN0ZWFkIHVzZSBjb252ZW50aW9uYWwgdW5peCBzZWN1cml0eSAoYW5kIHBvc3NpYmx5XG5MaW51eCBDb250YWluZXJzKSBmb3IgYSBzaW1wbGUgc3RyYWlnaHRmb3J3YXJkIHN5c3RlbS4iCisKKyNkZWZpbmUgSEVMUF90b3lib3hfc3VpZCAiU3VwcG9ydCBmb3IgdGhlIFNldCBVc2VyIElEIGJpdCwgdG8gaW5zdGFsbCB0b3lib3ggc3VpZCByb290IGFuZCBkcm9wXG5wZXJtaXNzaW9ucyBmb3IgY29tbWFuZHMgd2hpY2ggZG8gbm90IHJlcXVpcmUgcm9vdCBhY2Nlc3MuIFRvIHVzZVxudGhpcyBjaGFuZ2Ugb3duZXJzaGlwIG9mIHRoZSBmaWxlIHRvIHRoZSByb290IHVzZXIgYW5kIHNldCB0aGUgc3VpZFxuYml0IGluIHRoZSBmaWxlIHBlcm1pc3Npb25zOlxuXG5jaG93biByb290OnJvb3QgdG95Ym94OyBjaG1vZCArcyB0b3lib3hcblxucHJvbXB0IFwiU2VjdXJpdHkgQmxhbmtldFwiXG5kZWZhdWx0IFRPWUJPWF9MU01fTk9ORVxuaGVscFxuU2VsZWN0IGEgTGludXggU2VjdXJpdHkgTW9kdWxlIHRvIGNvbXBsaWNhdGUgeW91ciBzeXN0ZW1cbnVudGlsIHlvdSBjYW4ndCBmaW5kIGhvbGVzIGluIGl0LiIKKworI2RlZmluZSBIRUxQX3RveWJveCAidXNhZ2U6IHRveWJveCBbLS1sb25nIHwgLS1oZWxwIHwgLS12ZXJzaW9uIHwgW0NPTU1BTkRdIFtBUkdVTUVOVFMuLi5dXVxuXG5XaXRoIG5vIGFyZ3VtZW50cywgXCJ0b3lib3hcIiBzaG93cyBhdmFpbGFibGUgQ09NTUFORCBuYW1lcy4gQWRkIC0tbG9uZ1xudG8gaW5jbHVkZSBzdWdnZXN0ZWQgaW5zdGFsbCBwYXRoIGZvciBlYWNoIGNvbW1hbmQsIHNlZVxuaHR0cHM6Ly9sYW5kbGV5Lm5ldC90b3lib3gvZmFxLmh0bWwjaW5zdGFsbCBmb3IgZGV0YWlscy5cblxuRmlyc3QgYXJndW1lbnQgaXMgbmFtZSBvZiBhIENPTU1BTkQgdG8gcnVuLCBmb2xsb3dlZCBieSBhbnkgQVJHVU1FTlRTXG50byB0aGF0IGNvbW1hbmQuIE1vc3QgdG95Ym94IGNvbW1hbmRzIGFsc28gdW5kZXJzdGFuZDpcblxuLS1oZWxwCQlTaG93IGNvbW1hbmQgaGVscCAob25seSlcbi0tdmVyc2lvbglTaG93IHRveWJveCB2ZXJzaW9uIChvbmx5KVxuXG5UaGUgZmlsZW5hbWUgXCItXCIgbWVhbnMgc3RkaW4vc3Rkb3V0LCBhbmQgXCItLVwiIHN0b3BzIGFyZ3VtZW50IHBhcnNpbmcuXG5cbk51bWVyaWNhbCBhcmd1bWVudHMgYWNjZXB0IGEgc2luZ2xlIGxldHRlciBzdWZmaXggZm9yXG5raWxvLCBtZWdhLCBnaWdhLCB0ZXJhLCBwZXRhLCBhbmQgZXhhYnl0ZXMsIHBsdXMgYW4gYWRkaXRpb25hbFxuXCJkXCIgdG8gaW5kaWNhdGUgZGVjaW1hbCAxMDAwJ3MgaW5zdGVhZCBvZiAxMDI0LlxuXG5EdXJhdGlvbnMgY2FuIGJlIGRlY2ltYWwgZnJhY3Rpb25zIGFuZCBhY2NlcHQgbWludXRlIChcIm1cIiksIGhvdXIgKFwiaFwiKSxcbm9yIGRheSAoXCJkXCIpIHN1ZmZpeGVzIChzbyAwLjFtID0gNnMpLiIKKworI2RlZmluZSBIRUxQX3NldGVuZm9yY2UgInVzYWdlOiBzZXRlbmZvcmNlIFtlbmZvcmNpbmd8cGVybWlzc2l2ZXwxfDBdXG5cblNldHMgd2hldGhlciBTRUxpbnV4IGlzIGVuZm9yY2luZyAoMSkgb3IgcGVybWlzc2l2ZSAoMCkuIgorCisjZGVmaW5lIEhFTFBfc2VuZGV2ZW50ICJ1c2FnZTogc2VuZGV2ZW50IERFVklDRSBUWVBFIENPREUgVkFMVUVcblxuU2VuZHMgYSBMaW51eCBpbnB1dCBldmVudC4iCisKKyNkZWZpbmUgSEVMUF9ydW5jb24gInVzYWdlOiBydW5jb24gQ09OVEVYVCBDT01NQU5EIFtBUkdTLi4uXVxuXG5SdW4gYSBjb21tYW5kIGluIGEgc3BlY2lmaWVkIHNlY3VyaXR5IGNvbnRleHQuIgorCisjZGVmaW5lIEhFTFBfcmVzdG9yZWNvbiAidXNhZ2U6IHJlc3RvcmVjb24gWy1EXSBbLUZdIFstUl0gWy1uXSBbLXZdIEZJTEUuLi5cblxuUmVzdG9yZXMgdGhlIGRlZmF1bHQgc2VjdXJpdHkgY29udGV4dHMgZm9yIHRoZSBnaXZlbiBmaWxlcy5cblxuLUQJQXBwbHkgdG8gL2RhdGEvZGF0YSB0b29cbi1GCUZvcmNlIHJlc2V0XG4tUglSZWN1cnNlIGludG8gZGlyZWN0b3JpZXNcbi1uCURvbid0IG1ha2UgYW55IGNoYW5nZXM7IHVzZWZ1bCB3aXRoIC12IHRvIHNlZSB3aGF0IHdvdWxkIGNoYW5nZVxuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX2xvZyAidXNhZ2U6IGxvZyBbLXAgUFJJXSBbLXQgVEFHXSBbTUVTU0FHRS4uLl1cblxuTG9ncyBtZXNzYWdlIChvciBzdGRpbikgdG8gbG9nY2F0LlxuXG4tcAlVc2UgdGhlIGdpdmVuIHByaW9yaXR5IGluc3RlYWQgb2YgSU5GTzpcbglkOiBERUJVRyAgZTogRVJST1IgIGY6IEZBVEFMICBpOiBJTkZPICB2OiBWRVJCT1NFICB3OiBXQVJOICBzOiBTSUxFTlRcbi10CVVzZSB0aGUgZ2l2ZW4gdGFnIGluc3RlYWQgb2YgXCJsb2dcIiIKKworI2RlZmluZSBIRUxQX2xvYWRfcG9saWN5ICJ1c2FnZTogbG9hZF9wb2xpY3kgRklMRVxuXG5Mb2FkIHRoZSBzcGVjaWZpZWQgU0VMaW51eCBwb2xpY3kgZmlsZS4iCisKKyNkZWZpbmUgSEVMUF9nZXRlbmZvcmNlICJ1c2FnZTogZ2V0ZW5mb3JjZVxuXG5TaG93cyB3aGV0aGVyIFNFTGludXggaXMgZGlzYWJsZWQsIGVuZm9yY2luZywgb3IgcGVybWlzc2l2ZS4iCisKKyNkZWZpbmUgSEVMUF9za2VsZXRvbl9hbGlhcyAidXNhZ2U6IHNrZWxldG9uX2FsaWFzIFstZHFdIFstYiBOVU1CRVJdXG5cbkV4YW1wbGUgb2YgYSBzZWNvbmQgY29tbWFuZCB3aXRoIGRpZmZlcmVudCBhcmd1bWVudHMgaW4gdGhlIHNhbWUgc291cmNlXG5maWxlIGFzIHRoZSBmaXJzdC4gVGhpcyBhbGxvd3Mgc2hhcmVkIGluZnJhc3RydWN0dXJlIG91dHNpZGUgb2YgbGliLy4iCisKKyNkZWZpbmUgSEVMUF9za2VsZXRvbiAidXNhZ2U6IHNrZWxldG9uIFstYV0gWy1iIFNUUklOR10gWy1jIE5VTUJFUl0gWy1kIExJU1RdIFstZSBDT1VOVF0gWy4uLl1cblxuVGVtcGxhdGUgZm9yIG5ldyBjb21tYW5kcy4gWW91IGRvbid0IG5lZWQgdGhpcy5cblxuV2hlbiBjcmVhdGluZyBhIG5ldyBjb21tYW5kLCBjb3B5IHRoaXMgZmlsZSBhbmQgZGVsZXRlIHRoZSBwYXJ0cyB5b3VcbmRvbid0IG5lZWQuIEJlIHN1cmUgdG8gcmVwbGFjZSBhbGwgaW5zdGFuY2VzIG9mIFwic2tlbGV0b25cIiAodXBwZXIgYW5kIGxvd2VyXG5jYXNlKSB3aXRoIHlvdXIgbmV3IGNvbW1hbmQgbmFtZS5cblxuRm9yIHNpbXBsZSBjb21tYW5kcywgXCJoZWxsby5jXCIgaXMgcHJvYmFibHkgYSBiZXR0ZXIgc3RhcnRpbmcgcG9pbnQuIgorCisjZGVmaW5lIEhFTFBfbG9ncGF0aCAidXNhZ2U6IGxvZ3BhdGggLi4uXG5cbkFwcGVuZCBjb21tYW5kIGxpbmUgdG8gJExPR1BBVEgsIHRoZW4gY2FsbCBzZWNvbmQgaW5zdGFuY2Vcbm9mIGNvbW1hbmQgaW4gJFBBVEguIgorCisjZGVmaW5lIEhFTFBfaG9zdGlkICJ1c2FnZTogaG9zdGlkXG5cblByaW50IHRoZSBudW1lcmljIGlkZW50aWZpZXIgZm9yIHRoZSBjdXJyZW50IGhvc3QuIgorCisjZGVmaW5lIEhFTFBfaGVsbG8gInVzYWdlOiBoZWxsb1xuXG5BIGhlbGxvIHdvcmxkIHByb2dyYW0uXG5cbk1vc3RseSB1c2VkIGFzIGEgc2ltcGxlIHRlbXBsYXRlIGZvciBhZGRpbmcgbmV3IGNvbW1hbmRzLlxuT2NjYXNpb25hbGx5IG5pY2UgdG8gc21va2V0ZXN0IGtlcm5lbCBib290aW5nIHZpYSBcImluaXQ9L3Vzci9iaW4vaGVsbG9cIi4iCisKKyNkZWZpbmUgSEVMUF9kZW1vX3V0Zjh0b3djICJ1c2FnZTogZGVtb191dGY4dG93Y1xuXG5QcmludCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRveWJveCdzIHV0ZjggY29udmVyc2lvbiByb3V0aW5lcyB2cyBsaWJjIGR1IGpvdXIuIgorCisjZGVmaW5lIEhFTFBfZGVtb19zY2Fua2V5ICJ1c2FnZTogZGVtb19zY2Fua2V5XG5cbk1vdmUgYSBsZXR0ZXIgYXJvdW5kIHRoZSBzY3JlZW4uIEhpdCBFU0MgdG8gZXhpdC4iCisKKyNkZWZpbmUgSEVMUF9kZW1vX251bWJlciAidXNhZ2U6IGRlbW9fbnVtYmVyIFstaHNiaV0gWy1EIExFTl0gTlVNQkVSLi4uXG5cbi1ECW91dHB1dCBmaWVsZCBpcyBMRU4gY2hhcnNcbi1NCWlucHV0IHVuaXRzIChpbmRleCBpbnRvIGJrbWd0cGUpXG4tYwlDb21tYSBjb21tYSBkb3duIGRvIGJlIGRvIGRvd24gZG93blxuLWIJVXNlIFwiQlwiIGZvciBzaW5nbGUgYnl0ZSB1bml0cyAoSFJfQilcbi1kCURlY2ltYWwgdW5pdHNcbi1oCUh1bWFuIHJlYWRhYmxlXG4tcwlTcGFjZSBiZXR3ZWVuIG51bWJlciBhbmQgdW5pdHMgKEhSX1NQQUNFKSIKKworI2RlZmluZSBIRUxQX2RlbW9fbWFueV9vcHRpb25zICJ1c2FnZTogZGVtb19tYW55X29wdGlvbnMgLVthLXpBLVpdXG5cblByaW50IHRoZSBvcHRmbGFncyB2YWx1ZSBvZiB0aGUgY29tbWFuZCBhcmd1bWVudHMsIGluIGhleC4iCisKKyNkZWZpbmUgSEVMUF91bW91bnQgInVzYWdlOiB1bW91bnQgWy1hIFstdCBUWVBFWyxUWVBFLi4uXV1dIFstdnJmRF0gW0RJUi4uLl1cblxuVW5tb3VudCB0aGUgbGlzdGVkIGZpbGVzeXN0ZW1zLlxuXG4tYQlVbm1vdW50IGFsbCBtb3VudHMgaW4gL3Byb2MvbW91bnRzIGluc3RlYWQgb2YgY29tbWFuZCBsaW5lIGxpc3Rcbi1ECURvbid0IGZyZWUgbG9vcGJhY2sgZGV2aWNlKHMpXG4tZglGb3JjZSB1bm1vdW50XG4tbAlMYXp5IHVubW91bnQgKGRldGFjaCBmcm9tIGZpbGVzeXN0ZW0gbm93LCBjbG9zZSB3aGVuIGxhc3QgdXNlciBkb2VzKVxuLW4JRG9uJ3QgdXNlIC9wcm9jL21vdW50c1xuLXIJUmVtb3VudCByZWFkIG9ubHkgaWYgdW5tb3VudGluZyBmYWlsc1xuLXQJUmVzdHJpY3QgXCJhbGxcIiB0byBtb3VudHMgb2YgVFlQRSAob3IgdXNlIFwibm9UWVBFXCIgdG8gc2tpcClcbi12CVZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9zeW5jICJ1c2FnZTogc3luY1xuXG5Xcml0ZSBwZW5kaW5nIGNhY2hlZCBkYXRhIHRvIGRpc2sgKHN5bmNocm9uaXplKSwgYmxvY2tpbmcgdW50aWwgZG9uZS4iCisKKyNkZWZpbmUgSEVMUF9zdSAidXNhZ2U6IHN1IFstbHBdIFstdSBVSURdIFstZyBHSUQsLi4uXSBbLXMgU0hFTExdIFstYyBDTURdIFtVU0VSIFtDT01NQU5ELi4uXV1cblxuU3dpdGNoIHVzZXIsIHByb21wdGluZyBmb3IgcGFzc3dvcmQgb2YgbmV3IHVzZXIgd2hlbiBub3QgcnVuIGFzIHJvb3QuXG5cbldpdGggb25lIGFyZ3VtZW50LCBzd2l0Y2ggdG8gVVNFUiBhbmQgcnVuIHVzZXIncyBzaGVsbCBmcm9tIC9ldGMvcGFzc3dkLlxuV2l0aCBubyBhcmd1bWVudHMsIFVTRVIgaXMgcm9vdC4gSWYgQ09NTUFORCBsaW5lIHByb3ZpZGVkIGFmdGVyIFVTRVIsXG5leGVjKCkgaXQgYXMgbmV3IFVTRVIgKGJ5cGFzc2luZyBzaGVsbCkuIElmIC11IG9yIC1nIHNwZWNpZmllZCwgZmlyc3RcbmFyZ3VtZW50IChpZiBhbnkpIGlzbid0IFVTRVIgKGl0J3MgQ09NTUFORCkuXG5cbmZpcnN0IGFyZ3VtZW50IGlzIFVTRVIgbmFtZSB0byBzd2l0Y2ggdG8gKHdoaWNoIG11c3QgZXhpc3QpLlxuTm9uLXJvb3QgdXNlcnMgYXJlIHByb21wdGVkIGZvciBuZXcgdXNlcidzIHBhc3N3b3JkLlxuXG4tcwlTaGVsbCB0byB1c2UgKGRlZmF1bHQgaXMgdXNlcidzIHNoZWxsIGZyb20gL2V0Yy9wYXNzd2QpXG4tYwlDb21tYW5kIGxpbmUgdG8gcGFzcyB0byAtcyBzaGVsbCAoYWxhIHNoIC1jIFwiQ01EXCIpXG4tbAlSZXNldCBlbnZpcm9ubWVudCBhcyBpZiBuZXcgbG9naW4uXG4tdQlTd2l0Y2ggdG8gVUlEIGluc3RlYWQgb2YgVVNFUlxuLWcJU3dpdGNoIHRvIEdJRCAob25seSByb290IGFsbG93ZWQsIGNhbiBiZSBjb21tYSBzZXBhcmF0ZWQgbGlzdClcbi1wCVByZXNlcnZlIGVudmlyb25tZW50IChleGNlcHQgZm9yICRQQVRIIGFuZCAkSUZTKSIKKworI2RlZmluZSBIRUxQX3NlcSAidXNhZ2U6IHNlcSBbLXd8LWYgZm10X3N0cl0gWy1zIHNlcF9zdHJdIFtmaXJzdF0gW2luY3JlbWVudF0gbGFzdFxuXG5Db3VudCBmcm9tIGZpcnN0IHRvIGxhc3QsIGJ5IGluY3JlbWVudC4gT21pdHRlZCBhcmd1bWVudHMgZGVmYXVsdFxudG8gMS4gVHdvIGFyZ3VtZW50cyBhcmUgdXNlZCBhcyBmaXJzdCBhbmQgbGFzdC4gQXJndW1lbnRzIGNhbiBiZVxubmVnYXRpdmUgb3IgZmxvYXRpbmcgcG9pbnQuXG5cbi1mCVVzZSBmbXRfc3RyIGFzIGEgcHJpbnRmLXN0eWxlIGZsb2F0aW5nIHBvaW50IGZvcm1hdCBzdHJpbmdcbi1zCVVzZSBzZXBfc3RyIGFzIHNlcGFyYXRvciwgZGVmYXVsdCBpcyBhIG5ld2xpbmUgY2hhcmFjdGVyXG4tdwlQYWQgdG8gZXF1YWwgd2lkdGggd2l0aCBsZWFkaW5nIHplcm9lcyIKKworI2RlZmluZSBIRUxQX3BpZG9mICJ1c2FnZTogcGlkb2YgWy1zXSBbLW8gb21pdHBpZFssb21pdHBpZC4uLl1dIFtOQU1FLi4uXVxuXG5QcmludCB0aGUgUElEcyBvZiBhbGwgcHJvY2Vzc2VzIHdpdGggdGhlIGdpdmVuIG5hbWVzLlxuXG4tbwlPbWl0IFBJRChzKVxuLXMJU2luZ2xlIHNob3QsIG9ubHkgcmV0dXJuIG9uZSBwaWRcbi14CU1hdGNoIHNoZWxsIHNjcmlwdHMgdG9vIgorCisjZGVmaW5lIEhFTFBfcGFzc3dkX3NhZCAiUGFzc3dvcmQgY2hhbmdlcyBhcmUgY2hlY2tlZCB0byBtYWtlIHN1cmUgdGhleSdyZSBhdCBsZWFzdCA2IGNoYXJzIGxvbmcsXG5kb24ndCBpbmNsdWRlIHRoZSBlbnRpcmUgdXNlcm5hbWUgKGJ1dCBub3QgYSBzdWJzZXQgb2YgaXQpLCBvciB0aGUgZW50aXJlXG5wcmV2aW91cyBwYXNzd29yZCAoYnV0IGNoYW5naW5nIHBhc3N3b3JkMSwgcGFzc3dvcmQyLCBwYXNzd29yZDMgaXMgZmluZSkuXG5UaGlzIGhldXJpc3RpYyBhY2NlcHRzIFwiYWFhYWFhXCIgYW5kIFwiMTIzNDU2XCIuIgorCisjZGVmaW5lIEhFTFBfcGFzc3dkICJ1c2FnZTogcGFzc3dkIFstYSBBTEdPXSBbLWRsdV0gW1VTRVJdXG5cblVwZGF0ZSB1c2VyJ3MgbG9naW4gcGFzc3dvcmQuIERlZmF1bHRzIHRvIGN1cnJlbnQgdXNlci5cblxuLWEgQUxHTwlFbmNyeXB0aW9uIG1ldGhvZCAoZGVzLCBtZDUsIHNoYTI1Niwgc2hhNTEyKSBkZWZhdWx0OiBtZDVcbi1kCQlTZXQgcGFzc3dvcmQgdG8gJydcbi1sCQlMb2NrIChkaXNhYmxlKSBhY2NvdW50XG4tdQkJVW5sb2NrIChlbmFibGUpIGFjY291bnQiCisKKyNkZWZpbmUgSEVMUF9tb3VudCAidXNhZ2U6IG1vdW50IFstYWZGcnN2d10gWy10IFRZUEVdIFstbyBPUFRJT04sXSBbW0RFVklDRV0gRElSXVxuXG5Nb3VudCBuZXcgZmlsZXN5c3RlbShzKSBvbiBkaXJlY3Rvcmllcy4gV2l0aCBubyBhcmd1bWVudHMsIGRpc3BsYXkgZXhpc3Rpbmdcbm1vdW50cy5cblxuLWEJTW91bnQgYWxsIGVudHJpZXMgaW4gL2V0Yy9mc3RhYiAod2l0aCAtdCwgb25seSBlbnRyaWVzIG9mIHRoYXQgVFlQRSlcbi1PCU9ubHkgbW91bnQgLWEgZW50cmllcyB0aGF0IGhhdmUgdGhpcyBvcHRpb25cbi1mCUZha2UgaXQgKGRvbid0IGFjdHVhbGx5IG1vdW50KVxuLXIJUmVhZCBvbmx5IChzYW1lIGFzIC1vIHJvKVxuLXcJUmVhZC93cml0ZSAoZGVmYXVsdCwgc2FtZSBhcyAtbyBydylcbi10CVNwZWNpZnkgZmlsZXN5c3RlbSB0eXBlXG4tdglWZXJib3NlXG5cbk9QVElPTlMgaXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBvcHRpb25zLCB3aGljaCBjYW4gYWxzbyBiZSBzdXBwbGllZFxuYXMgLS1sb25nb3B0cy5cblxuQXV0b2RldGVjdHMgbG9vcGJhY2sgbW91bnRzIChhIGZpbGUgb24gYSBkaXJlY3RvcnkpIGFuZCBiaW5kIG1vdW50cyAoZmlsZVxub24gZmlsZSwgZGlyZWN0b3J5IG9uIGRpcmVjdG9yeSksIHNvIHlvdSBkb24ndCBuZWVkIHRvIHNheSAtLWJpbmQgb3IgLS1sb29wLlxuWW91IGNhbiBhbHNvIFwibW91bnQgLWEgL3BhdGhcIiB0byBtb3VudCBldmVyeXRoaW5nIGluIC9ldGMvZnN0YWIgdW5kZXIgL3BhdGgsXG5ldmVuIGlmIGl0J3Mgbm9hdXRvLiBERVZJQ0Ugc3RhcnRpbmcgd2l0aCBVVUlEPSBpcyBpZGVudGlmaWVkIGJ5IGJsa2lkIC1VLiIKKworI2RlZmluZSBIRUxQX21rdGVtcCAidXNhZ2U6IG1rdGVtcCBbLWRxdHVdIFstcCBESVJdIFtURU1QTEFURV1cblxuU2FmZWx5IGNyZWF0ZSBhIG5ldyBmaWxlIFwiRElSL1RFTVBMQVRFXCIgYW5kIHByaW50IGl0cyBuYW1lLlxuXG4tZAlDcmVhdGUgZGlyZWN0b3J5IGluc3RlYWQgb2YgZmlsZSAoLS1kaXJlY3RvcnkpXG4tcAlQdXQgbmV3IGZpbGUgaW4gRElSICgtLXRtcGRpcilcbi1xCVF1aWV0LCBubyBlcnJvciBtZXNzYWdlc1xuLXQJUHJlZmVyICRUTVBESVIgPiBESVIgPiAvdG1wIChkZWZhdWx0IERJUiA+ICRUTVBESVIgPiAvdG1wKVxuLXUJRG9uJ3QgY3JlYXRlIGFueXRoaW5nLCBqdXN0IHByaW50IHdoYXQgd291bGQgYmUgY3JlYXRlZFxuXG5FYWNoIFggaW4gVEVNUExBVEUgaXMgcmVwbGFjZWQgd2l0aCBhIHJhbmRvbSBwcmludGFibGUgY2hhcmFjdGVyLiBUaGVcbmRlZmF1bHQgVEVNUExBVEUgaXMgdG1wLlhYWFhYWFhYWFguIgorCisjZGVmaW5lIEhFTFBfbWtub2RfeiAidXNhZ2U6IG1rbm9kIFstWiBDT05URVhUXSAuLi5cblxuLVoJU2V0IHNlY3VyaXR5IGNvbnRleHQgdG8gY3JlYXRlZCBmaWxlIgorCisjZGVmaW5lIEhFTFBfbWtub2QgInVzYWdlOiBta25vZCBbLW0gTU9ERV0gTkFNRSBUWVBFIFtNQUpPUiBNSU5PUl1cblxuQ3JlYXRlIGEgc3BlY2lhbCBmaWxlIE5BTUUgd2l0aCBhIGdpdmVuIHR5cGUuIFRZUEUgaXMgYiBmb3IgYmxvY2sgZGV2aWNlLFxuYyBvciB1IGZvciBjaGFyYWN0ZXIgZGV2aWNlLCBwIGZvciBuYW1lZCBwaXBlICh3aGljaCBpZ25vcmVzIE1BSk9SL01JTk9SKS5cblxuLW0JTW9kZSAoZmlsZSBwZXJtaXNzaW9ucykgb2YgbmV3IGRldmljZSwgaW4gb2N0YWwgb3IgdSt4IGZvcm1hdCIKKworI2RlZmluZSBIRUxQX3NoYTUxMnN1bSAiU2VlIG1kNXN1bSIKKworI2RlZmluZSBIRUxQX3NoYTM4NHN1bSAiU2VlIG1kNXN1bSIKKworI2RlZmluZSBIRUxQX3NoYTI1NnN1bSAiU2VlIG1kNXN1bSIKKworI2RlZmluZSBIRUxQX3NoYTIyNHN1bSAiU2VlIG1kNXN1bSIKKworI2RlZmluZSBIRUxQX3NoYTFzdW0gIlNlZSBtZDVzdW0iCisKKyNkZWZpbmUgSEVMUF9tZDVzdW0gInVzYWdlOiA/Pz9zdW0gWy1iY3NdIFtGSUxFXS4uLlxuXG5DYWxjdWxhdGUgaGFzaCBmb3IgZWFjaCBpbnB1dCBmaWxlLCByZWFkaW5nIGZyb20gc3RkaW4gaWYgbm9uZSwgd3JpdGluZ1xuaGV4YWRlY2ltYWwgZGlnaXRzIHRvIHN0ZG91dCBmb3IgZWFjaCBpbnB1dCBmaWxlIChtZDU9MzIgaGV4IGRpZ2l0cyxcbnNoYTE9NDAsIHNoYTIyND01Niwgc2hhMjU2PTY0LCBzaGEzODQ9OTYsIHNoYTUxMj0xMjgpIGZvbGxvd2VkIGJ5IGZpbGVuYW1lLlxuXG4tYglCcmllZiAoaGFzaCBvbmx5LCBubyBmaWxlbmFtZSlcbi1jCUNoZWNrIGVhY2ggbGluZSBvZiBlYWNoIEZJTEUgaXMgdGhlIHNhbWUgaGFzaCtmaWxlbmFtZSB3ZSdkIG91dHB1dFxuLXMJTm8gb3V0cHV0LCBleGl0IHN0YXR1cyAwIGlmIGFsbCBoYXNoZXMgbWF0Y2gsIDEgb3RoZXJ3aXNlIgorCisjZGVmaW5lIEhFTFBfa2lsbGFsbCAidXNhZ2U6IGtpbGxhbGwgWy1sXSBbLWlxdl0gWy1TSUdOQUx8LXMgU0lHTkFMXSBQUk9DRVNTX05BTUUuLi5cblxuU2VuZCBhIHNpZ25hbCAoZGVmYXVsdDogVEVSTSkgdG8gYWxsIHByb2Nlc3NlcyB3aXRoIHRoZSBnaXZlbiBuYW1lcy5cblxuLWkJQXNrIGZvciBjb25maXJtYXRpb24gYmVmb3JlIGtpbGxpbmdcbi1sCVByaW50IGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBzaWduYWxzXG4tcQlEb24ndCBwcmludCBhbnkgd2FybmluZ3Mgb3IgZXJyb3IgbWVzc2FnZXNcbi1zCVNlbmQgU0lHTkFMIGluc3RlYWQgb2YgU0lHVEVSTVxuLXYJUmVwb3J0IGlmIHRoZSBzaWduYWwgd2FzIHN1Y2Nlc3NmdWxseSBzZW50XG4tdwlXYWl0IHVudGlsIGFsbCBzaWduYWxlZCBwcm9jZXNzZXMgYXJlIGRlYWQiCisKKyNkZWZpbmUgSEVMUF9kbnNkb21haW5uYW1lICJ1c2FnZTogZG5zZG9tYWlubmFtZVxuXG5TaG93IGRvbWFpbiB0aGlzIHN5c3RlbSBiZWxvbmdzIHRvIChzYW1lIGFzIGhvc3RuYW1lIC1kKS4iCisKKyNkZWZpbmUgSEVMUF9ob3N0bmFtZSAidXNhZ2U6IGhvc3RuYW1lIFstYmRzZl0gWy1GIEZJTEVOQU1FXSBbbmV3bmFtZV1cblxuR2V0L3NldCB0aGUgY3VycmVudCBob3N0bmFtZS5cblxuLWIJU2V0IGhvc3RuYW1lIHRvICdsb2NhbGhvc3QnIGlmIG90aGVyd2lzZSB1bnNldFxuLWQJU2hvdyBETlMgZG9tYWluIG5hbWUgKG5vIGhvc3QpXG4tZglTaG93IGZ1bGx5LXF1YWxpZmllZCBuYW1lIChob3N0K2RvbWFpbiwgRlFETilcbi1GCVNldCBob3N0bmFtZSB0byBjb250ZW50cyBvZiBGSUxFTkFNRVxuLXMJU2hvdyBzaG9ydCBob3N0IG5hbWUgKG5vIGRvbWFpbikiCisKKyNkZWZpbmUgSEVMUF96Y2F0ICJ1c2FnZTogemNhdCBbLWZdIFtGSUxFLi4uXVxuXG5EZWNvbXByZXNzIGZpbGVzIHRvIHN0ZG91dC4gTGlrZSBgZ3ppcCAtZGNgLlxuXG4tZglGb3JjZTogYWxsb3cgcmVhZCBmcm9tIHR0eSIKKworI2RlZmluZSBIRUxQX2d1bnppcCAidXNhZ2U6IGd1bnppcCBbLWNma3RdIFtGSUxFLi4uXVxuXG5EZWNvbXByZXNzIGZpbGVzLiBXaXRoIG5vIGZpbGVzLCBkZWNvbXByZXNzZXMgc3RkaW4gdG8gc3Rkb3V0LlxuT24gc3VjY2VzcywgdGhlIGlucHV0IGZpbGVzIGFyZSByZW1vdmVkIGFuZCByZXBsYWNlZCBieSBuZXdcbmZpbGVzIHdpdGhvdXQgdGhlIC5neiBzdWZmaXguXG5cbi1jCU91dHB1dCB0byBzdGRvdXQgKGFjdCBhcyB6Y2F0KVxuLWYJRm9yY2U6IGFsbG93IHJlYWQgZnJvbSB0dHlcbi1rCUtlZXAgaW5wdXQgZmlsZXMgKGRlZmF1bHQgaXMgdG8gcmVtb3ZlKVxuLXQJVGVzdCBpbnRlZ3JpdHkiCisKKyNkZWZpbmUgSEVMUF9nemlwICJ1c2FnZTogZ3ppcCBbLTE5Y2Rma3RdIFtGSUxFLi4uXVxuXG5Db21wcmVzcyBmaWxlcy4gV2l0aCBubyBmaWxlcywgY29tcHJlc3NlcyBzdGRpbiB0byBzdGRvdXQuXG5PbiBzdWNjZXNzLCB0aGUgaW5wdXQgZmlsZXMgYXJlIHJlbW92ZWQgYW5kIHJlcGxhY2VkIGJ5IG5ld1xuZmlsZXMgd2l0aCB0aGUgLmd6IHN1ZmZpeC5cblxuLWMJT3V0cHV0IHRvIHN0ZG91dFxuLWQJRGVjb21wcmVzcyAoYWN0IGFzIGd1bnppcClcbi1mCUZvcmNlOiBhbGxvdyBvdmVyd3JpdGUgb2Ygb3V0cHV0IGZpbGVcbi1rCUtlZXAgaW5wdXQgZmlsZXMgKGRlZmF1bHQgaXMgdG8gcmVtb3ZlKVxuLXQJVGVzdCBpbnRlZ3JpdHlcbi0jCUNvbXByZXNzaW9uIGxldmVsIDEtOSAoMTpmYXN0ZXN0LCA2OmRlZmF1bHQsIDk6YmVzdCkiCisKKyNkZWZpbmUgSEVMUF9kbWVzZyAidXNhZ2U6IGRtZXNnIFstQ2NdIFstcnwtdHwtVF0gWy1uIExFVkVMXSBbLXMgU0laRV0gWy13XVxuXG5QcmludCBvciBjb250cm9sIHRoZSBrZXJuZWwgcmluZyBidWZmZXIuXG5cbi1DCUNsZWFyIHJpbmcgYnVmZmVyIHdpdGhvdXQgcHJpbnRpbmdcbi1jCUNsZWFyIHJpbmcgYnVmZmVyIGFmdGVyIHByaW50aW5nXG4tbglTZXQga2VybmVsIGxvZ2dpbmcgTEVWRUwgKDEtOClcbi1yCVJhdyBvdXRwdXQgKHdpdGggPGxldmVsIG1hcmtlcnM+KVxuLVMJVXNlIHN5c2xvZygyKSByYXRoZXIgdGhhbiAvZGV2L2ttc2dcbi1zCVNob3cgdGhlIGxhc3QgU0laRSBtYW55IGJ5dGVzXG4tVAlIdW1hbiByZWFkYWJsZSB0aW1lc3RhbXBzXG4tdAlEb24ndCBwcmludCB0aW1lc3RhbXBzXG4tdwlLZWVwIHdhaXRpbmcgZm9yIG1vcmUgb3V0cHV0IChha2EgLS1mb2xsb3cpIgorCisjZGVmaW5lIEhFTFBfd2dldF9saWJ0bHMgIkVuYWJsZSBIVFRQUyBzdXBwb3J0IGZvciB3Z2V0IGJ5IGxpbmtpbmcgdG8gTGliVExTLlxuU3VwcG9ydHMgdXNpbmcgbGlidGxzLCBsaWJyZXRscyBvciBsaWJ0bHMtYmVhcnNzbC5cblxuVXNlIFRPWUJPWF9MSUJDUllQVE8gdG8gZW5hYmxlIEhUVFBTIHN1cHBvcnQgdmlhIE9wZW5TU0wuIgorCisjZGVmaW5lIEhFTFBfd2dldCAidXNhZ2U6IHdnZXQgW09QVElPTlNdLi4uIFtVUkxdXG4gICAgLS1tYXgtcmVkaXJlY3QgICAgICAgICAgbWF4aW11bSByZWRpcmVjdGlvbnMgYWxsb3dlZFxuLWQsIC0tZGVidWcgICAgICAgICAgICAgICAgIHByaW50IGxvdHMgb2YgZGVidWdnaW5nIGluZm9ybWF0aW9uXG4tTywgLS1vdXRwdXQtZG9jdW1lbnQ9RklMRSAgc3BlY2lmeSBvdXRwdXQgZmlsZW5hbWVcbi1wLCAtLXBvc3QtZGF0YT1EQVRBICAgICAgICBzZW5kIGRhdGEgaW4gYm9keSBvZiBQT1NUIHJlcXVlc3RcblxuZXhhbXBsZXM6XG4gIHdnZXQgaHR0cDovL3d3dy5leGFtcGxlLmNvbSIKKworI2RlZmluZSBIRUxQX3R1bmN0bCAidXNhZ2U6IHR1bmN0bCBbLWR0VF0gWy11IFVTRVJdIE5BTUVcblxuQ3JlYXRlIGFuZCBkZWxldGUgdHVuL3RhcCB2aXJ0dWFsIGV0aGVybmV0IGRldmljZXMuXG5cbi1UCVVzZSB0YXAgKGV0aGVybmV0IGZyYW1lcykgaW5zdGVhZCBvZiB0dW4gKGlwIHBhY2tldHMpXG4tZAlEZWxldGUgdHVuL3RhcCBkZXZpY2Vcbi10CUNyZWF0ZSB0dW4vdGFwIGRldmljZVxuLXUJU2V0IG93bmVyICh1c2VyIHdobyBjYW4gcmVhZC93cml0ZSBkZXZpY2Ugd2l0aG91dCByb290IGFjY2VzcykiCisKKyNkZWZpbmUgSEVMUF9zbnRwICJ1c2FnZTogc250cCBbLXNhU2REcV0gWy1yIFNISUZUXSBbLW1NW0FERFJFU1NdXSBbLXAgUE9SVF0gW1NFUlZFUl1cblxuU2ltcGxlIE5ldHdvcmsgVGltZSBQcm90b2NvbCBjbGllbnQuIFF1ZXJ5IFNFUlZFUiBhbmQgZGlzcGxheSB0aW1lLlxuXG4tcAlVc2UgUE9SVCAoZGVmYXVsdCAxMjMpXG4tcwlTZXQgc3lzdGVtIGNsb2NrIHN1ZGRlbmx5XG4tYQlBZGp1c3Qgc3lzdGVtIGNsb2NrIGdyYWR1YWxseVxuLVMJU2VydmUgdGltZSBpbnN0ZWFkIG9mIHF1ZXJ5aW5nIChiaW5kIHRvIFNFUlZFUiBhZGRyZXNzIGlmIHNwZWNpZmllZClcbi1tCVdhaXQgZm9yIHVwZGF0ZXMgZnJvbSBtdWx0aWNhc3QgQUREUkVTUyAoUkZDIDQzMzAgc3VnZ2VzdHMgMjI0LjAuMS4xKVxuLU0JTXVsdGljYXN0IHNlcnZlciBvbiBBRERSRVNTIChSRkMgNDMzMCBzdWdnZXN0cyAyMjQuMC4xLjEpXG4tdAlUVEwgKG11bHRpY2FzdCBvbmx5LCBkZWZhdWx0IDEpXG4tZAlEYWVtb25pemUgKHJ1biBpbiBiYWNrZ3JvdW5kIHJlLXF1ZXJ5aW5nKVxuLUQJRGFlbW9uaXplIGJ1dCBzdGF5IGluIGZvcmVncm91bmQ6IHJlLXF1ZXJ5IHRpbWUgZXZlcnkgMTAwMCBzZWNvbmRzXG4tcglSZXRyeSBzaGlmdCAoZXZlcnkgMTw8U0hJRlQgc2Vjb25kcylcbi1xCVF1aWV0IChkb24ndCBkaXNwbGF5IHRpbWUpIgorCisjZGVmaW5lIEhFTFBfcmZraWxsICJ1c2FnZTogcmZraWxsIENPTU1BTkQgW0RFVklDRV1cblxuRW5hYmxlL2Rpc2FibGUgd2lyZWxlc3MgZGV2aWNlcy5cblxuQ29tbWFuZHM6XG5saXN0IFtERVZJQ0VdICAgTGlzdCBjdXJyZW50IHN0YXRlXG5ibG9jayBERVZJQ0UgICAgRGlzYWJsZSBkZXZpY2VcbnVuYmxvY2sgREVWSUNFICBFbmFibGUgZGV2aWNlXG5cbkRFVklDRSBpcyBhbiBpbmRleCBudW1iZXIsIG9yIG9uZSBvZjpcbmFsbCwgd2xhbih3aWZpKSwgYmx1ZXRvb3RoLCB1d2IodWx0cmF3aWRlYmFuZCksIHdpbWF4LCB3d2FuLCBncHMsIGZtLiIKKworI2RlZmluZSBIRUxQX3BpbmcgInVzYWdlOiBwaW5nIFtPUFRJT05TXSBIT1NUXG5cbkNoZWNrIG5ldHdvcmsgY29ubmVjdGl2aXR5IGJ5IHNlbmRpbmcgcGFja2V0cyB0byBhIGhvc3QgYW5kIHJlcG9ydGluZ1xuaXRzIHJlc3BvbnNlLlxuXG5TZW5kIElDTVAgRUNIT19SRVFVRVNUIHBhY2tldHMgdG8gaXB2NCBvciBpcHY2IGFkZHJlc3NlcyBhbmQgcHJpbnRzIGVhY2hcbmVjaG8gaXQgcmVjZWl2ZXMgYmFjaywgd2l0aCByb3VuZCB0cmlwIHRpbWUuIFJldHVybnMgdHJ1ZSBpZiBob3N0IGFsaXZlLlxuXG5PcHRpb25zOlxuLTQsIC02CQlGb3JjZSBJUHY0IG9yIElQdjZcbi1jIENOVAkJU2VuZCBDTlQgbWFueSBwYWNrZXRzIChkZWZhdWx0IDMsIDAgPSBpbmZpbml0ZSlcbi1mCQlGbG9vZCAocHJpbnQgLiBhbmQgXFxiIHRvIHNob3cgZHJvcHMsIGRlZmF1bHQgLWMgMTUgLWkgMC4yKVxuLWkgVElNRQkJSW50ZXJ2YWwgYmV0d2VlbiBwYWNrZXRzIChkZWZhdWx0IDEsIG5lZWQgcm9vdCBmb3IgPCAuMilcbi1JIElGQUNFL0lQCVNvdXJjZSBpbnRlcmZhY2Ugb3IgYWRkcmVzc1xuLW0gTUFSSwkJVGFnIG91dGdvaW5nIHBhY2tldHMgdXNpbmcgU09fTUFSS1xuLXEJCVF1aWV0IChzdG9wcyBhZnRlciBvbmUgcmV0dXJucyB0cnVlIGlmIGhvc3QgaXMgYWxpdmUpXG4tcyBTSVpFCQlEYXRhIFNJWkUgaW4gYnl0ZXMgKGRlZmF1bHQgNTYpXG4tdCBUVEwJCVNldCBUaW1lIFRvIExpdmUgKG51bWJlciBvZiBob3BzKVxuLVcgU0VDCQlTZWNvbmRzIHRvIHdhaXQgZm9yIHJlc3BvbnNlIGFmdGVyIGxhc3QgLWMgcGFja2V0IChkZWZhdWx0IDMpXG4tdyBTRUMJCUV4aXQgYWZ0ZXIgdGhpcyBtYW55IHNlY29uZHMiCisKKyNkZWZpbmUgSEVMUF9uZXRzdGF0ICJ1c2FnZTogbmV0c3RhdCBbLXBXcnh3dXRuZWFsXVxuXG5EaXNwbGF5IG5ldHdvcmtpbmcgaW5mb3JtYXRpb24uIERlZmF1bHQgaXMgbmV0c3RhdCAtdHV3eFxuXG4tcglSb3V0aW5nIHRhYmxlXG4tYQlBbGwgc29ja2V0cyAobm90IGp1c3QgY29ubmVjdGVkKVxuLWwJTGlzdGVuaW5nIHNlcnZlciBzb2NrZXRzXG4tdAlUQ1Agc29ja2V0c1xuLXUJVURQIHNvY2tldHNcbi13CVJhdyBzb2NrZXRzXG4teAlVbml4IHNvY2tldHNcbi1lCUV4dGVuZGVkIGluZm9cbi1uCURvbid0IHJlc29sdmUgbmFtZXNcbi1XCVdpZGUgZGlzcGxheVxuLXAJU2hvdyBQSUQvcHJvZ3JhbSBuYW1lIG9mIHNvY2tldHMiCisKKyNkZWZpbmUgSEVMUF9uZXRjYXQgInVzYWdlOiBuZXRjYXQgWy00NkVMbG50VXVdIFstcHFXdyAjXSBbLXMgYWRkcl0gWy1vIEZJTEVdIHtJUEFERFIgUE9SVE5VTXwtZiBGSUxFTkFNRXxDT01NQU5ELi4ufVxuXG5Gb3J3YXJkIHN0ZGluL3N0ZG91dCB0byBhIGZpbGUgb3IgbmV0d29yayBjb25uZWN0aW9uLlxuXG4tNAlGb3JjZSBJUHY0XG4tNglGb3JjZSBJUHY2XG4tRQlGb3J3YXJkIHN0ZGVyclxuLWYJVXNlIEZJTEVOQU1FIChhbGEgL2Rldi90dHlTMCkgaW5zdGVhZCBvZiBuZXR3b3JrXG4tTAlMaXN0ZW4gYW5kIGJhY2tncm91bmQgZWFjaCBpbmNvbWluZyBjb25uZWN0aW9uIChzZXJ2ZXIgbW9kZSlcbi1sCUxpc3RlbiBmb3Igb25lIGluY29taW5nIGNvbm5lY3Rpb24sIHRoZW4gZXhpdFxuLW4JTm8gRE5TIGxvb2t1cFxuLW8JSGV4IGR1bXAgdG8gRklMRSAoLW8tIHdyaXRlcyBoZXggb25seSB0byBzdGRvdXQpXG4tTwlIZXggZHVtcCB0byBGSUxFIChjb2xsYXRlZClcbi1wCUxvY2FsIHBvcnQgbnVtYmVyXG4tcQlRdWl0IFNFQ09ORFMgYWZ0ZXIgRU9GIG9uIHN0ZGluLCBldmVuIGlmIHN0ZG91dCBoYXNuJ3QgY2xvc2VkIHlldFxuLXMJTG9jYWwgc291cmNlIGFkZHJlc3Ncbi10CUFsbG9jYXRlIHR0eVxuLXUJVXNlIFVEUFxuLVUJVXNlIGEgVU5JWCBkb21haW4gc29ja2V0XG4tVwlTRUNPTkRTIHRpbWVvdXQgZm9yIG1vcmUgZGF0YSBvbiBhbiBpZGxlIGNvbm5lY3Rpb25cbi13CVNFQ09ORFMgdGltZW91dCB0byBlc3RhYmxpc2ggY29ubmVjdGlvblxuLXoJemVyby1JL08gbW9kZSBbdXNlZCBmb3Igc2Nhbm5pbmddXG5cbldoZW4gbGlzdGVuaW5nIHRoZSBDT01NQU5EIGxpbmUgaXMgZXhlY3V0ZWQgYXMgYSBjaGlsZCBwcm9jZXNzIHRvIGhhbmRsZVxuYW4gaW5jb21pbmcgY29ubmVjdGlvbi4gV2l0aCBubyBDT01NQU5EIC1sIGZvcndhcmRzIHRoZSBjb25uZWN0aW9uXG50byBzdGRpbi9zdGRvdXQuIElmIG5vIC1wIHNwZWNpZmllZCwgLWwgcHJpbnRzIHRoZSBwb3J0IGl0IGJvdW5kIHRvIGFuZFxuYmFja2dyb3VuZHMgaXRzZWxmIChyZXR1cm5pbmcgaW1tZWRpYXRlbHkpLlxuXG5Gb3IgYSBxdWljay1hbmQtZGlydHkgc2VydmVyLCB0cnkgc29tZXRoaW5nIGxpa2U6XG5uZXRjYXQgLXMgMTI3LjAuMC4xIC1wIDEyMzQgLXRMIHNoIC1sXG5cbk9yIHVzZSBcInN0dHkgMTE1MjAwIC1GIC9kZXYvdHR5UzAgJiYgc3R0eSByYXcgLWVjaG8gLWN0bGVjaG9cIiB3aXRoXG5uZXRjYXQgLWYgdG8gY29ubmVjdCB0byBhIHNlcmlhbCBwb3J0LiIKKworI2RlZmluZSBIRUxQX21pY3JvY29tICJ1c2FnZTogbWljcm9jb20gWy1zIFNQRUVEXSBbLVhdIERFVklDRVxuXG5TaW1wbGUgc2VyaWFsIGNvbnNvbGUuIEhpdCBDVFJMLV0gZm9yIG1lbnUuXG5cbi1zCVNldCBiYXVkIHJhdGUgdG8gU1BFRUQgKGRlZmF1bHQgMTE1MjAwKVxuLVgJSWdub3JlIF5dIG1lbnUgZXNjYXBlIgorCisjZGVmaW5lIEhFTFBfaWZjb25maWcgInVzYWdlOiBpZmNvbmZpZyBbLWFTXSBbSU5URVJGQUNFIFtBQ1RJT04uLi5dXVxuXG5EaXNwbGF5IG9yIGNvbmZpZ3VyZSBuZXR3b3JrIGludGVyZmFjZS5cblxuV2l0aCBubyBhcmd1bWVudHMsIGRpc3BsYXkgYWN0aXZlIGludGVyZmFjZXMuIEZpcnN0IGFyZ3VtZW50IGlzIGludGVyZmFjZVxudG8gb3BlcmF0ZSBvbiwgb25lIGFyZ3VtZW50IGJ5IGl0c2VsZiBkaXNwbGF5cyB0aGF0IGludGVyZmFjZS5cblxuLWEJQWxsIGludGVyZmFjZXMgZGlzcGxheWVkLCBub3QganVzdCBhY3RpdmUgb25lc1xuLVMJU2hvcnQgdmlldywgb25lIGxpbmUgcGVyIGludGVyZmFjZVxuXG5TdGFuZGFyZCBBQ1RJT05zIHRvIHBlcmZvcm0gb24gYW4gSU5URVJGQUNFOlxuXG5BRERSWy9NQVNLXSAgICAgICAgLSBzZXQgSVB2NCBhZGRyZXNzICgxLjIuMy40LzUpIGFuZCBhY3RpdmF0ZSBpbnRlcmZhY2VcbmFkZHxkZWwgQUREUlsvTEVOXSAtIGFkZC9yZW1vdmUgSVB2NiBhZGRyZXNzICgxMTExOjo4ODg4LzEyOClcbnVwfGRvd24gICAgICAgICAgICAtIGFjdGl2YXRlIG9yIGRlYWN0aXZhdGUgaW50ZXJmYWNlXG5cbkFkdmFuY2VkIEFDVElPTnMgKGRlZmF1bHQgdmFsdWVzIHVzdWFsbHkgc3VmZmljZSk6XG5cbmRlZmF1bHQgICAgICAgICAgLSByZW1vdmUgSVB2NCBhZGRyZXNzXG5uZXRtYXNrIEFERFIgICAgIC0gc2V0IElQdjQgbmV0bWFzayB2aWEgMjU1LjI1NS4yNTUuMCBpbnN0ZWFkIG9mIC8yNFxudHhxdWV1ZWxlbiBMRU4gICAtIG51bWJlciBvZiBidWZmZXJlZCBwYWNrZXRzIGJlZm9yZSBvdXRwdXQgYmxvY2tzXG5tdHUgTEVOICAgICAgICAgIC0gc2l6ZSBvZiBvdXRnb2luZyBwYWNrZXRzIChNYXhpbXVtIFRyYW5zbWlzc2lvbiBVbml0KVxuYnJvYWRjYXN0IEFERFIgICAtIFNldCBicm9hZGNhc3QgYWRkcmVzc1xucG9pbnRvcG9pbnQgQUREUiAtIFBQUCBhbmQgUFBQT0UgdXNlIHRoaXMgaW5zdGVhZCBvZiBcInJvdXRlIGFkZCBkZWZhdWx0IGd3XCJcbmh3IFRZUEUgQUREUiAgICAgLSBzZXQgaGFyZHdhcmUgKG1hYykgYWRkcmVzcyAodHlwZSA9IGV0aGVyfGluZmluaWJhbmQpXG5yZW5hbWUgTkVXTkFNRSAgIC0gcmVuYW1lIGludGVyZmFjZVxuXG5GbGFncyB5b3UgY2FuIHNldCBvbiBhbiBpbnRlcmZhY2UgKG9yIC1yZW1vdmUgYnkgcHJlZml4aW5nIHdpdGggLSk6XG5cbmFycCAgICAgICAtIGRvbid0IHVzZSBBZGRyZXNzIFJlc29sdXRpb24gUHJvdG9jb2wgdG8gbWFwIExBTiByb3V0ZXNcbnByb21pc2MgICAtIGRvbid0IGRpc2NhcmQgcGFja2V0cyB0aGF0IGFyZW4ndCB0byB0aGlzIExBTiBoYXJkd2FyZSBhZGRyZXNzXG5tdWx0aWNhc3QgLSBmb3JjZSBpbnRlcmZhY2UgaW50byBtdWx0aWNhc3QgbW9kZSBpZiB0aGUgZHJpdmVyIGRvZXNuJ3RcbmFsbG11bHRpICAtIHByb21pc2MgZm9yIG11bHRpY2FzdCBwYWNrZXRzIgorCisjZGVmaW5lIEhFTFBfaHR0cGQgInVzYWdlOiBodHRwZCBbLWRlIFNUUl0gWy12XSBbRElSXVxuXG5TZXJ2ZSBjb250ZW50cyBvZiBkaXJlY3RvcnkgYXMgc3RhdGljIHdlYiBwYWdlcy5cblxuLWUJRXNjYXBlIFNUUiBhcyBVUkwsIHByaW50aW5nIHJlc3VsdCBhbmQgZXhpdGluZy5cbi1kCURlY29kZSBlc2NhcGVkIFNUUiwgcHJpbnRpbmcgcmVzdWx0IGFuZCBleGl0aW5nLlxuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX2hvc3QgInVzYWdlOiBob3N0IFstdl0gWy10IFRZUEVdIE5BTUUgW1NFUlZFUl1cblxuTG9vayB1cCBETlMgcmVjb3JkcyBmb3IgTkFNRSwgZWl0aGVyIGRvbWFpbiBuYW1lIG9yIElQdjQvSVB2NiBhZGRyZXNzIHRvXG5yZXZlcnNlIGxvb2t1cCwgZnJvbSBTRVJWRVIgb3IgZGVmYXVsdCBETlMgc2VydmVyKHMpLlxuXG4tYQlBbGwgcmVjb3Jkc1xuLXQgVFlQRQlSZWNvcmQgVFlQRSAobnVtYmVyIG9yIEFOWSBBIEFBQUEgQ05BTUUgTVggTlMgUFRSIFNPQSBTUlYgVFhUKVxuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX2Z0cHB1dCAiQW4gZnRwZ2V0IHRoYXQgZGVmYXVsdHMgdG8gLXMgaW5zdGVhZCBvZiAtZyIKKworI2RlZmluZSBIRUxQX2Z0cGdldCAidXNhZ2U6IGZ0cGdldCBbLWN2Z3NsTG1NZERdIFstUCBQT1JUXSBbLXAgUEFTU1dPUkRdIFstdSBVU0VSXSBIT1NUIFtMT0NBTF0gUkVNT1RFXG5cblRhbGsgdG8gZnRwIHNlcnZlci4gQnkgZGVmYXVsdCBnZXQgUkVNT1RFIGZpbGUgdmlhIHBhc3NpdmUgYW5vbnltb3VzXG50cmFuc2Zlciwgb3B0aW9uYWxseSBzYXZpbmcgdW5kZXIgYSBMT0NBTCBuYW1lLiBDYW4gYWxzbyBzZW5kLCBsaXN0LCBldGMuXG5cbi1jCUNvbnRpbnVlIHBhcnRpYWwgdHJhbnNmZXJcbi1wCVVzZSBQT1JUIGluc3RlYWQgb2YgXCIyMVwiXG4tUAlVc2UgUEFTU1dPUkQgaW5zdGVhZCBvZiBcImZ0cGdldEBcIlxuLXUJVXNlIFVTRVIgaW5zdGVhZCBvZiBcImFub255bW91c1wiXG4tdglWZXJib3NlXG5cbldheXMgdG8gaW50ZXJhY3Qgd2l0aCBGVFAgc2VydmVyOlxuLWQJRGVsZXRlIGZpbGVcbi1ECVJlbW92ZSBkaXJlY3Rvcnlcbi1nCUdldCBmaWxlIChkZWZhdWx0KVxuLWwJTGlzdCBkaXJlY3Rvcnlcbi1MCUxpc3QgKGZpbGVuYW1lcyBvbmx5KVxuLW0JTW92ZSBmaWxlIG9uIHNlcnZlciBmcm9tIExPQ0FMIHRvIFJFTU9URVxuLU0JbWtkaXJcbi1zCVNlbmQgZmlsZSIKKworI2RlZmluZSBIRUxQX3llcyAidXNhZ2U6IHllcyBbYXJncy4uLl1cblxuUmVwZWF0ZWRseSBvdXRwdXQgbGluZSB1bnRpbCBraWxsZWQuIElmIG5vIGFyZ3MsIG91dHB1dCAneScuIgorCisjZGVmaW5lIEhFTFBfeHhkICJ1c2FnZTogeHhkIFstZWlwcl0gWy1jZ2xvcyBOXSBbZmlsZV1cblxuSGV4ZHVtcCBhIGZpbGUgdG8gc3Rkb3V0LiBJZiBubyBmaWxlIGlzIGxpc3RlZCwgY29weSBmcm9tIHN0ZGluLlxuRmlsZW5hbWUgXCItXCIgaXMgYSBzeW5vbnltIGZvciBzdGRpbi5cblxuLWMgTglTaG93IE4gYnl0ZXMgcGVyIGxpbmUgKGRlZmF1bHQgMTYpXG4tZQlMaXR0bGUtZW5kaWFuXG4tZyBOCUdyb3VwIGJ5dGVzIGJ5IGFkZGluZyBhICcgJyBldmVyeSBOIGJ5dGVzIChkZWZhdWx0IDIpXG4taQlPdXRwdXQgaW5jbHVkZSBmaWxlIChDU1YgaGV4IGJ5dGVzLCBwbHVzIEMgaGVhZGVyL2Zvb3RlciBpZiBub3Qgc3RkaW4pXG4tbCBOCUxpbWl0IG9mIE4gYnl0ZXMgYmVmb3JlIHN0b3BwaW5nIChkZWZhdWx0IGlzIG5vIGxpbWl0KVxuLW8gTglBZGQgTiB0byBkaXNwbGF5IG9mZnNldFxuLXAJUGxhaW4gaGV4ZHVtcCAoMzAgYnl0ZXMvbGluZSwgbm8gZ3JvdXBpbmcuIFdpdGggLWMgMCBubyB3cmFwL2dyb3VwKVxuLXIJUmV2ZXJzZSBvcGVyYXRpb246IHR1cm4gYSBoZXhkdW1wIGludG8gYSBiaW5hcnkgZmlsZVxuLXMgTglTa2lwIHRvIG9mZnNldCBOIgorCisjZGVmaW5lIEhFTFBfd2hpY2ggInVzYWdlOiB3aGljaCBbLWFdIGZpbGVuYW1lIC4uLlxuXG5TZWFyY2ggJFBBVEggZm9yIGV4ZWN1dGFibGUgZmlsZXMgbWF0Y2hpbmcgZmlsZW5hbWUocykuXG5cbi1hCVNob3cgYWxsIG1hdGNoZXMiCisKKyNkZWZpbmUgSEVMUF93YXRjaGRvZyAidXNhZ2U6IHdhdGNoZG9nIFstRl0gWy10IFVQREFURV0gWy1UIERFQURMSU5FXSBERVZcblxuU3RhcnQgdGhlIHdhdGNoZG9nIHRpbWVyIGF0IERFViB3aXRoIG9wdGlvbmFsIHRpbWVvdXQgcGFyYW1ldGVycy5cblxuLUYJcnVuIGluIHRoZSBmb3JlZ3JvdW5kIChkbyBub3QgZGFlbW9uaXplKVxuLXQJcG9rZSB3YXRjaGRvZyBldmVyeSBVUERBVEUgc2Vjb25kcyAoZGVmYXVsdCA0KVxuLVQJcmVib290IGlmIG5vdCBwb2tlZCBmb3IgREVBRExJTkUgc2Vjb25kcyAoZGVmYXVsdCA2MCkiCisKKyNkZWZpbmUgSEVMUF93YXRjaCAidXNhZ2U6IHdhdGNoIFstdGVieF0gWy1uIFNFQ10gQ09NTUFORC4uLlxuXG5SdW4gQ09NTUFORCBldmVyeSAtbiBzZWNvbmRzLCBzaG93aW5nIG91dHB1dCB0aGF0IGZpdHMgdGVybWluYWwsIHEgdG8gcXVpdC5cblxuLW4JTnVtYmVyIG9mIHNlY29uZHMgYmV0d2VlbiByZXBlYXRzIChkZWZhdWx0IDIuMClcbi10CURvbid0IHByaW50IGhlYWRlclxuLWUJRXhpdCBvbiBlcnJvclxuLWIJQmVlcCBvbiBjb21tYW5kIGVycm9yXG4teAlFeGVjIGNvbW1hbmQgZGlyZWN0bHkgKHdpdGhvdXQgXCJzaCAtY1wiKSIKKworI2RlZmluZSBIRUxQX3cgInVzYWdlOiB3XG5cblNob3cgd2hvIGlzIGxvZ2dlZCBvbiBhbmQgc2luY2UgaG93IGxvbmcgdGhleSBsb2dnZWQgaW4uIgorCisjZGVmaW5lIEhFTFBfdm1zdGF0ICJ1c2FnZTogdm1zdGF0IFstbl0gW0RFTEFZIFtDT1VOVF1dXG5cblByaW50IHZpcnR1YWwgbWVtb3J5IHN0YXRpc3RpY3MsIHJlcGVhdGluZyBlYWNoIERFTEFZIHNlY29uZHMsIENPVU5UIHRpbWVzLlxuKFdpdGggbm8gREVMQVksIHByaW50cyBvbmUgbGluZS4gV2l0aCBubyBDT1VOVCwgcmVwZWF0cyB1bnRpbCBraWxsZWQuKVxuXG5TaG93IHByb2Nlc3NlcyBydW5uaW5nIGFuZCBibG9ja2VkLCBraWxvYnl0ZXMgc3dhcHBlZCwgZnJlZSwgYnVmZmVyZWQsIGFuZFxuY2FjaGVkLCBraWxvYnl0ZXMgc3dhcHBlZCBpbiBhbmQgb3V0IHBlciBzZWNvbmQsIGZpbGUgZGlzayBibG9ja3MgaW5wdXQgYW5kXG5vdXRwdXQgcGVyIHNlY29uZCwgaW50ZXJydXB0cyBhbmQgY29udGV4dCBzd2l0Y2hlcyBwZXIgc2Vjb25kLCBwZXJjZW50XG5vZiBDUFUgdGltZSBzcGVudCBydW5uaW5nIHVzZXIgY29kZSwgc3lzdGVtIGNvZGUsIGlkbGUsIGFuZCBhd2FpdGluZyBJL08uXG5GaXJzdCBsaW5lIGlzIHNpbmNlIHN5c3RlbSBzdGFydGVkLCBsYXRlciBsaW5lcyBhcmUgc2luY2UgbGFzdCBsaW5lLlxuXG4tbglEaXNwbGF5IHRoZSBoZWFkZXIgb25seSBvbmNlIgorCisjZGVmaW5lIEhFTFBfdmNvbmZpZyAidXNhZ2U6IHZjb25maWcgQ09NTUFORCBbT1BUSU9OU11cblxuQ3JlYXRlIGFuZCByZW1vdmUgdmlydHVhbCBldGhlcm5ldCBkZXZpY2VzXG5cbmFkZCAgICAgICAgICAgICBbaW50ZXJmYWNlLW5hbWVdIFt2bGFuX2lkXVxucmVtICAgICAgICAgICAgIFt2bGFuLW5hbWVdXG5zZXRfZmxhZyAgICAgICAgW2ludGVyZmFjZS1uYW1lXSBbZmxhZy1udW1dICAgICAgIFswIHwgMV1cbnNldF9lZ3Jlc3NfbWFwICBbdmxhbi1uYW1lXSAgICAgIFtza2JfcHJpb3JpdHldICAgW3ZsYW5fcW9zXVxuc2V0X2luZ3Jlc3NfbWFwIFt2bGFuLW5hbWVdICAgICAgW3NrYl9wcmlvcml0eV0gICBbdmxhbl9xb3NdXG5zZXRfbmFtZV90eXBlICAgW25hbWUtdHlwZV0iCisKKyNkZWZpbmUgSEVMUF91dWlkZ2VuICJ1c2FnZTogdXVpZGdlblxuXG5DcmVhdGUgYW5kIHByaW50IGEgbmV3IFJGQzQxMjIgcmFuZG9tIFVVSUQuIgorCisjZGVmaW5lIEhFTFBfdXNsZWVwICJ1c2FnZTogdXNsZWVwIE1JQ1JPU0VDT05EU1xuXG5QYXVzZSBmb3IgTUlDUk9TRUNPTkRTIG1pY3Jvc2Vjb25kcy4iCisKKyNkZWZpbmUgSEVMUF91cHRpbWUgInVzYWdlOiB1cHRpbWUgWy1wc11cblxuVGVsbCB0aGUgY3VycmVudCB0aW1lLCBob3cgbG9uZyB0aGUgc3lzdGVtIGhhcyBiZWVuIHJ1bm5pbmcsIHRoZSBudW1iZXJcbm9mIHVzZXJzLCBhbmQgdGhlIHN5c3RlbSBsb2FkIGF2ZXJhZ2VzIGZvciB0aGUgcGFzdCAxLCA1IGFuZCAxNSBtaW51dGVzLlxuXG4tcAlQcmV0dHkgKGh1bWFuIHJlYWRhYmxlKSB1cHRpbWVcbi1zCVNpbmNlIHdoZW4gaGFzIHRoZSBzeXN0ZW0gYmVlbiB1cD8iCisKKyNkZWZpbmUgSEVMUF91Y2xhbXBzZXQgInVzYWdlOiB1Y2xhbXBzZXQgWy1tIE1JTl0gWy1NIE1BWF0gey1wIFBJRCB8IENPTU1BTkQuLi59XG5cblNldCBvciBxdWVyeSBwcm9jZXNzIHV0aWxpemF0aW9uIGxpbWl0cyByYW5naW5nIGZyb20gMCB0byAxMDI0LCBvciAtMSB0b1xucmVzZXQgdG8gc3lzdGVtIGRlZmF1bHQuIFdpdGggbm8gYXJndW1lbnRzLCBwcmludHMgY3VycmVudCB2YWx1ZXMuXG5cbi1tIE1JTiAgICAgIFJlc2VydmUgYXQgbGVhc3QgdGhpcyBtdWNoIENQVSB1dGlsaXphdGlvbiBmb3IgdGFza1xuLU0gTUFYICAgICAgTGltaXQgdGFzayB0byBhdCBtb3N0IHRoaXMgbXVjaCBDUFUgdXRpbGl6YXRpb25cbi1wIFBJRAlBcHBseSB0byBQSUQgcmF0aGVyIHRoYW4gbmV3IENPTU1BTkRcbi1SCVJlc2V0IGNoaWxkIHByb2Nlc3NlcyB0byBkZWZhdWx0IHZhbHVlcyBvbiBmb3JrXG4tYQlBcHBseSB0byBhbGwgdGhyZWFkcyBmb3IgdGhlIGdpdmVuIFBJRCIKKworI2RlZmluZSBIRUxQX3RzICJ1c2FnZTogdHMgWy1pc10gW0ZPUk1BVF1cblxuQWRkIHRpbWVzdGFtcHMgdG8gZWFjaCBsaW5lIGluIHBpcGVsaW5lLiBEZWZhdWx0IGZvcm1hdCB3aXRob3V0IG9wdGlvbnNcblwiJWIgJWQgJUg6JU06JVNcIiwgd2l0aCAtaSBvciAtcyBcIiVIOiVNOiVTXCIuXG5cbi1pCUluY3JlbWVudGFsIChzaW5jZSBwcmV2aW91cyBsaW5lKVxuLW0JQWRkIG1pbGxpc2Vjb25kc1xuLXMJU2luY2Ugc3RhcnQiCisKKyNkZWZpbmUgSEVMUF90cnVuY2F0ZSAidXNhZ2U6IHRydW5jYXRlIFstY10gLXMgU0laRSBmaWxlLi4uXG5cblNldCBsZW5ndGggb2YgZmlsZShzKSwgZXh0ZW5kaW5nIHNwYXJzZWx5IGlmIG5lY2Vzc2FyeS5cblxuLWMJRG9uJ3QgY3JlYXRlIGZpbGUgaWYgaXQgZG9lc24ndCBleGlzdFxuLXMJTmV3IHNpemUgKHdpdGggb3B0aW9uYWwgcHJlZml4IGFuZCBzdWZmaXgpXG5cblNJWkUgcHJlZml4OiArIGFkZCwgLSBzdWJ0cmFjdCwgPCBzaHJpbmsgdG8sID4gZXhwYW5kIHRvLFxuICAgICAgICAgICAgIC8gbXVsdGlwbGUgcm91bmRpbmcgZG93biwgJSBtdWx0aXBsZSByb3VuZGluZyB1cFxuU0laRSBzdWZmaXg6IGs9MTAyNCwgbT0xMDI0XjIsIGc9MTAyNF4zLCB0PTEwMjReNCwgcD0xMDI0XjUsIGU9MTAyNF42IgorCisjZGVmaW5lIEhFTFBfdGltZW91dCAidXNhZ2U6IHRpbWVvdXQgWy1pdl0gWy1rIERVUkFUSU9OXSBbLXMgU0lHTkFMXSBEVVJBVElPTiBDT01NQU5ELi4uXG5cblJ1biBjb21tYW5kIGxpbmUgYXMgYSBjaGlsZCBwcm9jZXNzLCBzZW5kaW5nIGNoaWxkIGEgc2lnbmFsIGlmIHRoZVxuY29tbWFuZCBkb2Vzbid0IGV4aXQgc29vbiBlbm91Z2guXG5cbkRVUkFUSU9OIGNhbiBiZSBhIGRlY2ltYWwgZnJhY3Rpb24uIEFuIG9wdGlvbmFsIHN1ZmZpeCBjYW4gYmUgXCJtXCJcbihtaW51dGVzKSwgXCJoXCIgKGhvdXJzKSwgXCJkXCIgKGRheXMpLCBvciBcInNcIiAoc2Vjb25kcywgdGhlIGRlZmF1bHQpLlxuXG4taQlPbmx5IGtpbGwgZm9yIGluYWN0aXZpdHkgKHJlc3RhcnQgdGltZW91dCB3aGVuIGNvbW1hbmQgcHJvZHVjZXMgb3V0cHV0KVxuLWsJU2VuZCBLSUxMIHNpZ25hbCBpZiBjaGlsZCBzdGlsbCBydW5uaW5nIHRoaXMgbG9uZyBhZnRlciBmaXJzdCBzaWduYWxcbi1zCVNlbmQgc3BlY2lmaWVkIHNpZ25hbCAoZGVmYXVsdCBURVJNKVxuLXYJVmVyYm9zZVxuLS1mb3JlZ3JvdW5kICAgICAgIERvbid0IGNyZWF0ZSBuZXcgcHJvY2VzcyBncm91cFxuLS1wcmVzZXJ2ZS1zdGF0dXMgIEV4aXQgd2l0aCB0aGUgY2hpbGQncyBleGl0IHN0YXR1cyIKKworI2RlZmluZSBIRUxQX3Rhc2tzZXQgInVzYWdlOiB0YXNrc2V0IFstYXBdIFttYXNrXSBbUElEIHwgY21kIFthcmdzLi4uXV1cblxuTGF1bmNoIGEgbmV3IHRhc2sgd2hpY2ggbWF5IG9ubHkgcnVuIG9uIGNlcnRhaW4gcHJvY2Vzc29ycywgb3IgY2hhbmdlXG50aGUgcHJvY2Vzc29yIGFmZmluaXR5IG9mIGFuIGV4aXN0aW5nIFBJRC5cblxuTWFzayBpcyBhIGhleCBzdHJpbmcgd2hlcmUgZWFjaCBiaXQgcmVwcmVzZW50cyBhIHByb2Nlc3NvciB0aGUgcHJvY2Vzc1xuaXMgYWxsb3dlZCB0byBydW4gb24uIFBJRCB3aXRob3V0IGEgbWFzayBkaXNwbGF5cyBleGlzdGluZyBhZmZpbml0eS5cblxuLXAJU2V0L2dldCB0aGUgYWZmaW5pdHkgb2YgZ2l2ZW4gUElEIGluc3RlYWQgb2YgYSBuZXcgY29tbWFuZFxuLWEJU2V0L2dldCB0aGUgYWZmaW5pdHkgb2YgYWxsIHRocmVhZHMgb2YgdGhlIFBJRCIKKworI2RlZmluZSBIRUxQX25wcm9jICJ1c2FnZTogbnByb2MgWy0tYWxsXVxuXG5QcmludCBudW1iZXIgb2YgcHJvY2Vzc29ycy5cblxuLS1hbGwJU2hvdyBhbGwgcHJvY2Vzc29ycywgbm90IGp1c3Qgb25lcyB0aGlzIHRhc2sgY2FuIHJ1biBvbiIKKworI2RlZmluZSBIRUxQX3RhYyAidXNhZ2U6IHRhYyBbRklMRS4uLl1cblxuT3V0cHV0IGxpbmVzIGluIHJldmVyc2Ugb3JkZXIuIgorCisjZGVmaW5lIEhFTFBfc3lzY3RsICJ1c2FnZTogc3lzY3RsIFstYWVObnF3XSBbLXAgW0ZJTEVdIHwgS0VZWz1WQUxVRV0uLi5dXG5cblJlYWQvd3JpdGUgc3lzdGVtIGNvbnRyb2wgZGF0YSAodW5kZXIgL3Byb2Mvc3lzKS5cblxuLWEJU2hvdyBhbGwgdmFsdWVzXG4tZQlEb24ndCB3YXJuIGFib3V0IHVua25vd24ga2V5c1xuLU4JRG9uJ3QgcHJpbnQga2V5IHZhbHVlc1xuLW4JRG9uJ3QgcHJpbnQga2V5IG5hbWVzXG4tcAlSZWFkIHZhbHVlcyBmcm9tIEZJTEUgKGRlZmF1bHQgL2V0Yy9zeXNjdGwuY29uZilcbi1xCURvbid0IHNob3cgdmFsdWUgYWZ0ZXIgd3JpdGVcbi13CU9ubHkgd3JpdGUgdmFsdWVzIChvYmplY3QgdG8gcmVhZGluZykiCisKKyNkZWZpbmUgSEVMUF9zd2l0Y2hfcm9vdCAidXNhZ2U6IHN3aXRjaF9yb290IFstYyAvZGV2L2NvbnNvbGVdIE5FV19ST09UIE5FV19JTklULi4uXG5cblVzZSBmcm9tIFBJRCAxIHVuZGVyIGluaXRyYW1mcyB0byBmcmVlIGluaXRyYW1mcywgY2hyb290IHRvIE5FV19ST09ULFxuYW5kIGV4ZWMgTkVXX0lOSVQuXG5cbi1jCVJlZGlyZWN0IGNvbnNvbGUgdG8gZGV2aWNlIGluIE5FV19ST09UXG4taAlIYW5nIGluc3RlYWQgb2YgZXhpdGluZyBvbiBmYWlsdXJlIChhdm9pZHMga2VybmVsIHBhbmljKSIKKworI2RlZmluZSBIRUxQX3N3YXBvbiAidXNhZ2U6IHN3YXBvbiBbLWRdIFstcCBwcmlvcml0eV0gZmlsZW5hbWVcblxuRW5hYmxlIHN3YXBwaW5nIG9uIGEgZ2l2ZW4gZGV2aWNlL2ZpbGUuXG5cbi1kCURpc2NhcmQgZnJlZWQgU1NEIHBhZ2VzXG4tcAlQcmlvcml0eSAoaGlnaGVzdCBwcmlvcml0eSBhcmVhcyBhbGxvY2F0ZWQgZmlyc3QpIgorCisjZGVmaW5lIEhFTFBfc3dhcG9mZiAidXNhZ2U6IHN3YXBvZmYgRklMRVxuXG5EaXNhYmxlIHN3YXBwaW5nIG9uIGEgZGV2aWNlIG9yIGZpbGUuIgorCisjZGVmaW5lIEhFTFBfc3RhdCAidXNhZ2U6IHN0YXQgWy10ZkxdIFstYyBGT1JNQVRdIEZJTEUuLi5cblxuRGlzcGxheSBzdGF0dXMgb2YgZmlsZXMgb3IgZmlsZXN5c3RlbXMuXG5cbi1jCU91dHB1dCBzcGVjaWZpZWQgRk9STUFUIHN0cmluZyBpbnN0ZWFkIG9mIGRlZmF1bHRcbi1mCURpc3BsYXkgZmlsZXN5c3RlbSBzdGF0dXMgaW5zdGVhZCBvZiBmaWxlIHN0YXR1c1xuLUwJRm9sbG93IHN5bWxpbmtzXG4tdAl0ZXJzZSAoLWMgXCIlbiAlcyAlYiAlZiAldSAlZyAlRCAlaSAlaCAldCAlVCAlWCAlWSAlWiAlb1wiKVxuCSAgICAgICh3aXRoIC1mID0gLWMgXCIlbiAlaSAlbCAldCAlcyAlUyAlYiAlZiAlYSAlYyAlZFwiKVxuXG5UaGUgdmFsaWQgZm9ybWF0IGVzY2FwZSBzZXF1ZW5jZXMgZm9yIGZpbGVzOlxuJWEgIEFjY2VzcyBiaXRzIChvY3RhbCkgfCVBICBBY2Nlc3MgYml0cyAoZmxhZ3MpfCViICBTaXplLzUxMlxuJUIgIEJ5dGVzIHBlciAlYiAoNTEyKSAgfCVDICBTZWN1cml0eSBjb250ZXh0ICAgfCVkICBEZXZpY2UgSUQgKGRlYylcbiVEICBEZXZpY2UgSUQgKGhleCkgICAgIHwlZiAgQWxsIG1vZGUgYml0cyAoaGV4KXwlRiAgRmlsZSB0eXBlXG4lZyAgR3JvdXAgSUQgICAgICAgICAgICB8JUcgIEdyb3VwIG5hbWUgICAgICAgICB8JWggIEhhcmQgbGlua3NcbiVpICBJbm9kZSAgICAgICAgICAgICAgIHwlbSAgTW91bnQgcG9pbnQgICAgICAgIHwlbiAgRmlsZW5hbWVcbiVOICBMb25nIGZpbGVuYW1lICAgICAgIHwlbyAgSS9PIGJsb2NrIHNpemUgICAgIHwlcyAgU2l6ZSAoYnl0ZXMpXG4ldCAgRGV2dHlwZSBtYWpvciAoaGV4KSB8JVQgIERldnR5cGUgbWlub3IgKGhleCl8JXUgIFVzZXIgSURcbiVVICBVc2VyIG5hbWUgICAgICAgICAgIHwleCAgQWNjZXNzIHRpbWUgICAgICAgIHwlWCAgQWNjZXNzIHVuaXggdGltZVxuJXkgIE1vZGlmaWNhdGlvbiB0aW1lICAgfCVZICBNb2QgdW5peCB0aW1lICAgICAgfCV6ICBDcmVhdGlvbiB0aW1lXG4lWiAgQ3JlYXRpb24gdW5peCB0aW1lXG5cblRoZSB2YWxpZCBmb3JtYXQgZXNjYXBlIHNlcXVlbmNlcyBmb3IgZmlsZXN5c3RlbXM6XG4lYSAgQXZhaWxhYmxlIGJsb2NrcyAgICB8JWIgIFRvdGFsIGJsb2NrcyAgICAgICB8JWMgIFRvdGFsIGlub2Rlc1xuJWQgIEZyZWUgaW5vZGVzICAgICAgICAgfCVmICBGcmVlIGJsb2NrcyAgICAgICAgfCVpICBGaWxlIHN5c3RlbSBJRFxuJWwgIE1heCBmaWxlbmFtZSBsZW5ndGggfCVuICBGaWxlIG5hbWUgICAgICAgICAgfCVzICBCZXN0IHRyYW5zZmVyIHNpemVcbiVTICBBY3R1YWwgYmxvY2sgc2l6ZSAgIHwldCAgRlMgdHlwZSAoaGV4KSAgICAgIHwlVCAgRlMgdHlwZSAoZHJpdmVyIG5hbWUpIgorCisjZGVmaW5lIEhFTFBfc2h1ZiAidXNhZ2U6IHNodWYgWy16ZV0gWy1uIENPVU5UXSBbRklMRS4uLl1cblxuV3JpdGUgbGluZXMgb2YgaW5wdXQgdG8gb3V0cHV0IGluIHJhbmRvbSBvcmRlci5cblxuLXoJSW5wdXQvb3V0cHV0IGxpbmVzIGFyZSBOVUwgdGVybWluYXRlZC5cbi1uCVN0b3AgYWZ0ZXIgQ09VTlQgbWFueSBvdXRwdXQgbGluZXMuXG4tZQlFY2hvIG1vZGU6IGFyZ3VtZW50cyBhcmUgaW5wdXRzIHRvIHNodWZmbGUsIG5vdCBmaWxlcyB0byByZWFkLiIKKworI2RlZmluZSBIRUxQX3NocmVkICJ1c2FnZTogc2hyZWQgWy1mdXh6XSBbLW4gQ09VTlRdIFstbyBPRkZTRVRdIFstcyBTSVpFXSBGSUxFLi4uXG5cblNlY3VyZWx5IGRlbGV0ZSBhIGZpbGUgYnkgb3ZlcndyaXRpbmcgaXRzIGNvbnRlbnRzIHdpdGggcmFuZG9tIGRhdGEuXG5cbi1mCQlGb3JjZSAoY2htb2QgaWYgbmVjZXNzYXJ5KVxuLW4gQ09VTlQJUmFuZG9tIG92ZXJ3cml0ZSBpdGVyYXRpb25zIChkZWZhdWx0IDEpXG4tbyBPRkZTRVQJU3RhcnQgYXQgT0ZGU0VUXG4tcyBTSVpFCQlVc2UgU0laRSBpbnN0ZWFkIG9mIGRldGVjdGluZyBmaWxlIHNpemVcbi11CQlVbmxpbmsgKGFjdHVhbGx5IGRlbGV0ZSBmaWxlIHdoZW4gZG9uZSlcbi14CQlVc2UgZXhhY3Qgc2l6ZSAoZGVmYXVsdCB3aXRob3V0IC1zIHJvdW5kcyB1cCB0byBuZXh0IDRrKVxuLXoJCVplcm8gYXQgZW5kXG5cbk5vdGU6IGRhdGEgam91cm5hbGluZyBmaWxlc3lzdGVtcyByZW5kZXIgdGhpcyBjb21tYW5kIHVzZWxlc3MsIHlvdSBtdXN0XG5vdmVyd3JpdGUgYWxsIGZyZWUgc3BhY2UgKGZpbGwgdXAgZGlzaykgdG8gZXJhc2Ugb2xkIGRhdGEgb24gdGhvc2UuIgorCisjZGVmaW5lIEhFTFBfc2hhM3N1bSAidXNhZ2U6IHNoYTNzdW0gWy1iU10gWy1hIEJJVFNdIFtGSUxFLi4uXVxuXG5IYXNoIGZ1bmN0aW9uIGR1IGpvdXIuXG5cbi1hCVByb2R1Y2UgYSBoYXNoIEJJVFMgbG9uZyAoZGVmYXVsdCAyMjQpXG4tYglCcmllZiAoaGFzaCBvbmx5LCBubyBmaWxlbmFtZSlcbi1TCVVzZSBTSEFLRSB0ZXJtaW5hdGlvbiBieXRlIGluc3RlYWQgb2YgU0hBMyAoYXNrIEZJUFMgd2h5KSIKKworI2RlZmluZSBIRUxQX3NldHNpZCAidXNhZ2U6IHNldHNpZCBbLWNkd10gY29tbWFuZCBbYXJncy4uLl1cblxuUnVuIHByb2Nlc3MgaW4gYSBuZXcgc2Vzc2lvbi5cblxuLWQJRGV0YWNoIGZyb20gdHR5XG4tYwlDb250cm9sIHR0eSAocmVwZWF0IHRvIHN0ZWFsKVxuLXcJV2FpdCBmb3IgY2hpbGQgKGFuZCBleGl0IHdpdGggaXRzIHN0YXR1cykiCisKKyNkZWZpbmUgSEVMUF9zZXRmYXR0ciAidXNhZ2U6IHNldGZhdHRyIFstaF0gWy14fC1uIE5BTUVdIFstdiBWQUxVRV0gRklMRS4uLlxuXG5Xcml0ZSBQT1NJWCBleHRlbmRlZCBhdHRyaWJ1dGVzLlxuXG4taAlEbyBub3QgZGVyZWZlcmVuY2Ugc3ltbGlua1xuLW4JU2V0IGdpdmVuIGF0dHJpYnV0ZVxuLXgJUmVtb3ZlIGdpdmVuIGF0dHJpYnV0ZVxuLXYJU2V0IHZhbHVlIGZvciBhdHRyaWJ1dGUgLW4gKGRlZmF1bHQgaXMgZW1wdHkpIgorCisjZGVmaW5lIEhFTFBfcnRjd2FrZSAidXNhZ2U6IHJ0Y3dha2UgWy1hbHV2XSBbLWQgRklMRV0gWy1tIE1PREVdIFstcyBTRUNTXSBbLXQgVU5JWF1cblxuRW50ZXIgdGhlIGdpdmVuIHNsZWVwIHN0YXRlIHVudGlsIHRoZSBnaXZlbiB0aW1lLlxuXG4tYQlSVEMgdXNlcyB0aW1lIHNwZWNpZmllZCBpbiAvZXRjL2FkanRpbWVcbi1kIEZJTEUJRGV2aWNlIHRvIHVzZSAoZGVmYXVsdCAvZGV2L3J0Yylcbi1sCVJUQyB1c2VzIGxvY2FsIHRpbWVcbi1tCU1vZGUgKC0tbGlzdC1tb2RlcyB0byBzZWUgdGhvc2Ugc3VwcG9ydGVkIGJ5IHlvdXIga2VybmVsKTpcbgkgIHN0YW5kYnkgIFMxOiBkZWZhdWx0ICAgICAgICAgICAgICBtZW0gICAgIFMzOiBzdXNwZW5kIHRvIFJBTVxuCSAgZGlzayAgICAgUzQ6IHN1c3BlbmQgdG8gZGlzayAgICAgIG9mZiAgICAgUzU6IHBvd2VyIG9mZlxuCSAgZGlzYWJsZSAgQ2FuY2VsIGN1cnJlbnQgYWxhcm0gICAgIGZyZWV6ZSAgc3RvcCBwcm9jZXNzZXMvcHJvY2Vzc29yc1xuCSAgbm8gICAgICAganVzdCBzZXQgd2FrZXVwIHRpbWUgICAgIG9uICAgICAganVzdCBwb2xsIFJUQyBmb3IgYWxhcm1cbgkgIHNob3cgICAgIGp1c3Qgc2hvdyBjdXJyZW50IGFsYXJtXG4tcyBTRUNTCVdha2UgU0VDUyBzZWNvbmRzIGZyb20gbm93XG4tdCBVTklYCVdha2UgVU5JWCBzZWNvbmRzIGZyb20gZXBvY2hcbi11CVJUQyB1c2VzIFVUQ1xuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX3JtbW9kICJ1c2FnZTogcm1tb2QgWy13Zl0gTU9EVUxFLi4uXG5cblVubG9hZCB0aGUgZ2l2ZW4ga2VybmVsIG1vZHVsZXMuXG5cbi1mCUZvcmNlIHVubG9hZCBvZiBhIG1vZHVsZVxuLXcJV2FpdCB1bnRpbCB0aGUgbW9kdWxlIGlzIG5vIGxvbmdlciB1c2VkIgorCisjZGVmaW5lIEhFTFBfcmV2ICJ1c2FnZTogcmV2IFtGSUxFLi4uXVxuXG5PdXRwdXQgZWFjaCBsaW5lIHJldmVyc2VkLCB3aGVuIG5vIGZpbGVzIGFyZSBnaXZlbiBzdGRpbiBpcyB1c2VkLiIKKworI2RlZmluZSBIRUxQX3Jlc2V0ICJ1c2FnZTogcmVzZXRcblxuUmVzZXQgdGhlIHRlcm1pbmFsLiIKKworI2RlZmluZSBIRUxQX3JlYm9vdCAidXNhZ2U6IHJlYm9vdC9oYWx0L3Bvd2Vyb2ZmIFstZm5dIFstZCBERUxBWV1cblxuUmVzdGFydCwgaGFsdCwgb3IgcG93ZXIgb2ZmIHRoZSBzeXN0ZW0uXG5cbi1kCVdhaXQgREVMQVkgYmVmb3JlIHByb2NlZWRpbmcgKGluIHNlY29uZHMgb3IgbS9oL2Qgc3VmZml4OiAtZCAxLjVtID0gOTBzKVxuLWYJRm9yY2UgcmVib290IChkb24ndCBzaWduYWwgaW5pdCwgcmVib290IGRpcmVjdGx5KVxuLW4JRG9uJ3Qgc3luYyBmaWxlc3lzdGVtcyBiZWZvcmUgcmVib290IgorCisjZGVmaW5lIEhFTFBfcmVhbHBhdGggInVzYWdlOiByZWFscGF0aCBbLUxQZW1xc3pdIFstLXJlbGF0aXZlLWJhc2UgRElSXSBbLVIgRElSXSBGSUxFLi4uXG5cbkRpc3BsYXkgdGhlIGNhbm9uaWNhbCBhYnNvbHV0ZSBwYXRobmFtZVxuXG4tUiBTaG93IC4uL3BhdGggcmVsYXRpdmUgdG8gRElSICgtLXJlbGF0aXZlLXRvKVxuLUwgTG9naWNhbCBwYXRoIChyZXNvbHZlIC4uIGJlZm9yZSBzeW1saW5rcylcbi1QIFBoeXNpY2FsIHBhdGggKGRlZmF1bHQpXG4tZSBDYW5vbmljYWwgcGF0aCB0byBleGlzdGluZyBlbnRyeSAoZmFpbCBpZiBtaXNzaW5nKVxuLW0gSWdub3JlIG1pc3NpbmcgZW50cmllcywgc2hvdyB3aGVyZSBpdCB3b3VsZCBiZVxuLXEgUXVpZXQgKG5vIGVycm9yIG1lc3NhZ2VzKVxuLXMgRG9uJ3QgZXhwYW5kIHN5bWxpbmtzXG4teiBOVUwgaW5zdGVhZCBvZiBuZXdsaW5lXG4tLXJlbGF0aXZlLWJhc2UgIElmIHBhdGggdW5kZXIgRElSIHRyaW0gb2ZmIHByZWZpeCIKKworI2RlZmluZSBIRUxQX3JlYWRsaW5rICJ1c2FnZTogcmVhZGxpbmsgWy1lZm1ucXpdIEZJTEUuLi5cblxuV2l0aCBubyBvcHRpb25zLCBzaG93IHdoYXQgc3ltbGluayBwb2ludHMgdG8sIHJldHVybiBlcnJvciBpZiBub3Qgc3ltbGluay5cblxuT3B0aW9ucyBmb3IgcHJvZHVjaW5nIGNhbm9uaWNhbCBwYXRocyAoYWxsIHN5bWxpbmtzLy4vLi4gcmVzb2x2ZWQpOlxuXG4tZQlDYW5vbmljYWwgcGF0aCB0byBleGlzdGluZyBlbnRyeSAoZmFpbCBpZiBtaXNzaW5nKVxuLWYJRnVsbCBwYXRoIChmYWlsIGlmIGRpcmVjdG9yeSBtaXNzaW5nKVxuLW0JSWdub3JlIG1pc3NpbmcgZW50cmllcywgc2hvdyB3aGVyZSBpdCB3b3VsZCBiZVxuLW4JTm8gdHJhaWxpbmcgbmV3bGluZVxuLXEJUXVpZXQgKG5vIGVycm9yIG1lc3NhZ2VzKVxuLXoJTlVMIGluc3RlYWQgb2YgbmV3bGluZSIKKworI2RlZmluZSBIRUxQX3JlYWRlbGYgInVzYWdlOiByZWFkZWxmIFstQWFkZWhsblNzXSBbLXAgU0VDVElPTl0gWy14IFNFQ1RJT05dIFtmaWxlLi4uXVxuXG5EaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCBFTEYgZmlsZXMuXG5cbi1BCVNob3cgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGluZm9cbi1hCUVxdWl2YWxlbnQgdG8gLUFkaGxuU3Ncbi1kCVNob3cgZHluYW1pYyBzZWN0aW9uXG4tZQlIZWFkZXJzIChlcXVpdmFsZW50IHRvIC1obFMpXG4taAlTaG93IEVMRiBoZWFkZXJcbi1sCVNob3cgcHJvZ3JhbSBoZWFkZXJzXG4tbglTaG93IG5vdGVzXG4tcCBTCUR1bXAgc3RyaW5ncyBmb3VuZCBpbiBuYW1lZC9udW1iZXJlZCBzZWN0aW9uXG4tUwlTaG93IHNlY3Rpb24gaGVhZGVyc1xuLXMJU2hvdyBzeW1ib2wgdGFibGVzICguZHluc3ltIGFuZCAuc3ltdGFiKVxuLXggUwlIZXggZHVtcCBvZiBuYW1lZC9udW1iZXJlZCBzZWN0aW9uXG5cbi0tZHluLXN5bXMJU2hvdyBqdXN0IC5keW5zeW0gc3ltYm9sIHRhYmxlIgorCisjZGVmaW5lIEhFTFBfcmVhZGFoZWFkICJ1c2FnZTogcmVhZGFoZWFkIEZJTEUuLi5cblxuUHJlbG9hZCBmaWxlcyBpbnRvIGRpc2sgY2FjaGUuIgorCisjZGVmaW5lIEhFTFBfcHdnZW4gInVzYWdlOiBwd2dlbiBbLWNBbjB5cnNCQzF2XSBbLXIgQ0hBUlNdIFtMRU5HVEhdIFtDT1VOVF1cblxuR2VuZXJhdGUgaHVtYW4tcmVhZGFibGUgcmFuZG9tIHBhc3N3b3Jkcy4gRGVmYXVsdCBvdXRwdXQgdG8gdHR5IGZpbGxzIHNjcmVlblxud2l0aCBwYXNzd29yZHMgdG8gZGVmZWF0IHNob3VsZGVyIHN1cmZpbmcgKHBpY2sgb25lIGFuZCBjbGVhciB0aGUgc2NyZWVuKS5cblxuLTAJTm8gbnVtYmVycyAoLS1uby1udW1lcmFscylcbi0xCU91dHB1dCBvbmUgcGVyIGxpbmVcbi1BCU5vIGNhcGl0YWwgbGV0dGVycyAoLS1uby1jYXBpdGFsaXplKVxuLUIJQXZvaWQgYW1iaWd1b3VzIGNoYXJhY3RlcnMgbGlrZSAwTyBhbmQgMWxJICgtLWFtYmlndW91cylcbi1DCU91dHB1dCBpbiBjb2x1bW5zXG4tYwlBZGQgY2FwaXRhbCBsZXR0ZXJzICgtLWNhcGl0YWxpemUpXG4tbglBZGQgbnVtYmVycyAoLS1udW1lcmFscylcbi1yCURvbid0IGluY2x1ZGUgdGhlIGdpdmVuIENIQVJTICgtLXJlbW92ZSlcbi12CU5vIHZvd2Vscy5cbi15CUFkZCBwdW5jdHVhdGlvbiAoLS1zeW1ib2xzKSIKKworI2RlZmluZSBIRUxQX3B3ZHggInVzYWdlOiBwd2R4IFBJRC4uLlxuXG5QcmludCB3b3JraW5nIGRpcmVjdG9yeSBvZiBwcm9jZXNzZXMgbGlzdGVkIG9uIGNvbW1hbmQgbGluZS4iCisKKyNkZWZpbmUgSEVMUF9wcmludGVudiAidXNhZ2U6IHByaW50ZW52IFstMF0gW2Vudl92YXIuLi5dXG5cblByaW50IGVudmlyb25tZW50IHZhcmlhYmxlcy5cblxuLTAJVXNlIFxcMCBhcyBkZWxpbWl0ZXIgaW5zdGVhZCBvZiBcXG4iCisKKyNkZWZpbmUgSEVMUF9wbWFwICJ1c2FnZTogcG1hcCBbLXBxeF0gUElELi4uXG5cblJlcG9ydCB0aGUgbWVtb3J5IG1hcCBvZiBhIHByb2Nlc3Mgb3IgcHJvY2Vzc2VzLlxuXG4tcAlTaG93IGZ1bGwgcGF0aHNcbi1xCURvIG5vdCBzaG93IGhlYWRlciBvciBmb290ZXJcbi14CVNob3cgdGhlIGV4dGVuZGVkIGZvcm1hdCIKKworI2RlZmluZSBIRUxQX3Bpdm90X3Jvb3QgInVzYWdlOiBwaXZvdF9yb290IE9MRCBORVdcblxuU3dhcCBPTEQgYW5kIE5FVyBmaWxlc3lzdGVtcyAoYXMgaWYgYnkgc2ltdWx0YW5lb3VzIG1vdW50IC0tbW92ZSksIGFuZFxubW92ZSBhbGwgcHJvY2Vzc2VzIHdpdGggY2hkaXIgb3IgY2hyb290IHVuZGVyIE9MRCBpbnRvIE5FVyAoaW5jbHVkaW5nXG5rZXJuZWwgdGhyZWFkcykgc28gT0xEIG1heSBiZSB1bm1vdW50ZWQuXG5cblRoZSBkaXJlY3RvcnkgTkVXIG11c3QgZXhpc3QgdW5kZXIgT0xELiBUaGlzIGRvZXNuJ3Qgd29yayBvbiBpbml0cmFtZnMsXG53aGljaCBjYW4ndCBiZSBtb3ZlZCAoYWJvdXQgdGhlIHNhbWUgd2F5IFBJRCAxIGNhbid0IGJlIGtpbGxlZDsgc2VlXG5zd2l0Y2hfcm9vdCBpbnN0ZWFkKS4iCisKKyNkZWZpbmUgSEVMUF9wYXJ0cHJvYmUgInVzYWdlOiBwYXJ0cHJvYmUgREVWSUNFLi4uXG5cblRlbGwgdGhlIGtlcm5lbCBhYm91dCBwYXJ0aXRpb24gdGFibGUgY2hhbmdlc1xuXG5Bc2sgdGhlIGtlcm5lbCB0byByZS1yZWFkIHRoZSBwYXJ0aXRpb24gdGFibGUgb24gdGhlIHNwZWNpZmllZCBkZXZpY2VzLiIKKworI2RlZmluZSBIRUxQX2RlYWxsb2N2dCAidXNhZ2U6IGRlYWxsb2N2dCBbTlVNXVxuXG5EZWFsbG9jYXRlIHVudXNlZCB2aXJ0dWFsIHRlcm1pbmFscywgZWl0aGVyIGEgc3BlY2lmaWMgL2Rldi90dHlOVU0sIG9yIGFsbC4iCisKKyNkZWZpbmUgSEVMUF9jaHZ0ICJ1c2FnZTogY2h2dCBOVU1cblxuQ2hhbmdlIHRvIHZpcnR1YWwgdGVybWluYWwgbnVtYmVyIE5VTS4gKFRoaXMgb25seSB3b3JrcyBpbiB0ZXh0IG1vZGUuKVxuXG5WaXJ0dWFsIHRlcm1pbmFscyBhcmUgdGhlIExpbnV4IFZHQSB0ZXh0IG1vZGUgKG9yIGZyYW1lYnVmZmVyKSBkaXNwbGF5cyxcbnN3aXRjaGVkIGJldHdlZW4gdmlhIGFsdC1GMSwgYWx0LUYyLCBldGMuIFVzZSBjdHJsLWFsdC1GMSB0byBzd2l0Y2hcbmZyb20gWDExIHRvIGEgdmlydHVhbCB0ZXJtaW5hbCwgYW5kIGFsdC1GNiAob3IgRjcsIG9yIEY4KSB0byBnZXQgYmFjay4iCisKKyNkZWZpbmUgSEVMUF9vcGVudnQgInVzYWdlOiBvcGVudnQgWy1jIE5VTV0gWy1zd10gQ09NTUFORC4uLlxuXG5SdW4gQ09NTUFORCBvbiBhIG5ldyB2aXJ0dWFsIHRlcm1pbmFsLlxuXG4tYyBOVU0gIFVzZSBWVCBOVU1cbi1zICAgIFN3aXRjaCB0byB0aGUgbmV3IFZUXG4tdyAgICBXYWl0IGZvciBjb21tYW5kIHRvIGV4aXQgKHdpdGggLXMsIGRlYWxsb2NhdGVzIFZUIG9uIGV4aXQpIgorCisjZGVmaW5lIEhFTFBfb25laXQgInVzYWdlOiBvbmVpdCBbLXBybjNdIFstYyBDT05TT0xFXSBbQ09NTUFORC4uLl1cblxuU2ltcGxlIGluaXQgcHJvZ3JhbSB0aGF0IHJ1bnMgYSBzaW5nbGUgc3VwcGxpZWQgY29tbWFuZCBsaW5lIHdpdGggYVxuY29udHJvbGxpbmcgdHR5IChzbyBDVFJMLUMgY2FuIGtpbGwgaXQpLlxuXG4tYwlXaGljaCBjb25zb2xlIGRldmljZSB0byB1c2UgKC9kZXYvY29uc29sZSBkb2Vzbid0IGRvIENUUkwtQywgZXRjKVxuLXAJUG93ZXIgb2ZmIGluc3RlYWQgb2YgcmVib290aW5nIHdoZW4gY29tbWFuZCBleGl0c1xuLXIJUmVzdGFydCBjaGlsZCB3aGVuIGl0IGV4aXRzXG4tbglObyByZWJvb3QsIGp1c3QgcmVsYXVuY2ggY29tbWFuZCBsaW5lXG4tMwlXcml0ZSAzMiBiaXQgUElEIG9mIGVhY2ggZXhpdGluZyByZXBhcmVudGVkIHByb2Nlc3MgdG8gZmQgMyBvZiBjaGlsZFxuCShCbG9ja2luZyB3cml0ZXMsIGNoaWxkIG11c3QgcmVhZCB0byBhdm9pZCBldmVudHVhbCBkZWFkbG9jay4pXG5cblNwYXducyBhIHNpbmdsZSBjaGlsZCBwcm9jZXNzIChiZWNhdXNlIFBJRCAxIGhhcyBzaWduYWxzIGJsb2NrZWQpXG5pbiBpdHMgb3duIHNlc3Npb24sIHJlYXBzIHpvbWJpZXMgdW50aWwgdGhlIGNoaWxkIGV4aXRzLCB0aGVuXG5yZWJvb3RzIHRoZSBzeXN0ZW0gKG9yIHBvd2VycyBvZmYgd2l0aCAtcCwgb3IgcmVzdGFydHMgdGhlIGNoaWxkIHdpdGggLXIpLlxuXG5SZXNwb25kcyB0byBTSUdVU1IxIGJ5IGhhbHRpbmcgdGhlIHN5c3RlbSwgU0lHVVNSMiBieSBwb3dlcmluZyBvZmYsXG5hbmQgU0lHVEVSTSBvciBTSUdJTlQgcmVib290LiIKKworI2RlZmluZSBIRUxQX25zZW50ZXIgInVzYWdlOiBuc2VudGVyIFstdCBwaWRdIFstRl0gWy1pXSBbLW1dIFstbl0gWy1wXSBbLXVdIFstVV0gQ09NTUFORC4uLlxuXG5SdW4gQ09NTUFORCBpbiBhbiBleGlzdGluZyAoc2V0IG9mKSBuYW1lc3BhY2UocykuXG5cbi1hCUVudGVyIGFsbCBzdXBwb3J0ZWQgbmFtZXNwYWNlcyAoLS1hbGwpXG4tRglkb24ndCBmb3JrLCBldmVuIGlmIC1wIGlzIHVzZWQgKC0tbm8tZm9yaylcbi10CVBJRCB0byB0YWtlIG5hbWVzcGFjZXMgZnJvbSAgICAoLS10YXJnZXQpXG5cblRoZSBuYW1lc3BhY2VzIHRvIHN3aXRjaCBhcmU6XG5cbi1DCUNvbnRyb2wgZ3JvdXBzICgtLWNncm91cClcbi1pCVN5c1YgSVBDOiBtZXNzYWdlIHF1ZXVlcywgc2VtYXBob3Jlcywgc2hhcmVkIG1lbW9yeSAoLS1pcGMpXG4tbQlNb3VudC91bm1vdW50IHRyZWUgKC0tbW91bnQpXG4tbglOZXR3b3JrIGFkZHJlc3MsIHNvY2tldHMsIHJvdXRpbmcsIGlwdGFibGVzICgtLW5ldClcbi1wCVByb2Nlc3MgSURzIGFuZCBpbml0LCB3aWxsIGZvcmsgdW5sZXNzIC1GIGlzIHVzZWQgKC0tcGlkKVxuLXUJSG9zdCBhbmQgZG9tYWluIG5hbWVzICgtLXV0cylcbi1VCVVJRHMsIEdJRHMsIGNhcGFiaWxpdGllcyAoLS11c2VyKVxuXG5JZiAtdCBpc24ndCBzcGVjaWZpZWQsIGVhY2ggbmFtZXNwYWNlIGFyZ3VtZW50IG11c3QgcHJvdmlkZSBhIHBhdGhcbnRvIGEgbmFtZXNwYWNlIGZpbGUsIGFsYSBcIi1pPS9wcm9jLyRQSUQvbnMvaXBjXCIiCisKKyNkZWZpbmUgSEVMUF91bnNoYXJlICJ1c2FnZTogdW5zaGFyZSBbLWltbnB1VXJdIENPTU1BTkQuLi5cblxuQ3JlYXRlIG5ldyBjb250YWluZXIgbmFtZXNwYWNlKHMpIGZvciB0aGlzIHByb2Nlc3MgYW5kIGl0cyBjaGlsZHJlbiwgYWxsb3dpbmdcbnRoZSBuZXcgc2V0IG9mIHByb2Nlc3NlcyB0byBoYXZlIGEgZGlmZmVyZW50IHZpZXcgb2YgdGhlIHN5c3RlbSB0aGFuIHRoZVxucGFyZW50IHByb2Nlc3MuXG5cbi1hCVVuc2hhcmUgYWxsIHN1cHBvcnRlZCBuYW1lc3BhY2VzXG4tZglGb3JrIGNvbW1hbmQgaW4gdGhlIGJhY2tncm91bmQgKC0tZm9yaylcbi1yCUJlY29tZSByb290IChtYXAgY3VycmVudCBldWlkL2VnaWQgdG8gMC8wLCBpbXBsaWVzIC1VKSAoLS1tYXAtcm9vdC11c2VyKVxuXG5BdmFpbGFibGUgbmFtZXNwYWNlczpcbi1DCUNvbnRyb2wgZ3JvdXBzICgtLWNncm91cClcbi1pCVN5c1YgSVBDIChtZXNzYWdlIHF1ZXVlcywgc2VtYXBob3Jlcywgc2hhcmVkIG1lbW9yeSkgKC0taXBjKVxuLW0JTW91bnQvdW5tb3VudCB0cmVlICgtLW1vdW50KVxuLW4JTmV0d29yayBhZGRyZXNzLCBzb2NrZXRzLCByb3V0aW5nLCBpcHRhYmxlcyAoLS1uZXQpXG4tcAlQcm9jZXNzIElEcyBhbmQgaW5pdCAoLS1waWQpXG4tdQlIb3N0IGFuZCBkb21haW4gbmFtZXMgKC0tdXRzKVxuLVUJVUlEcywgR0lEcywgY2FwYWJpbGl0aWVzICgtLXVzZXIpXG5cbkVhY2ggbmFtZXNwYWNlIGNhbiB0YWtlIGFuIG9wdGlvbmFsIGFyZ3VtZW50LCBhIHBlcnNpc3RlbnQgbW91bnRwb2ludCB1c2FibGVcbmJ5IHRoZSBuc2VudGVyIGNvbW1hbmQgdG8gYWRkIG5ldyBwcm9jZXNzZXMgdG8gdGhhdCB0aGUgbmFtZXNwYWNlLiAoU3BlY2lmeVxubXVsdGlwbGUgbmFtZXNwYWNlcyB0byB1bnNoYXJlIHNlcGFyYXRlbHksIGFsYSAtYyAtaSAtbSBiZWNhdXNlIC1jaW0gaXMgLWNcbndpdGggcGVyc2lzdGVudCBtb3VudCBcImltXCIuKSIKKworI2RlZmluZSBIRUxQX25iZF9zZXJ2ZXIgInVzYWdlOiBuYmQtc2VydmVyIFstcl0gRklMRVxuXG5TZXJ2ZSBhIE5ldHdvcmsgQmxvY2sgRGV2aWNlIGZyb20gRklMRSBvbiBzdGRpbi9vdXQgKGFsYSBpbmV0ZCkuXG5cbi1yCVJlYWQgb25seSBleHBvcnQiCisKKyNkZWZpbmUgSEVMUF9uYmRfY2xpZW50ICJ1c2FnZTogbmJkLWNsaWVudCBbLW5zXSBbLWIgQkxLU1pdIEhPU1QgUE9SVCBERVZJQ0VcblxuLWIJQmxvY2sgc2l6ZSAoZGVmYXVsdCA0MDk2KVxuLW4JRG8gbm90IGRhZW1vbml6ZVxuLXMJbmJkIHN3YXAgc3VwcG9ydCAobG9jayBzZXJ2ZXIgaW50byBtZW1vcnkpIgorCisjZGVmaW5lIEhFTFBfbW91bnRwb2ludCAidXNhZ2U6IG1vdW50cG9pbnQgWy1xZF0gRElSXG4gICAgICAgbW91bnRwb2ludCBbLXF4XSBERVZJQ0VcblxuQ2hlY2sgd2hldGhlciB0aGUgZGlyZWN0b3J5IG9yIGRldmljZSBpcyBhIG1vdW50cG9pbnQuXG5cbi1xCUJlIHF1aWV0LCByZXR1cm4gemVybyBpZiBkaXJlY3RvcnkgaXMgYSBtb3VudHBvaW50XG4tZAlQcmludCBtYWpvci9taW5vciBkZXZpY2UgbnVtYmVyIG9mIHRoZSBkaXJlY3Rvcnlcbi14CVByaW50IG1ham9yL21pbm9yIGRldmljZSBudW1iZXIgb2YgdGhlIGJsb2NrIGRldmljZSIKKworI2RlZmluZSBIRUxQX21vZGluZm8gInVzYWdlOiBtb2RpbmZvIFstMF0gWy1iIGJhc2VkaXJdIFstayBrZXJuZWxdIFstRiBmaWVsZF0gW21vZHVsZXxmaWxlLi4uXVxuXG5EaXNwbGF5IG1vZHVsZSBmaWVsZHMgZm9yIG1vZHVsZXMgc3BlY2lmaWVkIGJ5IG5hbWUgb3IgLmtvIHBhdGguXG5cbi1GICBPbmx5IHNob3cgdGhlIGdpdmVuIGZpZWxkXG4tMCAgU2VwYXJhdGUgZmllbGRzIHdpdGggTlVMIHJhdGhlciB0aGFuIG5ld2xpbmVcbi1iICBVc2UgPGJhc2VkaXI+IGFzIHJvb3QgZm9yIC9saWIvbW9kdWxlcy9cbi1rICBMb29rIGluIGdpdmVuIGRpcmVjdG9yeSB1bmRlciAvbGliL21vZHVsZXMvIgorCisjZGVmaW5lIEhFTFBfbWtzd2FwICJ1c2FnZTogbWtzd2FwIFstTCBMQUJFTF0gREVWSUNFXG5cblNldCB1cCBhIExpbnV4IHN3YXAgYXJlYSBvbiBhIGRldmljZSBvciBmaWxlLiIKKworI2RlZmluZSBIRUxQX21rcGFzc3dkICJ1c2FnZTogbWtwYXNzd2QgWy1QIEZEXSBbLW0gVFlQRV0gWy1TIFNBTFRdIFtQQVNTV09SRF0gW1NBTFRdXG5cbkVuY3J5cHQgUEFTU1dPUkQgdXNpbmcgY3J5cHQoMyksIHdpdGggZWl0aGVyIHJhbmRvbSBvciBwcm92aWRlZCBTQUxULlxuXG4tUCBGRAlSZWFkIHBhc3N3b3JkIGZyb20gZmlsZSBkZXNjcmlwdG9yIEZEXG4tbSBUWVBFCUVuY3J5cHRpb24gbWV0aG9kIChkZXMsIG1kNSwgc2hhMjU2LCBvciBzaGE1MTI7IGRlZmF1bHQgaXMgZGVzKSIKKworI2RlZmluZSBIRUxQX21peCAidXNhZ2U6IG1peCBbLWQgREVWXSBbLWMgQ0hBTk5FTF0gWy1sIFZPTF0gWy1yIFJJR0hUXVxuXG5MaXN0IE9TUyBzb3VuZCBjaGFubmVscyAobW9kdWxlIHNuZC1taXhlci1vc3MpLCBvciBzZXQgdm9sdW1lKHMpLlxuXG4tYyBDSEFOTkVMCVNldC9zaG93IHZvbHVtZSBvZiBDSEFOTkVMIChkZWZhdWx0IGZpcnN0IGNoYW5uZWwgZm91bmQpXG4tZCBERVYJCURldmljZSBub2RlIChkZWZhdWx0IC9kZXYvbWl4ZXIpXG4tbCBWT0wJCVZvbHVtZSBsZXZlbFxuLXIgUklHSFQJVm9sdW1lIG9mIHJpZ2h0IHN0ZXJlbyBjaGFubmVsICh3aXRoIC1yLCAtbCBzZXRzIGxlZnQgdm9sdW1lKSIKKworI2RlZmluZSBIRUxQX21lbWVhdGVyICJ1c2FnZTogbWVtZWF0ZXIgWy1NXSBCWVRFU1xuXG5Db25zdW1lIHRoZSBzcGVjaWZpZWQgYW1vdW50IG9mIG1lbW9yeSBhbmQgd2FpdCB0byBiZSBraWxsZWQuXG5cbi1NCURvbid0IG1sb2NrKCkgdGhlIG1lbW9yeSAobGV0IGl0IHN3YXAgb3V0KS4iCisKKyNkZWZpbmUgSEVMUF9tY29va2llICJ1c2FnZTogbWNvb2tpZSBbLXZWXVxuXG5HZW5lcmF0ZSBhIDEyOC1iaXQgc3Ryb25nIHJhbmRvbSBudW1iZXIuXG5cbi12ICBzaG93IGVudHJvcHkgc291cmNlICh2ZXJib3NlKVxuLVYgIHNob3cgdmVyc2lvbiIKKworI2RlZmluZSBIRUxQX21ha2VkZXZzICJ1c2FnZTogbWFrZWRldnMgWy1kIGRldmljZV90YWJsZV0gcm9vdGRpclxuXG5DcmVhdGUgYSByYW5nZSBvZiBzcGVjaWFsIGZpbGVzIGFzIHNwZWNpZmllZCBpbiBhIGRldmljZSB0YWJsZS5cblxuLWQJRmlsZSBjb250YWluaW5nIGRldmljZSB0YWJsZSAoZGVmYXVsdCByZWFkcyBmcm9tIHN0ZGluKVxuXG5FYWNoIGxpbmUgb2YgdGhlIGRldmljZSB0YWJsZSBoYXMgdGhlIGZpZWxkczpcbjxuYW1lPiA8dHlwZT4gPG1vZGU+IDx1aWQ+IDxnaWQ+IDxtYWpvcj4gPG1pbm9yPiA8c3RhcnQ+IDxpbmNyZW1lbnQ+IDxjb3VudD5cbldoZXJlIG5hbWUgaXMgdGhlIGZpbGUgbmFtZSwgYW5kIHR5cGUgaXMgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG5cbmIJQmxvY2sgZGV2aWNlXG5jCUNoYXJhY3RlciBkZXZpY2VcbmQJRGlyZWN0b3J5XG5mCVJlZ3VsYXIgZmlsZVxucAlOYW1lZCBwaXBlIChmaWZvKVxuXG5PdGhlciBmaWVsZHMgc3BlY2lmeSBwZXJtaXNzaW9ucywgdXNlciBhbmQgZ3JvdXAgaWQgb3duaW5nIHRoZSBmaWxlLFxuYW5kIGFkZGl0aW9uYWwgZmllbGRzIGZvciBkZXZpY2Ugc3BlY2lhbCBmaWxlcy4gVXNlICctJyBmb3IgYmxhbmsgZW50cmllcyxcbnVuc3BlY2lmaWVkIGZpZWxkcyBhcmUgdHJlYXRlZCBhcyAnLScuIgorCisjZGVmaW5lIEhFTFBfbHN1c2IgInVzYWdlOiBsc3VzYiBbLWldXG5cbkxpc3QgVVNCIGhvc3RzL2RldmljZXMuXG5cbi1pCUlEIGRhdGFiYXNlIChkZWZhdWx0IC9ldGMvdXNiLmlkc1suZ3pdKSIKKworI2RlZmluZSBIRUxQX2xzcGNpICJ1c2FnZTogbHNwY2kgWy1la21uXSBbLWkgRklMRV1cblxuTGlzdCBQQ0kgZGV2aWNlcy5cblxuLWUJRXh0ZW5kZWQgKDYgZGlnaXQpIGNsYXNzXG4taQlJRCBkYXRhYmFzZSAoZGVmYXVsdCAvZXRjL3BjaS5pZHNbLmd6XSlcbi1rCVNob3cga2VybmVsIGRyaXZlclxuLW0JTWFjaGluZSByZWFkYWJsZVxuLW4JTnVtZXJpYyBvdXRwdXQgKC1ubiBmb3IgYm90aClcbi14CUhleCBkdW1wIG9mIGNvbmZpZyBzcGFjZSAoNjQgYnl0ZXM7IC14eHggZm9yIDI1NiwgLXh4eHggZm9yIDQwOTYpIgorCisjZGVmaW5lIEhFTFBfbHNtb2QgInVzYWdlOiBsc21vZFxuXG5EaXNwbGF5IHRoZSBjdXJyZW50bHkgbG9hZGVkIG1vZHVsZXMsIHRoZWlyIHNpemVzIGFuZCB0aGVpciBkZXBlbmRlbmNpZXMuIgorCisjZGVmaW5lIEhFTFBfY2hhdHRyICJ1c2FnZTogY2hhdHRyIFstUl0gWy0rPUFhY0RkaWpzU3RUdV0gWy1wIFBST0pJRF0gWy12IFZFUlNJT05dIFtGSUxFLi4uXVxuXG5DaGFuZ2UgZmlsZSBhdHRyaWJ1dGVzIG9uIGEgTGludXggZmlsZSBzeXN0ZW0uXG5cbi1SCVJlY3Vyc2Vcbi1wCVNldCB0aGUgZmlsZSdzIHByb2plY3QgbnVtYmVyXG4tdglTZXQgdGhlIGZpbGUncyB2ZXJzaW9uL2dlbmVyYXRpb24gbnVtYmVyXG5cbk9wZXJhdG9yczpcbiAgJy0nIFJlbW92ZSBhdHRyaWJ1dGVzXG4gICcrJyBBZGQgYXR0cmlidXRlc1xuICAnPScgU2V0IGF0dHJpYnV0ZXNcblxuQXR0cmlidXRlczpcbiAgQSAgTm8gYXRpbWUgICAgICAgICAgICAgICAgICAgICBhICBBcHBlbmQgb25seVxuICBDICBObyBDT1cgICAgICAgICAgICAgICAgICAgICAgIGMgIENvbXByZXNzaW9uXG4gIEQgIFN5bmNocm9ub3VzIGRpciB1cGRhdGVzICAgICAgZCAgTm8gZHVtcFxuICBFICBFbmNyeXB0ZWQgICAgICAgICAgICAgICAgICAgIGUgIEV4dGVudHNcbiAgRiAgQ2FzZS1pbnNlbnNpdGl2ZSAoY2FzZWZvbGQpXG4gIEkgIEluZGV4ZWQgZGlyZWN0b3J5ICAgICAgICAgICAgaSAgSW1tdXRhYmxlXG4gIGogIEpvdXJuYWwgZGF0YVxuICBOICBJbmxpbmUgZGF0YSBpbiBpbm9kZVxuICBQICBQcm9qZWN0IGhpZXJhcmNoeVxuICBTICBTeW5jaHJvbm91cyBmaWxlIHVwZGF0ZXMgICAgIHMgIFNlY3VyZSBkZWxldGVcbiAgVCAgVG9wIG9mIGRpciBoaWVyYXJjaHkgICAgICAgICB0ICBObyB0YWlsLW1lcmdpbmdcbiAgdSAgQWxsb3cgdW5kZWxldGVcbiAgViAgVmVyaXR5IgorCisjZGVmaW5lIEhFTFBfbHNhdHRyICJ1c2FnZTogbHNhdHRyIFstUmFkbHB2XSBbRklMRS4uLl1cblxuTGlzdCBmaWxlIGF0dHJpYnV0ZXMgb24gYSBMaW51eCBmaWxlIHN5c3RlbS5cbkZsYWcgbGV0dGVycyBhcmUgZGVmaW5lZCBpbiBjaGF0dHIgaGVscC5cblxuLVIJUmVjdXJzaXZlbHkgbGlzdCBhdHRyaWJ1dGVzIG9mIGRpcmVjdG9yaWVzIGFuZCB0aGVpciBjb250ZW50c1xuLWEJTGlzdCBhbGwgZmlsZXMgaW4gZGlyZWN0b3JpZXMsIGluY2x1ZGluZyBmaWxlcyB0aGF0IHN0YXJ0IHdpdGggJy4nXG4tZAlMaXN0IGRpcmVjdG9yaWVzIGxpa2Ugb3RoZXIgZmlsZXMsIHJhdGhlciB0aGFuIGxpc3RpbmcgdGhlaXIgY29udGVudHNcbi1sCUxpc3QgbG9uZyBmbGFnIG5hbWVzXG4tcAlMaXN0IHRoZSBmaWxlJ3MgcHJvamVjdCBudW1iZXJcbi12CUxpc3QgdGhlIGZpbGUncyB2ZXJzaW9uL2dlbmVyYXRpb24gbnVtYmVyIgorCisjZGVmaW5lIEhFTFBfbG9zZXR1cCAidXNhZ2U6IGxvc2V0dXAgWy1jZHJzXSBbLW8gT0ZGU0VUXSBbLVMgU0laRV0gey1kIERFVklDRS4uLnwtaiBGSUxFfC1hZnx7REVWSUNFIEZJTEV9fVxuXG5Bc3NvY2lhdGUgYSBsb29wYmFjayBkZXZpY2Ugd2l0aCBhIGZpbGUsIG9yIHNob3cgY3VycmVudCBmaWxlIChpZiBhbnkpXG5hc3NvY2lhdGVkIHdpdGggYSBsb29wIGRldmljZS5cblxuSW5zdGVhZCBvZiBhIGRldmljZTpcbi1hCUl0ZXJhdGUgdGhyb3VnaCBhbGwgbG9vcGJhY2sgZGV2aWNlc1xuLWYJRmluZCBmaXJzdCB1bnVzZWQgbG9vcCBkZXZpY2UgKG1heSBjcmVhdGUgb25lKVxuLWogRklMRQlJdGVyYXRlIHRocm91Z2ggYWxsIGxvb3BiYWNrIGRldmljZXMgYXNzb2NpYXRlZCB3aXRoIEZJTEVcblxuZXhpc3Rpbmc6XG4tYwlDaGVjayBjYXBhY2l0eSAoZmlsZSBzaXplIGNoYW5nZWQpXG4tZCBERVYJRGV0YWNoIGxvb3BiYWNrIGRldmljZVxuLUQJRGV0YWNoIGFsbCBsb29wYmFjayBkZXZpY2VzXG5cbm5ldzpcbi1zCVNob3cgZGV2aWNlIG5hbWUgKGFsaWFzIC0tc2hvdylcbi1vIE9GRglTdGFydCBhc3NvY2lhdGlvbiBhdCBvZmZzZXQgT0ZGIGludG8gRklMRVxuLXIJUmVhZCBvbmx5XG4tUyBTSVpFCUxpbWl0IFNJWkUgb2YgbG9vcGJhY2sgYXNzb2NpYXRpb24gKGFsaWFzIC0tc2l6ZWxpbWl0KSIKKworI2RlZmluZSBIRUxQX2xvZ2luICJ1c2FnZTogbG9naW4gWy1wXSBbLWggaG9zdF0gWy1mIFVTRVJOQU1FXSBbVVNFUk5BTUVdXG5cbkxvZyBpbiBhcyBhIHVzZXIsIHByb21wdGluZyBmb3IgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGlmIG5lY2Vzc2FyeS5cblxuLXAJUHJlc2VydmUgZW52aXJvbm1lbnRcbi1oCVRoZSBuYW1lIG9mIHRoZSByZW1vdGUgaG9zdCBmb3IgdGhpcyBsb2dpblxuLWYJbG9naW4gYXMgVVNFUk5BTUUgd2l0aG91dCBhdXRoZW50aWNhdGlvbiIKKworI2RlZmluZSBIRUxQX2xpbnV4MzIgInVzYWdlOiBsaW51eDMyIFtDT01NQU5ELi4uXVxuXG5UZWxsIHVuYW1lIC1tIHRvIGxpZSB0byBhdXRvY29uZiAodG8gYnVpbGQgMzIgYml0IGJpbmFyaWVzIG9uIDY0IGJpdCBrZXJuZWwpLiIKKworI2RlZmluZSBIRUxQX2lvcmVuaWNlICJ1c2FnZTogaW9yZW5pY2UgUElEIFtDTEFTU10gW1BSSU9SSVRZXVxuXG5EaXNwbGF5IG9yIGNoYW5nZSBJL08gcHJpb3JpdHkgb2YgZXhpc3RpbmcgcHJvY2Vzcy4gQ0xBU1MgY2FuIGJlXG5cInJ0XCIgZm9yIHJlYWx0aW1lLCBcImJlXCIgZm9yIGJlc3QgZWZmb3J0LCBcImlkbGVcIiBmb3Igb25seSB3aGVuIGlkbGUsIG9yXG5cIm5vbmVcIiB0byBsZWF2ZSBpdCBhbG9uZS4gUFJJT1JJVFkgY2FuIGJlIDAtNyAoMCBpcyBoaWdoZXN0LCBkZWZhdWx0IDQpLiIKKworI2RlZmluZSBIRUxQX2lvbmljZSAidXNhZ2U6IGlvbmljZSBbLXRdIFstYyBDTEFTU10gWy1uIExFVkVMXSBbQ09NTUFORC4uLnwtcCBQSURdXG5cbkNoYW5nZSB0aGUgSS9PIHNjaGVkdWxpbmcgcHJpb3JpdHkgb2YgYSBwcm9jZXNzLiBXaXRoIG5vIGFyZ3VtZW50c1xuKG9yIGp1c3QgLXApLCBkaXNwbGF5IHByb2Nlc3MnIGV4aXN0aW5nIEkvTyBjbGFzcy9wcmlvcml0eS5cblxuLWMJQ0xBU1MgPSAxLTM6IDEocmVhbHRpbWUpLCAyKGJlc3QtZWZmb3J0LCBkZWZhdWx0KSwgMyh3aGVuLWlkbGUpXG4tbglMRVZFTCA9IDAtNzogKDAgaXMgaGlnaGVzdCBwcmlvcml0eSwgZGVmYXVsdCA9IDUpXG4tcAlBZmZlY3QgZXhpc3RpbmcgUElEIGluc3RlYWQgb2Ygc3Bhd25pbmcgbmV3IGNoaWxkXG4tdAlJZ25vcmUgZmFpbHVyZSB0byBzZXQgSS9PIHByaW9yaXR5XG5cblN5c3RlbSBkZWZhdWx0IGlvcHJpb3JpdHkgaXMgZ2VuZXJhbGx5IC1jIDIgLW4gNC4iCisKKyNkZWZpbmUgSEVMUF9pbnNtb2QgInVzYWdlOiBpbnNtb2QgTU9EVUxFIFtPUFRJT04uLi5dXG5cbkxvYWQgdGhlIG1vZHVsZSBuYW1lZCBNT0RVTEUgcGFzc2luZyBvcHRpb25zIGlmIGdpdmVuLiIKKworI2RlZmluZSBIRUxQX2lub3RpZnlkICJ1c2FnZTogaW5vdGlmeWQgUFJPRyBGSUxFWzpNQVNLXSAuLi5cblxuV2hlbiBhIGZpbGVzeXN0ZW0gZXZlbnQgbWF0Y2hpbmcgTUFTSyBvY2N1cnMgdG8gYSBGSUxFLCBydW4gUFJPRyBhczpcblxuICBQUk9HIEVWRU5UUyBGSUxFIFtESVJGSUxFXVxuXG5JZiBQUk9HIGlzIFwiLVwiIGV2ZW50cyBhcmUgc2VudCB0byBzdGRvdXQuXG5cblRoaXMgZmlsZSBpczpcbiAgYSAgYWNjZXNzZWQgICAgYyAgbW9kaWZpZWQgICAgZSAgbWV0YWRhdGEgY2hhbmdlICB3ICBjbG9zZWQgKHdyaXRhYmxlKVxuICByICBvcGVuZWQgICAgICBEICBkZWxldGVkICAgICBNICBtb3ZlZCAgICAgICAgICAgIDAgIGNsb3NlZCAodW53cml0YWJsZSlcbiAgdSAgdW5tb3VudGVkICAgbyAgb3ZlcmZsb3cgICAgeCAgdW53YXRjaGFibGVcblxuQSBmaWxlIGluIHRoaXMgZGlyZWN0b3J5IGlzOlxuICBtICBtb3ZlZCBpbiAgICB5ICBtb3ZlZCBvdXQgICBuICBjcmVhdGVkICAgICAgICAgIGQgIGRlbGV0ZWRcblxuV2hlbiB4IGV2ZW50IGhhcHBlbnMgZm9yIGFsbCBGSUxFcywgaW5vdGlmeWQgZXhpdHMgKGFmdGVyIHdhaXRpbmcgZm9yIFBST0cpLiIKKworI2RlZmluZSBIRUxQX2kyY3RyYW5zZmVyICJ1c2FnZTogaTJjdHJhbnNmZXIgWy1meV0gQlVTIERFU0MgW0RBVEEuLi5dLi4uXG5cbk1ha2UgaTJjIHRyYW5zZmVycy4gREVTQyBpcyAncicgZm9yIHJlYWQgb3IgJ3cnIGZvciB3cml0ZSwgZm9sbG93ZWQgYnlcbnRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZCBvciB3cml0ZSwgZm9sbG93ZWQgYnkgJ0AnIGFuZCBhIDctYml0IGFkZHJlc3MuXG5Gb3IgYW55IG1lc3NhZ2UgYWZ0ZXIgdGhlIGZpcnN0LCB0aGUgJ0AnIGFuZCBhZGRyZXNzIGNhbiBiZSBvbWl0dGVkIHRvXG5yZXVzZSB0aGUgcHJldmlvdXMgYWRkcmVzcy4gQSAndycgREVTQyBtdXN0IGJlIGZvbGxvd2VkIGJ5IHRoZSBudW1iZXIgb2ZcbkRBVEEgYnl0ZXMgdGhhdCB3YXMgc3BlY2lmaWVkIGluIHRoZSBERVNDLlxuXG4tZglGb3JjZSBhY2Nlc3MgdG8gYnVzeSBkZXZpY2VzXG4tdglWZXJib3NlIChzaG93IG1lc3NhZ2VzIHNlbnQsIG5vdCBqdXN0IHJlY2VpdmVkKVxuLXkJU2tpcCBjb25maXJtYXRpb24gcHJvbXB0cyAoeWVzIHRvIGFsbCkiCisKKyNkZWZpbmUgSEVMUF9pMmNzZXQgInVzYWdlOiBpMmNzZXQgWy1meV0gQlVTIENISVAgQUREUiBWQUxVRS4uLiBNT0RFXG5cbldyaXRlIGFuIGkyYyByZWdpc3Rlci4gTU9ERSBpcyBiIGZvciBieXRlLCB3IGZvciAxNi1iaXQgd29yZCwgaSBmb3IgSTJDIGJsb2NrLlxuXG4tZglGb3JjZSBhY2Nlc3MgdG8gYnVzeSBkZXZpY2VzXG4teQlTa2lwIGNvbmZpcm1hdGlvbiBwcm9tcHRzICh5ZXMgdG8gYWxsKSIKKworI2RlZmluZSBIRUxQX2kyY2dldCAidXNhZ2U6IGkyY2dldCBbLWZ5XSBCVVMgQ0hJUCBbQUREUl1cblxuUmVhZCBhbiBpMmMgcmVnaXN0ZXIuXG5cbi1mCUZvcmNlIGFjY2VzcyB0byBidXN5IGRldmljZXNcbi15CVNraXAgY29uZmlybWF0aW9uIHByb21wdHMgKHllcyB0byBhbGwpIgorCisjZGVmaW5lIEhFTFBfaTJjZHVtcCAidXNhZ2U6IGkyY2R1bXAgWy1meV0gQlVTIENISVBcblxuRHVtcCBpMmMgcmVnaXN0ZXJzLlxuXG4tZglGb3JjZSBhY2Nlc3MgdG8gYnVzeSBkZXZpY2VzXG4teQlTa2lwIGNvbmZpcm1hdGlvbiBwcm9tcHRzICh5ZXMgdG8gYWxsKSIKKworI2RlZmluZSBIRUxQX2kyY2RldGVjdCAidXNhZ2U6IGkyY2RldGVjdCBbLWFxcnldIEJVUyBbRklSU1QgTEFTVF1cbnVzYWdlOiBpMmNkZXRlY3QgLUYgQlVTXG51c2FnZTogaTJjZGV0ZWN0IC1sXG5cbkRldGVjdCBpMmMgZGV2aWNlcy5cblxuLWEJQWxsIGFkZHJlc3NlcyAoMHgwMC0weDdmIHJhdGhlciB0aGFuIDB4MDMtMHg3NyBvciBGSVJTVC1MQVNUKVxuLUYJU2hvdyBmdW5jdGlvbmFsaXR5XG4tbAlMaXN0IGF2YWlsYWJsZSBidXNlc1xuLXEJUHJvYmUgd2l0aCBTTUJ1cyBRdWljayBXcml0ZSAoZGVmYXVsdClcbi1yCVByb2JlIHdpdGggU01CdXMgUmVhZCBCeXRlXG4teQlTa2lwIGNvbmZpcm1hdGlvbiBwcm9tcHRzICh5ZXMgdG8gYWxsKSIKKworI2RlZmluZSBIRUxQX2h3Y2xvY2sgInVzYWdlOiBod2Nsb2NrIFstcnN3dGx1XSBbLWYgRklMRV1cblxuR2V0L3NldCB0aGUgaGFyZHdhcmUgY2xvY2suIERlZmF1bHQgaXMgaHdjbG9jayAtcnVmIC9kZXYvcnRjMFxuXG4tZglVc2Ugc3BlY2lmaWVkIGRldmljZSBGSUxFIGluc3RlYWQgb2YgL2Rldi9ydGMwICgtLXJ0Yylcbi1sCUhhcmR3YXJlIGNsb2NrIHVzZXMgbG9jYWx0aW1lICgtLWxvY2FsdGltZSlcbi1yCVNob3cgaGFyZHdhcmUgY2xvY2sgdGltZSAoLS1zaG93KVxuLXMJU2V0IHN5c3RlbSB0aW1lIGZyb20gaGFyZHdhcmUgY2xvY2sgKC0taGN0b3N5cylcbi10CUluZm9ybSBrZXJuZWwgb2Ygbm9uLVVUQyBjbG9jaydzIHRpbWV6b25lIHNvIGl0IHJldHVybnMgVVRDICgtLXN5c3R6KVxuLXUJSGFyZHdhcmUgY2xvY2sgdXNlcyBVVEMgKC0tdXRjKVxuLXcJU2V0IGhhcmR3YXJlIGNsb2NrIGZyb20gc3lzdGVtIHRpbWUgKC0tc3lzdG9oYykiCisKKyNkZWZpbmUgSEVMUF9oZXhlZGl0ICJ1c2FnZTogaGV4ZWRpdCBbLXJdIEZJTEVcblxuSGV4YWRlY2ltYWwgZmlsZSBlZGl0b3Ivdmlld2VyLiBBbGwgY2hhbmdlcyBhcmUgd3JpdHRlbiB0byBkaXNrIGltbWVkaWF0ZWx5LlxuXG4tcglSZWFkIG9ubHkgKGRpc3BsYXkgYnV0IGRvbid0IGVkaXQpXG5cbktleXM6XG5BcnJvd3MgICAgICAgICBNb3ZlIGxlZnQvcmlnaHQvdXAvZG93biBieSBvbmUgbGluZS9jb2x1bW5cblBnVXAvUGdEbiAgICAgIE1vdmUgdXAvZG93biBieSBvbmUgcGFnZVxuSG9tZS9FbmQgICAgICAgU3RhcnQvZW5kIG9mIGxpbmUgKHN0YXJ0L2VuZCBvZiBmaWxlIHdpdGggY3RybClcbjAtOSwgYS1mICAgICAgIENoYW5nZSBjdXJyZW50IGhhbGYtYnl0ZSB0byBoZXhhZGVjaW1hbCB2YWx1ZVxuXkogb3IgOiAgICAgICAgSnVtcCAoKy8tIGZvciByZWxhdGl2ZSBvZmZzZXQsIG90aGVyd2lzZSBhYnNvbHV0ZSBhZGRyZXNzKVxuXkYgb3IgLyAgICAgICAgRmluZCBzdHJpbmcgKF5HL246IG5leHQsIF5EL3A6IHByZXZpb3VzIG1hdGNoKVxudSAgICAgICAgICAgICAgVW5kb1xueCAgICAgICAgICAgICAgVG9nZ2xlIGJ3L2NvbG9yIGRpc3BsYXlcbnEvXkMvXlEvRXNjICAgIFF1aXQiCisKKyNkZWZpbmUgSEVMUF9oZWxwICJ1c2FnZTogaGVscCBbLWFodV0gW0NPTU1BTkRdXG5cbi1hCUFsbCBjb21tYW5kc1xuLXUJVXNhZ2Ugb25seVxuLWgJSFRNTCBvdXRwdXRcblxuU2hvdyB1c2FnZSBpbmZvcm1hdGlvbiBmb3IgdG95Ym94IGNvbW1hbmRzLlxuUnVuIFwidG95Ym94XCIgd2l0aCBubyBhcmd1bWVudHMgZm9yIGEgbGlzdCBvZiBhdmFpbGFibGUgY29tbWFuZHMuIgorCisjZGVmaW5lIEhFTFBfZ3Bpb3NldCAidXNhZ2U6IGdwaW9zZXQgWy1sXSBDSElQIExJTkU9VkFMVUUuLi5cblxuU2V0IHRoZSBsaW5lcyBvbiBDSElQIHRvIHRoZSBnaXZlbiB2YWx1ZXMuIFVzZSBncGlvZmluZCB0byBjb252ZXJ0IGxpbmVcbm5hbWVzIHRvIG51bWJlcnMuXG5cbi1sCUFjdGl2ZSBsb3ciCisKKyNkZWZpbmUgSEVMUF9ncGlvZ2V0ICJ1c2FnZTogZ3Bpb2dldCBbLWxdIENISVAgTElORS4uLlxuXG5HZXRzIHRoZSB2YWx1ZXMgb2YgdGhlIGdpdmVuIGxpbmVzIG9uIENISVAuIFVzZSBncGlvZmluZCB0byBjb252ZXJ0IGxpbmVcbm5hbWVzIHRvIG51bWJlcnMuXG5cbi1sCUFjdGl2ZSBsb3ciCisKKyNkZWZpbmUgSEVMUF9ncGlvaW5mbyAidXNhZ2U6IGdwaW9pbmZvIFtDSElQLi4uXVxuXG5TaG93IGdwaW8gY2hpcHMnIGxpbmVzLiIKKworI2RlZmluZSBIRUxQX2dwaW9maW5kICJ1c2FnZTogZ3Bpb2ZpbmQgTkFNRVxuXG5TaG93IHRoZSBjaGlwIGFuZCBsaW5lIG51bWJlciBmb3IgdGhlIGdpdmVuIGxpbmUgbmFtZS4iCisKKyNkZWZpbmUgSEVMUF9ncGlvZGV0ZWN0ICJ1c2FnZTogZ3Bpb2RldGVjdFxuXG5TaG93IGFsbCBncGlvIGNoaXBzJyBuYW1lcywgbGFiZWxzLCBhbmQgbnVtYmVyIG9mIGxpbmVzLiIKKworI2RlZmluZSBIRUxQX2dldG9wdCAidXNhZ2U6IGdldG9wdCBbLWFUdV0gWy1sbyBPUFRJT05TXSBbLW4gTkFNRV0gW09QVElPTlNdIEFSRy4uLlxuXG5PdXRwdXRzIGNvbW1hbmQgbGluZSB3aXRoIHJlY29nbml6ZWQgT1BUSU9OUyBjaGFyYWN0ZXIgYXJndW1lbnRzIG1vdmVkIHRvXG5mcm9udCwgdGhlbiBcIi0tXCIsIHRoZW4gbm9uLW9wdGlvbiBhcmd1bWVudHMuIFJldHVybnMgMSBpZiB1bmtub3duIG9wdGlvbnMuXG5PUFRJT05TIGZvbGxvd2VkIGJ5IDogdGFrZSBhbiBhcmd1bWVudCwgb3IgOjogZm9yIG9wdGlvbmFsIGFyZ3VtZW50cyAod2hpY2hcbm11c3QgYmUgYXR0YWNoZWQsIGFsYSAteGJsYWggb3IgLS1sb25nPWJsYWgpLlxuXG4tYQlBbGxvdyBsb25nIG9wdGlvbnMgc3RhcnRpbmcgd2l0aCBhIHNpbmdsZSAtXG4tbAlMb25nIE9QVElPTlMgKHJlcGVhdGVkIG9yIGNvbW1hIHNlcGFyYXRlZClcbi1uCUNvbW1hbmQgTkFNRSBmb3IgZXJyb3IgbWVzc2FnZXNcbi1vCVNob3J0IE9QVElPTlMgKGluc3RlYWQgb2YgdXNpbmcgZmlyc3QgYXJndW1lbnQpXG4tVAlUZXN0IHdoZXRoZXIgdGhpcyBpcyBhIG1vZGVybiBnZXRvcHRcbi11CVVucXVvdGVkIG91dHB1dCAoZGVmYXVsdCBpZiBubyBvdGhlciBvcHRpb25zIHNldClcblxuRXhhbXBsZTpcbiAgJCBnZXRvcHQgLWwgbG9uZzosYXJnOjogYWJjIGNvbW1hbmQgLS1sb25nIC1iIHRoZXJlIC0tYXJnXG4gIC0tbG9uZyAnLWInIC0tYXJnICcnIC0tICdjb21tYW5kJyAndGhlcmUnIgorCisjZGVmaW5lIEhFTFBfZnN5bmMgInVzYWdlOiBmc3luYyBbLWRdIFtGSUxFLi4uXVxuXG5GbHVzaCBkaXNrIGNhY2hlIGZvciBGSUxFKHMpLCB3cml0aW5nIGNhY2hlZCBkYXRhIHRvIHN0b3JhZ2UgZGV2aWNlLlxuXG4tZAlTa2lwIGRpcmVjdG9yeSBpbmZvIChzeW5jIGZpbGUgY29udGVudHMgb25seSkuIgorCisjZGVmaW5lIEhFTFBfZnNmcmVlemUgInVzYWdlOiBmc2ZyZWV6ZSB7LWYgfCAtdX0gTU9VTlRQT0lOVFxuXG5GcmVlemUgb3IgdW5mcmVlemUgYSBmaWxlc3lzdGVtLlxuXG4tZglGcmVlemVcbi11CVVuZnJlZXplIgorCisjZGVmaW5lIEhFTFBfZnJlZXJhbWRpc2sgInVzYWdlOiBmcmVlcmFtZGlzayBbUkFNIGRldmljZV1cblxuRnJlZSBhbGwgbWVtb3J5IGFsbG9jYXRlZCB0byBzcGVjaWZpZWQgcmFtZGlzayIKKworI2RlZmluZSBIRUxQX2ZyZWUgInVzYWdlOiBmcmVlIFstYmttZ3RdXG5cbkRpc3BsYXkgdGhlIHRvdGFsLCBmcmVlIGFuZCB1c2VkIGFtb3VudCBvZiBwaHlzaWNhbCBtZW1vcnkgYW5kIHN3YXAgc3BhY2UuXG5cbi1ia21nCU91dHB1dCB1bml0cyAoZGVmYXVsdCBpcyBieXRlcylcbi1oCUh1bWFuIHJlYWRhYmxlIChLPTEwMjQpIgorCisjZGVmaW5lIEhFTFBfZm10ICJ1c2FnZTogZm10IFstdyBXSURUSF0gW0ZJTEUuLi5dXG5cblJlZm9ybWF0IGlucHV0IHRvIHdvcmR3cmFwIGF0IGEgZ2l2ZW4gbGluZSBsZW5ndGgsIHByZXNlcnZpbmcgZXhpc3RpbmdcbmluZGVudGF0aW9uIGxldmVsLCB3cml0aW5nIHRvIHN0ZG91dC5cblxuLXcgV0lEVEgJTWF4aW11bSBjaGFyYWN0ZXJzIHBlciBsaW5lIChkZWZhdWx0IDc1KSIKKworI2RlZmluZSBIRUxQX2Zsb2NrICJ1c2FnZTogZmxvY2sgWy1zeHVuXSBmZFxuXG5NYW5hZ2UgYWR2aXNvcnkgZmlsZSBsb2Nrcy5cblxuLXMJU2hhcmVkIGxvY2tcbi14CUV4Y2x1c2l2ZSBsb2NrIChkZWZhdWx0KVxuLXUJVW5sb2NrXG4tbglOb24tYmxvY2tpbmc6IGZhaWwgcmF0aGVyIHRoYW4gd2FpdCBmb3IgdGhlIGxvY2siCisKKyNkZWZpbmUgSEVMUF9mYWxsb2NhdGUgInVzYWdlOiBmYWxsb2NhdGUgWy1vIE9GRlNFVF0gLWwgU0laRSBGSUxFXG5cblRlbGwgdGhlIGZpbGVzeXN0ZW0gdG8gYWxsb2NhdGUgc3BhY2UgZm9yIGEgcmFuZ2UgaW4gYSBmaWxlLlxuXG4tbAlOdW1iZXIgb2YgYnl0ZXMgaW4gcmFuZ2Vcbi1vCVN0YXJ0IG9mZnNldCBvZiByYW5nZSAoZGVmYXVsdCAwKSIKKworI2RlZmluZSBIRUxQX2ZhY3RvciAidXNhZ2U6IGZhY3RvciBbLWh4XSBOVU1CRVIuLi5cblxuRmFjdG9yIGludGVnZXJzLlxuXG4taAlIdW1hbiByZWFkYWJsZTogc2hvdyByZXBlYXRlZCBmYWN0b3JzIGFzIHheblxuLXgJSGV4YWRlY2ltYWwgb3V0cHV0IgorCisjZGVmaW5lIEhFTFBfZWplY3QgInVzYWdlOiBlamVjdCBbLXN0VF0gW0RFVklDRV1cblxuRWplY3QgREVWSUNFIG9yIGRlZmF1bHQgL2Rldi9jZHJvbVxuXG4tcwlTQ1NJIGRldmljZVxuLXQJQ2xvc2UgdHJheVxuLVQJT3Blbi9jbG9zZSB0cmF5ICh0b2dnbGUpIgorCisjZGVmaW5lIEhFTFBfdW5peDJkb3MgInVzYWdlOiB1bml4MmRvcyBbRklMRS4uLl1cblxuQ29udmVydCBuZXdsaW5lIGZvcm1hdCBmcm9tIHVuaXggXCJcXG5cIiB0byBkb3MgXCJcXHJcXG5cIi5cbklmIG5vIGZpbGVzIGxpc3RlZCBjb3B5IGZyb20gc3RkaW4sIFwiLVwiIGlzIGEgc3lub255bSBmb3Igc3RkaW4uIgorCisjZGVmaW5lIEhFTFBfZG9zMnVuaXggInVzYWdlOiBkb3MydW5peCBbRklMRS4uLl1cblxuQ29udmVydCBuZXdsaW5lIGZvcm1hdCBmcm9tIGRvcyBcIlxcclxcblwiIHRvIHVuaXggXCJcXG5cIi5cbklmIG5vIGZpbGVzIGxpc3RlZCBjb3B5IGZyb20gc3RkaW4sIFwiLVwiIGlzIGEgc3lub255bSBmb3Igc3RkaW4uIgorCisjZGVmaW5lIEhFTFBfZGV2bWVtICJ1c2FnZTogZGV2bWVtIEFERFIgW1dJRFRIIFtEQVRBXV1cblxuUmVhZC93cml0ZSBwaHlzaWNhbCBhZGRyZXNzLiBXSURUSCBpcyAxLCAyLCA0LCBvciA4IGJ5dGVzIChkZWZhdWx0IDQpLlxuUHJlZml4IEFERFIgd2l0aCAweCBmb3IgaGV4YWRlY2ltYWwsIG91dHB1dCBpcyBpbiBzYW1lIGJhc2UgYXMgYWRkcmVzcy4iCisKKyNkZWZpbmUgSEVMUF9jb3VudCAidXNhZ2U6IGNvdW50IFstbF1cblxuLWwJTG9uZyBvdXRwdXQgKHRvdGFsIGJ5dGVzLCBodW1hbiByZWFkYWJsZSwgdHJhbnNmZXIgcmF0ZSwgZWxhcHNlZCB0aW1lKVxuXG5Db3B5IHN0ZGluIHRvIHN0ZG91dCwgZGlzcGxheWluZyBzaW1wbGUgcHJvZ3Jlc3MgaW5kaWNhdG9yIHRvIHN0ZGVyci4iCisKKyNkZWZpbmUgSEVMUF9jbGVhciAiQ2xlYXIgdGhlIHNjcmVlbi4iCisKKyNkZWZpbmUgSEVMUF9jaHJ0ICJ1c2FnZTogY2hydCBbLVJtb2ZyYmldIHstcCBQSUQgW1BSSU9SSVRZXSB8IFtQUklPUklUWSBDT01NQU5ELi4uXX1cblxuR2V0L3NldCBhIHByb2Nlc3MnIHJlYWwtdGltZSBzY2hlZHVsaW5nIHBvbGljeSBhbmQgcHJpb3JpdHkuXG5cbi1wCVNldC9xdWVyeSBnaXZlbiBwaWQgKGluc3RlYWQgb2YgcnVubmluZyBDT01NQU5EKVxuLVIJU2V0IFNDSEVEX1JFU0VUX09OX0ZPUktcbi1tCVNob3cgbWluL21heCBwcmlvcml0aWVzIGF2YWlsYWJsZVxuXG5TZXQgcG9saWN5IChkZWZhdWx0IC1yKTpcblxuICAtbyAgU0NIRURfT1RIRVIgICAgLWYgIFNDSEVEX0ZJRk8gICAgLXIgIFNDSEVEX1JSXG4gIC1iICBTQ0hFRF9CQVRDSCAgICAtaSAgU0NIRURfSURMRSIKKworI2RlZmluZSBIRUxQX2Nocm9vdCAidXNhZ2U6IGNocm9vdCBORVdST09UIFtDT01NQU5EIFtBUkcuLi5dXVxuXG5SdW4gY29tbWFuZCB3aXRoaW4gYSBuZXcgcm9vdCBkaXJlY3RvcnkuIElmIG5vIGNvbW1hbmQsIHJ1biAvYmluL3NoLiIKKworI2RlZmluZSBIRUxQX2NoY29uICJ1c2FnZTogY2hjb24gWy1oUnZdIENPTlRFWFQgRklMRS4uLlxuXG5DaGFuZ2UgdGhlIFNFTGludXggc2VjdXJpdHkgY29udGV4dCBvZiBsaXN0ZWQgZmlsZVtzXS5cblxuLWgJQ2hhbmdlIHN5bWxpbmtzIGluc3RlYWQgb2Ygd2hhdCB0aGV5IHBvaW50IHRvXG4tUglSZWN1cnNlIGludG8gc3ViZGlyZWN0b3JpZXNcbi12CVZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9iemNhdCAidXNhZ2U6IGJ6Y2F0IFtGSUxFLi4uXVxuXG5EZWNvbXByZXNzIGxpc3RlZCBmaWxlcyB0byBzdGRvdXQuIFVzZSBzdGRpbiBpZiBubyBmaWxlcyBsaXN0ZWQuIgorCisjZGVmaW5lIEhFTFBfYnVuemlwMiAidXNhZ2U6IGJ1bnppcDIgWy1jZnRrdl0gW0ZJTEUuLi5dXG5cbkRlY29tcHJlc3MgbGlzdGVkIGZpbGVzIChmaWxlLmJ6IGJlY29tZXMgZmlsZSkgZGVsZXRpbmcgYXJjaGl2ZSBmaWxlKHMpLlxuUmVhZCBmcm9tIHN0ZGluIGlmIG5vIGZpbGVzIGxpc3RlZC5cblxuLWMJRm9yY2Ugb3V0cHV0IHRvIHN0ZG91dFxuLWYJRm9yY2UgZGVjb21wcmVzc2lvbiAoaWYgRklMRSBkb2Vzbid0IGVuZCBpbiAuYnosIHJlcGxhY2Ugb3JpZ2luYWwpXG4tawlLZWVwIGlucHV0IGZpbGVzICgtYyBhbmQgLXQgaW1wbHkgdGhpcylcbi10CVRlc3QgaW50ZWdyaXR5XG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfYmxvY2tkZXYgInVzYWdlOiBibG9ja2RldiAtLU9QVElPTi4uLiBCTE9DS0RFVi4uLlxuXG5DYWxsIGlvY3RsKHMpIG9uIGVhY2ggbGlzdGVkIGJsb2NrIGRldmljZVxuXG4tLXNldHJvCQlTZXQgcmVhZCBvbmx5XG4tLXNldHJ3CQlTZXQgcmVhZCB3cml0ZVxuLS1nZXRybwkJR2V0IHJlYWQgb25seVxuLS1nZXRzcwkJR2V0IHNlY3RvciBzaXplXG4tLWdldGJzeglHZXQgYmxvY2sgc2l6ZVxuLS1zZXRic3ogQllURVMJU2V0IGJsb2NrIHNpemVcbi0tZ2V0c3oJCUdldCBkZXZpY2Ugc2l6ZSBpbiA1MTItYnl0ZSBzZWN0b3JzXG4tLWdldHNpemUJR2V0IGRldmljZSBzaXplIGluIHNlY3RvcnMgKGRlcHJlY2F0ZWQpXG4tLWdldHNpemU2NAlHZXQgZGV2aWNlIHNpemUgaW4gYnl0ZXNcbi0tZ2V0cmEJCUdldCByZWFkYWhlYWQgaW4gNTEyLWJ5dGUgc2VjdG9yc1xuLS1zZXRyYSBTRUNUT1JTCVNldCByZWFkYWhlYWRcbi0tZmx1c2hidWZzCUZsdXNoIGJ1ZmZlcnNcbi0tcmVyZWFkcHQJUmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIKKworI2RlZmluZSBIRUxQX2ZzdHlwZSAidXNhZ2U6IGZzdHlwZSBERVYuLi5cblxuUHJpbnQgdHlwZSBvZiBmaWxlc3lzdGVtIG9uIGEgYmxvY2sgZGV2aWNlIG9yIGltYWdlLiIKKworI2RlZmluZSBIRUxQX2Jsa2lkICJ1c2FnZTogYmxraWQgWy1vIFRZUEVdIFstcyBUQUddIFstVUxdIERFVi4uLlxuXG5QcmludCB0eXBlLCBsYWJlbCBhbmQgVVVJRCBvZiBmaWxlc3lzdGVtIG9uIGEgYmxvY2sgZGV2aWNlIG9yIGltYWdlLlxuXG4tVQlTaG93IFVVSUQgb25seSAob3IgZGV2aWNlIHdpdGggdGhhdCBVVUlEKVxuLUwJU2hvdyBMQUJFTCBvbmx5IChvciBkZXZpY2Ugd2l0aCB0aGF0IExBQkVMKVxuLW8gVFlQRQlPdXRwdXQgZm9ybWF0IChmdWxsLCB2YWx1ZSwgZXhwb3J0KVxuLXMgVEFHCU9ubHkgc2hvdyBtYXRjaGluZyB0YWdzIChkZWZhdWx0IGFsbCkiCisKKyNkZWZpbmUgSEVMUF9ibGtkaXNjYXJkICJ1c2FnZTogYmxrZGlzY2FyZCBbLXN6Zl0gWy1vIE9GRlNFVF0gWy1sIExFTkdUSF0gREVWSUNFXG5cbkRpc2NhcmQgZGV2aWNlIHNlY3RvcnMgKHBlcm1hbmV0bHkgZGVsZXRpbmcgZGF0YSkuIEZyZWUgc3BhY2UgY2FuIGltcHJvdmVcbmZsYXNoIHBlcmZvcm1hbmNlIGFuZCBsaWZldGltZSBieSB3ZWFyIGxldmVsaW5nIGFuZCBjb2xsYXRpbmcgZGF0YS5cbihTb21lIGZpbGVzeXN0ZW0vZHJpdmVyIGNvbWJpbmF0aW9ucyBjYW4gZG8gdGhpcyBhdXRvbWF0aWNhbGx5LilcblxuLW8JU3RhcnQgYXQgT0ZGU0VUICgtLW9mZnNldCwgZGVmYXVsdCAwKVxuLWwJTEVOR1RIIHRvIGRpc2NhcmQgKC0tbGVuZ3RoLCBkZWZhdWx0IGFsbClcbi1zCU92ZXJ3cml0ZSBkaXNjYXJkZWQgZGF0YSAoLS1zZWN1cmUpXG4teglaZXJvLWZpbGwgcmF0aGVyIHRoYW4gZGlzY2FyZCAoLS16ZXJvb3V0KVxuLWYJRGlzYWJsZSBjaGVjayBmb3IgbW91bnRlZCBmaWxlc3lzdGVtICgtLWZvcmNlKVxuXG5PRkZTRVQgYW5kIExFTkdUSCBtdXN0IGJlIGFsaWduZWQgdG8gdGhlIGRldmljZSBzZWN0b3Igc2l6ZS4gRGVmYXVsdFxud2l0aG91dCAtby8tbCBkaXNjYXJkcyB0aGUgZW50aXJlIGRldmljZS4gKFlvdSBoYXZlIGJlZW4gd2FybmVkLikiCisKKyNkZWZpbmUgSEVMUF9iYXNlMzIgInVzYWdlOiBiYXNlMzIgWy1kaV0gWy13IENPTFVNTlNdIFtGSUxFLi4uXVxuXG5FbmNvZGUgb3IgZGVjb2RlIGluIGJhc2UzMi5cblxuLWQJRGVjb2RlXG4taQlJZ25vcmUgbm9uLWFscGhhYmV0aWMgY2hhcmFjdGVyc1xuLXcJV3JhcCBvdXRwdXQgYXQgQ09MVU1OUyAoZGVmYXVsdCA3NiBvciAwIGZvciBubyB3cmFwKSIKKworI2RlZmluZSBIRUxQX2Jhc2U2NCAidXNhZ2U6IGJhc2U2NCBbLWRpXSBbLXcgQ09MVU1OU10gW0ZJTEUuLi5dXG5cbkVuY29kZSBvciBkZWNvZGUgaW4gYmFzZTY0LlxuXG4tZAlEZWNvZGVcbi1pCUlnbm9yZSBub24tYWxwaGFiZXRpYyBjaGFyYWN0ZXJzXG4tdwlXcmFwIG91dHB1dCBhdCBDT0xVTU5TIChkZWZhdWx0IDc2IG9yIDAgZm9yIG5vIHdyYXApIgorCisjZGVmaW5lIEhFTFBfdW5pY29kZSAidXNhZ2U6IHVuaWNvZGUgQ09ERVstRU5EXS4uLlxuXG5Db252ZXJ0IGJldHdlZW4gVW5pY29kZSBjb2RlIHBvaW50cyBhbmQgVVRGLTgsIGluIGJvdGggZGlyZWN0aW9ucy5cbkNPREUgY2FuIGJlIG9uZSBvciBtb3JlIGNoYXJhY3RlcnMgKHNob3cgVStYWFhYKSwgaGV4IG51bWJlcnNcbihzaG93IGNoYXJhY3RlciksIG9yIGRhc2ggc2VwYXJhdGVkIHJhbmdlLiIKKworI2RlZmluZSBIRUxQX2FzY2lpICJ1c2FnZTogYXNjaWlcblxuRGlzcGxheSBhc2NpaSBjaGFyYWN0ZXIgc2V0LiIKKworI2RlZmluZSBIRUxQX2FjcGkgInVzYWdlOiBhY3BpIFstYWJjdFZdXG5cblNob3cgc3RhdHVzIG9mIHBvd2VyIHNvdXJjZXMgYW5kIHRoZXJtYWwgZGV2aWNlcy5cblxuLWEJU2hvdyBwb3dlciBhZGFwdGVyc1xuLWIJU2hvdyBiYXR0ZXJpZXNcbi1jCVNob3cgY29vbGluZyBkZXZpY2Ugc3RhdGVcbi10CVNob3cgdGVtcGVyYXR1cmVzXG4tVglTaG93IGV2ZXJ5dGhpbmciCisKKyNkZWZpbmUgSEVMUF94emNhdCAidXNhZ2U6IHh6Y2F0IFtGSUxFLi4uXVxuXG5EZWNvbXByZXNzIGxpc3RlZCBmaWxlcyB0byBzdGRvdXQuIFVzZSBzdGRpbiBpZiBubyBmaWxlcyBsaXN0ZWQuIgorCisjZGVmaW5lIEhFTFBfdmkgInVzYWdlOiB2aSBbLXMgU0NSSVBUXSBGSUxFXG5cblZpc3VhbCB0ZXh0IGVkaXRvci4gUHJlZGF0ZXMga2V5Ym9hcmRzIHdpdGggc3RhbmRhcmRpemVkIGN1cnNvciBrZXlzLlxuSWYgeW91IGRvbid0IGtub3cgaG93IHRvIHVzZSBpdCwgaGl0IHRoZSBFU0Mga2V5LCB0eXBlIDpxISBhbmQgcHJlc3MgRU5URVIuXG5cbi1zCXJ1biBTQ1JJUFQgb2YgY29tbWFuZHMgb24gRklMRVxuXG52aSBtb2RlIGNvbW1hbmRzOlxuXG4gIFtjb3VudF1bY21kXVttb3Rpb25dXG4gIGNtZDogYyBkIHlcbiAgbW90aW9uOiAwIGIgZSBHIEggaCBqIGsgTCBsIE0gdyAkIGYgRlxuXG4gIFtjb3VudF1bY21kXVxuICBjbWQ6IEQgSSBKIE8gbiBvIHAgeCBkZCB5eVxuXG4gIFtjbWRdXG4gIGNtZDogLyA/IDogQSBhIGkgQ1RSTF9EIENUUkxfQiBDVFJMX0UgQ1RSTF9GIENUUkxfWSBcXGUgXFxiXG5cbmV4IG1vZGUgY29tbWFuZHM6XG5cbiAgW2NtZF1cbiAgXFxiIFxcZSBcXG4gdyB3cSBxISAnc2V0IGxpc3QnICdzZXQgbm9saXN0JyBkICQgJSBnIHYiCisKKyNkZWZpbmUgSEVMUF91c2VyZGVsICJ1c2FnZTogdXNlcmRlbCBbLXJdIFVTRVJcbnVzYWdlOiBkZWx1c2VyIFstcl0gVVNFUlxuXG5EZWxldGUgVVNFUiBmcm9tIHRoZSBTWVNURU1cblxuLXIJcmVtb3ZlIGhvbWUgZGlyZWN0b3J5IgorCisjZGVmaW5lIEhFTFBfdXNlcmFkZCAidXNhZ2U6IHVzZXJhZGQgWy1TREhdIFstaCBESVJdIFstcyBTSEVMTF0gWy1HIEdSUF0gWy1nIE5BTUVdIFstdSBVSURdIFVTRVIgW0dST1VQXVxuXG5DcmVhdGUgbmV3IHVzZXIsIG9yIGFkZCBVU0VSIHRvIEdST1VQXG5cbi1EICAgICAgIERvbid0IGFzc2lnbiBhIHBhc3N3b3JkXG4tZyBOQU1FICBSZWFsIG5hbWVcbi1HIEdSUCAgIEFkZCB1c2VyIHRvIGV4aXN0aW5nIGdyb3VwXG4taCBESVIgICBIb21lIGRpcmVjdG9yeVxuLUggICAgICAgRG9uJ3QgY3JlYXRlIGhvbWUgZGlyZWN0b3J5XG4tcyBTSEVMTCBMb2dpbiBzaGVsbFxuLVMgICAgICAgQ3JlYXRlIGEgc3lzdGVtIHVzZXJcbi11IFVJRCAgIFVzZXIgaWQiCisKKyNkZWZpbmUgSEVMUF90cmFjZXJvdXRlICJ1c2FnZTogdHJhY2Vyb3V0ZSBbLTQ2RlVJbGRudnJdIFstZiAxU1RfVFRMXSBbLW0gTUFYVFRMXSBbLXAgUE9SVF0gWy1xIFBST0JFU11cblstcyBTUkNfSVBdIFstdCBUT1NdIFstdyBXQUlUX1NFQ10gWy1nIEdBVEVXQVldIFstaSBJRkFDRV0gWy16IFBBVVNFX01TRUNdIEhPU1QgW0JZVEVTXVxuXG50cmFjZXJvdXRlNiBbLWRucnZdIFstbSBNQVhUVExdIFstcCBQT1JUXSBbLXEgUFJPQkVTXVstcyBTUkNfSVBdIFstdCBUT1NdIFstdyBXQUlUX1NFQ11cbiAgWy1pIElGQUNFXSBIT1NUIFtCWVRFU11cblxuVHJhY2UgdGhlIHJvdXRlIHRvIEhPU1RcblxuLTQsLTYgRm9yY2UgSVAgb3IgSVB2NiBuYW1lIHJlc29sdXRpb25cbi1GICAgIFNldCB0aGUgZG9uJ3QgZnJhZ21lbnQgYml0IChzdXBwb3J0cyBJUFY0IG9ubHkpXG4tVSAgICBVc2UgVURQIGRhdGFncmFtcyBpbnN0ZWFkIG9mIElDTVAgRUNITyAoc3VwcG9ydHMgSVBWNCBvbmx5KVxuLUkgICAgVXNlIElDTVAgRUNITyBpbnN0ZWFkIG9mIFVEUCBkYXRhZ3JhbXMgKHN1cHBvcnRzIElQVjQgb25seSlcbi1sICAgIERpc3BsYXkgdGhlIFRUTCB2YWx1ZSBvZiB0aGUgcmV0dXJuZWQgcGFja2V0IChzdXBwb3J0cyBJUFY0IG9ubHkpXG4tZCAgICBTZXQgU09fREVCVUcgb3B0aW9ucyB0byBzb2NrZXRcbi1uICAgIFByaW50IG51bWVyaWMgYWRkcmVzc2VzXG4tdiAgICB2ZXJib3NlXG4tciAgICBCeXBhc3Mgcm91dGluZyB0YWJsZXMsIHNlbmQgZGlyZWN0bHkgdG8gSE9TVFxuLW0gICAgTWF4IHRpbWUtdG8tbGl2ZSAobWF4IG51bWJlciBvZiBob3BzKShSQU5HRSAxIHRvIDI1NSlcbi1wICAgIEJhc2UgVURQIHBvcnQgbnVtYmVyIHVzZWQgaW4gcHJvYmVzKGRlZmF1bHQgMzM0MzQpKFJBTkdFIDEgdG8gNjU1MzUpXG4tcSAgICBOdW1iZXIgb2YgcHJvYmVzIHBlciBUVEwgKGRlZmF1bHQgMykoUkFOR0UgMSB0byAyNTUpXG4tcyAgICBJUCBhZGRyZXNzIHRvIHVzZSBhcyB0aGUgc291cmNlIGFkZHJlc3Ncbi10ICAgIFR5cGUtb2Ytc2VydmljZSBpbiBwcm9iZSBwYWNrZXRzIChkZWZhdWx0IDApKFJBTkdFIDAgdG8gMjU1KVxuLXcgICAgVGltZSBpbiBzZWNvbmRzIHRvIHdhaXQgZm9yIGEgcmVzcG9uc2UgKGRlZmF1bHQgMykoUkFOR0UgMCB0byA4NjQwMClcbi1nICAgIExvb3NlIHNvdXJjZSByb3V0ZSBnYXRld2F5ICg4IG1heCkgKHN1cHBvcnRzIElQVjQgb25seSlcbi16ICAgIFBhdXNlIFRpbWUgaW4gbXMgKGRlZmF1bHQgMCkoUkFOR0UgMCB0byA4NjQwMCkgKHN1cHBvcnRzIElQVjQgb25seSlcbi1mICAgIFN0YXJ0IGZyb20gdGhlIDFTVF9UVEwgaG9wIChpbnN0ZWFkIGZyb20gMSkoUkFOR0UgMSB0byAyNTUpIChzdXBwb3J0cyBJUFY0IG9ubHkpXG4taSAgICBTcGVjaWZ5IGEgbmV0d29yayBpbnRlcmZhY2UgdG8gb3BlcmF0ZSB3aXRoIgorCisjZGVmaW5lIEhFTFBfdHIgInVzYWdlOiB0ciBbLWNkc3RdIFNFVDEgW1NFVDJdXG5cblRyYW5zbGF0ZSwgc3F1ZWV6ZSwgb3IgZGVsZXRlIGNoYXJhY3RlcnMgZnJvbSBzdGRpbiwgd3JpdGluZyB0byBzdGRvdXRcblxuLWMvLUMgIFRha2UgY29tcGxlbWVudCBvZiBTRVQxXG4tZCAgICAgRGVsZXRlIGlucHV0IGNoYXJhY3RlcnMgY29kZWQgU0VUMVxuLXMgICAgIFNxdWVlemUgbXVsdGlwbGUgb3V0cHV0IGNoYXJhY3RlcnMgb2YgU0VUMiBpbnRvIG9uZSBjaGFyYWN0ZXJcbi10ICAgICBUcnVuY2F0ZSBTRVQxIHRvIGxlbmd0aCBvZiBTRVQyIgorCisjZGVmaW5lIEhFTFBfdGZ0cGQgInVzYWdlOiB0ZnRwZCBbLWNyXSBbLXUgVVNFUl0gW0RJUl1cblxuVHJhbnNmZXIgZmlsZSBmcm9tL3RvIHRmdHAgc2VydmVyLlxuXG4tcglyZWFkIG9ubHlcbi1jCUFsbG93IGZpbGUgY3JlYXRpb24gdmlhIHVwbG9hZFxuLXUJcnVuIGFzIFVTRVJcbi1sCUxvZyB0byBzeXNsb2cgKGluZXRkIG1vZGUgcmVxdWlyZXMgdGhpcykiCisKKyNkZWZpbmUgSEVMUF90ZnRwICJ1c2FnZTogdGZ0cCBbT1BUSU9OU10gSE9TVCBbUE9SVF1cblxuVHJhbnNmZXIgZmlsZSBmcm9tL3RvIHRmdHAgc2VydmVyLlxuXG4tbCBGSUxFIExvY2FsIEZJTEVcbi1yIEZJTEUgUmVtb3RlIEZJTEVcbi1nICAgIEdldCBmaWxlXG4tcCAgICBQdXQgZmlsZVxuLWIgU0laRSBUcmFuc2ZlciBibG9ja3Mgb2YgU0laRSBvY3RldHMoOCA8PSBTSVpFIDw9IDY1NDY0KSIKKworI2RlZmluZSBIRUxQX3RlbG5ldGQgIkhhbmRsZSBpbmNvbWluZyB0ZWxuZXQgY29ubmVjdGlvbnNcblxuLWwgTE9HSU4gIEV4ZWMgTE9HSU4gb24gY29ubmVjdFxuLWYgSVNTVUVfRklMRSBEaXNwbGF5IElTU1VFX0ZJTEUgaW5zdGVhZCBvZiAvZXRjL2lzc3VlXG4tSyBDbG9zZSBjb25uZWN0aW9uIGFzIHNvb24gYXMgbG9naW4gZXhpdHNcbi1wIFBPUlQgICBQb3J0IHRvIGxpc3RlbiBvblxuLWIgQUREUls6UE9SVF0gIEFkZHJlc3MgdG8gYmluZCB0b1xuLUYgUnVuIGluIGZvcmVncm91bmRcbi1pIEluZXRkIG1vZGVcbi13IFNFQyAgICBJbmV0ZCAnd2FpdCcgbW9kZSwgbGluZ2VyIHRpbWUgU0VDXG4tUyBMb2cgdG8gc3lzbG9nIChpbXBsaWVkIGJ5IC1pIG9yIHdpdGhvdXQgLUYgYW5kIC13KSIKKworI2RlZmluZSBIRUxQX3RlbG5ldCAidXNhZ2U6IHRlbG5ldCBIT1NUIFtQT1JUXVxuXG5Db25uZWN0IHRvIHRlbG5ldCBzZXJ2ZXIuIgorCisjZGVmaW5lIEhFTFBfdGNwc3ZkICJ1c2FnZTogdGNwc3ZkIFstaEV2XSBbLWMgTl0gWy1DIE5bOk1TR11dIFstYiBOXSBbLXUgVXNlcl0gWy1sIE5hbWVdIElQIFBvcnQgUHJvZ1xudXNhZ2U6IHVkcHN2ZCBbLWhFdl0gWy1jIE5dIFstdSBVc2VyXSBbLWwgTmFtZV0gSVAgUG9ydCBQcm9nXG5cbkNyZWF0ZSBUQ1AvVURQIHNvY2tldCwgYmluZCB0byBJUDpQT1JUIGFuZCBsaXN0ZW4gZm9yIGluY29taW5nIGNvbm5lY3Rpb24uXG5SdW4gUFJPRyBmb3IgZWFjaCBjb25uZWN0aW9uLlxuXG5JUCAgICAgICAgICAgIElQIHRvIGxpc3RlbiBvbiwgMCA9IGFsbFxuUE9SVCAgICAgICAgICBQb3J0IHRvIGxpc3RlbiBvblxuUFJPRyBBUkdTICAgICBQcm9ncmFtIHRvIHJ1blxuLWwgTkFNRSAgICAgICBMb2NhbCBob3N0bmFtZSAoZWxzZSBsb29rcyB1cCBsb2NhbCBob3N0bmFtZSBpbiBETlMpXG4tdSBVU0VSWzpHUlBdIENoYW5nZSB0byB1c2VyL2dyb3VwIGFmdGVyIGJpbmRcbi1jIE4gICAgICAgICAgSGFuZGxlIHVwIHRvIE4gKD4gMCkgY29ubmVjdGlvbnMgc2ltdWx0YW5lb3VzbHlcbi1iIE4gICAgICAgICAgKFRDUCBPbmx5KSBBbGxvdyBhIGJhY2tsb2cgb2YgYXBwcm94aW1hdGVseSBOIFRDUCBTWU5zXG4tQyBOWzpNU0ddICAgIChUQ1AgT25seSkgQWxsb3cgb25seSB1cCB0byBOICg+IDApIGNvbm5lY3Rpb25zIGZyb20gdGhlIHNhbWUgSVBcbiAgICAgICAgICAgICAgTmV3IGNvbm5lY3Rpb25zIGZyb20gdGhpcyBJUCBhZGRyZXNzIGFyZSBjbG9zZWRcbiAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIE1TRyBpcyB3cml0dGVuIHRvIHRoZSBwZWVyIGJlZm9yZSBjbG9zZVxuLWggICAgICAgICAgICBMb29rIHVwIHBlZXIncyBob3N0bmFtZVxuLUUgICAgICAgICAgICBEb24ndCBzZXQgdXAgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4tdiAgICAgICAgICAgIFZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9zeXNsb2dkICJ1c2FnZTogc3lzbG9nZCAgWy1hIHNvY2tldF0gWy1PIGxvZ2ZpbGVdIFstZiBjb25maWcgZmlsZV0gWy1tIGludGVydmFsXVxuICAgICAgICAgICAgICAgIFstcCBzb2NrZXRdIFstcyBTSVpFXSBbLWIgTl0gWy1SIEhPU1RdIFstbCBOXSBbLW5TTEtEXVxuXG5TeXN0ZW0gbG9nZ2luZyB1dGlsaXR5XG5cbi1hICAgICAgRXh0cmEgdW5peCBzb2NrZXQgZm9yIGxpc3RlblxuLU8gRklMRSBEZWZhdWx0IGxvZyBmaWxlIDxERUZBVUxUOiAvdmFyL2xvZy9tZXNzYWdlcz5cbi1mIEZJTEUgQ29uZmlnIGZpbGUgPERFRkFVTFQ6IC9ldGMvc3lzbG9nLmNvbmY+XG4tcCAgICAgIEFsdGVybmF0aXZlIHVuaXggZG9tYWluIHNvY2tldCA8REVGQVVMVCA6IC9kZXYvbG9nPlxuLW4gICAgICBBdm9pZCBhdXRvLWJhY2tncm91bmRpbmdcbi1TICAgICAgU21hbGxlciBvdXRwdXRcbi1tIE1BUksgaW50ZXJ2YWwgPERFRkFVTFQ6IDIwIG1pbnV0ZXM+IChSQU5HRTogMCB0byA3MTU4Mjc4Nylcbi1SIEhPU1QgTG9nIHRvIElQIG9yIGhvc3RuYW1lIG9uIFBPUlQgKGRlZmF1bHQgUE9SVD01MTQvVURQKVwiXG4tTCAgICAgIExvZyBsb2NhbGx5IGFuZCB2aWEgbmV0d29yayAoZGVmYXVsdCBpcyBuZXR3b3JrIG9ubHkgaWYgLVIpXCJcbi1zIFNJWkUgTWF4IHNpemUgKEtCKSBiZWZvcmUgcm90YXRpb24gKGRlZmF1bHQ6MjAwS0IsIDA9b2ZmKVxuLWIgTiAgICByb3RhdGVkIGxvZ3MgdG8ga2VlcCAoZGVmYXVsdDoxLCBtYXg9OTksIDA9cHVyZ2UpXG4tSyAgICAgIExvZyB0byBrZXJuZWwgcHJpbnRrIGJ1ZmZlciAodXNlIGRtZXNnIHRvIHJlYWQgaXQpXG4tbCBOICAgIExvZyBvbmx5IG1lc3NhZ2VzIG1vcmUgdXJnZW50IHRoYW4gcHJpbyhkZWZhdWx0OjggbWF4OjggbWluOjEpXG4tRCAgICAgIERyb3AgZHVwbGljYXRlcyIKKworI2RlZmluZSBIRUxQX3N1bG9naW4gInVzYWdlOiBzdWxvZ2luIFstdCB0aW1lXSBbdHR5XVxuXG5TaW5nbGUgVXNlciBMb2dpbi5cbi10CURlZmF1bHQgVGltZSBmb3IgU2luZ2xlIFVzZXIgTG9naW4iCisKKyNkZWZpbmUgSEVMUF9zdHR5ICJ1c2FnZTogc3R0eSBbLWFnXSBbLUYgZGV2aWNlXSBTRVRUSU5HLi4uXG5cbkdldC9zZXQgdGVybWluYWwgY29uZmlndXJhdGlvbi5cblxuLUYJT3BlbiBkZXZpY2UgaW5zdGVhZCBvZiBzdGRpblxuLWEJU2hvdyBhbGwgY3VycmVudCBzZXR0aW5ncyAoZGVmYXVsdCBkaWZmZXJlbmNlcyBmcm9tIFwic2FuZVwiKVxuLWcJU2hvdyBhbGwgY3VycmVudCBzZXR0aW5ncyB1c2FibGUgYXMgaW5wdXQgdG8gc3R0eVxuXG5TcGVjaWFsIGNoYXJhY3RlcnMgKHN5bnRheCBeYyBvciB1bmRlZik6IGludHIgcXVpdCBlcmFzZSBraWxsIGVvZiBlb2wgZW9sMlxuc3d0Y2ggc3RhcnQgc3RvcCBzdXNwIHJwcm50IHdlcmFzZSBsbmV4dCBkaXNjYXJkXG5cbkNvbnRyb2wvaW5wdXQvb3V0cHV0L2xvY2FsIHNldHRpbmdzIGFzIHNob3duIGJ5IC1hLCAnLScgcHJlZml4IHRvIGRpc2FibGVcblxuQ29tYm8gc2V0dGluZ3M6IGNvb2tlZC9yYXcsIGV2ZW5wL29kZHAvcGFyaXR5LCBubCwgZWssIHNhbmVcblxuTglzZXQgaW5wdXQgYW5kIG91dHB1dCBzcGVlZCAoaXNwZWVkIE4gb3Igb3NwZWVkIE4gZm9yIGp1c3Qgb25lKVxuY29scyBOCXNldCBudW1iZXIgb2YgY29sdW1uc1xucm93cyBOCXNldCBudW1iZXIgb2Ygcm93c1xubGluZSBOCXNldCBsaW5lIGRpc2NpcGxpbmVcbm1pbiBOCXNldCBtaW5pbXVtIGNoYXJzIHBlciByZWFkXG50aW1lIE4Jc2V0IHJlYWQgdGltZW91dFxuc3BlZWQJc2hvdyBzcGVlZCBvbmx5XG5zaXplCXNob3cgc2l6ZSBvbmx5IgorCisjZGVmaW5lIEhFTFBfc3RyYWNlICJ1c2FnZTogc3RyYWNlIFstZnZdIFstcCBQSURdIFstcyBOVU1dIENPTU1BTkQgW0FSR1MuLi5dXG5cblRyYWNlIHN5c3RlbXMgY2FsbHMgbWFkZSBieSBhIHByb2Nlc3MuXG5cbi1zCVN0cmluZyBsZW5ndGggbGltaXQuXG4tdglEdW1wIGFsbCBvZiBsYXJnZSBzdHJ1Y3RzL2FycmF5cy4iCisKKyNkZWZpbmUgSEVMUF93YWl0ICJ1c2FnZTogd2FpdCBbLW5dIFtJRC4uLl1cblxuV2FpdCBmb3IgYmFja2dyb3VuZCBwcm9jZXNzZXMgdG8gZXhpdCwgcmV0dXJuaW5nIGl0cyBleGl0IGNvZGUuXG5JRCBjYW4gYmUgUElEIG9yIGpvYiwgd2l0aCBubyBJRHMgd2FpdHMgZm9yIGFsbCBiYWNrZ3JvdW5kZWQgcHJvY2Vzc2VzLlxuXG4tbglXYWl0IGZvciBuZXh0IHByb2Nlc3MgdG8gZXhpdCIKKworI2RlZmluZSBIRUxQX3NvdXJjZSAidXNhZ2U6IHNvdXJjZSBGSUxFIFtBUkdTLi4uXVxuXG5SZWFkIEZJTEUgYW5kIGV4ZWN1dGUgY29tbWFuZHMuIEFueSBBUkdTIGJlY29tZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMuIgorCisjZGVmaW5lIEhFTFBfc2hpZnQgInVzYWdlOiBzaGlmdCBbTl1cblxuU2tpcCBOIChkZWZhdWx0IDEpIHBvc2l0aW9uYWwgcGFyYW1ldGVycywgbW92aW5nICQxIGFuZCBmcmllbmRzIGFsb25nIHRoZSBsaXN0LlxuRG9lcyBub3QgYWZmZWN0ICQwLiIKKworI2RlZmluZSBIRUxQX2xvY2FsICJ1c2FnZTogbG9jYWwgW05BTUVbPVZBTFVFXS4uLl1cblxuQ3JlYXRlIGEgbG9jYWwgdmFyaWFibGUgdGhhdCBsYXN0cyB1bnRpbCByZXR1cm4gZnJvbSB0aGlzIGZ1bmN0aW9uLlxuV2l0aCBubyBhcmd1bWVudHMgbGlzdHMgbG9jYWwgdmFyaWFibGVzIGluIGN1cnJlbnQgZnVuY3Rpb24gY29udGV4dC5cblRPRE86IGltcGxlbWVudCBcImRlY2xhcmVcIiBvcHRpb25zLiIKKworI2RlZmluZSBIRUxQX2pvYnMgInVzYWdlOiBqb2JzIFstbG5wcnNdIFslSk9CIHwgLXggQ09NTUFORC4uLl1cblxuTGlzdCBydW5uaW5nL3N0b3BwZWQgYmFja2dyb3VuZCBqb2JzLlxuXG4tbCBJbmNsdWRlIHByb2Nlc3MgSUQgaW4gbGlzdFxuLW4gU2hvdyBvbmx5IG5ldy9jaGFuZ2VkIHByb2Nlc3Nlc1xuLXAgU2hvdyBwcm9jZXNzIElEcyBvbmx5XG4tciBTaG93IHJ1bm5pbmcgcHJvY2Vzc2VzXG4tcyBTaG93IHN0b3BwZWQgcHJvY2Vzc2VzIgorCisjZGVmaW5lIEhFTFBfZXhwb3J0ICJ1c2FnZTogZXhwb3J0IFstbl0gW05BTUVbPVZBTFVFXS4uLl1cblxuTWFrZSB2YXJpYWJsZXMgYXZhaWxhYmxlIHRvIGNoaWxkIHByb2Nlc3Nlcy4gTkFNRSBleHBvcnRzIGV4aXN0aW5nIGxvY2FsXG52YXJpYWJsZShzKSwgTkFNRT1WQUxVRSBzZXRzIGFuZCBleHBvcnRzLlxuXG4tbglVbmV4cG9ydC4gVHVybiBsaXN0ZWQgdmFyaWFibGUocykgaW50byBsb2NhbCB2YXJpYWJsZXMuXG5cbldpdGggbm8gYXJndW1lbnRzIGxpc3QgZXhwb3J0ZWQgdmFyaWFibGVzL2F0dHJpYnV0ZXMgYXMgXCJkZWNsYXJlXCIgc3RhdGVtZW50cy4iCisKKyNkZWZpbmUgSEVMUF9leGVjICJ1c2FnZTogZXhlYyBbLWNsXSBbLWEgTkFNRV0gQ09NTUFORC4uLlxuXG4tYQlzZXQgYXJndlswXSB0byBOQU1FXG4tYwljbGVhciBlbnZpcm9ubWVudFxuLWwJcHJlcGVuZCAtIHRvIGFyZ3ZbMF0iCisKKyNkZWZpbmUgSEVMUF9ldmFsICJ1c2FnZTogZXZhbCBDT01NQU5ELi4uXG5cbkV4ZWN1dGUgKGNvbWJpbmVkKSBhcmd1bWVudHMgYXMgYSBzaGVsbCBjb21tYW5kLiIKKworI2RlZmluZSBIRUxQX3Vuc2V0ICJ1c2FnZTogdW5zZXQgWy1mdm5dIE5BTUUuLi5cblxuLWYJTkFNRSBpcyBhIGZ1bmN0aW9uXG4tdglOQU1FIGlzIGEgdmFyaWFibGVcbi1uCWRlcmVmZXJlbmNlIE5BTUUgYW5kIHVuc2V0IHRoYXQiCisKKyNkZWZpbmUgSEVMUF9zZXQgInVzYWdlOiBzZXQgWythXSBbK28gT1BUSU9OXSBbVkFSLi4uXVxuXG5TZXQgdmFyaWFibGVzIGFuZCBzaGVsbCBhdHRyaWJ1dGVzLiBVc2UgKyB0byBkaXNhYmxlIGFuZCAtIHRvIGVuYWJsZS5cbk5BTUU9VkFMVUUgYXJndW1lbnRzIGFzc2lnbiB0byB0aGUgdmFyaWFibGUsIGFueSBsZWZ0b3ZlcnMgc2V0ICQxLCAkMi4uLlxuV2l0aCBubyBhcmd1bWVudHMsIHByaW50cyBjdXJyZW50IHZhcmlhYmxlcy5cblxuLWYJTkFNRSBpcyBhIGZ1bmN0aW9uXG4tdglOQU1FIGlzIGEgdmFyaWFibGVcbi1uCWRvbid0IGZvbGxvdyBuYW1lIHJlZmVyZW5jZVxuXG5PUFRJT05zOlxuICBoaXN0b3J5IC0gZW5hYmxlIGNvbW1hbmQgaGlzdG9yeSIKKworI2RlZmluZSBIRUxQX2V4aXQgInVzYWdlOiBleGl0IFtzdGF0dXNdXG5cbkV4aXQgc2hlbGwuICBJZiBubyByZXR1cm4gdmFsdWUgc3VwcGxpZWQgb24gY29tbWFuZCBsaW5lLCB1c2UgdmFsdWVcbm9mIG1vc3QgcmVjZW50IGNvbW1hbmQsIG9yIDAgaWYgbm9uZS4iCisKKyNkZWZpbmUgSEVMUF9kZWNsYXJlICJ1c2FnZTogZGVjbGFyZSBbLXBBYWlsdW54cl0gW05BTUUuLi5dXG5cblNldCBvciBwcmludCB2YXJpYWJsZSBhdHRyaWJ1dGVzIGFuZCB2YWx1ZXMuXG5cbi1wCVByaW50IHZhcmlhYmxlcyBpbnN0ZWFkIG9mIHNldHRpbmdcbi1BCUFzc29jaWF0aXZlIGFycmF5XG4tYQlJbmRleGVkIGFycmF5XG4taQlJbnRlZ2VyXG4tbAlMb3dlciBjYXNlXG4tbglOYW1lIHJlZmVyZW5jZSAoc3ltbGluaylcbi1yCVJlYWRvbmx5XG4tdQlVcHBlcmNhc2Vcbi14CUV4cG9ydCIKKworI2RlZmluZSBIRUxQX2NkICJ1c2FnZTogY2QgWy1QTF0gWy1dIFtwYXRoXVxuXG5DaGFuZ2UgY3VycmVudCBkaXJlY3RvcnkuIFdpdGggbm8gYXJndW1lbnRzLCBnbyAkSE9NRS4gU2V0cyAkT0xEUFdEIHRvXG5wcmV2aW91cyBkaXJlY3Rvcnk6IGNkIC0gdG8gcmV0dXJuIHRvICRPTERQV0QuXG5cbi1QCVBoeXNpY2FsIHBhdGg6IHJlc29sdmUgc3ltbGlua3MgaW4gcGF0aFxuLUwJTG9jYWwgcGF0aDogLi4gdHJpbXMgZGlyZWN0b3JpZXMgb2ZmICRQV0QgKGRlZmF1bHQpIgorCisjZGVmaW5lIEhFTFBfc2ggInVzYWdlOiBzaCBbLWMgY29tbWFuZF0gW3NjcmlwdF1cblxuQ29tbWFuZCBzaGVsbC4gIFJ1bnMgYSBzaGVsbCBzY3JpcHQsIG9yIHJlYWRzIGlucHV0IGludGVyYWN0aXZlbHlcbmFuZCByZXNwb25kcyB0byBpdC4gUm91Z2hseSBjb21wYXRpYmxlIHdpdGggXCJiYXNoXCIuIFJ1biBcImhlbHBcIiBmb3Jcbmxpc3Qgb2YgYnVpbHQtaW4gY29tbWFuZHMuXG5cbi1jCWNvbW1hbmQgbGluZSB0byBleGVjdXRlXG4taQlpbnRlcmFjdGl2ZSBtb2RlIChkZWZhdWx0IHdoZW4gU1RESU4gaXMgYSB0dHkpXG4tcwlkb24ndCBydW4gc2NyaXB0IChhcmdzIHNldCAkKiBwYXJhbWV0ZXJzIGJ1dCByZWFkIGNvbW1hbmRzIGZyb20gc3RkaW4pXG5cbkNvbW1hbmQgc2hlbGxzIHBhcnNlIGVhY2ggbGluZSBvZiBpbnB1dCAocHJvbXB0aW5nIHdoZW4gaW50ZXJhY3RpdmUpLCBwZXJmb3JtXG52YXJpYWJsZSBleHBhbnNpb24gYW5kIHJlZGlyZWN0aW9uLCBleGVjdXRlIGNvbW1hbmRzIChzcGF3bmluZyBjaGlsZCBwcm9jZXNzZXNcbmFuZCBiYWNrZ3JvdW5kIGpvYnMpLCBhbmQgcGVyZm9ybSBmbG93IGNvbnRyb2wgYmFzZWQgb24gdGhlIHJldHVybiBjb2RlLlxuXG5QYXJzaW5nOlxuICBzeW50YXggZXJyb3JzXG5cbkludGVyYWN0aXZlIHByb21wdHM6XG4gIGxpbmUgY29udGludWF0aW9uXG5cblZhcmlhYmxlIGV4cGFuc2lvbjpcbiAgTm90ZTogY2FuIGNhdXNlIHN5bnRheCBlcnJvcnMgYXQgcnVudGltZVxuXG5SZWRpcmVjdGlvbjpcbiAgSEVSRSBkb2N1bWVudHMgKHBhcnNpbmcpXG4gIFBpcGVsaW5lcyAoZmxvdyBjb250cm9sIGFuZCBqb2IgY29udHJvbClcblxuUnVubmluZyBjb21tYW5kczpcbiAgcHJvY2VzcyBzdGF0ZVxuICBidWlsdGluc1xuICAgIGNkIFtbIF1dICgoICkpXG4gICAgISA6IFsgIyBUT0RPOiBoZWxwIGZvciB0aGVzZT9cbiAgICB0cnVlIGZhbHNlIGhlbHAgZWNobyBraWxsIHByaW50ZiBwd2QgdGVzdFxuICBjaGlsZCBwcm9jZXNzZXNcblxuSm9iIGNvbnRyb2w6XG4gICYgICAgQmFja2dyb3VuZCBwcm9jZXNzXG4gIEN0cmwtQyBraWxsIHByb2Nlc3NcbiAgQ3RybC1aIHN1c3BlbmQgcHJvY2Vzc1xuICBiZyBmZyBqb2JzIGtpbGxcblxuRmxvdyBjb250cm9sOlxuOyAgICBFbmQgc3RhdGVtZW50IChzYW1lIGFzIG5ld2xpbmUpXG4mICAgIEJhY2tncm91bmQgcHJvY2VzcyAocmV0dXJucyB0cnVlIHVubGVzcyBzeW50YXggZXJyb3IpXG4mJiAgIElmIHRoaXMgZmFpbHMsIG5leHQgY29tbWFuZCBmYWlscyB3aXRob3V0IHJ1bm5pbmdcbnx8ICAgSWYgdGhpcyBzdWNjZWVkcywgbmV4dCBjb21tYW5kIHN1Y2NlZWRzIHdpdGhvdXQgcnVubmluZ1xufCAgICBQaXBlbGluZXMhIChDYW4gb2Ygd29ybXMuLi4pXG5mb3Ige25hbWUgW2luLi4uXX18KCg7OykpIGRvOyBCT0RZOyBkb25lXG5pZiBURVNUOyB0aGVuIEJPRFk7IGZpXG53aGlsZSBURVNUOyBkbyBCT0RZOyBkb25lXG5jYXNlIGEgaW4gWCk7OyBlc2FjXG5bWyBURVNUIF1dXG4oKE1BVEgpKVxuXG5Kb2IgY29udHJvbDpcbiYgICAgQmFja2dyb3VuZCBwcm9jZXNzXG5DdHJsLUMga2lsbCBwcm9jZXNzXG5DdHJsLVogc3VzcGVuZCBwcm9jZXNzXG5iZyBmZyBqb2JzIGtpbGwiCisKKyNkZWZpbmUgSEVMUF9yb3V0ZSAidXNhZ2U6IHJvdXRlIFstbmVdIFstQSBbaW5ldHxpbmV0Nl1dIFthZGR8ZGVsIFRBUkdFVCBbT1BUSU9OU11dXG5cbkRpc3BsYXksIGFkZCBvciBkZWxldGUgbmV0d29yayByb3V0ZXMgaW4gdGhlIFwiRm9yd2FyZGluZyBJbmZvcm1hdGlvbiBCYXNlXCIsXG53aGljaCBzZW5kIHBhY2tldHMgb3V0IGEgbmV0d29yayBpbnRlcmZhY2UgdG8gYW4gYWRkcmVzcy5cblxuLW4JU2hvdyBudW1lcmljYWwgYWRkcmVzc2VzIChubyBETlMgbG9va3Vwcylcbi1lCWRpc3BsYXkgbmV0c3RhdCBmaWVsZHNcblxuQXNzaWduaW5nIGFuIGFkZHJlc3MgdG8gYW4gaW50ZXJmYWNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBhbiBhcHByb3ByaWF0ZVxubmV0d29yayByb3V0ZSAoXCJpZmNvbmZpZyBldGgwIDEwLjAuMi4xNS84XCIgZG9lcyBcInJvdXRlIGFkZCAxMC4wLjAuMC84IGV0aDBcIlxuZm9yIHlvdSksIGFsdGhvdWdoIHNvbWUgZGV2aWNlcyAoc3VjaCBhcyBsb29wYmFjaykgd29uJ3Qgc2hvdyBpdCBpbiB0aGVcbnRhYmxlLiBGb3IgbWFjaGluZXMgbW9yZSB0aGFuIG9uZSBob3AgYXdheSwgeW91IG5lZWQgdG8gc3BlY2lmeSBhIGdhdGV3YXlcbihhbGEgXCJyb3V0ZSBhZGQgZGVmYXVsdCBndyAxMC4wLjIuMlwiKS5cblxuVGhlIGFkZHJlc3MgXCJkZWZhdWx0XCIgaXMgYSB3aWxkY2FyZCBhZGRyZXNzICgwLjAuMC4wLzApIG1hdGNoaW5nIGFsbFxucGFja2V0cyB3aXRob3V0IGEgbW9yZSBzcGVjaWZpYyByb3V0ZS5cblxuQXZhaWxhYmxlIE9QVElPTlMgaW5jbHVkZTpcbnJlamVjdCAgIC0gYmxvY2tpbmcgcm91dGUgKGZvcmNlIG1hdGNoIGZhaWx1cmUpXG5kZXYgTkFNRSAtIGZvcmNlIG1hdGNoaW5nIHBhY2tldHMgb3V0IHRoaXMgaW50ZXJmYWNlIChhbGEgXCJldGgwXCIpXG5uZXRtYXNrICAtIG9sZCB3YXkgb2Ygc2F5aW5nIHRoaW5ncyBsaWtlIEFERFIvMjRcbmd3IEFERFIgIC0gZm9yd2FyZCBwYWNrZXRzIHRvIGdhdGV3YXkgQUREUiIKKworI2RlZmluZSBIRUxQX21vcmUgInVzYWdlOiBtb3JlIFtGSUxFLi4uXVxuXG5WaWV3IEZJTEUocykgKG9yIHN0ZGluKSBvbmUgc2NyZWVuZnVsbCBhdCBhIHRpbWUuIgorCisjZGVmaW5lIEhFTFBfbW9kcHJvYmUgInVzYWdlOiBtb2Rwcm9iZSBbLWFscnF2c0RiXSBbLWQgRElSXSBNT0RVTEUgW3N5bWJvbD12YWx1ZV1bLi4uXVxuXG5tb2Rwcm9iZSB1dGlsaXR5IC0gaW5zZXJ0cyBtb2R1bGVzIGFuZCBkZXBlbmRlbmNpZXMuXG5cbi1hICBMb2FkIG11bHRpcGxlIE1PRFVMRXNcbi1iICBBcHBseSBibGFja2xpc3QgdG8gbW9kdWxlIG5hbWVzIHRvb1xuLUQgIFNob3cgZGVwZW5kZW5jaWVzXG4tZCAgTG9hZCBtb2R1bGVzIGZyb20gRElSLCBvcHRpb24gbWF5IGJlIHVzZWQgbXVsdGlwbGUgdGltZXNcbi1sICBMaXN0IChNT0RVTEUgaXMgYSBwYXR0ZXJuKVxuLXEgIFF1aWV0XG4tciAgUmVtb3ZlIE1PRFVMRSAoc3RhY2tzKSBvciBkbyBhdXRvY2xlYW5cbi1zICBMb2cgdG8gc3lzbG9nXG4tdiAgVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX21rZTJmc19leHRlbmRlZCAidXNhZ2U6IG1rZTJmcyBbLUUgc3RyaWRlPSMjI10gWy1PIG9wdGlvblssb3B0aW9uXV1cblxuLUUgc3RyaWRlPSBTZXQgUkFJRCBzdHJpcGUgc2l6ZSAoaW4gYmxvY2tzKVxuLU8gW29wdHNdICBTcGVjaWZ5IGZld2VyIGV4dDIgb3B0aW9uIGZsYWdzIChmb3Igb2xkIGtlcm5lbHMpXG4gICAgICAgICAgIEFsbCBvZiB0aGVzZSBhcmUgb24gYnkgZGVmYXVsdCAoYXMgYXBwcm9wcmlhdGUpXG4gICBub25lICAgICAgICAgQ2xlYXIgZGVmYXVsdCBvcHRpb25zIChhbGwgYnV0IGpvdXJuYWxpbmcpXG4gICBkaXJfaW5kZXggICAgVXNlIGh0cmVlIGluZGV4ZXMgZm9yIGxhcmdlIGRpcmVjdG9yaWVzXG4gICBmaWxldHlwZSAgICAgU3RvcmUgZmlsZSB0eXBlIGluZm8gaW4gZGlyZWN0b3J5IGVudHJ5XG4gICBoYXNfam91cm5hbCAgU2V0IGJ5IC1qXG4gICBqb3VybmFsX2RldiAgU2V0IGJ5IC1KIGRldmljZT1YWFhcbiAgIHNwYXJzZV9zdXBlciBEb24ndCBhbGxvY2F0ZSBodWdlIG51bWJlcnMgb2YgcmVkdW5kYW50IHN1cGVyYmxvY2tzIgorCisjZGVmaW5lIEhFTFBfbWtlMmZzX2xhYmVsICJ1c2FnZTogbWtlMmZzIFstTCBsYWJlbF0gWy1NIHBhdGhdIFstbyBzdHJpbmddXG5cbi1MICAgICAgICAgVm9sdW1lIGxhYmVsXG4tTSAgICAgICAgIFBhdGggdG8gbW91bnQgcG9pbnRcbi1vICAgICAgICAgQ3JlYXRlZCBieSIKKworI2RlZmluZSBIRUxQX21rZTJmc19nZW4gInVzYWdlOiBnZW5lMmZzIFtvcHRpb25zXSBkZXZpY2UgZmlsZW5hbWVcblxuVGhlIFtvcHRpb25zXSBhcmUgdGhlIHNhbWUgYXMgbWtlMmZzLiIKKworI2RlZmluZSBIRUxQX21rZTJmc19qb3VybmFsICJ1c2FnZTogbWtlMmZzIFstal0gWy1KIHNpemU9IyMjLGRldmljZT1YWFhdXG5cbi1qICAgICAgICAgQ3JlYXRlIGpvdXJuYWwgKGV4dDMpXG4tSiAgICAgICAgIEpvdXJuYWwgb3B0aW9uc1xuICAgICAgICAgICBzaXplOiBOdW1iZXIgb2YgYmxvY2tzICgxMDI0LTEwMjQwMClcbiAgICAgICAgICAgZGV2aWNlOiBTcGVjaWZ5IGFuIGV4dGVybmFsIGpvdXJuYWwiCisKKyNkZWZpbmUgSEVMUF9ta2UyZnMgInVzYWdlOiBta2UyZnMgWy1GbnFdIFstYiAjIyNdIFstTnxpICMjI10gWy1tICMjI10gZGV2aWNlXG5cbkNyZWF0ZSBhbiBleHQyIGZpbGVzeXN0ZW0gb24gYSBibG9jayBkZXZpY2Ugb3IgZmlsZXN5c3RlbSBpbWFnZS5cblxuLUYgICAgICAgICBGb3JjZSB0byBydW4gb24gYSBtb3VudGVkIGRldmljZVxuLW4gICAgICAgICBEb24ndCB3cml0ZSB0byBkZXZpY2Vcbi1xICAgICAgICAgUXVpZXQgKG5vIG91dHB1dClcbi1iIHNpemUgICAgQmxvY2sgc2l6ZSAoMTAyNCwgMjA0OCwgb3IgNDA5Nilcbi1OIGlub2RlcyAgQWxsb2NhdGUgdGhpcyBtYW55IGlub2Rlc1xuLWkgYnl0ZXMgICBBbGxvY2F0ZSBvbmUgaW5vZGUgZm9yIGV2ZXJ5IFhYWCBieXRlcyBvZiBkZXZpY2Vcbi1tIHBlcmNlbnQgUmVzZXJ2ZSB0aGlzIHBlcmNlbnQgb2YgZmlsZXN5c3RlbSBzcGFjZSBmb3Igcm9vdCB1c2VyIgorCisjZGVmaW5lIEhFTFBfbWRldl9jb25mICJUaGUgbWRldiBjb25maWcgZmlsZSAoL2V0Yy9tZGV2LmNvbmYpIGNvbnRhaW5zIGxpbmVzIHRoYXQgbG9vayBsaWtlOlxuaGRbYS16XVswLTldKiAwOjMgNjYwXG4oc2RbYS16XSkgcm9vdDpkaXNrIDY2MCA9dXNiX3N0b3JhZ2VcblxuRWFjaCBsaW5lIG11c3QgY29udGFpbiB0aHJlZSB3aGl0ZXNwYWNlIHNlcGFyYXRlZCBmaWVsZHMuIFRoZSBmaXJzdFxuZmllbGQgaXMgYSByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hpbmcgb25lIG9yIG1vcmUgZGV2aWNlIG5hbWVzLFxudGhlIHNlY29uZCBhbmQgdGhpcmQgZmllbGRzIGFyZSB1aWQ6Z2lkIGFuZCBmaWxlIHBlcm1pc3Npb25zIGZvclxubWF0Y2hpbmcgZGV2aWNlcy4gRm91cnRoIGZpZWxkIGlzIG9wdGlvbmFsLiBJdCBjb3VsZCBiZSB1c2VkIHRvIGNoYW5nZVxuZGV2aWNlIG5hbWUgKHByZWZpeCAnPScpLCBwYXRoIChwcmVmaXggJz0nIGFuZCBwb3N0Zml4ICcvJykgb3IgY3JlYXRlIGFcbnN5bWxpbmsgKHByZWZpeCAnPicpLiIKKworI2RlZmluZSBIRUxQX21kZXYgInVzYWdlOiBtZGV2IFstc11cblxuQ3JlYXRlIGRldmljZXMgaW4gL2RldiB1c2luZyBpbmZvcm1hdGlvbiBmcm9tIC9zeXMuXG5cbi1zCVNjYW4gYWxsIGVudHJpZXMgaW4gL3N5cyB0byBwb3B1bGF0ZSAvZGV2IgorCisjZGVmaW5lIEhFTFBfbWFuICJ1c2FnZTogbWFuIFstTSBQQVRIXSBbLWsgU1RSSU5HXSB8IFtTRUNUSU9OXSBDT01NQU5EXG5cblJlYWQgbWFudWFsIHBhZ2UgZm9yIHN5c3RlbSBjb21tYW5kLlxuXG4tawlMaXN0IHBhZ2VzIHdpdGggU1RSSU5HIGluIHRoZWlyIHNob3J0IGRlc2NyaXB0aW9uXG4tTQlPdmVycmlkZSAkTUFOUEFUSFxuXG5NYW4gcGFnZXMgYXJlIGRpdmlkZWQgaW50byA4IHNlY3Rpb25zOlxuMSBjb21tYW5kcyAgICAgIDIgc3lzdGVtIGNhbGxzICAzIGxpYnJhcnkgZnVuY3Rpb25zICA0IC9kZXYgZmlsZXNcbjUgZmlsZSBmb3JtYXRzICA2IGdhbWVzICAgICAgICAgNyBtaXNjZWxsYW5lb3VzICAgICAgOCBzeXN0ZW0gbWFuYWdlbWVudFxuXG5TZWN0aW9ucyBhcmUgc2VhcmNoZWQgaW4gdGhlIG9yZGVyIDEgOCAzIDIgNSA0IDYgNyB1bmxlc3MgeW91IHNwZWNpZnkgYVxuc2VjdGlvbi4gRWFjaCBzZWN0aW9uIGhhcyBhIHBhZ2UgY2FsbGVkIFwiaW50cm9cIiwgYW5kIHRoZXJlJ3MgYSBnbG9iYWxcbmludHJvZHVjdGlvbiB1bmRlciBcIm1hbi1wYWdlc1wiLiIKKworI2RlZmluZSBIRUxQX2xzb2YgInVzYWdlOiBsc29mIFstbHRdIFstcCBQSUQxLFBJRDIsLi4uXSBbRklMRS4uLl1cblxuTGlzdCBhbGwgb3BlbiBmaWxlcyBiZWxvbmdpbmcgdG8gYWxsIGFjdGl2ZSBwcm9jZXNzZXMsIG9yIHByb2Nlc3NlcyB1c2luZ1xubGlzdGVkIEZJTEUocykuXG5cbi1sCWxpc3QgdWlkcyBudW1lcmljYWxseVxuLXAJZm9yIGdpdmVuIGNvbW1hLXNlcGFyYXRlZCBwaWRzIG9ubHkgKGRlZmF1bHQgYWxsIHBpZHMpXG4tdAl0ZXJzZSAocGlkIG9ubHkpIG91dHB1dCIKKworI2RlZmluZSBIRUxQX2xhc3QgInVzYWdlOiBsYXN0IFstV10gWy1mIEZJTEVdXG5cblNob3cgbGlzdGluZyBvZiBsYXN0IGxvZ2dlZCBpbiB1c2Vycy5cblxuLVcgICAgICBEaXNwbGF5IHRoZSBpbmZvcm1hdGlvbiB3aXRob3V0IGhvc3QtY29sdW1uIHRydW5jYXRpb25cbi1mIEZJTEUgUmVhZCBmcm9tIGZpbGUgRklMRSBpbnN0ZWFkIG9mIC92YXIvbG9nL3d0bXAiCisKKyNkZWZpbmUgSEVMUF9rbG9nZCAidXNhZ2U6IGtsb2dkIFstbl0gWy1jIE5dXG5cbi1jICBOICAgUHJpbnQgdG8gY29uc29sZSBtZXNzYWdlcyBtb3JlIHVyZ2VudCB0aGFuIHByaW8gTiAoMS04KVwiXG4tbiAgICBSdW4gaW4gZm9yZWdyb3VuZCIKKworI2RlZmluZSBIRUxQX2lwY3MgInVzYWdlOiBpcGNzIFtbLXNtcV0gLWkgc2htaWRdIHwgW1stYXNtcV0gWy10Y3BsdV1dXG5cbi1pIFNob3cgc3BlY2lmaWMgcmVzb3VyY2VcblJlc291cmNlIHNwZWNpZmljYXRpb246XG4tYSBBbGwgKGRlZmF1bHQpXG4tbSBTaGFyZWQgbWVtb3J5IHNlZ21lbnRzXG4tcSBNZXNzYWdlIHF1ZXVlc1xuLXMgU2VtYXBob3JlIGFycmF5c1xuT3V0cHV0IGZvcm1hdDpcbi1jIENyZWF0b3Jcbi1sIExpbWl0c1xuLXAgUGlkXG4tdCBUaW1lXG4tdSBTdW1tYXJ5IgorCisjZGVmaW5lIEhFTFBfaXBjcm0gInVzYWdlOiBpcGNybSBbIFstcSBtc3FpZF0gWy1tIHNobWlkXSBbLXMgc2VtaWRdXG4gICAgICAgICAgWy1RIG1zZ2tleV0gWy1NIHNobWtleV0gWy1TIHNlbWtleV0gLi4uIF1cblxuLW1NIFJlbW92ZSBtZW1vcnkgc2VnbWVudCBhZnRlciBsYXN0IGRldGFjaFxuLXFRIFJlbW92ZSBtZXNzYWdlIHF1ZXVlXG4tc1MgUmVtb3ZlIHNlbWFwaG9yZSIKKworI2RlZmluZSBIRUxQX2lwICJ1c2FnZTogaXAgWyBPUFRJT05TIF0gT0JKRUNUIHsgQ09NTUFORCB9XG5cblNob3cgLyBtYW5pcHVsYXRlIHJvdXRpbmcsIGRldmljZXMsIHBvbGljeSByb3V0aW5nIGFuZCB0dW5uZWxzLlxuXG53aGVyZSBPQkpFQ1QgOj0ge2FkZHJlc3MgfCBsaW5rIHwgcm91dGUgfCBydWxlIHwgdHVubmVsfVxuT1BUSU9OUyA6PSB7IC1mW2FtaWx5XSB7IGluZXQgfCBpbmV0NiB8IGxpbmsgfSB8IC1vW25lbGluZV0gfSIKKworI2RlZmluZSBIRUxQX2luaXQgInVzYWdlOiBpbml0XG5cblN5c3RlbSBWIHN0eWxlIGluaXQuXG5cbkZpcnN0IHByb2dyYW0gdG8gcnVuIChhcyBQSUQgMSkgd2hlbiB0aGUgc3lzdGVtIGNvbWVzIHVwLCByZWFkaW5nXG4vZXRjL2luaXR0YWIgdG8gZGV0ZXJtaW5lIGFjdGlvbnMuIgorCisjZGVmaW5lIEhFTFBfaGQgInVzYWdlOiBoZCBbRklMRS4uLl1cblxuRGlzcGxheSBmaWxlKHMpIGluIGNhbm5vbmljYWwgaGV4K0FTQ0lJIGZvcm1hdC4iCisKKyNkZWZpbmUgSEVMUF9oZXhkdW1wICJ1c2FnZTogaGV4ZHVtcCBbLWJjQ2RvdnhdIFstbiBMRU5dIFstcyBTS0lQXSBbRklMRS4uLl1cblxuRHVtcCBmaWxlKHMpIGluIGhleGFkZWNpbWFsIGZvcm1hdC5cblxuLW4gTEVOCVNob3cgTEVOIGJ5dGVzIG9mIG91dHB1dFxuLXMgU0tJUAlTa2lwIGJ5dGVzIG9mIGlucHV0XG4tdglWZXJib3NlIChkb24ndCBjb21iaW5lIGlkZW50aWNhbCBsaW5lcylcblxuRGlzcGxheSB0eXBlOlxuLWIgT25lIGJ5dGUgb2N0YWwgICAtYyBPbmUgYnl0ZSBjaGFyYWN0ZXIgLUMgQ2Fub25pY2FsIChoZXggKyBBU0NJSSlcbi1kIFR3byBieXRlIGRlY2ltYWwgLW8gVHdvIGJ5dGUgb2N0YWwgICAgIC14IFR3byBieXRlIGhleGFkZWNpbWFsIChkZWZhdWx0KSIKKworI2RlZmluZSBIRUxQX2dyb3VwZGVsICJ1c2FnZTogZ3JvdXBkZWwgW1VTRVJdIEdST1VQXG5cbkRlbGV0ZSBhIGdyb3VwIG9yIHJlbW92ZSBhIHVzZXIgZnJvbSBhIGdyb3VwIgorCisjZGVmaW5lIEhFTFBfZ3JvdXBhZGQgInVzYWdlOiBncm91cGFkZCBbLVNdIFstZyBHSURdIFtVU0VSXSBHUk9VUFxuXG5BZGQgYSB1c2VyIHRvIGEgZ3JvdXAsIG9yIGNyZWF0ZSBhIG5ldyBncm91cC5cblxuLWcgR0lECUdyb3VwIGlkXG4tUglPcGVyYXRlIHdpdGhpbiBjaHJvb3Rcbi1TCUNyZWF0ZSBhIHN5c3RlbSBncm91cCIKKworI2RlZmluZSBIRUxQX2dpdGNoZWNrb3V0ICJ1c2FnZTogZ2l0Y2hlY2tvdXQgPGJyYW5jaD5cbkEgbWluaW1hbCBnaXQgY2hlY2tvdXQuIgorCisjZGVmaW5lIEhFTFBfZ2l0ZmV0Y2ggInVzYWdlOiBnaXRmZXRjaFxuQSBtaW5pbWFsIGdpdCBmZXRjaC4iCisKKyNkZWZpbmUgSEVMUF9naXRyZW1vdGUgInVzYWdlOiBnaXRyZW1vdGUgVVJMXG5BIG1pbmltYWwgZ2l0IHJlbW90ZSBhZGQgb3JpZ2luLiIKKworI2RlZmluZSBIRUxQX2dpdGluaXQgInVzYWdlOiBnaXRpbml0IE5BTUVcbkEgbWluaW1hbCBnaXQgaW5pdC4iCisKKyNkZWZpbmUgSEVMUF9naXRjbG9uZSAidXNhZ2U6IGdpdGNsb25lIFVSTFxuQSBtaW5pbWFsIGdpdCBjbG9uZS4iCisKKyNkZWZpbmUgSEVMUF9naXRjb21wYXQgIkVuYWJsZSBnaXQgY29tcGF0aWJsZSByZXBvcyBpbnN0ZWFkIG9mIG1pbmltYWwgY2xvbmUgZG93bmxvYWRlci4iCisKKyNkZWZpbmUgSEVMUF9nZXR0eSAidXNhZ2U6IGdldHR5IFtPUFRJT05TXSBCQVVEX1JBVEVbLEJBVURfUkFURV0uLi4gVFRZIFtURVJNVFlQRV1cblxuV2FpdCBmb3IgYSBtb2RlbSB0byBkaWFsIGludG8gc2VyaWFsIHBvcnQsIGFkanVzdCBiYXVkIHJhdGUsIGNhbGwgbG9naW4uXG5cbi1oICAgIEVuYWJsZSBoYXJkd2FyZSBSVFMvQ1RTIGZsb3cgY29udHJvbFxuLUwgICAgU2V0IENMT0NBTCAoaWdub3JlIENhcnJpZXIgRGV0ZWN0IHN0YXRlKVxuLW0gICAgR2V0IGJhdWQgcmF0ZSBmcm9tIG1vZGVtJ3MgQ09OTkVDVCBzdGF0dXMgbWVzc2FnZVxuLW4gICAgRG9uJ3QgcHJvbXB0IGZvciBsb2dpbiBuYW1lXG4tdyAgICBXYWl0IGZvciBDUiBvciBMRiBiZWZvcmUgc2VuZGluZyAvZXRjL2lzc3VlXG4taSAgICBEb24ndCBkaXNwbGF5IC9ldGMvaXNzdWVcbi1mIElTU1VFX0ZJTEUgIERpc3BsYXkgSVNTVUVfRklMRSBpbnN0ZWFkIG9mIC9ldGMvaXNzdWVcbi1sIExPR0lOICBJbnZva2UgTE9HSU4gaW5zdGVhZCBvZiAvYmluL2xvZ2luXG4tdCBTRUMgICAgVGVybWluYXRlIGFmdGVyIFNFQyBpZiBubyBsb2dpbiBuYW1lIGlzIHJlYWRcbi1JIElOSVRTVFIgIFNlbmQgSU5JVFNUUiBiZWZvcmUgYW55dGhpbmcgZWxzZVxuLUggSE9TVCAgICBMb2cgSE9TVCBpbnRvIHRoZSB1dG1wIGZpbGUgYXMgdGhlIGhvc3RuYW1lIgorCisjZGVmaW5lIEhFTFBfZ2V0ZmF0dHIgInVzYWdlOiBnZXRmYXR0ciBbLWRdIFstaF0gWy1uIE5BTUVdIEZJTEUuLi5cblxuUmVhZCBQT1NJWCBleHRlbmRlZCBhdHRyaWJ1dGVzLlxuXG4tZAlTaG93IHZhbHVlcyBhcyB3ZWxsIGFzIG5hbWVzXG4taAlEbyBub3QgZGVyZWZlcmVuY2Ugc3ltYm9saWMgbGlua3Ncbi1uCVNob3cgb25seSBhdHRyaWJ1dGVzIHdpdGggdGhlIGdpdmVuIG5hbWVcbi0tb25seS12YWx1ZXMJRG9uJ3Qgc2hvdyBuYW1lcyIKKworI2RlZmluZSBIRUxQX2ZzY2sgInVzYWdlOiBmc2NrIFstQU5QUlRWXSBbLUMgRkRdIFstdCBGU1RZUEVdIFtGU19PUFRTXSBbQkxPQ0tERVZdLi4uXG5cbkNoZWNrIGFuZCByZXBhaXIgZmlsZXN5c3RlbXNcblxuLUEgICAgICBXYWxrIC9ldGMvZnN0YWIgYW5kIGNoZWNrIGFsbCBmaWxlc3lzdGVtc1xuLU4gICAgICBEb24ndCBleGVjdXRlLCBqdXN0IHNob3cgd2hhdCB3b3VsZCBiZSBkb25lXG4tUCAgICAgIFdpdGggLUEsIGNoZWNrIGZpbGVzeXN0ZW1zIGluIHBhcmFsbGVsXG4tUiAgICAgIFdpdGggLUEsIHNraXAgdGhlIHJvb3QgZmlsZXN5c3RlbVxuLVQgICAgICBEb24ndCBzaG93IHRpdGxlIG9uIHN0YXJ0dXBcbi1WICAgICAgVmVyYm9zZVxuLUMgbiAgICBXcml0ZSBzdGF0dXMgaW5mb3JtYXRpb24gdG8gc3BlY2lmaWVkIGZpbGUgZGVzY3JpcHRvclxuLXQgVFlQRSBMaXN0IG9mIGZpbGVzeXN0ZW0gdHlwZXMgdG8gY2hlY2siCisKKyNkZWZpbmUgSEVMUF9mZGlzayAidXNhZ2U6IGZkaXNrIFstbHVdIFstQyBDWUxJTkRFUlNdIFstSCBIRUFEU10gWy1TIFNFQ1RPUlNdIFstYiBTRUNUU1pdIERJU0tcblxuQ2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuXG4tdSAgICAgICAgICAgIFN0YXJ0IGFuZCBFbmQgYXJlIGluIHNlY3RvcnMgKGluc3RlYWQgb2YgY3lsaW5kZXJzKVxuLWwgICAgICAgICAgICBTaG93IHBhcnRpdGlvbiB0YWJsZSBmb3IgZWFjaCBESVNLLCB0aGVuIGV4aXRcbi1iIHNpemUgICAgICAgc2VjdG9yIHNpemUgKDUxMiwgMTAyNCwgMjA0OCBvciA0MDk2KVxuLUMgQ1lMSU5ERVJTICBTZXQgbnVtYmVyIG9mIGN5bGluZGVycy9oZWFkcy9zZWN0b3JzXG4tSCBIRUFEU1xuLVMgU0VDVE9SUyIKKworI2RlZmluZSBIRUxQX2V4cHIgInVzYWdlOiBleHByIEFSRzEgT1BFUkFUT1IgQVJHMi4uLlxuXG5FdmFsdWF0ZSBleHByZXNzaW9uIGFuZCBwcmludCByZXN1bHQuIEZvciBleGFtcGxlLCBcImV4cHIgMSArIDJcIiBwcmludHMgXCIzXCIuXG5cblRoZSBzdXBwb3J0ZWQgb3BlcmF0b3JzIGFyZSAoZ3JvdXBlZCBmcm9tIGhpZ2hlc3QgdG8gbG93ZXN0IHByaW9yaXR5KTpcblxuICAoICkgICAgOiAgICAqIC8gJSAgICArIC0gICAgIT0gPD0gPCA+PSA+ID0gICAgJiAgICB8XG5cbkVhY2ggY29uc3RhbnQgYW5kIG9wZXJhdG9yIG11c3QgYmUgYSBzZXBhcmF0ZSBjb21tYW5kIGxpbmUgYXJndW1lbnQuXG5BbGwgb3BlcmF0b3JzIGFyZSBpbmZpeCwgcmVxdWlyaW5nIGEgdmFsdWUgb24gZWFjaCBzaWRlIG9mIHRoZSBvcGVyYXRvci5cbk9wZXJhdG9ycyBvZiB0aGUgc2FtZSBwcmlvcml0eSBhcmUgZXZhbHVhdGVkIGxlZnQgdG8gcmlnaHQuIFBhcmVudGhlc2VzXG5lbGV2YXRlIHRoZSBwcmlvcml0eSBvZiBleHByZXNzaW9uIHRoZXkgY29udGFpbi4gVGhlICYgYW5kIHwgb3BlcmF0b3JzXG5hcmUgbG9naWNhbCAobm90IGJpdHdpc2UpLlxuXG5BbGwgb3BlcmF0b3JzIHlpZWxkIGludGVnZXJzLCBhbmQgbW9zdCBvcGVyYXRvcnMgZXhwZWN0IGludGVnZXIgYXJndW1lbnRzLlxuQ29tcGFyaXNvbnMgbWF5IGFscGhhYmV0aWNhbGx5IGNvbXBhcmUgc3RyaW5ncywgbG9naWNhbCBvcGVyYXRvcnMgdHJlYXQgYVxuYmxhbmsgc3RyaW5nIGFzIGZhbHNlIGFuZCBub25ibGFuayBhcyB0cnVlLCBhbmQgdGhlIHJlZ2V4IG9wZXJhdG9yXG4oc3RyIDogcGF0dGVybikgeWllbGRzIHRoZSBpbml0aWFsIG51bWJlciBvZiBtYXRjaGluZyBieXRlcy4gKFNvXG5cImFiYyA6IGFiXCIgaXMgMiwgYnV0IFwiYWJjIDogYmNcIiBpcyAwLilcblxuQ2FsbGluZyBleHByIGZyb20gYSBjb21tYW5kIHNoZWxsIHJlcXVpcmVzIGEgbG90IG9mIFxcKCBvciAnKicgZXNjYXBpbmdcbnRvIGF2b2lkIGludGVycHJldGluZyBzaGVsbCBjb250cm9sIGNoYXJhY3RlcnMsIHZzIHRoZSBzaGVsbCdzIFwiJCgoMSs2LzMpKVwiLiIKKworI2RlZmluZSBIRUxQX2R1bXBsZWFzZXMgInVzYWdlOiBkdW1wbGVhc2VzIFstcnwtYV0gWy1mIExFQVNFRklMRV1cblxuRGlzcGxheSBESENQIGxlYXNlcyBncmFudGVkIGJ5IHVkaGNwZFxuLWYgRklMRSwgIExlYXNlIGZpbGVcbi1yICAgICAgICBTaG93IHJlbWFpbmluZyB0aW1lXG4tYSAgICAgICAgU2hvdyBleHBpcmF0aW9uIHRpbWUiCisKKyNkZWZpbmUgSEVMUF9kaWZmICJ1c2FnZTogZGlmZiBbLWFiQmRpTnFyVHN0d10gWy1MIExBQkVMXSBbLVMgRklMRV0gWy1VIExJTkVTXSBbLUYgUkVHRVggXSBGSUxFMSBGSUxFMlxuXG4tYQlUcmVhdCBhbGwgZmlsZXMgYXMgdGV4dFxuLWIJSWdub3JlIGNoYW5nZXMgaW4gdGhlIGFtb3VudCBvZiB3aGl0ZXNwYWNlXG4tQglJZ25vcmUgY2hhbmdlcyB3aG9zZSBsaW5lcyBhcmUgYWxsIGJsYW5rXG4tZAlUcnkgaGFyZCB0byBmaW5kIGEgc21hbGxlciBzZXQgb2YgY2hhbmdlc1xuLUYgCVNob3cgdGhlIG1vc3QgcmVjZW50IGxpbmUgbWF0Y2hpbmcgdGhlIHJlZ2V4XG4taQlJZ25vcmUgY2FzZSBkaWZmZXJlbmNlc1xuLUwJVXNlIExBQkVMIGluc3RlYWQgb2YgdGhlIGZpbGVuYW1lIGluIHRoZSB1bmlmaWVkIGhlYWRlclxuLU4JVHJlYXQgYWJzZW50IGZpbGVzIGFzIGVtcHR5XG4tcQlPdXRwdXQgb25seSB3aGV0aGVyIGZpbGVzIGRpZmZlclxuLXIJUmVjdXJzZVxuLVMJU3RhcnQgd2l0aCBGSUxFIHdoZW4gY29tcGFyaW5nIGRpcmVjdG9yaWVzXG4tcwlSZXBvcnQgd2hlbiB0d28gZmlsZXMgYXJlIHRoZSBzYW1lXG4tVAlNYWtlIHRhYnMgbGluZSB1cCBieSBwcmVmaXhpbmcgYSB0YWIgd2hlbiBuZWNlc3Nhcnlcbi10CUV4cGFuZCB0YWJzIHRvIHNwYWNlcyBpbiBvdXRwdXRcbi11CVVuaWZpZWQgZGlmZlxuLVUJT3V0cHV0IExJTkVTIGxpbmVzIG9mIGNvbnRleHRcbi13CUlnbm9yZSBhbGwgd2hpdGVzcGFjZVxuXG4tLWNvbG9yICAgICBDb2xvciBvdXRwdXQgICAtLXN0cmlwLXRyYWlsaW5nLWNyICAgU3RyaXAgJ1xccicgZnJvbSBpbnB1dCBsaW5lc1xuLS1UWVBFLWxpbmUtZm9ybWF0PUZPUk1BVCAgRGlzcGxheSBUWVBFICh1bmNoYW5nZWQvb2xkL25ldykgbGluZXMgdXNpbmcgRk9STUFUXG4gIEZPUk1BVCB1c2VzIHByaW50ZiBpbnRlZ2VyIGVzY2FwZXMgKGFsYSAlLTIuNHgpIGZvbGxvd2VkIGJ5IExFVFRFUjogRkVMTU5uXG5TdXBwb3J0ZWQgZm9ybWF0IHNwZWNpZmllcnMgYXJlOlxuKiAlbCwgdGhlIGNvbnRlbnRzIG9mIHRoZSBsaW5lLCB3aXRob3V0IHRoZSB0cmFpbGluZyBuZXdsaW5lXG4qICVMLCB0aGUgY29udGVudHMgb2YgdGhlIGxpbmUsIGluY2x1ZGluZyB0aGUgdHJhaWxpbmcgbmV3bGluZVxuKiAlJSwgdGhlIGNoYXJhY3RlciAnJSciCisKKyNkZWZpbmUgSEVMUF9kaGNwZCAidXNhZ2U6IGRoY3BkIFstNDZmU10gWy1pIElGQUNFXSBbLVAgTl0gW0NPTkZGSUxFXVxuXG4gLWYgICAgUnVuIGluIGZvcmVncm91bmRcbiAtaSBJbnRlcmZhY2UgdG8gdXNlXG4gLVMgICAgTG9nIHRvIHN5c2xvZyB0b29cbiAtUCBOICBVc2UgcG9ydCBOIChkZWZhdWx0IGlwdjQgNjcsIGlwdjYgNTQ3KVxuIC00LCAtNiAgICBSdW4gYXMgYSBESENQdjQgb3IgREhDUHY2IHNlcnZlciIKKworI2RlZmluZSBIRUxQX2RoY3A2ICJ1c2FnZTogZGhjcDYgWy1mYm5xdlJdIFstaSBJRkFDRV0gWy1yIElQXSBbLXMgUFJPR10gWy1wIFBJREZJTEVdXG5cbkNvbmZpZ3VyZSBuZXR3b3JrIGR5bmFtaWNhbGx5IHVzaW5nIERIQ1AuXG5cbi1pIEludGVyZmFjZSB0byB1c2UgKGRlZmF1bHQgZXRoMClcbi1wIENyZWF0ZSBwaWRmaWxlXG4tcyBSdW4gUFJPRyBhdCBESENQIGV2ZW50c1xuLXQgU2VuZCB1cCB0byBOIFNvbGljaXQgcGFja2V0c1xuLVQgUGF1c2UgYmV0d2VlbiBwYWNrZXRzIChkZWZhdWx0IDMgc2Vjb25kcylcbi1BIFdhaXQgTiBzZWNvbmRzIGFmdGVyIGZhaWx1cmUgKGRlZmF1bHQgMjApXG4tZiBSdW4gaW4gZm9yZWdyb3VuZFxuLWIgQmFja2dyb3VuZCBpZiBsZWFzZSBpcyBub3Qgb2J0YWluZWRcbi1uIEV4aXQgaWYgbGVhc2UgaXMgbm90IG9idGFpbmVkXG4tcSBFeGl0IGFmdGVyIG9idGFpbmluZyBsZWFzZVxuLVIgUmVsZWFzZSBJUCBvbiBleGl0XG4tUyBMb2cgdG8gc3lzbG9nIHRvb1xuLXIgUmVxdWVzdCB0aGlzIElQIGFkZHJlc3Ncbi12IFZlcmJvc2VcblxuU2lnbmFsczpcblVTUjEgIFJlbmV3IGN1cnJlbnQgbGVhc2VcblVTUjIgIFJlbGVhc2UgY3VycmVudCBsZWFzZSIKKworI2RlZmluZSBIRUxQX2RoY3AgInVzYWdlOiBkaGNwIFstZmJucXZvQ1JCXSBbLWkgSUZBQ0VdIFstciBJUF0gWy1zIFBST0ddIFstcCBQSURGSUxFXVxuICAgICAgICAgICAgWy1IIEhPU1ROQU1FXSBbLVYgVkVORE9SXSBbLXggT1BUOlZBTF0gWy1PIE9QVF1cblxuICAgICBDb25maWd1cmUgbmV0d29yayBkeW5hbWljYWxseSB1c2luZyBESENQLlxuXG4gICAtaSBJbnRlcmZhY2UgdG8gdXNlIChkZWZhdWx0IGV0aDApXG4gICAtcCBDcmVhdGUgcGlkZmlsZVxuICAgLXMgUnVuIFBST0cgYXQgREhDUCBldmVudHMgKGRlZmF1bHQgL3Vzci9zaGFyZS9kaGNwL2RlZmF1bHQuc2NyaXB0KVxuICAgLUIgUmVxdWVzdCBicm9hZGNhc3QgcmVwbGllc1xuICAgLXQgU2VuZCB1cCB0byBOIGRpc2NvdmVyIHBhY2tldHNcbiAgIC1UIFBhdXNlIGJldHdlZW4gcGFja2V0cyAoZGVmYXVsdCAzIHNlY29uZHMpXG4gICAtQSBXYWl0IE4gc2Vjb25kcyBhZnRlciBmYWlsdXJlIChkZWZhdWx0IDIwKVxuICAgLWYgUnVuIGluIGZvcmVncm91bmRcbiAgIC1iIEJhY2tncm91bmQgaWYgbGVhc2UgaXMgbm90IG9idGFpbmVkXG4gICAtbiBFeGl0IGlmIGxlYXNlIGlzIG5vdCBvYnRhaW5lZFxuICAgLXEgRXhpdCBhZnRlciBvYnRhaW5pbmcgbGVhc2VcbiAgIC1SIFJlbGVhc2UgSVAgb24gZXhpdFxuICAgLVMgTG9nIHRvIHN5c2xvZyB0b29cbiAgIC1hIFVzZSBhcnBpbmcgdG8gdmFsaWRhdGUgb2ZmZXJlZCBhZGRyZXNzXG4gICAtTyBSZXF1ZXN0IG9wdGlvbiBPUFQgZnJvbSBzZXJ2ZXIgKGN1bXVsYXRpdmUpXG4gICAtbyBEb24ndCByZXF1ZXN0IGFueSBvcHRpb25zICh1bmxlc3MgLU8gaXMgZ2l2ZW4pXG4gICAtciBSZXF1ZXN0IHRoaXMgSVAgYWRkcmVzc1xuICAgLXggT1BUOlZBTCAgSW5jbHVkZSBvcHRpb24gT1BUIGluIHNlbnQgcGFja2V0cyAoY3VtdWxhdGl2ZSlcbiAgIC1GIEFzayBzZXJ2ZXIgdG8gdXBkYXRlIEROUyBtYXBwaW5nIGZvciBOQU1FXG4gICAtSCBTZW5kIE5BTUUgYXMgY2xpZW50IGhvc3RuYW1lIChkZWZhdWx0IG5vbmUpXG4gICAtViBWRU5ET1IgVmVuZG9yIGlkZW50aWZpZXIgKGRlZmF1bHQgJ3RveWJveCBWRVJTSU9OJylcbiAgIC1DIERvbid0IHNlbmQgTUFDIGFzIGNsaWVudCBpZGVudGlmaWVyXG4gICAtdiBWZXJib3NlXG5cbiAgIFNpZ25hbHM6XG4gICBVU1IxICBSZW5ldyBjdXJyZW50IGxlYXNlXG4gICBVU1IyICBSZWxlYXNlIGN1cnJlbnQgbGVhc2UiCisKKyNkZWZpbmUgSEVMUF9jc3BsaXQgInVzYWdlOiBjc3BsaXQgWy1rc10gWy1mIFBSRUZJWF0gWy1uIElOVEVHRVJdIGZpbGUgYXJnLi4uXG5cblNwbGl0IGZpbGVzIGludG8gbXVsdGlwbGUgZmlsZXMgYmFzZWQgb24gbGlzdCBvZiBydWxlc1xuXG4tawlEb2VzIG5vdCBkZWxldGUgRmlsZXMgb24gZXJyb3Jcbi1zCU5vIGZpbGUgb3V0cHV0IHNpemUgbWVzc2FnZXNcbi1mIFtQUkVGSVhdIFVzZSBbUFJFRklYXSBhcyBmaWxlbmFtZSBwcmVmaXggaW5zdGVhZCBvZiBcInh4XCJcbi1uIFtJTlRFR0VSXSBNYWtlIGFsbCBmaWxlbmFtZSBudW1iZXJzIFtJTlRFR0VSXSBjaGFyYWN0ZXJzIGxvbmdcblxuVmFsaWQgUnVsZXM6XG4vcmVnZXhwL1tJTlRFR0VSXSBCcmVhayBmaWxlIGJlZm9yZSBsaW5lIHRoYXQgcmVnZXhwIG1hdGNoZXMsXG4lcmVnZXhwJVtJTlRFR0VSXSBFeGNsdWRlIHVudGlsbCBsaW5lIG1hdGNoZXMgcmVnZXhwXG5JZiBhIG9mZnNldCBpcyBzcGVjaWZpZWQgZm9yIHRoZXNlIHJ1bGVzLCB0aGUgYnJlYWsgd2lsbCBoYXBwZW4gW0lOVEVHRVJdXG5saW5lcyBhZnRlciB0aGUgcmVnZXhwIG1hdGNoXG5pZiBhIG9mZnNldCBpcyBzcGVjaWZpZWQsIGl0IHdpbGwgYnJlYWsgYXQgW0lOVEVHRVJdIGxpbmVzIGFmdGVyIHRoZSBvZmZzZXRcbltJTlRFR0VSXSBCcmVhayBmaWxlIGF0IGxpbmUgYmVmb3JlIFtJTlRFR0VSXVxue0lOVEVHRVJ9IFJlcGVhdCBQcmV2aW91cyBQYXR0ZXJuIElOVEVHRVIgTnVtYmVyIG9mIHRpbWVzIGlmIElOVEVHRVIgaXMgKlxuVGhlIHBhdHRlcm4gcmVwZWF0cyBmb3JldmVyIgorCisjZGVmaW5lIEhFTFBfY3JvbnRhYiAidXNhZ2U6IGNyb250YWIgWy11IHVzZXJdIEZJTEVcbiAgICAgICAgICAgICAgIFstdSB1c2VyXSBbLWUgfCAtbCB8IC1yXVxuICAgICAgICAgICAgICAgWy1jIGRpcl1cblxuRmlsZXMgdXNlZCB0byBzY2hlZHVsZSB0aGUgZXhlY3V0aW9uIG9mIHByb2dyYW1zLlxuXG4tYyBjcm9udGFiIGRpclxuLWUgZWRpdCB1c2VyJ3MgY3JvbnRhYlxuLWwgbGlzdCB1c2VyJ3MgY3JvbnRhYlxuLXIgZGVsZXRlIHVzZXIncyBjcm9udGFiXG4tdSB1c2VyXG5GSUxFIFJlcGxhY2UgY3JvbnRhYiBieSBGSUxFICgnLSc6IHN0ZGluKSIKKworI2RlZmluZSBIRUxQX2Nyb25kICJ1c2FnZTogY3JvbmQgWy1mYlNdIFstbCBOXSBbLWQgTl0gWy1MIExPR0ZJTEVdIFstYyBESVJdXG5cbkEgZGFlbW9uIHRvIGV4ZWN1dGUgc2NoZWR1bGVkIGNvbW1hbmRzLlxuXG4tYiBCYWNrZ3JvdW5kIChkZWZhdWx0KVxuLWMgY3JvbnRhYiBkaXJcbi1kIFNldCBsb2cgbGV2ZWwsIGxvZyB0byBzdGRlcnJcbi1mIEZvcmVncm91bmRcbi1sIFNldCBsb2cgbGV2ZWwuIDAgaXMgdGhlIG1vc3QgdmVyYm9zZSwgZGVmYXVsdCA4XG4tUyBMb2cgdG8gc3lzbG9nIChkZWZhdWx0KVxuLUwgTG9nIHRvIGZpbGUiCisKKyNkZWZpbmUgSEVMUF9jaHNoICJ1c2FnZTogY2hzaCBbLXMgU0hFTExdIFstUiBDSFJPT1RfRElSXSBbVVNFUl1cblxuQ2hhbmdlIHVzZXIncyBsb2dpbiBzaGVsbC5cblxuLXMJVXNlIFNIRUxMIGluc3RlYWQgb2YgcHJvbXB0aW5nXG4tUglBY3Qgb24gQ0hST09UX0RJUiBpbnN0ZWFkIG9mIGhvc3RcblxuTm9uLXJvb3QgdXNlcnMgY2FuIG9ubHkgY2hhbmdlIHRoZWlyIG93biBzaGVsbCB0byBvbmUgbGlzdGVkIGluIC9ldGMvc2hlbGxzLiIKKworI2RlZmluZSBIRUxQX2JyY3RsICJ1c2FnZTogYnJjdGwgQ09NTUFORCBbQlJJREdFIFtJTlRFUkZBQ0VdXVxuXG5NYW5hZ2UgZXRoZXJuZXQgYnJpZGdlc1xuXG5Db21tYW5kczpcbnNob3cgICAgICAgICAgICAgICAgICBTaG93IGEgbGlzdCBvZiBicmlkZ2VzXG5hZGRiciBCUklER0UgICAgICAgICAgQ3JlYXRlIEJSSURHRVxuZGVsYnIgQlJJREdFICAgICAgICAgIERlbGV0ZSBCUklER0VcbmFkZGlmIEJSSURHRSBJRkFDRSAgICBBZGQgSUZBQ0UgdG8gQlJJREdFXG5kZWxpZiBCUklER0UgSUZBQ0UgICAgRGVsZXRlIElGQUNFIGZyb20gQlJJREdFXG5zZXRhZ2VpbmcgQlJJREdFIFRJTUUgU2V0IGFnZWluZyB0aW1lXG5zZXRmZCBCUklER0UgVElNRSAgICAgU2V0IGJyaWRnZSBmb3J3YXJkIGRlbGF5XG5zZXRoZWxsbyBCUklER0UgVElNRSAgU2V0IGhlbGxvIHRpbWVcbnNldG1heGFnZSBCUklER0UgVElNRSBTZXQgbWF4IG1lc3NhZ2UgYWdlXG5zZXRwYXRoY29zdCBCUklER0UgUE9SVCBDT1NUICAgU2V0IHBhdGggY29zdFxuc2V0cG9ydHByaW8gQlJJREdFIFBPUlQgUFJJTyAgIFNldCBwb3J0IHByaW9yaXR5XG5zZXRicmlkZ2VwcmlvIEJSSURHRSBQUklPICAgICAgU2V0IGJyaWRnZSBwcmlvcml0eVxuc3RwIEJSSURHRSBbMS95ZXMvb258MC9uby9vZmZdIFNUUCBvbi9vZmYiCisKKyNkZWZpbmUgSEVMUF9ib290Y2hhcnRkICJ1c2FnZTogYm9vdGNoYXJ0ZCB7c3RhcnQgW1BST0cgQVJHU119fHN0b3B8aW5pdFxuXG5SZWNvcmQgYm9vdCBjaGFydCBkYXRhIGludG8gL3Zhci9sb2cvYm9vdGxvZy50Z3pcblxuc3RhcnQ6IHN0YXJ0IGJhY2tncm91bmQgbG9nZ2luZzsgd2l0aCBQUk9HLCBydW4gUFJPRyxcbiAgICAgICB0aGVuIGtpbGwgbG9nZ2luZyB3aXRoIFNJR1VTUjFcbnN0b3A6ICBzZW5kIFNJR1VTUjEgdG8gYWxsIGJvb3RjaGFydGQgcHJvY2Vzc2VzXG5pbml0OiAgc3RhcnQgYmFja2dyb3VuZCBsb2dnaW5nOyBzdG9wIHdoZW4gZ2V0dHkveGRtIGlzIHNlZW5cbiAgICAgIChmb3IgaW5pdCBzY3JpcHRzKVxuXG5VbmRlciBQSUQgMTogYXMgaW5pdCwgdGhlbiBleGVjICRib290Y2hhcnRfaW5pdCwgL2luaXQsIC9zYmluL2luaXQiCisKKyNkZWZpbmUgSEVMUF9iYyAidXNhZ2U6IGJjIFstaWxxc3ddIFtmaWxlIC4uLl1cblxuYmMgaXMgYSBjb21tYW5kLWxpbmUgY2FsY3VsYXRvciB3aXRoIGEgVHVyaW5nLWNvbXBsZXRlIGxhbmd1YWdlLlxuXG5vcHRpb25zOlxuXG4gIC1pICAtLWludGVyYWN0aXZlICBmb3JjZSBpbnRlcmFjdGl2ZSBtb2RlXG4gIC1sICAtLW1hdGhsaWIgICAgICB1c2UgcHJlZGVmaW5lZCBtYXRoIHJvdXRpbmVzOlxuXG4gICAgICAgICAgICAgICAgICAgICBzKGV4cHIpICA9ICBzaW5lIG9mIGV4cHIgaW4gcmFkaWFuc1xuICAgICAgICAgICAgICAgICAgICAgYyhleHByKSAgPSAgY29zaW5lIG9mIGV4cHIgaW4gcmFkaWFuc1xuICAgICAgICAgICAgICAgICAgICAgYShleHByKSAgPSAgYXJjdGFuZ2VudCBvZiBleHByLCByZXR1cm5pbmcgcmFkaWFuc1xuICAgICAgICAgICAgICAgICAgICAgbChleHByKSAgPSAgbmF0dXJhbCBsb2cgb2YgZXhwclxuICAgICAgICAgICAgICAgICAgICAgZShleHByKSAgPSAgcmFpc2VzIGUgdG8gdGhlIHBvd2VyIG9mIGV4cHJcbiAgICAgICAgICAgICAgICAgICAgIGoobiwgeCkgID0gIEJlc3NlbCBmdW5jdGlvbiBvZiBpbnRlZ2VyIG9yZGVyIG4gb2YgeFxuXG4gIC1xICAtLXF1aWV0ICAgICAgICBkb24ndCBwcmludCB2ZXJzaW9uIGFuZCBjb3B5cmlnaHRcbiAgLXMgIC0tc3RhbmRhcmQgICAgIGVycm9yIGlmIGFueSBub24tUE9TSVggZXh0ZW5zaW9ucyBhcmUgdXNlZFxuICAtdyAgLS13YXJuICAgICAgICAgd2FybiBpZiBhbnkgbm9uLVBPU0lYIGV4dGVuc2lvbnMgYXJlIHVzZWQiCisKKyNkZWZpbmUgSEVMUF9hcnBpbmcgInVzYWdlOiBhcnBpbmcgWy1mcWJEVUFdIFstYyBDTlRdIFstdyBUSU1FT1VUXSBbLUkgSUZBQ0VdIFstcyBTUkNfSVBdIERTVF9JUFxuXG5TZW5kIEFSUCByZXF1ZXN0cy9yZXBsaWVzXG5cbi1mICAgICAgICAgUXVpdCBvbiBmaXJzdCBBUlAgcmVwbHlcbi1xICAgICAgICAgUXVpZXRcbi1iICAgICAgICAgS2VlcCBicm9hZGNhc3RpbmcsIGRvbid0IGdvIHVuaWNhc3Rcbi1EICAgICAgICAgRHVwbGljYXRlZCBhZGRyZXNzIGRldGVjdGlvbiBtb2RlXG4tVSAgICAgICAgIFVuc29saWNpdGVkIEFSUCBtb2RlLCB1cGRhdGUgeW91ciBuZWlnaGJvcnNcbi1BICAgICAgICAgQVJQIGFuc3dlciBtb2RlLCB1cGRhdGUgeW91ciBuZWlnaGJvcnNcbi1jIE4gICAgICAgU3RvcCBhZnRlciBzZW5kaW5nIE4gQVJQIHJlcXVlc3RzXG4tdyBUSU1FT1VUIFRpbWUgdG8gd2FpdCBmb3IgQVJQIHJlcGx5LCBzZWNvbmRzXG4tSSBJRkFDRSAgIEludGVyZmFjZSB0byB1c2UgKGRlZmF1bHQgZXRoMClcbi1zIFNSQ19JUCAgU2VuZGVyIElQIGFkZHJlc3NcbkRTVF9JUCAgICAgVGFyZ2V0IElQIGFkZHJlc3MiCisKKyNkZWZpbmUgSEVMUF9hcnAgInVzYWdlOiBhcnBcblstdm5dIFstSCBIV1RZUEVdIFstaSBJRl0gLWEgW0hPU1ROQU1FXVxuWy12XSAgICAgICAgICAgICAgWy1pIElGXSAtZCBIT1NUTkFNRSBbcHViXVxuWy12XSAgWy1IIEhXVFlQRV0gWy1pIElGXSAtcyBIT1NUTkFNRSBIV0FERFIgW3RlbXBdXG5bLXZdICBbLUggSFdUWVBFXSBbLWkgSUZdIC1zIEhPU1ROQU1FIEhXQUREUiBbbmV0bWFzayBNQVNLXSBwdWJcblstdl0gIFstSCBIV1RZUEVdIFstaSBJRl0gLURzIEhPU1ROQU1FIElGQUNFIFtuZXRtYXNrIE1BU0tdIHB1YlxuXG5NYW5pcHVsYXRlIEFSUCBjYWNoZS5cblxuLWEJRGlzcGxheSAoYWxsKSBob3N0c1xuLXMJU2V0IG5ldyBBUlAgZW50cnlcbi1kCURlbGV0ZSBhIHNwZWNpZmllZCBlbnRyeVxuLXYJVmVyYm9zZVxuLW4JRG9uJ3QgcmVzb2x2ZSBuYW1lc1xuLWkgSUZBQ0UJTmV0d29yayBpbnRlcmZhY2Vcbi1ECVJlYWQgPGh3YWRkcj4gZnJvbSBnaXZlbiBkZXZpY2Vcbi1BLC1wIEFGCVByb3RvY29sIGZhbWlseVxuLUggSFdUWVBFCUhhcmR3YXJlIGFkZHJlc3MgdHlwZSIKKworI2RlZmluZSBIRUxQX3hhcmdzICJ1c2FnZTogeGFyZ3MgWy0wUHBydF0gWy1zbkUgU1RSXSBDT01NQU5ELi4uXG5cblJ1biBjb21tYW5kIGxpbmUgb25lIG9yIG1vcmUgdGltZXMsIGFwcGVuZGluZyBhcmd1bWVudHMgZnJvbSBzdGRpbi5cblxuSWYgQ09NTUFORCBleGl0cyB3aXRoIDI1NSwgZG9uJ3QgbGF1bmNoIGFub3RoZXIgZXZlbiBpZiBhcmd1bWVudHMgcmVtYWluLlxuXG4tMAlFYWNoIGFyZ3VtZW50IGlzIE5VTEwgdGVybWluYXRlZCwgbm8gd2hpdGVzcGFjZSBvciBxdW90ZSBwcm9jZXNzaW5nXG4tRQlTdG9wIGF0IGxpbmUgbWF0Y2hpbmcgc3RyaW5nXG4tbglNYXggbnVtYmVyIG9mIGFyZ3VtZW50cyBwZXIgY29tbWFuZFxuLW8JT3BlbiB0dHkgZm9yIENPTU1BTkQncyBzdGRpbiAoZGVmYXVsdCAvZGV2L251bGwpXG4tUAlQYXJhbGxlbCBwcm9jZXNzZXMgKGRlZmF1bHQgMSlcbi1wCVByb21wdCBmb3IgeS9uIGZyb20gdHR5IGJlZm9yZSBydW5uaW5nIGVhY2ggY29tbWFuZFxuLXIJRG9uJ3QgcnVuIHdpdGggZW1wdHkgaW5wdXQgKG90aGVyd2lzZSBhbHdheXMgcnVuIGNvbW1hbmQgb25jZSlcbi1zCVNpemUgaW4gYnl0ZXMgcGVyIGNvbW1hbmQgbGluZVxuLXQJVHJhY2UsIHByaW50IGNvbW1hbmQgbGluZSB0byBzdGRlcnIiCisKKyNkZWZpbmUgSEVMUF93aG8gInVzYWdlOiB3aG9cblxuUHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgbG9nZ2VkIGluIHVzZXJzLiIKKworI2RlZmluZSBIRUxQX3djICJ1c2FnZTogd2MgWy1MbHdjbV0gW0ZJTEUuLi5dXG5cbkNvdW50IGxpbmVzLCB3b3JkcywgYW5kIGNoYXJhY3RlcnMgaW4gaW5wdXQuXG5cbi1MCVNob3cgbWF4IGxpbmUgbGVuZ3RoXG4tbAlTaG93IGxpbmVzXG4tdwlTaG93IHdvcmRzXG4tYwlTaG93IGJ5dGVzXG4tbQlTaG93IGNoYXJhY3RlcnNcblxuQnkgZGVmYXVsdCBvdXRwdXRzIGxpbmVzLCB3b3JkcywgYnl0ZXMsIGFuZCBmaWxlbmFtZSBmb3IgZWFjaFxuYXJndW1lbnQgKG9yIGZyb20gc3RkaW4gaWYgbm9uZSkuIERpc3BsYXlzIG9ubHkgZWl0aGVyIGJ5dGVzXG5vciBjaGFyYWN0ZXJzLiIKKworI2RlZmluZSBIRUxQX3V1ZW5jb2RlICJ1c2FnZTogdXVlbmNvZGUgWy1tXSBbSU5GSUxFXSBFTkNPREVfRklMRU5BTUVcblxuVXVlbmNvZGUgc3RkaW4gKG9yIElORklMRSkgdG8gc3Rkb3V0LCB3aXRoIEVOQ09ERV9GSUxFTkFNRSBpbiB0aGUgb3V0cHV0LlxuXG4tbQlCYXNlNjQiCisKKyNkZWZpbmUgSEVMUF91dWRlY29kZSAidXNhZ2U6IHV1ZGVjb2RlIFstbyBPVVRGSUxFXSBbSU5GSUxFXVxuXG5EZWNvZGUgZmlsZSBmcm9tIHN0ZGluIChvciBJTkZJTEUpLlxuXG4tbwlXcml0ZSB0byBPVVRGSUxFIGluc3RlYWQgb2YgZmlsZW5hbWUgaW4gaGVhZGVyIgorCisjZGVmaW5lIEhFTFBfdW5saW5rICJ1c2FnZTogdW5saW5rIEZJTEVcblxuRGVsZXRlIG9uZSBmaWxlLiIKKworI2RlZmluZSBIRUxQX3VuaXEgInVzYWdlOiB1bmlxIFstY2R1aXpdIFstdyBNQVhDSEFSU10gWy1mIEZJRUxEU10gWy1zIENIQVJdIFtJTkZJTEUgW09VVEZJTEVdXVxuXG5SZXBvcnQgb3IgZmlsdGVyIG91dCByZXBlYXRlZCBsaW5lcyBpbiBhIGZpbGVcblxuLWMJU2hvdyBjb3VudHMgYmVmb3JlIGVhY2ggbGluZVxuLWQJU2hvdyBvbmx5IGxpbmVzIHRoYXQgYXJlIHJlcGVhdGVkXG4tdQlTaG93IG9ubHkgbGluZXMgdGhhdCBhcmUgdW5pcXVlXG4taQlJZ25vcmUgY2FzZSB3aGVuIGNvbXBhcmluZyBsaW5lc1xuLXoJTGluZXMgZW5kIHdpdGggXFwwIG5vdCBcXG5cbi13CUNvbXBhcmUgbWF4aW11bSBYIGNoYXJzIHBlciBsaW5lXG4tZglJZ25vcmUgZmlyc3QgWCBmaWVsZHNcbi1zCUlnbm9yZSBmaXJzdCBYIGNoYXJzIgorCisjZGVmaW5lIEhFTFBfdW5hbWUgInVzYWdlOiB1bmFtZSBbLWFzbnJ2bW9dXG5cblByaW50IHN5c3RlbSBpbmZvcm1hdGlvbi5cblxuLXMJU3lzdGVtIG5hbWVcbi1uCU5ldHdvcmsgKGRvbWFpbikgbmFtZVxuLXIJS2VybmVsIFJlbGVhc2UgbnVtYmVyXG4tdglLZXJuZWwgVmVyc2lvblxuLW0JTWFjaGluZSAoaGFyZHdhcmUpIG5hbWVcbi1hCUFsbCBvZiB0aGUgYWJvdmUgKGluIG9yZGVyKVxuXG4tbwlVc2Vyc3BhY2UgdHlwZSIKKworI2RlZmluZSBIRUxQX2FyY2ggInVzYWdlOiBhcmNoXG5cblByaW50IG1hY2hpbmUgKGhhcmR3YXJlKSBuYW1lLCBzYW1lIGFzIHVuYW1lIC1tLiIKKworI2RlZmluZSBIRUxQX3VsaW1pdCAidXNhZ2U6IHVsaW1pdCBbLVAgUElEXSBbLVNIUmFjZGVmaWxtbnBxcnN0dXZdIFtMSU1JVF1cblxuUHJpbnQgb3Igc2V0IHJlc291cmNlIGxpbWl0cyBmb3IgcHJvY2VzcyBudW1iZXIgUElELiBJZiBubyBMSU1JVCBzcGVjaWZpZWRcbihvciByZWFkLW9ubHkgLWFwIHNlbGVjdGVkKSBkaXNwbGF5IGN1cnJlbnQgdmFsdWUgKHNpemVzIGluIGJ5dGVzKS5cbkRlZmF1bHQgaXMgdWxpbWl0IC1QICRQUElEIC1TZlwiIChzaG93IHNvZnQgZmlsZXNpemUgb2YgeW91ciBzaGVsbCkuXG5cbi1QICBQSUQgdG8gYWZmZWN0IChkZWZhdWx0ICRQUElEKSAgLWEgIFNob3cgYWxsIGxpbWl0c1xuLVMgIFNldC9zaG93IHNvZnQgbGltaXQgICAgICAgICAgICAtSCAgU2V0L3Nob3cgaGFyZCAobWF4aW11bSkgbGltaXRcblxuLWMgIENvcmUgZmlsZSBzaXplIChibG9ja3MpICAgICAgICAtZCAgUHJvY2VzcyBkYXRhIHNlZ21lbnQgKEtpQilcbi1lICBNYXggc2NoZWR1bGluZyBwcmlvcml0eSAgICAgICAgLWYgIEZpbGUgc2l6ZSAoS2lCKVxuLWkgIFBlbmRpbmcgc2lnbmFsIGNvdW50ICAgICAgICAgICAtbCAgTG9ja2VkIG1lbW9yeSAoS2lCKVxuLW0gIFJlc2lkZW50IFNldCBTaXplIChLaUIpICAgICAgICAtbiAgTnVtYmVyIG9mIG9wZW4gZmlsZXNcbi1wICBQaXBlIGJ1ZmZlciAoNTEyIGJ5dGVzKSAgICAgICAgLXEgIFBPU0lYIG1lc3NhZ2UgcXVldWVzXG4tciAgTWF4IHJlYWx0aW1lIHByaW9yaXR5ICAgICAgICAgIC1SICBSZWFsdGltZSBsYXRlbmN5ICh1cylcbi1zICBTdGFjayBzaXplIChLaUIpICAgICAgICAgICAgICAgLXQgIFRvdGFsIENQVSB0aW1lIChzKVxuLXUgIE1heGltdW0gcHJvY2Vzc2VzICh0aGlzIFVJRCkgICAtdiAgVmlydHVhbCBtZW1vcnkgc2l6ZSAoS2lCKSIKKworI2RlZmluZSBIRUxQX3R0eSAidXNhZ2U6IHR0eSBbLXNdXG5cblNob3cgZmlsZW5hbWUgb2YgdGVybWluYWwgY29ubmVjdGVkIHRvIHN0ZGluLiBJZiBub25lIHByaW50IFwibm90IGEgdHR5XCJcbmFuZCBleGl0IHdpdGggbm9uemVybyBzdGF0dXMuXG5cbi1zCVNpbGVudCwgZXhpdCBjb2RlIG9ubHkiCisKKyNkZWZpbmUgSEVMUF90c29ydCAidXNhZ2U6IHRzb3J0IFtGSUxFXVxuXG5Ub3BvbG9naWNhbCBzb3J0IGRlcGVuZGVuY3kgcmVzb2x2ZXIuXG5cblJlYWQgcGFpcnMgb2YgaW5wdXQgc3RyaW5ncyBpbmRpY2F0aW5nIGJlZm9yZS9hZnRlciBkZXBlbmRlbmN5IHJlbGF0aW9uc2hpcHNcbmFuZCBmaW5kIGFuIG9yZGVyaW5nIHRoYXQgcmVzcGVjdHMgYWxsIGRlcGVuZGVuY2llcy4gT24gc3VjY2VzcyBvdXRwdXQgZWFjaFxuc3RyaW5nIG9uY2UgdG8gc3Rkb3V0LCBvbiBmYWlsdXJlIHByaW50IGVycm9yIGFuZCBvdXRwdXQgY3ljbGUgcGFpcnMuIgorCisjZGVmaW5lIEhFTFBfdHJ1ZSAidXNhZ2U6IHRydWVcblxuUmV0dXJuIHplcm8uIgorCisjZGVmaW5lIEhFTFBfdG91Y2ggInVzYWdlOiB0b3VjaCBbLWFtY2hdIFstZCBEQVRFXSBbLXQgVElNRV0gWy1yIEZJTEVdIEZJTEUuLi5cblxuVXBkYXRlIHRoZSBhY2Nlc3MgYW5kIG1vZGlmaWNhdGlvbiB0aW1lcyBvZiBlYWNoIEZJTEUgdG8gdGhlIGN1cnJlbnQgdGltZS5cblxuLWEJQ2hhbmdlIGFjY2VzcyB0aW1lXG4tbQlDaGFuZ2UgbW9kaWZpY2F0aW9uIHRpbWVcbi1jCURvbid0IGNyZWF0ZSBmaWxlXG4taAlDaGFuZ2Ugc3ltbGlua1xuLWQJU2V0IHRpbWUgdG8gREFURSAoaW4gWVlZWS1NTS1ERFRoaDptbTpTU1suZnJhY11bdHpdIGZvcm1hdClcbi10CVNldCB0aW1lIHRvIFRJTUUgKGluIFtbQ0NdWVldTU1ERGhobW1bLnNzXVtmcmFjXSBmb3JtYXQpXG4tcglTZXQgdGltZSBzYW1lIGFzIHJlZmVyZW5jZSBGSUxFIgorCisjZGVmaW5lIEhFTFBfdGltZSAidXNhZ2U6IHRpbWUgWy1wdl0gQ09NTUFORC4uLlxuXG5SdW4gY29tbWFuZCBsaW5lIGFuZCByZXBvcnQgcmVhbCwgdXNlciwgYW5kIHN5c3RlbSB0aW1lIGVsYXBzZWQgaW4gc2Vjb25kcy5cbihyZWFsID0gY2xvY2sgb24gdGhlIHdhbGwsIHVzZXIgPSBjcHUgdXNlZCBieSBjb21tYW5kJ3MgY29kZSxcbnN5c3RlbSA9IGNwdSB1c2VkIGJ5IE9TIG9uIGJlaGFsZiBvZiBjb21tYW5kLilcblxuLXAJUE9TSVggZm9ybWF0IG91dHB1dFxuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX3Rlc3QgInVzYWdlOiB0ZXN0IFstYmNkZWZnaGtMcHJTc3V3eCBQQVRIXSBbLW56IFNUUklOR10gWy10IEZEXSBbWCA/PyBZXVxuXG5SZXR1cm4gdHJ1ZSBvciBmYWxzZSBieSBwZXJmb3JtaW5nIHRlc3RzLiBObyBhcmd1bWVudHMgaXMgZmFsc2UsIG9uZSBhcmd1bWVudFxuaXMgdHJ1ZSBpZiBub3QgZW1wdHkgc3RyaW5nLlxuXG4tLS0gVGVzdHMgd2l0aCBhIHNpbmdsZSBhcmd1bWVudCAoYWZ0ZXIgdGhlIG9wdGlvbik6XG5QQVRIIGlzL2hhczpcbiAgLWIgIGJsb2NrIGRldmljZSAgIC1mICByZWd1bGFyIGZpbGUgICAtcCAgZmlmbyAgICAgICAgICAgLXUgIHNldHVpZCBiaXRcbiAgLWMgIGNoYXIgZGV2aWNlICAgIC1nICBzZXRnaWQgICAgICAgICAtciAgcmVhZGFibGUgICAgICAgLXcgIHdyaXRhYmxlXG4gIC1kICBkaXJlY3RvcnkgICAgICAtaCAgc3ltbGluayAgICAgICAgLVMgIHNvY2tldCAgICAgICAgIC14ICBleGVjdXRhYmxlXG4gIC1lICBleGlzdHMgICAgICAgICAtTCAgc3ltbGluayAgICAgICAgLXMgIG5vbnplcm8gc2l6ZSAgIC1rICBzdGlja3kgYml0XG5TVFJJTkcgaXM6XG4gIC1uICBub256ZXJvIHNpemUgICAteiAgemVybyBzaXplXG5GRCAoaW50ZWdlciBmaWxlIGRlc2NyaXB0b3IpIGlzOlxuICAtdCAgYSBUVFlcblxuLS0tIFRlc3RzIHdpdGggb25lIGFyZ3VtZW50IG9uIGVhY2ggc2lkZSBvZiBhbiBvcGVyYXRvcjpcblR3byBzdHJpbmdzOlxuICA9ICBhcmUgaWRlbnRpY2FsICAgIT0gIGRpZmZlciAgICAgICAgID1+ICBzdHJpbmcgbWF0Y2hlcyByZWdleFxuQWxwaGFiZXRpY2FsIHNvcnQ6XG4gIDwgIGZpcnN0IGlzIGxvd2VyICA+ICAgZmlyc3QgaGlnaGVyXG5Ud28gaW50ZWdlcnM6XG4gIC1lcSAgZXF1YWwgICAgICAgICAtZ3QgIGZpcnN0ID4gc2Vjb25kICAgIC1sdCAgZmlyc3QgPCBzZWNvbmRcbiAgLW5lICBub3QgZXF1YWwgICAgIC1nZSAgZmlyc3QgPj0gc2Vjb25kICAgLWxlICBmaXJzdCA8PSBzZWNvbmRcblxuLS0tIE1vZGlmeSBvciBjb21iaW5lIHRlc3RzOlxuICAhIEVYUFIgICAgIG5vdCAoc3dhcCB0cnVlL2ZhbHNlKSAgIEVYUFIgLWEgRVhQUiAgICBhbmQgKGFyZSBib3RoIHRydWUpXG4gICggRVhQUiApICAgZXZhbHVhdGUgdGhpcyBmaXJzdCAgICAgRVhQUiAtbyBFWFBSICAgIG9yIChpcyBlaXRoZXIgdHJ1ZSkiCisKKyNkZWZpbmUgSEVMUF90ZWUgInVzYWdlOiB0ZWUgWy1haV0gW0ZJTEUuLi5dXG5cbkNvcHkgc3RkaW4gdG8gZWFjaCBsaXN0ZWQgZmlsZSwgYW5kIGFsc28gdG8gc3Rkb3V0LlxuRmlsZW5hbWUgXCItXCIgaXMgYSBzeW5vbnltIGZvciBzdGRvdXQuXG5cbi1hCUFwcGVuZCB0byBmaWxlc1xuLWkJSWdub3JlIFNJR0lOVCIKKworI2RlZmluZSBIRUxQX3RhciAidXNhZ2U6IHRhciBbLWN4dF0gWy1mdm9obWprT1NdIFstWFRDZiBOQU1FXSBbLS1zZWxpbnV4XSBbRklMRS4uLl1cblxuQ3JlYXRlLCBleHRyYWN0LCBvciBsaXN0IGZpbGVzIGluIGEgLnRhciAob3IgY29tcHJlc3NlZCB0P3opIGZpbGUuXG5cbk9wdGlvbnM6XG5jICBDcmVhdGUgICAgICAgICAgICAgICAgeCAgRXh0cmFjdCAgICAgICAgICAgICAgIHQgIFRlc3QgKGxpc3QpXG5mICB0YXIgRklMRSAoZGVmYXVsdCAtKSAgQyAgQ2hhbmdlIHRvIERJUiBmaXJzdCAgIHYgIFZlcmJvc2UgZGlzcGxheVxuSiAgeHogY29tcHJlc3Npb24gICAgICAgIGogIGJ6aXAyIGNvbXByZXNzaW9uICAgICB6ICBnemlwIGNvbXByZXNzaW9uXG5vICBJZ25vcmUgb3duZXIgICAgICAgICAgaCAgRm9sbG93IHN5bWxpbmtzICAgICAgIG0gIElnbm9yZSBtdGltZVxuTyAgRXh0cmFjdCB0byBzdGRvdXQgICAgIFggIGV4Y2x1ZGUgbmFtZXMgaW4gRklMRSBUICBpbmNsdWRlIG5hbWVzIGluIEZJTEVcbnMgIFNvcnQgZGlycyAoLS1zb3J0KVxuXG4tLWV4Y2x1ZGUgICAgICAgIEZJTEVOQU1FIHRvIGV4Y2x1ZGUgIC0tZnVsbC10aW1lICAgICAgICAgU2hvdyBzZWNvbmRzIHdpdGggLXR2XG4tLW1vZGUgTU9ERSAgICAgIEFkanVzdCBwZXJtaXNzaW9ucyAgIC0tb3duZXIgTkFNRVs6VUlEXSAgU2V0IGZpbGUgb3duZXJzaGlwXG4tLW10aW1lIFRJTUUgICAgIE92ZXJyaWRlIHRpbWVzdGFtcHMgIC0tZ3JvdXAgTkFNRVs6R0lEXSAgU2V0IGZpbGUgZ3JvdXBcbi0tc3BhcnNlICAgICAgICAgUmVjb3JkIHNwYXJzZSBmaWxlcyAgLS1zZWxpbnV4ICAgICAgICAgICBTYXZlL3Jlc3RvcmUgbGFiZWxzXG4tLXJlc3RyaWN0ICAgICAgIEFsbCB1bmRlciBvbmUgZGlyICAgIC0tbm8tcmVjdXJzaW9uICAgICAgU2tpcCBkaXIgY29udGVudHNcbi0tbnVtZXJpYy1vd25lciAgVXNlIG51bWVyaWMgdWlkL2dpZCwgbm90IHVzZXIvZ3JvdXAgbmFtZXNcbi0tbnVsbCAgICAgICAgICAgRmlsZW5hbWVzIGluIC1UIEZJTEUgYXJlIG51bGwtc2VwYXJhdGVkLCBub3QgbmV3bGluZVxuLS1zdHJpcC1jb21wb25lbnRzIE5VTSAgSWdub3JlIGZpcnN0IE5VTSBkaXJlY3RvcnkgY29tcG9uZW50cyB3aGVuIGV4dHJhY3Rpbmdcbi0teGZvcm09U0VEICAgICAgTW9kaWZ5IGZpbGVuYW1lcyB2aWEgU0VEIGV4cHJlc3Npb24gKGFsYSBzL2ZpbmQvcmVwbGFjZS9nKVxuLUkgUFJPRyAgICAgICAgICBGaWx0ZXIgdGhyb3VnaCBQUk9HIHRvIGNvbXByZXNzIG9yIFBST0cgLWQgdG8gZGVjb21wcmVzc1xuXG5GaWxlbmFtZSBmaWx0ZXIgdHlwZXMuIENyZWF0ZSBjb21tYW5kIGxpbmUgYXJncyBhcmVuJ3QgZmlsdGVyZWQsIGV4dHJhY3RcbmRlZmF1bHRzIHRvIC0tYW5jaG9yZWQsIC0tZXhjbHVkZSBkZWZhdWx0cyB0byAtLXdpbGRjYXJkcy1tYXRjaC1zbGFzaCxcbnVzZSBuby0gcHJlZml4IHRvIGRpc2FibGU6XG5cbi0tYW5jaG9yZWQgIE1hdGNoIG5hbWUgbm90IHBhdGggICAgICAgLS1pZ25vcmUtY2FzZSAgICAgICBDYXNlIGluc2Vuc2l0aXZlXG4tLXdpbGRjYXJkcyBFeHBhbmQgKj9bXSBsaWtlIHNoZWxsICAgIC0td2lsZGNhcmRzLW1hdGNoLXNsYXNoIgorCisjZGVmaW5lIEhFTFBfdGFpbCAidXNhZ2U6IHRhaWwgWy1ufGMgTlVNQkVSXSBbLWZ8Rl0gWy1zIFNFQ09ORFNdIFtGSUxFLi4uXVxuXG5Db3B5IGxhc3QgbGluZXMgZnJvbSBmaWxlcyB0byBzdGRvdXQuIElmIG5vIGZpbGVzIGxpc3RlZCwgY29weSBmcm9tXG5zdGRpbi4gRmlsZW5hbWUgXCItXCIgaXMgYSBzeW5vbnltIGZvciBzdGRpbi5cblxuLW4JT3V0cHV0IHRoZSBsYXN0IE5VTUJFUiBsaW5lcyAoZGVmYXVsdCAxMCksICtYIGNvdW50cyBmcm9tIHN0YXJ0XG4tYwlPdXRwdXQgdGhlIGxhc3QgTlVNQkVSIGJ5dGVzLCArTlVNQkVSIGNvdW50cyBmcm9tIHN0YXJ0XG4tZglGb2xsb3cgRklMRShzKSBieSBkZXNjcmlwdG9yLCB3YWl0aW5nIGZvciBtb3JlIGRhdGEgdG8gYmUgYXBwZW5kZWRcbi1GCUZvbGxvdyBGSUxFKHMpIGJ5IGZpbGVuYW1lLCB3YWl0aW5nIGZvciBtb3JlIGRhdGEsIGFuZCByZXRyeWluZ1xuLXMJVXNlZCB3aXRoIC1GLCBzbGVlcCBTRUNPTkRTIGJldHdlZW4gcmV0cmllcyAoZGVmYXVsdCAxKSIKKworI2RlZmluZSBIRUxQX3N0cmluZ3MgInVzYWdlOiBzdHJpbmdzIFstZm9dIFstdCBveGRdIFstbiBMRU5dIFtGSUxFLi4uXVxuXG5EaXNwbGF5IHByaW50YWJsZSBzdHJpbmdzIGluIGEgYmluYXJ5IGZpbGVcblxuLWYJU2hvdyBmaWxlbmFtZVxuLW4JQXQgbGVhc3QgTEVOIGNoYXJhY3RlcnMgZm9ybSBhIHN0cmluZyAoZGVmYXVsdCA0KVxuLW8JU2hvdyBvZmZzZXQgKGFsYSAtdCBkKVxuLXQJU2hvdyBvZmZzZXQgdHlwZSAobz1vY3RhbCwgZD1kZWNpbWFsLCB4PWhleGFkZWNpbWFsKSIKKworI2RlZmluZSBIRUxQX3NwbGl0ICJ1c2FnZTogc3BsaXQgWy1hIFNVRkZJWF9MRU5dIFstYiBCWVRFU10gWy1sIExJTkVTXSBbLW4gUEFSVFNdIFtJTlBVVCBbT1VUUFVUXV1cblxuQ29weSBJTlBVVCAob3Igc3RkaW4pIGRhdGEgdG8gYSBzZXJpZXMgb2YgT1VUUFVUIChvciBcInhcIikgZmlsZXMgd2l0aFxuYWxwaGFiZXRpY2FsbHkgaW5jcmVhc2luZyBzdWZmaXggKGFhLCBhYiwgYWMuLi4gYXosIGJhLCBiYi4uLikuXG5cbi1hCVN1ZmZpeCBsZW5ndGggKGRlZmF1bHQgMilcbi1iCUJZVEVTL2ZpbGUgKDEwLCAxMGssIDEwbSwgMTBnLi4uKVxuLWwJTElORVMvZmlsZSAoZGVmYXVsdCAxMDAwKVxuLW4JUEFSVFMgbWFueSBlcXVhbCBsZW5ndGggZmlsZXMiCisKKyNkZWZpbmUgSEVMUF9zb3J0ICJ1c2FnZTogc29ydCBbLUNNVmJjZGZnaW5yc3V4el0gW0ZJTEUuLi5dIFstayNbLCNbeF1dIFstdCBYXV0gWy1vIEZJTEVdXG5cblNvcnQgYWxsIGxpbmVzIG9mIHRleHQgZnJvbSBpbnB1dCBmaWxlcyAob3Igc3RkaW4pIHRvIHN0ZG91dC5cbi1nCUdlbmVyYWwgbnVtZXJpYyBzb3J0IChkb3VibGUgcHJlY2lzaW9uIHdpdGggbmFuIGFuZCBpbmYpXG4tbglOdW1lcmljIG9yZGVyIChpbnN0ZWFkIG9mIGFscGhhYmV0aWNhbClcbi1yCVJldmVyc2Vcbi11CVVuaXF1ZSBsaW5lcyBvbmx5XG5cbi1iCUlnbm9yZSBsZWFkaW5nIGJsYW5rcyAob3IgdHJhaWxpbmcgYmxhbmtzIGluIHNlY29uZCBwYXJ0IG9mIGtleSlcbi1DCUNoZWNrIHdoZXRoZXIgaW5wdXQgaXMgc29ydGVkXG4tYwlXYXJuIGlmIGlucHV0IGlzIHVuc29ydGVkXG4tZAlEaWN0aW9uYXJ5IG9yZGVyICh1c2UgYWxwaGFudW1lcmljIGFuZCB3aGl0ZXNwYWNlIGNoYXJzIG9ubHkpXG4tZglGb3JjZSB1cHBlcmNhc2UgKGNhc2UgaW5zZW5zaXRpdmUgc29ydClcbi1pCUlnbm9yZSBub25wcmludGluZyBjaGFyYWN0ZXJzXG4tawlTb3J0IGJ5IFwia2V5XCIgKHNlZSBiZWxvdylcbi1NCU1vbnRoIHNvcnQgKGphbiwgZmViLCBldGMpXG4tbwlPdXRwdXQgdG8gRklMRSBpbnN0ZWFkIG9mIHN0ZG91dFxuLXMJU2tpcCBmYWxsYmFjayBzb3J0IChvbmx5IHNvcnQgd2l0aCBrZXlzKVxuLXQJVXNlIGEga2V5IHNlcGFyYXRvciBvdGhlciB0aGFuIHdoaXRlc3BhY2Vcbi14CUhleGFkZWNpbWFsIG51bWVyaWNhbCBzb3J0XG4tVglWZXJzaW9uIG51bWJlcnMgKG5hbWUtMS4yMzQtcmM2LjViLnRneilcbi16CVplcm8gKG51bGwpIHRlcm1pbmF0ZWQgbGluZXNcblxuU29ydGluZyBieSBrZXkgbG9va3MgYXQgYSBzdWJzZXQgb2YgdGhlIHdvcmRzIG9uIGVhY2ggbGluZS4gLWsyIHVzZXMgdGhlXG5zZWNvbmQgd29yZCB0byB0aGUgZW5kIG9mIHRoZSBsaW5lLCAtazIsMiBsb29rcyBhdCBvbmx5IHRoZSBzZWNvbmQgd29yZCxcbi1rMiw0IGxvb2tzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBzZWNvbmQgdG8gdGhlIGVuZCBvZiB0aGUgZm91cnRoIHdvcmQuXG4tazIuNCw1IHN0YXJ0cyBmcm9tIHRoZSBmb3VydGggY2hhcmFjdGVyIG9mIHRoZSBzZWNvbmQgd29yZCwgdG8gdGhlIGVuZFxub2YgdGhlIGZpZnRoIHdvcmQuIE5lZ2F0aXZlIHZhbHVlcyBjb3VudCBmcm9tIHRoZSBlbmQuIFNwZWNpZnlpbmcgbXVsdGlwbGVcbmtleXMgdXNlcyB0aGUgbGF0ZXIga2V5cyBhcyB0aWUgYnJlYWtlcnMsIGluIG9yZGVyLiBBIHR5cGUgc3BlY2lmaWVyXG5hcHBlbmRlZCB0byBhIHNvcnQga2V5IChzdWNoIGFzIC0yLDJuKSBhcHBsaWVzIG9ubHkgdG8gc29ydGluZyB0aGF0IGtleS4iCisKKyNkZWZpbmUgSEVMUF9zbGVlcCAidXNhZ2U6IHNsZWVwIERVUkFUSU9OLi4uXG5cbldhaXQgYmVmb3JlIGV4aXRpbmcuXG5cbkRVUkFUSU9OIGNhbiBiZSBhIGRlY2ltYWwgZnJhY3Rpb24uIEFuIG9wdGlvbmFsIHN1ZmZpeCBjYW4gYmUgXCJtXCJcbihtaW51dGVzKSwgXCJoXCIgKGhvdXJzKSwgXCJkXCIgKGRheXMpLCBvciBcInNcIiAoc2Vjb25kcywgdGhlIGRlZmF1bHQpLiIKKworI2RlZmluZSBIRUxQX3NlZCAidXNhZ2U6IHNlZCBbLWlucnN6RV0gWy1lIFNDUklQVF0uLi58U0NSSVBUIFstZiBTQ1JJUFRfRklMRV0uLi4gW0ZJTEUuLi5dXG5cblN0cmVhbSBlZGl0b3IuIEFwcGx5IGVkaXRpbmcgU0NSSVBUcyB0byBsaW5lcyBvZiBpbnB1dC5cblxuLWUJQWRkIFNDUklQVCB0byBsaXN0XG4tZglBZGQgY29udGVudHMgb2YgU0NSSVBUX0ZJTEUgdG8gbGlzdFxuLWkJRWRpdCBlYWNoIGZpbGUgaW4gcGxhY2UgKC1pRVhUIGtlZXBzIGJhY2t1cCBmaWxlIHdpdGggZXh0ZW5zaW9uIEVYVClcbi1uCU5vIGRlZmF1bHQgb3V0cHV0ICh1c2UgdGhlIHAgY29tbWFuZCB0byBvdXRwdXQgbWF0Y2hlZCBsaW5lcylcbi1yCVVzZSBleHRlbmRlZCByZWd1bGFyIGV4cHJlc3Npb24gc3ludGF4XG4tRQlQT1NJWCBhbGlhcyBmb3IgLXJcbi1zCVRyZWF0IGlucHV0IGZpbGVzIHNlcGFyYXRlbHkgKGltcGxpZWQgYnkgLWkpXG4teglVc2UgXFwwIHJhdGhlciB0aGFuIFxcbiBhcyBpbnB1dCBsaW5lIHNlcGFyYXRvclxuXG5BIFNDUklQVCBpcyBvbmUgb3IgbW9yZSBDT01NQU5EcyBzZXBhcmF0ZWQgYnkgbmV3bGluZXMgb3Igc2VtaWNvbG9ucy5cbkFsbCAtZSBTQ1JJUFRzIGFuZCAtZiBTQ1JJUFRfRklMRSBjb250ZW50cyBhcmUgY29tYmluZWQgaW4gb3JkZXIgYXMgaWZcbnNlcGFyYXRlZCBieSBuZXdsaW5lcy4gSWYgbm8gLWUgb3IgLWYgdGhlbiBmaXJzdCBhcmd1bWVudCBpcyB0aGUgU0NSSVBULlxuXG5DT01NQU5EcyBhcHBseSB0byBldmVyeSBsaW5lIHVubGVzcyBwcmVmaXhlZCB3aXRoIGFuIEFERFJFU1Mgb2YgdGhlIGZvcm06XG5cbiAgW0FERFJFU1NbLEFERFJFU1NdXVshXUNPTU1BTkRcblxuQUREUkVTUyBpcyBhIGxpbmUgbnVtYmVyIChzdGFydGluZyBhdCAxKSwgYSAvUkVHVUxBUiBFWFBSRVNTSU9OLywgb3IgJCBmb3Jcbmxhc3QgbGluZSAoLXMgb3IgLWkgbWFrZXMgaXQgbGFzdCBsaW5lIG9mIGVhY2ggZmlsZSkuIE9uZSBhZGRyZXNzIG1hdGNoZXMgb25lXG5saW5lLCBBRERSRVNTLEFERFJFU1MgbWF0Y2hlcyBmcm9tIGZpcnN0IHRvIHNlY29uZCBpbmNsdXNpdmUuIFR3byByZWdleGVzIGNhblxubWF0Y2ggbXVsdGlwbGUgcmFuZ2VzLiBBRERSRVNTLCtOIGVuZHMgTiBsaW5lcyBsYXRlci4gISBpbnZlcnRzIHRoZSBtYXRjaC5cblxuUkVHVUxBUiBFWFBSRVNTSU9OUyBzdGFydCBhbmQgZW5kIHdpdGggdGhlIHNhbWUgY2hhcmFjdGVyIChhbnl0aGluZyBidXRcbmJhY2tzbGFzaCBvciBuZXdsaW5lKS4gVG8gdXNlIHRoZSBkZWxpbWl0ZXIgaW4gdGhlIHJlZ2V4IGVzY2FwZSBpdCB3aXRoIGFcbmJhY2tzbGFzaCwgYW5kIHByaW50ZiBlc2NhcGVzIChcXGFiY2VmbnJ0diBhbmQgb2N0YWwsIGhleCwgYW5kIHVuaWNvZGUpIHdvcmsuXG5BbiBlbXB0eSByZWdleCByZXBlYXRzIHRoZSBwcmV2aW91cyBvbmUuIEFERFJFU1MgcmVnZXhlcyByZXF1aXJlIGFueVxuZmlyc3QgZGVsaW1pdGVyIGV4Y2VwdCAvIHRvIGJlIFxcZXNjYXBlZCB0byBkaXN0aW5ndWlzaCBpdCBmcm9tIENPTU1BTkRzLlxuXG5TZWQgcmVhZHMgZWFjaCBsaW5lIG9mIGlucHV0LCBwcm9jZXNzZXMgaXQsIGFuZCB3cml0ZXMgaXQgb3V0IG9yIGRpc2NhcmRzIGl0XG5iZWZvcmUgcmVhZGluZyB0aGUgbmV4dC4gU2VkIGNhbiByZW1lbWJlciBvbmUgYWRkaXRpb25hbCBsaW5lIGluIGEgc2VwYXJhdGVcbmJ1ZmZlciAodGhlIGgsIEgsIGcsIEcsIGFuZCB4IGNvbW1hbmRzKSwgYW5kIGNhbiByZWFkIHRoZSBuZXh0IGxpbmUgb2YgaW5wdXRcbmVhcmx5ICh0aGUgbiBhbmQgTiBjb21tYW5kcyksIGJ1dCBvdGhlcndpc2Ugb3BlcmF0ZXMgb24gaW5kaXZpZHVhbCBsaW5lcy5cblxuRWFjaCBDT01NQU5EIHN0YXJ0cyB3aXRoIGEgc2luZ2xlIGNoYXJhY3Rlci4gQ29tbWFuZHMgd2l0aCBubyBhcmd1bWVudHMgYXJlOlxuXG4gICEgIFJ1biB0aGlzIGNvbW1hbmQgd2hlbiB0aGUgQUREUkVTUyBfZGlkbid0XyBtYXRjaC5cbiAgeyAgU3RhcnQgbmV3IGNvbW1hbmQgYmxvY2ssIGNvbnRpbnVpbmcgdW50aWwgYSBjb3JyZXNwb25kaW5nIFwifVwiLlxuICAgICBDb21tYW5kIGJsb2NrcyBuZXN0IGFuZCBjYW4gaGF2ZSBBRERSRVNTZXMgYXBwbHlpbmcgdG8gdGhlIHdob2xlIGJsb2NrLlxuICB9ICBFbmQgY29tbWFuZCBibG9jayAodGhpcyBDT01NQU5EIGNhbm5vdCBoYXZlIGFuIGFkZHJlc3MpXG4gIGQgIERlbGV0ZSB0aGlzIGxpbmUgYW5kIG1vdmUgb24gdG8gdGhlIG5leHQgb25lXG4gICAgIChpZ25vcmVzIHJlbWFpbmluZyBDT01NQU5EcylcbiAgRCAgRGVsZXRlIG9uZSBsaW5lIG9mIGlucHV0IGFuZCByZXN0YXJ0IGNvbW1hbmQgU0NSSVBUIChzYW1lIGFzIFwiZFwiXG4gICAgIHVubGVzcyB5b3UndmUgZ2x1ZWQgbGluZXMgdG9nZXRoZXIgd2l0aCBcIk5cIiBvciBzaW1pbGFyKVxuICBnICBHZXQgcmVtZW1iZXJlZCBsaW5lIChvdmVyd3JpdGluZyBjdXJyZW50IGxpbmUpXG4gIEcgIEdldCByZW1lbWJlcmVkIGxpbmUgKGFwcGVuZGluZyB0byBjdXJyZW50IGxpbmUpXG4gIGggIFJlbWVtYmVyIHRoaXMgbGluZSAob3ZlcndyaXRpbmcgcmVtZW1iZXJlZCBsaW5lKVxuICBIICBSZW1lbWJlciB0aGlzIGxpbmUgKGFwcGVuZGluZyB0byByZW1lbWJlcmVkIGxpbmUsIGlmIGFueSlcbiAgbCAgUHJpbnQgbGluZSBlc2NhcGluZyBcXGFiZnJ0dm4sIG9jdGFsIGVzY2FwZSBvdGhlciBub25wcmludG5nIGNoYXJzLFxuICAgICB3cmFwIGxpbmVzIHRvIHRlcm1pbmFsIHdpZHRoIHdpdGggXFwsIGFwcGVuZCAkIHRvIGVuZCBvZiBsaW5lLlxuICBuICBQcmludCBkZWZhdWx0IG91dHB1dCBhbmQgcmVhZCBuZXh0IGxpbmUgb3ZlciBjdXJyZW50IGxpbmUgKHF1aXQgYXQgRU9GKVxuICBOICBBcHBlbmQgXFxuIGFuZCBuZXh0IGxpbmUgb2YgaW5wdXQgdG8gdGhpcyBsaW5lLiBRdWl0IGF0IEVPRiB3aXRob3V0XG4gICAgIGRlZmF1bHQgb3V0cHV0LiBBZHZhbmNlcyBsaW5lIGNvdW50ZXIgZm9yIEFERFJFU1MgYW5kIFwiPVwiLlxuICBwICBQcmludCB0aGlzIGxpbmVcbiAgUCAgUHJpbnQgdGhpcyBsaW5lIHVwIHRvIGZpcnN0IG5ld2xpbmUgKGZyb20gXCJOXCIpXG4gIHEgIFF1aXQgKHByaW50IGRlZmF1bHQgb3V0cHV0LCBubyBtb3JlIGNvbW1hbmRzIHByb2Nlc3NlZCBvciBsaW5lcyByZWFkKVxuICB4ICBFeGNoYW5nZSB0aGlzIGxpbmUgd2l0aCByZW1lbWJlcmVkIGxpbmUgKG92ZXJ3cml0ZSBpbiBib3RoIGRpcmVjdGlvbnMpXG4gID0gIFByaW50IHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyIChwbHVzIG5ld2xpbmUpXG4gICMgIENvbW1lbnQsIGlnbm9yZXMgcmVzdCBvZiB0aGlzIGxpbmUgb2YgU0NSSVBUICh1bnRpbCBuZXdsaW5lKVxuXG5Db21tYW5kcyB0aGF0IHRha2UgYW4gYXJndW1lbnQ6XG5cbiAgOiBMQUJFTCAgICBUYXJnZXQgZm9yIGp1bXAgY29tbWFuZHNcbiAgYSBURVhUICAgICBBcHBlbmQgdGV4dCB0byBvdXRwdXQgYmVmb3JlIHJlYWRpbmcgbmV4dCBsaW5lXG4gIGIgTEFCRUwgICAgQnJhbmNoLCBqdW1wcyB0byA6TEFCRUwgKHdpdGggbm8gTEFCRUwgdG8gZW5kIG9mIFNDUklQVClcbiAgYyBURVhUICAgICBEZWxldGUgbWF0Y2hpbmcgQUREUkVTUyByYW5nZSBhbmQgb3V0cHV0IFRFWFQgaW5zdGVhZFxuICBpIFRFWFQgICAgIEluc2VydCB0ZXh0IChvdXRwdXQgaW1tZWRpYXRlbHkpXG4gIHIgRklMRSAgICAgQXBwZW5kIGNvbnRlbnRzIG9mIEZJTEUgdG8gb3V0cHV0IGJlZm9yZSByZWFkaW5nIG5leHQgbGluZS5cbiAgcy9TL1IvRiAgICBTZWFyY2ggZm9yIHJlZ2V4IFMgcmVwbGFjZSBtYXRjaCB3aXRoIFIgdXNpbmcgZmxhZ3MgRi4gRGVsaW1pdGVyXG4gICAgICAgICAgICAgaXMgYW55dGhpbmcgYnV0IFxcbiBvciBcXCwgZXNjYXBlIHdpdGggXFwgdG8gdXNlIGluIFMgb3IgUi4gUHJpbnRmXG4gICAgICAgICAgICAgZXNjYXBlcyB3b3JrLiBVbmVzY2FwZWQgJiBpbiBSIGJlY29tZXMgZnVsbCBtYXRjaGVkIHRleHQsIFxcMVxuICAgICAgICAgICAgIHRocm91Z2ggXFw5ID0gcGFyZW50aGV0aWNhbCBzdWJleHByZXNzaW9uIGZyb20gUy4gXFwgYXQgZW5kIG9mXG4gICAgICAgICAgICAgbGluZSBhcHBlbmRzIG5leHQgbGluZSBvZiBTQ1JJUFQuIFRoZSBmbGFncyBpbiBGIGFyZTpcbiAgICAgICAgICAgICBbMC05XSAgICBBIG51bWJlciBOLCBzdWJzdGl0dXRlIG9ubHkgTnRoIG1hdGNoXG4gICAgICAgICAgICAgZyAgICAgICAgR2xvYmFsLCBzdWJzdGl0dXRlIGFsbCBtYXRjaGVzXG4gICAgICAgICAgICAgaS9JICAgICAgSWdub3JlIGNhc2Ugd2hlbiBtYXRjaGluZ1xuICAgICAgICAgICAgIHAgICAgICAgIFByaW50IHJlc3VsdGluZyBsaW5lIHdoZW4gbWF0Y2ggZm91bmQgYW5kIHJlcGxhY2VkXG4gICAgICAgICAgICAgdyBbZmlsZV0gV3JpdGUgKGFwcGVuZCkgbGluZSB0byBmaWxlIHdoZW4gbWF0Y2ggcmVwbGFjZWRcbiAgdCBMQUJFTCAgICBUZXN0LCBqdW1wIGlmIHMvLy8gY29tbWFuZCBtYXRjaGVkIHRoaXMgbGluZSBzaW5jZSBsYXN0IHRlc3RcbiAgVCBMQUJFTCAgICBUZXN0IGZhbHNlLCBqdW1wIHRvIDpMQUJFTCBvbmx5IGlmIG5vIHMvLy8gZm91bmQgYSBtYXRjaFxuICB3IEZJTEUgICAgIFdyaXRlIChhcHBlbmQpIGxpbmUgdG8gZmlsZVxuICB5L29sZC9uZXcvIENoYW5nZSBlYWNoIGNoYXJhY3RlciBpbiAnb2xkJyB0byBjb3JyZXNwb25kaW5nIGNoYXJhY3RlclxuICAgICAgICAgICAgIGluICduZXcnICh3aXRoIHN0YW5kYXJkIGJhY2tzbGFzaCBlc2NhcGVzLCBkZWxpbWl0ZXIgY2FuIGJlXG4gICAgICAgICAgICAgYW55IHJlcGVhdGVkIGNoYXJhY3RlciBleGNlcHQgXFwgb3IgXFxuKVxuXG5UaGUgVEVYVCBhcmd1bWVudHMgKHRvIGEgYyBpKSBtYXkgZW5kIHdpdGggYW4gdW5lc2NhcGVkIFwiXFxcIiB0byBhcHBlbmRcbnRoZSBuZXh0IGxpbmUgKGxlYWRpbmcgd2hpdGVzcGFjZSBpcyBub3Qgc2tpcHBlZCksIGFuZCB0cmVhdCBcIjtcIiBhcyBhXG5saXRlcmFsIGNoYXJhY3RlciAodXNlIFwiXFw7XCIgaW5zdGVhZCkuIgorCisjZGVmaW5lIEhFTFBfcm1kaXIgInVzYWdlOiBybWRpciBbLXBdIFtESVIuLi5dXG5cblJlbW92ZSBvbmUgb3IgbW9yZSBkaXJlY3Rvcmllcy5cblxuLXAJUmVtb3ZlIHBhdGhcbi0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5CUlnbm9yZSBmYWlsdXJlcyBjYXVzZWQgYnkgbm9uLWVtcHR5IGRpcmVjdG9yaWVzIgorCisjZGVmaW5lIEhFTFBfcm0gInVzYWdlOiBybSBbLWZpUnJ2XSBGSUxFLi4uXG5cblJlbW92ZSBlYWNoIGFyZ3VtZW50IGZyb20gdGhlIGZpbGVzeXN0ZW0uXG5cbi1mCUZvcmNlOiByZW1vdmUgd2l0aG91dCBjb25maXJtYXRpb24sIG5vIGVycm9yIGlmIGl0IGRvZXNuJ3QgZXhpc3Rcbi1pCUludGVyYWN0aXZlOiBwcm9tcHQgZm9yIGNvbmZpcm1hdGlvblxuLXJSCVJlY3Vyc2l2ZTogcmVtb3ZlIGRpcmVjdG9yeSBjb250ZW50c1xuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX3JlbmljZSAidXNhZ2U6IHJlbmljZSBbLWdwdV0gLW4gSU5DUkVNRU5UIElELi4uXG5cbi1nCUdyb3VwIGlkc1xuLXAJUHJvY2VzcyBpZHMgKGRlZmF1bHQpXG4tdQlVc2VyIGlkcyIKKworI2RlZmluZSBIRUxQX3B3ZCAidXNhZ2U6IHB3ZCBbLUx8LVBdXG5cblByaW50IHdvcmtpbmcgKGN1cnJlbnQpIGRpcmVjdG9yeS5cblxuLUwJVXNlIHNoZWxsJ3MgcGF0aCBmcm9tICRQV0QgKHdoZW4gYXBwbGljYWJsZSlcbi1QCVByaW50IGNhbm9uaWNhbCBhYnNvbHV0ZSBwYXRoIgorCisjZGVmaW5lIEhFTFBfcGtpbGwgInVzYWdlOiBwa2lsbCBbLWZub3Z4XSBbLVNJR05BTHwtbCBTSUdOQUxdIFtQQVRURVJOXSBbLUcgR0lELF0gWy1nIFBHUlAsXSBbLVAgUFBJRCxdIFstcyBTSUQsXSBbLXQgVEVSTSxdIFstVSBVSUQsXSBbLXUgRVVJRCxdXG5cbi1sCVNlbmQgU0lHTkFMIChkZWZhdWx0IFNJR1RFUk0pXG4tVglWZXJib3NlXG4tZglDaGVjayBmdWxsIGNvbW1hbmQgbGluZSBmb3IgUEFUVEVSTlxuLUcJTWF0Y2ggcmVhbCBHcm91cCBJRChzKVxuLWcJTWF0Y2ggUHJvY2VzcyBHcm91cChzKSAoMCBpcyBjdXJyZW50IHVzZXIpXG4tbglOZXdlc3QgbWF0Y2ggb25seVxuLW8JT2xkZXN0IG1hdGNoIG9ubHlcbi1QCU1hdGNoIFBhcmVudCBQcm9jZXNzIElEKHMpXG4tcwlNYXRjaCBTZXNzaW9uIElEKHMpICgwIGZvciBjdXJyZW50KVxuLXQJTWF0Y2ggVGVybWluYWwocylcbi1VCU1hdGNoIHJlYWwgVXNlciBJRChzKVxuLXUJTWF0Y2ggZWZmZWN0aXZlIFVzZXIgSUQocylcbi12CU5lZ2F0ZSB0aGUgbWF0Y2hcbi14CU1hdGNoIHdob2xlIGNvbW1hbmQgKG5vdCBzdWJzdHJpbmcpIgorCisjZGVmaW5lIEhFTFBfcGdyZXAgInVzYWdlOiBwZ3JlcCBbLWNsZm5vdnhdIFstZCBERUxJTV0gWy1MIFNJR05BTF0gW1BBVFRFUk5dIFstRyBHSUQsXSBbLWcgUEdSUCxdIFstUCBQUElELF0gWy1zIFNJRCxdIFstdCBURVJNLF0gWy1VIFVJRCxdIFstdSBFVUlELF1cblxuU2VhcmNoIGZvciBwcm9jZXNzKGVzKS4gUEFUVEVSTiBpcyBhbiBleHRlbmRlZCByZWd1bGFyIGV4cHJlc3Npb24gY2hlY2tlZFxuYWdhaW5zdCBjb21tYW5kIG5hbWVzLlxuXG4tYwlTaG93IG9ubHkgY291bnQgb2YgbWF0Y2hlc1xuLWQJVXNlIERFTElNIGluc3RlYWQgb2YgbmV3bGluZVxuLUwJU2VuZCBTSUdOQUwgaW5zdGVhZCBvZiBwcmludGluZyBuYW1lXG4tbAlTaG93IGNvbW1hbmQgbmFtZVxuLWYJQ2hlY2sgZnVsbCBjb21tYW5kIGxpbmUgZm9yIFBBVFRFUk5cbi1HCU1hdGNoIHJlYWwgR3JvdXAgSUQocylcbi1nCU1hdGNoIFByb2Nlc3MgR3JvdXAocykgKDAgaXMgY3VycmVudCB1c2VyKVxuLW4JTmV3ZXN0IG1hdGNoIG9ubHlcbi1vCU9sZGVzdCBtYXRjaCBvbmx5XG4tUAlNYXRjaCBQYXJlbnQgUHJvY2VzcyBJRChzKVxuLXMJTWF0Y2ggU2Vzc2lvbiBJRChzKSAoMCBmb3IgY3VycmVudClcbi10CU1hdGNoIFRlcm1pbmFsKHMpXG4tVQlNYXRjaCByZWFsIFVzZXIgSUQocylcbi11CU1hdGNoIGVmZmVjdGl2ZSBVc2VyIElEKHMpXG4tdglOZWdhdGUgdGhlIG1hdGNoXG4teAlNYXRjaCB3aG9sZSBjb21tYW5kIChub3Qgc3Vic3RyaW5nKSIKKworI2RlZmluZSBIRUxQX2lvdG9wICJ1c2FnZTogaW90b3AgWy1BYUtPYnFdIFstbiBOVU1CRVJdIFstZCBTRUNPTkRTXSBbLXAgUElELF0gWy11IFVTRVIsXVxuXG5SYW5rIHByb2Nlc3NlcyBieSBJL08uXG5cbi1BCUFsbCBJL08sIG5vdCBqdXN0IGRpc2tcbi1hCUFjY3VtdWxhdGVkIEkvTyAobm90IHBlcmNlbnRhZ2UpXG4tSAlTaG93IHRocmVhZHNcbi1LCUtpbG9ieXRlc1xuLWsJRmFsbGJhY2sgc29ydCBGSUVMRFMgKGRlZmF1bHQgLVtEXUlPLC1FVElNRSwtUElEKVxuLW0JTWF4aW11bSBudW1iZXIgb2YgdGFza3MgdG8gc2hvd1xuLU8JT25seSBzaG93IHByb2Nlc3NlcyBkb2luZyBJL09cbi1vCVNob3cgRklFTERTIChkZWZhdWx0IFBJRCxQUixVU0VSLFtEXVJFQUQsW0RdV1JJVEUsU1dBUCxbRF1JTyxDT01NKVxuLXMJU29ydCBieSBmaWVsZCBudW1iZXIgKDAtWCwgZGVmYXVsdCA2KVxuLWIJQmF0Y2ggbW9kZSAobm8gdHR5KVxuLWQJRGVsYXkgU0VDT05EUyBiZXR3ZWVuIGVhY2ggY3ljbGUgKGRlZmF1bHQgMylcbi1uCUV4aXQgYWZ0ZXIgTlVNQkVSIGl0ZXJhdGlvbnNcbi1wCVNob3cgdGhlc2UgUElEc1xuLXUJU2hvdyB0aGVzZSBVU0VSc1xuLXEJUXVpZXQgKG5vIGhlYWRlciBsaW5lcylcblxuQ3Vyc29yIExFRlQvUklHSFQgdG8gY2hhbmdlIHNvcnQsIFVQL0RPV04gbW92ZSBsaXN0LCBzcGFjZSB0byBmb3JjZVxudXBkYXRlLCBSIHRvIHJldmVyc2Ugc29ydCwgUSB0byBleGl0LiIKKworI2RlZmluZSBIRUxQX3RvcCAidXNhZ2U6IHRvcCBbLUhoYnFdIFstayBGSUVMRCxdIFstbyBGSUVMRCxdIFstcyBTT1JUXSBbLW4gTlVNQkVSXSBbLW0gTElORVNdIFstZCBTRUNPTkRTXSBbLXAgUElELF0gWy11IFVTRVIsXVxuXG5TaG93IHByb2Nlc3MgYWN0aXZpdHkgaW4gcmVhbCB0aW1lLlxuXG4tSAlTaG93IHRocmVhZHNcbi1oCVVzYWdlIGdyYXBocyBpbnN0ZWFkIG9mIHRleHRcbi1rCUZhbGxiYWNrIHNvcnQgRklFTERTIChkZWZhdWx0IC1TLC0lQ1BVLC1FVElNRSwtUElEKVxuLW8JU2hvdyBGSUVMRFMgKGRlZiBQSUQsVVNFUixQUixOSSxWSVJULFJFUyxTSFIsUywlQ1BVLCVNRU0sVElNRSssQ01ETElORSlcbi1PCUFkZCBGSUVMRFMgKHJlcGxhY2luZyBQUixOSSxWSVJULFJFUyxTSFIsUyBmcm9tIGRlZmF1bHQpXG4tcwlTb3J0IGJ5IGZpZWxkIG51bWJlciAoMS1YLCBkZWZhdWx0IDkpXG4tYglCYXRjaCBtb2RlIChubyB0dHkpXG4tZAlEZWxheSBTRUNPTkRTIGJldHdlZW4gZWFjaCBjeWNsZSAoZGVmYXVsdCAzKVxuLW0JTWF4aW11bSBudW1iZXIgb2YgdGFza3MgdG8gc2hvd1xuLW4JRXhpdCBhZnRlciBOVU1CRVIgaXRlcmF0aW9uc1xuLXAJU2hvdyB0aGVzZSBQSURzXG4tdQlTaG93IHRoZXNlIFVTRVJzXG4tcQlRdWlldCAobm8gaGVhZGVyIGxpbmVzKVxuXG5DdXJzb3IgVVAvRE9XTiBvciBMRUZUL1JJR0hUIHRvIG1vdmUgbGlzdCwgU0hJRlQgTEVGVC9SSUdIVCB0byBjaGFuZ2Ugc29ydCxcbnNwYWNlIHRvIGZvcmNlIHVwZGF0ZSwgUiB0byByZXZlcnNlIHNvcnQsIFEgdG8gZXhpdC4iCisKKyNkZWZpbmUgSEVMUF9wcyAidXNhZ2U6IHBzIFstQWFkZWZMbG53Wl0gWy1nRyBHUk9VUCxdIFstayBGSUVMRCxdIFstbyBGSUVMRCxdIFstcCBQSUQsXSBbLXQgVFRZLF0gWy11VSBVU0VSLF1cblxuTGlzdCBwcm9jZXNzZXMuXG5cbldoaWNoIHByb2Nlc3NlcyB0byBzaG93ICgtZ0d1VXBQdCBzZWxlY3Rpb25zIG1heSBiZSBjb21tYSBzZXBhcmF0ZWQgbGlzdHMpOlxuXG4tQSAgQWxsCQkJCQktYSAgSGFzIHRlcm1pbmFsIG5vdCBzZXNzaW9uIGxlYWRlclxuLWQgIEFsbCBidXQgc2Vzc2lvbiBsZWFkZXJzCQktZSAgU3lub255bSBmb3IgLUFcbi1nICBJbiBHUk9VUHMJCQkJLUcgIEluIHJlYWwgR1JPVVBzIChiZWZvcmUgc2dpZClcbi1wICBQSURzICgtLXBpZCkJCQktUCAgUGFyZW50IFBJRHMgKC0tcHBpZClcbi1zICBJbiBzZXNzaW9uIElEcwkJCS10ICBBdHRhY2hlZCB0byBzZWxlY3RlZCBUVFlzXG4tVCAgU2hvdyB0aHJlYWRzIGFsc28JCQktdSAgT3duZWQgYnkgc2VsZWN0ZWQgVVNFUnNcbi1VICBSZWFsIFVTRVJzIChiZWZvcmUgc3VpZClcblxuT3V0cHV0IG1vZGlmaWVyczpcblxuLWsgIFNvcnQgRklFTERzICgtRklFTEQgdG8gcmV2ZXJzZSkJLU0gIE1lYXN1cmUvcGFkIGZ1dHVyZSBmaWVsZCB3aWR0aHNcbi1uICBTaG93IG51bWVyaWMgVVNFUiBhbmQgR1JPVVAJCS13ICBXaWRlIG91dHB1dCAoZG9uJ3QgdHJ1bmNhdGUgZmllbGRzKVxuXG5XaGljaCBGSUVMRHMgdG8gc2hvdy4gKC1vIEhFTFAgZm9yIGxpc3QsIGRlZmF1bHQgPSAtbyBQSUQsVFRZLFRJTUUsQ01EKVxuXG4tZiAgRnVsbCBsaXN0aW5nICgtbyBVU0VSOjEyPVVJRCxQSUQsUFBJRCxDLFNUSU1FLFRUWSxUSU1FLEFSR1M9Q01EKVxuLWwgIExvbmcgbGlzdGluZyAoLW8gRixTLFVJRCxQSUQsUFBJRCxDLFBSSSxOSSxBRERSLFNaLFdDSEFOLFRUWSxUSU1FLENNRClcbi1vICBPdXRwdXQgRklFTERzIGluc3RlYWQgb2YgZGVmYXVsdHMsIGVhY2ggd2l0aCBvcHRpb25hbCA6c2l6ZSBhbmQgPXRpdGxlXG4tTyAgQWRkIEZJRUxEUyB0byBkZWZhdWx0c1xuLVogIEluY2x1ZGUgTEFCRUwiCisKKyNkZWZpbmUgSEVMUF9wcmludGYgInVzYWdlOiBwcmludGYgRk9STUFUIFtBUkdVTUVOVC4uLl1cblxuRm9ybWF0IGFuZCBwcmludCBBUkdVTUVOVChzKSBhY2NvcmRpbmcgdG8gRk9STUFULCB1c2luZyBDIHByaW50ZiBzeW50YXhcbiglIGVzY2FwZXMgZm9yIGNkZUVmZ0dpb3N1eFgsIFxcIGVzY2FwZXMgZm9yIGFiZWZucnR2MCBvciBcXE9DVEFMIG9yIFxceEhFWCkuIgorCisjZGVmaW5lIEhFTFBfcGF0Y2ggInVzYWdlOiBwYXRjaCBbLVJsc3V2XSBbLWQgRElSXSBbLWkgRklMRV0gWy1wIERFUFRIXSBbLUYgRlVaWl0gWy0tZHJ5LXJ1bl0gW0ZJTEUgW1BBVENIXV1cblxuQXBwbHkgYSB1bmlmaWVkIGRpZmYgdG8gb25lIG9yIG1vcmUgZmlsZXMuXG5cbi1kCU1vZGlmeSBmaWxlcyBpbiBESVJcbi1GCUZ1enogZmFjdG9yIChudW1iZXIgb2Ygbm9uLW1hdGNoaW5nIGNvbnRleHQgbGluZXMgYWxsb3dlZCBwZXIgaHVuaylcbi1pCUlucHV0IHBhdGNoIGZyb20gRklMRSAoZGVmYXVsdD1zdGRpbilcbi1sCUxvb3NlIG1hdGNoIChpZ25vcmUgd2hpdGVzcGFjZSlcbi1wCU51bWJlciBvZiAnLycgdG8gc3RyaXAgZnJvbSBzdGFydCBvZiBmaWxlIHBhdGhzIChkZWZhdWx0PWFsbClcbi1SCVJldmVyc2UgcGF0Y2hcbi1zCVNpbGVudCBleGNlcHQgZm9yIGVycm9yc1xuLXYJVmVyYm9zZSAoLXZ2IHRvIHNlZSBkZWNpc2lvbnMpXG4tLWRyeS1ydW4gRG9uJ3QgY2hhbmdlIGZpbGVzLCBqdXN0IGNvbmZpcm0gcGF0Y2ggYXBwbGllc1xuXG5Pbmx5IGhhbmRsZXMgXCJ1bmlmaWVkXCIgZGlmZiBmb3JtYXQgKC11IGlzIGFzc3VtZWQgYW5kIGlnbm9yZWQpLiBPbmx5XG5tb2RpZmllcyBmaWxlcyB3aGVuIGFsbCBodW5rcyB0byB0aGF0IGZpbGUgYXBwbHkuIFByaW50cyBmYWlsZWQgaHVua3NcbnRvIHN0ZGVyciwgYW5kIGV4aXRzIHdpdGggbm9uemVybyBzdGF0dXMgaWYgYW55IGh1bmtzIGZhaWwuXG5cbkZpbGVzIGNvbXBhcmVkIGFnYWluc3QgL2Rldi9udWxsIChvciB3aXRoIGEgZGF0ZSA8PSB0aGUgdW5peCBlcG9jaCkgYXJlXG5jcmVhdGVkL2RlbGV0ZWQgYXMgYXBwcm9wcmlhdGUuIERlZmF1bHQgLUYgdmFsdWUgaXMgdGhlIG51bWJlciBvZlxubGVhZGluZy90cmFpbGluZyBjb250ZXh0IGxpbmVzIG1pbnVzIG9uZSAodXN1YWxseSAyKS4iCisKKyNkZWZpbmUgSEVMUF9wYXN0ZSAidXNhZ2U6IHBhc3RlIFstc10gWy1kIERFTElNSVRFUlNdIFtGSUxFLi4uXVxuXG5NZXJnZSBjb3JyZXNwb25kaW5nIGxpbmVzIGZyb20gZWFjaCBpbnB1dCBmaWxlLlxuXG4tZAlMaXN0IG9mIGRlbGltaXRlciBjaGFyYWN0ZXJzIHRvIHNlcGFyYXRlIGZpZWxkcyB3aXRoIChkZWZhdWx0IGlzIFxcdClcbi1zCVNlcXVlbnRpYWwgbW9kZTogdHVybiBlYWNoIGlucHV0IGZpbGUgaW50byBvbmUgbGluZSBvZiBvdXRwdXQiCisKKyNkZWZpbmUgSEVMUF9vZCAidXNhZ2U6IG9kIFstYmNkb3N4dl0gWy1qICNdIFstTiAjXSBbLXcgI10gWy1BIGRveG5dIFstdCBhY2Rmb3V4WyNdXVxuXG5EdW1wIGRhdGEgaW4gb2N0YWwvaGV4LlxuXG4tQQlBZGRyZXNzIGJhc2UgKGRlY2ltYWwsIG9jdGFsLCBoZXhhZGVjaW1hbCwgbm9uZSlcbi1qCVNraXAgdGhpcyBtYW55IGJ5dGVzIG9mIGlucHV0XG4tTglTdG9wIGR1bXBpbmcgYWZ0ZXIgdGhpcyBtYW55IGJ5dGVzXG4tdAlPdXRwdXQgdHlwZSBhKHNjaWkpIGMoaGFyKSBkKGVjaW1hbCkgZihsb2F0KSBvKGN0YWwpIHUobnNpZ25lZCkgKGhlKXhcbglwbHVzIG9wdGlvbmFsIHNpemUgaW4gYnl0ZXNcbglhbGlhc2VzOiAtYj0tdCBvMSwgLWM9LXQgYywgLWQ9LXQgdTIsIC1vPS10IG8yLCAtcz0tdCBkMiwgLXg9LXQgeDJcbi12CURvbid0IGNvbGxhcHNlIHJlcGVhdGVkIGxpbmVzIHRvZ2V0aGVyXG4tdwlUb3RhbCBsaW5lIHdpZHRoIGluIGJ5dGVzIChkZWZhdWx0IDE2KSIKKworI2RlZmluZSBIRUxQX25vaHVwICJ1c2FnZTogbm9odXAgQ09NTUFORC4uLlxuXG5SdW4gYSBjb21tYW5kIHRoYXQgc3Vydml2ZXMgdGhlIGVuZCBvZiBpdHMgdGVybWluYWwuXG5cblJlZGlyZWN0IHR0eSBvbiBzdGRpbiB0byAvZGV2L251bGwsIHR0eSBvbiBzdGRvdXQgdG8gXCJub2h1cC5vdXRcIi4iCisKKyNkZWZpbmUgSEVMUF9ubCAidXNhZ2U6IG5sIFstRV0gWy1sICNdIFstYiBNT0RFXSBbLW4gU1RZTEVdIFstcyBTRVBBUkFUT1JdIFstdiAjXSBbLXcgV0lEVEhdIFtGSUxFLi4uXVxuXG5OdW1iZXIgbGluZXMgb2YgaW5wdXQuXG5cbi1FCVVzZSBleHRlbmRlZCByZWdleCBzeW50YXggKHdoZW4gZG9pbmcgLWIgcFJFR0VYKVxuLWIJV2hpY2ggbGluZXMgdG8gbnVtYmVyOiBhIChhbGwpIHQgKG5vbi1lbXB0eSwgZGVmYXVsdCkgcFJFR0VYIChwYXR0ZXJuKVxuLWwJT25seSBjb3VudCBsYXN0IG9mIHRoaXMgbWFueSBjb25zZWN1dGl2ZSBibGFuayBsaW5lc1xuLW4JTnVtYmVyIFNUWUxFOiBsbiAobGVmdCBqdXN0aWZpZWQpIHJuIChyaWdodCBqdXN0aWZpZWQpIHJ6ICh6ZXJvIHBhZClcbi1zCVNlcGFyYXRvciB0byB1c2UgYmV0d2VlbiBudW1iZXIgYW5kIGxpbmUgKGluc3RlYWQgb2YgVEFCKVxuLXYJU3RhcnRpbmcgbGluZSBudW1iZXIgZm9yIGVhY2ggc2VjdGlvbiAoZGVmYXVsdCAxKVxuLXcJV2lkdGggb2YgbGluZSBudW1iZXJzIChkZWZhdWx0IDYpIgorCisjZGVmaW5lIEhFTFBfbmljZSAidXNhZ2U6IG5pY2UgWy1uIFBSSU9SSVRZXSBDT01NQU5ELi4uXG5cblJ1biBhIGNvbW1hbmQgbGluZSBhdCBhbiBpbmNyZWFzZWQgb3IgZGVjcmVhc2VkIHNjaGVkdWxpbmcgcHJpb3JpdHkuXG5cbkhpZ2hlciBudW1iZXJzIG1ha2UgYSBwcm9ncmFtIHlpZWxkIG1vcmUgQ1BVIHRpbWUsIGZyb20gLTIwIChoaWdoZXN0XG5wcmlvcml0eSkgdG8gMTkgKGxvd2VzdCkuICBCeSBkZWZhdWx0IHByb2Nlc3NlcyBpbmhlcml0IHRoZWlyIHBhcmVudCdzXG5uaWNlbmVzcyAodXN1YWxseSAwKS4gIEJ5IGRlZmF1bHQgdGhpcyBjb21tYW5kIGFkZHMgMTAgdG8gdGhlIHBhcmVudCdzXG5wcmlvcml0eS4gIE9ubHkgcm9vdCBjYW4gc2V0IGEgbmVnYXRpdmUgbmljZW5lc3MgbGV2ZWwuXG5cbi1uCUFkZCBnaXZlbiBhZGp1c3RtZW50IHRvIHByaW9yaXR5IChkZWZhdWx0IDEwKSIKKworI2RlZmluZSBIRUxQX21rZmlmb196ICJ1c2FnZTogbWtmaWZvIFstWiBDT05URVhUXVxuXG4tWglTZWN1cml0eSBjb250ZXh0IgorCisjZGVmaW5lIEhFTFBfbWtmaWZvICJ1c2FnZTogbWtmaWZvIFtOQU1FLi4uXVxuXG5DcmVhdGUgRklGT3MgKG5hbWVkIHBpcGVzKS4iCisKKyNkZWZpbmUgSEVMUF9ta2Rpcl96ICJ1c2FnZTogWy1aIGNvbnRleHRdXG5cbi1aCVNldCBzZWN1cml0eSBjb250ZXh0IgorCisjZGVmaW5lIEhFTFBfbWtkaXIgInVzYWdlOiBta2RpciBbLXZwXSBbLW0gTU9ERV0gW0RJUi4uLl1cblxuQ3JlYXRlIG9uZSBvciBtb3JlIGRpcmVjdG9yaWVzLlxuXG4tbQlTZXQgcGVybWlzc2lvbnMgb2YgZGlyZWN0b3J5IHRvIG1vZGVcbi1wCU1ha2UgcGFyZW50IGRpcmVjdG9yaWVzIGFzIG5lZWRlZFxuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX2xzICJ1c2FnZTogbHMgWy0xQUNGSExOUlNVWFphYmNkZmdoaWxtbm9wcXJzdHV3eF0gWy0tY29sb3JbPWF1dG9dXSBbRklMRS4uLl1cblxuTGlzdCBmaWxlc1xuXG53aGF0IHRvIHNob3c6XG4tQSAgYWxsIGZpbGVzIGV4Y2VwdCAuIGFuZCAuLiAgICAgIC1hICBhbGwgZmlsZXMgaW5jbHVkaW5nIC5oaWRkZW5cbi1iICBlc2NhcGUgbm9uZ3JhcGhpYyBjaGFycyAgICAgICAgLWQgIGRpcmVjdG9yeSwgbm90IGNvbnRlbnRzXG4tRiAgYXBwZW5kIC9kaXIgKmV4ZSBAc3ltIHxGSUZPICAgIC1mICBmaWxlcyAobm8gc29ydC9maWx0ZXIvZm9ybWF0KVxuLUggIGZvbGxvdyBjb21tYW5kIGxpbmUgc3ltbGlua3MgICAtaSAgaW5vZGUgbnVtYmVyXG4tTCAgZm9sbG93IHN5bWxpbmtzICAgICAgICAgICAgICAgIC1OICBubyBlc2NhcGluZywgZXZlbiBvbiB0dHlcbi1wICBwdXQgJy8nIGFmdGVyIGRpciBuYW1lcyAgICAgICAgLXEgIHVucHJpbnRhYmxlIGNoYXJzIGFzICc/J1xuLVIgIHJlY3Vyc2l2ZWx5IGxpc3QgaW4gc3ViZGlycyAgICAtcyAgc3RvcmFnZSB1c2VkIChpbiAtLWJsb2NrLXNpemUpXG4tWiAgc2VjdXJpdHkgY29udGV4dFxuXG5vdXRwdXQgZm9ybWF0czpcbi0xICBsaXN0IG9uZSBmaWxlIHBlciBsaW5lICAgICAgICAgLUMgIGNvbHVtbnMgKHNvcnRlZCB2ZXJ0aWNhbGx5KVxuLWcgIGxpa2UgLWwgYnV0IG5vIG93bmVyICAgICAgICAgICAtaCAgaHVtYW4gcmVhZGFibGUgc2l6ZXNcbi1rICByZXNldCAtLWJsb2NrLXNpemUgdG8gZGVmYXVsdCAgLWwgIGxvbmcgKHNob3cgZnVsbCBkZXRhaWxzKVxuLW0gIGNvbW1hIHNlcGFyYXRlZCAgICAgICAgICAgICAgICAtbGwgbG9uZyB3aXRoIG5hbm9zZWNvbmRzICgtLWZ1bGwtdGltZSlcbi1uICBsb25nIHdpdGggbnVtZXJpYyB1aWQvZ2lkICAgICAgLW8gIGxvbmcgd2l0aG91dCBncm91cCBjb2x1bW5cbi1yICByZXZlcnNlIG9yZGVyICAgICAgICAgICAgICAgICAgLXcgIHNldCBjb2x1bW4gd2lkdGhcbi14ICBjb2x1bW5zIChob3Jpem9udGFsIHNvcnQpXG5cbnNvcnQgYnk6ICAoYWxzbyAtLXNvcnQ9bG9uZ25hbWUsbG9uZ25hbWUuLi4gZW5kcyB3aXRoIGFscGhhYmV0aWNhbClcbi1jICBjdGltZSAgICAgIC1yICByZXZlcnNlICAgIC1TICBzaXplICAgICAtdCAgdGltZSAgICAtdSAgYXRpbWUgICAgLVUgIG5vbmVcbi1YICBleHRlbnNpb24gIC0hICBkaXJmaXJzdCAgIC1+ICBub2Nhc2VcblxuLS1ibG9jay1zaXplIE4JYmxvY2sgc2l6ZSAoZGVmYXVsdCAxMDI0LCAtayByZXNldHMgdG8gMTAyNClcbi0tY29sb3IgID1hbHdheXMgKGRlZmF1bHQpICA9YXV0byAod2hlbiBzdGRvdXQgaXMgdHR5KSA9bmV2ZXJcbiAgICBleGU9Z3JlZW4gIHN1aWQ9cmVkICBzdWlkZmlsZT1yZWRiYWNrICBzdGlja3lkaXI9Z3JlZW5iYWNrXG4gICAgZGV2aWNlPXllbGxvdyAgc3ltbGluaz10dXJxdW9pc2UvcmVkICBkaXI9Ymx1ZSAgc29ja2V0PXB1cnBsZVxuXG5Mb25nIG91dHB1dCB1c2VzIC1jdSBmb3IgZGlzcGxheSwgdXNlIC1sdGMvLWx0dSB0byBhbHNvIHNvcnQgYnkgY3RpbWUvYXRpbWUuIgorCisjZGVmaW5lIEhFTFBfbG9nZ2VyICJ1c2FnZTogbG9nZ2VyIFstc10gWy10IFRBR10gWy1wIFtGQUNJTElUWS5dUFJJT1JJVFldIFtNRVNTQUdFLi4uXVxuXG5Mb2cgbWVzc2FnZSAob3Igc3RkaW4pIHRvIHN5c2xvZy5cblxuLXMJQWxzbyB3cml0ZSBtZXNzYWdlIHRvIHN0ZGVyclxuLXQJVXNlIFRBRyBpbnN0ZWFkIG9mIHVzZXJuYW1lIHRvIGlkZW50aWZ5IG1lc3NhZ2Ugc291cmNlXG4tcAlTcGVjaWZ5IFBSSU9SSVRZIHdpdGggb3B0aW9uYWwgRkFDSUxJVFkuIERlZmF1bHQgaXMgXCJ1c2VyLm5vdGljZVwiIgorCisjZGVmaW5lIEhFTFBfbG4gInVzYWdlOiBsbiBbLWZucnNUdl0gWy10IERJUl0gW0ZST00uLi5dIFRPXG5cbkNyZWF0ZSBhIGxpbmsgYmV0d2VlbiBGUk9NIGFuZCBUTy5cbk9uZS90d28vbWFueSBhcmd1bWVudHMgd29yayBsaWtlIFwibXZcIiBvciBcImNwXCIuXG5cbi1mCUZvcmNlIHRoZSBjcmVhdGlvbiBvZiB0aGUgbGluaywgZXZlbiBpZiBUTyBhbHJlYWR5IGV4aXN0c1xuLW4JU3ltbGluayBhdCBUTyB0cmVhdGVkIGFzIGZpbGVcbi1yCUNyZWF0ZSByZWxhdGl2ZSBzeW1saW5rIGZyb20gLT4gdG9cbi1zCUNyZWF0ZSBhIHN5bWJvbGljIGxpbmtcbi10CUNyZWF0ZSBsaW5rcyBpbiBESVJcbi1UCVRPIGFsd2F5cyB0cmVhdGVkIGFzIGZpbGUsIG1heCAyIGFyZ3VtZW50c1xuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX2xpbmsgInVzYWdlOiBsaW5rIEZJTEUgTkVXTElOS1xuXG5DcmVhdGUgaGFyZGxpbmsgdG8gYSBmaWxlLiIKKworI2RlZmluZSBIRUxQX2tpbGxhbGw1ICJ1c2FnZToga2lsbGFsbDUgWy1sIFtTSUdOQUxdXSBbLVNJR05BTHwtcyBTSUdOQUxdIFstbyBQSURdLi4uXG5cblNlbmQgYSBzaWduYWwgdG8gYWxsIHByb2Nlc3NlcyBvdXRzaWRlIGN1cnJlbnQgc2Vzc2lvbi5cblxuLWwJTGlzdCBzaWduYWwgbmFtZShzKSBhbmQgbnVtYmVyKHMpXG4tbyBQSUQJT21pdCBQSURcbi1zCVNlbmQgU0lHTkFMIChkZWZhdWx0IFNJR1RFUk0pIgorCisjZGVmaW5lIEhFTFBfa2lsbCAidXNhZ2U6IGtpbGwgWy1sIFtTSUdOQUxdIHwgLXMgU0lHTkFMIHwgLVNJR05BTF0gUElELi4uXG5cblNlbmQgc2lnbmFsIHRvIHByb2Nlc3MoZXMpLlxuXG4tbAlMaXN0IHNpZ25hbCBuYW1lKHMpIGFuZCBudW1iZXIocylcbi1zCVNlbmQgU0lHTkFMIChkZWZhdWx0IFNJR1RFUk0pIgorCisjZGVmaW5lIEhFTFBfd2hvYW1pICJ1c2FnZTogd2hvYW1pXG5cblByaW50IHRoZSBjdXJyZW50IHVzZXIgbmFtZS4iCisKKyNkZWZpbmUgSEVMUF9sb2duYW1lICJ1c2FnZTogbG9nbmFtZVxuXG5QcmludCB0aGUgY3VycmVudCB1c2VyIG5hbWUuIgorCisjZGVmaW5lIEhFTFBfZ3JvdXBzICJ1c2FnZTogZ3JvdXBzIFt1c2VyXVxuXG5QcmludCB0aGUgZ3JvdXBzIGEgdXNlciBpcyBpbi4iCisKKyNkZWZpbmUgSEVMUF9pZF96ICJ1c2FnZTogaWQgWy1aXVxuXG4tWglTaG93IG9ubHkgc2VjdXJpdHkgY29udGV4dCIKKworI2RlZmluZSBIRUxQX2lkICJ1c2FnZTogaWQgWy1HZ25ydV0gW1VTRVIuLi5dXG5cblByaW50IHVzZXIgYW5kIGdyb3VwIElELlxuXG4tRwlTaG93IGFsbCBncm91cCBJRHNcbi1nCVNob3cgb25seSB0aGUgZWZmZWN0aXZlIGdyb3VwIElEXG4tbglQcmludCBuYW1lcyBpbnN0ZWFkIG9mIG51bWVyaWMgSURzICh0byBiZSB1c2VkIHdpdGggLUdndSlcbi1yCVNob3cgcmVhbCBJRCBpbnN0ZWFkIG9mIGVmZmVjdGl2ZSBJRFxuLXUJU2hvdyBvbmx5IHRoZSBlZmZlY3RpdmUgdXNlciBJRCIKKworI2RlZmluZSBIRUxQX2ljb252ICJ1c2FnZTogaWNvbnYgWy1mIEZST01dIFstdCBUT10gW0ZJTEUuLi5dXG5cbkNvbnZlcnQgY2hhcmFjdGVyIGVuY29kaW5nIG9mIGZpbGVzLlxuXG4tYwlPbWl0IGludmFsaWQgY2hhcnNcbi1mCUNvbnZlcnQgZnJvbSAoZGVmYXVsdCBVVEYtOClcbi10CUNvbnZlcnQgdG8gICAoZGVmYXVsdCBVVEYtOCkiCisKKyNkZWZpbmUgSEVMUF9oZWFkICJ1c2FnZTogaGVhZCBbLWNuIE5VTV0gWy1xdl0gW0ZJTEUuLi5dXG5cbkNvcHkgZmlyc3QgbGluZXMgZnJvbSBmaWxlcyB0byBzdGRvdXQuIElmIG5vIGZpbGVzIGxpc3RlZCwgY29weSBmcm9tXG5zdGRpbi4gRmlsZW5hbWUgXCItXCIgaXMgYSBzeW5vbnltIGZvciBzdGRpbi5cblxuLW4JTnVtYmVyIG9mIGxpbmVzIHRvIGNvcHlcbi1jCU51bWJlciBvZiBieXRlcyB0byBjb3B5XG4tcQlOZXZlciBwcmludCBoZWFkZXJzXG4tdglBbHdheXMgcHJpbnQgaGVhZGVycyIKKworI2RlZmluZSBIRUxQX2dyZXAgInVzYWdlOiBncmVwIFstYWJjRUZIaElpTGxub3Fyc3Z3eFp6XSBbLUFCQyBOVU1dIFstbSBNQVhdIFstZSBSRUdFWF0uLi4gWy1NUyBQQVRURVJOXS4uLiBbLWYgUkVHRklMRV0uLi4gW0ZJTEVdLi4uXG5cblNob3cgbGluZXMgbWF0Y2hpbmcgcmVndWxhciBleHByZXNzaW9ucy4gSWYgbm8gLWUsIGZpcnN0IGFyZ3VtZW50IGlzXG5yZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2guIFdpdGggbm8gZmlsZXMgKG9yIFwiLVwiIGZpbGVuYW1lKSByZWFkIHN0ZGluLlxuUmV0dXJucyAwIGlmIG1hdGNoZWQsIDEgaWYgbm8gbWF0Y2ggZm91bmQsIDIgZm9yIGNvbW1hbmQgZXJyb3JzLlxuXG4tZSAgUmVnZXgoZXMpIHRvIG1hdGNoLiAgICAgICAtZiAgRmlsZShzKSBvZiByZWdleGVzIHRvIG1hdGNoICgxIHBlciBsaW5lKS5cblxuZmlsZSBzZWFyY2g6XG4tciAgUmVjdXJzZSBpbnRvIHN1YmRpcnMgICAgIC1SICBSZWN1cnNlIGZvbGxvd2luZyBzeW1saW5rc1xuLU0gIE1hdGNoIGZpbGVzICgtLWluY2x1ZGUpICAtUyAgU2tpcCBmaWxlcyAoLS1leGNsdWRlKVxuLUkgIElnbm9yZSBiaW5hcnkgZmlsZXMgICAgICAtLWV4Y2x1ZGUtZGlyPVBBVFRFUk4gIFNraXAgZGlyZWN0b3JpZXNcblxubWF0Y2ggdHlwZTpcbi1BICBTaG93IE5VTSBsaW5lcyBhZnRlciAgICAgLUIgIFNob3cgTlVNIGxpbmVzIGJlZm9yZSBtYXRjaFxuLUMgIE5VTSBsaW5lcyBjb250ZXh0IChBK0IpICAtRSAgZXh0ZW5kZWQgcmVnZXggc3ludGF4XG4tRiAgZml4ZWQgKGxpdGVyYWwgbWF0Y2gpICAgIC1hICBhbHdheXMgdGV4dCAobm90IGJpbmFyeSlcbi1pICBjYXNlIGluc2Vuc2l0aXZlICAgICAgICAgLW0gIG1hdGNoIE1BWCBtYW55IGxpbmVzXG4tdiAgaW52ZXJ0IG1hdGNoICAgICAgICAgICAgIC13ICB3aG9sZSB3b3JkIChpbXBsaWVzIC1FKVxuLXggIHdob2xlIGxpbmUgICAgICAgICAgICAgICAteiAgaW5wdXQgTlVMIHRlcm1pbmF0ZWRcblxuZGlzcGxheSBtb2RlczogKGRlZmF1bHQ6IG1hdGNoZWQgbGluZSlcbi1MICBmaWxlbmFtZXMgd2l0aCBubyBtYXRjaCAgLVogIG91dHB1dCBpcyBOVUwgdGVybWluYXRlZFxuLWMgIGNvdW50IG9mIG1hdGNoaW5nIGxpbmVzICAtbCAgZmlsZW5hbWVzIHdpdGggYSBtYXRjaFxuLW8gIG9ubHkgbWF0Y2hpbmcgcGFydCAgICAgICAtcSAgcXVpZXQgKGVycm9ycyBvbmx5KVxuLXMgIHNpbGVudCAobm8gZXJyb3IgbXNnKVxuXG5vdXRwdXQgcHJlZml4IChkZWZhdWx0OiBmaWxlbmFtZSBpZiBjaGVja2luZyBtb3JlIHRoYW4gMSBmaWxlKVxuLUggIGZvcmNlIGZpbGVuYW1lICAgICAgICAgICAtYiAgYnl0ZSBvZmZzZXQgb2YgbWF0Y2hcbi1oICBoaWRlIGZpbGVuYW1lICAgICAgICAgICAgLW4gIGxpbmUgbnVtYmVyIG9mIG1hdGNoIgorCisjZGVmaW5lIEhFTFBfZ2V0Y29uZiAidXNhZ2U6IGdldGNvbmYgLWEgW1BBVEhdIHwgLWwgfCBOQU1FIFtQQVRIXVxuXG5HZXQgc3lzdGVtIGNvbmZpZ3VyYXRpb24gdmFsdWVzLiBWYWx1ZXMgZnJvbSBwYXRoY29uZigzKSByZXF1aXJlIGEgcGF0aC5cblxuLWEJU2hvdyBhbGwgKGRlZmF1bHRzIHRvIFwiL1wiIGlmIG5vIHBhdGggZ2l2ZW4pXG4tbAlMaXN0IGF2YWlsYWJsZSB2YWx1ZSBuYW1lcyAoZ3JvdXBlZCBieSBzb3VyY2UpIgorCisjZGVmaW5lIEhFTFBfZm9sZCAidXNhZ2U6IGZvbGQgWy1ic10gWy13IFdJRFRIXSBbRklMRS4uLl1cblxuQnJlYWsgbG9uZyBsaW5lcyBieSBpbnNlcnRpbmcgbmV3bGluZXMuXG5cbi1iCUNvdW50IGJ5dGVzIGluc3RlYWQgb2YgdXRmLTggdW5pY29kZSBjb2x1bW5zXG4tcwlXcmFwIGF0IHdoaXRlc3BhY2Ugd2hlbiBwb3NzaWJsZVxuLXcJQnJlYWsgYXQgV0lEVEggY29sdW1ucyAoZGVmYXVsdCA4MCkiCisKKyNkZWZpbmUgSEVMUF9maW5kICJ1c2FnZTogZmluZCBbLUhMXSBbRElSLi4uXSBbPG9wdGlvbnM+XVxuXG5TZWFyY2ggZGlyZWN0b3JpZXMgZm9yIG1hdGNoaW5nIGZpbGVzLlxuRGVmYXVsdDogc2VhcmNoIFwiLlwiLCBtYXRjaCBhbGwsIC1wcmludCBtYXRjaGVzLlxuXG4tSCAgRm9sbG93IGNvbW1hbmQgbGluZSBzeW1saW5rcyAgICAgICAgIC1MICBGb2xsb3cgYWxsIHN5bWxpbmtzXG5cbk1hdGNoIGZpbHRlcnM6XG4tbmFtZSAgUEFUVEVSTiAgIGZpbGVuYW1lIHdpdGggd2lsZGNhcmRzICAgLWluYW1lICAgICAgaWdub3JlIGNhc2UgLW5hbWVcbi1wYXRoICBQQVRURVJOICAgcGF0aCBuYW1lIHdpdGggd2lsZGNhcmRzICAtaXBhdGggICAgICBpZ25vcmUgY2FzZSAtcGF0aFxuLXVzZXIgIFVOQU1FICAgICBiZWxvbmdzIHRvIHVzZXIgVU5BTUUgICAgIC1ub3VzZXIgICAgIHVzZXIgSUQgbm90IGtub3duXG4tZ3JvdXAgR1JPVVAgICAgIGJlbG9uZ3MgdG8gZ3JvdXAgR1JPVVAgICAgLW5vZ3JvdXAgICAgZ3JvdXAgSUQgbm90IGtub3duXG4tcGVybSAgWy0vXU1PREUgIHBlcm1pc3Npb25zICgtPW1pbiAvPWFueSkgLXBydW5lICAgICAgaWdub3JlIGRpciBjb250ZW50c1xuLXNpemUgIE5bY10gICAgICA1MTIgYnl0ZSBibG9ja3MgKGM9Ynl0ZXMpIC14ZGV2ICAgICAgIG9ubHkgdGhpcyBmaWxlc3lzdGVtXG4tbGlua3MgTiAgICAgICAgIGhhcmRsaW5rIGNvdW50ICAgICAgICAgICAgLWVtcHR5ICAgICAgZW1wdHkgZmlsZXMgYW5kIGRpcnNcbi1hdGltZSBOW3VdICAgICAgYWNjZXNzZWQgTiB1bml0cyBhZ28gICAgICAtdHJ1ZSAgICAgICBhbHdheXMgdHJ1ZVxuLWN0aW1lIE5bdV0gICAgICBjcmVhdGVkIE4gdW5pdHMgYWdvICAgICAgIC1mYWxzZSAgICAgIGFsd2F5cyBmYWxzZVxuLW10aW1lIE5bdV0gICAgICBtb2RpZmllZCBOIHVuaXRzIGFnbyAgICAgIC1leGVjdXRhYmxlIGFjY2VzcyhYX09LKSBwZXJtK0FDTFxuLWludW0gIE4gICAgICAgICBpbm9kZSBudW1iZXIgTiAgICAgICAgICAgIC1yZWFkYWJsZSAgIGFjY2VzcyhSX09LKSBwZXJtK0FDTFxuLWNvbnRleHQgUEFUVEVSTiBzZWN1cml0eSBjb250ZXh0ICAgICAgICAgIC1kZXB0aCAgICAgIGNvbnRlbnRzIGJlZm9yZSBkaXJcbi1zYW1lZmlsZSBGSUxFICAgaGFyZGxpbmsgdG8gRklMRSAgICAgICAgICAtbWF4ZGVwdGggTiBhdCBtb3N0IE4gZGlycyBkb3duXG4tbmV3ZXIgICAgRklMRSAgIG5ld2VyIG10aW1lIHRoYW4gRklMRSAgICAgLW1pbmRlcHRoIE4gYXQgbGVhc3QgTiBkaXJzIGRvd25cbi1uZXdlclhZICBGSUxFICAgWD1hY20gdGltZSA+IEZJTEUncyBZPWFjbSB0aW1lIChZPXQ6IEZJTEUgaXMgbGl0ZXJhbCB0aW1lKVxuLXR5cGUgW2JjZGZscHNdICB0eXBlIGlzIChibG9jaywgY2hhciwgZGlyLCBmaWxlLCBzeW1saW5rLCBwaXBlLCBzb2NrZXQpXG5cbk51bWJlcnMgTiBtYXkgYmUgcHJlZml4ZWQgYnkgLSAobGVzcyB0aGFuKSBvciArIChncmVhdGVyIHRoYW4pLiBVbml0cyBmb3Jcbi1bYWNtXXRpbWUgYXJlIGQgKGRheXMsIGRlZmF1bHQpLCBoIChob3VycyksIG0gKG1pbnV0ZXMpLCBvciBzIChzZWNvbmRzKS5cblxuQ29tYmluZSBtYXRjaGVzIHdpdGg6XG4hLCAtYSwgLW8sICggKSAgICBub3QsIGFuZCwgb3IsIGdyb3VwIGV4cHJlc3Npb25zXG5cbkFjdGlvbnM6XG4tcHJpbnQgIFByaW50IG1hdGNoIHdpdGggbmV3bGluZSAgLXByaW50MCAgICAgICAgUHJpbnQgbWF0Y2ggd2l0aCBudWxsXG4tZXhlYyAgIFJ1biBjb21tYW5kIHdpdGggcGF0aCAgICAgLWV4ZWNkaXIgICAgICAgUnVuIGNvbW1hbmQgaW4gZmlsZSdzIGRpclxuLW9rICAgICBBc2sgYmVmb3JlIGV4ZWMgICAgICAgICAgIC1va2RpciAgICAgICAgIEFzayBiZWZvcmUgZXhlY2RpclxuLWRlbGV0ZSBSZW1vdmUgbWF0Y2hpbmcgZmlsZS9kaXIgIC1wcmludGYgRk9STUFUIFByaW50IHVzaW5nIGZvcm1hdCBzdHJpbmdcbi1xdWl0ICAgRXhpdCBpbW1lZGlhdGVseVxuXG5Db21tYW5kcyBzdWJzdGl0dXRlIFwie31cIiB3aXRoIG1hdGNoZWQgZmlsZS4gRW5kIHdpdGggXCI7XCIgdG8gcnVuIGVhY2ggZmlsZSxcbm9yIFwiK1wiIChuZXh0IGFyZ3VtZW50IGFmdGVyIFwie31cIikgdG8gY29sbGVjdCBhbmQgcnVuIHdpdGggbXVsdGlwbGUgZmlsZXMuXG5cbi1wcmludGYgRk9STUFUIGNoYXJhY3RlcnMgYXJlIFxcIGVzY2FwZXMgYW5kOlxuJWIgIDUxMiBieXRlIGJsb2NrcyB1c2VkXG4lZiAgYmFzZW5hbWUgICAgICAgICAgICAlZyAgdGV4dHVhbCBnaWQgICAgICAgICAgJUcgIG51bWVyaWMgZ2lkXG4laSAgZGVjaW1hbCBpbm9kZSAgICAgICAlbCAgdGFyZ2V0IG9mIHN5bWxpbmsgICAgJW0gIG9jdGFsIG1vZGVcbiVNICBscyBmb3JtYXQgdHlwZS9tb2RlICVwICBwYXRoIHRvIGZpbGUgICAgICAgICAlUCAgcGF0aCB0byBmaWxlIG1pbnVzIERJUlxuJXMgIHNpemUgaW4gYnl0ZXMgICAgICAgJVRAIG1vZCB0aW1lIGFzIHVuaXh0aW1lXG4ldSAgdXNlcm5hbWUgICAgICAgICAgICAlVSAgbnVtZXJpYyB1aWQgICAgICAgICAgJVogIHNlY3VyaXR5IGNvbnRleHQiCisKKyNkZWZpbmUgSEVMUF9maWxlICJ1c2FnZTogZmlsZSBbLWJoTHNdIFtGSUxFLi4uXVxuXG5FeGFtaW5lIHRoZSBnaXZlbiBmaWxlcyBhbmQgZGVzY3JpYmUgdGhlaXIgY29udGVudCB0eXBlcy5cblxuLWIJQnJpZWYgKG5vIGZpbGVuYW1lKVxuLWgJRG9uJ3QgZm9sbG93IHN5bWxpbmtzIChkZWZhdWx0KVxuLUwJRm9sbG93IHN5bWxpbmtzXG4tcwlTaG93IGJsb2NrL2NoYXIgZGV2aWNlIGNvbnRlbnRzIgorCisjZGVmaW5lIEhFTFBfZmFsc2UgInVzYWdlOiBmYWxzZVxuXG5SZXR1cm4gbm9uemVyby4iCisKKyNkZWZpbmUgSEVMUF9leHBhbmQgInVzYWdlOiBleHBhbmQgWy10IFRBQkxJU1RdIFtGSUxFLi4uXVxuXG5FeHBhbmQgdGFicyB0byBzcGFjZXMgYWNjb3JkaW5nIHRvIHRhYnN0b3BzLlxuXG4tdAlUQUJMSVNUXG5cblNwZWNpZnkgdGFiIHN0b3BzLCBlaXRoZXIgYSBzaW5nbGUgbnVtYmVyIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgOCxcbm9yIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaW5jcmVhc2luZyBudW1iZXJzIHJlcHJlc2VudGluZyB0YWJzdG9wXG5wb3NpdGlvbnMgKGFic29sdXRlLCBub3QgaW5jcmVtZW50cykgd2l0aCBlYWNoIGFkZGl0aW9uYWwgdGFiIGJleW9uZFxudGhhdCBiZWNvbWluZyBvbmUgc3BhY2UuIgorCisjZGVmaW5lIEhFTFBfZW52ICJ1c2FnZTogZW52IFstMGldIFstZSBGSUxFXSBbLXUgTkFNRV0gW05BTUU9VkFMVUUuLi5dIFtDT01NQU5ELi4uXVxuXG5TZXQgdGhlIGVudmlyb25tZW50IGZvciBjb21tYW5kIGludm9jYXRpb24sIG9yIGxpc3QgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuXG4tZQlFeGVjdXRlIEZJTEUgaW5zdGVhZCBvZiBhcmd2WzBdIGluIENPTU1BTkQgbGlzdFxuLWkJQ2xlYXIgZXhpc3RpbmcgZW52aXJvbm1lbnRcbi11IE5BTUUJUmVtb3ZlIE5BTUUgZnJvbSB0aGUgZW52aXJvbm1lbnRcbi0wCVVzZSBudWxsIGluc3RlYWQgb2YgbmV3bGluZSBpbiBvdXRwdXQiCisKKyNkZWZpbmUgSEVMUF9lY2hvICJ1c2FnZTogZWNobyBbLUVlbl0gW0FSRy4uLl1cblxuV3JpdGUgZWFjaCBhcmd1bWVudCB0byBzdGRvdXQsIG9uZSBzcGFjZSBiZXR3ZWVuIGVhY2gsIGZvbGxvd2VkIGJ5IGEgbmV3bGluZS5cblxuLUUJUHJpbnQgZXNjYXBlIHNlcXVlbmNlcyBsaXRlcmFsbHkgKGRlZmF1bHQpXG4tZQlQcm9jZXNzIHRoZSBmb2xsb3dpbmcgZXNjYXBlIHNlcXVlbmNlczpcbglcXFxcICBCYWNrc2xhc2gJCVxcME5OTiBPY3RhbCAoMS0zIGRpZ2l0KQlcXHhISCBIZXggKDEtMiBkaWdpdClcbglcXGEgIEFsZXJ0IChiZWVwL2ZsYXNoKQlcXGIgIEJhY2tzcGFjZQkJXFxjICBTdG9wIGhlcmUgKG5vIFxcbilcbglcXGYgIEZvcm0gZmVlZAkJXFxuICBOZXdsaW5lCQlcXHIgIENhcnJpYWdlIHJldHVyblxuCVxcdCAgSG9yaXpvbnRhbCB0YWIJXFx2ICBWZXJ0aWNhbCB0YWJcbi1uCU5vIHRyYWlsaW5nIG5ld2xpbmUiCisKKyNkZWZpbmUgSEVMUF9kdSAidXNhZ2U6IGR1IFstZCBOXSBbLWFiY0hLa0xsbXN4XSBbRklMRS4uLl1cblxuU2hvdyBkaXNrIHVzYWdlLCBzcGFjZSBjb25zdW1lZCBieSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMuXG5cblNpemUgaW46XG4tYglBcHBhcmVudCBieXRlcyAoZGlyZWN0b3J5IGxpc3Rpbmcgc2l6ZSwgbm90IHNwYWNlIHVzZWQpXG4taAlIdW1hbiByZWFkYWJsZSAoZS5nLiwgMUsgMjQzTSAyRylcbi1rCTEwMjQgYnl0ZSBibG9ja3MgKGRlZmF1bHQpXG4tSwk1MTIgYnl0ZSBibG9ja3MgKHBvc2l4KVxuLW0JTWVnYWJ5dGVzXG5cbldoYXQgdG8gc2hvdzpcbi1hCUFsbCBmaWxlcywgbm90IGp1c3QgZGlyZWN0b3JpZXNcbi1jCUN1bXVsYXRpdmUgdG90YWxcbi1kIE4JT25seSBkZXB0aCA8IE5cbi1ICUZvbGxvdyBzeW1saW5rcyBvbiBjbWRsaW5lXG4tTAlGb2xsb3cgYWxsIHN5bWxpbmtzXG4tbAlEaXNhYmxlIGhhcmRsaW5rIGZpbHRlclxuLXMJT25seSB0b3RhbCBzaXplIG9mIGVhY2ggYXJndW1lbnRcbi14CURvbid0IGxlYXZlIHRoaXMgZmlsZXN5c3RlbSIKKworI2RlZmluZSBIRUxQX2Rpcm5hbWUgInVzYWdlOiBkaXJuYW1lIFBBVEguLi5cblxuU2hvdyBkaXJlY3RvcnkgcG9ydGlvbiBvZiBwYXRoLiIKKworI2RlZmluZSBIRUxQX2RmICJ1c2FnZTogZGYgWy1hSGhpa1BdIFstdCBUWVBFXSBbRklMRS4uLl1cblxuVGhlIFwiZGlzayBmcmVlXCIgY29tbWFuZCBzaG93cyB0b3RhbC91c2VkL2F2YWlsYWJsZSBkaXNrIHNwYWNlIGZvclxuZWFjaCBmaWxlc3lzdGVtIGxpc3RlZCBvbiB0aGUgY29tbWFuZCBsaW5lLCBvciBhbGwgY3VycmVudGx5IG1vdW50ZWRcbmZpbGVzeXN0ZW1zLlxuXG4tYQlTaG93IGFsbCAoaW5jbHVkaW5nIC9wcm9jIGFuZCBmcmllbmRzKVxuLUgJSHVtYW4gcmVhZGFibGUgKGs9MTAwMClcbi1oCUh1bWFuIHJlYWRhYmxlIChLPTEwMjQpXG4taQlTaG93IGlub2RlcyBpbnN0ZWFkIG9mIGJsb2Nrc1xuLWsJU2V0cyB1bml0cyBiYWNrIHRvIDEwMjQgYnl0ZXMgKHRoZSBkZWZhdWx0IHdpdGhvdXQgLVApXG4tUAlUaGUgU1VTdjMgXCJQZWRhbnRpY1wiIG9wdGlvbiAoNTEyIGJ5dGUgYmxvY2tzKVxuLXQgVFlQRQlEaXNwbGF5IG9ubHkgZmlsZXN5c3RlbXMgb2YgdGhpcyB0eXBlXG5cblBlZGFudGljIHByb3ZpZGVzIGEgc2xpZ2h0bHkgbGVzcyB1c2VmdWwgb3V0cHV0IGZvcm1hdCBkaWN0YXRlZCBieSBQT1NJWCxcbmFuZCBzZXRzIHRoZSB1bml0cyB0byA1MTIgYnl0ZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCAxMDI0IGJ5dGVzLiIKKworI2RlZmluZSBIRUxQX2RkICJ1c2FnZTogZGQgW2lmfG9mPUZJTEVdIFtpYnN8b2JzfGJzfGNvdW50fHNlZWt8c2tpcD1OXSBbY29udnxzdGF0dXN8aWZsYWd8b2ZsYWc9RkxBR1ssRkxBRy4uLl1dXG5cbkNvcHkvY29udmVydCBibG9ja3Mgb2YgZGF0YSBmcm9tIGlucHV0IHRvIG91dHB1dCwgd2l0aCB0aGUgZm9sbG93aW5nXG5rZXl3b3JkPXZhbHVlIG1vZGlmaWVycyAoYW5kIHRoZWlyIGRlZmF1bHQgdmFsdWVzKTpcblxuaWY9RklMRSAgUmVhZCBGSUxFIChzdGRpbikgICAgICAgICAgb2Y9RklMRSAgV3JpdGUgdG8gRklMRSAoc3Rkb3V0KVxuICAgYnM9TiAgQmxvY2sgc2l6ZSBpbiBieXRlcyAoNTEyKSAgY291bnQ9TiAgU3RvcCBhZnRlciBjb3B5aW5nIE4gYmxvY2tzIChhbGwpXG4gIGlicz1OICBJbnB1dCBibG9jayBzaXplIChicz0pICAgICAgIG9icz1OICBPdXRwdXQgYmxvY2sgc2l6ZSAoYnM9KVxuIHNraXA9TiAgU2tpcCBOIGlucHV0IGJsb2NrcyAoMCkgICAgIHNlZWs9TiAgU2tpcCBOIG91dHB1dCBibG9ja3MgKDApXG5cbkVhY2ggPU4gdmFsdWUgYWNjZXB0cyB0aGUgbm9ybWFsIHVuaXQgc3VmZml4ZXMgKHNlZSB0b3lib3ggLS1oZWxwKS5cblxuVGhlc2UgbW9kaWZpZXJzIHRha2UgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwb3RlbnRpYWwgb3B0aW9uczpcblxuaWZsYWc9Y291bnRfYnl0ZXMsc2tpcF9ieXRlcyAgIGNvdW50PU4gb3Igc2tpcD1OIGlzIGluIGJ5dGVzIG5vdCBibG9ja3Ncbm9mbGFnPXNlZWtfYnl0ZXMsYXBwZW5kICAgICAgICBzZWVrPU4gaXMgaW4gYnl0ZXMsIGFwcGVuZCBvdXRwdXQgdG8gZmlsZVxuc3RhdHVzPW5veGZlcixub25lICAgICAgICAgICAgIGRvbid0IHNob3cgdHJhbnNmZXIgcmF0ZSwgbm8gc3VtbWFyeSBpbmZvXG5jb252PVxuICBub3RydW5jICBEb24ndCB0cnVuY2F0ZSBvdXRwdXQgICAgbm9lcnJvciAgQ29udGludWUgYWZ0ZXIgcmVhZCBlcnJvcnNcbiAgc3luYyAgICAgWmVybyBwYWQgc2hvcnQgcmVhZHMgICAgIGZzeW5jICAgIEZsdXNoIG91dHB1dCB0byBkaXNrIGF0IGVuZFxuICBzcGFyc2UgICBTZWVrIHBhc3QgemVyb2VkIG91dHB1dCAgZXhjbCAgICAgRmFpbCBpZiBvdXRwdXQgZmlsZSBleGlzdHNcbiAgbm9jcmVhdCAgRmFpbCBpZiBvZj1GSUxFIG1pc3NpbmciCisKKyNkZWZpbmUgSEVMUF9kYXRlICJ1c2FnZTogZGF0ZSBbLXVdIFstSSBSRVNdIFstciBGSUxFXSBbLWQgREFURV0gWytESVNQTEFZX0ZPUk1BVF0gWy1EIFNFVF9GT1JNQVRdIFtTRVRdXG5cblNldC9nZXQgdGhlIGN1cnJlbnQgZGF0ZS90aW1lLiBXaXRoIG5vIFNFVCBzaG93cyB0aGUgY3VycmVudCBkYXRlLlxuXG4tZAlTaG93IERBVEUgaW5zdGVhZCBvZiBjdXJyZW50IHRpbWUgKGNvbnZlcnQgZGF0ZSBmb3JtYXQpXG4tRAkrRk9STUFUIGZvciBTRVQgb3IgLWQgKGluc3RlYWQgb2YgTU1ERGhobW1bW0NDXVlZXVsuc3NdKVxuLUkgUkVTCUlTTyA4NjAxIHdpdGggUkVTb2x1dGlvbiBkPWRhdGUvaD1ob3Vycy9tPW1pbnV0ZXMvcz1zZWNvbmRzL249bnNcbi1yCVVzZSBtb2RpZmljYXRpb24gdGltZSBvZiBGSUxFIGluc3RlYWQgb2YgY3VycmVudCBkYXRlXG4tcyBEQVRFCVNldCB0aGUgc3lzdGVtIGNsb2NrIHRvIERBVEUuXG4tdQlVc2UgVVRDIGluc3RlYWQgb2YgY3VycmVudCB0aW1lem9uZVxuXG5TdXBwb3J0ZWQgaW5wdXQgZm9ybWF0czpcblxuTU1ERGhobW1bW0NDXVlZXVsuc3NdICAgICBQT1NJWFxuQFVOSVhUSU1FWy5GUkFDVElPTl0gICAgICBzZWNvbmRzIHNpbmNlIG1pZG5pZ2h0IDE5NzAtMDEtMDFcbllZWVktTU0tREQgW2hoOm1tWzpzc11dICAgSVNPIDg2MDFcbmhoOm1tWzpzc10gICAgICAgICAgICAgICAgMjQtaG91ciB0aW1lIHRvZGF5XG5cbkFsbCBpbnB1dCBmb3JtYXRzIGNhbiBiZSBmb2xsb3dlZCBieSBmcmFjdGlvbmFsIHNlY29uZHMsIGFuZC9vciBhIFVUQ1xub2Zmc2V0IHN1Y2ggYXMgLTA4MDAuXG5cbkFsbCBpbnB1dCBmb3JtYXRzIGNhbiBiZSBwcmVjZWRlZCBieSBUWj1cImlkXCIgdG8gc2V0IHRoZSBpbnB1dCB0aW1lIHpvbmVcbnNlcGFyYXRlbHkgZnJvbSB0aGUgb3V0cHV0IHRpbWUgem9uZS4gT3RoZXJ3aXNlICRUWiBzZXRzIGJvdGguXG5cbitGT1JNQVQgc3BlY2lmaWVzIGRpc3BsYXkgZm9ybWF0IHN0cmluZyB1c2luZyBzdHJmdGltZSgzKSBzeW50YXg6XG5cbiUlIGxpdGVyYWwgJSAgICAgICAgICAgICAlbiBuZXdsaW5lICAgICAgICAgICAgICAldCB0YWJcbiVTIHNlY29uZHMgKDAwLTYwKSAgICAgICAlTSBtaW51dGUgKDAwLTU5KSAgICAgICAlbSBtb250aCAoMDEtMTIpXG4lSCBob3VyICgwLTIzKSAgICAgICAgICAgJUkgaG91ciAoMDEtMTIpICAgICAgICAgJXAgQU0vUE1cbiV5IHNob3J0IHllYXIgKDAwLTk5KSAgICAlWSB5ZWFyICAgICAgICAgICAgICAgICAlQyBjZW50dXJ5XG4lYSBzaG9ydCB3ZWVrZGF5IG5hbWUgICAgJUEgd2Vla2RheSBuYW1lICAgICAgICAgJXUgZGF5IG9mIHdlZWsgKDEtNywgMT1tb24pXG4lYiBzaG9ydCBtb250aCBuYW1lICAgICAgJUIgbW9udGggbmFtZSAgICAgICAgICAgJVogdGltZXpvbmUgbmFtZVxuJWogZGF5IG9mIHllYXIgKDAwMS0zNjYpICVkIGRheSBvZiBtb250aCAoMDEtMzEpICVlIGRheSBvZiBtb250aCAoIDEtMzEpXG4lTiBuYW5vc2VjIChvdXRwdXQgb25seSlcblxuJVUgV2VlayBvZiB5ZWFyICgwLTUzIHN0YXJ0IFN1bmRheSkgICAlVyBXZWVrIG9mIHllYXIgKDAtNTMgc3RhcnQgTW9uZGF5KVxuJVYgV2VlayBvZiB5ZWFyICgxLTUzIHN0YXJ0IE1vbmRheSwgd2VlayA8IDQgZGF5cyBub3QgcGFydCBvZiB0aGlzIHllYXIpXG5cbiVGIFwiJVktJW0tJWRcIiAgICVSIFwiJUg6JU1cIiAgICAgICAgJVQgXCIlSDolTTolU1wiICAgICAgICAleiAgdGltZXpvbmUgKC0wODAwKVxuJUQgXCIlbS8lZC8leVwiICAgJXIgXCIlSTolTTolUyAlcFwiICAlaCBcIiViXCIgICAgICAgICAgICAgICU6eiB0aW1lem9uZSAoLTA4OjAwKVxuJXggbG9jYWxlIGRhdGUgICVYIGxvY2FsZSB0aW1lICAgICVjIGxvY2FsZSBkYXRlL3RpbWUgICVzICB1bml4IGVwb2NoIHRpbWUiCisKKyNkZWZpbmUgSEVMUF9jdXQgInVzYWdlOiBjdXQgWy1Ec10gWy1iY0NmRiBMSVNUXSBbLWRPIERFTElNXSBbRklMRS4uLl1cblxuUHJpbnQgc2VsZWN0ZWQgcGFydHMgb2YgbGluZXMgZnJvbSBlYWNoIEZJTEUgdG8gc3RhbmRhcmQgb3V0cHV0LlxuXG5FYWNoIHNlbGVjdGlvbiBMSVNUIGlzIGNvbW1hIHNlcGFyYXRlZCwgZWl0aGVyIG51bWJlcnMgKGNvdW50aW5nIGZyb20gMSlcbm9yIGRhc2ggc2VwYXJhdGVkIHJhbmdlcyAoaW5jbHVzaXZlLCB3aXRoIFgtIG1lYW5pbmcgdG8gZW5kIG9mIGxpbmUgYW5kIC1YXG5mcm9tIHN0YXJ0KS4gQnkgZGVmYXVsdCBzZWxlY3Rpb24gcmFuZ2VzIGFyZSBzb3J0ZWQgYW5kIGNvbGxhdGVkLCB1c2UgLURcbnRvIHByZXZlbnQgdGhhdC5cblxuLWIJU2VsZWN0IGJ5dGVzICh3aXRoIC1uIHJvdW5kIHN0YXJ0L2VuZCBkb3duIHRvIHN0YXJ0IG9mIHV0ZjggY2hhcilcbi1jCVNlbGVjdCBVVEYtOCBjaGFyYWN0ZXJzXG4tQwlTZWxlY3QgdW5pY29kZSBjb2x1bW5zXG4tZAlJbnB1dCBkZWxpbWl0ZXIgKGRlZmF1bHQgaXMgVEFCIGZvciAtZiwgcnVuIG9mIHdoaXRlc3BhY2UgZm9yIC1GKVxuLUQJRG9uJ3Qgc29ydC9jb2xsYXRlIHNlbGVjdGlvbnMgb3IgbWF0Y2ggLWZGIGxpbmVzIHdpdGhvdXQgZGVsaW1pdGVyXG4tZglTZWxlY3QgZmllbGRzICh3b3Jkcykgc2VwYXJhdGVkIGJ5IHNpbmdsZSBERUxJTSBjaGFyYWN0ZXJcbi1GCVNlbGVjdCBmaWVsZHMgc2VwYXJhdGVkIGJ5IERFTElNIHJlZ2V4XG4tTwlPdXRwdXQgc2VwYXJhdG9yIChkZWZhdWx0IG9uZSBzcGFjZSBmb3IgLUYsIGlucHV0IGRlbGltIGZvciAtZilcbi1zCVNraXAgbGluZXMgd2l0aG91dCBkZWxpbWl0ZXJzIgorCisjZGVmaW5lIEhFTFBfY3BpbyAidXNhZ2U6IGNwaW8gLXtvfHR8aXxwIERFU1R9IFstZEx0dXZdIFstLXZlcmJvc2VdIFstRiBGSUxFXSBbLVIgW1VTRVJdWzpHUk9VUF0gWy0tbm8tcHJlc2VydmUtb3duZXJdXG5cbkNvcHkgZmlsZXMgaW50byBhbmQgb3V0IG9mIGEgXCJuZXdjXCIgZm9ybWF0IGNwaW8gYXJjaGl2ZS5cblxuLWQJQ3JlYXRlIGRpcmVjdG9yaWVzIGlmIG5lZWRlZFxuLUYgRklMRQlVc2UgYXJjaGl2ZSBGSUxFIGluc3RlYWQgb2Ygc3RkaW4vc3Rkb3V0XG4taQlFeHRyYWN0IGZyb20gYXJjaGl2ZSBpbnRvIGZpbGUgc3lzdGVtIChzdGRpbj1hcmNoaXZlKVxuLUwJRm9sbG93IHN5bWxpbmtzXG4tbwlDcmVhdGUgYXJjaGl2ZSAoc3RkaW49bGlzdCBvZiBmaWxlcywgc3Rkb3V0PWFyY2hpdmUpXG4tcCBERVNUCUNvcHktcGFzcyBtb2RlLCBjb3B5IHN0ZGluIGZpbGUgbGlzdCB0byBkaXJlY3RvcnkgREVTVFxuLVIgVVNFUglSZXBsYWNlIG93bmVyIHdpdGggVVNFUls6R1JPVVBdXG4tdAlUZXN0IGZpbGVzIChsaXN0IG9ubHksIHN0ZGluPWFyY2hpdmUsIHN0ZG91dD1saXN0IG9mIGZpbGVzKVxuLXUJVW5saW5rIGV4aXN0aW5nIGZpbGVzIHdoZW4gZXh0cmFjdGluZ1xuLXYJVmVyYm9zZVxuLS1uby1wcmVzZXJ2ZS1vd25lciAgICAgRG9uJ3Qgc2V0IG93bmVyc2hpcCBkdXJpbmcgZXh0cmFjdCIKKworI2RlZmluZSBIRUxQX2luc3RhbGwgInVzYWdlOiBpbnN0YWxsIFstZERwc3ZdIFstbyBVU0VSXSBbLWcgR1JPVVBdIFstbSBNT0RFXSBbLXQgVEFSR0VUXSBbU09VUkNFLi4uXSBbREVTVF1cblxuQ29weSBmaWxlcyBhbmQgc2V0IGF0dHJpYnV0ZXMuXG5cbi1kCUFjdCBsaWtlIG1rZGlyIC1wXG4tRAlDcmVhdGUgbGVhZGluZyBkaXJlY3RvcmllcyBmb3IgREVTVFxuLWcJTWFrZSBjb3B5IGJlbG9uZyB0byBHUk9VUFxuLW0JU2V0IHBlcm1pc3Npb25zIHRvIE1PREVcbi1vCU1ha2UgY29weSBiZWxvbmcgdG8gVVNFUlxuLXAJUHJlc2VydmUgdGltZXN0YW1wc1xuLXMJQ2FsbCBcInN0cmlwIC1wXCJcbi10CUNvcHkgZmlsZXMgdG8gVEFSR0VUIGRpciAobm8gREVTVClcbi12CVZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9tdiAidXNhZ2U6IG12IFstRmZpblR2eF0gWy10IFRBUkdFVF0gU09VUkNFLi4uIFtERVNUXVxuXG4tRglEZWxldGUgYW55IGV4aXN0aW5nIERFU1QgZmlyc3QgKC0tcmVtb3ZlLWRlc3RpbmF0aW9uKVxuLWYJRm9yY2UgY29weSBieSBkZWxldGluZyBkZXN0aW5hdGlvbiBmaWxlXG4taQlJbnRlcmFjdGl2ZSwgcHJvbXB0IGJlZm9yZSBvdmVyd3JpdGluZyBleGlzdGluZyBERVNUXG4tbglObyBjbG9iYmVyIChkb24ndCBvdmVyd3JpdGUgREVTVClcbi10CU1vdmUgdG8gVEFSR0VUIGRpciAobm8gREVTVClcbi1UCURFU1QgYWx3YXlzIHRyZWF0ZWQgYXMgZmlsZSwgbWF4IDIgYXJndW1lbnRzXG4tdglWZXJib3NlXG4teAlBdG9taWNhbGx5IGV4Y2hhbmdlIHNvdXJjZS9kZXN0ICgtLXN3YXApIgorCisjZGVmaW5lIEhFTFBfY3AgInVzYWdlOiBjcCBbLWFEZEZmSGlMbG5QcFJyc1R1dl0gWy0tcHJlc2VydmU9bW90Y3hhXSBbLXQgVEFSR0VUXSBTT1VSQ0UuLi4gW0RFU1RdXG5cbkNvcHkgZmlsZXMgZnJvbSBTT1VSQ0UgdG8gREVTVC4gIElmIG1vcmUgdGhhbiBvbmUgU09VUkNFLCBERVNUIG11c3RcbmJlIGEgZGlyZWN0b3J5LlxuXG4tYQlTYW1lIGFzIC1kcHJcbi1ECUNyZWF0ZSBsZWFkaW5nIGRpcnMgdW5kZXIgREVTVCAoLS1wYXJlbnRzKVxuLWQJRG9uJ3QgZGVyZWZlcmVuY2Ugc3ltbGlua3Ncbi1GCURlbGV0ZSBhbnkgZXhpc3RpbmcgREVTVCBmaXJzdCAoLS1yZW1vdmUtZGVzdGluYXRpb24pXG4tZglEZWxldGUgZGVzdGluYXRpb24gZmlsZXMgd2UgY2FuJ3Qgd3JpdGUgdG9cbi1ICUZvbGxvdyBzeW1saW5rcyBsaXN0ZWQgb24gY29tbWFuZCBsaW5lXG4taQlJbnRlcmFjdGl2ZSwgcHJvbXB0IGJlZm9yZSBvdmVyd3JpdGluZyBleGlzdGluZyBERVNUXG4tTAlGb2xsb3cgYWxsIHN5bWxpbmtzXG4tbAlIYXJkIGxpbmsgaW5zdGVhZCBvZiBjb3B5XG4tbglObyBjbG9iYmVyIChkb24ndCBvdmVyd3JpdGUgREVTVClcbi1QCURvIG5vdCBmb2xsb3cgc3ltbGlua3Ncbi1wCVByZXNlcnZlIHRpbWVzdGFtcHMsIG93bmVyc2hpcCwgYW5kIG1vZGVcbi1SCVJlY3Vyc2UgaW50byBzdWJkaXJlY3RvcmllcyAoREVTVCBtdXN0IGJlIGEgZGlyZWN0b3J5KVxuLXIJU3lub255bSBmb3IgLVJcbi1zCVN5bWxpbmsgaW5zdGVhZCBvZiBjb3B5XG4tVAlERVNUIGFsd2F5cyB0cmVhdGVkIGFzIGZpbGUsIG1heCAyIGFyZ3VtZW50c1xuLXQJQ29weSB0byBUQVJHRVQgZGlyIChubyBERVNUKVxuLXUJVXBkYXRlIChrZWVwIG5ld2VzdCBtdGltZSlcbi12CVZlcmJvc2VcblxuQXJndW1lbnRzIHRvIC0tcHJlc2VydmUgYXJlIHRoZSBmaXJzdCBsZXR0ZXIocykgb2Y6XG5cbiAgICAgICAgbW9kZSAtIHBlcm1pc3Npb25zIChpZ25vcmUgdW1hc2sgZm9yIHJ3eCwgY29weSBzdWlkIGFuZCBzdGlja3kgYml0KVxuICAgb3duZXJzaGlwIC0gdXNlciBhbmQgZ3JvdXBcbiAgdGltZXN0YW1wcyAtIGZpbGUgY3JlYXRpb24sIG1vZGlmaWNhdGlvbiwgYW5kIGFjY2VzcyB0aW1lcy5cbiAgICAgY29udGV4dCAtIHNlY3VyaXR5IGNvbnRleHRcbiAgICAgICB4YXR0ciAtIGV4dGVuZGVkIGF0dHJpYnV0ZXNcbiAgICAgICAgIGFsbCAtIGFsbCBvZiB0aGUgYWJvdmUiCisKKyNkZWZpbmUgSEVMUF9jb21tICJ1c2FnZTogY29tbSBbLTEyM10gRklMRTEgRklMRTJcblxuUmVhZCBGSUxFMSBhbmQgRklMRTIsIHdoaWNoIHNob3VsZCBiZSBvcmRlcmVkLCBhbmQgcHJvZHVjZSB0aHJlZSB0ZXh0XG5jb2x1bW5zIGFzIG91dHB1dDogbGluZXMgb25seSBpbiBGSUxFMTsgbGluZXMgb25seSBpbiBGSUxFMjsgYW5kIGxpbmVzXG5pbiBib3RoIGZpbGVzLiBGaWxlbmFtZSBcIi1cIiBpcyBhIHN5bm9ueW0gZm9yIHN0ZGluLlxuXG4tMQlTdXBwcmVzcyB0aGUgb3V0cHV0IGNvbHVtbiBvZiBsaW5lcyB1bmlxdWUgdG8gRklMRTFcbi0yCVN1cHByZXNzIHRoZSBvdXRwdXQgY29sdW1uIG9mIGxpbmVzIHVuaXF1ZSB0byBGSUxFMlxuLTMJU3VwcHJlc3MgdGhlIG91dHB1dCBjb2x1bW4gb2YgbGluZXMgZHVwbGljYXRlZCBpbiBGSUxFMSBhbmQgRklMRTIiCisKKyNkZWZpbmUgSEVMUF9jbXAgInVzYWdlOiBjbXAgWy1sc10gWy1uIExFTl0gRklMRTEgW0ZJTEUyIFtTS0lQMSBbU0tJUDJdXV1cblxuQ29tcGFyZSB0aGUgY29udGVudHMgb2YgZmlsZXMgKHZzIHN0ZGluIGlmIG9ubHkgb25lIGdpdmVuKSwgb3B0aW9uYWxseVxuc2tpcHBpbmcgYnl0ZXMgYXQgc3RhcnQuXG5cbi1sCVNob3cgYWxsIGRpZmZlcmluZyBieXRlc1xuLW4gTEVOCUNvbXBhcmUgYXQgbW9zdCBMRU4gYnl0ZXNcbi1zCVNpbGVudCIKKworI2RlZmluZSBIRUxQX2NyYzMyICJ1c2FnZTogY3JjMzIgW2ZpbGUuLi5dXG5cbk91dHB1dCBjcmMzMiBjaGVja3N1bSBmb3IgZWFjaCBmaWxlLiIKKworI2RlZmluZSBIRUxQX2Nrc3VtICJ1c2FnZTogY2tzdW0gWy1ISVBMTl0gW0ZJTEUuLi5dXG5cbkZvciBlYWNoIGZpbGUsIG91dHB1dCBjcmMzMiBjaGVja3N1bSB2YWx1ZSwgbGVuZ3RoIGFuZCBuYW1lIG9mIGZpbGUuXG5JZiBubyBmaWxlcyBsaXN0ZWQsIGNvcHkgZnJvbSBzdGRpbi4gIEZpbGVuYW1lIFwiLVwiIGlzIGEgc3lub255bSBmb3Igc3RkaW4uXG5cbi1ICUhleGFkZWNpbWFsIGNoZWNrc3VtIChkZWZhdWx0cyB0byBkZWNpbWFsKVxuLUkJU2tpcCBwb3N0LWludmVyc2lvblxuLVAJUHJlLWludmVyc2lvblxuLUwJTGl0dGxlIGVuZGlhbiAoZGVmYXVsdHMgdG8gYmlnIGVuZGlhbilcbi1OCURvIG5vdCBpbmNsdWRlIGxlbmd0aCBpbiBDUkMgY2FsY3VsYXRpb24gKG9yIG91dHB1dCkiCisKKyNkZWZpbmUgSEVMUF9jaG1vZCAidXNhZ2U6IGNobW9kIFstUl0gTU9ERSBGSUxFLi4uXG5cbkNoYW5nZSBtb2RlIG9mIGxpc3RlZCBmaWxlW3NdIChyZWN1cnNpdmVseSB3aXRoIC1SKS5cblxuTU9ERSBjYW4gYmUgKGNvbW1hLXNlcGFyYXRlZCkgc3RhbnphczogW3Vnb2FdWystPV1bcnd4c3RYdWdvXVxuXG5TdGFuemFzIGFyZSBhcHBsaWVkIGluIG9yZGVyOiBGb3IgZWFjaCBjYXRlZ29yeSAodSA9IHVzZXIsXG5nID0gZ3JvdXAsIG8gPSBvdGhlciwgYSA9IGFsbCB0aHJlZSwgaWYgbm9uZSBzcGVjaWZpZWQgZGVmYXVsdCBpcyBhKSxcbnNldCAoKyksIGNsZWFyICgtKSwgb3IgY29weSAoPSksIHIgPSByZWFkLCB3ID0gd3JpdGUsIHggPSBleGVjdXRlLlxucyA9IHUrcyA9IHN1aWQsIGcrcyA9IHNnaWQsICt0ID0gc3RpY2t5LiAobytzIGlnbm9yZWQgc28gYStzIGRvZXNuJ3Qgc2V0ICt0KVxuc3VpZC9zZ2lkOiBleGVjdXRlIGFzIHRoZSB1c2VyL2dyb3VwIHdobyBvd25zIHRoZSBmaWxlLlxuc3RpY2t5OiBjYW4ndCBkZWxldGUgZmlsZXMgeW91IGRvbid0IG93biBvdXQgb2YgdGhpcyBkaXJlY3RvcnlcblggPSB4IGZvciBkaXJlY3RvcmllcyBvciBpZiBhbnkgY2F0ZWdvcnkgYWxyZWFkeSBoYXMgeCBzZXQuXG5cbk9yIE1PREUgY2FuIGJlIGFuIG9jdGFsIHZhbHVlIHVwIHRvIDc3NzcJdWcgdXV1Z2dnb29vCXRvcCArXG5iaXQgMSA9IG8reCwgYml0IDE8PDggPSB1K3csIDE8PDExID0gZysxCXNzdHJ3eHJ3eHJ3eAlib3R0b21cblxuRXhhbXBsZXM6XG5jaG1vZCB1K3cgZmlsZSAtIGFsbG93IG93bmVyIG9mIFwiZmlsZVwiIHRvIHdyaXRlIHRvIGl0LlxuY2htb2QgNzQ0IGZpbGUgLSB1c2VyIGNhbiByZWFkL3dyaXRlL2V4ZWN1dGUsIGV2ZXJ5b25lIGVsc2UgcmVhZCBvbmx5IgorCisjZGVmaW5lIEhFTFBfY2hvd24gInNlZTogY2hncnAiCisKKyNkZWZpbmUgSEVMUF9jaGdycCAidXNhZ2U6IGNoZ3JwL2Nob3duIFstUkhMUF0gWy1mdmhdIEdST1VQIEZJTEUuLi5cblxuQ2hhbmdlIGdyb3VwIG9mIG9uZSBvciBtb3JlIGZpbGVzLlxuXG4tZglTdXBwcmVzcyBtb3N0IGVycm9yIG1lc3NhZ2VzXG4taAlDaGFuZ2Ugc3ltbGlua3MgaW5zdGVhZCBvZiB3aGF0IHRoZXkgcG9pbnQgdG9cbi1SCVJlY3Vyc2UgaW50byBzdWJkaXJlY3RvcmllcyAoaW1wbGllcyAtaClcbi1ICVdpdGggLVIgY2hhbmdlIHRhcmdldCBvZiBzeW1saW5rLCBmb2xsb3cgY29tbWFuZCBsaW5lIHN5bWxpbmtzXG4tTAlXaXRoIC1SIGNoYW5nZSB0YXJnZXQgb2Ygc3ltbGluaywgZm9sbG93IGFsbCBzeW1saW5rc1xuLVAJV2l0aCAtUiBjaGFuZ2Ugc3ltbGluaywgZG8gbm90IGZvbGxvdyBzeW1saW5rcyAoZGVmYXVsdClcbi12CVZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9jYXQgInVzYWdlOiBjYXQgWy1ldHV2XSBbRklMRS4uLl1cblxuQ29weSAoY29uY2F0ZW5hdGUpIGZpbGVzIHRvIHN0ZG91dC4gIElmIG5vIGZpbGVzIGxpc3RlZCwgY29weSBmcm9tIHN0ZGluLlxuRmlsZW5hbWUgXCItXCIgaXMgYSBzeW5vbnltIGZvciBzdGRpbi5cblxuLWUJTWFyayBlYWNoIG5ld2xpbmUgd2l0aCAkXG4tdAlTaG93IHRhYnMgYXMgXklcbi11CUNvcHkgb25lIGJ5dGUgYXQgYSB0aW1lIChzbG93KVxuLXYJRGlzcGxheSBub25wcmludGluZyBjaGFyYWN0ZXJzIGFzIGVzY2FwZSBzZXF1ZW5jZXMgd2l0aCBNLXggZm9yXG4JaGlnaCBhc2NpaSBjaGFyYWN0ZXJzICg+MTI3KSwgYW5kIF54IGZvciBvdGhlciBub25wcmludGluZyBjaGFycyIKKworI2RlZmluZSBIRUxQX2NhbCAidXNhZ2U6IGNhbCBbLWhdIFtbW0RBWV0gTU9OVEhdIFlFQVJdXG5cblByaW50IGEgY2FsZW5kYXIuXG5cbldpdGggb25lIGFyZ3VtZW50LCBwcmludHMgYWxsIG1vbnRocyBvZiB0aGUgc3BlY2lmaWVkIHllYXIuXG5XaXRoIHR3byBhcmd1bWVudHMsIHByaW50cyBjYWxlbmRhciBmb3IgbW9udGggYW5kIHllYXIuXG5XaXRoIHRocmVlIGFyZ3VtZW50cywgaGlnaGxpZ2h0cyBkYXkgd2l0aGluIG1vbnRoIGFuZCB5ZWFyLlxuXG4taAlEb24ndCBoaWdobGlnaHQgdG9kYXkiCisKKyNkZWZpbmUgSEVMUF9iYXNlbmFtZSAidXNhZ2U6IGJhc2VuYW1lIFstYV0gWy1zIFNVRkZJWF0gTkFNRS4uLiB8IE5BTUUgW1NVRkZJWF1cblxuUmV0dXJuIG5vbi1kaXJlY3RvcnkgcG9ydGlvbiBvZiBhIHBhdGhuYW1lIHJlbW92aW5nIHN1ZmZpeC5cblxuLWEJCUFsbCBhcmd1bWVudHMgYXJlIG5hbWVzXG4tcyBTVUZGSVgJUmVtb3ZlIHN1ZmZpeCAoaW1wbGllcyAtYSkiCisKZGlmZiAtLWdpdCBhL2FuZHJvaWQvbGludXgvZ2VuZXJhdGVkL25ld3RveXMuaCBiL2FuZHJvaWQvbGludXgvZ2VuZXJhdGVkL25ld3RveXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODczMDcxCi0tLSAvZGV2L251bGwKKysrIGIvYW5kcm9pZC9saW51eC9nZW5lcmF0ZWQvbmV3dG95cy5oCkBAIC0wLDAgKzEsMzQ3IEBACitVU0VfVE9ZQk9YKE5FV1RPWSh0b3lib3gsIDAsIFRPWUZMQUdfU1RBWVJPT1R8VE9ZRkxBR19OT0hFTFApKQorVVNFX1NIKE9MRFRPWSgtYmFzaCwgc2gsIDApKQorVVNFX1NIKE9MRFRPWSgtc2gsIHNoLCAwKSkKK1VTRV9TSChPTERUT1koLXRveXNoLCBzaCwgMCkpCitVU0VfU0goT0xEVE9ZKC4sIHNvdXJjZSwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX1RSVUUoT0xEVE9ZKDosIHRydWUsIFRPWUZMQUdfTk9GT1JLfFRPWUZMQUdfTk9IRUxQKSkKK1VTRV9URVNUX0dMVUUoT0xEVE9ZKFssIHRlc3QsIFRPWUZMQUdfQklOfFRPWUZMQUdfTUFZRk9SS3xUT1lGTEFHX05PSEVMUCkpCitVU0VfU0goT0xEVE9ZKFtbLCB0ZXN0LCBUT1lGTEFHX05PRk9SS3xUT1lGTEFHX05PSEVMUCkpCitVU0VfQUNQSShORVdUT1koYWNwaSwgImFiY3RWIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dST1VQQUREKE9MRFRPWShhZGRncm91cCwgZ3JvdXBhZGQsIFRPWUZMQUdfTkVFRFJPT1R8VE9ZRkxBR19TQklOKSkKK1VTRV9VU0VSQUREKE9MRFRPWShhZGR1c2VyLCB1c2VyYWRkLCBUT1lGTEFHX05FRURST09UfFRPWUZMQUdfVU1BU0t8VE9ZRkxBR19TQklOKSkKK1VTRV9BUkNIKE5FV1RPWShhcmNoLCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfQVJQKE5FV1RPWShhcnAsICJ2aTpuRHNkYXA6QTpIOlsrQXBdWyFzZF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfQVJQSU5HKE5FV1RPWShhcnBpbmcsICI8MT4xczpJOncjPDBjIzwwQVVEYnFmWytBVV1bK0RmXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfQVNDSUkoTkVXVE9ZKGFzY2lpLCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0JBU0UzMihORVdUT1koYmFzZTMyLCAiZGl3IzwwPTc2WyFkd10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0JBU0U2NChORVdUT1koYmFzZTY0LCAiZGl3IzwwPTc2WyFkd10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0JBU0VOQU1FKE5FV1RPWShiYXNlbmFtZSwgIl48MWFzOiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSChPTERUT1koYmFzaCwgc2gsIFRPWUZMQUdfQklOKSkKK1VTRV9CQyhORVdUT1koYmMsICJpKGludGVyYWN0aXZlKWwobWF0aGxpYilxKHF1aWV0KXMoc3RhbmRhcmQpdyh3YXJuKSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9CTEtESVNDQVJEKE5FV1RPWShibGtkaXNjYXJkLCAiPDE+MWYoZm9yY2UpbChsZW5ndGgpIzwwbyhvZmZzZXQpIzwwcyhzZWN1cmUpeih6ZXJvb3V0KVshc3pdIiwgVE9ZRkxBR19CSU4pKQorVVNFX0JMS0lEKE5FV1RPWShibGtpZCwgIlVMbzpzKlshTFVdIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9CTE9DS0RFVihORVdUT1koYmxvY2tkZXYsICI8MT4xKHNldHJvKShzZXRydykoZ2V0cm8pKGdldHNzKShnZXRic3opKHNldGJzeikjPDAoZ2V0c3opKGdldHNpemUpKGdldHNpemU2NCkoZ2V0cmEpKHNldHJhKSM8MChmbHVzaGJ1ZnMpKHJlcmVhZHB0KSIsVE9ZRkxBR19TQklOKSkKK1VTRV9CT09UQ0hBUlREKE5FV1RPWShib290Y2hhcnRkLCAwLCBUT1lGTEFHX1NUQVlST09UfFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9CUkNUTChORVdUT1koYnJjdGwsICI8MSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfQlVOWklQMihORVdUT1koYnVuemlwMiwgImNmdGt2IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0JaQ0FUKE5FV1RPWShiemNhdCwgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NBTChORVdUT1koY2FsLCAiPjNoIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NBVChORVdUT1koY2F0LCAidXZ0ZSIsIFRPWUZMQUdfQklOKSkKK1VTRV9TSChORVdUT1koY2QsICI+MUxQWy1MUF0iLCBUT1lGTEFHX05PRk9SSykpCitVU0VfQ0hBVFRSKE5FV1RPWShjaGF0dHIsICI/cCN2I1IiLCBUT1lGTEFHX0JJTikpCitVU0VfQ0hDT04oTkVXVE9ZKGNoY29uLCAiPDJodlIiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfQ0hHUlAoTkVXVE9ZKGNoZ3JwLCAiPDJoKG5vLWRlcmVmZXJlbmNlKVBMSFJmdlstSExQXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9DSE1PRChORVdUT1koY2htb2QsICI8Mj92ZlJbLXZmXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9DSE9XTihPTERUT1koY2hvd24sIGNoZ3JwLCBUT1lGTEFHX0JJTikpCitVU0VfQ0hST09UKE5FV1RPWShjaHJvb3QsICJePDEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU58VE9ZRkxBR19BUkdGQUlMKDEyNSkpKQorVVNFX0NIUlQoTkVXVE9ZKGNocnQsICJebXAjPDBpUmJyZm9bIWlicmZvXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9DSFNIKE5FV1RPWShjaHNoLCAiPjFSOnM6YSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfU1RBWVJPT1QpKQorVVNFX0NIVlQoTkVXVE9ZKGNodnQsICI8MT4xIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NLU1VNKE5FV1RPWShja3N1bSwgIkhJUExOIiwgVE9ZRkxBR19CSU4pKQorVVNFX0NMRUFSKE5FV1RPWShjbGVhciwgTlVMTCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NNUChORVdUT1koY21wLCAiPDE+NGxzKHNpbGVudCkocXVpZXQpbiM8MVshbHNdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19BUkdGQUlMKDIpKSkKK1VTRV9DT01NKE5FV1RPWShjb21tLCAiPDI+MjMyMSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9DT1VOVChORVdUT1koY291bnQsICI8MD4wbCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9DUChORVdUT1koY3AsICI8MShwcmVzZXJ2ZSk6O0QocGFyZW50cylSSExQcHJ1ZGFzbHYodmVyYm9zZSluRihyZW1vdmUtZGVzdGluYXRpb24pZml0OlRbLUhMUGRdWy1uaXVdWytScl0iLCBUT1lGTEFHX0JJTikpCitVU0VfQ1BJTyhORVdUT1koY3BpbywgIihpZ25vcmUtZGV2bm8pKHJlbnVtYmVyLWlub2RlcykocXVpZXQpKG5vLXByZXNlcnZlLW93bmVyKVIob3duZXIpOm1kKG1ha2UtZGlyZWN0b3JpZXMpdUxIOnB8aXx0fEY6dih2ZXJib3NlKW98WyFwaW9dWyFwb3RdWyFwRl0iLCBUT1lGTEFHX0JJTikpCitVU0VfQ1JDMzIoTkVXVE9ZKGNyYzMyLCAwLCBUT1lGTEFHX0JJTikpCitVU0VfQ1JPTkQoTkVXVE9ZKGNyb25kLCAiZmJTbCM8MD04ZCM8MEw6YzpbLWJmXVstTFNdWy1sZF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfQ1JPTlRBQihORVdUT1koY3JvbnRhYiwgImM6dTplbHJbIWVscl0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX1NUQVlST09UKSkKK1VTRV9DU1BMSVQoTkVXVE9ZKGNzcGxpdCwgIjwyc2tmOm4jIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NVVChORVdUT1koY3V0LCAiYip8Yyp8Zip8RihyZWdleC1maWVsZHMpKnxDKnxPKG91dHB1dC1kZWxpbWl0ZXIpOmQ6c0QoYWxsb3ctZHVwbGljYXRlcyluWyFjYmZGXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9EQVRFKE5FV1RPWShkYXRlLCAiPjFkOkQ6SShpc28tODYwMSk6O3I6czp1KHV0YylbIWRyXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9ERChORVdUT1koZGQsIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9ERUFMTE9DVlQoTkVXVE9ZKGRlYWxsb2N2dCwgIj4xIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfU0goTkVXVE9ZKGRlY2xhcmUsICJwQWFpbHVueHIiLCBUT1lGTEFHX05PRk9SSykpCitVU0VfR1JPVVBERUwoT0xEVE9ZKGRlbGdyb3VwLCBncm91cGRlbCwgVE9ZRkxBR19ORUVEUk9PVHxUT1lGTEFHX1NCSU4pKQorVVNFX1VTRVJERUwoT0xEVE9ZKGRlbHVzZXIsIHVzZXJkZWwsIFRPWUZMQUdfTkVFRFJPT1R8VE9ZRkxBR19TQklOKSkKK1VTRV9ERU1PX01BTllfT1BUSU9OUyhORVdUT1koZGVtb19tYW55X29wdGlvbnMsICJaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQXp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhIiwgVE9ZRkxBR19CSU4pKQorVVNFX0RFTU9fTlVNQkVSKE5FV1RPWShkZW1vX251bWJlciwgIkQjPTM8M00jPDBoY2RicyIsIFRPWUZMQUdfQklOKSkKK1VTRV9ERU1PX1NDQU5LRVkoTkVXVE9ZKGRlbW9fc2NhbmtleSwgMCwgVE9ZRkxBR19CSU4pKQorVVNFX0RFTU9fVVRGOFRPV0MoTkVXVE9ZKGRlbW9fdXRmOHRvd2MsIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9ERVZNRU0oTkVXVE9ZKGRldm1lbSwgIjwxPjMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX0RGKE5FV1RPWShkZiwgIkhQa2hpdCphWy1IUGhdIiwgVE9ZRkxBR19CSU4pKQorVVNFX0RIQ1AoTkVXVE9ZKGRoY3AsICJWOkg6Rjp4KnI6TypBIzwwPTIwVCM8MD0zdCM8MD0zczpwOmk6U0JSQ2FvdnFuYmYiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19ST09UT05MWSkpCitVU0VfREhDUDYoTkVXVE9ZKGRoY3A2LCAicjpBIzwwVCM8MHQjPDBzOnA6aTpTUnZxbmJmIiwgVE9ZRkxBR19TQklOfFRPWUZMQUdfUk9PVE9OTFkpKQorVVNFX0RIQ1BEKE5FV1RPWShkaGNwZCwgIj4xUCM8MD42NTUzNWZpOlM0NlshNDZdIiwgVE9ZRkxBR19TQklOfFRPWUZMQUdfUk9PVE9OTFkpKQorVVNFX0RJRkYoTkVXVE9ZKGRpZmYsICI8Mj4yKHVuY2hhbmdlZC1saW5lLWZvcm1hdCk6OyhvbGQtbGluZS1mb3JtYXQpOjsobmV3LWxpbmUtZm9ybWF0KTo7KGNvbG9yKShzdHJpcC10cmFpbGluZy1jcilCKGlnbm9yZS1ibGFuay1saW5lcylkKG1pbmltYWwpYihpZ25vcmUtc3BhY2UtY2hhbmdlKXV0KGV4cGFuZC10YWJzKXcoaWdub3JlLWFsbC1zcGFjZSlpKGlnbm9yZS1jYXNlKVQoaW5pdGlhbC10YWIpcyhyZXBvcnQtaWRlbnRpY2FsLWZpbGVzKXEoYnJpZWYpYSh0ZXh0KVMoc3RhcnRpbmctZmlsZSk6RihzaG93LWZ1bmN0aW9uLWxpbmUpOjtMKGxhYmVsKSpOKG5ldy1maWxlKXIocmVjdXJzaXZlKVUodW5pZmllZCkjPDA9MyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfQVJHRkFJTCgyKSkpCitVU0VfRElSTkFNRShORVdUT1koZGlybmFtZSwgIjwxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0RNRVNHKE5FV1RPWShkbWVzZywgIncoZm9sbG93KUNTVHRycyM8MW4jY1shVHRyXVshQ2NdWyFTd10iLCBUT1lGTEFHX0JJTikpCitVU0VfRE5TRE9NQUlOTkFNRShORVdUT1koZG5zZG9tYWlubmFtZSwgIj4wIiwgVE9ZRkxBR19CSU4pKQorVVNFX0RPUzJVTklYKE5FV1RPWShkb3MydW5peCwgMCwgVE9ZRkxBR19CSU4pKQorVVNFX0RVKE5FV1RPWShkdSwgImQjPDA9LTFobWxjYUhrS0xzeGJbLUhMXVsta0ttaF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfRFVNUExFQVNFUyhORVdUT1koZHVtcGxlYXNlcywgIj4wYXJmOlshYXJdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0VDSE8oTkVXVE9ZKGVjaG8sICJeP0VlblstZUVdIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19NQVlGT1JLfFRPWUZMQUdfTElORUJVRikpCitVU0VfRUdSRVAoT0xEVE9ZKGVncmVwLCBncmVwLCBUT1lGTEFHX0JJTnxUT1lGTEFHX0FSR0ZBSUwoMil8VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9FSkVDVChORVdUT1koZWplY3QsICI+MXN0VFshdFRdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0VOVihORVdUT1koZW52LCAiXmU6aTB1KiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfQVJHRkFJTCgxMjUpKSkKK1VTRV9TSChORVdUT1koZXZhbCwgMCwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX1NIKE5FV1RPWShleGVjLCAiXmNsYToiLCBUT1lGTEFHX05PRk9SSykpCitVU0VfU0goTkVXVE9ZKGV4aXQsIDAsIFRPWUZMQUdfTk9GT1JLKSkKK1VTRV9FWFBBTkQoTkVXVE9ZKGV4cGFuZCwgInQqIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIKE5FV1RPWShleHBvcnQsICJucCIsIFRPWUZMQUdfTk9GT1JLKSkKK1VTRV9FWFBSKE5FV1RPWShleHByLCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0FSR0ZBSUwoMikpKQorVVNFX0ZBQ1RPUihORVdUT1koZmFjdG9yLCAiP2h4IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZBTExPQ0FURShORVdUT1koZmFsbG9jYXRlLCAiPjFsI3xvIyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9GQUxTRShORVdUT1koZmFsc2UsIE5VTEwsIFRPWUZMQUdfQklOfFRPWUZMQUdfTk9IRUxQfFRPWUZMQUdfTUFZRk9SSykpCitVU0VfRkRJU0soTkVXVE9ZKGZkaXNrLCAiQyM8MEgjPDBTIzwwYiM8NTEydWwiLCBUT1lGTEFHX1NCSU4pKQorVVNFX0ZHUkVQKE9MRFRPWShmZ3JlcCwgZ3JlcCwgVE9ZRkxBR19CSU58VE9ZRkxBR19BUkdGQUlMKDIpfFRPWUZMQUdfTElORUJVRikpCitVU0VfRklMRShORVdUT1koZmlsZSwgIjwxYihicmllZiloTHNbIWhMXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9GSU5EKE5FV1RPWShmaW5kLCAiP15ITFstSExdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZMT0NLKE5FV1RPWShmbG9jaywgIjwxPjFuc3V4Wy1zdXhdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZNVChORVdUT1koZm10LCAidyM8MD03NSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9GT0xEKE5FV1RPWShmb2xkLCAiYnN3IzwxPTgwIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZSRUUoTkVXVE9ZKGZyZWUsICJoZ21rYlshaGdta2JdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZSRUVSQU1ESVNLKE5FV1RPWShmcmVlcmFtZGlzaywgIjwxPjEiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfRlNDSyhORVdUT1koZnNjaywgIj90OkFOUFJUVnNDIyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9GU0ZSRUVaRShORVdUT1koZnNmcmVlemUsICI8MT4xZnx1fFshZnVdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9GU1RZUEUoTkVXVE9ZKGZzdHlwZSwgIjwxIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9GU1lOQyhORVdUT1koZnN5bmMsICI8MWQiLCBUT1lGTEFHX0JJTikpCitVU0VfRlRQR0VUKE5FV1RPWShmdHBnZXQsICI8Mj4zUDpjcDp1OnZnc2xMbU1kRFstZ3NdWyFnc2xMbU1kRF1bIWNsTF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfRlRQUFVUKE9MRFRPWShmdHBwdXQsIGZ0cGdldCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dFVENPTkYoTkVXVE9ZKGdldGNvbmYsICI+MmFsIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dFVEVORk9SQ0UoTkVXVE9ZKGdldGVuZm9yY2UsICI+MCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfR0VURkFUVFIoTkVXVE9ZKGdldGZhdHRyLCAiKG9ubHktdmFsdWVzKWRobjoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR0VUT1BUKE5FV1RPWShnZXRvcHQsICJeYShhbHRlcm5hdGl2ZSluOihuYW1lKW86KG9wdGlvbnMpbCoobG9uZykobG9uZ29wdGlvbnMpVHUiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR0VUVFkoTkVXVE9ZKGdldHR5LCAiPDJ0IzwwSDpJOmw6Zjppd25tTGgiLCBUT1lGTEFHX1NCSU4pKQorVVNFX0dJVENIRUNLT1VUKE5FV1RPWShnaXRjaGVja291dCwgIjwxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dJVENMT05FKE5FV1RPWShnaXRjbG9uZSwgIjwxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dJVEZFVENIKE5FV1RPWShnaXRmZXRjaCwgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dJVElOSVQoTkVXVE9ZKGdpdGluaXQsICI8MSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9HSVRSRU1PVEUoTkVXVE9ZKGdpdHJlbW90ZSwgIjwxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dQSU9ERVRFQ1QoTkVXVE9ZKGdwaW9kZXRlY3QsICI+MCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9HUElPRklORChORVdUT1koZ3Bpb2ZpbmQsICI8MT4xIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dQSU9HRVQoTkVXVE9ZKGdwaW9nZXQsICI8MmwiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR1BJT0lORk8oTkVXVE9ZKGdwaW9pbmZvLCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR1BJT1NFVChORVdUT1koZ3Bpb3NldCwgIjwybCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9HUkVQKE5FV1RPWShncmVwLCAiKGxpbmUtYnVmZmVyZWQpKGNvbG9yKTo7KGV4Y2x1ZGUtZGlyKSpTKGV4Y2x1ZGUpKk0oaW5jbHVkZSkqWnpFRkhJYWIoYnl0ZS1vZmZzZXQpaChuby1maWxlbmFtZSlpbm8ob25seS1tYXRjaGluZylyUnN2d2MoY291bnQpTChmaWxlcy13aXRob3V0LW1hdGNoKWwoZmlsZXMtd2l0aC1tYXRjaGVzKXEocXVpZXQpKHNpbGVudCllKmYqQyNCI0EjbSN4WyF3eF1bIUVGXSIsIFRPWUZMQUdfQklOfFRPWUZMQUdfQVJHRkFJTCgyKXxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0dST1VQQUREKE5FV1RPWShncm91cGFkZCwgIjwxPjJSOmcjPDA+MjE0NzQ4MzY0N1MiLCBUT1lGTEFHX05FRURST09UfFRPWUZMQUdfU0JJTikpCitVU0VfR1JPVVBERUwoTkVXVE9ZKGdyb3VwZGVsLCAiPDE+Mj8iLCBUT1lGTEFHX05FRURST09UfFRPWUZMQUdfU0JJTikpCitVU0VfR1JPVVBTKE5FV1RPWShncm91cHMsIE5VTEwsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9HVU5aSVAoTkVXVE9ZKGd1bnppcCwgImNkZmt0MTIzNDU2Nzg5Wy0xMjM0NTY3ODldIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0daSVAoTkVXVE9ZKGd6aXAsICAgICJuKG5vLW5hbWUpY2Rma3QxMjM0NTY3ODlbLTEyMzQ1Njc4OV0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUkVCT09UKE9MRFRPWShoYWx0LCByZWJvb3QsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9IRChPTERUT1koaGQsIGhleGR1bXAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9IRUFEKE5FV1RPWShoZWFkLCAiP24obGluZXMpIzwwPTEwYyhieXRlcykjPDBxdlstbmNdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9IRUxMTyhORVdUT1koaGVsbG8sIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9IRUxQKE5FV1RPWShoZWxwLCAiYWh1IiwgVE9ZRkxBR19CSU58VE9ZRkxBR19NQVlGT1JLKSkKK1VTRV9IRVhEVU1QKE5FV1RPWShoZXhkdW1wLCAiYmNDZG4jPDBvcyM8MHZ4WyFiY0Nkb3hdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0hFWEVESVQoTkVXVE9ZKGhleGVkaXQsICI8MT4xciIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9IT1NUKE5FV1RPWShob3N0LCAiPDE+MmF2dDoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfSE9TVElEKE5FV1RPWShob3N0aWQsICI+MCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9IT1NUTkFNRShORVdUT1koaG9zdG5hbWUsICI+MWJkc2ZGOlshYmRzZl0iLCBUT1lGTEFHX0JJTikpCitVU0VfSFRUUEQoTkVXVE9ZKGh0dHBkLCAiPjF2IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9IV0NMT0NLKE5FV1RPWShod2Nsb2NrLCAiPjAoZmFzdClmKHJ0Yyk6dSh1dGMpbChsb2NhbHRpbWUpdChzeXN0eilzKGhjdG9zeXMpcihzaG93KXcoc3lzdG9oYylbLXVsXVshcnRzd10iLCBUT1lGTEFHX1NCSU4pKQorVVNFX0kyQ0RFVEVDVChORVdUT1koaTJjZGV0ZWN0LCAiPjNhRiM8MD42M2xxcnlbIXFyXVshRmxdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9JMkNEVU1QKE5FV1RPWShpMmNkdW1wLCAiPDI+MmZ5IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9JMkNHRVQoTkVXVE9ZKGkyY2dldCwgIjwyPjNmeSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfSTJDU0VUKE5FV1RPWShpMmNzZXQsICI8NGZ5IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9JMkNUUkFOU0ZFUihORVdUT1koaTJjdHJhbnNmZXIsICI8MnZmeSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfSUNPTlYoTkVXVE9ZKGljb252LCAiY3N0OmY6IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0lEKE5FV1RPWShpZCwgIj4xIlVTRV9JRF9aKCJaIikibkdncnVbISJVU0VfSURfWigiWiIpIkdndV0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfSUZDT05GSUcoTkVXVE9ZKGlmY29uZmlnLCAiXj9hUyIsIFRPWUZMQUdfU0JJTikpCitVU0VfSU5JVChORVdUT1koaW5pdCwgIiIsIFRPWUZMQUdfU0JJTikpCitVU0VfSU5PVElGWUQoTkVXVE9ZKGlub3RpZnlkLCAiPDIiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0lOU01PRChORVdUT1koaW5zbW9kLCAiPDEiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfSU5TVEFMTChORVdUT1koaW5zdGFsbCwgIjwxY2REcChwcmVzZXJ2ZS10aW1lc3RhbXBzKXN2dDptOm86ZzoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfSU9OSUNFKE5FV1RPWShpb25pY2UsICJedGMjPDA+Mz0ybiM8MD43PTVwIyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9JT1JFTklDRShORVdUT1koaW9yZW5pY2UsICI8MT4zIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0lPVE9QKE5FV1RPWShpb3RvcCwgIj4wQWFLTyIgIkhrKm8qcCp1KnMjPDE9N2QlPDEwMD0zMDAwbSNuIzwxYnEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX1NUQVlST09UKSkKK1VTRV9JUChORVdUT1koaXAsIE5VTEwsIFRPWUZMQUdfU0JJTikpCitVU0VfSVAoT0xEVE9ZKGlwYWRkciwgaXAsIFRPWUZMQUdfU0JJTikpCitVU0VfSVBDUk0oTkVXVE9ZKGlwY3JtLCAibSpNKnMqUypxKlEqIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0lQQ1MoTkVXVE9ZKGlwY3MsICJhY3B0dWxzcW1pIyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9JUChPTERUT1koaXBsaW5rLCBpcCwgVE9ZRkxBR19TQklOKSkKK1VTRV9JUChPTERUT1koaXByb3V0ZSwgaXAsIFRPWUZMQUdfU0JJTikpCitVU0VfSVAoT0xEVE9ZKGlwcnVsZSwgaXAsIFRPWUZMQUdfU0JJTikpCitVU0VfSVAoT0xEVE9ZKGlwdHVubmVsLCBpcCwgVE9ZRkxBR19TQklOKSkKK1VTRV9TSChORVdUT1koam9icywgImxucHJzIiwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX0tJTEwoTkVXVE9ZKGtpbGwsICI/bHM6ICIsIFRPWUZMQUdfQklOfFRPWUZMQUdfTUFZRk9SSykpCitVU0VfS0lMTEFMTChORVdUT1koa2lsbGFsbCwgIj9zOmlscXZ3IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0tJTExBTEw1KE5FV1RPWShraWxsYWxsNSwgIj9vKmxzOiBbIWxvXVshbHNdIiwgVE9ZRkxBR19TQklOKSkKK1VTRV9LTE9HRChORVdUT1koa2xvZ2QsICJjIzwxPjhuIiwgVE9ZRkxBR19TQklOKSkKK1VTRV9MQVNUKE5FV1RPWShsYXN0LCAiZjpXIiwgVE9ZRkxBR19CSU4pKQorVVNFX0xJTksoTkVXVE9ZKGxpbmssICI8Mj4yIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0xJTlVYMzIoTkVXVE9ZKGxpbnV4MzIsIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9MTihORVdUT1kobG4sICI8MXJ0OlR2bmZzIiwgVE9ZRkxBR19CSU4pKQorVVNFX0xPQURfUE9MSUNZKE5FV1RPWShsb2FkX3BvbGljeSwgIjwxPjEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX1NIKE5FV1RPWShsb2NhbCwgMCwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX0xPRyhORVdUT1kobG9nLCAicDp0OiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfTE9HR0VSKE5FV1RPWShsb2dnZXIsICJ0OnA6cyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9MT0dJTihORVdUT1kobG9naW4sICI+MWY6cGg6IiwgVE9ZRkxBR19CSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfTE9HTkFNRShORVdUT1kobG9nbmFtZSwgIj4wIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0xPR1BBVEgoTkVXVE9ZKGxvZ3BhdGgsIDAsIFRPWUZMQUdfTk9IRUxQfFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9MT1NFVFVQKE5FV1RPWShsb3NldHVwLCAiPjJTKHNpemVsaW1pdCkjcyhzaG93KXJvI2o6ZmRjYURbIWFmal0iLCBUT1lGTEFHX1NCSU4pKQorVVNFX0xTKE5FV1RPWShscywgIihzb3J0KTooY29sb3IpOjsoZnVsbC10aW1lKShzaG93LWNvbnRyb2wtY2hhcnMpXDM3NyhibG9jay1zaXplKSM9MTAyNDwxXDI0MShncm91cC1kaXJlY3Rvcmllcy1maXJzdClcMzc2WmdvQUNGSExOUlNVWGFiY2RmaGlrbEBtbnBxcnN0dXcjPTgwPDB4MVstQ3htMV1bLUN4bWxdWy1DeG1vXVstQ3htZ11bLWN1XVstZnRTXVstSExdWy1OcWJdWy1rXDM3N10iLCBUT1lGTEFHX0JJTikpCitVU0VfTFNBVFRSKE5FV1RPWShsc2F0dHIsICJsZGFwdlIiLCBUT1lGTEFHX0JJTikpCitVU0VfTFNNT0QoTkVXVE9ZKGxzbW9kLCBOVUxMLCBUT1lGTEFHX1NCSU4pKQorVVNFX0xTT0YoTkVXVE9ZKGxzb2YsICJscCp0IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0xTUENJKE5FV1RPWShsc3BjaSwgImVta25AeEBpOiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9MU1VTQihORVdUT1kobHN1c2IsICJpOiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9NQUtFREVWUyhORVdUT1kobWFrZWRldnMsICI8MT4xZDoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTUFOKE5FV1RPWShtYW4sICJrOk06IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01DT09LSUUoTkVXVE9ZKG1jb29raWUsICJ2KHZlcmJvc2UpVih2ZXJzaW9uKSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9NRDVTVU0oTkVXVE9ZKG1kNXN1bSwgImJjKGNoZWNrKXMoc3RhdHVzKVshYmNdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01ERVYoTkVXVE9ZKG1kZXYsICJzIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19VTUFTSykpCitVU0VfTUVNRUFURVIoTkVXVE9ZKG1lbWVhdGVyLCAiPDE+MU0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTUlDUk9DT00oTkVXVE9ZKG1pY3JvY29tLCAiPDE+MXMjPTExNTIwMFgiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX05PQlVGKSkKK1VTRV9NSVgoTkVXVE9ZKG1peCwgImM6ZDpsI3IjIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01LRElSKE5FV1RPWShta2RpciwgIjwxIlVTRV9NS0RJUl9aKCJaOiIpInZwKHBhcmVudCkocGFyZW50cyltOiIsIFRPWUZMQUdfQklOfFRPWUZMQUdfVU1BU0spKQorVVNFX01LRTJGUyhORVdUT1kobWtlMmZzLCAiPDE+Mmc6Rm5xbSNOI2kjYiMiLCBUT1lGTEFHX1NCSU4pKQorVVNFX01LRklGTyhORVdUT1kobWtmaWZvLCAiPDEiVVNFX01LRklGT19aKCJaOiIpIm06IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01LTk9EKE5FV1RPWShta25vZCwgIjwyPjRtKG1vZGUpOiJVU0VfTUtOT0RfWigiWjoiKSwgVE9ZRkxBR19CSU58VE9ZRkxBR19VTUFTSykpCitVU0VfTUtQQVNTV0QoTkVXVE9ZKG1rcGFzc3dkLCAiPjJTOm06UCM9MDwwIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01LU1dBUChORVdUT1kobWtzd2FwLCAiPDE+MUw6IiwgVE9ZRkxBR19TQklOKSkKK1VTRV9NS1RFTVAoTkVXVE9ZKG1rdGVtcCwgIj4xKHRtcGRpcik7OnVxZChkaXJlY3RvcnkpcDp0IiwgVE9ZRkxBR19CSU4pKQorVVNFX01PRElORk8oTkVXVE9ZKG1vZGluZm8sICI8MWI6azpGOjAiLCBUT1lGTEFHX1NCSU4pKQorVVNFX01PRFBST0JFKE5FV1RPWShtb2Rwcm9iZSwgImFscnF2c0RiZCoiLCBUT1lGTEFHX1NCSU4pKQorVVNFX01PUkUoTkVXVE9ZKG1vcmUsIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9NT1VOVChORVdUT1kobW91bnQsICI/Uk86YWZucnZ3dDpvKlstcnddIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19TVEFZUk9PVCkpCitVU0VfTU9VTlRQT0lOVChORVdUT1kobW91bnRwb2ludCwgIjwxcWR4Wy1keF0iLCBUT1lGTEFHX0JJTikpCitVU0VfTVYoTkVXVE9ZKG12LCAiPDF4KHN3YXApdih2ZXJib3NlKW5GKHJlbW92ZS1kZXN0aW5hdGlvbilmaXQ6VFstbmldIiwgVE9ZRkxBR19CSU4pKQorVVNFX05CRF9DTElFTlQoT0xEVE9ZKG5iZC1jbGllbnQsIG5iZF9jbGllbnQsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9OQkRfU0VSVkVSKE9MRFRPWShuYmQtc2VydmVyLCBuYmRfc2VydmVyLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTkJEX0NMSUVOVChORVdUT1kobmJkX2NsaWVudCwgIjwzPjNiIzwxPjQyOTQ5NjcyOTU9NDA5Nm5zIiwgMCkpCitVU0VfTkJEX1NFUlZFUihORVdUT1kobmJkX3NlcnZlciwgIjwxPjFyIiwgMCkpCitVU0VfTkVUQ0FUKE9MRFRPWShuYywgbmV0Y2F0LCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTkVUQ0FUKE5FV1RPWShuZXRjYXQsICJedEVsTHcjPDFXIzwxcCM8MT42NTUzNXEjPDFPOm86czpmOjQ2dVVuelshdGxMXVshTHddWyFMdV1bITQ2VV1bIW9PXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9ORVRTVEFUKE5FV1RPWShuZXRzdGF0LCAicFdyeHd1dG5lYWwiLCBUT1lGTEFHX0JJTikpCitVU0VfTklDRShORVdUT1kobmljZSwgIl48MW4jIiwgVE9ZRkxBR19CSU4pKQorVVNFX05MKE5FV1RPWShubCwgInYjPTFsI3cjPDA9NmI6bjpzOkUiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTk9IVVAoTkVXVE9ZKG5vaHVwLCAiPDFeIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19BUkdGQUlMKDEyNSkpKQorVVNFX05QUk9DKE5FV1RPWShucHJvYywgIihhbGwpIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX05TRU5URVIoTkVXVE9ZKG5zZW50ZXIsICI8MWEoYWxsKUYobm8tZm9yayl0IzwxKHRhcmdldClDKGNncm91cCk6OyBpKGlwYyk6OyBtKG1vdW50KTo7IG4obmV0KTo7IHAocGlkKTo7IHUodXRzKTo7IFUodXNlcik6OyAiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX1NUQVlST09UKSkKK1VTRV9PRChORVdUT1kob2QsICJqI3Z3IzwxPTE2TiN4c29kY2JBOnQqIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX09ORUlUKE5FV1RPWShvbmVpdCwgIl48MW5jOnAzWyFwbl0iLCBUT1lGTEFHX1NCSU4pKQorVVNFX09QRU5WVChORVdUT1kob3BlbnZ0LCAiXjwxYyM8MT42M3N3IiwgVE9ZRkxBR19CSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfUEFSVFBST0JFKE5FV1RPWShwYXJ0cHJvYmUsICI8MSIsIFRPWUZMQUdfU0JJTikpCitVU0VfUEFTU1dEKE5FV1RPWShwYXNzd2QsICI+MWE6ZGx1IiwgVE9ZRkxBR19TVEFZUk9PVHxUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUEFTVEUoTkVXVE9ZKHBhc3RlLCAiZDpzIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1BBVENIKE5FV1RPWShwYXRjaCwgIj4yKG5vLWJhY2t1cC1pZi1taXNtYXRjaCkoZHJ5LXJ1bilGI2cjZnVscCN2KHZlcmJvc2UpQGQ6aTpScyhxdWlldClbIXN2XSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9QR1JFUChORVdUT1kocGdyZXAsICI/Y2xkOnUqVSp0KnMqUCpnKkcqZm5vdnhMOlstbm9dIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1BJRE9GKE5FV1RPWShwaWRvZiwgInNvOngiLCBUT1lGTEFHX0JJTikpCitVU0VfUElORyhORVdUT1kocGluZywgIjwxPjFtI3QjPDA+MjU1PTY0YyM8MD0zcyM8MD40MDY0PTU2aSVXIzwwPTN3IzwwcWY0Nkk6Wy00Nl0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX1BJTkcoT0xEVE9ZKHBpbmc2LCBwaW5nLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX1BJVk9UX1JPT1QoTkVXVE9ZKHBpdm90X3Jvb3QsICI8Mj4yIiwgVE9ZRkxBR19TQklOKSkKK1VTRV9QS0lMTChORVdUT1kocGtpbGwsICAgICI/VnUqVSp0KnMqUCpnKkcqZm5vdnhsOlstbm9dIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1BNQVAoTkVXVE9ZKHBtYXAsICI8MXBxeCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9SRUJPT1QoT0xEVE9ZKHBvd2Vyb2ZmLCByZWJvb3QsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9QUklOVEVOVihORVdUT1kocHJpbnRlbnYsICIobnVsbCkwIiwgVE9ZRkxBR19CSU4pKQorVVNFX1BSSU5URihORVdUT1kocHJpbnRmLCAiPDE/XiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfTUFZRk9SSykpCitVU0VfVUxJTUlUKE9MRFRPWShwcmxpbWl0LCB1bGltaXQsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9QUyhORVdUT1kocHMsICJrKHNvcnQpKlAocHBpZCkqYUFkZWZsTW5vKk8qcChwaWQpKnMqdCpUdSpVKmcqRyp3Wlshb2xdWytBZV1bIW9PXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9QV0QoTkVXVE9ZKHB3ZCwgIj4wTFBbLUxQXSIsIFRPWUZMQUdfQklOfFRPWUZMQUdfTUFZRk9SSykpCitVU0VfUFdEWChORVdUT1kocHdkeCwgIjwxYSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9QV0dFTihORVdUT1kocHdnZW4sICI+MnIocmVtb3ZlKTpjKGNhcGl0YWxpemUpbihudW1lcmFscyl5KHN5bWJvbHMpcyhzZWN1cmUpQihhbWJpZ3VvdXMpaChoZWxwKUMxdkEobm8tY2FwaXRhbGl6ZSkwKG5vLW51bWVyYWxzKVstY0FdWy1uMF1bLUMxXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9SRUFEQUhFQUQoTkVXVE9ZKHJlYWRhaGVhZCwgTlVMTCwgVE9ZRkxBR19CSU4pKQorVVNFX1JFQURFTEYoTkVXVE9ZKHJlYWRlbGYsICI8MShkeW4tc3ltcylBYWRlaGxucDpTc1d4OiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9SRUFETElOSyhORVdUT1kocmVhZGxpbmssICI8MXZuZihjYW5vbmljYWxpemUpZW1xelstbWVmXVstcXZdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1JFQUxQQVRIKE5FV1RPWShyZWFscGF0aCwgIjwxKHJlbGF0aXZlLWJhc2UpOlIocmVsYXRpdmUtdG8pOnMobm8tc3ltbGlua3MpTFBlbXF6Wy1Qc11bLUxQXVstbWVdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1JFQk9PVChORVdUT1kocmVib290LCAiZDpmbiIsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9SRU5JQ0UoTkVXVE9ZKHJlbmljZSwgIjwxZ3B1biN8IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1JFU0VUKE5FV1RPWShyZXNldCwgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1JFU1RPUkVDT04oTkVXVE9ZKHJlc3RvcmVjb24sICI8MURGblJydiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfUkVWKE5FV1RPWShyZXYsIE5VTEwsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9SRktJTEwoTkVXVE9ZKHJma2lsbCwgIjwxPjIiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX1JNKE5FV1RPWShybSwgImYoZm9yY2UpaVJydlstZmldIiwgVE9ZRkxBR19CSU4pKQorVVNFX1JNRElSKE5FV1RPWShybWRpciwgIjwxKGlnbm9yZS1mYWlsLW9uLW5vbi1lbXB0eSlwKHBhcmVudHMpIiwgVE9ZRkxBR19CSU4pKQorVVNFX1JNTU9EKE5FV1RPWShybW1vZCwgIjwxd2YiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfUk9VVEUoTkVXVE9ZKHJvdXRlLCAiP25lQToiLCBUT1lGTEFHX1NCSU4pKQorVVNFX1JUQ1dBS0UoTkVXVE9ZKHJ0Y3dha2UsICIobGlzdC1tb2Rlcyk7KGF1dG8pYShkZXZpY2UpZDoobG9jYWwpbChtb2RlKW06KHNlY29uZHMpcyModGltZSl0Iyh1dGMpdSh2ZXJib3NlKXZbIWFsdV0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUlVOQ09OKE5FV1RPWShydW5jb24sICJePDIiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX1NFRChORVdUT1koc2VkLCAiKGhlbHApKHZlcnNpb24pKHRhcnhmb3JtKWUqZippOjtuRXJ6KG51bGwtZGF0YSlzWytFcl0iLCBUT1lGTEFHX0JJTnxUT1lGTEFHX05PSEVMUCkpCitVU0VfU0VOREVWRU5UKE5FV1RPWShzZW5kZXZlbnQsICI8ND40IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9TRVEoTkVXVE9ZKHNlcSwgIjwxPjM/ZjpzOndbIWZ3XSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSChORVdUT1koc2V0LCAwLCBUT1lGTEFHX05PRk9SSykpCitVU0VfU0VURU5GT1JDRShORVdUT1koc2V0ZW5mb3JjZSwgIjwxPjEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX1NFVEZBVFRSKE5FV1RPWShzZXRmYXR0ciwgImhuOnx2Ong6fFsheHZdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NFVFNJRChORVdUT1koc2V0c2lkLCAiXjwxd2NAZFshZGNdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIKE5FV1RPWShzaCwgIjBeKG5vZWRpdGluZykobm9wcm9maWxlKShub3JjKXNjOmkiLCBUT1lGTEFHX0JJTikpCitVU0VfU0hBMVNVTShPTERUT1koc2hhMXN1bSwgbWQ1c3VtLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0hBMjI0U1VNKE9MRFRPWShzaGEyMjRzdW0sIG1kNXN1bSwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIQTI1NlNVTShPTERUT1koc2hhMjU2c3VtLCBtZDVzdW0sIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSEEzODRTVU0oT0xEVE9ZKHNoYTM4NHN1bSwgbWQ1c3VtLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0hBM1NVTShORVdUT1koc2hhM3N1bSwgImJTYSM8MTI4PjUxMj0yMjQiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0hBNTEyU1VNKE9MRFRPWShzaGE1MTJzdW0sIG1kNXN1bSwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIKE5FV1RPWShzaGlmdCwgIj4xIiwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX1NIUkVEKE5FV1RPWShzaHJlZCwgIjwxenh1cyM8MW4jPDFvIzwwZiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSFVGKE5FV1RPWShzaHVmLCAiemVuIzwwIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NLRUxFVE9OKE5FV1RPWShza2VsZXRvbiwgIih3YWxydXMpKGJsdWJiZXIpOjsoYWxzbyk6aChobG9uZyk6OyBnKGdsb25nKTogZihsb25nZik6O2VAZCpjI2I6YSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TS0VMRVRPTl9BTElBUyhORVdUT1koc2tlbGV0b25fYWxpYXMsICJiI2RxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NMRUVQKE5FV1RPWShzbGVlcCwgIjwxIiwgVE9ZRkxBR19CSU4pKQorVVNFX1NOVFAoTkVXVE9ZKHNudHAsICI+MU0gOm0gOlNwOnQjPDA9MT4xNmFzZERxciM8ND4xNz0xMFshYXNdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NPUlQoTkVXVE9ZKHNvcnQsIFVTRV9TT1JUX0ZMT0FUKCJnIikiUzpUOm0iICJvOmsqdDoiICJ4VmJNQ2NzemRmaXJ1biIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfQVJHRkFJTCgyKSkpCitVU0VfU0goTkVXVE9ZKHNvdXJjZSwgIjwxIiwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX1NQTElUKE5FV1RPWShzcGxpdCwgIj4yYSM8MT0yPjliIzwxbCM8MW4jPDFbIWJsXVshYm5dWyFsbl0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU1RBVChORVdUT1koc3RhdCwgIjwxYzooZm9ybWF0KWZMdCIsIFRPWUZMQUdfQklOKSkKK1VTRV9TVFJBQ0UoTkVXVE9ZKHN0cmFjZSwgIl5wI3MjdiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfU1RSSU5HUyhORVdUT1koc3RyaW5ncywgInQ6YW4jPTQ8MWZvIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NUVFkoTkVXVE9ZKHN0dHksICI/YUY6Z1shYWddIiwgVE9ZRkxBR19CSU4pKQorVVNFX1NVKE5FV1RPWShzdSwgIl5sbXB1Omc6YzpzOlshbG1wXSIsIFRPWUZMQUdfQklOfFRPWUZMQUdfUk9PVE9OTFkpKQorVVNFX1NVTE9HSU4oTkVXVE9ZKHN1bG9naW4sICJ0IzwwPTAiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19ORUVEUk9PVCkpCitVU0VfU1dBUE9GRihORVdUT1koc3dhcG9mZiwgIjwxPjFhdiIsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9TV0FQT04oTkVXVE9ZKHN3YXBvbiwgIjwxPjFwIzwwPjMyNzY3ZCIsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9TV0lUQ0hfUk9PVChORVdUT1koc3dpdGNoX3Jvb3QsICI8MmM6aCIsIFRPWUZMQUdfU0JJTikpCitVU0VfU1lOQyhORVdUT1koc3luYywgTlVMTCwgVE9ZRkxBR19CSU4pKQorVVNFX1NZU0NUTChORVdUT1koc3lzY3RsLCAiXm5lTnF3cGFBWyFhcF1bIWFxXVshYXddWythQV0iLCBUT1lGTEFHX1NCSU4pKQorVVNFX1NZU0xPR0QoTkVXVE9ZKHN5c2xvZ2QsIj4wbCM8MT44PThSOmIjPDA+OTk9MXMjPDA9MjAwbSM8MD43MTU4Mjc4Nz0yME86cDpmOmE6blNLTEQiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19TVEFZUk9PVCkpCitVU0VfVEFDKE5FV1RPWSh0YWMsIE5VTEwsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UQUlMKE5FV1RPWSh0YWlsLCAiP2ZGczpjKGJ5dGVzKS1uKGxpbmVzKS1bLWNuXVstZkZdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9UQVIoTkVXVE9ZKHRhciwgIiYob25lLWZpbGUtc3lzdGVtKShuby1pZ25vcmUtY2FzZSkoaWdub3JlLWNhc2UpKG5vLWFuY2hvcmVkKShhbmNob3JlZCkobm8td2lsZGNhcmRzKSh3aWxkY2FyZHMpKG5vLXdpbGRjYXJkcy1tYXRjaC1zbGFzaCkod2lsZGNhcmRzLW1hdGNoLXNsYXNoKShzaG93LXRyYW5zZm9ybWVkLW5hbWVzKShzZWxpbnV4KShyZXN0cmljdCkoZnVsbC10aW1lKShuby1yZWN1cnNpb24pKG51bGwpKG51bWVyaWMtb3duZXIpKG5vLXNhbWUtcGVybWlzc2lvbnMpKG92ZXJ3cml0ZSkoZXhjbHVkZSkqKHNvcnQpOzoobW9kZSk6KG10aW1lKTooZ3JvdXApOihvd25lcik6KHRvLWNvbW1hbmQpOn4oc3RyaXAtY29tcG9uZW50cykoc3RyaXApI34odHJhbnNmb3JtKSh4Zm9ybSkqbyhuby1zYW1lLW93bmVyKXAoc2FtZS1wZXJtaXNzaW9ucylrKGtlZXAtb2xkKWMoY3JlYXRlKXxoKGRlcmVmZXJlbmNlKXgoZXh0cmFjdCl8dChsaXN0KXx2KHZlcmJvc2UpSih4eilqKGJ6aXAyKXooZ3ppcClTKHNwYXJzZSlPKHRvLXN0ZG91dClQKGFic29sdXRlLW5hbWVzKW0odG91Y2gpWChleGNsdWRlLWZyb20pKlQoZmlsZXMtZnJvbSkqSSh1c2UtY29tcHJlc3MtcHJvZ3JhbSk6QyhkaXJlY3RvcnkpOmYoZmlsZSk6YXNbIXR4Y11bIWp6SmFdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1RBU0tTRVQoTkVXVE9ZKHRhc2tzZXQsICI8MV5wYSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UQ1BTVkQoTkVXVE9ZKHRjcHN2ZCwgIl48M2MjPTMwPDFiIz0yMDwwQzp1Omw6aEV2IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1RFRShORVdUT1kodGVlLCAiaWEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVEVMTkVUKE5FV1RPWSh0ZWxuZXQsICI8MT4yIiwgVE9ZRkxBR19CSU4pKQorVVNFX1RFTE5FVEQoTkVXVE9ZKHRlbG5ldGQsICJ3IzwwYjpwIzwwPjY1NTM1PTIzZjpsOkZTS2lbIXdpXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9URVNUKE5FV1RPWSh0ZXN0LCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX05PSEVMUHxUT1lGTEFHX01BWUZPUkspKQorVVNFX1RGVFAoTkVXVE9ZKHRmdHAsICI8MWIjPDg+NjU0NjRyOmw6Z3xwfFshZ3BdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1RGVFBEKE5FV1RPWSh0ZnRwZCwgInJjdTpsIiwgVE9ZRkxBR19CSU4pKQorVVNFX1RJTUUoTkVXVE9ZKHRpbWUsICI8MV5wdlstcHZdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19NQVlGT1JLKSkKK1VTRV9USU1FT1VUKE5FV1RPWSh0aW1lb3V0LCAiPDJeKGZvcmVncm91bmQpKHByZXNlcnZlLXN0YXR1cyl2azpzKHNpZ25hbCk6aSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfQVJHRkFJTCgxMjUpKSkKK1VTRV9UT1AoTkVXVE9ZKHRvcCwgIj4wTypoIiAiSGsqbypwKnUqcyM8MWQlPDEwMD0zMDAwbSNuIzwxYnFbIW9PXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UT1VDSChORVdUT1kodG91Y2gsICI8MWFjZDpmbXI6dDpoWyFkdHJdIiwgVE9ZRkxBR19CSU4pKQorVVNFX1NIKE9MRFRPWSh0b3lzaCwgc2gsIFRPWUZMQUdfQklOKSkKK1VTRV9UUihORVdUT1kodHIsICJePDE+MkNjc3RkWytjQ10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVFJBQ0VST1VURShORVdUT1kodHJhY2Vyb3V0ZSwgIjwxPjJpOmYjPDE+MjU1PTF6IzwwPjg2NDAwPTBnKncjPDA+ODY0MDA9NXQjPDA+MjU1PTBzOnEjPDE+MjU1PTNwIzwxPjY1NTM1PTMzNDM0bSM8MT4yNTU9MzBydm5kbElVRjY0IiwgVE9ZRkxBR19TVEFZUk9PVHxUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVFJBQ0VST1VURShPTERUT1kodHJhY2Vyb3V0ZTYsdHJhY2Vyb3V0ZSwgVE9ZRkxBR19TVEFZUk9PVHxUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVFJVRShORVdUT1kodHJ1ZSwgTlVMTCwgVE9ZRkxBR19CSU58VE9ZRkxBR19OT0hFTFB8VE9ZRkxBR19NQVlGT1JLKSkKK1VTRV9UUlVOQ0FURShORVdUT1kodHJ1bmNhdGUsICI8MXM6fGMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVFMoTkVXVE9ZKHRzLCAiaW1zIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9UU09SVChORVdUT1kodHNvcnQsICI+MSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UVFkoTkVXVE9ZKHR0eSwgInMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVFVOQ1RMKE5FV1RPWSh0dW5jdGwsICI8MT4xdHxkfHU6VFshdGRdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1VDTEFNUFNFVChORVdUT1kodWNsYW1wc2V0LCAicCNhbSM8LTE+MTAyNE0jPC0xPjEwMjRSIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19TVEFZUk9PVCkpCitVU0VfVENQU1ZEKE9MRFRPWSh1ZHBzdmQsIHRjcHN2ZCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1VMSU1JVChORVdUT1kodWxpbWl0LCAiPjFQIzwxU0hhdnV0c3JScXBubWxpZmVkY1stU0hdWyFhcHZ1dHNyUnFubWxpZmVkY10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVU1PVU5UKE5FV1RPWSh1bW91bnQsICJjbmREZmxyYXQqdlshbmFdIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19TVEFZUk9PVCkpCitVU0VfVU5BTUUoTkVXVE9ZKHVuYW1lLCAicGFvbXZybnMiLCBUT1lGTEFHX0JJTikpCitVU0VfVU5JQ09ERShORVdUT1kodW5pY29kZSwgIjwxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1VOSVEoTkVXVE9ZKHVuaXEsICJmI3MjdyN6aWNkdSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9VTklYMkRPUyhORVdUT1kodW5peDJkb3MsIDAsIFRPWUZMQUdfQklOKSkKK1VTRV9VTkxJTksoTkVXVE9ZKHVubGluaywgIjwxPjEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0goTkVXVE9ZKHVuc2V0LCAiZnZuWyFmdl0iLCBUT1lGTEFHX05PRk9SSykpCitVU0VfVU5TSEFSRShORVdUT1kodW5zaGFyZSwgIjwxXmEoYWxsKWYoZm9yaylyKG1hcC1yb290LXVzZXIpQyhjZ3JvdXApOjsgaShpcGMpOjsgbShtb3VudCk6OyBuKG5ldCk6OyBwKHBpZCk6OyB1KHV0cyk6OyBVKHVzZXIpOjsgIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19TVEFZUk9PVCkpCitVU0VfVVBUSU1FKE5FV1RPWSh1cHRpbWUsICI+MHBzIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1VTRVJBREQoTkVXVE9ZKHVzZXJhZGQsICI8MT4ydSM8MEc6czpnOmg6U0RIIiwgVE9ZRkxBR19ORUVEUk9PVHxUT1lGTEFHX1VNQVNLfFRPWUZMQUdfU0JJTikpCitVU0VfVVNFUkRFTChORVdUT1kodXNlcmRlbCwgIjwxPjFyIiwgVE9ZRkxBR19ORUVEUk9PVHxUT1lGTEFHX1NCSU4pKQorVVNFX1VTTEVFUChORVdUT1kodXNsZWVwLCAiPDE+MSIsIFRPWUZMQUdfQklOKSkKK1VTRV9VVURFQ09ERShORVdUT1kodXVkZWNvZGUsICI+MW86IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19VTUFTSykpCitVU0VfVVVFTkNPREUoTkVXVE9ZKHV1ZW5jb2RlLCAiPDE+Mm0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVVVJREdFTihORVdUT1kodXVpZGdlbiwgIj4wcihyYW5kb20pIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1ZDT05GSUcoTkVXVE9ZKHZjb25maWcsICI8Mj40IiwgVE9ZRkxBR19ORUVEUk9PVHxUT1lGTEFHX1NCSU4pKQorVVNFX1ZJKE5FV1RPWSh2aSwgIj4xczoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVk1TVEFUKE5FV1RPWSh2bXN0YXQsICI+Mm4iLCBUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX1coTkVXVE9ZKHcsIE5VTEwsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSChORVdUT1kod2FpdCwgIm4iLCBUT1lGTEFHX05PRk9SSykpCitVU0VfV0FUQ0goTkVXVE9ZKHdhdGNoLCAiXjwxbiU8MTAwPTIwMDB0ZWJ4IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1dBVENIRE9HKE5FV1RPWSh3YXRjaGRvZywgIjwxPjFGdCM9NDwxVCM9NjA8MSIsIFRPWUZMQUdfTkVFRFJPT1R8VE9ZRkxBR19TQklOKSkKK1VTRV9XQyhORVdUT1kod2MsICJMY213bCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9XR0VUKE5FV1RPWSh3Z2V0LCAiPDE+MShtYXgtcmVkaXJlY3QpIzwwPTIwZChkZWJ1ZylPKG91dHB1dC1kb2N1bWVudCk6cChwb3N0LWRhdGEpOiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9XSElDSChORVdUT1kod2hpY2gsICI8MWEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfV0hPKE5FV1RPWSh3aG8sICJhIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1dIT0FNSShPTERUT1kod2hvYW1pLCBsb2duYW1lLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfWEFSR1MoTkVXVE9ZKHhhcmdzLCAiXkU6UCM8MChudWxsKT0xb3B0cihuby1ydW4taWYtZW1wdHkpbiM8MShtYXgtYXJncylzIzBbITBFXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9YWEQoTkVXVE9ZKHh4ZCwgIj4xYyM8MD4yNTZsI28jZyM8MD0yZWlwcnMjWyFyc11bIXJlXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9YWkNBVChORVdUT1koeHpjYXQsIE5VTEwsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9ZRVMoTkVXVE9ZKHllcywgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1pDQVQoTkVXVE9ZKHpjYXQsICAgICAiY2Rma3QxMjM0NTY3ODlbLTEyMzQ1Njc4OV0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCmRpZmYgLS1naXQgYS9hbmRyb2lkL2xpbnV4L2dlbmVyYXRlZC90YWdzLmggYi9hbmRyb2lkL2xpbnV4L2dlbmVyYXRlZC90YWdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQ3ZTNhNQotLS0gL2Rldi9udWxsCisrKyBiL2FuZHJvaWQvbGludXgvZ2VuZXJhdGVkL3RhZ3MuaApAQCAtMCwwICsxLDE0MCBAQAorI2RlZmluZSBDUF9tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIF9DUF9tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwwKQorI2RlZmluZSBDUF9vd25lcnNoaXAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIF9DUF9vd25lcnNoaXAgICAgICAgICAgICAgICAgICAgICgxPDwxKQorI2RlZmluZSBDUF90aW1lc3RhbXBzICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIF9DUF90aW1lc3RhbXBzICAgICAgICAgICAgICAgICAgICgxPDwyKQorI2RlZmluZSBDUF9jb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIF9DUF9jb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICgxPDwzKQorI2RlZmluZSBDUF94YXR0ciAgICAgICAgICAgICAgICAgICAgICAgICA0CisjZGVmaW5lIF9DUF94YXR0ciAgICAgICAgICAgICAgICAgICAgICAgICgxPDw0KQorI2RlZmluZSBERF9jb252X2ZzeW5jICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIF9ERF9jb252X2ZzeW5jICAgICAgICAgICAgICAgICAgICgxPDwwKQorI2RlZmluZSBERF9jb252X25vZXJyb3IgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIF9ERF9jb252X25vZXJyb3IgICAgICAgICAgICAgICAgICgxPDwxKQorI2RlZmluZSBERF9jb252X25vdHJ1bmMgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIF9ERF9jb252X25vdHJ1bmMgICAgICAgICAgICAgICAgICgxPDwyKQorI2RlZmluZSBERF9jb252X3N5bmMgICAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIF9ERF9jb252X3N5bmMgICAgICAgICAgICAgICAgICAgICgxPDwzKQorI2RlZmluZSBERF9pZmxhZ19jb3VudF9ieXRlcyAgICAgICAgICAgICAwCisjZGVmaW5lIF9ERF9pZmxhZ19jb3VudF9ieXRlcyAgICAgICAgICAgICgxPDwwKQorI2RlZmluZSBERF9pZmxhZ19za2lwX2J5dGVzICAgICAgICAgICAgICAxCisjZGVmaW5lIF9ERF9pZmxhZ19za2lwX2J5dGVzICAgICAgICAgICAgICgxPDwxKQorI2RlZmluZSBERF9vZmxhZ19zZWVrX2J5dGVzICAgICAgICAgICAgICAwCisjZGVmaW5lIF9ERF9vZmxhZ19zZWVrX2J5dGVzICAgICAgICAgICAgICgxPDwwKQorI2RlZmluZSBQU19QSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIF9QU19QSUQgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwwKQorI2RlZmluZSBQU19QUElEICAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIF9QU19QUElEICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwxKQorI2RlZmluZSBQU19QUkkgICAgICAgICAgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIF9QU19QUkkgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwyKQorI2RlZmluZSBQU19OSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIF9QU19OSSAgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwzKQorI2RlZmluZSBQU19BRERSICAgICAgICAgICAgICAgICAgICAgICAgICA0CisjZGVmaW5lIF9QU19BRERSICAgICAgICAgICAgICAgICAgICAgICAgICgxPDw0KQorI2RlZmluZSBQU19TWiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1CisjZGVmaW5lIF9QU19TWiAgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDw1KQorI2RlZmluZSBQU19SU1MgICAgICAgICAgICAgICAgICAgICAgICAgICA2CisjZGVmaW5lIF9QU19SU1MgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDw2KQorI2RlZmluZSBQU19QR0lEICAgICAgICAgICAgICAgICAgICAgICAgICA3CisjZGVmaW5lIF9QU19QR0lEICAgICAgICAgICAgICAgICAgICAgICAgICgxPDw3KQorI2RlZmluZSBQU19WU1ogICAgICAgICAgICAgICAgICAgICAgICAgICA4CisjZGVmaW5lIF9QU19WU1ogICAgICAgICAgICAgICAgICAgICAgICAgICgxPDw4KQorI2RlZmluZSBQU19NQUpGTCAgICAgICAgICAgICAgICAgICAgICAgICA5CisjZGVmaW5lIF9QU19NQUpGTCAgICAgICAgICAgICAgICAgICAgICAgICgxPDw5KQorI2RlZmluZSBQU19NSU5GTCAgICAgICAgICAgICAgICAgICAgICAgICAxMAorI2RlZmluZSBfUFNfTUlORkwgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MTApCisjZGVmaW5lIFBTX1BSICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExCisjZGVmaW5lIF9QU19QUiAgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwxMSkKKyNkZWZpbmUgUFNfUFNSICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgX1BTX1BTUiAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDEyKQorI2RlZmluZSBQU19SVFBSSU8gICAgICAgICAgICAgICAgICAgICAgICAxMworI2RlZmluZSBfUFNfUlRQUklPICAgICAgICAgICAgICAgICAgICAgICAoMTw8MTMpCisjZGVmaW5lIFBTX1NDSCAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0CisjZGVmaW5lIF9QU19TQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwxNCkKKyNkZWZpbmUgUFNfQ1BVICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUKKyNkZWZpbmUgX1BTX0NQVSAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDE1KQorI2RlZmluZSBQU19USUQgICAgICAgICAgICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBfUFNfVElEICAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MTYpCisjZGVmaW5lIFBTX1RDTlQgICAgICAgICAgICAgICAgICAgICAgICAgIDE3CisjZGVmaW5lIF9QU19UQ05UICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwxNykKKyNkZWZpbmUgUFNfQklUICAgICAgICAgICAgICAgICAgICAgICAgICAgMTgKKyNkZWZpbmUgX1BTX0JJVCAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDE4KQorI2RlZmluZSBQU19UVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAxOQorI2RlZmluZSBfUFNfVFRZICAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MTkpCisjZGVmaW5lIFBTX1dDSEFOICAgICAgICAgICAgICAgICAgICAgICAgIDIwCisjZGVmaW5lIF9QU19XQ0hBTiAgICAgICAgICAgICAgICAgICAgICAgICgxPDwyMCkKKyNkZWZpbmUgUFNfTEFCRUwgICAgICAgICAgICAgICAgICAgICAgICAgMjEKKyNkZWZpbmUgX1BTX0xBQkVMICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDIxKQorI2RlZmluZSBQU19DT01NICAgICAgICAgICAgICAgICAgICAgICAgICAyMgorI2RlZmluZSBfUFNfQ09NTSAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MjIpCisjZGVmaW5lIFBTX05BTUUgICAgICAgICAgICAgICAgICAgICAgICAgIDIzCisjZGVmaW5lIF9QU19OQU1FICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwyMykKKyNkZWZpbmUgUFNfQ09NTUFORCAgICAgICAgICAgICAgICAgICAgICAgMjQKKyNkZWZpbmUgX1BTX0NPTU1BTkQgICAgICAgICAgICAgICAgICAgICAgKDE8PDI0KQorI2RlZmluZSBQU19DTURMSU5FICAgICAgICAgICAgICAgICAgICAgICAyNQorI2RlZmluZSBfUFNfQ01ETElORSAgICAgICAgICAgICAgICAgICAgICAoMTw8MjUpCisjZGVmaW5lIFBTX0FSR1MgICAgICAgICAgICAgICAgICAgICAgICAgIDI2CisjZGVmaW5lIF9QU19BUkdTICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwyNikKKyNkZWZpbmUgUFNfQ01EICAgICAgICAgICAgICAgICAgICAgICAgICAgMjcKKyNkZWZpbmUgX1BTX0NNRCAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDI3KQorI2RlZmluZSBQU19VSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAyOAorI2RlZmluZSBfUFNfVUlEICAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MjgpCisjZGVmaW5lIFBTX1VTRVIgICAgICAgICAgICAgICAgICAgICAgICAgIDI5CisjZGVmaW5lIF9QU19VU0VSICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwyOSkKKyNkZWZpbmUgUFNfUlVJRCAgICAgICAgICAgICAgICAgICAgICAgICAgMzAKKyNkZWZpbmUgX1BTX1JVSUQgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDMwKQorI2RlZmluZSBQU19SVVNFUiAgICAgICAgICAgICAgICAgICAgICAgICAzMQorI2RlZmluZSBfUFNfUlVTRVIgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MzEpCisjZGVmaW5lIFBTX0dJRCAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyCisjZGVmaW5lIF9QU19HSUQgICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDMyKQorI2RlZmluZSBQU19HUk9VUCAgICAgICAgICAgICAgICAgICAgICAgICAzMworI2RlZmluZSBfUFNfR1JPVVAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDwzMykKKyNkZWZpbmUgUFNfUkdJRCAgICAgICAgICAgICAgICAgICAgICAgICAgMzQKKyNkZWZpbmUgX1BTX1JHSUQgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8MzQpCisjZGVmaW5lIFBTX1JHUk9VUCAgICAgICAgICAgICAgICAgICAgICAgIDM1CisjZGVmaW5lIF9QU19SR1JPVVAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDM1KQorI2RlZmluZSBQU19USU1FICAgICAgICAgICAgICAgICAgICAgICAgICAzNgorI2RlZmluZSBfUFNfVElNRSAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDwzNikKKyNkZWZpbmUgUFNfRUxBUFNFRCAgICAgICAgICAgICAgICAgICAgICAgMzcKKyNkZWZpbmUgX1BTX0VMQVBTRUQgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8MzcpCisjZGVmaW5lIFBTX1RJTUVfICAgICAgICAgICAgICAgICAgICAgICAgIDM4CisjZGVmaW5lIF9QU19USU1FXyAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDM4KQorI2RlZmluZSBQU19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzOQorI2RlZmluZSBfUFNfQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDwzOSkKKyNkZWZpbmUgUFNfX1ZTWiAgICAgICAgICAgICAgICAgICAgICAgICAgNDAKKyNkZWZpbmUgX1BTX19WU1ogICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NDApCisjZGVmaW5lIFBTX19NRU0gICAgICAgICAgICAgICAgICAgICAgICAgIDQxCisjZGVmaW5lIF9QU19fTUVNICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDQxKQorI2RlZmluZSBQU19fQ1BVICAgICAgICAgICAgICAgICAgICAgICAgICA0MgorI2RlZmluZSBfUFNfX0NQVSAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw0MikKKyNkZWZpbmUgUFNfVklSVCAgICAgICAgICAgICAgICAgICAgICAgICAgNDMKKyNkZWZpbmUgX1BTX1ZJUlQgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NDMpCisjZGVmaW5lIFBTX1JFUyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0CisjZGVmaW5lIF9QU19SRVMgICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDQ0KQorI2RlZmluZSBQU19TSFIgICAgICAgICAgICAgICAgICAgICAgICAgICA0NQorI2RlZmluZSBfUFNfU0hSICAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw0NSkKKyNkZWZpbmUgUFNfUkVBRCAgICAgICAgICAgICAgICAgICAgICAgICAgNDYKKyNkZWZpbmUgX1BTX1JFQUQgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NDYpCisjZGVmaW5lIFBTX1dSSVRFICAgICAgICAgICAgICAgICAgICAgICAgIDQ3CisjZGVmaW5lIF9QU19XUklURSAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDQ3KQorI2RlZmluZSBQU19JTyAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OAorI2RlZmluZSBfUFNfSU8gICAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw0OCkKKyNkZWZpbmUgUFNfRFJFQUQgICAgICAgICAgICAgICAgICAgICAgICAgNDkKKyNkZWZpbmUgX1BTX0RSRUFEICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NDkpCisjZGVmaW5lIFBTX0RXUklURSAgICAgICAgICAgICAgICAgICAgICAgIDUwCisjZGVmaW5lIF9QU19EV1JJVEUgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDUwKQorI2RlZmluZSBQU19TV0FQICAgICAgICAgICAgICAgICAgICAgICAgICA1MQorI2RlZmluZSBfUFNfU1dBUCAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw1MSkKKyNkZWZpbmUgUFNfRElPICAgICAgICAgICAgICAgICAgICAgICAgICAgNTIKKyNkZWZpbmUgX1BTX0RJTyAgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NTIpCisjZGVmaW5lIFBTX1NUSU1FICAgICAgICAgICAgICAgICAgICAgICAgIDUzCisjZGVmaW5lIF9QU19TVElNRSAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDUzKQorI2RlZmluZSBQU19GICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1NAorI2RlZmluZSBfUFNfRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw1NCkKKyNkZWZpbmUgUFNfUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTUKKyNkZWZpbmUgX1BTX1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NTUpCisjZGVmaW5lIFBTX1NUQVQgICAgICAgICAgICAgICAgICAgICAgICAgIDU2CisjZGVmaW5lIF9QU19TVEFUICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDU2KQorI2RlZmluZSBQU19QQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICA1NworI2RlZmluZSBfUFNfUENZICAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw1NykKZGlmZiAtLWdpdCBhL2FuZHJvaWQvbWFjL2dlbmVyYXRlZC9jb25maWcuaCBiL2FuZHJvaWQvbWFjL2dlbmVyYXRlZC9jb25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzk1OTkxCi0tLSAvZGV2L251bGwKKysrIGIvYW5kcm9pZC9tYWMvZ2VuZXJhdGVkL2NvbmZpZy5oCkBAIC0wLDAgKzEsNjgwIEBACisjZGVmaW5lIENGR19UT1lCT1ggMQorI2RlZmluZSBVU0VfVE9ZQk9YKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RPWUJPWF9ERUJVRyAwCisjZGVmaW5lIFVTRV9UT1lCT1hfREVCVUcoLi4uKQorI2RlZmluZSBDRkdfVE9ZQk9YX0ZMT0FUIDEKKyNkZWZpbmUgVVNFX1RPWUJPWF9GTE9BVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfRk9SSyAxCisjZGVmaW5lIFVTRV9UT1lCT1hfRk9SSyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfRlJFRSAwCisjZGVmaW5lIFVTRV9UT1lCT1hfRlJFRSguLi4pCisjZGVmaW5lIENGR19UT1lCT1hfSEVMUF9EQVNIREFTSCAxCisjZGVmaW5lIFVTRV9UT1lCT1hfSEVMUF9EQVNIREFTSCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfSEVMUCAxCisjZGVmaW5lIFVTRV9UT1lCT1hfSEVMUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfTElCQ1JZUFRPIDEKKyNkZWZpbmUgVVNFX1RPWUJPWF9MSUJDUllQVE8oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVE9ZQk9YX0xJQlogMQorI2RlZmluZSBVU0VfVE9ZQk9YX0xJQlooLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVE9ZQk9YX0xTTV9OT05FIDEKKyNkZWZpbmUgVVNFX1RPWUJPWF9MU01fTk9ORSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1lCT1hfTk9SRUNVUlNFIDEKKyNkZWZpbmUgVVNFX1RPWUJPWF9OT1JFQ1VSU0UoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVE9ZQk9YX09OX0FORFJPSUQgMAorI2RlZmluZSBVU0VfVE9ZQk9YX09OX0FORFJPSUQoLi4uKQorI2RlZmluZSBDRkdfVE9ZQk9YX1NFTElOVVggMAorI2RlZmluZSBVU0VfVE9ZQk9YX1NFTElOVVgoLi4uKQorI2RlZmluZSBDRkdfVE9ZQk9YX1NNQUNLIDAKKyNkZWZpbmUgVVNFX1RPWUJPWF9TTUFDSyguLi4pCisjZGVmaW5lIENGR19UT1lCT1hfU1VJRCAwCisjZGVmaW5lIFVTRV9UT1lCT1hfU1VJRCguLi4pCisjZGVmaW5lIENGR19UT1lCT1hfVUlEX1NZUyAxMDAKKyNkZWZpbmUgQ0ZHX1RPWUJPWF9VSURfVVNSIDUwMAorI2RlZmluZSBDRkdfVE9ZQk9YX1pIRUxQIDAKKyNkZWZpbmUgVVNFX1RPWUJPWF9aSEVMUCguLi4pCisjZGVmaW5lIENGR19BQ1BJIDAKKyNkZWZpbmUgVVNFX0FDUEkoLi4uKQorI2RlZmluZSBDRkdfQVJDSCAwCisjZGVmaW5lIFVTRV9BUkNIKC4uLikKKyNkZWZpbmUgQ0ZHX0FSUElORyAwCisjZGVmaW5lIFVTRV9BUlBJTkcoLi4uKQorI2RlZmluZSBDRkdfQVJQIDAKKyNkZWZpbmUgVVNFX0FSUCguLi4pCisjZGVmaW5lIENGR19BU0NJSSAwCisjZGVmaW5lIFVTRV9BU0NJSSguLi4pCisjZGVmaW5lIENGR19CQVNFMzIgMAorI2RlZmluZSBVU0VfQkFTRTMyKC4uLikKKyNkZWZpbmUgQ0ZHX0JBU0U2NCAwCisjZGVmaW5lIFVTRV9CQVNFNjQoLi4uKQorI2RlZmluZSBDRkdfQkFTRU5BTUUgMQorI2RlZmluZSBVU0VfQkFTRU5BTUUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQkMgMAorI2RlZmluZSBVU0VfQkMoLi4uKQorI2RlZmluZSBDRkdfQkxLRElTQ0FSRCAwCisjZGVmaW5lIFVTRV9CTEtESVNDQVJEKC4uLikKKyNkZWZpbmUgQ0ZHX0JMS0lEIDAKKyNkZWZpbmUgVVNFX0JMS0lEKC4uLikKKyNkZWZpbmUgQ0ZHX0JMT0NLREVWIDAKKyNkZWZpbmUgVVNFX0JMT0NLREVWKC4uLikKKyNkZWZpbmUgQ0ZHX0JPT1RDSEFSVEQgMAorI2RlZmluZSBVU0VfQk9PVENIQVJURCguLi4pCisjZGVmaW5lIENGR19CUkNUTCAwCisjZGVmaW5lIFVTRV9CUkNUTCguLi4pCisjZGVmaW5lIENGR19CVU5aSVAyIDAKKyNkZWZpbmUgVVNFX0JVTlpJUDIoLi4uKQorI2RlZmluZSBDRkdfQlpDQVQgMAorI2RlZmluZSBVU0VfQlpDQVQoLi4uKQorI2RlZmluZSBDRkdfQ0FMIDAKKyNkZWZpbmUgVVNFX0NBTCguLi4pCisjZGVmaW5lIENGR19DQVQgMQorI2RlZmluZSBVU0VfQ0FUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0NEIDAKKyNkZWZpbmUgVVNFX0NEKC4uLikKKyNkZWZpbmUgQ0ZHX0NIQVRUUiAwCisjZGVmaW5lIFVTRV9DSEFUVFIoLi4uKQorI2RlZmluZSBDRkdfQ0hDT04gMAorI2RlZmluZSBVU0VfQ0hDT04oLi4uKQorI2RlZmluZSBDRkdfQ0hHUlAgMAorI2RlZmluZSBVU0VfQ0hHUlAoLi4uKQorI2RlZmluZSBDRkdfQ0hNT0QgMQorI2RlZmluZSBVU0VfQ0hNT0QoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQ0hPV04gMAorI2RlZmluZSBVU0VfQ0hPV04oLi4uKQorI2RlZmluZSBDRkdfQ0hST09UIDAKKyNkZWZpbmUgVVNFX0NIUk9PVCguLi4pCisjZGVmaW5lIENGR19DSFJUIDAKKyNkZWZpbmUgVVNFX0NIUlQoLi4uKQorI2RlZmluZSBDRkdfQ0hTSCAwCisjZGVmaW5lIFVTRV9DSFNIKC4uLikKKyNkZWZpbmUgQ0ZHX0NIVlQgMAorI2RlZmluZSBVU0VfQ0hWVCguLi4pCisjZGVmaW5lIENGR19DS1NVTSAwCisjZGVmaW5lIFVTRV9DS1NVTSguLi4pCisjZGVmaW5lIENGR19DTEVBUiAwCisjZGVmaW5lIFVTRV9DTEVBUiguLi4pCisjZGVmaW5lIENGR19DTVAgMQorI2RlZmluZSBVU0VfQ01QKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0NPTU0gMQorI2RlZmluZSBVU0VfQ09NTSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19DT1VOVCAwCisjZGVmaW5lIFVTRV9DT1VOVCguLi4pCisjZGVmaW5lIENGR19DUElPIDEKKyNkZWZpbmUgVVNFX0NQSU8oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQ1AgMQorI2RlZmluZSBVU0VfQ1AoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfQ1JDMzIgMAorI2RlZmluZSBVU0VfQ1JDMzIoLi4uKQorI2RlZmluZSBDRkdfQ1JPTkQgMAorI2RlZmluZSBVU0VfQ1JPTkQoLi4uKQorI2RlZmluZSBDRkdfQ1JPTlRBQiAwCisjZGVmaW5lIFVTRV9DUk9OVEFCKC4uLikKKyNkZWZpbmUgQ0ZHX0NTUExJVCAwCisjZGVmaW5lIFVTRV9DU1BMSVQoLi4uKQorI2RlZmluZSBDRkdfQ1VUIDEKKyNkZWZpbmUgVVNFX0NVVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19EQVRFIDEKKyNkZWZpbmUgVVNFX0RBVEUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfREQgMQorI2RlZmluZSBVU0VfREQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfREVBTExPQ1ZUIDAKKyNkZWZpbmUgVVNFX0RFQUxMT0NWVCguLi4pCisjZGVmaW5lIENGR19ERUJVR19ESENQIDAKKyNkZWZpbmUgVVNFX0RFQlVHX0RIQ1AoLi4uKQorI2RlZmluZSBDRkdfREVNT19NQU5ZX09QVElPTlMgMAorI2RlZmluZSBVU0VfREVNT19NQU5ZX09QVElPTlMoLi4uKQorI2RlZmluZSBDRkdfREVNT19OVU1CRVIgMAorI2RlZmluZSBVU0VfREVNT19OVU1CRVIoLi4uKQorI2RlZmluZSBDRkdfREVNT19TQ0FOS0VZIDAKKyNkZWZpbmUgVVNFX0RFTU9fU0NBTktFWSguLi4pCisjZGVmaW5lIENGR19ERU1PX1VURjhUT1dDIDAKKyNkZWZpbmUgVVNFX0RFTU9fVVRGOFRPV0MoLi4uKQorI2RlZmluZSBDRkdfREVWTUVNIDAKKyNkZWZpbmUgVVNFX0RFVk1FTSguLi4pCisjZGVmaW5lIENGR19ERiAwCisjZGVmaW5lIFVTRV9ERiguLi4pCisjZGVmaW5lIENGR19ESENQNiAwCisjZGVmaW5lIFVTRV9ESENQNiguLi4pCisjZGVmaW5lIENGR19ESENQRCAwCisjZGVmaW5lIFVTRV9ESENQRCguLi4pCisjZGVmaW5lIENGR19ESENQIDAKKyNkZWZpbmUgVVNFX0RIQ1AoLi4uKQorI2RlZmluZSBDRkdfRElGRiAxCisjZGVmaW5lIFVTRV9ESUZGKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0RJUk5BTUUgMQorI2RlZmluZSBVU0VfRElSTkFNRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19ETUVTRyAwCisjZGVmaW5lIFVTRV9ETUVTRyguLi4pCisjZGVmaW5lIENGR19ETlNET01BSU5OQU1FIDAKKyNkZWZpbmUgVVNFX0ROU0RPTUFJTk5BTUUoLi4uKQorI2RlZmluZSBDRkdfRE9TMlVOSVggMQorI2RlZmluZSBVU0VfRE9TMlVOSVgoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfRFVNUExFQVNFUyAwCisjZGVmaW5lIFVTRV9EVU1QTEVBU0VTKC4uLikKKyNkZWZpbmUgQ0ZHX0RVIDEKKyNkZWZpbmUgVVNFX0RVKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0VDSE8gMQorI2RlZmluZSBVU0VfRUNITyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19FR1JFUCAxCisjZGVmaW5lIFVTRV9FR1JFUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19FSkVDVCAwCisjZGVmaW5lIFVTRV9FSkVDVCguLi4pCisjZGVmaW5lIENGR19FTlYgMQorI2RlZmluZSBVU0VfRU5WKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0VYSVQgMAorI2RlZmluZSBVU0VfRVhJVCguLi4pCisjZGVmaW5lIENGR19FWFBBTkQgMAorI2RlZmluZSBVU0VfRVhQQU5EKC4uLikKKyNkZWZpbmUgQ0ZHX0VYUFIgMQorI2RlZmluZSBVU0VfRVhQUiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19GQUNUT1IgMAorI2RlZmluZSBVU0VfRkFDVE9SKC4uLikKKyNkZWZpbmUgQ0ZHX0ZBTExPQ0FURSAwCisjZGVmaW5lIFVTRV9GQUxMT0NBVEUoLi4uKQorI2RlZmluZSBDRkdfRkFMU0UgMAorI2RlZmluZSBVU0VfRkFMU0UoLi4uKQorI2RlZmluZSBDRkdfRkRJU0sgMAorI2RlZmluZSBVU0VfRkRJU0soLi4uKQorI2RlZmluZSBDRkdfRkdSRVAgMQorI2RlZmluZSBVU0VfRkdSRVAoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfRklMRSAxCisjZGVmaW5lIFVTRV9GSUxFKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0ZJTkQgMQorI2RlZmluZSBVU0VfRklORCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19GTE9DSyAwCisjZGVmaW5lIFVTRV9GTE9DSyguLi4pCisjZGVmaW5lIENGR19GTVQgMAorI2RlZmluZSBVU0VfRk1UKC4uLikKKyNkZWZpbmUgQ0ZHX0ZPTEQgMAorI2RlZmluZSBVU0VfRk9MRCguLi4pCisjZGVmaW5lIENGR19GUkVFIDAKKyNkZWZpbmUgVVNFX0ZSRUUoLi4uKQorI2RlZmluZSBDRkdfRlJFRVJBTURJU0sgMAorI2RlZmluZSBVU0VfRlJFRVJBTURJU0soLi4uKQorI2RlZmluZSBDRkdfRlNDSyAwCisjZGVmaW5lIFVTRV9GU0NLKC4uLikKKyNkZWZpbmUgQ0ZHX0ZTRlJFRVpFIDAKKyNkZWZpbmUgVVNFX0ZTRlJFRVpFKC4uLikKKyNkZWZpbmUgQ0ZHX0ZTVFlQRSAwCisjZGVmaW5lIFVTRV9GU1RZUEUoLi4uKQorI2RlZmluZSBDRkdfRlNZTkMgMAorI2RlZmluZSBVU0VfRlNZTkMoLi4uKQorI2RlZmluZSBDRkdfRlRQR0VUIDAKKyNkZWZpbmUgVVNFX0ZUUEdFVCguLi4pCisjZGVmaW5lIENGR19GVFBQVVQgMAorI2RlZmluZSBVU0VfRlRQUFVUKC4uLikKKyNkZWZpbmUgQ0ZHX0dFVENPTkYgMQorI2RlZmluZSBVU0VfR0VUQ09ORiguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19HRVRFTkZPUkNFIDAKKyNkZWZpbmUgVVNFX0dFVEVORk9SQ0UoLi4uKQorI2RlZmluZSBDRkdfR0VURkFUVFIgMAorI2RlZmluZSBVU0VfR0VURkFUVFIoLi4uKQorI2RlZmluZSBDRkdfR0VUT1BUIDEKKyNkZWZpbmUgVVNFX0dFVE9QVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19HRVRUWSAwCisjZGVmaW5lIFVTRV9HRVRUWSguLi4pCisjZGVmaW5lIENGR19HSVRDSEVDS09VVCAwCisjZGVmaW5lIFVTRV9HSVRDSEVDS09VVCguLi4pCisjZGVmaW5lIENGR19HSVRDTE9ORSAwCisjZGVmaW5lIFVTRV9HSVRDTE9ORSguLi4pCisjZGVmaW5lIENGR19HSVRDT01QQVQgMAorI2RlZmluZSBVU0VfR0lUQ09NUEFUKC4uLikKKyNkZWZpbmUgQ0ZHX0dJVEZFVENIIDAKKyNkZWZpbmUgVVNFX0dJVEZFVENIKC4uLikKKyNkZWZpbmUgQ0ZHX0dJVElOSVQgMAorI2RlZmluZSBVU0VfR0lUSU5JVCguLi4pCisjZGVmaW5lIENGR19HSVRSRU1PVEUgMAorI2RlZmluZSBVU0VfR0lUUkVNT1RFKC4uLikKKyNkZWZpbmUgQ0ZHX0dQSU9ERVRFQ1QgMAorI2RlZmluZSBVU0VfR1BJT0RFVEVDVCguLi4pCisjZGVmaW5lIENGR19HUElPRklORCAwCisjZGVmaW5lIFVTRV9HUElPRklORCguLi4pCisjZGVmaW5lIENGR19HUElPR0VUIDAKKyNkZWZpbmUgVVNFX0dQSU9HRVQoLi4uKQorI2RlZmluZSBDRkdfR1BJT0lORk8gMAorI2RlZmluZSBVU0VfR1BJT0lORk8oLi4uKQorI2RlZmluZSBDRkdfR1BJT1NFVCAwCisjZGVmaW5lIFVTRV9HUElPU0VUKC4uLikKKyNkZWZpbmUgQ0ZHX0dSRVAgMQorI2RlZmluZSBVU0VfR1JFUCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19HUk9VUEFERCAwCisjZGVmaW5lIFVTRV9HUk9VUEFERCguLi4pCisjZGVmaW5lIENGR19HUk9VUERFTCAwCisjZGVmaW5lIFVTRV9HUk9VUERFTCguLi4pCisjZGVmaW5lIENGR19HUk9VUFMgMAorI2RlZmluZSBVU0VfR1JPVVBTKC4uLikKKyNkZWZpbmUgQ0ZHX0dVTlpJUCAwCisjZGVmaW5lIFVTRV9HVU5aSVAoLi4uKQorI2RlZmluZSBDRkdfR1pJUCAxCisjZGVmaW5lIFVTRV9HWklQKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0hFQUQgMQorI2RlZmluZSBVU0VfSEVBRCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19IRUxMTyAwCisjZGVmaW5lIFVTRV9IRUxMTyguLi4pCisjZGVmaW5lIENGR19IRUxQIDAKKyNkZWZpbmUgVVNFX0hFTFAoLi4uKQorI2RlZmluZSBDRkdfSEVYRFVNUCAwCisjZGVmaW5lIFVTRV9IRVhEVU1QKC4uLikKKyNkZWZpbmUgQ0ZHX0hFWEVESVQgMAorI2RlZmluZSBVU0VfSEVYRURJVCguLi4pCisjZGVmaW5lIENGR19IRCAwCisjZGVmaW5lIFVTRV9IRCguLi4pCisjZGVmaW5lIENGR19IT1NUSUQgMAorI2RlZmluZSBVU0VfSE9TVElEKC4uLikKKyNkZWZpbmUgQ0ZHX0hPU1QgMAorI2RlZmluZSBVU0VfSE9TVCguLi4pCisjZGVmaW5lIENGR19IT1NUTkFNRSAxCisjZGVmaW5lIFVTRV9IT1NUTkFNRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19IVFRQRCAwCisjZGVmaW5lIFVTRV9IVFRQRCguLi4pCisjZGVmaW5lIENGR19IV0NMT0NLIDAKKyNkZWZpbmUgVVNFX0hXQ0xPQ0soLi4uKQorI2RlZmluZSBDRkdfSTJDREVURUNUIDAKKyNkZWZpbmUgVVNFX0kyQ0RFVEVDVCguLi4pCisjZGVmaW5lIENGR19JMkNEVU1QIDAKKyNkZWZpbmUgVVNFX0kyQ0RVTVAoLi4uKQorI2RlZmluZSBDRkdfSTJDR0VUIDAKKyNkZWZpbmUgVVNFX0kyQ0dFVCguLi4pCisjZGVmaW5lIENGR19JMkNTRVQgMAorI2RlZmluZSBVU0VfSTJDU0VUKC4uLikKKyNkZWZpbmUgQ0ZHX0kyQ1RSQU5TRkVSIDAKKyNkZWZpbmUgVVNFX0kyQ1RSQU5TRkVSKC4uLikKKyNkZWZpbmUgQ0ZHX0lDT05WIDAKKyNkZWZpbmUgVVNFX0lDT05WKC4uLikKKyNkZWZpbmUgQ0ZHX0lEIDEKKyNkZWZpbmUgVVNFX0lEKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0lEX1ogMAorI2RlZmluZSBVU0VfSURfWiguLi4pCisjZGVmaW5lIENGR19JRkNPTkZJRyAwCisjZGVmaW5lIFVTRV9JRkNPTkZJRyguLi4pCisjZGVmaW5lIENGR19JTklUIDAKKyNkZWZpbmUgVVNFX0lOSVQoLi4uKQorI2RlZmluZSBDRkdfSU5PVElGWUQgMAorI2RlZmluZSBVU0VfSU5PVElGWUQoLi4uKQorI2RlZmluZSBDRkdfSU5TTU9EIDAKKyNkZWZpbmUgVVNFX0lOU01PRCguLi4pCisjZGVmaW5lIENGR19JTlNUQUxMIDEKKyNkZWZpbmUgVVNFX0lOU1RBTEwoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfSU9OSUNFIDAKKyNkZWZpbmUgVVNFX0lPTklDRSguLi4pCisjZGVmaW5lIENGR19JT1JFTklDRSAwCisjZGVmaW5lIFVTRV9JT1JFTklDRSguLi4pCisjZGVmaW5lIENGR19JT1RPUCAwCisjZGVmaW5lIFVTRV9JT1RPUCguLi4pCisjZGVmaW5lIENGR19JUENSTSAwCisjZGVmaW5lIFVTRV9JUENSTSguLi4pCisjZGVmaW5lIENGR19JUENTIDAKKyNkZWZpbmUgVVNFX0lQQ1MoLi4uKQorI2RlZmluZSBDRkdfSVAgMAorI2RlZmluZSBVU0VfSVAoLi4uKQorI2RlZmluZSBDRkdfS0lMTEFMTDUgMAorI2RlZmluZSBVU0VfS0lMTEFMTDUoLi4uKQorI2RlZmluZSBDRkdfS0lMTEFMTCAwCisjZGVmaW5lIFVTRV9LSUxMQUxMKC4uLikKKyNkZWZpbmUgQ0ZHX0tJTEwgMAorI2RlZmluZSBVU0VfS0lMTCguLi4pCisjZGVmaW5lIENGR19LTE9HRCAwCisjZGVmaW5lIFVTRV9LTE9HRCguLi4pCisjZGVmaW5lIENGR19LTE9HRF9TT1VSQ0VfUklOR19CVUZGRVIgMAorI2RlZmluZSBVU0VfS0xPR0RfU09VUkNFX1JJTkdfQlVGRkVSKC4uLikKKyNkZWZpbmUgQ0ZHX0xBU1QgMAorI2RlZmluZSBVU0VfTEFTVCguLi4pCisjZGVmaW5lIENGR19MSU5LIDAKKyNkZWZpbmUgVVNFX0xJTksoLi4uKQorI2RlZmluZSBDRkdfTElOVVgzMiAwCisjZGVmaW5lIFVTRV9MSU5VWDMyKC4uLikKKyNkZWZpbmUgQ0ZHX0xOIDEKKyNkZWZpbmUgVVNFX0xOKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX0xPQURfUE9MSUNZIDAKKyNkZWZpbmUgVVNFX0xPQURfUE9MSUNZKC4uLikKKyNkZWZpbmUgQ0ZHX0xPR0dFUiAwCisjZGVmaW5lIFVTRV9MT0dHRVIoLi4uKQorI2RlZmluZSBDRkdfTE9HSU4gMAorI2RlZmluZSBVU0VfTE9HSU4oLi4uKQorI2RlZmluZSBDRkdfTE9HIDAKKyNkZWZpbmUgVVNFX0xPRyguLi4pCisjZGVmaW5lIENGR19MT0dOQU1FIDAKKyNkZWZpbmUgVVNFX0xPR05BTUUoLi4uKQorI2RlZmluZSBDRkdfTE9HUEFUSCAwCisjZGVmaW5lIFVTRV9MT0dQQVRIKC4uLikKKyNkZWZpbmUgQ0ZHX0xPU0VUVVAgMAorI2RlZmluZSBVU0VfTE9TRVRVUCguLi4pCisjZGVmaW5lIENGR19MU0FUVFIgMAorI2RlZmluZSBVU0VfTFNBVFRSKC4uLikKKyNkZWZpbmUgQ0ZHX0xTTU9EIDAKKyNkZWZpbmUgVVNFX0xTTU9EKC4uLikKKyNkZWZpbmUgQ0ZHX0xTT0YgMAorI2RlZmluZSBVU0VfTFNPRiguLi4pCisjZGVmaW5lIENGR19MU1BDSSAwCisjZGVmaW5lIFVTRV9MU1BDSSguLi4pCisjZGVmaW5lIENGR19MU1VTQiAwCisjZGVmaW5lIFVTRV9MU1VTQiguLi4pCisjZGVmaW5lIENGR19MUyAxCisjZGVmaW5lIFVTRV9MUyguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19NQUtFREVWUyAwCisjZGVmaW5lIFVTRV9NQUtFREVWUyguLi4pCisjZGVmaW5lIENGR19NQU4gMAorI2RlZmluZSBVU0VfTUFOKC4uLikKKyNkZWZpbmUgQ0ZHX01DT09LSUUgMAorI2RlZmluZSBVU0VfTUNPT0tJRSguLi4pCisjZGVmaW5lIENGR19NRDVTVU0gMQorI2RlZmluZSBVU0VfTUQ1U1VNKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX01ERVZfQ09ORiAwCisjZGVmaW5lIFVTRV9NREVWX0NPTkYoLi4uKQorI2RlZmluZSBDRkdfTURFViAwCisjZGVmaW5lIFVTRV9NREVWKC4uLikKKyNkZWZpbmUgQ0ZHX01FTUVBVEVSIDAKKyNkZWZpbmUgVVNFX01FTUVBVEVSKC4uLikKKyNkZWZpbmUgQ0ZHX01JQ1JPQ09NIDEKKyNkZWZpbmUgVVNFX01JQ1JPQ09NKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX01JWCAwCisjZGVmaW5lIFVTRV9NSVgoLi4uKQorI2RlZmluZSBDRkdfTUtESVIgMQorI2RlZmluZSBVU0VfTUtESVIoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTUtESVJfWiAwCisjZGVmaW5lIFVTRV9NS0RJUl9aKC4uLikKKyNkZWZpbmUgQ0ZHX01LRTJGU19FWFRFTkRFRCAwCisjZGVmaW5lIFVTRV9NS0UyRlNfRVhURU5ERUQoLi4uKQorI2RlZmluZSBDRkdfTUtFMkZTX0dFTiAwCisjZGVmaW5lIFVTRV9NS0UyRlNfR0VOKC4uLikKKyNkZWZpbmUgQ0ZHX01LRTJGUyAwCisjZGVmaW5lIFVTRV9NS0UyRlMoLi4uKQorI2RlZmluZSBDRkdfTUtFMkZTX0pPVVJOQUwgMAorI2RlZmluZSBVU0VfTUtFMkZTX0pPVVJOQUwoLi4uKQorI2RlZmluZSBDRkdfTUtFMkZTX0xBQkVMIDAKKyNkZWZpbmUgVVNFX01LRTJGU19MQUJFTCguLi4pCisjZGVmaW5lIENGR19NS0ZJRk8gMAorI2RlZmluZSBVU0VfTUtGSUZPKC4uLikKKyNkZWZpbmUgQ0ZHX01LRklGT19aIDAKKyNkZWZpbmUgVVNFX01LRklGT19aKC4uLikKKyNkZWZpbmUgQ0ZHX01LTk9EIDAKKyNkZWZpbmUgVVNFX01LTk9EKC4uLikKKyNkZWZpbmUgQ0ZHX01LTk9EX1ogMAorI2RlZmluZSBVU0VfTUtOT0RfWiguLi4pCisjZGVmaW5lIENGR19NS1BBU1NXRCAwCisjZGVmaW5lIFVTRV9NS1BBU1NXRCguLi4pCisjZGVmaW5lIENGR19NS1NXQVAgMAorI2RlZmluZSBVU0VfTUtTV0FQKC4uLikKKyNkZWZpbmUgQ0ZHX01LVEVNUCAxCisjZGVmaW5lIFVTRV9NS1RFTVAoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTU9ESU5GTyAwCisjZGVmaW5lIFVTRV9NT0RJTkZPKC4uLikKKyNkZWZpbmUgQ0ZHX01PRFBST0JFIDAKKyNkZWZpbmUgVVNFX01PRFBST0JFKC4uLikKKyNkZWZpbmUgQ0ZHX01PUkUgMAorI2RlZmluZSBVU0VfTU9SRSguLi4pCisjZGVmaW5lIENGR19NT1VOVCAwCisjZGVmaW5lIFVTRV9NT1VOVCguLi4pCisjZGVmaW5lIENGR19NT1VOVFBPSU5UIDAKKyNkZWZpbmUgVVNFX01PVU5UUE9JTlQoLi4uKQorI2RlZmluZSBDRkdfTVYgMQorI2RlZmluZSBVU0VfTVYoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTkJEX0NMSUVOVCAwCisjZGVmaW5lIFVTRV9OQkRfQ0xJRU5UKC4uLikKKyNkZWZpbmUgQ0ZHX05CRF9TRVJWRVIgMAorI2RlZmluZSBVU0VfTkJEX1NFUlZFUiguLi4pCisjZGVmaW5lIENGR19ORVRDQVQgMAorI2RlZmluZSBVU0VfTkVUQ0FUKC4uLikKKyNkZWZpbmUgQ0ZHX05FVFNUQVQgMAorI2RlZmluZSBVU0VfTkVUU1RBVCguLi4pCisjZGVmaW5lIENGR19OSUNFIDAKKyNkZWZpbmUgVVNFX05JQ0UoLi4uKQorI2RlZmluZSBDRkdfTkwgMQorI2RlZmluZSBVU0VfTkwoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfTk9IVVAgMAorI2RlZmluZSBVU0VfTk9IVVAoLi4uKQorI2RlZmluZSBDRkdfTlBST0MgMAorI2RlZmluZSBVU0VfTlBST0MoLi4uKQorI2RlZmluZSBDRkdfTlNFTlRFUiAwCisjZGVmaW5lIFVTRV9OU0VOVEVSKC4uLikKKyNkZWZpbmUgQ0ZHX09EIDEKKyNkZWZpbmUgVVNFX09EKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX09ORUlUIDAKKyNkZWZpbmUgVVNFX09ORUlUKC4uLikKKyNkZWZpbmUgQ0ZHX09QRU5WVCAwCisjZGVmaW5lIFVTRV9PUEVOVlQoLi4uKQorI2RlZmluZSBDRkdfUEFSVFBST0JFIDAKKyNkZWZpbmUgVVNFX1BBUlRQUk9CRSguLi4pCisjZGVmaW5lIENGR19QQVNTV0QgMAorI2RlZmluZSBVU0VfUEFTU1dEKC4uLikKKyNkZWZpbmUgQ0ZHX1BBU1NXRF9TQUQgMAorI2RlZmluZSBVU0VfUEFTU1dEX1NBRCguLi4pCisjZGVmaW5lIENGR19QQVNURSAxCisjZGVmaW5lIFVTRV9QQVNURSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19QQVRDSCAxCisjZGVmaW5lIFVTRV9QQVRDSCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19QR1JFUCAwCisjZGVmaW5lIFVTRV9QR1JFUCguLi4pCisjZGVmaW5lIENGR19QSURPRiAwCisjZGVmaW5lIFVTRV9QSURPRiguLi4pCisjZGVmaW5lIENGR19QSU5HIDAKKyNkZWZpbmUgVVNFX1BJTkcoLi4uKQorI2RlZmluZSBDRkdfUElWT1RfUk9PVCAwCisjZGVmaW5lIFVTRV9QSVZPVF9ST09UKC4uLikKKyNkZWZpbmUgQ0ZHX1BLSUxMIDAKKyNkZWZpbmUgVVNFX1BLSUxMKC4uLikKKyNkZWZpbmUgQ0ZHX1BNQVAgMAorI2RlZmluZSBVU0VfUE1BUCguLi4pCisjZGVmaW5lIENGR19QUklOVEVOViAwCisjZGVmaW5lIFVTRV9QUklOVEVOViguLi4pCisjZGVmaW5lIENGR19QUklOVEYgMQorI2RlZmluZSBVU0VfUFJJTlRGKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1BTIDAKKyNkZWZpbmUgVVNFX1BTKC4uLikKKyNkZWZpbmUgQ0ZHX1BXRFggMAorI2RlZmluZSBVU0VfUFdEWCguLi4pCisjZGVmaW5lIENGR19QV0QgMQorI2RlZmluZSBVU0VfUFdEKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1BXR0VOIDAKKyNkZWZpbmUgVVNFX1BXR0VOKC4uLikKKyNkZWZpbmUgQ0ZHX1JFQURBSEVBRCAwCisjZGVmaW5lIFVTRV9SRUFEQUhFQUQoLi4uKQorI2RlZmluZSBDRkdfUkVBREVMRiAwCisjZGVmaW5lIFVTRV9SRUFERUxGKC4uLikKKyNkZWZpbmUgQ0ZHX1JFQURMSU5LIDEKKyNkZWZpbmUgVVNFX1JFQURMSU5LKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1JFQUxQQVRIIDEKKyNkZWZpbmUgVVNFX1JFQUxQQVRIKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1JFQk9PVCAwCisjZGVmaW5lIFVTRV9SRUJPT1QoLi4uKQorI2RlZmluZSBDRkdfUkVOSUNFIDAKKyNkZWZpbmUgVVNFX1JFTklDRSguLi4pCisjZGVmaW5lIENGR19SRVNFVCAwCisjZGVmaW5lIFVTRV9SRVNFVCguLi4pCisjZGVmaW5lIENGR19SRVNUT1JFQ09OIDAKKyNkZWZpbmUgVVNFX1JFU1RPUkVDT04oLi4uKQorI2RlZmluZSBDRkdfUkVWIDAKKyNkZWZpbmUgVVNFX1JFViguLi4pCisjZGVmaW5lIENGR19SRktJTEwgMAorI2RlZmluZSBVU0VfUkZLSUxMKC4uLikKKyNkZWZpbmUgQ0ZHX1JNRElSIDEKKyNkZWZpbmUgVVNFX1JNRElSKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1JNTU9EIDAKKyNkZWZpbmUgVVNFX1JNTU9EKC4uLikKKyNkZWZpbmUgQ0ZHX1JNIDEKKyNkZWZpbmUgVVNFX1JNKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1JPVVRFIDAKKyNkZWZpbmUgVVNFX1JPVVRFKC4uLikKKyNkZWZpbmUgQ0ZHX1JUQ1dBS0UgMAorI2RlZmluZSBVU0VfUlRDV0FLRSguLi4pCisjZGVmaW5lIENGR19SVU5DT04gMAorI2RlZmluZSBVU0VfUlVOQ09OKC4uLikKKyNkZWZpbmUgQ0ZHX1NFRCAxCisjZGVmaW5lIFVTRV9TRUQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU0VOREVWRU5UIDAKKyNkZWZpbmUgVVNFX1NFTkRFVkVOVCguLi4pCisjZGVmaW5lIENGR19TRVEgMQorI2RlZmluZSBVU0VfU0VRKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NFVEVORk9SQ0UgMAorI2RlZmluZSBVU0VfU0VURU5GT1JDRSguLi4pCisjZGVmaW5lIENGR19TRVRGQVRUUiAwCisjZGVmaW5lIFVTRV9TRVRGQVRUUiguLi4pCisjZGVmaW5lIENGR19TRVRTSUQgMQorI2RlZmluZSBVU0VfU0VUU0lEKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NIQTFTVU0gMQorI2RlZmluZSBVU0VfU0hBMVNVTSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TSEEyMjRTVU0gMAorI2RlZmluZSBVU0VfU0hBMjI0U1VNKC4uLikKKyNkZWZpbmUgQ0ZHX1NIQTI1NlNVTSAxCisjZGVmaW5lIFVTRV9TSEEyNTZTVU0oLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU0hBM1NVTSAwCisjZGVmaW5lIFVTRV9TSEEzU1VNKC4uLikKKyNkZWZpbmUgQ0ZHX1NIQTM4NFNVTSAwCisjZGVmaW5lIFVTRV9TSEEzODRTVU0oLi4uKQorI2RlZmluZSBDRkdfU0hBNTEyU1VNIDEKKyNkZWZpbmUgVVNFX1NIQTUxMlNVTSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TSCAwCisjZGVmaW5lIFVTRV9TSCguLi4pCisjZGVmaW5lIENGR19TSFJFRCAwCisjZGVmaW5lIFVTRV9TSFJFRCguLi4pCisjZGVmaW5lIENGR19TSFVGIDAKKyNkZWZpbmUgVVNFX1NIVUYoLi4uKQorI2RlZmluZSBDRkdfU0tFTEVUT05fQUxJQVMgMAorI2RlZmluZSBVU0VfU0tFTEVUT05fQUxJQVMoLi4uKQorI2RlZmluZSBDRkdfU0tFTEVUT04gMAorI2RlZmluZSBVU0VfU0tFTEVUT04oLi4uKQorI2RlZmluZSBDRkdfU0xFRVAgMQorI2RlZmluZSBVU0VfU0xFRVAoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU05UUCAwCisjZGVmaW5lIFVTRV9TTlRQKC4uLikKKyNkZWZpbmUgQ0ZHX1NPUlRfRkxPQVQgMQorI2RlZmluZSBVU0VfU09SVF9GTE9BVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19TT1JUIDEKKyNkZWZpbmUgVVNFX1NPUlQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfU1BMSVQgMAorI2RlZmluZSBVU0VfU1BMSVQoLi4uKQorI2RlZmluZSBDRkdfU1RBVCAxCisjZGVmaW5lIFVTRV9TVEFUKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1NUUkFDRSAwCisjZGVmaW5lIFVTRV9TVFJBQ0UoLi4uKQorI2RlZmluZSBDRkdfU1RSSU5HUyAwCisjZGVmaW5lIFVTRV9TVFJJTkdTKC4uLikKKyNkZWZpbmUgQ0ZHX1NUVFkgMAorI2RlZmluZSBVU0VfU1RUWSguLi4pCisjZGVmaW5lIENGR19TVSAwCisjZGVmaW5lIFVTRV9TVSguLi4pCisjZGVmaW5lIENGR19TVUxPR0lOIDAKKyNkZWZpbmUgVVNFX1NVTE9HSU4oLi4uKQorI2RlZmluZSBDRkdfU1dBUE9GRiAwCisjZGVmaW5lIFVTRV9TV0FQT0ZGKC4uLikKKyNkZWZpbmUgQ0ZHX1NXQVBPTiAwCisjZGVmaW5lIFVTRV9TV0FQT04oLi4uKQorI2RlZmluZSBDRkdfU1dJVENIX1JPT1QgMAorI2RlZmluZSBVU0VfU1dJVENIX1JPT1QoLi4uKQorI2RlZmluZSBDRkdfU1lOQyAwCisjZGVmaW5lIFVTRV9TWU5DKC4uLikKKyNkZWZpbmUgQ0ZHX1NZU0NUTCAwCisjZGVmaW5lIFVTRV9TWVNDVEwoLi4uKQorI2RlZmluZSBDRkdfU1lTTE9HRCAwCisjZGVmaW5lIFVTRV9TWVNMT0dEKC4uLikKKyNkZWZpbmUgQ0ZHX1RBQyAwCisjZGVmaW5lIFVTRV9UQUMoLi4uKQorI2RlZmluZSBDRkdfVEFJTCAxCisjZGVmaW5lIFVTRV9UQUlMKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RBUiAxCisjZGVmaW5lIFVTRV9UQVIoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVEFTS1NFVCAwCisjZGVmaW5lIFVTRV9UQVNLU0VUKC4uLikKKyNkZWZpbmUgQ0ZHX1RDUFNWRCAwCisjZGVmaW5lIFVTRV9UQ1BTVkQoLi4uKQorI2RlZmluZSBDRkdfVEVFIDEKKyNkZWZpbmUgVVNFX1RFRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19URUxORVREIDAKKyNkZWZpbmUgVVNFX1RFTE5FVEQoLi4uKQorI2RlZmluZSBDRkdfVEVMTkVUIDAKKyNkZWZpbmUgVVNFX1RFTE5FVCguLi4pCisjZGVmaW5lIENGR19URVNUIDEKKyNkZWZpbmUgVVNFX1RFU1QoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVEVTVF9HTFVFIDEKKyNkZWZpbmUgVVNFX1RFU1RfR0xVRSguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19URlRQRCAwCisjZGVmaW5lIFVTRV9URlRQRCguLi4pCisjZGVmaW5lIENGR19URlRQIDAKKyNkZWZpbmUgVVNFX1RGVFAoLi4uKQorI2RlZmluZSBDRkdfVElNRSAwCisjZGVmaW5lIFVTRV9USU1FKC4uLikKKyNkZWZpbmUgQ0ZHX1RJTUVPVVQgMQorI2RlZmluZSBVU0VfVElNRU9VVCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19UT1AgMAorI2RlZmluZSBVU0VfVE9QKC4uLikKKyNkZWZpbmUgQ0ZHX1RPVUNIIDEKKyNkZWZpbmUgVVNFX1RPVUNIKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1RSQUNFUk9VVEUgMAorI2RlZmluZSBVU0VfVFJBQ0VST1VURSguLi4pCisjZGVmaW5lIENGR19UUlVFIDEKKyNkZWZpbmUgVVNFX1RSVUUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVFJVTkNBVEUgMQorI2RlZmluZSBVU0VfVFJVTkNBVEUoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVFIgMQorI2RlZmluZSBVU0VfVFIoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVFMgMAorI2RlZmluZSBVU0VfVFMoLi4uKQorI2RlZmluZSBDRkdfVFNPUlQgMAorI2RlZmluZSBVU0VfVFNPUlQoLi4uKQorI2RlZmluZSBDRkdfVFRZIDAKKyNkZWZpbmUgVVNFX1RUWSguLi4pCisjZGVmaW5lIENGR19UVU5DVEwgMAorI2RlZmluZSBVU0VfVFVOQ1RMKC4uLikKKyNkZWZpbmUgQ0ZHX1VDTEFNUFNFVCAwCisjZGVmaW5lIFVTRV9VQ0xBTVBTRVQoLi4uKQorI2RlZmluZSBDRkdfVUxJTUlUIDAKKyNkZWZpbmUgVVNFX1VMSU1JVCguLi4pCisjZGVmaW5lIENGR19VTU9VTlQgMAorI2RlZmluZSBVU0VfVU1PVU5UKC4uLikKKyNkZWZpbmUgQ0ZHX1VOQU1FIDEKKyNkZWZpbmUgVVNFX1VOQU1FKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1VOSUNPREUgMAorI2RlZmluZSBVU0VfVU5JQ09ERSguLi4pCisjZGVmaW5lIENGR19VTklRIDEKKyNkZWZpbmUgVVNFX1VOSVEoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVU5JWDJET1MgMQorI2RlZmluZSBVU0VfVU5JWDJET1MoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfVU5MSU5LIDAKKyNkZWZpbmUgVVNFX1VOTElOSyguLi4pCisjZGVmaW5lIENGR19VTlNIQVJFIDAKKyNkZWZpbmUgVVNFX1VOU0hBUkUoLi4uKQorI2RlZmluZSBDRkdfVVBUSU1FIDAKKyNkZWZpbmUgVVNFX1VQVElNRSguLi4pCisjZGVmaW5lIENGR19VU0VSQUREIDAKKyNkZWZpbmUgVVNFX1VTRVJBREQoLi4uKQorI2RlZmluZSBDRkdfVVNFUkRFTCAwCisjZGVmaW5lIFVTRV9VU0VSREVMKC4uLikKKyNkZWZpbmUgQ0ZHX1VTTEVFUCAwCisjZGVmaW5lIFVTRV9VU0xFRVAoLi4uKQorI2RlZmluZSBDRkdfVVVERUNPREUgMAorI2RlZmluZSBVU0VfVVVERUNPREUoLi4uKQorI2RlZmluZSBDRkdfVVVFTkNPREUgMAorI2RlZmluZSBVU0VfVVVFTkNPREUoLi4uKQorI2RlZmluZSBDRkdfVVVJREdFTiAwCisjZGVmaW5lIFVTRV9VVUlER0VOKC4uLikKKyNkZWZpbmUgQ0ZHX1ZDT05GSUcgMAorI2RlZmluZSBVU0VfVkNPTkZJRyguLi4pCisjZGVmaW5lIENGR19WSSAwCisjZGVmaW5lIFVTRV9WSSguLi4pCisjZGVmaW5lIENGR19WTVNUQVQgMAorI2RlZmluZSBVU0VfVk1TVEFUKC4uLikKKyNkZWZpbmUgQ0ZHX1dBVENIIDAKKyNkZWZpbmUgVVNFX1dBVENIKC4uLikKKyNkZWZpbmUgQ0ZHX1dBVENIRE9HIDAKKyNkZWZpbmUgVVNFX1dBVENIRE9HKC4uLikKKyNkZWZpbmUgQ0ZHX1dDIDEKKyNkZWZpbmUgVVNFX1dDKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1dHRVQgMAorI2RlZmluZSBVU0VfV0dFVCguLi4pCisjZGVmaW5lIENGR19XSElDSCAxCisjZGVmaW5lIFVTRV9XSElDSCguLi4pIF9fVkFfQVJHU19fCisjZGVmaW5lIENGR19XSE9BTUkgMQorI2RlZmluZSBVU0VfV0hPQU1JKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1dITyAwCisjZGVmaW5lIFVTRV9XSE8oLi4uKQorI2RlZmluZSBDRkdfVyAwCisjZGVmaW5lIFVTRV9XKC4uLikKKyNkZWZpbmUgQ0ZHX1hBUkdTIDEKKyNkZWZpbmUgVVNFX1hBUkdTKC4uLikgX19WQV9BUkdTX18KKyNkZWZpbmUgQ0ZHX1hYRCAxCisjZGVmaW5lIFVTRV9YWEQoLi4uKSBfX1ZBX0FSR1NfXworI2RlZmluZSBDRkdfWFpDQVQgMAorI2RlZmluZSBVU0VfWFpDQVQoLi4uKQorI2RlZmluZSBDRkdfWUVTIDAKKyNkZWZpbmUgVVNFX1lFUyguLi4pCisjZGVmaW5lIENGR19aQ0FUIDEKKyNkZWZpbmUgVVNFX1pDQVQoLi4uKSBfX1ZBX0FSR1NfXwpkaWZmIC0tZ2l0IGEvYW5kcm9pZC9tYWMvZ2VuZXJhdGVkL2ZsYWdzLmggYi9hbmRyb2lkL21hYy9nZW5lcmF0ZWQvZmxhZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTgzYzRlCi0tLSAvZGV2L251bGwKKysrIGIvYW5kcm9pZC9tYWMvZ2VuZXJhdGVkL2ZsYWdzLmgKQEAgLTAsMCArMSw3NTQwIEBACisjdW5kZWYgRk9SQ0VEX0ZMQUcKKyNpZmRlZiBGT1JDRV9GTEFHUworI2RlZmluZSBGT1JDRURfRkxBRyAxTEwKKyNlbHNlCisjZGVmaW5lIEZPUkNFRF9GTEFHIDBMTAorI2VuZGlmCisKKy8vIGFjcGkgICBhYmN0VgorI3VuZGVmIE9QVFNUUl9hY3BpCisjZGVmaW5lIE9QVFNUUl9hY3BpICJhYmN0ViIKKyNpZmRlZiBDTEVBTlVQX2FjcGkKKyN1bmRlZiBDTEVBTlVQX2FjcGkKKyN1bmRlZiBGT1JfYWNwaQorI3VuZGVmIEZMQUdfVgorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIGFyY2ggICAgCisjdW5kZWYgT1BUU1RSX2FyY2gKKyNkZWZpbmUgT1BUU1RSX2FyY2ggMAorI2lmZGVmIENMRUFOVVBfYXJjaAorI3VuZGVmIENMRUFOVVBfYXJjaAorI3VuZGVmIEZPUl9hcmNoCisjZW5kaWYKKworLy8gYXJwICAgdmk6bkRzZGFwOkE6SDpbK0FwXVshc2RdCisjdW5kZWYgT1BUU1RSX2FycAorI2RlZmluZSBPUFRTVFJfYXJwICJ2aTpuRHNkYXA6QTpIOlsrQXBdWyFzZF0iCisjaWZkZWYgQ0xFQU5VUF9hcnAKKyN1bmRlZiBDTEVBTlVQX2FycAorI3VuZGVmIEZPUl9hcnAKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3YKKyNlbmRpZgorCisvLyBhcnBpbmcgICA8MT4xczpJOncjPDBjIzwwQVVEYnFmWytBVV1bK0RmXQorI3VuZGVmIE9QVFNUUl9hcnBpbmcKKyNkZWZpbmUgT1BUU1RSX2FycGluZyAiPDE+MXM6STp3IzwwYyM8MEFVRGJxZlsrQVVdWytEZl0iCisjaWZkZWYgQ0xFQU5VUF9hcnBpbmcKKyN1bmRlZiBDTEVBTlVQX2FycGluZworI3VuZGVmIEZPUl9hcnBpbmcKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX0kKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyBhc2NpaSAgICAKKyN1bmRlZiBPUFRTVFJfYXNjaWkKKyNkZWZpbmUgT1BUU1RSX2FzY2lpIDAKKyNpZmRlZiBDTEVBTlVQX2FzY2lpCisjdW5kZWYgQ0xFQU5VUF9hc2NpaQorI3VuZGVmIEZPUl9hc2NpaQorI2VuZGlmCisKKy8vIGJhc2UzMiAgIGRpdyM8MD03NlshZHddCisjdW5kZWYgT1BUU1RSX2Jhc2UzMgorI2RlZmluZSBPUFRTVFJfYmFzZTMyICJkaXcjPDA9NzZbIWR3XSIKKyNpZmRlZiBDTEVBTlVQX2Jhc2UzMgorI3VuZGVmIENMRUFOVVBfYmFzZTMyCisjdW5kZWYgRk9SX2Jhc2UzMgorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIGJhc2U2NCAgIGRpdyM8MD03NlshZHddCisjdW5kZWYgT1BUU1RSX2Jhc2U2NAorI2RlZmluZSBPUFRTVFJfYmFzZTY0ICJkaXcjPDA9NzZbIWR3XSIKKyNpZmRlZiBDTEVBTlVQX2Jhc2U2NAorI3VuZGVmIENMRUFOVVBfYmFzZTY0CisjdW5kZWYgRk9SX2Jhc2U2NAorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIGJhc2VuYW1lIF48MWFzOiBePDFhczoKKyN1bmRlZiBPUFRTVFJfYmFzZW5hbWUKKyNkZWZpbmUgT1BUU1RSX2Jhc2VuYW1lICJePDFhczoiCisjaWZkZWYgQ0xFQU5VUF9iYXNlbmFtZQorI3VuZGVmIENMRUFOVVBfYmFzZW5hbWUKKyN1bmRlZiBGT1JfYmFzZW5hbWUKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBiYyAgIGkoaW50ZXJhY3RpdmUpbChtYXRobGliKXEocXVpZXQpcyhzdGFuZGFyZCl3KHdhcm4pCisjdW5kZWYgT1BUU1RSX2JjCisjZGVmaW5lIE9QVFNUUl9iYyAiaShpbnRlcmFjdGl2ZSlsKG1hdGhsaWIpcShxdWlldClzKHN0YW5kYXJkKXcod2FybikiCisjaWZkZWYgQ0xFQU5VUF9iYworI3VuZGVmIENMRUFOVVBfYmMKKyN1bmRlZiBGT1JfYmMKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2kKKyNlbmRpZgorCisvLyBibGtkaXNjYXJkICAgPDE+MWYoZm9yY2UpbChsZW5ndGgpIzwwbyhvZmZzZXQpIzwwcyhzZWN1cmUpeih6ZXJvb3V0KVshc3pdCisjdW5kZWYgT1BUU1RSX2Jsa2Rpc2NhcmQKKyNkZWZpbmUgT1BUU1RSX2Jsa2Rpc2NhcmQgIjwxPjFmKGZvcmNlKWwobGVuZ3RoKSM8MG8ob2Zmc2V0KSM8MHMoc2VjdXJlKXooemVyb291dClbIXN6XSIKKyNpZmRlZiBDTEVBTlVQX2Jsa2Rpc2NhcmQKKyN1bmRlZiBDTEVBTlVQX2Jsa2Rpc2NhcmQKKyN1bmRlZiBGT1JfYmxrZGlzY2FyZAorI3VuZGVmIEZMQUdfegorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfZgorI2VuZGlmCisKKy8vIGJsa2lkICAgVUxvOnMqWyFMVV0KKyN1bmRlZiBPUFRTVFJfYmxraWQKKyNkZWZpbmUgT1BUU1RSX2Jsa2lkICJVTG86cypbIUxVXSIKKyNpZmRlZiBDTEVBTlVQX2Jsa2lkCisjdW5kZWYgQ0xFQU5VUF9ibGtpZAorI3VuZGVmIEZPUl9ibGtpZAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfVQorI2VuZGlmCisKKy8vIGJsb2NrZGV2ICAgPDE+MShzZXRybykoc2V0cncpKGdldHJvKShnZXRzcykoZ2V0YnN6KShzZXRic3opIzwwKGdldHN6KShnZXRzaXplKShnZXRzaXplNjQpKGdldHJhKShzZXRyYSkjPDAoZmx1c2hidWZzKShyZXJlYWRwdCkKKyN1bmRlZiBPUFRTVFJfYmxvY2tkZXYKKyNkZWZpbmUgT1BUU1RSX2Jsb2NrZGV2ICI8MT4xKHNldHJvKShzZXRydykoZ2V0cm8pKGdldHNzKShnZXRic3opKHNldGJzeikjPDAoZ2V0c3opKGdldHNpemUpKGdldHNpemU2NCkoZ2V0cmEpKHNldHJhKSM8MChmbHVzaGJ1ZnMpKHJlcmVhZHB0KSIKKyNpZmRlZiBDTEVBTlVQX2Jsb2NrZGV2CisjdW5kZWYgQ0xFQU5VUF9ibG9ja2RldgorI3VuZGVmIEZPUl9ibG9ja2RldgorI3VuZGVmIEZMQUdfcmVyZWFkcHQKKyN1bmRlZiBGTEFHX2ZsdXNoYnVmcworI3VuZGVmIEZMQUdfc2V0cmEKKyN1bmRlZiBGTEFHX2dldHJhCisjdW5kZWYgRkxBR19nZXRzaXplNjQKKyN1bmRlZiBGTEFHX2dldHNpemUKKyN1bmRlZiBGTEFHX2dldHN6CisjdW5kZWYgRkxBR19zZXRic3oKKyN1bmRlZiBGTEFHX2dldGJzegorI3VuZGVmIEZMQUdfZ2V0c3MKKyN1bmRlZiBGTEFHX2dldHJvCisjdW5kZWYgRkxBR19zZXRydworI3VuZGVmIEZMQUdfc2V0cm8KKyNlbmRpZgorCisvLyBib290Y2hhcnRkICAgIAorI3VuZGVmIE9QVFNUUl9ib290Y2hhcnRkCisjZGVmaW5lIE9QVFNUUl9ib290Y2hhcnRkIDAKKyNpZmRlZiBDTEVBTlVQX2Jvb3RjaGFydGQKKyN1bmRlZiBDTEVBTlVQX2Jvb3RjaGFydGQKKyN1bmRlZiBGT1JfYm9vdGNoYXJ0ZAorI2VuZGlmCisKKy8vIGJyY3RsICAgPDEKKyN1bmRlZiBPUFRTVFJfYnJjdGwKKyNkZWZpbmUgT1BUU1RSX2JyY3RsICI8MSIKKyNpZmRlZiBDTEVBTlVQX2JyY3RsCisjdW5kZWYgQ0xFQU5VUF9icmN0bAorI3VuZGVmIEZPUl9icmN0bAorI2VuZGlmCisKKy8vIGJ1bnppcDIgICBjZnRrdgorI3VuZGVmIE9QVFNUUl9idW56aXAyCisjZGVmaW5lIE9QVFNUUl9idW56aXAyICJjZnRrdiIKKyNpZmRlZiBDTEVBTlVQX2J1bnppcDIKKyN1bmRlZiBDTEVBTlVQX2J1bnppcDIKKyN1bmRlZiBGT1JfYnVuemlwMgorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfYworI2VuZGlmCisKKy8vIGJ6Y2F0ICAgIAorI3VuZGVmIE9QVFNUUl9iemNhdAorI2RlZmluZSBPUFRTVFJfYnpjYXQgMAorI2lmZGVmIENMRUFOVVBfYnpjYXQKKyN1bmRlZiBDTEVBTlVQX2J6Y2F0CisjdW5kZWYgRk9SX2J6Y2F0CisjZW5kaWYKKworLy8gY2FsICAgPjNoCisjdW5kZWYgT1BUU1RSX2NhbAorI2RlZmluZSBPUFRTVFJfY2FsICI+M2giCisjaWZkZWYgQ0xFQU5VUF9jYWwKKyN1bmRlZiBDTEVBTlVQX2NhbAorI3VuZGVmIEZPUl9jYWwKKyN1bmRlZiBGTEFHX2gKKyNlbmRpZgorCisvLyBjYXQgdXZ0ZSB1dnRlCisjdW5kZWYgT1BUU1RSX2NhdAorI2RlZmluZSBPUFRTVFJfY2F0ICJ1dnRlIgorI2lmZGVmIENMRUFOVVBfY2F0CisjdW5kZWYgQ0xFQU5VUF9jYXQKKyN1bmRlZiBGT1JfY2F0CisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR191CisjZW5kaWYKKworLy8gY2QgICA+MUxQWy1MUF0KKyN1bmRlZiBPUFRTVFJfY2QKKyNkZWZpbmUgT1BUU1RSX2NkICI+MUxQWy1MUF0iCisjaWZkZWYgQ0xFQU5VUF9jZAorI3VuZGVmIENMRUFOVVBfY2QKKyN1bmRlZiBGT1JfY2QKKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX0wKKyNlbmRpZgorCisvLyBjaGF0dHIgICA/cCN2I1IKKyN1bmRlZiBPUFRTVFJfY2hhdHRyCisjZGVmaW5lIE9QVFNUUl9jaGF0dHIgIj9wI3YjUiIKKyNpZmRlZiBDTEVBTlVQX2NoYXR0cgorI3VuZGVmIENMRUFOVVBfY2hhdHRyCisjdW5kZWYgRk9SX2NoYXR0cgorI3VuZGVmIEZMQUdfUgorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIGNoY29uICAgPDJodlIKKyN1bmRlZiBPUFRTVFJfY2hjb24KKyNkZWZpbmUgT1BUU1RSX2NoY29uICI8Mmh2UiIKKyNpZmRlZiBDTEVBTlVQX2NoY29uCisjdW5kZWYgQ0xFQU5VUF9jaGNvbgorI3VuZGVmIEZPUl9jaGNvbgorI3VuZGVmIEZMQUdfUgorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfaAorI2VuZGlmCisKKy8vIGNoZ3JwICAgPDJoKG5vLWRlcmVmZXJlbmNlKVBMSFJmdlstSExQXQorI3VuZGVmIE9QVFNUUl9jaGdycAorI2RlZmluZSBPUFRTVFJfY2hncnAgIjwyaChuby1kZXJlZmVyZW5jZSlQTEhSZnZbLUhMUF0iCisjaWZkZWYgQ0xFQU5VUF9jaGdycAorI3VuZGVmIENMRUFOVVBfY2hncnAKKyN1bmRlZiBGT1JfY2hncnAKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX2gKKyNlbmRpZgorCisvLyBjaG1vZCA8Mj92ZlJbLXZmXSA8Mj92ZlJbLXZmXQorI3VuZGVmIE9QVFNUUl9jaG1vZAorI2RlZmluZSBPUFRTVFJfY2htb2QgIjwyP3ZmUlstdmZdIgorI2lmZGVmIENMRUFOVVBfY2htb2QKKyN1bmRlZiBDTEVBTlVQX2NobW9kCisjdW5kZWYgRk9SX2NobW9kCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR192CisjZW5kaWYKKworLy8gY2hyb290ICAgXjwxCisjdW5kZWYgT1BUU1RSX2Nocm9vdAorI2RlZmluZSBPUFRTVFJfY2hyb290ICJePDEiCisjaWZkZWYgQ0xFQU5VUF9jaHJvb3QKKyN1bmRlZiBDTEVBTlVQX2Nocm9vdAorI3VuZGVmIEZPUl9jaHJvb3QKKyNlbmRpZgorCisvLyBjaHJ0ICAgXm1wIzwwaVJicmZvWyFpYnJmb10KKyN1bmRlZiBPUFRTVFJfY2hydAorI2RlZmluZSBPUFRTVFJfY2hydCAiXm1wIzwwaVJicmZvWyFpYnJmb10iCisjaWZkZWYgQ0xFQU5VUF9jaHJ0CisjdW5kZWYgQ0xFQU5VUF9jaHJ0CisjdW5kZWYgRk9SX2NocnQKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX20KKyNlbmRpZgorCisvLyBjaHNoICAgPjFSOnM6YQorI3VuZGVmIE9QVFNUUl9jaHNoCisjZGVmaW5lIE9QVFNUUl9jaHNoICI+MVI6czphIgorI2lmZGVmIENMRUFOVVBfY2hzaAorI3VuZGVmIENMRUFOVVBfY2hzaAorI3VuZGVmIEZPUl9jaHNoCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19SCisjZW5kaWYKKworLy8gY2h2dCAgIDwxPjEKKyN1bmRlZiBPUFRTVFJfY2h2dAorI2RlZmluZSBPUFRTVFJfY2h2dCAiPDE+MSIKKyNpZmRlZiBDTEVBTlVQX2NodnQKKyN1bmRlZiBDTEVBTlVQX2NodnQKKyN1bmRlZiBGT1JfY2h2dAorI2VuZGlmCisKKy8vIGNrc3VtICAgSElQTE4KKyN1bmRlZiBPUFRTVFJfY2tzdW0KKyNkZWZpbmUgT1BUU1RSX2Nrc3VtICJISVBMTiIKKyNpZmRlZiBDTEVBTlVQX2Nrc3VtCisjdW5kZWYgQ0xFQU5VUF9ja3N1bQorI3VuZGVmIEZPUl9ja3N1bQorI3VuZGVmIEZMQUdfTgorI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfSQorI3VuZGVmIEZMQUdfSAorI2VuZGlmCisKKy8vIGNsZWFyICAgIAorI3VuZGVmIE9QVFNUUl9jbGVhcgorI2RlZmluZSBPUFRTVFJfY2xlYXIgMAorI2lmZGVmIENMRUFOVVBfY2xlYXIKKyN1bmRlZiBDTEVBTlVQX2NsZWFyCisjdW5kZWYgRk9SX2NsZWFyCisjZW5kaWYKKworLy8gY21wIDwxPjRscyhzaWxlbnQpKHF1aWV0KW4jPDFbIWxzXSA8MT40bHMoc2lsZW50KShxdWlldCluIzwxWyFsc10KKyN1bmRlZiBPUFRTVFJfY21wCisjZGVmaW5lIE9QVFNUUl9jbXAgIjwxPjRscyhzaWxlbnQpKHF1aWV0KW4jPDFbIWxzXSIKKyNpZmRlZiBDTEVBTlVQX2NtcAorI3VuZGVmIENMRUFOVVBfY21wCisjdW5kZWYgRk9SX2NtcAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbAorI2VuZGlmCisKKy8vIGNvbW0gPDI+MjMyMSA8Mj4yMzIxCisjdW5kZWYgT1BUU1RSX2NvbW0KKyNkZWZpbmUgT1BUU1RSX2NvbW0gIjwyPjIzMjEiCisjaWZkZWYgQ0xFQU5VUF9jb21tCisjdW5kZWYgQ0xFQU5VUF9jb21tCisjdW5kZWYgRk9SX2NvbW0KKyN1bmRlZiBGTEFHXzEKKyN1bmRlZiBGTEFHXzIKKyN1bmRlZiBGTEFHXzMKKyNlbmRpZgorCisvLyBjb3VudCAgIDwwPjBsCisjdW5kZWYgT1BUU1RSX2NvdW50CisjZGVmaW5lIE9QVFNUUl9jb3VudCAiPDA+MGwiCisjaWZkZWYgQ0xFQU5VUF9jb3VudAorI3VuZGVmIENMRUFOVVBfY291bnQKKyN1bmRlZiBGT1JfY291bnQKKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBjcCA8MShwcmVzZXJ2ZSk6O0QocGFyZW50cylSSExQcHJ1ZGFzbHYodmVyYm9zZSluRihyZW1vdmUtZGVzdGluYXRpb24pZml0OlRbLUhMUGRdWy1uaXVdWytScl0gPDEocHJlc2VydmUpOjtEKHBhcmVudHMpUkhMUHBydWRhc2x2KHZlcmJvc2UpbkYocmVtb3ZlLWRlc3RpbmF0aW9uKWZpdDpUWy1ITFBkXVstbml1XVsrUnJdCisjdW5kZWYgT1BUU1RSX2NwCisjZGVmaW5lIE9QVFNUUl9jcCAiPDEocHJlc2VydmUpOjtEKHBhcmVudHMpUkhMUHBydWRhc2x2KHZlcmJvc2UpbkYocmVtb3ZlLWRlc3RpbmF0aW9uKWZpdDpUWy1ITFBkXVstbml1XVsrUnJdIgorI2lmZGVmIENMRUFOVVBfY3AKKyN1bmRlZiBDTEVBTlVQX2NwCisjdW5kZWYgRk9SX2NwCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19wcmVzZXJ2ZQorI2VuZGlmCisKKy8vIGNwaW8gKGlnbm9yZS1kZXZubykocmVudW1iZXItaW5vZGVzKShxdWlldCkobm8tcHJlc2VydmUtb3duZXIpUihvd25lcik6bWQobWFrZS1kaXJlY3Rvcmllcyl1TEg6cHxpfHR8Rjp2KHZlcmJvc2Upb3xbIXBpb11bIXBvdF1bIXBGXSAoaWdub3JlLWRldm5vKShyZW51bWJlci1pbm9kZXMpKHF1aWV0KShuby1wcmVzZXJ2ZS1vd25lcilSKG93bmVyKTptZChtYWtlLWRpcmVjdG9yaWVzKXVMSDpwfGl8dHxGOnYodmVyYm9zZSlvfFshcGlvXVshcG90XVshcEZdCisjdW5kZWYgT1BUU1RSX2NwaW8KKyNkZWZpbmUgT1BUU1RSX2NwaW8gIihpZ25vcmUtZGV2bm8pKHJlbnVtYmVyLWlub2RlcykocXVpZXQpKG5vLXByZXNlcnZlLW93bmVyKVIob3duZXIpOm1kKG1ha2UtZGlyZWN0b3JpZXMpdUxIOnB8aXx0fEY6dih2ZXJib3NlKW98WyFwaW9dWyFwb3RdWyFwRl0iCisjaWZkZWYgQ0xFQU5VUF9jcGlvCisjdW5kZWYgQ0xFQU5VUF9jcGlvCisjdW5kZWYgRk9SX2NwaW8KKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX25vX3ByZXNlcnZlX293bmVyCisjdW5kZWYgRkxBR19xdWlldAorI3VuZGVmIEZMQUdfcmVudW1iZXJfaW5vZGVzCisjdW5kZWYgRkxBR19pZ25vcmVfZGV2bm8KKyNlbmRpZgorCisvLyBjcmMzMiAgICAKKyN1bmRlZiBPUFRTVFJfY3JjMzIKKyNkZWZpbmUgT1BUU1RSX2NyYzMyIDAKKyNpZmRlZiBDTEVBTlVQX2NyYzMyCisjdW5kZWYgQ0xFQU5VUF9jcmMzMgorI3VuZGVmIEZPUl9jcmMzMgorI2VuZGlmCisKKy8vIGNyb25kICAgZmJTbCM8MD04ZCM8MEw6YzpbLWJmXVstTFNdWy1sZF0KKyN1bmRlZiBPUFRTVFJfY3JvbmQKKyNkZWZpbmUgT1BUU1RSX2Nyb25kICJmYlNsIzwwPThkIzwwTDpjOlstYmZdWy1MU11bLWxkXSIKKyNpZmRlZiBDTEVBTlVQX2Nyb25kCisjdW5kZWYgQ0xFQU5VUF9jcm9uZAorI3VuZGVmIEZPUl9jcm9uZAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfZgorI2VuZGlmCisKKy8vIGNyb250YWIgICBjOnU6ZWxyWyFlbHJdCisjdW5kZWYgT1BUU1RSX2Nyb250YWIKKyNkZWZpbmUgT1BUU1RSX2Nyb250YWIgImM6dTplbHJbIWVscl0iCisjaWZkZWYgQ0xFQU5VUF9jcm9udGFiCisjdW5kZWYgQ0xFQU5VUF9jcm9udGFiCisjdW5kZWYgRk9SX2Nyb250YWIKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBjc3BsaXQgICA8MnNrZjpuIworI3VuZGVmIE9QVFNUUl9jc3BsaXQKKyNkZWZpbmUgT1BUU1RSX2NzcGxpdCAiPDJza2Y6biMiCisjaWZkZWYgQ0xFQU5VUF9jc3BsaXQKKyN1bmRlZiBDTEVBTlVQX2NzcGxpdAorI3VuZGVmIEZPUl9jc3BsaXQKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyBjdXQgYip8Yyp8Zip8RihyZWdleC1maWVsZHMpKnxDKnxPKG91dHB1dC1kZWxpbWl0ZXIpOmQ6c0QoYWxsb3ctZHVwbGljYXRlcyluWyFjYmZGXSBiKnxjKnxmKnxGKHJlZ2V4LWZpZWxkcykqfEMqfE8ob3V0cHV0LWRlbGltaXRlcik6ZDpzRChhbGxvdy1kdXBsaWNhdGVzKW5bIWNiZkZdCisjdW5kZWYgT1BUU1RSX2N1dAorI2RlZmluZSBPUFRTVFJfY3V0ICJiKnxjKnxmKnxGKHJlZ2V4LWZpZWxkcykqfEMqfE8ob3V0cHV0LWRlbGltaXRlcik6ZDpzRChhbGxvdy1kdXBsaWNhdGVzKW5bIWNiZkZdIgorI2lmZGVmIENMRUFOVVBfY3V0CisjdW5kZWYgQ0xFQU5VUF9jdXQKKyN1bmRlZiBGT1JfY3V0CisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19iCisjZW5kaWYKKworLy8gZGF0ZSA+MWQ6RDpJKGlzby04NjAxKTo7cjpzOnUodXRjKVshZHJdID4xZDpEOkkoaXNvLTg2MDEpOjtyOnM6dSh1dGMpWyFkcl0KKyN1bmRlZiBPUFRTVFJfZGF0ZQorI2RlZmluZSBPUFRTVFJfZGF0ZSAiPjFkOkQ6SShpc28tODYwMSk6O3I6czp1KHV0YylbIWRyXSIKKyNpZmRlZiBDTEVBTlVQX2RhdGUKKyN1bmRlZiBDTEVBTlVQX2RhdGUKKyN1bmRlZiBGT1JfZGF0ZQorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfSQorI3VuZGVmIEZMQUdfRAorI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIGRkICAgIAorI3VuZGVmIE9QVFNUUl9kZAorI2RlZmluZSBPUFRTVFJfZGQgMAorI2lmZGVmIENMRUFOVVBfZGQKKyN1bmRlZiBDTEVBTlVQX2RkCisjdW5kZWYgRk9SX2RkCisjZW5kaWYKKworLy8gZGVhbGxvY3Z0ICAgPjEKKyN1bmRlZiBPUFRTVFJfZGVhbGxvY3Z0CisjZGVmaW5lIE9QVFNUUl9kZWFsbG9jdnQgIj4xIgorI2lmZGVmIENMRUFOVVBfZGVhbGxvY3Z0CisjdW5kZWYgQ0xFQU5VUF9kZWFsbG9jdnQKKyN1bmRlZiBGT1JfZGVhbGxvY3Z0CisjZW5kaWYKKworLy8gZGVjbGFyZSAgIHBBYWlsdW54cgorI3VuZGVmIE9QVFNUUl9kZWNsYXJlCisjZGVmaW5lIE9QVFNUUl9kZWNsYXJlICJwQWFpbHVueHIiCisjaWZkZWYgQ0xFQU5VUF9kZWNsYXJlCisjdW5kZWYgQ0xFQU5VUF9kZWNsYXJlCisjdW5kZWYgRk9SX2RlY2xhcmUKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyBkZW1vX21hbnlfb3B0aW9ucyAgIFpZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBenl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmEKKyN1bmRlZiBPUFRTVFJfZGVtb19tYW55X29wdGlvbnMKKyNkZWZpbmUgT1BUU1RSX2RlbW9fbWFueV9vcHRpb25zICJaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQXp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhIgorI2lmZGVmIENMRUFOVVBfZGVtb19tYW55X29wdGlvbnMKKyN1bmRlZiBDTEVBTlVQX2RlbW9fbWFueV9vcHRpb25zCisjdW5kZWYgRk9SX2RlbW9fbWFueV9vcHRpb25zCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19qCisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR195CisjdW5kZWYgRkxBR196CisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR19CCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19FCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19HCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19JCisjdW5kZWYgRkxBR19KCisjdW5kZWYgRkxBR19LCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19NCisjdW5kZWYgRkxBR19OCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19RCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR19WCisjdW5kZWYgRkxBR19XCisjdW5kZWYgRkxBR19YCisjdW5kZWYgRkxBR19ZCisjdW5kZWYgRkxBR19aCisjZW5kaWYKKworLy8gZGVtb19udW1iZXIgICBEIz0zPDNNIzwwaGNkYnMKKyN1bmRlZiBPUFRTVFJfZGVtb19udW1iZXIKKyNkZWZpbmUgT1BUU1RSX2RlbW9fbnVtYmVyICJEIz0zPDNNIzwwaGNkYnMiCisjaWZkZWYgQ0xFQU5VUF9kZW1vX251bWJlcgorI3VuZGVmIENMRUFOVVBfZGVtb19udW1iZXIKKyN1bmRlZiBGT1JfZGVtb19udW1iZXIKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX00KKyN1bmRlZiBGTEFHX0QKKyNlbmRpZgorCisvLyBkZW1vX3NjYW5rZXkgICAgCisjdW5kZWYgT1BUU1RSX2RlbW9fc2NhbmtleQorI2RlZmluZSBPUFRTVFJfZGVtb19zY2Fua2V5IDAKKyNpZmRlZiBDTEVBTlVQX2RlbW9fc2NhbmtleQorI3VuZGVmIENMRUFOVVBfZGVtb19zY2Fua2V5CisjdW5kZWYgRk9SX2RlbW9fc2NhbmtleQorI2VuZGlmCisKKy8vIGRlbW9fdXRmOHRvd2MgICAgCisjdW5kZWYgT1BUU1RSX2RlbW9fdXRmOHRvd2MKKyNkZWZpbmUgT1BUU1RSX2RlbW9fdXRmOHRvd2MgMAorI2lmZGVmIENMRUFOVVBfZGVtb191dGY4dG93YworI3VuZGVmIENMRUFOVVBfZGVtb191dGY4dG93YworI3VuZGVmIEZPUl9kZW1vX3V0Zjh0b3djCisjZW5kaWYKKworLy8gZGV2bWVtICAgPDE+MworI3VuZGVmIE9QVFNUUl9kZXZtZW0KKyNkZWZpbmUgT1BUU1RSX2Rldm1lbSAiPDE+MyIKKyNpZmRlZiBDTEVBTlVQX2Rldm1lbQorI3VuZGVmIENMRUFOVVBfZGV2bWVtCisjdW5kZWYgRk9SX2Rldm1lbQorI2VuZGlmCisKKy8vIGRmICAgSFBraGl0KmFbLUhQaF0KKyN1bmRlZiBPUFRTVFJfZGYKKyNkZWZpbmUgT1BUU1RSX2RmICJIUGtoaXQqYVstSFBoXSIKKyNpZmRlZiBDTEVBTlVQX2RmCisjdW5kZWYgQ0xFQU5VUF9kZgorI3VuZGVmIEZPUl9kZgorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfSAorI2VuZGlmCisKKy8vIGRoY3AgICBWOkg6Rjp4KnI6TypBIzwwPTIwVCM8MD0zdCM8MD0zczpwOmk6U0JSQ2FvdnFuYmYKKyN1bmRlZiBPUFRTVFJfZGhjcAorI2RlZmluZSBPUFRTVFJfZGhjcCAiVjpIOkY6eCpyOk8qQSM8MD0yMFQjPDA9M3QjPDA9M3M6cDppOlNCUkNhb3ZxbmJmIgorI2lmZGVmIENMRUFOVVBfZGhjcAorI3VuZGVmIENMRUFOVVBfZGhjcAorI3VuZGVmIEZPUl9kaGNwCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19CCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19WCisjZW5kaWYKKworLy8gZGhjcDYgICByOkEjPDBUIzwwdCM8MHM6cDppOlNSdnFuYmYKKyN1bmRlZiBPUFRTVFJfZGhjcDYKKyNkZWZpbmUgT1BUU1RSX2RoY3A2ICJyOkEjPDBUIzwwdCM8MHM6cDppOlNSdnFuYmYiCisjaWZkZWYgQ0xFQU5VUF9kaGNwNgorI3VuZGVmIENMRUFOVVBfZGhjcDYKKyN1bmRlZiBGT1JfZGhjcDYKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX3IKKyNlbmRpZgorCisvLyBkaGNwZCAgID4xUCM8MD42NTUzNWZpOlM0NlshNDZdCisjdW5kZWYgT1BUU1RSX2RoY3BkCisjZGVmaW5lIE9QVFNUUl9kaGNwZCAiPjFQIzwwPjY1NTM1Zmk6UzQ2WyE0Nl0iCisjaWZkZWYgQ0xFQU5VUF9kaGNwZAorI3VuZGVmIENMRUFOVVBfZGhjcGQKKyN1bmRlZiBGT1JfZGhjcGQKKyN1bmRlZiBGTEFHXzYKKyN1bmRlZiBGTEFHXzQKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX1AKKyNlbmRpZgorCisvLyBkaWZmIDwyPjIodW5jaGFuZ2VkLWxpbmUtZm9ybWF0KTo7KG9sZC1saW5lLWZvcm1hdCk6OyhuZXctbGluZS1mb3JtYXQpOjsoY29sb3IpKHN0cmlwLXRyYWlsaW5nLWNyKUIoaWdub3JlLWJsYW5rLWxpbmVzKWQobWluaW1hbCliKGlnbm9yZS1zcGFjZS1jaGFuZ2UpdXQoZXhwYW5kLXRhYnMpdyhpZ25vcmUtYWxsLXNwYWNlKWkoaWdub3JlLWNhc2UpVChpbml0aWFsLXRhYilzKHJlcG9ydC1pZGVudGljYWwtZmlsZXMpcShicmllZilhKHRleHQpUyhzdGFydGluZy1maWxlKTpGKHNob3ctZnVuY3Rpb24tbGluZSk6O0wobGFiZWwpKk4obmV3LWZpbGUpcihyZWN1cnNpdmUpVSh1bmlmaWVkKSM8MD0zIDwyPjIodW5jaGFuZ2VkLWxpbmUtZm9ybWF0KTo7KG9sZC1saW5lLWZvcm1hdCk6OyhuZXctbGluZS1mb3JtYXQpOjsoY29sb3IpKHN0cmlwLXRyYWlsaW5nLWNyKUIoaWdub3JlLWJsYW5rLWxpbmVzKWQobWluaW1hbCliKGlnbm9yZS1zcGFjZS1jaGFuZ2UpdXQoZXhwYW5kLXRhYnMpdyhpZ25vcmUtYWxsLXNwYWNlKWkoaWdub3JlLWNhc2UpVChpbml0aWFsLXRhYilzKHJlcG9ydC1pZGVudGljYWwtZmlsZXMpcShicmllZilhKHRleHQpUyhzdGFydGluZy1maWxlKTpGKHNob3ctZnVuY3Rpb24tbGluZSk6O0wobGFiZWwpKk4obmV3LWZpbGUpcihyZWN1cnNpdmUpVSh1bmlmaWVkKSM8MD0zCisjdW5kZWYgT1BUU1RSX2RpZmYKKyNkZWZpbmUgT1BUU1RSX2RpZmYgIjwyPjIodW5jaGFuZ2VkLWxpbmUtZm9ybWF0KTo7KG9sZC1saW5lLWZvcm1hdCk6OyhuZXctbGluZS1mb3JtYXQpOjsoY29sb3IpKHN0cmlwLXRyYWlsaW5nLWNyKUIoaWdub3JlLWJsYW5rLWxpbmVzKWQobWluaW1hbCliKGlnbm9yZS1zcGFjZS1jaGFuZ2UpdXQoZXhwYW5kLXRhYnMpdyhpZ25vcmUtYWxsLXNwYWNlKWkoaWdub3JlLWNhc2UpVChpbml0aWFsLXRhYilzKHJlcG9ydC1pZGVudGljYWwtZmlsZXMpcShicmllZilhKHRleHQpUyhzdGFydGluZy1maWxlKTpGKHNob3ctZnVuY3Rpb24tbGluZSk6O0wobGFiZWwpKk4obmV3LWZpbGUpcihyZWN1cnNpdmUpVSh1bmlmaWVkKSM8MD0zIgorI2lmZGVmIENMRUFOVVBfZGlmZgorI3VuZGVmIENMRUFOVVBfZGlmZgorI3VuZGVmIEZPUl9kaWZmCisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19OCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19CCisjdW5kZWYgRkxBR19zdHJpcF90cmFpbGluZ19jcgorI3VuZGVmIEZMQUdfY29sb3IKKyN1bmRlZiBGTEFHX25ld19saW5lX2Zvcm1hdAorI3VuZGVmIEZMQUdfb2xkX2xpbmVfZm9ybWF0CisjdW5kZWYgRkxBR191bmNoYW5nZWRfbGluZV9mb3JtYXQKKyNlbmRpZgorCisvLyBkaXJuYW1lIDwxIDwxCisjdW5kZWYgT1BUU1RSX2Rpcm5hbWUKKyNkZWZpbmUgT1BUU1RSX2Rpcm5hbWUgIjwxIgorI2lmZGVmIENMRUFOVVBfZGlybmFtZQorI3VuZGVmIENMRUFOVVBfZGlybmFtZQorI3VuZGVmIEZPUl9kaXJuYW1lCisjZW5kaWYKKworLy8gZG1lc2cgICB3KGZvbGxvdylDU1R0cnMjPDFuI2NbIVR0cl1bIUNjXVshU3ddCisjdW5kZWYgT1BUU1RSX2RtZXNnCisjZGVmaW5lIE9QVFNUUl9kbWVzZyAidyhmb2xsb3cpQ1NUdHJzIzwxbiNjWyFUdHJdWyFDY11bIVN3XSIKKyNpZmRlZiBDTEVBTlVQX2RtZXNnCisjdW5kZWYgQ0xFQU5VUF9kbWVzZworI3VuZGVmIEZPUl9kbWVzZworI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfVAorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfQworI3VuZGVmIEZMQUdfdworI2VuZGlmCisKKy8vIGRuc2RvbWFpbm5hbWUgICA+MAorI3VuZGVmIE9QVFNUUl9kbnNkb21haW5uYW1lCisjZGVmaW5lIE9QVFNUUl9kbnNkb21haW5uYW1lICI+MCIKKyNpZmRlZiBDTEVBTlVQX2Ruc2RvbWFpbm5hbWUKKyN1bmRlZiBDTEVBTlVQX2Ruc2RvbWFpbm5hbWUKKyN1bmRlZiBGT1JfZG5zZG9tYWlubmFtZQorI2VuZGlmCisKKy8vIGRvczJ1bml4ICAgIAorI3VuZGVmIE9QVFNUUl9kb3MydW5peAorI2RlZmluZSBPUFRTVFJfZG9zMnVuaXggMAorI2lmZGVmIENMRUFOVVBfZG9zMnVuaXgKKyN1bmRlZiBDTEVBTlVQX2RvczJ1bml4CisjdW5kZWYgRk9SX2RvczJ1bml4CisjZW5kaWYKKworLy8gZHUgZCM8MD0tMWhtbGNhSGtLTHN4YlstSExdWy1rS21oXSBkIzwwPS0xaG1sY2FIa0tMc3hiWy1ITF1bLWtLbWhdCisjdW5kZWYgT1BUU1RSX2R1CisjZGVmaW5lIE9QVFNUUl9kdSAiZCM8MD0tMWhtbGNhSGtLTHN4YlstSExdWy1rS21oXSIKKyNpZmRlZiBDTEVBTlVQX2R1CisjdW5kZWYgQ0xFQU5VUF9kdQorI3VuZGVmIEZPUl9kdQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfSworI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfSAorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfZAorI2VuZGlmCisKKy8vIGR1bXBsZWFzZXMgICA+MGFyZjpbIWFyXQorI3VuZGVmIE9QVFNUUl9kdW1wbGVhc2VzCisjZGVmaW5lIE9QVFNUUl9kdW1wbGVhc2VzICI+MGFyZjpbIWFyXSIKKyNpZmRlZiBDTEVBTlVQX2R1bXBsZWFzZXMKKyN1bmRlZiBDTEVBTlVQX2R1bXBsZWFzZXMKKyN1bmRlZiBGT1JfZHVtcGxlYXNlcworI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIGVjaG8gXj9FZW5bLWVFXSBeP0VlblstZUVdCisjdW5kZWYgT1BUU1RSX2VjaG8KKyNkZWZpbmUgT1BUU1RSX2VjaG8gIl4/RWVuWy1lRV0iCisjaWZkZWYgQ0xFQU5VUF9lY2hvCisjdW5kZWYgQ0xFQU5VUF9lY2hvCisjdW5kZWYgRk9SX2VjaG8KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX0UKKyNlbmRpZgorCisvLyBlamVjdCAgID4xc3RUWyF0VF0KKyN1bmRlZiBPUFRTVFJfZWplY3QKKyNkZWZpbmUgT1BUU1RSX2VqZWN0ICI+MXN0VFshdFRdIgorI2lmZGVmIENMRUFOVVBfZWplY3QKKyN1bmRlZiBDTEVBTlVQX2VqZWN0CisjdW5kZWYgRk9SX2VqZWN0CisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19zCisjZW5kaWYKKworLy8gZW52IF5lOmkwdSogXmU6aTB1KgorI3VuZGVmIE9QVFNUUl9lbnYKKyNkZWZpbmUgT1BUU1RSX2VudiAiXmU6aTB1KiIKKyNpZmRlZiBDTEVBTlVQX2VudgorI3VuZGVmIENMRUFOVVBfZW52CisjdW5kZWYgRk9SX2VudgorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfMAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZQorI2VuZGlmCisKKy8vIGV2YWwgICAgCisjdW5kZWYgT1BUU1RSX2V2YWwKKyNkZWZpbmUgT1BUU1RSX2V2YWwgMAorI2lmZGVmIENMRUFOVVBfZXZhbAorI3VuZGVmIENMRUFOVVBfZXZhbAorI3VuZGVmIEZPUl9ldmFsCisjZW5kaWYKKworLy8gZXhlYyAgIF5jbGE6CisjdW5kZWYgT1BUU1RSX2V4ZWMKKyNkZWZpbmUgT1BUU1RSX2V4ZWMgIl5jbGE6IgorI2lmZGVmIENMRUFOVVBfZXhlYworI3VuZGVmIENMRUFOVVBfZXhlYworI3VuZGVmIEZPUl9leGVjCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gZXhpdCAgICAKKyN1bmRlZiBPUFRTVFJfZXhpdAorI2RlZmluZSBPUFRTVFJfZXhpdCAwCisjaWZkZWYgQ0xFQU5VUF9leGl0CisjdW5kZWYgQ0xFQU5VUF9leGl0CisjdW5kZWYgRk9SX2V4aXQKKyNlbmRpZgorCisvLyBleHBhbmQgICB0KgorI3VuZGVmIE9QVFNUUl9leHBhbmQKKyNkZWZpbmUgT1BUU1RSX2V4cGFuZCAidCoiCisjaWZkZWYgQ0xFQU5VUF9leHBhbmQKKyN1bmRlZiBDTEVBTlVQX2V4cGFuZAorI3VuZGVmIEZPUl9leHBhbmQKKyN1bmRlZiBGTEFHX3QKKyNlbmRpZgorCisvLyBleHBvcnQgICBucAorI3VuZGVmIE9QVFNUUl9leHBvcnQKKyNkZWZpbmUgT1BUU1RSX2V4cG9ydCAibnAiCisjaWZkZWYgQ0xFQU5VUF9leHBvcnQKKyN1bmRlZiBDTEVBTlVQX2V4cG9ydAorI3VuZGVmIEZPUl9leHBvcnQKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX24KKyNlbmRpZgorCisvLyBleHByICAgIAorI3VuZGVmIE9QVFNUUl9leHByCisjZGVmaW5lIE9QVFNUUl9leHByIDAKKyNpZmRlZiBDTEVBTlVQX2V4cHIKKyN1bmRlZiBDTEVBTlVQX2V4cHIKKyN1bmRlZiBGT1JfZXhwcgorI2VuZGlmCisKKy8vIGZhY3RvciAgID9oeAorI3VuZGVmIE9QVFNUUl9mYWN0b3IKKyNkZWZpbmUgT1BUU1RSX2ZhY3RvciAiP2h4IgorI2lmZGVmIENMRUFOVVBfZmFjdG9yCisjdW5kZWYgQ0xFQU5VUF9mYWN0b3IKKyN1bmRlZiBGT1JfZmFjdG9yCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19oCisjZW5kaWYKKworLy8gZmFsbG9jYXRlICAgPjFsI3xvIworI3VuZGVmIE9QVFNUUl9mYWxsb2NhdGUKKyNkZWZpbmUgT1BUU1RSX2ZhbGxvY2F0ZSAiPjFsI3xvIyIKKyNpZmRlZiBDTEVBTlVQX2ZhbGxvY2F0ZQorI3VuZGVmIENMRUFOVVBfZmFsbG9jYXRlCisjdW5kZWYgRk9SX2ZhbGxvY2F0ZQorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfbAorI2VuZGlmCisKKy8vIGZhbHNlICAgIAorI3VuZGVmIE9QVFNUUl9mYWxzZQorI2RlZmluZSBPUFRTVFJfZmFsc2UgMAorI2lmZGVmIENMRUFOVVBfZmFsc2UKKyN1bmRlZiBDTEVBTlVQX2ZhbHNlCisjdW5kZWYgRk9SX2ZhbHNlCisjZW5kaWYKKworLy8gZmRpc2sgICBDIzwwSCM8MFMjPDBiIzw1MTJ1bAorI3VuZGVmIE9QVFNUUl9mZGlzaworI2RlZmluZSBPUFRTVFJfZmRpc2sgIkMjPDBIIzwwUyM8MGIjPDUxMnVsIgorI2lmZGVmIENMRUFOVVBfZmRpc2sKKyN1bmRlZiBDTEVBTlVQX2ZkaXNrCisjdW5kZWYgRk9SX2ZkaXNrCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19DCisjZW5kaWYKKworLy8gZmlsZSA8MWIoYnJpZWYpaExzWyFoTF0gPDFiKGJyaWVmKWhMc1shaExdCisjdW5kZWYgT1BUU1RSX2ZpbGUKKyNkZWZpbmUgT1BUU1RSX2ZpbGUgIjwxYihicmllZiloTHNbIWhMXSIKKyNpZmRlZiBDTEVBTlVQX2ZpbGUKKyN1bmRlZiBDTEVBTlVQX2ZpbGUKKyN1bmRlZiBGT1JfZmlsZQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIGZpbmQgP15ITFstSExdID9eSExbLUhMXQorI3VuZGVmIE9QVFNUUl9maW5kCisjZGVmaW5lIE9QVFNUUl9maW5kICI/XkhMWy1ITF0iCisjaWZkZWYgQ0xFQU5VUF9maW5kCisjdW5kZWYgQ0xFQU5VUF9maW5kCisjdW5kZWYgRk9SX2ZpbmQKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX0gKKyNlbmRpZgorCisvLyBmbG9jayAgIDwxPjFuc3V4Wy1zdXhdCisjdW5kZWYgT1BUU1RSX2Zsb2NrCisjZGVmaW5lIE9QVFNUUl9mbG9jayAiPDE+MW5zdXhbLXN1eF0iCisjaWZkZWYgQ0xFQU5VUF9mbG9jaworI3VuZGVmIENMRUFOVVBfZmxvY2sKKyN1bmRlZiBGT1JfZmxvY2sKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX24KKyNlbmRpZgorCisvLyBmbXQgICB3IzwwPTc1CisjdW5kZWYgT1BUU1RSX2ZtdAorI2RlZmluZSBPUFRTVFJfZm10ICJ3IzwwPTc1IgorI2lmZGVmIENMRUFOVVBfZm10CisjdW5kZWYgQ0xFQU5VUF9mbXQKKyN1bmRlZiBGT1JfZm10CisjdW5kZWYgRkxBR193CisjZW5kaWYKKworLy8gZm9sZCAgIGJzdyM8MT04MAorI3VuZGVmIE9QVFNUUl9mb2xkCisjZGVmaW5lIE9QVFNUUl9mb2xkICJic3cjPDE9ODAiCisjaWZkZWYgQ0xFQU5VUF9mb2xkCisjdW5kZWYgQ0xFQU5VUF9mb2xkCisjdW5kZWYgRk9SX2ZvbGQKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2IKKyNlbmRpZgorCisvLyBmcmVlICAgaGdta2JbIWhnbWtiXQorI3VuZGVmIE9QVFNUUl9mcmVlCisjZGVmaW5lIE9QVFNUUl9mcmVlICJoZ21rYlshaGdta2JdIgorI2lmZGVmIENMRUFOVVBfZnJlZQorI3VuZGVmIENMRUFOVVBfZnJlZQorI3VuZGVmIEZPUl9mcmVlCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19oCisjZW5kaWYKKworLy8gZnJlZXJhbWRpc2sgICA8MT4xCisjdW5kZWYgT1BUU1RSX2ZyZWVyYW1kaXNrCisjZGVmaW5lIE9QVFNUUl9mcmVlcmFtZGlzayAiPDE+MSIKKyNpZmRlZiBDTEVBTlVQX2ZyZWVyYW1kaXNrCisjdW5kZWYgQ0xFQU5VUF9mcmVlcmFtZGlzaworI3VuZGVmIEZPUl9mcmVlcmFtZGlzaworI2VuZGlmCisKKy8vIGZzY2sgICA/dDpBTlBSVFZzQyMKKyN1bmRlZiBPUFRTVFJfZnNjaworI2RlZmluZSBPUFRTVFJfZnNjayAiP3Q6QU5QUlRWc0MjIgorI2lmZGVmIENMRUFOVVBfZnNjaworI3VuZGVmIENMRUFOVVBfZnNjaworI3VuZGVmIEZPUl9mc2NrCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19WCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19OCisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR190CisjZW5kaWYKKworLy8gZnNmcmVlemUgICA8MT4xZnx1fFshZnVdCisjdW5kZWYgT1BUU1RSX2ZzZnJlZXplCisjZGVmaW5lIE9QVFNUUl9mc2ZyZWV6ZSAiPDE+MWZ8dXxbIWZ1XSIKKyNpZmRlZiBDTEVBTlVQX2ZzZnJlZXplCisjdW5kZWYgQ0xFQU5VUF9mc2ZyZWV6ZQorI3VuZGVmIEZPUl9mc2ZyZWV6ZQorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfZgorI2VuZGlmCisKKy8vIGZzdHlwZSAgIDwxCisjdW5kZWYgT1BUU1RSX2ZzdHlwZQorI2RlZmluZSBPUFRTVFJfZnN0eXBlICI8MSIKKyNpZmRlZiBDTEVBTlVQX2ZzdHlwZQorI3VuZGVmIENMRUFOVVBfZnN0eXBlCisjdW5kZWYgRk9SX2ZzdHlwZQorI2VuZGlmCisKKy8vIGZzeW5jICAgPDFkCisjdW5kZWYgT1BUU1RSX2ZzeW5jCisjZGVmaW5lIE9QVFNUUl9mc3luYyAiPDFkIgorI2lmZGVmIENMRUFOVVBfZnN5bmMKKyN1bmRlZiBDTEVBTlVQX2ZzeW5jCisjdW5kZWYgRk9SX2ZzeW5jCisjdW5kZWYgRkxBR19kCisjZW5kaWYKKworLy8gZnRwZ2V0ICAgPDI+M1A6Y3A6dTp2Z3NsTG1NZERbLWdzXVshZ3NsTG1NZERdWyFjbExdCisjdW5kZWYgT1BUU1RSX2Z0cGdldAorI2RlZmluZSBPUFRTVFJfZnRwZ2V0ICI8Mj4zUDpjcDp1OnZnc2xMbU1kRFstZ3NdWyFnc2xMbU1kRF1bIWNsTF0iCisjaWZkZWYgQ0xFQU5VUF9mdHBnZXQKKyN1bmRlZiBDTEVBTlVQX2Z0cGdldAorI3VuZGVmIEZPUl9mdHBnZXQKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX00KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX1AKKyNlbmRpZgorCisvLyBnZXRjb25mID4yYWwgPjJhbAorI3VuZGVmIE9QVFNUUl9nZXRjb25mCisjZGVmaW5lIE9QVFNUUl9nZXRjb25mICI+MmFsIgorI2lmZGVmIENMRUFOVVBfZ2V0Y29uZgorI3VuZGVmIENMRUFOVVBfZ2V0Y29uZgorI3VuZGVmIEZPUl9nZXRjb25mCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gZ2V0ZW5mb3JjZSAgID4wCisjdW5kZWYgT1BUU1RSX2dldGVuZm9yY2UKKyNkZWZpbmUgT1BUU1RSX2dldGVuZm9yY2UgIj4wIgorI2lmZGVmIENMRUFOVVBfZ2V0ZW5mb3JjZQorI3VuZGVmIENMRUFOVVBfZ2V0ZW5mb3JjZQorI3VuZGVmIEZPUl9nZXRlbmZvcmNlCisjZW5kaWYKKworLy8gZ2V0ZmF0dHIgICAob25seS12YWx1ZXMpZGhuOgorI3VuZGVmIE9QVFNUUl9nZXRmYXR0cgorI2RlZmluZSBPUFRTVFJfZ2V0ZmF0dHIgIihvbmx5LXZhbHVlcylkaG46IgorI2lmZGVmIENMRUFOVVBfZ2V0ZmF0dHIKKyN1bmRlZiBDTEVBTlVQX2dldGZhdHRyCisjdW5kZWYgRk9SX2dldGZhdHRyCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19vbmx5X3ZhbHVlcworI2VuZGlmCisKKy8vIGdldG9wdCBeYShhbHRlcm5hdGl2ZSluOihuYW1lKW86KG9wdGlvbnMpbCoobG9uZykobG9uZ29wdGlvbnMpVHUgXmEoYWx0ZXJuYXRpdmUpbjoobmFtZSlvOihvcHRpb25zKWwqKGxvbmcpKGxvbmdvcHRpb25zKVR1CisjdW5kZWYgT1BUU1RSX2dldG9wdAorI2RlZmluZSBPUFRTVFJfZ2V0b3B0ICJeYShhbHRlcm5hdGl2ZSluOihuYW1lKW86KG9wdGlvbnMpbCoobG9uZykobG9uZ29wdGlvbnMpVHUiCisjaWZkZWYgQ0xFQU5VUF9nZXRvcHQKKyN1bmRlZiBDTEVBTlVQX2dldG9wdAorI3VuZGVmIEZPUl9nZXRvcHQKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBnZXR0eSAgIDwydCM8MEg6STpsOmY6aXdubUxoCisjdW5kZWYgT1BUU1RSX2dldHR5CisjZGVmaW5lIE9QVFNUUl9nZXR0eSAiPDJ0IzwwSDpJOmw6Zjppd25tTGgiCisjaWZkZWYgQ0xFQU5VUF9nZXR0eQorI3VuZGVmIENMRUFOVVBfZ2V0dHkKKyN1bmRlZiBGT1JfZ2V0dHkKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX0kKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX3QKKyNlbmRpZgorCisvLyBnaXRjaGVja291dCAgIDwxCisjdW5kZWYgT1BUU1RSX2dpdGNoZWNrb3V0CisjZGVmaW5lIE9QVFNUUl9naXRjaGVja291dCAiPDEiCisjaWZkZWYgQ0xFQU5VUF9naXRjaGVja291dAorI3VuZGVmIENMRUFOVVBfZ2l0Y2hlY2tvdXQKKyN1bmRlZiBGT1JfZ2l0Y2hlY2tvdXQKKyNlbmRpZgorCisvLyBnaXRjbG9uZSAgIDwxCisjdW5kZWYgT1BUU1RSX2dpdGNsb25lCisjZGVmaW5lIE9QVFNUUl9naXRjbG9uZSAiPDEiCisjaWZkZWYgQ0xFQU5VUF9naXRjbG9uZQorI3VuZGVmIENMRUFOVVBfZ2l0Y2xvbmUKKyN1bmRlZiBGT1JfZ2l0Y2xvbmUKKyNlbmRpZgorCisvLyBnaXRmZXRjaCAgICAKKyN1bmRlZiBPUFRTVFJfZ2l0ZmV0Y2gKKyNkZWZpbmUgT1BUU1RSX2dpdGZldGNoIDAKKyNpZmRlZiBDTEVBTlVQX2dpdGZldGNoCisjdW5kZWYgQ0xFQU5VUF9naXRmZXRjaAorI3VuZGVmIEZPUl9naXRmZXRjaAorI2VuZGlmCisKKy8vIGdpdGluaXQgICA8MQorI3VuZGVmIE9QVFNUUl9naXRpbml0CisjZGVmaW5lIE9QVFNUUl9naXRpbml0ICI8MSIKKyNpZmRlZiBDTEVBTlVQX2dpdGluaXQKKyN1bmRlZiBDTEVBTlVQX2dpdGluaXQKKyN1bmRlZiBGT1JfZ2l0aW5pdAorI2VuZGlmCisKKy8vIGdpdHJlbW90ZSAgIDwxCisjdW5kZWYgT1BUU1RSX2dpdHJlbW90ZQorI2RlZmluZSBPUFRTVFJfZ2l0cmVtb3RlICI8MSIKKyNpZmRlZiBDTEVBTlVQX2dpdHJlbW90ZQorI3VuZGVmIENMRUFOVVBfZ2l0cmVtb3RlCisjdW5kZWYgRk9SX2dpdHJlbW90ZQorI2VuZGlmCisKKy8vIGdwaW9kZXRlY3QgICA+MAorI3VuZGVmIE9QVFNUUl9ncGlvZGV0ZWN0CisjZGVmaW5lIE9QVFNUUl9ncGlvZGV0ZWN0ICI+MCIKKyNpZmRlZiBDTEVBTlVQX2dwaW9kZXRlY3QKKyN1bmRlZiBDTEVBTlVQX2dwaW9kZXRlY3QKKyN1bmRlZiBGT1JfZ3Bpb2RldGVjdAorI2VuZGlmCisKKy8vIGdwaW9maW5kICAgPDE+MQorI3VuZGVmIE9QVFNUUl9ncGlvZmluZAorI2RlZmluZSBPUFRTVFJfZ3Bpb2ZpbmQgIjwxPjEiCisjaWZkZWYgQ0xFQU5VUF9ncGlvZmluZAorI3VuZGVmIENMRUFOVVBfZ3Bpb2ZpbmQKKyN1bmRlZiBGT1JfZ3Bpb2ZpbmQKKyNlbmRpZgorCisvLyBncGlvZ2V0ICAgPDJsCisjdW5kZWYgT1BUU1RSX2dwaW9nZXQKKyNkZWZpbmUgT1BUU1RSX2dwaW9nZXQgIjwybCIKKyNpZmRlZiBDTEVBTlVQX2dwaW9nZXQKKyN1bmRlZiBDTEVBTlVQX2dwaW9nZXQKKyN1bmRlZiBGT1JfZ3Bpb2dldAorI3VuZGVmIEZMQUdfbAorI2VuZGlmCisKKy8vIGdwaW9pbmZvICAgIAorI3VuZGVmIE9QVFNUUl9ncGlvaW5mbworI2RlZmluZSBPUFRTVFJfZ3Bpb2luZm8gMAorI2lmZGVmIENMRUFOVVBfZ3Bpb2luZm8KKyN1bmRlZiBDTEVBTlVQX2dwaW9pbmZvCisjdW5kZWYgRk9SX2dwaW9pbmZvCisjZW5kaWYKKworLy8gZ3Bpb3NldCAgIDwybAorI3VuZGVmIE9QVFNUUl9ncGlvc2V0CisjZGVmaW5lIE9QVFNUUl9ncGlvc2V0ICI8MmwiCisjaWZkZWYgQ0xFQU5VUF9ncGlvc2V0CisjdW5kZWYgQ0xFQU5VUF9ncGlvc2V0CisjdW5kZWYgRk9SX2dwaW9zZXQKKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBncmVwIChsaW5lLWJ1ZmZlcmVkKShjb2xvcik6OyhleGNsdWRlLWRpcikqUyhleGNsdWRlKSpNKGluY2x1ZGUpKlp6RUZISWFiKGJ5dGUtb2Zmc2V0KWgobm8tZmlsZW5hbWUpaW5vKG9ubHktbWF0Y2hpbmcpclJzdndjKGNvdW50KUwoZmlsZXMtd2l0aG91dC1tYXRjaClsKGZpbGVzLXdpdGgtbWF0Y2hlcylxKHF1aWV0KShzaWxlbnQpZSpmKkMjQiNBI20jeFshd3hdWyFFRl0gKGxpbmUtYnVmZmVyZWQpKGNvbG9yKTo7KGV4Y2x1ZGUtZGlyKSpTKGV4Y2x1ZGUpKk0oaW5jbHVkZSkqWnpFRkhJYWIoYnl0ZS1vZmZzZXQpaChuby1maWxlbmFtZSlpbm8ob25seS1tYXRjaGluZylyUnN2d2MoY291bnQpTChmaWxlcy13aXRob3V0LW1hdGNoKWwoZmlsZXMtd2l0aC1tYXRjaGVzKXEocXVpZXQpKHNpbGVudCllKmYqQyNCI0EjbSN4WyF3eF1bIUVGXQorI3VuZGVmIE9QVFNUUl9ncmVwCisjZGVmaW5lIE9QVFNUUl9ncmVwICIobGluZS1idWZmZXJlZCkoY29sb3IpOjsoZXhjbHVkZS1kaXIpKlMoZXhjbHVkZSkqTShpbmNsdWRlKSpaekVGSElhYihieXRlLW9mZnNldCloKG5vLWZpbGVuYW1lKWlubyhvbmx5LW1hdGNoaW5nKXJSc3Z3Yyhjb3VudClMKGZpbGVzLXdpdGhvdXQtbWF0Y2gpbChmaWxlcy13aXRoLW1hdGNoZXMpcShxdWlldCkoc2lsZW50KWUqZipDI0IjQSNtI3hbIXd4XVshRUZdIgorI2lmZGVmIENMRUFOVVBfZ3JlcAorI3VuZGVmIENMRUFOVVBfZ3JlcAorI3VuZGVmIEZPUl9ncmVwCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR19CCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19JCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19FCisjdW5kZWYgRkxBR196CisjdW5kZWYgRkxBR19aCisjdW5kZWYgRkxBR19NCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19leGNsdWRlX2RpcgorI3VuZGVmIEZMQUdfY29sb3IKKyN1bmRlZiBGTEFHX2xpbmVfYnVmZmVyZWQKKyNlbmRpZgorCisvLyBncm91cGFkZCAgIDwxPjJSOmcjPDA+MjE0NzQ4MzY0N1MKKyN1bmRlZiBPUFRTVFJfZ3JvdXBhZGQKKyNkZWZpbmUgT1BUU1RSX2dyb3VwYWRkICI8MT4yUjpnIzwwPjIxNDc0ODM2NDdTIgorI2lmZGVmIENMRUFOVVBfZ3JvdXBhZGQKKyN1bmRlZiBDTEVBTlVQX2dyb3VwYWRkCisjdW5kZWYgRk9SX2dyb3VwYWRkCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19SCisjZW5kaWYKKworLy8gZ3JvdXBkZWwgICA8MT4yPworI3VuZGVmIE9QVFNUUl9ncm91cGRlbAorI2RlZmluZSBPUFRTVFJfZ3JvdXBkZWwgIjwxPjI/IgorI2lmZGVmIENMRUFOVVBfZ3JvdXBkZWwKKyN1bmRlZiBDTEVBTlVQX2dyb3VwZGVsCisjdW5kZWYgRk9SX2dyb3VwZGVsCisjZW5kaWYKKworLy8gZ3JvdXBzICAgIAorI3VuZGVmIE9QVFNUUl9ncm91cHMKKyNkZWZpbmUgT1BUU1RSX2dyb3VwcyAwCisjaWZkZWYgQ0xFQU5VUF9ncm91cHMKKyN1bmRlZiBDTEVBTlVQX2dyb3VwcworI3VuZGVmIEZPUl9ncm91cHMKKyNlbmRpZgorCisvLyBndW56aXAgICBjZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XQorI3VuZGVmIE9QVFNUUl9ndW56aXAKKyNkZWZpbmUgT1BUU1RSX2d1bnppcCAiY2Rma3QxMjM0NTY3ODlbLTEyMzQ1Njc4OV0iCisjaWZkZWYgQ0xFQU5VUF9ndW56aXAKKyN1bmRlZiBDTEVBTlVQX2d1bnppcAorI3VuZGVmIEZPUl9ndW56aXAKKyN1bmRlZiBGTEFHXzkKKyN1bmRlZiBGTEFHXzgKKyN1bmRlZiBGTEFHXzcKKyN1bmRlZiBGTEFHXzYKKyN1bmRlZiBGTEFHXzUKKyN1bmRlZiBGTEFHXzQKKyN1bmRlZiBGTEFHXzMKKyN1bmRlZiBGTEFHXzIKKyN1bmRlZiBGTEFHXzEKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX2sKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBnemlwIG4obm8tbmFtZSljZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XSBuKG5vLW5hbWUpY2Rma3QxMjM0NTY3ODlbLTEyMzQ1Njc4OV0KKyN1bmRlZiBPUFRTVFJfZ3ppcAorI2RlZmluZSBPUFRTVFJfZ3ppcCAibihuby1uYW1lKWNkZmt0MTIzNDU2Nzg5Wy0xMjM0NTY3ODldIgorI2lmZGVmIENMRUFOVVBfZ3ppcAorI3VuZGVmIENMRUFOVVBfZ3ppcAorI3VuZGVmIEZPUl9nemlwCisjdW5kZWYgRkxBR185CisjdW5kZWYgRkxBR184CisjdW5kZWYgRkxBR183CisjdW5kZWYgRkxBR182CisjdW5kZWYgRkxBR181CisjdW5kZWYgRkxBR180CisjdW5kZWYgRkxBR18zCisjdW5kZWYgRkxBR18yCisjdW5kZWYgRkxBR18xCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19uCisjZW5kaWYKKworLy8gaGVhZCA/bihsaW5lcykjPDA9MTBjKGJ5dGVzKSM8MHF2Wy1uY10gP24obGluZXMpIzwwPTEwYyhieXRlcykjPDBxdlstbmNdCisjdW5kZWYgT1BUU1RSX2hlYWQKKyNkZWZpbmUgT1BUU1RSX2hlYWQgIj9uKGxpbmVzKSM8MD0xMGMoYnl0ZXMpIzwwcXZbLW5jXSIKKyNpZmRlZiBDTEVBTlVQX2hlYWQKKyN1bmRlZiBDTEVBTlVQX2hlYWQKKyN1bmRlZiBGT1JfaGVhZAorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIGhlbGxvICAgIAorI3VuZGVmIE9QVFNUUl9oZWxsbworI2RlZmluZSBPUFRTVFJfaGVsbG8gMAorI2lmZGVmIENMRUFOVVBfaGVsbG8KKyN1bmRlZiBDTEVBTlVQX2hlbGxvCisjdW5kZWYgRk9SX2hlbGxvCisjZW5kaWYKKworLy8gaGVscCAgIGFodQorI3VuZGVmIE9QVFNUUl9oZWxwCisjZGVmaW5lIE9QVFNUUl9oZWxwICJhaHUiCisjaWZkZWYgQ0xFQU5VUF9oZWxwCisjdW5kZWYgQ0xFQU5VUF9oZWxwCisjdW5kZWYgRk9SX2hlbHAKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBoZXhkdW1wICAgYmNDZG4jPDBvcyM8MHZ4WyFiY0Nkb3hdCisjdW5kZWYgT1BUU1RSX2hleGR1bXAKKyNkZWZpbmUgT1BUU1RSX2hleGR1bXAgImJjQ2RuIzwwb3MjPDB2eFshYmNDZG94XSIKKyNpZmRlZiBDTEVBTlVQX2hleGR1bXAKKyN1bmRlZiBDTEVBTlVQX2hleGR1bXAKKyN1bmRlZiBGT1JfaGV4ZHVtcAorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfQworI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIGhleGVkaXQgICA8MT4xcgorI3VuZGVmIE9QVFNUUl9oZXhlZGl0CisjZGVmaW5lIE9QVFNUUl9oZXhlZGl0ICI8MT4xciIKKyNpZmRlZiBDTEVBTlVQX2hleGVkaXQKKyN1bmRlZiBDTEVBTlVQX2hleGVkaXQKKyN1bmRlZiBGT1JfaGV4ZWRpdAorI3VuZGVmIEZMQUdfcgorI2VuZGlmCisKKy8vIGhvc3QgICA8MT4yYXZ0OgorI3VuZGVmIE9QVFNUUl9ob3N0CisjZGVmaW5lIE9QVFNUUl9ob3N0ICI8MT4yYXZ0OiIKKyNpZmRlZiBDTEVBTlVQX2hvc3QKKyN1bmRlZiBDTEVBTlVQX2hvc3QKKyN1bmRlZiBGT1JfaG9zdAorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIGhvc3RpZCAgID4wCisjdW5kZWYgT1BUU1RSX2hvc3RpZAorI2RlZmluZSBPUFRTVFJfaG9zdGlkICI+MCIKKyNpZmRlZiBDTEVBTlVQX2hvc3RpZAorI3VuZGVmIENMRUFOVVBfaG9zdGlkCisjdW5kZWYgRk9SX2hvc3RpZAorI2VuZGlmCisKKy8vIGhvc3RuYW1lID4xYmRzZkY6WyFiZHNmXSA+MWJkc2ZGOlshYmRzZl0KKyN1bmRlZiBPUFRTVFJfaG9zdG5hbWUKKyNkZWZpbmUgT1BUU1RSX2hvc3RuYW1lICI+MWJkc2ZGOlshYmRzZl0iCisjaWZkZWYgQ0xFQU5VUF9ob3N0bmFtZQorI3VuZGVmIENMRUFOVVBfaG9zdG5hbWUKKyN1bmRlZiBGT1JfaG9zdG5hbWUKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2IKKyNlbmRpZgorCisvLyBodHRwZCAgID4xdgorI3VuZGVmIE9QVFNUUl9odHRwZAorI2RlZmluZSBPUFRTVFJfaHR0cGQgIj4xdiIKKyNpZmRlZiBDTEVBTlVQX2h0dHBkCisjdW5kZWYgQ0xFQU5VUF9odHRwZAorI3VuZGVmIEZPUl9odHRwZAorI3VuZGVmIEZMQUdfdgorI2VuZGlmCisKKy8vIGh3Y2xvY2sgICA+MChmYXN0KWYocnRjKTp1KHV0YylsKGxvY2FsdGltZSl0KHN5c3R6KXMoaGN0b3N5cylyKHNob3cpdyhzeXN0b2hjKVstdWxdWyFydHN3XQorI3VuZGVmIE9QVFNUUl9od2Nsb2NrCisjZGVmaW5lIE9QVFNUUl9od2Nsb2NrICI+MChmYXN0KWYocnRjKTp1KHV0YylsKGxvY2FsdGltZSl0KHN5c3R6KXMoaGN0b3N5cylyKHNob3cpdyhzeXN0b2hjKVstdWxdWyFydHN3XSIKKyNpZmRlZiBDTEVBTlVQX2h3Y2xvY2sKKyN1bmRlZiBDTEVBTlVQX2h3Y2xvY2sKKyN1bmRlZiBGT1JfaHdjbG9jaworI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZmFzdAorI2VuZGlmCisKKy8vIGkyY2RldGVjdCAgID4zYUYjPDA+NjNscXJ5WyFxcl1bIUZsXQorI3VuZGVmIE9QVFNUUl9pMmNkZXRlY3QKKyNkZWZpbmUgT1BUU1RSX2kyY2RldGVjdCAiPjNhRiM8MD42M2xxcnlbIXFyXVshRmxdIgorI2lmZGVmIENMRUFOVVBfaTJjZGV0ZWN0CisjdW5kZWYgQ0xFQU5VUF9pMmNkZXRlY3QKKyN1bmRlZiBGT1JfaTJjZGV0ZWN0CisjdW5kZWYgRkxBR195CisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gaTJjZHVtcCAgIDwyPjJmeQorI3VuZGVmIE9QVFNUUl9pMmNkdW1wCisjZGVmaW5lIE9QVFNUUl9pMmNkdW1wICI8Mj4yZnkiCisjaWZkZWYgQ0xFQU5VUF9pMmNkdW1wCisjdW5kZWYgQ0xFQU5VUF9pMmNkdW1wCisjdW5kZWYgRk9SX2kyY2R1bXAKKyN1bmRlZiBGTEFHX3kKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyBpMmNnZXQgICA8Mj4zZnkKKyN1bmRlZiBPUFRTVFJfaTJjZ2V0CisjZGVmaW5lIE9QVFNUUl9pMmNnZXQgIjwyPjNmeSIKKyNpZmRlZiBDTEVBTlVQX2kyY2dldAorI3VuZGVmIENMRUFOVVBfaTJjZ2V0CisjdW5kZWYgRk9SX2kyY2dldAorI3VuZGVmIEZMQUdfeQorI3VuZGVmIEZMQUdfZgorI2VuZGlmCisKKy8vIGkyY3NldCAgIDw0ZnkKKyN1bmRlZiBPUFRTVFJfaTJjc2V0CisjZGVmaW5lIE9QVFNUUl9pMmNzZXQgIjw0ZnkiCisjaWZkZWYgQ0xFQU5VUF9pMmNzZXQKKyN1bmRlZiBDTEVBTlVQX2kyY3NldAorI3VuZGVmIEZPUl9pMmNzZXQKKyN1bmRlZiBGTEFHX3kKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyBpMmN0cmFuc2ZlciAgIDwydmZ5CisjdW5kZWYgT1BUU1RSX2kyY3RyYW5zZmVyCisjZGVmaW5lIE9QVFNUUl9pMmN0cmFuc2ZlciAiPDJ2ZnkiCisjaWZkZWYgQ0xFQU5VUF9pMmN0cmFuc2ZlcgorI3VuZGVmIENMRUFOVVBfaTJjdHJhbnNmZXIKKyN1bmRlZiBGT1JfaTJjdHJhbnNmZXIKKyN1bmRlZiBGTEFHX3kKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX3YKKyNlbmRpZgorCisvLyBpY29udiAgIGNzdDpmOgorI3VuZGVmIE9QVFNUUl9pY29udgorI2RlZmluZSBPUFRTVFJfaWNvbnYgImNzdDpmOiIKKyNpZmRlZiBDTEVBTlVQX2ljb252CisjdW5kZWYgQ0xFQU5VUF9pY29udgorI3VuZGVmIEZPUl9pY29udgorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfYworI2VuZGlmCisKKy8vIGlkID4xbkdncnVbIUdndV0gPjFabkdncnVbIVpHZ3VdCisjdW5kZWYgT1BUU1RSX2lkCisjZGVmaW5lIE9QVFNUUl9pZCAiPjEBbkdncnVbIQFHZ3VdIgorI2lmZGVmIENMRUFOVVBfaWQKKyN1bmRlZiBDTEVBTlVQX2lkCisjdW5kZWYgRk9SX2lkCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19HCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19aCisjZW5kaWYKKworLy8gaWZjb25maWcgICBeP2FTCisjdW5kZWYgT1BUU1RSX2lmY29uZmlnCisjZGVmaW5lIE9QVFNUUl9pZmNvbmZpZyAiXj9hUyIKKyNpZmRlZiBDTEVBTlVQX2lmY29uZmlnCisjdW5kZWYgQ0xFQU5VUF9pZmNvbmZpZworI3VuZGVmIEZPUl9pZmNvbmZpZworI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIGluaXQgICAgCisjdW5kZWYgT1BUU1RSX2luaXQKKyNkZWZpbmUgT1BUU1RSX2luaXQgMAorI2lmZGVmIENMRUFOVVBfaW5pdAorI3VuZGVmIENMRUFOVVBfaW5pdAorI3VuZGVmIEZPUl9pbml0CisjZW5kaWYKKworLy8gaW5vdGlmeWQgICA8MgorI3VuZGVmIE9QVFNUUl9pbm90aWZ5ZAorI2RlZmluZSBPUFRTVFJfaW5vdGlmeWQgIjwyIgorI2lmZGVmIENMRUFOVVBfaW5vdGlmeWQKKyN1bmRlZiBDTEVBTlVQX2lub3RpZnlkCisjdW5kZWYgRk9SX2lub3RpZnlkCisjZW5kaWYKKworLy8gaW5zbW9kICAgPDEKKyN1bmRlZiBPUFRTVFJfaW5zbW9kCisjZGVmaW5lIE9QVFNUUl9pbnNtb2QgIjwxIgorI2lmZGVmIENMRUFOVVBfaW5zbW9kCisjdW5kZWYgQ0xFQU5VUF9pbnNtb2QKKyN1bmRlZiBGT1JfaW5zbW9kCisjZW5kaWYKKworLy8gaW5zdGFsbCA8MWNkRHAocHJlc2VydmUtdGltZXN0YW1wcylzdnQ6bTpvOmc6IDwxY2REcChwcmVzZXJ2ZS10aW1lc3RhbXBzKXN2dDptOm86ZzoKKyN1bmRlZiBPUFRTVFJfaW5zdGFsbAorI2RlZmluZSBPUFRTVFJfaW5zdGFsbCAiPDFjZERwKHByZXNlcnZlLXRpbWVzdGFtcHMpc3Z0Om06bzpnOiIKKyNpZmRlZiBDTEVBTlVQX2luc3RhbGwKKyN1bmRlZiBDTEVBTlVQX2luc3RhbGwKKyN1bmRlZiBGT1JfaW5zdGFsbAorI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfRAorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYworI2VuZGlmCisKKy8vIGlvbmljZSAgIF50YyM8MD4zPTJuIzwwPjc9NXAjCisjdW5kZWYgT1BUU1RSX2lvbmljZQorI2RlZmluZSBPUFRTVFJfaW9uaWNlICJedGMjPDA+Mz0ybiM8MD43PTVwIyIKKyNpZmRlZiBDTEVBTlVQX2lvbmljZQorI3VuZGVmIENMRUFOVVBfaW9uaWNlCisjdW5kZWYgRk9SX2lvbmljZQorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfdAorI2VuZGlmCisKKy8vIGlvcmVuaWNlICAgPDE+MworI3VuZGVmIE9QVFNUUl9pb3JlbmljZQorI2RlZmluZSBPUFRTVFJfaW9yZW5pY2UgIjwxPjMiCisjaWZkZWYgQ0xFQU5VUF9pb3JlbmljZQorI3VuZGVmIENMRUFOVVBfaW9yZW5pY2UKKyN1bmRlZiBGT1JfaW9yZW5pY2UKKyNlbmRpZgorCisvLyBpb3RvcCAgID4wQWFLT0hrKm8qcCp1KnMjPDE9N2QlPDEwMD0zMDAwbSNuIzwxYnEKKyN1bmRlZiBPUFRTVFJfaW90b3AKKyNkZWZpbmUgT1BUU1RSX2lvdG9wICI+MEFhS09IaypvKnAqdSpzIzwxPTdkJTwxMDA9MzAwMG0jbiM8MWJxIgorI2lmZGVmIENMRUFOVVBfaW90b3AKKyN1bmRlZiBDTEVBTlVQX2lvdG9wCisjdW5kZWYgRk9SX2lvdG9wCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19ICisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19LCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19BCisjZW5kaWYKKworLy8gaXAgICAgCisjdW5kZWYgT1BUU1RSX2lwCisjZGVmaW5lIE9QVFNUUl9pcCAwCisjaWZkZWYgQ0xFQU5VUF9pcAorI3VuZGVmIENMRUFOVVBfaXAKKyN1bmRlZiBGT1JfaXAKKyNlbmRpZgorCisvLyBpcGNybSAgIG0qTSpzKlMqcSpRKgorI3VuZGVmIE9QVFNUUl9pcGNybQorI2RlZmluZSBPUFRTVFJfaXBjcm0gIm0qTSpzKlMqcSpRKiIKKyNpZmRlZiBDTEVBTlVQX2lwY3JtCisjdW5kZWYgQ0xFQU5VUF9pcGNybQorI3VuZGVmIEZPUl9pcGNybQorI3VuZGVmIEZMQUdfUQorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfTQorI3VuZGVmIEZMQUdfbQorI2VuZGlmCisKKy8vIGlwY3MgICBhY3B0dWxzcW1pIworI3VuZGVmIE9QVFNUUl9pcGNzCisjZGVmaW5lIE9QVFNUUl9pcGNzICJhY3B0dWxzcW1pIyIKKyNpZmRlZiBDTEVBTlVQX2lwY3MKKyN1bmRlZiBDTEVBTlVQX2lwY3MKKyN1bmRlZiBGT1JfaXBjcworI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIGpvYnMgICBsbnBycworI3VuZGVmIE9QVFNUUl9qb2JzCisjZGVmaW5lIE9QVFNUUl9qb2JzICJsbnBycyIKKyNpZmRlZiBDTEVBTlVQX2pvYnMKKyN1bmRlZiBDTEVBTlVQX2pvYnMKKyN1bmRlZiBGT1Jfam9icworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfbAorI2VuZGlmCisKKy8vIGtpbGwgICA/bHM6IAorI3VuZGVmIE9QVFNUUl9raWxsCisjZGVmaW5lIE9QVFNUUl9raWxsICI/bHM6ICIKKyNpZmRlZiBDTEVBTlVQX2tpbGwKKyN1bmRlZiBDTEVBTlVQX2tpbGwKKyN1bmRlZiBGT1Jfa2lsbAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbAorI2VuZGlmCisKKy8vIGtpbGxhbGwgICA/czppbHF2dworI3VuZGVmIE9QVFNUUl9raWxsYWxsCisjZGVmaW5lIE9QVFNUUl9raWxsYWxsICI/czppbHF2dyIKKyNpZmRlZiBDTEVBTlVQX2tpbGxhbGwKKyN1bmRlZiBDTEVBTlVQX2tpbGxhbGwKKyN1bmRlZiBGT1Jfa2lsbGFsbAorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfcworI2VuZGlmCisKKy8vIGtpbGxhbGw1ICAgP28qbHM6IFshbG9dWyFsc10KKyN1bmRlZiBPUFRTVFJfa2lsbGFsbDUKKyNkZWZpbmUgT1BUU1RSX2tpbGxhbGw1ICI/bypsczogWyFsb11bIWxzXSIKKyNpZmRlZiBDTEVBTlVQX2tpbGxhbGw1CisjdW5kZWYgQ0xFQU5VUF9raWxsYWxsNQorI3VuZGVmIEZPUl9raWxsYWxsNQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfbworI2VuZGlmCisKKy8vIGtsb2dkICAgYyM8MT44bgorI3VuZGVmIE9QVFNUUl9rbG9nZAorI2RlZmluZSBPUFRTVFJfa2xvZ2QgImMjPDE+OG4iCisjaWZkZWYgQ0xFQU5VUF9rbG9nZAorI3VuZGVmIENMRUFOVVBfa2xvZ2QKKyN1bmRlZiBGT1Jfa2xvZ2QKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBsYXN0ICAgZjpXCisjdW5kZWYgT1BUU1RSX2xhc3QKKyNkZWZpbmUgT1BUU1RSX2xhc3QgImY6VyIKKyNpZmRlZiBDTEVBTlVQX2xhc3QKKyN1bmRlZiBDTEVBTlVQX2xhc3QKKyN1bmRlZiBGT1JfbGFzdAorI3VuZGVmIEZMQUdfVworI3VuZGVmIEZMQUdfZgorI2VuZGlmCisKKy8vIGxpbmsgICA8Mj4yCisjdW5kZWYgT1BUU1RSX2xpbmsKKyNkZWZpbmUgT1BUU1RSX2xpbmsgIjwyPjIiCisjaWZkZWYgQ0xFQU5VUF9saW5rCisjdW5kZWYgQ0xFQU5VUF9saW5rCisjdW5kZWYgRk9SX2xpbmsKKyNlbmRpZgorCisvLyBsaW51eDMyICAgIAorI3VuZGVmIE9QVFNUUl9saW51eDMyCisjZGVmaW5lIE9QVFNUUl9saW51eDMyIDAKKyNpZmRlZiBDTEVBTlVQX2xpbnV4MzIKKyN1bmRlZiBDTEVBTlVQX2xpbnV4MzIKKyN1bmRlZiBGT1JfbGludXgzMgorI2VuZGlmCisKKy8vIGxuIDwxcnQ6VHZuZnMgPDFydDpUdm5mcworI3VuZGVmIE9QVFNUUl9sbgorI2RlZmluZSBPUFRTVFJfbG4gIjwxcnQ6VHZuZnMiCisjaWZkZWYgQ0xFQU5VUF9sbgorI3VuZGVmIENMRUFOVVBfbG4KKyN1bmRlZiBGT1JfbG4KKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3IKKyNlbmRpZgorCisvLyBsb2FkX3BvbGljeSAgIDwxPjEKKyN1bmRlZiBPUFRTVFJfbG9hZF9wb2xpY3kKKyNkZWZpbmUgT1BUU1RSX2xvYWRfcG9saWN5ICI8MT4xIgorI2lmZGVmIENMRUFOVVBfbG9hZF9wb2xpY3kKKyN1bmRlZiBDTEVBTlVQX2xvYWRfcG9saWN5CisjdW5kZWYgRk9SX2xvYWRfcG9saWN5CisjZW5kaWYKKworLy8gbG9jYWwgICAgCisjdW5kZWYgT1BUU1RSX2xvY2FsCisjZGVmaW5lIE9QVFNUUl9sb2NhbCAwCisjaWZkZWYgQ0xFQU5VUF9sb2NhbAorI3VuZGVmIENMRUFOVVBfbG9jYWwKKyN1bmRlZiBGT1JfbG9jYWwKKyNlbmRpZgorCisvLyBsb2cgICBwOnQ6CisjdW5kZWYgT1BUU1RSX2xvZworI2RlZmluZSBPUFRTVFJfbG9nICJwOnQ6IgorI2lmZGVmIENMRUFOVVBfbG9nCisjdW5kZWYgQ0xFQU5VUF9sb2cKKyN1bmRlZiBGT1JfbG9nCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19wCisjZW5kaWYKKworLy8gbG9nZ2VyICAgdDpwOnMKKyN1bmRlZiBPUFRTVFJfbG9nZ2VyCisjZGVmaW5lIE9QVFNUUl9sb2dnZXIgInQ6cDpzIgorI2lmZGVmIENMRUFOVVBfbG9nZ2VyCisjdW5kZWYgQ0xFQU5VUF9sb2dnZXIKKyN1bmRlZiBGT1JfbG9nZ2VyCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR190CisjZW5kaWYKKworLy8gbG9naW4gICA+MWY6cGg6CisjdW5kZWYgT1BUU1RSX2xvZ2luCisjZGVmaW5lIE9QVFNUUl9sb2dpbiAiPjFmOnBoOiIKKyNpZmRlZiBDTEVBTlVQX2xvZ2luCisjdW5kZWYgQ0xFQU5VUF9sb2dpbgorI3VuZGVmIEZPUl9sb2dpbgorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfZgorI2VuZGlmCisKKy8vIGxvZ25hbWUgICA+MAorI3VuZGVmIE9QVFNUUl9sb2duYW1lCisjZGVmaW5lIE9QVFNUUl9sb2duYW1lICI+MCIKKyNpZmRlZiBDTEVBTlVQX2xvZ25hbWUKKyN1bmRlZiBDTEVBTlVQX2xvZ25hbWUKKyN1bmRlZiBGT1JfbG9nbmFtZQorI2VuZGlmCisKKy8vIGxvZ3BhdGggICAgCisjdW5kZWYgT1BUU1RSX2xvZ3BhdGgKKyNkZWZpbmUgT1BUU1RSX2xvZ3BhdGggMAorI2lmZGVmIENMRUFOVVBfbG9ncGF0aAorI3VuZGVmIENMRUFOVVBfbG9ncGF0aAorI3VuZGVmIEZPUl9sb2dwYXRoCisjZW5kaWYKKworLy8gbG9zZXR1cCAgID4yUyhzaXplbGltaXQpI3Moc2hvdylybyNqOmZkY2FEWyFhZmpdCisjdW5kZWYgT1BUU1RSX2xvc2V0dXAKKyNkZWZpbmUgT1BUU1RSX2xvc2V0dXAgIj4yUyhzaXplbGltaXQpI3Moc2hvdylybyNqOmZkY2FEWyFhZmpdIgorI2lmZGVmIENMRUFOVVBfbG9zZXR1cAorI3VuZGVmIENMRUFOVVBfbG9zZXR1cAorI3VuZGVmIEZPUl9sb3NldHVwCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19qCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19TCisjZW5kaWYKKworLy8gbHMgKHNvcnQpOihjb2xvcik6OyhmdWxsLXRpbWUpKHNob3ctY29udHJvbC1jaGFycyn/KGJsb2NrLXNpemUpIz0xMDI0PDGhKGdyb3VwLWRpcmVjdG9yaWVzLWZpcnN0Kf5aZ29BQ0ZITE5SU1VYYWJjZGZoaWtsQG1ucHFyc3R1dyM9ODA8MHgxWy1DeG0xXVstQ3htbF1bLUN4bW9dWy1DeG1nXVstY3VdWy1mdFNdWy1ITF1bLU5xYl1bLWv/XSAoc29ydCk6KGNvbG9yKTo7KGZ1bGwtdGltZSkoc2hvdy1jb250cm9sLWNoYXJzKf8oYmxvY2stc2l6ZSkjPTEwMjQ8MaEoZ3JvdXAtZGlyZWN0b3JpZXMtZmlyc3Qp/lpnb0FDRkhMTlJTVVhhYmNkZmhpa2xAbW5wcXJzdHV3Iz04MDwweDFbLUN4bTFdWy1DeG1sXVstQ3htb11bLUN4bWddWy1jdV1bLWZ0U11bLUhMXVstTnFiXVsta/9dCisjdW5kZWYgT1BUU1RSX2xzCisjZGVmaW5lIE9QVFNUUl9scyAiKHNvcnQpOihjb2xvcik6OyhmdWxsLXRpbWUpKHNob3ctY29udHJvbC1jaGFycyn/KGJsb2NrLXNpemUpIz0xMDI0PDGhKGdyb3VwLWRpcmVjdG9yaWVzLWZpcnN0Kf5aZ29BQ0ZITE5SU1VYYWJjZGZoaWtsQG1ucHFyc3R1dyM9ODA8MHgxWy1DeG0xXVstQ3htbF1bLUN4bW9dWy1DeG1nXVstY3VdWy1mdFNdWy1ITF1bLU5xYl1bLWv/XSIKKyNpZmRlZiBDTEVBTlVQX2xzCisjdW5kZWYgQ0xFQU5VUF9scworI3VuZGVmIEZPUl9scworI3VuZGVmIEZMQUdfMQorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfWAorI3VuZGVmIEZMQUdfVQorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfUgorI3VuZGVmIEZMQUdfTgorI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfSAorI3VuZGVmIEZMQUdfRgorI3VuZGVmIEZMQUdfQworI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfWgorI3VuZGVmIEZMQUdfWDdFCisjdW5kZWYgRkxBR19YMjEKKyN1bmRlZiBGTEFHX1g3RgorI3VuZGVmIEZMQUdfc2hvd19jb250cm9sX2NoYXJzCisjdW5kZWYgRkxBR19mdWxsX3RpbWUKKyN1bmRlZiBGTEFHX2NvbG9yCisjdW5kZWYgRkxBR19zb3J0CisjZW5kaWYKKworLy8gbHNhdHRyICAgbGRhcHZSCisjdW5kZWYgT1BUU1RSX2xzYXR0cgorI2RlZmluZSBPUFRTVFJfbHNhdHRyICJsZGFwdlIiCisjaWZkZWYgQ0xFQU5VUF9sc2F0dHIKKyN1bmRlZiBDTEVBTlVQX2xzYXR0cgorI3VuZGVmIEZPUl9sc2F0dHIKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBsc21vZCAgICAKKyN1bmRlZiBPUFRTVFJfbHNtb2QKKyNkZWZpbmUgT1BUU1RSX2xzbW9kIDAKKyNpZmRlZiBDTEVBTlVQX2xzbW9kCisjdW5kZWYgQ0xFQU5VUF9sc21vZAorI3VuZGVmIEZPUl9sc21vZAorI2VuZGlmCisKKy8vIGxzb2YgICBscCp0CisjdW5kZWYgT1BUU1RSX2xzb2YKKyNkZWZpbmUgT1BUU1RSX2xzb2YgImxwKnQiCisjaWZkZWYgQ0xFQU5VUF9sc29mCisjdW5kZWYgQ0xFQU5VUF9sc29mCisjdW5kZWYgRk9SX2xzb2YKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBsc3BjaSAgIGVta25AeEBpOgorI3VuZGVmIE9QVFNUUl9sc3BjaQorI2RlZmluZSBPUFRTVFJfbHNwY2kgImVta25AeEBpOiIKKyNpZmRlZiBDTEVBTlVQX2xzcGNpCisjdW5kZWYgQ0xFQU5VUF9sc3BjaQorI3VuZGVmIEZPUl9sc3BjaQorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfZQorI2VuZGlmCisKKy8vIGxzdXNiICAgaToKKyN1bmRlZiBPUFRTVFJfbHN1c2IKKyNkZWZpbmUgT1BUU1RSX2xzdXNiICJpOiIKKyNpZmRlZiBDTEVBTlVQX2xzdXNiCisjdW5kZWYgQ0xFQU5VUF9sc3VzYgorI3VuZGVmIEZPUl9sc3VzYgorI3VuZGVmIEZMQUdfaQorI2VuZGlmCisKKy8vIG1ha2VkZXZzICAgPDE+MWQ6CisjdW5kZWYgT1BUU1RSX21ha2VkZXZzCisjZGVmaW5lIE9QVFNUUl9tYWtlZGV2cyAiPDE+MWQ6IgorI2lmZGVmIENMRUFOVVBfbWFrZWRldnMKKyN1bmRlZiBDTEVBTlVQX21ha2VkZXZzCisjdW5kZWYgRk9SX21ha2VkZXZzCisjdW5kZWYgRkxBR19kCisjZW5kaWYKKworLy8gbWFuICAgazpNOgorI3VuZGVmIE9QVFNUUl9tYW4KKyNkZWZpbmUgT1BUU1RSX21hbiAiazpNOiIKKyNpZmRlZiBDTEVBTlVQX21hbgorI3VuZGVmIENMRUFOVVBfbWFuCisjdW5kZWYgRk9SX21hbgorI3VuZGVmIEZMQUdfTQorI3VuZGVmIEZMQUdfaworI2VuZGlmCisKKy8vIG1jb29raWUgICB2KHZlcmJvc2UpVih2ZXJzaW9uKQorI3VuZGVmIE9QVFNUUl9tY29va2llCisjZGVmaW5lIE9QVFNUUl9tY29va2llICJ2KHZlcmJvc2UpVih2ZXJzaW9uKSIKKyNpZmRlZiBDTEVBTlVQX21jb29raWUKKyN1bmRlZiBDTEVBTlVQX21jb29raWUKKyN1bmRlZiBGT1JfbWNvb2tpZQorI3VuZGVmIEZMQUdfVgorI3VuZGVmIEZMQUdfdgorI2VuZGlmCisKKy8vIG1kNXN1bSBiYyhjaGVjaylzKHN0YXR1cylbIWJjXSBiYyhjaGVjaylzKHN0YXR1cylbIWJjXQorI3VuZGVmIE9QVFNUUl9tZDVzdW0KKyNkZWZpbmUgT1BUU1RSX21kNXN1bSAiYmMoY2hlY2spcyhzdGF0dXMpWyFiY10iCisjaWZkZWYgQ0xFQU5VUF9tZDVzdW0KKyN1bmRlZiBDTEVBTlVQX21kNXN1bQorI3VuZGVmIEZPUl9tZDVzdW0KKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2IKKyNlbmRpZgorCisvLyBtZGV2ICAgcworI3VuZGVmIE9QVFNUUl9tZGV2CisjZGVmaW5lIE9QVFNUUl9tZGV2ICJzIgorI2lmZGVmIENMRUFOVVBfbWRldgorI3VuZGVmIENMRUFOVVBfbWRldgorI3VuZGVmIEZPUl9tZGV2CisjdW5kZWYgRkxBR19zCisjZW5kaWYKKworLy8gbWVtZWF0ZXIgICA8MT4xTQorI3VuZGVmIE9QVFNUUl9tZW1lYXRlcgorI2RlZmluZSBPUFRTVFJfbWVtZWF0ZXIgIjwxPjFNIgorI2lmZGVmIENMRUFOVVBfbWVtZWF0ZXIKKyN1bmRlZiBDTEVBTlVQX21lbWVhdGVyCisjdW5kZWYgRk9SX21lbWVhdGVyCisjdW5kZWYgRkxBR19NCisjZW5kaWYKKworLy8gbWljcm9jb20gPDE+MXMjPTExNTIwMFggPDE+MXMjPTExNTIwMFgKKyN1bmRlZiBPUFRTVFJfbWljcm9jb20KKyNkZWZpbmUgT1BUU1RSX21pY3JvY29tICI8MT4xcyM9MTE1MjAwWCIKKyNpZmRlZiBDTEVBTlVQX21pY3JvY29tCisjdW5kZWYgQ0xFQU5VUF9taWNyb2NvbQorI3VuZGVmIEZPUl9taWNyb2NvbQorI3VuZGVmIEZMQUdfWAorI3VuZGVmIEZMQUdfcworI2VuZGlmCisKKy8vIG1peCAgIGM6ZDpsI3IjCisjdW5kZWYgT1BUU1RSX21peAorI2RlZmluZSBPUFRTVFJfbWl4ICJjOmQ6bCNyIyIKKyNpZmRlZiBDTEVBTlVQX21peAorI3VuZGVmIENMRUFOVVBfbWl4CisjdW5kZWYgRk9SX21peAorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYworI2VuZGlmCisKKy8vIG1rZGlyIDwxdnAocGFyZW50KShwYXJlbnRzKW06IDwxWjp2cChwYXJlbnQpKHBhcmVudHMpbToKKyN1bmRlZiBPUFRTVFJfbWtkaXIKKyNkZWZpbmUgT1BUU1RSX21rZGlyICI8MQF2cChwYXJlbnQpKHBhcmVudHMpbToiCisjaWZkZWYgQ0xFQU5VUF9ta2RpcgorI3VuZGVmIENMRUFOVVBfbWtkaXIKKyN1bmRlZiBGT1JfbWtkaXIKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX1oKKyNlbmRpZgorCisvLyBta2UyZnMgICA8MT4yZzpGbnFtI04jaSNiIworI3VuZGVmIE9QVFNUUl9ta2UyZnMKKyNkZWZpbmUgT1BUU1RSX21rZTJmcyAiPDE+Mmc6Rm5xbSNOI2kjYiMiCisjaWZkZWYgQ0xFQU5VUF9ta2UyZnMKKyN1bmRlZiBDTEVBTlVQX21rZTJmcworI3VuZGVmIEZPUl9ta2UyZnMKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX04KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX2cKKyNlbmRpZgorCisvLyBta2ZpZm8gICA8MVo6bToKKyN1bmRlZiBPUFRTVFJfbWtmaWZvCisjZGVmaW5lIE9QVFNUUl9ta2ZpZm8gIjwxWjptOiIKKyNpZmRlZiBDTEVBTlVQX21rZmlmbworI3VuZGVmIENMRUFOVVBfbWtmaWZvCisjdW5kZWYgRk9SX21rZmlmbworI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfWgorI2VuZGlmCisKKy8vIG1rbm9kICAgPDI+NG0obW9kZSk6WjoKKyN1bmRlZiBPUFRTVFJfbWtub2QKKyNkZWZpbmUgT1BUU1RSX21rbm9kICI8Mj40bShtb2RlKTpaOiIKKyNpZmRlZiBDTEVBTlVQX21rbm9kCisjdW5kZWYgQ0xFQU5VUF9ta25vZAorI3VuZGVmIEZPUl9ta25vZAorI3VuZGVmIEZMQUdfWgorI3VuZGVmIEZMQUdfbQorI2VuZGlmCisKKy8vIG1rcGFzc3dkICAgPjJTOm06UCM9MDwwCisjdW5kZWYgT1BUU1RSX21rcGFzc3dkCisjZGVmaW5lIE9QVFNUUl9ta3Bhc3N3ZCAiPjJTOm06UCM9MDwwIgorI2lmZGVmIENMRUFOVVBfbWtwYXNzd2QKKyN1bmRlZiBDTEVBTlVQX21rcGFzc3dkCisjdW5kZWYgRk9SX21rcGFzc3dkCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19TCisjZW5kaWYKKworLy8gbWtzd2FwICAgPDE+MUw6CisjdW5kZWYgT1BUU1RSX21rc3dhcAorI2RlZmluZSBPUFRTVFJfbWtzd2FwICI8MT4xTDoiCisjaWZkZWYgQ0xFQU5VUF9ta3N3YXAKKyN1bmRlZiBDTEVBTlVQX21rc3dhcAorI3VuZGVmIEZPUl9ta3N3YXAKKyN1bmRlZiBGTEFHX0wKKyNlbmRpZgorCisvLyBta3RlbXAgPjEodG1wZGlyKTs6dXFkKGRpcmVjdG9yeSlwOnQgPjEodG1wZGlyKTs6dXFkKGRpcmVjdG9yeSlwOnQKKyN1bmRlZiBPUFRTVFJfbWt0ZW1wCisjZGVmaW5lIE9QVFNUUl9ta3RlbXAgIj4xKHRtcGRpcik7OnVxZChkaXJlY3RvcnkpcDp0IgorI2lmZGVmIENMRUFOVVBfbWt0ZW1wCisjdW5kZWYgQ0xFQU5VUF9ta3RlbXAKKyN1bmRlZiBGT1JfbWt0ZW1wCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR190bXBkaXIKKyNlbmRpZgorCisvLyBtb2RpbmZvICAgPDFiOms6RjowCisjdW5kZWYgT1BUU1RSX21vZGluZm8KKyNkZWZpbmUgT1BUU1RSX21vZGluZm8gIjwxYjprOkY6MCIKKyNpZmRlZiBDTEVBTlVQX21vZGluZm8KKyN1bmRlZiBDTEVBTlVQX21vZGluZm8KKyN1bmRlZiBGT1JfbW9kaW5mbworI3VuZGVmIEZMQUdfMAorI3VuZGVmIEZMQUdfRgorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIG1vZHByb2JlICAgYWxycXZzRGJkKgorI3VuZGVmIE9QVFNUUl9tb2Rwcm9iZQorI2RlZmluZSBPUFRTVFJfbW9kcHJvYmUgImFscnF2c0RiZCoiCisjaWZkZWYgQ0xFQU5VUF9tb2Rwcm9iZQorI3VuZGVmIENMRUFOVVBfbW9kcHJvYmUKKyN1bmRlZiBGT1JfbW9kcHJvYmUKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBtb3JlICAgIAorI3VuZGVmIE9QVFNUUl9tb3JlCisjZGVmaW5lIE9QVFNUUl9tb3JlIDAKKyNpZmRlZiBDTEVBTlVQX21vcmUKKyN1bmRlZiBDTEVBTlVQX21vcmUKKyN1bmRlZiBGT1JfbW9yZQorI2VuZGlmCisKKy8vIG1vdW50ICAgP1JPOmFmbnJ2d3Q6bypbLXJ3XQorI3VuZGVmIE9QVFNUUl9tb3VudAorI2RlZmluZSBPUFRTVFJfbW91bnQgIj9STzphZm5ydnd0Om8qWy1yd10iCisjaWZkZWYgQ0xFQU5VUF9tb3VudAorI3VuZGVmIENMRUFOVVBfbW91bnQKKyN1bmRlZiBGT1JfbW91bnQKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX08KKyN1bmRlZiBGTEFHX1IKKyNlbmRpZgorCisvLyBtb3VudHBvaW50ICAgPDFxZHhbLWR4XQorI3VuZGVmIE9QVFNUUl9tb3VudHBvaW50CisjZGVmaW5lIE9QVFNUUl9tb3VudHBvaW50ICI8MXFkeFstZHhdIgorI2lmZGVmIENMRUFOVVBfbW91bnRwb2ludAorI3VuZGVmIENMRUFOVVBfbW91bnRwb2ludAorI3VuZGVmIEZPUl9tb3VudHBvaW50CisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19xCisjZW5kaWYKKworLy8gbXYgPDF4KHN3YXApdih2ZXJib3NlKW5GKHJlbW92ZS1kZXN0aW5hdGlvbilmaXQ6VFstbmldIDwxeChzd2FwKXYodmVyYm9zZSluRihyZW1vdmUtZGVzdGluYXRpb24pZml0OlRbLW5pXQorI3VuZGVmIE9QVFNUUl9tdgorI2RlZmluZSBPUFRTVFJfbXYgIjwxeChzd2FwKXYodmVyYm9zZSluRihyZW1vdmUtZGVzdGluYXRpb24pZml0OlRbLW5pXSIKKyNpZmRlZiBDTEVBTlVQX212CisjdW5kZWYgQ0xFQU5VUF9tdgorI3VuZGVmIEZPUl9tdgorI3VuZGVmIEZMQUdfVAorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfRgorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfeAorI2VuZGlmCisKKy8vIG5iZF9jbGllbnQgICA8Mz4zYiM8MT40Mjk0OTY3Mjk1PTQwOTZucworI3VuZGVmIE9QVFNUUl9uYmRfY2xpZW50CisjZGVmaW5lIE9QVFNUUl9uYmRfY2xpZW50ICI8Mz4zYiM8MT40Mjk0OTY3Mjk1PTQwOTZucyIKKyNpZmRlZiBDTEVBTlVQX25iZF9jbGllbnQKKyN1bmRlZiBDTEVBTlVQX25iZF9jbGllbnQKKyN1bmRlZiBGT1JfbmJkX2NsaWVudAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIG5iZF9zZXJ2ZXIgICA8MT4xcgorI3VuZGVmIE9QVFNUUl9uYmRfc2VydmVyCisjZGVmaW5lIE9QVFNUUl9uYmRfc2VydmVyICI8MT4xciIKKyNpZmRlZiBDTEVBTlVQX25iZF9zZXJ2ZXIKKyN1bmRlZiBDTEVBTlVQX25iZF9zZXJ2ZXIKKyN1bmRlZiBGT1JfbmJkX3NlcnZlcgorI3VuZGVmIEZMQUdfcgorI2VuZGlmCisKKy8vIG5ldGNhdCAgIF50RWxMdyM8MVcjPDFwIzwxPjY1NTM1cSM8MU86bzpzOmY6NDZ1VW56WyF0bExdWyFMd11bIUx1XVshNDZVXVshb09dCisjdW5kZWYgT1BUU1RSX25ldGNhdAorI2RlZmluZSBPUFRTVFJfbmV0Y2F0ICJedEVsTHcjPDFXIzwxcCM8MT42NTUzNXEjPDFPOm86czpmOjQ2dVVuelshdGxMXVshTHddWyFMdV1bITQ2VV1bIW9PXSIKKyNpZmRlZiBDTEVBTlVQX25ldGNhdAorI3VuZGVmIENMRUFOVVBfbmV0Y2F0CisjdW5kZWYgRk9SX25ldGNhdAorI3VuZGVmIEZMQUdfegorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfVQorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfNgorI3VuZGVmIEZMQUdfNAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfTworI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfVworI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfTAorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfRQorI3VuZGVmIEZMQUdfdAorI2VuZGlmCisKKy8vIG5ldHN0YXQgICBwV3J4d3V0bmVhbAorI3VuZGVmIE9QVFNUUl9uZXRzdGF0CisjZGVmaW5lIE9QVFNUUl9uZXRzdGF0ICJwV3J4d3V0bmVhbCIKKyNpZmRlZiBDTEVBTlVQX25ldHN0YXQKKyN1bmRlZiBDTEVBTlVQX25ldHN0YXQKKyN1bmRlZiBGT1JfbmV0c3RhdAorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfVworI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIG5pY2UgICBePDFuIworI3VuZGVmIE9QVFNUUl9uaWNlCisjZGVmaW5lIE9QVFNUUl9uaWNlICJePDFuIyIKKyNpZmRlZiBDTEVBTlVQX25pY2UKKyN1bmRlZiBDTEVBTlVQX25pY2UKKyN1bmRlZiBGT1JfbmljZQorI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIG5sIHYjPTFsI3cjPDA9NmI6bjpzOkUgdiM9MWwjdyM8MD02YjpuOnM6RQorI3VuZGVmIE9QVFNUUl9ubAorI2RlZmluZSBPUFRTVFJfbmwgInYjPTFsI3cjPDA9NmI6bjpzOkUiCisjaWZkZWYgQ0xFQU5VUF9ubAorI3VuZGVmIENMRUFOVVBfbmwKKyN1bmRlZiBGT1JfbmwKKyN1bmRlZiBGTEFHX0UKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX3YKKyNlbmRpZgorCisvLyBub2h1cCAgIDwxXgorI3VuZGVmIE9QVFNUUl9ub2h1cAorI2RlZmluZSBPUFRTVFJfbm9odXAgIjwxXiIKKyNpZmRlZiBDTEVBTlVQX25vaHVwCisjdW5kZWYgQ0xFQU5VUF9ub2h1cAorI3VuZGVmIEZPUl9ub2h1cAorI2VuZGlmCisKKy8vIG5wcm9jICAgKGFsbCkKKyN1bmRlZiBPUFRTVFJfbnByb2MKKyNkZWZpbmUgT1BUU1RSX25wcm9jICIoYWxsKSIKKyNpZmRlZiBDTEVBTlVQX25wcm9jCisjdW5kZWYgQ0xFQU5VUF9ucHJvYworI3VuZGVmIEZPUl9ucHJvYworI3VuZGVmIEZMQUdfYWxsCisjZW5kaWYKKworLy8gbnNlbnRlciAgIDwxYShhbGwpRihuby1mb3JrKXQjPDEodGFyZ2V0KUMoY2dyb3VwKTo7IGkoaXBjKTo7IG0obW91bnQpOjsgbihuZXQpOjsgcChwaWQpOjsgdSh1dHMpOjsgVSh1c2VyKTo7IAorI3VuZGVmIE9QVFNUUl9uc2VudGVyCisjZGVmaW5lIE9QVFNUUl9uc2VudGVyICI8MWEoYWxsKUYobm8tZm9yayl0IzwxKHRhcmdldClDKGNncm91cCk6OyBpKGlwYyk6OyBtKG1vdW50KTo7IG4obmV0KTo7IHAocGlkKTo7IHUodXRzKTo7IFUodXNlcik6OyAiCisjaWZkZWYgQ0xFQU5VUF9uc2VudGVyCisjdW5kZWYgQ0xFQU5VUF9uc2VudGVyCisjdW5kZWYgRk9SX25zZW50ZXIKKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBvZCBqI3Z3IzwxPTE2TiN4c29kY2JBOnQqIGojdncjPDE9MTZOI3hzb2RjYkE6dCoKKyN1bmRlZiBPUFRTVFJfb2QKKyNkZWZpbmUgT1BUU1RSX29kICJqI3Z3IzwxPTE2TiN4c29kY2JBOnQqIgorI2lmZGVmIENMRUFOVVBfb2QKKyN1bmRlZiBDTEVBTlVQX29kCisjdW5kZWYgRk9SX29kCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19OCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19qCisjZW5kaWYKKworLy8gb25laXQgICBePDFuYzpwM1shcG5dCisjdW5kZWYgT1BUU1RSX29uZWl0CisjZGVmaW5lIE9QVFNUUl9vbmVpdCAiXjwxbmM6cDNbIXBuXSIKKyNpZmRlZiBDTEVBTlVQX29uZWl0CisjdW5kZWYgQ0xFQU5VUF9vbmVpdAorI3VuZGVmIEZPUl9vbmVpdAorI3VuZGVmIEZMQUdfMworI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIG9wZW52dCAgIF48MWMjPDE+NjNzdworI3VuZGVmIE9QVFNUUl9vcGVudnQKKyNkZWZpbmUgT1BUU1RSX29wZW52dCAiXjwxYyM8MT42M3N3IgorI2lmZGVmIENMRUFOVVBfb3BlbnZ0CisjdW5kZWYgQ0xFQU5VUF9vcGVudnQKKyN1bmRlZiBGT1Jfb3BlbnZ0CisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gcGFydHByb2JlICAgPDEKKyN1bmRlZiBPUFRTVFJfcGFydHByb2JlCisjZGVmaW5lIE9QVFNUUl9wYXJ0cHJvYmUgIjwxIgorI2lmZGVmIENMRUFOVVBfcGFydHByb2JlCisjdW5kZWYgQ0xFQU5VUF9wYXJ0cHJvYmUKKyN1bmRlZiBGT1JfcGFydHByb2JlCisjZW5kaWYKKworLy8gcGFzc3dkICAgPjFhOmRsdQorI3VuZGVmIE9QVFNUUl9wYXNzd2QKKyNkZWZpbmUgT1BUU1RSX3Bhc3N3ZCAiPjFhOmRsdSIKKyNpZmRlZiBDTEVBTlVQX3Bhc3N3ZAorI3VuZGVmIENMRUFOVVBfcGFzc3dkCisjdW5kZWYgRk9SX3Bhc3N3ZAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIHBhc3RlIGQ6cyBkOnMKKyN1bmRlZiBPUFRTVFJfcGFzdGUKKyNkZWZpbmUgT1BUU1RSX3Bhc3RlICJkOnMiCisjaWZkZWYgQ0xFQU5VUF9wYXN0ZQorI3VuZGVmIENMRUFOVVBfcGFzdGUKKyN1bmRlZiBGT1JfcGFzdGUKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2QKKyNlbmRpZgorCisvLyBwYXRjaCA+Mihuby1iYWNrdXAtaWYtbWlzbWF0Y2gpKGRyeS1ydW4pRiNnI2Z1bHAjdih2ZXJib3NlKUBkOmk6UnMocXVpZXQpWyFzdl0gPjIobm8tYmFja3VwLWlmLW1pc21hdGNoKShkcnktcnVuKUYjZyNmdWxwI3YodmVyYm9zZSlAZDppOlJzKHF1aWV0KVshc3ZdCisjdW5kZWYgT1BUU1RSX3BhdGNoCisjZGVmaW5lIE9QVFNUUl9wYXRjaCAiPjIobm8tYmFja3VwLWlmLW1pc21hdGNoKShkcnktcnVuKUYjZyNmdWxwI3YodmVyYm9zZSlAZDppOlJzKHF1aWV0KVshc3ZdIgorI2lmZGVmIENMRUFOVVBfcGF0Y2gKKyN1bmRlZiBDTEVBTlVQX3BhdGNoCisjdW5kZWYgRk9SX3BhdGNoCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19kcnlfcnVuCisjdW5kZWYgRkxBR19ub19iYWNrdXBfaWZfbWlzbWF0Y2gKKyNlbmRpZgorCisvLyBwZ3JlcCAgID9jbGQ6dSpVKnQqcypQKmcqRypmbm92eEw6Wy1ub10KKyN1bmRlZiBPUFRTVFJfcGdyZXAKKyNkZWZpbmUgT1BUU1RSX3BncmVwICI/Y2xkOnUqVSp0KnMqUCpnKkcqZm5vdnhMOlstbm9dIgorI2lmZGVmIENMRUFOVVBfcGdyZXAKKyN1bmRlZiBDTEVBTlVQX3BncmVwCisjdW5kZWYgRk9SX3BncmVwCisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19HCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gcGlkb2YgICBzbzp4CisjdW5kZWYgT1BUU1RSX3BpZG9mCisjZGVmaW5lIE9QVFNUUl9waWRvZiAic286eCIKKyNpZmRlZiBDTEVBTlVQX3BpZG9mCisjdW5kZWYgQ0xFQU5VUF9waWRvZgorI3VuZGVmIEZPUl9waWRvZgorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfcworI2VuZGlmCisKKy8vIHBpbmcgICA8MT4xbSN0IzwwPjI1NT02NGMjPDA9M3MjPDA+NDA2ND01NmklVyM8MD0zdyM8MHFmNDZJOlstNDZdCisjdW5kZWYgT1BUU1RSX3BpbmcKKyNkZWZpbmUgT1BUU1RSX3BpbmcgIjwxPjFtI3QjPDA+MjU1PTY0YyM8MD0zcyM8MD40MDY0PTU2aSVXIzwwPTN3IzwwcWY0Nkk6Wy00Nl0iCisjaWZkZWYgQ0xFQU5VUF9waW5nCisjdW5kZWYgQ0xFQU5VUF9waW5nCisjdW5kZWYgRk9SX3BpbmcKKyN1bmRlZiBGTEFHX0kKKyN1bmRlZiBGTEFHXzYKKyN1bmRlZiBGTEFHXzQKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX1cKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX20KKyNlbmRpZgorCisvLyBwaXZvdF9yb290ICAgPDI+MgorI3VuZGVmIE9QVFNUUl9waXZvdF9yb290CisjZGVmaW5lIE9QVFNUUl9waXZvdF9yb290ICI8Mj4yIgorI2lmZGVmIENMRUFOVVBfcGl2b3Rfcm9vdAorI3VuZGVmIENMRUFOVVBfcGl2b3Rfcm9vdAorI3VuZGVmIEZPUl9waXZvdF9yb290CisjZW5kaWYKKworLy8gcGtpbGwgICA/VnUqVSp0KnMqUCpnKkcqZm5vdnhsOlstbm9dCisjdW5kZWYgT1BUU1RSX3BraWxsCisjZGVmaW5lIE9QVFNUUl9wa2lsbCAiP1Z1KlUqdCpzKlAqZypHKmZub3Z4bDpbLW5vXSIKKyNpZmRlZiBDTEVBTlVQX3BraWxsCisjdW5kZWYgQ0xFQU5VUF9wa2lsbAorI3VuZGVmIEZPUl9wa2lsbAorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfRworI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfVQorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfVgorI2VuZGlmCisKKy8vIHBtYXAgICA8MXBxeAorI3VuZGVmIE9QVFNUUl9wbWFwCisjZGVmaW5lIE9QVFNUUl9wbWFwICI8MXBxeCIKKyNpZmRlZiBDTEVBTlVQX3BtYXAKKyN1bmRlZiBDTEVBTlVQX3BtYXAKKyN1bmRlZiBGT1JfcG1hcAorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIHByaW50ZW52ICAgKG51bGwpMAorI3VuZGVmIE9QVFNUUl9wcmludGVudgorI2RlZmluZSBPUFRTVFJfcHJpbnRlbnYgIihudWxsKTAiCisjaWZkZWYgQ0xFQU5VUF9wcmludGVudgorI3VuZGVmIENMRUFOVVBfcHJpbnRlbnYKKyN1bmRlZiBGT1JfcHJpbnRlbnYKKyN1bmRlZiBGTEFHXzAKKyN1bmRlZiBGTEFHX251bGwKKyNlbmRpZgorCisvLyBwcmludGYgPDE/XiA8MT9eCisjdW5kZWYgT1BUU1RSX3ByaW50ZgorI2RlZmluZSBPUFRTVFJfcHJpbnRmICI8MT9eIgorI2lmZGVmIENMRUFOVVBfcHJpbnRmCisjdW5kZWYgQ0xFQU5VUF9wcmludGYKKyN1bmRlZiBGT1JfcHJpbnRmCisjZW5kaWYKKworLy8gcHMgICBrKHNvcnQpKlAocHBpZCkqYUFkZWZsTW5vKk8qcChwaWQpKnMqdCpUdSpVKmcqRyp3Wlshb2xdWytBZV1bIW9PXQorI3VuZGVmIE9QVFNUUl9wcworI2RlZmluZSBPUFRTVFJfcHMgImsoc29ydCkqUChwcGlkKSphQWRlZmxNbm8qTypwKHBpZCkqcyp0KlR1KlUqZypHKndaWyFvbF1bK0FlXVshb09dIgorI2lmZGVmIENMRUFOVVBfcHMKKyN1bmRlZiBDTEVBTlVQX3BzCisjdW5kZWYgRk9SX3BzCisjdW5kZWYgRkxBR19aCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR19HCisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19VCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19NCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19rCisjZW5kaWYKKworLy8gcHdkID4wTFBbLUxQXSA+MExQWy1MUF0KKyN1bmRlZiBPUFRTVFJfcHdkCisjZGVmaW5lIE9QVFNUUl9wd2QgIj4wTFBbLUxQXSIKKyNpZmRlZiBDTEVBTlVQX3B3ZAorI3VuZGVmIENMRUFOVVBfcHdkCisjdW5kZWYgRk9SX3B3ZAorI3VuZGVmIEZMQUdfUAorI3VuZGVmIEZMQUdfTAorI2VuZGlmCisKKy8vIHB3ZHggICA8MWEKKyN1bmRlZiBPUFRTVFJfcHdkeAorI2RlZmluZSBPUFRTVFJfcHdkeCAiPDFhIgorI2lmZGVmIENMRUFOVVBfcHdkeAorI3VuZGVmIENMRUFOVVBfcHdkeAorI3VuZGVmIEZPUl9wd2R4CisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gcHdnZW4gICA+MnIocmVtb3ZlKTpjKGNhcGl0YWxpemUpbihudW1lcmFscyl5KHN5bWJvbHMpcyhzZWN1cmUpQihhbWJpZ3VvdXMpaChoZWxwKUMxdkEobm8tY2FwaXRhbGl6ZSkwKG5vLW51bWVyYWxzKVstY0FdWy1uMF1bLUMxXQorI3VuZGVmIE9QVFNUUl9wd2dlbgorI2RlZmluZSBPUFRTVFJfcHdnZW4gIj4ycihyZW1vdmUpOmMoY2FwaXRhbGl6ZSluKG51bWVyYWxzKXkoc3ltYm9scylzKHNlY3VyZSlCKGFtYmlndW91cyloKGhlbHApQzF2QShuby1jYXBpdGFsaXplKTAobm8tbnVtZXJhbHMpWy1jQV1bLW4wXVstQzFdIgorI2lmZGVmIENMRUFOVVBfcHdnZW4KKyN1bmRlZiBDTEVBTlVQX3B3Z2VuCisjdW5kZWYgRk9SX3B3Z2VuCisjdW5kZWYgRkxBR18wCisjdW5kZWYgRkxBR19BCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR18xCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19CCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR195CisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19yCisjZW5kaWYKKworLy8gcmVhZGFoZWFkICAgIAorI3VuZGVmIE9QVFNUUl9yZWFkYWhlYWQKKyNkZWZpbmUgT1BUU1RSX3JlYWRhaGVhZCAwCisjaWZkZWYgQ0xFQU5VUF9yZWFkYWhlYWQKKyN1bmRlZiBDTEVBTlVQX3JlYWRhaGVhZAorI3VuZGVmIEZPUl9yZWFkYWhlYWQKKyNlbmRpZgorCisvLyByZWFkZWxmICAgPDEoZHluLXN5bXMpQWFkZWhsbnA6U3NXeDoKKyN1bmRlZiBPUFRTVFJfcmVhZGVsZgorI2RlZmluZSBPUFRTVFJfcmVhZGVsZiAiPDEoZHluLXN5bXMpQWFkZWhsbnA6U3NXeDoiCisjaWZkZWYgQ0xFQU5VUF9yZWFkZWxmCisjdW5kZWYgQ0xFQU5VUF9yZWFkZWxmCisjdW5kZWYgRk9SX3JlYWRlbGYKKyN1bmRlZiBGTEFHX3gKKyN1bmRlZiBGTEFHX1cKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX0EKKyN1bmRlZiBGTEFHX2R5bl9zeW1zCisjZW5kaWYKKworLy8gcmVhZGxpbmsgPDF2bmYoY2Fub25pY2FsaXplKWVtcXpbLW1lZl1bLXF2XSA8MXZuZihjYW5vbmljYWxpemUpZW1xelstbWVmXVstcXZdCisjdW5kZWYgT1BUU1RSX3JlYWRsaW5rCisjZGVmaW5lIE9QVFNUUl9yZWFkbGluayAiPDF2bmYoY2Fub25pY2FsaXplKWVtcXpbLW1lZl1bLXF2XSIKKyNpZmRlZiBDTEVBTlVQX3JlYWRsaW5rCisjdW5kZWYgQ0xFQU5VUF9yZWFkbGluaworI3VuZGVmIEZPUl9yZWFkbGluaworI3VuZGVmIEZMQUdfegorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfdgorI2VuZGlmCisKKy8vIHJlYWxwYXRoIDwxKHJlbGF0aXZlLWJhc2UpOlIocmVsYXRpdmUtdG8pOnMobm8tc3ltbGlua3MpTFBlbXF6Wy1Qc11bLUxQXVstbWVdIDwxKHJlbGF0aXZlLWJhc2UpOlIocmVsYXRpdmUtdG8pOnMobm8tc3ltbGlua3MpTFBlbXF6Wy1Qc11bLUxQXVstbWVdCisjdW5kZWYgT1BUU1RSX3JlYWxwYXRoCisjZGVmaW5lIE9QVFNUUl9yZWFscGF0aCAiPDEocmVsYXRpdmUtYmFzZSk6UihyZWxhdGl2ZS10byk6cyhuby1zeW1saW5rcylMUGVtcXpbLVBzXVstTFBdWy1tZV0iCisjaWZkZWYgQ0xFQU5VUF9yZWFscGF0aAorI3VuZGVmIENMRUFOVVBfcmVhbHBhdGgKKyN1bmRlZiBGT1JfcmVhbHBhdGgKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX1AKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX3JlbGF0aXZlX2Jhc2UKKyNlbmRpZgorCisvLyByZWJvb3QgICBkOmZuCisjdW5kZWYgT1BUU1RSX3JlYm9vdAorI2RlZmluZSBPUFRTVFJfcmVib290ICJkOmZuIgorI2lmZGVmIENMRUFOVVBfcmVib290CisjdW5kZWYgQ0xFQU5VUF9yZWJvb3QKKyN1bmRlZiBGT1JfcmVib290CisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19kCisjZW5kaWYKKworLy8gcmVuaWNlICAgPDFncHVuI3wKKyN1bmRlZiBPUFRTVFJfcmVuaWNlCisjZGVmaW5lIE9QVFNUUl9yZW5pY2UgIjwxZ3B1biN8IgorI2lmZGVmIENMRUFOVVBfcmVuaWNlCisjdW5kZWYgQ0xFQU5VUF9yZW5pY2UKKyN1bmRlZiBGT1JfcmVuaWNlCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19nCisjZW5kaWYKKworLy8gcmVzZXQgICAgCisjdW5kZWYgT1BUU1RSX3Jlc2V0CisjZGVmaW5lIE9QVFNUUl9yZXNldCAwCisjaWZkZWYgQ0xFQU5VUF9yZXNldAorI3VuZGVmIENMRUFOVVBfcmVzZXQKKyN1bmRlZiBGT1JfcmVzZXQKKyNlbmRpZgorCisvLyByZXN0b3JlY29uICAgPDFERm5ScnYKKyN1bmRlZiBPUFRTVFJfcmVzdG9yZWNvbgorI2RlZmluZSBPUFRTVFJfcmVzdG9yZWNvbiAiPDFERm5ScnYiCisjaWZkZWYgQ0xFQU5VUF9yZXN0b3JlY29uCisjdW5kZWYgQ0xFQU5VUF9yZXN0b3JlY29uCisjdW5kZWYgRk9SX3Jlc3RvcmVjb24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX0QKKyNlbmRpZgorCisvLyByZXYgICAgCisjdW5kZWYgT1BUU1RSX3JldgorI2RlZmluZSBPUFRTVFJfcmV2IDAKKyNpZmRlZiBDTEVBTlVQX3JldgorI3VuZGVmIENMRUFOVVBfcmV2CisjdW5kZWYgRk9SX3JldgorI2VuZGlmCisKKy8vIHJma2lsbCAgIDwxPjIKKyN1bmRlZiBPUFRTVFJfcmZraWxsCisjZGVmaW5lIE9QVFNUUl9yZmtpbGwgIjwxPjIiCisjaWZkZWYgQ0xFQU5VUF9yZmtpbGwKKyN1bmRlZiBDTEVBTlVQX3Jma2lsbAorI3VuZGVmIEZPUl9yZmtpbGwKKyNlbmRpZgorCisvLyBybSBmKGZvcmNlKWlScnZbLWZpXSBmKGZvcmNlKWlScnZbLWZpXQorI3VuZGVmIE9QVFNUUl9ybQorI2RlZmluZSBPUFRTVFJfcm0gImYoZm9yY2UpaVJydlstZmldIgorI2lmZGVmIENMRUFOVVBfcm0KKyN1bmRlZiBDTEVBTlVQX3JtCisjdW5kZWYgRk9SX3JtCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19SCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19mCisjZW5kaWYKKworLy8gcm1kaXIgPDEoaWdub3JlLWZhaWwtb24tbm9uLWVtcHR5KXAocGFyZW50cykgPDEoaWdub3JlLWZhaWwtb24tbm9uLWVtcHR5KXAocGFyZW50cykKKyN1bmRlZiBPUFRTVFJfcm1kaXIKKyNkZWZpbmUgT1BUU1RSX3JtZGlyICI8MShpZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkpcChwYXJlbnRzKSIKKyNpZmRlZiBDTEVBTlVQX3JtZGlyCisjdW5kZWYgQ0xFQU5VUF9ybWRpcgorI3VuZGVmIEZPUl9ybWRpcgorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfaWdub3JlX2ZhaWxfb25fbm9uX2VtcHR5CisjZW5kaWYKKworLy8gcm1tb2QgICA8MXdmCisjdW5kZWYgT1BUU1RSX3JtbW9kCisjZGVmaW5lIE9QVFNUUl9ybW1vZCAiPDF3ZiIKKyNpZmRlZiBDTEVBTlVQX3JtbW9kCisjdW5kZWYgQ0xFQU5VUF9ybW1vZAorI3VuZGVmIEZPUl9ybW1vZAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfdworI2VuZGlmCisKKy8vIHJvdXRlICAgP25lQToKKyN1bmRlZiBPUFRTVFJfcm91dGUKKyNkZWZpbmUgT1BUU1RSX3JvdXRlICI/bmVBOiIKKyNpZmRlZiBDTEVBTlVQX3JvdXRlCisjdW5kZWYgQ0xFQU5VUF9yb3V0ZQorI3VuZGVmIEZPUl9yb3V0ZQorI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIHJ0Y3dha2UgICAobGlzdC1tb2Rlcyk7KGF1dG8pYShkZXZpY2UpZDoobG9jYWwpbChtb2RlKW06KHNlY29uZHMpcyModGltZSl0Iyh1dGMpdSh2ZXJib3NlKXZbIWFsdV0KKyN1bmRlZiBPUFRTVFJfcnRjd2FrZQorI2RlZmluZSBPUFRTVFJfcnRjd2FrZSAiKGxpc3QtbW9kZXMpOyhhdXRvKWEoZGV2aWNlKWQ6KGxvY2FsKWwobW9kZSltOihzZWNvbmRzKXMjKHRpbWUpdCModXRjKXUodmVyYm9zZSl2WyFhbHVdIgorI2lmZGVmIENMRUFOVVBfcnRjd2FrZQorI3VuZGVmIENMRUFOVVBfcnRjd2FrZQorI3VuZGVmIEZPUl9ydGN3YWtlCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19hdXRvCisjdW5kZWYgRkxBR19saXN0X21vZGVzCisjZW5kaWYKKworLy8gcnVuY29uICAgXjwyCisjdW5kZWYgT1BUU1RSX3J1bmNvbgorI2RlZmluZSBPUFRTVFJfcnVuY29uICJePDIiCisjaWZkZWYgQ0xFQU5VUF9ydW5jb24KKyN1bmRlZiBDTEVBTlVQX3J1bmNvbgorI3VuZGVmIEZPUl9ydW5jb24KKyNlbmRpZgorCisvLyBzZWQgKGhlbHApKHZlcnNpb24pKHRhcnhmb3JtKWUqZippOjtuRXJ6KG51bGwtZGF0YSlzWytFcl0gKGhlbHApKHZlcnNpb24pKHRhcnhmb3JtKWUqZippOjtuRXJ6KG51bGwtZGF0YSlzWytFcl0KKyN1bmRlZiBPUFRTVFJfc2VkCisjZGVmaW5lIE9QVFNUUl9zZWQgIihoZWxwKSh2ZXJzaW9uKSh0YXJ4Zm9ybSllKmYqaTo7bkVyeihudWxsLWRhdGEpc1srRXJdIgorI2lmZGVmIENMRUFOVVBfc2VkCisjdW5kZWYgQ0xFQU5VUF9zZWQKKyN1bmRlZiBGT1Jfc2VkCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR196CisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19FCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR190YXJ4Zm9ybQorI3VuZGVmIEZMQUdfdmVyc2lvbgorI3VuZGVmIEZMQUdfaGVscAorI2VuZGlmCisKKy8vIHNlbmRldmVudCAgIDw0PjQKKyN1bmRlZiBPUFRTVFJfc2VuZGV2ZW50CisjZGVmaW5lIE9QVFNUUl9zZW5kZXZlbnQgIjw0PjQiCisjaWZkZWYgQ0xFQU5VUF9zZW5kZXZlbnQKKyN1bmRlZiBDTEVBTlVQX3NlbmRldmVudAorI3VuZGVmIEZPUl9zZW5kZXZlbnQKKyNlbmRpZgorCisvLyBzZXEgPDE+Mz9mOnM6d1shZnddIDwxPjM/ZjpzOndbIWZ3XQorI3VuZGVmIE9QVFNUUl9zZXEKKyNkZWZpbmUgT1BUU1RSX3NlcSAiPDE+Mz9mOnM6d1shZnddIgorI2lmZGVmIENMRUFOVVBfc2VxCisjdW5kZWYgQ0xFQU5VUF9zZXEKKyN1bmRlZiBGT1Jfc2VxCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19mCisjZW5kaWYKKworLy8gc2V0ICAgIAorI3VuZGVmIE9QVFNUUl9zZXQKKyNkZWZpbmUgT1BUU1RSX3NldCAwCisjaWZkZWYgQ0xFQU5VUF9zZXQKKyN1bmRlZiBDTEVBTlVQX3NldAorI3VuZGVmIEZPUl9zZXQKKyNlbmRpZgorCisvLyBzZXRlbmZvcmNlICAgPDE+MQorI3VuZGVmIE9QVFNUUl9zZXRlbmZvcmNlCisjZGVmaW5lIE9QVFNUUl9zZXRlbmZvcmNlICI8MT4xIgorI2lmZGVmIENMRUFOVVBfc2V0ZW5mb3JjZQorI3VuZGVmIENMRUFOVVBfc2V0ZW5mb3JjZQorI3VuZGVmIEZPUl9zZXRlbmZvcmNlCisjZW5kaWYKKworLy8gc2V0ZmF0dHIgICBobjp8djp4OnxbIXh2XQorI3VuZGVmIE9QVFNUUl9zZXRmYXR0cgorI2RlZmluZSBPUFRTVFJfc2V0ZmF0dHIgImhuOnx2Ong6fFsheHZdIgorI2lmZGVmIENMRUFOVVBfc2V0ZmF0dHIKKyN1bmRlZiBDTEVBTlVQX3NldGZhdHRyCisjdW5kZWYgRk9SX3NldGZhdHRyCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19oCisjZW5kaWYKKworLy8gc2V0c2lkIF48MXdjQGRbIWRjXSBePDF3Y0BkWyFkY10KKyN1bmRlZiBPUFRTVFJfc2V0c2lkCisjZGVmaW5lIE9QVFNUUl9zZXRzaWQgIl48MXdjQGRbIWRjXSIKKyNpZmRlZiBDTEVBTlVQX3NldHNpZAorI3VuZGVmIENMRUFOVVBfc2V0c2lkCisjdW5kZWYgRk9SX3NldHNpZAorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfdworI2VuZGlmCisKKy8vIHNoICAgMF4obm9lZGl0aW5nKShub3Byb2ZpbGUpKG5vcmMpc2M6aQorI3VuZGVmIE9QVFNUUl9zaAorI2RlZmluZSBPUFRTVFJfc2ggIjBeKG5vZWRpdGluZykobm9wcm9maWxlKShub3JjKXNjOmkiCisjaWZkZWYgQ0xFQU5VUF9zaAorI3VuZGVmIENMRUFOVVBfc2gKKyN1bmRlZiBGT1Jfc2gKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX25vcmMKKyN1bmRlZiBGTEFHX25vcHJvZmlsZQorI3VuZGVmIEZMQUdfbm9lZGl0aW5nCisjZW5kaWYKKworLy8gc2hhM3N1bSAgIGJTYSM8MTI4PjUxMj0yMjQKKyN1bmRlZiBPUFRTVFJfc2hhM3N1bQorI2RlZmluZSBPUFRTVFJfc2hhM3N1bSAiYlNhIzwxMjg+NTEyPTIyNCIKKyNpZmRlZiBDTEVBTlVQX3NoYTNzdW0KKyN1bmRlZiBDTEVBTlVQX3NoYTNzdW0KKyN1bmRlZiBGT1Jfc2hhM3N1bQorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIHNoaWZ0ICAgPjEKKyN1bmRlZiBPUFRTVFJfc2hpZnQKKyNkZWZpbmUgT1BUU1RSX3NoaWZ0ICI+MSIKKyNpZmRlZiBDTEVBTlVQX3NoaWZ0CisjdW5kZWYgQ0xFQU5VUF9zaGlmdAorI3VuZGVmIEZPUl9zaGlmdAorI2VuZGlmCisKKy8vIHNocmVkICAgPDF6eHVzIzwxbiM8MW8jPDBmCisjdW5kZWYgT1BUU1RSX3NocmVkCisjZGVmaW5lIE9QVFNUUl9zaHJlZCAiPDF6eHVzIzwxbiM8MW8jPDBmIgorI2lmZGVmIENMRUFOVVBfc2hyZWQKKyN1bmRlZiBDTEVBTlVQX3NocmVkCisjdW5kZWYgRk9SX3NocmVkCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR196CisjZW5kaWYKKworLy8gc2h1ZiAgIHplbiM8MAorI3VuZGVmIE9QVFNUUl9zaHVmCisjZGVmaW5lIE9QVFNUUl9zaHVmICJ6ZW4jPDAiCisjaWZkZWYgQ0xFQU5VUF9zaHVmCisjdW5kZWYgQ0xFQU5VUF9zaHVmCisjdW5kZWYgRk9SX3NodWYKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX3oKKyNlbmRpZgorCisvLyBza2VsZXRvbiAgICh3YWxydXMpKGJsdWJiZXIpOjsoYWxzbyk6aChobG9uZyk6OyBnKGdsb25nKTogZihsb25nZik6O2VAZCpjI2I6YQorI3VuZGVmIE9QVFNUUl9za2VsZXRvbgorI2RlZmluZSBPUFRTVFJfc2tlbGV0b24gIih3YWxydXMpKGJsdWJiZXIpOjsoYWxzbyk6aChobG9uZyk6OyBnKGdsb25nKTogZihsb25nZik6O2VAZCpjI2I6YSIKKyNpZmRlZiBDTEVBTlVQX3NrZWxldG9uCisjdW5kZWYgQ0xFQU5VUF9za2VsZXRvbgorI3VuZGVmIEZPUl9za2VsZXRvbgorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfYWxzbworI3VuZGVmIEZMQUdfYmx1YmJlcgorI3VuZGVmIEZMQUdfd2FscnVzCisjZW5kaWYKKworLy8gc2tlbGV0b25fYWxpYXMgICBiI2RxCisjdW5kZWYgT1BUU1RSX3NrZWxldG9uX2FsaWFzCisjZGVmaW5lIE9QVFNUUl9za2VsZXRvbl9hbGlhcyAiYiNkcSIKKyNpZmRlZiBDTEVBTlVQX3NrZWxldG9uX2FsaWFzCisjdW5kZWYgQ0xFQU5VUF9za2VsZXRvbl9hbGlhcworI3VuZGVmIEZPUl9za2VsZXRvbl9hbGlhcworI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIHNsZWVwIDwxIDwxCisjdW5kZWYgT1BUU1RSX3NsZWVwCisjZGVmaW5lIE9QVFNUUl9zbGVlcCAiPDEiCisjaWZkZWYgQ0xFQU5VUF9zbGVlcAorI3VuZGVmIENMRUFOVVBfc2xlZXAKKyN1bmRlZiBGT1Jfc2xlZXAKKyNlbmRpZgorCisvLyBzbnRwICAgPjFNIDptIDpTcDp0IzwwPTE+MTZhc2REcXIjPDQ+MTc9MTBbIWFzXQorI3VuZGVmIE9QVFNUUl9zbnRwCisjZGVmaW5lIE9QVFNUUl9zbnRwICI+MU0gOm0gOlNwOnQjPDA9MT4xNmFzZERxciM8ND4xNz0xMFshYXNdIgorI2lmZGVmIENMRUFOVVBfc250cAorI3VuZGVmIENMRUFOVVBfc250cAorI3VuZGVmIEZPUl9zbnRwCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19xCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19NCisjZW5kaWYKKworLy8gc29ydCBnUzpUOm1vOmsqdDp4VmJNQ2NzemRmaXJ1biBnUzpUOm1vOmsqdDp4VmJNQ2NzemRmaXJ1bgorI3VuZGVmIE9QVFNUUl9zb3J0CisjZGVmaW5lIE9QVFNUUl9zb3J0ICJnUzpUOm1vOmsqdDp4VmJNQ2NzemRmaXJ1biIKKyNpZmRlZiBDTEVBTlVQX3NvcnQKKyN1bmRlZiBDTEVBTlVQX3NvcnQKKyN1bmRlZiBGT1Jfc29ydAorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfegorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfQworI3VuZGVmIEZMQUdfTQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfVgorI3VuZGVmIEZMQUdfeAorI3VuZGVmIEZMQUdfdAorI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfVAorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfZworI2VuZGlmCisKKy8vIHNvdXJjZSAgIDwxCisjdW5kZWYgT1BUU1RSX3NvdXJjZQorI2RlZmluZSBPUFRTVFJfc291cmNlICI8MSIKKyNpZmRlZiBDTEVBTlVQX3NvdXJjZQorI3VuZGVmIENMRUFOVVBfc291cmNlCisjdW5kZWYgRk9SX3NvdXJjZQorI2VuZGlmCisKKy8vIHNwbGl0ICAgPjJhIzwxPTI+OWIjPDFsIzwxbiM8MVshYmxdWyFibl1bIWxuXQorI3VuZGVmIE9QVFNUUl9zcGxpdAorI2RlZmluZSBPUFRTVFJfc3BsaXQgIj4yYSM8MT0yPjliIzwxbCM8MW4jPDFbIWJsXVshYm5dWyFsbl0iCisjaWZkZWYgQ0xFQU5VUF9zcGxpdAorI3VuZGVmIENMRUFOVVBfc3BsaXQKKyN1bmRlZiBGT1Jfc3BsaXQKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyBzdGF0IDwxYzooZm9ybWF0KWZMdCA8MWM6KGZvcm1hdClmTHQKKyN1bmRlZiBPUFRTVFJfc3RhdAorI2RlZmluZSBPUFRTVFJfc3RhdCAiPDFjOihmb3JtYXQpZkx0IgorI2lmZGVmIENMRUFOVVBfc3RhdAorI3VuZGVmIENMRUFOVVBfc3RhdAorI3VuZGVmIEZPUl9zdGF0CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19MCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gc3RyYWNlICAgXnAjcyN2CisjdW5kZWYgT1BUU1RSX3N0cmFjZQorI2RlZmluZSBPUFRTVFJfc3RyYWNlICJecCNzI3YiCisjaWZkZWYgQ0xFQU5VUF9zdHJhY2UKKyN1bmRlZiBDTEVBTlVQX3N0cmFjZQorI3VuZGVmIEZPUl9zdHJhY2UKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyBzdHJpbmdzICAgdDphbiM9NDwxZm8KKyN1bmRlZiBPUFRTVFJfc3RyaW5ncworI2RlZmluZSBPUFRTVFJfc3RyaW5ncyAidDphbiM9NDwxZm8iCisjaWZkZWYgQ0xFQU5VUF9zdHJpbmdzCisjdW5kZWYgQ0xFQU5VUF9zdHJpbmdzCisjdW5kZWYgRk9SX3N0cmluZ3MKKyN1bmRlZiBGTEFHX28KKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX3QKKyNlbmRpZgorCisvLyBzdHR5ICAgP2FGOmdbIWFnXQorI3VuZGVmIE9QVFNUUl9zdHR5CisjZGVmaW5lIE9QVFNUUl9zdHR5ICI/YUY6Z1shYWddIgorI2lmZGVmIENMRUFOVVBfc3R0eQorI3VuZGVmIENMRUFOVVBfc3R0eQorI3VuZGVmIEZPUl9zdHR5CisjdW5kZWYgRkxBR19nCisjdW5kZWYgRkxBR19GCisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gc3UgICBebG1wdTpnOmM6czpbIWxtcF0KKyN1bmRlZiBPUFRTVFJfc3UKKyNkZWZpbmUgT1BUU1RSX3N1ICJebG1wdTpnOmM6czpbIWxtcF0iCisjaWZkZWYgQ0xFQU5VUF9zdQorI3VuZGVmIENMRUFOVVBfc3UKKyN1bmRlZiBGT1Jfc3UKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyBzdWxvZ2luICAgdCM8MD0wCisjdW5kZWYgT1BUU1RSX3N1bG9naW4KKyNkZWZpbmUgT1BUU1RSX3N1bG9naW4gInQjPDA9MCIKKyNpZmRlZiBDTEVBTlVQX3N1bG9naW4KKyN1bmRlZiBDTEVBTlVQX3N1bG9naW4KKyN1bmRlZiBGT1Jfc3Vsb2dpbgorI3VuZGVmIEZMQUdfdAorI2VuZGlmCisKKy8vIHN3YXBvZmYgICA8MT4xYXYKKyN1bmRlZiBPUFRTVFJfc3dhcG9mZgorI2RlZmluZSBPUFRTVFJfc3dhcG9mZiAiPDE+MWF2IgorI2lmZGVmIENMRUFOVVBfc3dhcG9mZgorI3VuZGVmIENMRUFOVVBfc3dhcG9mZgorI3VuZGVmIEZPUl9zd2Fwb2ZmCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19hCisjZW5kaWYKKworLy8gc3dhcG9uICAgPDE+MXAjPDA+MzI3NjdkCisjdW5kZWYgT1BUU1RSX3N3YXBvbgorI2RlZmluZSBPUFRTVFJfc3dhcG9uICI8MT4xcCM8MD4zMjc2N2QiCisjaWZkZWYgQ0xFQU5VUF9zd2Fwb24KKyN1bmRlZiBDTEVBTlVQX3N3YXBvbgorI3VuZGVmIEZPUl9zd2Fwb24KKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyBzd2l0Y2hfcm9vdCAgIDwyYzpoCisjdW5kZWYgT1BUU1RSX3N3aXRjaF9yb290CisjZGVmaW5lIE9QVFNUUl9zd2l0Y2hfcm9vdCAiPDJjOmgiCisjaWZkZWYgQ0xFQU5VUF9zd2l0Y2hfcm9vdAorI3VuZGVmIENMRUFOVVBfc3dpdGNoX3Jvb3QKKyN1bmRlZiBGT1Jfc3dpdGNoX3Jvb3QKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyBzeW5jICAgIAorI3VuZGVmIE9QVFNUUl9zeW5jCisjZGVmaW5lIE9QVFNUUl9zeW5jIDAKKyNpZmRlZiBDTEVBTlVQX3N5bmMKKyN1bmRlZiBDTEVBTlVQX3N5bmMKKyN1bmRlZiBGT1Jfc3luYworI2VuZGlmCisKKy8vIHN5c2N0bCAgIF5uZU5xd3BhQVshYXBdWyFhcV1bIWF3XVsrYUFdCisjdW5kZWYgT1BUU1RSX3N5c2N0bAorI2RlZmluZSBPUFRTVFJfc3lzY3RsICJebmVOcXdwYUFbIWFwXVshYXFdWyFhd11bK2FBXSIKKyNpZmRlZiBDTEVBTlVQX3N5c2N0bAorI3VuZGVmIENMRUFOVVBfc3lzY3RsCisjdW5kZWYgRk9SX3N5c2N0bAorI3VuZGVmIEZMQUdfQQorI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfdworI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfTgorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIHN5c2xvZ2QgICA+MGwjPDE+OD04UjpiIzwwPjk5PTFzIzwwPTIwMG0jPDA+NzE1ODI3ODc9MjBPOnA6ZjphOm5TS0xECisjdW5kZWYgT1BUU1RSX3N5c2xvZ2QKKyNkZWZpbmUgT1BUU1RSX3N5c2xvZ2QgIj4wbCM8MT44PThSOmIjPDA+OTk9MXMjPDA9MjAwbSM8MD43MTU4Mjc4Nz0yME86cDpmOmE6blNLTEQiCisjaWZkZWYgQ0xFQU5VUF9zeXNsb2dkCisjdW5kZWYgQ0xFQU5VUF9zeXNsb2dkCisjdW5kZWYgRk9SX3N5c2xvZ2QKKyN1bmRlZiBGTEFHX0QKKyN1bmRlZiBGTEFHX0wKKyN1bmRlZiBGTEFHX0sKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX08KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX2wKKyNlbmRpZgorCisvLyB0YWMgICAgCisjdW5kZWYgT1BUU1RSX3RhYworI2RlZmluZSBPUFRTVFJfdGFjIDAKKyNpZmRlZiBDTEVBTlVQX3RhYworI3VuZGVmIENMRUFOVVBfdGFjCisjdW5kZWYgRk9SX3RhYworI2VuZGlmCisKKy8vIHRhaWwgP2ZGczpjKGJ5dGVzKS1uKGxpbmVzKS1bLWNuXVstZkZdID9mRnM6YyhieXRlcyktbihsaW5lcyktWy1jbl1bLWZGXQorI3VuZGVmIE9QVFNUUl90YWlsCisjZGVmaW5lIE9QVFNUUl90YWlsICI/ZkZzOmMoYnl0ZXMpLW4obGluZXMpLVstY25dWy1mRl0iCisjaWZkZWYgQ0xFQU5VUF90YWlsCisjdW5kZWYgQ0xFQU5VUF90YWlsCisjdW5kZWYgRk9SX3RhaWwKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyB0YXIgJihvbmUtZmlsZS1zeXN0ZW0pKG5vLWlnbm9yZS1jYXNlKShpZ25vcmUtY2FzZSkobm8tYW5jaG9yZWQpKGFuY2hvcmVkKShuby13aWxkY2FyZHMpKHdpbGRjYXJkcykobm8td2lsZGNhcmRzLW1hdGNoLXNsYXNoKSh3aWxkY2FyZHMtbWF0Y2gtc2xhc2gpKHNob3ctdHJhbnNmb3JtZWQtbmFtZXMpKHNlbGludXgpKHJlc3RyaWN0KShmdWxsLXRpbWUpKG5vLXJlY3Vyc2lvbikobnVsbCkobnVtZXJpYy1vd25lcikobm8tc2FtZS1wZXJtaXNzaW9ucykob3ZlcndyaXRlKShleGNsdWRlKSooc29ydCk7Oihtb2RlKToobXRpbWUpOihncm91cCk6KG93bmVyKToodG8tY29tbWFuZCk6fihzdHJpcC1jb21wb25lbnRzKShzdHJpcCkjfih0cmFuc2Zvcm0pKHhmb3JtKSpvKG5vLXNhbWUtb3duZXIpcChzYW1lLXBlcm1pc3Npb25zKWsoa2VlcC1vbGQpYyhjcmVhdGUpfGgoZGVyZWZlcmVuY2UpeChleHRyYWN0KXx0KGxpc3QpfHYodmVyYm9zZSlKKHh6KWooYnppcDIpeihnemlwKVMoc3BhcnNlKU8odG8tc3Rkb3V0KVAoYWJzb2x1dGUtbmFtZXMpbSh0b3VjaClYKGV4Y2x1ZGUtZnJvbSkqVChmaWxlcy1mcm9tKSpJKHVzZS1jb21wcmVzcy1wcm9ncmFtKTpDKGRpcmVjdG9yeSk6ZihmaWxlKTphc1shdHhjXVshanpKYV0gJihvbmUtZmlsZS1zeXN0ZW0pKG5vLWlnbm9yZS1jYXNlKShpZ25vcmUtY2FzZSkobm8tYW5jaG9yZWQpKGFuY2hvcmVkKShuby13aWxkY2FyZHMpKHdpbGRjYXJkcykobm8td2lsZGNhcmRzLW1hdGNoLXNsYXNoKSh3aWxkY2FyZHMtbWF0Y2gtc2xhc2gpKHNob3ctdHJhbnNmb3JtZWQtbmFtZXMpKHNlbGludXgpKHJlc3RyaWN0KShmdWxsLXRpbWUpKG5vLXJlY3Vyc2lvbikobnVsbCkobnVtZXJpYy1vd25lcikobm8tc2FtZS1wZXJtaXNzaW9ucykob3ZlcndyaXRlKShleGNsdWRlKSooc29ydCk7Oihtb2RlKToobXRpbWUpOihncm91cCk6KG93bmVyKToodG8tY29tbWFuZCk6fihzdHJpcC1jb21wb25lbnRzKShzdHJpcCkjfih0cmFuc2Zvcm0pKHhmb3JtKSpvKG5vLXNhbWUtb3duZXIpcChzYW1lLXBlcm1pc3Npb25zKWsoa2VlcC1vbGQpYyhjcmVhdGUpfGgoZGVyZWZlcmVuY2UpeChleHRyYWN0KXx0KGxpc3QpfHYodmVyYm9zZSlKKHh6KWooYnppcDIpeihnemlwKVMoc3BhcnNlKU8odG8tc3Rkb3V0KVAoYWJzb2x1dGUtbmFtZXMpbSh0b3VjaClYKGV4Y2x1ZGUtZnJvbSkqVChmaWxlcy1mcm9tKSpJKHVzZS1jb21wcmVzcy1wcm9ncmFtKTpDKGRpcmVjdG9yeSk6ZihmaWxlKTphc1shdHhjXVshanpKYV0KKyN1bmRlZiBPUFRTVFJfdGFyCisjZGVmaW5lIE9QVFNUUl90YXIgIiYob25lLWZpbGUtc3lzdGVtKShuby1pZ25vcmUtY2FzZSkoaWdub3JlLWNhc2UpKG5vLWFuY2hvcmVkKShhbmNob3JlZCkobm8td2lsZGNhcmRzKSh3aWxkY2FyZHMpKG5vLXdpbGRjYXJkcy1tYXRjaC1zbGFzaCkod2lsZGNhcmRzLW1hdGNoLXNsYXNoKShzaG93LXRyYW5zZm9ybWVkLW5hbWVzKShzZWxpbnV4KShyZXN0cmljdCkoZnVsbC10aW1lKShuby1yZWN1cnNpb24pKG51bGwpKG51bWVyaWMtb3duZXIpKG5vLXNhbWUtcGVybWlzc2lvbnMpKG92ZXJ3cml0ZSkoZXhjbHVkZSkqKHNvcnQpOzoobW9kZSk6KG10aW1lKTooZ3JvdXApOihvd25lcik6KHRvLWNvbW1hbmQpOn4oc3RyaXAtY29tcG9uZW50cykoc3RyaXApI34odHJhbnNmb3JtKSh4Zm9ybSkqbyhuby1zYW1lLW93bmVyKXAoc2FtZS1wZXJtaXNzaW9ucylrKGtlZXAtb2xkKWMoY3JlYXRlKXxoKGRlcmVmZXJlbmNlKXgoZXh0cmFjdCl8dChsaXN0KXx2KHZlcmJvc2UpSih4eilqKGJ6aXAyKXooZ3ppcClTKHNwYXJzZSlPKHRvLXN0ZG91dClQKGFic29sdXRlLW5hbWVzKW0odG91Y2gpWChleGNsdWRlLWZyb20pKlQoZmlsZXMtZnJvbSkqSSh1c2UtY29tcHJlc3MtcHJvZ3JhbSk6QyhkaXJlY3RvcnkpOmYoZmlsZSk6YXNbIXR4Y11bIWp6SmFdIgorI2lmZGVmIENMRUFOVVBfdGFyCisjdW5kZWYgQ0xFQU5VUF90YXIKKyN1bmRlZiBGT1JfdGFyCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19DCisjdW5kZWYgRkxBR19JCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR19YCisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19PCisjdW5kZWYgRkxBR19TCisjdW5kZWYgRkxBR196CisjdW5kZWYgRkxBR19qCisjdW5kZWYgRkxBR19KCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19oCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR194Zm9ybQorI3VuZGVmIEZMQUdfc3RyaXAKKyN1bmRlZiBGTEFHX3RvX2NvbW1hbmQKKyN1bmRlZiBGTEFHX293bmVyCisjdW5kZWYgRkxBR19ncm91cAorI3VuZGVmIEZMQUdfbXRpbWUKKyN1bmRlZiBGTEFHX21vZGUKKyN1bmRlZiBGTEFHX3NvcnQKKyN1bmRlZiBGTEFHX2V4Y2x1ZGUKKyN1bmRlZiBGTEFHX292ZXJ3cml0ZQorI3VuZGVmIEZMQUdfbm9fc2FtZV9wZXJtaXNzaW9ucworI3VuZGVmIEZMQUdfbnVtZXJpY19vd25lcgorI3VuZGVmIEZMQUdfbnVsbAorI3VuZGVmIEZMQUdfbm9fcmVjdXJzaW9uCisjdW5kZWYgRkxBR19mdWxsX3RpbWUKKyN1bmRlZiBGTEFHX3Jlc3RyaWN0CisjdW5kZWYgRkxBR19zZWxpbnV4CisjdW5kZWYgRkxBR19zaG93X3RyYW5zZm9ybWVkX25hbWVzCisjdW5kZWYgRkxBR193aWxkY2FyZHNfbWF0Y2hfc2xhc2gKKyN1bmRlZiBGTEFHX25vX3dpbGRjYXJkc19tYXRjaF9zbGFzaAorI3VuZGVmIEZMQUdfd2lsZGNhcmRzCisjdW5kZWYgRkxBR19ub193aWxkY2FyZHMKKyN1bmRlZiBGTEFHX2FuY2hvcmVkCisjdW5kZWYgRkxBR19ub19hbmNob3JlZAorI3VuZGVmIEZMQUdfaWdub3JlX2Nhc2UKKyN1bmRlZiBGTEFHX25vX2lnbm9yZV9jYXNlCisjdW5kZWYgRkxBR19vbmVfZmlsZV9zeXN0ZW0KKyNlbmRpZgorCisvLyB0YXNrc2V0ICAgPDFecGEKKyN1bmRlZiBPUFRTVFJfdGFza3NldAorI2RlZmluZSBPUFRTVFJfdGFza3NldCAiPDFecGEiCisjaWZkZWYgQ0xFQU5VUF90YXNrc2V0CisjdW5kZWYgQ0xFQU5VUF90YXNrc2V0CisjdW5kZWYgRk9SX3Rhc2tzZXQKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyB0Y3BzdmQgICBePDNjIz0zMDwxYiM9MjA8MEM6dTpsOmhFdgorI3VuZGVmIE9QVFNUUl90Y3BzdmQKKyNkZWZpbmUgT1BUU1RSX3RjcHN2ZCAiXjwzYyM9MzA8MWIjPTIwPDBDOnU6bDpoRXYiCisjaWZkZWYgQ0xFQU5VUF90Y3BzdmQKKyN1bmRlZiBDTEVBTlVQX3RjcHN2ZAorI3VuZGVmIEZPUl90Y3BzdmQKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX0UKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX2IKKyN1bmRlZiBGTEFHX2MKKyNlbmRpZgorCisvLyB0ZWUgaWEgaWEKKyN1bmRlZiBPUFRTVFJfdGVlCisjZGVmaW5lIE9QVFNUUl90ZWUgImlhIgorI2lmZGVmIENMRUFOVVBfdGVlCisjdW5kZWYgQ0xFQU5VUF90ZWUKKyN1bmRlZiBGT1JfdGVlCisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19pCisjZW5kaWYKKworLy8gdGVsbmV0ICAgPDE+MgorI3VuZGVmIE9QVFNUUl90ZWxuZXQKKyNkZWZpbmUgT1BUU1RSX3RlbG5ldCAiPDE+MiIKKyNpZmRlZiBDTEVBTlVQX3RlbG5ldAorI3VuZGVmIENMRUFOVVBfdGVsbmV0CisjdW5kZWYgRk9SX3RlbG5ldAorI2VuZGlmCisKKy8vIHRlbG5ldGQgICB3IzwwYjpwIzwwPjY1NTM1PTIzZjpsOkZTS2lbIXdpXQorI3VuZGVmIE9QVFNUUl90ZWxuZXRkCisjZGVmaW5lIE9QVFNUUl90ZWxuZXRkICJ3IzwwYjpwIzwwPjY1NTM1PTIzZjpsOkZTS2lbIXdpXSIKKyNpZmRlZiBDTEVBTlVQX3RlbG5ldGQKKyN1bmRlZiBDTEVBTlVQX3RlbG5ldGQKKyN1bmRlZiBGT1JfdGVsbmV0ZAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfSworI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfRgorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfZgorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfdworI2VuZGlmCisKKy8vIHRlc3QgICAgCisjdW5kZWYgT1BUU1RSX3Rlc3QKKyNkZWZpbmUgT1BUU1RSX3Rlc3QgMAorI2lmZGVmIENMRUFOVVBfdGVzdAorI3VuZGVmIENMRUFOVVBfdGVzdAorI3VuZGVmIEZPUl90ZXN0CisjZW5kaWYKKworLy8gdGZ0cCAgIDwxYiM8OD42NTQ2NHI6bDpnfHB8WyFncF0KKyN1bmRlZiBPUFRTVFJfdGZ0cAorI2RlZmluZSBPUFRTVFJfdGZ0cCAiPDFiIzw4PjY1NDY0cjpsOmd8cHxbIWdwXSIKKyNpZmRlZiBDTEVBTlVQX3RmdHAKKyN1bmRlZiBDTEVBTlVQX3RmdHAKKyN1bmRlZiBGT1JfdGZ0cAorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfYgorI2VuZGlmCisKKy8vIHRmdHBkICAgcmN1OmwKKyN1bmRlZiBPUFRTVFJfdGZ0cGQKKyNkZWZpbmUgT1BUU1RSX3RmdHBkICJyY3U6bCIKKyNpZmRlZiBDTEVBTlVQX3RmdHBkCisjdW5kZWYgQ0xFQU5VUF90ZnRwZAorI3VuZGVmIEZPUl90ZnRwZAorI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfYworI3VuZGVmIEZMQUdfcgorI2VuZGlmCisKKy8vIHRpbWUgICA8MV5wdlstcHZdCisjdW5kZWYgT1BUU1RSX3RpbWUKKyNkZWZpbmUgT1BUU1RSX3RpbWUgIjwxXnB2Wy1wdl0iCisjaWZkZWYgQ0xFQU5VUF90aW1lCisjdW5kZWYgQ0xFQU5VUF90aW1lCisjdW5kZWYgRk9SX3RpbWUKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyB0aW1lb3V0IDwyXihmb3JlZ3JvdW5kKShwcmVzZXJ2ZS1zdGF0dXMpdms6cyhzaWduYWwpOmkgPDJeKGZvcmVncm91bmQpKHByZXNlcnZlLXN0YXR1cyl2azpzKHNpZ25hbCk6aQorI3VuZGVmIE9QVFNUUl90aW1lb3V0CisjZGVmaW5lIE9QVFNUUl90aW1lb3V0ICI8Ml4oZm9yZWdyb3VuZCkocHJlc2VydmUtc3RhdHVzKXZrOnMoc2lnbmFsKTppIgorI2lmZGVmIENMRUFOVVBfdGltZW91dAorI3VuZGVmIENMRUFOVVBfdGltZW91dAorI3VuZGVmIEZPUl90aW1lb3V0CisjdW5kZWYgRkxBR19pCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR19wcmVzZXJ2ZV9zdGF0dXMKKyN1bmRlZiBGTEFHX2ZvcmVncm91bmQKKyNlbmRpZgorCisvLyB0b3AgICA+ME8qaEhrKm8qcCp1KnMjPDFkJTwxMDA9MzAwMG0jbiM8MWJxWyFvT10KKyN1bmRlZiBPUFRTVFJfdG9wCisjZGVmaW5lIE9QVFNUUl90b3AgIj4wTypoSGsqbypwKnUqcyM8MWQlPDEwMD0zMDAwbSNuIzwxYnFbIW9PXSIKKyNpZmRlZiBDTEVBTlVQX3RvcAorI3VuZGVmIENMRUFOVVBfdG9wCisjdW5kZWYgRk9SX3RvcAorI3VuZGVmIEZMQUdfcQorI3VuZGVmIEZMQUdfYgorI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfdQorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfaworI3VuZGVmIEZMQUdfSAorI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfTworI2VuZGlmCisKKy8vIHRvdWNoIDwxYWNkOmZtcjp0OmhbIWR0cl0gPDFhY2Q6Zm1yOnQ6aFshZHRyXQorI3VuZGVmIE9QVFNUUl90b3VjaAorI2RlZmluZSBPUFRTVFJfdG91Y2ggIjwxYWNkOmZtcjp0OmhbIWR0cl0iCisjaWZkZWYgQ0xFQU5VUF90b3VjaAorI3VuZGVmIENMRUFOVVBfdG91Y2gKKyN1bmRlZiBGT1JfdG91Y2gKKyN1bmRlZiBGTEFHX2gKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyB0b3lib3ggICAgCisjdW5kZWYgT1BUU1RSX3RveWJveAorI2RlZmluZSBPUFRTVFJfdG95Ym94IDAKKyNpZmRlZiBDTEVBTlVQX3RveWJveAorI3VuZGVmIENMRUFOVVBfdG95Ym94CisjdW5kZWYgRk9SX3RveWJveAorI2VuZGlmCisKKy8vIHRyIF48MT4yQ2NzdGRbK2NDXSBePDE+MkNjc3RkWytjQ10KKyN1bmRlZiBPUFRTVFJfdHIKKyNkZWZpbmUgT1BUU1RSX3RyICJePDE+MkNjc3RkWytjQ10iCisjaWZkZWYgQ0xFQU5VUF90cgorI3VuZGVmIENMRUFOVVBfdHIKKyN1bmRlZiBGT1JfdHIKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX0MKKyNlbmRpZgorCisvLyB0cmFjZXJvdXRlICAgPDE+Mmk6ZiM8MT4yNTU9MXojPDA+ODY0MDA9MGcqdyM8MD44NjQwMD01dCM8MD4yNTU9MHM6cSM8MT4yNTU9M3AjPDE+NjU1MzU9MzM0MzRtIzwxPjI1NT0zMHJ2bmRsSVVGNjQKKyN1bmRlZiBPUFRTVFJfdHJhY2Vyb3V0ZQorI2RlZmluZSBPUFRTVFJfdHJhY2Vyb3V0ZSAiPDE+Mmk6ZiM8MT4yNTU9MXojPDA+ODY0MDA9MGcqdyM8MD44NjQwMD01dCM8MD4yNTU9MHM6cSM8MT4yNTU9M3AjPDE+NjU1MzU9MzM0MzRtIzwxPjI1NT0zMHJ2bmRsSVVGNjQiCisjaWZkZWYgQ0xFQU5VUF90cmFjZXJvdXRlCisjdW5kZWYgQ0xFQU5VUF90cmFjZXJvdXRlCisjdW5kZWYgRk9SX3RyYWNlcm91dGUKKyN1bmRlZiBGTEFHXzQKKyN1bmRlZiBGTEFHXzYKKyN1bmRlZiBGTEFHX0YKKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX0kKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX2cKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2kKKyNlbmRpZgorCisvLyB0cnVlICAgIAorI3VuZGVmIE9QVFNUUl90cnVlCisjZGVmaW5lIE9QVFNUUl90cnVlIDAKKyNpZmRlZiBDTEVBTlVQX3RydWUKKyN1bmRlZiBDTEVBTlVQX3RydWUKKyN1bmRlZiBGT1JfdHJ1ZQorI2VuZGlmCisKKy8vIHRydW5jYXRlIDwxczp8YyA8MXM6fGMKKyN1bmRlZiBPUFRTVFJfdHJ1bmNhdGUKKyNkZWZpbmUgT1BUU1RSX3RydW5jYXRlICI8MXM6fGMiCisjaWZkZWYgQ0xFQU5VUF90cnVuY2F0ZQorI3VuZGVmIENMRUFOVVBfdHJ1bmNhdGUKKyN1bmRlZiBGT1JfdHJ1bmNhdGUKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyB0cyAgIGltcworI3VuZGVmIE9QVFNUUl90cworI2RlZmluZSBPUFRTVFJfdHMgImltcyIKKyNpZmRlZiBDTEVBTlVQX3RzCisjdW5kZWYgQ0xFQU5VUF90cworI3VuZGVmIEZPUl90cworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfaQorI2VuZGlmCisKKy8vIHRzb3J0ICAgPjEKKyN1bmRlZiBPUFRTVFJfdHNvcnQKKyNkZWZpbmUgT1BUU1RSX3Rzb3J0ICI+MSIKKyNpZmRlZiBDTEVBTlVQX3Rzb3J0CisjdW5kZWYgQ0xFQU5VUF90c29ydAorI3VuZGVmIEZPUl90c29ydAorI2VuZGlmCisKKy8vIHR0eSAgIHMKKyN1bmRlZiBPUFRTVFJfdHR5CisjZGVmaW5lIE9QVFNUUl90dHkgInMiCisjaWZkZWYgQ0xFQU5VUF90dHkKKyN1bmRlZiBDTEVBTlVQX3R0eQorI3VuZGVmIEZPUl90dHkKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyB0dW5jdGwgICA8MT4xdHxkfHU6VFshdGRdCisjdW5kZWYgT1BUU1RSX3R1bmN0bAorI2RlZmluZSBPUFRTVFJfdHVuY3RsICI8MT4xdHxkfHU6VFshdGRdIgorI2lmZGVmIENMRUFOVVBfdHVuY3RsCisjdW5kZWYgQ0xFQU5VUF90dW5jdGwKKyN1bmRlZiBGT1JfdHVuY3RsCisjdW5kZWYgRkxBR19UCisjdW5kZWYgRkxBR191CisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR190CisjZW5kaWYKKworLy8gdWNsYW1wc2V0ICAgcCNhbSM8LTE+MTAyNE0jPC0xPjEwMjRSCisjdW5kZWYgT1BUU1RSX3VjbGFtcHNldAorI2RlZmluZSBPUFRTVFJfdWNsYW1wc2V0ICJwI2FtIzwtMT4xMDI0TSM8LTE+MTAyNFIiCisjaWZkZWYgQ0xFQU5VUF91Y2xhbXBzZXQKKyN1bmRlZiBDTEVBTlVQX3VjbGFtcHNldAorI3VuZGVmIEZPUl91Y2xhbXBzZXQKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX00KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX3AKKyNlbmRpZgorCisvLyB1bGltaXQgICA+MVAjPDFTSGF2dXRzclJxcG5tbGlmZWRjWy1TSF1bIWFwdnV0c3JScW5tbGlmZWRjXQorI3VuZGVmIE9QVFNUUl91bGltaXQKKyNkZWZpbmUgT1BUU1RSX3VsaW1pdCAiPjFQIzwxU0hhdnV0c3JScXBubWxpZmVkY1stU0hdWyFhcHZ1dHNyUnFubWxpZmVkY10iCisjaWZkZWYgQ0xFQU5VUF91bGltaXQKKyN1bmRlZiBDTEVBTlVQX3VsaW1pdAorI3VuZGVmIEZPUl91bGltaXQKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2UKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX2wKKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX3EKKyN1bmRlZiBGTEFHX1IKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2EKKyN1bmRlZiBGTEFHX0gKKyN1bmRlZiBGTEFHX1MKKyN1bmRlZiBGTEFHX1AKKyNlbmRpZgorCisvLyB1bW91bnQgICBjbmREZmxyYXQqdlshbmFdCisjdW5kZWYgT1BUU1RSX3Vtb3VudAorI2RlZmluZSBPUFRTVFJfdW1vdW50ICJjbmREZmxyYXQqdlshbmFdIgorI2lmZGVmIENMRUFOVVBfdW1vdW50CisjdW5kZWYgQ0xFQU5VUF91bW91bnQKKyN1bmRlZiBGT1JfdW1vdW50CisjdW5kZWYgRkxBR192CisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19hCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19ECisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworLy8gdW5hbWUgcGFvbXZybnMgcGFvbXZybnMKKyN1bmRlZiBPUFRTVFJfdW5hbWUKKyNkZWZpbmUgT1BUU1RSX3VuYW1lICJwYW9tdnJucyIKKyNpZmRlZiBDTEVBTlVQX3VuYW1lCisjdW5kZWYgQ0xFQU5VUF91bmFtZQorI3VuZGVmIEZPUl91bmFtZQorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfbgorI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfdgorI3VuZGVmIEZMQUdfbQorI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfYQorI3VuZGVmIEZMQUdfcAorI2VuZGlmCisKKy8vIHVuaWNvZGUgICA8MQorI3VuZGVmIE9QVFNUUl91bmljb2RlCisjZGVmaW5lIE9QVFNUUl91bmljb2RlICI8MSIKKyNpZmRlZiBDTEVBTlVQX3VuaWNvZGUKKyN1bmRlZiBDTEVBTlVQX3VuaWNvZGUKKyN1bmRlZiBGT1JfdW5pY29kZQorI2VuZGlmCisKKy8vIHVuaXEgZiNzI3cjemljZHUgZiNzI3cjemljZHUKKyN1bmRlZiBPUFRTVFJfdW5pcQorI2RlZmluZSBPUFRTVFJfdW5pcSAiZiNzI3cjemljZHUiCisjaWZkZWYgQ0xFQU5VUF91bmlxCisjdW5kZWYgQ0xFQU5VUF91bmlxCisjdW5kZWYgRk9SX3VuaXEKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX2QKKyN1bmRlZiBGTEFHX2MKKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX3oKKyN1bmRlZiBGTEFHX3cKKyN1bmRlZiBGTEFHX3MKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyB1bml4MmRvcyAgICAKKyN1bmRlZiBPUFRTVFJfdW5peDJkb3MKKyNkZWZpbmUgT1BUU1RSX3VuaXgyZG9zIDAKKyNpZmRlZiBDTEVBTlVQX3VuaXgyZG9zCisjdW5kZWYgQ0xFQU5VUF91bml4MmRvcworI3VuZGVmIEZPUl91bml4MmRvcworI2VuZGlmCisKKy8vIHVubGluayAgIDwxPjEKKyN1bmRlZiBPUFRTVFJfdW5saW5rCisjZGVmaW5lIE9QVFNUUl91bmxpbmsgIjwxPjEiCisjaWZkZWYgQ0xFQU5VUF91bmxpbmsKKyN1bmRlZiBDTEVBTlVQX3VubGluaworI3VuZGVmIEZPUl91bmxpbmsKKyNlbmRpZgorCisvLyB1bnNldCAgIGZ2blshZnZdCisjdW5kZWYgT1BUU1RSX3Vuc2V0CisjZGVmaW5lIE9QVFNUUl91bnNldCAiZnZuWyFmdl0iCisjaWZkZWYgQ0xFQU5VUF91bnNldAorI3VuZGVmIENMRUFOVVBfdW5zZXQKKyN1bmRlZiBGT1JfdW5zZXQKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX3YKKyN1bmRlZiBGTEFHX2YKKyNlbmRpZgorCisvLyB1bnNoYXJlICAgPDFeYShhbGwpZihmb3JrKXIobWFwLXJvb3QtdXNlcilDKGNncm91cCk6OyBpKGlwYyk6OyBtKG1vdW50KTo7IG4obmV0KTo7IHAocGlkKTo7IHUodXRzKTo7IFUodXNlcik6OyAKKyN1bmRlZiBPUFRTVFJfdW5zaGFyZQorI2RlZmluZSBPUFRTVFJfdW5zaGFyZSAiPDFeYShhbGwpZihmb3JrKXIobWFwLXJvb3QtdXNlcilDKGNncm91cCk6OyBpKGlwYyk6OyBtKG1vdW50KTo7IG4obmV0KTo7IHAocGlkKTo7IHUodXRzKTo7IFUodXNlcik6OyAiCisjaWZkZWYgQ0xFQU5VUF91bnNoYXJlCisjdW5kZWYgQ0xFQU5VUF91bnNoYXJlCisjdW5kZWYgRk9SX3Vuc2hhcmUKKyN1bmRlZiBGTEFHX1UKKyN1bmRlZiBGTEFHX3UKKyN1bmRlZiBGTEFHX3AKKyN1bmRlZiBGTEFHX24KKyN1bmRlZiBGTEFHX20KKyN1bmRlZiBGTEFHX2kKKyN1bmRlZiBGTEFHX0MKKyN1bmRlZiBGTEFHX3IKKyN1bmRlZiBGTEFHX2YKKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyB1cHRpbWUgICA+MHBzCisjdW5kZWYgT1BUU1RSX3VwdGltZQorI2RlZmluZSBPUFRTVFJfdXB0aW1lICI+MHBzIgorI2lmZGVmIENMRUFOVVBfdXB0aW1lCisjdW5kZWYgQ0xFQU5VUF91cHRpbWUKKyN1bmRlZiBGT1JfdXB0aW1lCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19wCisjZW5kaWYKKworLy8gdXNlcmFkZCAgIDwxPjJ1IzwwRzpzOmc6aDpTREgKKyN1bmRlZiBPUFRTVFJfdXNlcmFkZAorI2RlZmluZSBPUFRTVFJfdXNlcmFkZCAiPDE+MnUjPDBHOnM6ZzpoOlNESCIKKyNpZmRlZiBDTEVBTlVQX3VzZXJhZGQKKyN1bmRlZiBDTEVBTlVQX3VzZXJhZGQKKyN1bmRlZiBGT1JfdXNlcmFkZAorI3VuZGVmIEZMQUdfSAorI3VuZGVmIEZMQUdfRAorI3VuZGVmIEZMQUdfUworI3VuZGVmIEZMQUdfaAorI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfRworI3VuZGVmIEZMQUdfdQorI2VuZGlmCisKKy8vIHVzZXJkZWwgICA8MT4xcgorI3VuZGVmIE9QVFNUUl91c2VyZGVsCisjZGVmaW5lIE9QVFNUUl91c2VyZGVsICI8MT4xciIKKyNpZmRlZiBDTEVBTlVQX3VzZXJkZWwKKyN1bmRlZiBDTEVBTlVQX3VzZXJkZWwKKyN1bmRlZiBGT1JfdXNlcmRlbAorI3VuZGVmIEZMQUdfcgorI2VuZGlmCisKKy8vIHVzbGVlcCAgIDwxPjEKKyN1bmRlZiBPUFRTVFJfdXNsZWVwCisjZGVmaW5lIE9QVFNUUl91c2xlZXAgIjwxPjEiCisjaWZkZWYgQ0xFQU5VUF91c2xlZXAKKyN1bmRlZiBDTEVBTlVQX3VzbGVlcAorI3VuZGVmIEZPUl91c2xlZXAKKyNlbmRpZgorCisvLyB1dWRlY29kZSAgID4xbzoKKyN1bmRlZiBPUFRTVFJfdXVkZWNvZGUKKyNkZWZpbmUgT1BUU1RSX3V1ZGVjb2RlICI+MW86IgorI2lmZGVmIENMRUFOVVBfdXVkZWNvZGUKKyN1bmRlZiBDTEVBTlVQX3V1ZGVjb2RlCisjdW5kZWYgRk9SX3V1ZGVjb2RlCisjdW5kZWYgRkxBR19vCisjZW5kaWYKKworLy8gdXVlbmNvZGUgICA8MT4ybQorI3VuZGVmIE9QVFNUUl91dWVuY29kZQorI2RlZmluZSBPUFRTVFJfdXVlbmNvZGUgIjwxPjJtIgorI2lmZGVmIENMRUFOVVBfdXVlbmNvZGUKKyN1bmRlZiBDTEVBTlVQX3V1ZW5jb2RlCisjdW5kZWYgRk9SX3V1ZW5jb2RlCisjdW5kZWYgRkxBR19tCisjZW5kaWYKKworLy8gdXVpZGdlbiAgID4wcihyYW5kb20pCisjdW5kZWYgT1BUU1RSX3V1aWRnZW4KKyNkZWZpbmUgT1BUU1RSX3V1aWRnZW4gIj4wcihyYW5kb20pIgorI2lmZGVmIENMRUFOVVBfdXVpZGdlbgorI3VuZGVmIENMRUFOVVBfdXVpZGdlbgorI3VuZGVmIEZPUl91dWlkZ2VuCisjdW5kZWYgRkxBR19yCisjZW5kaWYKKworLy8gdmNvbmZpZyAgIDwyPjQKKyN1bmRlZiBPUFRTVFJfdmNvbmZpZworI2RlZmluZSBPUFRTVFJfdmNvbmZpZyAiPDI+NCIKKyNpZmRlZiBDTEVBTlVQX3Zjb25maWcKKyN1bmRlZiBDTEVBTlVQX3Zjb25maWcKKyN1bmRlZiBGT1JfdmNvbmZpZworI2VuZGlmCisKKy8vIHZpICAgPjFzOgorI3VuZGVmIE9QVFNUUl92aQorI2RlZmluZSBPUFRTVFJfdmkgIj4xczoiCisjaWZkZWYgQ0xFQU5VUF92aQorI3VuZGVmIENMRUFOVVBfdmkKKyN1bmRlZiBGT1JfdmkKKyN1bmRlZiBGTEFHX3MKKyNlbmRpZgorCisvLyB2bXN0YXQgICA+Mm4KKyN1bmRlZiBPUFRTVFJfdm1zdGF0CisjZGVmaW5lIE9QVFNUUl92bXN0YXQgIj4ybiIKKyNpZmRlZiBDTEVBTlVQX3Ztc3RhdAorI3VuZGVmIENMRUFOVVBfdm1zdGF0CisjdW5kZWYgRk9SX3Ztc3RhdAorI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIHcgICAgCisjdW5kZWYgT1BUU1RSX3cKKyNkZWZpbmUgT1BUU1RSX3cgMAorI2lmZGVmIENMRUFOVVBfdworI3VuZGVmIENMRUFOVVBfdworI3VuZGVmIEZPUl93CisjZW5kaWYKKworLy8gd2FpdCAgIG4KKyN1bmRlZiBPUFRTVFJfd2FpdAorI2RlZmluZSBPUFRTVFJfd2FpdCAibiIKKyNpZmRlZiBDTEVBTlVQX3dhaXQKKyN1bmRlZiBDTEVBTlVQX3dhaXQKKyN1bmRlZiBGT1Jfd2FpdAorI3VuZGVmIEZMQUdfbgorI2VuZGlmCisKKy8vIHdhdGNoICAgXjwxbiU8MTAwPTIwMDB0ZWJ4CisjdW5kZWYgT1BUU1RSX3dhdGNoCisjZGVmaW5lIE9QVFNUUl93YXRjaCAiXjwxbiU8MTAwPTIwMDB0ZWJ4IgorI2lmZGVmIENMRUFOVVBfd2F0Y2gKKyN1bmRlZiBDTEVBTlVQX3dhdGNoCisjdW5kZWYgRk9SX3dhdGNoCisjdW5kZWYgRkxBR194CisjdW5kZWYgRkxBR19iCisjdW5kZWYgRkxBR19lCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19uCisjZW5kaWYKKworLy8gd2F0Y2hkb2cgICA8MT4xRnQjPTQ8MVQjPTYwPDEKKyN1bmRlZiBPUFRTVFJfd2F0Y2hkb2cKKyNkZWZpbmUgT1BUU1RSX3dhdGNoZG9nICI8MT4xRnQjPTQ8MVQjPTYwPDEiCisjaWZkZWYgQ0xFQU5VUF93YXRjaGRvZworI3VuZGVmIENMRUFOVVBfd2F0Y2hkb2cKKyN1bmRlZiBGT1Jfd2F0Y2hkb2cKKyN1bmRlZiBGTEFHX1QKKyN1bmRlZiBGTEFHX3QKKyN1bmRlZiBGTEFHX0YKKyNlbmRpZgorCisvLyB3YyBMY213bCBMY213bAorI3VuZGVmIE9QVFNUUl93YworI2RlZmluZSBPUFRTVFJfd2MgIkxjbXdsIgorI2lmZGVmIENMRUFOVVBfd2MKKyN1bmRlZiBDTEVBTlVQX3djCisjdW5kZWYgRk9SX3djCisjdW5kZWYgRkxBR19sCisjdW5kZWYgRkxBR193CisjdW5kZWYgRkxBR19tCisjdW5kZWYgRkxBR19jCisjdW5kZWYgRkxBR19MCisjZW5kaWYKKworLy8gd2dldCAgIDwxPjEobWF4LXJlZGlyZWN0KSM8MD0yMGQoZGVidWcpTyhvdXRwdXQtZG9jdW1lbnQpOnAocG9zdC1kYXRhKToKKyN1bmRlZiBPUFRTVFJfd2dldAorI2RlZmluZSBPUFRTVFJfd2dldCAiPDE+MShtYXgtcmVkaXJlY3QpIzwwPTIwZChkZWJ1ZylPKG91dHB1dC1kb2N1bWVudCk6cChwb3N0LWRhdGEpOiIKKyNpZmRlZiBDTEVBTlVQX3dnZXQKKyN1bmRlZiBDTEVBTlVQX3dnZXQKKyN1bmRlZiBGT1Jfd2dldAorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfTworI3VuZGVmIEZMQUdfZAorI3VuZGVmIEZMQUdfbWF4X3JlZGlyZWN0CisjZW5kaWYKKworLy8gd2hpY2ggPDFhIDwxYQorI3VuZGVmIE9QVFNUUl93aGljaAorI2RlZmluZSBPUFRTVFJfd2hpY2ggIjwxYSIKKyNpZmRlZiBDTEVBTlVQX3doaWNoCisjdW5kZWYgQ0xFQU5VUF93aGljaAorI3VuZGVmIEZPUl93aGljaAorI3VuZGVmIEZMQUdfYQorI2VuZGlmCisKKy8vIHdobyAgIGEKKyN1bmRlZiBPUFRTVFJfd2hvCisjZGVmaW5lIE9QVFNUUl93aG8gImEiCisjaWZkZWYgQ0xFQU5VUF93aG8KKyN1bmRlZiBDTEVBTlVQX3dobworI3VuZGVmIEZPUl93aG8KKyN1bmRlZiBGTEFHX2EKKyNlbmRpZgorCisvLyB4YXJncyBeRTpQIzwwKG51bGwpPTFvcHRyKG5vLXJ1bi1pZi1lbXB0eSluIzwxKG1heC1hcmdzKXMjMFshMEVdIF5FOlAjPDAobnVsbCk9MW9wdHIobm8tcnVuLWlmLWVtcHR5KW4jPDEobWF4LWFyZ3MpcyMwWyEwRV0KKyN1bmRlZiBPUFRTVFJfeGFyZ3MKKyNkZWZpbmUgT1BUU1RSX3hhcmdzICJeRTpQIzwwKG51bGwpPTFvcHRyKG5vLXJ1bi1pZi1lbXB0eSluIzwxKG1heC1hcmdzKXMjMFshMEVdIgorI2lmZGVmIENMRUFOVVBfeGFyZ3MKKyN1bmRlZiBDTEVBTlVQX3hhcmdzCisjdW5kZWYgRk9SX3hhcmdzCisjdW5kZWYgRkxBR18wCisjdW5kZWYgRkxBR19zCisjdW5kZWYgRkxBR19uCisjdW5kZWYgRkxBR19yCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19wCisjdW5kZWYgRkxBR19vCisjdW5kZWYgRkxBR19QCisjdW5kZWYgRkxBR19FCisjZW5kaWYKKworLy8geHhkID4xYyM8MD4yNTZsI28jZyM8MD0yZWlwcnMjWyFyc11bIXJlXSA+MWMjPDA+MjU2bCNvI2cjPDA9MmVpcHJzI1shcnNdWyFyZV0KKyN1bmRlZiBPUFRTVFJfeHhkCisjZGVmaW5lIE9QVFNUUl94eGQgIj4xYyM8MD4yNTZsI28jZyM8MD0yZWlwcnMjWyFyc11bIXJlXSIKKyNpZmRlZiBDTEVBTlVQX3h4ZAorI3VuZGVmIENMRUFOVVBfeHhkCisjdW5kZWYgRk9SX3h4ZAorI3VuZGVmIEZMQUdfcworI3VuZGVmIEZMQUdfcgorI3VuZGVmIEZMQUdfcAorI3VuZGVmIEZMQUdfaQorI3VuZGVmIEZMQUdfZQorI3VuZGVmIEZMQUdfZworI3VuZGVmIEZMQUdfbworI3VuZGVmIEZMQUdfbAorI3VuZGVmIEZMQUdfYworI2VuZGlmCisKKy8vIHh6Y2F0ICAgIAorI3VuZGVmIE9QVFNUUl94emNhdAorI2RlZmluZSBPUFRTVFJfeHpjYXQgMAorI2lmZGVmIENMRUFOVVBfeHpjYXQKKyN1bmRlZiBDTEVBTlVQX3h6Y2F0CisjdW5kZWYgRk9SX3h6Y2F0CisjZW5kaWYKKworLy8geWVzICAgIAorI3VuZGVmIE9QVFNUUl95ZXMKKyNkZWZpbmUgT1BUU1RSX3llcyAwCisjaWZkZWYgQ0xFQU5VUF95ZXMKKyN1bmRlZiBDTEVBTlVQX3llcworI3VuZGVmIEZPUl95ZXMKKyNlbmRpZgorCisvLyB6Y2F0IGNkZmt0MTIzNDU2Nzg5Wy0xMjM0NTY3ODldIGNkZmt0MTIzNDU2Nzg5Wy0xMjM0NTY3ODldCisjdW5kZWYgT1BUU1RSX3pjYXQKKyNkZWZpbmUgT1BUU1RSX3pjYXQgImNkZmt0MTIzNDU2Nzg5Wy0xMjM0NTY3ODldIgorI2lmZGVmIENMRUFOVVBfemNhdAorI3VuZGVmIENMRUFOVVBfemNhdAorI3VuZGVmIEZPUl96Y2F0CisjdW5kZWYgRkxBR185CisjdW5kZWYgRkxBR184CisjdW5kZWYgRkxBR183CisjdW5kZWYgRkxBR182CisjdW5kZWYgRkxBR181CisjdW5kZWYgRkxBR180CisjdW5kZWYgRkxBR18zCisjdW5kZWYgRkxBR18yCisjdW5kZWYgRkxBR18xCisjdW5kZWYgRkxBR190CisjdW5kZWYgRkxBR19rCisjdW5kZWYgRkxBR19mCisjdW5kZWYgRkxBR19kCisjdW5kZWYgRkxBR19jCisjZW5kaWYKKworI2lmZGVmIEZPUl9hY3BpCisjZGVmaW5lIENMRUFOVVBfYWNwaQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmFjcGkKKyNlbmRpZgorI2RlZmluZSBGTEFHX1YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYXJjaAorI2RlZmluZSBDTEVBTlVQX2FyY2gKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5hcmNoCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2FycAorI2RlZmluZSBDTEVBTlVQX2FycAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmFycAorI2VuZGlmCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfQSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfRCAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDkpCisjZW5kaWYKKworI2lmZGVmIEZPUl9hcnBpbmcKKyNkZWZpbmUgQ0xFQU5VUF9hcnBpbmcKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5hcnBpbmcKKyNlbmRpZgorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX0QgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX1UgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX0kgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYXNjaWkKKyNkZWZpbmUgQ0xFQU5VUF9hc2NpaQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmFzY2lpCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Jhc2UzMgorI2RlZmluZSBDTEVBTlVQX2Jhc2UzMgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJhc2UzMgorI2VuZGlmCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9iYXNlNjQKKyNkZWZpbmUgQ0xFQU5VUF9iYXNlNjQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5iYXNlNjQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYmFzZW5hbWUKKyNkZWZpbmUgQ0xFQU5VUF9iYXNlbmFtZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJhc2VuYW1lCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zICgxTEw8PDApCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYmMKKyNkZWZpbmUgQ0xFQU5VUF9iYworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJjCisjZW5kaWYKKyNkZWZpbmUgRkxBR193IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Jsa2Rpc2NhcmQKKyNkZWZpbmUgQ0xFQU5VUF9ibGtkaXNjYXJkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuYmxrZGlzY2FyZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfeiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfbyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ibGtpZAorI2RlZmluZSBDTEVBTlVQX2Jsa2lkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuYmxraWQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX0wgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX1UgKEZPUkNFRF9GTEFHPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfYmxvY2tkZXYKKyNkZWZpbmUgQ0xFQU5VUF9ibG9ja2RldgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJsb2NrZGV2CisjZW5kaWYKKyNkZWZpbmUgRkxBR19yZXJlYWRwdCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZmx1c2hidWZzIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19zZXRyYSAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfZ2V0cmEgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2dldHNpemU2NCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfZ2V0c2l6ZSAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfZ2V0c3ogKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3NldGJzeiAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfZ2V0YnN6IChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19nZXRzcyAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfZ2V0cm8gKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19zZXRydyAoRk9SQ0VEX0ZMQUc8PDExKQorI2RlZmluZSBGTEFHX3NldHJvIChGT1JDRURfRkxBRzw8MTIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ib290Y2hhcnRkCisjZGVmaW5lIENMRUFOVVBfYm9vdGNoYXJ0ZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJvb3RjaGFydGQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfYnJjdGwKKyNkZWZpbmUgQ0xFQU5VUF9icmN0bAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmJyY3RsCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2J1bnppcDIKKyNkZWZpbmUgQ0xFQU5VUF9idW56aXAyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuYnVuemlwMgorI2VuZGlmCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfayAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl9iemNhdAorI2RlZmluZSBDTEVBTlVQX2J6Y2F0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuYnpjYXQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfY2FsCisjZGVmaW5lIENMRUFOVVBfY2FsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2FsCisjZW5kaWYKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NhdAorI2RlZmluZSBDTEVBTlVQX2NhdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNhdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfZSAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfdSAoMUxMPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY2QKKyNkZWZpbmUgQ0xFQU5VUF9jZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19QIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19MIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NoYXR0cgorI2RlZmluZSBDTEVBTlVQX2NoYXR0cgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNoYXR0cgorI2VuZGlmCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jaGNvbgorI2RlZmluZSBDTEVBTlVQX2NoY29uCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2hjb24KKyNlbmRpZgorI2RlZmluZSBGTEFHX1IgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY2hncnAKKyNkZWZpbmUgQ0xFQU5VUF9jaGdycAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNoZ3JwCisjZW5kaWYKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19SIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19IIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19MIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19QIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8NikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NobW9kCisjZGVmaW5lIENMRUFOVVBfY2htb2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jaG1vZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfUiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jaHJvb3QKKyNkZWZpbmUgQ0xFQU5VUF9jaHJvb3QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jaHJvb3QKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfY2hydAorI2RlZmluZSBDTEVBTlVQX2NocnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jaHJ0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19SIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8NykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Noc2gKKyNkZWZpbmUgQ0xFQU5VUF9jaHNoCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY2hzaAorI2VuZGlmCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jaHZ0CisjZGVmaW5lIENMRUFOVVBfY2h2dAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNodnQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfY2tzdW0KKyNkZWZpbmUgQ0xFQU5VUF9ja3N1bQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNrc3VtCisjZW5kaWYKKyNkZWZpbmUgRkxBR19OIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19MIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19QIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19JIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19IIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NsZWFyCisjZGVmaW5lIENMRUFOVVBfY2xlYXIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jbGVhcgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9jbXAKKyNkZWZpbmUgQ0xFQU5VUF9jbXAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jbXAKKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY29tbQorI2RlZmluZSBDTEVBTlVQX2NvbW0KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jb21tCisjZW5kaWYKKyNkZWZpbmUgRkxBR18xICgxTEw8PDApCisjZGVmaW5lIEZMQUdfMiAoMUxMPDwxKQorI2RlZmluZSBGTEFHXzMgKDFMTDw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NvdW50CisjZGVmaW5lIENMRUFOVVBfY291bnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jb3VudAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9jcAorI2RlZmluZSBDTEVBTlVQX2NwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY3AKKyNlbmRpZgorI2RlZmluZSBGTEFHX1QgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19GICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3YgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19sICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2EgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX3UgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfciAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR19wICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX1AgKDFMTDw8MTQpCisjZGVmaW5lIEZMQUdfTCAoMUxMPDwxNSkKKyNkZWZpbmUgRkxBR19IICgxTEw8PDE2KQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MTcpCisjZGVmaW5lIEZMQUdfRCAoMUxMPDwxOCkKKyNkZWZpbmUgRkxBR19wcmVzZXJ2ZSAoMUxMPDwxOSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2NwaW8KKyNkZWZpbmUgQ0xFQU5VUF9jcGlvCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY3BpbworI2VuZGlmCisjZGVmaW5lIEZMQUdfbyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19GICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfSCAoMUxMPDw2KQorI2RlZmluZSBGTEFHX0wgKDFMTDw8NykKKyNkZWZpbmUgRkxBR191ICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDw5KQorI2RlZmluZSBGTEFHX20gKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfUiAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR19ub19wcmVzZXJ2ZV9vd25lciAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR19xdWlldCAoMUxMPDwxMykKKyNkZWZpbmUgRkxBR19yZW51bWJlcl9pbm9kZXMgKDFMTDw8MTQpCisjZGVmaW5lIEZMQUdfaWdub3JlX2Rldm5vICgxTEw8PDE1KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY3JjMzIKKyNkZWZpbmUgQ0xFQU5VUF9jcmMzMgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNyYzMyCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Nyb25kCisjZGVmaW5lIENMRUFOVVBfY3JvbmQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5jcm9uZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfTCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDYpCisjZW5kaWYKKworI2lmZGVmIEZPUl9jcm9udGFiCisjZGVmaW5lIENMRUFOVVBfY3JvbnRhYgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmNyb250YWIKKyNlbmRpZgorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2UgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfY3NwbGl0CisjZGVmaW5lIENMRUFOVVBfY3NwbGl0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuY3NwbGl0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19rIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2N1dAorI2RlZmluZSBDTEVBTlVQX2N1dAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmN1dAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX0QgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX08gKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19DICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDw2KQorI2RlZmluZSBGTEFHX2YgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19jICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfYiAoMUxMPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGF0ZQorI2RlZmluZSBDTEVBTlVQX2RhdGUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kYXRlCisjZW5kaWYKKyNkZWZpbmUgRkxBR191ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19JICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfRCAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2QgKDFMTDw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RkCisjZGVmaW5lIENMRUFOVVBfZGQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kZAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9kZWFsbG9jdnQKKyNkZWZpbmUgQ0xFQU5VUF9kZWFsbG9jdnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kZWFsbG9jdnQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGVjbGFyZQorI2RlZmluZSBDTEVBTlVQX2RlY2xhcmUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kZWNsYXJlCisjZW5kaWYKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19BIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8OCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RlbW9fbWFueV9vcHRpb25zCisjZGVmaW5lIENMRUFOVVBfZGVtb19tYW55X29wdGlvbnMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kZW1vX21hbnlfb3B0aW9ucworI2VuZGlmCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfZSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfZyAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfaiAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfayAoRk9SQ0VEX0ZMQUc8PDEwKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwxMSkKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8MTIpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDEzKQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwxNCkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MTUpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDE2KQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwxNykKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MTgpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDE5KQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDwyMCkKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MjEpCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDIyKQorI2RlZmluZSBGTEFHX3ggKEZPUkNFRF9GTEFHPDwyMykKKyNkZWZpbmUgRkxBR195IChGT1JDRURfRkxBRzw8MjQpCisjZGVmaW5lIEZMQUdfeiAoRk9SQ0VEX0ZMQUc8PDI1KQorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDwyNikKKyNkZWZpbmUgRkxBR19CIChGT1JDRURfRkxBRzw8MjcpCisjZGVmaW5lIEZMQUdfQyAoRk9SQ0VEX0ZMQUc8PDI4KQorI2RlZmluZSBGTEFHX0QgKEZPUkNFRF9GTEFHPDwyOSkKKyNkZWZpbmUgRkxBR19FIChGT1JDRURfRkxBRzw8MzApCisjZGVmaW5lIEZMQUdfRiAoRk9SQ0VEX0ZMQUc8PDMxKQorI2RlZmluZSBGTEFHX0cgKEZPUkNFRF9GTEFHPDwzMikKKyNkZWZpbmUgRkxBR19IIChGT1JDRURfRkxBRzw8MzMpCisjZGVmaW5lIEZMQUdfSSAoRk9SQ0VEX0ZMQUc8PDM0KQorI2RlZmluZSBGTEFHX0ogKEZPUkNFRF9GTEFHPDwzNSkKKyNkZWZpbmUgRkxBR19LIChGT1JDRURfRkxBRzw8MzYpCisjZGVmaW5lIEZMQUdfTCAoRk9SQ0VEX0ZMQUc8PDM3KQorI2RlZmluZSBGTEFHX00gKEZPUkNFRF9GTEFHPDwzOCkKKyNkZWZpbmUgRkxBR19OIChGT1JDRURfRkxBRzw8MzkpCisjZGVmaW5lIEZMQUdfTyAoRk9SQ0VEX0ZMQUc8PDQwKQorI2RlZmluZSBGTEFHX1AgKEZPUkNFRF9GTEFHPDw0MSkKKyNkZWZpbmUgRkxBR19RIChGT1JDRURfRkxBRzw8NDIpCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDQzKQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDw0NCkKKyNkZWZpbmUgRkxBR19UIChGT1JDRURfRkxBRzw8NDUpCisjZGVmaW5lIEZMQUdfVSAoRk9SQ0VEX0ZMQUc8PDQ2KQorI2RlZmluZSBGTEFHX1YgKEZPUkNFRF9GTEFHPDw0NykKKyNkZWZpbmUgRkxBR19XIChGT1JDRURfRkxBRzw8NDgpCisjZGVmaW5lIEZMQUdfWCAoRk9SQ0VEX0ZMQUc8PDQ5KQorI2RlZmluZSBGTEFHX1kgKEZPUkNFRF9GTEFHPDw1MCkKKyNkZWZpbmUgRkxBR19aIChGT1JDRURfRkxBRzw8NTEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9kZW1vX251bWJlcgorI2RlZmluZSBDTEVBTlVQX2RlbW9fbnVtYmVyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGVtb19udW1iZXIKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX00gKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX0QgKEZPUkNFRF9GTEFHPDw2KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGVtb19zY2Fua2V5CisjZGVmaW5lIENMRUFOVVBfZGVtb19zY2Fua2V5CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGVtb19zY2Fua2V5CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RlbW9fdXRmOHRvd2MKKyNkZWZpbmUgQ0xFQU5VUF9kZW1vX3V0Zjh0b3djCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGVtb191dGY4dG93YworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9kZXZtZW0KKyNkZWZpbmUgQ0xFQU5VUF9kZXZtZW0KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kZXZtZW0KKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGYKKyNkZWZpbmUgQ0xFQU5VUF9kZgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRmCisjZW5kaWYKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19rIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19QIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19IIChGT1JDRURfRkxBRzw8NikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RoY3AKKyNkZWZpbmUgQ0xFQU5VUF9kaGNwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGhjcAorI2VuZGlmCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfbyAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfQyAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfQiAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDEwKQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDwxMSkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MTIpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDEzKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxNCkKKyNkZWZpbmUgRkxBR19UIChGT1JDRURfRkxBRzw8MTUpCisjZGVmaW5lIEZMQUdfQSAoRk9SQ0VEX0ZMQUc8PDE2KQorI2RlZmluZSBGTEFHX08gKEZPUkNFRF9GTEFHPDwxNykKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MTgpCisjZGVmaW5lIEZMQUdfeCAoRk9SQ0VEX0ZMQUc8PDE5KQorI2RlZmluZSBGTEFHX0YgKEZPUkNFRF9GTEFHPDwyMCkKKyNkZWZpbmUgRkxBR19IIChGT1JDRURfRkxBRzw8MjEpCisjZGVmaW5lIEZMQUdfViAoRk9SQ0VEX0ZMQUc8PDIyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGhjcDYKKyNkZWZpbmUgQ0xFQU5VUF9kaGNwNgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmRoY3A2CisjZW5kaWYKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19SIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19pIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfVCAoRk9SQ0VEX0ZMQUc8PDExKQorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDwxMikKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MTMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9kaGNwZAorI2RlZmluZSBDTEVBTlVQX2RoY3BkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGhjcGQKKyNlbmRpZgorI2RlZmluZSBGTEFHXzYgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHXzQgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX1AgKEZPUkNFRF9GTEFHPDw1KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZGlmZgorI2RlZmluZSBDTEVBTlVQX2RpZmYKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kaWZmCisjZW5kaWYKKyNkZWZpbmUgRkxBR19VICgxTEw8PDApCisjZGVmaW5lIEZMQUdfciAoMUxMPDwxKQorI2RlZmluZSBGTEFHX04gKDFMTDw8MikKKyNkZWZpbmUgRkxBR19MICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX1MgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19hICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfcSAoMUxMPDw3KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19UICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR193ICgxTEw8PDExKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfdSAoMUxMPDwxMykKKyNkZWZpbmUgRkxBR19iICgxTEw8PDE0KQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MTUpCisjZGVmaW5lIEZMQUdfQiAoMUxMPDwxNikKKyNkZWZpbmUgRkxBR19zdHJpcF90cmFpbGluZ19jciAoMUxMPDwxNykKKyNkZWZpbmUgRkxBR19jb2xvciAoMUxMPDwxOCkKKyNkZWZpbmUgRkxBR19uZXdfbGluZV9mb3JtYXQgKDFMTDw8MTkpCisjZGVmaW5lIEZMQUdfb2xkX2xpbmVfZm9ybWF0ICgxTEw8PDIwKQorI2RlZmluZSBGTEFHX3VuY2hhbmdlZF9saW5lX2Zvcm1hdCAoMUxMPDwyMSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2Rpcm5hbWUKKyNkZWZpbmUgQ0xFQU5VUF9kaXJuYW1lCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZGlybmFtZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9kbWVzZworI2RlZmluZSBDTEVBTlVQX2RtZXNnCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZG1lc2cKKyNlbmRpZgorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX1QgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX0MgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDw4KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZG5zZG9tYWlubmFtZQorI2RlZmluZSBDTEVBTlVQX2Ruc2RvbWFpbm5hbWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kbnNkb21haW5uYW1lCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2RvczJ1bml4CisjZGVmaW5lIENMRUFOVVBfZG9zMnVuaXgKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5kb3MydW5peAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9kdQorI2RlZmluZSBDTEVBTlVQX2R1CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZHUKKyNlbmRpZgorI2RlZmluZSBGTEFHX2IgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR194ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX0wgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19LICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfayAoMUxMPDw1KQorI2RlZmluZSBGTEFHX0ggKDFMTDw8NikKKyNkZWZpbmUgRkxBR19hICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2wgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX2ggKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwxMikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2R1bXBsZWFzZXMKKyNkZWZpbmUgQ0xFQU5VUF9kdW1wbGVhc2VzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZHVtcGxlYXNlcworI2VuZGlmCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9lY2hvCisjZGVmaW5lIENMRUFOVVBfZWNobworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmVjaG8KKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19lICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfRSAoMUxMPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZWplY3QKKyNkZWZpbmUgQ0xFQU5VUF9lamVjdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmVqZWN0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19UIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2VudgorI2RlZmluZSBDTEVBTlVQX2VudgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmVudgorI2VuZGlmCisjZGVmaW5lIEZMQUdfdSAoMUxMPDwwKQorI2RlZmluZSBGTEFHXzAgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19pICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfZSAoMUxMPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZXZhbAorI2RlZmluZSBDTEVBTlVQX2V2YWwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ldmFsCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2V4ZWMKKyNkZWZpbmUgQ0xFQU5VUF9leGVjCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZXhlYworI2VuZGlmCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9leGl0CisjZGVmaW5lIENMRUFOVVBfZXhpdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmV4aXQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZXhwYW5kCisjZGVmaW5lIENMRUFOVVBfZXhwYW5kCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZXhwYW5kCisjZW5kaWYKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2V4cG9ydAorI2RlZmluZSBDTEVBTlVQX2V4cG9ydAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmV4cG9ydAorI2VuZGlmCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9leHByCisjZGVmaW5lIENMRUFOVVBfZXhwcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmV4cHIKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZmFjdG9yCisjZGVmaW5lIENMRUFOVVBfZmFjdG9yCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZmFjdG9yCisjZW5kaWYKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZhbGxvY2F0ZQorI2RlZmluZSBDTEVBTlVQX2ZhbGxvY2F0ZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZhbGxvY2F0ZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfbyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9mYWxzZQorI2RlZmluZSBDTEVBTlVQX2ZhbHNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZmFsc2UKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZmRpc2sKKyNkZWZpbmUgQ0xFQU5VUF9mZGlzaworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZkaXNrCisjZW5kaWYKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19IIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19DIChGT1JDRURfRkxBRzw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZpbGUKKyNkZWZpbmUgQ0xFQU5VUF9maWxlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZmlsZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX0wgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19oICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfYiAoMUxMPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZmluZAorI2RlZmluZSBDTEVBTlVQX2ZpbmQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5maW5kCisjZW5kaWYKKyNkZWZpbmUgRkxBR19MICgxTEw8PDApCisjZGVmaW5lIEZMQUdfSCAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZmxvY2sKKyNkZWZpbmUgQ0xFQU5VUF9mbG9jaworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZsb2NrCisjZW5kaWYKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZtdAorI2RlZmluZSBDTEVBTlVQX2ZtdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZtdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9mb2xkCisjZGVmaW5lIENMRUFOVVBfZm9sZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZvbGQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZnJlZQorI2RlZmluZSBDTEVBTlVQX2ZyZWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5mcmVlCisjZW5kaWYKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19rIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19nIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZyZWVyYW1kaXNrCisjZGVmaW5lIENMRUFOVVBfZnJlZXJhbWRpc2sKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5mcmVlcmFtZGlzaworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9mc2NrCisjZGVmaW5lIENMRUFOVVBfZnNjaworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZzY2sKKyNlbmRpZgorI2RlZmluZSBGTEFHX0MgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX1YgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX1QgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX1IgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX1AgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX04gKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDw4KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZnNmcmVlemUKKyNkZWZpbmUgQ0xFQU5VUF9mc2ZyZWV6ZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZzZnJlZXplCisjZW5kaWYKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2ZzdHlwZQorI2RlZmluZSBDTEVBTlVQX2ZzdHlwZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmZzdHlwZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9mc3luYworI2RlZmluZSBDTEVBTlVQX2ZzeW5jCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZnN5bmMKKyNlbmRpZgorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZnRwZ2V0CisjZGVmaW5lIENMRUFOVVBfZnRwZ2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZnRwZ2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19EIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19NIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19MIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19nIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDExKQorI2RlZmluZSBGTEFHX1AgKEZPUkNFRF9GTEFHPDwxMikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dldGNvbmYKKyNkZWZpbmUgQ0xFQU5VUF9nZXRjb25mCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2V0Y29uZgorI2VuZGlmCisjZGVmaW5lIEZMQUdfbCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2EgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dldGVuZm9yY2UKKyNkZWZpbmUgQ0xFQU5VUF9nZXRlbmZvcmNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2V0ZW5mb3JjZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9nZXRmYXR0cgorI2RlZmluZSBDTEVBTlVQX2dldGZhdHRyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2V0ZmF0dHIKKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX29ubHlfdmFsdWVzIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dldG9wdAorI2RlZmluZSBDTEVBTlVQX2dldG9wdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdldG9wdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdSAoMUxMPDwwKQorI2RlZmluZSBGTEFHX1QgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19sICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfbyAoMUxMPDwzKQorI2RlZmluZSBGTEFHX24gKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19hICgxTEw8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9nZXR0eQorI2RlZmluZSBDTEVBTlVQX2dldHR5CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2V0dHkKKyNlbmRpZgorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX0wgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX0kgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX0ggKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxMCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dpdGNoZWNrb3V0CisjZGVmaW5lIENMRUFOVVBfZ2l0Y2hlY2tvdXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5naXRjaGVja291dAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9naXRjbG9uZQorI2RlZmluZSBDTEVBTlVQX2dpdGNsb25lCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2l0Y2xvbmUKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ2l0ZmV0Y2gKKyNkZWZpbmUgQ0xFQU5VUF9naXRmZXRjaAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdpdGZldGNoCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dpdGluaXQKKyNkZWZpbmUgQ0xFQU5VUF9naXRpbml0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ2l0aW5pdAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9naXRyZW1vdGUKKyNkZWZpbmUgQ0xFQU5VUF9naXRyZW1vdGUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5naXRyZW1vdGUKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ3Bpb2RldGVjdAorI2RlZmluZSBDTEVBTlVQX2dwaW9kZXRlY3QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ncGlvZGV0ZWN0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dwaW9maW5kCisjZGVmaW5lIENMRUFOVVBfZ3Bpb2ZpbmQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ncGlvZmluZAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9ncGlvZ2V0CisjZGVmaW5lIENMRUFOVVBfZ3Bpb2dldAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdwaW9nZXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ3Bpb2luZm8KKyNkZWZpbmUgQ0xFQU5VUF9ncGlvaW5mbworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdwaW9pbmZvCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dwaW9zZXQKKyNkZWZpbmUgQ0xFQU5VUF9ncGlvc2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ3Bpb3NldAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9ncmVwCisjZGVmaW5lIENMRUFOVVBfZ3JlcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmdyZXAKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ggKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19tICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfQSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX0IgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19DICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw1KQorI2RlZmluZSBGTEFHX2UgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19xICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDw4KQorI2RlZmluZSBGTEFHX0wgKDFMTDw8OSkKKyNkZWZpbmUgRkxBR19jICgxTEw8PDEwKQorI2RlZmluZSBGTEFHX3cgKDFMTDw8MTEpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwxMikKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEzKQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MTQpCisjZGVmaW5lIEZMQUdfciAoMUxMPDwxNSkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDE2KQorI2RlZmluZSBGTEFHX24gKDFMTDw8MTcpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwxOCkKKyNkZWZpbmUgRkxBR19oICgxTEw8PDE5KQorI2RlZmluZSBGTEFHX2IgKDFMTDw8MjApCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwyMSkKKyNkZWZpbmUgRkxBR19JICgxTEw8PDIyKQorI2RlZmluZSBGTEFHX0ggKDFMTDw8MjMpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDwyNCkKKyNkZWZpbmUgRkxBR19FICgxTEw8PDI1KQorI2RlZmluZSBGTEFHX3ogKDFMTDw8MjYpCisjZGVmaW5lIEZMQUdfWiAoMUxMPDwyNykKKyNkZWZpbmUgRkxBR19NICgxTEw8PDI4KQorI2RlZmluZSBGTEFHX1MgKDFMTDw8MjkpCisjZGVmaW5lIEZMQUdfZXhjbHVkZV9kaXIgKDFMTDw8MzApCisjZGVmaW5lIEZMQUdfY29sb3IgKDFMTDw8MzEpCisjZGVmaW5lIEZMQUdfbGluZV9idWZmZXJlZCAoMUxMPDwzMikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2dyb3VwYWRkCisjZGVmaW5lIENMRUFOVVBfZ3JvdXBhZGQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ncm91cGFkZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ncm91cGRlbAorI2RlZmluZSBDTEVBTlVQX2dyb3VwZGVsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ3JvdXBkZWwKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ3JvdXBzCisjZGVmaW5lIENMRUFOVVBfZ3JvdXBzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuZ3JvdXBzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2d1bnppcAorI2RlZmluZSBDTEVBTlVQX2d1bnppcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmd1bnppcAorI2VuZGlmCisjZGVmaW5lIEZMQUdfOSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfOCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfNyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfNiAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfNSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfNCAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfMyAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfMiAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfMSAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfayAoRk9SQ0VEX0ZMQUc8PDEwKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwxMSkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MTIpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDEzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfZ3ppcAorI2RlZmluZSBDTEVBTlVQX2d6aXAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5nemlwCisjZW5kaWYKKyNkZWZpbmUgRkxBR185ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfOCAoMUxMPDwxKQorI2RlZmluZSBGTEFHXzcgKDFMTDw8MikKKyNkZWZpbmUgRkxBR182ICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfNSAoMUxMPDw0KQorI2RlZmluZSBGTEFHXzQgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR18zICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfMiAoMUxMPDw3KQorI2RlZmluZSBGTEFHXzEgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfayAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDExKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwxMykKKyNkZWZpbmUgRkxBR19uICgxTEw8PDE0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaGVhZAorI2RlZmluZSBDTEVBTlVQX2hlYWQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5oZWFkCisjZW5kaWYKKyNkZWZpbmUgRkxBR192ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcSAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19uICgxTEw8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9oZWxsbworI2RlZmluZSBDTEVBTlVQX2hlbGxvCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaGVsbG8KKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfaGVscAorI2RlZmluZSBDTEVBTlVQX2hlbHAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5oZWxwCisjZW5kaWYKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2hleGR1bXAKKyNkZWZpbmUgQ0xFQU5VUF9oZXhkdW1wCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaGV4ZHVtcAorI2VuZGlmCisjZGVmaW5lIEZMQUdfeCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfbyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfQyAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl9oZXhlZGl0CisjZGVmaW5lIENMRUFOVVBfaGV4ZWRpdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmhleGVkaXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaG9zdAorI2RlZmluZSBDTEVBTlVQX2hvc3QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ob3N0CisjZW5kaWYKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2hvc3RpZAorI2RlZmluZSBDTEVBTlVQX2hvc3RpZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmhvc3RpZAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9ob3N0bmFtZQorI2RlZmluZSBDTEVBTlVQX2hvc3RuYW1lCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaG9zdG5hbWUKKyNlbmRpZgorI2RlZmluZSBGTEFHX0YgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19iICgxTEw8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl9odHRwZAorI2RlZmluZSBDTEVBTlVQX2h0dHBkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaHR0cGQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaHdjbG9jaworI2RlZmluZSBDTEVBTlVQX2h3Y2xvY2sKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5od2Nsb2NrCisjZW5kaWYKKyNkZWZpbmUgRkxBR193IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19mYXN0IChGT1JDRURfRkxBRzw8NykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2kyY2RldGVjdAorI2RlZmluZSBDTEVBTlVQX2kyY2RldGVjdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmkyY2RldGVjdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfeSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfRiAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9pMmNkdW1wCisjZGVmaW5lIENMRUFOVVBfaTJjZHVtcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmkyY2R1bXAKKyNlbmRpZgorI2RlZmluZSBGTEFHX3kgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaTJjZ2V0CisjZGVmaW5lIENMRUFOVVBfaTJjZ2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaTJjZ2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR195IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2kyY3NldAorI2RlZmluZSBDTEVBTlVQX2kyY3NldAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmkyY3NldAorI2VuZGlmCisjZGVmaW5lIEZMQUdfeSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9pMmN0cmFuc2ZlcgorI2RlZmluZSBDTEVBTlVQX2kyY3RyYW5zZmVyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaTJjdHJhbnNmZXIKKyNlbmRpZgorI2RlZmluZSBGTEFHX3kgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaWNvbnYKKyNkZWZpbmUgQ0xFQU5VUF9pY29udgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmljb252CisjZW5kaWYKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX2lkCisjZGVmaW5lIENMRUFOVVBfaWQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5pZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdSAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19nICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfRyAoMUxMPDwzKQorI2RlZmluZSBGTEFHX24gKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19aIChGT1JDRURfRkxBRzw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2lmY29uZmlnCisjZGVmaW5lIENMRUFOVVBfaWZjb25maWcKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5pZmNvbmZpZworI2VuZGlmCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9pbml0CisjZGVmaW5lIENMRUFOVVBfaW5pdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmluaXQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfaW5vdGlmeWQKKyNkZWZpbmUgQ0xFQU5VUF9pbm90aWZ5ZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmlub3RpZnlkCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2luc21vZAorI2RlZmluZSBDTEVBTlVQX2luc21vZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmluc21vZAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9pbnN0YWxsCisjZGVmaW5lIENMRUFOVVBfaW5zdGFsbAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmluc3RhbGwKKyNlbmRpZgorI2RlZmluZSBGTEFHX2cgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MykKKyNkZWZpbmUgRkxBR192ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3AgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19EICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDw4KQorI2RlZmluZSBGTEFHX2MgKDFMTDw8OSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2lvbmljZQorI2RlZmluZSBDTEVBTlVQX2lvbmljZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmlvbmljZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9pb3JlbmljZQorI2RlZmluZSBDTEVBTlVQX2lvcmVuaWNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuaW9yZW5pY2UKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfaW90b3AKKyNkZWZpbmUgQ0xFQU5VUF9pb3RvcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmlvdG9wCisjZW5kaWYKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19rIChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR19IIChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfTyAoRk9SQ0VEX0ZMQUc8PDExKQorI2RlZmluZSBGTEFHX0sgKEZPUkNFRF9GTEFHPDwxMikKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MTMpCisjZGVmaW5lIEZMQUdfQSAoRk9SQ0VEX0ZMQUc8PDE0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfaXAKKyNkZWZpbmUgQ0xFQU5VUF9pcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmlwCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2lwY3JtCisjZGVmaW5lIENMRUFOVVBfaXBjcm0KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5pcGNybQorI2VuZGlmCisjZGVmaW5lIEZMQUdfUSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfTSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9pcGNzCisjZGVmaW5lIENMRUFOVVBfaXBjcworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmlwY3MKKyNlbmRpZgorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfam9icworI2RlZmluZSBDTEVBTlVQX2pvYnMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5qb2JzCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2tpbGwKKyNkZWZpbmUgQ0xFQU5VUF9raWxsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMua2lsbAorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9raWxsYWxsCisjZGVmaW5lIENMRUFOVVBfa2lsbGFsbAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmtpbGxhbGwKKyNlbmRpZgorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw1KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfa2lsbGFsbDUKKyNkZWZpbmUgQ0xFQU5VUF9raWxsYWxsNQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmtpbGxhbGw1CisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2tsb2dkCisjZGVmaW5lIENMRUFOVVBfa2xvZ2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5rbG9nZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9sYXN0CisjZGVmaW5lIENMRUFOVVBfbGFzdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxhc3QKKyNlbmRpZgorI2RlZmluZSBGTEFHX1cgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbGluaworI2RlZmluZSBDTEVBTlVQX2xpbmsKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5saW5rCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xpbnV4MzIKKyNkZWZpbmUgQ0xFQU5VUF9saW51eDMyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubGludXgzMgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9sbgorI2RlZmluZSBDTEVBTlVQX2xuCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubG4KKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19UICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3IgKDFMTDw8NikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xvYWRfcG9saWN5CisjZGVmaW5lIENMRUFOVVBfbG9hZF9wb2xpY3kKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sb2FkX3BvbGljeQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9sb2NhbAorI2RlZmluZSBDTEVBTlVQX2xvY2FsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubG9jYWwKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfbG9nCisjZGVmaW5lIENMRUFOVVBfbG9nCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubG9nCisjZW5kaWYKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xvZ2dlcgorI2RlZmluZSBDTEVBTlVQX2xvZ2dlcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxvZ2dlcgorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9sb2dpbgorI2RlZmluZSBDTEVBTlVQX2xvZ2luCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubG9naW4KKyNlbmRpZgorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbG9nbmFtZQorI2RlZmluZSBDTEVBTlVQX2xvZ25hbWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sb2duYW1lCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xvZ3BhdGgKKyNkZWZpbmUgQ0xFQU5VUF9sb2dwYXRoCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubG9ncGF0aAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9sb3NldHVwCisjZGVmaW5lIENMRUFOVVBfbG9zZXR1cAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxvc2V0dXAKKyNlbmRpZgorI2RlZmluZSBGTEFHX0QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2ogKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbHMKKyNkZWZpbmUgQ0xFQU5VUF9scworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxzCisjZW5kaWYKKyNkZWZpbmUgRkxBR18xICgxTEw8PDApCisjZGVmaW5lIEZMQUdfeCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3cgKDFMTDw8MikKKyNkZWZpbmUgRkxBR191ICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDw0KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfcSAoMUxMPDw3KQorI2RlZmluZSBGTEFHX3AgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19uICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR19sICgxTEw8PDExKQorI2RlZmluZSBGTEFHX2sgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwxMykKKyNkZWZpbmUgRkxBR19oICgxTEw8PDE0KQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MTUpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwxNikKKyNkZWZpbmUgRkxBR19jICgxTEw8PDE3KQorI2RlZmluZSBGTEFHX2IgKDFMTDw8MTgpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwxOSkKKyNkZWZpbmUgRkxBR19YICgxTEw8PDIwKQorI2RlZmluZSBGTEFHX1UgKDFMTDw8MjEpCisjZGVmaW5lIEZMQUdfUyAoMUxMPDwyMikKKyNkZWZpbmUgRkxBR19SICgxTEw8PDIzKQorI2RlZmluZSBGTEFHX04gKDFMTDw8MjQpCisjZGVmaW5lIEZMQUdfTCAoMUxMPDwyNSkKKyNkZWZpbmUgRkxBR19IICgxTEw8PDI2KQorI2RlZmluZSBGTEFHX0YgKDFMTDw8MjcpCisjZGVmaW5lIEZMQUdfQyAoMUxMPDwyOCkKKyNkZWZpbmUgRkxBR19BICgxTEw8PDI5KQorI2RlZmluZSBGTEFHX28gKDFMTDw8MzApCisjZGVmaW5lIEZMQUdfZyAoMUxMPDwzMSkKKyNkZWZpbmUgRkxBR19aICgxTEw8PDMyKQorI2RlZmluZSBGTEFHX1g3RSAoMUxMPDwzMykKKyNkZWZpbmUgRkxBR19YMjEgKDFMTDw8MzQpCisjZGVmaW5lIEZMQUdfWDdGICgxTEw8PDM1KQorI2RlZmluZSBGTEFHX3Nob3dfY29udHJvbF9jaGFycyAoMUxMPDwzNikKKyNkZWZpbmUgRkxBR19mdWxsX3RpbWUgKDFMTDw8MzcpCisjZGVmaW5lIEZMQUdfY29sb3IgKDFMTDw8MzgpCisjZGVmaW5lIEZMQUdfc29ydCAoMUxMPDwzOSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xzYXR0cgorI2RlZmluZSBDTEVBTlVQX2xzYXR0cgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLmxzYXR0cgorI2VuZGlmCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9sc21vZAorI2RlZmluZSBDTEVBTlVQX2xzbW9kCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubHNtb2QKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfbHNvZgorI2RlZmluZSBDTEVBTlVQX2xzb2YKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sc29mCisjZW5kaWYKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX2xzcGNpCisjZGVmaW5lIENMRUFOVVBfbHNwY2kKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5sc3BjaQorI2VuZGlmCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfeCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfayAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfZSAoRk9SQ0VEX0ZMQUc8PDUpCisjZW5kaWYKKworI2lmZGVmIEZPUl9sc3VzYgorI2RlZmluZSBDTEVBTlVQX2xzdXNiCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubHN1c2IKKyNlbmRpZgorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWFrZWRldnMKKyNkZWZpbmUgQ0xFQU5VUF9tYWtlZGV2cworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1ha2VkZXZzCisjZW5kaWYKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX21hbgorI2RlZmluZSBDTEVBTlVQX21hbgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1hbgorI2VuZGlmCisjZGVmaW5lIEZMQUdfTSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfayAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9tY29va2llCisjZGVmaW5lIENMRUFOVVBfbWNvb2tpZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1jb29raWUKKyNlbmRpZgorI2RlZmluZSBGTEFHX1YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWQ1c3VtCisjZGVmaW5lIENMRUFOVVBfbWQ1c3VtCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWQ1c3VtCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zICgxTEw8PDApCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2IgKDFMTDw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX21kZXYKKyNkZWZpbmUgQ0xFQU5VUF9tZGV2CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWRldgorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9tZW1lYXRlcgorI2RlZmluZSBDTEVBTlVQX21lbWVhdGVyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWVtZWF0ZXIKKyNlbmRpZgorI2RlZmluZSBGTEFHX00gKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWljcm9jb20KKyNkZWZpbmUgQ0xFQU5VUF9taWNyb2NvbQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1pY3JvY29tCisjZW5kaWYKKyNkZWZpbmUgRkxBR19YICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWl4CisjZGVmaW5lIENMRUFOVVBfbWl4CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWl4CisjZW5kaWYKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX21rZGlyCisjZGVmaW5lIENMRUFOVVBfbWtkaXIKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ta2RpcgorI2VuZGlmCisjZGVmaW5lIEZMQUdfbSAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3AgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfWiAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ta2UyZnMKKyNkZWZpbmUgQ0xFQU5VUF9ta2UyZnMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ta2UyZnMKKyNlbmRpZgorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX04gKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX0YgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDw3KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWtmaWZvCisjZGVmaW5lIENMRUFOVVBfbWtmaWZvCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWtmaWZvCisjZW5kaWYKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19aIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX21rbm9kCisjZGVmaW5lIENMRUFOVVBfbWtub2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ta25vZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfWiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ta3Bhc3N3ZAorI2RlZmluZSBDTEVBTlVQX21rcGFzc3dkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWtwYXNzd2QKKyNlbmRpZgorI2RlZmluZSBGTEFHX1AgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbWtzd2FwCisjZGVmaW5lIENMRUFOVVBfbWtzd2FwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubWtzd2FwCisjZW5kaWYKKyNkZWZpbmUgRkxBR19MIChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX21rdGVtcAorI2RlZmluZSBDTEVBTlVQX21rdGVtcAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1rdGVtcAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3AgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfcSAoMUxMPDwzKQorI2RlZmluZSBGTEFHX3UgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR190bXBkaXIgKDFMTDw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX21vZGluZm8KKyNkZWZpbmUgQ0xFQU5VUF9tb2RpbmZvCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubW9kaW5mbworI2VuZGlmCisjZGVmaW5lIEZMQUdfMCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfRiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfayAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9tb2Rwcm9iZQorI2RlZmluZSBDTEVBTlVQX21vZHByb2JlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubW9kcHJvYmUKKyNlbmRpZgorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX0QgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDw4KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbW9yZQorI2RlZmluZSBDTEVBTlVQX21vcmUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tb3JlCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX21vdW50CisjZGVmaW5lIENMRUFOVVBfbW91bnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5tb3VudAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfTyAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDkpCisjZW5kaWYKKworI2lmZGVmIEZPUl9tb3VudHBvaW50CisjZGVmaW5lIENMRUFOVVBfbW91bnRwb2ludAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm1vdW50cG9pbnQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ggKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbXYKKyNkZWZpbmUgQ0xFQU5VUF9tdgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm12CisjZW5kaWYKKyNkZWZpbmUgRkxBR19UICgxTEw8PDApCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19mICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfRiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX24gKDFMTDw8NSkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfeCAoMUxMPDw3KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfbmJkX2NsaWVudAorI2RlZmluZSBDTEVBTlVQX25iZF9jbGllbnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5uYmRfY2xpZW50CisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX25iZF9zZXJ2ZXIKKyNkZWZpbmUgQ0xFQU5VUF9uYmRfc2VydmVyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubmJkX3NlcnZlcgorI2VuZGlmCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9uZXRjYXQKKyNkZWZpbmUgQ0xFQU5VUF9uZXRjYXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5uZXRjYXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ogKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX1UgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHXzYgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHXzQgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX08gKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfVyAoRk9SQ0VEX0ZMQUc8PDEyKQorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDwxMykKKyNkZWZpbmUgRkxBR19MIChGT1JDRURfRkxBRzw8MTQpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDE1KQorI2RlZmluZSBGTEFHX0UgKEZPUkNFRF9GTEFHPDwxNikKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MTcpCisjZW5kaWYKKworI2lmZGVmIEZPUl9uZXRzdGF0CisjZGVmaW5lIENMRUFOVVBfbmV0c3RhdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm5ldHN0YXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2UgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3ggKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX1cgKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwxMCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX25pY2UKKyNkZWZpbmUgQ0xFQU5VUF9uaWNlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubmljZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9ubAorI2RlZmluZSBDTEVBTlVQX25sCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubmwKKyNlbmRpZgorI2RlZmluZSBGTEFHX0UgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2IgKDFMTDw8MykKKyNkZWZpbmUgRkxBR193ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3YgKDFMTDw8NikKKyNlbmRpZgorCisjaWZkZWYgRk9SX25vaHVwCisjZGVmaW5lIENMRUFOVVBfbm9odXAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ub2h1cAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9ucHJvYworI2RlZmluZSBDTEVBTlVQX25wcm9jCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMubnByb2MKKyNlbmRpZgorI2RlZmluZSBGTEFHX2FsbCAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl9uc2VudGVyCisjZGVmaW5lIENMRUFOVVBfbnNlbnRlcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm5zZW50ZXIKKyNlbmRpZgorI2RlZmluZSBGTEFHX1UgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX0MgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX0YgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfb2QKKyNkZWZpbmUgQ0xFQU5VUF9vZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm9kCisjZW5kaWYKKyNkZWZpbmUgRkxBR190ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfQSAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2IgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19jICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDw0KQorI2RlZmluZSBGTEFHX28gKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfeCAoMUxMPDw3KQorI2RlZmluZSBGTEFHX04gKDFMTDw8OCkKKyNkZWZpbmUgRkxBR193ICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR19qICgxTEw8PDExKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfb25laXQKKyNkZWZpbmUgQ0xFQU5VUF9vbmVpdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm9uZWl0CisjZW5kaWYKKyNkZWZpbmUgRkxBR18zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX29wZW52dAorI2RlZmluZSBDTEVBTlVQX29wZW52dAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLm9wZW52dAorI2VuZGlmCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wYXJ0cHJvYmUKKyNkZWZpbmUgQ0xFQU5VUF9wYXJ0cHJvYmUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5wYXJ0cHJvYmUKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfcGFzc3dkCisjZGVmaW5lIENMRUFOVVBfcGFzc3dkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucGFzc3dkCisjZW5kaWYKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Bhc3RlCisjZGVmaW5lIENMRUFOVVBfcGFzdGUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5wYXN0ZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3BhdGNoCisjZGVmaW5lIENMRUFOVVBfcGF0Y2gKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5wYXRjaAorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19pICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwzKQorI2RlZmluZSBGTEFHX3YgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDw2KQorI2RlZmluZSBGTEFHX3UgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19mICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfZyAoMUxMPDw5KQorI2RlZmluZSBGTEFHX0YgKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfZHJ5X3J1biAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR19ub19iYWNrdXBfaWZfbWlzbWF0Y2ggKDFMTDw8MTIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wZ3JlcAorI2RlZmluZSBDTEVBTlVQX3BncmVwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucGdyZXAKKyNlbmRpZgorI2RlZmluZSBGTEFHX0wgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3ggKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX0cgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX1AgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19VIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDEyKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwxMykKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MTQpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDE1KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcGlkb2YKKyNkZWZpbmUgQ0xFQU5VUF9waWRvZgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnBpZG9mCisjZW5kaWYKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3BpbmcKKyNkZWZpbmUgQ0xFQU5VUF9waW5nCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucGluZworI2VuZGlmCisjZGVmaW5lIEZMQUdfSSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfNiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfNCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfVyAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDEwKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwxMSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Bpdm90X3Jvb3QKKyNkZWZpbmUgQ0xFQU5VUF9waXZvdF9yb290CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucGl2b3Rfcm9vdAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9wa2lsbAorI2RlZmluZSBDTEVBTlVQX3BraWxsCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucGtpbGwKKyNlbmRpZgorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3ggKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX0cgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX1AgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19VIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDEyKQorI2RlZmluZSBGTEFHX1YgKEZPUkNFRF9GTEFHPDwxMykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3BtYXAKKyNkZWZpbmUgQ0xFQU5VUF9wbWFwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucG1hcAorI2VuZGlmCisjZGVmaW5lIEZMQUdfeCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wcmludGVudgorI2RlZmluZSBDTEVBTlVQX3ByaW50ZW52CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucHJpbnRlbnYKKyNlbmRpZgorI2RlZmluZSBGTEFHXzAgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX251bGwgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcHJpbnRmCisjZGVmaW5lIENMRUFOVVBfcHJpbnRmCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucHJpbnRmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3BzCisjZGVmaW5lIENMRUFOVVBfcHMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5wcworI2VuZGlmCisjZGVmaW5lIEZMQUdfWiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfRyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfZyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfVSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfVCAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfTyAoRk9SQ0VEX0ZMQUc8PDEwKQorI2RlZmluZSBGTEFHX28gKEZPUkNFRF9GTEFHPDwxMSkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MTIpCisjZGVmaW5lIEZMQUdfTSAoRk9SQ0VEX0ZMQUc8PDEzKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwxNCkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MTUpCisjZGVmaW5lIEZMQUdfZSAoRk9SQ0VEX0ZMQUc8PDE2KQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwxNykKKyNkZWZpbmUgRkxBR19BIChGT1JDRURfRkxBRzw8MTgpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDE5KQorI2RlZmluZSBGTEFHX1AgKEZPUkNFRF9GTEFHPDwyMCkKKyNkZWZpbmUgRkxBR19rIChGT1JDRURfRkxBRzw8MjEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wd2QKKyNkZWZpbmUgQ0xFQU5VUF9wd2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5wd2QKKyNlbmRpZgorI2RlZmluZSBGTEFHX1AgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19MICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9wd2R4CisjZGVmaW5lIENMRUFOVVBfcHdkeAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnB3ZHgKKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcHdnZW4KKyNkZWZpbmUgQ0xFQU5VUF9wd2dlbgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnB3Z2VuCisjZW5kaWYKKyNkZWZpbmUgRkxBR18wIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19BIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR18xIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19DIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19CIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR195IChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDExKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcmVhZGFoZWFkCisjZGVmaW5lIENMRUFOVVBfcmVhZGFoZWFkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucmVhZGFoZWFkCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3JlYWRlbGYKKyNkZWZpbmUgQ0xFQU5VUF9yZWFkZWxmCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucmVhZGVsZgorI2VuZGlmCisjZGVmaW5lIEZMQUdfeCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfVyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfZSAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDEwKQorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDwxMSkKKyNkZWZpbmUgRkxBR19keW5fc3ltcyAoRk9SQ0VEX0ZMQUc8PDEyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcmVhZGxpbmsKKyNkZWZpbmUgQ0xFQU5VUF9yZWFkbGluaworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJlYWRsaW5rCisjZW5kaWYKKyNkZWZpbmUgRkxBR196ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcSAoMUxMPDwxKQorI2RlZmluZSBGTEFHX20gKDFMTDw8MikKKyNkZWZpbmUgRkxBR19lICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX24gKDFMTDw8NSkKKyNkZWZpbmUgRkxBR192ICgxTEw8PDYpCisjZW5kaWYKKworI2lmZGVmIEZPUl9yZWFscGF0aAorI2RlZmluZSBDTEVBTlVQX3JlYWxwYXRoCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucmVhbHBhdGgKKyNlbmRpZgorI2RlZmluZSBGTEFHX3ogKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19xICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2UgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19QICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfTCAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19SICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfcmVsYXRpdmVfYmFzZSAoMUxMPDw4KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfcmVib290CisjZGVmaW5lIENMRUFOVVBfcmVib290CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucmVib290CisjZW5kaWYKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3JlbmljZQorI2RlZmluZSBDTEVBTlVQX3JlbmljZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJlbmljZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfZyAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9yZXNldAorI2RlZmluZSBDTEVBTlVQX3Jlc2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucmVzZXQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfcmVzdG9yZWNvbgorI2RlZmluZSBDTEVBTlVQX3Jlc3RvcmVjb24KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5yZXN0b3JlY29uCisjZW5kaWYKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19SIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19GIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19EIChGT1JDRURfRkxBRzw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3JldgorI2RlZmluZSBDTEVBTlVQX3JldgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJldgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9yZmtpbGwKKyNkZWZpbmUgQ0xFQU5VUF9yZmtpbGwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5yZmtpbGwKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1Jfcm0KKyNkZWZpbmUgQ0xFQU5VUF9ybQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJtCisjZW5kaWYKKyNkZWZpbmUgRkxBR192ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfciAoMUxMPDwxKQorI2RlZmluZSBGTEFHX1IgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19pICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfcm1kaXIKKyNkZWZpbmUgQ0xFQU5VUF9ybWRpcgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJtZGlyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19wICgxTEw8PDApCisjZGVmaW5lIEZMQUdfaWdub3JlX2ZhaWxfb25fbm9uX2VtcHR5ICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ybW1vZAorI2RlZmluZSBDTEVBTlVQX3JtbW9kCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucm1tb2QKKyNlbmRpZgorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfcm91dGUKKyNkZWZpbmUgQ0xFQU5VUF9yb3V0ZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnJvdXRlCisjZW5kaWYKKyNkZWZpbmUgRkxBR19BIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19lIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3J0Y3dha2UKKyNkZWZpbmUgQ0xFQU5VUF9ydGN3YWtlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMucnRjd2FrZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfYXV0byAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfbGlzdF9tb2RlcyAoRk9SQ0VEX0ZMQUc8PDkpCisjZW5kaWYKKworI2lmZGVmIEZPUl9ydW5jb24KKyNkZWZpbmUgQ0xFQU5VUF9ydW5jb24KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5ydW5jb24KKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2VkCisjZGVmaW5lIENMRUFOVVBfc2VkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2VkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zICgxTEw8PDApCisjZGVmaW5lIEZMQUdfeiAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19FICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2kgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfZSAoMUxMPDw3KQorI2RlZmluZSBGTEFHX3Rhcnhmb3JtICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfdmVyc2lvbiAoMUxMPDw5KQorI2RlZmluZSBGTEFHX2hlbHAgKDFMTDw8MTApCisjZW5kaWYKKworI2lmZGVmIEZPUl9zZW5kZXZlbnQKKyNkZWZpbmUgQ0xFQU5VUF9zZW5kZXZlbnQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zZW5kZXZlbnQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2VxCisjZGVmaW5lIENMRUFOVVBfc2VxCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2VxCisjZW5kaWYKKyNkZWZpbmUgRkxBR193ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NldAorI2RlZmluZSBDTEVBTlVQX3NldAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNldAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9zZXRlbmZvcmNlCisjZGVmaW5lIENMRUFOVVBfc2V0ZW5mb3JjZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNldGVuZm9yY2UKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2V0ZmF0dHIKKyNkZWZpbmUgQ0xFQU5VUF9zZXRmYXR0cgorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNldGZhdHRyCisjZW5kaWYKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8MykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NldHNpZAorI2RlZmluZSBDTEVBTlVQX3NldHNpZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNldHNpZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfZCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR193ICgxTEw8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zaAorI2RlZmluZSBDTEVBTlVQX3NoCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2gKKyNlbmRpZgorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX25vcmMgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX25vcHJvZmlsZSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfbm9lZGl0aW5nIChGT1JDRURfRkxBRzw8NSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NoYTNzdW0KKyNkZWZpbmUgQ0xFQU5VUF9zaGEzc3VtCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2hhM3N1bQorI2VuZGlmCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zaGlmdAorI2RlZmluZSBDTEVBTlVQX3NoaWZ0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2hpZnQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2hyZWQKKyNkZWZpbmUgQ0xFQU5VUF9zaHJlZAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNocmVkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR196IChGT1JDRURfRkxBRzw8NikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NodWYKKyNkZWZpbmUgQ0xFQU5VUF9zaHVmCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2h1ZgorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfeiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9za2VsZXRvbgorI2RlZmluZSBDTEVBTlVQX3NrZWxldG9uCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc2tlbGV0b24KKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX2UgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX2Fsc28gKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX2JsdWJiZXIgKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX3dhbHJ1cyAoRk9SQ0VEX0ZMQUc8PDEwKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc2tlbGV0b25fYWxpYXMKKyNkZWZpbmUgQ0xFQU5VUF9za2VsZXRvbl9hbGlhcworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNrZWxldG9uX2FsaWFzCisjZW5kaWYKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NsZWVwCisjZGVmaW5lIENMRUFOVVBfc2xlZXAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zbGVlcAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9zbnRwCisjZGVmaW5lIENMRUFOVVBfc250cAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNudHAKKyNlbmRpZgorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX0QgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX1MgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX00gKEZPUkNFRF9GTEFHPDwxMCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NvcnQKKyNkZWZpbmUgQ0xFQU5VUF9zb3J0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc29ydAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3UgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfeiAoMUxMPDw2KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8NykKKyNkZWZpbmUgRkxBR19jICgxTEw8PDgpCisjZGVmaW5lIEZMQUdfQyAoMUxMPDw5KQorI2RlZmluZSBGTEFHX00gKDFMTDw8MTApCisjZGVmaW5lIEZMQUdfYiAoMUxMPDwxMSkKKyNkZWZpbmUgRkxBR19WICgxTEw8PDEyKQorI2RlZmluZSBGTEFHX3ggKDFMTDw8MTMpCisjZGVmaW5lIEZMQUdfdCAoMUxMPDwxNCkKKyNkZWZpbmUgRkxBR19rICgxTEw8PDE1KQorI2RlZmluZSBGTEFHX28gKDFMTDw8MTYpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDwxNykKKyNkZWZpbmUgRkxBR19UICgxTEw8PDE4KQorI2RlZmluZSBGTEFHX1MgKDFMTDw8MTkpCisjZGVmaW5lIEZMQUdfZyAoMUxMPDwyMCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3NvdXJjZQorI2RlZmluZSBDTEVBTlVQX3NvdXJjZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnNvdXJjZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9zcGxpdAorI2RlZmluZSBDTEVBTlVQX3NwbGl0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc3BsaXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc3RhdAorI2RlZmluZSBDTEVBTlVQX3N0YXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zdGF0CisjZW5kaWYKKyNkZWZpbmUgRkxBR190ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfTCAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19jICgxTEw8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zdHJhY2UKKyNkZWZpbmUgQ0xFQU5VUF9zdHJhY2UKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zdHJhY2UKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc3RyaW5ncworI2RlZmluZSBDTEVBTlVQX3N0cmluZ3MKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zdHJpbmdzCisjZW5kaWYKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3N0dHkKKyNkZWZpbmUgQ0xFQU5VUF9zdHR5CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc3R0eQorI2VuZGlmCisjZGVmaW5lIEZMQUdfZyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfRiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zdQorI2RlZmluZSBDTEVBTlVQX3N1CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc3UKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDw2KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc3Vsb2dpbgorI2RlZmluZSBDTEVBTlVQX3N1bG9naW4KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zdWxvZ2luCisjZW5kaWYKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3N3YXBvZmYKKyNkZWZpbmUgQ0xFQU5VUF9zd2Fwb2ZmCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc3dhcG9mZgorI2VuZGlmCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl9zd2Fwb24KKyNkZWZpbmUgQ0xFQU5VUF9zd2Fwb24KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zd2Fwb24KKyNlbmRpZgorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc3dpdGNoX3Jvb3QKKyNkZWZpbmUgQ0xFQU5VUF9zd2l0Y2hfcm9vdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnN3aXRjaF9yb290CisjZW5kaWYKKyNkZWZpbmUgRkxBR19oIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3N5bmMKKyNkZWZpbmUgQ0xFQU5VUF9zeW5jCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMuc3luYworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl9zeXNjdGwKKyNkZWZpbmUgQ0xFQU5VUF9zeXNjdGwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zeXNjdGwKKyNlbmRpZgorI2RlZmluZSBGTEFHX0EgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3cgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3EgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX04gKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2UgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDw3KQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfc3lzbG9nZAorI2RlZmluZSBDTEVBTlVQX3N5c2xvZ2QKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy5zeXNsb2dkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19EIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19MIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19LIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19PIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDExKQorI2RlZmluZSBGTEFHX1IgKEZPUkNFRF9GTEFHPDwxMikKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MTMpCisjZW5kaWYKKworI2lmZGVmIEZPUl90YWMKKyNkZWZpbmUgQ0xFQU5VUF90YWMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50YWMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGFpbAorI2RlZmluZSBDTEVBTlVQX3RhaWwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50YWlsCisjZW5kaWYKKyNkZWZpbmUgRkxBR19uICgxTEw8PDApCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3MgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19GICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfZiAoMUxMPDw0KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGFyCisjZGVmaW5lIENMRUFOVVBfdGFyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudGFyCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zICgxTEw8PDApCisjZGVmaW5lIEZMQUdfYSAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19DICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfSSAoMUxMPDw0KQorI2RlZmluZSBGTEFHX1QgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19YICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDw3KQorI2RlZmluZSBGTEFHX1AgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR19PICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfUyAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR196ICgxTEw8PDExKQorI2RlZmluZSBGTEFHX2ogKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfSiAoMUxMPDwxMykKKyNkZWZpbmUgRkxBR192ICgxTEw8PDE0KQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MTUpCisjZGVmaW5lIEZMQUdfeCAoMUxMPDwxNikKKyNkZWZpbmUgRkxBR19oICgxTEw8PDE3KQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MTgpCisjZGVmaW5lIEZMQUdfayAoMUxMPDwxOSkKKyNkZWZpbmUgRkxBR19wICgxTEw8PDIwKQorI2RlZmluZSBGTEFHX28gKDFMTDw8MjEpCisjZGVmaW5lIEZMQUdfeGZvcm0gKDFMTDw8MjIpCisjZGVmaW5lIEZMQUdfc3RyaXAgKDFMTDw8MjMpCisjZGVmaW5lIEZMQUdfdG9fY29tbWFuZCAoMUxMPDwyNCkKKyNkZWZpbmUgRkxBR19vd25lciAoMUxMPDwyNSkKKyNkZWZpbmUgRkxBR19ncm91cCAoMUxMPDwyNikKKyNkZWZpbmUgRkxBR19tdGltZSAoMUxMPDwyNykKKyNkZWZpbmUgRkxBR19tb2RlICgxTEw8PDI4KQorI2RlZmluZSBGTEFHX3NvcnQgKDFMTDw8MjkpCisjZGVmaW5lIEZMQUdfZXhjbHVkZSAoMUxMPDwzMCkKKyNkZWZpbmUgRkxBR19vdmVyd3JpdGUgKDFMTDw8MzEpCisjZGVmaW5lIEZMQUdfbm9fc2FtZV9wZXJtaXNzaW9ucyAoMUxMPDwzMikKKyNkZWZpbmUgRkxBR19udW1lcmljX293bmVyICgxTEw8PDMzKQorI2RlZmluZSBGTEFHX251bGwgKDFMTDw8MzQpCisjZGVmaW5lIEZMQUdfbm9fcmVjdXJzaW9uICgxTEw8PDM1KQorI2RlZmluZSBGTEFHX2Z1bGxfdGltZSAoMUxMPDwzNikKKyNkZWZpbmUgRkxBR19yZXN0cmljdCAoMUxMPDwzNykKKyNkZWZpbmUgRkxBR19zZWxpbnV4ICgxTEw8PDM4KQorI2RlZmluZSBGTEFHX3Nob3dfdHJhbnNmb3JtZWRfbmFtZXMgKDFMTDw8MzkpCisjZGVmaW5lIEZMQUdfd2lsZGNhcmRzX21hdGNoX3NsYXNoICgxTEw8PDQwKQorI2RlZmluZSBGTEFHX25vX3dpbGRjYXJkc19tYXRjaF9zbGFzaCAoMUxMPDw0MSkKKyNkZWZpbmUgRkxBR193aWxkY2FyZHMgKDFMTDw8NDIpCisjZGVmaW5lIEZMQUdfbm9fd2lsZGNhcmRzICgxTEw8PDQzKQorI2RlZmluZSBGTEFHX2FuY2hvcmVkICgxTEw8PDQ0KQorI2RlZmluZSBGTEFHX25vX2FuY2hvcmVkICgxTEw8PDQ1KQorI2RlZmluZSBGTEFHX2lnbm9yZV9jYXNlICgxTEw8PDQ2KQorI2RlZmluZSBGTEFHX25vX2lnbm9yZV9jYXNlICgxTEw8PDQ3KQorI2RlZmluZSBGTEFHX29uZV9maWxlX3N5c3RlbSAoMUxMPDw0OCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Rhc2tzZXQKKyNkZWZpbmUgQ0xFQU5VUF90YXNrc2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudGFza3NldAorI2VuZGlmCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl90Y3BzdmQKKyNkZWZpbmUgQ0xFQU5VUF90Y3BzdmQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50Y3BzdmQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX0UgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2ggKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX0MgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2IgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX2MgKEZPUkNFRF9GTEFHPDw3KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGVlCisjZGVmaW5lIENMRUFOVVBfdGVlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudGVlCisjZW5kaWYKKyNkZWZpbmUgRkxBR19hICgxTEw8PDApCisjZGVmaW5lIEZMQUdfaSAoMUxMPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGVsbmV0CisjZGVmaW5lIENMRUFOVVBfdGVsbmV0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudGVsbmV0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RlbG5ldGQKKyNkZWZpbmUgQ0xFQU5VUF90ZWxuZXRkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudGVsbmV0ZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfSyAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfRiAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfYiAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDgpCisjZW5kaWYKKworI2lmZGVmIEZPUl90ZXN0CisjZGVmaW5lIENMRUFOVVBfdGVzdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRlc3QKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGZ0cAorI2RlZmluZSBDTEVBTlVQX3RmdHAKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50ZnRwCisjZW5kaWYKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19nIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RmdHBkCisjZGVmaW5lIENMRUFOVVBfdGZ0cGQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50ZnRwZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfciAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl90aW1lCisjZGVmaW5lIENMRUFOVVBfdGltZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRpbWUKKyNlbmRpZgorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwxKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdGltZW91dAorI2RlZmluZSBDTEVBTlVQX3RpbWVvdXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50aW1lb3V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19pICgxTEw8PDApCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwxKQorI2RlZmluZSBGTEFHX2sgKDFMTDw8MikKKyNkZWZpbmUgRkxBR192ICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfcHJlc2VydmVfc3RhdHVzICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfZm9yZWdyb3VuZCAoMUxMPDw1KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdG9wCisjZGVmaW5lIENMRUFOVVBfdG9wCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudG9wCisjZW5kaWYKKyNkZWZpbmUgRkxBR19xIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR191IChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19vIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19rIChGT1JDRURfRkxBRzw8OSkKKyNkZWZpbmUgRkxBR19IIChGT1JDRURfRkxBRzw8MTApCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDExKQorI2RlZmluZSBGTEFHX08gKEZPUkNFRF9GTEFHPDwxMikKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RvdWNoCisjZGVmaW5lIENMRUFOVVBfdG91Y2gKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50b3VjaAorI2VuZGlmCisjZGVmaW5lIEZMQUdfaCAoMUxMPDwwKQorI2RlZmluZSBGTEFHX3QgKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDwzKQorI2RlZmluZSBGTEFHX2YgKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDw2KQorI2RlZmluZSBGTEFHX2EgKDFMTDw8NykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RveWJveAorI2RlZmluZSBDTEVBTlVQX3RveWJveAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRveWJveAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl90cgorI2RlZmluZSBDTEVBTlVQX3RyCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudHIKKyNlbmRpZgorI2RlZmluZSBGTEFHX2QgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19DICgxTEw8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl90cmFjZXJvdXRlCisjZGVmaW5lIENMRUFOVVBfdHJhY2Vyb3V0ZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRyYWNlcm91dGUKKyNlbmRpZgorI2RlZmluZSBGTEFHXzQgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHXzYgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX0YgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX1UgKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX0kgKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2wgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX3YgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDw5KQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwxMCkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MTEpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDEyKQorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwxMykKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MTQpCisjZGVmaW5lIEZMQUdfdyAoRk9SQ0VEX0ZMQUc8PDE1KQorI2RlZmluZSBGTEFHX2cgKEZPUkNFRF9GTEFHPDwxNikKKyNkZWZpbmUgRkxBR196IChGT1JDRURfRkxBRzw8MTcpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDE4KQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDwxOSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3RydWUKKyNkZWZpbmUgQ0xFQU5VUF90cnVlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudHJ1ZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl90cnVuY2F0ZQorI2RlZmluZSBDTEVBTlVQX3RydW5jYXRlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudHJ1bmNhdGUKKyNlbmRpZgorI2RlZmluZSBGTEFHX2MgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEpCisjZW5kaWYKKworI2lmZGVmIEZPUl90cworI2RlZmluZSBDTEVBTlVQX3RzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudHMKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDwyKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdHNvcnQKKyNkZWZpbmUgQ0xFQU5VUF90c29ydAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnRzb3J0CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3R0eQorI2RlZmluZSBDTEVBTlVQX3R0eQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnR0eQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl90dW5jdGwKKyNkZWZpbmUgQ0xFQU5VUF90dW5jdGwKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy50dW5jdGwKKyNlbmRpZgorI2RlZmluZSBGTEFHX1QgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX3QgKEZPUkNFRF9GTEFHPDwzKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdWNsYW1wc2V0CisjZGVmaW5lIENMRUFOVVBfdWNsYW1wc2V0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudWNsYW1wc2V0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19SIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19NIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19tIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VsaW1pdAorI2RlZmluZSBDTEVBTlVQX3VsaW1pdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVsaW1pdAorI2VuZGlmCisjZGVmaW5lIEZMQUdfYyAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfZCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZSAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfaSAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfbCAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfbSAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDcpCisjZGVmaW5lIEZMQUdfcCAoRk9SQ0VEX0ZMQUc8PDgpCisjZGVmaW5lIEZMQUdfcSAoRk9SQ0VEX0ZMQUc8PDkpCisjZGVmaW5lIEZMQUdfUiAoRk9SQ0VEX0ZMQUc8PDEwKQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwxMSkKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MTIpCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDEzKQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDwxNCkKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MTUpCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDE2KQorI2RlZmluZSBGTEFHX0ggKEZPUkNFRF9GTEFHPDwxNykKKyNkZWZpbmUgRkxBR19TIChGT1JDRURfRkxBRzw8MTgpCisjZGVmaW5lIEZMQUdfUCAoRk9SQ0VEX0ZMQUc8PDE5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdW1vdW50CisjZGVmaW5lIENMRUFOVVBfdW1vdW50CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudW1vdW50CisjZW5kaWYKKyNkZWZpbmUgRkxBR192IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19hIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19sIChGT1JDRURfRkxBRzw8NCkKKyNkZWZpbmUgRkxBR19mIChGT1JDRURfRkxBRzw8NSkKKyNkZWZpbmUgRkxBR19EIChGT1JDRURfRkxBRzw8NikKKyNkZWZpbmUgRkxBR19kIChGT1JDRURfRkxBRzw8NykKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8OCkKKyNkZWZpbmUgRkxBR19jIChGT1JDRURfRkxBRzw8OSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VuYW1lCisjZGVmaW5lIENMRUFOVVBfdW5hbWUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51bmFtZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfcyAoMUxMPDwwKQorI2RlZmluZSBGTEFHX24gKDFMTDw8MSkKKyNkZWZpbmUgRkxBR19yICgxTEw8PDIpCisjZGVmaW5lIEZMQUdfdiAoMUxMPDwzKQorI2RlZmluZSBGTEFHX20gKDFMTDw8NCkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDUpCisjZGVmaW5lIEZMQUdfYSAoMUxMPDw2KQorI2RlZmluZSBGTEFHX3AgKDFMTDw8NykKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VuaWNvZGUKKyNkZWZpbmUgQ0xFQU5VUF91bmljb2RlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudW5pY29kZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl91bmlxCisjZGVmaW5lIENMRUFOVVBfdW5pcQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVuaXEKKyNlbmRpZgorI2RlZmluZSBGTEFHX3UgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19kICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2kgKDFMTDw8MykKKyNkZWZpbmUgRkxBR196ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfdyAoMUxMPDw1KQorI2RlZmluZSBGTEFHX3MgKDFMTDw8NikKKyNkZWZpbmUgRkxBR19mICgxTEw8PDcpCisjZW5kaWYKKworI2lmZGVmIEZPUl91bml4MmRvcworI2RlZmluZSBDTEVBTlVQX3VuaXgyZG9zCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudW5peDJkb3MKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfdW5saW5rCisjZGVmaW5lIENMRUFOVVBfdW5saW5rCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudW5saW5rCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Vuc2V0CisjZGVmaW5lIENMRUFOVVBfdW5zZXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51bnNldAorI2VuZGlmCisjZGVmaW5lIEZMQUdfbiAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdiAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfZiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl91bnNoYXJlCisjZGVmaW5lIENMRUFOVVBfdW5zaGFyZQorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVuc2hhcmUKKyNlbmRpZgorI2RlZmluZSBGTEFHX1UgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX3UgKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwzKQorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDw0KQorI2RlZmluZSBGTEFHX2kgKEZPUkNFRF9GTEFHPDw1KQorI2RlZmluZSBGTEFHX0MgKEZPUkNFRF9GTEFHPDw2KQorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDw3KQorI2RlZmluZSBGTEFHX2YgKEZPUkNFRF9GTEFHPDw4KQorI2RlZmluZSBGTEFHX2EgKEZPUkNFRF9GTEFHPDw5KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdXB0aW1lCisjZGVmaW5lIENMRUFOVVBfdXB0aW1lCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudXB0aW1lCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zIChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19wIChGT1JDRURfRkxBRzw8MSkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3VzZXJhZGQKKyNkZWZpbmUgQ0xFQU5VUF91c2VyYWRkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudXNlcmFkZAorI2VuZGlmCisjZGVmaW5lIEZMQUdfSCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfRCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfUyAoRk9SQ0VEX0ZMQUc8PDIpCisjZGVmaW5lIEZMQUdfaCAoRk9SQ0VEX0ZMQUc8PDMpCisjZGVmaW5lIEZMQUdfZyAoRk9SQ0VEX0ZMQUc8PDQpCisjZGVmaW5lIEZMQUdfcyAoRk9SQ0VEX0ZMQUc8PDUpCisjZGVmaW5lIEZMQUdfRyAoRk9SQ0VEX0ZMQUc8PDYpCisjZGVmaW5lIEZMQUdfdSAoRk9SQ0VEX0ZMQUc8PDcpCisjZW5kaWYKKworI2lmZGVmIEZPUl91c2VyZGVsCisjZGVmaW5lIENMRUFOVVBfdXNlcmRlbAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLnVzZXJkZWwKKyNlbmRpZgorI2RlZmluZSBGTEFHX3IgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdXNsZWVwCisjZGVmaW5lIENMRUFOVVBfdXNsZWVwCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudXNsZWVwCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgRk9SX3V1ZGVjb2RlCisjZGVmaW5lIENMRUFOVVBfdXVkZWNvZGUKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51dWRlY29kZQorI2VuZGlmCisjZGVmaW5lIEZMQUdfbyAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl91dWVuY29kZQorI2RlZmluZSBDTEVBTlVQX3V1ZW5jb2RlCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudXVlbmNvZGUKKyNlbmRpZgorI2RlZmluZSBGTEFHX20gKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1JfdXVpZGdlbgorI2RlZmluZSBDTEVBTlVQX3V1aWRnZW4KKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy51dWlkZ2VuCisjZW5kaWYKKyNkZWZpbmUgRkxBR19yIChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3Zjb25maWcKKyNkZWZpbmUgQ0xFQU5VUF92Y29uZmlnCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudmNvbmZpZworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl92aQorI2RlZmluZSBDTEVBTlVQX3ZpCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudmkKKyNlbmRpZgorI2RlZmluZSBGTEFHX3MgKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfdm1zdGF0CisjZGVmaW5lIENMRUFOVVBfdm1zdGF0CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudm1zdGF0CisjZW5kaWYKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3cKKyNkZWZpbmUgQ0xFQU5VUF93CisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMudworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl93YWl0CisjZGVmaW5lIENMRUFOVVBfd2FpdAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLndhaXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX24gKEZPUkNFRF9GTEFHPDwwKQorI2VuZGlmCisKKyNpZmRlZiBGT1Jfd2F0Y2gKKyNkZWZpbmUgQ0xFQU5VUF93YXRjaAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLndhdGNoCisjZW5kaWYKKyNkZWZpbmUgRkxBR194IChGT1JDRURfRkxBRzw8MCkKKyNkZWZpbmUgRkxBR19iIChGT1JDRURfRkxBRzw8MSkKKyNkZWZpbmUgRkxBR19lIChGT1JDRURfRkxBRzw8MikKKyNkZWZpbmUgRkxBR190IChGT1JDRURfRkxBRzw8MykKKyNkZWZpbmUgRkxBR19uIChGT1JDRURfRkxBRzw8NCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3dhdGNoZG9nCisjZGVmaW5lIENMRUFOVVBfd2F0Y2hkb2cKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy53YXRjaGRvZworI2VuZGlmCisjZGVmaW5lIEZMQUdfVCAoRk9SQ0VEX0ZMQUc8PDApCisjZGVmaW5lIEZMQUdfdCAoRk9SQ0VEX0ZMQUc8PDEpCisjZGVmaW5lIEZMQUdfRiAoRk9SQ0VEX0ZMQUc8PDIpCisjZW5kaWYKKworI2lmZGVmIEZPUl93YworI2RlZmluZSBDTEVBTlVQX3djCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMud2MKKyNlbmRpZgorI2RlZmluZSBGTEFHX2wgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR193ICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbSAoMUxMPDwyKQorI2RlZmluZSBGTEFHX2MgKDFMTDw8MykKKyNkZWZpbmUgRkxBR19MICgxTEw8PDQpCisjZW5kaWYKKworI2lmZGVmIEZPUl93Z2V0CisjZGVmaW5lIENMRUFOVVBfd2dldAorI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLndnZXQKKyNlbmRpZgorI2RlZmluZSBGTEFHX3AgKEZPUkNFRF9GTEFHPDwwKQorI2RlZmluZSBGTEFHX08gKEZPUkNFRF9GTEFHPDwxKQorI2RlZmluZSBGTEFHX2QgKEZPUkNFRF9GTEFHPDwyKQorI2RlZmluZSBGTEFHX21heF9yZWRpcmVjdCAoRk9SQ0VEX0ZMQUc8PDMpCisjZW5kaWYKKworI2lmZGVmIEZPUl93aGljaAorI2RlZmluZSBDTEVBTlVQX3doaWNoCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMud2hpY2gKKyNlbmRpZgorI2RlZmluZSBGTEFHX2EgKDFMTDw8MCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3dobworI2RlZmluZSBDTEVBTlVQX3dobworI2lmbmRlZiBUVAorI2RlZmluZSBUVCB0aGlzLndobworI2VuZGlmCisjZGVmaW5lIEZMQUdfYSAoRk9SQ0VEX0ZMQUc8PDApCisjZW5kaWYKKworI2lmZGVmIEZPUl94YXJncworI2RlZmluZSBDTEVBTlVQX3hhcmdzCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMueGFyZ3MKKyNlbmRpZgorI2RlZmluZSBGTEFHXzAgKDFMTDw8MCkKKyNkZWZpbmUgRkxBR19zICgxTEw8PDEpCisjZGVmaW5lIEZMQUdfbiAoMUxMPDwyKQorI2RlZmluZSBGTEFHX3IgKDFMTDw8MykKKyNkZWZpbmUgRkxBR190ICgxTEw8PDQpCisjZGVmaW5lIEZMQUdfcCAoMUxMPDw1KQorI2RlZmluZSBGTEFHX28gKDFMTDw8NikKKyNkZWZpbmUgRkxBR19QICgxTEw8PDcpCisjZGVmaW5lIEZMQUdfRSAoMUxMPDw4KQorI2VuZGlmCisKKyNpZmRlZiBGT1JfeHhkCisjZGVmaW5lIENMRUFOVVBfeHhkCisjaWZuZGVmIFRUCisjZGVmaW5lIFRUIHRoaXMueHhkCisjZW5kaWYKKyNkZWZpbmUgRkxBR19zICgxTEw8PDApCisjZGVmaW5lIEZMQUdfciAoMUxMPDwxKQorI2RlZmluZSBGTEFHX3AgKDFMTDw8MikKKyNkZWZpbmUgRkxBR19pICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfZSAoMUxMPDw0KQorI2RlZmluZSBGTEFHX2cgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR19vICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfbCAoMUxMPDw3KQorI2RlZmluZSBGTEFHX2MgKDFMTDw8OCkKKyNlbmRpZgorCisjaWZkZWYgRk9SX3h6Y2F0CisjZGVmaW5lIENMRUFOVVBfeHpjYXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy54emNhdAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEZPUl95ZXMKKyNkZWZpbmUgQ0xFQU5VUF95ZXMKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy55ZXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBGT1JfemNhdAorI2RlZmluZSBDTEVBTlVQX3pjYXQKKyNpZm5kZWYgVFQKKyNkZWZpbmUgVFQgdGhpcy56Y2F0CisjZW5kaWYKKyNkZWZpbmUgRkxBR185ICgxTEw8PDApCisjZGVmaW5lIEZMQUdfOCAoMUxMPDwxKQorI2RlZmluZSBGTEFHXzcgKDFMTDw8MikKKyNkZWZpbmUgRkxBR182ICgxTEw8PDMpCisjZGVmaW5lIEZMQUdfNSAoMUxMPDw0KQorI2RlZmluZSBGTEFHXzQgKDFMTDw8NSkKKyNkZWZpbmUgRkxBR18zICgxTEw8PDYpCisjZGVmaW5lIEZMQUdfMiAoMUxMPDw3KQorI2RlZmluZSBGTEFHXzEgKDFMTDw8OCkKKyNkZWZpbmUgRkxBR190ICgxTEw8PDkpCisjZGVmaW5lIEZMQUdfayAoMUxMPDwxMCkKKyNkZWZpbmUgRkxBR19mICgxTEw8PDExKQorI2RlZmluZSBGTEFHX2QgKDFMTDw8MTIpCisjZGVmaW5lIEZMQUdfYyAoMUxMPDwxMykKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9hbmRyb2lkL21hYy9nZW5lcmF0ZWQvZ2xvYmFscy5oIGIvYW5kcm9pZC9tYWMvZ2VuZXJhdGVkL2dsb2JhbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDE3MmMxCi0tLSAvZGV2L251bGwKKysrIGIvYW5kcm9pZC9tYWMvZ2VuZXJhdGVkL2dsb2JhbHMuaApAQCAtMCwwICsxLDQxMiBAQAorc3RydWN0IGd6aXBfZGF0YSB7CisgIGludCBsZXZlbDsKK307CisKK3N0cnVjdCBob3N0bmFtZV9kYXRhIHsKKyAgY2hhciAqRjsKK307CisKK3N0cnVjdCBtZDVzdW1fZGF0YSB7CisgIGludCBzYXdsaW5lOworfTsKKworc3RydWN0IG1rdGVtcF9kYXRhIHsKKyAgY2hhciAqcCwgKnRtcGRpcjsKK307CisKK3N0cnVjdCBzZXFfZGF0YSB7CisgIGNoYXIgKnMsICpmOworCisgIGludCBwcmVjaXNpb24sIGJ1ZmxlbjsKK307CisKK3N0cnVjdCBtaWNyb2NvbV9kYXRhIHsKKyAgbG9uZyBzOworCisgIGludCBmZCwgc3RvazsKKyAgc3RydWN0IHRlcm1pb3Mgb2xkX3N0ZGluLCBvbGRfZmQ7Cit9OworCitzdHJ1Y3QgZG9zMnVuaXhfZGF0YSB7CisgIGNoYXIgKnRlbXBmaWxlOworfTsKKworc3RydWN0IGdldG9wdF9kYXRhIHsKKyAgc3RydWN0IGFyZ19saXN0ICpsOworICBjaGFyICpvLCAqbjsKK307CisKK3N0cnVjdCByZWFscGF0aF9kYXRhIHsKKyAgY2hhciAqUiwgKnJlbGF0aXZlX2Jhc2U7Cit9OworCitzdHJ1Y3Qgc2V0c2lkX2RhdGEgeworICBsb25nIGM7Cit9OworCitzdHJ1Y3Qgc3RhdF9kYXRhIHsKKyAgY2hhciAqYzsKKworICB1bmlvbiB7CisgICAgc3RydWN0IHN0YXQgc3Q7CisgICAgc3RydWN0IHN0YXRmcyBzZjsKKyAgfSBzdGF0OworICBjaGFyICpmaWxlLCAqcGF0dGVybjsKKyAgaW50IHBhdGxlbjsKK307CisKK3N0cnVjdCB0aW1lb3V0X2RhdGEgeworICBjaGFyICpzLCAqazsKKworICBzdHJ1Y3QgcG9sbGZkIHBmZDsKKyAgc2lnam1wX2J1ZiBzajsKKyAgaW50IGZkc1syXSwgcGlkLCByYzsKK307CisKK3N0cnVjdCB0cnVuY2F0ZV9kYXRhIHsKKyAgY2hhciAqczsKKworICBsb25nIGxvbmcgc2l6ZTsKKyAgaW50IHR5cGU7Cit9OworCitzdHJ1Y3QgeHhkX2RhdGEgeworICBsb25nIHMsIGcsIG8sIGwsIGM7Cit9OworCitzdHJ1Y3QgZGlmZl9kYXRhIHsKKyAgbG9uZyBVOworICBzdHJ1Y3QgYXJnX2xpc3QgKkw7CisgIGNoYXIgKkYsICpTLCAqbmV3X2xpbmVfZm9ybWF0LCAqb2xkX2xpbmVfZm9ybWF0LCAqdW5jaGFuZ2VkX2xpbmVfZm9ybWF0OworCisgIGludCBkaXJfbnVtLCBzaXplLCBpc19iaW5hcnksIGRpZmZlciwgY2hhbmdlLCBsZW5bMl0sICpvZmZzZXRbMl07CisgIHN0cnVjdCBzdGF0IHN0WzJdOworICBzdHJ1Y3QgeworICAgIGNoYXIgKipsaXN0OworICAgIGludCBucl9lbG07CisgIH0gZGlyWzJdOworICBzdHJ1Y3QgeworICAgIEZJTEUgKmZwOworICAgIGludCBsZW47CisgIH0gZmlsZVsyXTsKK307CisKK3N0cnVjdCBleHByX2RhdGEgeworICBjaGFyICoqdG9rLCAqZGVsZXRlOworfTsKKworc3RydWN0IHRyX2RhdGEgeworICBzaG9ydCAqbWFwOworICBpbnQgbGVuMSwgbGVuMjsKK307CisKK3N0cnVjdCBiYXNlbmFtZV9kYXRhIHsKKyAgY2hhciAqczsKK307CisKK3N0cnVjdCBjaG1vZF9kYXRhIHsKKyAgY2hhciAqbW9kZTsKK307CisKK3N0cnVjdCBjbXBfZGF0YSB7CisgIGxvbmcgbjsKKworICBpbnQgZmQ7CisgIGNoYXIgKm5hbWU7Cit9OworCitzdHJ1Y3QgY3BfZGF0YSB7CisgIHVuaW9uIHsKKyAgICAvLyBpbnN0YWxsJ3Mgb3B0aW9ucworICAgIHN0cnVjdCB7CisgICAgICBjaGFyICpnLCAqbywgKm0sICp0OworICAgIH0gaTsKKyAgICAvLyBjcCdzIG9wdGlvbnMKKyAgICBzdHJ1Y3QgeworICAgICAgY2hhciAqdCwgKnByZXNlcnZlOworICAgIH0gYzsKKyAgfTsKKworICBjaGFyICpkZXN0bmFtZTsKKyAgc3RydWN0IHN0YXQgdG9wOworICBpbnQgKCpjYWxsYmFjaykoc3RydWN0IGRpcnRyZWUgKnRyeSk7CisgIHVpZF90IHVpZDsKKyAgZ2lkX3QgZ2lkOworICBpbnQgcGZsYWdzOworfTsKKworc3RydWN0IGNwaW9fZGF0YSB7CisgIGNoYXIgKkYsICpILCAqUjsKK307CisKK3N0cnVjdCBjdXRfZGF0YSB7CisgIGNoYXIgKmQsICpPOworICBzdHJ1Y3QgYXJnX2xpc3QgKnNlbGVjdFs1XTsgLy8gd2UgdHJlYXQgdGhlbSB0aGUgc2FtZSwgc28gbG9vcCB0aHJvdWdoCisKKyAgdW5zaWduZWQgbGluZTsKKyAgaW50IHBhaXJzOworICByZWdleF90IHJlZzsKK307CisKK3N0cnVjdCBkYXRlX2RhdGEgeworICBjaGFyICpzLCAqciwgKkksICpELCAqZDsKKworICB1bnNpZ25lZCBuYW5vOworfTsKKworc3RydWN0IGRkX2RhdGEgeworICAvLyBEaXNwbGF5IGZpZWxkcworICBpbnQgc2hvd194ZmVyLCBzaG93X3JlY29yZHM7CisgIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlcywgaW5fZnVsbCwgaW5fcGFydCwgb3V0X2Z1bGwsIG91dF9wYXJ0LCBzdGFydDsKK307CisKK3N0cnVjdCBkdV9kYXRhIHsKKyAgbG9uZyBkOworCisgIHVuc2lnbmVkIGxvbmcgZGVwdGgsIHRvdGFsOworICBkZXZfdCBzdF9kZXY7CisgIHZvaWQgKmlub2RlczsKK307CisKK3N0cnVjdCBlbnZfZGF0YSB7CisgIHN0cnVjdCBhcmdfbGlzdCAqdTsKKyAgY2hhciAqZTsKK307CisKK3N0cnVjdCBmaWxlX2RhdGEgeworICBpbnQgbWF4X25hbWVfbGVuOworICBvZmZfdCBsZW47Cit9OworCitzdHJ1Y3QgZmluZF9kYXRhIHsKKyAgY2hhciAqKmZpbHRlcjsKKyAgc3RydWN0IGRvdWJsZV9saXN0ICphcmdkYXRhOworICBpbnQgdG9wZGlyLCB4ZGV2LCBkZXB0aDsKKyAgdGltZV90IG5vdzsKKyAgbG9uZyBtYXhfYnl0ZXM7CisgIGNoYXIgKnN0YXJ0OworfTsKKworc3RydWN0IGdyZXBfZGF0YSB7CisgIGxvbmcgbSwgQSwgQiwgQzsKKyAgc3RydWN0IGFyZ19saXN0ICpmLCAqZSwgKk0sICpTLCAqZXhjbHVkZV9kaXI7CisgIGNoYXIgKmNvbG9yOworCisgIGNoYXIgKnB1cnBsZSwgKmN5YW4sICpyZWQsICpncmVlbiwgKmdyZXk7CisgIHN0cnVjdCBkb3VibGVfbGlzdCAqcmVnOworICBpbnQgZm91bmQsIHRyaWVkLCBkZWxpbTsKKyAgc3RydWN0IGFyZ19saXN0ICoqZml4ZWQ7Cit9OworCitzdHJ1Y3QgaGVhZF9kYXRhIHsKKyAgbG9uZyBjLCBuOworCisgIGludCBmaWxlX25vOworfTsKKworc3RydWN0IGlkX2RhdGEgeworICBpbnQgaXNfZ3JvdXBzOworfTsKKworc3RydWN0IGxuX2RhdGEgeworICBjaGFyICp0OworfTsKKworc3RydWN0IGxzX2RhdGEgeworICBsb25nIHcsIGwsIGJsb2NrX3NpemU7CisgIGNoYXIgKmNvbG9yLCAqc29ydDsKKworICBzdHJ1Y3QgZGlydHJlZSAqZmlsZXMsICpzaW5nbGVkaXI7CisgIHVuc2lnbmVkIHNjcmVlbl93aWR0aDsKKyAgaW50IG5sX3RpdGxlOworICBjaGFyICplc2Ntb3JlOworfTsKKworc3RydWN0IG1rZGlyX2RhdGEgeworICBjaGFyICptLCAqWjsKK307CisKK3N0cnVjdCBubF9kYXRhIHsKKyAgY2hhciAqcywgKm4sICpiOworICBsb25nIHcsIGwsIHY7CisKKyAgLy8gQ291bnQgb2YgY29uc2VjdXRpdmUgYmxhbmsgbGluZXMgZm9yIC1sIGhhcyB0byBwZXJzaXN0IGJldHdlZW4gZmlsZXMKKyAgbG9uZyBsY291bnQsIHNsZW47Cit9OworCitzdHJ1Y3Qgb2RfZGF0YSB7CisgIHN0cnVjdCBhcmdfbGlzdCAqdDsKKyAgY2hhciAqQTsKKyAgbG9uZyBOLCB3LCBqOworCisgIGludCBhZGRyZXNzX2lkeDsKKyAgdW5zaWduZWQgdHlwZXMsIGxlZnRvdmVyLCBzdGFyOworICBjaGFyICpidWY7IC8vIFBvaW50cyB0byBidWZmZXJzWzBdIG9yIGJ1ZmZlcnNbMV0uCisgIGNoYXIgKmJ1ZnNbMl07IC8vIFVzZWQgdG8gZGV0ZWN0IGR1cGxpY2F0ZSBsaW5lcy4KKyAgb2ZmX3QgcG9zOworfTsKKworc3RydWN0IHBhc3RlX2RhdGEgeworICBjaGFyICpkOworCisgIGludCBmaWxlczsKK307CisKK3N0cnVjdCBwYXRjaF9kYXRhIHsKKyAgY2hhciAqaSwgKmQ7CisgIGxvbmcgdiwgcCwgZywgRjsKKworICB2b2lkICpjdXJyZW50X2h1bms7CisgIGxvbmcgb2xkbGluZSwgb2xkbGVuLCBuZXdsaW5lLCBuZXdsZW4sIGxpbmVudW0sIG91dG51bTsKKyAgaW50IGNvbnRleHQsIHN0YXRlLCBmaWxlaW4sIGZpbGVvdXQsIGZpbGVwYXRjaCwgaHVua251bTsKKyAgY2hhciAqdGVtcG5hbWU7Cit9OworCitzdHJ1Y3Qgc2VkX2RhdGEgeworICBjaGFyICppOworICBzdHJ1Y3QgYXJnX2xpc3QgKmYsICplOworCisgIC8vIHByb2Nlc3NlZCBwYXR0ZXJuIGxpc3QKKyAgc3RydWN0IGRvdWJsZV9saXN0ICpwYXR0ZXJuOworCisgIGNoYXIgKm5leHRsaW5lLCAqcmVtZW1iZXIsICp0YXJ4Zm9ybTsKKyAgdm9pZCAqcmVzdGFydCwgKmxhc3RyZWdleDsKKyAgbG9uZyBuZXh0bGVuLCByZW1lbWJlcmxlbiwgY291bnQ7CisgIGludCBmZG91dCwgbm9lb2w7CisgIHVuc2lnbmVkIHh4LCB0YXJ4bGVuLCB4ZmxhZ3M7CisgIGNoYXIgZGVsaW0sIHhmdHlwZTsKK307CisKK3N0cnVjdCBzb3J0X2RhdGEgeworICBjaGFyICp0OworICBzdHJ1Y3QgYXJnX2xpc3QgKms7CisgIGNoYXIgKm8sICpULCBTOworCisgIHZvaWQgKmtleV9saXN0OworICB1bnNpZ25lZCBsaW5lY291bnQ7CisgIGNoYXIgKipsaW5lcywgKm5hbWU7Cit9OworCitzdHJ1Y3QgdGFpbF9kYXRhIHsKKyAgbG9uZyBuLCBjOworICBjaGFyICpzOworCisgIGludCBmaWxlX25vLCBsYXN0X2ZkLCBzczsKKyAgc3RydWN0IHhub3RpZnkgKm5vdDsKKyAgc3RydWN0IHsKKyAgICBjaGFyICpwYXRoOworICAgIGludCBmZDsKKyAgICBzdHJ1Y3QgZGV2X2lubyBkaTsKKyAgfSAqRjsKK307CisKK3N0cnVjdCB0YXJfZGF0YSB7CisgIGNoYXIgKmYsICpDLCAqSTsKKyAgc3RydWN0IGFyZ19saXN0ICpULCAqWCwgKnhmb3JtOworICBsb25nIHN0cmlwOworICBjaGFyICp0b19jb21tYW5kLCAqb3duZXIsICpncm91cCwgKm10aW1lLCAqbW9kZSwgKnNvcnQ7CisgIHN0cnVjdCBhcmdfbGlzdCAqZXhjbHVkZTsKKworICBzdHJ1Y3QgZG91YmxlX2xpc3QgKmluY2wsICpleGNsLCAqc2VlbjsKKyAgc3RydWN0IHN0cmluZ19saXN0ICpkaXJzOworICBjaGFyICpjd2QsICoqeGZzZWQ7CisgIGludCBmZCwgb3VpZCwgZ2dpZCwgaGxjLCB3YXJuLCBzcGFyc2VsZW4sIHBpZCwgeGZwaXBlWzJdOworICBzdHJ1Y3QgZGV2X2lubyBhcmNoaXZlX2RpOworICBsb25nIGxvbmcgKnNwYXJzZTsKKyAgdGltZV90IG10dDsKKworICAvLyBoYXJkbGlua3Mgc2VlbiBzbyBmYXIgKGhsYyBtYW55KQorICBzdHJ1Y3QgeworICAgIGNoYXIgKmFyZzsKKyAgICBzdHJ1Y3QgZGV2X2lubyBkaTsKKyAgfSAqaGx4OworCisgIC8vIFBhcnNlZCBpbmZvcm1hdGlvbiBhYm91dCBhIHRhciBoZWFkZXIuCisgIHN0cnVjdCB0YXJfaGVhZGVyIHsKKyAgICBjaGFyICpuYW1lLCAqbGlua190YXJnZXQsICp1bmFtZSwgKmduYW1lOworICAgIGxvbmcgbG9uZyBzaXplLCBzc2l6ZTsKKyAgICB1aWRfdCB1aWQ7CisgICAgZ2lkX3QgZ2lkOworICAgIG1vZGVfdCBtb2RlOworICAgIHRpbWVfdCBtdGltZTsKKyAgICBkZXZfdCBkZXZpY2U7CisgIH0gaGRyOworfTsKKworc3RydWN0IHRlZV9kYXRhIHsKKyAgdm9pZCAqb3V0cHV0czsKKyAgaW50IG91dDsKK307CisKK3N0cnVjdCB0b3VjaF9kYXRhIHsKKyAgY2hhciAqdCwgKnIsICpkOworfTsKKworc3RydWN0IHVuaXFfZGF0YSB7CisgIGxvbmcgdywgcywgZjsKKworICBsb25nIHJlcGVhdHM7Cit9OworCitzdHJ1Y3Qgd2NfZGF0YSB7CisgIHVuc2lnbmVkIGxvbmcgdG90YWxzWzVdOworfTsKKworc3RydWN0IHhhcmdzX2RhdGEgeworICBsb25nIHMsIG4sIFA7CisgIGNoYXIgKkU7CisKKyAgbG9uZyBlbnRyaWVzLCBieXRlcywgbnA7CisgIGNoYXIgZGVsaW07CisgIEZJTEUgKnR0eTsKK307CitleHRlcm4gdW5pb24gZ2xvYmFsX3VuaW9uIHsKKwlzdHJ1Y3QgZ3ppcF9kYXRhIGd6aXA7CisJc3RydWN0IGhvc3RuYW1lX2RhdGEgaG9zdG5hbWU7CisJc3RydWN0IG1kNXN1bV9kYXRhIG1kNXN1bTsKKwlzdHJ1Y3QgbWt0ZW1wX2RhdGEgbWt0ZW1wOworCXN0cnVjdCBzZXFfZGF0YSBzZXE7CisJc3RydWN0IG1pY3JvY29tX2RhdGEgbWljcm9jb207CisJc3RydWN0IGRvczJ1bml4X2RhdGEgZG9zMnVuaXg7CisJc3RydWN0IGdldG9wdF9kYXRhIGdldG9wdDsKKwlzdHJ1Y3QgcmVhbHBhdGhfZGF0YSByZWFscGF0aDsKKwlzdHJ1Y3Qgc2V0c2lkX2RhdGEgc2V0c2lkOworCXN0cnVjdCBzdGF0X2RhdGEgc3RhdDsKKwlzdHJ1Y3QgdGltZW91dF9kYXRhIHRpbWVvdXQ7CisJc3RydWN0IHRydW5jYXRlX2RhdGEgdHJ1bmNhdGU7CisJc3RydWN0IHh4ZF9kYXRhIHh4ZDsKKwlzdHJ1Y3QgZGlmZl9kYXRhIGRpZmY7CisJc3RydWN0IGV4cHJfZGF0YSBleHByOworCXN0cnVjdCB0cl9kYXRhIHRyOworCXN0cnVjdCBiYXNlbmFtZV9kYXRhIGJhc2VuYW1lOworCXN0cnVjdCBjaG1vZF9kYXRhIGNobW9kOworCXN0cnVjdCBjbXBfZGF0YSBjbXA7CisJc3RydWN0IGNwX2RhdGEgY3A7CisJc3RydWN0IGNwaW9fZGF0YSBjcGlvOworCXN0cnVjdCBjdXRfZGF0YSBjdXQ7CisJc3RydWN0IGRhdGVfZGF0YSBkYXRlOworCXN0cnVjdCBkZF9kYXRhIGRkOworCXN0cnVjdCBkdV9kYXRhIGR1OworCXN0cnVjdCBlbnZfZGF0YSBlbnY7CisJc3RydWN0IGZpbGVfZGF0YSBmaWxlOworCXN0cnVjdCBmaW5kX2RhdGEgZmluZDsKKwlzdHJ1Y3QgZ3JlcF9kYXRhIGdyZXA7CisJc3RydWN0IGhlYWRfZGF0YSBoZWFkOworCXN0cnVjdCBpZF9kYXRhIGlkOworCXN0cnVjdCBsbl9kYXRhIGxuOworCXN0cnVjdCBsc19kYXRhIGxzOworCXN0cnVjdCBta2Rpcl9kYXRhIG1rZGlyOworCXN0cnVjdCBubF9kYXRhIG5sOworCXN0cnVjdCBvZF9kYXRhIG9kOworCXN0cnVjdCBwYXN0ZV9kYXRhIHBhc3RlOworCXN0cnVjdCBwYXRjaF9kYXRhIHBhdGNoOworCXN0cnVjdCBzZWRfZGF0YSBzZWQ7CisJc3RydWN0IHNvcnRfZGF0YSBzb3J0OworCXN0cnVjdCB0YWlsX2RhdGEgdGFpbDsKKwlzdHJ1Y3QgdGFyX2RhdGEgdGFyOworCXN0cnVjdCB0ZWVfZGF0YSB0ZWU7CisJc3RydWN0IHRvdWNoX2RhdGEgdG91Y2g7CisJc3RydWN0IHVuaXFfZGF0YSB1bmlxOworCXN0cnVjdCB3Y19kYXRhIHdjOworCXN0cnVjdCB4YXJnc19kYXRhIHhhcmdzOworfSB0aGlzOwpkaWZmIC0tZ2l0IGEvYW5kcm9pZC9tYWMvZ2VuZXJhdGVkL2hlbHAuaCBiL2FuZHJvaWQvbWFjL2dlbmVyYXRlZC9oZWxwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDIwOTVjMQotLS0gL2Rldi9udWxsCisrKyBiL2FuZHJvaWQvbWFjL2dlbmVyYXRlZC9oZWxwLmgKQEAgLTAsMCArMSw2OTIgQEAKKyNkZWZpbmUgSEVMUF90b3lib3hfZm9yY2Vfbm9tbXUgIldoZW4gdXNpbmcgbXVzbC1saWJjIG9uIGEgbm9tbXUgc3lzdGVtLCB5b3UnbGwgbmVlZCB0byBzYXkgXCJ5XCIgaGVyZVxudW5sZXNzIHlvdSB1c2VkIHRoZSBwYXRjaCBpbiB0aGUgbWNtLWJ1aWxkYWxsLnNoIHNjcmlwdC4gWW91IGNhbiBhbHNvXG5zYXkgXCJ5XCIgaGVyZSB0byB0ZXN0IHRoZSBub21tdSBjb2RlcGF0aHMgb24gYW4gbW11IHN5c3RlbS5cblxuQSBub21tdSBzeXN0ZW0gY2FuJ3QgdXNlIGZvcmsoKSwgaXQgY2FuIG9ubHkgdmZvcmsoKSB3aGljaCBzdXNwZW5kc1xudGhlIHBhcmVudCB1bnRpbCB0aGUgY2hpbGQgY2FsbHMgZXhlYygpIG9yIGV4aXRzLiBXaGVuIGEgcHJvZ3JhbVxubmVlZHMgYSBzZWNvbmQgaW5zdGFuY2Ugb2YgaXRzZWxmIHRvIHJ1biBzcGVjaWZpYyBjb2RlIGF0IHRoZSBzYW1lXG50aW1lIGFzIHRoZSBwYXJlbnQsIGl0IG11c3QgdXNlIGEgbW9yZSBjb21wbGljYXRlZCBhcHByb2FjaCAoc3VjaCBhc1xuZXhlYyhcIi9wcm9jL3NlbGYvZXhlXCIpIHRoZW4gcGFzcyBkYXRhIHRvIHRoZSBuZXcgY2hpbGQgdGhyb3VnaCBhIHBpcGUpXG53aGljaCBpcyBsYXJnZXIgYW5kIHNsb3dlciwgZXNwZWNpYWxseSBmb3IgdGhpbmdzIGxpa2UgdG95c2ggc3Vic2hlbGxzXG50aGF0IG5lZWQgdG8gZHVwbGljYXRlIGEgbG90IG9mIGludGVybmFsIHN0YXRlIGluIHRoZSBjaGlsZCBwcm9jZXNzXG5mb3JrKCkgZ2l2ZXMgeW91IGZvciBmcmVlLlxuXG5MaWJyYXJpZXMgbGlrZSB1Y2xpYmMgb21pdCBmb3JrKCkgb24gbm9tbXUgc3lzdGVtcywgYWxsb3dpbmdcbmNvbXBpbGUtdGltZSBwcm9iZXMgdG8gc2VsZWN0IHdoaWNoIGNvZGVwYXRoIHRvIHVzZS4gQnV0IG11c2xcbmludGVudGlvbmFsbHkgaW5jbHVkZXMgYSBicm9rZW4gdmVyc2lvbiBvZiBmb3JrKCkgdGhhdCBhbHdheXMgcmV0dXJuc1xuLUVOT1NZUyBvbiBub21tdSBzeXN0ZW1zLCBhbmQgZ29lcyBvdXQgb2YgaXRzIHdheSB0byBwcmV2ZW50IGFueVxuY3Jvc3MtY29tcGlsZSBjb21wYXRpYmxlIGNvbXBpbGUtdGltZSBwcm9iZXMgZm9yIGEgbm9tbXUgc3lzdGVtLlxuKEl0IGRvZXNuJ3QgZXZlbiAjZGVmaW5lIF9fTVVTTF9fIGluIGZlYXR1cmVzLmguKSBNdXNsIGRvZXMgdGhpc1xuZGVzcGl0ZSB0aGUgZmFjdCB0aGF0IGEgbm9tbXUgc3lzdGVtIGNhbid0IGV2ZW4gcnVuIHN0YW5kYXJkIEVMRlxuYmluYXJpZXMgKHJlcXVpcmluZyBzcGVjaWFsbHkgcGFja2FnZWQgZXhlY3V0YWJsZXMpIGJlY2F1c2UgaXQgd2FudHNcbnRvIGZvcmNlIGV2ZXJ5IHByb2dyYW0gdG8gZWl0aGVyIGluY2x1ZGUgYWxsIG5vbW11IGNvZGUgaW4gZXZlcnlcbmluc3RhbmNlIGV2ZXIgYnVpbHQsIG9yIGRyb3Agbm9tbXUgc3VwcG9ydCBhbHRvZ2V0aGVyLlxuXG5CdWlsZGluZyBhIHNjcmlwdHMvbWNtLWJ1aWxkYWxsLnNoIHRvb2xjaGFpbiBwYXRjaGVzIG11c2wgdG8gZml4IHRoaXMuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X3VpZF91c3IgIldoZW4gY29tbWFuZHMgbGlrZSB1c2VyYWRkL2dyb3VwYWRkIGFsbG9jYXRlIHVzZXIgSURzLCBzdGFydCBoZXJlLiIKKworI2RlZmluZSBIRUxQX3RveWJveF91aWRfc3lzICJXaGVuIGNvbW1hbmRzIGxpa2UgdXNlcmFkZC9ncm91cGFkZCBhbGxvY2F0ZSBzeXN0ZW0gSURzLCBzdGFydCBoZXJlLiIKKworI2RlZmluZSBIRUxQX3RveWJveF9kZWJ1ZyAiRW5hYmxlIGV4dHJhIGNoZWNrcyBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLiBBbGwgb2YgdGhlbSBjYXRjaFxudGhpbmdzIHRoYXQgY2FuIG9ubHkgZ28gd3JvbmcgYXQgZGV2ZWxvcG1lbnQgdGltZSwgbm90IHJ1bnRpbWUuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X25vcmVjdXJzZSAiV2hlbiBvbmUgdG95Ym94IGNvbW1hbmQgY2FsbHMgYW5vdGhlciwgdXN1YWxseSBpdCBqdXN0IGNhbGxzIHRoZSBuZXdcbmNvbW1hbmQncyBtYWluKCkgZnVuY3Rpb24gcmF0aGVyIHRoYW4gc2VhcmNoaW5nIHRoZSAkUEFUSCBhbmQgY2FsbGluZ1xuZXhlYyBvbiBhbm90aGVyIGZpbGUgKHdoaWNoIGlzIG11Y2ggc2xvd2VyKS5cblxuVGhpcyBkaXNhYmxlcyB0aGF0IG9wdGltaXphdGlvbiwgc28gdG95Ym94IHdpbGwgcnVuIGV4dGVybmFsIGNvbW1hbmRzXG4gICAgICAgZXZlbiB3aGVuIGl0IGhhcyBhIGJ1aWx0LWluIHZlcnNpb24gb2YgdGhhdCBjb21tYW5kLiBUaGlzIHJlcXVpcmVzXG4gICAgICAgdG95Ym94IHN5bWxpbmtzIHRvIGJlIGluc3RhbGxlZCBpbiB0aGUgJFBBVEgsIG9yIHJlLWludm9raW5nIHRoZVxuICAgICAgIFwidG95Ym94XCIgbXVsdGlwbGV4ZXIgY29tbWFuZCBieSBuYW1lLiIKKworI2RlZmluZSBIRUxQX3RveWJveF9mcmVlICJXaGVuIGEgcHJvZ3JhbSBleGl0cywgdGhlIG9wZXJhdGluZyBzeXN0ZW0gd2lsbCBjbGVhbiB1cCBhZnRlciBpdFxuKGZyZWUgbWVtb3J5LCBjbG9zZSBmaWxlcywgZXRjKS4gVG8gc2F2ZSBzaXplLCB0b3lib3ggdXN1YWxseSByZWxpZXNcbm9uIHRoaXMgYmVoYXZpb3IuIElmIHlvdSdyZSBydW5uaW5nIHRveWJveCB1bmRlciBhIGRlYnVnZ2VyIG9yXG53aXRob3V0IGEgcmVhbCBPUyAoYWxhIG5ld2xpYitsaWJnbG9zcyksIGVuYWJsZSB0aGlzIHRvIG1ha2UgdG95Ym94XG5jbGVhbiB1cCBhZnRlciBpdHNlbGYuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X3poZWxwICJDb21wcmVzcyBoZWxwIHdpdGggZ3ppcCAtOSwgZGVmbGF0aW5nIHdoZW4gZGlzcGxheWVkLiBUaGlzIG1ha2VzIHRoZVxuYmluYXJ5IHNtYWxsZXIgYnV0IGNhbiBpbmNyZWFzZSBydW50aW1lIG1lbW9yeSB1c2FnZS4iCisKKyNkZWZpbmUgSEVMUF90b3lib3hfaGVscF9kYXNoZGFzaCAiU3VwcG9ydCAtLWhlbHAgYXJndW1lbnQgaW4gYWxsIGNvbW1hbmRzLCBldmVuIG9uZXMgd2l0aCBhIE5VTExcbm9wdHN0cmluZy4gKFVzZSBUT1lGTEFHX05PSEVMUCB0byBkaXNhYmxlLikgUHJvZHVjZXMgdGhlIHNhbWUgb3V0cHV0XG5hcyBcImhlbHAgY29tbWFuZFwiLiAtLXZlcnNpb24gc2hvd3MgdG95Ym94IHZlcnNpb24uIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X2hlbHAgIkluY2x1ZGUgaGVscCB0ZXh0IGZvciBlYWNoIGNvbW1hbmQuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X2Zsb2F0ICJJbmNsdWRlIGZsb2F0aW5nIHBvaW50IHN1cHBvcnQgaW5mcmFzdHJ1Y3R1cmUgYW5kIGNvbW1hbmRzIHRoYXRcbnJlcXVpcmUgaXQuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X2xpYnogIlVzZSBsaWJ6IGZvciBneiBzdXBwb3J0LiIKKworI2RlZmluZSBIRUxQX3RveWJveF9saWJjcnlwdG8gIlVzZSBmYXN0ZXIgaGFzaCBmdW5jdGlvbnMgb3V0IG9mIGV4dGVybmFsIC1sY3J5cHRvIGxpYnJhcnkuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94X3NtYWNrICJJbmNsdWRlIFNNQUNLIG9wdGlvbnMgaW4gY29tbWFuZHMgbGlrZSBscyBmb3Igc3lzdGVtcyBsaWtlIFRpemVuLiIKKworI2RlZmluZSBIRUxQX3RveWJveF9zZWxpbnV4ICJJbmNsdWRlIFNFTGludXggb3B0aW9ucyBpbiBjb21tYW5kcyBzdWNoIGFzIGxzLCBhbmQgYWRkXG5TRUxpbnV4LXNwZWNpZmljIGNvbW1hbmRzIHN1Y2ggYXMgY2hjb24gdG8gdGhlIEFuZHJvaWQgbWVudS4iCisKKyNkZWZpbmUgSEVMUF90b3lib3hfbHNtX25vbmUgIkRvbid0IHRyeSB0byBhY2hpZXZlIFwid2F0ZXJ0aWdodFwiIGJ5IHBsdWdnaW5nIHRoZSBob2xlcyBpbiBhXG5jb2xsYW5kZXIsIGluc3RlYWQgdXNlIGNvbnZlbnRpb25hbCB1bml4IHNlY3VyaXR5IChhbmQgcG9zc2libHlcbkxpbnV4IENvbnRhaW5lcnMpIGZvciBhIHNpbXBsZSBzdHJhaWdodGZvcndhcmQgc3lzdGVtLiIKKworI2RlZmluZSBIRUxQX3RveWJveF9zdWlkICJTdXBwb3J0IGZvciB0aGUgU2V0IFVzZXIgSUQgYml0LCB0byBpbnN0YWxsIHRveWJveCBzdWlkIHJvb3QgYW5kIGRyb3BcbnBlcm1pc3Npb25zIGZvciBjb21tYW5kcyB3aGljaCBkbyBub3QgcmVxdWlyZSByb290IGFjY2Vzcy4gVG8gdXNlXG50aGlzIGNoYW5nZSBvd25lcnNoaXAgb2YgdGhlIGZpbGUgdG8gdGhlIHJvb3QgdXNlciBhbmQgc2V0IHRoZSBzdWlkXG5iaXQgaW4gdGhlIGZpbGUgcGVybWlzc2lvbnM6XG5cbmNob3duIHJvb3Q6cm9vdCB0b3lib3g7IGNobW9kICtzIHRveWJveFxuXG5wcm9tcHQgXCJTZWN1cml0eSBCbGFua2V0XCJcbmRlZmF1bHQgVE9ZQk9YX0xTTV9OT05FXG5oZWxwXG5TZWxlY3QgYSBMaW51eCBTZWN1cml0eSBNb2R1bGUgdG8gY29tcGxpY2F0ZSB5b3VyIHN5c3RlbVxudW50aWwgeW91IGNhbid0IGZpbmQgaG9sZXMgaW4gaXQuIgorCisjZGVmaW5lIEhFTFBfdG95Ym94ICJ1c2FnZTogdG95Ym94IFstLWxvbmcgfCAtLWhlbHAgfCAtLXZlcnNpb24gfCBbQ09NTUFORF0gW0FSR1VNRU5UUy4uLl1dXG5cbldpdGggbm8gYXJndW1lbnRzLCBcInRveWJveFwiIHNob3dzIGF2YWlsYWJsZSBDT01NQU5EIG5hbWVzLiBBZGQgLS1sb25nXG50byBpbmNsdWRlIHN1Z2dlc3RlZCBpbnN0YWxsIHBhdGggZm9yIGVhY2ggY29tbWFuZCwgc2VlXG5odHRwczovL2xhbmRsZXkubmV0L3RveWJveC9mYXEuaHRtbCNpbnN0YWxsIGZvciBkZXRhaWxzLlxuXG5GaXJzdCBhcmd1bWVudCBpcyBuYW1lIG9mIGEgQ09NTUFORCB0byBydW4sIGZvbGxvd2VkIGJ5IGFueSBBUkdVTUVOVFNcbnRvIHRoYXQgY29tbWFuZC4gTW9zdCB0b3lib3ggY29tbWFuZHMgYWxzbyB1bmRlcnN0YW5kOlxuXG4tLWhlbHAJCVNob3cgY29tbWFuZCBoZWxwIChvbmx5KVxuLS12ZXJzaW9uCVNob3cgdG95Ym94IHZlcnNpb24gKG9ubHkpXG5cblRoZSBmaWxlbmFtZSBcIi1cIiBtZWFucyBzdGRpbi9zdGRvdXQsIGFuZCBcIi0tXCIgc3RvcHMgYXJndW1lbnQgcGFyc2luZy5cblxuTnVtZXJpY2FsIGFyZ3VtZW50cyBhY2NlcHQgYSBzaW5nbGUgbGV0dGVyIHN1ZmZpeCBmb3JcbmtpbG8sIG1lZ2EsIGdpZ2EsIHRlcmEsIHBldGEsIGFuZCBleGFieXRlcywgcGx1cyBhbiBhZGRpdGlvbmFsXG5cImRcIiB0byBpbmRpY2F0ZSBkZWNpbWFsIDEwMDAncyBpbnN0ZWFkIG9mIDEwMjQuXG5cbkR1cmF0aW9ucyBjYW4gYmUgZGVjaW1hbCBmcmFjdGlvbnMgYW5kIGFjY2VwdCBtaW51dGUgKFwibVwiKSwgaG91ciAoXCJoXCIpLFxub3IgZGF5IChcImRcIikgc3VmZml4ZXMgKHNvIDAuMW0gPSA2cykuIgorCisjZGVmaW5lIEhFTFBfc2V0ZW5mb3JjZSAidXNhZ2U6IHNldGVuZm9yY2UgW2VuZm9yY2luZ3xwZXJtaXNzaXZlfDF8MF1cblxuU2V0cyB3aGV0aGVyIFNFTGludXggaXMgZW5mb3JjaW5nICgxKSBvciBwZXJtaXNzaXZlICgwKS4iCisKKyNkZWZpbmUgSEVMUF9zZW5kZXZlbnQgInVzYWdlOiBzZW5kZXZlbnQgREVWSUNFIFRZUEUgQ09ERSBWQUxVRVxuXG5TZW5kcyBhIExpbnV4IGlucHV0IGV2ZW50LiIKKworI2RlZmluZSBIRUxQX3J1bmNvbiAidXNhZ2U6IHJ1bmNvbiBDT05URVhUIENPTU1BTkQgW0FSR1MuLi5dXG5cblJ1biBhIGNvbW1hbmQgaW4gYSBzcGVjaWZpZWQgc2VjdXJpdHkgY29udGV4dC4iCisKKyNkZWZpbmUgSEVMUF9yZXN0b3JlY29uICJ1c2FnZTogcmVzdG9yZWNvbiBbLURdIFstRl0gWy1SXSBbLW5dIFstdl0gRklMRS4uLlxuXG5SZXN0b3JlcyB0aGUgZGVmYXVsdCBzZWN1cml0eSBjb250ZXh0cyBmb3IgdGhlIGdpdmVuIGZpbGVzLlxuXG4tRAlBcHBseSB0byAvZGF0YS9kYXRhIHRvb1xuLUYJRm9yY2UgcmVzZXRcbi1SCVJlY3Vyc2UgaW50byBkaXJlY3Rvcmllc1xuLW4JRG9uJ3QgbWFrZSBhbnkgY2hhbmdlczsgdXNlZnVsIHdpdGggLXYgdG8gc2VlIHdoYXQgd291bGQgY2hhbmdlXG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfbG9nICJ1c2FnZTogbG9nIFstcCBQUkldIFstdCBUQUddIFtNRVNTQUdFLi4uXVxuXG5Mb2dzIG1lc3NhZ2UgKG9yIHN0ZGluKSB0byBsb2djYXQuXG5cbi1wCVVzZSB0aGUgZ2l2ZW4gcHJpb3JpdHkgaW5zdGVhZCBvZiBJTkZPOlxuCWQ6IERFQlVHICBlOiBFUlJPUiAgZjogRkFUQUwgIGk6IElORk8gIHY6IFZFUkJPU0UgIHc6IFdBUk4gIHM6IFNJTEVOVFxuLXQJVXNlIHRoZSBnaXZlbiB0YWcgaW5zdGVhZCBvZiBcImxvZ1wiIgorCisjZGVmaW5lIEhFTFBfbG9hZF9wb2xpY3kgInVzYWdlOiBsb2FkX3BvbGljeSBGSUxFXG5cbkxvYWQgdGhlIHNwZWNpZmllZCBTRUxpbnV4IHBvbGljeSBmaWxlLiIKKworI2RlZmluZSBIRUxQX2dldGVuZm9yY2UgInVzYWdlOiBnZXRlbmZvcmNlXG5cblNob3dzIHdoZXRoZXIgU0VMaW51eCBpcyBkaXNhYmxlZCwgZW5mb3JjaW5nLCBvciBwZXJtaXNzaXZlLiIKKworI2RlZmluZSBIRUxQX3NrZWxldG9uX2FsaWFzICJ1c2FnZTogc2tlbGV0b25fYWxpYXMgWy1kcV0gWy1iIE5VTUJFUl1cblxuRXhhbXBsZSBvZiBhIHNlY29uZCBjb21tYW5kIHdpdGggZGlmZmVyZW50IGFyZ3VtZW50cyBpbiB0aGUgc2FtZSBzb3VyY2VcbmZpbGUgYXMgdGhlIGZpcnN0LiBUaGlzIGFsbG93cyBzaGFyZWQgaW5mcmFzdHJ1Y3R1cmUgb3V0c2lkZSBvZiBsaWIvLiIKKworI2RlZmluZSBIRUxQX3NrZWxldG9uICJ1c2FnZTogc2tlbGV0b24gWy1hXSBbLWIgU1RSSU5HXSBbLWMgTlVNQkVSXSBbLWQgTElTVF0gWy1lIENPVU5UXSBbLi4uXVxuXG5UZW1wbGF0ZSBmb3IgbmV3IGNvbW1hbmRzLiBZb3UgZG9uJ3QgbmVlZCB0aGlzLlxuXG5XaGVuIGNyZWF0aW5nIGEgbmV3IGNvbW1hbmQsIGNvcHkgdGhpcyBmaWxlIGFuZCBkZWxldGUgdGhlIHBhcnRzIHlvdVxuZG9uJ3QgbmVlZC4gQmUgc3VyZSB0byByZXBsYWNlIGFsbCBpbnN0YW5jZXMgb2YgXCJza2VsZXRvblwiICh1cHBlciBhbmQgbG93ZXJcbmNhc2UpIHdpdGggeW91ciBuZXcgY29tbWFuZCBuYW1lLlxuXG5Gb3Igc2ltcGxlIGNvbW1hbmRzLCBcImhlbGxvLmNcIiBpcyBwcm9iYWJseSBhIGJldHRlciBzdGFydGluZyBwb2ludC4iCisKKyNkZWZpbmUgSEVMUF9sb2dwYXRoICJ1c2FnZTogbG9ncGF0aCAuLi5cblxuQXBwZW5kIGNvbW1hbmQgbGluZSB0byAkTE9HUEFUSCwgdGhlbiBjYWxsIHNlY29uZCBpbnN0YW5jZVxub2YgY29tbWFuZCBpbiAkUEFUSC4iCisKKyNkZWZpbmUgSEVMUF9ob3N0aWQgInVzYWdlOiBob3N0aWRcblxuUHJpbnQgdGhlIG51bWVyaWMgaWRlbnRpZmllciBmb3IgdGhlIGN1cnJlbnQgaG9zdC4iCisKKyNkZWZpbmUgSEVMUF9oZWxsbyAidXNhZ2U6IGhlbGxvXG5cbkEgaGVsbG8gd29ybGQgcHJvZ3JhbS5cblxuTW9zdGx5IHVzZWQgYXMgYSBzaW1wbGUgdGVtcGxhdGUgZm9yIGFkZGluZyBuZXcgY29tbWFuZHMuXG5PY2Nhc2lvbmFsbHkgbmljZSB0byBzbW9rZXRlc3Qga2VybmVsIGJvb3RpbmcgdmlhIFwiaW5pdD0vdXNyL2Jpbi9oZWxsb1wiLiIKKworI2RlZmluZSBIRUxQX2RlbW9fdXRmOHRvd2MgInVzYWdlOiBkZW1vX3V0Zjh0b3djXG5cblByaW50IGRpZmZlcmVuY2VzIGJldHdlZW4gdG95Ym94J3MgdXRmOCBjb252ZXJzaW9uIHJvdXRpbmVzIHZzIGxpYmMgZHUgam91ci4iCisKKyNkZWZpbmUgSEVMUF9kZW1vX3NjYW5rZXkgInVzYWdlOiBkZW1vX3NjYW5rZXlcblxuTW92ZSBhIGxldHRlciBhcm91bmQgdGhlIHNjcmVlbi4gSGl0IEVTQyB0byBleGl0LiIKKworI2RlZmluZSBIRUxQX2RlbW9fbnVtYmVyICJ1c2FnZTogZGVtb19udW1iZXIgWy1oc2JpXSBbLUQgTEVOXSBOVU1CRVIuLi5cblxuLUQJb3V0cHV0IGZpZWxkIGlzIExFTiBjaGFyc1xuLU0JaW5wdXQgdW5pdHMgKGluZGV4IGludG8gYmttZ3RwZSlcbi1jCUNvbW1hIGNvbW1hIGRvd24gZG8gYmUgZG8gZG93biBkb3duXG4tYglVc2UgXCJCXCIgZm9yIHNpbmdsZSBieXRlIHVuaXRzIChIUl9CKVxuLWQJRGVjaW1hbCB1bml0c1xuLWgJSHVtYW4gcmVhZGFibGVcbi1zCVNwYWNlIGJldHdlZW4gbnVtYmVyIGFuZCB1bml0cyAoSFJfU1BBQ0UpIgorCisjZGVmaW5lIEhFTFBfZGVtb19tYW55X29wdGlvbnMgInVzYWdlOiBkZW1vX21hbnlfb3B0aW9ucyAtW2EtekEtWl1cblxuUHJpbnQgdGhlIG9wdGZsYWdzIHZhbHVlIG9mIHRoZSBjb21tYW5kIGFyZ3VtZW50cywgaW4gaGV4LiIKKworI2RlZmluZSBIRUxQX3Vtb3VudCAidXNhZ2U6IHVtb3VudCBbLWEgWy10IFRZUEVbLFRZUEUuLi5dXV0gWy12cmZEXSBbRElSLi4uXVxuXG5Vbm1vdW50IHRoZSBsaXN0ZWQgZmlsZXN5c3RlbXMuXG5cbi1hCVVubW91bnQgYWxsIG1vdW50cyBpbiAvcHJvYy9tb3VudHMgaW5zdGVhZCBvZiBjb21tYW5kIGxpbmUgbGlzdFxuLUQJRG9uJ3QgZnJlZSBsb29wYmFjayBkZXZpY2Uocylcbi1mCUZvcmNlIHVubW91bnRcbi1sCUxhenkgdW5tb3VudCAoZGV0YWNoIGZyb20gZmlsZXN5c3RlbSBub3csIGNsb3NlIHdoZW4gbGFzdCB1c2VyIGRvZXMpXG4tbglEb24ndCB1c2UgL3Byb2MvbW91bnRzXG4tcglSZW1vdW50IHJlYWQgb25seSBpZiB1bm1vdW50aW5nIGZhaWxzXG4tdAlSZXN0cmljdCBcImFsbFwiIHRvIG1vdW50cyBvZiBUWVBFIChvciB1c2UgXCJub1RZUEVcIiB0byBza2lwKVxuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX3N5bmMgInVzYWdlOiBzeW5jXG5cbldyaXRlIHBlbmRpbmcgY2FjaGVkIGRhdGEgdG8gZGlzayAoc3luY2hyb25pemUpLCBibG9ja2luZyB1bnRpbCBkb25lLiIKKworI2RlZmluZSBIRUxQX3N1ICJ1c2FnZTogc3UgWy1scF0gWy11IFVJRF0gWy1nIEdJRCwuLi5dIFstcyBTSEVMTF0gWy1jIENNRF0gW1VTRVIgW0NPTU1BTkQuLi5dXVxuXG5Td2l0Y2ggdXNlciwgcHJvbXB0aW5nIGZvciBwYXNzd29yZCBvZiBuZXcgdXNlciB3aGVuIG5vdCBydW4gYXMgcm9vdC5cblxuV2l0aCBvbmUgYXJndW1lbnQsIHN3aXRjaCB0byBVU0VSIGFuZCBydW4gdXNlcidzIHNoZWxsIGZyb20gL2V0Yy9wYXNzd2QuXG5XaXRoIG5vIGFyZ3VtZW50cywgVVNFUiBpcyByb290LiBJZiBDT01NQU5EIGxpbmUgcHJvdmlkZWQgYWZ0ZXIgVVNFUixcbmV4ZWMoKSBpdCBhcyBuZXcgVVNFUiAoYnlwYXNzaW5nIHNoZWxsKS4gSWYgLXUgb3IgLWcgc3BlY2lmaWVkLCBmaXJzdFxuYXJndW1lbnQgKGlmIGFueSkgaXNuJ3QgVVNFUiAoaXQncyBDT01NQU5EKS5cblxuZmlyc3QgYXJndW1lbnQgaXMgVVNFUiBuYW1lIHRvIHN3aXRjaCB0byAod2hpY2ggbXVzdCBleGlzdCkuXG5Ob24tcm9vdCB1c2VycyBhcmUgcHJvbXB0ZWQgZm9yIG5ldyB1c2VyJ3MgcGFzc3dvcmQuXG5cbi1zCVNoZWxsIHRvIHVzZSAoZGVmYXVsdCBpcyB1c2VyJ3Mgc2hlbGwgZnJvbSAvZXRjL3Bhc3N3ZClcbi1jCUNvbW1hbmQgbGluZSB0byBwYXNzIHRvIC1zIHNoZWxsIChhbGEgc2ggLWMgXCJDTURcIilcbi1sCVJlc2V0IGVudmlyb25tZW50IGFzIGlmIG5ldyBsb2dpbi5cbi11CVN3aXRjaCB0byBVSUQgaW5zdGVhZCBvZiBVU0VSXG4tZwlTd2l0Y2ggdG8gR0lEIChvbmx5IHJvb3QgYWxsb3dlZCwgY2FuIGJlIGNvbW1hIHNlcGFyYXRlZCBsaXN0KVxuLXAJUHJlc2VydmUgZW52aXJvbm1lbnQgKGV4Y2VwdCBmb3IgJFBBVEggYW5kICRJRlMpIgorCisjZGVmaW5lIEhFTFBfc2VxICJ1c2FnZTogc2VxIFstd3wtZiBmbXRfc3RyXSBbLXMgc2VwX3N0cl0gW2ZpcnN0XSBbaW5jcmVtZW50XSBsYXN0XG5cbkNvdW50IGZyb20gZmlyc3QgdG8gbGFzdCwgYnkgaW5jcmVtZW50LiBPbWl0dGVkIGFyZ3VtZW50cyBkZWZhdWx0XG50byAxLiBUd28gYXJndW1lbnRzIGFyZSB1c2VkIGFzIGZpcnN0IGFuZCBsYXN0LiBBcmd1bWVudHMgY2FuIGJlXG5uZWdhdGl2ZSBvciBmbG9hdGluZyBwb2ludC5cblxuLWYJVXNlIGZtdF9zdHIgYXMgYSBwcmludGYtc3R5bGUgZmxvYXRpbmcgcG9pbnQgZm9ybWF0IHN0cmluZ1xuLXMJVXNlIHNlcF9zdHIgYXMgc2VwYXJhdG9yLCBkZWZhdWx0IGlzIGEgbmV3bGluZSBjaGFyYWN0ZXJcbi13CVBhZCB0byBlcXVhbCB3aWR0aCB3aXRoIGxlYWRpbmcgemVyb2VzIgorCisjZGVmaW5lIEhFTFBfcGlkb2YgInVzYWdlOiBwaWRvZiBbLXNdIFstbyBvbWl0cGlkWyxvbWl0cGlkLi4uXV0gW05BTUUuLi5dXG5cblByaW50IHRoZSBQSURzIG9mIGFsbCBwcm9jZXNzZXMgd2l0aCB0aGUgZ2l2ZW4gbmFtZXMuXG5cbi1vCU9taXQgUElEKHMpXG4tcwlTaW5nbGUgc2hvdCwgb25seSByZXR1cm4gb25lIHBpZFxuLXgJTWF0Y2ggc2hlbGwgc2NyaXB0cyB0b28iCisKKyNkZWZpbmUgSEVMUF9wYXNzd2Rfc2FkICJQYXNzd29yZCBjaGFuZ2VzIGFyZSBjaGVja2VkIHRvIG1ha2Ugc3VyZSB0aGV5J3JlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZyxcbmRvbid0IGluY2x1ZGUgdGhlIGVudGlyZSB1c2VybmFtZSAoYnV0IG5vdCBhIHN1YnNldCBvZiBpdCksIG9yIHRoZSBlbnRpcmVcbnByZXZpb3VzIHBhc3N3b3JkIChidXQgY2hhbmdpbmcgcGFzc3dvcmQxLCBwYXNzd29yZDIsIHBhc3N3b3JkMyBpcyBmaW5lKS5cblRoaXMgaGV1cmlzdGljIGFjY2VwdHMgXCJhYWFhYWFcIiBhbmQgXCIxMjM0NTZcIi4iCisKKyNkZWZpbmUgSEVMUF9wYXNzd2QgInVzYWdlOiBwYXNzd2QgWy1hIEFMR09dIFstZGx1XSBbVVNFUl1cblxuVXBkYXRlIHVzZXIncyBsb2dpbiBwYXNzd29yZC4gRGVmYXVsdHMgdG8gY3VycmVudCB1c2VyLlxuXG4tYSBBTEdPCUVuY3J5cHRpb24gbWV0aG9kIChkZXMsIG1kNSwgc2hhMjU2LCBzaGE1MTIpIGRlZmF1bHQ6IG1kNVxuLWQJCVNldCBwYXNzd29yZCB0byAnJ1xuLWwJCUxvY2sgKGRpc2FibGUpIGFjY291bnRcbi11CQlVbmxvY2sgKGVuYWJsZSkgYWNjb3VudCIKKworI2RlZmluZSBIRUxQX21vdW50ICJ1c2FnZTogbW91bnQgWy1hZkZyc3Z3XSBbLXQgVFlQRV0gWy1vIE9QVElPTixdIFtbREVWSUNFXSBESVJdXG5cbk1vdW50IG5ldyBmaWxlc3lzdGVtKHMpIG9uIGRpcmVjdG9yaWVzLiBXaXRoIG5vIGFyZ3VtZW50cywgZGlzcGxheSBleGlzdGluZ1xubW91bnRzLlxuXG4tYQlNb3VudCBhbGwgZW50cmllcyBpbiAvZXRjL2ZzdGFiICh3aXRoIC10LCBvbmx5IGVudHJpZXMgb2YgdGhhdCBUWVBFKVxuLU8JT25seSBtb3VudCAtYSBlbnRyaWVzIHRoYXQgaGF2ZSB0aGlzIG9wdGlvblxuLWYJRmFrZSBpdCAoZG9uJ3QgYWN0dWFsbHkgbW91bnQpXG4tcglSZWFkIG9ubHkgKHNhbWUgYXMgLW8gcm8pXG4tdwlSZWFkL3dyaXRlIChkZWZhdWx0LCBzYW1lIGFzIC1vIHJ3KVxuLXQJU3BlY2lmeSBmaWxlc3lzdGVtIHR5cGVcbi12CVZlcmJvc2VcblxuT1BUSU9OUyBpcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIG9wdGlvbnMsIHdoaWNoIGNhbiBhbHNvIGJlIHN1cHBsaWVkXG5hcyAtLWxvbmdvcHRzLlxuXG5BdXRvZGV0ZWN0cyBsb29wYmFjayBtb3VudHMgKGEgZmlsZSBvbiBhIGRpcmVjdG9yeSkgYW5kIGJpbmQgbW91bnRzIChmaWxlXG5vbiBmaWxlLCBkaXJlY3Rvcnkgb24gZGlyZWN0b3J5KSwgc28geW91IGRvbid0IG5lZWQgdG8gc2F5IC0tYmluZCBvciAtLWxvb3AuXG5Zb3UgY2FuIGFsc28gXCJtb3VudCAtYSAvcGF0aFwiIHRvIG1vdW50IGV2ZXJ5dGhpbmcgaW4gL2V0Yy9mc3RhYiB1bmRlciAvcGF0aCxcbmV2ZW4gaWYgaXQncyBub2F1dG8uIERFVklDRSBzdGFydGluZyB3aXRoIFVVSUQ9IGlzIGlkZW50aWZpZWQgYnkgYmxraWQgLVUuIgorCisjZGVmaW5lIEhFTFBfbWt0ZW1wICJ1c2FnZTogbWt0ZW1wIFstZHF0dV0gWy1wIERJUl0gW1RFTVBMQVRFXVxuXG5TYWZlbHkgY3JlYXRlIGEgbmV3IGZpbGUgXCJESVIvVEVNUExBVEVcIiBhbmQgcHJpbnQgaXRzIG5hbWUuXG5cbi1kCUNyZWF0ZSBkaXJlY3RvcnkgaW5zdGVhZCBvZiBmaWxlICgtLWRpcmVjdG9yeSlcbi1wCVB1dCBuZXcgZmlsZSBpbiBESVIgKC0tdG1wZGlyKVxuLXEJUXVpZXQsIG5vIGVycm9yIG1lc3NhZ2VzXG4tdAlQcmVmZXIgJFRNUERJUiA+IERJUiA+IC90bXAgKGRlZmF1bHQgRElSID4gJFRNUERJUiA+IC90bXApXG4tdQlEb24ndCBjcmVhdGUgYW55dGhpbmcsIGp1c3QgcHJpbnQgd2hhdCB3b3VsZCBiZSBjcmVhdGVkXG5cbkVhY2ggWCBpbiBURU1QTEFURSBpcyByZXBsYWNlZCB3aXRoIGEgcmFuZG9tIHByaW50YWJsZSBjaGFyYWN0ZXIuIFRoZVxuZGVmYXVsdCBURU1QTEFURSBpcyB0bXAuWFhYWFhYWFhYWC4iCisKKyNkZWZpbmUgSEVMUF9ta25vZF96ICJ1c2FnZTogbWtub2QgWy1aIENPTlRFWFRdIC4uLlxuXG4tWglTZXQgc2VjdXJpdHkgY29udGV4dCB0byBjcmVhdGVkIGZpbGUiCisKKyNkZWZpbmUgSEVMUF9ta25vZCAidXNhZ2U6IG1rbm9kIFstbSBNT0RFXSBOQU1FIFRZUEUgW01BSk9SIE1JTk9SXVxuXG5DcmVhdGUgYSBzcGVjaWFsIGZpbGUgTkFNRSB3aXRoIGEgZ2l2ZW4gdHlwZS4gVFlQRSBpcyBiIGZvciBibG9jayBkZXZpY2UsXG5jIG9yIHUgZm9yIGNoYXJhY3RlciBkZXZpY2UsIHAgZm9yIG5hbWVkIHBpcGUgKHdoaWNoIGlnbm9yZXMgTUFKT1IvTUlOT1IpLlxuXG4tbQlNb2RlIChmaWxlIHBlcm1pc3Npb25zKSBvZiBuZXcgZGV2aWNlLCBpbiBvY3RhbCBvciB1K3ggZm9ybWF0IgorCisjZGVmaW5lIEhFTFBfc2hhNTEyc3VtICJTZWUgbWQ1c3VtIgorCisjZGVmaW5lIEhFTFBfc2hhMzg0c3VtICJTZWUgbWQ1c3VtIgorCisjZGVmaW5lIEhFTFBfc2hhMjU2c3VtICJTZWUgbWQ1c3VtIgorCisjZGVmaW5lIEhFTFBfc2hhMjI0c3VtICJTZWUgbWQ1c3VtIgorCisjZGVmaW5lIEhFTFBfc2hhMXN1bSAiU2VlIG1kNXN1bSIKKworI2RlZmluZSBIRUxQX21kNXN1bSAidXNhZ2U6ID8/P3N1bSBbLWJjc10gW0ZJTEVdLi4uXG5cbkNhbGN1bGF0ZSBoYXNoIGZvciBlYWNoIGlucHV0IGZpbGUsIHJlYWRpbmcgZnJvbSBzdGRpbiBpZiBub25lLCB3cml0aW5nXG5oZXhhZGVjaW1hbCBkaWdpdHMgdG8gc3Rkb3V0IGZvciBlYWNoIGlucHV0IGZpbGUgKG1kNT0zMiBoZXggZGlnaXRzLFxuc2hhMT00MCwgc2hhMjI0PTU2LCBzaGEyNTY9NjQsIHNoYTM4ND05Niwgc2hhNTEyPTEyOCkgZm9sbG93ZWQgYnkgZmlsZW5hbWUuXG5cbi1iCUJyaWVmIChoYXNoIG9ubHksIG5vIGZpbGVuYW1lKVxuLWMJQ2hlY2sgZWFjaCBsaW5lIG9mIGVhY2ggRklMRSBpcyB0aGUgc2FtZSBoYXNoK2ZpbGVuYW1lIHdlJ2Qgb3V0cHV0XG4tcwlObyBvdXRwdXQsIGV4aXQgc3RhdHVzIDAgaWYgYWxsIGhhc2hlcyBtYXRjaCwgMSBvdGhlcndpc2UiCisKKyNkZWZpbmUgSEVMUF9raWxsYWxsICJ1c2FnZToga2lsbGFsbCBbLWxdIFstaXF2XSBbLVNJR05BTHwtcyBTSUdOQUxdIFBST0NFU1NfTkFNRS4uLlxuXG5TZW5kIGEgc2lnbmFsIChkZWZhdWx0OiBURVJNKSB0byBhbGwgcHJvY2Vzc2VzIHdpdGggdGhlIGdpdmVuIG5hbWVzLlxuXG4taQlBc2sgZm9yIGNvbmZpcm1hdGlvbiBiZWZvcmUga2lsbGluZ1xuLWwJUHJpbnQgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIHNpZ25hbHNcbi1xCURvbid0IHByaW50IGFueSB3YXJuaW5ncyBvciBlcnJvciBtZXNzYWdlc1xuLXMJU2VuZCBTSUdOQUwgaW5zdGVhZCBvZiBTSUdURVJNXG4tdglSZXBvcnQgaWYgdGhlIHNpZ25hbCB3YXMgc3VjY2Vzc2Z1bGx5IHNlbnRcbi13CVdhaXQgdW50aWwgYWxsIHNpZ25hbGVkIHByb2Nlc3NlcyBhcmUgZGVhZCIKKworI2RlZmluZSBIRUxQX2Ruc2RvbWFpbm5hbWUgInVzYWdlOiBkbnNkb21haW5uYW1lXG5cblNob3cgZG9tYWluIHRoaXMgc3lzdGVtIGJlbG9uZ3MgdG8gKHNhbWUgYXMgaG9zdG5hbWUgLWQpLiIKKworI2RlZmluZSBIRUxQX2hvc3RuYW1lICJ1c2FnZTogaG9zdG5hbWUgWy1iZHNmXSBbLUYgRklMRU5BTUVdIFtuZXduYW1lXVxuXG5HZXQvc2V0IHRoZSBjdXJyZW50IGhvc3RuYW1lLlxuXG4tYglTZXQgaG9zdG5hbWUgdG8gJ2xvY2FsaG9zdCcgaWYgb3RoZXJ3aXNlIHVuc2V0XG4tZAlTaG93IEROUyBkb21haW4gbmFtZSAobm8gaG9zdClcbi1mCVNob3cgZnVsbHktcXVhbGlmaWVkIG5hbWUgKGhvc3QrZG9tYWluLCBGUUROKVxuLUYJU2V0IGhvc3RuYW1lIHRvIGNvbnRlbnRzIG9mIEZJTEVOQU1FXG4tcwlTaG93IHNob3J0IGhvc3QgbmFtZSAobm8gZG9tYWluKSIKKworI2RlZmluZSBIRUxQX3pjYXQgInVzYWdlOiB6Y2F0IFstZl0gW0ZJTEUuLi5dXG5cbkRlY29tcHJlc3MgZmlsZXMgdG8gc3Rkb3V0LiBMaWtlIGBnemlwIC1kY2AuXG5cbi1mCUZvcmNlOiBhbGxvdyByZWFkIGZyb20gdHR5IgorCisjZGVmaW5lIEhFTFBfZ3VuemlwICJ1c2FnZTogZ3VuemlwIFstY2ZrdF0gW0ZJTEUuLi5dXG5cbkRlY29tcHJlc3MgZmlsZXMuIFdpdGggbm8gZmlsZXMsIGRlY29tcHJlc3NlcyBzdGRpbiB0byBzdGRvdXQuXG5PbiBzdWNjZXNzLCB0aGUgaW5wdXQgZmlsZXMgYXJlIHJlbW92ZWQgYW5kIHJlcGxhY2VkIGJ5IG5ld1xuZmlsZXMgd2l0aG91dCB0aGUgLmd6IHN1ZmZpeC5cblxuLWMJT3V0cHV0IHRvIHN0ZG91dCAoYWN0IGFzIHpjYXQpXG4tZglGb3JjZTogYWxsb3cgcmVhZCBmcm9tIHR0eVxuLWsJS2VlcCBpbnB1dCBmaWxlcyAoZGVmYXVsdCBpcyB0byByZW1vdmUpXG4tdAlUZXN0IGludGVncml0eSIKKworI2RlZmluZSBIRUxQX2d6aXAgInVzYWdlOiBnemlwIFstMTljZGZrdF0gW0ZJTEUuLi5dXG5cbkNvbXByZXNzIGZpbGVzLiBXaXRoIG5vIGZpbGVzLCBjb21wcmVzc2VzIHN0ZGluIHRvIHN0ZG91dC5cbk9uIHN1Y2Nlc3MsIHRoZSBpbnB1dCBmaWxlcyBhcmUgcmVtb3ZlZCBhbmQgcmVwbGFjZWQgYnkgbmV3XG5maWxlcyB3aXRoIHRoZSAuZ3ogc3VmZml4LlxuXG4tYwlPdXRwdXQgdG8gc3Rkb3V0XG4tZAlEZWNvbXByZXNzIChhY3QgYXMgZ3VuemlwKVxuLWYJRm9yY2U6IGFsbG93IG92ZXJ3cml0ZSBvZiBvdXRwdXQgZmlsZVxuLWsJS2VlcCBpbnB1dCBmaWxlcyAoZGVmYXVsdCBpcyB0byByZW1vdmUpXG4tdAlUZXN0IGludGVncml0eVxuLSMJQ29tcHJlc3Npb24gbGV2ZWwgMS05ICgxOmZhc3Rlc3QsIDY6ZGVmYXVsdCwgOTpiZXN0KSIKKworI2RlZmluZSBIRUxQX2RtZXNnICJ1c2FnZTogZG1lc2cgWy1DY10gWy1yfC10fC1UXSBbLW4gTEVWRUxdIFstcyBTSVpFXSBbLXddXG5cblByaW50IG9yIGNvbnRyb2wgdGhlIGtlcm5lbCByaW5nIGJ1ZmZlci5cblxuLUMJQ2xlYXIgcmluZyBidWZmZXIgd2l0aG91dCBwcmludGluZ1xuLWMJQ2xlYXIgcmluZyBidWZmZXIgYWZ0ZXIgcHJpbnRpbmdcbi1uCVNldCBrZXJuZWwgbG9nZ2luZyBMRVZFTCAoMS04KVxuLXIJUmF3IG91dHB1dCAod2l0aCA8bGV2ZWwgbWFya2Vycz4pXG4tUwlVc2Ugc3lzbG9nKDIpIHJhdGhlciB0aGFuIC9kZXYva21zZ1xuLXMJU2hvdyB0aGUgbGFzdCBTSVpFIG1hbnkgYnl0ZXNcbi1UCUh1bWFuIHJlYWRhYmxlIHRpbWVzdGFtcHNcbi10CURvbid0IHByaW50IHRpbWVzdGFtcHNcbi13CUtlZXAgd2FpdGluZyBmb3IgbW9yZSBvdXRwdXQgKGFrYSAtLWZvbGxvdykiCisKKyNkZWZpbmUgSEVMUF93Z2V0X2xpYnRscyAiRW5hYmxlIEhUVFBTIHN1cHBvcnQgZm9yIHdnZXQgYnkgbGlua2luZyB0byBMaWJUTFMuXG5TdXBwb3J0cyB1c2luZyBsaWJ0bHMsIGxpYnJldGxzIG9yIGxpYnRscy1iZWFyc3NsLlxuXG5Vc2UgVE9ZQk9YX0xJQkNSWVBUTyB0byBlbmFibGUgSFRUUFMgc3VwcG9ydCB2aWEgT3BlblNTTC4iCisKKyNkZWZpbmUgSEVMUF93Z2V0ICJ1c2FnZTogd2dldCBbT1BUSU9OU10uLi4gW1VSTF1cbiAgICAtLW1heC1yZWRpcmVjdCAgICAgICAgICBtYXhpbXVtIHJlZGlyZWN0aW9ucyBhbGxvd2VkXG4tZCwgLS1kZWJ1ZyAgICAgICAgICAgICAgICAgcHJpbnQgbG90cyBvZiBkZWJ1Z2dpbmcgaW5mb3JtYXRpb25cbi1PLCAtLW91dHB1dC1kb2N1bWVudD1GSUxFICBzcGVjaWZ5IG91dHB1dCBmaWxlbmFtZVxuLXAsIC0tcG9zdC1kYXRhPURBVEEgICAgICAgIHNlbmQgZGF0YSBpbiBib2R5IG9mIFBPU1QgcmVxdWVzdFxuXG5leGFtcGxlczpcbiAgd2dldCBodHRwOi8vd3d3LmV4YW1wbGUuY29tIgorCisjZGVmaW5lIEhFTFBfdHVuY3RsICJ1c2FnZTogdHVuY3RsIFstZHRUXSBbLXUgVVNFUl0gTkFNRVxuXG5DcmVhdGUgYW5kIGRlbGV0ZSB0dW4vdGFwIHZpcnR1YWwgZXRoZXJuZXQgZGV2aWNlcy5cblxuLVQJVXNlIHRhcCAoZXRoZXJuZXQgZnJhbWVzKSBpbnN0ZWFkIG9mIHR1biAoaXAgcGFja2V0cylcbi1kCURlbGV0ZSB0dW4vdGFwIGRldmljZVxuLXQJQ3JlYXRlIHR1bi90YXAgZGV2aWNlXG4tdQlTZXQgb3duZXIgKHVzZXIgd2hvIGNhbiByZWFkL3dyaXRlIGRldmljZSB3aXRob3V0IHJvb3QgYWNjZXNzKSIKKworI2RlZmluZSBIRUxQX3NudHAgInVzYWdlOiBzbnRwIFstc2FTZERxXSBbLXIgU0hJRlRdIFstbU1bQUREUkVTU11dIFstcCBQT1JUXSBbU0VSVkVSXVxuXG5TaW1wbGUgTmV0d29yayBUaW1lIFByb3RvY29sIGNsaWVudC4gUXVlcnkgU0VSVkVSIGFuZCBkaXNwbGF5IHRpbWUuXG5cbi1wCVVzZSBQT1JUIChkZWZhdWx0IDEyMylcbi1zCVNldCBzeXN0ZW0gY2xvY2sgc3VkZGVubHlcbi1hCUFkanVzdCBzeXN0ZW0gY2xvY2sgZ3JhZHVhbGx5XG4tUwlTZXJ2ZSB0aW1lIGluc3RlYWQgb2YgcXVlcnlpbmcgKGJpbmQgdG8gU0VSVkVSIGFkZHJlc3MgaWYgc3BlY2lmaWVkKVxuLW0JV2FpdCBmb3IgdXBkYXRlcyBmcm9tIG11bHRpY2FzdCBBRERSRVNTIChSRkMgNDMzMCBzdWdnZXN0cyAyMjQuMC4xLjEpXG4tTQlNdWx0aWNhc3Qgc2VydmVyIG9uIEFERFJFU1MgKFJGQyA0MzMwIHN1Z2dlc3RzIDIyNC4wLjEuMSlcbi10CVRUTCAobXVsdGljYXN0IG9ubHksIGRlZmF1bHQgMSlcbi1kCURhZW1vbml6ZSAocnVuIGluIGJhY2tncm91bmQgcmUtcXVlcnlpbmcpXG4tRAlEYWVtb25pemUgYnV0IHN0YXkgaW4gZm9yZWdyb3VuZDogcmUtcXVlcnkgdGltZSBldmVyeSAxMDAwIHNlY29uZHNcbi1yCVJldHJ5IHNoaWZ0IChldmVyeSAxPDxTSElGVCBzZWNvbmRzKVxuLXEJUXVpZXQgKGRvbid0IGRpc3BsYXkgdGltZSkiCisKKyNkZWZpbmUgSEVMUF9yZmtpbGwgInVzYWdlOiByZmtpbGwgQ09NTUFORCBbREVWSUNFXVxuXG5FbmFibGUvZGlzYWJsZSB3aXJlbGVzcyBkZXZpY2VzLlxuXG5Db21tYW5kczpcbmxpc3QgW0RFVklDRV0gICBMaXN0IGN1cnJlbnQgc3RhdGVcbmJsb2NrIERFVklDRSAgICBEaXNhYmxlIGRldmljZVxudW5ibG9jayBERVZJQ0UgIEVuYWJsZSBkZXZpY2VcblxuREVWSUNFIGlzIGFuIGluZGV4IG51bWJlciwgb3Igb25lIG9mOlxuYWxsLCB3bGFuKHdpZmkpLCBibHVldG9vdGgsIHV3Yih1bHRyYXdpZGViYW5kKSwgd2ltYXgsIHd3YW4sIGdwcywgZm0uIgorCisjZGVmaW5lIEhFTFBfcGluZyAidXNhZ2U6IHBpbmcgW09QVElPTlNdIEhPU1RcblxuQ2hlY2sgbmV0d29yayBjb25uZWN0aXZpdHkgYnkgc2VuZGluZyBwYWNrZXRzIHRvIGEgaG9zdCBhbmQgcmVwb3J0aW5nXG5pdHMgcmVzcG9uc2UuXG5cblNlbmQgSUNNUCBFQ0hPX1JFUVVFU1QgcGFja2V0cyB0byBpcHY0IG9yIGlwdjYgYWRkcmVzc2VzIGFuZCBwcmludHMgZWFjaFxuZWNobyBpdCByZWNlaXZlcyBiYWNrLCB3aXRoIHJvdW5kIHRyaXAgdGltZS4gUmV0dXJucyB0cnVlIGlmIGhvc3QgYWxpdmUuXG5cbk9wdGlvbnM6XG4tNCwgLTYJCUZvcmNlIElQdjQgb3IgSVB2NlxuLWMgQ05UCQlTZW5kIENOVCBtYW55IHBhY2tldHMgKGRlZmF1bHQgMywgMCA9IGluZmluaXRlKVxuLWYJCUZsb29kIChwcmludCAuIGFuZCBcXGIgdG8gc2hvdyBkcm9wcywgZGVmYXVsdCAtYyAxNSAtaSAwLjIpXG4taSBUSU1FCQlJbnRlcnZhbCBiZXR3ZWVuIHBhY2tldHMgKGRlZmF1bHQgMSwgbmVlZCByb290IGZvciA8IC4yKVxuLUkgSUZBQ0UvSVAJU291cmNlIGludGVyZmFjZSBvciBhZGRyZXNzXG4tbSBNQVJLCQlUYWcgb3V0Z29pbmcgcGFja2V0cyB1c2luZyBTT19NQVJLXG4tcQkJUXVpZXQgKHN0b3BzIGFmdGVyIG9uZSByZXR1cm5zIHRydWUgaWYgaG9zdCBpcyBhbGl2ZSlcbi1zIFNJWkUJCURhdGEgU0laRSBpbiBieXRlcyAoZGVmYXVsdCA1Nilcbi10IFRUTAkJU2V0IFRpbWUgVG8gTGl2ZSAobnVtYmVyIG9mIGhvcHMpXG4tVyBTRUMJCVNlY29uZHMgdG8gd2FpdCBmb3IgcmVzcG9uc2UgYWZ0ZXIgbGFzdCAtYyBwYWNrZXQgKGRlZmF1bHQgMylcbi13IFNFQwkJRXhpdCBhZnRlciB0aGlzIG1hbnkgc2Vjb25kcyIKKworI2RlZmluZSBIRUxQX25ldHN0YXQgInVzYWdlOiBuZXRzdGF0IFstcFdyeHd1dG5lYWxdXG5cbkRpc3BsYXkgbmV0d29ya2luZyBpbmZvcm1hdGlvbi4gRGVmYXVsdCBpcyBuZXRzdGF0IC10dXd4XG5cbi1yCVJvdXRpbmcgdGFibGVcbi1hCUFsbCBzb2NrZXRzIChub3QganVzdCBjb25uZWN0ZWQpXG4tbAlMaXN0ZW5pbmcgc2VydmVyIHNvY2tldHNcbi10CVRDUCBzb2NrZXRzXG4tdQlVRFAgc29ja2V0c1xuLXcJUmF3IHNvY2tldHNcbi14CVVuaXggc29ja2V0c1xuLWUJRXh0ZW5kZWQgaW5mb1xuLW4JRG9uJ3QgcmVzb2x2ZSBuYW1lc1xuLVcJV2lkZSBkaXNwbGF5XG4tcAlTaG93IFBJRC9wcm9ncmFtIG5hbWUgb2Ygc29ja2V0cyIKKworI2RlZmluZSBIRUxQX25ldGNhdCAidXNhZ2U6IG5ldGNhdCBbLTQ2RUxsbnRVdV0gWy1wcVd3ICNdIFstcyBhZGRyXSBbLW8gRklMRV0ge0lQQUREUiBQT1JUTlVNfC1mIEZJTEVOQU1FfENPTU1BTkQuLi59XG5cbkZvcndhcmQgc3RkaW4vc3Rkb3V0IHRvIGEgZmlsZSBvciBuZXR3b3JrIGNvbm5lY3Rpb24uXG5cbi00CUZvcmNlIElQdjRcbi02CUZvcmNlIElQdjZcbi1FCUZvcndhcmQgc3RkZXJyXG4tZglVc2UgRklMRU5BTUUgKGFsYSAvZGV2L3R0eVMwKSBpbnN0ZWFkIG9mIG5ldHdvcmtcbi1MCUxpc3RlbiBhbmQgYmFja2dyb3VuZCBlYWNoIGluY29taW5nIGNvbm5lY3Rpb24gKHNlcnZlciBtb2RlKVxuLWwJTGlzdGVuIGZvciBvbmUgaW5jb21pbmcgY29ubmVjdGlvbiwgdGhlbiBleGl0XG4tbglObyBETlMgbG9va3VwXG4tbwlIZXggZHVtcCB0byBGSUxFICgtby0gd3JpdGVzIGhleCBvbmx5IHRvIHN0ZG91dClcbi1PCUhleCBkdW1wIHRvIEZJTEUgKGNvbGxhdGVkKVxuLXAJTG9jYWwgcG9ydCBudW1iZXJcbi1xCVF1aXQgU0VDT05EUyBhZnRlciBFT0Ygb24gc3RkaW4sIGV2ZW4gaWYgc3Rkb3V0IGhhc24ndCBjbG9zZWQgeWV0XG4tcwlMb2NhbCBzb3VyY2UgYWRkcmVzc1xuLXQJQWxsb2NhdGUgdHR5XG4tdQlVc2UgVURQXG4tVQlVc2UgYSBVTklYIGRvbWFpbiBzb2NrZXRcbi1XCVNFQ09ORFMgdGltZW91dCBmb3IgbW9yZSBkYXRhIG9uIGFuIGlkbGUgY29ubmVjdGlvblxuLXcJU0VDT05EUyB0aW1lb3V0IHRvIGVzdGFibGlzaCBjb25uZWN0aW9uXG4tegl6ZXJvLUkvTyBtb2RlIFt1c2VkIGZvciBzY2FubmluZ11cblxuV2hlbiBsaXN0ZW5pbmcgdGhlIENPTU1BTkQgbGluZSBpcyBleGVjdXRlZCBhcyBhIGNoaWxkIHByb2Nlc3MgdG8gaGFuZGxlXG5hbiBpbmNvbWluZyBjb25uZWN0aW9uLiBXaXRoIG5vIENPTU1BTkQgLWwgZm9yd2FyZHMgdGhlIGNvbm5lY3Rpb25cbnRvIHN0ZGluL3N0ZG91dC4gSWYgbm8gLXAgc3BlY2lmaWVkLCAtbCBwcmludHMgdGhlIHBvcnQgaXQgYm91bmQgdG8gYW5kXG5iYWNrZ3JvdW5kcyBpdHNlbGYgKHJldHVybmluZyBpbW1lZGlhdGVseSkuXG5cbkZvciBhIHF1aWNrLWFuZC1kaXJ0eSBzZXJ2ZXIsIHRyeSBzb21ldGhpbmcgbGlrZTpcbm5ldGNhdCAtcyAxMjcuMC4wLjEgLXAgMTIzNCAtdEwgc2ggLWxcblxuT3IgdXNlIFwic3R0eSAxMTUyMDAgLUYgL2Rldi90dHlTMCAmJiBzdHR5IHJhdyAtZWNobyAtY3RsZWNob1wiIHdpdGhcbm5ldGNhdCAtZiB0byBjb25uZWN0IHRvIGEgc2VyaWFsIHBvcnQuIgorCisjZGVmaW5lIEhFTFBfbWljcm9jb20gInVzYWdlOiBtaWNyb2NvbSBbLXMgU1BFRURdIFstWF0gREVWSUNFXG5cblNpbXBsZSBzZXJpYWwgY29uc29sZS4gSGl0IENUUkwtXSBmb3IgbWVudS5cblxuLXMJU2V0IGJhdWQgcmF0ZSB0byBTUEVFRCAoZGVmYXVsdCAxMTUyMDApXG4tWAlJZ25vcmUgXl0gbWVudSBlc2NhcGUiCisKKyNkZWZpbmUgSEVMUF9pZmNvbmZpZyAidXNhZ2U6IGlmY29uZmlnIFstYVNdIFtJTlRFUkZBQ0UgW0FDVElPTi4uLl1dXG5cbkRpc3BsYXkgb3IgY29uZmlndXJlIG5ldHdvcmsgaW50ZXJmYWNlLlxuXG5XaXRoIG5vIGFyZ3VtZW50cywgZGlzcGxheSBhY3RpdmUgaW50ZXJmYWNlcy4gRmlyc3QgYXJndW1lbnQgaXMgaW50ZXJmYWNlXG50byBvcGVyYXRlIG9uLCBvbmUgYXJndW1lbnQgYnkgaXRzZWxmIGRpc3BsYXlzIHRoYXQgaW50ZXJmYWNlLlxuXG4tYQlBbGwgaW50ZXJmYWNlcyBkaXNwbGF5ZWQsIG5vdCBqdXN0IGFjdGl2ZSBvbmVzXG4tUwlTaG9ydCB2aWV3LCBvbmUgbGluZSBwZXIgaW50ZXJmYWNlXG5cblN0YW5kYXJkIEFDVElPTnMgdG8gcGVyZm9ybSBvbiBhbiBJTlRFUkZBQ0U6XG5cbkFERFJbL01BU0tdICAgICAgICAtIHNldCBJUHY0IGFkZHJlc3MgKDEuMi4zLjQvNSkgYW5kIGFjdGl2YXRlIGludGVyZmFjZVxuYWRkfGRlbCBBRERSWy9MRU5dIC0gYWRkL3JlbW92ZSBJUHY2IGFkZHJlc3MgKDExMTE6Ojg4ODgvMTI4KVxudXB8ZG93biAgICAgICAgICAgIC0gYWN0aXZhdGUgb3IgZGVhY3RpdmF0ZSBpbnRlcmZhY2VcblxuQWR2YW5jZWQgQUNUSU9OcyAoZGVmYXVsdCB2YWx1ZXMgdXN1YWxseSBzdWZmaWNlKTpcblxuZGVmYXVsdCAgICAgICAgICAtIHJlbW92ZSBJUHY0IGFkZHJlc3Ncbm5ldG1hc2sgQUREUiAgICAgLSBzZXQgSVB2NCBuZXRtYXNrIHZpYSAyNTUuMjU1LjI1NS4wIGluc3RlYWQgb2YgLzI0XG50eHF1ZXVlbGVuIExFTiAgIC0gbnVtYmVyIG9mIGJ1ZmZlcmVkIHBhY2tldHMgYmVmb3JlIG91dHB1dCBibG9ja3Ncbm10dSBMRU4gICAgICAgICAgLSBzaXplIG9mIG91dGdvaW5nIHBhY2tldHMgKE1heGltdW0gVHJhbnNtaXNzaW9uIFVuaXQpXG5icm9hZGNhc3QgQUREUiAgIC0gU2V0IGJyb2FkY2FzdCBhZGRyZXNzXG5wb2ludG9wb2ludCBBRERSIC0gUFBQIGFuZCBQUFBPRSB1c2UgdGhpcyBpbnN0ZWFkIG9mIFwicm91dGUgYWRkIGRlZmF1bHQgZ3dcIlxuaHcgVFlQRSBBRERSICAgICAtIHNldCBoYXJkd2FyZSAobWFjKSBhZGRyZXNzICh0eXBlID0gZXRoZXJ8aW5maW5pYmFuZClcbnJlbmFtZSBORVdOQU1FICAgLSByZW5hbWUgaW50ZXJmYWNlXG5cbkZsYWdzIHlvdSBjYW4gc2V0IG9uIGFuIGludGVyZmFjZSAob3IgLXJlbW92ZSBieSBwcmVmaXhpbmcgd2l0aCAtKTpcblxuYXJwICAgICAgIC0gZG9uJ3QgdXNlIEFkZHJlc3MgUmVzb2x1dGlvbiBQcm90b2NvbCB0byBtYXAgTEFOIHJvdXRlc1xucHJvbWlzYyAgIC0gZG9uJ3QgZGlzY2FyZCBwYWNrZXRzIHRoYXQgYXJlbid0IHRvIHRoaXMgTEFOIGhhcmR3YXJlIGFkZHJlc3Ncbm11bHRpY2FzdCAtIGZvcmNlIGludGVyZmFjZSBpbnRvIG11bHRpY2FzdCBtb2RlIGlmIHRoZSBkcml2ZXIgZG9lc24ndFxuYWxsbXVsdGkgIC0gcHJvbWlzYyBmb3IgbXVsdGljYXN0IHBhY2tldHMiCisKKyNkZWZpbmUgSEVMUF9odHRwZCAidXNhZ2U6IGh0dHBkIFstZGUgU1RSXSBbLXZdIFtESVJdXG5cblNlcnZlIGNvbnRlbnRzIG9mIGRpcmVjdG9yeSBhcyBzdGF0aWMgd2ViIHBhZ2VzLlxuXG4tZQlFc2NhcGUgU1RSIGFzIFVSTCwgcHJpbnRpbmcgcmVzdWx0IGFuZCBleGl0aW5nLlxuLWQJRGVjb2RlIGVzY2FwZWQgU1RSLCBwcmludGluZyByZXN1bHQgYW5kIGV4aXRpbmcuXG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfaG9zdCAidXNhZ2U6IGhvc3QgWy12XSBbLXQgVFlQRV0gTkFNRSBbU0VSVkVSXVxuXG5Mb29rIHVwIEROUyByZWNvcmRzIGZvciBOQU1FLCBlaXRoZXIgZG9tYWluIG5hbWUgb3IgSVB2NC9JUHY2IGFkZHJlc3MgdG9cbnJldmVyc2UgbG9va3VwLCBmcm9tIFNFUlZFUiBvciBkZWZhdWx0IEROUyBzZXJ2ZXIocykuXG5cbi1hCUFsbCByZWNvcmRzXG4tdCBUWVBFCVJlY29yZCBUWVBFIChudW1iZXIgb3IgQU5ZIEEgQUFBQSBDTkFNRSBNWCBOUyBQVFIgU09BIFNSViBUWFQpXG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfZnRwcHV0ICJBbiBmdHBnZXQgdGhhdCBkZWZhdWx0cyB0byAtcyBpbnN0ZWFkIG9mIC1nIgorCisjZGVmaW5lIEhFTFBfZnRwZ2V0ICJ1c2FnZTogZnRwZ2V0IFstY3Znc2xMbU1kRF0gWy1QIFBPUlRdIFstcCBQQVNTV09SRF0gWy11IFVTRVJdIEhPU1QgW0xPQ0FMXSBSRU1PVEVcblxuVGFsayB0byBmdHAgc2VydmVyLiBCeSBkZWZhdWx0IGdldCBSRU1PVEUgZmlsZSB2aWEgcGFzc2l2ZSBhbm9ueW1vdXNcbnRyYW5zZmVyLCBvcHRpb25hbGx5IHNhdmluZyB1bmRlciBhIExPQ0FMIG5hbWUuIENhbiBhbHNvIHNlbmQsIGxpc3QsIGV0Yy5cblxuLWMJQ29udGludWUgcGFydGlhbCB0cmFuc2ZlclxuLXAJVXNlIFBPUlQgaW5zdGVhZCBvZiBcIjIxXCJcbi1QCVVzZSBQQVNTV09SRCBpbnN0ZWFkIG9mIFwiZnRwZ2V0QFwiXG4tdQlVc2UgVVNFUiBpbnN0ZWFkIG9mIFwiYW5vbnltb3VzXCJcbi12CVZlcmJvc2VcblxuV2F5cyB0byBpbnRlcmFjdCB3aXRoIEZUUCBzZXJ2ZXI6XG4tZAlEZWxldGUgZmlsZVxuLUQJUmVtb3ZlIGRpcmVjdG9yeVxuLWcJR2V0IGZpbGUgKGRlZmF1bHQpXG4tbAlMaXN0IGRpcmVjdG9yeVxuLUwJTGlzdCAoZmlsZW5hbWVzIG9ubHkpXG4tbQlNb3ZlIGZpbGUgb24gc2VydmVyIGZyb20gTE9DQUwgdG8gUkVNT1RFXG4tTQlta2RpclxuLXMJU2VuZCBmaWxlIgorCisjZGVmaW5lIEhFTFBfeWVzICJ1c2FnZTogeWVzIFthcmdzLi4uXVxuXG5SZXBlYXRlZGx5IG91dHB1dCBsaW5lIHVudGlsIGtpbGxlZC4gSWYgbm8gYXJncywgb3V0cHV0ICd5Jy4iCisKKyNkZWZpbmUgSEVMUF94eGQgInVzYWdlOiB4eGQgWy1laXByXSBbLWNnbG9zIE5dIFtmaWxlXVxuXG5IZXhkdW1wIGEgZmlsZSB0byBzdGRvdXQuIElmIG5vIGZpbGUgaXMgbGlzdGVkLCBjb3B5IGZyb20gc3RkaW4uXG5GaWxlbmFtZSBcIi1cIiBpcyBhIHN5bm9ueW0gZm9yIHN0ZGluLlxuXG4tYyBOCVNob3cgTiBieXRlcyBwZXIgbGluZSAoZGVmYXVsdCAxNilcbi1lCUxpdHRsZS1lbmRpYW5cbi1nIE4JR3JvdXAgYnl0ZXMgYnkgYWRkaW5nIGEgJyAnIGV2ZXJ5IE4gYnl0ZXMgKGRlZmF1bHQgMilcbi1pCU91dHB1dCBpbmNsdWRlIGZpbGUgKENTViBoZXggYnl0ZXMsIHBsdXMgQyBoZWFkZXIvZm9vdGVyIGlmIG5vdCBzdGRpbilcbi1sIE4JTGltaXQgb2YgTiBieXRlcyBiZWZvcmUgc3RvcHBpbmcgKGRlZmF1bHQgaXMgbm8gbGltaXQpXG4tbyBOCUFkZCBOIHRvIGRpc3BsYXkgb2Zmc2V0XG4tcAlQbGFpbiBoZXhkdW1wICgzMCBieXRlcy9saW5lLCBubyBncm91cGluZy4gV2l0aCAtYyAwIG5vIHdyYXAvZ3JvdXApXG4tcglSZXZlcnNlIG9wZXJhdGlvbjogdHVybiBhIGhleGR1bXAgaW50byBhIGJpbmFyeSBmaWxlXG4tcyBOCVNraXAgdG8gb2Zmc2V0IE4iCisKKyNkZWZpbmUgSEVMUF93aGljaCAidXNhZ2U6IHdoaWNoIFstYV0gZmlsZW5hbWUgLi4uXG5cblNlYXJjaCAkUEFUSCBmb3IgZXhlY3V0YWJsZSBmaWxlcyBtYXRjaGluZyBmaWxlbmFtZShzKS5cblxuLWEJU2hvdyBhbGwgbWF0Y2hlcyIKKworI2RlZmluZSBIRUxQX3dhdGNoZG9nICJ1c2FnZTogd2F0Y2hkb2cgWy1GXSBbLXQgVVBEQVRFXSBbLVQgREVBRExJTkVdIERFVlxuXG5TdGFydCB0aGUgd2F0Y2hkb2cgdGltZXIgYXQgREVWIHdpdGggb3B0aW9uYWwgdGltZW91dCBwYXJhbWV0ZXJzLlxuXG4tRglydW4gaW4gdGhlIGZvcmVncm91bmQgKGRvIG5vdCBkYWVtb25pemUpXG4tdAlwb2tlIHdhdGNoZG9nIGV2ZXJ5IFVQREFURSBzZWNvbmRzIChkZWZhdWx0IDQpXG4tVAlyZWJvb3QgaWYgbm90IHBva2VkIGZvciBERUFETElORSBzZWNvbmRzIChkZWZhdWx0IDYwKSIKKworI2RlZmluZSBIRUxQX3dhdGNoICJ1c2FnZTogd2F0Y2ggWy10ZWJ4XSBbLW4gU0VDXSBDT01NQU5ELi4uXG5cblJ1biBDT01NQU5EIGV2ZXJ5IC1uIHNlY29uZHMsIHNob3dpbmcgb3V0cHV0IHRoYXQgZml0cyB0ZXJtaW5hbCwgcSB0byBxdWl0LlxuXG4tbglOdW1iZXIgb2Ygc2Vjb25kcyBiZXR3ZWVuIHJlcGVhdHMgKGRlZmF1bHQgMi4wKVxuLXQJRG9uJ3QgcHJpbnQgaGVhZGVyXG4tZQlFeGl0IG9uIGVycm9yXG4tYglCZWVwIG9uIGNvbW1hbmQgZXJyb3Jcbi14CUV4ZWMgY29tbWFuZCBkaXJlY3RseSAod2l0aG91dCBcInNoIC1jXCIpIgorCisjZGVmaW5lIEhFTFBfdyAidXNhZ2U6IHdcblxuU2hvdyB3aG8gaXMgbG9nZ2VkIG9uIGFuZCBzaW5jZSBob3cgbG9uZyB0aGV5IGxvZ2dlZCBpbi4iCisKKyNkZWZpbmUgSEVMUF92bXN0YXQgInVzYWdlOiB2bXN0YXQgWy1uXSBbREVMQVkgW0NPVU5UXV1cblxuUHJpbnQgdmlydHVhbCBtZW1vcnkgc3RhdGlzdGljcywgcmVwZWF0aW5nIGVhY2ggREVMQVkgc2Vjb25kcywgQ09VTlQgdGltZXMuXG4oV2l0aCBubyBERUxBWSwgcHJpbnRzIG9uZSBsaW5lLiBXaXRoIG5vIENPVU5ULCByZXBlYXRzIHVudGlsIGtpbGxlZC4pXG5cblNob3cgcHJvY2Vzc2VzIHJ1bm5pbmcgYW5kIGJsb2NrZWQsIGtpbG9ieXRlcyBzd2FwcGVkLCBmcmVlLCBidWZmZXJlZCwgYW5kXG5jYWNoZWQsIGtpbG9ieXRlcyBzd2FwcGVkIGluIGFuZCBvdXQgcGVyIHNlY29uZCwgZmlsZSBkaXNrIGJsb2NrcyBpbnB1dCBhbmRcbm91dHB1dCBwZXIgc2Vjb25kLCBpbnRlcnJ1cHRzIGFuZCBjb250ZXh0IHN3aXRjaGVzIHBlciBzZWNvbmQsIHBlcmNlbnRcbm9mIENQVSB0aW1lIHNwZW50IHJ1bm5pbmcgdXNlciBjb2RlLCBzeXN0ZW0gY29kZSwgaWRsZSwgYW5kIGF3YWl0aW5nIEkvTy5cbkZpcnN0IGxpbmUgaXMgc2luY2Ugc3lzdGVtIHN0YXJ0ZWQsIGxhdGVyIGxpbmVzIGFyZSBzaW5jZSBsYXN0IGxpbmUuXG5cbi1uCURpc3BsYXkgdGhlIGhlYWRlciBvbmx5IG9uY2UiCisKKyNkZWZpbmUgSEVMUF92Y29uZmlnICJ1c2FnZTogdmNvbmZpZyBDT01NQU5EIFtPUFRJT05TXVxuXG5DcmVhdGUgYW5kIHJlbW92ZSB2aXJ0dWFsIGV0aGVybmV0IGRldmljZXNcblxuYWRkICAgICAgICAgICAgIFtpbnRlcmZhY2UtbmFtZV0gW3ZsYW5faWRdXG5yZW0gICAgICAgICAgICAgW3ZsYW4tbmFtZV1cbnNldF9mbGFnICAgICAgICBbaW50ZXJmYWNlLW5hbWVdIFtmbGFnLW51bV0gICAgICAgWzAgfCAxXVxuc2V0X2VncmVzc19tYXAgIFt2bGFuLW5hbWVdICAgICAgW3NrYl9wcmlvcml0eV0gICBbdmxhbl9xb3NdXG5zZXRfaW5ncmVzc19tYXAgW3ZsYW4tbmFtZV0gICAgICBbc2tiX3ByaW9yaXR5XSAgIFt2bGFuX3Fvc11cbnNldF9uYW1lX3R5cGUgICBbbmFtZS10eXBlXSIKKworI2RlZmluZSBIRUxQX3V1aWRnZW4gInVzYWdlOiB1dWlkZ2VuXG5cbkNyZWF0ZSBhbmQgcHJpbnQgYSBuZXcgUkZDNDEyMiByYW5kb20gVVVJRC4iCisKKyNkZWZpbmUgSEVMUF91c2xlZXAgInVzYWdlOiB1c2xlZXAgTUlDUk9TRUNPTkRTXG5cblBhdXNlIGZvciBNSUNST1NFQ09ORFMgbWljcm9zZWNvbmRzLiIKKworI2RlZmluZSBIRUxQX3VwdGltZSAidXNhZ2U6IHVwdGltZSBbLXBzXVxuXG5UZWxsIHRoZSBjdXJyZW50IHRpbWUsIGhvdyBsb25nIHRoZSBzeXN0ZW0gaGFzIGJlZW4gcnVubmluZywgdGhlIG51bWJlclxub2YgdXNlcnMsIGFuZCB0aGUgc3lzdGVtIGxvYWQgYXZlcmFnZXMgZm9yIHRoZSBwYXN0IDEsIDUgYW5kIDE1IG1pbnV0ZXMuXG5cbi1wCVByZXR0eSAoaHVtYW4gcmVhZGFibGUpIHVwdGltZVxuLXMJU2luY2Ugd2hlbiBoYXMgdGhlIHN5c3RlbSBiZWVuIHVwPyIKKworI2RlZmluZSBIRUxQX3VjbGFtcHNldCAidXNhZ2U6IHVjbGFtcHNldCBbLW0gTUlOXSBbLU0gTUFYXSB7LXAgUElEIHwgQ09NTUFORC4uLn1cblxuU2V0IG9yIHF1ZXJ5IHByb2Nlc3MgdXRpbGl6YXRpb24gbGltaXRzIHJhbmdpbmcgZnJvbSAwIHRvIDEwMjQsIG9yIC0xIHRvXG5yZXNldCB0byBzeXN0ZW0gZGVmYXVsdC4gV2l0aCBubyBhcmd1bWVudHMsIHByaW50cyBjdXJyZW50IHZhbHVlcy5cblxuLW0gTUlOICAgICAgUmVzZXJ2ZSBhdCBsZWFzdCB0aGlzIG11Y2ggQ1BVIHV0aWxpemF0aW9uIGZvciB0YXNrXG4tTSBNQVggICAgICBMaW1pdCB0YXNrIHRvIGF0IG1vc3QgdGhpcyBtdWNoIENQVSB1dGlsaXphdGlvblxuLXAgUElECUFwcGx5IHRvIFBJRCByYXRoZXIgdGhhbiBuZXcgQ09NTUFORFxuLVIJUmVzZXQgY2hpbGQgcHJvY2Vzc2VzIHRvIGRlZmF1bHQgdmFsdWVzIG9uIGZvcmtcbi1hCUFwcGx5IHRvIGFsbCB0aHJlYWRzIGZvciB0aGUgZ2l2ZW4gUElEIgorCisjZGVmaW5lIEhFTFBfdHMgInVzYWdlOiB0cyBbLWlzXSBbRk9STUFUXVxuXG5BZGQgdGltZXN0YW1wcyB0byBlYWNoIGxpbmUgaW4gcGlwZWxpbmUuIERlZmF1bHQgZm9ybWF0IHdpdGhvdXQgb3B0aW9uc1xuXCIlYiAlZCAlSDolTTolU1wiLCB3aXRoIC1pIG9yIC1zIFwiJUg6JU06JVNcIi5cblxuLWkJSW5jcmVtZW50YWwgKHNpbmNlIHByZXZpb3VzIGxpbmUpXG4tbQlBZGQgbWlsbGlzZWNvbmRzXG4tcwlTaW5jZSBzdGFydCIKKworI2RlZmluZSBIRUxQX3RydW5jYXRlICJ1c2FnZTogdHJ1bmNhdGUgWy1jXSAtcyBTSVpFIGZpbGUuLi5cblxuU2V0IGxlbmd0aCBvZiBmaWxlKHMpLCBleHRlbmRpbmcgc3BhcnNlbHkgaWYgbmVjZXNzYXJ5LlxuXG4tYwlEb24ndCBjcmVhdGUgZmlsZSBpZiBpdCBkb2Vzbid0IGV4aXN0XG4tcwlOZXcgc2l6ZSAod2l0aCBvcHRpb25hbCBwcmVmaXggYW5kIHN1ZmZpeClcblxuU0laRSBwcmVmaXg6ICsgYWRkLCAtIHN1YnRyYWN0LCA8IHNocmluayB0bywgPiBleHBhbmQgdG8sXG4gICAgICAgICAgICAgLyBtdWx0aXBsZSByb3VuZGluZyBkb3duLCAlIG11bHRpcGxlIHJvdW5kaW5nIHVwXG5TSVpFIHN1ZmZpeDogaz0xMDI0LCBtPTEwMjReMiwgZz0xMDI0XjMsIHQ9MTAyNF40LCBwPTEwMjReNSwgZT0xMDI0XjYiCisKKyNkZWZpbmUgSEVMUF90aW1lb3V0ICJ1c2FnZTogdGltZW91dCBbLWl2XSBbLWsgRFVSQVRJT05dIFstcyBTSUdOQUxdIERVUkFUSU9OIENPTU1BTkQuLi5cblxuUnVuIGNvbW1hbmQgbGluZSBhcyBhIGNoaWxkIHByb2Nlc3MsIHNlbmRpbmcgY2hpbGQgYSBzaWduYWwgaWYgdGhlXG5jb21tYW5kIGRvZXNuJ3QgZXhpdCBzb29uIGVub3VnaC5cblxuRFVSQVRJT04gY2FuIGJlIGEgZGVjaW1hbCBmcmFjdGlvbi4gQW4gb3B0aW9uYWwgc3VmZml4IGNhbiBiZSBcIm1cIlxuKG1pbnV0ZXMpLCBcImhcIiAoaG91cnMpLCBcImRcIiAoZGF5cyksIG9yIFwic1wiIChzZWNvbmRzLCB0aGUgZGVmYXVsdCkuXG5cbi1pCU9ubHkga2lsbCBmb3IgaW5hY3Rpdml0eSAocmVzdGFydCB0aW1lb3V0IHdoZW4gY29tbWFuZCBwcm9kdWNlcyBvdXRwdXQpXG4tawlTZW5kIEtJTEwgc2lnbmFsIGlmIGNoaWxkIHN0aWxsIHJ1bm5pbmcgdGhpcyBsb25nIGFmdGVyIGZpcnN0IHNpZ25hbFxuLXMJU2VuZCBzcGVjaWZpZWQgc2lnbmFsIChkZWZhdWx0IFRFUk0pXG4tdglWZXJib3NlXG4tLWZvcmVncm91bmQgICAgICAgRG9uJ3QgY3JlYXRlIG5ldyBwcm9jZXNzIGdyb3VwXG4tLXByZXNlcnZlLXN0YXR1cyAgRXhpdCB3aXRoIHRoZSBjaGlsZCdzIGV4aXQgc3RhdHVzIgorCisjZGVmaW5lIEhFTFBfdGFza3NldCAidXNhZ2U6IHRhc2tzZXQgWy1hcF0gW21hc2tdIFtQSUQgfCBjbWQgW2FyZ3MuLi5dXVxuXG5MYXVuY2ggYSBuZXcgdGFzayB3aGljaCBtYXkgb25seSBydW4gb24gY2VydGFpbiBwcm9jZXNzb3JzLCBvciBjaGFuZ2VcbnRoZSBwcm9jZXNzb3IgYWZmaW5pdHkgb2YgYW4gZXhpc3RpbmcgUElELlxuXG5NYXNrIGlzIGEgaGV4IHN0cmluZyB3aGVyZSBlYWNoIGJpdCByZXByZXNlbnRzIGEgcHJvY2Vzc29yIHRoZSBwcm9jZXNzXG5pcyBhbGxvd2VkIHRvIHJ1biBvbi4gUElEIHdpdGhvdXQgYSBtYXNrIGRpc3BsYXlzIGV4aXN0aW5nIGFmZmluaXR5LlxuXG4tcAlTZXQvZ2V0IHRoZSBhZmZpbml0eSBvZiBnaXZlbiBQSUQgaW5zdGVhZCBvZiBhIG5ldyBjb21tYW5kXG4tYQlTZXQvZ2V0IHRoZSBhZmZpbml0eSBvZiBhbGwgdGhyZWFkcyBvZiB0aGUgUElEIgorCisjZGVmaW5lIEhFTFBfbnByb2MgInVzYWdlOiBucHJvYyBbLS1hbGxdXG5cblByaW50IG51bWJlciBvZiBwcm9jZXNzb3JzLlxuXG4tLWFsbAlTaG93IGFsbCBwcm9jZXNzb3JzLCBub3QganVzdCBvbmVzIHRoaXMgdGFzayBjYW4gcnVuIG9uIgorCisjZGVmaW5lIEhFTFBfdGFjICJ1c2FnZTogdGFjIFtGSUxFLi4uXVxuXG5PdXRwdXQgbGluZXMgaW4gcmV2ZXJzZSBvcmRlci4iCisKKyNkZWZpbmUgSEVMUF9zeXNjdGwgInVzYWdlOiBzeXNjdGwgWy1hZU5ucXddIFstcCBbRklMRV0gfCBLRVlbPVZBTFVFXS4uLl1cblxuUmVhZC93cml0ZSBzeXN0ZW0gY29udHJvbCBkYXRhICh1bmRlciAvcHJvYy9zeXMpLlxuXG4tYQlTaG93IGFsbCB2YWx1ZXNcbi1lCURvbid0IHdhcm4gYWJvdXQgdW5rbm93biBrZXlzXG4tTglEb24ndCBwcmludCBrZXkgdmFsdWVzXG4tbglEb24ndCBwcmludCBrZXkgbmFtZXNcbi1wCVJlYWQgdmFsdWVzIGZyb20gRklMRSAoZGVmYXVsdCAvZXRjL3N5c2N0bC5jb25mKVxuLXEJRG9uJ3Qgc2hvdyB2YWx1ZSBhZnRlciB3cml0ZVxuLXcJT25seSB3cml0ZSB2YWx1ZXMgKG9iamVjdCB0byByZWFkaW5nKSIKKworI2RlZmluZSBIRUxQX3N3aXRjaF9yb290ICJ1c2FnZTogc3dpdGNoX3Jvb3QgWy1jIC9kZXYvY29uc29sZV0gTkVXX1JPT1QgTkVXX0lOSVQuLi5cblxuVXNlIGZyb20gUElEIDEgdW5kZXIgaW5pdHJhbWZzIHRvIGZyZWUgaW5pdHJhbWZzLCBjaHJvb3QgdG8gTkVXX1JPT1QsXG5hbmQgZXhlYyBORVdfSU5JVC5cblxuLWMJUmVkaXJlY3QgY29uc29sZSB0byBkZXZpY2UgaW4gTkVXX1JPT1Rcbi1oCUhhbmcgaW5zdGVhZCBvZiBleGl0aW5nIG9uIGZhaWx1cmUgKGF2b2lkcyBrZXJuZWwgcGFuaWMpIgorCisjZGVmaW5lIEhFTFBfc3dhcG9uICJ1c2FnZTogc3dhcG9uIFstZF0gWy1wIHByaW9yaXR5XSBmaWxlbmFtZVxuXG5FbmFibGUgc3dhcHBpbmcgb24gYSBnaXZlbiBkZXZpY2UvZmlsZS5cblxuLWQJRGlzY2FyZCBmcmVlZCBTU0QgcGFnZXNcbi1wCVByaW9yaXR5IChoaWdoZXN0IHByaW9yaXR5IGFyZWFzIGFsbG9jYXRlZCBmaXJzdCkiCisKKyNkZWZpbmUgSEVMUF9zd2Fwb2ZmICJ1c2FnZTogc3dhcG9mZiBGSUxFXG5cbkRpc2FibGUgc3dhcHBpbmcgb24gYSBkZXZpY2Ugb3IgZmlsZS4iCisKKyNkZWZpbmUgSEVMUF9zdGF0ICJ1c2FnZTogc3RhdCBbLXRmTF0gWy1jIEZPUk1BVF0gRklMRS4uLlxuXG5EaXNwbGF5IHN0YXR1cyBvZiBmaWxlcyBvciBmaWxlc3lzdGVtcy5cblxuLWMJT3V0cHV0IHNwZWNpZmllZCBGT1JNQVQgc3RyaW5nIGluc3RlYWQgb2YgZGVmYXVsdFxuLWYJRGlzcGxheSBmaWxlc3lzdGVtIHN0YXR1cyBpbnN0ZWFkIG9mIGZpbGUgc3RhdHVzXG4tTAlGb2xsb3cgc3ltbGlua3Ncbi10CXRlcnNlICgtYyBcIiVuICVzICViICVmICV1ICVnICVEICVpICVoICV0ICVUICVYICVZICVaICVvXCIpXG4JICAgICAgKHdpdGggLWYgPSAtYyBcIiVuICVpICVsICV0ICVzICVTICViICVmICVhICVjICVkXCIpXG5cblRoZSB2YWxpZCBmb3JtYXQgZXNjYXBlIHNlcXVlbmNlcyBmb3IgZmlsZXM6XG4lYSAgQWNjZXNzIGJpdHMgKG9jdGFsKSB8JUEgIEFjY2VzcyBiaXRzIChmbGFncyl8JWIgIFNpemUvNTEyXG4lQiAgQnl0ZXMgcGVyICViICg1MTIpICB8JUMgIFNlY3VyaXR5IGNvbnRleHQgICB8JWQgIERldmljZSBJRCAoZGVjKVxuJUQgIERldmljZSBJRCAoaGV4KSAgICAgfCVmICBBbGwgbW9kZSBiaXRzIChoZXgpfCVGICBGaWxlIHR5cGVcbiVnICBHcm91cCBJRCAgICAgICAgICAgIHwlRyAgR3JvdXAgbmFtZSAgICAgICAgIHwlaCAgSGFyZCBsaW5rc1xuJWkgIElub2RlICAgICAgICAgICAgICAgfCVtICBNb3VudCBwb2ludCAgICAgICAgfCVuICBGaWxlbmFtZVxuJU4gIExvbmcgZmlsZW5hbWUgICAgICAgfCVvICBJL08gYmxvY2sgc2l6ZSAgICAgfCVzICBTaXplIChieXRlcylcbiV0ICBEZXZ0eXBlIG1ham9yIChoZXgpIHwlVCAgRGV2dHlwZSBtaW5vciAoaGV4KXwldSAgVXNlciBJRFxuJVUgIFVzZXIgbmFtZSAgICAgICAgICAgfCV4ICBBY2Nlc3MgdGltZSAgICAgICAgfCVYICBBY2Nlc3MgdW5peCB0aW1lXG4leSAgTW9kaWZpY2F0aW9uIHRpbWUgICB8JVkgIE1vZCB1bml4IHRpbWUgICAgICB8JXogIENyZWF0aW9uIHRpbWVcbiVaICBDcmVhdGlvbiB1bml4IHRpbWVcblxuVGhlIHZhbGlkIGZvcm1hdCBlc2NhcGUgc2VxdWVuY2VzIGZvciBmaWxlc3lzdGVtczpcbiVhICBBdmFpbGFibGUgYmxvY2tzICAgIHwlYiAgVG90YWwgYmxvY2tzICAgICAgIHwlYyAgVG90YWwgaW5vZGVzXG4lZCAgRnJlZSBpbm9kZXMgICAgICAgICB8JWYgIEZyZWUgYmxvY2tzICAgICAgICB8JWkgIEZpbGUgc3lzdGVtIElEXG4lbCAgTWF4IGZpbGVuYW1lIGxlbmd0aCB8JW4gIEZpbGUgbmFtZSAgICAgICAgICB8JXMgIEJlc3QgdHJhbnNmZXIgc2l6ZVxuJVMgIEFjdHVhbCBibG9jayBzaXplICAgfCV0ICBGUyB0eXBlIChoZXgpICAgICAgfCVUICBGUyB0eXBlIChkcml2ZXIgbmFtZSkiCisKKyNkZWZpbmUgSEVMUF9zaHVmICJ1c2FnZTogc2h1ZiBbLXplXSBbLW4gQ09VTlRdIFtGSUxFLi4uXVxuXG5Xcml0ZSBsaW5lcyBvZiBpbnB1dCB0byBvdXRwdXQgaW4gcmFuZG9tIG9yZGVyLlxuXG4teglJbnB1dC9vdXRwdXQgbGluZXMgYXJlIE5VTCB0ZXJtaW5hdGVkLlxuLW4JU3RvcCBhZnRlciBDT1VOVCBtYW55IG91dHB1dCBsaW5lcy5cbi1lCUVjaG8gbW9kZTogYXJndW1lbnRzIGFyZSBpbnB1dHMgdG8gc2h1ZmZsZSwgbm90IGZpbGVzIHRvIHJlYWQuIgorCisjZGVmaW5lIEhFTFBfc2hyZWQgInVzYWdlOiBzaHJlZCBbLWZ1eHpdIFstbiBDT1VOVF0gWy1vIE9GRlNFVF0gWy1zIFNJWkVdIEZJTEUuLi5cblxuU2VjdXJlbHkgZGVsZXRlIGEgZmlsZSBieSBvdmVyd3JpdGluZyBpdHMgY29udGVudHMgd2l0aCByYW5kb20gZGF0YS5cblxuLWYJCUZvcmNlIChjaG1vZCBpZiBuZWNlc3NhcnkpXG4tbiBDT1VOVAlSYW5kb20gb3ZlcndyaXRlIGl0ZXJhdGlvbnMgKGRlZmF1bHQgMSlcbi1vIE9GRlNFVAlTdGFydCBhdCBPRkZTRVRcbi1zIFNJWkUJCVVzZSBTSVpFIGluc3RlYWQgb2YgZGV0ZWN0aW5nIGZpbGUgc2l6ZVxuLXUJCVVubGluayAoYWN0dWFsbHkgZGVsZXRlIGZpbGUgd2hlbiBkb25lKVxuLXgJCVVzZSBleGFjdCBzaXplIChkZWZhdWx0IHdpdGhvdXQgLXMgcm91bmRzIHVwIHRvIG5leHQgNGspXG4tegkJWmVybyBhdCBlbmRcblxuTm90ZTogZGF0YSBqb3VybmFsaW5nIGZpbGVzeXN0ZW1zIHJlbmRlciB0aGlzIGNvbW1hbmQgdXNlbGVzcywgeW91IG11c3Rcbm92ZXJ3cml0ZSBhbGwgZnJlZSBzcGFjZSAoZmlsbCB1cCBkaXNrKSB0byBlcmFzZSBvbGQgZGF0YSBvbiB0aG9zZS4iCisKKyNkZWZpbmUgSEVMUF9zaGEzc3VtICJ1c2FnZTogc2hhM3N1bSBbLWJTXSBbLWEgQklUU10gW0ZJTEUuLi5dXG5cbkhhc2ggZnVuY3Rpb24gZHUgam91ci5cblxuLWEJUHJvZHVjZSBhIGhhc2ggQklUUyBsb25nIChkZWZhdWx0IDIyNClcbi1iCUJyaWVmIChoYXNoIG9ubHksIG5vIGZpbGVuYW1lKVxuLVMJVXNlIFNIQUtFIHRlcm1pbmF0aW9uIGJ5dGUgaW5zdGVhZCBvZiBTSEEzIChhc2sgRklQUyB3aHkpIgorCisjZGVmaW5lIEhFTFBfc2V0c2lkICJ1c2FnZTogc2V0c2lkIFstY2R3XSBjb21tYW5kIFthcmdzLi4uXVxuXG5SdW4gcHJvY2VzcyBpbiBhIG5ldyBzZXNzaW9uLlxuXG4tZAlEZXRhY2ggZnJvbSB0dHlcbi1jCUNvbnRyb2wgdHR5IChyZXBlYXQgdG8gc3RlYWwpXG4tdwlXYWl0IGZvciBjaGlsZCAoYW5kIGV4aXQgd2l0aCBpdHMgc3RhdHVzKSIKKworI2RlZmluZSBIRUxQX3NldGZhdHRyICJ1c2FnZTogc2V0ZmF0dHIgWy1oXSBbLXh8LW4gTkFNRV0gWy12IFZBTFVFXSBGSUxFLi4uXG5cbldyaXRlIFBPU0lYIGV4dGVuZGVkIGF0dHJpYnV0ZXMuXG5cbi1oCURvIG5vdCBkZXJlZmVyZW5jZSBzeW1saW5rXG4tbglTZXQgZ2l2ZW4gYXR0cmlidXRlXG4teAlSZW1vdmUgZ2l2ZW4gYXR0cmlidXRlXG4tdglTZXQgdmFsdWUgZm9yIGF0dHJpYnV0ZSAtbiAoZGVmYXVsdCBpcyBlbXB0eSkiCisKKyNkZWZpbmUgSEVMUF9ydGN3YWtlICJ1c2FnZTogcnRjd2FrZSBbLWFsdXZdIFstZCBGSUxFXSBbLW0gTU9ERV0gWy1zIFNFQ1NdIFstdCBVTklYXVxuXG5FbnRlciB0aGUgZ2l2ZW4gc2xlZXAgc3RhdGUgdW50aWwgdGhlIGdpdmVuIHRpbWUuXG5cbi1hCVJUQyB1c2VzIHRpbWUgc3BlY2lmaWVkIGluIC9ldGMvYWRqdGltZVxuLWQgRklMRQlEZXZpY2UgdG8gdXNlIChkZWZhdWx0IC9kZXYvcnRjKVxuLWwJUlRDIHVzZXMgbG9jYWwgdGltZVxuLW0JTW9kZSAoLS1saXN0LW1vZGVzIHRvIHNlZSB0aG9zZSBzdXBwb3J0ZWQgYnkgeW91ciBrZXJuZWwpOlxuCSAgc3RhbmRieSAgUzE6IGRlZmF1bHQgICAgICAgICAgICAgIG1lbSAgICAgUzM6IHN1c3BlbmQgdG8gUkFNXG4JICBkaXNrICAgICBTNDogc3VzcGVuZCB0byBkaXNrICAgICAgb2ZmICAgICBTNTogcG93ZXIgb2ZmXG4JICBkaXNhYmxlICBDYW5jZWwgY3VycmVudCBhbGFybSAgICAgZnJlZXplICBzdG9wIHByb2Nlc3Nlcy9wcm9jZXNzb3JzXG4JICBubyAgICAgICBqdXN0IHNldCB3YWtldXAgdGltZSAgICAgb24gICAgICBqdXN0IHBvbGwgUlRDIGZvciBhbGFybVxuCSAgc2hvdyAgICAganVzdCBzaG93IGN1cnJlbnQgYWxhcm1cbi1zIFNFQ1MJV2FrZSBTRUNTIHNlY29uZHMgZnJvbSBub3dcbi10IFVOSVgJV2FrZSBVTklYIHNlY29uZHMgZnJvbSBlcG9jaFxuLXUJUlRDIHVzZXMgVVRDXG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfcm1tb2QgInVzYWdlOiBybW1vZCBbLXdmXSBNT0RVTEUuLi5cblxuVW5sb2FkIHRoZSBnaXZlbiBrZXJuZWwgbW9kdWxlcy5cblxuLWYJRm9yY2UgdW5sb2FkIG9mIGEgbW9kdWxlXG4tdwlXYWl0IHVudGlsIHRoZSBtb2R1bGUgaXMgbm8gbG9uZ2VyIHVzZWQiCisKKyNkZWZpbmUgSEVMUF9yZXYgInVzYWdlOiByZXYgW0ZJTEUuLi5dXG5cbk91dHB1dCBlYWNoIGxpbmUgcmV2ZXJzZWQsIHdoZW4gbm8gZmlsZXMgYXJlIGdpdmVuIHN0ZGluIGlzIHVzZWQuIgorCisjZGVmaW5lIEhFTFBfcmVzZXQgInVzYWdlOiByZXNldFxuXG5SZXNldCB0aGUgdGVybWluYWwuIgorCisjZGVmaW5lIEhFTFBfcmVib290ICJ1c2FnZTogcmVib290L2hhbHQvcG93ZXJvZmYgWy1mbl0gWy1kIERFTEFZXVxuXG5SZXN0YXJ0LCBoYWx0LCBvciBwb3dlciBvZmYgdGhlIHN5c3RlbS5cblxuLWQJV2FpdCBERUxBWSBiZWZvcmUgcHJvY2VlZGluZyAoaW4gc2Vjb25kcyBvciBtL2gvZCBzdWZmaXg6IC1kIDEuNW0gPSA5MHMpXG4tZglGb3JjZSByZWJvb3QgKGRvbid0IHNpZ25hbCBpbml0LCByZWJvb3QgZGlyZWN0bHkpXG4tbglEb24ndCBzeW5jIGZpbGVzeXN0ZW1zIGJlZm9yZSByZWJvb3QiCisKKyNkZWZpbmUgSEVMUF9yZWFscGF0aCAidXNhZ2U6IHJlYWxwYXRoIFstTFBlbXFzel0gWy0tcmVsYXRpdmUtYmFzZSBESVJdIFstUiBESVJdIEZJTEUuLi5cblxuRGlzcGxheSB0aGUgY2Fub25pY2FsIGFic29sdXRlIHBhdGhuYW1lXG5cbi1SIFNob3cgLi4vcGF0aCByZWxhdGl2ZSB0byBESVIgKC0tcmVsYXRpdmUtdG8pXG4tTCBMb2dpY2FsIHBhdGggKHJlc29sdmUgLi4gYmVmb3JlIHN5bWxpbmtzKVxuLVAgUGh5c2ljYWwgcGF0aCAoZGVmYXVsdClcbi1lIENhbm9uaWNhbCBwYXRoIHRvIGV4aXN0aW5nIGVudHJ5IChmYWlsIGlmIG1pc3NpbmcpXG4tbSBJZ25vcmUgbWlzc2luZyBlbnRyaWVzLCBzaG93IHdoZXJlIGl0IHdvdWxkIGJlXG4tcSBRdWlldCAobm8gZXJyb3IgbWVzc2FnZXMpXG4tcyBEb24ndCBleHBhbmQgc3ltbGlua3Ncbi16IE5VTCBpbnN0ZWFkIG9mIG5ld2xpbmVcbi0tcmVsYXRpdmUtYmFzZSAgSWYgcGF0aCB1bmRlciBESVIgdHJpbSBvZmYgcHJlZml4IgorCisjZGVmaW5lIEhFTFBfcmVhZGxpbmsgInVzYWdlOiByZWFkbGluayBbLWVmbW5xel0gRklMRS4uLlxuXG5XaXRoIG5vIG9wdGlvbnMsIHNob3cgd2hhdCBzeW1saW5rIHBvaW50cyB0bywgcmV0dXJuIGVycm9yIGlmIG5vdCBzeW1saW5rLlxuXG5PcHRpb25zIGZvciBwcm9kdWNpbmcgY2Fub25pY2FsIHBhdGhzIChhbGwgc3ltbGlua3MvLi8uLiByZXNvbHZlZCk6XG5cbi1lCUNhbm9uaWNhbCBwYXRoIHRvIGV4aXN0aW5nIGVudHJ5IChmYWlsIGlmIG1pc3NpbmcpXG4tZglGdWxsIHBhdGggKGZhaWwgaWYgZGlyZWN0b3J5IG1pc3NpbmcpXG4tbQlJZ25vcmUgbWlzc2luZyBlbnRyaWVzLCBzaG93IHdoZXJlIGl0IHdvdWxkIGJlXG4tbglObyB0cmFpbGluZyBuZXdsaW5lXG4tcQlRdWlldCAobm8gZXJyb3IgbWVzc2FnZXMpXG4teglOVUwgaW5zdGVhZCBvZiBuZXdsaW5lIgorCisjZGVmaW5lIEhFTFBfcmVhZGVsZiAidXNhZ2U6IHJlYWRlbGYgWy1BYWRlaGxuU3NdIFstcCBTRUNUSU9OXSBbLXggU0VDVElPTl0gW2ZpbGUuLi5dXG5cbkRpc3BsYXlzIGluZm9ybWF0aW9uIGFib3V0IEVMRiBmaWxlcy5cblxuLUEJU2hvdyBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgaW5mb1xuLWEJRXF1aXZhbGVudCB0byAtQWRobG5Tc1xuLWQJU2hvdyBkeW5hbWljIHNlY3Rpb25cbi1lCUhlYWRlcnMgKGVxdWl2YWxlbnQgdG8gLWhsUylcbi1oCVNob3cgRUxGIGhlYWRlclxuLWwJU2hvdyBwcm9ncmFtIGhlYWRlcnNcbi1uCVNob3cgbm90ZXNcbi1wIFMJRHVtcCBzdHJpbmdzIGZvdW5kIGluIG5hbWVkL251bWJlcmVkIHNlY3Rpb25cbi1TCVNob3cgc2VjdGlvbiBoZWFkZXJzXG4tcwlTaG93IHN5bWJvbCB0YWJsZXMgKC5keW5zeW0gYW5kIC5zeW10YWIpXG4teCBTCUhleCBkdW1wIG9mIG5hbWVkL251bWJlcmVkIHNlY3Rpb25cblxuLS1keW4tc3ltcwlTaG93IGp1c3QgLmR5bnN5bSBzeW1ib2wgdGFibGUiCisKKyNkZWZpbmUgSEVMUF9yZWFkYWhlYWQgInVzYWdlOiByZWFkYWhlYWQgRklMRS4uLlxuXG5QcmVsb2FkIGZpbGVzIGludG8gZGlzayBjYWNoZS4iCisKKyNkZWZpbmUgSEVMUF9wd2dlbiAidXNhZ2U6IHB3Z2VuIFstY0FuMHlyc0JDMXZdIFstciBDSEFSU10gW0xFTkdUSF0gW0NPVU5UXVxuXG5HZW5lcmF0ZSBodW1hbi1yZWFkYWJsZSByYW5kb20gcGFzc3dvcmRzLiBEZWZhdWx0IG91dHB1dCB0byB0dHkgZmlsbHMgc2NyZWVuXG53aXRoIHBhc3N3b3JkcyB0byBkZWZlYXQgc2hvdWxkZXIgc3VyZmluZyAocGljayBvbmUgYW5kIGNsZWFyIHRoZSBzY3JlZW4pLlxuXG4tMAlObyBudW1iZXJzICgtLW5vLW51bWVyYWxzKVxuLTEJT3V0cHV0IG9uZSBwZXIgbGluZVxuLUEJTm8gY2FwaXRhbCBsZXR0ZXJzICgtLW5vLWNhcGl0YWxpemUpXG4tQglBdm9pZCBhbWJpZ3VvdXMgY2hhcmFjdGVycyBsaWtlIDBPIGFuZCAxbEkgKC0tYW1iaWd1b3VzKVxuLUMJT3V0cHV0IGluIGNvbHVtbnNcbi1jCUFkZCBjYXBpdGFsIGxldHRlcnMgKC0tY2FwaXRhbGl6ZSlcbi1uCUFkZCBudW1iZXJzICgtLW51bWVyYWxzKVxuLXIJRG9uJ3QgaW5jbHVkZSB0aGUgZ2l2ZW4gQ0hBUlMgKC0tcmVtb3ZlKVxuLXYJTm8gdm93ZWxzLlxuLXkJQWRkIHB1bmN0dWF0aW9uICgtLXN5bWJvbHMpIgorCisjZGVmaW5lIEhFTFBfcHdkeCAidXNhZ2U6IHB3ZHggUElELi4uXG5cblByaW50IHdvcmtpbmcgZGlyZWN0b3J5IG9mIHByb2Nlc3NlcyBsaXN0ZWQgb24gY29tbWFuZCBsaW5lLiIKKworI2RlZmluZSBIRUxQX3ByaW50ZW52ICJ1c2FnZTogcHJpbnRlbnYgWy0wXSBbZW52X3Zhci4uLl1cblxuUHJpbnQgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuXG4tMAlVc2UgXFwwIGFzIGRlbGltaXRlciBpbnN0ZWFkIG9mIFxcbiIKKworI2RlZmluZSBIRUxQX3BtYXAgInVzYWdlOiBwbWFwIFstcHF4XSBQSUQuLi5cblxuUmVwb3J0IHRoZSBtZW1vcnkgbWFwIG9mIGEgcHJvY2VzcyBvciBwcm9jZXNzZXMuXG5cbi1wCVNob3cgZnVsbCBwYXRoc1xuLXEJRG8gbm90IHNob3cgaGVhZGVyIG9yIGZvb3RlclxuLXgJU2hvdyB0aGUgZXh0ZW5kZWQgZm9ybWF0IgorCisjZGVmaW5lIEhFTFBfcGl2b3Rfcm9vdCAidXNhZ2U6IHBpdm90X3Jvb3QgT0xEIE5FV1xuXG5Td2FwIE9MRCBhbmQgTkVXIGZpbGVzeXN0ZW1zIChhcyBpZiBieSBzaW11bHRhbmVvdXMgbW91bnQgLS1tb3ZlKSwgYW5kXG5tb3ZlIGFsbCBwcm9jZXNzZXMgd2l0aCBjaGRpciBvciBjaHJvb3QgdW5kZXIgT0xEIGludG8gTkVXIChpbmNsdWRpbmdcbmtlcm5lbCB0aHJlYWRzKSBzbyBPTEQgbWF5IGJlIHVubW91bnRlZC5cblxuVGhlIGRpcmVjdG9yeSBORVcgbXVzdCBleGlzdCB1bmRlciBPTEQuIFRoaXMgZG9lc24ndCB3b3JrIG9uIGluaXRyYW1mcyxcbndoaWNoIGNhbid0IGJlIG1vdmVkIChhYm91dCB0aGUgc2FtZSB3YXkgUElEIDEgY2FuJ3QgYmUga2lsbGVkOyBzZWVcbnN3aXRjaF9yb290IGluc3RlYWQpLiIKKworI2RlZmluZSBIRUxQX3BhcnRwcm9iZSAidXNhZ2U6IHBhcnRwcm9iZSBERVZJQ0UuLi5cblxuVGVsbCB0aGUga2VybmVsIGFib3V0IHBhcnRpdGlvbiB0YWJsZSBjaGFuZ2VzXG5cbkFzayB0aGUga2VybmVsIHRvIHJlLXJlYWQgdGhlIHBhcnRpdGlvbiB0YWJsZSBvbiB0aGUgc3BlY2lmaWVkIGRldmljZXMuIgorCisjZGVmaW5lIEhFTFBfZGVhbGxvY3Z0ICJ1c2FnZTogZGVhbGxvY3Z0IFtOVU1dXG5cbkRlYWxsb2NhdGUgdW51c2VkIHZpcnR1YWwgdGVybWluYWxzLCBlaXRoZXIgYSBzcGVjaWZpYyAvZGV2L3R0eU5VTSwgb3IgYWxsLiIKKworI2RlZmluZSBIRUxQX2NodnQgInVzYWdlOiBjaHZ0IE5VTVxuXG5DaGFuZ2UgdG8gdmlydHVhbCB0ZXJtaW5hbCBudW1iZXIgTlVNLiAoVGhpcyBvbmx5IHdvcmtzIGluIHRleHQgbW9kZS4pXG5cblZpcnR1YWwgdGVybWluYWxzIGFyZSB0aGUgTGludXggVkdBIHRleHQgbW9kZSAob3IgZnJhbWVidWZmZXIpIGRpc3BsYXlzLFxuc3dpdGNoZWQgYmV0d2VlbiB2aWEgYWx0LUYxLCBhbHQtRjIsIGV0Yy4gVXNlIGN0cmwtYWx0LUYxIHRvIHN3aXRjaFxuZnJvbSBYMTEgdG8gYSB2aXJ0dWFsIHRlcm1pbmFsLCBhbmQgYWx0LUY2IChvciBGNywgb3IgRjgpIHRvIGdldCBiYWNrLiIKKworI2RlZmluZSBIRUxQX29wZW52dCAidXNhZ2U6IG9wZW52dCBbLWMgTlVNXSBbLXN3XSBDT01NQU5ELi4uXG5cblJ1biBDT01NQU5EIG9uIGEgbmV3IHZpcnR1YWwgdGVybWluYWwuXG5cbi1jIE5VTSAgVXNlIFZUIE5VTVxuLXMgICAgU3dpdGNoIHRvIHRoZSBuZXcgVlRcbi13ICAgIFdhaXQgZm9yIGNvbW1hbmQgdG8gZXhpdCAod2l0aCAtcywgZGVhbGxvY2F0ZXMgVlQgb24gZXhpdCkiCisKKyNkZWZpbmUgSEVMUF9vbmVpdCAidXNhZ2U6IG9uZWl0IFstcHJuM10gWy1jIENPTlNPTEVdIFtDT01NQU5ELi4uXVxuXG5TaW1wbGUgaW5pdCBwcm9ncmFtIHRoYXQgcnVucyBhIHNpbmdsZSBzdXBwbGllZCBjb21tYW5kIGxpbmUgd2l0aCBhXG5jb250cm9sbGluZyB0dHkgKHNvIENUUkwtQyBjYW4ga2lsbCBpdCkuXG5cbi1jCVdoaWNoIGNvbnNvbGUgZGV2aWNlIHRvIHVzZSAoL2Rldi9jb25zb2xlIGRvZXNuJ3QgZG8gQ1RSTC1DLCBldGMpXG4tcAlQb3dlciBvZmYgaW5zdGVhZCBvZiByZWJvb3Rpbmcgd2hlbiBjb21tYW5kIGV4aXRzXG4tcglSZXN0YXJ0IGNoaWxkIHdoZW4gaXQgZXhpdHNcbi1uCU5vIHJlYm9vdCwganVzdCByZWxhdW5jaCBjb21tYW5kIGxpbmVcbi0zCVdyaXRlIDMyIGJpdCBQSUQgb2YgZWFjaCBleGl0aW5nIHJlcGFyZW50ZWQgcHJvY2VzcyB0byBmZCAzIG9mIGNoaWxkXG4JKEJsb2NraW5nIHdyaXRlcywgY2hpbGQgbXVzdCByZWFkIHRvIGF2b2lkIGV2ZW50dWFsIGRlYWRsb2NrLilcblxuU3Bhd25zIGEgc2luZ2xlIGNoaWxkIHByb2Nlc3MgKGJlY2F1c2UgUElEIDEgaGFzIHNpZ25hbHMgYmxvY2tlZClcbmluIGl0cyBvd24gc2Vzc2lvbiwgcmVhcHMgem9tYmllcyB1bnRpbCB0aGUgY2hpbGQgZXhpdHMsIHRoZW5cbnJlYm9vdHMgdGhlIHN5c3RlbSAob3IgcG93ZXJzIG9mZiB3aXRoIC1wLCBvciByZXN0YXJ0cyB0aGUgY2hpbGQgd2l0aCAtcikuXG5cblJlc3BvbmRzIHRvIFNJR1VTUjEgYnkgaGFsdGluZyB0aGUgc3lzdGVtLCBTSUdVU1IyIGJ5IHBvd2VyaW5nIG9mZixcbmFuZCBTSUdURVJNIG9yIFNJR0lOVCByZWJvb3QuIgorCisjZGVmaW5lIEhFTFBfbnNlbnRlciAidXNhZ2U6IG5zZW50ZXIgWy10IHBpZF0gWy1GXSBbLWldIFstbV0gWy1uXSBbLXBdIFstdV0gWy1VXSBDT01NQU5ELi4uXG5cblJ1biBDT01NQU5EIGluIGFuIGV4aXN0aW5nIChzZXQgb2YpIG5hbWVzcGFjZShzKS5cblxuLWEJRW50ZXIgYWxsIHN1cHBvcnRlZCBuYW1lc3BhY2VzICgtLWFsbClcbi1GCWRvbid0IGZvcmssIGV2ZW4gaWYgLXAgaXMgdXNlZCAoLS1uby1mb3JrKVxuLXQJUElEIHRvIHRha2UgbmFtZXNwYWNlcyBmcm9tICAgICgtLXRhcmdldClcblxuVGhlIG5hbWVzcGFjZXMgdG8gc3dpdGNoIGFyZTpcblxuLUMJQ29udHJvbCBncm91cHMgKC0tY2dyb3VwKVxuLWkJU3lzViBJUEM6IG1lc3NhZ2UgcXVldWVzLCBzZW1hcGhvcmVzLCBzaGFyZWQgbWVtb3J5ICgtLWlwYylcbi1tCU1vdW50L3VubW91bnQgdHJlZSAoLS1tb3VudClcbi1uCU5ldHdvcmsgYWRkcmVzcywgc29ja2V0cywgcm91dGluZywgaXB0YWJsZXMgKC0tbmV0KVxuLXAJUHJvY2VzcyBJRHMgYW5kIGluaXQsIHdpbGwgZm9yayB1bmxlc3MgLUYgaXMgdXNlZCAoLS1waWQpXG4tdQlIb3N0IGFuZCBkb21haW4gbmFtZXMgKC0tdXRzKVxuLVUJVUlEcywgR0lEcywgY2FwYWJpbGl0aWVzICgtLXVzZXIpXG5cbklmIC10IGlzbid0IHNwZWNpZmllZCwgZWFjaCBuYW1lc3BhY2UgYXJndW1lbnQgbXVzdCBwcm92aWRlIGEgcGF0aFxudG8gYSBuYW1lc3BhY2UgZmlsZSwgYWxhIFwiLWk9L3Byb2MvJFBJRC9ucy9pcGNcIiIKKworI2RlZmluZSBIRUxQX3Vuc2hhcmUgInVzYWdlOiB1bnNoYXJlIFstaW1ucHVVcl0gQ09NTUFORC4uLlxuXG5DcmVhdGUgbmV3IGNvbnRhaW5lciBuYW1lc3BhY2UocykgZm9yIHRoaXMgcHJvY2VzcyBhbmQgaXRzIGNoaWxkcmVuLCBhbGxvd2luZ1xudGhlIG5ldyBzZXQgb2YgcHJvY2Vzc2VzIHRvIGhhdmUgYSBkaWZmZXJlbnQgdmlldyBvZiB0aGUgc3lzdGVtIHRoYW4gdGhlXG5wYXJlbnQgcHJvY2Vzcy5cblxuLWEJVW5zaGFyZSBhbGwgc3VwcG9ydGVkIG5hbWVzcGFjZXNcbi1mCUZvcmsgY29tbWFuZCBpbiB0aGUgYmFja2dyb3VuZCAoLS1mb3JrKVxuLXIJQmVjb21lIHJvb3QgKG1hcCBjdXJyZW50IGV1aWQvZWdpZCB0byAwLzAsIGltcGxpZXMgLVUpICgtLW1hcC1yb290LXVzZXIpXG5cbkF2YWlsYWJsZSBuYW1lc3BhY2VzOlxuLUMJQ29udHJvbCBncm91cHMgKC0tY2dyb3VwKVxuLWkJU3lzViBJUEMgKG1lc3NhZ2UgcXVldWVzLCBzZW1hcGhvcmVzLCBzaGFyZWQgbWVtb3J5KSAoLS1pcGMpXG4tbQlNb3VudC91bm1vdW50IHRyZWUgKC0tbW91bnQpXG4tbglOZXR3b3JrIGFkZHJlc3MsIHNvY2tldHMsIHJvdXRpbmcsIGlwdGFibGVzICgtLW5ldClcbi1wCVByb2Nlc3MgSURzIGFuZCBpbml0ICgtLXBpZClcbi11CUhvc3QgYW5kIGRvbWFpbiBuYW1lcyAoLS11dHMpXG4tVQlVSURzLCBHSURzLCBjYXBhYmlsaXRpZXMgKC0tdXNlcilcblxuRWFjaCBuYW1lc3BhY2UgY2FuIHRha2UgYW4gb3B0aW9uYWwgYXJndW1lbnQsIGEgcGVyc2lzdGVudCBtb3VudHBvaW50IHVzYWJsZVxuYnkgdGhlIG5zZW50ZXIgY29tbWFuZCB0byBhZGQgbmV3IHByb2Nlc3NlcyB0byB0aGF0IHRoZSBuYW1lc3BhY2UuIChTcGVjaWZ5XG5tdWx0aXBsZSBuYW1lc3BhY2VzIHRvIHVuc2hhcmUgc2VwYXJhdGVseSwgYWxhIC1jIC1pIC1tIGJlY2F1c2UgLWNpbSBpcyAtY1xud2l0aCBwZXJzaXN0ZW50IG1vdW50IFwiaW1cIi4pIgorCisjZGVmaW5lIEhFTFBfbmJkX3NlcnZlciAidXNhZ2U6IG5iZC1zZXJ2ZXIgWy1yXSBGSUxFXG5cblNlcnZlIGEgTmV0d29yayBCbG9jayBEZXZpY2UgZnJvbSBGSUxFIG9uIHN0ZGluL291dCAoYWxhIGluZXRkKS5cblxuLXIJUmVhZCBvbmx5IGV4cG9ydCIKKworI2RlZmluZSBIRUxQX25iZF9jbGllbnQgInVzYWdlOiBuYmQtY2xpZW50IFstbnNdIFstYiBCTEtTWl0gSE9TVCBQT1JUIERFVklDRVxuXG4tYglCbG9jayBzaXplIChkZWZhdWx0IDQwOTYpXG4tbglEbyBub3QgZGFlbW9uaXplXG4tcwluYmQgc3dhcCBzdXBwb3J0IChsb2NrIHNlcnZlciBpbnRvIG1lbW9yeSkiCisKKyNkZWZpbmUgSEVMUF9tb3VudHBvaW50ICJ1c2FnZTogbW91bnRwb2ludCBbLXFkXSBESVJcbiAgICAgICBtb3VudHBvaW50IFstcXhdIERFVklDRVxuXG5DaGVjayB3aGV0aGVyIHRoZSBkaXJlY3Rvcnkgb3IgZGV2aWNlIGlzIGEgbW91bnRwb2ludC5cblxuLXEJQmUgcXVpZXQsIHJldHVybiB6ZXJvIGlmIGRpcmVjdG9yeSBpcyBhIG1vdW50cG9pbnRcbi1kCVByaW50IG1ham9yL21pbm9yIGRldmljZSBudW1iZXIgb2YgdGhlIGRpcmVjdG9yeVxuLXgJUHJpbnQgbWFqb3IvbWlub3IgZGV2aWNlIG51bWJlciBvZiB0aGUgYmxvY2sgZGV2aWNlIgorCisjZGVmaW5lIEhFTFBfbW9kaW5mbyAidXNhZ2U6IG1vZGluZm8gWy0wXSBbLWIgYmFzZWRpcl0gWy1rIGtlcm5lbF0gWy1GIGZpZWxkXSBbbW9kdWxlfGZpbGUuLi5dXG5cbkRpc3BsYXkgbW9kdWxlIGZpZWxkcyBmb3IgbW9kdWxlcyBzcGVjaWZpZWQgYnkgbmFtZSBvciAua28gcGF0aC5cblxuLUYgIE9ubHkgc2hvdyB0aGUgZ2l2ZW4gZmllbGRcbi0wICBTZXBhcmF0ZSBmaWVsZHMgd2l0aCBOVUwgcmF0aGVyIHRoYW4gbmV3bGluZVxuLWIgIFVzZSA8YmFzZWRpcj4gYXMgcm9vdCBmb3IgL2xpYi9tb2R1bGVzL1xuLWsgIExvb2sgaW4gZ2l2ZW4gZGlyZWN0b3J5IHVuZGVyIC9saWIvbW9kdWxlcy8iCisKKyNkZWZpbmUgSEVMUF9ta3N3YXAgInVzYWdlOiBta3N3YXAgWy1MIExBQkVMXSBERVZJQ0VcblxuU2V0IHVwIGEgTGludXggc3dhcCBhcmVhIG9uIGEgZGV2aWNlIG9yIGZpbGUuIgorCisjZGVmaW5lIEhFTFBfbWtwYXNzd2QgInVzYWdlOiBta3Bhc3N3ZCBbLVAgRkRdIFstbSBUWVBFXSBbLVMgU0FMVF0gW1BBU1NXT1JEXSBbU0FMVF1cblxuRW5jcnlwdCBQQVNTV09SRCB1c2luZyBjcnlwdCgzKSwgd2l0aCBlaXRoZXIgcmFuZG9tIG9yIHByb3ZpZGVkIFNBTFQuXG5cbi1QIEZECVJlYWQgcGFzc3dvcmQgZnJvbSBmaWxlIGRlc2NyaXB0b3IgRkRcbi1tIFRZUEUJRW5jcnlwdGlvbiBtZXRob2QgKGRlcywgbWQ1LCBzaGEyNTYsIG9yIHNoYTUxMjsgZGVmYXVsdCBpcyBkZXMpIgorCisjZGVmaW5lIEhFTFBfbWl4ICJ1c2FnZTogbWl4IFstZCBERVZdIFstYyBDSEFOTkVMXSBbLWwgVk9MXSBbLXIgUklHSFRdXG5cbkxpc3QgT1NTIHNvdW5kIGNoYW5uZWxzIChtb2R1bGUgc25kLW1peGVyLW9zcyksIG9yIHNldCB2b2x1bWUocykuXG5cbi1jIENIQU5ORUwJU2V0L3Nob3cgdm9sdW1lIG9mIENIQU5ORUwgKGRlZmF1bHQgZmlyc3QgY2hhbm5lbCBmb3VuZClcbi1kIERFVgkJRGV2aWNlIG5vZGUgKGRlZmF1bHQgL2Rldi9taXhlcilcbi1sIFZPTAkJVm9sdW1lIGxldmVsXG4tciBSSUdIVAlWb2x1bWUgb2YgcmlnaHQgc3RlcmVvIGNoYW5uZWwgKHdpdGggLXIsIC1sIHNldHMgbGVmdCB2b2x1bWUpIgorCisjZGVmaW5lIEhFTFBfbWVtZWF0ZXIgInVzYWdlOiBtZW1lYXRlciBbLU1dIEJZVEVTXG5cbkNvbnN1bWUgdGhlIHNwZWNpZmllZCBhbW91bnQgb2YgbWVtb3J5IGFuZCB3YWl0IHRvIGJlIGtpbGxlZC5cblxuLU0JRG9uJ3QgbWxvY2soKSB0aGUgbWVtb3J5IChsZXQgaXQgc3dhcCBvdXQpLiIKKworI2RlZmluZSBIRUxQX21jb29raWUgInVzYWdlOiBtY29va2llIFstdlZdXG5cbkdlbmVyYXRlIGEgMTI4LWJpdCBzdHJvbmcgcmFuZG9tIG51bWJlci5cblxuLXYgIHNob3cgZW50cm9weSBzb3VyY2UgKHZlcmJvc2UpXG4tViAgc2hvdyB2ZXJzaW9uIgorCisjZGVmaW5lIEhFTFBfbWFrZWRldnMgInVzYWdlOiBtYWtlZGV2cyBbLWQgZGV2aWNlX3RhYmxlXSByb290ZGlyXG5cbkNyZWF0ZSBhIHJhbmdlIG9mIHNwZWNpYWwgZmlsZXMgYXMgc3BlY2lmaWVkIGluIGEgZGV2aWNlIHRhYmxlLlxuXG4tZAlGaWxlIGNvbnRhaW5pbmcgZGV2aWNlIHRhYmxlIChkZWZhdWx0IHJlYWRzIGZyb20gc3RkaW4pXG5cbkVhY2ggbGluZSBvZiB0aGUgZGV2aWNlIHRhYmxlIGhhcyB0aGUgZmllbGRzOlxuPG5hbWU+IDx0eXBlPiA8bW9kZT4gPHVpZD4gPGdpZD4gPG1ham9yPiA8bWlub3I+IDxzdGFydD4gPGluY3JlbWVudD4gPGNvdW50PlxuV2hlcmUgbmFtZSBpcyB0aGUgZmlsZSBuYW1lLCBhbmQgdHlwZSBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZzpcblxuYglCbG9jayBkZXZpY2VcbmMJQ2hhcmFjdGVyIGRldmljZVxuZAlEaXJlY3RvcnlcbmYJUmVndWxhciBmaWxlXG5wCU5hbWVkIHBpcGUgKGZpZm8pXG5cbk90aGVyIGZpZWxkcyBzcGVjaWZ5IHBlcm1pc3Npb25zLCB1c2VyIGFuZCBncm91cCBpZCBvd25pbmcgdGhlIGZpbGUsXG5hbmQgYWRkaXRpb25hbCBmaWVsZHMgZm9yIGRldmljZSBzcGVjaWFsIGZpbGVzLiBVc2UgJy0nIGZvciBibGFuayBlbnRyaWVzLFxudW5zcGVjaWZpZWQgZmllbGRzIGFyZSB0cmVhdGVkIGFzICctJy4iCisKKyNkZWZpbmUgSEVMUF9sc3VzYiAidXNhZ2U6IGxzdXNiIFstaV1cblxuTGlzdCBVU0IgaG9zdHMvZGV2aWNlcy5cblxuLWkJSUQgZGF0YWJhc2UgKGRlZmF1bHQgL2V0Yy91c2IuaWRzWy5nel0pIgorCisjZGVmaW5lIEhFTFBfbHNwY2kgInVzYWdlOiBsc3BjaSBbLWVrbW5dIFstaSBGSUxFXVxuXG5MaXN0IFBDSSBkZXZpY2VzLlxuXG4tZQlFeHRlbmRlZCAoNiBkaWdpdCkgY2xhc3Ncbi1pCUlEIGRhdGFiYXNlIChkZWZhdWx0IC9ldGMvcGNpLmlkc1suZ3pdKVxuLWsJU2hvdyBrZXJuZWwgZHJpdmVyXG4tbQlNYWNoaW5lIHJlYWRhYmxlXG4tbglOdW1lcmljIG91dHB1dCAoLW5uIGZvciBib3RoKVxuLXgJSGV4IGR1bXAgb2YgY29uZmlnIHNwYWNlICg2NCBieXRlczsgLXh4eCBmb3IgMjU2LCAteHh4eCBmb3IgNDA5NikiCisKKyNkZWZpbmUgSEVMUF9sc21vZCAidXNhZ2U6IGxzbW9kXG5cbkRpc3BsYXkgdGhlIGN1cnJlbnRseSBsb2FkZWQgbW9kdWxlcywgdGhlaXIgc2l6ZXMgYW5kIHRoZWlyIGRlcGVuZGVuY2llcy4iCisKKyNkZWZpbmUgSEVMUF9jaGF0dHIgInVzYWdlOiBjaGF0dHIgWy1SXSBbLSs9QWFjRGRpanNTdFR1XSBbLXAgUFJPSklEXSBbLXYgVkVSU0lPTl0gW0ZJTEUuLi5dXG5cbkNoYW5nZSBmaWxlIGF0dHJpYnV0ZXMgb24gYSBMaW51eCBmaWxlIHN5c3RlbS5cblxuLVIJUmVjdXJzZVxuLXAJU2V0IHRoZSBmaWxlJ3MgcHJvamVjdCBudW1iZXJcbi12CVNldCB0aGUgZmlsZSdzIHZlcnNpb24vZ2VuZXJhdGlvbiBudW1iZXJcblxuT3BlcmF0b3JzOlxuICAnLScgUmVtb3ZlIGF0dHJpYnV0ZXNcbiAgJysnIEFkZCBhdHRyaWJ1dGVzXG4gICc9JyBTZXQgYXR0cmlidXRlc1xuXG5BdHRyaWJ1dGVzOlxuICBBICBObyBhdGltZSAgICAgICAgICAgICAgICAgICAgIGEgIEFwcGVuZCBvbmx5XG4gIEMgIE5vIENPVyAgICAgICAgICAgICAgICAgICAgICAgYyAgQ29tcHJlc3Npb25cbiAgRCAgU3luY2hyb25vdXMgZGlyIHVwZGF0ZXMgICAgICBkICBObyBkdW1wXG4gIEUgIEVuY3J5cHRlZCAgICAgICAgICAgICAgICAgICAgZSAgRXh0ZW50c1xuICBGICBDYXNlLWluc2Vuc2l0aXZlIChjYXNlZm9sZClcbiAgSSAgSW5kZXhlZCBkaXJlY3RvcnkgICAgICAgICAgICBpICBJbW11dGFibGVcbiAgaiAgSm91cm5hbCBkYXRhXG4gIE4gIElubGluZSBkYXRhIGluIGlub2RlXG4gIFAgIFByb2plY3QgaGllcmFyY2h5XG4gIFMgIFN5bmNocm9ub3VzIGZpbGUgdXBkYXRlcyAgICAgcyAgU2VjdXJlIGRlbGV0ZVxuICBUICBUb3Agb2YgZGlyIGhpZXJhcmNoeSAgICAgICAgIHQgIE5vIHRhaWwtbWVyZ2luZ1xuICB1ICBBbGxvdyB1bmRlbGV0ZVxuICBWICBWZXJpdHkiCisKKyNkZWZpbmUgSEVMUF9sc2F0dHIgInVzYWdlOiBsc2F0dHIgWy1SYWRscHZdIFtGSUxFLi4uXVxuXG5MaXN0IGZpbGUgYXR0cmlidXRlcyBvbiBhIExpbnV4IGZpbGUgc3lzdGVtLlxuRmxhZyBsZXR0ZXJzIGFyZSBkZWZpbmVkIGluIGNoYXR0ciBoZWxwLlxuXG4tUglSZWN1cnNpdmVseSBsaXN0IGF0dHJpYnV0ZXMgb2YgZGlyZWN0b3JpZXMgYW5kIHRoZWlyIGNvbnRlbnRzXG4tYQlMaXN0IGFsbCBmaWxlcyBpbiBkaXJlY3RvcmllcywgaW5jbHVkaW5nIGZpbGVzIHRoYXQgc3RhcnQgd2l0aCAnLidcbi1kCUxpc3QgZGlyZWN0b3JpZXMgbGlrZSBvdGhlciBmaWxlcywgcmF0aGVyIHRoYW4gbGlzdGluZyB0aGVpciBjb250ZW50c1xuLWwJTGlzdCBsb25nIGZsYWcgbmFtZXNcbi1wCUxpc3QgdGhlIGZpbGUncyBwcm9qZWN0IG51bWJlclxuLXYJTGlzdCB0aGUgZmlsZSdzIHZlcnNpb24vZ2VuZXJhdGlvbiBudW1iZXIiCisKKyNkZWZpbmUgSEVMUF9sb3NldHVwICJ1c2FnZTogbG9zZXR1cCBbLWNkcnNdIFstbyBPRkZTRVRdIFstUyBTSVpFXSB7LWQgREVWSUNFLi4ufC1qIEZJTEV8LWFmfHtERVZJQ0UgRklMRX19XG5cbkFzc29jaWF0ZSBhIGxvb3BiYWNrIGRldmljZSB3aXRoIGEgZmlsZSwgb3Igc2hvdyBjdXJyZW50IGZpbGUgKGlmIGFueSlcbmFzc29jaWF0ZWQgd2l0aCBhIGxvb3AgZGV2aWNlLlxuXG5JbnN0ZWFkIG9mIGEgZGV2aWNlOlxuLWEJSXRlcmF0ZSB0aHJvdWdoIGFsbCBsb29wYmFjayBkZXZpY2VzXG4tZglGaW5kIGZpcnN0IHVudXNlZCBsb29wIGRldmljZSAobWF5IGNyZWF0ZSBvbmUpXG4taiBGSUxFCUl0ZXJhdGUgdGhyb3VnaCBhbGwgbG9vcGJhY2sgZGV2aWNlcyBhc3NvY2lhdGVkIHdpdGggRklMRVxuXG5leGlzdGluZzpcbi1jCUNoZWNrIGNhcGFjaXR5IChmaWxlIHNpemUgY2hhbmdlZClcbi1kIERFVglEZXRhY2ggbG9vcGJhY2sgZGV2aWNlXG4tRAlEZXRhY2ggYWxsIGxvb3BiYWNrIGRldmljZXNcblxubmV3OlxuLXMJU2hvdyBkZXZpY2UgbmFtZSAoYWxpYXMgLS1zaG93KVxuLW8gT0ZGCVN0YXJ0IGFzc29jaWF0aW9uIGF0IG9mZnNldCBPRkYgaW50byBGSUxFXG4tcglSZWFkIG9ubHlcbi1TIFNJWkUJTGltaXQgU0laRSBvZiBsb29wYmFjayBhc3NvY2lhdGlvbiAoYWxpYXMgLS1zaXplbGltaXQpIgorCisjZGVmaW5lIEhFTFBfbG9naW4gInVzYWdlOiBsb2dpbiBbLXBdIFstaCBob3N0XSBbLWYgVVNFUk5BTUVdIFtVU0VSTkFNRV1cblxuTG9nIGluIGFzIGEgdXNlciwgcHJvbXB0aW5nIGZvciB1c2VybmFtZSBhbmQgcGFzc3dvcmQgaWYgbmVjZXNzYXJ5LlxuXG4tcAlQcmVzZXJ2ZSBlbnZpcm9ubWVudFxuLWgJVGhlIG5hbWUgb2YgdGhlIHJlbW90ZSBob3N0IGZvciB0aGlzIGxvZ2luXG4tZglsb2dpbiBhcyBVU0VSTkFNRSB3aXRob3V0IGF1dGhlbnRpY2F0aW9uIgorCisjZGVmaW5lIEhFTFBfbGludXgzMiAidXNhZ2U6IGxpbnV4MzIgW0NPTU1BTkQuLi5dXG5cblRlbGwgdW5hbWUgLW0gdG8gbGllIHRvIGF1dG9jb25mICh0byBidWlsZCAzMiBiaXQgYmluYXJpZXMgb24gNjQgYml0IGtlcm5lbCkuIgorCisjZGVmaW5lIEhFTFBfaW9yZW5pY2UgInVzYWdlOiBpb3JlbmljZSBQSUQgW0NMQVNTXSBbUFJJT1JJVFldXG5cbkRpc3BsYXkgb3IgY2hhbmdlIEkvTyBwcmlvcml0eSBvZiBleGlzdGluZyBwcm9jZXNzLiBDTEFTUyBjYW4gYmVcblwicnRcIiBmb3IgcmVhbHRpbWUsIFwiYmVcIiBmb3IgYmVzdCBlZmZvcnQsIFwiaWRsZVwiIGZvciBvbmx5IHdoZW4gaWRsZSwgb3Jcblwibm9uZVwiIHRvIGxlYXZlIGl0IGFsb25lLiBQUklPUklUWSBjYW4gYmUgMC03ICgwIGlzIGhpZ2hlc3QsIGRlZmF1bHQgNCkuIgorCisjZGVmaW5lIEhFTFBfaW9uaWNlICJ1c2FnZTogaW9uaWNlIFstdF0gWy1jIENMQVNTXSBbLW4gTEVWRUxdIFtDT01NQU5ELi4ufC1wIFBJRF1cblxuQ2hhbmdlIHRoZSBJL08gc2NoZWR1bGluZyBwcmlvcml0eSBvZiBhIHByb2Nlc3MuIFdpdGggbm8gYXJndW1lbnRzXG4ob3IganVzdCAtcCksIGRpc3BsYXkgcHJvY2VzcycgZXhpc3RpbmcgSS9PIGNsYXNzL3ByaW9yaXR5LlxuXG4tYwlDTEFTUyA9IDEtMzogMShyZWFsdGltZSksIDIoYmVzdC1lZmZvcnQsIGRlZmF1bHQpLCAzKHdoZW4taWRsZSlcbi1uCUxFVkVMID0gMC03OiAoMCBpcyBoaWdoZXN0IHByaW9yaXR5LCBkZWZhdWx0ID0gNSlcbi1wCUFmZmVjdCBleGlzdGluZyBQSUQgaW5zdGVhZCBvZiBzcGF3bmluZyBuZXcgY2hpbGRcbi10CUlnbm9yZSBmYWlsdXJlIHRvIHNldCBJL08gcHJpb3JpdHlcblxuU3lzdGVtIGRlZmF1bHQgaW9wcmlvcml0eSBpcyBnZW5lcmFsbHkgLWMgMiAtbiA0LiIKKworI2RlZmluZSBIRUxQX2luc21vZCAidXNhZ2U6IGluc21vZCBNT0RVTEUgW09QVElPTi4uLl1cblxuTG9hZCB0aGUgbW9kdWxlIG5hbWVkIE1PRFVMRSBwYXNzaW5nIG9wdGlvbnMgaWYgZ2l2ZW4uIgorCisjZGVmaW5lIEhFTFBfaW5vdGlmeWQgInVzYWdlOiBpbm90aWZ5ZCBQUk9HIEZJTEVbOk1BU0tdIC4uLlxuXG5XaGVuIGEgZmlsZXN5c3RlbSBldmVudCBtYXRjaGluZyBNQVNLIG9jY3VycyB0byBhIEZJTEUsIHJ1biBQUk9HIGFzOlxuXG4gIFBST0cgRVZFTlRTIEZJTEUgW0RJUkZJTEVdXG5cbklmIFBST0cgaXMgXCItXCIgZXZlbnRzIGFyZSBzZW50IHRvIHN0ZG91dC5cblxuVGhpcyBmaWxlIGlzOlxuICBhICBhY2Nlc3NlZCAgICBjICBtb2RpZmllZCAgICBlICBtZXRhZGF0YSBjaGFuZ2UgIHcgIGNsb3NlZCAod3JpdGFibGUpXG4gIHIgIG9wZW5lZCAgICAgIEQgIGRlbGV0ZWQgICAgIE0gIG1vdmVkICAgICAgICAgICAgMCAgY2xvc2VkICh1bndyaXRhYmxlKVxuICB1ICB1bm1vdW50ZWQgICBvICBvdmVyZmxvdyAgICB4ICB1bndhdGNoYWJsZVxuXG5BIGZpbGUgaW4gdGhpcyBkaXJlY3RvcnkgaXM6XG4gIG0gIG1vdmVkIGluICAgIHkgIG1vdmVkIG91dCAgIG4gIGNyZWF0ZWQgICAgICAgICAgZCAgZGVsZXRlZFxuXG5XaGVuIHggZXZlbnQgaGFwcGVucyBmb3IgYWxsIEZJTEVzLCBpbm90aWZ5ZCBleGl0cyAoYWZ0ZXIgd2FpdGluZyBmb3IgUFJPRykuIgorCisjZGVmaW5lIEhFTFBfaTJjdHJhbnNmZXIgInVzYWdlOiBpMmN0cmFuc2ZlciBbLWZ5XSBCVVMgREVTQyBbREFUQS4uLl0uLi5cblxuTWFrZSBpMmMgdHJhbnNmZXJzLiBERVNDIGlzICdyJyBmb3IgcmVhZCBvciAndycgZm9yIHdyaXRlLCBmb2xsb3dlZCBieVxudGhlIG51bWJlciBvZiBieXRlcyB0byByZWFkIG9yIHdyaXRlLCBmb2xsb3dlZCBieSAnQCcgYW5kIGEgNy1iaXQgYWRkcmVzcy5cbkZvciBhbnkgbWVzc2FnZSBhZnRlciB0aGUgZmlyc3QsIHRoZSAnQCcgYW5kIGFkZHJlc3MgY2FuIGJlIG9taXR0ZWQgdG9cbnJldXNlIHRoZSBwcmV2aW91cyBhZGRyZXNzLiBBICd3JyBERVNDIG11c3QgYmUgZm9sbG93ZWQgYnkgdGhlIG51bWJlciBvZlxuREFUQSBieXRlcyB0aGF0IHdhcyBzcGVjaWZpZWQgaW4gdGhlIERFU0MuXG5cbi1mCUZvcmNlIGFjY2VzcyB0byBidXN5IGRldmljZXNcbi12CVZlcmJvc2UgKHNob3cgbWVzc2FnZXMgc2VudCwgbm90IGp1c3QgcmVjZWl2ZWQpXG4teQlTa2lwIGNvbmZpcm1hdGlvbiBwcm9tcHRzICh5ZXMgdG8gYWxsKSIKKworI2RlZmluZSBIRUxQX2kyY3NldCAidXNhZ2U6IGkyY3NldCBbLWZ5XSBCVVMgQ0hJUCBBRERSIFZBTFVFLi4uIE1PREVcblxuV3JpdGUgYW4gaTJjIHJlZ2lzdGVyLiBNT0RFIGlzIGIgZm9yIGJ5dGUsIHcgZm9yIDE2LWJpdCB3b3JkLCBpIGZvciBJMkMgYmxvY2suXG5cbi1mCUZvcmNlIGFjY2VzcyB0byBidXN5IGRldmljZXNcbi15CVNraXAgY29uZmlybWF0aW9uIHByb21wdHMgKHllcyB0byBhbGwpIgorCisjZGVmaW5lIEhFTFBfaTJjZ2V0ICJ1c2FnZTogaTJjZ2V0IFstZnldIEJVUyBDSElQIFtBRERSXVxuXG5SZWFkIGFuIGkyYyByZWdpc3Rlci5cblxuLWYJRm9yY2UgYWNjZXNzIHRvIGJ1c3kgZGV2aWNlc1xuLXkJU2tpcCBjb25maXJtYXRpb24gcHJvbXB0cyAoeWVzIHRvIGFsbCkiCisKKyNkZWZpbmUgSEVMUF9pMmNkdW1wICJ1c2FnZTogaTJjZHVtcCBbLWZ5XSBCVVMgQ0hJUFxuXG5EdW1wIGkyYyByZWdpc3RlcnMuXG5cbi1mCUZvcmNlIGFjY2VzcyB0byBidXN5IGRldmljZXNcbi15CVNraXAgY29uZmlybWF0aW9uIHByb21wdHMgKHllcyB0byBhbGwpIgorCisjZGVmaW5lIEhFTFBfaTJjZGV0ZWN0ICJ1c2FnZTogaTJjZGV0ZWN0IFstYXFyeV0gQlVTIFtGSVJTVCBMQVNUXVxudXNhZ2U6IGkyY2RldGVjdCAtRiBCVVNcbnVzYWdlOiBpMmNkZXRlY3QgLWxcblxuRGV0ZWN0IGkyYyBkZXZpY2VzLlxuXG4tYQlBbGwgYWRkcmVzc2VzICgweDAwLTB4N2YgcmF0aGVyIHRoYW4gMHgwMy0weDc3IG9yIEZJUlNULUxBU1QpXG4tRglTaG93IGZ1bmN0aW9uYWxpdHlcbi1sCUxpc3QgYXZhaWxhYmxlIGJ1c2VzXG4tcQlQcm9iZSB3aXRoIFNNQnVzIFF1aWNrIFdyaXRlIChkZWZhdWx0KVxuLXIJUHJvYmUgd2l0aCBTTUJ1cyBSZWFkIEJ5dGVcbi15CVNraXAgY29uZmlybWF0aW9uIHByb21wdHMgKHllcyB0byBhbGwpIgorCisjZGVmaW5lIEhFTFBfaHdjbG9jayAidXNhZ2U6IGh3Y2xvY2sgWy1yc3d0bHVdIFstZiBGSUxFXVxuXG5HZXQvc2V0IHRoZSBoYXJkd2FyZSBjbG9jay4gRGVmYXVsdCBpcyBod2Nsb2NrIC1ydWYgL2Rldi9ydGMwXG5cbi1mCVVzZSBzcGVjaWZpZWQgZGV2aWNlIEZJTEUgaW5zdGVhZCBvZiAvZGV2L3J0YzAgKC0tcnRjKVxuLWwJSGFyZHdhcmUgY2xvY2sgdXNlcyBsb2NhbHRpbWUgKC0tbG9jYWx0aW1lKVxuLXIJU2hvdyBoYXJkd2FyZSBjbG9jayB0aW1lICgtLXNob3cpXG4tcwlTZXQgc3lzdGVtIHRpbWUgZnJvbSBoYXJkd2FyZSBjbG9jayAoLS1oY3Rvc3lzKVxuLXQJSW5mb3JtIGtlcm5lbCBvZiBub24tVVRDIGNsb2NrJ3MgdGltZXpvbmUgc28gaXQgcmV0dXJucyBVVEMgKC0tc3lzdHopXG4tdQlIYXJkd2FyZSBjbG9jayB1c2VzIFVUQyAoLS11dGMpXG4tdwlTZXQgaGFyZHdhcmUgY2xvY2sgZnJvbSBzeXN0ZW0gdGltZSAoLS1zeXN0b2hjKSIKKworI2RlZmluZSBIRUxQX2hleGVkaXQgInVzYWdlOiBoZXhlZGl0IFstcl0gRklMRVxuXG5IZXhhZGVjaW1hbCBmaWxlIGVkaXRvci92aWV3ZXIuIEFsbCBjaGFuZ2VzIGFyZSB3cml0dGVuIHRvIGRpc2sgaW1tZWRpYXRlbHkuXG5cbi1yCVJlYWQgb25seSAoZGlzcGxheSBidXQgZG9uJ3QgZWRpdClcblxuS2V5czpcbkFycm93cyAgICAgICAgIE1vdmUgbGVmdC9yaWdodC91cC9kb3duIGJ5IG9uZSBsaW5lL2NvbHVtblxuUGdVcC9QZ0RuICAgICAgTW92ZSB1cC9kb3duIGJ5IG9uZSBwYWdlXG5Ib21lL0VuZCAgICAgICBTdGFydC9lbmQgb2YgbGluZSAoc3RhcnQvZW5kIG9mIGZpbGUgd2l0aCBjdHJsKVxuMC05LCBhLWYgICAgICAgQ2hhbmdlIGN1cnJlbnQgaGFsZi1ieXRlIHRvIGhleGFkZWNpbWFsIHZhbHVlXG5eSiBvciA6ICAgICAgICBKdW1wICgrLy0gZm9yIHJlbGF0aXZlIG9mZnNldCwgb3RoZXJ3aXNlIGFic29sdXRlIGFkZHJlc3MpXG5eRiBvciAvICAgICAgICBGaW5kIHN0cmluZyAoXkcvbjogbmV4dCwgXkQvcDogcHJldmlvdXMgbWF0Y2gpXG51ICAgICAgICAgICAgICBVbmRvXG54ICAgICAgICAgICAgICBUb2dnbGUgYncvY29sb3IgZGlzcGxheVxucS9eQy9eUS9Fc2MgICAgUXVpdCIKKworI2RlZmluZSBIRUxQX2hlbHAgInVzYWdlOiBoZWxwIFstYWh1XSBbQ09NTUFORF1cblxuLWEJQWxsIGNvbW1hbmRzXG4tdQlVc2FnZSBvbmx5XG4taAlIVE1MIG91dHB1dFxuXG5TaG93IHVzYWdlIGluZm9ybWF0aW9uIGZvciB0b3lib3ggY29tbWFuZHMuXG5SdW4gXCJ0b3lib3hcIiB3aXRoIG5vIGFyZ3VtZW50cyBmb3IgYSBsaXN0IG9mIGF2YWlsYWJsZSBjb21tYW5kcy4iCisKKyNkZWZpbmUgSEVMUF9ncGlvc2V0ICJ1c2FnZTogZ3Bpb3NldCBbLWxdIENISVAgTElORT1WQUxVRS4uLlxuXG5TZXQgdGhlIGxpbmVzIG9uIENISVAgdG8gdGhlIGdpdmVuIHZhbHVlcy4gVXNlIGdwaW9maW5kIHRvIGNvbnZlcnQgbGluZVxubmFtZXMgdG8gbnVtYmVycy5cblxuLWwJQWN0aXZlIGxvdyIKKworI2RlZmluZSBIRUxQX2dwaW9nZXQgInVzYWdlOiBncGlvZ2V0IFstbF0gQ0hJUCBMSU5FLi4uXG5cbkdldHMgdGhlIHZhbHVlcyBvZiB0aGUgZ2l2ZW4gbGluZXMgb24gQ0hJUC4gVXNlIGdwaW9maW5kIHRvIGNvbnZlcnQgbGluZVxubmFtZXMgdG8gbnVtYmVycy5cblxuLWwJQWN0aXZlIGxvdyIKKworI2RlZmluZSBIRUxQX2dwaW9pbmZvICJ1c2FnZTogZ3Bpb2luZm8gW0NISVAuLi5dXG5cblNob3cgZ3BpbyBjaGlwcycgbGluZXMuIgorCisjZGVmaW5lIEhFTFBfZ3Bpb2ZpbmQgInVzYWdlOiBncGlvZmluZCBOQU1FXG5cblNob3cgdGhlIGNoaXAgYW5kIGxpbmUgbnVtYmVyIGZvciB0aGUgZ2l2ZW4gbGluZSBuYW1lLiIKKworI2RlZmluZSBIRUxQX2dwaW9kZXRlY3QgInVzYWdlOiBncGlvZGV0ZWN0XG5cblNob3cgYWxsIGdwaW8gY2hpcHMnIG5hbWVzLCBsYWJlbHMsIGFuZCBudW1iZXIgb2YgbGluZXMuIgorCisjZGVmaW5lIEhFTFBfZ2V0b3B0ICJ1c2FnZTogZ2V0b3B0IFstYVR1XSBbLWxvIE9QVElPTlNdIFstbiBOQU1FXSBbT1BUSU9OU10gQVJHLi4uXG5cbk91dHB1dHMgY29tbWFuZCBsaW5lIHdpdGggcmVjb2duaXplZCBPUFRJT05TIGNoYXJhY3RlciBhcmd1bWVudHMgbW92ZWQgdG9cbmZyb250LCB0aGVuIFwiLS1cIiwgdGhlbiBub24tb3B0aW9uIGFyZ3VtZW50cy4gUmV0dXJucyAxIGlmIHVua25vd24gb3B0aW9ucy5cbk9QVElPTlMgZm9sbG93ZWQgYnkgOiB0YWtlIGFuIGFyZ3VtZW50LCBvciA6OiBmb3Igb3B0aW9uYWwgYXJndW1lbnRzICh3aGljaFxubXVzdCBiZSBhdHRhY2hlZCwgYWxhIC14YmxhaCBvciAtLWxvbmc9YmxhaCkuXG5cbi1hCUFsbG93IGxvbmcgb3B0aW9ucyBzdGFydGluZyB3aXRoIGEgc2luZ2xlIC1cbi1sCUxvbmcgT1BUSU9OUyAocmVwZWF0ZWQgb3IgY29tbWEgc2VwYXJhdGVkKVxuLW4JQ29tbWFuZCBOQU1FIGZvciBlcnJvciBtZXNzYWdlc1xuLW8JU2hvcnQgT1BUSU9OUyAoaW5zdGVhZCBvZiB1c2luZyBmaXJzdCBhcmd1bWVudClcbi1UCVRlc3Qgd2hldGhlciB0aGlzIGlzIGEgbW9kZXJuIGdldG9wdFxuLXUJVW5xdW90ZWQgb3V0cHV0IChkZWZhdWx0IGlmIG5vIG90aGVyIG9wdGlvbnMgc2V0KVxuXG5FeGFtcGxlOlxuICAkIGdldG9wdCAtbCBsb25nOixhcmc6OiBhYmMgY29tbWFuZCAtLWxvbmcgLWIgdGhlcmUgLS1hcmdcbiAgLS1sb25nICctYicgLS1hcmcgJycgLS0gJ2NvbW1hbmQnICd0aGVyZSciCisKKyNkZWZpbmUgSEVMUF9mc3luYyAidXNhZ2U6IGZzeW5jIFstZF0gW0ZJTEUuLi5dXG5cbkZsdXNoIGRpc2sgY2FjaGUgZm9yIEZJTEUocyksIHdyaXRpbmcgY2FjaGVkIGRhdGEgdG8gc3RvcmFnZSBkZXZpY2UuXG5cbi1kCVNraXAgZGlyZWN0b3J5IGluZm8gKHN5bmMgZmlsZSBjb250ZW50cyBvbmx5KS4iCisKKyNkZWZpbmUgSEVMUF9mc2ZyZWV6ZSAidXNhZ2U6IGZzZnJlZXplIHstZiB8IC11fSBNT1VOVFBPSU5UXG5cbkZyZWV6ZSBvciB1bmZyZWV6ZSBhIGZpbGVzeXN0ZW0uXG5cbi1mCUZyZWV6ZVxuLXUJVW5mcmVlemUiCisKKyNkZWZpbmUgSEVMUF9mcmVlcmFtZGlzayAidXNhZ2U6IGZyZWVyYW1kaXNrIFtSQU0gZGV2aWNlXVxuXG5GcmVlIGFsbCBtZW1vcnkgYWxsb2NhdGVkIHRvIHNwZWNpZmllZCByYW1kaXNrIgorCisjZGVmaW5lIEhFTFBfZnJlZSAidXNhZ2U6IGZyZWUgWy1ia21ndF1cblxuRGlzcGxheSB0aGUgdG90YWwsIGZyZWUgYW5kIHVzZWQgYW1vdW50IG9mIHBoeXNpY2FsIG1lbW9yeSBhbmQgc3dhcCBzcGFjZS5cblxuLWJrbWcJT3V0cHV0IHVuaXRzIChkZWZhdWx0IGlzIGJ5dGVzKVxuLWgJSHVtYW4gcmVhZGFibGUgKEs9MTAyNCkiCisKKyNkZWZpbmUgSEVMUF9mbXQgInVzYWdlOiBmbXQgWy13IFdJRFRIXSBbRklMRS4uLl1cblxuUmVmb3JtYXQgaW5wdXQgdG8gd29yZHdyYXAgYXQgYSBnaXZlbiBsaW5lIGxlbmd0aCwgcHJlc2VydmluZyBleGlzdGluZ1xuaW5kZW50YXRpb24gbGV2ZWwsIHdyaXRpbmcgdG8gc3Rkb3V0LlxuXG4tdyBXSURUSAlNYXhpbXVtIGNoYXJhY3RlcnMgcGVyIGxpbmUgKGRlZmF1bHQgNzUpIgorCisjZGVmaW5lIEhFTFBfZmxvY2sgInVzYWdlOiBmbG9jayBbLXN4dW5dIGZkXG5cbk1hbmFnZSBhZHZpc29yeSBmaWxlIGxvY2tzLlxuXG4tcwlTaGFyZWQgbG9ja1xuLXgJRXhjbHVzaXZlIGxvY2sgKGRlZmF1bHQpXG4tdQlVbmxvY2tcbi1uCU5vbi1ibG9ja2luZzogZmFpbCByYXRoZXIgdGhhbiB3YWl0IGZvciB0aGUgbG9jayIKKworI2RlZmluZSBIRUxQX2ZhbGxvY2F0ZSAidXNhZ2U6IGZhbGxvY2F0ZSBbLW8gT0ZGU0VUXSAtbCBTSVpFIEZJTEVcblxuVGVsbCB0aGUgZmlsZXN5c3RlbSB0byBhbGxvY2F0ZSBzcGFjZSBmb3IgYSByYW5nZSBpbiBhIGZpbGUuXG5cbi1sCU51bWJlciBvZiBieXRlcyBpbiByYW5nZVxuLW8JU3RhcnQgb2Zmc2V0IG9mIHJhbmdlIChkZWZhdWx0IDApIgorCisjZGVmaW5lIEhFTFBfZmFjdG9yICJ1c2FnZTogZmFjdG9yIFstaHhdIE5VTUJFUi4uLlxuXG5GYWN0b3IgaW50ZWdlcnMuXG5cbi1oCUh1bWFuIHJlYWRhYmxlOiBzaG93IHJlcGVhdGVkIGZhY3RvcnMgYXMgeF5uXG4teAlIZXhhZGVjaW1hbCBvdXRwdXQiCisKKyNkZWZpbmUgSEVMUF9lamVjdCAidXNhZ2U6IGVqZWN0IFstc3RUXSBbREVWSUNFXVxuXG5FamVjdCBERVZJQ0Ugb3IgZGVmYXVsdCAvZGV2L2Nkcm9tXG5cbi1zCVNDU0kgZGV2aWNlXG4tdAlDbG9zZSB0cmF5XG4tVAlPcGVuL2Nsb3NlIHRyYXkgKHRvZ2dsZSkiCisKKyNkZWZpbmUgSEVMUF91bml4MmRvcyAidXNhZ2U6IHVuaXgyZG9zIFtGSUxFLi4uXVxuXG5Db252ZXJ0IG5ld2xpbmUgZm9ybWF0IGZyb20gdW5peCBcIlxcblwiIHRvIGRvcyBcIlxcclxcblwiLlxuSWYgbm8gZmlsZXMgbGlzdGVkIGNvcHkgZnJvbSBzdGRpbiwgXCItXCIgaXMgYSBzeW5vbnltIGZvciBzdGRpbi4iCisKKyNkZWZpbmUgSEVMUF9kb3MydW5peCAidXNhZ2U6IGRvczJ1bml4IFtGSUxFLi4uXVxuXG5Db252ZXJ0IG5ld2xpbmUgZm9ybWF0IGZyb20gZG9zIFwiXFxyXFxuXCIgdG8gdW5peCBcIlxcblwiLlxuSWYgbm8gZmlsZXMgbGlzdGVkIGNvcHkgZnJvbSBzdGRpbiwgXCItXCIgaXMgYSBzeW5vbnltIGZvciBzdGRpbi4iCisKKyNkZWZpbmUgSEVMUF9kZXZtZW0gInVzYWdlOiBkZXZtZW0gQUREUiBbV0lEVEggW0RBVEFdXVxuXG5SZWFkL3dyaXRlIHBoeXNpY2FsIGFkZHJlc3MuIFdJRFRIIGlzIDEsIDIsIDQsIG9yIDggYnl0ZXMgKGRlZmF1bHQgNCkuXG5QcmVmaXggQUREUiB3aXRoIDB4IGZvciBoZXhhZGVjaW1hbCwgb3V0cHV0IGlzIGluIHNhbWUgYmFzZSBhcyBhZGRyZXNzLiIKKworI2RlZmluZSBIRUxQX2NvdW50ICJ1c2FnZTogY291bnQgWy1sXVxuXG4tbAlMb25nIG91dHB1dCAodG90YWwgYnl0ZXMsIGh1bWFuIHJlYWRhYmxlLCB0cmFuc2ZlciByYXRlLCBlbGFwc2VkIHRpbWUpXG5cbkNvcHkgc3RkaW4gdG8gc3Rkb3V0LCBkaXNwbGF5aW5nIHNpbXBsZSBwcm9ncmVzcyBpbmRpY2F0b3IgdG8gc3RkZXJyLiIKKworI2RlZmluZSBIRUxQX2NsZWFyICJDbGVhciB0aGUgc2NyZWVuLiIKKworI2RlZmluZSBIRUxQX2NocnQgInVzYWdlOiBjaHJ0IFstUm1vZnJiaV0gey1wIFBJRCBbUFJJT1JJVFldIHwgW1BSSU9SSVRZIENPTU1BTkQuLi5dfVxuXG5HZXQvc2V0IGEgcHJvY2VzcycgcmVhbC10aW1lIHNjaGVkdWxpbmcgcG9saWN5IGFuZCBwcmlvcml0eS5cblxuLXAJU2V0L3F1ZXJ5IGdpdmVuIHBpZCAoaW5zdGVhZCBvZiBydW5uaW5nIENPTU1BTkQpXG4tUglTZXQgU0NIRURfUkVTRVRfT05fRk9SS1xuLW0JU2hvdyBtaW4vbWF4IHByaW9yaXRpZXMgYXZhaWxhYmxlXG5cblNldCBwb2xpY3kgKGRlZmF1bHQgLXIpOlxuXG4gIC1vICBTQ0hFRF9PVEhFUiAgICAtZiAgU0NIRURfRklGTyAgICAtciAgU0NIRURfUlJcbiAgLWIgIFNDSEVEX0JBVENIICAgIC1pICBTQ0hFRF9JRExFIgorCisjZGVmaW5lIEhFTFBfY2hyb290ICJ1c2FnZTogY2hyb290IE5FV1JPT1QgW0NPTU1BTkQgW0FSRy4uLl1dXG5cblJ1biBjb21tYW5kIHdpdGhpbiBhIG5ldyByb290IGRpcmVjdG9yeS4gSWYgbm8gY29tbWFuZCwgcnVuIC9iaW4vc2guIgorCisjZGVmaW5lIEhFTFBfY2hjb24gInVzYWdlOiBjaGNvbiBbLWhSdl0gQ09OVEVYVCBGSUxFLi4uXG5cbkNoYW5nZSB0aGUgU0VMaW51eCBzZWN1cml0eSBjb250ZXh0IG9mIGxpc3RlZCBmaWxlW3NdLlxuXG4taAlDaGFuZ2Ugc3ltbGlua3MgaW5zdGVhZCBvZiB3aGF0IHRoZXkgcG9pbnQgdG9cbi1SCVJlY3Vyc2UgaW50byBzdWJkaXJlY3Rvcmllc1xuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX2J6Y2F0ICJ1c2FnZTogYnpjYXQgW0ZJTEUuLi5dXG5cbkRlY29tcHJlc3MgbGlzdGVkIGZpbGVzIHRvIHN0ZG91dC4gVXNlIHN0ZGluIGlmIG5vIGZpbGVzIGxpc3RlZC4iCisKKyNkZWZpbmUgSEVMUF9idW56aXAyICJ1c2FnZTogYnVuemlwMiBbLWNmdGt2XSBbRklMRS4uLl1cblxuRGVjb21wcmVzcyBsaXN0ZWQgZmlsZXMgKGZpbGUuYnogYmVjb21lcyBmaWxlKSBkZWxldGluZyBhcmNoaXZlIGZpbGUocykuXG5SZWFkIGZyb20gc3RkaW4gaWYgbm8gZmlsZXMgbGlzdGVkLlxuXG4tYwlGb3JjZSBvdXRwdXQgdG8gc3Rkb3V0XG4tZglGb3JjZSBkZWNvbXByZXNzaW9uIChpZiBGSUxFIGRvZXNuJ3QgZW5kIGluIC5ieiwgcmVwbGFjZSBvcmlnaW5hbClcbi1rCUtlZXAgaW5wdXQgZmlsZXMgKC1jIGFuZCAtdCBpbXBseSB0aGlzKVxuLXQJVGVzdCBpbnRlZ3JpdHlcbi12CVZlcmJvc2UiCisKKyNkZWZpbmUgSEVMUF9ibG9ja2RldiAidXNhZ2U6IGJsb2NrZGV2IC0tT1BUSU9OLi4uIEJMT0NLREVWLi4uXG5cbkNhbGwgaW9jdGwocykgb24gZWFjaCBsaXN0ZWQgYmxvY2sgZGV2aWNlXG5cbi0tc2V0cm8JCVNldCByZWFkIG9ubHlcbi0tc2V0cncJCVNldCByZWFkIHdyaXRlXG4tLWdldHJvCQlHZXQgcmVhZCBvbmx5XG4tLWdldHNzCQlHZXQgc2VjdG9yIHNpemVcbi0tZ2V0YnN6CUdldCBibG9jayBzaXplXG4tLXNldGJzeiBCWVRFUwlTZXQgYmxvY2sgc2l6ZVxuLS1nZXRzegkJR2V0IGRldmljZSBzaXplIGluIDUxMi1ieXRlIHNlY3RvcnNcbi0tZ2V0c2l6ZQlHZXQgZGV2aWNlIHNpemUgaW4gc2VjdG9ycyAoZGVwcmVjYXRlZClcbi0tZ2V0c2l6ZTY0CUdldCBkZXZpY2Ugc2l6ZSBpbiBieXRlc1xuLS1nZXRyYQkJR2V0IHJlYWRhaGVhZCBpbiA1MTItYnl0ZSBzZWN0b3JzXG4tLXNldHJhIFNFQ1RPUlMJU2V0IHJlYWRhaGVhZFxuLS1mbHVzaGJ1ZnMJRmx1c2ggYnVmZmVyc1xuLS1yZXJlYWRwdAlSZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorCisjZGVmaW5lIEhFTFBfZnN0eXBlICJ1c2FnZTogZnN0eXBlIERFVi4uLlxuXG5QcmludCB0eXBlIG9mIGZpbGVzeXN0ZW0gb24gYSBibG9jayBkZXZpY2Ugb3IgaW1hZ2UuIgorCisjZGVmaW5lIEhFTFBfYmxraWQgInVzYWdlOiBibGtpZCBbLW8gVFlQRV0gWy1zIFRBR10gWy1VTF0gREVWLi4uXG5cblByaW50IHR5cGUsIGxhYmVsIGFuZCBVVUlEIG9mIGZpbGVzeXN0ZW0gb24gYSBibG9jayBkZXZpY2Ugb3IgaW1hZ2UuXG5cbi1VCVNob3cgVVVJRCBvbmx5IChvciBkZXZpY2Ugd2l0aCB0aGF0IFVVSUQpXG4tTAlTaG93IExBQkVMIG9ubHkgKG9yIGRldmljZSB3aXRoIHRoYXQgTEFCRUwpXG4tbyBUWVBFCU91dHB1dCBmb3JtYXQgKGZ1bGwsIHZhbHVlLCBleHBvcnQpXG4tcyBUQUcJT25seSBzaG93IG1hdGNoaW5nIHRhZ3MgKGRlZmF1bHQgYWxsKSIKKworI2RlZmluZSBIRUxQX2Jsa2Rpc2NhcmQgInVzYWdlOiBibGtkaXNjYXJkIFstc3pmXSBbLW8gT0ZGU0VUXSBbLWwgTEVOR1RIXSBERVZJQ0VcblxuRGlzY2FyZCBkZXZpY2Ugc2VjdG9ycyAocGVybWFuZXRseSBkZWxldGluZyBkYXRhKS4gRnJlZSBzcGFjZSBjYW4gaW1wcm92ZVxuZmxhc2ggcGVyZm9ybWFuY2UgYW5kIGxpZmV0aW1lIGJ5IHdlYXIgbGV2ZWxpbmcgYW5kIGNvbGxhdGluZyBkYXRhLlxuKFNvbWUgZmlsZXN5c3RlbS9kcml2ZXIgY29tYmluYXRpb25zIGNhbiBkbyB0aGlzIGF1dG9tYXRpY2FsbHkuKVxuXG4tbwlTdGFydCBhdCBPRkZTRVQgKC0tb2Zmc2V0LCBkZWZhdWx0IDApXG4tbAlMRU5HVEggdG8gZGlzY2FyZCAoLS1sZW5ndGgsIGRlZmF1bHQgYWxsKVxuLXMJT3ZlcndyaXRlIGRpc2NhcmRlZCBkYXRhICgtLXNlY3VyZSlcbi16CVplcm8tZmlsbCByYXRoZXIgdGhhbiBkaXNjYXJkICgtLXplcm9vdXQpXG4tZglEaXNhYmxlIGNoZWNrIGZvciBtb3VudGVkIGZpbGVzeXN0ZW0gKC0tZm9yY2UpXG5cbk9GRlNFVCBhbmQgTEVOR1RIIG11c3QgYmUgYWxpZ25lZCB0byB0aGUgZGV2aWNlIHNlY3RvciBzaXplLiBEZWZhdWx0XG53aXRob3V0IC1vLy1sIGRpc2NhcmRzIHRoZSBlbnRpcmUgZGV2aWNlLiAoWW91IGhhdmUgYmVlbiB3YXJuZWQuKSIKKworI2RlZmluZSBIRUxQX2Jhc2UzMiAidXNhZ2U6IGJhc2UzMiBbLWRpXSBbLXcgQ09MVU1OU10gW0ZJTEUuLi5dXG5cbkVuY29kZSBvciBkZWNvZGUgaW4gYmFzZTMyLlxuXG4tZAlEZWNvZGVcbi1pCUlnbm9yZSBub24tYWxwaGFiZXRpYyBjaGFyYWN0ZXJzXG4tdwlXcmFwIG91dHB1dCBhdCBDT0xVTU5TIChkZWZhdWx0IDc2IG9yIDAgZm9yIG5vIHdyYXApIgorCisjZGVmaW5lIEhFTFBfYmFzZTY0ICJ1c2FnZTogYmFzZTY0IFstZGldIFstdyBDT0xVTU5TXSBbRklMRS4uLl1cblxuRW5jb2RlIG9yIGRlY29kZSBpbiBiYXNlNjQuXG5cbi1kCURlY29kZVxuLWkJSWdub3JlIG5vbi1hbHBoYWJldGljIGNoYXJhY3RlcnNcbi13CVdyYXAgb3V0cHV0IGF0IENPTFVNTlMgKGRlZmF1bHQgNzYgb3IgMCBmb3Igbm8gd3JhcCkiCisKKyNkZWZpbmUgSEVMUF91bmljb2RlICJ1c2FnZTogdW5pY29kZSBDT0RFWy1FTkRdLi4uXG5cbkNvbnZlcnQgYmV0d2VlbiBVbmljb2RlIGNvZGUgcG9pbnRzIGFuZCBVVEYtOCwgaW4gYm90aCBkaXJlY3Rpb25zLlxuQ09ERSBjYW4gYmUgb25lIG9yIG1vcmUgY2hhcmFjdGVycyAoc2hvdyBVK1hYWFgpLCBoZXggbnVtYmVyc1xuKHNob3cgY2hhcmFjdGVyKSwgb3IgZGFzaCBzZXBhcmF0ZWQgcmFuZ2UuIgorCisjZGVmaW5lIEhFTFBfYXNjaWkgInVzYWdlOiBhc2NpaVxuXG5EaXNwbGF5IGFzY2lpIGNoYXJhY3RlciBzZXQuIgorCisjZGVmaW5lIEhFTFBfYWNwaSAidXNhZ2U6IGFjcGkgWy1hYmN0Vl1cblxuU2hvdyBzdGF0dXMgb2YgcG93ZXIgc291cmNlcyBhbmQgdGhlcm1hbCBkZXZpY2VzLlxuXG4tYQlTaG93IHBvd2VyIGFkYXB0ZXJzXG4tYglTaG93IGJhdHRlcmllc1xuLWMJU2hvdyBjb29saW5nIGRldmljZSBzdGF0ZVxuLXQJU2hvdyB0ZW1wZXJhdHVyZXNcbi1WCVNob3cgZXZlcnl0aGluZyIKKworI2RlZmluZSBIRUxQX3h6Y2F0ICJ1c2FnZTogeHpjYXQgW0ZJTEUuLi5dXG5cbkRlY29tcHJlc3MgbGlzdGVkIGZpbGVzIHRvIHN0ZG91dC4gVXNlIHN0ZGluIGlmIG5vIGZpbGVzIGxpc3RlZC4iCisKKyNkZWZpbmUgSEVMUF92aSAidXNhZ2U6IHZpIFstcyBTQ1JJUFRdIEZJTEVcblxuVmlzdWFsIHRleHQgZWRpdG9yLiBQcmVkYXRlcyBrZXlib2FyZHMgd2l0aCBzdGFuZGFyZGl6ZWQgY3Vyc29yIGtleXMuXG5JZiB5b3UgZG9uJ3Qga25vdyBob3cgdG8gdXNlIGl0LCBoaXQgdGhlIEVTQyBrZXksIHR5cGUgOnEhIGFuZCBwcmVzcyBFTlRFUi5cblxuLXMJcnVuIFNDUklQVCBvZiBjb21tYW5kcyBvbiBGSUxFXG5cbnZpIG1vZGUgY29tbWFuZHM6XG5cbiAgW2NvdW50XVtjbWRdW21vdGlvbl1cbiAgY21kOiBjIGQgeVxuICBtb3Rpb246IDAgYiBlIEcgSCBoIGogayBMIGwgTSB3ICQgZiBGXG5cbiAgW2NvdW50XVtjbWRdXG4gIGNtZDogRCBJIEogTyBuIG8gcCB4IGRkIHl5XG5cbiAgW2NtZF1cbiAgY21kOiAvID8gOiBBIGEgaSBDVFJMX0QgQ1RSTF9CIENUUkxfRSBDVFJMX0YgQ1RSTF9ZIFxcZSBcXGJcblxuZXggbW9kZSBjb21tYW5kczpcblxuICBbY21kXVxuICBcXGIgXFxlIFxcbiB3IHdxIHEhICdzZXQgbGlzdCcgJ3NldCBub2xpc3QnIGQgJCAlIGcgdiIKKworI2RlZmluZSBIRUxQX3VzZXJkZWwgInVzYWdlOiB1c2VyZGVsIFstcl0gVVNFUlxudXNhZ2U6IGRlbHVzZXIgWy1yXSBVU0VSXG5cbkRlbGV0ZSBVU0VSIGZyb20gdGhlIFNZU1RFTVxuXG4tcglyZW1vdmUgaG9tZSBkaXJlY3RvcnkiCisKKyNkZWZpbmUgSEVMUF91c2VyYWRkICJ1c2FnZTogdXNlcmFkZCBbLVNESF0gWy1oIERJUl0gWy1zIFNIRUxMXSBbLUcgR1JQXSBbLWcgTkFNRV0gWy11IFVJRF0gVVNFUiBbR1JPVVBdXG5cbkNyZWF0ZSBuZXcgdXNlciwgb3IgYWRkIFVTRVIgdG8gR1JPVVBcblxuLUQgICAgICAgRG9uJ3QgYXNzaWduIGEgcGFzc3dvcmRcbi1nIE5BTUUgIFJlYWwgbmFtZVxuLUcgR1JQICAgQWRkIHVzZXIgdG8gZXhpc3RpbmcgZ3JvdXBcbi1oIERJUiAgIEhvbWUgZGlyZWN0b3J5XG4tSCAgICAgICBEb24ndCBjcmVhdGUgaG9tZSBkaXJlY3Rvcnlcbi1zIFNIRUxMIExvZ2luIHNoZWxsXG4tUyAgICAgICBDcmVhdGUgYSBzeXN0ZW0gdXNlclxuLXUgVUlEICAgVXNlciBpZCIKKworI2RlZmluZSBIRUxQX3RyYWNlcm91dGUgInVzYWdlOiB0cmFjZXJvdXRlIFstNDZGVUlsZG52cl0gWy1mIDFTVF9UVExdIFstbSBNQVhUVExdIFstcCBQT1JUXSBbLXEgUFJPQkVTXVxuWy1zIFNSQ19JUF0gWy10IFRPU10gWy13IFdBSVRfU0VDXSBbLWcgR0FURVdBWV0gWy1pIElGQUNFXSBbLXogUEFVU0VfTVNFQ10gSE9TVCBbQllURVNdXG5cbnRyYWNlcm91dGU2IFstZG5ydl0gWy1tIE1BWFRUTF0gWy1wIFBPUlRdIFstcSBQUk9CRVNdWy1zIFNSQ19JUF0gWy10IFRPU10gWy13IFdBSVRfU0VDXVxuICBbLWkgSUZBQ0VdIEhPU1QgW0JZVEVTXVxuXG5UcmFjZSB0aGUgcm91dGUgdG8gSE9TVFxuXG4tNCwtNiBGb3JjZSBJUCBvciBJUHY2IG5hbWUgcmVzb2x1dGlvblxuLUYgICAgU2V0IHRoZSBkb24ndCBmcmFnbWVudCBiaXQgKHN1cHBvcnRzIElQVjQgb25seSlcbi1VICAgIFVzZSBVRFAgZGF0YWdyYW1zIGluc3RlYWQgb2YgSUNNUCBFQ0hPIChzdXBwb3J0cyBJUFY0IG9ubHkpXG4tSSAgICBVc2UgSUNNUCBFQ0hPIGluc3RlYWQgb2YgVURQIGRhdGFncmFtcyAoc3VwcG9ydHMgSVBWNCBvbmx5KVxuLWwgICAgRGlzcGxheSB0aGUgVFRMIHZhbHVlIG9mIHRoZSByZXR1cm5lZCBwYWNrZXQgKHN1cHBvcnRzIElQVjQgb25seSlcbi1kICAgIFNldCBTT19ERUJVRyBvcHRpb25zIHRvIHNvY2tldFxuLW4gICAgUHJpbnQgbnVtZXJpYyBhZGRyZXNzZXNcbi12ICAgIHZlcmJvc2Vcbi1yICAgIEJ5cGFzcyByb3V0aW5nIHRhYmxlcywgc2VuZCBkaXJlY3RseSB0byBIT1NUXG4tbSAgICBNYXggdGltZS10by1saXZlIChtYXggbnVtYmVyIG9mIGhvcHMpKFJBTkdFIDEgdG8gMjU1KVxuLXAgICAgQmFzZSBVRFAgcG9ydCBudW1iZXIgdXNlZCBpbiBwcm9iZXMoZGVmYXVsdCAzMzQzNCkoUkFOR0UgMSB0byA2NTUzNSlcbi1xICAgIE51bWJlciBvZiBwcm9iZXMgcGVyIFRUTCAoZGVmYXVsdCAzKShSQU5HRSAxIHRvIDI1NSlcbi1zICAgIElQIGFkZHJlc3MgdG8gdXNlIGFzIHRoZSBzb3VyY2UgYWRkcmVzc1xuLXQgICAgVHlwZS1vZi1zZXJ2aWNlIGluIHByb2JlIHBhY2tldHMgKGRlZmF1bHQgMCkoUkFOR0UgMCB0byAyNTUpXG4tdyAgICBUaW1lIGluIHNlY29uZHMgdG8gd2FpdCBmb3IgYSByZXNwb25zZSAoZGVmYXVsdCAzKShSQU5HRSAwIHRvIDg2NDAwKVxuLWcgICAgTG9vc2Ugc291cmNlIHJvdXRlIGdhdGV3YXkgKDggbWF4KSAoc3VwcG9ydHMgSVBWNCBvbmx5KVxuLXogICAgUGF1c2UgVGltZSBpbiBtcyAoZGVmYXVsdCAwKShSQU5HRSAwIHRvIDg2NDAwKSAoc3VwcG9ydHMgSVBWNCBvbmx5KVxuLWYgICAgU3RhcnQgZnJvbSB0aGUgMVNUX1RUTCBob3AgKGluc3RlYWQgZnJvbSAxKShSQU5HRSAxIHRvIDI1NSkgKHN1cHBvcnRzIElQVjQgb25seSlcbi1pICAgIFNwZWNpZnkgYSBuZXR3b3JrIGludGVyZmFjZSB0byBvcGVyYXRlIHdpdGgiCisKKyNkZWZpbmUgSEVMUF90ciAidXNhZ2U6IHRyIFstY2RzdF0gU0VUMSBbU0VUMl1cblxuVHJhbnNsYXRlLCBzcXVlZXplLCBvciBkZWxldGUgY2hhcmFjdGVycyBmcm9tIHN0ZGluLCB3cml0aW5nIHRvIHN0ZG91dFxuXG4tYy8tQyAgVGFrZSBjb21wbGVtZW50IG9mIFNFVDFcbi1kICAgICBEZWxldGUgaW5wdXQgY2hhcmFjdGVycyBjb2RlZCBTRVQxXG4tcyAgICAgU3F1ZWV6ZSBtdWx0aXBsZSBvdXRwdXQgY2hhcmFjdGVycyBvZiBTRVQyIGludG8gb25lIGNoYXJhY3RlclxuLXQgICAgIFRydW5jYXRlIFNFVDEgdG8gbGVuZ3RoIG9mIFNFVDIiCisKKyNkZWZpbmUgSEVMUF90ZnRwZCAidXNhZ2U6IHRmdHBkIFstY3JdIFstdSBVU0VSXSBbRElSXVxuXG5UcmFuc2ZlciBmaWxlIGZyb20vdG8gdGZ0cCBzZXJ2ZXIuXG5cbi1yCXJlYWQgb25seVxuLWMJQWxsb3cgZmlsZSBjcmVhdGlvbiB2aWEgdXBsb2FkXG4tdQlydW4gYXMgVVNFUlxuLWwJTG9nIHRvIHN5c2xvZyAoaW5ldGQgbW9kZSByZXF1aXJlcyB0aGlzKSIKKworI2RlZmluZSBIRUxQX3RmdHAgInVzYWdlOiB0ZnRwIFtPUFRJT05TXSBIT1NUIFtQT1JUXVxuXG5UcmFuc2ZlciBmaWxlIGZyb20vdG8gdGZ0cCBzZXJ2ZXIuXG5cbi1sIEZJTEUgTG9jYWwgRklMRVxuLXIgRklMRSBSZW1vdGUgRklMRVxuLWcgICAgR2V0IGZpbGVcbi1wICAgIFB1dCBmaWxlXG4tYiBTSVpFIFRyYW5zZmVyIGJsb2NrcyBvZiBTSVpFIG9jdGV0cyg4IDw9IFNJWkUgPD0gNjU0NjQpIgorCisjZGVmaW5lIEhFTFBfdGVsbmV0ZCAiSGFuZGxlIGluY29taW5nIHRlbG5ldCBjb25uZWN0aW9uc1xuXG4tbCBMT0dJTiAgRXhlYyBMT0dJTiBvbiBjb25uZWN0XG4tZiBJU1NVRV9GSUxFIERpc3BsYXkgSVNTVUVfRklMRSBpbnN0ZWFkIG9mIC9ldGMvaXNzdWVcbi1LIENsb3NlIGNvbm5lY3Rpb24gYXMgc29vbiBhcyBsb2dpbiBleGl0c1xuLXAgUE9SVCAgIFBvcnQgdG8gbGlzdGVuIG9uXG4tYiBBRERSWzpQT1JUXSAgQWRkcmVzcyB0byBiaW5kIHRvXG4tRiBSdW4gaW4gZm9yZWdyb3VuZFxuLWkgSW5ldGQgbW9kZVxuLXcgU0VDICAgIEluZXRkICd3YWl0JyBtb2RlLCBsaW5nZXIgdGltZSBTRUNcbi1TIExvZyB0byBzeXNsb2cgKGltcGxpZWQgYnkgLWkgb3Igd2l0aG91dCAtRiBhbmQgLXcpIgorCisjZGVmaW5lIEhFTFBfdGVsbmV0ICJ1c2FnZTogdGVsbmV0IEhPU1QgW1BPUlRdXG5cbkNvbm5lY3QgdG8gdGVsbmV0IHNlcnZlci4iCisKKyNkZWZpbmUgSEVMUF90Y3BzdmQgInVzYWdlOiB0Y3BzdmQgWy1oRXZdIFstYyBOXSBbLUMgTls6TVNHXV0gWy1iIE5dIFstdSBVc2VyXSBbLWwgTmFtZV0gSVAgUG9ydCBQcm9nXG51c2FnZTogdWRwc3ZkIFstaEV2XSBbLWMgTl0gWy11IFVzZXJdIFstbCBOYW1lXSBJUCBQb3J0IFByb2dcblxuQ3JlYXRlIFRDUC9VRFAgc29ja2V0LCBiaW5kIHRvIElQOlBPUlQgYW5kIGxpc3RlbiBmb3IgaW5jb21pbmcgY29ubmVjdGlvbi5cblJ1biBQUk9HIGZvciBlYWNoIGNvbm5lY3Rpb24uXG5cbklQICAgICAgICAgICAgSVAgdG8gbGlzdGVuIG9uLCAwID0gYWxsXG5QT1JUICAgICAgICAgIFBvcnQgdG8gbGlzdGVuIG9uXG5QUk9HIEFSR1MgICAgIFByb2dyYW0gdG8gcnVuXG4tbCBOQU1FICAgICAgIExvY2FsIGhvc3RuYW1lIChlbHNlIGxvb2tzIHVwIGxvY2FsIGhvc3RuYW1lIGluIEROUylcbi11IFVTRVJbOkdSUF0gQ2hhbmdlIHRvIHVzZXIvZ3JvdXAgYWZ0ZXIgYmluZFxuLWMgTiAgICAgICAgICBIYW5kbGUgdXAgdG8gTiAoPiAwKSBjb25uZWN0aW9ucyBzaW11bHRhbmVvdXNseVxuLWIgTiAgICAgICAgICAoVENQIE9ubHkpIEFsbG93IGEgYmFja2xvZyBvZiBhcHByb3hpbWF0ZWx5IE4gVENQIFNZTnNcbi1DIE5bOk1TR10gICAgKFRDUCBPbmx5KSBBbGxvdyBvbmx5IHVwIHRvIE4gKD4gMCkgY29ubmVjdGlvbnMgZnJvbSB0aGUgc2FtZSBJUFxuICAgICAgICAgICAgICBOZXcgY29ubmVjdGlvbnMgZnJvbSB0aGlzIElQIGFkZHJlc3MgYXJlIGNsb3NlZFxuICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gTVNHIGlzIHdyaXR0ZW4gdG8gdGhlIHBlZXIgYmVmb3JlIGNsb3NlXG4taCAgICAgICAgICAgIExvb2sgdXAgcGVlcidzIGhvc3RuYW1lXG4tRSAgICAgICAgICAgIERvbid0IHNldCB1cCBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbi12ICAgICAgICAgICAgVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX3N5c2xvZ2QgInVzYWdlOiBzeXNsb2dkICBbLWEgc29ja2V0XSBbLU8gbG9nZmlsZV0gWy1mIGNvbmZpZyBmaWxlXSBbLW0gaW50ZXJ2YWxdXG4gICAgICAgICAgICAgICAgWy1wIHNvY2tldF0gWy1zIFNJWkVdIFstYiBOXSBbLVIgSE9TVF0gWy1sIE5dIFstblNMS0RdXG5cblN5c3RlbSBsb2dnaW5nIHV0aWxpdHlcblxuLWEgICAgICBFeHRyYSB1bml4IHNvY2tldCBmb3IgbGlzdGVuXG4tTyBGSUxFIERlZmF1bHQgbG9nIGZpbGUgPERFRkFVTFQ6IC92YXIvbG9nL21lc3NhZ2VzPlxuLWYgRklMRSBDb25maWcgZmlsZSA8REVGQVVMVDogL2V0Yy9zeXNsb2cuY29uZj5cbi1wICAgICAgQWx0ZXJuYXRpdmUgdW5peCBkb21haW4gc29ja2V0IDxERUZBVUxUIDogL2Rldi9sb2c+XG4tbiAgICAgIEF2b2lkIGF1dG8tYmFja2dyb3VuZGluZ1xuLVMgICAgICBTbWFsbGVyIG91dHB1dFxuLW0gTUFSSyBpbnRlcnZhbCA8REVGQVVMVDogMjAgbWludXRlcz4gKFJBTkdFOiAwIHRvIDcxNTgyNzg3KVxuLVIgSE9TVCBMb2cgdG8gSVAgb3IgaG9zdG5hbWUgb24gUE9SVCAoZGVmYXVsdCBQT1JUPTUxNC9VRFApXCJcbi1MICAgICAgTG9nIGxvY2FsbHkgYW5kIHZpYSBuZXR3b3JrIChkZWZhdWx0IGlzIG5ldHdvcmsgb25seSBpZiAtUilcIlxuLXMgU0laRSBNYXggc2l6ZSAoS0IpIGJlZm9yZSByb3RhdGlvbiAoZGVmYXVsdDoyMDBLQiwgMD1vZmYpXG4tYiBOICAgIHJvdGF0ZWQgbG9ncyB0byBrZWVwIChkZWZhdWx0OjEsIG1heD05OSwgMD1wdXJnZSlcbi1LICAgICAgTG9nIHRvIGtlcm5lbCBwcmludGsgYnVmZmVyICh1c2UgZG1lc2cgdG8gcmVhZCBpdClcbi1sIE4gICAgTG9nIG9ubHkgbWVzc2FnZXMgbW9yZSB1cmdlbnQgdGhhbiBwcmlvKGRlZmF1bHQ6OCBtYXg6OCBtaW46MSlcbi1EICAgICAgRHJvcCBkdXBsaWNhdGVzIgorCisjZGVmaW5lIEhFTFBfc3Vsb2dpbiAidXNhZ2U6IHN1bG9naW4gWy10IHRpbWVdIFt0dHldXG5cblNpbmdsZSBVc2VyIExvZ2luLlxuLXQJRGVmYXVsdCBUaW1lIGZvciBTaW5nbGUgVXNlciBMb2dpbiIKKworI2RlZmluZSBIRUxQX3N0dHkgInVzYWdlOiBzdHR5IFstYWddIFstRiBkZXZpY2VdIFNFVFRJTkcuLi5cblxuR2V0L3NldCB0ZXJtaW5hbCBjb25maWd1cmF0aW9uLlxuXG4tRglPcGVuIGRldmljZSBpbnN0ZWFkIG9mIHN0ZGluXG4tYQlTaG93IGFsbCBjdXJyZW50IHNldHRpbmdzIChkZWZhdWx0IGRpZmZlcmVuY2VzIGZyb20gXCJzYW5lXCIpXG4tZwlTaG93IGFsbCBjdXJyZW50IHNldHRpbmdzIHVzYWJsZSBhcyBpbnB1dCB0byBzdHR5XG5cblNwZWNpYWwgY2hhcmFjdGVycyAoc3ludGF4IF5jIG9yIHVuZGVmKTogaW50ciBxdWl0IGVyYXNlIGtpbGwgZW9mIGVvbCBlb2wyXG5zd3RjaCBzdGFydCBzdG9wIHN1c3AgcnBybnQgd2VyYXNlIGxuZXh0IGRpc2NhcmRcblxuQ29udHJvbC9pbnB1dC9vdXRwdXQvbG9jYWwgc2V0dGluZ3MgYXMgc2hvd24gYnkgLWEsICctJyBwcmVmaXggdG8gZGlzYWJsZVxuXG5Db21ibyBzZXR0aW5nczogY29va2VkL3JhdywgZXZlbnAvb2RkcC9wYXJpdHksIG5sLCBlaywgc2FuZVxuXG5OCXNldCBpbnB1dCBhbmQgb3V0cHV0IHNwZWVkIChpc3BlZWQgTiBvciBvc3BlZWQgTiBmb3IganVzdCBvbmUpXG5jb2xzIE4Jc2V0IG51bWJlciBvZiBjb2x1bW5zXG5yb3dzIE4Jc2V0IG51bWJlciBvZiByb3dzXG5saW5lIE4Jc2V0IGxpbmUgZGlzY2lwbGluZVxubWluIE4Jc2V0IG1pbmltdW0gY2hhcnMgcGVyIHJlYWRcbnRpbWUgTglzZXQgcmVhZCB0aW1lb3V0XG5zcGVlZAlzaG93IHNwZWVkIG9ubHlcbnNpemUJc2hvdyBzaXplIG9ubHkiCisKKyNkZWZpbmUgSEVMUF9zdHJhY2UgInVzYWdlOiBzdHJhY2UgWy1mdl0gWy1wIFBJRF0gWy1zIE5VTV0gQ09NTUFORCBbQVJHUy4uLl1cblxuVHJhY2Ugc3lzdGVtcyBjYWxscyBtYWRlIGJ5IGEgcHJvY2Vzcy5cblxuLXMJU3RyaW5nIGxlbmd0aCBsaW1pdC5cbi12CUR1bXAgYWxsIG9mIGxhcmdlIHN0cnVjdHMvYXJyYXlzLiIKKworI2RlZmluZSBIRUxQX3dhaXQgInVzYWdlOiB3YWl0IFstbl0gW0lELi4uXVxuXG5XYWl0IGZvciBiYWNrZ3JvdW5kIHByb2Nlc3NlcyB0byBleGl0LCByZXR1cm5pbmcgaXRzIGV4aXQgY29kZS5cbklEIGNhbiBiZSBQSUQgb3Igam9iLCB3aXRoIG5vIElEcyB3YWl0cyBmb3IgYWxsIGJhY2tncm91bmRlZCBwcm9jZXNzZXMuXG5cbi1uCVdhaXQgZm9yIG5leHQgcHJvY2VzcyB0byBleGl0IgorCisjZGVmaW5lIEhFTFBfc291cmNlICJ1c2FnZTogc291cmNlIEZJTEUgW0FSR1MuLi5dXG5cblJlYWQgRklMRSBhbmQgZXhlY3V0ZSBjb21tYW5kcy4gQW55IEFSR1MgYmVjb21lIHBvc2l0aW9uYWwgcGFyYW1ldGVycy4iCisKKyNkZWZpbmUgSEVMUF9zaGlmdCAidXNhZ2U6IHNoaWZ0IFtOXVxuXG5Ta2lwIE4gKGRlZmF1bHQgMSkgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBtb3ZpbmcgJDEgYW5kIGZyaWVuZHMgYWxvbmcgdGhlIGxpc3QuXG5Eb2VzIG5vdCBhZmZlY3QgJDAuIgorCisjZGVmaW5lIEhFTFBfbG9jYWwgInVzYWdlOiBsb2NhbCBbTkFNRVs9VkFMVUVdLi4uXVxuXG5DcmVhdGUgYSBsb2NhbCB2YXJpYWJsZSB0aGF0IGxhc3RzIHVudGlsIHJldHVybiBmcm9tIHRoaXMgZnVuY3Rpb24uXG5XaXRoIG5vIGFyZ3VtZW50cyBsaXN0cyBsb2NhbCB2YXJpYWJsZXMgaW4gY3VycmVudCBmdW5jdGlvbiBjb250ZXh0LlxuVE9ETzogaW1wbGVtZW50IFwiZGVjbGFyZVwiIG9wdGlvbnMuIgorCisjZGVmaW5lIEhFTFBfam9icyAidXNhZ2U6IGpvYnMgWy1sbnByc10gWyVKT0IgfCAteCBDT01NQU5ELi4uXVxuXG5MaXN0IHJ1bm5pbmcvc3RvcHBlZCBiYWNrZ3JvdW5kIGpvYnMuXG5cbi1sIEluY2x1ZGUgcHJvY2VzcyBJRCBpbiBsaXN0XG4tbiBTaG93IG9ubHkgbmV3L2NoYW5nZWQgcHJvY2Vzc2VzXG4tcCBTaG93IHByb2Nlc3MgSURzIG9ubHlcbi1yIFNob3cgcnVubmluZyBwcm9jZXNzZXNcbi1zIFNob3cgc3RvcHBlZCBwcm9jZXNzZXMiCisKKyNkZWZpbmUgSEVMUF9leHBvcnQgInVzYWdlOiBleHBvcnQgWy1uXSBbTkFNRVs9VkFMVUVdLi4uXVxuXG5NYWtlIHZhcmlhYmxlcyBhdmFpbGFibGUgdG8gY2hpbGQgcHJvY2Vzc2VzLiBOQU1FIGV4cG9ydHMgZXhpc3RpbmcgbG9jYWxcbnZhcmlhYmxlKHMpLCBOQU1FPVZBTFVFIHNldHMgYW5kIGV4cG9ydHMuXG5cbi1uCVVuZXhwb3J0LiBUdXJuIGxpc3RlZCB2YXJpYWJsZShzKSBpbnRvIGxvY2FsIHZhcmlhYmxlcy5cblxuV2l0aCBubyBhcmd1bWVudHMgbGlzdCBleHBvcnRlZCB2YXJpYWJsZXMvYXR0cmlidXRlcyBhcyBcImRlY2xhcmVcIiBzdGF0ZW1lbnRzLiIKKworI2RlZmluZSBIRUxQX2V4ZWMgInVzYWdlOiBleGVjIFstY2xdIFstYSBOQU1FXSBDT01NQU5ELi4uXG5cbi1hCXNldCBhcmd2WzBdIHRvIE5BTUVcbi1jCWNsZWFyIGVudmlyb25tZW50XG4tbAlwcmVwZW5kIC0gdG8gYXJndlswXSIKKworI2RlZmluZSBIRUxQX2V2YWwgInVzYWdlOiBldmFsIENPTU1BTkQuLi5cblxuRXhlY3V0ZSAoY29tYmluZWQpIGFyZ3VtZW50cyBhcyBhIHNoZWxsIGNvbW1hbmQuIgorCisjZGVmaW5lIEhFTFBfdW5zZXQgInVzYWdlOiB1bnNldCBbLWZ2bl0gTkFNRS4uLlxuXG4tZglOQU1FIGlzIGEgZnVuY3Rpb25cbi12CU5BTUUgaXMgYSB2YXJpYWJsZVxuLW4JZGVyZWZlcmVuY2UgTkFNRSBhbmQgdW5zZXQgdGhhdCIKKworI2RlZmluZSBIRUxQX3NldCAidXNhZ2U6IHNldCBbK2FdIFsrbyBPUFRJT05dIFtWQVIuLi5dXG5cblNldCB2YXJpYWJsZXMgYW5kIHNoZWxsIGF0dHJpYnV0ZXMuIFVzZSArIHRvIGRpc2FibGUgYW5kIC0gdG8gZW5hYmxlLlxuTkFNRT1WQUxVRSBhcmd1bWVudHMgYXNzaWduIHRvIHRoZSB2YXJpYWJsZSwgYW55IGxlZnRvdmVycyBzZXQgJDEsICQyLi4uXG5XaXRoIG5vIGFyZ3VtZW50cywgcHJpbnRzIGN1cnJlbnQgdmFyaWFibGVzLlxuXG4tZglOQU1FIGlzIGEgZnVuY3Rpb25cbi12CU5BTUUgaXMgYSB2YXJpYWJsZVxuLW4JZG9uJ3QgZm9sbG93IG5hbWUgcmVmZXJlbmNlXG5cbk9QVElPTnM6XG4gIGhpc3RvcnkgLSBlbmFibGUgY29tbWFuZCBoaXN0b3J5IgorCisjZGVmaW5lIEhFTFBfZXhpdCAidXNhZ2U6IGV4aXQgW3N0YXR1c11cblxuRXhpdCBzaGVsbC4gIElmIG5vIHJldHVybiB2YWx1ZSBzdXBwbGllZCBvbiBjb21tYW5kIGxpbmUsIHVzZSB2YWx1ZVxub2YgbW9zdCByZWNlbnQgY29tbWFuZCwgb3IgMCBpZiBub25lLiIKKworI2RlZmluZSBIRUxQX2RlY2xhcmUgInVzYWdlOiBkZWNsYXJlIFstcEFhaWx1bnhyXSBbTkFNRS4uLl1cblxuU2V0IG9yIHByaW50IHZhcmlhYmxlIGF0dHJpYnV0ZXMgYW5kIHZhbHVlcy5cblxuLXAJUHJpbnQgdmFyaWFibGVzIGluc3RlYWQgb2Ygc2V0dGluZ1xuLUEJQXNzb2NpYXRpdmUgYXJyYXlcbi1hCUluZGV4ZWQgYXJyYXlcbi1pCUludGVnZXJcbi1sCUxvd2VyIGNhc2Vcbi1uCU5hbWUgcmVmZXJlbmNlIChzeW1saW5rKVxuLXIJUmVhZG9ubHlcbi11CVVwcGVyY2FzZVxuLXgJRXhwb3J0IgorCisjZGVmaW5lIEhFTFBfY2QgInVzYWdlOiBjZCBbLVBMXSBbLV0gW3BhdGhdXG5cbkNoYW5nZSBjdXJyZW50IGRpcmVjdG9yeS4gV2l0aCBubyBhcmd1bWVudHMsIGdvICRIT01FLiBTZXRzICRPTERQV0QgdG9cbnByZXZpb3VzIGRpcmVjdG9yeTogY2QgLSB0byByZXR1cm4gdG8gJE9MRFBXRC5cblxuLVAJUGh5c2ljYWwgcGF0aDogcmVzb2x2ZSBzeW1saW5rcyBpbiBwYXRoXG4tTAlMb2NhbCBwYXRoOiAuLiB0cmltcyBkaXJlY3RvcmllcyBvZmYgJFBXRCAoZGVmYXVsdCkiCisKKyNkZWZpbmUgSEVMUF9zaCAidXNhZ2U6IHNoIFstYyBjb21tYW5kXSBbc2NyaXB0XVxuXG5Db21tYW5kIHNoZWxsLiAgUnVucyBhIHNoZWxsIHNjcmlwdCwgb3IgcmVhZHMgaW5wdXQgaW50ZXJhY3RpdmVseVxuYW5kIHJlc3BvbmRzIHRvIGl0LiBSb3VnaGx5IGNvbXBhdGlibGUgd2l0aCBcImJhc2hcIi4gUnVuIFwiaGVscFwiIGZvclxubGlzdCBvZiBidWlsdC1pbiBjb21tYW5kcy5cblxuLWMJY29tbWFuZCBsaW5lIHRvIGV4ZWN1dGVcbi1pCWludGVyYWN0aXZlIG1vZGUgKGRlZmF1bHQgd2hlbiBTVERJTiBpcyBhIHR0eSlcbi1zCWRvbid0IHJ1biBzY3JpcHQgKGFyZ3Mgc2V0ICQqIHBhcmFtZXRlcnMgYnV0IHJlYWQgY29tbWFuZHMgZnJvbSBzdGRpbilcblxuQ29tbWFuZCBzaGVsbHMgcGFyc2UgZWFjaCBsaW5lIG9mIGlucHV0IChwcm9tcHRpbmcgd2hlbiBpbnRlcmFjdGl2ZSksIHBlcmZvcm1cbnZhcmlhYmxlIGV4cGFuc2lvbiBhbmQgcmVkaXJlY3Rpb24sIGV4ZWN1dGUgY29tbWFuZHMgKHNwYXduaW5nIGNoaWxkIHByb2Nlc3Nlc1xuYW5kIGJhY2tncm91bmQgam9icyksIGFuZCBwZXJmb3JtIGZsb3cgY29udHJvbCBiYXNlZCBvbiB0aGUgcmV0dXJuIGNvZGUuXG5cblBhcnNpbmc6XG4gIHN5bnRheCBlcnJvcnNcblxuSW50ZXJhY3RpdmUgcHJvbXB0czpcbiAgbGluZSBjb250aW51YXRpb25cblxuVmFyaWFibGUgZXhwYW5zaW9uOlxuICBOb3RlOiBjYW4gY2F1c2Ugc3ludGF4IGVycm9ycyBhdCBydW50aW1lXG5cblJlZGlyZWN0aW9uOlxuICBIRVJFIGRvY3VtZW50cyAocGFyc2luZylcbiAgUGlwZWxpbmVzIChmbG93IGNvbnRyb2wgYW5kIGpvYiBjb250cm9sKVxuXG5SdW5uaW5nIGNvbW1hbmRzOlxuICBwcm9jZXNzIHN0YXRlXG4gIGJ1aWx0aW5zXG4gICAgY2QgW1sgXV0gKCggKSlcbiAgICAhIDogWyAjIFRPRE86IGhlbHAgZm9yIHRoZXNlP1xuICAgIHRydWUgZmFsc2UgaGVscCBlY2hvIGtpbGwgcHJpbnRmIHB3ZCB0ZXN0XG4gIGNoaWxkIHByb2Nlc3Nlc1xuXG5Kb2IgY29udHJvbDpcbiAgJiAgICBCYWNrZ3JvdW5kIHByb2Nlc3NcbiAgQ3RybC1DIGtpbGwgcHJvY2Vzc1xuICBDdHJsLVogc3VzcGVuZCBwcm9jZXNzXG4gIGJnIGZnIGpvYnMga2lsbFxuXG5GbG93IGNvbnRyb2w6XG47ICAgIEVuZCBzdGF0ZW1lbnQgKHNhbWUgYXMgbmV3bGluZSlcbiYgICAgQmFja2dyb3VuZCBwcm9jZXNzIChyZXR1cm5zIHRydWUgdW5sZXNzIHN5bnRheCBlcnJvcilcbiYmICAgSWYgdGhpcyBmYWlscywgbmV4dCBjb21tYW5kIGZhaWxzIHdpdGhvdXQgcnVubmluZ1xufHwgICBJZiB0aGlzIHN1Y2NlZWRzLCBuZXh0IGNvbW1hbmQgc3VjY2VlZHMgd2l0aG91dCBydW5uaW5nXG58ICAgIFBpcGVsaW5lcyEgKENhbiBvZiB3b3Jtcy4uLilcbmZvciB7bmFtZSBbaW4uLi5dfXwoKDs7KSkgZG87IEJPRFk7IGRvbmVcbmlmIFRFU1Q7IHRoZW4gQk9EWTsgZmlcbndoaWxlIFRFU1Q7IGRvIEJPRFk7IGRvbmVcbmNhc2UgYSBpbiBYKTs7IGVzYWNcbltbIFRFU1QgXV1cbigoTUFUSCkpXG5cbkpvYiBjb250cm9sOlxuJiAgICBCYWNrZ3JvdW5kIHByb2Nlc3NcbkN0cmwtQyBraWxsIHByb2Nlc3NcbkN0cmwtWiBzdXNwZW5kIHByb2Nlc3NcbmJnIGZnIGpvYnMga2lsbCIKKworI2RlZmluZSBIRUxQX3JvdXRlICJ1c2FnZTogcm91dGUgWy1uZV0gWy1BIFtpbmV0fGluZXQ2XV0gW2FkZHxkZWwgVEFSR0VUIFtPUFRJT05TXV1cblxuRGlzcGxheSwgYWRkIG9yIGRlbGV0ZSBuZXR3b3JrIHJvdXRlcyBpbiB0aGUgXCJGb3J3YXJkaW5nIEluZm9ybWF0aW9uIEJhc2VcIixcbndoaWNoIHNlbmQgcGFja2V0cyBvdXQgYSBuZXR3b3JrIGludGVyZmFjZSB0byBhbiBhZGRyZXNzLlxuXG4tbglTaG93IG51bWVyaWNhbCBhZGRyZXNzZXMgKG5vIEROUyBsb29rdXBzKVxuLWUJZGlzcGxheSBuZXRzdGF0IGZpZWxkc1xuXG5Bc3NpZ25pbmcgYW4gYWRkcmVzcyB0byBhbiBpbnRlcmZhY2UgYXV0b21hdGljYWxseSBjcmVhdGVzIGFuIGFwcHJvcHJpYXRlXG5uZXR3b3JrIHJvdXRlIChcImlmY29uZmlnIGV0aDAgMTAuMC4yLjE1LzhcIiBkb2VzIFwicm91dGUgYWRkIDEwLjAuMC4wLzggZXRoMFwiXG5mb3IgeW91KSwgYWx0aG91Z2ggc29tZSBkZXZpY2VzIChzdWNoIGFzIGxvb3BiYWNrKSB3b24ndCBzaG93IGl0IGluIHRoZVxudGFibGUuIEZvciBtYWNoaW5lcyBtb3JlIHRoYW4gb25lIGhvcCBhd2F5LCB5b3UgbmVlZCB0byBzcGVjaWZ5IGEgZ2F0ZXdheVxuKGFsYSBcInJvdXRlIGFkZCBkZWZhdWx0IGd3IDEwLjAuMi4yXCIpLlxuXG5UaGUgYWRkcmVzcyBcImRlZmF1bHRcIiBpcyBhIHdpbGRjYXJkIGFkZHJlc3MgKDAuMC4wLjAvMCkgbWF0Y2hpbmcgYWxsXG5wYWNrZXRzIHdpdGhvdXQgYSBtb3JlIHNwZWNpZmljIHJvdXRlLlxuXG5BdmFpbGFibGUgT1BUSU9OUyBpbmNsdWRlOlxucmVqZWN0ICAgLSBibG9ja2luZyByb3V0ZSAoZm9yY2UgbWF0Y2ggZmFpbHVyZSlcbmRldiBOQU1FIC0gZm9yY2UgbWF0Y2hpbmcgcGFja2V0cyBvdXQgdGhpcyBpbnRlcmZhY2UgKGFsYSBcImV0aDBcIilcbm5ldG1hc2sgIC0gb2xkIHdheSBvZiBzYXlpbmcgdGhpbmdzIGxpa2UgQUREUi8yNFxuZ3cgQUREUiAgLSBmb3J3YXJkIHBhY2tldHMgdG8gZ2F0ZXdheSBBRERSIgorCisjZGVmaW5lIEhFTFBfbW9yZSAidXNhZ2U6IG1vcmUgW0ZJTEUuLi5dXG5cblZpZXcgRklMRShzKSAob3Igc3RkaW4pIG9uZSBzY3JlZW5mdWxsIGF0IGEgdGltZS4iCisKKyNkZWZpbmUgSEVMUF9tb2Rwcm9iZSAidXNhZ2U6IG1vZHByb2JlIFstYWxycXZzRGJdIFstZCBESVJdIE1PRFVMRSBbc3ltYm9sPXZhbHVlXVsuLi5dXG5cbm1vZHByb2JlIHV0aWxpdHkgLSBpbnNlcnRzIG1vZHVsZXMgYW5kIGRlcGVuZGVuY2llcy5cblxuLWEgIExvYWQgbXVsdGlwbGUgTU9EVUxFc1xuLWIgIEFwcGx5IGJsYWNrbGlzdCB0byBtb2R1bGUgbmFtZXMgdG9vXG4tRCAgU2hvdyBkZXBlbmRlbmNpZXNcbi1kICBMb2FkIG1vZHVsZXMgZnJvbSBESVIsIG9wdGlvbiBtYXkgYmUgdXNlZCBtdWx0aXBsZSB0aW1lc1xuLWwgIExpc3QgKE1PRFVMRSBpcyBhIHBhdHRlcm4pXG4tcSAgUXVpZXRcbi1yICBSZW1vdmUgTU9EVUxFIChzdGFja3MpIG9yIGRvIGF1dG9jbGVhblxuLXMgIExvZyB0byBzeXNsb2dcbi12ICBWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfbWtlMmZzX2V4dGVuZGVkICJ1c2FnZTogbWtlMmZzIFstRSBzdHJpZGU9IyMjXSBbLU8gb3B0aW9uWyxvcHRpb25dXVxuXG4tRSBzdHJpZGU9IFNldCBSQUlEIHN0cmlwZSBzaXplIChpbiBibG9ja3MpXG4tTyBbb3B0c10gIFNwZWNpZnkgZmV3ZXIgZXh0MiBvcHRpb24gZmxhZ3MgKGZvciBvbGQga2VybmVscylcbiAgICAgICAgICAgQWxsIG9mIHRoZXNlIGFyZSBvbiBieSBkZWZhdWx0IChhcyBhcHByb3ByaWF0ZSlcbiAgIG5vbmUgICAgICAgICBDbGVhciBkZWZhdWx0IG9wdGlvbnMgKGFsbCBidXQgam91cm5hbGluZylcbiAgIGRpcl9pbmRleCAgICBVc2UgaHRyZWUgaW5kZXhlcyBmb3IgbGFyZ2UgZGlyZWN0b3JpZXNcbiAgIGZpbGV0eXBlICAgICBTdG9yZSBmaWxlIHR5cGUgaW5mbyBpbiBkaXJlY3RvcnkgZW50cnlcbiAgIGhhc19qb3VybmFsICBTZXQgYnkgLWpcbiAgIGpvdXJuYWxfZGV2ICBTZXQgYnkgLUogZGV2aWNlPVhYWFxuICAgc3BhcnNlX3N1cGVyIERvbid0IGFsbG9jYXRlIGh1Z2UgbnVtYmVycyBvZiByZWR1bmRhbnQgc3VwZXJibG9ja3MiCisKKyNkZWZpbmUgSEVMUF9ta2UyZnNfbGFiZWwgInVzYWdlOiBta2UyZnMgWy1MIGxhYmVsXSBbLU0gcGF0aF0gWy1vIHN0cmluZ11cblxuLUwgICAgICAgICBWb2x1bWUgbGFiZWxcbi1NICAgICAgICAgUGF0aCB0byBtb3VudCBwb2ludFxuLW8gICAgICAgICBDcmVhdGVkIGJ5IgorCisjZGVmaW5lIEhFTFBfbWtlMmZzX2dlbiAidXNhZ2U6IGdlbmUyZnMgW29wdGlvbnNdIGRldmljZSBmaWxlbmFtZVxuXG5UaGUgW29wdGlvbnNdIGFyZSB0aGUgc2FtZSBhcyBta2UyZnMuIgorCisjZGVmaW5lIEhFTFBfbWtlMmZzX2pvdXJuYWwgInVzYWdlOiBta2UyZnMgWy1qXSBbLUogc2l6ZT0jIyMsZGV2aWNlPVhYWF1cblxuLWogICAgICAgICBDcmVhdGUgam91cm5hbCAoZXh0Mylcbi1KICAgICAgICAgSm91cm5hbCBvcHRpb25zXG4gICAgICAgICAgIHNpemU6IE51bWJlciBvZiBibG9ja3MgKDEwMjQtMTAyNDAwKVxuICAgICAgICAgICBkZXZpY2U6IFNwZWNpZnkgYW4gZXh0ZXJuYWwgam91cm5hbCIKKworI2RlZmluZSBIRUxQX21rZTJmcyAidXNhZ2U6IG1rZTJmcyBbLUZucV0gWy1iICMjI10gWy1OfGkgIyMjXSBbLW0gIyMjXSBkZXZpY2VcblxuQ3JlYXRlIGFuIGV4dDIgZmlsZXN5c3RlbSBvbiBhIGJsb2NrIGRldmljZSBvciBmaWxlc3lzdGVtIGltYWdlLlxuXG4tRiAgICAgICAgIEZvcmNlIHRvIHJ1biBvbiBhIG1vdW50ZWQgZGV2aWNlXG4tbiAgICAgICAgIERvbid0IHdyaXRlIHRvIGRldmljZVxuLXEgICAgICAgICBRdWlldCAobm8gb3V0cHV0KVxuLWIgc2l6ZSAgICBCbG9jayBzaXplICgxMDI0LCAyMDQ4LCBvciA0MDk2KVxuLU4gaW5vZGVzICBBbGxvY2F0ZSB0aGlzIG1hbnkgaW5vZGVzXG4taSBieXRlcyAgIEFsbG9jYXRlIG9uZSBpbm9kZSBmb3IgZXZlcnkgWFhYIGJ5dGVzIG9mIGRldmljZVxuLW0gcGVyY2VudCBSZXNlcnZlIHRoaXMgcGVyY2VudCBvZiBmaWxlc3lzdGVtIHNwYWNlIGZvciByb290IHVzZXIiCisKKyNkZWZpbmUgSEVMUF9tZGV2X2NvbmYgIlRoZSBtZGV2IGNvbmZpZyBmaWxlICgvZXRjL21kZXYuY29uZikgY29udGFpbnMgbGluZXMgdGhhdCBsb29rIGxpa2U6XG5oZFthLXpdWzAtOV0qIDA6MyA2NjBcbihzZFthLXpdKSByb290OmRpc2sgNjYwID11c2Jfc3RvcmFnZVxuXG5FYWNoIGxpbmUgbXVzdCBjb250YWluIHRocmVlIHdoaXRlc3BhY2Ugc2VwYXJhdGVkIGZpZWxkcy4gVGhlIGZpcnN0XG5maWVsZCBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGluZyBvbmUgb3IgbW9yZSBkZXZpY2UgbmFtZXMsXG50aGUgc2Vjb25kIGFuZCB0aGlyZCBmaWVsZHMgYXJlIHVpZDpnaWQgYW5kIGZpbGUgcGVybWlzc2lvbnMgZm9yXG5tYXRjaGluZyBkZXZpY2VzLiBGb3VydGggZmllbGQgaXMgb3B0aW9uYWwuIEl0IGNvdWxkIGJlIHVzZWQgdG8gY2hhbmdlXG5kZXZpY2UgbmFtZSAocHJlZml4ICc9JyksIHBhdGggKHByZWZpeCAnPScgYW5kIHBvc3RmaXggJy8nKSBvciBjcmVhdGUgYVxuc3ltbGluayAocHJlZml4ICc+JykuIgorCisjZGVmaW5lIEhFTFBfbWRldiAidXNhZ2U6IG1kZXYgWy1zXVxuXG5DcmVhdGUgZGV2aWNlcyBpbiAvZGV2IHVzaW5nIGluZm9ybWF0aW9uIGZyb20gL3N5cy5cblxuLXMJU2NhbiBhbGwgZW50cmllcyBpbiAvc3lzIHRvIHBvcHVsYXRlIC9kZXYiCisKKyNkZWZpbmUgSEVMUF9tYW4gInVzYWdlOiBtYW4gWy1NIFBBVEhdIFstayBTVFJJTkddIHwgW1NFQ1RJT05dIENPTU1BTkRcblxuUmVhZCBtYW51YWwgcGFnZSBmb3Igc3lzdGVtIGNvbW1hbmQuXG5cbi1rCUxpc3QgcGFnZXMgd2l0aCBTVFJJTkcgaW4gdGhlaXIgc2hvcnQgZGVzY3JpcHRpb25cbi1NCU92ZXJyaWRlICRNQU5QQVRIXG5cbk1hbiBwYWdlcyBhcmUgZGl2aWRlZCBpbnRvIDggc2VjdGlvbnM6XG4xIGNvbW1hbmRzICAgICAgMiBzeXN0ZW0gY2FsbHMgIDMgbGlicmFyeSBmdW5jdGlvbnMgIDQgL2RldiBmaWxlc1xuNSBmaWxlIGZvcm1hdHMgIDYgZ2FtZXMgICAgICAgICA3IG1pc2NlbGxhbmVvdXMgICAgICA4IHN5c3RlbSBtYW5hZ2VtZW50XG5cblNlY3Rpb25zIGFyZSBzZWFyY2hlZCBpbiB0aGUgb3JkZXIgMSA4IDMgMiA1IDQgNiA3IHVubGVzcyB5b3Ugc3BlY2lmeSBhXG5zZWN0aW9uLiBFYWNoIHNlY3Rpb24gaGFzIGEgcGFnZSBjYWxsZWQgXCJpbnRyb1wiLCBhbmQgdGhlcmUncyBhIGdsb2JhbFxuaW50cm9kdWN0aW9uIHVuZGVyIFwibWFuLXBhZ2VzXCIuIgorCisjZGVmaW5lIEhFTFBfbHNvZiAidXNhZ2U6IGxzb2YgWy1sdF0gWy1wIFBJRDEsUElEMiwuLi5dIFtGSUxFLi4uXVxuXG5MaXN0IGFsbCBvcGVuIGZpbGVzIGJlbG9uZ2luZyB0byBhbGwgYWN0aXZlIHByb2Nlc3Nlcywgb3IgcHJvY2Vzc2VzIHVzaW5nXG5saXN0ZWQgRklMRShzKS5cblxuLWwJbGlzdCB1aWRzIG51bWVyaWNhbGx5XG4tcAlmb3IgZ2l2ZW4gY29tbWEtc2VwYXJhdGVkIHBpZHMgb25seSAoZGVmYXVsdCBhbGwgcGlkcylcbi10CXRlcnNlIChwaWQgb25seSkgb3V0cHV0IgorCisjZGVmaW5lIEhFTFBfbGFzdCAidXNhZ2U6IGxhc3QgWy1XXSBbLWYgRklMRV1cblxuU2hvdyBsaXN0aW5nIG9mIGxhc3QgbG9nZ2VkIGluIHVzZXJzLlxuXG4tVyAgICAgIERpc3BsYXkgdGhlIGluZm9ybWF0aW9uIHdpdGhvdXQgaG9zdC1jb2x1bW4gdHJ1bmNhdGlvblxuLWYgRklMRSBSZWFkIGZyb20gZmlsZSBGSUxFIGluc3RlYWQgb2YgL3Zhci9sb2cvd3RtcCIKKworI2RlZmluZSBIRUxQX2tsb2dkICJ1c2FnZToga2xvZ2QgWy1uXSBbLWMgTl1cblxuLWMgIE4gICBQcmludCB0byBjb25zb2xlIG1lc3NhZ2VzIG1vcmUgdXJnZW50IHRoYW4gcHJpbyBOICgxLTgpXCJcbi1uICAgIFJ1biBpbiBmb3JlZ3JvdW5kIgorCisjZGVmaW5lIEhFTFBfaXBjcyAidXNhZ2U6IGlwY3MgW1stc21xXSAtaSBzaG1pZF0gfCBbWy1hc21xXSBbLXRjcGx1XV1cblxuLWkgU2hvdyBzcGVjaWZpYyByZXNvdXJjZVxuUmVzb3VyY2Ugc3BlY2lmaWNhdGlvbjpcbi1hIEFsbCAoZGVmYXVsdClcbi1tIFNoYXJlZCBtZW1vcnkgc2VnbWVudHNcbi1xIE1lc3NhZ2UgcXVldWVzXG4tcyBTZW1hcGhvcmUgYXJyYXlzXG5PdXRwdXQgZm9ybWF0OlxuLWMgQ3JlYXRvclxuLWwgTGltaXRzXG4tcCBQaWRcbi10IFRpbWVcbi11IFN1bW1hcnkiCisKKyNkZWZpbmUgSEVMUF9pcGNybSAidXNhZ2U6IGlwY3JtIFsgWy1xIG1zcWlkXSBbLW0gc2htaWRdIFstcyBzZW1pZF1cbiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuXG4tbU0gUmVtb3ZlIG1lbW9yeSBzZWdtZW50IGFmdGVyIGxhc3QgZGV0YWNoXG4tcVEgUmVtb3ZlIG1lc3NhZ2UgcXVldWVcbi1zUyBSZW1vdmUgc2VtYXBob3JlIgorCisjZGVmaW5lIEhFTFBfaXAgInVzYWdlOiBpcCBbIE9QVElPTlMgXSBPQkpFQ1QgeyBDT01NQU5EIH1cblxuU2hvdyAvIG1hbmlwdWxhdGUgcm91dGluZywgZGV2aWNlcywgcG9saWN5IHJvdXRpbmcgYW5kIHR1bm5lbHMuXG5cbndoZXJlIE9CSkVDVCA6PSB7YWRkcmVzcyB8IGxpbmsgfCByb3V0ZSB8IHJ1bGUgfCB0dW5uZWx9XG5PUFRJT05TIDo9IHsgLWZbYW1pbHldIHsgaW5ldCB8IGluZXQ2IHwgbGluayB9IHwgLW9bbmVsaW5lXSB9IgorCisjZGVmaW5lIEhFTFBfaW5pdCAidXNhZ2U6IGluaXRcblxuU3lzdGVtIFYgc3R5bGUgaW5pdC5cblxuRmlyc3QgcHJvZ3JhbSB0byBydW4gKGFzIFBJRCAxKSB3aGVuIHRoZSBzeXN0ZW0gY29tZXMgdXAsIHJlYWRpbmdcbi9ldGMvaW5pdHRhYiB0byBkZXRlcm1pbmUgYWN0aW9ucy4iCisKKyNkZWZpbmUgSEVMUF9oZCAidXNhZ2U6IGhkIFtGSUxFLi4uXVxuXG5EaXNwbGF5IGZpbGUocykgaW4gY2Fubm9uaWNhbCBoZXgrQVNDSUkgZm9ybWF0LiIKKworI2RlZmluZSBIRUxQX2hleGR1bXAgInVzYWdlOiBoZXhkdW1wIFstYmNDZG92eF0gWy1uIExFTl0gWy1zIFNLSVBdIFtGSUxFLi4uXVxuXG5EdW1wIGZpbGUocykgaW4gaGV4YWRlY2ltYWwgZm9ybWF0LlxuXG4tbiBMRU4JU2hvdyBMRU4gYnl0ZXMgb2Ygb3V0cHV0XG4tcyBTS0lQCVNraXAgYnl0ZXMgb2YgaW5wdXRcbi12CVZlcmJvc2UgKGRvbid0IGNvbWJpbmUgaWRlbnRpY2FsIGxpbmVzKVxuXG5EaXNwbGF5IHR5cGU6XG4tYiBPbmUgYnl0ZSBvY3RhbCAgIC1jIE9uZSBieXRlIGNoYXJhY3RlciAtQyBDYW5vbmljYWwgKGhleCArIEFTQ0lJKVxuLWQgVHdvIGJ5dGUgZGVjaW1hbCAtbyBUd28gYnl0ZSBvY3RhbCAgICAgLXggVHdvIGJ5dGUgaGV4YWRlY2ltYWwgKGRlZmF1bHQpIgorCisjZGVmaW5lIEhFTFBfZ3JvdXBkZWwgInVzYWdlOiBncm91cGRlbCBbVVNFUl0gR1JPVVBcblxuRGVsZXRlIGEgZ3JvdXAgb3IgcmVtb3ZlIGEgdXNlciBmcm9tIGEgZ3JvdXAiCisKKyNkZWZpbmUgSEVMUF9ncm91cGFkZCAidXNhZ2U6IGdyb3VwYWRkIFstU10gWy1nIEdJRF0gW1VTRVJdIEdST1VQXG5cbkFkZCBhIHVzZXIgdG8gYSBncm91cCwgb3IgY3JlYXRlIGEgbmV3IGdyb3VwLlxuXG4tZyBHSUQJR3JvdXAgaWRcbi1SCU9wZXJhdGUgd2l0aGluIGNocm9vdFxuLVMJQ3JlYXRlIGEgc3lzdGVtIGdyb3VwIgorCisjZGVmaW5lIEhFTFBfZ2l0Y2hlY2tvdXQgInVzYWdlOiBnaXRjaGVja291dCA8YnJhbmNoPlxuQSBtaW5pbWFsIGdpdCBjaGVja291dC4iCisKKyNkZWZpbmUgSEVMUF9naXRmZXRjaCAidXNhZ2U6IGdpdGZldGNoXG5BIG1pbmltYWwgZ2l0IGZldGNoLiIKKworI2RlZmluZSBIRUxQX2dpdHJlbW90ZSAidXNhZ2U6IGdpdHJlbW90ZSBVUkxcbkEgbWluaW1hbCBnaXQgcmVtb3RlIGFkZCBvcmlnaW4uIgorCisjZGVmaW5lIEhFTFBfZ2l0aW5pdCAidXNhZ2U6IGdpdGluaXQgTkFNRVxuQSBtaW5pbWFsIGdpdCBpbml0LiIKKworI2RlZmluZSBIRUxQX2dpdGNsb25lICJ1c2FnZTogZ2l0Y2xvbmUgVVJMXG5BIG1pbmltYWwgZ2l0IGNsb25lLiIKKworI2RlZmluZSBIRUxQX2dpdGNvbXBhdCAiRW5hYmxlIGdpdCBjb21wYXRpYmxlIHJlcG9zIGluc3RlYWQgb2YgbWluaW1hbCBjbG9uZSBkb3dubG9hZGVyLiIKKworI2RlZmluZSBIRUxQX2dldHR5ICJ1c2FnZTogZ2V0dHkgW09QVElPTlNdIEJBVURfUkFURVssQkFVRF9SQVRFXS4uLiBUVFkgW1RFUk1UWVBFXVxuXG5XYWl0IGZvciBhIG1vZGVtIHRvIGRpYWwgaW50byBzZXJpYWwgcG9ydCwgYWRqdXN0IGJhdWQgcmF0ZSwgY2FsbCBsb2dpbi5cblxuLWggICAgRW5hYmxlIGhhcmR3YXJlIFJUUy9DVFMgZmxvdyBjb250cm9sXG4tTCAgICBTZXQgQ0xPQ0FMIChpZ25vcmUgQ2FycmllciBEZXRlY3Qgc3RhdGUpXG4tbSAgICBHZXQgYmF1ZCByYXRlIGZyb20gbW9kZW0ncyBDT05ORUNUIHN0YXR1cyBtZXNzYWdlXG4tbiAgICBEb24ndCBwcm9tcHQgZm9yIGxvZ2luIG5hbWVcbi13ICAgIFdhaXQgZm9yIENSIG9yIExGIGJlZm9yZSBzZW5kaW5nIC9ldGMvaXNzdWVcbi1pICAgIERvbid0IGRpc3BsYXkgL2V0Yy9pc3N1ZVxuLWYgSVNTVUVfRklMRSAgRGlzcGxheSBJU1NVRV9GSUxFIGluc3RlYWQgb2YgL2V0Yy9pc3N1ZVxuLWwgTE9HSU4gIEludm9rZSBMT0dJTiBpbnN0ZWFkIG9mIC9iaW4vbG9naW5cbi10IFNFQyAgICBUZXJtaW5hdGUgYWZ0ZXIgU0VDIGlmIG5vIGxvZ2luIG5hbWUgaXMgcmVhZFxuLUkgSU5JVFNUUiAgU2VuZCBJTklUU1RSIGJlZm9yZSBhbnl0aGluZyBlbHNlXG4tSCBIT1NUICAgIExvZyBIT1NUIGludG8gdGhlIHV0bXAgZmlsZSBhcyB0aGUgaG9zdG5hbWUiCisKKyNkZWZpbmUgSEVMUF9nZXRmYXR0ciAidXNhZ2U6IGdldGZhdHRyIFstZF0gWy1oXSBbLW4gTkFNRV0gRklMRS4uLlxuXG5SZWFkIFBPU0lYIGV4dGVuZGVkIGF0dHJpYnV0ZXMuXG5cbi1kCVNob3cgdmFsdWVzIGFzIHdlbGwgYXMgbmFtZXNcbi1oCURvIG5vdCBkZXJlZmVyZW5jZSBzeW1ib2xpYyBsaW5rc1xuLW4JU2hvdyBvbmx5IGF0dHJpYnV0ZXMgd2l0aCB0aGUgZ2l2ZW4gbmFtZVxuLS1vbmx5LXZhbHVlcwlEb24ndCBzaG93IG5hbWVzIgorCisjZGVmaW5lIEhFTFBfZnNjayAidXNhZ2U6IGZzY2sgWy1BTlBSVFZdIFstQyBGRF0gWy10IEZTVFlQRV0gW0ZTX09QVFNdIFtCTE9DS0RFVl0uLi5cblxuQ2hlY2sgYW5kIHJlcGFpciBmaWxlc3lzdGVtc1xuXG4tQSAgICAgIFdhbGsgL2V0Yy9mc3RhYiBhbmQgY2hlY2sgYWxsIGZpbGVzeXN0ZW1zXG4tTiAgICAgIERvbid0IGV4ZWN1dGUsIGp1c3Qgc2hvdyB3aGF0IHdvdWxkIGJlIGRvbmVcbi1QICAgICAgV2l0aCAtQSwgY2hlY2sgZmlsZXN5c3RlbXMgaW4gcGFyYWxsZWxcbi1SICAgICAgV2l0aCAtQSwgc2tpcCB0aGUgcm9vdCBmaWxlc3lzdGVtXG4tVCAgICAgIERvbid0IHNob3cgdGl0bGUgb24gc3RhcnR1cFxuLVYgICAgICBWZXJib3NlXG4tQyBuICAgIFdyaXRlIHN0YXR1cyBpbmZvcm1hdGlvbiB0byBzcGVjaWZpZWQgZmlsZSBkZXNjcmlwdG9yXG4tdCBUWVBFIExpc3Qgb2YgZmlsZXN5c3RlbSB0eXBlcyB0byBjaGVjayIKKworI2RlZmluZSBIRUxQX2ZkaXNrICJ1c2FnZTogZmRpc2sgWy1sdV0gWy1DIENZTElOREVSU10gWy1IIEhFQURTXSBbLVMgU0VDVE9SU10gWy1iIFNFQ1RTWl0gRElTS1xuXG5DaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG5cbi11ICAgICAgICAgICAgU3RhcnQgYW5kIEVuZCBhcmUgaW4gc2VjdG9ycyAoaW5zdGVhZCBvZiBjeWxpbmRlcnMpXG4tbCAgICAgICAgICAgIFNob3cgcGFydGl0aW9uIHRhYmxlIGZvciBlYWNoIERJU0ssIHRoZW4gZXhpdFxuLWIgc2l6ZSAgICAgICBzZWN0b3Igc2l6ZSAoNTEyLCAxMDI0LCAyMDQ4IG9yIDQwOTYpXG4tQyBDWUxJTkRFUlMgIFNldCBudW1iZXIgb2YgY3lsaW5kZXJzL2hlYWRzL3NlY3RvcnNcbi1IIEhFQURTXG4tUyBTRUNUT1JTIgorCisjZGVmaW5lIEhFTFBfZXhwciAidXNhZ2U6IGV4cHIgQVJHMSBPUEVSQVRPUiBBUkcyLi4uXG5cbkV2YWx1YXRlIGV4cHJlc3Npb24gYW5kIHByaW50IHJlc3VsdC4gRm9yIGV4YW1wbGUsIFwiZXhwciAxICsgMlwiIHByaW50cyBcIjNcIi5cblxuVGhlIHN1cHBvcnRlZCBvcGVyYXRvcnMgYXJlIChncm91cGVkIGZyb20gaGlnaGVzdCB0byBsb3dlc3QgcHJpb3JpdHkpOlxuXG4gICggKSAgICA6ICAgICogLyAlICAgICsgLSAgICAhPSA8PSA8ID49ID4gPSAgICAmICAgIHxcblxuRWFjaCBjb25zdGFudCBhbmQgb3BlcmF0b3IgbXVzdCBiZSBhIHNlcGFyYXRlIGNvbW1hbmQgbGluZSBhcmd1bWVudC5cbkFsbCBvcGVyYXRvcnMgYXJlIGluZml4LCByZXF1aXJpbmcgYSB2YWx1ZSBvbiBlYWNoIHNpZGUgb2YgdGhlIG9wZXJhdG9yLlxuT3BlcmF0b3JzIG9mIHRoZSBzYW1lIHByaW9yaXR5IGFyZSBldmFsdWF0ZWQgbGVmdCB0byByaWdodC4gUGFyZW50aGVzZXNcbmVsZXZhdGUgdGhlIHByaW9yaXR5IG9mIGV4cHJlc3Npb24gdGhleSBjb250YWluLiBUaGUgJiBhbmQgfCBvcGVyYXRvcnNcbmFyZSBsb2dpY2FsIChub3QgYml0d2lzZSkuXG5cbkFsbCBvcGVyYXRvcnMgeWllbGQgaW50ZWdlcnMsIGFuZCBtb3N0IG9wZXJhdG9ycyBleHBlY3QgaW50ZWdlciBhcmd1bWVudHMuXG5Db21wYXJpc29ucyBtYXkgYWxwaGFiZXRpY2FsbHkgY29tcGFyZSBzdHJpbmdzLCBsb2dpY2FsIG9wZXJhdG9ycyB0cmVhdCBhXG5ibGFuayBzdHJpbmcgYXMgZmFsc2UgYW5kIG5vbmJsYW5rIGFzIHRydWUsIGFuZCB0aGUgcmVnZXggb3BlcmF0b3JcbihzdHIgOiBwYXR0ZXJuKSB5aWVsZHMgdGhlIGluaXRpYWwgbnVtYmVyIG9mIG1hdGNoaW5nIGJ5dGVzLiAoU29cblwiYWJjIDogYWJcIiBpcyAyLCBidXQgXCJhYmMgOiBiY1wiIGlzIDAuKVxuXG5DYWxsaW5nIGV4cHIgZnJvbSBhIGNvbW1hbmQgc2hlbGwgcmVxdWlyZXMgYSBsb3Qgb2YgXFwoIG9yICcqJyBlc2NhcGluZ1xudG8gYXZvaWQgaW50ZXJwcmV0aW5nIHNoZWxsIGNvbnRyb2wgY2hhcmFjdGVycywgdnMgdGhlIHNoZWxsJ3MgXCIkKCgxKzYvMykpXCIuIgorCisjZGVmaW5lIEhFTFBfZHVtcGxlYXNlcyAidXNhZ2U6IGR1bXBsZWFzZXMgWy1yfC1hXSBbLWYgTEVBU0VGSUxFXVxuXG5EaXNwbGF5IERIQ1AgbGVhc2VzIGdyYW50ZWQgYnkgdWRoY3BkXG4tZiBGSUxFLCAgTGVhc2UgZmlsZVxuLXIgICAgICAgIFNob3cgcmVtYWluaW5nIHRpbWVcbi1hICAgICAgICBTaG93IGV4cGlyYXRpb24gdGltZSIKKworI2RlZmluZSBIRUxQX2RpZmYgInVzYWdlOiBkaWZmIFstYWJCZGlOcXJUc3R3XSBbLUwgTEFCRUxdIFstUyBGSUxFXSBbLVUgTElORVNdIFstRiBSRUdFWCBdIEZJTEUxIEZJTEUyXG5cbi1hCVRyZWF0IGFsbCBmaWxlcyBhcyB0ZXh0XG4tYglJZ25vcmUgY2hhbmdlcyBpbiB0aGUgYW1vdW50IG9mIHdoaXRlc3BhY2Vcbi1CCUlnbm9yZSBjaGFuZ2VzIHdob3NlIGxpbmVzIGFyZSBhbGwgYmxhbmtcbi1kCVRyeSBoYXJkIHRvIGZpbmQgYSBzbWFsbGVyIHNldCBvZiBjaGFuZ2VzXG4tRiAJU2hvdyB0aGUgbW9zdCByZWNlbnQgbGluZSBtYXRjaGluZyB0aGUgcmVnZXhcbi1pCUlnbm9yZSBjYXNlIGRpZmZlcmVuY2VzXG4tTAlVc2UgTEFCRUwgaW5zdGVhZCBvZiB0aGUgZmlsZW5hbWUgaW4gdGhlIHVuaWZpZWQgaGVhZGVyXG4tTglUcmVhdCBhYnNlbnQgZmlsZXMgYXMgZW1wdHlcbi1xCU91dHB1dCBvbmx5IHdoZXRoZXIgZmlsZXMgZGlmZmVyXG4tcglSZWN1cnNlXG4tUwlTdGFydCB3aXRoIEZJTEUgd2hlbiBjb21wYXJpbmcgZGlyZWN0b3JpZXNcbi1zCVJlcG9ydCB3aGVuIHR3byBmaWxlcyBhcmUgdGhlIHNhbWVcbi1UCU1ha2UgdGFicyBsaW5lIHVwIGJ5IHByZWZpeGluZyBhIHRhYiB3aGVuIG5lY2Vzc2FyeVxuLXQJRXhwYW5kIHRhYnMgdG8gc3BhY2VzIGluIG91dHB1dFxuLXUJVW5pZmllZCBkaWZmXG4tVQlPdXRwdXQgTElORVMgbGluZXMgb2YgY29udGV4dFxuLXcJSWdub3JlIGFsbCB3aGl0ZXNwYWNlXG5cbi0tY29sb3IgICAgIENvbG9yIG91dHB1dCAgIC0tc3RyaXAtdHJhaWxpbmctY3IgICBTdHJpcCAnXFxyJyBmcm9tIGlucHV0IGxpbmVzXG4tLVRZUEUtbGluZS1mb3JtYXQ9Rk9STUFUICBEaXNwbGF5IFRZUEUgKHVuY2hhbmdlZC9vbGQvbmV3KSBsaW5lcyB1c2luZyBGT1JNQVRcbiAgRk9STUFUIHVzZXMgcHJpbnRmIGludGVnZXIgZXNjYXBlcyAoYWxhICUtMi40eCkgZm9sbG93ZWQgYnkgTEVUVEVSOiBGRUxNTm5cblN1cHBvcnRlZCBmb3JtYXQgc3BlY2lmaWVycyBhcmU6XG4qICVsLCB0aGUgY29udGVudHMgb2YgdGhlIGxpbmUsIHdpdGhvdXQgdGhlIHRyYWlsaW5nIG5ld2xpbmVcbiogJUwsIHRoZSBjb250ZW50cyBvZiB0aGUgbGluZSwgaW5jbHVkaW5nIHRoZSB0cmFpbGluZyBuZXdsaW5lXG4qICUlLCB0aGUgY2hhcmFjdGVyICclJyIKKworI2RlZmluZSBIRUxQX2RoY3BkICJ1c2FnZTogZGhjcGQgWy00NmZTXSBbLWkgSUZBQ0VdIFstUCBOXSBbQ09ORkZJTEVdXG5cbiAtZiAgICBSdW4gaW4gZm9yZWdyb3VuZFxuIC1pIEludGVyZmFjZSB0byB1c2VcbiAtUyAgICBMb2cgdG8gc3lzbG9nIHRvb1xuIC1QIE4gIFVzZSBwb3J0IE4gKGRlZmF1bHQgaXB2NCA2NywgaXB2NiA1NDcpXG4gLTQsIC02ICAgIFJ1biBhcyBhIERIQ1B2NCBvciBESENQdjYgc2VydmVyIgorCisjZGVmaW5lIEhFTFBfZGhjcDYgInVzYWdlOiBkaGNwNiBbLWZibnF2Ul0gWy1pIElGQUNFXSBbLXIgSVBdIFstcyBQUk9HXSBbLXAgUElERklMRV1cblxuQ29uZmlndXJlIG5ldHdvcmsgZHluYW1pY2FsbHkgdXNpbmcgREhDUC5cblxuLWkgSW50ZXJmYWNlIHRvIHVzZSAoZGVmYXVsdCBldGgwKVxuLXAgQ3JlYXRlIHBpZGZpbGVcbi1zIFJ1biBQUk9HIGF0IERIQ1AgZXZlbnRzXG4tdCBTZW5kIHVwIHRvIE4gU29saWNpdCBwYWNrZXRzXG4tVCBQYXVzZSBiZXR3ZWVuIHBhY2tldHMgKGRlZmF1bHQgMyBzZWNvbmRzKVxuLUEgV2FpdCBOIHNlY29uZHMgYWZ0ZXIgZmFpbHVyZSAoZGVmYXVsdCAyMClcbi1mIFJ1biBpbiBmb3JlZ3JvdW5kXG4tYiBCYWNrZ3JvdW5kIGlmIGxlYXNlIGlzIG5vdCBvYnRhaW5lZFxuLW4gRXhpdCBpZiBsZWFzZSBpcyBub3Qgb2J0YWluZWRcbi1xIEV4aXQgYWZ0ZXIgb2J0YWluaW5nIGxlYXNlXG4tUiBSZWxlYXNlIElQIG9uIGV4aXRcbi1TIExvZyB0byBzeXNsb2cgdG9vXG4tciBSZXF1ZXN0IHRoaXMgSVAgYWRkcmVzc1xuLXYgVmVyYm9zZVxuXG5TaWduYWxzOlxuVVNSMSAgUmVuZXcgY3VycmVudCBsZWFzZVxuVVNSMiAgUmVsZWFzZSBjdXJyZW50IGxlYXNlIgorCisjZGVmaW5lIEhFTFBfZGhjcCAidXNhZ2U6IGRoY3AgWy1mYm5xdm9DUkJdIFstaSBJRkFDRV0gWy1yIElQXSBbLXMgUFJPR10gWy1wIFBJREZJTEVdXG4gICAgICAgICAgICBbLUggSE9TVE5BTUVdIFstViBWRU5ET1JdIFsteCBPUFQ6VkFMXSBbLU8gT1BUXVxuXG4gICAgIENvbmZpZ3VyZSBuZXR3b3JrIGR5bmFtaWNhbGx5IHVzaW5nIERIQ1AuXG5cbiAgIC1pIEludGVyZmFjZSB0byB1c2UgKGRlZmF1bHQgZXRoMClcbiAgIC1wIENyZWF0ZSBwaWRmaWxlXG4gICAtcyBSdW4gUFJPRyBhdCBESENQIGV2ZW50cyAoZGVmYXVsdCAvdXNyL3NoYXJlL2RoY3AvZGVmYXVsdC5zY3JpcHQpXG4gICAtQiBSZXF1ZXN0IGJyb2FkY2FzdCByZXBsaWVzXG4gICAtdCBTZW5kIHVwIHRvIE4gZGlzY292ZXIgcGFja2V0c1xuICAgLVQgUGF1c2UgYmV0d2VlbiBwYWNrZXRzIChkZWZhdWx0IDMgc2Vjb25kcylcbiAgIC1BIFdhaXQgTiBzZWNvbmRzIGFmdGVyIGZhaWx1cmUgKGRlZmF1bHQgMjApXG4gICAtZiBSdW4gaW4gZm9yZWdyb3VuZFxuICAgLWIgQmFja2dyb3VuZCBpZiBsZWFzZSBpcyBub3Qgb2J0YWluZWRcbiAgIC1uIEV4aXQgaWYgbGVhc2UgaXMgbm90IG9idGFpbmVkXG4gICAtcSBFeGl0IGFmdGVyIG9idGFpbmluZyBsZWFzZVxuICAgLVIgUmVsZWFzZSBJUCBvbiBleGl0XG4gICAtUyBMb2cgdG8gc3lzbG9nIHRvb1xuICAgLWEgVXNlIGFycGluZyB0byB2YWxpZGF0ZSBvZmZlcmVkIGFkZHJlc3NcbiAgIC1PIFJlcXVlc3Qgb3B0aW9uIE9QVCBmcm9tIHNlcnZlciAoY3VtdWxhdGl2ZSlcbiAgIC1vIERvbid0IHJlcXVlc3QgYW55IG9wdGlvbnMgKHVubGVzcyAtTyBpcyBnaXZlbilcbiAgIC1yIFJlcXVlc3QgdGhpcyBJUCBhZGRyZXNzXG4gICAteCBPUFQ6VkFMICBJbmNsdWRlIG9wdGlvbiBPUFQgaW4gc2VudCBwYWNrZXRzIChjdW11bGF0aXZlKVxuICAgLUYgQXNrIHNlcnZlciB0byB1cGRhdGUgRE5TIG1hcHBpbmcgZm9yIE5BTUVcbiAgIC1IIFNlbmQgTkFNRSBhcyBjbGllbnQgaG9zdG5hbWUgKGRlZmF1bHQgbm9uZSlcbiAgIC1WIFZFTkRPUiBWZW5kb3IgaWRlbnRpZmllciAoZGVmYXVsdCAndG95Ym94IFZFUlNJT04nKVxuICAgLUMgRG9uJ3Qgc2VuZCBNQUMgYXMgY2xpZW50IGlkZW50aWZpZXJcbiAgIC12IFZlcmJvc2VcblxuICAgU2lnbmFsczpcbiAgIFVTUjEgIFJlbmV3IGN1cnJlbnQgbGVhc2VcbiAgIFVTUjIgIFJlbGVhc2UgY3VycmVudCBsZWFzZSIKKworI2RlZmluZSBIRUxQX2NzcGxpdCAidXNhZ2U6IGNzcGxpdCBbLWtzXSBbLWYgUFJFRklYXSBbLW4gSU5URUdFUl0gZmlsZSBhcmcuLi5cblxuU3BsaXQgZmlsZXMgaW50byBtdWx0aXBsZSBmaWxlcyBiYXNlZCBvbiBsaXN0IG9mIHJ1bGVzXG5cbi1rCURvZXMgbm90IGRlbGV0ZSBGaWxlcyBvbiBlcnJvclxuLXMJTm8gZmlsZSBvdXRwdXQgc2l6ZSBtZXNzYWdlc1xuLWYgW1BSRUZJWF0gVXNlIFtQUkVGSVhdIGFzIGZpbGVuYW1lIHByZWZpeCBpbnN0ZWFkIG9mIFwieHhcIlxuLW4gW0lOVEVHRVJdIE1ha2UgYWxsIGZpbGVuYW1lIG51bWJlcnMgW0lOVEVHRVJdIGNoYXJhY3RlcnMgbG9uZ1xuXG5WYWxpZCBSdWxlczpcbi9yZWdleHAvW0lOVEVHRVJdIEJyZWFrIGZpbGUgYmVmb3JlIGxpbmUgdGhhdCByZWdleHAgbWF0Y2hlcyxcbiVyZWdleHAlW0lOVEVHRVJdIEV4Y2x1ZGUgdW50aWxsIGxpbmUgbWF0Y2hlcyByZWdleHBcbklmIGEgb2Zmc2V0IGlzIHNwZWNpZmllZCBmb3IgdGhlc2UgcnVsZXMsIHRoZSBicmVhayB3aWxsIGhhcHBlbiBbSU5URUdFUl1cbmxpbmVzIGFmdGVyIHRoZSByZWdleHAgbWF0Y2hcbmlmIGEgb2Zmc2V0IGlzIHNwZWNpZmllZCwgaXQgd2lsbCBicmVhayBhdCBbSU5URUdFUl0gbGluZXMgYWZ0ZXIgdGhlIG9mZnNldFxuW0lOVEVHRVJdIEJyZWFrIGZpbGUgYXQgbGluZSBiZWZvcmUgW0lOVEVHRVJdXG57SU5URUdFUn0gUmVwZWF0IFByZXZpb3VzIFBhdHRlcm4gSU5URUdFUiBOdW1iZXIgb2YgdGltZXMgaWYgSU5URUdFUiBpcyAqXG5UaGUgcGF0dGVybiByZXBlYXRzIGZvcmV2ZXIiCisKKyNkZWZpbmUgSEVMUF9jcm9udGFiICJ1c2FnZTogY3JvbnRhYiBbLXUgdXNlcl0gRklMRVxuICAgICAgICAgICAgICAgWy11IHVzZXJdIFstZSB8IC1sIHwgLXJdXG4gICAgICAgICAgICAgICBbLWMgZGlyXVxuXG5GaWxlcyB1c2VkIHRvIHNjaGVkdWxlIHRoZSBleGVjdXRpb24gb2YgcHJvZ3JhbXMuXG5cbi1jIGNyb250YWIgZGlyXG4tZSBlZGl0IHVzZXIncyBjcm9udGFiXG4tbCBsaXN0IHVzZXIncyBjcm9udGFiXG4tciBkZWxldGUgdXNlcidzIGNyb250YWJcbi11IHVzZXJcbkZJTEUgUmVwbGFjZSBjcm9udGFiIGJ5IEZJTEUgKCctJzogc3RkaW4pIgorCisjZGVmaW5lIEhFTFBfY3JvbmQgInVzYWdlOiBjcm9uZCBbLWZiU10gWy1sIE5dIFstZCBOXSBbLUwgTE9HRklMRV0gWy1jIERJUl1cblxuQSBkYWVtb24gdG8gZXhlY3V0ZSBzY2hlZHVsZWQgY29tbWFuZHMuXG5cbi1iIEJhY2tncm91bmQgKGRlZmF1bHQpXG4tYyBjcm9udGFiIGRpclxuLWQgU2V0IGxvZyBsZXZlbCwgbG9nIHRvIHN0ZGVyclxuLWYgRm9yZWdyb3VuZFxuLWwgU2V0IGxvZyBsZXZlbC4gMCBpcyB0aGUgbW9zdCB2ZXJib3NlLCBkZWZhdWx0IDhcbi1TIExvZyB0byBzeXNsb2cgKGRlZmF1bHQpXG4tTCBMb2cgdG8gZmlsZSIKKworI2RlZmluZSBIRUxQX2Noc2ggInVzYWdlOiBjaHNoIFstcyBTSEVMTF0gWy1SIENIUk9PVF9ESVJdIFtVU0VSXVxuXG5DaGFuZ2UgdXNlcidzIGxvZ2luIHNoZWxsLlxuXG4tcwlVc2UgU0hFTEwgaW5zdGVhZCBvZiBwcm9tcHRpbmdcbi1SCUFjdCBvbiBDSFJPT1RfRElSIGluc3RlYWQgb2YgaG9zdFxuXG5Ob24tcm9vdCB1c2VycyBjYW4gb25seSBjaGFuZ2UgdGhlaXIgb3duIHNoZWxsIHRvIG9uZSBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuIgorCisjZGVmaW5lIEhFTFBfYnJjdGwgInVzYWdlOiBicmN0bCBDT01NQU5EIFtCUklER0UgW0lOVEVSRkFDRV1dXG5cbk1hbmFnZSBldGhlcm5ldCBicmlkZ2VzXG5cbkNvbW1hbmRzOlxuc2hvdyAgICAgICAgICAgICAgICAgIFNob3cgYSBsaXN0IG9mIGJyaWRnZXNcbmFkZGJyIEJSSURHRSAgICAgICAgICBDcmVhdGUgQlJJREdFXG5kZWxiciBCUklER0UgICAgICAgICAgRGVsZXRlIEJSSURHRVxuYWRkaWYgQlJJREdFIElGQUNFICAgIEFkZCBJRkFDRSB0byBCUklER0VcbmRlbGlmIEJSSURHRSBJRkFDRSAgICBEZWxldGUgSUZBQ0UgZnJvbSBCUklER0VcbnNldGFnZWluZyBCUklER0UgVElNRSBTZXQgYWdlaW5nIHRpbWVcbnNldGZkIEJSSURHRSBUSU1FICAgICBTZXQgYnJpZGdlIGZvcndhcmQgZGVsYXlcbnNldGhlbGxvIEJSSURHRSBUSU1FICBTZXQgaGVsbG8gdGltZVxuc2V0bWF4YWdlIEJSSURHRSBUSU1FIFNldCBtYXggbWVzc2FnZSBhZ2VcbnNldHBhdGhjb3N0IEJSSURHRSBQT1JUIENPU1QgICBTZXQgcGF0aCBjb3N0XG5zZXRwb3J0cHJpbyBCUklER0UgUE9SVCBQUklPICAgU2V0IHBvcnQgcHJpb3JpdHlcbnNldGJyaWRnZXByaW8gQlJJREdFIFBSSU8gICAgICBTZXQgYnJpZGdlIHByaW9yaXR5XG5zdHAgQlJJREdFIFsxL3llcy9vbnwwL25vL29mZl0gU1RQIG9uL29mZiIKKworI2RlZmluZSBIRUxQX2Jvb3RjaGFydGQgInVzYWdlOiBib290Y2hhcnRkIHtzdGFydCBbUFJPRyBBUkdTXX18c3RvcHxpbml0XG5cblJlY29yZCBib290IGNoYXJ0IGRhdGEgaW50byAvdmFyL2xvZy9ib290bG9nLnRnelxuXG5zdGFydDogc3RhcnQgYmFja2dyb3VuZCBsb2dnaW5nOyB3aXRoIFBST0csIHJ1biBQUk9HLFxuICAgICAgIHRoZW4ga2lsbCBsb2dnaW5nIHdpdGggU0lHVVNSMVxuc3RvcDogIHNlbmQgU0lHVVNSMSB0byBhbGwgYm9vdGNoYXJ0ZCBwcm9jZXNzZXNcbmluaXQ6ICBzdGFydCBiYWNrZ3JvdW5kIGxvZ2dpbmc7IHN0b3Agd2hlbiBnZXR0eS94ZG0gaXMgc2VlblxuICAgICAgKGZvciBpbml0IHNjcmlwdHMpXG5cblVuZGVyIFBJRCAxOiBhcyBpbml0LCB0aGVuIGV4ZWMgJGJvb3RjaGFydF9pbml0LCAvaW5pdCwgL3NiaW4vaW5pdCIKKworI2RlZmluZSBIRUxQX2JjICJ1c2FnZTogYmMgWy1pbHFzd10gW2ZpbGUgLi4uXVxuXG5iYyBpcyBhIGNvbW1hbmQtbGluZSBjYWxjdWxhdG9yIHdpdGggYSBUdXJpbmctY29tcGxldGUgbGFuZ3VhZ2UuXG5cbm9wdGlvbnM6XG5cbiAgLWkgIC0taW50ZXJhY3RpdmUgIGZvcmNlIGludGVyYWN0aXZlIG1vZGVcbiAgLWwgIC0tbWF0aGxpYiAgICAgIHVzZSBwcmVkZWZpbmVkIG1hdGggcm91dGluZXM6XG5cbiAgICAgICAgICAgICAgICAgICAgIHMoZXhwcikgID0gIHNpbmUgb2YgZXhwciBpbiByYWRpYW5zXG4gICAgICAgICAgICAgICAgICAgICBjKGV4cHIpICA9ICBjb3NpbmUgb2YgZXhwciBpbiByYWRpYW5zXG4gICAgICAgICAgICAgICAgICAgICBhKGV4cHIpICA9ICBhcmN0YW5nZW50IG9mIGV4cHIsIHJldHVybmluZyByYWRpYW5zXG4gICAgICAgICAgICAgICAgICAgICBsKGV4cHIpICA9ICBuYXR1cmFsIGxvZyBvZiBleHByXG4gICAgICAgICAgICAgICAgICAgICBlKGV4cHIpICA9ICByYWlzZXMgZSB0byB0aGUgcG93ZXIgb2YgZXhwclxuICAgICAgICAgICAgICAgICAgICAgaihuLCB4KSAgPSAgQmVzc2VsIGZ1bmN0aW9uIG9mIGludGVnZXIgb3JkZXIgbiBvZiB4XG5cbiAgLXEgIC0tcXVpZXQgICAgICAgIGRvbid0IHByaW50IHZlcnNpb24gYW5kIGNvcHlyaWdodFxuICAtcyAgLS1zdGFuZGFyZCAgICAgZXJyb3IgaWYgYW55IG5vbi1QT1NJWCBleHRlbnNpb25zIGFyZSB1c2VkXG4gIC13ICAtLXdhcm4gICAgICAgICB3YXJuIGlmIGFueSBub24tUE9TSVggZXh0ZW5zaW9ucyBhcmUgdXNlZCIKKworI2RlZmluZSBIRUxQX2FycGluZyAidXNhZ2U6IGFycGluZyBbLWZxYkRVQV0gWy1jIENOVF0gWy13IFRJTUVPVVRdIFstSSBJRkFDRV0gWy1zIFNSQ19JUF0gRFNUX0lQXG5cblNlbmQgQVJQIHJlcXVlc3RzL3JlcGxpZXNcblxuLWYgICAgICAgICBRdWl0IG9uIGZpcnN0IEFSUCByZXBseVxuLXEgICAgICAgICBRdWlldFxuLWIgICAgICAgICBLZWVwIGJyb2FkY2FzdGluZywgZG9uJ3QgZ28gdW5pY2FzdFxuLUQgICAgICAgICBEdXBsaWNhdGVkIGFkZHJlc3MgZGV0ZWN0aW9uIG1vZGVcbi1VICAgICAgICAgVW5zb2xpY2l0ZWQgQVJQIG1vZGUsIHVwZGF0ZSB5b3VyIG5laWdoYm9yc1xuLUEgICAgICAgICBBUlAgYW5zd2VyIG1vZGUsIHVwZGF0ZSB5b3VyIG5laWdoYm9yc1xuLWMgTiAgICAgICBTdG9wIGFmdGVyIHNlbmRpbmcgTiBBUlAgcmVxdWVzdHNcbi13IFRJTUVPVVQgVGltZSB0byB3YWl0IGZvciBBUlAgcmVwbHksIHNlY29uZHNcbi1JIElGQUNFICAgSW50ZXJmYWNlIHRvIHVzZSAoZGVmYXVsdCBldGgwKVxuLXMgU1JDX0lQICBTZW5kZXIgSVAgYWRkcmVzc1xuRFNUX0lQICAgICBUYXJnZXQgSVAgYWRkcmVzcyIKKworI2RlZmluZSBIRUxQX2FycCAidXNhZ2U6IGFycFxuWy12bl0gWy1IIEhXVFlQRV0gWy1pIElGXSAtYSBbSE9TVE5BTUVdXG5bLXZdICAgICAgICAgICAgICBbLWkgSUZdIC1kIEhPU1ROQU1FIFtwdWJdXG5bLXZdICBbLUggSFdUWVBFXSBbLWkgSUZdIC1zIEhPU1ROQU1FIEhXQUREUiBbdGVtcF1cblstdl0gIFstSCBIV1RZUEVdIFstaSBJRl0gLXMgSE9TVE5BTUUgSFdBRERSIFtuZXRtYXNrIE1BU0tdIHB1YlxuWy12XSAgWy1IIEhXVFlQRV0gWy1pIElGXSAtRHMgSE9TVE5BTUUgSUZBQ0UgW25ldG1hc2sgTUFTS10gcHViXG5cbk1hbmlwdWxhdGUgQVJQIGNhY2hlLlxuXG4tYQlEaXNwbGF5IChhbGwpIGhvc3RzXG4tcwlTZXQgbmV3IEFSUCBlbnRyeVxuLWQJRGVsZXRlIGEgc3BlY2lmaWVkIGVudHJ5XG4tdglWZXJib3NlXG4tbglEb24ndCByZXNvbHZlIG5hbWVzXG4taSBJRkFDRQlOZXR3b3JrIGludGVyZmFjZVxuLUQJUmVhZCA8aHdhZGRyPiBmcm9tIGdpdmVuIGRldmljZVxuLUEsLXAgQUYJUHJvdG9jb2wgZmFtaWx5XG4tSCBIV1RZUEUJSGFyZHdhcmUgYWRkcmVzcyB0eXBlIgorCisjZGVmaW5lIEhFTFBfeGFyZ3MgInVzYWdlOiB4YXJncyBbLTBQcHJ0XSBbLXNuRSBTVFJdIENPTU1BTkQuLi5cblxuUnVuIGNvbW1hbmQgbGluZSBvbmUgb3IgbW9yZSB0aW1lcywgYXBwZW5kaW5nIGFyZ3VtZW50cyBmcm9tIHN0ZGluLlxuXG5JZiBDT01NQU5EIGV4aXRzIHdpdGggMjU1LCBkb24ndCBsYXVuY2ggYW5vdGhlciBldmVuIGlmIGFyZ3VtZW50cyByZW1haW4uXG5cbi0wCUVhY2ggYXJndW1lbnQgaXMgTlVMTCB0ZXJtaW5hdGVkLCBubyB3aGl0ZXNwYWNlIG9yIHF1b3RlIHByb2Nlc3Npbmdcbi1FCVN0b3AgYXQgbGluZSBtYXRjaGluZyBzdHJpbmdcbi1uCU1heCBudW1iZXIgb2YgYXJndW1lbnRzIHBlciBjb21tYW5kXG4tbwlPcGVuIHR0eSBmb3IgQ09NTUFORCdzIHN0ZGluIChkZWZhdWx0IC9kZXYvbnVsbClcbi1QCVBhcmFsbGVsIHByb2Nlc3NlcyAoZGVmYXVsdCAxKVxuLXAJUHJvbXB0IGZvciB5L24gZnJvbSB0dHkgYmVmb3JlIHJ1bm5pbmcgZWFjaCBjb21tYW5kXG4tcglEb24ndCBydW4gd2l0aCBlbXB0eSBpbnB1dCAob3RoZXJ3aXNlIGFsd2F5cyBydW4gY29tbWFuZCBvbmNlKVxuLXMJU2l6ZSBpbiBieXRlcyBwZXIgY29tbWFuZCBsaW5lXG4tdAlUcmFjZSwgcHJpbnQgY29tbWFuZCBsaW5lIHRvIHN0ZGVyciIKKworI2RlZmluZSBIRUxQX3dobyAidXNhZ2U6IHdob1xuXG5QcmludCBpbmZvcm1hdGlvbiBhYm91dCBsb2dnZWQgaW4gdXNlcnMuIgorCisjZGVmaW5lIEhFTFBfd2MgInVzYWdlOiB3YyBbLUxsd2NtXSBbRklMRS4uLl1cblxuQ291bnQgbGluZXMsIHdvcmRzLCBhbmQgY2hhcmFjdGVycyBpbiBpbnB1dC5cblxuLUwJU2hvdyBtYXggbGluZSBsZW5ndGhcbi1sCVNob3cgbGluZXNcbi13CVNob3cgd29yZHNcbi1jCVNob3cgYnl0ZXNcbi1tCVNob3cgY2hhcmFjdGVyc1xuXG5CeSBkZWZhdWx0IG91dHB1dHMgbGluZXMsIHdvcmRzLCBieXRlcywgYW5kIGZpbGVuYW1lIGZvciBlYWNoXG5hcmd1bWVudCAob3IgZnJvbSBzdGRpbiBpZiBub25lKS4gRGlzcGxheXMgb25seSBlaXRoZXIgYnl0ZXNcbm9yIGNoYXJhY3RlcnMuIgorCisjZGVmaW5lIEhFTFBfdXVlbmNvZGUgInVzYWdlOiB1dWVuY29kZSBbLW1dIFtJTkZJTEVdIEVOQ09ERV9GSUxFTkFNRVxuXG5VdWVuY29kZSBzdGRpbiAob3IgSU5GSUxFKSB0byBzdGRvdXQsIHdpdGggRU5DT0RFX0ZJTEVOQU1FIGluIHRoZSBvdXRwdXQuXG5cbi1tCUJhc2U2NCIKKworI2RlZmluZSBIRUxQX3V1ZGVjb2RlICJ1c2FnZTogdXVkZWNvZGUgWy1vIE9VVEZJTEVdIFtJTkZJTEVdXG5cbkRlY29kZSBmaWxlIGZyb20gc3RkaW4gKG9yIElORklMRSkuXG5cbi1vCVdyaXRlIHRvIE9VVEZJTEUgaW5zdGVhZCBvZiBmaWxlbmFtZSBpbiBoZWFkZXIiCisKKyNkZWZpbmUgSEVMUF91bmxpbmsgInVzYWdlOiB1bmxpbmsgRklMRVxuXG5EZWxldGUgb25lIGZpbGUuIgorCisjZGVmaW5lIEhFTFBfdW5pcSAidXNhZ2U6IHVuaXEgWy1jZHVpel0gWy13IE1BWENIQVJTXSBbLWYgRklFTERTXSBbLXMgQ0hBUl0gW0lORklMRSBbT1VURklMRV1dXG5cblJlcG9ydCBvciBmaWx0ZXIgb3V0IHJlcGVhdGVkIGxpbmVzIGluIGEgZmlsZVxuXG4tYwlTaG93IGNvdW50cyBiZWZvcmUgZWFjaCBsaW5lXG4tZAlTaG93IG9ubHkgbGluZXMgdGhhdCBhcmUgcmVwZWF0ZWRcbi11CVNob3cgb25seSBsaW5lcyB0aGF0IGFyZSB1bmlxdWVcbi1pCUlnbm9yZSBjYXNlIHdoZW4gY29tcGFyaW5nIGxpbmVzXG4teglMaW5lcyBlbmQgd2l0aCBcXDAgbm90IFxcblxuLXcJQ29tcGFyZSBtYXhpbXVtIFggY2hhcnMgcGVyIGxpbmVcbi1mCUlnbm9yZSBmaXJzdCBYIGZpZWxkc1xuLXMJSWdub3JlIGZpcnN0IFggY2hhcnMiCisKKyNkZWZpbmUgSEVMUF91bmFtZSAidXNhZ2U6IHVuYW1lIFstYXNucnZtb11cblxuUHJpbnQgc3lzdGVtIGluZm9ybWF0aW9uLlxuXG4tcwlTeXN0ZW0gbmFtZVxuLW4JTmV0d29yayAoZG9tYWluKSBuYW1lXG4tcglLZXJuZWwgUmVsZWFzZSBudW1iZXJcbi12CUtlcm5lbCBWZXJzaW9uXG4tbQlNYWNoaW5lIChoYXJkd2FyZSkgbmFtZVxuLWEJQWxsIG9mIHRoZSBhYm92ZSAoaW4gb3JkZXIpXG5cbi1vCVVzZXJzcGFjZSB0eXBlIgorCisjZGVmaW5lIEhFTFBfYXJjaCAidXNhZ2U6IGFyY2hcblxuUHJpbnQgbWFjaGluZSAoaGFyZHdhcmUpIG5hbWUsIHNhbWUgYXMgdW5hbWUgLW0uIgorCisjZGVmaW5lIEhFTFBfdWxpbWl0ICJ1c2FnZTogdWxpbWl0IFstUCBQSURdIFstU0hSYWNkZWZpbG1ucHFyc3R1dl0gW0xJTUlUXVxuXG5QcmludCBvciBzZXQgcmVzb3VyY2UgbGltaXRzIGZvciBwcm9jZXNzIG51bWJlciBQSUQuIElmIG5vIExJTUlUIHNwZWNpZmllZFxuKG9yIHJlYWQtb25seSAtYXAgc2VsZWN0ZWQpIGRpc3BsYXkgY3VycmVudCB2YWx1ZSAoc2l6ZXMgaW4gYnl0ZXMpLlxuRGVmYXVsdCBpcyB1bGltaXQgLVAgJFBQSUQgLVNmXCIgKHNob3cgc29mdCBmaWxlc2l6ZSBvZiB5b3VyIHNoZWxsKS5cblxuLVAgIFBJRCB0byBhZmZlY3QgKGRlZmF1bHQgJFBQSUQpICAtYSAgU2hvdyBhbGwgbGltaXRzXG4tUyAgU2V0L3Nob3cgc29mdCBsaW1pdCAgICAgICAgICAgIC1IICBTZXQvc2hvdyBoYXJkIChtYXhpbXVtKSBsaW1pdFxuXG4tYyAgQ29yZSBmaWxlIHNpemUgKGJsb2NrcykgICAgICAgIC1kICBQcm9jZXNzIGRhdGEgc2VnbWVudCAoS2lCKVxuLWUgIE1heCBzY2hlZHVsaW5nIHByaW9yaXR5ICAgICAgICAtZiAgRmlsZSBzaXplIChLaUIpXG4taSAgUGVuZGluZyBzaWduYWwgY291bnQgICAgICAgICAgIC1sICBMb2NrZWQgbWVtb3J5IChLaUIpXG4tbSAgUmVzaWRlbnQgU2V0IFNpemUgKEtpQikgICAgICAgIC1uICBOdW1iZXIgb2Ygb3BlbiBmaWxlc1xuLXAgIFBpcGUgYnVmZmVyICg1MTIgYnl0ZXMpICAgICAgICAtcSAgUE9TSVggbWVzc2FnZSBxdWV1ZXNcbi1yICBNYXggcmVhbHRpbWUgcHJpb3JpdHkgICAgICAgICAgLVIgIFJlYWx0aW1lIGxhdGVuY3kgKHVzKVxuLXMgIFN0YWNrIHNpemUgKEtpQikgICAgICAgICAgICAgICAtdCAgVG90YWwgQ1BVIHRpbWUgKHMpXG4tdSAgTWF4aW11bSBwcm9jZXNzZXMgKHRoaXMgVUlEKSAgIC12ICBWaXJ0dWFsIG1lbW9yeSBzaXplIChLaUIpIgorCisjZGVmaW5lIEhFTFBfdHR5ICJ1c2FnZTogdHR5IFstc11cblxuU2hvdyBmaWxlbmFtZSBvZiB0ZXJtaW5hbCBjb25uZWN0ZWQgdG8gc3RkaW4uIElmIG5vbmUgcHJpbnQgXCJub3QgYSB0dHlcIlxuYW5kIGV4aXQgd2l0aCBub256ZXJvIHN0YXR1cy5cblxuLXMJU2lsZW50LCBleGl0IGNvZGUgb25seSIKKworI2RlZmluZSBIRUxQX3Rzb3J0ICJ1c2FnZTogdHNvcnQgW0ZJTEVdXG5cblRvcG9sb2dpY2FsIHNvcnQgZGVwZW5kZW5jeSByZXNvbHZlci5cblxuUmVhZCBwYWlycyBvZiBpbnB1dCBzdHJpbmdzIGluZGljYXRpbmcgYmVmb3JlL2FmdGVyIGRlcGVuZGVuY3kgcmVsYXRpb25zaGlwc1xuYW5kIGZpbmQgYW4gb3JkZXJpbmcgdGhhdCByZXNwZWN0cyBhbGwgZGVwZW5kZW5jaWVzLiBPbiBzdWNjZXNzIG91dHB1dCBlYWNoXG5zdHJpbmcgb25jZSB0byBzdGRvdXQsIG9uIGZhaWx1cmUgcHJpbnQgZXJyb3IgYW5kIG91dHB1dCBjeWNsZSBwYWlycy4iCisKKyNkZWZpbmUgSEVMUF90cnVlICJ1c2FnZTogdHJ1ZVxuXG5SZXR1cm4gemVyby4iCisKKyNkZWZpbmUgSEVMUF90b3VjaCAidXNhZ2U6IHRvdWNoIFstYW1jaF0gWy1kIERBVEVdIFstdCBUSU1FXSBbLXIgRklMRV0gRklMRS4uLlxuXG5VcGRhdGUgdGhlIGFjY2VzcyBhbmQgbW9kaWZpY2F0aW9uIHRpbWVzIG9mIGVhY2ggRklMRSB0byB0aGUgY3VycmVudCB0aW1lLlxuXG4tYQlDaGFuZ2UgYWNjZXNzIHRpbWVcbi1tCUNoYW5nZSBtb2RpZmljYXRpb24gdGltZVxuLWMJRG9uJ3QgY3JlYXRlIGZpbGVcbi1oCUNoYW5nZSBzeW1saW5rXG4tZAlTZXQgdGltZSB0byBEQVRFIChpbiBZWVlZLU1NLUREVGhoOm1tOlNTWy5mcmFjXVt0el0gZm9ybWF0KVxuLXQJU2V0IHRpbWUgdG8gVElNRSAoaW4gW1tDQ11ZWV1NTUREaGhtbVsuc3NdW2ZyYWNdIGZvcm1hdClcbi1yCVNldCB0aW1lIHNhbWUgYXMgcmVmZXJlbmNlIEZJTEUiCisKKyNkZWZpbmUgSEVMUF90aW1lICJ1c2FnZTogdGltZSBbLXB2XSBDT01NQU5ELi4uXG5cblJ1biBjb21tYW5kIGxpbmUgYW5kIHJlcG9ydCByZWFsLCB1c2VyLCBhbmQgc3lzdGVtIHRpbWUgZWxhcHNlZCBpbiBzZWNvbmRzLlxuKHJlYWwgPSBjbG9jayBvbiB0aGUgd2FsbCwgdXNlciA9IGNwdSB1c2VkIGJ5IGNvbW1hbmQncyBjb2RlLFxuc3lzdGVtID0gY3B1IHVzZWQgYnkgT1Mgb24gYmVoYWxmIG9mIGNvbW1hbmQuKVxuXG4tcAlQT1NJWCBmb3JtYXQgb3V0cHV0XG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfdGVzdCAidXNhZ2U6IHRlc3QgWy1iY2RlZmdoa0xwclNzdXd4IFBBVEhdIFstbnogU1RSSU5HXSBbLXQgRkRdIFtYID8/IFldXG5cblJldHVybiB0cnVlIG9yIGZhbHNlIGJ5IHBlcmZvcm1pbmcgdGVzdHMuIE5vIGFyZ3VtZW50cyBpcyBmYWxzZSwgb25lIGFyZ3VtZW50XG5pcyB0cnVlIGlmIG5vdCBlbXB0eSBzdHJpbmcuXG5cbi0tLSBUZXN0cyB3aXRoIGEgc2luZ2xlIGFyZ3VtZW50IChhZnRlciB0aGUgb3B0aW9uKTpcblBBVEggaXMvaGFzOlxuICAtYiAgYmxvY2sgZGV2aWNlICAgLWYgIHJlZ3VsYXIgZmlsZSAgIC1wICBmaWZvICAgICAgICAgICAtdSAgc2V0dWlkIGJpdFxuICAtYyAgY2hhciBkZXZpY2UgICAgLWcgIHNldGdpZCAgICAgICAgIC1yICByZWFkYWJsZSAgICAgICAtdyAgd3JpdGFibGVcbiAgLWQgIGRpcmVjdG9yeSAgICAgIC1oICBzeW1saW5rICAgICAgICAtUyAgc29ja2V0ICAgICAgICAgLXggIGV4ZWN1dGFibGVcbiAgLWUgIGV4aXN0cyAgICAgICAgIC1MICBzeW1saW5rICAgICAgICAtcyAgbm9uemVybyBzaXplICAgLWsgIHN0aWNreSBiaXRcblNUUklORyBpczpcbiAgLW4gIG5vbnplcm8gc2l6ZSAgIC16ICB6ZXJvIHNpemVcbkZEIChpbnRlZ2VyIGZpbGUgZGVzY3JpcHRvcikgaXM6XG4gIC10ICBhIFRUWVxuXG4tLS0gVGVzdHMgd2l0aCBvbmUgYXJndW1lbnQgb24gZWFjaCBzaWRlIG9mIGFuIG9wZXJhdG9yOlxuVHdvIHN0cmluZ3M6XG4gID0gIGFyZSBpZGVudGljYWwgICAhPSAgZGlmZmVyICAgICAgICAgPX4gIHN0cmluZyBtYXRjaGVzIHJlZ2V4XG5BbHBoYWJldGljYWwgc29ydDpcbiAgPCAgZmlyc3QgaXMgbG93ZXIgID4gICBmaXJzdCBoaWdoZXJcblR3byBpbnRlZ2VyczpcbiAgLWVxICBlcXVhbCAgICAgICAgIC1ndCAgZmlyc3QgPiBzZWNvbmQgICAgLWx0ICBmaXJzdCA8IHNlY29uZFxuICAtbmUgIG5vdCBlcXVhbCAgICAgLWdlICBmaXJzdCA+PSBzZWNvbmQgICAtbGUgIGZpcnN0IDw9IHNlY29uZFxuXG4tLS0gTW9kaWZ5IG9yIGNvbWJpbmUgdGVzdHM6XG4gICEgRVhQUiAgICAgbm90IChzd2FwIHRydWUvZmFsc2UpICAgRVhQUiAtYSBFWFBSICAgIGFuZCAoYXJlIGJvdGggdHJ1ZSlcbiAgKCBFWFBSICkgICBldmFsdWF0ZSB0aGlzIGZpcnN0ICAgICBFWFBSIC1vIEVYUFIgICAgb3IgKGlzIGVpdGhlciB0cnVlKSIKKworI2RlZmluZSBIRUxQX3RlZSAidXNhZ2U6IHRlZSBbLWFpXSBbRklMRS4uLl1cblxuQ29weSBzdGRpbiB0byBlYWNoIGxpc3RlZCBmaWxlLCBhbmQgYWxzbyB0byBzdGRvdXQuXG5GaWxlbmFtZSBcIi1cIiBpcyBhIHN5bm9ueW0gZm9yIHN0ZG91dC5cblxuLWEJQXBwZW5kIHRvIGZpbGVzXG4taQlJZ25vcmUgU0lHSU5UIgorCisjZGVmaW5lIEhFTFBfdGFyICJ1c2FnZTogdGFyIFstY3h0XSBbLWZ2b2htamtPU10gWy1YVENmIE5BTUVdIFstLXNlbGludXhdIFtGSUxFLi4uXVxuXG5DcmVhdGUsIGV4dHJhY3QsIG9yIGxpc3QgZmlsZXMgaW4gYSAudGFyIChvciBjb21wcmVzc2VkIHQ/eikgZmlsZS5cblxuT3B0aW9uczpcbmMgIENyZWF0ZSAgICAgICAgICAgICAgICB4ICBFeHRyYWN0ICAgICAgICAgICAgICAgdCAgVGVzdCAobGlzdClcbmYgIHRhciBGSUxFIChkZWZhdWx0IC0pICBDICBDaGFuZ2UgdG8gRElSIGZpcnN0ICAgdiAgVmVyYm9zZSBkaXNwbGF5XG5KICB4eiBjb21wcmVzc2lvbiAgICAgICAgaiAgYnppcDIgY29tcHJlc3Npb24gICAgIHogIGd6aXAgY29tcHJlc3Npb25cbm8gIElnbm9yZSBvd25lciAgICAgICAgICBoICBGb2xsb3cgc3ltbGlua3MgICAgICAgbSAgSWdub3JlIG10aW1lXG5PICBFeHRyYWN0IHRvIHN0ZG91dCAgICAgWCAgZXhjbHVkZSBuYW1lcyBpbiBGSUxFIFQgIGluY2x1ZGUgbmFtZXMgaW4gRklMRVxucyAgU29ydCBkaXJzICgtLXNvcnQpXG5cbi0tZXhjbHVkZSAgICAgICAgRklMRU5BTUUgdG8gZXhjbHVkZSAgLS1mdWxsLXRpbWUgICAgICAgICBTaG93IHNlY29uZHMgd2l0aCAtdHZcbi0tbW9kZSBNT0RFICAgICAgQWRqdXN0IHBlcm1pc3Npb25zICAgLS1vd25lciBOQU1FWzpVSURdICBTZXQgZmlsZSBvd25lcnNoaXBcbi0tbXRpbWUgVElNRSAgICAgT3ZlcnJpZGUgdGltZXN0YW1wcyAgLS1ncm91cCBOQU1FWzpHSURdICBTZXQgZmlsZSBncm91cFxuLS1zcGFyc2UgICAgICAgICBSZWNvcmQgc3BhcnNlIGZpbGVzICAtLXNlbGludXggICAgICAgICAgIFNhdmUvcmVzdG9yZSBsYWJlbHNcbi0tcmVzdHJpY3QgICAgICAgQWxsIHVuZGVyIG9uZSBkaXIgICAgLS1uby1yZWN1cnNpb24gICAgICBTa2lwIGRpciBjb250ZW50c1xuLS1udW1lcmljLW93bmVyICBVc2UgbnVtZXJpYyB1aWQvZ2lkLCBub3QgdXNlci9ncm91cCBuYW1lc1xuLS1udWxsICAgICAgICAgICBGaWxlbmFtZXMgaW4gLVQgRklMRSBhcmUgbnVsbC1zZXBhcmF0ZWQsIG5vdCBuZXdsaW5lXG4tLXN0cmlwLWNvbXBvbmVudHMgTlVNICBJZ25vcmUgZmlyc3QgTlVNIGRpcmVjdG9yeSBjb21wb25lbnRzIHdoZW4gZXh0cmFjdGluZ1xuLS14Zm9ybT1TRUQgICAgICBNb2RpZnkgZmlsZW5hbWVzIHZpYSBTRUQgZXhwcmVzc2lvbiAoYWxhIHMvZmluZC9yZXBsYWNlL2cpXG4tSSBQUk9HICAgICAgICAgIEZpbHRlciB0aHJvdWdoIFBST0cgdG8gY29tcHJlc3Mgb3IgUFJPRyAtZCB0byBkZWNvbXByZXNzXG5cbkZpbGVuYW1lIGZpbHRlciB0eXBlcy4gQ3JlYXRlIGNvbW1hbmQgbGluZSBhcmdzIGFyZW4ndCBmaWx0ZXJlZCwgZXh0cmFjdFxuZGVmYXVsdHMgdG8gLS1hbmNob3JlZCwgLS1leGNsdWRlIGRlZmF1bHRzIHRvIC0td2lsZGNhcmRzLW1hdGNoLXNsYXNoLFxudXNlIG5vLSBwcmVmaXggdG8gZGlzYWJsZTpcblxuLS1hbmNob3JlZCAgTWF0Y2ggbmFtZSBub3QgcGF0aCAgICAgICAtLWlnbm9yZS1jYXNlICAgICAgIENhc2UgaW5zZW5zaXRpdmVcbi0td2lsZGNhcmRzIEV4cGFuZCAqP1tdIGxpa2Ugc2hlbGwgICAgLS13aWxkY2FyZHMtbWF0Y2gtc2xhc2giCisKKyNkZWZpbmUgSEVMUF90YWlsICJ1c2FnZTogdGFpbCBbLW58YyBOVU1CRVJdIFstZnxGXSBbLXMgU0VDT05EU10gW0ZJTEUuLi5dXG5cbkNvcHkgbGFzdCBsaW5lcyBmcm9tIGZpbGVzIHRvIHN0ZG91dC4gSWYgbm8gZmlsZXMgbGlzdGVkLCBjb3B5IGZyb21cbnN0ZGluLiBGaWxlbmFtZSBcIi1cIiBpcyBhIHN5bm9ueW0gZm9yIHN0ZGluLlxuXG4tbglPdXRwdXQgdGhlIGxhc3QgTlVNQkVSIGxpbmVzIChkZWZhdWx0IDEwKSwgK1ggY291bnRzIGZyb20gc3RhcnRcbi1jCU91dHB1dCB0aGUgbGFzdCBOVU1CRVIgYnl0ZXMsICtOVU1CRVIgY291bnRzIGZyb20gc3RhcnRcbi1mCUZvbGxvdyBGSUxFKHMpIGJ5IGRlc2NyaXB0b3IsIHdhaXRpbmcgZm9yIG1vcmUgZGF0YSB0byBiZSBhcHBlbmRlZFxuLUYJRm9sbG93IEZJTEUocykgYnkgZmlsZW5hbWUsIHdhaXRpbmcgZm9yIG1vcmUgZGF0YSwgYW5kIHJldHJ5aW5nXG4tcwlVc2VkIHdpdGggLUYsIHNsZWVwIFNFQ09ORFMgYmV0d2VlbiByZXRyaWVzIChkZWZhdWx0IDEpIgorCisjZGVmaW5lIEhFTFBfc3RyaW5ncyAidXNhZ2U6IHN0cmluZ3MgWy1mb10gWy10IG94ZF0gWy1uIExFTl0gW0ZJTEUuLi5dXG5cbkRpc3BsYXkgcHJpbnRhYmxlIHN0cmluZ3MgaW4gYSBiaW5hcnkgZmlsZVxuXG4tZglTaG93IGZpbGVuYW1lXG4tbglBdCBsZWFzdCBMRU4gY2hhcmFjdGVycyBmb3JtIGEgc3RyaW5nIChkZWZhdWx0IDQpXG4tbwlTaG93IG9mZnNldCAoYWxhIC10IGQpXG4tdAlTaG93IG9mZnNldCB0eXBlIChvPW9jdGFsLCBkPWRlY2ltYWwsIHg9aGV4YWRlY2ltYWwpIgorCisjZGVmaW5lIEhFTFBfc3BsaXQgInVzYWdlOiBzcGxpdCBbLWEgU1VGRklYX0xFTl0gWy1iIEJZVEVTXSBbLWwgTElORVNdIFstbiBQQVJUU10gW0lOUFVUIFtPVVRQVVRdXVxuXG5Db3B5IElOUFVUIChvciBzdGRpbikgZGF0YSB0byBhIHNlcmllcyBvZiBPVVRQVVQgKG9yIFwieFwiKSBmaWxlcyB3aXRoXG5hbHBoYWJldGljYWxseSBpbmNyZWFzaW5nIHN1ZmZpeCAoYWEsIGFiLCBhYy4uLiBheiwgYmEsIGJiLi4uKS5cblxuLWEJU3VmZml4IGxlbmd0aCAoZGVmYXVsdCAyKVxuLWIJQllURVMvZmlsZSAoMTAsIDEwaywgMTBtLCAxMGcuLi4pXG4tbAlMSU5FUy9maWxlIChkZWZhdWx0IDEwMDApXG4tbglQQVJUUyBtYW55IGVxdWFsIGxlbmd0aCBmaWxlcyIKKworI2RlZmluZSBIRUxQX3NvcnQgInVzYWdlOiBzb3J0IFstQ01WYmNkZmdpbnJzdXh6XSBbRklMRS4uLl0gWy1rI1ssI1t4XV0gWy10IFhdXSBbLW8gRklMRV1cblxuU29ydCBhbGwgbGluZXMgb2YgdGV4dCBmcm9tIGlucHV0IGZpbGVzIChvciBzdGRpbikgdG8gc3Rkb3V0LlxuLWcJR2VuZXJhbCBudW1lcmljIHNvcnQgKGRvdWJsZSBwcmVjaXNpb24gd2l0aCBuYW4gYW5kIGluZilcbi1uCU51bWVyaWMgb3JkZXIgKGluc3RlYWQgb2YgYWxwaGFiZXRpY2FsKVxuLXIJUmV2ZXJzZVxuLXUJVW5pcXVlIGxpbmVzIG9ubHlcblxuLWIJSWdub3JlIGxlYWRpbmcgYmxhbmtzIChvciB0cmFpbGluZyBibGFua3MgaW4gc2Vjb25kIHBhcnQgb2Yga2V5KVxuLUMJQ2hlY2sgd2hldGhlciBpbnB1dCBpcyBzb3J0ZWRcbi1jCVdhcm4gaWYgaW5wdXQgaXMgdW5zb3J0ZWRcbi1kCURpY3Rpb25hcnkgb3JkZXIgKHVzZSBhbHBoYW51bWVyaWMgYW5kIHdoaXRlc3BhY2UgY2hhcnMgb25seSlcbi1mCUZvcmNlIHVwcGVyY2FzZSAoY2FzZSBpbnNlbnNpdGl2ZSBzb3J0KVxuLWkJSWdub3JlIG5vbnByaW50aW5nIGNoYXJhY3RlcnNcbi1rCVNvcnQgYnkgXCJrZXlcIiAoc2VlIGJlbG93KVxuLU0JTW9udGggc29ydCAoamFuLCBmZWIsIGV0Yylcbi1vCU91dHB1dCB0byBGSUxFIGluc3RlYWQgb2Ygc3Rkb3V0XG4tcwlTa2lwIGZhbGxiYWNrIHNvcnQgKG9ubHkgc29ydCB3aXRoIGtleXMpXG4tdAlVc2UgYSBrZXkgc2VwYXJhdG9yIG90aGVyIHRoYW4gd2hpdGVzcGFjZVxuLXgJSGV4YWRlY2ltYWwgbnVtZXJpY2FsIHNvcnRcbi1WCVZlcnNpb24gbnVtYmVycyAobmFtZS0xLjIzNC1yYzYuNWIudGd6KVxuLXoJWmVybyAobnVsbCkgdGVybWluYXRlZCBsaW5lc1xuXG5Tb3J0aW5nIGJ5IGtleSBsb29rcyBhdCBhIHN1YnNldCBvZiB0aGUgd29yZHMgb24gZWFjaCBsaW5lLiAtazIgdXNlcyB0aGVcbnNlY29uZCB3b3JkIHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUsIC1rMiwyIGxvb2tzIGF0IG9ubHkgdGhlIHNlY29uZCB3b3JkLFxuLWsyLDQgbG9va3MgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHNlY29uZCB0byB0aGUgZW5kIG9mIHRoZSBmb3VydGggd29yZC5cbi1rMi40LDUgc3RhcnRzIGZyb20gdGhlIGZvdXJ0aCBjaGFyYWN0ZXIgb2YgdGhlIHNlY29uZCB3b3JkLCB0byB0aGUgZW5kXG5vZiB0aGUgZmlmdGggd29yZC4gTmVnYXRpdmUgdmFsdWVzIGNvdW50IGZyb20gdGhlIGVuZC4gU3BlY2lmeWluZyBtdWx0aXBsZVxua2V5cyB1c2VzIHRoZSBsYXRlciBrZXlzIGFzIHRpZSBicmVha2VycywgaW4gb3JkZXIuIEEgdHlwZSBzcGVjaWZpZXJcbmFwcGVuZGVkIHRvIGEgc29ydCBrZXkgKHN1Y2ggYXMgLTIsMm4pIGFwcGxpZXMgb25seSB0byBzb3J0aW5nIHRoYXQga2V5LiIKKworI2RlZmluZSBIRUxQX3NsZWVwICJ1c2FnZTogc2xlZXAgRFVSQVRJT04uLi5cblxuV2FpdCBiZWZvcmUgZXhpdGluZy5cblxuRFVSQVRJT04gY2FuIGJlIGEgZGVjaW1hbCBmcmFjdGlvbi4gQW4gb3B0aW9uYWwgc3VmZml4IGNhbiBiZSBcIm1cIlxuKG1pbnV0ZXMpLCBcImhcIiAoaG91cnMpLCBcImRcIiAoZGF5cyksIG9yIFwic1wiIChzZWNvbmRzLCB0aGUgZGVmYXVsdCkuIgorCisjZGVmaW5lIEhFTFBfc2VkICJ1c2FnZTogc2VkIFstaW5yc3pFXSBbLWUgU0NSSVBUXS4uLnxTQ1JJUFQgWy1mIFNDUklQVF9GSUxFXS4uLiBbRklMRS4uLl1cblxuU3RyZWFtIGVkaXRvci4gQXBwbHkgZWRpdGluZyBTQ1JJUFRzIHRvIGxpbmVzIG9mIGlucHV0LlxuXG4tZQlBZGQgU0NSSVBUIHRvIGxpc3Rcbi1mCUFkZCBjb250ZW50cyBvZiBTQ1JJUFRfRklMRSB0byBsaXN0XG4taQlFZGl0IGVhY2ggZmlsZSBpbiBwbGFjZSAoLWlFWFQga2VlcHMgYmFja3VwIGZpbGUgd2l0aCBleHRlbnNpb24gRVhUKVxuLW4JTm8gZGVmYXVsdCBvdXRwdXQgKHVzZSB0aGUgcCBjb21tYW5kIHRvIG91dHB1dCBtYXRjaGVkIGxpbmVzKVxuLXIJVXNlIGV4dGVuZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBzeW50YXhcbi1FCVBPU0lYIGFsaWFzIGZvciAtclxuLXMJVHJlYXQgaW5wdXQgZmlsZXMgc2VwYXJhdGVseSAoaW1wbGllZCBieSAtaSlcbi16CVVzZSBcXDAgcmF0aGVyIHRoYW4gXFxuIGFzIGlucHV0IGxpbmUgc2VwYXJhdG9yXG5cbkEgU0NSSVBUIGlzIG9uZSBvciBtb3JlIENPTU1BTkRzIHNlcGFyYXRlZCBieSBuZXdsaW5lcyBvciBzZW1pY29sb25zLlxuQWxsIC1lIFNDUklQVHMgYW5kIC1mIFNDUklQVF9GSUxFIGNvbnRlbnRzIGFyZSBjb21iaW5lZCBpbiBvcmRlciBhcyBpZlxuc2VwYXJhdGVkIGJ5IG5ld2xpbmVzLiBJZiBubyAtZSBvciAtZiB0aGVuIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBTQ1JJUFQuXG5cbkNPTU1BTkRzIGFwcGx5IHRvIGV2ZXJ5IGxpbmUgdW5sZXNzIHByZWZpeGVkIHdpdGggYW4gQUREUkVTUyBvZiB0aGUgZm9ybTpcblxuICBbQUREUkVTU1ssQUREUkVTU11dWyFdQ09NTUFORFxuXG5BRERSRVNTIGlzIGEgbGluZSBudW1iZXIgKHN0YXJ0aW5nIGF0IDEpLCBhIC9SRUdVTEFSIEVYUFJFU1NJT04vLCBvciAkIGZvclxubGFzdCBsaW5lICgtcyBvciAtaSBtYWtlcyBpdCBsYXN0IGxpbmUgb2YgZWFjaCBmaWxlKS4gT25lIGFkZHJlc3MgbWF0Y2hlcyBvbmVcbmxpbmUsIEFERFJFU1MsQUREUkVTUyBtYXRjaGVzIGZyb20gZmlyc3QgdG8gc2Vjb25kIGluY2x1c2l2ZS4gVHdvIHJlZ2V4ZXMgY2FuXG5tYXRjaCBtdWx0aXBsZSByYW5nZXMuIEFERFJFU1MsK04gZW5kcyBOIGxpbmVzIGxhdGVyLiAhIGludmVydHMgdGhlIG1hdGNoLlxuXG5SRUdVTEFSIEVYUFJFU1NJT05TIHN0YXJ0IGFuZCBlbmQgd2l0aCB0aGUgc2FtZSBjaGFyYWN0ZXIgKGFueXRoaW5nIGJ1dFxuYmFja3NsYXNoIG9yIG5ld2xpbmUpLiBUbyB1c2UgdGhlIGRlbGltaXRlciBpbiB0aGUgcmVnZXggZXNjYXBlIGl0IHdpdGggYVxuYmFja3NsYXNoLCBhbmQgcHJpbnRmIGVzY2FwZXMgKFxcYWJjZWZucnR2IGFuZCBvY3RhbCwgaGV4LCBhbmQgdW5pY29kZSkgd29yay5cbkFuIGVtcHR5IHJlZ2V4IHJlcGVhdHMgdGhlIHByZXZpb3VzIG9uZS4gQUREUkVTUyByZWdleGVzIHJlcXVpcmUgYW55XG5maXJzdCBkZWxpbWl0ZXIgZXhjZXB0IC8gdG8gYmUgXFxlc2NhcGVkIHRvIGRpc3Rpbmd1aXNoIGl0IGZyb20gQ09NTUFORHMuXG5cblNlZCByZWFkcyBlYWNoIGxpbmUgb2YgaW5wdXQsIHByb2Nlc3NlcyBpdCwgYW5kIHdyaXRlcyBpdCBvdXQgb3IgZGlzY2FyZHMgaXRcbmJlZm9yZSByZWFkaW5nIHRoZSBuZXh0LiBTZWQgY2FuIHJlbWVtYmVyIG9uZSBhZGRpdGlvbmFsIGxpbmUgaW4gYSBzZXBhcmF0ZVxuYnVmZmVyICh0aGUgaCwgSCwgZywgRywgYW5kIHggY29tbWFuZHMpLCBhbmQgY2FuIHJlYWQgdGhlIG5leHQgbGluZSBvZiBpbnB1dFxuZWFybHkgKHRoZSBuIGFuZCBOIGNvbW1hbmRzKSwgYnV0IG90aGVyd2lzZSBvcGVyYXRlcyBvbiBpbmRpdmlkdWFsIGxpbmVzLlxuXG5FYWNoIENPTU1BTkQgc3RhcnRzIHdpdGggYSBzaW5nbGUgY2hhcmFjdGVyLiBDb21tYW5kcyB3aXRoIG5vIGFyZ3VtZW50cyBhcmU6XG5cbiAgISAgUnVuIHRoaXMgY29tbWFuZCB3aGVuIHRoZSBBRERSRVNTIF9kaWRuJ3RfIG1hdGNoLlxuICB7ICBTdGFydCBuZXcgY29tbWFuZCBibG9jaywgY29udGludWluZyB1bnRpbCBhIGNvcnJlc3BvbmRpbmcgXCJ9XCIuXG4gICAgIENvbW1hbmQgYmxvY2tzIG5lc3QgYW5kIGNhbiBoYXZlIEFERFJFU1NlcyBhcHBseWluZyB0byB0aGUgd2hvbGUgYmxvY2suXG4gIH0gIEVuZCBjb21tYW5kIGJsb2NrICh0aGlzIENPTU1BTkQgY2Fubm90IGhhdmUgYW4gYWRkcmVzcylcbiAgZCAgRGVsZXRlIHRoaXMgbGluZSBhbmQgbW92ZSBvbiB0byB0aGUgbmV4dCBvbmVcbiAgICAgKGlnbm9yZXMgcmVtYWluaW5nIENPTU1BTkRzKVxuICBEICBEZWxldGUgb25lIGxpbmUgb2YgaW5wdXQgYW5kIHJlc3RhcnQgY29tbWFuZCBTQ1JJUFQgKHNhbWUgYXMgXCJkXCJcbiAgICAgdW5sZXNzIHlvdSd2ZSBnbHVlZCBsaW5lcyB0b2dldGhlciB3aXRoIFwiTlwiIG9yIHNpbWlsYXIpXG4gIGcgIEdldCByZW1lbWJlcmVkIGxpbmUgKG92ZXJ3cml0aW5nIGN1cnJlbnQgbGluZSlcbiAgRyAgR2V0IHJlbWVtYmVyZWQgbGluZSAoYXBwZW5kaW5nIHRvIGN1cnJlbnQgbGluZSlcbiAgaCAgUmVtZW1iZXIgdGhpcyBsaW5lIChvdmVyd3JpdGluZyByZW1lbWJlcmVkIGxpbmUpXG4gIEggIFJlbWVtYmVyIHRoaXMgbGluZSAoYXBwZW5kaW5nIHRvIHJlbWVtYmVyZWQgbGluZSwgaWYgYW55KVxuICBsICBQcmludCBsaW5lIGVzY2FwaW5nIFxcYWJmcnR2biwgb2N0YWwgZXNjYXBlIG90aGVyIG5vbnByaW50bmcgY2hhcnMsXG4gICAgIHdyYXAgbGluZXMgdG8gdGVybWluYWwgd2lkdGggd2l0aCBcXCwgYXBwZW5kICQgdG8gZW5kIG9mIGxpbmUuXG4gIG4gIFByaW50IGRlZmF1bHQgb3V0cHV0IGFuZCByZWFkIG5leHQgbGluZSBvdmVyIGN1cnJlbnQgbGluZSAocXVpdCBhdCBFT0YpXG4gIE4gIEFwcGVuZCBcXG4gYW5kIG5leHQgbGluZSBvZiBpbnB1dCB0byB0aGlzIGxpbmUuIFF1aXQgYXQgRU9GIHdpdGhvdXRcbiAgICAgZGVmYXVsdCBvdXRwdXQuIEFkdmFuY2VzIGxpbmUgY291bnRlciBmb3IgQUREUkVTUyBhbmQgXCI9XCIuXG4gIHAgIFByaW50IHRoaXMgbGluZVxuICBQICBQcmludCB0aGlzIGxpbmUgdXAgdG8gZmlyc3QgbmV3bGluZSAoZnJvbSBcIk5cIilcbiAgcSAgUXVpdCAocHJpbnQgZGVmYXVsdCBvdXRwdXQsIG5vIG1vcmUgY29tbWFuZHMgcHJvY2Vzc2VkIG9yIGxpbmVzIHJlYWQpXG4gIHggIEV4Y2hhbmdlIHRoaXMgbGluZSB3aXRoIHJlbWVtYmVyZWQgbGluZSAob3ZlcndyaXRlIGluIGJvdGggZGlyZWN0aW9ucylcbiAgPSAgUHJpbnQgdGhlIGN1cnJlbnQgbGluZSBudW1iZXIgKHBsdXMgbmV3bGluZSlcbiAgIyAgQ29tbWVudCwgaWdub3JlcyByZXN0IG9mIHRoaXMgbGluZSBvZiBTQ1JJUFQgKHVudGlsIG5ld2xpbmUpXG5cbkNvbW1hbmRzIHRoYXQgdGFrZSBhbiBhcmd1bWVudDpcblxuICA6IExBQkVMICAgIFRhcmdldCBmb3IganVtcCBjb21tYW5kc1xuICBhIFRFWFQgICAgIEFwcGVuZCB0ZXh0IHRvIG91dHB1dCBiZWZvcmUgcmVhZGluZyBuZXh0IGxpbmVcbiAgYiBMQUJFTCAgICBCcmFuY2gsIGp1bXBzIHRvIDpMQUJFTCAod2l0aCBubyBMQUJFTCB0byBlbmQgb2YgU0NSSVBUKVxuICBjIFRFWFQgICAgIERlbGV0ZSBtYXRjaGluZyBBRERSRVNTIHJhbmdlIGFuZCBvdXRwdXQgVEVYVCBpbnN0ZWFkXG4gIGkgVEVYVCAgICAgSW5zZXJ0IHRleHQgKG91dHB1dCBpbW1lZGlhdGVseSlcbiAgciBGSUxFICAgICBBcHBlbmQgY29udGVudHMgb2YgRklMRSB0byBvdXRwdXQgYmVmb3JlIHJlYWRpbmcgbmV4dCBsaW5lLlxuICBzL1MvUi9GICAgIFNlYXJjaCBmb3IgcmVnZXggUyByZXBsYWNlIG1hdGNoIHdpdGggUiB1c2luZyBmbGFncyBGLiBEZWxpbWl0ZXJcbiAgICAgICAgICAgICBpcyBhbnl0aGluZyBidXQgXFxuIG9yIFxcLCBlc2NhcGUgd2l0aCBcXCB0byB1c2UgaW4gUyBvciBSLiBQcmludGZcbiAgICAgICAgICAgICBlc2NhcGVzIHdvcmsuIFVuZXNjYXBlZCAmIGluIFIgYmVjb21lcyBmdWxsIG1hdGNoZWQgdGV4dCwgXFwxXG4gICAgICAgICAgICAgdGhyb3VnaCBcXDkgPSBwYXJlbnRoZXRpY2FsIHN1YmV4cHJlc3Npb24gZnJvbSBTLiBcXCBhdCBlbmQgb2ZcbiAgICAgICAgICAgICBsaW5lIGFwcGVuZHMgbmV4dCBsaW5lIG9mIFNDUklQVC4gVGhlIGZsYWdzIGluIEYgYXJlOlxuICAgICAgICAgICAgIFswLTldICAgIEEgbnVtYmVyIE4sIHN1YnN0aXR1dGUgb25seSBOdGggbWF0Y2hcbiAgICAgICAgICAgICBnICAgICAgICBHbG9iYWwsIHN1YnN0aXR1dGUgYWxsIG1hdGNoZXNcbiAgICAgICAgICAgICBpL0kgICAgICBJZ25vcmUgY2FzZSB3aGVuIG1hdGNoaW5nXG4gICAgICAgICAgICAgcCAgICAgICAgUHJpbnQgcmVzdWx0aW5nIGxpbmUgd2hlbiBtYXRjaCBmb3VuZCBhbmQgcmVwbGFjZWRcbiAgICAgICAgICAgICB3IFtmaWxlXSBXcml0ZSAoYXBwZW5kKSBsaW5lIHRvIGZpbGUgd2hlbiBtYXRjaCByZXBsYWNlZFxuICB0IExBQkVMICAgIFRlc3QsIGp1bXAgaWYgcy8vLyBjb21tYW5kIG1hdGNoZWQgdGhpcyBsaW5lIHNpbmNlIGxhc3QgdGVzdFxuICBUIExBQkVMICAgIFRlc3QgZmFsc2UsIGp1bXAgdG8gOkxBQkVMIG9ubHkgaWYgbm8gcy8vLyBmb3VuZCBhIG1hdGNoXG4gIHcgRklMRSAgICAgV3JpdGUgKGFwcGVuZCkgbGluZSB0byBmaWxlXG4gIHkvb2xkL25ldy8gQ2hhbmdlIGVhY2ggY2hhcmFjdGVyIGluICdvbGQnIHRvIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVyXG4gICAgICAgICAgICAgaW4gJ25ldycgKHdpdGggc3RhbmRhcmQgYmFja3NsYXNoIGVzY2FwZXMsIGRlbGltaXRlciBjYW4gYmVcbiAgICAgICAgICAgICBhbnkgcmVwZWF0ZWQgY2hhcmFjdGVyIGV4Y2VwdCBcXCBvciBcXG4pXG5cblRoZSBURVhUIGFyZ3VtZW50cyAodG8gYSBjIGkpIG1heSBlbmQgd2l0aCBhbiB1bmVzY2FwZWQgXCJcXFwiIHRvIGFwcGVuZFxudGhlIG5leHQgbGluZSAobGVhZGluZyB3aGl0ZXNwYWNlIGlzIG5vdCBza2lwcGVkKSwgYW5kIHRyZWF0IFwiO1wiIGFzIGFcbmxpdGVyYWwgY2hhcmFjdGVyICh1c2UgXCJcXDtcIiBpbnN0ZWFkKS4iCisKKyNkZWZpbmUgSEVMUF9ybWRpciAidXNhZ2U6IHJtZGlyIFstcF0gW0RJUi4uLl1cblxuUmVtb3ZlIG9uZSBvciBtb3JlIGRpcmVjdG9yaWVzLlxuXG4tcAlSZW1vdmUgcGF0aFxuLS1pZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkJSWdub3JlIGZhaWx1cmVzIGNhdXNlZCBieSBub24tZW1wdHkgZGlyZWN0b3JpZXMiCisKKyNkZWZpbmUgSEVMUF9ybSAidXNhZ2U6IHJtIFstZmlScnZdIEZJTEUuLi5cblxuUmVtb3ZlIGVhY2ggYXJndW1lbnQgZnJvbSB0aGUgZmlsZXN5c3RlbS5cblxuLWYJRm9yY2U6IHJlbW92ZSB3aXRob3V0IGNvbmZpcm1hdGlvbiwgbm8gZXJyb3IgaWYgaXQgZG9lc24ndCBleGlzdFxuLWkJSW50ZXJhY3RpdmU6IHByb21wdCBmb3IgY29uZmlybWF0aW9uXG4tclIJUmVjdXJzaXZlOiByZW1vdmUgZGlyZWN0b3J5IGNvbnRlbnRzXG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfcmVuaWNlICJ1c2FnZTogcmVuaWNlIFstZ3B1XSAtbiBJTkNSRU1FTlQgSUQuLi5cblxuLWcJR3JvdXAgaWRzXG4tcAlQcm9jZXNzIGlkcyAoZGVmYXVsdClcbi11CVVzZXIgaWRzIgorCisjZGVmaW5lIEhFTFBfcHdkICJ1c2FnZTogcHdkIFstTHwtUF1cblxuUHJpbnQgd29ya2luZyAoY3VycmVudCkgZGlyZWN0b3J5LlxuXG4tTAlVc2Ugc2hlbGwncyBwYXRoIGZyb20gJFBXRCAod2hlbiBhcHBsaWNhYmxlKVxuLVAJUHJpbnQgY2Fub25pY2FsIGFic29sdXRlIHBhdGgiCisKKyNkZWZpbmUgSEVMUF9wa2lsbCAidXNhZ2U6IHBraWxsIFstZm5vdnhdIFstU0lHTkFMfC1sIFNJR05BTF0gW1BBVFRFUk5dIFstRyBHSUQsXSBbLWcgUEdSUCxdIFstUCBQUElELF0gWy1zIFNJRCxdIFstdCBURVJNLF0gWy1VIFVJRCxdIFstdSBFVUlELF1cblxuLWwJU2VuZCBTSUdOQUwgKGRlZmF1bHQgU0lHVEVSTSlcbi1WCVZlcmJvc2Vcbi1mCUNoZWNrIGZ1bGwgY29tbWFuZCBsaW5lIGZvciBQQVRURVJOXG4tRwlNYXRjaCByZWFsIEdyb3VwIElEKHMpXG4tZwlNYXRjaCBQcm9jZXNzIEdyb3VwKHMpICgwIGlzIGN1cnJlbnQgdXNlcilcbi1uCU5ld2VzdCBtYXRjaCBvbmx5XG4tbwlPbGRlc3QgbWF0Y2ggb25seVxuLVAJTWF0Y2ggUGFyZW50IFByb2Nlc3MgSUQocylcbi1zCU1hdGNoIFNlc3Npb24gSUQocykgKDAgZm9yIGN1cnJlbnQpXG4tdAlNYXRjaCBUZXJtaW5hbChzKVxuLVUJTWF0Y2ggcmVhbCBVc2VyIElEKHMpXG4tdQlNYXRjaCBlZmZlY3RpdmUgVXNlciBJRChzKVxuLXYJTmVnYXRlIHRoZSBtYXRjaFxuLXgJTWF0Y2ggd2hvbGUgY29tbWFuZCAobm90IHN1YnN0cmluZykiCisKKyNkZWZpbmUgSEVMUF9wZ3JlcCAidXNhZ2U6IHBncmVwIFstY2xmbm92eF0gWy1kIERFTElNXSBbLUwgU0lHTkFMXSBbUEFUVEVSTl0gWy1HIEdJRCxdIFstZyBQR1JQLF0gWy1QIFBQSUQsXSBbLXMgU0lELF0gWy10IFRFUk0sXSBbLVUgVUlELF0gWy11IEVVSUQsXVxuXG5TZWFyY2ggZm9yIHByb2Nlc3MoZXMpLiBQQVRURVJOIGlzIGFuIGV4dGVuZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBjaGVja2VkXG5hZ2FpbnN0IGNvbW1hbmQgbmFtZXMuXG5cbi1jCVNob3cgb25seSBjb3VudCBvZiBtYXRjaGVzXG4tZAlVc2UgREVMSU0gaW5zdGVhZCBvZiBuZXdsaW5lXG4tTAlTZW5kIFNJR05BTCBpbnN0ZWFkIG9mIHByaW50aW5nIG5hbWVcbi1sCVNob3cgY29tbWFuZCBuYW1lXG4tZglDaGVjayBmdWxsIGNvbW1hbmQgbGluZSBmb3IgUEFUVEVSTlxuLUcJTWF0Y2ggcmVhbCBHcm91cCBJRChzKVxuLWcJTWF0Y2ggUHJvY2VzcyBHcm91cChzKSAoMCBpcyBjdXJyZW50IHVzZXIpXG4tbglOZXdlc3QgbWF0Y2ggb25seVxuLW8JT2xkZXN0IG1hdGNoIG9ubHlcbi1QCU1hdGNoIFBhcmVudCBQcm9jZXNzIElEKHMpXG4tcwlNYXRjaCBTZXNzaW9uIElEKHMpICgwIGZvciBjdXJyZW50KVxuLXQJTWF0Y2ggVGVybWluYWwocylcbi1VCU1hdGNoIHJlYWwgVXNlciBJRChzKVxuLXUJTWF0Y2ggZWZmZWN0aXZlIFVzZXIgSUQocylcbi12CU5lZ2F0ZSB0aGUgbWF0Y2hcbi14CU1hdGNoIHdob2xlIGNvbW1hbmQgKG5vdCBzdWJzdHJpbmcpIgorCisjZGVmaW5lIEhFTFBfaW90b3AgInVzYWdlOiBpb3RvcCBbLUFhS09icV0gWy1uIE5VTUJFUl0gWy1kIFNFQ09ORFNdIFstcCBQSUQsXSBbLXUgVVNFUixdXG5cblJhbmsgcHJvY2Vzc2VzIGJ5IEkvTy5cblxuLUEJQWxsIEkvTywgbm90IGp1c3QgZGlza1xuLWEJQWNjdW11bGF0ZWQgSS9PIChub3QgcGVyY2VudGFnZSlcbi1ICVNob3cgdGhyZWFkc1xuLUsJS2lsb2J5dGVzXG4tawlGYWxsYmFjayBzb3J0IEZJRUxEUyAoZGVmYXVsdCAtW0RdSU8sLUVUSU1FLC1QSUQpXG4tbQlNYXhpbXVtIG51bWJlciBvZiB0YXNrcyB0byBzaG93XG4tTwlPbmx5IHNob3cgcHJvY2Vzc2VzIGRvaW5nIEkvT1xuLW8JU2hvdyBGSUVMRFMgKGRlZmF1bHQgUElELFBSLFVTRVIsW0RdUkVBRCxbRF1XUklURSxTV0FQLFtEXUlPLENPTU0pXG4tcwlTb3J0IGJ5IGZpZWxkIG51bWJlciAoMC1YLCBkZWZhdWx0IDYpXG4tYglCYXRjaCBtb2RlIChubyB0dHkpXG4tZAlEZWxheSBTRUNPTkRTIGJldHdlZW4gZWFjaCBjeWNsZSAoZGVmYXVsdCAzKVxuLW4JRXhpdCBhZnRlciBOVU1CRVIgaXRlcmF0aW9uc1xuLXAJU2hvdyB0aGVzZSBQSURzXG4tdQlTaG93IHRoZXNlIFVTRVJzXG4tcQlRdWlldCAobm8gaGVhZGVyIGxpbmVzKVxuXG5DdXJzb3IgTEVGVC9SSUdIVCB0byBjaGFuZ2Ugc29ydCwgVVAvRE9XTiBtb3ZlIGxpc3QsIHNwYWNlIHRvIGZvcmNlXG51cGRhdGUsIFIgdG8gcmV2ZXJzZSBzb3J0LCBRIHRvIGV4aXQuIgorCisjZGVmaW5lIEhFTFBfdG9wICJ1c2FnZTogdG9wIFstSGhicV0gWy1rIEZJRUxELF0gWy1vIEZJRUxELF0gWy1zIFNPUlRdIFstbiBOVU1CRVJdIFstbSBMSU5FU10gWy1kIFNFQ09ORFNdIFstcCBQSUQsXSBbLXUgVVNFUixdXG5cblNob3cgcHJvY2VzcyBhY3Rpdml0eSBpbiByZWFsIHRpbWUuXG5cbi1ICVNob3cgdGhyZWFkc1xuLWgJVXNhZ2UgZ3JhcGhzIGluc3RlYWQgb2YgdGV4dFxuLWsJRmFsbGJhY2sgc29ydCBGSUVMRFMgKGRlZmF1bHQgLVMsLSVDUFUsLUVUSU1FLC1QSUQpXG4tbwlTaG93IEZJRUxEUyAoZGVmIFBJRCxVU0VSLFBSLE5JLFZJUlQsUkVTLFNIUixTLCVDUFUsJU1FTSxUSU1FKyxDTURMSU5FKVxuLU8JQWRkIEZJRUxEUyAocmVwbGFjaW5nIFBSLE5JLFZJUlQsUkVTLFNIUixTIGZyb20gZGVmYXVsdClcbi1zCVNvcnQgYnkgZmllbGQgbnVtYmVyICgxLVgsIGRlZmF1bHQgOSlcbi1iCUJhdGNoIG1vZGUgKG5vIHR0eSlcbi1kCURlbGF5IFNFQ09ORFMgYmV0d2VlbiBlYWNoIGN5Y2xlIChkZWZhdWx0IDMpXG4tbQlNYXhpbXVtIG51bWJlciBvZiB0YXNrcyB0byBzaG93XG4tbglFeGl0IGFmdGVyIE5VTUJFUiBpdGVyYXRpb25zXG4tcAlTaG93IHRoZXNlIFBJRHNcbi11CVNob3cgdGhlc2UgVVNFUnNcbi1xCVF1aWV0IChubyBoZWFkZXIgbGluZXMpXG5cbkN1cnNvciBVUC9ET1dOIG9yIExFRlQvUklHSFQgdG8gbW92ZSBsaXN0LCBTSElGVCBMRUZUL1JJR0hUIHRvIGNoYW5nZSBzb3J0LFxuc3BhY2UgdG8gZm9yY2UgdXBkYXRlLCBSIHRvIHJldmVyc2Ugc29ydCwgUSB0byBleGl0LiIKKworI2RlZmluZSBIRUxQX3BzICJ1c2FnZTogcHMgWy1BYWRlZkxsbndaXSBbLWdHIEdST1VQLF0gWy1rIEZJRUxELF0gWy1vIEZJRUxELF0gWy1wIFBJRCxdIFstdCBUVFksXSBbLXVVIFVTRVIsXVxuXG5MaXN0IHByb2Nlc3Nlcy5cblxuV2hpY2ggcHJvY2Vzc2VzIHRvIHNob3cgKC1nR3VVcFB0IHNlbGVjdGlvbnMgbWF5IGJlIGNvbW1hIHNlcGFyYXRlZCBsaXN0cyk6XG5cbi1BICBBbGwJCQkJCS1hICBIYXMgdGVybWluYWwgbm90IHNlc3Npb24gbGVhZGVyXG4tZCAgQWxsIGJ1dCBzZXNzaW9uIGxlYWRlcnMJCS1lICBTeW5vbnltIGZvciAtQVxuLWcgIEluIEdST1VQcwkJCQktRyAgSW4gcmVhbCBHUk9VUHMgKGJlZm9yZSBzZ2lkKVxuLXAgIFBJRHMgKC0tcGlkKQkJCS1QICBQYXJlbnQgUElEcyAoLS1wcGlkKVxuLXMgIEluIHNlc3Npb24gSURzCQkJLXQgIEF0dGFjaGVkIHRvIHNlbGVjdGVkIFRUWXNcbi1UICBTaG93IHRocmVhZHMgYWxzbwkJCS11ICBPd25lZCBieSBzZWxlY3RlZCBVU0VSc1xuLVUgIFJlYWwgVVNFUnMgKGJlZm9yZSBzdWlkKVxuXG5PdXRwdXQgbW9kaWZpZXJzOlxuXG4tayAgU29ydCBGSUVMRHMgKC1GSUVMRCB0byByZXZlcnNlKQktTSAgTWVhc3VyZS9wYWQgZnV0dXJlIGZpZWxkIHdpZHRoc1xuLW4gIFNob3cgbnVtZXJpYyBVU0VSIGFuZCBHUk9VUAkJLXcgIFdpZGUgb3V0cHV0IChkb24ndCB0cnVuY2F0ZSBmaWVsZHMpXG5cbldoaWNoIEZJRUxEcyB0byBzaG93LiAoLW8gSEVMUCBmb3IgbGlzdCwgZGVmYXVsdCA9IC1vIFBJRCxUVFksVElNRSxDTUQpXG5cbi1mICBGdWxsIGxpc3RpbmcgKC1vIFVTRVI6MTI9VUlELFBJRCxQUElELEMsU1RJTUUsVFRZLFRJTUUsQVJHUz1DTUQpXG4tbCAgTG9uZyBsaXN0aW5nICgtbyBGLFMsVUlELFBJRCxQUElELEMsUFJJLE5JLEFERFIsU1osV0NIQU4sVFRZLFRJTUUsQ01EKVxuLW8gIE91dHB1dCBGSUVMRHMgaW5zdGVhZCBvZiBkZWZhdWx0cywgZWFjaCB3aXRoIG9wdGlvbmFsIDpzaXplIGFuZCA9dGl0bGVcbi1PICBBZGQgRklFTERTIHRvIGRlZmF1bHRzXG4tWiAgSW5jbHVkZSBMQUJFTCIKKworI2RlZmluZSBIRUxQX3ByaW50ZiAidXNhZ2U6IHByaW50ZiBGT1JNQVQgW0FSR1VNRU5ULi4uXVxuXG5Gb3JtYXQgYW5kIHByaW50IEFSR1VNRU5UKHMpIGFjY29yZGluZyB0byBGT1JNQVQsIHVzaW5nIEMgcHJpbnRmIHN5bnRheFxuKCUgZXNjYXBlcyBmb3IgY2RlRWZnR2lvc3V4WCwgXFwgZXNjYXBlcyBmb3IgYWJlZm5ydHYwIG9yIFxcT0NUQUwgb3IgXFx4SEVYKS4iCisKKyNkZWZpbmUgSEVMUF9wYXRjaCAidXNhZ2U6IHBhdGNoIFstUmxzdXZdIFstZCBESVJdIFstaSBGSUxFXSBbLXAgREVQVEhdIFstRiBGVVpaXSBbLS1kcnktcnVuXSBbRklMRSBbUEFUQ0hdXVxuXG5BcHBseSBhIHVuaWZpZWQgZGlmZiB0byBvbmUgb3IgbW9yZSBmaWxlcy5cblxuLWQJTW9kaWZ5IGZpbGVzIGluIERJUlxuLUYJRnV6eiBmYWN0b3IgKG51bWJlciBvZiBub24tbWF0Y2hpbmcgY29udGV4dCBsaW5lcyBhbGxvd2VkIHBlciBodW5rKVxuLWkJSW5wdXQgcGF0Y2ggZnJvbSBGSUxFIChkZWZhdWx0PXN0ZGluKVxuLWwJTG9vc2UgbWF0Y2ggKGlnbm9yZSB3aGl0ZXNwYWNlKVxuLXAJTnVtYmVyIG9mICcvJyB0byBzdHJpcCBmcm9tIHN0YXJ0IG9mIGZpbGUgcGF0aHMgKGRlZmF1bHQ9YWxsKVxuLVIJUmV2ZXJzZSBwYXRjaFxuLXMJU2lsZW50IGV4Y2VwdCBmb3IgZXJyb3JzXG4tdglWZXJib3NlICgtdnYgdG8gc2VlIGRlY2lzaW9ucylcbi0tZHJ5LXJ1biBEb24ndCBjaGFuZ2UgZmlsZXMsIGp1c3QgY29uZmlybSBwYXRjaCBhcHBsaWVzXG5cbk9ubHkgaGFuZGxlcyBcInVuaWZpZWRcIiBkaWZmIGZvcm1hdCAoLXUgaXMgYXNzdW1lZCBhbmQgaWdub3JlZCkuIE9ubHlcbm1vZGlmaWVzIGZpbGVzIHdoZW4gYWxsIGh1bmtzIHRvIHRoYXQgZmlsZSBhcHBseS4gUHJpbnRzIGZhaWxlZCBodW5rc1xudG8gc3RkZXJyLCBhbmQgZXhpdHMgd2l0aCBub256ZXJvIHN0YXR1cyBpZiBhbnkgaHVua3MgZmFpbC5cblxuRmlsZXMgY29tcGFyZWQgYWdhaW5zdCAvZGV2L251bGwgKG9yIHdpdGggYSBkYXRlIDw9IHRoZSB1bml4IGVwb2NoKSBhcmVcbmNyZWF0ZWQvZGVsZXRlZCBhcyBhcHByb3ByaWF0ZS4gRGVmYXVsdCAtRiB2YWx1ZSBpcyB0aGUgbnVtYmVyIG9mXG5sZWFkaW5nL3RyYWlsaW5nIGNvbnRleHQgbGluZXMgbWludXMgb25lICh1c3VhbGx5IDIpLiIKKworI2RlZmluZSBIRUxQX3Bhc3RlICJ1c2FnZTogcGFzdGUgWy1zXSBbLWQgREVMSU1JVEVSU10gW0ZJTEUuLi5dXG5cbk1lcmdlIGNvcnJlc3BvbmRpbmcgbGluZXMgZnJvbSBlYWNoIGlucHV0IGZpbGUuXG5cbi1kCUxpc3Qgb2YgZGVsaW1pdGVyIGNoYXJhY3RlcnMgdG8gc2VwYXJhdGUgZmllbGRzIHdpdGggKGRlZmF1bHQgaXMgXFx0KVxuLXMJU2VxdWVudGlhbCBtb2RlOiB0dXJuIGVhY2ggaW5wdXQgZmlsZSBpbnRvIG9uZSBsaW5lIG9mIG91dHB1dCIKKworI2RlZmluZSBIRUxQX29kICJ1c2FnZTogb2QgWy1iY2Rvc3h2XSBbLWogI10gWy1OICNdIFstdyAjXSBbLUEgZG94bl0gWy10IGFjZGZvdXhbI11dXG5cbkR1bXAgZGF0YSBpbiBvY3RhbC9oZXguXG5cbi1BCUFkZHJlc3MgYmFzZSAoZGVjaW1hbCwgb2N0YWwsIGhleGFkZWNpbWFsLCBub25lKVxuLWoJU2tpcCB0aGlzIG1hbnkgYnl0ZXMgb2YgaW5wdXRcbi1OCVN0b3AgZHVtcGluZyBhZnRlciB0aGlzIG1hbnkgYnl0ZXNcbi10CU91dHB1dCB0eXBlIGEoc2NpaSkgYyhoYXIpIGQoZWNpbWFsKSBmKGxvYXQpIG8oY3RhbCkgdShuc2lnbmVkKSAoaGUpeFxuCXBsdXMgb3B0aW9uYWwgc2l6ZSBpbiBieXRlc1xuCWFsaWFzZXM6IC1iPS10IG8xLCAtYz0tdCBjLCAtZD0tdCB1MiwgLW89LXQgbzIsIC1zPS10IGQyLCAteD0tdCB4MlxuLXYJRG9uJ3QgY29sbGFwc2UgcmVwZWF0ZWQgbGluZXMgdG9nZXRoZXJcbi13CVRvdGFsIGxpbmUgd2lkdGggaW4gYnl0ZXMgKGRlZmF1bHQgMTYpIgorCisjZGVmaW5lIEhFTFBfbm9odXAgInVzYWdlOiBub2h1cCBDT01NQU5ELi4uXG5cblJ1biBhIGNvbW1hbmQgdGhhdCBzdXJ2aXZlcyB0aGUgZW5kIG9mIGl0cyB0ZXJtaW5hbC5cblxuUmVkaXJlY3QgdHR5IG9uIHN0ZGluIHRvIC9kZXYvbnVsbCwgdHR5IG9uIHN0ZG91dCB0byBcIm5vaHVwLm91dFwiLiIKKworI2RlZmluZSBIRUxQX25sICJ1c2FnZTogbmwgWy1FXSBbLWwgI10gWy1iIE1PREVdIFstbiBTVFlMRV0gWy1zIFNFUEFSQVRPUl0gWy12ICNdIFstdyBXSURUSF0gW0ZJTEUuLi5dXG5cbk51bWJlciBsaW5lcyBvZiBpbnB1dC5cblxuLUUJVXNlIGV4dGVuZGVkIHJlZ2V4IHN5bnRheCAod2hlbiBkb2luZyAtYiBwUkVHRVgpXG4tYglXaGljaCBsaW5lcyB0byBudW1iZXI6IGEgKGFsbCkgdCAobm9uLWVtcHR5LCBkZWZhdWx0KSBwUkVHRVggKHBhdHRlcm4pXG4tbAlPbmx5IGNvdW50IGxhc3Qgb2YgdGhpcyBtYW55IGNvbnNlY3V0aXZlIGJsYW5rIGxpbmVzXG4tbglOdW1iZXIgU1RZTEU6IGxuIChsZWZ0IGp1c3RpZmllZCkgcm4gKHJpZ2h0IGp1c3RpZmllZCkgcnogKHplcm8gcGFkKVxuLXMJU2VwYXJhdG9yIHRvIHVzZSBiZXR3ZWVuIG51bWJlciBhbmQgbGluZSAoaW5zdGVhZCBvZiBUQUIpXG4tdglTdGFydGluZyBsaW5lIG51bWJlciBmb3IgZWFjaCBzZWN0aW9uIChkZWZhdWx0IDEpXG4tdwlXaWR0aCBvZiBsaW5lIG51bWJlcnMgKGRlZmF1bHQgNikiCisKKyNkZWZpbmUgSEVMUF9uaWNlICJ1c2FnZTogbmljZSBbLW4gUFJJT1JJVFldIENPTU1BTkQuLi5cblxuUnVuIGEgY29tbWFuZCBsaW5lIGF0IGFuIGluY3JlYXNlZCBvciBkZWNyZWFzZWQgc2NoZWR1bGluZyBwcmlvcml0eS5cblxuSGlnaGVyIG51bWJlcnMgbWFrZSBhIHByb2dyYW0geWllbGQgbW9yZSBDUFUgdGltZSwgZnJvbSAtMjAgKGhpZ2hlc3RcbnByaW9yaXR5KSB0byAxOSAobG93ZXN0KS4gIEJ5IGRlZmF1bHQgcHJvY2Vzc2VzIGluaGVyaXQgdGhlaXIgcGFyZW50J3Ncbm5pY2VuZXNzICh1c3VhbGx5IDApLiAgQnkgZGVmYXVsdCB0aGlzIGNvbW1hbmQgYWRkcyAxMCB0byB0aGUgcGFyZW50J3NcbnByaW9yaXR5LiAgT25seSByb290IGNhbiBzZXQgYSBuZWdhdGl2ZSBuaWNlbmVzcyBsZXZlbC5cblxuLW4JQWRkIGdpdmVuIGFkanVzdG1lbnQgdG8gcHJpb3JpdHkgKGRlZmF1bHQgMTApIgorCisjZGVmaW5lIEhFTFBfbWtmaWZvX3ogInVzYWdlOiBta2ZpZm8gWy1aIENPTlRFWFRdXG5cbi1aCVNlY3VyaXR5IGNvbnRleHQiCisKKyNkZWZpbmUgSEVMUF9ta2ZpZm8gInVzYWdlOiBta2ZpZm8gW05BTUUuLi5dXG5cbkNyZWF0ZSBGSUZPcyAobmFtZWQgcGlwZXMpLiIKKworI2RlZmluZSBIRUxQX21rZGlyX3ogInVzYWdlOiBbLVogY29udGV4dF1cblxuLVoJU2V0IHNlY3VyaXR5IGNvbnRleHQiCisKKyNkZWZpbmUgSEVMUF9ta2RpciAidXNhZ2U6IG1rZGlyIFstdnBdIFstbSBNT0RFXSBbRElSLi4uXVxuXG5DcmVhdGUgb25lIG9yIG1vcmUgZGlyZWN0b3JpZXMuXG5cbi1tCVNldCBwZXJtaXNzaW9ucyBvZiBkaXJlY3RvcnkgdG8gbW9kZVxuLXAJTWFrZSBwYXJlbnQgZGlyZWN0b3JpZXMgYXMgbmVlZGVkXG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfbHMgInVzYWdlOiBscyBbLTFBQ0ZITE5SU1VYWmFiY2RmZ2hpbG1ub3BxcnN0dXd4XSBbLS1jb2xvcls9YXV0b11dIFtGSUxFLi4uXVxuXG5MaXN0IGZpbGVzXG5cbndoYXQgdG8gc2hvdzpcbi1BICBhbGwgZmlsZXMgZXhjZXB0IC4gYW5kIC4uICAgICAgLWEgIGFsbCBmaWxlcyBpbmNsdWRpbmcgLmhpZGRlblxuLWIgIGVzY2FwZSBub25ncmFwaGljIGNoYXJzICAgICAgICAtZCAgZGlyZWN0b3J5LCBub3QgY29udGVudHNcbi1GICBhcHBlbmQgL2RpciAqZXhlIEBzeW0gfEZJRk8gICAgLWYgIGZpbGVzIChubyBzb3J0L2ZpbHRlci9mb3JtYXQpXG4tSCAgZm9sbG93IGNvbW1hbmQgbGluZSBzeW1saW5rcyAgIC1pICBpbm9kZSBudW1iZXJcbi1MICBmb2xsb3cgc3ltbGlua3MgICAgICAgICAgICAgICAgLU4gIG5vIGVzY2FwaW5nLCBldmVuIG9uIHR0eVxuLXAgIHB1dCAnLycgYWZ0ZXIgZGlyIG5hbWVzICAgICAgICAtcSAgdW5wcmludGFibGUgY2hhcnMgYXMgJz8nXG4tUiAgcmVjdXJzaXZlbHkgbGlzdCBpbiBzdWJkaXJzICAgIC1zICBzdG9yYWdlIHVzZWQgKGluIC0tYmxvY2stc2l6ZSlcbi1aICBzZWN1cml0eSBjb250ZXh0XG5cbm91dHB1dCBmb3JtYXRzOlxuLTEgIGxpc3Qgb25lIGZpbGUgcGVyIGxpbmUgICAgICAgICAtQyAgY29sdW1ucyAoc29ydGVkIHZlcnRpY2FsbHkpXG4tZyAgbGlrZSAtbCBidXQgbm8gb3duZXIgICAgICAgICAgIC1oICBodW1hbiByZWFkYWJsZSBzaXplc1xuLWsgIHJlc2V0IC0tYmxvY2stc2l6ZSB0byBkZWZhdWx0ICAtbCAgbG9uZyAoc2hvdyBmdWxsIGRldGFpbHMpXG4tbSAgY29tbWEgc2VwYXJhdGVkICAgICAgICAgICAgICAgIC1sbCBsb25nIHdpdGggbmFub3NlY29uZHMgKC0tZnVsbC10aW1lKVxuLW4gIGxvbmcgd2l0aCBudW1lcmljIHVpZC9naWQgICAgICAtbyAgbG9uZyB3aXRob3V0IGdyb3VwIGNvbHVtblxuLXIgIHJldmVyc2Ugb3JkZXIgICAgICAgICAgICAgICAgICAtdyAgc2V0IGNvbHVtbiB3aWR0aFxuLXggIGNvbHVtbnMgKGhvcml6b250YWwgc29ydClcblxuc29ydCBieTogIChhbHNvIC0tc29ydD1sb25nbmFtZSxsb25nbmFtZS4uLiBlbmRzIHdpdGggYWxwaGFiZXRpY2FsKVxuLWMgIGN0aW1lICAgICAgLXIgIHJldmVyc2UgICAgLVMgIHNpemUgICAgIC10ICB0aW1lICAgIC11ICBhdGltZSAgICAtVSAgbm9uZVxuLVggIGV4dGVuc2lvbiAgLSEgIGRpcmZpcnN0ICAgLX4gIG5vY2FzZVxuXG4tLWJsb2NrLXNpemUgTglibG9jayBzaXplIChkZWZhdWx0IDEwMjQsIC1rIHJlc2V0cyB0byAxMDI0KVxuLS1jb2xvciAgPWFsd2F5cyAoZGVmYXVsdCkgID1hdXRvICh3aGVuIHN0ZG91dCBpcyB0dHkpID1uZXZlclxuICAgIGV4ZT1ncmVlbiAgc3VpZD1yZWQgIHN1aWRmaWxlPXJlZGJhY2sgIHN0aWNreWRpcj1ncmVlbmJhY2tcbiAgICBkZXZpY2U9eWVsbG93ICBzeW1saW5rPXR1cnF1b2lzZS9yZWQgIGRpcj1ibHVlICBzb2NrZXQ9cHVycGxlXG5cbkxvbmcgb3V0cHV0IHVzZXMgLWN1IGZvciBkaXNwbGF5LCB1c2UgLWx0Yy8tbHR1IHRvIGFsc28gc29ydCBieSBjdGltZS9hdGltZS4iCisKKyNkZWZpbmUgSEVMUF9sb2dnZXIgInVzYWdlOiBsb2dnZXIgWy1zXSBbLXQgVEFHXSBbLXAgW0ZBQ0lMSVRZLl1QUklPUklUWV0gW01FU1NBR0UuLi5dXG5cbkxvZyBtZXNzYWdlIChvciBzdGRpbikgdG8gc3lzbG9nLlxuXG4tcwlBbHNvIHdyaXRlIG1lc3NhZ2UgdG8gc3RkZXJyXG4tdAlVc2UgVEFHIGluc3RlYWQgb2YgdXNlcm5hbWUgdG8gaWRlbnRpZnkgbWVzc2FnZSBzb3VyY2Vcbi1wCVNwZWNpZnkgUFJJT1JJVFkgd2l0aCBvcHRpb25hbCBGQUNJTElUWS4gRGVmYXVsdCBpcyBcInVzZXIubm90aWNlXCIiCisKKyNkZWZpbmUgSEVMUF9sbiAidXNhZ2U6IGxuIFstZm5yc1R2XSBbLXQgRElSXSBbRlJPTS4uLl0gVE9cblxuQ3JlYXRlIGEgbGluayBiZXR3ZWVuIEZST00gYW5kIFRPLlxuT25lL3R3by9tYW55IGFyZ3VtZW50cyB3b3JrIGxpa2UgXCJtdlwiIG9yIFwiY3BcIi5cblxuLWYJRm9yY2UgdGhlIGNyZWF0aW9uIG9mIHRoZSBsaW5rLCBldmVuIGlmIFRPIGFscmVhZHkgZXhpc3RzXG4tbglTeW1saW5rIGF0IFRPIHRyZWF0ZWQgYXMgZmlsZVxuLXIJQ3JlYXRlIHJlbGF0aXZlIHN5bWxpbmsgZnJvbSAtPiB0b1xuLXMJQ3JlYXRlIGEgc3ltYm9saWMgbGlua1xuLXQJQ3JlYXRlIGxpbmtzIGluIERJUlxuLVQJVE8gYWx3YXlzIHRyZWF0ZWQgYXMgZmlsZSwgbWF4IDIgYXJndW1lbnRzXG4tdglWZXJib3NlIgorCisjZGVmaW5lIEhFTFBfbGluayAidXNhZ2U6IGxpbmsgRklMRSBORVdMSU5LXG5cbkNyZWF0ZSBoYXJkbGluayB0byBhIGZpbGUuIgorCisjZGVmaW5lIEhFTFBfa2lsbGFsbDUgInVzYWdlOiBraWxsYWxsNSBbLWwgW1NJR05BTF1dIFstU0lHTkFMfC1zIFNJR05BTF0gWy1vIFBJRF0uLi5cblxuU2VuZCBhIHNpZ25hbCB0byBhbGwgcHJvY2Vzc2VzIG91dHNpZGUgY3VycmVudCBzZXNzaW9uLlxuXG4tbAlMaXN0IHNpZ25hbCBuYW1lKHMpIGFuZCBudW1iZXIocylcbi1vIFBJRAlPbWl0IFBJRFxuLXMJU2VuZCBTSUdOQUwgKGRlZmF1bHQgU0lHVEVSTSkiCisKKyNkZWZpbmUgSEVMUF9raWxsICJ1c2FnZToga2lsbCBbLWwgW1NJR05BTF0gfCAtcyBTSUdOQUwgfCAtU0lHTkFMXSBQSUQuLi5cblxuU2VuZCBzaWduYWwgdG8gcHJvY2VzcyhlcykuXG5cbi1sCUxpc3Qgc2lnbmFsIG5hbWUocykgYW5kIG51bWJlcihzKVxuLXMJU2VuZCBTSUdOQUwgKGRlZmF1bHQgU0lHVEVSTSkiCisKKyNkZWZpbmUgSEVMUF93aG9hbWkgInVzYWdlOiB3aG9hbWlcblxuUHJpbnQgdGhlIGN1cnJlbnQgdXNlciBuYW1lLiIKKworI2RlZmluZSBIRUxQX2xvZ25hbWUgInVzYWdlOiBsb2duYW1lXG5cblByaW50IHRoZSBjdXJyZW50IHVzZXIgbmFtZS4iCisKKyNkZWZpbmUgSEVMUF9ncm91cHMgInVzYWdlOiBncm91cHMgW3VzZXJdXG5cblByaW50IHRoZSBncm91cHMgYSB1c2VyIGlzIGluLiIKKworI2RlZmluZSBIRUxQX2lkX3ogInVzYWdlOiBpZCBbLVpdXG5cbi1aCVNob3cgb25seSBzZWN1cml0eSBjb250ZXh0IgorCisjZGVmaW5lIEhFTFBfaWQgInVzYWdlOiBpZCBbLUdnbnJ1XSBbVVNFUi4uLl1cblxuUHJpbnQgdXNlciBhbmQgZ3JvdXAgSUQuXG5cbi1HCVNob3cgYWxsIGdyb3VwIElEc1xuLWcJU2hvdyBvbmx5IHRoZSBlZmZlY3RpdmUgZ3JvdXAgSURcbi1uCVByaW50IG5hbWVzIGluc3RlYWQgb2YgbnVtZXJpYyBJRHMgKHRvIGJlIHVzZWQgd2l0aCAtR2d1KVxuLXIJU2hvdyByZWFsIElEIGluc3RlYWQgb2YgZWZmZWN0aXZlIElEXG4tdQlTaG93IG9ubHkgdGhlIGVmZmVjdGl2ZSB1c2VyIElEIgorCisjZGVmaW5lIEhFTFBfaWNvbnYgInVzYWdlOiBpY29udiBbLWYgRlJPTV0gWy10IFRPXSBbRklMRS4uLl1cblxuQ29udmVydCBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgZmlsZXMuXG5cbi1jCU9taXQgaW52YWxpZCBjaGFyc1xuLWYJQ29udmVydCBmcm9tIChkZWZhdWx0IFVURi04KVxuLXQJQ29udmVydCB0byAgIChkZWZhdWx0IFVURi04KSIKKworI2RlZmluZSBIRUxQX2hlYWQgInVzYWdlOiBoZWFkIFstY24gTlVNXSBbLXF2XSBbRklMRS4uLl1cblxuQ29weSBmaXJzdCBsaW5lcyBmcm9tIGZpbGVzIHRvIHN0ZG91dC4gSWYgbm8gZmlsZXMgbGlzdGVkLCBjb3B5IGZyb21cbnN0ZGluLiBGaWxlbmFtZSBcIi1cIiBpcyBhIHN5bm9ueW0gZm9yIHN0ZGluLlxuXG4tbglOdW1iZXIgb2YgbGluZXMgdG8gY29weVxuLWMJTnVtYmVyIG9mIGJ5dGVzIHRvIGNvcHlcbi1xCU5ldmVyIHByaW50IGhlYWRlcnNcbi12CUFsd2F5cyBwcmludCBoZWFkZXJzIgorCisjZGVmaW5lIEhFTFBfZ3JlcCAidXNhZ2U6IGdyZXAgWy1hYmNFRkhoSWlMbG5vcXJzdnd4WnpdIFstQUJDIE5VTV0gWy1tIE1BWF0gWy1lIFJFR0VYXS4uLiBbLU1TIFBBVFRFUk5dLi4uIFstZiBSRUdGSUxFXS4uLiBbRklMRV0uLi5cblxuU2hvdyBsaW5lcyBtYXRjaGluZyByZWd1bGFyIGV4cHJlc3Npb25zLiBJZiBubyAtZSwgZmlyc3QgYXJndW1lbnQgaXNcbnJlZ3VsYXIgZXhwcmVzc2lvbiB0byBtYXRjaC4gV2l0aCBubyBmaWxlcyAob3IgXCItXCIgZmlsZW5hbWUpIHJlYWQgc3RkaW4uXG5SZXR1cm5zIDAgaWYgbWF0Y2hlZCwgMSBpZiBubyBtYXRjaCBmb3VuZCwgMiBmb3IgY29tbWFuZCBlcnJvcnMuXG5cbi1lICBSZWdleChlcykgdG8gbWF0Y2guICAgICAgIC1mICBGaWxlKHMpIG9mIHJlZ2V4ZXMgdG8gbWF0Y2ggKDEgcGVyIGxpbmUpLlxuXG5maWxlIHNlYXJjaDpcbi1yICBSZWN1cnNlIGludG8gc3ViZGlycyAgICAgLVIgIFJlY3Vyc2UgZm9sbG93aW5nIHN5bWxpbmtzXG4tTSAgTWF0Y2ggZmlsZXMgKC0taW5jbHVkZSkgIC1TICBTa2lwIGZpbGVzICgtLWV4Y2x1ZGUpXG4tSSAgSWdub3JlIGJpbmFyeSBmaWxlcyAgICAgIC0tZXhjbHVkZS1kaXI9UEFUVEVSTiAgU2tpcCBkaXJlY3Rvcmllc1xuXG5tYXRjaCB0eXBlOlxuLUEgIFNob3cgTlVNIGxpbmVzIGFmdGVyICAgICAtQiAgU2hvdyBOVU0gbGluZXMgYmVmb3JlIG1hdGNoXG4tQyAgTlVNIGxpbmVzIGNvbnRleHQgKEErQikgIC1FICBleHRlbmRlZCByZWdleCBzeW50YXhcbi1GICBmaXhlZCAobGl0ZXJhbCBtYXRjaCkgICAgLWEgIGFsd2F5cyB0ZXh0IChub3QgYmluYXJ5KVxuLWkgIGNhc2UgaW5zZW5zaXRpdmUgICAgICAgICAtbSAgbWF0Y2ggTUFYIG1hbnkgbGluZXNcbi12ICBpbnZlcnQgbWF0Y2ggICAgICAgICAgICAgLXcgIHdob2xlIHdvcmQgKGltcGxpZXMgLUUpXG4teCAgd2hvbGUgbGluZSAgICAgICAgICAgICAgIC16ICBpbnB1dCBOVUwgdGVybWluYXRlZFxuXG5kaXNwbGF5IG1vZGVzOiAoZGVmYXVsdDogbWF0Y2hlZCBsaW5lKVxuLUwgIGZpbGVuYW1lcyB3aXRoIG5vIG1hdGNoICAtWiAgb3V0cHV0IGlzIE5VTCB0ZXJtaW5hdGVkXG4tYyAgY291bnQgb2YgbWF0Y2hpbmcgbGluZXMgIC1sICBmaWxlbmFtZXMgd2l0aCBhIG1hdGNoXG4tbyAgb25seSBtYXRjaGluZyBwYXJ0ICAgICAgIC1xICBxdWlldCAoZXJyb3JzIG9ubHkpXG4tcyAgc2lsZW50IChubyBlcnJvciBtc2cpXG5cbm91dHB1dCBwcmVmaXggKGRlZmF1bHQ6IGZpbGVuYW1lIGlmIGNoZWNraW5nIG1vcmUgdGhhbiAxIGZpbGUpXG4tSCAgZm9yY2UgZmlsZW5hbWUgICAgICAgICAgIC1iICBieXRlIG9mZnNldCBvZiBtYXRjaFxuLWggIGhpZGUgZmlsZW5hbWUgICAgICAgICAgICAtbiAgbGluZSBudW1iZXIgb2YgbWF0Y2giCisKKyNkZWZpbmUgSEVMUF9nZXRjb25mICJ1c2FnZTogZ2V0Y29uZiAtYSBbUEFUSF0gfCAtbCB8IE5BTUUgW1BBVEhdXG5cbkdldCBzeXN0ZW0gY29uZmlndXJhdGlvbiB2YWx1ZXMuIFZhbHVlcyBmcm9tIHBhdGhjb25mKDMpIHJlcXVpcmUgYSBwYXRoLlxuXG4tYQlTaG93IGFsbCAoZGVmYXVsdHMgdG8gXCIvXCIgaWYgbm8gcGF0aCBnaXZlbilcbi1sCUxpc3QgYXZhaWxhYmxlIHZhbHVlIG5hbWVzIChncm91cGVkIGJ5IHNvdXJjZSkiCisKKyNkZWZpbmUgSEVMUF9mb2xkICJ1c2FnZTogZm9sZCBbLWJzXSBbLXcgV0lEVEhdIFtGSUxFLi4uXVxuXG5CcmVhayBsb25nIGxpbmVzIGJ5IGluc2VydGluZyBuZXdsaW5lcy5cblxuLWIJQ291bnQgYnl0ZXMgaW5zdGVhZCBvZiB1dGYtOCB1bmljb2RlIGNvbHVtbnNcbi1zCVdyYXAgYXQgd2hpdGVzcGFjZSB3aGVuIHBvc3NpYmxlXG4tdwlCcmVhayBhdCBXSURUSCBjb2x1bW5zIChkZWZhdWx0IDgwKSIKKworI2RlZmluZSBIRUxQX2ZpbmQgInVzYWdlOiBmaW5kIFstSExdIFtESVIuLi5dIFs8b3B0aW9ucz5dXG5cblNlYXJjaCBkaXJlY3RvcmllcyBmb3IgbWF0Y2hpbmcgZmlsZXMuXG5EZWZhdWx0OiBzZWFyY2ggXCIuXCIsIG1hdGNoIGFsbCwgLXByaW50IG1hdGNoZXMuXG5cbi1IICBGb2xsb3cgY29tbWFuZCBsaW5lIHN5bWxpbmtzICAgICAgICAgLUwgIEZvbGxvdyBhbGwgc3ltbGlua3NcblxuTWF0Y2ggZmlsdGVyczpcbi1uYW1lICBQQVRURVJOICAgZmlsZW5hbWUgd2l0aCB3aWxkY2FyZHMgICAtaW5hbWUgICAgICBpZ25vcmUgY2FzZSAtbmFtZVxuLXBhdGggIFBBVFRFUk4gICBwYXRoIG5hbWUgd2l0aCB3aWxkY2FyZHMgIC1pcGF0aCAgICAgIGlnbm9yZSBjYXNlIC1wYXRoXG4tdXNlciAgVU5BTUUgICAgIGJlbG9uZ3MgdG8gdXNlciBVTkFNRSAgICAgLW5vdXNlciAgICAgdXNlciBJRCBub3Qga25vd25cbi1ncm91cCBHUk9VUCAgICAgYmVsb25ncyB0byBncm91cCBHUk9VUCAgICAtbm9ncm91cCAgICBncm91cCBJRCBub3Qga25vd25cbi1wZXJtICBbLS9dTU9ERSAgcGVybWlzc2lvbnMgKC09bWluIC89YW55KSAtcHJ1bmUgICAgICBpZ25vcmUgZGlyIGNvbnRlbnRzXG4tc2l6ZSAgTltjXSAgICAgIDUxMiBieXRlIGJsb2NrcyAoYz1ieXRlcykgLXhkZXYgICAgICAgb25seSB0aGlzIGZpbGVzeXN0ZW1cbi1saW5rcyBOICAgICAgICAgaGFyZGxpbmsgY291bnQgICAgICAgICAgICAtZW1wdHkgICAgICBlbXB0eSBmaWxlcyBhbmQgZGlyc1xuLWF0aW1lIE5bdV0gICAgICBhY2Nlc3NlZCBOIHVuaXRzIGFnbyAgICAgIC10cnVlICAgICAgIGFsd2F5cyB0cnVlXG4tY3RpbWUgTlt1XSAgICAgIGNyZWF0ZWQgTiB1bml0cyBhZ28gICAgICAgLWZhbHNlICAgICAgYWx3YXlzIGZhbHNlXG4tbXRpbWUgTlt1XSAgICAgIG1vZGlmaWVkIE4gdW5pdHMgYWdvICAgICAgLWV4ZWN1dGFibGUgYWNjZXNzKFhfT0spIHBlcm0rQUNMXG4taW51bSAgTiAgICAgICAgIGlub2RlIG51bWJlciBOICAgICAgICAgICAgLXJlYWRhYmxlICAgYWNjZXNzKFJfT0spIHBlcm0rQUNMXG4tY29udGV4dCBQQVRURVJOIHNlY3VyaXR5IGNvbnRleHQgICAgICAgICAgLWRlcHRoICAgICAgY29udGVudHMgYmVmb3JlIGRpclxuLXNhbWVmaWxlIEZJTEUgICBoYXJkbGluayB0byBGSUxFICAgICAgICAgIC1tYXhkZXB0aCBOIGF0IG1vc3QgTiBkaXJzIGRvd25cbi1uZXdlciAgICBGSUxFICAgbmV3ZXIgbXRpbWUgdGhhbiBGSUxFICAgICAtbWluZGVwdGggTiBhdCBsZWFzdCBOIGRpcnMgZG93blxuLW5ld2VyWFkgIEZJTEUgICBYPWFjbSB0aW1lID4gRklMRSdzIFk9YWNtIHRpbWUgKFk9dDogRklMRSBpcyBsaXRlcmFsIHRpbWUpXG4tdHlwZSBbYmNkZmxwc10gIHR5cGUgaXMgKGJsb2NrLCBjaGFyLCBkaXIsIGZpbGUsIHN5bWxpbmssIHBpcGUsIHNvY2tldClcblxuTnVtYmVycyBOIG1heSBiZSBwcmVmaXhlZCBieSAtIChsZXNzIHRoYW4pIG9yICsgKGdyZWF0ZXIgdGhhbikuIFVuaXRzIGZvclxuLVthY21ddGltZSBhcmUgZCAoZGF5cywgZGVmYXVsdCksIGggKGhvdXJzKSwgbSAobWludXRlcyksIG9yIHMgKHNlY29uZHMpLlxuXG5Db21iaW5lIG1hdGNoZXMgd2l0aDpcbiEsIC1hLCAtbywgKCApICAgIG5vdCwgYW5kLCBvciwgZ3JvdXAgZXhwcmVzc2lvbnNcblxuQWN0aW9uczpcbi1wcmludCAgUHJpbnQgbWF0Y2ggd2l0aCBuZXdsaW5lICAtcHJpbnQwICAgICAgICBQcmludCBtYXRjaCB3aXRoIG51bGxcbi1leGVjICAgUnVuIGNvbW1hbmQgd2l0aCBwYXRoICAgICAtZXhlY2RpciAgICAgICBSdW4gY29tbWFuZCBpbiBmaWxlJ3MgZGlyXG4tb2sgICAgIEFzayBiZWZvcmUgZXhlYyAgICAgICAgICAgLW9rZGlyICAgICAgICAgQXNrIGJlZm9yZSBleGVjZGlyXG4tZGVsZXRlIFJlbW92ZSBtYXRjaGluZyBmaWxlL2RpciAgLXByaW50ZiBGT1JNQVQgUHJpbnQgdXNpbmcgZm9ybWF0IHN0cmluZ1xuLXF1aXQgICBFeGl0IGltbWVkaWF0ZWx5XG5cbkNvbW1hbmRzIHN1YnN0aXR1dGUgXCJ7fVwiIHdpdGggbWF0Y2hlZCBmaWxlLiBFbmQgd2l0aCBcIjtcIiB0byBydW4gZWFjaCBmaWxlLFxub3IgXCIrXCIgKG5leHQgYXJndW1lbnQgYWZ0ZXIgXCJ7fVwiKSB0byBjb2xsZWN0IGFuZCBydW4gd2l0aCBtdWx0aXBsZSBmaWxlcy5cblxuLXByaW50ZiBGT1JNQVQgY2hhcmFjdGVycyBhcmUgXFwgZXNjYXBlcyBhbmQ6XG4lYiAgNTEyIGJ5dGUgYmxvY2tzIHVzZWRcbiVmICBiYXNlbmFtZSAgICAgICAgICAgICVnICB0ZXh0dWFsIGdpZCAgICAgICAgICAlRyAgbnVtZXJpYyBnaWRcbiVpICBkZWNpbWFsIGlub2RlICAgICAgICVsICB0YXJnZXQgb2Ygc3ltbGluayAgICAlbSAgb2N0YWwgbW9kZVxuJU0gIGxzIGZvcm1hdCB0eXBlL21vZGUgJXAgIHBhdGggdG8gZmlsZSAgICAgICAgICVQICBwYXRoIHRvIGZpbGUgbWludXMgRElSXG4lcyAgc2l6ZSBpbiBieXRlcyAgICAgICAlVEAgbW9kIHRpbWUgYXMgdW5peHRpbWVcbiV1ICB1c2VybmFtZSAgICAgICAgICAgICVVICBudW1lcmljIHVpZCAgICAgICAgICAlWiAgc2VjdXJpdHkgY29udGV4dCIKKworI2RlZmluZSBIRUxQX2ZpbGUgInVzYWdlOiBmaWxlIFstYmhMc10gW0ZJTEUuLi5dXG5cbkV4YW1pbmUgdGhlIGdpdmVuIGZpbGVzIGFuZCBkZXNjcmliZSB0aGVpciBjb250ZW50IHR5cGVzLlxuXG4tYglCcmllZiAobm8gZmlsZW5hbWUpXG4taAlEb24ndCBmb2xsb3cgc3ltbGlua3MgKGRlZmF1bHQpXG4tTAlGb2xsb3cgc3ltbGlua3Ncbi1zCVNob3cgYmxvY2svY2hhciBkZXZpY2UgY29udGVudHMiCisKKyNkZWZpbmUgSEVMUF9mYWxzZSAidXNhZ2U6IGZhbHNlXG5cblJldHVybiBub256ZXJvLiIKKworI2RlZmluZSBIRUxQX2V4cGFuZCAidXNhZ2U6IGV4cGFuZCBbLXQgVEFCTElTVF0gW0ZJTEUuLi5dXG5cbkV4cGFuZCB0YWJzIHRvIHNwYWNlcyBhY2NvcmRpbmcgdG8gdGFic3RvcHMuXG5cbi10CVRBQkxJU1RcblxuU3BlY2lmeSB0YWIgc3RvcHMsIGVpdGhlciBhIHNpbmdsZSBudW1iZXIgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCA4LFxub3IgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbmNyZWFzaW5nIG51bWJlcnMgcmVwcmVzZW50aW5nIHRhYnN0b3BcbnBvc2l0aW9ucyAoYWJzb2x1dGUsIG5vdCBpbmNyZW1lbnRzKSB3aXRoIGVhY2ggYWRkaXRpb25hbCB0YWIgYmV5b25kXG50aGF0IGJlY29taW5nIG9uZSBzcGFjZS4iCisKKyNkZWZpbmUgSEVMUF9lbnYgInVzYWdlOiBlbnYgWy0waV0gWy1lIEZJTEVdIFstdSBOQU1FXSBbTkFNRT1WQUxVRS4uLl0gW0NPTU1BTkQuLi5dXG5cblNldCB0aGUgZW52aXJvbm1lbnQgZm9yIGNvbW1hbmQgaW52b2NhdGlvbiwgb3IgbGlzdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG5cbi1lCUV4ZWN1dGUgRklMRSBpbnN0ZWFkIG9mIGFyZ3ZbMF0gaW4gQ09NTUFORCBsaXN0XG4taQlDbGVhciBleGlzdGluZyBlbnZpcm9ubWVudFxuLXUgTkFNRQlSZW1vdmUgTkFNRSBmcm9tIHRoZSBlbnZpcm9ubWVudFxuLTAJVXNlIG51bGwgaW5zdGVhZCBvZiBuZXdsaW5lIGluIG91dHB1dCIKKworI2RlZmluZSBIRUxQX2VjaG8gInVzYWdlOiBlY2hvIFstRWVuXSBbQVJHLi4uXVxuXG5Xcml0ZSBlYWNoIGFyZ3VtZW50IHRvIHN0ZG91dCwgb25lIHNwYWNlIGJldHdlZW4gZWFjaCwgZm9sbG93ZWQgYnkgYSBuZXdsaW5lLlxuXG4tRQlQcmludCBlc2NhcGUgc2VxdWVuY2VzIGxpdGVyYWxseSAoZGVmYXVsdClcbi1lCVByb2Nlc3MgdGhlIGZvbGxvd2luZyBlc2NhcGUgc2VxdWVuY2VzOlxuCVxcXFwgIEJhY2tzbGFzaAkJXFwwTk5OIE9jdGFsICgxLTMgZGlnaXQpCVxceEhIIEhleCAoMS0yIGRpZ2l0KVxuCVxcYSAgQWxlcnQgKGJlZXAvZmxhc2gpCVxcYiAgQmFja3NwYWNlCQlcXGMgIFN0b3AgaGVyZSAobm8gXFxuKVxuCVxcZiAgRm9ybSBmZWVkCQlcXG4gIE5ld2xpbmUJCVxcciAgQ2FycmlhZ2UgcmV0dXJuXG4JXFx0ICBIb3Jpem9udGFsIHRhYglcXHYgIFZlcnRpY2FsIHRhYlxuLW4JTm8gdHJhaWxpbmcgbmV3bGluZSIKKworI2RlZmluZSBIRUxQX2R1ICJ1c2FnZTogZHUgWy1kIE5dIFstYWJjSEtrTGxtc3hdIFtGSUxFLi4uXVxuXG5TaG93IGRpc2sgdXNhZ2UsIHNwYWNlIGNvbnN1bWVkIGJ5IGZpbGVzIGFuZCBkaXJlY3Rvcmllcy5cblxuU2l6ZSBpbjpcbi1iCUFwcGFyZW50IGJ5dGVzIChkaXJlY3RvcnkgbGlzdGluZyBzaXplLCBub3Qgc3BhY2UgdXNlZClcbi1oCUh1bWFuIHJlYWRhYmxlIChlLmcuLCAxSyAyNDNNIDJHKVxuLWsJMTAyNCBieXRlIGJsb2NrcyAoZGVmYXVsdClcbi1LCTUxMiBieXRlIGJsb2NrcyAocG9zaXgpXG4tbQlNZWdhYnl0ZXNcblxuV2hhdCB0byBzaG93OlxuLWEJQWxsIGZpbGVzLCBub3QganVzdCBkaXJlY3Rvcmllc1xuLWMJQ3VtdWxhdGl2ZSB0b3RhbFxuLWQgTglPbmx5IGRlcHRoIDwgTlxuLUgJRm9sbG93IHN5bWxpbmtzIG9uIGNtZGxpbmVcbi1MCUZvbGxvdyBhbGwgc3ltbGlua3Ncbi1sCURpc2FibGUgaGFyZGxpbmsgZmlsdGVyXG4tcwlPbmx5IHRvdGFsIHNpemUgb2YgZWFjaCBhcmd1bWVudFxuLXgJRG9uJ3QgbGVhdmUgdGhpcyBmaWxlc3lzdGVtIgorCisjZGVmaW5lIEhFTFBfZGlybmFtZSAidXNhZ2U6IGRpcm5hbWUgUEFUSC4uLlxuXG5TaG93IGRpcmVjdG9yeSBwb3J0aW9uIG9mIHBhdGguIgorCisjZGVmaW5lIEhFTFBfZGYgInVzYWdlOiBkZiBbLWFIaGlrUF0gWy10IFRZUEVdIFtGSUxFLi4uXVxuXG5UaGUgXCJkaXNrIGZyZWVcIiBjb21tYW5kIHNob3dzIHRvdGFsL3VzZWQvYXZhaWxhYmxlIGRpc2sgc3BhY2UgZm9yXG5lYWNoIGZpbGVzeXN0ZW0gbGlzdGVkIG9uIHRoZSBjb21tYW5kIGxpbmUsIG9yIGFsbCBjdXJyZW50bHkgbW91bnRlZFxuZmlsZXN5c3RlbXMuXG5cbi1hCVNob3cgYWxsIChpbmNsdWRpbmcgL3Byb2MgYW5kIGZyaWVuZHMpXG4tSAlIdW1hbiByZWFkYWJsZSAoaz0xMDAwKVxuLWgJSHVtYW4gcmVhZGFibGUgKEs9MTAyNClcbi1pCVNob3cgaW5vZGVzIGluc3RlYWQgb2YgYmxvY2tzXG4tawlTZXRzIHVuaXRzIGJhY2sgdG8gMTAyNCBieXRlcyAodGhlIGRlZmF1bHQgd2l0aG91dCAtUClcbi1QCVRoZSBTVVN2MyBcIlBlZGFudGljXCIgb3B0aW9uICg1MTIgYnl0ZSBibG9ja3MpXG4tdCBUWVBFCURpc3BsYXkgb25seSBmaWxlc3lzdGVtcyBvZiB0aGlzIHR5cGVcblxuUGVkYW50aWMgcHJvdmlkZXMgYSBzbGlnaHRseSBsZXNzIHVzZWZ1bCBvdXRwdXQgZm9ybWF0IGRpY3RhdGVkIGJ5IFBPU0lYLFxuYW5kIHNldHMgdGhlIHVuaXRzIHRvIDUxMiBieXRlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IDEwMjQgYnl0ZXMuIgorCisjZGVmaW5lIEhFTFBfZGQgInVzYWdlOiBkZCBbaWZ8b2Y9RklMRV0gW2lic3xvYnN8YnN8Y291bnR8c2Vla3xza2lwPU5dIFtjb252fHN0YXR1c3xpZmxhZ3xvZmxhZz1GTEFHWyxGTEFHLi4uXV1cblxuQ29weS9jb252ZXJ0IGJsb2NrcyBvZiBkYXRhIGZyb20gaW5wdXQgdG8gb3V0cHV0LCB3aXRoIHRoZSBmb2xsb3dpbmdcbmtleXdvcmQ9dmFsdWUgbW9kaWZpZXJzIChhbmQgdGhlaXIgZGVmYXVsdCB2YWx1ZXMpOlxuXG5pZj1GSUxFICBSZWFkIEZJTEUgKHN0ZGluKSAgICAgICAgICBvZj1GSUxFICBXcml0ZSB0byBGSUxFIChzdGRvdXQpXG4gICBicz1OICBCbG9jayBzaXplIGluIGJ5dGVzICg1MTIpICBjb3VudD1OICBTdG9wIGFmdGVyIGNvcHlpbmcgTiBibG9ja3MgKGFsbClcbiAgaWJzPU4gIElucHV0IGJsb2NrIHNpemUgKGJzPSkgICAgICAgb2JzPU4gIE91dHB1dCBibG9jayBzaXplIChicz0pXG4gc2tpcD1OICBTa2lwIE4gaW5wdXQgYmxvY2tzICgwKSAgICAgc2Vlaz1OICBTa2lwIE4gb3V0cHV0IGJsb2NrcyAoMClcblxuRWFjaCA9TiB2YWx1ZSBhY2NlcHRzIHRoZSBub3JtYWwgdW5pdCBzdWZmaXhlcyAoc2VlIHRveWJveCAtLWhlbHApLlxuXG5UaGVzZSBtb2RpZmllcnMgdGFrZSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBvdGVudGlhbCBvcHRpb25zOlxuXG5pZmxhZz1jb3VudF9ieXRlcyxza2lwX2J5dGVzICAgY291bnQ9TiBvciBza2lwPU4gaXMgaW4gYnl0ZXMgbm90IGJsb2Nrc1xub2ZsYWc9c2Vla19ieXRlcyxhcHBlbmQgICAgICAgIHNlZWs9TiBpcyBpbiBieXRlcywgYXBwZW5kIG91dHB1dCB0byBmaWxlXG5zdGF0dXM9bm94ZmVyLG5vbmUgICAgICAgICAgICAgZG9uJ3Qgc2hvdyB0cmFuc2ZlciByYXRlLCBubyBzdW1tYXJ5IGluZm9cbmNvbnY9XG4gIG5vdHJ1bmMgIERvbid0IHRydW5jYXRlIG91dHB1dCAgICBub2Vycm9yICBDb250aW51ZSBhZnRlciByZWFkIGVycm9yc1xuICBzeW5jICAgICBaZXJvIHBhZCBzaG9ydCByZWFkcyAgICAgZnN5bmMgICAgRmx1c2ggb3V0cHV0IHRvIGRpc2sgYXQgZW5kXG4gIHNwYXJzZSAgIFNlZWsgcGFzdCB6ZXJvZWQgb3V0cHV0ICBleGNsICAgICBGYWlsIGlmIG91dHB1dCBmaWxlIGV4aXN0c1xuICBub2NyZWF0ICBGYWlsIGlmIG9mPUZJTEUgbWlzc2luZyIKKworI2RlZmluZSBIRUxQX2RhdGUgInVzYWdlOiBkYXRlIFstdV0gWy1JIFJFU10gWy1yIEZJTEVdIFstZCBEQVRFXSBbK0RJU1BMQVlfRk9STUFUXSBbLUQgU0VUX0ZPUk1BVF0gW1NFVF1cblxuU2V0L2dldCB0aGUgY3VycmVudCBkYXRlL3RpbWUuIFdpdGggbm8gU0VUIHNob3dzIHRoZSBjdXJyZW50IGRhdGUuXG5cbi1kCVNob3cgREFURSBpbnN0ZWFkIG9mIGN1cnJlbnQgdGltZSAoY29udmVydCBkYXRlIGZvcm1hdClcbi1ECStGT1JNQVQgZm9yIFNFVCBvciAtZCAoaW5zdGVhZCBvZiBNTUREaGhtbVtbQ0NdWVldWy5zc10pXG4tSSBSRVMJSVNPIDg2MDEgd2l0aCBSRVNvbHV0aW9uIGQ9ZGF0ZS9oPWhvdXJzL209bWludXRlcy9zPXNlY29uZHMvbj1uc1xuLXIJVXNlIG1vZGlmaWNhdGlvbiB0aW1lIG9mIEZJTEUgaW5zdGVhZCBvZiBjdXJyZW50IGRhdGVcbi1zIERBVEUJU2V0IHRoZSBzeXN0ZW0gY2xvY2sgdG8gREFURS5cbi11CVVzZSBVVEMgaW5zdGVhZCBvZiBjdXJyZW50IHRpbWV6b25lXG5cblN1cHBvcnRlZCBpbnB1dCBmb3JtYXRzOlxuXG5NTUREaGhtbVtbQ0NdWVldWy5zc10gICAgIFBPU0lYXG5AVU5JWFRJTUVbLkZSQUNUSU9OXSAgICAgIHNlY29uZHMgc2luY2UgbWlkbmlnaHQgMTk3MC0wMS0wMVxuWVlZWS1NTS1ERCBbaGg6bW1bOnNzXV0gICBJU08gODYwMVxuaGg6bW1bOnNzXSAgICAgICAgICAgICAgICAyNC1ob3VyIHRpbWUgdG9kYXlcblxuQWxsIGlucHV0IGZvcm1hdHMgY2FuIGJlIGZvbGxvd2VkIGJ5IGZyYWN0aW9uYWwgc2Vjb25kcywgYW5kL29yIGEgVVRDXG5vZmZzZXQgc3VjaCBhcyAtMDgwMC5cblxuQWxsIGlucHV0IGZvcm1hdHMgY2FuIGJlIHByZWNlZGVkIGJ5IFRaPVwiaWRcIiB0byBzZXQgdGhlIGlucHV0IHRpbWUgem9uZVxuc2VwYXJhdGVseSBmcm9tIHRoZSBvdXRwdXQgdGltZSB6b25lLiBPdGhlcndpc2UgJFRaIHNldHMgYm90aC5cblxuK0ZPUk1BVCBzcGVjaWZpZXMgZGlzcGxheSBmb3JtYXQgc3RyaW5nIHVzaW5nIHN0cmZ0aW1lKDMpIHN5bnRheDpcblxuJSUgbGl0ZXJhbCAlICAgICAgICAgICAgICVuIG5ld2xpbmUgICAgICAgICAgICAgICV0IHRhYlxuJVMgc2Vjb25kcyAoMDAtNjApICAgICAgICVNIG1pbnV0ZSAoMDAtNTkpICAgICAgICVtIG1vbnRoICgwMS0xMilcbiVIIGhvdXIgKDAtMjMpICAgICAgICAgICAlSSBob3VyICgwMS0xMikgICAgICAgICAlcCBBTS9QTVxuJXkgc2hvcnQgeWVhciAoMDAtOTkpICAgICVZIHllYXIgICAgICAgICAgICAgICAgICVDIGNlbnR1cnlcbiVhIHNob3J0IHdlZWtkYXkgbmFtZSAgICAlQSB3ZWVrZGF5IG5hbWUgICAgICAgICAldSBkYXkgb2Ygd2VlayAoMS03LCAxPW1vbilcbiViIHNob3J0IG1vbnRoIG5hbWUgICAgICAlQiBtb250aCBuYW1lICAgICAgICAgICAlWiB0aW1lem9uZSBuYW1lXG4laiBkYXkgb2YgeWVhciAoMDAxLTM2NikgJWQgZGF5IG9mIG1vbnRoICgwMS0zMSkgJWUgZGF5IG9mIG1vbnRoICggMS0zMSlcbiVOIG5hbm9zZWMgKG91dHB1dCBvbmx5KVxuXG4lVSBXZWVrIG9mIHllYXIgKDAtNTMgc3RhcnQgU3VuZGF5KSAgICVXIFdlZWsgb2YgeWVhciAoMC01MyBzdGFydCBNb25kYXkpXG4lViBXZWVrIG9mIHllYXIgKDEtNTMgc3RhcnQgTW9uZGF5LCB3ZWVrIDwgNCBkYXlzIG5vdCBwYXJ0IG9mIHRoaXMgeWVhcilcblxuJUYgXCIlWS0lbS0lZFwiICAgJVIgXCIlSDolTVwiICAgICAgICAlVCBcIiVIOiVNOiVTXCIgICAgICAgICV6ICB0aW1lem9uZSAoLTA4MDApXG4lRCBcIiVtLyVkLyV5XCIgICAlciBcIiVJOiVNOiVTICVwXCIgICVoIFwiJWJcIiAgICAgICAgICAgICAgJTp6IHRpbWV6b25lICgtMDg6MDApXG4leCBsb2NhbGUgZGF0ZSAgJVggbG9jYWxlIHRpbWUgICAgJWMgbG9jYWxlIGRhdGUvdGltZSAgJXMgIHVuaXggZXBvY2ggdGltZSIKKworI2RlZmluZSBIRUxQX2N1dCAidXNhZ2U6IGN1dCBbLURzXSBbLWJjQ2ZGIExJU1RdIFstZE8gREVMSU1dIFtGSUxFLi4uXVxuXG5QcmludCBzZWxlY3RlZCBwYXJ0cyBvZiBsaW5lcyBmcm9tIGVhY2ggRklMRSB0byBzdGFuZGFyZCBvdXRwdXQuXG5cbkVhY2ggc2VsZWN0aW9uIExJU1QgaXMgY29tbWEgc2VwYXJhdGVkLCBlaXRoZXIgbnVtYmVycyAoY291bnRpbmcgZnJvbSAxKVxub3IgZGFzaCBzZXBhcmF0ZWQgcmFuZ2VzIChpbmNsdXNpdmUsIHdpdGggWC0gbWVhbmluZyB0byBlbmQgb2YgbGluZSBhbmQgLVhcbmZyb20gc3RhcnQpLiBCeSBkZWZhdWx0IHNlbGVjdGlvbiByYW5nZXMgYXJlIHNvcnRlZCBhbmQgY29sbGF0ZWQsIHVzZSAtRFxudG8gcHJldmVudCB0aGF0LlxuXG4tYglTZWxlY3QgYnl0ZXMgKHdpdGggLW4gcm91bmQgc3RhcnQvZW5kIGRvd24gdG8gc3RhcnQgb2YgdXRmOCBjaGFyKVxuLWMJU2VsZWN0IFVURi04IGNoYXJhY3RlcnNcbi1DCVNlbGVjdCB1bmljb2RlIGNvbHVtbnNcbi1kCUlucHV0IGRlbGltaXRlciAoZGVmYXVsdCBpcyBUQUIgZm9yIC1mLCBydW4gb2Ygd2hpdGVzcGFjZSBmb3IgLUYpXG4tRAlEb24ndCBzb3J0L2NvbGxhdGUgc2VsZWN0aW9ucyBvciBtYXRjaCAtZkYgbGluZXMgd2l0aG91dCBkZWxpbWl0ZXJcbi1mCVNlbGVjdCBmaWVsZHMgKHdvcmRzKSBzZXBhcmF0ZWQgYnkgc2luZ2xlIERFTElNIGNoYXJhY3RlclxuLUYJU2VsZWN0IGZpZWxkcyBzZXBhcmF0ZWQgYnkgREVMSU0gcmVnZXhcbi1PCU91dHB1dCBzZXBhcmF0b3IgKGRlZmF1bHQgb25lIHNwYWNlIGZvciAtRiwgaW5wdXQgZGVsaW0gZm9yIC1mKVxuLXMJU2tpcCBsaW5lcyB3aXRob3V0IGRlbGltaXRlcnMiCisKKyNkZWZpbmUgSEVMUF9jcGlvICJ1c2FnZTogY3BpbyAte298dHxpfHAgREVTVH0gWy1kTHR1dl0gWy0tdmVyYm9zZV0gWy1GIEZJTEVdIFstUiBbVVNFUl1bOkdST1VQXSBbLS1uby1wcmVzZXJ2ZS1vd25lcl1cblxuQ29weSBmaWxlcyBpbnRvIGFuZCBvdXQgb2YgYSBcIm5ld2NcIiBmb3JtYXQgY3BpbyBhcmNoaXZlLlxuXG4tZAlDcmVhdGUgZGlyZWN0b3JpZXMgaWYgbmVlZGVkXG4tRiBGSUxFCVVzZSBhcmNoaXZlIEZJTEUgaW5zdGVhZCBvZiBzdGRpbi9zdGRvdXRcbi1pCUV4dHJhY3QgZnJvbSBhcmNoaXZlIGludG8gZmlsZSBzeXN0ZW0gKHN0ZGluPWFyY2hpdmUpXG4tTAlGb2xsb3cgc3ltbGlua3Ncbi1vCUNyZWF0ZSBhcmNoaXZlIChzdGRpbj1saXN0IG9mIGZpbGVzLCBzdGRvdXQ9YXJjaGl2ZSlcbi1wIERFU1QJQ29weS1wYXNzIG1vZGUsIGNvcHkgc3RkaW4gZmlsZSBsaXN0IHRvIGRpcmVjdG9yeSBERVNUXG4tUiBVU0VSCVJlcGxhY2Ugb3duZXIgd2l0aCBVU0VSWzpHUk9VUF1cbi10CVRlc3QgZmlsZXMgKGxpc3Qgb25seSwgc3RkaW49YXJjaGl2ZSwgc3Rkb3V0PWxpc3Qgb2YgZmlsZXMpXG4tdQlVbmxpbmsgZXhpc3RpbmcgZmlsZXMgd2hlbiBleHRyYWN0aW5nXG4tdglWZXJib3NlXG4tLW5vLXByZXNlcnZlLW93bmVyICAgICBEb24ndCBzZXQgb3duZXJzaGlwIGR1cmluZyBleHRyYWN0IgorCisjZGVmaW5lIEhFTFBfaW5zdGFsbCAidXNhZ2U6IGluc3RhbGwgWy1kRHBzdl0gWy1vIFVTRVJdIFstZyBHUk9VUF0gWy1tIE1PREVdIFstdCBUQVJHRVRdIFtTT1VSQ0UuLi5dIFtERVNUXVxuXG5Db3B5IGZpbGVzIGFuZCBzZXQgYXR0cmlidXRlcy5cblxuLWQJQWN0IGxpa2UgbWtkaXIgLXBcbi1ECUNyZWF0ZSBsZWFkaW5nIGRpcmVjdG9yaWVzIGZvciBERVNUXG4tZwlNYWtlIGNvcHkgYmVsb25nIHRvIEdST1VQXG4tbQlTZXQgcGVybWlzc2lvbnMgdG8gTU9ERVxuLW8JTWFrZSBjb3B5IGJlbG9uZyB0byBVU0VSXG4tcAlQcmVzZXJ2ZSB0aW1lc3RhbXBzXG4tcwlDYWxsIFwic3RyaXAgLXBcIlxuLXQJQ29weSBmaWxlcyB0byBUQVJHRVQgZGlyIChubyBERVNUKVxuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX212ICJ1c2FnZTogbXYgWy1GZmluVHZ4XSBbLXQgVEFSR0VUXSBTT1VSQ0UuLi4gW0RFU1RdXG5cbi1GCURlbGV0ZSBhbnkgZXhpc3RpbmcgREVTVCBmaXJzdCAoLS1yZW1vdmUtZGVzdGluYXRpb24pXG4tZglGb3JjZSBjb3B5IGJ5IGRlbGV0aW5nIGRlc3RpbmF0aW9uIGZpbGVcbi1pCUludGVyYWN0aXZlLCBwcm9tcHQgYmVmb3JlIG92ZXJ3cml0aW5nIGV4aXN0aW5nIERFU1Rcbi1uCU5vIGNsb2JiZXIgKGRvbid0IG92ZXJ3cml0ZSBERVNUKVxuLXQJTW92ZSB0byBUQVJHRVQgZGlyIChubyBERVNUKVxuLVQJREVTVCBhbHdheXMgdHJlYXRlZCBhcyBmaWxlLCBtYXggMiBhcmd1bWVudHNcbi12CVZlcmJvc2Vcbi14CUF0b21pY2FsbHkgZXhjaGFuZ2Ugc291cmNlL2Rlc3QgKC0tc3dhcCkiCisKKyNkZWZpbmUgSEVMUF9jcCAidXNhZ2U6IGNwIFstYURkRmZIaUxsblBwUnJzVHV2XSBbLS1wcmVzZXJ2ZT1tb3RjeGFdIFstdCBUQVJHRVRdIFNPVVJDRS4uLiBbREVTVF1cblxuQ29weSBmaWxlcyBmcm9tIFNPVVJDRSB0byBERVNULiAgSWYgbW9yZSB0aGFuIG9uZSBTT1VSQ0UsIERFU1QgbXVzdFxuYmUgYSBkaXJlY3RvcnkuXG5cbi1hCVNhbWUgYXMgLWRwclxuLUQJQ3JlYXRlIGxlYWRpbmcgZGlycyB1bmRlciBERVNUICgtLXBhcmVudHMpXG4tZAlEb24ndCBkZXJlZmVyZW5jZSBzeW1saW5rc1xuLUYJRGVsZXRlIGFueSBleGlzdGluZyBERVNUIGZpcnN0ICgtLXJlbW92ZS1kZXN0aW5hdGlvbilcbi1mCURlbGV0ZSBkZXN0aW5hdGlvbiBmaWxlcyB3ZSBjYW4ndCB3cml0ZSB0b1xuLUgJRm9sbG93IHN5bWxpbmtzIGxpc3RlZCBvbiBjb21tYW5kIGxpbmVcbi1pCUludGVyYWN0aXZlLCBwcm9tcHQgYmVmb3JlIG92ZXJ3cml0aW5nIGV4aXN0aW5nIERFU1Rcbi1MCUZvbGxvdyBhbGwgc3ltbGlua3Ncbi1sCUhhcmQgbGluayBpbnN0ZWFkIG9mIGNvcHlcbi1uCU5vIGNsb2JiZXIgKGRvbid0IG92ZXJ3cml0ZSBERVNUKVxuLVAJRG8gbm90IGZvbGxvdyBzeW1saW5rc1xuLXAJUHJlc2VydmUgdGltZXN0YW1wcywgb3duZXJzaGlwLCBhbmQgbW9kZVxuLVIJUmVjdXJzZSBpbnRvIHN1YmRpcmVjdG9yaWVzIChERVNUIG11c3QgYmUgYSBkaXJlY3RvcnkpXG4tcglTeW5vbnltIGZvciAtUlxuLXMJU3ltbGluayBpbnN0ZWFkIG9mIGNvcHlcbi1UCURFU1QgYWx3YXlzIHRyZWF0ZWQgYXMgZmlsZSwgbWF4IDIgYXJndW1lbnRzXG4tdAlDb3B5IHRvIFRBUkdFVCBkaXIgKG5vIERFU1QpXG4tdQlVcGRhdGUgKGtlZXAgbmV3ZXN0IG10aW1lKVxuLXYJVmVyYm9zZVxuXG5Bcmd1bWVudHMgdG8gLS1wcmVzZXJ2ZSBhcmUgdGhlIGZpcnN0IGxldHRlcihzKSBvZjpcblxuICAgICAgICBtb2RlIC0gcGVybWlzc2lvbnMgKGlnbm9yZSB1bWFzayBmb3Igcnd4LCBjb3B5IHN1aWQgYW5kIHN0aWNreSBiaXQpXG4gICBvd25lcnNoaXAgLSB1c2VyIGFuZCBncm91cFxuICB0aW1lc3RhbXBzIC0gZmlsZSBjcmVhdGlvbiwgbW9kaWZpY2F0aW9uLCBhbmQgYWNjZXNzIHRpbWVzLlxuICAgICBjb250ZXh0IC0gc2VjdXJpdHkgY29udGV4dFxuICAgICAgIHhhdHRyIC0gZXh0ZW5kZWQgYXR0cmlidXRlc1xuICAgICAgICAgYWxsIC0gYWxsIG9mIHRoZSBhYm92ZSIKKworI2RlZmluZSBIRUxQX2NvbW0gInVzYWdlOiBjb21tIFstMTIzXSBGSUxFMSBGSUxFMlxuXG5SZWFkIEZJTEUxIGFuZCBGSUxFMiwgd2hpY2ggc2hvdWxkIGJlIG9yZGVyZWQsIGFuZCBwcm9kdWNlIHRocmVlIHRleHRcbmNvbHVtbnMgYXMgb3V0cHV0OiBsaW5lcyBvbmx5IGluIEZJTEUxOyBsaW5lcyBvbmx5IGluIEZJTEUyOyBhbmQgbGluZXNcbmluIGJvdGggZmlsZXMuIEZpbGVuYW1lIFwiLVwiIGlzIGEgc3lub255bSBmb3Igc3RkaW4uXG5cbi0xCVN1cHByZXNzIHRoZSBvdXRwdXQgY29sdW1uIG9mIGxpbmVzIHVuaXF1ZSB0byBGSUxFMVxuLTIJU3VwcHJlc3MgdGhlIG91dHB1dCBjb2x1bW4gb2YgbGluZXMgdW5pcXVlIHRvIEZJTEUyXG4tMwlTdXBwcmVzcyB0aGUgb3V0cHV0IGNvbHVtbiBvZiBsaW5lcyBkdXBsaWNhdGVkIGluIEZJTEUxIGFuZCBGSUxFMiIKKworI2RlZmluZSBIRUxQX2NtcCAidXNhZ2U6IGNtcCBbLWxzXSBbLW4gTEVOXSBGSUxFMSBbRklMRTIgW1NLSVAxIFtTS0lQMl1dXVxuXG5Db21wYXJlIHRoZSBjb250ZW50cyBvZiBmaWxlcyAodnMgc3RkaW4gaWYgb25seSBvbmUgZ2l2ZW4pLCBvcHRpb25hbGx5XG5za2lwcGluZyBieXRlcyBhdCBzdGFydC5cblxuLWwJU2hvdyBhbGwgZGlmZmVyaW5nIGJ5dGVzXG4tbiBMRU4JQ29tcGFyZSBhdCBtb3N0IExFTiBieXRlc1xuLXMJU2lsZW50IgorCisjZGVmaW5lIEhFTFBfY3JjMzIgInVzYWdlOiBjcmMzMiBbZmlsZS4uLl1cblxuT3V0cHV0IGNyYzMyIGNoZWNrc3VtIGZvciBlYWNoIGZpbGUuIgorCisjZGVmaW5lIEhFTFBfY2tzdW0gInVzYWdlOiBja3N1bSBbLUhJUExOXSBbRklMRS4uLl1cblxuRm9yIGVhY2ggZmlsZSwgb3V0cHV0IGNyYzMyIGNoZWNrc3VtIHZhbHVlLCBsZW5ndGggYW5kIG5hbWUgb2YgZmlsZS5cbklmIG5vIGZpbGVzIGxpc3RlZCwgY29weSBmcm9tIHN0ZGluLiAgRmlsZW5hbWUgXCItXCIgaXMgYSBzeW5vbnltIGZvciBzdGRpbi5cblxuLUgJSGV4YWRlY2ltYWwgY2hlY2tzdW0gKGRlZmF1bHRzIHRvIGRlY2ltYWwpXG4tSQlTa2lwIHBvc3QtaW52ZXJzaW9uXG4tUAlQcmUtaW52ZXJzaW9uXG4tTAlMaXR0bGUgZW5kaWFuIChkZWZhdWx0cyB0byBiaWcgZW5kaWFuKVxuLU4JRG8gbm90IGluY2x1ZGUgbGVuZ3RoIGluIENSQyBjYWxjdWxhdGlvbiAob3Igb3V0cHV0KSIKKworI2RlZmluZSBIRUxQX2NobW9kICJ1c2FnZTogY2htb2QgWy1SXSBNT0RFIEZJTEUuLi5cblxuQ2hhbmdlIG1vZGUgb2YgbGlzdGVkIGZpbGVbc10gKHJlY3Vyc2l2ZWx5IHdpdGggLVIpLlxuXG5NT0RFIGNhbiBiZSAoY29tbWEtc2VwYXJhdGVkKSBzdGFuemFzOiBbdWdvYV1bKy09XVtyd3hzdFh1Z29dXG5cblN0YW56YXMgYXJlIGFwcGxpZWQgaW4gb3JkZXI6IEZvciBlYWNoIGNhdGVnb3J5ICh1ID0gdXNlcixcbmcgPSBncm91cCwgbyA9IG90aGVyLCBhID0gYWxsIHRocmVlLCBpZiBub25lIHNwZWNpZmllZCBkZWZhdWx0IGlzIGEpLFxuc2V0ICgrKSwgY2xlYXIgKC0pLCBvciBjb3B5ICg9KSwgciA9IHJlYWQsIHcgPSB3cml0ZSwgeCA9IGV4ZWN1dGUuXG5zID0gdStzID0gc3VpZCwgZytzID0gc2dpZCwgK3QgPSBzdGlja3kuIChvK3MgaWdub3JlZCBzbyBhK3MgZG9lc24ndCBzZXQgK3QpXG5zdWlkL3NnaWQ6IGV4ZWN1dGUgYXMgdGhlIHVzZXIvZ3JvdXAgd2hvIG93bnMgdGhlIGZpbGUuXG5zdGlja3k6IGNhbid0IGRlbGV0ZSBmaWxlcyB5b3UgZG9uJ3Qgb3duIG91dCBvZiB0aGlzIGRpcmVjdG9yeVxuWCA9IHggZm9yIGRpcmVjdG9yaWVzIG9yIGlmIGFueSBjYXRlZ29yeSBhbHJlYWR5IGhhcyB4IHNldC5cblxuT3IgTU9ERSBjYW4gYmUgYW4gb2N0YWwgdmFsdWUgdXAgdG8gNzc3Nwl1ZyB1dXVnZ2dvb28JdG9wICtcbmJpdCAxID0gbyt4LCBiaXQgMTw8OCA9IHUrdywgMTw8MTEgPSBnKzEJc3N0cnd4cnd4cnd4CWJvdHRvbVxuXG5FeGFtcGxlczpcbmNobW9kIHUrdyBmaWxlIC0gYWxsb3cgb3duZXIgb2YgXCJmaWxlXCIgdG8gd3JpdGUgdG8gaXQuXG5jaG1vZCA3NDQgZmlsZSAtIHVzZXIgY2FuIHJlYWQvd3JpdGUvZXhlY3V0ZSwgZXZlcnlvbmUgZWxzZSByZWFkIG9ubHkiCisKKyNkZWZpbmUgSEVMUF9jaG93biAic2VlOiBjaGdycCIKKworI2RlZmluZSBIRUxQX2NoZ3JwICJ1c2FnZTogY2hncnAvY2hvd24gWy1SSExQXSBbLWZ2aF0gR1JPVVAgRklMRS4uLlxuXG5DaGFuZ2UgZ3JvdXAgb2Ygb25lIG9yIG1vcmUgZmlsZXMuXG5cbi1mCVN1cHByZXNzIG1vc3QgZXJyb3IgbWVzc2FnZXNcbi1oCUNoYW5nZSBzeW1saW5rcyBpbnN0ZWFkIG9mIHdoYXQgdGhleSBwb2ludCB0b1xuLVIJUmVjdXJzZSBpbnRvIHN1YmRpcmVjdG9yaWVzIChpbXBsaWVzIC1oKVxuLUgJV2l0aCAtUiBjaGFuZ2UgdGFyZ2V0IG9mIHN5bWxpbmssIGZvbGxvdyBjb21tYW5kIGxpbmUgc3ltbGlua3Ncbi1MCVdpdGggLVIgY2hhbmdlIHRhcmdldCBvZiBzeW1saW5rLCBmb2xsb3cgYWxsIHN5bWxpbmtzXG4tUAlXaXRoIC1SIGNoYW5nZSBzeW1saW5rLCBkbyBub3QgZm9sbG93IHN5bWxpbmtzIChkZWZhdWx0KVxuLXYJVmVyYm9zZSIKKworI2RlZmluZSBIRUxQX2NhdCAidXNhZ2U6IGNhdCBbLWV0dXZdIFtGSUxFLi4uXVxuXG5Db3B5IChjb25jYXRlbmF0ZSkgZmlsZXMgdG8gc3Rkb3V0LiAgSWYgbm8gZmlsZXMgbGlzdGVkLCBjb3B5IGZyb20gc3RkaW4uXG5GaWxlbmFtZSBcIi1cIiBpcyBhIHN5bm9ueW0gZm9yIHN0ZGluLlxuXG4tZQlNYXJrIGVhY2ggbmV3bGluZSB3aXRoICRcbi10CVNob3cgdGFicyBhcyBeSVxuLXUJQ29weSBvbmUgYnl0ZSBhdCBhIHRpbWUgKHNsb3cpXG4tdglEaXNwbGF5IG5vbnByaW50aW5nIGNoYXJhY3RlcnMgYXMgZXNjYXBlIHNlcXVlbmNlcyB3aXRoIE0teCBmb3JcbgloaWdoIGFzY2lpIGNoYXJhY3RlcnMgKD4xMjcpLCBhbmQgXnggZm9yIG90aGVyIG5vbnByaW50aW5nIGNoYXJzIgorCisjZGVmaW5lIEhFTFBfY2FsICJ1c2FnZTogY2FsIFstaF0gW1tbREFZXSBNT05USF0gWUVBUl1cblxuUHJpbnQgYSBjYWxlbmRhci5cblxuV2l0aCBvbmUgYXJndW1lbnQsIHByaW50cyBhbGwgbW9udGhzIG9mIHRoZSBzcGVjaWZpZWQgeWVhci5cbldpdGggdHdvIGFyZ3VtZW50cywgcHJpbnRzIGNhbGVuZGFyIGZvciBtb250aCBhbmQgeWVhci5cbldpdGggdGhyZWUgYXJndW1lbnRzLCBoaWdobGlnaHRzIGRheSB3aXRoaW4gbW9udGggYW5kIHllYXIuXG5cbi1oCURvbid0IGhpZ2hsaWdodCB0b2RheSIKKworI2RlZmluZSBIRUxQX2Jhc2VuYW1lICJ1c2FnZTogYmFzZW5hbWUgWy1hXSBbLXMgU1VGRklYXSBOQU1FLi4uIHwgTkFNRSBbU1VGRklYXVxuXG5SZXR1cm4gbm9uLWRpcmVjdG9yeSBwb3J0aW9uIG9mIGEgcGF0aG5hbWUgcmVtb3Zpbmcgc3VmZml4LlxuXG4tYQkJQWxsIGFyZ3VtZW50cyBhcmUgbmFtZXNcbi1zIFNVRkZJWAlSZW1vdmUgc3VmZml4IChpbXBsaWVzIC1hKSIKKwpkaWZmIC0tZ2l0IGEvYW5kcm9pZC9tYWMvZ2VuZXJhdGVkL25ld3RveXMuaCBiL2FuZHJvaWQvbWFjL2dlbmVyYXRlZC9uZXd0b3lzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDg3MzA3MQotLS0gL2Rldi9udWxsCisrKyBiL2FuZHJvaWQvbWFjL2dlbmVyYXRlZC9uZXd0b3lzLmgKQEAgLTAsMCArMSwzNDcgQEAKK1VTRV9UT1lCT1goTkVXVE9ZKHRveWJveCwgMCwgVE9ZRkxBR19TVEFZUk9PVHxUT1lGTEFHX05PSEVMUCkpCitVU0VfU0goT0xEVE9ZKC1iYXNoLCBzaCwgMCkpCitVU0VfU0goT0xEVE9ZKC1zaCwgc2gsIDApKQorVVNFX1NIKE9MRFRPWSgtdG95c2gsIHNoLCAwKSkKK1VTRV9TSChPTERUT1koLiwgc291cmNlLCBUT1lGTEFHX05PRk9SSykpCitVU0VfVFJVRShPTERUT1koOiwgdHJ1ZSwgVE9ZRkxBR19OT0ZPUkt8VE9ZRkxBR19OT0hFTFApKQorVVNFX1RFU1RfR0xVRShPTERUT1koWywgdGVzdCwgVE9ZRkxBR19CSU58VE9ZRkxBR19NQVlGT1JLfFRPWUZMQUdfTk9IRUxQKSkKK1VTRV9TSChPTERUT1koW1ssIHRlc3QsIFRPWUZMQUdfTk9GT1JLfFRPWUZMQUdfTk9IRUxQKSkKK1VTRV9BQ1BJKE5FV1RPWShhY3BpLCAiYWJjdFYiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR1JPVVBBREQoT0xEVE9ZKGFkZGdyb3VwLCBncm91cGFkZCwgVE9ZRkxBR19ORUVEUk9PVHxUT1lGTEFHX1NCSU4pKQorVVNFX1VTRVJBREQoT0xEVE9ZKGFkZHVzZXIsIHVzZXJhZGQsIFRPWUZMQUdfTkVFRFJPT1R8VE9ZRkxBR19VTUFTS3xUT1lGTEFHX1NCSU4pKQorVVNFX0FSQ0goTkVXVE9ZKGFyY2gsIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9BUlAoTkVXVE9ZKGFycCwgInZpOm5Ec2RhcDpBOkg6WytBcF1bIXNkXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9BUlBJTkcoTkVXVE9ZKGFycGluZywgIjwxPjFzOkk6dyM8MGMjPDBBVURicWZbK0FVXVsrRGZdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9BU0NJSShORVdUT1koYXNjaWksIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfTElORUJVRikpCitVU0VfQkFTRTMyKE5FV1RPWShiYXNlMzIsICJkaXcjPDA9NzZbIWR3XSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfTElORUJVRikpCitVU0VfQkFTRTY0KE5FV1RPWShiYXNlNjQsICJkaXcjPDA9NzZbIWR3XSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfTElORUJVRikpCitVU0VfQkFTRU5BTUUoTkVXVE9ZKGJhc2VuYW1lLCAiXjwxYXM6IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIKE9MRFRPWShiYXNoLCBzaCwgVE9ZRkxBR19CSU4pKQorVVNFX0JDKE5FV1RPWShiYywgImkoaW50ZXJhY3RpdmUpbChtYXRobGliKXEocXVpZXQpcyhzdGFuZGFyZCl3KHdhcm4pIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0JMS0RJU0NBUkQoTkVXVE9ZKGJsa2Rpc2NhcmQsICI8MT4xZihmb3JjZSlsKGxlbmd0aCkjPDBvKG9mZnNldCkjPDBzKHNlY3VyZSl6KHplcm9vdXQpWyFzel0iLCBUT1lGTEFHX0JJTikpCitVU0VfQkxLSUQoTkVXVE9ZKGJsa2lkLCAiVUxvOnMqWyFMVV0iLCBUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0JMT0NLREVWKE5FV1RPWShibG9ja2RldiwgIjwxPjEoc2V0cm8pKHNldHJ3KShnZXRybykoZ2V0c3MpKGdldGJzeikoc2V0YnN6KSM8MChnZXRzeikoZ2V0c2l6ZSkoZ2V0c2l6ZTY0KShnZXRyYSkoc2V0cmEpIzwwKGZsdXNoYnVmcykocmVyZWFkcHQpIixUT1lGTEFHX1NCSU4pKQorVVNFX0JPT1RDSEFSVEQoTkVXVE9ZKGJvb3RjaGFydGQsIDAsIFRPWUZMQUdfU1RBWVJPT1R8VE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0JSQ1RMKE5FV1RPWShicmN0bCwgIjwxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9CVU5aSVAyKE5FV1RPWShidW56aXAyLCAiY2Z0a3YiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfQlpDQVQoTkVXVE9ZKGJ6Y2F0LCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfQ0FMKE5FV1RPWShjYWwsICI+M2giLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfQ0FUKE5FV1RPWShjYXQsICJ1dnRlIiwgVE9ZRkxBR19CSU4pKQorVVNFX1NIKE5FV1RPWShjZCwgIj4xTFBbLUxQXSIsIFRPWUZMQUdfTk9GT1JLKSkKK1VTRV9DSEFUVFIoTkVXVE9ZKGNoYXR0ciwgIj9wI3YjUiIsIFRPWUZMQUdfQklOKSkKK1VTRV9DSENPTihORVdUT1koY2hjb24sICI8Mmh2UiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9DSEdSUChORVdUT1koY2hncnAsICI8Mmgobm8tZGVyZWZlcmVuY2UpUExIUmZ2Wy1ITFBdIiwgVE9ZRkxBR19CSU4pKQorVVNFX0NITU9EKE5FV1RPWShjaG1vZCwgIjwyP3ZmUlstdmZdIiwgVE9ZRkxBR19CSU4pKQorVVNFX0NIT1dOKE9MRFRPWShjaG93biwgY2hncnAsIFRPWUZMQUdfQklOKSkKK1VTRV9DSFJPT1QoTkVXVE9ZKGNocm9vdCwgIl48MSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTnxUT1lGTEFHX0FSR0ZBSUwoMTI1KSkpCitVU0VfQ0hSVChORVdUT1koY2hydCwgIl5tcCM8MGlSYnJmb1shaWJyZm9dIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NIU0goTkVXVE9ZKGNoc2gsICI+MVI6czphIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19TVEFZUk9PVCkpCitVU0VfQ0hWVChORVdUT1koY2h2dCwgIjwxPjEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfQ0tTVU0oTkVXVE9ZKGNrc3VtLCAiSElQTE4iLCBUT1lGTEFHX0JJTikpCitVU0VfQ0xFQVIoTkVXVE9ZKGNsZWFyLCBOVUxMLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfQ01QKE5FV1RPWShjbXAsICI8MT40bHMoc2lsZW50KShxdWlldCluIzwxWyFsc10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0FSR0ZBSUwoMikpKQorVVNFX0NPTU0oTkVXVE9ZKGNvbW0sICI8Mj4yMzIxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NPVU5UKE5FV1RPWShjb3VudCwgIjwwPjBsIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0NQKE5FV1RPWShjcCwgIjwxKHByZXNlcnZlKTo7RChwYXJlbnRzKVJITFBwcnVkYXNsdih2ZXJib3NlKW5GKHJlbW92ZS1kZXN0aW5hdGlvbilmaXQ6VFstSExQZF1bLW5pdV1bK1JyXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9DUElPKE5FV1RPWShjcGlvLCAiKGlnbm9yZS1kZXZubykocmVudW1iZXItaW5vZGVzKShxdWlldCkobm8tcHJlc2VydmUtb3duZXIpUihvd25lcik6bWQobWFrZS1kaXJlY3Rvcmllcyl1TEg6cHxpfHR8Rjp2KHZlcmJvc2Upb3xbIXBpb11bIXBvdF1bIXBGXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9DUkMzMihORVdUT1koY3JjMzIsIDAsIFRPWUZMQUdfQklOKSkKK1VTRV9DUk9ORChORVdUT1koY3JvbmQsICJmYlNsIzwwPThkIzwwTDpjOlstYmZdWy1MU11bLWxkXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9DUk9OVEFCKE5FV1RPWShjcm9udGFiLCAiYzp1OmVsclshZWxyXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfU1RBWVJPT1QpKQorVVNFX0NTUExJVChORVdUT1koY3NwbGl0LCAiPDJza2Y6biMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfQ1VUKE5FV1RPWShjdXQsICJiKnxjKnxmKnxGKHJlZ2V4LWZpZWxkcykqfEMqfE8ob3V0cHV0LWRlbGltaXRlcik6ZDpzRChhbGxvdy1kdXBsaWNhdGVzKW5bIWNiZkZdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0RBVEUoTkVXVE9ZKGRhdGUsICI+MWQ6RDpJKGlzby04NjAxKTo7cjpzOnUodXRjKVshZHJdIiwgVE9ZRkxBR19CSU4pKQorVVNFX0REKE5FV1RPWShkZCwgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0RFQUxMT0NWVChORVdUT1koZGVhbGxvY3Z0LCAiPjEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9TSChORVdUT1koZGVjbGFyZSwgInBBYWlsdW54ciIsIFRPWUZMQUdfTk9GT1JLKSkKK1VTRV9HUk9VUERFTChPTERUT1koZGVsZ3JvdXAsIGdyb3VwZGVsLCBUT1lGTEFHX05FRURST09UfFRPWUZMQUdfU0JJTikpCitVU0VfVVNFUkRFTChPTERUT1koZGVsdXNlciwgdXNlcmRlbCwgVE9ZRkxBR19ORUVEUk9PVHxUT1lGTEFHX1NCSU4pKQorVVNFX0RFTU9fTUFOWV9PUFRJT05TKE5FV1RPWShkZW1vX21hbnlfb3B0aW9ucywgIlpZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBenl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmEiLCBUT1lGTEFHX0JJTikpCitVU0VfREVNT19OVU1CRVIoTkVXVE9ZKGRlbW9fbnVtYmVyLCAiRCM9MzwzTSM8MGhjZGJzIiwgVE9ZRkxBR19CSU4pKQorVVNFX0RFTU9fU0NBTktFWShORVdUT1koZGVtb19zY2Fua2V5LCAwLCBUT1lGTEFHX0JJTikpCitVU0VfREVNT19VVEY4VE9XQyhORVdUT1koZGVtb191dGY4dG93YywgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0RFVk1FTShORVdUT1koZGV2bWVtLCAiPDE+MyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfREYoTkVXVE9ZKGRmLCAiSFBraGl0KmFbLUhQaF0iLCBUT1lGTEFHX0JJTikpCitVU0VfREhDUChORVdUT1koZGhjcCwgIlY6SDpGOngqcjpPKkEjPDA9MjBUIzwwPTN0IzwwPTNzOnA6aTpTQlJDYW92cW5iZiIsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX1JPT1RPTkxZKSkKK1VTRV9ESENQNihORVdUT1koZGhjcDYsICJyOkEjPDBUIzwwdCM8MHM6cDppOlNSdnFuYmYiLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19ST09UT05MWSkpCitVU0VfREhDUEQoTkVXVE9ZKGRoY3BkLCAiPjFQIzwwPjY1NTM1Zmk6UzQ2WyE0Nl0iLCBUT1lGTEFHX1NCSU58VE9ZRkxBR19ST09UT05MWSkpCitVU0VfRElGRihORVdUT1koZGlmZiwgIjwyPjIodW5jaGFuZ2VkLWxpbmUtZm9ybWF0KTo7KG9sZC1saW5lLWZvcm1hdCk6OyhuZXctbGluZS1mb3JtYXQpOjsoY29sb3IpKHN0cmlwLXRyYWlsaW5nLWNyKUIoaWdub3JlLWJsYW5rLWxpbmVzKWQobWluaW1hbCliKGlnbm9yZS1zcGFjZS1jaGFuZ2UpdXQoZXhwYW5kLXRhYnMpdyhpZ25vcmUtYWxsLXNwYWNlKWkoaWdub3JlLWNhc2UpVChpbml0aWFsLXRhYilzKHJlcG9ydC1pZGVudGljYWwtZmlsZXMpcShicmllZilhKHRleHQpUyhzdGFydGluZy1maWxlKTpGKHNob3ctZnVuY3Rpb24tbGluZSk6O0wobGFiZWwpKk4obmV3LWZpbGUpcihyZWN1cnNpdmUpVSh1bmlmaWVkKSM8MD0zIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19BUkdGQUlMKDIpKSkKK1VTRV9ESVJOQU1FKE5FV1RPWShkaXJuYW1lLCAiPDEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfRE1FU0coTkVXVE9ZKGRtZXNnLCAidyhmb2xsb3cpQ1NUdHJzIzwxbiNjWyFUdHJdWyFDY11bIVN3XSIsIFRPWUZMQUdfQklOKSkKK1VTRV9ETlNET01BSU5OQU1FKE5FV1RPWShkbnNkb21haW5uYW1lLCAiPjAiLCBUT1lGTEFHX0JJTikpCitVU0VfRE9TMlVOSVgoTkVXVE9ZKGRvczJ1bml4LCAwLCBUT1lGTEFHX0JJTikpCitVU0VfRFUoTkVXVE9ZKGR1LCAiZCM8MD0tMWhtbGNhSGtLTHN4YlstSExdWy1rS21oXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9EVU1QTEVBU0VTKE5FV1RPWShkdW1wbGVhc2VzLCAiPjBhcmY6WyFhcl0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfRUNITyhORVdUT1koZWNobywgIl4/RWVuWy1lRV0iLCBUT1lGTEFHX0JJTnxUT1lGTEFHX01BWUZPUkt8VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9FR1JFUChPTERUT1koZWdyZXAsIGdyZXAsIFRPWUZMQUdfQklOfFRPWUZMQUdfQVJHRkFJTCgyKXxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0VKRUNUKE5FV1RPWShlamVjdCwgIj4xc3RUWyF0VF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfRU5WKE5FV1RPWShlbnYsICJeZTppMHUqIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19BUkdGQUlMKDEyNSkpKQorVVNFX1NIKE5FV1RPWShldmFsLCAwLCBUT1lGTEFHX05PRk9SSykpCitVU0VfU0goTkVXVE9ZKGV4ZWMsICJeY2xhOiIsIFRPWUZMQUdfTk9GT1JLKSkKK1VTRV9TSChORVdUT1koZXhpdCwgMCwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX0VYUEFORChORVdUT1koZXhwYW5kLCAidCoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0goTkVXVE9ZKGV4cG9ydCwgIm5wIiwgVE9ZRkxBR19OT0ZPUkspKQorVVNFX0VYUFIoTkVXVE9ZKGV4cHIsIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfQVJHRkFJTCgyKSkpCitVU0VfRkFDVE9SKE5FV1RPWShmYWN0b3IsICI/aHgiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfRkFMTE9DQVRFKE5FV1RPWShmYWxsb2NhdGUsICI+MWwjfG8jIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZBTFNFKE5FV1RPWShmYWxzZSwgTlVMTCwgVE9ZRkxBR19CSU58VE9ZRkxBR19OT0hFTFB8VE9ZRkxBR19NQVlGT1JLKSkKK1VTRV9GRElTSyhORVdUT1koZmRpc2ssICJDIzwwSCM8MFMjPDBiIzw1MTJ1bCIsIFRPWUZMQUdfU0JJTikpCitVU0VfRkdSRVAoT0xEVE9ZKGZncmVwLCBncmVwLCBUT1lGTEFHX0JJTnxUT1lGTEFHX0FSR0ZBSUwoMil8VE9ZRkxBR19MSU5FQlVGKSkKK1VTRV9GSUxFKE5FV1RPWShmaWxlLCAiPDFiKGJyaWVmKWhMc1shaExdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZJTkQoTkVXVE9ZKGZpbmQsICI/XkhMWy1ITF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfRkxPQ0soTkVXVE9ZKGZsb2NrLCAiPDE+MW5zdXhbLXN1eF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfRk1UKE5FV1RPWShmbXQsICJ3IzwwPTc1IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZPTEQoTkVXVE9ZKGZvbGQsICJic3cjPDE9ODAiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfRlJFRShORVdUT1koZnJlZSwgImhnbWtiWyFoZ21rYl0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfRlJFRVJBTURJU0soTkVXVE9ZKGZyZWVyYW1kaXNrLCAiPDE+MSIsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9GU0NLKE5FV1RPWShmc2NrLCAiP3Q6QU5QUlRWc0MjIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0ZTRlJFRVpFKE5FV1RPWShmc2ZyZWV6ZSwgIjwxPjFmfHV8WyFmdV0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX0ZTVFlQRShORVdUT1koZnN0eXBlLCAiPDEiLCBUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0ZTWU5DKE5FV1RPWShmc3luYywgIjwxZCIsIFRPWUZMQUdfQklOKSkKK1VTRV9GVFBHRVQoTkVXVE9ZKGZ0cGdldCwgIjwyPjNQOmNwOnU6dmdzbExtTWREWy1nc11bIWdzbExtTWREXVshY2xMXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9GVFBQVVQoT0xEVE9ZKGZ0cHB1dCwgZnRwZ2V0LCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR0VUQ09ORihORVdUT1koZ2V0Y29uZiwgIj4yYWwiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR0VURU5GT1JDRShORVdUT1koZ2V0ZW5mb3JjZSwgIj4wIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9HRVRGQVRUUihORVdUT1koZ2V0ZmF0dHIsICIob25seS12YWx1ZXMpZGhuOiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9HRVRPUFQoTkVXVE9ZKGdldG9wdCwgIl5hKGFsdGVybmF0aXZlKW46KG5hbWUpbzoob3B0aW9ucylsKihsb25nKShsb25nb3B0aW9ucylUdSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9HRVRUWShORVdUT1koZ2V0dHksICI8MnQjPDBIOkk6bDpmOml3bm1MaCIsIFRPWUZMQUdfU0JJTikpCitVU0VfR0lUQ0hFQ0tPVVQoTkVXVE9ZKGdpdGNoZWNrb3V0LCAiPDEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR0lUQ0xPTkUoTkVXVE9ZKGdpdGNsb25lLCAiPDEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR0lURkVUQ0goTkVXVE9ZKGdpdGZldGNoLCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR0lUSU5JVChORVdUT1koZ2l0aW5pdCwgIjwxIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dJVFJFTU9URShORVdUT1koZ2l0cmVtb3RlLCAiPDEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR1BJT0RFVEVDVChORVdUT1koZ3Bpb2RldGVjdCwgIj4wIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dQSU9GSU5EKE5FV1RPWShncGlvZmluZCwgIjwxPjEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR1BJT0dFVChORVdUT1koZ3Bpb2dldCwgIjwybCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9HUElPSU5GTyhORVdUT1koZ3Bpb2luZm8sIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9HUElPU0VUKE5FV1RPWShncGlvc2V0LCAiPDJsIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dSRVAoTkVXVE9ZKGdyZXAsICIobGluZS1idWZmZXJlZCkoY29sb3IpOjsoZXhjbHVkZS1kaXIpKlMoZXhjbHVkZSkqTShpbmNsdWRlKSpaekVGSElhYihieXRlLW9mZnNldCloKG5vLWZpbGVuYW1lKWlubyhvbmx5LW1hdGNoaW5nKXJSc3Z3Yyhjb3VudClMKGZpbGVzLXdpdGhvdXQtbWF0Y2gpbChmaWxlcy13aXRoLW1hdGNoZXMpcShxdWlldCkoc2lsZW50KWUqZipDI0IjQSNtI3hbIXd4XVshRUZdIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19BUkdGQUlMKDIpfFRPWUZMQUdfTElORUJVRikpCitVU0VfR1JPVVBBREQoTkVXVE9ZKGdyb3VwYWRkLCAiPDE+MlI6ZyM8MD4yMTQ3NDgzNjQ3UyIsIFRPWUZMQUdfTkVFRFJPT1R8VE9ZRkxBR19TQklOKSkKK1VTRV9HUk9VUERFTChORVdUT1koZ3JvdXBkZWwsICI8MT4yPyIsIFRPWUZMQUdfTkVFRFJPT1R8VE9ZRkxBR19TQklOKSkKK1VTRV9HUk9VUFMoTkVXVE9ZKGdyb3VwcywgTlVMTCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0dVTlpJUChORVdUT1koZ3VuemlwLCAiY2Rma3QxMjM0NTY3ODlbLTEyMzQ1Njc4OV0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfR1pJUChORVdUT1koZ3ppcCwgICAgIm4obm8tbmFtZSljZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9SRUJPT1QoT0xEVE9ZKGhhbHQsIHJlYm9vdCwgVE9ZRkxBR19TQklOfFRPWUZMQUdfTkVFRFJPT1QpKQorVVNFX0hEKE9MRFRPWShoZCwgaGV4ZHVtcCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0hFQUQoTkVXVE9ZKGhlYWQsICI/bihsaW5lcykjPDA9MTBjKGJ5dGVzKSM8MHF2Wy1uY10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0hFTExPKE5FV1RPWShoZWxsbywgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0hFTFAoTkVXVE9ZKGhlbHAsICJhaHUiLCBUT1lGTEFHX0JJTnxUT1lGTEFHX01BWUZPUkspKQorVVNFX0hFWERVTVAoTkVXVE9ZKGhleGR1bXAsICJiY0NkbiM8MG9zIzwwdnhbIWJjQ2RveF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfSEVYRURJVChORVdUT1koaGV4ZWRpdCwgIjwxPjFyIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0hPU1QoTkVXVE9ZKGhvc3QsICI8MT4yYXZ0OiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9IT1NUSUQoTkVXVE9ZKGhvc3RpZCwgIj4wIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0hPU1ROQU1FKE5FV1RPWShob3N0bmFtZSwgIj4xYmRzZkY6WyFiZHNmXSIsIFRPWUZMQUdfQklOKSkKK1VTRV9IVFRQRChORVdUT1koaHR0cGQsICI+MXYiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX0hXQ0xPQ0soTkVXVE9ZKGh3Y2xvY2ssICI+MChmYXN0KWYocnRjKTp1KHV0YylsKGxvY2FsdGltZSl0KHN5c3R6KXMoaGN0b3N5cylyKHNob3cpdyhzeXN0b2hjKVstdWxdWyFydHN3XSIsIFRPWUZMQUdfU0JJTikpCitVU0VfSTJDREVURUNUKE5FV1RPWShpMmNkZXRlY3QsICI+M2FGIzwwPjYzbHFyeVshcXJdWyFGbF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX0kyQ0RVTVAoTkVXVE9ZKGkyY2R1bXAsICI8Mj4yZnkiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX0kyQ0dFVChORVdUT1koaTJjZ2V0LCAiPDI+M2Z5IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9JMkNTRVQoTkVXVE9ZKGkyY3NldCwgIjw0ZnkiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX0kyQ1RSQU5TRkVSKE5FV1RPWShpMmN0cmFuc2ZlciwgIjwydmZ5IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9JQ09OVihORVdUT1koaWNvbnYsICJjc3Q6ZjoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfSUQoTkVXVE9ZKGlkLCAiPjEiVVNFX0lEX1ooIloiKSJuR2dydVshIlVTRV9JRF9aKCJaIikiR2d1XSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9JRkNPTkZJRyhORVdUT1koaWZjb25maWcsICJeP2FTIiwgVE9ZRkxBR19TQklOKSkKK1VTRV9JTklUKE5FV1RPWShpbml0LCAiIiwgVE9ZRkxBR19TQklOKSkKK1VTRV9JTk9USUZZRChORVdUT1koaW5vdGlmeWQsICI8MiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfTElORUJVRikpCitVU0VfSU5TTU9EKE5FV1RPWShpbnNtb2QsICI8MSIsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9JTlNUQUxMKE5FV1RPWShpbnN0YWxsLCAiPDFjZERwKHByZXNlcnZlLXRpbWVzdGFtcHMpc3Z0Om06bzpnOiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9JT05JQ0UoTkVXVE9ZKGlvbmljZSwgIl50YyM8MD4zPTJuIzwwPjc9NXAjIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0lPUkVOSUNFKE5FV1RPWShpb3JlbmljZSwgIjwxPjMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfSU9UT1AoTkVXVE9ZKGlvdG9wLCAiPjBBYUtPIiAiSGsqbypwKnUqcyM8MT03ZCU8MTAwPTMwMDBtI24jPDFicSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfU1RBWVJPT1QpKQorVVNFX0lQKE5FV1RPWShpcCwgTlVMTCwgVE9ZRkxBR19TQklOKSkKK1VTRV9JUChPTERUT1koaXBhZGRyLCBpcCwgVE9ZRkxBR19TQklOKSkKK1VTRV9JUENSTShORVdUT1koaXBjcm0sICJtKk0qcypTKnEqUSoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfSVBDUyhORVdUT1koaXBjcywgImFjcHR1bHNxbWkjIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0lQKE9MRFRPWShpcGxpbmssIGlwLCBUT1lGTEFHX1NCSU4pKQorVVNFX0lQKE9MRFRPWShpcHJvdXRlLCBpcCwgVE9ZRkxBR19TQklOKSkKK1VTRV9JUChPTERUT1koaXBydWxlLCBpcCwgVE9ZRkxBR19TQklOKSkKK1VTRV9JUChPTERUT1koaXB0dW5uZWwsIGlwLCBUT1lGTEFHX1NCSU4pKQorVVNFX1NIKE5FV1RPWShqb2JzLCAibG5wcnMiLCBUT1lGTEFHX05PRk9SSykpCitVU0VfS0lMTChORVdUT1koa2lsbCwgIj9sczogIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19NQVlGT1JLKSkKK1VTRV9LSUxMQUxMKE5FV1RPWShraWxsYWxsLCAiP3M6aWxxdnciLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfS0lMTEFMTDUoTkVXVE9ZKGtpbGxhbGw1LCAiP28qbHM6IFshbG9dWyFsc10iLCBUT1lGTEFHX1NCSU4pKQorVVNFX0tMT0dEKE5FV1RPWShrbG9nZCwgImMjPDE+OG4iLCBUT1lGTEFHX1NCSU4pKQorVVNFX0xBU1QoTkVXVE9ZKGxhc3QsICJmOlciLCBUT1lGTEFHX0JJTikpCitVU0VfTElOSyhORVdUT1kobGluaywgIjwyPjIiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTElOVVgzMihORVdUT1kobGludXgzMiwgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0xOKE5FV1RPWShsbiwgIjwxcnQ6VHZuZnMiLCBUT1lGTEFHX0JJTikpCitVU0VfTE9BRF9QT0xJQ1koTkVXVE9ZKGxvYWRfcG9saWN5LCAiPDE+MSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfU0goTkVXVE9ZKGxvY2FsLCAwLCBUT1lGTEFHX05PRk9SSykpCitVU0VfTE9HKE5FV1RPWShsb2csICJwOnQ6IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9MT0dHRVIoTkVXVE9ZKGxvZ2dlciwgInQ6cDpzIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0xPR0lOKE5FV1RPWShsb2dpbiwgIj4xZjpwaDoiLCBUT1lGTEFHX0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9MT0dOQU1FKE5FV1RPWShsb2duYW1lLCAiPjAiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTE9HUEFUSChORVdUT1kobG9ncGF0aCwgMCwgVE9ZRkxBR19OT0hFTFB8VE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0xPU0VUVVAoTkVXVE9ZKGxvc2V0dXAsICI+MlMoc2l6ZWxpbWl0KSNzKHNob3cpcm8jajpmZGNhRFshYWZqXSIsIFRPWUZMQUdfU0JJTikpCitVU0VfTFMoTkVXVE9ZKGxzLCAiKHNvcnQpOihjb2xvcik6OyhmdWxsLXRpbWUpKHNob3ctY29udHJvbC1jaGFycylcMzc3KGJsb2NrLXNpemUpIz0xMDI0PDFcMjQxKGdyb3VwLWRpcmVjdG9yaWVzLWZpcnN0KVwzNzZaZ29BQ0ZITE5SU1VYYWJjZGZoaWtsQG1ucHFyc3R1dyM9ODA8MHgxWy1DeG0xXVstQ3htbF1bLUN4bW9dWy1DeG1nXVstY3VdWy1mdFNdWy1ITF1bLU5xYl1bLWtcMzc3XSIsIFRPWUZMQUdfQklOKSkKK1VTRV9MU0FUVFIoTkVXVE9ZKGxzYXR0ciwgImxkYXB2UiIsIFRPWUZMQUdfQklOKSkKK1VTRV9MU01PRChORVdUT1kobHNtb2QsIE5VTEwsIFRPWUZMQUdfU0JJTikpCitVU0VfTFNPRihORVdUT1kobHNvZiwgImxwKnQiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTFNQQ0koTkVXVE9ZKGxzcGNpLCAiZW1rbkB4QGk6IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX0xTVVNCKE5FV1RPWShsc3VzYiwgImk6IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01BS0VERVZTKE5FV1RPWShtYWtlZGV2cywgIjwxPjFkOiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9NQU4oTkVXVE9ZKG1hbiwgIms6TToiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTUNPT0tJRShORVdUT1kobWNvb2tpZSwgInYodmVyYm9zZSlWKHZlcnNpb24pIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01ENVNVTShORVdUT1kobWQ1c3VtLCAiYmMoY2hlY2spcyhzdGF0dXMpWyFiY10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTURFVihORVdUT1kobWRldiwgInMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX1VNQVNLKSkKK1VTRV9NRU1FQVRFUihORVdUT1kobWVtZWF0ZXIsICI8MT4xTSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9NSUNST0NPTShORVdUT1kobWljcm9jb20sICI8MT4xcyM9MTE1MjAwWCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfTk9CVUYpKQorVVNFX01JWChORVdUT1kobWl4LCAiYzpkOmwjciMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTUtESVIoTkVXVE9ZKG1rZGlyLCAiPDEiVVNFX01LRElSX1ooIlo6IikidnAocGFyZW50KShwYXJlbnRzKW06IiwgVE9ZRkxBR19CSU58VE9ZRkxBR19VTUFTSykpCitVU0VfTUtFMkZTKE5FV1RPWShta2UyZnMsICI8MT4yZzpGbnFtI04jaSNiIyIsIFRPWUZMQUdfU0JJTikpCitVU0VfTUtGSUZPKE5FV1RPWShta2ZpZm8sICI8MSJVU0VfTUtGSUZPX1ooIlo6IikibToiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTUtOT0QoTkVXVE9ZKG1rbm9kLCAiPDI+NG0obW9kZSk6IlVTRV9NS05PRF9aKCJaOiIpLCBUT1lGTEFHX0JJTnxUT1lGTEFHX1VNQVNLKSkKK1VTRV9NS1BBU1NXRChORVdUT1kobWtwYXNzd2QsICI+MlM6bTpQIz0wPDAiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTUtTV0FQKE5FV1RPWShta3N3YXAsICI8MT4xTDoiLCBUT1lGTEFHX1NCSU4pKQorVVNFX01LVEVNUChORVdUT1kobWt0ZW1wLCAiPjEodG1wZGlyKTs6dXFkKGRpcmVjdG9yeSlwOnQiLCBUT1lGTEFHX0JJTikpCitVU0VfTU9ESU5GTyhORVdUT1kobW9kaW5mbywgIjwxYjprOkY6MCIsIFRPWUZMQUdfU0JJTikpCitVU0VfTU9EUFJPQkUoTkVXVE9ZKG1vZHByb2JlLCAiYWxycXZzRGJkKiIsIFRPWUZMQUdfU0JJTikpCitVU0VfTU9SRShORVdUT1kobW9yZSwgMCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX01PVU5UKE5FV1RPWShtb3VudCwgIj9STzphZm5ydnd0Om8qWy1yd10iLCBUT1lGTEFHX0JJTnxUT1lGTEFHX1NUQVlST09UKSkKK1VTRV9NT1VOVFBPSU5UKE5FV1RPWShtb3VudHBvaW50LCAiPDFxZHhbLWR4XSIsIFRPWUZMQUdfQklOKSkKK1VTRV9NVihORVdUT1kobXYsICI8MXgoc3dhcCl2KHZlcmJvc2UpbkYocmVtb3ZlLWRlc3RpbmF0aW9uKWZpdDpUWy1uaV0iLCBUT1lGTEFHX0JJTikpCitVU0VfTkJEX0NMSUVOVChPTERUT1kobmJkLWNsaWVudCwgbmJkX2NsaWVudCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX05CRF9TRVJWRVIoT0xEVE9ZKG5iZC1zZXJ2ZXIsIG5iZF9zZXJ2ZXIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9OQkRfQ0xJRU5UKE5FV1RPWShuYmRfY2xpZW50LCAiPDM+M2IjPDE+NDI5NDk2NzI5NT00MDk2bnMiLCAwKSkKK1VTRV9OQkRfU0VSVkVSKE5FV1RPWShuYmRfc2VydmVyLCAiPDE+MXIiLCAwKSkKK1VTRV9ORVRDQVQoT0xEVE9ZKG5jLCBuZXRjYXQsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9ORVRDQVQoTkVXVE9ZKG5ldGNhdCwgIl50RWxMdyM8MVcjPDFwIzwxPjY1NTM1cSM8MU86bzpzOmY6NDZ1VW56WyF0bExdWyFMd11bIUx1XVshNDZVXVshb09dIiwgVE9ZRkxBR19CSU4pKQorVVNFX05FVFNUQVQoTkVXVE9ZKG5ldHN0YXQsICJwV3J4d3V0bmVhbCIsIFRPWUZMQUdfQklOKSkKK1VTRV9OSUNFKE5FV1RPWShuaWNlLCAiXjwxbiMiLCBUT1lGTEFHX0JJTikpCitVU0VfTkwoTkVXVE9ZKG5sLCAidiM9MWwjdyM8MD02YjpuOnM6RSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9OT0hVUChORVdUT1kobm9odXAsICI8MV4iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0FSR0ZBSUwoMTI1KSkpCitVU0VfTlBST0MoTkVXVE9ZKG5wcm9jLCAiKGFsbCkiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfTlNFTlRFUihORVdUT1kobnNlbnRlciwgIjwxYShhbGwpRihuby1mb3JrKXQjPDEodGFyZ2V0KUMoY2dyb3VwKTo7IGkoaXBjKTo7IG0obW91bnQpOjsgbihuZXQpOjsgcChwaWQpOjsgdSh1dHMpOjsgVSh1c2VyKTo7ICIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfU1RBWVJPT1QpKQorVVNFX09EKE5FV1RPWShvZCwgImojdncjPDE9MTZOI3hzb2RjYkE6dCoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfT05FSVQoTkVXVE9ZKG9uZWl0LCAiXjwxbmM6cDNbIXBuXSIsIFRPWUZMQUdfU0JJTikpCitVU0VfT1BFTlZUKE5FV1RPWShvcGVudnQsICJePDFjIzwxPjYzc3ciLCBUT1lGTEFHX0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9QQVJUUFJPQkUoTkVXVE9ZKHBhcnRwcm9iZSwgIjwxIiwgVE9ZRkxBR19TQklOKSkKK1VTRV9QQVNTV0QoTkVXVE9ZKHBhc3N3ZCwgIj4xYTpkbHUiLCBUT1lGTEFHX1NUQVlST09UfFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9QQVNURShORVdUT1kocGFzdGUsICJkOnMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUEFUQ0goTkVXVE9ZKHBhdGNoLCAiPjIobm8tYmFja3VwLWlmLW1pc21hdGNoKShkcnktcnVuKUYjZyNmdWxwI3YodmVyYm9zZSlAZDppOlJzKHF1aWV0KVshc3ZdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1BHUkVQKE5FV1RPWShwZ3JlcCwgIj9jbGQ6dSpVKnQqcypQKmcqRypmbm92eEw6Wy1ub10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUElET0YoTkVXVE9ZKHBpZG9mLCAic286eCIsIFRPWUZMQUdfQklOKSkKK1VTRV9QSU5HKE5FV1RPWShwaW5nLCAiPDE+MW0jdCM8MD4yNTU9NjRjIzwwPTNzIzwwPjQwNjQ9NTZpJVcjPDA9M3cjPDBxZjQ2STpbLTQ2XSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfTElORUJVRikpCitVU0VfUElORyhPTERUT1kocGluZzYsIHBpbmcsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfTElORUJVRikpCitVU0VfUElWT1RfUk9PVChORVdUT1kocGl2b3Rfcm9vdCwgIjwyPjIiLCBUT1lGTEFHX1NCSU4pKQorVVNFX1BLSUxMKE5FV1RPWShwa2lsbCwgICAgIj9WdSpVKnQqcypQKmcqRypmbm92eGw6Wy1ub10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUE1BUChORVdUT1kocG1hcCwgIjwxcHF4IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1JFQk9PVChPTERUT1kocG93ZXJvZmYsIHJlYm9vdCwgVE9ZRkxBR19TQklOfFRPWUZMQUdfTkVFRFJPT1QpKQorVVNFX1BSSU5URU5WKE5FV1RPWShwcmludGVudiwgIihudWxsKTAiLCBUT1lGTEFHX0JJTikpCitVU0VfUFJJTlRGKE5FV1RPWShwcmludGYsICI8MT9eIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19NQVlGT1JLKSkKK1VTRV9VTElNSVQoT0xEVE9ZKHBybGltaXQsIHVsaW1pdCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1BTKE5FV1RPWShwcywgImsoc29ydCkqUChwcGlkKSphQWRlZmxNbm8qTypwKHBpZCkqcyp0KlR1KlUqZypHKndaWyFvbF1bK0FlXVshb09dIiwgVE9ZRkxBR19CSU4pKQorVVNFX1BXRChORVdUT1kocHdkLCAiPjBMUFstTFBdIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19NQVlGT1JLKSkKK1VTRV9QV0RYKE5FV1RPWShwd2R4LCAiPDFhIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1BXR0VOKE5FV1RPWShwd2dlbiwgIj4ycihyZW1vdmUpOmMoY2FwaXRhbGl6ZSluKG51bWVyYWxzKXkoc3ltYm9scylzKHNlY3VyZSlCKGFtYmlndW91cyloKGhlbHApQzF2QShuby1jYXBpdGFsaXplKTAobm8tbnVtZXJhbHMpWy1jQV1bLW4wXVstQzFdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1JFQURBSEVBRChORVdUT1kocmVhZGFoZWFkLCBOVUxMLCBUT1lGTEFHX0JJTikpCitVU0VfUkVBREVMRihORVdUT1kocmVhZGVsZiwgIjwxKGR5bi1zeW1zKUFhZGVobG5wOlNzV3g6IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1JFQURMSU5LKE5FV1RPWShyZWFkbGluaywgIjwxdm5mKGNhbm9uaWNhbGl6ZSllbXF6Wy1tZWZdWy1xdl0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUkVBTFBBVEgoTkVXVE9ZKHJlYWxwYXRoLCAiPDEocmVsYXRpdmUtYmFzZSk6UihyZWxhdGl2ZS10byk6cyhuby1zeW1saW5rcylMUGVtcXpbLVBzXVstTFBdWy1tZV0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUkVCT09UKE5FV1RPWShyZWJvb3QsICJkOmZuIiwgVE9ZRkxBR19TQklOfFRPWUZMQUdfTkVFRFJPT1QpKQorVVNFX1JFTklDRShORVdUT1kocmVuaWNlLCAiPDFncHVuI3wiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUkVTRVQoTkVXVE9ZKHJlc2V0LCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfUkVTVE9SRUNPTihORVdUT1kocmVzdG9yZWNvbiwgIjwxREZuUnJ2IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9SRVYoTkVXVE9ZKHJldiwgTlVMTCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1JGS0lMTChORVdUT1kocmZraWxsLCAiPDE+MiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfUk0oTkVXVE9ZKHJtLCAiZihmb3JjZSlpUnJ2Wy1maV0iLCBUT1lGTEFHX0JJTikpCitVU0VfUk1ESVIoTkVXVE9ZKHJtZGlyLCAiPDEoaWdub3JlLWZhaWwtb24tbm9uLWVtcHR5KXAocGFyZW50cykiLCBUT1lGTEFHX0JJTikpCitVU0VfUk1NT0QoTkVXVE9ZKHJtbW9kLCAiPDF3ZiIsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9ST1VURShORVdUT1kocm91dGUsICI/bmVBOiIsIFRPWUZMQUdfU0JJTikpCitVU0VfUlRDV0FLRShORVdUT1kocnRjd2FrZSwgIihsaXN0LW1vZGVzKTsoYXV0bylhKGRldmljZSlkOihsb2NhbClsKG1vZGUpbTooc2Vjb25kcylzIyh0aW1lKXQjKHV0Yyl1KHZlcmJvc2UpdlshYWx1XSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9SVU5DT04oTkVXVE9ZKHJ1bmNvbiwgIl48MiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfU0VEKE5FV1RPWShzZWQsICIoaGVscCkodmVyc2lvbikodGFyeGZvcm0pZSpmKmk6O25FcnoobnVsbC1kYXRhKXNbK0VyXSIsIFRPWUZMQUdfQklOfFRPWUZMQUdfTk9IRUxQKSkKK1VTRV9TRU5ERVZFTlQoTkVXVE9ZKHNlbmRldmVudCwgIjw0PjQiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX1NCSU4pKQorVVNFX1NFUShORVdUT1koc2VxLCAiPDE+Mz9mOnM6d1shZnddIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIKE5FV1RPWShzZXQsIDAsIFRPWUZMQUdfTk9GT1JLKSkKK1VTRV9TRVRFTkZPUkNFKE5FV1RPWShzZXRlbmZvcmNlLCAiPDE+MSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfU0JJTikpCitVU0VfU0VURkFUVFIoTkVXVE9ZKHNldGZhdHRyLCAiaG46fHY6eDp8WyF4dl0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0VUU0lEKE5FV1RPWShzZXRzaWQsICJePDF3Y0BkWyFkY10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0goTkVXVE9ZKHNoLCAiMF4obm9lZGl0aW5nKShub3Byb2ZpbGUpKG5vcmMpc2M6aSIsIFRPWUZMQUdfQklOKSkKK1VTRV9TSEExU1VNKE9MRFRPWShzaGExc3VtLCBtZDVzdW0sIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSEEyMjRTVU0oT0xEVE9ZKHNoYTIyNHN1bSwgbWQ1c3VtLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0hBMjU2U1VNKE9MRFRPWShzaGEyNTZzdW0sIG1kNXN1bSwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIQTM4NFNVTShPTERUT1koc2hhMzg0c3VtLCBtZDVzdW0sIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSEEzU1VNKE5FV1RPWShzaGEzc3VtLCAiYlNhIzwxMjg+NTEyPTIyNCIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSEE1MTJTVU0oT0xEVE9ZKHNoYTUxMnN1bSwgbWQ1c3VtLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0goTkVXVE9ZKHNoaWZ0LCAiPjEiLCBUT1lGTEFHX05PRk9SSykpCitVU0VfU0hSRUQoTkVXVE9ZKHNocmVkLCAiPDF6eHVzIzwxbiM8MW8jPDBmIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIVUYoTkVXVE9ZKHNodWYsICJ6ZW4jPDAiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0tFTEVUT04oTkVXVE9ZKHNrZWxldG9uLCAiKHdhbHJ1cykoYmx1YmJlcik6OyhhbHNvKTpoKGhsb25nKTo7IGcoZ2xvbmcpOiBmKGxvbmdmKTo7ZUBkKmMjYjphIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NLRUxFVE9OX0FMSUFTKE5FV1RPWShza2VsZXRvbl9hbGlhcywgImIjZHEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU0xFRVAoTkVXVE9ZKHNsZWVwLCAiPDEiLCBUT1lGTEFHX0JJTikpCitVU0VfU05UUChORVdUT1koc250cCwgIj4xTSA6bSA6U3A6dCM8MD0xPjE2YXNkRHFyIzw0PjE3PTEwWyFhc10iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU09SVChORVdUT1koc29ydCwgVVNFX1NPUlRfRkxPQVQoImciKSJTOlQ6bSIgIm86ayp0OiIgInhWYk1DY3N6ZGZpcnVuIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19BUkdGQUlMKDIpKSkKK1VTRV9TSChORVdUT1koc291cmNlLCAiPDEiLCBUT1lGTEFHX05PRk9SSykpCitVU0VfU1BMSVQoTkVXVE9ZKHNwbGl0LCAiPjJhIzwxPTI+OWIjPDFsIzwxbiM8MVshYmxdWyFibl1bIWxuXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TVEFUKE5FV1RPWShzdGF0LCAiPDFjOihmb3JtYXQpZkx0IiwgVE9ZRkxBR19CSU4pKQorVVNFX1NUUkFDRShORVdUT1koc3RyYWNlLCAiXnAjcyN2IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19TQklOKSkKK1VTRV9TVFJJTkdTKE5FV1RPWShzdHJpbmdzLCAidDphbiM9NDwxZm8iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfU1RUWShORVdUT1koc3R0eSwgIj9hRjpnWyFhZ10iLCBUT1lGTEFHX0JJTikpCitVU0VfU1UoTkVXVE9ZKHN1LCAiXmxtcHU6ZzpjOnM6WyFsbXBdIiwgVE9ZRkxBR19CSU58VE9ZRkxBR19ST09UT05MWSkpCitVU0VfU1VMT0dJTihORVdUT1koc3Vsb2dpbiwgInQjPDA9MCIsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX05FRURST09UKSkKK1VTRV9TV0FQT0ZGKE5FV1RPWShzd2Fwb2ZmLCAiPDE+MWF2IiwgVE9ZRkxBR19TQklOfFRPWUZMQUdfTkVFRFJPT1QpKQorVVNFX1NXQVBPTihORVdUT1koc3dhcG9uLCAiPDE+MXAjPDA+MzI3NjdkIiwgVE9ZRkxBR19TQklOfFRPWUZMQUdfTkVFRFJPT1QpKQorVVNFX1NXSVRDSF9ST09UKE5FV1RPWShzd2l0Y2hfcm9vdCwgIjwyYzpoIiwgVE9ZRkxBR19TQklOKSkKK1VTRV9TWU5DKE5FV1RPWShzeW5jLCBOVUxMLCBUT1lGTEFHX0JJTikpCitVU0VfU1lTQ1RMKE5FV1RPWShzeXNjdGwsICJebmVOcXdwYUFbIWFwXVshYXFdWyFhd11bK2FBXSIsIFRPWUZMQUdfU0JJTikpCitVU0VfU1lTTE9HRChORVdUT1koc3lzbG9nZCwiPjBsIzwxPjg9OFI6YiM8MD45OT0xcyM8MD0yMDBtIzwwPjcxNTgyNzg3PTIwTzpwOmY6YTpuU0tMRCIsIFRPWUZMQUdfU0JJTnxUT1lGTEFHX1NUQVlST09UKSkKK1VTRV9UQUMoTkVXVE9ZKHRhYywgTlVMTCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1RBSUwoTkVXVE9ZKHRhaWwsICI/ZkZzOmMoYnl0ZXMpLW4obGluZXMpLVstY25dWy1mRl0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX1RBUihORVdUT1kodGFyLCAiJihvbmUtZmlsZS1zeXN0ZW0pKG5vLWlnbm9yZS1jYXNlKShpZ25vcmUtY2FzZSkobm8tYW5jaG9yZWQpKGFuY2hvcmVkKShuby13aWxkY2FyZHMpKHdpbGRjYXJkcykobm8td2lsZGNhcmRzLW1hdGNoLXNsYXNoKSh3aWxkY2FyZHMtbWF0Y2gtc2xhc2gpKHNob3ctdHJhbnNmb3JtZWQtbmFtZXMpKHNlbGludXgpKHJlc3RyaWN0KShmdWxsLXRpbWUpKG5vLXJlY3Vyc2lvbikobnVsbCkobnVtZXJpYy1vd25lcikobm8tc2FtZS1wZXJtaXNzaW9ucykob3ZlcndyaXRlKShleGNsdWRlKSooc29ydCk7Oihtb2RlKToobXRpbWUpOihncm91cCk6KG93bmVyKToodG8tY29tbWFuZCk6fihzdHJpcC1jb21wb25lbnRzKShzdHJpcCkjfih0cmFuc2Zvcm0pKHhmb3JtKSpvKG5vLXNhbWUtb3duZXIpcChzYW1lLXBlcm1pc3Npb25zKWsoa2VlcC1vbGQpYyhjcmVhdGUpfGgoZGVyZWZlcmVuY2UpeChleHRyYWN0KXx0KGxpc3QpfHYodmVyYm9zZSlKKHh6KWooYnppcDIpeihnemlwKVMoc3BhcnNlKU8odG8tc3Rkb3V0KVAoYWJzb2x1dGUtbmFtZXMpbSh0b3VjaClYKGV4Y2x1ZGUtZnJvbSkqVChmaWxlcy1mcm9tKSpJKHVzZS1jb21wcmVzcy1wcm9ncmFtKTpDKGRpcmVjdG9yeSk6ZihmaWxlKTphc1shdHhjXVshanpKYV0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVEFTS1NFVChORVdUT1kodGFza3NldCwgIjwxXnBhIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1RDUFNWRChORVdUT1kodGNwc3ZkLCAiXjwzYyM9MzA8MWIjPTIwPDBDOnU6bDpoRXYiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVEVFKE5FV1RPWSh0ZWUsICJpYSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9URUxORVQoTkVXVE9ZKHRlbG5ldCwgIjwxPjIiLCBUT1lGTEFHX0JJTikpCitVU0VfVEVMTkVURChORVdUT1kodGVsbmV0ZCwgIncjPDBiOnAjPDA+NjU1MzU9MjNmOmw6RlNLaVshd2ldIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1RFU1QoTkVXVE9ZKHRlc3QsIDAsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOfFRPWUZMQUdfTk9IRUxQfFRPWUZMQUdfTUFZRk9SSykpCitVU0VfVEZUUChORVdUT1kodGZ0cCwgIjwxYiM8OD42NTQ2NHI6bDpnfHB8WyFncF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVEZUUEQoTkVXVE9ZKHRmdHBkLCAicmN1OmwiLCBUT1lGTEFHX0JJTikpCitVU0VfVElNRShORVdUT1kodGltZSwgIjwxXnB2Wy1wdl0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX01BWUZPUkspKQorVVNFX1RJTUVPVVQoTkVXVE9ZKHRpbWVvdXQsICI8Ml4oZm9yZWdyb3VuZCkocHJlc2VydmUtc3RhdHVzKXZrOnMoc2lnbmFsKTppIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU58VE9ZRkxBR19BUkdGQUlMKDEyNSkpKQorVVNFX1RPUChORVdUT1kodG9wLCAiPjBPKmgiICJIaypvKnAqdSpzIzwxZCU8MTAwPTMwMDBtI24jPDFicVshb09dIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1RPVUNIKE5FV1RPWSh0b3VjaCwgIjwxYWNkOmZtcjp0OmhbIWR0cl0iLCBUT1lGTEFHX0JJTikpCitVU0VfU0goT0xEVE9ZKHRveXNoLCBzaCwgVE9ZRkxBR19CSU4pKQorVVNFX1RSKE5FV1RPWSh0ciwgIl48MT4yQ2NzdGRbK2NDXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UUkFDRVJPVVRFKE5FV1RPWSh0cmFjZXJvdXRlLCAiPDE+Mmk6ZiM8MT4yNTU9MXojPDA+ODY0MDA9MGcqdyM8MD44NjQwMD01dCM8MD4yNTU9MHM6cSM8MT4yNTU9M3AjPDE+NjU1MzU9MzM0MzRtIzwxPjI1NT0zMHJ2bmRsSVVGNjQiLCBUT1lGTEFHX1NUQVlST09UfFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UUkFDRVJPVVRFKE9MRFRPWSh0cmFjZXJvdXRlNix0cmFjZXJvdXRlLCBUT1lGTEFHX1NUQVlST09UfFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UUlVFKE5FV1RPWSh0cnVlLCBOVUxMLCBUT1lGTEFHX0JJTnxUT1lGTEFHX05PSEVMUHxUT1lGTEFHX01BWUZPUkspKQorVVNFX1RSVU5DQVRFKE5FV1RPWSh0cnVuY2F0ZSwgIjwxczp8YyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UUyhORVdUT1kodHMsICJpbXMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX0xJTkVCVUYpKQorVVNFX1RTT1JUKE5FV1RPWSh0c29ydCwgIj4xIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1RUWShORVdUT1kodHR5LCAicyIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9UVU5DVEwoTkVXVE9ZKHR1bmN0bCwgIjwxPjF0fGR8dTpUWyF0ZF0iLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVUNMQU1QU0VUKE5FV1RPWSh1Y2xhbXBzZXQsICJwI2FtIzwtMT4xMDI0TSM8LTE+MTAyNFIiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX1NUQVlST09UKSkKK1VTRV9UQ1BTVkQoT0xEVE9ZKHVkcHN2ZCwgdGNwc3ZkLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVUxJTUlUKE5FV1RPWSh1bGltaXQsICI+MVAjPDFTSGF2dXRzclJxcG5tbGlmZWRjWy1TSF1bIWFwdnV0c3JScW5tbGlmZWRjXSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9VTU9VTlQoTkVXVE9ZKHVtb3VudCwgImNuZERmbHJhdCp2WyFuYV0iLCBUT1lGTEFHX0JJTnxUT1lGTEFHX1NUQVlST09UKSkKK1VTRV9VTkFNRShORVdUT1kodW5hbWUsICJwYW9tdnJucyIsIFRPWUZMQUdfQklOKSkKK1VTRV9VTklDT0RFKE5FV1RPWSh1bmljb2RlLCAiPDEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVU5JUShORVdUT1kodW5pcSwgImYjcyN3I3ppY2R1IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1VOSVgyRE9TKE5FV1RPWSh1bml4MmRvcywgMCwgVE9ZRkxBR19CSU4pKQorVVNFX1VOTElOSyhORVdUT1kodW5saW5rLCAiPDE+MSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9TSChORVdUT1kodW5zZXQsICJmdm5bIWZ2XSIsIFRPWUZMQUdfTk9GT1JLKSkKK1VTRV9VTlNIQVJFKE5FV1RPWSh1bnNoYXJlLCAiPDFeYShhbGwpZihmb3JrKXIobWFwLXJvb3QtdXNlcilDKGNncm91cCk6OyBpKGlwYyk6OyBtKG1vdW50KTo7IG4obmV0KTo7IHAocGlkKTo7IHUodXRzKTo7IFUodXNlcik6OyAiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX1NUQVlST09UKSkKK1VTRV9VUFRJTUUoTkVXVE9ZKHVwdGltZSwgIj4wcHMiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVVNFUkFERChORVdUT1kodXNlcmFkZCwgIjwxPjJ1IzwwRzpzOmc6aDpTREgiLCBUT1lGTEFHX05FRURST09UfFRPWUZMQUdfVU1BU0t8VE9ZRkxBR19TQklOKSkKK1VTRV9VU0VSREVMKE5FV1RPWSh1c2VyZGVsLCAiPDE+MXIiLCBUT1lGTEFHX05FRURST09UfFRPWUZMQUdfU0JJTikpCitVU0VfVVNMRUVQKE5FV1RPWSh1c2xlZXAsICI8MT4xIiwgVE9ZRkxBR19CSU4pKQorVVNFX1VVREVDT0RFKE5FV1RPWSh1dWRlY29kZSwgIj4xbzoiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTnxUT1lGTEFHX1VNQVNLKSkKK1VTRV9VVUVOQ09ERShORVdUT1kodXVlbmNvZGUsICI8MT4ybSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9VVUlER0VOKE5FV1RPWSh1dWlkZ2VuLCAiPjByKHJhbmRvbSkiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfVkNPTkZJRyhORVdUT1kodmNvbmZpZywgIjwyPjQiLCBUT1lGTEFHX05FRURST09UfFRPWUZMQUdfU0JJTikpCitVU0VfVkkoTkVXVE9ZKHZpLCAiPjFzOiIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9WTVNUQVQoTkVXVE9ZKHZtc3RhdCwgIj4ybiIsIFRPWUZMQUdfQklOfFRPWUZMQUdfTElORUJVRikpCitVU0VfVyhORVdUT1kodywgTlVMTCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1NIKE5FV1RPWSh3YWl0LCAibiIsIFRPWUZMQUdfTk9GT1JLKSkKK1VTRV9XQVRDSChORVdUT1kod2F0Y2gsICJePDFuJTwxMDA9MjAwMHRlYngiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfV0FUQ0hET0coTkVXVE9ZKHdhdGNoZG9nLCAiPDE+MUZ0Iz00PDFUIz02MDwxIiwgVE9ZRkxBR19ORUVEUk9PVHxUT1lGTEFHX1NCSU4pKQorVVNFX1dDKE5FV1RPWSh3YywgIkxjbXdsIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1dHRVQoTkVXVE9ZKHdnZXQsICI8MT4xKG1heC1yZWRpcmVjdCkjPDA9MjBkKGRlYnVnKU8ob3V0cHV0LWRvY3VtZW50KTpwKHBvc3QtZGF0YSk6IiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1dISUNIKE5FV1RPWSh3aGljaCwgIjwxYSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9XSE8oTkVXVE9ZKHdobywgImEiLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfV0hPQU1JKE9MRFRPWSh3aG9hbWksIGxvZ25hbWUsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKK1VTRV9YQVJHUyhORVdUT1koeGFyZ3MsICJeRTpQIzwwKG51bGwpPTFvcHRyKG5vLXJ1bi1pZi1lbXB0eSluIzwxKG1heC1hcmdzKXMjMFshMEVdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1hYRChORVdUT1koeHhkLCAiPjFjIzwwPjI1NmwjbyNnIzwwPTJlaXBycyNbIXJzXVshcmVdIiwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1haQ0FUKE5FV1RPWSh4emNhdCwgTlVMTCwgVE9ZRkxBR19VU1J8VE9ZRkxBR19CSU4pKQorVVNFX1lFUyhORVdUT1koeWVzLCAwLCBUT1lGTEFHX1VTUnxUT1lGTEFHX0JJTikpCitVU0VfWkNBVChORVdUT1koemNhdCwgICAgICJjZGZrdDEyMzQ1Njc4OVstMTIzNDU2Nzg5XSIsIFRPWUZMQUdfVVNSfFRPWUZMQUdfQklOKSkKZGlmZiAtLWdpdCBhL2FuZHJvaWQvbWFjL2dlbmVyYXRlZC90YWdzLmggYi9hbmRyb2lkL21hYy9nZW5lcmF0ZWQvdGFncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0N2UzYTUKLS0tIC9kZXYvbnVsbAorKysgYi9hbmRyb2lkL21hYy9nZW5lcmF0ZWQvdGFncy5oCkBAIC0wLDAgKzEsMTQwIEBACisjZGVmaW5lIENQX21vZGUgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgX0NQX21vZGUgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDApCisjZGVmaW5lIENQX293bmVyc2hpcCAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgX0NQX293bmVyc2hpcCAgICAgICAgICAgICAgICAgICAgKDE8PDEpCisjZGVmaW5lIENQX3RpbWVzdGFtcHMgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgX0NQX3RpbWVzdGFtcHMgICAgICAgICAgICAgICAgICAgKDE8PDIpCisjZGVmaW5lIENQX2NvbnRleHQgICAgICAgICAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgX0NQX2NvbnRleHQgICAgICAgICAgICAgICAgICAgICAgKDE8PDMpCisjZGVmaW5lIENQX3hhdHRyICAgICAgICAgICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgX0NQX3hhdHRyICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDQpCisjZGVmaW5lIEREX2NvbnZfZnN5bmMgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgX0REX2NvbnZfZnN5bmMgICAgICAgICAgICAgICAgICAgKDE8PDApCisjZGVmaW5lIEREX2NvbnZfbm9lcnJvciAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgX0REX2NvbnZfbm9lcnJvciAgICAgICAgICAgICAgICAgKDE8PDEpCisjZGVmaW5lIEREX2NvbnZfbm90cnVuYyAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgX0REX2NvbnZfbm90cnVuYyAgICAgICAgICAgICAgICAgKDE8PDIpCisjZGVmaW5lIEREX2NvbnZfc3luYyAgICAgICAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgX0REX2NvbnZfc3luYyAgICAgICAgICAgICAgICAgICAgKDE8PDMpCisjZGVmaW5lIEREX2lmbGFnX2NvdW50X2J5dGVzICAgICAgICAgICAgIDAKKyNkZWZpbmUgX0REX2lmbGFnX2NvdW50X2J5dGVzICAgICAgICAgICAgKDE8PDApCisjZGVmaW5lIEREX2lmbGFnX3NraXBfYnl0ZXMgICAgICAgICAgICAgIDEKKyNkZWZpbmUgX0REX2lmbGFnX3NraXBfYnl0ZXMgICAgICAgICAgICAgKDE8PDEpCisjZGVmaW5lIEREX29mbGFnX3NlZWtfYnl0ZXMgICAgICAgICAgICAgIDAKKyNkZWZpbmUgX0REX29mbGFnX3NlZWtfYnl0ZXMgICAgICAgICAgICAgKDE8PDApCisjZGVmaW5lIFBTX1BJRCAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgX1BTX1BJRCAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDApCisjZGVmaW5lIFBTX1BQSUQgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgX1BTX1BQSUQgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDEpCisjZGVmaW5lIFBTX1BSSSAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgX1BTX1BSSSAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDIpCisjZGVmaW5lIFBTX05JICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgX1BTX05JICAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDMpCisjZGVmaW5lIFBTX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgX1BTX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDQpCisjZGVmaW5lIFBTX1NaICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUKKyNkZWZpbmUgX1BTX1NaICAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDUpCisjZGVmaW5lIFBTX1JTUyAgICAgICAgICAgICAgICAgICAgICAgICAgIDYKKyNkZWZpbmUgX1BTX1JTUyAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDYpCisjZGVmaW5lIFBTX1BHSUQgICAgICAgICAgICAgICAgICAgICAgICAgIDcKKyNkZWZpbmUgX1BTX1BHSUQgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDcpCisjZGVmaW5lIFBTX1ZTWiAgICAgICAgICAgICAgICAgICAgICAgICAgIDgKKyNkZWZpbmUgX1BTX1ZTWiAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDgpCisjZGVmaW5lIFBTX01BSkZMICAgICAgICAgICAgICAgICAgICAgICAgIDkKKyNkZWZpbmUgX1BTX01BSkZMICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDkpCisjZGVmaW5lIFBTX01JTkZMICAgICAgICAgICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIF9QU19NSU5GTCAgICAgICAgICAgICAgICAgICAgICAgICgxPDwxMCkKKyNkZWZpbmUgUFNfUFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEKKyNkZWZpbmUgX1BTX1BSICAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDExKQorI2RlZmluZSBQU19QU1IgICAgICAgICAgICAgICAgICAgICAgICAgICAxMgorI2RlZmluZSBfUFNfUFNSICAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MTIpCisjZGVmaW5lIFBTX1JUUFJJTyAgICAgICAgICAgICAgICAgICAgICAgIDEzCisjZGVmaW5lIF9QU19SVFBSSU8gICAgICAgICAgICAgICAgICAgICAgICgxPDwxMykKKyNkZWZpbmUgUFNfU0NIICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQKKyNkZWZpbmUgX1BTX1NDSCAgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDE0KQorI2RlZmluZSBQU19DUFUgICAgICAgICAgICAgICAgICAgICAgICAgICAxNQorI2RlZmluZSBfUFNfQ1BVICAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MTUpCisjZGVmaW5lIFBTX1RJRCAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2CisjZGVmaW5lIF9QU19USUQgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwxNikKKyNkZWZpbmUgUFNfVENOVCAgICAgICAgICAgICAgICAgICAgICAgICAgMTcKKyNkZWZpbmUgX1BTX1RDTlQgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDE3KQorI2RlZmluZSBQU19CSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAxOAorI2RlZmluZSBfUFNfQklUICAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MTgpCisjZGVmaW5lIFBTX1RUWSAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5CisjZGVmaW5lIF9QU19UVFkgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwxOSkKKyNkZWZpbmUgUFNfV0NIQU4gICAgICAgICAgICAgICAgICAgICAgICAgMjAKKyNkZWZpbmUgX1BTX1dDSEFOICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDIwKQorI2RlZmluZSBQU19MQUJFTCAgICAgICAgICAgICAgICAgICAgICAgICAyMQorI2RlZmluZSBfUFNfTEFCRUwgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MjEpCisjZGVmaW5lIFBTX0NPTU0gICAgICAgICAgICAgICAgICAgICAgICAgIDIyCisjZGVmaW5lIF9QU19DT01NICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwyMikKKyNkZWZpbmUgUFNfTkFNRSAgICAgICAgICAgICAgICAgICAgICAgICAgMjMKKyNkZWZpbmUgX1BTX05BTUUgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDIzKQorI2RlZmluZSBQU19DT01NQU5EICAgICAgICAgICAgICAgICAgICAgICAyNAorI2RlZmluZSBfUFNfQ09NTUFORCAgICAgICAgICAgICAgICAgICAgICAoMTw8MjQpCisjZGVmaW5lIFBTX0NNRExJTkUgICAgICAgICAgICAgICAgICAgICAgIDI1CisjZGVmaW5lIF9QU19DTURMSU5FICAgICAgICAgICAgICAgICAgICAgICgxPDwyNSkKKyNkZWZpbmUgUFNfQVJHUyAgICAgICAgICAgICAgICAgICAgICAgICAgMjYKKyNkZWZpbmUgX1BTX0FSR1MgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDI2KQorI2RlZmluZSBQU19DTUQgICAgICAgICAgICAgICAgICAgICAgICAgICAyNworI2RlZmluZSBfUFNfQ01EICAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MjcpCisjZGVmaW5lIFBTX1VJRCAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4CisjZGVmaW5lIF9QU19VSUQgICAgICAgICAgICAgICAgICAgICAgICAgICgxPDwyOCkKKyNkZWZpbmUgUFNfVVNFUiAgICAgICAgICAgICAgICAgICAgICAgICAgMjkKKyNkZWZpbmUgX1BTX1VTRVIgICAgICAgICAgICAgICAgICAgICAgICAgKDE8PDI5KQorI2RlZmluZSBQU19SVUlEICAgICAgICAgICAgICAgICAgICAgICAgICAzMAorI2RlZmluZSBfUFNfUlVJRCAgICAgICAgICAgICAgICAgICAgICAgICAoMTw8MzApCisjZGVmaW5lIFBTX1JVU0VSICAgICAgICAgICAgICAgICAgICAgICAgIDMxCisjZGVmaW5lIF9QU19SVVNFUiAgICAgICAgICAgICAgICAgICAgICAgICgxPDwzMSkKKyNkZWZpbmUgUFNfR0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIKKyNkZWZpbmUgX1BTX0dJRCAgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8MzIpCisjZGVmaW5lIFBTX0dST1VQICAgICAgICAgICAgICAgICAgICAgICAgIDMzCisjZGVmaW5lIF9QU19HUk9VUCAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDMzKQorI2RlZmluZSBQU19SR0lEICAgICAgICAgICAgICAgICAgICAgICAgICAzNAorI2RlZmluZSBfUFNfUkdJRCAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDwzNCkKKyNkZWZpbmUgUFNfUkdST1VQICAgICAgICAgICAgICAgICAgICAgICAgMzUKKyNkZWZpbmUgX1BTX1JHUk9VUCAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8MzUpCisjZGVmaW5lIFBTX1RJTUUgICAgICAgICAgICAgICAgICAgICAgICAgIDM2CisjZGVmaW5lIF9QU19USU1FICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDM2KQorI2RlZmluZSBQU19FTEFQU0VEICAgICAgICAgICAgICAgICAgICAgICAzNworI2RlZmluZSBfUFNfRUxBUFNFRCAgICAgICAgICAgICAgICAgICAgICAoMUxMPDwzNykKKyNkZWZpbmUgUFNfVElNRV8gICAgICAgICAgICAgICAgICAgICAgICAgMzgKKyNkZWZpbmUgX1BTX1RJTUVfICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8MzgpCisjZGVmaW5lIFBTX0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM5CisjZGVmaW5lIF9QU19DICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDM5KQorI2RlZmluZSBQU19fVlNaICAgICAgICAgICAgICAgICAgICAgICAgICA0MAorI2RlZmluZSBfUFNfX1ZTWiAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw0MCkKKyNkZWZpbmUgUFNfX01FTSAgICAgICAgICAgICAgICAgICAgICAgICAgNDEKKyNkZWZpbmUgX1BTX19NRU0gICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NDEpCisjZGVmaW5lIFBTX19DUFUgICAgICAgICAgICAgICAgICAgICAgICAgIDQyCisjZGVmaW5lIF9QU19fQ1BVICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDQyKQorI2RlZmluZSBQU19WSVJUICAgICAgICAgICAgICAgICAgICAgICAgICA0MworI2RlZmluZSBfUFNfVklSVCAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw0MykKKyNkZWZpbmUgUFNfUkVTICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQKKyNkZWZpbmUgX1BTX1JFUyAgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NDQpCisjZGVmaW5lIFBTX1NIUiAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1CisjZGVmaW5lIF9QU19TSFIgICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDQ1KQorI2RlZmluZSBQU19SRUFEICAgICAgICAgICAgICAgICAgICAgICAgICA0NgorI2RlZmluZSBfUFNfUkVBRCAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw0NikKKyNkZWZpbmUgUFNfV1JJVEUgICAgICAgICAgICAgICAgICAgICAgICAgNDcKKyNkZWZpbmUgX1BTX1dSSVRFICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NDcpCisjZGVmaW5lIFBTX0lPICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4CisjZGVmaW5lIF9QU19JTyAgICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDQ4KQorI2RlZmluZSBQU19EUkVBRCAgICAgICAgICAgICAgICAgICAgICAgICA0OQorI2RlZmluZSBfUFNfRFJFQUQgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw0OSkKKyNkZWZpbmUgUFNfRFdSSVRFICAgICAgICAgICAgICAgICAgICAgICAgNTAKKyNkZWZpbmUgX1BTX0RXUklURSAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NTApCisjZGVmaW5lIFBTX1NXQVAgICAgICAgICAgICAgICAgICAgICAgICAgIDUxCisjZGVmaW5lIF9QU19TV0FQICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDUxKQorI2RlZmluZSBQU19ESU8gICAgICAgICAgICAgICAgICAgICAgICAgICA1MgorI2RlZmluZSBfUFNfRElPICAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw1MikKKyNkZWZpbmUgUFNfU1RJTUUgICAgICAgICAgICAgICAgICAgICAgICAgNTMKKyNkZWZpbmUgX1BTX1NUSU1FICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NTMpCisjZGVmaW5lIFBTX0YgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU0CisjZGVmaW5lIF9QU19GICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDU0KQorI2RlZmluZSBQU19TICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1NQorI2RlZmluZSBfUFNfUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMUxMPDw1NSkKKyNkZWZpbmUgUFNfU1RBVCAgICAgICAgICAgICAgICAgICAgICAgICAgNTYKKyNkZWZpbmUgX1BTX1NUQVQgICAgICAgICAgICAgICAgICAgICAgICAgKDFMTDw8NTYpCisjZGVmaW5lIFBTX1BDWSAgICAgICAgICAgICAgICAgICAgICAgICAgIDU3CisjZGVmaW5lIF9QU19QQ1kgICAgICAgICAgICAgICAgICAgICAgICAgICgxTEw8PDU3KQpkaWZmIC0tZ2l0IGEvY29uZmlnLWRldmljZSBiL2NvbmZpZy1kZXZpY2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FlOThiZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy1kZXZpY2UKQEAgLTAsMCArMSwzNTMgQEAKKyMKKyMgSGFuZC1tYWludGFpbmVkIC5jb25maWcgZmlsZS4KKyMKKworIworIyBHZW5lcmFsIHNldHRpbmdzLgorIworCitDT05GSUdfVE9ZQk9YPXkKKyMgQ09ORklHX1RPWUJPWF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVE9ZQk9YX0ZMT0FUPXkKK0NPTkZJR19UT1lCT1hfRk9SSz15CisjIENPTkZJR19UT1lCT1hfRlJFRSBpcyBub3Qgc2V0CitDT05GSUdfVE9ZQk9YX0hFTFBfREFTSERBU0g9eQorQ09ORklHX1RPWUJPWF9IRUxQPXkKK0NPTkZJR19UT1lCT1hfTElCQ1JZUFRPPXkKK0NPTkZJR19UT1lCT1hfTElCWj15CisjIENPTkZJR19UT1lCT1hfTFNNX05PTkUgaXMgbm90IHNldAorQ09ORklHX1RPWUJPWF9OT1JFQ1VSU0U9eQorQ09ORklHX1RPWUJPWF9PTl9BTkRST0lEPXkKK0NPTkZJR19UT1lCT1hfU0VMSU5VWD15CisjIENPTkZJR19UT1lCT1hfU01BQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVE9ZQk9YX1NVSUQgaXMgbm90IHNldAorQ09ORklHX1RPWUJPWF9VSURfU1lTPTEwMAorQ09ORklHX1RPWUJPWF9VSURfVVNSPTUwMAorIyBDT05GSUdfVE9ZQk9YX1pIRUxQIGlzIG5vdCBzZXQKKworIworIyBTZWxlY3RlZCB0b3lzLgorIworCitDT05GSUdfQUNQST15CisjIENPTkZJR19BUkNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUElORyBpcyBub3Qgc2V0CisjIENPTkZJR19BUlAgaXMgbm90IHNldAorIyBDT05GSUdfQVNDSUkgaXMgbm90IHNldAorIyBDT05GSUdfQkFTRTMyIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFNjQ9eQorQ09ORklHX0JBU0VOQU1FPXkKKyMgQ09ORklHX0JDIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtESVNDQVJEPXkKK0NPTkZJR19CTEtJRD15CitDT05GSUdfQkxPQ0tERVY9eQorIyBDT05GSUdfQk9PVENIQVJURCBpcyBub3Qgc2V0CitDT05GSUdfQlJDVEw9eQorIyBDT05GSUdfQlVOWklQMiBpcyBub3Qgc2V0CisjIENPTkZJR19CWkNBVCBpcyBub3Qgc2V0CitDT05GSUdfQ0FMPXkKK0NPTkZJR19DQVQ9eQorIyBDT05GSUdfQ0QgaXMgbm90IHNldAorQ09ORklHX0NIQVRUUj15CitDT05GSUdfQ0hDT049eQorQ09ORklHX0NIR1JQPXkKK0NPTkZJR19DSE1PRD15CitDT05GSUdfQ0hPV049eQorQ09ORklHX0NIUk9PVD15CitDT05GSUdfQ0hSVD15CisjIENPTkZJR19DSFNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIVlQgaXMgbm90IHNldAorQ09ORklHX0NLU1VNPXkKK0NPTkZJR19DTEVBUj15CitDT05GSUdfQ01QPXkKK0NPTkZJR19DT01NPXkKKyMgQ09ORklHX0NPVU5UIGlzIG5vdCBzZXQKK0NPTkZJR19DUElPPXkKK0NPTkZJR19DUD15CisjIENPTkZJR19DUkMzMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUk9ORCBpcyBub3Qgc2V0CisjIENPTkZJR19DUk9OVEFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NTUExJVCBpcyBub3Qgc2V0CitDT05GSUdfQ1VUPXkKK0NPTkZJR19EQVRFPXkKK0NPTkZJR19ERD15CisjIENPTkZJR19ERUFMTE9DVlQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfREhDUCBpcyBub3Qgc2V0CisjIENPTkZJR19ERU1PX01BTllfT1BUSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERU1PX05VTUJFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERU1PX1NDQU5LRVkgaXMgbm90IHNldAorIyBDT05GSUdfREVNT19VVEY4VE9XQyBpcyBub3Qgc2V0CitDT05GSUdfREVWTUVNPXkKK0NPTkZJR19ERj15CisjIENPTkZJR19ESENQNiBpcyBub3Qgc2V0CisjIENPTkZJR19ESENQRCBpcyBub3Qgc2V0CisjIENPTkZJR19ESENQIGlzIG5vdCBzZXQKK0NPTkZJR19ESUZGPXkKK0NPTkZJR19ESVJOQU1FPXkKK0NPTkZJR19ETUVTRz15CisjIENPTkZJR19ETlNET01BSU5OQU1FIGlzIG5vdCBzZXQKK0NPTkZJR19ET1MyVU5JWD15CisjIENPTkZJR19EVU1QTEVBU0VTIGlzIG5vdCBzZXQKK0NPTkZJR19EVT15CitDT05GSUdfRUNITz15CitDT05GSUdfRUdSRVA9eQorIyBDT05GSUdfRUpFQ1QgaXMgbm90IHNldAorQ09ORklHX0VOVj15CisjIENPTkZJR19FWElUIGlzIG5vdCBzZXQKK0NPTkZJR19FWFBBTkQ9eQorQ09ORklHX0VYUFI9eQorIyBDT05GSUdfRkFDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19GQUxMT0NBVEU9eQorQ09ORklHX0ZBTFNFPXkKKyMgQ09ORklHX0ZESVNLIGlzIG5vdCBzZXQKK0NPTkZJR19GR1JFUD15CitDT05GSUdfRklMRT15CitDT05GSUdfRklORD15CitDT05GSUdfRkxPQ0s9eQorQ09ORklHX0ZNVD15CisjIENPTkZJR19GT0xEIGlzIG5vdCBzZXQKK0NPTkZJR19GUkVFUkFNRElTSz15CitDT05GSUdfRlJFRT15CisjIENPTkZJR19GU0NLIGlzIG5vdCBzZXQKK0NPTkZJR19GU0ZSRUVaRT15CisjIENPTkZJR19GU1RZUEUgaXMgbm90IHNldAorQ09ORklHX0ZTWU5DPXkKKyMgQ09ORklHX0ZUUEdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19GVFBQVVQgaXMgbm90IHNldAorQ09ORklHX0dFVENPTkY9eQorQ09ORklHX0dFVEVORk9SQ0U9eQorQ09ORklHX0dFVEZBVFRSPXkKK0NPTkZJR19HRVRPUFQ9eQorIyBDT05GSUdfR0VUVFkgaXMgbm90IHNldAorIyBDT05GSUdfR0lUQ0hFQ0tPVVQgaXMgbm90IHNldAorIyBDT05GSUdfR0lUQ0xPTkUgaXMgbm90IHNldAorIyBDT05GSUdfR0lUQ09NUEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dJVEZFVENIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dJVElOSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0lUUkVNT1RFIGlzIG5vdCBzZXQKK0NPTkZJR19HUElPREVURUNUPXkKK0NPTkZJR19HUElPRklORD15CitDT05GSUdfR1BJT0dFVD15CitDT05GSUdfR1BJT0lORk89eQorQ09ORklHX0dQSU9TRVQ9eQorQ09ORklHX0dSRVA9eQorIyBDT05GSUdfR1JPVVBBREQgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBERUwgaXMgbm90IHNldAorQ09ORklHX0dST1VQUz15CitDT05GSUdfR1VOWklQPXkKK0NPTkZJR19HWklQPXkKK0NPTkZJR19IRUFEPXkKKyMgQ09ORklHX0hFTExPIGlzIG5vdCBzZXQKK0NPTkZJR19IRUxQPXkKKyMgQ09ORklHX0hFWERVTVAgaXMgbm90IHNldAorIyBDT05GSUdfSEVYRURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19IRCBpcyBub3Qgc2V0CisjIENPTkZJR19IT1NUSUQgaXMgbm90IHNldAorIyBDT05GSUdfSE9TVCBpcyBub3Qgc2V0CitDT05GSUdfSE9TVE5BTUU9eQorIyBDT05GSUdfSFRUUEQgaXMgbm90IHNldAorQ09ORklHX0hXQ0xPQ0s9eQorQ09ORklHX0kyQ0RFVEVDVD15CitDT05GSUdfSTJDRFVNUD15CitDT05GSUdfSTJDR0VUPXkKK0NPTkZJR19JMkNTRVQ9eQorQ09ORklHX0kyQ1RSQU5TRkVSPXkKK0NPTkZJR19JQ09OVj15CitDT05GSUdfSUQ9eQorQ09ORklHX0lEX1o9eQorQ09ORklHX0lGQ09ORklHPXkKKyMgQ09ORklHX0lOSVQgaXMgbm90IHNldAorQ09ORklHX0lOT1RJRllEPXkKK0NPTkZJR19JTlNNT0Q9eQorQ09ORklHX0lOU1RBTEw9eQorQ09ORklHX0lPTklDRT15CitDT05GSUdfSU9SRU5JQ0U9eQorQ09ORklHX0lPVE9QPXkKKyMgQ09ORklHX0lQQ1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQQ1MgaXMgbm90IHNldAorIyBDT05GSUdfSVAgaXMgbm90IHNldAorIyBDT05GSUdfS0lMTEFMTDUgaXMgbm90IHNldAorQ09ORklHX0tJTExBTEw9eQorQ09ORklHX0tJTEw9eQorIyBDT05GSUdfS0xPR0QgaXMgbm90IHNldAorIyBDT05GSUdfS0xPR0RfU09VUkNFX1JJTkdfQlVGRkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBU1QgaXMgbm90IHNldAorIyBDT05GSUdfTElOSyBpcyBub3Qgc2V0CisjIENPTkZJR19MSU5VWDMyIGlzIG5vdCBzZXQKK0NPTkZJR19MTj15CitDT05GSUdfTE9BRF9QT0xJQ1k9eQorQ09ORklHX0xPR0dFUj15CisjIENPTkZJR19MT0dJTiBpcyBub3Qgc2V0CitDT05GSUdfTE9HTkFNRT15CisjIENPTkZJR19MT0dQQVRIIGlzIG5vdCBzZXQKK0NPTkZJR19MT0c9eQorQ09ORklHX0xPU0VUVVA9eQorQ09ORklHX0xTQVRUUj15CitDT05GSUdfTFNNT0Q9eQorQ09ORklHX0xTT0Y9eQorQ09ORklHX0xTUENJPXkKK0NPTkZJR19MU1VTQj15CitDT05GSUdfTFM9eQorQ09ORklHX01BS0VERVZTPXkKKyMgQ09ORklHX01BTiBpcyBub3Qgc2V0CisjIENPTkZJR19NQ09PS0lFIGlzIG5vdCBzZXQKK0NPTkZJR19NRDVTVU09eQorIyBDT05GSUdfTURFVl9DT05GIGlzIG5vdCBzZXQKKyMgQ09ORklHX01ERVYgaXMgbm90IHNldAorQ09ORklHX01FTUVBVEVSPXkKK0NPTkZJR19NSUNST0NPTT15CisjIENPTkZJR19NSVggaXMgbm90IHNldAorQ09ORklHX01LRElSPXkKK0NPTkZJR19NS0RJUl9aPXkKKyMgQ09ORklHX01LRTJGU19FWFRFTkRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19NS0UyRlNfR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX01LRTJGUyBpcyBub3Qgc2V0CisjIENPTkZJR19NS0UyRlNfSk9VUk5BTCBpcyBub3Qgc2V0CisjIENPTkZJR19NS0UyRlNfTEFCRUwgaXMgbm90IHNldAorQ09ORklHX01LRklGTz15CitDT05GSUdfTUtGSUZPX1o9eQorQ09ORklHX01LTk9EPXkKK0NPTkZJR19NS05PRF9aPXkKKyMgQ09ORklHX01LUEFTU1dEIGlzIG5vdCBzZXQKK0NPTkZJR19NS1NXQVA9eQorQ09ORklHX01LVEVNUD15CitDT05GSUdfTU9ESU5GTz15CitDT05GSUdfTU9EUFJPQkU9eQorQ09ORklHX01PUkU9eQorQ09ORklHX01PVU5UUE9JTlQ9eQorQ09ORklHX01PVU5UPXkKK0NPTkZJR19NVj15CitDT05GSUdfTkJEX0NMSUVOVD15CisjIENPTkZJR19OQkRfU0VSVkVSIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRDQVQ9eQorQ09ORklHX05FVFNUQVQ9eQorQ09ORklHX05JQ0U9eQorQ09ORklHX05MPXkKK0NPTkZJR19OT0hVUD15CitDT05GSUdfTlBST0M9eQorQ09ORklHX05TRU5URVI9eQorQ09ORklHX09EPXkKKyMgQ09ORklHX09ORUlUIGlzIG5vdCBzZXQKKyMgQ09ORklHX09QRU5WVCBpcyBub3Qgc2V0CitDT05GSUdfUEFSVFBST0JFPXkKKyMgQ09ORklHX1BBU1NXRCBpcyBub3Qgc2V0CitDT05GSUdfUEFTVEU9eQorQ09ORklHX1BBVENIPXkKK0NPTkZJR19QR1JFUD15CitDT05GSUdfUElET0Y9eQorQ09ORklHX1BJTkc9eQorQ09ORklHX1BJVk9UX1JPT1Q9eQorQ09ORklHX1BLSUxMPXkKK0NPTkZJR19QTUFQPXkKK0NPTkZJR19QUklOVEVOVj15CitDT05GSUdfUFJJTlRGPXkKK0NPTkZJR19QUz15CitDT05GSUdfUFdEWD15CitDT05GSUdfUFdEPXkKKyMgQ09ORklHX1BXR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFQURBSEVBRCBpcyBub3Qgc2V0CitDT05GSUdfUkVBREVMRj15CitDT05GSUdfUkVBRExJTks9eQorQ09ORklHX1JFQUxQQVRIPXkKKyMgQ09ORklHX1JFQk9PVCBpcyBub3Qgc2V0CitDT05GSUdfUkVOSUNFPXkKKyMgQ09ORklHX1JFU0VUIGlzIG5vdCBzZXQKK0NPTkZJR19SRVNUT1JFQ09OPXkKK0NPTkZJR19SRVY9eQorQ09ORklHX1JGS0lMTD15CitDT05GSUdfUk1ESVI9eQorQ09ORklHX1JNTU9EPXkKK0NPTkZJR19STT15CisjIENPTkZJR19ST1VURSBpcyBub3Qgc2V0CitDT05GSUdfUlRDV0FLRT15CitDT05GSUdfUlVOQ09OPXkKK0NPTkZJR19TRUQ9eQorQ09ORklHX1NFTkRFVkVOVD15CitDT05GSUdfU0VRPXkKK0NPTkZJR19TRVRFTkZPUkNFPXkKK0NPTkZJR19TRVRGQVRUUj15CitDT05GSUdfU0VUU0lEPXkKK0NPTkZJR19TSEExU1VNPXkKK0NPTkZJR19TSEEyMjRTVU09eQorQ09ORklHX1NIQTI1NlNVTT15CisjIENPTkZJR19TSEEzU1VNIGlzIG5vdCBzZXQKK0NPTkZJR19TSEEzODRTVU09eQorQ09ORklHX1NIQTUxMlNVTT15CisjIENPTkZJR19TSCBpcyBub3Qgc2V0CisjIENPTkZJR19TSFJFRCBpcyBub3Qgc2V0CisjIENPTkZJR19TSFVGIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NLRUxFVE9OX0FMSUFTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NLRUxFVE9OIGlzIG5vdCBzZXQKK0NPTkZJR19TTEVFUD15CisjIENPTkZJR19TTlRQIGlzIG5vdCBzZXQKK0NPTkZJR19TT1JUX0ZMT0FUPXkKK0NPTkZJR19TT1JUPXkKK0NPTkZJR19TUExJVD15CitDT05GSUdfU1RBVD15CisjIENPTkZJR19TVFJBQ0UgaXMgbm90IHNldAorQ09ORklHX1NUUklOR1M9eQorQ09ORklHX1NUVFk9eQorIyBDT05GSUdfU1UgaXMgbm90IHNldAorIyBDT05GSUdfU1VMT0dJTiBpcyBub3Qgc2V0CitDT05GSUdfU1dBUE9GRj15CitDT05GSUdfU1dBUE9OPXkKKyMgQ09ORklHX1NXSVRDSF9ST09UIGlzIG5vdCBzZXQKK0NPTkZJR19TWU5DPXkKK0NPTkZJR19TWVNDVEw9eQorIyBDT05GSUdfU1lTTE9HRCBpcyBub3Qgc2V0CitDT05GSUdfVEFDPXkKK0NPTkZJR19UQUlMPXkKK0NPTkZJR19UQVI9eQorQ09ORklHX1RBU0tTRVQ9eQorIyBDT05GSUdfVENQU1ZEIGlzIG5vdCBzZXQKK0NPTkZJR19URUU9eQorIyBDT05GSUdfVEVMTkVURCBpcyBub3Qgc2V0CisjIENPTkZJR19URUxORVQgaXMgbm90IHNldAorQ09ORklHX1RFU1Q9eQorQ09ORklHX1RFU1RfR0xVRT15CisjIENPTkZJR19URlRQRCBpcyBub3Qgc2V0CisjIENPTkZJR19URlRQIGlzIG5vdCBzZXQKK0NPTkZJR19USU1FT1VUPXkKK0NPTkZJR19USU1FPXkKK0NPTkZJR19UT1A9eQorQ09ORklHX1RPVUNIPXkKK0NPTkZJR19UUkFDRVJPVVRFPXkKK0NPTkZJR19UUlVFPXkKK0NPTkZJR19UUlVOQ0FURT15CitDT05GSUdfVFI9eQorIyBDT05GSUdfVFMgaXMgbm90IHNldAorIyBDT05GSUdfVFNPUlQgaXMgbm90IHNldAorQ09ORklHX1RUWT15CitDT05GSUdfVFVOQ1RMPXkKK0NPTkZJR19VQ0xBTVBTRVQ9eQorQ09ORklHX1VMSU1JVD15CitDT05GSUdfVU1PVU5UPXkKK0NPTkZJR19VTkFNRT15CisjIENPTkZJR19VTklDT0RFIGlzIG5vdCBzZXQKK0NPTkZJR19VTklRPXkKK0NPTkZJR19VTklYMkRPUz15CitDT05GSUdfVU5MSU5LPXkKK0NPTkZJR19VTlNIQVJFPXkKK0NPTkZJR19VUFRJTUU9eQorIyBDT05GSUdfVVNFUkFERCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0VSREVMIGlzIG5vdCBzZXQKK0NPTkZJR19VU0xFRVA9eQorQ09ORklHX1VVREVDT0RFPXkKK0NPTkZJR19VVUVOQ09ERT15CitDT05GSUdfVVVJREdFTj15CitDT05GSUdfVkNPTkZJRz15CitDT05GSUdfVkk9eQorQ09ORklHX1ZNU1RBVD15CitDT05GSUdfV0FUQ0g9eQorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorQ09ORklHX1dDPXkKKyMgQ09ORklHX1dHRVQgaXMgbm90IHNldAorQ09ORklHX1dISUNIPXkKK0NPTkZJR19XSE9BTUk9eQorIyBDT05GSUdfV0hPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cgaXMgbm90IHNldAorQ09ORklHX1hBUkdTPXkKK0NPTkZJR19YWEQ9eQorIyBDT05GSUdfWFpDQVQgaXMgbm90IHNldAorQ09ORklHX1lFUz15CitDT05GSUdfWkNBVD15CmRpZmYgLS1naXQgYS9jb25maWctbGludXggYi9jb25maWctbGludXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQxMzJjNgotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy1saW51eApAQCAtMCwwICsxLDM1NCBAQAorIworIyBIYW5kLW1haW50YWluZWQgLmNvbmZpZyBmaWxlLgorIworCisjCisjIEdlbmVyYWwgc2V0dGluZ3MuCisjCisKK0NPTkZJR19UT1lCT1g9eQorIyBDT05GSUdfVE9ZQk9YX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19UT1lCT1hfRkxPQVQ9eQorQ09ORklHX1RPWUJPWF9GT1JLPXkKKyMgQ09ORklHX1RPWUJPWF9GUkVFIGlzIG5vdCBzZXQKK0NPTkZJR19UT1lCT1hfSEVMUF9EQVNIREFTSD15CitDT05GSUdfVE9ZQk9YX0hFTFA9eQorQ09ORklHX1RPWUJPWF9MSUJDUllQVE89eQorQ09ORklHX1RPWUJPWF9MSUJaPXkKK0NPTkZJR19UT1lCT1hfTFNNX05PTkU9eQorQ09ORklHX1RPWUJPWF9OT1JFQ1VSU0U9eQorIyBDT05GSUdfVE9ZQk9YX09OX0FORFJPSUQgaXMgbm90IHNldAorIyBDT05GSUdfVE9ZQk9YX1NFTElOVVggaXMgbm90IHNldAorIyBDT05GSUdfVE9ZQk9YX1NNQUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPWUJPWF9TVUlEIGlzIG5vdCBzZXQKK0NPTkZJR19UT1lCT1hfVUlEX1NZUz0xMDAKK0NPTkZJR19UT1lCT1hfVUlEX1VTUj01MDAKKyMgQ09ORklHX1RPWUJPWF9aSEVMUCBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZWN0ZWQgdG95cy4KKyMKKworIyBDT05GSUdfQUNQSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUElORyBpcyBub3Qgc2V0CisjIENPTkZJR19BUlAgaXMgbm90IHNldAorIyBDT05GSUdfQVNDSUkgaXMgbm90IHNldAorIyBDT05GSUdfQkFTRTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBU0U2NCBpcyBub3Qgc2V0CitDT05GSUdfQkFTRU5BTUU9eQorIyBDT05GSUdfQkMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLRElTQ0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtJRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTE9DS0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19CT09UQ0hBUlREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSQ1RMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JVTlpJUDIgaXMgbm90IHNldAorIyBDT05GSUdfQlpDQVQgaXMgbm90IHNldAorIyBDT05GSUdfQ0FMIGlzIG5vdCBzZXQKK0NPTkZJR19DQVQ9eQorIyBDT05GSUdfQ0QgaXMgbm90IHNldAorIyBDT05GSUdfQ0hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIQ09OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIR1JQIGlzIG5vdCBzZXQKK0NPTkZJR19DSE1PRD15CisjIENPTkZJR19DSE9XTiBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJPT1QgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIVlQgaXMgbm90IHNldAorIyBDT05GSUdfQ0tTVU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0xFQVIgaXMgbm90IHNldAorQ09ORklHX0NNUD15CitDT05GSUdfQ09NTT15CisjIENPTkZJR19DT1VOVCBpcyBub3Qgc2V0CitDT05GSUdfQ1BJTz15CitDT05GSUdfQ1A9eQorIyBDT05GSUdfQ1JDMzIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JPTkQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JPTlRBQiBpcyBub3Qgc2V0CisjIENPTkZJR19DU1BMSVQgaXMgbm90IHNldAorQ09ORklHX0NVVD15CitDT05GSUdfREFURT15CitDT05GSUdfREQ9eQorIyBDT05GSUdfREVBTExPQ1ZUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RIQ1AgaXMgbm90IHNldAorIyBDT05GSUdfREVNT19NQU5ZX09QVElPTlMgaXMgbm90IHNldAorIyBDT05GSUdfREVNT19OVU1CRVIgaXMgbm90IHNldAorIyBDT05GSUdfREVNT19TQ0FOS0VZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFTU9fVVRGOFRPV0MgaXMgbm90IHNldAorIyBDT05GSUdfREVWTUVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RIQ1A2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RIQ1BEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RIQ1AgaXMgbm90IHNldAorQ09ORklHX0RJRkY9eQorQ09ORklHX0RJUk5BTUU9eQorIyBDT05GSUdfRE1FU0cgaXMgbm90IHNldAorIyBDT05GSUdfRE5TRE9NQUlOTkFNRSBpcyBub3Qgc2V0CitDT05GSUdfRE9TMlVOSVg9eQorIyBDT05GSUdfRFVNUExFQVNFUyBpcyBub3Qgc2V0CitDT05GSUdfRFU9eQorQ09ORklHX0VDSE89eQorQ09ORklHX0VHUkVQPXkKKyMgQ09ORklHX0VKRUNUIGlzIG5vdCBzZXQKK0NPTkZJR19FTlY9eQorIyBDT05GSUdfRVhJVCBpcyBub3Qgc2V0CisjIENPTkZJR19FWFBBTkQgaXMgbm90IHNldAorQ09ORklHX0VYUFI9eQorIyBDT05GSUdfRkFDVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZBTExPQ0FURSBpcyBub3Qgc2V0CisjIENPTkZJR19GQUxTRSBpcyBub3Qgc2V0CisjIENPTkZJR19GRElTSyBpcyBub3Qgc2V0CitDT05GSUdfRkdSRVA9eQorQ09ORklHX0ZJTEU9eQorQ09ORklHX0ZJTkQ9eQorQ09ORklHX0ZMT0NLPXkKKyMgQ09ORklHX0ZNVCBpcyBub3Qgc2V0CisjIENPTkZJR19GT0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZSRUUgaXMgbm90IHNldAorIyBDT05GSUdfRlJFRVJBTURJU0sgaXMgbm90IHNldAorIyBDT05GSUdfRlNDSyBpcyBub3Qgc2V0CisjIENPTkZJR19GU0ZSRUVaRSBpcyBub3Qgc2V0CisjIENPTkZJR19GU1RZUEUgaXMgbm90IHNldAorIyBDT05GSUdfRlNZTkMgaXMgbm90IHNldAorIyBDT05GSUdfRlRQR0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZUUFBVVCBpcyBub3Qgc2V0CitDT05GSUdfR0VUQ09ORj15CisjIENPTkZJR19HRVRFTkZPUkNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFVEZBVFRSIGlzIG5vdCBzZXQKK0NPTkZJR19HRVRPUFQ9eQorIyBDT05GSUdfR0VUVFkgaXMgbm90IHNldAorIyBDT05GSUdfR0lUQ0hFQ0tPVVQgaXMgbm90IHNldAorIyBDT05GSUdfR0lUQ0xPTkUgaXMgbm90IHNldAorIyBDT05GSUdfR0lUQ09NUEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dJVEZFVENIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dJVElOSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0lUUkVNT1RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dQSU9ERVRFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfR1BJT0ZJTkQgaXMgbm90IHNldAorIyBDT05GSUdfR1BJT0dFVCBpcyBub3Qgc2V0CisjIENPTkZJR19HUElPSU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19HUElPU0VUIGlzIG5vdCBzZXQKK0NPTkZJR19HUkVQPXkKKyMgQ09ORklHX0dST1VQQUREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dST1VQREVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19HVU5aSVAgaXMgbm90IHNldAorQ09ORklHX0daSVA9eQorQ09ORklHX0hFQUQ9eQorIyBDT05GSUdfSEVMTE8gaXMgbm90IHNldAorIyBDT05GSUdfSEVMUCBpcyBub3Qgc2V0CisjIENPTkZJR19IRVhEVU1QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFWEVESVQgaXMgbm90IHNldAorIyBDT05GSUdfSEQgaXMgbm90IHNldAorIyBDT05GSUdfSE9TVElEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPU1QgaXMgbm90IHNldAorQ09ORklHX0hPU1ROQU1FPXkKKyMgQ09ORklHX0hUVFBEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSTJDREVURUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ0RVTVAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDR0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ1NFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNUUkFOU0ZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JQ09OViBpcyBub3Qgc2V0CitDT05GSUdfSUQ9eQorIyBDT05GSUdfSURfWiBpcyBub3Qgc2V0CisjIENPTkZJR19JRkNPTkZJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JTklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOT1RJRllEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOU01PRCBpcyBub3Qgc2V0CitDT05GSUdfSU5TVEFMTD15CisjIENPTkZJR19JT05JQ0UgaXMgbm90IHNldAorIyBDT05GSUdfSU9SRU5JQ0UgaXMgbm90IHNldAorIyBDT05GSUdfSU9UT1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBDUk0gaXMgbm90IHNldAorIyBDT05GSUdfSVBDUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUCBpcyBub3Qgc2V0CisjIENPTkZJR19LSUxMQUxMNSBpcyBub3Qgc2V0CisjIENPTkZJR19LSUxMQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tJTEwgaXMgbm90IHNldAorIyBDT05GSUdfS0xPR0QgaXMgbm90IHNldAorIyBDT05GSUdfS0xPR0RfU09VUkNFX1JJTkdfQlVGRkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBU1QgaXMgbm90IHNldAorIyBDT05GSUdfTElOSyBpcyBub3Qgc2V0CisjIENPTkZJR19MSU5VWDMyIGlzIG5vdCBzZXQKK0NPTkZJR19MTj15CisjIENPTkZJR19MT0FEX1BPTElDWSBpcyBub3Qgc2V0CisjIENPTkZJR19MT0dHRVIgaXMgbm90IHNldAorIyBDT05GSUdfTE9HSU4gaXMgbm90IHNldAorIyBDT05GSUdfTE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPR05BTUUgaXMgbm90IHNldAorIyBDT05GSUdfTE9HUEFUSCBpcyBub3Qgc2V0CisjIENPTkZJR19MT1NFVFVQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19MU01PRCBpcyBub3Qgc2V0CisjIENPTkZJR19MU09GIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTVVNCIGlzIG5vdCBzZXQKK0NPTkZJR19MUz15CisjIENPTkZJR19NQUtFREVWUyBpcyBub3Qgc2V0CisjIENPTkZJR19NQU4gaXMgbm90IHNldAorIyBDT05GSUdfTUNPT0tJRSBpcyBub3Qgc2V0CitDT05GSUdfTUQ1U1VNPXkKKyMgQ09ORklHX01ERVZfQ09ORiBpcyBub3Qgc2V0CisjIENPTkZJR19NREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTUVBVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19NSUNST0NPTT15CisjIENPTkZJR19NSVggaXMgbm90IHNldAorQ09ORklHX01LRElSPXkKKyMgQ09ORklHX01LRElSX1ogaXMgbm90IHNldAorIyBDT05GSUdfTUtFMkZTX0VYVEVOREVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01LRTJGU19HRU4gaXMgbm90IHNldAorIyBDT05GSUdfTUtFMkZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01LRTJGU19KT1VSTkFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX01LRTJGU19MQUJFTCBpcyBub3Qgc2V0CisjIENPTkZJR19NS0ZJRk8gaXMgbm90IHNldAorIyBDT05GSUdfTUtGSUZPX1ogaXMgbm90IHNldAorIyBDT05GSUdfTUtOT0QgaXMgbm90IHNldAorIyBDT05GSUdfTUtOT0RfWiBpcyBub3Qgc2V0CisjIENPTkZJR19NS1BBU1NXRCBpcyBub3Qgc2V0CisjIENPTkZJR19NS1NXQVAgaXMgbm90IHNldAorQ09ORklHX01LVEVNUD15CisjIENPTkZJR19NT0RJTkZPIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFBST0JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PUkUgaXMgbm90IHNldAorQ09ORklHX01PVU5UPXkKKyMgQ09ORklHX01PVU5UUE9JTlQgaXMgbm90IHNldAorQ09ORklHX01WPXkKKyMgQ09ORklHX05CRF9DTElFTlQgaXMgbm90IHNldAorIyBDT05GSUdfTkJEX1NFUlZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDQVQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUU1RBVCBpcyBub3Qgc2V0CisjIENPTkZJR19OSUNFIGlzIG5vdCBzZXQKK0NPTkZJR19OTD15CisjIENPTkZJR19OT0hVUCBpcyBub3Qgc2V0CitDT05GSUdfTlBST0M9eQorIyBDT05GSUdfTlNFTlRFUiBpcyBub3Qgc2V0CitDT05GSUdfT0Q9eQorIyBDT05GSUdfT05FSVQgaXMgbm90IHNldAorIyBDT05GSUdfT1BFTlZUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlRQUk9CRSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVNTV0QgaXMgbm90IHNldAorIyBDT05GSUdfUEFTU1dEX1NBRCBpcyBub3Qgc2V0CitDT05GSUdfUEFTVEU9eQorQ09ORklHX1BBVENIPXkKK0NPTkZJR19QR1JFUD15CisjIENPTkZJR19QSURPRiBpcyBub3Qgc2V0CisjIENPTkZJR19QSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BJVk9UX1JPT1QgaXMgbm90IHNldAorQ09ORklHX1BLSUxMPXkKKyMgQ09ORklHX1BNQVAgaXMgbm90IHNldAorIyBDT05GSUdfUFJJTlRFTlYgaXMgbm90IHNldAorQ09ORklHX1BSSU5URj15CitDT05GSUdfUFM9eQorIyBDT05GSUdfUFdEWCBpcyBub3Qgc2V0CitDT05GSUdfUFdEPXkKKyMgQ09ORklHX1BXR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFQURBSEVBRCBpcyBub3Qgc2V0CisjIENPTkZJR19SRUFERUxGIGlzIG5vdCBzZXQKK0NPTkZJR19SRUFETElOSz15CitDT05GSUdfUkVBTFBBVEg9eQorIyBDT05GSUdfUkVCT09UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFTklDRSBpcyBub3Qgc2V0CisjIENPTkZJR19SRVNFVCBpcyBub3Qgc2V0CisjIENPTkZJR19SRVNUT1JFQ09OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFViBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorQ09ORklHX1JNRElSPXkKKyMgQ09ORklHX1JNTU9EIGlzIG5vdCBzZXQKK0NPTkZJR19STT15CisjIENPTkZJR19ST1VURSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENXQUtFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JVTkNPTiBpcyBub3Qgc2V0CitDT05GSUdfU0VEPXkKKyMgQ09ORklHX1NFTkRFVkVOVCBpcyBub3Qgc2V0CitDT05GSUdfU0VRPXkKKyMgQ09ORklHX1NFVEVORk9SQ0UgaXMgbm90IHNldAorIyBDT05GSUdfU0VURkFUVFIgaXMgbm90IHNldAorQ09ORklHX1NFVFNJRD15CitDT05GSUdfU0hBMVNVTT15CisjIENPTkZJR19TSEEyMjRTVU0gaXMgbm90IHNldAorQ09ORklHX1NIQTI1NlNVTT15CisjIENPTkZJR19TSEEzU1VNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NIQTM4NFNVTSBpcyBub3Qgc2V0CitDT05GSUdfU0hBNTEyU1VNPXkKKyMgQ09ORklHX1NIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NIUkVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NIVUYgaXMgbm90IHNldAorIyBDT05GSUdfU0tFTEVUT05fQUxJQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0tFTEVUT04gaXMgbm90IHNldAorQ09ORklHX1NMRUVQPXkKKyMgQ09ORklHX1NOVFAgaXMgbm90IHNldAorQ09ORklHX1NPUlRfRkxPQVQ9eQorQ09ORklHX1NPUlQ9eQorIyBDT05GSUdfU1BMSVQgaXMgbm90IHNldAorQ09ORklHX1NUQVQ9eQorIyBDT05GSUdfU1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NUUklOR1MgaXMgbm90IHNldAorIyBDT05GSUdfU1RUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TVSBpcyBub3Qgc2V0CisjIENPTkZJR19TVUxPR0lOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NXQVBPRkYgaXMgbm90IHNldAorIyBDT05GSUdfU1dBUE9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NXSVRDSF9ST09UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTkMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTQ1RMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU0xPR0QgaXMgbm90IHNldAorIyBDT05GSUdfVEFDIGlzIG5vdCBzZXQKK0NPTkZJR19UQUlMPXkKK0NPTkZJR19UQVI9eQorIyBDT05GSUdfVEFTS1NFVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BTVkQgaXMgbm90IHNldAorQ09ORklHX1RFRT15CisjIENPTkZJR19URUxORVREIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFTE5FVCBpcyBub3Qgc2V0CitDT05GSUdfVEVTVD15CitDT05GSUdfVEVTVF9HTFVFPXkKKyMgQ09ORklHX1RGVFBEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RGVFAgaXMgbm90IHNldAorIyBDT05GSUdfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfVElNRU9VVD15CisjIENPTkZJR19UT1AgaXMgbm90IHNldAorQ09ORklHX1RPVUNIPXkKKyMgQ09ORklHX1RSQUNFUk9VVEUgaXMgbm90IHNldAorQ09ORklHX1RSVUU9eQorQ09ORklHX1RSVU5DQVRFPXkKK0NPTkZJR19UUj15CisjIENPTkZJR19UUyBpcyBub3Qgc2V0CisjIENPTkZJR19UU09SVCBpcyBub3Qgc2V0CisjIENPTkZJR19UVFkgaXMgbm90IHNldAorIyBDT05GSUdfVFVOQ1RMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VDTEFNUFNFVCBpcyBub3Qgc2V0CisjIENPTkZJR19VTElNSVQgaXMgbm90IHNldAorQ09ORklHX1VNT1VOVD15CitDT05GSUdfVU5BTUU9eQorIyBDT05GSUdfVU5JQ09ERSBpcyBub3Qgc2V0CitDT05GSUdfVU5JUT15CitDT05GSUdfVU5JWDJET1M9eQorIyBDT05GSUdfVU5MSU5LIGlzIG5vdCBzZXQKK0NPTkZJR19VTlNIQVJFPXkKKyMgQ09ORklHX1VQVElNRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0VSQUREIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTRVJERUwgaXMgbm90IHNldAorIyBDT05GSUdfVVNMRUVQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VVREVDT0RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VVRU5DT0RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VVSURHRU4gaXMgbm90IHNldAorIyBDT05GSUdfVkNPTkZJRyBpcyBub3Qgc2V0CisjIENPTkZJR19WSSBpcyBub3Qgc2V0CisjIENPTkZJR19WTVNUQVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0ggaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorQ09ORklHX1dDPXkKKyMgQ09ORklHX1dHRVQgaXMgbm90IHNldAorQ09ORklHX1dISUNIPXkKK0NPTkZJR19XSE9BTUk9eQorIyBDT05GSUdfV0hPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cgaXMgbm90IHNldAorQ09ORklHX1hBUkdTPXkKK0NPTkZJR19YWEQ9eQorIyBDT05GSUdfWFpDQVQgaXMgbm90IHNldAorIyBDT05GSUdfWUVTIGlzIG5vdCBzZXQKK0NPTkZJR19aQ0FUPXkKZGlmZiAtLWdpdCBhL2NvbmZpZy1tYWMgYi9jb25maWctbWFjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwYjkyOGUKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWctbWFjCkBAIC0wLDAgKzEsMzU0IEBACisjCisjIEhhbmQtbWFpbnRhaW5lZCAuY29uZmlnIGZpbGUuCisjCisKKyMKKyMgR2VuZXJhbCBzZXR0aW5ncy4KKyMKKworQ09ORklHX1RPWUJPWD15CisjIENPTkZJR19UT1lCT1hfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1RPWUJPWF9GTE9BVD15CitDT05GSUdfVE9ZQk9YX0ZPUks9eQorIyBDT05GSUdfVE9ZQk9YX0ZSRUUgaXMgbm90IHNldAorQ09ORklHX1RPWUJPWF9IRUxQX0RBU0hEQVNIPXkKK0NPTkZJR19UT1lCT1hfSEVMUD15CitDT05GSUdfVE9ZQk9YX0xJQkNSWVBUTz15CitDT05GSUdfVE9ZQk9YX0xJQlo9eQorQ09ORklHX1RPWUJPWF9MU01fTk9ORT15CitDT05GSUdfVE9ZQk9YX05PUkVDVVJTRT15CisjIENPTkZJR19UT1lCT1hfT05fQU5EUk9JRCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1lCT1hfU0VMSU5VWCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1lCT1hfU01BQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVE9ZQk9YX1NVSUQgaXMgbm90IHNldAorQ09ORklHX1RPWUJPWF9VSURfU1lTPTEwMAorQ09ORklHX1RPWUJPWF9VSURfVVNSPTUwMAorIyBDT05GSUdfVE9ZQk9YX1pIRUxQIGlzIG5vdCBzZXQKKworIworIyBTZWxlY3RlZCB0b3lzLgorIworCisjIENPTkZJR19BQ1BJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0ggaXMgbm90IHNldAorIyBDT05GSUdfQVJQSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUCBpcyBub3Qgc2V0CisjIENPTkZJR19BU0NJSSBpcyBub3Qgc2V0CisjIENPTkZJR19CQVNFMzIgaXMgbm90IHNldAorIyBDT05GSUdfQkFTRTY0IGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFTkFNRT15CisjIENPTkZJR19CQyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtESVNDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS0lEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMT0NLREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JPT1RDSEFSVEQgaXMgbm90IHNldAorIyBDT05GSUdfQlJDVEwgaXMgbm90IHNldAorIyBDT05GSUdfQlVOWklQMiBpcyBub3Qgc2V0CisjIENPTkZJR19CWkNBVCBpcyBub3Qgc2V0CisjIENPTkZJR19DQUwgaXMgbm90IHNldAorQ09ORklHX0NBVD15CisjIENPTkZJR19DRCBpcyBub3Qgc2V0CisjIENPTkZJR19DSEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ0hDT04gaXMgbm90IHNldAorIyBDT05GSUdfQ0hHUlAgaXMgbm90IHNldAorQ09ORklHX0NITU9EPXkKKyMgQ09ORklHX0NIT1dOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUk9PVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ0hWVCBpcyBub3Qgc2V0CisjIENPTkZJR19DS1NVTSBpcyBub3Qgc2V0CisjIENPTkZJR19DTEVBUiBpcyBub3Qgc2V0CitDT05GSUdfQ01QPXkKK0NPTkZJR19DT01NPXkKKyMgQ09ORklHX0NPVU5UIGlzIG5vdCBzZXQKK0NPTkZJR19DUElPPXkKK0NPTkZJR19DUD15CisjIENPTkZJR19DUkMzMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUk9ORCBpcyBub3Qgc2V0CisjIENPTkZJR19DUk9OVEFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NTUExJVCBpcyBub3Qgc2V0CitDT05GSUdfQ1VUPXkKK0NPTkZJR19EQVRFPXkKK0NPTkZJR19ERD15CisjIENPTkZJR19ERUFMTE9DVlQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfREhDUCBpcyBub3Qgc2V0CisjIENPTkZJR19ERU1PX01BTllfT1BUSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERU1PX05VTUJFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERU1PX1NDQU5LRVkgaXMgbm90IHNldAorIyBDT05GSUdfREVNT19VVEY4VE9XQyBpcyBub3Qgc2V0CisjIENPTkZJR19ERVZNRU0gaXMgbm90IHNldAorIyBDT05GSUdfREYgaXMgbm90IHNldAorIyBDT05GSUdfREhDUDYgaXMgbm90IHNldAorIyBDT05GSUdfREhDUEQgaXMgbm90IHNldAorIyBDT05GSUdfREhDUCBpcyBub3Qgc2V0CitDT05GSUdfRElGRj15CitDT05GSUdfRElSTkFNRT15CisjIENPTkZJR19ETUVTRyBpcyBub3Qgc2V0CisjIENPTkZJR19ETlNET01BSU5OQU1FIGlzIG5vdCBzZXQKK0NPTkZJR19ET1MyVU5JWD15CisjIENPTkZJR19EVU1QTEVBU0VTIGlzIG5vdCBzZXQKK0NPTkZJR19EVT15CitDT05GSUdfRUNITz15CitDT05GSUdfRUdSRVA9eQorIyBDT05GSUdfRUpFQ1QgaXMgbm90IHNldAorQ09ORklHX0VOVj15CisjIENPTkZJR19FWElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYUEFORCBpcyBub3Qgc2V0CitDT05GSUdfRVhQUj15CisjIENPTkZJR19GQUNUT1IgaXMgbm90IHNldAorIyBDT05GSUdfRkFMTE9DQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZBTFNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZESVNLIGlzIG5vdCBzZXQKK0NPTkZJR19GR1JFUD15CitDT05GSUdfRklMRT15CitDT05GSUdfRklORD15CisjIENPTkZJR19GTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19GTVQgaXMgbm90IHNldAorIyBDT05GSUdfRk9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19GUkVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZSRUVSQU1ESVNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZTQ0sgaXMgbm90IHNldAorIyBDT05GSUdfRlNGUkVFWkUgaXMgbm90IHNldAorIyBDT05GSUdfRlNUWVBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZTWU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZUUEdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19GVFBQVVQgaXMgbm90IHNldAorQ09ORklHX0dFVENPTkY9eQorIyBDT05GSUdfR0VURU5GT1JDRSBpcyBub3Qgc2V0CisjIENPTkZJR19HRVRGQVRUUiBpcyBub3Qgc2V0CitDT05GSUdfR0VUT1BUPXkKKyMgQ09ORklHX0dFVFRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dJVENIRUNLT1VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dJVENMT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dJVENPTVBBVCBpcyBub3Qgc2V0CisjIENPTkZJR19HSVRGRVRDSCBpcyBub3Qgc2V0CisjIENPTkZJR19HSVRJTklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dJVFJFTU9URSBpcyBub3Qgc2V0CisjIENPTkZJR19HUElPREVURUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dQSU9GSU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dQSU9HRVQgaXMgbm90IHNldAorIyBDT05GSUdfR1BJT0lORk8gaXMgbm90IHNldAorIyBDT05GSUdfR1BJT1NFVCBpcyBub3Qgc2V0CitDT05GSUdfR1JFUD15CisjIENPTkZJR19HUk9VUEFERCBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUERFTCBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUFMgaXMgbm90IHNldAorIyBDT05GSUdfR1VOWklQIGlzIG5vdCBzZXQKK0NPTkZJR19HWklQPXkKK0NPTkZJR19IRUFEPXkKKyMgQ09ORklHX0hFTExPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFTFAgaXMgbm90IHNldAorIyBDT05GSUdfSEVYRFVNUCBpcyBub3Qgc2V0CisjIENPTkZJR19IRVhFRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPU1RJRCBpcyBub3Qgc2V0CisjIENPTkZJR19IT1NUIGlzIG5vdCBzZXQKK0NPTkZJR19IT1NUTkFNRT15CisjIENPTkZJR19IVFRQRCBpcyBub3Qgc2V0CisjIENPTkZJR19IV0NMT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ0RFVEVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNEVU1QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ0dFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNTRVQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDVFJBTlNGRVIgaXMgbm90IHNldAorIyBDT05GSUdfSUNPTlYgaXMgbm90IHNldAorQ09ORklHX0lEPXkKKyMgQ09ORklHX0lEX1ogaXMgbm90IHNldAorIyBDT05GSUdfSUZDT05GSUcgaXMgbm90IHNldAorIyBDT05GSUdfSU5JVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTk9USUZZRCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlNNT0QgaXMgbm90IHNldAorQ09ORklHX0lOU1RBTEw9eQorIyBDT05GSUdfSU9OSUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPUkVOSUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPVE9QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQQ1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQQ1MgaXMgbm90IHNldAorIyBDT05GSUdfSVAgaXMgbm90IHNldAorIyBDT05GSUdfS0lMTEFMTDUgaXMgbm90IHNldAorIyBDT05GSUdfS0lMTEFMTCBpcyBub3Qgc2V0CisjIENPTkZJR19LSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tMT0dEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tMT0dEX1NPVVJDRV9SSU5HX0JVRkZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19MQVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJTksgaXMgbm90IHNldAorIyBDT05GSUdfTElOVVgzMiBpcyBub3Qgc2V0CitDT05GSUdfTE49eQorIyBDT05GSUdfTE9BRF9QT0xJQ1kgaXMgbm90IHNldAorIyBDT05GSUdfTE9HR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPR0lOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPRyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0dOQU1FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPR1BBVEggaXMgbm90IHNldAorIyBDT05GSUdfTE9TRVRVUCBpcyBub3Qgc2V0CisjIENPTkZJR19MU0FUVFIgaXMgbm90IHNldAorIyBDT05GSUdfTFNNT0QgaXMgbm90IHNldAorIyBDT05GSUdfTFNPRiBpcyBub3Qgc2V0CisjIENPTkZJR19MU1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19MU1VTQiBpcyBub3Qgc2V0CitDT05GSUdfTFM9eQorIyBDT05GSUdfTUFLRURFVlMgaXMgbm90IHNldAorIyBDT05GSUdfTUFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX01DT09LSUUgaXMgbm90IHNldAorQ09ORklHX01ENVNVTT15CisjIENPTkZJR19NREVWX0NPTkYgaXMgbm90IHNldAorIyBDT05GSUdfTURFViBpcyBub3Qgc2V0CisjIENPTkZJR19NRU1FQVRFUiBpcyBub3Qgc2V0CitDT05GSUdfTUlDUk9DT009eQorIyBDT05GSUdfTUlYIGlzIG5vdCBzZXQKK0NPTkZJR19NS0RJUj15CisjIENPTkZJR19NS0RJUl9aIGlzIG5vdCBzZXQKKyMgQ09ORklHX01LRTJGU19FWFRFTkRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19NS0UyRlNfR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX01LRTJGUyBpcyBub3Qgc2V0CisjIENPTkZJR19NS0UyRlNfSk9VUk5BTCBpcyBub3Qgc2V0CisjIENPTkZJR19NS0UyRlNfTEFCRUwgaXMgbm90IHNldAorIyBDT05GSUdfTUtGSUZPIGlzIG5vdCBzZXQKKyMgQ09ORklHX01LRklGT19aIGlzIG5vdCBzZXQKKyMgQ09ORklHX01LTk9EIGlzIG5vdCBzZXQKKyMgQ09ORklHX01LTk9EX1ogaXMgbm90IHNldAorIyBDT05GSUdfTUtQQVNTV0QgaXMgbm90IHNldAorIyBDT05GSUdfTUtTV0FQIGlzIG5vdCBzZXQKK0NPTkZJR19NS1RFTVA9eQorIyBDT05GSUdfTU9ESU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RQUk9CRSBpcyBub3Qgc2V0CisjIENPTkZJR19NT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PVU5UUE9JTlQgaXMgbm90IHNldAorQ09ORklHX01WPXkKKyMgQ09ORklHX05CRF9DTElFTlQgaXMgbm90IHNldAorIyBDT05GSUdfTkJEX1NFUlZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDQVQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUU1RBVCBpcyBub3Qgc2V0CisjIENPTkZJR19OSUNFIGlzIG5vdCBzZXQKK0NPTkZJR19OTD15CisjIENPTkZJR19OT0hVUCBpcyBub3Qgc2V0CisjIENPTkZJR19OUFJPQyBpcyBub3Qgc2V0CisjIENPTkZJR19OU0VOVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19PRD15CisjIENPTkZJR19PTkVJVCBpcyBub3Qgc2V0CisjIENPTkZJR19PUEVOVlQgaXMgbm90IHNldAorIyBDT05GSUdfUEFSVFBST0JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBU1NXRCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVNTV0RfU0FEIGlzIG5vdCBzZXQKK0NPTkZJR19QQVNURT15CitDT05GSUdfUEFUQ0g9eQorIyBDT05GSUdfUEdSRVAgaXMgbm90IHNldAorIyBDT05GSUdfUElET0YgaXMgbm90IHNldAorIyBDT05GSUdfUElORyBpcyBub3Qgc2V0CisjIENPTkZJR19QSVZPVF9ST09UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BNQVAgaXMgbm90IHNldAorIyBDT05GSUdfUFJJTlRFTlYgaXMgbm90IHNldAorQ09ORklHX1BSSU5URj15CisjIENPTkZJR19QUyBpcyBub3Qgc2V0CisjIENPTkZJR19QV0RYIGlzIG5vdCBzZXQKK0NPTkZJR19QV0Q9eQorIyBDT05GSUdfUFdHRU4gaXMgbm90IHNldAorIyBDT05GSUdfUkVBREFIRUFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFQURFTEYgaXMgbm90IHNldAorQ09ORklHX1JFQURMSU5LPXkKK0NPTkZJR19SRUFMUEFUSD15CisjIENPTkZJR19SRUJPT1QgaXMgbm90IHNldAorIyBDT05GSUdfUkVOSUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFU0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFU1RPUkVDT04gaXMgbm90IHNldAorIyBDT05GSUdfUkVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CitDT05GSUdfUk1ESVI9eQorIyBDT05GSUdfUk1NT0QgaXMgbm90IHNldAorQ09ORklHX1JNPXkKKyMgQ09ORklHX1JPVVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ1dBS0UgaXMgbm90IHNldAorIyBDT05GSUdfUlVOQ09OIGlzIG5vdCBzZXQKK0NPTkZJR19TRUQ9eQorIyBDT05GSUdfU0VOREVWRU5UIGlzIG5vdCBzZXQKK0NPTkZJR19TRVE9eQorIyBDT05GSUdfU0VURU5GT1JDRSBpcyBub3Qgc2V0CisjIENPTkZJR19TRVRGQVRUUiBpcyBub3Qgc2V0CitDT05GSUdfU0VUU0lEPXkKK0NPTkZJR19TSEExU1VNPXkKKyMgQ09ORklHX1NIQTIyNFNVTSBpcyBub3Qgc2V0CitDT05GSUdfU0hBMjU2U1VNPXkKKyMgQ09ORklHX1NIQTNTVU0gaXMgbm90IHNldAorIyBDT05GSUdfU0hBMzg0U1VNIGlzIG5vdCBzZXQKK0NPTkZJR19TSEE1MTJTVU09eQorIyBDT05GSUdfU0ggaXMgbm90IHNldAorIyBDT05GSUdfU0hSRUQgaXMgbm90IHNldAorIyBDT05GSUdfU0hVRiBpcyBub3Qgc2V0CisjIENPTkZJR19TS0VMRVRPTl9BTElBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TS0VMRVRPTiBpcyBub3Qgc2V0CitDT05GSUdfU0xFRVA9eQorIyBDT05GSUdfU05UUCBpcyBub3Qgc2V0CitDT05GSUdfU09SVF9GTE9BVD15CitDT05GSUdfU09SVD15CisjIENPTkZJR19TUExJVCBpcyBub3Qgc2V0CitDT05GSUdfU1RBVD15CisjIENPTkZJR19TVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfU1RSSU5HUyBpcyBub3Qgc2V0CisjIENPTkZJR19TVFRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVTE9HSU4gaXMgbm90IHNldAorIyBDT05GSUdfU1dBUE9GRiBpcyBub3Qgc2V0CisjIENPTkZJR19TV0FQT04gaXMgbm90IHNldAorIyBDT05GSUdfU1dJVENIX1JPT1QgaXMgbm90IHNldAorIyBDT05GSUdfU1lOQyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNDVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1lTTE9HRCBpcyBub3Qgc2V0CisjIENPTkZJR19UQUMgaXMgbm90IHNldAorQ09ORklHX1RBSUw9eQorQ09ORklHX1RBUj15CisjIENPTkZJR19UQVNLU0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUFNWRCBpcyBub3Qgc2V0CitDT05GSUdfVEVFPXkKKyMgQ09ORklHX1RFTE5FVEQgaXMgbm90IHNldAorIyBDT05GSUdfVEVMTkVUIGlzIG5vdCBzZXQKK0NPTkZJR19URVNUPXkKK0NPTkZJR19URVNUX0dMVUU9eQorIyBDT05GSUdfVEZUUEQgaXMgbm90IHNldAorIyBDT05GSUdfVEZUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19USU1FT1VUPXkKKyMgQ09ORklHX1RPUCBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0g9eQorIyBDT05GSUdfVFJBQ0VST1VURSBpcyBub3Qgc2V0CitDT05GSUdfVFJVRT15CitDT05GSUdfVFJVTkNBVEU9eQorQ09ORklHX1RSPXkKKyMgQ09ORklHX1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RTT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RUWSBpcyBub3Qgc2V0CisjIENPTkZJR19UVU5DVEwgaXMgbm90IHNldAorIyBDT05GSUdfVUNMQU1QU0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VMSU1JVCBpcyBub3Qgc2V0CisjIENPTkZJR19VTU9VTlQgaXMgbm90IHNldAorQ09ORklHX1VOQU1FPXkKKyMgQ09ORklHX1VOSUNPREUgaXMgbm90IHNldAorQ09ORklHX1VOSVE9eQorQ09ORklHX1VOSVgyRE9TPXkKKyMgQ09ORklHX1VOTElOSyBpcyBub3Qgc2V0CisjIENPTkZJR19VTlNIQVJFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VQVElNRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0VSQUREIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTRVJERUwgaXMgbm90IHNldAorIyBDT05GSUdfVVNMRUVQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VVREVDT0RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VVRU5DT0RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VVSURHRU4gaXMgbm90IHNldAorIyBDT05GSUdfVkNPTkZJRyBpcyBub3Qgc2V0CisjIENPTkZJR19WSSBpcyBub3Qgc2V0CisjIENPTkZJR19WTVNUQVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0ggaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorQ09ORklHX1dDPXkKKyMgQ09ORklHX1dHRVQgaXMgbm90IHNldAorQ09ORklHX1dISUNIPXkKK0NPTkZJR19XSE9BTUk9eQorIyBDT05GSUdfV0hPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cgaXMgbm90IHNldAorQ09ORklHX1hBUkdTPXkKK0NPTkZJR19YWEQ9eQorIyBDT05GSUdfWFpDQVQgaXMgbm90IHNldAorIyBDT05GSUdfWUVTIGlzIG5vdCBzZXQKK0NPTkZJR19aQ0FUPXkKZGlmZiAtLWdpdCBhL3Bvc3RfdXBkYXRlLnNoIGIvcG9zdF91cGRhdGUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmI0MmRiYQotLS0gL2Rldi9udWxsCisrKyBiL3Bvc3RfdXBkYXRlLnNoCkBAIC0wLDAgKzEsMzggQEAKKyMhL2Jpbi9iYXNoCisKKyMgZXh0ZXJuYWwtdXBkYXRlciBwcm92aWRlczoKKyMgJDEgUGF0aCB0byB0aGUgbmV3IHZlcnNpb24uCisjICQyIFBhdGggdG8gdGhlIG9sZCB2ZXJzaW9uLgorCitpZiBbICIkIyIgLWx0IDEgXTsgdGhlbgorICBlY2hvICduZWVkIGF0IGxlYXN0IHRoZSBwYXRoIHRvIHRoZSBjdXJyZW50IHZlcnNpb24hJworICBleGl0IDEKK2ZpCitjZCAkMQorCitzZXQgLWUKKworcm0gLXJmIC5jb25maWcgZ2VuZXJhdGVkLyBhbmRyb2lkLworCitmdW5jdGlvbiBnZW5lcmF0ZSgpIHsKKyAgd2hpY2g9JDEKKyAgZWNobyAtZSAiXG4tLS0tLS0tLSAkMVxuIgorCisgICMgVGhlc2UgYXJlIHRoZSBvbmx5IGdlbmVyYXRlZCBmaWxlcyB3ZSBhY3R1YWxseSBuZWVkLgorICBmaWxlcz0iY29uZmlnLmggZmxhZ3MuaCBnbG9iYWxzLmggaGVscC5oIG5ld3RveXMuaCB0YWdzLmgiCisKKyAgY3AgY29uZmlnLSR3aGljaCAuY29uZmlnCisgIE5PQlVJTEQ9MSBzY3JpcHRzL21ha2Uuc2gKKyAgb3V0PWFuZHJvaWQvJHdoaWNoL2dlbmVyYXRlZC8KKyAgbWtkaXIgLXAgJG91dAorICBmb3IgZiBpbiAkZmlsZXM7IGRvIGNwIGdlbmVyYXRlZC8kZiAkb3V0LyRmIDsgZG9uZQorICBybSAtcmYgLmNvbmZpZyBnZW5lcmF0ZWQvCisKKyAgbWFrZSBhbGxub2NvbmZpZyBLQ09ORklHX0FMTENPTkZJRz1jb25maWctJHdoaWNoCit9CisKK2dlbmVyYXRlICJkZXZpY2UiCitnZW5lcmF0ZSAibGludXgiCitnZW5lcmF0ZSAibWFjIgorCitybSAtcmYgLmNvbmZpZwpkaWZmIC0tZ2l0IGEvcnVuLXRlc3RzLW9uLWFuZHJvaWQuc2ggYi9ydW4tdGVzdHMtb24tYW5kcm9pZC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMmYyNzhmCi0tLSAvZGV2L251bGwKKysrIGIvcnVuLXRlc3RzLW9uLWFuZHJvaWQuc2gKQEAgLTAsMCArMSwxMTUgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgU2V0dXAuCisjCisKKyMgQ29weSB0aGUgdG95Ym94IHRlc3RzIGFjcm9zcy4KK2lmIFtbICQoYWRiIHNoZWxsIGdldHByb3Agcm8uZGVidWdnYWJsZSkgPT0gMSBdXTsgdGhlbgorICBhZGIgc2hlbGwgc3Ugcm9vdCBybSAtcmYgL2RhdGEvbG9jYWwvdG1wL3RveWJveC10ZXN0cy8KK2ZpCithZGIgc2hlbGwgcm0gLXJmIC9kYXRhL2xvY2FsL3RtcC90b3lib3gtdGVzdHMvCithZGIgc2hlbGwgbWtkaXIgL2RhdGEvbG9jYWwvdG1wL3RveWJveC10ZXN0cy8KK2FkYiBwdXNoIHRlc3RzLyAvZGF0YS9sb2NhbC90bXAvdG95Ym94LXRlc3RzLworYWRiIHB1c2ggc2NyaXB0cy9ydW50ZXN0LnNoIC9kYXRhL2xvY2FsL3RtcC90b3lib3gtdGVzdHMvCisKKyMgTWFrZSBhIHRlbXBvcmFyeSBkaXJlY3Rvcnkgb24gdGhlIGRldmljZS4KK3RtcF9kaXI9YGFkYiBzaGVsbCBta3RlbXAgLS1kaXJlY3RvcnkgL2RhdGEvbG9jYWwvdG1wL3RveWJveC10ZXN0cy10bXAuWFhYWFhYWFhYWGAKKworaWYgdHR5IC1zOyB0aGVuCisgIGdyZWVuPSJcMDMzWzE7MzJtIgorICByZWQ9IlwwMzNbMTszMW0iCisgIHBsYWluPSJcMDMzWzBtIgorZWxzZQorICBncmVlbj0iIgorICByZWQ9IiIKKyAgcGxhaW49IiIKK2ZpCisKKyMgRm9yY2UgcHR5IGFsbG9jYXRpb24gKGh0dHA6Ly9iLzE0Mjc5ODU4NykuCitkYXNoX3Q9Ii10dCIKKwordGVzdF90b3koKSB7CisgIHRveT0kMQorCisgIGVjaG8KKworICBsb2NhdGlvbj0kKGFkYiBzaGVsbCAid2hpY2ggJHRveSIpCisgIGlmIFsgLXogIiRsb2NhdGlvbiIgXTsgdGhlbgorICAgIGVjaG8gIi0tICR0b3kgbm90IHByZXNlbnQiCisgICAgcmV0dXJuCisgIGZpCisKKyAgZWNobyAiLS0gJHRveSIKKworICBpbXBsZW1lbnRhdGlvbj0kKGFkYiBzaGVsbCAicmVhbHBhdGggJGxvY2F0aW9uIikKKyAgbm9uX3RveT1mYWxzZQorICBpZiBbICIkaW1wbGVtZW50YXRpb24iICE9ICIvc3lzdGVtL2Jpbi90b3lib3giIF07IHRoZW4KKyAgICBlY2hvICItLSBub3RlOiAkdG95IGlzICpub3QqIHRveWJveDsgdGhpcyBkb2VzIG5vdCBjb3VudCBhcyBhIHRlc3QgZmFpbHVyZSIKKyAgICBub25fdG95PXRydWUKKyAgZmkKKworICBhZGIgc2hlbGwgJGRhc2hfdCAiXAorICAgICAgZXhwb3J0IEM9XCJcJCh3aGljaCAkdG95KVwiOyBcCisgICAgICBleHBvcnQgQ01ETkFNRT0kdG95OyBcCisgICAgICBleHBvcnQgVEVTVERJUj0kdG1wX2RpcjsgXAorICAgICAgZXhwb3J0IEZJTEVTPS9kYXRhL2xvY2FsL3RtcC90b3lib3gtdGVzdHMvdGVzdHMvZmlsZXMvIDsgXAorICAgICAgZXhwb3J0IExBTkc9ZW5fVVMuVVRGLTg7IFwKKyAgICAgIGV4cG9ydCBWRVJCT1NFPTEgOyBcCisgICAgICBta2RpciAkdG1wX2Rpci8kdG95ICYmIGNkICR0bXBfZGlyLyR0b3kgOyBcCisgICAgICBzb3VyY2UgL2RhdGEvbG9jYWwvdG1wL3RveWJveC10ZXN0cy9ydW50ZXN0LnNoIDsgXAorICAgICAgc291cmNlIC9kYXRhL2xvY2FsL3RtcC90b3lib3gtdGVzdHMvdGVzdHMvJHRveS50ZXN0IDsgXAorICAgICAgaWYgWyAiXCRGQUlMQ09VTlQiIC1uZSAwIF07IHRoZW4gZXhpdCAxOyBmaTsgXAorICAgICAgY2QgLi4gJiYgcm0gLXJmICR0b3kiCisgIGlmIFsgJD8gLWVxIDAgXTsgdGhlbgorICAgIHBhc3NfY291bnQ9JCgoJHBhc3NfY291bnQrMSkpCisgIGVsaWYgWyAiJG5vbl90b3kiID0gInRydWUiIF07IHRoZW4KKyAgICBub25fdG95X2ZhaWx1cmVzPSIkbm9uX3RveV9mYWlsdXJlcyAkdG95IgorICBlbHNlCisgICAgaWYgW1sgIiR0b3kiID0gInZpIiBdXTsgdGhlbgorICAgICAgbm9uX3RveV9mYWlsdXJlcz0iJG5vbl90b3lfZmFpbHVyZXMgJHRveSIKKyAgICBlbHNlCisgICAgICBmYWlsdXJlcz0iJGZhaWx1cmVzICR0b3kiCisgICAgZmkKKyAgZmkKK30KKworIworIyBSdW4gdGhlIHNlbGVjdGVkIHRlc3Qgb3IgYWxsIHRlc3RzLgorIworCitmYWlsdXJlcz0iIgorcGFzc19jb3VudD0wCitpZiBbICIkIyIgLWVxIDAgXTsgdGhlbgorICAjIFJ1biBhbGwgdGhlIHRlc3RzLgorICBmb3IgdCBpbiB0ZXN0cy8qLnRlc3Q7IGRvCisgICAgdG95PWBlY2hvICR0IHwgc2VkICdzfHRlc3RzL3x8JyB8IHNlZCAnc3xcLnRlc3R8fCdgCisgICAgdGVzdF90b3kgJHRveQorICBkb25lCitlbHNlCisgICMgSnVzdCBydW4gdGhlIHRlc3RzIGZvciB0aGUgZ2l2ZW4gdG95cy4KKyAgZm9yIHRveSBpbiAiJEAiOyBkbworICAgIHRlc3RfdG95ICR0b3kKKyAgZG9uZQorZmkKKworIworIyBTaG93IGEgc3VtbWFyeSBhbmQgcmV0dXJuIGEgbWVhbmluZ2Z1bCBleGl0IHN0YXR1cy4KKyMKKworZWNobworZWNobyAiX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyIKK2VjaG8KK2VjaG8gLWUgIiR7Z3JlZW59UEFTU0VEJHtwbGFpbn06ICRwYXNzX2NvdW50IgorZm9yIGZhaWx1cmUgaW4gJGZhaWx1cmVzOyBkbworICBlY2hvIC1lICIke3JlZH1GQUlMRUQke3BsYWlufTogJGZhaWx1cmUiCitkb25lCitmb3IgZmFpbHVyZSBpbiAkbm9uX3RveV9mYWlsdXJlczsgZG8KKyAgZWNobyAtZSAiJHtyZWR9RkFJTEVEJHtwbGFpbn06ICRmYWlsdXJlIChpZ25vcmluZykiCitkb25lCisKKyMgV2Ugc2hvdWxkIGhhdmUgcnVuICpzb21ldGhpbmcqLi4uCitpZiBbICRwYXNzX2NvdW50IC1lcSAwIF07IHRoZW4gZXhpdCAxOyBmaQorIyBBbmQgYWxsIGZhaWx1cmVzIGFyZSBiYWQuLi4KK2lmIFsgLW4gIiRmYWlsdXJlcyIgXTsgdGhlbiBleGl0IDE7IGZpCitleGl0IDAKZGlmZiAtLWdpdCBhL3RveWJveC1ndGVzdHMuY3BwIGIvdG95Ym94LWd0ZXN0cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTcwNDkzOQotLS0gL2Rldi9udWxsCisrKyBiL3RveWJveC1ndGVzdHMuY3BwCkBAIC0wLDAgKzEsMjA2IEBACisvKiB0b3lib3gtZ3Rlc3RzLmNwcCAtIFdyYXBwZXIgYXJvdW5kIHNjcmlwdHMvcnVudGVzdC5zaCB0byBydW4gZWFjaCB0b3kgdGVzdCBhcyBhIGd0ZXN0CisgKgorICogQ29weXJpZ2h0IDIwMjMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICovCisKKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxwYXRocy5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8aW9zdHJlYW0+CisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvZmlsZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9zdHJpbmdwcmludGYuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2Uvc3RyaW5ncy5oPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS90ZXN0X3V0aWxzLmg+CisKK2NvbnN0IHN0ZDo6c3RyaW5nIGtTaGVsbCA9CisjaWZkZWYgX19BTkRST0lEX18KKyAgX1BBVEhfQlNIRUxMOworI2Vsc2UKKyAgLy8gL2Jpbi9zaCBkb2Vzbid0IHdvcmsgd2hlbiBydW5uaW5nIG9uIHRoZSBob3N0LCB0aGUgdGVzdHMgcmVxdWlyZSAvYmluL2Jhc2gKKyAgIi9iaW4vYmFzaCI7CisjZW5kaWYKKworc3RhdGljIHZvaWQgTWtkaXJPckZhdGFsKHN0ZDo6c3RyaW5nIGRpcikgeworICBpbnQgcmV0ID0gbWtkaXIoZGlyLmNfc3RyKCksIDA3NzcpOworICBBU1NFUlRfRVEocmV0LCAwKSA8PCAiRmFpbGVkIHRvIG1ha2UgZGlyZWN0b3J5ICIgPDwgZGlyIDw8ICI6ICIgPDwgc3RyZXJyb3IoZXJybm8pOworfQorCitzdGF0aWMgc3RkOjpzdHJpbmcgU3lzdGVtU3Rkb3V0T3JGYXRhbChzdGQ6OnN0cmluZyBjbWQpIHsKKyAgQ2FwdHVyZWRTdGRvdXQgc3Rkb3V0X3N0cjsKKyAgaW50IHJldCA9IHN5c3RlbShjbWQuY19zdHIoKSk7CisgIHN0ZG91dF9zdHIuU3RvcCgpOworICBFWFBFQ1RfR0UocmV0LCAwKSA8PCAiRmFpbGVkIHRvIHJ1biAiIDw8IGNtZCA8PCAiOiAiIDw8IHN0cmVycm9yKGVycm5vKTsKKyAgRVhQRUNUX0VRKHJldCwgMCkgPDwgIkZhaWxlZCB0byBydW4gIiA8PCBjbWQgPDwgIjogZXhpdGVkIHdpdGggc3RhdHVzICIgPDwgcmV0OworICByZXR1cm4gYW5kcm9pZDo6YmFzZTo6VHJpbShzdGRvdXRfc3RyLnN0cigpKTsKK30KKworLy8gRXhlY1Rlc3Qgc2V0cyB1cCB0aGUgZW52aXJvbmVtbnQgYW5kIHRoZW4gZXhlY3MgdGhlIHRveWJveCB0ZXN0IHNjcmlwdHMgZm9yIGEgc2luZ2xlIHRveS4KKy8vIEl0IGlzIHJ1biBpbiBhIHN1YnByb2Nlc3MgYXMgYSBndGVzdCBkZWF0aCB0ZXN0Lgorc3RhdGljIHZvaWQgRXhlY1Rlc3Qoc3RkOjpzdHJpbmcgdG95LAorICAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgdG95X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyB0ZXN0X2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyB0ZW1wX2RpcikgIHsKKyAgc3RkOjpzdHJpbmcgdGVzdF9iaW5hcnlfZGlyID0gYW5kcm9pZDo6YmFzZTo6R2V0RXhlY3V0YWJsZURpcmVjdG9yeSgpOworCisgIHN0ZDo6c3RyaW5nIHdvcmtpbmdfZGlyID0gdGVtcF9kaXIgKyAiLyIgKyB0b3k7CisgIE1rZGlyT3JGYXRhbCh3b3JraW5nX2Rpcik7CisKKyNpZm5kZWYgX19BTkRST0lEX18KKyAgc3RkOjpzdHJpbmcgcGF0aF9lbnYgPSBnZXRlbnYoIlBBVEgiKTsKKyAgcGF0aF9lbnYgPSB0ZW1wX2RpciArICIvcGF0aDoiICsgcGF0aF9lbnY7CisgIHNldGVudigiUEFUSCIsIHBhdGhfZW52LmNfc3RyKCksIHRydWUpOworI2VuZGlmCisKKyAgc2V0ZW52KCJDIiwgdG95X3BhdGguY19zdHIoKSwgdHJ1ZSk7CisgIHNldGVudigiQ01ETkFNRSIsIHRveS5jX3N0cigpLCB0cnVlKTsKKyAgc2V0ZW52KCJURVNURElSIiwgdGVtcF9kaXIuY19zdHIoKSwgdHJ1ZSk7CisgIHNldGVudigiRklMRVMiLCAodGVzdF9iaW5hcnlfZGlyICsgIi90ZXN0cy9maWxlcyIpLmNfc3RyKCksIHRydWUpOworICBzZXRlbnYoIkxBTkciLCAiZW5fVVMuVVRGLTgiLCB0cnVlKTsKKyAgc2V0ZW52KCJWRVJCT1NFIiwgIjEiLCB0cnVlKTsKKworICBzdGQ6OnN0cmluZyB0ZXN0X2NtZCA9IGFuZHJvaWQ6OmJhc2U6OlN0cmluZ1ByaW50ZigKKyAgICAiY2QgJXMgJiYgc291cmNlICVzL3NjcmlwdHMvcnVudGVzdC5zaCAmJiBzb3VyY2UgJXMvdGVzdHMvJXMiLAorICAgIHdvcmtpbmdfZGlyLmNfc3RyKCksCisgICAgdGVzdF9iaW5hcnlfZGlyLmNfc3RyKCksCisgICAgdGVzdF9iaW5hcnlfZGlyLmNfc3RyKCksCisgICAgdGVzdF9maWxlLmNfc3RyKCkpOworCisgIHN0ZDo6dmVjdG9yPGNvbnN0IGNoYXIqPiBhcmdzOworICBhcmdzLnB1c2hfYmFjayhrU2hlbGwuY19zdHIoKSk7CisgIGFyZ3MucHVzaF9iYWNrKCItYyIpOworICBhcmdzLnB1c2hfYmFjayh0ZXN0X2NtZC5jX3N0cigpKTsKKyAgYXJncy5wdXNoX2JhY2soTlVMTCk7CisKKyAgLy8gV2hlbiBydW5uaW5nIGluIGF0ZXN0IHNvbWV0aGluZyBpcyBjb25maWd1cmUgdGhlIFNJR1FVSVQgc2lnbmFsIGFzIGJsb2NrZWQsIHdoaWNoCisgIC8vIGNhdXNlcyBzb21lIG1pc3NlZCBzaWduYWxzIGluIHRveWJveCB0ZXN0cyB0aGF0IGxlYXZlIGRhbmdsaW5nICJzbGVlcCAxMDAiIHByb2Nlc3NlcworICAvLyBseWluZyBhcm91bmQuICBUaGVzZSBwcm9jZXNzZXMgaGF2ZSB0aGUgZ3Rlc3QgcGlwZSBmZCBvcGVuLCBhbmQga2VlcCBndGVzdCBmcm9tCisgIC8vIGNvbnNpZGVyaW5nIHRoZSBkZWF0aCB0ZXN0IHRvIGhhdmUgZXhpdGVkIHVudGlsIHRoZSBzbGVlcCBlbmRzLgorICBzaWdzZXRfdCBzaWduYWxfc2V0OworICBzaWdlbXB0eXNldCgmc2lnbmFsX3NldCk7CisgIHNpZ2FkZHNldCgmc2lnbmFsX3NldCwgU0lHUVVJVCk7CisgIHNpZ3Byb2NtYXNrKFNJR19VTkJMT0NLLCAmc2lnbmFsX3NldCwgbnVsbHB0cik7CisKKyAgZXhlY3YoYXJnc1swXSwgY29uc3RfY2FzdDxjaGFyKio+KGFyZ3MuZGF0YSgpKSk7CisgIEZBSUwoKSA8PCAiRmFpbGVkIHRvIGV4ZWMgIiA8PCBrU2hlbGwgPDwgIiAtYyAnIiA8PCB0ZXN0X2NtZCA8PCAiJyIgPDwgc3RyZXJyb3IoZXJybm8pOworfQorCitjbGFzcyBUb3lib3hUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworIHB1YmxpYzoKKyAgVG95Ym94VGVzdChzdGQ6OnN0cmluZyB0b3ksIHN0ZDo6c3RyaW5nIHRlc3RfZmlsZSkgOiB0b3lfKHRveSksIHRlc3RfZmlsZV8odGVzdF9maWxlKSB7IH0KKyAgdm9pZCBUZXN0Qm9keSgpOworIHByaXZhdGU6CisgIHN0ZDo6c3RyaW5nIHRveV87CisgIHN0ZDo6c3RyaW5nIHRlc3RfZmlsZV87Cit9OworCisKK3ZvaWQgVG95Ym94VGVzdDo6VGVzdEJvZHkoKSB7CisgIC8vIFRoaXMgdGVzdCBmdW5jdGlvbiBpcyBydW4gb25jZSBmb3IgZWFjaCB0b3kuCisgIFRlbXBvcmFyeURpciB0ZW1wX2Rpcnt9OworICBib29sIGlnbm9yZV9mYWlsdXJlcyA9IGZhbHNlOworCisjaWZkZWYgX19BTkRST0lEX18KKyAgLy8gT24gdGhlIGRldmljZSwgY2hlY2sgd2hldGhlciB0aGUgdG95IGV4aXN0cworICBzdGQ6OnN0cmluZyB0b3lfcGF0aCA9IFN5c3RlbVN0ZG91dE9yRmF0YWwoc3RkOjpzdHJpbmcoIndoaWNoICIpICsgdG95XyArICIgfHwgdHJ1ZSIpOworICBpZiAodG95X3BhdGguZW1wdHkoKSkgeworICAgIEdURVNUX1NLSVAoKSA8PCB0b3lfIDw8ICIgbm90IHByZXNlbnQiOworICB9CisKKyAgLy8gQW5kIHdoZXRoZXIgaXQgaXMgdXNlcyB0b3lib3ggYXMgaXRzIGltcGxlbWVudGF0aW9uLgorICBzdGQ6OnN0cmluZyBpbXBsZW1lbnRhdGlvbiA9IFN5c3RlbVN0ZG91dE9yRmF0YWwoc3RkOjpzdHJpbmcoInJlYWxwYXRoICIpICsgdG95X3BhdGgpOworICBpZiAoIWFuZHJvaWQ6OmJhc2U6OkVuZHNXaXRoKGltcGxlbWVudGF0aW9uLCAiL3RveWJveCIpKSB7CisgICAgc3RkOjpjb3V0IDw8IHRveV8gPDwgIiBpcyAqbm90KiB0b3lib3g7IHRoaXMgZG9lcyBub3QgY291bnQgYXMgYSB0ZXN0IGZhaWx1cmUiOworICAgIC8vIElmIHRoZXJlIGlzIG5vIHN5bWxpbmsgZm9yIHRoZSB0b3kgb24gdGhlIGRldmljZSB0aGVuIHJ1biB0aGUgdGVzdHMgYnV0IGRvbid0IHJlcG9ydAorICAgIC8vIGZhaWx1cmVzLgorICAgIGlnbm9yZV9mYWlsdXJlcyA9IHRydWU7CisgIH0KKyNlbHNlCisgIC8vIE9uIHRoZSBob3N0IHRveWJveCBpcyBwYWNrYWdlZCB3aXRoIHRoZSB0ZXN0IHNvIHRoYXQgaXQgY2FuIGJlIHJ1biBpbiBDSSwgd2hpY2ggd29uJ3QKKyAgLy8gaGF2ZSBhY2Nlc3MgdG8gdGhlIHByZWJ1aWx0IHRveWJveCBvciBwYXRoIHN5bWxpbmtzLiAgSXQgaXMgcGFja2FnZWQgd2l0aG91dCBhbnkgdG95CisgIC8vIHN5bWxpbmtzLCBzbyBhIHN5bWxpbmsgaXMgY3JlYXRlZCBmb3IgZWFjaCB0ZXN0LgorCisgIC8vIFRlc3QgaWYgdGhlIHRveSBpcyBzdXBwb3J0ZWQgYnkgdGhlIHBhY2thZ2VkIHRveWJveCwgYW5kIHNraXAgdGhlIHRlc3QgaWYgbm90LgorICBzdGQ6OnN0cmluZyB0b3lib3hfcGF0aCA9IGFuZHJvaWQ6OmJhc2U6OkdldEV4ZWN1dGFibGVEaXJlY3RvcnkoKSArICIvdG95Ym94IjsKKyAgc3RkOjpzdHJpbmcgc3VwcG9ydGVkX3RveXNfc3RyID0gU3lzdGVtU3Rkb3V0T3JGYXRhbCh0b3lib3hfcGF0aCk7CisgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBzdXBwb3J0ZWRfdG95cyA9IGFuZHJvaWQ6OmJhc2U6OlNwbGl0KHN1cHBvcnRlZF90b3lzX3N0ciwgIiBcbiIpOworICBpZiAoc3RkOjpmaW5kKHN1cHBvcnRlZF90b3lzLmJlZ2luKCksIHN1cHBvcnRlZF90b3lzLmVuZCgpLCB0b3lfKSA9PSBzdXBwb3J0ZWRfdG95cy5lbmQoKSkgeworICAgIEdURVNUX1NLSVAoKSA8PCB0b3lfIDw8ICIgbm90IGNvbXBpbGVkIGludG8gdG95Ym94IjsKKyAgfQorCisgIC8vIENyZWF0ZSBhIGRpcmVjdG9yeSB3aXRoIGEgc3ltbGlua3MgZm9yIGFsbCB0aGUgdG95cyB0aGF0IHdpbGwgYmUgcHJlcGVuZGVkIHRvIFBBVEguCisgIC8vIFNvbWUgdGVzdHMgaGF2ZSBpbnRlcmRlcGVuZGVuY2llcyBvbiBvdGhlciB0b3lzIHRoYXQgbWF5IG5vdCBiZSBhdmFpbGFibGUgaW4KKyAgLy8gdGhlIGhvc3Qgc3lzdGVtLCBlLmcuIHRoZSB0YXIgdGVzdHMgZGVwZW5kIG9uIHRoZSBmaWxlIHRvb2wuCisgIHN0ZDo6c3RyaW5nIHBhdGhfZGlyID0gc3RkOjpzdHJpbmcodGVtcF9kaXIucGF0aCkgKyAiL3BhdGgiOworICBNa2Rpck9yRmF0YWwocGF0aF9kaXIpOworICBmb3IgKGF1dG8mIHRveSA6IHN1cHBvcnRlZF90b3lzKSB7CisgICAgc3RkOjpzdHJpbmcgdG95X3BhdGggPSBwYXRoX2RpciArICIvIiArIHRveTsKKyAgICBpbnQgcmV0ID0gc3ltbGluayh0b3lib3hfcGF0aC5jX3N0cigpLCB0b3lfcGF0aC5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEocmV0LCAwKSA8PAorICAgICAgIkZhaWxlZCB0byBzeW1saW5rICIgPDwgdG95X3BhdGggPDwgIiB0byAiIDw8IHRveWJveF9wYXRoIDw8ICI6ICIgPDwgc3RyZXJyb3IoZXJybm8pOworICB9CisgIHN0ZDo6c3RyaW5nIHRveV9wYXRoID0gcGF0aF9kaXIgKyAiLyIgKyB0b3lfOworI2VuZGlmCisKKyAgcGlkX3QgcGlkID0gZm9yaygpOworICBBU1NFUlRfR0UocGlkLCAwKSA8PCAiRmFpbGVkIHRvIGZvcmsiOworICBpZiAocGlkID4gMCkgeworICAgIC8vIHBhcmVudAorICAgIGludCBzdGF0dXMgPSAwOworICAgIGludCByZXQgPSB3YWl0cGlkKHBpZCwgJnN0YXR1cywgMCk7CisgICAgQVNTRVJUX0dUKHBpZCwgMCkgPDwgIkZhaWxlZCB0byB3YWl0IGZvciBjaGlsZCAiIDw8IHBpZCA8PCAiOiAiIDw8IHN0cmVycm9yKGVycm5vKTsKKyAgICBBU1NFUlRfVFJVRShXSUZFWElURUQoc3RhdHVzKSk7CisgICAgaWYgKCFpZ25vcmVfZmFpbHVyZXMpIHsKKyAgICAgIGludCBleGl0X3N0YXR1cyA9IFdFWElUU1RBVFVTKHN0YXR1cyk7CisgICAgICBBU1NFUlRfRVEoZXhpdF9zdGF0dXMsIDApOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICAvLyBjaGlsZAorICAgIEV4ZWNUZXN0KHRveV8sIHRveV9wYXRoLCB0ZXN0X2ZpbGVfLCB0ZW1wX2Rpci5wYXRoKTsKKyAgICBfZXhpdCgxKTsKKyAgfQorfQorCitfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIHN0YXRpYyB2b2lkIGluaXRUZXN0cygpIHsKKyAgLy8gRmluZCBhbGwgdGhlICJ0ZXN0cy8qLnRlc3QiIGZpbGVzIHBhY2thZ2VkIGFsb25nc2lkZSB0aGUgZ3Rlc3QuCisgIHN0ZDo6c3RyaW5nIHRlc3RfZGlyID0gYW5kcm9pZDo6YmFzZTo6R2V0RXhlY3V0YWJsZURpcmVjdG9yeSgpICsgIi90ZXN0cyI7CisgIHN0ZDo6dW5pcXVlX3B0cjxESVIsIGRlY2x0eXBlKCZjbG9zZWRpcik+IGRpcihvcGVuZGlyKHRlc3RfZGlyLmNfc3RyKCkpLCBjbG9zZWRpcik7CisgIGlmICghZGlyKSB7CisgICAgc3RkOjpjZXJyIDw8ICJDYW5ub3Qgb3BlbiB0ZXN0IGV4ZWN1dGFibGUgZGlyZWN0b3J5ICIgPDwgdGVzdF9kaXI7CisgICAgZXhpdCgxKTsKKyAgfQorCisgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB0ZXN0X2ZpbGVzOworICBkaXJlbnQqIGRlOworICB3aGlsZSAoKGRlID0gcmVhZGRpcihkaXIuZ2V0KCkpKSAhPSBudWxscHRyKSB7CisgICAgc3RkOjpzdHJpbmcgZmlsZSA9IGRlLT5kX25hbWU7CisgICAgaWYgKGFuZHJvaWQ6OmJhc2U6OkVuZHNXaXRoKGZpbGUsICIudGVzdCIpKSB7CisgICAgICB0ZXN0X2ZpbGVzLnB1c2hfYmFjayhmaWxlKTsKKyAgICB9CisgIH0KKworICBzdGQ6OnNvcnQodGVzdF9maWxlcy5iZWdpbigpLCB0ZXN0X2ZpbGVzLmVuZCgpKTsKKworICAvLyBSZWdpc3RlciBlYWNoIHRlc3QgZmlsZSBhcyBhbiBpbmRpdmlkdWFsIGd0ZXN0LgorICBmb3IgKGF1dG8mIHRlc3RfZmlsZSA6IHRlc3RfZmlsZXMpIHsKKyAgICBzdGQ6OnN0cmluZyB0b3kgPSB0ZXN0X2ZpbGUuc3Vic3RyKDAsIHRlc3RfZmlsZS5zaXplKCkgLSBzdHJsZW4oIi50ZXN0IikpOworCisgICAgdGVzdGluZzo6UmVnaXN0ZXJUZXN0KCJ0b3lib3giLCB0b3kuY19zdHIoKSwgbnVsbHB0ciwgbnVsbHB0ciwgX19GSUxFX18sIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbPV0oKSAtPiBUb3lib3hUZXN0KiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUb3lib3hUZXN0KHRveSwgdGVzdF9maWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgIH0KK30K