From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v4 08/16] xen: Replace _mfn(INVALID_MFN) with MFN_INVALID_T Date: Mon, 27 Jun 2016 17:54:04 +0100 Message-ID: <1467046452-1261-9-git-send-email-julien.grall@arm.com> References: <1467046452-1261-1-git-send-email-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1467046452-1261-1-git-send-email-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Kevin Tian , sstabellini@kernel.org, Jun Nakajima , George Dunlap , Andrew Cooper , Tim Deegan , Julien Grall , Jan Beulich , wei.chen@linaro.org List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpcyBhIG1lY2hhbmljYWwgcmVwbGFjZW1lbnQuIENvbW1hbmQgdXNlZDoKCjQy c2g+IGFjayAtbCAiX21mblwoSU5WQUxJRF9NRk5cKSIgfCB4YXJncyAgc2VkIC1pIC1lICdzL19t Zm4oSU5WQUxJRF9NRk4pL0lOVkFMSURfTUZOX1QvZycKClNpZ25lZC1vZmYtYnk6IEp1bGllbiBH cmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CgotLS0KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3Jn ZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBKdW4g TmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkNjOiBLZXZpbiBUaWFuIDxrZXZpbi50 aWFuQGludGVsLmNvbT4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgoKICAgIENoYW5nZXMg aW4gdjQ6CiAgICAgICAgLSBQYXRjaCBhZGRlZAotLS0KIHhlbi9hcmNoL3g4Ni9tbS9ndWVzdF93 YWxrLmMgICAgfCAgNCArKy0tCiB4ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jICAgICAgIHwgIDIg Ky0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2 L21tL3AybS1wb2QuYyAgICAgICB8IDE4ICsrKysrKysrKy0tLS0tLS0tLQogeGVuL2FyY2gveDg2 L21tL3AybS1wdC5jICAgICAgICB8IDE2ICsrKysrKysrLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9t bS9wMm0uYyAgICAgICAgICAgfCAxNCArKysrKysrLS0tLS0tLQogeGVuL2FyY2gveDg2L21tL3Bh Z2luZy5jICAgICAgICB8IDEyICsrKysrKy0tLS0tLQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9j b21tb24uYyB8IDMyICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94 ODYvbW0vc2hhZG93L211bHRpLmMgIHwgMzIgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0KIDkgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgNjYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL2d1ZXN0X3dhbGsuYyBiL3hlbi9hcmNoL3g4Ni9t bS9ndWVzdF93YWxrLmMKaW5kZXggZTg1MDUwMi4uMTJiNTdkOCAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L21tL2d1ZXN0X3dhbGsuYworKysgYi94ZW4vYXJjaC94ODYvbW0vZ3Vlc3Rfd2Fsay5j CkBAIC0yODEsNyArMjgxLDcgQEAgZ3Vlc3Rfd2Fsa190YWJsZXMoc3RydWN0IHZjcHUgKnYsIHN0 cnVjdCBwMm1fZG9tYWluICpwMm0sCiAgICAgICAgIHN0YXJ0ID0gX2dmbigoZ2ZuX3goc3RhcnQp ICYgfkdVRVNUX0wzX0dGTl9NQVNLKSArCiAgICAgICAgICAgICAgICAgICAgICAoKHZhID4+IFBB R0VfU0hJRlQpICYgR1VFU1RfTDNfR0ZOX01BU0spKTsKICAgICAgICAgZ3ctPmwxZSA9IGd1ZXN0 X2wxZV9mcm9tX2dmbihzdGFydCwgZmxhZ3MpOwotICAgICAgICBndy0+bDJtZm4gPSBndy0+bDFt Zm4gPSBfbWZuKElOVkFMSURfTUZOKTsKKyAgICAgICAgZ3ctPmwybWZuID0gZ3ctPmwxbWZuID0g SU5WQUxJRF9NRk5fVDsKICAgICAgICAgZ290byBzZXRfYWQ7CiAgICAgfQogCkBAIC0zNTYsNyAr MzU2LDcgQEAgZ3Vlc3Rfd2Fsa190YWJsZXMoc3RydWN0IHZjcHUgKnYsIHN0cnVjdCBwMm1fZG9t YWluICpwMm0sCiAgICAgICAgIHN0YXJ0ID0gX2dmbigoZ2ZuX3goc3RhcnQpICYgfkdVRVNUX0wy X0dGTl9NQVNLKSArCiAgICAgICAgICAgICAgICAgICAgICBndWVzdF9sMV90YWJsZV9vZmZzZXQo dmEpKTsKICAgICAgICAgZ3ctPmwxZSA9IGd1ZXN0X2wxZV9mcm9tX2dmbihzdGFydCwgZmxhZ3Mp OwotICAgICAgICBndy0+bDFtZm4gPSBfbWZuKElOVkFMSURfTUZOKTsKKyAgICAgICAgZ3ctPmwx bWZuID0gSU5WQUxJRF9NRk5fVDsKICAgICB9IAogICAgIGVsc2UgCiAgICAgewpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYyBiL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMK aW5kZXggOWMyY2Q0OS4uY2QxOGM3MyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL2hhcC9o YXAuYworKysgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCkBAIC00MzAsNyArNDMwLDcgQEAg c3RhdGljIG1mbl90IGhhcF9tYWtlX21vbml0b3JfdGFibGUoc3RydWN0IHZjcHUgKnYpCiAgb29t OgogICAgIEhBUF9FUlJPUigib3V0IG9mIG1lbW9yeSBidWlsZGluZyBtb25pdG9yIHBhZ2V0YWJs ZVxuIik7CiAgICAgZG9tYWluX2NyYXNoKGQpOwotICAgIHJldHVybiBfbWZuKElOVkFMSURfTUZO KTsKKyAgICByZXR1cm4gSU5WQUxJRF9NRk5fVDsKIH0KIAogc3RhdGljIHZvaWQgaGFwX2Rlc3Ry b3lfbW9uaXRvcl90YWJsZShzdHJ1Y3QgdmNwdSogdiwgbWZuX3QgbW1mbikKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCmlu ZGV4IDcxNjZjNzEuLjI1MjMzZjIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0 LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwpAQCAtODg3LDcgKzg4Nyw3IEBAIHN0 YXRpYyBtZm5fdCBlcHRfZ2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAgICAgaW50 IGk7CiAgICAgaW50IHJldCA9IDA7CiAgICAgYm9vbF90IHJlY2FsYyA9IDA7Ci0gICAgbWZuX3Qg bWZuID0gX21mbihJTlZBTElEX01GTik7CisgICAgbWZuX3QgbWZuID0gSU5WQUxJRF9NRk5fVDsK ICAgICBzdHJ1Y3QgZXB0X2RhdGEgKmVwdCA9ICZwMm0tPmVwdDsKIAogICAgICp0ID0gcDJtX21t aW9fZG07CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLXBvZC5jIGIveGVuL2FyY2gv eDg2L21tL3AybS1wb2QuYwppbmRleCBiN2FiMTY5Li4zY2Y5MDViIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvbW0vcDJtLXBvZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcG9kLmMKQEAg LTU1OSw3ICs1NTksNyBAQCBwMm1fcG9kX2RlY3JlYXNlX3Jlc2VydmF0aW9uKHN0cnVjdCBkb21h aW4gKmQsCiAgICAgewogICAgICAgICAvKiBBbGwgUG9EOiBNYXJrIHRoZSB3aG9sZSByZWdpb24g aW52YWxpZCBhbmQgdGVsbCBjYWxsZXIKICAgICAgICAgICogd2UncmUgZG9uZS4gKi8KLSAgICAg ICAgcDJtX3NldF9lbnRyeShwMm0sIGdwZm4sIF9tZm4oSU5WQUxJRF9NRk4pLCBvcmRlciwgcDJt X2ludmFsaWQsCisgICAgICAgIHAybV9zZXRfZW50cnkocDJtLCBncGZuLCBJTlZBTElEX01GTl9U LCBvcmRlciwgcDJtX2ludmFsaWQsCiAgICAgICAgICAgICAgICAgICAgICAgcDJtLT5kZWZhdWx0 X2FjY2Vzcyk7CiAgICAgICAgIHAybS0+cG9kLmVudHJ5X2NvdW50LT0oMTw8b3JkZXIpOwogICAg ICAgICBCVUdfT04ocDJtLT5wb2QuZW50cnlfY291bnQgPCAwKTsKQEAgLTYwMiw3ICs2MDIsNyBA QCBwMm1fcG9kX2RlY3JlYXNlX3Jlc2VydmF0aW9uKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAg IG4gPSAxVUwgPDwgY3VyX29yZGVyOwogICAgICAgICBpZiAoIHQgPT0gcDJtX3BvcHVsYXRlX29u X2RlbWFuZCApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHAybV9zZXRfZW50cnkocDJtLCBncGZu ICsgaSwgX21mbihJTlZBTElEX01GTiksIGN1cl9vcmRlciwKKyAgICAgICAgICAgIHAybV9zZXRf ZW50cnkocDJtLCBncGZuICsgaSwgSU5WQUxJRF9NRk5fVCwgY3VyX29yZGVyLAogICAgICAgICAg ICAgICAgICAgICAgICAgICBwMm1faW52YWxpZCwgcDJtLT5kZWZhdWx0X2FjY2Vzcyk7CiAgICAg ICAgICAgICBwMm0tPnBvZC5lbnRyeV9jb3VudCAtPSBuOwogICAgICAgICAgICAgQlVHX09OKHAy bS0+cG9kLmVudHJ5X2NvdW50IDwgMCk7CkBAIC02MjQsNyArNjI0LDcgQEAgcDJtX3BvZF9kZWNy ZWFzZV9yZXNlcnZhdGlvbihzdHJ1Y3QgZG9tYWluICpkLAogCiAgICAgICAgICAgICBwYWdlID0g bWZuX3RvX3BhZ2UobWZuKTsKIAotICAgICAgICAgICAgcDJtX3NldF9lbnRyeShwMm0sIGdwZm4g KyBpLCBfbWZuKElOVkFMSURfTUZOKSwgY3VyX29yZGVyLAorICAgICAgICAgICAgcDJtX3NldF9l bnRyeShwMm0sIGdwZm4gKyBpLCBJTlZBTElEX01GTl9ULCBjdXJfb3JkZXIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgIHAybV9pbnZhbGlkLCBwMm0tPmRlZmF1bHRfYWNjZXNzKTsKICAgICAg ICAgICAgIHAybV90bGJfZmx1c2hfc3luYyhwMm0pOwogICAgICAgICAgICAgZm9yICggaiA9IDA7 IGogPCBuOyArK2ogKQpAQCAtNjcxLDcgKzY3MSw3IEBAIHZvaWQgcDJtX3BvZF9kdW1wX2RhdGEo c3RydWN0IGRvbWFpbiAqZCkKIHN0YXRpYyBpbnQKIHAybV9wb2RfemVyb19jaGVja19zdXBlcnBh Z2Uoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm4pCiB7Ci0gICAgbWZu X3QgbWZuLCBtZm4wID0gX21mbihJTlZBTElEX01GTik7CisgICAgbWZuX3QgbWZuLCBtZm4wID0g SU5WQUxJRF9NRk5fVDsKICAgICBwMm1fdHlwZV90IHR5cGUsIHR5cGUwID0gMDsKICAgICB1bnNp Z25lZCBsb25nICogbWFwID0gTlVMTDsKICAgICBpbnQgcmV0PTAsIHJlc2V0ID0gMDsKQEAgLTc1 NCw3ICs3NTQsNyBAQCBwMm1fcG9kX3plcm9fY2hlY2tfc3VwZXJwYWdlKHN0cnVjdCBwMm1fZG9t YWluICpwMm0sIHVuc2lnbmVkIGxvbmcgZ2ZuKQogICAgIH0KIAogICAgIC8qIFRyeSB0byByZW1v dmUgdGhlIHBhZ2UsIHJlc3RvcmluZyBvbGQgbWFwcGluZyBpZiBpdCBmYWlscy4gKi8KLSAgICBw Mm1fc2V0X2VudHJ5KHAybSwgZ2ZuLCBfbWZuKElOVkFMSURfTUZOKSwgUEFHRV9PUkRFUl8yTSwK KyAgICBwMm1fc2V0X2VudHJ5KHAybSwgZ2ZuLCBJTlZBTElEX01GTl9ULCBQQUdFX09SREVSXzJN LAogICAgICAgICAgICAgICAgICAgcDJtX3BvcHVsYXRlX29uX2RlbWFuZCwgcDJtLT5kZWZhdWx0 X2FjY2Vzcyk7CiAgICAgcDJtX3RsYl9mbHVzaF9zeW5jKHAybSk7CiAKQEAgLTg3MSw3ICs4NzEs NyBAQCBwMm1fcG9kX3plcm9fY2hlY2soc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQg bG9uZyAqZ2ZucywgaW50IGNvdW50KQogICAgICAgICB9CiAKICAgICAgICAgLyogVHJ5IHRvIHJl bW92ZSB0aGUgcGFnZSwgcmVzdG9yaW5nIG9sZCBtYXBwaW5nIGlmIGl0IGZhaWxzLiAqLwotICAg ICAgICBwMm1fc2V0X2VudHJ5KHAybSwgZ2Zuc1tpXSwgX21mbihJTlZBTElEX01GTiksIFBBR0Vf T1JERVJfNEssCisgICAgICAgIHAybV9zZXRfZW50cnkocDJtLCBnZm5zW2ldLCBJTlZBTElEX01G Tl9ULCBQQUdFX09SREVSXzRLLAogICAgICAgICAgICAgICAgICAgICAgIHAybV9wb3B1bGF0ZV9v bl9kZW1hbmQsIHAybS0+ZGVmYXVsdF9hY2Nlc3MpOwogCiAgICAgICAgIC8qIFNlZSBpZiB0aGUg cGFnZSB3YXMgc3VjY2Vzc2Z1bGx5IHVubWFwcGVkLiAgKEFsbG93IG9uZSByZWZjb3VudApAQCAt MTA3Myw3ICsxMDczLDcgQEAgcDJtX3BvZF9kZW1hbmRfcG9wdWxhdGUoc3RydWN0IHAybV9kb21h aW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm4sCiAgICAgICAgICAqIE5PVEU6IEluIGEgZmluZS1n cmFpbmVkIHAybSBsb2NraW5nIHNjZW5hcmlvIHRoaXMgb3BlcmF0aW9uCiAgICAgICAgICAqIG1h eSBuZWVkIHRvIHByb21vdGUgaXRzIGxvY2tpbmcgZnJvbSBnZm4tPjFnIHN1cGVycGFnZQogICAg ICAgICAgKi8KLSAgICAgICAgcDJtX3NldF9lbnRyeShwMm0sIGdmbl9hbGlnbmVkLCBfbWZuKElO VkFMSURfTUZOKSwgUEFHRV9PUkRFUl8yTSwKKyAgICAgICAgcDJtX3NldF9lbnRyeShwMm0sIGdm bl9hbGlnbmVkLCBJTlZBTElEX01GTl9ULCBQQUdFX09SREVSXzJNLAogICAgICAgICAgICAgICAg ICAgICAgIHAybV9wb3B1bGF0ZV9vbl9kZW1hbmQsIHAybS0+ZGVmYXVsdF9hY2Nlc3MpOwogICAg ICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xMTU3LDcgKzExNTcsNyBAQCByZW1hcF9hbmRfcmV0 cnk6CiAgICAgICogbmVlZCBwcm9tb3RpbmcgdGhlIGdmbiBsb2NrIGZyb20gZ2ZuLT4yTSBzdXBl cnBhZ2UgKi8KICAgICBnZm5fYWxpZ25lZCA9IChnZm4+Pm9yZGVyKTw8b3JkZXI7CiAgICAgZm9y KGk9MDsgaTwoMTw8b3JkZXIpOyBpKyspCi0gICAgICAgIHAybV9zZXRfZW50cnkocDJtLCBnZm5f YWxpZ25lZCArIGksIF9tZm4oSU5WQUxJRF9NRk4pLCBQQUdFX09SREVSXzRLLAorICAgICAgICBw Mm1fc2V0X2VudHJ5KHAybSwgZ2ZuX2FsaWduZWQgKyBpLCBJTlZBTElEX01GTl9ULCBQQUdFX09S REVSXzRLLAogICAgICAgICAgICAgICAgICAgICAgIHAybV9wb3B1bGF0ZV9vbl9kZW1hbmQsIHAy bS0+ZGVmYXVsdF9hY2Nlc3MpOwogICAgIGlmICggdGJfaW5pdF9kb25lICkKICAgICB7CkBAIC0x MjE1LDcgKzEyMTUsNyBAQCBndWVzdF9waHlzbWFwX21hcmtfcG9wdWxhdGVfb25fZGVtYW5kKHN0 cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAogICAgIH0KIAogICAgIC8qIE5vdywg YWN0dWFsbHkgZG8gdGhlIHR3by13YXkgbWFwcGluZyAqLwotICAgIHJjID0gcDJtX3NldF9lbnRy eShwMm0sIGdmbiwgX21mbihJTlZBTElEX01GTiksIG9yZGVyLAorICAgIHJjID0gcDJtX3NldF9l bnRyeShwMm0sIGdmbiwgSU5WQUxJRF9NRk5fVCwgb3JkZXIsCiAgICAgICAgICAgICAgICAgICAg ICAgIHAybV9wb3B1bGF0ZV9vbl9kZW1hbmQsIHAybS0+ZGVmYXVsdF9hY2Nlc3MpOwogICAgIGlm ICggcmMgPT0gMCApCiAgICAgewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5j IGIveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCmluZGV4IDQ5ODA5MzQuLjkzYThmNTkgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJt LXB0LmMKQEAgLTc2NCw3ICs3NjQsNyBAQCBwMm1fcHRfZ2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9t YWluICpwMm0sIHVuc2lnbmVkIGxvbmcgZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgcDJtLT5t YXhfbWFwcGVkX3BmbiApCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0g ICAgICAgIHJldHVybiBfbWZuKElOVkFMSURfTUZOKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURf TUZOX1Q7CiAgICAgfQogCiAgICAgbWZuID0gcGFnZXRhYmxlX2dldF9tZm4ocDJtX2dldF9wYWdl dGFibGUocDJtKSk7CkBAIC03NzcsNyArNzc3LDcgQEAgcDJtX3B0X2dldF9lbnRyeShzdHJ1Y3Qg cDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbiwKICAgICAgICAgaWYgKCAobDRlX2dl dF9mbGFncygqbDRlKSAmIF9QQUdFX1BSRVNFTlQpID09IDAgKQogICAgICAgICB7CiAgICAgICAg ICAgICB1bm1hcF9kb21haW5fcGFnZShsNGUpOwotICAgICAgICAgICAgcmV0dXJuIF9tZm4oSU5W QUxJRF9NRk4pOworICAgICAgICAgICAgcmV0dXJuIElOVkFMSURfTUZOX1Q7CiAgICAgICAgIH0K ICAgICAgICAgbWZuID0gX21mbihsNGVfZ2V0X3BmbigqbDRlKSk7CiAgICAgICAgIHJlY2FsYyA9 IG5lZWRzX3JlY2FsYyhsNCwgKmw0ZSk7CkBAIC04MDUsNyArODA1LDcgQEAgcG9kX3JldHJ5X2wz OgogICAgICAgICAgICAgICAgICAgICAqdCA9IHAybV9wb3B1bGF0ZV9vbl9kZW1hbmQ7CiAgICAg ICAgICAgICB9CiAgICAgICAgICAgICB1bm1hcF9kb21haW5fcGFnZShsM2UpOwotICAgICAgICAg ICAgcmV0dXJuIF9tZm4oSU5WQUxJRF9NRk4pOworICAgICAgICAgICAgcmV0dXJuIElOVkFMSURf TUZOX1Q7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCBmbGFncyAmIF9QQUdFX1BTRSApCiAgICAg ICAgIHsKQEAgLTgxNyw3ICs4MTcsNyBAQCBwb2RfcmV0cnlfbDM6CiAgICAgICAgICAgICB1bm1h cF9kb21haW5fcGFnZShsM2UpOwogCiAgICAgICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKG1mbikg fHwgIXAybV9pc19yYW0oKnQpKTsKLSAgICAgICAgICAgIHJldHVybiAocDJtX2lzX3ZhbGlkKCp0 KSkgPyBtZm4gOiBfbWZuKElOVkFMSURfTUZOKTsKKyAgICAgICAgICAgIHJldHVybiAocDJtX2lz X3ZhbGlkKCp0KSkgPyBtZm4gOiBJTlZBTElEX01GTl9UOwogICAgICAgICB9CiAKICAgICAgICAg bWZuID0gX21mbihsM2VfZ2V0X3BmbigqbDNlKSk7CkBAIC04NDYsNyArODQ2LDcgQEAgcG9kX3Jl dHJ5X2wyOgogICAgICAgICB9CiAgICAgCiAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKGwyZSk7 Ci0gICAgICAgIHJldHVybiBfbWZuKElOVkFMSURfTUZOKTsKKyAgICAgICAgcmV0dXJuIElOVkFM SURfTUZOX1Q7CiAgICAgfQogICAgIGlmICggZmxhZ3MgJiBfUEFHRV9QU0UgKQogICAgIHsKQEAg LTg1Niw3ICs4NTYsNyBAQCBwb2RfcmV0cnlfbDI6CiAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdl KGwyZSk7CiAgICAgICAgIAogICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKG1mbikgfHwgIXAybV9p c19yYW0oKnQpKTsKLSAgICAgICAgcmV0dXJuIChwMm1faXNfdmFsaWQoKnQpKSA/IG1mbiA6IF9t Zm4oSU5WQUxJRF9NRk4pOworICAgICAgICByZXR1cm4gKHAybV9pc192YWxpZCgqdCkpID8gbWZu IDogSU5WQUxJRF9NRk5fVDsKICAgICB9CiAKICAgICBtZm4gPSBfbWZuKGwyZV9nZXRfcGZuKCps MmUpKTsKQEAgLTg4NSwxNCArODg1LDE0IEBAIHBvZF9yZXRyeV9sMToKICAgICAgICAgfQogICAg IAogICAgICAgICB1bm1hcF9kb21haW5fcGFnZShsMWUpOwotICAgICAgICByZXR1cm4gX21mbihJ TlZBTElEX01GTik7CisgICAgICAgIHJldHVybiBJTlZBTElEX01GTl9UOwogICAgIH0KICAgICBt Zm4gPSBfbWZuKGwxZV9nZXRfcGZuKCpsMWUpKTsKICAgICAqdCA9IHJlY2FsY190eXBlKHJlY2Fs YyB8fCBfbmVlZHNfcmVjYWxjKGZsYWdzKSwgbDF0LCBwMm0sIGdmbik7CiAgICAgdW5tYXBfZG9t YWluX3BhZ2UobDFlKTsKIAogICAgIEFTU0VSVChtZm5fdmFsaWQobWZuKSB8fCAhcDJtX2lzX3Jh bSgqdCkgfHwgcDJtX2lzX3BhZ2luZygqdCkpOwotICAgIHJldHVybiAocDJtX2lzX3ZhbGlkKCp0 KSB8fCBwMm1faXNfZ3JhbnQoKnQpKSA/IG1mbiA6IF9tZm4oSU5WQUxJRF9NRk4pOworICAgIHJl dHVybiAocDJtX2lzX3ZhbGlkKCp0KSB8fCBwMm1faXNfZ3JhbnQoKnQpKSA/IG1mbiA6IElOVkFM SURfTUZOX1Q7CiB9CiAKIHN0YXRpYyB2b2lkIHAybV9wdF9jaGFuZ2VfZW50cnlfdHlwZV9nbG9i YWwoc3RydWN0IHAybV9kb21haW4gKnAybSwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9w Mm0uYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRleCA2MjU4YTViLi5mODdiMTk3IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5j CkBAIC0zODgsNyArMzg4LDcgQEAgbWZuX3QgX19nZXRfZ2ZuX3R5cGVfYWNjZXNzKHN0cnVjdCBw Mm1fZG9tYWluICpwMm0sIHVuc2lnbmVkIGxvbmcgZ2ZuLAogICAgIGlmICh1bmxpa2VseSgocDJt X2lzX2Jyb2tlbigqdCkpKSkKICAgICB7CiAgICAgICAgIC8qIFJldHVybiBpbnZhbGlkX21mbiB0 byBhdm9pZCBjYWxsZXIncyBhY2Nlc3MgKi8KLSAgICAgICAgbWZuID0gX21mbihJTlZBTElEX01G Tik7CisgICAgICAgIG1mbiA9IElOVkFMSURfTUZOX1Q7CiAgICAgICAgIGlmICggcSAmIFAyTV9B TExPQyApCiAgICAgICAgICAgICBkb21haW5fY3Jhc2gocDJtLT5kb21haW4pOwogICAgIH0KQEAg LTU4MCw3ICs1ODAsNyBAQCBpbnQgcDJtX2FsbG9jX3RhYmxlKHN0cnVjdCBwMm1fZG9tYWluICpw Mm0pCiAKICAgICAvKiBJbml0aWFsaXNlIHBoeXNtYXAgdGFibGVzIGZvciBzbG90IHplcm8uIE90 aGVyIGNvZGUgYXNzdW1lcyB0aGlzLiAqLwogICAgIHAybS0+ZGVmZXJfbmVzdGVkX2ZsdXNoID0g MTsKLSAgICByYyA9IHAybV9zZXRfZW50cnkocDJtLCAwLCBfbWZuKElOVkFMSURfTUZOKSwgUEFH RV9PUkRFUl80SywKKyAgICByYyA9IHAybV9zZXRfZW50cnkocDJtLCAwLCBJTlZBTElEX01GTl9U LCBQQUdFX09SREVSXzRLLAogICAgICAgICAgICAgICAgICAgICAgICBwMm1faW52YWxpZCwgcDJt LT5kZWZhdWx0X2FjY2Vzcyk7CiAgICAgcDJtLT5kZWZlcl9uZXN0ZWRfZmx1c2ggPSAwOwogICAg IHAybV91bmxvY2socDJtKTsKQEAgLTY3MCw3ICs2NzAsNyBAQCBwMm1fcmVtb3ZlX3BhZ2Uoc3Ry dWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm4sIHVuc2lnbmVkIGxvbmcgbWZu LAogICAgICAgICAgICAgQVNTRVJUKCAhcDJtX2lzX3ZhbGlkKHQpIHx8IG1mbiArIGkgPT0gbWZu X3gobWZuX3JldHVybikgKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gcDJtX3NldF9l bnRyeShwMm0sIGdmbiwgX21mbihJTlZBTElEX01GTiksIHBhZ2Vfb3JkZXIsIHAybV9pbnZhbGlk LAorICAgIHJldHVybiBwMm1fc2V0X2VudHJ5KHAybSwgZ2ZuLCBJTlZBTElEX01GTl9ULCBwYWdl X29yZGVyLCBwMm1faW52YWxpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICBwMm0tPmRlZmF1 bHRfYWNjZXNzKTsKIH0KIApAQCAtODQwLDcgKzg0MCw3IEBAIGd1ZXN0X3BoeXNtYXBfYWRkX2Vu dHJ5KHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgbWZuX3QgbWZuLAogICAgIHsKICAgICAg ICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJBZGRpbmcgYmFkIG1mbiB0byBwMm0gbWFwICgl I2x4IC0+ICUjbHgpXG4iLAogICAgICAgICAgICAgICAgICBnZm5feChnZm4pLCBtZm5feChtZm4p KTsKLSAgICAgICAgcmMgPSBwMm1fc2V0X2VudHJ5KHAybSwgZ2ZuX3goZ2ZuKSwgX21mbihJTlZB TElEX01GTiksIHBhZ2Vfb3JkZXIsCisgICAgICAgIHJjID0gcDJtX3NldF9lbnRyeShwMm0sIGdm bl94KGdmbiksIElOVkFMSURfTUZOX1QsIHBhZ2Vfb3JkZXIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwMm1faW52YWxpZCwgcDJtLT5kZWZhdWx0X2FjY2Vzcyk7CiAgICAgICAgIGlmICgg cmMgPT0gMCApCiAgICAgICAgIHsKQEAgLTExMTcsNyArMTExNyw3IEBAIGludCBjbGVhcl9tbWlv X3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwgbWZuX3QgbWZu LAogICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKICAgICAgICAgICAgICAgICAgIm5v IG1hcHBpbmcgYmV0d2VlbiBtZm4gJTA4bHggYW5kIGdmbiAlMDhseFxuIiwKICAgICAgICAgICAg ICAgICAgbWZuX3gobWZuKSwgZ2ZuKTsKLSAgICByYyA9IHAybV9zZXRfZW50cnkocDJtLCBnZm4s IF9tZm4oSU5WQUxJRF9NRk4pLCBvcmRlciwgcDJtX2ludmFsaWQsCisgICAgcmMgPSBwMm1fc2V0 X2VudHJ5KHAybSwgZ2ZuLCBJTlZBTElEX01GTl9ULCBvcmRlciwgcDJtX2ludmFsaWQsCiAgICAg ICAgICAgICAgICAgICAgICAgIHAybS0+ZGVmYXVsdF9hY2Nlc3MpOwogCiAgb3V0OgpAQCAtMTE0 Niw3ICsxMTQ2LDcgQEAgaW50IGNsZWFyX2lkZW50aXR5X3AybV9lbnRyeShzdHJ1Y3QgZG9tYWlu ICpkLCB1bnNpZ25lZCBsb25nIGdmbikKICAgICBtZm4gPSBwMm0tPmdldF9lbnRyeShwMm0sIGdm biwgJnAybXQsICZhLCAwLCBOVUxMLCBOVUxMKTsKICAgICBpZiAoIHAybXQgPT0gcDJtX21taW9f ZGlyZWN0ICYmIG1mbl94KG1mbikgPT0gZ2ZuICkKICAgICB7Ci0gICAgICAgIHJldCA9IHAybV9z ZXRfZW50cnkocDJtLCBnZm4sIF9tZm4oSU5WQUxJRF9NRk4pLCBQQUdFX09SREVSXzRLLAorICAg ICAgICByZXQgPSBwMm1fc2V0X2VudHJ5KHAybSwgZ2ZuLCBJTlZBTElEX01GTl9ULCBQQUdFX09S REVSXzRLLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybV9pbnZhbGlkLCBwMm0tPmRl ZmF1bHRfYWNjZXNzKTsKICAgICAgICAgZ2ZuX3VubG9jayhwMm0sIGdmbiwgMCk7CiAgICAgfQpA QCAtMTMxNiw3ICsxMzE2LDcgQEAgaW50IHAybV9tZW1fcGFnaW5nX2V2aWN0KHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKQogICAgICAgICBwdXRfcGFnZShwYWdlKTsKIAogICAg IC8qIFJlbW92ZSBtYXBwaW5nIGZyb20gcDJtIHRhYmxlICovCi0gICAgcmV0ID0gcDJtX3NldF9l bnRyeShwMm0sIGdmbiwgX21mbihJTlZBTElEX01GTiksIFBBR0VfT1JERVJfNEssCisgICAgcmV0 ID0gcDJtX3NldF9lbnRyeShwMm0sIGdmbiwgSU5WQUxJRF9NRk5fVCwgUEFHRV9PUkRFUl80SywK ICAgICAgICAgICAgICAgICAgICAgICAgIHAybV9yYW1fcGFnZWQsIGEpOwogCiAgICAgLyogQ2xl YXIgY29udGVudCBiZWZvcmUgcmV0dXJuaW5nIHRoZSBwYWdlIHRvIFhlbiAqLwpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L21tL3BhZ2luZy5jIGIveGVuL2FyY2gveDg2L21tL3BhZ2luZy5jCmlu ZGV4IDgyMTliYjYuLmUwODZhMjMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcu YworKysgYi94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMKQEAgLTY3LDcgKzY3LDcgQEAgc3RhdGlj IG1mbl90IHBhZ2luZ19uZXdfbG9nX2RpcnR5X3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCkKICAgICBp ZiAoIHVubGlrZWx5KHBhZ2UgPT0gTlVMTCkgKQogICAgIHsKICAgICAgICAgZC0+YXJjaC5wYWdp bmcubG9nX2RpcnR5LmZhaWxlZF9hbGxvY3MrKzsKLSAgICAgICAgcmV0dXJuIF9tZm4oSU5WQUxJ RF9NRk4pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9NRk5fVDsKICAgICB9CiAKICAgICBkLT5h cmNoLnBhZ2luZy5sb2dfZGlydHkuYWxsb2NzKys7CkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBt Zm5fdCBwYWdpbmdfbmV3X2xvZ19kaXJ0eV9ub2RlKHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAg IGludCBpOwogICAgICAgICBtZm5fdCAqbm9kZSA9IG1hcF9kb21haW5fcGFnZShtZm4pOwogICAg ICAgICBmb3IgKCBpID0gMDsgaSA8IExPR0RJUlRZX05PREVfRU5UUklFUzsgaSsrICkKLSAgICAg ICAgICAgIG5vZGVbaV0gPSBfbWZuKElOVkFMSURfTUZOKTsKKyAgICAgICAgICAgIG5vZGVbaV0g PSBJTlZBTElEX01GTl9UOwogICAgICAgICB1bm1hcF9kb21haW5fcGFnZShub2RlKTsKICAgICB9 CiAgICAgcmV0dXJuIG1mbjsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBzdGF0aWMgaW50IHBhZ2luZ19m cmVlX2xvZ19kaXJ0eV9iaXRtYXAoc3RydWN0IGRvbWFpbiAqZCwgaW50IHJjKQogCiAgICAgICAg ICAgICB1bm1hcF9kb21haW5fcGFnZShsMik7CiAgICAgICAgICAgICBwYWdpbmdfZnJlZV9sb2df ZGlydHlfcGFnZShkLCBsM1tpM10pOwotICAgICAgICAgICAgbDNbaTNdID0gX21mbihJTlZBTElE X01GTik7CisgICAgICAgICAgICBsM1tpM10gPSBJTlZBTElEX01GTl9UOwogCiAgICAgICAgICAg ICBpZiAoIGkzIDwgTE9HRElSVFlfTk9ERV9FTlRSSUVTIC0gMSAmJiBoeXBlcmNhbGxfcHJlZW1w dF9jaGVjaygpICkKICAgICAgICAgICAgIHsKQEAgLTE4Miw3ICsxODIsNyBAQCBzdGF0aWMgaW50 IHBhZ2luZ19mcmVlX2xvZ19kaXJ0eV9iaXRtYXAoc3RydWN0IGRvbWFpbiAqZCwgaW50IHJjKQog ICAgICAgICBpZiAoIHJjICkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBwYWdpbmdfZnJl ZV9sb2dfZGlydHlfcGFnZShkLCBsNFtpNF0pOwotICAgICAgICBsNFtpNF0gPSBfbWZuKElOVkFM SURfTUZOKTsKKyAgICAgICAgbDRbaTRdID0gSU5WQUxJRF9NRk5fVDsKIAogICAgICAgICBpZiAo IGk0IDwgTE9HRElSVFlfTk9ERV9FTlRSSUVTIC0gMSAmJiBoeXBlcmNhbGxfcHJlZW1wdF9jaGVj aygpICkKICAgICAgICAgewpAQCAtMTk4LDcgKzE5OCw3IEBAIHN0YXRpYyBpbnQgcGFnaW5nX2Zy ZWVfbG9nX2RpcnR5X2JpdG1hcChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgcmMpCiAgICAgaWYgKCAh cmMgKQogICAgIHsKICAgICAgICAgcGFnaW5nX2ZyZWVfbG9nX2RpcnR5X3BhZ2UoZCwgZC0+YXJj aC5wYWdpbmcubG9nX2RpcnR5LnRvcCk7Ci0gICAgICAgIGQtPmFyY2gucGFnaW5nLmxvZ19kaXJ0 eS50b3AgPSBfbWZuKElOVkFMSURfTUZOKTsKKyAgICAgICAgZC0+YXJjaC5wYWdpbmcubG9nX2Rp cnR5LnRvcCA9IElOVkFMSURfTUZOX1Q7CiAKICAgICAgICAgQVNTRVJUKGQtPmFyY2gucGFnaW5n LmxvZ19kaXJ0eS5hbGxvY3MgPT0gMCk7CiAgICAgICAgIGQtPmFyY2gucGFnaW5nLmxvZ19kaXJ0 eS5mYWlsZWRfYWxsb2NzID0gMDsKQEAgLTY2MCw3ICs2NjAsNyBAQCBpbnQgcGFnaW5nX2RvbWFp bl9pbml0KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBkb21jcl9mbGFncykKICAgICAv KiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgc2VwYXJhdGVseSBmcm9tIHRoZSByZXN0IG9mIHRo ZQogICAgICAqIGxvZy1kaXJ0eSBpbml0IGNvZGUgYXMgdGhhdCBjYW4gYmUgY2FsbGVkIG1vcmUg dGhhbiBvbmNlIGFuZCB3ZQogICAgICAqIGRvbid0IHdhbnQgdG8gbGVhayBhbnkgYWN0aXZlIGxv Zy1kaXJ0eSBiaXRtYXBzICovCi0gICAgZC0+YXJjaC5wYWdpbmcubG9nX2RpcnR5LnRvcCA9IF9t Zm4oSU5WQUxJRF9NRk4pOworICAgIGQtPmFyY2gucGFnaW5nLmxvZ19kaXJ0eS50b3AgPSBJTlZB TElEX01GTl9UOwogCiAgICAgLyoKICAgICAgKiBTaGFkb3cgcGFnZXRhYmxlcyBhcmUgdGhlIGRl ZmF1bHQsIGJ1dCB3ZSB3aWxsIHVzZQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3NoYWRv dy9jb21tb24uYyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKaW5kZXggMjI2ZTMy ZC4uNGEzMjIyMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYwor KysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCkBAIC04OCwxMCArODgsMTAgQEAg dm9pZCBzaGFkb3dfdmNwdV9pbml0KHN0cnVjdCB2Y3B1ICp2KQogCiAgICAgZm9yICggaSA9IDA7 IGkgPCBTSEFET1dfT09TX1BBR0VTOyBpKysgKQogICAgIHsKLSAgICAgICAgdi0+YXJjaC5wYWdp bmcuc2hhZG93Lm9vc1tpXSA9IF9tZm4oSU5WQUxJRF9NRk4pOwotICAgICAgICB2LT5hcmNoLnBh Z2luZy5zaGFkb3cub29zX3NuYXBzaG90W2ldID0gX21mbihJTlZBTElEX01GTik7CisgICAgICAg IHYtPmFyY2gucGFnaW5nLnNoYWRvdy5vb3NbaV0gPSBJTlZBTElEX01GTl9UOworICAgICAgICB2 LT5hcmNoLnBhZ2luZy5zaGFkb3cub29zX3NuYXBzaG90W2ldID0gSU5WQUxJRF9NRk5fVDsKICAg ICAgICAgZm9yICggaiA9IDA7IGogPCBTSEFET1dfT09TX0ZJWFVQUzsgaisrICkKLSAgICAgICAg ICAgIHYtPmFyY2gucGFnaW5nLnNoYWRvdy5vb3NfZml4dXBbaV0uc21mbltqXSA9IF9tZm4oSU5W QUxJRF9NRk4pOworICAgICAgICAgICAgdi0+YXJjaC5wYWdpbmcuc2hhZG93Lm9vc19maXh1cFtp XS5zbWZuW2pdID0gSU5WQUxJRF9NRk5fVDsKICAgICB9CiAjZW5kaWYKIApAQCAtNTk4LDcgKzU5 OCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IG9vc19maXh1cF9mbHVzaF9nbWZuKHN0cnVjdCB2Y3B1 ICp2LCBtZm5fdCBnbWZuLAogICAgICAgICAgICAgc2hfcmVtb3ZlX3dyaXRlX2FjY2Vzc19mcm9t X3NsMXAoZCwgZ21mbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZpeHVwLT5zbWZuW2ldLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZml4dXAtPm9mZltpXSk7Ci0gICAgICAgICAgICBmaXh1cC0+c21mbltpXSA9IF9t Zm4oSU5WQUxJRF9NRk4pOworICAgICAgICAgICAgZml4dXAtPnNtZm5baV0gPSBJTlZBTElEX01G Tl9UOwogICAgICAgICB9CiAgICAgfQogCkBAIC03NTcsNyArNzU3LDcgQEAgc3RhdGljIHZvaWQg b29zX2hhc2hfYWRkKHN0cnVjdCB2Y3B1ICp2LCBtZm5fdCBnbWZuKQogICAgIHN0cnVjdCBvb3Nf Zml4dXAgZml4dXAgPSB7IC5uZXh0ID0gMCB9OwogCiAgICAgZm9yIChpID0gMDsgaSA8IFNIQURP V19PT1NfRklYVVBTOyBpKysgKQotICAgICAgICBmaXh1cC5zbWZuW2ldID0gX21mbihJTlZBTElE X01GTik7CisgICAgICAgIGZpeHVwLnNtZm5baV0gPSBJTlZBTElEX01GTl9UOwogCiAgICAgaWR4 ID0gbWZuX3goZ21mbikgJSBTSEFET1dfT09TX1BBR0VTOwogICAgIG9pZHggPSBpZHg7CkBAIC04 MDcsNyArODA3LDcgQEAgc3RhdGljIHZvaWQgb29zX2hhc2hfcmVtb3ZlKHN0cnVjdCBkb21haW4g KmQsIG1mbl90IGdtZm4pCiAgICAgICAgICAgICBpZHggPSAoaWR4ICsgMSkgJSBTSEFET1dfT09T X1BBR0VTOwogICAgICAgICBpZiAoIG1mbl94KG9vc1tpZHhdKSA9PSBtZm5feChnbWZuKSApCiAg ICAgICAgIHsKLSAgICAgICAgICAgIG9vc1tpZHhdID0gX21mbihJTlZBTElEX01GTik7CisgICAg ICAgICAgICBvb3NbaWR4XSA9IElOVkFMSURfTUZOX1Q7CiAgICAgICAgICAgICByZXR1cm47CiAg ICAgICAgIH0KICAgICB9CkBAIC04MzgsNyArODM4LDcgQEAgbWZuX3Qgb29zX3NuYXBzaG90X2xv b2t1cChzdHJ1Y3QgZG9tYWluICpkLCBtZm5fdCBnbWZuKQogCiAgICAgU0hBRE9XX0VSUk9SKCJn bWZuICVseCB3YXMgT09TIGJ1dCBub3QgaW4gaGFzaCB0YWJsZVxuIiwgbWZuX3goZ21mbikpOwog ICAgIEJVRygpOwotICAgIHJldHVybiBfbWZuKElOVkFMSURfTUZOKTsKKyAgICByZXR1cm4gSU5W QUxJRF9NRk5fVDsKIH0KIAogLyogUHVsbCBhIHNpbmdsZSBndWVzdCBwYWdlIGJhY2sgaW50byBz eW5jICovCkBAIC04NjIsNyArODYyLDcgQEAgdm9pZCBzaF9yZXN5bmMoc3RydWN0IGRvbWFpbiAq ZCwgbWZuX3QgZ21mbikKICAgICAgICAgaWYgKCBtZm5feChvb3NbaWR4XSkgPT0gbWZuX3goZ21m bikgKQogICAgICAgICB7CiAgICAgICAgICAgICBfc2hfcmVzeW5jKHYsIGdtZm4sICZvb3NfZml4 dXBbaWR4XSwgb29zX3NuYXBzaG90W2lkeF0pOwotICAgICAgICAgICAgb29zW2lkeF0gPSBfbWZu KElOVkFMSURfTUZOKTsKKyAgICAgICAgICAgIG9vc1tpZHhdID0gSU5WQUxJRF9NRk5fVDsKICAg ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTkxNCw3ICs5MTQsNyBAQCB2 b2lkIHNoX3Jlc3luY19hbGwoc3RydWN0IHZjcHUgKnYsIGludCBza2lwLCBpbnQgdGhpcywgaW50 IG90aGVycykKICAgICAgICAgewogICAgICAgICAgICAgLyogV3JpdGUtcHJvdGVjdCBhbmQgc3lu YyBjb250ZW50cyAqLwogICAgICAgICAgICAgX3NoX3Jlc3luYyh2LCBvb3NbaWR4XSwgJm9vc19m aXh1cFtpZHhdLCBvb3Nfc25hcHNob3RbaWR4XSk7Ci0gICAgICAgICAgICBvb3NbaWR4XSA9IF9t Zm4oSU5WQUxJRF9NRk4pOworICAgICAgICAgICAgb29zW2lkeF0gPSBJTlZBTElEX01GTl9UOwog ICAgICAgICB9CiAKICByZXN5bmNfb3RoZXJzOgpAQCAtOTQ4LDcgKzk0OCw3IEBAIHZvaWQgc2hf cmVzeW5jX2FsbChzdHJ1Y3QgdmNwdSAqdiwgaW50IHNraXAsIGludCB0aGlzLCBpbnQgb3RoZXJz KQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8qIFdyaXRlLXByb3RlY3QgYW5kIHN5 bmMgY29udGVudHMgKi8KICAgICAgICAgICAgICAgICBfc2hfcmVzeW5jKG90aGVyLCBvb3NbaWR4 XSwgJm9vc19maXh1cFtpZHhdLCBvb3Nfc25hcHNob3RbaWR4XSk7Ci0gICAgICAgICAgICAgICAg b29zW2lkeF0gPSBfbWZuKElOVkFMSURfTUZOKTsKKyAgICAgICAgICAgICAgICBvb3NbaWR4XSA9 IElOVkFMSURfTUZOX1Q7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xNzg0 LDcgKzE3ODQsNyBAQCB2b2lkICpzaF9lbXVsYXRlX21hcF9kZXN0KHN0cnVjdCB2Y3B1ICp2LCB1 bnNpZ25lZCBsb25nIHZhZGRyLAogICAgIGlmICggbGlrZWx5KCgodmFkZHIgKyBieXRlcyAtIDEp ICYgUEFHRV9NQVNLKSA9PSAodmFkZHIgJiBQQUdFX01BU0spKSApCiAgICAgewogICAgICAgICAv KiBXaG9sZSB3cml0ZSBmaXRzIG9uIGEgc2luZ2xlIHBhZ2UuICovCi0gICAgICAgIHNoX2N0eHQt Pm1mblsxXSA9IF9tZm4oSU5WQUxJRF9NRk4pOworICAgICAgICBzaF9jdHh0LT5tZm5bMV0gPSBJ TlZBTElEX01GTl9UOwogICAgICAgICBtYXAgPSBtYXBfZG9tYWluX3BhZ2Uoc2hfY3R4dC0+bWZu WzBdKSArICh2YWRkciAmIH5QQUdFX01BU0spOwogICAgIH0KICAgICBlbHNlIGlmICggIWlzX2h2 bV9kb21haW4oZCkgKQpAQCAtMjA4Niw3ICsyMDg2LDcgQEAgbWZuX3Qgc2hhZG93X2hhc2hfbG9v a3VwKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgbiwgdW5zaWduZWQgaW50IHQpCiAg ICAgfQogCiAgICAgcGVyZmNfaW5jcihzaGFkb3dfaGFzaF9sb29rdXBfbWlzcyk7Ci0gICAgcmV0 dXJuIF9tZm4oSU5WQUxJRF9NRk4pOworICAgIHJldHVybiBJTlZBTElEX01GTl9UOwogfQogCiB2 b2lkIHNoYWRvd19oYXNoX2luc2VydChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIG4s IHVuc2lnbmVkIGludCB0LApAQCAtMjkxMCw3ICsyOTEwLDcgQEAgdm9pZCBzaF9yZXNldF9sM191 cF9wb2ludGVycyhzdHJ1Y3QgdmNwdSAqdikKICAgICB9OwogICAgIHN0YXRpYyBjb25zdCB1bnNp Z25lZCBpbnQgY2FsbGJhY2tfbWFzayA9IFNIRl9MM182NDsKIAotICAgIGhhc2hfdmNwdV9mb3Jl YWNoKHYsIGNhbGxiYWNrX21hc2ssIGNhbGxiYWNrcywgX21mbihJTlZBTElEX01GTikpOworICAg IGhhc2hfdmNwdV9mb3JlYWNoKHYsIGNhbGxiYWNrX21hc2ssIGNhbGxiYWNrcywgSU5WQUxJRF9N Rk5fVCk7CiB9CiAKIApAQCAtMzI4NCw3ICszMjg0LDcgQEAgdm9pZCBzaGFkb3dfdGVhcmRvd24o c3RydWN0IGRvbWFpbiAqZCwgaW50ICpwcmVlbXB0ZWQpCiAgICAgICAgICAgICAgICAgaWYgKCBt Zm5fdmFsaWQob29zX3NuYXBzaG90W2ldKSApCiAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICBzaGFkb3dfZnJlZShkLCBvb3Nfc25hcHNob3RbaV0pOwotICAgICAgICAgICAg ICAgICAgICBvb3Nfc25hcHNob3RbaV0gPSBfbWZuKElOVkFMSURfTUZOKTsKKyAgICAgICAgICAg ICAgICAgICAgb29zX3NuYXBzaG90W2ldID0gSU5WQUxJRF9NRk5fVDsKICAgICAgICAgICAgICAg ICB9CiAgICAgICAgIH0KICNlbmRpZiAvKiBPT1MgKi8KQEAgLTM0NDksNyArMzQ0OSw3IEBAIHN0 YXRpYyBpbnQgc2hhZG93X29uZV9iaXRfZGlzYWJsZShzdHJ1Y3QgZG9tYWluICpkLCB1MzIgbW9k ZSkKICAgICAgICAgICAgICAgICAgICAgaWYgKCBtZm5fdmFsaWQob29zX3NuYXBzaG90W2ldKSAp CiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd19m cmVlKGQsIG9vc19zbmFwc2hvdFtpXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBvb3Nfc25h cHNob3RbaV0gPSBfbWZuKElOVkFMSURfTUZOKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9v c19zbmFwc2hvdFtpXSA9IElOVkFMSURfTUZOX1Q7CiAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgIH0KICNlbmRpZiAvKiBPT1MgKi8KQEAgLTM5NjgsNyArMzk2OCw3IEBAIHZvaWQg c2hhZG93X2F1ZGl0X3RhYmxlcyhzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgfQogICAgIH0KIAot ICAgIGhhc2hfdmNwdV9mb3JlYWNoKHYsIG1hc2ssIGNhbGxiYWNrcywgX21mbihJTlZBTElEX01G TikpOworICAgIGhhc2hfdmNwdV9mb3JlYWNoKHYsIG1hc2ssIGNhbGxiYWNrcywgSU5WQUxJRF9N Rk5fVCk7CiB9CiAKICNlbmRpZiAvKiBTaGFkb3cgYXVkaXQgKi8KZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGku YwppbmRleCBkZmU1OWEyLi45NmQyNzBhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vc2hh ZG93L211bHRpLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCkBAIC0xNzcs NyArMTc3LDcgQEAgc2hfd2Fsa19ndWVzdF90YWJsZXMoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVk IGxvbmcgdmEsIHdhbGtfdCAqZ3csCiB7CiAgICAgcmV0dXJuIGd1ZXN0X3dhbGtfdGFibGVzKHYs IHAybV9nZXRfaG9zdHAybSh2LT5kb21haW4pLCB2YSwgZ3csIHBmZWMsCiAjaWYgR1VFU1RfUEFH SU5HX0xFVkVMUyA9PSAzIC8qIFBBRSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf bWZuKElOVkFMSURfTUZOKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5WQUxJRF9N Rk5fVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi0+YXJjaC5wYWdpbmcuc2hhZG93 LmdsM2UKICNlbHNlIC8qIDMyIG9yIDY0ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBhZ2V0YWJsZV9nZXRfbWZuKHYtPmFyY2guZ3Vlc3RfdGFibGUpLApAQCAtMzM2LDMyICszMzYs MzIgQEAgc3RhdGljIHZvaWQgc2hfYXVkaXRfZ3coc3RydWN0IHZjcHUgKnYsIHdhbGtfdCAqZ3cp CiAgICAgaWYgKCBtZm5fdmFsaWQoZ3ctPmw0bWZuKQogICAgICAgICAgJiYgbWZuX3ZhbGlkKChz bWZuID0gZ2V0X3NoYWRvd19zdGF0dXMoZCwgZ3ctPmw0bWZuLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hfdHlwZV9sNF9zaGFkb3cpKSkgKQotICAg ICAgICAodm9pZCkgc2hfYXVkaXRfbDRfdGFibGUodiwgc21mbiwgX21mbihJTlZBTElEX01GTikp OworICAgICAgICAodm9pZCkgc2hfYXVkaXRfbDRfdGFibGUodiwgc21mbiwgSU5WQUxJRF9NRk5f VCk7CiAgICAgaWYgKCBtZm5fdmFsaWQoZ3ctPmwzbWZuKQogICAgICAgICAgJiYgbWZuX3ZhbGlk KChzbWZuID0gZ2V0X3NoYWRvd19zdGF0dXMoZCwgZ3ctPmwzbWZuLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hfdHlwZV9sM19zaGFkb3cpKSkgKQot ICAgICAgICAodm9pZCkgc2hfYXVkaXRfbDNfdGFibGUodiwgc21mbiwgX21mbihJTlZBTElEX01G TikpOworICAgICAgICAodm9pZCkgc2hfYXVkaXRfbDNfdGFibGUodiwgc21mbiwgSU5WQUxJRF9N Rk5fVCk7CiAjZW5kaWYgLyogUEFFIG9yIDY0Li4uICovCiAgICAgaWYgKCBtZm5fdmFsaWQoZ3ct PmwybWZuKSApCiAgICAgewogICAgICAgICBpZiAoIG1mbl92YWxpZCgoc21mbiA9IGdldF9zaGFk b3dfc3RhdHVzKGQsIGd3LT5sMm1mbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTSF90eXBlX2wyX3NoYWRvdykpKSApCi0gICAgICAgICAgICAodm9p ZCkgc2hfYXVkaXRfbDJfdGFibGUodiwgc21mbiwgX21mbihJTlZBTElEX01GTikpOworICAgICAg ICAgICAgKHZvaWQpIHNoX2F1ZGl0X2wyX3RhYmxlKHYsIHNtZm4sIElOVkFMSURfTUZOX1QpOwog I2lmIEdVRVNUX1BBR0lOR19MRVZFTFMgPT0gMwogICAgICAgICBpZiAoIG1mbl92YWxpZCgoc21m biA9IGdldF9zaGFkb3dfc3RhdHVzKGQsIGd3LT5sMm1mbiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSF90eXBlX2wyaF9zaGFkb3cpKSkgKQotICAg ICAgICAgICAgKHZvaWQpIHNoX2F1ZGl0X2wyX3RhYmxlKHYsIHNtZm4sIF9tZm4oSU5WQUxJRF9N Rk4pKTsKKyAgICAgICAgICAgICh2b2lkKSBzaF9hdWRpdF9sMl90YWJsZSh2LCBzbWZuLCBJTlZB TElEX01GTl9UKTsKICNlbmRpZgogICAgIH0KICAgICBpZiAoIG1mbl92YWxpZChndy0+bDFtZm4p CiAgICAgICAgICAmJiBtZm5fdmFsaWQoKHNtZm4gPSBnZXRfc2hhZG93X3N0YXR1cyhkLCBndy0+ bDFtZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT SF90eXBlX2wxX3NoYWRvdykpKSApCi0gICAgICAgICh2b2lkKSBzaF9hdWRpdF9sMV90YWJsZSh2 LCBzbWZuLCBfbWZuKElOVkFMSURfTUZOKSk7CisgICAgICAgICh2b2lkKSBzaF9hdWRpdF9sMV90 YWJsZSh2LCBzbWZuLCBJTlZBTElEX01GTl9UKTsKICAgICBlbHNlIGlmICggKGd1ZXN0X2wyZV9n ZXRfZmxhZ3MoZ3ctPmwyZSkgJiBfUEFHRV9QUkVTRU5UKQogICAgICAgICAgICAgICAmJiAoZ3Vl c3RfbDJlX2dldF9mbGFncyhndy0+bDJlKSAmIF9QQUdFX1BTRSkKICAgICAgICAgICAgICAgJiYg bWZuX3ZhbGlkKAogICAgICAgICAgICAgICAoc21mbiA9IGdldF9mbDFfc2hhZG93X3N0YXR1cyhk LCBndWVzdF9sMmVfZ2V0X2dmbihndy0+bDJlKSkpKSApCi0gICAgICAgICh2b2lkKSBzaF9hdWRp dF9mbDFfdGFibGUodiwgc21mbiwgX21mbihJTlZBTElEX01GTikpOworICAgICAgICAodm9pZCkg c2hfYXVkaXRfZmwxX3RhYmxlKHYsIHNtZm4sIElOVkFMSURfTUZOX1QpOwogfQogCiAjZWxzZQpA QCAtMTc1Miw3ICsxNzUyLDcgQEAgc3RhdGljIHNoYWRvd19sMmVfdCAqIHNoYWRvd19nZXRfYW5k X2NyZWF0ZV9sMmUoc3RydWN0IHZjcHUgKnYsCiB7CiAjaWYgR1VFU1RfUEFHSU5HX0xFVkVMUyA+ PSA0IC8qIDY0Yml0Li4uICovCiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKLSAg ICBtZm5fdCBzbDNtZm4gPSBfbWZuKElOVkFMSURfTUZOKTsKKyAgICBtZm5fdCBzbDNtZm4gPSBJ TlZBTElEX01GTl9UOwogICAgIHNoYWRvd19sM2VfdCAqc2wzZTsKICAgICBpZiAoICFtZm5fdmFs aWQoZ3ctPmwybWZuKSApIHJldHVybiBOVUxMOyAvKiBObyBndWVzdCBwYWdlLiAqLwogICAgIC8q IEdldCB0aGUgbDNlICovCkBAIC0yMTU4LDcgKzIxNTgsNyBAQCBzdGF0aWMgaW50IHZhbGlkYXRl X2dsNGUoc3RydWN0IHZjcHUgKnYsIHZvaWQgKm5ld19nZSwgbWZuX3Qgc2w0bWZuLCB2b2lkICpz ZSkKICAgICBzaGFkb3dfbDRlX3QgbmV3X3NsNGU7CiAgICAgZ3Vlc3RfbDRlX3QgbmV3X2dsNGUg PSAqKGd1ZXN0X2w0ZV90ICopbmV3X2dlOwogICAgIHNoYWRvd19sNGVfdCAqc2w0cCA9IHNlOwot ICAgIG1mbl90IHNsM21mbiA9IF9tZm4oSU5WQUxJRF9NRk4pOworICAgIG1mbl90IHNsM21mbiA9 IElOVkFMSURfTUZOX1Q7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKICAgICBw Mm1fdHlwZV90IHAybXQ7CiAgICAgaW50IHJlc3VsdCA9IDA7CkBAIC0yMjE3LDcgKzIyMTcsNyBA QCBzdGF0aWMgaW50IHZhbGlkYXRlX2dsM2Uoc3RydWN0IHZjcHUgKnYsIHZvaWQgKm5ld19nZSwg bWZuX3Qgc2wzbWZuLCB2b2lkICpzZSkKICAgICBzaGFkb3dfbDNlX3QgbmV3X3NsM2U7CiAgICAg Z3Vlc3RfbDNlX3QgbmV3X2dsM2UgPSAqKGd1ZXN0X2wzZV90ICopbmV3X2dlOwogICAgIHNoYWRv d19sM2VfdCAqc2wzcCA9IHNlOwotICAgIG1mbl90IHNsMm1mbiA9IF9tZm4oSU5WQUxJRF9NRk4p OworICAgIG1mbl90IHNsMm1mbiA9IElOVkFMSURfTUZOX1Q7CiAgICAgcDJtX3R5cGVfdCBwMm10 OwogICAgIGludCByZXN1bHQgPSAwOwogCkBAIC0yMjUwLDcgKzIyNTAsNyBAQCBzdGF0aWMgaW50 IHZhbGlkYXRlX2dsMmUoc3RydWN0IHZjcHUgKnYsIHZvaWQgKm5ld19nZSwgbWZuX3Qgc2wybWZu LCB2b2lkICpzZSkKICAgICBzaGFkb3dfbDJlX3QgbmV3X3NsMmU7CiAgICAgZ3Vlc3RfbDJlX3Qg bmV3X2dsMmUgPSAqKGd1ZXN0X2wyZV90ICopbmV3X2dlOwogICAgIHNoYWRvd19sMmVfdCAqc2wy cCA9IHNlOwotICAgIG1mbl90IHNsMW1mbiA9IF9tZm4oSU5WQUxJRF9NRk4pOworICAgIG1mbl90 IHNsMW1mbiA9IElOVkFMSURfTUZOX1Q7CiAgICAgcDJtX3R5cGVfdCBwMm10OwogICAgIGludCBy ZXN1bHQgPSAwOwogCkBAIC00MTA1LDEwICs0MTA1LDEwIEBAIHNoX3VwZGF0ZV9jcjMoc3RydWN0 IHZjcHUgKnYsIGludCBkb19sb2NraW5nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID8gU0hfdHlwZV9sMmhfc2hhZG93CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOiBTSF90eXBlX2wyX3NoYWRvdyk7CiAgICAgICAgICAgICAg ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBzaF9zZXRfdG9wbGV2ZWxfc2hhZG93KHYsIGks IF9tZm4oSU5WQUxJRF9NRk4pLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgc2hfc2V0X3RvcGxl dmVsX3NoYWRvdyh2LCBpLCBJTlZBTElEX01GTl9ULCAwKTsKICAgICAgICAgICAgIH0KICAgICAg ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzaF9zZXRfdG9wbGV2ZWxfc2hhZG93KHYsIGks IF9tZm4oSU5WQUxJRF9NRk4pLCAwKTsKKyAgICAgICAgICAgICAgICBzaF9zZXRfdG9wbGV2ZWxf c2hhZG93KHYsIGksIElOVkFMSURfTUZOX1QsIDApOwogICAgICAgICB9CiAgICAgfQogI2VsaWYg R1VFU1RfUEFHSU5HX0xFVkVMUyA9PSA0CkBAIC00NTMxLDcgKzQ1MzEsNyBAQCBzdGF0aWMgdm9p ZCBzaF9wYWdldGFibGVfZHlpbmcoc3RydWN0IHZjcHUgKnYsIHBhZGRyX3QgZ3BhKQogCiAgICAg ICAgIGlmICggZmFzdF9wYXRoICkgewogICAgICAgICAgICAgaWYgKCBwYWdldGFibGVfaXNfbnVs bCh2LT5hcmNoLnNoYWRvd190YWJsZVtpXSkgKQotICAgICAgICAgICAgICAgIHNtZm4gPSBfbWZu KElOVkFMSURfTUZOKTsKKyAgICAgICAgICAgICAgICBzbWZuID0gSU5WQUxJRF9NRk5fVDsKICAg ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzbWZuID0gX21mbihwYWdldGFibGVfZ2V0 X3Bmbih2LT5hcmNoLnNoYWRvd190YWJsZVtpXSkpOwogICAgICAgICB9CkBAIC00NTQxLDcgKzQ1 NDEsNyBAQCBzdGF0aWMgdm9pZCBzaF9wYWdldGFibGVfZHlpbmcoc3RydWN0IHZjcHUgKnYsIHBh ZGRyX3QgZ3BhKQogICAgICAgICAgICAgZ21mbiA9IGdldF9nZm5fcXVlcnlfdW5sb2NrZWQoZCwg Z2ZuX3goZ3Vlc3RfbDNlX2dldF9nZm4oZ2wzZVtpXSkpLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJnAybXQpOwogICAgICAgICAgICAgc21mbiA9IHVubGlrZWx5 KG1mbl94KGdtZm4pID09IElOVkFMSURfTUZOKQotICAgICAgICAgICAgICAgICAgID8gX21mbihJ TlZBTElEX01GTikKKyAgICAgICAgICAgICAgICAgICA/IElOVkFMSURfTUZOX1QKICAgICAgICAg ICAgICAgICAgICA6IHNoYWRvd19oYXNoX2xvb2t1cChkLCBtZm5feChnbWZuKSwgU0hfdHlwZV9s Ml9wYWVfc2hhZG93KTsKICAgICAgICAgfQogCkBAIC00ODQ2LDcgKzQ4NDYsNyBAQCBpbnQgc2hf YXVkaXRfZmwxX3RhYmxlKHN0cnVjdCB2Y3B1ICp2LCBtZm5fdCBzbDFtZm4sIG1mbl90IHgpCiB7 CiAgICAgZ3Vlc3RfbDFlX3QgKmdsMWUsIGU7CiAgICAgc2hhZG93X2wxZV90ICpzbDFlOwotICAg IG1mbl90IGdsMW1mbiA9IF9tZm4oSU5WQUxJRF9NRk4pOworICAgIG1mbl90IGdsMW1mbiA9IElO VkFMSURfTUZOX1Q7CiAgICAgaW50IGY7CiAgICAgaW50IGRvbmUgPSAwOwogCi0tIAoxLjkuMQoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==