From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH 2/7] iommu: make use of type-safe BFN and MFN in exported functions Date: Mon, 12 Feb 2018 10:47:09 +0000 Message-ID: <20180212104714.1922-3-paul.durrant@citrix.com> References: <20180212104714.1922-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1elBeM-0003ji-1z for xen-devel@lists.xenproject.org; Mon, 12 Feb 2018 10:47:54 +0000 In-Reply-To: <20180212104714.1922-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: Kevin Tian , Stefano Stabellini , Wei Liu , Jun Nakajima , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIGVudHJ5IHBvaW50cyB0 byB0aGUgSU9NTVUKc3ViLXN5c3RlbSB0byB1c2UgYmZuX3QgYW5kIG1mbl90IGluIHBsYWNlIG9m IHVuc2lnbmVkIGxvbmcuIEEgc3Vic2VxdWVudApwYXRjaCB3aWxsIHNpbWlsYXJseSBtb2RpZnkg dGhlIG1ldGhvZHMgaW4gdGhlIGlvbW11X29wcyBzdHJ1Y3R1cmUuCgpOT1RFOiBTaW5jZSAod2l0 aCB0aGlzIHBhdGNoIGFwcGxpZWQpIGJmbl90IGlzIG5vdyBpbiB1c2UsIHRoZSBwYXRjaCBhbHNv CiAgICAgIGludHJvZHVjZXMgdGhlICdjc2NvcGUvZ3JlcCBmb2RkZXInIHRvIGFsbG93IHRoZSB0 eXBlIGRlY2xhcmF0aW9uIHRvCiAgICAgIGJlIGVhc2lseSBmb3VuZC4KClNpZ25lZC1vZmYtYnk6 IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQpDYzogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA Y2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNv bT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogS29ucmFk IFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogU3RlZmFubyBTdGFi ZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4u Z3JhbGxAYXJtLmNvbT4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDYzogV2VpIExpdSA8 d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IEp1biBOYWthamltYSA8anVuLm5ha2FqaW1hQGludGVs LmNvbT4KQ2M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpDYzogR2VvcmdlIER1 bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL2FybS9wMm0u YyAgICAgICAgICAgICAgICAgICAgfCAgMyArKy0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAg ICAgICAgICAgICAgfCAgNyArKystLS0tCiB4ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jICAgICAg ICAgICAgIHwgIDggKysrKystLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyAgICAgICAgICAg ICAgfCAgOCArKysrLS0tLQogeGVuL2FyY2gveDg2L21tL3AybS5jICAgICAgICAgICAgICAgICB8 IDE1ICsrKysrKysrKy0tLS0tLQogeGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jICAgICAgICAgICAg ICB8ICA1ICsrKy0tCiB4ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgICAgICAgICAgICAgIHwgMTAg KysrKysrLS0tLQogeGVuL2NvbW1vbi9tZW1vcnkuYyAgICAgICAgICAgICAgICAgICB8ICA0ICsr LS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgICAgICAgfCAyNSArKysrKysrKysr KystLS0tLS0tLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jIHwg IDMgKystCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAgICAgICAgICAgIHwgMjMgKysrKysr KysrKysrKysrKysrKy0tLS0KIDExIGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDQ0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wMm0uYyBiL3hlbi9hcmNo L2FybS9wMm0uYwppbmRleCA2NWU4YjljNmVhLi4yNWU5YWY2YjA1IDEwMDY0NAotLS0gYS94ZW4v YXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5jCkBAIC05NTcsNyArOTU3LDgg QEAgc3RhdGljIGludCBfX3AybV9zZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwKIAog ICAgIGlmICggbmVlZF9pb21tdShwMm0tPmRvbWFpbikgJiYKICAgICAgICAgIChscGFlX3ZhbGlk KG9yaWdfcHRlKSB8fCBscGFlX3ZhbGlkKCplbnRyeSkpICkKLSAgICAgICAgcmMgPSBpb21tdV9p b3RsYl9mbHVzaChwMm0tPmRvbWFpbiwgZ2ZuX3goc2dmbiksIDFVTCA8PCBwYWdlX29yZGVyKTsK KyAgICAgICAgcmMgPSBpb21tdV9pb3RsYl9mbHVzaChwMm0tPmRvbWFpbiwgX2JmbihnZm5feChz Z2ZuKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMVVMIDw8IHBhZ2Vfb3JkZXIp OwogICAgIGVsc2UKICAgICAgICAgcmMgPSAwOwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv bW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IDM1ZjIwNDM2OWIuLjY5Y2U1NzkxNGIgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0y Njc2LDEzICsyNjc2LDEyIEBAIHN0YXRpYyBpbnQgX2dldF9wYWdlX3R5cGUoc3RydWN0IHBhZ2Vf aW5mbyAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLAogICAgICAgICBzdHJ1Y3QgZG9tYWluICpk ID0gcGFnZV9nZXRfb3duZXIocGFnZSk7CiAgICAgICAgIGlmICggZCAmJiBpc19wdl9kb21haW4o ZCkgJiYgdW5saWtlbHkobmVlZF9pb21tdShkKSkgKQogICAgICAgICB7Ci0gICAgICAgICAgICBn Zm5fdCBnZm4gPSBfZ2ZuKG1mbl90b19nbWZuKGQsIG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKSkp OworICAgICAgICAgICAgYmZuX3QgYmZuID0gX2JmbihtZm5fdG9fZ21mbihkLCBtZm5feChwYWdl X3RvX21mbihwYWdlKSkpKTsKIAogICAgICAgICAgICAgaWYgKCAoeCAmIFBHVF90eXBlX21hc2sp ID09IFBHVF93cml0YWJsZV9wYWdlICkKLSAgICAgICAgICAgICAgICBpb21tdV9yZXQgPSBpb21t dV91bm1hcF9wYWdlKGQsIGdmbl94KGdmbikpOworICAgICAgICAgICAgICAgIGlvbW11X3JldCA9 IGlvbW11X3VubWFwX3BhZ2UoZCwgYmZuKTsKICAgICAgICAgICAgIGVsc2UgaWYgKCB0eXBlID09 IFBHVF93cml0YWJsZV9wYWdlICkKLSAgICAgICAgICAgICAgICBpb21tdV9yZXQgPSBpb21tdV9t YXBfcGFnZShkLCBnZm5feChnZm4pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKSwKKyAgICAgICAgICAgICAgICBpb21t dV9yZXQgPSBpb21tdV9tYXBfcGFnZShkLCBiZm4sIHBhZ2VfdG9fbWZuKHBhZ2UpLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01N VUZfd3JpdGFibGUpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L21tL3AybS1lcHQuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKaW5kZXggNjZkYmIzZTgz YS4uZTFlYmQyNWU1NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYworKysg Yi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCkBAIC04NzMsMTIgKzg3MywxNCBAQCBvdXQ6CiAg ICAgICAgICAgICBpZiAoIGlvbW11X2ZsYWdzICkKICAgICAgICAgICAgICAgICBmb3IgKCBpID0g MDsgaSA8ICgxIDw8IG9yZGVyKTsgaSsrICkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgZ2ZuICsgaSwgbWZuX3gobWZuKSArIGks IGlvbW11X2ZsYWdzKTsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSBpb21tdV9tYXBfcGFnZShk LCBfYmZuKGdmbiArIGkpLCBtZm5fYWRkKG1mbiwgaSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW9tbXVfZmxhZ3MpOwogICAgICAgICAgICAgICAgICAgICBpZiAo IHVubGlrZWx5KHJjKSApCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgIHdoaWxlICggaS0tICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiBz dGF0ZW1lbnQgdG8gc2F0aXNmeSBfX211c3RfY2hlY2suICovCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9tYWluLCBnZm4gKyBpKSApCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKHAybS0+ZG9t YWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf YmZuKGdmbiArIGkpKSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl OwogCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTg4Nyw3ICs4ODksNyBAQCBv dXQ6CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAo MSA8PCBvcmRlcik7IGkrKyApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg ICByZXQgPSBpb21tdV91bm1hcF9wYWdlKGQsIGdmbiArIGkpOworICAgICAgICAgICAgICAgICAg ICByZXQgPSBpb21tdV91bm1hcF9wYWdlKGQsIF9iZm4oZ2ZuICsgaSkpOwogICAgICAgICAgICAg ICAgICAgICBpZiAoICFyYyApCiAgICAgICAgICAgICAgICAgICAgICAgICByYyA9IHJldDsKICAg ICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgYi94 ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKaW5kZXggYWQ2ZjllZjEwZC4uMGU2MzkyYTk1OSAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9w Mm0tcHQuYwpAQCAtNjk2LDEzICs2OTYsMTMgQEAgcDJtX3B0X3NldF9lbnRyeShzdHJ1Y3QgcDJt X2RvbWFpbiAqcDJtLCBnZm5fdCBnZm5fLCBtZm5fdCBtZm4sCiAgICAgICAgIGVsc2UgaWYgKCBp b21tdV9wdGVfZmxhZ3MgKQogICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMVVMIDw8IHBh Z2Vfb3JkZXIpOyBpKysgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJjID0gaW9t bXVfbWFwX3BhZ2UocDJtLT5kb21haW4sIGdmbiArIGksIG1mbl94KG1mbikgKyBpLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9tbXVfcHRlX2ZsYWdzKTsKKyAgICAgICAg ICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKHAybS0+ZG9tYWluLCBfYmZuKGdmbiArIGkpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX2FkZChtZm4sIGkpLCBpb21t dV9wdGVfZmxhZ3MpOwogICAgICAgICAgICAgICAgIGlmICggdW5saWtlbHkocmMpICkKICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHdoaWxlICggaS0tICkKICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIElmIHN0YXRlbWVudCB0byBzYXRpc2Z5IF9fbXVzdF9jaGVjay4g Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRv bWFpbiwgZ2ZuICsgaSkgKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1h cF9wYWdlKHAybS0+ZG9tYWluLCBfYmZuKGdmbiArIGkpKSApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC03MTEs NyArNzExLDcgQEAgcDJtX3B0X3NldF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBnZm5f dCBnZm5fLCBtZm5fdCBtZm4sCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGZvciAoIGkgPSAw OyBpIDwgKDFVTCA8PCBwYWdlX29yZGVyKTsgaSsrICkKICAgICAgICAgICAgIHsKLSAgICAgICAg ICAgICAgICBpbnQgcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSk7 CisgICAgICAgICAgICAgICAgaW50IHJldCA9IGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4s IF9iZm4oZ2ZuICsgaSkpOwogCiAgICAgICAgICAgICAgICAgaWYgKCAhcmMgKQogICAgICAgICAg ICAgICAgICAgICByYyA9IHJldDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBi L3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRleCBkY2NkMTQyNWI0Li4xMTU5NTZiY2VjIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5j CkBAIC03MjIsNyArNzIyLDcgQEAgcDJtX3JlbW92ZV9wYWdlKHN0cnVjdCBwMm1fZG9tYWluICpw Mm0sIHVuc2lnbmVkIGxvbmcgZ2ZuX2wsIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgICAgICB7CiAg ICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQogICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCByZXQgPSBpb21tdV91bm1hcF9wYWdlKHAy bS0+ZG9tYWluLCBtZm4gKyBpKTsKKyAgICAgICAgICAgICAgICBpbnQgcmV0ID0gaW9tbXVfdW5t YXBfcGFnZShwMm0tPmRvbWFpbiwgX2JmbihtZm4gKyBpKSk7CiAKICAgICAgICAgICAgICAgICBp ZiAoICFyYyApCiAgICAgICAgICAgICAgICAgICAgIHJjID0gcmV0OwpAQCAtNzgxLDE0ICs3ODEs MTQgQEAgZ3Vlc3RfcGh5c21hcF9hZGRfZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2Zu LCBtZm5fdCBtZm4sCiAgICAgICAgIHsKICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEg PDwgcGFnZV9vcmRlcik7IGkrKyApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmMg PSBpb21tdV9tYXBfcGFnZShkLCBtZm5feChtZm5fYWRkKG1mbiwgaSkpLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3gobWZuX2FkZChtZm4sIGkpKSwKKyAgICAgICAg ICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKGQsIF9iZm4obWZuX3gobWZuKSArIGkpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX2FkZChtZm4sIGkpLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0 YWJsZSk7CiAgICAgICAgICAgICAgICAgaWYgKCByYyAhPSAwICkKICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgIHdoaWxlICggaS0tID4gMCApCiAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0aXNmeSBfX211c3RfY2hlY2suICovCi0gICAg ICAgICAgICAgICAgICAgICAgICBpZiAoIGlvbW11X3VubWFwX3BhZ2UoZCwgbWZuX3gobWZuX2Fk ZChtZm4sIGkpKSkgKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9w YWdlKGQsIF9iZm4obWZuX3gobWZuKSArIGkpKSApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29udGludWU7CiAKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJjOwpAQCAtMTE2NCw3 ICsxMTY0LDkgQEAgaW50IHNldF9pZGVudGl0eV9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgbG9uZyBnZm5fbCwKICAgICB7CiAgICAgICAgIGlmICggIW5lZWRfaW9tbXUoZCkg KQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHJldHVybiBpb21tdV9tYXBfcGFnZShk LCBnZm5fbCwgZ2ZuX2wsIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOworCisgICAg ICAgIHJldHVybiBpb21tdV9tYXBfcGFnZShkLCBfYmZuKGdmbl9sKSwgX21mbihnZm5fbCksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRh YmxlKTsKICAgICB9CiAKICAgICBnZm5fbG9jayhwMm0sIGdmbiwgMCk7CkBAIC0xMjU0LDcgKzEy NTYsOCBAQCBpbnQgY2xlYXJfaWRlbnRpdHlfcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZ2ZuX2wpCiAgICAgewogICAgICAgICBpZiAoICFuZWVkX2lvbW11KGQpICkK ICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gaW9tbXVfdW5tYXBfcGFnZShk LCBnZm5fbCk7CisKKyAgICAgICAgcmV0dXJuIGlvbW11X3VubWFwX3BhZ2UoZCwgX2JmbihnZm5f bCkpOwogICAgIH0KIAogICAgIGdmbl9sb2NrKHAybSwgZ2ZuLCAwKTsKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni94ODZfNjQvbW0uYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwppbmRleCA5 YjM3ZGE2Njk4Li41YWYzMTY0YjhkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L21t LmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCkBAIC0xNDI4LDEzICsxNDI4LDE0IEBA IGludCBtZW1vcnlfYWRkKHVuc2lnbmVkIGxvbmcgc3BmbiwgdW5zaWduZWQgbG9uZyBlcGZuLCB1 bnNpZ25lZCBpbnQgcHhtKQogICAgIGlmICggaW9tbXVfZW5hYmxlZCAmJiAhaW9tbXVfcGFzc3Ro cm91Z2ggJiYgIW5lZWRfaW9tbXUoaGFyZHdhcmVfZG9tYWluKSApCiAgICAgewogICAgICAgICBm b3IgKCBpID0gc3BmbjsgaSA8IGVwZm47IGkrKyApCi0gICAgICAgICAgICBpZiAoIGlvbW11X21h cF9wYWdlKGhhcmR3YXJlX2RvbWFpbiwgaSwgaSwgSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0 YWJsZSkgKQorICAgICAgICAgICAgaWYgKCBpb21tdV9tYXBfcGFnZShoYXJkd2FyZV9kb21haW4s IF9iZm4oaSksIF9tZm4oaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1V Rl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpICkKICAgICAgICAgICAgICAgICBicmVhazsKICAg ICAgICAgaWYgKCBpICE9IGVwZm4gKQogICAgICAgICB7CiAgICAgICAgICAgICB3aGlsZSAoaS0t ID4gb2xkX21heCkKICAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0aXNmeSBf X211c3RfY2hlY2suICovCi0gICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKGhh cmR3YXJlX2RvbWFpbiwgaSkgKQorICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFn ZShoYXJkd2FyZV9kb21haW4sIF9iZm4oaSkpICkKICAgICAgICAgICAgICAgICAgICAgY29udGlu dWU7CiAKICAgICAgICAgICAgIGdvdG8gZGVzdHJveV9tMnA7CmRpZmYgLS1naXQgYS94ZW4vY29t bW9uL2dyYW50X3RhYmxlLmMgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKaW5kZXggNDhjNTQ3 OTMwYy4uOTdkYzM3MWY0YiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCisr KyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwpAQCAtMTEwOCwxMyArMTEwOCwxNCBAQCBtYXBf Z3JhbnRfcmVmKAogICAgICAgICAgICAgICEob2xkX3BpbiAmIChHTlRQSU5faHN0d19tYXNrfEdO VFBJTl9kZXZ3X21hc2spKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggIShraW5kICYg TUFQS0lORF9XUklURSkgKQotICAgICAgICAgICAgICAgIGVyciA9IGlvbW11X21hcF9wYWdlKGxk LCBmcmFtZSwgZnJhbWUsCisgICAgICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQs IF9iZm4oZnJhbWUpLCBfbWZuKGZyYW1lKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKICAgICAgICAgfQogICAg ICAgICBlbHNlIGlmICggYWN0X3BpbiAmJiAhb2xkX3BpbiApCiAgICAgICAgIHsKICAgICAgICAg ICAgIGlmICggIWtpbmQgKQotICAgICAgICAgICAgICAgIGVyciA9IGlvbW11X21hcF9wYWdlKGxk LCBmcmFtZSwgZnJhbWUsIElPTU1VRl9yZWFkYWJsZSk7CisgICAgICAgICAgICAgICAgZXJyID0g aW9tbXVfbWFwX3BhZ2UobGQsIF9iZm4oZnJhbWUpLCBfbWZuKGZyYW1lKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUpOwogICAgICAgICB9CiAg ICAgICAgIGlmICggZXJyICkKICAgICAgICAgewpAQCAtMTM3Niw5ICsxMzc3LDEwIEBAIHVubWFw X2NvbW1vbigKIAogICAgICAgICBraW5kID0gbWFwa2luZChsZ3QsIHJkLCBvcC0+ZnJhbWUpOwog ICAgICAgICBpZiAoICFraW5kICkKLSAgICAgICAgICAgIGVyciA9IGlvbW11X3VubWFwX3BhZ2Uo bGQsIG9wLT5mcmFtZSk7CisgICAgICAgICAgICBlcnIgPSBpb21tdV91bm1hcF9wYWdlKGxkLCBf YmZuKG9wLT5mcmFtZSkpOwogICAgICAgICBlbHNlIGlmICggIShraW5kICYgTUFQS0lORF9XUklU RSkgKQotICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQsIG9wLT5mcmFtZSwgb3At PmZyYW1lLCBJT01NVUZfcmVhZGFibGUpOworICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3Bh Z2UobGQsIF9iZm4ob3AtPmZyYW1lKSwgX21mbihvcC0+ZnJhbWUpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlKTsKIAogICAgICAgICBkb3VibGVfZ3Rf dW5sb2NrKGxndCwgcmd0KTsKIApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hl bi9jb21tb24vbWVtb3J5LmMKaW5kZXggNTlkMjNhMmE5OC4uNWY5MTUyYTgxNyAxMDA2NDQKLS0t IGEveGVuL2NvbW1vbi9tZW1vcnkuYworKysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBAIC04MjMs MTEgKzgyMywxMSBAQCBpbnQgeGVubWVtX2FkZF90b19waHlzbWFwKHN0cnVjdCBkb21haW4gKmQs IHN0cnVjdCB4ZW5fYWRkX3RvX3BoeXNtYXAgKnhhdHAsCiAKICAgICAgICAgdGhpc19jcHUoaW9t bXVfZG9udF9mbHVzaF9pb3RsYikgPSAwOwogCi0gICAgICAgIHJldCA9IGlvbW11X2lvdGxiX2Zs dXNoKGQsIHhhdHAtPmlkeCAtIGRvbmUsIGRvbmUpOworICAgICAgICByZXQgPSBpb21tdV9pb3Rs Yl9mbHVzaChkLCBfYmZuKHhhdHAtPmlkeCAtIGRvbmUpLCBkb25lKTsKICAgICAgICAgaWYgKCB1 bmxpa2VseShyZXQpICYmIHJjID49IDAgKQogICAgICAgICAgICAgcmMgPSByZXQ7CiAKLSAgICAg ICAgcmV0ID0gaW9tbXVfaW90bGJfZmx1c2goZCwgeGF0cC0+Z3BmbiAtIGRvbmUsIGRvbmUpOwor ICAgICAgICByZXQgPSBpb21tdV9pb3RsYl9mbHVzaChkLCBfYmZuKHhhdHAtPmdwZm4gLSBkb25l KSwgZG9uZSk7CiAgICAgICAgIGlmICggdW5saWtlbHkocmV0KSAmJiByYyA+PSAwICkKICAgICAg ICAgICAgIHJjID0gcmV0OwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IGRmN2My MmYzOWMuLmIyNWQ5ZTM3MDcgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lv bW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAtMjU1LDcgKzI1 NSw3IEBAIHZvaWQgaW9tbXVfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkKICAgICBh cmNoX2lvbW11X2RvbWFpbl9kZXN0cm95KGQpOwogfQogCi1pbnQgaW9tbXVfbWFwX3BhZ2Uoc3Ry dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBiZm4sIHVuc2lnbmVkIGxvbmcgbWZuLAoraW50 IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbiwgbWZuX3QgbWZuLAog ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncykKIHsKICAgICBjb25zdCBzdHJ1 Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKQEAgLTI2NCwxMyArMjY0LDEzIEBA IGludCBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwg dW5zaWduZWQgbG9uZyBtZm4sCiAgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRm b3JtX29wcyApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmMgPSBoZC0+cGxhdGZvcm1fb3Bz LT5tYXBfcGFnZShkLCBiZm4sIG1mbiwgZmxhZ3MpOworICAgIHJjID0gaGQtPnBsYXRmb3JtX29w cy0+bWFwX3BhZ2UoZCwgYmZuX3goYmZuKSwgbWZuX3gobWZuKSwgZmxhZ3MpOwogICAgIGlmICgg dW5saWtlbHkocmMpICkKICAgICB7CiAgICAgICAgIGlmICggIWQtPmlzX3NodXR0aW5nX2Rvd24g JiYgcHJpbnRrX3JhdGVsaW1pdCgpICkKICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCi0g ICAgICAgICAgICAgICAgICAgImQlZDogSU9NTVUgbWFwcGluZyBiZm4gJSNseCB0byBtZm4gJSNs eCBmYWlsZWQ6ICVkXG4iLAotICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgYmZuLCBt Zm4sIHJjKTsKKyAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSBtYXBwaW5nIGJmbiAlIlBS SV9iZm4iIHRvIG1mbiAlIlBSSV9tZm4iIGZhaWxlZDogJWRcbiIsCisgICAgICAgICAgICAgICAg ICAgZC0+ZG9tYWluX2lkLCBiZm5feChiZm4pLCBtZm5feChtZm4pLCByYyk7CiAKICAgICAgICAg aWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChk KTsKQEAgLTI3OSw3ICsyNzksNyBAQCBpbnQgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAq ZCwgdW5zaWduZWQgbG9uZyBiZm4sIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgIHJldHVybiByYzsK IH0KIAotaW50IGlvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBiZm4pCitpbnQgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBiZm5fdCBiZm4p CiB7CiAgICAgY29uc3Qgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CiAg ICAgaW50IHJjOwpAQCAtMjg3LDEzICsyODcsMTMgQEAgaW50IGlvbW11X3VubWFwX3BhZ2Uoc3Ry dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBiZm4pCiAgICAgaWYgKCAhaW9tbXVfZW5hYmxl ZCB8fCAhaGQtPnBsYXRmb3JtX29wcyApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmMgPSBo ZC0+cGxhdGZvcm1fb3BzLT51bm1hcF9wYWdlKGQsIGJmbik7CisgICAgcmMgPSBoZC0+cGxhdGZv cm1fb3BzLT51bm1hcF9wYWdlKGQsIGJmbl94KGJmbikpOwogICAgIGlmICggdW5saWtlbHkocmMp ICkKICAgICB7CiAgICAgICAgIGlmICggIWQtPmlzX3NodXR0aW5nX2Rvd24gJiYgcHJpbnRrX3Jh dGVsaW1pdCgpICkKICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCi0gICAgICAgICAgICAg ICAgICAgImQlZDogSU9NTVUgdW5tYXBwaW5nIGJmbiAlI2x4IGZhaWxlZDogJWRcbiIsCi0gICAg ICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBiZm4sIHJjKTsKKyAgICAgICAgICAgICAgICAg ICAiZCVkOiBJT01NVSB1bm1hcHBpbmcgYmZuICUiUFJJX2JmbiIgZmFpbGVkOiAlZFxuIiwKKyAg ICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGJmbl94KGJmbiksIHJjKTsKIAogICAgICAg ICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQogICAgICAgICAgICAgZG9tYWluX2NyYXNo KGQpOwpAQCAtMzE5LDggKzMxOSw3IEBAIHN0YXRpYyB2b2lkIGlvbW11X2ZyZWVfcGFnZXRhYmxl cyh1bnNpZ25lZCBsb25nIHVudXNlZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVt YXNrX2N5Y2xlKHNtcF9wcm9jZXNzb3JfaWQoKSwgJmNwdV9vbmxpbmVfbWFwKSk7CiB9CiAKLWlu dCBpb21tdV9pb3RsYl9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwK LSAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9jb3VudCkKK2ludCBpb21t dV9pb3RsYl9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCBiZm5fdCBiZm4sIHVuc2lnbmVkIGludCBw YWdlX2NvdW50KQogewogICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lv bW11KGQpOwogICAgIGludCByYzsKQEAgLTMyOCwxMyArMzI3LDEzIEBAIGludCBpb21tdV9pb3Rs Yl9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGJmbiwKICAgICBpZiAoICFp b21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzIHx8ICFoZC0+cGxhdGZvcm1fb3BzLT5p b3RsYl9mbHVzaCApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmMgPSBoZC0+cGxhdGZvcm1f b3BzLT5pb3RsYl9mbHVzaChkLCBiZm4sIHBhZ2VfY291bnQpOworICAgIHJjID0gaGQtPnBsYXRm b3JtX29wcy0+aW90bGJfZmx1c2goZCwgYmZuX3goYmZuKSwgcGFnZV9jb3VudCk7CiAgICAgaWYg KCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93 biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIK LSAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSBJT1RMQiBmbHVzaCBmYWlsZWQ6ICVkLCBi Zm4gJSNseCwgcGFnZSBjb3VudCAldVxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5f aWQsIHJjLCBiZm4sIHBhZ2VfY291bnQpOworICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1V IElPVExCIGZsdXNoIGZhaWxlZDogJWQsIGJmbiAlIlBSSV9iZm4iLCBwYWdlIGNvdW50ICV1XG4i LAorICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmMsIGJmbl94KGJmbiksIHBhZ2Vf Y291bnQpOwogCiAgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCiAgICAgICAg ICAgICBkb21haW5fY3Jhc2goZCk7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQveDg2L3Z0ZC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYwpp bmRleCA4OGE2MGIzMzA3Li4xNmY5MDBmNDUxIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQveDg2L3Z0ZC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94 ODYvdnRkLmMKQEAgLTE0Myw3ICsxNDMsOCBAQCB2b2lkIF9faHdkb21faW5pdCB2dGRfc2V0X2h3 ZG9tX21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgdG1wID0gMSA8PCAoUEFHRV9T SElGVCAtIFBBR0VfU0hJRlRfNEspOwogICAgICAgICBmb3IgKCBqID0gMDsgaiA8IHRtcDsgaisr ICkKICAgICAgICAgewotICAgICAgICAgICAgaW50IHJldCA9IGlvbW11X21hcF9wYWdlKGQsIHBm biAqIHRtcCArIGosIHBmbiAqIHRtcCArIGosCisgICAgICAgICAgICBpbnQgcmV0ID0gaW9tbXVf bWFwX3BhZ2UoZCwgX2JmbihwZm4gKiB0bXAgKyBqKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBfbWZuKHBmbiAqIHRtcCArIGopLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOwogCiAgICAg ICAgICAgICBpZiAoICFyYyApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCBi L3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCmluZGV4IGRlMWM1ODFjZGQuLjNkMTk5MTgzMDEgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9p b21tdS5oCkBAIC0yNCwxNCArMjQsMjkgQEAKICNpbmNsdWRlIDx4ZW4vc3BpbmxvY2suaD4KICNp bmNsdWRlIDx4ZW4vcGNpLmg+CiAjaW5jbHVkZSA8eGVuL3R5cGVzYWZlLmg+CisjaW5jbHVkZSA8 eGVuL21tLmg+CiAjaW5jbHVkZSA8cHVibGljL2h2bS9pb3JlcS5oPgogI2luY2x1ZGUgPHB1Ymxp Yy9kb21jdGwuaD4KICNpbmNsdWRlIDxhc20vZGV2aWNlLmg+CiAjaW5jbHVkZSA8YXNtL2lvbW11 Lmg+CiAKIFRZUEVfU0FGRSh1bnNpZ25lZCBsb25nLCBiZm4pOworI2RlZmluZSBQUklfYmZuICAg ICAgICAgICIwNWx4IgogI2RlZmluZSBJTlZBTElEX0JGTiAgICAgIF9iZm4ofjBVTCkKIAorLyoK KyAqIFRoZSBkZWZpbml0aW9ucyBiZWxvdyBhcmUgcHVyZWx5IGZvciB0aGUgYmVuZWZpdCBvZiBn cmVwL2NzY29wZS4gVGhlCisgKiByZWFsIGRlZmluaXRpb25zIGNvbWUgZnJvbSB0aGUgVFlQRV9T QUZFIG1hY3JvIGFib3ZlLgorICovCisjaWZuZGVmIGJmbl90CisjZGVmaW5lIGJmbl90CisjZGVm aW5lIF9iZm4KKyNkZWZpbmUgYmZuX3gKKyN1bmRlZiBiZm5fdAorI3VuZGVmIF9iZm4KKyN1bmRl ZiBiZm5feAorI2VuZGlmCisKIGV4dGVybiBib29sX3QgaW9tbXVfZW5hYmxlLCBpb21tdV9lbmFi bGVkOwogZXh0ZXJuIGJvb2xfdCBmb3JjZV9pb21tdSwgaW9tbXVfdmVyYm9zZTsKIGV4dGVybiBi b29sX3QgaW9tbXVfd29ya2Fyb3VuZF9iaW9zX2J1ZywgaW9tbXVfaWdmeCwgaW9tbXVfcGFzc3Ro cm91Z2g7CkBAIC02NCw5ICs3OSw5IEBAIHZvaWQgaW9tbXVfdGVhcmRvd24oc3RydWN0IGRvbWFp biAqZCk7CiAjZGVmaW5lIElPTU1VRl9yZWFkYWJsZSAgKDF1PDxfSU9NTVVGX3JlYWRhYmxlKQog I2RlZmluZSBfSU9NTVVGX3dyaXRhYmxlIDEKICNkZWZpbmUgSU9NTVVGX3dyaXRhYmxlICAoMXU8 PF9JT01NVUZfd3JpdGFibGUpCi1pbnQgX19tdXN0X2NoZWNrIGlvbW11X21hcF9wYWdlKHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgYmZuLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQgaW50IGZsYWdzKTsKLWludCBfX211 c3RfY2hlY2sgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGJmbik7CitpbnQgX19tdXN0X2NoZWNrIGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQs IGJmbl90IGJmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3QgbWZuLCB1 bnNpZ25lZCBpbnQgZmxhZ3MpOworaW50IF9fbXVzdF9jaGVjayBpb21tdV91bm1hcF9wYWdlKHN0 cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbik7CiAKIGVudW0gaW9tbXVfZmVhdHVyZQogewpAQCAt MTkxLDcgKzIwNiw3IEBAIGludCBpb21tdV9kb19wY2lfZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3Rs ICosIHN0cnVjdCBkb21haW4gKmQsCiBpbnQgaW9tbXVfZG9fZG9tY3RsKHN0cnVjdCB4ZW5fZG9t Y3RsICosIHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSk7CiAKLWludCBfX211c3RfY2hlY2sgaW9tbXVfaW90 bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBiZm4sCitpbnQgX19tdXN0 X2NoZWNrIGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIGJmbl90IGJmbiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2VfY291bnQp OwogaW50IF9fbXVzdF9jaGVjayBpb21tdV9pb3RsYl9mbHVzaF9hbGwoc3RydWN0IGRvbWFpbiAq ZCk7CiAKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2pl Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4t ZGV2ZWw=