From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 06/15] public / x86: introduce __HYPERCALL_iommu_op Date: Wed, 1 Aug 2018 14:40:19 +0100 Message-ID: <20180801134028.1654-7-paul.durrant@citrix.com> References: <20180801134028.1654-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fkrMk-0008Nw-Q2 for xen-devel@lists.xenproject.org; Wed, 01 Aug 2018 13:40:38 +0000 In-Reply-To: <20180801134028.1654-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Paul Durrant , Jan Beulich , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBib2lsZXJwbGF0ZSBmb3IgYSBuZXcgaHlwZXJjYWxs IHRvIGFsbG93IGEKZG9tYWluIHRvIGNvbnRyb2wgSU9NTVUgbWFwcGluZ3MgZm9yIGl0cyBvd24g cGFnZXMuCldoaWxzdCB0aGVyZSBpcyBkdXBsaWNhdGlvbiBvZiBjb2RlIGJldHdlZW4gdGhlIG5h dGl2ZSBhbmQgY29tcGF0IGVudHJ5CnBvaW50cyB3aGljaCBhcHBlYXJzIHJpcGUgZm9yIHNvbWUg Zm9ybSBvZiBjb21iaW5hdGlvbiwgSSB0aGluayBpdCBpcwpiZXR0ZXIgdG8gbWFpbnRhaW4gdGhl IHNlcGFyYXRpb24gYXMtaXMgYmVjYXVzZSB0aGUgY29tcGF0IGVudHJ5IHBvaW50CndpbGwgbmVj ZXNzYXJpbHkgZ2FpbiBjb21wbGV4aXR5IGluIHN1YnNlcXVlbnQgcGF0Y2hlcy4KCk5PVEU6IFRo aXMgaHlwZXJjYWxsIGlzIG9ubHkgaW1wbGVtZW50ZWQgZm9yIHg4NiBhbmQgaXMgY3VycmVudGx5 CiAgICAgIHJlc3RyaWN0ZWQgYnkgWFNNIHRvIGRvbTAuIEl0cyBzY29wZSBjYW4gYmUgZXhwYW5k ZWQgaW4gZnV0dXJlCiAgICAgIGlmIG5lZWQgYmUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJh bnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJl dy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxHZW9yZ2UuRHVubGFwQGV1 LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4K Q2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsg V2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0 YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDYzogV2Vp IExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0 eWNoby5uc2EuZ292PgoKdjM6CiAtIFB1c2ggb3AgY29kZSBpbnRvIFhTTSBjaGVjay4KCnYyOgog LSBHZXQgcmlkIG9mIHRoZSBjYW5fY29udHJvbF9pb21tdSgpIGZ1bmN0aW9uLCBsZWF2aW5nIHRo aXMgcGF0Y2ggYXMgcHVyZQogICBib2lsZXJwbGF0ZS4KIC0gUmUtc3RydWN0dXJlIHRoZSBoeXBl cmNhbGwgdG8gdXNlIGEgYnVmZmVyIGFycmF5LCBzaW1pbGFyIHRvIHRoYXQgdXNlZAogICBieSBf X0hZUEVSQ0FMTF9kbV9vcCwgdG8gYWxsb3cgZm9yIGZ1dHVyZSBleHBhbnNpb24gb2Ygb3Agc3Ry dWN0dXJlCiAgIHdpdGhvdXQgYWZmZWN0aW5nIGJpbmFyeSBjb21wYXRpYmlsaXR5LgogLSBEcm9w IHVzZSBvZiBfXyBpbiBwdWJsaWMgaGVhZGVyIGd1YXJkLgotLS0KIHRvb2xzL2ZsYXNrL3BvbGlj eS9tb2R1bGVzL3hlbi5pZiAgIHwgICAxICsKIHhlbi9hcmNoL3g4Ni9NYWtlZmlsZSAgICAgICAg ICAgICAgIHwgICAxICsKIHhlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMgICAgICAgIHwgICAx ICsKIHhlbi9hcmNoL3g4Ni9oeXBlcmNhbGwuYyAgICAgICAgICAgIHwgICAxICsKIHhlbi9hcmNo L3g4Ni9pb21tdV9vcC5jICAgICAgICAgICAgIHwgMTg0ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L3B2L2h5cGVyY2FsbC5jICAgICAgICAgfCAgIDEg KwogeGVuL2luY2x1ZGUvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAgIDIgKwogeGVuL2luY2x1 ZGUvcHVibGljL2lvbW11X29wLmggICAgICAgfCAgNjQgKysrKysrKysrKysrKwogeGVuL2luY2x1 ZGUvcHVibGljL3hlbi5oICAgICAgICAgICAgfCAgIDEgKwogeGVuL2luY2x1ZGUveGVuL2h5cGVy Y2FsbC5oICAgICAgICAgfCAgMTIgKysrCiB4ZW4vaW5jbHVkZS94bGF0LmxzdCAgICAgICAgICAg ICAgICB8ICAgMiArCiB4ZW4vaW5jbHVkZS94c20vZHVtbXkuaCAgICAgICAgICAgICB8ICAgNiAr KwogeGVuL2luY2x1ZGUveHNtL3hzbS5oICAgICAgICAgICAgICAgfCAgIDYgKysKIHhlbi94c20v ZHVtbXkuYyAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHhlbi94c20vZmxhc2svaG9va3Mu YyAgICAgICAgICAgICAgIHwgICA2ICsrCiB4ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVj dG9ycyB8ICAgMiArCiAxNiBmaWxlcyBjaGFuZ2VkLCAyOTEgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHhlbi9hcmNoL3g4Ni9pb21tdV9vcC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQg eGVuL2luY2x1ZGUvcHVibGljL2lvbW11X29wLmgKCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9w b2xpY3kvbW9kdWxlcy94ZW4uaWYgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYK aW5kZXggN2FlZmQwMDYxZS4uNTE2MTYxMTQ3MSAxMDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9s aWN5L21vZHVsZXMveGVuLmlmCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5p ZgpAQCAtNjAsNiArNjAsNyBAQCBkZWZpbmUoYGNyZWF0ZV9kb21haW5fY29tbW9uJywgYAogCWFs bG93ICQxICQyOmdyYW50IHNldHVwOwogCWFsbG93ICQxICQyOmh2bSB7IGdldHBhcmFtIGh2bWN0 bCBzZXRodm1jCiAJCQlzZXRwYXJhbSBuZXN0ZWQgYWx0cDJtaHZtIGFsdHAybWh2bV9vcCBkbSB9 OworCWFsbG93ICQxICQyOnJlc291cmNlIGNvbnRyb2xfaW9tbXU7CiAnKQogCiAjIGNyZWF0ZV9k b21haW4ocHJpdiwgdGFyZ2V0KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L01ha2VmaWxlIGIv eGVuL2FyY2gveDg2L01ha2VmaWxlCmluZGV4IDE3ZTdkM2ZhMzQuLjM1YmZhZjdlOGEgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQorKysgYi94ZW4vYXJjaC94ODYvTWFrZWZpbGUK QEAgLTMzLDYgKzMzLDcgQEAgb2JqLSQoQ09ORklHX0NSQVNIX0RFQlVHKSArPSBnZGJzdHViLm8K IG9iai15ICs9IGh5cGVyY2FsbC5vCiBvYmoteSArPSBpMzg3Lm8KIG9iai15ICs9IGk4MjU5Lm8K K29iai15ICs9IGlvbW11X29wLm8KIG9iai15ICs9IGlvX2FwaWMubwogb2JqLSQoQ09ORklHX0xJ VkVQQVRDSCkgKz0gYWx0ZXJuYXRpdmUubyBsaXZlcGF0Y2gubwogb2JqLXkgKz0gbXNpLm8KZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMgYi94ZW4vYXJjaC94ODYvaHZt L2h5cGVyY2FsbC5jCmluZGV4IDg1ZWFjZDdkMzMuLjM1NzQ5NjY4MjcgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNh bGwuYwpAQCAtMTM3LDYgKzEzNyw3IEBAIHN0YXRpYyBjb25zdCBoeXBlcmNhbGxfdGFibGVfdCBo dm1faHlwZXJjYWxsX3RhYmxlW10gPSB7CiAgICAgQ09NUEFUX0NBTEwobW11ZXh0X29wKSwKICAg ICBIWVBFUkNBTEwoeGVucG11X29wKSwKICAgICBDT01QQVRfQ0FMTChkbV9vcCksCisgICAgQ09N UEFUX0NBTEwoaW9tbXVfb3ApLAogICAgIEhZUEVSQ0FMTChhcmNoXzEpCiB9OwogCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvaHlwZXJjYWxsLmMgYi94ZW4vYXJjaC94ODYvaHlwZXJjYWxsLmMK aW5kZXggOTBlODhjMWQyYy4uMDQ1NzUzZTcwMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h5 cGVyY2FsbC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9oeXBlcmNhbGwuYwpAQCAtNjgsNiArNjgsNyBA QCBjb25zdCBoeXBlcmNhbGxfYXJnc190IGh5cGVyY2FsbF9hcmdzX3RhYmxlW05SX2h5cGVyY2Fs bHNdID0KICAgICBBUkdTKHhlbnBtdV9vcCwgMiksCiAgICAgQVJHUyhkbV9vcCwgMyksCiAgICAg QVJHUyhtY2EsIDEpLAorICAgIEFSR1MoaW9tbXVfb3AsIDIpLAogICAgIEFSR1MoYXJjaF8xLCAx KSwKIH07CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pb21tdV9vcC5jIGIveGVuL2FyY2gv eDg2L2lvbW11X29wLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNzQ0 YzBmY2UyNwotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9hcmNoL3g4Ni9pb21tdV9vcC5jCkBAIC0w LDAgKzEsMTg0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB4ODYvaW9tbXVfb3AuYwor ICoKKyAqIFBhcmF2aXJ0dWFsaXNlZCBJT01NVSBmdW5jdGlvbmFsaXR5CisgKgorICogVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBDaXRyaXggU3lz dGVtcyBJbmMKKyAqLworCisjaW5jbHVkZSA8eGVuL2V2ZW50Lmg+CisjaW5jbHVkZSA8eGVuL2d1 ZXN0X2FjY2Vzcy5oPgorI2luY2x1ZGUgPHhlbi9oeXBlcmNhbGwuaD4KKworc3RhdGljIHZvaWQg aW9tbXVfb3AoeGVuX2lvbW11X29wX3QgKm9wKQoreworICAgIHN3aXRjaCAoIG9wLT5vcCApCisg ICAgeworICAgIGRlZmF1bHQ6CisgICAgICAgIG9wLT5zdGF0dXMgPSAtRU9QTk9UU1VQUDsKKyAg ICAgICAgYnJlYWs7CisgICAgfQorfQorCitpbnQgZG9fb25lX2lvbW11X29wKHhlbl9pb21tdV9v cF9idWZfdCAqYnVmKQoreworICAgIHhlbl9pb21tdV9vcF90IG9wOworICAgIGludCByYzsKKwor ICAgIGlmICggYnVmLT5zaXplIDwgc2l6ZW9mKG9wKSApCisgICAgICAgIHJldHVybiAtRUZBVUxU OworCisgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoKHZvaWQgKikmb3AsIGJ1Zi0+aCwgc2l6ZW9m KG9wKSkgKQorICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgIGlmICggb3AucGFkICkKKyAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICByYyA9IHhzbV9pb21tdV9vcChYU01fUFJJViwg Y3VycmVudC0+ZG9tYWluLCBvcC5vcCk7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiBy YzsKKworICAgIGlvbW11X29wKCZvcCk7CisKKyAgICBpZiAoIF9fY29weV9maWVsZF90b19ndWVz dChndWVzdF9oYW5kbGVfY2FzdChidWYtPmgsIHhlbl9pb21tdV9vcF90KSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmb3AsIHN0YXR1cykgKQorICAgICAgICByZXR1cm4gLUVGQVVM VDsKKworICAgIHJldHVybiAwOworfQorCitsb25nIGRvX2lvbW11X29wKHVuc2lnbmVkIGludCBu cl9idWZzLAorICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9pb21t dV9vcF9idWZfdCkgYnVmcykKK3sKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBsb25nIHJjID0g MDsKKworICAgIGZvciAoIGkgPSAwOyBpIDwgbnJfYnVmczsgaSsrICkKKyAgICB7CisgICAgICAg IHhlbl9pb21tdV9vcF9idWZfdCBidWY7CisKKyAgICAgICAgaWYgKCAoKGkgJiAweGZmKSA9PSAw eGZmKSAmJiBoeXBlcmNhbGxfcHJlZW1wdF9jaGVjaygpICkKKyAgICAgICAgeworICAgICAgICAg ICAgcmMgPSBpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAo IGNvcHlfZnJvbV9ndWVzdF9vZmZzZXQoJmJ1ZiwgYnVmcywgaSwgMSkgKQorICAgICAgICB7Cisg ICAgICAgICAgICByYyA9IC1FRkFVTFQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor CisgICAgICAgIHJjID0gZG9fb25lX2lvbW11X29wKCZidWYpOworICAgICAgICBpZiAoIHJjICkK KyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmICggcmMgPiAwICkKKyAgICB7Cisg ICAgICAgIEFTU0VSVChyYyA8IG5yX2J1ZnMpOworICAgICAgICBucl9idWZzIC09IHJjOworICAg ICAgICBndWVzdF9oYW5kbGVfYWRkX29mZnNldChidWZzLCByYyk7CisKKyAgICAgICAgcmMgPSBo eXBlcmNhbGxfY3JlYXRlX2NvbnRpbnVhdGlvbihfX0hZUEVSVklTT1JfaW9tbXVfb3AsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImloIiwgbnJfYnVmcywgYnVm cyk7CisgICAgfQorCisgICAgcmV0dXJuIHJjOworfQorCitpbnQgY29tcGF0X29uZV9pb21tdV9v cChjb21wYXRfaW9tbXVfb3BfYnVmX3QgKmJ1ZikKK3sKKyAgICBjb21wYXRfaW9tbXVfb3BfdCBj bXA7CisgICAgeGVuX2lvbW11X29wX3QgbmF0OworICAgIGludCByYzsKKworICAgIGlmICggYnVm LT5zaXplIDwgc2l6ZW9mKGNtcCkgKQorICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgIGlm ICggY29weV9mcm9tX2NvbXBhdCgodm9pZCAqKSZjbXAsIGJ1Zi0+aCwgc2l6ZW9mKGNtcCkpICkK KyAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICBpZiAoIGNtcC5wYWQgKQorICAgICAgICBy ZXR1cm4gLUVJTlZBTDsKKworICAgIHJjID0geHNtX2lvbW11X29wKFhTTV9QUklWLCBjdXJyZW50 LT5kb21haW4sIGNtcC5vcCk7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiByYzsKKwor ICAgIFhMQVRfaW9tbXVfb3AoJm5hdCwgJmNtcCk7CisKKyAgICBpb21tdV9vcCgmbmF0KTsKKwor ICAgIFhMQVRfaW9tbXVfb3AoJmNtcCwgJm5hdCk7CisKKyAgICBpZiAoIF9fY29weV9maWVsZF90 b19jb21wYXQoY29tcGF0X2hhbmRsZV9jYXN0KGJ1Zi0+aCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdF9pb21tdV9vcF90KSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNtcCwgc3RhdHVzKSApCisgICAgICAgIHJldHVy biAtRUZBVUxUOworCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBjb21wYXRfaW9tbXVfb3AodW5z aWduZWQgaW50IG5yX2J1ZnMsCisgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0oY29tcGF0X2lvbW11X29wX2J1Zl90KSBidWZzKQoreworICAgIHVuc2lnbmVkIGludCBp OworICAgIGxvbmcgcmMgPSAwOworCisgICAgZm9yICggaSA9IDA7IGkgPCBucl9idWZzOyBpKysg KQorICAgIHsKKyAgICAgICAgY29tcGF0X2lvbW11X29wX2J1Zl90IGJ1ZjsKKworICAgICAgICBp ZiAoICgoaSAmIDB4ZmYpID09IDB4ZmYpICYmIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQor ICAgICAgICB7CisgICAgICAgICAgICByYyA9IGk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgfQorCisgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0X29mZnNldCgmYnVmLCBidWZzLCBp LCAxKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJjID0gLUVGQVVMVDsKKyAgICAgICAgICAg IGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmMgPSBjb21wYXRfb25lX2lvbW11X29wKCZi dWYpOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAg IGlmICggcmMgPiAwICkKKyAgICB7CisgICAgICAgIEFTU0VSVChyYyA8IG5yX2J1ZnMpOworICAg ICAgICBucl9idWZzIC09IHJjOworICAgICAgICBndWVzdF9oYW5kbGVfYWRkX29mZnNldChidWZz LCByYyk7CisKKyAgICAgICAgcmMgPSBoeXBlcmNhbGxfY3JlYXRlX2NvbnRpbnVhdGlvbihfX0hZ UEVSVklTT1JfaW9tbXVfb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImloIiwgbnJfYnVmcywgYnVmcyk7CisgICAgfQorCisgICAgcmV0dXJuIHJjOworfQor CisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAi QlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRh YnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9o eXBlcmNhbGwuYyBiL3hlbi9hcmNoL3g4Ni9wdi9oeXBlcmNhbGwuYwppbmRleCBiYmMzMDExZDFh Li5kMjNmOWFmNDJmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvaHlwZXJjYWxsLmMKKysr IGIveGVuL2FyY2gveDg2L3B2L2h5cGVyY2FsbC5jCkBAIC04MCw2ICs4MCw3IEBAIGNvbnN0IGh5 cGVyY2FsbF90YWJsZV90IHB2X2h5cGVyY2FsbF90YWJsZVtdID0gewogICAgIEhZUEVSQ0FMTCh4 ZW5wbXVfb3ApLAogICAgIENPTVBBVF9DQUxMKGRtX29wKSwKICAgICBIWVBFUkNBTEwobWNhKSwK KyAgICBDT01QQVRfQ0FMTChpb21tdV9vcCksCiAgICAgSFlQRVJDQUxMKGFyY2hfMSksCiB9Owog CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9NYWtlZmlsZSBiL3hlbi9pbmNsdWRlL01ha2VmaWxl CmluZGV4IGRmMDQxODI5NjUuLmFmNTRkODgzM2YgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL01h a2VmaWxlCisrKyBiL3hlbi9pbmNsdWRlL01ha2VmaWxlCkBAIC0xMSw2ICsxMSw3IEBAIGhlYWRl cnMteSA6PSBcCiAgICAgY29tcGF0L2ZlYXR1cmVzLmggXAogICAgIGNvbXBhdC9ncmFudF90YWJs ZS5oIFwKICAgICBjb21wYXQva2V4ZWMuaCBcCisgICAgY29tcGF0L2lvbW11X29wLmggXAogICAg IGNvbXBhdC9tZW1vcnkuaCBcCiAgICAgY29tcGF0L25taS5oIFwKICAgICBjb21wYXQvcGh5c2Rl di5oIFwKQEAgLTI5LDYgKzMwLDcgQEAgaGVhZGVycy0kKENPTkZJR19YODYpICAgICArPSBjb21w YXQvYXJjaC14ODYveGVuLSQoY29tcGF0LWFyY2gteSkuaAogaGVhZGVycy0kKENPTkZJR19YODYp ICAgICArPSBjb21wYXQvaHZtL2RtX29wLmgKIGhlYWRlcnMtJChDT05GSUdfWDg2KSAgICAgKz0g Y29tcGF0L2h2bS9odm1fb3AuaAogaGVhZGVycy0kKENPTkZJR19YODYpICAgICArPSBjb21wYXQv aHZtL2h2bV92Y3B1LmgKK2hlYWRlcnMtJChDT05GSUdfWDg2KSAgICAgKz0gY29tcGF0L2lvbW11 X29wLmgKIGhlYWRlcnMteSAgICAgICAgICAgICAgICAgKz0gY29tcGF0L2FyY2gtJChjb21wYXQt YXJjaC15KS5oIGNvbXBhdC9wbXUuaCBjb21wYXQveGxhdC5oCiBoZWFkZXJzLSQoQ09ORklHX0ZM QVNLKSAgICs9IGNvbXBhdC94c20vZmxhc2tfb3AuaAogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9wdWJsaWMvaW9tbXVfb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pb21tdV9vcC5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmMzYjY4ZjY2NWEKLS0tIC9kZXYvbnVs bAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW9tbXVfb3AuaApAQCAtMCwwICsxLDY0IEBACisv KgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiBkZWFsIGlu IHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p dGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGllcyBvZiB0aGUg U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwor ICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlh bCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAq IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENP UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS CisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S IE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU SCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNP RlRXQVJFLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBDaXRyaXggU3lzdGVtcyBJbmMKKyAq LworCisjaWZuZGVmIFhFTl9QVUJMSUNfSU9NTVVfT1BfSAorI2RlZmluZSBYRU5fUFVCTElDX0lP TU1VX09QX0gKKworI2luY2x1ZGUgInhlbi5oIgorCitzdHJ1Y3QgeGVuX2lvbW11X29wIHsKKyAg ICB1aW50MTZfdCBvcDsgICAgLyogb3AgdHlwZSAqLworICAgIHVpbnQxNl90IHBhZDsKKyAgICBp bnQzMl90IHN0YXR1czsgLyogb3AgY29tcGxldGlvbiBzdGF0dXM6ICovCisgICAgICAgICAgICAg ICAgICAgIC8qIDAgZm9yIHN1Y2Nlc3Mgb3RoZXJ3aXNlLCBuZWdhdGl2ZSBlcnJubyAqLworfTsK K3R5cGVkZWYgc3RydWN0IHhlbl9pb21tdV9vcCB4ZW5faW9tbXVfb3BfdDsKK0RFRklORV9YRU5f R1VFU1RfSEFORExFKHhlbl9pb21tdV9vcF90KTsKKworc3RydWN0IHhlbl9pb21tdV9vcF9idWYg eworICAgIFhFTl9HVUVTVF9IQU5ETEUodm9pZCkgaDsKKyAgICB4ZW5fdWxvbmdfdCBzaXplOwor fTsKK3R5cGVkZWYgc3RydWN0IHhlbl9pb21tdV9vcF9idWYgeGVuX2lvbW11X29wX2J1Zl90Owor REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2lvbW11X29wX2J1Zl90KTsKKworLyogYCBlbnVt IG5lZ19lcnJub3ZhbAorICogYCBIWVBFUlZJU09SX2lvbW11X29wKHVuc2lnbmVkIGludCBucl9i dWZzLAorICogYCAgICAgICAgICAgICAgICAgICAgIHhlbl9pb21tdV9vcF9idWZfdCBidWZzW10p CisgKiBgCisgKgorICogQG5yX2J1ZnMgaXMgdGhlIG51bWJlciBvZiBidWZmZXJzIGluIHRoZSBA YnVmcyBhcnJheS4KKyAqIEBidWZzIHBvaW50cyB0byBhbiBhcnJheSBvZiBidWZmZXJzIHdoZXJl IGVhY2ggY29udGFpbnMgYSBzdHJ1Y3QKKyAqIHhlbl9pb21tdV9vcC4KKyAqLworCisjZW5kaWYg LyogWEVOX1BVQkxJQ19JT01NVV9PUF9IICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6Cisg KiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAor ICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oIGIveGVuL2luY2x1ZGUvcHVibGlj L3hlbi5oCmluZGV4IGZiMWRmOGYyOTMuLjY4YjA5NjhlN2QgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL3B1YmxpYy94ZW4uaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKQEAgLTEyMSw2 ICsxMjEsNyBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdWxvbmdfdCk7CiAjZGVmaW5l IF9fSFlQRVJWSVNPUl94Y19yZXNlcnZlZF9vcCAgICAgICAzOSAvKiByZXNlcnZlZCBmb3IgWGVu Q2xpZW50ICovCiAjZGVmaW5lIF9fSFlQRVJWSVNPUl94ZW5wbXVfb3AgICAgICAgICAgICA0MAog I2RlZmluZSBfX0hZUEVSVklTT1JfZG1fb3AgICAgICAgICAgICAgICAgNDEKKyNkZWZpbmUgX19I WVBFUlZJU09SX2lvbW11X29wICAgICAgICAgICAgIDQyCiAKIC8qIEFyY2hpdGVjdHVyZS1zcGVj aWZpYyBoeXBlcmNhbGwgZGVmaW5pdGlvbnMuICovCiAjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNo XzAgICAgICAgICAgICAgICA0OApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2h5cGVyY2Fs bC5oIGIveGVuL2luY2x1ZGUveGVuL2h5cGVyY2FsbC5oCmluZGV4IGNjOTlhZWE1N2QuLjJlYmM5 OTlmNGIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaAorKysgYi94ZW4v aW5jbHVkZS94ZW4vaHlwZXJjYWxsLmgKQEAgLTE2LDYgKzE2LDcgQEAKICNpbmNsdWRlIDxwdWJs aWMvdmVyc2lvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9wbXUuaD4KICNpbmNsdWRlIDxwdWJsaWMv aHZtL2RtX29wLmg+CisjaW5jbHVkZSA8cHVibGljL2lvbW11X29wLmg+CiAjaW5jbHVkZSA8YXNt L2h5cGVyY2FsbC5oPgogI2luY2x1ZGUgPHhzbS94c20uaD4KIApAQCAtMTQ4LDYgKzE0OSwxMCBA QCBkb19kbV9vcCgKICAgICB1bnNpZ25lZCBpbnQgbnJfYnVmcywKICAgICBYRU5fR1VFU1RfSEFO RExFX1BBUkFNKHhlbl9kbV9vcF9idWZfdCkgYnVmcyk7CiAKK2V4dGVybiBsb25nCitkb19pb21t dV9vcCh1bnNpZ25lZCBpbnQgbnJfYnVmcywKKyAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0oeGVuX2lvbW11X29wX2J1Zl90KSBidWZzKTsKKwogI2lmZGVmIENPTkZJR19DT01QQVQK IAogZXh0ZXJuIGludApAQCAtMjA1LDYgKzIxMCwxMyBAQCBjb21wYXRfZG1fb3AoCiAgICAgdW5z aWduZWQgaW50IG5yX2J1ZnMsCiAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBidWZz KTsKIAorI2luY2x1ZGUgPGNvbXBhdC9pb21tdV9vcC5oPgorCitERUZJTkVfWEVOX0dVRVNUX0hB TkRMRShjb21wYXRfaW9tbXVfb3BfYnVmX3QpOworZXh0ZXJuIGludAorY29tcGF0X2lvbW11X29w KHVuc2lnbmVkIGludCBucl9idWZzLAorICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0oY29tcGF0X2lvbW11X29wX2J1Zl90KSBidWZzKTsKKwogI2VuZGlmCiAKIHZvaWQgYXJj aF9nZXRfeGVuX2NhcHMoeGVuX2NhcGFiaWxpdGllc19pbmZvX3QgKmluZm8pOwpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUveGxhdC5sc3QgYi94ZW4vaW5jbHVkZS94bGF0LmxzdAppbmRleCA1Mjcz MzIwNTRhLi4zYjE1YzE4YzRlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94bGF0LmxzdAorKysg Yi94ZW4vaW5jbHVkZS94bGF0LmxzdApAQCAtNzcsNiArNzcsOCBAQAogPwl2Y3B1X2h2bV9jb250 ZXh0CQlodm0vaHZtX3ZjcHUuaAogPwl2Y3B1X2h2bV94ODZfMzIJCQlodm0vaHZtX3ZjcHUuaAog Pwl2Y3B1X2h2bV94ODZfNjQJCQlodm0vaHZtX3ZjcHUuaAorIQlpb21tdV9vcAkJCWlvbW11X29w LmgKKyEJaW9tbXVfb3BfYnVmCQkJaW9tbXVfb3AuaAogPwlrZXhlY19leGVjCQkJa2V4ZWMuaAog IQlrZXhlY19pbWFnZQkJCWtleGVjLmgKICEJa2V4ZWNfcmFuZ2UJCQlrZXhlYy5oCmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaCBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCmlu ZGV4IGZmNmIyZGJmMzkuLjg4OTFkYTA3NTkgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS9k dW1teS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCkBAIC03MTUsNiArNzE1LDEyIEBA IHN0YXRpYyBYU01fSU5MSU5FIGludCB4c21fZG1fb3AoWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBk b21haW4gKmQpCiAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQt PmRvbWFpbiwgZCk7CiB9CiAKK3N0YXRpYyBYU01fSU5MSU5FIGludCB4c21faW9tbXVfb3AoWFNN X0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBvcCkKK3sKKyAgICBY U01fQVNTRVJUX0FDVElPTihYU01fUFJJVik7CisgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlv bihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7Cit9CisKICNlbmRpZiAvKiBDT05GSUdfWDg2 ICovCiAKICNpbmNsdWRlIDxwdWJsaWMvdmVyc2lvbi5oPgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUveHNtL3hzbS5oIGIveGVuL2luY2x1ZGUveHNtL3hzbS5oCmluZGV4IGYwYzZmYzdlMjkuLmM0 N2MxNDE4ZWIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS94c20uaAorKysgYi94ZW4vaW5j bHVkZS94c20veHNtLmgKQEAgLTE3OCw2ICsxNzgsNyBAQCBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMg ewogICAgIGludCAoKmlvcG9ydF9tYXBwaW5nKSAoc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3Qg cywgdWludDMyX3QgZSwgdWludDhfdCBhbGxvdyk7CiAgICAgaW50ICgqcG11X29wKSAoc3RydWN0 IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IG9wKTsKICAgICBpbnQgKCpkbV9vcCkgKHN0cnVjdCBk b21haW4gKmQpOworICAgIGludCAoKmlvbW11X29wKSAoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWdu ZWQgaW50IG9wKTsKICNlbmRpZgogICAgIGludCAoKnhlbl92ZXJzaW9uKSAodWludDMyX3QgY21k KTsKICAgICBpbnQgKCpkb21haW5fcmVzb3VyY2VfbWFwKSAoc3RydWN0IGRvbWFpbiAqZCk7CkBA IC02ODYsNiArNjg3LDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9kbV9vcCh4c21fZGVmYXVs dF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCkKICAgICByZXR1cm4geHNtX29wcy0+ZG1fb3AoZCk7 CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IHhzbV9pb21tdV9vcCh4c21fZGVmYXVsdF90IGRlZiwg c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IG9wKQoreworICAgIHJldHVybiB4c21fb3Bz LT5pb21tdV9vcChkLCBvcCk7Cit9CisKICNlbmRpZiAvKiBDT05GSUdfWDg2ICovCiAKIHN0YXRp YyBpbmxpbmUgaW50IHhzbV94ZW5fdmVyc2lvbiAoeHNtX2RlZmF1bHRfdCBkZWYsIHVpbnQzMl90 IG9wKQpkaWZmIC0tZ2l0IGEveGVuL3hzbS9kdW1teS5jIGIveGVuL3hzbS9kdW1teS5jCmluZGV4 IDZlNzUxMTk5ZWUuLjAyNTEyYTE1NjYgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZHVtbXkuYworKysg Yi94ZW4veHNtL2R1bW15LmMKQEAgLTE1NSw2ICsxNTUsNyBAQCB2b2lkIF9faW5pdCB4c21fZml4 dXBfb3BzIChzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgKm9wcykKICAgICBzZXRfdG9fZHVtbXlfaWZf bnVsbChvcHMsIGlvcG9ydF9tYXBwaW5nKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMs IHBtdV9vcCk7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBkbV9vcCk7CisgICAgc2V0 X3RvX2R1bW15X2lmX251bGwob3BzLCBpb21tdV9vcCk7CiAjZW5kaWYKICAgICBzZXRfdG9fZHVt bXlfaWZfbnVsbChvcHMsIHhlbl92ZXJzaW9uKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChv cHMsIGRvbWFpbl9yZXNvdXJjZV9tYXApOwpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9ob29r cy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCmluZGV4IDc4YmMzMjYwMmUuLmEwNDc4NjEwNmYg MTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysgYi94ZW4veHNtL2ZsYXNrL2hv b2tzLmMKQEAgLTE2NzIsNiArMTY3MiwxMSBAQCBzdGF0aWMgaW50IGZsYXNrX2RtX29wKHN0cnVj dCBkb21haW4gKmQpCiAgICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfSFZN LCBIVk1fX0RNKTsKIH0KIAorc3RhdGljIGludCBmbGFza19pb21tdV9vcChzdHJ1Y3QgZG9tYWlu ICpkKQoreworICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX1JFU09VUkNF LCBSRVNPVVJDRV9fQ09OVFJPTF9JT01NVSk7Cit9CisKICNlbmRpZiAvKiBDT05GSUdfWDg2ICov CiAKIHN0YXRpYyBpbnQgZmxhc2tfeGVuX3ZlcnNpb24gKHVpbnQzMl90IG9wKQpAQCAtMTg1MCw2 ICsxODU1LDcgQEAgc3RhdGljIHN0cnVjdCB4c21fb3BlcmF0aW9ucyBmbGFza19vcHMgPSB7CiAg ICAgLmlvcG9ydF9tYXBwaW5nID0gZmxhc2tfaW9wb3J0X21hcHBpbmcsCiAgICAgLnBtdV9vcCA9 IGZsYXNrX3BtdV9vcCwKICAgICAuZG1fb3AgPSBmbGFza19kbV9vcCwKKyAgICAuaW9tbXVfb3Ag PSBmbGFza19pb21tdV9vcCwKICNlbmRpZgogICAgIC54ZW5fdmVyc2lvbiA9IGZsYXNrX3hlbl92 ZXJzaW9uLAogICAgIC5kb21haW5fcmVzb3VyY2VfbWFwID0gZmxhc2tfZG9tYWluX3Jlc291cmNl X21hcCwKZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIGIv eGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKaW5kZXggYzVkODU0ODZkMC4uMGM4 OTRiNzMzZSAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMK KysrIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKQEAgLTQ3Myw2ICs0NzMs OCBAQCBjbGFzcyByZXNvdXJjZQogIyBjaGVja2VkIGZvciBQSFlTREVWT1Bfc2V0dXBfZ3NpICh0 YXJnZXQgSVJRKQogIyBjaGVja2VkIGZvciBQSFlTREVWT1BfcGNpX21tY2ZnX3Jlc2VydmVkICh0 YXJnZXQgeGVuX3QpCiAgICAgc2V0dXAKKyMgY2hlY2tlZCBmb3IgSU9NTVVfT1AKKyAgICBjb250 cm9sX2lvbW11CiB9CiAKICMgQ2xhc3Mgc2VjdXJpdHkgZGVzY3JpYmVzIHRoZSBGTEFTSyBzZWN1 cml0eSBzZXJ2ZXIgaXRzZWxmOyB0aGVzZSBvcGVyYXRpb25zCi0tIAoyLjExLjAKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs