From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754829Ab3L2CTk (ORCPT ); Sat, 28 Dec 2013 21:19:40 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:55895 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754834Ab3L2CT1 (ORCPT ); Sat, 28 Dec 2013 21:19:27 -0500 Message-ID: <1388283550.14575.25.camel@deadeye.wl.decadent.org.uk> Subject: Re: [PATCH 3.2 000/185] 3.2.54-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: Sun, 29 Dec 2013 03:19:10 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-9bfK5arjnfHO0IbglKNj" X-Mailer: Evolution 3.8.5-2+b1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 31.18.200.85 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 --=-9bfK5arjnfHO0IbglKNj Content-Type: multipart/mixed; boundary="=-Ds1d4EjX27bn5pV+4YAW" --=-Ds1d4EjX27bn5pV+4YAW Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.54-rc1 relative to 3.2.53. Ben. --=20 Ben Hutchings Klipstein's 4th Law of Prototyping and Production: A fail-safe circuit will destroy others= . --=-Ds1d4EjX27bn5pV+4YAW Content-Disposition: attachment; filename="linux-3.2.54-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.54-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vc3lzY3RsL2tlcm5lbC50eHQgYi9Eb2N1bWVudGF0 aW9uL3N5c2N0bC9rZXJuZWwudHh0DQppbmRleCAxZjI0NjM2Li4yYTY4MDg5IDEwMDY0NA0KLS0t IGEvRG9jdW1lbnRhdGlvbi9zeXNjdGwva2VybmVsLnR4dA0KKysrIGIvRG9jdW1lbnRhdGlvbi9z eXNjdGwva2VybmVsLnR4dA0KQEAgLTI4MywxMyArMjgzLDI0IEBAIERlZmF1bHQgdmFsdWUgaXMg Ii9zYmluL2hvdHBsdWciLg0KIGtwdHJfcmVzdHJpY3Q6DQogDQogVGhpcyB0b2dnbGUgaW5kaWNh dGVzIHdoZXRoZXIgcmVzdHJpY3Rpb25zIGFyZSBwbGFjZWQgb24NCi1leHBvc2luZyBrZXJuZWwg YWRkcmVzc2VzIHZpYSAvcHJvYyBhbmQgb3RoZXIgaW50ZXJmYWNlcy4gIFdoZW4NCi1rcHRyX3Jl c3RyaWN0IGlzIHNldCB0byAoMCksIHRoZXJlIGFyZSBubyByZXN0cmljdGlvbnMuICBXaGVuDQot a3B0cl9yZXN0cmljdCBpcyBzZXQgdG8gKDEpLCB0aGUgZGVmYXVsdCwga2VybmVsIHBvaW50ZXJz DQotcHJpbnRlZCB1c2luZyB0aGUgJXBLIGZvcm1hdCBzcGVjaWZpZXIgd2lsbCBiZSByZXBsYWNl ZCB3aXRoIDAncw0KLXVubGVzcyB0aGUgdXNlciBoYXMgQ0FQX1NZU0xPRy4gIFdoZW4ga3B0cl9y ZXN0cmljdCBpcyBzZXQgdG8NCi0oMiksIGtlcm5lbCBwb2ludGVycyBwcmludGVkIHVzaW5nICVw SyB3aWxsIGJlIHJlcGxhY2VkIHdpdGggMCdzDQotcmVnYXJkbGVzcyBvZiBwcml2aWxlZ2VzLg0K K2V4cG9zaW5nIGtlcm5lbCBhZGRyZXNzZXMgdmlhIC9wcm9jIGFuZCBvdGhlciBpbnRlcmZhY2Vz Lg0KKw0KK1doZW4ga3B0cl9yZXN0cmljdCBpcyBzZXQgdG8gKDApLCB0aGUgZGVmYXVsdCwgdGhl cmUgYXJlIG5vIHJlc3RyaWN0aW9ucy4NCisNCitXaGVuIGtwdHJfcmVzdHJpY3QgaXMgc2V0IHRv ICgxKSwga2VybmVsIHBvaW50ZXJzIHByaW50ZWQgdXNpbmcgdGhlICVwSw0KK2Zvcm1hdCBzcGVj aWZpZXIgd2lsbCBiZSByZXBsYWNlZCB3aXRoIDAncyB1bmxlc3MgdGhlIHVzZXIgaGFzIENBUF9T WVNMT0cNCithbmQgZWZmZWN0aXZlIHVzZXIgYW5kIGdyb3VwIGlkcyBhcmUgZXF1YWwgdG8gdGhl IHJlYWwgaWRzLiBUaGlzIGlzDQorYmVjYXVzZSAlcEsgY2hlY2tzIGFyZSBkb25lIGF0IHJlYWQo KSB0aW1lIHJhdGhlciB0aGFuIG9wZW4oKSB0aW1lLCBzbw0KK2lmIHBlcm1pc3Npb25zIGFyZSBl bGV2YXRlZCBiZXR3ZWVuIHRoZSBvcGVuKCkgYW5kIHRoZSByZWFkKCkgKGUuZyB2aWENCithIHNl dHVpZCBiaW5hcnkpIHRoZW4gJXBLIHdpbGwgbm90IGxlYWsga2VybmVsIHBvaW50ZXJzIHRvIHVu cHJpdmlsZWdlZA0KK3VzZXJzLiBOb3RlLCB0aGlzIGlzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uIG9u bHkuIFRoZSBjb3JyZWN0IGxvbmctdGVybQ0KK3NvbHV0aW9uIGlzIHRvIGRvIHRoZSBwZXJtaXNz aW9uIGNoZWNrcyBhdCBvcGVuKCkgdGltZS4gQ29uc2lkZXIgcmVtb3ZpbmcNCit3b3JsZCByZWFk IHBlcm1pc3Npb25zIGZyb20gZmlsZXMgdGhhdCB1c2UgJXBLLCBhbmQgdXNpbmcgZG1lc2dfcmVz dHJpY3QNCit0byBwcm90ZWN0IGFnYWluc3QgdXNlcyBvZiAlcEsgaW4gZG1lc2coOCkgaWYgbGVh a2luZyBrZXJuZWwgcG9pbnRlcg0KK3ZhbHVlcyB0byB1bnByaXZpbGVnZWQgdXNlcnMgaXMgYSBj b25jZXJuLg0KKw0KK1doZW4ga3B0cl9yZXN0cmljdCBpcyBzZXQgdG8gKDIpLCBrZXJuZWwgcG9p bnRlcnMgcHJpbnRlZCB1c2luZw0KKyVwSyB3aWxsIGJlIHJlcGxhY2VkIHdpdGggMCdzIHJlZ2Fy ZGxlc3Mgb2YgcHJpdmlsZWdlcy4NCiANCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIA0KZGlmZiAtLWdpdCBhL01ha2VmaWxl IGIvTWFrZWZpbGUNCmluZGV4IDkwZjU3ZGMuLjg3ZGEyNjMgMTAwNjQ0DQotLS0gYS9NYWtlZmls ZQ0KKysrIGIvTWFrZWZpbGUNCkBAIC0xLDcgKzEsNyBAQA0KIFZFUlNJT04gPSAzDQogUEFUQ0hM RVZFTCA9IDINCi1TVUJMRVZFTCA9IDUzDQotRVhUUkFWRVJTSU9OID0NCitTVUJMRVZFTCA9IDU0 DQorRVhUUkFWRVJTSU9OID0gLXJjMQ0KIE5BTUUgPSBTYWJlci10b290aGVkIFNxdWlycmVsDQog DQogIyAqRE9DVU1FTlRBVElPTioNCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9h c3NlbWJsZXIuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Fzc2VtYmxlci5oDQppbmRleCA3YmI4 YmY5Li5iN2M1ZDVkIDEwMDY0NA0KLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vYXNzZW1ibGVy LmgNCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Fzc2VtYmxlci5oDQpAQCAtMzA3LDQgKzMw NywxMiBAQA0KIAkuc2l6ZSBcbmFtZSAsIC4gLSBcbmFtZQ0KIAkuZW5kbQ0KIA0KKwkubWFjcm8g Y2hlY2tfdWFjY2VzcywgYWRkcjpyZXEsIHNpemU6cmVxLCBsaW1pdDpyZXEsIHRtcDpyZXEsIGJh ZDpyZXENCisjaWZuZGVmIENPTkZJR19DUFVfVVNFX0RPTUFJTlMNCisJYWRkcwlcdG1wLCBcYWRk ciwgI1xzaXplIC0gMQ0KKwlzYmNjY3MJXHRtcCwgXHRtcCwgXGxpbWl0DQorCWJjcwlcYmFkDQor I2VuZGlmDQorCS5lbmRtDQorDQogI2VuZGlmIC8qIF9fQVNNX0FTU0VNQkxFUl9IX18gKi8NCmRp ZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS91YWNjZXNzLmggYi9hcmNoL2FybS9pbmNs dWRlL2FzbS91YWNjZXNzLmgNCmluZGV4IGIyOTM2MTYuLjI5MmMzZjggMTAwNjQ0DQotLS0gYS9h cmNoL2FybS9pbmNsdWRlL2FzbS91YWNjZXNzLmgNCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNt L3VhY2Nlc3MuaA0KQEAgLTEwMSwyOCArMTAxLDM5IEBAIGV4dGVybiBpbnQgX19nZXRfdXNlcl8x KHZvaWQgKik7DQogZXh0ZXJuIGludCBfX2dldF91c2VyXzIodm9pZCAqKTsNCiBleHRlcm4gaW50 IF9fZ2V0X3VzZXJfNCh2b2lkICopOw0KIA0KLSNkZWZpbmUgX19nZXRfdXNlcl94KF9fcjIsX19w LF9fZSxfX3MsX19pLi4uKQkJCQlcDQorI2RlZmluZSBfX0dVUF9DTE9CQkVSXzEJImxyIiwgImNj Ig0KKyNpZmRlZiBDT05GSUdfQ1BVX1VTRV9ET01BSU5TDQorI2RlZmluZSBfX0dVUF9DTE9CQkVS XzIJImlwIiwgImxyIiwgImNjIg0KKyNlbHNlDQorI2RlZmluZSBfX0dVUF9DTE9CQkVSXzIgImxy IiwgImNjIg0KKyNlbmRpZg0KKyNkZWZpbmUgX19HVVBfQ0xPQkJFUl80CSJsciIsICJjYyINCisN CisjZGVmaW5lIF9fZ2V0X3VzZXJfeChfX3IyLF9fcCxfX2UsX19sLF9fcykJCQkJXA0KIAkgICBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoCQkJCQlcDQogCQlfX2FzbWVxKCIlMCIsICJyMCIpIF9fYXNt ZXEoIiUxIiwgInIyIikJCQlcDQorCQlfX2FzbWVxKCIlMyIsICJyMSIpCQkJCQlcDQogCQkiYmwJ X19nZXRfdXNlcl8iICNfX3MJCQkJXA0KIAkJOiAiPSZyIiAoX19lKSwgIj1yIiAoX19yMikJCQkJ XA0KLQkJOiAiMCIgKF9fcCkJCQkJCQlcDQotCQk6IF9faSwgImNjIikNCisJCTogIjAiIChfX3Ap LCAiciIgKF9fbCkJCQkJCVwNCisJCTogX19HVVBfQ0xPQkJFUl8jI19fcykNCiANCiAjZGVmaW5l IGdldF91c2VyKHgscCkJCQkJCQkJXA0KIAkoewkJCQkJCQkJXA0KKwkJdW5zaWduZWQgbG9uZyBf X2xpbWl0ID0gY3VycmVudF90aHJlYWRfaW5mbygpLT5hZGRyX2xpbWl0IC0gMTsgXA0KIAkJcmVn aXN0ZXIgY29uc3QgdHlwZW9mKCoocCkpIF9fdXNlciAqX19wIGFzbSgicjAiKSA9IChwKTtcDQog CQlyZWdpc3RlciB1bnNpZ25lZCBsb25nIF9fcjIgYXNtKCJyMiIpOwkJCVwNCisJCXJlZ2lzdGVy IHVuc2lnbmVkIGxvbmcgX19sIGFzbSgicjEiKSA9IF9fbGltaXQ7CQlcDQogCQlyZWdpc3RlciBp bnQgX19lIGFzbSgicjAiKTsJCQkJXA0KIAkJc3dpdGNoIChzaXplb2YoKihfX3ApKSkgewkJCQlc DQogCQljYXNlIDE6CQkJCQkJCVwNCi0JCQlfX2dldF91c2VyX3goX19yMiwgX19wLCBfX2UsIDEs ICJsciIpOwkJXA0KLQkgICAgICAgCQlicmVhazsJCQkJCQlcDQorCQkJX19nZXRfdXNlcl94KF9f cjIsIF9fcCwgX19lLCBfX2wsIDEpOwkJXA0KKwkJCWJyZWFrOwkJCQkJCVwNCiAJCWNhc2UgMjoJ CQkJCQkJXA0KLQkJCV9fZ2V0X3VzZXJfeChfX3IyLCBfX3AsIF9fZSwgMiwgInIzIiwgImxyIik7 CVwNCisJCQlfX2dldF91c2VyX3goX19yMiwgX19wLCBfX2UsIF9fbCwgMik7CQlcDQogCQkJYnJl YWs7CQkJCQkJXA0KIAkJY2FzZSA0OgkJCQkJCQlcDQotCSAgICAgICAJCV9fZ2V0X3VzZXJfeChf X3IyLCBfX3AsIF9fZSwgNCwgImxyIik7CQlcDQorCQkJX19nZXRfdXNlcl94KF9fcjIsIF9fcCwg X19lLCBfX2wsIDQpOwkJXA0KIAkJCWJyZWFrOwkJCQkJCVwNCiAJCWRlZmF1bHQ6IF9fZSA9IF9f Z2V0X3VzZXJfYmFkKCk7IGJyZWFrOwkJCVwNCiAJCX0JCQkJCQkJXA0KQEAgLTEzNSwzMSArMTQ2 LDM0IEBAIGV4dGVybiBpbnQgX19wdXRfdXNlcl8yKHZvaWQgKiwgdW5zaWduZWQgaW50KTsNCiBl eHRlcm4gaW50IF9fcHV0X3VzZXJfNCh2b2lkICosIHVuc2lnbmVkIGludCk7DQogZXh0ZXJuIGlu dCBfX3B1dF91c2VyXzgodm9pZCAqLCB1bnNpZ25lZCBsb25nIGxvbmcpOw0KIA0KLSNkZWZpbmUg X19wdXRfdXNlcl94KF9fcjIsX19wLF9fZSxfX3MpCQkJCQlcDQorI2RlZmluZSBfX3B1dF91c2Vy X3goX19yMixfX3AsX19lLF9fbCxfX3MpCQkJCVwNCiAJICAgX19hc21fXyBfX3ZvbGF0aWxlX18g KAkJCQkJXA0KIAkJX19hc21lcSgiJTAiLCAicjAiKSBfX2FzbWVxKCIlMiIsICJyMiIpCQkJXA0K KwkJX19hc21lcSgiJTMiLCAicjEiKQkJCQkJXA0KIAkJImJsCV9fcHV0X3VzZXJfIiAjX19zCQkJ CVwNCiAJCTogIj0mciIgKF9fZSkJCQkJCQlcDQotCQk6ICIwIiAoX19wKSwgInIiIChfX3IyKQkJ CQkJXA0KKwkJOiAiMCIgKF9fcCksICJyIiAoX19yMiksICJyIiAoX19sKQkJCVwNCiAJCTogImlw IiwgImxyIiwgImNjIikNCiANCiAjZGVmaW5lIHB1dF91c2VyKHgscCkJCQkJCQkJXA0KIAkoewkJ CQkJCQkJXA0KKwkJdW5zaWduZWQgbG9uZyBfX2xpbWl0ID0gY3VycmVudF90aHJlYWRfaW5mbygp LT5hZGRyX2xpbWl0IC0gMTsgXA0KIAkJcmVnaXN0ZXIgY29uc3QgdHlwZW9mKCoocCkpIF9fcjIg YXNtKCJyMiIpID0gKHgpOwlcDQogCQlyZWdpc3RlciBjb25zdCB0eXBlb2YoKihwKSkgX191c2Vy ICpfX3AgYXNtKCJyMCIpID0gKHApO1wNCisJCXJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgX19sIGFz bSgicjEiKSA9IF9fbGltaXQ7CQlcDQogCQlyZWdpc3RlciBpbnQgX19lIGFzbSgicjAiKTsJCQkJ XA0KIAkJc3dpdGNoIChzaXplb2YoKihfX3ApKSkgewkJCQlcDQogCQljYXNlIDE6CQkJCQkJCVwN Ci0JCQlfX3B1dF91c2VyX3goX19yMiwgX19wLCBfX2UsIDEpOwkJXA0KKwkJCV9fcHV0X3VzZXJf eChfX3IyLCBfX3AsIF9fZSwgX19sLCAxKTsJCVwNCiAJCQlicmVhazsJCQkJCQlcDQogCQljYXNl IDI6CQkJCQkJCVwNCi0JCQlfX3B1dF91c2VyX3goX19yMiwgX19wLCBfX2UsIDIpOwkJXA0KKwkJ CV9fcHV0X3VzZXJfeChfX3IyLCBfX3AsIF9fZSwgX19sLCAyKTsJCVwNCiAJCQlicmVhazsJCQkJ CQlcDQogCQljYXNlIDQ6CQkJCQkJCVwNCi0JCQlfX3B1dF91c2VyX3goX19yMiwgX19wLCBfX2Us IDQpOwkJXA0KKwkJCV9fcHV0X3VzZXJfeChfX3IyLCBfX3AsIF9fZSwgX19sLCA0KTsJCVwNCiAJ CQlicmVhazsJCQkJCQlcDQogCQljYXNlIDg6CQkJCQkJCVwNCi0JCQlfX3B1dF91c2VyX3goX19y MiwgX19wLCBfX2UsIDgpOwkJXA0KKwkJCV9fcHV0X3VzZXJfeChfX3IyLCBfX3AsIF9fZSwgX19s LCA4KTsJCVwNCiAJCQlicmVhazsJCQkJCQlcDQogCQlkZWZhdWx0OiBfX2UgPSBfX3B1dF91c2Vy X2JhZCgpOyBicmVhazsJCQlcDQogCQl9CQkJCQkJCVwNCmRpZmYgLS1naXQgYS9hcmNoL2FybS9r ZXJuZWwvcHJvY2Vzcy5jIGIvYXJjaC9hcm0va2VybmVsL3Byb2Nlc3MuYw0KaW5kZXggZTY4ZDI1 MS4uZDllM2M2MSAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL2tlcm5lbC9wcm9jZXNzLmMNCisrKyBi L2FyY2gvYXJtL2tlcm5lbC9wcm9jZXNzLmMNCkBAIC00NjgsNiArNDY4LDcgQEAgRVhQT1JUX1NZ TUJPTChrZXJuZWxfdGhyZWFkKTsNCiB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFz a19zdHJ1Y3QgKnApDQogew0KIAlzdHJ1Y3Qgc3RhY2tmcmFtZSBmcmFtZTsNCisJdW5zaWduZWQg bG9uZyBzdGFja19wYWdlOw0KIAlpbnQgY291bnQgPSAwOw0KIAlpZiAoIXAgfHwgcCA9PSBjdXJy ZW50IHx8IHAtPnN0YXRlID09IFRBU0tfUlVOTklORykNCiAJCXJldHVybiAwOw0KQEAgLTQ3Niw5 ICs0NzcsMTEgQEAgdW5zaWduZWQgbG9uZyBnZXRfd2NoYW4oc3RydWN0IHRhc2tfc3RydWN0ICpw KQ0KIAlmcmFtZS5zcCA9IHRocmVhZF9zYXZlZF9zcChwKTsNCiAJZnJhbWUubHIgPSAwOwkJCS8q IHJlY292ZXJlZCBmcm9tIHRoZSBzdGFjayAqLw0KIAlmcmFtZS5wYyA9IHRocmVhZF9zYXZlZF9w YyhwKTsNCisJc3RhY2tfcGFnZSA9ICh1bnNpZ25lZCBsb25nKXRhc2tfc3RhY2tfcGFnZShwKTsN CiAJZG8gew0KLQkJaW50IHJldCA9IHVud2luZF9mcmFtZSgmZnJhbWUpOw0KLQkJaWYgKHJldCA8 IDApDQorCQlpZiAoZnJhbWUuc3AgPCBzdGFja19wYWdlIHx8DQorCQkgICAgZnJhbWUuc3AgPj0g c3RhY2tfcGFnZSArIFRIUkVBRF9TSVpFIHx8DQorCQkgICAgdW53aW5kX2ZyYW1lKCZmcmFtZSkg PCAwKQ0KIAkJCXJldHVybiAwOw0KIAkJaWYgKCFpbl9zY2hlZF9mdW5jdGlvbnMoZnJhbWUucGMp KQ0KIAkJCXJldHVybiBmcmFtZS5wYzsNCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvc3Rh Y2t0cmFjZS5jIGIvYXJjaC9hcm0va2VybmVsL3N0YWNrdHJhY2UuYw0KaW5kZXggMDBmNzllNS4u YWY0ZThjOCAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL2tlcm5lbC9zdGFja3RyYWNlLmMNCisrKyBi L2FyY2gvYXJtL2tlcm5lbC9zdGFja3RyYWNlLmMNCkBAIC0zMSw3ICszMSw3IEBAIGludCBub3Ry YWNlIHVud2luZF9mcmFtZShzdHJ1Y3Qgc3RhY2tmcmFtZSAqZnJhbWUpDQogCWhpZ2ggPSBBTElH Tihsb3csIFRIUkVBRF9TSVpFKTsNCiANCiAJLyogY2hlY2sgY3VycmVudCBmcmFtZSBwb2ludGVy IGlzIHdpdGhpbiBib3VuZHMgKi8NCi0JaWYgKGZwIDwgKGxvdyArIDEyKSB8fCBmcCArIDQgPj0g aGlnaCkNCisJaWYgKGZwIDwgbG93ICsgMTIgfHwgZnAgPiBoaWdoIC0gNCkNCiAJCXJldHVybiAt RUlOVkFMOw0KIA0KIAkvKiByZXN0b3JlIHRoZSByZWdpc3RlcnMgZnJvbSB0aGUgc3RhY2sgZnJh bWUgKi8NCmRpZmYgLS1naXQgYS9hcmNoL2FybS9saWIvZ2V0dXNlci5TIGIvYXJjaC9hcm0vbGli L2dldHVzZXIuUw0KaW5kZXggMWIwNDljZC4uNDMwNmZiZiAxMDA2NDQNCi0tLSBhL2FyY2gvYXJt L2xpYi9nZXR1c2VyLlMNCisrKyBiL2FyY2gvYXJtL2xpYi9nZXR1c2VyLlMNCkBAIC0xNiw4ICsx Niw5IEBADQogICogX19nZXRfdXNlcl9YDQogICoNCiAgKiBJbnB1dHM6CXIwIGNvbnRhaW5zIHRo ZSBhZGRyZXNzDQorICoJCXIxIGNvbnRhaW5zIHRoZSBhZGRyZXNzIGxpbWl0LCB3aGljaCBtdXN0 IGJlIHByZXNlcnZlZA0KICAqIE91dHB1dHM6CXIwIGlzIHRoZSBlcnJvciBjb2RlDQotICoJCXIy LCByMyBjb250YWlucyB0aGUgemVyby1leHRlbmRlZCB2YWx1ZQ0KKyAqCQlyMiBjb250YWlucyB0 aGUgemVyby1leHRlbmRlZCB2YWx1ZQ0KICAqCQlsciBjb3JydXB0ZWQNCiAgKg0KICAqIE5vIG90 aGVyIHJlZ2lzdGVycyBtdXN0IGJlIGFsdGVyZWQuICAoc2VlIDxhc20vdWFjY2Vzcy5oPg0KQEAg LTI3LDMzICsyOCwzOSBAQA0KICAqIE5vdGUgYWxzbyB0aGF0IGl0IGlzIGludGVuZGVkIHRoYXQg X19nZXRfdXNlcl9iYWQgaXMgbm90IGdsb2JhbC4NCiAgKi8NCiAjaW5jbHVkZSA8bGludXgvbGlu a2FnZS5oPg0KKyNpbmNsdWRlIDxhc20vYXNzZW1ibGVyLmg+DQogI2luY2x1ZGUgPGFzbS9lcnJu by5oPg0KICNpbmNsdWRlIDxhc20vZG9tYWluLmg+DQogDQogRU5UUlkoX19nZXRfdXNlcl8xKQ0K KwljaGVja191YWNjZXNzIHIwLCAxLCByMSwgcjIsIF9fZ2V0X3VzZXJfYmFkDQogMToJVChsZHJi KQlyMiwgW3IwXQ0KIAltb3YJcjAsICMwDQogCW1vdglwYywgbHINCiBFTkRQUk9DKF9fZ2V0X3Vz ZXJfMSkNCiANCiBFTlRSWShfX2dldF91c2VyXzIpDQotI2lmZGVmIENPTkZJR19USFVNQjJfS0VS TkVMDQotMjoJVChsZHJiKQlyMiwgW3IwXQ0KLTM6CVQobGRyYikJcjMsIFtyMCwgIzFdDQorCWNo ZWNrX3VhY2Nlc3MgcjAsIDIsIHIxLCByMiwgX19nZXRfdXNlcl9iYWQNCisjaWZkZWYgQ09ORklH X0NQVV9VU0VfRE9NQUlOUw0KK3JiCS5yZXEJaXANCisyOglsZHJidAlyMiwgW3IwXSwgIzENCisz OglsZHJidAlyYiwgW3IwXSwgIzANCiAjZWxzZQ0KLTI6CVQobGRyYikJcjIsIFtyMF0sICMxDQot MzoJVChsZHJiKQlyMywgW3IwXQ0KK3JiCS5yZXEJcjANCisyOglsZHJiCXIyLCBbcjBdDQorMzoJ bGRyYglyYiwgW3IwLCAjMV0NCiAjZW5kaWYNCiAjaWZuZGVmIF9fQVJNRUJfXw0KLQlvcnIJcjIs IHIyLCByMywgbHNsICM4DQorCW9ycglyMiwgcjIsIHJiLCBsc2wgIzgNCiAjZWxzZQ0KLQlvcnIJ cjIsIHIzLCByMiwgbHNsICM4DQorCW9ycglyMiwgcmIsIHIyLCBsc2wgIzgNCiAjZW5kaWYNCiAJ bW92CXIwLCAjMA0KIAltb3YJcGMsIGxyDQogRU5EUFJPQyhfX2dldF91c2VyXzIpDQogDQogRU5U UlkoX19nZXRfdXNlcl80KQ0KKwljaGVja191YWNjZXNzIHIwLCA0LCByMSwgcjIsIF9fZ2V0X3Vz ZXJfYmFkDQogNDoJVChsZHIpCXIyLCBbcjBdDQogCW1vdglyMCwgIzANCiAJbW92CXBjLCBscg0K ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2xpYi9wdXR1c2VyLlMgYi9hcmNoL2FybS9saWIvcHV0dXNl ci5TDQppbmRleCBjMDIzZmMxLi45YTg5N2ZhIDEwMDY0NA0KLS0tIGEvYXJjaC9hcm0vbGliL3B1 dHVzZXIuUw0KKysrIGIvYXJjaC9hcm0vbGliL3B1dHVzZXIuUw0KQEAgLTE2LDYgKzE2LDcgQEAN CiAgKiBfX3B1dF91c2VyX1gNCiAgKg0KICAqIElucHV0czoJcjAgY29udGFpbnMgdGhlIGFkZHJl c3MNCisgKgkJcjEgY29udGFpbnMgdGhlIGFkZHJlc3MgbGltaXQsIHdoaWNoIG11c3QgYmUgcHJl c2VydmVkDQogICoJCXIyLCByMyBjb250YWlucyB0aGUgdmFsdWUNCiAgKiBPdXRwdXRzOglyMCBp cyB0aGUgZXJyb3IgY29kZQ0KICAqCQlsciBjb3JydXB0ZWQNCkBAIC0yNywxNiArMjgsMTkgQEAN CiAgKiBOb3RlIGFsc28gdGhhdCBpdCBpcyBpbnRlbmRlZCB0aGF0IF9fcHV0X3VzZXJfYmFkIGlz IG5vdCBnbG9iYWwuDQogICovDQogI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4NCisjaW5jbHVk ZSA8YXNtL2Fzc2VtYmxlci5oPg0KICNpbmNsdWRlIDxhc20vZXJybm8uaD4NCiAjaW5jbHVkZSA8 YXNtL2RvbWFpbi5oPg0KIA0KIEVOVFJZKF9fcHV0X3VzZXJfMSkNCisJY2hlY2tfdWFjY2VzcyBy MCwgMSwgcjEsIGlwLCBfX3B1dF91c2VyX2JhZA0KIDE6CVQoc3RyYikJcjIsIFtyMF0NCiAJbW92 CXIwLCAjMA0KIAltb3YJcGMsIGxyDQogRU5EUFJPQyhfX3B1dF91c2VyXzEpDQogDQogRU5UUlko X19wdXRfdXNlcl8yKQ0KKwljaGVja191YWNjZXNzIHIwLCAyLCByMSwgaXAsIF9fcHV0X3VzZXJf YmFkDQogCW1vdglpcCwgcjIsIGxzciAjOA0KICNpZmRlZiBDT05GSUdfVEhVTUIyX0tFUk5FTA0K ICNpZm5kZWYgX19BUk1FQl9fDQpAQCAtNjAsMTIgKzY0LDE0IEBAIEVOVFJZKF9fcHV0X3VzZXJf MikNCiBFTkRQUk9DKF9fcHV0X3VzZXJfMikNCiANCiBFTlRSWShfX3B1dF91c2VyXzQpDQorCWNo ZWNrX3VhY2Nlc3MgcjAsIDQsIHIxLCBpcCwgX19wdXRfdXNlcl9iYWQNCiA0OglUKHN0cikJcjIs IFtyMF0NCiAJbW92CXIwLCAjMA0KIAltb3YJcGMsIGxyDQogRU5EUFJPQyhfX3B1dF91c2VyXzQp DQogDQogRU5UUlkoX19wdXRfdXNlcl84KQ0KKwljaGVja191YWNjZXNzIHIwLCA4LCByMSwgaXAs IF9fcHV0X3VzZXJfYmFkDQogI2lmZGVmIENPTkZJR19USFVNQjJfS0VSTkVMDQogNToJVChzdHIp CXIyLCBbcjBdDQogNjoJVChzdHIpCXIzLCBbcjAsICM0XQ0KZGlmZiAtLWdpdCBhL2FyY2gvYXJt L21hY2gtZm9vdGJyaWRnZS9jb21tb24uYyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jb21t b24uYw0KaW5kZXggMzhhNDRmOS4uNWI5MWU0NSAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL21hY2gt Zm9vdGJyaWRnZS9jb21tb24uYw0KKysrIGIvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2NvbW1v bi5jDQpAQCAtMTUsNiArMTUsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+DQogI2luY2x1 ZGUgPGxpbnV4L2lvLmg+DQogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+DQorI2luY2x1ZGUg PHZpZGVvL3ZnYS5oPg0KICANCiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4NCiAjaW5jbHVkZSA8 YXNtL3BhZ2UuaD4NCkBAIC0xOTcsNiArMTk4LDggQEAgdm9pZCBfX2luaXQgZm9vdGJyaWRnZV9t YXBfaW8odm9pZCkNCiAJICovDQogCWlmIChmb290YnJpZGdlX2Nmbl9tb2RlKCkpDQogCQlpb3Rh YmxlX2luaXQoZWJzYTI4NV9ob3N0X2lvX2Rlc2MsIEFSUkFZX1NJWkUoZWJzYTI4NV9ob3N0X2lv X2Rlc2MpKTsNCisNCisJdmdhX2Jhc2UgPSBQQ0lNRU1fQkFTRTsNCiB9DQogDQogI2lmZGVmIENP TkZJR19GT09UQlJJREdFX0FERElODQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1mb290YnJp ZGdlL2RjMjEyODUuYyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9kYzIxMjg1LmMNCmluZGV4 IDE4YzMyYTUuLmE4ZGZhMDAgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2Uv ZGMyMTI4NS5jDQorKysgYi9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZGMyMTI4NS5jDQpAQCAt MTgsNyArMTgsNiBAQA0KICNpbmNsdWRlIDxsaW51eC9pcnEuaD4NCiAjaW5jbHVkZSA8bGludXgv aW8uaD4NCiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4NCi0jaW5jbHVkZSA8dmlkZW8vdmdh Lmg+DQogDQogI2luY2x1ZGUgPGFzbS9pcnEuaD4NCiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPg0K QEAgLTI5Nyw3ICsyOTYsNiBAQCB2b2lkIF9faW5pdCBkYzIxMjg1X3ByZWluaXQodm9pZCkNCiAJ aW50IGNmbl9tb2RlOw0KIA0KIAlwY2liaW9zX21pbl9tZW0gPSAweDgxMDAwMDAwOw0KLQl2Z2Ff YmFzZSA9IFBDSU1FTV9CQVNFOw0KIA0KIAltZW1fc2l6ZSA9ICh1bnNpZ25lZCBpbnQpaGlnaF9t ZW1vcnkgLSBQQUdFX09GRlNFVDsNCiAJZm9yIChtZW1fbWFzayA9IDB4MDAxMDAwMDA7IG1lbV9t YXNrIDwgMHgxMDAwMDAwMDsgbWVtX21hc2sgPDw9IDEpDQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v bWFjaC1pbnRlZ3JhdG9yL2ludGVncmF0b3JfY3AuYyBiL2FyY2gvYXJtL21hY2gtaW50ZWdyYXRv ci9pbnRlZ3JhdG9yX2NwLmMNCmluZGV4IDVkZTQ5YzMuLjg5MmQwZDYgMTAwNjQ0DQotLS0gYS9h cmNoL2FybS9tYWNoLWludGVncmF0b3IvaW50ZWdyYXRvcl9jcC5jDQorKysgYi9hcmNoL2FybS9t YWNoLWludGVncmF0b3IvaW50ZWdyYXRvcl9jcC5jDQpAQCAtMzg0LDcgKzM4NCw4IEBAIHN0YXRp YyBzdHJ1Y3QgYW1iYV9kZXZpY2UgYWFjaV9kZXZpY2UgPSB7DQogc3RhdGljIHZvaWQgY3BfY2xj ZF9lbmFibGUoc3RydWN0IGNsY2RfZmIgKmZiKQ0KIHsNCiAJc3RydWN0IGZiX3Zhcl9zY3JlZW5p bmZvICp2YXIgPSAmZmItPmZiLnZhcjsNCi0JdTMyIHZhbCA9IENNX0NUUkxfU1RBVElDMSB8IENN X0NUUkxfU1RBVElDMjsNCisJdTMyIHZhbCA9IENNX0NUUkxfU1RBVElDMSB8IENNX0NUUkxfU1RB VElDMg0KKwkJCXwgQ01fQ1RSTF9MQ0RFTjAgfCBDTV9DVFJMX0xDREVOMTsNCiANCiAJaWYgKHZh ci0+Yml0c19wZXJfcGl4ZWwgPD0gOCB8fA0KIAkgICAgKHZhci0+Yml0c19wZXJfcGl4ZWwgPT0g MTYgJiYgdmFyLT5ncmVlbi5sZW5ndGggPT0gNSkpDQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFj aC1weGEvcmVzZXQuYyBiL2FyY2gvYXJtL21hY2gtcHhhL3Jlc2V0LmMNCmluZGV4IDAxZTlkNjQu LjBlMjUzNDggMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9yZXNldC5jDQorKysgYi9h cmNoL2FybS9tYWNoLXB4YS9yZXNldC5jDQpAQCAtMTIsNiArMTIsNyBAQA0KIA0KICNpbmNsdWRl IDxtYWNoL3JlZ3Mtb3N0Lmg+DQogI2luY2x1ZGUgPG1hY2gvcmVzZXQuaD4NCisjaW5jbHVkZSA8 bWFjaC9zbWVtYy5oPg0KIA0KIHVuc2lnbmVkIGludCByZXNldF9zdGF0dXM7DQogRVhQT1JUX1NZ TUJPTChyZXNldF9zdGF0dXMpOw0KQEAgLTc5LDYgKzgwLDEyIEBAIHN0YXRpYyB2b2lkIGRvX2h3 X3Jlc2V0KHZvaWQpDQogCU9XRVIgPSBPV0VSX1dNRTsNCiAJT1NTUiA9IE9TU1JfTTM7DQogCU9T TVIzID0gT1NDUiArIDM2ODY0MDsJLyogLi4uIGluIDEwMCBtcyAqLw0KKwkvKg0KKwkgKiBTRFJB TSBoYW5ncyBvbiB3YXRjaGRvZyByZXNldCBvbiBNYXJ2ZWxsIFBYQTI3MCAoZXJyYXR1bSA3MSkN CisJICogd2UgcHV0IFNEUkFNIGludG8gc2VsZi1yZWZyZXNoIHRvIHByZXZlbnQgdGhhdA0KKwkg Ki8NCisJd2hpbGUgKDEpDQorCQl3cml0ZWxfcmVsYXhlZChNRFJFRlJfU0xGUlNILCBNRFJFRlIp Ow0KIH0NCiANCiB2b2lkIGFyY2hfcmVzZXQoY2hhciBtb2RlLCBjb25zdCBjaGFyICpjbWQpDQpA QCAtOTksNCArMTA2LDMgQEAgdm9pZCBhcmNoX3Jlc2V0KGNoYXIgbW9kZSwgY29uc3QgY2hhciAq Y21kKQ0KIAkJYnJlYWs7DQogCX0NCiB9DQotDQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1w eGEvdG9zYS5jIGIvYXJjaC9hcm0vbWFjaC1weGEvdG9zYS5jDQppbmRleCA0MDJiMGM5Ni4uMzNk ZDU3YyAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3Rvc2EuYw0KKysrIGIvYXJjaC9h cm0vbWFjaC1weGEvdG9zYS5jDQpAQCAtNDI0LDU3ICs0MjQsNTcgQEAgc3RhdGljIHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgdG9zYV9wb3dlcl9kZXZpY2UgPSB7DQogICogVG9zYSBLZXlib2FyZA0K ICAqLw0KIHN0YXRpYyBjb25zdCB1aW50MzJfdCB0b3Nha2JkX2tleW1hcFtdID0gew0KLQlLRVko MCwgMiwgS0VZX1cpLA0KLQlLRVkoMCwgNiwgS0VZX0spLA0KLQlLRVkoMCwgNywgS0VZX0JBQ0tT UEFDRSksDQotCUtFWSgwLCA4LCBLRVlfUCksDQotCUtFWSgxLCAxLCBLRVlfUSksDQotCUtFWSgx LCAyLCBLRVlfRSksDQotCUtFWSgxLCAzLCBLRVlfVCksDQotCUtFWSgxLCA0LCBLRVlfWSksDQot CUtFWSgxLCA2LCBLRVlfTyksDQotCUtFWSgxLCA3LCBLRVlfSSksDQotCUtFWSgxLCA4LCBLRVlf Q09NTUEpLA0KLQlLRVkoMiwgMSwgS0VZX0EpLA0KLQlLRVkoMiwgMiwgS0VZX0QpLA0KLQlLRVko MiwgMywgS0VZX0cpLA0KLQlLRVkoMiwgNCwgS0VZX1UpLA0KLQlLRVkoMiwgNiwgS0VZX0wpLA0K LQlLRVkoMiwgNywgS0VZX0VOVEVSKSwNCi0JS0VZKDIsIDgsIEtFWV9ET1QpLA0KLQlLRVkoMywg MSwgS0VZX1opLA0KLQlLRVkoMywgMiwgS0VZX0MpLA0KLQlLRVkoMywgMywgS0VZX1YpLA0KLQlL RVkoMywgNCwgS0VZX0opLA0KLQlLRVkoMywgNSwgVE9TQV9LRVlfQUREUkVTU0JPT0spLA0KLQlL RVkoMywgNiwgVE9TQV9LRVlfQ0FOQ0VMKSwNCi0JS0VZKDMsIDcsIFRPU0FfS0VZX0NFTlRFUiks DQotCUtFWSgzLCA4LCBUT1NBX0tFWV9PSyksDQotCUtFWSgzLCA5LCBLRVlfTEVGVFNISUZUKSwN Ci0JS0VZKDQsIDEsIEtFWV9TKSwNCi0JS0VZKDQsIDIsIEtFWV9SKSwNCi0JS0VZKDQsIDMsIEtF WV9CKSwNCi0JS0VZKDQsIDQsIEtFWV9OKSwNCi0JS0VZKDQsIDUsIFRPU0FfS0VZX0NBTEVOREFS KSwNCi0JS0VZKDQsIDYsIFRPU0FfS0VZX0hPTUVQQUdFKSwNCi0JS0VZKDQsIDcsIEtFWV9MRUZU Q1RSTCksDQotCUtFWSg0LCA4LCBUT1NBX0tFWV9MSUdIVCksDQotCUtFWSg0LCAxMCwgS0VZX1JJ R0hUU0hJRlQpLA0KLQlLRVkoNSwgMSwgS0VZX1RBQiksDQotCUtFWSg1LCAyLCBLRVlfU0xBU0gp LA0KLQlLRVkoNSwgMywgS0VZX0gpLA0KLQlLRVkoNSwgNCwgS0VZX00pLA0KLQlLRVkoNSwgNSwg VE9TQV9LRVlfTUVOVSksDQotCUtFWSg1LCA3LCBLRVlfVVApLA0KLQlLRVkoNSwgMTEsIFRPU0Ff S0VZX0ZOKSwNCi0JS0VZKDYsIDEsIEtFWV9YKSwNCi0JS0VZKDYsIDIsIEtFWV9GKSwNCi0JS0VZ KDYsIDMsIEtFWV9TUEFDRSksDQotCUtFWSg2LCA0LCBLRVlfQVBPU1RST1BIRSksDQotCUtFWSg2 LCA1LCBUT1NBX0tFWV9NQUlMKSwNCi0JS0VZKDYsIDYsIEtFWV9MRUZUKSwNCi0JS0VZKDYsIDcs IEtFWV9ET1dOKSwNCi0JS0VZKDYsIDgsIEtFWV9SSUdIVCksDQorCUtFWSgwLCAxLCBLRVlfVyks DQorCUtFWSgwLCA1LCBLRVlfSyksDQorCUtFWSgwLCA2LCBLRVlfQkFDS1NQQUNFKSwNCisJS0VZ KDAsIDcsIEtFWV9QKSwNCisJS0VZKDEsIDAsIEtFWV9RKSwNCisJS0VZKDEsIDEsIEtFWV9FKSwN CisJS0VZKDEsIDIsIEtFWV9UKSwNCisJS0VZKDEsIDMsIEtFWV9ZKSwNCisJS0VZKDEsIDUsIEtF WV9PKSwNCisJS0VZKDEsIDYsIEtFWV9JKSwNCisJS0VZKDEsIDcsIEtFWV9DT01NQSksDQorCUtF WSgyLCAwLCBLRVlfQSksDQorCUtFWSgyLCAxLCBLRVlfRCksDQorCUtFWSgyLCAyLCBLRVlfRyks DQorCUtFWSgyLCAzLCBLRVlfVSksDQorCUtFWSgyLCA1LCBLRVlfTCksDQorCUtFWSgyLCA2LCBL RVlfRU5URVIpLA0KKwlLRVkoMiwgNywgS0VZX0RPVCksDQorCUtFWSgzLCAwLCBLRVlfWiksDQor CUtFWSgzLCAxLCBLRVlfQyksDQorCUtFWSgzLCAyLCBLRVlfViksDQorCUtFWSgzLCAzLCBLRVlf SiksDQorCUtFWSgzLCA0LCBUT1NBX0tFWV9BRERSRVNTQk9PSyksDQorCUtFWSgzLCA1LCBUT1NB X0tFWV9DQU5DRUwpLA0KKwlLRVkoMywgNiwgVE9TQV9LRVlfQ0VOVEVSKSwNCisJS0VZKDMsIDcs IFRPU0FfS0VZX09LKSwNCisJS0VZKDMsIDgsIEtFWV9MRUZUU0hJRlQpLA0KKwlLRVkoNCwgMCwg S0VZX1MpLA0KKwlLRVkoNCwgMSwgS0VZX1IpLA0KKwlLRVkoNCwgMiwgS0VZX0IpLA0KKwlLRVko NCwgMywgS0VZX04pLA0KKwlLRVkoNCwgNCwgVE9TQV9LRVlfQ0FMRU5EQVIpLA0KKwlLRVkoNCwg NSwgVE9TQV9LRVlfSE9NRVBBR0UpLA0KKwlLRVkoNCwgNiwgS0VZX0xFRlRDVFJMKSwNCisJS0VZ KDQsIDcsIFRPU0FfS0VZX0xJR0hUKSwNCisJS0VZKDQsIDksIEtFWV9SSUdIVFNISUZUKSwNCisJ S0VZKDUsIDAsIEtFWV9UQUIpLA0KKwlLRVkoNSwgMSwgS0VZX1NMQVNIKSwNCisJS0VZKDUsIDIs IEtFWV9IKSwNCisJS0VZKDUsIDMsIEtFWV9NKSwNCisJS0VZKDUsIDQsIFRPU0FfS0VZX01FTlUp LA0KKwlLRVkoNSwgNiwgS0VZX1VQKSwNCisJS0VZKDUsIDEwLCBUT1NBX0tFWV9GTiksDQorCUtF WSg2LCAwLCBLRVlfWCksDQorCUtFWSg2LCAxLCBLRVlfRiksDQorCUtFWSg2LCAyLCBLRVlfU1BB Q0UpLA0KKwlLRVkoNiwgMywgS0VZX0FQT1NUUk9QSEUpLA0KKwlLRVkoNiwgNCwgVE9TQV9LRVlf TUFJTCksDQorCUtFWSg2LCA1LCBLRVlfTEVGVCksDQorCUtFWSg2LCA2LCBLRVlfRE9XTiksDQor CUtFWSg2LCA3LCBLRVlfUklHSFQpLA0KIH07DQogDQogc3RhdGljIHN0cnVjdCBtYXRyaXhfa2V5 bWFwX2RhdGEgdG9zYWtiZF9rZXltYXBfZGF0YSA9IHsNCmRpZmYgLS1naXQgYS9hcmNoL2FybS9t YWNoLXNhMTEwMC9hc3NhYmV0LmMgYi9hcmNoL2FybS9tYWNoLXNhMTEwMC9hc3NhYmV0LmMNCmlu ZGV4IDNkZDEzM2YuLmVmOGQ5ZDggMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9tYWNoLXNhMTEwMC9h c3NhYmV0LmMNCisrKyBiL2FyY2gvYXJtL21hY2gtc2ExMTAwL2Fzc2FiZXQuYw0KQEAgLTQxMSw2 ICs0MTEsOSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYXNzYWJldF9tYXBfaW8odm9pZCkNCiAJICog SXRzIGNhbGxlZCBHUENMS1IwIGluIG15IFNBMTExMCBtYW51YWwuDQogCSAqLw0KIAlTZXIxU0RD UjAgfD0gU0RDUjBfU1VTOw0KKwlNU0MxID0gKE1TQzEgJiB+MHhmZmZmKSB8DQorCQlNU0NfTm9u QnJzdCB8IE1TQ18zMkJpdFN0TWVtIHwNCisJCU1TQ19SZEFjYygyKSB8IE1TQ19XckFjYygyKSB8 IE1TQ19SZWMoMCk7DQogDQogCWlmIChtYWNoaW5lX2hhc19uZXBvbnNldCgpKSB7DQogI2lmZGVm IENPTkZJR19BU1NBQkVUX05FUE9OU0VUDQpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9ib290L3Ut Ym9vdC9oZWFkLlMgYi9hcmNoL2F2cjMyL2Jvb3QvdS1ib290L2hlYWQuUw0KaW5kZXggNDQ4OGZh Mi4uMmZmYzI5OCAxMDA2NDQNCi0tLSBhL2FyY2gvYXZyMzIvYm9vdC91LWJvb3QvaGVhZC5TDQor KysgYi9hcmNoL2F2cjMyL2Jvb3QvdS1ib290L2hlYWQuUw0KQEAgLTgsNiArOCw4IEBADQogICog cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQogICovDQogI2luY2x1 ZGUgPGFzbS9zZXR1cC5oPg0KKyNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8uaD4NCisjaW5jbHVk ZSA8YXNtL3N5c3JlZy5oPg0KIA0KIAkvKg0KIAkgKiBUaGUga2VybmVsIGlzIGxvYWRlZCB3aGVy ZSB3ZSB3YW50IGl0IHRvIGJlIGFuZCBhbGwgY2FjaGVzDQpAQCAtMjAsMTEgKzIyLDYgQEANCiAJ LnNlY3Rpb24gLmluaXQudGV4dCwiYXgiDQogCS5nbG9iYWwgX3N0YXJ0DQogX3N0YXJ0Og0KLQkv KiBDaGVjayBpZiB0aGUgYm9vdCBsb2FkZXIgYWN0dWFsbHkgcHJvdmlkZWQgYSB0YWcgdGFibGUg Ki8NCi0JbGRkcGMJcjAsIG1hZ2ljX251bWJlcg0KLQljcC53CXIxMiwgcjANCi0JYnJuZQlub190 YWdfdGFibGUNCi0NCiAJLyogSW5pdGlhbGl6ZSAuYnNzICovDQogCWxkZHBjCXIyLCBic3Nfc3Rh cnRfYWRkcg0KIAlsZGRwYyAgIHIzLCBlbmRfYWRkcg0KQEAgLTM0LDYgKzMxLDI1IEBAIF9zdGFy dDoNCiAJY3AgICAgICByMiwgcjMNCiAJYnJsbyAgICAxYg0KIA0KKwkvKiBJbml0aWFsaXplIHN0 YXR1cyByZWdpc3RlciAqLw0KKwlsZGRwYwlyMCwgaW5pdF9zcg0KKwltdHNyCVNZU1JFR19TUiwg cjANCisNCisJLyogU2V0IGluaXRpYWwgc3RhY2sgcG9pbnRlciAqLw0KKwlsZGRwYwlzcCwgc3Rh Y2tfYWRkcg0KKwlzdWIJc3AsIC1USFJFQURfU0laRQ0KKw0KKyNpZmRlZiBDT05GSUdfRlJBTUVf UE9JTlRFUg0KKwkvKiBNYXJrIGxhc3Qgc3RhY2sgZnJhbWUgKi8NCisJbW92CWxyLCAwDQorCW1v dglyNywgMA0KKyNlbmRpZg0KKw0KKwkvKiBDaGVjayBpZiB0aGUgYm9vdCBsb2FkZXIgYWN0dWFs bHkgcHJvdmlkZWQgYSB0YWcgdGFibGUgKi8NCisJbGRkcGMJcjAsIG1hZ2ljX251bWJlcg0KKwlj cC53CXIxMiwgcjANCisJYnJuZQlub190YWdfdGFibGUNCisNCiAJLyoNCiAJICogU2F2ZSB0aGUg dGFnIHRhYmxlIGFkZHJlc3MgZm9yIGxhdGVyIHVzZS4gVGhpcyBtdXN0IGJlIGRvbmUNCiAJICog X2FmdGVyXyAuYnNzIGhhcyBiZWVuIGluaXRpYWxpemVkLi4uDQpAQCAtNTMsOCArNjksMTUgQEAg YnNzX3N0YXJ0X2FkZHI6DQogCS5sb25nICAgX19ic3Nfc3RhcnQNCiBlbmRfYWRkcjoNCiAJLmxv bmcgICBfZW5kDQoraW5pdF9zcjoNCisJLmxvbmcJMHgwMDdmMDAwMAkvKiBTdXBlcnZpc29yIG1v ZGUsIGV2ZXJ5dGhpbmcgbWFza2VkICovDQorc3RhY2tfYWRkcjoNCisJLmxvbmcJaW5pdF90aHJl YWRfdW5pb24NCitwYW5pY19hZGRyOg0KKwkubG9uZwlwYW5pYw0KIA0KIG5vX3RhZ190YWJsZToN CiAJc3ViCXIxMiwgcGMsICguIC0gMmYpDQotCWJyYWwJcGFuaWMNCisJLyogYnJhbmNoIHRvIHBh bmljKCkgd2hpY2ggY2FuIGJlIGZhciBhd2F5IHdpdGggdGhhdCBjb25zdHJ1Y3QgKi8NCisJbGRk cGMJcGMsIHBhbmljX2FkZHINCiAyOgkuYXNjaXoJIkJvb3QgbG9hZGVyIGRpZG4ndCBwcm92aWRl IGNvcnJlY3QgbWFnaWMgbnVtYmVyXG4iDQpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9rZXJuZWwv ZW50cnktYXZyMzJiLlMgYi9hcmNoL2F2cjMyL2tlcm5lbC9lbnRyeS1hdnIzMmIuUw0KaW5kZXgg MTY5MjY4Yy4uYTkxZTg5OCAxMDA2NDQNCi0tLSBhL2FyY2gvYXZyMzIva2VybmVsL2VudHJ5LWF2 cjMyYi5TDQorKysgYi9hcmNoL2F2cjMyL2tlcm5lbC9lbnRyeS1hdnIzMmIuUw0KQEAgLTM5OSw5 ICszOTksMTAgQEAgaGFuZGxlX2NyaXRpY2FsOg0KIAkvKiBXZSBzaG91bGQgbmV2ZXIgZ2V0IGhl cmUuLi4gKi8NCiBiYWRfcmV0dXJuOg0KIAlzdWIJcjEyLCBwYywgKC4gLSAxZikNCi0JYnJhbAlw YW5pYw0KKwlsZGRwYwlwYywgMmYNCiAJLmFsaWduCTINCiAxOgkuYXNjaXoJIlJldHVybiBmcm9t IGNyaXRpY2FsIGV4Y2VwdGlvbiEiDQorMjoJLmxvbmcJcGFuaWMNCiANCiAJLmFsaWduCTENCiBk b19idXNfZXJyb3Jfd3JpdGU6DQpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9rZXJuZWwvaGVhZC5T IGIvYXJjaC9hdnIzMi9rZXJuZWwvaGVhZC5TDQppbmRleCA2MTYzYmQwLi41OWVhZTZkIDEwMDY0 NA0KLS0tIGEvYXJjaC9hdnIzMi9rZXJuZWwvaGVhZC5TDQorKysgYi9hcmNoL2F2cjMyL2tlcm5l bC9oZWFkLlMNCkBAIC0xMCwzMyArMTAsMTMgQEANCiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5o Pg0KIA0KICNpbmNsdWRlIDxhc20vcGFnZS5oPg0KLSNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8u aD4NCi0jaW5jbHVkZSA8YXNtL3N5c3JlZy5oPg0KIA0KIAkuc2VjdGlvbiAuaW5pdC50ZXh0LCJh eCINCiAJLmdsb2JhbCBrZXJuZWxfZW50cnkNCiBrZXJuZWxfZW50cnk6DQotCS8qIEluaXRpYWxp emUgc3RhdHVzIHJlZ2lzdGVyICovDQotCWxkZHBjICAgcjAsIGluaXRfc3INCi0JbXRzcglTWVNS RUdfU1IsIHIwDQotDQotCS8qIFNldCBpbml0aWFsIHN0YWNrIHBvaW50ZXIgKi8NCi0JbGRkcGMg ICBzcCwgc3RhY2tfYWRkcg0KLQlzdWIJc3AsIC1USFJFQURfU0laRQ0KLQ0KLSNpZmRlZiBDT05G SUdfRlJBTUVfUE9JTlRFUg0KLQkvKiBNYXJrIGxhc3Qgc3RhY2sgZnJhbWUgKi8NCi0JbW92CWxy LCAwDQotCW1vdglyNywgMA0KLSNlbmRpZg0KLQ0KIAkvKiBTdGFydCB0aGUgc2hvdyAqLw0KIAls ZGRwYyAgIHBjLCBrZXJuZWxfc3RhcnRfYWRkcg0KIA0KIAkuYWxpZ24gIDINCi1pbml0X3NyOg0K LQkubG9uZyAgIDB4MDA3ZjAwMDAJLyogU3VwZXJ2aXNvciBtb2RlLCBldmVyeXRoaW5nIG1hc2tl ZCAqLw0KLXN0YWNrX2FkZHI6DQotCS5sb25nICAgaW5pdF90aHJlYWRfdW5pb24NCiBrZXJuZWxf c3RhcnRfYWRkcjoNCiAJLmxvbmcgICBzdGFydF9rZXJuZWwNCmRpZmYgLS1naXQgYS9hcmNoL2Ny aXMvaW5jbHVkZS9hc20vaW8uaCBiL2FyY2gvY3Jpcy9pbmNsdWRlL2FzbS9pby5oDQppbmRleCBh YzEyYWUyLi5kYjlhMTZjIDEwMDY0NA0KLS0tIGEvYXJjaC9jcmlzL2luY2x1ZGUvYXNtL2lvLmgN CisrKyBiL2FyY2gvY3Jpcy9pbmNsdWRlL2FzbS9pby5oDQpAQCAtMyw2ICszLDcgQEANCiANCiAj aW5jbHVkZSA8YXNtL3BhZ2UuaD4gICAvKiBmb3IgX192YSwgX19wYSAqLw0KICNpbmNsdWRlIDxh cmNoL2lvLmg+DQorI2luY2x1ZGUgPGFzbS1nZW5lcmljL2lvbWFwLmg+DQogI2luY2x1ZGUgPGxp bnV4L2tlcm5lbC5oPg0KIA0KIHN0cnVjdCBjcmlzX2lvX29wZXJhdGlvbnMNCmRpZmYgLS1naXQg YS9hcmNoL2lhNjQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmggYi9hcmNoL2lhNjQvaW5jbHVkZS9h c20vcHJvY2Vzc29yLmgNCmluZGV4IGQ5ZjM5N2YuLmZiYTc2OTYgMTAwNjQ0DQotLS0gYS9hcmNo L2lhNjQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgNCisrKyBiL2FyY2gvaWE2NC9pbmNsdWRlL2Fz bS9wcm9jZXNzb3IuaA0KQEAgLTMyMCw3ICszMjAsNyBAQCBzdHJ1Y3QgdGhyZWFkX3N0cnVjdCB7 DQogCXJlZ3MtPmxvYWRycyA9IDA7CQkJCQkJCQkJXA0KIAlyZWdzLT5yOCA9IGdldF9kdW1wYWJs ZShjdXJyZW50LT5tbSk7CS8qIHNldCAiZG9uJ3QgemFwIHJlZ2lzdGVycyIgZmxhZyAqLwkJXA0K IAlyZWdzLT5yMTIgPSBuZXdfc3AgLSAxNjsJLyogYWxsb2NhdGUgMTYgYnl0ZSBzY3JhdGNoIGFy ZWEgKi8JCQlcDQotCWlmICh1bmxpa2VseSghZ2V0X2R1bXBhYmxlKGN1cnJlbnQtPm1tKSkpIHsJ CQkJCQkJXA0KKwlpZiAodW5saWtlbHkoZ2V0X2R1bXBhYmxlKGN1cnJlbnQtPm1tKSAhPSBTVUlE X0RVTVBfVVNFUikpIHsJXA0KIAkJLyoJCQkJCQkJCQkJXA0KIAkJICogWmFwIHNjcmF0Y2ggcmVn cyB0byBhdm9pZCBsZWFraW5nIGJpdHMgYmV0d2VlbiBwcm9jZXNzZXMgd2l0aCBkaWZmZXJlbnQJ XA0KIAkJICogdWlkL3ByaXZpbGVnZXMuCQkJCQkJCQlcDQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dl cnBjL2tlcm5lbC9zaWduYWxfMzIuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2lnbmFsXzMyLmMN CmluZGV4IDgzNmE1YTEuLmZhMWU1NmIgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVs L3NpZ25hbF8zMi5jDQorKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3NpZ25hbF8zMi5jDQpAQCAt NDQ1LDYgKzQ0NSwxMiBAQCBzdGF0aWMgaW50IHNhdmVfdXNlcl9yZWdzKHN0cnVjdCBwdF9yZWdz ICpyZWdzLCBzdHJ1Y3QgbWNvbnRleHQgX191c2VyICpmcmFtZSwNCiAjZW5kaWYgLyogQ09ORklH X0FMVElWRUMgKi8NCiAJaWYgKGNvcHlfZnByX3RvX3VzZXIoJmZyYW1lLT5tY19mcmVncywgY3Vy cmVudCkpDQogCQlyZXR1cm4gMTsNCisNCisJLyoNCisJICogQ2xlYXIgdGhlIE1TUiBWU1ggYml0 IHRvIGluZGljYXRlIHRoZXJlIGlzIG5vIHZhbGlkIHN0YXRlIGF0dGFjaGVkDQorCSAqIHRvIHRo aXMgY29udGV4dCwgZXhjZXB0IGluIHRoZSBzcGVjaWZpYyBjYXNlIGJlbG93IHdoZXJlIHdlIHNl dCBpdC4NCisJICovDQorCW1zciAmPSB+TVNSX1ZTWDsNCiAjaWZkZWYgQ09ORklHX1ZTWA0KIAkv Kg0KIAkgKiBDb3B5IFZTUiAwLTMxIHVwcGVyIGhhbGYgZnJvbSB0aHJlYWRfc3RydWN0IHRvIGxv Y2FsDQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9zaWduYWxfNjQuYyBiL2FyY2gv cG93ZXJwYy9rZXJuZWwvc2lnbmFsXzY0LmMNCmluZGV4IGE1MGI1ZWMuLjYwZDFmNzUgMTAwNjQ0 DQotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3NpZ25hbF82NC5jDQorKysgYi9hcmNoL3Bvd2Vy cGMva2VybmVsL3NpZ25hbF82NC5jDQpAQCAtMTE2LDYgKzExNiwxMiBAQCBzdGF0aWMgbG9uZyBz ZXR1cF9zaWdjb250ZXh0KHN0cnVjdCBzaWdjb250ZXh0IF9fdXNlciAqc2MsIHN0cnVjdCBwdF9y ZWdzICpyZWdzLA0KIAlmbHVzaF9mcF90b190aHJlYWQoY3VycmVudCk7DQogCS8qIGNvcHkgZnBy IHJlZ3MgYW5kIGZwc2NyICovDQogCWVyciB8PSBjb3B5X2Zwcl90b191c2VyKCZzYy0+ZnBfcmVn cywgY3VycmVudCk7DQorDQorCS8qDQorCSAqIENsZWFyIHRoZSBNU1IgVlNYIGJpdCB0byBpbmRp Y2F0ZSB0aGVyZSBpcyBubyB2YWxpZCBzdGF0ZSBhdHRhY2hlZA0KKwkgKiB0byB0aGlzIGNvbnRl eHQsIGV4Y2VwdCBpbiB0aGUgc3BlY2lmaWMgY2FzZSBiZWxvdyB3aGVyZSB3ZSBzZXQgaXQuDQor CSAqLw0KKwltc3IgJj0gfk1TUl9WU1g7DQogI2lmZGVmIENPTkZJR19WU1gNCiAJLyoNCiAJICog Q29weSBWU1ggbG93IGRvdWJsZXdvcmQgdG8gbG9jYWwgYnVmZmVyIGZvciBmb3JtYXR0aW5nLA0K ZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdGltZS5jIGIvYXJjaC9wb3dlcnBjL2tl cm5lbC90aW1lLmMNCmluZGV4IGU3NGY4NmUuLjMwNDY4MGEgMTAwNjQ0DQotLS0gYS9hcmNoL3Bv d2VycGMva2VybmVsL3RpbWUuYw0KKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC90aW1lLmMNCkBA IC0yMzUsOCArMjM1LDYgQEAgc3RhdGljIHU2NCBzY2FuX2Rpc3BhdGNoX2xvZyh1NjQgc3RvcF90 YikNCiAJaWYgKGkgPT0gdnBhLT5kdGxfaWR4KQ0KIAkJcmV0dXJuIDA7DQogCXdoaWxlIChpIDwg dnBhLT5kdGxfaWR4KSB7DQotCQlpZiAoZHRsX2NvbnN1bWVyKQ0KLQkJCWR0bF9jb25zdW1lcihk dGwsIGkpOw0KIAkJZHRiID0gZHRsLT50aW1lYmFzZTsNCiAJCXRiX2RlbHRhID0gZHRsLT5lbnF1 ZXVlX3RvX2Rpc3BhdGNoX3RpbWUgKw0KIAkJCWR0bC0+cmVhZHlfdG9fZW5xdWV1ZV90aW1lOw0K QEAgLTI0OSw2ICsyNDcsOCBAQCBzdGF0aWMgdTY0IHNjYW5fZGlzcGF0Y2hfbG9nKHU2NCBzdG9w X3RiKQ0KIAkJfQ0KIAkJaWYgKGR0YiA+IHN0b3BfdGIpDQogCQkJYnJlYWs7DQorCQlpZiAoZHRs X2NvbnN1bWVyKQ0KKwkJCWR0bF9jb25zdW1lcihkdGwsIGkpOw0KIAkJc3RvbGVuICs9IHRiX2Rl bHRhOw0KIAkJKytpOw0KIAkJKytkdGw7DQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5l bC92aW8uYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdmlvLmMNCmluZGV4IGY2NWFmNjEuLmRmYjFj MTkgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3Zpby5jDQorKysgYi9hcmNoL3Bv d2VycGMva2VybmVsL3Zpby5jDQpAQCAtMTM1MSwxMSArMTM1MSwxNSBAQCBzdGF0aWMgc3NpemVf dCBtb2RhbGlhc19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1 dGUgKmF0dHIsDQogCWNvbnN0IGNoYXIgKmNwOw0KIA0KIAlkbiA9IGRldi0+b2Zfbm9kZTsNCi0J aWYgKCFkbikNCi0JCXJldHVybiAtRU5PREVWOw0KKwlpZiAoIWRuKSB7DQorCQlzdHJjcHkoYnVm LCAiXG4iKTsNCisJCXJldHVybiBzdHJsZW4oYnVmKTsNCisJfQ0KIAljcCA9IG9mX2dldF9wcm9w ZXJ0eShkbiwgImNvbXBhdGlibGUiLCBOVUxMKTsNCi0JaWYgKCFjcCkNCi0JCXJldHVybiAtRU5P REVWOw0KKwlpZiAoIWNwKSB7DQorCQlzdHJjcHkoYnVmLCAiXG4iKTsNCisJCXJldHVybiBzdHJs ZW4oYnVmKTsNCisJfQ0KIA0KIAlyZXR1cm4gc3ByaW50ZihidWYsICJ2aW86VCVzUyVzXG4iLCB2 aW9fZGV2LT50eXBlLCBjcCk7DQogfQ0KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9jcnlwdG8vYWVz X3MzOTAuYyBiL2FyY2gvczM5MC9jcnlwdG8vYWVzX3MzOTAuYw0KaW5kZXggYTljZTEzNS4uM2Vj OGIzOSAxMDA2NDQNCi0tLSBhL2FyY2gvczM5MC9jcnlwdG8vYWVzX3MzOTAuYw0KKysrIGIvYXJj aC9zMzkwL2NyeXB0by9hZXNfczM5MC5jDQpAQCAtMzUsNyArMzUsNiBAQCBzdGF0aWMgdTggKmN0 cmJsazsNCiBzdGF0aWMgY2hhciBrZXlsZW5fZmxhZzsNCiANCiBzdHJ1Y3QgczM5MF9hZXNfY3R4 IHsNCi0JdTggaXZbQUVTX0JMT0NLX1NJWkVdOw0KIAl1OCBrZXlbQUVTX01BWF9LRVlfU0laRV07 DQogCWxvbmcgZW5jOw0KIAlsb25nIGRlYzsNCkBAIC01Niw4ICs1NSw3IEBAIHN0cnVjdCBwY2Nf cGFyYW0gew0KIA0KIHN0cnVjdCBzMzkwX3h0c19jdHggew0KIAl1OCBrZXlbMzJdOw0KLQl1OCB4 dHNfcGFyYW1bMTZdOw0KLQlzdHJ1Y3QgcGNjX3BhcmFtIHBjYzsNCisJdTggcGNjX2tleVszMl07 DQogCWxvbmcgZW5jOw0KIAlsb25nIGRlYzsNCiAJaW50IGtleV9sZW47DQpAQCAtNDQyLDI5ICs0 NDAsMzUgQEAgc3RhdGljIGludCBjYmNfYWVzX3NldF9rZXkoc3RydWN0IGNyeXB0b190Zm0gKnRm bSwgY29uc3QgdTggKmluX2tleSwNCiAJcmV0dXJuIGFlc19zZXRfa2V5KHRmbSwgaW5fa2V5LCBr ZXlfbGVuKTsNCiB9DQogDQotc3RhdGljIGludCBjYmNfYWVzX2NyeXB0KHN0cnVjdCBibGtjaXBo ZXJfZGVzYyAqZGVzYywgbG9uZyBmdW5jLCB2b2lkICpwYXJhbSwNCitzdGF0aWMgaW50IGNiY19h ZXNfY3J5cHQoc3RydWN0IGJsa2NpcGhlcl9kZXNjICpkZXNjLCBsb25nIGZ1bmMsDQogCQkJIHN0 cnVjdCBibGtjaXBoZXJfd2FsayAqd2FsaykNCiB7DQorCXN0cnVjdCBzMzkwX2Flc19jdHggKnNj dHggPSBjcnlwdG9fYmxrY2lwaGVyX2N0eChkZXNjLT50Zm0pOw0KIAlpbnQgcmV0ID0gYmxrY2lw aGVyX3dhbGtfdmlydChkZXNjLCB3YWxrKTsNCiAJdW5zaWduZWQgaW50IG5ieXRlcyA9IHdhbGst Pm5ieXRlczsNCisJc3RydWN0IHsNCisJCXU4IGl2W0FFU19CTE9DS19TSVpFXTsNCisJCXU4IGtl eVtBRVNfTUFYX0tFWV9TSVpFXTsNCisJfSBwYXJhbTsNCiANCiAJaWYgKCFuYnl0ZXMpDQogCQln b3RvIG91dDsNCiANCi0JbWVtY3B5KHBhcmFtLCB3YWxrLT5pdiwgQUVTX0JMT0NLX1NJWkUpOw0K KwltZW1jcHkocGFyYW0uaXYsIHdhbGstPml2LCBBRVNfQkxPQ0tfU0laRSk7DQorCW1lbWNweShw YXJhbS5rZXksIHNjdHgtPmtleSwgc2N0eC0+a2V5X2xlbik7DQogCWRvIHsNCiAJCS8qIG9ubHkg dXNlIGNvbXBsZXRlIGJsb2NrcyAqLw0KIAkJdW5zaWduZWQgaW50IG4gPSBuYnl0ZXMgJiB+KEFF U19CTE9DS19TSVpFIC0gMSk7DQogCQl1OCAqb3V0ID0gd2Fsay0+ZHN0LnZpcnQuYWRkcjsNCiAJ CXU4ICppbiA9IHdhbGstPnNyYy52aXJ0LmFkZHI7DQogDQotCQlyZXQgPSBjcnlwdF9zMzkwX2tt YyhmdW5jLCBwYXJhbSwgb3V0LCBpbiwgbik7DQorCQlyZXQgPSBjcnlwdF9zMzkwX2ttYyhmdW5j LCAmcGFyYW0sIG91dCwgaW4sIG4pOw0KIAkJQlVHX09OKChyZXQgPCAwKSB8fCAocmV0ICE9IG4p KTsNCiANCiAJCW5ieXRlcyAmPSBBRVNfQkxPQ0tfU0laRSAtIDE7DQogCQlyZXQgPSBibGtjaXBo ZXJfd2Fsa19kb25lKGRlc2MsIHdhbGssIG5ieXRlcyk7DQogCX0gd2hpbGUgKChuYnl0ZXMgPSB3 YWxrLT5uYnl0ZXMpKTsNCi0JbWVtY3B5KHdhbGstPml2LCBwYXJhbSwgQUVTX0JMT0NLX1NJWkUp Ow0KKwltZW1jcHkod2Fsay0+aXYsIHBhcmFtLml2LCBBRVNfQkxPQ0tfU0laRSk7DQogDQogb3V0 Og0KIAlyZXR1cm4gcmV0Ow0KQEAgLTQ4MSw3ICs0ODUsNyBAQCBzdGF0aWMgaW50IGNiY19hZXNf ZW5jcnlwdChzdHJ1Y3QgYmxrY2lwaGVyX2Rlc2MgKmRlc2MsDQogCQlyZXR1cm4gZmFsbGJhY2tf YmxrX2VuYyhkZXNjLCBkc3QsIHNyYywgbmJ5dGVzKTsNCiANCiAJYmxrY2lwaGVyX3dhbGtfaW5p dCgmd2FsaywgZHN0LCBzcmMsIG5ieXRlcyk7DQotCXJldHVybiBjYmNfYWVzX2NyeXB0KGRlc2Ms IHNjdHgtPmVuYywgc2N0eC0+aXYsICZ3YWxrKTsNCisJcmV0dXJuIGNiY19hZXNfY3J5cHQoZGVz Yywgc2N0eC0+ZW5jLCAmd2Fsayk7DQogfQ0KIA0KIHN0YXRpYyBpbnQgY2JjX2Flc19kZWNyeXB0 KHN0cnVjdCBibGtjaXBoZXJfZGVzYyAqZGVzYywNCkBAIC00OTUsNyArNDk5LDcgQEAgc3RhdGlj IGludCBjYmNfYWVzX2RlY3J5cHQoc3RydWN0IGJsa2NpcGhlcl9kZXNjICpkZXNjLA0KIAkJcmV0 dXJuIGZhbGxiYWNrX2Jsa19kZWMoZGVzYywgZHN0LCBzcmMsIG5ieXRlcyk7DQogDQogCWJsa2Np cGhlcl93YWxrX2luaXQoJndhbGssIGRzdCwgc3JjLCBuYnl0ZXMpOw0KLQlyZXR1cm4gY2JjX2Fl c19jcnlwdChkZXNjLCBzY3R4LT5kZWMsIHNjdHgtPml2LCAmd2Fsayk7DQorCXJldHVybiBjYmNf YWVzX2NyeXB0KGRlc2MsIHNjdHgtPmRlYywgJndhbGspOw0KIH0NCiANCiBzdGF0aWMgc3RydWN0 IGNyeXB0b19hbGcgY2JjX2Flc19hbGcgPSB7DQpAQCAtNTg3LDcgKzU5MSw3IEBAIHN0YXRpYyBp bnQgeHRzX2Flc19zZXRfa2V5KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIGNvbnN0IHU4ICppbl9r ZXksDQogCQl4dHNfY3R4LT5lbmMgPSBLTV9YVFNfMTI4X0VOQ1JZUFQ7DQogCQl4dHNfY3R4LT5k ZWMgPSBLTV9YVFNfMTI4X0RFQ1JZUFQ7DQogCQltZW1jcHkoeHRzX2N0eC0+a2V5ICsgMTYsIGlu X2tleSwgMTYpOw0KLQkJbWVtY3B5KHh0c19jdHgtPnBjYy5rZXkgKyAxNiwgaW5fa2V5ICsgMTYs IDE2KTsNCisJCW1lbWNweSh4dHNfY3R4LT5wY2Nfa2V5ICsgMTYsIGluX2tleSArIDE2LCAxNik7 DQogCQlicmVhazsNCiAJY2FzZSA0ODoNCiAJCXh0c19jdHgtPmVuYyA9IDA7DQpAQCAtNTk4LDcg KzYwMiw3IEBAIHN0YXRpYyBpbnQgeHRzX2Flc19zZXRfa2V5KHN0cnVjdCBjcnlwdG9fdGZtICp0 Zm0sIGNvbnN0IHU4ICppbl9rZXksDQogCQl4dHNfY3R4LT5lbmMgPSBLTV9YVFNfMjU2X0VOQ1JZ UFQ7DQogCQl4dHNfY3R4LT5kZWMgPSBLTV9YVFNfMjU2X0RFQ1JZUFQ7DQogCQltZW1jcHkoeHRz X2N0eC0+a2V5LCBpbl9rZXksIDMyKTsNCi0JCW1lbWNweSh4dHNfY3R4LT5wY2Mua2V5LCBpbl9r ZXkgKyAzMiwgMzIpOw0KKwkJbWVtY3B5KHh0c19jdHgtPnBjY19rZXksIGluX2tleSArIDMyLCAz Mik7DQogCQlicmVhazsNCiAJZGVmYXVsdDoNCiAJCSpmbGFncyB8PSBDUllQVE9fVEZNX1JFU19C QURfS0VZX0xFTjsNCkBAIC02MTcsMjggKzYyMSwzMiBAQCBzdGF0aWMgaW50IHh0c19hZXNfY3J5 cHQoc3RydWN0IGJsa2NpcGhlcl9kZXNjICpkZXNjLCBsb25nIGZ1bmMsDQogCXVuc2lnbmVkIGlu dCBuYnl0ZXMgPSB3YWxrLT5uYnl0ZXM7DQogCXVuc2lnbmVkIGludCBuOw0KIAl1OCAqaW4sICpv dXQ7DQotCXZvaWQgKnBhcmFtOw0KKwlzdHJ1Y3QgcGNjX3BhcmFtIHBjY19wYXJhbTsNCisJc3Ry dWN0IHsNCisJCXU4IGtleVszMl07DQorCQl1OCBpbml0WzE2XTsNCisJfSB4dHNfcGFyYW07DQog DQogCWlmICghbmJ5dGVzKQ0KIAkJZ290byBvdXQ7DQogDQotCW1lbXNldCh4dHNfY3R4LT5wY2Mu YmxvY2ssIDAsIHNpemVvZih4dHNfY3R4LT5wY2MuYmxvY2spKTsNCi0JbWVtc2V0KHh0c19jdHgt PnBjYy5iaXQsIDAsIHNpemVvZih4dHNfY3R4LT5wY2MuYml0KSk7DQotCW1lbXNldCh4dHNfY3R4 LT5wY2MueHRzLCAwLCBzaXplb2YoeHRzX2N0eC0+cGNjLnh0cykpOw0KLQltZW1jcHkoeHRzX2N0 eC0+cGNjLnR3ZWFrLCB3YWxrLT5pdiwgc2l6ZW9mKHh0c19jdHgtPnBjYy50d2VhaykpOw0KLQlw YXJhbSA9IHh0c19jdHgtPnBjYy5rZXkgKyBvZmZzZXQ7DQotCXJldCA9IGNyeXB0X3MzOTBfcGNj KGZ1bmMsIHBhcmFtKTsNCisJbWVtc2V0KHBjY19wYXJhbS5ibG9jaywgMCwgc2l6ZW9mKHBjY19w YXJhbS5ibG9jaykpOw0KKwltZW1zZXQocGNjX3BhcmFtLmJpdCwgMCwgc2l6ZW9mKHBjY19wYXJh bS5iaXQpKTsNCisJbWVtc2V0KHBjY19wYXJhbS54dHMsIDAsIHNpemVvZihwY2NfcGFyYW0ueHRz KSk7DQorCW1lbWNweShwY2NfcGFyYW0udHdlYWssIHdhbGstPml2LCBzaXplb2YocGNjX3BhcmFt LnR3ZWFrKSk7DQorCW1lbWNweShwY2NfcGFyYW0ua2V5LCB4dHNfY3R4LT5wY2Nfa2V5LCAzMik7 DQorCXJldCA9IGNyeXB0X3MzOTBfcGNjKGZ1bmMsICZwY2NfcGFyYW0ua2V5W29mZnNldF0pOw0K IAlCVUdfT04ocmV0IDwgMCk7DQogDQotCW1lbWNweSh4dHNfY3R4LT54dHNfcGFyYW0sIHh0c19j dHgtPnBjYy54dHMsIDE2KTsNCi0JcGFyYW0gPSB4dHNfY3R4LT5rZXkgKyBvZmZzZXQ7DQorCW1l bWNweSh4dHNfcGFyYW0ua2V5LCB4dHNfY3R4LT5rZXksIDMyKTsNCisJbWVtY3B5KHh0c19wYXJh bS5pbml0LCBwY2NfcGFyYW0ueHRzLCAxNik7DQogCWRvIHsNCiAJCS8qIG9ubHkgdXNlIGNvbXBs ZXRlIGJsb2NrcyAqLw0KIAkJbiA9IG5ieXRlcyAmIH4oQUVTX0JMT0NLX1NJWkUgLSAxKTsNCiAJ CW91dCA9IHdhbGstPmRzdC52aXJ0LmFkZHI7DQogCQlpbiA9IHdhbGstPnNyYy52aXJ0LmFkZHI7 DQogDQotCQlyZXQgPSBjcnlwdF9zMzkwX2ttKGZ1bmMsIHBhcmFtLCBvdXQsIGluLCBuKTsNCisJ CXJldCA9IGNyeXB0X3MzOTBfa20oZnVuYywgJnh0c19wYXJhbS5rZXlbb2Zmc2V0XSwgb3V0LCBp biwgbik7DQogCQlCVUdfT04ocmV0IDwgMCB8fCByZXQgIT0gbik7DQogDQogCQluYnl0ZXMgJj0g QUVTX0JMT0NLX1NJWkUgLSAxOw0KZGlmZiAtLWdpdCBhL2FyY2gvdW0vb3MtTGludXgvc3RhcnRf dXAuYyBiL2FyY2gvdW0vb3MtTGludXgvc3RhcnRfdXAuYw0KaW5kZXggNDI1MTYyZS4uMmY1M2I4 OSAxMDA2NDQNCi0tLSBhL2FyY2gvdW0vb3MtTGludXgvc3RhcnRfdXAuYw0KKysrIGIvYXJjaC91 bS9vcy1MaW51eC9zdGFydF91cC5jDQpAQCAtMTUsNiArMTUsOCBAQA0KICNpbmNsdWRlIDxzeXMv bW1hbi5oPg0KICNpbmNsdWRlIDxzeXMvc3RhdC5oPg0KICNpbmNsdWRlIDxzeXMvd2FpdC5oPg0K KyNpbmNsdWRlIDxzeXMvdGltZS5oPg0KKyNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4NCiAjaW5j bHVkZSA8YXNtL3VuaXN0ZC5oPg0KICNpbmNsdWRlICJpbml0LmgiDQogI2luY2x1ZGUgIm9zLmgi DQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC9NYWtlZmlsZSBiL2FyY2gveDg2L2Jvb3QvTWFr ZWZpbGUNCmluZGV4IDk1MzY1YTguLmU4MDU0MmIgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9ib290 L01ha2VmaWxlDQorKysgYi9hcmNoL3g4Ni9ib290L01ha2VmaWxlDQpAQCAtNTEsMTggKzUxLDE4 IEBAICQob2JqKS9jcHVzdHIuaDogJChvYmopL21rY3B1c3RyIEZPUkNFDQogDQogIyBIb3cgdG8g Y29tcGlsZSB0aGUgMTYtYml0IGNvZGUuICBOb3RlIHdlIGFsd2F5cyBjb21waWxlIGZvciAtbWFy Y2g9aTM4NiwNCiAjIHRoYXQgd2F5IHdlIGNhbiBjb21wbGFpbiB0byB0aGUgdXNlciBpZiB0aGUg Q1BVIGlzIGluc3VmZmljaWVudC4NCi1LQlVJTERfQ0ZMQUdTCTo9ICQoTElOVVhJTkNMVURFKSAt ZyAtT3MgLURfU0VUVVAgLURfX0tFUk5FTF9fIFwNCitLQlVJTERfQ0ZMQUdTCTo9ICQoTElOVVhJ TkNMVURFKSAtbTMyIC1nIC1PcyAtRF9TRVRVUCAtRF9fS0VSTkVMX18gXA0KIAkJICAgLURESVNB QkxFX0JSQU5DSF9QUk9GSUxJTkcgXA0KIAkJICAgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcyBc DQogCQkgICAtbWFyY2g9aTM4NiAtbXJlZ3Bhcm09MyBcDQogCQkgICAtaW5jbHVkZSAkKHNyY3Ry ZWUpLyQoc3JjKS9jb2RlMTZnY2MuaCBcDQogCQkgICAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm9t aXQtZnJhbWUtcG9pbnRlciBcDQorCQkgICAtbW5vLW1teCAtbW5vLXNzZSBcDQogCQkgICAkKGNh bGwgY2Mtb3B0aW9uLCAtZmZyZWVzdGFuZGluZykgXA0KIAkJICAgJChjYWxsIGNjLW9wdGlvbiwg LWZuby10b3BsZXZlbC1yZW9yZGVyLFwNCi0JCQkkKGNhbGwgY2Mtb3B0aW9uLCAtZm5vLXVuaXQt YXQtYS10aW1lKSkgXA0KKwkJICAgJChjYWxsIGNjLW9wdGlvbiwgLWZuby11bml0LWF0LWEtdGlt ZSkpIFwNCiAJCSAgICQoY2FsbCBjYy1vcHRpb24sIC1mbm8tc3RhY2stcHJvdGVjdG9yKSBcDQog CQkgICAkKGNhbGwgY2Mtb3B0aW9uLCAtbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT0yKQ0KLUtC VUlMRF9DRkxBR1MJKz0gJChjYWxsIGNjLW9wdGlvbiwgLW0zMikNCiBLQlVJTERfQUZMQUdTCTo9 ICQoS0JVSUxEX0NGTEFHUykgLURfX0FTU0VNQkxZX18NCiBHQ09WX1BST0ZJTEUgOj0gbg0KIA0K ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9NYWtlZmlsZSBiL2FyY2gveDg2 L2Jvb3QvY29tcHJlc3NlZC9NYWtlZmlsZQ0KaW5kZXggNzc0NTNjNi4uY2RhNWNlZiAxMDA2NDQN Ci0tLSBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9NYWtlZmlsZQ0KKysrIGIvYXJjaC94ODYv Ym9vdC9jb21wcmVzc2VkL01ha2VmaWxlDQpAQCAtMTIsNiArMTIsNyBAQCBLQlVJTERfQ0ZMQUdT ICs9IC1ERElTQUJMRV9CUkFOQ0hfUFJPRklMSU5HDQogY2ZsYWdzLSQoQ09ORklHX1g4Nl8zMikg Oj0gLW1hcmNoPWkzODYNCiBjZmxhZ3MtJChDT05GSUdfWDg2XzY0KSA6PSAtbWNtb2RlbD1zbWFs bA0KIEtCVUlMRF9DRkxBR1MgKz0gJChjZmxhZ3MteSkNCitLQlVJTERfQ0ZMQUdTICs9IC1tbm8t bW14IC1tbm8tc3NlDQogS0JVSUxEX0NGTEFHUyArPSAkKGNhbGwgY2Mtb3B0aW9uLC1mZnJlZXN0 YW5kaW5nKQ0KIEtCVUlMRF9DRkxBR1MgKz0gJChjYWxsIGNjLW9wdGlvbiwtZm5vLXN0YWNrLXBy b3RlY3RvcikNCiANCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3Jhc2guYyBiL2FyY2gv eDg2L2tlcm5lbC9jcmFzaC5jDQppbmRleCAxM2FkODk5Li42OWUyMzFiIDEwMDY0NA0KLS0tIGEv YXJjaC94ODYva2VybmVsL2NyYXNoLmMNCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcmFzaC5jDQpA QCAtOTUsMTAgKzk1LDEwIEBAIHZvaWQgbmF0aXZlX21hY2hpbmVfY3Jhc2hfc2h1dGRvd24oc3Ry dWN0IHB0X3JlZ3MgKnJlZ3MpDQogCWNwdV9lbWVyZ2VuY3lfdm14b2ZmKCk7DQogCWNwdV9lbWVy Z2VuY3lfc3ZtX2Rpc2FibGUoKTsNCiANCi0JbGFwaWNfc2h1dGRvd24oKTsNCiAjaWYgZGVmaW5l ZChDT05GSUdfWDg2X0lPX0FQSUMpDQogCWRpc2FibGVfSU9fQVBJQygpOw0KICNlbmRpZg0KKwls YXBpY19zaHV0ZG93bigpOw0KICNpZmRlZiBDT05GSUdfSFBFVF9USU1FUg0KIAlocGV0X2Rpc2Fi bGUoKTsNCiAjZW5kaWYNCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbWljcm9jb2RlX2Ft ZC5jIGIvYXJjaC94ODYva2VybmVsL21pY3JvY29kZV9hbWQuYw0KaW5kZXggMWVmOTYyYi4uZjli OWVhYSAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9taWNyb2NvZGVfYW1kLmMNCisrKyBi L2FyY2gveDg2L2tlcm5lbC9taWNyb2NvZGVfYW1kLmMNCkBAIC0zMzEsNyArMzMxLDcgQEAgc3Rh dGljIGVudW0gdWNvZGVfc3RhdGUgcmVxdWVzdF9taWNyb2NvZGVfYW1kKGludCBjcHUsIHN0cnVj dCBkZXZpY2UgKmRldmljZSkNCiAJCXNucHJpbnRmKGZ3X25hbWUsIHNpemVvZihmd19uYW1lKSwg ImFtZC11Y29kZS9taWNyb2NvZGVfYW1kX2ZhbSUuMnhoLmJpbiIsIGMtPng4Nik7DQogDQogCWlm IChyZXF1ZXN0X2Zpcm13YXJlKCZmdywgKGNvbnN0IGNoYXIgKilmd19uYW1lLCBkZXZpY2UpKSB7 DQotCQlwcl9lcnIoImZhaWxlZCB0byBsb2FkIGZpbGUgJXNcbiIsIGZ3X25hbWUpOw0KKwkJcHJf ZGVidWcoImZhaWxlZCB0byBsb2FkIGZpbGUgJXNcbiIsIGZ3X25hbWUpOw0KIAkJZ290byBvdXQ7 DQogCX0NCiANCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcmVib290LmMgYi9hcmNoL3g4 Ni9rZXJuZWwvcmVib290LmMNCmluZGV4IGE0ZTFiNGIuLmY0MTFhY2EgMTAwNjQ0DQotLS0gYS9h cmNoL3g4Ni9rZXJuZWwvcmVib290LmMNCisrKyBiL2FyY2gveDg2L2tlcm5lbC9yZWJvb3QuYw0K QEAgLTY1Miw2ICs2NTIsMTMgQEAgdm9pZCBuYXRpdmVfbWFjaGluZV9zaHV0ZG93bih2b2lkKQ0K IA0KIAkvKiBUaGUgYm9vdCBjcHUgaXMgYWx3YXlzIGxvZ2ljYWwgY3B1IDAgKi8NCiAJaW50IHJl Ym9vdF9jcHVfaWQgPSAwOw0KKyNlbmRpZg0KKw0KKyNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMN CisJZGlzYWJsZV9JT19BUElDKCk7DQorI2VuZGlmDQorDQorI2lmZGVmIENPTkZJR19TTVANCiAN CiAjaWZkZWYgQ09ORklHX1g4Nl8zMg0KIAkvKiBTZWUgaWYgdGhlcmUgaGFzIGJlZW4gZ2l2ZW4g YSBjb21tYW5kIGxpbmUgb3ZlcnJpZGUgKi8NCkBAIC02NzUsMTAgKzY4Miw2IEBAIHZvaWQgbmF0 aXZlX21hY2hpbmVfc2h1dGRvd24odm9pZCkNCiANCiAJbGFwaWNfc2h1dGRvd24oKTsNCiANCi0j aWZkZWYgQ09ORklHX1g4Nl9JT19BUElDDQotCWRpc2FibGVfSU9fQVBJQygpOw0KLSNlbmRpZg0K LQ0KICNpZmRlZiBDT05GSUdfSFBFVF9USU1FUg0KIAlocGV0X2Rpc2FibGUoKTsNCiAjZW5kaWYN CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vbGFwaWMuYyBiL2FyY2gveDg2L2t2bS9sYXBpYy5j DQppbmRleCA1NGFiYjQwLi40M2U3NzUzIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYva3ZtL2xhcGlj LmMNCisrKyBiL2FyY2gveDg2L2t2bS9sYXBpYy5jDQpAQCAtNTM3LDcgKzUzNyw4IEBAIHN0YXRp YyB1MzIgYXBpY19nZXRfdG1jY3Qoc3RydWN0IGt2bV9sYXBpYyAqYXBpYykNCiAJQVNTRVJUKGFw aWMgIT0gTlVMTCk7DQogDQogCS8qIGlmIGluaXRpYWwgY291bnQgaXMgMCwgY3VycmVudCBjb3Vu dCBzaG91bGQgYWxzbyBiZSAwICovDQotCWlmIChhcGljX2dldF9yZWcoYXBpYywgQVBJQ19UTUlD VCkgPT0gMCkNCisJaWYgKGFwaWNfZ2V0X3JlZyhhcGljLCBBUElDX1RNSUNUKSA9PSAwIHx8DQor CQlhcGljLT5sYXBpY190aW1lci5wZXJpb2QgPT0gMCkNCiAJCXJldHVybiAwOw0KIA0KIAlyZW1h aW5pbmcgPSBocnRpbWVyX2dldF9yZW1haW5pbmcoJmFwaWMtPmxhcGljX3RpbWVyLnRpbWVyKTsN CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpLmMgYi9hcmNoL3g4Ni9wbGF0 Zm9ybS9lZmkvZWZpLmMNCmluZGV4IGExOGQyMGQuLmJlZTc1YTYgMTAwNjQ0DQotLS0gYS9hcmNo L3g4Ni9wbGF0Zm9ybS9lZmkvZWZpLmMNCisrKyBiL2FyY2gveDg2L3BsYXRmb3JtL2VmaS9lZmku Yw0KQEAgLTYxNCwxMSArNjE0LDYgQEAgdm9pZCBfX2luaXQgZWZpX2luaXQodm9pZCkNCiANCiAJ c2V0X2JpdChFRklfTUVNTUFQLCAmeDg2X2VmaV9mYWNpbGl0eSk7DQogDQotI2lmZGVmIENPTkZJ R19YODZfMzINCi0JeDg2X3BsYXRmb3JtLmdldF93YWxsY2xvY2sgPSBlZmlfZ2V0X3RpbWU7DQot CXg4Nl9wbGF0Zm9ybS5zZXRfd2FsbGNsb2NrID0gZWZpX3NldF9ydGNfbW1zczsNCi0jZW5kaWYN Ci0NCiAjaWYgRUZJX0RFQlVHDQogCXByaW50X2VmaV9tZW1tYXAoKTsNCiAjZW5kaWYNCmRpZmYg LS1naXQgYS9ibG9jay9ibGstY29yZS5jIGIvYmxvY2svYmxrLWNvcmUuYw0KaW5kZXggNDlkOWU5 MS4uYTIxOWM4OSAxMDA2NDQNCi0tLSBhL2Jsb2NrL2Jsay1jb3JlLmMNCisrKyBiL2Jsb2NrL2Js ay1jb3JlLmMNCkBAIC00ODMsNiArNDgzLDcgQEAgc3RydWN0IHJlcXVlc3RfcXVldWUgKmJsa19h bGxvY19xdWV1ZV9ub2RlKGdmcF90IGdmcF9tYXNrLCBpbnQgbm9kZV9pZCkNCiAJfQ0KIA0KIAlp ZiAoYmxrX3Rocm90bF9pbml0KHEpKSB7DQorCQliZGlfZGVzdHJveSgmcS0+YmFja2luZ19kZXZf aW5mbyk7DQogCQlrbWVtX2NhY2hlX2ZyZWUoYmxrX3JlcXVlc3RxX2NhY2hlcCwgcSk7DQogCQly ZXR1cm4gTlVMTDsNCiAJfQ0KQEAgLTIwMTUsNiArMjAxNiw3IEBAIHZvaWQgYmxrX3N0YXJ0X3Jl cXVlc3Qoc3RydWN0IHJlcXVlc3QgKnJlcSkNCiAJaWYgKHVubGlrZWx5KGJsa19iaWRpX3JxKHJl cSkpKQ0KIAkJcmVxLT5uZXh0X3JxLT5yZXNpZF9sZW4gPSBibGtfcnFfYnl0ZXMocmVxLT5uZXh0 X3JxKTsNCiANCisJQlVHX09OKHRlc3RfYml0KFJFUV9BVE9NX0NPTVBMRVRFLCAmcmVxLT5hdG9t aWNfZmxhZ3MpKTsNCiAJYmxrX2FkZF90aW1lcihyZXEpOw0KIH0NCiBFWFBPUlRfU1lNQk9MKGJs a19zdGFydF9yZXF1ZXN0KTsNCmRpZmYgLS1naXQgYS9ibG9jay9ibGstdGltZW91dC5jIGIvYmxv Y2svYmxrLXRpbWVvdXQuYw0KaW5kZXggNzgwMzU0OC4uYjExODJlYSAxMDA2NDQNCi0tLSBhL2Js b2NrL2Jsay10aW1lb3V0LmMNCisrKyBiL2Jsb2NrL2Jsay10aW1lb3V0LmMNCkBAIC05MCw4ICs5 MCw4IEBAIHN0YXRpYyB2b2lkIGJsa19ycV90aW1lZF9vdXQoc3RydWN0IHJlcXVlc3QgKnJlcSkN CiAJCV9fYmxrX2NvbXBsZXRlX3JlcXVlc3QocmVxKTsNCiAJCWJyZWFrOw0KIAljYXNlIEJMS19F SF9SRVNFVF9USU1FUjoNCi0JCWJsa19jbGVhcl9ycV9jb21wbGV0ZShyZXEpOw0KIAkJYmxrX2Fk ZF90aW1lcihyZXEpOw0KKwkJYmxrX2NsZWFyX3JxX2NvbXBsZXRlKHJlcSk7DQogCQlicmVhazsN CiAJY2FzZSBCTEtfRUhfTk9UX0hBTkRMRUQ6DQogCQkvKg0KQEAgLTE3Myw3ICsxNzMsNiBAQCB2 b2lkIGJsa19hZGRfdGltZXIoc3RydWN0IHJlcXVlc3QgKnJlcSkNCiAJCXJldHVybjsNCiANCiAJ QlVHX09OKCFsaXN0X2VtcHR5KCZyZXEtPnRpbWVvdXRfbGlzdCkpOw0KLQlCVUdfT04odGVzdF9i aXQoUkVRX0FUT01fQ09NUExFVEUsICZyZXEtPmF0b21pY19mbGFncykpOw0KIA0KIAkvKg0KIAkg KiBTb21lIExMRHMsIGxpa2Ugc2NzaSwgcGVlayBhdCB0aGUgdGltZW91dCB0byBwcmV2ZW50IGEN CmRpZmYgLS1naXQgYS9jcnlwdG8vYWxnaWZfaGFzaC5jIGIvY3J5cHRvL2FsZ2lmX2hhc2guYw0K aW5kZXggMDI2MjIxMC4uODUwMjQ2MiAxMDA2NDQNCi0tLSBhL2NyeXB0by9hbGdpZl9oYXNoLmMN CisrKyBiL2NyeXB0by9hbGdpZl9oYXNoLmMNCkBAIC0xMTQsNiArMTE0LDkgQEAgc3RhdGljIHNz aXplX3QgaGFzaF9zZW5kcGFnZShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgcGFnZSAqcGFn ZSwNCiAJc3RydWN0IGhhc2hfY3R4ICpjdHggPSBhc2stPnByaXZhdGU7DQogCWludCBlcnI7DQog DQorCWlmIChmbGFncyAmIE1TR19TRU5EUEFHRV9OT1RMQVNUKQ0KKwkJZmxhZ3MgfD0gTVNHX01P UkU7DQorDQogCWxvY2tfc29jayhzayk7DQogCXNnX2luaXRfdGFibGUoY3R4LT5zZ2wuc2csIDEp Ow0KIAlzZ19zZXRfcGFnZShjdHgtPnNnbC5zZywgcGFnZSwgc2l6ZSwgb2Zmc2V0KTsNCkBAIC0x NjEsOCArMTY0LDYgQEAgc3RhdGljIGludCBoYXNoX3JlY3Ztc2coc3RydWN0IGtpb2NiICp1bnVz ZWQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCWVsc2UgaWYgKGxlbiA8IGRzKQ0KIAkJbXNnLT5t c2dfZmxhZ3MgfD0gTVNHX1RSVU5DOw0KIA0KLQltc2ctPm1zZ19uYW1lbGVuID0gMDsNCi0NCiAJ bG9ja19zb2NrKHNrKTsNCiAJaWYgKGN0eC0+bW9yZSkgew0KIAkJY3R4LT5tb3JlID0gMDsNCmRp ZmYgLS1naXQgYS9jcnlwdG8vYWxnaWZfc2tjaXBoZXIuYyBiL2NyeXB0by9hbGdpZl9za2NpcGhl ci5jDQppbmRleCBhMWM0ZjBhLi5hMTljMDI3IDEwMDY0NA0KLS0tIGEvY3J5cHRvL2FsZ2lmX3Nr Y2lwaGVyLmMNCisrKyBiL2NyeXB0by9hbGdpZl9za2NpcGhlci5jDQpAQCAtMzc4LDYgKzM3OCw5 IEBAIHN0YXRpYyBzc2l6ZV90IHNrY2lwaGVyX3NlbmRwYWdlKHN0cnVjdCBzb2NrZXQgKnNvY2ss IHN0cnVjdCBwYWdlICpwYWdlLA0KIAlzdHJ1Y3Qgc2tjaXBoZXJfc2dfbGlzdCAqc2dsOw0KIAlp bnQgZXJyID0gLUVJTlZBTDsNCiANCisJaWYgKGZsYWdzICYgTVNHX1NFTkRQQUdFX05PVExBU1Qp DQorCQlmbGFncyB8PSBNU0dfTU9SRTsNCisNCiAJbG9ja19zb2NrKHNrKTsNCiAJaWYgKCFjdHgt Pm1vcmUgJiYgY3R4LT51c2VkKQ0KIAkJZ290byB1bmxvY2s7DQpAQCAtNDMyLDcgKzQzNSw2IEBA IHN0YXRpYyBpbnQgc2tjaXBoZXJfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKnVudXNlZCwgc3RydWN0 IHNvY2tldCAqc29jaywNCiAJbG9uZyBjb3BpZWQgPSAwOw0KIA0KIAlsb2NrX3NvY2soc2spOw0K LQltc2ctPm1zZ19uYW1lbGVuID0gMDsNCiAJZm9yIChpb3YgPSBtc2ctPm1zZ19pb3YsIGlvdmxl biA9IG1zZy0+bXNnX2lvdmxlbjsgaW92bGVuID4gMDsNCiAJICAgICBpb3ZsZW4tLSwgaW92Kysp IHsNCiAJCXVuc2lnbmVkIGxvbmcgc2VnbGVuID0gaW92LT5pb3ZfbGVuOw0KZGlmZiAtLWdpdCBh L2NyeXB0by9hbnNpX2Nwcm5nLmMgYi9jcnlwdG8vYW5zaV9jcHJuZy5jDQppbmRleCBmZmEwMjQ1 Li42MDU2MTc4IDEwMDY0NA0KLS0tIGEvY3J5cHRvL2Fuc2lfY3BybmcuYw0KKysrIGIvY3J5cHRv L2Fuc2lfY3BybmcuYw0KQEAgLTIzMCwxMSArMjMwLDExIEBAIHJlbWFpbmRlcjoNCiAJICovDQog CWlmIChieXRlX2NvdW50IDwgREVGQVVMVF9CTEtfU1opIHsNCiBlbXB0eV9yYnVmOg0KLQkJZm9y ICg7IGN0eC0+cmFuZF9kYXRhX3ZhbGlkIDwgREVGQVVMVF9CTEtfU1o7DQotCQkJY3R4LT5yYW5k X2RhdGFfdmFsaWQrKykgew0KKwkJd2hpbGUgKGN0eC0+cmFuZF9kYXRhX3ZhbGlkIDwgREVGQVVM VF9CTEtfU1opIHsNCiAJCQkqcHRyID0gY3R4LT5yYW5kX2RhdGFbY3R4LT5yYW5kX2RhdGFfdmFs aWRdOw0KIAkJCXB0cisrOw0KIAkJCWJ5dGVfY291bnQtLTsNCisJCQljdHgtPnJhbmRfZGF0YV92 YWxpZCsrOw0KIAkJCWlmIChieXRlX2NvdW50ID09IDApDQogCQkJCWdvdG8gZG9uZTsNCiAJCX0N CmRpZmYgLS1naXQgYS9jcnlwdG8vYXV0aGVuYy5jIGIvY3J5cHRvL2F1dGhlbmMuYw0KaW5kZXgg NWVmN2JhNi4uZDIxZGEyZiAxMDA2NDQNCi0tLSBhL2NyeXB0by9hdXRoZW5jLmMNCisrKyBiL2Ny eXB0by9hdXRoZW5jLmMNCkBAIC0zNjgsOSArMzY4LDEwIEBAIHN0YXRpYyB2b2lkIGNyeXB0b19h dXRoZW5jX2VuY3J5cHRfZG9uZShzdHJ1Y3QgY3J5cHRvX2FzeW5jX3JlcXVlc3QgKnJlcSwNCiAJ aWYgKCFlcnIpIHsNCiAJCXN0cnVjdCBjcnlwdG9fYWVhZCAqYXV0aGVuYyA9IGNyeXB0b19hZWFk X3JlcXRmbShhcmVxKTsNCiAJCXN0cnVjdCBjcnlwdG9fYXV0aGVuY19jdHggKmN0eCA9IGNyeXB0 b19hZWFkX2N0eChhdXRoZW5jKTsNCi0JCXN0cnVjdCBhYmxrY2lwaGVyX3JlcXVlc3QgKmFicmVx ID0gYWVhZF9yZXF1ZXN0X2N0eChhcmVxKTsNCi0JCXU4ICppdiA9ICh1OCAqKShhYnJlcSArIDEp ICsNCi0JCQkgY3J5cHRvX2FibGtjaXBoZXJfcmVxc2l6ZShjdHgtPmVuYyk7DQorCQlzdHJ1Y3Qg YXV0aGVuY19yZXF1ZXN0X2N0eCAqYXJlcV9jdHggPSBhZWFkX3JlcXVlc3RfY3R4KGFyZXEpOw0K KwkJc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqYWJyZXEgPSAodm9pZCAqKShhcmVxX2N0eC0+ dGFpbA0KKwkJCQkJCQkgICAgKyBjdHgtPnJlcW9mZik7DQorCQl1OCAqaXYgPSAodTggKilhYnJl cSAtIGNyeXB0b19hYmxrY2lwaGVyX2l2c2l6ZShjdHgtPmVuYyk7DQogDQogCQllcnIgPSBjcnlw dG9fYXV0aGVuY19nZW5pY3YoYXJlcSwgaXYsIDApOw0KIAl9DQpkaWZmIC0tZ2l0IGEvY3J5cHRv L2NjbS5jIGIvY3J5cHRvL2NjbS5jDQppbmRleCBjMzZkNjU0Li4yMDAyY2E3IDEwMDY0NA0KLS0t IGEvY3J5cHRvL2NjbS5jDQorKysgYi9jcnlwdG8vY2NtLmMNCkBAIC0yNzEsNyArMjcxLDggQEAg c3RhdGljIGludCBjcnlwdG9fY2NtX2F1dGgoc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxLCBzdHJ1 Y3Qgc2NhdHRlcmxpc3QgKnBsYWluLA0KIAl9DQogDQogCS8qIGNvbXB1dGUgcGxhaW50ZXh0IGlu dG8gbWFjICovDQotCWdldF9kYXRhX3RvX2NvbXB1dGUoY2lwaGVyLCBwY3R4LCBwbGFpbiwgY3J5 cHRsZW4pOw0KKwlpZiAoY3J5cHRsZW4pDQorCQlnZXRfZGF0YV90b19jb21wdXRlKGNpcGhlciwg cGN0eCwgcGxhaW4sIGNyeXB0bGVuKTsNCiANCiBvdXQ6DQogCXJldHVybiBlcnI7DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9hdGEvYWhjaS5jIGIvZHJpdmVycy9hdGEvYWhjaS5jDQppbmRleCAwNDQ1 ZjUyLi5kMjlmNmQ1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hdGEvYWhjaS5jDQorKysgYi9kcml2 ZXJzL2F0YS9haGNpLmMNCkBAIC0zMDMsNiArMzAzLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg cGNpX2RldmljZV9pZCBhaGNpX3BjaV90YmxbXSA9IHsNCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwg MHg4ZDY2KSwgYm9hcmRfYWhjaSB9LCAvKiBXZWxsc2J1cmcgUkFJRCAqLw0KIAl7IFBDSV9WREVW SUNFKElOVEVMLCAweDhkNmUpLCBib2FyZF9haGNpIH0sIC8qIFdlbGxzYnVyZyBSQUlEICovDQog CXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MjNhMyksIGJvYXJkX2FoY2kgfSwgLyogQ29sZXRvIENy ZWVrIEFIQ0kgKi8NCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg5YzgzKSwgYm9hcmRfYWhjaSB9 LCAvKiBXaWxkY2F0IFBvaW50LUxQIEFIQ0kgKi8NCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg5 Yzg1KSwgYm9hcmRfYWhjaSB9LCAvKiBXaWxkY2F0IFBvaW50LUxQIFJBSUQgKi8NCisJeyBQQ0lf VkRFVklDRShJTlRFTCwgMHg5Yzg3KSwgYm9hcmRfYWhjaSB9LCAvKiBXaWxkY2F0IFBvaW50LUxQ IFJBSUQgKi8NCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg5YzhmKSwgYm9hcmRfYWhjaSB9LCAv KiBXaWxkY2F0IFBvaW50LUxQIFJBSUQgKi8NCiANCiAJLyogSk1pY3JvbiAzNjAvMS8zLzUvNiwg bWF0Y2ggY2xhc3MgdG8gYXZvaWQgSURFIGZ1bmN0aW9uICovDQogCXsgUENJX1ZFTkRPUl9JRF9K TUlDUk9OLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELA0KQEAgLTQzNyw2ICs0 NDEsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgYWhjaV9wY2lfdGJsW10g PSB7DQogCSAgLmRyaXZlcl9kYXRhID0gYm9hcmRfYWhjaV95ZXNfZmJzIH0sCQkJLyogODhzZTkx NzIgb24gc29tZSBHaWdhYnl0ZSAqLw0KIAl7IFBDSV9ERVZJQ0UoMHgxYjRiLCAweDkxYTMpLA0K IAkgIC5kcml2ZXJfZGF0YSA9IGJvYXJkX2FoY2lfeWVzX2ZicyB9LA0KKwl7IFBDSV9ERVZJQ0Uo UENJX1ZFTkRPUl9JRF9NQVJWRUxMX0VYVCwgMHg5MjMwKSwNCisJICAuZHJpdmVyX2RhdGEgPSBi b2FyZF9haGNpX3llc19mYnMgfSwNCiANCiAJLyogUHJvbWlzZSAqLw0KIAl7IFBDSV9WREVWSUNF KFBST01JU0UsIDB4M2YyMCksIGJvYXJkX2FoY2kgfSwJLyogUERDNDI4MTkgKi8NCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2F0YS9haGNpX3BsYXRmb3JtLmMgYi9kcml2ZXJzL2F0YS9haGNpX3BsYXRm b3JtLmMNCmluZGV4IDQzYjg3NTguLjY2OTIxMDggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2F0YS9h aGNpX3BsYXRmb3JtLmMNCisrKyBiL2RyaXZlcnMvYXRhL2FoY2lfcGxhdGZvcm0uYw0KQEAgLTIw NCw2ICsyMDQsNyBAQCBzdGF0aWMgaW50IF9fZGV2ZXhpdCBhaGNpX3JlbW92ZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQ0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lk IGFoY2lfb2ZfbWF0Y2hbXSA9IHsNCiAJeyAuY29tcGF0aWJsZSA9ICJjYWx4ZWRhLGhiLWFoY2ki LCB9LA0KKwl7IC5jb21wYXRpYmxlID0gImlibSw0NzZndHItYWhjaSIsIH0sDQogCXt9LA0KIH07 DQogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYWhjaV9vZl9tYXRjaCk7DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9hdGEvbGliYWhjaS5jIGIvZHJpdmVycy9hdGEvbGliYWhjaS5jDQppbmRleCA2MGRl ZjAzLi5kZTI4MDJjIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hdGEvbGliYWhjaS5jDQorKysgYi9k cml2ZXJzL2F0YS9saWJhaGNpLmMNCkBAIC0xMjQ3LDkgKzEyNDcsMTEgQEAgaW50IGFoY2lfZG9f c29mdHJlc2V0KHN0cnVjdCBhdGFfbGluayAqbGluaywgdW5zaWduZWQgaW50ICpjbGFzcywNCiB7 DQogCXN0cnVjdCBhdGFfcG9ydCAqYXAgPSBsaW5rLT5hcDsNCiAJc3RydWN0IGFoY2lfaG9zdF9w cml2ICpocHJpdiA9IGFwLT5ob3N0LT5wcml2YXRlX2RhdGE7DQorCXN0cnVjdCBhaGNpX3BvcnRf cHJpdiAqcHAgPSBhcC0+cHJpdmF0ZV9kYXRhOw0KIAljb25zdCBjaGFyICpyZWFzb24gPSBOVUxM Ow0KIAl1bnNpZ25lZCBsb25nIG5vdywgbXNlY3M7DQogCXN0cnVjdCBhdGFfdGFza2ZpbGUgdGY7 DQorCWJvb2wgZmJzX2Rpc2FibGVkID0gZmFsc2U7DQogCWludCByYzsNCiANCiAJRFBSSU5USygi RU5URVJcbiIpOw0KQEAgLTEyNTksNiArMTI2MSwxNiBAQCBpbnQgYWhjaV9kb19zb2Z0cmVzZXQo c3RydWN0IGF0YV9saW5rICpsaW5rLCB1bnNpZ25lZCBpbnQgKmNsYXNzLA0KIAlpZiAocmMgJiYg cmMgIT0gLUVPUE5PVFNVUFApDQogCQlhdGFfbGlua193YXJuKGxpbmssICJmYWlsZWQgdG8gcmVz ZXQgZW5naW5lIChlcnJubz0lZClcbiIsIHJjKTsNCiANCisJLyoNCisJICogQWNjb3JkaW5nIHRv IEFIQ0ktMS4yIDkuMy45OiBpZiBGQlMgaXMgZW5hYmxlLCBzb2Z0d2FyZSBzaGFsbA0KKwkgKiBj bGVhciBQeEZCUy5FTiB0byAnMCcgcHJpb3IgdG8gaXNzdWluZyBzb2Z0d2FyZSByZXNldCB0byBk ZXZpY2VzDQorCSAqIHRoYXQgaXMgYXR0YWNoZWQgdG8gcG9ydCBtdWx0aXBsaWVyLg0KKwkgKi8N CisJaWYgKCFhdGFfaXNfaG9zdF9saW5rKGxpbmspICYmIHBwLT5mYnNfZW5hYmxlZCkgew0KKwkJ YWhjaV9kaXNhYmxlX2ZicyhhcCk7DQorCQlmYnNfZGlzYWJsZWQgPSB0cnVlOw0KKwl9DQorDQog CWF0YV90Zl9pbml0KGxpbmstPmRldmljZSwgJnRmKTsNCiANCiAJLyogaXNzdWUgdGhlIGZpcnN0 IEQySCBSZWdpc3RlciBGSVMgKi8NCkBAIC0xMjk5LDYgKzEzMTEsMTAgQEAgaW50IGFoY2lfZG9f c29mdHJlc2V0KHN0cnVjdCBhdGFfbGluayAqbGluaywgdW5zaWduZWQgaW50ICpjbGFzcywNCiAJ fSBlbHNlDQogCQkqY2xhc3MgPSBhaGNpX2Rldl9jbGFzc2lmeShhcCk7DQogDQorCS8qIHJlLWVu YWJsZSBGQlMgaWYgZGlzYWJsZWQgYmVmb3JlICovDQorCWlmIChmYnNfZGlzYWJsZWQpDQorCQlh aGNpX2VuYWJsZV9mYnMoYXApOw0KKw0KIAlEUFJJTlRLKCJFWElULCBjbGFzcz0ldVxuIiwgKmNs YXNzKTsNCiAJcmV0dXJuIDA7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYXRhLWNv cmUuYyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1jb3JlLmMNCmluZGV4IGQ1NGI3ZDYuLmEwYTM5ODcg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL2F0YS9saWJhdGEtY29yZS5jDQorKysgYi9kcml2ZXJzL2F0 YS9saWJhdGEtY29yZS5jDQpAQCAtNDA2Nyw2ICs0MDY3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBhdGFfYmxhY2tsaXN0X2VudHJ5IGF0YV9kZXZpY2VfYmxhY2tsaXN0IFtdID0gew0KIAl7ICJU T1JpU0FOIERWRC1ST00gRFJELU4yMTYiLCBOVUxMLAlBVEFfSE9SS0FHRV9NQVhfU0VDXzEyOCB9 LA0KIAl7ICJRVUFOVFVNIERBVCAgICBEQVQ3Mi0wMDAiLCBOVUxMLAlBVEFfSE9SS0FHRV9BVEFQ SV9NT0QxNl9ETUEgfSwNCiAJeyAiU2xpbXR5cGUgRFZEIEEgIERTOEE4U0giLCBOVUxMLAlBVEFf SE9SS0FHRV9NQVhfU0VDX0xCQTQ4IH0sDQorCXsgIlNsaW10eXBlIERWRCBBICBEUzhBOVNIIiwg TlVMTCwJQVRBX0hPUktBR0VfTUFYX1NFQ19MQkE0OCB9LA0KIA0KIAkvKiBEZXZpY2VzIHdlIGV4 cGVjdCB0byBmYWlsIGRpYWdub3N0aWNzICovDQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEv bGliYXRhLXRyYW5zcG9ydC5jIGIvZHJpdmVycy9hdGEvbGliYXRhLXRyYW5zcG9ydC5jDQppbmRl eCBjZTlkYzYyLi5jMDFmMDQwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hdGEvbGliYXRhLXRyYW5z cG9ydC5jDQorKysgYi9kcml2ZXJzL2F0YS9saWJhdGEtdHJhbnNwb3J0LmMNCkBAIC0zMTIsMjUg KzMxMiwyNSBAQCBpbnQgYXRhX3Rwb3J0X2FkZChzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsDQogLyoN CiAgKiBBVEEgbGluayBhdHRyaWJ1dGVzDQogICovDQorc3RhdGljIGludCBub29wKGludCB4KSB7 IHJldHVybiB4OyB9DQogDQotDQotI2RlZmluZSBhdGFfbGlua19zaG93X2xpbmtzcGVlZChmaWVs ZCkJCQkJCVwNCisjZGVmaW5lIGF0YV9saW5rX3Nob3dfbGlua3NwZWVkKGZpZWxkLCBmb3JtYXQp CQkJICAgICAgICBcDQogc3RhdGljIHNzaXplX3QJCQkJCQkJCVwNCiBzaG93X2F0YV9saW5rXyMj ZmllbGQoc3RydWN0IGRldmljZSAqZGV2LAkJCQlcDQogCQkgICAgICBzdHJ1Y3QgZGV2aWNlX2F0 dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQkJXA0KIHsJCQkJCQkJCQlcDQogCXN0cnVjdCBhdGFf bGluayAqbGluayA9IHRyYW5zcG9ydF9jbGFzc190b19saW5rKGRldik7CQlcDQogCQkJCQkJCQkJ XA0KLQlyZXR1cm4gc3ByaW50ZihidWYsIiVzXG4iLCBzYXRhX3NwZF9zdHJpbmcoZmxzKGxpbmst PmZpZWxkKSkpOwlcDQorCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVzXG4iLCBzYXRhX3NwZF9zdHJp bmcoZm9ybWF0KGxpbmstPmZpZWxkKSkpOyBcDQogfQ0KIA0KLSNkZWZpbmUgYXRhX2xpbmtfbGlu a3NwZWVkX2F0dHIoZmllbGQpCQkJCQlcDQotCWF0YV9saW5rX3Nob3dfbGlua3NwZWVkKGZpZWxk KQkJCQkJXA0KKyNkZWZpbmUgYXRhX2xpbmtfbGlua3NwZWVkX2F0dHIoZmllbGQsIGZvcm1hdCkJ CQkJXA0KKwlhdGFfbGlua19zaG93X2xpbmtzcGVlZChmaWVsZCwgZm9ybWF0KQkJCQlcDQogc3Rh dGljIERFVklDRV9BVFRSKGZpZWxkLCBTX0lSVUdPLCBzaG93X2F0YV9saW5rXyMjZmllbGQsIE5V TEwpDQogDQotYXRhX2xpbmtfbGlua3NwZWVkX2F0dHIoaHdfc2F0YV9zcGRfbGltaXQpOw0KLWF0 YV9saW5rX2xpbmtzcGVlZF9hdHRyKHNhdGFfc3BkX2xpbWl0KTsNCi1hdGFfbGlua19saW5rc3Bl ZWRfYXR0cihzYXRhX3NwZCk7DQorYXRhX2xpbmtfbGlua3NwZWVkX2F0dHIoaHdfc2F0YV9zcGRf bGltaXQsIGZscyk7DQorYXRhX2xpbmtfbGlua3NwZWVkX2F0dHIoc2F0YV9zcGRfbGltaXQsIGZs cyk7DQorYXRhX2xpbmtfbGlua3NwZWVkX2F0dHIoc2F0YV9zcGQsIG5vb3ApOw0KIA0KIA0KIHN0 YXRpYyBERUNMQVJFX1RSQU5TUE9SVF9DTEFTUyhhdGFfbGlua19jbGFzcywNCmRpZmYgLS1naXQg YS9kcml2ZXJzL2F0bS9pZHQ3NzI1Mi5jIGIvZHJpdmVycy9hdG0vaWR0NzcyNTIuYw0KaW5kZXgg MWMwNTIxMi4uYjBlNzVjZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYXRtL2lkdDc3MjUyLmMNCisr KyBiL2RyaXZlcnMvYXRtL2lkdDc3MjUyLmMNCkBAIC0zNTEzLDcgKzM1MTMsNyBAQCBpbml0X2Nh cmQoc3RydWN0IGF0bV9kZXYgKmRldikNCiAJdG1wID0gZGV2X2dldF9ieV9uYW1lKCZpbml0X25l dCwgdG5hbWUpOwkvKiBqaHM6IHdhcyAidG1wID0gZGV2X2dldCh0bmFtZSk7IiAqLw0KIAlpZiAo dG1wKSB7DQogCQltZW1jcHkoY2FyZC0+YXRtZGV2LT5lc2ksIHRtcC0+ZGV2X2FkZHIsIDYpOw0K LQ0KKwkJZGV2X3B1dCh0bXApOw0KIAkJcHJpbnRrKCIlczogRVNJICVwTVxuIiwgY2FyZC0+bmFt ZSwgY2FyZC0+YXRtZGV2LT5lc2kpOw0KIAl9DQogCS8qDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9i bG9jay9icmQuYyBiL2RyaXZlcnMvYmxvY2svYnJkLmMNCmluZGV4IDk2OGEwZDQuLmYzNTk3NWYg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Jsb2NrL2JyZC5jDQorKysgYi9kcml2ZXJzL2Jsb2NrL2Jy ZC5jDQpAQCAtNTQ3LDcgKzU0Nyw3IEBAIHN0YXRpYyBzdHJ1Y3Qga29iamVjdCAqYnJkX3Byb2Jl KGRldl90IGRldiwgaW50ICpwYXJ0LCB2b2lkICpkYXRhKQ0KIA0KIAltdXRleF9sb2NrKCZicmRf ZGV2aWNlc19tdXRleCk7DQogCWJyZCA9IGJyZF9pbml0X29uZShNSU5PUihkZXYpID4+IHBhcnRf c2hpZnQpOw0KLQlrb2JqID0gYnJkID8gZ2V0X2Rpc2soYnJkLT5icmRfZGlzaykgOiBFUlJfUFRS KC1FTk9NRU0pOw0KKwlrb2JqID0gYnJkID8gZ2V0X2Rpc2soYnJkLT5icmRfZGlzaykgOiBOVUxM Ow0KIAltdXRleF91bmxvY2soJmJyZF9kZXZpY2VzX211dGV4KTsNCiANCiAJKnBhcnQgPSAwOw0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svbG9vcC5jIGIvZHJpdmVycy9ibG9jay9sb29wLmMN CmluZGV4IGEzNjU1NjIuLmQ2NTkxMzUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Jsb2NrL2xvb3Au Yw0KKysrIGIvZHJpdmVycy9ibG9jay9sb29wLmMNCkBAIC0xNjM1LDcgKzE2MzUsNyBAQCBzdGF0 aWMgaW50IGxvb3BfYWRkKHN0cnVjdCBsb29wX2RldmljZSAqKmwsIGludCBpKQ0KIA0KIAlsby0+ bG9fcXVldWUgPSBibGtfYWxsb2NfcXVldWUoR0ZQX0tFUk5FTCk7DQogCWlmICghbG8tPmxvX3F1 ZXVlKQ0KLQkJZ290byBvdXRfZnJlZV9kZXY7DQorCQlnb3RvIG91dF9mcmVlX2lkcjsNCiANCiAJ ZGlzayA9IGxvLT5sb19kaXNrID0gYWxsb2NfZGlzaygxIDw8IHBhcnRfc2hpZnQpOw0KIAlpZiAo IWRpc2spDQpAQCAtMTY3OSw2ICsxNjc5LDggQEAgc3RhdGljIGludCBsb29wX2FkZChzdHJ1Y3Qg bG9vcF9kZXZpY2UgKipsLCBpbnQgaSkNCiANCiBvdXRfZnJlZV9xdWV1ZToNCiAJYmxrX2NsZWFu dXBfcXVldWUobG8tPmxvX3F1ZXVlKTsNCitvdXRfZnJlZV9pZHI6DQorCWlkcl9yZW1vdmUoJmxv b3BfaW5kZXhfaWRyLCBpKTsNCiBvdXRfZnJlZV9kZXY6DQogCWtmcmVlKGxvKTsNCiBvdXQ6DQpA QCAtMTc0Miw3ICsxNzQ0LDcgQEAgc3RhdGljIHN0cnVjdCBrb2JqZWN0ICpsb29wX3Byb2JlKGRl dl90IGRldiwgaW50ICpwYXJ0LCB2b2lkICpkYXRhKQ0KIAlpZiAoZXJyIDwgMCkNCiAJCWVyciA9 IGxvb3BfYWRkKCZsbywgTUlOT1IoZGV2KSA+PiBwYXJ0X3NoaWZ0KTsNCiAJaWYgKGVyciA8IDAp DQotCQlrb2JqID0gRVJSX1BUUihlcnIpOw0KKwkJa29iaiA9IE5VTEw7DQogCWVsc2UNCiAJCWtv YmogPSBnZXRfZGlzayhsby0+bG9fZGlzayk7DQogCW11dGV4X3VubG9jaygmbG9vcF9pbmRleF9t dXRleCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2k4ay5jIGIvZHJpdmVycy9jaGFyL2k4 ay5jDQppbmRleCA2ZTQwMDcyLi41MWVmY2JjIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9jaGFyL2k4 ay5jDQorKysgYi9kcml2ZXJzL2NoYXIvaThrLmMNCkBAIC02NjQsNiArNjY0LDEzIEBAIHN0YXRp YyBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBfX2luaXRkYXRhIGk4a19kbWlfdGFibGVbXSA9IHsNCiAJ CQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlZvc3RybyIpLA0KIAkJfSwNCiAJfSwNCisJ ew0KKwkJLmlkZW50ID0gIkRlbGwgWFBTNDIxIiwNCisJCS5tYXRjaGVzID0gew0KKwkJCURNSV9N QVRDSChETUlfU1lTX1ZFTkRPUiwgIkRlbGwgSW5jLiIpLA0KKwkJCURNSV9NQVRDSChETUlfUFJP RFVDVF9OQU1FLCAiWFBTIEw0MjFYIiksDQorCQl9LA0KKwl9LA0KICAgICAgICAgeyB9DQogfTsN CiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nvbm5lY3Rvci9jbl9wcm9jLmMgYi9kcml2ZXJzL2Nv bm5lY3Rvci9jbl9wcm9jLmMNCmluZGV4IDY2ZDUzODQuLjA5NGE3MTAgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL2Nvbm5lY3Rvci9jbl9wcm9jLmMNCisrKyBiL2RyaXZlcnMvY29ubmVjdG9yL2NuX3By b2MuYw0KQEAgLTMxLDExICszMSwyMyBAQA0KICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4NCiAj aW5jbHVkZSA8bGludXgvYXRvbWljLmg+DQogDQotI2luY2x1ZGUgPGFzbS91bmFsaWduZWQuaD4N Ci0NCiAjaW5jbHVkZSA8bGludXgvY25fcHJvYy5oPg0KIA0KLSNkZWZpbmUgQ05fUFJPQ19NU0df U0laRSAoc2l6ZW9mKHN0cnVjdCBjbl9tc2cpICsgc2l6ZW9mKHN0cnVjdCBwcm9jX2V2ZW50KSkN CisvKg0KKyAqIFNpemUgb2YgYSBjbl9tc2cgZm9sbG93ZWQgYnkgYSBwcm9jX2V2ZW50IHN0cnVj dHVyZS4gIFNpbmNlIHRoZQ0KKyAqIHNpemVvZiBzdHJ1Y3QgY25fbXNnIGlzIGEgbXVsdGlwbGUg b2YgNCBieXRlcywgYnV0IG5vdCA4IGJ5dGVzLCB3ZQ0KKyAqIGFkZCBvbmUgNC1ieXRlIHdvcmQg dG8gdGhlIHNpemUgaGVyZSwgYW5kIHRoZW4gc3RhcnQgdGhlIGFjdHVhbA0KKyAqIGNuX21zZyBz dHJ1Y3R1cmUgNCBieXRlcyBpbnRvIHRoZSBzdGFjayBidWZmZXIuICBUaGUgcmVzdWx0IGlzIHRo YXQNCisgKiB0aGUgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHByb2NfZXZlbnQgc3RydWN0dXJlIGlz IGFsaWduZWQgdG8gOCBieXRlcy4NCisgKi8NCisjZGVmaW5lIENOX1BST0NfTVNHX1NJWkUgKHNp emVvZihzdHJ1Y3QgY25fbXNnKSArIHNpemVvZihzdHJ1Y3QgcHJvY19ldmVudCkgKyA0KQ0KKw0K Ky8qIFNlZSBjb21tZW50IGFib3ZlOyB3ZSB0ZXN0IG91ciBhc3N1bXB0aW9uIGFib3V0IHNpemVv ZiBzdHJ1Y3QgY25fbXNnIGhlcmUuICovDQorc3RhdGljIGlubGluZSBzdHJ1Y3QgY25fbXNnICpi dWZmZXJfdG9fY25fbXNnKF9fdTggKmJ1ZmZlcikNCit7DQorCUJVSUxEX0JVR19PTihzaXplb2Yo c3RydWN0IGNuX21zZykgIT0gMjApOw0KKwlyZXR1cm4gKHN0cnVjdCBjbl9tc2cgKikoYnVmZmVy ICsgNCk7DQorfQ0KIA0KIHN0YXRpYyBhdG9taWNfdCBwcm9jX2V2ZW50X251bV9saXN0ZW5lcnMg PSBBVE9NSUNfSU5JVCgwKTsNCiBzdGF0aWMgc3RydWN0IGNiX2lkIGNuX3Byb2NfZXZlbnRfaWQg PSB7IENOX0lEWF9QUk9DLCBDTl9WQUxfUFJPQyB9Ow0KQEAgLTU1LDE5ICs2NywxOSBAQCB2b2lk IHByb2NfZm9ya19jb25uZWN0b3Ioc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQ0KIHsNCiAJc3Ry dWN0IGNuX21zZyAqbXNnOw0KIAlzdHJ1Y3QgcHJvY19ldmVudCAqZXY7DQotCV9fdTggYnVmZmVy W0NOX1BST0NfTVNHX1NJWkVdOw0KKwlfX3U4IGJ1ZmZlcltDTl9QUk9DX01TR19TSVpFXSBfX2Fs aWduZWQoOCk7DQogCXN0cnVjdCB0aW1lc3BlYyB0czsNCiAJc3RydWN0IHRhc2tfc3RydWN0ICpw YXJlbnQ7DQogDQogCWlmIChhdG9taWNfcmVhZCgmcHJvY19ldmVudF9udW1fbGlzdGVuZXJzKSA8 IDEpDQogCQlyZXR1cm47DQogDQotCW1zZyA9IChzdHJ1Y3QgY25fbXNnKilidWZmZXI7DQorCW1z ZyA9IGJ1ZmZlcl90b19jbl9tc2coYnVmZmVyKTsNCiAJZXYgPSAoc3RydWN0IHByb2NfZXZlbnQq KW1zZy0+ZGF0YTsNCiAJbWVtc2V0KCZldi0+ZXZlbnRfZGF0YSwgMCwgc2l6ZW9mKGV2LT5ldmVu dF9kYXRhKSk7DQogCWdldF9zZXEoJm1zZy0+c2VxLCAmZXYtPmNwdSk7DQogCWt0aW1lX2dldF90 cygmdHMpOyAvKiBnZXQgaGlnaCByZXMgbW9ub3RvbmljIHRpbWVzdGFtcCAqLw0KLQlwdXRfdW5h bGlnbmVkKHRpbWVzcGVjX3RvX25zKCZ0cyksIChfX3U2NCAqKSZldi0+dGltZXN0YW1wX25zKTsN CisJZXYtPnRpbWVzdGFtcF9ucyA9IHRpbWVzcGVjX3RvX25zKCZ0cyk7DQogCWV2LT53aGF0ID0g UFJPQ19FVkVOVF9GT1JLOw0KIAlyY3VfcmVhZF9sb2NrKCk7DQogCXBhcmVudCA9IHJjdV9kZXJl ZmVyZW5jZSh0YXNrLT5yZWFsX3BhcmVudCk7DQpAQCAtOTAsMTcgKzEwMiwxNyBAQCB2b2lkIHBy b2NfZXhlY19jb25uZWN0b3Ioc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQ0KIAlzdHJ1Y3QgY25f bXNnICptc2c7DQogCXN0cnVjdCBwcm9jX2V2ZW50ICpldjsNCiAJc3RydWN0IHRpbWVzcGVjIHRz Ow0KLQlfX3U4IGJ1ZmZlcltDTl9QUk9DX01TR19TSVpFXTsNCisJX191OCBidWZmZXJbQ05fUFJP Q19NU0dfU0laRV0gX19hbGlnbmVkKDgpOw0KIA0KIAlpZiAoYXRvbWljX3JlYWQoJnByb2NfZXZl bnRfbnVtX2xpc3RlbmVycykgPCAxKQ0KIAkJcmV0dXJuOw0KIA0KLQltc2cgPSAoc3RydWN0IGNu X21zZyopYnVmZmVyOw0KKwltc2cgPSBidWZmZXJfdG9fY25fbXNnKGJ1ZmZlcik7DQogCWV2ID0g KHN0cnVjdCBwcm9jX2V2ZW50Kiltc2ctPmRhdGE7DQogCW1lbXNldCgmZXYtPmV2ZW50X2RhdGEs IDAsIHNpemVvZihldi0+ZXZlbnRfZGF0YSkpOw0KIAlnZXRfc2VxKCZtc2ctPnNlcSwgJmV2LT5j cHUpOw0KIAlrdGltZV9nZXRfdHMoJnRzKTsgLyogZ2V0IGhpZ2ggcmVzIG1vbm90b25pYyB0aW1l c3RhbXAgKi8NCi0JcHV0X3VuYWxpZ25lZCh0aW1lc3BlY190b19ucygmdHMpLCAoX191NjQgKikm ZXYtPnRpbWVzdGFtcF9ucyk7DQorCWV2LT50aW1lc3RhbXBfbnMgPSB0aW1lc3BlY190b19ucygm dHMpOw0KIAlldi0+d2hhdCA9IFBST0NfRVZFTlRfRVhFQzsNCiAJZXYtPmV2ZW50X2RhdGEuZXhl Yy5wcm9jZXNzX3BpZCA9IHRhc2stPnBpZDsNCiAJZXYtPmV2ZW50X2RhdGEuZXhlYy5wcm9jZXNz X3RnaWQgPSB0YXNrLT50Z2lkOw0KQEAgLTExNiwxNCArMTI4LDE0IEBAIHZvaWQgcHJvY19pZF9j b25uZWN0b3Ioc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBpbnQgd2hpY2hfaWQpDQogew0KIAlz dHJ1Y3QgY25fbXNnICptc2c7DQogCXN0cnVjdCBwcm9jX2V2ZW50ICpldjsNCi0JX191OCBidWZm ZXJbQ05fUFJPQ19NU0dfU0laRV07DQorCV9fdTggYnVmZmVyW0NOX1BST0NfTVNHX1NJWkVdIF9f YWxpZ25lZCg4KTsNCiAJc3RydWN0IHRpbWVzcGVjIHRzOw0KIAljb25zdCBzdHJ1Y3QgY3JlZCAq Y3JlZDsNCiANCiAJaWYgKGF0b21pY19yZWFkKCZwcm9jX2V2ZW50X251bV9saXN0ZW5lcnMpIDwg MSkNCiAJCXJldHVybjsNCiANCi0JbXNnID0gKHN0cnVjdCBjbl9tc2cqKWJ1ZmZlcjsNCisJbXNn ID0gYnVmZmVyX3RvX2NuX21zZyhidWZmZXIpOw0KIAlldiA9IChzdHJ1Y3QgcHJvY19ldmVudCop bXNnLT5kYXRhOw0KIAltZW1zZXQoJmV2LT5ldmVudF9kYXRhLCAwLCBzaXplb2YoZXYtPmV2ZW50 X2RhdGEpKTsNCiAJZXYtPndoYXQgPSB3aGljaF9pZDsNCkBAIC0xNDQsNyArMTU2LDcgQEAgdm9p ZCBwcm9jX2lkX2Nvbm5lY3RvcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGludCB3aGljaF9p ZCkNCiAJcmN1X3JlYWRfdW5sb2NrKCk7DQogCWdldF9zZXEoJm1zZy0+c2VxLCAmZXYtPmNwdSk7 DQogCWt0aW1lX2dldF90cygmdHMpOyAvKiBnZXQgaGlnaCByZXMgbW9ub3RvbmljIHRpbWVzdGFt cCAqLw0KLQlwdXRfdW5hbGlnbmVkKHRpbWVzcGVjX3RvX25zKCZ0cyksIChfX3U2NCAqKSZldi0+ dGltZXN0YW1wX25zKTsNCisJZXYtPnRpbWVzdGFtcF9ucyA9IHRpbWVzcGVjX3RvX25zKCZ0cyk7 DQogDQogCW1lbWNweSgmbXNnLT5pZCwgJmNuX3Byb2NfZXZlbnRfaWQsIHNpemVvZihtc2ctPmlk KSk7DQogCW1zZy0+YWNrID0gMDsgLyogbm90IHVzZWQgKi8NCkBAIC0xNTgsMTcgKzE3MCwxNyBA QCB2b2lkIHByb2Nfc2lkX2Nvbm5lY3RvcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spDQogCXN0 cnVjdCBjbl9tc2cgKm1zZzsNCiAJc3RydWN0IHByb2NfZXZlbnQgKmV2Ow0KIAlzdHJ1Y3QgdGlt ZXNwZWMgdHM7DQotCV9fdTggYnVmZmVyW0NOX1BST0NfTVNHX1NJWkVdOw0KKwlfX3U4IGJ1ZmZl cltDTl9QUk9DX01TR19TSVpFXSBfX2FsaWduZWQoOCk7DQogDQogCWlmIChhdG9taWNfcmVhZCgm cHJvY19ldmVudF9udW1fbGlzdGVuZXJzKSA8IDEpDQogCQlyZXR1cm47DQogDQotCW1zZyA9IChz dHJ1Y3QgY25fbXNnICopYnVmZmVyOw0KKwltc2cgPSBidWZmZXJfdG9fY25fbXNnKGJ1ZmZlcik7 DQogCWV2ID0gKHN0cnVjdCBwcm9jX2V2ZW50ICopbXNnLT5kYXRhOw0KIAltZW1zZXQoJmV2LT5l dmVudF9kYXRhLCAwLCBzaXplb2YoZXYtPmV2ZW50X2RhdGEpKTsNCiAJZ2V0X3NlcSgmbXNnLT5z ZXEsICZldi0+Y3B1KTsNCiAJa3RpbWVfZ2V0X3RzKCZ0cyk7IC8qIGdldCBoaWdoIHJlcyBtb25v dG9uaWMgdGltZXN0YW1wICovDQotCXB1dF91bmFsaWduZWQodGltZXNwZWNfdG9fbnMoJnRzKSwg KF9fdTY0ICopJmV2LT50aW1lc3RhbXBfbnMpOw0KKwlldi0+dGltZXN0YW1wX25zID0gdGltZXNw ZWNfdG9fbnMoJnRzKTsNCiAJZXYtPndoYXQgPSBQUk9DX0VWRU5UX1NJRDsNCiAJZXYtPmV2ZW50 X2RhdGEuc2lkLnByb2Nlc3NfcGlkID0gdGFzay0+cGlkOw0KIAlldi0+ZXZlbnRfZGF0YS5zaWQu cHJvY2Vzc190Z2lkID0gdGFzay0+dGdpZDsNCkBAIC0xODUsMTcgKzE5NywxNyBAQCB2b2lkIHBy b2NfcHRyYWNlX2Nvbm5lY3RvcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGludCBwdHJhY2Vf aWQpDQogCXN0cnVjdCBjbl9tc2cgKm1zZzsNCiAJc3RydWN0IHByb2NfZXZlbnQgKmV2Ow0KIAlz dHJ1Y3QgdGltZXNwZWMgdHM7DQotCV9fdTggYnVmZmVyW0NOX1BST0NfTVNHX1NJWkVdOw0KKwlf X3U4IGJ1ZmZlcltDTl9QUk9DX01TR19TSVpFXSBfX2FsaWduZWQoOCk7DQogDQogCWlmIChhdG9t aWNfcmVhZCgmcHJvY19ldmVudF9udW1fbGlzdGVuZXJzKSA8IDEpDQogCQlyZXR1cm47DQogDQot CW1zZyA9IChzdHJ1Y3QgY25fbXNnICopYnVmZmVyOw0KKwltc2cgPSBidWZmZXJfdG9fY25fbXNn KGJ1ZmZlcik7DQogCWV2ID0gKHN0cnVjdCBwcm9jX2V2ZW50ICopbXNnLT5kYXRhOw0KIAltZW1z ZXQoJmV2LT5ldmVudF9kYXRhLCAwLCBzaXplb2YoZXYtPmV2ZW50X2RhdGEpKTsNCiAJZ2V0X3Nl cSgmbXNnLT5zZXEsICZldi0+Y3B1KTsNCiAJa3RpbWVfZ2V0X3RzKCZ0cyk7IC8qIGdldCBoaWdo IHJlcyBtb25vdG9uaWMgdGltZXN0YW1wICovDQotCXB1dF91bmFsaWduZWQodGltZXNwZWNfdG9f bnMoJnRzKSwgKF9fdTY0ICopJmV2LT50aW1lc3RhbXBfbnMpOw0KKwlldi0+dGltZXN0YW1wX25z ID0gdGltZXNwZWNfdG9fbnMoJnRzKTsNCiAJZXYtPndoYXQgPSBQUk9DX0VWRU5UX1BUUkFDRTsN CiAJZXYtPmV2ZW50X2RhdGEucHRyYWNlLnByb2Nlc3NfcGlkICA9IHRhc2stPnBpZDsNCiAJZXYt PmV2ZW50X2RhdGEucHRyYWNlLnByb2Nlc3NfdGdpZCA9IHRhc2stPnRnaWQ7DQpAQCAtMjIwLDE3 ICsyMzIsMTcgQEAgdm9pZCBwcm9jX2NvbW1fY29ubmVjdG9yKHN0cnVjdCB0YXNrX3N0cnVjdCAq dGFzaykNCiAJc3RydWN0IGNuX21zZyAqbXNnOw0KIAlzdHJ1Y3QgcHJvY19ldmVudCAqZXY7DQog CXN0cnVjdCB0aW1lc3BlYyB0czsNCi0JX191OCBidWZmZXJbQ05fUFJPQ19NU0dfU0laRV07DQor CV9fdTggYnVmZmVyW0NOX1BST0NfTVNHX1NJWkVdIF9fYWxpZ25lZCg4KTsNCiANCiAJaWYgKGF0 b21pY19yZWFkKCZwcm9jX2V2ZW50X251bV9saXN0ZW5lcnMpIDwgMSkNCiAJCXJldHVybjsNCiAN Ci0JbXNnID0gKHN0cnVjdCBjbl9tc2cgKilidWZmZXI7DQorCW1zZyA9IGJ1ZmZlcl90b19jbl9t c2coYnVmZmVyKTsNCiAJZXYgPSAoc3RydWN0IHByb2NfZXZlbnQgKiltc2ctPmRhdGE7DQogCW1l bXNldCgmZXYtPmV2ZW50X2RhdGEsIDAsIHNpemVvZihldi0+ZXZlbnRfZGF0YSkpOw0KIAlnZXRf c2VxKCZtc2ctPnNlcSwgJmV2LT5jcHUpOw0KIAlrdGltZV9nZXRfdHMoJnRzKTsgLyogZ2V0IGhp Z2ggcmVzIG1vbm90b25pYyB0aW1lc3RhbXAgKi8NCi0JcHV0X3VuYWxpZ25lZCh0aW1lc3BlY190 b19ucygmdHMpLCAoX191NjQgKikmZXYtPnRpbWVzdGFtcF9ucyk7DQorCWV2LT50aW1lc3RhbXBf bnMgPSB0aW1lc3BlY190b19ucygmdHMpOw0KIAlldi0+d2hhdCA9IFBST0NfRVZFTlRfQ09NTTsN CiAJZXYtPmV2ZW50X2RhdGEuY29tbS5wcm9jZXNzX3BpZCAgPSB0YXNrLT5waWQ7DQogCWV2LT5l dmVudF9kYXRhLmNvbW0ucHJvY2Vzc190Z2lkID0gdGFzay0+dGdpZDsNCkBAIC0yNDcsMTggKzI1 OSwxOCBAQCB2b2lkIHByb2NfZXhpdF9jb25uZWN0b3Ioc3RydWN0IHRhc2tfc3RydWN0ICp0YXNr KQ0KIHsNCiAJc3RydWN0IGNuX21zZyAqbXNnOw0KIAlzdHJ1Y3QgcHJvY19ldmVudCAqZXY7DQot CV9fdTggYnVmZmVyW0NOX1BST0NfTVNHX1NJWkVdOw0KKwlfX3U4IGJ1ZmZlcltDTl9QUk9DX01T R19TSVpFXSBfX2FsaWduZWQoOCk7DQogCXN0cnVjdCB0aW1lc3BlYyB0czsNCiANCiAJaWYgKGF0 b21pY19yZWFkKCZwcm9jX2V2ZW50X251bV9saXN0ZW5lcnMpIDwgMSkNCiAJCXJldHVybjsNCiAN Ci0JbXNnID0gKHN0cnVjdCBjbl9tc2cqKWJ1ZmZlcjsNCisJbXNnID0gYnVmZmVyX3RvX2NuX21z ZyhidWZmZXIpOw0KIAlldiA9IChzdHJ1Y3QgcHJvY19ldmVudCopbXNnLT5kYXRhOw0KIAltZW1z ZXQoJmV2LT5ldmVudF9kYXRhLCAwLCBzaXplb2YoZXYtPmV2ZW50X2RhdGEpKTsNCiAJZ2V0X3Nl cSgmbXNnLT5zZXEsICZldi0+Y3B1KTsNCiAJa3RpbWVfZ2V0X3RzKCZ0cyk7IC8qIGdldCBoaWdo IHJlcyBtb25vdG9uaWMgdGltZXN0YW1wICovDQotCXB1dF91bmFsaWduZWQodGltZXNwZWNfdG9f bnMoJnRzKSwgKF9fdTY0ICopJmV2LT50aW1lc3RhbXBfbnMpOw0KKwlldi0+dGltZXN0YW1wX25z ID0gdGltZXNwZWNfdG9fbnMoJnRzKTsNCiAJZXYtPndoYXQgPSBQUk9DX0VWRU5UX0VYSVQ7DQog CWV2LT5ldmVudF9kYXRhLmV4aXQucHJvY2Vzc19waWQgPSB0YXNrLT5waWQ7DQogCWV2LT5ldmVu dF9kYXRhLmV4aXQucHJvY2Vzc190Z2lkID0gdGFzay0+dGdpZDsNCkBAIC0yODQsMTggKzI5Niwx OCBAQCBzdGF0aWMgdm9pZCBjbl9wcm9jX2FjayhpbnQgZXJyLCBpbnQgcmN2ZF9zZXEsIGludCBy Y3ZkX2FjaykNCiB7DQogCXN0cnVjdCBjbl9tc2cgKm1zZzsNCiAJc3RydWN0IHByb2NfZXZlbnQg KmV2Ow0KLQlfX3U4IGJ1ZmZlcltDTl9QUk9DX01TR19TSVpFXTsNCisJX191OCBidWZmZXJbQ05f UFJPQ19NU0dfU0laRV0gX19hbGlnbmVkKDgpOw0KIAlzdHJ1Y3QgdGltZXNwZWMgdHM7DQogDQog CWlmIChhdG9taWNfcmVhZCgmcHJvY19ldmVudF9udW1fbGlzdGVuZXJzKSA8IDEpDQogCQlyZXR1 cm47DQogDQotCW1zZyA9IChzdHJ1Y3QgY25fbXNnKilidWZmZXI7DQorCW1zZyA9IGJ1ZmZlcl90 b19jbl9tc2coYnVmZmVyKTsNCiAJZXYgPSAoc3RydWN0IHByb2NfZXZlbnQqKW1zZy0+ZGF0YTsN CiAJbWVtc2V0KCZldi0+ZXZlbnRfZGF0YSwgMCwgc2l6ZW9mKGV2LT5ldmVudF9kYXRhKSk7DQog CW1zZy0+c2VxID0gcmN2ZF9zZXE7DQogCWt0aW1lX2dldF90cygmdHMpOyAvKiBnZXQgaGlnaCBy ZXMgbW9ub3RvbmljIHRpbWVzdGFtcCAqLw0KLQlwdXRfdW5hbGlnbmVkKHRpbWVzcGVjX3RvX25z KCZ0cyksIChfX3U2NCAqKSZldi0+dGltZXN0YW1wX25zKTsNCisJZXYtPnRpbWVzdGFtcF9ucyA9 IHRpbWVzcGVjX3RvX25zKCZ0cyk7DQogCWV2LT5jcHUgPSAtMTsNCiAJZXYtPndoYXQgPSBQUk9D X0VWRU5UX05PTkU7DQogCWV2LT5ldmVudF9kYXRhLmFjay5lcnIgPSBlcnI7DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncGlvL2dwaW8tbXBjOHh4eC5jIGIvZHJpdmVycy9ncGlvL2dwaW8tbXBjOHh4 eC5jDQppbmRleCBlZGNmZmQ2Li4zNGJlMTNiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncGlvL2dw aW8tbXBjOHh4eC5jDQorKysgYi9kcml2ZXJzL2dwaW8vZ3Bpby1tcGM4eHh4LmMNCkBAIC02OSwx MCArNjksMTQgQEAgc3RhdGljIGludCBtcGM4NTcyX2dwaW9fZ2V0KHN0cnVjdCBncGlvX2NoaXAg KmdjLCB1bnNpZ25lZCBpbnQgZ3BpbykNCiAJdTMyIHZhbDsNCiAJc3RydWN0IG9mX21tX2dwaW9f Y2hpcCAqbW0gPSB0b19vZl9tbV9ncGlvX2NoaXAoZ2MpOw0KIAlzdHJ1Y3QgbXBjOHh4eF9ncGlv X2NoaXAgKm1wYzh4eHhfZ2MgPSB0b19tcGM4eHh4X2dwaW9fY2hpcChtbSk7DQorCXUzMiBvdXRf bWFzaywgb3V0X3NoYWRvdzsNCiANCi0JdmFsID0gaW5fYmUzMihtbS0+cmVncyArIEdQSU9fREFU KSAmIH5pbl9iZTMyKG1tLT5yZWdzICsgR1BJT19ESVIpOw0KKwlvdXRfbWFzayA9IGluX2JlMzIo bW0tPnJlZ3MgKyBHUElPX0RJUik7DQogDQotCXJldHVybiAodmFsIHwgbXBjOHh4eF9nYy0+ZGF0 YSkgJiBtcGM4eHh4X2dwaW8ybWFzayhncGlvKTsNCisJdmFsID0gaW5fYmUzMihtbS0+cmVncyAr IEdQSU9fREFUKSAmIH5vdXRfbWFzazsNCisJb3V0X3NoYWRvdyA9IG1wYzh4eHhfZ2MtPmRhdGEg JiBvdXRfbWFzazsNCisNCisJcmV0dXJuICh2YWwgfCBvdXRfc2hhZG93KSAmIG1wYzh4eHhfZ3Bp bzJtYXNrKGdwaW8pOw0KIH0NCiANCiBzdGF0aWMgaW50IG1wYzh4eHhfZ3Bpb19nZXQoc3RydWN0 IGdwaW9fY2hpcCAqZ2MsIHVuc2lnbmVkIGludCBncGlvKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYw0KaW5kZXggZWUyOWMxZi4uNmQzNjY5NSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jDQpAQCAtNjA2Myw3ICs2MDYzLDkgQEAgc3RhdGljIHZvaWQgaTl4eF91 cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UpDQogCQlpbnRlbF9j cnRjLT5jdXJzb3JfdmlzaWJsZSA9IHZpc2libGU7DQogCX0NCiAJLyogYW5kIGNvbW1pdCBjaGFu Z2VzIG9uIG5leHQgdmJsYW5rICovDQorCVBPU1RJTkdfUkVBRChDVVJDTlRSKHBpcGUpKTsNCiAJ STkxNV9XUklURShDVVJCQVNFKHBpcGUpLCBiYXNlKTsNCisJUE9TVElOR19SRUFEKENVUkJBU0Uo cGlwZSkpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBpdmJfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJt X2NydGMgKmNydGMsIHUzMiBiYXNlKQ0KQEAgLTYwODgsNyArNjA5MCw5IEBAIHN0YXRpYyB2b2lk IGl2Yl91cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UpDQogCQlp bnRlbF9jcnRjLT5jdXJzb3JfdmlzaWJsZSA9IHZpc2libGU7DQogCX0NCiAJLyogYW5kIGNvbW1p dCBjaGFuZ2VzIG9uIG5leHQgdmJsYW5rICovDQorCVBPU1RJTkdfUkVBRChDVVJDTlRSX0lWQihw aXBlKSk7DQogCUk5MTVfV1JJVEUoQ1VSQkFTRV9JVkIocGlwZSksIGJhc2UpOw0KKwlQT1NUSU5H X1JFQUQoQ1VSQkFTRV9JVkIocGlwZSkpOw0KIH0NCiANCiAvKiBJZiBuby1wYXJ0IG9mIHRoZSBj dXJzb3IgaXMgdmlzaWJsZSBvbiB0aGUgZnJhbWVidWZmZXIsIHRoZW4gdGhlIEdQVSBtYXkgaGFu Zy4uLiAqLw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2Vt LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dlbS5jDQppbmRleCA3Y2UzZmRl Li5iZDBiMWZjIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9n ZW0uYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9nZW0uYw0KQEAgLTI4 MSw3ICsyODEsOCBAQCB2YWxpZGF0ZV9maW5pX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwg c3RydWN0IG5vdXZlYXVfZmVuY2UgKmZlbmNlKQ0KIAlsaXN0X2Zvcl9lYWNoX3NhZmUoZW50cnks IHRtcCwgbGlzdCkgew0KIAkJbnZibyA9IGxpc3RfZW50cnkoZW50cnksIHN0cnVjdCBub3V2ZWF1 X2JvLCBlbnRyeSk7DQogDQotCQlub3V2ZWF1X2JvX2ZlbmNlKG52Ym8sIGZlbmNlKTsNCisJCWlm IChsaWtlbHkoZmVuY2UpKQ0KKwkJCW5vdXZlYXVfYm9fZmVuY2UobnZibywgZmVuY2UpOw0KIA0K IAkJaWYgKHVubGlrZWx5KG52Ym8tPnZhbGlkYXRlX21hcHBlZCkpIHsNCiAJCQl0dG1fYm9fa3Vu bWFwKCZudmJvLT5rbWFwKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9sZWdhY3lfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbGVnYWN5 X2NydGMuYw0KaW5kZXggZGFhZGYyMS4uYTkyMzhiMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2xlZ2FjeV9jcnRjLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2xlZ2FjeV9jcnRjLmMNCkBAIC00MTYsMTIgKzQxNiw0MCBAQCBpbnQgcmFk ZW9uX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLA0KIAkvKiBQaW4gZnJh bWVidWZmZXIgJiBnZXQgdGlsbGluZyBpbmZvcm1hdGlvbnMgKi8NCiAJb2JqID0gcmFkZW9uX2Zi LT5vYmo7DQogCXJibyA9IGdlbV90b19yYWRlb25fYm8ob2JqKTsNCityZXRyeToNCiAJciA9IHJh ZGVvbl9ib19yZXNlcnZlKHJibywgZmFsc2UpOw0KIAlpZiAodW5saWtlbHkociAhPSAwKSkNCiAJ CXJldHVybiByOw0KIAlyID0gcmFkZW9uX2JvX3BpbihyYm8sIFJBREVPTl9HRU1fRE9NQUlOX1ZS QU0sICZiYXNlKTsNCiAJaWYgKHVubGlrZWx5KHIgIT0gMCkpIHsNCiAJCXJhZGVvbl9ib191bnJl c2VydmUocmJvKTsNCisNCisJCS8qIE9uIG9sZCBHUFUgbGlrZSBSTjUwIHdpdGggbGl0dGxlIHZy YW0gcGluaW5nIGNhbiBmYWlscyBiZWNhdXNlDQorCQkgKiBjdXJyZW50IGZiIGlzIHRha2luZyBh bGwgc3BhY2UgbmVlZGVkLiBTbyBpbnN0ZWFkIG9mIHVucGluaW5nDQorCQkgKiB0aGUgb2xkIGJ1 ZmZlciBhZnRlciBwaW5pbmcgdGhlIG5ldyBvbmUsIGZpcnN0IHVucGluIG9sZCBvbmUNCisJCSAq IGFuZCB0aGVuIHJldHJ5IHBpbmluZyBuZXcgb25lLg0KKwkJICoNCisJCSAqIEFzIG9ubHkgbWFz dGVyIGNhbiBzZXQgbW9kZSBvbmx5IG1hc3RlciBjYW4gcGluIGFuZCBpdCBpcw0KKwkJICogdW5s aWtlbHkgdGhlIG1hc3RlciBjbGllbnQgd2lsbCByYWNlIHdpdGggaXRzZWxmIGVzcGVjaWFseQ0K KwkJICogb24gdGhvc2Ugb2xkIGdwdSB3aXRoIHNpbmdsZSBjcnRjLg0KKwkJICoNCisJCSAqIFdl IGRvbid0IHNodXRkb3duIHRoZSBkaXNwbGF5IGNvbnRyb2xsZXIgYmVjYXVzZSBuZXcgYnVmZmVy DQorCQkgKiB3aWxsIGVuZCB1cCBpbiBzYW1lIHNwb3QuDQorCQkgKi8NCisJCWlmICghYXRvbWlj ICYmIGZiICYmIGZiICE9IGNydGMtPmZiKSB7DQorCQkJc3RydWN0IHJhZGVvbl9ibyAqb2xkX3Ji bzsNCisJCQl1bnNpZ25lZCBsb25nIG5zaXplLCBvc2l6ZTsNCisNCisJCQlvbGRfcmJvID0gZ2Vt X3RvX3JhZGVvbl9ibyh0b19yYWRlb25fZnJhbWVidWZmZXIoZmIpLT5vYmopOw0KKwkJCW9zaXpl ID0gcmFkZW9uX2JvX3NpemUob2xkX3Jibyk7DQorCQkJbnNpemUgPSByYWRlb25fYm9fc2l6ZShy Ym8pOw0KKwkJCWlmIChuc2l6ZSA8PSBvc2l6ZSAmJiAhcmFkZW9uX2JvX3Jlc2VydmUob2xkX3Ji bywgZmFsc2UpKSB7DQorCQkJCXJhZGVvbl9ib191bnBpbihvbGRfcmJvKTsNCisJCQkJcmFkZW9u X2JvX3VucmVzZXJ2ZShvbGRfcmJvKTsNCisJCQkJZmIgPSBOVUxMOw0KKwkJCQlnb3RvIHJldHJ5 Ow0KKwkJCX0NCisJCX0NCiAJCXJldHVybiAtRUlOVkFMOw0KIAl9DQogCXJhZGVvbl9ib19nZXRf dGlsaW5nX2ZsYWdzKHJibywgJnRpbGluZ19mbGFncywgTlVMTCk7DQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMN CmluZGV4IDBkMjdiZmYuLjIyYTg5Y2QgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9iby5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jDQpAQCAtMTEwMSwy NCArMTEwMSwzMiBAQCBvdXRfdW5sb2NrOg0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMg aW50IHR0bV9ib19tZW1fY29tcGF0KHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsDQot CQkJICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkNCitzdGF0aWMgYm9vbCB0dG1fYm9fbWVt X2NvbXBhdChzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LA0KKwkJCSAgICAgIHN0cnVj dCB0dG1fbWVtX3JlZyAqbWVtLA0KKwkJCSAgICAgIHVpbnQzMl90ICpuZXdfZmxhZ3MpDQogew0K IAlpbnQgaTsNCiANCiAJaWYgKG1lbS0+bW1fbm9kZSAmJiBwbGFjZW1lbnQtPmxwZm4gIT0gMCAm Jg0KIAkgICAgKG1lbS0+c3RhcnQgPCBwbGFjZW1lbnQtPmZwZm4gfHwNCiAJICAgICBtZW0tPnN0 YXJ0ICsgbWVtLT5udW1fcGFnZXMgPiBwbGFjZW1lbnQtPmxwZm4pKQ0KLQkJcmV0dXJuIC0xOw0K KwkJcmV0dXJuIGZhbHNlOw0KIA0KIAlmb3IgKGkgPSAwOyBpIDwgcGxhY2VtZW50LT5udW1fcGxh Y2VtZW50OyBpKyspIHsNCi0JCWlmICgocGxhY2VtZW50LT5wbGFjZW1lbnRbaV0gJiBtZW0tPnBs YWNlbWVudCAmDQotCQkJVFRNX1BMX01BU0tfQ0FDSElORykgJiYNCi0JCQkocGxhY2VtZW50LT5w bGFjZW1lbnRbaV0gJiBtZW0tPnBsYWNlbWVudCAmDQotCQkJVFRNX1BMX01BU0tfTUVNKSkNCi0J CQlyZXR1cm4gaTsNCisJCSpuZXdfZmxhZ3MgPSBwbGFjZW1lbnQtPnBsYWNlbWVudFtpXTsNCisJ CWlmICgoKm5ld19mbGFncyAmIG1lbS0+cGxhY2VtZW50ICYgVFRNX1BMX01BU0tfQ0FDSElORykg JiYNCisJCSAgICAoKm5ld19mbGFncyAmIG1lbS0+cGxhY2VtZW50ICYgVFRNX1BMX01BU0tfTUVN KSkNCisJCQlyZXR1cm4gdHJ1ZTsNCisJfQ0KKw0KKwlmb3IgKGkgPSAwOyBpIDwgcGxhY2VtZW50 LT5udW1fYnVzeV9wbGFjZW1lbnQ7IGkrKykgew0KKwkJKm5ld19mbGFncyA9IHBsYWNlbWVudC0+ YnVzeV9wbGFjZW1lbnRbaV07DQorCQlpZiAoKCpuZXdfZmxhZ3MgJiBtZW0tPnBsYWNlbWVudCAm IFRUTV9QTF9NQVNLX0NBQ0hJTkcpICYmDQorCQkgICAgKCpuZXdfZmxhZ3MgJiBtZW0tPnBsYWNl bWVudCAmIFRUTV9QTF9NQVNLX01FTSkpDQorCQkJcmV0dXJuIHRydWU7DQogCX0NCi0JcmV0dXJu IC0xOw0KKw0KKwlyZXR1cm4gZmFsc2U7DQogfQ0KIA0KIGludCB0dG1fYm9fdmFsaWRhdGUoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywNCkBAIC0xMTI3LDYgKzExMzUsNyBAQCBpbnQgdHRt X2JvX3ZhbGlkYXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sDQogCQkJYm9vbCBub193 YWl0X2dwdSkNCiB7DQogCWludCByZXQ7DQorCXVpbnQzMl90IG5ld19mbGFnczsNCiANCiAJQlVH X09OKCFhdG9taWNfcmVhZCgmYm8tPnJlc2VydmVkKSk7DQogCS8qIENoZWNrIHRoYXQgcmFuZ2Ug aXMgdmFsaWQgKi8NCkBAIC0xMTM3LDggKzExNDYsNyBAQCBpbnQgdHRtX2JvX3ZhbGlkYXRlKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sDQogCS8qDQogCSAqIENoZWNrIHdoZXRoZXIgd2Ug bmVlZCB0byBtb3ZlIGJ1ZmZlci4NCiAJICovDQotCXJldCA9IHR0bV9ib19tZW1fY29tcGF0KHBs YWNlbWVudCwgJmJvLT5tZW0pOw0KLQlpZiAocmV0IDwgMCkgew0KKwlpZiAoIXR0bV9ib19tZW1f Y29tcGF0KHBsYWNlbWVudCwgJmJvLT5tZW0sICZuZXdfZmxhZ3MpKSB7DQogCQlyZXQgPSB0dG1f Ym9fbW92ZV9idWZmZXIoYm8sIHBsYWNlbWVudCwgaW50ZXJydXB0aWJsZSwgbm9fd2FpdF9yZXNl cnZlLCBub193YWl0X2dwdSk7DQogCQlpZiAocmV0KQ0KIAkJCXJldHVybiByZXQ7DQpAQCAtMTE0 Nyw3ICsxMTU1LDcgQEAgaW50IHR0bV9ib192YWxpZGF0ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLA0KIAkJICogVXNlIHRoZSBhY2Nlc3MgYW5kIG90aGVyIG5vbi1tYXBwaW5nLXJlbGF0 ZWQgZmxhZyBiaXRzIGZyb20NCiAJCSAqIHRoZSBjb21wYXRpYmxlIG1lbW9yeSBwbGFjZW1lbnQg ZmxhZ3MgdG8gdGhlIGFjdGl2ZSBmbGFncw0KIAkJICovDQotCQl0dG1fZmxhZ19tYXNrZWQoJmJv LT5tZW0ucGxhY2VtZW50LCBwbGFjZW1lbnQtPnBsYWNlbWVudFtyZXRdLA0KKwkJdHRtX2ZsYWdf bWFza2VkKCZiby0+bWVtLnBsYWNlbWVudCwgbmV3X2ZsYWdzLA0KIAkJCQl+VFRNX1BMX01BU0tf TUVNVFlQRSk7DQogCX0NCiAJLyoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtbXVsdGl0 b3VjaC5jIGIvZHJpdmVycy9oaWQvaGlkLW11bHRpdG91Y2guYw0KaW5kZXggMTNhZjBmMS4uYTYw NWJhMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaGlkL2hpZC1tdWx0aXRvdWNoLmMNCisrKyBiL2Ry aXZlcnMvaGlkL2hpZC1tdWx0aXRvdWNoLmMNCkBAIC02Niw3ICs2Niw3IEBAIHN0cnVjdCBtdF9k ZXZpY2Ugew0KIAl1bnNpZ25lZCBsYXN0X2ZpZWxkX2luZGV4OwkvKiBsYXN0IGZpZWxkIGluZGV4 IG9mIHRoZSByZXBvcnQgKi8NCiAJdW5zaWduZWQgbGFzdF9zbG90X2ZpZWxkOwkvKiB0aGUgbGFz dCBmaWVsZCBvZiBhIHNsb3QgKi8NCiAJaW50IGxhc3RfbXRfY29sbGVjdGlvbjsJLyogbGFzdCBr bm93biBtdC1yZWxhdGVkIGNvbGxlY3Rpb24gKi8NCi0JX19zOCBpbnB1dG1vZGU7CQkvKiBJbnB1 dE1vZGUgSElEIGZlYXR1cmUsIC0xIGlmIG5vbi1leGlzdGVudCAqLw0KKwlfX3MxNiBpbnB1dG1v ZGU7CS8qIElucHV0TW9kZSBISUQgZmVhdHVyZSwgLTEgaWYgbm9uLWV4aXN0ZW50ICovDQogCV9f dTggbnVtX3JlY2VpdmVkOwkvKiBob3cgbWFueSBjb250YWN0cyB3ZSByZWNlaXZlZCAqLw0KIAlf X3U4IG51bV9leHBlY3RlZDsJLyogZXhwZWN0ZWQgbGFzdCBjb250YWN0IGluZGV4ICovDQogCV9f dTggbWF4Y29udGFjdHM7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9sbTc4LmMgYi9kcml2 ZXJzL2h3bW9uL2xtNzguYw0KaW5kZXggNmRmMGI0Ni4uYTQyYTdiMCAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvaHdtb24vbG03OC5jDQorKysgYi9kcml2ZXJzL2h3bW9uL2xtNzguYw0KQEAgLTkwLDYg KzkwLDggQEAgc3RhdGljIGlubGluZSB1OCBGQU5fVE9fUkVHKGxvbmcgcnBtLCBpbnQgZGl2KQ0K IHsNCiAJaWYgKHJwbSA8PSAwKQ0KIAkJcmV0dXJuIDI1NTsNCisJaWYgKHJwbSA+IDEzNTAwMDAp DQorCQlyZXR1cm4gMTsNCiAJcmV0dXJuIFNFTlNPUlNfTElNSVQoKDEzNTAwMDAgKyBycG0gKiBk aXYgLyAyKSAvIChycG0gKiBkaXYpLCAxLCAyNTQpOw0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2h3bW9uL2xtOTAuYyBiL2RyaXZlcnMvaHdtb24vbG05MC5jDQppbmRleCA2MTViYzRmLi42 ZDVlY2UxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9od21vbi9sbTkwLmMNCisrKyBiL2RyaXZlcnMv aHdtb24vbG05MC5jDQpAQCAtMjY4LDcgKzI2OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbG05 MF9wYXJhbXMgbG05MF9wYXJhbXNbXSA9IHsNCiAJW21heDY2OTZdID0gew0KIAkJLmZsYWdzID0g TE05MF9IQVZFX0VNRVJHRU5DWQ0KIAkJICB8IExNOTBfSEFWRV9FTUVSR0VOQ1lfQUxBUk0gfCBM TTkwX0hBVkVfVEVNUDMsDQotCQkuYWxlcnRfYWxhcm1zID0gMHgxODdjLA0KKwkJLmFsZXJ0X2Fs YXJtcyA9IDB4MWM3YywNCiAJCS5tYXhfY29udnJhdGUgPSA2LA0KIAkJLnJlZ19sb2NhbF9leHQg PSBNQVg2NjU3X1JFR19SX0xPQ0FMX1RFTVBMLA0KIAl9LA0KQEAgLTE0NzQsMTkgKzE0NzQsMjIg QEAgc3RhdGljIHZvaWQgbG05MF9hbGVydChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCB1bnNp Z25lZCBpbnQgZmxhZykNCiAJaWYgKChhbGFybXMgJiAweDdmKSA9PSAwICYmIChhbGFybXMyICYg MHhmZSkgPT0gMCkgew0KIAkJZGV2X2luZm8oJmNsaWVudC0+ZGV2LCAiRXZlcnl0aGluZyBPS1xu Iik7DQogCX0gZWxzZSB7DQotCQlpZiAoYWxhcm1zICYgMHg2MSkNCisJCWlmICgoYWxhcm1zICYg MHg2MSkgfHwgKGFsYXJtczIgJiAweDgwKSkNCiAJCQlkZXZfd2FybigmY2xpZW50LT5kZXYsDQog CQkJCSAidGVtcCVkIG91dCBvZiByYW5nZSwgcGxlYXNlIGNoZWNrIVxuIiwgMSk7DQotCQlpZiAo YWxhcm1zICYgMHgxYSkNCisJCWlmICgoYWxhcm1zICYgMHgxYSkgfHwgKGFsYXJtczIgJiAweDIw KSkNCiAJCQlkZXZfd2FybigmY2xpZW50LT5kZXYsDQogCQkJCSAidGVtcCVkIG91dCBvZiByYW5n ZSwgcGxlYXNlIGNoZWNrIVxuIiwgMik7DQogCQlpZiAoYWxhcm1zICYgMHgwNCkNCiAJCQlkZXZf d2FybigmY2xpZW50LT5kZXYsDQogCQkJCSAidGVtcCVkIGRpb2RlIG9wZW4sIHBsZWFzZSBjaGVj ayFcbiIsIDIpOw0KIA0KLQkJaWYgKGFsYXJtczIgJiAweDE4KQ0KKwkJaWYgKGFsYXJtczIgJiAw eDVhKQ0KIAkJCWRldl93YXJuKCZjbGllbnQtPmRldiwNCiAJCQkJICJ0ZW1wJWQgb3V0IG9mIHJh bmdlLCBwbGVhc2UgY2hlY2shXG4iLCAzKTsNCisJCWlmIChhbGFybXMyICYgMHgwNCkNCisJCQlk ZXZfd2FybigmY2xpZW50LT5kZXYsDQorCQkJCSAidGVtcCVkIGRpb2RlIG9wZW4sIHBsZWFzZSBj aGVjayFcbiIsIDMpOw0KIA0KIAkJLyogRGlzYWJsZSBBTEVSVCMgb3V0cHV0LCBiZWNhdXNlIHRo ZXNlIGNoaXBzIGRvbid0IGltcGxlbWVudA0KIAkJICBTTUJ1cyBhbGVydCBjb3JyZWN0bHk7IHRo ZXkgc2hvdWxkIG9ubHkgaG9sZCB0aGUgYWxlcnQgbGluZQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv aHdtb24vc2lzNTU5NS5jIGIvZHJpdmVycy9od21vbi9zaXM1NTk1LmMNCmluZGV4IDQ3ZDdjZTku LjVhYjY5NTMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2h3bW9uL3NpczU1OTUuYw0KKysrIGIvZHJp dmVycy9od21vbi9zaXM1NTk1LmMNCkBAIC0xMzMsNiArMTMzLDggQEAgc3RhdGljIGlubGluZSB1 OCBGQU5fVE9fUkVHKGxvbmcgcnBtLCBpbnQgZGl2KQ0KIHsNCiAJaWYgKHJwbSA8PSAwKQ0KIAkJ cmV0dXJuIDI1NTsNCisJaWYgKHJwbSA+IDEzNTAwMDApDQorCQlyZXR1cm4gMTsNCiAJcmV0dXJu IFNFTlNPUlNfTElNSVQoKDEzNTAwMDAgKyBycG0gKiBkaXYgLyAyKSAvIChycG0gKiBkaXYpLCAx LCAyNTQpOw0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL3Z0ODIzMS5jIGIvZHJp dmVycy9od21vbi92dDgyMzEuYw0KaW5kZXggZGIzYjJlOC4uNmRmNjdhOSAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvaHdtb24vdnQ4MjMxLmMNCisrKyBiL2RyaXZlcnMvaHdtb24vdnQ4MjMxLmMNCkBA IC0xMzksNyArMTM5LDcgQEAgc3RhdGljIGNvbnN0IHU4IHJlZ3RlbXBtaW5bXSA9IHsgMHgzYSwg MHgzZSwgMHgyYywgMHgyZSwgMHgzMCwgMHgzMiB9Ow0KICovDQogc3RhdGljIGlubGluZSB1OCBG QU5fVE9fUkVHKGxvbmcgcnBtLCBpbnQgZGl2KQ0KIHsNCi0JaWYgKHJwbSA9PSAwKQ0KKwlpZiAo cnBtIDw9IDAgfHwgcnBtID4gMTMxMDcyMCkNCiAJCXJldHVybiAwOw0KIAlyZXR1cm4gU0VOU09S U19MSU1JVCgxMzEwNzIwIC8gKHJwbSAqIGRpdiksIDEsIDI1NSk7DQogfQ0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvaHdtb24vdzgzbDc4Nm5nLmMgYi9kcml2ZXJzL2h3bW9uL3c4M2w3ODZuZy5jDQpp bmRleCAwMjU0ZTE4Li5iOWMwYTdmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9od21vbi93ODNsNzg2 bmcuYw0KKysrIGIvZHJpdmVycy9od21vbi93ODNsNzg2bmcuYw0KQEAgLTQ0Nyw4ICs0NDcsMTEg QEAgc3RvcmVfcHdtKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUg KmF0dHIsDQogCXN0cnVjdCB3ODNsNzg2bmdfZGF0YSAqZGF0YSA9IGkyY19nZXRfY2xpZW50ZGF0 YShjbGllbnQpOw0KIAl1MzIgdmFsID0gU0VOU09SU19MSU1JVChzaW1wbGVfc3RydG91bChidWYs IE5VTEwsIDEwKSwgMCwgMjU1KTsNCiANCisJdmFsID0gRElWX1JPVU5EX0NMT1NFU1QodmFsLCAw eDExKTsNCisNCiAJbXV0ZXhfbG9jaygmZGF0YS0+dXBkYXRlX2xvY2spOw0KLQlkYXRhLT5wd21b bnJdID0gdmFsOw0KKwlkYXRhLT5wd21bbnJdID0gdmFsICogMHgxMTsNCisJdmFsIHw9IHc4M2w3 ODZuZ19yZWFkX3ZhbHVlKGNsaWVudCwgVzgzTDc4Nk5HX1JFR19QV01bbnJdKSAmIDB4ZjA7DQog CXc4M2w3ODZuZ193cml0ZV92YWx1ZShjbGllbnQsIFc4M0w3ODZOR19SRUdfUFdNW25yXSwgdmFs KTsNCiAJbXV0ZXhfdW5sb2NrKCZkYXRhLT51cGRhdGVfbG9jayk7DQogCXJldHVybiBjb3VudDsN CkBAIC00NzEsNyArNDc0LDcgQEAgc3RvcmVfcHdtX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLA0KIAltdXRleF9sb2NrKCZkYXRhLT51cGRh dGVfbG9jayk7DQogCXJlZyA9IHc4M2w3ODZuZ19yZWFkX3ZhbHVlKGNsaWVudCwgVzgzTDc4Nk5H X1JFR19GQU5fQ0ZHKTsNCiAJZGF0YS0+cHdtX2VuYWJsZVtucl0gPSB2YWw7DQotCXJlZyAmPSB+ KDB4MDIgPDwgVzgzTDc4Nk5HX1BXTV9FTkFCTEVfU0hJRlRbbnJdKTsNCisJcmVnICY9IH4oMHgw MyA8PCBXODNMNzg2TkdfUFdNX0VOQUJMRV9TSElGVFtucl0pOw0KIAlyZWcgfD0gKHZhbCAtIDEp IDw8IFc4M0w3ODZOR19QV01fRU5BQkxFX1NISUZUW25yXTsNCiAJdzgzbDc4Nm5nX3dyaXRlX3Zh bHVlKGNsaWVudCwgVzgzTDc4Nk5HX1JFR19GQU5fQ0ZHLCByZWcpOw0KIAltdXRleF91bmxvY2so JmRhdGEtPnVwZGF0ZV9sb2NrKTsNCkBAIC03NDAsOSArNzQzLDEwIEBAIHN0YXRpYyBzdHJ1Y3Qg dzgzbDc4Nm5nX2RhdGEgKnc4M2w3ODZuZ191cGRhdGVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRl dikNCiAJCQkgICAgKChwd21jZmcgPj4gVzgzTDc4Nk5HX1BXTV9NT0RFX1NISUZUW2ldKSAmIDEp DQogCQkJICAgID8gMCA6IDE7DQogCQkJZGF0YS0+cHdtX2VuYWJsZVtpXSA9DQotCQkJICAgICgo cHdtY2ZnID4+IFc4M0w3ODZOR19QV01fRU5BQkxFX1NISUZUW2ldKSAmIDIpICsgMTsNCi0JCQlk YXRhLT5wd21baV0gPSB3ODNsNzg2bmdfcmVhZF92YWx1ZShjbGllbnQsDQotCQkJICAgIFc4M0w3 ODZOR19SRUdfUFdNW2ldKTsNCisJCQkgICAgKChwd21jZmcgPj4gVzgzTDc4Nk5HX1BXTV9FTkFC TEVfU0hJRlRbaV0pICYgMykgKyAxOw0KKwkJCWRhdGEtPnB3bVtpXSA9DQorCQkJICAgICh3ODNs Nzg2bmdfcmVhZF92YWx1ZShjbGllbnQsIFc4M0w3ODZOR19SRUdfUFdNW2ldKQ0KKwkJCSAgICAg JiAweDBmKSAqIDB4MTE7DQogCQl9DQogDQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmli YW5kL2h3L2lwYXRoL2lwYXRoX3VzZXJfc2RtYS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lw YXRoL2lwYXRoX3VzZXJfc2RtYS5jDQppbmRleCBmNWNiMTNiLi5jYzA0YjdiIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3VzZXJfc2RtYS5jDQorKysgYi9k cml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdXNlcl9zZG1hLmMNCkBAIC0yODAsOSAr MjgwLDcgQEAgc3RhdGljIGludCBpcGF0aF91c2VyX3NkbWFfcGluX3BhZ2VzKGNvbnN0IHN0cnVj dCBpcGF0aF9kZXZkYXRhICpkZCwNCiAJaW50IGo7DQogCWludCByZXQ7DQogDQotCXJldCA9IGdl dF91c2VyX3BhZ2VzKGN1cnJlbnQsIGN1cnJlbnQtPm1tLCBhZGRyLA0KLQkJCSAgICAgbnBhZ2Vz LCAwLCAxLCBwYWdlcywgTlVMTCk7DQotDQorCXJldCA9IGdldF91c2VyX3BhZ2VzX2Zhc3QoYWRk ciwgbnBhZ2VzLCAwLCBwYWdlcyk7DQogCWlmIChyZXQgIT0gbnBhZ2VzKSB7DQogCQlpbnQgaTsN CiANCkBAIC04MTEsMTAgKzgwOSw3IEBAIGludCBpcGF0aF91c2VyX3NkbWFfd3JpdGV2KHN0cnVj dCBpcGF0aF9kZXZkYXRhICpkZCwNCiAJd2hpbGUgKGRpbSkgew0KIAkJY29uc3QgaW50IG14cCA9 IDg7DQogDQotCQlkb3duX3dyaXRlKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOw0KIAkJcmV0ID0g aXBhdGhfdXNlcl9zZG1hX3F1ZXVlX3BrdHMoZGQsIHBxLCAmbGlzdCwgaW92LCBkaW0sIG14cCk7 DQotCQl1cF93cml0ZSgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsNCi0NCiAJCWlmIChyZXQgPD0g MCkNCiAJCQlnb3RvIGRvbmVfdW5sb2NrOw0KIAkJZWxzZSB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfdXNlcl9zZG1hLmMgYi9kcml2ZXJzL2luZmluaWJhbmQv aHcvcWliL3FpYl91c2VyX3NkbWEuYw0KaW5kZXggODI0NDIwOC4uNTczYjQ2MCAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3VzZXJfc2RtYS5jDQorKysgYi9kcml2 ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl91c2VyX3NkbWEuYw0KQEAgLTI4NCw4ICsyODQsNyBA QCBzdGF0aWMgaW50IHFpYl91c2VyX3NkbWFfcGluX3BhZ2VzKGNvbnN0IHN0cnVjdCBxaWJfZGV2 ZGF0YSAqZGQsDQogCWludCBqOw0KIAlpbnQgcmV0Ow0KIA0KLQlyZXQgPSBnZXRfdXNlcl9wYWdl cyhjdXJyZW50LCBjdXJyZW50LT5tbSwgYWRkciwNCi0JCQkgICAgIG5wYWdlcywgMCwgMSwgcGFn ZXMsIE5VTEwpOw0KKwlyZXQgPSBnZXRfdXNlcl9wYWdlc19mYXN0KGFkZHIsIG5wYWdlcywgMCwg cGFnZXMpOw0KIA0KIAlpZiAocmV0ICE9IG5wYWdlcykgew0KIAkJaW50IGk7DQpAQCAtODMwLDEw ICs4MjksNyBAQCBpbnQgcWliX3VzZXJfc2RtYV93cml0ZXYoc3RydWN0IHFpYl9jdHh0ZGF0YSAq cmNkLA0KIAl3aGlsZSAoZGltKSB7DQogCQljb25zdCBpbnQgbXhwID0gODsNCiANCi0JCWRvd25f d3JpdGUoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7DQogCQlyZXQgPSBxaWJfdXNlcl9zZG1hX3F1 ZXVlX3BrdHMoZGQsIHBxLCAmbGlzdCwgaW92LCBkaW0sIG14cCk7DQotCQl1cF93cml0ZSgmY3Vy cmVudC0+bW0tPm1tYXBfc2VtKTsNCi0NCiAJCWlmIChyZXQgPD0gMCkNCiAJCQlnb3RvIGRvbmVf dW5sb2NrOw0KIAkJZWxzZSB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2lzZG5sb29wL2lz ZG5sb29wLmMgYi9kcml2ZXJzL2lzZG4vaXNkbmxvb3AvaXNkbmxvb3AuYw0KaW5kZXggNTA5MTM1 Zi4uNGRmODBmYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaXNkbi9pc2RubG9vcC9pc2RubG9vcC5j DQorKysgYi9kcml2ZXJzL2lzZG4vaXNkbmxvb3AvaXNkbmxvb3AuYw0KQEAgLTEwODMsOCArMTA4 MywxMCBAQCBpc2RubG9vcF9zdGFydChpc2RubG9vcF9jYXJkICogY2FyZCwgaXNkbmxvb3Bfc2Rl ZiAqIHNkZWZwKQ0KIAkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjYXJkLT5pc2RubG9vcF9s b2NrLCBmbGFncyk7DQogCQkJCXJldHVybiAtRU5PTUVNOw0KIAkJCX0NCi0JCQlmb3IgKGkgPSAw OyBpIDwgMzsgaSsrKQ0KLQkJCQlzdHJjcHkoY2FyZC0+czBudW1baV0sIHNkZWYubnVtW2ldKTsN CisJCQlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7DQorCQkJCXN0cmxjcHkoY2FyZC0+czBudW1b aV0sIHNkZWYubnVtW2ldLA0KKwkJCQkJc2l6ZW9mKGNhcmQtPnMwbnVtWzBdKSk7DQorCQkJfQ0K IAkJCWJyZWFrOw0KIAkJY2FzZSBJU0ROX1BUWVBFXzFUUjY6DQogCQkJaWYgKGlzZG5sb29wX2Zh a2UoY2FyZCwgIkRSVjEuMDRUQy0xVFI2LUNBUEktQ05TLUJBU0lTLTI5LjExLjk1IiwNCkBAIC0x MDk3LDcgKzEwOTksNyBAQCBpc2RubG9vcF9zdGFydChpc2RubG9vcF9jYXJkICogY2FyZCwgaXNk bmxvb3Bfc2RlZiAqIHNkZWZwKQ0KIAkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjYXJkLT5p c2RubG9vcF9sb2NrLCBmbGFncyk7DQogCQkJCXJldHVybiAtRU5PTUVNOw0KIAkJCX0NCi0JCQlz dHJjcHkoY2FyZC0+czBudW1bMF0sIHNkZWYubnVtWzBdKTsNCisJCQlzdHJsY3B5KGNhcmQtPnMw bnVtWzBdLCBzZGVmLm51bVswXSwgc2l6ZW9mKGNhcmQtPnMwbnVtWzBdKSk7DQogCQkJY2FyZC0+ czBudW1bMV1bMF0gPSAnXDAnOw0KIAkJCWNhcmQtPnMwbnVtWzJdWzBdID0gJ1wwJzsNCiAJCQli cmVhazsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lzZG4vbUlTRE4vc29ja2V0LmMgYi9kcml2ZXJz L2lzZG4vbUlTRE4vc29ja2V0LmMNCmluZGV4IDczOGVhOGQuLjk4ZTgyNzQgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL2lzZG4vbUlTRE4vc29ja2V0LmMNCisrKyBiL2RyaXZlcnMvaXNkbi9tSVNETi9z b2NrZXQuYw0KQEAgLTExNyw3ICsxMTcsNiBAQCBtSVNETl9zb2NrX3JlY3Ztc2coc3RydWN0IGtp b2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLA0KIHsNCiAJc3RydWN0IHNrX2J1ZmYJCSpz a2I7DQogCXN0cnVjdCBzb2NrCQkqc2sgPSBzb2NrLT5zazsNCi0Jc3RydWN0IHNvY2thZGRyX21J U0ROCSptYWRkcjsNCiANCiAJaW50CQljb3BpZWQsIGVycjsNCiANCkBAIC0xMzUsOSArMTM0LDkg QEAgbUlTRE5fc29ja19yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAq c29jaywNCiAJaWYgKCFza2IpDQogCQlyZXR1cm4gZXJyOw0KIA0KLQlpZiAobXNnLT5tc2dfbmFt ZWxlbiA+PSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX21JU0ROKSkgew0KLQkJbXNnLT5tc2dfbmFt ZWxlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfbUlTRE4pOw0KLQkJbWFkZHIgPSAoc3RydWN0 IHNvY2thZGRyX21JU0ROICopbXNnLT5tc2dfbmFtZTsNCisJaWYgKG1zZy0+bXNnX25hbWUpIHsN CisJCXN0cnVjdCBzb2NrYWRkcl9tSVNETiAqbWFkZHIgPSBtc2ctPm1zZ19uYW1lOw0KKw0KIAkJ bWFkZHItPmZhbWlseSA9IEFGX0lTRE47DQogCQltYWRkci0+ZGV2ID0gX3BtcyhzayktPmRldi0+ aWQ7DQogCQlpZiAoKHNrLT5za19wcm90b2NvbCA9PSBJU0ROX1BfTEFQRF9URSkgfHwNCkBAIC0x NTAsMTEgKzE0OSw3IEBAIG1JU0ROX3NvY2tfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0 cnVjdCBzb2NrZXQgKnNvY2ssDQogCQkJbWFkZHItPnNhcGkgPSBfcG1zKHNrKS0+Y2guYWRkciAm IDB4RkY7DQogCQkJbWFkZHItPnRlaSA9ICAoX3BtcyhzayktPmNoLmFkZHIgPj4gOCkgJiAweEZG Ow0KIAkJfQ0KLQl9IGVsc2Ugew0KLQkJaWYgKG1zZy0+bXNnX25hbWVsZW4pDQotCQkJcHJpbnRr KEtFUk5fV0FSTklORyAiJXM6IHRvbyBzbWFsbCBuYW1lbGVuICVkXG4iLA0KLQkJCSAgICBfX2Z1 bmNfXywgbXNnLT5tc2dfbmFtZWxlbik7DQotCQltc2ctPm1zZ19uYW1lbGVuID0gMDsNCisJCW1z Zy0+bXNnX25hbWVsZW4gPSBzaXplb2YoKm1hZGRyKTsNCiAJfQ0KIA0KIAljb3BpZWQgPSBza2It PmxlbiArIE1JU0ROX0hFQURFUl9MRU47DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1idWZp by5jIGIvZHJpdmVycy9tZC9kbS1idWZpby5jDQppbmRleCBhNWRmY2MwLi45MTBkMmY4IDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9tZC9kbS1idWZpby5jDQorKysgYi9kcml2ZXJzL21kL2RtLWJ1Zmlv LmMNCkBAIC0xNjExLDYgKzE2MTEsMTEgQEAgc3RhdGljIGludCBfX2luaXQgZG1fYnVmaW9faW5p dCh2b2lkKQ0KIHsNCiAJX191NjQgbWVtOw0KIA0KKwlkbV9idWZpb19hbGxvY2F0ZWRfa21lbV9j YWNoZSA9IDA7DQorCWRtX2J1ZmlvX2FsbG9jYXRlZF9nZXRfZnJlZV9wYWdlcyA9IDA7DQorCWRt X2J1ZmlvX2FsbG9jYXRlZF92bWFsbG9jID0gMDsNCisJZG1fYnVmaW9fY3VycmVudF9hbGxvY2F0 ZWQgPSAwOw0KKw0KIAltZW1zZXQoJmRtX2J1ZmlvX2NhY2hlcywgMCwgc2l6ZW9mIGRtX2J1Zmlv X2NhY2hlcyk7DQogCW1lbXNldCgmZG1fYnVmaW9fY2FjaGVfbmFtZXMsIDAsIHNpemVvZiBkbV9i dWZpb19jYWNoZV9uYW1lcyk7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1kZWxheS5j IGIvZHJpdmVycy9tZC9kbS1kZWxheS5jDQppbmRleCAxMTQzMWFjLi4zZjEyM2YxIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9tZC9kbS1kZWxheS5jDQorKysgYi9kcml2ZXJzL21kL2RtLWRlbGF5LmMN CkBAIC0yMCw2ICsyMCw3IEBADQogc3RydWN0IGRlbGF5X2Mgew0KIAlzdHJ1Y3QgdGltZXJfbGlz dCBkZWxheV90aW1lcjsNCiAJc3RydWN0IG11dGV4IHRpbWVyX2xvY2s7DQorCXN0cnVjdCB3b3Jr cXVldWVfc3RydWN0ICprZGVsYXlkX3dxOw0KIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZmx1c2hfZXhw aXJlZF9iaW9zOw0KIAlzdHJ1Y3QgbGlzdF9oZWFkIGRlbGF5ZWRfYmlvczsNCiAJYXRvbWljX3Qg bWF5X2RlbGF5Ow0KQEAgLTQ1LDE0ICs0NiwxMyBAQCBzdHJ1Y3QgZG1fZGVsYXlfaW5mbyB7DQog DQogc3RhdGljIERFRklORV9NVVRFWChkZWxheWVkX2Jpb3NfbG9jayk7DQogDQotc3RhdGljIHN0 cnVjdCB3b3JrcXVldWVfc3RydWN0ICprZGVsYXlkX3dxOw0KIHN0YXRpYyBzdHJ1Y3Qga21lbV9j YWNoZSAqZGVsYXllZF9jYWNoZTsNCiANCiBzdGF0aWMgdm9pZCBoYW5kbGVfZGVsYXllZF90aW1l cih1bnNpZ25lZCBsb25nIGRhdGEpDQogew0KIAlzdHJ1Y3QgZGVsYXlfYyAqZGMgPSAoc3RydWN0 IGRlbGF5X2MgKilkYXRhOw0KIA0KLQlxdWV1ZV93b3JrKGtkZWxheWRfd3EsICZkYy0+Zmx1c2hf ZXhwaXJlZF9iaW9zKTsNCisJcXVldWVfd29yayhkYy0+a2RlbGF5ZF93cSwgJmRjLT5mbHVzaF9l eHBpcmVkX2Jpb3MpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBxdWV1ZV90aW1lb3V0KHN0cnVjdCBk ZWxheV9jICpkYywgdW5zaWduZWQgbG9uZyBleHBpcmVzKQ0KQEAgLTE5MCw2ICsxOTAsMTIgQEAg b3V0Og0KIAkJZ290byBiYWRfZGV2X3dyaXRlOw0KIAl9DQogDQorCWRjLT5rZGVsYXlkX3dxID0g YWxsb2Nfd29ya3F1ZXVlKCJrZGVsYXlkIiwgV1FfTUVNX1JFQ0xBSU0sIDApOw0KKwlpZiAoIWRj LT5rZGVsYXlkX3dxKSB7DQorCQlETUVSUigiQ291bGRuJ3Qgc3RhcnQga2RlbGF5ZCIpOw0KKwkJ Z290byBiYWRfcXVldWU7DQorCX0NCisNCiAJc2V0dXBfdGltZXIoJmRjLT5kZWxheV90aW1lciwg aGFuZGxlX2RlbGF5ZWRfdGltZXIsICh1bnNpZ25lZCBsb25nKWRjKTsNCiANCiAJSU5JVF9XT1JL KCZkYy0+Zmx1c2hfZXhwaXJlZF9iaW9zLCBmbHVzaF9leHBpcmVkX2Jpb3MpOw0KQEAgLTIwMiw2 ICsyMDgsOCBAQCBvdXQ6DQogCXRpLT5wcml2YXRlID0gZGM7DQogCXJldHVybiAwOw0KIA0KK2Jh ZF9xdWV1ZToNCisJbWVtcG9vbF9kZXN0cm95KGRjLT5kZWxheWVkX3Bvb2wpOw0KIGJhZF9kZXZf d3JpdGU6DQogCWlmIChkYy0+ZGV2X3dyaXRlKQ0KIAkJZG1fcHV0X2RldmljZSh0aSwgZGMtPmRl dl93cml0ZSk7DQpAQCAtMjE2LDcgKzIyNCw3IEBAIHN0YXRpYyB2b2lkIGRlbGF5X2R0cihzdHJ1 Y3QgZG1fdGFyZ2V0ICp0aSkNCiB7DQogCXN0cnVjdCBkZWxheV9jICpkYyA9IHRpLT5wcml2YXRl Ow0KIA0KLQlmbHVzaF93b3JrcXVldWUoa2RlbGF5ZF93cSk7DQorCWRlc3Ryb3lfd29ya3F1ZXVl KGRjLT5rZGVsYXlkX3dxKTsNCiANCiAJZG1fcHV0X2RldmljZSh0aSwgZGMtPmRldl9yZWFkKTsN CiANCkBAIC0zNTAsMTIgKzM1OCw2IEBAIHN0YXRpYyBpbnQgX19pbml0IGRtX2RlbGF5X2luaXQo dm9pZCkNCiB7DQogCWludCByID0gLUVOT01FTTsNCiANCi0Ja2RlbGF5ZF93cSA9IGFsbG9jX3dv cmtxdWV1ZSgia2RlbGF5ZCIsIFdRX01FTV9SRUNMQUlNLCAwKTsNCi0JaWYgKCFrZGVsYXlkX3dx KSB7DQotCQlETUVSUigiQ291bGRuJ3Qgc3RhcnQga2RlbGF5ZCIpOw0KLQkJZ290byBiYWRfcXVl dWU7DQotCX0NCi0NCiAJZGVsYXllZF9jYWNoZSA9IEtNRU1fQ0FDSEUoZG1fZGVsYXlfaW5mbywg MCk7DQogCWlmICghZGVsYXllZF9jYWNoZSkgew0KIAkJRE1FUlIoIkNvdWxkbid0IGNyZWF0ZSBk ZWxheWVkIGJpbyBjYWNoZS4iKTsNCkBAIC0zNzMsOCArMzc1LDYgQEAgc3RhdGljIGludCBfX2lu aXQgZG1fZGVsYXlfaW5pdCh2b2lkKQ0KIGJhZF9yZWdpc3RlcjoNCiAJa21lbV9jYWNoZV9kZXN0 cm95KGRlbGF5ZWRfY2FjaGUpOw0KIGJhZF9tZW1jYWNoZToNCi0JZGVzdHJveV93b3JrcXVldWUo a2RlbGF5ZF93cSk7DQotYmFkX3F1ZXVlOg0KIAlyZXR1cm4gcjsNCiB9DQogDQpAQCAtMzgyLDcg KzM4Miw2IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBkbV9kZWxheV9leGl0KHZvaWQpDQogew0KIAlk bV91bnJlZ2lzdGVyX3RhcmdldCgmZGVsYXlfdGFyZ2V0KTsNCiAJa21lbV9jYWNoZV9kZXN0cm95 KGRlbGF5ZWRfY2FjaGUpOw0KLQlkZXN0cm95X3dvcmtxdWV1ZShrZGVsYXlkX3dxKTsNCiB9DQog DQogLyogTW9kdWxlIGhvb2tzICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1tcGF0aC5j IGIvZHJpdmVycy9tZC9kbS1tcGF0aC5jDQppbmRleCA3ZTc2NmY5Mi4uODRhZDUzMCAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvbWQvZG0tbXBhdGguYw0KKysrIGIvZHJpdmVycy9tZC9kbS1tcGF0aC5j DQpAQCAtODQsNiArODQsNyBAQCBzdHJ1Y3QgbXVsdGlwYXRoIHsNCiAJdW5zaWduZWQgcXVldWVf aW87CQkvKiBNdXN0IHdlIHF1ZXVlIGFsbCBJL08/ICovDQogCXVuc2lnbmVkIHF1ZXVlX2lmX25v X3BhdGg7CS8qIFF1ZXVlIEkvTyBpZiBsYXN0IHBhdGggZmFpbHM/ICovDQogCXVuc2lnbmVkIHNh dmVkX3F1ZXVlX2lmX25vX3BhdGg7LyogU2F2ZWQgc3RhdGUgZHVyaW5nIHN1c3BlbnNpb24gKi8N CisJdW5zaWduZWQgcGdfaW5pdF9kaXNhYmxlZDoxOwkvKiBwZ19pbml0IGlzIG5vdCBjdXJyZW50 bHkgYWxsb3dlZCAqLw0KIAl1bnNpZ25lZCBwZ19pbml0X3JldHJpZXM7CS8qIE51bWJlciBvZiB0 aW1lcyB0byByZXRyeSBwZ19pbml0ICovDQogCXVuc2lnbmVkIHBnX2luaXRfY291bnQ7CQkvKiBO dW1iZXIgb2YgdGltZXMgcGdfaW5pdCBjYWxsZWQgKi8NCiAJdW5zaWduZWQgcGdfaW5pdF9kZWxh eV9tc2VjczsJLyogTnVtYmVyIG9mIG1zZWNzIGJlZm9yZSBwZ19pbml0IHJldHJ5ICovDQpAQCAt NDczLDcgKzQ3NCw4IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfcXVldWVkX2lvcyhzdHJ1Y3Qgd29y a19zdHJ1Y3QgKndvcmspDQogCSAgICAoIXBncGF0aCAmJiAhbS0+cXVldWVfaWZfbm9fcGF0aCkp DQogCQltdXN0X3F1ZXVlID0gMDsNCiANCi0JaWYgKG0tPnBnX2luaXRfcmVxdWlyZWQgJiYgIW0t PnBnX2luaXRfaW5fcHJvZ3Jlc3MgJiYgcGdwYXRoKQ0KKwlpZiAobS0+cGdfaW5pdF9yZXF1aXJl ZCAmJiAhbS0+cGdfaW5pdF9pbl9wcm9ncmVzcyAmJiBwZ3BhdGggJiYNCisJICAgICFtLT5wZ19p bml0X2Rpc2FibGVkKQ0KIAkJX19wZ19pbml0X2FsbF9wYXRocyhtKTsNCiANCiBvdXQ6DQpAQCAt ODg3LDEwICs4ODksMjAgQEAgc3RhdGljIHZvaWQgbXVsdGlwYXRoX3dhaXRfZm9yX3BnX2luaXRf Y29tcGxldGlvbihzdHJ1Y3QgbXVsdGlwYXRoICptKQ0KIA0KIHN0YXRpYyB2b2lkIGZsdXNoX211 bHRpcGF0aF93b3JrKHN0cnVjdCBtdWx0aXBhdGggKm0pDQogew0KKwl1bnNpZ25lZCBsb25nIGZs YWdzOw0KKw0KKwlzcGluX2xvY2tfaXJxc2F2ZSgmbS0+bG9jaywgZmxhZ3MpOw0KKwltLT5wZ19p bml0X2Rpc2FibGVkID0gMTsNCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbS0+bG9jaywgZmxh Z3MpOw0KKw0KIAlmbHVzaF93b3JrcXVldWUoa21wYXRoX2hhbmRsZXJkKTsNCiAJbXVsdGlwYXRo X3dhaXRfZm9yX3BnX2luaXRfY29tcGxldGlvbihtKTsNCiAJZmx1c2hfd29ya3F1ZXVlKGttdWx0 aXBhdGhkKTsNCiAJZmx1c2hfd29ya19zeW5jKCZtLT50cmlnZ2VyX2V2ZW50KTsNCisNCisJc3Bp bl9sb2NrX2lycXNhdmUoJm0tPmxvY2ssIGZsYWdzKTsNCisJbS0+cGdfaW5pdF9kaXNhYmxlZCA9 IDA7DQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm0tPmxvY2ssIGZsYWdzKTsNCiB9DQogDQog c3RhdGljIHZvaWQgbXVsdGlwYXRoX2R0cihzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSkNCkBAIC0xMTEx LDcgKzExMjMsNyBAQCBzdGF0aWMgaW50IHBnX2luaXRfbGltaXRfcmVhY2hlZChzdHJ1Y3QgbXVs dGlwYXRoICptLCBzdHJ1Y3QgcGdwYXRoICpwZ3BhdGgpDQogDQogCXNwaW5fbG9ja19pcnFzYXZl KCZtLT5sb2NrLCBmbGFncyk7DQogDQotCWlmIChtLT5wZ19pbml0X2NvdW50IDw9IG0tPnBnX2lu aXRfcmV0cmllcykNCisJaWYgKG0tPnBnX2luaXRfY291bnQgPD0gbS0+cGdfaW5pdF9yZXRyaWVz ICYmICFtLT5wZ19pbml0X2Rpc2FibGVkKQ0KIAkJbS0+cGdfaW5pdF9yZXF1aXJlZCA9IDE7DQog CWVsc2UNCiAJCWxpbWl0X3JlYWNoZWQgPSAxOw0KQEAgLTE2MjEsNyArMTYzMyw3IEBAIG91dDoN CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSovDQogc3RhdGljIHN0cnVjdCB0YXJnZXRfdHlwZSBtdWx0aXBhdGhfdGFyZ2V0 ID0gew0KIAkubmFtZSA9ICJtdWx0aXBhdGgiLA0KLQkudmVyc2lvbiA9IHsxLCAzLCAxfSwNCisJ LnZlcnNpb24gPSB7MSwgMywgMn0sDQogCS5tb2R1bGUgPSBUSElTX01PRFVMRSwNCiAJLmN0ciA9 IG11bHRpcGF0aF9jdHIsDQogCS5kdHIgPSBtdWx0aXBhdGhfZHRyLA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbWQvZG0tc25hcC5jIGIvZHJpdmVycy9tZC9kbS1zbmFwLmMNCmluZGV4IDVjMzAzMTYu LmZlYzc5ZTcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21kL2RtLXNuYXAuYw0KKysrIGIvZHJpdmVy cy9tZC9kbS1zbmFwLmMNCkBAIC02Niw2ICs2NiwxOCBAQCBzdHJ1Y3QgZG1fc25hcHNob3Qgew0K IA0KIAlhdG9taWNfdCBwZW5kaW5nX2V4Y2VwdGlvbnNfY291bnQ7DQogDQorCS8qIFByb3RlY3Rl ZCBieSAibG9jayIgKi8NCisJc2VjdG9yX3QgZXhjZXB0aW9uX3N0YXJ0X3NlcXVlbmNlOw0KKw0K KwkvKiBQcm90ZWN0ZWQgYnkga2NvcHlkIHNpbmdsZS10aHJlYWRlZCBjYWxsYmFjayAqLw0KKwlz ZWN0b3JfdCBleGNlcHRpb25fY29tcGxldGVfc2VxdWVuY2U7DQorDQorCS8qDQorCSAqIEEgbGlz dCBvZiBwZW5kaW5nIGV4Y2VwdGlvbnMgdGhhdCBjb21wbGV0ZWQgb3V0IG9mIG9yZGVyLg0KKwkg KiBQcm90ZWN0ZWQgYnkga2NvcHlkIHNpbmdsZS10aHJlYWRlZCBjYWxsYmFjay4NCisJICovDQor CXN0cnVjdCBsaXN0X2hlYWQgb3V0X29mX29yZGVyX2xpc3Q7DQorDQogCW1lbXBvb2xfdCAqcGVu ZGluZ19wb29sOw0KIA0KIAlzdHJ1Y3QgZG1fZXhjZXB0aW9uX3RhYmxlIHBlbmRpbmc7DQpAQCAt MTcxLDYgKzE4MywxNCBAQCBzdHJ1Y3QgZG1fc25hcF9wZW5kaW5nX2V4Y2VwdGlvbiB7DQogCSAq Lw0KIAlpbnQgc3RhcnRlZDsNCiANCisJLyogVGhlcmUgd2FzIGNvcHlpbmcgZXJyb3IuICovDQor CWludCBjb3B5X2Vycm9yOw0KKw0KKwkvKiBBIHNlcXVlbmNlIG51bWJlciwgaXQgaXMgdXNlZCBm b3IgaW4tb3JkZXIgY29tcGxldGlvbi4gKi8NCisJc2VjdG9yX3QgZXhjZXB0aW9uX3NlcXVlbmNl Ow0KKw0KKwlzdHJ1Y3QgbGlzdF9oZWFkIG91dF9vZl9vcmRlcl9lbnRyeTsNCisNCiAJLyoNCiAJ ICogRm9yIHdyaXRpbmcgYSBjb21wbGV0ZSBjaHVuaywgYnlwYXNzaW5nIHRoZSBjb3B5Lg0KIAkg Ki8NCkBAIC0xMDkwLDYgKzExMTAsOSBAQCBzdGF0aWMgaW50IHNuYXBzaG90X2N0cihzdHJ1Y3Qg ZG1fdGFyZ2V0ICp0aSwgdW5zaWduZWQgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KIAlzLT52YWxp ZCA9IDE7DQogCXMtPmFjdGl2ZSA9IDA7DQogCWF0b21pY19zZXQoJnMtPnBlbmRpbmdfZXhjZXB0 aW9uc19jb3VudCwgMCk7DQorCXMtPmV4Y2VwdGlvbl9zdGFydF9zZXF1ZW5jZSA9IDA7DQorCXMt PmV4Y2VwdGlvbl9jb21wbGV0ZV9zZXF1ZW5jZSA9IDA7DQorCUlOSVRfTElTVF9IRUFEKCZzLT5v dXRfb2Zfb3JkZXJfbGlzdCk7DQogCWluaXRfcndzZW0oJnMtPmxvY2spOw0KIAlJTklUX0xJU1Rf SEVBRCgmcy0+bGlzdCk7DQogCXNwaW5fbG9ja19pbml0KCZzLT5wZV9sb2NrKTsNCkBAIC0xNDQ4 LDYgKzE0NzEsMTkgQEAgc3RhdGljIHZvaWQgY29tbWl0X2NhbGxiYWNrKHZvaWQgKmNvbnRleHQs IGludCBzdWNjZXNzKQ0KIAlwZW5kaW5nX2NvbXBsZXRlKHBlLCBzdWNjZXNzKTsNCiB9DQogDQor c3RhdGljIHZvaWQgY29tcGxldGVfZXhjZXB0aW9uKHN0cnVjdCBkbV9zbmFwX3BlbmRpbmdfZXhj ZXB0aW9uICpwZSkNCit7DQorCXN0cnVjdCBkbV9zbmFwc2hvdCAqcyA9IHBlLT5zbmFwOw0KKw0K KwlpZiAodW5saWtlbHkocGUtPmNvcHlfZXJyb3IpKQ0KKwkJcGVuZGluZ19jb21wbGV0ZShwZSwg MCk7DQorDQorCWVsc2UNCisJCS8qIFVwZGF0ZSB0aGUgbWV0YWRhdGEgaWYgd2UgYXJlIHBlcnNp c3RlbnQgKi8NCisJCXMtPnN0b3JlLT50eXBlLT5jb21taXRfZXhjZXB0aW9uKHMtPnN0b3JlLCAm cGUtPmUsDQorCQkJCQkJIGNvbW1pdF9jYWxsYmFjaywgcGUpOw0KK30NCisNCiAvKg0KICAqIENh bGxlZCB3aGVuIHRoZSBjb3B5IEkvTyBoYXMgZmluaXNoZWQuICBrY29weWQgYWN0dWFsbHkgcnVu cw0KICAqIHRoaXMgY29kZSBzbyBkb24ndCBibG9jay4NCkBAIC0xNDU3LDEzICsxNDkzLDMyIEBA IHN0YXRpYyB2b2lkIGNvcHlfY2FsbGJhY2soaW50IHJlYWRfZXJyLCB1bnNpZ25lZCBsb25nIHdy aXRlX2Vyciwgdm9pZCAqY29udGV4dCkNCiAJc3RydWN0IGRtX3NuYXBfcGVuZGluZ19leGNlcHRp b24gKnBlID0gY29udGV4dDsNCiAJc3RydWN0IGRtX3NuYXBzaG90ICpzID0gcGUtPnNuYXA7DQog DQotCWlmIChyZWFkX2VyciB8fCB3cml0ZV9lcnIpDQotCQlwZW5kaW5nX2NvbXBsZXRlKHBlLCAw KTsNCisJcGUtPmNvcHlfZXJyb3IgPSByZWFkX2VyciB8fCB3cml0ZV9lcnI7DQogDQotCWVsc2UN Ci0JCS8qIFVwZGF0ZSB0aGUgbWV0YWRhdGEgaWYgd2UgYXJlIHBlcnNpc3RlbnQgKi8NCi0JCXMt PnN0b3JlLT50eXBlLT5jb21taXRfZXhjZXB0aW9uKHMtPnN0b3JlLCAmcGUtPmUsDQotCQkJCQkJ IGNvbW1pdF9jYWxsYmFjaywgcGUpOw0KKwlpZiAocGUtPmV4Y2VwdGlvbl9zZXF1ZW5jZSA9PSBz LT5leGNlcHRpb25fY29tcGxldGVfc2VxdWVuY2UpIHsNCisJCXMtPmV4Y2VwdGlvbl9jb21wbGV0 ZV9zZXF1ZW5jZSsrOw0KKwkJY29tcGxldGVfZXhjZXB0aW9uKHBlKTsNCisNCisJCXdoaWxlICgh bGlzdF9lbXB0eSgmcy0+b3V0X29mX29yZGVyX2xpc3QpKSB7DQorCQkJcGUgPSBsaXN0X2VudHJ5 KHMtPm91dF9vZl9vcmRlcl9saXN0Lm5leHQsDQorCQkJCQlzdHJ1Y3QgZG1fc25hcF9wZW5kaW5n X2V4Y2VwdGlvbiwgb3V0X29mX29yZGVyX2VudHJ5KTsNCisJCQlpZiAocGUtPmV4Y2VwdGlvbl9z ZXF1ZW5jZSAhPSBzLT5leGNlcHRpb25fY29tcGxldGVfc2VxdWVuY2UpDQorCQkJCWJyZWFrOw0K KwkJCXMtPmV4Y2VwdGlvbl9jb21wbGV0ZV9zZXF1ZW5jZSsrOw0KKwkJCWxpc3RfZGVsKCZwZS0+ b3V0X29mX29yZGVyX2VudHJ5KTsNCisJCQljb21wbGV0ZV9leGNlcHRpb24ocGUpOw0KKwkJfQ0K Kwl9IGVsc2Ugew0KKwkJc3RydWN0IGxpc3RfaGVhZCAqbGg7DQorCQlzdHJ1Y3QgZG1fc25hcF9w ZW5kaW5nX2V4Y2VwdGlvbiAqcGUyOw0KKw0KKwkJbGlzdF9mb3JfZWFjaF9wcmV2KGxoLCAmcy0+ b3V0X29mX29yZGVyX2xpc3QpIHsNCisJCQlwZTIgPSBsaXN0X2VudHJ5KGxoLCBzdHJ1Y3QgZG1f c25hcF9wZW5kaW5nX2V4Y2VwdGlvbiwgb3V0X29mX29yZGVyX2VudHJ5KTsNCisJCQlpZiAocGUy LT5leGNlcHRpb25fc2VxdWVuY2UgPCBwZS0+ZXhjZXB0aW9uX3NlcXVlbmNlKQ0KKwkJCQlicmVh azsNCisJCX0NCisJCWxpc3RfYWRkKCZwZS0+b3V0X29mX29yZGVyX2VudHJ5LCBsaCk7DQorCX0N CiB9DQogDQogLyoNCkBAIC0xNTU4LDYgKzE2MTMsOCBAQCBfX2ZpbmRfcGVuZGluZ19leGNlcHRp b24oc3RydWN0IGRtX3NuYXBzaG90ICpzLA0KIAkJcmV0dXJuIE5VTEw7DQogCX0NCiANCisJcGUt PmV4Y2VwdGlvbl9zZXF1ZW5jZSA9IHMtPmV4Y2VwdGlvbl9zdGFydF9zZXF1ZW5jZSsrOw0KKw0K IAlkbV9pbnNlcnRfZXhjZXB0aW9uKCZzLT5wZW5kaW5nLCAmcGUtPmUpOw0KIA0KIAlyZXR1cm4g cGU7DQpAQCAtMjIwMCw3ICsyMjU3LDcgQEAgc3RhdGljIHN0cnVjdCB0YXJnZXRfdHlwZSBvcmln aW5fdGFyZ2V0ID0gew0KIA0KIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X3R5cGUgc25hcHNob3RfdGFy Z2V0ID0gew0KIAkubmFtZSAgICA9ICJzbmFwc2hvdCIsDQotCS52ZXJzaW9uID0gezEsIDEwLCAx fSwNCisJLnZlcnNpb24gPSB7MSwgMTAsIDJ9LA0KIAkubW9kdWxlICA9IFRISVNfTU9EVUxFLA0K IAkuY3RyICAgICA9IHNuYXBzaG90X2N0ciwNCiAJLmR0ciAgICAgPSBzbmFwc2hvdF9kdHIsDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS10YWJsZS5jIGIvZHJpdmVycy9tZC9kbS10YWJsZS5j DQppbmRleCA1Mjg0OGFiLi41YzUyNTgyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9kbS10YWJs ZS5jDQorKysgYi9kcml2ZXJzL21kL2RtLXRhYmxlLmMNCkBAIC0yMTUsNiArMjE1LDExIEBAIGlu dCBkbV90YWJsZV9jcmVhdGUoc3RydWN0IGRtX3RhYmxlICoqcmVzdWx0LCBmbW9kZV90IG1vZGUs DQogDQogCW51bV90YXJnZXRzID0gZG1fcm91bmRfdXAobnVtX3RhcmdldHMsIEtFWVNfUEVSX05P REUpOw0KIA0KKwlpZiAoIW51bV90YXJnZXRzKSB7DQorCQlrZnJlZSh0KTsNCisJCXJldHVybiAt RU5PTUVNOw0KKwl9DQorDQogCWlmIChhbGxvY190YXJnZXRzKHQsIG51bV90YXJnZXRzKSkgew0K IAkJa2ZyZWUodCk7DQogCQl0ID0gTlVMTDsNCkBAIC01ODEsMTQgKzU4NiwyOCBAQCBzdGF0aWMg aW50IGFkam9pbihzdHJ1Y3QgZG1fdGFibGUgKnRhYmxlLCBzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSkN CiANCiAvKg0KICAqIFVzZWQgdG8gZHluYW1pY2FsbHkgYWxsb2NhdGUgdGhlIGFyZyBhcnJheS4N CisgKg0KKyAqIFdlIGRvIGZpcnN0IGFsbG9jYXRpb24gd2l0aCBHRlBfTk9JTyBiZWNhdXNlIGRt LW1wYXRoIGFuZCBkbS10aGluIG11c3QNCisgKiBwcm9jZXNzIG1lc3NhZ2VzIGV2ZW4gaWYgc29t ZSBkZXZpY2UgaXMgc3VzcGVuZGVkLiBUaGVzZSBtZXNzYWdlcyBoYXZlIGENCisgKiBzbWFsbCBm aXhlZCBudW1iZXIgb2YgYXJndW1lbnRzLg0KKyAqDQorICogT24gdGhlIG90aGVyIGhhbmQsIGRt LXN3aXRjaCBuZWVkcyB0byBwcm9jZXNzIGJ1bGsgZGF0YSB1c2luZyBtZXNzYWdlcyBhbmQNCisg KiBleGNlc3NpdmUgdXNlIG9mIEdGUF9OT0lPIGNvdWxkIGNhdXNlIHRyb3VibGUuDQogICovDQog c3RhdGljIGNoYXIgKipyZWFsbG9jX2FyZ3YodW5zaWduZWQgKmFycmF5X3NpemUsIGNoYXIgKipv bGRfYXJndikNCiB7DQogCWNoYXIgKiphcmd2Ow0KIAl1bnNpZ25lZCBuZXdfc2l6ZTsNCisJZ2Zw X3QgZ2ZwOw0KIA0KLQluZXdfc2l6ZSA9ICphcnJheV9zaXplID8gKmFycmF5X3NpemUgKiAyIDog NjQ7DQotCWFyZ3YgPSBrbWFsbG9jKG5ld19zaXplICogc2l6ZW9mKCphcmd2KSwgR0ZQX0tFUk5F TCk7DQorCWlmICgqYXJyYXlfc2l6ZSkgew0KKwkJbmV3X3NpemUgPSAqYXJyYXlfc2l6ZSAqIDI7 DQorCQlnZnAgPSBHRlBfS0VSTkVMOw0KKwl9IGVsc2Ugew0KKwkJbmV3X3NpemUgPSA4Ow0KKwkJ Z2ZwID0gR0ZQX05PSU87DQorCX0NCisJYXJndiA9IGttYWxsb2MobmV3X3NpemUgKiBzaXplb2Yo KmFyZ3YpLCBnZnApOw0KIAlpZiAoYXJndikgew0KIAkJbWVtY3B5KGFyZ3YsIG9sZF9hcmd2LCAq YXJyYXlfc2l6ZSAqIHNpemVvZigqYXJndikpOw0KIAkJKmFycmF5X3NpemUgPSBuZXdfc2l6ZTsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxNjQvc2FhNzE2NC1jb3JlLmMg Yi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxNjQvc2FhNzE2NC1jb3JlLmMNCmluZGV4IDNiN2Q3 YjQuLjhmM2M0N2UgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxNjQvc2Fh NzE2NC1jb3JlLmMNCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzE2NC9zYWE3MTY0LWNv cmUuYw0KQEAgLTEzODYsOSArMTM4NiwxMSBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBzYWE3MTY0 X2luaXRkZXYoc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYsDQogCQlpZiAoZndfZGVidWcpIHsNCiAJ CQlkZXYtPmt0aHJlYWQgPSBrdGhyZWFkX3J1bihzYWE3MTY0X3RocmVhZF9mdW5jdGlvbiwgZGV2 LA0KIAkJCQkic2FhNzE2NCBkZWJ1ZyIpOw0KLQkJCWlmICghZGV2LT5rdGhyZWFkKQ0KKwkJCWlm IChJU19FUlIoZGV2LT5rdGhyZWFkKSkgew0KKwkJCQlkZXYtPmt0aHJlYWQgPSBOVUxMOw0KIAkJ CQlwcmludGsoS0VSTl9FUlIgIiVzKCkgRmFpbGVkIHRvIGNyZWF0ZSAiDQogCQkJCQkiZGVidWcg a2VybmVsIHRocmVhZFxuIiwgX19mdW5jX18pOw0KKwkJCX0NCiAJCX0NCiANCiAJfSAvKiAhPSBC T0FSRF9VTktOT1dOICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL2VuY2xvc3VyZS5jIGIv ZHJpdmVycy9taXNjL2VuY2xvc3VyZS5jDQppbmRleCAwMGU1ZmNhYzguLmNiZWU4NDIgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL21pc2MvZW5jbG9zdXJlLmMNCisrKyBiL2RyaXZlcnMvbWlzYy9lbmNs b3N1cmUuYw0KQEAgLTE5OCw2ICsxOTgsMTMgQEAgc3RhdGljIHZvaWQgZW5jbG9zdXJlX3JlbW92 ZV9saW5rcyhzdHJ1Y3QgZW5jbG9zdXJlX2NvbXBvbmVudCAqY2RldikNCiB7DQogCWNoYXIgbmFt ZVtFTkNMT1NVUkVfTkFNRV9TSVpFXTsNCiANCisJLyoNCisJICogSW4gb2RkIGNpcmN1bXN0YW5j ZXMsIGxpa2UgbXVsdGlwYXRoIGRldmljZXMsIHNvbWV0aGluZyBlbHNlIG1heQ0KKwkgKiBhbHJl YWR5IGhhdmUgcmVtb3ZlZCB0aGUgbGlua3MsIHNvIGNoZWNrIGZvciB0aGlzIGNvbmRpdGlvbiBm aXJzdC4NCisJICovDQorCWlmICghY2Rldi0+ZGV2LT5rb2JqLnNkKQ0KKwkJcmV0dXJuOw0KKw0K IAllbmNsb3N1cmVfbGlua19uYW1lKGNkZXYsIG5hbWUpOw0KIAlzeXNmc19yZW1vdmVfbGluaygm Y2Rldi0+ZGV2LT5rb2JqLCBuYW1lKTsNCiAJc3lzZnNfcmVtb3ZlX2xpbmsoJmNkZXYtPmNkZXYu a29iaiwgImRldmljZSIpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2NhcmQvYmxvY2suYyBi L2RyaXZlcnMvbW1jL2NhcmQvYmxvY2suYw0KaW5kZXggNzQ3OTNhZi4uNDgwMmY3ZiAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvbW1jL2NhcmQvYmxvY2suYw0KKysrIGIvZHJpdmVycy9tbWMvY2FyZC9i bG9jay5jDQpAQCAtNjM0LDcgKzYzNCw3IEBAIHN0YXRpYyBpbnQgbW1jX2Jsa19jbWRfZXJyb3Io c3RydWN0IHJlcXVlc3QgKnJlcSwgY29uc3QgY2hhciAqbmFtZSwgaW50IGVycm9yLA0KICAqIE90 aGVyd2lzZSB3ZSBkb24ndCB1bmRlcnN0YW5kIHdoYXQgaGFwcGVuZWQsIHNvIGFib3J0Lg0KICAq Lw0KIHN0YXRpYyBpbnQgbW1jX2Jsa19jbWRfcmVjb3Zlcnkoc3RydWN0IG1tY19jYXJkICpjYXJk LCBzdHJ1Y3QgcmVxdWVzdCAqcmVxLA0KLQlzdHJ1Y3QgbW1jX2Jsa19yZXF1ZXN0ICpicnEsIGlu dCAqZWNjX2VycikNCisJc3RydWN0IG1tY19ibGtfcmVxdWVzdCAqYnJxLCBpbnQgKmVjY19lcnIs IGludCAqZ2VuX2VycikNCiB7DQogCWJvb2wgcHJldl9jbWRfc3RhdHVzX3ZhbGlkID0gdHJ1ZTsN CiAJdTMyIHN0YXR1cywgc3RvcF9zdGF0dXMgPSAwOw0KQEAgLTY2NSw2ICs2NjUsMTYgQEAgc3Rh dGljIGludCBtbWNfYmxrX2NtZF9yZWNvdmVyeShzdHJ1Y3QgbW1jX2NhcmQgKmNhcmQsIHN0cnVj dCByZXF1ZXN0ICpyZXEsDQogCSAgICAoYnJxLT5jbWQucmVzcFswXSAmIFIxX0NBUkRfRUNDX0ZB SUxFRCkpDQogCQkqZWNjX2VyciA9IDE7DQogDQorCS8qIEZsYWcgR2VuZXJhbCBlcnJvcnMgKi8N CisJaWYgKCFtbWNfaG9zdF9pc19zcGkoY2FyZC0+aG9zdCkgJiYgcnFfZGF0YV9kaXIocmVxKSAh PSBSRUFEKQ0KKwkJaWYgKChzdGF0dXMgJiBSMV9FUlJPUikgfHwNCisJCQkoYnJxLT5zdG9wLnJl c3BbMF0gJiBSMV9FUlJPUikpIHsNCisJCQlwcl9lcnIoIiVzOiAlczogZ2VuZXJhbCBlcnJvciBz ZW5kaW5nIHN0b3Agb3Igc3RhdHVzIGNvbW1hbmQsIHN0b3AgY21kIHJlc3BvbnNlICUjeCwgY2Fy ZCBzdGF0dXMgJSN4XG4iLA0KKwkJCSAgICAgICByZXEtPnJxX2Rpc2stPmRpc2tfbmFtZSwgX19m dW5jX18sDQorCQkJICAgICAgIGJycS0+c3RvcC5yZXNwWzBdLCBzdGF0dXMpOw0KKwkJCSpnZW5f ZXJyID0gMTsNCisJCX0NCisNCiAJLyoNCiAJICogQ2hlY2sgdGhlIGN1cnJlbnQgY2FyZCBzdGF0 ZS4gIElmIGl0IGlzIGluIHNvbWUgZGF0YSB0cmFuc2Zlcg0KIAkgKiBtb2RlLCB0ZWxsIGl0IHRv IHN0b3AgKGFuZCBob3BlZnVsbHkgdHJhbnNpdGlvbiBiYWNrIHRvIFRSQU4uKQ0KQEAgLTY4NCw2 ICs2OTQsMTMgQEAgc3RhdGljIGludCBtbWNfYmxrX2NtZF9yZWNvdmVyeShzdHJ1Y3QgbW1jX2Nh cmQgKmNhcmQsIHN0cnVjdCByZXF1ZXN0ICpyZXEsDQogCQkJcmV0dXJuIEVSUl9BQk9SVDsNCiAJ CWlmIChzdG9wX3N0YXR1cyAmIFIxX0NBUkRfRUNDX0ZBSUxFRCkNCiAJCQkqZWNjX2VyciA9IDE7 DQorCQlpZiAoIW1tY19ob3N0X2lzX3NwaShjYXJkLT5ob3N0KSAmJiBycV9kYXRhX2RpcihyZXEp ICE9IFJFQUQpDQorCQkJaWYgKHN0b3Bfc3RhdHVzICYgUjFfRVJST1IpIHsNCisJCQkJcHJfZXJy KCIlczogJXM6IGdlbmVyYWwgZXJyb3Igc2VuZGluZyBzdG9wIGNvbW1hbmQsIHN0b3AgY21kIHJl c3BvbnNlICUjeFxuIiwNCisJCQkJICAgICAgIHJlcS0+cnFfZGlzay0+ZGlza19uYW1lLCBfX2Z1 bmNfXywNCisJCQkJICAgICAgIHN0b3Bfc3RhdHVzKTsNCisJCQkJKmdlbl9lcnIgPSAxOw0KKwkJ CX0NCiAJfQ0KIA0KIAkvKiBDaGVjayBmb3Igc2V0IGJsb2NrIGNvdW50IGVycm9ycyAqLw0KQEAg LTkzMyw3ICs5NTAsNyBAQCBzdGF0aWMgaW50IG1tY19ibGtfZXJyX2NoZWNrKHN0cnVjdCBtbWNf Y2FyZCAqY2FyZCwNCiAJCQkJCQkgICAgbW1jX2FjdGl2ZSk7DQogCXN0cnVjdCBtbWNfYmxrX3Jl cXVlc3QgKmJycSA9ICZtcV9tcnEtPmJycTsNCiAJc3RydWN0IHJlcXVlc3QgKnJlcSA9IG1xX21y cS0+cmVxOw0KLQlpbnQgZWNjX2VyciA9IDA7DQorCWludCBlY2NfZXJyID0gMCwgZ2VuX2VyciA9 IDA7DQogDQogCS8qDQogCSAqIHNiYy5lcnJvciBpbmRpY2F0ZXMgYSBwcm9ibGVtIHdpdGggdGhl IHNldCBibG9jayBjb3VudA0KQEAgLTk0Nyw3ICs5NjQsNyBAQCBzdGF0aWMgaW50IG1tY19ibGtf ZXJyX2NoZWNrKHN0cnVjdCBtbWNfY2FyZCAqY2FyZCwNCiAJICovDQogCWlmIChicnEtPnNiYy5l cnJvciB8fCBicnEtPmNtZC5lcnJvciB8fCBicnEtPnN0b3AuZXJyb3IgfHwNCiAJICAgIGJycS0+ ZGF0YS5lcnJvcikgew0KLQkJc3dpdGNoIChtbWNfYmxrX2NtZF9yZWNvdmVyeShjYXJkLCByZXEs IGJycSwgJmVjY19lcnIpKSB7DQorCQlzd2l0Y2ggKG1tY19ibGtfY21kX3JlY292ZXJ5KGNhcmQs IHJlcSwgYnJxLCAmZWNjX2VyciwgJmdlbl9lcnIpKSB7DQogCQljYXNlIEVSUl9SRVRSWToNCiAJ CQlyZXR1cm4gTU1DX0JMS19SRVRSWTsNCiAJCWNhc2UgRVJSX0FCT1JUOg0KQEAgLTk3NSw2ICs5 OTIsMTUgQEAgc3RhdGljIGludCBtbWNfYmxrX2Vycl9jaGVjayhzdHJ1Y3QgbW1jX2NhcmQgKmNh cmQsDQogCSAqLw0KIAlpZiAoIW1tY19ob3N0X2lzX3NwaShjYXJkLT5ob3N0KSAmJiBycV9kYXRh X2RpcihyZXEpICE9IFJFQUQpIHsNCiAJCXUzMiBzdGF0dXM7DQorDQorCQkvKiBDaGVjayBzdG9w IGNvbW1hbmQgcmVzcG9uc2UgKi8NCisJCWlmIChicnEtPnN0b3AucmVzcFswXSAmIFIxX0VSUk9S KSB7DQorCQkJcHJfZXJyKCIlczogJXM6IGdlbmVyYWwgZXJyb3Igc2VuZGluZyBzdG9wIGNvbW1h bmQsIHN0b3AgY21kIHJlc3BvbnNlICUjeFxuIiwNCisJCQkgICAgICAgcmVxLT5ycV9kaXNrLT5k aXNrX25hbWUsIF9fZnVuY19fLA0KKwkJCSAgICAgICBicnEtPnN0b3AucmVzcFswXSk7DQorCQkJ Z2VuX2VyciA9IDE7DQorCQl9DQorDQogCQlkbyB7DQogCQkJaW50IGVyciA9IGdldF9jYXJkX3N0 YXR1cyhjYXJkLCAmc3RhdHVzLCA1KTsNCiAJCQlpZiAoZXJyKSB7DQpAQCAtOTgyLDYgKzEwMDgs MTQgQEAgc3RhdGljIGludCBtbWNfYmxrX2Vycl9jaGVjayhzdHJ1Y3QgbW1jX2NhcmQgKmNhcmQs DQogCQkJCSAgICAgICByZXEtPnJxX2Rpc2stPmRpc2tfbmFtZSwgZXJyKTsNCiAJCQkJcmV0dXJu IE1NQ19CTEtfQ01EX0VSUjsNCiAJCQl9DQorDQorCQkJaWYgKHN0YXR1cyAmIFIxX0VSUk9SKSB7 DQorCQkJCXByX2VycigiJXM6ICVzOiBnZW5lcmFsIGVycm9yIHNlbmRpbmcgc3RhdHVzIGNvbW1h bmQsIGNhcmQgc3RhdHVzICUjeFxuIiwNCisJCQkJICAgICAgIHJlcS0+cnFfZGlzay0+ZGlza19u YW1lLCBfX2Z1bmNfXywNCisJCQkJICAgICAgIHN0YXR1cyk7DQorCQkJCWdlbl9lcnIgPSAxOw0K KwkJCX0NCisNCiAJCQkvKg0KIAkJCSAqIFNvbWUgY2FyZHMgbWlzaGFuZGxlIHRoZSBzdGF0dXMg Yml0cywNCiAJCQkgKiBzbyBtYWtlIHN1cmUgdG8gY2hlY2sgYm90aCB0aGUgYnVzeQ0KQEAgLTk5 MSw2ICsxMDI1LDEzIEBAIHN0YXRpYyBpbnQgbW1jX2Jsa19lcnJfY2hlY2soc3RydWN0IG1tY19j YXJkICpjYXJkLA0KIAkJCSAoUjFfQ1VSUkVOVF9TVEFURShzdGF0dXMpID09IFIxX1NUQVRFX1BS RykpOw0KIAl9DQogDQorCS8qIGlmIGdlbmVyYWwgZXJyb3Igb2NjdXJzLCByZXRyeSB0aGUgd3Jp dGUgb3BlcmF0aW9uLiAqLw0KKwlpZiAoZ2VuX2Vycikgew0KKwkJcHJfd2FybmluZygiJXM6IHJl dHJ5aW5nIHdyaXRlIGZvciBnZW5lcmFsIGVycm9yXG4iLA0KKwkJCQlyZXEtPnJxX2Rpc2stPmRp c2tfbmFtZSk7DQorCQlyZXR1cm4gTU1DX0JMS19SRVRSWTsNCisJfQ0KKw0KIAlpZiAoYnJxLT5k YXRhLmVycm9yKSB7DQogCQlwcl9lcnIoIiVzOiBlcnJvciAlZCB0cmFuc2ZlcnJpbmcgZGF0YSwg c2VjdG9yICV1LCBuciAldSwgY21kIHJlc3BvbnNlICUjeCwgY2FyZCBzdGF0dXMgJSN4XG4iLA0K IAkJICAgICAgIHJlcS0+cnFfZGlzay0+ZGlza19uYW1lLCBicnEtPmRhdGEuZXJyb3IsDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9tdGQvZGV2aWNlcy9tMjVwODAuYyBiL2RyaXZlcnMvbXRkL2Rldmlj ZXMvbTI1cDgwLmMNCmluZGV4IDlmOTk4MmYuLjNkNmJlYjcgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L210ZC9kZXZpY2VzL20yNXA4MC5jDQorKysgYi9kcml2ZXJzL210ZC9kZXZpY2VzL20yNXA4MC5j DQpAQCAtNzEsNyArNzEsNyBAQA0KIA0KIC8qIERlZmluZSBtYXggdGltZXMgdG8gY2hlY2sgc3Rh dHVzIHJlZ2lzdGVyIGJlZm9yZSB3ZSBnaXZlIHVwLiAqLw0KICNkZWZpbmUJTUFYX1JFQURZX1dB SVRfSklGRklFUwkoNDAgKiBIWikJLyogTTI1UDE2IHNwZWNzIDQwcyBtYXggY2hpcCBlcmFzZSAq Lw0KLSNkZWZpbmUJTUFYX0NNRF9TSVpFCQk1DQorI2RlZmluZQlNQVhfQ01EX1NJWkUJCTYNCiAN CiAjaWZkZWYgQ09ORklHX00yNVBYWF9VU0VfRkFTVF9SRUFEDQogI2RlZmluZSBPUENPREVfUkVB RCAJT1BDT0RFX0ZBU1RfUkVBRA0KQEAgLTg3NCwxNCArODc0LDEzIEBAIHN0YXRpYyBpbnQgX19k ZXZpbml0IG0yNXBfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkNCiAJCX0NCiAJfQ0KIA0K LQlmbGFzaCA9IGt6YWxsb2Moc2l6ZW9mICpmbGFzaCwgR0ZQX0tFUk5FTCk7DQorCWZsYXNoID0g ZGV2bV9remFsbG9jKCZzcGktPmRldiwgc2l6ZW9mKCpmbGFzaCksIEdGUF9LRVJORUwpOw0KIAlp ZiAoIWZsYXNoKQ0KIAkJcmV0dXJuIC1FTk9NRU07DQotCWZsYXNoLT5jb21tYW5kID0ga21hbGxv YyhNQVhfQ01EX1NJWkUgKyBGQVNUX1JFQURfRFVNTVlfQllURSwgR0ZQX0tFUk5FTCk7DQotCWlm ICghZmxhc2gtPmNvbW1hbmQpIHsNCi0JCWtmcmVlKGZsYXNoKTsNCisNCisJZmxhc2gtPmNvbW1h bmQgPSBkZXZtX2t6YWxsb2MoJnNwaS0+ZGV2LCBNQVhfQ01EX1NJWkUsIEdGUF9LRVJORUwpOw0K KwlpZiAoIWZsYXNoLT5jb21tYW5kKQ0KIAkJcmV0dXJuIC1FTk9NRU07DQotCX0NCiANCiAJZmxh c2gtPnNwaSA9IHNwaTsNCiAJbXV0ZXhfaW5pdCgmZmxhc2gtPmxvY2spOw0KQEAgLTk3OCwxNCAr OTc3LDEwIEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IG0yNXBfcHJvYmUoc3RydWN0IHNwaV9kZXZp Y2UgKnNwaSkNCiBzdGF0aWMgaW50IF9fZGV2ZXhpdCBtMjVwX3JlbW92ZShzdHJ1Y3Qgc3BpX2Rl dmljZSAqc3BpKQ0KIHsNCiAJc3RydWN0IG0yNXAJKmZsYXNoID0gZGV2X2dldF9kcnZkYXRhKCZz cGktPmRldik7DQotCWludAkJc3RhdHVzOw0KIA0KIAkvKiBDbGVhbiB1cCBNVEQgc3R1ZmYuICov DQotCXN0YXR1cyA9IG10ZF9kZXZpY2VfdW5yZWdpc3RlcigmZmxhc2gtPm10ZCk7DQotCWlmIChz dGF0dXMgPT0gMCkgew0KLQkJa2ZyZWUoZmxhc2gtPmNvbW1hbmQpOw0KLQkJa2ZyZWUoZmxhc2gp Ow0KLQl9DQorCW10ZF9kZXZpY2VfdW5yZWdpc3RlcigmZmxhc2gtPm10ZCk7DQorDQogCXJldHVy biAwOw0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL2dwbWktbmFuZC9ncG1p LW5hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvZ3BtaS1uYW5kL2dwbWktbmFuZC5jDQppbmRleCBm MzlmODNlLi5kNmE3NzY0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9ncG1pLW5hbmQv Z3BtaS1uYW5kLmMNCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvZ3BtaS1uYW5kL2dwbWktbmFuZC5j DQpAQCAtMjI3LDggKzIyNyw2IEBAIHN0YXRpYyB2b2lkIGRtYV9pcnFfY2FsbGJhY2sodm9pZCAq cGFyYW0pDQogCXN0cnVjdCBncG1pX25hbmRfZGF0YSAqdGhpcyA9IHBhcmFtOw0KIAlzdHJ1Y3Qg Y29tcGxldGlvbiAqZG1hX2MgPSAmdGhpcy0+ZG1hX2RvbmU7DQogDQotCWNvbXBsZXRlKGRtYV9j KTsNCi0NCiAJc3dpdGNoICh0aGlzLT5kbWFfdHlwZSkgew0KIAljYXNlIERNQV9GT1JfQ09NTUFO RDoNCiAJCWRtYV91bm1hcF9zZyh0aGlzLT5kZXYsICZ0aGlzLT5jbWRfc2dsLCAxLCBETUFfVE9f REVWSUNFKTsNCkBAIC0yNTMsNiArMjUxLDggQEAgc3RhdGljIHZvaWQgZG1hX2lycV9jYWxsYmFj ayh2b2lkICpwYXJhbSkNCiAJZGVmYXVsdDoNCiAJCXByX2VycigiaW4gd3JvbmcgRE1BIG9wZXJh dGlvbi5cbiIpOw0KIAl9DQorDQorCWNvbXBsZXRlKGRtYV9jKTsNCiB9DQogDQogaW50IHN0YXJ0 X2RtYV93aXRob3V0X2JjaF9pcnEoc3RydWN0IGdwbWlfbmFuZF9kYXRhICp0aGlzLA0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvbmFuZF9iYXNlLmMgYi9kcml2ZXJzL210ZC9uYW5kL25h bmRfYmFzZS5jDQppbmRleCBkYWVkNjk4Li40NmVkMjk2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9t dGQvbmFuZC9uYW5kX2Jhc2UuYw0KKysrIGIvZHJpdmVycy9tdGQvbmFuZC9uYW5kX2Jhc2UuYw0K QEAgLTI4OTUsMTAgKzI4OTUsMjIgQEAgc3RhdGljIGludCBuYW5kX2ZsYXNoX2RldGVjdF9vbmZp KHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLA0KIAlzYW5pdGl6 ZV9zdHJpbmcocC0+bW9kZWwsIHNpemVvZihwLT5tb2RlbCkpOw0KIAlpZiAoIW10ZC0+bmFtZSkN CiAJCW10ZC0+bmFtZSA9IHAtPm1vZGVsOw0KKw0KIAltdGQtPndyaXRlc2l6ZSA9IGxlMzJfdG9f Y3B1KHAtPmJ5dGVfcGVyX3BhZ2UpOw0KLQltdGQtPmVyYXNlc2l6ZSA9IGxlMzJfdG9fY3B1KHAt PnBhZ2VzX3Blcl9ibG9jaykgKiBtdGQtPndyaXRlc2l6ZTsNCisNCisJLyoNCisJICogcGFnZXNf cGVyX2Jsb2NrIGFuZCBibG9ja3NfcGVyX2x1biBtYXkgbm90IGJlIGEgcG93ZXItb2YtMiBzaXpl DQorCSAqIChkb24ndCBhc2sgbWUgd2hvIHRob3VnaHQgb2YgdGhpcy4uLikuIE1URCBhc3N1bWVz IHRoYXQgdGhlc2UNCisJICogZGltZW5zaW9ucyB3aWxsIGJlIHBvd2VyLW9mLTIsIHNvIGp1c3Qg dHJ1bmNhdGUgdGhlIHJlbWFpbmluZyBhcmVhLg0KKwkgKi8NCisJbXRkLT5lcmFzZXNpemUgPSAx IDw8IChmbHMobGUzMl90b19jcHUocC0+cGFnZXNfcGVyX2Jsb2NrKSkgLSAxKTsNCisJbXRkLT5l cmFzZXNpemUgKj0gbXRkLT53cml0ZXNpemU7DQorDQogCW10ZC0+b29ic2l6ZSA9IGxlMTZfdG9f Y3B1KHAtPnNwYXJlX2J5dGVzX3Blcl9wYWdlKTsNCi0JY2hpcC0+Y2hpcHNpemUgPSAodWludDY0 X3QpbGUzMl90b19jcHUocC0+YmxvY2tzX3Blcl9sdW4pICogbXRkLT5lcmFzZXNpemU7DQorDQor CS8qIFNlZSBlcmFzZXNpemUgY29tbWVudCAqLw0KKwljaGlwLT5jaGlwc2l6ZSA9IDEgPDwgKGZs cyhsZTMyX3RvX2NwdShwLT5ibG9ja3NfcGVyX2x1bikpIC0gMSk7DQorCWNoaXAtPmNoaXBzaXpl ICo9ICh1aW50NjRfdCltdGQtPmVyYXNlc2l6ZTsNCiAJKmJ1c3cgPSAwOw0KIAlpZiAobGUxNl90 b19jcHUocC0+ZmVhdHVyZXMpICYgMSkNCiAJCSpidXN3ID0gTkFORF9CVVNXSURUSF8xNjsNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfc3lzZnMuYyBiL2RyaXZlcnMvbmV0 L2JvbmRpbmcvYm9uZF9zeXNmcy5jDQppbmRleCA4ZWQ0OGMyLi5jZjk1YmQ4ZCAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9zeXNmcy5jDQorKysgYi9kcml2ZXJzL25ldC9i b25kaW5nL2JvbmRfc3lzZnMuYw0KQEAgLTUzNCw4ICs1MzQsOSBAQCBzdGF0aWMgc3NpemVfdCBi b25kaW5nX3N0b3JlX2FycF9pbnRlcnZhbChzdHJ1Y3QgZGV2aWNlICpkLA0KIAkJZ290byBvdXQ7 DQogCX0NCiAJaWYgKGJvbmQtPnBhcmFtcy5tb2RlID09IEJPTkRfTU9ERV9BTEIgfHwNCi0JICAg IGJvbmQtPnBhcmFtcy5tb2RlID09IEJPTkRfTU9ERV9UTEIpIHsNCi0JCXByX2luZm8oIiVzOiBB UlAgbW9uaXRvcmluZyBjYW5ub3QgYmUgdXNlZCB3aXRoIEFMQi9UTEIuIE9ubHkgTUlJIG1vbml0 b3JpbmcgaXMgc3VwcG9ydGVkIG9uICVzLlxuIiwNCisJICAgIGJvbmQtPnBhcmFtcy5tb2RlID09 IEJPTkRfTU9ERV9UTEIgfHwNCisJICAgIGJvbmQtPnBhcmFtcy5tb2RlID09IEJPTkRfTU9ERV84 MDIzQUQpIHsNCisJCXByX2luZm8oIiVzOiBBUlAgbW9uaXRvcmluZyBjYW5ub3QgYmUgdXNlZCB3 aXRoIEFMQi9UTEIvODAyLjNhZC4gT25seSBNSUkgbW9uaXRvcmluZyBpcyBzdXBwb3J0ZWQgb24g JXMuXG4iLA0KIAkJCWJvbmQtPmRldi0+bmFtZSwgYm9uZC0+ZGV2LT5uYW1lKTsNCiAJCXJldCA9 IC1FSU5WQUw7DQogCQlnb3RvIG91dDsNCkBAIC02OTMsNiArNjk0LDggQEAgc3RhdGljIHNzaXpl X3QgYm9uZGluZ19zdG9yZV9kb3duZGVsYXkoc3RydWN0IGRldmljZSAqZCwNCiAJaW50IG5ld192 YWx1ZSwgcmV0ID0gY291bnQ7DQogCXN0cnVjdCBib25kaW5nICpib25kID0gdG9fYm9uZChkKTsN CiANCisJaWYgKCFydG5sX3RyeWxvY2soKSkNCisJCXJldHVybiByZXN0YXJ0X3N5c2NhbGwoKTsN CiAJaWYgKCEoYm9uZC0+cGFyYW1zLm1paW1vbikpIHsNCiAJCXByX2VycigiJXM6IFVuYWJsZSB0 byBzZXQgZG93biBkZWxheSBhcyBNSUkgbW9uaXRvcmluZyBpcyBkaXNhYmxlZFxuIiwNCiAJCSAg ICAgICBib25kLT5kZXYtPm5hbWUpOw0KQEAgLTcyNiw2ICs3MjksNyBAQCBzdGF0aWMgc3NpemVf dCBib25kaW5nX3N0b3JlX2Rvd25kZWxheShzdHJ1Y3QgZGV2aWNlICpkLA0KIAl9DQogDQogb3V0 Og0KKwlydG5sX3VubG9jaygpOw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiBzdGF0aWMgREVWSUNFX0FU VFIoZG93bmRlbGF5LCBTX0lSVUdPIHwgU19JV1VTUiwNCkBAIC03NDgsNiArNzUyLDggQEAgc3Rh dGljIHNzaXplX3QgYm9uZGluZ19zdG9yZV91cGRlbGF5KHN0cnVjdCBkZXZpY2UgKmQsDQogCWlu dCBuZXdfdmFsdWUsIHJldCA9IGNvdW50Ow0KIAlzdHJ1Y3QgYm9uZGluZyAqYm9uZCA9IHRvX2Jv bmQoZCk7DQogDQorCWlmICghcnRubF90cnlsb2NrKCkpDQorCQlyZXR1cm4gcmVzdGFydF9zeXNj YWxsKCk7DQogCWlmICghKGJvbmQtPnBhcmFtcy5taWltb24pKSB7DQogCQlwcl9lcnIoIiVzOiBV bmFibGUgdG8gc2V0IHVwIGRlbGF5IGFzIE1JSSBtb25pdG9yaW5nIGlzIGRpc2FibGVkXG4iLA0K IAkJICAgICAgIGJvbmQtPmRldi0+bmFtZSk7DQpAQCAtNzgxLDYgKzc4Nyw3IEBAIHN0YXRpYyBz c2l6ZV90IGJvbmRpbmdfc3RvcmVfdXBkZWxheShzdHJ1Y3QgZGV2aWNlICpkLA0KIAl9DQogDQog b3V0Og0KKwlydG5sX3VubG9jaygpOw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiBzdGF0aWMgREVWSUNF X0FUVFIodXBkZWxheSwgU19JUlVHTyB8IFNfSVdVU1IsDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvY2FuL2NfY2FuL2NfY2FuLmMgYi9kcml2ZXJzL25ldC9jYW4vY19jYW4vY19jYW4uYw0KaW5k ZXggNjQ2NDdkNC4uOTFkMWI1YSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2Nhbi9jX2Nhbi9j X2Nhbi5jDQorKysgYi9kcml2ZXJzL25ldC9jYW4vY19jYW4vY19jYW4uYw0KQEAgLTc2NCw5ICs3 NjQsNiBAQCBzdGF0aWMgaW50IGNfY2FuX2RvX3J4X3BvbGwoc3RydWN0IG5ldF9kZXZpY2UgKmRl diwgaW50IHF1b3RhKQ0KIAkJCW1zZ19jdHJsX3NhdmUgPSBwcml2LT5yZWFkX3JlZyhwcml2LA0K IAkJCQkJJnByaXYtPnJlZ3MtPmlmcmVnc1swXS5tc2dfY250cmwpOw0KIA0KLQkJCWlmIChtc2df Y3RybF9zYXZlICYgSUZfTUNPTlRfRU9CKQ0KLQkJCQlyZXR1cm4gbnVtX3J4X3BrdHM7DQotDQog CQkJaWYgKG1zZ19jdHJsX3NhdmUgJiBJRl9NQ09OVF9NU0dMU1QpIHsNCiAJCQkJY19jYW5faGFu ZGxlX2xvc3RfbXNnX29iaihkZXYsIDAsIG1zZ19vYmopOw0KIAkJCQludW1fcnhfcGt0cysrOw0K QEAgLTc3NCw2ICs3NzEsOSBAQCBzdGF0aWMgaW50IGNfY2FuX2RvX3J4X3BvbGwoc3RydWN0IG5l dF9kZXZpY2UgKmRldiwgaW50IHF1b3RhKQ0KIAkJCQljb250aW51ZTsNCiAJCQl9DQogDQorCQkJ aWYgKG1zZ19jdHJsX3NhdmUgJiBJRl9NQ09OVF9FT0IpDQorCQkJCXJldHVybiBudW1fcnhfcGt0 czsNCisNCiAJCQlpZiAoIShtc2dfY3RybF9zYXZlICYgSUZfTUNPTlRfTkVXREFUKSkNCiAJCQkJ Y29udGludWU7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL3NqYTEwMDAvc2phMTAw MC5jIGIvZHJpdmVycy9uZXQvY2FuL3NqYTEwMDAvc2phMTAwMC5jDQppbmRleCA2YTFhY2ZlLi41 NjhiODIxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvY2FuL3NqYTEwMDAvc2phMTAwMC5jDQor KysgYi9kcml2ZXJzL25ldC9jYW4vc2phMTAwMC9zamExMDAwLmMNCkBAIC00ODgsMTkgKzQ4OCwx OSBAQCBpcnFyZXR1cm5fdCBzamExMDAwX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQp DQogCXVpbnQ4X3QgaXNyYywgc3RhdHVzOw0KIAlpbnQgbiA9IDA7DQogDQotCS8qIFNoYXJlZCBp bnRlcnJ1cHRzIGFuZCBJUlEgb2ZmPyAqLw0KLQlpZiAocHJpdi0+cmVhZF9yZWcocHJpdiwgUkVH X0lFUikgPT0gSVJRX09GRikNCi0JCXJldHVybiBJUlFfTk9ORTsNCi0NCiAJaWYgKHByaXYtPnBy ZV9pcnEpDQogCQlwcml2LT5wcmVfaXJxKHByaXYpOw0KIA0KKwkvKiBTaGFyZWQgaW50ZXJydXB0 cyBhbmQgSVJRIG9mZj8gKi8NCisJaWYgKHByaXYtPnJlYWRfcmVnKHByaXYsIFJFR19JRVIpID09 IElSUV9PRkYpDQorCQlnb3RvIG91dDsNCisNCiAJd2hpbGUgKChpc3JjID0gcHJpdi0+cmVhZF9y ZWcocHJpdiwgUkVHX0lSKSkgJiYgKG4gPCBTSkExMDAwX01BWF9JUlEpKSB7DQotCQluKys7DQor DQogCQlzdGF0dXMgPSBwcml2LT5yZWFkX3JlZyhwcml2LCBTSkExMDAwX1JFR19TUik7DQogCQkv KiBjaGVjayBmb3IgYWJzZW50IGNvbnRyb2xsZXIgZHVlIHRvIGh3IHVucGx1ZyAqLw0KIAkJaWYg KHN0YXR1cyA9PSAweEZGICYmIHNqYTEwMDBfaXNfYWJzZW50KHByaXYpKQ0KLQkJCXJldHVybiBJ UlFfTk9ORTsNCisJCQlnb3RvIG91dDsNCiANCiAJCWlmIChpc3JjICYgSVJRX1dVSSkNCiAJCQlk ZXZfd2FybihkZXYtPmRldi5wYXJlbnQsICJ3YWtldXAgaW50ZXJydXB0XG4iKTsNCkBAIC01MTks NyArNTE5LDcgQEAgaXJxcmV0dXJuX3Qgc2phMTAwMF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAq ZGV2X2lkKQ0KIAkJCQlzdGF0dXMgPSBwcml2LT5yZWFkX3JlZyhwcml2LCBTSkExMDAwX1JFR19T Uik7DQogCQkJCS8qIGNoZWNrIGZvciBhYnNlbnQgY29udHJvbGxlciAqLw0KIAkJCQlpZiAoc3Rh dHVzID09IDB4RkYgJiYgc2phMTAwMF9pc19hYnNlbnQocHJpdikpDQotCQkJCQlyZXR1cm4gSVJR X05PTkU7DQorCQkJCQlnb3RvIG91dDsNCiAJCQl9DQogCQl9DQogCQlpZiAoaXNyYyAmIChJUlFf RE9JIHwgSVJRX0VJIHwgSVJRX0JFSSB8IElSUV9FUEkgfCBJUlFfQUxJKSkgew0KQEAgLTUyNyw4 ICs1MjcsOSBAQCBpcnFyZXR1cm5fdCBzamExMDAwX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpk ZXZfaWQpDQogCQkJaWYgKHNqYTEwMDBfZXJyKGRldiwgaXNyYywgc3RhdHVzKSkNCiAJCQkJYnJl YWs7DQogCQl9DQorCQluKys7DQogCX0NCi0NCitvdXQ6DQogCWlmIChwcml2LT5wb3N0X2lycSkN CiAJCXByaXYtPnBvc3RfaXJxKHByaXYpOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3Ntc2Mvc21jOTF4LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zbXNjL3NtYzkxeC5o DQppbmRleCA1ZjUzZmJiLi5mZjFhZjQxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvc21zYy9zbWM5MXguaA0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc21zYy9zbWM5MXgu aA0KQEAgLTQ2LDcgKzQ2LDggQEANCiAgICAgZGVmaW5lZChDT05GSUdfTUFDSF9MSVRUTEVUT04p IHx8XA0KICAgICBkZWZpbmVkKENPTkZJR19NQUNIX1pZTE9OSVRFMikgfHxcDQogICAgIGRlZmlu ZWQoQ09ORklHX0FSQ0hfVklQRVIpIHx8XA0KLSAgICBkZWZpbmVkKENPTkZJR19NQUNIX1NUQVJH QVRFMikNCisgICAgZGVmaW5lZChDT05GSUdfTUFDSF9TVEFSR0FURTIpIHx8XA0KKyAgICBkZWZp bmVkKENPTkZJR19BUkNIX1ZFUlNBVElMRSkNCiANCiAjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMu aD4NCiANCkBAIC0xNTQsNiArMTU1LDggQEAgc3RhdGljIGlubGluZSB2b2lkIFNNQ19vdXR3KHUx NiB2YWwsIHZvaWQgX19pb21lbSAqaW9hZGRyLCBpbnQgcmVnKQ0KICNkZWZpbmUgU01DX291dGwo diwgYSwgcikJd3JpdGVsKHYsIChhKSArIChyKSkNCiAjZGVmaW5lIFNNQ19pbnNsKGEsIHIsIHAs IGwpCXJlYWRzbCgoYSkgKyAociksIHAsIGwpDQogI2RlZmluZSBTTUNfb3V0c2woYSwgciwgcCwg bCkJd3JpdGVzbCgoYSkgKyAociksIHAsIGwpDQorI2RlZmluZSBTTUNfaW5zdyhhLCByLCBwLCBs KQlyZWFkc3coKGEpICsgKHIpLCBwLCBsKQ0KKyNkZWZpbmUgU01DX291dHN3KGEsIHIsIHAsIGwp CXdyaXRlc3coKGEpICsgKHIpLCBwLCBsKQ0KICNkZWZpbmUgU01DX0lSUV9GTEFHUwkJKC0xKQkv KiBmcm9tIHJlc291cmNlICovDQogDQogLyogV2UgYWN0dWFsbHkgY2FuJ3Qgd3JpdGUgaGFsZndv cmRzIHByb3Blcmx5IGlmIG5vdCB3b3JkIGFsaWduZWQgKi8NCkBAIC0yMDYsMjMgKzIwOSw2IEBA IFNNQ19vdXR3KHUxNiB2YWwsIHZvaWQgX19pb21lbSAqaW9hZGRyLCBpbnQgcmVnKQ0KICNkZWZp bmUgUlBDX0xTQV9ERUZBVUxUCQlSUENfTEVEX1RYX1JYDQogI2RlZmluZSBSUENfTFNCX0RFRkFV TFQJCVJQQ19MRURfMTAwXzEwDQogDQotI2VsaWYJZGVmaW5lZChDT05GSUdfQVJDSF9WRVJTQVRJ TEUpDQotDQotI2RlZmluZSBTTUNfQ0FOX1VTRV84QklUCTENCi0jZGVmaW5lIFNNQ19DQU5fVVNF XzE2QklUCTENCi0jZGVmaW5lIFNNQ19DQU5fVVNFXzMyQklUCTENCi0jZGVmaW5lIFNNQ19OT1dB SVQJCTENCi0NCi0jZGVmaW5lIFNNQ19pbmIoYSwgcikJCXJlYWRiKChhKSArIChyKSkNCi0jZGVm aW5lIFNNQ19pbncoYSwgcikJCXJlYWR3KChhKSArIChyKSkNCi0jZGVmaW5lIFNNQ19pbmwoYSwg cikJCXJlYWRsKChhKSArIChyKSkNCi0jZGVmaW5lIFNNQ19vdXRiKHYsIGEsIHIpCXdyaXRlYih2 LCAoYSkgKyAocikpDQotI2RlZmluZSBTTUNfb3V0dyh2LCBhLCByKQl3cml0ZXcodiwgKGEpICsg KHIpKQ0KLSNkZWZpbmUgU01DX291dGwodiwgYSwgcikJd3JpdGVsKHYsIChhKSArIChyKSkNCi0j ZGVmaW5lIFNNQ19pbnNsKGEsIHIsIHAsIGwpCXJlYWRzbCgoYSkgKyAociksIHAsIGwpDQotI2Rl ZmluZSBTTUNfb3V0c2woYSwgciwgcCwgbCkJd3JpdGVzbCgoYSkgKyAociksIHAsIGwpDQotI2Rl ZmluZSBTTUNfSVJRX0ZMQUdTCQkoLTEpCS8qIGZyb20gcmVzb3VyY2UgKi8NCi0NCiAjZWxpZiBk ZWZpbmVkKENPTkZJR19NTjEwMzAwKQ0KIA0KIC8qDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv cHBwL3BwcG9lLmMgYi9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYw0KaW5kZXggMTE2MTU4NC4uMmYz MTlkMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jDQorKysgYi9kcml2ZXJz L25ldC9wcHAvcHBwb2UuYw0KQEAgLTk4NSw4ICs5ODUsNiBAQCBzdGF0aWMgaW50IHBwcG9lX3Jl Y3Ztc2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLA0KIAlpZiAoZXJy b3IgPCAwKQ0KIAkJZ290byBlbmQ7DQogDQotCW0tPm1zZ19uYW1lbGVuID0gMDsNCi0NCiAJaWYg KHNrYikgew0KIAkJdG90YWxfbGVuID0gbWluX3Qoc2l6ZV90LCB0b3RhbF9sZW4sIHNrYi0+bGVu KTsNCiAJCWVycm9yID0gc2tiX2NvcHlfZGF0YWdyYW1faW92ZWMoc2tiLCAwLCBtLT5tc2dfaW92 LCB0b3RhbF9sZW4pOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFz L2RlYnVnZnMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2RlYnVnZnMuYw0KaW5k ZXggZDhkOGYwZC4uMzVkODZmYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xp YmVydGFzL2RlYnVnZnMuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvZGVi dWdmcy5jDQpAQCAtOTE5LDcgKzkxOSwxMCBAQCBzdGF0aWMgc3NpemVfdCBsYnNfZGVidWdmc193 cml0ZShzdHJ1Y3QgZmlsZSAqZiwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwNCiAJY2hhciAqcDI7 DQogCXN0cnVjdCBkZWJ1Z19kYXRhICpkID0gZi0+cHJpdmF0ZV9kYXRhOw0KIA0KLQlwZGF0YSA9 IGttYWxsb2MoY250LCBHRlBfS0VSTkVMKTsNCisJaWYgKGNudCA9PSAwKQ0KKwkJcmV0dXJuIDA7 DQorDQorCXBkYXRhID0ga21hbGxvYyhjbnQgKyAxLCBHRlBfS0VSTkVMKTsNCiAJaWYgKHBkYXRh ID09IE5VTEwpDQogCQlyZXR1cm4gMDsNCiANCkBAIC05MjgsNiArOTMxLDcgQEAgc3RhdGljIHNz aXplX3QgbGJzX2RlYnVnZnNfd3JpdGUoc3RydWN0IGZpbGUgKmYsIGNvbnN0IGNoYXIgX191c2Vy ICpidWYsDQogCQlrZnJlZShwZGF0YSk7DQogCQlyZXR1cm4gMDsNCiAJfQ0KKwlwZGF0YVtjbnRd ID0gJ1wwJzsNCiANCiAJcDAgPSBwZGF0YTsNCiAJZm9yIChpID0gMDsgaSA8IG51bV9vZl9pdGVt czsgaSsrKSB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9zZGlv LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L3NkaW8uYw0KaW5kZXggMTdmODcyMC4u NzJiMjUzZDIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L3NkaW8u Yw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9zZGlvLmMNCkBAIC05MzYsNyAr OTM2LDEwIEBAIHN0YXRpYyBpbnQgbXdpZmlleF9kZWNvZGVfcnhfcGFja2V0KHN0cnVjdCBtd2lm aWV4X2FkYXB0ZXIgKmFkYXB0ZXIsDQogCQkJCSAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIg dXBsZF90eXApDQogew0KIAl1OCAqY21kX2J1ZjsNCisJX19sZTE2ICpjdXJyX3B0ciA9IChfX2xl MTYgKilza2ItPmRhdGE7DQorCXUxNiBwa3RfbGVuID0gbGUxNl90b19jcHUoKmN1cnJfcHRyKTsN CiANCisJc2tiX3RyaW0oc2tiLCBwa3RfbGVuKTsNCiAJc2tiX3B1bGwoc2tiLCBJTlRGX0hFQURF Ul9MRU4pOw0KIA0KIAlzd2l0Y2ggKHVwbGRfdHlwKSB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvcHJpc201NC9pc2xwY2lfZGV2LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9w cmlzbTU0L2lzbHBjaV9kZXYuYw0KaW5kZXggNWQwZjYxNS4uZTJmYTUzOCAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ByaXNtNTQvaXNscGNpX2Rldi5jDQorKysgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9wcmlzbTU0L2lzbHBjaV9kZXYuYw0KQEAgLTgxMiw2ICs4MTIsMTAgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBpc2xwY2lfbmV0ZGV2X29wcyA9IHsN CiAJLm5kb192YWxpZGF0ZV9hZGRyCT0gZXRoX3ZhbGlkYXRlX2FkZHIsDQogfTsNCiANCitzdGF0 aWMgc3RydWN0IGRldmljZV90eXBlIHdsYW5fdHlwZSA9IHsNCisJLm5hbWUJPSAid2xhbiIsDQor fTsNCisNCiBzdHJ1Y3QgbmV0X2RldmljZSAqDQogaXNscGNpX3NldHVwKHN0cnVjdCBwY2lfZGV2 ICpwZGV2KQ0KIHsNCkBAIC04MjIsOSArODI2LDggQEAgaXNscGNpX3NldHVwKHN0cnVjdCBwY2lf ZGV2ICpwZGV2KQ0KIAkJcmV0dXJuIG5kZXY7DQogDQogCXBjaV9zZXRfZHJ2ZGF0YShwZGV2LCBu ZGV2KTsNCi0jaWYgZGVmaW5lZChTRVRfTkVUREVWX0RFVikNCiAJU0VUX05FVERFVl9ERVYobmRl diwgJnBkZXYtPmRldik7DQotI2VuZGlmDQorCVNFVF9ORVRERVZfREVWVFlQRShuZGV2LCAmd2xh bl90eXBlKTsNCiANCiAJLyogc2V0dXAgdGhlIHN0cnVjdHVyZSBtZW1iZXJzICovDQogCW5kZXYt PmJhc2VfYWRkciA9IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAwKTsNCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyNDAwcGNpLmMgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9ydDJ4MDAvcnQyNDAwcGNpLmMNCmluZGV4IDBlYTg1ZjQuLjEzMWIyMmIgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyNDAwcGNpLmMNCisrKyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI0MDBwY2kuYw0KQEAgLTEyNTMsNyArMTI1Myw3IEBA IHN0YXRpYyB2b2lkIHJ0MjQwMHBjaV9maWxsX3J4ZG9uZShzdHJ1Y3QgcXVldWVfZW50cnkgKmVu dHJ5LA0KIAkgKi8NCiAJcnhkZXNjLT50aW1lc3RhbXAgPSAoKHU2NClyeF9oaWdoIDw8IDMyKSB8 IHJ4X2xvdzsNCiAJcnhkZXNjLT5zaWduYWwgPSBydDJ4MDBfZ2V0X2ZpZWxkMzIod29yZDIsIFJY RF9XMl9TSUdOQUwpICYgfjB4MDg7DQotCXJ4ZGVzYy0+cnNzaSA9IHJ0MngwMF9nZXRfZmllbGQz Mih3b3JkMiwgUlhEX1czX1JTU0kpIC0NCisJcnhkZXNjLT5yc3NpID0gcnQyeDAwX2dldF9maWVs ZDMyKHdvcmQzLCBSWERfVzNfUlNTSSkgLQ0KIAkgICAgZW50cnktPnF1ZXVlLT5ydDJ4MDBkZXYt PnJzc2lfb2Zmc2V0Ow0KIAlyeGRlc2MtPnNpemUgPSBydDJ4MDBfZ2V0X2ZpZWxkMzIod29yZDAs IFJYRF9XMF9EQVRBQllURV9DT1VOVCk7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvcnQyeDAwL3J0MngwMG1hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0 MngwMG1hYy5jDQppbmRleCA5MjFkYTlhLi41YzM4MjgxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMG1hYy5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9ydDJ4MDAvcnQyeDAwbWFjLmMNCkBAIC03NzEsNiArNzcxLDkgQEAgdm9pZCBydDJ4MDBtYWNf Zmx1c2goc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGJvb2wgZHJvcCkNCiAJc3RydWN0IHJ0Mngw MF9kZXYgKnJ0MngwMGRldiA9IGh3LT5wcml2Ow0KIAlzdHJ1Y3QgZGF0YV9xdWV1ZSAqcXVldWU7 DQogDQorCWlmICghdGVzdF9iaXQoREVWSUNFX1NUQVRFX1BSRVNFTlQsICZydDJ4MDBkZXYtPmZs YWdzKSkNCisJCXJldHVybjsNCisNCiAJdHhfcXVldWVfZm9yX2VhY2gocnQyeDAwZGV2LCBxdWV1 ZSkNCiAJCXJ0MngwMHF1ZXVlX2ZsdXNoX3F1ZXVlKHF1ZXVlLCBkcm9wKTsNCiB9DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9iYXNlLmMgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9ydGx3aWZpL2Jhc2UuYw0KaW5kZXggYjRjZTkzNC4uYTkxN2EyMiAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvYmFzZS5jDQorKysgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9ydGx3aWZpL2Jhc2UuYw0KQEAgLTMxLDYgKzMxLDcgQEANCiANCiAjaW5jbHVk ZSA8bGludXgvaXAuaD4NCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQorI2luY2x1ZGUgPGxp bnV4L3VkcC5oPg0KICNpbmNsdWRlICJ3aWZpLmgiDQogI2luY2x1ZGUgInJjLmgiDQogI2luY2x1 ZGUgImJhc2UuaCINCkBAIC05NTYsNjAgKzk1Nyw1MSBAQCB1OCBydGxfaXNfc3BlY2lhbF9kYXRh KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCBpc190eCkN CiAJaWYgKCFpZWVlODAyMTFfaXNfZGF0YShmYykpDQogCQlyZXR1cm4gZmFsc2U7DQogDQorCWlw ID0gKGNvbnN0IHN0cnVjdCBpcGhkciAqKShza2ItPmRhdGEgKyBtYWNfaGRyX2xlbiArDQorCQkJ CSAgICBTTkFQX1NJWkUgKyBQUk9UT0NfVFlQRV9TSVpFKTsNCisJZXRoZXJfdHlwZSA9IGJlMTZf dG9fY3B1cCgoX19iZTE2ICopDQorCQkJCSAgKHNrYi0+ZGF0YSArIG1hY19oZHJfbGVuICsgU05B UF9TSVpFKSk7DQogDQotCWlwID0gKHN0cnVjdCBpcGhkciAqKSgodTggKikgc2tiLT5kYXRhICsg bWFjX2hkcl9sZW4gKw0KLQkJCSAgICAgIFNOQVBfU0laRSArIFBST1RPQ19UWVBFX1NJWkUpOw0K LQlldGhlcl90eXBlID0gKih1MTYgKikgKCh1OCAqKSBza2ItPmRhdGEgKyBtYWNfaGRyX2xlbiAr IFNOQVBfU0laRSk7DQotCS8qCWV0aGVyX3R5cGUgPSBudG9ocyhldGhlcl90eXBlKTsgKi8NCi0N Ci0JaWYgKEVUSF9QX0lQID09IGV0aGVyX3R5cGUpIHsNCi0JCWlmIChJUFBST1RPX1VEUCA9PSBp cC0+cHJvdG9jb2wpIHsNCi0JCQlzdHJ1Y3QgdWRwaGRyICp1ZHAgPSAoc3RydWN0IHVkcGhkciAq KSgodTggKikgaXAgKw0KLQkJCQkJCQkgICAgICAgKGlwLT5paGwgPDwgMikpOw0KLQkJCWlmICgo KCgodTggKikgdWRwKVsxXSA9PSA2OCkgJiYNCi0JCQkgICAgICgoKHU4ICopIHVkcClbM10gPT0g NjcpKSB8fA0KLQkJCSAgICAoKCgodTggKikgdWRwKVsxXSA9PSA2NykgJiYNCi0JCQkgICAgICgo KHU4ICopIHVkcClbM10gPT0gNjgpKSkgew0KLQkJCQkvKg0KLQkJCQkgKiA2OCA6IFVEUCBCT09U UCBjbGllbnQNCi0JCQkJICogNjcgOiBVRFAgQk9PVFAgc2VydmVyDQotCQkJCSAqLw0KLQkJCQlS VF9UUkFDRShydGxwcml2LCAoQ09NUF9TRU5EIHwgQ09NUF9SRUNWKSwNCi0JCQkJCSBEQkdfRE1F U0csICgiZGhjcCAlcyAhIVxuIiwNCi0JCQkJCQkgICAgIChpc190eCkgPyAiVHgiIDogIlJ4Iikp Ow0KLQ0KLQkJCQlpZiAoaXNfdHgpIHsNCi0JCQkJCXJ0bF9scHNfbGVhdmUoaHcpOw0KLQkJCQkJ cHBzYy0+bGFzdF9kZWxheWxwc19zdGFtcF9qaWZmaWVzID0NCi0JCQkJCSAgICBqaWZmaWVzOw0K LQkJCQl9DQotDQotCQkJCXJldHVybiB0cnVlOw0KLQkJCX0NCi0JCX0NCi0JfSBlbHNlIGlmIChF VEhfUF9BUlAgPT0gZXRoZXJfdHlwZSkgew0KLQkJaWYgKGlzX3R4KSB7DQotCQkJcnRsX2xwc19s ZWF2ZShodyk7DQotCQkJcHBzYy0+bGFzdF9kZWxheWxwc19zdGFtcF9qaWZmaWVzID0gamlmZmll czsNCi0JCX0NCisJc3dpdGNoIChldGhlcl90eXBlKSB7DQorCWNhc2UgRVRIX1BfSVA6IHsNCisJ CXN0cnVjdCB1ZHBoZHIgKnVkcDsNCisJCXUxNiBzcmM7DQorCQl1MTYgZHN0Ow0KIA0KLQkJcmV0 dXJuIHRydWU7DQotCX0gZWxzZSBpZiAoRVRIX1BfUEFFID09IGV0aGVyX3R5cGUpIHsNCi0JCVJU X1RSQUNFKHJ0bHByaXYsIChDT01QX1NFTkQgfCBDT01QX1JFQ1YpLCBEQkdfRE1FU0csDQotCQkJ ICgiODAyLjFYICVzIEVBUE9MIHBrdCEhXG4iLCAoaXNfdHgpID8gIlR4IiA6ICJSeCIpKTsNCisJ CWlmIChpcC0+cHJvdG9jb2wgIT0gSVBQUk9UT19VRFApDQorCQkJcmV0dXJuIGZhbHNlOw0KKwkJ dWRwID0gKHN0cnVjdCB1ZHBoZHIgKikoKHU4ICopaXAgKyAoaXAtPmlobCA8PCAyKSk7DQorCQlz cmMgPSBiZTE2X3RvX2NwdSh1ZHAtPnNvdXJjZSk7DQorCQlkc3QgPSBiZTE2X3RvX2NwdSh1ZHAt PmRlc3QpOw0KIA0KLQkJaWYgKGlzX3R4KSB7DQotCQkJcnRsX2xwc19sZWF2ZShodyk7DQotCQkJ cHBzYy0+bGFzdF9kZWxheWxwc19zdGFtcF9qaWZmaWVzID0gamlmZmllczsNCi0JCX0NCisJCS8q IElmIHRoaXMgY2FzZSBpbnZvbHZlcyBwb3J0IDY4IChVRFAgQk9PVFAgY2xpZW50KSBjb25uZWN0 aW5nDQorCQkgKiB3aXRoIHBvcnQgNjcgKFVEUCBCT09UUCBzZXJ2ZXIpLCB0aGVuIHJldHVybiB0 cnVlIHNvIHRoYXQNCisJCSAqIHRoZSBsb3dlc3Qgc3BlZWQgaXMgdXNlZC4NCisJCSAqLw0KKwkJ aWYgKCEoKHNyYyA9PSA2OCAmJiBkc3QgPT0gNjcpIHx8IChzcmMgPT0gNjcgJiYgZHN0ID09IDY4 KSkpDQorCQkJcmV0dXJuIGZhbHNlOw0KIA0KLQkJcmV0dXJuIHRydWU7DQotCX0gZWxzZSBpZiAo RVRIX1BfSVBWNiA9PSBldGhlcl90eXBlKSB7DQotCQkvKiBJUHY2ICovDQotCQlyZXR1cm4gdHJ1 ZTsNCisJCVJUX1RSQUNFKHJ0bHByaXYsIChDT01QX1NFTkQgfCBDT01QX1JFQ1YpLCBEQkdfRE1F U0csDQorCQkJICgiZGhjcCAlcyAhIVxuIiwgaXNfdHggPyAiVHgiIDogIlJ4IikpOw0KKwkJYnJl YWs7DQogCX0NCi0NCi0JcmV0dXJuIGZhbHNlOw0KKwljYXNlIEVUSF9QX0FSUDoNCisJCWJyZWFr Ow0KKwljYXNlIEVUSF9QX1BBRToNCisJCVJUX1RSQUNFKHJ0bHByaXYsIChDT01QX1NFTkQgfCBD T01QX1JFQ1YpLCBEQkdfRE1FU0csDQorCQkJICgiODAyLjFYICVzIEVBUE9MIHBrdCEhXG4iLCBp c190eCA/ICJUeCIgOiAiUngiKSk7DQorCQlicmVhazsNCisJY2FzZSBFVEhfUF9JUFY2Og0KKwkJ LyogVE9ETzogSXMgdGhpcyByaWdodD8gKi8NCisJCXJldHVybiBmYWxzZTsNCisJZGVmYXVsdDoN CisJCXJldHVybiBmYWxzZTsNCisJfQ0KKwlpZiAoaXNfdHgpIHsNCisJCXJ0bF9scHNfbGVhdmUo aHcpOw0KKwkJcHBzYy0+bGFzdF9kZWxheWxwc19zdGFtcF9qaWZmaWVzID0gamlmZmllczsNCisJ fQ0KKwlyZXR1cm4gdHJ1ZTsNCiB9DQogDQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL3J0bHdpZmkvcnRsODE5MmN1L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRs d2lmaS9ydGw4MTkyY3UvbWFjLmMNCmluZGV4IDA2MGEwNmYuLjU1MTUyMTUgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjdS9tYWMuYw0KKysrIGIvZHJp dmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyY3UvbWFjLmMNCkBAIC03ODIsNyArNzgy LDcgQEAgc3RhdGljIGxvbmcgX3J0bDkyY19zaWduYWxfc2NhbGVfbWFwcGluZyhzdHJ1Y3QgaWVl ZTgwMjExX2h3ICpodywNCiANCiBzdGF0aWMgdm9pZCBfcnRsOTJjX3F1ZXJ5X3J4cGh5c3RhdHVz KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KIAkJCQkgICAgICBzdHJ1Y3QgcnRsX3N0YXRzICpw c3RhdHMsDQotCQkJCSAgICAgIHN0cnVjdCByeF9kZXNjXzkyYyAqcGRlc2MsDQorCQkJCSAgICAg IHN0cnVjdCByeF9kZXNjXzkyYyAqcF9kZXNjLA0KIAkJCQkgICAgICBzdHJ1Y3QgcnhfZndpbmZv XzkyYyAqcF9kcnZpbmZvLA0KIAkJCQkgICAgICBib29sIHBhY2tldF9tYXRjaF9ic3NpZCwNCiAJ CQkJICAgICAgYm9vbCBwYWNrZXRfdG9zZWxmLA0KQEAgLTc5NywxMSArNzk3LDExIEBAIHN0YXRp YyB2b2lkIF9ydGw5MmNfcXVlcnlfcnhwaHlzdGF0dXMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcs DQogCXUzMiByc3NpLCB0b3RhbF9yc3NpID0gMDsNCiAJYm9vbCBpbl9wb3dlcnNhdmVtb2RlID0g ZmFsc2U7DQogCWJvb2wgaXNfY2NrX3JhdGU7DQorCXU4ICpwZGVzYyA9ICh1OCAqKXBfZGVzYzsN CiANCi0JaXNfY2NrX3JhdGUgPSBSWF9IQUxfSVNfQ0NLX1JBVEUocGRlc2MpOw0KKwlpc19jY2tf cmF0ZSA9IFJYX0hBTF9JU19DQ0tfUkFURShwX2Rlc2MpOw0KIAlwc3RhdHMtPnBhY2tldF9tYXRj aGJzc2lkID0gcGFja2V0X21hdGNoX2Jzc2lkOw0KIAlwc3RhdHMtPnBhY2tldF90b3NlbGYgPSBw YWNrZXRfdG9zZWxmOw0KLQlwc3RhdHMtPmlzX2NjayA9IGlzX2Nja19yYXRlOw0KIAlwc3RhdHMt PnBhY2tldF9iZWFjb24gPSBwYWNrZXRfYmVhY29uOw0KIAlwc3RhdHMtPmlzX2NjayA9IGlzX2Nj a19yYXRlOw0KIAlwc3RhdHMtPlJYX1NJR1FbMF0gPSAtMTsNCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjdS90cnguYyBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL3J0bHdpZmkvcnRsODE5MmN1L3RyeC5jDQppbmRleCBhN2UxYTJjLi5hNmVhMmQ5IDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyY3UvdHJ4LmMNCisr KyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvcnRsODE5MmN1L3RyeC5jDQpAQCAtMzAz LDEwICszMDMsMTAgQEAgb3V0Og0KIGJvb2wgcnRsOTJjdV9yeF9xdWVyeV9kZXNjKHN0cnVjdCBp ZWVlODAyMTFfaHcgKmh3LA0KIAkJCSAgIHN0cnVjdCBydGxfc3RhdHMgKnN0YXRzLA0KIAkJCSAg IHN0cnVjdCBpZWVlODAyMTFfcnhfc3RhdHVzICpyeF9zdGF0dXMsDQotCQkJICAgdTggKnBfZGVz Yywgc3RydWN0IHNrX2J1ZmYgKnNrYikNCisJCQkgICB1OCAqcGRlc2MsIHN0cnVjdCBza19idWZm ICpza2IpDQogew0KIAlzdHJ1Y3QgcnhfZndpbmZvXzkyYyAqcF9kcnZpbmZvOw0KLQlzdHJ1Y3Qg cnhfZGVzY185MmMgKnBkZXNjID0gKHN0cnVjdCByeF9kZXNjXzkyYyAqKXBfZGVzYzsNCisJc3Ry dWN0IHJ4X2Rlc2NfOTJjICpwX2Rlc2MgPSAoc3RydWN0IHJ4X2Rlc2NfOTJjICopcGRlc2M7DQog CXUzMiBwaHlzdGF0dXMgPSBHRVRfUlhfREVTQ19QSFlfU1RBVFVTKHBkZXNjKTsNCiANCiAJc3Rh dHMtPmxlbmd0aCA9ICh1MTYpIEdFVF9SWF9ERVNDX1BLVF9MRU4ocGRlc2MpOw0KQEAgLTM0NSwx MSArMzQ1LDExIEBAIGJvb2wgcnRsOTJjdV9yeF9xdWVyeV9kZXNjKHN0cnVjdCBpZWVlODAyMTFf aHcgKmh3LA0KIAlpZiAocGh5c3RhdHVzKSB7DQogCQlwX2RydmluZm8gPSAoc3RydWN0IHJ4X2Z3 aW5mb185MmMgKikoc2tiLT5kYXRhICsNCiAJCQkJCQkgICAgIHN0YXRzLT5yeF9idWZzaGlmdCk7 DQotCQlydGw5MmNfdHJhbnNsYXRlX3J4X3NpZ25hbF9zdHVmZihodywgc2tiLCBzdGF0cywgcGRl c2MsDQorCQlydGw5MmNfdHJhbnNsYXRlX3J4X3NpZ25hbF9zdHVmZihodywgc2tiLCBzdGF0cywg cF9kZXNjLA0KIAkJCQkJCSBwX2RydmluZm8pOw0KIAl9DQogCS8qcnhfc3RhdHVzLT5xdWFsID0g c3RhdHMtPnNpZ25hbDsgKi8NCi0Jcnhfc3RhdHVzLT5zaWduYWwgPSBzdGF0cy0+cnNzaSArIDEw Ow0KKwlyeF9zdGF0dXMtPnNpZ25hbCA9IHN0YXRzLT5yZWN2c2lnbmFscG93ZXIgKyAxMDsNCiAJ LypyeF9zdGF0dXMtPm5vaXNlID0gLXN0YXRzLT5ub2lzZTsgKi8NCiAJcmV0dXJuIHRydWU7DQog fQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvcnRsODE5MmRlL3Ry eC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyZGUvdHJ4LmMNCmluZGV4 IDM2MzdjMGMuLjYzOWI1N2IgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3 aWZpL3J0bDgxOTJkZS90cnguYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9y dGw4MTkyZGUvdHJ4LmMNCkBAIC01MjksNyArNTI5LDcgQEAgYm9vbCBydGw5MmRlX3J4X3F1ZXJ5 X2Rlc2Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCXN0cnVjdCBydGxfc3RhdHMgKnN0YXRzLA0K IAkJCQkJCSAgIHBfZHJ2aW5mbyk7DQogCX0NCiAJLypyeF9zdGF0dXMtPnF1YWwgPSBzdGF0cy0+ c2lnbmFsOyAqLw0KLQlyeF9zdGF0dXMtPnNpZ25hbCA9IHN0YXRzLT5yc3NpICsgMTA7DQorCXJ4 X3N0YXR1cy0+c2lnbmFsID0gc3RhdHMtPnJlY3ZzaWduYWxwb3dlciArIDEwOw0KIAkvKnJ4X3N0 YXR1cy0+bm9pc2UgPSAtc3RhdHMtPm5vaXNlOyAqLw0KIAlyZXR1cm4gdHJ1ZTsNCiB9DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyc2UvcmYuYyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvcnRsODE5MnNlL3JmLmMNCmluZGV4IDBhZDUwZmUu LjEzMDgxZDkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgx OTJzZS9yZi5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJzZS9y Zi5jDQpAQCAtMjc0LDcgKzI3NCw3IEBAIHN0YXRpYyB2b2lkIF9ydGw5MnNfZ2V0X3R4cG93ZXJf d3JpdGV2YWxfYnlyZWd1bGF0b3J5KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KIAkJCQkgICAg cnRsZWZ1c2UtPnB3cmdyb3VwX2h0NDANCiAJCQkJICAgIFtSRjkwX1BBVEhfQV1bY2hubCAtIDFd KSB7DQogCQkJCQlwd3JkaWZmX2xpbWl0W2ldID0NCi0JCQkJCSAgcnRsZWZ1c2UtPnB3cmdyb3Vw X2h0MjANCisJCQkJCSAgcnRsZWZ1c2UtPnB3cmdyb3VwX2h0NDANCiAJCQkJCSAgW1JGOTBfUEFU SF9BXVtjaG5sIC0gMV07DQogCQkJCX0NCiAJCQl9IGVsc2Ugew0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvcnRsODE5MnNlL3RyeC5jIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvcnRsd2lmaS9ydGw4MTkyc2UvdHJ4LmMNCmluZGV4IGZiZWJlM2UuLjU0MmE4NzEgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJzZS90cnguYw0K KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyc2UvdHJ4LmMNCkBAIC01 ODIsNyArNTgyLDcgQEAgYm9vbCBydGw5MnNlX3J4X3F1ZXJ5X2Rlc2Moc3RydWN0IGllZWU4MDIx MV9odyAqaHcsIHN0cnVjdCBydGxfc3RhdHMgKnN0YXRzLA0KIAl9DQogDQogCS8qcnhfc3RhdHVz LT5xdWFsID0gc3RhdHMtPnNpZ25hbDsgKi8NCi0Jcnhfc3RhdHVzLT5zaWduYWwgPSBzdGF0cy0+ cnNzaSArIDEwOw0KKwlyeF9zdGF0dXMtPnNpZ25hbCA9IHN0YXRzLT5yZWN2c2lnbmFscG93ZXIg KyAxMDsNCiAJLypyeF9zdGF0dXMtPm5vaXNlID0gLXN0YXRzLT5ub2lzZTsgKi8NCiANCiAJcmV0 dXJuIHRydWU7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS93aWZp LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3dpZmkuaA0KaW5kZXggODJiYWFhMi4u NTc2NGVmNyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvd2lmaS5o DQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3dpZmkuaA0KQEAgLTczLDExICs3 Myw3IEBADQogI2RlZmluZSBSVExfU0xPVF9USU1FXzkJCQkJOQ0KICNkZWZpbmUgUlRMX1NMT1Rf VElNRV8yMAkJCTIwDQogDQotLypyZWxhdGVkIHdpdGggdGNwL2lwLiAqLw0KLS8qaWZfZWh0aGVy LmgqLw0KLSNkZWZpbmUgRVRIX1BfUEFFCQkweDg4OEUJLypQb3J0IEFjY2VzcyBFbnRpdHkgKElF RUUgODAyLjFYKSAqLw0KLSNkZWZpbmUgRVRIX1BfSVAJCTB4MDgwMAkvKkludGVybmV0IFByb3Rv Y29sIHBhY2tldCAqLw0KLSNkZWZpbmUgRVRIX1BfQVJQCQkweDA4MDYJLypBZGRyZXNzIFJlc29s dXRpb24gcGFja2V0ICovDQorLypyZWxhdGVkIHRvIHRjcC9pcC4gKi8NCiAjZGVmaW5lIFNOQVBf U0laRQkJNg0KICNkZWZpbmUgUFJPVE9DX1RZUEVfU0laRQkyDQogDQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9wY2kvcGNpZS9wb3J0ZHJ2X3BjaS5jIGIvZHJpdmVycy9wY2kvcGNpZS9wb3J0ZHJ2X3Bj aS5jDQppbmRleCBlMDYxMGJkLi43ZTQxYjcwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9wY2kvcGNp ZS9wb3J0ZHJ2X3BjaS5jDQorKysgYi9kcml2ZXJzL3BjaS9wY2llL3BvcnRkcnZfcGNpLmMNCkBA IC0xNTEsNyArMTUxLDYgQEAgc3RhdGljIGludCBfX2RldmluaXQgcGNpZV9wb3J0ZHJ2X3Byb2Jl KHN0cnVjdCBwY2lfZGV2ICpkZXYsDQogc3RhdGljIHZvaWQgcGNpZV9wb3J0ZHJ2X3JlbW92ZShz dHJ1Y3QgcGNpX2RldiAqZGV2KQ0KIHsNCiAJcGNpZV9wb3J0X2RldmljZV9yZW1vdmUoZGV2KTsN Ci0JcGNpX2Rpc2FibGVfZGV2aWNlKGRldik7DQogfQ0KIA0KIHN0YXRpYyBpbnQgZXJyb3JfZGV0 ZWN0ZWRfaXRlcihzdHJ1Y3QgZGV2aWNlICpkZXZpY2UsIHZvaWQgKmRhdGEpDQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ydGMvcnRjLWF0OTFybTkyMDAuYyBiL2RyaXZlcnMvcnRjL3J0Yy1hdDkxcm05 MjAwLmMNCmluZGV4IGUzOWI3N2EuLjE1NDA2ZDUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3J0Yy9y dGMtYXQ5MXJtOTIwMC5jDQorKysgYi9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXJtOTIwMC5jDQpAQCAt MTU2LDYgKzE1Niw4IEBAIHN0YXRpYyBpbnQgYXQ5MV9ydGNfc2V0YWxhcm0oc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkNCiANCiAJYXQ5MV9hbGFybV95ZWFyID0g dG0udG1feWVhcjsNCiANCisJdG0udG1fbW9uID0gYWxybS0+dGltZS50bV9tb247DQorCXRtLnRt X21kYXkgPSBhbHJtLT50aW1lLnRtX21kYXk7DQogCXRtLnRtX2hvdXIgPSBhbHJtLT50aW1lLnRt X2hvdXI7DQogCXRtLnRtX21pbiA9IGFscm0tPnRpbWUudG1fbWluOw0KIAl0bS50bV9zZWMgPSBh bHJtLT50aW1lLnRtX3NlYzsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29y ZV9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMNCmluZGV4IGZmZjU3 ZGUuLjU1ZjY0ODggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWlu LmMNCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYw0KQEAgLTQzMjIsNyAr NDMyMiw3IEBAIGludCBxZXRoX3NubXBfY29tbWFuZChzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkLCBj aGFyIF9fdXNlciAqdWRhdGEpDQogCXN0cnVjdCBxZXRoX2NtZF9idWZmZXIgKmlvYjsNCiAJc3Ry dWN0IHFldGhfaXBhX2NtZCAqY21kOw0KIAlzdHJ1Y3QgcWV0aF9zbm1wX3VyZXEgKnVyZXE7DQot CWludCByZXFfbGVuOw0KKwl1bnNpZ25lZCBpbnQgcmVxX2xlbjsNCiAJc3RydWN0IHFldGhfYXJw X3F1ZXJ5X2luZm8gcWluZm8gPSB7MCwgfTsNCiAJaW50IHJjID0gMDsNCiANCkBAIC00MzM4LDYg KzQzMzgsMTAgQEAgaW50IHFldGhfc25tcF9jb21tYW5kKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQs IGNoYXIgX191c2VyICp1ZGF0YSkNCiAJLyogc2tpcCA0IGJ5dGVzIChkYXRhX2xlbiBzdHJ1Y3Qg bWVtYmVyKSB0byBnZXQgcmVxX2xlbiAqLw0KIAlpZiAoY29weV9mcm9tX3VzZXIoJnJlcV9sZW4s IHVkYXRhICsgc2l6ZW9mKGludCksIHNpemVvZihpbnQpKSkNCiAJCXJldHVybiAtRUZBVUxUOw0K KwlpZiAocmVxX2xlbiA+IChRRVRIX0JVRlNJWkUgLSBJUEFfUERVX0hFQURFUl9TSVpFIC0NCisJ CSAgICAgICBzaXplb2Yoc3RydWN0IHFldGhfaXBhY21kX2hkcikgLQ0KKwkJICAgICAgIHNpemVv ZihzdHJ1Y3QgcWV0aF9pcGFjbWRfc2V0YWRwcGFybXNfaGRyKSkpDQorCQlyZXR1cm4gLUVJTlZB TDsNCiAJdXJlcSA9IG1lbWR1cF91c2VyKHVkYXRhLCByZXFfbGVuICsgc2l6ZW9mKHN0cnVjdCBx ZXRoX3NubXBfdXJlcV9oZHIpKTsNCiAJaWYgKElTX0VSUih1cmVxKSkgew0KIAkJUUVUSF9DQVJE X1RFWFQoY2FyZCwgMiwgInNubXBub21lIik7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2Fh Y3JhaWQvY29tbWN0cmwuYyBiL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2NvbW1jdHJsLmMNCmluZGV4 IDhhMGIzMzAuLjEyNTQ0MzEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Njc2kvYWFjcmFpZC9jb21t Y3RybC5jDQorKysgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9jb21tY3RybC5jDQpAQCAtNTA4LDcg KzUwOCw4IEBAIHN0YXRpYyBpbnQgYWFjX3NlbmRfcmF3X3NyYihzdHJ1Y3QgYWFjX2RldiogZGV2 LCB2b2lkIF9fdXNlciAqIGFyZykNCiAJCWdvdG8gY2xlYW51cDsNCiAJfQ0KIA0KLQlpZiAoZmli c2l6ZSA+IChkZXYtPm1heF9maWJfc2l6ZSAtIHNpemVvZihzdHJ1Y3QgYWFjX2ZpYmhkcikpKSB7 DQorCWlmICgoZmlic2l6ZSA8IChzaXplb2Yoc3RydWN0IHVzZXJfYWFjX3NyYikgLSBzaXplb2Yo c3RydWN0IHVzZXJfc2dlbnRyeSkpKSB8fA0KKwkgICAgKGZpYnNpemUgPiAoZGV2LT5tYXhfZmli X3NpemUgLSBzaXplb2Yoc3RydWN0IGFhY19maWJoZHIpKSkpIHsNCiAJCXJjb2RlID0gLUVJTlZB TDsNCiAJCWdvdG8gY2xlYW51cDsNCiAJfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9ocHNh LmMgYi9kcml2ZXJzL3Njc2kvaHBzYS5jDQppbmRleCAwZjQ4NTUwLi41YjdlMWJmIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9zY3NpL2hwc2EuYw0KKysrIGIvZHJpdmVycy9zY3NpL2hwc2EuYw0KQEAg LTExODYsNyArMTE4Niw3IEBAIHN0YXRpYyB2b2lkIGNvbXBsZXRlX3Njc2lfY29tbWFuZChzdHJ1 Y3QgQ29tbWFuZExpc3QgKmNwKQ0KIAkJCQkJImhhcyBjaGVjayBjb25kaXRpb246IGFib3J0ZWQg Y29tbWFuZDogIg0KIAkJCQkJIkFTQzogMHgleCwgQVNDUTogMHgleFxuIiwNCiAJCQkJCWNwLCBh c2MsIGFzY3EpOw0KLQkJCQljbWQtPnJlc3VsdCA9IERJRF9TT0ZUX0VSUk9SIDw8IDE2Ow0KKwkJ CQljbWQtPnJlc3VsdCB8PSBESURfU09GVF9FUlJPUiA8PCAxNjsNCiAJCQkJYnJlYWs7DQogCQkJ fQ0KIAkJCS8qIE11c3QgYmUgc29tZSBvdGhlciB0eXBlIG9mIGNoZWNrIGNvbmRpdGlvbiAqLw0K QEAgLTQ0NjUsNyArNDQ2NSw3IEBAIHJlaW5pdF9hZnRlcl9zb2Z0X3Jlc2V0Og0KIAlocHNhX2hi YV9pbnF1aXJ5KGgpOw0KIAlocHNhX3JlZ2lzdGVyX3Njc2koaCk7CS8qIGhvb2sgb3Vyc2VsdmVz IGludG8gU0NTSSBzdWJzeXN0ZW0gKi8NCiAJc3RhcnRfY29udHJvbGxlcl9sb2NrdXBfZGV0ZWN0 b3IoaCk7DQotCXJldHVybiAxOw0KKwlyZXR1cm4gMDsNCiANCiBjbGVhbjQ6DQogCWhwc2FfZnJl ZV9zZ19jaGFpbl9ibG9ja3MoaCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2xpYnNhcy9z YXNfYXRhLmMgYi9kcml2ZXJzL3Njc2kvbGlic2FzL3Nhc19hdGEuYw0KaW5kZXggNDg2OGZjOS4u NWUxNzBlMyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9saWJzYXMvc2FzX2F0YS5jDQorKysg Yi9kcml2ZXJzL3Njc2kvbGlic2FzL3Nhc19hdGEuYw0KQEAgLTE5Nyw3ICsxOTcsNyBAQCBzdGF0 aWMgdW5zaWduZWQgaW50IHNhc19hdGFfcWNfaXNzdWUoc3RydWN0IGF0YV9xdWV1ZWRfY21kICpx YykNCiAJCXFjLT50Zi5uc2VjdCA9IDA7DQogCX0NCiANCi0JYXRhX3RmX3RvX2ZpcygmcWMtPnRm LCAxLCAwLCAodTgqKSZ0YXNrLT5hdGFfdGFzay5maXMpOw0KKwlhdGFfdGZfdG9fZmlzKCZxYy0+ dGYsIHFjLT5kZXYtPmxpbmstPnBtcCwgMSwgKHU4ICopJnRhc2stPmF0YV90YXNrLmZpcyk7DQog CXRhc2stPnVsZGRfdGFzayA9IHFjOw0KIAlpZiAoYXRhX2lzX2F0YXBpKHFjLT50Zi5wcm90b2Nv bCkpIHsNCiAJCW1lbWNweSh0YXNrLT5hdGFfdGFzay5hdGFwaV9wYWNrZXQsIHFjLT5jZGIsIHFj LT5kZXYtPmNkYl9sZW4pOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy90aWRzcGJyaWRn ZS9LY29uZmlnIGIvZHJpdmVycy9zdGFnaW5nL3RpZHNwYnJpZGdlL0tjb25maWcNCmluZGV4IDkz ZGU0ZjIuLmIyN2Q5YWEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvdGlkc3BicmlkZ2Uv S2NvbmZpZw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3RpZHNwYnJpZGdlL0tjb25maWcNCkBAIC00 LDcgKzQsNyBAQA0KIA0KIG1lbnVjb25maWcgVElEU1BCUklER0UNCiAJdHJpc3RhdGUgIkRTUCBC cmlkZ2UgZHJpdmVyIg0KLQlkZXBlbmRzIG9uIEFSQ0hfT01BUDMNCisJZGVwZW5kcyBvbiBBUkNI X09NQVAzICYmIEJST0tFTg0KIAlzZWxlY3QgT01BUF9NQk9YX0ZXSw0KIAloZWxwDQogCSAgRFNQ L0JJT1MgQnJpZGdlIGlzIGRlc2lnbmVkIGZvciBwbGF0Zm9ybXMgdGhhdCBjb250YWluIGEgR1BQ IGFuZA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy96cmFtL3pyYW1fc3lzZnMuYyBiL2Ry aXZlcnMvc3RhZ2luZy96cmFtL3pyYW1fc3lzZnMuYw0KaW5kZXggMWZhZTFlOS4uZmM1NTJkOCAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy96cmFtL3pyYW1fc3lzZnMuYw0KKysrIGIvZHJp dmVycy9zdGFnaW5nL3pyYW0venJhbV9zeXNmcy5jDQpAQCAtOTUsMjAgKzk1LDI3IEBAIHN0YXRp YyBzc2l6ZV90IHJlc2V0X3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwNCiAJenJhbSA9IGRldl90 b196cmFtKGRldik7DQogCWJkZXYgPSBiZGdldF9kaXNrKHpyYW0tPmRpc2ssIDApOw0KIA0KKwlp ZiAoIWJkZXYpDQorCQlyZXR1cm4gLUVOT01FTTsNCisNCiAJLyogRG8gbm90IHJlc2V0IGFuIGFj dGl2ZSBkZXZpY2UhICovDQotCWlmIChiZGV2LT5iZF9ob2xkZXJzKQ0KLQkJcmV0dXJuIC1FQlVT WTsNCisJaWYgKGJkZXYtPmJkX2hvbGRlcnMpIHsNCisJCXJldCA9IC1FQlVTWTsNCisJCWdvdG8g b3V0Ow0KKwl9DQogDQogCXJldCA9IHN0cmljdF9zdHJ0b3VsKGJ1ZiwgMTAsICZkb19yZXNldCk7 DQogCWlmIChyZXQpDQotCQlyZXR1cm4gcmV0Ow0KKwkJZ290byBvdXQ7DQogDQotCWlmICghZG9f cmVzZXQpDQotCQlyZXR1cm4gLUVJTlZBTDsNCisJaWYgKCFkb19yZXNldCkgew0KKwkJcmV0ID0g LUVJTlZBTDsNCisJCWdvdG8gb3V0Ow0KKwl9DQogDQogCS8qIE1ha2Ugc3VyZSBhbGwgcGVuZGlu ZyBJL08gaXMgZmluaXNoZWQgKi8NCi0JaWYgKGJkZXYpDQotCQlmc3luY19iZGV2KGJkZXYpOw0K Kwlmc3luY19iZGV2KGJkZXYpOw0KKwliZHB1dChiZGV2KTsNCiANCiAJZG93bl93cml0ZSgmenJh bS0+aW5pdF9sb2NrKTsNCiAJaWYgKHpyYW0tPmluaXRfZG9uZSkNCkBAIC0xMTYsNiArMTIzLDEw IEBAIHN0YXRpYyBzc2l6ZV90IHJlc2V0X3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwNCiAJdXBf d3JpdGUoJnpyYW0tPmluaXRfbG9jayk7DQogDQogCXJldHVybiBsZW47DQorDQorb3V0Og0KKwli ZHB1dChiZGV2KTsNCisJcmV0dXJuIHJldDsNCiB9DQogDQogc3RhdGljIHNzaXplX3QgbnVtX3Jl YWRzX3Nob3coc3RydWN0IGRldmljZSAqZGV2LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGFyZ2V0 L2lzY3NpL2lzY3NpX3RhcmdldF9hdXRoLmMgYi9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90 YXJnZXRfYXV0aC5jDQppbmRleCAxY2Q2Y2UzLi41OWU3Mzc4IDEwMDY0NA0KLS0tIGEvZHJpdmVy cy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0X2F1dGguYw0KKysrIGIvZHJpdmVycy90YXJnZXQv aXNjc2kvaXNjc2lfdGFyZ2V0X2F1dGguYw0KQEAgLTE3Miw2ICsxNzIsNyBAQCBzdGF0aWMgaW50 IGNoYXBfc2VydmVyX2NvbXB1dGVfbWQ1KA0KIAl1bnNpZ25lZCBjaGFyIGNsaWVudF9kaWdlc3Rb TUQ1X1NJR05BVFVSRV9TSVpFXTsNCiAJdW5zaWduZWQgY2hhciBzZXJ2ZXJfZGlnZXN0W01ENV9T SUdOQVRVUkVfU0laRV07DQogCXVuc2lnbmVkIGNoYXIgY2hhcF9uW01BWF9DSEFQX05fU0laRV0s IGNoYXBfcltNQVhfUkVTUE9OU0VfTEVOR1RIXTsNCisJc2l6ZV90IGNvbXBhcmVfbGVuOw0KIAlz dHJ1Y3QgaXNjc2lfY2hhcCAqY2hhcCA9IChzdHJ1Y3QgaXNjc2lfY2hhcCAqKSBjb25uLT5hdXRo X3Byb3RvY29sOw0KIAlzdHJ1Y3QgY3J5cHRvX2hhc2ggKnRmbTsNCiAJc3RydWN0IGhhc2hfZGVz YyBkZXNjOw0KQEAgLTIxMCw3ICsyMTEsOSBAQCBzdGF0aWMgaW50IGNoYXBfc2VydmVyX2NvbXB1 dGVfbWQ1KA0KIAkJZ290byBvdXQ7DQogCX0NCiANCi0JaWYgKG1lbWNtcChjaGFwX24sIGF1dGgt PnVzZXJpZCwgc3RybGVuKGF1dGgtPnVzZXJpZCkpICE9IDApIHsNCisJLyogSW5jbHVkZSB0aGUg dGVybWluYXRpbmcgTlVMTCBpbiB0aGUgY29tcGFyZSAqLw0KKwljb21wYXJlX2xlbiA9IHN0cmxl bihhdXRoLT51c2VyaWQpICsgMTsNCisJaWYgKHN0cm5jbXAoY2hhcF9uLCBhdXRoLT51c2VyaWQs IGNvbXBhcmVfbGVuKSAhPSAwKSB7DQogCQlwcl9lcnIoIkNIQVBfTiB2YWx1ZXMgZG8gbm90IG1h dGNoIVxuIik7DQogCQlnb3RvIG91dDsNCiAJfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGFyZ2V0 L2lzY3NpL2lzY3NpX3RhcmdldF9uZWdvLmMgYi9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90 YXJnZXRfbmVnby5jDQppbmRleCA3ZDg1Zjg4Li4zNDg2ZDEyIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0X25lZ28uYw0KKysrIGIvZHJpdmVycy90YXJnZXQv aXNjc2kvaXNjc2lfdGFyZ2V0X25lZ28uYw0KQEAgLTg5LDcgKzg5LDcgQEAgaW50IGV4dHJhY3Rf cGFyYW0oDQogCWlmIChsZW4gPCAwKQ0KIAkJcmV0dXJuIC0xOw0KIA0KLQlpZiAobGVuID4gbWF4 X2xlbmd0aCkgew0KKwlpZiAobGVuID49IG1heF9sZW5ndGgpIHsNCiAJCXByX2VycigiTGVuZ3Ro IG9mIGlucHV0OiAlZCBleGVlZHMgbWF4X2xlbmd0aDoiDQogCQkJIiAlZFxuIiwgbGVuLCBtYXhf bGVuZ3RoKTsNCiAJCXJldHVybiAtMTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jbGFzcy9j ZGMtYWNtLmMgYi9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmMNCmluZGV4IDBjZGZmMzguLjYz NmVlOWUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmMNCisrKyBiL2Ry aXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYw0KQEAgLTE0NDgsNiArMTQ0OCw4IEBAIHN0YXRpYyBp bnQgYWNtX3Jlc2V0X3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikNCiANCiBzdGF0 aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgYWNtX2lkc1tdID0gew0KIAkvKiBxdWlya3kg YW5kIGJyb2tlbiBkZXZpY2VzICovDQorCXsgVVNCX0RFVklDRSgweDE3ZWYsIDB4NzAwMCksIC8q IExlbm92byBVU0IgbW9kZW0gKi8NCisJLmRyaXZlcl9pbmZvID0gTk9fVU5JT05fTk9STUFMLCB9 LC8qIGhhcyBubyB1bmlvbiBkZXNjcmlwdG9yICovDQogCXsgVVNCX0RFVklDRSgweDA4NzAsIDB4 MDAwMSksIC8qIE1ldHJpY29tIEdTIE1vZGVtICovDQogCS5kcml2ZXJfaW5mbyA9IE5PX1VOSU9O X05PUk1BTCwgLyogaGFzIG5vIHVuaW9uIGRlc2NyaXB0b3IgKi8NCiAJfSwNCmRpZmYgLS1naXQg YS9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jIGIvZHJpdmVycy91c2IvY29yZS9odWIuYw0KaW5kZXgg YTVlYTg1Zi4uNzAxMzE2NSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMNCisr KyBiL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMNCkBAIC05MDAsNiArOTAwLDExIEBAIHN0YXRpYyB2 b2lkIGh1Yl9hY3RpdmF0ZShzdHJ1Y3QgdXNiX2h1YiAqaHViLCBlbnVtIGh1Yl9hY3RpdmF0aW9u X3R5cGUgdHlwZSkNCiAJCQljbGVhcl9wb3J0X2ZlYXR1cmUoaHViLT5oZGV2LCBwb3J0MSwNCiAJ CQkJCVVTQl9QT1JUX0ZFQVRfQ19QT1JUX0xJTktfU1RBVEUpOw0KIAkJfQ0KKwkJaWYgKHBvcnRj aGFuZ2UgJiBVU0JfUE9SVF9TVEFUX0NfUkVTRVQpIHsNCisJCQluZWVkX2RlYm91bmNlX2RlbGF5 ID0gdHJ1ZTsNCisJCQljbGVhcl9wb3J0X2ZlYXR1cmUoaHViLT5oZGV2LCBwb3J0MSwNCisJCQkJ CVVTQl9QT1JUX0ZFQVRfQ19SRVNFVCk7DQorCQl9DQogDQogCQlpZiAoKHBvcnRjaGFuZ2UgJiBV U0JfUE9SVF9TVEFUX0NfQkhfUkVTRVQpICYmDQogCQkJCWh1Yl9pc19zdXBlcnNwZWVkKGh1Yi0+ aGRldikpIHsNCkBAIC0zNzQ5LDggKzM3NTQsOSBAQCBzdGF0aWMgdm9pZCBodWJfZXZlbnRzKHZv aWQpDQogCQkJCQlodWItPmhkZXYtPmNoaWxkcmVuW2kgLSAxXTsNCiANCiAJCQkJZGV2X2RiZyho dWJfZGV2LCAid2FybSByZXNldCBwb3J0ICVkXG4iLCBpKTsNCi0JCQkJaWYgKCF1ZGV2IHx8ICEo cG9ydHN0YXR1cyAmDQotCQkJCQkJVVNCX1BPUlRfU1RBVF9DT05ORUNUSU9OKSkgew0KKwkJCQlp ZiAoIXVkZXYgfHwNCisJCQkJICAgICEocG9ydHN0YXR1cyAmIFVTQl9QT1JUX1NUQVRfQ09OTkVD VElPTikgfHwNCisJCQkJICAgIHVkZXYtPnN0YXRlID09IFVTQl9TVEFURV9OT1RBVFRBQ0hFRCkg ew0KIAkJCQkJc3RhdHVzID0gaHViX3BvcnRfcmVzZXQoaHViLCBpLA0KIAkJCQkJCQlOVUxMLCBI VUJfQkhfUkVTRVRfVElNRSwNCiAJCQkJCQkJdHJ1ZSk7DQpAQCAtNDAxOCw2ICs0MDI0LDEyIEBA IHN0YXRpYyBpbnQgdXNiX3Jlc2V0X2FuZF92ZXJpZnlfZGV2aWNlKHN0cnVjdCB1c2JfZGV2aWNl ICp1ZGV2KQ0KIAl9DQogCXBhcmVudF9odWIgPSBoZGV2X3RvX2h1YihwYXJlbnRfaGRldik7DQog DQorCS8qIERpc2FibGUgVVNCMiBoYXJkd2FyZSBMUE0uDQorCSAqIEl0IHdpbGwgYmUgcmUtZW5h YmxlZCBieSB0aGUgZW51bWVyYXRpb24gcHJvY2Vzcy4NCisJICovDQorCWlmICh1ZGV2LT51c2Iy X2h3X2xwbV9lbmFibGVkID09IDEpDQorCQl1c2Jfc2V0X3VzYjJfaGFyZHdhcmVfbHBtKHVkZXYs IDApOw0KKw0KIAlzZXRfYml0KHBvcnQxLCBwYXJlbnRfaHViLT5idXN5X2JpdHMpOw0KIAlmb3Ig KGkgPSAwOyBpIDwgU0VUX0NPTkZJR19UUklFUzsgKytpKSB7DQogDQpkaWZmIC0tZ2l0IGEvZHJp dmVycy91c2IvZHdjMy9lcDAuYyBiL2RyaXZlcnMvdXNiL2R3YzMvZXAwLmMNCmluZGV4IGMwZGNm NjkuLmM0MTM0ZTggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9kd2MzL2VwMC5jDQorKysgYi9k cml2ZXJzL3VzYi9kd2MzL2VwMC5jDQpAQCAtMzk0LDYgKzM5NCw4IEBAIHN0YXRpYyBpbnQgZHdj M19lcDBfaGFuZGxlX2ZlYXR1cmUoc3RydWN0IGR3YzMgKmR3YywNCiAJCQlkZXAgPSAgZHdjM193 SW5kZXhfdG9fZGVwKGR3YywgY3RybC0+d0luZGV4KTsNCiAJCQlpZiAoIWRlcCkNCiAJCQkJcmV0 dXJuIC1FSU5WQUw7DQorCQkJaWYgKHNldCA9PSAwICYmIChkZXAtPmZsYWdzICYgRFdDM19FUF9X RURHRSkpDQorCQkJCWJyZWFrOw0KIAkJCXJldCA9IF9fZHdjM19nYWRnZXRfZXBfc2V0X2hhbHQo ZGVwLCBzZXQpOw0KIAkJCWlmIChyZXQpDQogCQkJCXJldHVybiAtRUlOVkFMOw0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvdXNiL2R3YzMvZ2FkZ2V0LmMgYi9kcml2ZXJzL3VzYi9kd2MzL2dhZGdldC5j DQppbmRleCA2MTllZTE5Li41ZjJlM2QwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvZHdjMy9n YWRnZXQuYw0KKysrIGIvZHJpdmVycy91c2IvZHdjMy9nYWRnZXQuYw0KQEAgLTkwMyw5ICs5MDMs NiBAQCBpbnQgX19kd2MzX2dhZGdldF9lcF9zZXRfaGFsdChzdHJ1Y3QgZHdjM19lcCAqZGVwLCBp bnQgdmFsdWUpDQogCQllbHNlDQogCQkJZGVwLT5mbGFncyB8PSBEV0MzX0VQX1NUQUxMOw0KIAl9 IGVsc2Ugew0KLQkJaWYgKGRlcC0+ZmxhZ3MgJiBEV0MzX0VQX1dFREdFKQ0KLQkJCXJldHVybiAw Ow0KLQ0KIAkJcmV0ID0gZHdjM19zZW5kX2dhZGdldF9lcF9jbWQoZHdjLCBkZXAtPm51bWJlciwN CiAJCQlEV0MzX0RFUENNRF9DTEVBUlNUQUxMLCAmcGFyYW1zKTsNCiAJCWlmIChyZXQpDQpAQCAt OTEzLDcgKzkxMCw3IEBAIGludCBfX2R3YzNfZ2FkZ2V0X2VwX3NldF9oYWx0KHN0cnVjdCBkd2Mz X2VwICpkZXAsIGludCB2YWx1ZSkNCiAJCQkJCXZhbHVlID8gInNldCIgOiAiY2xlYXIiLA0KIAkJ CQkJZGVwLT5uYW1lKTsNCiAJCWVsc2UNCi0JCQlkZXAtPmZsYWdzICY9IH5EV0MzX0VQX1NUQUxM Ow0KKwkJCWRlcC0+ZmxhZ3MgJj0gfihEV0MzX0VQX1NUQUxMIHwgRFdDM19FUF9XRURHRSk7DQog CX0NCiANCiAJcmV0dXJuIHJldDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvY29t cG9zaXRlLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvY29tcG9zaXRlLmMNCmluZGV4IGY3MWIwNzgu LjQ0ODRlZjEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvY29tcG9zaXRlLmMNCisr KyBiL2RyaXZlcnMvdXNiL2dhZGdldC9jb21wb3NpdGUuYw0KQEAgLTU4NSw2ICs1ODUsNyBAQCBz dGF0aWMgdm9pZCByZXNldF9jb25maWcoc3RydWN0IHVzYl9jb21wb3NpdGVfZGV2ICpjZGV2KQ0K IAkJYml0bWFwX3plcm8oZi0+ZW5kcG9pbnRzLCAzMik7DQogCX0NCiAJY2Rldi0+Y29uZmlnID0g TlVMTDsNCisJY2Rldi0+ZGVsYXllZF9zdGF0dXMgPSAwOw0KIH0NCiANCiBzdGF0aWMgaW50IHNl dF9jb25maWcoc3RydWN0IHVzYl9jb21wb3NpdGVfZGV2ICpjZGV2LA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lv LmMNCmluZGV4IGEzZjZmZTAuLjg1NTA0YmIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJp YWwvZnRkaV9zaW8uYw0KKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMNCkBAIC0y MTkyLDYgKzIxOTIsMjAgQEAgc3RhdGljIHZvaWQgZnRkaV9zZXRfdGVybWlvcyhzdHJ1Y3QgdHR5 X3N0cnVjdCAqdHR5LA0KIAkJdGVybWlvcy0+Y19jZmxhZyB8PSBDUlRTQ1RTOw0KIAl9DQogDQor CS8qDQorCSAqIEFsbCBGVERJIFVBUlQgY2hpcHMgYXJlIGxpbWl0ZWQgdG8gQ1M3LzguIFdlIHdv bid0IHByZXRlbmQgdG8NCisJICogc3VwcG9ydCBDUzUvNiBhbmQgcmV2ZXJ0IHRoZSBDU0laRSBz ZXR0aW5nIGluc3RlYWQuDQorCSAqLw0KKwlpZiAoKENfQ1NJWkUodHR5KSAhPSBDUzgpICYmIChD X0NTSVpFKHR0eSkgIT0gQ1M3KSkgew0KKwkJZGV2X3dhcm4oJnBvcnQtPmRldiwgInJlcXVlc3Rl ZCBDU0laRSBzZXR0aW5nIG5vdCBzdXBwb3J0ZWRcbiIpOw0KKw0KKwkJdGVybWlvcy0+Y19jZmxh ZyAmPSB+Q1NJWkU7DQorCQlpZiAob2xkX3Rlcm1pb3MpDQorCQkJdGVybWlvcy0+Y19jZmxhZyB8 PSBvbGRfdGVybWlvcy0+Y19jZmxhZyAmIENTSVpFOw0KKwkJZWxzZQ0KKwkJCXRlcm1pb3MtPmNf Y2ZsYWcgfD0gQ1M4Ow0KKwl9DQorDQogCWNmbGFnID0gdGVybWlvcy0+Y19jZmxhZzsNCiANCiAJ aWYgKCFvbGRfdGVybWlvcykNCkBAIC0yMjI4LDEzICsyMjQyLDE2IEBAIG5vX3NraXA6DQogCX0g ZWxzZSB7DQogCQl1cmJfdmFsdWUgfD0gRlRESV9TSU9fU0VUX0RBVEFfUEFSSVRZX05PTkU7DQog CX0NCi0JaWYgKGNmbGFnICYgQ1NJWkUpIHsNCi0JCXN3aXRjaCAoY2ZsYWcgJiBDU0laRSkgew0K LQkJY2FzZSBDUzc6IHVyYl92YWx1ZSB8PSA3OyBkYmcoIlNldHRpbmcgQ1M3Iik7IGJyZWFrOw0K LQkJY2FzZSBDUzg6IHVyYl92YWx1ZSB8PSA4OyBkYmcoIlNldHRpbmcgQ1M4Iik7IGJyZWFrOw0K LQkJZGVmYXVsdDoNCi0JCQlkZXZfZXJyKCZwb3J0LT5kZXYsICJDU0laRSB3YXMgc2V0IGJ1dCBu b3QgQ1M3LUNTOFxuIik7DQotCQl9DQorCXN3aXRjaCAoY2ZsYWcgJiBDU0laRSkgew0KKwljYXNl IENTNzoNCisJCXVyYl92YWx1ZSB8PSA3Ow0KKwkJZGV2X2RiZygmcG9ydC0+ZGV2LCAiU2V0dGlu ZyBDUzdcbiIpOw0KKwkJYnJlYWs7DQorCWRlZmF1bHQ6DQorCWNhc2UgQ1M4Og0KKwkJdXJiX3Zh bHVlIHw9IDg7DQorCQlkZXZfZGJnKCZwb3J0LT5kZXYsICJTZXR0aW5nIENTOFxuIik7DQorCQli cmVhazsNCiAJfQ0KIA0KIAkvKiBUaGlzIGlzIG5lZWRlZCBieSB0aGUgYnJlYWsgY29tbWFuZCBz aW5jZSBpdCB1c2VzIHRoZSBzYW1lIGNvbW1hbmQNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9z ZXJpYWwvZ2VuZXJpYy5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2dlbmVyaWMuYw0KaW5kZXggOWYw YjJiZi4uYzBlNjQ4NiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9nZW5lcmljLmMN CisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9nZW5lcmljLmMNCkBAIC0yMjgsMTQgKzIyOCw3IEBA IHJldHJ5Og0KIAkJcmV0dXJuIHJlc3VsdDsNCiAJfQ0KIA0KLQkvKiBUcnkgc2VuZGluZyBvZmYg YW5vdGhlciB1cmIsIHVubGVzcyBpbiBpcnEgY29udGV4dCAoaW4gd2hpY2ggY2FzZQ0KLQkgKiB0 aGVyZSB3aWxsIGJlIG5vIGZyZWUgdXJiKS4gKi8NCi0JaWYgKCFpbl9pcnEoKSkNCi0JCWdvdG8g cmV0cnk7DQotDQotCWNsZWFyX2JpdF91bmxvY2soVVNCX1NFUklBTF9XUklURV9CVVNZLCAmcG9y dC0+ZmxhZ3MpOw0KLQ0KLQlyZXR1cm4gMDsNCisJZ290byByZXRyeTsJLyogdHJ5IHNlbmRpbmcg b2ZmIGFub3RoZXIgdXJiICovDQogfQ0KIA0KIC8qKg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNi L3NlcmlhbC9tb3M3ODQwLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvbW9zNzg0MC5jDQppbmRleCA1 ZDI1MDFlLi44MGZjNDBhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL21vczc4NDAu Yw0KKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL21vczc4NDAuYw0KQEAgLTE2ODksNyArMTY4OSwx MSBAQCBzdGF0aWMgaW50IG1vczc4NDBfdGlvY21nZXQoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkN CiAJCXJldHVybiAtRU5PREVWOw0KIA0KIAlzdGF0dXMgPSBtb3M3ODQwX2dldF91YXJ0X3JlZyhw b3J0LCBNT0RFTV9TVEFUVVNfUkVHSVNURVIsICZtc3IpOw0KKwlpZiAoc3RhdHVzICE9IDEpDQor CQlyZXR1cm4gLUVJTzsNCiAJc3RhdHVzID0gbW9zNzg0MF9nZXRfdWFydF9yZWcocG9ydCwgTU9E RU1fQ09OVFJPTF9SRUdJU1RFUiwgJm1jcik7DQorCWlmIChzdGF0dXMgIT0gMSkNCisJCXJldHVy biAtRUlPOw0KIAlyZXN1bHQgPSAoKG1jciAmIE1DUl9EVFIpID8gVElPQ01fRFRSIDogMCkNCiAJ ICAgIHwgKChtY3IgJiBNQ1JfUlRTKSA/IFRJT0NNX1JUUyA6IDApDQogCSAgICB8ICgobWNyICYg TUNSX0xPT1BCQUNLKSA/IFRJT0NNX0xPT1AgOiAwKQ0KQEAgLTE5ODMsMjUgKzE5ODcsMjUgQEAg c3RhdGljIHZvaWQgbW9zNzg0MF9jaGFuZ2VfcG9ydF9zZXR0aW5ncyhzdHJ1Y3QgdHR5X3N0cnVj dCAqdHR5LA0KIAlpZmxhZyA9IHR0eS0+dGVybWlvcy0+Y19pZmxhZzsNCiANCiAJLyogQ2hhbmdl IHRoZSBudW1iZXIgb2YgYml0cyAqLw0KLQlpZiAoY2ZsYWcgJiBDU0laRSkgew0KLQkJc3dpdGNo IChjZmxhZyAmIENTSVpFKSB7DQotCQljYXNlIENTNToNCi0JCQlsRGF0YSA9IExDUl9CSVRTXzU7 DQotCQkJYnJlYWs7DQorCXN3aXRjaCAoY2ZsYWcgJiBDU0laRSkgew0KKwljYXNlIENTNToNCisJ CWxEYXRhID0gTENSX0JJVFNfNTsNCisJCWJyZWFrOw0KIA0KLQkJY2FzZSBDUzY6DQotCQkJbERh dGEgPSBMQ1JfQklUU182Ow0KLQkJCWJyZWFrOw0KKwljYXNlIENTNjoNCisJCWxEYXRhID0gTENS X0JJVFNfNjsNCisJCWJyZWFrOw0KIA0KLQkJY2FzZSBDUzc6DQotCQkJbERhdGEgPSBMQ1JfQklU U183Ow0KLQkJCWJyZWFrOw0KLQkJZGVmYXVsdDoNCi0JCWNhc2UgQ1M4Og0KLQkJCWxEYXRhID0g TENSX0JJVFNfODsNCi0JCQlicmVhazsNCi0JCX0NCisJY2FzZSBDUzc6DQorCQlsRGF0YSA9IExD Ul9CSVRTXzc7DQorCQlicmVhazsNCisNCisJZGVmYXVsdDoNCisJY2FzZSBDUzg6DQorCQlsRGF0 YSA9IExDUl9CSVRTXzg7DQorCQlicmVhazsNCiAJfQ0KKw0KIAkvKiBDaGFuZ2UgdGhlIFBhcml0 eSBiaXQgKi8NCiAJaWYgKGNmbGFnICYgUEFSRU5CKSB7DQogCQlpZiAoY2ZsYWcgJiBQQVJPREQp IHsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMgYi9kcml2ZXJzL3Vz Yi9zZXJpYWwvb3B0aW9uLmMNCmluZGV4IGQ4YWNlODIuLmQ2ZDBmYjQgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMNCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRp b24uYw0KQEAgLTg1LDYgKzg1LDcgQEAgc3RhdGljIHZvaWQgb3B0aW9uX2luc3RhdF9jYWxsYmFj ayhzdHJ1Y3QgdXJiICp1cmIpOw0KICNkZWZpbmUgSFVBV0VJX1BST0RVQ1RfSzQ1MDUJCQkweDE0 NjQNCiAjZGVmaW5lIEhVQVdFSV9QUk9EVUNUX0szNzY1CQkJMHgxNDY1DQogI2RlZmluZSBIVUFX RUlfUFJPRFVDVF9LNDYwNQkJCTB4MTRDNg0KKyNkZWZpbmUgSFVBV0VJX1BST0RVQ1RfRTE3M1M2 CQkJMHgxQzA3DQogDQogI2RlZmluZSBRVUFOVEFfVkVORE9SX0lECQkJMHgwNDA4DQogI2RlZmlu ZSBRVUFOVEFfUFJPRFVDVF9RMTAxCQkJMHhFQTAyDQpAQCAtNTg2LDYgKzU4Nyw4IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7DQogCXsgVVNCX0RF VklDRV9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHgxYzIzLCBVU0JfQ0xB U1NfQ09NTSwgMHgwMiwgMHhmZikgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5G TyhIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FMTczLCAweGZmLCAweGZmLCAweGZm KSwNCiAJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkgJm5ldF9pbnRmMV9ibGFja2xp c3QgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lE LCBIVUFXRUlfUFJPRFVDVF9FMTczUzYsIDB4ZmYsIDB4ZmYsIDB4ZmYpLA0KKwkJLmRyaXZlcl9p bmZvID0gKGtlcm5lbF91bG9uZ190KSAmbmV0X2ludGYxX2JsYWNrbGlzdCB9LA0KIAl7IFVTQl9E RVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNU X0UxNzUwLCAweGZmLCAweGZmLCAweGZmKSwNCiAJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxv bmdfdCkgJm5ldF9pbnRmMl9ibGFja2xpc3QgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZB Q0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweDE0NDEsIFVTQl9DTEFTU19DT01NLCAweDAyLCAw eGZmKSB9LA0KQEAgLTY0OCw2ICs2NTEsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2 aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5G TyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAxLCAweDZEKSB9LA0KIAl7IFVTQl9WRU5ET1Jf QU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDEsIDB4NkUpIH0s DQogCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhm ZiwgMHgwMSwgMHg2RikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFX RUlfVkVORE9SX0lELCAweGZmLCAweDAxLCAweDcyKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lO VEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDEsIDB4NzMpIH0sDQorCXsg VVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgw MSwgMHg3NCkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVO RE9SX0lELCAweGZmLCAweDAxLCAweDc1KSB9LA0KIAl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFD RV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDEsIDB4NzgpIH0sDQogCXsgVVNCX1ZF TkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMSwgMHg3 OSkgfSwNCiAJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lE LCAweGZmLCAweDAxLCAweDdBKSB9LA0KQEAgLTcwMiw2ICs3MDksMTAgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJeyBVU0JfVkVORE9SX0FO RF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAyLCAweDZEKSB9LA0K IAl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYs IDB4MDIsIDB4NkUpIH0sDQogCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJ X1ZFTkRPUl9JRCwgMHhmZiwgMHgwMiwgMHg2RikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRF UkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAyLCAweDcyKSB9LA0KKwl7IFVT Ql9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDIs IDB4NzMpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRP Ul9JRCwgMHhmZiwgMHgwMiwgMHg3NCkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0Vf SU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAyLCAweDc1KSB9LA0KIAl7IFVTQl9WRU5E T1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDIsIDB4Nzgp IH0sDQogCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwg MHhmZiwgMHgwMiwgMHg3OSkgfSwNCiAJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhI VUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAyLCAweDdBKSB9LA0KQEAgLTc1Niw2ICs3NjcsMTAg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJ eyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAw eDAzLCAweDZEKSB9LA0KIAl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9W RU5ET1JfSUQsIDB4ZmYsIDB4MDMsIDB4NkUpIH0sDQogCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJG QUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHg2RikgfSwNCisJeyBVU0Jf VkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAw eDcyKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1Jf SUQsIDB4ZmYsIDB4MDMsIDB4NzMpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lO Rk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHg3NCkgfSwNCisJeyBVU0JfVkVORE9S X0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAweDc1KSB9 LA0KIAl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4 ZmYsIDB4MDMsIDB4NzgpIH0sDQogCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVB V0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMywgMHg3OSkgfSwNCiAJeyBVU0JfVkVORE9SX0FORF9J TlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDAzLCAweDdBKSB9LA0KQEAg LTgxMCw2ICs4MjUsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlv bl9pZHNbXSA9IHsNCiAJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVO RE9SX0lELCAweGZmLCAweDA0LCAweDZEKSB9LA0KIAl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFD RV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4NkUpIH0sDQogCXsgVVNCX1ZF TkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHg2 RikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lE LCAweGZmLCAweDA0LCAweDcyKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZP KEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4NzMpIH0sDQorCXsgVVNCX1ZFTkRPUl9B TkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHg3NCkgfSwN CisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZm LCAweDA0LCAweDc1KSB9LA0KIAl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdF SV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDQsIDB4NzgpIH0sDQogCXsgVVNCX1ZFTkRPUl9BTkRfSU5U RVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNCwgMHg3OSkgfSwNCiAJeyBV U0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA0 LCAweDdBKSB9LA0KQEAgLTg2NCw2ICs4ODMsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2Jf ZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0Vf SU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA1LCAweDZEKSB9LA0KIAl7IFVTQl9WRU5E T1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4NkUp IH0sDQogCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwg MHhmZiwgMHgwNSwgMHg2RikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhI VUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA1LCAweDcyKSB9LA0KKwl7IFVTQl9WRU5ET1JfQU5E X0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4NzMpIH0sDQor CXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwg MHgwNSwgMHg3NCkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlf VkVORE9SX0lELCAweGZmLCAweDA1LCAweDc1KSB9LA0KIAl7IFVTQl9WRU5ET1JfQU5EX0lOVEVS RkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDUsIDB4NzgpIH0sDQogCXsgVVNC X1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNSwg MHg3OSkgfSwNCiAJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9S X0lELCAweGZmLCAweDA1LCAweDdBKSB9LA0KQEAgLTkxOCw2ICs5NDEsMTAgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJeyBVU0JfVkVORE9S X0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDZEKSB9 LA0KIAl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4 ZmYsIDB4MDYsIDB4NkUpIH0sDQogCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVB V0VJX1ZFTkRPUl9JRCwgMHhmZiwgMHgwNiwgMHg2RikgfSwNCisJeyBVU0JfVkVORE9SX0FORF9J TlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDcyKSB9LA0KKwl7 IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4 MDYsIDB4NzMpIH0sDQorCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZF TkRPUl9JRCwgMHhmZiwgMHgwNiwgMHg3NCkgfSwNCisJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZB Q0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDc1KSB9LA0KIAl7IFVTQl9W RU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4ZmYsIDB4MDYsIDB4 NzgpIH0sDQogCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9J RCwgMHhmZiwgMHgwNiwgMHg3OSkgfSwNCiAJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5G TyhIVUFXRUlfVkVORE9SX0lELCAweGZmLCAweDA2LCAweDdBKSB9LA0KQEAgLTEzOTEsNiArMTQx OCwyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0g ew0KIAkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjJfYmxhY2tsaXN0 IH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgx NDI2LCAweGZmLCAweGZmLCAweGZmKSwgIC8qIFpURSBNRjkxICovDQogCQkuZHJpdmVyX2luZm8g PSAoa2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmMl9ibGFja2xpc3QgfSwNCisJeyBVU0JfREVWSUNF X0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDE1MzMsIDB4ZmYsIDB4ZmYsIDB4 ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwg MHgxNTM0LCAweGZmLCAweGZmLCAweGZmKSB9LA0KKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFD RV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MTUzNSwgMHhmZiwgMHhmZiwgMHhmZikgfSwNCisJeyBV U0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDE1NDUsIDB4ZmYs IDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZF TkRPUl9JRCwgMHgxNTQ2LCAweGZmLCAweGZmLCAweGZmKSB9LA0KKwl7IFVTQl9ERVZJQ0VfQU5E X0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MTU0NywgMHhmZiwgMHhmZiwgMHhmZikg fSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDE1 NjUsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lO Rk8oWlRFX1ZFTkRPUl9JRCwgMHgxNTY2LCAweGZmLCAweGZmLCAweGZmKSB9LA0KKwl7IFVTQl9E RVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MTU2NywgMHhmZiwgMHhm ZiwgMHhmZikgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9S X0lELCAweDE1ODksIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5U RVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgxNTkwLCAweGZmLCAweGZmLCAweGZmKSB9LA0K Kwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MTU5MSwg MHhmZiwgMHhmZiwgMHhmZikgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyha VEVfVkVORE9SX0lELCAweDE1OTIsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklD RV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgxNTk0LCAweGZmLCAweGZmLCAw eGZmKSB9LA0KKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQs IDB4MTU5NiwgMHhmZiwgMHhmZiwgMHhmZikgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZB Q0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDE1OTgsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsg VVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgxNjAwLCAweGZm LCAweGZmLCAweGZmKSB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9W RU5ET1JfSUQsIDB4MjAwMiwgMHhmZiwNCiAJICAweGZmLCAweGZmKSwgLmRyaXZlcl9pbmZvID0g KGtlcm5lbF91bG9uZ190KSZ6dGVfazM3NjVfel9ibGFja2xpc3QgfSwNCiAJeyBVU0JfREVWSUNF X0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDIwMDMsIDB4ZmYsIDB4ZmYsIDB4 ZmYpIH0sDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jIGIvZHJpdmVy cy91c2Ivc2VyaWFsL3BsMjMwMy5jDQppbmRleCAzMTdlNTAzLi5lMzkzNmMxIDEwMDY0NA0KLS0t IGEvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jDQorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwv cGwyMzAzLmMNCkBAIC0yOTAsMjQgKzI5MCwyMSBAQCBzdGF0aWMgdm9pZCBwbDIzMDNfc2V0X3Rl cm1pb3Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwNCiAJZGJnKCIweGExOjB4MjE6MDowICAlZCAt ICV4ICV4ICV4ICV4ICV4ICV4ICV4IiwgaSwNCiAJICAgIGJ1ZlswXSwgYnVmWzFdLCBidWZbMl0s IGJ1ZlszXSwgYnVmWzRdLCBidWZbNV0sIGJ1Zls2XSk7DQogDQotCWlmIChjZmxhZyAmIENTSVpF KSB7DQotCQlzd2l0Y2ggKGNmbGFnICYgQ1NJWkUpIHsNCi0JCWNhc2UgQ1M1Og0KLQkJCWJ1Zls2 XSA9IDU7DQotCQkJYnJlYWs7DQotCQljYXNlIENTNjoNCi0JCQlidWZbNl0gPSA2Ow0KLQkJCWJy ZWFrOw0KLQkJY2FzZSBDUzc6DQotCQkJYnVmWzZdID0gNzsNCi0JCQlicmVhazsNCi0JCWRlZmF1 bHQ6DQotCQljYXNlIENTODoNCi0JCQlidWZbNl0gPSA4Ow0KLQkJCWJyZWFrOw0KLQkJfQ0KLQkJ ZGJnKCIlcyAtIGRhdGEgYml0cyA9ICVkIiwgX19mdW5jX18sIGJ1Zls2XSk7DQorCXN3aXRjaCAo Q19DU0laRSh0dHkpKSB7DQorCWNhc2UgQ1M1Og0KKwkJYnVmWzZdID0gNTsNCisJCWJyZWFrOw0K KwljYXNlIENTNjoNCisJCWJ1Zls2XSA9IDY7DQorCQlicmVhazsNCisJY2FzZSBDUzc6DQorCQli dWZbNl0gPSA3Ow0KKwkJYnJlYWs7DQorCWRlZmF1bHQ6DQorCWNhc2UgQ1M4Og0KKwkJYnVmWzZd ID0gODsNCiAJfQ0KKwlkZXZfZGJnKCZwb3J0LT5kZXYsICJkYXRhIGJpdHMgPSAlZFxuIiwgYnVm WzZdKTsNCiANCiAJLyogRm9yIHJlZmVyZW5jZSBidWZbMF06YnVmWzNdIGJhdWQgcmF0ZSB2YWx1 ZSAqLw0KIAkvKiBOT1RFOiBPbmx5IHRoZSB2YWx1ZXMgZGVmaW5lZCBpbiBiYXVkX3N1cCBhcmUg c3VwcG9ydGVkICENCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvc3BjcDh4NS5jIGIv ZHJpdmVycy91c2Ivc2VyaWFsL3NwY3A4eDUuYw0KaW5kZXggZjMxNzliMC4uMmY2N2I5OSAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zcGNwOHg1LmMNCisrKyBiL2RyaXZlcnMvdXNi L3NlcmlhbC9zcGNwOHg1LmMNCkBAIC0zOTQsMjIgKzM5NCwyMCBAQCBzdGF0aWMgdm9pZCBzcGNw OHg1X3NldF90ZXJtaW9zKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksDQogCX0NCiANCiAJLyogU2V0 IERhdGEgTGVuZ3RoIDogMDA6NWJpdCwgMDE6NmJpdCwgMTA6N2JpdCwgMTE6OGJpdCAqLw0KLQlp ZiAoY2ZsYWcgJiBDU0laRSkgew0KLQkJc3dpdGNoIChjZmxhZyAmIENTSVpFKSB7DQotCQljYXNl IENTNToNCi0JCQlidWZbMV0gfD0gU0VUX1VBUlRfRk9STUFUX1NJWkVfNTsNCi0JCQlicmVhazsN Ci0JCWNhc2UgQ1M2Og0KLQkJCWJ1ZlsxXSB8PSBTRVRfVUFSVF9GT1JNQVRfU0laRV82Ow0KLQkJ CWJyZWFrOw0KLQkJY2FzZSBDUzc6DQotCQkJYnVmWzFdIHw9IFNFVF9VQVJUX0ZPUk1BVF9TSVpF Xzc7DQotCQkJYnJlYWs7DQotCQlkZWZhdWx0Og0KLQkJY2FzZSBDUzg6DQotCQkJYnVmWzFdIHw9 IFNFVF9VQVJUX0ZPUk1BVF9TSVpFXzg7DQotCQkJYnJlYWs7DQotCQl9DQorCXN3aXRjaCAoY2Zs YWcgJiBDU0laRSkgew0KKwljYXNlIENTNToNCisJCWJ1ZlsxXSB8PSBTRVRfVUFSVF9GT1JNQVRf U0laRV81Ow0KKwkJYnJlYWs7DQorCWNhc2UgQ1M2Og0KKwkJYnVmWzFdIHw9IFNFVF9VQVJUX0ZP Uk1BVF9TSVpFXzY7DQorCQlicmVhazsNCisJY2FzZSBDUzc6DQorCQlidWZbMV0gfD0gU0VUX1VB UlRfRk9STUFUX1NJWkVfNzsNCisJCWJyZWFrOw0KKwlkZWZhdWx0Og0KKwljYXNlIENTODoNCisJ CWJ1ZlsxXSB8PSBTRVRfVUFSVF9GT1JNQVRfU0laRV84Ow0KKwkJYnJlYWs7DQogCX0NCiANCiAJ LyogU2V0IFN0b3AgYml0MiA6IDA6MWJpdCAxOjJiaXQgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJz L3VzYi93dXNiY29yZS93YS1ycGlwZS5jIGIvZHJpdmVycy91c2Ivd3VzYmNvcmUvd2EtcnBpcGUu Yw0KaW5kZXggZjBkNTQ2Yy4uY2ExMDMxYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3d1c2Jj b3JlL3dhLXJwaXBlLmMNCisrKyBiL2RyaXZlcnMvdXNiL3d1c2Jjb3JlL3dhLXJwaXBlLmMNCkBA IC0zMzIsNyArMzMyLDEwIEBAIHN0YXRpYyBpbnQgcnBpcGVfYWltKHN0cnVjdCB3YV9ycGlwZSAq cnBpcGUsIHN0cnVjdCB3YWhjICp3YSwNCiAJLyogRklYTUU6IGNvbXB1dGUgc28gc2VnX3NpemUg PiBlcC0+bWF4cGt0c2l6ZSAqLw0KIAlycGlwZS0+ZGVzY3Iud0Jsb2NrcyA9IGNwdV90b19sZTE2 KDE2KTsJCS8qIGdpdmVuICovDQogCS8qIGVwMCBtYXhwa3RzaXplIGlzIDB4MjAwIChXVVNCMS4w WzQuOC4xXSkgKi8NCi0JcnBpcGUtPmRlc2NyLndNYXhQYWNrZXRTaXplID0gY3B1X3RvX2xlMTYo ZXAtPmRlc2Mud01heFBhY2tldFNpemUpOw0KKwlpZiAodXNiX2VuZHBvaW50X3hmZXJfaXNvYygm ZXAtPmRlc2MpKQ0KKwkJcnBpcGUtPmRlc2NyLndNYXhQYWNrZXRTaXplID0gZXBjZC0+d092ZXJU aGVBaXJQYWNrZXRTaXplOw0KKwllbHNlDQorCQlycGlwZS0+ZGVzY3Iud01heFBhY2tldFNpemUg PSBlcC0+ZGVzYy53TWF4UGFja2V0U2l6ZTsNCiAJcnBpcGUtPmRlc2NyLmJIU0h1YkFkZHJlc3Mg PSAwOwkJCS8qIHJlc2VydmVkOiB6ZXJvICovDQogCXJwaXBlLT5kZXNjci5iSFNIdWJQb3J0ID0g d3VzYl9wb3J0X25vX3RvX2lkeCh1cmItPmRldi0+cG9ydG51bSk7DQogCS8qIEZJWE1FOiB1c2Ug bWF4aW11bSBzcGVlZCBhcyBzdXBwb3J0ZWQgb3IgcmVjb21tZW5kZWQgYnkgZGV2aWNlICovDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivd3VzYmNvcmUvd2EteGZlci5jIGIvZHJpdmVycy91c2Iv d3VzYmNvcmUvd2EteGZlci5jDQppbmRleCA1N2MwMWFiLi41ZjZkZjZlIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy91c2Ivd3VzYmNvcmUvd2EteGZlci5jDQorKysgYi9kcml2ZXJzL3VzYi93dXNiY29y ZS93YS14ZmVyLmMNCkBAIC05MCw3ICs5MCw4IEBADQogI2luY2x1ZGUgInd1c2JoYy5oIg0KIA0K IGVudW0gew0KLQlXQV9TRUdTX01BWCA9IDI1NSwNCisJLyogW1dVU0JdIHNlY3Rpb24gOC4zLjMg YWxsb2NhdGVzIDcgYml0cyBmb3IgdGhlIHNlZ21lbnQgaW5kZXguICovDQorCVdBX1NFR1NfTUFY ID0gMTI4LA0KIH07DQogDQogZW51bSB3YV9zZWdfc3RhdHVzIHsNCkBAIC00NDQsNyArNDQ1LDcg QEAgc3RhdGljIHNzaXplX3QgX193YV94ZmVyX3NldHVwX3NpemVzKHN0cnVjdCB3YV94ZmVyICp4 ZmVyLA0KIAl4ZmVyLT5zZWdfc2l6ZSA9ICh4ZmVyLT5zZWdfc2l6ZSAvIG1heHBrdHNpemUpICog bWF4cGt0c2l6ZTsNCiAJeGZlci0+c2VncyA9ICh1cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgg KyB4ZmVyLT5zZWdfc2l6ZSAtIDEpDQogCQkvIHhmZXItPnNlZ19zaXplOw0KLQlpZiAoeGZlci0+ c2VncyA+PSBXQV9TRUdTX01BWCkgew0KKwlpZiAoeGZlci0+c2VncyA+IFdBX1NFR1NfTUFYKSB7 DQogCQlkZXZfZXJyKGRldiwgIkJVRz8gb3BzLCBudW1iZXIgb2Ygc2VnbWVudHMgJWQgYmlnZ2Vy IHRoYW4gJWRcbiIsDQogCQkJKGludCkodXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoIC8geGZl ci0+c2VnX3NpemUpLA0KIAkJCVdBX1NFR1NfTUFYKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zp ZGVvL2JhY2tsaWdodC9hdG1lbC1wd20tYmwuYyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2F0 bWVsLXB3bS1ibC5jDQppbmRleCAwNDQzYTRmLi5kYWIzYTBjIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy92aWRlby9iYWNrbGlnaHQvYXRtZWwtcHdtLWJsLmMNCisrKyBiL2RyaXZlcnMvdmlkZW8vYmFj a2xpZ2h0L2F0bWVsLXB3bS1ibC5jDQpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgaW50IGF0bWVs X3B3bV9ibF9zZXRfaW50ZW5zaXR5KHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpiZCkNCiBzdGF0 aWMgaW50IGF0bWVsX3B3bV9ibF9nZXRfaW50ZW5zaXR5KHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNl ICpiZCkNCiB7DQogCXN0cnVjdCBhdG1lbF9wd21fYmwgKnB3bWJsID0gYmxfZ2V0X2RhdGEoYmQp Ow0KLQl1OCBpbnRlbnNpdHk7DQorCXUzMiBpbnRlbnNpdHk7DQogDQogCWlmIChwd21ibC0+cGRh dGEtPnB3bV9hY3RpdmVfbG93KSB7DQogCQlpbnRlbnNpdHkgPSBwd21fY2hhbm5lbF9yZWFkbCgm cHdtYmwtPnB3bWMsIFBXTV9DRFRZKSAtDQpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgaW50IGF0 bWVsX3B3bV9ibF9nZXRfaW50ZW5zaXR5KHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpiZCkNCiAJ CQlwd21fY2hhbm5lbF9yZWFkbCgmcHdtYmwtPnB3bWMsIFBXTV9DRFRZKTsNCiAJfQ0KIA0KLQly ZXR1cm4gaW50ZW5zaXR5Ow0KKwlyZXR1cm4gaW50ZW5zaXR5ICYgMHhmZmZmOw0KIH0NCiANCiBz dGF0aWMgaW50IGF0bWVsX3B3bV9ibF9pbml0X3B3bShzdHJ1Y3QgYXRtZWxfcHdtX2JsICpwd21i bCkNCkBAIC0yMTEsNyArMjExLDggQEAgc3RhdGljIGludCBfX2V4aXQgYXRtZWxfcHdtX2JsX3Jl bW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KIAlzdHJ1Y3QgYXRtZWxfcHdtX2Js ICpwd21ibCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOw0KIA0KIAlpZiAocHdtYmwtPmdw aW9fb24gIT0gLTEpIHsNCi0JCWdwaW9fc2V0X3ZhbHVlKHB3bWJsLT5ncGlvX29uLCAwKTsNCisJ CWdwaW9fc2V0X3ZhbHVlKHB3bWJsLT5ncGlvX29uLA0KKwkJCQkJMCBeIHB3bWJsLT5wZGF0YS0+ b25fYWN0aXZlX2xvdyk7DQogCQlncGlvX2ZyZWUocHdtYmwtPmdwaW9fb24pOw0KIAl9DQogCXB3 bV9jaGFubmVsX2Rpc2FibGUoJnB3bWJsLT5wd21jKTsNCmRpZmYgLS1naXQgYS9mcy9jaWZzL2Np ZnNzbWIuYyBiL2ZzL2NpZnMvY2lmc3NtYi5jDQppbmRleCBjODU4YTI5Li45NjlmNzRmIDEwMDY0 NA0KLS0tIGEvZnMvY2lmcy9jaWZzc21iLmMNCisrKyBiL2ZzL2NpZnMvY2lmc3NtYi5jDQpAQCAt MzQzNywxMSArMzQzNywxMyBAQCBzdGF0aWMgX191MTYgQUNMX3RvX2NpZnNfcG9zaXgoY2hhciAq cGFybV9kYXRhLCBjb25zdCBjaGFyICpwQUNMLA0KIAkJcmV0dXJuIDA7DQogCX0NCiAJY2lmc19h Y2wtPnZlcnNpb24gPSBjcHVfdG9fbGUxNigxKTsNCi0JaWYgKGFjbF90eXBlID09IEFDTF9UWVBF X0FDQ0VTUykNCisJaWYgKGFjbF90eXBlID09IEFDTF9UWVBFX0FDQ0VTUykgew0KIAkJY2lmc19h Y2wtPmFjY2Vzc19lbnRyeV9jb3VudCA9IGNwdV90b19sZTE2KGNvdW50KTsNCi0JZWxzZSBpZiAo YWNsX3R5cGUgPT0gQUNMX1RZUEVfREVGQVVMVCkNCisJCWNpZnNfYWNsLT5kZWZhdWx0X2VudHJ5 X2NvdW50ID0gX19jb25zdGFudF9jcHVfdG9fbGUxNigweEZGRkYpOw0KKwl9IGVsc2UgaWYgKGFj bF90eXBlID09IEFDTF9UWVBFX0RFRkFVTFQpIHsNCiAJCWNpZnNfYWNsLT5kZWZhdWx0X2VudHJ5 X2NvdW50ID0gY3B1X3RvX2xlMTYoY291bnQpOw0KLQllbHNlIHsNCisJCWNpZnNfYWNsLT5hY2Nl c3NfZW50cnlfY291bnQgPSBfX2NvbnN0YW50X2NwdV90b19sZTE2KDB4RkZGRik7DQorCX0gZWxz ZSB7DQogCQljRllJKDEsICJ1bmtub3duIEFDTCB0eXBlICVkIiwgYWNsX3R5cGUpOw0KIAkJcmV0 dXJuIDA7DQogCX0NCmRpZmYgLS1naXQgYS9mcy9jb25maWdmcy9kaXIuYyBiL2ZzL2NvbmZpZ2Zz L2Rpci5jDQppbmRleCA5YTM3YTliLi41ZWY3MmM4IDEwMDY0NA0KLS0tIGEvZnMvY29uZmlnZnMv ZGlyLmMNCisrKyBiL2ZzL2NvbmZpZ2ZzL2Rpci5jDQpAQCAtNTYsMTAgKzU2LDE5IEBAIHN0YXRp YyB2b2lkIGNvbmZpZ2ZzX2RfaXB1dChzdHJ1Y3QgZGVudHJ5ICogZGVudHJ5LA0KIAlzdHJ1Y3Qg Y29uZmlnZnNfZGlyZW50ICpzZCA9IGRlbnRyeS0+ZF9mc2RhdGE7DQogDQogCWlmIChzZCkgew0K LQkJQlVHX09OKHNkLT5zX2RlbnRyeSAhPSBkZW50cnkpOw0KIAkJLyogQ29vcmRpbmF0ZSB3aXRo IGNvbmZpZ2ZzX3JlYWRkaXIgKi8NCiAJCXNwaW5fbG9jaygmY29uZmlnZnNfZGlyZW50X2xvY2sp Ow0KLQkJc2QtPnNfZGVudHJ5ID0gTlVMTDsNCisJCS8qIENvb3JkaW5hdGUgd2l0aCBjb25maWdm c19hdHRhY2hfYXR0ciB3aGVyZSB3aWxsIGluY3JlYXNlDQorCQkgKiBzZC0+c19jb3VudCBhbmQg dXBkYXRlIHNkLT5zX2RlbnRyeSB0byBuZXcgYWxsb2NhdGVkIG9uZS4NCisJCSAqIE9ubHkgc2V0 IHNkLT5kZW50cnkgdG8gbnVsbCB3aGVuIHRoaXMgZGVudHJ5IGlzIHRoZSBvbmx5DQorCQkgKiBz ZCBvd25lci4NCisJCSAqIElmIG5vdCBkbyBzbywgY29uZmlnZnNfZF9pcHV0IG1heSBydW4ganVz dCBhZnRlcg0KKwkJICogY29uZmlnZnNfYXR0YWNoX2F0dHIgYW5kIHNldCBzZC0+c19kZW50cnkg dG8gbnVsbA0KKwkJICogZXZlbiBpdCdzIHN0aWxsIGluIHVzZS4NCisJCSAqLw0KKwkJaWYgKGF0 b21pY19yZWFkKCZzZC0+c19jb3VudCkgPD0gMikNCisJCQlzZC0+c19kZW50cnkgPSBOVUxMOw0K Kw0KIAkJc3Bpbl91bmxvY2soJmNvbmZpZ2ZzX2RpcmVudF9sb2NrKTsNCiAJCWNvbmZpZ2ZzX3B1 dChzZCk7DQogCX0NCkBAIC00MzYsOCArNDQ1LDExIEBAIHN0YXRpYyBpbnQgY29uZmlnZnNfYXR0 YWNoX2F0dHIoc3RydWN0IGNvbmZpZ2ZzX2RpcmVudCAqIHNkLCBzdHJ1Y3QgZGVudHJ5ICogZGVu DQogCXN0cnVjdCBjb25maWdmc19hdHRyaWJ1dGUgKiBhdHRyID0gc2QtPnNfZWxlbWVudDsNCiAJ aW50IGVycm9yOw0KIA0KKwlzcGluX2xvY2soJmNvbmZpZ2ZzX2RpcmVudF9sb2NrKTsNCiAJZGVu dHJ5LT5kX2ZzZGF0YSA9IGNvbmZpZ2ZzX2dldChzZCk7DQogCXNkLT5zX2RlbnRyeSA9IGRlbnRy eTsNCisJc3Bpbl91bmxvY2soJmNvbmZpZ2ZzX2RpcmVudF9sb2NrKTsNCisNCiAJZXJyb3IgPSBj b25maWdmc19jcmVhdGUoZGVudHJ5LCAoYXR0ci0+Y2FfbW9kZSAmIFNfSUFMTFVHTykgfCBTX0lG UkVHLA0KIAkJCQljb25maWdmc19pbml0X2ZpbGUpOw0KIAlpZiAoZXJyb3IpIHsNCmRpZmYgLS1n aXQgYS9mcy9kZXZwdHMvaW5vZGUuYyBiL2ZzL2RldnB0cy9pbm9kZS5jDQppbmRleCBkNWQ1Mjk3 Li4yYTk1MDQ3IDEwMDY0NA0KLS0tIGEvZnMvZGV2cHRzL2lub2RlLmMNCisrKyBiL2ZzL2RldnB0 cy9pbm9kZS5jDQpAQCAtNDEzLDYgKzQxMyw3IEBAIHN0YXRpYyB2b2lkIGRldnB0c19raWxsX3Ni KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpDQogew0KIAlzdHJ1Y3QgcHRzX2ZzX2luZm8gKmZzaSA9 IERFVlBUU19TQihzYik7DQogDQorCWlkYV9kZXN0cm95KCZmc2ktPmFsbG9jYXRlZF9wdHlzKTsN CiAJa2ZyZWUoZnNpKTsNCiAJa2lsbF9saXR0ZXJfc3VwZXIoc2IpOw0KIH0NCmRpZmYgLS1naXQg YS9mcy9leGVjLmMgYi9mcy9leGVjLmMNCmluZGV4IGEyZDBlNTEuLjc4MTk5ZWIgMTAwNjQ0DQot LS0gYS9mcy9leGVjLmMNCisrKyBiL2ZzL2V4ZWMuYw0KQEAgLTIwMzIsNiArMjAzMiwxMiBAQCBz dGF0aWMgaW50IF9fZ2V0X2R1bXBhYmxlKHVuc2lnbmVkIGxvbmcgbW1fZmxhZ3MpDQogCXJldHVy biAocmV0ID49IDIpID8gMiA6IHJldDsNCiB9DQogDQorLyoNCisgKiBUaGlzIHJldHVybnMgdGhl IGFjdHVhbCB2YWx1ZSBvZiB0aGUgc3VpZF9kdW1wYWJsZSBmbGFnLiBGb3IgdGhpbmdzDQorICog dGhhdCBhcmUgdXNpbmcgdGhpcyBmb3IgY2hlY2tpbmcgZm9yIHByaXZpbGVnZSB0cmFuc2l0aW9u cywgaXQgbXVzdA0KKyAqIHRlc3QgYWdhaW5zdCBTVUlEX0RVTVBfVVNFUiByYXRoZXIgdGhhbiB0 cmVhdGluZyBpdCBhcyBhIGJvb2xlYW4NCisgKiB2YWx1ZS4NCisgKi8NCiBpbnQgZ2V0X2R1bXBh YmxlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQ0KIHsNCiAJcmV0dXJuIF9fZ2V0X2R1bXBhYmxlKG1t LT5mbGFncyk7DQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC94YXR0ci5jIGIvZnMvZXh0NC94YXR0ci5j DQppbmRleCBiNGU5ZjNmLi4wNTYxN2JkIDEwMDY0NA0KLS0tIGEvZnMvZXh0NC94YXR0ci5jDQor KysgYi9mcy9leHQ0L3hhdHRyLmMNCkBAIC0xMjcxLDYgKzEyNzEsNyBAQCByZXRyeToNCiAJCQkJ CW5ld19leHRyYV9pc2l6ZSA9IHNfbWluX2V4dHJhX2lzaXplOw0KIAkJCQkJa2ZyZWUoaXMpOyBp cyA9IE5VTEw7DQogCQkJCQlrZnJlZShicyk7IGJzID0gTlVMTDsNCisJCQkJCWJyZWxzZShiaCk7 DQogCQkJCQlnb3RvIHJldHJ5Ow0KIAkJCQl9DQogCQkJCWVycm9yID0gLTE7DQpkaWZmIC0tZ2l0 IGEvZnMvbmZzL25mczRwcm9jLmMgYi9mcy9uZnMvbmZzNHByb2MuYw0KaW5kZXggNTYzOWVmZC4u M2QwMjkzMSAxMDA2NDQNCi0tLSBhL2ZzL25mcy9uZnM0cHJvYy5jDQorKysgYi9mcy9uZnMvbmZz NHByb2MuYw0KQEAgLTM3NjQsOCArMzc2NCw3IEBAIG5mczRfYXN5bmNfaGFuZGxlX2Vycm9yKHN0 cnVjdCBycGNfdGFzayAqdGFzaywgY29uc3Qgc3RydWN0IG5mc19zZXJ2ZXIgKnNlcnZlciwNCiAJ CQlkcHJpbnRrKCIlcyBFUlJPUiAlZCwgUmVzZXQgc2Vzc2lvblxuIiwgX19mdW5jX18sDQogCQkJ CXRhc2stPnRrX3N0YXR1cyk7DQogCQkJbmZzNF9zY2hlZHVsZV9zZXNzaW9uX3JlY292ZXJ5KGNs cC0+Y2xfc2Vzc2lvbik7DQotCQkJdGFzay0+dGtfc3RhdHVzID0gMDsNCi0JCQlyZXR1cm4gLUVB R0FJTjsNCisJCQlnb3RvIHdhaXRfb25fcmVjb3Zlcnk7DQogI2VuZGlmIC8qIENPTkZJR19ORlNf VjRfMSAqLw0KIAkJY2FzZSAtTkZTNEVSUl9ERUxBWToNCiAJCQluZnNfaW5jX3NlcnZlcl9zdGF0 cyhzZXJ2ZXIsIE5GU0lPU19ERUxBWSk7DQpAQCAtMzg4NywxMSArMzg4NiwxNyBAQCBzdGF0aWMg dm9pZCBuZnM0X2RlbGVncmV0dXJuX2RvbmUoc3RydWN0IHJwY190YXNrICp0YXNrLCB2b2lkICpj YWxsZGF0YSkNCiAJCXJldHVybjsNCiANCiAJc3dpdGNoICh0YXNrLT50a19zdGF0dXMpIHsNCi0J Y2FzZSAtTkZTNEVSUl9TVEFMRV9TVEFURUlEOg0KLQljYXNlIC1ORlM0RVJSX0VYUElSRUQ6DQog CWNhc2UgMDoNCiAJCXJlbmV3X2xlYXNlKGRhdGEtPnJlcy5zZXJ2ZXIsIGRhdGEtPnRpbWVzdGFt cCk7DQogCQlicmVhazsNCisJY2FzZSAtTkZTNEVSUl9BRE1JTl9SRVZPS0VEOg0KKwljYXNlIC1O RlM0RVJSX0RFTEVHX1JFVk9LRUQ6DQorCWNhc2UgLU5GUzRFUlJfQkFEX1NUQVRFSUQ6DQorCWNh c2UgLU5GUzRFUlJfT0xEX1NUQVRFSUQ6DQorCWNhc2UgLU5GUzRFUlJfU1RBTEVfU1RBVEVJRDoN CisJY2FzZSAtTkZTNEVSUl9FWFBJUkVEOg0KKwkJdGFzay0+dGtfc3RhdHVzID0gMDsNCisJCWJy ZWFrOw0KIAlkZWZhdWx0Og0KIAkJaWYgKG5mczRfYXN5bmNfaGFuZGxlX2Vycm9yKHRhc2ssIGRh dGEtPnJlcy5zZXJ2ZXIsIE5VTEwpID09DQogCQkJCS1FQUdBSU4pIHsNCkBAIC00MDUyLDYgKzQw NTcsNyBAQCBzdGF0aWMgaW50IF9uZnM0X3Byb2NfZ2V0bGsoc3RydWN0IG5mczRfc3RhdGUgKnN0 YXRlLCBpbnQgY21kLCBzdHJ1Y3QgZmlsZV9sb2NrDQogCQkJc3RhdHVzID0gMDsNCiAJfQ0KIAly ZXF1ZXN0LT5mbF9vcHMtPmZsX3JlbGVhc2VfcHJpdmF0ZShyZXF1ZXN0KTsNCisJcmVxdWVzdC0+ Zmxfb3BzID0gTlVMTDsNCiBvdXQ6DQogCXJldHVybiBzdGF0dXM7DQogfQ0KZGlmZiAtLWdpdCBh L2ZzL25mc2QvbmZzNHhkci5jIGIvZnMvbmZzZC9uZnM0eGRyLmMNCmluZGV4IDk5NjI1YjguLmFk ZTUzMTYgMTAwNjQ0DQotLS0gYS9mcy9uZnNkL25mczR4ZHIuYw0KKysrIGIvZnMvbmZzZC9uZnM0 eGRyLmMNCkBAIC0xNzcsOCArMTc3LDggQEAgc3RhdGljIF9fYmUzMiAqcmVhZF9idWYoc3RydWN0 IG5mc2Q0X2NvbXBvdW5kYXJncyAqYXJncCwgdTMyIG5ieXRlcykNCiAJICovDQogCW1lbWNweShw LCBhcmdwLT5wLCBhdmFpbCk7DQogCS8qIHN0ZXAgdG8gbmV4dCBwYWdlICovDQotCWFyZ3AtPnBh Z2VsaXN0Kys7DQogCWFyZ3AtPnAgPSBwYWdlX2FkZHJlc3MoYXJncC0+cGFnZWxpc3RbMF0pOw0K KwlhcmdwLT5wYWdlbGlzdCsrOw0KIAlpZiAoYXJncC0+cGFnZWxlbiA8IFBBR0VfU0laRSkgew0K IAkJYXJncC0+ZW5kID0gYXJncC0+cCArIChhcmdwLT5wYWdlbGVuPj4yKTsNCiAJCWFyZ3AtPnBh Z2VsZW4gPSAwOw0KZGlmZiAtLWdpdCBhL2ZzL25mc2QvdmZzLmMgYi9mcy9uZnNkL3Zmcy5jDQpp bmRleCA2MWI2OTdlLi42YTY2ZmMwIDEwMDY0NA0KLS0tIGEvZnMvbmZzZC92ZnMuYw0KKysrIGIv ZnMvbmZzZC92ZnMuYw0KQEAgLTI5Nyw0MSArMjk3LDEyIEBAIGNvbW1pdF9tZXRhZGF0YShzdHJ1 Y3Qgc3ZjX2ZoICpmaHApDQogfQ0KIA0KIC8qDQotICogU2V0IHZhcmlvdXMgZmlsZSBhdHRyaWJ1 dGVzLg0KLSAqIE4uQi4gQWZ0ZXIgdGhpcyBjYWxsIGZocCBuZWVkcyBhbiBmaF9wdXQNCisgKiBH byBvdmVyIHRoZSBhdHRyaWJ1dGVzIGFuZCB0YWtlIGNhcmUgb2YgdGhlIHNtYWxsIGRpZmZlcmVu Y2VzIGJldHdlZW4NCisgKiBORlMgc2VtYW50aWNzIGFuZCB3aGF0IExpbnV4IGV4cGVjdHMuDQog ICovDQotX19iZTMyDQotbmZzZF9zZXRhdHRyKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVj dCBzdmNfZmggKmZocCwgc3RydWN0IGlhdHRyICppYXAsDQotCSAgICAgaW50IGNoZWNrX2d1YXJk LCB0aW1lX3QgZ3VhcmR0aW1lKQ0KK3N0YXRpYyB2b2lkDQorbmZzZF9zYW5pdGl6ZV9hdHRycyhz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaWF0dHIgKmlhcCkNCiB7DQotCXN0cnVjdCBkZW50 cnkJKmRlbnRyeTsNCi0Jc3RydWN0IGlub2RlCSppbm9kZTsNCi0JaW50CQlhY2Ntb2RlID0gTkZT RF9NQVlfU0FUVFI7DQotCWludAkJZnR5cGUgPSAwOw0KLQlfX2JlMzIJCWVycjsNCi0JaW50CQlo b3N0X2VycjsNCi0JaW50CQlzaXplX2NoYW5nZSA9IDA7DQotDQotCWlmIChpYXAtPmlhX3ZhbGlk ICYgKEFUVFJfQVRJTUUgfCBBVFRSX01USU1FIHwgQVRUUl9TSVpFKSkNCi0JCWFjY21vZGUgfD0g TkZTRF9NQVlfV1JJVEV8TkZTRF9NQVlfT1dORVJfT1ZFUlJJREU7DQotCWlmIChpYXAtPmlhX3Zh bGlkICYgQVRUUl9TSVpFKQ0KLQkJZnR5cGUgPSBTX0lGUkVHOw0KLQ0KLQkvKiBHZXQgaW5vZGUg Ki8NCi0JZXJyID0gZmhfdmVyaWZ5KHJxc3RwLCBmaHAsIGZ0eXBlLCBhY2Ntb2RlKTsNCi0JaWYg KGVycikNCi0JCWdvdG8gb3V0Ow0KLQ0KLQlkZW50cnkgPSBmaHAtPmZoX2RlbnRyeTsNCi0JaW5v ZGUgPSBkZW50cnktPmRfaW5vZGU7DQotDQotCS8qIElnbm9yZSBhbnkgbW9kZSB1cGRhdGVzIG9u IHN5bWxpbmtzICovDQotCWlmIChTX0lTTE5LKGlub2RlLT5pX21vZGUpKQ0KLQkJaWFwLT5pYV92 YWxpZCAmPSB+QVRUUl9NT0RFOw0KLQ0KLQlpZiAoIWlhcC0+aWFfdmFsaWQpDQotCQlnb3RvIG91 dDsNCi0NCiAJLyoNCiAJICogTkZTdjIgZG9lcyBub3QgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuICJz ZXQtW2FjXXRpbWUtdG8tbm93Ig0KIAkgKiB3aGljaCBvbmx5IHJlcXVpcmVzIGFjY2VzcywgYW5k ICJzZXQtW2FjXXRpbWUtdG8tWCIgd2hpY2gNCkBAIC0zNDEsOCArMzEyLDcgQEAgbmZzZF9zZXRh dHRyKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwgc3RydWN0IGlh dHRyICppYXAsDQogCSAqIGNvbnZlcnQgdG8gInNldCB0byBub3ciIGluc3RlYWQgb2YgInNldCB0 byBleHBsaWNpdCB0aW1lIg0KIAkgKg0KIAkgKiBXZSBvbmx5IGNhbGwgaW5vZGVfY2hhbmdlX29r IGFzIHRoZSBsYXN0IHRlc3QgYXMgdGVjaG5pY2FsbHkNCi0JICogaXQgaXMgbm90IGFuIGludGVy ZmFjZSB0aGF0IHdlIHNob3VsZCBiZSB1c2luZy4gIEl0IGlzIG9ubHkNCi0JICogdmFsaWQgaWYg dGhlIGZpbGVzeXN0ZW0gZG9lcyBub3QgZGVmaW5lIGl0J3Mgb3duIGlfb3AtPnNldGF0dHIuDQor CSAqIGl0IGlzIG5vdCBhbiBpbnRlcmZhY2UgdGhhdCB3ZSBzaG91bGQgYmUgdXNpbmcuDQogCSAq Lw0KICNkZWZpbmUgQk9USF9USU1FX1NFVCAoQVRUUl9BVElNRV9TRVQgfCBBVFRSX01USU1FX1NF VCkNCiAjZGVmaW5lCU1BWF9UT1VDSF9USU1FX0VSUk9SICgzMCo2MCkNCkBAIC0zNjgsMzAgKzMz OCw2IEBAIG5mc2Rfc2V0YXR0cihzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2Zo ICpmaHAsIHN0cnVjdCBpYXR0ciAqaWFwLA0KIAkJCWlhcC0+aWFfdmFsaWQgJj0gfkJPVEhfVElN RV9TRVQ7DQogCQl9DQogCX0NCi0JICAgIA0KLQkvKg0KLQkgKiBUaGUgc2l6ZSBjYXNlIGlzIHNw ZWNpYWwuDQotCSAqIEl0IGNoYW5nZXMgdGhlIGZpbGUgYXMgd2VsbCBhcyB0aGUgYXR0cmlidXRl cy4NCi0JICovDQotCWlmIChpYXAtPmlhX3ZhbGlkICYgQVRUUl9TSVpFKSB7DQotCQlpZiAoaWFw LT5pYV9zaXplIDwgaW5vZGUtPmlfc2l6ZSkgew0KLQkJCWVyciA9IG5mc2RfcGVybWlzc2lvbihy cXN0cCwgZmhwLT5maF9leHBvcnQsIGRlbnRyeSwNCi0JCQkJCU5GU0RfTUFZX1RSVU5DfE5GU0Rf TUFZX09XTkVSX09WRVJSSURFKTsNCi0JCQlpZiAoZXJyKQ0KLQkJCQlnb3RvIG91dDsNCi0JCX0N Ci0NCi0JCWhvc3RfZXJyID0gZ2V0X3dyaXRlX2FjY2Vzcyhpbm9kZSk7DQotCQlpZiAoaG9zdF9l cnIpDQotCQkJZ290byBvdXRfbmZzZXJyOw0KLQ0KLQkJc2l6ZV9jaGFuZ2UgPSAxOw0KLQkJaG9z dF9lcnIgPSBsb2Nrc192ZXJpZnlfdHJ1bmNhdGUoaW5vZGUsIE5VTEwsIGlhcC0+aWFfc2l6ZSk7 DQotCQlpZiAoaG9zdF9lcnIpIHsNCi0JCQlwdXRfd3JpdGVfYWNjZXNzKGlub2RlKTsNCi0JCQln b3RvIG91dF9uZnNlcnI7DQotCQl9DQotCX0NCiANCiAJLyogc2FuaXRpemUgdGhlIG1vZGUgY2hh bmdlICovDQogCWlmIChpYXAtPmlhX3ZhbGlkICYgQVRUUl9NT0RFKSB7DQpAQCAtNDE0LDMyICsz NjAsMTExIEBAIG5mc2Rfc2V0YXR0cihzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3Zj X2ZoICpmaHAsIHN0cnVjdCBpYXR0ciAqaWFwLA0KIAkJCWlhcC0+aWFfdmFsaWQgfD0gKEFUVFJf S0lMTF9TVUlEIHwgQVRUUl9LSUxMX1NHSUQpOw0KIAkJfQ0KIAl9DQorfQ0KIA0KLQkvKiBDaGFu Z2UgdGhlIGF0dHJpYnV0ZXMuICovDQorc3RhdGljIF9fYmUzMg0KK25mc2RfZ2V0X3dyaXRlX2Fj Y2VzcyhzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsDQorCQlzdHJ1 Y3QgaWF0dHIgKmlhcCkNCit7DQorCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaHAtPmZoX2RlbnRy eS0+ZF9pbm9kZTsNCisJaW50IGhvc3RfZXJyOw0KIA0KLQlpYXAtPmlhX3ZhbGlkIHw9IEFUVFJf Q1RJTUU7DQorCWlmIChpYXAtPmlhX3NpemUgPCBpbm9kZS0+aV9zaXplKSB7DQorCQlfX2JlMzIg ZXJyOw0KIA0KLQllcnIgPSBuZnNlcnJfbm90c3luYzsNCi0JaWYgKCFjaGVja19ndWFyZCB8fCBn dWFyZHRpbWUgPT0gaW5vZGUtPmlfY3RpbWUudHZfc2VjKSB7DQotCQlob3N0X2VyciA9IG5mc2Rf YnJlYWtfbGVhc2UoaW5vZGUpOw0KLQkJaWYgKGhvc3RfZXJyKQ0KLQkJCWdvdG8gb3V0X25mc2Vy cjsNCi0JCWZoX2xvY2soZmhwKTsNCisJCWVyciA9IG5mc2RfcGVybWlzc2lvbihycXN0cCwgZmhw LT5maF9leHBvcnQsIGZocC0+ZmhfZGVudHJ5LA0KKwkJCQlORlNEX01BWV9UUlVOQyB8IE5GU0Rf TUFZX09XTkVSX09WRVJSSURFKTsNCisJCWlmIChlcnIpDQorCQkJcmV0dXJuIGVycjsNCisJfQ0K IA0KLQkJaG9zdF9lcnIgPSBub3RpZnlfY2hhbmdlKGRlbnRyeSwgaWFwKTsNCi0JCWVyciA9IG5m c2Vycm5vKGhvc3RfZXJyKTsNCi0JCWZoX3VubG9jayhmaHApOw0KKwlob3N0X2VyciA9IGdldF93 cml0ZV9hY2Nlc3MoaW5vZGUpOw0KKwlpZiAoaG9zdF9lcnIpDQorCQlnb3RvIG91dF9uZnNlcnJu bzsNCisNCisJaG9zdF9lcnIgPSBsb2Nrc192ZXJpZnlfdHJ1bmNhdGUoaW5vZGUsIE5VTEwsIGlh cC0+aWFfc2l6ZSk7DQorCWlmIChob3N0X2VycikNCisJCWdvdG8gb3V0X3B1dF93cml0ZV9hY2Nl c3M7DQorCXJldHVybiAwOw0KKw0KK291dF9wdXRfd3JpdGVfYWNjZXNzOg0KKwlwdXRfd3JpdGVf YWNjZXNzKGlub2RlKTsNCitvdXRfbmZzZXJybm86DQorCXJldHVybiBuZnNlcnJubyhob3N0X2Vy cik7DQorfQ0KKw0KKy8qDQorICogU2V0IHZhcmlvdXMgZmlsZSBhdHRyaWJ1dGVzLiAgQWZ0ZXIg dGhpcyBjYWxsIGZocCBuZWVkcyBhbiBmaF9wdXQuDQorICovDQorX19iZTMyDQorbmZzZF9zZXRh dHRyKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwgc3RydWN0IGlh dHRyICppYXAsDQorCSAgICAgaW50IGNoZWNrX2d1YXJkLCB0aW1lX3QgZ3VhcmR0aW1lKQ0KK3sN CisJc3RydWN0IGRlbnRyeQkqZGVudHJ5Ow0KKwlzdHJ1Y3QgaW5vZGUJKmlub2RlOw0KKwlpbnQJ CWFjY21vZGUgPSBORlNEX01BWV9TQVRUUjsNCisJaW50CQlmdHlwZSA9IDA7DQorCV9fYmUzMgkJ ZXJyOw0KKwlpbnQJCWhvc3RfZXJyOw0KKwlpbnQJCXNpemVfY2hhbmdlID0gMDsNCisNCisJaWYg KGlhcC0+aWFfdmFsaWQgJiAoQVRUUl9BVElNRSB8IEFUVFJfTVRJTUUgfCBBVFRSX1NJWkUpKQ0K KwkJYWNjbW9kZSB8PSBORlNEX01BWV9XUklURXxORlNEX01BWV9PV05FUl9PVkVSUklERTsNCisJ aWYgKGlhcC0+aWFfdmFsaWQgJiBBVFRSX1NJWkUpDQorCQlmdHlwZSA9IFNfSUZSRUc7DQorDQor CS8qIEdldCBpbm9kZSAqLw0KKwllcnIgPSBmaF92ZXJpZnkocnFzdHAsIGZocCwgZnR5cGUsIGFj Y21vZGUpOw0KKwlpZiAoZXJyKQ0KKwkJZ290byBvdXQ7DQorDQorCWRlbnRyeSA9IGZocC0+Zmhf ZGVudHJ5Ow0KKwlpbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsNCisNCisJLyogSWdub3JlIGFueSBt b2RlIHVwZGF0ZXMgb24gc3ltbGlua3MgKi8NCisJaWYgKFNfSVNMTksoaW5vZGUtPmlfbW9kZSkp DQorCQlpYXAtPmlhX3ZhbGlkICY9IH5BVFRSX01PREU7DQorDQorCWlmICghaWFwLT5pYV92YWxp ZCkNCisJCWdvdG8gb3V0Ow0KKw0KKwluZnNkX3Nhbml0aXplX2F0dHJzKGlub2RlLCBpYXApOw0K Kw0KKwkvKg0KKwkgKiBUaGUgc2l6ZSBjYXNlIGlzIHNwZWNpYWwsIGl0IGNoYW5nZXMgdGhlIGZp bGUgaW4gYWRkaXRpb24gdG8gdGhlDQorCSAqIGF0dHJpYnV0ZXMuDQorCSAqLw0KKwlpZiAoaWFw LT5pYV92YWxpZCAmIEFUVFJfU0laRSkgew0KKwkJZXJyID0gbmZzZF9nZXRfd3JpdGVfYWNjZXNz KHJxc3RwLCBmaHAsIGlhcCk7DQorCQlpZiAoZXJyKQ0KKwkJCWdvdG8gb3V0Ow0KKwkJc2l6ZV9j aGFuZ2UgPSAxOw0KIAl9DQorDQorCWlhcC0+aWFfdmFsaWQgfD0gQVRUUl9DVElNRTsNCisNCisJ aWYgKGNoZWNrX2d1YXJkICYmIGd1YXJkdGltZSAhPSBpbm9kZS0+aV9jdGltZS50dl9zZWMpIHsN CisJCWVyciA9IG5mc2Vycl9ub3RzeW5jOw0KKwkJZ290byBvdXRfcHV0X3dyaXRlX2FjY2VzczsN CisJfQ0KKw0KKwlob3N0X2VyciA9IG5mc2RfYnJlYWtfbGVhc2UoaW5vZGUpOw0KKwlpZiAoaG9z dF9lcnIpDQorCQlnb3RvIG91dF9wdXRfd3JpdGVfYWNjZXNzX25mc2Vycm9yOw0KKw0KKwlmaF9s b2NrKGZocCk7DQorCWhvc3RfZXJyID0gbm90aWZ5X2NoYW5nZShkZW50cnksIGlhcCk7DQorCWZo X3VubG9jayhmaHApOw0KKw0KK291dF9wdXRfd3JpdGVfYWNjZXNzX25mc2Vycm9yOg0KKwllcnIg PSBuZnNlcnJubyhob3N0X2Vycik7DQorb3V0X3B1dF93cml0ZV9hY2Nlc3M6DQogCWlmIChzaXpl X2NoYW5nZSkNCiAJCXB1dF93cml0ZV9hY2Nlc3MoaW5vZGUpOw0KIAlpZiAoIWVycikNCiAJCWNv bW1pdF9tZXRhZGF0YShmaHApOw0KIG91dDoNCiAJcmV0dXJuIGVycjsNCi0NCi1vdXRfbmZzZXJy Og0KLQllcnIgPSBuZnNlcnJubyhob3N0X2Vycik7DQotCWdvdG8gb3V0Ow0KIH0NCiANCiAjaWYg ZGVmaW5lZChDT05GSUdfTkZTRF9WMl9BQ0wpIHx8IFwNCmRpZmYgLS1naXQgYS9mcy94ZnMveGZz X2lvY3RsLmMgYi9mcy94ZnMveGZzX2lvY3RsLmMNCmluZGV4IGQ5OWE5MDUuLmViNTE5ZGUgMTAw NjQ0DQotLS0gYS9mcy94ZnMveGZzX2lvY3RsLmMNCisrKyBiL2ZzL3hmcy94ZnNfaW9jdGwuYw0K QEAgLTQwNCw3ICs0MDQsOCBAQCB4ZnNfYXR0cmxpc3RfYnlfaGFuZGxlKA0KIAkJcmV0dXJuIC1Y RlNfRVJST1IoRVBFUk0pOw0KIAlpZiAoY29weV9mcm9tX3VzZXIoJmFsX2hyZXEsIGFyZywgc2l6 ZW9mKHhmc19mc29wX2F0dHJsaXN0X2hhbmRsZXJlcV90KSkpDQogCQlyZXR1cm4gLVhGU19FUlJP UihFRkFVTFQpOw0KLQlpZiAoYWxfaHJlcS5idWZsZW4gPiBYQVRUUl9MSVNUX01BWCkNCisJaWYg KGFsX2hyZXEuYnVmbGVuIDwgc2l6ZW9mKHN0cnVjdCBhdHRybGlzdCkgfHwNCisJICAgIGFsX2hy ZXEuYnVmbGVuID4gWEFUVFJfTElTVF9NQVgpDQogCQlyZXR1cm4gLVhGU19FUlJPUihFSU5WQUwp Ow0KIA0KIAkvKg0KZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfaW9jdGwzMi5jIGIvZnMveGZzL3hm c19pb2N0bDMyLmMNCmluZGV4IDU0ZTYyM2IuLjBkNjg1YjMgMTAwNjQ0DQotLS0gYS9mcy94ZnMv eGZzX2lvY3RsMzIuYw0KKysrIGIvZnMveGZzL3hmc19pb2N0bDMyLmMNCkBAIC0zNjEsNyArMzYx LDggQEAgeGZzX2NvbXBhdF9hdHRybGlzdF9ieV9oYW5kbGUoDQogCWlmIChjb3B5X2Zyb21fdXNl cigmYWxfaHJlcSwgYXJnLA0KIAkJCSAgIHNpemVvZihjb21wYXRfeGZzX2Zzb3BfYXR0cmxpc3Rf aGFuZGxlcmVxX3QpKSkNCiAJCXJldHVybiAtWEZTX0VSUk9SKEVGQVVMVCk7DQotCWlmIChhbF9o cmVxLmJ1ZmxlbiA+IFhBVFRSX0xJU1RfTUFYKQ0KKwlpZiAoYWxfaHJlcS5idWZsZW4gPCBzaXpl b2Yoc3RydWN0IGF0dHJsaXN0KSB8fA0KKwkgICAgYWxfaHJlcS5idWZsZW4gPiBYQVRUUl9MSVNU X01BWCkNCiAJCXJldHVybiAtWEZTX0VSUk9SKEVJTlZBTCk7DQogDQogCS8qDQpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9jcnlwdG8vc2NhdHRlcndhbGsuaCBiL2luY2x1ZGUvY3J5cHRvL3NjYXR0ZXJ3 YWxrLmgNCmluZGV4IDRmZDk1YTMuLjA1MzIyNzkgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2NyeXB0 by9zY2F0dGVyd2Fsay5oDQorKysgYi9pbmNsdWRlL2NyeXB0by9zY2F0dGVyd2Fsay5oDQpAQCAt NTgsNiArNTgsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2NhdHRlcndhbGtfc2dfY2hhaW4oc3Ry dWN0IHNjYXR0ZXJsaXN0ICpzZzEsIGludCBudW0sDQogew0KIAlzZ19zZXRfcGFnZSgmc2cxW251 bSAtIDFdLCAodm9pZCAqKXNnMiwgMCwgMCk7DQogCXNnMVtudW0gLSAxXS5wYWdlX2xpbmsgJj0g fjB4MDI7DQorCXNnMVtudW0gLSAxXS5wYWdlX2xpbmsgfD0gMHgwMTsNCiB9DQogDQogc3RhdGlj IGlubGluZSBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNjYXR0ZXJ3YWxrX3NnX25leHQoc3RydWN0IHNj YXR0ZXJsaXN0ICpzZykNCkBAIC02NSw3ICs2Niw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNj YXR0ZXJsaXN0ICpzY2F0dGVyd2Fsa19zZ19uZXh0KHN0cnVjdCBzY2F0dGVybGlzdCAqc2cpDQog CWlmIChzZ19pc19sYXN0KHNnKSkNCiAJCXJldHVybiBOVUxMOw0KIA0KLQlyZXR1cm4gKCsrc2cp LT5sZW5ndGggPyBzZyA6ICh2b2lkICopc2dfcGFnZShzZyk7DQorCXJldHVybiAoKytzZyktPmxl bmd0aCA/IHNnIDogc2dfY2hhaW5fcHRyKHNnKTsNCiB9DQogDQogc3RhdGljIGlubGluZSB2b2lk IHNjYXR0ZXJ3YWxrX2NyeXB0b19jaGFpbihzdHJ1Y3Qgc2NhdHRlcmxpc3QgKmhlYWQsDQpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9iaW5mbXRzLmggYi9pbmNsdWRlL2xpbnV4L2JpbmZtdHMu aA0KaW5kZXggYWNkOGQ0Yi4uZDMzNzQxOSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvYmlu Zm10cy5oDQorKysgYi9pbmNsdWRlL2xpbnV4L2JpbmZtdHMuaA0KQEAgLTExMiw5ICsxMTIsNiBA QCBleHRlcm4gdm9pZCBzZXR1cF9uZXdfZXhlYyhzdHJ1Y3QgbGludXhfYmlucHJtICogYnBybSk7 DQogZXh0ZXJuIHZvaWQgd291bGRfZHVtcChzdHJ1Y3QgbGludXhfYmlucHJtICosIHN0cnVjdCBm aWxlICopOw0KIA0KIGV4dGVybiBpbnQgc3VpZF9kdW1wYWJsZTsNCi0jZGVmaW5lIFNVSURfRFVN UF9ESVNBQkxFCTAJLyogTm8gc2V0dWlkIGR1bXBpbmcgKi8NCi0jZGVmaW5lIFNVSURfRFVNUF9V U0VSCQkxCS8qIER1bXAgYXMgdXNlciBvZiBwcm9jZXNzICovDQotI2RlZmluZSBTVUlEX0RVTVBf Uk9PVAkJMgkvKiBEdW1wIGFzIHJvb3QgKi8NCiANCiAvKiBTdGFjayBhcmVhIHByb3RlY3Rpb25z ICovDQogI2RlZmluZSBFWFNUQUNLX0RFRkFVTFQgICAwCS8qIFdoYXRldmVyIHRoZSBhcmNoIGRl ZmF1bHRzIHRvICovDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jb21waWxlci1pbnRlbC5o IGIvaW5jbHVkZS9saW51eC9jb21waWxlci1pbnRlbC5oDQppbmRleCBkOGU2MzZlLi5jYmE5NTkz IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9jb21waWxlci1pbnRlbC5oDQorKysgYi9pbmNs dWRlL2xpbnV4L2NvbXBpbGVyLWludGVsLmgNCkBAIC0yNyw1ICsyNywzIEBADQogI2RlZmluZSBf X211c3RfYmVfYXJyYXkoYSkgMA0KIA0KICNlbmRpZg0KLQ0KLSNkZWZpbmUgdW5pbml0aWFsaXpl ZF92YXIoeCkgeA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbXNnLmggYi9pbmNsdWRlL2xp bnV4L21zZy5oDQppbmRleCA1NmFiZjE1NS4uNzBmYzM2OSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUv bGludXgvbXNnLmgNCisrKyBiL2luY2x1ZGUvbGludXgvbXNnLmgNCkBAIC03Niw5ICs3Niw5IEBA IHN0cnVjdCBtc2dpbmZvIHsNCiANCiAvKiBvbmUgbXNnX21zZyBzdHJ1Y3R1cmUgZm9yIGVhY2gg bWVzc2FnZSAqLw0KIHN0cnVjdCBtc2dfbXNnIHsNCi0Jc3RydWN0IGxpc3RfaGVhZCBtX2xpc3Q7 IA0KLQlsb25nICBtX3R5cGU7ICAgICAgICAgIA0KLQlpbnQgbV90czsgICAgICAgICAgIC8qIG1l c3NhZ2UgdGV4dCBzaXplICovDQorCXN0cnVjdCBsaXN0X2hlYWQgbV9saXN0Ow0KKwlsb25nIG1f dHlwZTsNCisJc2l6ZV90IG1fdHM7CQkvKiBtZXNzYWdlIHRleHQgc2l6ZSAqLw0KIAlzdHJ1Y3Qg bXNnX21zZ3NlZyogbmV4dDsNCiAJdm9pZCAqc2VjdXJpdHk7DQogCS8qIHRoZSBhY3R1YWwgbWVz c2FnZSBmb2xsb3dzIGltbWVkaWF0ZWx5ICovDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9t dGQvbWFwLmggYi9pbmNsdWRlL2xpbnV4L210ZC9tYXAuaA0KaW5kZXggZGFhZDRlNi4uMzg4Nzkw MSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvbXRkL21hcC5oDQorKysgYi9pbmNsdWRlL2xp bnV4L210ZC9tYXAuaA0KQEAgLTM2MSw3ICszNjEsNyBAQCBzdGF0aWMgaW5saW5lIG1hcF93b3Jk IG1hcF93b3JkX2xvYWRfcGFydGlhbChzdHJ1Y3QgbWFwX2luZm8gKm1hcCwgbWFwX3dvcmQgb3Jp Zw0KIAkJCWJpdHBvcyA9IChtYXBfYmFua3dpZHRoKG1hcCktMS1pKSo4Ow0KICNlbmRpZg0KIAkJ CW9yaWcueFswXSAmPSB+KDB4ZmYgPDwgYml0cG9zKTsNCi0JCQlvcmlnLnhbMF0gfD0gYnVmW2kt c3RhcnRdIDw8IGJpdHBvczsNCisJCQlvcmlnLnhbMF0gfD0gKHVuc2lnbmVkIGxvbmcpYnVmW2kt c3RhcnRdIDw8IGJpdHBvczsNCiAJCX0NCiAJfQ0KIAlyZXR1cm4gb3JpZzsNCkBAIC0zODAsNyAr MzgwLDcgQEAgc3RhdGljIGlubGluZSBtYXBfd29yZCBtYXBfd29yZF9mZihzdHJ1Y3QgbWFwX2lu Zm8gKm1hcCkNCiANCiAJaWYgKG1hcF9iYW5rd2lkdGgobWFwKSA8IE1BUF9GRl9MSU1JVCkgew0K IAkJaW50IGJ3ID0gOCAqIG1hcF9iYW5rd2lkdGgobWFwKTsNCi0JCXIueFswXSA9ICgxIDw8IGJ3 KSAtIDE7DQorCQlyLnhbMF0gPSAoMVVMIDw8IGJ3KSAtIDE7DQogCX0gZWxzZSB7DQogCQlmb3Ig KGk9MDsgaTxtYXBfd29yZHMobWFwKTsgaSsrKQ0KIAkJCXIueFtpXSA9IH4wVUw7DQpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9uZXQuaCBiL2luY2x1ZGUvbGludXgvbmV0LmgNCmluZGV4IGI3 Y2EwOGUuLmJkNGY2YzcgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L25ldC5oDQorKysgYi9p bmNsdWRlL2xpbnV4L25ldC5oDQpAQCAtMTk3LDYgKzE5NywxNCBAQCBzdHJ1Y3QgcHJvdG9fb3Bz IHsNCiAjZW5kaWYNCiAJaW50CQkoKnNlbmRtc2cpICAgKHN0cnVjdCBraW9jYiAqaW9jYiwgc3Ry dWN0IHNvY2tldCAqc29jaywNCiAJCQkJICAgICAgc3RydWN0IG1zZ2hkciAqbSwgc2l6ZV90IHRv dGFsX2xlbik7DQorCS8qIE5vdGVzIGZvciBpbXBsZW1lbnRpbmcgcmVjdm1zZzoNCisJICogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKwkgKiBtc2ctPm1zZ19uYW1lbGVuIHNob3Vs ZCBnZXQgdXBkYXRlZCBieSB0aGUgcmVjdm1zZyBoYW5kbGVycw0KKwkgKiBpZmYgbXNnX25hbWUg IT0gTlVMTC4gSXQgaXMgYnkgZGVmYXVsdCAwIHRvIHByZXZlbnQNCisJICogcmV0dXJuaW5nIHVu aW5pdGlhbGl6ZWQgbWVtb3J5IHRvIHVzZXIgc3BhY2UuICBUaGUgcmVjdmZyb20NCisJICogaGFu ZGxlcnMgY2FuIGFzc3VtZSB0aGF0IG1zZy5tc2dfbmFtZSBpcyBlaXRoZXIgTlVMTCBvciBoYXMN CisJICogYSBtaW5pbXVtIHNpemUgb2Ygc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlKS4N CisJICovDQogCWludAkJKCpyZWN2bXNnKSAgIChzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBz b2NrZXQgKnNvY2ssDQogCQkJCSAgICAgIHN0cnVjdCBtc2doZHIgKm0sIHNpemVfdCB0b3RhbF9s ZW4sDQogCQkJCSAgICAgIGludCBmbGFncyk7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9w Y2lfaWRzLmggYi9pbmNsdWRlL2xpbnV4L3BjaV9pZHMuaA0KaW5kZXggM2RiM2RhMS4uZDkzZjQx NyAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvcGNpX2lkcy5oDQorKysgYi9pbmNsdWRlL2xp bnV4L3BjaV9pZHMuaA0KQEAgLTE1NzksNiArMTU3OSw3IEBADQogI2RlZmluZSBQQ0lfU1VCREVW SUNFX0lEX0tFWVNQQU5fU1gyCTB4NTMzNA0KIA0KICNkZWZpbmUgUENJX1ZFTkRPUl9JRF9NQVJW RUxMCQkweDExYWINCisjZGVmaW5lIFBDSV9WRU5ET1JfSURfTUFSVkVMTF9FWFQJMHgxYjRiDQog I2RlZmluZSBQQ0lfREVWSUNFX0lEX01BUlZFTExfR1Q2NDExMQkweDQxNDYNCiAjZGVmaW5lIFBD SV9ERVZJQ0VfSURfTUFSVkVMTF9HVDY0MjYwCTB4NjQzMA0KICNkZWZpbmUgUENJX0RFVklDRV9J RF9NQVJWRUxMX01WNjQzNjAJMHg2NDYwDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9yYW5k b20uaCBiL2luY2x1ZGUvbGludXgvcmFuZG9tLmgNCmluZGV4IDdlNzdjZWUuLmY1ZTEzMTEgMTAw NjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L3JhbmRvbS5oDQorKysgYi9pbmNsdWRlL2xpbnV4L3Jh bmRvbS5oDQpAQCAtODksOSArODksOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHJhbmRvbTMyX3Nl ZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHU2NCBzZWVkKQ0KIHsNCiAJdTMyIGkgPSAoc2Vl ZCA+PiAzMikgXiAoc2VlZCA8PCAxMCkgXiBzZWVkOw0KIA0KLQlzdGF0ZS0+czEgPSBfX3NlZWQo aSwgMSk7DQotCXN0YXRlLT5zMiA9IF9fc2VlZChpLCA3KTsNCi0Jc3RhdGUtPnMzID0gX19zZWVk KGksIDE1KTsNCisJc3RhdGUtPnMxID0gX19zZWVkKGksIDIpOw0KKwlzdGF0ZS0+czIgPSBfX3Nl ZWQoaSwgOCk7DQorCXN0YXRlLT5zMyA9IF9fc2VlZChpLCAxNik7DQogfQ0KIA0KICNpZmRlZiBD T05GSUdfQVJDSF9SQU5ET00NCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NjaGVkLmggYi9p bmNsdWRlL2xpbnV4L3NjaGVkLmgNCmluZGV4IDgyMDQ4OTguLjMxMmQwNDcgMTAwNjQ0DQotLS0g YS9pbmNsdWRlL2xpbnV4L3NjaGVkLmgNCisrKyBiL2luY2x1ZGUvbGludXgvc2NoZWQuaA0KQEAg LTQwMyw2ICs0MDMsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGFyY2hfcGlja19tbWFwX2xheW91 dChzdHJ1Y3QgbW1fc3RydWN0ICptbSkge30NCiBleHRlcm4gdm9pZCBzZXRfZHVtcGFibGUoc3Ry dWN0IG1tX3N0cnVjdCAqbW0sIGludCB2YWx1ZSk7DQogZXh0ZXJuIGludCBnZXRfZHVtcGFibGUo c3RydWN0IG1tX3N0cnVjdCAqbW0pOw0KIA0KKyNkZWZpbmUgU1VJRF9EVU1QX0RJU0FCTEUJMAkv KiBObyBzZXR1aWQgZHVtcGluZyAqLw0KKyNkZWZpbmUgU1VJRF9EVU1QX1VTRVIJCTEJLyogRHVt cCBhcyB1c2VyIG9mIHByb2Nlc3MgKi8NCisjZGVmaW5lIFNVSURfRFVNUF9ST09UCQkyCS8qIER1 bXAgYXMgcm9vdCAqLw0KKw0KIC8qIG1tIGZsYWdzICovDQogLyogZHVtcGFibGUgYml0cyAqLw0K ICNkZWZpbmUgTU1GX0RVTVBBQkxFICAgICAgMCAgLyogY29yZSBkdW1wIGlzIHBlcm1pdHRlZCAq Lw0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lwLmggYi9pbmNsdWRlL25ldC9pcC5oDQppbmRl eCAwNmFlZDcyLi5iOTM1ZTZjIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9uZXQvaXAuaA0KKysrIGIv aW5jbHVkZS9uZXQvaXAuaA0KQEAgLTQ2Niw3ICs0NjYsNyBAQCBleHRlcm4gaW50CWNvbXBhdF9p cF9nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLA0KIAkJCWludCBvcHRuYW1l LCBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pOw0KIGV4dGVybiBpbnQJ aXBfcmFfY29udHJvbChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGNoYXIgb24sIHZvaWQgKCpk ZXN0cnVjdG9yKShzdHJ1Y3Qgc29jayAqKSk7DQogDQotZXh0ZXJuIGludCAJaXBfcmVjdl9lcnJv cihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgaW50IGxlbik7DQorZXh0ZXJu IGludCAJaXBfcmVjdl9lcnJvcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywg aW50IGxlbiwgaW50ICphZGRyX2xlbik7DQogZXh0ZXJuIHZvaWQJaXBfaWNtcF9lcnJvcihzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIGludCBlcnIsIA0KIAkJCSAgICAgIF9f YmUxNiBwb3J0LCB1MzIgaW5mbywgdTggKnBheWxvYWQpOw0KIGV4dGVybiB2b2lkCWlwX2xvY2Fs X2Vycm9yKHN0cnVjdCBzb2NrICpzaywgaW50IGVyciwgX19iZTMyIGRhZGRyLCBfX2JlMTYgZHBv cnQsDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXB2Ni5oIGIvaW5jbHVkZS9uZXQvaXB2Ni5o DQppbmRleCA0ZDU0OWNmLi4wNTgwNjczIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9uZXQvaXB2Ni5o DQorKysgYi9pbmNsdWRlL25ldC9pcHY2LmgNCkBAIC02MDIsOCArNjAyLDEwIEBAIGV4dGVybiBp bnQJCQljb21wYXRfaXB2Nl9nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywNCiBleHRlcm4gaW50 CQkJaXA2X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCANCiAJCQkJCQkgICAgIHN0 cnVjdCBzb2NrYWRkciAqYWRkciwgaW50IGFkZHJfbGVuKTsNCiANCi1leHRlcm4gaW50IAkJCWlw djZfcmVjdl9lcnJvcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgaW50IGxl bik7DQotZXh0ZXJuIGludCAJCQlpcHY2X3JlY3ZfcnhwbXR1KHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IG1zZ2hkciAqbXNnLCBpbnQgbGVuKTsNCitleHRlcm4gaW50IAkJCWlwdjZfcmVjdl9lcnJv cihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgaW50IGxlbiwNCisJCQkJCQlp bnQgKmFkZHJfbGVuKTsNCitleHRlcm4gaW50IAkJCWlwdjZfcmVjdl9yeHBtdHUoc3RydWN0IHNv Y2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIGludCBsZW4sDQorCQkJCQkJIGludCAqYWRkcl9s ZW4pOw0KIGV4dGVybiB2b2lkCQkJaXB2Nl9pY21wX2Vycm9yKHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgaW50IGVyciwgX19iZTE2IHBvcnQsDQogCQkJCQkJdTMyIGluZm8s IHU4ICpwYXlsb2FkKTsNCiBleHRlcm4gdm9pZAkJCWlwdjZfbG9jYWxfZXJyb3Ioc3RydWN0IHNv Y2sgKnNrLCBpbnQgZXJyLCBzdHJ1Y3QgZmxvd2k2ICpmbDYsIHUzMiBpbmZvKTsNCmRpZmYgLS1n aXQgYS9pbmNsdWRlL3NvdW5kL21lbWFsbG9jLmggYi9pbmNsdWRlL3NvdW5kL21lbWFsbG9jLmgN CmluZGV4IGM0MjUwNjIuLmFiMjQwYmIgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL3NvdW5kL21lbWFs bG9jLmgNCisrKyBiL2luY2x1ZGUvc291bmQvbWVtYWxsb2MuaA0KQEAgLTEwMSw3ICsxMDEsNyBA QCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBzbmRfc2didWZfYWxpZ25lZF9wYWdlcyhzaXpl X3Qgc2l6ZSkNCiBzdGF0aWMgaW5saW5lIGRtYV9hZGRyX3Qgc25kX3NnYnVmX2dldF9hZGRyKHN0 cnVjdCBzbmRfc2dfYnVmICpzZ2J1Ziwgc2l6ZV90IG9mZnNldCkNCiB7DQogCWRtYV9hZGRyX3Qg YWRkciA9IHNnYnVmLT50YWJsZVtvZmZzZXQgPj4gUEFHRV9TSElGVF0uYWRkcjsNCi0JYWRkciAm PSBQQUdFX01BU0s7DQorCWFkZHIgJj0gfigoZG1hX2FkZHJfdClQQUdFX1NJWkUgLSAxKTsNCiAJ cmV0dXJuIGFkZHIgKyBvZmZzZXQgJSBQQUdFX1NJWkU7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvdHJhY2UvZnRyYWNlLmggYi9pbmNsdWRlL3RyYWNlL2Z0cmFjZS5oDQppbmRleCA3Njk3 MjQ5Li43NjNiZjA1IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS90cmFjZS9mdHJhY2UuaA0KKysrIGIv aW5jbHVkZS90cmFjZS9mdHJhY2UuaA0KQEAgLTM3OSw3ICszNzksOCBAQCBmdHJhY2VfZGVmaW5l X2ZpZWxkc18jI2NhbGwoc3RydWN0IGZ0cmFjZV9ldmVudF9jYWxsICpldmVudF9jYWxsKQlcDQog CV9fZGF0YV9zaXplICs9IChsZW4pICogc2l6ZW9mKHR5cGUpOw0KIA0KICN1bmRlZiBfX3N0cmlu Zw0KLSNkZWZpbmUgX19zdHJpbmcoaXRlbSwgc3JjKSBfX2R5bmFtaWNfYXJyYXkoY2hhciwgaXRl bSwgc3RybGVuKHNyYykgKyAxKQ0KKyNkZWZpbmUgX19zdHJpbmcoaXRlbSwgc3JjKSBfX2R5bmFt aWNfYXJyYXkoY2hhciwgaXRlbSwJCQlcDQorCQkgICAgc3RybGVuKChzcmMpID8gKGNvbnN0IGNo YXIgKikoc3JjKSA6ICIobnVsbCkiKSArIDEpDQogDQogI3VuZGVmIERFQ0xBUkVfRVZFTlRfQ0xB U1MNCiAjZGVmaW5lIERFQ0xBUkVfRVZFTlRfQ0xBU1MoY2FsbCwgcHJvdG8sIGFyZ3MsIHRzdHJ1 Y3QsIGFzc2lnbiwgcHJpbnQpCVwNCkBAIC01MDQsNyArNTA1LDcgQEAgc3RhdGljIGlubGluZSBu b3RyYWNlIGludCBmdHJhY2VfZ2V0X29mZnNldHNfIyNjYWxsKAkJCVwNCiANCiAjdW5kZWYgX19h c3NpZ25fc3RyDQogI2RlZmluZSBfX2Fzc2lnbl9zdHIoZHN0LCBzcmMpCQkJCQkJXA0KLQlzdHJj cHkoX19nZXRfc3RyKGRzdCksIHNyYyk7DQorCXN0cmNweShfX2dldF9zdHIoZHN0KSwgKHNyYykg PyAoY29uc3QgY2hhciAqKShzcmMpIDogIihudWxsKSIpOw0KIA0KICN1bmRlZiBUUF9mYXN0X2Fz c2lnbg0KICNkZWZpbmUgVFBfZmFzdF9hc3NpZ24oYXJncy4uLikgYXJncw0KZGlmZiAtLWdpdCBh L2lwYy9tc2d1dGlsLmMgYi9pcGMvbXNndXRpbC5jDQppbmRleCA1NjUyMTAxLi5mYzZmZGVkIDEw MDY0NA0KLS0tIGEvaXBjL21zZ3V0aWwuYw0KKysrIGIvaXBjL21zZ3V0aWwuYw0KQEAgLTM3LDE1 ICszNywxNSBAQCBzdHJ1Y3QgbXNnX21zZ3NlZyB7DQogCS8qIHRoZSBuZXh0IHBhcnQgb2YgdGhl IG1lc3NhZ2UgZm9sbG93cyBpbW1lZGlhdGVseSAqLw0KIH07DQogDQotI2RlZmluZSBEQVRBTEVO X01TRwkoUEFHRV9TSVpFLXNpemVvZihzdHJ1Y3QgbXNnX21zZykpDQotI2RlZmluZSBEQVRBTEVO X1NFRwkoUEFHRV9TSVpFLXNpemVvZihzdHJ1Y3QgbXNnX21zZ3NlZykpDQorI2RlZmluZSBEQVRB TEVOX01TRwkoKHNpemVfdClQQUdFX1NJWkUtc2l6ZW9mKHN0cnVjdCBtc2dfbXNnKSkNCisjZGVm aW5lIERBVEFMRU5fU0VHCSgoc2l6ZV90KVBBR0VfU0laRS1zaXplb2Yoc3RydWN0IG1zZ19tc2dz ZWcpKQ0KIA0KLXN0cnVjdCBtc2dfbXNnICpsb2FkX21zZyhjb25zdCB2b2lkIF9fdXNlciAqc3Jj LCBpbnQgbGVuKQ0KK3N0cnVjdCBtc2dfbXNnICpsb2FkX21zZyhjb25zdCB2b2lkIF9fdXNlciAq c3JjLCBzaXplX3QgbGVuKQ0KIHsNCiAJc3RydWN0IG1zZ19tc2cgKm1zZzsNCiAJc3RydWN0IG1z Z19tc2dzZWcgKipwc2VnOw0KIAlpbnQgZXJyOw0KLQlpbnQgYWxlbjsNCisJc2l6ZV90IGFsZW47 DQogDQogCWFsZW4gPSBsZW47DQogCWlmIChhbGVuID4gREFUQUxFTl9NU0cpDQpAQCAtOTksOSAr OTksOSBAQCBvdXRfZXJyOg0KIAlyZXR1cm4gRVJSX1BUUihlcnIpOw0KIH0NCiANCi1pbnQgc3Rv cmVfbXNnKHZvaWQgX191c2VyICpkZXN0LCBzdHJ1Y3QgbXNnX21zZyAqbXNnLCBpbnQgbGVuKQ0K K2ludCBzdG9yZV9tc2codm9pZCBfX3VzZXIgKmRlc3QsIHN0cnVjdCBtc2dfbXNnICptc2csIHNp emVfdCBsZW4pDQogew0KLQlpbnQgYWxlbjsNCisJc2l6ZV90IGFsZW47DQogCXN0cnVjdCBtc2df bXNnc2VnICpzZWc7DQogDQogCWFsZW4gPSBsZW47DQpkaWZmIC0tZ2l0IGEvaXBjL3V0aWwuaCBi L2lwYy91dGlsLmgNCmluZGV4IDZmNWMyMGIuLjBiZmM5MzQgMTAwNjQ0DQotLS0gYS9pcGMvdXRp bC5oDQorKysgYi9pcGMvdXRpbC5oDQpAQCAtMTM4LDggKzEzOCw4IEBAIGludCBpcGNfcGFyc2Vf dmVyc2lvbiAoaW50ICpjbWQpOw0KICNlbmRpZg0KIA0KIGV4dGVybiB2b2lkIGZyZWVfbXNnKHN0 cnVjdCBtc2dfbXNnICptc2cpOw0KLWV4dGVybiBzdHJ1Y3QgbXNnX21zZyAqbG9hZF9tc2coY29u c3Qgdm9pZCBfX3VzZXIgKnNyYywgaW50IGxlbik7DQotZXh0ZXJuIGludCBzdG9yZV9tc2codm9p ZCBfX3VzZXIgKmRlc3QsIHN0cnVjdCBtc2dfbXNnICptc2csIGludCBsZW4pOw0KK2V4dGVybiBz dHJ1Y3QgbXNnX21zZyAqbG9hZF9tc2coY29uc3Qgdm9pZCBfX3VzZXIgKnNyYywgc2l6ZV90IGxl bik7DQorZXh0ZXJuIGludCBzdG9yZV9tc2codm9pZCBfX3VzZXIgKmRlc3QsIHN0cnVjdCBtc2df bXNnICptc2csIHNpemVfdCBsZW4pOw0KIA0KIGV4dGVybiB2b2lkIHJlY29tcHV0ZV9tc2dtbmko c3RydWN0IGlwY19uYW1lc3BhY2UgKik7DQogDQpkaWZmIC0tZ2l0IGEva2VybmVsL2F1ZGl0LmMg Yi9rZXJuZWwvYXVkaXQuYw0KaW5kZXggZDRiYzU5NC4uZTE0YmM3NCAxMDA2NDQNCi0tLSBhL2tl cm5lbC9hdWRpdC5jDQorKysgYi9rZXJuZWwvYXVkaXQuYw0KQEAgLTYyNSw3ICs2MjUsNyBAQCBz dGF0aWMgaW50IGF1ZGl0X2xvZ19jb21tb25fcmVjdl9tc2coc3RydWN0IGF1ZGl0X2J1ZmZlciAq KmFiLCB1MTYgbXNnX3R5cGUsDQogCWNoYXIgKmN0eCA9IE5VTEw7DQogCXUzMiBsZW47DQogDQot CWlmICghYXVkaXRfZW5hYmxlZCkgew0KKwlpZiAoIWF1ZGl0X2VuYWJsZWQgJiYgbXNnX3R5cGUg IT0gQVVESVRfVVNFUl9BVkMpIHsNCiAJCSphYiA9IE5VTEw7DQogCQlyZXR1cm4gcmM7DQogCX0N CkBAIC02ODQsNiArNjg0LDcgQEAgc3RhdGljIGludCBhdWRpdF9yZWNlaXZlX21zZyhzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgbmxtc2doZHIgKm5saCkNCiANCiAJc3dpdGNoIChtc2dfdHlw ZSkgew0KIAljYXNlIEFVRElUX0dFVDoNCisJCXN0YXR1c19zZXQubWFzawkJID0gMDsNCiAJCXN0 YXR1c19zZXQuZW5hYmxlZAkgPSBhdWRpdF9lbmFibGVkOw0KIAkJc3RhdHVzX3NldC5mYWlsdXJl CSA9IGF1ZGl0X2ZhaWx1cmU7DQogCQlzdGF0dXNfc2V0LnBpZAkJID0gYXVkaXRfcGlkOw0KQEAg LTY5NSw3ICs2OTYsNyBAQCBzdGF0aWMgaW50IGF1ZGl0X3JlY2VpdmVfbXNnKHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoKQ0KIAkJCQkgJnN0YXR1c19zZXQsIHNpemVv ZihzdGF0dXNfc2V0KSk7DQogCQlicmVhazsNCiAJY2FzZSBBVURJVF9TRVQ6DQotCQlpZiAobmxo LT5ubG1zZ19sZW4gPCBzaXplb2Yoc3RydWN0IGF1ZGl0X3N0YXR1cykpDQorCQlpZiAobmxtc2df bGVuKG5saCkgPCBzaXplb2Yoc3RydWN0IGF1ZGl0X3N0YXR1cykpDQogCQkJcmV0dXJuIC1FSU5W QUw7DQogCQlzdGF0dXNfZ2V0ICAgPSAoc3RydWN0IGF1ZGl0X3N0YXR1cyAqKWRhdGE7DQogCQlp ZiAoc3RhdHVzX2dldC0+bWFzayAmIEFVRElUX1NUQVRVU19FTkFCTEVEKSB7DQpAQCAtODk5LDcg KzkwMCw3IEBAIHN0YXRpYyBpbnQgYXVkaXRfcmVjZWl2ZV9tc2coc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IG5sbXNnaGRyICpubGgpDQogCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzazsNCiAJ CXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQogDQotCQlpZiAobmxoLT5ubG1zZ19sZW4gPCBzaXplb2Yo c3RydWN0IGF1ZGl0X3R0eV9zdGF0dXMpKQ0KKwkJaWYgKG5sbXNnX2xlbihubGgpIDwgc2l6ZW9m KHN0cnVjdCBhdWRpdF90dHlfc3RhdHVzKSkNCiAJCQlyZXR1cm4gLUVJTlZBTDsNCiAJCXMgPSBk YXRhOw0KIAkJaWYgKHMtPmVuYWJsZWQgIT0gMCAmJiBzLT5lbmFibGVkICE9IDEpDQpkaWZmIC0t Z2l0IGEva2VybmVsL2NwdXNldC5jIGIva2VybmVsL2NwdXNldC5jDQppbmRleCA4MzVlZWU2Li41 N2ViOThkIDEwMDY0NA0KLS0tIGEva2VybmVsL2NwdXNldC5jDQorKysgYi9rZXJuZWwvY3B1c2V0 LmMNCkBAIC05ODMsOCArOTgzLDEwIEBAIHN0YXRpYyB2b2lkIGNwdXNldF9jaGFuZ2VfdGFza19u b2RlbWFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywNCiAJbmVlZF9sb29wID0gdGFza19oYXNf bWVtcG9saWN5KHRzaykgfHwNCiAJCQkhbm9kZXNfaW50ZXJzZWN0cygqbmV3bWVtcywgdHNrLT5t ZW1zX2FsbG93ZWQpOw0KIA0KLQlpZiAobmVlZF9sb29wKQ0KKwlpZiAobmVlZF9sb29wKSB7DQor CQlsb2NhbF9pcnFfZGlzYWJsZSgpOw0KIAkJd3JpdGVfc2VxY291bnRfYmVnaW4oJnRzay0+bWVt c19hbGxvd2VkX3NlcSk7DQorCX0NCiANCiAJbm9kZXNfb3IodHNrLT5tZW1zX2FsbG93ZWQsIHRz ay0+bWVtc19hbGxvd2VkLCAqbmV3bWVtcyk7DQogCW1wb2xfcmViaW5kX3Rhc2sodHNrLCBuZXdt ZW1zLCBNUE9MX1JFQklORF9TVEVQMSk7DQpAQCAtOTkyLDggKzk5NCwxMCBAQCBzdGF0aWMgdm9p ZCBjcHVzZXRfY2hhbmdlX3Rhc2tfbm9kZW1hc2soc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssDQog CW1wb2xfcmViaW5kX3Rhc2sodHNrLCBuZXdtZW1zLCBNUE9MX1JFQklORF9TVEVQMik7DQogCXRz ay0+bWVtc19hbGxvd2VkID0gKm5ld21lbXM7DQogDQotCWlmIChuZWVkX2xvb3ApDQorCWlmIChu ZWVkX2xvb3ApIHsNCiAJCXdyaXRlX3NlcWNvdW50X2VuZCgmdHNrLT5tZW1zX2FsbG93ZWRfc2Vx KTsNCisJCWxvY2FsX2lycV9lbmFibGUoKTsNCisJfQ0KIA0KIAl0YXNrX3VubG9jayh0c2spOw0K IH0NCmRpZmYgLS1naXQgYS9rZXJuZWwvZnV0ZXguYyBiL2tlcm5lbC9mdXRleC5jDQppbmRleCAx ZDA1MzhlLi44ODg4ODE1IDEwMDY0NA0KLS0tIGEva2VybmVsL2Z1dGV4LmMNCisrKyBiL2tlcm5l bC9mdXRleC5jDQpAQCAtMjg1LDcgKzI4NSw3IEBAIGFnYWluOg0KIAkJcHV0X3BhZ2UocGFnZSk7 DQogCQkvKiBzZXJpYWxpemUgYWdhaW5zdCBfX3NwbGl0X2h1Z2VfcGFnZV9zcGxpdHRpbmcoKSAq Lw0KIAkJbG9jYWxfaXJxX2Rpc2FibGUoKTsNCi0JCWlmIChsaWtlbHkoX19nZXRfdXNlcl9wYWdl c19mYXN0KGFkZHJlc3MsIDEsIDEsICZwYWdlKSA9PSAxKSkgew0KKwkJaWYgKGxpa2VseShfX2dl dF91c2VyX3BhZ2VzX2Zhc3QoYWRkcmVzcywgMSwgIXJvLCAmcGFnZSkgPT0gMSkpIHsNCiAJCQlw YWdlX2hlYWQgPSBjb21wb3VuZF9oZWFkKHBhZ2UpOw0KIAkJCS8qDQogCQkJICogcGFnZV9oZWFk IGlzIHZhbGlkIHBvaW50ZXIgYnV0IHdlIG11c3QgcGluDQpkaWZmIC0tZ2l0IGEva2VybmVsL2ly cS9wbS5jIGIva2VybmVsL2lycS9wbS5jDQppbmRleCAxNWU1M2IxLi5kY2QzZjk3IDEwMDY0NA0K LS0tIGEva2VybmVsL2lycS9wbS5jDQorKysgYi9rZXJuZWwvaXJxL3BtLmMNCkBAIC01MCw3ICs1 MCw3IEBAIHN0YXRpYyB2b2lkIHJlc3VtZV9pcnFzKGJvb2wgd2FudF9lYXJseSkNCiAJCWJvb2wg aXNfZWFybHkgPSBkZXNjLT5hY3Rpb24gJiYNCiAJCQlkZXNjLT5hY3Rpb24tPmZsYWdzICYgSVJR Rl9FQVJMWV9SRVNVTUU7DQogDQotCQlpZiAoaXNfZWFybHkgIT0gd2FudF9lYXJseSkNCisJCWlm ICghaXNfZWFybHkgJiYgd2FudF9lYXJseSkNCiAJCQljb250aW51ZTsNCiANCiAJCXJhd19zcGlu X2xvY2tfaXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOw0KZGlmZiAtLWdpdCBhL2tlcm5lbC9w b3dlci9zbmFwc2hvdC5jIGIva2VybmVsL3Bvd2VyL3NuYXBzaG90LmMNCmluZGV4IGNiZTJjMTQu LjM4MDI5MWUgMTAwNjQ0DQotLS0gYS9rZXJuZWwvcG93ZXIvc25hcHNob3QuYw0KKysrIGIva2Vy bmVsL3Bvd2VyL3NuYXBzaG90LmMNCkBAIC0xMzkwLDcgKzEzOTAsMTEgQEAgaW50IGhpYmVybmF0 ZV9wcmVhbGxvY2F0ZV9tZW1vcnkodm9pZCkNCiAJICogaGlnaG1lbSBhbmQgbm9uLWhpZ2htZW0g em9uZXMgc2VwYXJhdGVseS4NCiAJICovDQogCXBhZ2VzX2hpZ2htZW0gPSBwcmVhbGxvY2F0ZV9p bWFnZV9oaWdobWVtKGhpZ2htZW0gLyAyKTsNCi0JYWxsb2MgPSAoY291bnQgLSBtYXhfc2l6ZSkg LSBwYWdlc19oaWdobWVtOw0KKwlhbGxvYyA9IGNvdW50IC0gbWF4X3NpemU7DQorCWlmIChhbGxv YyA+IHBhZ2VzX2hpZ2htZW0pDQorCQlhbGxvYyAtPSBwYWdlc19oaWdobWVtOw0KKwllbHNlDQor CQlhbGxvYyA9IDA7DQogCXBhZ2VzID0gcHJlYWxsb2NhdGVfaW1hZ2VfbWVtb3J5KGFsbG9jLCBh dmFpbF9ub3JtYWwpOw0KIAlpZiAocGFnZXMgPCBhbGxvYykgew0KIAkJLyogV2UgaGF2ZSBleGhh dXN0ZWQgbm9uLWhpZ2htZW0gcGFnZXMsIHRyeSBoaWdobWVtLiAqLw0KZGlmZiAtLWdpdCBhL2tl cm5lbC9wdHJhY2UuYyBiL2tlcm5lbC9wdHJhY2UuYw0KaW5kZXggNjdmZWRhZC4uZjc5ODAzYSAx MDA2NDQNCi0tLSBhL2tlcm5lbC9wdHJhY2UuYw0KKysrIGIva2VybmVsL3B0cmFjZS5jDQpAQCAt MjQ2LDcgKzI0Niw4IEBAIG9rOg0KIAlzbXBfcm1iKCk7DQogCWlmICh0YXNrLT5tbSkNCiAJCWR1 bXBhYmxlID0gZ2V0X2R1bXBhYmxlKHRhc2stPm1tKTsNCi0JaWYgKCFkdW1wYWJsZSAmJiAhdGFz a19uc19jYXBhYmxlKHRhc2ssIENBUF9TWVNfUFRSQUNFKSkNCisJaWYgKGR1bXBhYmxlICE9IFNV SURfRFVNUF9VU0VSICYmDQorCSAgICAhdGFza19uc19jYXBhYmxlKHRhc2ssIENBUF9TWVNfUFRS QUNFKSkNCiAJCXJldHVybiAtRVBFUk07DQogDQogCXJldHVybiBzZWN1cml0eV9wdHJhY2VfYWNj ZXNzX2NoZWNrKHRhc2ssIG1vZGUpOw0KZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZF9kZWJ1Zy5j IGIva2VybmVsL3NjaGVkX2RlYnVnLmMNCmluZGV4IGE2NzEwYTEuLmY0MDEwZTIgMTAwNjQ0DQot LS0gYS9rZXJuZWwvc2NoZWRfZGVidWcuYw0KKysrIGIva2VybmVsL3NjaGVkX2RlYnVnLmMNCkBA IC0yMTMsNiArMjEzLDE0IEBAIHZvaWQgcHJpbnRfY2ZzX3JxKHN0cnVjdCBzZXFfZmlsZSAqbSwg aW50IGNwdSwgc3RydWN0IGNmc19ycSAqY2ZzX3JxKQ0KIAlTRVFfcHJpbnRmKG0sICIgIC4lLTMw czogJWRcbiIsICJsb2FkX3RnIiwNCiAJCQlhdG9taWNfcmVhZCgmY2ZzX3JxLT50Zy0+bG9hZF93 ZWlnaHQpKTsNCiAjZW5kaWYNCisjaWZkZWYgQ09ORklHX0NGU19CQU5EV0lEVEgNCisJU0VRX3By aW50ZihtLCAiICAuJS0zMHM6ICVkXG4iLCAidGctPmNmc19iYW5kd2lkdGgudGltZXJfYWN0aXZl IiwNCisJCQljZnNfcnEtPnRnLT5jZnNfYmFuZHdpZHRoLnRpbWVyX2FjdGl2ZSk7DQorCVNFUV9w cmludGYobSwgIiAgLiUtMzBzOiAlZFxuIiwgInRocm90dGxlZCIsDQorCQkJY2ZzX3JxLT50aHJv dHRsZWQpOw0KKwlTRVFfcHJpbnRmKG0sICIgIC4lLTMwczogJWRcbiIsICJ0aHJvdHRsZV9jb3Vu dCIsDQorCQkJY2ZzX3JxLT50aHJvdHRsZV9jb3VudCk7DQorI2VuZGlmDQogDQogCXByaW50X2Nm c19ncm91cF9zdGF0cyhtLCBjcHUsIGNmc19ycS0+dGcpOw0KICNlbmRpZg0KZGlmZiAtLWdpdCBh L2tlcm5lbC9zY2hlZF9mYWlyLmMgYi9rZXJuZWwvc2NoZWRfZmFpci5jDQppbmRleCBjMjYxZGE3 Li41YjllNDU2IDEwMDY0NA0KLS0tIGEva2VybmVsL3NjaGVkX2ZhaXIuYw0KKysrIGIva2VybmVs L3NjaGVkX2ZhaXIuYw0KQEAgLTE1MjcsNiArMTUyNyw4IEBAIHN0YXRpYyB2b2lkIHRocm90dGxl X2Nmc19ycShzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEpDQogCWNmc19ycS0+dGhyb3R0bGVkX3RpbWVz dGFtcCA9IHJxLT5jbG9jazsNCiAJcmF3X3NwaW5fbG9jaygmY2ZzX2ItPmxvY2spOw0KIAlsaXN0 X2FkZF90YWlsX3JjdSgmY2ZzX3JxLT50aHJvdHRsZWRfbGlzdCwgJmNmc19iLT50aHJvdHRsZWRf Y2ZzX3JxKTsNCisJaWYgKCFjZnNfYi0+dGltZXJfYWN0aXZlKQ0KKwkJX19zdGFydF9jZnNfYmFu ZHdpZHRoKGNmc19iKTsNCiAJcmF3X3NwaW5fdW5sb2NrKCZjZnNfYi0+bG9jayk7DQogfQ0KIA0K ZGlmZiAtLWdpdCBhL2tlcm5lbC90aW1lL2FsYXJtdGltZXIuYyBiL2tlcm5lbC90aW1lL2FsYXJt dGltZXIuYw0KaW5kZXggOGE0NmY1ZC4uMDkwN2U0MyAxMDA2NDQNCi0tLSBhL2tlcm5lbC90aW1l L2FsYXJtdGltZXIuYw0KKysrIGIva2VybmVsL3RpbWUvYWxhcm10aW1lci5jDQpAQCAtNDY4LDcg KzQ2OCw3IEBAIHN0YXRpYyBpbnQgYWxhcm1fY2xvY2tfZ2V0cmVzKGNvbnN0IGNsb2NraWRfdCB3 aGljaF9jbG9jaywgc3RydWN0IHRpbWVzcGVjICp0cCkNCiAJY2xvY2tpZF90IGJhc2VpZCA9IGFs YXJtX2Jhc2VzW2Nsb2NrMmFsYXJtKHdoaWNoX2Nsb2NrKV0uYmFzZV9jbG9ja2lkOw0KIA0KIAlp ZiAoIWFsYXJtdGltZXJfZ2V0X3J0Y2RldigpKQ0KLQkJcmV0dXJuIC1FTk9UU1VQUDsNCisJCXJl dHVybiAtRUlOVkFMOw0KIA0KIAlyZXR1cm4gaHJ0aW1lcl9nZXRfcmVzKGJhc2VpZCwgdHApOw0K IH0NCkBAIC00ODUsNyArNDg1LDcgQEAgc3RhdGljIGludCBhbGFybV9jbG9ja19nZXQoY2xvY2tp ZF90IHdoaWNoX2Nsb2NrLCBzdHJ1Y3QgdGltZXNwZWMgKnRwKQ0KIAlzdHJ1Y3QgYWxhcm1fYmFz ZSAqYmFzZSA9ICZhbGFybV9iYXNlc1tjbG9jazJhbGFybSh3aGljaF9jbG9jayldOw0KIA0KIAlp ZiAoIWFsYXJtdGltZXJfZ2V0X3J0Y2RldigpKQ0KLQkJcmV0dXJuIC1FTk9UU1VQUDsNCisJCXJl dHVybiAtRUlOVkFMOw0KIA0KIAkqdHAgPSBrdGltZV90b190aW1lc3BlYyhiYXNlLT5nZXR0aW1l KCkpOw0KIAlyZXR1cm4gMDsNCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvZnRyYWNlLmMgYi9r ZXJuZWwvdHJhY2UvZnRyYWNlLmMNCmluZGV4IDIyNjc3NmIuLmQ0MGQ3ZjYgMTAwNjQ0DQotLS0g YS9rZXJuZWwvdHJhY2UvZnRyYWNlLmMNCisrKyBiL2tlcm5lbC90cmFjZS9mdHJhY2UuYw0KQEAg LTI1OSw5ICsyNTksNiBAQCBzdGF0aWMgaW50IHJlbW92ZV9mdHJhY2Vfb3BzKHN0cnVjdCBmdHJh Y2Vfb3BzICoqbGlzdCwgc3RydWN0IGZ0cmFjZV9vcHMgKm9wcykNCiANCiBzdGF0aWMgaW50IF9f cmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpDQogew0KLQlp ZiAoZnRyYWNlX2Rpc2FibGVkKQ0KLQkJcmV0dXJuIC1FTk9ERVY7DQotDQogCWlmIChGVFJBQ0Vf V0FSTl9PTihvcHMgPT0gJmdsb2JhbF9vcHMpKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogDQpAQCAt MjkwLDkgKzI4Nyw2IEBAIHN0YXRpYyBpbnQgX191bnJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbihz dHJ1Y3QgZnRyYWNlX29wcyAqb3BzKQ0KIHsNCiAJaW50IHJldDsNCiANCi0JaWYgKGZ0cmFjZV9k aXNhYmxlZCkNCi0JCXJldHVybiAtRU5PREVWOw0KLQ0KIAlpZiAoV0FSTl9PTighKG9wcy0+Zmxh Z3MgJiBGVFJBQ0VfT1BTX0ZMX0VOQUJMRUQpKSkNCiAJCXJldHVybiAtRUJVU1k7DQogDQpAQCAt MTAxNyw2ICsxMDExLDExIEBAIHN0YXRpYyBzdHJ1Y3QgZnRyYWNlX3BhZ2UJKmZ0cmFjZV9wYWdl czsNCiANCiBzdGF0aWMgc3RydWN0IGR5bl9mdHJhY2UgKmZ0cmFjZV9mcmVlX3JlY29yZHM7DQog DQorc3RhdGljIGJvb2wgZnRyYWNlX2hhc2hfZW1wdHkoc3RydWN0IGZ0cmFjZV9oYXNoICpoYXNo KQ0KK3sNCisJcmV0dXJuICFoYXNoIHx8ICFoYXNoLT5jb3VudDsNCit9DQorDQogc3RhdGljIHN0 cnVjdCBmdHJhY2VfZnVuY19lbnRyeSAqDQogZnRyYWNlX2xvb2t1cF9pcChzdHJ1Y3QgZnRyYWNl X2hhc2ggKmhhc2gsIHVuc2lnbmVkIGxvbmcgaXApDQogew0KQEAgLTEwMjUsNyArMTAyNCw3IEBA IGZ0cmFjZV9sb29rdXBfaXAoc3RydWN0IGZ0cmFjZV9oYXNoICpoYXNoLCB1bnNpZ25lZCBsb25n IGlwKQ0KIAlzdHJ1Y3QgaGxpc3RfaGVhZCAqaGhkOw0KIAlzdHJ1Y3QgaGxpc3Rfbm9kZSAqbjsN CiANCi0JaWYgKCFoYXNoLT5jb3VudCkNCisJaWYgKGZ0cmFjZV9oYXNoX2VtcHR5KGhhc2gpKQ0K IAkJcmV0dXJuIE5VTEw7DQogDQogCWlmIChoYXNoLT5zaXplX2JpdHMgPiAwKQ0KQEAgLTExNjks NyArMTE2OCw3IEBAIGFsbG9jX2FuZF9jb3B5X2Z0cmFjZV9oYXNoKGludCBzaXplX2JpdHMsIHN0 cnVjdCBmdHJhY2VfaGFzaCAqaGFzaCkNCiAJCXJldHVybiBOVUxMOw0KIA0KIAkvKiBFbXB0eSBo YXNoPyAqLw0KLQlpZiAoIWhhc2ggfHwgIWhhc2gtPmNvdW50KQ0KKwlpZiAoZnRyYWNlX2hhc2hf ZW1wdHkoaGFzaCkpDQogCQlyZXR1cm4gbmV3X2hhc2g7DQogDQogCXNpemUgPSAxIDw8IGhhc2gt PnNpemVfYml0czsNCkBAIC0xMjk0LDkgKzEyOTMsOSBAQCBmdHJhY2Vfb3BzX3Rlc3Qoc3RydWN0 IGZ0cmFjZV9vcHMgKm9wcywgdW5zaWduZWQgbG9uZyBpcCkNCiAJZmlsdGVyX2hhc2ggPSByY3Vf ZGVyZWZlcmVuY2VfcmF3KG9wcy0+ZmlsdGVyX2hhc2gpOw0KIAlub3RyYWNlX2hhc2ggPSByY3Vf ZGVyZWZlcmVuY2VfcmF3KG9wcy0+bm90cmFjZV9oYXNoKTsNCiANCi0JaWYgKCghZmlsdGVyX2hh c2ggfHwgIWZpbHRlcl9oYXNoLT5jb3VudCB8fA0KKwlpZiAoKGZ0cmFjZV9oYXNoX2VtcHR5KGZp bHRlcl9oYXNoKSB8fA0KIAkgICAgIGZ0cmFjZV9sb29rdXBfaXAoZmlsdGVyX2hhc2gsIGlwKSkg JiYNCi0JICAgICghbm90cmFjZV9oYXNoIHx8ICFub3RyYWNlX2hhc2gtPmNvdW50IHx8DQorCSAg ICAoZnRyYWNlX2hhc2hfZW1wdHkobm90cmFjZV9oYXNoKSB8fA0KIAkgICAgICFmdHJhY2VfbG9v a3VwX2lwKG5vdHJhY2VfaGFzaCwgaXApKSkNCiAJCXJldCA9IDE7DQogCWVsc2UNCkBAIC0xMzQ4 LDcgKzEzNDcsNyBAQCBzdGF0aWMgdm9pZCBfX2Z0cmFjZV9oYXNoX3JlY191cGRhdGUoc3RydWN0 IGZ0cmFjZV9vcHMgKm9wcywNCiAJaWYgKGZpbHRlcl9oYXNoKSB7DQogCQloYXNoID0gb3BzLT5m aWx0ZXJfaGFzaDsNCiAJCW90aGVyX2hhc2ggPSBvcHMtPm5vdHJhY2VfaGFzaDsNCi0JCWlmICgh aGFzaCB8fCAhaGFzaC0+Y291bnQpDQorCQlpZiAoZnRyYWNlX2hhc2hfZW1wdHkoaGFzaCkpDQog CQkJYWxsID0gMTsNCiAJfSBlbHNlIHsNCiAJCWluYyA9ICFpbmM7DQpAQCAtMTM1OCw3ICsxMzU3 LDcgQEAgc3RhdGljIHZvaWQgX19mdHJhY2VfaGFzaF9yZWNfdXBkYXRlKHN0cnVjdCBmdHJhY2Vf b3BzICpvcHMsDQogCQkgKiBJZiB0aGUgbm90cmFjZSBoYXNoIGhhcyBubyBpdGVtcywNCiAJCSAq IHRoZW4gdGhlcmUncyBub3RoaW5nIHRvIGRvLg0KIAkJICovDQotCQlpZiAoaGFzaCAmJiAhaGFz aC0+Y291bnQpDQorCQlpZiAoZnRyYWNlX2hhc2hfZW1wdHkoaGFzaCkpDQogCQkJcmV0dXJuOw0K IAl9DQogDQpAQCAtMTM3NSw4ICsxMzc0LDggQEAgc3RhdGljIHZvaWQgX19mdHJhY2VfaGFzaF9y ZWNfdXBkYXRlKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMsDQogCQkJaWYgKCFvdGhlcl9oYXNoIHx8 ICFmdHJhY2VfbG9va3VwX2lwKG90aGVyX2hhc2gsIHJlYy0+aXApKQ0KIAkJCQltYXRjaCA9IDE7 DQogCQl9IGVsc2Ugew0KLQkJCWluX2hhc2ggPSBoYXNoICYmICEhZnRyYWNlX2xvb2t1cF9pcCho YXNoLCByZWMtPmlwKTsNCi0JCQlpbl9vdGhlcl9oYXNoID0gb3RoZXJfaGFzaCAmJiAhIWZ0cmFj ZV9sb29rdXBfaXAob3RoZXJfaGFzaCwgcmVjLT5pcCk7DQorCQkJaW5faGFzaCA9ICEhZnRyYWNl X2xvb2t1cF9pcChoYXNoLCByZWMtPmlwKTsNCisJCQlpbl9vdGhlcl9oYXNoID0gISFmdHJhY2Vf bG9va3VwX2lwKG90aGVyX2hhc2gsIHJlYy0+aXApOw0KIA0KIAkJCS8qDQogCQkJICoNCkBAIC0x Mzg0LDcgKzEzODMsNyBAQCBzdGF0aWMgdm9pZCBfX2Z0cmFjZV9oYXNoX3JlY191cGRhdGUoc3Ry dWN0IGZ0cmFjZV9vcHMgKm9wcywNCiAJCQlpZiAoZmlsdGVyX2hhc2ggJiYgaW5faGFzaCAmJiAh aW5fb3RoZXJfaGFzaCkNCiAJCQkJbWF0Y2ggPSAxOw0KIAkJCWVsc2UgaWYgKCFmaWx0ZXJfaGFz aCAmJiBpbl9oYXNoICYmDQotCQkJCSAoaW5fb3RoZXJfaGFzaCB8fCAhb3RoZXJfaGFzaC0+Y291 bnQpKQ0KKwkJCQkgKGluX290aGVyX2hhc2ggfHwgZnRyYWNlX2hhc2hfZW1wdHkob3RoZXJfaGFz aCkpKQ0KIAkJCQltYXRjaCA9IDE7DQogCQl9DQogCQlpZiAoIW1hdGNoKQ0KQEAgLTE2OTgsMTAg KzE2OTcsMTUgQEAgc3RhdGljIHZvaWQgZnRyYWNlX3N0YXJ0dXBfZW5hYmxlKGludCBjb21tYW5k KQ0KIHN0YXRpYyBpbnQgZnRyYWNlX3N0YXJ0dXAoc3RydWN0IGZ0cmFjZV9vcHMgKm9wcywgaW50 IGNvbW1hbmQpDQogew0KIAlib29sIGhhc2hfZW5hYmxlID0gdHJ1ZTsNCisJaW50IHJldDsNCiAN CiAJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpDQogCQlyZXR1cm4gLUVOT0RFVjsNCiAN CisJcmV0ID0gX19yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24ob3BzKTsNCisJaWYgKHJldCkNCisJ CXJldHVybiByZXQ7DQorDQogCWZ0cmFjZV9zdGFydF91cCsrOw0KIAljb21tYW5kIHw9IEZUUkFD RV9VUERBVEVfQ0FMTFM7DQogDQpAQCAtMTcyMywxMiArMTcyNywxNyBAQCBzdGF0aWMgaW50IGZ0 cmFjZV9zdGFydHVwKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMsIGludCBjb21tYW5kKQ0KIAlyZXR1 cm4gMDsNCiB9DQogDQotc3RhdGljIHZvaWQgZnRyYWNlX3NodXRkb3duKHN0cnVjdCBmdHJhY2Vf b3BzICpvcHMsIGludCBjb21tYW5kKQ0KK3N0YXRpYyBpbnQgZnRyYWNlX3NodXRkb3duKHN0cnVj dCBmdHJhY2Vfb3BzICpvcHMsIGludCBjb21tYW5kKQ0KIHsNCiAJYm9vbCBoYXNoX2Rpc2FibGUg PSB0cnVlOw0KKwlpbnQgcmV0Ow0KIA0KIAlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkN Ci0JCXJldHVybjsNCisJCXJldHVybiAtRU5PREVWOw0KKw0KKwlyZXQgPSBfX3VucmVnaXN0ZXJf ZnRyYWNlX2Z1bmN0aW9uKG9wcyk7DQorCWlmIChyZXQpDQorCQlyZXR1cm4gcmV0Ow0KIA0KIAlm dHJhY2Vfc3RhcnRfdXAtLTsNCiAJLyoNCkBAIC0xNzYzLDkgKzE3NzIsMTAgQEAgc3RhdGljIHZv aWQgZnRyYWNlX3NodXRkb3duKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMsIGludCBjb21tYW5kKQ0K IAl9DQogDQogCWlmICghY29tbWFuZCB8fCAhZnRyYWNlX2VuYWJsZWQpDQotCQlyZXR1cm47DQor CQlyZXR1cm4gMDsNCiANCiAJZnRyYWNlX3J1bl91cGRhdGVfY29kZShjb21tYW5kKTsNCisJcmV0 dXJuIDA7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGZ0cmFjZV9zdGFydHVwX3N5c2N0bCh2b2lkKQ0K QEAgLTE3OTQsMTIgKzE4MDQsNTcgQEAgc3RhdGljIGN5Y2xlX3QJCWZ0cmFjZV91cGRhdGVfdGlt ZTsNCiBzdGF0aWMgdW5zaWduZWQgbG9uZwlmdHJhY2VfdXBkYXRlX2NudDsNCiB1bnNpZ25lZCBs b25nCQlmdHJhY2VfdXBkYXRlX3RvdF9jbnQ7DQogDQotc3RhdGljIGludCBvcHNfdHJhY2VzX21v ZChzdHJ1Y3QgZnRyYWNlX29wcyAqb3BzKQ0KK3N0YXRpYyBpbmxpbmUgaW50IG9wc190cmFjZXNf bW9kKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpDQogew0KLQlzdHJ1Y3QgZnRyYWNlX2hhc2ggKmhh c2g7DQorCS8qDQorCSAqIEZpbHRlcl9oYXNoIGJlaW5nIGVtcHR5IHdpbGwgZGVmYXVsdCB0byB0 cmFjZSBtb2R1bGUuDQorCSAqIEJ1dCBub3RyYWNlIGhhc2ggcmVxdWlyZXMgYSB0ZXN0IG9mIGlu ZGl2aWR1YWwgbW9kdWxlIGZ1bmN0aW9ucy4NCisJICovDQorCXJldHVybiBmdHJhY2VfaGFzaF9l bXB0eShvcHMtPmZpbHRlcl9oYXNoKSAmJg0KKwkJZnRyYWNlX2hhc2hfZW1wdHkob3BzLT5ub3Ry YWNlX2hhc2gpOw0KK30NCiANCi0JaGFzaCA9IG9wcy0+ZmlsdGVyX2hhc2g7DQotCXJldHVybiAh ISghaGFzaCB8fCAhaGFzaC0+Y291bnQpOw0KKy8qDQorICogQ2hlY2sgaWYgdGhlIGN1cnJlbnQg b3BzIHJlZmVyZW5jZXMgdGhlIHJlY29yZC4NCisgKg0KKyAqIElmIHRoZSBvcHMgdHJhY2VzIGFs bCBmdW5jdGlvbnMsIHRoZW4gaXQgd2FzIGFscmVhZHkgYWNjb3VudGVkIGZvci4NCisgKiBJZiB0 aGUgb3BzIGRvZXMgbm90IHRyYWNlIHRoZSBjdXJyZW50IHJlY29yZCBmdW5jdGlvbiwgc2tpcCBp dC4NCisgKiBJZiB0aGUgb3BzIGlnbm9yZXMgdGhlIGZ1bmN0aW9uIHZpYSBub3RyYWNlIGZpbHRl ciwgc2tpcCBpdC4NCisgKi8NCitzdGF0aWMgaW5saW5lIGJvb2wNCitvcHNfcmVmZXJlbmNlc19y ZWMoc3RydWN0IGZ0cmFjZV9vcHMgKm9wcywgc3RydWN0IGR5bl9mdHJhY2UgKnJlYykNCit7DQor CS8qIElmIG9wcyBpc24ndCBlbmFibGVkLCBpZ25vcmUgaXQgKi8NCisJaWYgKCEob3BzLT5mbGFn cyAmIEZUUkFDRV9PUFNfRkxfRU5BQkxFRCkpDQorCQlyZXR1cm4gMDsNCisNCisJLyogSWYgb3Bz IHRyYWNlcyBhbGwgbW9kcywgd2UgYWxyZWFkeSBhY2NvdW50ZWQgZm9yIGl0ICovDQorCWlmIChv cHNfdHJhY2VzX21vZChvcHMpKQ0KKwkJcmV0dXJuIDA7DQorDQorCS8qIFRoZSBmdW5jdGlvbiBt dXN0IGJlIGluIHRoZSBmaWx0ZXIgKi8NCisJaWYgKCFmdHJhY2VfaGFzaF9lbXB0eShvcHMtPmZp bHRlcl9oYXNoKSAmJg0KKwkgICAgIWZ0cmFjZV9sb29rdXBfaXAob3BzLT5maWx0ZXJfaGFzaCwg cmVjLT5pcCkpDQorCQlyZXR1cm4gMDsNCisNCisJLyogSWYgaW4gbm90cmFjZSBoYXNoLCB3ZSBp Z25vcmUgaXQgdG9vICovDQorCWlmIChmdHJhY2VfbG9va3VwX2lwKG9wcy0+bm90cmFjZV9oYXNo LCByZWMtPmlwKSkNCisJCXJldHVybiAwOw0KKw0KKwlyZXR1cm4gMTsNCit9DQorDQorc3RhdGlj IGludCByZWZlcmVuY2VkX2ZpbHRlcnMoc3RydWN0IGR5bl9mdHJhY2UgKnJlYykNCit7DQorCXN0 cnVjdCBmdHJhY2Vfb3BzICpvcHM7DQorCWludCBjbnQgPSAwOw0KKw0KKwlmb3IgKG9wcyA9IGZ0 cmFjZV9vcHNfbGlzdDsgb3BzICE9ICZmdHJhY2VfbGlzdF9lbmQ7IG9wcyA9IG9wcy0+bmV4dCkg ew0KKwkJaWYgKG9wc19yZWZlcmVuY2VzX3JlYyhvcHMsIHJlYykpDQorCQkgICAgY250Kys7DQor CX0NCisNCisJcmV0dXJuIGNudDsNCiB9DQogDQogc3RhdGljIGludCBmdHJhY2VfdXBkYXRlX2Nv ZGUoc3RydWN0IG1vZHVsZSAqbW9kKQ0KQEAgLTE4MDcsNiArMTg2Miw3IEBAIHN0YXRpYyBpbnQg ZnRyYWNlX3VwZGF0ZV9jb2RlKHN0cnVjdCBtb2R1bGUgKm1vZCkNCiAJc3RydWN0IGR5bl9mdHJh Y2UgKnA7DQogCWN5Y2xlX3Qgc3RhcnQsIHN0b3A7DQogCXVuc2lnbmVkIGxvbmcgcmVmID0gMDsN CisJYm9vbCB0ZXN0ID0gZmFsc2U7DQogDQogCS8qDQogCSAqIFdoZW4gYWRkaW5nIGEgbW9kdWxl LCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRyYWNlcnMgYXJlDQpAQCAtMTgxOSw5ICsxODc1LDEyIEBA IHN0YXRpYyBpbnQgZnRyYWNlX3VwZGF0ZV9jb2RlKHN0cnVjdCBtb2R1bGUgKm1vZCkNCiANCiAJ CWZvciAob3BzID0gZnRyYWNlX29wc19saXN0Ow0KIAkJICAgICBvcHMgIT0gJmZ0cmFjZV9saXN0 X2VuZDsgb3BzID0gb3BzLT5uZXh0KSB7DQotCQkJaWYgKG9wcy0+ZmxhZ3MgJiBGVFJBQ0VfT1BT X0ZMX0VOQUJMRUQgJiYNCi0JCQkgICAgb3BzX3RyYWNlc19tb2Qob3BzKSkNCi0JCQkJcmVmKys7 DQorCQkJaWYgKG9wcy0+ZmxhZ3MgJiBGVFJBQ0VfT1BTX0ZMX0VOQUJMRUQpIHsNCisJCQkJaWYg KG9wc190cmFjZXNfbW9kKG9wcykpDQorCQkJCQlyZWYrKzsNCisJCQkJZWxzZQ0KKwkJCQkJdGVz dCA9IHRydWU7DQorCQkJfQ0KIAkJfQ0KIAl9DQogDQpAQCAtMTgyOSw2ICsxODg4LDcgQEAgc3Rh dGljIGludCBmdHJhY2VfdXBkYXRlX2NvZGUoc3RydWN0IG1vZHVsZSAqbW9kKQ0KIAlmdHJhY2Vf dXBkYXRlX2NudCA9IDA7DQogDQogCXdoaWxlIChmdHJhY2VfbmV3X2FkZHJzKSB7DQorCQlpbnQg Y250ID0gcmVmOw0KIA0KIAkJLyogSWYgc29tZXRoaW5nIHdlbnQgd3JvbmcsIGJhaWwgd2l0aG91 dCBlbmFibGluZyBhbnl0aGluZyAqLw0KIAkJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkp DQpAQCAtMTgzNiw3ICsxODk2LDkgQEAgc3RhdGljIGludCBmdHJhY2VfdXBkYXRlX2NvZGUoc3Ry dWN0IG1vZHVsZSAqbW9kKQ0KIA0KIAkJcCA9IGZ0cmFjZV9uZXdfYWRkcnM7DQogCQlmdHJhY2Vf bmV3X2FkZHJzID0gcC0+bmV3bGlzdDsNCi0JCXAtPmZsYWdzID0gcmVmOw0KKwkJaWYgKHRlc3Qp DQorCQkJY250ICs9IHJlZmVyZW5jZWRfZmlsdGVycyhwKTsNCisJCXAtPmZsYWdzID0gY250Ow0K IA0KIAkJLyoNCiAJCSAqIERvIHRoZSBpbml0aWFsIHJlY29yZCBjb252ZXJzaW9uIGZyb20gbWNv dW50IGp1bXANCkBAIC0xODU5LDcgKzE5MjEsNyBAQCBzdGF0aWMgaW50IGZ0cmFjZV91cGRhdGVf Y29kZShzdHJ1Y3QgbW9kdWxlICptb2QpDQogCQkgKiBjb252ZXJzaW9uIHB1dHMgdGhlIG1vZHVs ZSB0byB0aGUgY29ycmVjdCBzdGF0ZSwgdGh1cw0KIAkJICogcGFzc2luZyB0aGUgZnRyYWNlX21h a2VfY2FsbCBjaGVjay4NCiAJCSAqLw0KLQkJaWYgKGZ0cmFjZV9zdGFydF91cCAmJiByZWYpIHsN CisJCWlmIChmdHJhY2Vfc3RhcnRfdXAgJiYgY250KSB7DQogCQkJaW50IGZhaWxlZCA9IF9fZnRy YWNlX3JlcGxhY2VfY29kZShwLCAxKTsNCiAJCQlpZiAoZmFpbGVkKSB7DQogCQkJCWZ0cmFjZV9i dWcoZmFpbGVkLCBwLT5pcCk7DQpAQCAtMjExMiw3ICsyMTc0LDggQEAgc3RhdGljIHZvaWQgKnRf c3RhcnQoc3RydWN0IHNlcV9maWxlICptLCBsb2ZmX3QgKnBvcykNCiAJICogb2ZmLCB3ZSBjYW4g c2hvcnQgY3V0IGFuZCBqdXN0IHByaW50IG91dCB0aGF0IGFsbA0KIAkgKiBmdW5jdGlvbnMgYXJl IGVuYWJsZWQuDQogCSAqLw0KLQlpZiAoaXRlci0+ZmxhZ3MgJiBGVFJBQ0VfSVRFUl9GSUxURVIg JiYgIW9wcy0+ZmlsdGVyX2hhc2gtPmNvdW50KSB7DQorCWlmIChpdGVyLT5mbGFncyAmIEZUUkFD RV9JVEVSX0ZJTFRFUiAmJg0KKwkgICAgZnRyYWNlX2hhc2hfZW1wdHkob3BzLT5maWx0ZXJfaGFz aCkpIHsNCiAJCWlmICgqcG9zID4gMCkNCiAJCQlyZXR1cm4gdF9oYXNoX3N0YXJ0KG0sIHBvcyk7 DQogCQlpdGVyLT5mbGFncyB8PSBGVFJBQ0VfSVRFUl9QUklOVEFMTDsNCkBAIC0yNTY0LDE2ICsy NjI3LDEzIEBAIHN0YXRpYyB2b2lkIF9fZW5hYmxlX2Z0cmFjZV9mdW5jdGlvbl9wcm9iZSh2b2lk KQ0KIAlpZiAoaSA9PSBGVFJBQ0VfRlVOQ19IQVNIU0laRSkNCiAJCXJldHVybjsNCiANCi0JcmV0 ID0gX19yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24oJnRyYWNlX3Byb2JlX29wcyk7DQotCWlmICgh cmV0KQ0KLQkJcmV0ID0gZnRyYWNlX3N0YXJ0dXAoJnRyYWNlX3Byb2JlX29wcywgMCk7DQorCXJl dCA9IGZ0cmFjZV9zdGFydHVwKCZ0cmFjZV9wcm9iZV9vcHMsIDApOw0KIA0KIAlmdHJhY2VfcHJv YmVfcmVnaXN0ZXJlZCA9IDE7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIF9fZGlzYWJsZV9mdHJhY2Vf ZnVuY3Rpb25fcHJvYmUodm9pZCkNCiB7DQotCWludCByZXQ7DQogCWludCBpOw0KIA0KIAlpZiAo IWZ0cmFjZV9wcm9iZV9yZWdpc3RlcmVkKQ0KQEAgLTI1ODYsOSArMjY0Niw3IEBAIHN0YXRpYyB2 b2lkIF9fZGlzYWJsZV9mdHJhY2VfZnVuY3Rpb25fcHJvYmUodm9pZCkNCiAJfQ0KIA0KIAkvKiBu byBtb3JlIGZ1bmNzIGxlZnQgKi8NCi0JcmV0ID0gX191bnJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlv bigmdHJhY2VfcHJvYmVfb3BzKTsNCi0JaWYgKCFyZXQpDQotCQlmdHJhY2Vfc2h1dGRvd24oJnRy YWNlX3Byb2JlX29wcywgMCk7DQorCWZ0cmFjZV9zaHV0ZG93bigmdHJhY2VfcHJvYmVfb3BzLCAw KTsNCiANCiAJZnRyYWNlX3Byb2JlX3JlZ2lzdGVyZWQgPSAwOw0KIH0NCkBAIC0zNTYxLDEyICsz NjE5LDE1IEBAIGRldmljZV9pbml0Y2FsbChmdHJhY2Vfbm9keW5faW5pdCk7DQogc3RhdGljIGlu bGluZSBpbnQgZnRyYWNlX2luaXRfZHluX2RlYnVnZnMoc3RydWN0IGRlbnRyeSAqZF90cmFjZXIp IHsgcmV0dXJuIDA7IH0NCiBzdGF0aWMgaW5saW5lIHZvaWQgZnRyYWNlX3N0YXJ0dXBfZW5hYmxl KGludCBjb21tYW5kKSB7IH0NCiAvKiBLZWVwIGFzIG1hY3JvcyBzbyB3ZSBkbyBub3QgbmVlZCB0 byBkZWZpbmUgdGhlIGNvbW1hbmRzICovDQotIyBkZWZpbmUgZnRyYWNlX3N0YXJ0dXAob3BzLCBj b21tYW5kKQkJCVwNCi0JKHsJCQkJCQlcDQotCQkob3BzKS0+ZmxhZ3MgfD0gRlRSQUNFX09QU19G TF9FTkFCTEVEOwlcDQotCQkwOwkJCQkJXA0KKyMgZGVmaW5lIGZ0cmFjZV9zdGFydHVwKG9wcywg Y29tbWFuZCkJCQkJCVwNCisJKHsJCQkJCQkJCVwNCisJCWludCBfX19yZXQgPSBfX3JlZ2lzdGVy X2Z0cmFjZV9mdW5jdGlvbihvcHMpOwkJXA0KKwkJaWYgKCFfX19yZXQpCQkJCQkJXA0KKwkJCShv cHMpLT5mbGFncyB8PSBGVFJBQ0VfT1BTX0ZMX0VOQUJMRUQ7CQlcDQorCQlfX19yZXQ7CQkJCQkJ CVwNCiAJfSkNCi0jIGRlZmluZSBmdHJhY2Vfc2h1dGRvd24ob3BzLCBjb21tYW5kKQlkbyB7IH0g d2hpbGUgKDApDQorIyBkZWZpbmUgZnRyYWNlX3NodXRkb3duKG9wcywgY29tbWFuZCkgX191bnJl Z2lzdGVyX2Z0cmFjZV9mdW5jdGlvbihvcHMpDQorDQogIyBkZWZpbmUgZnRyYWNlX3N0YXJ0dXBf c3lzY3RsKCkJZG8geyB9IHdoaWxlICgwKQ0KICMgZGVmaW5lIGZ0cmFjZV9zaHV0ZG93bl9zeXNj dGwoKQlkbyB7IH0gd2hpbGUgKDApDQogDQpAQCAtMzkwNiwxNSArMzk2Nyw4IEBAIGludCByZWdp c3Rlcl9mdHJhY2VfZnVuY3Rpb24oc3RydWN0IGZ0cmFjZV9vcHMgKm9wcykNCiANCiAJbXV0ZXhf bG9jaygmZnRyYWNlX2xvY2spOw0KIA0KLQlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkN Ci0JCWdvdG8gb3V0X3VubG9jazsNCi0NCi0JcmV0ID0gX19yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rp b24ob3BzKTsNCi0JaWYgKCFyZXQpDQotCQlyZXQgPSBmdHJhY2Vfc3RhcnR1cChvcHMsIDApOw0K LQ0KKwlyZXQgPSBmdHJhY2Vfc3RhcnR1cChvcHMsIDApOw0KIA0KLSBvdXRfdW5sb2NrOg0KIAlt dXRleF91bmxvY2soJmZ0cmFjZV9sb2NrKTsNCiAJcmV0dXJuIHJldDsNCiB9DQpAQCAtMzkzMSw5 ICszOTg1LDcgQEAgaW50IHVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKHN0cnVjdCBmdHJhY2Vf b3BzICpvcHMpDQogCWludCByZXQ7DQogDQogCW11dGV4X2xvY2soJmZ0cmFjZV9sb2NrKTsNCi0J cmV0ID0gX191bnJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbihvcHMpOw0KLQlpZiAoIXJldCkNCi0J CWZ0cmFjZV9zaHV0ZG93bihvcHMsIDApOw0KKwlyZXQgPSBmdHJhY2Vfc2h1dGRvd24ob3BzLCAw KTsNCiAJbXV0ZXhfdW5sb2NrKCZmdHJhY2VfbG9jayk7DQogDQogCXJldHVybiByZXQ7DQpAQCAt NDEyNyw2ICs0MTc5LDEyIEBAIGZ0cmFjZV9zdXNwZW5kX25vdGlmaWVyX2NhbGwoc3RydWN0IG5v dGlmaWVyX2Jsb2NrICpibCwgdW5zaWduZWQgbG9uZyBzdGF0ZSwNCiAJcmV0dXJuIE5PVElGWV9E T05FOw0KIH0NCiANCisvKiBKdXN0IGEgcGxhY2UgaG9sZGVyIGZvciBmdW5jdGlvbiBncmFwaCAq Lw0KK3N0YXRpYyBzdHJ1Y3QgZnRyYWNlX29wcyBmZ3JhcGhfb3BzIF9fcmVhZF9tb3N0bHkgPSB7 DQorCS5mdW5jCQk9IGZ0cmFjZV9zdHViLA0KKwkuZmxhZ3MJCT0gRlRSQUNFX09QU19GTF9HTE9C QUwsDQorfTsNCisNCiBpbnQgcmVnaXN0ZXJfZnRyYWNlX2dyYXBoKHRyYWNlX2Z1bmNfZ3JhcGhf cmV0X3QgcmV0ZnVuYywNCiAJCQl0cmFjZV9mdW5jX2dyYXBoX2VudF90IGVudHJ5ZnVuYykNCiB7 DQpAQCAtNDE1Myw3ICs0MjExLDcgQEAgaW50IHJlZ2lzdGVyX2Z0cmFjZV9ncmFwaCh0cmFjZV9m dW5jX2dyYXBoX3JldF90IHJldGZ1bmMsDQogCWZ0cmFjZV9ncmFwaF9yZXR1cm4gPSByZXRmdW5j Ow0KIAlmdHJhY2VfZ3JhcGhfZW50cnkgPSBlbnRyeWZ1bmM7DQogDQotCXJldCA9IGZ0cmFjZV9z dGFydHVwKCZnbG9iYWxfb3BzLCBGVFJBQ0VfU1RBUlRfRlVOQ19SRVQpOw0KKwlyZXQgPSBmdHJh Y2Vfc3RhcnR1cCgmZmdyYXBoX29wcywgRlRSQUNFX1NUQVJUX0ZVTkNfUkVUKTsNCiANCiBvdXQ6 DQogCW11dGV4X3VubG9jaygmZnRyYWNlX2xvY2spOw0KQEAgLTQxNzAsNyArNDIyOCw3IEBAIHZv aWQgdW5yZWdpc3Rlcl9mdHJhY2VfZ3JhcGgodm9pZCkNCiAJZnRyYWNlX2dyYXBoX2FjdGl2ZS0t Ow0KIAlmdHJhY2VfZ3JhcGhfcmV0dXJuID0gKHRyYWNlX2Z1bmNfZ3JhcGhfcmV0X3QpZnRyYWNl X3N0dWI7DQogCWZ0cmFjZV9ncmFwaF9lbnRyeSA9IGZ0cmFjZV9ncmFwaF9lbnRyeV9zdHViOw0K LQlmdHJhY2Vfc2h1dGRvd24oJmdsb2JhbF9vcHMsIEZUUkFDRV9TVE9QX0ZVTkNfUkVUKTsNCisJ ZnRyYWNlX3NodXRkb3duKCZmZ3JhcGhfb3BzLCBGVFJBQ0VfU1RPUF9GVU5DX1JFVCk7DQogCXVu cmVnaXN0ZXJfcG1fbm90aWZpZXIoJmZ0cmFjZV9zdXNwZW5kX25vdGlmaWVyKTsNCiAJdW5yZWdp c3Rlcl90cmFjZV9zY2hlZF9zd2l0Y2goZnRyYWNlX2dyYXBoX3Byb2JlX3NjaGVkX3N3aXRjaCwg TlVMTCk7DQogDQpkaWZmIC0tZ2l0IGEvbGliL3JhbmRvbTMyLmMgYi9saWIvcmFuZG9tMzIuYw0K aW5kZXggZmMzNTQ1YS4uMWY0NGJkYyAxMDA2NDQNCi0tLSBhL2xpYi9yYW5kb20zMi5jDQorKysg Yi9saWIvcmFuZG9tMzIuYw0KQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBzcmFuZG9tMzIodTMyIGVu dHJvcHkpDQogCSAqLw0KIAlmb3JfZWFjaF9wb3NzaWJsZV9jcHUgKGkpIHsNCiAJCXN0cnVjdCBy bmRfc3RhdGUgKnN0YXRlID0gJnBlcl9jcHUobmV0X3JhbmRfc3RhdGUsIGkpOw0KLQkJc3RhdGUt PnMxID0gX19zZWVkKHN0YXRlLT5zMSBeIGVudHJvcHksIDEpOw0KKwkJc3RhdGUtPnMxID0gX19z ZWVkKHN0YXRlLT5zMSBeIGVudHJvcHksIDIpOw0KIAl9DQogfQ0KIEVYUE9SVF9TWU1CT0woc3Jh bmRvbTMyKTsNCkBAIC0xMDksOSArMTA5LDkgQEAgc3RhdGljIGludCBfX2luaXQgcmFuZG9tMzJf aW5pdCh2b2lkKQ0KIAkJc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUgPSAmcGVyX2NwdShuZXRfcmFu ZF9zdGF0ZSxpKTsNCiANCiAjZGVmaW5lIExDRyh4KQkoKHgpICogNjkwNjkpCS8qIHN1cGVyLWR1 cGVyIExDRyAqLw0KLQkJc3RhdGUtPnMxID0gX19zZWVkKExDRyhpICsgamlmZmllcyksIDEpOw0K LQkJc3RhdGUtPnMyID0gX19zZWVkKExDRyhzdGF0ZS0+czEpLCA3KTsNCi0JCXN0YXRlLT5zMyA9 IF9fc2VlZChMQ0coc3RhdGUtPnMyKSwgMTUpOw0KKwkJc3RhdGUtPnMxID0gX19zZWVkKExDRyhp ICsgamlmZmllcyksIDIpOw0KKwkJc3RhdGUtPnMyID0gX19zZWVkKExDRyhzdGF0ZS0+czEpLCA4 KTsNCisJCXN0YXRlLT5zMyA9IF9fc2VlZChMQ0coc3RhdGUtPnMyKSwgMTYpOw0KIA0KIAkJLyog Indhcm0gaXQgdXAiICovDQogCQlwcmFuZG9tMzIoc3RhdGUpOw0KQEAgLTEzOCw5ICsxMzgsOSBA QCBzdGF0aWMgaW50IF9faW5pdCByYW5kb20zMl9yZXNlZWQodm9pZCkNCiAJCXUzMiBzZWVkc1sz XTsNCiANCiAJCWdldF9yYW5kb21fYnl0ZXMoJnNlZWRzLCBzaXplb2Yoc2VlZHMpKTsNCi0JCXN0 YXRlLT5zMSA9IF9fc2VlZChzZWVkc1swXSwgMSk7DQotCQlzdGF0ZS0+czIgPSBfX3NlZWQoc2Vl ZHNbMV0sIDcpOw0KLQkJc3RhdGUtPnMzID0gX19zZWVkKHNlZWRzWzJdLCAxNSk7DQorCQlzdGF0 ZS0+czEgPSBfX3NlZWQoc2VlZHNbMF0sIDIpOw0KKwkJc3RhdGUtPnMyID0gX19zZWVkKHNlZWRz WzFdLCA4KTsNCisJCXN0YXRlLT5zMyA9IF9fc2VlZChzZWVkc1syXSwgMTYpOw0KIA0KIAkJLyog bWl4IGl0IGluICovDQogCQlwcmFuZG9tMzIoc3RhdGUpOw0KZGlmZiAtLWdpdCBhL2xpYi92c3By aW50Zi5jIGIvbGliL3ZzcHJpbnRmLmMNCmluZGV4IGQ3NGMzMTcuLmFlMDJlNDIgMTAwNjQ0DQot LS0gYS9saWIvdnNwcmludGYuYw0KKysrIGIvbGliL3ZzcHJpbnRmLmMNCkBAIC0yNSw2ICsyNSw3 IEBADQogI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+DQogI2luY2x1ZGUgPGxpbnV4L3VhY2Nl c3MuaD4NCiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+DQorI2luY2x1ZGUgPGxpbnV4L2NyZWQu aD4NCiAjaW5jbHVkZSA8bmV0L2FkZHJjb25mLmg+DQogDQogI2luY2x1ZGUgPGFzbS9wYWdlLmg+ CQkvKiBmb3IgUEFHRV9TSVpFICovDQpAQCAtODkyLDEwICs4OTMsMzUgQEAgY2hhciAqcG9pbnRl cihjb25zdCBjaGFyICpmbXQsIGNoYXIgKmJ1ZiwgY2hhciAqZW5kLCB2b2lkICpwdHIsDQogCQkJ CXNwZWMuZmllbGRfd2lkdGggPSAyICogc2l6ZW9mKHZvaWQgKik7DQogCQkJcmV0dXJuIHN0cmlu ZyhidWYsIGVuZCwgInBLLWVycm9yIiwgc3BlYyk7DQogCQl9DQotCQlpZiAoISgoa3B0cl9yZXN0 cmljdCA9PSAwKSB8fA0KLQkJICAgICAgKGtwdHJfcmVzdHJpY3QgPT0gMSAmJg0KLQkJICAgICAg IGhhc19jYXBhYmlsaXR5X25vYXVkaXQoY3VycmVudCwgQ0FQX1NZU0xPRykpKSkNCisNCisJCXN3 aXRjaCAoa3B0cl9yZXN0cmljdCkgew0KKwkJY2FzZSAwOg0KKwkJCS8qIEFsd2F5cyBwcmludCAl cEsgdmFsdWVzICovDQorCQkJYnJlYWs7DQorCQljYXNlIDE6IHsNCisJCQkvKg0KKwkJCSAqIE9u bHkgcHJpbnQgdGhlIHJlYWwgcG9pbnRlciB2YWx1ZSBpZiB0aGUgY3VycmVudA0KKwkJCSAqIHBy b2Nlc3MgaGFzIENBUF9TWVNMT0cgYW5kIGlzIHJ1bm5pbmcgd2l0aCB0aGUNCisJCQkgKiBzYW1l IGNyZWRlbnRpYWxzIGl0IHN0YXJ0ZWQgd2l0aC4gVGhpcyBpcyBiZWNhdXNlDQorCQkJICogYWNj ZXNzIHRvIGZpbGVzIGlzIGNoZWNrZWQgYXQgb3BlbigpIHRpbWUsIGJ1dCAlcEsNCisJCQkgKiBj aGVja3MgcGVybWlzc2lvbiBhdCByZWFkKCkgdGltZS4gV2UgZG9uJ3Qgd2FudCB0bw0KKwkJCSAq IGxlYWsgcG9pbnRlciB2YWx1ZXMgaWYgYSBiaW5hcnkgb3BlbnMgYSBmaWxlIHVzaW5nDQorCQkJ ICogJXBLIGFuZCB0aGVuIGVsZXZhdGVzIHByaXZpbGVnZXMgYmVmb3JlIHJlYWRpbmcgaXQuDQor CQkJICovDQorCQkJY29uc3Qgc3RydWN0IGNyZWQgKmNyZWQgPSBjdXJyZW50X2NyZWQoKTsNCisN CisJCQlpZiAoIWhhc19jYXBhYmlsaXR5X25vYXVkaXQoY3VycmVudCwgQ0FQX1NZU0xPRykgfHwN CisJCQkgICAgY3JlZC0+ZXVpZCAhPSBjcmVkLT51aWQgfHwNCisJCQkgICAgY3JlZC0+ZWdpZCAh PSBjcmVkLT5naWQpDQorCQkJCXB0ciA9IE5VTEw7DQorCQkJYnJlYWs7DQorCQl9DQorCQljYXNl IDI6DQorCQlkZWZhdWx0Og0KKwkJCS8qIEFsd2F5cyBwcmludCAwJ3MgZm9yICVwSyAqLw0KIAkJ CXB0ciA9IE5VTEw7DQorCQkJYnJlYWs7DQorCQl9DQogCQlicmVhazsNCiAJfQ0KIAlzcGVjLmZs YWdzIHw9IFNNQUxMOw0KZGlmZiAtLWdpdCBhL21tL21tYXAuYyBiL21tL21tYXAuYw0KaW5kZXgg ZGZmMzdhNi4uNjE4MmM4YSAxMDA2NDQNCi0tLSBhL21tL21tYXAuYw0KKysrIGIvbW0vbW1hcC5j DQpAQCAtMTM2OCw3ICsxMzY4LDcgQEAgYXJjaF9nZXRfdW5tYXBwZWRfYXJlYShzdHJ1Y3QgZmls ZSAqZmlscCwgdW5zaWduZWQgbG9uZyBhZGRyLA0KIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZt YTsNCiAJdW5zaWduZWQgbG9uZyBzdGFydF9hZGRyOw0KIA0KLQlpZiAobGVuID4gVEFTS19TSVpF KQ0KKwlpZiAobGVuID4gVEFTS19TSVpFIC0gbW1hcF9taW5fYWRkcikNCiAJCXJldHVybiAtRU5P TUVNOw0KIA0KIAlpZiAoZmxhZ3MgJiBNQVBfRklYRUQpDQpAQCAtMTM3Nyw3ICsxMzc3LDcgQEAg YXJjaF9nZXRfdW5tYXBwZWRfYXJlYShzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgbG9uZyBh ZGRyLA0KIAlpZiAoYWRkcikgew0KIAkJYWRkciA9IFBBR0VfQUxJR04oYWRkcik7DQogCQl2bWEg PSBmaW5kX3ZtYShtbSwgYWRkcik7DQotCQlpZiAoVEFTS19TSVpFIC0gbGVuID49IGFkZHIgJiYN CisJCWlmIChUQVNLX1NJWkUgLSBsZW4gPj0gYWRkciAmJiBhZGRyID49IG1tYXBfbWluX2FkZHIg JiYNCiAJCSAgICAoIXZtYSB8fCBhZGRyICsgbGVuIDw9IHZtYS0+dm1fc3RhcnQpKQ0KIAkJCXJl dHVybiBhZGRyOw0KIAl9DQpAQCAtMTQ0Miw5ICsxNDQyLDEwIEBAIGFyY2hfZ2V0X3VubWFwcGVk X2FyZWFfdG9wZG93bihzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgdW5zaWduZWQgbG9uZyBhZGRy MCwNCiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7DQogCXN0cnVjdCBtbV9zdHJ1Y3QgKm1t ID0gY3VycmVudC0+bW07DQogCXVuc2lnbmVkIGxvbmcgYWRkciA9IGFkZHIwOw0KKwl1bnNpZ25l ZCBsb25nIGxvd19saW1pdCA9IG1heChQQUdFX1NJWkUsIG1tYXBfbWluX2FkZHIpOw0KIA0KIAkv KiByZXF1ZXN0ZWQgbGVuZ3RoIHRvbyBiaWcgZm9yIGVudGlyZSBhZGRyZXNzIHNwYWNlICovDQot CWlmIChsZW4gPiBUQVNLX1NJWkUpDQorCWlmIChsZW4gPiBUQVNLX1NJWkUgLSBtbWFwX21pbl9h ZGRyKQ0KIAkJcmV0dXJuIC1FTk9NRU07DQogDQogCWlmIChmbGFncyAmIE1BUF9GSVhFRCkNCkBA IC0xNDU0LDcgKzE0NTUsNyBAQCBhcmNoX2dldF91bm1hcHBlZF9hcmVhX3RvcGRvd24oc3RydWN0 IGZpbGUgKmZpbHAsIGNvbnN0IHVuc2lnbmVkIGxvbmcgYWRkcjAsDQogCWlmIChhZGRyKSB7DQog CQlhZGRyID0gUEFHRV9BTElHTihhZGRyKTsNCiAJCXZtYSA9IGZpbmRfdm1hKG1tLCBhZGRyKTsN Ci0JCWlmIChUQVNLX1NJWkUgLSBsZW4gPj0gYWRkciAmJg0KKwkJaWYgKFRBU0tfU0laRSAtIGxl biA+PSBhZGRyICYmIGFkZHIgPj0gbW1hcF9taW5fYWRkciAmJg0KIAkJCQkoIXZtYSB8fCBhZGRy ICsgbGVuIDw9IHZtYS0+dm1fc3RhcnQpKQ0KIAkJCXJldHVybiBhZGRyOw0KIAl9DQpAQCAtMTQ2 OSwxNCArMTQ3MCwxNCBAQCBhcmNoX2dldF91bm1hcHBlZF9hcmVhX3RvcGRvd24oc3RydWN0IGZp bGUgKmZpbHAsIGNvbnN0IHVuc2lnbmVkIGxvbmcgYWRkcjAsDQogCWFkZHIgPSBtbS0+ZnJlZV9h cmVhX2NhY2hlOw0KIA0KIAkvKiBtYWtlIHN1cmUgaXQgY2FuIGZpdCBpbiB0aGUgcmVtYWluaW5n IGFkZHJlc3Mgc3BhY2UgKi8NCi0JaWYgKGFkZHIgPiBsZW4pIHsNCisJaWYgKGFkZHIgPj0gbG93 X2xpbWl0ICsgbGVuKSB7DQogCQl2bWEgPSBmaW5kX3ZtYShtbSwgYWRkci1sZW4pOw0KIAkJaWYg KCF2bWEgfHwgYWRkciA8PSB2bWEtPnZtX3N0YXJ0KQ0KIAkJCS8qIHJlbWVtYmVyIHRoZSBhZGRy ZXNzIGFzIGEgaGludCBmb3IgbmV4dCB0aW1lICovDQogCQkJcmV0dXJuIChtbS0+ZnJlZV9hcmVh X2NhY2hlID0gYWRkci1sZW4pOw0KIAl9DQogDQotCWlmIChtbS0+bW1hcF9iYXNlIDwgbGVuKQ0K KwlpZiAobW0tPm1tYXBfYmFzZSA8IGxvd19saW1pdCArIGxlbikNCiAJCWdvdG8gYm90dG9tdXA7 DQogDQogCWFkZHIgPSBtbS0+bW1hcF9iYXNlLWxlbjsNCkBAIC0xNDk4LDcgKzE0OTksNyBAQCBh cmNoX2dldF91bm1hcHBlZF9hcmVhX3RvcGRvd24oc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IHVu c2lnbmVkIGxvbmcgYWRkcjAsDQogDQogCQkvKiB0cnkganVzdCBiZWxvdyB0aGUgY3VycmVudCB2 bWEtPnZtX3N0YXJ0ICovDQogCQlhZGRyID0gdm1hLT52bV9zdGFydC1sZW47DQotCX0gd2hpbGUg KGxlbiA8IHZtYS0+dm1fc3RhcnQpOw0KKwl9IHdoaWxlICh2bWEtPnZtX3N0YXJ0ID49IGxvd19s aW1pdCArIGxlbik7DQogDQogYm90dG9tdXA6DQogCS8qDQpkaWZmIC0tZ2l0IGEvbmV0L2FwcGxl dGFsay9kZHAuYyBiL25ldC9hcHBsZXRhbGsvZGRwLmMNCmluZGV4IGJmYTlhYjkzLi4zMzRkNGNk IDEwMDY0NA0KLS0tIGEvbmV0L2FwcGxldGFsay9kZHAuYw0KKysrIGIvbmV0L2FwcGxldGFsay9k ZHAuYw0KQEAgLTE3NDAsNyArMTc0MCw2IEBAIHN0YXRpYyBpbnQgYXRhbGtfcmVjdm1zZyhzdHJ1 Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHINCiAJCQkg c2l6ZV90IHNpemUsIGludCBmbGFncykNCiB7DQogCXN0cnVjdCBzb2NrICpzayA9IHNvY2stPnNr Ow0KLQlzdHJ1Y3Qgc29ja2FkZHJfYXQgKnNhdCA9IChzdHJ1Y3Qgc29ja2FkZHJfYXQgKiltc2ct Pm1zZ19uYW1lOw0KIAlzdHJ1Y3QgZGRwZWhkciAqZGRwOw0KIAlpbnQgY29waWVkID0gMDsNCiAJ aW50IG9mZnNldCA9IDA7DQpAQCAtMTc2OSwxNCArMTc2OCwxMyBAQCBzdGF0aWMgaW50IGF0YWxr X3JlY3Ztc2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg bXNnaGRyDQogCX0NCiAJZXJyID0gc2tiX2NvcHlfZGF0YWdyYW1faW92ZWMoc2tiLCBvZmZzZXQs IG1zZy0+bXNnX2lvdiwgY29waWVkKTsNCiANCi0JaWYgKCFlcnIpIHsNCi0JCWlmIChzYXQpIHsN Ci0JCQlzYXQtPnNhdF9mYW1pbHkgICAgICA9IEFGX0FQUExFVEFMSzsNCi0JCQlzYXQtPnNhdF9w b3J0ICAgICAgICA9IGRkcC0+ZGVoX3Nwb3J0Ow0KLQkJCXNhdC0+c2F0X2FkZHIuc19ub2RlID0g ZGRwLT5kZWhfc25vZGU7DQotCQkJc2F0LT5zYXRfYWRkci5zX25ldCAgPSBkZHAtPmRlaF9zbmV0 Ow0KLQkJfQ0KLQkJbXNnLT5tc2dfbmFtZWxlbiA9IHNpemVvZigqc2F0KTsNCisJaWYgKCFlcnIg JiYgbXNnLT5tc2dfbmFtZSkgew0KKwkJc3RydWN0IHNvY2thZGRyX2F0ICpzYXQgPSBtc2ctPm1z Z19uYW1lOw0KKwkJc2F0LT5zYXRfZmFtaWx5ICAgICAgPSBBRl9BUFBMRVRBTEs7DQorCQlzYXQt PnNhdF9wb3J0ICAgICAgICA9IGRkcC0+ZGVoX3Nwb3J0Ow0KKwkJc2F0LT5zYXRfYWRkci5zX25v ZGUgPSBkZHAtPmRlaF9zbm9kZTsNCisJCXNhdC0+c2F0X2FkZHIuc19uZXQgID0gZGRwLT5kZWhf c25ldDsNCisJCW1zZy0+bXNnX25hbWVsZW4gICAgID0gc2l6ZW9mKCpzYXQpOw0KIAl9DQogDQog CXNrYl9mcmVlX2RhdGFncmFtKHNrLCBza2IpOwkvKiBGcmVlIHRoZSBkYXRhZ3JhbS4gKi8NCmRp ZmYgLS1naXQgYS9uZXQvYXRtL2NvbW1vbi5jIGIvbmV0L2F0bS9jb21tb24uYw0KaW5kZXggNDNi NmJmZS4uMGNhMDZlOCAxMDA2NDQNCi0tLSBhL25ldC9hdG0vY29tbW9uLmMNCisrKyBiL25ldC9h dG0vY29tbW9uLmMNCkBAIC01MDAsOCArNTAwLDYgQEAgaW50IHZjY19yZWN2bXNnKHN0cnVjdCBr aW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLA0KIAlz dHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KIAlpbnQgY29waWVkLCBlcnJvciA9IC1FSU5WQUw7DQogDQot CW1zZy0+bXNnX25hbWVsZW4gPSAwOw0KLQ0KIAlpZiAoc29jay0+c3RhdGUgIT0gU1NfQ09OTkVD VEVEKQ0KIAkJcmV0dXJuIC1FTk9UQ09OTjsNCiAJaWYgKGZsYWdzICYgfk1TR19ET05UV0FJVCkJ CS8qIG9ubHkgaGFuZGxlIE1TR19ET05UV0FJVCAqLw0KZGlmZiAtLWdpdCBhL25ldC9heDI1L2Fm X2F4MjUuYyBiL25ldC9heDI1L2FmX2F4MjUuYw0KaW5kZXggODZhYzM3Zi4uN2I4ZGIwZSAxMDA2 NDQNCi0tLSBhL25ldC9heDI1L2FmX2F4MjUuYw0KKysrIGIvbmV0L2F4MjUvYWZfYXgyNS5jDQpA QCAtMTYzNSwxMSArMTYzNSwxMSBAQCBzdGF0aWMgaW50IGF4MjVfcmVjdm1zZyhzdHJ1Y3Qga2lv Y2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogDQogCXNrYl9jb3B5X2RhdGFncmFtX2lv dmVjKHNrYiwgMCwgbXNnLT5tc2dfaW92LCBjb3BpZWQpOw0KIA0KLQlpZiAobXNnLT5tc2dfbmFt ZWxlbiAhPSAwKSB7DQotCQlzdHJ1Y3Qgc29ja2FkZHJfYXgyNSAqc2F4ID0gKHN0cnVjdCBzb2Nr YWRkcl9heDI1ICopbXNnLT5tc2dfbmFtZTsNCisJaWYgKG1zZy0+bXNnX25hbWUpIHsNCiAJCWF4 MjVfZGlnaSBkaWdpOw0KIAkJYXgyNV9hZGRyZXNzIHNyYzsNCiAJCWNvbnN0IHVuc2lnbmVkIGNo YXIgKm1hYyA9IHNrYl9tYWNfaGVhZGVyKHNrYik7DQorCQlzdHJ1Y3Qgc29ja2FkZHJfYXgyNSAq c2F4ID0gbXNnLT5tc2dfbmFtZTsNCiANCiAJCW1lbXNldChzYXgsIDAsIHNpemVvZihzdHJ1Y3Qg ZnVsbF9zb2NrYWRkcl9heDI1KSk7DQogCQlheDI1X2FkZHJfcGFyc2UobWFjICsgMSwgc2tiLT5k YXRhIC0gbWFjIC0gMSwgJnNyYywgTlVMTCwNCmRpZmYgLS1naXQgYS9uZXQvYmx1ZXRvb3RoL2Fm X2JsdWV0b290aC5jIGIvbmV0L2JsdWV0b290aC9hZl9ibHVldG9vdGguYw0KaW5kZXggODM4ZjEx My4uMDkzOGY2YiAxMDA2NDQNCi0tLSBhL25ldC9ibHVldG9vdGgvYWZfYmx1ZXRvb3RoLmMNCisr KyBiL25ldC9ibHVldG9vdGgvYWZfYmx1ZXRvb3RoLmMNCkBAIC0yNDUsOCArMjQ1LDYgQEAgaW50 IGJ0X3NvY2tfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ss DQogCWlmIChmbGFncyAmIChNU0dfT09CKSkNCiAJCXJldHVybiAtRU9QTk9UU1VQUDsNCiANCi0J bXNnLT5tc2dfbmFtZWxlbiA9IDA7DQotDQogCXNrYiA9IHNrYl9yZWN2X2RhdGFncmFtKHNrLCBm bGFncywgbm9ibG9jaywgJmVycik7DQogCWlmICghc2tiKSB7DQogCQlpZiAoc2stPnNrX3NodXRk b3duICYgUkNWX1NIVVRET1dOKQ0KQEAgLTMxMSw4ICszMDksNiBAQCBpbnQgYnRfc29ja19zdHJl YW1fcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCWlm IChmbGFncyAmIE1TR19PT0IpDQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7DQogDQotCW1zZy0+bXNn X25hbWVsZW4gPSAwOw0KLQ0KIAlCVF9EQkcoInNrICVwIHNpemUgJXp1Iiwgc2ssIHNpemUpOw0K IA0KIAlsb2NrX3NvY2soc2spOw0KZGlmZiAtLWdpdCBhL25ldC9ibHVldG9vdGgvaGNpX3NvY2su YyBiL25ldC9ibHVldG9vdGgvaGNpX3NvY2suYw0KaW5kZXggODM2MWVlNC4uYmI3OGM3NSAxMDA2 NDQNCi0tLSBhL25ldC9ibHVldG9vdGgvaGNpX3NvY2suYw0KKysrIGIvbmV0L2JsdWV0b290aC9o Y2lfc29jay5jDQpAQCAtNDQ4LDggKzQ0OCw2IEBAIHN0YXRpYyBpbnQgaGNpX3NvY2tfcmVjdm1z ZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCWlmICghc2tiKQ0K IAkJcmV0dXJuIGVycjsNCiANCi0JbXNnLT5tc2dfbmFtZWxlbiA9IDA7DQotDQogCWNvcGllZCA9 IHNrYi0+bGVuOw0KIAlpZiAobGVuIDwgY29waWVkKSB7DQogCQltc2ctPm1zZ19mbGFncyB8PSBN U0dfVFJVTkM7DQpkaWZmIC0tZ2l0IGEvbmV0L2JsdWV0b290aC9yZmNvbW0vc29jay5jIGIvbmV0 L2JsdWV0b290aC9yZmNvbW0vc29jay5jDQppbmRleCA4MmNlMTY0Li4xNGM0ODY0IDEwMDY0NA0K LS0tIGEvbmV0L2JsdWV0b290aC9yZmNvbW0vc29jay5jDQorKysgYi9uZXQvYmx1ZXRvb3RoL3Jm Y29tbS9zb2NrLmMNCkBAIC02MjcsNyArNjI3LDYgQEAgc3RhdGljIGludCByZmNvbW1fc29ja19y ZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywNCiANCiAJaWYg KHRlc3RfYW5kX2NsZWFyX2JpdChSRkNPTU1fREVGRVJfU0VUVVAsICZkLT5mbGFncykpIHsNCiAJ CXJmY29tbV9kbGNfYWNjZXB0KGQpOw0KLQkJbXNnLT5tc2dfbmFtZWxlbiA9IDA7DQogCQlyZXR1 cm4gMDsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfaWYuYyBiL25ldC9icmlk Z2UvYnJfaWYuYw0KaW5kZXggZjNmNzVhZC4uNTY2OTNjMyAxMDA2NDQNCi0tLSBhL25ldC9icmlk Z2UvYnJfaWYuYw0KKysrIGIvbmV0L2JyaWRnZS9icl9pZi5jDQpAQCAtMTcwLDYgKzE3MCw4IEBA IHZvaWQgYnJfZGV2X2RlbGV0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbGlzdF9o ZWFkICpoZWFkKQ0KIAkJZGVsX25icChwKTsNCiAJfQ0KIA0KKwlicl9mZGJfZGVsZXRlX2J5X3Bv cnQoYnIsIE5VTEwsIDEpOw0KKw0KIAlkZWxfdGltZXJfc3luYygmYnItPmdjX3RpbWVyKTsNCiAN CiAJYnJfc3lzZnNfZGVsYnIoYnItPmRldik7DQpkaWZmIC0tZ2l0IGEvbmV0L2NhaWYvY2FpZl9z b2NrZXQuYyBiL25ldC9jYWlmL2NhaWZfc29ja2V0LmMNCmluZGV4IDUzYThlMzcuLjdmYWM3NWYg MTAwNjQ0DQotLS0gYS9uZXQvY2FpZi9jYWlmX3NvY2tldC5jDQorKysgYi9uZXQvY2FpZi9jYWlm X3NvY2tldC5jDQpAQCAtMzIwLDggKzMyMCw2IEBAIHN0YXRpYyBpbnQgY2FpZl9zZXFwa3RfcmVj dm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCWlmIChtLT5t c2dfZmxhZ3MmTVNHX09PQikNCiAJCWdvdG8gcmVhZF9lcnJvcjsNCiANCi0JbS0+bXNnX25hbWVs ZW4gPSAwOw0KLQ0KIAlza2IgPSBza2JfcmVjdl9kYXRhZ3JhbShzaywgZmxhZ3MsIDAgLCAmcmV0 KTsNCiAJaWYgKCFza2IpDQogCQlnb3RvIHJlYWRfZXJyb3I7DQpAQCAtMzk1LDggKzM5Myw2IEBA IHN0YXRpYyBpbnQgY2FpZl9zdHJlYW1fcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVj dCBzb2NrZXQgKnNvY2ssDQogCWlmIChmbGFncyZNU0dfT09CKQ0KIAkJZ290byBvdXQ7DQogDQot CW1zZy0+bXNnX25hbWVsZW4gPSAwOw0KLQ0KIAkvKg0KIAkgKiBMb2NrIHRoZSBzb2NrZXQgdG8g cHJldmVudCBxdWV1ZSBkaXNvcmRlcmluZw0KIAkgKiB3aGlsZSBzbGVlcHMgaW4gbWVtY3B5X3Rv bXNnDQpkaWZmIC0tZ2l0IGEvbmV0L2NvbXBhdC5jIGIvbmV0L2NvbXBhdC5jDQppbmRleCAzMTM5 ZWYyLi40MTcyNGM5IDEwMDY0NA0KLS0tIGEvbmV0L2NvbXBhdC5jDQorKysgYi9uZXQvY29tcGF0 LmMNCkBAIC03Miw3ICs3Miw3IEBAIGludCBnZXRfY29tcGF0X21zZ2hkcihzdHJ1Y3QgbXNnaGRy ICprbXNnLCBzdHJ1Y3QgY29tcGF0X21zZ2hkciBfX3VzZXIgKnVtc2cpDQogCSAgICBfX2dldF91 c2VyKGttc2ctPm1zZ19mbGFncywgJnVtc2ctPm1zZ19mbGFncykpDQogCQlyZXR1cm4gLUVGQVVM VDsNCiAJaWYgKGttc2ctPm1zZ19uYW1lbGVuID4gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9zdG9y YWdlKSkNCi0JCXJldHVybiAtRUlOVkFMOw0KKwkJa21zZy0+bXNnX25hbWVsZW4gPSBzaXplb2Yo c3RydWN0IHNvY2thZGRyX3N0b3JhZ2UpOw0KIAlrbXNnLT5tc2dfbmFtZSA9IGNvbXBhdF9wdHIo dG1wMSk7DQogCWttc2ctPm1zZ19pb3YgPSBjb21wYXRfcHRyKHRtcDIpOw0KIAlrbXNnLT5tc2df Y29udHJvbCA9IGNvbXBhdF9wdHIodG1wMyk7DQpAQCAtOTMsNyArOTMsOCBAQCBpbnQgdmVyaWZ5 X2NvbXBhdF9pb3ZlYyhzdHJ1Y3QgbXNnaGRyICprZXJuX21zZywgc3RydWN0IGlvdmVjICprZXJu X2lvdiwNCiAJCQlpZiAoZXJyIDwgMCkNCiAJCQkJcmV0dXJuIGVycjsNCiAJCX0NCi0JCWtlcm5f bXNnLT5tc2dfbmFtZSA9IGtlcm5fYWRkcmVzczsNCisJCWlmIChrZXJuX21zZy0+bXNnX25hbWUp DQorCQkJa2Vybl9tc2ctPm1zZ19uYW1lID0ga2Vybl9hZGRyZXNzOw0KIAl9IGVsc2UNCiAJCWtl cm5fbXNnLT5tc2dfbmFtZSA9IE5VTEw7DQogDQpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMg Yi9uZXQvY29yZS9kZXYuYw0KaW5kZXggOGU0NTViOC4uN2JjZjM3ZCAxMDA2NDQNCi0tLSBhL25l dC9jb3JlL2Rldi5jDQorKysgYi9uZXQvY29yZS9kZXYuYw0KQEAgLTI2MDksNiArMjYwOSw4IEBA IGlwOg0KIAkJCWdvdG8gZG9uZTsNCiANCiAJCWlwID0gKGNvbnN0IHN0cnVjdCBpcGhkciAqKSAo c2tiLT5kYXRhICsgbmhvZmYpOw0KKwkJaWYgKGlwLT5paGwgPCA1KQ0KKwkJCWdvdG8gZG9uZTsN CiAJCWlmIChpcF9pc19mcmFnbWVudChpcCkpDQogCQkJaXBfcHJvdG8gPSAwOw0KIAkJZWxzZQ0K QEAgLTQ1MTUsNyArNDUxNyw3IEBAIHN0YXRpYyB2b2lkIGRldl9jaGFuZ2VfcnhfZmxhZ3Moc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IGZsYWdzKQ0KIHsNCiAJY29uc3Qgc3RydWN0IG5ldF9k ZXZpY2Vfb3BzICpvcHMgPSBkZXYtPm5ldGRldl9vcHM7DQogDQotCWlmICgoZGV2LT5mbGFncyAm IElGRl9VUCkgJiYgb3BzLT5uZG9fY2hhbmdlX3J4X2ZsYWdzKQ0KKwlpZiAob3BzLT5uZG9fY2hh bmdlX3J4X2ZsYWdzKQ0KIAkJb3BzLT5uZG9fY2hhbmdlX3J4X2ZsYWdzKGRldiwgZmxhZ3MpOw0K IH0NCiANCmRpZmYgLS1naXQgYS9uZXQvY29yZS9maWJfcnVsZXMuYyBiL25ldC9jb3JlL2ZpYl9y dWxlcy5jDQppbmRleCBjMDJlNjNjLi5jMGMyMWIxIDEwMDY0NA0KLS0tIGEvbmV0L2NvcmUvZmli X3J1bGVzLmMNCisrKyBiL25ldC9jb3JlL2ZpYl9ydWxlcy5jDQpAQCAtNDQzLDcgKzQ0Myw4IEBA IHN0YXRpYyBpbnQgZmliX25sX2RlbHJ1bGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5s bXNnaGRyKiBubGgsIHZvaWQgKmFyZykNCiAJCWlmIChmcmgtPmFjdGlvbiAmJiAoZnJoLT5hY3Rp b24gIT0gcnVsZS0+YWN0aW9uKSkNCiAJCQljb250aW51ZTsNCiANCi0JCWlmIChmcmgtPnRhYmxl ICYmIChmcmhfZ2V0X3RhYmxlKGZyaCwgdGIpICE9IHJ1bGUtPnRhYmxlKSkNCisJCWlmIChmcmhf Z2V0X3RhYmxlKGZyaCwgdGIpICYmDQorCQkgICAgKGZyaF9nZXRfdGFibGUoZnJoLCB0YikgIT0g cnVsZS0+dGFibGUpKQ0KIAkJCWNvbnRpbnVlOw0KIA0KIAkJaWYgKHRiW0ZSQV9QUklPUklUWV0g JiYNCmRpZmYgLS1naXQgYS9uZXQvY29yZS9pb3ZlYy5jIGIvbmV0L2NvcmUvaW92ZWMuYw0KaW5k ZXggYzQwZjI3ZS4uMTM5ZWY5MyAxMDA2NDQNCi0tLSBhL25ldC9jb3JlL2lvdmVjLmMNCisrKyBi L25ldC9jb3JlL2lvdmVjLmMNCkBAIC00OCw3ICs0OCw4IEBAIGludCB2ZXJpZnlfaW92ZWMoc3Ry dWN0IG1zZ2hkciAqbSwgc3RydWN0IGlvdmVjICppb3YsIHN0cnVjdCBzb2NrYWRkciAqYWRkcmVz cywNCiAJCQlpZiAoZXJyIDwgMCkNCiAJCQkJcmV0dXJuIGVycjsNCiAJCX0NCi0JCW0tPm1zZ19u YW1lID0gYWRkcmVzczsNCisJCWlmIChtLT5tc2dfbmFtZSkNCisJCQltLT5tc2dfbmFtZSA9IGFk ZHJlc3M7DQogCX0gZWxzZSB7DQogCQltLT5tc2dfbmFtZSA9IE5VTEw7DQogCX0NCmRpZmYgLS1n aXQgYS9uZXQvY29yZS9wa3RnZW4uYyBiL25ldC9jb3JlL3BrdGdlbi5jDQppbmRleCAyZWY3ZGEw Li44MGFlYWM5IDEwMDY0NA0KLS0tIGEvbmV0L2NvcmUvcGt0Z2VuLmMNCisrKyBiL25ldC9jb3Jl L3BrdGdlbi5jDQpAQCAtMjUyNCw2ICsyNTI0LDggQEAgc3RhdGljIGludCBwcm9jZXNzX2lwc2Vj KHN0cnVjdCBwa3RnZW5fZGV2ICpwa3RfZGV2LA0KIAkJaWYgKHgpIHsNCiAJCQlpbnQgcmV0Ow0K IAkJCV9fdTggKmV0aDsNCisJCQlzdHJ1Y3QgaXBoZHIgKmlwaDsNCisNCiAJCQluaGVhZCA9IHgt PnByb3BzLmhlYWRlcl9sZW4gLSBza2JfaGVhZHJvb20oc2tiKTsNCiAJCQlpZiAobmhlYWQgPiAw KSB7DQogCQkJCXJldCA9IHBza2JfZXhwYW5kX2hlYWQoc2tiLCBuaGVhZCwgMCwgR0ZQX0FUT01J Qyk7DQpAQCAtMjU0NSw2ICsyNTQ3LDExIEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19pcHNlYyhzdHJ1 Y3QgcGt0Z2VuX2RldiAqcGt0X2RldiwNCiAJCQlldGggPSAoX191OCAqKSBza2JfcHVzaChza2Is IEVUSF9ITEVOKTsNCiAJCQltZW1jcHkoZXRoLCBwa3RfZGV2LT5oaCwgMTIpOw0KIAkJCSoodTE2 ICopICZldGhbMTJdID0gcHJvdG9jb2w7DQorDQorCQkJLyogVXBkYXRlIElQdjQgaGVhZGVyIGxl biBhcyB3ZWxsIGFzIGNoZWNrc3VtIHZhbHVlICovDQorCQkJaXBoID0gaXBfaGRyKHNrYik7DQor CQkJaXBoLT50b3RfbGVuID0gaHRvbnMoc2tiLT5sZW4gLSBFVEhfSExFTik7DQorCQkJaXBfc2Vu ZF9jaGVjayhpcGgpOw0KIAkJfQ0KIAl9DQogCXJldHVybiAxOw0KZGlmZiAtLWdpdCBhL25ldC9p ZWVlODAyMTU0LzZsb3dwYW4uYyBiL25ldC9pZWVlODAyMTU0LzZsb3dwYW4uYw0KaW5kZXggMTlk NmFlZi4uNWQ0MmRmMiAxMDA2NDQNCi0tLSBhL25ldC9pZWVlODAyMTU0LzZsb3dwYW4uYw0KKysr IGIvbmV0L2llZWU4MDIxNTQvNmxvd3Bhbi5jDQpAQCAtNTYzLDcgKzU2Myw3IEBAIGxvd3Bhbl9w cm9jZXNzX2RhdGEoc3RydWN0IHNrX2J1ZmYgKnNrYikNCiAJICogVHJhZmZpYyBjbGFzcyBjYXJy aWVkIGluLWxpbmUNCiAJICogRUNOICsgRFNDUCAoMSBieXRlKSwgRmxvdyBMYWJlbCBpcyBlbGlk ZWQNCiAJICovDQotCWNhc2UgMTogLyogMTBiICovDQorCWNhc2UgMjogLyogMTBiICovDQogCQlp ZiAoIXNrYi0+bGVuKQ0KIAkJCWdvdG8gZHJvcDsNCiAJCXRtcCA9IGxvd3Bhbl9mZXRjaF9za2Jf dTgoc2tiKTsNCkBAIC01NzYsNyArNTc2LDcgQEAgbG93cGFuX3Byb2Nlc3NfZGF0YShzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQ0KIAkgKiBGbG93IExhYmVsIGNhcnJpZWQgaW4tbGluZQ0KIAkgKiBFQ04g KyAyLWJpdCBQYWQgKyBGbG93IExhYmVsICgzIGJ5dGVzKSwgRFNDUCBpcyBlbGlkZWQNCiAJICov DQotCWNhc2UgMjogLyogMDFiICovDQorCWNhc2UgMTogLyogMDFiICovDQogCQlpZiAoIXNrYi0+ bGVuKQ0KIAkJCWdvdG8gZHJvcDsNCiAJCXRtcCA9IGxvd3Bhbl9mZXRjaF9za2JfdTgoc2tiKTsN CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9kYXRhZ3JhbS5jIGIvbmV0L2lwdjQvZGF0YWdyYW0uYw0K aW5kZXggNDI0ZmFmYi4uZWMwNzUxMCAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L2RhdGFncmFtLmMN CisrKyBiL25ldC9pcHY0L2RhdGFncmFtLmMNCkBAIC01Nyw3ICs1Nyw3IEBAIGludCBpcDRfZGF0 YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGlu dCBhZGRyX2xlbikNCiAJaWYgKElTX0VSUihydCkpIHsNCiAJCWVyciA9IFBUUl9FUlIocnQpOw0K IAkJaWYgKGVyciA9PSAtRU5FVFVOUkVBQ0gpDQotCQkJSVBfSU5DX1NUQVRTX0JIKHNvY2tfbmV0 KHNrKSwgSVBTVEFUU19NSUJfT1VUTk9ST1VURVMpOw0KKwkJCUlQX0lOQ19TVEFUUyhzb2NrX25l dChzayksIElQU1RBVFNfTUlCX09VVE5PUk9VVEVTKTsNCiAJCWdvdG8gb3V0Ow0KIAl9DQogDQpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfc29ja2dsdWUuYyBiL25ldC9pcHY0L2lwX3NvY2tnbHVl LmMNCmluZGV4IDNiMzYwMDIuLjU0MmE5YzEgMTAwNjQ0DQotLS0gYS9uZXQvaXB2NC9pcF9zb2Nr Z2x1ZS5jDQorKysgYi9uZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jDQpAQCAtMzc0LDcgKzM3NCw3IEBA IHZvaWQgaXBfbG9jYWxfZXJyb3Ioc3RydWN0IHNvY2sgKnNrLCBpbnQgZXJyLCBfX2JlMzIgZGFk ZHIsIF9fYmUxNiBwb3J0LCB1MzIgaW5mDQogLyoNCiAgKglIYW5kbGUgTVNHX0VSUlFVRVVFDQog ICovDQotaW50IGlwX3JlY3ZfZXJyb3Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICpt c2csIGludCBsZW4pDQoraW50IGlwX3JlY3ZfZXJyb3Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg bXNnaGRyICptc2csIGludCBsZW4sIGludCAqYWRkcl9sZW4pDQogew0KIAlzdHJ1Y3Qgc29ja19l eHRlcnJfc2tiICpzZXJyOw0KIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCAqc2tiMjsNCkBAIC00MTEs NiArNDExLDcgQEAgaW50IGlwX3JlY3ZfZXJyb3Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNn aGRyICptc2csIGludCBsZW4pDQogCQkJCQkJICAgc2Vyci0+YWRkcl9vZmZzZXQpOw0KIAkJc2lu LT5zaW5fcG9ydCA9IHNlcnItPnBvcnQ7DQogCQltZW1zZXQoJnNpbi0+c2luX3plcm8sIDAsIHNp emVvZihzaW4tPnNpbl96ZXJvKSk7DQorCQkqYWRkcl9sZW4gPSBzaXplb2YoKnNpbik7DQogCX0N CiANCiAJbWVtY3B5KCZlcnJoZHIuZWUsICZzZXJyLT5lZSwgc2l6ZW9mKHN0cnVjdCBzb2NrX2V4 dGVuZGVkX2VycikpOw0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L3BpbmcuYyBiL25ldC9pcHY0L3Bp bmcuYw0KaW5kZXggMjk0YTM4MC4uMDA5NzViNiAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L3Bpbmcu Yw0KKysrIGIvbmV0L2lwdjQvcGluZy5jDQpAQCAtNTY3LDcgKzU2Nyw3IEBAIHN0YXRpYyBpbnQg cGluZ19zZW5kbXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg bXNnaGRyICptc2csDQogCQllcnIgPSBQVFJfRVJSKHJ0KTsNCiAJCXJ0ID0gTlVMTDsNCiAJCWlm IChlcnIgPT0gLUVORVRVTlJFQUNIKQ0KLQkJCUlQX0lOQ19TVEFUU19CSChuZXQsIElQU1RBVFNf TUlCX09VVE5PUk9VVEVTKTsNCisJCQlJUF9JTkNfU1RBVFMobmV0LCBJUFNUQVRTX01JQl9PVVRO T1JPVVRFUyk7DQogCQlnb3RvIG91dDsNCiAJfQ0KIA0KQEAgLTYyMyw3ICs2MjMsNiBAQCBzdGF0 aWMgaW50IHBpbmdfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrICpzaywg c3RydWN0IG1zZ2hkciAqbXNnLA0KIAkJCXNpemVfdCBsZW4sIGludCBub2Jsb2NrLCBpbnQgZmxh Z3MsIGludCAqYWRkcl9sZW4pDQogew0KIAlzdHJ1Y3QgaW5ldF9zb2NrICppc2sgPSBpbmV0X3Nr KHNrKTsNCi0Jc3RydWN0IHNvY2thZGRyX2luICpzaW4gPSAoc3RydWN0IHNvY2thZGRyX2luICop bXNnLT5tc2dfbmFtZTsNCiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsNCiAJaW50IGNvcGllZCwgZXJy Ow0KIA0KQEAgLTYzMiwxMSArNjMxLDggQEAgc3RhdGljIGludCBwaW5nX3JlY3Ztc2coc3RydWN0 IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywNCiAJaWYg KGZsYWdzICYgTVNHX09PQikNCiAJCWdvdG8gb3V0Ow0KIA0KLQlpZiAoYWRkcl9sZW4pDQotCQkq YWRkcl9sZW4gPSBzaXplb2YoKnNpbik7DQotDQogCWlmIChmbGFncyAmIE1TR19FUlJRVUVVRSkN Ci0JCXJldHVybiBpcF9yZWN2X2Vycm9yKHNrLCBtc2csIGxlbik7DQorCQlyZXR1cm4gaXBfcmVj dl9lcnJvcihzaywgbXNnLCBsZW4sIGFkZHJfbGVuKTsNCiANCiAJc2tiID0gc2tiX3JlY3ZfZGF0 YWdyYW0oc2ssIGZsYWdzLCBub2Jsb2NrLCAmZXJyKTsNCiAJaWYgKCFza2IpDQpAQCAtNjU2LDEx ICs2NTIsMTQgQEAgc3RhdGljIGludCBwaW5nX3JlY3Ztc2coc3RydWN0IGtpb2NiICppb2NiLCBz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywNCiAJc29ja19yZWN2X3RpbWVzdGFt cChtc2csIHNrLCBza2IpOw0KIA0KIAkvKiBDb3B5IHRoZSBhZGRyZXNzLiAqLw0KLQlpZiAoc2lu KSB7DQorCWlmIChtc2ctPm1zZ19uYW1lKSB7DQorCQlzdHJ1Y3Qgc29ja2FkZHJfaW4gKnNpbiA9 IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKiltc2ctPm1zZ19uYW1lOw0KKw0KIAkJc2luLT5zaW5fZmFt aWx5ID0gQUZfSU5FVDsNCiAJCXNpbi0+c2luX3BvcnQgPSAwIC8qIHNrYi0+aC51aC0+c291cmNl ICovOw0KIAkJc2luLT5zaW5fYWRkci5zX2FkZHIgPSBpcF9oZHIoc2tiKS0+c2FkZHI7DQogCQlt ZW1zZXQoc2luLT5zaW5femVybywgMCwgc2l6ZW9mKHNpbi0+c2luX3plcm8pKTsNCisJCSphZGRy X2xlbiA9IHNpemVvZigqc2luKTsNCiAJfQ0KIAlpZiAoaXNrLT5jbXNnX2ZsYWdzKQ0KIAkJaXBf Y21zZ19yZWN2KG1zZywgc2tiKTsNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yYXcuYyBiL25ldC9p cHY0L3Jhdy5jDQppbmRleCAyODE1MDE0Li5jZmRlZDkzIDEwMDY0NA0KLS0tIGEvbmV0L2lwdjQv cmF3LmMNCisrKyBiL25ldC9pcHY0L3Jhdy5jDQpAQCAtNjg2LDExICs2ODYsOCBAQCBzdGF0aWMg aW50IHJhd19yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3QgbXNnaGRyICptc2csDQogCWlmIChmbGFncyAmIE1TR19PT0IpDQogCQlnb3RvIG91dDsNCiAN Ci0JaWYgKGFkZHJfbGVuKQ0KLQkJKmFkZHJfbGVuID0gc2l6ZW9mKCpzaW4pOw0KLQ0KIAlpZiAo ZmxhZ3MgJiBNU0dfRVJSUVVFVUUpIHsNCi0JCWVyciA9IGlwX3JlY3ZfZXJyb3Ioc2ssIG1zZywg bGVuKTsNCisJCWVyciA9IGlwX3JlY3ZfZXJyb3Ioc2ssIG1zZywgbGVuLCBhZGRyX2xlbik7DQog CQlnb3RvIG91dDsNCiAJfQ0KIA0KQEAgLTcxNiw2ICs3MTMsNyBAQCBzdGF0aWMgaW50IHJhd19y ZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRy ICptc2csDQogCQlzaW4tPnNpbl9hZGRyLnNfYWRkciA9IGlwX2hkcihza2IpLT5zYWRkcjsNCiAJ CXNpbi0+c2luX3BvcnQgPSAwOw0KIAkJbWVtc2V0KCZzaW4tPnNpbl96ZXJvLCAwLCBzaXplb2Yo c2luLT5zaW5femVybykpOw0KKwkJKmFkZHJfbGVuID0gc2l6ZW9mKCpzaW4pOw0KIAl9DQogCWlm IChpbmV0LT5jbXNnX2ZsYWdzKQ0KIAkJaXBfY21zZ19yZWN2KG1zZywgc2tiKTsNCmRpZmYgLS1n aXQgYS9uZXQvaXB2NC90Y3BfaXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYw0KaW5kZXggYTk3 YzlhZC4uOTJkNzEzOCAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L3RjcF9pcHY0LmMNCisrKyBiL25l dC9pcHY0L3RjcF9pcHY0LmMNCkBAIC0xODIsNyArMTgyLDcgQEAgaW50IHRjcF92NF9jb25uZWN0 KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQ0K IAlpZiAoSVNfRVJSKHJ0KSkgew0KIAkJZXJyID0gUFRSX0VSUihydCk7DQogCQlpZiAoZXJyID09 IC1FTkVUVU5SRUFDSCkNCi0JCQlJUF9JTkNfU1RBVFNfQkgoc29ja19uZXQoc2spLCBJUFNUQVRT X01JQl9PVVROT1JPVVRFUyk7DQorCQkJSVBfSU5DX1NUQVRTKHNvY2tfbmV0KHNrKSwgSVBTVEFU U19NSUJfT1VUTk9ST1VURVMpOw0KIAkJcmV0dXJuIGVycjsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBh L25ldC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMNCmluZGV4IDVkZWNjOTMuLjhjMmUyNTkg MTAwNjQ0DQotLS0gYS9uZXQvaXB2NC91ZHAuYw0KKysrIGIvbmV0L2lwdjQvdWRwLmMNCkBAIC05 MzcsNyArOTM3LDcgQEAgaW50IHVkcF9zZW5kbXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csDQogCQkJZXJyID0gUFRSX0VSUihydCk7DQog CQkJcnQgPSBOVUxMOw0KIAkJCWlmIChlcnIgPT0gLUVORVRVTlJFQUNIKQ0KLQkJCQlJUF9JTkNf U1RBVFNfQkgobmV0LCBJUFNUQVRTX01JQl9PVVROT1JPVVRFUyk7DQorCQkJCUlQX0lOQ19TVEFU UyhuZXQsIElQU1RBVFNfTUlCX09VVE5PUk9VVEVTKTsNCiAJCQlnb3RvIG91dDsNCiAJCX0NCiAN CkBAIC0xMDM2LDYgKzEwMzYsOSBAQCBpbnQgdWRwX3NlbmRwYWdlKHN0cnVjdCBzb2NrICpzaywg c3RydWN0IHBhZ2UgKnBhZ2UsIGludCBvZmZzZXQsDQogCXN0cnVjdCB1ZHBfc29jayAqdXAgPSB1 ZHBfc2soc2spOw0KIAlpbnQgcmV0Ow0KIA0KKwlpZiAoZmxhZ3MgJiBNU0dfU0VORFBBR0VfTk9U TEFTVCkNCisJCWZsYWdzIHw9IE1TR19NT1JFOw0KKw0KIAlpZiAoIXVwLT5wZW5kaW5nKSB7DQog CQlzdHJ1Y3QgbXNnaGRyIG1zZyA9IHsJLm1zZ19mbGFncyA9IGZsYWdzfE1TR19NT1JFIH07DQog DQpAQCAtMTE3MSwxNCArMTE3NCw4IEBAIGludCB1ZHBfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlv Y2IsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLA0KIAlpbnQgaXNfdWRwbGl0 ZSA9IElTX1VEUExJVEUoc2spOw0KIAlib29sIHNsb3c7DQogDQotCS8qDQotCSAqCUNoZWNrIGFu eSBwYXNzZWQgYWRkcmVzc2VzDQotCSAqLw0KLQlpZiAoYWRkcl9sZW4pDQotCQkqYWRkcl9sZW4g PSBzaXplb2YoKnNpbik7DQotDQogCWlmIChmbGFncyAmIE1TR19FUlJRVUVVRSkNCi0JCXJldHVy biBpcF9yZWN2X2Vycm9yKHNrLCBtc2csIGxlbik7DQorCQlyZXR1cm4gaXBfcmVjdl9lcnJvcihz aywgbXNnLCBsZW4sIGFkZHJfbGVuKTsNCiANCiB0cnlfYWdhaW46DQogCXNrYiA9IF9fc2tiX3Jl Y3ZfZGF0YWdyYW0oc2ssIGZsYWdzIHwgKG5vYmxvY2sgPyBNU0dfRE9OVFdBSVQgOiAwKSwNCkBA IC0xMjMxLDYgKzEyMjgsNyBAQCB0cnlfYWdhaW46DQogCQlzaW4tPnNpbl9wb3J0ID0gdWRwX2hk cihza2IpLT5zb3VyY2U7DQogCQlzaW4tPnNpbl9hZGRyLnNfYWRkciA9IGlwX2hkcihza2IpLT5z YWRkcjsNCiAJCW1lbXNldChzaW4tPnNpbl96ZXJvLCAwLCBzaXplb2Yoc2luLT5zaW5femVybykp Ow0KKwkJKmFkZHJfbGVuID0gc2l6ZW9mKCpzaW4pOw0KIAl9DQogCWlmIChpbmV0LT5jbXNnX2Zs YWdzKQ0KIAkJaXBfY21zZ19yZWN2KG1zZywgc2tiKTsNCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9k YXRhZ3JhbS5jIGIvbmV0L2lwdjYvZGF0YWdyYW0uYw0KaW5kZXggZTI0ODA2OS4uM2M3Yzk0OCAx MDA2NDQNCi0tLSBhL25ldC9pcHY2L2RhdGFncmFtLmMNCisrKyBiL25ldC9pcHY2L2RhdGFncmFt LmMNCkBAIC0zMTUsNyArMzE1LDcgQEAgdm9pZCBpcHY2X2xvY2FsX3J4cG10dShzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBmbG93aTYgKmZsNiwgdTMyIG10dSkNCiAvKg0KICAqCUhhbmRsZSBNU0df RVJSUVVFVUUNCiAgKi8NCi1pbnQgaXB2Nl9yZWN2X2Vycm9yKHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IG1zZ2hkciAqbXNnLCBpbnQgbGVuKQ0KK2ludCBpcHY2X3JlY3ZfZXJyb3Ioc3RydWN0IHNv Y2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIGludCBsZW4sIGludCAqYWRkcl9sZW4pDQogew0K IAlzdHJ1Y3QgaXB2Nl9waW5mbyAqbnAgPSBpbmV0Nl9zayhzayk7DQogCXN0cnVjdCBzb2NrX2V4 dGVycl9za2IgKnNlcnI7DQpAQCAtMzY2LDYgKzM2Niw3IEBAIGludCBpcHY2X3JlY3ZfZXJyb3Io c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIGludCBsZW4pDQogCQkJaXB2Nl9h ZGRyX3NldF92NG1hcHBlZCgqKF9fYmUzMiAqKShuaCArIHNlcnItPmFkZHJfb2Zmc2V0KSwNCiAJ CQkJCSAgICAgICAmc2luLT5zaW42X2FkZHIpOw0KIAkJfQ0KKwkJKmFkZHJfbGVuID0gc2l6ZW9m KCpzaW4pOw0KIAl9DQogDQogCW1lbWNweSgmZXJyaGRyLmVlLCAmc2Vyci0+ZWUsIHNpemVvZihz dHJ1Y3Qgc29ja19leHRlbmRlZF9lcnIpKTsNCkBAIC0zNzQsNiArMzc1LDcgQEAgaW50IGlwdjZf cmVjdl9lcnJvcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgaW50IGxlbikN CiAJaWYgKHNlcnItPmVlLmVlX29yaWdpbiAhPSBTT19FRV9PUklHSU5fTE9DQUwpIHsNCiAJCXNp bi0+c2luNl9mYW1pbHkgPSBBRl9JTkVUNjsNCiAJCXNpbi0+c2luNl9mbG93aW5mbyA9IDA7DQor CQlzaW4tPnNpbjZfcG9ydCA9IDA7DQogCQlzaW4tPnNpbjZfc2NvcGVfaWQgPSAwOw0KIAkJaWYg KHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVBWNikpIHsNCiAJCQlpcHY2X2FkZHJfY29w eSgmc2luLT5zaW42X2FkZHIsICZpcHY2X2hkcihza2IpLT5zYWRkcik7DQpAQCAtNDE4LDcgKzQy MCw4IEBAIG91dDoNCiAvKg0KICAqCUhhbmRsZSBJUFY2X1JFQ1ZQQVRITVRVDQogICovDQotaW50 IGlwdjZfcmVjdl9yeHBtdHUoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIGlu dCBsZW4pDQoraW50IGlwdjZfcmVjdl9yeHBtdHUoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNn aGRyICptc2csIGludCBsZW4sDQorCQkgICAgIGludCAqYWRkcl9sZW4pDQogew0KIAlzdHJ1Y3Qg aXB2Nl9waW5mbyAqbnAgPSBpbmV0Nl9zayhzayk7DQogCXN0cnVjdCBza19idWZmICpza2I7DQpA QCAtNDUyLDYgKzQ1NSw3IEBAIGludCBpcHY2X3JlY3ZfcnhwbXR1KHN0cnVjdCBzb2NrICpzaywg c3RydWN0IG1zZ2hkciAqbXNnLCBpbnQgbGVuKQ0KIAkJc2luLT5zaW42X3BvcnQgPSAwOw0KIAkJ c2luLT5zaW42X3Njb3BlX2lkID0gbXR1X2luZm8uaXA2bV9hZGRyLnNpbjZfc2NvcGVfaWQ7DQog CQlpcHY2X2FkZHJfY29weSgmc2luLT5zaW42X2FkZHIsICZtdHVfaW5mby5pcDZtX2FkZHIuc2lu Nl9hZGRyKTsNCisJCSphZGRyX2xlbiA9IHNpemVvZigqc2luKTsNCiAJfQ0KIA0KIAlwdXRfY21z Zyhtc2csIFNPTF9JUFY2LCBJUFY2X1BBVEhNVFUsIHNpemVvZihtdHVfaW5mbyksICZtdHVfaW5m byk7DQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X291dHB1dC5jIGIvbmV0L2lwdjYvaXA2X291 dHB1dC5jDQppbmRleCA5NzY3NWJmLi5kM2ZkZTdlIDEwMDY0NA0KLS0tIGEvbmV0L2lwdjYvaXA2 X291dHB1dC5jDQorKysgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMNCkBAIC0xNDQsOCArMTQ0LDgg QEAgc3RhdGljIGludCBpcDZfZmluaXNoX291dHB1dDIoc3RydWN0IHNrX2J1ZmYgKnNrYikNCiAJ CXJldHVybiByZXM7DQogCX0NCiAJcmN1X3JlYWRfdW5sb2NrKCk7DQotCUlQNl9JTkNfU1RBVFNf QkgoZGV2X25ldChkc3QtPmRldiksDQotCQkJIGlwNl9kc3RfaWRldihkc3QpLCBJUFNUQVRTX01J Ql9PVVROT1JPVVRFUyk7DQorCUlQNl9JTkNfU1RBVFMoZGV2X25ldChkc3QtPmRldiksDQorCQkg ICAgICBpcDZfZHN0X2lkZXYoZHN0KSwgSVBTVEFUU19NSUJfT1VUTk9ST1VURVMpOw0KIAlrZnJl ZV9za2Ioc2tiKTsNCiAJcmV0dXJuIC1FSU5WQUw7DQogfQ0KZGlmZiAtLWdpdCBhL25ldC9pcHY2 L3Jhdy5jIGIvbmV0L2lwdjYvcmF3LmMNCmluZGV4IDZlNmMyYzQuLjllY2JjODQgMTAwNjQ0DQot LS0gYS9uZXQvaXB2Ni9yYXcuYw0KKysrIGIvbmV0L2lwdjYvcmF3LmMNCkBAIC00NTYsMTQgKzQ1 NiwxMSBAQCBzdGF0aWMgaW50IHJhd3Y2X3JlY3Ztc2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1 Y3Qgc29jayAqc2ssDQogCWlmIChmbGFncyAmIE1TR19PT0IpDQogCQlyZXR1cm4gLUVPUE5PVFNV UFA7DQogDQotCWlmIChhZGRyX2xlbikNCi0JCSphZGRyX2xlbj1zaXplb2YoKnNpbjYpOw0KLQ0K IAlpZiAoZmxhZ3MgJiBNU0dfRVJSUVVFVUUpDQotCQlyZXR1cm4gaXB2Nl9yZWN2X2Vycm9yKHNr LCBtc2csIGxlbik7DQorCQlyZXR1cm4gaXB2Nl9yZWN2X2Vycm9yKHNrLCBtc2csIGxlbiwgYWRk cl9sZW4pOw0KIA0KIAlpZiAobnAtPnJ4cG10dSAmJiBucC0+cnhvcHQuYml0cy5yeHBtdHUpDQot CQlyZXR1cm4gaXB2Nl9yZWN2X3J4cG10dShzaywgbXNnLCBsZW4pOw0KKwkJcmV0dXJuIGlwdjZf cmVjdl9yeHBtdHUoc2ssIG1zZywgbGVuLCBhZGRyX2xlbik7DQogDQogCXNrYiA9IHNrYl9yZWN2 X2RhdGFncmFtKHNrLCBmbGFncywgbm9ibG9jaywgJmVycik7DQogCWlmICghc2tiKQ0KQEAgLTQ5 OCw2ICs0OTUsNyBAQCBzdGF0aWMgaW50IHJhd3Y2X3JlY3Ztc2coc3RydWN0IGtpb2NiICppb2Ni LCBzdHJ1Y3Qgc29jayAqc2ssDQogCQlzaW42LT5zaW42X3Njb3BlX2lkID0gMDsNCiAJCWlmIChp cHY2X2FkZHJfdHlwZSgmc2luNi0+c2luNl9hZGRyKSAmIElQVjZfQUREUl9MSU5LTE9DQUwpDQog CQkJc2luNi0+c2luNl9zY29wZV9pZCA9IElQNkNCKHNrYiktPmlpZjsNCisJCSphZGRyX2xlbiA9 IHNpemVvZigqc2luNik7DQogCX0NCiANCiAJc29ja19yZWN2X3RzX2FuZF9kcm9wcyhtc2csIHNr LCBza2IpOw0KZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5j DQppbmRleCBiYzkxMDNkLi4xNzY4MjM4IDEwMDY0NA0KLS0tIGEvbmV0L2lwdjYvcm91dGUuYw0K KysrIGIvbmV0L2lwdjYvcm91dGUuYw0KQEAgLTU5Miw4ICs1OTIsMTEgQEAgaW50IHJ0Nl9yb3V0 ZV9yY3Yoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTggKm9wdCwgaW50IGxlbiwNCiAJCXByZWZp eCA9ICZwcmVmaXhfYnVmOw0KIAl9DQogDQotCXJ0ID0gcnQ2X2dldF9yb3V0ZV9pbmZvKG5ldCwg cHJlZml4LCByaW5mby0+cHJlZml4X2xlbiwgZ3dhZGRyLA0KLQkJCQlkZXYtPmlmaW5kZXgpOw0K KwlpZiAocmluZm8tPnByZWZpeF9sZW4gPT0gMCkNCisJCXJ0ID0gcnQ2X2dldF9kZmx0X3JvdXRl cihnd2FkZHIsIGRldik7DQorCWVsc2UNCisJCXJ0ID0gcnQ2X2dldF9yb3V0ZV9pbmZvKG5ldCwg cHJlZml4LCByaW5mby0+cHJlZml4X2xlbiwNCisJCQkJCWd3YWRkciwgZGV2LT5pZmluZGV4KTsN CiANCiAJaWYgKHJ0ICYmICFsaWZldGltZSkgew0KIAkJaXA2X2RlbF9ydChydCk7DQpkaWZmIC0t Z2l0IGEvbmV0L2lwdjYvdWRwLmMgYi9uZXQvaXB2Ni91ZHAuYw0KaW5kZXggZjllNDk2Yi4uZjhi ZWMxZSAxMDA2NDQNCi0tLSBhL25ldC9pcHY2L3VkcC5jDQorKysgYi9uZXQvaXB2Ni91ZHAuYw0K QEAgLTM0NywxNCArMzQ3LDExIEBAIGludCB1ZHB2Nl9yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9j Yiwgc3RydWN0IHNvY2sgKnNrLA0KIAlpbnQgaXNfdWRwNDsNCiAJYm9vbCBzbG93Ow0KIA0KLQlp ZiAoYWRkcl9sZW4pDQotCQkqYWRkcl9sZW49c2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbjYpOw0K LQ0KIAlpZiAoZmxhZ3MgJiBNU0dfRVJSUVVFVUUpDQotCQlyZXR1cm4gaXB2Nl9yZWN2X2Vycm9y KHNrLCBtc2csIGxlbik7DQorCQlyZXR1cm4gaXB2Nl9yZWN2X2Vycm9yKHNrLCBtc2csIGxlbiwg YWRkcl9sZW4pOw0KIA0KIAlpZiAobnAtPnJ4cG10dSAmJiBucC0+cnhvcHQuYml0cy5yeHBtdHUp DQotCQlyZXR1cm4gaXB2Nl9yZWN2X3J4cG10dShzaywgbXNnLCBsZW4pOw0KKwkJcmV0dXJuIGlw djZfcmVjdl9yeHBtdHUoc2ssIG1zZywgbGVuLCBhZGRyX2xlbik7DQogDQogdHJ5X2FnYWluOg0K IAlza2IgPSBfX3NrYl9yZWN2X2RhdGFncmFtKHNrLCBmbGFncyB8IChub2Jsb2NrID8gTVNHX0RP TlRXQUlUIDogMCksDQpAQCAtNDIzLDcgKzQyMCw3IEBAIHRyeV9hZ2FpbjoNCiAJCQlpZiAoaXB2 Nl9hZGRyX3R5cGUoJnNpbjYtPnNpbjZfYWRkcikgJiBJUFY2X0FERFJfTElOS0xPQ0FMKQ0KIAkJ CQlzaW42LT5zaW42X3Njb3BlX2lkID0gSVA2Q0Ioc2tiKS0+aWlmOw0KIAkJfQ0KLQ0KKwkJKmFk ZHJfbGVuID0gc2l6ZW9mKCpzaW42KTsNCiAJfQ0KIAlpZiAoaXNfdWRwNCkgew0KIAkJaWYgKGlu ZXQtPmNtc2dfZmxhZ3MpDQpkaWZmIC0tZ2l0IGEvbmV0L2lweC9hZl9pcHguYyBiL25ldC9pcHgv YWZfaXB4LmMNCmluZGV4IDk2ODAyMjYuLjhjMDZhNTAgMTAwNjQ0DQotLS0gYS9uZXQvaXB4L2Fm X2lweC5jDQorKysgYi9uZXQvaXB4L2FmX2lweC5jDQpAQCAtMTgzNSw4ICsxODM1LDYgQEAgc3Rh dGljIGludCBpcHhfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNv Y2ssDQogCWlmIChza2ItPnRzdGFtcC50djY0KQ0KIAkJc2stPnNrX3N0YW1wID0gc2tiLT50c3Rh bXA7DQogDQotCW1zZy0+bXNnX25hbWVsZW4gPSBzaXplb2YoKnNpcHgpOw0KLQ0KIAlpZiAoc2lw eCkgew0KIAkJc2lweC0+c2lweF9mYW1pbHkJPSBBRl9JUFg7DQogCQlzaXB4LT5zaXB4X3BvcnQJ CT0gaXB4LT5pcHhfc291cmNlLnNvY2s7DQpAQCAtMTg0NCw2ICsxODQyLDcgQEAgc3RhdGljIGlu dCBpcHhfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQog CQlzaXB4LT5zaXB4X25ldHdvcmsJPSBJUFhfU0tCX0NCKHNrYiktPmlweF9zb3VyY2VfbmV0Ow0K IAkJc2lweC0+c2lweF90eXBlIAk9IGlweC0+aXB4X3R5cGU7DQogCQlzaXB4LT5zaXB4X3plcm8J CT0gMDsNCisJCW1zZy0+bXNnX25hbWVsZW4JPSBzaXplb2YoKnNpcHgpOw0KIAl9DQogCXJjID0g Y29waWVkOw0KIA0KZGlmZiAtLWdpdCBhL25ldC9pcmRhL2FmX2lyZGEuYyBiL25ldC9pcmRhL2Fm X2lyZGEuYw0KaW5kZXggOTE4MjFlOS4uZjVkMDExYSAxMDA2NDQNCi0tLSBhL25ldC9pcmRhL2Fm X2lyZGEuYw0KKysrIGIvbmV0L2lyZGEvYWZfaXJkYS5jDQpAQCAtMTM4Niw4ICsxMzg2LDYgQEAg c3RhdGljIGludCBpcmRhX3JlY3Ztc2dfZGdyYW0oc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qg c29ja2V0ICpzb2NrLA0KIA0KIAlJUkRBX0RFQlVHKDQsICIlcygpXG4iLCBfX2Z1bmNfXyk7DQog DQotCW1zZy0+bXNnX25hbWVsZW4gPSAwOw0KLQ0KIAlza2IgPSBza2JfcmVjdl9kYXRhZ3JhbShz aywgZmxhZ3MgJiB+TVNHX0RPTlRXQUlULA0KIAkJCQlmbGFncyAmIE1TR19ET05UV0FJVCwgJmVy cik7DQogCWlmICghc2tiKQ0KQEAgLTE0NTIsOCArMTQ1MCw2IEBAIHN0YXRpYyBpbnQgaXJkYV9y ZWN2bXNnX3N0cmVhbShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQog CXRhcmdldCA9IHNvY2tfcmN2bG93YXQoc2ssIGZsYWdzICYgTVNHX1dBSVRBTEwsIHNpemUpOw0K IAl0aW1lbyA9IHNvY2tfcmN2dGltZW8oc2ssIG5vYmxvY2spOw0KIA0KLQltc2ctPm1zZ19uYW1l bGVuID0gMDsNCi0NCiAJZG8gew0KIAkJaW50IGNodW5rOw0KIAkJc3RydWN0IHNrX2J1ZmYgKnNr YiA9IHNrYl9kZXF1ZXVlKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSk7DQpkaWZmIC0tZ2l0IGEvbmV0 L2l1Y3YvYWZfaXVjdi5jIGIvbmV0L2l1Y3YvYWZfaXVjdi5jDQppbmRleCBlODM2MTQwLi5jZjk4 ZDYyIDEwMDY0NA0KLS0tIGEvbmV0L2l1Y3YvYWZfaXVjdi5jDQorKysgYi9uZXQvaXVjdi9hZl9p dWN2LmMNCkBAIC0xMzU2LDggKzEzNTYsNiBAQCBzdGF0aWMgaW50IGl1Y3Zfc29ja19yZWN2bXNn KHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywNCiAJaW50IGJsZW47DQog CWludCBlcnIgPSAwOw0KIA0KLQltc2ctPm1zZ19uYW1lbGVuID0gMDsNCi0NCiAJaWYgKChzay0+ c2tfc3RhdGUgPT0gSVVDVl9ESVNDT05OIHx8IHNrLT5za19zdGF0ZSA9PSBJVUNWX1NFVkVSRUQp ICYmDQogCSAgICBza2JfcXVldWVfZW1wdHkoJml1Y3YtPmJhY2tsb2dfc2tiX3EpICYmDQogCSAg ICBza2JfcXVldWVfZW1wdHkoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSAmJg0KZGlmZiAtLWdpdCBh L25ldC9rZXkvYWZfa2V5LmMgYi9uZXQva2V5L2FmX2tleS5jDQppbmRleCA4ZGJkYjhlLi5kYzhk N2VmIDEwMDY0NA0KLS0tIGEvbmV0L2tleS9hZl9rZXkuYw0KKysrIGIvbmV0L2tleS9hZl9rZXku Yw0KQEAgLTM1OTUsNyArMzU5NSw2IEBAIHN0YXRpYyBpbnQgcGZrZXlfcmVjdm1zZyhzdHJ1Y3Qg a2lvY2IgKmtpb2NiLA0KIAlpZiAoZmxhZ3MgJiB+KE1TR19QRUVLfE1TR19ET05UV0FJVHxNU0df VFJVTkN8TVNHX0NNU0dfQ09NUEFUKSkNCiAJCWdvdG8gb3V0Ow0KIA0KLQltc2ctPm1zZ19uYW1l bGVuID0gMDsNCiAJc2tiID0gc2tiX3JlY3ZfZGF0YWdyYW0oc2ssIGZsYWdzLCBmbGFncyAmIE1T R19ET05UV0FJVCwgJmVycik7DQogCWlmIChza2IgPT0gTlVMTCkNCiAJCWdvdG8gb3V0Ow0KZGlm ZiAtLWdpdCBhL25ldC9sMnRwL2wydHBfaXAuYyBiL25ldC9sMnRwL2wydHBfaXAuYw0KaW5kZXgg NmM3ZTYwOS4uMzM0YTkzZCAxMDA2NDQNCi0tLSBhL25ldC9sMnRwL2wydHBfaXAuYw0KKysrIGIv bmV0L2wydHAvbDJ0cF9pcC5jDQpAQCAtNTY4LDkgKzU2OCw2IEBAIHN0YXRpYyBpbnQgbDJ0cF9p cF9yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNn aGRyICptDQogCWlmIChmbGFncyAmIE1TR19PT0IpDQogCQlnb3RvIG91dDsNCiANCi0JaWYgKGFk ZHJfbGVuKQ0KLQkJKmFkZHJfbGVuID0gc2l6ZW9mKCpzaW4pOw0KLQ0KIAlza2IgPSBza2JfcmVj dl9kYXRhZ3JhbShzaywgZmxhZ3MsIG5vYmxvY2ssICZlcnIpOw0KIAlpZiAoIXNrYikNCiAJCWdv dG8gb3V0Ow0KQEAgLTU5Myw2ICs1OTAsNyBAQCBzdGF0aWMgaW50IGwydHBfaXBfcmVjdm1zZyhz dHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbQ0KIAkJ c2luLT5zaW5fYWRkci5zX2FkZHIgPSBpcF9oZHIoc2tiKS0+c2FkZHI7DQogCQlzaW4tPnNpbl9w b3J0ID0gMDsNCiAJCW1lbXNldCgmc2luLT5zaW5femVybywgMCwgc2l6ZW9mKHNpbi0+c2luX3pl cm8pKTsNCisJCSphZGRyX2xlbiA9IHNpemVvZigqc2luKTsNCiAJfQ0KIAlpZiAoaW5ldC0+Y21z Z19mbGFncykNCiAJCWlwX2Ntc2dfcmVjdihtc2csIHNrYik7DQpkaWZmIC0tZ2l0IGEvbmV0L2wy dHAvbDJ0cF9wcHAuYyBiL25ldC9sMnRwL2wydHBfcHBwLmMNCmluZGV4IDg1NzAwNzkuLjk2OWNk M2UgMTAwNjQ0DQotLS0gYS9uZXQvbDJ0cC9sMnRwX3BwcC5jDQorKysgYi9uZXQvbDJ0cC9sMnRw X3BwcC5jDQpAQCAtMjAwLDggKzIwMCw2IEBAIHN0YXRpYyBpbnQgcHBwb2wydHBfcmVjdm1zZyhz dHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCWlmIChzay0+c2tfc3Rh dGUgJiBQUFBPWF9CT1VORCkNCiAJCWdvdG8gZW5kOw0KIA0KLQltc2ctPm1zZ19uYW1lbGVuID0g MDsNCi0NCiAJZXJyID0gMDsNCiAJc2tiID0gc2tiX3JlY3ZfZGF0YWdyYW0oc2ssIGZsYWdzICYg fk1TR19ET05UV0FJVCwNCiAJCQkJZmxhZ3MgJiBNU0dfRE9OVFdBSVQsICZlcnIpOw0KZGlmZiAt LWdpdCBhL25ldC9sbGMvYWZfbGxjLmMgYi9uZXQvbGxjL2FmX2xsYy5jDQppbmRleCBlNTU2NWM3 Li45OWE2MGQ1IDEwMDY0NA0KLS0tIGEvbmV0L2xsYy9hZl9sbGMuYw0KKysrIGIvbmV0L2xsYy9h Zl9sbGMuYw0KQEAgLTcyMCw4ICs3MjAsNiBAQCBzdGF0aWMgaW50IGxsY191aV9yZWN2bXNnKHN0 cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywNCiAJaW50IHRhcmdldDsJLyog UmVhZCBhdCBsZWFzdCB0aGlzIG1hbnkgYnl0ZXMgKi8NCiAJbG9uZyB0aW1lbzsNCiANCi0JbXNn LT5tc2dfbmFtZWxlbiA9IDA7DQotDQogCWxvY2tfc29jayhzayk7DQogCWNvcGllZCA9IC1FTk9U Q09OTjsNCiAJaWYgKHVubGlrZWx5KHNrLT5za190eXBlID09IFNPQ0tfU1RSRUFNICYmIHNrLT5z a19zdGF0ZSA9PSBUQ1BfTElTVEVOKSkNCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvcnguYyBi L25ldC9tYWM4MDIxMS9yeC5jDQppbmRleCBkYjAxZDAyLi43MWQ4NTY0IDEwMDY0NA0KLS0tIGEv bmV0L21hYzgwMjExL3J4LmMNCisrKyBiL25ldC9tYWM4MDIxMS9yeC5jDQpAQCAtNzY0LDcgKzc2 NCw4IEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9yeF9yZW9yZGVyX2FtcGR1KHN0cnVjdCBpZWVl ODAyMTFfcnhfZGF0YSAqcngpDQogCXUxNiBzYzsNCiAJaW50IHRpZDsNCiANCi0JaWYgKCFpZWVl ODAyMTFfaXNfZGF0YV9xb3MoaGRyLT5mcmFtZV9jb250cm9sKSkNCisJaWYgKCFpZWVlODAyMTFf aXNfZGF0YV9xb3MoaGRyLT5mcmFtZV9jb250cm9sKSB8fA0KKwkgICAgaXNfbXVsdGljYXN0X2V0 aGVyX2FkZHIoaGRyLT5hZGRyMSkpDQogCQlnb3RvIGRvbnRfcmVvcmRlcjsNCiANCiAJLyoNCmRp ZmYgLS1naXQgYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgYi9uZXQvbmV0bGluay9hZl9uZXRs aW5rLmMNCmluZGV4IDNkMWQ1NWQuLjIzNjllOTYgMTAwNjQ0DQotLS0gYS9uZXQvbmV0bGluay9h Zl9uZXRsaW5rLmMNCisrKyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYw0KQEAgLTE0NDUsOCAr MTQ0NSw2IEBAIHN0YXRpYyBpbnQgbmV0bGlua19yZWN2bXNnKHN0cnVjdCBraW9jYiAqa2lvY2Is IHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCX0NCiAjZW5kaWYNCiANCi0JbXNnLT5tc2dfbmFtZWxl biA9IDA7DQotDQogCWNvcGllZCA9IGRhdGFfc2tiLT5sZW47DQogCWlmIChsZW4gPCBjb3BpZWQp IHsNCiAJCW1zZy0+bXNnX2ZsYWdzIHw9IE1TR19UUlVOQzsNCmRpZmYgLS1naXQgYS9uZXQvbmV0 cm9tL2FmX25ldHJvbS5jIGIvbmV0L25ldHJvbS9hZl9uZXRyb20uYw0KaW5kZXggM2RmN2M1YS4u YjRkODg5YiAxMDA2NDQNCi0tLSBhL25ldC9uZXRyb20vYWZfbmV0cm9tLmMNCisrKyBiL25ldC9u ZXRyb20vYWZfbmV0cm9tLmMNCkBAIC0xMTgyLDEwICsxMTgyLDkgQEAgc3RhdGljIGludCBucl9y ZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywNCiAJCXNheC0+ c2F4MjVfZmFtaWx5ID0gQUZfTkVUUk9NOw0KIAkJc2tiX2NvcHlfZnJvbV9saW5lYXJfZGF0YV9v ZmZzZXQoc2tiLCA3LCBzYXgtPnNheDI1X2NhbGwuYXgyNV9jYWxsLA0KIAkJCSAgICAgIEFYMjVf QUREUl9MRU4pOw0KKwkJbXNnLT5tc2dfbmFtZWxlbiA9IHNpemVvZigqc2F4KTsNCiAJfQ0KIA0K LQltc2ctPm1zZ19uYW1lbGVuID0gc2l6ZW9mKCpzYXgpOw0KLQ0KIAlza2JfZnJlZV9kYXRhZ3Jh bShzaywgc2tiKTsNCiANCiAJcmVsZWFzZV9zb2NrKHNrKTsNCmRpZmYgLS1naXQgYS9uZXQvbmZj L3Jhd3NvY2suYyBiL25ldC9uZmMvcmF3c29jay5jDQppbmRleCA3YTE2N2ZjLi4wZDU3MGQzIDEw MDY0NA0KLS0tIGEvbmV0L25mYy9yYXdzb2NrLmMNCisrKyBiL25ldC9uZmMvcmF3c29jay5jDQpA QCAtMjQ4LDggKzI0OCw2IEBAIHN0YXRpYyBpbnQgcmF3c29ja19yZWN2bXNnKHN0cnVjdCBraW9j YiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywNCiAJaWYgKCFza2IpDQogCQlyZXR1cm4gcmM7 DQogDQotCW1zZy0+bXNnX25hbWVsZW4gPSAwOw0KLQ0KIAljb3BpZWQgPSBza2ItPmxlbjsNCiAJ aWYgKGxlbiA8IGNvcGllZCkgew0KIAkJbXNnLT5tc2dfZmxhZ3MgfD0gTVNHX1RSVU5DOw0KZGlm ZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5j DQppbmRleCBhMmFjMmMzLi40ZjE5YmYyIDEwMDY0NA0KLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNr ZXQuYw0KKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYw0KQEAgLTI5NSw2ICsyOTUsNyBAQCBz dHJ1Y3QgcGFja2V0X3NvY2sgew0KIAl1bnNpZ25lZCBpbnQJCXRwX3Jlc2VydmU7DQogCXVuc2ln bmVkIGludAkJdHBfbG9zczoxOw0KIAl1bnNpZ25lZCBpbnQJCXRwX3RzdGFtcDsNCisJc3RydWN0 IG5ldF9kZXZpY2UgX19yY3UJKmNhY2hlZF9kZXY7DQogCXN0cnVjdCBwYWNrZXRfdHlwZQlwcm90 X2hvb2sgX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDsNCiB9Ow0KIA0KQEAgLTM1MCwxMSAr MzUxLDE1IEBAIHN0YXRpYyB2b2lkIF9fZmFub3V0X2xpbmsoc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3QgcGFja2V0X3NvY2sgKnBvKTsNCiBzdGF0aWMgdm9pZCByZWdpc3Rlcl9wcm90X2hvb2soc3Ry dWN0IHNvY2sgKnNrKQ0KIHsNCiAJc3RydWN0IHBhY2tldF9zb2NrICpwbyA9IHBrdF9zayhzayk7 DQorDQogCWlmICghcG8tPnJ1bm5pbmcpIHsNCi0JCWlmIChwby0+ZmFub3V0KQ0KKwkJaWYgKHBv LT5mYW5vdXQpIHsNCiAJCQlfX2Zhbm91dF9saW5rKHNrLCBwbyk7DQotCQllbHNlDQorCQl9IGVs c2Ugew0KIAkJCWRldl9hZGRfcGFjaygmcG8tPnByb3RfaG9vayk7DQorCQkJcmN1X2Fzc2lnbl9w b2ludGVyKHBvLT5jYWNoZWRfZGV2LCBwby0+cHJvdF9ob29rLmRldik7DQorCQl9DQorDQogCQlz b2NrX2hvbGQoc2spOw0KIAkJcG8tPnJ1bm5pbmcgPSAxOw0KIAl9DQpAQCAtMzcyLDEwICszNzcs MTMgQEAgc3RhdGljIHZvaWQgX191bnJlZ2lzdGVyX3Byb3RfaG9vayhzdHJ1Y3Qgc29jayAqc2ss IGJvb2wgc3luYykNCiAJc3RydWN0IHBhY2tldF9zb2NrICpwbyA9IHBrdF9zayhzayk7DQogDQog CXBvLT5ydW5uaW5nID0gMDsNCi0JaWYgKHBvLT5mYW5vdXQpDQorCWlmIChwby0+ZmFub3V0KSB7 DQogCQlfX2Zhbm91dF91bmxpbmsoc2ssIHBvKTsNCi0JZWxzZQ0KKwl9IGVsc2Ugew0KIAkJX19k ZXZfcmVtb3ZlX3BhY2soJnBvLT5wcm90X2hvb2spOw0KKwkJUkNVX0lOSVRfUE9JTlRFUihwby0+ Y2FjaGVkX2RldiwgTlVMTCk7DQorCX0NCisNCiAJX19zb2NrX3B1dChzayk7DQogDQogCWlmIChz eW5jKSB7DQpAQCAtNDk3LDkgKzUwNSw5IEBAIHN0YXRpYyB2b2lkIHByYl9zaHV0ZG93bl9yZXRp cmVfYmxrX3RpbWVyKHN0cnVjdCBwYWNrZXRfc29jayAqcG8sDQogDQogCXBrYyA9IHR4X3Jpbmcg PyAmcG8tPnR4X3JpbmcucHJiX2JkcWMgOiAmcG8tPnJ4X3JpbmcucHJiX2JkcWM7DQogDQotCXNw aW5fbG9jaygmcmJfcXVldWUtPmxvY2spOw0KKwlzcGluX2xvY2tfYmgoJnJiX3F1ZXVlLT5sb2Nr KTsNCiAJcGtjLT5kZWxldGVfYmxrX3RpbWVyID0gMTsNCi0Jc3Bpbl91bmxvY2soJnJiX3F1ZXVl LT5sb2NrKTsNCisJc3Bpbl91bmxvY2tfYmgoJnJiX3F1ZXVlLT5sb2NrKTsNCiANCiAJcHJiX2Rl bF9yZXRpcmVfYmxrX3RpbWVyKHBrYyk7DQogfQ0KQEAgLTIwMzIsMTIgKzIwNDAsMjQgQEAgc3Rh dGljIGludCB0cGFja2V0X2ZpbGxfc2tiKHN0cnVjdCBwYWNrZXRfc29jayAqcG8sIHN0cnVjdCBz a19idWZmICpza2IsDQogCXJldHVybiB0cF9sZW47DQogfQ0KIA0KK3N0YXRpYyBzdHJ1Y3QgbmV0 X2RldmljZSAqcGFja2V0X2NhY2hlZF9kZXZfZ2V0KHN0cnVjdCBwYWNrZXRfc29jayAqcG8pDQor ew0KKwlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2Ow0KKw0KKwlyY3VfcmVhZF9sb2NrKCk7DQorCWRl diA9IHJjdV9kZXJlZmVyZW5jZShwby0+Y2FjaGVkX2Rldik7DQorCWlmIChkZXYpDQorCQlkZXZf aG9sZChkZXYpOw0KKwlyY3VfcmVhZF91bmxvY2soKTsNCisNCisJcmV0dXJuIGRldjsNCit9DQor DQogc3RhdGljIGludCB0cGFja2V0X3NuZChzdHJ1Y3QgcGFja2V0X3NvY2sgKnBvLCBzdHJ1Y3Qg bXNnaGRyICptc2cpDQogew0KIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KIAlzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2Ow0KIAlfX2JlMTYgcHJvdG87DQotCWJvb2wgbmVlZF9ybHNfZGV2ID0gZmFsc2U7 DQogCWludCBlcnIsIHJlc2VydmUgPSAwOw0KIAl2b2lkICpwaDsNCiAJc3RydWN0IHNvY2thZGRy X2xsICpzYWRkciA9IChzdHJ1Y3Qgc29ja2FkZHJfbGwgKiltc2ctPm1zZ19uYW1lOw0KQEAgLTIw NTAsNyArMjA3MCw3IEBAIHN0YXRpYyBpbnQgdHBhY2tldF9zbmQoc3RydWN0IHBhY2tldF9zb2Nr ICpwbywgc3RydWN0IG1zZ2hkciAqbXNnKQ0KIA0KIAllcnIgPSAtRUJVU1k7DQogCWlmIChzYWRk ciA9PSBOVUxMKSB7DQotCQlkZXYgPSBwby0+cHJvdF9ob29rLmRldjsNCisJCWRldgk9IHBhY2tl dF9jYWNoZWRfZGV2X2dldChwbyk7DQogCQlwcm90bwk9IHBvLT5udW07DQogCQlhZGRyCT0gTlVM TDsNCiAJfSBlbHNlIHsNCkBAIC0yMDY0LDE5ICsyMDg0LDE3IEBAIHN0YXRpYyBpbnQgdHBhY2tl dF9zbmQoc3RydWN0IHBhY2tldF9zb2NrICpwbywgc3RydWN0IG1zZ2hkciAqbXNnKQ0KIAkJcHJv dG8JPSBzYWRkci0+c2xsX3Byb3RvY29sOw0KIAkJYWRkcgk9IHNhZGRyLT5zbGxfYWRkcjsNCiAJ CWRldiA9IGRldl9nZXRfYnlfaW5kZXgoc29ja19uZXQoJnBvLT5zayksIHNhZGRyLT5zbGxfaWZp bmRleCk7DQotCQluZWVkX3Jsc19kZXYgPSB0cnVlOw0KIAl9DQogDQogCWVyciA9IC1FTlhJTzsN CiAJaWYgKHVubGlrZWx5KGRldiA9PSBOVUxMKSkNCiAJCWdvdG8gb3V0Ow0KLQ0KLQlyZXNlcnZl ID0gZGV2LT5oYXJkX2hlYWRlcl9sZW47DQotDQogCWVyciA9IC1FTkVURE9XTjsNCiAJaWYgKHVu bGlrZWx5KCEoZGV2LT5mbGFncyAmIElGRl9VUCkpKQ0KIAkJZ290byBvdXRfcHV0Ow0KIA0KKwly ZXNlcnZlID0gZGV2LT5oYXJkX2hlYWRlcl9sZW47DQorDQogCXNpemVfbWF4ID0gcG8tPnR4X3Jp bmcuZnJhbWVfc2l6ZQ0KIAkJLSAocG8tPnRwX2hkcmxlbiAtIHNpemVvZihzdHJ1Y3Qgc29ja2Fk ZHJfbGwpKTsNCiANCkBAIC0yMTUyLDggKzIxNzAsNyBAQCBvdXRfc3RhdHVzOg0KIAlfX3BhY2tl dF9zZXRfc3RhdHVzKHBvLCBwaCwgc3RhdHVzKTsNCiAJa2ZyZWVfc2tiKHNrYik7DQogb3V0X3B1 dDoNCi0JaWYgKG5lZWRfcmxzX2RldikNCi0JCWRldl9wdXQoZGV2KTsNCisJZGV2X3B1dChkZXYp Ow0KIG91dDoNCiAJbXV0ZXhfdW5sb2NrKCZwby0+cGdfdmVjX2xvY2spOw0KIAlyZXR1cm4gZXJy Ow0KQEAgLTIxOTEsNyArMjIwOCw2IEBAIHN0YXRpYyBpbnQgcGFja2V0X3NuZChzdHJ1Y3Qgc29j a2V0ICpzb2NrLA0KIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KIAlzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2Ow0KIAlfX2JlMTYgcHJvdG87DQotCWJvb2wgbmVlZF9ybHNfZGV2ID0gZmFsc2U7DQogCXVu c2lnbmVkIGNoYXIgKmFkZHI7DQogCWludCBlcnIsIHJlc2VydmUgPSAwOw0KIAlzdHJ1Y3Qgdmly dGlvX25ldF9oZHIgdm5ldF9oZHIgPSB7IDAgfTsNCkBAIC0yMjA1LDcgKzIyMjEsNyBAQCBzdGF0 aWMgaW50IHBhY2tldF9zbmQoc3RydWN0IHNvY2tldCAqc29jaywNCiAJICovDQogDQogCWlmIChz YWRkciA9PSBOVUxMKSB7DQotCQlkZXYgPSBwby0+cHJvdF9ob29rLmRldjsNCisJCWRldgk9IHBh Y2tldF9jYWNoZWRfZGV2X2dldChwbyk7DQogCQlwcm90bwk9IHBvLT5udW07DQogCQlhZGRyCT0g TlVMTDsNCiAJfSBlbHNlIHsNCkBAIC0yMjE3LDE5ICsyMjMzLDE3IEBAIHN0YXRpYyBpbnQgcGFj a2V0X3NuZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLA0KIAkJcHJvdG8JPSBzYWRkci0+c2xsX3Byb3Rv Y29sOw0KIAkJYWRkcgk9IHNhZGRyLT5zbGxfYWRkcjsNCiAJCWRldiA9IGRldl9nZXRfYnlfaW5k ZXgoc29ja19uZXQoc2spLCBzYWRkci0+c2xsX2lmaW5kZXgpOw0KLQkJbmVlZF9ybHNfZGV2ID0g dHJ1ZTsNCiAJfQ0KIA0KIAllcnIgPSAtRU5YSU87DQotCWlmIChkZXYgPT0gTlVMTCkNCisJaWYg KHVubGlrZWx5KGRldiA9PSBOVUxMKSkNCiAJCWdvdG8gb3V0X3VubG9jazsNCi0JaWYgKHNvY2st PnR5cGUgPT0gU09DS19SQVcpDQotCQlyZXNlcnZlID0gZGV2LT5oYXJkX2hlYWRlcl9sZW47DQot DQogCWVyciA9IC1FTkVURE9XTjsNCi0JaWYgKCEoZGV2LT5mbGFncyAmIElGRl9VUCkpDQorCWlm ICh1bmxpa2VseSghKGRldi0+ZmxhZ3MgJiBJRkZfVVApKSkNCiAJCWdvdG8gb3V0X3VubG9jazsN CiANCisJaWYgKHNvY2stPnR5cGUgPT0gU09DS19SQVcpDQorCQlyZXNlcnZlID0gZGV2LT5oYXJk X2hlYWRlcl9sZW47DQogCWlmIChwby0+aGFzX3ZuZXRfaGRyKSB7DQogCQl2bmV0X2hkcl9sZW4g PSBzaXplb2Yodm5ldF9oZHIpOw0KIA0KQEAgLTIzNTAsMTUgKzIzNjQsMTQgQEAgc3RhdGljIGlu dCBwYWNrZXRfc25kKHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCWlmIChlcnIgPiAwICYmIChlcnIg PSBuZXRfeG1pdF9lcnJubyhlcnIpKSAhPSAwKQ0KIAkJZ290byBvdXRfdW5sb2NrOw0KIA0KLQlp ZiAobmVlZF9ybHNfZGV2KQ0KLQkJZGV2X3B1dChkZXYpOw0KKwlkZXZfcHV0KGRldik7DQogDQog CXJldHVybiBsZW47DQogDQogb3V0X2ZyZWU6DQogCWtmcmVlX3NrYihza2IpOw0KIG91dF91bmxv Y2s6DQotCWlmIChkZXYgJiYgbmVlZF9ybHNfZGV2KQ0KKwlpZiAoZGV2KQ0KIAkJZGV2X3B1dChk ZXYpOw0KIG91dDoNCiAJcmV0dXJuIGVycjsNCkBAIC0yNTc1LDYgKzI1ODgsNyBAQCBzdGF0aWMg aW50IHBhY2tldF9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBp bnQgcHJvdG9jb2wsDQogCXBvID0gcGt0X3NrKHNrKTsNCiAJc2stPnNrX2ZhbWlseSA9IFBGX1BB Q0tFVDsNCiAJcG8tPm51bSA9IHByb3RvOw0KKwlSQ1VfSU5JVF9QT0lOVEVSKHBvLT5jYWNoZWRf ZGV2LCBOVUxMKTsNCiANCiAJc2stPnNrX2Rlc3RydWN0ID0gcGFja2V0X3NvY2tfZGVzdHJ1Y3Q7 DQogCXNrX3JlZmNudF9kZWJ1Z19pbmMoc2spOw0KQEAgLTI2NjMsNyArMjY3Nyw2IEBAIHN0YXRp YyBpbnQgcGFja2V0X3JlY3Ztc2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpz b2NrLA0KIAlzdHJ1Y3Qgc29jayAqc2sgPSBzb2NrLT5zazsNCiAJc3RydWN0IHNrX2J1ZmYgKnNr YjsNCiAJaW50IGNvcGllZCwgZXJyOw0KLQlzdHJ1Y3Qgc29ja2FkZHJfbGwgKnNsbDsNCiAJaW50 IHZuZXRfaGRyX2xlbiA9IDA7DQogDQogCWVyciA9IC1FSU5WQUw7DQpAQCAtMjc0NiwyMiArMjc1 OSwxMCBAQCBzdGF0aWMgaW50IHBhY2tldF9yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3Ry dWN0IHNvY2tldCAqc29jaywNCiAJCQlnb3RvIG91dF9mcmVlOw0KIAl9DQogDQotCS8qDQotCSAq CUlmIHRoZSBhZGRyZXNzIGxlbmd0aCBmaWVsZCBpcyB0aGVyZSB0byBiZSBmaWxsZWQgaW4sIHdl IGZpbGwNCi0JICoJaXQgaW4gbm93Lg0KKwkvKiBZb3UgbG9zZSBhbnkgZGF0YSBiZXlvbmQgdGhl IGJ1ZmZlciB5b3UgZ2F2ZS4gSWYgaXQgd29ycmllcw0KKwkgKiBhIHVzZXIgcHJvZ3JhbSB0aGV5 IGNhbiBhc2sgdGhlIGRldmljZSBmb3IgaXRzIE1UVQ0KKwkgKiBhbnl3YXkuDQogCSAqLw0KLQ0K LQlzbGwgPSAmUEFDS0VUX1NLQl9DQihza2IpLT5zYS5sbDsNCi0JaWYgKHNvY2stPnR5cGUgPT0g U09DS19QQUNLRVQpDQotCQltc2ctPm1zZ19uYW1lbGVuID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRk cl9wa3QpOw0KLQllbHNlDQotCQltc2ctPm1zZ19uYW1lbGVuID0gc2xsLT5zbGxfaGFsZW4gKyBv ZmZzZXRvZihzdHJ1Y3Qgc29ja2FkZHJfbGwsIHNsbF9hZGRyKTsNCi0NCi0JLyoNCi0JICoJWW91 IGxvc2UgYW55IGRhdGEgYmV5b25kIHRoZSBidWZmZXIgeW91IGdhdmUuIElmIGl0IHdvcnJpZXMg YQ0KLQkgKgl1c2VyIHByb2dyYW0gdGhleSBjYW4gYXNrIHRoZSBkZXZpY2UgZm9yIGl0cyBNVFUg YW55d2F5Lg0KLQkgKi8NCi0NCiAJY29waWVkID0gc2tiLT5sZW47DQogCWlmIChjb3BpZWQgPiBs ZW4pIHsNCiAJCWNvcGllZCA9IGxlbjsNCkBAIC0yNzc0LDkgKzI3NzUsMjAgQEAgc3RhdGljIGlu dCBwYWNrZXRfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ss DQogDQogCXNvY2tfcmVjdl90c19hbmRfZHJvcHMobXNnLCBzaywgc2tiKTsNCiANCi0JaWYgKG1z Zy0+bXNnX25hbWUpDQorCWlmIChtc2ctPm1zZ19uYW1lKSB7DQorCQkvKiBJZiB0aGUgYWRkcmVz cyBsZW5ndGggZmllbGQgaXMgdGhlcmUgdG8gYmUgZmlsbGVkDQorCQkgKiBpbiwgd2UgZmlsbCBp dCBpbiBub3cuDQorCQkgKi8NCisJCWlmIChzb2NrLT50eXBlID09IFNPQ0tfUEFDS0VUKSB7DQor CQkJbXNnLT5tc2dfbmFtZWxlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfcGt0KTsNCisJCX0g ZWxzZSB7DQorCQkJc3RydWN0IHNvY2thZGRyX2xsICpzbGwgPSAmUEFDS0VUX1NLQl9DQihza2Ip LT5zYS5sbDsNCisJCQltc2ctPm1zZ19uYW1lbGVuID0gc2xsLT5zbGxfaGFsZW4gKw0KKwkJCQlv ZmZzZXRvZihzdHJ1Y3Qgc29ja2FkZHJfbGwsIHNsbF9hZGRyKTsNCisJCX0NCiAJCW1lbWNweSht c2ctPm1zZ19uYW1lLCAmUEFDS0VUX1NLQl9DQihza2IpLT5zYSwNCiAJCSAgICAgICBtc2ctPm1z Z19uYW1lbGVuKTsNCisJfQ0KIA0KIAlpZiAocGt0X3NrKHNrKS0+YXV4ZGF0YSkgew0KIAkJc3Ry dWN0IHRwYWNrZXRfYXV4ZGF0YSBhdXg7DQpkaWZmIC0tZ2l0IGEvbmV0L3Bob25ldC9kYXRhZ3Jh bS5jIGIvbmV0L3Bob25ldC9kYXRhZ3JhbS5jDQppbmRleCBiZjM1YjRlLi5iMjVmMmQzIDEwMDY0 NA0KLS0tIGEvbmV0L3Bob25ldC9kYXRhZ3JhbS5jDQorKysgYi9uZXQvcGhvbmV0L2RhdGFncmFt LmMNCkBAIC0xMzksOSArMTM5LDYgQEAgc3RhdGljIGludCBwbl9yZWN2bXNnKHN0cnVjdCBraW9j YiAqaW9jYiwgc3RydWN0IHNvY2sgKnNrLA0KIAkJCU1TR19DTVNHX0NPTVBBVCkpDQogCQlnb3Rv IG91dF9ub2ZyZWU7DQogDQotCWlmIChhZGRyX2xlbikNCi0JCSphZGRyX2xlbiA9IHNpemVvZihz YSk7DQotDQogCXNrYiA9IHNrYl9yZWN2X2RhdGFncmFtKHNrLCBmbGFncywgbm9ibG9jaywgJnJ2 YWwpOw0KIAlpZiAoc2tiID09IE5VTEwpDQogCQlnb3RvIG91dF9ub2ZyZWU7DQpAQCAtMTYyLDgg KzE1OSwxMCBAQCBzdGF0aWMgaW50IHBuX3JlY3Ztc2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1 Y3Qgc29jayAqc2ssDQogDQogCXJ2YWwgPSAoZmxhZ3MgJiBNU0dfVFJVTkMpID8gc2tiLT5sZW4g OiBjb3B5bGVuOw0KIA0KLQlpZiAobXNnLT5tc2dfbmFtZSAhPSBOVUxMKQ0KLQkJbWVtY3B5KG1z Zy0+bXNnX25hbWUsICZzYSwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9wbikpOw0KKwlpZiAobXNn LT5tc2dfbmFtZSAhPSBOVUxMKSB7DQorCQltZW1jcHkobXNnLT5tc2dfbmFtZSwgJnNhLCBzaXpl b2Yoc2EpKTsNCisJCSphZGRyX2xlbiA9IHNpemVvZihzYSk7DQorCX0NCiANCiBvdXQ6DQogCXNr Yl9mcmVlX2RhdGFncmFtKHNrLCBza2IpOw0KZGlmZiAtLWdpdCBhL25ldC9yZHMvcmVjdi5jIGIv bmV0L3Jkcy9yZWN2LmMNCmluZGV4IGZjNTdkMzEuLjk2YTEyMzkgMTAwNjQ0DQotLS0gYS9uZXQv cmRzL3JlY3YuYw0KKysrIGIvbmV0L3Jkcy9yZWN2LmMNCkBAIC00MTAsOCArNDEwLDYgQEAgaW50 IHJkc19yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywgc3Ry dWN0IG1zZ2hkciAqbXNnLA0KIA0KIAlyZHNkZWJ1Zygic2l6ZSAlenUgZmxhZ3MgMHgleCB0aW1l byAlbGRcbiIsIHNpemUsIG1zZ19mbGFncywgdGltZW8pOw0KIA0KLQltc2ctPm1zZ19uYW1lbGVu ID0gMDsNCi0NCiAJaWYgKG1zZ19mbGFncyAmIE1TR19PT0IpDQogCQlnb3RvIG91dDsNCiANCmRp ZmYgLS1naXQgYS9uZXQvcm9zZS9hZl9yb3NlLmMgYi9uZXQvcm9zZS9hZl9yb3NlLmMNCmluZGV4 IDFmOTZmYjkuLmJmNzZkZWM3IDEwMDY0NA0KLS0tIGEvbmV0L3Jvc2UvYWZfcm9zZS5jDQorKysg Yi9uZXQvcm9zZS9hZl9yb3NlLmMNCkBAIC0xMjIxLDcgKzEyMjEsNiBAQCBzdGF0aWMgaW50IHJv c2VfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogew0K IAlzdHJ1Y3Qgc29jayAqc2sgPSBzb2NrLT5zazsNCiAJc3RydWN0IHJvc2Vfc29jayAqcm9zZSA9 IHJvc2Vfc2soc2spOw0KLQlzdHJ1Y3Qgc29ja2FkZHJfcm9zZSAqc3Jvc2UgPSAoc3RydWN0IHNv Y2thZGRyX3Jvc2UgKiltc2ctPm1zZ19uYW1lOw0KIAlzaXplX3QgY29waWVkOw0KIAl1bnNpZ25l ZCBjaGFyICphc21wdHI7DQogCXN0cnVjdCBza19idWZmICpza2I7DQpAQCAtMTI1Nyw4ICsxMjU2 LDExIEBAIHN0YXRpYyBpbnQgcm9zZV9yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0 IHNvY2tldCAqc29jaywNCiANCiAJc2tiX2NvcHlfZGF0YWdyYW1faW92ZWMoc2tiLCAwLCBtc2ct Pm1zZ19pb3YsIGNvcGllZCk7DQogDQotCWlmIChzcm9zZSAhPSBOVUxMKSB7DQotCQltZW1zZXQo c3Jvc2UsIDAsIG1zZy0+bXNnX25hbWVsZW4pOw0KKwlpZiAobXNnLT5tc2dfbmFtZSkgew0KKwkJ c3RydWN0IHNvY2thZGRyX3Jvc2UgKnNyb3NlOw0KKw0KKwkJbWVtc2V0KG1zZy0+bXNnX25hbWUs IDAsIHNpemVvZihzdHJ1Y3QgZnVsbF9zb2NrYWRkcl9yb3NlKSk7DQorCQlzcm9zZSA9IG1zZy0+ bXNnX25hbWU7DQogCQlzcm9zZS0+c3Jvc2VfZmFtaWx5ID0gQUZfUk9TRTsNCiAJCXNyb3NlLT5z cm9zZV9hZGRyICAgPSByb3NlLT5kZXN0X2FkZHI7DQogCQlzcm9zZS0+c3Jvc2VfY2FsbCAgID0g cm9zZS0+ZGVzdF9jYWxsOw0KZGlmZiAtLWdpdCBhL25ldC9yeHJwYy9hci1yZWN2bXNnLmMgYi9u ZXQvcnhycGMvYXItcmVjdm1zZy5jDQppbmRleCA0YjQ4Njg3Li44OTg0OTJhIDEwMDY0NA0KLS0t IGEvbmV0L3J4cnBjL2FyLXJlY3Ztc2cuYw0KKysrIGIvbmV0L3J4cnBjL2FyLXJlY3Ztc2cuYw0K QEAgLTE0MywxMCArMTQzLDEzIEBAIGludCByeHJwY19yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9j Yiwgc3RydWN0IHNvY2tldCAqc29jaywNCiANCiAJCS8qIGNvcHkgdGhlIHBlZXIgYWRkcmVzcyBh bmQgdGltZXN0YW1wICovDQogCQlpZiAoIWNvbnRpbnVlX2NhbGwpIHsNCi0JCQlpZiAobXNnLT5t c2dfbmFtZSAmJiBtc2ctPm1zZ19uYW1lbGVuID4gMCkNCisJCQlpZiAobXNnLT5tc2dfbmFtZSkg ew0KKwkJCQlzaXplX3QgbGVuID0NCisJCQkJCXNpemVvZihjYWxsLT5jb25uLT50cmFucy0+cGVl ci0+c3J4KTsNCiAJCQkJbWVtY3B5KG1zZy0+bXNnX25hbWUsDQotCQkJCSAgICAgICAmY2FsbC0+ Y29ubi0+dHJhbnMtPnBlZXItPnNyeCwNCi0JCQkJICAgICAgIHNpemVvZihjYWxsLT5jb25uLT50 cmFucy0+cGVlci0+c3J4KSk7DQorCQkJCSAgICAgICAmY2FsbC0+Y29ubi0+dHJhbnMtPnBlZXIt PnNyeCwgbGVuKTsNCisJCQkJbXNnLT5tc2dfbmFtZWxlbiA9IGxlbjsNCisJCQl9DQogCQkJc29j a19yZWN2X3RzX2FuZF9kcm9wcyhtc2csICZyeC0+c2ssIHNrYik7DQogCQl9DQogDQpkaWZmIC0t Z2l0IGEvbmV0L3NvY2tldC5jIGIvbmV0L3NvY2tldC5jDQppbmRleCBiZjdhZGFhLi5kNGZhYWRl IDEwMDY0NA0KLS0tIGEvbmV0L3NvY2tldC5jDQorKysgYi9uZXQvc29ja2V0LmMNCkBAIC0yMTUs MTIgKzIxNSwxMyBAQCBzdGF0aWMgaW50IG1vdmVfYWRkcl90b191c2VyKHN0cnVjdCBzb2NrYWRk ciAqa2FkZHIsIGludCBrbGVuLA0KIAlpbnQgZXJyOw0KIAlpbnQgbGVuOw0KIA0KKwlCVUdfT04o a2xlbiA+IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSkpOw0KIAllcnIgPSBnZXRfdXNl cihsZW4sIHVsZW4pOw0KIAlpZiAoZXJyKQ0KIAkJcmV0dXJuIGVycjsNCiAJaWYgKGxlbiA+IGts ZW4pDQogCQlsZW4gPSBrbGVuOw0KLQlpZiAobGVuIDwgMCB8fCBsZW4gPiBzaXplb2Yoc3RydWN0 IHNvY2thZGRyX3N0b3JhZ2UpKQ0KKwlpZiAobGVuIDwgMCkNCiAJCXJldHVybiAtRUlOVkFMOw0K IAlpZiAobGVuKSB7DQogCQlpZiAoYXVkaXRfc29ja2FkZHIoa2xlbiwga2FkZHIpKQ0KQEAgLTE3 NTIsOCArMTc1MywxMCBAQCBTWVNDQUxMX0RFRklORTYocmVjdmZyb20sIGludCwgZmQsIHZvaWQg X191c2VyICosIHVidWYsIHNpemVfdCwgc2l6ZSwNCiAJbXNnLm1zZ19pb3YgPSAmaW92Ow0KIAlp b3YuaW92X2xlbiA9IHNpemU7DQogCWlvdi5pb3ZfYmFzZSA9IHVidWY7DQotCW1zZy5tc2dfbmFt ZSA9IChzdHJ1Y3Qgc29ja2FkZHIgKikmYWRkcmVzczsNCi0JbXNnLm1zZ19uYW1lbGVuID0gc2l6 ZW9mKGFkZHJlc3MpOw0KKwkvKiBTYXZlIHNvbWUgY3ljbGVzIGFuZCBkb24ndCBjb3B5IHRoZSBh ZGRyZXNzIGlmIG5vdCBuZWVkZWQgKi8NCisJbXNnLm1zZ19uYW1lID0gYWRkciA/IChzdHJ1Y3Qg c29ja2FkZHIgKikmYWRkcmVzcyA6IE5VTEw7DQorCS8qIFdlIGFzc3VtZSBhbGwga2VybmVsIGNv ZGUga25vd3MgdGhlIHNpemUgb2Ygc29ja2FkZHJfc3RvcmFnZSAqLw0KKwltc2cubXNnX25hbWVs ZW4gPSAwOw0KIAlpZiAoc29jay0+ZmlsZS0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spDQogCQlmbGFn cyB8PSBNU0dfRE9OVFdBSVQ7DQogCWVyciA9IHNvY2tfcmVjdm1zZyhzb2NrLCAmbXNnLCBzaXpl LCBmbGFncyk7DQpAQCAtMTg4Miw3ICsxODg1LDcgQEAgc3RhdGljIGludCBjb3B5X21zZ2hkcl9m cm9tX3VzZXIoc3RydWN0IG1zZ2hkciAqa21zZywNCiAJaWYgKGNvcHlfZnJvbV91c2VyKGttc2cs IHVtc2csIHNpemVvZihzdHJ1Y3QgbXNnaGRyKSkpDQogCQlyZXR1cm4gLUVGQVVMVDsNCiAJaWYg KGttc2ctPm1zZ19uYW1lbGVuID4gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlKSkNCi0J CXJldHVybiAtRUlOVkFMOw0KKwkJa21zZy0+bXNnX25hbWVsZW4gPSBzaXplb2Yoc3RydWN0IHNv Y2thZGRyX3N0b3JhZ2UpOw0KIAlyZXR1cm4gMDsNCiB9DQogDQpAQCAtMjE0MiwxOCArMjE0NSwx NiBAQCBzdGF0aWMgaW50IF9fX3N5c19yZWN2bXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVj dCBtc2doZHIgX191c2VyICptc2csDQogCQkJZ290byBvdXQ7DQogCX0NCiANCi0JLyoNCi0JICog ICAgICBTYXZlIHRoZSB1c2VyLW1vZGUgYWRkcmVzcyAodmVyaWZ5X2lvdmVjIHdpbGwgY2hhbmdl IHRoZQ0KLQkgKiAgICAgIGtlcm5lbCBtc2doZHIgdG8gdXNlIHRoZSBrZXJuZWwgYWRkcmVzcyBz cGFjZSkNCisJLyogU2F2ZSB0aGUgdXNlci1tb2RlIGFkZHJlc3MgKHZlcmlmeV9pb3ZlYyB3aWxs IGNoYW5nZSB0aGUNCisJICoga2VybmVsIG1zZ2hkciB0byB1c2UgdGhlIGtlcm5lbCBhZGRyZXNz IHNwYWNlKQ0KIAkgKi8NCi0NCiAJdWFkZHIgPSAoX19mb3JjZSB2b2lkIF9fdXNlciAqKW1zZ19z eXMtPm1zZ19uYW1lOw0KIAl1YWRkcl9sZW4gPSBDT01QQVRfTkFNRUxFTihtc2cpOw0KLQlpZiAo TVNHX0NNU0dfQ09NUEFUICYgZmxhZ3MpIHsNCisJaWYgKE1TR19DTVNHX0NPTVBBVCAmIGZsYWdz KQ0KIAkJZXJyID0gdmVyaWZ5X2NvbXBhdF9pb3ZlYyhtc2dfc3lzLCBpb3YsDQogCQkJCQkgIChz dHJ1Y3Qgc29ja2FkZHIgKikmYWRkciwNCiAJCQkJCSAgVkVSSUZZX1dSSVRFKTsNCi0JfSBlbHNl DQorCWVsc2UNCiAJCWVyciA9IHZlcmlmeV9pb3ZlYyhtc2dfc3lzLCBpb3YsDQogCQkJCSAgIChz dHJ1Y3Qgc29ja2FkZHIgKikmYWRkciwNCiAJCQkJICAgVkVSSUZZX1dSSVRFKTsNCkBAIC0yMTY0 LDYgKzIxNjUsOSBAQCBzdGF0aWMgaW50IF9fX3N5c19yZWN2bXNnKHN0cnVjdCBzb2NrZXQgKnNv Y2ssIHN0cnVjdCBtc2doZHIgX191c2VyICptc2csDQogCWNtc2dfcHRyID0gKHVuc2lnbmVkIGxv bmcpbXNnX3N5cy0+bXNnX2NvbnRyb2w7DQogCW1zZ19zeXMtPm1zZ19mbGFncyA9IGZsYWdzICYg KE1TR19DTVNHX0NMT0VYRUN8TVNHX0NNU0dfQ09NUEFUKTsNCiANCisJLyogV2UgYXNzdW1lIGFs bCBrZXJuZWwgY29kZSBrbm93cyB0aGUgc2l6ZSBvZiBzb2NrYWRkcl9zdG9yYWdlICovDQorCW1z Z19zeXMtPm1zZ19uYW1lbGVuID0gMDsNCisNCiAJaWYgKHNvY2stPmZpbGUtPmZfZmxhZ3MgJiBP X05PTkJMT0NLKQ0KIAkJZmxhZ3MgfD0gTVNHX0RPTlRXQUlUOw0KIAllcnIgPSAobm9zZWMgPyBz b2NrX3JlY3Ztc2dfbm9zZWMgOiBzb2NrX3JlY3Ztc2cpKHNvY2ssIG1zZ19zeXMsDQpkaWZmIC0t Z2l0IGEvbmV0L3N1bnJwYy94cHJ0c29jay5jIGIvbmV0L3N1bnJwYy94cHJ0c29jay5jDQppbmRl eCA2NWZlMjNiLi5iZmI3OGZhIDEwMDY0NA0KLS0tIGEvbmV0L3N1bnJwYy94cHJ0c29jay5jDQor KysgYi9uZXQvc3VucnBjL3hwcnRzb2NrLmMNCkBAIC0zOTAsOCArMzkwLDEwIEBAIHN0YXRpYyBp bnQgeHNfc2VuZF9rdmVjKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRk ciwgaW50IGFkZHJsZW4sDQogCXJldHVybiBrZXJuZWxfc2VuZG1zZyhzb2NrLCAmbXNnLCBOVUxM LCAwLCAwKTsNCiB9DQogDQotc3RhdGljIGludCB4c19zZW5kX3BhZ2VkYXRhKHN0cnVjdCBzb2Nr ZXQgKnNvY2ssIHN0cnVjdCB4ZHJfYnVmICp4ZHIsIHVuc2lnbmVkIGludCBiYXNlLCBpbnQgbW9y ZSkNCitzdGF0aWMgaW50IHhzX3NlbmRfcGFnZWRhdGEoc3RydWN0IHNvY2tldCAqc29jaywgc3Ry dWN0IHhkcl9idWYgKnhkciwgdW5zaWduZWQgaW50IGJhc2UsIGludCBtb3JlLCBib29sIHplcm9j b3B5KQ0KIHsNCisJc3NpemVfdCAoKmRvX3NlbmRwYWdlKShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBz dHJ1Y3QgcGFnZSAqcGFnZSwNCisJCQlpbnQgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgaW50IGZsYWdz KTsNCiAJc3RydWN0IHBhZ2UgKipwcGFnZTsNCiAJdW5zaWduZWQgaW50IHJlbWFpbmRlcjsNCiAJ aW50IGVyciwgc2VudCA9IDA7DQpAQCAtNDAwLDYgKzQwMiw5IEBAIHN0YXRpYyBpbnQgeHNfc2Vu ZF9wYWdlZGF0YShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgeGRyX2J1ZiAqeGRyLCB1bnNp Z25lZCBpDQogCWJhc2UgKz0geGRyLT5wYWdlX2Jhc2U7DQogCXBwYWdlID0geGRyLT5wYWdlcyAr IChiYXNlID4+IFBBR0VfU0hJRlQpOw0KIAliYXNlICY9IH5QQUdFX01BU0s7DQorCWRvX3NlbmRw YWdlID0gc29jay0+b3BzLT5zZW5kcGFnZTsNCisJaWYgKCF6ZXJvY29weSkNCisJCWRvX3NlbmRw YWdlID0gc29ja19ub19zZW5kcGFnZTsNCiAJZm9yKDs7KSB7DQogCQl1bnNpZ25lZCBpbnQgbGVu ID0gbWluX3QodW5zaWduZWQgaW50LCBQQUdFX1NJWkUgLSBiYXNlLCByZW1haW5kZXIpOw0KIAkJ aW50IGZsYWdzID0gWFNfU0VORE1TR19GTEFHUzsNCkBAIC00MDcsNyArNDEyLDcgQEAgc3RhdGlj IGludCB4c19zZW5kX3BhZ2VkYXRhKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCB4ZHJfYnVm ICp4ZHIsIHVuc2lnbmVkIGkNCiAJCXJlbWFpbmRlciAtPSBsZW47DQogCQlpZiAocmVtYWluZGVy ICE9IDAgfHwgbW9yZSkNCiAJCQlmbGFncyB8PSBNU0dfTU9SRTsNCi0JCWVyciA9IHNvY2stPm9w cy0+c2VuZHBhZ2Uoc29jaywgKnBwYWdlLCBiYXNlLCBsZW4sIGZsYWdzKTsNCisJCWVyciA9IGRv X3NlbmRwYWdlKHNvY2ssICpwcGFnZSwgYmFzZSwgbGVuLCBmbGFncyk7DQogCQlpZiAocmVtYWlu ZGVyID09IDAgfHwgZXJyICE9IGxlbikNCiAJCQlicmVhazsNCiAJCXNlbnQgKz0gZXJyOw0KQEAg LTQyOCw5ICs0MzMsMTAgQEAgc3RhdGljIGludCB4c19zZW5kX3BhZ2VkYXRhKHN0cnVjdCBzb2Nr ZXQgKnNvY2ssIHN0cnVjdCB4ZHJfYnVmICp4ZHIsIHVuc2lnbmVkIGkNCiAgKiBAYWRkcmxlbjog VURQIG9ubHkgLS0gbGVuZ3RoIG9mIGRlc3RpbmF0aW9uIGFkZHJlc3MNCiAgKiBAeGRyOiBidWZm ZXIgY29udGFpbmluZyB0aGlzIHJlcXVlc3QNCiAgKiBAYmFzZTogc3RhcnRpbmcgcG9zaXRpb24g aW4gdGhlIGJ1ZmZlcg0KKyAqIEB6ZXJvY29weTogdHJ1ZSBpZiBpdCBpcyBzYWZlIHRvIHVzZSBz ZW5kcGFnZSgpDQogICoNCiAgKi8NCi1zdGF0aWMgaW50IHhzX3NlbmRwYWdlcyhzdHJ1Y3Qgc29j a2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsIGludCBhZGRybGVuLCBzdHJ1Y3QgeGRy X2J1ZiAqeGRyLCB1bnNpZ25lZCBpbnQgYmFzZSkNCitzdGF0aWMgaW50IHhzX3NlbmRwYWdlcyhz dHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsIGludCBhZGRybGVuLCBz dHJ1Y3QgeGRyX2J1ZiAqeGRyLCB1bnNpZ25lZCBpbnQgYmFzZSwgYm9vbCB6ZXJvY29weSkNCiB7 DQogCXVuc2lnbmVkIGludCByZW1haW5kZXIgPSB4ZHItPmxlbiAtIGJhc2U7DQogCWludCBlcnIs IHNlbnQgPSAwOw0KQEAgLTQ1OCw3ICs0NjQsNyBAQCBzdGF0aWMgaW50IHhzX3NlbmRwYWdlcyhz dHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsIGludCBhZGRybGVuLA0K IAlpZiAoYmFzZSA8IHhkci0+cGFnZV9sZW4pIHsNCiAJCXVuc2lnbmVkIGludCBsZW4gPSB4ZHIt PnBhZ2VfbGVuIC0gYmFzZTsNCiAJCXJlbWFpbmRlciAtPSBsZW47DQotCQllcnIgPSB4c19zZW5k X3BhZ2VkYXRhKHNvY2ssIHhkciwgYmFzZSwgcmVtYWluZGVyICE9IDApOw0KKwkJZXJyID0geHNf c2VuZF9wYWdlZGF0YShzb2NrLCB4ZHIsIGJhc2UsIHJlbWFpbmRlciAhPSAwLCB6ZXJvY29weSk7 DQogCQlpZiAocmVtYWluZGVyID09IDAgfHwgZXJyICE9IGxlbikNCiAJCQlnb3RvIG91dDsNCiAJ CXNlbnQgKz0gZXJyOw0KQEAgLTU2MSw3ICs1NjcsNyBAQCBzdGF0aWMgaW50IHhzX2xvY2FsX3Nl bmRfcmVxdWVzdChzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spDQogCQkJcmVxLT5ycV9zdmVjLT5pb3Zf YmFzZSwgcmVxLT5ycV9zdmVjLT5pb3ZfbGVuKTsNCiANCiAJc3RhdHVzID0geHNfc2VuZHBhZ2Vz KHRyYW5zcG9ydC0+c29jaywgTlVMTCwgMCwNCi0JCQkJCQl4ZHIsIHJlcS0+cnFfYnl0ZXNfc2Vu dCk7DQorCQkJCQkJeGRyLCByZXEtPnJxX2J5dGVzX3NlbnQsIHRydWUpOw0KIAlkcHJpbnRrKCJS UEM6ICAgICAgICVzKCV1KSA9ICVkXG4iLA0KIAkJCV9fZnVuY19fLCB4ZHItPmxlbiAtIHJlcS0+ cnFfYnl0ZXNfc2VudCwgc3RhdHVzKTsNCiAJaWYgKGxpa2VseShzdGF0dXMgPj0gMCkpIHsNCkBA IC02MTcsNyArNjIzLDcgQEAgc3RhdGljIGludCB4c191ZHBfc2VuZF9yZXF1ZXN0KHN0cnVjdCBy cGNfdGFzayAqdGFzaykNCiAJc3RhdHVzID0geHNfc2VuZHBhZ2VzKHRyYW5zcG9ydC0+c29jaywN CiAJCQkgICAgICB4c19hZGRyKHhwcnQpLA0KIAkJCSAgICAgIHhwcnQtPmFkZHJsZW4sIHhkciwN Ci0JCQkgICAgICByZXEtPnJxX2J5dGVzX3NlbnQpOw0KKwkJCSAgICAgIHJlcS0+cnFfYnl0ZXNf c2VudCwgdHJ1ZSk7DQogDQogCWRwcmludGsoIlJQQzogICAgICAgeHNfdWRwX3NlbmRfcmVxdWVz dCgldSkgPSAlZFxuIiwNCiAJCQl4ZHItPmxlbiAtIHJlcS0+cnFfYnl0ZXNfc2VudCwgc3RhdHVz KTsNCkBAIC02ODgsNiArNjk0LDcgQEAgc3RhdGljIGludCB4c190Y3Bfc2VuZF9yZXF1ZXN0KHN0 cnVjdCBycGNfdGFzayAqdGFzaykNCiAJc3RydWN0IHJwY194cHJ0ICp4cHJ0ID0gcmVxLT5ycV94 cHJ0Ow0KIAlzdHJ1Y3Qgc29ja194cHJ0ICp0cmFuc3BvcnQgPSBjb250YWluZXJfb2YoeHBydCwg c3RydWN0IHNvY2tfeHBydCwgeHBydCk7DQogCXN0cnVjdCB4ZHJfYnVmICp4ZHIgPSAmcmVxLT5y cV9zbmRfYnVmOw0KKwlib29sIHplcm9jb3B5ID0gdHJ1ZTsNCiAJaW50IHN0YXR1czsNCiANCiAJ eHNfZW5jb2RlX3N0cmVhbV9yZWNvcmRfbWFya2VyKCZyZXEtPnJxX3NuZF9idWYpOw0KQEAgLTY5 NSwxMyArNzAyLDIwIEBAIHN0YXRpYyBpbnQgeHNfdGNwX3NlbmRfcmVxdWVzdChzdHJ1Y3QgcnBj X3Rhc2sgKnRhc2spDQogCXhzX3BrdGR1bXAoInBhY2tldCBkYXRhOiIsDQogCQkJCXJlcS0+cnFf c3ZlYy0+aW92X2Jhc2UsDQogCQkJCXJlcS0+cnFfc3ZlYy0+aW92X2xlbik7DQorCS8qIERvbid0 IHVzZSB6ZXJvIGNvcHkgaWYgdGhpcyBpcyBhIHJlc2VuZC4gSWYgdGhlIFJQQyBjYWxsDQorCSAq IGNvbXBsZXRlcyB3aGlsZSB0aGUgc29ja2V0IGhvbGRzIGEgcmVmZXJlbmNlIHRvIHRoZSBwYWdl cywNCisJICogdGhlbiB3ZSBtYXkgZW5kIHVwIHJlc2VuZGluZyBjb3JydXB0ZWQgZGF0YS4NCisJ ICovDQorCWlmICh0YXNrLT50a19mbGFncyAmIFJQQ19UQVNLX1NFTlQpDQorCQl6ZXJvY29weSA9 IGZhbHNlOw0KIA0KIAkvKiBDb250aW51ZSB0cmFuc21pdHRpbmcgdGhlIHBhY2tldC9yZWNvcmQu IFdlIG11c3QgYmUgY2FyZWZ1bA0KIAkgKiB0byBjb3BlIHdpdGggd3JpdGVzcGFjZSBjYWxsYmFj a3MgYXJyaXZpbmcgX2FmdGVyXyB3ZSBoYXZlDQogCSAqIGNhbGxlZCBzZW5kbXNnKCkuICovDQog CXdoaWxlICgxKSB7DQogCQlzdGF0dXMgPSB4c19zZW5kcGFnZXModHJhbnNwb3J0LT5zb2NrLA0K LQkJCQkJTlVMTCwgMCwgeGRyLCByZXEtPnJxX2J5dGVzX3NlbnQpOw0KKwkJCQkJTlVMTCwgMCwg eGRyLCByZXEtPnJxX2J5dGVzX3NlbnQsDQorCQkJCQl6ZXJvY29weSk7DQogDQogCQlkcHJpbnRr KCJSUEM6ICAgICAgIHhzX3RjcF9zZW5kX3JlcXVlc3QoJXUpID0gJWRcbiIsDQogCQkJCXhkci0+ bGVuIC0gcmVxLT5ycV9ieXRlc19zZW50LCBzdGF0dXMpOw0KZGlmZiAtLWdpdCBhL25ldC90aXBj L3NvY2tldC5jIGIvbmV0L3RpcGMvc29ja2V0LmMNCmluZGV4IGZkZjM0YWYuLjA1ODk0MWUgMTAw NjQ0DQotLS0gYS9uZXQvdGlwYy9zb2NrZXQuYw0KKysrIGIvbmV0L3RpcGMvc29ja2V0LmMNCkBA IC05NDksOSArOTQ5LDYgQEAgc3RhdGljIGludCByZWN2X21zZyhzdHJ1Y3Qga2lvY2IgKmlvY2Is IHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCQlnb3RvIGV4aXQ7DQogCX0NCiANCi0JLyogd2lsbCBi ZSB1cGRhdGVkIGluIHNldF9vcmlnX2FkZHIoKSBpZiBuZWVkZWQgKi8NCi0JbS0+bXNnX25hbWVs ZW4gPSAwOw0KLQ0KIAl0aW1lb3V0ID0gc29ja19yY3Z0aW1lbyhzaywgZmxhZ3MgJiBNU0dfRE9O VFdBSVQpOw0KIHJlc3RhcnQ6DQogDQpAQCAtMTA3OCw5ICsxMDc1LDYgQEAgc3RhdGljIGludCBy ZWN2X3N0cmVhbShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCQln b3RvIGV4aXQ7DQogCX0NCiANCi0JLyogd2lsbCBiZSB1cGRhdGVkIGluIHNldF9vcmlnX2FkZHIo KSBpZiBuZWVkZWQgKi8NCi0JbS0+bXNnX25hbWVsZW4gPSAwOw0KLQ0KIAl0YXJnZXQgPSBzb2Nr X3Jjdmxvd2F0KHNrLCBmbGFncyAmIE1TR19XQUlUQUxMLCBidWZfbGVuKTsNCiAJdGltZW91dCA9 IHNvY2tfcmN2dGltZW8oc2ssIGZsYWdzICYgTVNHX0RPTlRXQUlUKTsNCiByZXN0YXJ0Og0KZGlm ZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3VuaXguYw0KaW5kZXgg NTEyMmIyMi4uOTMzOGNjYyAxMDA2NDQNCi0tLSBhL25ldC91bml4L2FmX3VuaXguYw0KKysrIGIv bmV0L3VuaXgvYWZfdW5peC5jDQpAQCAtMTc0NCw3ICsxNzQ0LDYgQEAgc3RhdGljIHZvaWQgdW5p eF9jb3B5X2FkZHIoc3RydWN0IG1zZ2hkciAqbXNnLCBzdHJ1Y3Qgc29jayAqc2spDQogew0KIAlz dHJ1Y3QgdW5peF9zb2NrICp1ID0gdW5peF9zayhzayk7DQogDQotCW1zZy0+bXNnX25hbWVsZW4g PSAwOw0KIAlpZiAodS0+YWRkcikgew0KIAkJbXNnLT5tc2dfbmFtZWxlbiA9IHUtPmFkZHItPmxl bjsNCiAJCW1lbWNweShtc2ctPm1zZ19uYW1lLCB1LT5hZGRyLT5uYW1lLCB1LT5hZGRyLT5sZW4p Ow0KQEAgLTE3NjcsOCArMTc2Niw2IEBAIHN0YXRpYyBpbnQgdW5peF9kZ3JhbV9yZWN2bXNnKHN0 cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywNCiAJaWYgKGZsYWdzJk1TR19P T0IpDQogCQlnb3RvIG91dDsNCiANCi0JbXNnLT5tc2dfbmFtZWxlbiA9IDA7DQotDQogCWVyciA9 IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmdS0+cmVhZGxvY2spOw0KIAlpZiAoZXJyKSB7DQog CQllcnIgPSBzb2NrX2ludHJfZXJybm8oc29ja19yY3Z0aW1lbyhzaywgbm9ibG9jaykpOw0KQEAg LTE5MDIsOCArMTg5OSw2IEBAIHN0YXRpYyBpbnQgdW5peF9zdHJlYW1fcmVjdm1zZyhzdHJ1Y3Qg a2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCXRhcmdldCA9IHNvY2tfcmN2bG93 YXQoc2ssIGZsYWdzJk1TR19XQUlUQUxMLCBzaXplKTsNCiAJdGltZW8gPSBzb2NrX3JjdnRpbWVv KHNrLCBmbGFncyZNU0dfRE9OVFdBSVQpOw0KIA0KLQltc2ctPm1zZ19uYW1lbGVuID0gMDsNCi0N CiAJLyogTG9jayB0aGUgc29ja2V0IHRvIHByZXZlbnQgcXVldWUgZGlzb3JkZXJpbmcNCiAJICog d2hpbGUgc2xlZXBzIGluIG1lbWNweV90b21zZw0KIAkgKi8NCmRpZmYgLS1naXQgYS9uZXQveDI1 L2FmX3gyNS5jIGIvbmV0L3gyNS9hZl94MjUuYw0KaW5kZXggZGMyNGJhOS4uMDdiOTk3MyAxMDA2 NDQNCi0tLSBhL25ldC94MjUvYWZfeDI1LmMNCisrKyBiL25ldC94MjUvYWZfeDI1LmMNCkBAIC0x MzQzLDEwICsxMzQzLDkgQEAgc3RhdGljIGludCB4MjVfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlv Y2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCWlmIChzeDI1KSB7DQogCQlzeDI1LT5zeDI1X2Zh bWlseSA9IEFGX1gyNTsNCiAJCXN4MjUtPnN4MjVfYWRkciAgID0geDI1LT5kZXN0X2FkZHI7DQor CQltc2ctPm1zZ19uYW1lbGVuID0gc2l6ZW9mKCpzeDI1KTsNCiAJfQ0KIA0KLQltc2ctPm1zZ19u YW1lbGVuID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl94MjUpOw0KLQ0KIAl4MjVfY2hlY2tfcmJ1 Zihzayk7DQogCXJjID0gY29waWVkOw0KIG91dF9mcmVlX2RncmFtOg0KZGlmZiAtLWdpdCBhL3Nl Y3VyaXR5L3NlbGludXgvaG9va3MuYyBiL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYw0KaW5kZXgg MTEyNmMxMC4uNTg5OGYzNCAxMDA2NDQNCi0tLSBhL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYw0K KysrIGIvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jDQpAQCAtNTMsNiArNTMsNyBAQA0KICNpbmNs dWRlIDxuZXQvaWNtcC5oPg0KICNpbmNsdWRlIDxuZXQvaXAuaD4JCS8qIGZvciBsb2NhbF9wb3J0 X3JhbmdlW10gKi8NCiAjaW5jbHVkZSA8bmV0L3RjcC5oPgkJLyogc3RydWN0IG9yX2NhbGxhYmxl IHVzZWQgaW4gc29ja19yY3Zfc2tiICovDQorI2luY2x1ZGUgPG5ldC9pbmV0X2Nvbm5lY3Rpb25f c29jay5oPg0KICNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFjZS5oPg0KICNpbmNsdWRlIDxuZXQv bmV0bGFiZWwuaD4NCiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPg0KQEAgLTM3MDQsNiArMzcw NSwzMCBAQCBzdGF0aWMgaW50IHNlbGludXhfc2tiX3BlZXJsYmxfc2lkKHN0cnVjdCBza19idWZm ICpza2IsIHUxNiBmYW1pbHksIHUzMiAqc2lkKQ0KIAlyZXR1cm4gMDsNCiB9DQogDQorLyoqDQor ICogc2VsaW51eF9jb25uX3NpZCAtIERldGVybWluZSB0aGUgY2hpbGQgc29ja2V0IGxhYmVsIGZv ciBhIGNvbm5lY3Rpb24NCisgKiBAc2tfc2lkOiB0aGUgcGFyZW50IHNvY2tldCdzIFNJRA0KKyAq IEBza2Jfc2lkOiB0aGUgcGFja2V0J3MgU0lEDQorICogQGNvbm5fc2lkOiB0aGUgcmVzdWx0aW5n IGNvbm5lY3Rpb24gU0lEDQorICoNCisgKiBJZiBAc2tiX3NpZCBpcyB2YWxpZCB0aGVuIHRoZSB1 c2VyOnJvbGU6dHlwZSBpbmZvcm1hdGlvbiBmcm9tIEBza19zaWQgaXMNCisgKiBjb21iaW5lZCB3 aXRoIHRoZSBNTFMgaW5mb3JtYXRpb24gZnJvbSBAc2tiX3NpZCBpbiBvcmRlciB0byBjcmVhdGUN CisgKiBAY29ubl9zaWQuICBJZiBAc2tiX3NpZCBpcyBub3QgdmFsaWQgdGhlbiB0aGVuIEBjb25u X3NpZCBpcyBzaW1wbHkgYSBjb3B5DQorICogb2YgQHNrX3NpZC4gIFJldHVybnMgemVybyBvbiBz dWNjZXNzLCBuZWdhdGl2ZSB2YWx1ZXMgb24gZmFpbHVyZS4NCisgKg0KKyAqLw0KK3N0YXRpYyBp bnQgc2VsaW51eF9jb25uX3NpZCh1MzIgc2tfc2lkLCB1MzIgc2tiX3NpZCwgdTMyICpjb25uX3Np ZCkNCit7DQorCWludCBlcnIgPSAwOw0KKw0KKwlpZiAoc2tiX3NpZCAhPSBTRUNTSURfTlVMTCkN CisJCWVyciA9IHNlY3VyaXR5X3NpZF9tbHNfY29weShza19zaWQsIHNrYl9zaWQsIGNvbm5fc2lk KTsNCisJZWxzZQ0KKwkJKmNvbm5fc2lkID0gc2tfc2lkOw0KKw0KKwlyZXR1cm4gZXJyOw0KK30N CisNCiAvKiBzb2NrZXQgc2VjdXJpdHkgb3BlcmF0aW9ucyAqLw0KIA0KIHN0YXRpYyBpbnQgc29j a2V0X3NvY2tjcmVhdGVfc2lkKGNvbnN0IHN0cnVjdCB0YXNrX3NlY3VyaXR5X3N0cnVjdCAqdHNl YywNCkBAIC00Mjk1LDcgKzQzMjAsNyBAQCBzdGF0aWMgaW50IHNlbGludXhfaW5ldF9jb25uX3Jl cXVlc3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KIAlzdHJ1Y3Qgc2tf c2VjdXJpdHlfc3RydWN0ICpza3NlYyA9IHNrLT5za19zZWN1cml0eTsNCiAJaW50IGVycjsNCiAJ dTE2IGZhbWlseSA9IHNrLT5za19mYW1pbHk7DQotCXUzMiBuZXdzaWQ7DQorCXUzMiBjb25uc2lk Ow0KIAl1MzIgcGVlcnNpZDsNCiANCiAJLyogaGFuZGxlIG1hcHBlZCBJUHY0IHBhY2tldHMgYXJy aXZpbmcgdmlhIElQdjYgc29ja2V0cyAqLw0KQEAgLTQzMDUsMTYgKzQzMzAsMTEgQEAgc3RhdGlj IGludCBzZWxpbnV4X2luZXRfY29ubl9yZXF1ZXN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNr X2J1ZmYgKnNrYiwNCiAJZXJyID0gc2VsaW51eF9za2JfcGVlcmxibF9zaWQoc2tiLCBmYW1pbHks ICZwZWVyc2lkKTsNCiAJaWYgKGVycikNCiAJCXJldHVybiBlcnI7DQotCWlmIChwZWVyc2lkID09 IFNFQ1NJRF9OVUxMKSB7DQotCQlyZXEtPnNlY2lkID0gc2tzZWMtPnNpZDsNCi0JCXJlcS0+cGVl cl9zZWNpZCA9IFNFQ1NJRF9OVUxMOw0KLQl9IGVsc2Ugew0KLQkJZXJyID0gc2VjdXJpdHlfc2lk X21sc19jb3B5KHNrc2VjLT5zaWQsIHBlZXJzaWQsICZuZXdzaWQpOw0KLQkJaWYgKGVycikNCi0J CQlyZXR1cm4gZXJyOw0KLQkJcmVxLT5zZWNpZCA9IG5ld3NpZDsNCi0JCXJlcS0+cGVlcl9zZWNp ZCA9IHBlZXJzaWQ7DQotCX0NCisJZXJyID0gc2VsaW51eF9jb25uX3NpZChza3NlYy0+c2lkLCBw ZWVyc2lkLCAmY29ubnNpZCk7DQorCWlmIChlcnIpDQorCQlyZXR1cm4gZXJyOw0KKwlyZXEtPnNl Y2lkID0gY29ubnNpZDsNCisJcmVxLT5wZWVyX3NlY2lkID0gcGVlcnNpZDsNCiANCiAJcmV0dXJu IHNlbGludXhfbmV0bGJsX2luZXRfY29ubl9yZXF1ZXN0KHJlcSwgZmFtaWx5KTsNCiB9DQpAQCAt NDU0Miw2ICs0NTYyLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBzZWxpbnV4X2lwdjZfZm9yd2Fy ZCh1bnNpZ25lZCBpbnQgaG9va251bSwNCiBzdGF0aWMgdW5zaWduZWQgaW50IHNlbGludXhfaXBf b3V0cHV0KHN0cnVjdCBza19idWZmICpza2IsDQogCQkJCSAgICAgIHUxNiBmYW1pbHkpDQogew0K KwlzdHJ1Y3Qgc29jayAqc2s7DQogCXUzMiBzaWQ7DQogDQogCWlmICghbmV0bGJsX2VuYWJsZWQo KSkNCkBAIC00NTUwLDggKzQ1NzEsMjcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBzZWxpbnV4X2lw X291dHB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KIAkvKiB3ZSBkbyB0aGlzIGluIHRoZSBMT0NB TF9PVVQgcGF0aCBhbmQgbm90IHRoZSBQT1NUX1JPVVRJTkcgcGF0aA0KIAkgKiBiZWNhdXNlIHdl IHdhbnQgdG8gbWFrZSBzdXJlIHdlIGFwcGx5IHRoZSBuZWNlc3NhcnkgbGFiZWxpbmcNCiAJICog YmVmb3JlIElQc2VjIGlzIGFwcGxpZWQgc28gd2UgY2FuIGxldmVyYWdlIEFIIHByb3RlY3Rpb24g Ki8NCi0JaWYgKHNrYi0+c2spIHsNCi0JCXN0cnVjdCBza19zZWN1cml0eV9zdHJ1Y3QgKnNrc2Vj ID0gc2tiLT5zay0+c2tfc2VjdXJpdHk7DQorCXNrID0gc2tiLT5zazsNCisJaWYgKHNrKSB7DQor CQlzdHJ1Y3Qgc2tfc2VjdXJpdHlfc3RydWN0ICpza3NlYzsNCisNCisJCWlmIChzay0+c2tfc3Rh dGUgPT0gVENQX0xJU1RFTikNCisJCQkvKiBpZiB0aGUgc29ja2V0IGlzIHRoZSBsaXN0ZW5pbmcg c3RhdGUgdGhlbiB0aGlzDQorCQkJICogcGFja2V0IGlzIGEgU1lOLUFDSyBwYWNrZXQgd2hpY2gg bWVhbnMgaXQgbmVlZHMgdG8NCisJCQkgKiBiZSBsYWJlbGVkIGJhc2VkIG9uIHRoZSBjb25uZWN0 aW9uL3JlcXVlc3Rfc29jayBhbmQNCisJCQkgKiBub3QgdGhlIHBhcmVudCBzb2NrZXQuICB1bmZv cnR1bmF0ZWx5LCB3ZSBjYW4ndA0KKwkJCSAqIGxvb2t1cCB0aGUgcmVxdWVzdF9zb2NrIHlldCBh cyBpdCBpc24ndCBxdWV1ZWQgb24NCisJCQkgKiB0aGUgcGFyZW50IHNvY2tldCB1bnRpbCBhZnRl ciB0aGUgU1lOLUFDSyBpcyBzZW50Lg0KKwkJCSAqIHRoZSAic29sdXRpb24iIGlzIHRvIHNpbXBs eSBwYXNzIHRoZSBwYWNrZXQgYXMtaXMNCisJCQkgKiBhcyBhbnkgSVAgb3B0aW9uIGJhc2VkIGxh YmVsaW5nIHNob3VsZCBiZSBjb3BpZWQNCisJCQkgKiBmcm9tIHRoZSBpbml0aWFsIGNvbm5lY3Rp b24gcmVxdWVzdCAoaW4gdGhlIElQDQorCQkJICogbGF5ZXIpLiAgaXQgaXMgZmFyIGZyb20gaWRl YWwsIGJ1dCB1bnRpbCB3ZSBnZXQgYQ0KKwkJCSAqIHNlY3VyaXR5IGxhYmVsIGluIHRoZSBwYWNr ZXQgaXRzZWxmIHRoaXMgaXMgdGhlDQorCQkJICogYmVzdCB3ZSBjYW4gZG8uICovDQorCQkJcmV0 dXJuIE5GX0FDQ0VQVDsNCisNCisJCS8qIHN0YW5kYXJkIHByYWN0aWNlLCBsYWJlbCB1c2luZyB0 aGUgcGFyZW50IHNvY2tldCAqLw0KKwkJc2tzZWMgPSBzay0+c2tfc2VjdXJpdHk7DQogCQlzaWQg PSBza3NlYy0+c2lkOw0KIAl9IGVsc2UNCiAJCXNpZCA9IFNFQ0lOSVRTSURfS0VSTkVMOw0KQEAg LTQ2MzMsMTIgKzQ2NzMsMTIgQEAgc3RhdGljIHVuc2lnbmVkIGludCBzZWxpbnV4X2lwX3Bvc3Ry b3V0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgaWZpbmRleCwNCiAJaWYgKCFzZWNtYXJrX2Fj dGl2ZSAmJiAhcGVlcmxibF9hY3RpdmUpDQogCQlyZXR1cm4gTkZfQUNDRVBUOw0KIA0KLQkvKiBp ZiB0aGUgcGFja2V0IGlzIGJlaW5nIGZvcndhcmRlZCB0aGVuIGdldCB0aGUgcGVlciBsYWJlbCBm cm9tIHRoZQ0KLQkgKiBwYWNrZXQgaXRzZWxmOyBvdGhlcndpc2UgY2hlY2sgdG8gc2VlIGlmIGl0 IGlzIGZyb20gYSBsb2NhbA0KLQkgKiBhcHBsaWNhdGlvbiBvciB0aGUga2VybmVsLCBpZiBmcm9t IGFuIGFwcGxpY2F0aW9uIGdldCB0aGUgcGVlciBsYWJlbA0KLQkgKiBmcm9tIHRoZSBzZW5kaW5n IHNvY2tldCwgb3RoZXJ3aXNlIHVzZSB0aGUga2VybmVsJ3Mgc2lkICovDQogCXNrID0gc2tiLT5z azsNCiAJaWYgKHNrID09IE5VTEwpIHsNCisJCS8qIFdpdGhvdXQgYW4gYXNzb2NpYXRlZCBzb2Nr ZXQgdGhlIHBhY2tldCBpcyBlaXRoZXIgY29taW5nDQorCQkgKiBmcm9tIHRoZSBrZXJuZWwgb3Ig aXQgaXMgYmVpbmcgZm9yd2FyZGVkOyBjaGVjayB0aGUgcGFja2V0DQorCQkgKiB0byBkZXRlcm1p bmUgd2hpY2ggYW5kIGlmIHRoZSBwYWNrZXQgaXMgYmVpbmcgZm9yd2FyZGVkDQorCQkgKiBxdWVy eSB0aGUgcGFja2V0IGRpcmVjdGx5IHRvIGRldGVybWluZSB0aGUgc2VjdXJpdHkgbGFiZWwuICov DQogCQlpZiAoc2tiLT5za2JfaWlmKSB7DQogCQkJc2VjbWFya19wZXJtID0gUEFDS0VUX19GT1JX QVJEX09VVDsNCiAJCQlpZiAoc2VsaW51eF9za2JfcGVlcmxibF9zaWQoc2tiLCBmYW1pbHksICZw ZWVyX3NpZCkpDQpAQCAtNDY0Nyw3ICs0Njg3LDI2IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgc2Vs aW51eF9pcF9wb3N0cm91dGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGlmaW5kZXgsDQogCQkJ c2VjbWFya19wZXJtID0gUEFDS0VUX19TRU5EOw0KIAkJCXBlZXJfc2lkID0gU0VDSU5JVFNJRF9L RVJORUw7DQogCQl9DQorCX0gZWxzZSBpZiAoc2stPnNrX3N0YXRlID09IFRDUF9MSVNURU4pIHsN CisJCS8qIExvY2FsbHkgZ2VuZXJhdGVkIHBhY2tldCBidXQgdGhlIGFzc29jaWF0ZWQgc29ja2V0 IGlzIGluIHRoZQ0KKwkJICogbGlzdGVuaW5nIHN0YXRlIHdoaWNoIG1lYW5zIHRoaXMgaXMgYSBT WU4tQUNLIHBhY2tldC4gIEluDQorCQkgKiB0aGlzIHBhcnRpY3VsYXIgY2FzZSB0aGUgY29ycmVj dCBzZWN1cml0eSBsYWJlbCBpcyBhc3NpZ25lZA0KKwkJICogdG8gdGhlIGNvbm5lY3Rpb24vcmVx dWVzdF9zb2NrIGJ1dCB1bmZvcnR1bmF0ZWx5IHdlIGNhbid0DQorCQkgKiBxdWVyeSB0aGUgcmVx dWVzdF9zb2NrIGFzIGl0IGlzbid0IHF1ZXVlZCBvbiB0aGUgcGFyZW50DQorCQkgKiBzb2NrZXQg dW50aWwgYWZ0ZXIgdGhlIFNZTi1BQ0sgcGFja2V0IGlzIHNlbnQ7IHRoZSBvbmx5DQorCQkgKiB2 aWFibGUgY2hvaWNlIGlzIHRvIHJlZ2VuZXJhdGUgdGhlIGxhYmVsIGxpa2Ugd2UgZG8gaW4NCisJ CSAqIHNlbGludXhfaW5ldF9jb25uX3JlcXVlc3QoKS4gIFNlZSBhbHNvIHNlbGludXhfaXBfb3V0 cHV0KCkNCisJCSAqIGZvciBzaW1pbGFyIHByb2JsZW1zLiAqLw0KKwkJdTMyIHNrYl9zaWQ7DQor CQlzdHJ1Y3Qgc2tfc2VjdXJpdHlfc3RydWN0ICpza3NlYyA9IHNrLT5za19zZWN1cml0eTsNCisJ CWlmIChzZWxpbnV4X3NrYl9wZWVybGJsX3NpZChza2IsIGZhbWlseSwgJnNrYl9zaWQpKQ0KKwkJ CXJldHVybiBORl9EUk9QOw0KKwkJaWYgKHNlbGludXhfY29ubl9zaWQoc2tzZWMtPnNpZCwgc2ti X3NpZCwgJnBlZXJfc2lkKSkNCisJCQlyZXR1cm4gTkZfRFJPUDsNCisJCXNlY21hcmtfcGVybSA9 IFBBQ0tFVF9fU0VORDsNCiAJfSBlbHNlIHsNCisJCS8qIExvY2FsbHkgZ2VuZXJhdGVkIHBhY2tl dCwgZmV0Y2ggdGhlIHNlY3VyaXR5IGxhYmVsIGZyb20gdGhlDQorCQkgKiBhc3NvY2lhdGVkIHNv Y2tldC4gKi8NCiAJCXN0cnVjdCBza19zZWN1cml0eV9zdHJ1Y3QgKnNrc2VjID0gc2stPnNrX3Nl Y3VyaXR5Ow0KIAkJcGVlcl9zaWQgPSBza3NlYy0+c2lkOw0KIAkJc2VjbWFya19wZXJtID0gUEFD S0VUX19TRU5EOw0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvbmV0bGFiZWwuYyBiL3Nl Y3VyaXR5L3NlbGludXgvbmV0bGFiZWwuYw0KaW5kZXggZGE0YjhiMi4uNjIzNWQwNSAxMDA2NDQN Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvbmV0bGFiZWwuYw0KKysrIGIvc2VjdXJpdHkvc2VsaW51 eC9uZXRsYWJlbC5jDQpAQCAtNDQyLDggKzQ0Miw3IEBAIGludCBzZWxpbnV4X25ldGxibF9zb2Nr ZXRfY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkcikNCiAJICAg IHNrc2VjLT5ubGJsX3N0YXRlICE9IE5MQkxfQ09OTkxBQkVMRUQpDQogCQlyZXR1cm4gMDsNCiAN Ci0JbG9jYWxfYmhfZGlzYWJsZSgpOw0KLQliaF9sb2NrX3NvY2tfbmVzdGVkKHNrKTsNCisJbG9j a19zb2NrKHNrKTsNCiANCiAJLyogY29ubmVjdGVkIHNvY2tldHMgYXJlIGFsbG93ZWQgdG8gZGlz Y29ubmVjdCB3aGVuIHRoZSBhZGRyZXNzIGZhbWlseQ0KIAkgKiBpcyBzZXQgdG8gQUZfVU5TUEVD LCBpZiB0aGF0IGlzIHdoYXQgaXMgaGFwcGVuaW5nIHdlIHdhbnQgdG8gcmVzZXQNCkBAIC00NjQs NyArNDYzLDYgQEAgaW50IHNlbGludXhfbmV0bGJsX3NvY2tldF9jb25uZWN0KHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IHNvY2thZGRyICphZGRyKQ0KIAkJc2tzZWMtPm5sYmxfc3RhdGUgPSBOTEJM X0NPTk5MQUJFTEVEOw0KIA0KIHNvY2tldF9jb25uZWN0X3JldHVybjoNCi0JYmhfdW5sb2NrX3Nv Y2soc2spOw0KLQlsb2NhbF9iaF9lbmFibGUoKTsNCisJcmVsZWFzZV9zb2NrKHNrKTsNCiAJcmV0 dXJuIHJjOw0KIH0NCmRpZmYgLS1naXQgYS9zb3VuZC9kcml2ZXJzL3Bjc3AvcGNzcC5jIGIvc291 bmQvZHJpdmVycy9wY3NwL3Bjc3AuYw0KaW5kZXggOTQ2YTBjYi4uZTZhZDhkNCAxMDA2NDQNCi0t LSBhL3NvdW5kL2RyaXZlcnMvcGNzcC9wY3NwLmMNCisrKyBiL3NvdW5kL2RyaXZlcnMvcGNzcC9w Y3NwLmMNCkBAIC0xODcsOCArMTg3LDggQEAgc3RhdGljIGludCBfX2RldmluaXQgcGNzcF9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpDQogc3RhdGljIGludCBfX2RldmV4aXQgcGNz cF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQ0KIHsNCiAJc3RydWN0IHNuZF9w Y3NwICpjaGlwID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEoZGV2KTsNCi0JYWxzYV9jYXJkX3Bjc3Bf ZXhpdChjaGlwKTsNCiAJcGNzcGtyX2lucHV0X3JlbW92ZShjaGlwLT5pbnB1dF9kZXYpOw0KKwlh bHNhX2NhcmRfcGNzcF9leGl0KGNoaXApOw0KIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShkZXYsIE5V TEwpOw0KIAlyZXR1cm4gMDsNCiB9DQpkaWZmIC0tZ2l0IGEvc291bmQvaXNhL21zbmQvbXNuZF9w aW5uYWNsZS5jIGIvc291bmQvaXNhL21zbmQvbXNuZF9waW5uYWNsZS5jDQppbmRleCAwOTYxZTJj Li5hOWNjNjg3IDEwMDY0NA0KLS0tIGEvc291bmQvaXNhL21zbmQvbXNuZF9waW5uYWNsZS5jDQor KysgYi9zb3VuZC9pc2EvbXNuZC9tc25kX3Bpbm5hY2xlLmMNCkBAIC03Myw5ICs3MywxMSBAQA0K ICNpZmRlZiBNU05EX0NMQVNTSUMNCiAjICBpbmNsdWRlICJtc25kX2NsYXNzaWMuaCINCiAjICBk ZWZpbmUgTE9HTkFNRQkJCSJtc25kX2NsYXNzaWMiDQorIyAgZGVmaW5lIERFVl9OQU1FCQkJIm1z bmQtY2xhc3NpYyINCiAjZWxzZQ0KICMgIGluY2x1ZGUgIm1zbmRfcGlubmFjbGUuaCINCiAjICBk ZWZpbmUgTE9HTkFNRQkJCSJzbmRfbXNuZF9waW5uYWNsZSINCisjICBkZWZpbmUgREVWX05BTUUJ CQkibXNuZC1waW5uYWNsZSINCiAjZW5kaWYNCiANCiBzdGF0aWMgdm9pZCBfX2RldmluaXQgc2V0 X2RlZmF1bHRfYXVkaW9fcGFyYW1ldGVycyhzdHJ1Y3Qgc25kX21zbmQgKmNoaXApDQpAQCAtMTA2 OCw4ICsxMDcwLDYgQEAgc3RhdGljIGludCBfX2RldmV4aXQgc25kX21zbmRfaXNhX3JlbW92ZShz dHJ1Y3QgZGV2aWNlICpwZGV2LCB1bnNpZ25lZCBpbnQgZGV2KQ0KIAlyZXR1cm4gMDsNCiB9DQog DQotI2RlZmluZSBERVZfTkFNRSAibXNuZC1waW5uYWNsZSINCi0NCiBzdGF0aWMgc3RydWN0IGlz YV9kcml2ZXIgc25kX21zbmRfZHJpdmVyID0gew0KIAkubWF0Y2gJCT0gc25kX21zbmRfaXNhX21h dGNoLA0KIAkucHJvYmUJCT0gc25kX21zbmRfaXNhX3Byb2JlLA0KZGlmZiAtLWdpdCBhL3NvdW5k L3BjaS9oZGEvcGF0Y2hfY29uZXhhbnQuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfY29uZXhhbnQu Yw0KaW5kZXggOTg0YjViMS4uODQzZDlmMyAxMDA2NDQNCi0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0 Y2hfY29uZXhhbnQuYw0KKysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9jb25leGFudC5jDQpAQCAt NDYxMCw2ICs0NjEwLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoZGFfY29kZWNfcHJlc2V0IHNu ZF9oZGFfcHJlc2V0X2NvbmV4YW50W10gPSB7DQogCSAgLnBhdGNoID0gcGF0Y2hfY29uZXhhbnRf YXV0byB9LA0KIAl7IC5pZCA9IDB4MTRmMTUxMTUsIC5uYW1lID0gIkNYMjA3NTciLA0KIAkgIC5w YXRjaCA9IHBhdGNoX2NvbmV4YW50X2F1dG8gfSwNCisJeyAuaWQgPSAweDE0ZjE1MWQ3LCAubmFt ZSA9ICJDWDIwOTUyIiwNCisJICAucGF0Y2ggPSBwYXRjaF9jb25leGFudF9hdXRvIH0sDQogCXt9 IC8qIHRlcm1pbmF0b3IgKi8NCiB9Ow0KIA0KQEAgLTQ2MzYsNiArNDYzOCw3IEBAIE1PRFVMRV9B TElBUygic25kLWhkYS1jb2RlYy1pZDoxNGYxNTExMSIpOw0KIE1PRFVMRV9BTElBUygic25kLWhk YS1jb2RlYy1pZDoxNGYxNTExMyIpOw0KIE1PRFVMRV9BTElBUygic25kLWhkYS1jb2RlYy1pZDox NGYxNTExNCIpOw0KIE1PRFVMRV9BTElBUygic25kLWhkYS1jb2RlYy1pZDoxNGYxNTExNSIpOw0K K01PRFVMRV9BTElBUygic25kLWhkYS1jb2RlYy1pZDoxNGYxNTFkNyIpOw0KIA0KIE1PRFVMRV9M SUNFTlNFKCJHUEwiKTsNCiBNT0RVTEVfREVTQ1JJUFRJT04oIkNvbmV4YW50IEhELWF1ZGlvIGNv ZGVjIik7DQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMgYi9zb3Vu ZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYw0KaW5kZXggOTJjOTEzZC4uMWY3OGNhNiAxMDA2NDQN Ci0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jDQorKysgYi9zb3VuZC9wY2kvaGRh L3BhdGNoX3JlYWx0ZWsuYw0KQEAgLTU5NDMsNiArNTk0Myw3IEBAIHN0YXRpYyBpbnQgcGF0Y2hf YWxjNjYyKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQ0KIAkJY2FzZSAweDEwZWMwMjcyOg0KIAkJ Y2FzZSAweDEwZWMwNjYzOg0KIAkJY2FzZSAweDEwZWMwNjY1Og0KKwkJY2FzZSAweDEwZWMwNjY4 Og0KIAkJCXNldF9iZWVwX2FtcChzcGVjLCAweDBiLCAweDA0LCBIREFfSU5QVVQpOw0KIAkJCWJy ZWFrOw0KIAkJY2FzZSAweDEwZWMwMjczOg0KQEAgLTYwMTksNiArNjAyMCw3IEBAIHN0YXRpYyBp bnQgcGF0Y2hfYWxjNjgwKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQ0KICAqLw0KIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaGRhX2NvZGVjX3ByZXNldCBzbmRfaGRhX3ByZXNldF9yZWFsdGVrW10gPSB7 DQogCXsgLmlkID0gMHgxMGVjMDIyMSwgLm5hbWUgPSAiQUxDMjIxIiwgLnBhdGNoID0gcGF0Y2hf YWxjMjY5IH0sDQorCXsgLmlkID0gMHgxMGVjMDIzMSwgLm5hbWUgPSAiQUxDMjMxIiwgLnBhdGNo ID0gcGF0Y2hfYWxjMjY5IH0sDQogCXsgLmlkID0gMHgxMGVjMDI2MCwgLm5hbWUgPSAiQUxDMjYw IiwgLnBhdGNoID0gcGF0Y2hfYWxjMjYwIH0sDQogCXsgLmlkID0gMHgxMGVjMDI2MiwgLm5hbWUg PSAiQUxDMjYyIiwgLnBhdGNoID0gcGF0Y2hfYWxjMjYyIH0sDQogCXsgLmlkID0gMHgxMGVjMDI2 NywgLm5hbWUgPSAiQUxDMjY3IiwgLnBhdGNoID0gcGF0Y2hfYWxjMjY4IH0sDQpkaWZmIC0tZ2l0 IGEvc291bmQvc29jL2NvZGVjcy9hazQ2NDIuYyBiL3NvdW5kL3NvYy9jb2RlY3MvYWs0NjQyLmMN CmluZGV4IDFjNDk5OWQuLmYyZGFjNWMgMTAwNjQ0DQotLS0gYS9zb3VuZC9zb2MvY29kZWNzL2Fr NDY0Mi5jDQorKysgYi9zb3VuZC9zb2MvY29kZWNzL2FrNDY0Mi5jDQpAQCAtMjE0LDcgKzIxNCw3 IEBAIHN0YXRpYyBpbnQgYWs0NjQyX2RhaV9zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVh bSAqc3Vic3RyZWFtLA0KIAkJICogVGhpcyBvcGVyYXRpb24gY2FtZSBmcm9tIGV4YW1wbGUgY29k ZSBvZg0KIAkJICogIkFTQUhJIEtBU0VJIEFLNDY0MiIgKGphcGFuZXNlKSBtYW51YWwgcDk0Lg0K IAkJICovDQotCQlzbmRfc29jX3dyaXRlKGNvZGVjLCBTR19TTDEsIFBNTVAgfCBNR0FJTjApOw0K KwkJc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywgU0dfU0wxLCBQTU1QIHwgTUdBSU4wLCBQTU1Q IHwgTUdBSU4wKTsNCiAJCXNuZF9zb2Nfd3JpdGUoY29kZWMsIFRJTUVSLCBaVE0oMHgzKSB8IFdU TSgweDMpKTsNCiAJCXNuZF9zb2Nfd3JpdGUoY29kZWMsIEFMQ19DVEwxLCBBTEMgfCBMTVRIMCk7 DQogCQlzbmRfc29jX3VwZGF0ZV9iaXRzKGNvZGVjLCBQV19NR01UMSwgUE1WQ00gfCBQTUFETCwN CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtODczMS5jIGIvc291bmQvc29jL2NvZGVj cy93bTg3MzEuYw0KaW5kZXggYTdjOWFlMS4uNmNmZDRmNyAxMDA2NDQNCi0tLSBhL3NvdW5kL3Nv Yy9jb2RlY3Mvd204NzMxLmMNCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NzMxLmMNCkBAIC0z OTIsMTAgKzM5MiwxMCBAQCBzdGF0aWMgaW50IHdtODczMV9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25k X3NvY19kYWkgKmNvZGVjX2RhaSwNCiAJCWlmYWNlIHw9IDB4MDAwMTsNCiAJCWJyZWFrOw0KIAlj YXNlIFNORF9TT0NfREFJRk1UX0RTUF9BOg0KLQkJaWZhY2UgfD0gMHgwMDAzOw0KKwkJaWZhY2Ug fD0gMHgwMDEzOw0KIAkJYnJlYWs7DQogCWNhc2UgU05EX1NPQ19EQUlGTVRfRFNQX0I6DQotCQlp ZmFjZSB8PSAweDAwMTM7DQorCQlpZmFjZSB8PSAweDAwMDM7DQogCQlicmVhazsNCiAJZGVmYXVs dDoNCiAJCXJldHVybiAtRUlOVkFMOw0KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204 OTkwLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtODk5MC5jDQppbmRleCBkMjlhOTYyLi5jZmE1YmVh IDEwMDY0NA0KLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg5OTAuYw0KKysrIGIvc291bmQvc29j L2NvZGVjcy93bTg5OTAuYw0KQEAgLTEyNjYsNiArMTI2Niw4IEBAIHN0YXRpYyBpbnQgd204OTkw X3NldF9iaWFzX2xldmVsKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywNCiANCiAJCS8qIGRp c2FibGUgUE9CQ1RSTCwgU09GVF9TVCBhbmQgQlVGRENPUEVOICovDQogCQlzbmRfc29jX3dyaXRl KGNvZGVjLCBXTTg5OTBfQU5USVBPUDIsIDB4MCk7DQorDQorCQljb2RlYy0+Y2FjaGVfc3luYyA9 IDE7DQogCQlicmVhazsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi82ZmlyZS9jaGlw LmMgYi9zb3VuZC91c2IvNmZpcmUvY2hpcC5jDQppbmRleCBjN2RjYTdiLi40NmEyODE2IDEwMDY0 NA0KLS0tIGEvc291bmQvdXNiLzZmaXJlL2NoaXAuYw0KKysrIGIvc291bmQvdXNiLzZmaXJlL2No aXAuYw0KQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCB1c2I2ZmlyZV9j aGlwX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLA0KIAkJCXVzYl9zZXRfaW50ZmRh dGEoaW50ZiwgY2hpcHNbaV0pOw0KIAkJCW11dGV4X3VubG9jaygmcmVnaXN0ZXJfbXV0ZXgpOw0K IAkJCXJldHVybiAwOw0KLQkJfSBlbHNlIGlmIChyZWdpZHggPCAwKQ0KKwkJfSBlbHNlIGlmICgh ZGV2aWNlc1tpXSAmJiByZWdpZHggPCAwKQ0KIAkJCXJlZ2lkeCA9IGk7DQogCX0NCiAJaWYgKHJl Z2lkeCA8IDApIHsNCmRpZmYgLS1naXQgYS92aXJ0L2t2bS9pb21tdS5jIGIvdmlydC9rdm0vaW9t bXUuYw0KaW5kZXggNTMzZGIzMy4uNWRiYjM1ZCAxMDA2NDQNCi0tLSBhL3ZpcnQva3ZtL2lvbW11 LmMNCisrKyBiL3ZpcnQva3ZtL2lvbW11LmMNCkBAIC0xMDEsNiArMTAxLDEwIEBAIGludCBrdm1f aW9tbXVfbWFwX3BhZ2VzKHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGt2bV9tZW1vcnlfc2xvdCAq c2xvdCkNCiAJCXdoaWxlICgoZ2ZuIDw8IFBBR0VfU0hJRlQpICYgKHBhZ2Vfc2l6ZSAtIDEpKQ0K IAkJCXBhZ2Vfc2l6ZSA+Pj0gMTsNCiANCisJCS8qIE1ha2Ugc3VyZSBodmEgaXMgYWxpZ25lZCB0 byB0aGUgcGFnZSBzaXplIHdlIHdhbnQgdG8gbWFwICovDQorCQl3aGlsZSAoZ2ZuX3RvX2h2YV9t ZW1zbG90KHNsb3QsIGdmbikgJiAocGFnZV9zaXplIC0gMSkpDQorCQkJcGFnZV9zaXplID4+PSAx Ow0KKw0KIAkJLyoNCiAJCSAqIFBpbiBhbGwgcGFnZXMgd2UgYXJlIGFib3V0IHRvIG1hcCBpbiBt ZW1vcnkuIFRoaXMgaXMNCiAJCSAqIGltcG9ydGFudCBiZWNhdXNlIHdlIHVubWFwIGFuZCB1bnBp biBpbiA0a2Igc3RlcHMgbGF0ZXIuDQpkaWZmIC0tZ2l0IGEvdmlydC9rdm0va3ZtX21haW4uYyBi L3ZpcnQva3ZtL2t2bV9tYWluLmMNCmluZGV4IDhiZjA1ZjAuLmQ4M2FhNWUgMTAwNjQ0DQotLS0g YS92aXJ0L2t2bS9rdm1fbWFpbi5jDQorKysgYi92aXJ0L2t2bS9rdm1fbWFpbi5jDQpAQCAtNzc0 LDcgKzc3NCw3IEBAIHNraXBfbHBhZ2U6DQogCQluZXcudXNlcnNwYWNlX2FkZHIgPSBtZW0tPnVz ZXJzcGFjZV9hZGRyOw0KICNlbmRpZiAvKiBub3QgZGVmaW5lZCBDT05GSUdfUzM5MCAqLw0KIA0K LQlpZiAoIW5wYWdlcykgew0KKwlpZiAoIW5wYWdlcyB8fCBiYXNlX2dmbiAhPSBvbGQuYmFzZV9n Zm4pIHsNCiAJCXIgPSAtRU5PTUVNOw0KIAkJc2xvdHMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qg a3ZtX21lbXNsb3RzKSwgR0ZQX0tFUk5FTCk7DQogCQlpZiAoIXNsb3RzKQ0KQEAgLTc4OCw4ICs3 ODgsMTAgQEAgc2tpcF9scGFnZToNCiAJCW9sZF9tZW1zbG90cyA9IGt2bS0+bWVtc2xvdHM7DQog CQlyY3VfYXNzaWduX3BvaW50ZXIoa3ZtLT5tZW1zbG90cywgc2xvdHMpOw0KIAkJc3luY2hyb25p emVfc3JjdV9leHBlZGl0ZWQoJmt2bS0+c3JjdSk7DQotCQkvKiBGcm9tIHRoaXMgcG9pbnQgbm8g bmV3IHNoYWRvdyBwYWdlcyBwb2ludGluZyB0byBhIGRlbGV0ZWQNCi0JCSAqIG1lbXNsb3Qgd2ls bCBiZSBjcmVhdGVkLg0KKwkJLyogc2xvdCB3YXMgZGVsZXRlZCBvciBtb3ZlZCwgY2xlYXIgaW9t bXUgbWFwcGluZyAqLw0KKwkJa3ZtX2lvbW11X3VubWFwX3BhZ2VzKGt2bSwgJm9sZCk7DQorCQkv KiBGcm9tIHRoaXMgcG9pbnQgbm8gbmV3IHNoYWRvdyBwYWdlcyBwb2ludGluZyB0byBhIGRlbGV0 ZWQsDQorCQkgKiBvciBtb3ZlZCwgbWVtc2xvdCB3aWxsIGJlIGNyZWF0ZWQuDQogCQkgKg0KIAkJ ICogdmFsaWRhdGlvbiBvZiBzcC0+Z2ZuIGhhcHBlbnMgaW46DQogCQkgKiAJLSBnZm5fdG9faHZh IChrdm1fcmVhZF9ndWVzdCwgZ2ZuX3RvX3BmbikNCkBAIC04MDMsMTQgKzgwNSw2IEBAIHNraXBf bHBhZ2U6DQogCWlmIChyKQ0KIAkJZ290byBvdXRfZnJlZTsNCiANCi0JLyogbWFwL3VubWFwIHRo ZSBwYWdlcyBpbiBpb21tdSBwYWdlIHRhYmxlICovDQotCWlmIChucGFnZXMpIHsNCi0JCXIgPSBr dm1faW9tbXVfbWFwX3BhZ2VzKGt2bSwgJm5ldyk7DQotCQlpZiAocikNCi0JCQlnb3RvIG91dF9m cmVlOw0KLQl9IGVsc2UNCi0JCWt2bV9pb21tdV91bm1hcF9wYWdlcyhrdm0sICZvbGQpOw0KLQ0K IAlyID0gLUVOT01FTTsNCiAJc2xvdHMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qga3ZtX21lbXNs b3RzKSwgR0ZQX0tFUk5FTCk7DQogCWlmICghc2xvdHMpDQpAQCAtODIwLDYgKzgxNCwxMyBAQCBz a2lwX2xwYWdlOg0KIAkJc2xvdHMtPm5tZW1zbG90cyA9IG1lbS0+c2xvdCArIDE7DQogCXNsb3Rz LT5nZW5lcmF0aW9uKys7DQogDQorCS8qIG1hcCBuZXcgbWVtb3J5IHNsb3QgaW50byB0aGUgaW9t bXUgKi8NCisJaWYgKG5wYWdlcykgew0KKwkJciA9IGt2bV9pb21tdV9tYXBfcGFnZXMoa3ZtLCAm bmV3KTsNCisJCWlmIChyKQ0KKwkJCWdvdG8gb3V0X3Nsb3RzOw0KKwl9DQorDQogCS8qIGFjdHVh bCBtZW1vcnkgaXMgZnJlZWQgdmlhIG9sZCBpbiBrdm1fZnJlZV9waHlzbWVtX3Nsb3QgYmVsb3cg Ki8NCiAJaWYgKCFucGFnZXMpIHsNCiAJCW5ldy5ybWFwID0gTlVMTDsNCkBAIC04NDcsNiArODQ4 LDggQEAgc2tpcF9scGFnZToNCiANCiAJcmV0dXJuIDA7DQogDQorb3V0X3Nsb3RzOg0KKwlrZnJl ZShzbG90cyk7DQogb3V0X2ZyZWU6DQogCWt2bV9mcmVlX3BoeXNtZW1fc2xvdCgmbmV3LCAmb2xk KTsNCiBvdXQ6DQpAQCAtMTY4Myw2ICsxNjg2LDkgQEAgc3RhdGljIGludCBrdm1fdm1faW9jdGxf Y3JlYXRlX3ZjcHUoc3RydWN0IGt2bSAqa3ZtLCB1MzIgaWQpDQogCWludCByOw0KIAlzdHJ1Y3Qg a3ZtX3ZjcHUgKnZjcHUsICp2Ow0KIA0KKwlpZiAoaWQgPj0gS1ZNX01BWF9WQ1BVUykNCisJCXJl dHVybiAtRUlOVkFMOw0KKw0KIAl2Y3B1ID0ga3ZtX2FyY2hfdmNwdV9jcmVhdGUoa3ZtLCBpZCk7 DQogCWlmIChJU19FUlIodmNwdSkpDQogCQlyZXR1cm4gUFRSX0VSUih2Y3B1KTsNCn== --=-Ds1d4EjX27bn5pV+4YAW-- --=-9bfK5arjnfHO0IbglKNj Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.15 (GNU/Linux) iQIVAwUAUr+Gnue/yOyVhhEJAQqRyQ//TP/bs4pIJuizNax77meFiRhUPUPMIszI N4/hxydVtgtGvUd6S43rEhe5ENxNjABubDwoeaSEsGp1vtVDSlXAP5B0oY0V5yIq AA6zUNar3BySYLEFpIGo1SMDoYT+UfvZxoX/8U7MM7/MKlK7dV+lXhDT6H5UjbUp TulpBXLjDkgb8Tm0mWB69YPz8HSPCo1LCPwmIsF0MQoeUwg3WckFy3nz8iRDCqen bugDmdXgp3dtrsTlQ2gCLgnFDj40oHNpOXObLpCJF1+BGZhM6QRUAwIRIegaBsWC 0NCeyTWqjWgJcURGLzv0VVT3aMRuTXhbE4I7oF2NS7prfpeHM/lv6Yp7dU4IK1V+ bN74HQbn8E7FAXetp7vm89NuFStPndcosDieBw69ToGu2ohU0Fq5Ve57OJiFRwam 8+odzLDJ3Y0C0Uuhhhi101J5EBWgOJNjF1KXs6lCvnnD2YnXdPzWYqAPd0uz6w0q mNIzNUM/edkgr9egaIQpoEmnzKknRSi1dB3CjJWBg06ghaEvfhi7rRdtLGm9mSIC gUdUCHU0hTPfjWeQ78mjUoz5C20f+5ZVZM6HOo1dqMRlbYwQWoNqd8tVxpGGjAAq yGep75/1qdMtGhZ1WziqVY0ITfYL2D/k3myb57uvskJ8xGnbRKR71zrHsSW5jTTT GQ6ZZBJx46o= =5vsC -----END PGP SIGNATURE----- --=-9bfK5arjnfHO0IbglKNj--