From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752877Ab3HAJai (ORCPT ); Thu, 1 Aug 2013 05:30:38 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:51298 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751108Ab3HAJaa (ORCPT ); Thu, 1 Aug 2013 05:30:30 -0400 Message-ID: <1375349410.3556.12.camel@deadeye.wl.decadent.org.uk> Subject: Re: [00/84] 3.2.50-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org Date: Thu, 01 Aug 2013 11:30:10 +0200 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-ruHl2R1O/BExpXzrtRXG" X-Mailer: Evolution 3.4.4-3 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 151.216.67.181 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 --=-ruHl2R1O/BExpXzrtRXG Content-Type: multipart/mixed; boundary="=-73XqCEdJcGj1Xzg6sgZK" --=-73XqCEdJcGj1Xzg6sgZK Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.50-rc1 relative to 3.2.49. Ben. --=20 Ben Hutchings Who are all these weirdos? - David Bowie, about L-Space IRC channel #afp --=-73XqCEdJcGj1Xzg6sgZK Content-Disposition: attachment; filename="linux-3.2.50-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.50-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUNCmluZGV4IDJlM2Q3OTEuLjNkMWI2MmQg MTAwNjQ0DQotLS0gYS9NYWtlZmlsZQ0KKysrIGIvTWFrZWZpbGUNCkBAIC0xLDcgKzEsNyBAQA0K IFZFUlNJT04gPSAzDQogUEFUQ0hMRVZFTCA9IDINCi1TVUJMRVZFTCA9IDQ5DQotRVhUUkFWRVJT SU9OID0NCitTVUJMRVZFTCA9IDUwDQorRVhUUkFWRVJTSU9OID0gLXJjMQ0KIE5BTUUgPSBTYWJl ci10b290aGVkIFNxdWlycmVsDQogDQogIyAqRE9DVU1FTlRBVElPTioNCmRpZmYgLS1naXQgYS9h cmNoL2FybS9tYWNoLW9tYXAyL2JvYXJkLXJ4NTEtcGVyaXBoZXJhbHMuYyBiL2FyY2gvYXJtL21h Y2gtb21hcDIvYm9hcmQtcng1MS1wZXJpcGhlcmFscy5jDQppbmRleCBjMTVjNWM5Li5hMzZhNWEz IDEwMDY0NA0KLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1yeDUxLXBlcmlwaGVyYWxz LmMNCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtcng1MS1wZXJpcGhlcmFscy5jDQpA QCAtNTgsMTEgKzU4LDExIEBADQogDQogI2RlZmluZSBSWDUxX1VTQl9UUkFOU0NFSVZFUl9SU1Rf R1BJTwk2Nw0KIA0KLS8qIGxpc3QgYWxsIHNwaSBkZXZpY2VzIGhlcmUgKi8NCisvKiBMaXN0IGFs bCBTUEkgZGV2aWNlcyBoZXJlLiBOb3RlIHRoYXQgdGhlIGxpc3QvcHJvYmUgb3JkZXIgc2VlbXMg dG8gbWF0dGVyISAqLw0KIGVudW0gew0KIAlSWDUxX1NQSV9XTDEyNTEsDQotCVJYNTFfU1BJX01J UElELAkJLyogTENEIHBhbmVsICovDQogCVJYNTFfU1BJX1RTQzIwMDUsCS8qIFRvdWNoIENvbnRy b2xsZXIgKi8NCisJUlg1MV9TUElfTUlQSUQsCQkvKiBMQ0QgcGFuZWwgKi8NCiB9Ow0KIA0KIHN0 YXRpYyBzdHJ1Y3Qgd2wxMnh4X3BsYXRmb3JtX2RhdGEgd2wxMjUxX3BkYXRhOw0KZGlmZiAtLWdp dCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9tb2R1bGUuaCBiL2FyY2gvcG93ZXJwYy9pbmNs dWRlL2FzbS9tb2R1bGUuaA0KaW5kZXggMDE5MmE0ZS4uODBkZTY0YiAxMDA2NDQNCi0tLSBhL2Fy Y2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9tb2R1bGUuaA0KKysrIGIvYXJjaC9wb3dlcnBjL2luY2x1 ZGUvYXNtL21vZHVsZS5oDQpAQCAtODcsMTAgKzg3LDkgQEAgc3RydWN0IGV4Y2VwdGlvbl90YWJs ZV9lbnRyeTsNCiB2b2lkIHNvcnRfZXhfdGFibGUoc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRy eSAqc3RhcnQsDQogCQkgICBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpmaW5pc2gpOw0K IA0KLSNpZmRlZiBDT05GSUdfTU9EVkVSU0lPTlMNCisjaWYgZGVmaW5lZChDT05GSUdfTU9EVkVS U0lPTlMpICYmIGRlZmluZWQoQ09ORklHX1BQQzY0KQ0KICNkZWZpbmUgQVJDSF9SRUxPQ0FURVNf S0NSQ1RBQg0KLQ0KLWV4dGVybiBjb25zdCB1bnNpZ25lZCBsb25nIHJlbG9jX3N0YXJ0W107DQor I2RlZmluZSByZWxvY19zdGFydCBQSFlTSUNBTF9TVEFSVA0KICNlbmRpZg0KICNlbmRpZiAvKiBf X0tFUk5FTF9fICovDQogI2VuZGlmCS8qIF9BU01fUE9XRVJQQ19NT0RVTEVfSCAqLw0KZGlmZiAt LWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvcG93ZXJwYy9r ZXJuZWwvdm1saW51eC5sZHMuUw0KaW5kZXggOTIwMjc2Yy4uM2U4ZmU0YiAxMDA2NDQNCi0tLSBh L2FyY2gvcG93ZXJwYy9rZXJuZWwvdm1saW51eC5sZHMuUw0KKysrIGIvYXJjaC9wb3dlcnBjL2tl cm5lbC92bWxpbnV4Lmxkcy5TDQpAQCAtMzgsOSArMzgsNiBAQCBqaWZmaWVzID0gamlmZmllc182 NCArIDQ7DQogI2VuZGlmDQogU0VDVElPTlMNCiB7DQotCS4gPSAwOw0KLQlyZWxvY19zdGFydCA9 IC47DQotDQogCS4gPSBLRVJORUxCQVNFOw0KIA0KIC8qDQpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFy Yy9rZXJuZWwvYXNtLW9mZnNldHMuYyBiL2FyY2gvc3BhcmMva2VybmVsL2FzbS1vZmZzZXRzLmMN CmluZGV4IDY4ZjdlMTEuLmNlNDgyMDMgMTAwNjQ0DQotLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC9h c20tb2Zmc2V0cy5jDQorKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9hc20tb2Zmc2V0cy5jDQpAQCAt MzQsNiArMzQsOCBAQCBpbnQgZm9vKHZvaWQpDQogCURFRklORShBT0ZGX3Rhc2tfdGhyZWFkLCBv ZmZzZXRvZihzdHJ1Y3QgdGFza19zdHJ1Y3QsIHRocmVhZCkpOw0KIAlCTEFOSygpOw0KIAlERUZJ TkUoQU9GRl9tbV9jb250ZXh0LCBvZmZzZXRvZihzdHJ1Y3QgbW1fc3RydWN0LCBjb250ZXh0KSk7 DQorCUJMQU5LKCk7DQorCURFRklORShWTUFfVk1fTU0sICAgIG9mZnNldG9mKHN0cnVjdCB2bV9h cmVhX3N0cnVjdCwgdm1fbW0pKTsNCiANCiAJLyogREVGSU5FKE5VTV9VU0VSX1NFR01FTlRTLCBU QVNLX1NJWkU+PjI4KTsgKi8NCiAJcmV0dXJuIDA7DQpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9t bS9oeXBlcnNwYXJjLlMgYi9hcmNoL3NwYXJjL21tL2h5cGVyc3BhcmMuUw0KaW5kZXggNDRhYWQz Mi4uOTY5Zjk2NCAxMDA2NDQNCi0tLSBhL2FyY2gvc3BhcmMvbW0vaHlwZXJzcGFyYy5TDQorKysg Yi9hcmNoL3NwYXJjL21tL2h5cGVyc3BhcmMuUw0KQEAgLTc0LDcgKzc0LDcgQEAgaHlwZXJzcGFy Y19mbHVzaF9jYWNoZV9tbV9vdXQ6DQogDQogCS8qIFRoZSB0aGluZ3Mgd2UgZG8gZm9yIHBlcmZv cm1hbmNlLi4uICovDQogaHlwZXJzcGFyY19mbHVzaF9jYWNoZV9yYW5nZToNCi0JbGQJWyVvMCAr IDB4MF0sICVvMAkJLyogWFhYIHZtYS0+dm1fbW0sIEdST1NTIFhYWCAqLw0KKwlsZAlbJW8wICsg Vk1BX1ZNX01NXSwgJW8wDQogI2lmbmRlZiBDT05GSUdfU01QDQogCWxkCVslbzAgKyBBT0ZGX21t X2NvbnRleHRdLCAlZzENCiAJY21wCSVnMSwgLTENCkBAIC0xNjMsNyArMTYzLDcgQEAgaHlwZXJz cGFyY19mbHVzaF9jYWNoZV9yYW5nZV9vdXQ6DQogCSAqLw0KIAkvKiBWZXJpZmllZCwgbXkgYXNz Li4uICovDQogaHlwZXJzcGFyY19mbHVzaF9jYWNoZV9wYWdlOg0KLQlsZAlbJW8wICsgMHgwXSwg JW8wCQkvKiBYWFggdm1hLT52bV9tbSwgR1JPU1MgWFhYICovDQorCWxkCVslbzAgKyBWTUFfVk1f TU1dLCAlbzANCiAJbGQJWyVvMCArIEFPRkZfbW1fY29udGV4dF0sICVnMg0KICNpZm5kZWYgQ09O RklHX1NNUA0KIAljbXAJJWcyLCAtMQ0KQEAgLTI4NCw3ICsyODQsNyBAQCBoeXBlcnNwYXJjX2Zs dXNoX3RsYl9tbV9vdXQ6DQogCSBzdGEJJWc1LCBbJWcxXSBBU0lfTV9NTVVSRUdTDQogDQogaHlw ZXJzcGFyY19mbHVzaF90bGJfcmFuZ2U6DQotCWxkCVslbzAgKyAweDAwXSwgJW8wCS8qIFhYWCB2 bWEtPnZtX21tIEdST1NTIFhYWCAqLw0KKwlsZAlbJW8wICsgVk1BX1ZNX01NXSwgJW8wDQogCW1v dglTUk1NVV9DVFhfUkVHLCAlZzENCiAJbGQJWyVvMCArIEFPRkZfbW1fY29udGV4dF0sICVvMw0K IAlsZGEJWyVnMV0gQVNJX01fTU1VUkVHUywgJWc1DQpAQCAtMzA3LDcgKzMwNyw3IEBAIGh5cGVy c3BhcmNfZmx1c2hfdGxiX3JhbmdlX291dDoNCiAJIHN0YQklZzUsIFslZzFdIEFTSV9NX01NVVJF R1MNCiANCiBoeXBlcnNwYXJjX2ZsdXNoX3RsYl9wYWdlOg0KLQlsZAlbJW8wICsgMHgwMF0sICVv MAkvKiBYWFggdm1hLT52bV9tbSBHUk9TUyBYWFggKi8NCisJbGQJWyVvMCArIFZNQV9WTV9NTV0s ICVvMA0KIAltb3YJU1JNTVVfQ1RYX1JFRywgJWcxDQogCWxkCVslbzAgKyBBT0ZGX21tX2NvbnRl eHRdLCAlbzMNCiAJYW5kbgklbzEsIChQQUdFX1NJWkUgLSAxKSwgJW8xDQpkaWZmIC0tZ2l0IGEv YXJjaC9zcGFyYy9tbS9pbml0XzY0LmMgYi9hcmNoL3NwYXJjL21tL2luaXRfNjQuYw0KaW5kZXgg NmZmNGQ3OC4uYjQ5ODlmOSAxMDA2NDQNCi0tLSBhL2FyY2gvc3BhcmMvbW0vaW5pdF82NC5jDQor KysgYi9hcmNoL3NwYXJjL21tL2luaXRfNjQuYw0KQEAgLTEwNzEsNyArMTA3MSwxNCBAQCBzdGF0 aWMgaW50IF9faW5pdCBncmFiX21ibG9ja3Moc3RydWN0IG1kZXNjX2hhbmRsZSAqbWQpDQogCQlt LT5zaXplID0gKnZhbDsNCiAJCXZhbCA9IG1kZXNjX2dldF9wcm9wZXJ0eShtZCwgbm9kZSwNCiAJ CQkJCSAiYWRkcmVzcy1jb25ncnVlbmNlLW9mZnNldCIsIE5VTEwpOw0KLQkJbS0+b2Zmc2V0ID0g KnZhbDsNCisNCisJCS8qIFRoZSBhZGRyZXNzLWNvbmdydWVuY2Utb2Zmc2V0IHByb3BlcnR5IGlz IG9wdGlvbmFsLg0KKwkJICogRXhwbGljaXR5IHplcm8gaXQgYmUgaWRlbnRpZnR5IHRoaXMuDQor CQkgKi8NCisJCWlmICh2YWwpDQorCQkJbS0+b2Zmc2V0ID0gKnZhbDsNCisJCWVsc2UNCisJCQlt LT5vZmZzZXQgPSAwVUw7DQogDQogCQludW1hZGJnKCJNQkxPQ0tbJWRdOiBiYXNlWyVsbHhdIHNp emVbJWxseF0gb2Zmc2V0WyVsbHhdXG4iLA0KIAkJCWNvdW50IC0gMSwgbS0+YmFzZSwgbS0+c2l6 ZSwgbS0+b2Zmc2V0KTsNCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL21tL3N3aWZ0LlMgYi9hcmNo L3NwYXJjL21tL3N3aWZ0LlMNCmluZGV4IGM4MDFjMzkuLjVkMmI4OGQgMTAwNjQ0DQotLS0gYS9h cmNoL3NwYXJjL21tL3N3aWZ0LlMNCisrKyBiL2FyY2gvc3BhcmMvbW0vc3dpZnQuUw0KQEAgLTEw NSw3ICsxMDUsNyBAQCBzd2lmdF9mbHVzaF9jYWNoZV9tbV9vdXQ6DQogDQogCS5nbG9ibAlzd2lm dF9mbHVzaF9jYWNoZV9yYW5nZQ0KIHN3aWZ0X2ZsdXNoX2NhY2hlX3JhbmdlOg0KLQlsZAlbJW8w ICsgMHgwXSwgJW8wCQkvKiBYWFggdm1hLT52bV9tbSwgR1JPU1MgWFhYICovDQorCWxkCVslbzAg KyBWTUFfVk1fTU1dLCAlbzANCiAJc3ViCSVvMiwgJW8xLCAlbzINCiAJc2V0aGkJJWhpKDQwOTYp LCAlbzMNCiAJY21wCSVvMiwgJW8zDQpAQCAtMTE2LDcgKzExNiw3IEBAIHN3aWZ0X2ZsdXNoX2Nh Y2hlX3JhbmdlOg0KIA0KIAkuZ2xvYmwJc3dpZnRfZmx1c2hfY2FjaGVfcGFnZQ0KIHN3aWZ0X2Zs dXNoX2NhY2hlX3BhZ2U6DQotCWxkCVslbzAgKyAweDBdLCAlbzAJCS8qIFhYWCB2bWEtPnZtX21t LCBHUk9TUyBYWFggKi8NCisJbGQJWyVvMCArIFZNQV9WTV9NTV0sICVvMA0KIDcwOg0KIAlsZAlb JW8wICsgQU9GRl9tbV9jb250ZXh0XSwgJWcyDQogCWNtcAklZzIsIC0xDQpAQCAtMjE5LDcgKzIx OSw3IEBAIHN3aWZ0X2ZsdXNoX3NpZ19pbnNuczoNCiAJLmdsb2JsCXN3aWZ0X2ZsdXNoX3RsYl9y YW5nZQ0KIAkuZ2xvYmwJc3dpZnRfZmx1c2hfdGxiX2FsbA0KIHN3aWZ0X2ZsdXNoX3RsYl9yYW5n ZToNCi0JbGQJWyVvMCArIDB4MDBdLCAlbzAJLyogWFhYIHZtYS0+dm1fbW0gR1JPU1MgWFhYICov DQorCWxkCVslbzAgKyBWTUFfVk1fTU1dLCAlbzANCiBzd2lmdF9mbHVzaF90bGJfbW06DQogCWxk CVslbzAgKyBBT0ZGX21tX2NvbnRleHRdLCAlZzINCiAJY21wCSVnMiwgLTENCkBAIC0yMzMsNyAr MjMzLDcgQEAgc3dpZnRfZmx1c2hfdGxiX2FsbF9vdXQ6DQogDQogCS5nbG9ibAlzd2lmdF9mbHVz aF90bGJfcGFnZQ0KIHN3aWZ0X2ZsdXNoX3RsYl9wYWdlOg0KLQlsZAlbJW8wICsgMHgwMF0sICVv MAkvKiBYWFggdm1hLT52bV9tbSBHUk9TUyBYWFggKi8NCisJbGQJWyVvMCArIFZNQV9WTV9NTV0s ICVvMA0KIAltb3YJU1JNTVVfQ1RYX1JFRywgJWcxDQogCWxkCVslbzAgKyBBT0ZGX21tX2NvbnRl eHRdLCAlbzMNCiAJYW5kbgklbzEsIChQQUdFX1NJWkUgLSAxKSwgJW8xDQpkaWZmIC0tZ2l0IGEv YXJjaC9zcGFyYy9tbS90bGIuYyBiL2FyY2gvc3BhcmMvbW0vdGxiLmMNCmluZGV4IGFmZDAyMWUu LjA3MmY1NTMgMTAwNjQ0DQotLS0gYS9hcmNoL3NwYXJjL21tL3RsYi5jDQorKysgYi9hcmNoL3Nw YXJjL21tL3RsYi5jDQpAQCAtMTE1LDggKzExNSw4IEBAIG5vX2NhY2hlX2ZsdXNoOg0KIAl9DQog DQogCWlmICghdGItPmFjdGl2ZSkgew0KLQkJZ2xvYmFsX2ZsdXNoX3RsYl9wYWdlKG1tLCB2YWRk cik7DQogCQlmbHVzaF90c2JfdXNlcl9wYWdlKG1tLCB2YWRkcik7DQorCQlnbG9iYWxfZmx1c2hf dGxiX3BhZ2UobW0sIHZhZGRyKTsNCiAJCWdvdG8gb3V0Ow0KIAl9DQogDQpkaWZmIC0tZ2l0IGEv YXJjaC9zcGFyYy9tbS90c3VuYW1pLlMgYi9hcmNoL3NwYXJjL21tL3RzdW5hbWkuUw0KaW5kZXgg NGU1NWU4Zi4uYmYxMGEzNCAxMDA2NDQNCi0tLSBhL2FyY2gvc3BhcmMvbW0vdHN1bmFtaS5TDQor KysgYi9hcmNoL3NwYXJjL21tL3RzdW5hbWkuUw0KQEAgLTI0LDcgKzI0LDcgQEANCiAJLyogU2xp aWljay4uLiAqLw0KIHRzdW5hbWlfZmx1c2hfY2FjaGVfcGFnZToNCiB0c3VuYW1pX2ZsdXNoX2Nh Y2hlX3JhbmdlOg0KLQlsZAlbJW8wICsgMHgwXSwgJW8wCS8qIFhYWCB2bWEtPnZtX21tLCBHUk9T UyBYWFggKi8NCisJbGQJWyVvMCArIFZNQV9WTV9NTV0sICVvMA0KIHRzdW5hbWlfZmx1c2hfY2Fj aGVfbW06DQogCWxkCVslbzAgKyBBT0ZGX21tX2NvbnRleHRdLCAlZzINCiAJY21wCSVnMiwgLTEN CkBAIC00Niw3ICs0Niw3IEBAIHRzdW5hbWlfZmx1c2hfc2lnX2luc25zOg0KIA0KIAkvKiBNb3Jl IHNsaWNrIHN0dWZmLi4uICovDQogdHN1bmFtaV9mbHVzaF90bGJfcmFuZ2U6DQotCWxkCVslbzAg KyAweDAwXSwgJW8wCS8qIFhYWCB2bWEtPnZtX21tIEdST1NTIFhYWCAqLw0KKwlsZAlbJW8wICsg Vk1BX1ZNX01NXSwgJW8wDQogdHN1bmFtaV9mbHVzaF90bGJfbW06DQogCWxkCVslbzAgKyBBT0ZG X21tX2NvbnRleHRdLCAlZzINCiAJY21wCSVnMiwgLTENCkBAIC02NSw3ICs2NSw3IEBAIHRzdW5h bWlfZmx1c2hfdGxiX291dDoNCiANCiAJLyogVGhpcyBvbmUgY2FuIGJlIGRvbmUgaW4gYSBmaW5l IGdyYWluZWQgbWFubmVyLi4uICovDQogdHN1bmFtaV9mbHVzaF90bGJfcGFnZToNCi0JbGQJWyVv MCArIDB4MDBdLCAlbzAJLyogWFhYIHZtYS0+dm1fbW0gR1JPU1MgWFhYICovDQorCWxkCVslbzAg KyBWTUFfVk1fTU1dLCAlbzANCiAJbW92CVNSTU1VX0NUWF9SRUcsICVnMQ0KIAlsZAlbJW8wICsg QU9GRl9tbV9jb250ZXh0XSwgJW8zDQogCWFuZG4JJW8xLCAoUEFHRV9TSVpFIC0gMSksICVvMQ0K ZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvbW0vdmlraW5nLlMgYi9hcmNoL3NwYXJjL21tL3Zpa2lu Zy5TDQppbmRleCA2ZGZjYzEzLi5hNTE2MzcyIDEwMDY0NA0KLS0tIGEvYXJjaC9zcGFyYy9tbS92 aWtpbmcuUw0KKysrIGIvYXJjaC9zcGFyYy9tbS92aWtpbmcuUw0KQEAgLTEwOSw3ICsxMDksNyBA QCB2aWtpbmdfbXhjY19mbHVzaF9wYWdlOg0KIHZpa2luZ19mbHVzaF9jYWNoZV9wYWdlOg0KIHZp a2luZ19mbHVzaF9jYWNoZV9yYW5nZToNCiAjaWZuZGVmIENPTkZJR19TTVANCi0JbGQJWyVvMCAr IDB4MF0sICVvMAkJLyogWFhYIHZtYS0+dm1fbW0sIEdST1NTIFhYWCAqLw0KKwlsZAlbJW8wICsg Vk1BX1ZNX01NXSwgJW8wDQogI2VuZGlmDQogdmlraW5nX2ZsdXNoX2NhY2hlX21tOg0KICNpZm5k ZWYgQ09ORklHX1NNUA0KQEAgLTE0OSw3ICsxNDksNyBAQCB2aWtpbmdfZmx1c2hfdGxiX21tOg0K ICNlbmRpZg0KIA0KIHZpa2luZ19mbHVzaF90bGJfcmFuZ2U6DQotCWxkCVslbzAgKyAweDAwXSwg JW8wCS8qIFhYWCB2bWEtPnZtX21tIEdST1NTIFhYWCAqLw0KKwlsZAlbJW8wICsgVk1BX1ZNX01N XSwgJW8wDQogCW1vdglTUk1NVV9DVFhfUkVHLCAlZzENCiAJbGQJWyVvMCArIEFPRkZfbW1fY29u dGV4dF0sICVvMw0KIAlsZGEJWyVnMV0gQVNJX01fTU1VUkVHUywgJWc1DQpAQCAtMTc0LDcgKzE3 NCw3IEBAIHZpa2luZ19mbHVzaF90bGJfcmFuZ2U6DQogI2VuZGlmDQogDQogdmlraW5nX2ZsdXNo X3RsYl9wYWdlOg0KLQlsZAlbJW8wICsgMHgwMF0sICVvMAkvKiBYWFggdm1hLT52bV9tbSBHUk9T UyBYWFggKi8NCisJbGQJWyVvMCArIFZNQV9WTV9NTV0sICVvMA0KIAltb3YJU1JNTVVfQ1RYX1JF RywgJWcxDQogCWxkCVslbzAgKyBBT0ZGX21tX2NvbnRleHRdLCAlbzMNCiAJbGRhCVslZzFdIEFT SV9NX01NVVJFR1MsICVnNQ0KQEAgLTI0MCw3ICsyNDAsNyBAQCBzdW40ZHNtcF9mbHVzaF90bGJf cmFuZ2U6DQogCXRzdAklZzUNCiAJYm5lCTNmDQogCSBtb3YJU1JNTVVfQ1RYX1JFRywgJWcxDQot CWxkCVslbzAgKyAweDAwXSwgJW8wCS8qIFhYWCB2bWEtPnZtX21tIEdST1NTIFhYWCAqLw0KKwls ZAlbJW8wICsgVk1BX1ZNX01NXSwgJW8wDQogCWxkCVslbzAgKyBBT0ZGX21tX2NvbnRleHRdLCAl bzMNCiAJbGRhCVslZzFdIEFTSV9NX01NVVJFR1MsICVnNQ0KIAlzZXRoaQklaGkofigoMSA8PCBT Uk1NVV9QR0RJUl9TSElGVCkgLSAxKSksICVvNA0KQEAgLTI2Niw3ICsyNjYsNyBAQCBzdW40ZHNt cF9mbHVzaF90bGJfcGFnZToNCiAJdHN0CSVnNQ0KIAlibmUJMmYNCiAJIG1vdglTUk1NVV9DVFhf UkVHLCAlZzENCi0JbGQJWyVvMCArIDB4MDBdLCAlbzAJLyogWFhYIHZtYS0+dm1fbW0gR1JPU1Mg WFhYICovDQorCWxkCVslbzAgKyBWTUFfVk1fTU1dLCAlbzANCiAJbGQJWyVvMCArIEFPRkZfbW1f Y29udGV4dF0sICVvMw0KIAlsZGEJWyVnMV0gQVNJX01fTU1VUkVHUywgJWc1DQogCWFuZAklbzEs IFBBR0VfTUFTSywgJW8xDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FjcGlfbWVtaG90cGx1 Zy5jIGIvZHJpdmVycy9hY3BpL2FjcGlfbWVtaG90cGx1Zy5jDQppbmRleCBkOTg1NzEzLi5mODE1 OTdmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hY3BpL2FjcGlfbWVtaG90cGx1Zy5jDQorKysgYi9k cml2ZXJzL2FjcGkvYWNwaV9tZW1ob3RwbHVnLmMNCkBAIC00MjEsNiArNDIxLDcgQEAgc3RhdGlj IGludCBhY3BpX21lbW9yeV9kZXZpY2VfYWRkKHN0cnVjdCBhY3BpX2RldmljZSAqZGV2aWNlKQ0K IAkvKiBHZXQgdGhlIHJhbmdlIGZyb20gdGhlIF9DUlMgKi8NCiAJcmVzdWx0ID0gYWNwaV9tZW1v cnlfZ2V0X2RldmljZV9yZXNvdXJjZXMobWVtX2RldmljZSk7DQogCWlmIChyZXN1bHQpIHsNCisJ CWRldmljZS0+ZHJpdmVyX2RhdGEgPSBOVUxMOw0KIAkJa2ZyZWUobWVtX2RldmljZSk7DQogCQly ZXR1cm4gcmVzdWx0Ow0KIAl9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL3ZpZGVvLmMgYi9k cml2ZXJzL2FjcGkvdmlkZW8uYw0KaW5kZXggZTE5ODk4ZC4uMjAyNjZiMSAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvYWNwaS92aWRlby5jDQorKysgYi9kcml2ZXJzL2FjcGkvdmlkZW8uYw0KQEAgLTQ0 OSw2ICs0NDksMTQgQEAgc3RhdGljIHN0cnVjdCBkbWlfc3lzdGVtX2lkIHZpZGVvX2RtaV90YWJs ZVtdIF9faW5pdGRhdGEgPSB7DQogCX0sDQogCXsNCiAJIC5jYWxsYmFjayA9IHZpZGVvX2lnbm9y ZV9pbml0aWFsX2JhY2tsaWdodCwNCisJIC5pZGVudCA9ICJGdWppdHN1IEU3NTMiLA0KKwkgLm1h dGNoZXMgPSB7DQorCQlETUlfTUFUQ0goRE1JX0JPQVJEX1ZFTkRPUiwgIkZVSklUU1UiKSwNCisJ CURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiTElGRUJPT0sgRTc1MyIpLA0KKwkJfSwNCisJ fSwNCisJew0KKwkgLmNhbGxiYWNrID0gdmlkZW9faWdub3JlX2luaXRpYWxfYmFja2xpZ2h0LA0K IAkgLmlkZW50ID0gIkhQIFBhdmlsaW9uIGRtNCIsDQogCSAubWF0Y2hlcyA9IHsNCiAJCURNSV9N QVRDSChETUlfQk9BUkRfVkVORE9SLCAiSGV3bGV0dC1QYWNrYXJkIiksDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9hdGEvYXRhX3BpaXguYyBiL2RyaXZlcnMvYXRhL2F0YV9waWl4LmMNCmluZGV4IDdh OTQ5YWYuLjViMGI1ZjcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2F0YS9hdGFfcGlpeC5jDQorKysg Yi9kcml2ZXJzL2F0YS9hdGFfcGlpeC5jDQpAQCAtMzUyLDcgKzM1Miw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwaWl4X3BjaV90YmxbXSA9IHsNCiAJLyogU0FUQSBDb250 cm9sbGVyIElERSAoV2VsbHNidXJnKSAqLw0KIAl7IDB4ODA4NiwgMHg4ZDAwLCBQQ0lfQU5ZX0lE LCBQQ0lfQU5ZX0lELCAwLCAwLCBpY2g4X3NhdGFfc25iIH0sDQogCS8qIFNBVEEgQ29udHJvbGxl ciBJREUgKFdlbGxzYnVyZykgKi8NCi0JeyAweDgwODYsIDB4OGQwOCwgUENJX0FOWV9JRCwgUENJ X0FOWV9JRCwgMCwgMCwgaWNoOF8ycG9ydF9zYXRhIH0sDQorCXsgMHg4MDg2LCAweDhkMDgsIFBD SV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIGljaDhfMnBvcnRfc2F0YV9zbmIgfSwNCiAJLyog U0FUQSBDb250cm9sbGVyIElERSAoV2VsbHNidXJnKSAqLw0KIAl7IDB4ODA4NiwgMHg4ZDYwLCBQ Q0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBpY2g4X3NhdGFfc25iIH0sDQogCS8qIFNBVEEg Q29udHJvbGxlciBJREUgKFdlbGxzYnVyZykgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2Nr L3hlbi1ibGtiYWNrL2Jsa2JhY2suYyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2JhY2svYmxrYmFj ay5jDQppbmRleCA4NWZkZDRiLi4yMjMyYjg1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ibG9jay94 ZW4tYmxrYmFjay9ibGtiYWNrLmMNCisrKyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2JhY2svYmxr YmFjay5jDQpAQCAtMjc3LDYgKzI3Nyw3IEBAIGludCB4ZW5fYmxraWZfc2NoZWR1bGUodm9pZCAq YXJnKQ0KIHsNCiAJc3RydWN0IHhlbl9ibGtpZiAqYmxraWYgPSBhcmc7DQogCXN0cnVjdCB4ZW5f dmJkICp2YmQgPSAmYmxraWYtPnZiZDsNCisJaW50IHJldDsNCiANCiAJeGVuX2Jsa2lmX2dldChi bGtpZik7DQogDQpAQCAtMjk3LDggKzI5OCwxMiBAQCBpbnQgeGVuX2Jsa2lmX3NjaGVkdWxlKHZv aWQgKmFyZykNCiAJCWJsa2lmLT53YWl0aW5nX3JlcXMgPSAwOw0KIAkJc21wX21iKCk7IC8qIGNs ZWFyIGZsYWcgKmJlZm9yZSogY2hlY2tpbmcgZm9yIHdvcmsgKi8NCiANCi0JCWlmIChkb19ibG9j a19pb19vcChibGtpZikpDQorCQlyZXQgPSBkb19ibG9ja19pb19vcChibGtpZik7DQorCQlpZiAo cmV0ID4gMCkNCiAJCQlibGtpZi0+d2FpdGluZ19yZXFzID0gMTsNCisJCWlmIChyZXQgPT0gLUVB Q0NFUykNCisJCQl3YWl0X2V2ZW50X2ludGVycnVwdGlibGUoYmxraWYtPnNodXRkb3duX3dxLA0K KwkJCQkJCSBrdGhyZWFkX3Nob3VsZF9zdG9wKCkpOw0KIA0KIAkJaWYgKGxvZ19zdGF0cyAmJiB0 aW1lX2FmdGVyKGppZmZpZXMsIGJsa2lmLT5zdF9wcmludCkpDQogCQkJcHJpbnRfc3RhdHMoYmxr aWYpOw0KQEAgLTUzOSw2ICs1NDQsMTIgQEAgX19kb19ibG9ja19pb19vcChzdHJ1Y3QgeGVuX2Js a2lmICpibGtpZikNCiAJcnAgPSBibGtfcmluZ3MtPmNvbW1vbi5zcmluZy0+cmVxX3Byb2Q7DQog CXJtYigpOyAvKiBFbnN1cmUgd2Ugc2VlIHF1ZXVlZCByZXF1ZXN0cyB1cCB0byAncnAnLiAqLw0K IA0KKwlpZiAoUklOR19SRVFVRVNUX1BST0RfT1ZFUkZMT1coJmJsa19yaW5ncy0+Y29tbW9uLCBy cCkpIHsNCisJCXJjID0gYmxrX3JpbmdzLT5jb21tb24ucnNwX3Byb2RfcHZ0Ow0KKwkJcHJfd2Fy bihEUlZfUEZYICJGcm9udGVuZCBwcm92aWRlZCBib2d1cyByaW5nIHJlcXVlc3RzICglZCAtICVk ID0gJWQpLiBIYWx0aW5nIHJpbmcgcHJvY2Vzc2luZyBvbiBkZXY9JTA0eFxuIiwNCisJCQlycCwg cmMsIHJwIC0gcmMsIGJsa2lmLT52YmQucGRldmljZSk7DQorCQlyZXR1cm4gLUVBQ0NFUzsNCisJ fQ0KIAl3aGlsZSAocmMgIT0gcnApIHsNCiANCiAJCWlmIChSSU5HX1JFUVVFU1RfQ09OU19PVkVS RkxPVygmYmxrX3JpbmdzLT5jb21tb24sIHJjKSkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2Nr L3hlbi1ibGtiYWNrL2NvbW1vbi5oIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrYmFjay9jb21tb24u aA0KaW5kZXggZGZiMWIzYS4uZjY3OTg1ZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYmxvY2sveGVu LWJsa2JhY2svY29tbW9uLmgNCisrKyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2JhY2svY29tbW9u LmgNCkBAIC0xOTgsNiArMTk4LDggQEAgc3RydWN0IHhlbl9ibGtpZiB7DQogCWludAkJCXN0X3dy X3NlY3Q7DQogDQogCXdhaXRfcXVldWVfaGVhZF90CXdhaXRpbmdfdG9fZnJlZTsNCisJLyogVGhy ZWFkIHNodXRkb3duIHdhaXQgcXVldWUuICovDQorCXdhaXRfcXVldWVfaGVhZF90CXNodXRkb3du X3dxOw0KIH07DQogDQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay94ZW4tYmxrYmFjay94 ZW5idXMuYyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2JhY2sveGVuYnVzLmMNCmluZGV4IDY3NGUz YzIuLjc3YWVkMjYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtiYWNrL3hlbmJ1 cy5jDQorKysgYi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtiYWNrL3hlbmJ1cy5jDQpAQCAtMTE4LDYg KzExOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgeGVuX2Jsa2lmICp4ZW5fYmxraWZfYWxsb2MoZG9taWRf dCBkb21pZCkNCiAJYXRvbWljX3NldCgmYmxraWYtPmRyYWluLCAwKTsNCiAJYmxraWYtPnN0X3By aW50ID0gamlmZmllczsNCiAJaW5pdF93YWl0cXVldWVfaGVhZCgmYmxraWYtPndhaXRpbmdfdG9f ZnJlZSk7DQorCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmJsa2lmLT5zaHV0ZG93bl93cSk7DQogDQog CXJldHVybiBibGtpZjsNCiB9DQpAQCAtMTc4LDYgKzE3OSw3IEBAIHN0YXRpYyB2b2lkIHhlbl9i bGtpZl9kaXNjb25uZWN0KHN0cnVjdCB4ZW5fYmxraWYgKmJsa2lmKQ0KIHsNCiAJaWYgKGJsa2lm LT54ZW5ibGtkKSB7DQogCQlrdGhyZWFkX3N0b3AoYmxraWYtPnhlbmJsa2QpOw0KKwkJd2FrZV91 cCgmYmxraWYtPnNodXRkb3duX3dxKTsNCiAJCWJsa2lmLT54ZW5ibGtkID0gTlVMTDsNCiAJfQ0K IA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NvbWJpb3MuYyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NvbWJpb3MuYw0KaW5kZXggYzMyZmQ5My4u ODExNTU1NyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NvbWJp b3MuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29tYmlvcy5jDQpAQCAt MTQ3LDcgKzE0Nyw3IEBAIHN0YXRpYyB1aW50MTZfdCBjb21iaW9zX2dldF90YWJsZV9vZmZzZXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwNCiAJCQkJCSBlbnVtIHJhZGVvbl9jb21iaW9zX3RhYmxl X29mZnNldCB0YWJsZSkNCiB7DQogCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsNCi0JaW50IHJldjsNCisJaW50IHJldiwgc2l6ZTsNCiAJdWludDE2X3Qgb2Zm c2V0ID0gMCwgY2hlY2tfb2Zmc2V0Ow0KIA0KIAlpZiAoIXJkZXYtPmJpb3MpDQpAQCAtMTU2LDE3 NCArMTU2LDEwNiBAQCBzdGF0aWMgdWludDE2X3QgY29tYmlvc19nZXRfdGFibGVfb2Zmc2V0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsDQogCXN3aXRjaCAodGFibGUpIHsNCiAJCS8qIGFic29sdXRl IG9mZnNldCB0YWJsZXMgKi8NCiAJY2FzZSBDT01CSU9TX0FTSUNfSU5JVF8xX1RBQkxFOg0KLQkJ Y2hlY2tfb2Zmc2V0ID0gUkJJT1MxNihyZGV2LT5iaW9zX2hlYWRlcl9zdGFydCArIDB4Yyk7DQot CQlpZiAoY2hlY2tfb2Zmc2V0KQ0KLQkJCW9mZnNldCA9IGNoZWNrX29mZnNldDsNCisJCWNoZWNr X29mZnNldCA9IDB4YzsNCiAJCWJyZWFrOw0KIAljYXNlIENPTUJJT1NfQklPU19TVVBQT1JUX1RB QkxFOg0KLQkJY2hlY2tfb2Zmc2V0ID0gUkJJT1MxNihyZGV2LT5iaW9zX2hlYWRlcl9zdGFydCAr IDB4MTQpOw0KLQkJaWYgKGNoZWNrX29mZnNldCkNCi0JCQlvZmZzZXQgPSBjaGVja19vZmZzZXQ7 DQorCQljaGVja19vZmZzZXQgPSAweDE0Ow0KIAkJYnJlYWs7DQogCWNhc2UgQ09NQklPU19EQUNf UFJPR1JBTU1JTkdfVEFCTEU6DQotCQljaGVja19vZmZzZXQgPSBSQklPUzE2KHJkZXYtPmJpb3Nf aGVhZGVyX3N0YXJ0ICsgMHgyYSk7DQotCQlpZiAoY2hlY2tfb2Zmc2V0KQ0KLQkJCW9mZnNldCA9 IGNoZWNrX29mZnNldDsNCisJCWNoZWNrX29mZnNldCA9IDB4MmE7DQogCQlicmVhazsNCiAJY2Fz ZSBDT01CSU9TX01BWF9DT0xPUl9ERVBUSF9UQUJMRToNCi0JCWNoZWNrX29mZnNldCA9IFJCSU9T MTYocmRldi0+Ymlvc19oZWFkZXJfc3RhcnQgKyAweDJjKTsNCi0JCWlmIChjaGVja19vZmZzZXQp DQotCQkJb2Zmc2V0ID0gY2hlY2tfb2Zmc2V0Ow0KKwkJY2hlY2tfb2Zmc2V0ID0gMHgyYzsNCiAJ CWJyZWFrOw0KIAljYXNlIENPTUJJT1NfQ1JUQ19JTkZPX1RBQkxFOg0KLQkJY2hlY2tfb2Zmc2V0 ID0gUkJJT1MxNihyZGV2LT5iaW9zX2hlYWRlcl9zdGFydCArIDB4MmUpOw0KLQkJaWYgKGNoZWNr X29mZnNldCkNCi0JCQlvZmZzZXQgPSBjaGVja19vZmZzZXQ7DQorCQljaGVja19vZmZzZXQgPSAw eDJlOw0KIAkJYnJlYWs7DQogCWNhc2UgQ09NQklPU19QTExfSU5GT19UQUJMRToNCi0JCWNoZWNr X29mZnNldCA9IFJCSU9TMTYocmRldi0+Ymlvc19oZWFkZXJfc3RhcnQgKyAweDMwKTsNCi0JCWlm IChjaGVja19vZmZzZXQpDQotCQkJb2Zmc2V0ID0gY2hlY2tfb2Zmc2V0Ow0KKwkJY2hlY2tfb2Zm c2V0ID0gMHgzMDsNCiAJCWJyZWFrOw0KIAljYXNlIENPTUJJT1NfVFZfSU5GT19UQUJMRToNCi0J CWNoZWNrX29mZnNldCA9IFJCSU9TMTYocmRldi0+Ymlvc19oZWFkZXJfc3RhcnQgKyAweDMyKTsN Ci0JCWlmIChjaGVja19vZmZzZXQpDQotCQkJb2Zmc2V0ID0gY2hlY2tfb2Zmc2V0Ow0KKwkJY2hl Y2tfb2Zmc2V0ID0gMHgzMjsNCiAJCWJyZWFrOw0KIAljYXNlIENPTUJJT1NfREZQX0lORk9fVEFC TEU6DQotCQljaGVja19vZmZzZXQgPSBSQklPUzE2KHJkZXYtPmJpb3NfaGVhZGVyX3N0YXJ0ICsg MHgzNCk7DQotCQlpZiAoY2hlY2tfb2Zmc2V0KQ0KLQkJCW9mZnNldCA9IGNoZWNrX29mZnNldDsN CisJCWNoZWNrX29mZnNldCA9IDB4MzQ7DQogCQlicmVhazsNCiAJY2FzZSBDT01CSU9TX0hXX0NP TkZJR19JTkZPX1RBQkxFOg0KLQkJY2hlY2tfb2Zmc2V0ID0gUkJJT1MxNihyZGV2LT5iaW9zX2hl YWRlcl9zdGFydCArIDB4MzYpOw0KLQkJaWYgKGNoZWNrX29mZnNldCkNCi0JCQlvZmZzZXQgPSBj aGVja19vZmZzZXQ7DQorCQljaGVja19vZmZzZXQgPSAweDM2Ow0KIAkJYnJlYWs7DQogCWNhc2Ug Q09NQklPU19NVUxUSU1FRElBX0lORk9fVEFCTEU6DQotCQljaGVja19vZmZzZXQgPSBSQklPUzE2 KHJkZXYtPmJpb3NfaGVhZGVyX3N0YXJ0ICsgMHgzOCk7DQotCQlpZiAoY2hlY2tfb2Zmc2V0KQ0K LQkJCW9mZnNldCA9IGNoZWNrX29mZnNldDsNCisJCWNoZWNrX29mZnNldCA9IDB4Mzg7DQogCQli cmVhazsNCiAJY2FzZSBDT01CSU9TX1RWX1NURF9QQVRDSF9UQUJMRToNCi0JCWNoZWNrX29mZnNl dCA9IFJCSU9TMTYocmRldi0+Ymlvc19oZWFkZXJfc3RhcnQgKyAweDNlKTsNCi0JCWlmIChjaGVj a19vZmZzZXQpDQotCQkJb2Zmc2V0ID0gY2hlY2tfb2Zmc2V0Ow0KKwkJY2hlY2tfb2Zmc2V0ID0g MHgzZTsNCiAJCWJyZWFrOw0KIAljYXNlIENPTUJJT1NfTENEX0lORk9fVEFCTEU6DQotCQljaGVj a19vZmZzZXQgPSBSQklPUzE2KHJkZXYtPmJpb3NfaGVhZGVyX3N0YXJ0ICsgMHg0MCk7DQotCQlp ZiAoY2hlY2tfb2Zmc2V0KQ0KLQkJCW9mZnNldCA9IGNoZWNrX29mZnNldDsNCisJCWNoZWNrX29m ZnNldCA9IDB4NDA7DQogCQlicmVhazsNCiAJY2FzZSBDT01CSU9TX01PQklMRV9JTkZPX1RBQkxF Og0KLQkJY2hlY2tfb2Zmc2V0ID0gUkJJT1MxNihyZGV2LT5iaW9zX2hlYWRlcl9zdGFydCArIDB4 NDIpOw0KLQkJaWYgKGNoZWNrX29mZnNldCkNCi0JCQlvZmZzZXQgPSBjaGVja19vZmZzZXQ7DQor CQljaGVja19vZmZzZXQgPSAweDQyOw0KIAkJYnJlYWs7DQogCWNhc2UgQ09NQklPU19QTExfSU5J VF9UQUJMRToNCi0JCWNoZWNrX29mZnNldCA9IFJCSU9TMTYocmRldi0+Ymlvc19oZWFkZXJfc3Rh cnQgKyAweDQ2KTsNCi0JCWlmIChjaGVja19vZmZzZXQpDQotCQkJb2Zmc2V0ID0gY2hlY2tfb2Zm c2V0Ow0KKwkJY2hlY2tfb2Zmc2V0ID0gMHg0NjsNCiAJCWJyZWFrOw0KIAljYXNlIENPTUJJT1Nf TUVNX0NPTkZJR19UQUJMRToNCi0JCWNoZWNrX29mZnNldCA9IFJCSU9TMTYocmRldi0+Ymlvc19o ZWFkZXJfc3RhcnQgKyAweDQ4KTsNCi0JCWlmIChjaGVja19vZmZzZXQpDQotCQkJb2Zmc2V0ID0g Y2hlY2tfb2Zmc2V0Ow0KKwkJY2hlY2tfb2Zmc2V0ID0gMHg0ODsNCiAJCWJyZWFrOw0KIAljYXNl IENPTUJJT1NfU0FWRV9NQVNLX1RBQkxFOg0KLQkJY2hlY2tfb2Zmc2V0ID0gUkJJT1MxNihyZGV2 LT5iaW9zX2hlYWRlcl9zdGFydCArIDB4NGEpOw0KLQkJaWYgKGNoZWNrX29mZnNldCkNCi0JCQlv ZmZzZXQgPSBjaGVja19vZmZzZXQ7DQorCQljaGVja19vZmZzZXQgPSAweDRhOw0KIAkJYnJlYWs7 DQogCWNhc2UgQ09NQklPU19IQVJEQ09ERURfRURJRF9UQUJMRToNCi0JCWNoZWNrX29mZnNldCA9 IFJCSU9TMTYocmRldi0+Ymlvc19oZWFkZXJfc3RhcnQgKyAweDRjKTsNCi0JCWlmIChjaGVja19v ZmZzZXQpDQotCQkJb2Zmc2V0ID0gY2hlY2tfb2Zmc2V0Ow0KKwkJY2hlY2tfb2Zmc2V0ID0gMHg0 YzsNCiAJCWJyZWFrOw0KIAljYXNlIENPTUJJT1NfQVNJQ19JTklUXzJfVEFCTEU6DQotCQljaGVj a19vZmZzZXQgPSBSQklPUzE2KHJkZXYtPmJpb3NfaGVhZGVyX3N0YXJ0ICsgMHg0ZSk7DQotCQlp ZiAoY2hlY2tfb2Zmc2V0KQ0KLQkJCW9mZnNldCA9IGNoZWNrX29mZnNldDsNCisJCWNoZWNrX29m ZnNldCA9IDB4NGU7DQogCQlicmVhazsNCiAJY2FzZSBDT01CSU9TX0NPTk5FQ1RPUl9JTkZPX1RB QkxFOg0KLQkJY2hlY2tfb2Zmc2V0ID0gUkJJT1MxNihyZGV2LT5iaW9zX2hlYWRlcl9zdGFydCAr IDB4NTApOw0KLQkJaWYgKGNoZWNrX29mZnNldCkNCi0JCQlvZmZzZXQgPSBjaGVja19vZmZzZXQ7 DQorCQljaGVja19vZmZzZXQgPSAweDUwOw0KIAkJYnJlYWs7DQogCWNhc2UgQ09NQklPU19EWU5f Q0xLXzFfVEFCTEU6DQotCQljaGVja19vZmZzZXQgPSBSQklPUzE2KHJkZXYtPmJpb3NfaGVhZGVy X3N0YXJ0ICsgMHg1Mik7DQotCQlpZiAoY2hlY2tfb2Zmc2V0KQ0KLQkJCW9mZnNldCA9IGNoZWNr X29mZnNldDsNCisJCWNoZWNrX29mZnNldCA9IDB4NTI7DQogCQlicmVhazsNCiAJY2FzZSBDT01C SU9TX1JFU0VSVkVEX01FTV9UQUJMRToNCi0JCWNoZWNrX29mZnNldCA9IFJCSU9TMTYocmRldi0+ Ymlvc19oZWFkZXJfc3RhcnQgKyAweDU0KTsNCi0JCWlmIChjaGVja19vZmZzZXQpDQotCQkJb2Zm c2V0ID0gY2hlY2tfb2Zmc2V0Ow0KKwkJY2hlY2tfb2Zmc2V0ID0gMHg1NDsNCiAJCWJyZWFrOw0K IAljYXNlIENPTUJJT1NfRVhUX1RNRFNfSU5GT19UQUJMRToNCi0JCWNoZWNrX29mZnNldCA9IFJC SU9TMTYocmRldi0+Ymlvc19oZWFkZXJfc3RhcnQgKyAweDU4KTsNCi0JCWlmIChjaGVja19vZmZz ZXQpDQotCQkJb2Zmc2V0ID0gY2hlY2tfb2Zmc2V0Ow0KKwkJY2hlY2tfb2Zmc2V0ID0gMHg1ODsN CiAJCWJyZWFrOw0KIAljYXNlIENPTUJJT1NfTUVNX0NMS19JTkZPX1RBQkxFOg0KLQkJY2hlY2tf b2Zmc2V0ID0gUkJJT1MxNihyZGV2LT5iaW9zX2hlYWRlcl9zdGFydCArIDB4NWEpOw0KLQkJaWYg KGNoZWNrX29mZnNldCkNCi0JCQlvZmZzZXQgPSBjaGVja19vZmZzZXQ7DQorCQljaGVja19vZmZz ZXQgPSAweDVhOw0KIAkJYnJlYWs7DQogCWNhc2UgQ09NQklPU19FWFRfREFDX0lORk9fVEFCTEU6 DQotCQljaGVja19vZmZzZXQgPSBSQklPUzE2KHJkZXYtPmJpb3NfaGVhZGVyX3N0YXJ0ICsgMHg1 Yyk7DQotCQlpZiAoY2hlY2tfb2Zmc2V0KQ0KLQkJCW9mZnNldCA9IGNoZWNrX29mZnNldDsNCisJ CWNoZWNrX29mZnNldCA9IDB4NWM7DQogCQlicmVhazsNCiAJY2FzZSBDT01CSU9TX01JU0NfSU5G T19UQUJMRToNCi0JCWNoZWNrX29mZnNldCA9IFJCSU9TMTYocmRldi0+Ymlvc19oZWFkZXJfc3Rh cnQgKyAweDVlKTsNCi0JCWlmIChjaGVja19vZmZzZXQpDQotCQkJb2Zmc2V0ID0gY2hlY2tfb2Zm c2V0Ow0KKwkJY2hlY2tfb2Zmc2V0ID0gMHg1ZTsNCiAJCWJyZWFrOw0KIAljYXNlIENPTUJJT1Nf Q1JUX0lORk9fVEFCTEU6DQotCQljaGVja19vZmZzZXQgPSBSQklPUzE2KHJkZXYtPmJpb3NfaGVh ZGVyX3N0YXJ0ICsgMHg2MCk7DQotCQlpZiAoY2hlY2tfb2Zmc2V0KQ0KLQkJCW9mZnNldCA9IGNo ZWNrX29mZnNldDsNCisJCWNoZWNrX29mZnNldCA9IDB4NjA7DQogCQlicmVhazsNCiAJY2FzZSBD T01CSU9TX0lOVEVHUkFURURfU1lTVEVNX0lORk9fVEFCTEU6DQotCQljaGVja19vZmZzZXQgPSBS QklPUzE2KHJkZXYtPmJpb3NfaGVhZGVyX3N0YXJ0ICsgMHg2Mik7DQotCQlpZiAoY2hlY2tfb2Zm c2V0KQ0KLQkJCW9mZnNldCA9IGNoZWNrX29mZnNldDsNCisJCWNoZWNrX29mZnNldCA9IDB4NjI7 DQogCQlicmVhazsNCiAJY2FzZSBDT01CSU9TX0NPTVBPTkVOVF9WSURFT19JTkZPX1RBQkxFOg0K LQkJY2hlY2tfb2Zmc2V0ID0gUkJJT1MxNihyZGV2LT5iaW9zX2hlYWRlcl9zdGFydCArIDB4NjQp Ow0KLQkJaWYgKGNoZWNrX29mZnNldCkNCi0JCQlvZmZzZXQgPSBjaGVja19vZmZzZXQ7DQorCQlj aGVja19vZmZzZXQgPSAweDY0Ow0KIAkJYnJlYWs7DQogCWNhc2UgQ09NQklPU19GQU5fU1BFRURf SU5GT19UQUJMRToNCi0JCWNoZWNrX29mZnNldCA9IFJCSU9TMTYocmRldi0+Ymlvc19oZWFkZXJf c3RhcnQgKyAweDY2KTsNCi0JCWlmIChjaGVja19vZmZzZXQpDQotCQkJb2Zmc2V0ID0gY2hlY2tf b2Zmc2V0Ow0KKwkJY2hlY2tfb2Zmc2V0ID0gMHg2NjsNCiAJCWJyZWFrOw0KIAljYXNlIENPTUJJ T1NfT1ZFUkRSSVZFX0lORk9fVEFCTEU6DQotCQljaGVja19vZmZzZXQgPSBSQklPUzE2KHJkZXYt PmJpb3NfaGVhZGVyX3N0YXJ0ICsgMHg2OCk7DQotCQlpZiAoY2hlY2tfb2Zmc2V0KQ0KLQkJCW9m ZnNldCA9IGNoZWNrX29mZnNldDsNCisJCWNoZWNrX29mZnNldCA9IDB4Njg7DQogCQlicmVhazsN CiAJY2FzZSBDT01CSU9TX09FTV9JTkZPX1RBQkxFOg0KLQkJY2hlY2tfb2Zmc2V0ID0gUkJJT1Mx NihyZGV2LT5iaW9zX2hlYWRlcl9zdGFydCArIDB4NmEpOw0KLQkJaWYgKGNoZWNrX29mZnNldCkN Ci0JCQlvZmZzZXQgPSBjaGVja19vZmZzZXQ7DQorCQljaGVja19vZmZzZXQgPSAweDZhOw0KIAkJ YnJlYWs7DQogCWNhc2UgQ09NQklPU19EWU5fQ0xLXzJfVEFCTEU6DQotCQljaGVja19vZmZzZXQg PSBSQklPUzE2KHJkZXYtPmJpb3NfaGVhZGVyX3N0YXJ0ICsgMHg2Yyk7DQotCQlpZiAoY2hlY2tf b2Zmc2V0KQ0KLQkJCW9mZnNldCA9IGNoZWNrX29mZnNldDsNCisJCWNoZWNrX29mZnNldCA9IDB4 NmM7DQogCQlicmVhazsNCiAJY2FzZSBDT01CSU9TX1BPV0VSX0NPTk5FQ1RPUl9JTkZPX1RBQkxF Og0KLQkJY2hlY2tfb2Zmc2V0ID0gUkJJT1MxNihyZGV2LT5iaW9zX2hlYWRlcl9zdGFydCArIDB4 NmUpOw0KLQkJaWYgKGNoZWNrX29mZnNldCkNCi0JCQlvZmZzZXQgPSBjaGVja19vZmZzZXQ7DQor CQljaGVja19vZmZzZXQgPSAweDZlOw0KIAkJYnJlYWs7DQogCWNhc2UgQ09NQklPU19JMkNfSU5G T19UQUJMRToNCi0JCWNoZWNrX29mZnNldCA9IFJCSU9TMTYocmRldi0+Ymlvc19oZWFkZXJfc3Rh cnQgKyAweDcwKTsNCi0JCWlmIChjaGVja19vZmZzZXQpDQotCQkJb2Zmc2V0ID0gY2hlY2tfb2Zm c2V0Ow0KKwkJY2hlY2tfb2Zmc2V0ID0gMHg3MDsNCiAJCWJyZWFrOw0KIAkJLyogcmVsYXRpdmUg b2Zmc2V0IHRhYmxlcyAqLw0KIAljYXNlIENPTUJJT1NfQVNJQ19JTklUXzNfVEFCTEU6CS8qIG9m ZnNldCBmcm9tIG1pc2MgaW5mbyAqLw0KQEAgLTQzOSwxMSArMzcxLDE2IEBAIHN0YXRpYyB1aW50 MTZfdCBjb21iaW9zX2dldF90YWJsZV9vZmZzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCiAJ CX0NCiAJCWJyZWFrOw0KIAlkZWZhdWx0Og0KKwkJY2hlY2tfb2Zmc2V0ID0gMDsNCiAJCWJyZWFr Ow0KIAl9DQogDQotCXJldHVybiBvZmZzZXQ7DQorCXNpemUgPSBSQklPUzgocmRldi0+Ymlvc19o ZWFkZXJfc3RhcnQgKyAweDYpOw0KKwkvKiBjaGVjayBhYnNvbHV0ZSBvZmZzZXQgdGFibGVzICov DQorCWlmICh0YWJsZSA8IENPTUJJT1NfQVNJQ19JTklUXzNfVEFCTEUgJiYgY2hlY2tfb2Zmc2V0 ICYmIGNoZWNrX29mZnNldCA8IHNpemUpDQorCQlvZmZzZXQgPSBSQklPUzE2KHJkZXYtPmJpb3Nf aGVhZGVyX3N0YXJ0ICsgY2hlY2tfb2Zmc2V0KTsNCiANCisJcmV0dXJuIG9mZnNldDsNCiB9DQog DQogYm9vbCByYWRlb25fY29tYmlvc19jaGVja19oYXJkY29kZWRfZWRpZChzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldikNCkBAIC05NTMsMTYgKzg5MCwyMiBAQCBzdHJ1Y3QgcmFkZW9uX2VuY29k ZXJfcHJpbWFyeV9kYWMgKnJhZGVvbl9jb21iaW9zX2dldF9wcmltYXJ5X2RhY19pbmZvKHN0cnVj dA0KIAkJCWRhYyA9IFJCSU9TOChkYWNfaW5mbyArIDB4MykgJiAweGY7DQogCQkJcF9kYWMtPnBz Ml9wZGFjX2FkaiA9IChiZyA8PCA4KSB8IChkYWMpOw0KIAkJfQ0KLQkJLyogaWYgdGhlIHZhbHVl cyBhcmUgYWxsIHplcm9zLCB1c2UgdGhlIHRhYmxlICovDQotCQlpZiAocF9kYWMtPnBzMl9wZGFj X2FkaikNCisJCS8qIGlmIHRoZSB2YWx1ZXMgYXJlIHplcm9zLCB1c2UgdGhlIHRhYmxlICovDQor CQlpZiAoKGRhYyA9PSAwKSB8fCAoYmcgPT0gMCkpDQorCQkJZm91bmQgPSAwOw0KKwkJZWxzZQ0K IAkJCWZvdW5kID0gMTsNCiAJfQ0KIA0KIAkvKiBxdWlya3MgKi8NCisJLyogUmFkZW9uIDcwMDAg KFJWMTAwKSAqLw0KKwlpZiAoKChkZXYtPnBkZXYtPmRldmljZSA9PSAweDUxNTkpICYmDQorCSAg ICAoZGV2LT5wZGV2LT5zdWJzeXN0ZW1fdmVuZG9yID09IDB4MTc0QikgJiYNCisJICAgIChkZXYt PnBkZXYtPnN1YnN5c3RlbV9kZXZpY2UgPT0gMHg3YzI4KSkgfHwNCiAJLyogUmFkZW9uIDkxMDAg KFIyMDApICovDQotCWlmICgoZGV2LT5wZGV2LT5kZXZpY2UgPT0gMHg1MTREKSAmJg0KKwkgICAo KGRldi0+cGRldi0+ZGV2aWNlID09IDB4NTE0RCkgJiYNCiAJICAgIChkZXYtPnBkZXYtPnN1YnN5 c3RlbV92ZW5kb3IgPT0gMHgxNzRCKSAmJg0KLQkgICAgKGRldi0+cGRldi0+c3Vic3lzdGVtX2Rl dmljZSA9PSAweDcxNDkpKSB7DQorCSAgICAoZGV2LT5wZGV2LT5zdWJzeXN0ZW1fZGV2aWNlID09 IDB4NzE0OSkpKSB7DQogCQkvKiB2YmlvcyB2YWx1ZSBpcyBiYWQsIHVzZSB0aGUgZGVmYXVsdCAq Lw0KIAkJZm91bmQgPSAwOw0KIAl9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHVtbXkuYyBi L2RyaXZlcnMvbmV0L2R1bW15LmMNCmluZGV4IDY4ZmU3M2MuLjk5YjExNDUgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL25ldC9kdW1teS5jDQorKysgYi9kcml2ZXJzL25ldC9kdW1teS5jDQpAQCAtMTg2 LDYgKzE4Niw4IEBAIHN0YXRpYyBpbnQgX19pbml0IGR1bW15X2luaXRfbW9kdWxlKHZvaWQpDQog DQogCXJ0bmxfbG9jaygpOw0KIAllcnIgPSBfX3J0bmxfbGlua19yZWdpc3RlcigmZHVtbXlfbGlu a19vcHMpOw0KKwlpZiAoZXJyIDwgMCkNCisJCWdvdG8gb3V0Ow0KIA0KIAlmb3IgKGkgPSAwOyBp IDwgbnVtZHVtbWllcyAmJiAhZXJyOyBpKyspIHsNCiAJCWVyciA9IGR1bW15X2luaXRfb25lKCk7 DQpAQCAtMTkzLDYgKzE5NSw4IEBAIHN0YXRpYyBpbnQgX19pbml0IGR1bW15X2luaXRfbW9kdWxl KHZvaWQpDQogCX0NCiAJaWYgKGVyciA8IDApDQogCQlfX3J0bmxfbGlua191bnJlZ2lzdGVyKCZk dW1teV9saW5rX29wcyk7DQorDQorb3V0Og0KIAlydG5sX3VubG9jaygpOw0KIA0KIAlyZXR1cm4g ZXJyOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYXRsMWUvYXRs MWVfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hdGwxZS9hdGwxZV9tYWlu LmMNCmluZGV4IGRkODkzYjMuLjg3ODUxZjAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9hdGhlcm9zL2F0bDFlL2F0bDFlX21haW4uYw0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYXRoZXJvcy9hdGwxZS9hdGwxZV9tYWluLmMNCkBAIC0xNjg1LDggKzE2ODUsOCBAQCBjaGVj a19zdW06DQogCXJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBhdGwxZV90eF9tYXAoc3Ry dWN0IGF0bDFlX2FkYXB0ZXIgKmFkYXB0ZXIsDQotCQkgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgYXRsMWVfdHBkX2Rlc2MgKnRwZCkNCitzdGF0aWMgaW50IGF0bDFlX3R4X21hcChz dHJ1Y3QgYXRsMWVfYWRhcHRlciAqYWRhcHRlciwNCisJCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgYXRsMWVfdHBkX2Rlc2MgKnRwZCkNCiB7DQogCXN0cnVjdCBhdGwxZV90cGRfZGVzYyAq dXNlX3RwZCA9IE5VTEw7DQogCXN0cnVjdCBhdGwxZV90eF9idWZmZXIgKnR4X2J1ZmZlciA9IE5V TEw7DQpAQCAtMTY5Nyw2ICsxNjk3LDggQEAgc3RhdGljIHZvaWQgYXRsMWVfdHhfbWFwKHN0cnVj dCBhdGwxZV9hZGFwdGVyICphZGFwdGVyLA0KIAl1MTYgbnJfZnJhZ3M7DQogCXUxNiBmOw0KIAlp bnQgc2VnbWVudDsNCisJaW50IHJpbmdfc3RhcnQgPSBhZGFwdGVyLT50eF9yaW5nLm5leHRfdG9f dXNlOw0KKwlpbnQgcmluZ19lbmQ7DQogDQogCW5yX2ZyYWdzID0gc2tiX3NoaW5mbyhza2IpLT5u cl9mcmFnczsNCiAJc2VnbWVudCA9ICh0cGQtPndvcmQzID4+IFRQRF9TRUdNRU5UX0VOX1NISUZU KSAmIFRQRF9TRUdNRU5UX0VOX01BU0s7DQpAQCAtMTcwOSw2ICsxNzExLDkgQEAgc3RhdGljIHZv aWQgYXRsMWVfdHhfbWFwKHN0cnVjdCBhdGwxZV9hZGFwdGVyICphZGFwdGVyLA0KIAkJdHhfYnVm ZmVyLT5sZW5ndGggPSBtYXBfbGVuOw0KIAkJdHhfYnVmZmVyLT5kbWEgPSBwY2lfbWFwX3Npbmds ZShhZGFwdGVyLT5wZGV2LA0KIAkJCQkJc2tiLT5kYXRhLCBoZHJfbGVuLCBQQ0lfRE1BX1RPREVW SUNFKTsNCisJCWlmIChkbWFfbWFwcGluZ19lcnJvcigmYWRhcHRlci0+cGRldi0+ZGV2LCB0eF9i dWZmZXItPmRtYSkpDQorCQkJcmV0dXJuIC1FTk9TUEM7DQorDQogCQlBVEwxRV9TRVRfUENJTUFQ X1RZUEUodHhfYnVmZmVyLCBBVEwxRV9UWF9QQ0lNQVBfU0lOR0xFKTsNCiAJCW1hcHBlZF9sZW4g Kz0gbWFwX2xlbjsNCiAJCXVzZV90cGQtPmJ1ZmZlcl9hZGRyID0gY3B1X3RvX2xlNjQodHhfYnVm ZmVyLT5kbWEpOw0KQEAgLTE3MzUsNiArMTc0MCwyMiBAQCBzdGF0aWMgdm9pZCBhdGwxZV90eF9t YXAoc3RydWN0IGF0bDFlX2FkYXB0ZXIgKmFkYXB0ZXIsDQogCQl0eF9idWZmZXItPmRtYSA9DQog CQkJcGNpX21hcF9zaW5nbGUoYWRhcHRlci0+cGRldiwgc2tiLT5kYXRhICsgbWFwcGVkX2xlbiwN CiAJCQkJCW1hcF9sZW4sIFBDSV9ETUFfVE9ERVZJQ0UpOw0KKw0KKwkJaWYgKGRtYV9tYXBwaW5n X2Vycm9yKCZhZGFwdGVyLT5wZGV2LT5kZXYsIHR4X2J1ZmZlci0+ZG1hKSkgew0KKwkJCS8qIFdl IG5lZWQgdG8gdW53aW5kIHRoZSBtYXBwaW5ncyB3ZSd2ZSBkb25lICovDQorCQkJcmluZ19lbmQg PSBhZGFwdGVyLT50eF9yaW5nLm5leHRfdG9fdXNlOw0KKwkJCWFkYXB0ZXItPnR4X3JpbmcubmV4 dF90b191c2UgPSByaW5nX3N0YXJ0Ow0KKwkJCXdoaWxlIChhZGFwdGVyLT50eF9yaW5nLm5leHRf dG9fdXNlICE9IHJpbmdfZW5kKSB7DQorCQkJCXRwZCA9IGF0bDFlX2dldF90cGQoYWRhcHRlcik7 DQorCQkJCXR4X2J1ZmZlciA9IGF0bDFlX2dldF90eF9idWZmZXIoYWRhcHRlciwgdHBkKTsNCisJ CQkJcGNpX3VubWFwX3NpbmdsZShhZGFwdGVyLT5wZGV2LCB0eF9idWZmZXItPmRtYSwNCisJCQkJ CQkgdHhfYnVmZmVyLT5sZW5ndGgsIFBDSV9ETUFfVE9ERVZJQ0UpOw0KKwkJCX0NCisJCQkvKiBS ZXNldCB0aGUgdHggcmluZ3MgbmV4dCBwb2ludGVyICovDQorCQkJYWRhcHRlci0+dHhfcmluZy5u ZXh0X3RvX3VzZSA9IHJpbmdfc3RhcnQ7DQorCQkJcmV0dXJuIC1FTk9TUEM7DQorCQl9DQorDQog CQlBVEwxRV9TRVRfUENJTUFQX1RZUEUodHhfYnVmZmVyLCBBVEwxRV9UWF9QQ0lNQVBfU0lOR0xF KTsNCiAJCW1hcHBlZF9sZW4gICs9IG1hcF9sZW47DQogCQl1c2VfdHBkLT5idWZmZXJfYWRkciA9 IGNwdV90b19sZTY0KHR4X2J1ZmZlci0+ZG1hKTsNCkBAIC0xNzcwLDYgKzE3OTEsMjMgQEAgc3Rh dGljIHZvaWQgYXRsMWVfdHhfbWFwKHN0cnVjdCBhdGwxZV9hZGFwdGVyICphZGFwdGVyLA0KIAkJ CQkJCQkgIChpICogTUFYX1RYX0JVRl9MRU4pLA0KIAkJCQkJCQkgIHR4X2J1ZmZlci0+bGVuZ3Ro LA0KIAkJCQkJCQkgIERNQV9UT19ERVZJQ0UpOw0KKw0KKwkJCWlmIChkbWFfbWFwcGluZ19lcnJv cigmYWRhcHRlci0+cGRldi0+ZGV2LCB0eF9idWZmZXItPmRtYSkpIHsNCisJCQkJLyogV2UgbmVl ZCB0byB1bndpbmQgdGhlIG1hcHBpbmdzIHdlJ3ZlIGRvbmUgKi8NCisJCQkJcmluZ19lbmQgPSBh ZGFwdGVyLT50eF9yaW5nLm5leHRfdG9fdXNlOw0KKwkJCQlhZGFwdGVyLT50eF9yaW5nLm5leHRf dG9fdXNlID0gcmluZ19zdGFydDsNCisJCQkJd2hpbGUgKGFkYXB0ZXItPnR4X3JpbmcubmV4dF90 b191c2UgIT0gcmluZ19lbmQpIHsNCisJCQkJCXRwZCA9IGF0bDFlX2dldF90cGQoYWRhcHRlcik7 DQorCQkJCQl0eF9idWZmZXIgPSBhdGwxZV9nZXRfdHhfYnVmZmVyKGFkYXB0ZXIsIHRwZCk7DQor CQkJCQlkbWFfdW5tYXBfcGFnZSgmYWRhcHRlci0+cGRldi0+ZGV2LCB0eF9idWZmZXItPmRtYSwN CisJCQkJCQkgICAgICAgdHhfYnVmZmVyLT5sZW5ndGgsIERNQV9UT19ERVZJQ0UpOw0KKwkJCQl9 DQorDQorCQkJCS8qIFJlc2V0IHRoZSByaW5nIG5leHQgdG8gdXNlIHBvaW50ZXIgKi8NCisJCQkJ YWRhcHRlci0+dHhfcmluZy5uZXh0X3RvX3VzZSA9IHJpbmdfc3RhcnQ7DQorCQkJCXJldHVybiAt RU5PU1BDOw0KKwkJCX0NCisNCiAJCQlBVEwxRV9TRVRfUENJTUFQX1RZUEUodHhfYnVmZmVyLCBB VEwxRV9UWF9QQ0lNQVBfUEFHRSk7DQogCQkJdXNlX3RwZC0+YnVmZmVyX2FkZHIgPSBjcHVfdG9f bGU2NCh0eF9idWZmZXItPmRtYSk7DQogCQkJdXNlX3RwZC0+d29yZDIgPSAodXNlX3RwZC0+d29y ZDIgJiAoflRQRF9CVUZMRU5fTUFTSykpIHwNCkBAIC0xNzg3LDYgKzE4MjUsNyBAQCBzdGF0aWMg dm9pZCBhdGwxZV90eF9tYXAoc3RydWN0IGF0bDFlX2FkYXB0ZXIgKmFkYXB0ZXIsDQogCS8qIFRo ZSBsYXN0IGJ1ZmZlciBpbmZvIGNvbnRhaW4gdGhlIHNrYiBhZGRyZXNzLA0KIAkgICBzbyBpdCB3 aWxsIGJlIGZyZWUgYWZ0ZXIgdW5tYXAgKi8NCiAJdHhfYnVmZmVyLT5za2IgPSBza2I7DQorCXJl dHVybiAwOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBhdGwxZV90eF9xdWV1ZShzdHJ1Y3QgYXRsMWVf YWRhcHRlciAqYWRhcHRlciwgdTE2IGNvdW50LA0KQEAgLTE4NTQsMTAgKzE4OTMsMTUgQEAgc3Rh dGljIG5ldGRldl90eF90IGF0bDFlX3htaXRfZnJhbWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwNCiAJ CXJldHVybiBORVRERVZfVFhfT0s7DQogCX0NCiANCi0JYXRsMWVfdHhfbWFwKGFkYXB0ZXIsIHNr YiwgdHBkKTsNCisJaWYgKGF0bDFlX3R4X21hcChhZGFwdGVyLCBza2IsIHRwZCkpIHsNCisJCWRl dl9rZnJlZV9za2JfYW55KHNrYik7DQorCQlnb3RvIG91dDsNCisJfQ0KKw0KIAlhdGwxZV90eF9x dWV1ZShhZGFwdGVyLCB0cGRfcmVxLCB0cGQpOw0KIA0KIAluZXRkZXYtPnRyYW5zX3N0YXJ0ID0g amlmZmllczsgLyogTkVUSUZfRl9MTFRYIGRyaXZlciA6KCAqLw0KK291dDoNCiAJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmYWRhcHRlci0+dHhfbG9jaywgZmxhZ3MpOw0KIAlyZXR1cm4gTkVUREVW X1RYX09LOw0KIH0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL3No X2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9zaF9ldGguYw0KaW5kZXggOWIy MzA3NC4uYjIwNzdjYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMv c2hfZXRoLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvc2hfZXRoLmMNCkBA IC0xMzYsOCArMTM2LDkgQEAgc3RhdGljIHN0cnVjdCBzaF9ldGhfY3B1X2RhdGEgc2hfZXRoX215 X2NwdV9kYXRhID0gew0KIAkucm1jcl92YWx1ZQk9IDB4MDAwMDAwMDEsDQogDQogCS50eF9jaGVj awk9IEVFU1JfRlRDIHwgRUVTUl9DTkQgfCBFRVNSX0RMQyB8IEVFU1JfQ0QgfCBFRVNSX1JUTywN Ci0JLmVlc3JfZXJyX2NoZWNrCT0gRUVTUl9UV0IgfCBFRVNSX1RBQlQgfCBFRVNSX1JBQlQgfCBF RVNSX1JERSB8DQotCQkJICBFRVNSX1JGUk1FUiB8IEVFU1JfVEZFIHwgRUVTUl9UREUgfCBFRVNS X0VDSSwNCisJLmVlc3JfZXJyX2NoZWNrCT0gRUVTUl9UV0IgfCBFRVNSX1RBQlQgfCBFRVNSX1JB QlQgfCBFRVNSX1JGRSB8DQorCQkJICBFRVNSX1JERSB8IEVFU1JfUkZSTUVSIHwgRUVTUl9URkUg fCBFRVNSX1RERSB8DQorCQkJICBFRVNSX0VDSSwNCiAJLnR4X2Vycm9yX2NoZWNrCT0gRUVTUl9U V0IgfCBFRVNSX1RBQlQgfCBFRVNSX1RERSB8IEVFU1JfVEZFLA0KIA0KIAkuYXByCQk9IDEsDQpA QCAtMjUxLDkgKzI1Miw5IEBAIHN0YXRpYyBzdHJ1Y3Qgc2hfZXRoX2NwdV9kYXRhIHNoX2V0aF9t eV9jcHVfZGF0YV9naWdhID0gew0KIAkuZWVzaXByX3ZhbHVlCT0gRE1BQ19NX1JGUk1FUiB8IERN QUNfTV9FQ0kgfCAweDAwM2ZmZmZmLA0KIA0KIAkudHhfY2hlY2sJPSBFRVNSX1RDMSB8IEVFU1Jf RlRDLA0KLQkuZWVzcl9lcnJfY2hlY2sJPSBFRVNSX1RXQjEgfCBFRVNSX1RXQiB8IEVFU1JfVEFC VCB8IEVFU1JfUkFCVCB8IFwNCi0JCQkgIEVFU1JfUkRFIHwgRUVTUl9SRlJNRVIgfCBFRVNSX1RG RSB8IEVFU1JfVERFIHwgXA0KLQkJCSAgRUVTUl9FQ0ksDQorCS5lZXNyX2Vycl9jaGVjawk9IEVF U1JfVFdCMSB8IEVFU1JfVFdCIHwgRUVTUl9UQUJUIHwgRUVTUl9SQUJUIHwNCisJCQkgIEVFU1Jf UkZFIHwgRUVTUl9SREUgfCBFRVNSX1JGUk1FUiB8IEVFU1JfVEZFIHwNCisJCQkgIEVFU1JfVERF IHwgRUVTUl9FQ0ksDQogCS50eF9lcnJvcl9jaGVjawk9IEVFU1JfVFdCMSB8IEVFU1JfVFdCIHwg RUVTUl9UQUJUIHwgRUVTUl9UREUgfCBcDQogCQkJICBFRVNSX1RGRSwNCiAJLmZkcl92YWx1ZQk9 IDB4MDAwMDA3MmYsDQpAQCAtMzU1LDkgKzM1Niw5IEBAIHN0YXRpYyBzdHJ1Y3Qgc2hfZXRoX2Nw dV9kYXRhIHNoX2V0aF9teV9jcHVfZGF0YSA9IHsNCiAJLmVlc2lwcl92YWx1ZQk9IERNQUNfTV9S RlJNRVIgfCBETUFDX01fRUNJIHwgMHgwMDNmZmZmZiwNCiANCiAJLnR4X2NoZWNrCT0gRUVTUl9U QzEgfCBFRVNSX0ZUQywNCi0JLmVlc3JfZXJyX2NoZWNrCT0gRUVTUl9UV0IxIHwgRUVTUl9UV0Ig fCBFRVNSX1RBQlQgfCBFRVNSX1JBQlQgfCBcDQotCQkJICBFRVNSX1JERSB8IEVFU1JfUkZSTUVS IHwgRUVTUl9URkUgfCBFRVNSX1RERSB8IFwNCi0JCQkgIEVFU1JfRUNJLA0KKwkuZWVzcl9lcnJf Y2hlY2sJPSBFRVNSX1RXQjEgfCBFRVNSX1RXQiB8IEVFU1JfVEFCVCB8IEVFU1JfUkFCVCB8DQor CQkJICBFRVNSX1JGRSB8IEVFU1JfUkRFIHwgRUVTUl9SRlJNRVIgfCBFRVNSX1RGRSB8DQorCQkJ ICBFRVNSX1RERSB8IEVFU1JfRUNJLA0KIAkudHhfZXJyb3JfY2hlY2sJPSBFRVNSX1RXQjEgfCBF RVNSX1RXQiB8IEVFU1JfVEFCVCB8IEVFU1JfVERFIHwgXA0KIAkJCSAgRUVTUl9URkUsDQogDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9zaF9ldGguaCBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvc2hfZXRoLmgNCmluZGV4IDQ3ODc3YjEuLjU5MDcwNWMg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL3NoX2V0aC5oDQorKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL3NoX2V0aC5oDQpAQCAtNDYxLDcgKzQ2MSw3 IEBAIGVudW0gRUVTUl9CSVQgew0KIA0KICNkZWZpbmUgREVGQVVMVF9UWF9DSEVDSwkoRUVTUl9G VEMgfCBFRVNSX0NORCB8IEVFU1JfRExDIHwgRUVTUl9DRCB8IFwNCiAJCQkJIEVFU1JfUlRPKQ0K LSNkZWZpbmUgREVGQVVMVF9FRVNSX0VSUl9DSEVDSwkoRUVTUl9UV0IgfCBFRVNSX1RBQlQgfCBF RVNSX1JBQlQgfCBcDQorI2RlZmluZSBERUZBVUxUX0VFU1JfRVJSX0NIRUNLCShFRVNSX1RXQiB8 IEVFU1JfVEFCVCB8IEVFU1JfUkFCVCB8IEVFU1JfUkZFIHwgXA0KIAkJCQkgRUVTUl9SREUgfCBF RVNSX1JGUk1FUiB8IEVFU1JfQURFIHwgXA0KIAkJCQkgRUVTUl9URkUgfCBFRVNSX1RERSB8IEVF U1JfRUNJKQ0KICNkZWZpbmUgREVGQVVMVF9UWF9FUlJPUl9DSEVDSwkoRUVTUl9UV0IgfCBFRVNS X1RBQlQgfCBFRVNSX0FERSB8IEVFU1JfVERFIHwgXA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3N1bi9zdW52bmV0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdW4vc3Vudm5l dC5jDQppbmRleCA4YzZjMDU5Li5iZDA4OTE5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvc3VuL3N1bnZuZXQuYw0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3VuL3N1bnZu ZXQuYw0KQEAgLTEyNDgsNiArMTI0OCw4IEBAIHN0YXRpYyBpbnQgdm5ldF9wb3J0X3JlbW92ZShz dHJ1Y3QgdmlvX2RldiAqdmRldikNCiAJCWRldl9zZXRfZHJ2ZGF0YSgmdmRldi0+ZGV2LCBOVUxM KTsNCiANCiAJCWtmcmVlKHBvcnQpOw0KKw0KKwkJdW5yZWdpc3Rlcl9uZXRkZXYodnAtPmRldik7 DQogCX0NCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lmYi5jIGIv ZHJpdmVycy9uZXQvaWZiLmMNCmluZGV4IDQ2YjVmNWYuLmIxOTg0MWEgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL25ldC9pZmIuYw0KKysrIGIvZHJpdmVycy9uZXQvaWZiLmMNCkBAIC0yOTAsMTEgKzI5 MCwxNyBAQCBzdGF0aWMgaW50IF9faW5pdCBpZmJfaW5pdF9tb2R1bGUodm9pZCkNCiANCiAJcnRu bF9sb2NrKCk7DQogCWVyciA9IF9fcnRubF9saW5rX3JlZ2lzdGVyKCZpZmJfbGlua19vcHMpOw0K KwlpZiAoZXJyIDwgMCkNCisJCWdvdG8gb3V0Ow0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgbnVtaWZi cyAmJiAhZXJyOyBpKyspDQorCWZvciAoaSA9IDA7IGkgPCBudW1pZmJzICYmICFlcnI7IGkrKykg ew0KIAkJZXJyID0gaWZiX2luaXRfb25lKGkpOw0KKwkJY29uZF9yZXNjaGVkKCk7DQorCX0NCiAJ aWYgKGVycikNCiAJCV9fcnRubF9saW5rX3VucmVnaXN0ZXIoJmlmYl9saW5rX29wcyk7DQorDQor b3V0Og0KIAlydG5sX3VubG9jaygpOw0KIA0KIAlyZXR1cm4gZXJyOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L21hY3Z0YXAuYyBiL2RyaXZlcnMvbmV0L21hY3Z0YXAuYw0KaW5kZXggMjYxMDZj MC4uOTZiOWUzYyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L21hY3Z0YXAuYw0KKysrIGIvZHJp dmVycy9uZXQvbWFjdnRhcC5jDQpAQCAtNTMyLDggKzUzMiwxMCBAQCBzdGF0aWMgaW50IHplcm9j b3B5X3NnX2Zyb21faW92ZWMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IGlvdmVj ICpmcm9tLA0KIAkJCXJldHVybiAtRU1TR1NJWkU7DQogCQludW1fcGFnZXMgPSBnZXRfdXNlcl9w YWdlc19mYXN0KGJhc2UsIHNpemUsIDAsICZwYWdlW2ldKTsNCiAJCWlmIChudW1fcGFnZXMgIT0g c2l6ZSkgew0KLQkJCWZvciAoaSA9IDA7IGkgPCBudW1fcGFnZXM7IGkrKykNCi0JCQkJcHV0X3Bh Z2UocGFnZVtpXSk7DQorCQkJaW50IGo7DQorDQorCQkJZm9yIChqID0gMDsgaiA8IG51bV9wYWdl czsgaisrKQ0KKwkJCQlwdXRfcGFnZShwYWdlW2kgKyBqXSk7DQogCQkJcmV0dXJuIC1FRkFVTFQ7 DQogCQl9DQogCQl0cnVlc2l6ZSA9IHNpemUgKiBQQUdFX1NJWkU7DQpAQCAtNjUzLDYgKzY1NSw3 IEBAIHN0YXRpYyBzc2l6ZV90IG1hY3Z0YXBfZ2V0X3VzZXIoc3RydWN0IG1hY3Z0YXBfcXVldWUg KnEsIHN0cnVjdCBtc2doZHIgKm0sDQogCWludCB2bmV0X2hkcl9sZW4gPSAwOw0KIAlpbnQgY29w eWxlbiA9IDA7DQogCWJvb2wgemVyb2NvcHkgPSBmYWxzZTsNCisJc2l6ZV90IGxpbmVhcjsNCiAN CiAJaWYgKHEtPmZsYWdzICYgSUZGX1ZORVRfSERSKSB7DQogCQl2bmV0X2hkcl9sZW4gPSBxLT52 bmV0X2hkcl9zejsNCkBAIC03MDcsMTEgKzcxMCwxNCBAQCBzdGF0aWMgc3NpemVfdCBtYWN2dGFw X2dldF91c2VyKHN0cnVjdCBtYWN2dGFwX3F1ZXVlICpxLCBzdHJ1Y3QgbXNnaGRyICptLA0KIAkJ CWNvcHlsZW4gPSB2bmV0X2hkci5oZHJfbGVuOw0KIAkJaWYgKCFjb3B5bGVuKQ0KIAkJCWNvcHls ZW4gPSBHT09EQ09QWV9MRU47DQotCX0gZWxzZQ0KKwkJbGluZWFyID0gY29weWxlbjsNCisJfSBl bHNlIHsNCiAJCWNvcHlsZW4gPSBsZW47DQorCQlsaW5lYXIgPSB2bmV0X2hkci5oZHJfbGVuOw0K Kwl9DQogDQogCXNrYiA9IG1hY3Z0YXBfYWxsb2Nfc2tiKCZxLT5zaywgTkVUX0lQX0FMSUdOLCBj b3B5bGVuLA0KLQkJCQl2bmV0X2hkci5oZHJfbGVuLCBub2Jsb2NrLCAmZXJyKTsNCisJCQkJbGlu ZWFyLCBub2Jsb2NrLCAmZXJyKTsNCiAJaWYgKCFza2IpDQogCQlnb3RvIGVycjsNCiANCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0 LmMNCmluZGV4IDZlZTg0MTAuLjQzYTZhMTEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC92aXJ0 aW9fbmV0LmMNCisrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYw0KQEAgLTUwOCw3ICs1MDgs NyBAQCBzdGF0aWMgaW50IHZpcnRuZXRfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGlu dCBidWRnZXQpDQogew0KIAlzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSA9IGNvbnRhaW5lcl9vZihu YXBpLCBzdHJ1Y3QgdmlydG5ldF9pbmZvLCBuYXBpKTsNCiAJdm9pZCAqYnVmOw0KLQl1bnNpZ25l ZCBpbnQgbGVuLCByZWNlaXZlZCA9IDA7DQorCXVuc2lnbmVkIGludCByLCBsZW4sIHJlY2VpdmVk ID0gMDsNCiANCiBhZ2FpbjoNCiAJd2hpbGUgKHJlY2VpdmVkIDwgYnVkZ2V0ICYmDQpAQCAtNTI1 LDggKzUyNSw5IEBAIGFnYWluOg0KIA0KIAkvKiBPdXQgb2YgcGFja2V0cz8gKi8NCiAJaWYgKHJl Y2VpdmVkIDwgYnVkZ2V0KSB7DQorCQlyID0gdmlydHF1ZXVlX2VuYWJsZV9jYl9wcmVwYXJlKHZp LT5ydnEpOw0KIAkJbmFwaV9jb21wbGV0ZShuYXBpKTsNCi0JCWlmICh1bmxpa2VseSghdmlydHF1 ZXVlX2VuYWJsZV9jYih2aS0+cnZxKSkgJiYNCisJCWlmICh1bmxpa2VseSh2aXJ0cXVldWVfcG9s bCh2aS0+cnZxLCByKSkgJiYNCiAJCSAgICBuYXBpX3NjaGVkdWxlX3ByZXAobmFwaSkpIHsNCiAJ CQl2aXJ0cXVldWVfZGlzYWJsZV9jYih2aS0+cnZxKTsNCiAJCQlfX25hcGlfc2NoZWR1bGUobmFw aSk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2JueDJmYy9ibngyZmNfaW8uYyBiL2RyaXZl cnMvc2NzaS9ibngyZmMvYm54MmZjX2lvLmMNCmluZGV4IDg0YTc4YWYuLjE4MmZjYjIgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL3Njc2kvYm54MmZjL2JueDJmY19pby5jDQorKysgYi9kcml2ZXJzL3Nj c2kvYm54MmZjL2JueDJmY19pby5jDQpAQCAtMTc4OCw3ICsxNzg4LDcgQEAgc3RhdGljIHZvaWQg Ym54MmZjX3BhcnNlX2ZjcF9yc3Aoc3RydWN0IGJueDJmY19jbWQgKmlvX3JlcSwNCiAJCQlmY3Bf c25zX2xlbiA9IFNDU0lfU0VOU0VfQlVGRkVSU0laRTsNCiAJCX0NCiANCi0JCW1lbXNldChzY19j bWQtPnNlbnNlX2J1ZmZlciwgMCwgc2l6ZW9mKHNjX2NtZC0+c2Vuc2VfYnVmZmVyKSk7DQorCQlt ZW1zZXQoc2NfY21kLT5zZW5zZV9idWZmZXIsIDAsIFNDU0lfU0VOU0VfQlVGRkVSU0laRSk7DQog CQlpZiAoZmNwX3Nuc19sZW4pDQogCQkJbWVtY3B5KHNjX2NtZC0+c2Vuc2VfYnVmZmVyLCBycV9k YXRhLCBmY3Bfc25zX2xlbik7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2lzY2kvdGFz ay5jIGIvZHJpdmVycy9zY3NpL2lzY2kvdGFzay5jDQppbmRleCA2NmFkM2RjLi5lMjk0ZDExIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9zY3NpL2lzY2kvdGFzay5jDQorKysgYi9kcml2ZXJzL3Njc2kv aXNjaS90YXNrLmMNCkBAIC0xMDM4LDYgKzEwMzgsNyBAQCBpbnQgaXNjaV90YXNrX2Fib3J0X3Rh c2soc3RydWN0IHNhc190YXNrICp0YXNrKQ0KIAlpbnQgICAgICAgICAgICAgICAgICAgICAgIHJl dCA9IFRNRl9SRVNQX0ZVTkNfRkFJTEVEOw0KIAl1bnNpZ25lZCBsb25nICAgICAgICAgICAgIGZs YWdzOw0KIAlpbnQgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1fdGVybWluYXRpb24gPSAw Ow0KKwlpbnQgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9kb25lX2FscmVhZHkgPSAwOw0K IA0KIAkvKiBHZXQgdGhlIGlzY2lfcmVxdWVzdCByZWZlcmVuY2UgZnJvbSB0aGUgdGFzay4gIE5v dGUgdGhhdA0KIAkgKiB0aGlzIGNoZWNrIGRvZXMgbm90IGRlcGVuZCBvbiB0aGUgcGVuZGluZyBy ZXF1ZXN0IGxpc3QNCkBAIC0xMDUyLDkgKzEwNTMsMTEgQEAgaW50IGlzY2lfdGFza19hYm9ydF90 YXNrKHN0cnVjdCBzYXNfdGFzayAqdGFzaykNCiAJLyogSWYgdGFzayBpcyBhbHJlYWR5IGRvbmUs IHRoZSByZXF1ZXN0IGlzbid0IHZhbGlkICovDQogCWlmICghKHRhc2stPnRhc2tfc3RhdGVfZmxh Z3MgJiBTQVNfVEFTS19TVEFURV9ET05FKSAmJg0KIAkgICAgKHRhc2stPnRhc2tfc3RhdGVfZmxh Z3MgJiBTQVNfVEFTS19BVF9JTklUSUFUT1IpICYmDQotCSAgICBvbGRfcmVxdWVzdCkNCisJICAg IG9sZF9yZXF1ZXN0KSB7DQogCQlpc2NpX2RldmljZSA9IGlzY2lfbG9va3VwX2RldmljZSh0YXNr LT5kZXYpOw0KLQ0KKwkJdGFyZ2V0X2RvbmVfYWxyZWFkeSA9IHRlc3RfYml0KElSRVFfQ09NUExF VEVfSU5fVEFSR0VULA0KKwkJCQkJICAgICAgICZvbGRfcmVxdWVzdC0+ZmxhZ3MpOw0KKwl9DQog CXNwaW5fdW5sb2NrKCZ0YXNrLT50YXNrX3N0YXRlX2xvY2spOw0KIAlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZpc2NpX2hvc3QtPnNjaWNfbG9jaywgZmxhZ3MpOw0KIA0KQEAgLTExMTYsNyArMTEx OSw3IEBAIGludCBpc2NpX3Rhc2tfYWJvcnRfdGFzayhzdHJ1Y3Qgc2FzX3Rhc2sgKnRhc2spDQog CX0NCiAJaWYgKHRhc2stPnRhc2tfcHJvdG8gPT0gU0FTX1BST1RPQ09MX1NNUCB8fA0KIAkgICAg c2FzX3Byb3RvY29sX2F0YSh0YXNrLT50YXNrX3Byb3RvKSB8fA0KLQkgICAgdGVzdF9iaXQoSVJF UV9DT01QTEVURV9JTl9UQVJHRVQsICZvbGRfcmVxdWVzdC0+ZmxhZ3MpKSB7DQorCSAgICB0YXJn ZXRfZG9uZV9hbHJlYWR5KSB7DQogDQogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpc2NpX2hv c3QtPnNjaWNfbG9jaywgZmxhZ3MpOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEy eHh4L3FsYV9pb2NiLmMgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaW9jYi5jDQppbmRleCBh NGIyNjdlLi45ZmJlMjYwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lv Y2IuYw0KKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lvY2IuYw0KQEAgLTQyMyw2ICs0 MjMsOCBAQCBxbGEyeDAwX3N0YXJ0X3Njc2koc3JiX3QgKnNwKQ0KIAkJCSAgICBfX2NvbnN0YW50 X2NwdV90b19sZTE2KENGX1NJTVBMRV9UQUcpOw0KIAkJCWJyZWFrOw0KIAkJfQ0KKwl9IGVsc2Ug ew0KKwkJY21kX3BrdC0+Y29udHJvbF9mbGFncyA9IF9fY29uc3RhbnRfY3B1X3RvX2xlMTYoQ0Zf U0lNUExFX1RBRyk7DQogCX0NCiANCiAJLyogTG9hZCBTQ1NJIGNvbW1hbmQgcGFja2V0LiAqLw0K QEAgLTEyNDQsMTEgKzEyNDYsMTEgQEAgcWxhMjR4eF9idWlsZF9zY3NpX2NyY18yX2lvY2JzKHNy Yl90ICpzcCwgc3RydWN0IGNtZF90eXBlX2NyY18yICpjbWRfcGt0LA0KIAkJICAgIGZjcF9jbW5k LT50YXNrX2F0dHJpYnV0ZSA9IFRTS19PUkRFUkVEOw0KIAkJICAgIGJyZWFrOw0KIAkJZGVmYXVs dDoNCi0JCSAgICBmY3BfY21uZC0+dGFza19hdHRyaWJ1dGUgPSAwOw0KKwkJICAgIGZjcF9jbW5k LT50YXNrX2F0dHJpYnV0ZSA9IFRTS19TSU1QTEU7DQogCQkgICAgYnJlYWs7DQogCQl9DQogCX0g ZWxzZSB7DQotCQlmY3BfY21uZC0+dGFza19hdHRyaWJ1dGUgPSAwOw0KKwkJZmNwX2NtbmQtPnRh c2tfYXR0cmlidXRlID0gVFNLX1NJTVBMRTsNCiAJfQ0KIA0KIAljbWRfcGt0LT5mY3BfcnNwX2Rz ZWdfbGVuID0gMDsgLyogTGV0IHJlc3BvbnNlIGNvbWUgaW4gc3RhdHVzIGlvY2IgKi8NCkBAIC0x NDU0LDcgKzE0NTYsMTIgQEAgcWxhMjR4eF9zdGFydF9zY3NpKHNyYl90ICpzcCkNCiAJCWNhc2Ug T1JERVJFRF9RVUVVRV9UQUc6DQogCQkJY21kX3BrdC0+dGFzayA9IFRTS19PUkRFUkVEOw0KIAkJ CWJyZWFrOw0KKwkJZGVmYXVsdDoNCisJCSAgICBjbWRfcGt0LT50YXNrID0gVFNLX1NJTVBMRTsN CisJCSAgICBicmVhazsNCiAJCX0NCisJfSBlbHNlIHsNCisJCWNtZF9wa3QtPnRhc2sgPSBUU0tf U0lNUExFOw0KIAl9DQogDQogCS8qIExvYWQgU0NTSSBjb21tYW5kIHBhY2tldC4gKi8NCmRpZmYg LS1naXQgYS9kcml2ZXJzL3Njc2kvc2QuYyBiL2RyaXZlcnMvc2NzaS9zZC5jDQppbmRleCA2ZGFj ZTFhLi4xNzYwM2RhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zY3NpL3NkLmMNCisrKyBiL2RyaXZl cnMvc2NzaS9zZC5jDQpAQCAtNjQxLDEwICs2NDEsMTcgQEAgc3RhdGljIGludCBzY3NpX3NldHVw X2ZsdXNoX2NtbmQoc3RydWN0IHNjc2lfZGV2aWNlICpzZHAsIHN0cnVjdCByZXF1ZXN0ICpycSkN CiANCiBzdGF0aWMgdm9pZCBzZF91bnByZXBfZm4oc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHN0 cnVjdCByZXF1ZXN0ICpycSkNCiB7DQorCXN0cnVjdCBzY3NpX2NtbmQgKlNDcG50ID0gcnEtPnNw ZWNpYWw7DQorDQogCWlmIChycS0+Y21kX2ZsYWdzICYgUkVRX0RJU0NBUkQpIHsNCiAJCWZyZWVf cGFnZSgodW5zaWduZWQgbG9uZylycS0+YnVmZmVyKTsNCiAJCXJxLT5idWZmZXIgPSBOVUxMOw0K IAl9DQorCWlmIChTQ3BudC0+Y21uZCAhPSBycS0+Y21kKSB7DQorCQltZW1wb29sX2ZyZWUoU0Nw bnQtPmNtbmQsIHNkX2NkYl9wb29sKTsNCisJCVNDcG50LT5jbW5kID0gTlVMTDsNCisJCVNDcG50 LT5jbWRfbGVuID0gMDsNCisJfQ0KIH0NCiANCiAvKioNCkBAIC0xNDUyLDIxICsxNDU5LDYgQEAg c3RhdGljIGludCBzZF9kb25lKHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50KQ0KIAlpZiAocnFfZGF0 YV9kaXIoU0NwbnQtPnJlcXVlc3QpID09IFJFQUQgJiYgc2NzaV9wcm90X3NnX2NvdW50KFNDcG50 KSkNCiAJCXNkX2RpZl9jb21wbGV0ZShTQ3BudCwgZ29vZF9ieXRlcyk7DQogDQotCWlmIChzY3Np X2hvc3RfZGlmX2NhcGFibGUoc2RrcC0+ZGV2aWNlLT5ob3N0LCBzZGtwLT5wcm90ZWN0aW9uX3R5 cGUpDQotCSAgICA9PSBTRF9ESUZfVFlQRTJfUFJPVEVDVElPTiAmJiBTQ3BudC0+Y21uZCAhPSBT Q3BudC0+cmVxdWVzdC0+Y21kKSB7DQotDQotCQkvKiBXZSBoYXZlIHRvIHByaW50IGEgZmFpbGVk IGNvbW1hbmQgaGVyZSBhcyB0aGUNCi0JCSAqIGV4dGVuZGVkIENEQiBnZXRzIGZyZWVkIGJlZm9y ZSBzY3NpX2lvX2NvbXBsZXRpb24oKQ0KLQkJICogaXMgY2FsbGVkLg0KLQkJICovDQotCQlpZiAo cmVzdWx0KQ0KLQkJCXNjc2lfcHJpbnRfY29tbWFuZChTQ3BudCk7DQotDQotCQltZW1wb29sX2Zy ZWUoU0NwbnQtPmNtbmQsIHNkX2NkYl9wb29sKTsNCi0JCVNDcG50LT5jbW5kID0gTlVMTDsNCi0J CVNDcG50LT5jbWRfbGVuID0gMDsNCi0JfQ0KLQ0KIAlyZXR1cm4gZ29vZF9ieXRlczsNCiB9DQog DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9jb21lZGlfZm9wcy5jIGIvZHJp dmVycy9zdGFnaW5nL2NvbWVkaS9jb21lZGlfZm9wcy5jDQppbmRleCBmZTRkYmYzLi43ZTQyMTkw IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9jb21lZGlfZm9wcy5jDQorKysg Yi9kcml2ZXJzL3N0YWdpbmcvY29tZWRpL2NvbWVkaV9mb3BzLmMNCkBAIC0xMDc4LDIyICsxMDc4 LDE5IEBAIHN0YXRpYyBpbnQgZG9fY21kX2lvY3RsKHN0cnVjdCBjb21lZGlfZGV2aWNlICpkZXYs DQogCQlEUFJJTlRLKCJzdWJkZXZpY2UgYnVzeVxuIik7DQogCQlyZXR1cm4gLUVCVVNZOw0KIAl9 DQotCXMtPmJ1c3kgPSBmaWxlOw0KIA0KIAkvKiBtYWtlIHN1cmUgY2hhbm5lbC9nYWluIGxpc3Qg aXNuJ3QgdG9vIGxvbmcgKi8NCiAJaWYgKHVzZXJfY21kLmNoYW5saXN0X2xlbiA+IHMtPmxlbl9j aGFubGlzdCkgew0KIAkJRFBSSU5USygiY2hhbm5lbC9nYWluIGxpc3QgdG9vIGxvbmcgJXUgPiAl ZFxuIiwNCiAJCQl1c2VyX2NtZC5jaGFubGlzdF9sZW4sIHMtPmxlbl9jaGFubGlzdCk7DQotCQly ZXQgPSAtRUlOVkFMOw0KLQkJZ290byBjbGVhbnVwOw0KKwkJcmV0dXJuIC1FSU5WQUw7DQogCX0N CiANCiAJLyogbWFrZSBzdXJlIGNoYW5uZWwvZ2FpbiBsaXN0IGlzbid0IHRvbyBzaG9ydCAqLw0K IAlpZiAodXNlcl9jbWQuY2hhbmxpc3RfbGVuIDwgMSkgew0KIAkJRFBSSU5USygiY2hhbm5lbC9n YWluIGxpc3QgdG9vIHNob3J0ICV1IDwgMVxuIiwNCiAJCQl1c2VyX2NtZC5jaGFubGlzdF9sZW4p Ow0KLQkJcmV0ID0gLUVJTlZBTDsNCi0JCWdvdG8gY2xlYW51cDsNCisJCXJldHVybiAtRUlOVkFM Ow0KIAl9DQogDQogCWFzeW5jLT5jbWQgPSB1c2VyX2NtZDsNCkBAIC0xMTAzLDggKzExMDAsNyBA QCBzdGF0aWMgaW50IGRvX2NtZF9pb2N0bChzdHJ1Y3QgY29tZWRpX2RldmljZSAqZGV2LA0KIAkg ICAga21hbGxvYyhhc3luYy0+Y21kLmNoYW5saXN0X2xlbiAqIHNpemVvZihpbnQpLCBHRlBfS0VS TkVMKTsNCiAJaWYgKCFhc3luYy0+Y21kLmNoYW5saXN0KSB7DQogCQlEUFJJTlRLKCJhbGxvY2F0 aW9uIGZhaWxlZFxuIik7DQotCQlyZXQgPSAtRU5PTUVNOw0KLQkJZ290byBjbGVhbnVwOw0KKwkJ cmV0dXJuIC1FTk9NRU07DQogCX0NCiANCiAJaWYgKGNvcHlfZnJvbV91c2VyKGFzeW5jLT5jbWQu Y2hhbmxpc3QsIHVzZXJfY21kLmNoYW5saXN0LA0KQEAgLTExNTYsNiArMTE1Miw5IEBAIHN0YXRp YyBpbnQgZG9fY21kX2lvY3RsKHN0cnVjdCBjb21lZGlfZGV2aWNlICpkZXYsDQogDQogCWNvbWVk aV9zZXRfc3ViZGV2aWNlX3J1bmZsYWdzKHMsIH4wLCBTUkZfVVNFUiB8IFNSRl9SVU5OSU5HKTsN CiANCisJLyogc2V0IHMtPmJ1c3kgX2FmdGVyXyBzZXR0aW5nIFNSRl9SVU5OSU5HIGZsYWcgdG8g YXZvaWQgcmFjZSB3aXRoDQorCSAqIGNvbWVkaV9yZWFkKCkgb3IgY29tZWRpX3dyaXRlKCkgKi8N CisJcy0+YnVzeSA9IGZpbGU7DQogCXJldCA9IHMtPmRvX2NtZChkZXYsIHMpOw0KIAlpZiAocmV0 ID09IDApDQogCQlyZXR1cm4gMDsNCkBAIC0xMzcwLDYgKzEzNjksNyBAQCBzdGF0aWMgaW50IGRv X2NhbmNlbF9pb2N0bChzdHJ1Y3QgY29tZWRpX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgYXJn LA0KIAkJCSAgIHZvaWQgKmZpbGUpDQogew0KIAlzdHJ1Y3QgY29tZWRpX3N1YmRldmljZSAqczsN CisJaW50IHJldDsNCiANCiAJaWYgKGFyZyA+PSBkZXYtPm5fc3ViZGV2aWNlcykNCiAJCXJldHVy biAtRUlOVkFMOw0KQEAgLTEzODYsNyArMTM4NiwxMSBAQCBzdGF0aWMgaW50IGRvX2NhbmNlbF9p b2N0bChzdHJ1Y3QgY29tZWRpX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgYXJnLA0KIAlpZiAo cy0+YnVzeSAhPSBmaWxlKQ0KIAkJcmV0dXJuIC1FQlVTWTsNCiANCi0JcmV0dXJuIGRvX2NhbmNl bChkZXYsIHMpOw0KKwlyZXQgPSBkb19jYW5jZWwoZGV2LCBzKTsNCisJaWYgKGNvbWVkaV9nZXRf c3ViZGV2aWNlX3J1bmZsYWdzKHMpICYgU1JGX1VTRVIpDQorCQl3YWtlX3VwX2ludGVycnVwdGli bGUoJnMtPmFzeW5jLT53YWl0X2hlYWQpOw0KKw0KKwlyZXR1cm4gcmV0Ow0KIH0NCiANCiAvKg0K QEAgLTE2NTMsNiArMTY1Nyw3IEBAIHN0YXRpYyBzc2l6ZV90IGNvbWVkaV93cml0ZShzdHJ1Y3Qg ZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwNCiANCiAJCWlmICghKGNvbWVkaV9n ZXRfc3ViZGV2aWNlX3J1bmZsYWdzKHMpICYgU1JGX1JVTk5JTkcpKSB7DQogCQkJaWYgKGNvdW50 ID09IDApIHsNCisJCQkJbXV0ZXhfbG9jaygmZGV2LT5tdXRleCk7DQogCQkJCWlmIChjb21lZGlf Z2V0X3N1YmRldmljZV9ydW5mbGFncyhzKSAmDQogCQkJCQlTUkZfRVJST1IpIHsNCiAJCQkJCXJl dHZhbCA9IC1FUElQRTsNCkBAIC0xNjYwLDYgKzE2NjUsNyBAQCBzdGF0aWMgc3NpemVfdCBjb21l ZGlfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWYsDQogCQkJ CQlyZXR2YWwgPSAwOw0KIAkJCQl9DQogCQkJCWRvX2JlY29tZV9ub25idXN5KGRldiwgcyk7DQor CQkJCW11dGV4X3VubG9jaygmZGV2LT5tdXRleCk7DQogCQkJfQ0KIAkJCWJyZWFrOw0KIAkJfQ0K QEAgLTE3NzQsNiArMTc4MCw3IEBAIHN0YXRpYyBzc2l6ZV90IGNvbWVkaV9yZWFkKHN0cnVjdCBm aWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgbmJ5dGVzLA0KIA0KIAkJaWYgKG4g PT0gMCkgew0KIAkJCWlmICghKGNvbWVkaV9nZXRfc3ViZGV2aWNlX3J1bmZsYWdzKHMpICYgU1JG X1JVTk5JTkcpKSB7DQorCQkJCW11dGV4X2xvY2soJmRldi0+bXV0ZXgpOw0KIAkJCQlkb19iZWNv bWVfbm9uYnVzeShkZXYsIHMpOw0KIAkJCQlpZiAoY29tZWRpX2dldF9zdWJkZXZpY2VfcnVuZmxh Z3MocykgJg0KIAkJCQkgICAgU1JGX0VSUk9SKSB7DQpAQCAtMTc4MSw2ICsxNzg4LDcgQEAgc3Rh dGljIHNzaXplX3QgY29tZWRpX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpi dWYsIHNpemVfdCBuYnl0ZXMsDQogCQkJCX0gZWxzZSB7DQogCQkJCQlyZXR2YWwgPSAwOw0KIAkJ CQl9DQorCQkJCW11dGV4X3VubG9jaygmZGV2LT5tdXRleCk7DQogCQkJCWJyZWFrOw0KIAkJCX0N CiAJCQlpZiAoZmlsZS0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spIHsNCkBAIC0xODE4LDkgKzE4MjYs MTEgQEAgc3RhdGljIHNzaXplX3QgY29tZWRpX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIg X191c2VyICpidWYsIHNpemVfdCBuYnl0ZXMsDQogCQlidWYgKz0gbjsNCiAJCWJyZWFrOwkJLyog bWFrZXMgZGV2aWNlIHdvcmsgbGlrZSBhIHBpcGUgKi8NCiAJfQ0KLQlpZiAoIShjb21lZGlfZ2V0 X3N1YmRldmljZV9ydW5mbGFncyhzKSAmIChTUkZfRVJST1IgfCBTUkZfUlVOTklORykpICYmDQot CSAgICBhc3luYy0+YnVmX3JlYWRfY291bnQgLSBhc3luYy0+YnVmX3dyaXRlX2NvdW50ID09IDAp IHsNCi0JCWRvX2JlY29tZV9ub25idXN5KGRldiwgcyk7DQorCWlmICghKGNvbWVkaV9nZXRfc3Vi ZGV2aWNlX3J1bmZsYWdzKHMpICYgKFNSRl9FUlJPUiB8IFNSRl9SVU5OSU5HKSkpIHsNCisJCW11 dGV4X2xvY2soJmRldi0+bXV0ZXgpOw0KKwkJaWYgKGFzeW5jLT5idWZfcmVhZF9jb3VudCAtIGFz eW5jLT5idWZfd3JpdGVfY291bnQgPT0gMCkNCisJCQlkb19iZWNvbWVfbm9uYnVzeShkZXYsIHMp Ow0KKwkJbXV0ZXhfdW5sb2NrKCZkZXYtPm11dGV4KTsNCiAJfQ0KIAlzZXRfY3VycmVudF9zdGF0 ZShUQVNLX1JVTk5JTkcpOw0KIAlyZW1vdmVfd2FpdF9xdWV1ZSgmYXN5bmMtPndhaXRfaGVhZCwg JndhaXQpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9saW5lNi9wY20uYyBiL2RyaXZl cnMvc3RhZ2luZy9saW5lNi9wY20uYw0KaW5kZXggOWQ0YzhhNi4uMmQzYTQyMCAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvc3RhZ2luZy9saW5lNi9wY20uYw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL2xp bmU2L3BjbS5jDQpAQCAtMzYwLDggKzM2MCwxMSBAQCBzdGF0aWMgaW50IHNuZF9saW5lNl9wY21f ZnJlZShzdHJ1Y3Qgc25kX2RldmljZSAqZGV2aWNlKQ0KICovDQogc3RhdGljIHZvaWQgcGNtX2Rp c2Nvbm5lY3Rfc3Vic3RyZWFtKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQ0K IHsNCi0JaWYgKHN1YnN0cmVhbS0+cnVudGltZSAmJiBzbmRfcGNtX3J1bm5pbmcoc3Vic3RyZWFt KSkNCisJaWYgKHN1YnN0cmVhbS0+cnVudGltZSAmJiBzbmRfcGNtX3J1bm5pbmcoc3Vic3RyZWFt KSkgew0KKwkJc25kX3BjbV9zdHJlYW1fbG9ja19pcnEoc3Vic3RyZWFtKTsNCiAJCXNuZF9wY21f c3RvcChzdWJzdHJlYW0sIFNORFJWX1BDTV9TVEFURV9ESVNDT05ORUNURUQpOw0KKwkJc25kX3Bj bV9zdHJlYW1fdW5sb2NrX2lycShzdWJzdHJlYW0pOw0KKwl9DQogfQ0KIA0KIC8qDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy91c2IvY29yZS9odWIuYyBiL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMNCmlu ZGV4IDIyY2JlMDYuLjI3NjhhN2UgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5j DQorKysgYi9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jDQpAQCAtNDYzLDYgKzQ2MywxNSBAQCByZXN1 Ym1pdDoNCiBzdGF0aWMgaW5saW5lIGludA0KIGh1Yl9jbGVhcl90dF9idWZmZXIgKHN0cnVjdCB1 c2JfZGV2aWNlICpoZGV2LCB1MTYgZGV2aW5mbywgdTE2IHR0KQ0KIHsNCisJLyogTmVlZCB0byBj bGVhciBib3RoIGRpcmVjdGlvbnMgZm9yIGNvbnRyb2wgZXAgKi8NCisJaWYgKCgoZGV2aW5mbyA+ PiAxMSkgJiBVU0JfRU5EUE9JTlRfWEZFUlRZUEVfTUFTSykgPT0NCisJCQlVU0JfRU5EUE9JTlRf WEZFUl9DT05UUk9MKSB7DQorCQlpbnQgc3RhdHVzID0gdXNiX2NvbnRyb2xfbXNnKGhkZXYsIHVz Yl9zbmRjdHJscGlwZShoZGV2LCAwKSwNCisJCQkJSFVCX0NMRUFSX1RUX0JVRkZFUiwgVVNCX1JU X1BPUlQsDQorCQkJCWRldmluZm8gXiAweDgwMDAsIHR0LCBOVUxMLCAwLCAxMDAwKTsNCisJCWlm IChzdGF0dXMpDQorCQkJcmV0dXJuIHN0YXR1czsNCisJfQ0KIAlyZXR1cm4gdXNiX2NvbnRyb2xf bXNnKGhkZXYsIHVzYl9zbmRjdHJscGlwZShoZGV2LCAwKSwNCiAJCQkgICAgICAgSFVCX0NMRUFS X1RUX0JVRkZFUiwgVVNCX1JUX1BPUlQsIGRldmluZm8sDQogCQkJICAgICAgIHR0LCBOVUxMLCAw LCAxMDAwKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9kd2MzL2NvcmUuaCBiL2RyaXZlcnMv dXNiL2R3YzMvY29yZS5oDQppbmRleCAyOWE4ZTE2Li40Nzk1YzBjIDEwMDY0NA0KLS0tIGEvZHJp dmVycy91c2IvZHdjMy9jb3JlLmgNCisrKyBiL2RyaXZlcnMvdXNiL2R3YzMvY29yZS5oDQpAQCAt NjQzLDggKzY0Myw4IEBAIHN0cnVjdCBkd2MzIHsNCiANCiBzdHJ1Y3QgZHdjM19ldmVudF90eXBl IHsNCiAJdTMyCWlzX2RldnNwZWM6MTsNCi0JdTMyCXR5cGU6NjsNCi0JdTMyCXJlc2VydmVkOF8z MToyNTsNCisJdTMyCXR5cGU6NzsNCisJdTMyCXJlc2VydmVkOF8zMToyNDsNCiB9IF9fcGFja2Vk Ow0KIA0KICNkZWZpbmUgRFdDM19ERVBFVlRfWEZFUkNPTVBMRVRFCTB4MDENCmRpZmYgLS1naXQg YS9kcml2ZXJzL3VzYi9kd2MzL2dhZGdldC5jIGIvZHJpdmVycy91c2IvZHdjMy9nYWRnZXQuYw0K aW5kZXggYjM2OGI4My4uNjE5ZWUxOSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2R3YzMvZ2Fk Z2V0LmMNCisrKyBiL2RyaXZlcnMvdXNiL2R3YzMvZ2FkZ2V0LmMNCkBAIC0xMjE3LDYgKzEyMTcs NyBAQCBlcnIxOg0KIAlfX2R3YzNfZ2FkZ2V0X2VwX2Rpc2FibGUoZHdjLT5lcHNbMF0pOw0KIA0K IGVycjA6DQorCWR3Yy0+Z2FkZ2V0X2RyaXZlciA9IE5VTEw7DQogCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmR3Yy0+bG9jaywgZmxhZ3MpOw0KIA0KIAlyZXR1cm4gcmV0Ow0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2ku Yw0KaW5kZXggYWNhNjQ3YS4uNzlkMjcyMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qv eGhjaS1wY2kuYw0KKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jDQpAQCAtODksNyAr ODksNiBAQCBzdGF0aWMgdm9pZCB4aGNpX3BjaV9xdWlya3Moc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgeGhjaV9oY2QgKnhoY2kpDQogCQl4aGNpLT5xdWlya3MgfD0gWEhDSV9BTURfUExMX0ZJ WDsNCiAJaWYgKHBkZXYtPnZlbmRvciA9PSBQQ0lfVkVORE9SX0lEX0lOVEVMICYmDQogCQkJcGRl di0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfUEFOVEhFUlBPSU5UX1hIQ0kpIHsNCi0J CXhoY2ktPnF1aXJrcyB8PSBYSENJX1NQVVJJT1VTX1NVQ0NFU1M7DQogCQl4aGNpLT5xdWlya3Mg fD0gWEhDSV9FUF9MSU1JVF9RVUlSSzsNCiAJCXhoY2ktPmxpbWl0X2FjdGl2ZV9lcHMgPSA2NDsN CiAJCXhoY2ktPnF1aXJrcyB8PSBYSENJX1NXX0JXX0NIRUNLSU5HOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5j DQppbmRleCBkMDhhODA0Li42MzM0NzZlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvaG9zdC94 aGNpLXJpbmcuYw0KKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYw0KQEAgLTQ2Myw3 ICs0NjMsNyBAQCBzdGF0aWMgdm9pZCByaW5nX2Rvb3JiZWxsX2Zvcl9hY3RpdmVfcmluZ3Moc3Ry dWN0IHhoY2lfaGNkICp4aGNpLA0KIA0KIAkvKiBBIHJpbmcgaGFzIHBlbmRpbmcgVVJCcyBpZiBp dHMgVEQgbGlzdCBpcyBub3QgZW1wdHkgKi8NCiAJaWYgKCEoZXAtPmVwX3N0YXRlICYgRVBfSEFT X1NUUkVBTVMpKSB7DQotCQlpZiAoIShsaXN0X2VtcHR5KCZlcC0+cmluZy0+dGRfbGlzdCkpKQ0K KwkJaWYgKGVwLT5yaW5nICYmICEobGlzdF9lbXB0eSgmZXAtPnJpbmctPnRkX2xpc3QpKSkNCiAJ CQl4aGNpX3JpbmdfZXBfZG9vcmJlbGwoeGhjaSwgc2xvdF9pZCwgZXBfaW5kZXgsIDApOw0KIAkJ cmV0dXJuOw0KIAl9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLmMgYi9kcml2 ZXJzL3VzYi9ob3N0L3hoY2kuYw0KaW5kZXggMTM2YzM1Ny4uNmUxYzkyYSAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvdXNiL2hvc3QveGhjaS5jDQorKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuYw0K QEAgLTExNTMsOSArMTE1Myw2IEBAIHN0YXRpYyBpbnQgeGhjaV9jaGVja19hcmdzKHN0cnVjdCB1 c2JfaGNkICpoY2QsIHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2LA0KIAl9DQogDQogCXhoY2kgPSBo Y2RfdG9feGhjaShoY2QpOw0KLQlpZiAoeGhjaS0+eGhjX3N0YXRlICYgWEhDSV9TVEFURV9IQUxU RUQpDQotCQlyZXR1cm4gLUVOT0RFVjsNCi0NCiAJaWYgKGNoZWNrX3ZpcnRfZGV2KSB7DQogCQlp ZiAoIXVkZXYtPnNsb3RfaWQgfHwgIXhoY2ktPmRldnNbdWRldi0+c2xvdF9pZF0pIHsNCiAJCQlw cmludGsoS0VSTl9ERUJVRyAieEhDSSAlcyBjYWxsZWQgd2l0aCB1bmFkZHJlc3NlZCAiDQpAQCAt MTE3MSw2ICsxMTY4LDkgQEAgc3RhdGljIGludCB4aGNpX2NoZWNrX2FyZ3Moc3RydWN0IHVzYl9o Y2QgKmhjZCwgc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYsDQogCQl9DQogCX0NCiANCisJaWYgKHho Y2ktPnhoY19zdGF0ZSAmIFhIQ0lfU1RBVEVfSEFMVEVEKQ0KKwkJcmV0dXJuIC1FTk9ERVY7DQor DQogCXJldHVybiAxOw0KIH0NCiANCkBAIC00MTc4LDYgKzQxNzgsMTMgQEAgaW50IHhoY2lfZ2Vu X3NldHVwKHN0cnVjdCB1c2JfaGNkICpoY2QsIHhoY2lfZ2V0X3F1aXJrc190IGdldF9xdWlya3Mp DQogDQogCWdldF9xdWlya3MoZGV2LCB4aGNpKTsNCiANCisJLyogSW4geGhjaSBjb250cm9sbGVy cyB3aGljaCBmb2xsb3cgeGhjaSAxLjAgc3BlYyBnaXZlcyBhIHNwdXJpb3VzDQorCSAqIHN1Y2Nl c3MgZXZlbnQgYWZ0ZXIgYSBzaG9ydCB0cmFuc2Zlci4gVGhpcyBxdWlyayB3aWxsIGlnbm9yZSBz dWNoDQorCSAqIHNwdXJpb3VzIGV2ZW50Lg0KKwkgKi8NCisJaWYgKHhoY2ktPmhjaV92ZXJzaW9u ID4gMHg5NikNCisJCXhoY2ktPnF1aXJrcyB8PSBYSENJX1NQVVJJT1VTX1NVQ0NFU1M7DQorDQog CS8qIE1ha2Ugc3VyZSB0aGUgSEMgaXMgaGFsdGVkLiAqLw0KIAlyZXR2YWwgPSB4aGNpX2hhbHQo eGhjaSk7DQogCWlmIChyZXR2YWwpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbWlzYy9zaXN1 c2J2Z2Evc2lzdXNiLmMgYi9kcml2ZXJzL3VzYi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYw0KaW5k ZXggZGQ1NzNhYi4uN2FmMTYzZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL21pc2Mvc2lzdXNi dmdhL3Npc3VzYi5jDQorKysgYi9kcml2ZXJzL3VzYi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYw0K QEAgLTMyNDcsNiArMzI0Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBz aXN1c2JfdGFibGVbXSA9IHsNCiAJeyBVU0JfREVWSUNFKDB4MDcxMSwgMHgwOTAzKSB9LA0KIAl7 IFVTQl9ERVZJQ0UoMHgwNzExLCAweDA5MTgpIH0sDQogCXsgVVNCX0RFVklDRSgweDA3MTEsIDB4 MDkyMCkgfSwNCisJeyBVU0JfREVWSUNFKDB4MDcxMSwgMHgwOTUwKSB9LA0KIAl7IFVTQl9ERVZJ Q0UoMHgxODJkLCAweDAyMWMpIH0sDQogCXsgVVNCX0RFVklDRSgweDE4MmQsIDB4MDI2OSkgfSwN CiAJeyB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2NwMjEweC5jIGIvZHJpdmVy cy91c2Ivc2VyaWFsL2NwMjEweC5jDQppbmRleCA5MTNhMTc4Li5jNDA4ZmY3IDEwMDY0NA0KLS0t IGEvZHJpdmVycy91c2Ivc2VyaWFsL2NwMjEweC5jDQorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwv Y3AyMTB4LmMNCkBAIC02MCw2ICs2MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2Rldmlj ZV9pZCBpZF90YWJsZVtdID0gew0KIAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweEUwMDApIH0sIC8q IFBpcmVsbGkgQnJvYWRiYW5kIFMucC5BLCBEUC1MMTAgU0lQL0dTTSBNb2JpbGUgKi8NCiAJeyBV U0JfREVWSUNFKDB4MDQ4OSwgMHhFMDAzKSB9LCAvKiBQaXJlbGxpIEJyb2FkYmFuZCBTLnAuQSwg RFAtTDEwIFNJUC9HU00gTW9iaWxlICovDQogCXsgVVNCX0RFVklDRSgweDA3NDUsIDB4MTAwMCkg fSwgLyogQ2lwaGVyTGFiIFVTQiBDQ0QgQmFyY29kZSBTY2FubmVyIDEwMDAgKi8NCisJeyBVU0Jf REVWSUNFKDB4MDg0NiwgMHgxMTAwKSB9LCAvKiBOZXRHZWFyIE1hbmFnZWQgU3dpdGNoIE00MTAw IHNlcmllcywgTTUzMDAgc2VyaWVzLCBNNzEwMCBzZXJpZXMgKi8NCiAJeyBVU0JfREVWSUNFKDB4 MDhlNiwgMHg1NTAxKSB9LCAvKiBHZW1hbHRvIFByb3gtUFUvQ1UgY29udGFjdGxlc3Mgc21hcnRj YXJkIHJlYWRlciAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgwOEZELCAweDAwMEEpIH0sIC8qIERpZ2lh bnN3ZXIgQS9TICwgWmlnQmVlLzgwMi4xNS40IE1BQyBEZXZpY2UgKi8NCiAJeyBVU0JfREVWSUNF KDB4MEJFRCwgMHgxMTAwKSB9LCAvKiBNRUkgKFRNKSBDYXNoZmxvdy1TQyBCaWxsL1ZvdWNoZXIg QWNjZXB0b3IgKi8NCkBAIC0xMjQsNiArMTI1LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2Jf ZGV2aWNlX2lkIGlkX3RhYmxlW10gPSB7DQogCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4ODVGOCkg fSwgLyogVmlydGVuaW8gUHJlb24zMiAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweDg2NjQp IH0sIC8qIEFDLVNlcnZpY2VzIENBTi1JRiAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweDg2 NjUpIH0sIC8qIEFDLVNlcnZpY2VzIE9CRC1JRiAqLw0KKwl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAw eDg4QTQpIH0sIC8qIE1NQiBOZXR3b3JrcyBaaWdCZWUgVVNCIERldmljZSAqLw0KKwl7IFVTQl9E RVZJQ0UoMHgxMEM0LCAweDg4QTUpIH0sIC8qIFBsYW5ldCBJbm5vdmF0aW9uIEluZ2VuaSBaaWdC ZWUgVVNCIERldmljZSAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweEVBNjApIH0sIC8qIFNp bGljb24gTGFicyBmYWN0b3J5IGRlZmF1bHQgKi8NCiAJeyBVU0JfREVWSUNFKDB4MTBDNCwgMHhF QTYxKSB9LCAvKiBTaWxpY29uIExhYnMgZmFjdG9yeSBkZWZhdWx0ICovDQogCXsgVVNCX0RFVklD RSgweDEwQzQsIDB4RUE3MCkgfSwgLyogU2lsaWNvbiBMYWJzIGZhY3RvcnkgZGVmYXVsdCAqLw0K QEAgLTE1NCw2ICsxNTcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRf dGFibGVbXSA9IHsNCiAJeyBVU0JfREVWSUNFKDB4MTdGNCwgMHhBQUFBKSB9LCAvKiBXYXZlc2Vu c2UgSmF6eiBibG9vZCBnbHVjb3NlIG1ldGVyICovDQogCXsgVVNCX0RFVklDRSgweDE4NDMsIDB4 MDIwMCkgfSwgLyogVmFpc2FsYSBVU0IgSW5zdHJ1bWVudCBDYWJsZSAqLw0KIAl7IFVTQl9ERVZJ Q0UoMHgxOEVGLCAweEUwMEYpIH0sIC8qIEVMViBVU0ItSTJDLUludGVyZmFjZSAqLw0KKwl7IFVT Ql9ERVZJQ0UoMHgxQURCLCAweDAwMDEpIH0sIC8qIFNjaHdlaXR6ZXIgRW5naW5lZXJpbmcgQzY2 MiBDYWJsZSAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgxQkUzLCAweDA3QTYpIH0sIC8qIFdBR08gNzUw LTkyMyBVU0IgU2VydmljZSBDYWJsZSAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgxRTI5LCAweDAxMDIp IH0sIC8qIEZlc3RvIENQWC1VU0IgKi8NCiAJeyBVU0JfREVWSUNFKDB4MUUyOSwgMHgwNTAxKSB9 LCAvKiBGZXN0byBDTVNQICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL21vczc4 NDAuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9tb3M3ODQwLmMNCmluZGV4IGU4OWVlNDguLjVlOGM3 MzYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvbW9zNzg0MC5jDQorKysgYi9kcml2 ZXJzL3VzYi9zZXJpYWwvbW9zNzg0MC5jDQpAQCAtOTI1LDIwICs5MjUsMjAgQEAgc3RhdGljIGlu dCBtb3M3ODQwX29wZW4oc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IHVzYl9zZXJpYWxf cG9ydCAqcG9ydCkNCiAJc3RhdHVzID0gbW9zNzg0MF9nZXRfcmVnX3N5bmMocG9ydCwgbW9zNzg0 MF9wb3J0LT5TcFJlZ09mZnNldCwgJkRhdGEpOw0KIAlpZiAoc3RhdHVzIDwgMCkgew0KIAkJZGJn KCJSZWFkaW5nIFNwcmVnIGZhaWxlZCIpOw0KLQkJcmV0dXJuIC0xOw0KKwkJZ290byBlcnI7DQog CX0NCiAJRGF0YSB8PSAweDgwOw0KIAlzdGF0dXMgPSBtb3M3ODQwX3NldF9yZWdfc3luYyhwb3J0 LCBtb3M3ODQwX3BvcnQtPlNwUmVnT2Zmc2V0LCBEYXRhKTsNCiAJaWYgKHN0YXR1cyA8IDApIHsN CiAJCWRiZygid3JpdGluZyBTcHJlZyBmYWlsZWQiKTsNCi0JCXJldHVybiAtMTsNCisJCWdvdG8g ZXJyOw0KIAl9DQogDQogCURhdGEgJj0gfjB4ODA7DQogCXN0YXR1cyA9IG1vczc4NDBfc2V0X3Jl Z19zeW5jKHBvcnQsIG1vczc4NDBfcG9ydC0+U3BSZWdPZmZzZXQsIERhdGEpOw0KIAlpZiAoc3Rh dHVzIDwgMCkgew0KIAkJZGJnKCJ3cml0aW5nIFNwcmVnIGZhaWxlZCIpOw0KLQkJcmV0dXJuIC0x Ow0KKwkJZ290byBlcnI7DQogCX0NCiAJLyogRW5kIG9mIGJsb2NrIHRvIGJlIGNoZWNrZWQgKi8N CiANCkBAIC05NDcsNyArOTQ3LDcgQEAgc3RhdGljIGludCBtb3M3ODQwX29wZW4oc3RydWN0IHR0 eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkNCiAJCQkJCQkJCQkm RGF0YSk7DQogCWlmIChzdGF0dXMgPCAwKSB7DQogCQlkYmcoIlJlYWRpbmcgQ29udHJvbHJlZyBm YWlsZWQiKTsNCi0JCXJldHVybiAtMTsNCisJCWdvdG8gZXJyOw0KIAl9DQogCURhdGEgfD0gMHgw ODsJCS8qIERyaXZlciBkb25lIGJpdCAqLw0KIAlEYXRhIHw9IDB4MjA7CQkvKiByeF9kaXNhYmxl ICovDQpAQCAtOTU1LDcgKzk1NSw3IEBAIHN0YXRpYyBpbnQgbW9zNzg0MF9vcGVuKHN0cnVjdCB0 dHlfc3RydWN0ICp0dHksIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpDQogCQkJCW1vczc4 NDBfcG9ydC0+Q29udHJvbFJlZ09mZnNldCwgRGF0YSk7DQogCWlmIChzdGF0dXMgPCAwKSB7DQog CQlkYmcoIndyaXRpbmcgQ29udHJvbHJlZyBmYWlsZWQiKTsNCi0JCXJldHVybiAtMTsNCisJCWdv dG8gZXJyOw0KIAl9DQogCS8qIGRvIHJlZ2lzdGVyIHNldHRpbmdzIGhlcmUgKi8NCiAJLyogU2V0 IGFsbCByZWdzIHRvIHRoZSBkZXZpY2UgZGVmYXVsdCB2YWx1ZXMuICovDQpAQCAtOTY2LDIxICs5 NjYsMjEgQEAgc3RhdGljIGludCBtb3M3ODQwX29wZW4oc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwg c3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkNCiAJc3RhdHVzID0gbW9zNzg0MF9zZXRfdWFy dF9yZWcocG9ydCwgSU5URVJSVVBUX0VOQUJMRV9SRUdJU1RFUiwgRGF0YSk7DQogCWlmIChzdGF0 dXMgPCAwKSB7DQogCQlkYmcoImRpc2FibGluZyBpbnRlcnJ1cHRzIGZhaWxlZCIpOw0KLQkJcmV0 dXJuIC0xOw0KKwkJZ290byBlcnI7DQogCX0NCiAJLyogU2V0IEZJRk9fQ09OVFJPTF9SRUdJU1RF UiB0byB0aGUgZGVmYXVsdCB2YWx1ZSAqLw0KIAlEYXRhID0gMHgwMDsNCiAJc3RhdHVzID0gbW9z Nzg0MF9zZXRfdWFydF9yZWcocG9ydCwgRklGT19DT05UUk9MX1JFR0lTVEVSLCBEYXRhKTsNCiAJ aWYgKHN0YXR1cyA8IDApIHsNCiAJCWRiZygiV3JpdGluZyBGSUZPX0NPTlRST0xfUkVHSVNURVIg IGZhaWxlZCIpOw0KLQkJcmV0dXJuIC0xOw0KKwkJZ290byBlcnI7DQogCX0NCiANCiAJRGF0YSA9 IDB4Y2Y7DQogCXN0YXR1cyA9IG1vczc4NDBfc2V0X3VhcnRfcmVnKHBvcnQsIEZJRk9fQ09OVFJP TF9SRUdJU1RFUiwgRGF0YSk7DQogCWlmIChzdGF0dXMgPCAwKSB7DQogCQlkYmcoIldyaXRpbmcg RklGT19DT05UUk9MX1JFR0lTVEVSICBmYWlsZWQiKTsNCi0JCXJldHVybiAtMTsNCisJCWdvdG8g ZXJyOw0KIAl9DQogDQogCURhdGEgPSAweDAzOw0KQEAgLTExMzYsNyArMTEzNiwxNSBAQCBzdGF0 aWMgaW50IG1vczc4NDBfb3BlbihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgdXNiX3Nl cmlhbF9wb3J0ICpwb3J0KQ0KIAlkYmcgKCIlcyBsZWF2ZSIsIF9fZnVuY19fKTsNCiANCiAJcmV0 dXJuIDA7DQotDQorZXJyOg0KKwlmb3IgKGogPSAwOyBqIDwgTlVNX1VSQlM7ICsraikgew0KKwkJ dXJiID0gbW9zNzg0MF9wb3J0LT53cml0ZV91cmJfcG9vbFtqXTsNCisJCWlmICghdXJiKQ0KKwkJ CWNvbnRpbnVlOw0KKwkJa2ZyZWUodXJiLT50cmFuc2Zlcl9idWZmZXIpOw0KKwkJdXNiX2ZyZWVf dXJiKHVyYik7DQorCX0NCisJcmV0dXJuIHN0YXR1czsNCiB9DQogDQogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jIGIvZHJpdmVy cy91c2Ivc2VyaWFsL29wdGlvbi5jDQppbmRleCBiODM2NWE3Li5jMjEwM2Y0IDEwMDY0NA0KLS0t IGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jDQorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwv b3B0aW9uLmMNCkBAIC0zNDcsMTcgKzM0NywxMiBAQCBzdGF0aWMgdm9pZCBvcHRpb25faW5zdGF0 X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYik7DQogI2RlZmluZSBPTElWRVRUSV9WRU5ET1JfSUQJ CQkweDBiM2MNCiAjZGVmaW5lIE9MSVZFVFRJX1BST0RVQ1RfT0xJQ0FSRDEwMAkJMHhjMDAwDQog I2RlZmluZSBPTElWRVRUSV9QUk9EVUNUX09MSUNBUkQxNDUJCTB4YzAwMw0KKyNkZWZpbmUgT0xJ VkVUVElfUFJPRFVDVF9PTElDQVJEMjAwCQkweGMwMDUNCiANCiAvKiBDZWxvdCBwcm9kdWN0cyAq Lw0KICNkZWZpbmUgQ0VMT1RfVkVORE9SX0lECQkJCTB4MjExZg0KICNkZWZpbmUgQ0VMT1RfUFJP RFVDVF9DVDY4ME0JCQkweDY4MDENCiANCi0vKiBPTkRBIENvbW11bmljYXRpb24gdmVuZG9yIGlk ICovDQotI2RlZmluZSBPTkRBX1ZFTkRPUl9JRCAgICAgICAweDFlZTgNCi0NCi0vKiBPTkRBIE1U ODI1VVAgSFNEUEEgMTQuMiBtb2RlbSAqLw0KLSNkZWZpbmUgT05EQV9NVDgyNVVQICAgICAgICAg MHgwMDBiDQotDQogLyogU2Ftc3VuZyBwcm9kdWN0cyAqLw0KICNkZWZpbmUgU0FNU1VOR19WRU5E T1JfSUQgICAgICAgICAgICAgICAgICAgICAgIDB4MDRlOA0KICNkZWZpbmUgU0FNU1VOR19QUk9E VUNUX0dUX0IzNzMwICAgICAgICAgICAgICAgIDB4Njg4OQ0KQEAgLTQ1MCw3ICs0NDUsOCBAQCBz dGF0aWMgdm9pZCBvcHRpb25faW5zdGF0X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYik7DQogDQog LyogSHl1bmRhaSBQZXRhdGVsIEluYy4gcHJvZHVjdHMgKi8NCiAjZGVmaW5lIFBFVEFURUxfVkVO RE9SX0lECQkJMHgxZmY0DQotI2RlZmluZSBQRVRBVEVMX1BST0RVQ1RfTlAxMFQJCQkweDYwMGUN CisjZGVmaW5lIFBFVEFURUxfUFJPRFVDVF9OUDEwVF82MDBBCQkweDYwMGENCisjZGVmaW5lIFBF VEFURUxfUFJPRFVDVF9OUDEwVF82MDBFCQkweDYwMGUNCiANCiAvKiBUUC1MSU5LIEluY29ycG9y YXRlZCBwcm9kdWN0cyAqLw0KICNkZWZpbmUgVFBMSU5LX1ZFTkRPUl9JRAkJCTB4MjM1Nw0KQEAg LTc5Nyw2ICs3OTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9u X2lkc1tdID0gew0KIAl7IFVTQl9ERVZJQ0UoS1lPQ0VSQV9WRU5ET1JfSUQsIEtZT0NFUkFfUFJP RFVDVF9LUEM2ODApIH0sDQogCXsgVVNCX0RFVklDRShRVUFMQ09NTV9WRU5ET1JfSUQsIDB4NjAw MCl9LCAvKiBaVEUgQUM4NzAwICovDQogCXsgVVNCX0RFVklDRShRVUFMQ09NTV9WRU5ET1JfSUQs IDB4NjYxMyl9LCAvKiBPbmRhIEg2MDAvWlRFIE1GMzMwICovDQorCXsgVVNCX0RFVklDRShRVUFM Q09NTV9WRU5ET1JfSUQsIDB4MDAyMyl9LCAvKiBPTllYIDNHIGRldmljZSAqLw0KIAl7IFVTQl9E RVZJQ0UoUVVBTENPTU1fVkVORE9SX0lELCAweDkwMDApfSwgLyogU0lNQ29tIFNJTTUyMTggKi8N CiAJeyBVU0JfREVWSUNFKENNT1RFQ0hfVkVORE9SX0lELCBDTU9URUNIX1BST0RVQ1RfNjI4MCkg fSwgLyogQlAzLVVTQiAmIEJQMy1FWFQgSFNEUEEgKi8NCiAJeyBVU0JfREVWSUNFKENNT1RFQ0hf VkVORE9SX0lELCBDTU9URUNIX1BST0RVQ1RfNjAwOCkgfSwNCkBAIC04MzIsNyArODI5LDggQEAg c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJeyBV U0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDAwMTcsIDB4ZmYs IDB4ZmYsIDB4ZmYpLA0KIAkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZuZXRfaW50 ZjNfYmxhY2tsaXN0IH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZF TkRPUl9JRCwgMHgwMDE4LCAweGZmLCAweGZmLCAweGZmKSB9LA0KLQl7IFVTQl9ERVZJQ0VfQU5E X0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MDAxOSwgMHhmZiwgMHhmZiwgMHhmZikg fSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDAw MTksIDB4ZmYsIDB4ZmYsIDB4ZmYpLA0KKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190 KSZuZXRfaW50ZjNfYmxhY2tsaXN0IH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lO Rk8oWlRFX1ZFTkRPUl9JRCwgMHgwMDIwLCAweGZmLCAweGZmLCAweGZmKSB9LA0KIAl7IFVTQl9E RVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MDAyMSwgMHhmZiwgMHhm ZiwgMHhmZiksDQogCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmNF9i bGFja2xpc3QgfSwNCkBAIC0xMjc4LDggKzEyNzYsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVz Yl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0gew0KIA0KIAl7IFVTQl9ERVZJQ0UoT0xJVkVUVElf VkVORE9SX0lELCBPTElWRVRUSV9QUk9EVUNUX09MSUNBUkQxMDApIH0sDQogCXsgVVNCX0RFVklD RShPTElWRVRUSV9WRU5ET1JfSUQsIE9MSVZFVFRJX1BST0RVQ1RfT0xJQ0FSRDE0NSkgfSwNCisJ eyBVU0JfREVWSUNFKE9MSVZFVFRJX1ZFTkRPUl9JRCwgT0xJVkVUVElfUFJPRFVDVF9PTElDQVJE MjAwKSB9LA0KIAl7IFVTQl9ERVZJQ0UoQ0VMT1RfVkVORE9SX0lELCBDRUxPVF9QUk9EVUNUX0NU NjgwTSkgfSwgLyogQ1QtNjUwIENETUEgNDUwIDF4RVZETyBtb2RlbSAqLw0KLQl7IFVTQl9ERVZJ Q0UoT05EQV9WRU5ET1JfSUQsIE9OREFfTVQ4MjVVUCkgfSwgLyogT05EQSBNVDgyNVVQIG1vZGVt ICovDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oU0FNU1VOR19WRU5ET1JfSUQs IFNBTVNVTkdfUFJPRFVDVF9HVF9CMzczMCwgVVNCX0NMQVNTX0NEQ19EQVRBLCAweDAwLCAweDAw KSB9LCAvKiBTYW1zdW5nIEdULUIzNzMwIExURSBVU0IgbW9kZW0uKi8NCiAJeyBVU0JfREVWSUNF KFlVR0FfVkVORE9SX0lELCBZVUdBX1BST0RVQ1RfQ0VNNjAwKSB9LA0KIAl7IFVTQl9ERVZJQ0Uo WVVHQV9WRU5ET1JfSUQsIFlVR0FfUFJPRFVDVF9DRU02MTApIH0sDQpAQCAtMTM1MSw5ICsxMzQ5 LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7 DQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oTUVESUFURUtfVkVORE9SX0lELCBN RURJQVRFS19QUk9EVUNUX0RDXzRDT00yLCAweGZmLCAweDAyLCAweDAxKSB9LA0KIAl7IFVTQl9E RVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKE1FRElBVEVLX1ZFTkRPUl9JRCwgTUVESUFURUtfUFJP RFVDVF9EQ180Q09NMiwgMHhmZiwgMHgwMCwgMHgwMCkgfSwNCiAJeyBVU0JfREVWSUNFKENFTExJ RU5UX1ZFTkRPUl9JRCwgQ0VMTElFTlRfUFJPRFVDVF9NRU4yMDApIH0sDQotCXsgVVNCX0RFVklD RShQRVRBVEVMX1ZFTkRPUl9JRCwgUEVUQVRFTF9QUk9EVUNUX05QMTBUKSB9LA0KKwl7IFVTQl9E RVZJQ0UoUEVUQVRFTF9WRU5ET1JfSUQsIFBFVEFURUxfUFJPRFVDVF9OUDEwVF82MDBBKSB9LA0K Kwl7IFVTQl9ERVZJQ0UoUEVUQVRFTF9WRU5ET1JfSUQsIFBFVEFURUxfUFJPRFVDVF9OUDEwVF82 MDBFKSB9LA0KIAl7IFVTQl9ERVZJQ0UoVFBMSU5LX1ZFTkRPUl9JRCwgVFBMSU5LX1BST0RVQ1Rf TUExODApLA0KIAkgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmbmV0X2ludGY0X2Js YWNrbGlzdCB9LA0KKwl7IFVTQl9ERVZJQ0UoVFBMSU5LX1ZFTkRPUl9JRCwgMHg5MDAwKSwJCQkJ CS8qIFRQLUxpbmsgTUEyNjAgKi8NCisJICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3Qp Jm5ldF9pbnRmNF9ibGFja2xpc3QgfSwNCiAJeyBVU0JfREVWSUNFKENIQU5HSE9OR19WRU5ET1Jf SUQsIENIQU5HSE9OR19QUk9EVUNUX0NINjkwKSB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVS RkFDRV9JTkZPKDB4MjAwMSwgMHg3ZDAxLCAweGZmLCAweDAyLCAweDAxKSB9LAkvKiBELUxpbmsg RFdNLTE1NiAodmFyaWFudCkgKi8NCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygw eDIwMDEsIDB4N2QwMSwgMHhmZiwgMHgwMCwgMHgwMCkgfSwJLyogRC1MaW5rIERXTS0xNTYgKHZh cmlhbnQpICovDQpAQCAtMTM2MSw2ICsxMzYyLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2Jf ZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0Vf SU5GTygweDIwMDEsIDB4N2QwMiwgMHhmZiwgMHgwMCwgMHgwMCkgfSwNCiAJeyBVU0JfREVWSUNF X0FORF9JTlRFUkZBQ0VfSU5GTygweDIwMDEsIDB4N2QwMywgMHhmZiwgMHgwMiwgMHgwMSkgfSwN CiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDIwMDEsIDB4N2QwMywgMHhmZiwg MHgwMCwgMHgwMCkgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA3ZDEs IDB4M2UwMSwgMHhmZiwgMHhmZiwgMHhmZikgfSwgLyogRC1MaW5rIERXTS0xNTIvQzEgKi8NCisJ eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA3ZDEsIDB4M2UwMiwgMHhmZiwgMHhm ZiwgMHhmZikgfSwgLyogRC1MaW5rIERXTS0xNTYvQzEgKi8NCiAJeyB9IC8qIFRlcm1pbmF0aW5n IGVudHJ5ICovDQogfTsNCiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgb3B0aW9uX2lkcyk7DQpk aWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3RpX3VzYl8zNDEwXzUwNTIuYyBiL2RyaXZl cnMvdXNiL3NlcmlhbC90aV91c2JfMzQxMF81MDUyLmMNCmluZGV4IDlkM2IzOWUuLjQyMDM4YmEg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfdXNiXzM0MTBfNTA1Mi5jDQorKysg Yi9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfdXNiXzM0MTBfNTA1Mi5jDQpAQCAtNDA4LDcgKzQwOCw3 IEBAIHN0YXRpYyBpbnQgdGlfc3RhcnR1cChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQ0KIAl1 c2Jfc2V0X3NlcmlhbF9kYXRhKHNlcmlhbCwgdGRldik7DQogDQogCS8qIGRldGVybWluZSBkZXZp Y2UgdHlwZSAqLw0KLQlpZiAodXNiX21hdGNoX2lkKHNlcmlhbC0+aW50ZXJmYWNlLCB0aV9pZF90 YWJsZV8zNDEwKSkNCisJaWYgKHNlcmlhbC0+dHlwZSA9PSAmdGlfMXBvcnRfZGV2aWNlKQ0KIAkJ dGRldi0+dGRfaXNfMzQxMCA9IDE7DQogCWRiZygiJXMgLSBkZXZpY2UgdHlwZSBpcyAlcyIsIF9f ZnVuY19fLA0KIAkJCQl0ZGV2LT50ZF9pc18zNDEwID8gIjM0MTAiIDogIjUwNTIiKTsNCmRpZmYg LS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1YWxfZGV2cy5oIGIvZHJpdmVycy91c2Iv c3RvcmFnZS91bnVzdWFsX2RldnMuaA0KaW5kZXggN2I4ZDU2NC4uOGEzYjUzMSAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9kZXZzLmgNCisrKyBiL2RyaXZlcnMvdXNi L3N0b3JhZ2UvdW51c3VhbF9kZXZzLmgNCkBAIC02NTcsNiArNjU3LDEzIEBAIFVOVVNVQUxfREVW KCAgMHgwNTRjLCAweDAxNmEsIDB4MDAwMCwgMHg5OTk5LA0KIAkJVVNCX1NDX0RFVklDRSwgVVNC X1BSX0RFVklDRSwgTlVMTCwNCiAJCVVTX0ZMX0ZJWF9JTlFVSVJZICksDQogDQorLyogU3VibWl0 dGVkIGJ5IFJlbiBCaWdjcmVuIDxiaWdjcmVuLnJlbkBzb255bW9iaWxlLmNvbT4gKi8NCitVTlVT VUFMX0RFViggIDB4MDU0YywgMHgwMmE1LCAweDAxMDAsIDB4MDEwMCwNCisJCSJTb255IENvcnAu IiwNCisJCSJNaWNyb1ZhdWx0IEZsYXNoIERyaXZlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9Q Ul9ERVZJQ0UsIE5VTEwsDQorCQlVU19GTF9OT19SRUFEX0NBUEFDSVRZXzE2ICksDQorDQogLyog ZmxvcHB5IHJlcG9ydHMgbXVsdGlwbGUgbHVucyAqLw0KIFVOVVNVQUxfREVWKCAgMHgwNTVkLCAw eDIwMjAsIDB4MDAwMCwgMHgwMjEwLA0KIAkJIlNBTVNVTkciLA0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvdmlydGlvL3ZpcnRpb19yaW5nLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jDQpp bmRleCBkYzJlZWQxLi40YTg4YWMzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy92aXJ0aW8vdmlydGlv X3JpbmcuYw0KKysrIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYw0KQEAgLTM2MCw5ICsz NjAsMjIgQEAgdm9pZCB2aXJ0cXVldWVfZGlzYWJsZV9jYihzdHJ1Y3QgdmlydHF1ZXVlICpfdnEp DQogfQ0KIEVYUE9SVF9TWU1CT0xfR1BMKHZpcnRxdWV1ZV9kaXNhYmxlX2NiKTsNCiANCi1ib29s IHZpcnRxdWV1ZV9lbmFibGVfY2Ioc3RydWN0IHZpcnRxdWV1ZSAqX3ZxKQ0KKy8qKg0KKyAqIHZp cnRxdWV1ZV9lbmFibGVfY2JfcHJlcGFyZSAtIHJlc3RhcnQgY2FsbGJhY2tzIGFmdGVyIGRpc2Fi bGVfY2INCisgKiBAdnE6IHRoZSBzdHJ1Y3QgdmlydHF1ZXVlIHdlJ3JlIHRhbGtpbmcgYWJvdXQu DQorICoNCisgKiBUaGlzIHJlLWVuYWJsZXMgY2FsbGJhY2tzOyBpdCByZXR1cm5zIGN1cnJlbnQg cXVldWUgc3RhdGUNCisgKiBpbiBhbiBvcGFxdWUgdW5zaWduZWQgdmFsdWUuIFRoaXMgdmFsdWUg c2hvdWxkIGJlIGxhdGVyIHRlc3RlZCBieQ0KKyAqIHZpcnRxdWV1ZV9wb2xsLCB0byBkZXRlY3Qg YSBwb3NzaWJsZSByYWNlIGJldHdlZW4gdGhlIGRyaXZlciBjaGVja2luZyBmb3INCisgKiBtb3Jl IHdvcmssIGFuZCBlbmFibGluZyBjYWxsYmFja3MuDQorICoNCisgKiBDYWxsZXIgbXVzdCBlbnN1 cmUgd2UgZG9uJ3QgY2FsbCB0aGlzIHdpdGggb3RoZXIgdmlydHF1ZXVlDQorICogb3BlcmF0aW9u cyBhdCB0aGUgc2FtZSB0aW1lIChleGNlcHQgd2hlcmUgbm90ZWQpLg0KKyAqLw0KK3Vuc2lnbmVk IHZpcnRxdWV1ZV9lbmFibGVfY2JfcHJlcGFyZShzdHJ1Y3QgdmlydHF1ZXVlICpfdnEpDQogew0K IAlzdHJ1Y3QgdnJpbmdfdmlydHF1ZXVlICp2cSA9IHRvX3Z2cShfdnEpOw0KKwl1MTYgbGFzdF91 c2VkX2lkeDsNCiANCiAJU1RBUlRfVVNFKHZxKTsNCiANCkBAIC0zNzIsMTUgKzM4NSw0NSBAQCBi b29sIHZpcnRxdWV1ZV9lbmFibGVfY2Ioc3RydWN0IHZpcnRxdWV1ZSAqX3ZxKQ0KIAkgKiBlaXRo ZXIgY2xlYXIgdGhlIGZsYWdzIGJpdCBvciBwb2ludCB0aGUgZXZlbnQgaW5kZXggYXQgdGhlIG5l eHQNCiAJICogZW50cnkuIEFsd2F5cyBkbyBib3RoIHRvIGtlZXAgY29kZSBzaW1wbGUuICovDQog CXZxLT52cmluZy5hdmFpbC0+ZmxhZ3MgJj0gflZSSU5HX0FWQUlMX0ZfTk9fSU5URVJSVVBUOw0K LQl2cmluZ191c2VkX2V2ZW50KCZ2cS0+dnJpbmcpID0gdnEtPmxhc3RfdXNlZF9pZHg7DQorCXZy aW5nX3VzZWRfZXZlbnQoJnZxLT52cmluZykgPSBsYXN0X3VzZWRfaWR4ID0gdnEtPmxhc3RfdXNl ZF9pZHg7DQorCUVORF9VU0UodnEpOw0KKwlyZXR1cm4gbGFzdF91c2VkX2lkeDsNCit9DQorRVhQ T1JUX1NZTUJPTF9HUEwodmlydHF1ZXVlX2VuYWJsZV9jYl9wcmVwYXJlKTsNCisNCisvKioNCisg KiB2aXJ0cXVldWVfcG9sbCAtIHF1ZXJ5IHBlbmRpbmcgdXNlZCBidWZmZXJzDQorICogQHZxOiB0 aGUgc3RydWN0IHZpcnRxdWV1ZSB3ZSdyZSB0YWxraW5nIGFib3V0Lg0KKyAqIEBsYXN0X3VzZWRf aWR4OiB2aXJ0cXVldWUgc3RhdGUgKGZyb20gY2FsbCB0byB2aXJ0cXVldWVfZW5hYmxlX2NiX3By ZXBhcmUpLg0KKyAqDQorICogUmV0dXJucyAidHJ1ZSIgaWYgdGhlcmUgYXJlIHBlbmRpbmcgdXNl ZCBidWZmZXJzIGluIHRoZSBxdWV1ZS4NCisgKg0KKyAqIFRoaXMgZG9lcyBub3QgbmVlZCB0byBi ZSBzZXJpYWxpemVkLg0KKyAqLw0KK2Jvb2wgdmlydHF1ZXVlX3BvbGwoc3RydWN0IHZpcnRxdWV1 ZSAqX3ZxLCB1bnNpZ25lZCBsYXN0X3VzZWRfaWR4KQ0KK3sNCisJc3RydWN0IHZyaW5nX3ZpcnRx dWV1ZSAqdnEgPSB0b192dnEoX3ZxKTsNCisNCiAJdmlydGlvX21iKCk7DQotCWlmICh1bmxpa2Vs eShtb3JlX3VzZWQodnEpKSkgew0KLQkJRU5EX1VTRSh2cSk7DQotCQlyZXR1cm4gZmFsc2U7DQot CX0NCisJcmV0dXJuICh1MTYpbGFzdF91c2VkX2lkeCAhPSB2cS0+dnJpbmcudXNlZC0+aWR4Ow0K K30NCitFWFBPUlRfU1lNQk9MX0dQTCh2aXJ0cXVldWVfcG9sbCk7DQogDQotCUVORF9VU0UodnEp Ow0KLQlyZXR1cm4gdHJ1ZTsNCisvKioNCisgKiB2aXJ0cXVldWVfZW5hYmxlX2NiIC0gcmVzdGFy dCBjYWxsYmFja3MgYWZ0ZXIgZGlzYWJsZV9jYi4NCisgKiBAdnE6IHRoZSBzdHJ1Y3QgdmlydHF1 ZXVlIHdlJ3JlIHRhbGtpbmcgYWJvdXQuDQorICoNCisgKiBUaGlzIHJlLWVuYWJsZXMgY2FsbGJh Y2tzOyBpdCByZXR1cm5zICJmYWxzZSIgaWYgdGhlcmUgYXJlIHBlbmRpbmcNCisgKiBidWZmZXJz IGluIHRoZSBxdWV1ZSwgdG8gZGV0ZWN0IGEgcG9zc2libGUgcmFjZSBiZXR3ZWVuIHRoZSBkcml2 ZXINCisgKiBjaGVja2luZyBmb3IgbW9yZSB3b3JrLCBhbmQgZW5hYmxpbmcgY2FsbGJhY2tzLg0K KyAqDQorICogQ2FsbGVyIG11c3QgZW5zdXJlIHdlIGRvbid0IGNhbGwgdGhpcyB3aXRoIG90aGVy IHZpcnRxdWV1ZQ0KKyAqIG9wZXJhdGlvbnMgYXQgdGhlIHNhbWUgdGltZSAoZXhjZXB0IHdoZXJl IG5vdGVkKS4NCisgKi8NCitib29sIHZpcnRxdWV1ZV9lbmFibGVfY2Ioc3RydWN0IHZpcnRxdWV1 ZSAqX3ZxKQ0KK3sNCisJdW5zaWduZWQgbGFzdF91c2VkX2lkeCA9IHZpcnRxdWV1ZV9lbmFibGVf Y2JfcHJlcGFyZShfdnEpOw0KKwlyZXR1cm4gIXZpcnRxdWV1ZV9wb2xsKF92cSwgbGFzdF91c2Vk X2lkeCk7DQogfQ0KIEVYUE9SVF9TWU1CT0xfR1BMKHZpcnRxdWV1ZV9lbmFibGVfY2IpOw0KIA0K ZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2V4dGVudC10cmVlLmMgYi9mcy9idHJmcy9leHRlbnQtdHJl ZS5jDQppbmRleCA4ZDRkNTNkLi40OWVlZmRiIDEwMDY0NA0KLS0tIGEvZnMvYnRyZnMvZXh0ZW50 LXRyZWUuYw0KKysrIGIvZnMvYnRyZnMvZXh0ZW50LXRyZWUuYw0KQEAgLTY1NjAsNiArNjU2MCw3 IEBAIHZvaWQgYnRyZnNfZHJvcF9zbmFwc2hvdChzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwNCiAJ aW50IGVyciA9IDA7DQogCWludCByZXQ7DQogCWludCBsZXZlbDsNCisJYm9vbCByb290X2Ryb3Bw ZWQgPSBmYWxzZTsNCiANCiAJcGF0aCA9IGJ0cmZzX2FsbG9jX3BhdGgoKTsNCiAJaWYgKCFwYXRo KSB7DQpAQCAtNjYxNCw2ICs2NjE1LDcgQEAgdm9pZCBidHJmc19kcm9wX3NuYXBzaG90KHN0cnVj dCBidHJmc19yb290ICpyb290LA0KIAkJd2hpbGUgKDEpIHsNCiAJCQlidHJmc190cmVlX2xvY2so cGF0aC0+bm9kZXNbbGV2ZWxdKTsNCiAJCQlidHJmc19zZXRfbG9ja19ibG9ja2luZyhwYXRoLT5u b2Rlc1tsZXZlbF0pOw0KKwkJCXBhdGgtPmxvY2tzW2xldmVsXSA9IEJUUkZTX1dSSVRFX0xPQ0tf QkxPQ0tJTkc7DQogDQogCQkJcmV0ID0gYnRyZnNfbG9va3VwX2V4dGVudF9pbmZvKHRyYW5zLCBy b290LA0KIAkJCQkJCXBhdGgtPm5vZGVzW2xldmVsXS0+c3RhcnQsDQpAQCAtNjYyNyw2ICs2NjI5 LDcgQEAgdm9pZCBidHJmc19kcm9wX3NuYXBzaG90KHN0cnVjdCBidHJmc19yb290ICpyb290LA0K IAkJCQlicmVhazsNCiANCiAJCQlidHJmc190cmVlX3VubG9jayhwYXRoLT5ub2Rlc1tsZXZlbF0p Ow0KKwkJCXBhdGgtPmxvY2tzW2xldmVsXSA9IDA7DQogCQkJV0FSTl9PTih3Yy0+cmVmc1tsZXZl bF0gIT0gMSk7DQogCQkJbGV2ZWwtLTsNCiAJCX0NCkBAIC02NzA3LDExICs2NzEwLDIxIEBAIHZv aWQgYnRyZnNfZHJvcF9zbmFwc2hvdChzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwNCiAJCWZyZWVf ZXh0ZW50X2J1ZmZlcihyb290LT5jb21taXRfcm9vdCk7DQogCQlrZnJlZShyb290KTsNCiAJfQ0K Kwlyb290X2Ryb3BwZWQgPSB0cnVlOw0KIG91dF9mcmVlOg0KIAlidHJmc19lbmRfdHJhbnNhY3Rp b25fdGhyb3R0bGUodHJhbnMsIHRyZWVfcm9vdCk7DQogCWtmcmVlKHdjKTsNCiAJYnRyZnNfZnJl ZV9wYXRoKHBhdGgpOw0KIG91dDoNCisJLyoNCisJICogU28gaWYgd2UgbmVlZCB0byBzdG9wIGRy b3BwaW5nIHRoZSBzbmFwc2hvdCBmb3Igd2hhdGV2ZXIgcmVhc29uIHdlDQorCSAqIG5lZWQgdG8g bWFrZSBzdXJlIHRvIGFkZCBpdCBiYWNrIHRvIHRoZSBkZWFkIHJvb3QgbGlzdCBzbyB0aGF0IHdl DQorCSAqIGtlZXAgdHJ5aW5nIHRvIGRvIHRoZSB3b3JrIGxhdGVyLiAgVGhpcyBhbHNvIGNsZWFu cyB1cCByb290cyBpZiB3ZQ0KKwkgKiBkb24ndCBoYXZlIGl0IGluIHRoZSByYWRpeCAobGlrZSB3 aGVuIHdlIHJlY292ZXIgYWZ0ZXIgYSBwb3dlciBmYWlsDQorCSAqIG9yIHVubW91bnQpIHNvIHdl IGRvbid0IGxlYWsgbWVtb3J5Lg0KKwkgKi8NCisJaWYgKHJvb3RfZHJvcHBlZCA9PSBmYWxzZSkN CisJCWJ0cmZzX2FkZF9kZWFkX3Jvb3Qocm9vdCk7DQogCWlmIChlcnIpDQogCQlidHJmc19zdGRf ZXJyb3Iocm9vdC0+ZnNfaW5mbywgZXJyKTsNCiAJcmV0dXJuOw0KZGlmZiAtLWdpdCBhL2ZzL2V4 dDQvbWJhbGxvYy5jIGIvZnMvZXh0NC9tYmFsbG9jLmMNCmluZGV4IDkyNDMxMDMuLjliOGMxMzEg MTAwNjQ0DQotLS0gYS9mcy9leHQ0L21iYWxsb2MuYw0KKysrIGIvZnMvZXh0NC9tYmFsbG9jLmMN CkBAIC00Njk2LDExICs0Njk2LDE2IEBAIGRvX21vcmU6DQogCQkgKiBibG9ja3MgYmVpbmcgZnJl ZWQgYXJlIG1ldGFkYXRhLiB0aGVzZSBibG9ja3Mgc2hvdWxkbid0DQogCQkgKiBiZSB1c2VkIHVu dGlsIHRoaXMgdHJhbnNhY3Rpb24gaXMgY29tbWl0dGVkDQogCQkgKi8NCisJcmV0cnk6DQogCQlu ZXdfZW50cnkgPSBrbWVtX2NhY2hlX2FsbG9jKGV4dDRfZnJlZV9leHRfY2FjaGVwLCBHRlBfTk9G Uyk7DQogCQlpZiAoIW5ld19lbnRyeSkgew0KLQkJCWV4dDRfbWJfdW5sb2FkX2J1ZGR5KCZlNGIp Ow0KLQkJCWVyciA9IC1FTk9NRU07DQotCQkJZ290byBlcnJvcl9yZXR1cm47DQorCQkJLyoNCisJ CQkgKiBXZSB1c2UgYSByZXRyeSBsb29wIGJlY2F1c2UNCisJCQkgKiBleHQ0X2ZyZWVfYmxvY2tz KCkgaXMgbm90IGFsbG93ZWQgdG8gZmFpbC4NCisJCQkgKi8NCisJCQljb25kX3Jlc2NoZWQoKTsN CisJCQljb25nZXN0aW9uX3dhaXQoQkxLX1JXX0FTWU5DLCBIWi81MCk7DQorCQkJZ290byByZXRy eTsNCiAJCX0NCiAJCW5ld19lbnRyeS0+c3RhcnRfY2x1c3RlciA9IGJpdDsNCiAJCW5ld19lbnRy eS0+Z3JvdXAgID0gYmxvY2tfZ3JvdXA7DQpkaWZmIC0tZ2l0IGEvZnMvbG9ja2Qvc3ZjbG9jay5j IGIvZnMvbG9ja2Qvc3ZjbG9jay5jDQppbmRleCBmMDE3OWMzLi5jZDg3MDNkIDEwMDY0NA0KLS0t IGEvZnMvbG9ja2Qvc3ZjbG9jay5jDQorKysgYi9mcy9sb2NrZC9zdmNsb2NrLmMNCkBAIC05MTMs NiArOTEzLDcgQEAgbmxtc3ZjX3JldHJ5X2Jsb2NrZWQodm9pZCkNCiAJdW5zaWduZWQgbG9uZwl0 aW1lb3V0ID0gTUFYX1NDSEVEVUxFX1RJTUVPVVQ7DQogCXN0cnVjdCBubG1fYmxvY2sgKmJsb2Nr Ow0KIA0KKwlzcGluX2xvY2soJm5sbV9ibG9ja2VkX2xvY2spOw0KIAl3aGlsZSAoIWxpc3RfZW1w dHkoJm5sbV9ibG9ja2VkKSAmJiAha3RocmVhZF9zaG91bGRfc3RvcCgpKSB7DQogCQlibG9jayA9 IGxpc3RfZW50cnkobmxtX2Jsb2NrZWQubmV4dCwgc3RydWN0IG5sbV9ibG9jaywgYl9saXN0KTsN CiANCkBAIC05MjIsNiArOTIzLDcgQEAgbmxtc3ZjX3JldHJ5X2Jsb2NrZWQodm9pZCkNCiAJCQl0 aW1lb3V0ID0gYmxvY2stPmJfd2hlbiAtIGppZmZpZXM7DQogCQkJYnJlYWs7DQogCQl9DQorCQlz cGluX3VubG9jaygmbmxtX2Jsb2NrZWRfbG9jayk7DQogDQogCQlkcHJpbnRrKCJubG1zdmNfcmV0 cnlfYmxvY2tlZCglcCwgd2hlbj0lbGQpXG4iLA0KIAkJCWJsb2NrLCBibG9jay0+Yl93aGVuKTsN CkBAIC05MzEsNyArOTMzLDkgQEAgbmxtc3ZjX3JldHJ5X2Jsb2NrZWQodm9pZCkNCiAJCQlyZXRy eV9kZWZlcnJlZF9ibG9jayhibG9jayk7DQogCQl9IGVsc2UNCiAJCQlubG1zdmNfZ3JhbnRfYmxv Y2tlZChibG9jayk7DQorCQlzcGluX2xvY2soJm5sbV9ibG9ja2VkX2xvY2spOw0KIAl9DQorCXNw aW5fdW5sb2NrKCZubG1fYmxvY2tlZF9sb2NrKTsNCiANCiAJcmV0dXJuIHRpbWVvdXQ7DQogfQ0K ZGlmZiAtLWdpdCBhL2ZzL25mc2QvdmZzLmMgYi9mcy9uZnNkL3Zmcy5jDQppbmRleCAxZWMxZmRl Li41NjFhM2RjIDEwMDY0NA0KLS0tIGEvZnMvbmZzZC92ZnMuYw0KKysrIGIvZnMvbmZzZC92ZnMu Yw0KQEAgLTc4Miw5ICs3ODIsMTAgQEAgbmZzZF9vcGVuKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAs IHN0cnVjdCBzdmNfZmggKmZocCwgaW50IHR5cGUsDQogCX0NCiAJKmZpbHAgPSBkZW50cnlfb3Bl bihkZ2V0KGRlbnRyeSksIG1udGdldChmaHAtPmZoX2V4cG9ydC0+ZXhfcGF0aC5tbnQpLA0KIAkJ CSAgICBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KLQlpZiAoSVNfRVJSKCpmaWxwKSkNCisJaWYg KElTX0VSUigqZmlscCkpIHsNCiAJCWhvc3RfZXJyID0gUFRSX0VSUigqZmlscCk7DQotCWVsc2UN CisJCSpmaWxwID0gTlVMTDsNCisJfSBlbHNlDQogCQlob3N0X2VyciA9IGltYV9maWxlX2NoZWNr KCpmaWxwLCBhY2Nlc3MpOw0KIG91dF9uZnNlcnI6DQogCWVyciA9IG5mc2Vycm5vKGhvc3RfZXJy KTsNCmRpZmYgLS1naXQgYS9mcy9ub3RpZnkvZmFub3RpZnkvZmFub3RpZnlfdXNlci5jIGIvZnMv bm90aWZ5L2Zhbm90aWZ5L2Zhbm90aWZ5X3VzZXIuYw0KaW5kZXggOWZkZTFjMC4uOTg2MGY2YiAx MDA2NDQNCi0tLSBhL2ZzL25vdGlmeS9mYW5vdGlmeS9mYW5vdGlmeV91c2VyLmMNCisrKyBiL2Zz L25vdGlmeS9mYW5vdGlmeS9mYW5vdGlmeV91c2VyLmMNCkBAIC0xMTgsNiArMTE4LDcgQEAgc3Rh dGljIGludCBmaWxsX2V2ZW50X21ldGFkYXRhKHN0cnVjdCBmc25vdGlmeV9ncm91cCAqZ3JvdXAs DQogCW1ldGFkYXRhLT5ldmVudF9sZW4gPSBGQU5fRVZFTlRfTUVUQURBVEFfTEVOOw0KIAltZXRh ZGF0YS0+bWV0YWRhdGFfbGVuID0gRkFOX0VWRU5UX01FVEFEQVRBX0xFTjsNCiAJbWV0YWRhdGEt PnZlcnMgPSBGQU5PVElGWV9NRVRBREFUQV9WRVJTSU9OOw0KKwltZXRhZGF0YS0+cmVzZXJ2ZWQg PSAwOw0KIAltZXRhZGF0YS0+bWFzayA9IGV2ZW50LT5tYXNrICYgRkFOX0FMTF9PVVRHT0lOR19F VkVOVFM7DQogCW1ldGFkYXRhLT5waWQgPSBwaWRfdm5yKGV2ZW50LT50Z2lkKTsNCiAJaWYgKHVu bGlrZWx5KGV2ZW50LT5tYXNrICYgRkFOX1FfT1ZFUkZMT1cpKQ0KZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvaWZfcHBwb3guaCBiL2luY2x1ZGUvbGludXgvaWZfcHBwb3guaA0KaW5kZXggYjVm OTI3Zi4uNzMyYzk2MiAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvaWZfcHBwb3guaA0KKysr IGIvaW5jbHVkZS9saW51eC9pZl9wcHBveC5oDQpAQCAtMTI4LDExICsxMjgsMTEgQEAgc3RydWN0 IHBwcG9lX3RhZyB7DQogDQogc3RydWN0IHBwcG9lX2hkciB7DQogI2lmIGRlZmluZWQoX19MSVRU TEVfRU5ESUFOX0JJVEZJRUxEKQ0KLQlfX3U4IHZlciA6IDQ7DQogCV9fdTggdHlwZSA6IDQ7DQor CV9fdTggdmVyIDogNDsNCiAjZWxpZiBkZWZpbmVkKF9fQklHX0VORElBTl9CSVRGSUVMRCkNCi0J X191OCB0eXBlIDogNDsNCiAJX191OCB2ZXIgOiA0Ow0KKwlfX3U4IHR5cGUgOiA0Ow0KICNlbHNl DQogI2Vycm9yCSJQbGVhc2UgZml4IDxhc20vYnl0ZW9yZGVyLmg+Ig0KICNlbmRpZg0KZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvdmlydGlvLmggYi9pbmNsdWRlL2xpbnV4L3ZpcnRpby5oDQpp bmRleCA0YzA2OWQ4Yi4uOTZjNzg0MyAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvdmlydGlv LmgNCisrKyBiL2luY2x1ZGUvbGludXgvdmlydGlvLmgNCkBAIC05Niw2ICs5NiwxMCBAQCB2b2lk IHZpcnRxdWV1ZV9kaXNhYmxlX2NiKHN0cnVjdCB2aXJ0cXVldWUgKnZxKTsNCiANCiBib29sIHZp cnRxdWV1ZV9lbmFibGVfY2Ioc3RydWN0IHZpcnRxdWV1ZSAqdnEpOw0KIA0KK3Vuc2lnbmVkIHZp cnRxdWV1ZV9lbmFibGVfY2JfcHJlcGFyZShzdHJ1Y3QgdmlydHF1ZXVlICp2cSk7DQorDQorYm9v bCB2aXJ0cXVldWVfcG9sbChzdHJ1Y3QgdmlydHF1ZXVlICp2cSwgdW5zaWduZWQpOw0KKw0KIGJv b2wgdmlydHF1ZXVlX2VuYWJsZV9jYl9kZWxheWVkKHN0cnVjdCB2aXJ0cXVldWUgKnZxKTsNCiAN CiB2b2lkICp2aXJ0cXVldWVfZGV0YWNoX3VudXNlZF9idWYoc3RydWN0IHZpcnRxdWV1ZSAqdnEp Ow0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2FkZHJjb25mLmggYi9pbmNsdWRlL25ldC9hZGRy Y29uZi5oDQppbmRleCBjYmM2YmIwLi40NGIxMTEwIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9uZXQv YWRkcmNvbmYuaA0KKysrIGIvaW5jbHVkZS9uZXQvYWRkcmNvbmYuaA0KQEAgLTgxLDYgKzgxLDkg QEAgZXh0ZXJuIGludAkJCWlwdjZfZGV2X2dldF9zYWRkcihzdHJ1Y3QgbmV0ICpuZXQsDQogCQkJ CQkgICAgICAgY29uc3Qgc3RydWN0IGluNl9hZGRyICpkYWRkciwNCiAJCQkJCSAgICAgICB1bnNp Z25lZCBpbnQgc3JjcHJlZnMsDQogCQkJCQkgICAgICAgc3RydWN0IGluNl9hZGRyICpzYWRkcik7 DQorZXh0ZXJuIGludAkJCV9faXB2Nl9nZXRfbGxhZGRyKHN0cnVjdCBpbmV0Nl9kZXYgKmlkZXYs DQorCQkJCQkJICBzdHJ1Y3QgaW42X2FkZHIgKmFkZHIsDQorCQkJCQkJICB1bnNpZ25lZCBjaGFy IGJhbm5lZF9mbGFncyk7DQogZXh0ZXJuIGludAkJCWlwdjZfZ2V0X2xsYWRkcihzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LA0KIAkJCQkJCXN0cnVjdCBpbjZfYWRkciAqYWRkciwNCiAJCQkJCQl1bnNp Z25lZCBjaGFyIGJhbm5lZF9mbGFncyk7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdWRwLmgg Yi9pbmNsdWRlL25ldC91ZHAuaA0KaW5kZXggM2IyODVmNC4uZTE1ODMzMCAxMDA2NDQNCi0tLSBh L2luY2x1ZGUvbmV0L3VkcC5oDQorKysgYi9pbmNsdWRlL25ldC91ZHAuaA0KQEAgLTE4MCw2ICsx ODAsNyBAQCBleHRlcm4gaW50IHVkcF9nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVk IHNob3J0IHNudW0sDQogZXh0ZXJuIHZvaWQgdWRwX2VycihzdHJ1Y3Qgc2tfYnVmZiAqLCB1MzIp Ow0KIGV4dGVybiBpbnQgdWRwX3NlbmRtc2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29j ayAqc2ssDQogCQkJICAgIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbik7DQorZXh0ZXJu IGludCB1ZHBfcHVzaF9wZW5kaW5nX2ZyYW1lcyhzdHJ1Y3Qgc29jayAqc2spOw0KIGV4dGVybiB2 b2lkIHVkcF9mbHVzaF9wZW5kaW5nX2ZyYW1lcyhzdHJ1Y3Qgc29jayAqc2spOw0KIGV4dGVybiBp bnQgdWRwX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsNCiBleHRlcm4gaW50IHVkcF9pb2N0bChz dHJ1Y3Qgc29jayAqc2ssIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsNCmRpZmYgLS1naXQg YS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vcmluZy5oIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNl L2lvL3JpbmcuaA0KaW5kZXggNzUyNzFiOS4uN2QyOGFmZiAxMDA2NDQNCi0tLSBhL2luY2x1ZGUv eGVuL2ludGVyZmFjZS9pby9yaW5nLmgNCisrKyBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9y aW5nLmgNCkBAIC0xODgsNiArMTg4LDExIEBAIHN0cnVjdCBfX25hbWUjI19iYWNrX3JpbmcgewkJ CQkJCVwNCiAjZGVmaW5lIFJJTkdfUkVRVUVTVF9DT05TX09WRVJGTE9XKF9yLCBfY29ucykJCQkJ XA0KICAgICAoKChfY29ucykgLSAoX3IpLT5yc3BfcHJvZF9wdnQpID49IFJJTkdfU0laRShfcikp DQogDQorLyogSWxsLWJlaGF2ZWQgZnJvbnRlbmQgZGV0ZXJtaW5hdGlvbjogQ2FuIHRoZXJlIGJl IHRoaXMgbWFueSByZXF1ZXN0cz8gKi8NCisjZGVmaW5lIFJJTkdfUkVRVUVTVF9QUk9EX09WRVJG TE9XKF9yLCBfcHJvZCkgICAgICAgICAgICAgICBcDQorICAgICgoKF9wcm9kKSAtIChfciktPnJz cF9wcm9kX3B2dCkgPiBSSU5HX1NJWkUoX3IpKQ0KKw0KKw0KICNkZWZpbmUgUklOR19QVVNIX1JF UVVFU1RTKF9yKSBkbyB7CQkJCQlcDQogICAgIHdtYigpOyAvKiBiYWNrIHNlZXMgcmVxdWVzdHMg L2JlZm9yZS8gdXBkYXRlZCBwcm9kdWNlciBpbmRleCAqLwlcDQogICAgIChfciktPnNyaW5nLT5y ZXFfcHJvZCA9IChfciktPnJlcV9wcm9kX3B2dDsJCQkJXA0KZGlmZiAtLWdpdCBhL2tlcm5lbC90 cmFjZS90cmFjZS5jIGIva2VybmVsL3RyYWNlL3RyYWNlLmMNCmluZGV4IDBlYzZjMzQuLmE1ODRh ZDkgMTAwNjQ0DQotLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2UuYw0KKysrIGIva2VybmVsL3RyYWNl L3RyYWNlLmMNCkBAIC02MzEsNyArNjMxLDE1IEBAIF9fdXBkYXRlX21heF90cihzdHJ1Y3QgdHJh Y2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IGNwdSkNCiANCiAJbWVt Y3B5KG1heF9kYXRhLT5jb21tLCB0c2stPmNvbW0sIFRBU0tfQ09NTV9MRU4pOw0KIAltYXhfZGF0 YS0+cGlkID0gdHNrLT5waWQ7DQotCW1heF9kYXRhLT51aWQgPSB0YXNrX3VpZCh0c2spOw0KKwkv Kg0KKwkgKiBJZiB0c2sgPT0gY3VycmVudCwgdGhlbiB1c2UgY3VycmVudF91aWQoKSwgYXMgdGhh dCBkb2VzIG5vdCB1c2UNCisJICogUkNVLiBUaGUgaXJxIHRyYWNlciBjYW4gYmUgY2FsbGVkIG91 dCBvZiBSQ1Ugc2NvcGUuDQorCSAqLw0KKwlpZiAodHNrID09IGN1cnJlbnQpDQorCQltYXhfZGF0 YS0+dWlkID0gY3VycmVudF91aWQoKTsNCisJZWxzZQ0KKwkJbWF4X2RhdGEtPnVpZCA9IHRhc2tf dWlkKHRzayk7DQorDQogCW1heF9kYXRhLT5uaWNlID0gdHNrLT5zdGF0aWNfcHJpbyAtIDIwIC0g TUFYX1JUX1BSSU87DQogCW1heF9kYXRhLT5wb2xpY3kgPSB0c2stPnBvbGljeTsNCiAJbWF4X2Rh dGEtPnJ0X3ByaW9yaXR5ID0gdHNrLT5ydF9wcmlvcml0eTsNCmRpZmYgLS1naXQgYS9uZXQvODAy MXEvdmxhbl9kZXYuYyBiL25ldC84MDIxcS92bGFuX2Rldi5jDQppbmRleCAwY2NjY2E4Li5iNDBk M2RhIDEwMDY0NA0KLS0tIGEvbmV0LzgwMjFxL3ZsYW5fZGV2LmMNCisrKyBiL25ldC84MDIxcS92 bGFuX2Rldi5jDQpAQCAtNzIsNiArNzIsOCBAQCB2bGFuX2Rldl9nZXRfZWdyZXNzX3Fvc19tYXNr KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpDQogew0KIAlzdHJ1 Y3Qgdmxhbl9wcmlvcml0eV90Y2lfbWFwcGluZyAqbXA7DQogDQorCXNtcF9ybWIoKTsgLyogY291 cGxlZCB3aXRoIHNtcF93bWIoKSBpbiB2bGFuX2Rldl9zZXRfZWdyZXNzX3ByaW9yaXR5KCkgKi8N CisNCiAJbXAgPSB2bGFuX2Rldl9pbmZvKGRldiktPmVncmVzc19wcmlvcml0eV9tYXBbKHNrYi0+ cHJpb3JpdHkgJiAweEYpXTsNCiAJd2hpbGUgKG1wKSB7DQogCQlpZiAobXAtPnByaW9yaXR5ID09 IHNrYi0+cHJpb3JpdHkpIHsNCkBAIC0yMzIsNiArMjM0LDExIEBAIGludCB2bGFuX2Rldl9zZXRf ZWdyZXNzX3ByaW9yaXR5KGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsDQogCW5wLT5uZXh0 ID0gbXA7DQogCW5wLT5wcmlvcml0eSA9IHNrYl9wcmlvOw0KIAlucC0+dmxhbl9xb3MgPSB2bGFu X3FvczsNCisJLyogQmVmb3JlIGluc2VydGluZyB0aGlzIGVsZW1lbnQgaW4gaGFzaCB0YWJsZSwg bWFrZSBzdXJlIGFsbCBpdHMgZmllbGRzDQorCSAqIGFyZSBjb21taXR0ZWQgdG8gbWVtb3J5Lg0K KwkgKiBjb3VwbGVkIHdpdGggc21wX3JtYigpIGluIHZsYW5fZGV2X2dldF9lZ3Jlc3NfcW9zX21h c2soKQ0KKwkgKi8NCisJc21wX3dtYigpOw0KIAl2bGFuLT5lZ3Jlc3NfcHJpb3JpdHlfbWFwW3Nr Yl9wcmlvICYgMHhGXSA9IG5wOw0KIAlpZiAodmxhbl9xb3MpDQogCQl2bGFuLT5ucl9lZ3Jlc3Nf bWFwcGluZ3MrKzsNCmRpZmYgLS1naXQgYS9uZXQvOXAvdHJhbnNfY29tbW9uLmMgYi9uZXQvOXAv dHJhbnNfY29tbW9uLmMNCmluZGV4IGRlOGRmOTUuLjJlZTM4NzkgMTAwNjQ0DQotLS0gYS9uZXQv OXAvdHJhbnNfY29tbW9uLmMNCisrKyBiL25ldC85cC90cmFuc19jb21tb24uYw0KQEAgLTI0LDEx ICsyNCwxMSBAQA0KICAqLw0KIHZvaWQgcDlfcmVsZWFzZV9wYWdlcyhzdHJ1Y3QgcGFnZSAqKnBh Z2VzLCBpbnQgbnJfcGFnZXMpDQogew0KLQlpbnQgaSA9IDA7DQotCXdoaWxlIChwYWdlc1tpXSAm JiBucl9wYWdlcy0tKSB7DQotCQlwdXRfcGFnZShwYWdlc1tpXSk7DQotCQlpKys7DQotCX0NCisJ aW50IGk7DQorDQorCWZvciAoaSA9IDA7IGkgPCBucl9wYWdlczsgaSsrKQ0KKwkJaWYgKHBhZ2Vz W2ldKQ0KKwkJCXB1dF9wYWdlKHBhZ2VzW2ldKTsNCiB9DQogRVhQT1JUX1NZTUJPTChwOV9yZWxl YXNlX3BhZ2VzKTsNCiANCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jIGIv bmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYw0KaW5kZXggNWFjMTgxMS4uYjgxNTAwYyAxMDA2NDQN Ci0tLSBhL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMNCisrKyBiL25ldC9icmlkZ2UvYnJfbXVs dGljYXN0LmMNCkBAIC00NjcsOCArNDY3LDkgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpicl9p cDZfbXVsdGljYXN0X2FsbG9jX3F1ZXJ5KHN0cnVjdCBuZXRfYnJpZGdlICpiciwNCiAJc2tiX3Nl dF90cmFuc3BvcnRfaGVhZGVyKHNrYiwgc2tiLT5sZW4pOw0KIAltbGRxID0gKHN0cnVjdCBtbGRf bXNnICopIGljbXA2X2hkcihza2IpOw0KIA0KLQlpbnRlcnZhbCA9IGlwdjZfYWRkcl9hbnkoZ3Jv dXApID8gYnItPm11bHRpY2FzdF9sYXN0X21lbWJlcl9pbnRlcnZhbCA6DQotCQkJCQkgIGJyLT5t dWx0aWNhc3RfcXVlcnlfcmVzcG9uc2VfaW50ZXJ2YWw7DQorCWludGVydmFsID0gaXB2Nl9hZGRy X2FueShncm91cCkgPw0KKwkJCWJyLT5tdWx0aWNhc3RfcXVlcnlfcmVzcG9uc2VfaW50ZXJ2YWwg Og0KKwkJCWJyLT5tdWx0aWNhc3RfbGFzdF9tZW1iZXJfaW50ZXJ2YWw7DQogDQogCW1sZHEtPm1s ZF90eXBlID0gSUNNUFY2X01HTV9RVUVSWTsNCiAJbWxkcS0+bWxkX2NvZGUgPSAwOw0KZGlmZiAt LWdpdCBhL25ldC9jb3JlL25laWdoYm91ci5jIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMNCmluZGV4 IDViOTcwOWYuLjBlYTNmZDMgMTAwNjQ0DQotLS0gYS9uZXQvY29yZS9uZWlnaGJvdXIuYw0KKysr IGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMNCkBAIC0yMzcsNyArMjM3LDcgQEAgc3RhdGljIHZvaWQg bmVpZ2hfZmx1c2hfZGV2KHN0cnVjdCBuZWlnaF90YWJsZSAqdGJsLCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2KQ0KIAkJCQkgICB3ZSBtdXN0IGtpbGwgdGltZXJzIGV0Yy4gYW5kIG1vdmUNCiAJCQkJ ICAgaXQgdG8gc2FmZSBzdGF0ZS4NCiAJCQkJICovDQotCQkJCXNrYl9xdWV1ZV9wdXJnZSgmbi0+ YXJwX3F1ZXVlKTsNCisJCQkJX19za2JfcXVldWVfcHVyZ2UoJm4tPmFycF9xdWV1ZSk7DQogCQkJ CW4tPm91dHB1dCA9IG5laWdoX2JsYWNraG9sZTsNCiAJCQkJaWYgKG4tPm51ZF9zdGF0ZSAmIE5V RF9WQUxJRCkNCiAJCQkJCW4tPm51ZF9zdGF0ZSA9IE5VRF9OT0FSUDsNCkBAIC0yOTEsNyArMjkx LDcgQEAgc3RhdGljIHN0cnVjdCBuZWlnaGJvdXIgKm5laWdoX2FsbG9jKHN0cnVjdCBuZWlnaF90 YWJsZSAqdGJsKQ0KIAlpZiAoIW4pDQogCQlnb3RvIG91dF9lbnRyaWVzOw0KIA0KLQlza2JfcXVl dWVfaGVhZF9pbml0KCZuLT5hcnBfcXVldWUpOw0KKwlfX3NrYl9xdWV1ZV9oZWFkX2luaXQoJm4t PmFycF9xdWV1ZSk7DQogCXJ3bG9ja19pbml0KCZuLT5sb2NrKTsNCiAJc2VxbG9ja19pbml0KCZu LT5oYV9sb2NrKTsNCiAJbi0+dXBkYXRlZAkgID0gbi0+dXNlZCA9IG5vdzsNCkBAIC03MDEsNyAr NzAxLDkgQEAgdm9pZCBuZWlnaF9kZXN0cm95KHN0cnVjdCBuZWlnaGJvdXIgKm5laWdoKQ0KIAlp ZiAobmVpZ2hfZGVsX3RpbWVyKG5laWdoKSkNCiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIkltcG9z c2libGUgZXZlbnQuXG4iKTsNCiANCi0Jc2tiX3F1ZXVlX3B1cmdlKCZuZWlnaC0+YXJwX3F1ZXVl KTsNCisJd3JpdGVfbG9ja19iaCgmbmVpZ2gtPmxvY2spOw0KKwlfX3NrYl9xdWV1ZV9wdXJnZSgm bmVpZ2gtPmFycF9xdWV1ZSk7DQorCXdyaXRlX3VubG9ja19iaCgmbmVpZ2gtPmxvY2spOw0KIA0K IAlkZXZfcHV0KG5laWdoLT5kZXYpOw0KIAluZWlnaF9wYXJtc19wdXQobmVpZ2gtPnBhcm1zKTsN CkBAIC04NDMsNyArODQ1LDcgQEAgc3RhdGljIHZvaWQgbmVpZ2hfaW52YWxpZGF0ZShzdHJ1Y3Qg bmVpZ2hib3VyICpuZWlnaCkNCiAJCW5laWdoLT5vcHMtPmVycm9yX3JlcG9ydChuZWlnaCwgc2ti KTsNCiAJCXdyaXRlX2xvY2soJm5laWdoLT5sb2NrKTsNCiAJfQ0KLQlza2JfcXVldWVfcHVyZ2Uo Jm5laWdoLT5hcnBfcXVldWUpOw0KKwlfX3NrYl9xdWV1ZV9wdXJnZSgmbmVpZ2gtPmFycF9xdWV1 ZSk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIG5laWdoX3Byb2JlKHN0cnVjdCBuZWlnaGJvdXIgKm5l aWdoKQ0KQEAgLTExNzYsNyArMTE3OCw3IEBAIGludCBuZWlnaF91cGRhdGUoc3RydWN0IG5laWdo Ym91ciAqbmVpZ2gsIGNvbnN0IHU4ICpsbGFkZHIsIHU4IG5ldywNCiANCiAJCQl3cml0ZV9sb2Nr X2JoKCZuZWlnaC0+bG9jayk7DQogCQl9DQotCQlza2JfcXVldWVfcHVyZ2UoJm5laWdoLT5hcnBf cXVldWUpOw0KKwkJX19za2JfcXVldWVfcHVyZ2UoJm5laWdoLT5hcnBfcXVldWUpOw0KIAl9DQog b3V0Og0KIAlpZiAodXBkYXRlX2lzcm91dGVyKSB7DQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRw LmMgYi9uZXQvaXB2NC91ZHAuYw0KaW5kZXggNWE2NWVlYS4uNWRlY2M5MyAxMDA2NDQNCi0tLSBh L25ldC9pcHY0L3VkcC5jDQorKysgYi9uZXQvaXB2NC91ZHAuYw0KQEAgLTc2Niw3ICs3NjYsNyBA QCBzZW5kOg0KIC8qDQogICogUHVzaCBvdXQgYWxsIHBlbmRpbmcgZGF0YSBhcyBvbmUgVURQIGRh dGFncmFtLiBTb2NrZXQgaXMgbG9ja2VkLg0KICAqLw0KLXN0YXRpYyBpbnQgdWRwX3B1c2hfcGVu ZGluZ19mcmFtZXMoc3RydWN0IHNvY2sgKnNrKQ0KK2ludCB1ZHBfcHVzaF9wZW5kaW5nX2ZyYW1l cyhzdHJ1Y3Qgc29jayAqc2spDQogew0KIAlzdHJ1Y3QgdWRwX3NvY2sgICp1cCA9IHVkcF9zayhz ayk7DQogCXN0cnVjdCBpbmV0X3NvY2sgKmluZXQgPSBpbmV0X3NrKHNrKTsNCkBAIC03ODUsNiAr Nzg1LDcgQEAgb3V0Og0KIAl1cC0+cGVuZGluZyA9IDA7DQogCXJldHVybiBlcnI7DQogfQ0KK0VY UE9SVF9TWU1CT0wodWRwX3B1c2hfcGVuZGluZ19mcmFtZXMpOw0KIA0KIGludCB1ZHBfc2VuZG1z ZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNn LA0KIAkJc2l6ZV90IGxlbikNCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9hZGRyY29uZi5jIGIvbmV0 L2lwdjYvYWRkcmNvbmYuYw0KaW5kZXggZDYwM2NhYS4uMzE0YmRhMiAxMDA2NDQNCi0tLSBhL25l dC9pcHY2L2FkZHJjb25mLmMNCisrKyBiL25ldC9pcHY2L2FkZHJjb25mLmMNCkBAIC0xMjM2LDYg KzEyMzYsMjMgQEAgdHJ5X25leHRkZXY6DQogfQ0KIEVYUE9SVF9TWU1CT0woaXB2Nl9kZXZfZ2V0 X3NhZGRyKTsNCiANCitpbnQgX19pcHY2X2dldF9sbGFkZHIoc3RydWN0IGluZXQ2X2RldiAqaWRl diwgc3RydWN0IGluNl9hZGRyICphZGRyLA0KKwkJICAgICAgdW5zaWduZWQgY2hhciBiYW5uZWRf ZmxhZ3MpDQorew0KKwlzdHJ1Y3QgaW5ldDZfaWZhZGRyICppZnA7DQorCWludCBlcnIgPSAtRUFE RFJOT1RBVkFJTDsNCisNCisJbGlzdF9mb3JfZWFjaF9lbnRyeShpZnAsICZpZGV2LT5hZGRyX2xp c3QsIGlmX2xpc3QpIHsNCisJCWlmIChpZnAtPnNjb3BlID09IElGQV9MSU5LICYmDQorCQkgICAg IShpZnAtPmZsYWdzICYgYmFubmVkX2ZsYWdzKSkgew0KKwkJCWlwdjZfYWRkcl9jb3B5KGFkZHIs ICZpZnAtPmFkZHIpOw0KKwkJCWVyciA9IDA7DQorCQkJYnJlYWs7DQorCQl9DQorCX0NCisJcmV0 dXJuIGVycjsNCit9DQorDQogaW50IGlwdjZfZ2V0X2xsYWRkcihzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LCBzdHJ1Y3QgaW42X2FkZHIgKmFkZHIsDQogCQkgICAgdW5zaWduZWQgY2hhciBiYW5uZWRf ZmxhZ3MpDQogew0KQEAgLTEyNDUsMTcgKzEyNjIsOCBAQCBpbnQgaXB2Nl9nZXRfbGxhZGRyKHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpbjZfYWRkciAqYWRkciwNCiAJcmN1X3JlYWRf bG9jaygpOw0KIAlpZGV2ID0gX19pbjZfZGV2X2dldChkZXYpOw0KIAlpZiAoaWRldikgew0KLQkJ c3RydWN0IGluZXQ2X2lmYWRkciAqaWZwOw0KLQ0KIAkJcmVhZF9sb2NrX2JoKCZpZGV2LT5sb2Nr KTsNCi0JCWxpc3RfZm9yX2VhY2hfZW50cnkoaWZwLCAmaWRldi0+YWRkcl9saXN0LCBpZl9saXN0 KSB7DQotCQkJaWYgKGlmcC0+c2NvcGUgPT0gSUZBX0xJTksgJiYNCi0JCQkgICAgIShpZnAtPmZs YWdzICYgYmFubmVkX2ZsYWdzKSkgew0KLQkJCQlpcHY2X2FkZHJfY29weShhZGRyLCAmaWZwLT5h ZGRyKTsNCi0JCQkJZXJyID0gMDsNCi0JCQkJYnJlYWs7DQotCQkJfQ0KLQkJfQ0KKwkJZXJyID0g X19pcHY2X2dldF9sbGFkZHIoaWRldiwgYWRkciwgYmFubmVkX2ZsYWdzKTsNCiAJCXJlYWRfdW5s b2NrX2JoKCZpZGV2LT5sb2NrKTsNCiAJfQ0KIAlyY3VfcmVhZF91bmxvY2soKTsNCkBAIC0yNDM0 LDYgKzI0NDIsOSBAQCBzdGF0aWMgdm9pZCBpbml0X2xvb3BiYWNrKHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpDQogCQkJaWYgKHNwX2lmYS0+ZmxhZ3MgJiAoSUZBX0ZfREFERkFJTEVEIHwgSUZBX0Zf VEVOVEFUSVZFKSkNCiAJCQkJY29udGludWU7DQogDQorCQkJaWYgKHNwX2lmYS0+cnQpDQorCQkJ CWNvbnRpbnVlOw0KKw0KIAkJCXNwX3J0ID0gYWRkcmNvbmZfZHN0X2FsbG9jKGlkZXYsICZzcF9p ZmEtPmFkZHIsIDApOw0KIA0KIAkJCS8qIEZhaWx1cmUgY2FzZXMgYXJlIGlnbm9yZWQgKi8NCmRp ZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMN CmluZGV4IDZhYWRhYTguLmRiNjAwNDMgMTAwNjQ0DQotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0 LmMNCisrKyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYw0KQEAgLTkwOSwxMSArOTA5LDE3IEBAIHN0 YXRpYyBzdHJ1Y3QgZHN0X2VudHJ5ICppcDZfc2tfZHN0X2NoZWNrKHN0cnVjdCBzb2NrICpzaywN CiAJCQkJCSAgY29uc3Qgc3RydWN0IGZsb3dpNiAqZmw2KQ0KIHsNCiAJc3RydWN0IGlwdjZfcGlu Zm8gKm5wID0gaW5ldDZfc2soc2spOw0KLQlzdHJ1Y3QgcnQ2X2luZm8gKnJ0ID0gKHN0cnVjdCBy dDZfaW5mbyAqKWRzdDsNCisJc3RydWN0IHJ0Nl9pbmZvICpydDsNCiANCiAJaWYgKCFkc3QpDQog CQlnb3RvIG91dDsNCiANCisJaWYgKGRzdC0+b3BzLT5mYW1pbHkgIT0gQUZfSU5FVDYpIHsNCisJ CWRzdF9yZWxlYXNlKGRzdCk7DQorCQlyZXR1cm4gTlVMTDsNCisJfQ0KKw0KKwlydCA9IChzdHJ1 Y3QgcnQ2X2luZm8gKilkc3Q7DQogCS8qIFllcywgY2hlY2tpbmcgcm91dGUgdmFsaWRpdHkgaW4g bm90IGNvbm5lY3RlZA0KIAkgKiBjYXNlIGlzIG5vdCB2ZXJ5IHNpbXBsZS4gVGFrZSBpbnRvIGFj Y291bnQsDQogCSAqIHRoYXQgd2UgZG8gbm90IHN1cHBvcnQgcm91dGluZyBieSBzb3VyY2UsIFRP UywNCkBAIC0xMTc4LDExICsxMTg0LDEyIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGlwdjZfcnRf aGRyICppcDZfcnRoZHJfZHVwKHN0cnVjdCBpcHY2X3J0X2hkciAqc3JjLA0KIAlyZXR1cm4gc3Jj ID8ga21lbWR1cChzcmMsIChzcmMtPmhkcmxlbiArIDEpICogOCwgZ2ZwKSA6IE5VTEw7DQogfQ0K IA0KLXN0YXRpYyB2b2lkIGlwNl9hcHBlbmRfZGF0YV9tdHUoaW50ICptdHUsDQorc3RhdGljIHZv aWQgaXA2X2FwcGVuZF9kYXRhX210dSh1bnNpZ25lZCBpbnQgKm10dSwNCiAJCQkJaW50ICptYXhm cmFnbGVuLA0KIAkJCQl1bnNpZ25lZCBpbnQgZnJhZ2hlYWRlcmxlbiwNCiAJCQkJc3RydWN0IHNr X2J1ZmYgKnNrYiwNCi0JCQkJc3RydWN0IHJ0Nl9pbmZvICpydCkNCisJCQkJc3RydWN0IHJ0Nl9p bmZvICpydCwNCisJCQkJYm9vbCBwbXR1cHJvYmUpDQogew0KIAlpZiAoIShydC0+ZHN0LmZsYWdz ICYgRFNUX1hGUk1fVFVOTkVMKSkgew0KIAkJaWYgKHNrYiA9PSBOVUxMKSB7DQpAQCAtMTE5NCw3 ICsxMjAxLDkgQEAgc3RhdGljIHZvaWQgaXA2X2FwcGVuZF9kYXRhX210dShpbnQgKm10dSwNCiAJ CQkgKiB0aGlzIGZyYWdtZW50IGlzIG5vdCBmaXJzdCwgdGhlIGhlYWRlcnMNCiAJCQkgKiBzcGFj ZSBpcyByZWdhcmRlZCBhcyBkYXRhIHNwYWNlLg0KIAkJCSAqLw0KLQkJCSptdHUgPSBkc3RfbXR1 KHJ0LT5kc3QucGF0aCk7DQorCQkJKm10dSA9IG1pbigqbXR1LCBwbXR1cHJvYmUgPw0KKwkJCQkg ICBydC0+ZHN0LmRldi0+bXR1IDoNCisJCQkJICAgZHN0X210dShydC0+ZHN0LnBhdGgpKTsNCiAJ CX0NCiAJCSptYXhmcmFnbGVuID0gKCgqbXR1IC0gZnJhZ2hlYWRlcmxlbikgJiB+NykNCiAJCQkg ICAgICArIGZyYWdoZWFkZXJsZW4gLSBzaXplb2Yoc3RydWN0IGZyYWdfaGRyKTsNCkBAIC0xMjEx LDExICsxMjIwLDEwIEBAIGludCBpcDZfYXBwZW5kX2RhdGEoc3RydWN0IHNvY2sgKnNrLCBpbnQg Z2V0ZnJhZyh2b2lkICpmcm9tLCBjaGFyICp0bywNCiAJc3RydWN0IGlwdjZfcGluZm8gKm5wID0g aW5ldDZfc2soc2spOw0KIAlzdHJ1Y3QgaW5ldF9jb3JrICpjb3JrOw0KIAlzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCAqc2tiX3ByZXYgPSBOVUxMOw0KLQl1bnNpZ25lZCBpbnQgbWF4ZnJhZ2xlbiwgZnJh Z2hlYWRlcmxlbjsNCisJdW5zaWduZWQgaW50IG1heGZyYWdsZW4sIGZyYWdoZWFkZXJsZW4sIG10 dTsNCiAJaW50IGV4dGhkcmxlbjsNCiAJaW50IGRzdF9leHRoZHJsZW47DQogCWludCBoaF9sZW47 DQotCWludCBtdHU7DQogCWludCBjb3B5Ow0KIAlpbnQgZXJyOw0KIAlpbnQgb2Zmc2V0ID0gMDsN CkBAIC0xMzc4LDcgKzEzODYsOSBAQCBhbGxvY19uZXdfc2tiOg0KIAkJCS8qIHVwZGF0ZSBtdHUg YW5kIG1heGZyYWdsZW4gaWYgbmVjZXNzYXJ5ICovDQogCQkJaWYgKHNrYiA9PSBOVUxMIHx8IHNr Yl9wcmV2ID09IE5VTEwpDQogCQkJCWlwNl9hcHBlbmRfZGF0YV9tdHUoJm10dSwgJm1heGZyYWds ZW4sDQotCQkJCQkJICAgIGZyYWdoZWFkZXJsZW4sIHNrYiwgcnQpOw0KKwkJCQkJCSAgICBmcmFn aGVhZGVybGVuLCBza2IsIHJ0LA0KKwkJCQkJCSAgICBucC0+cG10dWRpc2MgPT0NCisJCQkJCQkg ICAgSVBWNl9QTVRVRElTQ19QUk9CRSk7DQogDQogCQkJc2tiX3ByZXYgPSBza2I7DQogDQpkaWZm IC0tZ2l0IGEvbmV0L2lwdjYvbWNhc3QuYyBiL25ldC9pcHY2L21jYXN0LmMNCmluZGV4IGYyZDc0 ZWEuLmM3ZWM0YmIgMTAwNjQ0DQotLS0gYS9uZXQvaXB2Ni9tY2FzdC5jDQorKysgYi9uZXQvaXB2 Ni9tY2FzdC5jDQpAQCAtMTMzNCw4ICsxMzM0LDkgQEAgbWxkX3Njb3VudChzdHJ1Y3QgaWZtY2Fk ZHI2ICpwbWMsIGludCB0eXBlLCBpbnQgZ2RlbGV0ZWQsIGludCBzZGVsZXRlZCkNCiAJcmV0dXJu IHNjb3VudDsNCiB9DQogDQotc3RhdGljIHN0cnVjdCBza19idWZmICptbGRfbmV3cGFjayhzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgc2l6ZSkNCitzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm1s ZF9uZXdwYWNrKHN0cnVjdCBpbmV0Nl9kZXYgKmlkZXYsIGludCBzaXplKQ0KIHsNCisJc3RydWN0 IG5ldF9kZXZpY2UgKmRldiA9IGlkZXYtPmRldjsNCiAJc3RydWN0IG5ldCAqbmV0ID0gZGV2X25l dChkZXYpOw0KIAlzdHJ1Y3Qgc29jayAqc2sgPSBuZXQtPmlwdjYuaWdtcF9zazsNCiAJc3RydWN0 IHNrX2J1ZmYgKnNrYjsNCkBAIC0xMzU4LDcgKzEzNTksNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1 ZmYgKm1sZF9uZXdwYWNrKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBzaXplKQ0KIA0KIAlz a2JfcmVzZXJ2ZShza2IsIExMX1JFU0VSVkVEX1NQQUNFKGRldikpOw0KIA0KLQlpZiAoaXB2Nl9n ZXRfbGxhZGRyKGRldiwgJmFkZHJfYnVmLCBJRkFfRl9URU5UQVRJVkUpKSB7DQorCWlmIChfX2lw djZfZ2V0X2xsYWRkcihpZGV2LCAmYWRkcl9idWYsIElGQV9GX1RFTlRBVElWRSkpIHsNCiAJCS8q IDxkcmFmdC1pZXRmLW1hZ21hLW1sZC1zb3VyY2UtMDUudHh0PjoNCiAJCSAqIHVzZSB1bnNwZWNp ZmllZCBhZGRyZXNzIGFzIHRoZSBzb3VyY2UgYWRkcmVzcw0KIAkJICogd2hlbiBhIHZhbGlkIGxp bmstbG9jYWwgYWRkcmVzcyBpcyBub3QgYXZhaWxhYmxlLg0KQEAgLTE0NjEsNyArMTQ2Miw3IEBA IHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYWRkX2dyaGVhZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgaWZtY2FkZHI2ICpwbWMsDQogCXN0cnVjdCBtbGQyX2dyZWMgKnBncjsNCiANCiAJaWYg KCFza2IpDQotCQlza2IgPSBtbGRfbmV3cGFjayhkZXYsIGRldi0+bXR1KTsNCisJCXNrYiA9IG1s ZF9uZXdwYWNrKHBtYy0+aWRldiwgZGV2LT5tdHUpOw0KIAlpZiAoIXNrYikNCiAJCXJldHVybiBO VUxMOw0KIAlwZ3IgPSAoc3RydWN0IG1sZDJfZ3JlYyAqKXNrYl9wdXQoc2tiLCBzaXplb2Yoc3Ry dWN0IG1sZDJfZ3JlYykpOw0KQEAgLTE0ODEsNyArMTQ4Miw4IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tf YnVmZiAqYWRkX2dyaGVhZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaWZtY2FkZHI2ICpw bWMsDQogc3RhdGljIHN0cnVjdCBza19idWZmICphZGRfZ3JlYyhzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgaWZtY2FkZHI2ICpwbWMsDQogCWludCB0eXBlLCBpbnQgZ2RlbGV0ZWQsIGludCBz ZGVsZXRlZCkNCiB7DQotCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBwbWMtPmlkZXYtPmRldjsN CisJc3RydWN0IGluZXQ2X2RldiAqaWRldiA9IHBtYy0+aWRldjsNCisJc3RydWN0IG5ldF9kZXZp Y2UgKmRldiA9IGlkZXYtPmRldjsNCiAJc3RydWN0IG1sZDJfcmVwb3J0ICpwbXI7DQogCXN0cnVj dCBtbGQyX2dyZWMgKnBnciA9IE5VTEw7DQogCXN0cnVjdCBpcDZfc2ZfbGlzdCAqcHNmLCAqcHNm X25leHQsICpwc2ZfcHJldiwgKipwc2ZfbGlzdDsNCkBAIC0xNTEwLDcgKzE1MTIsNyBAQCBzdGF0 aWMgc3RydWN0IHNrX2J1ZmYgKmFkZF9ncmVjKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBp Zm1jYWRkcjYgKnBtYywNCiAJCSAgICBBVkFJTEFCTEUoc2tiKSA8IGdyZWNfc2l6ZShwbWMsIHR5 cGUsIGdkZWxldGVkLCBzZGVsZXRlZCkpIHsNCiAJCQlpZiAoc2tiKQ0KIAkJCQltbGRfc2VuZHBh Y2soc2tiKTsNCi0JCQlza2IgPSBtbGRfbmV3cGFjayhkZXYsIGRldi0+bXR1KTsNCisJCQlza2Ig PSBtbGRfbmV3cGFjayhpZGV2LCBkZXYtPm10dSk7DQogCQl9DQogCX0NCiAJZmlyc3QgPSAxOw0K QEAgLTE1MzcsNyArMTUzOSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYWRkX2dyZWMoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGlmbWNhZGRyNiAqcG1jLA0KIAkJCQlwZ3ItPmdyZWNf bnNyY3MgPSBodG9ucyhzY291bnQpOw0KIAkJCWlmIChza2IpDQogCQkJCW1sZF9zZW5kcGFjayhz a2IpOw0KLQkJCXNrYiA9IG1sZF9uZXdwYWNrKGRldiwgZGV2LT5tdHUpOw0KKwkJCXNrYiA9IG1s ZF9uZXdwYWNrKGlkZXYsIGRldi0+bXR1KTsNCiAJCQlmaXJzdCA9IDE7DQogCQkJc2NvdW50ID0g MDsNCiAJCX0NCkBAIC0xNTkyLDggKzE1OTQsOCBAQCBzdGF0aWMgdm9pZCBtbGRfc2VuZF9yZXBv cnQoc3RydWN0IGluZXQ2X2RldiAqaWRldiwgc3RydWN0IGlmbWNhZGRyNiAqcG1jKQ0KIAlzdHJ1 Y3Qgc2tfYnVmZiAqc2tiID0gTlVMTDsNCiAJaW50IHR5cGU7DQogDQorCXJlYWRfbG9ja19iaCgm aWRldi0+bG9jayk7DQogCWlmICghcG1jKSB7DQotCQlyZWFkX2xvY2tfYmgoJmlkZXYtPmxvY2sp Ow0KIAkJZm9yIChwbWM9aWRldi0+bWNfbGlzdDsgcG1jOyBwbWM9cG1jLT5uZXh0KSB7DQogCQkJ aWYgKHBtYy0+bWNhX2ZsYWdzICYgTUFGX05PUkVQT1JUKQ0KIAkJCQljb250aW51ZTsNCkBAIC0x NjA1LDcgKzE2MDcsNiBAQCBzdGF0aWMgdm9pZCBtbGRfc2VuZF9yZXBvcnQoc3RydWN0IGluZXQ2 X2RldiAqaWRldiwgc3RydWN0IGlmbWNhZGRyNiAqcG1jKQ0KIAkJCXNrYiA9IGFkZF9ncmVjKHNr YiwgcG1jLCB0eXBlLCAwLCAwKTsNCiAJCQlzcGluX3VubG9ja19iaCgmcG1jLT5tY2FfbG9jayk7 DQogCQl9DQotCQlyZWFkX3VubG9ja19iaCgmaWRldi0+bG9jayk7DQogCX0gZWxzZSB7DQogCQlz cGluX2xvY2tfYmgoJnBtYy0+bWNhX2xvY2spOw0KIAkJaWYgKHBtYy0+bWNhX3NmY291bnRbTUNB U1RfRVhDTFVERV0pDQpAQCAtMTYxNSw2ICsxNjE2LDcgQEAgc3RhdGljIHZvaWQgbWxkX3NlbmRf cmVwb3J0KHN0cnVjdCBpbmV0Nl9kZXYgKmlkZXYsIHN0cnVjdCBpZm1jYWRkcjYgKnBtYykNCiAJ CXNrYiA9IGFkZF9ncmVjKHNrYiwgcG1jLCB0eXBlLCAwLCAwKTsNCiAJCXNwaW5fdW5sb2NrX2Jo KCZwbWMtPm1jYV9sb2NrKTsNCiAJfQ0KKwlyZWFkX3VubG9ja19iaCgmaWRldi0+bG9jayk7DQog CWlmIChza2IpDQogCQltbGRfc2VuZHBhY2soc2tiKTsNCiB9DQpkaWZmIC0tZ2l0IGEvbmV0L2lw djYvdWRwLmMgYi9uZXQvaXB2Ni91ZHAuYw0KaW5kZXggMjBmMDgxMi4uZjllNDk2YiAxMDA2NDQN Ci0tLSBhL25ldC9pcHY2L3VkcC5jDQorKysgYi9uZXQvaXB2Ni91ZHAuYw0KQEAgLTg5MywxMSAr ODkzLDE2IEBAIHN0YXRpYyBpbnQgdWRwX3Y2X3B1c2hfcGVuZGluZ19mcmFtZXMoc3RydWN0IHNv Y2sgKnNrKQ0KIAlzdHJ1Y3QgdWRwaGRyICp1aDsNCiAJc3RydWN0IHVkcF9zb2NrICAqdXAgPSB1 ZHBfc2soc2spOw0KIAlzdHJ1Y3QgaW5ldF9zb2NrICppbmV0ID0gaW5ldF9zayhzayk7DQotCXN0 cnVjdCBmbG93aTYgKmZsNiA9ICZpbmV0LT5jb3JrLmZsLnUuaXA2Ow0KKwlzdHJ1Y3QgZmxvd2k2 ICpmbDY7DQogCWludCBlcnIgPSAwOw0KIAlpbnQgaXNfdWRwbGl0ZSA9IElTX1VEUExJVEUoc2sp Ow0KIAlfX3dzdW0gY3N1bSA9IDA7DQogDQorCWlmICh1cC0+cGVuZGluZyA9PSBBRl9JTkVUKQ0K KwkJcmV0dXJuIHVkcF9wdXNoX3BlbmRpbmdfZnJhbWVzKHNrKTsNCisNCisJZmw2ID0gJmluZXQt PmNvcmsuZmwudS5pcDY7DQorDQogCS8qIEdyYWIgdGhlIHNrYnVmZiB3aGVyZSBVRFAgaGVhZGVy IHNwYWNlIGV4aXN0cy4gKi8NCiAJaWYgKChza2IgPSBza2JfcGVlaygmc2stPnNrX3dyaXRlX3F1 ZXVlKSkgPT0gTlVMTCkNCiAJCWdvdG8gb3V0Ow0KZGlmZiAtLWdpdCBhL25ldC9rZXkvYWZfa2V5 LmMgYi9uZXQva2V5L2FmX2tleS5jDQppbmRleCAxZTczM2U5Li42ZmVmZGZjIDEwMDY0NA0KLS0t IGEvbmV0L2tleS9hZl9rZXkuYw0KKysrIGIvbmV0L2tleS9hZl9rZXkuYw0KQEAgLTE3MDUsNiAr MTcwNSw3IEBAIHN0YXRpYyBpbnQga2V5X25vdGlmeV9zYV9mbHVzaChjb25zdCBzdHJ1Y3Qga21f ZXZlbnQgKmMpDQogCWhkci0+c2FkYl9tc2dfdmVyc2lvbiA9IFBGX0tFWV9WMjsNCiAJaGRyLT5z YWRiX21zZ19lcnJubyA9ICh1aW50OF90KSAwOw0KIAloZHItPnNhZGJfbXNnX2xlbiA9IChzaXpl b2Yoc3RydWN0IHNhZGJfbXNnKSAvIHNpemVvZih1aW50NjRfdCkpOw0KKwloZHItPnNhZGJfbXNn X3Jlc2VydmVkID0gMDsNCiANCiAJcGZrZXlfYnJvYWRjYXN0KHNrYiwgR0ZQX0FUT01JQywgQlJP QURDQVNUX0FMTCwgTlVMTCwgYy0+bmV0KTsNCiANCkBAIC0yNjg2LDYgKzI2ODcsNyBAQCBzdGF0 aWMgaW50IGtleV9ub3RpZnlfcG9saWN5X2ZsdXNoKGNvbnN0IHN0cnVjdCBrbV9ldmVudCAqYykN CiAJaGRyLT5zYWRiX21zZ192ZXJzaW9uID0gUEZfS0VZX1YyOw0KIAloZHItPnNhZGJfbXNnX2Vy cm5vID0gKHVpbnQ4X3QpIDA7DQogCWhkci0+c2FkYl9tc2dfbGVuID0gKHNpemVvZihzdHJ1Y3Qg c2FkYl9tc2cpIC8gc2l6ZW9mKHVpbnQ2NF90KSk7DQorCWhkci0+c2FkYl9tc2dfcmVzZXJ2ZWQg PSAwOw0KIAlwZmtleV9icm9hZGNhc3Qoc2tiX291dCwgR0ZQX0FUT01JQywgQlJPQURDQVNUX0FM TCwgTlVMTCwgYy0+bmV0KTsNCiAJcmV0dXJuIDA7DQogDQpkaWZmIC0tZ2l0IGEvbmV0L2wydHAv bDJ0cF9wcHAuYyBiL25ldC9sMnRwL2wydHBfcHBwLmMNCmluZGV4IDc0NDEwZTYuLmU1NzkwMDYg MTAwNjQ0DQotLS0gYS9uZXQvbDJ0cC9sMnRwX3BwcC5jDQorKysgYi9uZXQvbDJ0cC9sMnRwX3Bw cC5jDQpAQCAtMTc3OCw3ICsxNzc4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwcm90b19vcHMg cHBwb2wydHBfb3BzID0gew0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHBwb3hfcHJvdG8gcHBw b2wydHBfcHJvdG8gPSB7DQogCS5jcmVhdGUJCT0gcHBwb2wydHBfY3JlYXRlLA0KLQkuaW9jdGwJ CT0gcHBwb2wydHBfaW9jdGwNCisJLmlvY3RsCQk9IHBwcG9sMnRwX2lvY3RsLA0KKwkub3duZXIJ CT0gVEhJU19NT0RVTEUsDQogfTsNCiANCiAjaWZkZWYgQ09ORklHX0wyVFBfVjMNCmRpZmYgLS1n aXQgYS9uZXQveDI1L2FmX3gyNS5jIGIvbmV0L3gyNS9hZl94MjUuYw0KaW5kZXggM2UxNmM2YS4u ZGMyNGJhOSAxMDA2NDQNCi0tLSBhL25ldC94MjUvYWZfeDI1LmMNCisrKyBiL25ldC94MjUvYWZf eDI1LmMNCkBAIC0xNTg2LDExICsxNTg2LDExIEBAIG91dF9jdWRfcmVsZWFzZToNCiAJY2FzZSBT SU9DWDI1Q0FMTEFDQ1BUQVBQUlY6IHsNCiAJCXJjID0gLUVJTlZBTDsNCiAJCWxvY2tfc29jayhz ayk7DQotCQlpZiAoc2stPnNrX3N0YXRlICE9IFRDUF9DTE9TRSkNCi0JCQlicmVhazsNCi0JCWNs ZWFyX2JpdChYMjVfQUNDUFRfQVBQUlZfRkxBRywgJngyNS0+ZmxhZ3MpOw0KKwkJaWYgKHNrLT5z a19zdGF0ZSA9PSBUQ1BfQ0xPU0UpIHsNCisJCQljbGVhcl9iaXQoWDI1X0FDQ1BUX0FQUFJWX0ZM QUcsICZ4MjUtPmZsYWdzKTsNCisJCQlyYyA9IDA7DQorCQl9DQogCQlyZWxlYXNlX3NvY2soc2sp Ow0KLQkJcmMgPSAwOw0KIAkJYnJlYWs7DQogCX0NCiANCkBAIC0xNTk4LDE0ICsxNTk4LDE1IEBA IG91dF9jdWRfcmVsZWFzZToNCiAJCXJjID0gLUVJTlZBTDsNCiAJCWxvY2tfc29jayhzayk7DQog CQlpZiAoc2stPnNrX3N0YXRlICE9IFRDUF9FU1RBQkxJU0hFRCkNCi0JCQlicmVhazsNCisJCQln b3RvIG91dF9zZW5kY2FsbGFjY3B0X3JlbGVhc2U7DQogCQkvKiBtdXN0IGNhbGwgYWNjcHRhcHBy diBhYm92ZSAqLw0KIAkJaWYgKHRlc3RfYml0KFgyNV9BQ0NQVF9BUFBSVl9GTEFHLCAmeDI1LT5m bGFncykpDQotCQkJYnJlYWs7DQorCQkJZ290byBvdXRfc2VuZGNhbGxhY2NwdF9yZWxlYXNlOw0K IAkJeDI1X3dyaXRlX2ludGVybmFsKHNrLCBYMjVfQ0FMTF9BQ0NFUFRFRCk7DQogCQl4MjUtPnN0 YXRlID0gWDI1X1NUQVRFXzM7DQotCQlyZWxlYXNlX3NvY2soc2spOw0KIAkJcmMgPSAwOw0KK291 dF9zZW5kY2FsbGFjY3B0X3JlbGVhc2U6DQorCQlyZWxlYXNlX3NvY2soc2spOw0KIAkJYnJlYWs7 DQogCX0NCiANCmRpZmYgLS1naXQgYS9zb3VuZC9hcm0vcHhhMnh4LXBjbS1saWIuYyBiL3NvdW5k L2FybS9weGEyeHgtcGNtLWxpYi5jDQppbmRleCA3NmUwZDU2Li44MjMzNTllIDEwMDY0NA0KLS0t IGEvc291bmQvYXJtL3B4YTJ4eC1wY20tbGliLmMNCisrKyBiL3NvdW5kL2FybS9weGEyeHgtcGNt LWxpYi5jDQpAQCAtMTY2LDcgKzE2Niw5IEBAIHZvaWQgcHhhMnh4X3BjbV9kbWFfaXJxKGludCBk bWFfY2gsIHZvaWQgKmRldl9pZCkNCiAJfSBlbHNlIHsNCiAJCXByaW50ayhLRVJOX0VSUiAiJXM6 IERNQSBlcnJvciBvbiBjaGFubmVsICVkIChEQ1NSPSUjeClcbiIsDQogCQkJcnRkLT5wYXJhbXMt Pm5hbWUsIGRtYV9jaCwgZGNzcik7DQorCQlzbmRfcGNtX3N0cmVhbV9sb2NrKHN1YnN0cmVhbSk7 DQogCQlzbmRfcGNtX3N0b3Aoc3Vic3RyZWFtLCBTTkRSVl9QQ01fU1RBVEVfWFJVTik7DQorCQlz bmRfcGNtX3N0cmVhbV91bmxvY2soc3Vic3RyZWFtKTsNCiAJfQ0KIH0NCiBFWFBPUlRfU1lNQk9M KHB4YTJ4eF9wY21fZG1hX2lycSk7DQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2FzaWhwaS9hc2lo cGkuYyBiL3NvdW5kL3BjaS9hc2locGkvYXNpaHBpLmMNCmluZGV4IGY0YjllMmIuLmZiZjBiY2Qg MTAwNjQ0DQotLS0gYS9zb3VuZC9wY2kvYXNpaHBpL2FzaWhwaS5jDQorKysgYi9zb3VuZC9wY2kv YXNpaHBpL2FzaWhwaS5jDQpAQCAtNzY4LDcgKzc2OCwxMCBAQCBzdGF0aWMgdm9pZCBzbmRfY2Fy ZF9hc2locGlfdGltZXJfZnVuY3Rpb24odW5zaWduZWQgbG9uZyBkYXRhKQ0KIAkJCQkJCXMtPm51 bWJlcik7DQogCQkJCWRzLT5kcmFpbmVkX2NvdW50Kys7DQogCQkJCWlmIChkcy0+ZHJhaW5lZF9j b3VudCA+IDIpIHsNCisJCQkJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQorCQkJCQlzbmRfcGNtX3N0 cmVhbV9sb2NrX2lycXNhdmUocywgZmxhZ3MpOw0KIAkJCQkJc25kX3BjbV9zdG9wKHMsIFNORFJW X1BDTV9TVEFURV9YUlVOKTsNCisJCQkJCXNuZF9wY21fc3RyZWFtX3VubG9ja19pcnFyZXN0b3Jl KHMsIGZsYWdzKTsNCiAJCQkJCWNvbnRpbnVlOw0KIAkJCQl9DQogCQkJfSBlbHNlIHsNCmRpZmYg LS1naXQgYS9zb3VuZC9wY2kvYXRpaXhwLmMgYi9zb3VuZC9wY2kvYXRpaXhwLmMNCmluZGV4IDE1 ZTRlNWUuLjZmYWExNzMgMTAwNjQ0DQotLS0gYS9zb3VuZC9wY2kvYXRpaXhwLmMNCisrKyBiL3Nv dW5kL3BjaS9hdGlpeHAuYw0KQEAgLTY4OCw3ICs2ODgsOSBAQCBzdGF0aWMgdm9pZCBzbmRfYXRp aXhwX3hydW5fZG1hKHN0cnVjdCBhdGlpeHAgKmNoaXAsIHN0cnVjdCBhdGlpeHBfZG1hICpkbWEp DQogCWlmICghIGRtYS0+c3Vic3RyZWFtIHx8ICEgZG1hLT5ydW5uaW5nKQ0KIAkJcmV0dXJuOw0K IAlzbmRfcHJpbnRkZCgiYXRpaXhwOiBYUlVOIGRldGVjdGVkIChETUEgJWQpXG4iLCBkbWEtPm9w cy0+dHlwZSk7DQorCXNuZF9wY21fc3RyZWFtX2xvY2soZG1hLT5zdWJzdHJlYW0pOw0KIAlzbmRf cGNtX3N0b3AoZG1hLT5zdWJzdHJlYW0sIFNORFJWX1BDTV9TVEFURV9YUlVOKTsNCisJc25kX3Bj bV9zdHJlYW1fdW5sb2NrKGRtYS0+c3Vic3RyZWFtKTsNCiB9DQogDQogLyoNCmRpZmYgLS1naXQg YS9zb3VuZC9wY2kvYXRpaXhwX21vZGVtLmMgYi9zb3VuZC9wY2kvYXRpaXhwX21vZGVtLmMNCmlu ZGV4IDU3YmY4ZjQuLmQ3NTIxMjAgMTAwNjQ0DQotLS0gYS9zb3VuZC9wY2kvYXRpaXhwX21vZGVt LmMNCisrKyBiL3NvdW5kL3BjaS9hdGlpeHBfbW9kZW0uYw0KQEAgLTYzOCw3ICs2MzgsOSBAQCBz dGF0aWMgdm9pZCBzbmRfYXRpaXhwX3hydW5fZG1hKHN0cnVjdCBhdGlpeHBfbW9kZW0gKmNoaXAs DQogCWlmICghIGRtYS0+c3Vic3RyZWFtIHx8ICEgZG1hLT5ydW5uaW5nKQ0KIAkJcmV0dXJuOw0K IAlzbmRfcHJpbnRkZCgiYXRpaXhwLW1vZGVtOiBYUlVOIGRldGVjdGVkIChETUEgJWQpXG4iLCBk bWEtPm9wcy0+dHlwZSk7DQorCXNuZF9wY21fc3RyZWFtX2xvY2soZG1hLT5zdWJzdHJlYW0pOw0K IAlzbmRfcGNtX3N0b3AoZG1hLT5zdWJzdHJlYW0sIFNORFJWX1BDTV9TVEFURV9YUlVOKTsNCisJ c25kX3BjbV9zdHJlYW1fdW5sb2NrKGRtYS0+c3Vic3RyZWFtKTsNCiB9DQogDQogLyoNCmRpZmYg LS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hf aGRtaS5jDQppbmRleCBkMTQ4YTJiLi41NWQ5YjMwIDEwMDY0NA0KLS0tIGEvc291bmQvcGNpL2hk YS9wYXRjaF9oZG1pLmMNCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jDQpAQCAtMTg5 Nyw2ICsxODk3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoZGFfY29kZWNfcHJlc2V0IHNuZF9o ZGFfcHJlc2V0X2hkbWlbXSA9IHsNCiB7IC5pZCA9IDB4MTBkZTAwNDIsIC5uYW1lID0gIkdQVSA0 MiBIRE1JL0RQIiwJLnBhdGNoID0gcGF0Y2hfZ2VuZXJpY19oZG1pIH0sDQogeyAuaWQgPSAweDEw ZGUwMDQzLCAubmFtZSA9ICJHUFUgNDMgSERNSS9EUCIsCS5wYXRjaCA9IHBhdGNoX2dlbmVyaWNf aGRtaSB9LA0KIHsgLmlkID0gMHgxMGRlMDA0NCwgLm5hbWUgPSAiR1BVIDQ0IEhETUkvRFAiLAku cGF0Y2ggPSBwYXRjaF9nZW5lcmljX2hkbWkgfSwNCit7IC5pZCA9IDB4MTBkZTAwNTEsIC5uYW1l ID0gIkdQVSA1MSBIRE1JL0RQIiwJLnBhdGNoID0gcGF0Y2hfZ2VuZXJpY19oZG1pIH0sDQoreyAu aWQgPSAweDEwZGUwMDYwLCAubmFtZSA9ICJHUFUgNjAgSERNSS9EUCIsCS5wYXRjaCA9IHBhdGNo X2dlbmVyaWNfaGRtaSB9LA0KIHsgLmlkID0gMHgxMGRlMDA2NywgLm5hbWUgPSAiTUNQNjcgSERN SSIsCS5wYXRjaCA9IHBhdGNoX252aGRtaV8yY2ggfSwNCiB7IC5pZCA9IDB4MTBkZTgwMDEsIC5u YW1lID0gIk1DUDczIEhETUkiLAkucGF0Y2ggPSBwYXRjaF9udmhkbWlfMmNoIH0sDQogeyAuaWQg PSAweDgwODYwMDU0LCAubmFtZSA9ICJJYmV4UGVhayBIRE1JIiwJLnBhdGNoID0gcGF0Y2hfZ2Vu ZXJpY19oZG1pIH0sDQpAQCAtMTk0Myw2ICsxOTQ1LDggQEAgTU9EVUxFX0FMSUFTKCJzbmQtaGRh LWNvZGVjLWlkOjEwZGUwMDQxIik7DQogTU9EVUxFX0FMSUFTKCJzbmQtaGRhLWNvZGVjLWlkOjEw ZGUwMDQyIik7DQogTU9EVUxFX0FMSUFTKCJzbmQtaGRhLWNvZGVjLWlkOjEwZGUwMDQzIik7DQog TU9EVUxFX0FMSUFTKCJzbmQtaGRhLWNvZGVjLWlkOjEwZGUwMDQ0Iik7DQorTU9EVUxFX0FMSUFT KCJzbmQtaGRhLWNvZGVjLWlkOjEwZGUwMDUxIik7DQorTU9EVUxFX0FMSUFTKCJzbmQtaGRhLWNv ZGVjLWlkOjEwZGUwMDYwIik7DQogTU9EVUxFX0FMSUFTKCJzbmQtaGRhLWNvZGVjLWlkOjEwZGUw MDY3Iik7DQogTU9EVUxFX0FMSUFTKCJzbmQtaGRhLWNvZGVjLWlkOjEwZGU4MDAxIik7DQogTU9E VUxFX0FMSUFTKCJzbmQtaGRhLWNvZGVjLWlkOjE3ZTgwMDQ3Iik7DQpkaWZmIC0tZ2l0IGEvc291 bmQvc29jL2NvZGVjcy9tYXg5ODA4OC5jIGIvc291bmQvc29jL2NvZGVjcy9tYXg5ODA4OC5jDQpp bmRleCBiN2NmMjQ2Li5kNThjNTc1IDEwMDY0NA0KLS0tIGEvc291bmQvc29jL2NvZGVjcy9tYXg5 ODA4OC5jDQorKysgYi9zb3VuZC9zb2MvY29kZWNzL21heDk4MDg4LmMNCkBAIC0xNTk1LDcgKzE1 OTUsNyBAQCBzdGF0aWMgaW50IG1heDk4MDg4X2RhaTJfZGlnaXRhbF9tdXRlKHN0cnVjdCBzbmRf c29jX2RhaSAqY29kZWNfZGFpLCBpbnQgbXV0ZSkNCiANCiBzdGF0aWMgdm9pZCBtYXg5ODA4OF9z eW5jX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykNCiB7DQotICAgICAgIHUxNiAq cmVnX2NhY2hlID0gY29kZWMtPnJlZ19jYWNoZTsNCisgICAgICAgdTggKnJlZ19jYWNoZSA9IGNv ZGVjLT5yZWdfY2FjaGU7DQogICAgICAgIGludCBpOw0KIA0KICAgICAgICBpZiAoIWNvZGVjLT5j YWNoZV9zeW5jKQ0KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvc2d0bDUwMDAuYyBiL3Nv dW5kL3NvYy9jb2RlY3Mvc2d0bDUwMDAuYw0KaW5kZXggYmJjZjkyMS4uYjVkNGE5NyAxMDA2NDQN Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvc2d0bDUwMDAuYw0KKysrIGIvc291bmQvc29jL2NvZGVj cy9zZ3RsNTAwMC5jDQpAQCAtMzgsNyArMzgsNyBAQA0KIHN0YXRpYyBjb25zdCB1MTYgc2d0bDUw MDBfcmVnc1tTR1RMNTAwMF9NQVhfUkVHX09GRlNFVF0gPSAgew0KIAlbU0dUTDUwMDBfQ0hJUF9D TEtfQ1RSTF0gPSAweDAwMDgsDQogCVtTR1RMNTAwMF9DSElQX0kyU19DVFJMXSA9IDB4MDAxMCwN Ci0JW1NHVEw1MDAwX0NISVBfU1NTX0NUUkxdID0gMHgwMDA4LA0KKwlbU0dUTDUwMDBfQ0hJUF9T U1NfQ1RSTF0gPSAweDAwMTAsDQogCVtTR1RMNTAwMF9DSElQX0RBQ19WT0xdID0gMHgzYzNjLA0K IAlbU0dUTDUwMDBfQ0hJUF9QQURfU1RSRU5HVEhdID0gMHgwMTVmLA0KIAlbU0dUTDUwMDBfQ0hJ UF9BTkFfSFBfQ1RSTF0gPSAweDE4MTgsDQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9z Z3RsNTAwMC5oIGIvc291bmQvc29jL2NvZGVjcy9zZ3RsNTAwMC5oDQppbmRleCA4YTlmNDM1Li5k M2E2OGJiIDEwMDY0NA0KLS0tIGEvc291bmQvc29jL2NvZGVjcy9zZ3RsNTAwMC5oDQorKysgYi9z b3VuZC9zb2MvY29kZWNzL3NndGw1MDAwLmgNCkBAIC0zNDcsNyArMzQ3LDcgQEANCiAjZGVmaW5l IFNHVEw1MDAwX1BMTF9JTlRfRElWX01BU0sJCTB4ZjgwMA0KICNkZWZpbmUgU0dUTDUwMDBfUExM X0lOVF9ESVZfU0hJRlQJCTExDQogI2RlZmluZSBTR1RMNTAwMF9QTExfSU5UX0RJVl9XSURUSAkJ NQ0KLSNkZWZpbmUgU0dUTDUwMDBfUExMX0ZSQUNfRElWX01BU0sJCTB4MDcwMA0KKyNkZWZpbmUg U0dUTDUwMDBfUExMX0ZSQUNfRElWX01BU0sJCTB4MDdmZg0KICNkZWZpbmUgU0dUTDUwMDBfUExM X0ZSQUNfRElWX1NISUZUCQkwDQogI2RlZmluZSBTR1RMNTAwMF9QTExfRlJBQ19ESVZfV0lEVEgJ CTExDQogDQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3M2MDAwL3M2MDAwLXBjbS5jIGIvc291bmQv c29jL3M2MDAwL3M2MDAwLXBjbS5jDQppbmRleCA1NWVmYzJiLi43NWJhYmFlIDEwMDY0NA0KLS0t IGEvc291bmQvc29jL3M2MDAwL3M2MDAwLXBjbS5jDQorKysgYi9zb3VuZC9zb2MvczYwMDAvczYw MDAtcGNtLmMNCkBAIC0xMjgsNyArMTI4LDkgQEAgc3RhdGljIGlycXJldHVybl90IHM2MDAwX3Bj bV9pcnEoaW50IGlycSwgdm9pZCAqZGF0YSkNCiAJCSAgICBzdWJzdHJlYW0tPnJ1bnRpbWUgJiYN CiAJCSAgICBzbmRfcGNtX3J1bm5pbmcoc3Vic3RyZWFtKSkgew0KIAkJCWRldl9kYmcocGNtLT5k ZXYsICJ4cnVuXG4iKTsNCisJCQlzbmRfcGNtX3N0cmVhbV9sb2NrKHN1YnN0cmVhbSk7DQogCQkJ c25kX3BjbV9zdG9wKHN1YnN0cmVhbSwgU05EUlZfUENNX1NUQVRFX1hSVU4pOw0KKwkJCXNuZF9w Y21fc3RyZWFtX3VubG9jayhzdWJzdHJlYW0pOw0KIAkJCXJldCA9IElSUV9IQU5ETEVEOw0KIAkJ fQ0KIA0KZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi82ZmlyZS9wY20uYyBiL3NvdW5kL3VzYi82Zmly ZS9wY20uYw0KaW5kZXggZDE0NGNkYi4uODg4YTdjNyAxMDA2NDQNCi0tLSBhL3NvdW5kL3VzYi82 ZmlyZS9wY20uYw0KKysrIGIvc291bmQvdXNiLzZmaXJlL3BjbS5jDQpAQCAtNTQxLDcgKzU0MSw3 IEBAIHN0YXRpYyBzbmRfcGNtX3VmcmFtZXNfdCB1c2I2ZmlyZV9wY21fcG9pbnRlcigNCiAJc25k X3BjbV91ZnJhbWVzX3QgcmV0Ow0KIA0KIAlpZiAocnQtPnBhbmljIHx8ICFzdWIpDQotCQlyZXR1 cm4gU05EUlZfUENNX1NUQVRFX1hSVU47DQorCQlyZXR1cm4gU05EUlZfUENNX1BPU19YUlVOOw0K IA0KIAlzcGluX2xvY2tfaXJxc2F2ZSgmc3ViLT5sb2NrLCBmbGFncyk7DQogCXJldCA9IHN1Yi0+ ZG1hX29mZjsNCkBAIC02NDAsMTcgKzY0MCwyNSBAQCBpbnQgX19kZXZpbml0IHVzYjZmaXJlX3Bj bV9pbml0KHN0cnVjdCBzZmlyZV9jaGlwICpjaGlwKQ0KIHZvaWQgdXNiNmZpcmVfcGNtX2Fib3J0 KHN0cnVjdCBzZmlyZV9jaGlwICpjaGlwKQ0KIHsNCiAJc3RydWN0IHBjbV9ydW50aW1lICpydCA9 IGNoaXAtPnBjbTsNCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCiAJaW50IGk7DQogDQogCWlmIChy dCkgew0KIAkJcnQtPnBhbmljID0gdHJ1ZTsNCiANCi0JCWlmIChydC0+cGxheWJhY2suaW5zdGFu Y2UpDQorCQlpZiAocnQtPnBsYXliYWNrLmluc3RhbmNlKSB7DQorCQkJc25kX3BjbV9zdHJlYW1f bG9ja19pcnFzYXZlKHJ0LT5wbGF5YmFjay5pbnN0YW5jZSwgZmxhZ3MpOw0KIAkJCXNuZF9wY21f c3RvcChydC0+cGxheWJhY2suaW5zdGFuY2UsDQogCQkJCQlTTkRSVl9QQ01fU1RBVEVfWFJVTik7 DQotCQlpZiAocnQtPmNhcHR1cmUuaW5zdGFuY2UpDQorCQkJc25kX3BjbV9zdHJlYW1fdW5sb2Nr X2lycXJlc3RvcmUocnQtPnBsYXliYWNrLmluc3RhbmNlLCBmbGFncyk7DQorCQl9DQorDQorCQlp ZiAocnQtPmNhcHR1cmUuaW5zdGFuY2UpIHsNCisJCQlzbmRfcGNtX3N0cmVhbV9sb2NrX2lycXNh dmUocnQtPmNhcHR1cmUuaW5zdGFuY2UsIGZsYWdzKTsNCiAJCQlzbmRfcGNtX3N0b3AocnQtPmNh cHR1cmUuaW5zdGFuY2UsDQogCQkJCQlTTkRSVl9QQ01fU1RBVEVfWFJVTik7DQorCQkJc25kX3Bj bV9zdHJlYW1fdW5sb2NrX2lycXJlc3RvcmUocnQtPmNhcHR1cmUuaW5zdGFuY2UsIGZsYWdzKTsN CisJCX0NCiANCiAJCWZvciAoaSA9IDA7IGkgPCBQQ01fTl9VUkJTOyBpKyspIHsNCiAJCQl1c2Jf cG9pc29uX3VyYigmcnQtPmluX3VyYnNbaV0uaW5zdGFuY2UpOw0KZGlmZiAtLWdpdCBhL3NvdW5k L3VzYi9taXNjL3VhMTAxLmMgYi9zb3VuZC91c2IvbWlzYy91YTEwMS5jDQppbmRleCBjMDYwOWMy Li44NDA1MmNmIDEwMDY0NA0KLS0tIGEvc291bmQvdXNiL21pc2MvdWExMDEuYw0KKysrIGIvc291 bmQvdXNiL21pc2MvdWExMDEuYw0KQEAgLTYxMywxNCArNjEzLDI0IEBAIHN0YXRpYyBpbnQgc3Rh cnRfdXNiX3BsYXliYWNrKHN0cnVjdCB1YTEwMSAqdWEpDQogDQogc3RhdGljIHZvaWQgYWJvcnRf YWxzYV9jYXB0dXJlKHN0cnVjdCB1YTEwMSAqdWEpDQogew0KLQlpZiAodGVzdF9iaXQoQUxTQV9D QVBUVVJFX1JVTk5JTkcsICZ1YS0+c3RhdGVzKSkNCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCisN CisJaWYgKHRlc3RfYml0KEFMU0FfQ0FQVFVSRV9SVU5OSU5HLCAmdWEtPnN0YXRlcykpIHsNCisJ CXNuZF9wY21fc3RyZWFtX2xvY2tfaXJxc2F2ZSh1YS0+Y2FwdHVyZS5zdWJzdHJlYW0sIGZsYWdz KTsNCiAJCXNuZF9wY21fc3RvcCh1YS0+Y2FwdHVyZS5zdWJzdHJlYW0sIFNORFJWX1BDTV9TVEFU RV9YUlVOKTsNCisJCXNuZF9wY21fc3RyZWFtX3VubG9ja19pcnFyZXN0b3JlKHVhLT5jYXB0dXJl LnN1YnN0cmVhbSwgZmxhZ3MpOw0KKwl9DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGFib3J0X2Fsc2Ff cGxheWJhY2soc3RydWN0IHVhMTAxICp1YSkNCiB7DQotCWlmICh0ZXN0X2JpdChBTFNBX1BMQVlC QUNLX1JVTk5JTkcsICZ1YS0+c3RhdGVzKSkNCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCisNCisJ aWYgKHRlc3RfYml0KEFMU0FfUExBWUJBQ0tfUlVOTklORywgJnVhLT5zdGF0ZXMpKSB7DQorCQlz bmRfcGNtX3N0cmVhbV9sb2NrX2lycXNhdmUodWEtPnBsYXliYWNrLnN1YnN0cmVhbSwgZmxhZ3Mp Ow0KIAkJc25kX3BjbV9zdG9wKHVhLT5wbGF5YmFjay5zdWJzdHJlYW0sIFNORFJWX1BDTV9TVEFU RV9YUlVOKTsNCisJCXNuZF9wY21fc3RyZWFtX3VubG9ja19pcnFyZXN0b3JlKHVhLT5wbGF5YmFj ay5zdWJzdHJlYW0sIGZsYWdzKTsNCisJfQ0KIH0NCiANCiBzdGF0aWMgaW50IHNldF9zdHJlYW1f aHcoc3RydWN0IHVhMTAxICp1YSwgc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0s DQpkaWZmIC0tZ2l0IGEvc291bmQvdXNiL3VzeDJ5L3VzYnVzeDJ5YXVkaW8uYyBiL3NvdW5kL3Vz Yi91c3gyeS91c2J1c3gyeWF1ZGlvLmMNCmluZGV4IDZmZmIzNzEuLmQ1NzI0ZDggMTAwNjQ0DQot LS0gYS9zb3VuZC91c2IvdXN4MnkvdXNidXN4MnlhdWRpby5jDQorKysgYi9zb3VuZC91c2IvdXN4 MnkvdXNidXN4MnlhdWRpby5jDQpAQCAtMjczLDcgKzI3MywxMSBAQCBzdGF0aWMgdm9pZCB1c1gy WV9jbGllbnRzX3N0b3Aoc3RydWN0IHVzWDJZZGV2ICp1c1gyWSkNCiAJCXN0cnVjdCBzbmRfdXNY Mllfc3Vic3RyZWFtICpzdWJzID0gdXNYMlktPnN1YnNbc107DQogCQlpZiAoc3Vicykgew0KIAkJ CWlmIChhdG9taWNfcmVhZCgmc3Vicy0+c3RhdGUpID49IHN0YXRlX1BSRVJVTk5JTkcpIHsNCisJ CQkJdW5zaWduZWQgbG9uZyBmbGFnczsNCisNCisJCQkJc25kX3BjbV9zdHJlYW1fbG9ja19pcnFz YXZlKHN1YnMtPnBjbV9zdWJzdHJlYW0sIGZsYWdzKTsNCiAJCQkJc25kX3BjbV9zdG9wKHN1YnMt PnBjbV9zdWJzdHJlYW0sIFNORFJWX1BDTV9TVEFURV9YUlVOKTsNCisJCQkJc25kX3BjbV9zdHJl YW1fdW5sb2NrX2lycXJlc3RvcmUoc3Vicy0+cGNtX3N1YnN0cmVhbSwgZmxhZ3MpOw0KIAkJCX0N CiAJCQlmb3IgKHUgPSAwOyB1IDwgTlJVUkJTOyB1KyspIHsNCiAJCQkJc3RydWN0IHVyYiAqdXJi ID0gc3Vicy0+dXJiW3VdOw0K --=-73XqCEdJcGj1Xzg6sgZK-- --=-ruHl2R1O/BExpXzrtRXG 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) iQIVAwUAUfoqoue/yOyVhhEJAQpO/hAAxIM/GDes8X48uzKwrAQCbz4SHiHxdSpX HYg9fckJvTNZenO2/+zQiArAb2RCVi6nIaFNQlhyX5IrpeGv5xL5yTRx2C4zaF7Z BDweJHyaEcK4zgE5WRl4ulN4aFKVPXgFYAM18kVhD+nhuh4Q6KCVv1b2QqVerjHf dTqOKU5NT5XsjcmJWUm9YUw5XIOK5vHfdcy1pzG0SFlVOxwNz05eBc/FVyl3aNxX D+KURMVDoU38D6WcLgIDrhwENBwEUlGon/SoPq+jvT+zvAwiXJd6T5FJSDoVx6RD /vak0+GLQ3FaBCfmA6LVYTSIOgFYb+4LJk/YgVD2ogG9CVhHZduKq4OzkcHiCh3N xJKTR2659SnIQ3pW5pjqaCU14b5+3B5XNN9XBtEY+gY8q9KP16Y1yf/EFKEcO5gH WDDsngIJdMid/OeuBQwSU9jgNGZUDOG8NPQ3Rs4go0PnDFZ3QvUPGeIdJ5vLIftB sohzqYicGO4N5sY6GxeScothrUmy3xRmmWPcjJ5V6icICi2oDqZRVvilMdh4MT/E pzimdirhkV9fTnBm3rrmfqDzLMQOXrTWZ1O3bnOWGhPdqn8GBk3N+d9PRY/tr0bZ 67cUnAfDi43YLOliLFZlg5WC4/ZOTu9ZoJ+sEvcY9+7+VAtrhKvTgXxSSFNQPrGy xjleQkc5lZQ= =lbOT -----END PGP SIGNATURE----- --=-ruHl2R1O/BExpXzrtRXG--