From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changlong Xie Subject: [PATCH v13.1 20/26] Support colo mode for qemu disk Date: Mon, 28 Mar 2016 11:46:10 +0800 Message-ID: <56F8A902.7020306@cn.fujitsu.com> References: <1458888273-7469-1-git-send-email-xiecl.fnst@cn.fujitsu.com> <1458888273-7469-21-git-send-email-xiecl.fnst@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458888273-7469-21-git-send-email-xiecl.fnst@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen devel , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Campbell , Ian Jackson , Wei Liu Cc: Lars Kurth , Wen Congyang , Li Zhijian , Gui Jianfeng , Jiang Yunhong , Dong Eddie , Anthony Perard , Shriram Rajagopalan , Yang Hongyang List-Id: xen-devel@lists.xenproject.org IEZyb20gNDY4ZmY5ZmIyZjY2OTkzMTRjMjhmMzBhN2Q3ZDA5ZWFjOWFhNjc1NiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogV2VuIENvbmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4K RGF0ZTogTW9uLCAyMSBNYXIgMjAxNiAxNTozODozMCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEz LjEgMjAvMjZdIFN1cHBvcnQgY29sbyBtb2RlIGZvciBxZW11IGRpc2sKClVzYWdlOiBkaXNrID0g ClsnLi4uLGNvbG8sY29sby1ob3N0PXh4eCxjb2xvLXBvcnQ9eHh4LGNvbG8tZXhwb3J0PXh4eCxh Y3RpdmUtZGlzaz14eHgsaGlkZGVuLWRpc2s9eHh4Li4uJ10KRm9yIFFFTVUgYmxvY2sgcmVwbGlj YXRpb24gZGV0YWlsczoKaHR0cDovL3dpa2kucWVtdS5vcmcvRmVhdHVyZXMvQmxvY2tSZXBsaWNh dGlvbgoKTm90ZTogd2UganVzdCBpbnRyb2R1Y2UgQ09MTyBmcmFtZXdvcmssIGJ1dCBkb24ndCBp bXBsZW1lbnQgQ09MTwpvcGVyYXRpb25zIGluIHRoaXMgcGF0Y2guCgpTaWduZWQtb2ZmLWJ5OiBX ZW4gQ29uZ3lhbmcgPHdlbmN5QGNuLmZ1aml0c3UuY29tPgpTaWduZWQtb2ZmLWJ5OiBZYW5nIEhv bmd5YW5nIDxob25neWFuZy55YW5nQGVhc3lzdGFjay5jbj4KU2lnbmVkLW9mZi1ieTogQ2hhbmds b25nIFhpZSA8eGllY2wuZm5zdEBjbi5mdWppdHN1LmNvbT4KLS0tCiAgZG9jcy9tYW4veGwucG9k LjEgICAgICAgICAgICAgICAgICAgfCAgNDEgKysrKysrKysrKystLQogIGRvY3MvbWlzYy94bC1k aXNrLWNvbmZpZ3VyYXRpb24udHh0IHwgIDU1ICsrKysrKysrKysrKysrKysrKwogIHRvb2xzL2xp YnhsL2xpYnhsLmMgICAgICAgICAgICAgICAgIHwgIDUxICsrKysrKysrKysrKysrKy0KICB0b29s cy9saWJ4bC9saWJ4bF9jcmVhdGUuYyAgICAgICAgICB8ICAyNiArKysrKysrKy0KICB0b29scy9s aWJ4bC9saWJ4bF9kZXZpY2UuYyAgICAgICAgICB8ICAxMSArKysrCiAgdG9vbHMvbGlieGwvbGli eGxfZG0uYyAgICAgICAgICAgICAgfCAxMTMgCisrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLQogIHRvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbCAgICAgICAgIHwgICA5ICsrKwog IHRvb2xzL2xpYnhsL2xpYnhsdV9kaXNrX2wubCAgICAgICAgIHwgIDE5ICsrKysrKwogIDggZmls ZXMgY2hhbmdlZCwgMzE3IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jcy9tYW4veGwucG9kLjEgYi9kb2NzL21hbi94bC5wb2QuMQppbmRleCBhOTkyYTQ1Li4y NjY0NDAyIDEwMDY0NAotLS0gYS9kb2NzL21hbi94bC5wb2QuMQorKysgYi9kb2NzL21hbi94bC5w b2QuMQpAQCAtNDUwLDEyICs0NTAsNDMgQEAgUHJpbnQgaHVnZSAoISkgYW1vdW50IG9mIGRlYnVn IGR1cmluZyB0aGUgCm1pZ3JhdGlvbiBwcm9jZXNzLgogIEVuYWJsZSBSZW11cyBIQSBvciBDT0xP IEhBIGZvciBkb21haW4uIEJ5IGRlZmF1bHQgQjx4bD4gcmVsaWVzIG9uIHNzaCBhcyBhCiAgdHJh bnNwb3J0IG1lY2hhbmlzbSBiZXR3ZWVuIHRoZSB0d28gaG9zdHMuCgotTi5COiBSZW11cyBzdXBw b3J0IGluIHhsIGlzIHN0aWxsIGluIGV4cGVyaW1lbnRhbCAocHJvb2Ytb2YtY29uY2VwdCkgcGhh c2UuCi0gICAgIERpc2sgcmVwbGljYXRpb24gc3VwcG9ydCBpcyBsaW1pdGVkIHRvIERSQkQgZGlz a3MuCitCPE5PVEVTPgorCis9b3ZlciA0CisKK1JlbXVzIHN1cHBvcnQgaW4geGwgaXMgc3RpbGwg aW4gZXhwZXJpbWVudGFsIChwcm9vZi1vZi1jb25jZXB0KSBwaGFzZS4KK0Rpc2sgcmVwbGljYXRp b24gc3VwcG9ydCBpcyBsaW1pdGVkIHRvIERSQkQgZGlza3MuCisKK0NPTE8gc3VwcG9ydCBpbiB4 bCBpcyBzdGlsbCBpbiBleHBlcmltZW50YWwgKHByb29mLW9mLWNvbmNlcHQpIHBoYXNlLgorVGhl cmUgaXMgbm8gc3VwcG9ydCBmb3IgbmV0d29yaywgc28gdGhlIGd1ZXN0IHdpbGwgY29uZnVzZSBp dHMgbmV0d29yaworcGVlcnMgYXQgdGhlIG1vbWVudC4KCi0gICAgIENPTE8gc3VwcG9ydCBpbiB4 bCBpcyBzdGlsbCBpbiBleHBlcmltZW50YWwgKHByb29mLW9mLWNvbmNlcHQpIHBoYXNlLgotICAg ICBUaGVyZSBpcyBubyBzdXBwb3J0IGZvciBuZXR3b3JrIG9yIGRpc2ssIHNvIHRoZSBndWVzdCB3 aWxsIGNvcnJ1cHQgaXRzCi0gICAgIGRpc2sgYW5kIGNvbmZ1c2UgaXRzIG5ldHdvcmsgcGVlcnMg YXQgdGhlIG1vbWVudC4KKz1iYWNrCisKK0I8RVhBTVBMRT4KKworPW92ZXIgNAorCisoYSkgQW4g ZXhhbXBsZSBmb3IgQ09MTyByZXBsaWNhdGlvbidzIGNvbmZpZ3VyYXRpb246IGRpc2sgCj1bJy4u Lixjb2xvLGNvbG8taG9zdAorPXh4eCxjb2xvLXBvcnQ9eHh4LGNvbG8tZXhwb3J0PXh4eCxhY3Rp dmUtZGlzaz14eHgsaGlkZGVuLWRpc2s9eHh4Li4uJ10KKworPWl0ZW0gQjxjb2xvLWhvc3Q+ICAg ICAgOlNlY29uZGFyeSBob3N0J3MgaXAgYWRkcmVzcy4KKworPWl0ZW0gQjxjb2xvLXBvcnQ+ICAg ICAgOlNlY29uZGFyeSBob3N0J3MgcG9ydCwgd2Ugd2lsbCBydW4gYSBuYmQgc2VydmVyIG9uCitz ZWNvbmRhcnkgaG9zdCwgYW5kIHRoZSBuYmQgc2VydmVyIHdpbGwgbGlzdGVuIHRoaXMgcG9ydC4K KworPWl0ZW0gQjxjb2xvLWV4cG9ydD4gICAgOk5iZCBzZXJ2ZXIncyBkaXNrIGV4cG9ydCBuYW1l IG9mIHNlY29uZGFyeSBob3N0LgorCis9aXRlbSBCPGFjdGl2ZS1kaXNrPiAgICA6U2Vjb25kYXJ5 J3MgZ3Vlc3Qgd3JpdGUgd2lsbCBiZSBidWZmZXJlZCBpbiAKdGhpcyBkaXNrLAorYW5kIGl0J3Mg dXNlZCBieSBzZWNvbmRhcnkuCisKKz1pdGVtIEI8aGlkZGVuLWRpc2s+ICAgIDpQcmltYXJ5J3Mg bW9kaWZpZWQgY29udGVudHMgd2lsbCBiZSBidWZmZXJlZCAKaW4gdGhpcworZGlzaywgYW5kIGl0 J3MgdXNlZCBieSBzZWNvbmRhcnkuCisKK05vdGUgdGhhdCB0aGUgQ09MTyBjb25maWd1cmF0aW9u IHNldHRpbmdzIHNob3VsZCBiZSBjb25zaWRlcmVkIAp1bnN0YWJsZS4gVGhleQorbWF5IGNoYW5n ZSBpbmNvbXBhdGlibHkgaW4gZnV0dXJlIHZlcnNpb25zIG9mIFhlbi4KKworPWJhY2sKCiAgQjxP UFRJT05TPgoKZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy94bC1kaXNrLWNvbmZpZ3VyYXRpb24udHh0 IApiL2RvY3MvbWlzYy94bC1kaXNrLWNvbmZpZ3VyYXRpb24udHh0CmluZGV4IDI5ZjZkZGIuLmIz NDAyYmMgMTAwNjQ0Ci0tLSBhL2RvY3MvbWlzYy94bC1kaXNrLWNvbmZpZ3VyYXRpb24udHh0Cisr KyBiL2RvY3MvbWlzYy94bC1kaXNrLWNvbmZpZ3VyYXRpb24udHh0CkBAIC0yMzQsNiArMjM0LDYx IEBAIHdlcmUgaW50ZW50aW9uYWxseSBjcmVhdGVkIG5vbi1zcGFyc2UgdG8gYXZvaWQgCmZyYWdt ZW50YXRpb24gb2YgdGhlCiAgZmlsZS4KCgorPT09PT09PT09PT09PT09CitDT0xPIFBBUkFNRVRF UlMKKz09PT09PT09PT09PT09PQorCisKK2NvbG8KKy0tLS0KKworRW5hYmxlIENPTE8gSEEgZm9y IGRpc2suIEZvciBiZXR0ZXIgdW5kZXJzdGFuZGluZyBibG9jayByZXBsaWNhdGlvbiBvbgorUUVN VSwgcGxlYXNlIHJlZmVyIHRvOgoraHR0cDovL3dpa2kucWVtdS5vcmcvRmVhdHVyZXMvQmxvY2tS ZXBsaWNhdGlvbgorTm90ZSB0aGF0IHRoZSBDT0xPIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3Mgc2hv dWxkIGJlIGNvbnNpZGVyZWQgdW5zdGFibGUuCitUaGV5IG1heSBjaGFuZ2UgaW5jb21wYXRpYmx5 IGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiBYZW4uCisKKworY29sby1ob3N0CistLS0tLS0tLS0KKwor RGVzY3JpcHRpb246ICAgICAgICAgICBTZWNvbmRhcnkgaG9zdCdzIGFkZHJlc3MKK01hbmRhdG9y eTogICAgICAgICAgICAgWWVzIHdoZW4gQ09MTyBlbmFibGVkCisKKworY29sby1wb3J0CistLS0t LS0tLS0KKworRGVzY3JpcHRpb246ICAgICAgICAgICBTZWNvbmRhcnkgcG9ydAorICAgICAgICAg ICAgICAgICAgICAgICBXZSB3aWxsIHJ1biBhIG5iZCBzZXJ2ZXIgb24gc2Vjb25kYXJ5IGhvc3Qs CisgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0aGUgbmJkIHNlcnZlciB3aWxsIGxpc3RlbiB0 aGlzIHBvcnQuCitNYW5kYXRvcnk6ICAgICAgICAgICAgIFllcyB3aGVuIENPTE8gZW5hYmxlZAor CisKK2NvbG8tZXhwb3J0CistLS0tLS0tLS0tLQorCitEZXNjcmlwdGlvbjogICAgICAgICAgIFdl IHdpbGwgcnVuIGEgbmJkIHNlcnZlciBvbiBzZWNvbmRhcnkgaG9zdCwKKyAgICAgICAgICAgICAg ICAgICAgICAgZXhwb3J0bmFtZSBpcyB0aGUgbmJkIHNlcnZlcidzIGRpc2sgZXhwb3J0IG5hbWUu CitNYW5kYXRvcnk6ICAgICAgICAgICAgIFllcyB3aGVuIENPTE8gZW5hYmxlZAorCisKK2FjdGl2 ZS1kaXNrCistLS0tLS0tLS0tLQorCitEZXNjcmlwdGlvbjogICAgICAgICAgIFRoaXMgaXMgdXNl ZCBieSBzZWNvbmRhcnkuIFNlY29uZGFyeSBndWVzdCdzIHdyaXRlCisgICAgICAgICAgICAgICAg ICAgICAgIHdpbGwgYmUgYnVmZmVyZWQgaW4gdGhpcyBkaXNrLgorTWFuZGF0b3J5OiAgICAgICAg ICAgICBZZXMgd2hlbiBDT0xPIGVuYWJsZWQKKworCitoaWRkZW4tZGlzaworLS0tLS0tLS0tLS0K KworRGVzY3JpcHRpb246ICAgICAgICAgICBUaGlzIGlzIHVzZWQgYnkgc2Vjb25kYXJ5LiBJdCBi dWZmZXJzIHRoZSBvcmlnaW5hbAorICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50IHRoYXQg aXMgbW9kaWZpZWQgYnkgdGhlIHByaW1hcnkgVk0uCitNYW5kYXRvcnk6ICAgICAgICAgICAgIFll cyB3aGVuIENPTE8gZW5hYmxlZAorCisKICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogIERFUFJFQ0FURUQgUEFSQU1FVEVSUywgUFJFRklYRVMgQU5EIFNZTlRB WEVTCiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmMgYi90b29scy9saWJ4bC9saWJ4bC5jCmluZGV4IDM0 OWEzYzYuLjYzZmJlMTYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmMKKysrIGIvdG9v bHMvbGlieGwvbGlieGwuYwpAQCAtMjMwNiw2ICsyMzA2LDggQEAgaW50IGxpYnhsX19kZXZpY2Vf ZGlza19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIApsaWJ4bF9kZXZpY2VfZGlzayAqZGlzaykK ICAgICAgaW50IHJjOwoKICAgICAgbGlieGxfZGVmYm9vbF9zZXRkZWZhdWx0KCZkaXNrLT5kaXNj YXJkX2VuYWJsZSwgISFkaXNrLT5yZWFkd3JpdGUpOworICAgIGxpYnhsX2RlZmJvb2xfc2V0ZGVm YXVsdCgmZGlzay0+Y29sb19lbmFibGUsIGZhbHNlKTsKKyAgICBsaWJ4bF9kZWZib29sX3NldGRl ZmF1bHQoJmRpc2stPmNvbG9fcmVzdG9yZV9lbmFibGUsIGZhbHNlKTsKCiAgICAgIHJjID0gbGli eGxfX3Jlc29sdmVfZG9taWQoZ2MsIGRpc2stPmJhY2tlbmRfZG9tbmFtZSwgCiZkaXNrLT5iYWNr ZW5kX2RvbWlkKTsKICAgICAgaWYgKHJjIDwgMCkgcmV0dXJuIHJjOwpAQCAtMjUwNCw2ICsyNTA2 LDE4IEBAIHN0YXRpYyB2b2lkIGRldmljZV9kaXNrX2FkZChsaWJ4bF9fZWdjICplZ2MsIAp1aW50 MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgZmxleGFycmF5X2FwcGVuZChiYWNrLCAicGFy YW1zIik7CiAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgR0NTUFJJTlRG KCIlczolcyIsCiAKbGlieGxfX2RldmljZV9kaXNrX3N0cmluZ19vZl9mb3JtYXQoZGlzay0+Zm9y bWF0KSwgZGlzay0+cGRldl9wYXRoKSk7CisgICAgICAgICAgICAgICAgaWYgKGxpYnhsX2RlZmJv b2xfdmFsKGRpc2stPmNvbG9fZW5hYmxlKSkgeworICAgICAgICAgICAgICAgICAgICBmbGV4YXJy YXlfYXBwZW5kKGJhY2ssICJjb2xvLWhvc3QiKTsKKyAgICAgICAgICAgICAgICAgICAgZmxleGFy cmF5X2FwcGVuZChiYWNrLCBsaWJ4bF9fc3ByaW50ZihnYywgIiVzIiwgCmRpc2stPmNvbG9faG9z dCkpOworICAgICAgICAgICAgICAgICAgICBmbGV4YXJyYXlfYXBwZW5kKGJhY2ssICJjb2xvLXBv cnQiKTsKKyAgICAgICAgICAgICAgICAgICAgZmxleGFycmF5X2FwcGVuZChiYWNrLCBsaWJ4bF9f c3ByaW50ZihnYywgIiVkIiwgCmRpc2stPmNvbG9fcG9ydCkpOworICAgICAgICAgICAgICAgICAg ICBmbGV4YXJyYXlfYXBwZW5kKGJhY2ssICJjb2xvLWV4cG9ydCIpOworICAgICAgICAgICAgICAg ICAgICBmbGV4YXJyYXlfYXBwZW5kKGJhY2ssIGxpYnhsX19zcHJpbnRmKGdjLCAiJXMiLCAKZGlz ay0+Y29sb19leHBvcnQpKTsKKyAgICAgICAgICAgICAgICAgICAgZmxleGFycmF5X2FwcGVuZChi YWNrLCAiYWN0aXZlLWRpc2siKTsKKyAgICAgICAgICAgICAgICAgICAgZmxleGFycmF5X2FwcGVu ZChiYWNrLCBsaWJ4bF9fc3ByaW50ZihnYywgIiVzIiwgCmRpc2stPmFjdGl2ZV9kaXNrKSk7Cisg ICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgImhpZGRlbi1kaXNrIik7 CisgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgbGlieGxfX3Nwcmlu dGYoZ2MsICIlcyIsIApkaXNrLT5oaWRkZW5fZGlzaykpOworICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgYXNzZXJ0KGRldmljZS0+YmFja2VuZF9raW5kID09IExJQlhMX19ERVZJ Q0VfS0lORF9RRElTSyk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGRl ZmF1bHQ6CkBAIC0yNjE5LDcgKzI2MzMsMTIgQEAgc3RhdGljIGludCAKbGlieGxfX2RldmljZV9k aXNrX2Zyb21feHNfYmUobGlieGxfX2djICpnYywKICAgICAgICAgIGdvdG8gY2xlYW51cDsKICAg ICAgfQoKLSAgICAvKiAicGFyYW1zIiBtYXkgbm90IGJlIHByZXNlbnQ7IGJ1dCBldmVyeXRoaW5n IGVsc2UgbXVzdCBiZS4gKi8KKyAgICAvKgorICAgICAqICJwYXJhbXMiIG1heSBub3QgYmUgcHJl c2VudDsgYnV0IGV2ZXJ5dGhpbmcgZWxzZSBtdXN0IGJlLgorICAgICAqIGNvbG8gcmVsZWF0ZWQg ZW50cmllcyhjb2xvLWhvc3QsIGNvbG8tcG9ydCwgY29sby1leHBvcnQsCisgICAgICogYWN0aXZl LWRpc2sgYW5kIGhpZGRlbi1kaXNrKSBhcmUgcHJlc2VudCBvbmx5IGlmIGNvbG8gaXMKKyAgICAg KiBlbmFibGVkLgorICAgICAqLwogICAgICB0bXAgPSB4c19yZWFkKGN0eC0+eHNoLCBYQlRfTlVM TCwKICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVzL3BhcmFtcyIsIGJlX3BhdGgpLCAm bGVuKTsKICAgICAgaWYgKHRtcCAmJiBzdHJjaHIodG1wLCAnOicpKSB7CkBAIC0yNjI5LDYgKzI2 NDgsMzYgQEAgc3RhdGljIGludCAKbGlieGxfX2RldmljZV9kaXNrX2Zyb21feHNfYmUobGlieGxf X2djICpnYywKICAgICAgICAgIGRpc2stPnBkZXZfcGF0aCA9IHRtcDsKICAgICAgfQoKKyAgICB0 bXAgPSB4c19yZWFkKGN0eC0+eHNoLCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAgIEdDU1BS SU5URigiJXMvY29sby1ob3N0IiwgYmVfcGF0aCksICZsZW4pOworICAgIGlmICh0bXApIHsKKyAg ICAgICAgbGlieGxfZGVmYm9vbF9zZXQoJmRpc2stPmNvbG9fZW5hYmxlLCB0cnVlKTsKKyAgICAg ICAgZGlzay0+Y29sb19ob3N0ID0gdG1wOworCisgICAgICAgIHRtcCA9IHhzX3JlYWQoY3R4LT54 c2gsIFhCVF9OVUxMLAorICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvY29sby1w b3J0IiwgYmVfcGF0aCksICZsZW4pOworICAgICAgICBpZiAoIXRtcCkgeworICAgICAgICAgICAg TE9HKEVSUk9SLCAiTWlzc2luZyB4ZW5zdG9yZSBub2RlICVzL2NvbG8tcG9ydCIsIGJlX3BhdGgp OworICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICB9CisgICAgICAgIGRpc2stPmNv bG9fcG9ydCA9IGF0b2kodG1wKTsKKworI2RlZmluZSBYU19SRUFEX0NPTE8ocGFyYW0sIGl0ZW0p IGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB0bXAgPSB4 c19yZWFkKGN0eC0+eHNoLCBYQlRfTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvIiNwYXJhbSIiLCBiZV9wYXRo KSwgJmxlbik7ICAgICAgICAgXAorICAgICAgICBpZiAoIXRtcCkgeyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgTE9HKEVS Uk9SLCAiTWlzc2luZyB4ZW5zdG9yZSBub2RlICVzLyIjcGFyYW0iIiwgYmVfcGF0aCk7ICAgXAor ICAgICAgICAgICAgZ290byBjbGVhbnVwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBkaXNrLT5pdGVtID0g dG1wOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfSB3 aGlsZSAoMCkKKyAgICAgICAgWFNfUkVBRF9DT0xPKGNvbG8tZXhwb3J0LCBjb2xvX2V4cG9ydCk7 CisgICAgICAgIFhTX1JFQURfQ09MTyhhY3RpdmUtZGlzaywgYWN0aXZlX2Rpc2spOworICAgICAg ICBYU19SRUFEX0NPTE8oaGlkZGVuLWRpc2ssIGhpZGRlbl9kaXNrKTsKKyN1bmRlZiBYU19SRUFE X0NPTE8KKyAgICB9IGVsc2UgeworICAgICAgICBsaWJ4bF9kZWZib29sX3NldCgmZGlzay0+Y29s b19lbmFibGUsIGZhbHNlKTsKKyAgICB9CgogICAgICB0bXAgPSBsaWJ4bF9feHNfcmVhZChnYywg WEJUX05VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvdHlwZSIs IGJlX3BhdGgpKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jIGIvdG9v bHMvbGlieGwvbGlieGxfY3JlYXRlLmMKaW5kZXggYmU2MDRlNS4uZTJlYzI1YyAxMDA2NDQKLS0t IGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfY3Jl YXRlLmMKQEAgLTE4NzYsMTIgKzE4NzYsMzAgQEAgc3RhdGljIHZvaWQgZG9tYWluX2NyZWF0ZV9j YihsaWJ4bF9fZWdjICplZ2MsCgogICAgICBsaWJ4bF9fYW9fY29tcGxldGUoZWdjLCBhbywgcmMp OwogIH0KLQorCisKK3N0YXRpYyB2b2lkIHNldF9kaXNrX2NvbG9fcmVzdG9yZShsaWJ4bF9kb21h aW5fY29uZmlnICpkX2NvbmZpZykKK3sKKyAgICBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7IGkg PCBkX2NvbmZpZy0+bnVtX2Rpc2tzOyBpKyspCisgICAgICAgIGxpYnhsX2RlZmJvb2xfc2V0KCZk X2NvbmZpZy0+ZGlza3NbaV0uY29sb19yZXN0b3JlX2VuYWJsZSwgdHJ1ZSk7Cit9CisKK3N0YXRp YyB2b2lkIHVuc2V0X2Rpc2tfY29sb19yZXN0b3JlKGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29u ZmlnKQoreworICAgIGludCBpOworCisgICAgZm9yIChpID0gMDsgaSA8IGRfY29uZmlnLT5udW1f ZGlza3M7IGkrKykKKyAgICAgICAgbGlieGxfZGVmYm9vbF9zZXQoJmRfY29uZmlnLT5kaXNrc1tp XS5jb2xvX3Jlc3RvcmVfZW5hYmxlLCBmYWxzZSk7Cit9CisKICBpbnQgbGlieGxfZG9tYWluX2Ny ZWF0ZV9uZXcobGlieGxfY3R4ICpjdHgsIGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqZG9taWQsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3BfaG93ICphb19ob3csCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jcHJvZ3Jlc3NfaG93IAoq YW9wX2NvbnNvbGVfaG93KQogIHsKKyAgICB1bnNldF9kaXNrX2NvbG9fcmVzdG9yZShkX2NvbmZp Zyk7CiAgICAgIHJldHVybiBkb19kb21haW5fY3JlYXRlKGN0eCwgZF9jb25maWcsIGRvbWlkLCAt MSwgLTEsIE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFvX2hvdywgYW9wX2Nv bnNvbGVfaG93KTsKICB9CkBAIC0xODkzLDYgKzE5MTEsMTIgQEAgaW50IGxpYnhsX2RvbWFpbl9j cmVhdGVfcmVzdG9yZShsaWJ4bF9jdHggKmN0eCwgCmxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29u ZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfYXN5bmNv cF9ob3cgKmFvX2hvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxp YnhsX2FzeW5jcHJvZ3Jlc3NfaG93IAoqYW9wX2NvbnNvbGVfaG93KQogIHsKKyAgICBpZiAocGFy YW1zLT5jaGVja3BvaW50ZWRfc3RyZWFtID09IExJQlhMX0NIRUNLUE9JTlRFRF9TVFJFQU1fQ09M TykgeworICAgICAgICBzZXRfZGlza19jb2xvX3Jlc3RvcmUoZF9jb25maWcpOworICAgIH0gZWxz ZSB7CisgICAgICAgIHVuc2V0X2Rpc2tfY29sb19yZXN0b3JlKGRfY29uZmlnKTsKKyAgICB9CisK ICAgICAgcmV0dXJuIGRvX2RvbWFpbl9jcmVhdGUoY3R4LCBkX2NvbmZpZywgZG9taWQsIHJlc3Rv cmVfZmQsIApzZW5kX2JhY2tfZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFt cywgYW9faG93LCBhb3BfY29uc29sZV9ob3cpOwogIH0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhs L2xpYnhsX2RldmljZS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMKaW5kZXggNGNlZDli Ni4uNmE0MTFjNiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMKKysrIGIv dG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMKQEAgLTE5Niw2ICsxOTYsOSBAQCBzdGF0aWMgaW50 IGRpc2tfdHJ5X2JhY2tlbmQoZGlza190cnlfYmFja2VuZF9hcmdzICphLAogICAgICAgICAgICAg IGdvdG8gYmFkX2Zvcm1hdDsKICAgICAgICAgIH0KCisgICAgICAgIGlmIChsaWJ4bF9kZWZib29s X3ZhbChhLT5kaXNrLT5jb2xvX2VuYWJsZSkpCisgICAgICAgICAgICBnb3RvIGJhZF9jb2xvOwor CiAgICAgICAgICBpZiAoYS0+ZGlzay0+YmFja2VuZF9kb21pZCAhPSBMSUJYTF9UT09MU1RBQ0tf RE9NSUQpIHsKICAgICAgICAgICAgICBMT0coREVCVUcsICJEaXNrIHZkZXY9JXMsIGlzIHVzaW5n IGEgc3RvcmFnZSBkcml2ZXIgZG9tYWluLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAic2tp cHBpbmcgcGh5c2ljYWwgZGV2aWNlIGNoZWNrIiwgYS0+ZGlzay0+dmRldik7CkBAIC0yMTgsNiAr MjIxLDkgQEAgc3RhdGljIGludCBkaXNrX3RyeV9iYWNrZW5kKGRpc2tfdHJ5X2JhY2tlbmRfYXJn cyAqYSwKICAgICAgY2FzZSBMSUJYTF9ESVNLX0JBQ0tFTkRfVEFQOgogICAgICAgICAgaWYgKGEt PmRpc2stPnNjcmlwdCkgZ290byBiYWRfc2NyaXB0OwoKKyAgICAgICAgaWYgKGxpYnhsX2RlZmJv b2xfdmFsKGEtPmRpc2stPmNvbG9fZW5hYmxlKSkKKyAgICAgICAgICAgIGdvdG8gYmFkX2NvbG87 CisKICAgICAgICAgIGlmIChhLT5kaXNrLT5pc19jZHJvbSkgewogICAgICAgICAgICAgIExPRyhE RUJVRywgIkRpc2sgdmRldj0lcywgYmFja2VuZCB0YXAgdW5zdWl0YWJsZSBmb3IgY2Ryb21zIiwK ICAgICAgICAgICAgICAgICAgICAgICAgIGEtPmRpc2stPnZkZXYpOwpAQCAtMjU2LDYgKzI2Miwx MSBAQCBzdGF0aWMgaW50IGRpc2tfdHJ5X2JhY2tlbmQoZGlza190cnlfYmFja2VuZF9hcmdzICph LAogICAgICBMT0coREVCVUcsICJEaXNrIHZkZXY9JXMsIGJhY2tlbmQgJXMgbm90IGNvbXBhdGli bGUgd2l0aCBzY3JpcHQ9Li4uIiwKICAgICAgICAgIGEtPmRpc2stPnZkZXYsIGxpYnhsX2Rpc2tf YmFja2VuZF90b19zdHJpbmcoYmFja2VuZCkpOwogICAgICByZXR1cm4gMDsKKworIGJhZF9jb2xv OgorICAgIExPRyhERUJVRywgIkRpc2sgdmRldj0lcywgYmFja2VuZCAlcyBub3QgY29tcGF0aWJs ZSB3aXRoIGNvbG8iLAorICAgICAgICBhLT5kaXNrLT52ZGV2LCBsaWJ4bF9kaXNrX2JhY2tlbmRf dG9fc3RyaW5nKGJhY2tlbmQpKTsKKyAgICByZXR1cm4gMDsKICB9CgogIGludCBsaWJ4bF9fZGV2 aWNlX2Rpc2tfc2V0X2JhY2tlbmQobGlieGxfX2djICpnYywgbGlieGxfZGV2aWNlX2Rpc2sgCipk aXNrKSB7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kbS5jIGIvdG9vbHMvbGlieGwv bGlieGxfZG0uYwppbmRleCAxZDFiMjViLi40YzNkZmY4IDEwMDY0NAotLS0gYS90b29scy9saWJ4 bC9saWJ4bF9kbS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKQEAgLTc1NCw2ICs3NTQs OCBAQCBzdGF0aWMgaW50IGxpYnhsX19kbV9ydW5hc19oZWxwZXIobGlieGxfX2djICpnYywgCmNv bnN0IGNoYXIgKnVzZXJuYW1lKQogIC8qIGNvbG8gbW9kZSAqLwogIGVudW0gewogICAgICBMSUJY TF9fQ09MT19OT05FID0gMCwKKyAgICBMSUJYTF9fQ09MT19QUklNQVJZLAorICAgIExJQlhMX19D T0xPX1NFQ09OREFSWSwKICB9OwoKICBzdGF0aWMgY2hhciAqcWVtdV9kaXNrX3Njc2lfZHJpdmVf c3RyaW5nKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgCipwZGV2X3BhdGgsCkBAIC03NjIsNiAr NzY0LDkgQEAgc3RhdGljIGNoYXIgKnFlbXVfZGlza19zY3NpX2RyaXZlX3N0cmluZyhsaWJ4bF9f Z2MgCipnYywgY29uc3QgY2hhciAqcGRldl9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IGNvbG9fbW9kZSkKICB7CiAgICAgIGNoYXIgKmRyaXZlID0g TlVMTDsKKyAgICBjb25zdCBjaGFyICpleHBvcnRuYW1lID0gZGlzay0+Y29sb19leHBvcnQ7Cisg ICAgY29uc3QgY2hhciAqYWN0aXZlX2Rpc2sgPSBkaXNrLT5hY3RpdmVfZGlzazsKKyAgICBjb25z dCBjaGFyICpoaWRkZW5fZGlzayA9IGRpc2stPmhpZGRlbl9kaXNrOwoKICAgICAgc3dpdGNoIChj b2xvX21vZGUpIHsKICAgICAgY2FzZSBMSUJYTF9fQ09MT19OT05FOgpAQCAtNzY5LDYgKzc3NCw0 NSBAQCBzdGF0aWMgY2hhciAqcWVtdV9kaXNrX3Njc2lfZHJpdmVfc3RyaW5nKGxpYnhsX19nYyAK KmdjLCBjb25zdCBjaGFyICpwZGV2X3BhdGgsCiAgICAgICAgICAgICAgKGdjLCAKImZpbGU9JXMs aWY9c2NzaSxidXM9MCx1bml0PSVkLGZvcm1hdD0lcyxjYWNoZT13cml0ZWJhY2siLAogICAgICAg ICAgICAgICBwZGV2X3BhdGgsIHVuaXQsIGZvcm1hdCk7CiAgICAgICAgICBicmVhazsKKyAgICBj YXNlIExJQlhMX19DT0xPX1BSSU1BUlk6CisgICAgICAgIC8qCisgICAgICAgICAqIHByaW1hcnk6 CisgICAgICAgICAqICAtZGlydmUgaWY9c2NzaSxidXM9MCx1bml0PXgsY2FjaGU9d3JpdGViYWNr LGRyaXZlcj1xdW9ydW0sXAorICAgICAgICAgKiAgaWQ9ZXhwb3J0bmFtZSxcCisgICAgICAgICAq ICBjaGlsZHJlbi4wLmZpbGUuZmlsZW5hbWU9cGRldl9wYXRoLFwKKyAgICAgICAgICogIGNoaWxk cmVuLjAuZHJpdmVyPWZvcm1hdCxcCisgICAgICAgICAqICByZWFkLXBhdHRlcm49ZmlmbyxcCisg ICAgICAgICAqICB2b3RlLXRocmVzaG9sZD0xCisgICAgICAgICAqLworICAgICAgICBkcml2ZSA9 IEdDU1BSSU5URigKKyAgICAgICAgICAgICJpZj1zY3NpLGJ1cz0wLHVuaXQ9JWQsY2FjaGU9d3Jp dGViYWNrLGRyaXZlcj1xdW9ydW0sIgorICAgICAgICAgICAgImlkPSVzLCIKKyAgICAgICAgICAg ICJjaGlsZHJlbi4wLmZpbGUuZmlsZW5hbWU9JXMsIgorICAgICAgICAgICAgImNoaWxkcmVuLjAu ZHJpdmVyPSVzLCIKKyAgICAgICAgICAgICJyZWFkLXBhdHRlcm49ZmlmbywiCisgICAgICAgICAg ICAidm90ZS10aHJlc2hvbGQ9MSIsCisgICAgICAgICAgICB1bml0LCBleHBvcnRuYW1lLCBwZGV2 X3BhdGgsIGZvcm1hdCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTElCWExfX0NPTE9fU0VD T05EQVJZOgorICAgICAgICAvKgorICAgICAgICAgKiBzZWNvbmRhcnk6CisgICAgICAgICAqICAt ZHJpdmUgCmlmPXNjc2ksYnVzPTAsdW5pdD14LGNhY2hlPXdyaXRlYmFjayxkcml2ZXI9cmVwbGlj YXRpb24sXAorICAgICAgICAgKiAgbW9kZT1zZWNvbmRhcnksXAorICAgICAgICAgKiAgZmlsZS5k cml2ZXI9cWNvdzIsXAorICAgICAgICAgKiAgZmlsZS5maWxlLmZpbGVuYW1lPWFjdGl2ZV9kaXNr LFwKKyAgICAgICAgICogIGZpbGUuYmFja2luZy5kcml2ZXI9cWNvdzIsXAorICAgICAgICAgKiAg ZmlsZS5iYWNraW5nLmZpbGUuZmlsZW5hbWU9aGlkZGVuX2Rpc2ssXAorICAgICAgICAgKiAgZmls ZS5iYWNraW5nLmJhY2tpbmc9ZXhwb3J0bmFtZSwKKyAgICAgICAgICovCisgICAgICAgIGRyaXZl ID0gR0NTUFJJTlRGKAorICAgICAgICAgICAgImlmPXNjc2ksYnVzPTAsdW5pdD0lZCxjYWNoZT13 cml0ZWJhY2ssZHJpdmVyPXJlcGxpY2F0aW9uLCIKKyAgICAgICAgICAgICJtb2RlPXNlY29uZGFy eSwiCisgICAgICAgICAgICAiZmlsZS5kcml2ZXI9cWNvdzIsIgorICAgICAgICAgICAgImZpbGUu ZmlsZS5maWxlbmFtZT0lcywiCisgICAgICAgICAgICAiZmlsZS5iYWNraW5nLmRyaXZlcj1xY293 MiwiCisgICAgICAgICAgICAiZmlsZS5iYWNraW5nLmZpbGUuZmlsZW5hbWU9JXMsIgorICAgICAg ICAgICAgImZpbGUuYmFja2luZy5iYWNraW5nPSVzIiwKKyAgICAgICAgICAgIHVuaXQsIGFjdGl2 ZV9kaXNrLCBoaWRkZW5fZGlzaywgZXhwb3J0bmFtZSk7CiAgICAgIGRlZmF1bHQ6CiAgICAgICAg ICAgYWJvcnQoKTsKICAgICAgfQpAQCAtNzgyLDYgKzgyNiw5IEBAIHN0YXRpYyBjaGFyICpxZW11 X2Rpc2tfaWRlX2RyaXZlX3N0cmluZyhsaWJ4bF9fZ2MgCipnYywgY29uc3QgY2hhciAqcGRldl9w YXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29sb19t b2RlKQogIHsKICAgICAgY2hhciAqZHJpdmUgPSBOVUxMOworICAgIGNvbnN0IGNoYXIgKmV4cG9y dG5hbWUgPSBkaXNrLT5jb2xvX2V4cG9ydDsKKyAgICBjb25zdCBjaGFyICphY3RpdmVfZGlzayA9 IGRpc2stPmFjdGl2ZV9kaXNrOworICAgIGNvbnN0IGNoYXIgKmhpZGRlbl9kaXNrID0gZGlzay0+ aGlkZGVuX2Rpc2s7CgogICAgICBzd2l0Y2ggKGNvbG9fbW9kZSkgewogICAgICBjYXNlIExJQlhM X19DT0xPX05PTkU6CkBAIC03ODksNiArODM2LDQ2IEBAIHN0YXRpYyBjaGFyICpxZW11X2Rpc2tf aWRlX2RyaXZlX3N0cmluZyhsaWJ4bF9fZ2MgCipnYywgY29uc3QgY2hhciAqcGRldl9wYXRoLAog CigiZmlsZT0lcyxpZj1pZGUsaW5kZXg9JWQsbWVkaWE9ZGlzayxmb3JtYXQ9JXMsY2FjaGU9d3Jp dGViYWNrIiwKICAgICAgICAgICAgICAgcGRldl9wYXRoLCB1bml0LCBmb3JtYXQpOwogICAgICAg ICAgYnJlYWs7CisgICAgY2FzZSBMSUJYTF9fQ09MT19QUklNQVJZOgorICAgICAgICAvKgorICAg ICAgICAgKiBwcmltYXJ5OgorICAgICAgICAgKiAgLWRpcnZlIAppZj1pZGUsaW5kZXg9eCxtZWRp YT1kaXNrLGNhY2hlPXdyaXRlYmFjayxkcml2ZXI9cXVvcnVtLFwKKyAgICAgICAgICogIGlkPWV4 cG9ydG5hbWUsXAorICAgICAgICAgKiAgY2hpbGRyZW4uMC5maWxlLmZpbGVuYW1lPXBkZXZfcGF0 aCxcCisgICAgICAgICAqICBjaGlsZHJlbi4wLmRyaXZlcj1mb3JtYXQsXAorICAgICAgICAgKiAg cmVhZC1wYXR0ZXJuPWZpZm8sXAorICAgICAgICAgKiAgdm90ZS10aHJlc2hvbGQ9MQorICAgICAg ICAgKi8KKyAgICAgICAgZHJpdmUgPSBHQ1NQUklOVEYoCisgICAgICAgICAgICAiaWY9aWRlLGlu ZGV4PSVkLG1lZGlhPWRpc2ssY2FjaGU9d3JpdGViYWNrLGRyaXZlcj1xdW9ydW0sIgorICAgICAg ICAgICAgImlkPSVzLCIKKyAgICAgICAgICAgICJjaGlsZHJlbi4wLmZpbGUuZmlsZW5hbWU9JXMs IgorICAgICAgICAgICAgImNoaWxkcmVuLjAuZHJpdmVyPSVzLCIKKyAgICAgICAgICAgICJyZWFk LXBhdHRlcm49ZmlmbywiCisgICAgICAgICAgICAidm90ZS10aHJlc2hvbGQ9MSIsCisgICAgICAg ICAgICAgdW5pdCwgZXhwb3J0bmFtZSwgcGRldl9wYXRoLCBmb3JtYXQpOworICAgICAgICBicmVh azsKKyAgICBjYXNlIExJQlhMX19DT0xPX1NFQ09OREFSWToKKyAgICAgICAgLyoKKyAgICAgICAg ICogc2Vjb25kYXJ5OgorICAgICAgICAgKiAgLWRyaXZlIAppZj1pZGUsaW5kZXg9eCxtZWRpYT1k aXNrLGNhY2hlPXdyaXRlYmFjayxkcml2ZXI9cmVwbGljYXRpb24sXAorICAgICAgICAgKiAgbW9k ZT1zZWNvbmRhcnksXAorICAgICAgICAgKiAgZmlsZS5kcml2ZXI9cWNvdzIsXAorICAgICAgICAg KiAgZmlsZS5maWxlLmZpbGVuYW1lPWFjdGl2ZV9kaXNrLFwKKyAgICAgICAgICogIGZpbGUuYmFj a2luZy5kcml2ZXI9cWNvdzIsXAorICAgICAgICAgKiAgZmlsZS5iYWNraW5nLmZpbGUuZmlsZW5h bWU9aGlkZGVuX2Rpc2ssXAorICAgICAgICAgKiAgZmlsZS5iYWNraW5nLmJhY2tpbmc9ZXhwb3J0 bmFtZSwKKyAgICAgICAgICovCisgICAgICAgIGRyaXZlID0gR0NTUFJJTlRGKAorIAoiaWY9aWRl LGluZGV4PSVkLG1lZGlhPWRpc2ssY2FjaGU9d3JpdGViYWNrLGRyaXZlcj1yZXBsaWNhdGlvbiwi CisgICAgICAgICAgICAibW9kZT1zZWNvbmRhcnksIgorICAgICAgICAgICAgImZpbGUuZHJpdmVy PXFjb3cyLCIKKyAgICAgICAgICAgICJmaWxlLmZpbGUuZmlsZW5hbWU9JXMsIgorICAgICAgICAg ICAgImZpbGUuYmFja2luZy5kcml2ZXI9cWNvdzIsIgorICAgICAgICAgICAgImZpbGUuYmFja2lu Zy5maWxlLmZpbGVuYW1lPSVzLCIKKyAgICAgICAgICAgICJmaWxlLmJhY2tpbmcuYmFja2luZz0l cyIsCisgICAgICAgICAgICB1bml0LCBhY3RpdmVfZGlzaywgaGlkZGVuX2Rpc2ssIGV4cG9ydG5h bWUpOworICAgICAgICBicmVhazsKICAgICAgZGVmYXVsdDoKICAgICAgICAgICBhYm9ydCgpOwog ICAgICB9CkBAIC0xMjYxLDggKzEzNDgsMjQgQEAgc3RhdGljIGludCAKbGlieGxfX2J1aWxkX2Rl dmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgKiBo ZFthLWRdIGFuZCBpZ25vcmUgdGhlIHJlc3QuCiAgICAgICAgICAgICAgICAgICAqLwoKLSAgICAg ICAgICAgICAgICBjb2xvX21vZGUgPSBMSUJYTF9fQ09MT19OT05FOworICAgICAgICAgICAgICAg IGlmIChsaWJ4bF9kZWZib29sX3ZhbChkaXNrc1tpXS5jb2xvX2VuYWJsZSkpIHsKKyAgICAgICAg ICAgICAgICAgICAgaWYgKGxpYnhsX2RlZmJvb2xfdmFsKGRpc2tzW2ldLmNvbG9fcmVzdG9yZV9l bmFibGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29sb19tb2RlID0gTElCWExfX0NPTE9f U0VDT05EQVJZOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg ICAgICBjb2xvX21vZGUgPSBMSUJYTF9fQ09MT19QUklNQVJZOworICAgICAgICAgICAgICAgIH0g ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNvbG9fbW9kZSA9IExJQlhMX19DT0xPX05PTkU7 CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgIGlmIChzdHJuY21wKGRpc2tz W2ldLnZkZXYsICJzZCIsIDIpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbG9f bW9kZSA9PSBMSUJYTF9fQ09MT19TRUNPTkRBUlkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg IGRyaXZlID0gbGlieGxfX3NwcmludGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2Ms ICJpZj1ub25lLGRyaXZlcj0lcyxmaWxlPSVzLGlkPSVzIiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZm9ybWF0LCBwZGV2X3BhdGgsIGRpc2tzW2ldLmNvbG9fZXhwb3J0KTsKKworICAg ICAgICAgICAgICAgICAgICAgICAgZmxleGFycmF5X2FwcGVuZChkbV9hcmdzLCAiLWRyaXZlIik7 CisgICAgICAgICAgICAgICAgICAgICAgICBmbGV4YXJyYXlfYXBwZW5kKGRtX2FyZ3MsIGRyaXZl KTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgZHJpdmUgPSBx ZW11X2Rpc2tfc2NzaV9kcml2ZV9zdHJpbmcoZ2MsIHBkZXZfcGF0aCwgCmRpc2ssCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmZGlza3NbaV0sCkBAIC0xMjg5LDYgKzEzOTIsMTQgQEAgc3RhdGljIGludCAKbGlieGxfX2J1 aWxkX2RldmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAg ICAgICAgICAgIExPRyhFUlJPUiwgInFlbXUteGVuIGRvZXNuJ3Qgc3VwcG9ydCByZWFkLW9ubHkg CklERSBkaXNrIGRyaXZlcnMiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVJS T1JfSU5WQUw7CiAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlm IChjb2xvX21vZGUgPT0gTElCWExfX0NPTE9fU0VDT05EQVJZKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICBkcml2ZSA9IGxpYnhsX19zcHJpbnRmCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGdjLCAiaWY9bm9uZSxkcml2ZXI9JXMsZmlsZT0lcyxpZD0lcyIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvcm1hdCwgcGRldl9wYXRoLCBkaXNrc1tpXS5jb2xvX2V4cG9ydCk7 CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV9hcHBlbmQoZG1fYXJncywgIi1k cml2ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgZmxleGFycmF5X2FwcGVuZChkbV9hcmdz LCBkcml2ZSk7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGRy aXZlID0gcWVtdV9kaXNrX2lkZV9kcml2ZV9zdHJpbmcoZ2MsIHBkZXZfcGF0aCwgCmRpc2ssCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv cm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmRpc2tzW2ldLApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRs IGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCmluZGV4IDk1ZWZkODIuLjgzMzUyOTEgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAorKysgYi90b29scy9saWJ4bC9s aWJ4bF90eXBlcy5pZGwKQEAgLTU3Niw2ICs1NzYsMTUgQEAgbGlieGxfZGV2aWNlX2Rpc2sgPSBT dHJ1Y3QoImRldmljZV9kaXNrIiwgWwogICAgICAoImlzX2Nkcm9tIiwgaW50ZWdlciksCiAgICAg ICgiZGlyZWN0X2lvX3NhZmUiLCBib29sKSwKICAgICAgKCJkaXNjYXJkX2VuYWJsZSIsIGxpYnhs X2RlZmJvb2wpLAorICAgICMgTm90ZSB0aGF0IHRoZSBDT0xPIGNvbmZpZ3VyYXRpb24gc2V0dGlu Z3Mgc2hvdWxkIGJlIGNvbnNpZGVyZWQgCnVuc3RhYmxlLgorICAgICMgVGhleSBtYXkgY2hhbmdl IGluY29tcGF0aWJseSBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgWGVuLgorICAgICgiY29sb19lbmFi bGUiLCBsaWJ4bF9kZWZib29sKSwKKyAgICAoImNvbG9fcmVzdG9yZV9lbmFibGUiLCBsaWJ4bF9k ZWZib29sKSwKKyAgICAoImNvbG9faG9zdCIsIHN0cmluZyksCisgICAgKCJjb2xvX3BvcnQiLCBp bnRlZ2VyKSwKKyAgICAoImNvbG9fZXhwb3J0Iiwgc3RyaW5nKSwKKyAgICAoImFjdGl2ZV9kaXNr Iiwgc3RyaW5nKSwKKyAgICAoImhpZGRlbl9kaXNrIiwgc3RyaW5nKQogICAgICBdKQoKICBsaWJ4 bF9kZXZpY2VfbmljID0gU3RydWN0KCJkZXZpY2VfbmljIiwgWwpkaWZmIC0tZ2l0IGEvdG9vbHMv bGlieGwvbGlieGx1X2Rpc2tfbC5sIGIvdG9vbHMvbGlieGwvbGlieGx1X2Rpc2tfbC5sCmluZGV4 IDFhNWRlYjUuLjViNmRiMjIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsdV9kaXNrX2wu bAorKysgYi90b29scy9saWJ4bC9saWJ4bHVfZGlza19sLmwKQEAgLTExMyw2ICsxMTMsMTYgQEAg c3RhdGljIHZvaWQgc2V0YmFja2VuZHR5cGUoRGlza1BhcnNlQ29udGV4dCAqZHBjLCAKY29uc3Qg Y2hhciAqc3RyKSB7CiAgICAgIGVsc2UgeGx1X19kaXNrX2VycihkcGMsc3RyLCJ1bmtub3duIHZh bHVlIGZvciBiYWNrZW5kdHlwZSIpOwogIH0KCisvKiBTZXRzIC0+Y29sby1wb3J0IGZyb20gdGhl IHN0cmluZy4gIENPTE8gbmVlZCB0aGlzLiAqLworc3RhdGljIHZvaWQgc2V0Y29sb3BvcnQoRGlz a1BhcnNlQ29udGV4dCAqZHBjLCBjb25zdCBjaGFyICpzdHIpIHsKKyAgICBpbnQgcG9ydCA9IGF0 b2koc3RyKTsKKyAgICBpZiAocG9ydCkgeworICAgICAgIGRwYy0+ZGlzay0+Y29sb19wb3J0ID0g cG9ydDsKKyAgICB9IGVsc2UgeworCXhsdV9fZGlza19lcnIoZHBjLHN0ciwidW5rbm93biB2YWx1 ZSBmb3IgY29sb19wb3J0Iik7CisgICAgfQorfQorCiAgI2RlZmluZSBERVBSRUNBVEUodXNld2hh dGluc3RlYWQpIC8qIG5vdCBjdXJyZW50bHkgcmVwb3J0ZWQgKi8KCiAgLyogSGFuZGxlcyBhIHZk ZXYgcG9zaXRpb25hbCBwYXJhbWV0ZXIgd2hpY2ggaW5jbHVkZXMgYSBkZXZ0eXBlLiAqLwpAQCAt MTc2LDYgKzE4NiwxNSBAQCBzY3JpcHQ9W14sXSosPwl7IFNUUklQKCcsJyk7IFNBVkVTVFJJTkco InNjcmlwdCIsIApzY3JpcHQsIEZST01FUVVBTFMpOyB9CiAgZGlyZWN0LWlvLXNhZmUsPyB7IERQ Qy0+ZGlzay0+ZGlyZWN0X2lvX3NhZmUgPSAxOyB9CiAgZGlzY2FyZCw/CXsgbGlieGxfZGVmYm9v bF9zZXQoJkRQQy0+ZGlzay0+ZGlzY2FyZF9lbmFibGUsIHRydWUpOyB9CiAgbm8tZGlzY2FyZCw/ CXsgbGlieGxfZGVmYm9vbF9zZXQoJkRQQy0+ZGlzay0+ZGlzY2FyZF9lbmFibGUsIGZhbHNlKTsg fQorIC8qIE5vdGUgdGhhdCB0aGUgQ09MTyBjb25maWd1cmF0aW9uIHNldHRpbmdzIHNob3VsZCBi ZSBjb25zaWRlcmVkIAp1bnN0YWJsZS4KKyAgKiBUaGV5IG1heSBjaGFuZ2UgaW5jb21wYXRpYmx5 IGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiBYZW4uICovCitjb2xvLD8JCXsgbGlieGxfZGVmYm9vbF9z ZXQoJkRQQy0+ZGlzay0+Y29sb19lbmFibGUsIHRydWUpOyB9Cituby1jb2xvLD8JeyBsaWJ4bF9k ZWZib29sX3NldCgmRFBDLT5kaXNrLT5jb2xvX2VuYWJsZSwgZmFsc2UpOyB9Citjb2xvLWhvc3Q9 W14sXSosPwl7IFNUUklQKCcsJyk7IFNBVkVTVFJJTkcoImNvbG8taG9zdCIsIGNvbG9faG9zdCwg CkZST01FUVVBTFMpOyB9Citjb2xvLXBvcnQ9W14sXSosPwl7IFNUUklQKCcsJyk7IHNldGNvbG9w b3J0KERQQywgRlJPTUVRVUFMUyk7IH0KK2NvbG8tZXhwb3J0PVteLF0qLD8JeyBTVFJJUCgnLCcp OyBTQVZFU1RSSU5HKCJjb2xvLWV4cG9ydCIsIApjb2xvX2V4cG9ydCwgRlJPTUVRVUFMUyk7IH0K K2FjdGl2ZS1kaXNrPVteLF0qLD8JeyBTVFJJUCgnLCcpOyBTQVZFU1RSSU5HKCJhY3RpdmUtZGlz ayIsIAphY3RpdmVfZGlzaywgRlJPTUVRVUFMUyk7IH0KK2hpZGRlbi1kaXNrPVteLF0qLD8JeyBT VFJJUCgnLCcpOyBTQVZFU1RSSU5HKCJoaWRkZW4tZGlzayIsIApoaWRkZW5fZGlzaywgRlJPTUVR VUFMUyk7IH0KCiAgIC8qIHRoZSB0YXJnZXQgbWFnaWMgcGFyYW1ldGVyLCBlYXRzIHRoZSByZXN0 IG9mIHRoZSBzdHJpbmcgKi8KCi0tIAoxLjkuMwoKCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK