From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754644Ab3BCPV0 (ORCPT ); Sun, 3 Feb 2013 10:21:26 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:34927 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753608Ab3BCPVP (ORCPT ); Sun, 3 Feb 2013 10:21:15 -0500 Message-ID: <1359904837.1822.5.camel@deadeye.wl.decadent.org.uk> Subject: Re: [ 000/128] 3.2.38-stable review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org Date: Sun, 03 Feb 2013 16:20:37 +0100 In-Reply-To: <20130203144644.035172954@decadent.org.uk> References: <20130203144644.035172954@decadent.org.uk> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-a/l+JD8AyDZmyOtXxtJ0" X-Mailer: Evolution 3.4.4-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 151.216.67.5 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-a/l+JD8AyDZmyOtXxtJ0 Content-Type: multipart/mixed; boundary="=-hyLbYFfivzqxqUZ14Uzp" --=-hyLbYFfivzqxqUZ14Uzp Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.38-rc1 relative to 3.2.37. Ben. --=20 Ben Hutchings Everything should be made as simple as possible, but not simpler. - Albert Einstei= n --=-hyLbYFfivzqxqUZ14Uzp Content-Disposition: attachment; filename="linux-3.2.38-rc1.patch" Content-Type: text/x-patch; name="linux-3.2.38-rc1.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUNCmluZGV4IDIxYzc3ZTIuLjI4MzUzZTEg MTAwNjQ0DQotLS0gYS9NYWtlZmlsZQ0KKysrIGIvTWFrZWZpbGUNCkBAIC0xLDcgKzEsNyBAQA0K IFZFUlNJT04gPSAzDQogUEFUQ0hMRVZFTCA9IDINCi1TVUJMRVZFTCA9IDM3DQotRVhUUkFWRVJT SU9OID0NCitTVUJMRVZFTCA9IDM4DQorRVhUUkFWRVJTSU9OID0gLXJjMQ0KIE5BTUUgPSBTYWJl ci10b290aGVkIFNxdWlycmVsDQogDQogIyAqRE9DVU1FTlRBVElPTioNCmRpZmYgLS1naXQgYS9h cmNoL2FybS9rZXJuZWwvaGVhZC5TIGIvYXJjaC9hcm0va2VybmVsL2hlYWQuUw0KaW5kZXggMDhj ODJmZC4uMzYwNmU4NSAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL2tlcm5lbC9oZWFkLlMNCisrKyBi L2FyY2gvYXJtL2tlcm5lbC9oZWFkLlMNCkBAIC0yMjEsNiArMjIxLDcgQEAgX19jcmVhdGVfcGFn ZV90YWJsZXM6DQogCS8qDQogCSAqIFRoZW4gbWFwIGJvb3QgcGFyYW1zIGFkZHJlc3MgaW4gcjIg b3INCiAJICogdGhlIGZpcnN0IDFNQiBvZiByYW0gaWYgYm9vdCBwYXJhbXMgYWRkcmVzcyBpcyBu b3Qgc3BlY2lmaWVkLg0KKwkgKiBXZSBtYXAgMiBzZWN0aW9ucyBpbiBjYXNlIHRoZSBBVEFHcy9E VEIgY3Jvc3NlcyBhIHNlY3Rpb24gYm91bmRhcnkuDQogCSAqLw0KIAltb3YJcjAsIHIyLCBsc3Ig I1NFQ1RJT05fU0hJRlQNCiAJbW92cwlyMCwgcjAsIGxzbCAjU0VDVElPTl9TSElGVA0KQEAgLTIy OSw2ICsyMzAsOCBAQCBfX2NyZWF0ZV9wYWdlX3RhYmxlczoNCiAJYWRkCXIzLCByMywgI1BBR0Vf T0ZGU0VUDQogCWFkZAlyMywgcjQsIHIzLCBsc3IgIyhTRUNUSU9OX1NISUZUIC0gUE1EX09SREVS KQ0KIAlvcnIJcjYsIHI3LCByMA0KKwlzdHIJcjYsIFtyM10sICMxIDw8IFBNRF9PUkRFUg0KKwlh ZGQJcjYsIHI2LCAjMSA8PCBTRUNUSU9OX1NISUZUDQogCXN0cglyNiwgW3IzXQ0KIA0KICNpZmRl ZiBDT05GSUdfREVCVUdfTEwNCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9pbmNsdWRl L21hY2gvbWZwLXB4YTI3eC5oIGIvYXJjaC9hcm0vbWFjaC1weGEvaW5jbHVkZS9tYWNoL21mcC1w eGEyN3guaA0KaW5kZXggZWMwZjBiMC4uMThjMDgzZSAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL21h Y2gtcHhhL2luY2x1ZGUvbWFjaC9tZnAtcHhhMjd4LmgNCisrKyBiL2FyY2gvYXJtL21hY2gtcHhh L2luY2x1ZGUvbWFjaC9tZnAtcHhhMjd4LmgNCkBAIC00NjAsNiArNDYwLDkgQEANCiAJR1BJTzc2 X0xDRF9QQ0xLLAlcDQogCUdQSU83N19MQ0RfQklBUw0KIA0KKy8qIHRoZXNlIGVuYWJsZSBhIHdv cmstYXJvdW5kIGZvciBhIGh3IGJ1ZyBpbiBweGEyN3ggZHVyaW5nIGFjOTcgd2FybSByZXNldCAq Lw0KKyNkZWZpbmUgR1BJTzExM19BQzk3X25SRVNFVF9HUElPX0hJR0ggTUZQX0NGR19PVVQoR1BJ TzExMywgQUYwLCBERUZBVUxUKQ0KKyNkZWZpbmUgR1BJTzk1X0FDOTdfblJFU0VUX0dQSU9fSElH SCBNRlBfQ0ZHX09VVChHUElPOTUsIEFGMCwgREVGQVVMVCkNCiANCiBleHRlcm4gaW50IGtleXBh ZF9zZXRfd2FrZSh1bnNpZ25lZCBpbnQgb24pOw0KICNlbmRpZiAvKiBfX0FTTV9BUkNIX01GUF9Q WEEyN1hfSCAqLw0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI3eC5jIGIvYXJj aC9hcm0vbWFjaC1weGEvcHhhMjd4LmMNCmluZGV4IGJjNWE5OGUuLmE5NDQ3ZjkgMTAwNjQ0DQot LS0gYS9hcmNoL2FybS9tYWNoLXB4YS9weGEyN3guYw0KKysrIGIvYXJjaC9hcm0vbWFjaC1weGEv cHhhMjd4LmMNCkBAIC00Nyw5ICs0Nyw5IEBAIHZvaWQgcHhhMjd4X2NsZWFyX290Z3BoKHZvaWQp DQogRVhQT1JUX1NZTUJPTChweGEyN3hfY2xlYXJfb3RncGgpOw0KIA0KIHN0YXRpYyB1bnNpZ25l ZCBsb25nIGFjOTdfcmVzZXRfY29uZmlnW10gPSB7DQotCUdQSU8xMTNfR1BJTywNCisJR1BJTzEx M19BQzk3X25SRVNFVF9HUElPX0hJR0gsDQogCUdQSU8xMTNfQUM5N19uUkVTRVQsDQotCUdQSU85 NV9HUElPLA0KKwlHUElPOTVfQUM5N19uUkVTRVRfR1BJT19ISUdILA0KIAlHUElPOTVfQUM5N19u UkVTRVQsDQogfTsNCiANCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9kbWEtbWFwcGluZy5jIGIv YXJjaC9hcm0vbW0vZG1hLW1hcHBpbmcuYw0KaW5kZXggMWFhNjY0YS4uZTFkZDkyYyAxMDA2NDQN Ci0tLSBhL2FyY2gvYXJtL21tL2RtYS1tYXBwaW5nLmMNCisrKyBiL2FyY2gvYXJtL21tL2RtYS1t YXBwaW5nLmMNCkBAIC01MDAsMjUgKzUwMCwyNyBAQCBzdGF0aWMgdm9pZCBkbWFfY2FjaGVfbWFp bnRfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsDQogCXNpemVf dCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsDQogCXZvaWQgKCpvcCkoY29uc3Qg dm9pZCAqLCBzaXplX3QsIGludCkpDQogew0KKwl1bnNpZ25lZCBsb25nIHBmbjsNCisJc2l6ZV90 IGxlZnQgPSBzaXplOw0KKw0KKwlwZm4gPSBwYWdlX3RvX3BmbihwYWdlKSArIG9mZnNldCAvIFBB R0VfU0laRTsNCisJb2Zmc2V0ICU9IFBBR0VfU0laRTsNCisNCiAJLyoNCiAJICogQSBzaW5nbGUg c2cgZW50cnkgbWF5IHJlZmVyIHRvIG11bHRpcGxlIHBoeXNpY2FsbHkgY29udGlndW91cw0KIAkg KiBwYWdlcy4gIEJ1dCB3ZSBzdGlsbCBuZWVkIHRvIHByb2Nlc3MgaGlnaG1lbSBwYWdlcyBpbmRp dmlkdWFsbHkuDQogCSAqIElmIGhpZ2htZW0gaXMgbm90IGNvbmZpZ3VyZWQgdGhlbiB0aGUgYnVs ayBvZiB0aGlzIGxvb3AgZ2V0cw0KIAkgKiBvcHRpbWl6ZWQgb3V0Lg0KIAkgKi8NCi0Jc2l6ZV90 IGxlZnQgPSBzaXplOw0KIAlkbyB7DQogCQlzaXplX3QgbGVuID0gbGVmdDsNCiAJCXZvaWQgKnZh ZGRyOw0KIA0KKwkJcGFnZSA9IHBmbl90b19wYWdlKHBmbik7DQorDQogCQlpZiAoUGFnZUhpZ2hN ZW0ocGFnZSkpIHsNCi0JCQlpZiAobGVuICsgb2Zmc2V0ID4gUEFHRV9TSVpFKSB7DQotCQkJCWlm IChvZmZzZXQgPj0gUEFHRV9TSVpFKSB7DQotCQkJCQlwYWdlICs9IG9mZnNldCAvIFBBR0VfU0la RTsNCi0JCQkJCW9mZnNldCAlPSBQQUdFX1NJWkU7DQotCQkJCX0NCisJCQlpZiAobGVuICsgb2Zm c2V0ID4gUEFHRV9TSVpFKQ0KIAkJCQlsZW4gPSBQQUdFX1NJWkUgLSBvZmZzZXQ7DQotCQkJfQ0K IAkJCXZhZGRyID0ga21hcF9oaWdoX2dldChwYWdlKTsNCiAJCQlpZiAodmFkZHIpIHsNCiAJCQkJ dmFkZHIgKz0gb2Zmc2V0Ow0KQEAgLTUzNSw3ICs1MzcsNyBAQCBzdGF0aWMgdm9pZCBkbWFfY2Fj aGVfbWFpbnRfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsDQog CQkJb3AodmFkZHIsIGxlbiwgZGlyKTsNCiAJCX0NCiAJCW9mZnNldCA9IDA7DQotCQlwYWdlKys7 DQorCQlwZm4rKzsNCiAJCWxlZnQgLT0gbGVuOw0KIAl9IHdoaWxlIChsZWZ0KTsNCiB9DQpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vdmZwL2VudHJ5LlMgYi9hcmNoL2FybS92ZnAvZW50cnkuUw0KaW5k ZXggY2M5MjZjOS4uMzIzY2UxYSAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL3ZmcC9lbnRyeS5TDQor KysgYi9hcmNoL2FybS92ZnAvZW50cnkuUw0KQEAgLTIyLDcgKzIyLDcgQEANCiBAICBJUlFzIGRp c2FibGVkLg0KIEANCiBFTlRSWShkb192ZnApDQotI2lmZGVmIENPTkZJR19QUkVFTVBUDQorI2lm ZGVmIENPTkZJR19QUkVFTVBUX0NPVU5UDQogCWxkcglyNCwgW3IxMCwgI1RJX1BSRUVNUFRdCUAg Z2V0IHByZWVtcHQgY291bnQNCiAJYWRkCXIxMSwgcjQsICMxCQlAIGluY3JlbWVudCBpdA0KIAlz dHIJcjExLCBbcjEwLCAjVElfUFJFRU1QVF0NCkBAIC0zNSw3ICszNSw3IEBAIEVOVFJZKGRvX3Zm cCkNCiBFTkRQUk9DKGRvX3ZmcCkNCiANCiBFTlRSWSh2ZnBfbnVsbF9lbnRyeSkNCi0jaWZkZWYg Q09ORklHX1BSRUVNUFQNCisjaWZkZWYgQ09ORklHX1BSRUVNUFRfQ09VTlQNCiAJZ2V0X3RocmVh ZF9pbmZvCXIxMA0KIAlsZHIJcjQsIFtyMTAsICNUSV9QUkVFTVBUXQlAIGdldCBwcmVlbXB0IGNv dW50DQogCXN1YglyMTEsIHI0LCAjMQkJQCBkZWNyZW1lbnQgaXQNCkBAIC01Myw3ICs1Myw3IEBA IEVORFBST0ModmZwX251bGxfZW50cnkpDQogDQogCV9fSU5JVA0KIEVOVFJZKHZmcF90ZXN0aW5n X2VudHJ5KQ0KLSNpZmRlZiBDT05GSUdfUFJFRU1QVA0KKyNpZmRlZiBDT05GSUdfUFJFRU1QVF9D T1VOVA0KIAlnZXRfdGhyZWFkX2luZm8JcjEwDQogCWxkcglyNCwgW3IxMCwgI1RJX1BSRUVNUFRd CUAgZ2V0IHByZWVtcHQgY291bnQNCiAJc3ViCXIxMSwgcjQsICMxCQlAIGRlY3JlbWVudCBpdA0K ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3ZmcC92ZnBody5TIGIvYXJjaC9hcm0vdmZwL3ZmcGh3LlMN CmluZGV4IDNhMGVmYWEuLjZmZjkwM2UgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS92ZnAvdmZwaHcu Uw0KKysrIGIvYXJjaC9hcm0vdmZwL3ZmcGh3LlMNCkBAIC0xNjcsNyArMTY3LDcgQEAgdmZwX2h3 X3N0YXRlX3ZhbGlkOg0KIAkJCQkJQCBlbHNlIGl0J3Mgb25lIDMyLWJpdCBpbnN0cnVjdGlvbiwg c28NCiAJCQkJCUAgYWx3YXlzIHN1YnRyYWN0IDQgZnJvbSB0aGUgZm9sbG93aW5nDQogCQkJCQlA IGluc3RydWN0aW9uIGFkZHJlc3MuDQotI2lmZGVmIENPTkZJR19QUkVFTVBUDQorI2lmZGVmIENP TkZJR19QUkVFTVBUX0NPVU5UDQogCWdldF90aHJlYWRfaW5mbwlyMTANCiAJbGRyCXI0LCBbcjEw LCAjVElfUFJFRU1QVF0JQCBnZXQgcHJlZW1wdCBjb3VudA0KIAlzdWIJcjExLCByNCwgIzEJCUAg ZGVjcmVtZW50IGl0DQpAQCAtMTkxLDcgKzE5MSw3IEBAIGxvb2tfZm9yX1ZGUF9leGNlcHRpb25z Og0KIAlAIG5vdCByZWNvZ25pc2VkIGJ5IFZGUA0KIA0KIAlEQkdTVFIJIm5vdCBWRlAiDQotI2lm ZGVmIENPTkZJR19QUkVFTVBUDQorI2lmZGVmIENPTkZJR19QUkVFTVBUX0NPVU5UDQogCWdldF90 aHJlYWRfaW5mbwlyMTANCiAJbGRyCXI0LCBbcjEwLCAjVElfUFJFRU1QVF0JQCBnZXQgcHJlZW1w dCBjb3VudA0KIAlzdWIJcjExLCByNCwgIzEJCUAgZGVjcmVtZW50IGl0DQpkaWZmIC0tZ2l0IGEv YXJjaC9wb3dlcnBjL2t2bS9lbXVsYXRlLmMgYi9hcmNoL3Bvd2VycGMva3ZtL2VtdWxhdGUuYw0K aW5kZXggMTQxZGNlMy4uMmE3M2Q4MiAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9rdm0vZW11 bGF0ZS5jDQorKysgYi9hcmNoL3Bvd2VycGMva3ZtL2VtdWxhdGUuYw0KQEAgLTM1LDYgKzM1LDcg QEANCiAjZGVmaW5lIE9QX1RSQVBfNjQgMg0KIA0KICNkZWZpbmUgT1BfMzFfWE9QX0xXWlggICAg ICAyMw0KKyNkZWZpbmUgT1BfMzFfWE9QX0RDQkYgICAgICA4Ng0KICNkZWZpbmUgT1BfMzFfWE9Q X0xCWlggICAgICA4Nw0KICNkZWZpbmUgT1BfMzFfWE9QX1NUV1ggICAgICAxNTENCiAjZGVmaW5l IE9QXzMxX1hPUF9TVEJYICAgICAgMjE1DQpAQCAtMzcwLDYgKzM3MSw3IEBAIGludCBrdm1wcGNf ZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3J1biAqcnVuLCBzdHJ1Y3Qga3ZtX3ZjcHUg KnZjcHUpDQogCQkJa3ZtcHBjX3NldF9leGl0X3R5cGUodmNwdSwgRU1VTEFURURfTVRTUFJfRVhJ VFMpOw0KIAkJCWJyZWFrOw0KIA0KKwkJY2FzZSBPUF8zMV9YT1BfRENCRjoNCiAJCWNhc2UgT1Bf MzFfWE9QX0RDQkk6DQogCQkJLyogRG8gbm90aGluZy4gVGhlIGd1ZXN0IGlzIHBlcmZvcm1pbmcg ZGNiaSBiZWNhdXNlDQogCQkJICogaGFyZHdhcmUgRE1BIGlzIG5vdCBzbm9vcGVkIGJ5IHRoZSBk Y2FjaGUsIGJ1dA0KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL2FzbS90aW1leC5oIGIv YXJjaC9zMzkwL2luY2x1ZGUvYXNtL3RpbWV4LmgNCmluZGV4IGM0NDdhMjcuLjk0NWI3Y2QgMTAw NjQ0DQotLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vdGltZXguaA0KKysrIGIvYXJjaC9zMzkw L2luY2x1ZGUvYXNtL3RpbWV4LmgNCkBAIC0xMzcsNCArMTM3LDMyIEBAIHN0YXRpYyBpbmxpbmUg dW5zaWduZWQgbG9uZyBsb25nIGdldF9jbG9ja19tb25vdG9uaWModm9pZCkNCiAJcmV0dXJuIGdl dF9jbG9ja194dCgpIC0gc2NoZWRfY2xvY2tfYmFzZV9jYzsNCiB9DQogDQorLyoqDQorICogdG9k X3RvX25zIC0gY29udmVydCBhIFRPRCBmb3JtYXQgdmFsdWUgdG8gbmFub3NlY29uZHMNCisgKiBA dG9kdmFsOiB0byBiZSBjb252ZXJ0ZWQgVE9EIGZvcm1hdCB2YWx1ZQ0KKyAqIFJldHVybnM6IG51 bWJlciBvZiBuYW5vc2Vjb25kcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIFRPRCBmb3JtYXQgdmFs dWUNCisgKg0KKyAqIENvbnZlcnRpbmcgYSA2NCBCaXQgVE9EIGZvcm1hdCB2YWx1ZSB0byBuYW5v c2Vjb25kcyBtZWFucyB0aGF0IHRoZSB2YWx1ZQ0KKyAqIG11c3QgYmUgZGl2aWRlZCBieSA0LjA5 Ni4gSW4gb3JkZXIgdG8gYWNoaWV2ZSB0aGF0IHdlIG11bHRpcGx5IHdpdGggMTI1DQorICogYW5k IGRpdmlkZSBieSA1MTI6DQorICoNCisgKiAgICBucyA9ICh0b2R2YWwgKiAxMjUpID4+IDk7DQor ICoNCisgKiBJbiBvcmRlciB0byBhdm9pZCBhbiBvdmVyZmxvdyB3aXRoIHRoZSBtdWx0aXBsaWNh dGlvbiB3ZSBjYW4gcmV3cml0ZSB0aGlzLg0KKyAqIFdpdGggYSBzcGxpdCB0b2R2YWwgPT0gMl4z MiAqIHRoICsgdGwgKHRoIHVwcGVyIDMyIGJpdHMsIHRsIGxvd2VyIDMyIGJpdHMpDQorICogd2Ug ZW5kIHVwIHdpdGgNCisgKg0KKyAqICAgIG5zID0gKCgyXjMyICogdGggKyB0bCkgKiAxMjUgKSA+ PiA5Ow0KKyAqIC0+IG5zID0gKDJeMjMgKiB0aCAqIDEyNSkgKyAoKHRsICogMTI1KSA+PiA5KTsN CisgKg0KKyAqLw0KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBsb25nIHRvZF90b19ucyh1 bnNpZ25lZCBsb25nIGxvbmcgdG9kdmFsKQ0KK3sNCisJdW5zaWduZWQgbG9uZyBsb25nIG5zOw0K Kw0KKwlucyA9ICgodG9kdmFsID4+IDMyKSA8PCAyMykgKiAxMjU7DQorCW5zICs9ICgodG9kdmFs ICYgMHhmZmZmZmZmZikgKiAxMjUpID4+IDk7DQorCXJldHVybiBuczsNCit9DQorDQogI2VuZGlm DQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC90aW1lLmMgYi9hcmNoL3MzOTAva2VybmVs L3RpbWUuYw0KaW5kZXggZTAzYzU1NS4uODY0NDM2NiAxMDA2NDQNCi0tLSBhL2FyY2gvczM5MC9r ZXJuZWwvdGltZS5jDQorKysgYi9hcmNoL3MzOTAva2VybmVsL3RpbWUuYw0KQEAgLTY0LDcgKzY0 LDcgQEAgc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UsIGNv bXBhcmF0b3JzKTsNCiAgKi8NCiB1bnNpZ25lZCBsb25nIGxvbmcgbm90cmFjZSBfX2twcm9iZXMg c2NoZWRfY2xvY2sodm9pZCkNCiB7DQotCXJldHVybiAoZ2V0X2Nsb2NrX21vbm90b25pYygpICog MTI1KSA+PiA5Ow0KKwlyZXR1cm4gdG9kX3RvX25zKGdldF9jbG9ja19tb25vdG9uaWMoKSk7DQog fQ0KIA0KIC8qDQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYyBiL2FyY2gv czM5MC9rdm0vaW50ZXJydXB0LmMNCmluZGV4IDI3OGVlMDAuLjU0ODJkMWUgMTAwNjQ0DQotLS0g YS9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jDQorKysgYi9hcmNoL3MzOTAva3ZtL2ludGVycnVw dC5jDQpAQCAtMzkxLDcgKzM5MSw3IEBAIGludCBrdm1fczM5MF9oYW5kbGVfd2FpdChzdHJ1Y3Qg a3ZtX3ZjcHUgKnZjcHUpDQogCQlyZXR1cm4gMDsNCiAJfQ0KIA0KLQlzbHRpbWUgPSAoKHZjcHUt PmFyY2guc2llX2Jsb2NrLT5ja2MgLSBub3cpKjEyNSk+Pjk7DQorCXNsdGltZSA9IHRvZF90b19u cyh2Y3B1LT5hcmNoLnNpZV9ibG9jay0+Y2tjIC0gbm93KTsNCiANCiAJaHJ0aW1lcl9zdGFydCgm dmNwdS0+YXJjaC5ja2NfdGltZXIsIGt0aW1lX3NldCAoMCwgc2x0aW1lKSAsIEhSVElNRVJfTU9E RV9SRUwpOw0KIAlWQ1BVX0VWRU5UKHZjcHUsIDUsICJlbmFibGVkIHdhaXQgdmlhIGNsb2NrIGNv bXBhcmF0b3I6ICVsbHggbnMiLCBzbHRpbWUpOw0KZGlmZiAtLWdpdCBhL2FyY2gvc2gvaW5jbHVk ZS9hc20vZWxmLmggYi9hcmNoL3NoL2luY2x1ZGUvYXNtL2VsZi5oDQppbmRleCBmMzgxMTJiLi45 NzhiN2ZkIDEwMDY0NA0KLS0tIGEvYXJjaC9zaC9pbmNsdWRlL2FzbS9lbGYuaA0KKysrIGIvYXJj aC9zaC9pbmNsdWRlL2FzbS9lbGYuaA0KQEAgLTIwMiw5ICsyMDIsOSBAQCBleHRlcm4gdm9pZCBf X2tlcm5lbF92c3lzY2FsbDsNCiAJaWYgKHZkc29fZW5hYmxlZCkJCQkJCVwNCiAJCU5FV19BVVhf RU5UKEFUX1NZU0lORk9fRUhEUiwgVkRTT19CQVNFKTsJXA0KIAllbHNlCQkJCQkJCVwNCi0JCU5F V19BVVhfRU5UKEFUX0lHTk9SRSwgMCk7DQorCQlORVdfQVVYX0VOVChBVF9JR05PUkUsIDApDQog I2Vsc2UNCi0jZGVmaW5lIFZTWVNDQUxMX0FVWF9FTlQNCisjZGVmaW5lIFZTWVNDQUxMX0FVWF9F TlQJTkVXX0FVWF9FTlQoQVRfSUdOT1JFLCAwKQ0KICNlbmRpZiAvKiBDT05GSUdfVlNZU0NBTEwg Ki8NCiANCiAjaWZkZWYgQ09ORklHX1NIX0ZQVQ0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1 ZGUvYXNtL2VmaS5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vZWZpLmgNCmluZGV4IDcwOTNlNGEu LjAzNWNkODEgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9lZmkuaA0KKysrIGIv YXJjaC94ODYvaW5jbHVkZS9hc20vZWZpLmgNCkBAIC05MCw2ICs5MCw3IEBAIGV4dGVybiB2b2lk IF9faW9tZW0gKmVmaV9pb3JlbWFwKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBz aXplLA0KICNlbmRpZiAvKiBDT05GSUdfWDg2XzMyICovDQogDQogZXh0ZXJuIGludCBhZGRfZWZp X21lbW1hcDsNCitleHRlcm4gdW5zaWduZWQgbG9uZyB4ODZfZWZpX2ZhY2lsaXR5Ow0KIGV4dGVy biB2b2lkIGVmaV9zZXRfZXhlY3V0YWJsZShlZmlfbWVtb3J5X2Rlc2NfdCAqbWQsIGJvb2wgZXhl Y3V0YWJsZSk7DQogZXh0ZXJuIHZvaWQgZWZpX21lbWJsb2NrX3g4Nl9yZXNlcnZlX3JhbmdlKHZv aWQpOw0KIGV4dGVybiB2b2lkIGVmaV9jYWxsX3BoeXNfcHJlbG9nKHZvaWQpOw0KZGlmZiAtLWdp dCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RyYXBzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90 cmFwcy5oDQppbmRleCAwMDEyZDA5Li44OGVhZTJhIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYvaW5j bHVkZS9hc20vdHJhcHMuaA0KKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vdHJhcHMuaA0KQEAg LTg5LDQgKzg5LDI5IEBAIGFzbWxpbmthZ2Ugdm9pZCBzbXBfdGhlcm1hbF9pbnRlcnJ1cHQodm9p ZCk7DQogYXNtbGlua2FnZSB2b2lkIG1jZV90aHJlc2hvbGRfaW50ZXJydXB0KHZvaWQpOw0KICNl bmRpZg0KIA0KKy8qIEludGVycnVwdHMvRXhjZXB0aW9ucyAqLw0KK2VudW0gew0KKwlYODZfVFJB UF9ERSA9IDAsCS8qICAwLCBEaXZpZGUtYnktemVybyAqLw0KKwlYODZfVFJBUF9EQiwJCS8qICAx LCBEZWJ1ZyAqLw0KKwlYODZfVFJBUF9OTUksCQkvKiAgMiwgTm9uLW1hc2thYmxlIEludGVycnVw dCAqLw0KKwlYODZfVFJBUF9CUCwJCS8qICAzLCBCcmVha3BvaW50ICovDQorCVg4Nl9UUkFQX09G LAkJLyogIDQsIE92ZXJmbG93ICovDQorCVg4Nl9UUkFQX0JSLAkJLyogIDUsIEJvdW5kIFJhbmdl IEV4Y2VlZGVkICovDQorCVg4Nl9UUkFQX1VELAkJLyogIDYsIEludmFsaWQgT3Bjb2RlICovDQor CVg4Nl9UUkFQX05NLAkJLyogIDcsIERldmljZSBOb3QgQXZhaWxhYmxlICovDQorCVg4Nl9UUkFQ X0RGLAkJLyogIDgsIERvdWJsZSBGYXVsdCAqLw0KKwlYODZfVFJBUF9PTERfTUYsCS8qICA5LCBD b3Byb2Nlc3NvciBTZWdtZW50IE92ZXJydW4gKi8NCisJWDg2X1RSQVBfVFMsCQkvKiAxMCwgSW52 YWxpZCBUU1MgKi8NCisJWDg2X1RSQVBfTlAsCQkvKiAxMSwgU2VnbWVudCBOb3QgUHJlc2VudCAq Lw0KKwlYODZfVFJBUF9TUywJCS8qIDEyLCBTdGFjayBTZWdtZW50IEZhdWx0ICovDQorCVg4Nl9U UkFQX0dQLAkJLyogMTMsIEdlbmVyYWwgUHJvdGVjdGlvbiBGYXVsdCAqLw0KKwlYODZfVFJBUF9Q RiwJCS8qIDE0LCBQYWdlIEZhdWx0ICovDQorCVg4Nl9UUkFQX1NQVVJJT1VTLAkvKiAxNSwgU3B1 cmlvdXMgSW50ZXJydXB0ICovDQorCVg4Nl9UUkFQX01GLAkJLyogMTYsIHg4NyBGbG9hdGluZy1Q b2ludCBFeGNlcHRpb24gKi8NCisJWDg2X1RSQVBfQUMsCQkvKiAxNywgQWxpZ25tZW50IENoZWNr ICovDQorCVg4Nl9UUkFQX01DLAkJLyogMTgsIE1hY2hpbmUgQ2hlY2sgKi8NCisJWDg2X1RSQVBf WEYsCQkvKiAxOSwgU0lNRCBGbG9hdGluZy1Qb2ludCBFeGNlcHRpb24gKi8NCisJWDg2X1RSQVBf SVJFVCA9IDMyLAkvKiAzMiwgSVJFVCBFeGNlcHRpb24gKi8NCit9Ow0KKw0KICNlbmRpZiAvKiBf QVNNX1g4Nl9UUkFQU19IICovDQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2VudHJ5XzMy LlMgYi9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfMzIuUw0KaW5kZXggNDg5M2Q1OC4uZDJkNDg4Yjgg MTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfMzIuUw0KKysrIGIvYXJjaC94ODYv a2VybmVsL2VudHJ5XzMyLlMNCkBAIC0xMDc0LDcgKzEwNzQsNiBAQCBFTlRSWSh4ZW5fZmFpbHNh ZmVfY2FsbGJhY2spDQogCWxlYSAxNiglZXNwKSwlZXNwDQogCUNGSV9BREpVU1RfQ0ZBX09GRlNF VCAtMTYNCiAJanogNWYNCi0JYWRkbCAkMTYsJWVzcA0KIAlqbXAgaXJldF9leGMNCiA1OglwdXNo bF9jZmkgJC0xIC8qIG9yaWdfYXggPSAtMSA9PiBub3QgYSBzeXN0ZW0gY2FsbCAqLw0KIAlTQVZF X0FMTA0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pcnFpbml0LmMgYi9hcmNoL3g4Ni9r ZXJuZWwvaXJxaW5pdC5jDQppbmRleCBiMzMwMGU2Li5lMzI4ZjY5IDEwMDY0NA0KLS0tIGEvYXJj aC94ODYva2VybmVsL2lycWluaXQuYw0KKysrIGIvYXJjaC94ODYva2VybmVsL2lycWluaXQuYw0K QEAgLTYxLDcgKzYxLDcgQEAgc3RhdGljIGlycXJldHVybl90IG1hdGhfZXJyb3JfaXJxKGludCBj cGwsIHZvaWQgKmRldl9pZCkNCiAJb3V0YigwLCAweEYwKTsNCiAJaWYgKGlnbm9yZV9mcHVfaXJx IHx8ICFib290X2NwdV9kYXRhLmhhcmRfbWF0aCkNCiAJCXJldHVybiBJUlFfTk9ORTsNCi0JbWF0 aF9lcnJvcihnZXRfaXJxX3JlZ3MoKSwgMCwgMTYpOw0KKwltYXRoX2Vycm9yKGdldF9pcnFfcmVn cygpLCAwLCBYODZfVFJBUF9NRik7DQogCXJldHVybiBJUlFfSEFORExFRDsNCiB9DQogDQpkaWZm IC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL21zci5jIGIvYXJjaC94ODYva2VybmVsL21zci5jDQpp bmRleCAxMmZjYmUyLi5mN2QxYTY0IDEwMDY0NA0KLS0tIGEvYXJjaC94ODYva2VybmVsL21zci5j DQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvbXNyLmMNCkBAIC0xNzUsNiArMTc1LDkgQEAgc3RhdGlj IGludCBtc3Jfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkNCiAJ dW5zaWduZWQgaW50IGNwdTsNCiAJc3RydWN0IGNwdWluZm9feDg2ICpjOw0KIA0KKwlpZiAoIWNh cGFibGUoQ0FQX1NZU19SQVdJTykpDQorCQlyZXR1cm4gLUVQRVJNOw0KKw0KIAljcHUgPSBpbWlu b3IoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSk7DQogCWlmIChjcHUgPj0gbnJfY3B1X2lk cyB8fCAhY3B1X29ubGluZShjcHUpKQ0KIAkJcmV0dXJuIC1FTlhJTzsJLyogTm8gc3VjaCBDUFUg Ki8NCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcmVib290LmMgYi9hcmNoL3g4Ni9rZXJu ZWwvcmVib290LmMNCmluZGV4IGU2MWY3OWMuLjQ3ZjRlNWYgMTAwNjQ0DQotLS0gYS9hcmNoL3g4 Ni9rZXJuZWwvcmVib290LmMNCisrKyBiL2FyY2gveDg2L2tlcm5lbC9yZWJvb3QuYw0KQEAgLTYw Myw3ICs2MDMsNyBAQCBzdGF0aWMgdm9pZCBuYXRpdmVfbWFjaGluZV9lbWVyZ2VuY3lfcmVzdGFy dCh2b2lkKQ0KIAkJCWJyZWFrOw0KIA0KIAkJY2FzZSBCT09UX0VGSToNCi0JCQlpZiAoZWZpX2Vu YWJsZWQpDQorCQkJaWYgKGVmaV9lbmFibGVkKEVGSV9SVU5USU1FX1NFUlZJQ0VTKSkNCiAJCQkJ ZWZpLnJlc2V0X3N5c3RlbShyZWJvb3RfbW9kZSA/DQogCQkJCQkJIEVGSV9SRVNFVF9XQVJNIDoN CiAJCQkJCQkgRUZJX1JFU0VUX0NPTEQsDQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Nl dHVwLmMgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXAuYw0KaW5kZXggMGQ0MDNhYS4uYjUwNmY0MSAx MDA2NDQNCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9zZXR1cC5jDQorKysgYi9hcmNoL3g4Ni9rZXJu ZWwvc2V0dXAuYw0KQEAgLTYzMSw2ICs2MzEsODMgQEAgc3RhdGljIF9faW5pdCB2b2lkIHJlc2Vy dmVfaWJmdF9yZWdpb24odm9pZCkNCiANCiBzdGF0aWMgdW5zaWduZWQgcmVzZXJ2ZV9sb3cgPSBD T05GSUdfWDg2X1JFU0VSVkVfTE9XIDw8IDEwOw0KIA0KK3N0YXRpYyBib29sIF9faW5pdCBzbmJf Z2Z4X3dvcmthcm91bmRfbmVlZGVkKHZvaWQpDQorew0KKyNpZmRlZiBDT05GSUdfUENJDQorCWlu dCBpOw0KKwl1MTYgdmVuZG9yLCBkZXZpZDsNCisJc3RhdGljIGNvbnN0IF9faW5pdGNvbnN0IHUx NiBzbmJfaWRzW10gPSB7DQorCQkweDAxMDIsDQorCQkweDAxMTIsDQorCQkweDAxMjIsDQorCQkw eDAxMDYsDQorCQkweDAxMTYsDQorCQkweDAxMjYsDQorCQkweDAxMGEsDQorCX07DQorDQorCS8q IEFzc3VtZSBubyBpZiBzb21ldGhpbmcgd2VpcmQgaXMgZ29pbmcgb24gd2l0aCBQQ0kgKi8NCisJ aWYgKCFlYXJseV9wY2lfYWxsb3dlZCgpKQ0KKwkJcmV0dXJuIGZhbHNlOw0KKw0KKwl2ZW5kb3Ig PSByZWFkX3BjaV9jb25maWdfMTYoMCwgMiwgMCwgUENJX1ZFTkRPUl9JRCk7DQorCWlmICh2ZW5k b3IgIT0gMHg4MDg2KQ0KKwkJcmV0dXJuIGZhbHNlOw0KKw0KKwlkZXZpZCA9IHJlYWRfcGNpX2Nv bmZpZ18xNigwLCAyLCAwLCBQQ0lfREVWSUNFX0lEKTsNCisJZm9yIChpID0gMDsgaSA8IEFSUkFZ X1NJWkUoc25iX2lkcyk7IGkrKykNCisJCWlmIChkZXZpZCA9PSBzbmJfaWRzW2ldKQ0KKwkJCXJl dHVybiB0cnVlOw0KKyNlbmRpZg0KKw0KKwlyZXR1cm4gZmFsc2U7DQorfQ0KKw0KKy8qDQorICog U2FuZHkgQnJpZGdlIGdyYXBoaWNzIGhhcyB0cm91YmxlIHdpdGggY2VydGFpbiByYW5nZXMsIGV4 Y2x1ZGUNCisgKiB0aGVtIGZyb20gYWxsb2NhdGlvbi4NCisgKi8NCitzdGF0aWMgdm9pZCBfX2lu aXQgdHJpbV9zbmJfbWVtb3J5KHZvaWQpDQorew0KKwlzdGF0aWMgY29uc3QgX19pbml0Y29uc3Qg dW5zaWduZWQgbG9uZyBiYWRfcGFnZXNbXSA9IHsNCisJCTB4MjAwNTAwMDAsDQorCQkweDIwMTEw MDAwLA0KKwkJMHgyMDEzMDAwMCwNCisJCTB4MjAxMzgwMDAsDQorCQkweDQwMDA0MDAwLA0KKwl9 Ow0KKwlpbnQgaTsNCisNCisJaWYgKCFzbmJfZ2Z4X3dvcmthcm91bmRfbmVlZGVkKCkpDQorCQly ZXR1cm47DQorDQorCXByaW50ayhLRVJOX0RFQlVHICJyZXNlcnZpbmcgaW5hY2Nlc3NpYmxlIFNO QiBnZnggcGFnZXNcbiIpOw0KKw0KKwkvKg0KKwkgKiBSZXNlcnZlIGFsbCBtZW1vcnkgYmVsb3cg dGhlIDEgTUIgbWFyayB0aGF0IGhhcyBub3QNCisJICogYWxyZWFkeSBiZWVuIHJlc2VydmVkLg0K KwkgKi8NCisJbWVtYmxvY2tfcmVzZXJ2ZSgwLCAxPDwyMCk7DQorCQ0KKwlmb3IgKGkgPSAwOyBp IDwgQVJSQVlfU0laRShiYWRfcGFnZXMpOyBpKyspIHsNCisJCWlmIChtZW1ibG9ja19yZXNlcnZl KGJhZF9wYWdlc1tpXSwgUEFHRV9TSVpFKSkNCisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJmYWls ZWQgdG8gcmVzZXJ2ZSAweCUwOGx4XG4iLA0KKwkJCSAgICAgICBiYWRfcGFnZXNbaV0pOw0KKwl9 DQorfQ0KKw0KKy8qDQorICogSGVyZSB3ZSBwdXQgcGxhdGZvcm0tc3BlY2lmaWMgbWVtb3J5IHJh bmdlIHdvcmthcm91bmRzLCBpLmUuDQorICogbWVtb3J5IGtub3duIHRvIGJlIGNvcnJ1cHQgb3Ig b3RoZXJ3aXNlIGluIG5lZWQgdG8gYmUgcmVzZXJ2ZWQgb24NCisgKiBzcGVjaWZpYyBwbGF0Zm9y bXMuDQorICoNCisgKiBJZiB0aGlzIGdldHMgdXNlZCBtb3JlIHdpZGVseSBpdCBjb3VsZCB1c2Ug YSByZWFsIGRpc3BhdGNoIG1lY2hhbmlzbS4NCisgKi8NCitzdGF0aWMgdm9pZCBfX2luaXQgdHJp bV9wbGF0Zm9ybV9tZW1vcnlfcmFuZ2VzKHZvaWQpDQorew0KKwl0cmltX3NuYl9tZW1vcnkoKTsN Cit9DQorDQogc3RhdGljIHZvaWQgX19pbml0IHRyaW1fYmlvc19yYW5nZSh2b2lkKQ0KIHsNCiAJ LyoNCkBAIC02NTEsNiArNzI4LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHRyaW1fYmlvc19yYW5n ZSh2b2lkKQ0KIAkgKiB0YWtlIHRoZW0gb3V0Lg0KIAkgKi8NCiAJZTgyMF9yZW1vdmVfcmFuZ2Uo QklPU19CRUdJTiwgQklPU19FTkQgLSBCSU9TX0JFR0lOLCBFODIwX1JBTSwgMSk7DQorDQogCXNh bml0aXplX2U4MjBfbWFwKGU4MjAubWFwLCBBUlJBWV9TSVpFKGU4MjAubWFwKSwgJmU4MjAubnJf bWFwKTsNCiB9DQogDQpAQCAtNzUwLDE1ICs4MjgsMTYgQEAgdm9pZCBfX2luaXQgc2V0dXBfYXJj aChjaGFyICoqY21kbGluZV9wKQ0KICNlbmRpZg0KICNpZmRlZiBDT05GSUdfRUZJDQogCWlmICgh c3RybmNtcCgoY2hhciAqKSZib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbG9hZGVyX3NpZ25hdHVy ZSwNCi0jaWZkZWYgQ09ORklHX1g4Nl8zMg0KLQkJICAgICAiRUwzMiIsDQotI2Vsc2UNCi0JCSAg ICAgIkVMNjQiLA0KLSNlbmRpZg0KLQkgNCkpIHsNCi0JCWVmaV9lbmFibGVkID0gMTsNCi0JCWVm aV9tZW1ibG9ja194ODZfcmVzZXJ2ZV9yYW5nZSgpOw0KKwkJICAgICAiRUwzMiIsIDQpKSB7DQor CQlzZXRfYml0KEVGSV9CT09ULCAmeDg2X2VmaV9mYWNpbGl0eSk7DQorCX0gZWxzZSBpZiAoIXN0 cm5jbXAoKGNoYXIgKikmYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX2xvYWRlcl9zaWduYXR1cmUs DQorCQkgICAgICJFTDY0IiwgNCkpIHsNCisJCXNldF9iaXQoRUZJX0JPT1QsICZ4ODZfZWZpX2Zh Y2lsaXR5KTsNCisJCXNldF9iaXQoRUZJXzY0QklULCAmeDg2X2VmaV9mYWNpbGl0eSk7DQogCX0N CisNCisJaWYgKGVmaV9lbmFibGVkKEVGSV9CT09UKSkNCisJCWVmaV9tZW1ibG9ja194ODZfcmVz ZXJ2ZV9yYW5nZSgpOw0KICNlbmRpZg0KIA0KIAl4ODZfaW5pdC5vZW0uYXJjaF9zZXR1cCgpOw0K QEAgLTgzMSw3ICs5MTAsNyBAQCB2b2lkIF9faW5pdCBzZXR1cF9hcmNoKGNoYXIgKipjbWRsaW5l X3ApDQogDQogCWZpbmlzaF9lODIwX3BhcnNpbmcoKTsNCiANCi0JaWYgKGVmaV9lbmFibGVkKQ0K KwlpZiAoZWZpX2VuYWJsZWQoRUZJX0JPT1QpKQ0KIAkJZWZpX2luaXQoKTsNCiANCiAJZG1pX3Nj YW5fbWFjaGluZSgpOw0KQEAgLTkxNCw3ICs5OTMsNyBAQCB2b2lkIF9faW5pdCBzZXR1cF9hcmNo KGNoYXIgKipjbWRsaW5lX3ApDQogCSAqIFRoZSBFRkkgc3BlY2lmaWNhdGlvbiBzYXlzIHRoYXQg Ym9vdCBzZXJ2aWNlIGNvZGUgd29uJ3QgYmUgY2FsbGVkDQogCSAqIGFmdGVyIEV4aXRCb290U2Vy dmljZXMoKS4gVGhpcyBpcywgaW4gZmFjdCwgYSBsaWUuDQogCSAqLw0KLQlpZiAoZWZpX2VuYWJs ZWQpDQorCWlmIChlZmlfZW5hYmxlZChFRklfTUVNTUFQKSkNCiAJCWVmaV9yZXNlcnZlX2Jvb3Rf c2VydmljZXMoKTsNCiANCiAJLyogcHJlYWxsb2NhdGUgNGsgZm9yIG1wdGFibGUgbXBjICovDQpA QCAtOTI5LDYgKzEwMDgsOCBAQCB2b2lkIF9faW5pdCBzZXR1cF9hcmNoKGNoYXIgKipjbWRsaW5l X3ApDQogDQogCXNldHVwX3RyYW1wb2xpbmVzKCk7DQogDQorCXRyaW1fcGxhdGZvcm1fbWVtb3J5 X3JhbmdlcygpOw0KKw0KIAlpbml0X2dicGFnZXMoKTsNCiANCiAJLyogbWF4X3Bmbl9tYXBwZWQg aXMgdXBkYXRlZCBoZXJlICovDQpAQCAtMTA0OCw3ICsxMTI5LDcgQEAgdm9pZCBfX2luaXQgc2V0 dXBfYXJjaChjaGFyICoqY21kbGluZV9wKQ0KIA0KICNpZmRlZiBDT05GSUdfVlQNCiAjaWYgZGVm aW5lZChDT05GSUdfVkdBX0NPTlNPTEUpDQotCWlmICghZWZpX2VuYWJsZWQgfHwgKGVmaV9tZW1f dHlwZSgweGEwMDAwKSAhPSBFRklfQ09OVkVOVElPTkFMX01FTU9SWSkpDQorCWlmICghZWZpX2Vu YWJsZWQoRUZJX0JPT1QpIHx8IChlZmlfbWVtX3R5cGUoMHhhMDAwMCkgIT0gRUZJX0NPTlZFTlRJ T05BTF9NRU1PUlkpKQ0KIAkJY29uc3dpdGNocCA9ICZ2Z2FfY29uOw0KICNlbGlmIGRlZmluZWQo Q09ORklHX0RVTU1ZX0NPTlNPTEUpDQogCWNvbnN3aXRjaHAgPSAmZHVtbXlfY29uOw0KZGlmZiAt LWdpdCBhL2FyY2gveDg2L2tlcm5lbC90cmFwcy5jIGIvYXJjaC94ODYva2VybmVsL3RyYXBzLmMN CmluZGV4IDMxZDlkMGYuLmU2ZmJiOTQgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdHJh cHMuYw0KKysrIGIvYXJjaC94ODYva2VybmVsL3RyYXBzLmMNCkBAIC0xMTksNyArMTE5LDcgQEAg ZG9fdHJhcChpbnQgdHJhcG5yLCBpbnQgc2lnbnIsIGNoYXIgKnN0ciwgc3RydWN0IHB0X3JlZ3Mg KnJlZ3MsDQogCQkgKiB0cmFwcyAwLCAxLCAzLCA0LCBhbmQgNSBzaG91bGQgYmUgZm9yd2FyZGVk IHRvIHZtODYuDQogCQkgKiBPbiBubWkgKGludGVycnVwdCAyKSwgZG9fdHJhcCBzaG91bGQgbm90 IGJlIGNhbGxlZC4NCiAJCSAqLw0KLQkJaWYgKHRyYXBuciA8IDYpDQorCQlpZiAodHJhcG5yIDwg WDg2X1RSQVBfVUQpDQogCQkJZ290byB2bTg2X3RyYXA7DQogCQlnb3RvIHRyYXBfc2lnbmFsOw0K IAl9DQpAQCAtMjAzLDI3ICsyMDMsMzEgQEAgZG90cmFwbGlua2FnZSB2b2lkIGRvXyMjbmFtZShz dHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQlcDQogCWRvX3RyYXAodHJhcG5y LCBzaWduciwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCAmaW5mbyk7CQlcDQogfQ0KIA0KLURPX0VS Uk9SX0lORk8oMCwgU0lHRlBFLCAiZGl2aWRlIGVycm9yIiwgZGl2aWRlX2Vycm9yLCBGUEVfSU5U RElWLCByZWdzLT5pcCkNCi1ET19FUlJPUig0LCBTSUdTRUdWLCAib3ZlcmZsb3ciLCBvdmVyZmxv dykNCi1ET19FUlJPUig1LCBTSUdTRUdWLCAiYm91bmRzIiwgYm91bmRzKQ0KLURPX0VSUk9SX0lO Rk8oNiwgU0lHSUxMLCAiaW52YWxpZCBvcGNvZGUiLCBpbnZhbGlkX29wLCBJTExfSUxMT1BOLCBy ZWdzLT5pcCkNCi1ET19FUlJPUig5LCBTSUdGUEUsICJjb3Byb2Nlc3NvciBzZWdtZW50IG92ZXJy dW4iLCBjb3Byb2Nlc3Nvcl9zZWdtZW50X292ZXJydW4pDQotRE9fRVJST1IoMTAsIFNJR1NFR1Ys ICJpbnZhbGlkIFRTUyIsIGludmFsaWRfVFNTKQ0KLURPX0VSUk9SKDExLCBTSUdCVVMsICJzZWdt ZW50IG5vdCBwcmVzZW50Iiwgc2VnbWVudF9ub3RfcHJlc2VudCkNCitET19FUlJPUl9JTkZPKFg4 Nl9UUkFQX0RFLCBTSUdGUEUsICJkaXZpZGUgZXJyb3IiLCBkaXZpZGVfZXJyb3IsIEZQRV9JTlRE SVYsDQorCQlyZWdzLT5pcCkNCitET19FUlJPUihYODZfVFJBUF9PRiwgU0lHU0VHViwgIm92ZXJm bG93Iiwgb3ZlcmZsb3cpDQorRE9fRVJST1IoWDg2X1RSQVBfQlIsIFNJR1NFR1YsICJib3VuZHMi LCBib3VuZHMpDQorRE9fRVJST1JfSU5GTyhYODZfVFJBUF9VRCwgU0lHSUxMLCAiaW52YWxpZCBv cGNvZGUiLCBpbnZhbGlkX29wLCBJTExfSUxMT1BOLA0KKwkJcmVncy0+aXApDQorRE9fRVJST1Io WDg2X1RSQVBfT0xEX01GLCBTSUdGUEUsICJjb3Byb2Nlc3NvciBzZWdtZW50IG92ZXJydW4iLA0K KwkJY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKQ0KK0RPX0VSUk9SKFg4Nl9UUkFQX1RTLCBT SUdTRUdWLCAiaW52YWxpZCBUU1MiLCBpbnZhbGlkX1RTUykNCitET19FUlJPUihYODZfVFJBUF9O UCwgU0lHQlVTLCAic2VnbWVudCBub3QgcHJlc2VudCIsIHNlZ21lbnRfbm90X3ByZXNlbnQpDQog I2lmZGVmIENPTkZJR19YODZfMzINCi1ET19FUlJPUigxMiwgU0lHQlVTLCAic3RhY2sgc2VnbWVu dCIsIHN0YWNrX3NlZ21lbnQpDQorRE9fRVJST1IoWDg2X1RSQVBfU1MsIFNJR0JVUywgInN0YWNr IHNlZ21lbnQiLCBzdGFja19zZWdtZW50KQ0KICNlbmRpZg0KLURPX0VSUk9SX0lORk8oMTcsIFNJ R0JVUywgImFsaWdubWVudCBjaGVjayIsIGFsaWdubWVudF9jaGVjaywgQlVTX0FEUkFMTiwgMCkN CitET19FUlJPUl9JTkZPKFg4Nl9UUkFQX0FDLCBTSUdCVVMsICJhbGlnbm1lbnQgY2hlY2siLCBh bGlnbm1lbnRfY2hlY2ssDQorCQlCVVNfQURSQUxOLCAwKQ0KIA0KICNpZmRlZiBDT05GSUdfWDg2 XzY0DQogLyogUnVucyBvbiBJU1Qgc3RhY2sgKi8NCiBkb3RyYXBsaW5rYWdlIHZvaWQgZG9fc3Rh Y2tfc2VnbWVudChzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQ0KIHsNCiAJ aWYgKG5vdGlmeV9kaWUoRElFX1RSQVAsICJzdGFjayBzZWdtZW50IiwgcmVncywgZXJyb3JfY29k ZSwNCi0JCQkxMiwgU0lHQlVTKSA9PSBOT1RJRllfU1RPUCkNCisJCQlYODZfVFJBUF9TUywgU0lH QlVTKSA9PSBOT1RJRllfU1RPUCkNCiAJCXJldHVybjsNCiAJcHJlZW1wdF9jb25kaXRpb25hbF9z dGkocmVncyk7DQotCWRvX3RyYXAoMTIsIFNJR0JVUywgInN0YWNrIHNlZ21lbnQiLCByZWdzLCBl cnJvcl9jb2RlLCBOVUxMKTsNCisJZG9fdHJhcChYODZfVFJBUF9TUywgU0lHQlVTLCAic3RhY2sg c2VnbWVudCIsIHJlZ3MsIGVycm9yX2NvZGUsIE5VTEwpOw0KIAlwcmVlbXB0X2NvbmRpdGlvbmFs X2NsaShyZWdzKTsNCiB9DQogDQpAQCAtMjMzLDEwICsyMzcsMTAgQEAgZG90cmFwbGlua2FnZSB2 b2lkIGRvX2RvdWJsZV9mYXVsdChzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2Rl KQ0KIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IGN1cnJlbnQ7DQogDQogCS8qIFJldHVybiBu b3QgY2hlY2tlZCBiZWNhdXNlIGRvdWJsZSBjaGVjayBjYW5ub3QgYmUgaWdub3JlZCAqLw0KLQlu b3RpZnlfZGllKERJRV9UUkFQLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsIDgsIFNJR1NFR1YpOw0K Kwlub3RpZnlfZGllKERJRV9UUkFQLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsIFg4Nl9UUkFQX0RG LCBTSUdTRUdWKTsNCiANCiAJdHNrLT50aHJlYWQuZXJyb3JfY29kZSA9IGVycm9yX2NvZGU7DQot CXRzay0+dGhyZWFkLnRyYXBfbm8gPSA4Ow0KKwl0c2stPnRocmVhZC50cmFwX25vID0gWDg2X1RS QVBfREY7DQogDQogCS8qDQogCSAqIFRoaXMgaXMgYWx3YXlzIGEga2VybmVsIHRyYXAgYW5kIG5l dmVyIGZpeGFibGUgKGFuZCB0aHVzIG11c3QNCkBAIC0yNjQsNyArMjY4LDcgQEAgZG9fZ2VuZXJh bF9wcm90ZWN0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpDQogCQln b3RvIGdwX2luX2tlcm5lbDsNCiANCiAJdHNrLT50aHJlYWQuZXJyb3JfY29kZSA9IGVycm9yX2Nv ZGU7DQotCXRzay0+dGhyZWFkLnRyYXBfbm8gPSAxMzsNCisJdHNrLT50aHJlYWQudHJhcF9ubyA9 IFg4Nl9UUkFQX0dQOw0KIA0KIAlpZiAoc2hvd191bmhhbmRsZWRfc2lnbmFscyAmJiB1bmhhbmRs ZWRfc2lnbmFsKHRzaywgU0lHU0VHVikgJiYNCiAJCQlwcmludGtfcmF0ZWxpbWl0KCkpIHsNCkBA IC0yOTEsOSArMjk1LDkgQEAgZ3BfaW5fa2VybmVsOg0KIAkJcmV0dXJuOw0KIA0KIAl0c2stPnRo cmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsNCi0JdHNrLT50aHJlYWQudHJhcF9ubyA9IDEz Ow0KLQlpZiAobm90aWZ5X2RpZShESUVfR1BGLCAiZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0Iiwg cmVncywNCi0JCQkJZXJyb3JfY29kZSwgMTMsIFNJR1NFR1YpID09IE5PVElGWV9TVE9QKQ0KKwl0 c2stPnRocmVhZC50cmFwX25vID0gWDg2X1RSQVBfR1A7DQorCWlmIChub3RpZnlfZGllKERJRV9H UEYsICJnZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQiLCByZWdzLCBlcnJvcl9jb2RlLA0KKwkJCVg4 Nl9UUkFQX0dQLCBTSUdTRUdWKSA9PSBOT1RJRllfU1RPUCkNCiAJCXJldHVybjsNCiAJZGllKCJn ZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQiLCByZWdzLCBlcnJvcl9jb2RlKTsNCiB9DQpAQCAtMzAy LDEzICszMDYsMTQgQEAgZ3BfaW5fa2VybmVsOg0KIGRvdHJhcGxpbmthZ2Ugdm9pZCBfX2twcm9i ZXMgZG9faW50MyhzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQ0KIHsNCiAj aWZkZWYgQ09ORklHX0tHREJfTE9XX0xFVkVMX1RSQVANCi0JaWYgKGtnZGJfbGxfdHJhcChESUVf SU5UMywgImludDMiLCByZWdzLCBlcnJvcl9jb2RlLCAzLCBTSUdUUkFQKQ0KLQkJCT09IE5PVElG WV9TVE9QKQ0KKwlpZiAoa2dkYl9sbF90cmFwKERJRV9JTlQzLCAiaW50MyIsIHJlZ3MsIGVycm9y X2NvZGUsIFg4Nl9UUkFQX0JQLA0KKwkJCQlTSUdUUkFQKSA9PSBOT1RJRllfU1RPUCkNCiAJCXJl dHVybjsNCiAjZW5kaWYgLyogQ09ORklHX0tHREJfTE9XX0xFVkVMX1RSQVAgKi8NCiAjaWZkZWYg Q09ORklHX0tQUk9CRVMNCi0JaWYgKG5vdGlmeV9kaWUoRElFX0lOVDMsICJpbnQzIiwgcmVncywg ZXJyb3JfY29kZSwgMywgU0lHVFJBUCkNCi0JCQk9PSBOT1RJRllfU1RPUCkNCisNCisJaWYgKG5v dGlmeV9kaWUoRElFX0lOVDMsICJpbnQzIiwgcmVncywgZXJyb3JfY29kZSwgWDg2X1RSQVBfQlAs DQorCQkJU0lHVFJBUCkgPT0gTk9USUZZX1NUT1ApDQogCQlyZXR1cm47DQogI2Vsc2UNCiAJaWYg KG5vdGlmeV9kaWUoRElFX1RSQVAsICJpbnQzIiwgcmVncywgZXJyb3JfY29kZSwgMywgU0lHVFJB UCkNCkBAIC0zMTcsNyArMzIyLDcgQEAgZG90cmFwbGlua2FnZSB2b2lkIF9fa3Byb2JlcyBkb19p bnQzKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpDQogI2VuZGlmDQogDQog CXByZWVtcHRfY29uZGl0aW9uYWxfc3RpKHJlZ3MpOw0KLQlkb190cmFwKDMsIFNJR1RSQVAsICJp bnQzIiwgcmVncywgZXJyb3JfY29kZSwgTlVMTCk7DQorCWRvX3RyYXAoWDg2X1RSQVBfQlAsIFNJ R1RSQVAsICJpbnQzIiwgcmVncywgZXJyb3JfY29kZSwgTlVMTCk7DQogCXByZWVtcHRfY29uZGl0 aW9uYWxfY2xpKHJlZ3MpOw0KIH0NCiANCkBAIC00MTUsOCArNDIwLDggQEAgZG90cmFwbGlua2Fn ZSB2b2lkIF9fa3Byb2JlcyBkb19kZWJ1ZyhzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJv cl9jb2RlKQ0KIAlwcmVlbXB0X2NvbmRpdGlvbmFsX3N0aShyZWdzKTsNCiANCiAJaWYgKHJlZ3Mt PmZsYWdzICYgWDg2X1ZNX01BU0spIHsNCi0JCWhhbmRsZV92bTg2X3RyYXAoKHN0cnVjdCBrZXJu ZWxfdm04Nl9yZWdzICopIHJlZ3MsDQotCQkJCWVycm9yX2NvZGUsIDEpOw0KKwkJaGFuZGxlX3Zt ODZfdHJhcCgoc3RydWN0IGtlcm5lbF92bTg2X3JlZ3MgKikgcmVncywgZXJyb3JfY29kZSwNCisJ CQkJCVg4Nl9UUkFQX0RCKTsNCiAJCXByZWVtcHRfY29uZGl0aW9uYWxfY2xpKHJlZ3MpOw0KIAkJ cmV0dXJuOw0KIAl9DQpAQCAtNDUxLDcgKzQ1Niw4IEBAIHZvaWQgbWF0aF9lcnJvcihzdHJ1Y3Qg cHRfcmVncyAqcmVncywgaW50IGVycm9yX2NvZGUsIGludCB0cmFwbnIpDQogCXN0cnVjdCB0YXNr X3N0cnVjdCAqdGFzayA9IGN1cnJlbnQ7DQogCXNpZ2luZm9fdCBpbmZvOw0KIAl1bnNpZ25lZCBz aG9ydCBlcnI7DQotCWNoYXIgKnN0ciA9ICh0cmFwbnIgPT0gMTYpID8gImZwdSBleGNlcHRpb24i IDogInNpbWQgZXhjZXB0aW9uIjsNCisJY2hhciAqc3RyID0gKHRyYXBuciA9PSBYODZfVFJBUF9N RikgPyAiZnB1IGV4Y2VwdGlvbiIgOg0KKwkJCQkJCSJzaW1kIGV4Y2VwdGlvbiI7DQogDQogCWlm IChub3RpZnlfZGllKERJRV9UUkFQLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsIHRyYXBuciwgU0lH RlBFKSA9PSBOT1RJRllfU1RPUCkNCiAJCXJldHVybjsNCkBAIC00NzYsNyArNDgyLDcgQEAgdm9p ZCBtYXRoX2Vycm9yKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgZXJyb3JfY29kZSwgaW50IHRy YXBucikNCiAJaW5mby5zaV9zaWdubyA9IFNJR0ZQRTsNCiAJaW5mby5zaV9lcnJubyA9IDA7DQog CWluZm8uc2lfYWRkciA9ICh2b2lkIF9fdXNlciAqKXJlZ3MtPmlwOw0KLQlpZiAodHJhcG5yID09 IDE2KSB7DQorCWlmICh0cmFwbnIgPT0gWDg2X1RSQVBfTUYpIHsNCiAJCXVuc2lnbmVkIHNob3J0 IGN3ZCwgc3dkOw0KIAkJLyoNCiAJCSAqICh+Y3dkICYgc3dkKSB3aWxsIG1hc2sgb3V0IGV4Y2Vw dGlvbnMgdGhhdCBhcmUgbm90IHNldCB0byB1bm1hc2tlZA0KQEAgLTUyMCwxMCArNTI2LDExIEBA IHZvaWQgbWF0aF9lcnJvcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGVycm9yX2NvZGUsIGlu dCB0cmFwbnIpDQogCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUUkVTOw0KIAl9IGVsc2Ugew0KIAkJ LyoNCi0JCSAqIElmIHdlJ3JlIHVzaW5nIElSUSAxMywgb3Igc3VwcG9zZWRseSBldmVuIHNvbWUg dHJhcCAxNg0KLQkJICogaW1wbGVtZW50YXRpb25zLCBpdCdzIHBvc3NpYmxlIHdlIGdldCBhIHNw dXJpb3VzIHRyYXAuLi4NCisJCSAqIElmIHdlJ3JlIHVzaW5nIElSUSAxMywgb3Igc3VwcG9zZWRs eSBldmVuIHNvbWUgdHJhcA0KKwkJICogWDg2X1RSQVBfTUYgaW1wbGVtZW50YXRpb25zLCBpdCdz IHBvc3NpYmxlDQorCQkgKiB3ZSBnZXQgYSBzcHVyaW91cyB0cmFwLCB3aGljaCBpcyBub3QgYW4g ZXJyb3IuDQogCQkgKi8NCi0JCXJldHVybjsJCS8qIFNwdXJpb3VzIHRyYXAsIG5vIGVycm9yICov DQorCQlyZXR1cm47DQogCX0NCiAJZm9yY2Vfc2lnX2luZm8oU0lHRlBFLCAmaW5mbywgdGFzayk7 DQogfQ0KQEAgLTUzNCwxMyArNTQxLDEzIEBAIGRvdHJhcGxpbmthZ2Ugdm9pZCBkb19jb3Byb2Nl c3Nvcl9lcnJvcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQ0KIAlpZ25v cmVfZnB1X2lycSA9IDE7DQogI2VuZGlmDQogDQotCW1hdGhfZXJyb3IocmVncywgZXJyb3JfY29k ZSwgMTYpOw0KKwltYXRoX2Vycm9yKHJlZ3MsIGVycm9yX2NvZGUsIFg4Nl9UUkFQX01GKTsNCiB9 DQogDQogZG90cmFwbGlua2FnZSB2b2lkDQogZG9fc2ltZF9jb3Byb2Nlc3Nvcl9lcnJvcihzdHJ1 Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQ0KIHsNCi0JbWF0aF9lcnJvcihyZWdz LCBlcnJvcl9jb2RlLCAxOSk7DQorCW1hdGhfZXJyb3IocmVncywgZXJyb3JfY29kZSwgWDg2X1RS QVBfWEYpOw0KIH0NCiANCiBkb3RyYXBsaW5rYWdlIHZvaWQNCkBAIC02NTgsMjAgKzY2NSwyMSBA QCBkb3RyYXBsaW5rYWdlIHZvaWQgZG9faXJldF9lcnJvcihzdHJ1Y3QgcHRfcmVncyAqcmVncywg bG9uZyBlcnJvcl9jb2RlKQ0KIAlpbmZvLnNpX2Vycm5vID0gMDsNCiAJaW5mby5zaV9jb2RlID0g SUxMX0JBRFNUSzsNCiAJaW5mby5zaV9hZGRyID0gTlVMTDsNCi0JaWYgKG5vdGlmeV9kaWUoRElF X1RSQVAsICJpcmV0IGV4Y2VwdGlvbiIsDQotCQkJcmVncywgZXJyb3JfY29kZSwgMzIsIFNJR0lM TCkgPT0gTk9USUZZX1NUT1ApDQorCWlmIChub3RpZnlfZGllKERJRV9UUkFQLCAiaXJldCBleGNl cHRpb24iLCByZWdzLCBlcnJvcl9jb2RlLA0KKwkJCVg4Nl9UUkFQX0lSRVQsIFNJR0lMTCkgPT0g Tk9USUZZX1NUT1ApDQogCQlyZXR1cm47DQotCWRvX3RyYXAoMzIsIFNJR0lMTCwgImlyZXQgZXhj ZXB0aW9uIiwgcmVncywgZXJyb3JfY29kZSwgJmluZm8pOw0KKwlkb190cmFwKFg4Nl9UUkFQX0lS RVQsIFNJR0lMTCwgImlyZXQgZXhjZXB0aW9uIiwgcmVncywgZXJyb3JfY29kZSwNCisJCSZpbmZv KTsNCiB9DQogI2VuZGlmDQogDQogLyogU2V0IG9mIHRyYXBzIG5lZWRlZCBmb3IgZWFybHkgZGVi dWdnaW5nLiAqLw0KIHZvaWQgX19pbml0IGVhcmx5X3RyYXBfaW5pdCh2b2lkKQ0KIHsNCi0Jc2V0 X2ludHJfZ2F0ZV9pc3QoMSwgJmRlYnVnLCBERUJVR19TVEFDSyk7DQorCXNldF9pbnRyX2dhdGVf aXN0KFg4Nl9UUkFQX0RCLCAmZGVidWcsIERFQlVHX1NUQUNLKTsNCiAJLyogaW50MyBjYW4gYmUg Y2FsbGVkIGZyb20gYWxsICovDQotCXNldF9zeXN0ZW1faW50cl9nYXRlX2lzdCgzLCAmaW50Mywg REVCVUdfU1RBQ0spOw0KLQlzZXRfaW50cl9nYXRlKDE0LCAmcGFnZV9mYXVsdCk7DQorCXNldF9z eXN0ZW1faW50cl9nYXRlX2lzdChYODZfVFJBUF9CUCwgJmludDMsIERFQlVHX1NUQUNLKTsNCisJ c2V0X2ludHJfZ2F0ZShYODZfVFJBUF9QRiwgJnBhZ2VfZmF1bHQpOw0KIAlsb2FkX2lkdCgmaWR0 X2Rlc2NyKTsNCiB9DQogDQpAQCAtNjg3LDMwICs2OTUsMzAgQEAgdm9pZCBfX2luaXQgdHJhcF9p bml0KHZvaWQpDQogCWVhcmx5X2lvdW5tYXAocCwgNCk7DQogI2VuZGlmDQogDQotCXNldF9pbnRy X2dhdGUoMCwgJmRpdmlkZV9lcnJvcik7DQotCXNldF9pbnRyX2dhdGVfaXN0KDIsICZubWksIE5N SV9TVEFDSyk7DQorCXNldF9pbnRyX2dhdGUoWDg2X1RSQVBfREUsICZkaXZpZGVfZXJyb3IpOw0K KwlzZXRfaW50cl9nYXRlX2lzdChYODZfVFJBUF9OTUksICZubWksIE5NSV9TVEFDSyk7DQogCS8q IGludDQgY2FuIGJlIGNhbGxlZCBmcm9tIGFsbCAqLw0KLQlzZXRfc3lzdGVtX2ludHJfZ2F0ZSg0 LCAmb3ZlcmZsb3cpOw0KLQlzZXRfaW50cl9nYXRlKDUsICZib3VuZHMpOw0KLQlzZXRfaW50cl9n YXRlKDYsICZpbnZhbGlkX29wKTsNCi0Jc2V0X2ludHJfZ2F0ZSg3LCAmZGV2aWNlX25vdF9hdmFp bGFibGUpOw0KKwlzZXRfc3lzdGVtX2ludHJfZ2F0ZShYODZfVFJBUF9PRiwgJm92ZXJmbG93KTsN CisJc2V0X2ludHJfZ2F0ZShYODZfVFJBUF9CUiwgJmJvdW5kcyk7DQorCXNldF9pbnRyX2dhdGUo WDg2X1RSQVBfVUQsICZpbnZhbGlkX29wKTsNCisJc2V0X2ludHJfZ2F0ZShYODZfVFJBUF9OTSwg JmRldmljZV9ub3RfYXZhaWxhYmxlKTsNCiAjaWZkZWYgQ09ORklHX1g4Nl8zMg0KLQlzZXRfdGFz a19nYXRlKDgsIEdEVF9FTlRSWV9ET1VCTEVGQVVMVF9UU1MpOw0KKwlzZXRfdGFza19nYXRlKFg4 Nl9UUkFQX0RGLCBHRFRfRU5UUllfRE9VQkxFRkFVTFRfVFNTKTsNCiAjZWxzZQ0KLQlzZXRfaW50 cl9nYXRlX2lzdCg4LCAmZG91YmxlX2ZhdWx0LCBET1VCTEVGQVVMVF9TVEFDSyk7DQorCXNldF9p bnRyX2dhdGVfaXN0KFg4Nl9UUkFQX0RGLCAmZG91YmxlX2ZhdWx0LCBET1VCTEVGQVVMVF9TVEFD Syk7DQogI2VuZGlmDQotCXNldF9pbnRyX2dhdGUoOSwgJmNvcHJvY2Vzc29yX3NlZ21lbnRfb3Zl cnJ1bik7DQotCXNldF9pbnRyX2dhdGUoMTAsICZpbnZhbGlkX1RTUyk7DQotCXNldF9pbnRyX2dh dGUoMTEsICZzZWdtZW50X25vdF9wcmVzZW50KTsNCi0Jc2V0X2ludHJfZ2F0ZV9pc3QoMTIsICZz dGFja19zZWdtZW50LCBTVEFDS0ZBVUxUX1NUQUNLKTsNCi0Jc2V0X2ludHJfZ2F0ZSgxMywgJmdl bmVyYWxfcHJvdGVjdGlvbik7DQotCXNldF9pbnRyX2dhdGUoMTUsICZzcHVyaW91c19pbnRlcnJ1 cHRfYnVnKTsNCi0Jc2V0X2ludHJfZ2F0ZSgxNiwgJmNvcHJvY2Vzc29yX2Vycm9yKTsNCi0Jc2V0 X2ludHJfZ2F0ZSgxNywgJmFsaWdubWVudF9jaGVjayk7DQorCXNldF9pbnRyX2dhdGUoWDg2X1RS QVBfT0xEX01GLCAmY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKTsNCisJc2V0X2ludHJfZ2F0 ZShYODZfVFJBUF9UUywgJmludmFsaWRfVFNTKTsNCisJc2V0X2ludHJfZ2F0ZShYODZfVFJBUF9O UCwgJnNlZ21lbnRfbm90X3ByZXNlbnQpOw0KKwlzZXRfaW50cl9nYXRlX2lzdChYODZfVFJBUF9T UywgJnN0YWNrX3NlZ21lbnQsIFNUQUNLRkFVTFRfU1RBQ0spOw0KKwlzZXRfaW50cl9nYXRlKFg4 Nl9UUkFQX0dQLCAmZ2VuZXJhbF9wcm90ZWN0aW9uKTsNCisJc2V0X2ludHJfZ2F0ZShYODZfVFJB UF9TUFVSSU9VUywgJnNwdXJpb3VzX2ludGVycnVwdF9idWcpOw0KKwlzZXRfaW50cl9nYXRlKFg4 Nl9UUkFQX01GLCAmY29wcm9jZXNzb3JfZXJyb3IpOw0KKwlzZXRfaW50cl9nYXRlKFg4Nl9UUkFQ X0FDLCAmYWxpZ25tZW50X2NoZWNrKTsNCiAjaWZkZWYgQ09ORklHX1g4Nl9NQ0UNCi0Jc2V0X2lu dHJfZ2F0ZV9pc3QoMTgsICZtYWNoaW5lX2NoZWNrLCBNQ0VfU1RBQ0spOw0KKwlzZXRfaW50cl9n YXRlX2lzdChYODZfVFJBUF9NQywgJm1hY2hpbmVfY2hlY2ssIE1DRV9TVEFDSyk7DQogI2VuZGlm DQotCXNldF9pbnRyX2dhdGUoMTksICZzaW1kX2NvcHJvY2Vzc29yX2Vycm9yKTsNCisJc2V0X2lu dHJfZ2F0ZShYODZfVFJBUF9YRiwgJnNpbWRfY29wcm9jZXNzb3JfZXJyb3IpOw0KIA0KIAkvKiBS ZXNlcnZlIGFsbCB0aGUgYnVpbHRpbiBhbmQgdGhlIHN5c2NhbGwgdmVjdG9yOiAqLw0KIAlmb3Ig KGkgPSAwOyBpIDwgRklSU1RfRVhURVJOQUxfVkVDVE9SOyBpKyspDQpkaWZmIC0tZ2l0IGEvYXJj aC94ODYvcGxhdGZvcm0vZWZpL2VmaS5jIGIvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaS5jDQpp bmRleCA0ZDMyMGIyLi5iZWY5OTkxIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYvcGxhdGZvcm0vZWZp L2VmaS5jDQorKysgYi9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpLmMNCkBAIC00OSw5ICs0OSw2 IEBADQogI2RlZmluZSBFRklfREVCVUcJMQ0KICNkZWZpbmUgUEZYIAkJIkVGSTogIg0KIA0KLWlu dCBlZmlfZW5hYmxlZDsNCi1FWFBPUlRfU1lNQk9MKGVmaV9lbmFibGVkKTsNCi0NCiBzdHJ1Y3Qg ZWZpIF9fcmVhZF9tb3N0bHkgZWZpID0gew0KIAkubXBzICAgICAgICA9IEVGSV9JTlZBTElEX1RB QkxFX0FERFIsDQogCS5hY3BpICAgICAgID0gRUZJX0lOVkFMSURfVEFCTEVfQUREUiwNCkBAIC03 MCw5ICs2NywyNSBAQCBzdHJ1Y3QgZWZpX21lbW9yeV9tYXAgbWVtbWFwOw0KIHN0YXRpYyBzdHJ1 Y3QgZWZpIGVmaV9waHlzIF9faW5pdGRhdGE7DQogc3RhdGljIGVmaV9zeXN0ZW1fdGFibGVfdCBl Zmlfc3lzdGFiIF9faW5pdGRhdGE7DQogDQorc3RhdGljIGlubGluZSBib29sIGVmaV9pc19uYXRp dmUodm9pZCkNCit7DQorCXJldHVybiBJU19FTkFCTEVEKENPTkZJR19YODZfNjQpID09IGVmaV9l bmFibGVkKEVGSV82NEJJVCk7DQorfQ0KKw0KK3Vuc2lnbmVkIGxvbmcgeDg2X2VmaV9mYWNpbGl0 eTsNCisNCisvKg0KKyAqIFJldHVybnMgMSBpZiAnZmFjaWxpdHknIGlzIGVuYWJsZWQsIDAgb3Ro ZXJ3aXNlLg0KKyAqLw0KK2ludCBlZmlfZW5hYmxlZChpbnQgZmFjaWxpdHkpDQorew0KKwlyZXR1 cm4gdGVzdF9iaXQoZmFjaWxpdHksICZ4ODZfZWZpX2ZhY2lsaXR5KSAhPSAwOw0KK30NCitFWFBP UlRfU1lNQk9MKGVmaV9lbmFibGVkKTsNCisNCiBzdGF0aWMgaW50IF9faW5pdCBzZXR1cF9ub2Vm aShjaGFyICphcmcpDQogew0KLQllZmlfZW5hYmxlZCA9IDA7DQorCWNsZWFyX2JpdChFRklfQk9P VCwgJng4Nl9lZmlfZmFjaWxpdHkpOw0KIAlyZXR1cm4gMDsNCiB9DQogZWFybHlfcGFyYW0oIm5v ZWZpIiwgc2V0dXBfbm9lZmkpOw0KQEAgLTQ0MCw2ICs0NTMsOSBAQCB2b2lkIF9faW5pdCBlZmlf aW5pdCh2b2lkKQ0KIAlpbnQgaSA9IDA7DQogCXZvaWQgKnRtcDsNCiANCisJaWYgKCFlZmlfaXNf bmF0aXZlKCkpDQorCQlyZXR1cm47DQorDQogI2lmZGVmIENPTkZJR19YODZfMzINCiAJZWZpX3Bo eXMuc3lzdGFiID0gKGVmaV9zeXN0ZW1fdGFibGVfdCAqKWJvb3RfcGFyYW1zLmVmaV9pbmZvLmVm aV9zeXN0YWI7DQogI2Vsc2UNCkBAIC00NjcsNiArNDgzLDggQEAgdm9pZCBfX2luaXQgZWZpX2lu aXQodm9pZCkNCiAJCSAgICAgICBlZmkuc3lzdGFiLT5oZHIucmV2aXNpb24gPj4gMTYsDQogCQkg ICAgICAgZWZpLnN5c3RhYi0+aGRyLnJldmlzaW9uICYgMHhmZmZmKTsNCiANCisJc2V0X2JpdChF RklfU1lTVEVNX1RBQkxFUywgJng4Nl9lZmlfZmFjaWxpdHkpOw0KKw0KIAkvKg0KIAkgKiBTaG93 IHdoYXQgd2Uga25vdyBmb3IgcG9zdGVyaXR5DQogCSAqLw0KQEAgLTUyOSw2ICs1NDcsOCBAQCB2 b2lkIF9faW5pdCBlZmlfaW5pdCh2b2lkKQ0KIAllYXJseV9pb3VubWFwKGNvbmZpZ190YWJsZXMs DQogCQkJICBlZmkuc3lzdGFiLT5ucl90YWJsZXMgKiBzaXplb2YoZWZpX2NvbmZpZ190YWJsZV90 KSk7DQogDQorCXNldF9iaXQoRUZJX0NPTkZJR19UQUJMRVMsICZ4ODZfZWZpX2ZhY2lsaXR5KTsN CisNCiAJLyoNCiAJICogQ2hlY2sgb3V0IHRoZSBydW50aW1lIHNlcnZpY2VzIHRhYmxlLiBXZSBu ZWVkIHRvIG1hcA0KIAkgKiB0aGUgcnVudGltZSBzZXJ2aWNlcyB0YWJsZSBzbyB0aGF0IHdlIGNh biBncmFiIHRoZSBwaHlzaWNhbA0KQEAgLTU1Miw2ICs1NzIsOCBAQCB2b2lkIF9faW5pdCBlZmlf aW5pdCh2b2lkKQ0KIAkJICogdmlydHVhbCBtb2RlLg0KIAkJICovDQogCQllZmkuZ2V0X3RpbWUg PSBwaHlzX2VmaV9nZXRfdGltZTsNCisNCisJCXNldF9iaXQoRUZJX1JVTlRJTUVfU0VSVklDRVMs ICZ4ODZfZWZpX2ZhY2lsaXR5KTsNCiAJfSBlbHNlDQogCQlwcmludGsoS0VSTl9FUlIgIkNvdWxk IG5vdCBtYXAgdGhlIEVGSSBydW50aW1lIHNlcnZpY2UgIg0KIAkJICAgICAgICJ0YWJsZSFcbiIp Ow0KQEAgLTU3MSw2ICs1OTMsOCBAQCB2b2lkIF9faW5pdCBlZmlfaW5pdCh2b2lkKQ0KIAlpZiAo YWRkX2VmaV9tZW1tYXApDQogCQlkb19hZGRfZWZpX21lbW1hcCgpOw0KIA0KKwlzZXRfYml0KEVG SV9NRU1NQVAsICZ4ODZfZWZpX2ZhY2lsaXR5KTsNCisNCiAjaWZkZWYgQ09ORklHX1g4Nl8zMg0K IAl4ODZfcGxhdGZvcm0uZ2V0X3dhbGxjbG9jayA9IGVmaV9nZXRfdGltZTsNCiAJeDg2X3BsYXRm b3JtLnNldF93YWxsY2xvY2sgPSBlZmlfc2V0X3J0Y19tbXNzOw0KQEAgLTczMSw3ICs3NTUsNyBA QCB2b2lkIF9faW5pdCBlZmlfZW50ZXJfdmlydHVhbF9tb2RlKHZvaWQpDQogCSAqDQogCSAqIENh bGwgRUZJIHNlcnZpY2VzIHRocm91Z2ggd3JhcHBlciBmdW5jdGlvbnMuDQogCSAqLw0KLQllZmku cnVudGltZV92ZXJzaW9uID0gZWZpX3N5c3RhYi5md19yZXZpc2lvbjsNCisJZWZpLnJ1bnRpbWVf dmVyc2lvbiA9IGVmaV9zeXN0YWIuaGRyLnJldmlzaW9uOw0KIAllZmkuZ2V0X3RpbWUgPSB2aXJ0 X2VmaV9nZXRfdGltZTsNCiAJZWZpLnNldF90aW1lID0gdmlydF9lZmlfc2V0X3RpbWU7DQogCWVm aS5nZXRfd2FrZXVwX3RpbWUgPSB2aXJ0X2VmaV9nZXRfd2FrZXVwX3RpbWU7DQpAQCAtNzQ3LDYg Kzc3MSw3IEBAIHZvaWQgX19pbml0IGVmaV9lbnRlcl92aXJ0dWFsX21vZGUodm9pZCkNCiAJZWZp LnF1ZXJ5X2NhcHN1bGVfY2FwcyA9IHZpcnRfZWZpX3F1ZXJ5X2NhcHN1bGVfY2FwczsNCiAJaWYg KF9fc3VwcG9ydGVkX3B0ZV9tYXNrICYgX1BBR0VfTlgpDQogCQlydW50aW1lX2NvZGVfcGFnZV9t a2V4ZWMoKTsNCisJY2xlYXJfYml0KEVGSV9NRU1NQVAsICZ4ODZfZWZpX2ZhY2lsaXR5KTsNCiAJ ZWFybHlfaW91bm1hcChtZW1tYXAubWFwLCBtZW1tYXAubnJfbWFwICogbWVtbWFwLmRlc2Nfc2l6 ZSk7DQogCW1lbW1hcC5tYXAgPSBOVUxMOw0KIAlrZnJlZShuZXdfbWVtbWFwKTsNCkBAIC03NjAs NiArNzg1LDkgQEAgdTMyIGVmaV9tZW1fdHlwZSh1bnNpZ25lZCBsb25nIHBoeXNfYWRkcikNCiAJ ZWZpX21lbW9yeV9kZXNjX3QgKm1kOw0KIAl2b2lkICpwOw0KIA0KKwlpZiAoIWVmaV9lbmFibGVk KEVGSV9NRU1NQVApKQ0KKwkJcmV0dXJuIDA7DQorDQogCWZvciAocCA9IG1lbW1hcC5tYXA7IHAg PCBtZW1tYXAubWFwX2VuZDsgcCArPSBtZW1tYXAuZGVzY19zaXplKSB7DQogCQltZCA9IHA7DQog CQlpZiAoKG1kLT5waHlzX2FkZHIgPD0gcGh5c19hZGRyKSAmJg0KZGlmZiAtLWdpdCBhL2FyY2gv eDg2L3BsYXRmb3JtL2VmaS9lZmlfNjQuYyBiL2FyY2gveDg2L3BsYXRmb3JtL2VmaS9lZmlfNjQu Yw0KaW5kZXggYWMzYWE1NC4uMGZiYTg2ZCAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L3BsYXRmb3Jt L2VmaS9lZmlfNjQuYw0KKysrIGIvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV82NC5jDQpAQCAt MzgsNyArMzgsNyBAQA0KICNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPg0KICNpbmNsdWRlIDxh c20vZml4bWFwLmg+DQogDQotc3RhdGljIHBnZF90IHNhdmVfcGdkIF9faW5pdGRhdGE7DQorc3Rh dGljIHBnZF90ICpzYXZlX3BnZCBfX2luaXRkYXRhOw0KIHN0YXRpYyB1bnNpZ25lZCBsb25nIGVm aV9mbGFncyBfX2luaXRkYXRhOw0KIA0KIHN0YXRpYyB2b2lkIF9faW5pdCBlYXJseV9jb2RlX21h cHBpbmdfc2V0X2V4ZWMoaW50IGV4ZWN1dGFibGUpDQpAQCAtNjEsMTIgKzYxLDIwIEBAIHN0YXRp YyB2b2lkIF9faW5pdCBlYXJseV9jb2RlX21hcHBpbmdfc2V0X2V4ZWMoaW50IGV4ZWN1dGFibGUp DQogdm9pZCBfX2luaXQgZWZpX2NhbGxfcGh5c19wcmVsb2codm9pZCkNCiB7DQogCXVuc2lnbmVk IGxvbmcgdmFkZHJlc3M7DQorCWludCBwZ2Q7DQorCWludCBuX3BnZHM7DQogDQogCWVhcmx5X2Nv ZGVfbWFwcGluZ19zZXRfZXhlYygxKTsNCiAJbG9jYWxfaXJxX3NhdmUoZWZpX2ZsYWdzKTsNCi0J dmFkZHJlc3MgPSAodW5zaWduZWQgbG9uZylfX3ZhKDB4MFVMKTsNCi0Jc2F2ZV9wZ2QgPSAqcGdk X29mZnNldF9rKDB4MFVMKTsNCi0Jc2V0X3BnZChwZ2Rfb2Zmc2V0X2soMHgwVUwpLCAqcGdkX29m ZnNldF9rKHZhZGRyZXNzKSk7DQorDQorCW5fcGdkcyA9IERJVl9ST1VORF9VUCgobWF4X3BmbiA8 PCBQQUdFX1NISUZUKSwgUEdESVJfU0laRSk7DQorCXNhdmVfcGdkID0ga21hbGxvYyhuX3BnZHMg KiBzaXplb2YocGdkX3QpLCBHRlBfS0VSTkVMKTsNCisNCisJZm9yIChwZ2QgPSAwOyBwZ2QgPCBu X3BnZHM7IHBnZCsrKSB7DQorCQlzYXZlX3BnZFtwZ2RdID0gKnBnZF9vZmZzZXRfayhwZ2QgKiBQ R0RJUl9TSVpFKTsNCisJCXZhZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpX192YShwZ2QgKiBQR0RJ Ul9TSVpFKTsNCisJCXNldF9wZ2QocGdkX29mZnNldF9rKHBnZCAqIFBHRElSX1NJWkUpLCAqcGdk X29mZnNldF9rKHZhZGRyZXNzKSk7DQorCX0NCiAJX19mbHVzaF90bGJfYWxsKCk7DQogfQ0KIA0K QEAgLTc1LDcgKzgzLDExIEBAIHZvaWQgX19pbml0IGVmaV9jYWxsX3BoeXNfZXBpbG9nKHZvaWQp DQogCS8qDQogCSAqIEFmdGVyIHRoZSBsb2NrIGlzIHJlbGVhc2VkLCB0aGUgb3JpZ2luYWwgcGFn ZSB0YWJsZSBpcyByZXN0b3JlZC4NCiAJICovDQotCXNldF9wZ2QocGdkX29mZnNldF9rKDB4MFVM KSwgc2F2ZV9wZ2QpOw0KKwlpbnQgcGdkOw0KKwlpbnQgbl9wZ2RzID0gRElWX1JPVU5EX1VQKCht YXhfcGZuIDw8IFBBR0VfU0hJRlQpICwgUEdESVJfU0laRSk7DQorCWZvciAocGdkID0gMDsgcGdk IDwgbl9wZ2RzOyBwZ2QrKykNCisJCXNldF9wZ2QocGdkX29mZnNldF9rKHBnZCAqIFBHRElSX1NJ WkUpLCBzYXZlX3BnZFtwZ2RdKTsNCisJa2ZyZWUoc2F2ZV9wZ2QpOw0KIAlfX2ZsdXNoX3RsYl9h bGwoKTsNCiAJbG9jYWxfaXJxX3Jlc3RvcmUoZWZpX2ZsYWdzKTsNCiAJZWFybHlfY29kZV9tYXBw aW5nX3NldF9leGVjKDApOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9vc2wuYyBiL2RyaXZl cnMvYWNwaS9vc2wuYw0KaW5kZXggZjMxYzVjNS4uYTY2NjRkMiAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvYWNwaS9vc2wuYw0KKysrIGIvZHJpdmVycy9hY3BpL29zbC5jDQpAQCAtMjU1LDcgKzI1NSw3 IEBAIGFjcGlfcGh5c2ljYWxfYWRkcmVzcyBfX2luaXQgYWNwaV9vc19nZXRfcm9vdF9wb2ludGVy KHZvaWQpDQogCQlyZXR1cm4gYWNwaV9yc2RwOw0KICNlbmRpZg0KIA0KLQlpZiAoZWZpX2VuYWJs ZWQpIHsNCisJaWYgKGVmaV9lbmFibGVkKEVGSV9DT05GSUdfVEFCTEVTKSkgew0KIAkJaWYgKGVm aS5hY3BpMjAgIT0gRUZJX0lOVkFMSURfVEFCTEVfQUREUikNCiAJCQlyZXR1cm4gZWZpLmFjcGky MDsNCiAJCWVsc2UgaWYgKGVmaS5hY3BpICE9IEVGSV9JTlZBTElEX1RBQkxFX0FERFIpDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9hY3BpL3Byb2Nlc3Nvcl9pZGxlLmMgYi9kcml2ZXJzL2FjcGkvcHJv Y2Vzc29yX2lkbGUuYw0KaW5kZXggMGU4ZTJkZS4uZGUwNzkxYyAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvYWNwaS9wcm9jZXNzb3JfaWRsZS5jDQorKysgYi9kcml2ZXJzL2FjcGkvcHJvY2Vzc29yX2lk bGUuYw0KQEAgLTk4OSw2ICs5ODksOSBAQCBzdGF0aWMgaW50IGFjcGlfcHJvY2Vzc29yX3NldHVw X2NwdWlkbGVfY3goc3RydWN0IGFjcGlfcHJvY2Vzc29yICpwcikNCiAJCXJldHVybiAtRUlOVkFM Ow0KIAl9DQogDQorCWlmICghZGV2KQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQogCWRldi0+Y3B1 ID0gcHItPmlkOw0KIA0KIAlpZiAobWF4X2NzdGF0ZSA9PSAwKQ0KQEAgLTExNzUsNiArMTE3OCw3 IEBAIGludCBhY3BpX3Byb2Nlc3Nvcl9jc3RfaGFzX2NoYW5nZWQoc3RydWN0IGFjcGlfcHJvY2Vz c29yICpwcikNCiAJCX0NCiANCiAJCS8qIFBvcHVsYXRlIFVwZGF0ZWQgQy1zdGF0ZSBpbmZvcm1h dGlvbiAqLw0KKwkJYWNwaV9wcm9jZXNzb3JfZ2V0X3Bvd2VyX2luZm8ocHIpOw0KIAkJYWNwaV9w cm9jZXNzb3Jfc2V0dXBfY3B1aWRsZV9zdGF0ZXMocHIpOw0KIA0KIAkJLyogRW5hYmxlIGFsbCBj cHVpZGxlIGRldmljZXMgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9haGNpLmMgYi9kcml2 ZXJzL2F0YS9haGNpLmMNCmluZGV4IDYwODI1N2EuLmIwN2VkYzQgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL2F0YS9haGNpLmMNCisrKyBiL2RyaXZlcnMvYXRhL2FoY2kuYw0KQEAgLTM5NSw3ICszOTUs MTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGFoY2lfcGNpX3RibFtdID0g ew0KIAl7IFBDSV9WREVWSUNFKFBST01JU0UsIDB4M2YyMCksIGJvYXJkX2FoY2kgfSwJLyogUERD NDI4MTkgKi8NCiANCiAJLyogQXNtZWRpYSAqLw0KLQl7IFBDSV9WREVWSUNFKEFTTUVESUEsIDB4 MDYxMiksIGJvYXJkX2FoY2kgfSwJLyogQVNNMTA2MSAqLw0KKwl7IFBDSV9WREVWSUNFKEFTTUVE SUEsIDB4MDYwMSksIGJvYXJkX2FoY2kgfSwJLyogQVNNMTA2MCAqLw0KKwl7IFBDSV9WREVWSUNF KEFTTUVESUEsIDB4MDYwMiksIGJvYXJkX2FoY2kgfSwJLyogQVNNMTA2MCAqLw0KKwl7IFBDSV9W REVWSUNFKEFTTUVESUEsIDB4MDYxMSksIGJvYXJkX2FoY2kgfSwJLyogQVNNMTA2MSAqLw0KKwl7 IFBDSV9WREVWSUNFKEFTTUVESUEsIDB4MDYxMiksIGJvYXJkX2FoY2kgfSwJLyogQVNNMTA2MiAq Lw0KIA0KIAkvKiBHZW5lcmljLCBQQ0kgY2xhc3MgY29kZSBmb3IgQUhDSSAqLw0KIAl7IFBDSV9B TllfSUQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfcmVxLmMgYi9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9y ZXEuYw0KaW5kZXggNGEwZjMxNC4uYmU5ODRlMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYmxvY2sv ZHJiZC9kcmJkX3JlcS5jDQorKysgYi9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9yZXEuYw0KQEAg LTM3LDYgKzM3LDcgQEAgc3RhdGljIHZvaWQgX2RyYmRfc3RhcnRfaW9fYWNjdChzdHJ1Y3QgZHJi ZF9jb25mICptZGV2LCBzdHJ1Y3QgZHJiZF9yZXF1ZXN0ICpyZXENCiAJY29uc3QgaW50IHJ3ID0g YmlvX2RhdGFfZGlyKGJpbyk7DQogCWludCBjcHU7DQogCWNwdSA9IHBhcnRfc3RhdF9sb2NrKCk7 DQorCXBhcnRfcm91bmRfc3RhdHMoY3B1LCAmbWRldi0+dmRpc2stPnBhcnQwKTsNCiAJcGFydF9z dGF0X2luYyhjcHUsICZtZGV2LT52ZGlzay0+cGFydDAsIGlvc1tyd10pOw0KIAlwYXJ0X3N0YXRf YWRkKGNwdSwgJm1kZXYtPnZkaXNrLT5wYXJ0MCwgc2VjdG9yc1tyd10sIGJpb19zZWN0b3JzKGJp bykpOw0KIAlwYXJ0X2luY19pbl9mbGlnaHQoJm1kZXYtPnZkaXNrLT5wYXJ0MCwgcncpOw0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svdmlydGlvX2Jsay5jIGIvZHJpdmVycy9ibG9jay92aXJ0 aW9fYmxrLmMNCmluZGV4IGRlOWM4MDAuLjE2NmNiMzYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Js b2NrL3ZpcnRpb19ibGsuYw0KKysrIGIvZHJpdmVycy9ibG9jay92aXJ0aW9fYmxrLmMNCkBAIC01 NDYsNiArNTQ2LDcgQEAgc3RhdGljIHZvaWQgX19kZXZleGl0IHZpcnRibGtfcmVtb3ZlKHN0cnVj dCB2aXJ0aW9fZGV2aWNlICp2ZGV2KQ0KIHsNCiAJc3RydWN0IHZpcnRpb19ibGsgKnZibGsgPSB2 ZGV2LT5wcml2Ow0KIAlpbnQgaW5kZXggPSB2YmxrLT5pbmRleDsNCisJaW50IHJlZmM7DQogDQog CS8qIFByZXZlbnQgY29uZmlnIHdvcmsgaGFuZGxlciBmcm9tIGFjY2Vzc2luZyB0aGUgZGV2aWNl LiAqLw0KIAltdXRleF9sb2NrKCZ2YmxrLT5jb25maWdfbG9jayk7DQpAQCAtNTYwLDExICs1NjEs MTUgQEAgc3RhdGljIHZvaWQgX19kZXZleGl0IHZpcnRibGtfcmVtb3ZlKHN0cnVjdCB2aXJ0aW9f ZGV2aWNlICp2ZGV2KQ0KIA0KIAlmbHVzaF93b3JrKCZ2YmxrLT5jb25maWdfd29yayk7DQogDQor CXJlZmMgPSBhdG9taWNfcmVhZCgmZGlza190b19kZXYodmJsay0+ZGlzayktPmtvYmoua3JlZi5y ZWZjb3VudCk7DQogCXB1dF9kaXNrKHZibGstPmRpc2spOw0KIAltZW1wb29sX2Rlc3Ryb3kodmJs ay0+cG9vbCk7DQogCXZkZXYtPmNvbmZpZy0+ZGVsX3Zxcyh2ZGV2KTsNCiAJa2ZyZWUodmJsayk7 DQotCWlkYV9zaW1wbGVfcmVtb3ZlKCZ2ZF9pbmRleF9pZGEsIGluZGV4KTsNCisNCisJLyogT25s eSBmcmVlIGRldmljZSBpZCBpZiB3ZSBkb24ndCBoYXZlIGFueSB1c2VycyAqLw0KKwlpZiAocmVm YyA9PSAxKQ0KKwkJaWRhX3NpbXBsZV9yZW1vdmUoJnZkX2luZGV4X2lkYSwgaW5kZXgpOw0KIH0N CiANCiBzdGF0aWMgY29uc3Qgc3RydWN0IHZpcnRpb19kZXZpY2VfaWQgaWRfdGFibGVbXSA9IHsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9pb2F0L2RtYV92My5jIGIvZHJpdmVycy9kbWEvaW9h dC9kbWFfdjMuYw0KaW5kZXggMmRiZjMyYi4uNzE0NTYwZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv ZG1hL2lvYXQvZG1hX3YzLmMNCisrKyBiL2RyaXZlcnMvZG1hL2lvYXQvZG1hX3YzLmMNCkBAIC05 NDksNyArOTQ5LDcgQEAgc3RhdGljIGludCBfX2RldmluaXQgaW9hdF94b3JfdmFsX3NlbGZfdGVz dChzdHJ1Y3QgaW9hdGRtYV9kZXZpY2UgKmRldmljZSkNCiAJCQlnb3RvIGZyZWVfcmVzb3VyY2Vz Ow0KIAkJfQ0KIAl9DQotCWRtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKGRldiwgZGVzdF9kbWEs IFBBR0VfU0laRSwgRE1BX1RPX0RFVklDRSk7DQorCWRtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNl KGRldiwgZGVzdF9kbWEsIFBBR0VfU0laRSwgRE1BX0ZST01fREVWSUNFKTsNCiANCiAJLyogc2tp cCB2YWxpZGF0ZSBpZiB0aGUgY2FwYWJpbGl0eSBpcyBub3QgcHJlc2VudCAqLw0KIAlpZiAoIWRt YV9oYXNfY2FwKERNQV9YT1JfVkFMLCBkbWFfY2hhbi0+ZGV2aWNlLT5jYXBfbWFzaykpDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9lZGFjL2VkYWNfcGNpX3N5c2ZzLmMgYi9kcml2ZXJzL2VkYWMvZWRh Y19wY2lfc3lzZnMuYw0KaW5kZXggNDk1MTk4YS4uOGNjODY3NiAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvZWRhYy9lZGFjX3BjaV9zeXNmcy5jDQorKysgYi9kcml2ZXJzL2VkYWMvZWRhY19wY2lfc3lz ZnMuYw0KQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGF0aWMgc3NpemVfdCBlZGFjX3BjaV9kZXZfc3Rv cmUoc3RydWN0IGtvYmplY3QgKmtvYmosDQogCXN0cnVjdCBlZGFjX3BjaV9kZXZfYXR0cmlidXRl ICplZGFjX3BjaV9kZXY7DQogCWVkYWNfcGNpX2RldiA9IChzdHJ1Y3QgZWRhY19wY2lfZGV2X2F0 dHJpYnV0ZSAqKWF0dHI7DQogDQotCWlmIChlZGFjX3BjaV9kZXYtPnNob3cpDQorCWlmIChlZGFj X3BjaV9kZXYtPnN0b3JlKQ0KIAkJcmV0dXJuIGVkYWNfcGNpX2Rldi0+c3RvcmUoZWRhY19wY2lf ZGV2LT52YWx1ZSwgYnVmZmVyLCBjb3VudCk7DQogCXJldHVybiAtRUlPOw0KIH0NCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2Zpcm13YXJlL2RtaV9zY2FuLmMgYi9kcml2ZXJzL2Zpcm13YXJlL2RtaV9z Y2FuLmMNCmluZGV4IGIyOTgxNTguLjk4MmYxZjUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Zpcm13 YXJlL2RtaV9zY2FuLmMNCisrKyBiL2RyaXZlcnMvZmlybXdhcmUvZG1pX3NjYW4uYw0KQEAgLTE2 LDYgKzE2LDcgQEANCiAgKi8NCiBzdGF0aWMgY2hhciBkbWlfZW1wdHlfc3RyaW5nW10gPSAiICAg ICAgICAiOw0KIA0KK3N0YXRpYyB1MTYgX19pbml0ZGF0YSBkbWlfdmVyOw0KIC8qDQogICogQ2F0 Y2ggdG9vIGVhcmx5IGNhbGxzIHRvIGRtaV9jaGVja19zeXN0ZW0oKToNCiAgKi8NCkBAIC0xMTgs MTIgKzExOSwxMiBAQCBzdGF0aWMgaW50IF9faW5pdCBkbWlfd2Fsa19lYXJseSh2b2lkICgqZGVj b2RlKShjb25zdCBzdHJ1Y3QgZG1pX2hlYWRlciAqLA0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3Rh dGljIGludCBfX2luaXQgZG1pX2NoZWNrc3VtKGNvbnN0IHU4ICpidWYpDQorc3RhdGljIGludCBf X2luaXQgZG1pX2NoZWNrc3VtKGNvbnN0IHU4ICpidWYsIHU4IGxlbikNCiB7DQogCXU4IHN1bSA9 IDA7DQogCWludCBhOw0KIA0KLQlmb3IgKGEgPSAwOyBhIDwgMTU7IGErKykNCisJZm9yIChhID0g MDsgYSA8IGxlbjsgYSsrKQ0KIAkJc3VtICs9IGJ1ZlthXTsNCiANCiAJcmV0dXJuIHN1bSA9PSAw Ow0KQEAgLTE2MSw4ICsxNjIsMTAgQEAgc3RhdGljIHZvaWQgX19pbml0IGRtaV9zYXZlX3V1aWQo Y29uc3Qgc3RydWN0IGRtaV9oZWFkZXIgKmRtLCBpbnQgc2xvdCwgaW50IGluZGUNCiAJCXJldHVy bjsNCiANCiAJZm9yIChpID0gMDsgaSA8IDE2ICYmIChpc19mZiB8fCBpc18wMCk7IGkrKykgew0K LQkJaWYoZFtpXSAhPSAweDAwKSBpc19mZiA9IDA7DQotCQlpZihkW2ldICE9IDB4RkYpIGlzXzAw ID0gMDsNCisJCWlmIChkW2ldICE9IDB4MDApDQorCQkJaXNfMDAgPSAwOw0KKwkJaWYgKGRbaV0g IT0gMHhGRikNCisJCQlpc19mZiA9IDA7DQogCX0NCiANCiAJaWYgKGlzX2ZmIHx8IGlzXzAwKQ0K QEAgLTE3Miw3ICsxNzUsMTUgQEAgc3RhdGljIHZvaWQgX19pbml0IGRtaV9zYXZlX3V1aWQoY29u c3Qgc3RydWN0IGRtaV9oZWFkZXIgKmRtLCBpbnQgc2xvdCwgaW50IGluZGUNCiAJaWYgKCFzKQ0K IAkJcmV0dXJuOw0KIA0KLQlzcHJpbnRmKHMsICIlcFVCIiwgZCk7DQorCS8qDQorCSAqIEFzIG9m IHZlcnNpb24gMi42IG9mIHRoZSBTTUJJT1Mgc3BlY2lmaWNhdGlvbiwgdGhlIGZpcnN0IDMgZmll bGRzIG9mDQorCSAqIHRoZSBVVUlEIGFyZSBzdXBwb3NlZCB0byBiZSBsaXR0bGUtZW5kaWFuIGVu Y29kZWQuICBUaGUgc3BlY2lmaWNhdGlvbg0KKwkgKiBzYXlzIHRoYXQgdGhpcyBpcyB0aGUgZGVm YWN0byBzdGFuZGFyZC4NCisJICovDQorCWlmIChkbWlfdmVyID49IDB4MDIwNikNCisJCXNwcmlu dGYocywgIiVwVUwiLCBkKTsNCisJZWxzZQ0KKwkJc3ByaW50ZihzLCAiJXBVQiIsIGQpOw0KIA0K ICAgICAgICAgZG1pX2lkZW50W3Nsb3RdID0gczsNCiB9DQpAQCAtNDA0LDM1ICs0MTUsNjMgQEAg c3RhdGljIGludCBfX2luaXQgZG1pX3ByZXNlbnQoY29uc3QgY2hhciBfX2lvbWVtICpwKQ0KIAl1 OCBidWZbMTVdOw0KIA0KIAltZW1jcHlfZnJvbWlvKGJ1ZiwgcCwgMTUpOw0KLQlpZiAoKG1lbWNt cChidWYsICJfRE1JXyIsIDUpID09IDApICYmIGRtaV9jaGVja3N1bShidWYpKSB7DQorCWlmIChk bWlfY2hlY2tzdW0oYnVmLCAxNSkpIHsNCiAJCWRtaV9udW0gPSAoYnVmWzEzXSA8PCA4KSB8IGJ1 ZlsxMl07DQogCQlkbWlfbGVuID0gKGJ1Zls3XSA8PCA4KSB8IGJ1Zls2XTsNCiAJCWRtaV9iYXNl ID0gKGJ1ZlsxMV0gPDwgMjQpIHwgKGJ1ZlsxMF0gPDwgMTYpIHwNCiAJCQkoYnVmWzldIDw8IDgp IHwgYnVmWzhdOw0KIA0KLQkJLyoNCi0JCSAqIERNSSB2ZXJzaW9uIDAuMCBtZWFucyB0aGF0IHRo ZSByZWFsIHZlcnNpb24gaXMgdGFrZW4gZnJvbQ0KLQkJICogdGhlIFNNQklPUyB2ZXJzaW9uLCB3 aGljaCB3ZSBkb24ndCBrbm93IGF0IHRoaXMgcG9pbnQuDQotCQkgKi8NCi0JCWlmIChidWZbMTRd ICE9IDApDQotCQkJcHJpbnRrKEtFUk5fSU5GTyAiRE1JICVkLiVkIHByZXNlbnQuXG4iLA0KLQkJ CSAgICAgICBidWZbMTRdID4+IDQsIGJ1ZlsxNF0gJiAweEYpOw0KLQkJZWxzZQ0KLQkJCXByaW50 ayhLRVJOX0lORk8gIkRNSSBwcmVzZW50LlxuIik7DQogCQlpZiAoZG1pX3dhbGtfZWFybHkoZG1p X2RlY29kZSkgPT0gMCkgew0KKwkJCWlmIChkbWlfdmVyKQ0KKwkJCQlwcl9pbmZvKCJTTUJJT1Mg JWQuJWQgcHJlc2VudC5cbiIsDQorCQkJCSAgICAgICBkbWlfdmVyID4+IDgsIGRtaV92ZXIgJiAw eEZGKTsNCisJCQllbHNlIHsNCisJCQkJZG1pX3ZlciA9IChidWZbMTRdICYgMHhGMCkgPDwgNCB8 DQorCQkJCQkgICAoYnVmWzE0XSAmIDB4MEYpOw0KKwkJCQlwcl9pbmZvKCJMZWdhY3kgRE1JICVk LiVkIHByZXNlbnQuXG4iLA0KKwkJCQkgICAgICAgZG1pX3ZlciA+PiA4LCBkbWlfdmVyICYgMHhG Rik7DQorCQkJfQ0KIAkJCWRtaV9kdW1wX2lkcygpOw0KIAkJCXJldHVybiAwOw0KIAkJfQ0KIAl9 DQorCWRtaV92ZXIgPSAwOw0KIAlyZXR1cm4gMTsNCiB9DQogDQorc3RhdGljIGludCBfX2luaXQg c21iaW9zX3ByZXNlbnQoY29uc3QgY2hhciBfX2lvbWVtICpwKQ0KK3sNCisJdTggYnVmWzMyXTsN CisJaW50IG9mZnNldCA9IDA7DQorDQorCW1lbWNweV9mcm9taW8oYnVmLCBwLCAzMik7DQorCWlm ICgoYnVmWzVdIDwgMzIpICYmIGRtaV9jaGVja3N1bShidWYsIGJ1Zls1XSkpIHsNCisJCWRtaV92 ZXIgPSAoYnVmWzZdIDw8IDgpICsgYnVmWzddOw0KKw0KKwkJLyogU29tZSBCSU9TIHJlcG9ydCB3 ZWlyZCBTTUJJT1MgdmVyc2lvbiwgZml4IHRoYXQgdXAgKi8NCisJCXN3aXRjaCAoZG1pX3Zlcikg ew0KKwkJY2FzZSAweDAyMUY6DQorCQljYXNlIDB4MDIyMToNCisJCQlwcl9kZWJ1ZygiU01CSU9T IHZlcnNpb24gZml4dXAoMi4lZC0+Mi4lZClcbiIsDQorCQkJICAgICAgIGRtaV92ZXIgJiAweEZG LCAzKTsNCisJCQlkbWlfdmVyID0gMHgwMjAzOw0KKwkJCWJyZWFrOw0KKwkJY2FzZSAweDAyMzM6 DQorCQkJcHJfZGVidWcoIlNNQklPUyB2ZXJzaW9uIGZpeHVwKDIuJWQtPjIuJWQpXG4iLCA1MSwg Nik7DQorCQkJZG1pX3ZlciA9IDB4MDIwNjsNCisJCQlicmVhazsNCisJCX0NCisJCW9mZnNldCA9 IDE2Ow0KKwl9DQorCXJldHVybiBkbWlfcHJlc2VudChidWYgKyBvZmZzZXQpOw0KK30NCisNCiB2 b2lkIF9faW5pdCBkbWlfc2Nhbl9tYWNoaW5lKHZvaWQpDQogew0KIAljaGFyIF9faW9tZW0gKnAs ICpxOw0KIAlpbnQgcmM7DQogDQotCWlmIChlZmlfZW5hYmxlZCkgew0KKwlpZiAoZWZpX2VuYWJs ZWQoRUZJX0NPTkZJR19UQUJMRVMpKSB7DQogCQlpZiAoZWZpLnNtYmlvcyA9PSBFRklfSU5WQUxJ RF9UQUJMRV9BRERSKQ0KIAkJCWdvdG8gZXJyb3I7DQogDQpAQCAtNDQ0LDcgKzQ4Myw3IEBAIHZv aWQgX19pbml0IGRtaV9zY2FuX21hY2hpbmUodm9pZCkNCiAJCWlmIChwID09IE5VTEwpDQogCQkJ Z290byBlcnJvcjsNCiANCi0JCXJjID0gZG1pX3ByZXNlbnQocCArIDB4MTApOyAvKiBvZmZzZXQg b2YgX0RNSV8gc3RyaW5nICovDQorCQlyYyA9IHNtYmlvc19wcmVzZW50KHApOw0KIAkJZG1pX2lv dW5tYXAocCwgMzIpOw0KIAkJaWYgKCFyYykgew0KIAkJCWRtaV9hdmFpbGFibGUgPSAxOw0KQEAg LTQ2Miw3ICs1MDEsMTIgQEAgdm9pZCBfX2luaXQgZG1pX3NjYW5fbWFjaGluZSh2b2lkKQ0KIAkJ CWdvdG8gZXJyb3I7DQogDQogCQlmb3IgKHEgPSBwOyBxIDwgcCArIDB4MTAwMDA7IHEgKz0gMTYp IHsNCi0JCQlyYyA9IGRtaV9wcmVzZW50KHEpOw0KKwkJCWlmIChtZW1jbXAocSwgIl9TTV8iLCA0 KSA9PSAwICYmIHEgLSBwIDw9IDB4RkZFMCkNCisJCQkJcmMgPSBzbWJpb3NfcHJlc2VudChxKTsN CisJCQllbHNlIGlmIChtZW1jbXAocSwgIl9ETUlfIiwgNSkgPT0gMCkNCisJCQkJcmMgPSBkbWlf cHJlc2VudChxKTsNCisJCQllbHNlDQorCQkJCWNvbnRpbnVlOw0KIAkJCWlmICghcmMpIHsNCiAJ CQkJZG1pX2F2YWlsYWJsZSA9IDE7DQogCQkJCWRtaV9pb3VubWFwKHAsIDB4MTAwMDApOw0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvZWZpdmFycy5jIGIvZHJpdmVycy9maXJtd2FyZS9l Zml2YXJzLmMNCmluZGV4IDNlNjBlOGQuLjVkNWE4NjggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Zp cm13YXJlL2VmaXZhcnMuYw0KKysrIGIvZHJpdmVycy9maXJtd2FyZS9lZml2YXJzLmMNCkBAIC0x MjIyLDcgKzEyMjIsNyBAQCBlZml2YXJzX2luaXQodm9pZCkNCiAJcHJpbnRrKEtFUk5fSU5GTyAi RUZJIFZhcmlhYmxlcyBGYWNpbGl0eSB2JXMgJXNcbiIsIEVGSVZBUlNfVkVSU0lPTiwNCiAJICAg ICAgIEVGSVZBUlNfREFURSk7DQogDQotCWlmICghZWZpX2VuYWJsZWQpDQorCWlmICghZWZpX2Vu YWJsZWQoRUZJX1JVTlRJTUVfU0VSVklDRVMpKQ0KIAkJcmV0dXJuIDA7DQogDQogCS8qIEZvciBu b3cgd2UnbGwgcmVnaXN0ZXIgdGhlIGVmaSBkaXJlY3RvcnkgYXQgL3N5cy9maXJtd2FyZS9lZmkg Ki8NCkBAIC0xMjYwLDcgKzEyNjAsNyBAQCBlcnJfcHV0Og0KIHN0YXRpYyB2b2lkIF9fZXhpdA0K IGVmaXZhcnNfZXhpdCh2b2lkKQ0KIHsNCi0JaWYgKGVmaV9lbmFibGVkKSB7DQorCWlmIChlZmlf ZW5hYmxlZChFRklfUlVOVElNRV9TRVJWSUNFUykpIHsNCiAJCXVucmVnaXN0ZXJfZWZpdmFycygm X19lZml2YXJzKTsNCiAJCWtvYmplY3RfcHV0KGVmaV9rb2JqKTsNCiAJfQ0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZmlybXdhcmUvaXNjc2lfaWJmdF9maW5kLmMgYi9kcml2ZXJzL2Zpcm13YXJlL2lz Y3NpX2liZnRfZmluZC5jDQppbmRleCA0ZGE0ZWI5Li4yMjI0ZjFkIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9maXJtd2FyZS9pc2NzaV9pYmZ0X2ZpbmQuYw0KKysrIGIvZHJpdmVycy9maXJtd2FyZS9p c2NzaV9pYmZ0X2ZpbmQuYw0KQEAgLTk5LDcgKzk5LDcgQEAgdW5zaWduZWQgbG9uZyBfX2luaXQg ZmluZF9pYmZ0X3JlZ2lvbih1bnNpZ25lZCBsb25nICpzaXplcCkNCiAJLyogaUJGVCAxLjAzIHNl Y3Rpb24gMS40LjMuMSBtYW5kYXRlcyB0aGF0IFVFRkkgbWFjaGluZXMgd2lsbA0KIAkgKiBvbmx5 IHVzZSBBQ1BJIGZvciB0aGlzICovDQogDQotCWlmICghZWZpX2VuYWJsZWQpDQorCWlmICghZWZp X2VuYWJsZWQoRUZJX0JPT1QpKQ0KIAkJZmluZF9pYmZ0X2luX21lbSgpOw0KIA0KIAlpZiAoaWJm dF9hZGRyKSB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYw0KaW5kZXggZDAwZjkwNS4u MTBmZTQ4MCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j DQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYw0KQEAgLTMwLDYgKzMw LDcgQEANCiAjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPg0KICNpbmNsdWRlIDxsaW51eC9zbGFi Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPg0KKyNpbmNsdWRlIDxnZW5lcmF0ZWQvdXRz cmVsZWFzZS5oPg0KICNpbmNsdWRlICJkcm1QLmgiDQogI2luY2x1ZGUgImRybS5oIg0KICNpbmNs dWRlICJpbnRlbF9kcnYuaCINCkBAIC03NTUsNiArNzU2LDcgQEAgc3RhdGljIGludCBpOTE1X2Vy cm9yX3N0YXRlKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQ0KIA0KIAlzZXFfcHJp bnRmKG0sICJUaW1lOiAlbGQgcyAlbGQgdXNcbiIsIGVycm9yLT50aW1lLnR2X3NlYywNCiAJCSAg IGVycm9yLT50aW1lLnR2X3VzZWMpOw0KKwlzZXFfcHJpbnRmKG0sICJLZXJuZWw6ICIgVVRTX1JF TEVBU0UpOw0KIAlzZXFfcHJpbnRmKG0sICJQQ0kgSUQ6IDB4JTA0eFxuIiwgZGV2LT5wY2lfZGV2 aWNlKTsNCiAJc2VxX3ByaW50ZihtLCAiRUlSOiAweCUwOHhcbiIsIGVycm9yLT5laXIpOw0KIAlz ZXFfcHJpbnRmKG0sICJQR1RCTF9FUjogMHglMDh4XG4iLCBlcnJvci0+cGd0YmxfZXIpOw0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jDQppbmRleCA1OTUwYmEzLi5iMDE4NmI4IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYw0KQEAgLTM0NTYsMTQgKzM0NTYsMTUgQEAgaTkxNV9nZW1fcGluX2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsDQogCQlnb3RvIG91dDsNCiAJfQ0K IA0KLQlvYmotPnVzZXJfcGluX2NvdW50Kys7DQotCW9iai0+cGluX2ZpbHAgPSBmaWxlOw0KLQlp ZiAob2JqLT51c2VyX3Bpbl9jb3VudCA9PSAxKSB7DQorCWlmIChvYmotPnVzZXJfcGluX2NvdW50 ID09IDApIHsNCiAJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW4ob2JqLCBhcmdzLT5hbGlnbm1l bnQsIHRydWUpOw0KIAkJaWYgKHJldCkNCiAJCQlnb3RvIG91dDsNCiAJfQ0KIA0KKwlvYmotPnVz ZXJfcGluX2NvdW50Kys7DQorCW9iai0+cGluX2ZpbHAgPSBmaWxlOw0KKw0KIAkvKiBYWFggLSBm bHVzaCB0aGUgQ1BVIGNhY2hlcyBmb3IgcGlubmVkIG9iamVjdHMNCiAJICogYXMgdGhlIFggc2Vy dmVyIGRvZXNuJ3QgbWFuYWdlIGRvbWFpbnMgeWV0DQogCSAqLw0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYw0KaW5kZXggMTIwMjE5OC4uODc4Yjk4OSAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYw0KKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jDQpAQCAtNjU3LDYgKzY1 Nyw4IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVsb2NhdGVfc2xvdyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LA0KIAl0b3RhbCA9IDA7DQogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7DQog CQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25fZW50cnkgX191c2VyICp1c2VyX3JlbG9j czsNCisJCXU2NCBpbnZhbGlkX29mZnNldCA9ICh1NjQpLTE7DQorCQlpbnQgajsNCiANCiAJCXVz ZXJfcmVsb2NzID0gKHZvaWQgX191c2VyICopKHVpbnRwdHJfdClleGVjW2ldLnJlbG9jc19wdHI7 DQogDQpAQCAtNjY3LDYgKzY2OSwyNSBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX3JlbG9jYXRlX3Ns b3coc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCiAJCQlnb3RvIGVycjsNCiAJCX0NCiANCisJCS8q IEFzIHdlIGRvIG5vdCB1cGRhdGUgdGhlIGtub3duIHJlbG9jYXRpb24gb2Zmc2V0cyBhZnRlcg0K KwkJICogcmVsb2NhdGluZyAoZHVlIHRvIHRoZSBjb21wbGV4aXRpZXMgaW4gbG9jayBoYW5kbGlu ZyksDQorCQkgKiB3ZSBuZWVkIHRvIG1hcmsgdGhlbSBhcyBpbnZhbGlkIG5vdyBzbyB0aGF0IHdl IGZvcmNlIHRoZQ0KKwkJICogcmVsb2NhdGlvbiBwcm9jZXNzaW5nIG5leHQgdGltZS4gSnVzdCBp biBjYXNlIHRoZSB0YXJnZXQNCisJCSAqIG9iamVjdCBpcyBldmljdGVkIGFuZCB0aGVuIHJlYm91 bmQgaW50byBpdHMgb2xkDQorCQkgKiBwcmVzdW1lZF9vZmZzZXQgYmVmb3JlIHRoZSBuZXh0IGV4 ZWNidWZmZXIgLSBpZiB0aGF0DQorCQkgKiBoYXBwZW5lZCB3ZSB3b3VsZCBtYWtlIHRoZSBtaXN0 YWtlIG9mIGFzc3VtaW5nIHRoYXQgdGhlDQorCQkgKiByZWxvY2F0aW9ucyB3ZXJlIHZhbGlkLg0K KwkJICovDQorCQlmb3IgKGogPSAwOyBqIDwgZXhlY1tpXS5yZWxvY2F0aW9uX2NvdW50OyBqKysp IHsNCisJCQlpZiAoY29weV90b191c2VyKCZ1c2VyX3JlbG9jc1tqXS5wcmVzdW1lZF9vZmZzZXQs DQorCQkJCQkgJmludmFsaWRfb2Zmc2V0LA0KKwkJCQkJIHNpemVvZihpbnZhbGlkX29mZnNldCkp KSB7DQorCQkJCXJldCA9IC1FRkFVTFQ7DQorCQkJCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211 dGV4KTsNCisJCQkJZ290byBlcnI7DQorCQkJfQ0KKwkJfQ0KKw0KIAkJcmVsb2Nfb2Zmc2V0W2ld ID0gdG90YWw7DQogCQl0b3RhbCArPSBleGVjW2ldLnJlbG9jYXRpb25fY291bnQ7DQogCX0NCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaA0KaW5kZXggN2ExMGY1Zi4uMTI0ZGQ4NyAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgNCkBAIC0yNyw2ICsyNyw4IEBADQogDQogI2RlZmluZSBfUElQRShwaXBl LCBhLCBiKSAoKGEpICsgKHBpcGUpKigoYiktKGEpKSkNCiANCisjZGVmaW5lIF9NQVNLRURfQklU X0VOQUJMRShhKSAoKChhKSA8PCAxNikgfCAoYSkpDQorDQogLyoNCiAgKiBUaGUgQnJpZGdlIGRl dmljZSdzIFBDSSBjb25maWcgc3BhY2UgaGFzIGluZm9ybWF0aW9uIGFib3V0IHRoZQ0KICAqIGZi IGFwZXJ0dXJlIHNpemUgYW5kIHRoZSBhbW91bnQgb2YgcHJlLXJlc2VydmVkIG1lbW9yeS4NCkBA IC0zODksNiArMzkxLDcgQEANCiAgKiB0aGUgZW5hYmxlcyBmb3Igd3JpdGluZyB0byB0aGUgY29y cmVzcG9uZGluZyBsb3cgYml0Lg0KICAqLw0KICNkZWZpbmUgXzNEX0NISUNLRU4JMHgwMjA4NA0K KyNkZWZpbmUgXzNEX0NISUNLRU5fSElaX1BMQU5FX0RJU0FCTEVfTVNBQV80WF9TTkIJKDEgPDwg MTApDQogI2RlZmluZSBfM0RfQ0hJQ0tFTjIJMHgwMjA4Yw0KIC8qIERpc2FibGVzIHBpcGVsaW5p bmcgb2YgcmVhZCBmbHVzaGVzIHBhc3QgdGhlIFNGLVdJWiBpbnRlcmZhY2UuDQogICogUmVxdWly ZWQgb24gYWxsIElyb25sYWtlIHN0ZXBwaW5ncyBhY2NvcmRpbmcgdG8gdGhlIEItU3BlYywgYnV0 IHRoZQ0KQEAgLTM5OSw3ICs0MDIsOCBAQA0KIA0KICNkZWZpbmUgTUlfTU9ERQkJMHgwMjA5Yw0K ICMgZGVmaW5lIFZTX1RJTUVSX0RJU1BBVENICQkJCSgxIDw8IDYpDQotIyBkZWZpbmUgTUlfRkxV U0hfRU5BQkxFCQkJCSgxIDw8IDExKQ0KKyMgZGVmaW5lIE1JX0ZMVVNIX0VOQUJMRQkJCQkoMSA8 PCAxMikNCisjIGRlZmluZSBBU1lOQ19GTElQX1BFUkZfRElTQUJMRQkJCSgxIDw8IDE0KQ0KIA0K ICNkZWZpbmUgR0VONl9HVF9NT0RFCTB4MjBkMA0KICNkZWZpbmUgICBHRU42X0dUX01PREVfSEkJ KDEgPDwgOSkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCmluZGV4IGZhOTYzOWIu LmMwNWU4MjUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KQEAgLTgyNzks NiArODI3OSwxMCBAQCBzdGF0aWMgdm9pZCBnZW42X2luaXRfY2xvY2tfZ2F0aW5nKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpDQogCQkgICBJOTE1X1JFQUQoSUxLX0RJU1BMQVlfQ0hJQ0tFTjIpIHwN CiAJCSAgIElMS19FTFBJTl80MDlfU0VMRUNUKTsNCiANCisJLyogV2FEaXNhYmxlSGlaUGxhbmVz V2hlbk1TQUFFbmFibGVkICovDQorCUk5MTVfV1JJVEUoXzNEX0NISUNLRU4sDQorCQkgICBfTUFT S0VEX0JJVF9FTkFCTEUoXzNEX0NISUNLRU5fSElaX1BMQU5FX0RJU0FCTEVfTVNBQV80WF9TTkIp KTsNCisNCiAJSTkxNV9XUklURShXTTNfTFBfSUxLLCAwKTsNCiAJSTkxNV9XUklURShXTTJfTFBf SUxLLCAwKTsNCiAJSTkxNV9XUklURShXTTFfTFBfSUxLLCAwKTsNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9sdmRzLmMNCmluZGV4IGM2ZDA5NjYuLjY2MDFkMjEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2x2ZHMuYw0KQEAgLTc3NCwxNCArNzc0LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWlfc3lz dGVtX2lkIGludGVsX25vX2x2ZHNbXSA9IHsNCiAJfSwNCiAJew0KIAkJLmNhbGxiYWNrID0gaW50 ZWxfbm9fbHZkc19kbWlfY2FsbGJhY2ssDQotCQkuaWRlbnQgPSAiWk9UQUMgWkJPWFNELUlEMTIv SUQxMyIsDQotCQkubWF0Y2hlcyA9IHsNCi0JCQlETUlfTUFUQ0goRE1JX0JPQVJEX1ZFTkRPUiwg IlpPVEFDIiksDQotCQkJRE1JX01BVENIKERNSV9CT0FSRF9OQU1FLCAiWkJPWFNELUlEMTIvSUQx MyIpLA0KLQkJfSwNCi0JfSwNCi0Jew0KLQkJLmNhbGxiYWNrID0gaW50ZWxfbm9fbHZkc19kbWlf Y2FsbGJhY2ssDQogCQkuaWRlbnQgPSAiR2lnYWJ5dGUgR0EtRDUyNVRVRCIsDQogCQkubWF0Y2hl cyA9IHsNCiAJCQlETUlfTUFUQ0goRE1JX0JPQVJEX1ZFTkRPUiwgIkdpZ2FieXRlIFRlY2hub2xv Z3kgQ28uLCBMdGQuIiksDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jDQpp bmRleCAxOTA4NWMwLi40ZmRkZDIxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmMNCkBAIC0zOTgsMTUgKzM5OCwyNiBAQCBzdGF0aWMgaW50IGluaXRfcmVuZGVyX3Jp bmcoc3RydWN0IGludGVsX3JpbmdfYnVmZmVyICpyaW5nKQ0KIA0KIAlpZiAoSU5URUxfSU5GTyhk ZXYpLT5nZW4gPiAzKSB7DQogCQlpbnQgbW9kZSA9IFZTX1RJTUVSX0RJU1BBVENIIDw8IDE2IHwg VlNfVElNRVJfRElTUEFUQ0g7DQotCQlpZiAoSVNfR0VONihkZXYpIHx8IElTX0dFTjcoZGV2KSkN Ci0JCQltb2RlIHw9IE1JX0ZMVVNIX0VOQUJMRSA8PCAxNiB8IE1JX0ZMVVNIX0VOQUJMRTsNCiAJ CUk5MTVfV1JJVEUoTUlfTU9ERSwgbW9kZSk7DQotCQlpZiAoSVNfR0VONyhkZXYpKQ0KLQkJCUk5 MTVfV1JJVEUoR0ZYX01PREVfR0VONywNCi0JCQkJICAgR0ZYX01PREVfRElTQUJMRShHRlhfVExC X0lOVkFMSURBVEVfQUxXQVlTKSB8DQotCQkJCSAgIEdGWF9NT0RFX0VOQUJMRShHRlhfUkVQTEFZ X01PREUpKTsNCiAJfQ0KIA0KKwkvKiBXZSBuZWVkIHRvIGRpc2FibGUgdGhlIEFzeW5jRmxpcCBw ZXJmb3JtYW5jZSBvcHRpbWlzYXRpb25zIGluIG9yZGVyDQorCSAqIHRvIHVzZSBNSV9XQUlUX0ZP Ul9FVkVOVCB3aXRoaW4gdGhlIENTLiBJdCBzaG91bGQgYWxyZWFkeSBiZQ0KKwkgKiBwcm9ncmFt bWVkIHRvICcxJyBvbiBhbGwgcHJvZHVjdHMuDQorCSAqLw0KKwlpZiAoSU5URUxfSU5GTyhkZXYp LT5nZW4gPj0gNikNCisJCUk5MTVfV1JJVEUoTUlfTU9ERSwgR0ZYX01PREVfRU5BQkxFKEFTWU5D X0ZMSVBfUEVSRl9ESVNBQkxFKSk7DQorDQorCS8qIFJlcXVpcmVkIGZvciB0aGUgaGFyZHdhcmUg dG8gcHJvZ3JhbSBzY2FubGluZSB2YWx1ZXMgZm9yIHdhaXRpbmcgKi8NCisJaWYgKElOVEVMX0lO Rk8oZGV2KS0+Z2VuID09IDYpDQorCQlJOTE1X1dSSVRFKEdGWF9NT0RFLA0KKwkJCSAgIEdGWF9N T0RFX0VOQUJMRShHRlhfVExCX0lOVkFMSURBVEVfQUxXQVlTKSk7DQorDQorCWlmIChJU19HRU43 KGRldikpDQorCQlJOTE1X1dSSVRFKEdGWF9NT0RFX0dFTjcsDQorCQkJICAgR0ZYX01PREVfRElT QUJMRShHRlhfVExCX0lOVkFMSURBVEVfQUxXQVlTKSB8DQorCQkJICAgR0ZYX01PREVfRU5BQkxF KEdGWF9SRVBMQVlfTU9ERSkpOw0KKw0KIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNSkg ew0KIAkJcmV0ID0gaW5pdF9waXBlX2NvbnRyb2wocmluZyk7DQogCQlpZiAocmV0KQ0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9jcy5jDQppbmRleCAyOWFmZDcxLi4xZjMyNTU3IDEwMDY0NA0KLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYw0KKysrIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fY3MuYw0KQEAgLTE2OCw2ICsxNjgsOCBAQCBpbnQgcmFkZW9uX2Nz X3BhcnNlcl9pbml0KHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLCB2b2lkICpkYXRhKQ0KIAkJ CWlmIChwLT5jaHVua3NbaV0ua3BhZ2VbMF0gPT0gTlVMTCB8fCBwLT5jaHVua3NbaV0ua3BhZ2Vb MV0gPT0gTlVMTCkgew0KIAkJCQlrZnJlZShwLT5jaHVua3NbaV0ua3BhZ2VbMF0pOw0KIAkJCQlr ZnJlZShwLT5jaHVua3NbaV0ua3BhZ2VbMV0pOw0KKwkJCQlwLT5jaHVua3NbaV0ua3BhZ2VbMF0g PSBOVUxMOw0KKwkJCQlwLT5jaHVua3NbaV0ua3BhZ2VbMV0gPSBOVUxMOw0KIAkJCQlyZXR1cm4g LUVOT01FTTsNCiAJCQl9DQogCQkJcC0+Y2h1bmtzW2ldLmtwYWdlX2lkeFswXSA9IC0xOw0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2RldmljZS5jIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMNCmluZGV4IGM1NzYyZTMuLmJkOTU5YzEg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYw0KKysr IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMNCkBAIC0zNTQsNyArMzU0 LDggQEAgYm9vbCByYWRlb25fY2FyZF9wb3N0ZWQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYp DQogew0KIAl1aW50MzJfdCByZWc7DQogDQotCWlmIChlZmlfZW5hYmxlZCAmJiByZGV2LT5wZGV2 LT5zdWJzeXN0ZW1fdmVuZG9yID09IFBDSV9WRU5ET1JfSURfQVBQTEUpDQorCWlmIChlZmlfZW5h YmxlZChFRklfQk9PVCkgJiYNCisJICAgIHJkZXYtPnBkZXYtPnN1YnN5c3RlbV92ZW5kb3IgPT0g UENJX1ZFTkRPUl9JRF9BUFBMRSkNCiAJCXJldHVybiBmYWxzZTsNCiANCiAJLyogZmlyc3QgY2hl Y2sgQ1JUQ3MgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9s ZWdhY3lfZW5jb2RlcnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2xlZ2FjeV9l bmNvZGVycy5jDQppbmRleCA4MTY1OTUzLi5hOTA2ODAzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fbGVnYWN5X2VuY29kZXJzLmMNCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2xlZ2FjeV9lbmNvZGVycy5jDQpAQCAtNjE3LDYgKzYxNywxNCBA QCBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyByYWRlb25fbGVnYWN5X3ByaW1hcnlf ZGFjX2RldGVjdChzdHJ1Y3QgZHJtX2VuYw0KIAllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIGZv dW5kID0gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7DQogCWJvb2wgY29sb3IgPSB0cnVl Ow0KIA0KKwkvKiBqdXN0IGRvbid0IGJvdGhlciBvbiBSTjUwIHRob3NlIGNoaXAgYXJlIG9mdGVu IGNvbm5lY3RlZCB0byByZW1vdGluZw0KKwkgKiBjb25zb2xlIGh3IGFuZCBvZnRlbiB3ZSBnZXQg ZmFpbHVyZSB0byBsb2FkIGRldGVjdCB0aG9zZS4gU28gdG8gbWFrZQ0KKwkgKiBldmVyeW9uZSBo YXBweSByZXBvcnQgdGhlIGVuY29kZXIgYXMgYWx3YXlzIGNvbm5lY3RlZC4NCisJICovDQorCWlm IChBU0lDX0lTX1JONTAocmRldikpIHsNCisJCXJldHVybiBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5l Y3RlZDsNCisJfQ0KKw0KIAkvKiBzYXZlIHRoZSByZWdzIHdlIG5lZWQgKi8NCiAJdmNsa19lY3Bf Y250bCA9IFJSRUczMl9QTEwoUkFERU9OX1ZDTEtfRUNQX0NOVEwpOw0KIAljcnRjX2V4dF9jbnRs ID0gUlJFRzMyKFJBREVPTl9DUlRDX0VYVF9DTlRMKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lk bGUvaW50ZWxfaWRsZS5jIGIvZHJpdmVycy9pZGxlL2ludGVsX2lkbGUuYw0KaW5kZXggM2YyODI5 MC4uNGZhMmIxMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaWRsZS9pbnRlbF9pZGxlLmMNCisrKyBi L2RyaXZlcnMvaWRsZS9pbnRlbF9pZGxlLmMNCkBAIC00MzEsMTAgKzQzMSw4IEBAIHN0YXRpYyBp bnQgaW50ZWxfaWRsZV9wcm9iZSh2b2lkKQ0KIA0KIAlpZiAoYm9vdF9jcHVfaGFzKFg4Nl9GRUFU VVJFX0FSQVQpKQkvKiBBbHdheXMgUmVsaWFibGUgQVBJQyBUaW1lciAqLw0KIAkJbGFwaWNfdGlt ZXJfcmVsaWFibGVfc3RhdGVzID0gTEFQSUNfVElNRVJfQUxXQVlTX1JFTElBQkxFOw0KLQllbHNl IHsNCisJZWxzZQ0KIAkJb25fZWFjaF9jcHUoX19zZXR1cF9icm9hZGNhc3RfdGltZXIsICh2b2lk ICopdHJ1ZSwgMSk7DQotCQlyZWdpc3Rlcl9jcHVfbm90aWZpZXIoJnNldHVwX2Jyb2FkY2FzdF9u b3RpZmllcik7DQotCX0NCiANCiAJcHJfZGVidWcoUFJFRklYICJ2IiBJTlRFTF9JRExFX1ZFUlNJ T04NCiAJCSIgbW9kZWwgMHglWFxuIiwgYm9vdF9jcHVfZGF0YS54ODZfbW9kZWwpOw0KQEAgLTU5 Nyw2ICs1OTUsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBpbnRlbF9pZGxlX2luaXQodm9pZCkNCiAJ CXJldHVybiByZXR2YWw7DQogCX0NCiANCisJaWYgKGxhcGljX3RpbWVyX3JlbGlhYmxlX3N0YXRl cyAhPSBMQVBJQ19USU1FUl9BTFdBWVNfUkVMSUFCTEUpDQorCQlyZWdpc3Rlcl9jcHVfbm90aWZp ZXIoJnNldHVwX2Jyb2FkY2FzdF9ub3RpZmllcik7DQorDQogCXJldHVybiAwOw0KIH0NCiANCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2FtZF9pb21tdV9pbml0LmMgYi9kcml2ZXJzL2lvbW11 L2FtZF9pb21tdV9pbml0LmMNCmluZGV4IGVmMmQ0OTMuLjYyYTRkNWMgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL2lvbW11L2FtZF9pb21tdV9pbml0LmMNCisrKyBiL2RyaXZlcnMvaW9tbXUvYW1kX2lv bW11X2luaXQuYw0KQEAgLTkxNiw2ICs5MTYsMzggQEAgc3RhdGljIHZvaWQgX19pbml0IGZyZWVf aW9tbXVfYWxsKHZvaWQpDQogfQ0KIA0KIC8qDQorICogRmFtaWx5MTVoIE1vZGVsIDEwaC0xZmgg ZXJyYXR1bSA3NDYgKElPTU1VIExvZ2dpbmcgTWF5IFN0YWxsIFRyYW5zbGF0aW9ucykNCisgKiBX b3JrYXJvdW5kOg0KKyAqICAgICBCSU9TIHNob3VsZCBkaXNhYmxlIEwyQiBtaWNlbGxhbmVvdXMg Y2xvY2sgZ2F0aW5nIGJ5IHNldHRpbmcNCisgKiAgICAgTDJfTDJCX0NLX0dBVEVfQ09OVFJPTFtD S0dhdGVMMkJNaXNjRGlzYWJsZV0oRDBGMnhGNF94OTBbMl0pID0gMWINCisgKi8NCitzdGF0aWMg dm9pZCBfX2luaXQgYW1kX2lvbW11X2VycmF0dW1fNzQ2X3dvcmthcm91bmQoc3RydWN0IGFtZF9p b21tdSAqaW9tbXUpDQorew0KKwl1MzIgdmFsdWU7DQorDQorCWlmICgoYm9vdF9jcHVfZGF0YS54 ODYgIT0gMHgxNSkgfHwNCisJICAgIChib290X2NwdV9kYXRhLng4Nl9tb2RlbCA8IDB4MTApIHx8 DQorCSAgICAoYm9vdF9jcHVfZGF0YS54ODZfbW9kZWwgPiAweDFmKSkNCisJCXJldHVybjsNCisN CisJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChpb21tdS0+ZGV2LCAweGYwLCAweDkwKTsNCisJcGNp X3JlYWRfY29uZmlnX2R3b3JkKGlvbW11LT5kZXYsIDB4ZjQsICZ2YWx1ZSk7DQorDQorCWlmICh2 YWx1ZSAmIEJJVCgyKSkNCisJCXJldHVybjsNCisNCisJLyogU2VsZWN0IE5CIGluZGlyZWN0IHJl Z2lzdGVyIDB4OTAgYW5kIGVuYWJsZSB3cml0aW5nICovDQorCXBjaV93cml0ZV9jb25maWdfZHdv cmQoaW9tbXUtPmRldiwgMHhmMCwgMHg5MCB8ICgxIDw8IDgpKTsNCisNCisJcGNpX3dyaXRlX2Nv bmZpZ19kd29yZChpb21tdS0+ZGV2LCAweGY0LCB2YWx1ZSB8IDB4NCk7DQorCXByX2luZm8oIkFN RC1WaTogQXBwbHlpbmcgZXJyYXR1bSA3NDYgd29ya2Fyb3VuZCBmb3IgSU9NTVUgYXQgJXNcbiIs DQorCQlkZXZfbmFtZSgmaW9tbXUtPmRldi0+ZGV2KSk7DQorDQorCS8qIENsZWFyIHRoZSBlbmFi bGUgd3JpdGluZyBiaXQgKi8NCisJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChpb21tdS0+ZGV2LCAw eGYwLCAweDkwKTsNCit9DQorDQorLyoNCiAgKiBUaGlzIGZ1bmN0aW9uIGNsdWVzIHRoZSBpbml0 aWFsaXphdGlvbiBmdW5jdGlvbiBmb3Igb25lIElPTU1VDQogICogdG9nZXRoZXIgYW5kIGFsc28g YWxsb2NhdGVzIHRoZSBjb21tYW5kIGJ1ZmZlciBhbmQgcHJvZ3JhbXMgdGhlDQogICogaGFyZHdh cmUuIEl0IGRvZXMgTk9UIGVuYWJsZSB0aGUgSU9NTVUuIFRoaXMgaXMgZG9uZSBhZnRlcndhcmRz Lg0KQEAgLTk3MCw2ICsxMDAyLDggQEAgc3RhdGljIGludCBfX2luaXQgaW5pdF9pb21tdV9vbmUo c3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHN0cnVjdCBpdmhkX2hlYWRlciAqaCkNCiAJaWYgKGlv bW11LT5jYXAgJiAoMVVMIDw8IElPTU1VX0NBUF9OUENBQ0hFKSkNCiAJCWFtZF9pb21tdV9ucF9j YWNoZSA9IHRydWU7DQogDQorCWFtZF9pb21tdV9lcnJhdHVtXzc0Nl93b3JrYXJvdW5kKGlvbW11 KTsNCisNCiAJcmV0dXJuIHBjaV9lbmFibGVfZGV2aWNlKGlvbW11LT5kZXYpOw0KIH0NCiANCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2ludGVsLWlvbW11LmMgYi9kcml2ZXJzL2lvbW11L2lu dGVsLWlvbW11LmMNCmluZGV4IDlhNmNjOTIuLmRmZmRjYTggMTAwNjQ0DQotLS0gYS9kcml2ZXJz L2lvbW11L2ludGVsLWlvbW11LmMNCisrKyBiL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYw0K QEAgLTIzMDIsOCArMjMwMiwzOSBAQCBzdGF0aWMgaW50IGRvbWFpbl9hZGRfZGV2X2luZm8oc3Ry dWN0IGRtYXJfZG9tYWluICpkb21haW4sDQogCXJldHVybiAwOw0KIH0NCiANCitzdGF0aWMgYm9v bCBkZXZpY2VfaGFzX3JtcnIoc3RydWN0IHBjaV9kZXYgKmRldikNCit7DQorCXN0cnVjdCBkbWFy X3JtcnJfdW5pdCAqcm1ycjsNCisJaW50IGk7DQorDQorCWZvcl9lYWNoX3JtcnJfdW5pdHMocm1y cikgew0KKwkJZm9yIChpID0gMDsgaSA8IHJtcnItPmRldmljZXNfY250OyBpKyspIHsNCisJCQkv Kg0KKwkJCSAqIFJldHVybiBUUlVFIGlmIHRoaXMgUk1SUiBjb250YWlucyB0aGUgZGV2aWNlIHRo YXQNCisJCQkgKiBpcyBwYXNzZWQgaW4uDQorCQkJICovDQorCQkJaWYgKHJtcnItPmRldmljZXNb aV0gPT0gZGV2KQ0KKwkJCQlyZXR1cm4gdHJ1ZTsNCisJCX0NCisJfQ0KKwlyZXR1cm4gZmFsc2U7 DQorfQ0KKw0KIHN0YXRpYyBpbnQgaW9tbXVfc2hvdWxkX2lkZW50aXR5X21hcChzdHJ1Y3QgcGNp X2RldiAqcGRldiwgaW50IHN0YXJ0dXApDQogew0KKw0KKwkvKg0KKwkgKiBXZSB3YW50IHRvIHBy ZXZlbnQgYW55IGRldmljZSBhc3NvY2lhdGVkIHdpdGggYW4gUk1SUiBmcm9tDQorCSAqIGdldHRp bmcgcGxhY2VkIGludG8gdGhlIFNJIERvbWFpbi4gVGhpcyBpcyBkb25lIGJlY2F1c2UNCisJICog cHJvYmxlbXMgZXhpc3Qgd2hlbiBkZXZpY2VzIGFyZSBtb3ZlZCBpbiBhbmQgb3V0IG9mIGRvbWFp bnMNCisJICogYW5kIHRoZWlyIHJlc3BlY3RpdmUgUk1SUiBpbmZvIGlzIGxvc3QuIFdlIGV4ZW1w dCBVU0IgZGV2aWNlcw0KKwkgKiBmcm9tIHRoaXMgcHJvY2VzcyBkdWUgdG8gdGhlaXIgdXNhZ2Ug b2YgUk1SUnMgdGhhdCBhcmUga25vd24NCisJICogdG8gbm90IGJlIG5lZWRlZCBhZnRlciBCSU9T IGhhbmQtb2ZmIHRvIE9TLg0KKwkgKi8NCisJaWYgKGRldmljZV9oYXNfcm1ycihwZGV2KSAmJg0K KwkgICAgKHBkZXYtPmNsYXNzID4+IDgpICE9IFBDSV9DTEFTU19TRVJJQUxfVVNCKQ0KKwkJcmV0 dXJuIDA7DQorDQogCWlmICgoaW9tbXVfaWRlbnRpdHlfbWFwcGluZyAmIElERU5UTUFQX0FaQUxJ QSkgJiYgSVNfQVpBTElBKHBkZXYpKQ0KIAkJcmV0dXJuIDE7DQogDQpAQCAtNDA5MCw2ICs0MTIx LDIxIEBAIHN0YXRpYyBzdHJ1Y3QgaW9tbXVfb3BzIGludGVsX2lvbW11X29wcyA9IHsNCiAJLmRv bWFpbl9oYXNfY2FwID0gaW50ZWxfaW9tbXVfZG9tYWluX2hhc19jYXAsDQogfTsNCiANCitzdGF0 aWMgdm9pZCBxdWlya19pb21tdV9nNHhfZ2Z4KHN0cnVjdCBwY2lfZGV2ICpkZXYpDQorew0KKwkv KiBHNHgvR000NSBpbnRlZ3JhdGVkIGdmeCBkbWFyIHN1cHBvcnQgaXMgdG90YWxseSBidXN0ZWQu ICovDQorCXByaW50ayhLRVJOX0lORk8gIkRNQVI6IERpc2FibGluZyBJT01NVSBmb3IgZ3JhcGhp Y3Mgb24gdGhpcyBjaGlwc2V0XG4iKTsNCisJZG1hcl9tYXBfZ2Z4ID0gMDsNCit9DQorDQorREVD TEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4MmE0MCwgcXVpcmtf aW9tbXVfZzR4X2dmeCk7DQorREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURf SU5URUwsIDB4MmUwMCwgcXVpcmtfaW9tbXVfZzR4X2dmeCk7DQorREVDTEFSRV9QQ0lfRklYVVBf SEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4MmUxMCwgcXVpcmtfaW9tbXVfZzR4X2dmeCk7 DQorREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4MmUyMCwg cXVpcmtfaW9tbXVfZzR4X2dmeCk7DQorREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5E T1JfSURfSU5URUwsIDB4MmUzMCwgcXVpcmtfaW9tbXVfZzR4X2dmeCk7DQorREVDTEFSRV9QQ0lf RklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4MmU0MCwgcXVpcmtfaW9tbXVfZzR4 X2dmeCk7DQorREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4 MmU5MCwgcXVpcmtfaW9tbXVfZzR4X2dmeCk7DQorDQogc3RhdGljIHZvaWQgX19kZXZpbml0IHF1 aXJrX2lvbW11X3J3YmYoc3RydWN0IHBjaV9kZXYgKmRldikNCiB7DQogCS8qDQpAQCAtNDA5OCwx MiArNDE0NCw2IEBAIHN0YXRpYyB2b2lkIF9fZGV2aW5pdCBxdWlya19pb21tdV9yd2JmKHN0cnVj dCBwY2lfZGV2ICpkZXYpDQogCSAqLw0KIAlwcmludGsoS0VSTl9JTkZPICJETUFSOiBGb3JjaW5n IHdyaXRlLWJ1ZmZlciBmbHVzaCBjYXBhYmlsaXR5XG4iKTsNCiAJcndiZl9xdWlyayA9IDE7DQot DQotCS8qIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NTM4MTYz ICovDQotCWlmIChkZXYtPnJldmlzaW9uID09IDB4MDcpIHsNCi0JCXByaW50ayhLRVJOX0lORk8g IkRNQVI6IERpc2FibGluZyBJT01NVSBmb3IgZ3JhcGhpY3Mgb24gdGhpcyBjaGlwc2V0XG4iKTsN Ci0JCWRtYXJfbWFwX2dmeCA9IDA7DQotCX0NCiB9DQogDQogREVDTEFSRV9QQ0lfRklYVVBfSEVB REVSKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4MmE0MCwgcXVpcmtfaW9tbXVfcndiZik7DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2NfY2FuL2NfY2FuLmMgYi9kcml2ZXJzL25ldC9jYW4v Y19jYW4vY19jYW4uYw0KaW5kZXggODZjZDUzMi4uMjFhM2Q3NyAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvbmV0L2Nhbi9jX2Nhbi9jX2Nhbi5jDQorKysgYi9kcml2ZXJzL25ldC9jYW4vY19jYW4vY19j YW4uYw0KQEAgLTkxNCw3ICs5MTQsNyBAQCBzdGF0aWMgaW50IGNfY2FuX2hhbmRsZV9idXNfZXJy KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsDQogCQlicmVhazsNCiAJY2FzZSBMRUNfQUNLX0VSUk9S Og0KIAkJbmV0ZGV2X2RiZyhkZXYsICJhY2sgZXJyb3JcbiIpOw0KLQkJY2YtPmRhdGFbMl0gfD0g KENBTl9FUlJfUFJPVF9MT0NfQUNLIHwNCisJCWNmLT5kYXRhWzNdIHw9IChDQU5fRVJSX1BST1Rf TE9DX0FDSyB8DQogCQkJCUNBTl9FUlJfUFJPVF9MT0NfQUNLX0RFTCk7DQogCQlicmVhazsNCiAJ Y2FzZSBMRUNfQklUMV9FUlJPUjoNCkBAIC05MjcsNyArOTI3LDcgQEAgc3RhdGljIGludCBjX2Nh bl9oYW5kbGVfYnVzX2VycihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LA0KIAkJYnJlYWs7DQogCWNh c2UgTEVDX0NSQ19FUlJPUjoNCiAJCW5ldGRldl9kYmcoZGV2LCAiQ1JDIGVycm9yXG4iKTsNCi0J CWNmLT5kYXRhWzJdIHw9IChDQU5fRVJSX1BST1RfTE9DX0NSQ19TRVEgfA0KKwkJY2YtPmRhdGFb M10gfD0gKENBTl9FUlJfUFJPVF9MT0NfQ1JDX1NFUSB8DQogCQkJCUNBTl9FUlJfUFJPVF9MT0Nf Q1JDX0RFTCk7DQogCQlicmVhazsNCiAJZGVmYXVsdDoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9jYW4vcGNoX2Nhbi5jIGIvZHJpdmVycy9uZXQvY2FuL3BjaF9jYW4uYw0KaW5kZXggZDExZmJi Mi4uYjUwOGE2MyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2Nhbi9wY2hfY2FuLmMNCisrKyBi L2RyaXZlcnMvbmV0L2Nhbi9wY2hfY2FuLmMNCkBAIC01NTksNyArNTU5LDcgQEAgc3RhdGljIHZv aWQgcGNoX2Nhbl9lcnJvcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgdTMyIHN0YXR1cykNCiAJ CXN0YXRzLT5yeF9lcnJvcnMrKzsNCiAJCWJyZWFrOw0KIAljYXNlIFBDSF9DUkNfRVJSOg0KLQkJ Y2YtPmRhdGFbMl0gfD0gQ0FOX0VSUl9QUk9UX0xPQ19DUkNfU0VRIHwNCisJCWNmLT5kYXRhWzNd IHw9IENBTl9FUlJfUFJPVF9MT0NfQ1JDX1NFUSB8DQogCQkJICAgICAgIENBTl9FUlJfUFJPVF9M T0NfQ1JDX0RFTDsNCiAJCXByaXYtPmNhbi5jYW5fc3RhdHMuYnVzX2Vycm9yKys7DQogCQlzdGF0 cy0+cnhfZXJyb3JzKys7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL3RpX2hlY2MuYyBi L2RyaXZlcnMvbmV0L2Nhbi90aV9oZWNjLmMNCmluZGV4IDc5YzcwYWUuLjFlZjlkZjggMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL25ldC9jYW4vdGlfaGVjYy5jDQorKysgYi9kcml2ZXJzL25ldC9jYW4v dGlfaGVjYy5jDQpAQCAtNzM1LDEyICs3MzUsMTIgQEAgc3RhdGljIGludCB0aV9oZWNjX2Vycm9y KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBpbnQgaW50X3N0YXR1cywNCiAJCX0NCiAJCWlmIChl cnJfc3RhdHVzICYgSEVDQ19DQU5FU19DUkNFKSB7DQogCQkJaGVjY19zZXRfYml0KHByaXYsIEhF Q0NfQ0FORVMsIEhFQ0NfQ0FORVNfQ1JDRSk7DQotCQkJY2YtPmRhdGFbMl0gfD0gQ0FOX0VSUl9Q Uk9UX0xPQ19DUkNfU0VRIHwNCisJCQljZi0+ZGF0YVszXSB8PSBDQU5fRVJSX1BST1RfTE9DX0NS Q19TRVEgfA0KIAkJCQkJQ0FOX0VSUl9QUk9UX0xPQ19DUkNfREVMOw0KIAkJfQ0KIAkJaWYgKGVy cl9zdGF0dXMgJiBIRUNDX0NBTkVTX0FDS0UpIHsNCiAJCQloZWNjX3NldF9iaXQocHJpdiwgSEVD Q19DQU5FUywgSEVDQ19DQU5FU19BQ0tFKTsNCi0JCQljZi0+ZGF0YVsyXSB8PSBDQU5fRVJSX1BS T1RfTE9DX0FDSyB8DQorCQkJY2YtPmRhdGFbM10gfD0gQ0FOX0VSUl9QUk9UX0xPQ19BQ0sgfA0K IAkJCQkJQ0FOX0VSUl9QUk9UX0xPQ19BQ0tfREVMOw0KIAkJfQ0KIAl9DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWdiL2lnYl9tYWluLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9pbnRlbC9pZ2IvaWdiX21haW4uYw0KaW5kZXggMjIyOTU0ZC4uY2YxNzdiOCAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lnYi9pZ2JfbWFpbi5jDQorKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZ2IvaWdiX21haW4uYw0KQEAgLTkzOSwxNyAr OTM5LDE4IEBAIHN0YXRpYyBpbnQgaWdiX3JlcXVlc3RfbXNpeChzdHJ1Y3QgaWdiX2FkYXB0ZXIg KmFkYXB0ZXIpDQogew0KIAlzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2ID0gYWRhcHRlci0+bmV0 ZGV2Ow0KIAlzdHJ1Y3QgZTEwMDBfaHcgKmh3ID0gJmFkYXB0ZXItPmh3Ow0KLQlpbnQgaSwgZXJy ID0gMCwgdmVjdG9yID0gMDsNCisJaW50IGksIGVyciA9IDAsIHZlY3RvciA9IDAsIGZyZWVfdmVj dG9yID0gMDsNCiANCiAJZXJyID0gcmVxdWVzdF9pcnEoYWRhcHRlci0+bXNpeF9lbnRyaWVzW3Zl Y3Rvcl0udmVjdG9yLA0KIAkgICAgICAgICAgICAgICAgICBpZ2JfbXNpeF9vdGhlciwgMCwgbmV0 ZGV2LT5uYW1lLCBhZGFwdGVyKTsNCiAJaWYgKGVycikNCi0JCWdvdG8gb3V0Ow0KLQl2ZWN0b3Ir KzsNCisJCWdvdG8gZXJyX291dDsNCiANCiAJZm9yIChpID0gMDsgaSA8IGFkYXB0ZXItPm51bV9x X3ZlY3RvcnM7IGkrKykgew0KIAkJc3RydWN0IGlnYl9xX3ZlY3RvciAqcV92ZWN0b3IgPSBhZGFw dGVyLT5xX3ZlY3RvcltpXTsNCiANCisJCXZlY3RvcisrOw0KKw0KIAkJcV92ZWN0b3ItPml0cl9y ZWdpc3RlciA9IGh3LT5od19hZGRyICsgRTEwMDBfRUlUUih2ZWN0b3IpOw0KIA0KIAkJaWYgKHFf dmVjdG9yLT5yeC5yaW5nICYmIHFfdmVjdG9yLT50eC5yaW5nKQ0KQEAgLTk2OCwxMyArOTY5LDIy IEBAIHN0YXRpYyBpbnQgaWdiX3JlcXVlc3RfbXNpeChzdHJ1Y3QgaWdiX2FkYXB0ZXIgKmFkYXB0 ZXIpDQogCQkgICAgICAgICAgICAgICAgICBpZ2JfbXNpeF9yaW5nLCAwLCBxX3ZlY3Rvci0+bmFt ZSwNCiAJCSAgICAgICAgICAgICAgICAgIHFfdmVjdG9yKTsNCiAJCWlmIChlcnIpDQotCQkJZ290 byBvdXQ7DQotCQl2ZWN0b3IrKzsNCisJCQlnb3RvIGVycl9mcmVlOw0KIAl9DQogDQogCWlnYl9j b25maWd1cmVfbXNpeChhZGFwdGVyKTsNCiAJcmV0dXJuIDA7DQotb3V0Og0KKw0KK2Vycl9mcmVl Og0KKwkvKiBmcmVlIGFscmVhZHkgYXNzaWduZWQgSVJRcyAqLw0KKwlmcmVlX2lycShhZGFwdGVy LT5tc2l4X2VudHJpZXNbZnJlZV92ZWN0b3IrK10udmVjdG9yLCBhZGFwdGVyKTsNCisNCisJdmVj dG9yLS07DQorCWZvciAoaSA9IDA7IGkgPCB2ZWN0b3I7IGkrKykgew0KKwkJZnJlZV9pcnEoYWRh cHRlci0+bXNpeF9lbnRyaWVzW2ZyZWVfdmVjdG9yKytdLnZlY3RvciwNCisJCQkgYWRhcHRlci0+ cV92ZWN0b3JbaV0pOw0KKwl9DQorZXJyX291dDoNCiAJcmV0dXJuIGVycjsNCiB9DQogDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwM19jYWxpYi5jIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwM19jYWxpYi5jDQppbmRleCAxMmE3 MzBkLi5hZTc1MGY5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlr L2FyOTAwM19jYWxpYi5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5 MDAzX2NhbGliLmMNCkBAIC05NDYsNiArOTQ2LDggQEAgc3RhdGljIGJvb2wgYXI5MDAzX2h3X2lu aXRfY2FsKHN0cnVjdCBhdGhfaHcgKmFoLA0KIAkJCQkJICBBUl9QSFlfQ0xfVEFCXzEsDQogCQkJ CQkgIEFSX1BIWV9DTF9UQUJfMiB9Ow0KIA0KKwlhcjkwMDNfaHdfc2V0X2NoYWluX21hc2tzKGFo LCBhaC0+Y2Fwcy5yeF9jaGFpbm1hc2ssIGFoLT5jYXBzLnR4X2NoYWlubWFzayk7DQorDQogCWlm IChydHQpIHsNCiAJCWlmICghYXI5MDAzX2h3X3J0dF9yZXN0b3JlKGFoLCBjaGFuKSkNCiAJCQly dW5fcnR0X2NhbCA9IHRydWU7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDlrL2FyOTAwM19waHkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkw MDNfcGh5LmMNCmluZGV4IDIzMzBlN2UuLjczYmU3ZmYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAzX3BoeS5jDQorKysgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoOWsvYXI5MDAzX3BoeS5jDQpAQCAtNTQxLDM1ICs1NDEsMjIgQEAgc3RhdGlj IHZvaWQgYXI5MDAzX2h3X2luaXRfYmIoc3RydWN0IGF0aF9odyAqYWgsDQogCXVkZWxheShzeW50 aERlbGF5ICsgQkFTRV9BQ1RJVkFURV9ERUxBWSk7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIGFyOTAw M19od19zZXRfY2hhaW5fbWFza3Moc3RydWN0IGF0aF9odyAqYWgsIHU4IHJ4LCB1OCB0eCkNCit2 b2lkIGFyOTAwM19od19zZXRfY2hhaW5fbWFza3Moc3RydWN0IGF0aF9odyAqYWgsIHU4IHJ4LCB1 OCB0eCkNCiB7DQotCXN3aXRjaCAocngpIHsNCi0JY2FzZSAweDU6DQorCWlmIChhaC0+Y2Fwcy50 eF9jaGFpbm1hc2sgPT0gNSB8fCBhaC0+Y2Fwcy5yeF9jaGFpbm1hc2sgPT0gNSkNCiAJCVJFR19T RVRfQklUKGFoLCBBUl9QSFlfQU5BTE9HX1NXQVAsDQogCQkJICAgIEFSX1BIWV9TV0FQX0FMVF9D SEFJTik7DQotCWNhc2UgMHgzOg0KLQljYXNlIDB4MToNCi0JY2FzZSAweDI6DQotCWNhc2UgMHg3 Og0KLQkJUkVHX1dSSVRFKGFoLCBBUl9QSFlfUlhfQ0hBSU5NQVNLLCByeCk7DQotCQlSRUdfV1JJ VEUoYWgsIEFSX1BIWV9DQUxfQ0hBSU5NQVNLLCByeCk7DQotCQlicmVhazsNCi0JZGVmYXVsdDoN Ci0JCWJyZWFrOw0KLQl9DQorDQorCVJFR19XUklURShhaCwgQVJfUEhZX1JYX0NIQUlOTUFTSywg cngpOw0KKwlSRUdfV1JJVEUoYWgsIEFSX1BIWV9DQUxfQ0hBSU5NQVNLLCByeCk7DQogDQogCWlm ICgoYWgtPmNhcHMuaHdfY2FwcyAmIEFUSDlLX0hXX0NBUF9BUE0pICYmICh0eCA9PSAweDcpKQ0K LQkJUkVHX1dSSVRFKGFoLCBBUl9TRUxGR0VOX01BU0ssIDB4Myk7DQorCQl0eCA9IDM7DQogCWVs c2UgaWYgKEFSX1NSRVZfOTQ2MihhaCkpDQogCQkvKiB4eHggb25seSB3aGVuIE1DSSBzdXBwb3J0 IGlzIGVuYWJsZWQgKi8NCi0JCVJFR19XUklURShhaCwgQVJfU0VMRkdFTl9NQVNLLCAweDMpOw0K LQllbHNlDQotCQlSRUdfV1JJVEUoYWgsIEFSX1NFTEZHRU5fTUFTSywgdHgpOw0KKwkJdHggPSAz Ow0KIA0KLQlpZiAodHggPT0gMHg1KSB7DQotCQlSRUdfU0VUX0JJVChhaCwgQVJfUEhZX0FOQUxP R19TV0FQLA0KLQkJCSAgICBBUl9QSFlfU1dBUF9BTFRfQ0hBSU4pOw0KLQl9DQorCVJFR19XUklU RShhaCwgQVJfU0VMRkdFTl9NQVNLLCB0eCk7DQogfQ0KIA0KIC8qDQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2JlYWNvbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDlrL2JlYWNvbi5jDQppbmRleCBhMTNjYWJiLi4yYmJjODNlIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2JlYWNvbi5jDQorKysgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYmVhY29uLmMNCkBAIC0xNTUsNiArMTU1LDcgQEAgc3Rh dGljIHN0cnVjdCBhdGhfYnVmICphdGhfYmVhY29uX2dlbmVyYXRlKHN0cnVjdCBpZWVlODAyMTFf aHcgKmh3LA0KIAkJCQkgc2tiLT5sZW4sIERNQV9UT19ERVZJQ0UpOw0KIAkJZGV2X2tmcmVlX3Nr Yl9hbnkoc2tiKTsNCiAJCWJmLT5iZl9idWZfYWRkciA9IDA7DQorCQliZi0+YmZfbXBkdSA9IE5V TEw7DQogCX0NCiANCiAJLyogR2V0IGEgbmV3IGJlYWNvbiBmcm9tIG1hYzgwMjExICovDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19oc3QuYyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9odGNfaHN0LmMNCmluZGV4IDFiOTBlZDguLjRmNzg0 M2EgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2hzdC5j DQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2hzdC5jDQpAQCAtMzQy LDYgKzM0Miw4IEBAIHZvaWQgYXRoOWtfaHRjX3R4Y29tcGxldGlvbl9jYihzdHJ1Y3QgaHRjX3Rh cmdldCAqaHRjX2hhbmRsZSwNCiAJCQllbmRwb2ludC0+ZXBfY2FsbGJhY2tzLnR4KGVuZHBvaW50 LT5lcF9jYWxsYmFja3MucHJpdiwNCiAJCQkJCQkgIHNrYiwgaHRjX2hkci0+ZW5kcG9pbnRfaWQs DQogCQkJCQkJICB0eG9rKTsNCisJCX0gZWxzZSB7DQorCQkJa2ZyZWVfc2tiKHNrYik7DQogCQl9 DQogCX0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHcu aCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9ody5oDQppbmRleCBhNWM0YmE4Li4w YzY1YTA5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h3LmgN CisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9ody5oDQpAQCAtMTAxNiw2ICsx MDE2LDcgQEAgaW50IGFyOTAwM19wYXByZF9zZXR1cF9nYWluX3RhYmxlKHN0cnVjdCBhdGhfaHcg KmFoLCBpbnQgY2hhaW4pOw0KIGludCBhcjkwMDNfcGFwcmRfaW5pdF90YWJsZShzdHJ1Y3QgYXRo X2h3ICphaCk7DQogYm9vbCBhcjkwMDNfcGFwcmRfaXNfZG9uZShzdHJ1Y3QgYXRoX2h3ICphaCk7 DQogdm9pZCBhcjkwMDNfaHdfc2V0X3BhcHJkX3R4ZGVzYyhzdHJ1Y3QgYXRoX2h3ICphaCwgdm9p ZCAqZHMsIHU4IGNoYWlucyk7DQordm9pZCBhcjkwMDNfaHdfc2V0X2NoYWluX21hc2tzKHN0cnVj dCBhdGhfaHcgKmFoLCB1OCByeCwgdTggdHgpOw0KIA0KIC8qIEhhcmR3YXJlIGZhbWlseSBvcCBh dHRhY2ggaGVscGVycyAqLw0KIHZvaWQgYXI1MDA4X2h3X2F0dGFjaF9waHlfb3BzKHN0cnVjdCBh dGhfaHcgKmFoKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsv cmVjdi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3JlY3YuYw0KaW5kZXggYjRj YmM4Mi4uZDE3MWE3MiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5 ay9yZWN2LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9yZWN2LmMNCkBA IC03ODYsNiArNzg2LDcgQEAgc3RhdGljIHN0cnVjdCBhdGhfYnVmICphdGhfZ2V0X25leHRfcnhf YnVmKHN0cnVjdCBhdGhfc29mdGMgKnNjLA0KIAkJCXJldHVybiBOVUxMOw0KIAl9DQogDQorCWxp c3RfZGVsKCZiZi0+bGlzdCk7DQogCWlmICghYmYtPmJmX21wZHUpDQogCQlyZXR1cm4gYmY7DQog DQpAQCAtMTk2NiwxNCArMTk2NywxNSBAQCByZXF1ZXVlX2Ryb3BfZnJhZzoNCiAJCQlzYy0+cngu ZnJhZyA9IE5VTEw7DQogCQl9DQogcmVxdWV1ZToNCisJCWxpc3RfYWRkX3RhaWwoJmJmLT5saXN0 LCAmc2MtPnJ4LnJ4YnVmKTsNCisJCWlmIChmbHVzaCkNCisJCQljb250aW51ZTsNCisNCiAJCWlm IChlZG1hKSB7DQotCQkJbGlzdF9hZGRfdGFpbCgmYmYtPmxpc3QsICZzYy0+cngucnhidWYpOw0K IAkJCWF0aF9yeF9lZG1hX2J1Zl9saW5rKHNjLCBxdHlwZSk7DQogCQl9IGVsc2Ugew0KLQkJCWxp c3RfbW92ZV90YWlsKCZiZi0+bGlzdCwgJnNjLT5yeC5yeGJ1Zik7DQogCQkJYXRoX3J4X2J1Zl9s aW5rKHNjLCBiZik7DQotCQkJaWYgKCFmbHVzaCkNCi0JCQkJYXRoOWtfaHdfcnhlbmEoYWgpOw0K KwkJCWF0aDlrX2h3X3J4ZW5hKGFoKTsNCiAJCX0NCiAJfSB3aGlsZSAoMSk7DQogDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJjbTgwMjExL2JyY21zbWFjL21hYzgwMjExX2lm LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icmNtODAyMTEvYnJjbXNtYWMvbWFjODAyMTFfaWYu Yw0KaW5kZXggMGQ4YTljZC4uNzhjMTZlYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2JyY204MDIxMS9icmNtc21hYy9tYWM4MDIxMV9pZi5jDQorKysgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9icmNtODAyMTEvYnJjbXNtYWMvbWFjODAyMTFfaWYuYw0KQEAgLTE0ODQsOSArMTQ4 NCwxMCBAQCB2b2lkIGJyY21zX2FkZF90aW1lcihzdHJ1Y3QgYnJjbXNfdGltZXIgKnQsIHVpbnQg bXMsIGludCBwZXJpb2RpYykNCiAjZW5kaWYNCiAJdC0+bXMgPSBtczsNCiAJdC0+cGVyaW9kaWMg PSAoYm9vbCkgcGVyaW9kaWM7DQotCXQtPnNldCA9IHRydWU7DQotDQotCWF0b21pY19pbmMoJnQt PndsLT5jYWxsYmFja3MpOw0KKwlpZiAoIXQtPnNldCkgew0KKwkJdC0+c2V0ID0gdHJ1ZTsNCisJ CWF0b21pY19pbmMoJnQtPndsLT5jYWxsYmFja3MpOw0KKwl9DQogDQogCWllZWU4MDIxMV9xdWV1 ZV9kZWxheWVkX3dvcmsoaHcsICZ0LT5kbHlfd3JrLCBtc2Vjc190b19qaWZmaWVzKG1zKSk7DQog fQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgvaW5pdC5jIGIvZHJp dmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9pbml0LmMNCmluZGV4IGQ3OTJiM2YuLjUzNTEzMjcg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L2luaXQuYw0KKysrIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9pbml0LmMNCkBAIC0yODMsNiArMjgzLDQ1IEBA IHN0YXRpYyB2b2lkIG13aWZpZXhfaW5pdF9hZGFwdGVyKHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIg KmFkYXB0ZXIpDQogfQ0KIA0KIC8qDQorICogVGhpcyBmdW5jdGlvbiBzZXRzIHRyYW5zX3N0YXJ0 IHBlciB0eF9xdWV1ZQ0KKyAqLw0KK3ZvaWQgbXdpZmlleF9zZXRfdHJhbnNfc3RhcnQoc3RydWN0 IG5ldF9kZXZpY2UgKmRldikNCit7DQorCWludCBpOw0KKw0KKwlmb3IgKGkgPSAwOyBpIDwgZGV2 LT5udW1fdHhfcXVldWVzOyBpKyspDQorCQluZXRkZXZfZ2V0X3R4X3F1ZXVlKGRldiwgaSktPnRy YW5zX3N0YXJ0ID0gamlmZmllczsNCisNCisJZGV2LT50cmFuc19zdGFydCA9IGppZmZpZXM7DQor fQ0KKw0KKy8qDQorICogVGhpcyBmdW5jdGlvbiB3YWtlcyB1cCBhbGwgcXVldWVzIGluIG5ldF9k ZXZpY2UNCisgKi8NCit2b2lkIG13aWZpZXhfd2FrZV91cF9uZXRfZGV2X3F1ZXVlKHN0cnVjdCBu ZXRfZGV2aWNlICpuZXRkZXYsDQorCQkJCQlzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVy KQ0KK3sNCisJdW5zaWduZWQgbG9uZyBkZXZfcXVldWVfZmxhZ3M7DQorDQorCXNwaW5fbG9ja19p cnFzYXZlKCZhZGFwdGVyLT5xdWV1ZV9sb2NrLCBkZXZfcXVldWVfZmxhZ3MpOw0KKwluZXRpZl90 eF93YWtlX2FsbF9xdWV1ZXMobmV0ZGV2KTsNCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRh cHRlci0+cXVldWVfbG9jaywgZGV2X3F1ZXVlX2ZsYWdzKTsNCit9DQorDQorLyoNCisgKiBUaGlz IGZ1bmN0aW9uIHN0b3BzIGFsbCBxdWV1ZXMgaW4gbmV0X2RldmljZQ0KKyAqLw0KK3ZvaWQgbXdp ZmlleF9zdG9wX25ldF9kZXZfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwNCisJCQkJ CXN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIpDQorew0KKwl1bnNpZ25lZCBsb25nIGRl dl9xdWV1ZV9mbGFnczsNCisNCisJc3Bpbl9sb2NrX2lycXNhdmUoJmFkYXB0ZXItPnF1ZXVlX2xv Y2ssIGRldl9xdWV1ZV9mbGFncyk7DQorCW5ldGlmX3R4X3N0b3BfYWxsX3F1ZXVlcyhuZXRkZXYp Ow0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhZGFwdGVyLT5xdWV1ZV9sb2NrLCBkZXZfcXVl dWVfZmxhZ3MpOw0KK30NCisNCisvKg0KICAqICBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIHRoZSBs b2NrIHZhcmlhYmxlcyBhbmQgZnJlZXMgdGhlIGxvY2tzIGFuZA0KICAqICBhc3NvY2lhdGVkIGxv Y2tzLg0KICAqLw0KQEAgLTM1OSw2ICszOTgsNyBAQCBpbnQgbXdpZmlleF9pbml0X2xvY2tfbGlz dChzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyKQ0KIAlzcGluX2xvY2tfaW5pdCgmYWRh cHRlci0+aW50X2xvY2spOw0KIAlzcGluX2xvY2tfaW5pdCgmYWRhcHRlci0+bWFpbl9wcm9jX2xv Y2spOw0KIAlzcGluX2xvY2tfaW5pdCgmYWRhcHRlci0+bXdpZmlleF9jbWRfbG9jayk7DQorCXNw aW5fbG9ja19pbml0KCZhZGFwdGVyLT5xdWV1ZV9sb2NrKTsNCiAJZm9yIChpID0gMDsgaSA8IGFk YXB0ZXItPnByaXZfbnVtOyBpKyspIHsNCiAJCWlmIChhZGFwdGVyLT5wcml2W2ldKSB7DQogCQkJ cHJpdiA9IGFkYXB0ZXItPnByaXZbaV07DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvbXdpZmlleC9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L21haW4uYw0K aW5kZXggNjdlNmRiNy4uZDIxY2Q0NyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L213aWZpZXgvbWFpbi5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L21haW4u Yw0KQEAgLTQwMSw3ICs0MDEsNyBAQCBtd2lmaWV4X2ZpbGxfYnVmZmVyKHN0cnVjdCBza19idWZm ICpza2IpDQogc3RhdGljIGludA0KIG13aWZpZXhfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KQ0KIHsNCi0JbmV0aWZfc3RhcnRfcXVldWUoZGV2KTsNCisJbmV0aWZfdHhfc3RhcnRfYWxsX3F1 ZXVlcyhkZXYpOw0KIAlyZXR1cm4gMDsNCiB9DQogDQpAQCAtNDY1LDggKzQ2NSw4IEBAIG13aWZp ZXhfaGFyZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpDQogCWF0b21pY19pbmMoJnByaXYtPmFkYXB0ZXItPnR4X3BlbmRpbmcpOw0KIA0KIAlp ZiAoYXRvbWljX3JlYWQoJnByaXYtPmFkYXB0ZXItPnR4X3BlbmRpbmcpID49IE1BWF9UWF9QRU5E SU5HKSB7DQotCQluZXRpZl9zdG9wX3F1ZXVlKHByaXYtPm5ldGRldik7DQotCQlkZXYtPnRyYW5z X3N0YXJ0ID0gamlmZmllczsNCisJCW13aWZpZXhfc2V0X3RyYW5zX3N0YXJ0KGRldik7DQorCQlt d2lmaWV4X3N0b3BfbmV0X2Rldl9xdWV1ZShwcml2LT5uZXRkZXYsIHByaXYtPmFkYXB0ZXIpOw0K IAl9DQogDQogCXF1ZXVlX3dvcmsocHJpdi0+YWRhcHRlci0+d29ya3F1ZXVlLCAmcHJpdi0+YWRh cHRlci0+bWFpbl93b3JrKTsNCkBAIC01MzMsNyArNTMzLDcgQEAgbXdpZmlleF90eF90aW1lb3V0 KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpDQogDQogCWRldl9lcnIocHJpdi0+YWRhcHRlci0+ZGV2 LCAiJWx1IDogVHggdGltZW91dCwgYnNzX2luZGV4PSVkXG4iLA0KIAkJCQlqaWZmaWVzLCBwcml2 LT5ic3NfaW5kZXgpOw0KLQlkZXYtPnRyYW5zX3N0YXJ0ID0gamlmZmllczsNCisJbXdpZmlleF9z ZXRfdHJhbnNfc3RhcnQoZGV2KTsNCiAJcHJpdi0+bnVtX3R4X3RpbWVvdXQrKzsNCiB9DQogDQpA QCAtNzkzLDcgKzc5Myw4IEBAIGludCBtd2lmaWV4X3JlbW92ZV9jYXJkKHN0cnVjdCBtd2lmaWV4 X2FkYXB0ZXIgKmFkYXB0ZXIsIHN0cnVjdCBzZW1hcGhvcmUgKnNlbSkNCiAJCXByaXYgPSBhZGFw dGVyLT5wcml2W2ldOw0KIAkJaWYgKHByaXYgJiYgcHJpdi0+bmV0ZGV2KSB7DQogCQkJaWYgKCFu ZXRpZl9xdWV1ZV9zdG9wcGVkKHByaXYtPm5ldGRldikpDQotCQkJCW5ldGlmX3N0b3BfcXVldWUo cHJpdi0+bmV0ZGV2KTsNCisJCQkJbXdpZmlleF9zdG9wX25ldF9kZXZfcXVldWUocHJpdi0+bmV0 ZGV2LA0KKwkJCQkJCQkJYWRhcHRlcik7DQogCQkJaWYgKG5ldGlmX2NhcnJpZXJfb2socHJpdi0+ bmV0ZGV2KSkNCiAJCQkJbmV0aWZfY2Fycmllcl9vZmYocHJpdi0+bmV0ZGV2KTsNCiAJCX0NCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L21haW4uaCBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL213aWZpZXgvbWFpbi5oDQppbmRleCAzMGYxMzhiLi5lNmVlODdmIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9tYWluLmgNCisrKyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL213aWZpZXgvbWFpbi5oDQpAQCAtNjU1LDEwICs2NTUsMTkgQEAgc3Ry dWN0IG13aWZpZXhfYWRhcHRlciB7DQogCXN0cnVjdCBtd2lmaWV4X3dhaXRfcXVldWUgY21kX3dh aXRfcTsNCiAJdTggc2Nhbl93YWl0X3Ffd29rZW47DQogCXN0cnVjdCBjbWRfY3RybF9ub2RlICpj bWRfcXVldWVkOw0KKwlzcGlubG9ja190IHF1ZXVlX2xvY2s7CQkvKiBsb2NrIGZvciB0eCBxdWV1 ZXMgKi8NCiB9Ow0KIA0KIGludCBtd2lmaWV4X2luaXRfbG9ja19saXN0KHN0cnVjdCBtd2lmaWV4 X2FkYXB0ZXIgKmFkYXB0ZXIpOw0KIA0KK3ZvaWQgbXdpZmlleF9zZXRfdHJhbnNfc3RhcnQoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldik7DQorDQordm9pZCBtd2lmaWV4X3N0b3BfbmV0X2Rldl9xdWV1 ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LA0KKwkJc3RydWN0IG13aWZpZXhfYWRhcHRlciAq YWRhcHRlcik7DQorDQordm9pZCBtd2lmaWV4X3dha2VfdXBfbmV0X2Rldl9xdWV1ZShzdHJ1Y3Qg bmV0X2RldmljZSAqbmV0ZGV2LA0KKwkJc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcik7 DQorDQogaW50IG13aWZpZXhfaW5pdF9mdyhzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVy KTsNCiANCiBpbnQgbXdpZmlleF9pbml0X2Z3X2NvbXBsZXRlKHN0cnVjdCBtd2lmaWV4X2FkYXB0 ZXIgKmFkYXB0ZXIpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgv cGNpZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9wY2llLmMNCmluZGV4IGQzNGFj ZjAuLmRlOTQyNDQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L3Bj aWUuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9wY2llLmMNCkBAIC0xNjAs NyArMTYwLDcgQEAgc3RhdGljIGludCBtd2lmaWV4X3BjaWVfc3VzcGVuZChzdHJ1Y3QgcGNpX2Rl diAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQ0KIA0KIAlpZiAocGRldikgew0KIAkJY2FyZCA9 IChzdHJ1Y3QgcGNpZV9zZXJ2aWNlX2NhcmQgKikgcGNpX2dldF9kcnZkYXRhKHBkZXYpOw0KLQkJ aWYgKCFjYXJkIHx8IGNhcmQtPmFkYXB0ZXIpIHsNCisJCWlmICghY2FyZCB8fCAhY2FyZC0+YWRh cHRlcikgew0KIAkJCXByX2VycigiQ2FyZCBvciBhZGFwdGVyIHN0cnVjdHVyZSBpcyBub3QgdmFs aWRcbiIpOw0KIAkJCXJldHVybiAwOw0KIAkJfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL213aWZpZXgvc3RhX2V2ZW50LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4 L3N0YV9ldmVudC5jDQppbmRleCBmMjA0ODEwLi40MDIwNWY2IDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvbXdpZmlleC9zdGFfZXZlbnQuYw0KKysrIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvbXdpZmlleC9zdGFfZXZlbnQuYw0KQEAgLTEyNiw3ICsxMjYsNyBAQCBtd2lmaWV4X3Jl c2V0X2Nvbm5lY3Rfc3RhdGUoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdikNCiAJCXF1ZXVl X3dvcmsocHJpdi0+d29ya3F1ZXVlLCAmcHJpdi0+Y2ZnX3dvcmtxdWV1ZSk7DQogCX0NCiAJaWYg KCFuZXRpZl9xdWV1ZV9zdG9wcGVkKHByaXYtPm5ldGRldikpDQotCQluZXRpZl9zdG9wX3F1ZXVl KHByaXYtPm5ldGRldik7DQorCQltd2lmaWV4X3N0b3BfbmV0X2Rldl9xdWV1ZShwcml2LT5uZXRk ZXYsIGFkYXB0ZXIpOw0KIAlpZiAobmV0aWZfY2Fycmllcl9vayhwcml2LT5uZXRkZXYpKQ0KIAkJ bmV0aWZfY2Fycmllcl9vZmYocHJpdi0+bmV0ZGV2KTsNCiAJLyogUmVzZXQgd2lyZWxlc3Mgc3Rh dHMgc2lnbmFsIGluZm8gKi8NCkBAIC0yMDEsNyArMjAxLDcgQEAgaW50IG13aWZpZXhfcHJvY2Vz c19zdGFfZXZlbnQoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdikNCiAJCWlmICghbmV0aWZf Y2Fycmllcl9vayhwcml2LT5uZXRkZXYpKQ0KIAkJCW5ldGlmX2NhcnJpZXJfb24ocHJpdi0+bmV0 ZGV2KTsNCiAJCWlmIChuZXRpZl9xdWV1ZV9zdG9wcGVkKHByaXYtPm5ldGRldikpDQotCQkJbmV0 aWZfd2FrZV9xdWV1ZShwcml2LT5uZXRkZXYpOw0KKwkJCW13aWZpZXhfd2FrZV91cF9uZXRfZGV2 X3F1ZXVlKHByaXYtPm5ldGRldiwgYWRhcHRlcik7DQogCQlicmVhazsNCiANCiAJY2FzZSBFVkVO VF9ERUFVVEhFTlRJQ0FURUQ6DQpAQCAtMjkyLDcgKzI5Miw3IEBAIGludCBtd2lmaWV4X3Byb2Nl c3Nfc3RhX2V2ZW50KHN0cnVjdCBtd2lmaWV4X3ByaXZhdGUgKnByaXYpDQogCQlwcml2LT5hZGhv Y19pc19saW5rX3NlbnNlZCA9IGZhbHNlOw0KIAkJbXdpZmlleF9jbGVhbl90eHJ4KHByaXYpOw0K IAkJaWYgKCFuZXRpZl9xdWV1ZV9zdG9wcGVkKHByaXYtPm5ldGRldikpDQotCQkJbmV0aWZfc3Rv cF9xdWV1ZShwcml2LT5uZXRkZXYpOw0KKwkJCW13aWZpZXhfc3RvcF9uZXRfZGV2X3F1ZXVlKHBy aXYtPm5ldGRldiwgYWRhcHRlcik7DQogCQlpZiAobmV0aWZfY2Fycmllcl9vayhwcml2LT5uZXRk ZXYpKQ0KIAkJCW5ldGlmX2NhcnJpZXJfb2ZmKHByaXYtPm5ldGRldik7DQogCQlicmVhazsNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L3N0YV9pb2N0bC5jIGIvZHJp dmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9zdGFfaW9jdGwuYw0KaW5kZXggMTY3OWMyNS4uODRi YmE5ZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgvc3RhX2lvY3Rs LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgvc3RhX2lvY3RsLmMNCkBAIC01 Myw4ICs1Myw3IEBAIGludCBtd2lmaWV4X2NvcHlfbWNhc3RfYWRkcihzdHJ1Y3QgbXdpZmlleF9t dWx0aWNhc3RfbGlzdCAqbWxpc3QsDQogICovDQogaW50IG13aWZpZXhfd2FpdF9xdWV1ZV9jb21w bGV0ZShzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyKQ0KIHsNCi0JYm9vbCBjYW5jZWxf ZmxhZyA9IGZhbHNlOw0KLQlpbnQgc3RhdHVzID0gYWRhcHRlci0+Y21kX3dhaXRfcS5zdGF0dXM7 DQorCWludCBzdGF0dXM7DQogCXN0cnVjdCBjbWRfY3RybF9ub2RlICpjbWRfcXVldWVkOw0KIA0K IAlpZiAoIWFkYXB0ZXItPmNtZF9xdWV1ZWQpDQpAQCAtNzAsMTUgKzY5LDE0IEBAIGludCBtd2lm aWV4X3dhaXRfcXVldWVfY29tcGxldGUoc3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlcikN CiAJcXVldWVfd29yayhhZGFwdGVyLT53b3JrcXVldWUsICZhZGFwdGVyLT5tYWluX3dvcmspOw0K IA0KIAkvKiBXYWl0IGZvciBjb21wbGV0aW9uICovDQotCXdhaXRfZXZlbnRfaW50ZXJydXB0aWJs ZShhZGFwdGVyLT5jbWRfd2FpdF9xLndhaXQsDQotCQkJCQkqKGNtZF9xdWV1ZWQtPmNvbmRpdGlv bikpOw0KLQlpZiAoISooY21kX3F1ZXVlZC0+Y29uZGl0aW9uKSkNCi0JCWNhbmNlbF9mbGFnID0g dHJ1ZTsNCi0NCi0JaWYgKGNhbmNlbF9mbGFnKSB7DQotCQltd2lmaWV4X2NhbmNlbF9wZW5kaW5n X2lvY3RsKGFkYXB0ZXIpOw0KLQkJZGV2X2RiZyhhZGFwdGVyLT5kZXYsICJjbWQgY2FuY2VsXG4i KTsNCisJc3RhdHVzID0gd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGFkYXB0ZXItPmNtZF93YWl0 X3Eud2FpdCwNCisJCQkJCSAgKihjbWRfcXVldWVkLT5jb25kaXRpb24pKTsNCisJaWYgKHN0YXR1 cykgew0KKwkJZGV2X2VycihhZGFwdGVyLT5kZXYsICJjbWRfd2FpdF9xIHRlcm1pbmF0ZWQ6ICVk XG4iLCBzdGF0dXMpOw0KKwkJcmV0dXJuIHN0YXR1czsNCiAJfQ0KKw0KKwlzdGF0dXMgPSBhZGFw dGVyLT5jbWRfd2FpdF9xLnN0YXR1czsNCiAJYWRhcHRlci0+Y21kX3dhaXRfcS5zdGF0dXMgPSAw Ow0KIA0KIAlyZXR1cm4gc3RhdHVzOw0KQEAgLTIzOSw3ICsyMzcsOSBAQCBpbnQgbXdpZmlleF9i c3Nfc3RhcnQoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgc3RydWN0IGNmZzgwMjExX2Jz cyAqYnNzLA0KIAkJCQkgICAgICAiYXNzb2NpYXRpbmcuLi5cbiIpOw0KIA0KIAkJaWYgKCFuZXRp Zl9xdWV1ZV9zdG9wcGVkKHByaXYtPm5ldGRldikpDQotCQkJbmV0aWZfc3RvcF9xdWV1ZShwcml2 LT5uZXRkZXYpOw0KKwkJCW13aWZpZXhfc3RvcF9uZXRfZGV2X3F1ZXVlKHByaXYtPm5ldGRldiwg YWRhcHRlcik7DQorCQlpZiAobmV0aWZfY2Fycmllcl9vayhwcml2LT5uZXRkZXYpKQ0KKwkJCW5l dGlmX2NhcnJpZXJfb2ZmKHByaXYtPm5ldGRldik7DQogDQogCQkvKiBDbGVhciBhbnkgcGFzdCBh c3NvY2lhdGlvbiByZXNwb25zZSBzdG9yZWQgZm9yDQogCQkgKiBhcHBsaWNhdGlvbiByZXRyaWV2 YWwgKi8NCkBAIC0yNzAsNyArMjcwLDkgQEAgaW50IG13aWZpZXhfYnNzX3N0YXJ0KHN0cnVjdCBt d2lmaWV4X3ByaXZhdGUgKnByaXYsIHN0cnVjdCBjZmc4MDIxMV9ic3MgKmJzcywNCiAJCXJldCA9 IG13aWZpZXhfY2hlY2tfbmV0d29ya19jb21wYXRpYmlsaXR5KHByaXYsIGJzc19kZXNjKTsNCiAN CiAJCWlmICghbmV0aWZfcXVldWVfc3RvcHBlZChwcml2LT5uZXRkZXYpKQ0KLQkJCW5ldGlmX3N0 b3BfcXVldWUocHJpdi0+bmV0ZGV2KTsNCisJCQltd2lmaWV4X3N0b3BfbmV0X2Rldl9xdWV1ZShw cml2LT5uZXRkZXYsIGFkYXB0ZXIpOw0KKwkJaWYgKG5ldGlmX2NhcnJpZXJfb2socHJpdi0+bmV0 ZGV2KSkNCisJCQluZXRpZl9jYXJyaWVyX29mZihwcml2LT5uZXRkZXYpOw0KIA0KIAkJaWYgKCFy ZXQpIHsNCiAJCQlkZXZfZGJnKGFkYXB0ZXItPmRldiwgImluZm86IG5ldHdvcmsgZm91bmQgaW4g c2NhbiINCkBAIC00MjEsOCArNDIzLDExIEBAIGludCBtd2lmaWV4X2VuYWJsZV9ocyhzdHJ1Y3Qg bXdpZmlleF9hZGFwdGVyICphZGFwdGVyKQ0KIAkJcmV0dXJuIGZhbHNlOw0KIAl9DQogDQotCXdh aXRfZXZlbnRfaW50ZXJydXB0aWJsZShhZGFwdGVyLT5oc19hY3RpdmF0ZV93YWl0X3EsDQotCQkJ YWRhcHRlci0+aHNfYWN0aXZhdGVfd2FpdF9xX3dva2VuKTsNCisJaWYgKHdhaXRfZXZlbnRfaW50 ZXJydXB0aWJsZShhZGFwdGVyLT5oc19hY3RpdmF0ZV93YWl0X3EsDQorCQkJCSAgICAgYWRhcHRl ci0+aHNfYWN0aXZhdGVfd2FpdF9xX3dva2VuKSkgew0KKwkJZGV2X2VycihhZGFwdGVyLT5kZXYs ICJoc19hY3RpdmF0ZV93YWl0X3EgdGVybWluYXRlZFxuIik7DQorCQlyZXR1cm4gZmFsc2U7DQor CX0NCiANCiAJcmV0dXJuIHRydWU7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL213aWZpZXgvdHhyeC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC90eHJ4LmMN CmluZGV4IGEyMDZmNDEuLmQ5Mjc0YTEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVz cy9td2lmaWV4L3R4cnguYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC90eHJ4 LmMNCkBAIC0xMzQsNyArMTM0LDcgQEAgaW50IG13aWZpZXhfd3JpdGVfZGF0YV9jb21wbGV0ZShz dHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyLA0KIAlpZiAoIXByaXYpDQogCQlnb3RvIGRv bmU7DQogDQotCXByaXYtPm5ldGRldi0+dHJhbnNfc3RhcnQgPSBqaWZmaWVzOw0KKwltd2lmaWV4 X3NldF90cmFuc19zdGFydChwcml2LT5uZXRkZXYpOw0KIAlpZiAoIXN0YXR1cykgew0KIAkJcHJp di0+c3RhdHMudHhfcGFja2V0cysrOw0KIAkJcHJpdi0+c3RhdHMudHhfYnl0ZXMgKz0gc2tiLT5s ZW47DQpAQCAtMTUyLDcgKzE1Miw4IEBAIGludCBtd2lmaWV4X3dyaXRlX2RhdGFfY29tcGxldGUo c3RydWN0IG13aWZpZXhfYWRhcHRlciAqYWRhcHRlciwNCiAJCWlmICgoR0VUX0JTU19ST0xFKHRw cml2KSA9PSBNV0lGSUVYX0JTU19ST0xFX1NUQSkNCiAJCQkJJiYgKHRwcml2LT5tZWRpYV9jb25u ZWN0ZWQpKSB7DQogCQkJaWYgKG5ldGlmX3F1ZXVlX3N0b3BwZWQodHByaXYtPm5ldGRldikpDQot CQkJCW5ldGlmX3dha2VfcXVldWUodHByaXYtPm5ldGRldik7DQorCQkJCW13aWZpZXhfd2FrZV91 cF9uZXRfZGV2X3F1ZXVlKHRwcml2LT5uZXRkZXYsDQorCQkJCQkJCQlhZGFwdGVyKTsNCiAJCX0N CiAJfQ0KIGRvbmU6DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHAuaCBi L2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwLmgNCmluZGV4IDgzOGY1NzEuLjRmZmY5MTIgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3BjaWVocC5oDQorKysgYi9kcml2ZXJzL3Bj aS9ob3RwbHVnL3BjaWVocC5oDQpAQCAtNDQsOCArNDQsNiBAQCBleHRlcm4gaW50IHBjaWVocF9w b2xsX21vZGU7DQogZXh0ZXJuIGludCBwY2llaHBfcG9sbF90aW1lOw0KIGV4dGVybiBpbnQgcGNp ZWhwX2RlYnVnOw0KIGV4dGVybiBpbnQgcGNpZWhwX2ZvcmNlOw0KLWV4dGVybiBzdHJ1Y3Qgd29y a3F1ZXVlX3N0cnVjdCAqcGNpZWhwX3dxOw0KLWV4dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVj dCAqcGNpZWhwX29yZGVyZWRfd3E7DQogDQogI2RlZmluZSBkYmcoZm9ybWF0LCBhcmcuLi4pCQkJ CQkJXA0KIGRvIHsJCQkJCQkJCQlcDQpAQCAtNzksNiArNzcsNyBAQCBzdHJ1Y3Qgc2xvdCB7DQog CXN0cnVjdCBob3RwbHVnX3Nsb3QgKmhvdHBsdWdfc2xvdDsNCiAJc3RydWN0IGRlbGF5ZWRfd29y ayB3b3JrOwkvKiB3b3JrIGZvciBidXR0b24gZXZlbnQgKi8NCiAJc3RydWN0IG11dGV4IGxvY2s7 DQorCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cTsNCiB9Ow0KIA0KIHN0cnVjdCBldmVudF9p bmZvIHsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3BjaWVocF9jb3JlLmMgYi9k cml2ZXJzL3BjaS9ob3RwbHVnL3BjaWVocF9jb3JlLmMNCmluZGV4IDdhYzgzNTguLjkzNTBhZjkg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3BjaWVocF9jb3JlLmMNCisrKyBiL2Ry aXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2NvcmUuYw0KQEAgLTQyLDggKzQyLDYgQEAgaW50IHBj aWVocF9kZWJ1ZzsNCiBpbnQgcGNpZWhwX3BvbGxfbW9kZTsNCiBpbnQgcGNpZWhwX3BvbGxfdGlt ZTsNCiBpbnQgcGNpZWhwX2ZvcmNlOw0KLXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpwY2llaHBf d3E7DQotc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnBjaWVocF9vcmRlcmVkX3dxOw0KIA0KICNk ZWZpbmUgRFJJVkVSX1ZFUlNJT04JIjAuNCINCiAjZGVmaW5lIERSSVZFUl9BVVRIT1IJIkRhbiBa aW5rIDxkYW4uemlua0Bjb21wYXEuY29tPiwgR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2Fo LmNvbT4sIERlbHkgU3kgPGRlbHkubC5zeUBpbnRlbC5jb20+Ig0KQEAgLTM0MSwzMyArMzM5LDE5 IEBAIHN0YXRpYyBpbnQgX19pbml0IHBjaWVkX2luaXQodm9pZCkNCiB7DQogCWludCByZXR2YWwg PSAwOw0KIA0KLQlwY2llaHBfd3EgPSBhbGxvY193b3JrcXVldWUoInBjaWVocCIsIDAsIDApOw0K LQlpZiAoIXBjaWVocF93cSkNCi0JCXJldHVybiAtRU5PTUVNOw0KLQ0KLQlwY2llaHBfb3JkZXJl ZF93cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJwY2llaHBfb3JkZXJlZCIsIDApOw0KLQlp ZiAoIXBjaWVocF9vcmRlcmVkX3dxKSB7DQotCQlkZXN0cm95X3dvcmtxdWV1ZShwY2llaHBfd3Ep Ow0KLQkJcmV0dXJuIC1FTk9NRU07DQotCX0NCi0NCiAJcGNpZWhwX2Zpcm13YXJlX2luaXQoKTsN CiAJcmV0dmFsID0gcGNpZV9wb3J0X3NlcnZpY2VfcmVnaXN0ZXIoJmhwZHJpdmVyX3BvcnRkcnYp Ow0KICAJZGJnKCJwY2llX3BvcnRfc2VydmljZV9yZWdpc3RlciA9ICVkXG4iLCByZXR2YWwpOw0K ICAgCWluZm8oRFJJVkVSX0RFU0MgIiB2ZXJzaW9uOiAiIERSSVZFUl9WRVJTSU9OICJcbiIpOw0K LSAJaWYgKHJldHZhbCkgew0KLQkJZGVzdHJveV93b3JrcXVldWUocGNpZWhwX29yZGVyZWRfd3Ep Ow0KLQkJZGVzdHJveV93b3JrcXVldWUocGNpZWhwX3dxKTsNCisJaWYgKHJldHZhbCkNCiAJCWRi ZygiRmFpbHVyZSB0byByZWdpc3RlciBzZXJ2aWNlXG4iKTsNCi0JfQ0KKw0KIAlyZXR1cm4gcmV0 dmFsOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBfX2V4aXQgcGNpZWRfY2xlYW51cCh2b2lkKQ0KIHsN CiAJZGJnKCJ1bmxvYWRfcGNpZWhwZCgpXG4iKTsNCi0JZGVzdHJveV93b3JrcXVldWUocGNpZWhw X29yZGVyZWRfd3EpOw0KLQlkZXN0cm95X3dvcmtxdWV1ZShwY2llaHBfd3EpOw0KIAlwY2llX3Bv cnRfc2VydmljZV91bnJlZ2lzdGVyKCZocGRyaXZlcl9wb3J0ZHJ2KTsNCiAJaW5mbyhEUklWRVJf REVTQyAiIHZlcnNpb246ICIgRFJJVkVSX1ZFUlNJT04gIiB1bmxvYWRlZFxuIik7DQogfQ0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2N0cmwuYyBiL2RyaXZlcnMvcGNp L2hvdHBsdWcvcGNpZWhwX2N0cmwuYw0KaW5kZXggMDg1ZGJiNS4uMzhmMDE4NiAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2N0cmwuYw0KKysrIGIvZHJpdmVycy9wY2kv aG90cGx1Zy9wY2llaHBfY3RybC5jDQpAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgaW50IHF1ZXVl X2ludGVycnVwdF9ldmVudChzdHJ1Y3Qgc2xvdCAqcF9zbG90LCB1MzIgZXZlbnRfdHlwZSkNCiAJ aW5mby0+cF9zbG90ID0gcF9zbG90Ow0KIAlJTklUX1dPUksoJmluZm8tPndvcmssIGludGVycnVw dF9ldmVudF9oYW5kbGVyKTsNCiANCi0JcXVldWVfd29yayhwY2llaHBfd3EsICZpbmZvLT53b3Jr KTsNCisJcXVldWVfd29yayhwX3Nsb3QtPndxLCAmaW5mby0+d29yayk7DQogDQogCXJldHVybiAw Ow0KIH0NCkBAIC0zNDQsNyArMzQ0LDcgQEAgdm9pZCBwY2llaHBfcXVldWVfcHVzaGJ1dHRvbl93 b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCiAJCWtmcmVlKGluZm8pOw0KIAkJZ290byBv dXQ7DQogCX0NCi0JcXVldWVfd29yayhwY2llaHBfb3JkZXJlZF93cSwgJmluZm8tPndvcmspOw0K KwlxdWV1ZV93b3JrKHBfc2xvdC0+d3EsICZpbmZvLT53b3JrKTsNCiAgb3V0Og0KIAltdXRleF91 bmxvY2soJnBfc2xvdC0+bG9jayk7DQogfQ0KQEAgLTM3Nyw3ICszNzcsNyBAQCBzdGF0aWMgdm9p ZCBoYW5kbGVfYnV0dG9uX3ByZXNzX2V2ZW50KHN0cnVjdCBzbG90ICpwX3Nsb3QpDQogCQlpZiAo QVRUTl9MRUQoY3RybCkpDQogCQkJcGNpZWhwX3NldF9hdHRlbnRpb25fc3RhdHVzKHBfc2xvdCwg MCk7DQogDQotCQlxdWV1ZV9kZWxheWVkX3dvcmsocGNpZWhwX3dxLCAmcF9zbG90LT53b3JrLCA1 KkhaKTsNCisJCXF1ZXVlX2RlbGF5ZWRfd29yayhwX3Nsb3QtPndxLCAmcF9zbG90LT53b3JrLCA1 KkhaKTsNCiAJCWJyZWFrOw0KIAljYXNlIEJMSU5LSU5HT0ZGX1NUQVRFOg0KIAljYXNlIEJMSU5L SU5HT05fU1RBVEU6DQpAQCAtNDM5LDcgKzQzOSw3IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9zdXJw cmlzZV9ldmVudChzdHJ1Y3Qgc2xvdCAqcF9zbG90KQ0KIAllbHNlDQogCQlwX3Nsb3QtPnN0YXRl ID0gUE9XRVJPTl9TVEFURTsNCiANCi0JcXVldWVfd29yayhwY2llaHBfb3JkZXJlZF93cSwgJmlu Zm8tPndvcmspOw0KKwlxdWV1ZV93b3JrKHBfc2xvdC0+d3EsICZpbmZvLT53b3JrKTsNCiB9DQog DQogc3RhdGljIHZvaWQgaW50ZXJydXB0X2V2ZW50X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2hwYy5jIGIv ZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHBfaHBjLmMNCmluZGV4IDdiMTQxNDguLmZlZjE3NDgg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3BjaWVocF9ocGMuYw0KKysrIGIvZHJp dmVycy9wY2kvaG90cGx1Zy9wY2llaHBfaHBjLmMNCkBAIC03ODksMjQgKzc4OSwzMiBAQCBzdGF0 aWMgdm9pZCBwY2llX3NodXRkb3duX25vdGlmaWNhdGlvbihzdHJ1Y3QgY29udHJvbGxlciAqY3Ry bCkNCiBzdGF0aWMgaW50IHBjaWVfaW5pdF9zbG90KHN0cnVjdCBjb250cm9sbGVyICpjdHJsKQ0K IHsNCiAJc3RydWN0IHNsb3QgKnNsb3Q7DQorCWNoYXIgbmFtZVszMl07DQogDQogCXNsb3QgPSBr emFsbG9jKHNpemVvZigqc2xvdCksIEdGUF9LRVJORUwpOw0KIAlpZiAoIXNsb3QpDQogCQlyZXR1 cm4gLUVOT01FTTsNCiANCisJc25wcmludGYobmFtZSwgc2l6ZW9mKG5hbWUpLCAicGNpZWhwLSV1 IiwgUFNOKGN0cmwpKTsNCisJc2xvdC0+d3EgPSBhbGxvY193b3JrcXVldWUobmFtZSwgMCwgMCk7 DQorCWlmICghc2xvdC0+d3EpDQorCQlnb3RvIGFib3J0Ow0KKw0KIAlzbG90LT5jdHJsID0gY3Ry bDsNCiAJbXV0ZXhfaW5pdCgmc2xvdC0+bG9jayk7DQogCUlOSVRfREVMQVlFRF9XT1JLKCZzbG90 LT53b3JrLCBwY2llaHBfcXVldWVfcHVzaGJ1dHRvbl93b3JrKTsNCiAJY3RybC0+c2xvdCA9IHNs b3Q7DQogCXJldHVybiAwOw0KK2Fib3J0Og0KKwlrZnJlZShzbG90KTsNCisJcmV0dXJuIC1FTk9N RU07DQogfQ0KIA0KIHN0YXRpYyB2b2lkIHBjaWVfY2xlYW51cF9zbG90KHN0cnVjdCBjb250cm9s bGVyICpjdHJsKQ0KIHsNCiAJc3RydWN0IHNsb3QgKnNsb3QgPSBjdHJsLT5zbG90Ow0KIAljYW5j ZWxfZGVsYXllZF93b3JrKCZzbG90LT53b3JrKTsNCi0JZmx1c2hfd29ya3F1ZXVlKHBjaWVocF93 cSk7DQotCWZsdXNoX3dvcmtxdWV1ZShwY2llaHBfb3JkZXJlZF93cSk7DQorCWRlc3Ryb3lfd29y a3F1ZXVlKHNsb3QtPndxKTsNCiAJa2ZyZWUoc2xvdCk7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcGNpL2hvdHBsdWcvc2hwY2hwLmggYi9kcml2ZXJzL3BjaS9ob3RwbHVnL3NocGNocC5o DQppbmRleCBlMGM5MGU2Li4yYzJhYzgwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9wY2kvaG90cGx1 Zy9zaHBjaHAuaA0KKysrIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9zaHBjaHAuaA0KQEAgLTQ2LDgg KzQ2LDYgQEANCiBleHRlcm4gaW50IHNocGNocF9wb2xsX21vZGU7DQogZXh0ZXJuIGludCBzaHBj aHBfcG9sbF90aW1lOw0KIGV4dGVybiBpbnQgc2hwY2hwX2RlYnVnOw0KLWV4dGVybiBzdHJ1Y3Qg d29ya3F1ZXVlX3N0cnVjdCAqc2hwY2hwX3dxOw0KLWV4dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0 cnVjdCAqc2hwY2hwX29yZGVyZWRfd3E7DQogDQogI2RlZmluZSBkYmcoZm9ybWF0LCBhcmcuLi4p CQkJCQkJXA0KIGRvIHsJCQkJCQkJCQlcDQpAQCAtOTEsNiArODksNyBAQCBzdHJ1Y3Qgc2xvdCB7 DQogCXN0cnVjdCBsaXN0X2hlYWQJc2xvdF9saXN0Ow0KIAlzdHJ1Y3QgZGVsYXllZF93b3JrIHdv cms7CS8qIHdvcmsgZm9yIGJ1dHRvbiBldmVudCAqLw0KIAlzdHJ1Y3QgbXV0ZXggbG9jazsNCisJ c3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOw0KIAl1OCBocF9zbG90Ow0KIH07DQogDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9wY2kvaG90cGx1Zy9zaHBjaHBfY29yZS5jIGIvZHJpdmVycy9wY2kv aG90cGx1Zy9zaHBjaHBfY29yZS5jDQppbmRleCBkZDdlMGM1Li43NTRhN2NkIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9wY2kvaG90cGx1Zy9zaHBjaHBfY29yZS5jDQorKysgYi9kcml2ZXJzL3BjaS9o b3RwbHVnL3NocGNocF9jb3JlLmMNCkBAIC0zOSw4ICszOSw2IEBADQogaW50IHNocGNocF9kZWJ1 ZzsNCiBpbnQgc2hwY2hwX3BvbGxfbW9kZTsNCiBpbnQgc2hwY2hwX3BvbGxfdGltZTsNCi1zdHJ1 Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqc2hwY2hwX3dxOw0KLXN0cnVjdCB3b3JrcXVldWVfc3RydWN0 ICpzaHBjaHBfb3JkZXJlZF93cTsNCiANCiAjZGVmaW5lIERSSVZFUl9WRVJTSU9OCSIwLjQiDQog I2RlZmluZSBEUklWRVJfQVVUSE9SCSJEYW4gWmluayA8ZGFuLnppbmtAY29tcGFxLmNvbT4sIEdy ZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ0Brcm9haC5jb20+LCBEZWx5IFN5IDxkZWx5Lmwuc3lAaW50 ZWwuY29tPiINCkBAIC0xMjMsNiArMTIxLDE0IEBAIHN0YXRpYyBpbnQgaW5pdF9zbG90cyhzdHJ1 Y3QgY29udHJvbGxlciAqY3RybCkNCiAJCXNsb3QtPmRldmljZSA9IGN0cmwtPnNsb3RfZGV2aWNl X29mZnNldCArIGk7DQogCQlzbG90LT5ocGNfb3BzID0gY3RybC0+aHBjX29wczsNCiAJCXNsb3Qt Pm51bWJlciA9IGN0cmwtPmZpcnN0X3Nsb3QgKyAoY3RybC0+c2xvdF9udW1faW5jICogaSk7DQor DQorCQlzbnByaW50ZihuYW1lLCBzaXplb2YobmFtZSksICJzaHBjaHAtJWQiLCBzbG90LT5udW1i ZXIpOw0KKwkJc2xvdC0+d3EgPSBhbGxvY193b3JrcXVldWUobmFtZSwgMCwgMCk7DQorCQlpZiAo IXNsb3QtPndxKSB7DQorCQkJcmV0dmFsID0gLUVOT01FTTsNCisJCQlnb3RvIGVycm9yX2luZm87 DQorCQl9DQorDQogCQltdXRleF9pbml0KCZzbG90LT5sb2NrKTsNCiAJCUlOSVRfREVMQVlFRF9X T1JLKCZzbG90LT53b3JrLCBzaHBjaHBfcXVldWVfcHVzaGJ1dHRvbl93b3JrKTsNCiANCkBAIC0x NDIsNyArMTQ4LDcgQEAgc3RhdGljIGludCBpbml0X3Nsb3RzKHN0cnVjdCBjb250cm9sbGVyICpj dHJsKQ0KIAkJaWYgKHJldHZhbCkgew0KIAkJCWN0cmxfZXJyKGN0cmwsICJwY2lfaHBfcmVnaXN0 ZXIgZmFpbGVkIHdpdGggZXJyb3IgJWRcbiIsDQogCQkJCSByZXR2YWwpOw0KLQkJCWdvdG8gZXJy b3JfaW5mbzsNCisJCQlnb3RvIGVycm9yX3Nsb3R3cTsNCiAJCX0NCiANCiAJCWdldF9wb3dlcl9z dGF0dXMoaG90cGx1Z19zbG90LCAmaW5mby0+cG93ZXJfc3RhdHVzKTsNCkBAIC0xNTQsNiArMTYw LDggQEAgc3RhdGljIGludCBpbml0X3Nsb3RzKHN0cnVjdCBjb250cm9sbGVyICpjdHJsKQ0KIAl9 DQogDQogCXJldHVybiAwOw0KK2Vycm9yX3Nsb3R3cToNCisJZGVzdHJveV93b3JrcXVldWUoc2xv dC0+d3EpOw0KIGVycm9yX2luZm86DQogCWtmcmVlKGluZm8pOw0KIGVycm9yX2hwc2xvdDoNCkBA IC0xNzQsOCArMTgyLDcgQEAgdm9pZCBjbGVhbnVwX3Nsb3RzKHN0cnVjdCBjb250cm9sbGVyICpj dHJsKQ0KIAkJc2xvdCA9IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3Qgc2xvdCwgc2xvdF9saXN0KTsN CiAJCWxpc3RfZGVsKCZzbG90LT5zbG90X2xpc3QpOw0KIAkJY2FuY2VsX2RlbGF5ZWRfd29yaygm c2xvdC0+d29yayk7DQotCQlmbHVzaF93b3JrcXVldWUoc2hwY2hwX3dxKTsNCi0JCWZsdXNoX3dv cmtxdWV1ZShzaHBjaHBfb3JkZXJlZF93cSk7DQorCQlkZXN0cm95X3dvcmtxdWV1ZShzbG90LT53 cSk7DQogCQlwY2lfaHBfZGVyZWdpc3RlcihzbG90LT5ob3RwbHVnX3Nsb3QpOw0KIAl9DQogfQ0K QEAgLTM1OCwyNSArMzY1LDEyIEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzaHBjX2RyaXZl ciA9IHsNCiANCiBzdGF0aWMgaW50IF9faW5pdCBzaHBjZF9pbml0KHZvaWQpDQogew0KLQlpbnQg cmV0dmFsID0gMDsNCi0NCi0Jc2hwY2hwX3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoInNo cGNocCIsIDApOw0KLQlpZiAoIXNocGNocF93cSkNCi0JCXJldHVybiAtRU5PTUVNOw0KLQ0KLQlz aHBjaHBfb3JkZXJlZF93cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJzaHBjaHBfb3JkZXJl ZCIsIDApOw0KLQlpZiAoIXNocGNocF9vcmRlcmVkX3dxKSB7DQotCQlkZXN0cm95X3dvcmtxdWV1 ZShzaHBjaHBfd3EpOw0KLQkJcmV0dXJuIC1FTk9NRU07DQotCX0NCisJaW50IHJldHZhbDsNCiAN CiAJcmV0dmFsID0gcGNpX3JlZ2lzdGVyX2RyaXZlcigmc2hwY19kcml2ZXIpOw0KIAlkYmcoIiVz OiBwY2lfcmVnaXN0ZXJfZHJpdmVyID0gJWRcbiIsIF9fZnVuY19fLCByZXR2YWwpOw0KIAlpbmZv KERSSVZFUl9ERVNDICIgdmVyc2lvbjogIiBEUklWRVJfVkVSU0lPTiAiXG4iKTsNCi0JaWYgKHJl dHZhbCkgew0KLQkJZGVzdHJveV93b3JrcXVldWUoc2hwY2hwX29yZGVyZWRfd3EpOw0KLQkJZGVz dHJveV93b3JrcXVldWUoc2hwY2hwX3dxKTsNCi0JfQ0KKw0KIAlyZXR1cm4gcmV0dmFsOw0KIH0N CiANCkBAIC0zODQsOCArMzc4LDYgQEAgc3RhdGljIHZvaWQgX19leGl0IHNocGNkX2NsZWFudXAo dm9pZCkNCiB7DQogCWRiZygidW5sb2FkX3NocGNocGQoKVxuIik7DQogCXBjaV91bnJlZ2lzdGVy X2RyaXZlcigmc2hwY19kcml2ZXIpOw0KLQlkZXN0cm95X3dvcmtxdWV1ZShzaHBjaHBfb3JkZXJl ZF93cSk7DQotCWRlc3Ryb3lfd29ya3F1ZXVlKHNocGNocF93cSk7DQogCWluZm8oRFJJVkVSX0RF U0MgIiB2ZXJzaW9uOiAiIERSSVZFUl9WRVJTSU9OICIgdW5sb2FkZWRcbiIpOw0KIH0NCiANCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3NocGNocF9jdHJsLmMgYi9kcml2ZXJzL3Bj aS9ob3RwbHVnL3NocGNocF9jdHJsLmMNCmluZGV4IGIwMGIwOWIuLjNmZmMxYjIgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3NocGNocF9jdHJsLmMNCisrKyBiL2RyaXZlcnMvcGNp L2hvdHBsdWcvc2hwY2hwX2N0cmwuYw0KQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIGludCBxdWV1 ZV9pbnRlcnJ1cHRfZXZlbnQoc3RydWN0IHNsb3QgKnBfc2xvdCwgdTMyIGV2ZW50X3R5cGUpDQog CWluZm8tPnBfc2xvdCA9IHBfc2xvdDsNCiAJSU5JVF9XT1JLKCZpbmZvLT53b3JrLCBpbnRlcnJ1 cHRfZXZlbnRfaGFuZGxlcik7DQogDQotCXF1ZXVlX3dvcmsoc2hwY2hwX3dxLCAmaW5mby0+d29y ayk7DQorCXF1ZXVlX3dvcmsocF9zbG90LT53cSwgJmluZm8tPndvcmspOw0KIA0KIAlyZXR1cm4g MDsNCiB9DQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgc2hwY2hwX3F1ZXVlX3B1c2hidXR0b25f d29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQogCQlrZnJlZShpbmZvKTsNCiAJCWdvdG8g b3V0Ow0KIAl9DQotCXF1ZXVlX3dvcmsoc2hwY2hwX29yZGVyZWRfd3EsICZpbmZvLT53b3JrKTsN CisJcXVldWVfd29yayhwX3Nsb3QtPndxLCAmaW5mby0+d29yayk7DQogIG91dDoNCiAJbXV0ZXhf dW5sb2NrKCZwX3Nsb3QtPmxvY2spOw0KIH0NCkBAIC01MDQsNyArNTA0LDcgQEAgc3RhdGljIHZv aWQgaGFuZGxlX2J1dHRvbl9wcmVzc19ldmVudChzdHJ1Y3Qgc2xvdCAqcF9zbG90KQ0KIAkJcF9z bG90LT5ocGNfb3BzLT5ncmVlbl9sZWRfYmxpbmsocF9zbG90KTsNCiAJCXBfc2xvdC0+aHBjX29w cy0+c2V0X2F0dGVudGlvbl9zdGF0dXMocF9zbG90LCAwKTsNCiANCi0JCXF1ZXVlX2RlbGF5ZWRf d29yayhzaHBjaHBfd3EsICZwX3Nsb3QtPndvcmssIDUqSFopOw0KKwkJcXVldWVfZGVsYXllZF93 b3JrKHBfc2xvdC0+d3EsICZwX3Nsb3QtPndvcmssIDUqSFopOw0KIAkJYnJlYWs7DQogCWNhc2Ug QkxJTktJTkdPRkZfU1RBVEU6DQogCWNhc2UgQkxJTktJTkdPTl9TVEFURToNCmRpZmYgLS1naXQg YS9kcml2ZXJzL3BjaS9wY2llL2Flci9hZXJkcnZfY29yZS5jIGIvZHJpdmVycy9wY2kvcGNpZS9h ZXIvYWVyZHJ2X2NvcmUuYw0KaW5kZXggOTY3NGU5Zi4uZWU4MmM1NSAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvcGNpL3BjaWUvYWVyL2FlcmRydl9jb3JlLmMNCisrKyBiL2RyaXZlcnMvcGNpL3BjaWUv YWVyL2FlcmRydl9jb3JlLmMNCkBAIC02MzcsNiArNjM3LDcgQEAgc3RhdGljIHZvaWQgYWVyX3Jl Y292ZXJfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCiAJCQljb250aW51ZTsN CiAJCX0NCiAJCWRvX3JlY292ZXJ5KHBkZXYsIGVudHJ5LnNldmVyaXR5KTsNCisJCXBjaV9kZXZf cHV0KHBkZXYpOw0KIAl9DQogfQ0KICNlbmRpZg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3Bj aWUvYXNwbS5jIGIvZHJpdmVycy9wY2kvcGNpZS9hc3BtLmMNCmluZGV4IDIyNzUxNjIuLmM3M2Vk MDAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BjaS9wY2llL2FzcG0uYw0KKysrIGIvZHJpdmVycy9w Y2kvcGNpZS9hc3BtLmMNCkBAIC03OTAsNiArNzkwLDkgQEAgdm9pZCBwY2llX2NsZWFyX2FzcG0o c3RydWN0IHBjaV9idXMgKmJ1cykNCiB7DQogCXN0cnVjdCBwY2lfZGV2ICpjaGlsZDsNCiANCisJ aWYgKGFzcG1fZm9yY2UpDQorCQlyZXR1cm47DQorDQogCS8qDQogCSAqIENsZWFyIGFueSBBU1BN IHNldHVwIHRoYXQgdGhlIGZpcm13YXJlIGhhcyBjYXJyaWVkIG91dCBvbiB0aGlzIGJ1cw0KIAkg Ki8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9pYm1fcnRsLmMgYi9kcml2ZXJz L3BsYXRmb3JtL3g4Ni9pYm1fcnRsLmMNCmluZGV4IDgxMWQ0MzYuLjI3MDQzODYgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9pYm1fcnRsLmMNCisrKyBiL2RyaXZlcnMvcGxhdGZv cm0veDg2L2libV9ydGwuYw0KQEAgLTI1NSw3ICsyNTUsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBp Ym1fcnRsX2luaXQodm9pZCkgew0KIAlpZiAoZm9yY2UpDQogCQlwcl93YXJuKCJtb2R1bGUgbG9h ZGVkIGJ5IGZvcmNlXG4iKTsNCiAJLyogZmlyc3QgZW5zdXJlIHRoYXQgd2UgYXJlIHJ1bm5pbmcg b24gSUJNIEhXICovDQotCWVsc2UgaWYgKGVmaV9lbmFibGVkIHx8ICFkbWlfY2hlY2tfc3lzdGVt KGlibV9ydGxfZG1pX3RhYmxlKSkNCisJZWxzZSBpZiAoZWZpX2VuYWJsZWQoRUZJX0JPT1QpIHx8 ICFkbWlfY2hlY2tfc3lzdGVtKGlibV9ydGxfZG1pX3RhYmxlKSkNCiAJCXJldHVybiAtRU5PREVW Ow0KIA0KIAkvKiBHZXQgdGhlIGFkZHJlc3MgZm9yIHRoZSBFeHRlbmRlZCBCSU9TIERhdGEgQXJl YSAqLw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L3NhbXN1bmctbGFwdG9wLmMg Yi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9zYW1zdW5nLWxhcHRvcC5jDQppbmRleCAyMWJjMWE3Li42 NGUxZjJkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvc2Ftc3VuZy1sYXB0b3Au Yw0KKysrIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvc2Ftc3VuZy1sYXB0b3AuYw0KQEAgLTIyLDYg KzIyLDcgQEANCiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+DQogI2luY2x1ZGUg PGxpbnV4L3Jma2lsbC5oPg0KICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+DQorI2luY2x1ZGUgPGxp bnV4L2VmaS5oPg0KIA0KIC8qDQogICogVGhpcyBkcml2ZXIgaXMgbmVlZGVkIGJlY2F1c2UgYSBu dW1iZXIgb2YgU2Ftc3VuZyBsYXB0b3BzIGRvIG5vdCBob29rDQpAQCAtNjAzLDYgKzYwNCw5IEBA IHN0YXRpYyBpbnQgX19pbml0IHNhbXN1bmdfaW5pdCh2b2lkKQ0KIAlpbnQgbG9jYTsNCiAJaW50 IHJldHZhbDsNCiANCisJaWYgKGVmaV9lbmFibGVkKEVGSV9CT09UKSkNCisJCXJldHVybiAtRU5P REVWOw0KKw0KIAltdXRleF9pbml0KCZzYWJpX211dGV4KTsNCiAJaGFuZGxlX2JhY2tsaWdodCA9 IHRydWU7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9yZWd1bGF0b3IvbWF4ODk5Ny5jIGIvZHJp dmVycy9yZWd1bGF0b3IvbWF4ODk5Ny5jDQppbmRleCA4Y2JhODJkLi4zMjQ0NWE3IDEwMDY0NA0K LS0tIGEvZHJpdmVycy9yZWd1bGF0b3IvbWF4ODk5Ny5jDQorKysgYi9kcml2ZXJzL3JlZ3VsYXRv ci9tYXg4OTk3LmMNCkBAIC03MSwyNiArNzEsMjYgQEAgc3RydWN0IHZvbHRhZ2VfbWFwX2Rlc2Mg ew0KIAl1bnNpZ25lZCBpbnQgbl9iaXRzOw0KIH07DQogDQotLyogVm9sdGFnZSBtYXBzIGluIG1W ICovDQorLyogVm9sdGFnZSBtYXBzIGluIHVWICovDQogc3RhdGljIGNvbnN0IHN0cnVjdCB2b2x0 YWdlX21hcF9kZXNjIGxkb192b2x0YWdlX21hcF9kZXNjID0gew0KLQkubWluID0gODAwLAkubWF4 ID0gMzk1MCwJLnN0ZXAgPSA1MCwJLm5fYml0cyA9IDYsDQorCS5taW4gPSA4MDAwMDAsCS5tYXgg PSAzOTUwMDAwLAkuc3RlcCA9IDUwMDAwLAkubl9iaXRzID0gNiwNCiB9OyAvKiBMRE8xIH4gMTgs IDIxIGFsbCAqLw0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9sdGFnZV9tYXBfZGVzYyBidWNr MTI0NV92b2x0YWdlX21hcF9kZXNjID0gew0KLQkubWluID0gNjUwLAkubWF4ID0gMjIyNSwJLnN0 ZXAgPSAyNSwJLm5fYml0cyA9IDYsDQorCS5taW4gPSA2NTAwMDAsCS5tYXggPSAyMjI1MDAwLAku c3RlcCA9IDI1MDAwLAkubl9iaXRzID0gNiwNCiB9OyAvKiBCdWNrMSwgMiwgNCwgNSAqLw0KIA0K IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9sdGFnZV9tYXBfZGVzYyBidWNrMzdfdm9sdGFnZV9tYXBf ZGVzYyA9IHsNCi0JLm1pbiA9IDc1MCwJLm1heCA9IDM5MDAsCS5zdGVwID0gNTAsCS5uX2JpdHMg PSA2LA0KKwkubWluID0gNzUwMDAwLAkubWF4ID0gMzkwMDAwMCwJLnN0ZXAgPSA1MDAwMCwJLm5f Yml0cyA9IDYsDQogfTsgLyogQnVjazMsIDcgKi8NCiANCi0vKiBjdXJyZW50IG1hcCBpbiBtQSAq Lw0KKy8qIGN1cnJlbnQgbWFwIGluIHVBICovDQogc3RhdGljIGNvbnN0IHN0cnVjdCB2b2x0YWdl X21hcF9kZXNjIGNoYXJnZXJfY3VycmVudF9tYXBfZGVzYyA9IHsNCi0JLm1pbiA9IDIwMCwJLm1h eCA9IDk1MCwJLnN0ZXAgPSA1MCwJLm5fYml0cyA9IDQsDQorCS5taW4gPSAyMDAwMDAsCS5tYXgg PSA5NTAwMDAsCS5zdGVwID0gNTAwMDAsCS5uX2JpdHMgPSA0LA0KIH07DQogDQogc3RhdGljIGNv bnN0IHN0cnVjdCB2b2x0YWdlX21hcF9kZXNjIHRvcG9mZl9jdXJyZW50X21hcF9kZXNjID0gew0K LQkubWluID0gNTAsCS5tYXggPSAyMDAsCS5zdGVwID0gMTAsCS5uX2JpdHMgPSA0LA0KKwkubWlu ID0gNTAwMDAsCS5tYXggPSAyMDAwMDAsCS5zdGVwID0gMTAwMDAsCS5uX2JpdHMgPSA0LA0KIH07 DQogDQogc3RhdGljIGNvbnN0IHN0cnVjdCB2b2x0YWdlX21hcF9kZXNjICpyZWdfdm9sdGFnZV9t YXBbXSA9IHsNCkBAIC0xOTksNyArMTk5LDcgQEAgc3RhdGljIGludCBtYXg4OTk3X2xpc3Rfdm9s dGFnZShzdHJ1Y3QgcmVndWxhdG9yX2RldiAqcmRldiwNCiAJaWYgKHZhbCA+IGRlc2MtPm1heCkN CiAJCXJldHVybiAtRUlOVkFMOw0KIA0KLQlyZXR1cm4gdmFsICogMTAwMDsNCisJcmV0dXJuIHZh bDsNCiB9DQogDQogc3RhdGljIGludCBtYXg4OTk3X2dldF9lbmFibGVfcmVnaXN0ZXIoc3RydWN0 IHJlZ3VsYXRvcl9kZXYgKnJkZXYsDQpAQCAtNTAxLDcgKzUwMSw2IEBAIHN0YXRpYyBpbnQgbWF4 ODk5N19zZXRfdm9sdGFnZV9sZG9idWNrKHN0cnVjdCByZWd1bGF0b3JfZGV2ICpyZGV2LA0KIHsN CiAJc3RydWN0IG1heDg5OTdfZGF0YSAqbWF4ODk5NyA9IHJkZXZfZ2V0X2RydmRhdGEocmRldik7 DQogCXN0cnVjdCBpMmNfY2xpZW50ICppMmMgPSBtYXg4OTk3LT5pb2Rldi0+aTJjOw0KLQlpbnQg bWluX3ZvbCA9IG1pbl91ViAvIDEwMDAsIG1heF92b2wgPSBtYXhfdVYgLyAxMDAwOw0KIAljb25z dCBzdHJ1Y3Qgdm9sdGFnZV9tYXBfZGVzYyAqZGVzYzsNCiAJaW50IHJpZCA9IG1heDg5OTdfZ2V0 X3JpZChyZGV2KTsNCiAJaW50IHJlZywgc2hpZnQgPSAwLCBtYXNrLCByZXQ7DQpAQCAtNTI3LDcg KzUyNiw3IEBAIHN0YXRpYyBpbnQgbWF4ODk5N19zZXRfdm9sdGFnZV9sZG9idWNrKHN0cnVjdCBy ZWd1bGF0b3JfZGV2ICpyZGV2LA0KIA0KIAlkZXNjID0gcmVnX3ZvbHRhZ2VfbWFwW3JpZF07DQog DQotCWkgPSBtYXg4OTk3X2dldF92b2x0YWdlX3Byb3Blcl92YWwoZGVzYywgbWluX3ZvbCwgbWF4 X3ZvbCk7DQorCWkgPSBtYXg4OTk3X2dldF92b2x0YWdlX3Byb3Blcl92YWwoZGVzYywgbWluX3VW LCBtYXhfdVYpOw0KIAlpZiAoaSA8IDApDQogCQlyZXR1cm4gaTsNCiANCkBAIC01NDYsNyArNTQ1 LDcgQEAgc3RhdGljIGludCBtYXg4OTk3X3NldF92b2x0YWdlX2xkb2J1Y2soc3RydWN0IHJlZ3Vs YXRvcl9kZXYgKnJkZXYsDQogCQkvKiBJZiB0aGUgdm9sdGFnZSBpcyBpbmNyZWFzaW5nICovDQog CQlpZiAob3JnIDwgaSkNCiAJCQl1ZGVsYXkoRElWX1JPVU5EX1VQKGRlc2MtPnN0ZXAgKiAoaSAt IG9yZyksDQotCQkJCQkJbWF4ODk5Ny0+cmFtcF9kZWxheSkpOw0KKwkJCQkJCW1heDg5OTctPnJh bXBfZGVsYXkgKiAxMDAwKSk7DQogCX0NCiANCiAJcmV0dXJuIHJldDsNCkBAIC02NDUsNyArNjQ0 LDYgQEAgc3RhdGljIGludCBtYXg4OTk3X3NldF92b2x0YWdlX2J1Y2soc3RydWN0IHJlZ3VsYXRv cl9kZXYgKnJkZXYsDQogCWNvbnN0IHN0cnVjdCB2b2x0YWdlX21hcF9kZXNjICpkZXNjOw0KIAlp bnQgbmV3X3ZhbCwgbmV3X2lkeCwgZGFtYWdlLCB0bXBfdmFsLCB0bXBfaWR4LCB0bXBfZG1nOw0K IAlib29sIGdwaW9fZHZzX21vZGUgPSBmYWxzZTsNCi0JaW50IG1pbl92b2wgPSBtaW5fdVYgLyAx MDAwLCBtYXhfdm9sID0gbWF4X3VWIC8gMTAwMDsNCiANCiAJaWYgKHJpZCA8IE1BWDg5OTdfQlVD SzEgfHwgcmlkID4gTUFYODk5N19CVUNLNykNCiAJCXJldHVybiAtRUlOVkFMOw0KQEAgLTY3MCw3 ICs2NjgsNyBAQCBzdGF0aWMgaW50IG1heDg5OTdfc2V0X3ZvbHRhZ2VfYnVjayhzdHJ1Y3QgcmVn dWxhdG9yX2RldiAqcmRldiwNCiAJCQkJCQlzZWxlY3Rvcik7DQogDQogCWRlc2MgPSByZWdfdm9s dGFnZV9tYXBbcmlkXTsNCi0JbmV3X3ZhbCA9IG1heDg5OTdfZ2V0X3ZvbHRhZ2VfcHJvcGVyX3Zh bChkZXNjLCBtaW5fdm9sLCBtYXhfdm9sKTsNCisJbmV3X3ZhbCA9IG1heDg5OTdfZ2V0X3ZvbHRh Z2VfcHJvcGVyX3ZhbChkZXNjLCBtaW5fdVYsIG1heF91Vik7DQogCWlmIChuZXdfdmFsIDwgMCkN CiAJCXJldHVybiBuZXdfdmFsOw0KIA0KQEAgLTEwMDIsOCArMTAwMCw4IEBAIHN0YXRpYyBfX2Rl dmluaXQgaW50IG1heDg5OTdfcG1pY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQ0KIAkJbWF4ODk5Ny0+YnVjazFfdm9sW2ldID0gcmV0ID0NCiAJCQltYXg4OTk3X2dldF92b2x0 YWdlX3Byb3Blcl92YWwoDQogCQkJCQkmYnVjazEyNDVfdm9sdGFnZV9tYXBfZGVzYywNCi0JCQkJ CXBkYXRhLT5idWNrMV92b2x0YWdlW2ldIC8gMTAwMCwNCi0JCQkJCXBkYXRhLT5idWNrMV92b2x0 YWdlW2ldIC8gMTAwMCArDQorCQkJCQlwZGF0YS0+YnVjazFfdm9sdGFnZVtpXSwNCisJCQkJCXBk YXRhLT5idWNrMV92b2x0YWdlW2ldICsNCiAJCQkJCWJ1Y2sxMjQ1X3ZvbHRhZ2VfbWFwX2Rlc2Mu c3RlcCk7DQogCQlpZiAocmV0IDwgMCkNCiAJCQlnb3RvIGVycl9hbGxvYzsNCkBAIC0xMDExLDgg KzEwMDksOCBAQCBzdGF0aWMgX19kZXZpbml0IGludCBtYXg4OTk3X3BtaWNfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikNCiAJCW1heDg5OTctPmJ1Y2syX3ZvbFtpXSA9IHJldCA9 DQogCQkJbWF4ODk5N19nZXRfdm9sdGFnZV9wcm9wZXJfdmFsKA0KIAkJCQkJJmJ1Y2sxMjQ1X3Zv bHRhZ2VfbWFwX2Rlc2MsDQotCQkJCQlwZGF0YS0+YnVjazJfdm9sdGFnZVtpXSAvIDEwMDAsDQot CQkJCQlwZGF0YS0+YnVjazJfdm9sdGFnZVtpXSAvIDEwMDAgKw0KKwkJCQkJcGRhdGEtPmJ1Y2sy X3ZvbHRhZ2VbaV0sDQorCQkJCQlwZGF0YS0+YnVjazJfdm9sdGFnZVtpXSArDQogCQkJCQlidWNr MTI0NV92b2x0YWdlX21hcF9kZXNjLnN0ZXApOw0KIAkJaWYgKHJldCA8IDApDQogCQkJZ290byBl cnJfYWxsb2M7DQpAQCAtMTAyMCw4ICsxMDE4LDggQEAgc3RhdGljIF9fZGV2aW5pdCBpbnQgbWF4 ODk5N19wbWljX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogCQltYXg4OTk3 LT5idWNrNV92b2xbaV0gPSByZXQgPQ0KIAkJCW1heDg5OTdfZ2V0X3ZvbHRhZ2VfcHJvcGVyX3Zh bCgNCiAJCQkJCSZidWNrMTI0NV92b2x0YWdlX21hcF9kZXNjLA0KLQkJCQkJcGRhdGEtPmJ1Y2s1 X3ZvbHRhZ2VbaV0gLyAxMDAwLA0KLQkJCQkJcGRhdGEtPmJ1Y2s1X3ZvbHRhZ2VbaV0gLyAxMDAw ICsNCisJCQkJCXBkYXRhLT5idWNrNV92b2x0YWdlW2ldLA0KKwkJCQkJcGRhdGEtPmJ1Y2s1X3Zv bHRhZ2VbaV0gKw0KIAkJCQkJYnVjazEyNDVfdm9sdGFnZV9tYXBfZGVzYy5zdGVwKTsNCiAJCWlm IChyZXQgPCAwKQ0KIAkJCWdvdG8gZXJyX2FsbG9jOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVn dWxhdG9yL21heDg5OTguYyBiL2RyaXZlcnMvcmVndWxhdG9yL21heDg5OTguYw0KaW5kZXggNDFh MTQ5NS4uMjdmZTFjNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcmVndWxhdG9yL21heDg5OTguYw0K KysrIGIvZHJpdmVycy9yZWd1bGF0b3IvbWF4ODk5OC5jDQpAQCAtNDk3LDcgKzQ5Nyw3IEBAIGJ1 Y2syX2V4aXQ6DQogDQogCWRpZmZlcmVuY2UgPSBkZXNjLT5taW4gKyBkZXNjLT5zdGVwKmkgLSBw cmV2aW91c192b2wvMTAwMDsNCiAJaWYgKGRpZmZlcmVuY2UgPiAwKQ0KLQkJdWRlbGF5KGRpZmZl cmVuY2UgLyAoKHZhbCAmIDB4MGYpICsgMSkpOw0KKwkJdWRlbGF5KERJVl9ST1VORF9VUChkaWZm ZXJlbmNlLCAodmFsICYgMHgwZikgKyAxKSk7DQogDQogCXJldHVybiByZXQ7DQogfQ0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvc2NzaS9pc2NpL2luaXQuYyBiL2RyaXZlcnMvc2NzaS9pc2NpL2luaXQu Yw0KaW5kZXggNWM4YjBkYy4uMzc4NDM4OCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9pc2Np L2luaXQuYw0KKysrIGIvZHJpdmVycy9zY3NpL2lzY2kvaW5pdC5jDQpAQCAtNDU5LDcgKzQ1OSw3 IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IGlzY2lfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpw ZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljDQogCQlyZXR1cm4gLUVOT01FTTsNCiAJcGNpX3Nl dF9kcnZkYXRhKHBkZXYsIHBjaV9pbmZvKTsNCiANCi0JaWYgKGVmaV9lbmFibGVkKQ0KKwlpZiAo ZWZpX2VuYWJsZWQoRUZJX1JVTlRJTUVfU0VSVklDRVMpKQ0KIAkJb3JvbSA9IGlzY2lfZ2V0X2Vm aV92YXIocGRldik7DQogDQogCWlmICghb3JvbSkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kv c2QuYyBiL2RyaXZlcnMvc2NzaS9zZC5jDQppbmRleCA0YjYzYzczLi5mNDRkNjMzIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9zY3NpL3NkLmMNCisrKyBiL2RyaXZlcnMvc2NzaS9zZC5jDQpAQCAtMjgy NSwxMCArMjgyNSw2IEBAIHN0YXRpYyBpbnQgX19pbml0IGluaXRfc2Qodm9pZCkNCiAJaWYgKGVy cikNCiAJCWdvdG8gZXJyX291dDsNCiANCi0JZXJyID0gc2NzaV9yZWdpc3Rlcl9kcml2ZXIoJnNk X3RlbXBsYXRlLmdlbmRydik7DQotCWlmIChlcnIpDQotCQlnb3RvIGVycl9vdXRfY2xhc3M7DQot DQogCXNkX2NkYl9jYWNoZSA9IGttZW1fY2FjaGVfY3JlYXRlKCJzZF9leHRfY2RiIiwgU0RfRVhU X0NEQl9TSVpFLA0KIAkJCQkJIDAsIDAsIE5VTEwpOw0KIAlpZiAoIXNkX2NkYl9jYWNoZSkgew0K QEAgLTI4NDIsOCArMjgzOCwxNSBAQCBzdGF0aWMgaW50IF9faW5pdCBpbml0X3NkKHZvaWQpDQog CQlnb3RvIGVycl9vdXRfY2FjaGU7DQogCX0NCiANCisJZXJyID0gc2NzaV9yZWdpc3Rlcl9kcml2 ZXIoJnNkX3RlbXBsYXRlLmdlbmRydik7DQorCWlmIChlcnIpDQorCQlnb3RvIGVycl9vdXRfZHJp dmVyOw0KKw0KIAlyZXR1cm4gMDsNCiANCitlcnJfb3V0X2RyaXZlcjoNCisJbWVtcG9vbF9kZXN0 cm95KHNkX2NkYl9wb29sKTsNCisNCiBlcnJfb3V0X2NhY2hlOg0KIAlrbWVtX2NhY2hlX2Rlc3Ry b3koc2RfY2RiX2NhY2hlKTsNCiANCkBAIC0yODY2LDEwICsyODY5LDEwIEBAIHN0YXRpYyB2b2lk IF9fZXhpdCBleGl0X3NkKHZvaWQpDQogDQogCVNDU0lfTE9HX0hMUVVFVUUoMywgcHJpbnRrKCJl eGl0X3NkOiBleGl0aW5nIHNkIGRyaXZlclxuIikpOw0KIA0KKwlzY3NpX3VucmVnaXN0ZXJfZHJp dmVyKCZzZF90ZW1wbGF0ZS5nZW5kcnYpOw0KIAltZW1wb29sX2Rlc3Ryb3koc2RfY2RiX3Bvb2wp Ow0KIAlrbWVtX2NhY2hlX2Rlc3Ryb3koc2RfY2RiX2NhY2hlKTsNCiANCi0Jc2NzaV91bnJlZ2lz dGVyX2RyaXZlcigmc2RfdGVtcGxhdGUuZ2VuZHJ2KTsNCiAJY2xhc3NfdW5yZWdpc3Rlcigmc2Rf ZGlza19jbGFzcyk7DQogDQogCWZvciAoaSA9IDA7IGkgPCBTRF9NQUpPUlM7IGkrKykNCmRpZmYg LS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvY29tZWRpL0tjb25maWcgYi9kcml2ZXJzL3N0YWdpbmcv Y29tZWRpL0tjb25maWcNCmluZGV4IDRjNzdlNTAuLmRhMjY2MzAgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL3N0YWdpbmcvY29tZWRpL0tjb25maWcNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9jb21lZGkv S2NvbmZpZw0KQEAgLTQyNCw2ICs0MjQsNyBAQCBjb25maWcgQ09NRURJX0FEUTEyQg0KIA0KIGNv bmZpZyBDT01FRElfTklfQVRfQTIxNTANCiAJdHJpc3RhdGUgIk5JIEFULUEyMTUwIElTQSBjYXJk IHN1cHBvcnQiDQorCXNlbGVjdCBDT01FRElfRkMNCiAJZGVwZW5kcyBvbiBDT01FRElfTklfQ09N TU9ODQogCWRlcGVuZHMgb24gVklSVF9UT19CVVMNCiAJZGVmYXVsdCBODQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9jb21lZGlfZm9wcy5jIGIvZHJpdmVycy9zdGFnaW5nL2Nv bWVkaS9jb21lZGlfZm9wcy5jDQppbmRleCA5NDY1YmNlLi5hYjlmNWVkIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9jb21lZGlfZm9wcy5jDQorKysgYi9kcml2ZXJzL3N0YWdp bmcvY29tZWRpL2NvbWVkaV9mb3BzLmMNCkBAIC0yMjA3LDYgKzIyMDcsNyBAQCBpbnQgY29tZWRp X2FsbG9jX2JvYXJkX21pbm9yKHN0cnVjdCBkZXZpY2UgKmhhcmR3YXJlX2RldmljZSkNCiAJCWtm cmVlKGluZm8pOw0KIAkJcmV0dXJuIC1FTk9NRU07DQogCX0NCisJaW5mby0+aGFyZHdhcmVfZGV2 aWNlID0gaGFyZHdhcmVfZGV2aWNlOw0KIAljb21lZGlfZGV2aWNlX2luaXQoaW5mby0+ZGV2aWNl KTsNCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmNvbWVkaV9maWxlX2luZm9fdGFibGVfbG9jaywgZmxh Z3MpOw0KIAlmb3IgKGkgPSAwOyBpIDwgQ09NRURJX05VTV9CT0FSRF9NSU5PUlM7ICsraSkgew0K QEAgLTIyOTUsNiArMjI5NiwyMyBAQCB2b2lkIGNvbWVkaV9mcmVlX2JvYXJkX21pbm9yKHVuc2ln bmVkIG1pbm9yKQ0KIAl9DQogfQ0KIA0KK2ludCBjb21lZGlfZmluZF9ib2FyZF9taW5vcihzdHJ1 Y3QgZGV2aWNlICpoYXJkd2FyZV9kZXZpY2UpDQorew0KKwlpbnQgbWlub3I7DQorCXN0cnVjdCBj b21lZGlfZGV2aWNlX2ZpbGVfaW5mbyAqaW5mbzsNCisNCisJZm9yIChtaW5vciA9IDA7IG1pbm9y IDwgQ09NRURJX05VTV9CT0FSRF9NSU5PUlM7IG1pbm9yKyspIHsNCisJCXNwaW5fbG9jaygmY29t ZWRpX2ZpbGVfaW5mb190YWJsZV9sb2NrKTsNCisJCWluZm8gPSBjb21lZGlfZmlsZV9pbmZvX3Rh YmxlW21pbm9yXTsNCisJCWlmIChpbmZvICYmIGluZm8tPmhhcmR3YXJlX2RldmljZSA9PSBoYXJk d2FyZV9kZXZpY2UpIHsNCisJCQlzcGluX3VubG9jaygmY29tZWRpX2ZpbGVfaW5mb190YWJsZV9s b2NrKTsNCisJCQlyZXR1cm4gbWlub3I7DQorCQl9DQorCQlzcGluX3VubG9jaygmY29tZWRpX2Zp bGVfaW5mb190YWJsZV9sb2NrKTsNCisJfQ0KKwlyZXR1cm4gLUVOT0RFVjsNCit9DQorDQogaW50 IGNvbWVkaV9hbGxvY19zdWJkZXZpY2VfbWlub3Ioc3RydWN0IGNvbWVkaV9kZXZpY2UgKmRldiwN CiAJCQkJIHN0cnVjdCBjb21lZGlfc3ViZGV2aWNlICpzKQ0KIHsNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3N0YWdpbmcvY29tZWRpL2NvbWVkaWRldi5oIGIvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9j b21lZGlkZXYuaA0KaW5kZXggN2EwZDRiYy4uMDBkM2M2NSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv c3RhZ2luZy9jb21lZGkvY29tZWRpZGV2LmgNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9jb21lZGkv Y29tZWRpZGV2LmgNCkBAIC0yMzQsNiArMjM0LDcgQEAgc3RydWN0IGNvbWVkaV9kZXZpY2VfZmls ZV9pbmZvIHsNCiAJc3RydWN0IGNvbWVkaV9kZXZpY2UgKmRldmljZTsNCiAJc3RydWN0IGNvbWVk aV9zdWJkZXZpY2UgKnJlYWRfc3ViZGV2aWNlOw0KIAlzdHJ1Y3QgY29tZWRpX3N1YmRldmljZSAq d3JpdGVfc3ViZGV2aWNlOw0KKwlzdHJ1Y3QgZGV2aWNlICpoYXJkd2FyZV9kZXZpY2U7DQogfTsN CiANCiAjaWZkZWYgQ09ORklHX0NPTUVESV9ERUJVRw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3Rh Z2luZy9jb21lZGkvZHJpdmVycy5jIGIvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9kcml2ZXJzLmMN CmluZGV4IGRiMWZkNjMuLjUzOGI1NjggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvY29t ZWRpL2RyaXZlcnMuYw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9kcml2ZXJzLmMNCkBA IC04MjMsMjUgKzgyMywxNCBAQCBzdGF0aWMgaW50IGNvbWVkaV9hdXRvX2NvbmZpZyhzdHJ1Y3Qg ZGV2aWNlICpoYXJkd2FyZV9kZXZpY2UsDQogCWludCBtaW5vcjsNCiAJc3RydWN0IGNvbWVkaV9k ZXZpY2VfZmlsZV9pbmZvICpkZXZfZmlsZV9pbmZvOw0KIAlpbnQgcmV0dmFsOw0KLQl1bnNpZ25l ZCAqcHJpdmF0ZV9kYXRhID0gTlVMTDsNCiANCi0JaWYgKCFjb21lZGlfYXV0b2NvbmZpZykgew0K LQkJZGV2X3NldF9kcnZkYXRhKGhhcmR3YXJlX2RldmljZSwgTlVMTCk7DQorCWlmICghY29tZWRp X2F1dG9jb25maWcpDQogCQlyZXR1cm4gMDsNCi0JfQ0KIA0KIAltaW5vciA9IGNvbWVkaV9hbGxv Y19ib2FyZF9taW5vcihoYXJkd2FyZV9kZXZpY2UpOw0KIAlpZiAobWlub3IgPCAwKQ0KIAkJcmV0 dXJuIG1pbm9yOw0KIA0KLQlwcml2YXRlX2RhdGEgPSBrbWFsbG9jKHNpemVvZih1bnNpZ25lZCks IEdGUF9LRVJORUwpOw0KLQlpZiAocHJpdmF0ZV9kYXRhID09IE5VTEwpIHsNCi0JCXJldHZhbCA9 IC1FTk9NRU07DQotCQlnb3RvIGNsZWFudXA7DQotCX0NCi0JKnByaXZhdGVfZGF0YSA9IG1pbm9y Ow0KLQlkZXZfc2V0X2RydmRhdGEoaGFyZHdhcmVfZGV2aWNlLCBwcml2YXRlX2RhdGEpOw0KLQ0K IAlkZXZfZmlsZV9pbmZvID0gY29tZWRpX2dldF9kZXZpY2VfZmlsZV9pbmZvKG1pbm9yKTsNCiAN CiAJbWVtc2V0KCZpdCwgMCwgc2l6ZW9mKGl0KSk7DQpAQCAtODU0LDI1ICs4NDMsMjIgQEAgc3Rh dGljIGludCBjb21lZGlfYXV0b19jb25maWcoc3RydWN0IGRldmljZSAqaGFyZHdhcmVfZGV2aWNl LA0KIAlyZXR2YWwgPSBjb21lZGlfZGV2aWNlX2F0dGFjaChkZXZfZmlsZV9pbmZvLT5kZXZpY2Us ICZpdCk7DQogCW11dGV4X3VubG9jaygmZGV2X2ZpbGVfaW5mby0+ZGV2aWNlLT5tdXRleCk7DQog DQotY2xlYW51cDoNCi0JaWYgKHJldHZhbCA8IDApIHsNCi0JCWtmcmVlKHByaXZhdGVfZGF0YSk7 DQorCWlmIChyZXR2YWwgPCAwKQ0KIAkJY29tZWRpX2ZyZWVfYm9hcmRfbWlub3IobWlub3IpOw0K LQl9DQogCXJldHVybiByZXR2YWw7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGNvbWVkaV9hdXRvX3Vu Y29uZmlnKHN0cnVjdCBkZXZpY2UgKmhhcmR3YXJlX2RldmljZSkNCiB7DQotCXVuc2lnbmVkICpt aW5vciA9ICh1bnNpZ25lZCAqKWRldl9nZXRfZHJ2ZGF0YShoYXJkd2FyZV9kZXZpY2UpOw0KLQlp ZiAobWlub3IgPT0gTlVMTCkNCi0JCXJldHVybjsNCi0NCi0JQlVHX09OKCptaW5vciA+PSBDT01F RElfTlVNX0JPQVJEX01JTk9SUyk7DQorCWludCBtaW5vcjsNCiANCi0JY29tZWRpX2ZyZWVfYm9h cmRfbWlub3IoKm1pbm9yKTsNCi0JZGV2X3NldF9kcnZkYXRhKGhhcmR3YXJlX2RldmljZSwgTlVM TCk7DQotCWtmcmVlKG1pbm9yKTsNCisJaWYgKGhhcmR3YXJlX2RldmljZSA9PSBOVUxMKQ0KKwkJ cmV0dXJuOw0KKwltaW5vciA9IGNvbWVkaV9maW5kX2JvYXJkX21pbm9yKGhhcmR3YXJlX2Rldmlj ZSk7DQorCWlmIChtaW5vciA8IDApDQorCQlyZXR1cm47DQorCUJVR19PTihtaW5vciA+PSBDT01F RElfTlVNX0JPQVJEX01JTk9SUyk7DQorCWNvbWVkaV9mcmVlX2JvYXJkX21pbm9yKG1pbm9yKTsN CiB9DQogDQogaW50IGNvbWVkaV9wY2lfYXV0b19jb25maWcoc3RydWN0IHBjaV9kZXYgKnBjaWRl diwgY29uc3QgY2hhciAqYm9hcmRfbmFtZSkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcv Y29tZWRpL2RyaXZlcnMvY29tZWRpX3Rlc3QuYyBiL2RyaXZlcnMvc3RhZ2luZy9jb21lZGkvZHJp dmVycy9jb21lZGlfdGVzdC5jDQppbmRleCBhODA0NzQyLi4yNTY3ZjlhIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9kcml2ZXJzL2NvbWVkaV90ZXN0LmMNCisrKyBiL2RyaXZl cnMvc3RhZ2luZy9jb21lZGkvZHJpdmVycy9jb21lZGlfdGVzdC5jDQpAQCAtNDYxLDcgKzQ2MSw3 IEBAIHN0YXRpYyBpbnQgd2F2ZWZvcm1fYWlfY2FuY2VsKHN0cnVjdCBjb21lZGlfZGV2aWNlICpk ZXYsDQogCQkJICAgICAgc3RydWN0IGNvbWVkaV9zdWJkZXZpY2UgKnMpDQogew0KIAlkZXZwcml2 LT50aW1lcl9ydW5uaW5nID0gMDsNCi0JZGVsX3RpbWVyKCZkZXZwcml2LT50aW1lcik7DQorCWRl bF90aW1lcl9zeW5jKCZkZXZwcml2LT50aW1lcik7DQogCXJldHVybiAwOw0KIH0NCiANCmRpZmYg LS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvY29tZWRpL2RyaXZlcnMvbmlfcGNpbWlvLmMgYi9kcml2 ZXJzL3N0YWdpbmcvY29tZWRpL2RyaXZlcnMvbmlfcGNpbWlvLmMNCmluZGV4IDkxNDhhYmQuLjlm ZWUyZjIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvY29tZWRpL2RyaXZlcnMvbmlfcGNp bWlvLmMNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9jb21lZGkvZHJpdmVycy9uaV9wY2ltaW8uYw0K QEAgLTEwMjEsNyArMTAyMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmlfYm9hcmRfc3RydWN0 IG5pX2JvYXJkc1tdID0gew0KIAkgLmFvX3JhbmdlX3RhYmxlID0gJnJhbmdlX25pX01fNjI1eF9h bywNCiAJIC5yZWdfdHlwZSA9IG5pX3JlZ182MjV4LA0KIAkgLmFvX3VuaXBvbGFyID0gMCwNCi0J IC5hb19zcGVlZCA9IDM1NywNCisJIC5hb19zcGVlZCA9IDM1MCwNCiAJIC5udW1fcDBfZGlvX2No YW5uZWxzID0gOCwNCiAJIC5jYWxkYWMgPSB7Y2FsZGFjX25vbmV9LA0KIAkgLmhhc184MjU1ID0g MCwNCkBAIC0xMDQwLDcgKzEwNDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5pX2JvYXJkX3N0 cnVjdCBuaV9ib2FyZHNbXSA9IHsNCiAJIC5hb19yYW5nZV90YWJsZSA9ICZyYW5nZV9uaV9NXzYy NXhfYW8sDQogCSAucmVnX3R5cGUgPSBuaV9yZWdfNjI1eCwNCiAJIC5hb191bmlwb2xhciA9IDAs DQotCSAuYW9fc3BlZWQgPSAzNTcsDQorCSAuYW9fc3BlZWQgPSAzNTAsDQogCSAubnVtX3AwX2Rp b19jaGFubmVscyA9IDgsDQogCSAuY2FsZGFjID0ge2NhbGRhY19ub25lfSwNCiAJIC5oYXNfODI1 NSA9IDAsDQpAQCAtMTA3Niw3ICsxMDc2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuaV9ib2Fy ZF9zdHJ1Y3QgbmlfYm9hcmRzW10gPSB7DQogCSAuYW9fcmFuZ2VfdGFibGUgPSAmcmFuZ2Vfbmlf TV82MjV4X2FvLA0KIAkgLnJlZ190eXBlID0gbmlfcmVnXzYyNXgsDQogCSAuYW9fdW5pcG9sYXIg PSAwLA0KLQkgLmFvX3NwZWVkID0gMzU3LA0KKwkgLmFvX3NwZWVkID0gMzUwLA0KIAkgLm51bV9w MF9kaW9fY2hhbm5lbHMgPSAzMiwNCiAJIC5jYWxkYWMgPSB7Y2FsZGFjX25vbmV9LA0KIAkgLmhh c184MjU1ID0gMCwNCkBAIC0xMDk1LDcgKzEwOTUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5p X2JvYXJkX3N0cnVjdCBuaV9ib2FyZHNbXSA9IHsNCiAJIC5hb19yYW5nZV90YWJsZSA9ICZyYW5n ZV9uaV9NXzYyNXhfYW8sDQogCSAucmVnX3R5cGUgPSBuaV9yZWdfNjI1eCwNCiAJIC5hb191bmlw b2xhciA9IDAsDQotCSAuYW9fc3BlZWQgPSAzNTcsDQorCSAuYW9fc3BlZWQgPSAzNTAsDQogCSAu bnVtX3AwX2Rpb19jaGFubmVscyA9IDMyLA0KIAkgLmNhbGRhYyA9IHtjYWxkYWNfbm9uZX0sDQog CSAuaGFzXzgyNTUgPSAwLA0KQEAgLTExMzEsNyArMTEzMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbmlfYm9hcmRfc3RydWN0IG5pX2JvYXJkc1tdID0gew0KIAkgLmFvX3JhbmdlX3RhYmxlID0g JnJhbmdlX25pX01fNjI4eF9hbywNCiAJIC5yZWdfdHlwZSA9IG5pX3JlZ182Mjh4LA0KIAkgLmFv X3VuaXBvbGFyID0gMSwNCi0JIC5hb19zcGVlZCA9IDM1NywNCisJIC5hb19zcGVlZCA9IDM1MCwN CiAJIC5udW1fcDBfZGlvX2NoYW5uZWxzID0gOCwNCiAJIC5jYWxkYWMgPSB7Y2FsZGFjX25vbmV9 LA0KIAkgLmhhc184MjU1ID0gMCwNCkBAIC0xMTUwLDcgKzExNTAsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IG5pX2JvYXJkX3N0cnVjdCBuaV9ib2FyZHNbXSA9IHsNCiAJIC5hb19yYW5nZV90YWJs ZSA9ICZyYW5nZV9uaV9NXzYyOHhfYW8sDQogCSAucmVnX3R5cGUgPSBuaV9yZWdfNjI4eCwNCiAJ IC5hb191bmlwb2xhciA9IDEsDQotCSAuYW9fc3BlZWQgPSAzNTcsDQorCSAuYW9fc3BlZWQgPSAz NTAsDQogCSAubnVtX3AwX2Rpb19jaGFubmVscyA9IDgsDQogCSAuY2FsZGFjID0ge2NhbGRhY19u b25lfSwNCiAJIC5oYXNfODI1NSA9IDAsDQpAQCAtMTE4Niw3ICsxMTg2LDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBuaV9ib2FyZF9zdHJ1Y3QgbmlfYm9hcmRzW10gPSB7DQogCSAuYW9fcmFuZ2Vf dGFibGUgPSAmcmFuZ2VfbmlfTV82Mjh4X2FvLA0KIAkgLnJlZ190eXBlID0gbmlfcmVnXzYyOHgs DQogCSAuYW9fdW5pcG9sYXIgPSAxLA0KLQkgLmFvX3NwZWVkID0gMzU3LA0KKwkgLmFvX3NwZWVk ID0gMzUwLA0KIAkgLm51bV9wMF9kaW9fY2hhbm5lbHMgPSAzMiwNCiAJIC5jYWxkYWMgPSB7Y2Fs ZGFjX25vbmV9LA0KIAkgLmhhc184MjU1ID0gMCwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdp bmcvY29tZWRpL2ludGVybmFsLmggYi9kcml2ZXJzL3N0YWdpbmcvY29tZWRpL2ludGVybmFsLmgN CmluZGV4IDQzNGNlMzQuLjQyMDhmYjQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvY29t ZWRpL2ludGVybmFsLmgNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9jb21lZGkvaW50ZXJuYWwuaA0K QEAgLTcsNiArNyw3IEBAIGludCBpbnNuX2ludmFsKHN0cnVjdCBjb21lZGlfZGV2aWNlICpkZXYs IHN0cnVjdCBjb21lZGlfc3ViZGV2aWNlICpzLA0KIAkgICAgICAgc3RydWN0IGNvbWVkaV9pbnNu ICppbnNuLCB1bnNpZ25lZCBpbnQgKmRhdGEpOw0KIGludCBjb21lZGlfYWxsb2NfYm9hcmRfbWlu b3Ioc3RydWN0IGRldmljZSAqaGFyZHdhcmVfZGV2aWNlKTsNCiB2b2lkIGNvbWVkaV9mcmVlX2Jv YXJkX21pbm9yKHVuc2lnbmVkIG1pbm9yKTsNCitpbnQgY29tZWRpX2ZpbmRfYm9hcmRfbWlub3Io c3RydWN0IGRldmljZSAqaGFyZHdhcmVfZGV2aWNlKTsNCiB2b2lkIGNvbWVkaV9yZXNldF9hc3lu Y19idWYoc3RydWN0IGNvbWVkaV9hc3luYyAqYXN5bmMpOw0KIGludCBjb21lZGlfYnVmX2FsbG9j KHN0cnVjdCBjb21lZGlfZGV2aWNlICpkZXYsIHN0cnVjdCBjb21lZGlfc3ViZGV2aWNlICpzLA0K IAkJICAgICB1bnNpZ25lZCBsb25nIG5ld19zaXplKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0 YWdpbmcvcnRsODcxMi91c2JfaW50Zi5jIGIvZHJpdmVycy9zdGFnaW5nL3J0bDg3MTIvdXNiX2lu dGYuYw0KaW5kZXggZjRiNzM4Zi4uODhkMWQzNSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2lu Zy9ydGw4NzEyL3VzYl9pbnRmLmMNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzEyL3VzYl9p bnRmLmMNCkBAIC02Niw2ICs2Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydGw4 NzF4X3VzYl9pZF90YmxbXSA9IHsNCiAJe1VTQl9ERVZJQ0UoMHgwQjA1LCAweDE3OTEpfSwgLyog MTFuIG1vZGUgZGlzYWJsZSAqLw0KIAkvKiBCZWxraW4gKi8NCiAJe1VTQl9ERVZJQ0UoMHgwNTBE LCAweDk0NUEpfSwNCisJLyogSVNZIElXTCAtIEJlbGtpbiBjbG9uZSAqLw0KKwl7VVNCX0RFVklD RSgweDA1MEQsIDB4MTFGMSl9LA0KIAkvKiBDb3JlZ2EgKi8NCiAJe1VTQl9ERVZJQ0UoMHgwN0FB LCAweDAwNDcpfSwNCiAJLyogRC1MaW5rICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5n L3NwZWFrdXAvc3ludGguYyBiL2RyaXZlcnMvc3RhZ2luZy9zcGVha3VwL3N5bnRoLmMNCmluZGV4 IGMyNDEwNzQuLjc4NDMxMTEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvc3BlYWt1cC9z eW50aC5jDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvc3BlYWt1cC9zeW50aC5jDQpAQCAtMzQyLDcg KzM0Miw3IEBAIGludCBzeW50aF9pbml0KGNoYXIgKnN5bnRoX25hbWUpDQogDQogCW11dGV4X2xv Y2soJnNwa19tdXRleCk7DQogCS8qIEZpcnN0LCBjaGVjayBpZiB3ZSBhbHJlYWR5IGhhdmUgaXQg bG9hZGVkLiAqLw0KLQlmb3IgKGkgPSAwOyBzeW50aHNbaV0gIT0gTlVMTCAmJiBpIDwgTUFYU1lO VEhTOyBpKyspDQorCWZvciAoaSA9IDA7IGkgPCBNQVhTWU5USFMgJiYgc3ludGhzW2ldICE9IE5V TEw7IGkrKykNCiAJCWlmIChzdHJjbXAoc3ludGhzW2ldLT5uYW1lLCBzeW50aF9uYW1lKSA9PSAw KQ0KIAkJCXN5bnRoID0gc3ludGhzW2ldOw0KIA0KQEAgLTQyMyw3ICs0MjMsNyBAQCBpbnQgc3lu dGhfYWRkKHN0cnVjdCBzcGtfc3ludGggKmluX3N5bnRoKQ0KIAlpbnQgaTsNCiAJaW50IHN0YXR1 cyA9IDA7DQogCW11dGV4X2xvY2soJnNwa19tdXRleCk7DQotCWZvciAoaSA9IDA7IHN5bnRoc1tp XSAhPSBOVUxMICYmIGkgPCBNQVhTWU5USFM7IGkrKykNCisJZm9yIChpID0gMDsgaSA8IE1BWFNZ TlRIUyAmJiBzeW50aHNbaV0gIT0gTlVMTDsgaSsrKQ0KIAkJLyogc3ludGhfcmVtb3ZlKCkgaXMg cmVzcG9uc2libGUgZm9yIHJvdGF0aW5nIHRoZSBhcnJheSBkb3duICovDQogCQlpZiAoaW5fc3lu dGggPT0gc3ludGhzW2ldKSB7DQogCQkJbXV0ZXhfdW5sb2NrKCZzcGtfbXV0ZXgpOw0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvc3RhZ2luZy91c2JpcC91c2JpcF9jb21tb24uYyBiL2RyaXZlcnMvc3Rh Z2luZy91c2JpcC91c2JpcF9jb21tb24uYw0KaW5kZXggM2I3YTg0Ny4uMTk0ZTk3NCAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy91c2JpcC91c2JpcF9jb21tb24uYw0KKysrIGIvZHJpdmVy cy9zdGFnaW5nL3VzYmlwL3VzYmlwX2NvbW1vbi5jDQpAQCAtNzYxLDI2ICs3NjEsMjUgQEAgRVhQ T1JUX1NZTUJPTF9HUEwodXNiaXBfcmVjdl9pc28pOw0KICAqIGJ1ZmZlciBhbmQgaXNvIHBhY2tl dHMgbmVlZCB0byBiZSBzdG9yZWQgYW5kIGJlIGluIHByb3BlcGVyIGVuZGlhbiBpbiB1cmINCiAg KiBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uDQogICovDQotaW50IHVzYmlwX3BhZF9pc28o c3RydWN0IHVzYmlwX2RldmljZSAqdWQsIHN0cnVjdCB1cmIgKnVyYikNCit2b2lkIHVzYmlwX3Bh ZF9pc28oc3RydWN0IHVzYmlwX2RldmljZSAqdWQsIHN0cnVjdCB1cmIgKnVyYikNCiB7DQogCWlu dCBucCA9IHVyYi0+bnVtYmVyX29mX3BhY2tldHM7DQogCWludCBpOw0KLQlpbnQgcmV0Ow0KIAlp bnQgYWN0dWFsb2Zmc2V0ID0gdXJiLT5hY3R1YWxfbGVuZ3RoOw0KIA0KIAlpZiAoIXVzYl9waXBl aXNvYyh1cmItPnBpcGUpKQ0KLQkJcmV0dXJuIDA7DQorCQlyZXR1cm47DQogDQogCS8qIGlmIG5v IHBhY2tldHMgb3IgbGVuZ3RoIG9mIGRhdGEgaXMgMCwgdGhlbiBub3RoaW5nIHRvIHVucGFjayAq Lw0KIAlpZiAobnAgPT0gMCB8fCB1cmItPmFjdHVhbF9sZW5ndGggPT0gMCkNCi0JCXJldHVybiAw Ow0KKwkJcmV0dXJuOw0KIA0KIAkvKg0KIAkgKiBpZiBhY3R1YWxfbGVuZ3RoIGlzIHRyYW5zZmVy X2J1ZmZlcl9sZW5ndGggdGhlbiBubyBwYWRkaW5nIGlzDQogCSAqIHByZXNlbnQuDQogCSovDQog CWlmICh1cmItPmFjdHVhbF9sZW5ndGggPT0gdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoKQ0K LQkJcmV0dXJuIDA7DQorCQlyZXR1cm47DQogDQogCS8qDQogCSAqIGxvb3Agb3ZlciBhbGwgcGFj a2V0cyBmcm9tIGxhc3QgdG8gZmlyc3QgKHRvIHByZXZlbnQgb3ZlcndyaXR0aW5nDQpAQCAtNzky LDggKzc5MSw2IEBAIGludCB1c2JpcF9wYWRfaXNvKHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkLCBz dHJ1Y3QgdXJiICp1cmIpDQogCQkJdXJiLT50cmFuc2Zlcl9idWZmZXIgKyBhY3R1YWxvZmZzZXQs DQogCQkJdXJiLT5pc29fZnJhbWVfZGVzY1tpXS5hY3R1YWxfbGVuZ3RoKTsNCiAJfQ0KLQ0KLQly ZXR1cm4gcmV0Ow0KIH0NCiBFWFBPUlRfU1lNQk9MX0dQTCh1c2JpcF9wYWRfaXNvKTsNCiANCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvdXNiaXAvdXNiaXBfY29tbW9uLmggYi9kcml2ZXJz L3N0YWdpbmcvdXNiaXAvdXNiaXBfY29tbW9uLmgNCmluZGV4IGJlMjE2MTcuLmU1NDdkYmEgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvdXNiaXAvdXNiaXBfY29tbW9uLmgNCisrKyBiL2Ry aXZlcnMvc3RhZ2luZy91c2JpcC91c2JpcF9jb21tb24uaA0KQEAgLTMxNiw3ICszMTYsNyBAQCB2 b2lkIHVzYmlwX2hlYWRlcl9jb3JyZWN0X2VuZGlhbihzdHJ1Y3QgdXNiaXBfaGVhZGVyICpwZHUs IGludCBzZW5kKTsNCiB2b2lkICp1c2JpcF9hbGxvY19pc29fZGVzY19wZHUoc3RydWN0IHVyYiAq dXJiLCBzc2l6ZV90ICpidWZmbGVuKTsNCiAvKiBzb21lIG1lbWJlcnMgb2YgdXJiIG11c3QgYmUg c3Vic3RpdHV0ZWQgYmVmb3JlLiAqLw0KIGludCB1c2JpcF9yZWN2X2lzbyhzdHJ1Y3QgdXNiaXBf ZGV2aWNlICp1ZCwgc3RydWN0IHVyYiAqdXJiKTsNCi1pbnQgdXNiaXBfcGFkX2lzbyhzdHJ1Y3Qg dXNiaXBfZGV2aWNlICp1ZCwgc3RydWN0IHVyYiAqdXJiKTsNCit2b2lkIHVzYmlwX3BhZF9pc28o c3RydWN0IHVzYmlwX2RldmljZSAqdWQsIHN0cnVjdCB1cmIgKnVyYik7DQogaW50IHVzYmlwX3Jl Y3ZfeGJ1ZmYoc3RydWN0IHVzYmlwX2RldmljZSAqdWQsIHN0cnVjdCB1cmIgKnVyYik7DQogDQog LyogdXNiaXBfZXZlbnQuYyAqLw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy91c2JpcC92 aGNpX3J4LmMgYi9kcml2ZXJzL3N0YWdpbmcvdXNiaXAvdmhjaV9yeC5jDQppbmRleCAzODcyYjhj Li4xYTdhZmFhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3VzYmlwL3ZoY2lfcnguYw0K KysrIGIvZHJpdmVycy9zdGFnaW5nL3VzYmlwL3ZoY2lfcnguYw0KQEAgLTk0LDggKzk0LDcgQEAg c3RhdGljIHZvaWQgdmhjaV9yZWN2X3JldF9zdWJtaXQoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2 LA0KIAkJcmV0dXJuOw0KIA0KIAkvKiByZXN0b3JlIHRoZSBwYWRkaW5nIGluIGlzbyBwYWNrZXRz ICovDQotCWlmICh1c2JpcF9wYWRfaXNvKHVkLCB1cmIpIDwgMCkNCi0JCXJldHVybjsNCisJdXNi aXBfcGFkX2lzbyh1ZCwgdXJiKTsNCiANCiAJaWYgKHVzYmlwX2RiZ19mbGFnX3ZoY2lfcngpDQog CQl1c2JpcF9kdW1wX3VyYih1cmIpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy92dDY2 NTYvYnNzZGIuaCBiL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYvYnNzZGIuaA0KaW5kZXggYThmOTdl Yi4uOTkxY2UzZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYvYnNzZGIuaA0K KysrIGIvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9ic3NkYi5oDQpAQCAtOTIsNyArOTIsNiBAQCB0 eXBlZGVmIHN0cnVjdCB0YWdTUlNOQ2FwT2JqZWN0IHsNCiB9IFNSU05DYXBPYmplY3QsICpQU1JT TkNhcE9iamVjdDsNCiANCiAvLyBCU1MgaW5mbyhBUCkNCi0jcHJhZ21hIHBhY2soMSkNCiB0eXBl ZGVmIHN0cnVjdCB0YWdLbm93bkJTUyB7DQogICAgIC8vIEJTUyBpbmZvDQogICAgIEJPT0wgICAg ICAgICAgICBiQWN0aXZlOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYvaW50 LmggYi9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU2L2ludC5oDQppbmRleCAzMTc2YzhkLi5jNzMxYjEy IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9pbnQuaA0KKysrIGIvZHJpdmVy cy9zdGFnaW5nL3Z0NjY1Ni9pbnQuaA0KQEAgLTM0LDcgKzM0LDYgQEANCiAjaW5jbHVkZSAiZGV2 aWNlLmgiDQogDQogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0gIEV4cG9ydCBEZWZpbml0aW9ucyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCi0jcHJhZ21hIHBhY2soMSkNCiB0eXBlZGVmIHN0 cnVjdCB0YWdTSU5URGF0YSB7DQogICAgIEJZVEUgICAgYnlUU1IwOw0KICAgICBCWVRFICAgIGJ5 UGt0MDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU2L2lvY21kLmggYi9kcml2 ZXJzL3N0YWdpbmcvdnQ2NjU2L2lvY21kLmgNCmluZGV4IDIyNzEwY2UuLmFlNmUyZDIgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU2L2lvY21kLmgNCisrKyBiL2RyaXZlcnMvc3Rh Z2luZy92dDY2NTYvaW9jbWQuaA0KQEAgLTk1LDEzICs5NSwxMiBAQCB0eXBlZGVmIGVudW0gdGFn V1pPTkVUWVBFIHsNCiAvLyBJb2N0bCBpbnRlcmZhY2Ugc3RydWN0dXJlDQogLy8gQ29tbWFuZCBz dHJ1Y3R1cmUNCiAvLw0KLSNwcmFnbWEgcGFjaygxKQ0KIHR5cGVkZWYgc3RydWN0IHRhZ1NDbWRS ZXF1ZXN0IHsNCiAJdTggbmFtZVsxNl07DQogCXZvaWQJKmRhdGE7DQogCXUxNgkgICAgd1Jlc3Vs dDsNCiAJdTE2ICAgICB3Q21kQ29kZTsNCi19IFNDbWRSZXF1ZXN0LCAqUFNDbWRSZXF1ZXN0Ow0K K30gX19wYWNrZWQgU0NtZFJlcXVlc3QsICpQU0NtZFJlcXVlc3Q7DQogDQogLy8NCiAvLyBTY2Fu DQpAQCAtMTExLDcgKzExMCw3IEBAIHR5cGVkZWYgc3RydWN0IHRhZ1NDbWRTY2FuIHsNCiANCiAg ICAgdTgJICAgIHNzaWRbU1NJRF9NQVhMRU4gKyAyXTsNCiANCi19IFNDbWRTY2FuLCAqUFNDbWRT Y2FuOw0KK30gX19wYWNrZWQgU0NtZFNjYW4sICpQU0NtZFNjYW47DQogDQogLy8NCiAvLyBCU1Mg Sm9pbg0KQEAgLTEyNiw3ICsxMjUsNyBAQCB0eXBlZGVmIHN0cnVjdCB0YWdTQ21kQlNTSm9pbiB7 DQogICAgIEJPT0wgICAgYlBTRW5hYmxlOw0KICAgICBCT09MICAgIGJTaGFyZUtleUF1dGg7DQog DQotfSBTQ21kQlNTSm9pbiwgKlBTQ21kQlNTSm9pbjsNCit9IF9fcGFja2VkIFNDbWRCU1NKb2lu LCAqUFNDbWRCU1NKb2luOw0KIA0KIC8vDQogLy8gWm9uZXR5cGUgU2V0dGluZw0KQEAgLTEzNyw3 ICsxMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCB0YWdTQ21kWm9uZVR5cGVTZXQgew0KICBCT09MICAg ICAgIGJXcml0ZTsNCiAgV1pPTkVUWVBFICBab25lVHlwZTsNCiANCi19IFNDbWRab25lVHlwZVNl dCwgKlBTQ21kWm9uZVR5cGVTZXQ7DQorfSBfX3BhY2tlZCBTQ21kWm9uZVR5cGVTZXQsICpQU0Nt ZFpvbmVUeXBlU2V0Ow0KIA0KIHR5cGVkZWYgc3RydWN0IHRhZ1NXUEFSZXN1bHQgew0KICAgICAg ICAgIGNoYXIJaWZuYW1lWzEwMF07DQpAQCAtMTQ1LDcgKzE0NCw3IEBAIHR5cGVkZWYgc3RydWN0 IHRhZ1NXUEFSZXN1bHQgew0KIAl1OCBrZXlfbWdtdDsNCiAJdTggZWFwX3R5cGU7DQogICAgICAg ICAgQk9PTCBhdXRoZW50aWNhdGVkOw0KLX0gU1dQQVJlc3VsdCwgKlBTV1BBUmVzdWx0Ow0KK30g X19wYWNrZWQgU1dQQVJlc3VsdCwgKlBTV1BBUmVzdWx0Ow0KIA0KIHR5cGVkZWYgc3RydWN0IHRh Z1NDbWRTdGFydEFQIHsNCiANCkBAIC0xNTcsNyArMTU2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgdGFn U0NtZFN0YXJ0QVAgew0KICAgICBCT09MICAgIGJTaGFyZUtleUF1dGg7DQogICAgIHU4ICAgICAg YnlCYXNpY1JhdGU7DQogDQotfSBTQ21kU3RhcnRBUCwgKlBTQ21kU3RhcnRBUDsNCit9IF9fcGFj a2VkIFNDbWRTdGFydEFQLCAqUFNDbWRTdGFydEFQOw0KIA0KIHR5cGVkZWYgc3RydWN0IHRhZ1ND bWRTZXRXRVAgew0KIA0KQEAgLTE2Nyw3ICsxNjYsNyBAQCB0eXBlZGVmIHN0cnVjdCB0YWdTQ21k U2V0V0VQIHsNCiAgICAgQk9PTCAgICBiV2VwS2V5QXZhaWxhYmxlW1dFUF9OS0VZU107DQogICAg IHUzMiAgICAgYXVXZXBLZXlMZW5ndGhbV0VQX05LRVlTXTsNCiANCi19IFNDbWRTZXRXRVAsICpQ U0NtZFNldFdFUDsNCit9IF9fcGFja2VkIFNDbWRTZXRXRVAsICpQU0NtZFNldFdFUDsNCiANCiB0 eXBlZGVmIHN0cnVjdCB0YWdTQlNTSURJdGVtIHsNCiANCkBAIC0xODAsMTQgKzE3OSwxNCBAQCB0 eXBlZGVmIHN0cnVjdCB0YWdTQlNTSURJdGVtIHsNCiAgICAgQk9PTCAgICBiV0VQT247DQogICAg IHUzMiAgICAgdVJTU0k7DQogDQotfSBTQlNTSURJdGVtOw0KK30gX19wYWNrZWQgU0JTU0lESXRl bTsNCiANCiANCiB0eXBlZGVmIHN0cnVjdCB0YWdTQlNTSURMaXN0IHsNCiANCiAJdTMyCQkgICAg dUl0ZW07DQogCVNCU1NJREl0ZW0Jc0JTU0lETGlzdFswXTsNCi19IFNCU1NJRExpc3QsICpQU0JT U0lETGlzdDsNCit9IF9fcGFja2VkIFNCU1NJRExpc3QsICpQU0JTU0lETGlzdDsNCiANCiANCiB0 eXBlZGVmIHN0cnVjdCB0YWdTTm9kZUl0ZW0gew0KQEAgLTIwOCw3ICsyMDcsNyBAQCB0eXBlZGVm IHN0cnVjdCB0YWdTTm9kZUl0ZW0gew0KICAgICB1MzIgICAgICAgICAgICB1VHhBdHRlbXB0czsN CiAgICAgdTE2ICAgICAgICAgICAgd0ZhaWx1cmVSYXRpbzsNCiANCi19IFNOb2RlSXRlbTsNCit9 IF9fcGFja2VkIFNOb2RlSXRlbTsNCiANCiANCiB0eXBlZGVmIHN0cnVjdCB0YWdTTm9kZUxpc3Qg ew0KQEAgLTIxNiw3ICsyMTUsNyBAQCB0eXBlZGVmIHN0cnVjdCB0YWdTTm9kZUxpc3Qgew0KIAl1 MzIJCSAgICB1SXRlbTsNCiAJU05vZGVJdGVtCXNOb2RlTGlzdFswXTsNCiANCi19IFNOb2RlTGlz dCwgKlBTTm9kZUxpc3Q7DQorfSBfX3BhY2tlZCBTTm9kZUxpc3QsICpQU05vZGVMaXN0Ow0KIA0K IA0KIHR5cGVkZWYgc3RydWN0IHRhZ1NDbWRMaW5rU3RhdHVzIHsNCkBAIC0yMjksNyArMjI4LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgdGFnU0NtZExpbmtTdGF0dXMgew0KICAgICB1MzIgICAgIHVDaGFu bmVsOw0KICAgICB1MzIgICAgIHVMaW5rUmF0ZTsNCiANCi19IFNDbWRMaW5rU3RhdHVzLCAqUFND bWRMaW5rU3RhdHVzOw0KK30gX19wYWNrZWQgU0NtZExpbmtTdGF0dXMsICpQU0NtZExpbmtTdGF0 dXM7DQogDQogLy8NCiAvLyA4MDIuMTEgY291bnRlcg0KQEAgLTI0Nyw3ICsyNDYsNyBAQCB0eXBl ZGVmIHN0cnVjdCB0YWdTRG90MTFNSUJDb3VudCB7DQogICAgIHUzMiBSZWNlaXZlZEZyYWdtZW50 Q291bnQ7DQogICAgIHUzMiBNdWx0aWNhc3RSZWNlaXZlZEZyYW1lQ291bnQ7DQogICAgIHUzMiBG Q1NFcnJvckNvdW50Ow0KLX0gU0RvdDExTUlCQ291bnQsICpQU0RvdDExTUlCQ291bnQ7DQorfSBf X3BhY2tlZCBTRG90MTFNSUJDb3VudCwgKlBTRG90MTFNSUJDb3VudDsNCiANCiANCiANCkBAIC0z NTUsMTMgKzM1NCwxMyBAQCB0eXBlZGVmIHN0cnVjdCB0YWdTU3RhdE1JQkNvdW50IHsNCiAgICAg dTMyICAgdWxsVHhCcm9hZGNhc3RCeXRlc1syXTsNCiAgICAgdTMyICAgdWxsVHhNdWx0aWNhc3RC eXRlc1syXTsNCiAgICAgdTMyICAgdWxsVHhEaXJlY3RlZEJ5dGVzWzJdOw0KLX0gU1N0YXRNSUJD b3VudCwgKlBTU3RhdE1JQkNvdW50Ow0KK30gX19wYWNrZWQgU1N0YXRNSUJDb3VudCwgKlBTU3Rh dE1JQkNvdW50Ow0KIA0KIHR5cGVkZWYgc3RydWN0IHRhZ1NDbWRWYWx1ZSB7DQogDQogICAgIHUz MiAgICAgZHdWYWx1ZTsNCiANCi19IFNDbWRWYWx1ZSwgICpQU0NtZFZhbHVlOw0KK30gX19wYWNr ZWQgU0NtZFZhbHVlLCAgKlBTQ21kVmFsdWU7DQogDQogLy8NCiAvLyBob3N0YXBkICYgdmlhd2dl dCBpb2N0bCByZWxhdGVkDQpAQCAtNDMxLDcgKzQzMCw3IEBAIHN0cnVjdCB2aWF3Z2V0X2hvc3Rh cGRfcGFyYW0gew0KIAkJCXU4IHNzaWRbMzJdOw0KIAkJfSBzY2FuX3JlcTsNCiAJfSB1Ow0KLX07 DQorfSBfX3BhY2tlZDsNCiANCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgRXhwb3J0IENsYXNz ZXMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3RhZ2luZy92dDY2NTYvaW93cGEuaCBiL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYvaW93cGEu aA0KaW5kZXggOTU5Yzg4Ni4uMjUyMmRkZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy92 dDY2NTYvaW93cGEuaA0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9pb3dwYS5oDQpAQCAt NjcsMTIgKzY3LDExIEBAIGVudW0gew0KIA0KIA0KIA0KLSNwcmFnbWEgcGFjaygxKQ0KIHR5cGVk ZWYgc3RydWN0IHZpYXdnZXRfd3BhX2hlYWRlciB7DQogCXU4IHR5cGU7DQogCXUxNiByZXFfaWVf bGVuOw0KIAl1MTYgcmVzcF9pZV9sZW47DQotfSB2aWF3Z2V0X3dwYV9oZWFkZXI7DQorfSBfX3Bh Y2tlZCB2aWF3Z2V0X3dwYV9oZWFkZXI7DQogDQogc3RydWN0IHZpYXdnZXRfd3BhX3BhcmFtIHsN CiAJdTMyIGNtZDsNCkBAIC0xMTMsOSArMTEyLDggQEAgc3RydWN0IHZpYXdnZXRfd3BhX3BhcmFt IHsNCiAJCQl1OCAqYnVmOw0KIAkJfSBzY2FuX3Jlc3VsdHM7DQogCX0gdTsNCi19Ow0KK30gX19w YWNrZWQ7DQogDQotI3ByYWdtYSBwYWNrKDEpDQogc3RydWN0IHZpYXdnZXRfc2Nhbl9yZXN1bHQg ew0KIAl1OCBic3NpZFs2XTsNCiAJdTggc3NpZFszMl07DQpAQCAtMTMwLDcgKzEyOCw3IEBAIHN0 cnVjdCB2aWF3Z2V0X3NjYW5fcmVzdWx0IHsNCiAJaW50IG5vaXNlOw0KIAlpbnQgbGV2ZWw7DQog CWludCBtYXhyYXRlOw0KLX07DQorfSBfX3BhY2tlZDsNCiANCiAvKi0tLS0tLS0tLS0tLS0tLS0t LS0tLSAgRXhwb3J0IENsYXNzZXMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KIA0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX3RyYW5zcG9ydC5jIGIvZHJp dmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfdHJhbnNwb3J0LmMNCmluZGV4IDM0ZDExNGEuLjkxNzZi MmUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV90cmFuc3BvcnQuYw0K KysrIGIvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfdHJhbnNwb3J0LmMNCkBAIC00NTM5LDcg KzQ1MzksNyBAQCBpbnQgdHJhbnNwb3J0X3NlbmRfY2hlY2tfY29uZGl0aW9uX2FuZF9zZW5zZSgN CiAJCS8qIElMTEVHQUwgUkVRVUVTVCAqLw0KIAkJYnVmZmVyW29mZnNldCtTUENfU0VOU0VfS0VZ X09GRlNFVF0gPSBJTExFR0FMX1JFUVVFU1Q7DQogCQkvKiBMT0dJQ0FMIFVOSVQgQ09NTVVOSUNB VElPTiBGQUlMVVJFICovDQotCQlidWZmZXJbb2Zmc2V0K1NQQ19BU0NfS0VZX09GRlNFVF0gPSAw eDgwOw0KKwkJYnVmZmVyW29mZnNldCtTUENfQVNDX0tFWV9PRkZTRVRdID0gMHgwODsNCiAJCWJy ZWFrOw0KIAl9DQogCS8qDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvdGNtX2ZjL3RmY19z ZXNzLmMgYi9kcml2ZXJzL3RhcmdldC90Y21fZmMvdGZjX3Nlc3MuYw0KaW5kZXggM2YyOGZkYi4u YWIwYTNmYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdGFyZ2V0L3RjbV9mYy90ZmNfc2Vzcy5jDQor KysgYi9kcml2ZXJzL3RhcmdldC90Y21fZmMvdGZjX3Nlc3MuYw0KQEAgLTM5MCwxMSArMzkwLDEx IEBAIHN0YXRpYyBpbnQgZnRfcHJsaV9sb2NrZWQoc3RydWN0IGZjX3Jwb3J0X3ByaXYgKnJkYXRh LCB1MzIgc3BwX2xlbiwNCiANCiAJdHBvcnQgPSBmdF90cG9ydF9jcmVhdGUocmRhdGEtPmxvY2Fs X3BvcnQpOw0KIAlpZiAoIXRwb3J0KQ0KLQkJcmV0dXJuIDA7CS8qIG5vdCBhIHRhcmdldCBmb3Ig dGhpcyBsb2NhbCBwb3J0ICovDQorCQlnb3RvIG5vdF90YXJnZXQ7CS8qIG5vdCBhIHRhcmdldCBm b3IgdGhpcyBsb2NhbCBwb3J0ICovDQogDQogCWFjbCA9IGZ0X2FjbF9nZXQodHBvcnQtPnRwZywg cmRhdGEpOw0KIAlpZiAoIWFjbCkNCi0JCXJldHVybiAwOw0KKwkJZ290byBub3RfdGFyZ2V0Owkv KiBubyB0YXJnZXQgZm9yIHRoaXMgcmVtb3RlICovDQogDQogCWlmICghcnNwcCkNCiAJCWdvdG8g ZmlsbDsNCkBAIC00MzEsMTIgKzQzMSwxOCBAQCBzdGF0aWMgaW50IGZ0X3BybGlfbG9ja2VkKHN0 cnVjdCBmY19ycG9ydF9wcml2ICpyZGF0YSwgdTMyIHNwcF9sZW4sDQogDQogCS8qDQogCSAqIE9S IGluIG91ciBzZXJ2aWNlIHBhcmFtZXRlcnMgd2l0aCBvdGhlciBwcm92aWRlciAoaW5pdGlhdG9y KSwgaWYgYW55Lg0KLQkgKiBUQkQgWFhYIC0gaW5kaWNhdGUgUkVUUlkgY2FwYWJpbGl0eT8NCiAJ ICovDQogZmlsbDoNCiAJZmNwX3Bhcm0gPSBudG9obChzcHAtPnNwcF9wYXJhbXMpOw0KKwlmY3Bf cGFybSAmPSB+RkNQX1NQUEZfUkVUUlk7DQogCXNwcC0+c3BwX3BhcmFtcyA9IGh0b25sKGZjcF9w YXJtIHwgRkNQX1NQUEZfVEFSR19GQ04pOw0KIAlyZXR1cm4gRkNfU1BQX1JFU1BfQUNLOw0KKw0K K25vdF90YXJnZXQ6DQorCWZjcF9wYXJtID0gbnRvaGwoc3BwLT5zcHBfcGFyYW1zKTsNCisJZmNw X3Bhcm0gJj0gfkZDUF9TUFBGX1RBUkdfRkNOOw0KKwlzcHAtPnNwcF9wYXJhbXMgPSBodG9ubChm Y3BfcGFybSk7DQorCXJldHVybiAwOw0KIH0NCiANCiAvKioNCmRpZmYgLS1naXQgYS9kcml2ZXJz L3R0eS9zZXJpYWwvODI1MC5jIGIvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAuYw0KaW5kZXggNzA1 ODViNi4uM2ZkYjgyZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLmMNCisr KyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLmMNCkBAIC0zMTYsNiArMzE2LDE1IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgc2VyaWFsODI1MF9jb25maWcgdWFydF9jb25maWdbXSA9IHsNCiAJCS5m Y3IJCT0gVUFSVF9GQ1JfRU5BQkxFX0ZJRk8gfCBVQVJUX0ZDUl9SX1RSSUdfMTAsDQogCQkuZmxh Z3MJCT0gVUFSVF9DQVBfRklGTyB8IFVBUlRfQ0FQX0FGRSB8IFVBUlRfQ0FQX0VGUiwNCiAJfSwN CisJW1BPUlRfQlJDTV9UUlVNQU5BR0VdID0gew0KKwkJLm5hbWUJCT0gIlRydU1hbmFnZSIsDQor CQkuZmlmb19zaXplCT0gMSwNCisJCS50eF9sb2Fkc3oJPSAxMDI0LA0KKwkJLmZsYWdzCQk9IFVB UlRfQ0FQX0hGSUZPLA0KKwl9LA0KKwlbUE9SVF84MjUwX0NJUl0gPSB7DQorCQkubmFtZQkJPSAi Q0lSIHBvcnQiDQorCX0NCiB9Ow0KIA0KICNpZiBkZWZpbmVkKENPTkZJR19NSVBTX0FMQ0hFTVkp DQpAQCAtMTUxMSw2ICsxNTIwLDExIEBAIHN0YXRpYyB2b2lkIHRyYW5zbWl0X2NoYXJzKHN0cnVj dCB1YXJ0XzgyNTBfcG9ydCAqdXApDQogCQl1cC0+cG9ydC5pY291bnQudHgrKzsNCiAJCWlmICh1 YXJ0X2NpcmNfZW1wdHkoeG1pdCkpDQogCQkJYnJlYWs7DQorCQlpZiAodXAtPmNhcGFiaWxpdGll cyAmIFVBUlRfQ0FQX0hGSUZPKSB7DQorCQkJaWYgKChzZXJpYWxfaW4odXAsIFVBUlRfTFNSKSAm IEJPVEhfRU1QVFkpICE9DQorCQkJICAgIEJPVEhfRU1QVFkpDQorCQkJCWJyZWFrOw0KKwkJfQ0K IAl9IHdoaWxlICgtLWNvdW50ID4gMCk7DQogDQogCWlmICh1YXJ0X2NpcmNfY2hhcnNfcGVuZGlu Zyh4bWl0KSA8IFdBS0VVUF9DSEFSUykNCkBAIC0xOTg0LDYgKzE5OTgsOSBAQCBzdGF0aWMgaW50 IHNlcmlhbDgyNTBfc3RhcnR1cChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQ0KIAl1bnNpZ25lZCBj aGFyIGxzciwgaWlyOw0KIAlpbnQgcmV0dmFsOw0KIA0KKwlpZiAocG9ydC0+dHlwZSA9PSBQT1JU XzgyNTBfQ0lSKQ0KKwkJcmV0dXJuIC1FTk9ERVY7DQorDQogCXVwLT5wb3J0LmZpZm9zaXplID0g dWFydF9jb25maWdbdXAtPnBvcnQudHlwZV0uZmlmb19zaXplOw0KIAl1cC0+dHhfbG9hZHN6ID0g dWFydF9jb25maWdbdXAtPnBvcnQudHlwZV0udHhfbG9hZHN6Ow0KIAl1cC0+Y2FwYWJpbGl0aWVz ID0gdWFydF9jb25maWdbdXAtPnBvcnQudHlwZV0uZmxhZ3M7DQpAQCAtMjYyOCw3ICsyNjQ1LDEw IEBAIHN0YXRpYyBpbnQgc2VyaWFsODI1MF9yZXF1ZXN0X3BvcnQoc3RydWN0IHVhcnRfcG9ydCAq cG9ydCkNCiB7DQogCXN0cnVjdCB1YXJ0XzgyNTBfcG9ydCAqdXAgPQ0KIAkJY29udGFpbmVyX29m KHBvcnQsIHN0cnVjdCB1YXJ0XzgyNTBfcG9ydCwgcG9ydCk7DQotCWludCByZXQgPSAwOw0KKwlp bnQgcmV0Ow0KKw0KKwlpZiAocG9ydC0+dHlwZSA9PSBQT1JUXzgyNTBfQ0lSKQ0KKwkJcmV0dXJu IC1FTk9ERVY7DQogDQogCXJldCA9IHNlcmlhbDgyNTBfcmVxdWVzdF9zdGRfcmVzb3VyY2UodXAp Ow0KIAlpZiAocmV0ID09IDAgJiYgdXAtPnBvcnQudHlwZSA9PSBQT1JUX1JTQSkgew0KQEAgLTI2 NDcsNiArMjY2Nyw5IEBAIHN0YXRpYyB2b2lkIHNlcmlhbDgyNTBfY29uZmlnX3BvcnQoc3RydWN0 IHVhcnRfcG9ydCAqcG9ydCwgaW50IGZsYWdzKQ0KIAlpbnQgcHJvYmVmbGFncyA9IFBST0JFX0FO WTsNCiAJaW50IHJldDsNCiANCisJaWYgKHBvcnQtPnR5cGUgPT0gUE9SVF84MjUwX0NJUikNCisJ CXJldHVybjsNCisNCiAJLyoNCiAJICogRmluZCB0aGUgcmVnaW9uIHRoYXQgd2UgY2FuIHByb2Jl IGZvci4gIFRoaXMgaW4gdHVybg0KIAkgKiB0ZWxscyB1cyB3aGV0aGVyIHdlIGNhbiBwcm9iZSBm b3IgdGhlIHR5cGUgb2YgcG9ydC4NCkBAIC0zMjE1LDcgKzMyMzgsNyBAQCBpbnQgc2VyaWFsODI1 MF9yZWdpc3Rlcl9wb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpDQogCW11dGV4X2xvY2soJnNl cmlhbF9tdXRleCk7DQogDQogCXVhcnQgPSBzZXJpYWw4MjUwX2ZpbmRfbWF0Y2hfb3JfdW51c2Vk KHBvcnQpOw0KLQlpZiAodWFydCkgew0KKwlpZiAodWFydCAmJiB1YXJ0LT5wb3J0LnR5cGUgIT0g UE9SVF84MjUwX0NJUikgew0KIAkJdWFydF9yZW1vdmVfb25lX3BvcnQoJnNlcmlhbDgyNTBfcmVn LCAmdWFydC0+cG9ydCk7DQogDQogCQl1YXJ0LT5wb3J0LmlvYmFzZSAgICAgICA9IHBvcnQtPmlv YmFzZTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC5oIGIvZHJpdmVycy90 dHkvc2VyaWFsLzgyNTAuaA0KaW5kZXggNmVkZjRhNi4uOTAyYWRjZCAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvdHR5L3NlcmlhbC84MjUwLmgNCisrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLmgN CkBAIC00Myw2ICs0Myw3IEBAIHN0cnVjdCBzZXJpYWw4MjUwX2NvbmZpZyB7DQogI2RlZmluZSBV QVJUX0NBUF9BRkUJKDEgPDwgMTEpCS8qIE1DUi1iYXNlZCBodyBmbG93IGNvbnRyb2wgKi8NCiAj ZGVmaW5lIFVBUlRfQ0FQX1VVRQkoMSA8PCAxMikJLyogVUFSVCBuZWVkcyBJRVIgYml0IDYgc2V0 IChYc2NhbGUpICovDQogI2RlZmluZSBVQVJUX0NBUF9SVE9JRQkoMSA8PCAxMykJLyogVUFSVCBu ZWVkcyBJRVIgYml0IDQgc2V0IChYc2NhbGUsIFRlZ3JhKSAqLw0KKyNkZWZpbmUgVUFSVF9DQVBf SEZJRk8JKDEgPDwgMTQpCS8qIFVBUlQgaGFzIGEgImhpZGRlbiIgRklGTyAqLw0KIA0KICNkZWZp bmUgVUFSVF9CVUdfUVVPVAkoMSA8PCAwKQkvKiBVQVJUIGhhcyBidWdneSBxdW90IExTQiAqLw0K ICNkZWZpbmUgVUFSVF9CVUdfVFhFTgkoMSA8PCAxKQkvKiBVQVJUIGhhcyBidWdneSBUWCBJSVIg c3RhdHVzICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsLzgyNTBfZHcuYyBiL2Ry aXZlcnMvdHR5L3NlcmlhbC84MjUwX2R3LmMNCmluZGV4IGJmMWZiYTYuLmI2Mjc4YzEgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MF9kdy5jDQorKysgYi9kcml2ZXJzL3R0eS9z ZXJpYWwvODI1MF9kdy5jDQpAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgaW50IGR3ODI1MF9oYW5k bGVfaXJxKHN0cnVjdCB1YXJ0X3BvcnQgKnApDQogCX0gZWxzZSBpZiAoKGlpciAmIFVBUlRfSUlS X0JVU1kpID09IFVBUlRfSUlSX0JVU1kpIHsNCiAJCS8qIENsZWFyIHRoZSBVU1IgYW5kIHdyaXRl IHRoZSBMQ1IgYWdhaW4uICovDQogCQkodm9pZClwLT5zZXJpYWxfaW4ocCwgVUFSVF9VU1IpOw0K LQkJcC0+c2VyaWFsX291dChwLCBkLT5sYXN0X2xjciwgVUFSVF9MQ1IpOw0KKwkJcC0+c2VyaWFs X291dChwLCBVQVJUX0xDUiwgZC0+bGFzdF9sY3IpOw0KIA0KIAkJcmV0dXJuIDE7DQogCX0NCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MF9wY2kuYyBiL2RyaXZlcnMvdHR5L3Nl cmlhbC84MjUwX3BjaS5jDQppbmRleCBlN2Q4MmMxLi5hNzUzOTU2IDEwMDY0NA0KLS0tIGEvZHJp dmVycy90dHkvc2VyaWFsLzgyNTBfcGNpLmMNCisrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUw X3BjaS5jDQpAQCAtMTA3Nyw2ICsxMDc3LDE4IEBAIHBjaV9vbWVnYXBjaV9zZXR1cChzdHJ1Y3Qg c2VyaWFsX3ByaXZhdGUgKnByaXYsDQogCXJldHVybiBzZXR1cF9wb3J0KHByaXYsIHBvcnQsIDIs IGlkeCAqIDgsIDApOw0KIH0NCiANCitzdGF0aWMgaW50DQorcGNpX2JyY21fdHJ1bWFuYWdlX3Nl dHVwKHN0cnVjdCBzZXJpYWxfcHJpdmF0ZSAqcHJpdiwNCisJCQkgY29uc3Qgc3RydWN0IHBjaXNl cmlhbF9ib2FyZCAqYm9hcmQsDQorCQkJIHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBpZHgp DQorew0KKwlpbnQgcmV0ID0gcGNpX2RlZmF1bHRfc2V0dXAocHJpdiwgYm9hcmQsIHBvcnQsIGlk eCk7DQorDQorCXBvcnQtPnR5cGUgPSBQT1JUX0JSQ01fVFJVTUFOQUdFOw0KKwlwb3J0LT5mbGFn cyA9IChwb3J0LT5mbGFncyB8IFVQRl9GSVhFRF9QT1JUIHwgVVBGX0ZJWEVEX1RZUEUpOw0KKwly ZXR1cm4gcmV0Ow0KK30NCisNCiBzdGF0aWMgaW50IHNraXBfdHhfZW5fc2V0dXAoc3RydWN0IHNl cmlhbF9wcml2YXRlICpwcml2LA0KIAkJCWNvbnN0IHN0cnVjdCBwY2lzZXJpYWxfYm9hcmQgKmJv YXJkLA0KIAkJCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBpZHgpDQpAQCAtMTEzOCw2ICsx MTUwLDcgQEAgcGNpX3hyMTdjMTU0X3NldHVwKHN0cnVjdCBzZXJpYWxfcHJpdmF0ZSAqcHJpdiwN CiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfT1hTRU1JXzE2UENJOTU4CTB4OTUzOA0KICNkZWZpbmUg UENJRV9ERVZJQ0VfSURfTkVPXzJfT1hfSUJNCTB4MDBGNg0KICNkZWZpbmUgUENJX0RFVklDRV9J RF9QTFhfQ1JPTllYX09NRUdBCTB4YzAwMQ0KKyNkZWZpbmUgUENJX0RFVklDRV9JRF9CUk9BRENP TV9UUlVNQU5BR0UgMHgxNjBhDQogDQogLyogVW5rbm93biB2ZW5kb3JzL2NhcmRzIC0gdGhpcyBz aG91bGQgbm90IGJlIGluIGxpbnV4L3BjaV9pZHMuaCAqLw0KICNkZWZpbmUgUENJX1NVQkRFVklD RV9JRF9VTktOT1dOXzB4MTU4NAkweDE1ODQNCkBAIC0xNjcyLDYgKzE2ODUsMTcgQEAgc3RhdGlj IHN0cnVjdCBwY2lfc2VyaWFsX3F1aXJrIHBjaV9zZXJpYWxfcXVpcmtzW10gX19yZWZkYXRhID0g ew0KIAkJLnNldHVwCQk9IHBjaV9vbWVnYXBjaV9zZXR1cCwNCiAJIH0sDQogCS8qDQorCSAqIEJy b2FkY29tIFRydU1hbmFnZSAoTmV0WHRyZW1lKQ0KKwkgKi8NCisJew0KKwkJLnZlbmRvcgkJPSBQ Q0lfVkVORE9SX0lEX0JST0FEQ09NLA0KKwkJLmRldmljZQkJPSBQQ0lfREVWSUNFX0lEX0JST0FE Q09NX1RSVU1BTkFHRSwNCisJCS5zdWJ2ZW5kb3IJPSBQQ0lfQU5ZX0lELA0KKwkJLnN1YmRldmlj ZQk9IFBDSV9BTllfSUQsDQorCQkuc2V0dXAJCT0gcGNpX2JyY21fdHJ1bWFuYWdlX3NldHVwLA0K Kwl9LA0KKw0KKwkvKg0KIAkgKiBEZWZhdWx0ICJtYXRjaCBldmVyeXRoaW5nIiB0ZXJtaW5hdG9y IGVudHJ5DQogCSAqLw0KIAl7DQpAQCAtMTg2MCw2ICsxODg0LDcgQEAgZW51bSBwY2lfYm9hcmRf bnVtX3Qgew0KIAlwYm5fY2U0MTAwXzFfMTE1MjAwLA0KIAlwYm5fb21lZ2FwY2ksDQogCXBibl9O RVRNT1M5OTAwXzJzXzExNTIwMCwNCisJcGJuX2JyY21fdHJ1bWFuYWdlLA0KIH07DQogDQogLyoN CkBAIC0yNTY2LDYgKzI1OTEsMTIgQEAgc3RhdGljIHN0cnVjdCBwY2lzZXJpYWxfYm9hcmQgcGNp X2JvYXJkc1tdIF9fZGV2aW5pdGRhdGEgPSB7DQogCQkubnVtX3BvcnRzCT0gMiwNCiAJCS5iYXNl X2JhdWQJPSAxMTUyMDAsDQogCX0sDQorCVtwYm5fYnJjbV90cnVtYW5hZ2VdID0gew0KKwkJLmZs YWdzCQk9IEZMX0JBU0UwLA0KKwkJLm51bV9wb3J0cwk9IDEsDQorCQkucmVnX3NoaWZ0CT0gMiwN CisJCS5iYXNlX2JhdWQJPSAxMTUyMDAsDQorCX0sDQogfTsNCiANCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IHBjaV9kZXZpY2VfaWQgc29mdG1vZGVtX2JsYWNrbGlzdFtdID0gew0KQEAgLTQxMDgsNiAr NDEzOSwxMyBAQCBzdGF0aWMgc3RydWN0IHBjaV9kZXZpY2VfaWQgc2VyaWFsX3BjaV90YmxbXSA9 IHsNCiAJCXBibl9vbWVnYXBjaSB9LA0KIA0KIAkvKg0KKwkgKiBCcm9hZGNvbSBUcnVNYW5hZ2UN CisJICovDQorCXsJUENJX1ZFTkRPUl9JRF9CUk9BRENPTSwgUENJX0RFVklDRV9JRF9CUk9BRENP TV9UUlVNQU5BR0UsDQorCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLA0KKwkJcGJuX2Jy Y21fdHJ1bWFuYWdlIH0sDQorDQorCS8qDQogCSAqIFRoZXNlIGVudHJpZXMgbWF0Y2ggZGV2aWNl cyB3aXRoIGNsYXNzIENPTU1VTklDQVRJT05fU0VSSUFMLA0KIAkgKiBDT01NVU5JQ0FUSU9OX01P REVNIG9yIENPTU1VTklDQVRJT05fTVVMVElTRVJJQUwNCiAJICovDQpkaWZmIC0tZ2l0IGEvZHJp dmVycy90dHkvc2VyaWFsLzgyNTBfcG5wLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MF9wbnAu Yw0KaW5kZXggYTJmMjM2NS4uMmUwNmNlMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdHR5L3Nlcmlh bC84MjUwX3BucC5jDQorKysgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MF9wbnAuYw0KQEAgLTI1 LDcgKzI1LDcgQEANCiAjaW5jbHVkZSAiODI1MC5oIg0KIA0KICNkZWZpbmUgVU5LTk9XTl9ERVYg MHgzMDAwDQotDQorI2RlZmluZSBDSVJfUE9SVAkweDA4MDANCiANCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IHBucF9kZXZpY2VfaWQgcG5wX2Rldl90YWJsZVtdID0gew0KIAkvKiBBcmNodGVrIEFtZXJp Y2EgQ29ycC4gKi8NCkBAIC0zNjIsNiArMzYyLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwbnBf ZGV2aWNlX2lkIHBucF9kZXZfdGFibGVbXSA9IHsNCiAJewkiUE5QQ1hYWCIsCQlVTktOT1dOX0RF Vgl9LA0KIAkvKiBNb3JlIHVua25vd24gUG5QIG1vZGVtcyAqLw0KIAl7CSJQTlBEWFhYIiwJCVVO S05PV05fREVWCX0sDQorCS8qIFdpbmJvbmQgQ0lSIHBvcnQsIHNob3VsZCBub3QgYmUgcHJvYmVk LiBXZSBzaG91bGQga2VlcCB0cmFjaw0KKwkgICBvZiBpdCB0byBwcmV2ZW50IHRoZSBsZWdhY3kg c2VyaWFsIGRyaXZlciBmcm9tIHByb2JpbmcgaXQgKi8NCisJewkiV0VDMTAyMiIsCQlDSVJfUE9S VAl9LA0KIAl7CSIiLAkJCTAJfQ0KIH07DQogDQpAQCAtNDA5LDcgKzQxMiw3IEBAIHN0YXRpYyBp bnQgX19kZXZpbml0IGNoZWNrX3Jlc291cmNlcyhzdHJ1Y3QgcG5wX2RldiAqZGV2KQ0KICAqIFBu UCBtb2RlbXMsIGFsdGVybmF0aXZlbHkgd2UgbXVzdCBoYXJkY29kZSBhbGwgbW9kZW1zIGluIHBu cF9kZXZpY2VzW10NCiAgKiB0YWJsZS4NCiAgKi8NCi1zdGF0aWMgaW50IF9fZGV2aW5pdCBzZXJp YWxfcG5wX2d1ZXNzX2JvYXJkKHN0cnVjdCBwbnBfZGV2ICpkZXYsIGludCAqZmxhZ3MpDQorc3Rh dGljIGludCBfX2RldmluaXQgc2VyaWFsX3BucF9ndWVzc19ib2FyZChzdHJ1Y3QgcG5wX2RldiAq ZGV2KQ0KIHsNCiAJaWYgKCEoY2hlY2tfbmFtZShwbnBfZGV2X25hbWUoZGV2KSkgfHwNCiAJCShk ZXYtPmNhcmQgJiYgY2hlY2tfbmFtZShkZXYtPmNhcmQtPm5hbWUpKSkpDQpAQCAtNDI4LDcgKzQz MSw3IEBAIHNlcmlhbF9wbnBfcHJvYmUoc3RydWN0IHBucF9kZXYgKmRldiwgY29uc3Qgc3RydWN0 IHBucF9kZXZpY2VfaWQgKmRldl9pZCkNCiAJaW50IHJldCwgbGluZSwgZmxhZ3MgPSBkZXZfaWQt PmRyaXZlcl9kYXRhOw0KIA0KIAlpZiAoZmxhZ3MgJiBVTktOT1dOX0RFVikgew0KLQkJcmV0ID0g c2VyaWFsX3BucF9ndWVzc19ib2FyZChkZXYsICZmbGFncyk7DQorCQlyZXQgPSBzZXJpYWxfcG5w X2d1ZXNzX2JvYXJkKGRldik7DQogCQlpZiAocmV0IDwgMCkNCiAJCQlyZXR1cm4gcmV0Ow0KIAl9 DQpAQCAtNDM2LDcgKzQzOSwxMCBAQCBzZXJpYWxfcG5wX3Byb2JlKHN0cnVjdCBwbnBfZGV2ICpk ZXYsIGNvbnN0IHN0cnVjdCBwbnBfZGV2aWNlX2lkICpkZXZfaWQpDQogCW1lbXNldCgmcG9ydCwg MCwgc2l6ZW9mKHN0cnVjdCB1YXJ0X3BvcnQpKTsNCiAJaWYgKHBucF9pcnFfdmFsaWQoZGV2LCAw KSkNCiAJCXBvcnQuaXJxID0gcG5wX2lycShkZXYsIDApOw0KLQlpZiAocG5wX3BvcnRfdmFsaWQo ZGV2LCAwKSkgew0KKwlpZiAoKGZsYWdzICYgQ0lSX1BPUlQpICYmIHBucF9wb3J0X3ZhbGlkKGRl diwgMikpIHsNCisJCXBvcnQuaW9iYXNlID0gcG5wX3BvcnRfc3RhcnQoZGV2LCAyKTsNCisJCXBv cnQuaW90eXBlID0gVVBJT19QT1JUOw0KKwl9IGVsc2UgaWYgKHBucF9wb3J0X3ZhbGlkKGRldiwg MCkpIHsNCiAJCXBvcnQuaW9iYXNlID0gcG5wX3BvcnRfc3RhcnQoZGV2LCAwKTsNCiAJCXBvcnQu aW90eXBlID0gVVBJT19QT1JUOw0KIAl9IGVsc2UgaWYgKHBucF9tZW1fdmFsaWQoZGV2LCAwKSkg ew0KQEAgLTQ1MSw2ICs0NTcsMTAgQEAgc2VyaWFsX3BucF9wcm9iZShzdHJ1Y3QgcG5wX2RldiAq ZGV2LCBjb25zdCBzdHJ1Y3QgcG5wX2RldmljZV9pZCAqZGV2X2lkKQ0KIAkJIlNldHVwIFBOUCBw b3J0OiBwb3J0ICV4LCBtZW0gMHglbHgsIGlycSAlZCwgdHlwZSAlZFxuIiwNCiAJCSAgICAgICBw b3J0LmlvYmFzZSwgcG9ydC5tYXBiYXNlLCBwb3J0LmlycSwgcG9ydC5pb3R5cGUpOw0KICNlbmRp Zg0KKwlpZiAoZmxhZ3MgJiBDSVJfUE9SVCkgew0KKwkJcG9ydC5mbGFncyB8PSBVUEZfRklYRURf UE9SVCB8IFVQRl9GSVhFRF9UWVBFOw0KKwkJcG9ydC50eXBlID0gUE9SVF84MjUwX0NJUjsNCisJ fQ0KIA0KIAlwb3J0LmZsYWdzIHw9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORjsN CiAJaWYgKHBucF9pcnFfZmxhZ3MoZGV2LCAwKSAmIElPUkVTT1VSQ0VfSVJRX1NIQVJFQUJMRSkN CkBAIC00NTksNyArNDY5LDcgQEAgc2VyaWFsX3BucF9wcm9iZShzdHJ1Y3QgcG5wX2RldiAqZGV2 LCBjb25zdCBzdHJ1Y3QgcG5wX2RldmljZV9pZCAqZGV2X2lkKQ0KIAlwb3J0LmRldiA9ICZkZXYt PmRldjsNCiANCiAJbGluZSA9IHNlcmlhbDgyNTBfcmVnaXN0ZXJfcG9ydCgmcG9ydCk7DQotCWlm IChsaW5lIDwgMCkNCisJaWYgKGxpbmUgPCAwIHx8IChmbGFncyAmIENJUl9QT1JUKSkNCiAJCXJl dHVybiAtRU5PREVWOw0KIA0KIAlwbnBfc2V0X2RydmRhdGEoZGV2LCAodm9pZCAqKSgobG9uZyls aW5lICsgMSkpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC9pZng2eDYwLmMgYi9k cml2ZXJzL3R0eS9zZXJpYWwvaWZ4Nng2MC5jDQppbmRleCA0MjY0MzRlLi5hNmE2Nzc3IDEwMDY0 NA0KLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL2lmeDZ4NjAuYw0KKysrIGIvZHJpdmVycy90dHkv c2VyaWFsL2lmeDZ4NjAuYw0KQEAgLTU1Miw2ICs1NTIsNyBAQCBzdGF0aWMgdm9pZCBpZnhfcG9y dF9zaHV0ZG93bihzdHJ1Y3QgdHR5X3BvcnQgKnBvcnQpDQogCQljb250YWluZXJfb2YocG9ydCwg c3RydWN0IGlmeF9zcGlfZGV2aWNlLCB0dHlfcG9ydCk7DQogDQogCW1yZHlfc2V0X2xvdyhpZnhf ZGV2KTsNCisJZGVsX3RpbWVyKCZpZnhfZGV2LT5zcGlfdGltZXIpOw0KIAljbGVhcl9iaXQoSUZY X1NQSV9TVEFURV9USU1FUl9QRU5ESU5HLCAmaWZ4X2Rldi0+ZmxhZ3MpOw0KIAl0YXNrbGV0X2tp bGwoJmlmeF9kZXYtPmlvX3dvcmtfdGFza2xldCk7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv dXNiL2NsYXNzL2NkYy1hY20uYyBiL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYw0KaW5kZXgg ZGY3ZjE1ZC4uMGNkZmYzOCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20u Yw0KKysrIGIvZHJpdmVycy91c2IvY2xhc3MvY2RjLWFjbS5jDQpAQCAtMTUwOSw2ICsxNTA5LDkg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGFjbV9pZHNbXSA9IHsNCiAJeyBV U0JfREVWSUNFKDB4MDU3MiwgMHgxMzQwKSwgLyogQ29uZXhhbnQgQ1g5MzAxMC0yeCBVQ014eCAq Lw0KIAkuZHJpdmVyX2luZm8gPSBOT19VTklPTl9OT1JNQUwsDQogCX0sDQorCXsgVVNCX0RFVklD RSgweDA1ZjksIDB4NDAwMiksIC8qIFBTQyBTY2FubmluZywgTWFnZWxsYW4gODAwaSAqLw0KKwku ZHJpdmVyX2luZm8gPSBOT19VTklPTl9OT1JNQUwsDQorCX0sDQogCXsgVVNCX0RFVklDRSgweDFi YmIsIDB4MDAwMyksIC8qIEFsY2F0ZWwgT1QtSTY1MCAqLw0KIAkuZHJpdmVyX2luZm8gPSBOT19V TklPTl9OT1JNQUwsIC8qIHJlcG9ydHMgemVybyBsZW5ndGggZGVzY3JpcHRvciAqLw0KIAl9LA0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMgYi9kcml2ZXJzL3VzYi9jb3JlL2h1 Yi5jDQppbmRleCBhOWE3NGQyLi4wZmY4ZTlhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvY29y ZS9odWIuYw0KKysrIGIvZHJpdmVycy91c2IvY29yZS9odWIuYw0KQEAgLTYxOSw2ICs2MTksNjAg QEAgc3RhdGljIGludCBodWJfaHViX3N0YXR1cyhzdHJ1Y3QgdXNiX2h1YiAqaHViLA0KIAlyZXR1 cm4gcmV0Ow0KIH0NCiANCitzdGF0aWMgaW50IGh1Yl9zZXRfcG9ydF9saW5rX3N0YXRlKHN0cnVj dCB1c2JfaHViICpodWIsIGludCBwb3J0MSwNCisJCQl1bnNpZ25lZCBpbnQgbGlua19zdGF0dXMp DQorew0KKwlyZXR1cm4gc2V0X3BvcnRfZmVhdHVyZShodWItPmhkZXYsDQorCQkJcG9ydDEgfCAo bGlua19zdGF0dXMgPDwgMyksDQorCQkJVVNCX1BPUlRfRkVBVF9MSU5LX1NUQVRFKTsNCit9DQor DQorLyoNCisgKiBJZiBVU0IgMy4wIHBvcnRzIGFyZSBwbGFjZWQgaW50byB0aGUgRGlzYWJsZWQg c3RhdGUsIHRoZXkgd2lsbCBubyBsb25nZXINCisgKiBkZXRlY3QgYW55IGRldmljZSBjb25uZWN0 cyBvciBkaXNjb25uZWN0cy4gIFRoaXMgaXMgZ2VuZXJhbGx5IG5vdCB3aGF0IHRoZQ0KKyAqIFVT QiBjb3JlIHdhbnRzLCBzaW5jZSBpdCBleHBlY3RzIGEgZGlzYWJsZWQgcG9ydCB0byBwcm9kdWNl IGEgcG9ydCBzdGF0dXMNCisgKiBjaGFuZ2UgZXZlbnQgd2hlbiBhIG5ldyBkZXZpY2UgY29ubmVj dHMuDQorICoNCisgKiBJbnN0ZWFkLCBzZXQgdGhlIGxpbmsgc3RhdGUgdG8gRGlzYWJsZWQsIHdh aXQgZm9yIHRoZSBsaW5rIHRvIHNldHRsZSBpbnRvDQorICogdGhhdCBzdGF0ZSwgY2xlYXIgYW55 IGNoYW5nZSBiaXRzLCBhbmQgdGhlbiBwdXQgdGhlIHBvcnQgaW50byB0aGUgUnhEZXRlY3QNCisg KiBzdGF0ZS4NCisgKi8NCitzdGF0aWMgaW50IGh1Yl91c2IzX3BvcnRfZGlzYWJsZShzdHJ1Y3Qg dXNiX2h1YiAqaHViLCBpbnQgcG9ydDEpDQorew0KKwlpbnQgcmV0Ow0KKwlpbnQgdG90YWxfdGlt ZTsNCisJdTE2IHBvcnRjaGFuZ2UsIHBvcnRzdGF0dXM7DQorDQorCWlmICghaHViX2lzX3N1cGVy c3BlZWQoaHViLT5oZGV2KSkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwlyZXQgPSBodWJfc2V0 X3BvcnRfbGlua19zdGF0ZShodWIsIHBvcnQxLCBVU0JfU1NfUE9SVF9MU19TU19ESVNBQkxFRCk7 DQorCWlmIChyZXQpIHsNCisJCWRldl9lcnIoaHViLT5pbnRmZGV2LCAiY2Fubm90IGRpc2FibGUg cG9ydCAlZCAoZXJyID0gJWQpXG4iLA0KKwkJCQlwb3J0MSwgcmV0KTsNCisJCXJldHVybiByZXQ7 DQorCX0NCisNCisJLyogV2FpdCBmb3IgdGhlIGxpbmsgdG8gZW50ZXIgdGhlIGRpc2FibGVkIHN0 YXRlLiAqLw0KKwlmb3IgKHRvdGFsX3RpbWUgPSAwOyA7IHRvdGFsX3RpbWUgKz0gSFVCX0RFQk9V TkNFX1NURVApIHsNCisJCXJldCA9IGh1Yl9wb3J0X3N0YXR1cyhodWIsIHBvcnQxLCAmcG9ydHN0 YXR1cywgJnBvcnRjaGFuZ2UpOw0KKwkJaWYgKHJldCA8IDApDQorCQkJcmV0dXJuIHJldDsNCisN CisJCWlmICgocG9ydHN0YXR1cyAmIFVTQl9QT1JUX1NUQVRfTElOS19TVEFURSkgPT0NCisJCQkJ VVNCX1NTX1BPUlRfTFNfU1NfRElTQUJMRUQpDQorCQkJYnJlYWs7DQorCQlpZiAodG90YWxfdGlt ZSA+PSBIVUJfREVCT1VOQ0VfVElNRU9VVCkNCisJCQlicmVhazsNCisJCW1zbGVlcChIVUJfREVC T1VOQ0VfU1RFUCk7DQorCX0NCisJaWYgKHRvdGFsX3RpbWUgPj0gSFVCX0RFQk9VTkNFX1RJTUVP VVQpDQorCQlkZXZfd2FybihodWItPmludGZkZXYsICJDb3VsZCBub3QgZGlzYWJsZSBwb3J0ICVk IGFmdGVyICVkIG1zXG4iLA0KKwkJCQlwb3J0MSwgdG90YWxfdGltZSk7DQorDQorCXJldHVybiBo dWJfc2V0X3BvcnRfbGlua19zdGF0ZShodWIsIHBvcnQxLCBVU0JfU1NfUE9SVF9MU19SWF9ERVRF Q1QpOw0KK30NCisNCiBzdGF0aWMgaW50IGh1Yl9wb3J0X2Rpc2FibGUoc3RydWN0IHVzYl9odWIg Kmh1YiwgaW50IHBvcnQxLCBpbnQgc2V0X3N0YXRlKQ0KIHsNCiAJc3RydWN0IHVzYl9kZXZpY2Ug KmhkZXYgPSBodWItPmhkZXY7DQpAQCAtNjI3LDggKzY4MSwxMyBAQCBzdGF0aWMgaW50IGh1Yl9w b3J0X2Rpc2FibGUoc3RydWN0IHVzYl9odWIgKmh1YiwgaW50IHBvcnQxLCBpbnQgc2V0X3N0YXRl KQ0KIAlpZiAoaGRldi0+Y2hpbGRyZW5bcG9ydDEtMV0gJiYgc2V0X3N0YXRlKQ0KIAkJdXNiX3Nl dF9kZXZpY2Vfc3RhdGUoaGRldi0+Y2hpbGRyZW5bcG9ydDEtMV0sDQogCQkJCVVTQl9TVEFURV9O T1RBVFRBQ0hFRCk7DQotCWlmICghaHViLT5lcnJvciAmJiAhaHViX2lzX3N1cGVyc3BlZWQoaHVi LT5oZGV2KSkNCi0JCXJldCA9IGNsZWFyX3BvcnRfZmVhdHVyZShoZGV2LCBwb3J0MSwgVVNCX1BP UlRfRkVBVF9FTkFCTEUpOw0KKwlpZiAoIWh1Yi0+ZXJyb3IpIHsNCisJCWlmIChodWJfaXNfc3Vw ZXJzcGVlZChodWItPmhkZXYpKQ0KKwkJCXJldCA9IGh1Yl91c2IzX3BvcnRfZGlzYWJsZShodWIs IHBvcnQxKTsNCisJCWVsc2UNCisJCQlyZXQgPSBjbGVhcl9wb3J0X2ZlYXR1cmUoaGRldiwgcG9y dDEsDQorCQkJCQlVU0JfUE9SVF9GRUFUX0VOQUJMRSk7DQorCX0NCiAJaWYgKHJldCkNCiAJCWRl dl9lcnIoaHViLT5pbnRmZGV2LCAiY2Fubm90IGRpc2FibGUgcG9ydCAlZCAoZXJyID0gJWQpXG4i LA0KIAkJCQlwb3J0MSwgcmV0KTsNCkBAIC0yMDQ2LDcgKzIxMDUsNyBAQCBzdGF0aWMgdW5zaWdu ZWQgaHViX2lzX3d1c2Ioc3RydWN0IHVzYl9odWIgKmh1YikNCiAjZGVmaW5lIEhVQl9TSE9SVF9S RVNFVF9USU1FCTEwDQogI2RlZmluZSBIVUJfQkhfUkVTRVRfVElNRQk1MA0KICNkZWZpbmUgSFVC X0xPTkdfUkVTRVRfVElNRQkyMDANCi0jZGVmaW5lIEhVQl9SRVNFVF9USU1FT1VUCTUwMA0KKyNk ZWZpbmUgSFVCX1JFU0VUX1RJTUVPVVQJODAwDQogDQogc3RhdGljIGludCBodWJfcG9ydF9yZXNl dChzdHJ1Y3QgdXNiX2h1YiAqaHViLCBpbnQgcG9ydDEsDQogCQkJc3RydWN0IHVzYl9kZXZpY2Ug KnVkZXYsIHVuc2lnbmVkIGludCBkZWxheSwgYm9vbCB3YXJtKTsNCkBAIC0yMDgxLDYgKzIxNDAs MTAgQEAgc3RhdGljIGludCBodWJfcG9ydF93YWl0X3Jlc2V0KHN0cnVjdCB1c2JfaHViICpodWIs IGludCBwb3J0MSwNCiAJCWlmIChyZXQgPCAwKQ0KIAkJCXJldHVybiByZXQ7DQogDQorCQkvKiBU aGUgcG9ydCBzdGF0ZSBpcyB1bmtub3duIHVudGlsIHRoZSByZXNldCBjb21wbGV0ZXMuICovDQor CQlpZiAoKHBvcnRzdGF0dXMgJiBVU0JfUE9SVF9TVEFUX1JFU0VUKSkNCisJCQlnb3RvIGRlbGF5 Ow0KKw0KIAkJLyoNCiAJCSAqIFNvbWUgYnVnZ3kgZGV2aWNlcyByZXF1aXJlIGEgd2FybSByZXNl dCB0byBiZSBpc3N1ZWQgZXZlbg0KIAkJICogd2hlbiB0aGUgcG9ydCBhcHBlYXJzIG5vdCB0byBi ZSBjb25uZWN0ZWQuDQpAQCAtMjEyNiwxMSArMjE4OSw3IEBAIHN0YXRpYyBpbnQgaHViX3BvcnRf d2FpdF9yZXNldChzdHJ1Y3QgdXNiX2h1YiAqaHViLCBpbnQgcG9ydDEsDQogCQkJaWYgKChwb3J0 Y2hhbmdlICYgVVNCX1BPUlRfU1RBVF9DX0NPTk5FQ1RJT04pKQ0KIAkJCQlyZXR1cm4gLUVOT1RD T05OOw0KIA0KLQkJCS8qIGlmIHdlYHZlIGZpbmlzaGVkIHJlc2V0dGluZywgdGhlbiBicmVhayBv dXQgb2YNCi0JCQkgKiB0aGUgbG9vcA0KLQkJCSAqLw0KLQkJCWlmICghKHBvcnRzdGF0dXMgJiBV U0JfUE9SVF9TVEFUX1JFU0VUKSAmJg0KLQkJCSAgICAocG9ydHN0YXR1cyAmIFVTQl9QT1JUX1NU QVRfRU5BQkxFKSkgew0KKwkJCWlmICgocG9ydHN0YXR1cyAmIFVTQl9QT1JUX1NUQVRfRU5BQkxF KSkgew0KIAkJCQlpZiAoaHViX2lzX3d1c2IoaHViKSkNCiAJCQkJCXVkZXYtPnNwZWVkID0gVVNC X1NQRUVEX1dJUkVMRVNTOw0KIAkJCQllbHNlIGlmIChodWJfaXNfc3VwZXJzcGVlZChodWItPmhk ZXYpKQ0KQEAgLTIxNDQsMTAgKzIyMDMsMTUgQEAgc3RhdGljIGludCBodWJfcG9ydF93YWl0X3Jl c2V0KHN0cnVjdCB1c2JfaHViICpodWIsIGludCBwb3J0MSwNCiAJCQkJcmV0dXJuIDA7DQogCQkJ fQ0KIAkJfSBlbHNlIHsNCi0JCQlpZiAocG9ydGNoYW5nZSAmIFVTQl9QT1JUX1NUQVRfQ19CSF9S RVNFVCkNCi0JCQkJcmV0dXJuIDA7DQorCQkJaWYgKCEocG9ydHN0YXR1cyAmIFVTQl9QT1JUX1NU QVRfQ09OTkVDVElPTikgfHwNCisJCQkJCWh1Yl9wb3J0X3dhcm1fcmVzZXRfcmVxdWlyZWQoaHVi LA0KKwkJCQkJCXBvcnRzdGF0dXMpKQ0KKwkJCQlyZXR1cm4gLUVOT1RDT05OOw0KKw0KKwkJCXJl dHVybiAwOw0KIAkJfQ0KIA0KK2RlbGF5Og0KIAkJLyogc3dpdGNoIHRvIHRoZSBsb25nIGRlbGF5 IGFmdGVyIHR3byBzaG9ydCBkZWxheSBmYWlsdXJlcyAqLw0KIAkJaWYgKGRlbGF5X3RpbWUgPj0g MiAqIEhVQl9TSE9SVF9SRVNFVF9USU1FKQ0KIAkJCWRlbGF5ID0gSFVCX0xPTkdfUkVTRVRfVElN RTsNCkBAIC0yMTcxLDE0ICsyMjM1LDExIEBAIHN0YXRpYyB2b2lkIGh1Yl9wb3J0X2ZpbmlzaF9y ZXNldChzdHJ1Y3QgdXNiX2h1YiAqaHViLCBpbnQgcG9ydDEsDQogCQkJbXNsZWVwKDEwICsgNDAp Ow0KIAkJCXVwZGF0ZV9kZXZudW0odWRldiwgMCk7DQogCQkJaGNkID0gYnVzX3RvX2hjZCh1ZGV2 LT5idXMpOw0KLQkJCWlmIChoY2QtPmRyaXZlci0+cmVzZXRfZGV2aWNlKSB7DQotCQkJCSpzdGF0 dXMgPSBoY2QtPmRyaXZlci0+cmVzZXRfZGV2aWNlKGhjZCwgdWRldik7DQotCQkJCWlmICgqc3Rh dHVzIDwgMCkgew0KLQkJCQkJZGV2X2VycigmdWRldi0+ZGV2LCAiQ2Fubm90IHJlc2V0ICINCi0J CQkJCQkJIkhDRCBkZXZpY2Ugc3RhdGVcbiIpOw0KLQkJCQkJYnJlYWs7DQotCQkJCX0NCi0JCQl9 DQorCQkJLyogVGhlIHhIQyBtYXkgdGhpbmsgdGhlIGRldmljZSBpcyBhbHJlYWR5IHJlc2V0LA0K KwkJCSAqIHNvIGlnbm9yZSB0aGUgc3RhdHVzLg0KKwkJCSAqLw0KKwkJCWlmIChoY2QtPmRyaXZl ci0+cmVzZXRfZGV2aWNlKQ0KKwkJCQloY2QtPmRyaXZlci0+cmVzZXRfZGV2aWNlKGhjZCwgdWRl dik7DQogCQl9DQogCQkvKiBGQUxMIFRIUk9VR0ggKi8NCiAJY2FzZSAtRU5PVENPTk46DQpAQCAt MjE4NiwxNiArMjI0NywxNiBAQCBzdGF0aWMgdm9pZCBodWJfcG9ydF9maW5pc2hfcmVzZXQoc3Ry dWN0IHVzYl9odWIgKmh1YiwgaW50IHBvcnQxLA0KIAkJY2xlYXJfcG9ydF9mZWF0dXJlKGh1Yi0+ aGRldiwNCiAJCQkJcG9ydDEsIFVTQl9QT1JUX0ZFQVRfQ19SRVNFVCk7DQogCQkvKiBGSVhNRSBu ZWVkIGRpc2Nvbm5lY3QoKSBmb3IgTk9UQVRUQUNIRUQgZGV2aWNlICovDQotCQlpZiAod2FybSkg ew0KKwkJaWYgKGh1Yl9pc19zdXBlcnNwZWVkKGh1Yi0+aGRldikpIHsNCiAJCQljbGVhcl9wb3J0 X2ZlYXR1cmUoaHViLT5oZGV2LCBwb3J0MSwNCiAJCQkJCVVTQl9QT1JUX0ZFQVRfQ19CSF9QT1JU X1JFU0VUKTsNCiAJCQljbGVhcl9wb3J0X2ZlYXR1cmUoaHViLT5oZGV2LCBwb3J0MSwNCiAJCQkJ CVVTQl9QT1JUX0ZFQVRfQ19QT1JUX0xJTktfU1RBVEUpOw0KLQkJfSBlbHNlIHsNCisJCX0NCisJ CWlmICghd2FybSkNCiAJCQl1c2Jfc2V0X2RldmljZV9zdGF0ZSh1ZGV2LCAqc3RhdHVzDQogCQkJ CQk/IFVTQl9TVEFURV9OT1RBVFRBQ0hFRA0KIAkJCQkJOiBVU0JfU1RBVEVfREVGQVVMVCk7DQot CQl9DQogCQlicmVhazsNCiAJfQ0KIH0NCkBAIC0yNDY5LDcgKzI1MzAsNyBAQCBpbnQgdXNiX3Bv cnRfc3VzcGVuZChzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiwgcG1fbWVzc2FnZV90IG1zZykNCiBz dGF0aWMgaW50IGZpbmlzaF9wb3J0X3Jlc3VtZShzdHJ1Y3QgdXNiX2RldmljZSAqdWRldikNCiB7 DQogCWludAlzdGF0dXMgPSAwOw0KLQl1MTYJZGV2c3RhdHVzOw0KKwl1MTYJZGV2c3RhdHVzID0g MDsNCiANCiAJLyogY2FsbGVyIG93bnMgdGhlIHVkZXYgZGV2aWNlIGxvY2sgKi8NCiAJZGV2X2Ri ZygmdWRldi0+ZGV2LCAiJXNcbiIsDQpAQCAtMjUxNCw3ICsyNTc1LDEzIEBAIHN0YXRpYyBpbnQg ZmluaXNoX3BvcnRfcmVzdW1lKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2KQ0KIAlpZiAoc3RhdHVz KSB7DQogCQlkZXZfZGJnKCZ1ZGV2LT5kZXYsICJnb25lIGFmdGVyIHVzYiByZXN1bWU/IHN0YXR1 cyAlZFxuIiwNCiAJCQkJc3RhdHVzKTsNCi0JfSBlbHNlIGlmICh1ZGV2LT5hY3Rjb25maWcpIHsN CisJLyoNCisJICogVGhlcmUgYXJlIGEgZmV3IHF1aXJreSBkZXZpY2VzIHdoaWNoIHZpb2xhdGUg dGhlIHN0YW5kYXJkDQorCSAqIGJ5IGNsYWltaW5nIHRvIGhhdmUgcmVtb3RlIHdha2V1cCBlbmFi bGVkIGFmdGVyIGEgcmVzZXQsDQorCSAqIHdoaWNoIGNyYXNoIGlmIHRoZSBmZWF0dXJlIGlzIGNs ZWFyZWQsIGhlbmNlIGNoZWNrIGZvcg0KKwkgKiB1ZGV2LT5yZXNldF9yZXN1bWUNCisJICovDQor CX0gZWxzZSBpZiAodWRldi0+YWN0Y29uZmlnICYmICF1ZGV2LT5yZXNldF9yZXN1bWUpIHsNCiAJ CWxlMTZfdG9fY3B1cygmZGV2c3RhdHVzKTsNCiAJCWlmIChkZXZzdGF0dXMgJiAoMSA8PCBVU0Jf REVWSUNFX1JFTU9URV9XQUtFVVApKSB7DQogCQkJc3RhdHVzID0gdXNiX2NvbnRyb2xfbXNnKHVk ZXYsDQpAQCAtMzY2Myw5ICszNzMwLDE0IEBAIHN0YXRpYyB2b2lkIGh1Yl9ldmVudHModm9pZCkN CiAJCQkgKiBTUy5JbmFjdGl2ZSBzdGF0ZS4NCiAJCQkgKi8NCiAJCQlpZiAoaHViX3BvcnRfd2Fy bV9yZXNldF9yZXF1aXJlZChodWIsIHBvcnRzdGF0dXMpKSB7DQorCQkJCWludCBzdGF0dXM7DQor DQogCQkJCWRldl9kYmcoaHViX2RldiwgIndhcm0gcmVzZXQgcG9ydCAlZFxuIiwgaSk7DQotCQkJ CWh1Yl9wb3J0X3Jlc2V0KGh1YiwgaSwgTlVMTCwNCisJCQkJc3RhdHVzID0gaHViX3BvcnRfcmVz ZXQoaHViLCBpLCBOVUxMLA0KIAkJCQkJCUhVQl9CSF9SRVNFVF9USU1FLCB0cnVlKTsNCisJCQkJ aWYgKHN0YXR1cyA8IDApDQorCQkJCQlodWJfcG9ydF9kaXNhYmxlKGh1YiwgaSwgMSk7DQorCQkJ CWNvbm5lY3RfY2hhbmdlID0gMDsNCiAJCQl9DQogDQogCQkJaWYgKGNvbm5lY3RfY2hhbmdlKQ0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMgYi9kcml2ZXJzL3VzYi9jb3Jl L3F1aXJrcy5jDQppbmRleCA4YjJhOWQ4Li4zZjA4YzA5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91 c2IvY29yZS9xdWlya3MuYw0KKysrIGIvZHJpdmVycy91c2IvY29yZS9xdWlya3MuYw0KQEAgLTM4 LDYgKzM4LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHVzYl9xdWlya19s aXN0W10gPSB7DQogCS8qIENyZWF0aXZlIFNCIEF1ZGlneSAyIE5YICovDQogCXsgVVNCX0RFVklD RSgweDA0MWUsIDB4MzAyMCksIC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUg fSwNCiANCisJLyogTWljcm9zb2Z0IExpZmVDYW0tVlg3MDAgdjIuMCAqLw0KKwl7IFVTQl9ERVZJ Q0UoMHgwNDVlLCAweDA3NzApLCAuZHJpdmVyX2luZm8gPSBVU0JfUVVJUktfUkVTRVRfUkVTVU1F IH0sDQorDQogCS8qIExvZ2l0ZWNoIFdlYmNhbSBDMjAwICovDQogCXsgVVNCX0RFVklDRSgweDA0 NmQsIDB4MDgwMiksIC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwNCiAN CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9kd2MzL2dhZGdldC5jIGIvZHJpdmVycy91c2IvZHdj My9nYWRnZXQuYw0KaW5kZXggMzcwMGFhNi4uZTk2MzdmOSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv dXNiL2R3YzMvZ2FkZ2V0LmMNCisrKyBiL2RyaXZlcnMvdXNiL2R3YzMvZ2FkZ2V0LmMNCkBAIC0x Mjc3LDYgKzEyNzcsNyBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBkd2MzX2dhZGdldF9pbml0X2Vu ZHBvaW50cyhzdHJ1Y3QgZHdjMyAqZHdjKQ0KIA0KIAkJaWYgKGVwbnVtID09IDAgfHwgZXBudW0g PT0gMSkgew0KIAkJCWRlcC0+ZW5kcG9pbnQubWF4cGFja2V0ID0gNTEyOw0KKwkJCWRlcC0+ZW5k cG9pbnQubWF4YnVyc3QgPSAxOw0KIAkJCWRlcC0+ZW5kcG9pbnQub3BzID0gJmR3YzNfZ2FkZ2V0 X2VwMF9vcHM7DQogCQkJaWYgKCFlcG51bSkNCiAJCQkJZHdjLT5nYWRnZXQuZXAwID0gJmRlcC0+ ZW5kcG9pbnQ7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2R1bW15X2hjZC5jIGIv ZHJpdmVycy91c2IvZ2FkZ2V0L2R1bW15X2hjZC5jDQppbmRleCBkNTg0ZWFmLi5jNzQyM2E3IDEw MDY0NA0KLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L2R1bW15X2hjZC5jDQorKysgYi9kcml2ZXJz L3VzYi9nYWRnZXQvZHVtbXlfaGNkLmMNCkBAIC0xMjYsMTAgKzEyNiw3IEBAIHN0YXRpYyBjb25z dCBjaGFyIGVwMG5hbWUgW10gPSAiZXAwIjsNCiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgZXBf bmFtZSBbXSA9IHsNCiAJZXAwbmFtZSwJCQkJLyogZXZlcnlvbmUgaGFzIGVwMCAqLw0KIA0KLQkv KiBhY3QgbGlrZSBhIG5ldDIyODA6IGhpZ2ggc3BlZWQsIHNpeCBjb25maWd1cmFibGUgZW5kcG9p bnRzICovDQotCSJlcC1hIiwgImVwLWIiLCAiZXAtYyIsICJlcC1kIiwgImVwLWUiLCAiZXAtZiIs DQotDQotCS8qIG9yIGxpa2UgcHhhMjUwOiBmaWZ0ZWVuIGZpeGVkIGZ1bmN0aW9uIGVuZHBvaW50 cyAqLw0KKwkvKiBhY3QgbGlrZSBhIHB4YTI1MDogZmlmdGVlbiBmaXhlZCBmdW5jdGlvbiBlbmRw b2ludHMgKi8NCiAJImVwMWluLWJ1bGsiLCAiZXAyb3V0LWJ1bGsiLCAiZXAzaW4taXNvIiwgImVw NG91dC1pc28iLCAiZXA1aW4taW50IiwNCiAJImVwNmluLWJ1bGsiLCAiZXA3b3V0LWJ1bGsiLCAi ZXA4aW4taXNvIiwgImVwOW91dC1pc28iLCAiZXAxMGluLWludCIsDQogCSJlcDExaW4tYnVsayIs ICJlcDEyb3V0LWJ1bGsiLCAiZXAxM2luLWlzbyIsICJlcDE0b3V0LWlzbyIsDQpAQCAtMTM3LDYg KzEzNCwxMCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgZXBfbmFtZSBbXSA9IHsNCiANCiAJ Lyogb3IgbGlrZSBzYTExMDA6IHR3byBmaXhlZCBmdW5jdGlvbiBlbmRwb2ludHMgKi8NCiAJImVw MW91dC1idWxrIiwgImVwMmluLWJ1bGsiLA0KKw0KKwkvKiBhbmQgbm93IHNvbWUgZ2VuZXJpYyBF UHMgc28gd2UgaGF2ZSBlbm91Z2ggaW4gbXVsdGkgY29uZmlnICovDQorCSJlcDNvdXQiLCAiZXA0 aW4iLCAiZXA1b3V0IiwgImVwNm91dCIsICJlcDdpbiIsICJlcDhvdXQiLCAiZXA5aW4iLA0KKwki ZXAxMG91dCIsICJlcDExb3V0IiwgImVwMTJpbiIsICJlcDEzb3V0IiwgImVwMTRpbiIsICJlcDE1 b3V0IiwNCiB9Ow0KICNkZWZpbmUgRFVNTVlfRU5EUE9JTlRTCUFSUkFZX1NJWkUoZXBfbmFtZSkN CiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L3VoY2ktaGNkLmMgYi9kcml2ZXJzL3Vz Yi9ob3N0L3VoY2ktaGNkLmMNCmluZGV4IGM4YWUxOTkuLmI2OTg5ZTQgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL3VzYi9ob3N0L3VoY2ktaGNkLmMNCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QvdWhjaS1o Y2QuYw0KQEAgLTQ0OCw2ICs0NDgsMTAgQEAgc3RhdGljIGlycXJldHVybl90IHVoY2lfaXJxKHN0 cnVjdCB1c2JfaGNkICpoY2QpDQogCQlyZXR1cm4gSVJRX05PTkU7DQogCXVoY2lfd3JpdGV3KHVo Y2ksIHN0YXR1cywgVVNCU1RTKTsJCS8qIENsZWFyIGl0ICovDQogDQorCXNwaW5fbG9jaygmdWhj aS0+bG9jayk7DQorCWlmICh1bmxpa2VseSghdWhjaS0+aXNfaW5pdGlhbGl6ZWQpKQkvKiBub3Qg eWV0IGNvbmZpZ3VyZWQgKi8NCisJCWdvdG8gZG9uZTsNCisNCiAJaWYgKHN0YXR1cyAmIH4oVVNC U1RTX1VTQklOVCB8IFVTQlNUU19FUlJPUiB8IFVTQlNUU19SRCkpIHsNCiAJCWlmIChzdGF0dXMg JiBVU0JTVFNfSFNFKQ0KIAkJCWRldl9lcnIodWhjaV9kZXYodWhjaSksICJob3N0IHN5c3RlbSBl cnJvciwgIg0KQEAgLTQ1Niw3ICs0NjAsNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgdWhjaV9pcnEo c3RydWN0IHVzYl9oY2QgKmhjZCkNCiAJCQlkZXZfZXJyKHVoY2lfZGV2KHVoY2kpLCAiaG9zdCBj b250cm9sbGVyIHByb2Nlc3MgIg0KIAkJCQkJImVycm9yLCBzb21ldGhpbmcgYmFkIGhhcHBlbmVk IVxuIik7DQogCQlpZiAoc3RhdHVzICYgVVNCU1RTX0hDSCkgew0KLQkJCXNwaW5fbG9jaygmdWhj aS0+bG9jayk7DQogCQkJaWYgKHVoY2ktPnJoX3N0YXRlID49IFVIQ0lfUkhfUlVOTklORykgew0K IAkJCQlkZXZfZXJyKHVoY2lfZGV2KHVoY2kpLA0KIAkJCQkJImhvc3QgY29udHJvbGxlciBoYWx0 ZWQsICINCkBAIC00NzQsMTUgKzQ3NywxNSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgdWhjaV9pcnEo c3RydWN0IHVzYl9oY2QgKmhjZCkNCiAJCQkJICogcGVuZGluZyB1bmxpbmtzICovDQogCQkJCW1v ZF90aW1lcigmaGNkLT5yaF90aW1lciwgamlmZmllcyk7DQogCQkJfQ0KLQkJCXNwaW5fdW5sb2Nr KCZ1aGNpLT5sb2NrKTsNCiAJCX0NCiAJfQ0KIA0KLQlpZiAoc3RhdHVzICYgVVNCU1RTX1JEKQ0K KwlpZiAoc3RhdHVzICYgVVNCU1RTX1JEKSB7DQorCQlzcGluX3VubG9jaygmdWhjaS0+bG9jayk7 DQogCQl1c2JfaGNkX3BvbGxfcmhfc3RhdHVzKGhjZCk7DQotCWVsc2Ugew0KLQkJc3Bpbl9sb2Nr KCZ1aGNpLT5sb2NrKTsNCisJfSBlbHNlIHsNCiAJCXVoY2lfc2Nhbl9zY2hlZHVsZSh1aGNpKTsN CisgZG9uZToNCiAJCXNwaW5fdW5sb2NrKCZ1aGNpLT5sb2NrKTsNCiAJfQ0KIA0KQEAgLTY2MCw5 ICs2NjMsOSBAQCBzdGF0aWMgaW50IHVoY2lfc3RhcnQoc3RydWN0IHVzYl9oY2QgKmhjZCkNCiAJ ICovDQogCW1iKCk7DQogDQorCXNwaW5fbG9ja19pcnEoJnVoY2ktPmxvY2spOw0KIAljb25maWd1 cmVfaGModWhjaSk7DQogCXVoY2ktPmlzX2luaXRpYWxpemVkID0gMTsNCi0Jc3Bpbl9sb2NrX2ly cSgmdWhjaS0+bG9jayk7DQogCXN0YXJ0X3JoKHVoY2kpOw0KIAlzcGluX3VubG9ja19pcnEoJnVo Y2ktPmxvY2spOw0KIAlyZXR1cm4gMDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L3ho Y2ktaHViLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktaHViLmMNCmluZGV4IDk3ODg2MGIuLjI0 MTA3YTcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktaHViLmMNCisrKyBiL2Ry aXZlcnMvdXNiL2hvc3QveGhjaS1odWIuYw0KQEAgLTcyNSwxMiArNzI1LDM5IEBAIGludCB4aGNp X2h1Yl9jb250cm9sKHN0cnVjdCB1c2JfaGNkICpoY2QsIHUxNiB0eXBlUmVxLCB1MTYgd1ZhbHVl LA0KIAkJCWJyZWFrOw0KIAkJY2FzZSBVU0JfUE9SVF9GRUFUX0xJTktfU1RBVEU6DQogCQkJdGVt cCA9IHhoY2lfcmVhZGwoeGhjaSwgcG9ydF9hcnJheVt3SW5kZXhdKTsNCisNCisJCQkvKiBEaXNh YmxlIHBvcnQgKi8NCisJCQlpZiAobGlua19zdGF0ZSA9PSBVU0JfU1NfUE9SVF9MU19TU19ESVNB QkxFRCkgew0KKwkJCQl4aGNpX2RiZyh4aGNpLCAiRGlzYWJsZSBwb3J0ICVkXG4iLCB3SW5kZXgp Ow0KKwkJCQl0ZW1wID0geGhjaV9wb3J0X3N0YXRlX3RvX25ldXRyYWwodGVtcCk7DQorCQkJCS8q DQorCQkJCSAqIENsZWFyIGFsbCBjaGFuZ2UgYml0cywgc28gdGhhdCB3ZSBnZXQgYSBuZXcNCisJ CQkJICogY29ubmVjdGlvbiBldmVudC4NCisJCQkJICovDQorCQkJCXRlbXAgfD0gUE9SVF9DU0Mg fCBQT1JUX1BFQyB8IFBPUlRfV1JDIHwNCisJCQkJCVBPUlRfT0NDIHwgUE9SVF9SQyB8IFBPUlRf UExDIHwNCisJCQkJCVBPUlRfQ0VDOw0KKwkJCQl4aGNpX3dyaXRlbCh4aGNpLCB0ZW1wIHwgUE9S VF9QRSwNCisJCQkJCXBvcnRfYXJyYXlbd0luZGV4XSk7DQorCQkJCXRlbXAgPSB4aGNpX3JlYWRs KHhoY2ksIHBvcnRfYXJyYXlbd0luZGV4XSk7DQorCQkJCWJyZWFrOw0KKwkJCX0NCisNCisJCQkv KiBQdXQgbGluayBpbiBSeERldGVjdCAoZW5hYmxlIHBvcnQpICovDQorCQkJaWYgKGxpbmtfc3Rh dGUgPT0gVVNCX1NTX1BPUlRfTFNfUlhfREVURUNUKSB7DQorCQkJCXhoY2lfZGJnKHhoY2ksICJF bmFibGUgcG9ydCAlZFxuIiwgd0luZGV4KTsNCisJCQkJeGhjaV9zZXRfbGlua19zdGF0ZSh4aGNp LCBwb3J0X2FycmF5LCB3SW5kZXgsDQorCQkJCQkJbGlua19zdGF0ZSk7DQorCQkJCXRlbXAgPSB4 aGNpX3JlYWRsKHhoY2ksIHBvcnRfYXJyYXlbd0luZGV4XSk7DQorCQkJCWJyZWFrOw0KKwkJCX0N CisNCiAJCQkvKiBTb2Z0d2FyZSBzaG91bGQgbm90IGF0dGVtcHQgdG8gc2V0DQotCQkJICogcG9y dCBsaW5rIHN0YXRlIGFib3ZlICc1JyAoUnguRGV0ZWN0KSBhbmQgdGhlIHBvcnQNCisJCQkgKiBw b3J0IGxpbmsgc3RhdGUgYWJvdmUgJzMnIChVMykgYW5kIHRoZSBwb3J0DQogCQkJICogbXVzdCBi ZSBlbmFibGVkLg0KIAkJCSAqLw0KIAkJCWlmICgodGVtcCAmIFBPUlRfUEUpID09IDAgfHwNCi0J CQkJKGxpbmtfc3RhdGUgPiBVU0JfU1NfUE9SVF9MU19SWF9ERVRFQ1QpKSB7DQorCQkJCShsaW5r X3N0YXRlID4gVVNCX1NTX1BPUlRfTFNfVTMpKSB7DQogCQkJCXhoY2lfd2Fybih4aGNpLCAiQ2Fu bm90IHNldCBsaW5rIHN0YXRlLlxuIik7DQogCQkJCWdvdG8gZXJyb3I7DQogCQkJfQ0KQEAgLTg3 Nyw2ICs5MDQsNyBAQCBpbnQgeGhjaV9odWJfc3RhdHVzX2RhdGEoc3RydWN0IHVzYl9oY2QgKmhj ZCwgY2hhciAqYnVmKQ0KIAlpbnQgbWF4X3BvcnRzOw0KIAlfX2xlMzIgX19pb21lbSAqKnBvcnRf YXJyYXk7DQogCXN0cnVjdCB4aGNpX2J1c19zdGF0ZSAqYnVzX3N0YXRlOw0KKwlib29sIHJlc2V0 X2NoYW5nZSA9IGZhbHNlOw0KIA0KIAltYXhfcG9ydHMgPSB4aGNpX2dldF9wb3J0cyhoY2QsICZw b3J0X2FycmF5KTsNCiAJYnVzX3N0YXRlID0gJnhoY2ktPmJ1c19zdGF0ZVtoY2RfaW5kZXgoaGNk KV07DQpAQCAtOTAzLDYgKzkzMSwxMiBAQCBpbnQgeGhjaV9odWJfc3RhdHVzX2RhdGEoc3RydWN0 IHVzYl9oY2QgKmhjZCwgY2hhciAqYnVmKQ0KIAkJCWJ1ZlsoaSArIDEpIC8gOF0gfD0gMSA8PCAo aSArIDEpICUgODsNCiAJCQlzdGF0dXMgPSAxOw0KIAkJfQ0KKwkJaWYgKCh0ZW1wICYgUE9SVF9S QykpDQorCQkJcmVzZXRfY2hhbmdlID0gdHJ1ZTsNCisJfQ0KKwlpZiAoIXN0YXR1cyAmJiAhcmVz ZXRfY2hhbmdlKSB7DQorCQl4aGNpX2RiZyh4aGNpLCAiJXM6IHN0b3BwaW5nIHBvcnQgcG9sbGlu Zy5cbiIsIF9fZnVuY19fKTsNCisJCWNsZWFyX2JpdChIQ0RfRkxBR19QT0xMX1JILCAmaGNkLT5m bGFncyk7DQogCX0NCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmeGhjaS0+bG9jaywgZmxhZ3Mp Ow0KIAlyZXR1cm4gc3RhdHVzID8gcmV0dmFsIDogMDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Vz Yi9ob3N0L3hoY2ktbWVtLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktbWVtLmMNCmluZGV4IDU3 MTljNGQuLmVlNWVjMTEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktbWVtLmMN CisrKyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1tZW0uYw0KQEAgLTExNTIsNiArMTE1Miw4IEBA IHN0YXRpYyB1bnNpZ25lZCBpbnQgeGhjaV9taWNyb2ZyYW1lc190b19leHBvbmVudChzdHJ1Y3Qg dXNiX2RldmljZSAqdWRldiwNCiBzdGF0aWMgdW5zaWduZWQgaW50IHhoY2lfcGFyc2VfbWljcm9m cmFtZV9pbnRlcnZhbChzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiwNCiAJCXN0cnVjdCB1c2JfaG9z dF9lbmRwb2ludCAqZXApDQogew0KKwlpZiAoZXAtPmRlc2MuYkludGVydmFsID09IDApDQorCQly ZXR1cm4gMDsNCiAJcmV0dXJuIHhoY2lfbWljcm9mcmFtZXNfdG9fZXhwb25lbnQodWRldiwgZXAs DQogCQkJZXAtPmRlc2MuYkludGVydmFsLCAwLCAxNSk7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvdXNiL2hvc3QveGhjaS1yaW5nLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jDQpp bmRleCAxYmE5OGY1Li4yZWQ1OTFkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNp LXJpbmcuYw0KKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYw0KQEAgLTE2NjEsNiAr MTY2MSwxNSBAQCBjbGVhbnVwOg0KIAlpZiAoYm9ndXNfcG9ydF9zdGF0dXMpDQogCQlyZXR1cm47 DQogDQorCS8qDQorCSAqIHhIQ0kgcG9ydC1zdGF0dXMtY2hhbmdlIGV2ZW50cyBvY2N1ciB3aGVu IHRoZSAib3IiIG9mIGFsbCB0aGUNCisJICogc3RhdHVzLWNoYW5nZSBiaXRzIGluIHRoZSBwb3J0 c2MgcmVnaXN0ZXIgY2hhbmdlcyBmcm9tIDAgdG8gMS4NCisJICogTmV3IHN0YXR1cyBjaGFuZ2Vz IHdvbid0IGNhdXNlIGFuIGV2ZW50IGlmIGFueSBvdGhlciBjaGFuZ2UNCisJICogYml0cyBhcmUg c3RpbGwgc2V0LiAgV2hlbiBhbiBldmVudCBvY2N1cnMsIHN3aXRjaCBvdmVyIHRvDQorCSAqIHBv bGxpbmcgdG8gYXZvaWQgbG9zaW5nIHN0YXR1cyBjaGFuZ2VzLg0KKwkgKi8NCisJeGhjaV9kYmco eGhjaSwgIiVzOiBzdGFydGluZyBwb3J0IHBvbGxpbmcuXG4iLCBfX2Z1bmNfXyk7DQorCXNldF9i aXQoSENEX0ZMQUdfUE9MTF9SSCwgJmhjZC0+ZmxhZ3MpOw0KIAlzcGluX3VubG9jaygmeGhjaS0+ bG9jayk7DQogCS8qIFBhc3MgdGhpcyB1cCB0byB0aGUgY29yZSAqLw0KIAl1c2JfaGNkX3BvbGxf cmhfc3RhdHVzKGhjZCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLmMgYi9k cml2ZXJzL3VzYi9ob3N0L3hoY2kuYw0KaW5kZXggOWRjNTg3MC4uNTNjOGJlMSAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5jDQorKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ku Yw0KQEAgLTg3MSw2ICs4NzEsMTEgQEAgaW50IHhoY2lfc3VzcGVuZChzdHJ1Y3QgeGhjaV9oY2Qg KnhoY2kpDQogCXN0cnVjdCB1c2JfaGNkCQkqaGNkID0geGhjaV90b19oY2QoeGhjaSk7DQogCXUz MgkJCWNvbW1hbmQ7DQogDQorCS8qIERvbid0IHBvbGwgdGhlIHJvb3RodWJzIG9uIGJ1cyBzdXNw ZW5kLiAqLw0KKwl4aGNpX2RiZyh4aGNpLCAiJXM6IHN0b3BwaW5nIHBvcnQgcG9sbGluZy5cbiIs IF9fZnVuY19fKTsNCisJY2xlYXJfYml0KEhDRF9GTEFHX1BPTExfUkgsICZoY2QtPmZsYWdzKTsN CisJZGVsX3RpbWVyX3N5bmMoJmhjZC0+cmhfdGltZXIpOw0KKw0KIAlzcGluX2xvY2tfaXJxKCZ4 aGNpLT5sb2NrKTsNCiAJY2xlYXJfYml0KEhDRF9GTEFHX0hXX0FDQ0VTU0lCTEUsICZoY2QtPmZs YWdzKTsNCiAJY2xlYXJfYml0KEhDRF9GTEFHX0hXX0FDQ0VTU0lCTEUsICZ4aGNpLT5zaGFyZWRf aGNkLT5mbGFncyk7DQpAQCAtMTA1NSw2ICsxMDYwLDExIEBAIGludCB4aGNpX3Jlc3VtZShzdHJ1 Y3QgeGhjaV9oY2QgKnhoY2ksIGJvb2wgaGliZXJuYXRlZCkNCiAJaWYgKHhoY2ktPnF1aXJrcyAm IFhIQ0lfQ09NUF9NT0RFX1FVSVJLKQ0KIAkJY29tcGxpYW5jZV9tb2RlX3JlY292ZXJ5X3RpbWVy X2luaXQoeGhjaSk7DQogDQorCS8qIFJlLWVuYWJsZSBwb3J0IHBvbGxpbmcuICovDQorCXhoY2lf ZGJnKHhoY2ksICIlczogc3RhcnRpbmcgcG9ydCBwb2xsaW5nLlxuIiwgX19mdW5jX18pOw0KKwlz ZXRfYml0KEhDRF9GTEFHX1BPTExfUkgsICZoY2QtPmZsYWdzKTsNCisJdXNiX2hjZF9wb2xsX3Jo X3N0YXR1cyhoY2QpOw0KKw0KIAlyZXR1cm4gcmV0dmFsOw0KIH0NCiAjZW5kaWYJLyogQ09ORklH X1BNICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbXVzYi9tdXNiX2NvcmUuYyBiL2RyaXZl cnMvdXNiL211c2IvbXVzYl9jb3JlLmMNCmluZGV4IDkyMGYwNGUuLjY0MWNhZjggMTAwNjQ0DQot LS0gYS9kcml2ZXJzL3VzYi9tdXNiL211c2JfY29yZS5jDQorKysgYi9kcml2ZXJzL3VzYi9tdXNi L211c2JfY29yZS5jDQpAQCAtMjM3MiwxMCArMjM3Miw3IEBAIHN0YXRpYyBpbnQgX19pbml0IG11 c2JfaW5pdCh2b2lkKQ0KIAlpZiAodXNiX2Rpc2FibGVkKCkpDQogCQlyZXR1cm4gMDsNCiANCi0J cHJfaW5mbygiJXM6IHZlcnNpb24gIiBNVVNCX1ZFUlNJT04gIiwgIg0KLQkJIj9kbWE/Ig0KLQkJ IiwgIg0KLQkJIm90ZyAocGVyaXBoZXJhbCtob3N0KSIsDQorCXByX2luZm8oIiVzOiB2ZXJzaW9u ICIgTVVTQl9WRVJTSU9OICIsID9kbWE/LCBvdGcgKHBlcmlwaGVyYWwraG9zdClcbiIsDQogCQlt dXNiX2RyaXZlcl9uYW1lKTsNCiAJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9wcm9iZSgmbXVzYl9k cml2ZXIsIG11c2JfcHJvYmUpOw0KIH0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwv ZnRkaV9zaW8uYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jDQppbmRleCAzZjk4OWQ2 Li4yY2M3YzE4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMNCisr KyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jDQpAQCAtODgxLDYgKzg4MSw4IEBAIHN0 YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9jb21iaW5lZCBbXSA9IHsNCiAJeyBV U0JfREVWSUNFKEZURElfVklELCBGVERJX0RJU1RPUlRFQ19KVEFHX0xPQ0tfUElDS19QSUQpLA0K IAkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZmdGRpX2p0YWdfcXVpcmsgfSwNCiAJ eyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX0xVTUVMX1BEMTJfUElEKSB9LA0KKwkvKiBDcnVj aWJsZSBEZXZpY2VzICovDQorCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9DVF9DT01FVF9Q SUQpIH0sDQogCXsgfSwJCQkJCS8qIE9wdGlvbmFsIHBhcmFtZXRlciBlbnRyeSAqLw0KIAl7IH0J CQkJCS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovDQogfTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Vz Yi9zZXJpYWwvZnRkaV9zaW9faWRzLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW9faWRz LmgNCmluZGV4IGFlZGY2NWYuLmRkNmVkZjggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJp YWwvZnRkaV9zaW9faWRzLmgNCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMu aA0KQEAgLTEyNTksMyArMTI1OSw5IEBADQogICogQVRJIGNvbW1hbmQgb3V0cHV0OiBDaW50ZXJp b24gTUM1NWkNCiAgKi8NCiAjZGVmaW5lIEZURElfQ0lOVEVSSU9OX01DNTVJX1BJRAkweEE5NTEN CisNCisvKg0KKyAqIFByb2R1Y3Q6IENvbWV0IENhbGxlciBJRCBkZWNvZGVyDQorICogTWFudWZh Y3R1cmVyOiBDcnVjaWJsZSBUZWNobm9sb2dpZXMNCisgKi8NCisjZGVmaW5lIEZURElfQ1RfQ09N RVRfUElECTB4OGUwOA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb190aS5jIGIv ZHJpdmVycy91c2Ivc2VyaWFsL2lvX3RpLmMNCmluZGV4IDhhOTBkNTguLjNkZTc1MWQgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fdGkuYw0KKysrIGIvZHJpdmVycy91c2Ivc2Vy aWFsL2lvX3RpLmMNCkBAIC01NTgsNiArNTU4LDkgQEAgc3RhdGljIHZvaWQgY2hhc2VfcG9ydChz dHJ1Y3QgZWRnZXBvcnRfcG9ydCAqcG9ydCwgdW5zaWduZWQgbG9uZyB0aW1lb3V0LA0KIAl3YWl0 X3F1ZXVlX3Qgd2FpdDsNCiAJdW5zaWduZWQgbG9uZyBmbGFnczsNCiANCisJaWYgKCF0dHkpDQor CQlyZXR1cm47DQorDQogCWlmICghdGltZW91dCkNCiAJCXRpbWVvdXQgPSAoSFogKiBFREdFX0NM T1NJTkdfV0FJVCkvMTAwOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRp b24uYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYw0KaW5kZXggODcyODA3Yi4uOWRiM2Uy MyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYw0KKysrIGIvZHJpdmVy cy91c2Ivc2VyaWFsL29wdGlvbi5jDQpAQCAtMjg4LDYgKzI4OCw3IEBAIHN0YXRpYyB2b2lkIG9w dGlvbl9pbnN0YXRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiKTsNCiAjZGVmaW5lIEFMQ0FURUxf VkVORE9SX0lECQkJMHgxYmJiDQogI2RlZmluZSBBTENBVEVMX1BST0RVQ1RfWDA2MFNfWDIwMAkJ MHgwMDAwDQogI2RlZmluZSBBTENBVEVMX1BST0RVQ1RfWDIyMF9YNTAwRAkJMHgwMDE3DQorI2Rl ZmluZSBBTENBVEVMX1BST0RVQ1RfTDEwMFYJCQkweDAxMWUNCiANCiAjZGVmaW5lIFBJUkVMTElf VkVORE9SX0lECQkJMHgxMjY2DQogI2RlZmluZSBQSVJFTExJX1BST0RVQ1RfQzEwMF8xCQkJMHgx MDAyDQpAQCAtNDI5LDkgKzQzMCwxMiBAQCBzdGF0aWMgdm9pZCBvcHRpb25faW5zdGF0X2NhbGxi YWNrKHN0cnVjdCB1cmIgKnVyYik7DQogI2RlZmluZSBNRURJQVRFS19WRU5ET1JfSUQJCQkweDBl OGQNCiAjZGVmaW5lIE1FRElBVEVLX1BST0RVQ1RfRENfMUNPTQkJMHgwMGEwDQogI2RlZmluZSBN RURJQVRFS19QUk9EVUNUX0RDXzRDT00JCTB4MDBhNQ0KKyNkZWZpbmUgTUVESUFURUtfUFJPRFVD VF9EQ180Q09NMgkJMHgwMGE3DQogI2RlZmluZSBNRURJQVRFS19QUk9EVUNUX0RDXzVDT00JCTB4 MDBhNA0KICNkZWZpbmUgTUVESUFURUtfUFJPRFVDVF83MjA4XzFDT00JCTB4NzEwMQ0KICNkZWZp bmUgTUVESUFURUtfUFJPRFVDVF83MjA4XzJDT00JCTB4NzEwMg0KKyNkZWZpbmUgTUVESUFURUtf UFJPRFVDVF83MTAzXzJDT00JCTB4NzEwMw0KKyNkZWZpbmUgTUVESUFURUtfUFJPRFVDVF83MTA2 XzJDT00JCTB4NzEwNg0KICNkZWZpbmUgTUVESUFURUtfUFJPRFVDVF9GUF8xQ09NCQkweDAwMDMN CiAjZGVmaW5lIE1FRElBVEVLX1BST0RVQ1RfRlBfMkNPTQkJMHgwMDIzDQogI2RlZmluZSBNRURJ QVRFS19QUk9EVUNUX0ZQRENfMUNPTQkJMHgwMDQzDQpAQCAtNDQxLDYgKzQ0NSwxNCBAQCBzdGF0 aWMgdm9pZCBvcHRpb25faW5zdGF0X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYik7DQogI2RlZmlu ZSBDRUxMSUVOVF9WRU5ET1JfSUQJCQkweDI2OTINCiAjZGVmaW5lIENFTExJRU5UX1BST0RVQ1Rf TUVOMjAwCQkJMHg5MDA1DQogDQorLyogSHl1bmRhaSBQZXRhdGVsIEluYy4gcHJvZHVjdHMgKi8N CisjZGVmaW5lIFBFVEFURUxfVkVORE9SX0lECQkJMHgxZmY0DQorI2RlZmluZSBQRVRBVEVMX1BS T0RVQ1RfTlAxMFQJCQkweDYwMGUNCisNCisvKiBUUC1MSU5LIEluY29ycG9yYXRlZCBwcm9kdWN0 cyAqLw0KKyNkZWZpbmUgVFBMSU5LX1ZFTkRPUl9JRAkJCTB4MjM1Nw0KKyNkZWZpbmUgVFBMSU5L X1BST0RVQ1RfTUExODAJCQkweDAyMDENCisNCiAvKiBzb21lIGRldmljZXMgaW50ZXJmYWNlcyBu ZWVkIHNwZWNpYWwgaGFuZGxpbmcgZHVlIHRvIGEgbnVtYmVyIG9mIHJlYXNvbnMgKi8NCiBlbnVt IG9wdGlvbl9ibGFja2xpc3RfcmVhc29uIHsNCiAJCU9QVElPTl9CTEFDS0xJU1RfTk9ORSA9IDAs DQpAQCAtOTIyLDggKzkzNCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQg b3B0aW9uX2lkc1tdID0gew0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9W RU5ET1JfSUQsIDB4MDI1NCwgMHhmZiwgMHhmZiwgMHhmZikgfSwNCiAJeyBVU0JfREVWSUNFX0FO RF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDAyNTcsIDB4ZmYsIDB4ZmYsIDB4ZmYp LCAvKiBaVEUgTUY4MjEgKi8NCiAJICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5l dF9pbnRmM19ibGFja2xpc3QgfSwNCi0JeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyha VEVfVkVORE9SX0lELCAweDAyNjUsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQotCXsgVVNCX0RFVklD RV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgwMjg0LCAweGZmLCAweGZmLCAw eGZmKSB9LA0KKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQs IDB4MDI2NSwgMHhmZiwgMHhmZiwgMHhmZiksIC8qIE9OREEgTVQ4MjA1ICovDQorCSAgLmRyaXZl cl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjRfYmxhY2tsaXN0IH0sDQorCXsgVVNC X0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgwMjg0LCAweGZmLCAw eGZmLCAweGZmKSwgLyogWlRFIE1GODgwICovDQorCSAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91 bG9uZ190KSZuZXRfaW50ZjRfYmxhY2tsaXN0IH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJG QUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgwMzE3LCAweGZmLCAweGZmLCAweGZmKSB9LA0KIAl7 IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MDMyNiwgMHhm ZiwgMHhmZiwgMHhmZiksDQogCSAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZuZXRf aW50ZjRfYmxhY2tsaXN0IH0sDQpAQCAtMTE5MCw2ICsxMjA0LDggQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJICAuZHJpdmVyX2luZm8gPSAo a2VybmVsX3Vsb25nX3QpJmFsY2F0ZWxfeDIwMF9ibGFja2xpc3QNCiAJfSwNCiAJeyBVU0JfREVW SUNFKEFMQ0FURUxfVkVORE9SX0lELCBBTENBVEVMX1BST0RVQ1RfWDIyMF9YNTAwRCkgfSwNCisJ eyBVU0JfREVWSUNFKEFMQ0FURUxfVkVORE9SX0lELCBBTENBVEVMX1BST0RVQ1RfTDEwMFYpLA0K KwkgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmbmV0X2ludGY0X2JsYWNrbGlzdCB9 LA0KIAl7IFVTQl9ERVZJQ0UoQUlSUExVU19WRU5ET1JfSUQsIEFJUlBMVVNfUFJPRFVDVF9NQ0Q2 NTApIH0sDQogCXsgVVNCX0RFVklDRShUTEFZVEVDSF9WRU5ET1JfSUQsIFRMQVlURUNIX1BST0RV Q1RfVEVVODAwKSB9LA0KIAl7IFVTQl9ERVZJQ0UoTE9OR0NIRUVSX1ZFTkRPUl9JRCwgRk9VUl9H X1NZU1RFTVNfUFJPRFVDVF9XMTQpLA0KQEAgLTEyOTQsNyArMTMxMCwxNCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0gew0KIAl7IFVTQl9ERVZJQ0Vf QU5EX0lOVEVSRkFDRV9JTkZPKE1FRElBVEVLX1ZFTkRPUl9JRCwgTUVESUFURUtfUFJPRFVDVF9G UF8yQ09NLCAweDBhLCAweDAwLCAweDAwKSB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFD RV9JTkZPKE1FRElBVEVLX1ZFTkRPUl9JRCwgTUVESUFURUtfUFJPRFVDVF9GUERDXzFDT00sIDB4 MGEsIDB4MDAsIDB4MDApIH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oTUVE SUFURUtfVkVORE9SX0lELCBNRURJQVRFS19QUk9EVUNUX0ZQRENfMkNPTSwgMHgwYSwgMHgwMCwg MHgwMCkgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhNRURJQVRFS19WRU5E T1JfSUQsIE1FRElBVEVLX1BST0RVQ1RfNzEwM18yQ09NLCAweGZmLCAweDAwLCAweDAwKSB9LA0K Kwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKE1FRElBVEVLX1ZFTkRPUl9JRCwgTUVE SUFURUtfUFJPRFVDVF83MTA2XzJDT00sIDB4MDIsIDB4MDIsIDB4MDEpIH0sDQorCXsgVVNCX0RF VklDRV9BTkRfSU5URVJGQUNFX0lORk8oTUVESUFURUtfVkVORE9SX0lELCBNRURJQVRFS19QUk9E VUNUX0RDXzRDT00yLCAweGZmLCAweDAyLCAweDAxKSB9LA0KKwl7IFVTQl9ERVZJQ0VfQU5EX0lO VEVSRkFDRV9JTkZPKE1FRElBVEVLX1ZFTkRPUl9JRCwgTUVESUFURUtfUFJPRFVDVF9EQ180Q09N MiwgMHhmZiwgMHgwMCwgMHgwMCkgfSwNCiAJeyBVU0JfREVWSUNFKENFTExJRU5UX1ZFTkRPUl9J RCwgQ0VMTElFTlRfUFJPRFVDVF9NRU4yMDApIH0sDQorCXsgVVNCX0RFVklDRShQRVRBVEVMX1ZF TkRPUl9JRCwgUEVUQVRFTF9QUk9EVUNUX05QMTBUKSB9LA0KKwl7IFVTQl9ERVZJQ0UoVFBMSU5L X1ZFTkRPUl9JRCwgVFBMSU5LX1BST0RVQ1RfTUExODApLA0KKwkgIC5kcml2ZXJfaW5mbyA9IChr ZXJuZWxfdWxvbmdfdCkmbmV0X2ludGY0X2JsYWNrbGlzdCB9LA0KIAl7IH0gLyogVGVybWluYXRp bmcgZW50cnkgKi8NCiB9Ow0KIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBvcHRpb25faWRzKTsN CmRpZmYgLS1naXQgYS9mcy9jaWZzL2NpZnNfZGZzX3JlZi5jIGIvZnMvY2lmcy9jaWZzX2Rmc19y ZWYuYw0KaW5kZXggNjg3M2JiNi4uMjI2MzE0NCAxMDA2NDQNCi0tLSBhL2ZzL2NpZnMvY2lmc19k ZnNfcmVmLmMNCisrKyBiL2ZzL2NpZnMvY2lmc19kZnNfcmVmLmMNCkBAIC0yMjYsNiArMjI2LDgg QEAgY29tcG9zZV9tb3VudF9vcHRpb25zX291dDoNCiBjb21wb3NlX21vdW50X29wdGlvbnNfZXJy Og0KIAlrZnJlZShtb3VudGRhdGEpOw0KIAltb3VudGRhdGEgPSBFUlJfUFRSKHJjKTsNCisJa2Zy ZWUoKmRldm5hbWUpOw0KKwkqZGV2bmFtZSA9IE5VTEw7DQogCWdvdG8gY29tcG9zZV9tb3VudF9v cHRpb25zX291dDsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZnMvbmZzL25hbWVzcGFjZS5jIGIvZnMv bmZzL25hbWVzcGFjZS5jDQppbmRleCBhODY4NzNlLi4zMWRmNTNlIDEwMDY0NA0KLS0tIGEvZnMv bmZzL25hbWVzcGFjZS5jDQorKysgYi9mcy9uZnMvbmFtZXNwYWNlLmMNCkBAIC0yODksMTEgKzI4 OSwzMSBAQCBvdXRfbm9mcmVlOg0KIAlyZXR1cm4gbW50Ow0KIH0NCiANCitzdGF0aWMgaW50DQor bmZzX25hbWVzcGFjZV9nZXRhdHRyKHN0cnVjdCB2ZnNtb3VudCAqbW50LCBzdHJ1Y3QgZGVudHJ5 ICpkZW50cnksIHN0cnVjdCBrc3RhdCAqc3RhdCkNCit7DQorCWlmIChORlNfRkgoZGVudHJ5LT5k X2lub2RlKS0+c2l6ZSAhPSAwKQ0KKwkJcmV0dXJuIG5mc19nZXRhdHRyKG1udCwgZGVudHJ5LCBz dGF0KTsNCisJZ2VuZXJpY19maWxsYXR0cihkZW50cnktPmRfaW5vZGUsIHN0YXQpOw0KKwlyZXR1 cm4gMDsNCit9DQorDQorc3RhdGljIGludA0KK25mc19uYW1lc3BhY2Vfc2V0YXR0cihzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpYXR0ciAqYXR0cikNCit7DQorCWlmIChORlNfRkgoZGVu dHJ5LT5kX2lub2RlKS0+c2l6ZSAhPSAwKQ0KKwkJcmV0dXJuIG5mc19zZXRhdHRyKGRlbnRyeSwg YXR0cik7DQorCXJldHVybiAtRUFDQ0VTOw0KK30NCisNCiBjb25zdCBzdHJ1Y3QgaW5vZGVfb3Bl cmF0aW9ucyBuZnNfbW91bnRwb2ludF9pbm9kZV9vcGVyYXRpb25zID0gew0KIAkuZ2V0YXR0cgk9 IG5mc19nZXRhdHRyLA0KKwkuc2V0YXR0cgk9IG5mc19zZXRhdHRyLA0KIH07DQogDQogY29uc3Qg c3RydWN0IGlub2RlX29wZXJhdGlvbnMgbmZzX3JlZmVycmFsX2lub2RlX29wZXJhdGlvbnMgPSB7 DQorCS5nZXRhdHRyCT0gbmZzX25hbWVzcGFjZV9nZXRhdHRyLA0KKwkuc2V0YXR0cgk9IG5mc19u YW1lc3BhY2Vfc2V0YXR0ciwNCiB9Ow0KIA0KIHN0YXRpYyB2b2lkIG5mc19leHBpcmVfYXV0b21v dW50cyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQpkaWZmIC0tZ2l0IGEvZnMvbmZzL25mczRz dGF0ZS5jIGIvZnMvbmZzL25mczRzdGF0ZS5jDQppbmRleCAwNzM1NGI3Li5iMmUxMTM2IDEwMDY0 NA0KLS0tIGEvZnMvbmZzL25mczRzdGF0ZS5jDQorKysgYi9mcy9uZnMvbmZzNHN0YXRlLmMNCkBA IC0xNTgzLDggKzE1ODMsMTggQEAgc3RhdGljIGludCBuZnM0X3Jlc2V0X3Nlc3Npb24oc3RydWN0 IG5mc19jbGllbnQgKmNscCkNCiANCiAJbmZzNF9iZWdpbl9kcmFpbl9zZXNzaW9uKGNscCk7DQog CXN0YXR1cyA9IG5mczRfcHJvY19kZXN0cm95X3Nlc3Npb24oY2xwLT5jbF9zZXNzaW9uKTsNCi0J aWYgKHN0YXR1cyAmJiBzdGF0dXMgIT0gLU5GUzRFUlJfQkFEU0VTU0lPTiAmJg0KLQkgICAgc3Rh dHVzICE9IC1ORlM0RVJSX0RFQURTRVNTSU9OKSB7DQorCXN3aXRjaCAoc3RhdHVzKSB7DQorCWNh c2UgMDoNCisJY2FzZSAtTkZTNEVSUl9CQURTRVNTSU9OOg0KKwljYXNlIC1ORlM0RVJSX0RFQURT RVNTSU9OOg0KKwkJYnJlYWs7DQorCWNhc2UgLU5GUzRFUlJfQkFDS19DSEFOX0JVU1k6DQorCWNh c2UgLU5GUzRFUlJfREVMQVk6DQorCQlzZXRfYml0KE5GUzRDTE5UX1NFU1NJT05fUkVTRVQsICZj bHAtPmNsX3N0YXRlKTsNCisJCXN0YXR1cyA9IDA7DQorCQlzc2xlZXAoMSk7DQorCQlnb3RvIG91 dDsNCisJZGVmYXVsdDoNCiAJCXN0YXR1cyA9IG5mczRfcmVjb3ZlcnlfaGFuZGxlX2Vycm9yKGNs cCwgc3RhdHVzKTsNCiAJCWdvdG8gb3V0Ow0KIAl9DQpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19h b3BzLmMgYi9mcy94ZnMveGZzX2FvcHMuYw0KaW5kZXggNTc0ZDRlZS4uYjM2NzU4MSAxMDA2NDQN Ci0tLSBhL2ZzL3hmcy94ZnNfYW9wcy5jDQorKysgYi9mcy94ZnMveGZzX2FvcHMuYw0KQEAgLTg4 LDExICs4OCwxMSBAQCB4ZnNfZGVzdHJveV9pb2VuZCgNCiAJfQ0KIA0KIAlpZiAoaW9lbmQtPmlv X2lvY2IpIHsNCisJCWlub2RlX2Rpb19kb25lKGlvZW5kLT5pb19pbm9kZSk7DQogCQlpZiAoaW9l bmQtPmlvX2lzYXN5bmMpIHsNCiAJCQlhaW9fY29tcGxldGUoaW9lbmQtPmlvX2lvY2IsIGlvZW5k LT5pb19lcnJvciA/DQogCQkJCQlpb2VuZC0+aW9fZXJyb3IgOiBpb2VuZC0+aW9fcmVzdWx0LCAw KTsNCiAJCX0NCi0JCWlub2RlX2Rpb19kb25lKGlvZW5kLT5pb19pbm9kZSk7DQogCX0NCiANCiAJ bWVtcG9vbF9mcmVlKGlvZW5kLCB4ZnNfaW9lbmRfcG9vbCk7DQpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9lZmkuaCBiL2luY2x1ZGUvbGludXgvZWZpLmgNCmluZGV4IDEzMjhkOGMuLjE3MjFj NDEgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L2VmaS5oDQorKysgYi9pbmNsdWRlL2xpbnV4 L2VmaS5oDQpAQCAtMzY0LDE3ICszNjQsMzAgQEAgZXh0ZXJuIGludCBfX2luaXQgZWZpX3NldHVw X3BjZHBfY29uc29sZShjaGFyICopOw0KICNlbmRpZg0KIA0KIC8qDQotICogV2UgcGxheSBnYW1l cyB3aXRoIGVmaV9lbmFibGVkIHNvIHRoYXQgdGhlIGNvbXBpbGVyIHdpbGwsIGlmIHBvc3NpYmxl LCByZW1vdmUNCi0gKiBFRkktcmVsYXRlZCBjb2RlIGFsdG9nZXRoZXIuDQorICogV2UgcGxheSBn YW1lcyB3aXRoIGVmaV9lbmFibGVkIHNvIHRoYXQgdGhlIGNvbXBpbGVyIHdpbGwsIGlmDQorICog cG9zc2libGUsIHJlbW92ZSBFRkktcmVsYXRlZCBjb2RlIGFsdG9nZXRoZXIuDQogICovDQorI2Rl ZmluZSBFRklfQk9PVAkJMAkvKiBXZXJlIHdlIGJvb3RlZCBmcm9tIEVGST8gKi8NCisjZGVmaW5l IEVGSV9TWVNURU1fVEFCTEVTCTEJLyogQ2FuIHdlIHVzZSBFRkkgc3lzdGVtIHRhYmxlcz8gKi8N CisjZGVmaW5lIEVGSV9DT05GSUdfVEFCTEVTCTIJLyogQ2FuIHdlIHVzZSBFRkkgY29uZmlnIHRh Ymxlcz8gKi8NCisjZGVmaW5lIEVGSV9SVU5USU1FX1NFUlZJQ0VTCTMJLyogQ2FuIHdlIHVzZSBy dW50aW1lIHNlcnZpY2VzPyAqLw0KKyNkZWZpbmUgRUZJX01FTU1BUAkJNAkvKiBDYW4gd2UgdXNl IEVGSSBtZW1vcnkgbWFwPyAqLw0KKyNkZWZpbmUgRUZJXzY0QklUCQk1CS8qIElzIHRoZSBmaXJt d2FyZSA2NC1iaXQ/ICovDQorDQogI2lmZGVmIENPTkZJR19FRkkNCiAjIGlmZGVmIENPTkZJR19Y ODYNCi0gICBleHRlcm4gaW50IGVmaV9lbmFibGVkOw0KK2V4dGVybiBpbnQgZWZpX2VuYWJsZWQo aW50IGZhY2lsaXR5KTsNCiAjIGVsc2UNCi0jICBkZWZpbmUgZWZpX2VuYWJsZWQgMQ0KK3N0YXRp YyBpbmxpbmUgaW50IGVmaV9lbmFibGVkKGludCBmYWNpbGl0eSkNCit7DQorCXJldHVybiAxOw0K K30NCiAjIGVuZGlmDQogI2Vsc2UNCi0jIGRlZmluZSBlZmlfZW5hYmxlZCAwDQorc3RhdGljIGlu bGluZSBpbnQgZWZpX2VuYWJsZWQoaW50IGZhY2lsaXR5KQ0KK3sNCisJcmV0dXJuIDA7DQorfQ0K ICNlbmRpZg0KIA0KIC8qDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZXJpYWxfY29yZS5o IGIvaW5jbHVkZS9saW51eC9zZXJpYWxfY29yZS5oDQppbmRleCBlYWRmMzNkLi45ZTEwZTRlIDEw MDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9zZXJpYWxfY29yZS5oDQorKysgYi9pbmNsdWRlL2xp bnV4L3NlcmlhbF9jb3JlLmgNCkBAIC00Nyw3ICs0Nyw5IEBADQogI2RlZmluZSBQT1JUX1U2XzE2 NTUwQQkxOQkvKiBTVC1Fcmljc3NvbiBVNnh4eCBpbnRlcm5hbCBVQVJUICovDQogI2RlZmluZSBQ T1JUX1RFR1JBCTIwCS8qIE5WSURJQSBUZWdyYSBpbnRlcm5hbCBVQVJUICovDQogI2RlZmluZSBQ T1JUX1hSMTdEMTVYCTIxCS8qIEV4YXIgWFIxN0QxNXggVUFSVCAqLw0KLSNkZWZpbmUgUE9SVF9N QVhfODI1MAkyMQkvKiBtYXggcG9ydCBJRCAqLw0KKyNkZWZpbmUgUE9SVF84MjUwX0NJUgkyMgkv KiBDSVIgaW5mcmFyZWQgcG9ydCwgaGFzIGl0cyBvd24gZHJpdmVyICovDQorI2RlZmluZSBQT1JU X0JSQ01fVFJVTUFOQUdFCTIzDQorI2RlZmluZSBQT1JUX01BWF84MjUwCTIzCS8qIG1heCBwb3J0 IElEICovDQogDQogLyoNCiAgKiBBUk0gc3BlY2lmaWMgdHlwZSBudW1iZXJzLiAgVGhlc2UgYXJl IG5vdCBjdXJyZW50bHkgZ3VhcmFudGVlZA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3lz bG9nLmggYi9pbmNsdWRlL2xpbnV4L3N5c2xvZy5oDQppbmRleCAzODkxMTM5Li5jZTRjNjY1IDEw MDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9zeXNsb2cuaA0KKysrIGIvaW5jbHVkZS9saW51eC9z eXNsb2cuaA0KQEAgLTQ3LDYgKzQ3LDEyIEBADQogI2RlZmluZSBTWVNMT0dfRlJPTV9DQUxMIDAN CiAjZGVmaW5lIFNZU0xPR19GUk9NX0ZJTEUgMQ0KIA0KKy8qDQorICogU3lzbG9nIHByaW9yaXR5 IChQUkkpIG1heGltdW0gbGVuZ3RoIGluIGNoYXIgOiAnPFswLTldezEsM30+Jw0KKyAqIFNlZSBS RkM1NDI0IGZvciBkZXRhaWxzDQorKi8NCisjZGVmaW5lIFNZU0xPR19QUklfTUFYX0xFTkdUSCA1 DQorDQogaW50IGRvX3N5c2xvZyhpbnQgdHlwZSwgY2hhciBfX3VzZXIgKmJ1ZiwgaW50IGNvdW50 LCBib29sIGZyb21fZmlsZSk7DQogDQogI2VuZGlmIC8qIF9MSU5VWF9TWVNMT0dfSCAqLw0KZGlm ZiAtLWdpdCBhL2luaXQvbWFpbi5jIGIvaW5pdC9tYWluLmMNCmluZGV4IGNiMDhmZWEyLi41ZDBl YjFkIDEwMDY0NA0KLS0tIGEvaW5pdC9tYWluLmMNCisrKyBiL2luaXQvbWFpbi5jDQpAQCAtNjA2 LDcgKzYwNiw3IEBAIGFzbWxpbmthZ2Ugdm9pZCBfX2luaXQgc3RhcnRfa2VybmVsKHZvaWQpDQog CXBpZG1hcF9pbml0KCk7DQogCWFub25fdm1hX2luaXQoKTsNCiAjaWZkZWYgQ09ORklHX1g4Ng0K LQlpZiAoZWZpX2VuYWJsZWQpDQorCWlmIChlZmlfZW5hYmxlZChFRklfUlVOVElNRV9TRVJWSUNF UykpDQogCQllZmlfZW50ZXJfdmlydHVhbF9tb2RlKCk7DQogI2VuZGlmDQogCXRocmVhZF9pbmZv X2NhY2hlX2luaXQoKTsNCmRpZmYgLS1naXQgYS9rZXJuZWwvcHJpbnRrLmMgYi9rZXJuZWwvcHJp bnRrLmMNCmluZGV4IDc5ODJhMGEuLmMwZDEyZWEgMTAwNjQ0DQotLS0gYS9rZXJuZWwvcHJpbnRr LmMNCisrKyBiL2tlcm5lbC9wcmludGsuYw0KQEAgLTYzMyw4ICs2MzMsMTkgQEAgc3RhdGljIHZv aWQgY2FsbF9jb25zb2xlX2RyaXZlcnModW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkNCiAJ c3RhcnRfcHJpbnQgPSBzdGFydDsNCiAJd2hpbGUgKGN1cl9pbmRleCAhPSBlbmQpIHsNCiAJCWlm IChtc2dfbGV2ZWwgPCAwICYmICgoZW5kIC0gY3VyX2luZGV4KSA+IDIpKSB7DQorCQkJLyoNCisJ CQkgKiBwcmVwYXJlIGJ1Zl9wcmVmaXgsIGFzIGEgY29udGlndW91cyBhcnJheSwNCisJCQkgKiB0 byBiZSBwcm9jZXNzZWQgYnkgbG9nX3ByZWZpeCBmdW5jdGlvbg0KKwkJCSAqLw0KKwkJCWNoYXIg YnVmX3ByZWZpeFtTWVNMT0dfUFJJX01BWF9MRU5HVEgrMV07DQorCQkJdW5zaWduZWQgaTsNCisJ CQlmb3IgKGkgPSAwOyBpIDwgKChlbmQgLSBjdXJfaW5kZXgpKSAmJiAoaSA8IFNZU0xPR19QUklf TUFYX0xFTkdUSCk7IGkrKykgew0KKwkJCQlidWZfcHJlZml4W2ldID0gTE9HX0JVRihjdXJfaW5k ZXggKyBpKTsNCisJCQl9DQorCQkJYnVmX3ByZWZpeFtpXSA9ICdcMCc7IC8qIGZvcmNlICdcMCcg YXMgbGFzdCBzdHJpbmcgY2hhcmFjdGVyICovDQorDQogCQkJLyogc3RyaXAgbG9nIHByZWZpeCAq Lw0KLQkJCWN1cl9pbmRleCArPSBsb2dfcHJlZml4KCZMT0dfQlVGKGN1cl9pbmRleCksICZtc2df bGV2ZWwsIE5VTEwpOw0KKwkJCWN1cl9pbmRleCArPSBsb2dfcHJlZml4KChjb25zdCBjaGFyICop JmJ1Zl9wcmVmaXgsICZtc2dfbGV2ZWwsIE5VTEwpOw0KIAkJCXN0YXJ0X3ByaW50ID0gY3VyX2lu ZGV4Ow0KIAkJfQ0KIAkJd2hpbGUgKGN1cl9pbmRleCAhPSBlbmQpIHsNCmRpZmYgLS1naXQgYS9r ZXJuZWwvc21wLmMgYi9rZXJuZWwvc21wLmMNCmluZGV4IGRiMTk3ZDYuLjllODAwYjIgMTAwNjQ0 DQotLS0gYS9rZXJuZWwvc21wLmMNCisrKyBiL2tlcm5lbC9zbXAuYw0KQEAgLTMxLDYgKzMxLDcg QEAgc3RydWN0IGNhbGxfZnVuY3Rpb25fZGF0YSB7DQogCXN0cnVjdCBjYWxsX3NpbmdsZV9kYXRh CWNzZDsNCiAJYXRvbWljX3QJCXJlZnM7DQogCWNwdW1hc2tfdmFyX3QJCWNwdW1hc2s7DQorCWNw dW1hc2tfdmFyX3QJCWNwdW1hc2tfaXBpOw0KIH07DQogDQogc3RhdGljIERFRklORV9QRVJfQ1BV X1NIQVJFRF9BTElHTkVEKHN0cnVjdCBjYWxsX2Z1bmN0aW9uX2RhdGEsIGNmZF9kYXRhKTsNCkBA IC01NCw2ICs1NSw5IEBAIGhvdHBsdWdfY2ZkKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmZiLCB1 bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAqaGNwdSkNCiAJCWlmICghemFsbG9jX2NwdW1hc2tf dmFyX25vZGUoJmNmZC0+Y3B1bWFzaywgR0ZQX0tFUk5FTCwNCiAJCQkJY3B1X3RvX25vZGUoY3B1 KSkpDQogCQkJcmV0dXJuIG5vdGlmaWVyX2Zyb21fZXJybm8oLUVOT01FTSk7DQorCQlpZiAoIXph bGxvY19jcHVtYXNrX3Zhcl9ub2RlKCZjZmQtPmNwdW1hc2tfaXBpLCBHRlBfS0VSTkVMLA0KKwkJ CQljcHVfdG9fbm9kZShjcHUpKSkNCisJCQlyZXR1cm4gbm90aWZpZXJfZnJvbV9lcnJubygtRU5P TUVNKTsNCiAJCWJyZWFrOw0KIA0KICNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUNCkBAIC02Myw2 ICs2Nyw3IEBAIGhvdHBsdWdfY2ZkKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmZiLCB1bnNpZ25l ZCBsb25nIGFjdGlvbiwgdm9pZCAqaGNwdSkNCiAJY2FzZSBDUFVfREVBRDoNCiAJY2FzZSBDUFVf REVBRF9GUk9aRU46DQogCQlmcmVlX2NwdW1hc2tfdmFyKGNmZC0+Y3B1bWFzayk7DQorCQlmcmVl X2NwdW1hc2tfdmFyKGNmZC0+Y3B1bWFza19pcGkpOw0KIAkJYnJlYWs7DQogI2VuZGlmDQogCX07 DQpAQCAtNTI0LDYgKzUyOSwxMiBAQCB2b2lkIHNtcF9jYWxsX2Z1bmN0aW9uX21hbnkoY29uc3Qg c3RydWN0IGNwdW1hc2sgKm1hc2ssDQogCQlyZXR1cm47DQogCX0NCiANCisJLyoNCisJICogQWZ0 ZXIgd2UgcHV0IGFuIGVudHJ5IGludG8gdGhlIGxpc3QsIGRhdGEtPmNwdW1hc2sNCisJICogbWF5 IGJlIGNsZWFyZWQgYWdhaW4gd2hlbiBhbm90aGVyIENQVSBzZW5kcyBhbm90aGVyIElQSSBmb3IN CisJICogYSBTTVAgZnVuY3Rpb24gY2FsbCwgc28gZGF0YS0+Y3B1bWFzayB3aWxsIGJlIHplcm8u DQorCSAqLw0KKwljcHVtYXNrX2NvcHkoZGF0YS0+Y3B1bWFza19pcGksIGRhdGEtPmNwdW1hc2sp Ow0KIAlyYXdfc3Bpbl9sb2NrX2lycXNhdmUoJmNhbGxfZnVuY3Rpb24ubG9jaywgZmxhZ3MpOw0K IAkvKg0KIAkgKiBQbGFjZSBlbnRyeSBhdCB0aGUgX0hFQURfIG9mIHRoZSBsaXN0LCBzbyB0aGF0 IGFueSBjcHUgc3RpbGwNCkBAIC01NDcsNyArNTU4LDcgQEAgdm9pZCBzbXBfY2FsbF9mdW5jdGlv bl9tYW55KGNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrLA0KIAlzbXBfbWIoKTsNCiANCiAJLyog U2VuZCBhIG1lc3NhZ2UgdG8gYWxsIENQVXMgaW4gdGhlIG1hcCAqLw0KLQlhcmNoX3NlbmRfY2Fs bF9mdW5jdGlvbl9pcGlfbWFzayhkYXRhLT5jcHVtYXNrKTsNCisJYXJjaF9zZW5kX2NhbGxfZnVu Y3Rpb25faXBpX21hc2soZGF0YS0+Y3B1bWFza19pcGkpOw0KIA0KIAkvKiBPcHRpb25hbGx5IHdh aXQgZm9yIHRoZSBDUFVzIHRvIGNvbXBsZXRlICovDQogCWlmICh3YWl0KQ0KZGlmZiAtLWdpdCBh L2tlcm5lbC90cmFjZS9mdHJhY2UuYyBiL2tlcm5lbC90cmFjZS9mdHJhY2UuYw0KaW5kZXggNTRk YmE1OS4uNGIxYTk2YiAxMDA2NDQNCi0tLSBhL2tlcm5lbC90cmFjZS9mdHJhY2UuYw0KKysrIGIv a2VybmVsL3RyYWNlL2Z0cmFjZS5jDQpAQCAtMzQ4Miw3ICszNDgyLDcgQEAgc3RhdGljIGludCBm dHJhY2VfbW9kdWxlX25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnNlbGYsDQogDQogc3Ry dWN0IG5vdGlmaWVyX2Jsb2NrIGZ0cmFjZV9tb2R1bGVfbmIgPSB7DQogCS5ub3RpZmllcl9jYWxs ID0gZnRyYWNlX21vZHVsZV9ub3RpZnksDQotCS5wcmlvcml0eSA9IDAsDQorCS5wcmlvcml0eSA9 IElOVF9NQVgsCS8qIFJ1biBiZWZvcmUgYW55dGhpbmcgdGhhdCBjYW4gdXNlIGtwcm9iZXMgKi8N CiB9Ow0KIA0KIGV4dGVybiB1bnNpZ25lZCBsb25nIF9fc3RhcnRfbWNvdW50X2xvY1tdOw0KZGlm ZiAtLWdpdCBhL21tL2NvbXBhY3Rpb24uYyBiL21tL2NvbXBhY3Rpb24uYw0KaW5kZXggNDY5NzNm Yi4uNWY4ZWM4MiAxMDA2NDQNCi0tLSBhL21tL2NvbXBhY3Rpb24uYw0KKysrIGIvbW0vY29tcGFj dGlvbi5jDQpAQCAtNzE0LDE0ICs3MTQsMTIgQEAgc3RhdGljIGludCBjb21wYWN0X25vZGUoaW50 IG5pZCkNCiB9DQogDQogLyogQ29tcGFjdCBhbGwgbm9kZXMgaW4gdGhlIHN5c3RlbSAqLw0KLXN0 YXRpYyBpbnQgY29tcGFjdF9ub2Rlcyh2b2lkKQ0KK3N0YXRpYyB2b2lkIGNvbXBhY3Rfbm9kZXMo dm9pZCkNCiB7DQogCWludCBuaWQ7DQogDQogCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkNCiAJ CWNvbXBhY3Rfbm9kZShuaWQpOw0KLQ0KLQlyZXR1cm4gQ09NUEFDVF9DT01QTEVURTsNCiB9DQog DQogLyogVGhlIHdyaXR0ZW4gdmFsdWUgaXMgYWN0dWFsbHkgdW51c2VkLCBhbGwgbWVtb3J5IGlz IGNvbXBhY3RlZCAqLw0KQEAgLTczMiw3ICs3MzAsNyBAQCBpbnQgc3lzY3RsX2NvbXBhY3Rpb25f aGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLA0KIAkJCXZvaWQgX191 c2VyICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpDQogew0KIAlpZiAod3Jp dGUpDQotCQlyZXR1cm4gY29tcGFjdF9ub2RlcygpOw0KKwkJY29tcGFjdF9ub2RlcygpOw0KIA0K IAlyZXR1cm4gMDsNCiB9DQpkaWZmIC0tZ2l0IGEvbW0vcGFnZV9hbGxvYy5jIGIvbW0vcGFnZV9h bGxvYy5jDQppbmRleCBhODhkZGVkLi40ZDNhNjk3IDEwMDY0NA0KLS0tIGEvbW0vcGFnZV9hbGxv Yy5jDQorKysgYi9tbS9wYWdlX2FsbG9jLmMNCkBAIC01NTMyLDcgKzU1MzIsNyBAQCBzdGF0aWMg aW5saW5lIGludCBwZm5fdG9fYml0aWR4KHN0cnVjdCB6b25lICp6b25lLCB1bnNpZ25lZCBsb25n IHBmbikNCiAJcGZuICY9IChQQUdFU19QRVJfU0VDVElPTi0xKTsNCiAJcmV0dXJuIChwZm4gPj4g cGFnZWJsb2NrX29yZGVyKSAqIE5SX1BBR0VCTE9DS19CSVRTOw0KICNlbHNlDQotCXBmbiA9IHBm biAtIHpvbmUtPnpvbmVfc3RhcnRfcGZuOw0KKwlwZm4gPSBwZm4gLSByb3VuZF9kb3duKHpvbmUt PnpvbmVfc3RhcnRfcGZuLCBwYWdlYmxvY2tfbnJfcGFnZXMpOw0KIAlyZXR1cm4gKHBmbiA+PiBw YWdlYmxvY2tfb3JkZXIpICogTlJfUEFHRUJMT0NLX0JJVFM7DQogI2VuZGlmIC8qIENPTkZJR19T UEFSU0VNRU0gKi8NCiB9DQpkaWZmIC0tZ2l0IGEvbmV0L2JsdWV0b290aC9oaWRwL2NvcmUuYyBi L25ldC9ibHVldG9vdGgvaGlkcC9jb3JlLmMNCmluZGV4IDA3NWEzZTkuLjAyNzQxNTcgMTAwNjQ0 DQotLS0gYS9uZXQvYmx1ZXRvb3RoL2hpZHAvY29yZS5jDQorKysgYi9uZXQvYmx1ZXRvb3RoL2hp ZHAvY29yZS5jDQpAQCAtOTQ1LDcgKzk0NSw3IEBAIHN0YXRpYyBpbnQgaGlkcF9zZXR1cF9oaWQo c3RydWN0IGhpZHBfc2Vzc2lvbiAqc2Vzc2lvbiwNCiAJaGlkLT52ZXJzaW9uID0gcmVxLT52ZXJz aW9uOw0KIAloaWQtPmNvdW50cnkgPSByZXEtPmNvdW50cnk7DQogDQotCXN0cm5jcHkoaGlkLT5u YW1lLCByZXEtPm5hbWUsIDEyOCk7DQorCXN0cm5jcHkoaGlkLT5uYW1lLCByZXEtPm5hbWUsIHNp emVvZihyZXEtPm5hbWUpIC0gMSk7DQogCXN0cm5jcHkoaGlkLT5waHlzLCBiYXRvc3RyKCZidF9z ayhzZXNzaW9uLT5jdHJsX3NvY2stPnNrKS0+c3JjKSwgNjQpOw0KIAlzdHJuY3B5KGhpZC0+dW5p cSwgYmF0b3N0cigmYnRfc2soc2Vzc2lvbi0+Y3RybF9zb2NrLT5zayktPmRzdCksIDY0KTsNCiAN CmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvc3RhX2luZm8uYyBiL25ldC9tYWM4MDIxMS9zdGFf aW5mby5jDQppbmRleCAxYzc3NWYwLi40ODg2MDBjIDEwMDY0NA0KLS0tIGEvbmV0L21hYzgwMjEx L3N0YV9pbmZvLmMNCisrKyBiL25ldC9tYWM4MDIxMS9zdGFfaW5mby5jDQpAQCAtMTAyMSw3ICsx MDIxLDcgQEAgdm9pZCBzdGFfaW5mb19pbml0KHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2Fs KQ0KIA0KIHZvaWQgc3RhX2luZm9fc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCkN CiB7DQotCWRlbF90aW1lcigmbG9jYWwtPnN0YV9jbGVhbnVwKTsNCisJZGVsX3RpbWVyX3N5bmMo JmxvY2FsLT5zdGFfY2xlYW51cCk7DQogCXN0YV9pbmZvX2ZsdXNoKGxvY2FsLCBOVUxMKTsNCiB9 DQogDQpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9zY2hlZC5jIGIvbmV0L3N1bnJwYy9zY2hlZC5j DQppbmRleCA1NmMzZjg1Li4xOGM1YTUwIDEwMDY0NA0KLS0tIGEvbmV0L3N1bnJwYy9zY2hlZC5j DQorKysgYi9uZXQvc3VucnBjL3NjaGVkLmMNCkBAIC05MTgsOCArOTE4LDcgQEAgc3RhdGljIHZv aWQgcnBjX2FzeW5jX3JlbGVhc2Uoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KIA0KIHN0YXRp YyB2b2lkIHJwY19yZWxlYXNlX3Jlc291cmNlc190YXNrKHN0cnVjdCBycGNfdGFzayAqdGFzaykN CiB7DQotCWlmICh0YXNrLT50a19ycXN0cCkNCi0JCXhwcnRfcmVsZWFzZSh0YXNrKTsNCisJeHBy dF9yZWxlYXNlKHRhc2spOw0KIAlpZiAodGFzay0+dGtfbXNnLnJwY19jcmVkKSB7DQogCQlwdXRf cnBjY3JlZCh0YXNrLT50a19tc2cucnBjX2NyZWQpOw0KIAkJdGFzay0+dGtfbXNnLnJwY19jcmVk ID0gTlVMTDsNCmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3hwcnQuYyBiL25ldC9zdW5ycGMveHBy dC5jDQppbmRleCBmZmJhMjA3Li42YzkxMjA4IDEwMDY0NA0KLS0tIGEvbmV0L3N1bnJwYy94cHJ0 LmMNCisrKyBiL25ldC9zdW5ycGMveHBydC5jDQpAQCAtMTEzMiwxMCArMTEzMiwxOCBAQCBzdGF0 aWMgdm9pZCB4cHJ0X3JlcXVlc3RfaW5pdChzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2ssIHN0cnVjdCBy cGNfeHBydCAqeHBydCkNCiB2b2lkIHhwcnRfcmVsZWFzZShzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2sp DQogew0KIAlzdHJ1Y3QgcnBjX3hwcnQJKnhwcnQ7DQotCXN0cnVjdCBycGNfcnFzdAkqcmVxOw0K KwlzdHJ1Y3QgcnBjX3Jxc3QJKnJlcSA9IHRhc2stPnRrX3Jxc3RwOw0KIA0KLQlpZiAoIShyZXEg PSB0YXNrLT50a19ycXN0cCkpDQorCWlmIChyZXEgPT0gTlVMTCkgew0KKwkJaWYgKHRhc2stPnRr X2NsaWVudCkgew0KKwkJCXJjdV9yZWFkX2xvY2soKTsNCisJCQl4cHJ0ID0gcmN1X2RlcmVmZXJl bmNlKHRhc2stPnRrX2NsaWVudC0+Y2xfeHBydCk7DQorCQkJaWYgKHhwcnQtPnNuZF90YXNrID09 IHRhc2spDQorCQkJCXhwcnRfcmVsZWFzZV93cml0ZSh4cHJ0LCB0YXNrKTsNCisJCQlyY3VfcmVh ZF91bmxvY2soKTsNCisJCX0NCiAJCXJldHVybjsNCisJfQ0KIA0KIAl4cHJ0ID0gcmVxLT5ycV94 cHJ0Ow0KIAlycGNfY291bnRfaW9zdGF0cyh0YXNrKTsNCmRpZmYgLS1naXQgYS9zZWN1cml0eS9p bnRlZ3JpdHkvZXZtL2V2bV9jcnlwdG8uYyBiL3NlY3VyaXR5L2ludGVncml0eS9ldm0vZXZtX2Ny eXB0by5jDQppbmRleCA4NzM4ZGVmLi5lNzZhNDcwIDEwMDY0NA0KLS0tIGEvc2VjdXJpdHkvaW50 ZWdyaXR5L2V2bS9ldm1fY3J5cHRvLmMNCisrKyBiL3NlY3VyaXR5L2ludGVncml0eS9ldm0vZXZt X2NyeXB0by5jDQpAQCAtMTc1LDkgKzE3NSw5IEBAIGludCBldm1fdXBkYXRlX2V2bXhhdHRyKHN0 cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqeGF0dHJfbmFtZSwNCiAJCXJjID0gX192 ZnNfc2V0eGF0dHJfbm9wZXJtKGRlbnRyeSwgWEFUVFJfTkFNRV9FVk0sDQogCQkJCQkgICAmeGF0 dHJfZGF0YSwNCiAJCQkJCSAgIHNpemVvZih4YXR0cl9kYXRhKSwgMCk7DQotCX0NCi0JZWxzZSBp ZiAocmMgPT0gLUVOT0RBVEEpDQorCX0gZWxzZSBpZiAocmMgPT0gLUVOT0RBVEEgJiYgaW5vZGUt Pmlfb3AtPnJlbW92ZXhhdHRyKSB7DQogCQlyYyA9IGlub2RlLT5pX29wLT5yZW1vdmV4YXR0cihk ZW50cnksIFhBVFRSX05BTUVfRVZNKTsNCisJfQ0KIAlyZXR1cm4gcmM7DQogfQ0KIA0KZGlmZiAt LWdpdCBhL3NvdW5kL2FybS9weGEyeHgtYWM5Ny1saWIuYyBiL3NvdW5kL2FybS9weGEyeHgtYWM5 Ny1saWIuYw0KaW5kZXggZDFhYTQyMS4uNTJhNDMxOCAxMDA2NDQNCi0tLSBhL3NvdW5kL2FybS9w eGEyeHgtYWM5Ny1saWIuYw0KKysrIGIvc291bmQvYXJtL3B4YTJ4eC1hYzk3LWxpYi5jDQpAQCAt MTcsNiArMTcsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4NCiAjaW5jbHVkZSA8bGludXgv ZGVsYXkuaD4NCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQorI2luY2x1ZGUgPGxpbnV4L2dw aW8uaD4NCiANCiAjaW5jbHVkZSA8c291bmQvYWM5N19jb2RlYy5oPg0KICNpbmNsdWRlIDxzb3Vu ZC9weGEyeHgtbGliLmg+DQpAQCAtMTQ3LDYgKzE0OCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBw eGFfYWM5N193YXJtX3B4YTI3eCh2b2lkKQ0KIA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBweGFfYWM5 N19jb2xkX3B4YTI3eCh2b2lkKQ0KIHsNCisJdW5zaWduZWQgaW50IHRpbWVvdXQ7DQorDQogCUdD UiAmPSAgR0NSX0NPTERfUlNUOyAgLyogY2xlYXIgZXZlcnl0aGluZyBidXQgbkNSU1QgKi8NCiAJ R0NSICY9IH5HQ1JfQ09MRF9SU1Q7ICAvKiB0aGVuIGFzc2VydCBuQ1JTVCAqLw0KIA0KQEAgLTE1 Niw4ICsxNTksMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIHB4YV9hYzk3X2NvbGRfcHhhMjd4KHZv aWQpDQogCWNsa19lbmFibGUoYWM5N2NvbmZfY2xrKTsNCiAJdWRlbGF5KDUpOw0KIAljbGtfZGlz YWJsZShhYzk3Y29uZl9jbGspOw0KLQlHQ1IgPSBHQ1JfQ09MRF9SU1Q7DQotCXVkZWxheSg1MCk7 DQorCUdDUiA9IEdDUl9DT0xEX1JTVCB8IEdDUl9XQVJNX1JTVDsNCisJdGltZW91dCA9IDEwMDsg ICAgIC8qIHdhaXQgZm9yIHRoZSBjb2RlYy1yZWFkeSBiaXQgdG8gYmUgc2V0ICovDQorCXdoaWxl ICghKChHU1IgfCBnc3JfYml0cykgJiAoR1NSX1BDUiB8IEdTUl9TQ1IpKSAmJiB0aW1lb3V0LS0p DQorCQltZGVsYXkoMSk7DQogfQ0KICNlbmRpZg0KIA0KQEAgLTMzOSw4ICszNDQsMjEgQEAgaW50 IF9fZGV2aW5pdCBweGEyeHhfYWM5N19od19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpk ZXYpDQogCX0NCiANCiAJaWYgKGNwdV9pc19weGEyN3goKSkgew0KLQkJLyogVXNlIEdQSU8gMTEz IGFzIEFDOTcgUmVzZXQgb24gQnVsdmVyZGUgKi8NCisJCS8qDQorCQkgKiBUaGlzIGdwaW8gaXMg bmVlZGVkIGZvciBhIHdvcmstYXJvdW5kIHRvIGEgYnVnIGluIHRoZSBhYzk3DQorCQkgKiBjb250 cm9sbGVyIGR1cmluZyB3YXJtIHJlc2V0LiAgVGhlIGRpcmVjdGlvbiBhbmQgbGV2ZWwgaXMgc2V0 DQorCQkgKiBoZXJlIHNvIHRoYXQgaXQgaXMgYW4gb3V0cHV0IGRyaXZlbiBoaWdoIHdoZW4gc3dp dGNoaW5nIGZyb20NCisJCSAqIEFDOTdfblJFU0VUIGFsdCBmdW5jdGlvbiB0byBnZW5lcmljIGdw aW8uDQorCQkgKi8NCisJCXJldCA9IGdwaW9fcmVxdWVzdF9vbmUocmVzZXRfZ3BpbywgR1BJT0Zf T1VUX0lOSVRfSElHSCwNCisJCQkJICAgICAgICJweGEyN3ggYWM5NyByZXNldCIpOw0KKwkJaWYg KHJldCA8IDApIHsNCisJCQlwcl9lcnIoIiVzOiBncGlvX3JlcXVlc3Rfb25lKCkgZmFpbGVkOiAl ZFxuIiwNCisJCQkgICAgICAgX19mdW5jX18sIHJldCk7DQorCQkJZ290byBlcnJfY29uZjsNCisJ CX0NCiAJCXB4YTI3eF9hc3NlcnRfYWM5N3Jlc2V0KHJlc2V0X2dwaW8sIDApOw0KKw0KIAkJYWM5 N2NvbmZfY2xrID0gY2xrX2dldCgmZGV2LT5kZXYsICJBQzk3Q09ORkNMSyIpOw0KIAkJaWYgKElT X0VSUihhYzk3Y29uZl9jbGspKSB7DQogCQkJcmV0ID0gUFRSX0VSUihhYzk3Y29uZl9jbGspOw0K QEAgLTM4Myw2ICs0MDEsOCBAQCBFWFBPUlRfU1lNQk9MX0dQTChweGEyeHhfYWM5N19od19wcm9i ZSk7DQogDQogdm9pZCBweGEyeHhfYWM5N19od19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqZGV2KQ0KIHsNCisJaWYgKGNwdV9pc19weGEyN3goKSkNCisJCWdwaW9fZnJlZShyZXNldF9n cGlvKTsNCiAJR0NSIHw9IEdDUl9BQ0xJTktfT0ZGOw0KIAlmcmVlX2lycShJUlFfQUM5NywgTlVM TCk7DQogCWlmIChhYzk3Y29uZl9jbGspIHsNCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL2hk YV9pbnRlbC5jIGIvc291bmQvcGNpL2hkYS9oZGFfaW50ZWwuYw0KaW5kZXggYTFlMzEyZi4uYTE2 NmE4NSAxMDA2NDQNCi0tLSBhL3NvdW5kL3BjaS9oZGEvaGRhX2ludGVsLmMNCisrKyBiL3NvdW5k L3BjaS9oZGEvaGRhX2ludGVsLmMNCkBAIC01NjksMjkgKzU2OSw0MyBAQCBzdGF0aWMgY2hhciAq ZHJpdmVyX3Nob3J0X25hbWVzW10gX19kZXZpbml0ZGF0YSA9IHsNCiAjZGVmaW5lIGdldF9henhf ZGV2KHN1YnN0cmVhbSkgKHN1YnN0cmVhbS0+cnVudGltZS0+cHJpdmF0ZV9kYXRhKQ0KIA0KICNp ZmRlZiBDT05GSUdfWDg2DQotc3RhdGljIHZvaWQgX19tYXJrX3BhZ2VzX3djKHN0cnVjdCBhengg KmNoaXAsIHZvaWQgKmFkZHIsIHNpemVfdCBzaXplLCBib29sIG9uKQ0KK3N0YXRpYyB2b2lkIF9f bWFya19wYWdlc193YyhzdHJ1Y3QgYXp4ICpjaGlwLCBzdHJ1Y3Qgc25kX2RtYV9idWZmZXIgKmRt YWIsIGJvb2wgb24pDQogew0KKwlpbnQgcGFnZXM7DQorDQogCWlmIChhenhfc25vb3AoY2hpcCkp DQogCQlyZXR1cm47DQotCWlmIChhZGRyICYmIHNpemUpIHsNCi0JCWludCBwYWdlcyA9IChzaXpl ICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsNCisJaWYgKCFkbWFiIHx8ICFkbWFiLT5h cmVhIHx8ICFkbWFiLT5ieXRlcykNCisJCXJldHVybjsNCisNCisjaWZkZWYgQ09ORklHX1NORF9E TUFfU0dCVUYNCisJaWYgKGRtYWItPmRldi50eXBlID09IFNORFJWX0RNQV9UWVBFX0RFVl9TRykg ew0KKwkJc3RydWN0IHNuZF9zZ19idWYgKnNnYnVmID0gZG1hYi0+cHJpdmF0ZV9kYXRhOw0KIAkJ aWYgKG9uKQ0KLQkJCXNldF9tZW1vcnlfd2MoKHVuc2lnbmVkIGxvbmcpYWRkciwgcGFnZXMpOw0K KwkJCXNldF9wYWdlc19hcnJheV93YyhzZ2J1Zi0+cGFnZV90YWJsZSwgc2didWYtPnBhZ2VzKTsN CiAJCWVsc2UNCi0JCQlzZXRfbWVtb3J5X3diKCh1bnNpZ25lZCBsb25nKWFkZHIsIHBhZ2VzKTsN CisJCQlzZXRfcGFnZXNfYXJyYXlfd2Ioc2didWYtPnBhZ2VfdGFibGUsIHNnYnVmLT5wYWdlcyk7 DQorCQlyZXR1cm47DQogCX0NCisjZW5kaWYNCisNCisJcGFnZXMgPSAoZG1hYi0+Ynl0ZXMgKyBQ QUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NISUZUOw0KKwlpZiAob24pDQorCQlzZXRfbWVtb3J5X3dj KCh1bnNpZ25lZCBsb25nKWRtYWItPmFyZWEsIHBhZ2VzKTsNCisJZWxzZQ0KKwkJc2V0X21lbW9y eV93YigodW5zaWduZWQgbG9uZylkbWFiLT5hcmVhLCBwYWdlcyk7DQogfQ0KIA0KIHN0YXRpYyBp bmxpbmUgdm9pZCBtYXJrX3BhZ2VzX3djKHN0cnVjdCBhenggKmNoaXAsIHN0cnVjdCBzbmRfZG1h X2J1ZmZlciAqYnVmLA0KIAkJCQkgYm9vbCBvbikNCiB7DQotCV9fbWFya19wYWdlc193YyhjaGlw LCBidWYtPmFyZWEsIGJ1Zi0+Ynl0ZXMsIG9uKTsNCisJX19tYXJrX3BhZ2VzX3djKGNoaXAsIGJ1 Ziwgb24pOw0KIH0NCiBzdGF0aWMgaW5saW5lIHZvaWQgbWFya19ydW50aW1lX3djKHN0cnVjdCBh enggKmNoaXAsIHN0cnVjdCBhenhfZGV2ICphenhfZGV2LA0KLQkJCQkgICBzdHJ1Y3Qgc25kX3Bj bV9ydW50aW1lICpydW50aW1lLCBib29sIG9uKQ0KKwkJCQkgICBzdHJ1Y3Qgc25kX3BjbV9zdWJz dHJlYW0gKnN1YnN0cmVhbSwgYm9vbCBvbikNCiB7DQogCWlmIChhenhfZGV2LT53Y19tYXJrZWQg IT0gb24pIHsNCi0JCV9fbWFya19wYWdlc193YyhjaGlwLCBydW50aW1lLT5kbWFfYXJlYSwgcnVu dGltZS0+ZG1hX2J5dGVzLCBvbik7DQorCQlfX21hcmtfcGFnZXNfd2MoY2hpcCwgc3Vic3RyZWFt LT5ydW50aW1lLT5kbWFfYnVmZmVyX3AsIG9uKTsNCiAJCWF6eF9kZXYtPndjX21hcmtlZCA9IG9u Ow0KIAl9DQogfQ0KQEAgLTYwMiw3ICs2MTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbWFya19w YWdlc193YyhzdHJ1Y3QgYXp4ICpjaGlwLCBzdHJ1Y3Qgc25kX2RtYV9idWZmZXIgKmJ1ZiwNCiB7 DQogfQ0KIHN0YXRpYyBpbmxpbmUgdm9pZCBtYXJrX3J1bnRpbWVfd2Moc3RydWN0IGF6eCAqY2hp cCwgc3RydWN0IGF6eF9kZXYgKmF6eF9kZXYsDQotCQkJCSAgIHN0cnVjdCBzbmRfcGNtX3J1bnRp bWUgKnJ1bnRpbWUsIGJvb2wgb24pDQorCQkJCSAgIHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAq c3Vic3RyZWFtLCBib29sIG9uKQ0KIHsNCiB9DQogI2VuZGlmDQpAQCAtMTc3NiwxMSArMTc5MCwx MCBAQCBzdGF0aWMgaW50IGF6eF9wY21faHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVh bSAqc3Vic3RyZWFtLA0KIHsNCiAJc3RydWN0IGF6eF9wY20gKmFwY20gPSBzbmRfcGNtX3N1YnN0 cmVhbV9jaGlwKHN1YnN0cmVhbSk7DQogCXN0cnVjdCBhenggKmNoaXAgPSBhcGNtLT5jaGlwOw0K LQlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOw0K IAlzdHJ1Y3QgYXp4X2RldiAqYXp4X2RldiA9IGdldF9henhfZGV2KHN1YnN0cmVhbSk7DQogCWlu dCByZXQ7DQogDQotCW1hcmtfcnVudGltZV93YyhjaGlwLCBhenhfZGV2LCBydW50aW1lLCBmYWxz ZSk7DQorCW1hcmtfcnVudGltZV93YyhjaGlwLCBhenhfZGV2LCBzdWJzdHJlYW0sIGZhbHNlKTsN CiAJYXp4X2Rldi0+YnVmc2l6ZSA9IDA7DQogCWF6eF9kZXYtPnBlcmlvZF9ieXRlcyA9IDA7DQog CWF6eF9kZXYtPmZvcm1hdF92YWwgPSAwOw0KQEAgLTE3ODgsNyArMTgwMSw3IEBAIHN0YXRpYyBp bnQgYXp4X3BjbV9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0s DQogCQkJCQlwYXJhbXNfYnVmZmVyX2J5dGVzKGh3X3BhcmFtcykpOw0KIAlpZiAocmV0IDwgMCkN CiAJCXJldHVybiByZXQ7DQotCW1hcmtfcnVudGltZV93YyhjaGlwLCBhenhfZGV2LCBydW50aW1l LCB0cnVlKTsNCisJbWFya19ydW50aW1lX3djKGNoaXAsIGF6eF9kZXYsIHN1YnN0cmVhbSwgdHJ1 ZSk7DQogCXJldHVybiByZXQ7DQogfQ0KIA0KQEAgLTE3OTcsNyArMTgxMCw2IEBAIHN0YXRpYyBp bnQgYXp4X3BjbV9od19mcmVlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQ0K IAlzdHJ1Y3QgYXp4X3BjbSAqYXBjbSA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFt KTsNCiAJc3RydWN0IGF6eF9kZXYgKmF6eF9kZXYgPSBnZXRfYXp4X2RldihzdWJzdHJlYW0pOw0K IAlzdHJ1Y3QgYXp4ICpjaGlwID0gYXBjbS0+Y2hpcDsNCi0Jc3RydWN0IHNuZF9wY21fcnVudGlt ZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsNCiAJc3RydWN0IGhkYV9wY21fc3RyZWFt ICpoaW5mbyA9IGFwY20tPmhpbmZvW3N1YnN0cmVhbS0+c3RyZWFtXTsNCiANCiAJLyogcmVzZXQg QkRMIGFkZHJlc3MgKi8NCkBAIC0xODEwLDcgKzE4MjIsNyBAQCBzdGF0aWMgaW50IGF6eF9wY21f aHdfZnJlZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkNCiANCiAJc25kX2hk YV9jb2RlY19jbGVhbnVwKGFwY20tPmNvZGVjLCBoaW5mbywgc3Vic3RyZWFtKTsNCiANCi0JbWFy a19ydW50aW1lX3djKGNoaXAsIGF6eF9kZXYsIHJ1bnRpbWUsIGZhbHNlKTsNCisJbWFya19ydW50 aW1lX3djKGNoaXAsIGF6eF9kZXYsIHN1YnN0cmVhbSwgZmFsc2UpOw0KIAlyZXR1cm4gc25kX3Bj bV9saWJfZnJlZV9wYWdlcyhzdWJzdHJlYW0pOw0KIH0NCiANCmRpZmYgLS1naXQgYS9zb3VuZC9w Y2kvaGRhL3BhdGNoX2NvbmV4YW50LmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2NvbmV4YW50LmMN CmluZGV4IDQ5OGI2MmUuLmM5MjY5Y2UgMTAwNjQ0DQotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNo X2NvbmV4YW50LmMNCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfY29uZXhhbnQuYw0KQEAgLTU5 MiwyNCArNTkyLDEyIEBAIHN0YXRpYyBpbnQgY29uZXhhbnRfYnVpbGRfY29udHJvbHMoc3RydWN0 IGhkYV9jb2RlYyAqY29kZWMpDQogCXJldHVybiAwOw0KIH0NCiANCi0jaWZkZWYgQ09ORklHX1NO RF9IREFfUE9XRVJfU0FWRQ0KLXN0YXRpYyBpbnQgY29uZXhhbnRfc3VzcGVuZChzdHJ1Y3QgaGRh X2NvZGVjICpjb2RlYywgcG1fbWVzc2FnZV90IHN0YXRlKQ0KLXsNCi0Jc25kX2hkYV9zaHV0dXBf cGlucyhjb2RlYyk7DQotCXJldHVybiAwOw0KLX0NCi0jZW5kaWYNCi0NCiBzdGF0aWMgY29uc3Qg c3RydWN0IGhkYV9jb2RlY19vcHMgY29uZXhhbnRfcGF0Y2hfb3BzID0gew0KIAkuYnVpbGRfY29u dHJvbHMgPSBjb25leGFudF9idWlsZF9jb250cm9scywNCiAJLmJ1aWxkX3BjbXMgPSBjb25leGFu dF9idWlsZF9wY21zLA0KIAkuaW5pdCA9IGNvbmV4YW50X2luaXQsDQogCS5mcmVlID0gY29uZXhh bnRfZnJlZSwNCiAJLnNldF9wb3dlcl9zdGF0ZSA9IGNvbmV4YW50X3NldF9wb3dlciwNCi0jaWZk ZWYgQ09ORklHX1NORF9IREFfUE9XRVJfU0FWRQ0KLQkuc3VzcGVuZCA9IGNvbmV4YW50X3N1c3Bl bmQsDQotI2VuZGlmDQotCS5yZWJvb3Rfbm90aWZ5ID0gc25kX2hkYV9zaHV0dXBfcGlucywNCiB9 Ow0KIA0KICNpZmRlZiBDT05GSUdfU05EX0hEQV9JTlBVVF9CRUVQDQpAQCAtNDQyOSwxMCArNDQx Nyw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGRhX2NvZGVjX29wcyBjeF9hdXRvX3BhdGNoX29w cyA9IHsNCiAJLmluaXQgPSBjeF9hdXRvX2luaXQsDQogCS5mcmVlID0gY29uZXhhbnRfZnJlZSwN CiAJLnVuc29sX2V2ZW50ID0gY3hfYXV0b191bnNvbF9ldmVudCwNCi0jaWZkZWYgQ09ORklHX1NO RF9IREFfUE9XRVJfU0FWRQ0KLQkuc3VzcGVuZCA9IGNvbmV4YW50X3N1c3BlbmQsDQotI2VuZGlm DQotCS5yZWJvb3Rfbm90aWZ5ID0gc25kX2hkYV9zaHV0dXBfcGlucywNCiB9Ow0KIA0KIC8qDQpA QCAtNDYxNCw2ICs0NTk4LDE4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGRhX2NvZGVjX3ByZXNl dCBzbmRfaGRhX3ByZXNldF9jb25leGFudFtdID0gew0KIAkgIC5wYXRjaCA9IHBhdGNoX2NvbmV4 YW50X2F1dG8gfSwNCiAJeyAuaWQgPSAweDE0ZjE1MGI5LCAubmFtZSA9ICJDWDIwNjY1IiwNCiAJ ICAucGF0Y2ggPSBwYXRjaF9jb25leGFudF9hdXRvIH0sDQorCXsgLmlkID0gMHgxNGYxNTEwZiwg Lm5hbWUgPSAiQ1gyMDc1MS8yIiwNCisJICAucGF0Y2ggPSBwYXRjaF9jb25leGFudF9hdXRvIH0s DQorCXsgLmlkID0gMHgxNGYxNTExMCwgLm5hbWUgPSAiQ1gyMDc1MS8yIiwNCisJICAucGF0Y2gg PSBwYXRjaF9jb25leGFudF9hdXRvIH0sDQorCXsgLmlkID0gMHgxNGYxNTExMSwgLm5hbWUgPSAi Q1gyMDc1My80IiwNCisJICAucGF0Y2ggPSBwYXRjaF9jb25leGFudF9hdXRvIH0sDQorCXsgLmlk ID0gMHgxNGYxNTExMywgLm5hbWUgPSAiQ1gyMDc1NSIsDQorCSAgLnBhdGNoID0gcGF0Y2hfY29u ZXhhbnRfYXV0byB9LA0KKwl7IC5pZCA9IDB4MTRmMTUxMTQsIC5uYW1lID0gIkNYMjA3NTYiLA0K KwkgIC5wYXRjaCA9IHBhdGNoX2NvbmV4YW50X2F1dG8gfSwNCisJeyAuaWQgPSAweDE0ZjE1MTE1 LCAubmFtZSA9ICJDWDIwNzU3IiwNCisJICAucGF0Y2ggPSBwYXRjaF9jb25leGFudF9hdXRvIH0s DQogCXt9IC8qIHRlcm1pbmF0b3IgKi8NCiB9Ow0KIA0KQEAgLTQ2MzQsNiArNDYzMCwxMiBAQCBN T0RVTEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6MTRmMTUwYWIiKTsNCiBNT0RVTEVfQUxJQVMo InNuZC1oZGEtY29kZWMtaWQ6MTRmMTUwYWMiKTsNCiBNT0RVTEVfQUxJQVMoInNuZC1oZGEtY29k ZWMtaWQ6MTRmMTUwYjgiKTsNCiBNT0RVTEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6MTRmMTUw YjkiKTsNCitNT0RVTEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6MTRmMTUxMGYiKTsNCitNT0RV TEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6MTRmMTUxMTAiKTsNCitNT0RVTEVfQUxJQVMoInNu ZC1oZGEtY29kZWMtaWQ6MTRmMTUxMTEiKTsNCitNT0RVTEVfQUxJQVMoInNuZC1oZGEtY29kZWMt aWQ6MTRmMTUxMTMiKTsNCitNT0RVTEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6MTRmMTUxMTQi KTsNCitNT0RVTEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6MTRmMTUxMTUiKTsNCiANCiBNT0RV TEVfTElDRU5TRSgiR1BMIik7DQogTU9EVUxFX0RFU0NSSVBUSU9OKCJDb25leGFudCBIRC1hdWRp byBjb2RlYyIpOw0KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd20yMDAwLmMgYi9zb3Vu ZC9zb2MvY29kZWNzL3dtMjAwMC5jDQppbmRleCBhM2I5Y2JiLi5iYTAzZGMyIDEwMDY0NA0KLS0t IGEvc291bmQvc29jL2NvZGVjcy93bTIwMDAuYw0KKysrIGIvc291bmQvc29jL2NvZGVjcy93bTIw MDAuYw0KQEAgLTIyNCw5ICsyMjQsOSBAQCBzdGF0aWMgaW50IHdtMjAwMF9wb3dlcl91cChzdHJ1 Y3QgaTJjX2NsaWVudCAqaTJjLCBpbnQgYW5hbG9ndWUpDQogDQogCXJldCA9IHdtMjAwMF9yZWFk KGkyYywgV00yMDAwX1JFR19TUEVFQ0hfQ0xBUklUWSk7DQogCWlmICh3bTIwMDAtPnNwZWVjaF9j bGFyaXR5KQ0KLQkJcmV0ICY9IH5XTTIwMDBfU1BFRUNIX0NMQVJJVFk7DQotCWVsc2UNCiAJCXJl dCB8PSBXTTIwMDBfU1BFRUNIX0NMQVJJVFk7DQorCWVsc2UNCisJCXJldCAmPSB+V00yMDAwX1NQ RUVDSF9DTEFSSVRZOw0KIAl3bTIwMDBfd3JpdGUoaTJjLCBXTTIwMDBfUkVHX1NQRUVDSF9DTEFS SVRZLCByZXQpOw0KIA0KIAl3bTIwMDBfd3JpdGUoaTJjLCBXTTIwMDBfUkVHX1NZU19TVEFSVDAs IDB4MzMpOw0KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd201MTAwLmMgYi9zb3VuZC9z b2MvY29kZWNzL3dtNTEwMC5jDQppbmRleCA0MmQ5MDM5Li5hMGNkYTFiIDEwMDY0NA0KLS0tIGEv c291bmQvc29jL2NvZGVjcy93bTUxMDAuYw0KKysrIGIvc291bmQvc29jL2NvZGVjcy93bTUxMDAu Yw0KQEAgLTE0NDYsMTUgKzE0NDYsOSBAQCBzdGF0aWMgaW50IHdtNTEwMF9zZXRfZm10KHN0cnVj dCBzbmRfc29jX2RhaSAqZGFpLCB1bnNpZ25lZCBpbnQgZm10KQ0KIAljYXNlIFNORF9TT0NfREFJ Rk1UX0RTUF9BOg0KIAkJbWFzayA9IDA7DQogCQlicmVhazsNCi0JY2FzZSBTTkRfU09DX0RBSUZN VF9EU1BfQjoNCi0JCW1hc2sgPSAxOw0KLQkJYnJlYWs7DQogCWNhc2UgU05EX1NPQ19EQUlGTVRf STJTOg0KIAkJbWFzayA9IDI7DQogCQlicmVhazsNCi0JY2FzZSBTTkRfU09DX0RBSUZNVF9MRUZU X0o6DQotCQltYXNrID0gMzsNCi0JCWJyZWFrOw0KIAlkZWZhdWx0Og0KIAkJZGV2X2Vycihjb2Rl Yy0+ZGV2LCAiVW5zdXBwb3J0ZWQgREFJIGZvcm1hdCAlZFxuIiwNCiAJCQlmbXQgJiBTTkRfU09D X0RBSUZNVF9GT1JNQVRfTUFTSyk7DQpkaWZmIC0tZ2l0IGEvc291bmQvdXNiL2VuZHBvaW50LmMg Yi9zb3VuZC91c2IvZW5kcG9pbnQuYw0KaW5kZXggMjRjNTExNC4uOWFiMmIzZSAxMDA2NDQNCi0t LSBhL3NvdW5kL3VzYi9lbmRwb2ludC5jDQorKysgYi9zb3VuZC91c2IvZW5kcG9pbnQuYw0KQEAg LTE0OCwxMCArMTQ4LDggQEAgdm9pZCBzbmRfdXNiX3JlbGVhc2Vfc3Vic3RyZWFtX3VyYnMoc3Ry dWN0IHNuZF91c2Jfc3Vic3RyZWFtICpzdWJzLCBpbnQgZm9yY2UpDQogCWludCBpOw0KIA0KIAkv KiBzdG9wIHVyYnMgKHRvIGJlIHN1cmUpICovDQotCWlmICghc3Vicy0+c3RyZWFtLT5jaGlwLT5z aHV0ZG93bikgew0KLQkJZGVhY3RpdmF0ZV91cmJzKHN1YnMsIGZvcmNlLCAxKTsNCi0JCXdhaXRf Y2xlYXJfdXJicyhzdWJzKTsNCi0JfQ0KKwlkZWFjdGl2YXRlX3VyYnMoc3VicywgZm9yY2UsIDEp Ow0KKwl3YWl0X2NsZWFyX3VyYnMoc3Vicyk7DQogDQogCWZvciAoaSA9IDA7IGkgPCBNQVhfVVJC UzsgaSsrKQ0KIAkJcmVsZWFzZV91cmJfY3R4KCZzdWJzLT5kYXRhdXJiW2ldKTsNCmRpZmYgLS1n aXQgYS9zb3VuZC91c2IvbWl4ZXIuYyBiL3NvdW5kL3VzYi9taXhlci5jDQppbmRleCA2NzMwYTMz Li45MTIxZGVlIDEwMDY0NA0KLS0tIGEvc291bmQvdXNiL21peGVyLmMNCisrKyBiL3NvdW5kL3Vz Yi9taXhlci5jDQpAQCAtMTIzOSwxNiArMTIzOSwyMyBAQCBzdGF0aWMgaW50IHBhcnNlX2F1ZGlv X2ZlYXR1cmVfdW5pdChzdHJ1Y3QgbWl4ZXJfYnVpbGQgKnN0YXRlLCBpbnQgdW5pdGlkLCB2b2lk DQogCQl9DQogCQljaGFubmVscyA9IChoZHItPmJMZW5ndGggLSA3KSAvIGNzaXplIC0gMTsNCiAJ CWJtYUNvbnRyb2xzID0gaGRyLT5ibWFDb250cm9sczsNCisJCWlmIChoZHItPmJMZW5ndGggPCA3 ICsgY3NpemUpIHsNCisJCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJ1c2JhdWRpbzogdW5pdCAldTog Ig0KKwkJCQkgICAiaW52YWxpZCBVQUNfRkVBVFVSRV9VTklUIGRlc2NyaXB0b3JcbiIsDQorCQkJ CSAgIHVuaXRpZCk7DQorCQkJcmV0dXJuIC1FSU5WQUw7DQorCQl9DQogCX0gZWxzZSB7DQogCQlz dHJ1Y3QgdWFjMl9mZWF0dXJlX3VuaXRfZGVzY3JpcHRvciAqZnRyID0gX2Z0cjsNCiAJCWNzaXpl ID0gNDsNCiAJCWNoYW5uZWxzID0gKGhkci0+Ykxlbmd0aCAtIDYpIC8gNCAtIDE7DQogCQlibWFD b250cm9scyA9IGZ0ci0+Ym1hQ29udHJvbHM7DQotCX0NCi0NCi0JaWYgKGhkci0+Ykxlbmd0aCA8 IDcgfHwgIWNzaXplIHx8IGhkci0+Ykxlbmd0aCA8IDcgKyBjc2l6ZSkgew0KLQkJc25kX3ByaW50 ayhLRVJOX0VSUiAidXNiYXVkaW86IHVuaXQgJXU6IGludmFsaWQgVUFDX0ZFQVRVUkVfVU5JVCBk ZXNjcmlwdG9yXG4iLCB1bml0aWQpOw0KLQkJcmV0dXJuIC1FSU5WQUw7DQorCQlpZiAoaGRyLT5i TGVuZ3RoIDwgNiArIGNzaXplKSB7DQorCQkJc25kX3ByaW50ayhLRVJOX0VSUiAidXNiYXVkaW86 IHVuaXQgJXU6ICINCisJCQkJICAgImludmFsaWQgVUFDX0ZFQVRVUkVfVU5JVCBkZXNjcmlwdG9y XG4iLA0KKwkJCQkgICB1bml0aWQpOw0KKwkJCXJldHVybiAtRUlOVkFMOw0KKwkJfQ0KIAl9DQog DQogCS8qIHBhcnNlIHRoZSBzb3VyY2UgdW5pdCAqLw0KZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi9x dWlya3MuYyBiL3NvdW5kL3VzYi9xdWlya3MuYw0KaW5kZXggYTNkZGFjMC4uMWIyNzVmMCAxMDA2 NDQNCi0tLSBhL3NvdW5kL3VzYi9xdWlya3MuYw0KKysrIGIvc291bmQvdXNiL3F1aXJrcy5jDQpA QCAtMzgzLDExICszODMsMTMgQEAgc3RhdGljIGludCBzbmRfdXNiX2Zhc3R0cmFja3Byb19ib290 X3F1aXJrKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYpDQogCQkgKiBydWxlcw0KIAkJICovDQogCQll cnIgPSB1c2JfZHJpdmVyX3NldF9jb25maWd1cmF0aW9uKGRldiwgMik7DQotCQlpZiAoZXJyIDwg MCkgew0KKwkJaWYgKGVyciA8IDApDQogCQkJc25kX3ByaW50ZGQoImVycm9yIHVzYl9kcml2ZXJf c2V0X2NvbmZpZ3VyYXRpb246ICVkXG4iLA0KIAkJCQkgICAgZXJyKTsNCi0JCQlyZXR1cm4gLUVO T0RFVjsNCi0JCX0NCisJCS8qIEFsd2F5cyByZXR1cm4gYW4gZXJyb3IsIHNvIHRoYXQgd2Ugc3Rv cCBjcmVhdGluZyBhIGRldmljZQ0KKwkJICAgdGhhdCB3aWxsIGp1c3QgYmUgZGVzdHJveWVkIGFu ZCByZWNyZWF0ZWQgd2l0aCBhIG5ldw0KKwkJICAgY29uZmlndXJhdGlvbiAqLw0KKwkJcmV0dXJu IC1FTk9ERVY7DQogCX0gZWxzZQ0KIAkJc25kX3ByaW50ayhLRVJOX0lORk8gInVzYi1hdWRpbzog RmFzdCBUcmFjayBQcm8gY29uZmlnIE9LXG4iKTsNCiANCj== --=-hyLbYFfivzqxqUZ14Uzp-- --=-a/l+JD8AyDZmyOtXxtJ0 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAUQ6ARee/yOyVhhEJAQpghw//R/DDMVkzTYQLhnua4KCJ3Q5P1z9kDs8O kQfa8VJ8BikJW7hiFbMYDHyYSolplhf/CJfqjTpLEGqKWU4pWGs5eYw7EtSSQh0q UZgp6hYI2xLG1uYZgLwSYCRdIwW2WaEQQuO4unNT1mfSiOTBLTZGkhhQTvqkYx4z rdInJDDZ5/RzJMMlAMFh5wPGMrz4eFAOs5gmKq0id2UqGU3PZtr9Vl2ZzJe53ATc 4fVoGes6At4XU8KTwGBF0ylM1+fNOHDCAtiEzrA97886Hq6tlm/HIvtB7cQ4gBGX bonhQsQ48I8zxdD29hUOzcOKWM/JsF7sXAO3SNo1dD3Q7ZsHC1/ip30RD2XK6GQE om2vFEjBfS+MKLgJckTDrM/frbhJRsT11HtktexCqjPAHeB1luCJrLMa5TSao3eI SLoUIDd/rDzo03zz1U5uOINttDwOIbVKeKQmqJrd0WBR546fCbKrA2gDPY+NDRX5 o6w3YCUxvwvErX/5s5HPz93MoonXuk13GdwjZCV3+KgkEUlfjifxTJ0/S08tRZGY MBkyBesCY7euopFdIU1sXOYkhgE7xsWU0lkwBCuYp8cGG/6I7/fEGr89assTb5PA lDG5ldt0BTAhIP0ADNsi7E2VVfqHeYn8Xn/AeKqS1ys0CtbsmwpQwRLZl7JhVNzA vL9b8bJEKMQ= =m0EY -----END PGP SIGNATURE----- --=-a/l+JD8AyDZmyOtXxtJ0--