From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changlong Xie Subject: [PATCH v11 21/27] COLO: use qemu block replication Date: Fri, 4 Mar 2016 16:41:25 +0800 Message-ID: <1457080891-26054-22-git-send-email-xiecl.fnst@cn.fujitsu.com> References: <1457080891-26054-1-git-send-email-xiecl.fnst@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1457080891-26054-1-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 , Changlong Xie , Wen Congyang , Gui Jianfeng , Jiang Yunhong , Dong Eddie , Anthony Perard , Shriram Rajagopalan , Yang Hongyang List-Id: xen-devel@lists.xenproject.org RnJvbTogV2VuIENvbmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4KClVzZSBxZW11IGJsb2Nr IHJlcGxpY2F0aW9uIGFzIG91ciBibG9jayByZXBsaWNhdGlvbiBzb2x1dGlvbi4KTm90ZSB0aGF0 IGd1ZXN0IG11c3QgYmUgcGF1c2VkIGJlZm9yZSBzdGFydGluZyBDT0xPLCBvdGhlcndpc2UsCnRo ZSBkaXNrIHdvbid0IGJlIGNvbnNpc3RlbnQgYmV0d2VlbiBwcmltYXJ5IGFuZCBzZWNvbmRhcnku CgpTaWduZWQtb2ZmLWJ5OiBXZW4gQ29uZ3lhbmcgPHdlbmN5QGNuLmZ1aml0c3UuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBZYW5nIEhvbmd5YW5nIDxob25neWFuZy55YW5nQGVhc3lzdGFjay5jbj4KU2ln bmVkLW9mZi1ieTogQ2hhbmdsb25nIFhpZSA8eGllY2wuZm5zdEBjbi5mdWppdHN1LmNvbT4KLS0t CiB0b29scy9saWJ4bC9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgMSArCiB0b29scy9saWJ4bC9s aWJ4bF9jb2xvLmggICAgICAgICB8ICAxNSArKysKIHRvb2xzL2xpYnhsL2xpYnhsX2NvbG9fcWRp c2suYyAgIHwgMjIyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdG9v bHMvbGlieGwvbGlieGxfY29sb19yZXN0b3JlLmMgfCAgNDIgKysrKysrKy0KIHRvb2xzL2xpYnhs L2xpYnhsX2NvbG9fc2F2ZS5jICAgIHwgIDU0ICsrKysrKysrKy0KIHRvb2xzL2xpYnhsL2xpYnhs X2ludGVybmFsLmggICAgIHwgICA1ICsKIDYgZmlsZXMgY2hhbmdlZCwgMzM0IGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvbGlieGwvbGlieGxf Y29sb19xZGlzay5jCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvTWFrZWZpbGUgYi90b29scy9s aWJ4bC9NYWtlZmlsZQppbmRleCAyMDE2MzkzLi4yOGQ1NGQwIDEwMDY0NAotLS0gYS90b29scy9s aWJ4bC9NYWtlZmlsZQorKysgYi90b29scy9saWJ4bC9NYWtlZmlsZQpAQCAtNjYsNiArNjYsNyBA QCBlbmRpZgogCiBMSUJYTF9PQkpTLXkgKz0gbGlieGxfcmVtdXMubyBsaWJ4bF9jaGVja3BvaW50 X2RldmljZS5vIGxpYnhsX3JlbXVzX2Rpc2tfZHJiZC5vCiBMSUJYTF9PQkpTLXkgKz0gbGlieGxf Y29sb19yZXN0b3JlLm8gbGlieGxfY29sb19zYXZlLm8KK0xJQlhMX09CSlMteSArPSBsaWJ4bF9j b2xvX3FkaXNrLm8KIAogTElCWExfT0JKUy0kKENPTkZJR19YODYpICs9IGxpYnhsX2NwdWlkLm8g bGlieGxfeDg2Lm8gbGlieGxfcHNyLm8KIExJQlhMX09CSlMtJChDT05GSUdfQVJNKSArPSBsaWJ4 bF9ub2NwdWlkLm8gbGlieGxfYXJtLm8gbGlieGxfbGliZmR0X2NvbXBhdC5vCmRpZmYgLS1naXQg YS90b29scy9saWJ4bC9saWJ4bF9jb2xvLmggYi90b29scy9saWJ4bC9saWJ4bF9jb2xvLmgKaW5k ZXggZmVlYzdmMS4uOTAzNDVmNCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY29sby5o CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG8uaApAQCAtMTksNiArMTksNyBAQAogc3RydWN0 IGxpYnhsX19hbzsKIHN0cnVjdCBsaWJ4bF9fZWdjOwogc3RydWN0IGxpYnhsX19jb2xvX3NhdmVf c3RhdGU7CitzdHJ1Y3QgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlc19zdGF0ZTsKIAogZW51bSB7 CiAgICAgTElCWExfQ09MT19TRVRVUEVELApAQCAtMjYsNiArMjcsMTAgQEAgZW51bSB7CiAgICAg TElCWExfQ09MT19SRVNVTUVELAogfTsKIAordHlwZWRlZiBzdHJ1Y3QgbGlieGxfX2NvbG9fcWRp c2sgeworICAgIGJvb2wgc2V0dXBlZDsKK30gbGlieGxfX2NvbG9fcWRpc2s7CisKIHR5cGVkZWYg c3RydWN0IGxpYnhsX19kb21haW5fY3JlYXRlX3N0YXRlIGxpYnhsX19kb21haW5fY3JlYXRlX3N0 YXRlOwogdHlwZWRlZiB2b2lkIGxpYnhsX19kb21haW5fY3JlYXRlX2NiKHN0cnVjdCBsaWJ4bF9f ZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Rv bWFpbl9jcmVhdGVfc3RhdGUgKmRjcywKQEAgLTQ3LDggKzUyLDE4IEBAIHN0cnVjdCBsaWJ4bF9f Y29sb19yZXN0b3JlX3N0YXRlIHsKICAgICAvKiBwcml2YXRlLCBjb2xvIHJlc3RvcmUgY2hlY2tw b2ludCBzdGF0ZSAqLwogICAgIGxpYnhsX19kb21haW5fY3JlYXRlX2NiICpzYXZlZF9jYjsKICAg ICB2b2lkICpjcmNzOworCisgICAgLyogcHJpdmF0ZSwgdXNlZCBieSBxZGlzayBibG9jayByZXBs aWNhdGlvbiAqLworICAgIGJvb2wgcWRpc2tfdXNlZDsKKyAgICBib29sIHFkaXNrX3NldHVwZWQ7 CisgICAgY29uc3QgY2hhciAqaG9zdDsKKyAgICBjb25zdCBjaGFyICpwb3J0OwogfTsKIAoraW50 IGluaXRfc3Via2luZF9xZGlzayhzdHJ1Y3QgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlc19zdGF0 ZSAqY2RzKTsKKwordm9pZCBjbGVhbnVwX3N1YmtpbmRfcWRpc2soc3RydWN0IGxpYnhsX19jaGVj a3BvaW50X2RldmljZXNfc3RhdGUgKmNkcyk7CisKIGV4dGVybiB2b2lkIGxpYnhsX19jb2xvX3Jl c3RvcmVfc2V0dXAoc3RydWN0IGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGlieGxfX2NvbG9fcmVzdG9yZV9zdGF0ZSAqY3JzKTsKIGV4dGVy biB2b2lkIGxpYnhsX19jb2xvX3Jlc3RvcmVfdGVhcmRvd24oc3RydWN0IGxpYnhsX19lZ2MgKmVn Yywgdm9pZCAqZGNzX3ZvaWQsCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9jb2xvX3Fk aXNrLmMgYi90b29scy9saWJ4bC9saWJ4bF9jb2xvX3FkaXNrLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uN2FmN2FjMQotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2xpYnhs L2xpYnhsX2NvbG9fcWRpc2suYwpAQCAtMCwwICsxLDIyMiBAQAorLyoKKyAqIENvcHlyaWdodCAo QykgMjAxNSBGVUpJVFNVIExJTUlURUQKKyAqIEF1dGhvcjogV2VuIENvbmd5YW5nIDx3ZW5jeUBj bi5mdWppdHN1LmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkCisg KiBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIuMSBvbmx5LiB3aXRo IHRoZSBzcGVjaWFsCisgKiBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gZmlsZSBM SUNFTlNFLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICovCisKKyNpbmNsdWRl ICJsaWJ4bF9vc2RlcHMuaCIgLyogbXVzdCBjb21lIGJlZm9yZSBhbnkgb3RoZXIgaGVhZGVycyAq LworCisjaW5jbHVkZSAibGlieGxfaW50ZXJuYWwuaCIKKworLyogPT09PT09PT09PSBpbml0KCkg YW5kIGNsZWFudXAoKSA9PT09PT09PT09ICovCitpbnQgaW5pdF9zdWJraW5kX3FkaXNrKGxpYnhs X19jaGVja3BvaW50X2RldmljZXNfc3RhdGUgKmNkcykKK3sKKyAgICAvKgorICAgICAqIFdlIGRv bid0IGtub3cgaWYgd2UgdXNlIHFlbXUgYmxvY2sgcmVwbGljYXRpb24sIHNvCisgICAgICogd2Ug Y2Fubm90IHN0YXJ0IGJsb2NrIHJlcGxpY2F0aW9uIGhlcmUuCisgICAgICovCisgICAgcmV0dXJu IDA7Cit9CisKK3ZvaWQgY2xlYW51cF9zdWJraW5kX3FkaXNrKGxpYnhsX19jaGVja3BvaW50X2Rl dmljZXNfc3RhdGUgKmNkcykKK3sKK30KKworLyogPT09PT09PT09PSBzZXR1cCgpIGFuZCB0ZWFy ZG93bigpID09PT09PT09PT0gKi8KK3N0YXRpYyB2b2lkIGNvbG9fcWRpc2tfc2V0dXAobGlieGxf X2VnYyAqZWdjLCBsaWJ4bF9fY2hlY2twb2ludF9kZXZpY2UgKmRldiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYm9vbCBwcmltYXJ5KQoreworICAgIGNvbnN0IGxpYnhsX2RldmljZV9k aXNrICpkaXNrID0gZGV2LT5iYWNrZW5kX2RldjsKKyAgICBpbnQgcmV0LCByYyA9IDA7CisgICAg bGlieGxfX2NvbG9fcWRpc2sgKmNvbG9fcWRpc2sgPSBOVUxMOworCisgICAgLyogQ29udmVuaWVu Y2UgYWxpYXNlcyAqLworICAgIGxpYnhsX19jaGVja3BvaW50X2RldmljZXNfc3RhdGUgKmNvbnN0 IGNkcyA9IGRldi0+Y2RzOworICAgIGNvbnN0IGNoYXIgKmhvc3QgPSBkaXNrLT5jb2xvX2hvc3Q7 CisgICAgY29uc3QgY2hhciAqcG9ydCA9IGRpc2stPmNvbG9fcG9ydDsKKyAgICBjb25zdCBjaGFy ICpleHBvcnRfbmFtZSA9IGRpc2stPmNvbG9fZXhwb3J0OworICAgIGNvbnN0IGludCBkb21pZCA9 IGNkcy0+ZG9taWQ7CisKKyAgICBTVEFURV9BT19HQyhkZXYtPmNkcy0+YW8pOworCisgICAgaWYg KGRpc2stPmJhY2tlbmQgIT0gTElCWExfRElTS19CQUNLRU5EX1FESVNLIHx8CisgICAgICAgICFs aWJ4bF9kZWZib29sX3ZhbChkaXNrLT5jb2xvX2VuYWJsZSkpIHsKKyAgICAgICAgcmMgPSBFUlJP Ul9DSEVDS1BPSU5UX0RFVk9QU19ET0VTX05PVF9NQVRDSDsKKyAgICAgICAgZ290byBvdXQ7Cisg ICAgfQorCisgICAgZGV2LT5tYXRjaGVkID0gdHJ1ZTsKKworICAgIEdDTkVXKGNvbG9fcWRpc2sp OworICAgIGRldi0+Y29uY3JldGVfZGF0YSA9IGNvbG9fcWRpc2s7CisKKyAgICBpZiAocHJpbWFy eSkgeworICAgICAgICBsaWJ4bF9fY29sb19zYXZlX3N0YXRlICpjc3MgPSBjZHMtPmNvbmNyZXRl X2RhdGE7CisKKyAgICAgICAgY3NzLT5xZGlza191c2VkID0gdHJ1ZTsKKyAgICAgICAgLyogTkJE IHNlcnZlciBpcyBub3QgcmVhZHksIHNvIHdlIGNhbm5vdCBzdGFydCBibG9jayByZXBsaWNhdGlv biBub3cgKi8KKyAgICAgICAgZ290byBvdXQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbGlieGxf X2NvbG9fcmVzdG9yZV9zdGF0ZSAqY3JzID0gY2RzLT5jb25jcmV0ZV9kYXRhOworCisgICAgICAg IGlmICghY3JzLT5xZGlza191c2VkKSB7CisgICAgICAgICAgICAvKiBzdGFydCBuYmQgc2VydmVy ICovCisgICAgICAgICAgICByZXQgPSBsaWJ4bF9fcW1wX25iZF9zZXJ2ZXJfc3RhcnQoZ2MsIGRv bWlkLCBob3N0LCBwb3J0KTsKKyAgICAgICAgICAgIGlmIChyZXQpIHsKKyAgICAgICAgICAgICAg ICByYyA9IEVSUk9SX0ZBSUw7CisgICAgICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgICAg ICB9CisgICAgICAgICAgICBjcnMtPmhvc3QgPSBob3N0OworICAgICAgICAgICAgY3JzLT5wb3J0 ID0gcG9ydDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdHJjbXAoY3JzLT5o b3N0LCBob3N0KSB8fCBzdHJjbXAoY3JzLT5wb3J0LCBwb3J0KSkgeworICAgICAgICAgICAgICAg IExPRyhFUlJPUiwgIlRoZSBob3N0IGFuZCBwb3J0IG9mIGFsbCBkaXNrcyBtdXN0IGJlIHRoZSBz YW1lIik7CisgICAgICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICAgICAgICAg IGdvdG8gb3V0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY3JzLT5xZGlz a191c2VkID0gdHJ1ZTsKKworICAgICAgICByZXQgPSBsaWJ4bF9fcW1wX25iZF9zZXJ2ZXJfYWRk KGdjLCBkb21pZCwgZXhwb3J0X25hbWUpOworICAgICAgICBpZiAocmV0KQorICAgICAgICAgICAg cmMgPSBFUlJPUl9GQUlMOworCisgICAgICAgIGNvbG9fcWRpc2stPnNldHVwZWQgPSB0cnVlOwor ICAgIH0KKworb3V0OgorICAgIGRldi0+YW9kZXYucmMgPSByYzsKKyAgICBkZXYtPmFvZGV2LmNh bGxiYWNrKGVnYywgJmRldi0+YW9kZXYpOworfQorCitzdGF0aWMgdm9pZCBjb2xvX3FkaXNrX3Rl YXJkb3duKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlICpkZXYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcHJpbWFyeSkKK3sKKyAgICBpbnQg cmV0LCByYyA9IDA7CisgICAgY29uc3QgbGlieGxfX2NvbG9fcWRpc2sgKmNvbG9fcWRpc2sgPSBk ZXYtPmNvbmNyZXRlX2RhdGE7CisgICAgY29uc3QgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2sgPSBk ZXYtPmJhY2tlbmRfZGV2OworCisgICAgLyogQ29udmVuaWVuY2UgYWxpYXNlcyAqLworICAgIGxp YnhsX19jaGVja3BvaW50X2RldmljZXNfc3RhdGUgKmNvbnN0IGNkcyA9IGRldi0+Y2RzOworICAg IGNvbnN0IGludCBkb21pZCA9IGNkcy0+ZG9taWQ7CisgICAgY29uc3QgY2hhciAqZXhwb3J0X25h bWUgPSBkaXNrLT5jb2xvX2V4cG9ydDsKKworICAgIEVHQ19HQzsKKworICAgIGlmIChwcmltYXJ5 KSB7CisgICAgICAgIGlmICghY29sb19xZGlzay0+c2V0dXBlZCkKKyAgICAgICAgICAgIGdvdG8g b3V0OworCisgICAgICAgIC8qCisgICAgICAgICAqIFRoZXJlIGlzIG5vIHdheSB0byBnZXQgdGhl IGNoaWxkIG5hbWUsIGJ1dCB3ZSBrbm93IGl0IGlzIGNoaWxkcmVuLjEKKyAgICAgICAgICovCisg ICAgICAgIHJldCA9IGxpYnhsX19xbXBfeF9ibG9ja2Rldl9jaGFuZ2UoZ2MsIGRvbWlkLCBleHBv cnRfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2hp bGRyZW4uMSIsIE5VTEwpOworICAgICAgICBpZiAocmV0KQorICAgICAgICAgICAgcmMgPSBFUlJP Ul9GQUlMOworICAgIH0gZWxzZSB7CisgICAgICAgIGxpYnhsX19jb2xvX3Jlc3RvcmVfc3RhdGUg KmNycyA9IGNkcy0+Y29uY3JldGVfZGF0YTsKKworICAgICAgICBpZiAoY3JzLT5xZGlza191c2Vk KSB7CisgICAgICAgICAgICByZXQgPSBsaWJ4bF9fcW1wX25iZF9zZXJ2ZXJfc3RvcChnYywgZG9t aWQpOworICAgICAgICAgICAgaWYgKHJldCkKKyAgICAgICAgICAgICAgICByYyA9IEVSUk9SX0ZB SUw7CisgICAgICAgIH0KKyAgICB9CisKK291dDoKKyAgICBkZXYtPmFvZGV2LnJjID0gcmM7Cisg ICAgZGV2LT5hb2Rldi5jYWxsYmFjayhlZ2MsICZkZXYtPmFvZGV2KTsKK30KKworLyogPT09PT09 PT09PSBjaGVja3BvaW50aW5nIEFQSXMgPT09PT09PT09PSAqLworc3RhdGljIHZvaWQgY29sb19x ZGlza19zYXZlX3ByZXJlc3VtZShsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYnhsX19jaGVja3BvaW50X2RldmljZSAqZGV2KQoreworICAg IGxpYnhsX19jb2xvX3FkaXNrICpjb2xvX3FkaXNrID0gZGV2LT5jb25jcmV0ZV9kYXRhOworICAg IGNvbnN0IGxpYnhsX2RldmljZV9kaXNrICpkaXNrID0gZGV2LT5iYWNrZW5kX2RldjsKKyAgICBp bnQgcmV0LCByYyA9IDA7CisgICAgY2hhciAqbm9kZSA9IE5VTEw7CisgICAgY2hhciAqY21kID0g TlVMTDsKKworICAgIC8qIENvbnZlbmllbmNlIGFsaWFzZXMgKi8KKyAgICBjb25zdCBpbnQgZG9t aWQgPSBkZXYtPmNkcy0+ZG9taWQ7CisgICAgY29uc3QgY2hhciAqaG9zdCA9IGRpc2stPmNvbG9f aG9zdDsKKyAgICBjb25zdCBjaGFyICpwb3J0ID0gZGlzay0+Y29sb19wb3J0OworICAgIGNvbnN0 IGNoYXIgKmV4cG9ydF9uYW1lID0gZGlzay0+Y29sb19leHBvcnQ7CisKKyAgICBFR0NfR0M7CisK KyAgICBpZiAoY29sb19xZGlzay0+c2V0dXBlZCkKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICAv KiBxbXAgY29tbWFuZCBkb2Vzbid0IHN1cHBvcnQgdGhlIGRyaXZlciAibmJkIiAqLworICAgIG5v ZGUgPSBHQ1NQUklOVEYoImNvbG9fbm9kZSVkIiwKKyAgICAgICAgICAgICAgICAgICAgIGxpYnhs X19kZXZpY2VfZGlza19kZXZfbnVtYmVyKGRpc2stPnZkZXYsIE5VTEwsIE5VTEwpKTsKKyAgICBj bWQgPSBHQ1NQUklOVEYoImRyaXZlX2FkZCBidWRkeSBkcml2ZXI9cmVwbGljYXRpb24sbW9kZT1w cmltYXJ5LCIKKyAgICAgICAgICAgICAgICAgICAgImZpbGUuZHJpdmVyPW5iZCxmaWxlLmhvc3Q9 JXMsZmlsZS5wb3J0PSVzLCIKKyAgICAgICAgICAgICAgICAgICAgImZpbGUuZXhwb3J0PSVzLG5v ZGUtbmFtZT0lcyxpZj1ub25lIiwKKyAgICAgICAgICAgICAgICAgICAgaG9zdCwgcG9ydCwgZXhw b3J0X25hbWUsIG5vZGUpOworICAgIHJldCA9IGxpYnhsX19xbXBfaG1wKGdjLCBkb21pZCwgY21k KTsKKyAgICBpZiAocmV0KQorICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CisKKyAgICByZXQgPSBs aWJ4bF9fcW1wX3hfYmxvY2tkZXZfY2hhbmdlKGdjLCBkb21pZCwgZXhwb3J0X25hbWUsIE5VTEws IG5vZGUpOworICAgIGlmIChyZXQpCisgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKworICAgIGNv bG9fcWRpc2stPnNldHVwZWQgPSB0cnVlOworCitvdXQ6CisgICAgZGV2LT5hb2Rldi5yYyA9IHJj OworICAgIGRldi0+YW9kZXYuY2FsbGJhY2soZWdjLCAmZGV2LT5hb2Rldik7Cit9CisKKy8qID09 PT09PT09IHByaW1hcnkgPT09PT09PT0gKi8KK3N0YXRpYyB2b2lkIGNvbG9fcWRpc2tfc2F2ZV9z ZXR1cChsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlICpkZXYpCit7CisgICAgY29sb19xZGlza19zZXR1cChl Z2MsIGRldiwgdHJ1ZSk7Cit9CisKK3N0YXRpYyB2b2lkIGNvbG9fcWRpc2tfc2F2ZV90ZWFyZG93 bihsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX19jaGVja3BvaW50X2RldmljZSAqZGV2KQoreworICAgIGNvbG9fcWRpc2tfdGVhcmRvd24o ZWdjLCBkZXYsIHRydWUpOworfQorCitjb25zdCBsaWJ4bF9fY2hlY2twb2ludF9kZXZpY2VfaW5z dGFuY2Vfb3BzIGNvbG9fc2F2ZV9kZXZpY2VfcWRpc2sgPSB7CisgICAgLmtpbmQgPSBMSUJYTF9f REVWSUNFX0tJTkRfVkJELAorICAgIC5zZXR1cCA9IGNvbG9fcWRpc2tfc2F2ZV9zZXR1cCwKKyAg ICAudGVhcmRvd24gPSBjb2xvX3FkaXNrX3NhdmVfdGVhcmRvd24sCisgICAgLnByZXJlc3VtZSA9 IGNvbG9fcWRpc2tfc2F2ZV9wcmVyZXN1bWUsCit9OworCisvKiA9PT09PT09PSBzZWNvbmRhcnkg PT09PT09PT0gKi8KK3N0YXRpYyB2b2lkIGNvbG9fcWRpc2tfcmVzdG9yZV9zZXR1cChsaWJ4bF9f ZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2No ZWNrcG9pbnRfZGV2aWNlICpkZXYpCit7CisgICAgY29sb19xZGlza19zZXR1cChlZ2MsIGRldiwg ZmFsc2UpOworfQorCitzdGF0aWMgdm9pZCBjb2xvX3FkaXNrX3Jlc3RvcmVfdGVhcmRvd24obGli eGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4 bF9fY2hlY2twb2ludF9kZXZpY2UgKmRldikKK3sKKyAgICBjb2xvX3FkaXNrX3RlYXJkb3duKGVn YywgZGV2LCBmYWxzZSk7Cit9CisKK2NvbnN0IGxpYnhsX19jaGVja3BvaW50X2RldmljZV9pbnN0 YW5jZV9vcHMgY29sb19yZXN0b3JlX2RldmljZV9xZGlzayA9IHsKKyAgICAua2luZCA9IExJQlhM X19ERVZJQ0VfS0lORF9WQkQsCisgICAgLnNldHVwID0gY29sb19xZGlza19yZXN0b3JlX3NldHVw LAorICAgIC50ZWFyZG93biA9IGNvbG9fcWRpc2tfcmVzdG9yZV90ZWFyZG93biwKK307CmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9jb2xvX3Jlc3RvcmUuYyBiL3Rvb2xzL2xpYnhsL2xp YnhsX2NvbG9fcmVzdG9yZS5jCmluZGV4IGIwZGQ1MmIuLjhiMzQzYzAgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL2xpYnhsX2NvbG9fcmVzdG9yZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2Nv bG9fcmVzdG9yZS5jCkBAIC0zNyw3ICszNywxMCBAQCBzdHJ1Y3QgbGlieGxfX2NvbG9fcmVzdG9y ZV9jaGVja3BvaW50X3N0YXRlIHsKICAgICAgICAgICAgICAgICAgICAgIGludCk7CiB9OwogCitl eHRlcm4gY29uc3QgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlX2luc3RhbmNlX29wcyBjb2xvX3Jl c3RvcmVfZGV2aWNlX3FkaXNrOworCiBzdGF0aWMgY29uc3QgbGlieGxfX2NoZWNrcG9pbnRfZGV2 aWNlX2luc3RhbmNlX29wcyAqY29sb19yZXN0b3JlX29wc1tdID0geworICAgICZjb2xvX3Jlc3Rv cmVfZGV2aWNlX3FkaXNrLAogICAgIE5VTEwsCiB9OwogCkBAIC0xMzYsNyArMTM5LDExIEBAIHN0 YXRpYyBpbnQgaW5pdF9kZXZpY2Vfc3Via2luZChsaWJ4bF9fY2hlY2twb2ludF9kZXZpY2VzX3N0 YXRlICpjZHMpCiAgICAgaW50IHJjOwogICAgIFNUQVRFX0FPX0dDKGNkcy0+YW8pOwogCisgICAg cmMgPSBpbml0X3N1YmtpbmRfcWRpc2soY2RzKTsKKyAgICBpZiAocmMpICBnb3RvIG91dDsKKwog ICAgIHJjID0gMDsKK291dDoKICAgICByZXR1cm4gcmM7CiB9CiAKQEAgLTE0NCw2ICsxNTEsOCBA QCBzdGF0aWMgdm9pZCBjbGVhbnVwX2RldmljZV9zdWJraW5kKGxpYnhsX19jaGVja3BvaW50X2Rl dmljZXNfc3RhdGUgKmNkcykKIHsKICAgICAvKiBjbGVhbnVwIGRldmljZSBzdWJraW5kLXNwZWNp ZmljIHN0YXRlIGluIHRoZSBsaWJ4bCBjdHggKi8KICAgICBTVEFURV9BT19HQyhjZHMtPmFvKTsK KworICAgIGNsZWFudXBfc3Via2luZF9xZGlzayhjZHMpOwogfQogCiAKQEAgLTIxMiw2ICsyMjEs OCBAQCB2b2lkIGxpYnhsX19jb2xvX3Jlc3RvcmVfc2V0dXAobGlieGxfX2VnYyAqZWdjLAogICAg IEdDTkVXKGNyY3MpOwogICAgIGNycy0+Y3JjcyA9IGNyY3M7CiAgICAgY3Jjcy0+Y3JzID0gY3Jz OworICAgIGNycy0+cWRpc2tfc2V0dXBlZCA9IGZhbHNlOworICAgIGNycy0+cWRpc2tfdXNlZCA9 IGZhbHNlOwogCiAgICAgLyogc2V0dXAgZHNwcyAqLwogICAgIGNyY3MtPmRzcHMuYW8gPSBhbzsK QEAgLTI5OSw2ICszMTAsMTEgQEAgdm9pZCBsaWJ4bF9fY29sb19yZXN0b3JlX3RlYXJkb3duKGxp YnhsX19lZ2MgKmVnYywgdm9pZCAqZGNzX3ZvaWQsCiAgICAgfQogICAgIGxpYnhsX194Y19kb21h aW5fcmVzdG9yZV9kb25lKGVnYywgZGNzLCByZXQsIHJldHZhbCwgZXJybm92YWwpOwogCisgICAg aWYgKGNycy0+cWRpc2tfc2V0dXBlZCkgeworICAgICAgICBsaWJ4bF9fcW1wX3N0b3BfcmVwbGlj YXRpb24oZ2MsIGNycy0+ZG9taWQsIGZhbHNlKTsKKyAgICAgICAgY3JzLT5xZGlza19zZXR1cGVk ID0gZmFsc2U7CisgICAgfQorCiAgICAgY3Jjcy0+c2F2ZWRfcmMgPSByYzsKICAgICBpZiAoIWNy Y3MtPnRlYXJkb3duX2RldmljZXMpIHsKICAgICAgICAgY29sb19yZXN0b3JlX3RlYXJkb3duX2Rl dmljZXNfZG9uZShlZ2MsICZkY3MtPmNkcywgMCk7CkBAIC01NjksNiArNTg1LDEzIEBAIHN0YXRp YyB2b2lkIGNvbG9fcmVzdG9yZV9wcmVyZXN1bWVfY2IobGlieGxfX2VnYyAqZWdjLAogICAgICAg ICBnb3RvIG91dDsKICAgICB9CiAKKyAgICBpZiAoY3JzLT5xZGlza19zZXR1cGVkKSB7CisgICAg ICAgIGlmIChsaWJ4bF9fcW1wX2RvX2NoZWNrcG9pbnQoZ2MsIGNycy0+ZG9taWQpKSB7CisgICAg ICAgICAgICBMT0coRVJST1IsICJkb2luZyBjaGVja3BvaW50IGZhaWxzIik7CisgICAgICAgICAg ICBnb3RvIG91dDsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGNvbG9fcmVzdG9yZV9yZXN1bWVf dm0oZWdjLCBjcmNzKTsKIAogICAgIHJldHVybjsKQEAgLTcyNiw4ICs3NDksOCBAQCBzdGF0aWMg dm9pZCBjb2xvX3NldHVwX2NoZWNrcG9pbnRfZGV2aWNlcyhsaWJ4bF9fZWdjICplZ2MsCiAKICAg ICBTVEFURV9BT19HQyhjcnMtPmFvKTsKIAotICAgIC8qIFRPRE86IGRpc2svbmljIHN1cHBvcnQg Ki8KLSAgICBjZHMtPmRldmljZV9raW5kX2ZsYWdzID0gMDsKKyAgICAvKiBUT0RPOiBuaWMgc3Vw cG9ydCAqLworICAgIGNkcy0+ZGV2aWNlX2tpbmRfZmxhZ3MgPSAoMSA8PCBMSUJYTF9fREVWSUNF X0tJTkRfVkJEKTsKICAgICBjZHMtPmNhbGxiYWNrID0gY29sb19yZXN0b3JlX3NldHVwX2Nkc19k b25lOwogICAgIGNkcy0+YW8gPSBhbzsKICAgICBjZHMtPmRvbWlkID0gY3JzLT5kb21pZDsKQEAg LTc2NCw2ICs3ODcsMTQgQEAgc3RhdGljIHZvaWQgY29sb19yZXN0b3JlX3NldHVwX2Nkc19kb25l KGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCisgICAgaWYgKGNy cy0+cWRpc2tfdXNlZCAmJiAhY3JzLT5xZGlza19zZXR1cGVkKSB7CisgICAgICAgIGlmIChsaWJ4 bF9fcW1wX3N0YXJ0X3JlcGxpY2F0aW9uKGdjLCBjcnMtPmRvbWlkLCBmYWxzZSkpIHsKKyAgICAg ICAgICAgIExPRyhFUlJPUiwgInN0YXJ0aW5nIHJlcGxpY2F0aW9uIGZhaWxzIik7CisgICAgICAg ICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorICAgICAgICBjcnMtPnFkaXNrX3NldHVwZWQgPSB0 cnVlOworICAgIH0KKwogICAgIGNvbG9fc2VuZF9zdm1fcmVhZHkoZWdjLCBjcmNzKTsKIAogICAg IHJldHVybjsKQEAgLTkxOCwxMyArOTQ5LDE4IEBAIHN0YXRpYyB2b2lkIGNvbG9fc3VzcGVuZF92 bV9kb25lKGxpYnhsX19lZ2MgKmVnYywKIAogICAgIGNyY3MtPnN0YXR1cyA9IExJQlhMX0NPTE9f U1VTUEVOREVEOwogCisgICAgaWYgKGxpYnhsX19xbXBfZ2V0X3JlcGxpY2F0aW9uX2Vycm9yKGdj LCBjcnMtPmRvbWlkKSkgeworICAgICAgICBMT0coRVJST1IsICJyZXBsaWNhdGlvbiBlcnJvciBv Y2N1cnMgd2hlbiBzZWNvbmRhcnkgdm0gaXMgcnVubmluZyIpOworICAgICAgICBnb3RvIG91dDsK KyAgICB9CisKICAgICBjZHMtPmNhbGxiYWNrID0gY29sb19yZXN0b3JlX3Bvc3RzdXNwZW5kX2Ni OwogICAgIGxpYnhsX19jaGVja3BvaW50X2RldmljZXNfcG9zdHN1c3BlbmQoZWdjLCBjZHMpOwog CiAgICAgcmV0dXJuOwogCiBvdXQ6Ci0gICAgbGlieGxfX3hjX2RvbWFpbl9zYXZlcmVzdG9yZV9h c3luY19jYWxsYmFja19kb25lKGVnYywgJmRjcy0+c3JzLnNocywgIXJjKTsKKyAgICBsaWJ4bF9f eGNfZG9tYWluX3NhdmVyZXN0b3JlX2FzeW5jX2NhbGxiYWNrX2RvbmUoZWdjLCAmZGNzLT5zcnMu c2hzLCAwKTsKIH0KIAogc3RhdGljIHZvaWQgY29sb19yZXN0b3JlX3Bvc3RzdXNwZW5kX2NiKGxp YnhsX19lZ2MgKmVnYywKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG9fc2F2ZS5j IGIvdG9vbHMvbGlieGwvbGlieGxfY29sb19zYXZlLmMKaW5kZXggZTMxOGVhMi4uOTdlZmM4ZCAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY29sb19zYXZlLmMKKysrIGIvdG9vbHMvbGli eGwvbGlieGxfY29sb19zYXZlLmMKQEAgLTE4LDcgKzE4LDEwIEBACiAKICNpbmNsdWRlICJsaWJ4 bF9pbnRlcm5hbC5oIgogCitleHRlcm4gY29uc3QgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlX2lu c3RhbmNlX29wcyBjb2xvX3NhdmVfZGV2aWNlX3FkaXNrOworCiBzdGF0aWMgY29uc3QgbGlieGxf X2NoZWNrcG9pbnRfZGV2aWNlX2luc3RhbmNlX29wcyAqY29sb19vcHNbXSA9IHsKKyAgICAmY29s b19zYXZlX2RldmljZV9xZGlzaywKICAgICBOVUxMLAogfTsKIApAQCAtMjksNyArMzIsMTEgQEAg c3RhdGljIGludCBpbml0X2RldmljZV9zdWJraW5kKGxpYnhsX19jaGVja3BvaW50X2RldmljZXNf c3RhdGUgKmNkcykKICAgICBpbnQgcmM7CiAgICAgU1RBVEVfQU9fR0MoY2RzLT5hbyk7CiAKKyAg ICByYyA9IGluaXRfc3Via2luZF9xZGlzayhjZHMpOworICAgIGlmIChyYykgZ290byBvdXQ7CisK ICAgICByYyA9IDA7CitvdXQ6CiAgICAgcmV0dXJuIHJjOwogfQogCkBAIC0zNyw2ICs0NCw4IEBA IHN0YXRpYyB2b2lkIGNsZWFudXBfZGV2aWNlX3N1YmtpbmQobGlieGxfX2NoZWNrcG9pbnRfZGV2 aWNlc19zdGF0ZSAqY2RzKQogewogICAgIC8qIGNsZWFudXAgZGV2aWNlIHN1YmtpbmQtc3BlY2lm aWMgc3RhdGUgaW4gdGhlIGxpYnhsIGN0eCAqLwogICAgIFNUQVRFX0FPX0dDKGNkcy0+YW8pOwor CisgICAgY2xlYW51cF9zdWJraW5kX3FkaXNrKGNkcyk7CiB9CiAKIC8qID09PT09PT09PT09PT09 PT09IGNvbG86IHNldHVwIHNhdmUgZW52aXJvbm1lbnQgPT09PT09PT09PT09PT09PT0gKi8KQEAg LTc3LDkgKzg2LDEyIEBAIHZvaWQgbGlieGxfX2NvbG9fc2F2ZV9zZXR1cChsaWJ4bF9fZWdjICpl Z2MsIGxpYnhsX19jb2xvX3NhdmVfc3RhdGUgKmNzcykKICAgICBjc3MtPnNlbmRfZmQgPSBkc3Mt PmZkOwogICAgIGNzcy0+cmVjdl9mZCA9IGRzcy0+cmVjdl9mZDsKICAgICBjc3MtPnN2bV9ydW5u aW5nID0gZmFsc2U7CisgICAgY3NzLT5wYXVzZWQgPSB0cnVlOworICAgIGNzcy0+cWRpc2tfc2V0 dXBlZCA9IGZhbHNlOworICAgIGNzcy0+cWRpc2tfdXNlZCA9IGZhbHNlOwogCi0gICAgLyogVE9E TzogZGlzay9uaWMgc3VwcG9ydCAqLwotICAgIGNkcy0+ZGV2aWNlX2tpbmRfZmxhZ3MgPSAwOwor ICAgIC8qIFRPRE86IG5pYyBzdXBwb3J0ICovCisgICAgY2RzLT5kZXZpY2Vfa2luZF9mbGFncyA9 ICgxIDw8IExJQlhMX19ERVZJQ0VfS0lORF9WQkQpOwogICAgIGNkcy0+b3BzID0gY29sb19vcHM7 CiAgICAgY2RzLT5jYWxsYmFjayA9IGNvbG9fc2F2ZV9zZXR1cF9kb25lOwogICAgIGNkcy0+YW8g PSBhbzsKQEAgLTE1OSw2ICsxNzEsMTEgQEAgdm9pZCBsaWJ4bF9fY29sb19zYXZlX3RlYXJkb3du KGxpYnhsX19lZ2MgKmVnYywKIAogICAgIGxpYnhsX19zdHJlYW1fcmVhZF9hYm9ydChlZ2MsICZj c3MtPnNycywgMSk7CiAKKyAgICBpZiAoY3NzLT5xZGlza19zZXR1cGVkKSB7CisgICAgICAgIGxp YnhsX19xbXBfc3RvcF9yZXBsaWNhdGlvbihnYywgZHNzLT5kb21pZCwgdHJ1ZSk7CisgICAgICAg IGNzcy0+cWRpc2tfc2V0dXBlZCA9IGZhbHNlOworICAgIH0KKwogICAgIGRzcy0+Y2RzLmNhbGxi YWNrID0gY29sb190ZWFyZG93bl9kb25lOwogICAgIGxpYnhsX19jaGVja3BvaW50X2RldmljZXNf dGVhcmRvd24oZWdjLCAmZHNzLT5jZHMpOwogICAgIHJldHVybjsKQEAgLTI4Niw2ICszMDMsMTEg QEAgc3RhdGljIHZvaWQgY29sb19yZWFkX3N2bV9zdXNwZW5kZWRfZG9uZShsaWJ4bF9fZWdjICpl Z2MsCiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAorICAgIGlmICghY3NzLT5wYXVzZWQgJiYg bGlieGxfX3FtcF9nZXRfcmVwbGljYXRpb25fZXJyb3IoZ2MsIGRzcy0+ZG9taWQpKSB7CisgICAg ICAgIExPRyhFUlJPUiwgInJlcGxpY2F0aW9uIGVycm9yIG9jY3VycyB3aGVuIHByaW1hcnkgdm0g aXMgcnVubmluZyIpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKICAgICBvayA9IDE7CiAK IG91dDoKQEAgLTM4MywxMiArNDA1LDQwIEBAIHN0YXRpYyB2b2lkIGNvbG9fcHJlcmVzdW1lX2Ni KGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCisgICAgaWYgKGNz cy0+cWRpc2tfdXNlZCAmJiAhY3NzLT5xZGlza19zZXR1cGVkKSB7CisgICAgICAgIGlmIChsaWJ4 bF9fcW1wX3N0YXJ0X3JlcGxpY2F0aW9uKGdjLCBkc3MtPmRvbWlkLCB0cnVlKSkgeworICAgICAg ICAgICAgTE9HKEVSUk9SLCAic3RhcnRpbmcgcmVwbGljYXRpb24gZmFpbHMiKTsKKyAgICAgICAg ICAgIGdvdG8gb3V0OworICAgICAgICB9CisgICAgICAgIGNzcy0+cWRpc2tfc2V0dXBlZCA9IHRy dWU7CisgICAgfQorCisgICAgaWYgKCFjc3MtPnBhdXNlZCkgeworICAgICAgICBpZiAobGlieGxf X3FtcF9kb19jaGVja3BvaW50KGdjLCBkc3MtPmRvbWlkKSkgeworICAgICAgICAgICAgTE9HKEVS Uk9SLCAiZG9pbmcgY2hlY2twb2ludCBmYWlscyIpOworICAgICAgICAgICAgZ290byBvdXQ7Cisg ICAgICAgIH0KKyAgICB9CisKICAgICAvKiBSZXN1bWVzIHRoZSBkb21haW4gYW5kIHRoZSBkZXZp Y2UgbW9kZWwgKi8KICAgICBpZiAobGlieGxfX2RvbWFpbl9yZXN1bWUoZ2MsIGRzcy0+ZG9taWQs IC8qIEZhc3QgU3VzcGVuZCAqLzEpKSB7CiAgICAgICAgIExPRyhFUlJPUiwgImNhbm5vdCByZXN1 bWUgcHJpbWFyeSB2bSIpOwogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKKyAgICAvKgorICAg ICAqIFRoZSBndWVzdCBzaG91bGQgYmUgcGF1c2VkIGJlZm9yZSBkb2luZyBjb2xvIGJlY2F1c2Ug dGhlcmUgaXMKKyAgICAgKiBubyBkaXNrIG1pZ3JhdGlvbi4KKyAgICAgKi8KKyAgICBpZiAoY3Nz LT5wYXVzZWQpIHsKKyAgICAgICAgcmMgPSBsaWJ4bF9kb21haW5fdW5wYXVzZShDVFgsIGRzcy0+ ZG9taWQpOworICAgICAgICBpZiAocmMpIHsKKyAgICAgICAgICAgIExPRyhFUlJPUiwgImNhbm5v dCB1bnBhdXNlIHByaW1hcnkgdm0iKTsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9 CisgICAgICAgIGNzcy0+cGF1c2VkID0gZmFsc2U7CisgICAgfQorCiAgICAgLyogcmVhZCBDSEVD S1BPSU5UX1NWTV9SRVNVTUVEICovCiAgICAgY3NzLT5jYWxsYmFjayA9IGNvbG9fcmVhZF9zdm1f cmVzdW1lZF9kb25lOwogICAgIGNzcy0+c3JzLmNoZWNrcG9pbnRfY2FsbGJhY2sgPSBjb2xvX2Nv bW1vbl9yZWFkX3N0cmVhbV9kb25lOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50 ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggOGNiOWYxOS4uMGFl YWYxOCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29s cy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0zMTg5LDYgKzMxODksMTEgQEAgc3RydWN0IGxp YnhsX19jb2xvX3NhdmVfc3RhdGUgewogICAgIGxpYnhsX19zdHJlYW1fcmVhZF9zdGF0ZSBzcnM7 CiAgICAgdm9pZCAoKmNhbGxiYWNrKShsaWJ4bF9fZWdjICosIGxpYnhsX19jb2xvX3NhdmVfc3Rh dGUgKiwgaW50KTsKICAgICBib29sIHN2bV9ydW5uaW5nOworICAgIGJvb2wgcGF1c2VkOworCisg ICAgLyogcHJpdmF0ZSwgdXNlZCBieSBxZGlzayBibG9jayByZXBsaWNhdGlvbiAqLworICAgIGJv b2wgcWRpc2tfdXNlZDsKKyAgICBib29sIHFkaXNrX3NldHVwZWQ7CiB9OwogCiB0eXBlZGVmIHN0 cnVjdCBsaWJ4bF9fbG9nZGlydHlfc3dpdGNoIHsKLS0gCjEuOS4zCgoKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=