From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joshua Otto Subject: [PATCH RFC 18/20] libxl/migration: implement the sender side of postcopy live migration Date: Mon, 27 Mar 2017 05:06:30 -0400 Message-ID: <1490605592-12189-19-git-send-email-jtotto@uwaterloo.ca> References: <1490605592-12189-1-git-send-email-jtotto@uwaterloo.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1csQpK-0001G4-0j for xen-devel@lists.xenproject.org; Mon, 27 Mar 2017 09:20:38 +0000 In-Reply-To: <1490605592-12189-1-git-send-email-jtotto@uwaterloo.ca> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, czylin@uwaterloo.ca, Joshua Otto , imhy.yang@gmail.com, hjarmstr@uwaterloo.ca List-Id: xen-devel@lists.xenproject.org VG8gbWFrZSB0aGUgbGlieGwgc2VuZGVyIGNhcGFibGUgb2Ygc3VwcG9ydGluZyBwb3N0Y29weSBs aXZlIG1pZ3JhdGlvbjoKLSBBZGQgYSBwb3N0Y29weSB0cmFuc2l0aW9uIGNhbGxiYWNrIGNoYWlu IHRocm91Z2ggdGhlIHN0cmVhbSB3cml0ZXIgKHRoaXMKICBjYWxsYmFjayBjaGFpbiBpcyBuZWFy bHkgaWRlbnRpY2FsIHRvIHRoZSBjaGVja3BvaW50IGNhbGxiYWNrIGNoYWluLCBhbmQKICBkaWZm ZXJzIG1lYW5pbmdmdWxseSBvbmx5IGluIGl0cyBmYWlsdXJlL2NvbXBsZXRpb24gYmVoYXZpb3Vy KQotIFdpcmUgdGhpcyBjYWxsYmFjayBjaGFpbiB1cCB0byB0aGUgeGMgcG9zdGNvcHkgY2FsbGJh Y2sgZW50cmllcyBpbiB0aGUgZG9tYWluCiAgc2F2ZSBsb2dpYy4KLSBBZGQgcGFyYW1ldGVycyB0 byBsaWJ4bF9kb21haW5fbGl2ZV9taWdyYXRlKCkgdG8gcGVybWl0IGJpZGlyZWN0aW9uYWwKICBj b21tdW5pY2F0aW9uIGJldHdlZW4gdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXIgYW5kIGVuYWJsZSB0 aGUgY2FsbGVyIHRvIHJlYXNvbgogIGFib3V0IHRoZSBzYWZldHkgb2YgcmVjb3ZlcnkgZnJvbSBh IHBvc3Rjb3B5IGZhaWx1cmUuCgpObyBtZWNoYW5pc20gaXMgaW50cm9kdWNlZCB5ZXQgdG8gZW5h YmxlIGxpYnJhcnkgY2xpZW50cyB0byBpbmR1Y2UgYSBwb3N0Y29weQpsaXZlIG1pZ3JhdGlvbiAt IHRoaXMgd2lsbCBmb2xsb3cgYWZ0ZXIgdGhlIGxpYnhsIHBvc3Rjb3B5IHJlY2VpdmVyIGxvZ2lj LgoKU2lnbmVkLW9mZi1ieTogSm9zaHVhIE90dG8gPGp0b3R0b0B1d2F0ZXJsb28uY2E+Ci0tLQog ZG9jcy9zcGVjcy9saWJ4bC1taWdyYXRpb24tc3RyZWFtLnBhbmRvYyB8IDE5ICsrKysrKysrLQog dG9vbHMvbGlieGwvbGlieGwuaCAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiB0b29scy9s aWJ4bC9saWJ4bF9kb21fc2F2ZS5jICAgICAgICAgICAgIHwgMjUgKysrKysrKysrKystCiB0b29s cy9saWJ4bC9saWJ4bF9kb21haW4uYyAgICAgICAgICAgICAgIHwgMjUgKysrKysrKystLS0tCiB0 b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oICAgICAgICAgICAgIHwgMjEgKysrKysrKystLQog dG9vbHMvbGlieGwvbGlieGxfc3Jfc3RyZWFtX2Zvcm1hdC5oICAgICB8IDEzICsrKy0tLQogdG9v bHMvbGlieGwvbGlieGxfc3RyZWFtX3dyaXRlLmMgICAgICAgICB8IDY5ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tCiB0b29scy94bC94bF9taWdyYXRlLmMgICAgICAgICAgICAgICAg ICAgIHwgIDUgKystCiA4IGZpbGVzIGNoYW5nZWQsIDE1NSBpbnNlcnRpb25zKCspLCAyNiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2NzL3NwZWNzL2xpYnhsLW1pZ3JhdGlvbi1zdHJlYW0u cGFuZG9jIGIvZG9jcy9zcGVjcy9saWJ4bC1taWdyYXRpb24tc3RyZWFtLnBhbmRvYwppbmRleCBh MWJhMWFjLi44ZDAwY2Q3IDEwMDY0NAotLS0gYS9kb2NzL3NwZWNzL2xpYnhsLW1pZ3JhdGlvbi1z dHJlYW0ucGFuZG9jCisrKyBiL2RvY3Mvc3BlY3MvbGlieGwtbWlncmF0aW9uLXN0cmVhbS5wYW5k b2MKQEAgLTIsNyArMiw4IEBACiAlIEFuZHJldyBDb29wZXIgPDxhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tPj4KICAgV2VuIENvbmd5YW5nIDw8d2VuY3lAY24uZnVqaXRzdS5jb20+PgogICBZYW5n IEhvbmd5YW5nIDw8aG9uZ3lhbmcueWFuZ0BlYXN5c3RhY2suY24+PgotJSBSZXZpc2lvbiAyCisg IEpvc2h1YSBPdHRvIDw8anRvdHRvQHV3YXRlcmxvby5jYT4+CislIFJldmlzaW9uIDMKIAogSW50 cm9kdWN0aW9uCiA9PT09PT09PT09PT0KQEAgLTEyMyw3ICsxMjQsOSBAQCB0eXBlICAgICAgICAg MHgwMDAwMDAwMDogRU5ECiAKICAgICAgICAgICAgICAweDAwMDAwMDA1OiBDSEVDS1BPSU5UX1NU QVRFCiAKLSAgICAgICAgICAgICAweDAwMDAwMDA2IC0gMHg3RkZGRkZGRjogUmVzZXJ2ZWQgZm9y IGZ1dHVyZSBfbWFuZGF0b3J5XworICAgICAgICAgICAgIDB4MDAwMDAwMDY6IFBPU1RDT1BZX1RS QU5TSVRJT05fRU5ECisKKyAgICAgICAgICAgICAweDAwMDAwMDA3IC0gMHg3RkZGRkZGRjogUmVz ZXJ2ZWQgZm9yIGZ1dHVyZSBfbWFuZGF0b3J5XwogICAgICAgICAgICAgIHJlY29yZHMuCiAKICAg ICAgICAgICAgICAweDgwMDAwMDAwIC0gMHhGRkZGRkZGRjogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSBf b3B0aW9uYWxfCkBAIC0zMDQsNiArMzA3LDE4IEBAIFdoaWxlIFNlY29uZGFyeSBpcyBydW5uaW5n IGluIGJlbG93IGxvb3A6CiAgICAgYi4gU2VuZCBfQ0hFQ0tQT0lOVFxfU1ZNXF9TVVNQRU5ERURf IHRvIHByaW1hcnkKIDQuIENoZWNrcG9pbnQKIAorUE9TVENPUFlcX1RSQU5TSVRJT05cX0VORAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitBIHBvc3Rjb3B5IHRyYW5zaXRpb24gZW5kIHJl Y29yZCBtYXJrcyB0aGUgZW5kIG9mIGEgcG9zdGNvcHkgdHJhbnNpdGlvbiBpbiBhCitsaWJ4bCBs aXZlIG1pZ3JhdGlvbiBzdHJlYW0uICBJdCBpbmRpY2F0ZXMgdGhhdCBjb250cm9sIG9mIHRoZSBz dHJlYW0gc2hvdWxkIGJlCityZXR1cm5lZCB0byBsaWJ4YyBmb3IgdGhlIHBvc3Rjb3B5IG1lbW9y eSBtaWdyYXRpb24gcGhhc2UuCisKKyAgICAgMCAgICAgMSAgICAgMiAgICAgMyAgICAgNCAgICAg NSAgICAgNiAgICAgNyBvY3RldAorICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKworCitUaGUgcG9zdGNvcHkgdHJhbnNpdGlvbiBlbmQgcmVjb3Jk IGNvbnRhaW5zIG5vIGZpZWxkczsgaXRzIGJvZHlfbGVuZ3RoIGlzIDAuCisKIEZ1dHVyZSBFeHRl bnNpb25zCiA9PT09PT09PT09PT09PT09PQogCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4 bC5oIGIvdG9vbHMvbGlieGwvbGlieGwuaAppbmRleCA4NGFjOTZhLi45OWQxODdiIDEwMDY0NAot LS0gYS90b29scy9saWJ4bC9saWJ4bC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKQEAgLTEz NzUsMTAgKzEzNzUsMTIgQEAgaW50IGxpYnhsX2RvbWFpbl9zdXNwZW5kKGxpYnhsX2N0eCAqY3R4 LCB1aW50MzJfdCBkb21pZCwgaW50IGZkLAogI2RlZmluZSBMSUJYTF9TVVNQRU5EX0RFQlVHIDEK ICNkZWZpbmUgTElCWExfU1VTUEVORF9MSVZFIDIKIAotaW50IGxpYnhsX2RvbWFpbl9saXZlX21p Z3JhdGUobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBpbnQgZmQsCitpbnQgbGlieGxf ZG9tYWluX2xpdmVfbWlncmF0ZShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsIGludCBz ZW5kX2ZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZsYWdzLCAvKiBMSUJY TF9TVVNQRU5EXyogKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBwcmVjb3B5X2l0ZXJhdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgcHJlY29weV9kaXJ0eV90aHJlc2hvbGQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgcmVjdl9mZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg KnBvc3Rjb3B5X3RyYW5zaXRpb25lZCwgLyogT1VUICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBsaWJ4bF9hc3luY29wX2hvdyAqYW9faG93KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTElCWExfRVhURVJOQUxfQ0FMTEVSU19PTkxZOwogCmRpZmYgLS1naXQg YS90b29scy9saWJ4bC9saWJ4bF9kb21fc2F2ZS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tX3Nh dmUuYwppbmRleCA0ZWY5Y2E1Li45ZTU2NWFlIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4 bF9kb21fc2F2ZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbV9zYXZlLmMKQEAgLTM0OSwx MCArMzQ5LDMxIEBAIHN0YXRpYyBpbnQgbGlieGxfX3NhdmVfbGl2ZV9taWdyYXRpb25fc2ltcGxl X3ByZWNvcHlfcG9saWN5KAogICAgIHJldHVybiBYR1NfUE9MSUNZX0NPTlRJTlVFX1BSRUNPUFk7 CiB9CiAKK3N0YXRpYyB2b2lkIHBvc3Rjb3B5X3RyYW5zaXRpb25fZG9uZShsaWJ4bF9fZWdjICpl Z2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3N0cmVhbV93 cml0ZV9zdGF0ZSAqc3dzLCBpbnQgcmMpOworCiBzdGF0aWMgdm9pZCBsaWJ4bF9fc2F2ZV9saXZl X21pZ3JhdGlvbl9wb3N0Y29weV90cmFuc2l0aW9uX2NhbGxiYWNrKHZvaWQgKnVzZXIpCiB7Ci0g ICAgLyogWFhYIHdlJ3JlIG5vdCB5ZXQgcmVhZHkgdG8gZGVhbCB3aXRoIHRoaXMgKi8KLSAgICBh c3NlcnQoMCk7CisgICAgbGlieGxfX3NhdmVfaGVscGVyX3N0YXRlICpzaHMgPSB1c2VyOworICAg IGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN3cyA9IENPTlRBSU5FUl9PRihzaHMsICpzd3Ms IHNocyk7CisgICAgc3dzLT5wb3N0Y29weV90cmFuc2l0aW9uX2NhbGxiYWNrID0gcG9zdGNvcHlf dHJhbnNpdGlvbl9kb25lOworICAgIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhcnRfcG9zdGNvcHlf dHJhbnNpdGlvbihzaHMtPmVnYywgc3dzKTsKK30KKworc3RhdGljIHZvaWQgcG9zdGNvcHlfdHJh bnNpdGlvbl9kb25lKGxpYnhsX19lZ2MgKmVnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRlICpzd3MsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjKQoreworICAgIGxpYnhsX19kb21haW5fc2F2 ZV9zdGF0ZSAqZHNzID0gc3dzLT5kc3M7CisKKyAgICAvKiBQYXN0IGhlcmUsIGl0J3MgX3Bvc3Np YmxlXyB0aGF0IHRoZSBkb21haW4gbWF5IGV4ZWN1dGUgYXQgdGhlCisgICAgICogZGVzdGluYXRp b24sIHNvIC0gdW5sZXNzIHdlJ3JlIGdpdmVuIHBvc2l0aXZlIGNvbmZpcm1hdGlvbiBieSB0aGUK KyAgICAgKiBkZXN0aW5hdGlvbiB0aGF0IGl0IGZhaWxlZCB0byByZXN1bWUgdGhlcmUgLSB3ZSBt dXN0IGFzc3VtZSBpdCBoYXMuICovCisgICAgYXNzZXJ0KGRzcy0+cG9zdGNvcHlfdHJhbnNpdGlv bmVkKTsKKyAgICAqZHNzLT5wb3N0Y29weV90cmFuc2l0aW9uZWQgPSAhcmM7CisKKyAgICAvKiBS ZXR1cm4gY29udHJvbCB0byBsaWJ4Yy4gKi8KKyAgICBsaWJ4bF9feGNfZG9tYWluX3NhdmVyZXN0 b3JlX2FzeW5jX2NhbGxiYWNrX2RvbmUoZWdjLCAmc3dzLT5zaHMsICFyYyk7CiB9CiAKIC8qLS0t LS0gbWFpbiBjb2RlIGZvciBzYXZpbmcsIGluIG9yZGVyIG9mIGV4ZWN1dGlvbiAtLS0tLSovCmRp ZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb21haW4uYyBiL3Rvb2xzL2xpYnhsL2xpYnhs X2RvbWFpbi5jCmluZGV4IGIxY2Y2NDMuLmVhNzc4YTYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhs L2xpYnhsX2RvbWFpbi5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbWFpbi5jCkBAIC00ODgs NyArNDg4LDggQEAgc3RhdGljIHZvaWQgZG9tYWluX3N1c3BlbmRfY2IobGlieGxfX2VnYyAqZWdj LAogCiBzdGF0aWMgaW50IGRvX2RvbWFpbl9zdXNwZW5kKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJf dCBkb21pZCwgaW50IGZkLCBpbnQgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCBwcmVjb3B5X2l0ZXJhdGlvbnMsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBwcmVjb3B5X2RpcnR5X3RocmVzaG9sZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHByZWNvcHlfZGlydHlfdGhyZXNob2xkLCBp bnQgcmVjdl9mZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAqcG9zdGNvcHlf dHJhbnNpdGlvbmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9h c3luY29wX2hvdyAqYW9faG93KQogewogICAgIEFPX0NSRUFURShjdHgsIGRvbWlkLCBhb19ob3cp OwpAQCAtNTA4LDYgKzUwOSw4IEBAIHN0YXRpYyBpbnQgZG9fZG9tYWluX3N1c3BlbmQobGlieGxf Y3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBpbnQgZmQsIGludCBmbGFncywKIAogICAgIGRzcy0+ ZG9taWQgPSBkb21pZDsKICAgICBkc3MtPmZkID0gZmQ7CisgICAgZHNzLT5yZWN2X2ZkID0gcmVj dl9mZDsKKyAgICBkc3MtPnBvc3Rjb3B5X3RyYW5zaXRpb25lZCA9IHBvc3Rjb3B5X3Jlc3VtZWRf cmVtb3RlbHk7CiAgICAgZHNzLT50eXBlID0gdHlwZTsKICAgICBkc3MtPmxpdmUgPSBmbGFncyAm IExJQlhMX1NVU1BFTkRfTElWRTsKICAgICBkc3MtPmRlYnVnID0gZmxhZ3MgJiBMSUJYTF9TVVNQ RU5EX0RFQlVHOwpAQCAtNTMyLDE4ICs1MzUsMjYgQEAgaW50IGxpYnhsX2RvbWFpbl9zdXNwZW5k KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgaW50IGZkLCBpbnQgZmxhZ3MsCiB7CiAg ICAgcmV0dXJuIGRvX2RvbWFpbl9zdXNwZW5kKGN0eCwgZG9taWQsIGZkLCBmbGFncywKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfTE1fUFJFQ09QWV9JVEVSQVRJT05TX0RFRkFV TFQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX0xNX0RJUlRZX1RIUkVTSE9M RF9ERUZBVUxULCBhb19ob3cpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTF9M TV9ESVJUWV9USFJFU0hPTERfREVGQVVMVCwgLTEsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsIGFvX2hvdyk7CiB9CiAKLWludCBsaWJ4bF9kb21haW5fbGl2ZV9taWdyYXRlKGxp YnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgaW50IGZkLCBpbnQgZmxhZ3MsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcHJlY29weV9pdGVyYXRpb25zLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHByZWNvcHlfZGlydHlf dGhyZXNob2xkLAoraW50IGxpYnhsX2RvbWFpbl9saXZlX21pZ3JhdGUobGlieGxfY3R4ICpjdHgs IHVpbnQzMl90IGRvbWlkLCBpbnQgc2VuZF9mZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBmbGFncywgdW5zaWduZWQgaW50IHByZWNvcHlfaXRlcmF0aW9ucywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwcmVjb3B5X2RpcnR5X3RocmVzaG9s ZCwgaW50IHJlY3ZfZmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sICpwb3N0 Y29weV90cmFuc2l0aW9uZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBs aWJ4bF9hc3luY29wX2hvdyAqYW9faG93KQogeworICAgIGlmICghcG9zdGNvcHlfdHJhbnNpdGlv bmVkKSB7CisgICAgICAgIGVycm5vID0gRUlOVkFMOworICAgICAgICByZXR1cm4gLTE7CisgICAg fQorCiAgICAgZmxhZ3MgfD0gTElCWExfU1VTUEVORF9MSVZFOwogCi0gICAgcmV0dXJuIGRvX2Rv bWFpbl9zdXNwZW5kKGN0eCwgZG9taWQsIGZkLCBmbGFncywgcHJlY29weV9pdGVyYXRpb25zLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVjb3B5X2RpcnR5X3RocmVzaG9sZCwgYW9f aG93KTsKKyAgICByZXR1cm4gZG9fZG9tYWluX3N1c3BlbmQoY3R4LCBkb21pZCwgc2VuZF9mZCwg ZmxhZ3MsIHByZWNvcHlfaXRlcmF0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cHJlY29weV9kaXJ0eV90aHJlc2hvbGQsIHJlY3ZfZmQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBvc3Rjb3B5X3RyYW5zaXRpb25lZCwgYW9faG93KTsKIH0KIAogaW50IGxpYnhsX2Rv bWFpbl9wYXVzZShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQpCmRpZmYgLS1naXQgYS90 b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwu aAppbmRleCBjNzU0NzA2Li5hZTI3MmQ3IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9p bnRlcm5hbC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKQEAgLTMxOTQsMTcg KzMxOTQsMjUgQEAgc3RydWN0IGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgewogICAgIHZvaWQg KCpjb21wbGV0aW9uX2NhbGxiYWNrKShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN3cywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjKTsKLSAgICB2b2lkICgqY2hlY2twb2ludF9j YWxsYmFjaykobGlieGxfX2VnYyAqZWdjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRlICpzd3MsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCByYyk7CisgICAgLyogQ2hlY2twb2ludGluZyBhbmQgcG9zdGNvcHkgbGl2 ZSBtaWdyYXRpb24gYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gKi8KKyAgICB1bmlvbiB7CisgICAg ICAgIHZvaWQgKCpjaGVja3BvaW50X2NhbGxiYWNrKShsaWJ4bF9fZWdjICplZ2MsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRlICpz d3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmMpOworICAgICAg ICB2b2lkICgqcG9zdGNvcHlfdHJhbnNpdGlvbl9jYWxsYmFjaykobGlieGxfX2VnYyAqZWdjLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3N0cmVh bV93cml0ZV9zdGF0ZSAqc3dzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IHJjKTsKKyAgICB9OwogICAgIC8qIFByaXZhdGUgKi8KICAgICBpbnQgcmM7 CiAgICAgYm9vbCBydW5uaW5nOwogICAgIGVudW0gewogICAgICAgICBTV1NfUEhBU0VfTk9STUFM LAogICAgICAgICBTV1NfUEhBU0VfQ0hFQ0tQT0lOVCwKLSAgICAgICAgU1dTX1BIQVNFX0NIRUNL UE9JTlRfU1RBVEUKKyAgICAgICAgU1dTX1BIQVNFX0NIRUNLUE9JTlRfU1RBVEUsCisgICAgICAg IFNXU19QSEFTRV9QT1NUQ09QWV9UUkFOU0lUSU9OCiAgICAgfSBwaGFzZTsKKyAgICBib29sIHBv c3Rjb3B5X3RyYW5zaXRpb25lZDsKICAgICBib29sIHN5bmNfdGVhcmRvd247ICAvKiBPbmx5IHVz ZWQgdG8gY29vcmRpbmF0ZSBzaHV0ZG93biBvbiBlcnJvciBwYXRoLiAqLwogICAgIGxpYnhsX19z YXZlX2hlbHBlcl9zdGF0ZSBzaHM7CiAKQEAgLTMyMjcsNiArMzIzNSwxMCBAQCBfaGlkZGVuIHZv aWQgbGlieGxfX3N0cmVhbV93cml0ZV9pbml0KGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN0 cmVhbSk7CiBfaGlkZGVuIHZvaWQgbGlieGxfX3N0cmVhbV93cml0ZV9zdGFydChsaWJ4bF9fZWdj ICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3Ry ZWFtX3dyaXRlX3N0YXRlICpzdHJlYW0pOwogX2hpZGRlbiB2b2lkCitsaWJ4bF9fc3RyZWFtX3dy aXRlX3N0YXJ0X3Bvc3Rjb3B5X3RyYW5zaXRpb24oCisgICAgbGlieGxfX2VnYyAqZWdjLAorICAg IGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN0cmVhbSk7CitfaGlkZGVuIHZvaWQKIGxpYnhs X19zdHJlYW1fd3JpdGVfc3RhcnRfY2hlY2twb2ludChsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAq c3RyZWFtKTsKIF9oaWRkZW4gdm9pZApAQCAtMzI5MCw2ICszMzAyLDcgQEAgc3RydWN0IGxpYnhs X19kb21haW5fc2F2ZV9zdGF0ZSB7CiAgICAgaW50IGZkOwogICAgIGludCBmZGZsOyAvKiBvcmln aW5hbCBmbGFncyBvbiBmZCAqLwogICAgIGludCByZWN2X2ZkOworICAgIGJvb2wgKnBvc3Rjb3B5 X3RyYW5zaXRpb25lZDsKICAgICBsaWJ4bF9kb21haW5fdHlwZSB0eXBlOwogICAgIGludCBsaXZl OwogICAgIGludCBkZWJ1ZzsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3NyX3N0cmVh bV9mb3JtYXQuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX3NyX3N0cmVhbV9mb3JtYXQuaAppbmRleCA3 NWY1MTkwLi5hNzg5MTI2IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9zcl9zdHJlYW1f Zm9ybWF0LmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfc3Jfc3RyZWFtX2Zvcm1hdC5oCkBAIC0z MSwxMiArMzEsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgbGlieGxfX3NyX3JlY19oZHIKIC8qIEFsbCBy ZWNvcmRzIG11c3QgYmUgYWxpZ25lZCB1cCB0byBhbiA4IG9jdGV0IGJvdW5kYXJ5ICovCiAjZGVm aW5lIFJFQ19BTElHTl9PUkRFUiAgICAgICAgICAgICAgM1UKIAotI2RlZmluZSBSRUNfVFlQRV9F TkQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDBVCi0jZGVmaW5lIFJFQ19UWVBFX0xJQlhD X0NPTlRFWFQgICAgICAgICAgMHgwMDAwMDAwMVUKLSNkZWZpbmUgUkVDX1RZUEVfRU1VTEFUT1Jf WEVOU1RPUkVfREFUQSAweDAwMDAwMDAyVQotI2RlZmluZSBSRUNfVFlQRV9FTVVMQVRPUl9DT05U RVhUICAgICAgIDB4MDAwMDAwMDNVCi0jZGVmaW5lIFJFQ19UWVBFX0NIRUNLUE9JTlRfRU5EICAg ICAgICAgMHgwMDAwMDAwNFUKLSNkZWZpbmUgUkVDX1RZUEVfQ0hFQ0tQT0lOVF9TVEFURSAgICAg ICAweDAwMDAwMDA1VQorI2RlZmluZSBSRUNfVFlQRV9FTkQgICAgICAgICAgICAgICAgICAgICAw eDAwMDAwMDAwVQorI2RlZmluZSBSRUNfVFlQRV9MSUJYQ19DT05URVhUICAgICAgICAgICAweDAw MDAwMDAxVQorI2RlZmluZSBSRUNfVFlQRV9FTVVMQVRPUl9YRU5TVE9SRV9EQVRBICAweDAwMDAw MDAyVQorI2RlZmluZSBSRUNfVFlQRV9FTVVMQVRPUl9DT05URVhUICAgICAgICAweDAwMDAwMDAz VQorI2RlZmluZSBSRUNfVFlQRV9DSEVDS1BPSU5UX0VORCAgICAgICAgICAweDAwMDAwMDA0VQor I2RlZmluZSBSRUNfVFlQRV9DSEVDS1BPSU5UX1NUQVRFICAgICAgICAweDAwMDAwMDA1VQorI2Rl ZmluZSBSRUNfVFlQRV9QT1NUQ09QWV9UUkFOU0lUSU9OX0VORCAweDAwMDAwMDA2VQogCiB0eXBl ZGVmIHN0cnVjdCBsaWJ4bF9fc3JfZW11bGF0b3JfaGRyCiB7CmRpZmYgLS1naXQgYS90b29scy9s aWJ4bC9saWJ4bF9zdHJlYW1fd3JpdGUuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3N0cmVhbV93cml0 ZS5jCmluZGV4IDhmMmExYzkuLjFjNGIxZjEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhs X3N0cmVhbV93cml0ZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3N0cmVhbV93cml0ZS5jCkBA IC0yMiw2ICsyMiw5IEBACiAgKiBFbnRyeSBwb2ludHMgZnJvbSBvdXRzaWRlOgogICogIC0gbGli eGxfX3N0cmVhbV93cml0ZV9zdGFydCgpCiAgKiAgICAgLSBTdGFydCB3cml0aW5nIGEgc3RyZWFt IGZyb20gdGhlIHN0YXJ0LgorICogIC0gbGlieGxfX3N0cmVhbV93cml0ZV9wb3N0Y29weV90cmFu c2l0aW9uKCkKKyAqICAgICAtIFdyaXRlIHRoZSByZWNvcmRzIHJlcXVpcmVkIHRvIHBlcm1pdCBw b3N0Y29weSByZXN1bXB0aW9uIGF0IHRoZQorICogICAgICAgbWlncmF0aW9uIHRhcmdldC4KICAq ICAtIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhcnRfY2hlY2twb2ludCgpCiAgKiAgICAgLSBXcml0 ZSB0aGUgcmVjb3JkcyB3aGljaCBmb3JtIGEgY2hlY2twb2ludCBpbnRvIGEgc3RyZWFtLgogICoK QEAgLTY1LDYgKzY4LDkgQEAgc3RhdGljIHZvaWQgc3RyZWFtX2NvbXBsZXRlKGxpYnhsX19lZ2Mg KmVnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0 YXRlICpzdHJlYW0sIGludCByYyk7CiBzdGF0aWMgdm9pZCBzdHJlYW1fZG9uZShsaWJ4bF9fZWdj ICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRl ICpzdHJlYW0sIGludCByYyk7CitzdGF0aWMgdm9pZCBwb3N0Y29weV90cmFuc2l0aW9uX2RvbmUo bGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgcmMpOwogc3RhdGljIHZvaWQgY2hlY2twb2ludF9kb25lKGxpYnhs X19lZ2MgKmVnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3dy aXRlX3N0YXRlICpzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjKTsK QEAgLTkxLDcgKzk3LDkgQEAgc3RhdGljIHZvaWQgZW11bGF0b3JfY29udGV4dF9yZWNvcmRfZG9u ZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN0cmVhbSk7CiBzdGF0aWMgdm9pZCB3cml0 ZV9waGFzZV9lbmRfcmVjb3JkKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFtKTsKLQorc3Rh dGljIHZvaWQgcG9zdGNvcHlfdHJhbnNpdGlvbl9lbmRfcmVjb3JkX2RvbmUoCisgICAgbGlieGxf X2VnYyAqZWdjLAorICAgIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN0cmVhbSk7CiBzdGF0 aWMgdm9pZCBjaGVja3BvaW50X2VuZF9yZWNvcmRfZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0 YXRlICpzdHJlYW0pOwogCkBAIC0yMTEsNiArMjE5LDcgQEAgdm9pZCBsaWJ4bF9fc3RyZWFtX3dy aXRlX2luaXQobGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFtKQogICAgIHN0cmVhbS0+ cmMgPSAwOwogICAgIHN0cmVhbS0+cnVubmluZyA9IGZhbHNlOwogICAgIHN0cmVhbS0+cGhhc2Ug PSBTV1NfUEhBU0VfTk9STUFMOworICAgIHN0cmVhbS0+cG9zdGNvcHlfdHJhbnNpdGlvbmVkID0g ZmFsc2U7CiAgICAgc3RyZWFtLT5zeW5jX3RlYXJkb3duID0gZmFsc2U7CiAgICAgRklMTFpFUk8o c3RyZWFtLT5kYyk7CiAgICAgc3RyZWFtLT5yZWNvcmRfZG9uZV9jYWxsYmFjayA9IE5VTEw7CkBA IC0yODcsNiArMjk2LDIyIEBAIHZvaWQgbGlieGxfX3N0cmVhbV93cml0ZV9zdGFydChsaWJ4bF9f ZWdjICplZ2MsCiAgICAgc3RyZWFtX2NvbXBsZXRlKGVnYywgc3RyZWFtLCByYyk7CiB9CiAKK3Zv aWQgbGlieGxfX3N0cmVhbV93cml0ZV9zdGFydF9wb3N0Y29weV90cmFuc2l0aW9uKAorICAgIGxp YnhsX19lZ2MgKmVnYywKKyAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRlICpzdHJlYW0pCit7 CisgICAgbGlieGxfX2RvbWFpbl9zYXZlX3N0YXRlICpkc3MgPSBzdHJlYW0tPmRzczsKKworICAg IGFzc2VydChzdHJlYW0tPnJ1bm5pbmcpOworICAgIGFzc2VydChkc3MtPmNoZWNrcG9pbnRlZF9z dHJlYW0gPT0gTElCWExfQ0hFQ0tQT0lOVEVEX1NUUkVBTV9OT05FKTsKKyAgICBhc3NlcnQoc3Ry ZWFtLT5waGFzZSA9PSBTV1NfUEhBU0VfTk9STUFMKTsKKyAgICBhc3NlcnQoIXN0cmVhbS0+cG9z dGNvcHlfdHJhbnNpdGlvbmVkKTsKKworICAgIHN0cmVhbS0+cGhhc2UgPSBTV1NfUEhBU0VfUE9T VENPUFlfVFJBTlNJVElPTjsKKworICAgIHdyaXRlX2VtdWxhdG9yX3hlbnN0b3JlX3JlY29yZChl Z2MsIHN0cmVhbSk7Cit9CisKIHZvaWQgbGlieGxfX3N0cmVhbV93cml0ZV9zdGFydF9jaGVja3Bv aW50KGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN0cmVhbSkKIHsKQEAgLTM2OSw3ICsz OTQsNyBAQCB2b2lkIGxpYnhsX194Y19kb21haW5fc2F2ZV9kb25lKGxpYnhsX19lZ2MgKmVnYywg dm9pZCAqZHNzX3ZvaWQsCiAgICAgICogSWYgdGhlIHN0cmVhbSBpcyBub3Qgc3RpbGwgYWxpdmUs IHdlIG11c3Qgbm90IGNvbnRpbnVlIGFueSB3b3JrLgogICAgICAqLwogICAgIGlmIChsaWJ4bF9f c3RyZWFtX3dyaXRlX2ludXNlKHN0cmVhbSkpIHsKLSAgICAgICAgaWYgKGRzcy0+Y2hlY2twb2lu dGVkX3N0cmVhbSAhPSBMSUJYTF9DSEVDS1BPSU5URURfU1RSRUFNX05PTkUpCisgICAgICAgIGlm IChkc3MtPmNoZWNrcG9pbnRlZF9zdHJlYW0gIT0gTElCWExfQ0hFQ0tQT0lOVEVEX1NUUkVBTV9O T05FKSB7CiAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICogRm9yIHJlbXVzLCBpZiBsaWJ4 bF9feGNfZG9tYWluX3NhdmVfZG9uZSgpIGNvbXBsZXRlcywKICAgICAgICAgICAgICAqIHRoZXJl IHdhcyBhbiBlcnJvciBzZW5kaW5nIGRhdGEgdG8gdGhlIHNlY29uZGFyeS4KQEAgLTM3Nyw4ICs0 MDIsMTcgQEAgdm9pZCBsaWJ4bF9feGNfZG9tYWluX3NhdmVfZG9uZShsaWJ4bF9fZWdjICplZ2Ms IHZvaWQgKmRzc192b2lkLAogICAgICAgICAgICAgICogcmV0dXJuIHZhbHVlIChQbGVhc2UgcmVm ZXIgdG8gbGlieGxfX3JlbXVzX3RlYXJkb3duKCkpCiAgICAgICAgICAgICAgKi8KICAgICAgICAg ICAgIHN0cmVhbV9jb21wbGV0ZShlZ2MsIHN0cmVhbSwgMCk7Ci0gICAgICAgIGVsc2UKKyAgICAg ICAgfSBlbHNlIGlmIChzdHJlYW0tPnBvc3Rjb3B5X3RyYW5zaXRpb25lZCkgeworICAgICAgICAg ICAgLyoKKyAgICAgICAgICAgICAqIElmLCBvbiB0aGUgb3RoZXIgaGFuZCwgdGhpcyBpcyBhIG5v cm1hbCBtaWdyYXRpb24gdGhhdCBoYWQgYQorICAgICAgICAgICAgICogcG9zdGNvcHkgbWlncmF0 aW9uIHN0YWdlLCB3ZSdyZSBjb21wbGV0ZWx5IGRvbmUgYXQgdGhpcyBwb2ludCBhbmQKKyAgICAg ICAgICAgICAqIHdhbnQgdG8gcmVwb3J0IGFueSBlcnJvciByZWNlaXZlZCBoZXJlIHRvIG91ciBj YWxsZXIuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGFzc2VydChzdHJlYW0tPnBoYXNl ID09IFNXU19QSEFTRV9OT1JNQUwpOworICAgICAgICAgICAgd3JpdGVfcGhhc2VfZW5kX3JlY29y ZChlZ2MsIHN0cmVhbSk7CisgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB3cml0ZV9lbXVs YXRvcl94ZW5zdG9yZV9yZWNvcmQoZWdjLCBzdHJlYW0pOworICAgICAgICB9CiAgICAgfQogfQog CkBAIC01NTAsNiArNTg0LDExIEBAIHN0YXRpYyB2b2lkIHdyaXRlX3BoYXNlX2VuZF9yZWNvcmQo bGlieGxfX2VnYyAqZWdjLAogICAgICAgICB3aGF0ICAgICA9ICJjaGVja3BvaW50IGVuZCByZWNv cmQiOwogICAgICAgICBjYiAgICAgICA9IGNoZWNrcG9pbnRfZW5kX3JlY29yZF9kb25lOwogICAg ICAgICBicmVhazsKKyAgICBjYXNlIFNXU19QSEFTRV9QT1NUQ09QWV9UUkFOU0lUSU9OOgorICAg ICAgICByZWMudHlwZSA9IFJFQ19UWVBFX1BPU1RDT1BZX1RSQU5TSVRJT05fRU5EOworICAgICAg ICB3aGF0ICAgICA9ICJwb3N0Y29weSB0cmFuc2l0aW9uIGVuZCByZWNvcmQiOworICAgICAgICBj YiAgICAgICA9IHBvc3Rjb3B5X3RyYW5zaXRpb25fZW5kX3JlY29yZF9kb25lOworICAgICAgICBi cmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICAvKiBTV1NfUEhBU0VfQ0hFQ0tQT0lOVF9TVEFU RSBoYXMgbm8gZW5kIHJlY29yZCAqLwogICAgICAgICBhc3NlcnQoZmFsc2UpOwpAQCAtNTU4LDYg KzU5NywxMyBAQCBzdGF0aWMgdm9pZCB3cml0ZV9waGFzZV9lbmRfcmVjb3JkKGxpYnhsX19lZ2Mg KmVnYywKICAgICBzZXR1cF93cml0ZShlZ2MsIHN0cmVhbSwgd2hhdCwgJnJlYywgTlVMTCwgY2Ip OwogfQogCitzdGF0aWMgdm9pZCBwb3N0Y29weV90cmFuc2l0aW9uX2VuZF9yZWNvcmRfZG9uZSgK KyAgICBsaWJ4bF9fZWdjICplZ2MsCisgICAgbGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3Ry ZWFtKQoreworICAgIHBvc3Rjb3B5X3RyYW5zaXRpb25fZG9uZShlZ2MsIHN0cmVhbSwgMCk7Cit9 CisKIHN0YXRpYyB2b2lkIGNoZWNrcG9pbnRfZW5kX3JlY29yZF9kb25lKGxpYnhsX19lZ2MgKmVn YywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19zdHJlYW1f d3JpdGVfc3RhdGUgKnN0cmVhbSkKIHsKQEAgLTYwMCw2ICs2NDYsMTMgQEAgc3RhdGljIHZvaWQg c3RyZWFtX2NvbXBsZXRlKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICovCiAgICAgICAgIGNo ZWNrcG9pbnRfc3RhdGVfZG9uZShlZ2MsIHN0cmVhbSwgcmMpOwogICAgICAgICBicmVhazsKKyAg ICBjYXNlIFNXU19QSEFTRV9QT1NUQ09QWV9UUkFOU0lUSU9OOgorICAgICAgICAvKgorICAgICAg ICAgKiBUbyBkZWFsIHdpdGggZXJyb3JzIGR1cmluZyB0aGUgcG9zdGNvcHkgdHJhbnNpdGlvbiwg d2UgdXNlIHRoZSBzYW1lCisgICAgICAgICAqIHN0cmF0ZWd5IGFzIGR1cmluZyBjaGVja3BvaW50 cy4KKyAgICAgICAgICovCisgICAgICAgIHBvc3Rjb3B5X3RyYW5zaXRpb25fZG9uZShlZ2MsIHN0 cmVhbSwgcmMpOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKQEAgLTYyNyw2ICs2ODAsMTYg QEAgc3RhdGljIHZvaWQgc3RyZWFtX2RvbmUobGlieGxfX2VnYyAqZWdjLAogICAgIH0KIH0KIAor c3RhdGljIHZvaWQgcG9zdGNvcHlfdHJhbnNpdGlvbl9kb25lKGxpYnhsX19lZ2MgKmVnYywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0 YXRlICpzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJj KQoreworICAgIGFzc2VydChzdHJlYW0tPnBoYXNlID09IFNXU19QSEFTRV9QT1NUQ09QWV9UUkFO U0lUSU9OKTsKKyAgICBzdHJlYW0tPnBvc3Rjb3B5X3RyYW5zaXRpb25lZCA9IHRydWU7CisgICAg c3RyZWFtLT5waGFzZSA9IFNXU19QSEFTRV9OT1JNQUw7CisgICAgc3RyZWFtLT5wb3N0Y29weV90 cmFuc2l0aW9uX2NhbGxiYWNrKGVnYywgc3RyZWFtLCByYyk7Cit9CisKIHN0YXRpYyB2b2lkIGNo ZWNrcG9pbnRfZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFtLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCByYykKZGlmZiAtLWdpdCBhL3Rvb2xzL3hsL3hsX21pZ3JhdGUuYyBiL3Rv b2xzL3hsL3hsX21pZ3JhdGUuYwppbmRleCAxYmIzZmI0Li4xZmZjMzJiIDEwMDY0NAotLS0gYS90 b29scy94bC94bF9taWdyYXRlLmMKKysrIGIvdG9vbHMveGwveGxfbWlncmF0ZS5jCkBAIC0xODgs NiArMTg4LDcgQEAgc3RhdGljIHZvaWQgbWlncmF0ZV9kb21haW4odWludDMyX3QgZG9taWQsIGNv bnN0IGNoYXIgKnJ1bmUsIGludCBkZWJ1ZywKICAgICBjaGFyIHJjX2J1ZjsKICAgICB1aW50OF90 ICpjb25maWdfZGF0YTsKICAgICBpbnQgY29uZmlnX2xlbiwgZmxhZ3MgPSBMSUJYTF9TVVNQRU5E X0xJVkU7CisgICAgYm9vbCBwb3N0Y29weV90cmFuc2l0aW9uZWQ7CiAKICAgICBzYXZlX2RvbWFp bl9jb3JlX2JlZ2luKGRvbWlkLCBvdmVycmlkZV9jb25maWdfZmlsZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZjb25maWdfZGF0YSwgJmNvbmZpZ19sZW4pOwpAQCAtMjA5LDcgKzIxMCw5 IEBAIHN0YXRpYyB2b2lkIG1pZ3JhdGVfZG9tYWluKHVpbnQzMl90IGRvbWlkLCBjb25zdCBjaGFy ICpydW5lLCBpbnQgZGVidWcsCiAgICAgICAgIGZsYWdzIHw9IExJQlhMX1NVU1BFTkRfREVCVUc7 CiAgICAgcmMgPSBsaWJ4bF9kb21haW5fbGl2ZV9taWdyYXRlKGN0eCwgZG9taWQsIHNlbmRfZmQs IGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVjb3B5X2l0ZXJh dGlvbnMsIHByZWNvcHlfZGlydHlfdGhyZXNob2xkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVj dl9mZCwgJnBvc3Rjb3B5X3RyYW5zaXRpb25lZCwgTlVMTCk7CisgICAgYXNzZXJ0KCFwb3N0Y29w eV90cmFuc2l0aW9uZWQpOworCiAgICAgaWYgKHJjKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJy LCAibWlncmF0aW9uIHNlbmRlcjogbGlieGxfZG9tYWluX3N1c3BlbmQgZmFpbGVkIgogICAgICAg ICAgICAgICAgICIgKHJjPSVkKVxuIiwgcmMpOwotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK